00042998 : #include static void CPU_usage_Per_thread_handler( Thread_Control *the_thread ) { 42998: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4299c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED the_thread->cpu_time_used.tv_sec = 0; the_thread->cpu_time_used.tv_nsec = 0; #else the_thread->cpu_time_used = 0; #endif } 429a0: 4e5e unlk %fp <== NOT EXECUTED Thread_Control *the_thread ) { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS the_thread->cpu_time_used.tv_sec = 0; the_thread->cpu_time_used.tv_nsec = 0; 429a2: 42a8 0088 clrl %a0@(136) <== NOT EXECUTED static void CPU_usage_Per_thread_handler( Thread_Control *the_thread ) { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS the_thread->cpu_time_used.tv_sec = 0; 429a6: 42a8 0084 clrl %a0@(132) <== NOT EXECUTED the_thread->cpu_time_used.tv_nsec = 0; #else the_thread->cpu_time_used = 0; #endif } 429aa: 4e75 rts 00048050 : #define MAXSYMLINK 5 int IMFS_Set_handlers( rtems_filesystem_location_info_t *loc ) { 48050: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48054: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48056: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; switch( node->type ) { 4805a: 2252 moveal %a2@,%a1 <== NOT EXECUTED ) { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; 4805c: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED switch( node->type ) { 48060: 2029 0048 movel %a1@(72),%d0 <== NOT EXECUTED ) { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; 48064: 2068 002c moveal %a0@(44),%a0 <== NOT EXECUTED switch( node->type ) { 48068: 5380 subql #1,%d0 <== NOT EXECUTED 4806a: 7205 moveq #5,%d1 <== NOT EXECUTED 4806c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4806e: 653c bcss 480ac <== NOT EXECUTED 48070: 303b 0a08 movew %pc@(4807a ,%d0:l:2),%d0 <== NOT EXECUTED 48074: 48c0 extl %d0 <== NOT EXECUTED 48076: 4efb 0802 jmp %pc@(4807a ,%d0:l) <== NOT EXECUTED 4807a: 000c 014 <== NOT EXECUTED 4807c: 0014 024 <== NOT EXECUTED 4807e: 0020 040 <== NOT EXECUTED 48080: 0020 040 <== NOT EXECUTED 48082: 002c 054 <== NOT EXECUTED 48084: 002c 054 <== NOT EXECUTED case IMFS_DIRECTORY: loc->handlers = fs_info->directory_handlers; 48086: 2568 0008 0004 movel %a0@(8),%a2@(4) <== NOT EXECUTED 4808c: 601e bras 480ac <== NOT EXECUTED break; case IMFS_DEVICE: loc->handlers = &IMFS_device_handlers; 4808e: 203c 0005 436a movel #344938,%d0 <== NOT EXECUTED 48094: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 48098: 6012 bras 480ac <== NOT EXECUTED break; case IMFS_SYM_LINK: case IMFS_HARD_LINK: loc->handlers = &IMFS_link_handlers; 4809a: 223c 0005 43a2 movel #344994,%d1 <== NOT EXECUTED 480a0: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED 480a4: 6006 bras 480ac <== NOT EXECUTED break; case IMFS_LINEAR_FILE: loc->handlers = fs_info->memfile_handlers; break; case IMFS_MEMORY_FILE: loc->handlers = fs_info->memfile_handlers; 480a6: 2568 0004 0004 movel %a0@(4),%a2@(4) <== NOT EXECUTED break; } return 0; } 480ac: 245f moveal %sp@+,%a2 <== NOT EXECUTED 480ae: 4e5e unlk %fp <== NOT EXECUTED 480b0: 4280 clrl %d0 <== NOT EXECUTED 480b2: 4e75 rts 00059cd0 : int IMFS_chown( rtems_filesystem_location_info_t *pathloc, /* IN */ uid_t owner, /* IN */ gid_t group /* IN */ ) { 59cd0: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 59cd4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 59cd8: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode; #if defined(RTEMS_POSIX_API) uid_t st_uid; #endif jnode = (IMFS_jnode_t *) pathloc->node_access; 59cda: 2450 moveal %a0@,%a2 <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) rtems_set_errno_and_return_minus_one( EPERM ); #endif jnode->st_uid = owner; 59cdc: 356e 000e 0038 movew %fp@(14),%a2@(56) <== NOT EXECUTED jnode->st_gid = group; 59ce2: 356e 0012 003a movew %fp@(18),%a2@(58) <== NOT EXECUTED IMFS_update_ctime( jnode ); 59ce8: 42a7 clrl %sp@- <== NOT EXECUTED 59cea: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 59cee: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 59cf4: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; } 59cfa: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 59cfe: 4e5e unlk %fp <== NOT EXECUTED 59d00: 4280 clrl %d0 <== NOT EXECUTED 59d02: 4e75 rts 0004a52c : IMFS_jnode_types_t type, const char *name, mode_t mode, const IMFS_types_union *info ) { 4a52c: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4a530: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 4a534: 2a6e 0008 moveal %fp@(8),%a5 <== NOT EXECUTED 4a538: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4a53c: 286e 0018 moveal %fp@(24),%a4 <== NOT EXECUTED IMFS_jnode_t *node; struct timeval tv; IMFS_jnode_t *parent = NULL; IMFS_fs_info_t *fs_info; if ( parent_loc != NULL ) 4a540: 4a8d tstl %a5 <== NOT EXECUTED 4a542: 6604 bnes 4a548 <== NOT EXECUTED 4a544: 97cb subal %a3,%a3 <== NOT EXECUTED 4a546: 6002 bras 4a54a <== NOT EXECUTED parent = parent_loc->node_access; 4a548: 2655 moveal %a5@,%a3 <== NOT EXECUTED /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 4a54a: 4878 005c pea 5c <== NOT EXECUTED 4a54e: 4878 0001 pea 1 <== NOT EXECUTED 4a552: 4eb9 0004 8cd4 jsr 48cd4 <== NOT EXECUTED if ( !node ) 4a558: 508f addql #8,%sp <== NOT EXECUTED /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 4a55a: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !node ) 4a55c: 4a80 tstl %d0 <== NOT EXECUTED 4a55e: 6700 0104 beqw 4a664 <== NOT EXECUTED * Fill in the basic information */ node->st_nlink = 1; node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 4a562: 4878 0020 pea 20 <== NOT EXECUTED /* * Fill in the basic information */ node->st_nlink = 1; 4a566: 7001 moveq #1,%d0 <== NOT EXECUTED node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 4a568: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED /* * Fill in the basic information */ node->st_nlink = 1; 4a56c: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED node->type = type; 4a570: 2542 0048 movel %d2,%a2@(72) <== NOT EXECUTED strncpy( node->name, name, IMFS_NAME_MAX ); 4a574: 486a 000c pea %a2@(12) <== NOT EXECUTED 4a578: 4eb9 0004 c5e4 jsr 4c5e4 <== NOT EXECUTED /* * Fill in the mode and permission information for the jnode structure. */ node->st_mode = mode & ~rtems_filesystem_umask; 4a57e: 2079 0005 5604 moveal 55604 ,%a0 <== NOT EXECUTED 4a584: 2028 0024 movel %a0@(36),%d0 <== NOT EXECUTED 4a588: 4680 notl %d0 <== NOT EXECUTED 4a58a: c0ae 0014 andl %fp@(20),%d0 <== NOT EXECUTED 4a58e: 2540 002e movel %d0,%a2@(46) <== NOT EXECUTED #if defined(RTEMS_POSIX_API) node->st_uid = geteuid(); node->st_gid = getegid(); #else node->st_uid = 0; 4a592: 4240 clrw %d0 <== NOT EXECUTED 4a594: 3540 0038 movew %d0,%a2@(56) <== NOT EXECUTED /* * Now set all the times. */ gettimeofday( &tv, 0 ); 4a598: 42a7 clrl %sp@- <== NOT EXECUTED #if defined(RTEMS_POSIX_API) node->st_uid = geteuid(); node->st_gid = getegid(); #else node->st_uid = 0; node->st_gid = 0; 4a59a: 3540 003a movew %d0,%a2@(58) <== NOT EXECUTED /* * Now set all the times. */ gettimeofday( &tv, 0 ); 4a59e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4a5a2: 4eb9 0004 8f20 jsr 48f20 <== NOT EXECUTED node->stat_atime = (time_t) tv.tv_sec; 4a5a8: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED /* * Set the type specific information */ switch (type) { 4a5ac: 2202 movel %d2,%d1 <== NOT EXECUTED gettimeofday( &tv, 0 ); node->stat_atime = (time_t) tv.tv_sec; node->stat_mtime = (time_t) tv.tv_sec; node->stat_ctime = (time_t) tv.tv_sec; 4a5ae: 2540 0044 movel %d0,%a2@(68) <== NOT EXECUTED /* * Set the type specific information */ switch (type) { 4a5b2: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4a5b8: 5381 subql #1,%d1 <== NOT EXECUTED * Now set all the times. */ gettimeofday( &tv, 0 ); node->stat_atime = (time_t) tv.tv_sec; 4a5ba: 2540 003c movel %d0,%a2@(60) <== NOT EXECUTED node->stat_mtime = (time_t) tv.tv_sec; 4a5be: 2540 0040 movel %d0,%a2@(64) <== NOT EXECUTED /* * Set the type specific information */ switch (type) { 4a5c2: 7005 moveq #5,%d0 <== NOT EXECUTED 4a5c4: b081 cmpl %d1,%d0 <== NOT EXECUTED 4a5c6: 6558 bcss 4a620 <== NOT EXECUTED 4a5c8: 303b 1a08 movew %pc@(4a5d2 ,%d1:l:2),%d0 <== NOT EXECUTED 4a5cc: 48c0 extl %d0 <== NOT EXECUTED 4a5ce: 4efb 0802 jmp %pc@(4a5d2 ,%d0:l) <== NOT EXECUTED 4a5d2: 000c 014 <== NOT EXECUTED 4a5d4: 0028 050 <== NOT EXECUTED 4a5d6: 0022 042 <== NOT EXECUTED 4a5d8: 0022 042 <== NOT EXECUTED 4a5da: 003c 074 <== NOT EXECUTED 4a5dc: 0034 064 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4a5de: 41ea 0050 lea %a2@(80),%a0 <== NOT EXECUTED 4a5e2: 2548 004c movel %a0,%a2@(76) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4a5e6: 41ea 004c lea %a2@(76),%a0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 4a5ea: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 4a5ee: 2548 0054 movel %a0,%a2@(84) <== NOT EXECUTED 4a5f2: 6048 bras 4a63c <== NOT EXECUTED case IMFS_HARD_LINK: node->info.hard_link.link_node = info->hard_link.link_node; break; case IMFS_SYM_LINK: node->info.sym_link.name = info->sym_link.name; 4a5f4: 2554 004c movel %a4@,%a2@(76) <== NOT EXECUTED 4a5f8: 6042 bras 4a63c <== NOT EXECUTED break; case IMFS_DEVICE: node->info.device.major = info->device.major; 4a5fa: 2554 004c movel %a4@,%a2@(76) <== NOT EXECUTED node->info.device.minor = info->device.minor; 4a5fe: 256c 0004 0050 movel %a4@(4),%a2@(80) <== NOT EXECUTED 4a604: 6036 bras 4a63c <== NOT EXECUTED break; case IMFS_LINEAR_FILE: node->info.linearfile.size = 0; 4a606: 42aa 004c clrl %a2@(76) <== NOT EXECUTED node->info.linearfile.direct = 0; 4a60a: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED case IMFS_MEMORY_FILE: node->info.file.size = 0; 4a60e: 42aa 004c clrl %a2@(76) <== NOT EXECUTED node->info.file.indirect = 0; 4a612: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED node->info.file.doubly_indirect = 0; 4a616: 42aa 0054 clrl %a2@(84) <== NOT EXECUTED node->info.file.triply_indirect = 0; 4a61a: 42aa 0058 clrl %a2@(88) <== NOT EXECUTED 4a61e: 601c bras 4a63c <== NOT EXECUTED break; default: assert(0); 4a620: 4879 0005 4606 pea 54606 <== NOT EXECUTED 4a626: 4879 0005 4654 pea 54654 <__func__.5522> <== NOT EXECUTED 4a62c: 4878 0074 pea 74 <== NOT EXECUTED 4a630: 4879 0005 4608 pea 54608 <== NOT EXECUTED 4a636: 4eb9 0004 8adc jsr 48adc <__assert_func> <== NOT EXECUTED /* * If this node has a parent, then put it in that directory list. */ if ( parent ) { 4a63c: 4a8b tstl %a3 <== NOT EXECUTED 4a63e: 6724 beqs 4a664 <== 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 ); 4a640: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a642: 486b 004c pea %a3@(76) <== NOT EXECUTED 4a646: 4eb9 0004 58a8 jsr 458a8 <_Chain_Append> <== NOT EXECUTED rtems_chain_append( &parent->info.directory.Entries, &node->Node ); node->Parent = parent; fs_info = parent_loc->mt_entry->fs_info; 4a64c: 206d 000c moveal %a5@(12),%a0 <== NOT EXECUTED 4a650: 2068 002c moveal %a0@(44),%a0 <== NOT EXECUTED node->st_ino = ++fs_info->ino_count; 4a654: 2010 movel %a0@,%d0 <== NOT EXECUTED 4a656: 5280 addql #1,%d0 <== NOT EXECUTED 4a658: 2080 movel %d0,%a0@ <== NOT EXECUTED 4a65a: 508f addql #8,%sp <== NOT EXECUTED * If this node has a parent, then put it in that directory list. */ if ( parent ) { rtems_chain_append( &parent->info.directory.Entries, &node->Node ); node->Parent = parent; 4a65c: 254b 0008 movel %a3,%a2@(8) <== NOT EXECUTED fs_info = parent_loc->mt_entry->fs_info; node->st_ino = ++fs_info->ino_count; 4a660: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED } return node; } 4a664: 200a movel %a2,%d0 <== NOT EXECUTED 4a666: 4cee 3c04 ffe4 moveml %fp@(-28),%d2/%a2-%a5 <== NOT EXECUTED 4a66c: 4e5e unlk %fp <== NOT EXECUTED 4a66e: 4e75 rts 000481f6 : int IMFS_eval_path( const char *pathname, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 481f6: 4e56 ffa0 linkw %fp,#-96 <== NOT EXECUTED 481fa: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 481fe: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 48202: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 48206: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 4820a: 2453 moveal %a3@,%a2 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], token, &len ); 4820c: 240e movel %fp,%d2 <== NOT EXECUTED /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 4820e: 4283 clrl %d3 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], token, &len ); 48210: 0682 ffff ffcb addil #-53,%d2 <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48216: 2e3c 0004 86d0 movel #296656,%d7 <== NOT EXECUTED if ( !node ) rtems_set_errno_and_return_minus_one( ENOTDIR ); } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_sym_link( pathloc, 0 ); 4821c: 2c3c 0004 8130 movel #295216,%d6 <== NOT EXECUTED * If we are at a link follow it. */ if ( node->type == IMFS_HARD_LINK ) { IMFS_evaluate_hard_link( pathloc, 0 ); 48222: 4bf9 0004 80d6 lea 480d6 ,%a5 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], token, &len ); 48228: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4822c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4822e: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 48232: 4eb9 0004 8764 jsr 48764 <== NOT EXECUTED i += len; 48238: 282e fffc movel %fp@(-4),%d4 <== NOT EXECUTED if ( !pathloc->node_access ) 4823c: 2253 moveal %a3@,%a1 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], token, &len ); 4823e: 2200 movel %d0,%d1 <== NOT EXECUTED i += len; if ( !pathloc->node_access ) 48240: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48246: 4a89 tstl %a1 <== NOT EXECUTED 48248: 6700 00f8 beqw 48342 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOENT ); /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) 4824c: 4a80 tstl %d0 <== NOT EXECUTED 4824e: 671a beqs 4826a <== NOT EXECUTED if ( node->type == IMFS_DIRECTORY ) 48250: 7001 moveq #1,%d0 <== NOT EXECUTED 48252: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 48256: 6612 bnes 4826a <== 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 ) 48258: 103c 0040 moveb #64,%d0 <== NOT EXECUTED 4825c: c0a9 002e andl %a1@(46),%d0 <== NOT EXECUTED 48260: 2040 moveal %d0,%a0 <== NOT EXECUTED 48262: 7040 moveq #64,%d0 <== NOT EXECUTED 48264: b088 cmpl %a0,%d0 <== NOT EXECUTED 48266: 6600 0186 bnew 483ee <== NOT EXECUTED */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], token, &len ); i += len; 4826a: d684 addl %d4,%d3 <== NOT EXECUTED 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; 4826c: 2449 moveal %a1,%a2 <== NOT EXECUTED switch( type ) { 4826e: 7003 moveq #3,%d0 <== NOT EXECUTED 48270: b081 cmpl %d1,%d0 <== NOT EXECUTED 48272: 6766 beqs 482da <== NOT EXECUTED 48274: 103c 0004 moveb #4,%d0 <== NOT EXECUTED 48278: b081 cmpl %d1,%d0 <== NOT EXECUTED 4827a: 6700 00dc beqw 48358 <== NOT EXECUTED 4827e: 103c 0002 moveb #2,%d0 <== NOT EXECUTED 48282: b081 cmpl %d1,%d0 <== NOT EXECUTED 48284: 6600 00e2 bnew 48368 <== NOT EXECUTED case IMFS_UP_DIR: /* * Am I at the root of all filesystems? (chroot'ed?) */ if ( pathloc->node_access == rtems_filesystem_root.node_access ) 48288: 2079 0005 5604 moveal 55604 ,%a0 <== NOT EXECUTED 4828e: b3e8 0014 cmpal %a0@(20),%a1 <== NOT EXECUTED 48292: 6794 beqs 48228 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == 48294: 206b 000c moveal %a3@(12),%a0 <== NOT EXECUTED 48298: b3e8 0018 cmpal %a0@(24),%a1 <== NOT EXECUTED 4829c: 6636 bnes 482d4 <== 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; 4829e: 4878 0010 pea 10 <== NOT EXECUTED 482a2: 240e movel %fp,%d2 <== NOT EXECUTED 482a4: 4868 0008 pea %a0@(8) <== NOT EXECUTED 482a8: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED 482ae: 45f9 0004 b3f4 lea 4b3f4 ,%a2 <== NOT EXECUTED 482b4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 482b6: 4e92 jsr %a2@ <== NOT EXECUTED *pathloc = newloc; 482b8: 4878 0010 pea 10 <== NOT EXECUTED return (*pathloc->ops->evalpath_h)(&(pathname[i-len]),flags,pathloc); 482bc: 9684 subl %d4,%d3 <== 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; 482be: 2f02 movel %d2,%sp@- <== NOT EXECUTED 482c0: 2f0b movel %a3,%sp@- <== NOT EXECUTED 482c2: 4e92 jsr %a2@ <== NOT EXECUTED return (*pathloc->ops->evalpath_h)(&(pathname[i-len]),flags,pathloc); 482c4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 482c6: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED 482ca: 2f05 movel %d5,%sp@- <== NOT EXECUTED 482cc: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 482d0: 6000 00e6 braw 483b8 <== NOT EXECUTED } } else { if ( !node->Parent ) 482d4: 2469 0008 moveal %a1@(8),%a2 <== NOT EXECUTED 482d8: 6064 bras 4833e <== NOT EXECUTED case IMFS_NAME: /* * If we are at a link follow it. */ if ( node->type == IMFS_HARD_LINK ) { 482da: 2029 0048 movel %a1@(72),%d0 <== NOT EXECUTED 482de: 7203 moveq #3,%d1 <== NOT EXECUTED 482e0: b280 cmpl %d0,%d1 <== NOT EXECUTED 482e2: 6610 bnes 482f4 <== NOT EXECUTED IMFS_evaluate_hard_link( pathloc, 0 ); 482e4: 42a7 clrl %sp@- <== NOT EXECUTED 482e6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 482e8: 4e95 jsr %a5@ <== NOT EXECUTED node = pathloc->node_access; 482ea: 2453 moveal %a3@,%a2 <== NOT EXECUTED if ( !node ) 482ec: 508f addql #8,%sp <== NOT EXECUTED 482ee: 4a8a tstl %a2 <== NOT EXECUTED 482f0: 6620 bnes 48312 <== NOT EXECUTED 482f2: 6026 bras 4831a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); } else if ( node->type == IMFS_SYM_LINK ) { 482f4: 7204 moveq #4,%d1 <== NOT EXECUTED 482f6: b280 cmpl %d0,%d1 <== NOT EXECUTED 482f8: 6618 bnes 48312 <== NOT EXECUTED result = IMFS_evaluate_sym_link( pathloc, 0 ); 482fa: 42a7 clrl %sp@- <== NOT EXECUTED 482fc: 2046 moveal %d6,%a0 <== NOT EXECUTED 482fe: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48300: 4e90 jsr %a0@ <== NOT EXECUTED 48302: 2240 moveal %d0,%a1 <== NOT EXECUTED node = pathloc->node_access; 48304: 2013 movel %a3@,%d0 <== NOT EXECUTED if ( result == -1 ) 48306: 508f addql #8,%sp <== NOT EXECUTED 48308: 72ff moveq #-1,%d1 <== NOT EXECUTED 4830a: b289 cmpl %a1,%d1 <== NOT EXECUTED 4830c: 6700 00d4 beqw 483e2 <== NOT EXECUTED } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_sym_link( pathloc, 0 ); node = pathloc->node_access; 48310: 2440 moveal %d0,%a2 <== NOT EXECUTED /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 48312: 7001 moveq #1,%d0 <== NOT EXECUTED 48314: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 48318: 6710 beqs 4832a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 4831a: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48320: 7a14 moveq #20,%d5 <== NOT EXECUTED 48322: 2040 moveal %d0,%a0 <== NOT EXECUTED 48324: 2085 movel %d5,%a0@ <== NOT EXECUTED 48326: 6000 00d2 braw 483fa <== 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 ) { 4832a: 206a 0058 moveal %a2@(88),%a0 <== NOT EXECUTED 4832e: 4a88 tstl %a0 <== NOT EXECUTED 48330: 6652 bnes 48384 <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48332: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48334: 2047 moveal %d7,%a0 <== NOT EXECUTED 48336: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48338: 4e90 jsr %a0@ <== NOT EXECUTED if ( !node ) 4833a: 508f addql #8,%sp <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 4833c: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !node ) 4833e: 4a8a tstl %a2 <== NOT EXECUTED 48340: 6610 bnes 48352 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOENT ); 48342: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48348: 7802 moveq #2,%d4 <== NOT EXECUTED 4834a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4834c: 2084 movel %d4,%a0@ <== NOT EXECUTED 4834e: 6000 00aa braw 483fa <== NOT EXECUTED /* * Set the node access to the point we have found. */ pathloc->node_access = node; 48352: 268a movel %a2,%a3@ <== NOT EXECUTED 48354: 6000 fed2 braw 48228 <== NOT EXECUTED case IMFS_NO_MORE_PATH: case IMFS_CURRENT_DIR: break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 48358: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 4835e: 765b moveq #91,%d3 <== NOT EXECUTED 48360: 2040 moveal %d0,%a0 <== NOT EXECUTED 48362: 2083 movel %d3,%a0@ <== NOT EXECUTED 48364: 6000 0094 braw 483fa <== NOT EXECUTED /* * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { 48368: 4a81 tstl %d1 <== NOT EXECUTED 4836a: 6708 beqs 48374 <== NOT EXECUTED 4836c: 7004 moveq #4,%d0 <== NOT EXECUTED 4836e: b081 cmpl %d1,%d0 <== NOT EXECUTED 48370: 6600 feb6 bnew 48228 <== NOT EXECUTED * 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 ) { 48374: 7201 moveq #1,%d1 <== NOT EXECUTED 48376: b2a9 0048 cmpl %a1@(72),%d1 <== NOT EXECUTED 4837a: 664a bnes 483c6 <== NOT EXECUTED if ( node->info.directory.mt_fs != NULL ) { 4837c: 2069 0058 moveal %a1@(88),%a0 <== NOT EXECUTED 48380: 4a88 tstl %a0 <== NOT EXECUTED 48382: 6742 beqs 483c6 <== NOT EXECUTED newloc = node->info.directory.mt_fs->mt_fs_root; 48384: 4878 0010 pea 10 <== NOT EXECUTED 48388: 240e movel %fp,%d2 <== NOT EXECUTED 4838a: 4868 0018 pea %a0@(24) <== NOT EXECUTED 4838e: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED 48394: 45f9 0004 b3f4 lea 4b3f4 ,%a2 <== NOT EXECUTED 4839a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4839c: 4e92 jsr %a2@ <== NOT EXECUTED *pathloc = newloc; 4839e: 4878 0010 pea 10 <== NOT EXECUTED 483a2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 483a4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 483a6: 4e92 jsr %a2@ <== NOT EXECUTED return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc ); 483a8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 483aa: 96ae fffc subl %fp@(-4),%d3 <== NOT EXECUTED 483ae: 2f05 movel %d5,%sp@- <== NOT EXECUTED 483b0: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 483b4: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED 483b8: 2050 moveal %a0@,%a0 <== NOT EXECUTED 483ba: 4e90 jsr %a0@ <== NOT EXECUTED 483bc: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 483c2: 2240 moveal %d0,%a1 <== NOT EXECUTED 483c4: 601c bras 483e2 <== NOT EXECUTED } else { result = IMFS_Set_handlers( pathloc ); } } else { result = IMFS_Set_handlers( pathloc ); 483c6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 483c8: 4eb9 0004 8050 jsr 48050 <== 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 ) 483ce: 2053 moveal %a3@,%a0 <== NOT EXECUTED 483d0: 2205 movel %d5,%d1 <== NOT EXECUTED return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc ); } else { result = IMFS_Set_handlers( pathloc ); } } else { result = IMFS_Set_handlers( pathloc ); 483d2: 2240 moveal %d0,%a1 <== 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 ) 483d4: ed89 lsll #6,%d1 <== NOT EXECUTED 483d6: 2001 movel %d1,%d0 <== NOT EXECUTED return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc ); } else { result = IMFS_Set_handlers( pathloc ); } } else { result = IMFS_Set_handlers( pathloc ); 483d8: 588f addql #4,%sp <== 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 ) 483da: c0a8 002e andl %a0@(46),%d0 <== NOT EXECUTED 483de: b280 cmpl %d0,%d1 <== NOT EXECUTED 483e0: 660c bnes 483ee <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 483e2: 4cee 3cfc ffa0 moveml %fp@(-96),%d2-%d7/%a2-%a5 <== NOT EXECUTED 483e8: 4e5e unlk %fp <== NOT EXECUTED 483ea: 2009 movel %a1,%d0 <== NOT EXECUTED 483ec: 4e75 rts <== 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 ); 483ee: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 483f4: 740d moveq #13,%d2 <== NOT EXECUTED 483f6: 2040 moveal %d0,%a0 <== NOT EXECUTED 483f8: 2082 movel %d2,%a0@ <== NOT EXECUTED 483fa: 327c ffff moveaw #-1,%a1 <== NOT EXECUTED 483fe: 60e2 bras 483e2 <== NOT EXECUTED 00048498 : int IMFS_evaluate_for_make( const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) { 48498: 4e56 ffa0 linkw %fp,#-96 <== NOT EXECUTED 4849c: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 484a0: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 484a4: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 484a8: 2a6e 0010 moveal %fp@(16),%a5 <== NOT EXECUTED /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 484ac: 2453 moveal %a3@,%a2 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], token, &len ); 484ae: 2a0e movel %fp,%d5 <== NOT EXECUTED /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 484b0: 4283 clrl %d3 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], token, &len ); 484b2: 0685 ffff ffcb addil #-53,%d5 <== NOT EXECUTED 484b8: 2e3c 0004 8764 movel #296804,%d7 <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 484be: 2c3c 0004 86d0 movel #296656,%d6 <== NOT EXECUTED if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_link( pathloc, 0 ); 484c4: 243c 0004 8400 movel #295936,%d2 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], token, &len ); 484ca: 486e fffc pea %fp@(-4) <== NOT EXECUTED 484ce: 2047 moveal %d7,%a0 <== NOT EXECUTED 484d0: 2f05 movel %d5,%sp@- <== NOT EXECUTED 484d2: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 484d6: 4e90 jsr %a0@ <== NOT EXECUTED i += len; 484d8: 282e fffc movel %fp@(-4),%d4 <== NOT EXECUTED if ( !pathloc->node_access ) 484dc: 2253 moveal %a3@,%a1 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], token, &len ); 484de: 2200 movel %d0,%d1 <== NOT EXECUTED i += len; if ( !pathloc->node_access ) 484e0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 484e6: 4a89 tstl %a1 <== NOT EXECUTED 484e8: 6700 0178 beqw 48662 <== NOT EXECUTED /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) 484ec: 4a80 tstl %d0 <== NOT EXECUTED 484ee: 671a beqs 4850a <== NOT EXECUTED if ( node->type == IMFS_DIRECTORY ) 484f0: 7001 moveq #1,%d0 <== NOT EXECUTED 484f2: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 484f6: 6612 bnes 4850a <== 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 ) 484f8: 103c 0040 moveb #64,%d0 <== NOT EXECUTED 484fc: c0a9 002e andl %a1@(46),%d0 <== NOT EXECUTED 48500: 2040 moveal %d0,%a0 <== NOT EXECUTED 48502: 7040 moveq #64,%d0 <== NOT EXECUTED 48504: b088 cmpl %a0,%d0 <== NOT EXECUTED 48506: 6600 01b6 bnew 486be <== NOT EXECUTED */ while( !done ) { type = IMFS_get_token( &path[i], token, &len ); i += len; 4850a: d684 addl %d4,%d3 <== NOT EXECUTED 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; 4850c: 2449 moveal %a1,%a2 <== NOT EXECUTED switch( type ) { 4850e: 7002 moveq #2,%d0 <== NOT EXECUTED 48510: b081 cmpl %d1,%d0 <== NOT EXECUTED 48512: 671c beqs 48530 <== NOT EXECUTED 48514: 6508 bcss 4851e <== NOT EXECUTED 48516: 4a81 tstl %d1 <== NOT EXECUTED 48518: 6700 010a beqw 48624 <== NOT EXECUTED 4851c: 60ac bras 484ca <== NOT EXECUTED 4851e: 7003 moveq #3,%d0 <== NOT EXECUTED 48520: b081 cmpl %d1,%d0 <== NOT EXECUTED 48522: 6766 beqs 4858a <== NOT EXECUTED 48524: 103c 0004 moveb #4,%d0 <== NOT EXECUTED 48528: b081 cmpl %d1,%d0 <== NOT EXECUTED 4852a: 669e bnes 484ca <== NOT EXECUTED 4852c: 6000 0106 braw 48634 <== NOT EXECUTED case IMFS_UP_DIR: /* * Am I at the root of all filesystems? (chroot'ed?) */ if ( pathloc->node_access == rtems_filesystem_root.node_access ) 48530: 2079 0005 5604 moveal 55604 ,%a0 <== NOT EXECUTED 48536: b3e8 0014 cmpal %a0@(20),%a1 <== NOT EXECUTED 4853a: 678e beqs 484ca <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access){ 4853c: 206b 000c moveal %a3@(12),%a0 <== NOT EXECUTED 48540: b3e8 0018 cmpal %a0@(24),%a1 <== NOT EXECUTED 48544: 6636 bnes 4857c <== NOT EXECUTED if ( pathloc->node_access == rtems_filesystem_root.node_access ) { break; } else { newloc = pathloc->mt_entry->mt_point_node; 48546: 4878 0010 pea 10 <== NOT EXECUTED 4854a: 240e movel %fp,%d2 <== NOT EXECUTED 4854c: 4868 0008 pea %a0@(8) <== NOT EXECUTED 48550: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED 48556: 45f9 0004 b3f4 lea 4b3f4 ,%a2 <== NOT EXECUTED 4855c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4855e: 4e92 jsr %a2@ <== NOT EXECUTED *pathloc = newloc; 48560: 4878 0010 pea 10 <== NOT EXECUTED return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 48564: 9684 subl %d4,%d3 <== NOT EXECUTED if ( pathloc->node_access == rtems_filesystem_root.node_access ) { break; } else { newloc = pathloc->mt_entry->mt_point_node; *pathloc = newloc; 48566: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48568: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4856a: 4e92 jsr %a2@ <== NOT EXECUTED return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 4856c: 2f0d movel %a5,%sp@- <== NOT EXECUTED 4856e: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED 48572: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48574: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 48578: 6000 0082 braw 485fc <== NOT EXECUTED } } else { if ( !node->Parent ) 4857c: 2469 0008 moveal %a1@(8),%a2 <== NOT EXECUTED 48580: 4a8a tstl %a2 <== NOT EXECUTED 48582: 6600 009a bnew 4861e <== NOT EXECUTED 48586: 6000 00da braw 48662 <== NOT EXECUTED pathloc->node_access = node; break; case IMFS_NAME: if ( node->type == IMFS_HARD_LINK ) { 4858a: 2029 0048 movel %a1@(72),%d0 <== NOT EXECUTED 4858e: 7203 moveq #3,%d1 <== NOT EXECUTED 48590: b280 cmpl %d0,%d1 <== NOT EXECUTED 48592: 6706 beqs 4859a <== NOT EXECUTED result = IMFS_evaluate_link( pathloc, 0 ); if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { 48594: 7204 moveq #4,%d1 <== NOT EXECUTED 48596: b280 cmpl %d0,%d1 <== NOT EXECUTED 48598: 6614 bnes 485ae <== NOT EXECUTED result = IMFS_evaluate_link( pathloc, 0 ); 4859a: 42a7 clrl %sp@- <== NOT EXECUTED 4859c: 2042 moveal %d2,%a0 <== NOT EXECUTED 4859e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 485a0: 4e90 jsr %a0@ <== NOT EXECUTED 485a2: 2200 movel %d0,%d1 <== NOT EXECUTED if ( result == -1 ) 485a4: 508f addql #8,%sp <== NOT EXECUTED 485a6: 70ff moveq #-1,%d0 <== NOT EXECUTED 485a8: b081 cmpl %d1,%d0 <== NOT EXECUTED 485aa: 6700 0106 beqw 486b2 <== NOT EXECUTED return -1; } node = pathloc->node_access; 485ae: 2053 moveal %a3@,%a0 <== NOT EXECUTED if ( !node ) 485b0: 4a88 tstl %a0 <== NOT EXECUTED 485b2: 6700 00de beqw 48692 <== NOT EXECUTED /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 485b6: 7201 moveq #1,%d1 <== NOT EXECUTED 485b8: b2a8 0048 cmpl %a0@(72),%d1 <== NOT EXECUTED 485bc: 6600 00d4 bnew 48692 <== 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 ) { 485c0: 2268 0058 moveal %a0@(88),%a1 <== NOT EXECUTED 485c4: 4a89 tstl %a1 <== NOT EXECUTED 485c6: 6746 beqs 4860e <== NOT EXECUTED newloc = node->info.directory.mt_fs->mt_fs_root; 485c8: 4878 0010 pea 10 <== NOT EXECUTED 485cc: 240e movel %fp,%d2 <== NOT EXECUTED 485ce: 4869 0018 pea %a1@(24) <== NOT EXECUTED 485d2: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED 485d8: 45f9 0004 b3f4 lea 4b3f4 ,%a2 <== NOT EXECUTED 485de: 2f02 movel %d2,%sp@- <== NOT EXECUTED 485e0: 4e92 jsr %a2@ <== NOT EXECUTED *pathloc = newloc; 485e2: 4878 0010 pea 10 <== NOT EXECUTED 485e6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 485e8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 485ea: 4e92 jsr %a2@ <== NOT EXECUTED return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 485ec: 2f0d movel %a5,%sp@- <== NOT EXECUTED 485ee: 96ae fffc subl %fp@(-4),%d3 <== NOT EXECUTED 485f2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 485f4: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 485f8: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED 485fc: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 48600: 4e90 jsr %a0@ <== NOT EXECUTED 48602: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 48608: 2200 movel %d0,%d1 <== NOT EXECUTED 4860a: 6000 00a6 braw 486b2 <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 4860e: 2f05 movel %d5,%sp@- <== NOT EXECUTED 48610: 2f08 movel %a0,%sp@- <== NOT EXECUTED 48612: 2046 moveal %d6,%a0 <== NOT EXECUTED 48614: 4e90 jsr %a0@ <== NOT EXECUTED /* * If there is no node we have found the name of the node we * wish to create. */ if ( ! node ) 48616: 508f addql #8,%sp <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48618: 2440 moveal %d0,%a2 <== NOT EXECUTED /* * If there is no node we have found the name of the node we * wish to create. */ if ( ! node ) 4861a: 4a80 tstl %d0 <== NOT EXECUTED 4861c: 6726 beqs 48644 <== NOT EXECUTED done = true; else pathloc->node_access = node; 4861e: 268a movel %a2,%a3@ <== NOT EXECUTED 48620: 6000 fea8 braw 484ca <== NOT EXECUTED break; case IMFS_NO_MORE_PATH: rtems_set_errno_and_return_minus_one( EEXIST ); 48624: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 4862a: 7a11 moveq #17,%d5 <== NOT EXECUTED 4862c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4862e: 2085 movel %d5,%a0@ <== NOT EXECUTED 48630: 6000 0098 braw 486ca <== NOT EXECUTED break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 48634: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 4863a: 785b moveq #91,%d4 <== NOT EXECUTED 4863c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4863e: 2084 movel %d4,%a0@ <== NOT EXECUTED 48640: 6000 0088 braw 486ca <== NOT EXECUTED case IMFS_CURRENT_DIR: break; } } *name = &path[ i - len ]; 48644: 2003 movel %d3,%d0 <== NOT EXECUTED 48646: 90ae fffc subl %fp@(-4),%d0 <== NOT EXECUTED 4864a: d08c addl %a4,%d0 <== NOT EXECUTED 4864c: 2a80 movel %d0,%a5@ <== NOT EXECUTED 4864e: 41f4 3800 lea %a4@(00000000,%d3:l),%a0 <== NOT EXECUTED 48652: 601e bras 48672 <== 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 ] ) ) 48654: 702f moveq #47,%d0 <== NOT EXECUTED 48656: b081 cmpl %d1,%d0 <== NOT EXECUTED 48658: 6716 beqs 48670 <== NOT EXECUTED 4865a: 103c 005c moveb #92,%d0 <== NOT EXECUTED 4865e: b081 cmpl %d1,%d0 <== NOT EXECUTED 48660: 670e beqs 48670 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOENT ); 48662: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48668: 7602 moveq #2,%d3 <== NOT EXECUTED 4866a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4866c: 2083 movel %d3,%a0@ <== NOT EXECUTED 4866e: 605a bras 486ca <== NOT EXECUTED 48670: 5288 addql #1,%a0 <== 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++) { 48672: 1010 moveb %a0@,%d0 <== NOT EXECUTED if ( !IMFS_is_separator( path[ i ] ) ) 48674: 1200 moveb %d0,%d1 <== NOT EXECUTED 48676: 49c1 extbl %d1 <== 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++) { 48678: 4a00 tstb %d0 <== NOT EXECUTED 4867a: 66d8 bnes 48654 <== NOT EXECUTED /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 4867c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4867e: 4eb9 0004 8050 jsr 48050 <== NOT EXECUTED /* * The returned node must be a directory */ node = pathloc->node_access; 48684: 2053 moveal %a3@,%a0 <== NOT EXECUTED /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 48686: 2200 movel %d0,%d1 <== NOT EXECUTED /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) 48688: 588f addql #4,%sp <== NOT EXECUTED 4868a: 7001 moveq #1,%d0 <== NOT EXECUTED 4868c: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 48690: 670e beqs 486a0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 48692: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48698: 7414 moveq #20,%d2 <== NOT EXECUTED 4869a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4869c: 2082 movel %d2,%a0@ <== NOT EXECUTED 4869e: 602a bras 486ca <== 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 ) 486a0: 2028 002e movel %a0@(46),%d0 <== NOT EXECUTED 486a4: 0280 0000 00c0 andil #192,%d0 <== NOT EXECUTED 486aa: 0c80 0000 00c0 cmpil #192,%d0 <== NOT EXECUTED 486b0: 660c bnes 486be <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 486b2: 4cee 3cfc ffa0 moveml %fp@(-96),%d2-%d7/%a2-%a5 <== NOT EXECUTED 486b8: 4e5e unlk %fp <== NOT EXECUTED 486ba: 2001 movel %d1,%d0 <== NOT EXECUTED 486bc: 4e75 rts <== NOT EXECUTED */ 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 ); 486be: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 486c4: 720d moveq #13,%d1 <== NOT EXECUTED 486c6: 2040 moveal %d0,%a0 <== NOT EXECUTED 486c8: 2081 movel %d1,%a0@ <== NOT EXECUTED 486ca: 72ff moveq #-1,%d1 <== NOT EXECUTED 486cc: 60e4 bras 486b2 <== NOT EXECUTED ... 000480d6 : int IMFS_evaluate_hard_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 480d6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 480da: 2f0a movel %a2,%sp@- <== NOT EXECUTED 480dc: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_jnode_t *jnode = node->node_access; 480e0: 2052 moveal %a2@,%a0 <== NOT EXECUTED /* * Check for things that should never happen. */ if ( jnode->type != IMFS_HARD_LINK ) 480e2: 7003 moveq #3,%d0 <== NOT EXECUTED 480e4: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 480e8: 670c beqs 480f6 <== NOT EXECUTED rtems_fatal_error_occurred (0xABCD0000); 480ea: 2f3c abcd 0000 movel #-1412628480,%sp@- <== NOT EXECUTED 480f0: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED /* * Set the hard link value and the handlers. */ node->node_access = jnode->info.hard_link.link_node; 480f6: 24a8 004c movel %a0@(76),%a2@ <== NOT EXECUTED IMFS_Set_handlers( node ); 480fa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 480fc: 4eb9 0004 8050 jsr 48050 <== 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 ) 48102: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 48106: 2052 moveal %a2@,%a0 <== NOT EXECUTED 48108: ed88 lsll #6,%d0 <== NOT EXECUTED 4810a: 2200 movel %d0,%d1 <== NOT EXECUTED 4810c: c2a8 002e andl %a0@(46),%d1 <== NOT EXECUTED 48110: 588f addql #4,%sp <== NOT EXECUTED 48112: b081 cmpl %d1,%d0 <== NOT EXECUTED 48114: 660a bnes 48120 <== NOT EXECUTED 48116: 4280 clrl %d0 <== NOT EXECUTED if ( !IMFS_evaluate_permission( node, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 48118: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4811c: 4e5e unlk %fp <== NOT EXECUTED 4811e: 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 ); 48120: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48126: 2040 moveal %d0,%a0 <== NOT EXECUTED 48128: 700d moveq #13,%d0 <== NOT EXECUTED 4812a: 2080 movel %d0,%a0@ <== NOT EXECUTED 4812c: 70ff moveq #-1,%d0 <== NOT EXECUTED 4812e: 60e8 bras 48118 <== NOT EXECUTED 00048400 : int IMFS_evaluate_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48400: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 48404: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 48408: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4840c: 242e 000c movel %fp@(12),%d2 <== 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 ); 48410: 4bf9 0004 8130 lea 48130 ,%a5 <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) result = IMFS_evaluate_hard_link( node, flags ); 48416: 49f9 0004 80d6 lea 480d6 ,%a4 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 4841c: 2079 0005 5604 moveal 55604 ,%a0 <== NOT EXECUTED 48422: 3028 0028 movew %a0@(40),%d0 <== NOT EXECUTED 48426: 5280 addql #1,%d0 <== NOT EXECUTED { IMFS_jnode_t *jnode; int result = 0; do { jnode = node->node_access; 48428: 2652 moveal %a2@,%a3 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 4842a: 3140 0028 movew %d0,%a0@(40) <== NOT EXECUTED if ( rtems_filesystem_link_counts > MAXSYMLINK ) { 4842e: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 48434: 7205 moveq #5,%d1 <== NOT EXECUTED 48436: b280 cmpl %d0,%d1 <== NOT EXECUTED 48438: 6416 bccs 48450 <== NOT EXECUTED rtems_filesystem_link_counts = 0; 4843a: 4240 clrw %d0 <== NOT EXECUTED 4843c: 3140 0028 movew %d0,%a0@(40) <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ELOOP ); 48440: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48446: 2040 moveal %d0,%a0 <== NOT EXECUTED 48448: 705c moveq #92,%d0 <== NOT EXECUTED 4844a: 2080 movel %d0,%a0@ <== NOT EXECUTED 4844c: 70ff moveq #-1,%d0 <== NOT EXECUTED 4844e: 603e bras 4848e <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) 48450: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 48454: 7203 moveq #3,%d1 <== NOT EXECUTED 48456: b280 cmpl %d0,%d1 <== NOT EXECUTED 48458: 6608 bnes 48462 <== NOT EXECUTED result = IMFS_evaluate_hard_link( node, flags ); 4845a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4845c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4845e: 4e94 jsr %a4@ <== NOT EXECUTED 48460: 600c bras 4846e <== NOT EXECUTED else if (jnode->type == IMFS_SYM_LINK ) 48462: 7204 moveq #4,%d1 <== NOT EXECUTED 48464: b280 cmpl %d0,%d1 <== NOT EXECUTED 48466: 660c bnes 48474 <== NOT EXECUTED result = IMFS_evaluate_sym_link( node, flags ); 48468: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4846a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4846c: 4e95 jsr %a5@ <== NOT EXECUTED 4846e: 508f addql #8,%sp <== NOT EXECUTED } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || ( jnode->type == IMFS_HARD_LINK ) ) ); 48470: 4a80 tstl %d0 <== NOT EXECUTED 48472: 660e bnes 48482 <== NOT EXECUTED 48474: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 48478: 7201 moveq #1,%d1 <== NOT EXECUTED 4847a: 5780 subql #3,%d0 <== NOT EXECUTED 4847c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4847e: 649c bccs 4841c <== NOT EXECUTED 48480: 4280 clrl %d0 <== NOT EXECUTED /* * Clear link counter. */ rtems_filesystem_link_counts = 0; 48482: 2079 0005 5604 moveal 55604 ,%a0 <== NOT EXECUTED 48488: 4241 clrw %d1 <== NOT EXECUTED 4848a: 3141 0028 movew %d1,%a0@(40) <== NOT EXECUTED return result; } 4848e: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 48494: 4e5e unlk %fp <== NOT EXECUTED 48496: 4e75 rts 000480b4 : int IMFS_evaluate_permission( rtems_filesystem_location_info_t *node, int flags ) { 480b4: 4e56 0000 linkw %fp,#0 <== 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 ) 480b8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED int IMFS_evaluate_permission( rtems_filesystem_location_info_t *node, int flags ) { 480bc: 202e 000c movel %fp@(12),%d0 <== 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 ) 480c0: 2050 moveal %a0@,%a0 <== NOT EXECUTED 480c2: ed88 lsll #6,%d0 <== NOT EXECUTED 480c4: 2200 movel %d0,%d1 <== NOT EXECUTED 480c6: c2a8 002e andl %a0@(46),%d1 <== NOT EXECUTED 480ca: b081 cmpl %d1,%d0 <== NOT EXECUTED 480cc: 57c0 seq %d0 <== NOT EXECUTED 480ce: 49c0 extbl %d0 <== NOT EXECUTED return 1; return 0; } 480d0: 4e5e unlk %fp <== NOT EXECUTED 480d2: 4480 negl %d0 <== NOT EXECUTED 480d4: 4e75 rts 00048130 : int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48130: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48134: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 48138: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED IMFS_jnode_t *jnode = node->node_access; 4813c: 2453 moveal %a3@,%a2 <== NOT EXECUTED int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 4813e: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Check for things that should never happen. */ if ( jnode->type != IMFS_SYM_LINK ) 48142: 7004 moveq #4,%d0 <== NOT EXECUTED 48144: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 48148: 6708 beqs 48152 <== NOT EXECUTED rtems_fatal_error_occurred (0xABCD0000); 4814a: 2f3c abcd 0000 movel #-1412628480,%sp@- <== NOT EXECUTED 48150: 600c bras 4815e <== NOT EXECUTED if ( !jnode->Parent ) 48152: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED 48156: 660c bnes 48164 <== NOT EXECUTED rtems_fatal_error_occurred( 0xBAD00000 ); 48158: 2f3c bad0 0000 movel #-1160773632,%sp@- <== NOT EXECUTED 4815e: 4eb9 0004 5570 jsr 45570 <== 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; 48164: 2680 movel %d0,%a3@ <== NOT EXECUTED rtems_filesystem_get_sym_start_loc( 48166: 206a 004c moveal %a2@(76),%a0 <== NOT EXECUTED 4816a: 1210 moveb %a0@,%d1 <== NOT EXECUTED 4816c: 1001 moveb %d1,%d0 <== NOT EXECUTED 4816e: 49c0 extbl %d0 <== NOT EXECUTED 48170: 762f moveq #47,%d3 <== NOT EXECUTED 48172: b680 cmpl %d0,%d3 <== NOT EXECUTED 48174: 6710 beqs 48186 <== NOT EXECUTED 48176: 163c 005c moveb #92,%d3 <== NOT EXECUTED 4817a: b680 cmpl %d0,%d3 <== NOT EXECUTED 4817c: 6708 beqs 48186 <== NOT EXECUTED 4817e: 4a01 tstb %d1 <== NOT EXECUTED 48180: 6704 beqs 48186 <== NOT EXECUTED 48182: 4280 clrl %d0 <== NOT EXECUTED 48184: 6022 bras 481a8 <== NOT EXECUTED 48186: 4878 0010 pea 10 <== NOT EXECUTED 4818a: 2039 0005 5604 movel 55604 ,%d0 <== NOT EXECUTED 48190: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 48196: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48198: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4819a: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED 481a0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 481a6: 7001 moveq #1,%d0 <== NOT EXECUTED /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 481a8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 481aa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 481ac: d0aa 004c addl %a2@(76),%d0 <== NOT EXECUTED 481b0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 481b2: 4eb9 0004 81f6 jsr 481f6 <== NOT EXECUTED &jnode->info.sym_link.name[i], flags, node ); IMFS_Set_handlers( node ); 481b8: 2f0b movel %a3,%sp@- <== NOT EXECUTED /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 481ba: 2440 moveal %d0,%a2 <== NOT EXECUTED &jnode->info.sym_link.name[i], flags, node ); IMFS_Set_handlers( node ); 481bc: 4eb9 0004 8050 jsr 48050 <== 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 ) 481c2: 2053 moveal %a3@,%a0 <== NOT EXECUTED 481c4: 2002 movel %d2,%d0 <== NOT EXECUTED 481c6: ed88 lsll #6,%d0 <== NOT EXECUTED 481c8: 2200 movel %d0,%d1 <== NOT EXECUTED 481ca: c2a8 002e andl %a0@(46),%d1 <== NOT EXECUTED 481ce: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 481d4: b081 cmpl %d1,%d0 <== NOT EXECUTED 481d6: 660c bnes 481e4 <== NOT EXECUTED if ( !IMFS_evaluate_permission( node, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 481d8: 200a movel %a2,%d0 <== NOT EXECUTED 481da: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 481e0: 4e5e unlk %fp <== NOT EXECUTED 481e2: 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 ); 481e4: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 481ea: 720d moveq #13,%d1 <== NOT EXECUTED 481ec: 2040 moveal %d0,%a0 <== NOT EXECUTED 481ee: 2081 movel %d1,%a0@ <== NOT EXECUTED 481f0: 347c ffff moveaw #-1,%a2 <== NOT EXECUTED 481f4: 60e2 bras 481d8 <== NOT EXECUTED 0004a670 : int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4a670: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED IMFS_jnode_t *jnode; #if defined(RTEMS_POSIX_API) uid_t st_uid; #endif jnode = loc->node_access; 4a674: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4a678: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 4a67c: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode; #if defined(RTEMS_POSIX_API) uid_t st_uid; #endif jnode = loc->node_access; 4a67e: 2450 moveal %a0@,%a2 <== NOT EXECUTED #endif /* * Change only the RWX permissions on the jnode to mode. */ if ( mode & (~ (S_IRWXU | S_IRWXG | S_IRWXO ) ) ) 4a680: 2001 movel %d1,%d0 <== NOT EXECUTED 4a682: 0280 ffff fe00 andil #-512,%d0 <== NOT EXECUTED 4a688: 6710 beqs 4a69a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EPERM ); 4a68a: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 4a690: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a692: 7001 moveq #1,%d0 <== NOT EXECUTED 4a694: 2080 movel %d0,%a0@ <== NOT EXECUTED 4a696: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a698: 6026 bras 4a6c0 <== NOT EXECUTED jnode->st_mode &= ~(S_IRWXU | S_IRWXG | S_IRWXO); jnode->st_mode |= mode; 4a69a: 202a 002e movel %a2@(46),%d0 <== NOT EXECUTED 4a69e: 0280 ffff fe00 andil #-512,%d0 <== NOT EXECUTED 4a6a4: 8280 orl %d0,%d1 <== NOT EXECUTED 4a6a6: 2541 002e movel %d1,%a2@(46) <== NOT EXECUTED IMFS_update_ctime( jnode ); 4a6aa: 42a7 clrl %sp@- <== NOT EXECUTED 4a6ac: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4a6b0: 4eb9 0004 8f20 jsr 48f20 <== NOT EXECUTED 4a6b6: 508f addql #8,%sp <== NOT EXECUTED 4a6b8: 4280 clrl %d0 <== NOT EXECUTED 4a6ba: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; } 4a6c0: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4a6c4: 4e5e unlk %fp <== NOT EXECUTED 4a6c6: 4e75 rts 00065d00 : int IMFS_fcntl( int cmd, rtems_libio_t *iop ) { 65d00: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 65d04: 4e5e unlk %fp <== NOT EXECUTED 65d06: 4280 clrl %d0 <== NOT EXECUTED 65d08: 4e75 rts <== NOT EXECUTED ... 00065d0c : #include "imfs.h" int IMFS_fdatasync( rtems_libio_t *iop ) { 65d0c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 65d10: 4e5e unlk %fp <== NOT EXECUTED 65d12: 4280 clrl %d0 <== NOT EXECUTED 65d14: 4e75 rts <== NOT EXECUTED ... 000486d0 : IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 486d0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 486d4: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 486d8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 486dc: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Check for fatal errors. A NULL directory show a problem in the * the IMFS code. */ assert( directory ); 486e0: 4a8a tstl %a2 <== NOT EXECUTED 486e2: 661c bnes 48700 <== NOT EXECUTED 486e4: 4879 0005 4995 pea 54995 <== NOT EXECUTED 486ea: 4879 0005 4352 pea 54352 <__func__.5105> <== NOT EXECUTED 486f0: 4878 002a pea 2a <== NOT EXECUTED 486f4: 4879 0005 42fe pea 542fe <== NOT EXECUTED 486fa: 4eb9 0004 8adc jsr 48adc <__assert_func> <== NOT EXECUTED if ( !name ) 48700: 4a82 tstl %d2 <== NOT EXECUTED 48702: 6750 beqs 48754 <== NOT EXECUTED /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 48704: 4879 0005 434d pea 5434d <== NOT EXECUTED 4870a: 49f9 0004 c094 lea 4c094 ,%a4 <== NOT EXECUTED 48710: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48712: 4e94 jsr %a4@ <== NOT EXECUTED 48714: 508f addql #8,%sp <== NOT EXECUTED 48716: 4a80 tstl %d0 <== NOT EXECUTED 48718: 673c beqs 48756 <== NOT EXECUTED return directory; if ( !strcmp( name, dotdotname ) ) 4871a: 4879 0005 434f pea 5434f <== NOT EXECUTED 48720: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48722: 4e94 jsr %a4@ <== NOT EXECUTED 48724: 508f addql #8,%sp <== NOT EXECUTED 48726: 4a80 tstl %d0 <== NOT EXECUTED 48728: 6606 bnes 48730 <== NOT EXECUTED return directory->Parent; 4872a: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 4872e: 6026 bras 48756 <== NOT EXECUTED the_chain = &directory->info.directory.Entries; for ( the_node = the_chain->first; 48730: 266a 004c moveal %a2@(76),%a3 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 48734: d5fc 0000 0050 addal #80,%a2 <== NOT EXECUTED 4873a: 6014 bras 48750 <== NOT EXECUTED !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 ) ) 4873c: 486b 000c pea %a3@(12) <== NOT EXECUTED 48740: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48742: 4e94 jsr %a4@ <== NOT EXECUTED 48744: 508f addql #8,%sp <== NOT EXECUTED 48746: 4a80 tstl %d0 <== NOT EXECUTED 48748: 6604 bnes 4874e <== NOT EXECUTED 4874a: 244b moveal %a3,%a2 <== NOT EXECUTED 4874c: 6008 bras 48756 <== NOT EXECUTED the_chain = &directory->info.directory.Entries; for ( the_node = the_chain->first; !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { 4874e: 2653 moveal %a3@,%a3 <== NOT EXECUTED return directory->Parent; the_chain = &directory->info.directory.Entries; for ( the_node = the_chain->first; !rtems_chain_is_tail( the_chain, the_node ); 48750: b5cb cmpal %a3,%a2 <== NOT EXECUTED 48752: 66e8 bnes 4873c <== NOT EXECUTED 48754: 95ca subal %a2,%a2 <== NOT EXECUTED if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; } 48756: 200a movel %a2,%d0 <== NOT EXECUTED 48758: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 4875e: 4e5e unlk %fp <== NOT EXECUTED 48760: 4e75 rts <== NOT EXECUTED ... 0005a4c8 : */ int IMFS_freenodinfo( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 5a4c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 5a4cc: 4e5e unlk %fp <== NOT EXECUTED 5a4ce: 4280 clrl %d0 <== NOT EXECUTED 5a4d0: 4e75 rts <== NOT EXECUTED ... 0005a4d4 : ((IMFS_jnode_t *)( rtems_chain_head( jnode_get_control( jnode ) )->next)) int IMFS_fsunmount( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 5a4d4: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 5a4d8: 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; 5a4dc: 4878 0010 pea 10 <== NOT EXECUTED ((IMFS_jnode_t *)( rtems_chain_head( jnode_get_control( jnode ) )->next)) int IMFS_fsunmount( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 5a4e0: 246e 0008 moveal %fp@(8),%a2 <== 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; 5a4e4: 486a 0018 pea %a2@(24) <== 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; 5a4e8: 266a 0018 moveal %a2@(24),%a3 <== NOT EXECUTED loc = temp_mt_entry->mt_fs_root; 5a4ec: 240e movel %fp,%d2 <== NOT EXECUTED 5a4ee: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 5a4f4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5a4f6: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED /* * Set this to null to indicate that it is being unmounted. */ temp_mt_entry->mt_fs_root.node_access = NULL; 5a4fc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED do { next = jnode->Parent; loc.node_access = (void *)jnode; IMFS_Set_handlers( &loc ); 5a502: 4bf9 0005 9e48 lea 59e48 ,%a5 <== NOT EXECUTED if ( jnode->type != IMFS_DIRECTORY ) { result = IMFS_unlink( &loc ); 5a508: 49f9 0004 4c08 lea 44c08 ,%a4 <== NOT EXECUTED /* * Set this to null to indicate that it is being unmounted. */ temp_mt_entry->mt_fs_root.node_access = NULL; 5a50e: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED do { next = jnode->Parent; 5a512: 246b 0008 moveal %a3@(8),%a2 <== NOT EXECUTED loc.node_access = (void *)jnode; 5a516: 2d4b fff0 movel %a3,%fp@(-16) <== NOT EXECUTED IMFS_Set_handlers( &loc ); 5a51a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5a51c: 4e95 jsr %a5@ <== NOT EXECUTED if ( jnode->type != IMFS_DIRECTORY ) { result = IMFS_unlink( &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { 5a51e: 200b movel %a3,%d0 <== NOT EXECUTED do { next = jnode->Parent; loc.node_access = (void *)jnode; IMFS_Set_handlers( &loc ); if ( jnode->type != IMFS_DIRECTORY ) { 5a520: 588f addql #4,%sp <== NOT EXECUTED result = IMFS_unlink( &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { 5a522: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED do { next = jnode->Parent; loc.node_access = (void *)jnode; IMFS_Set_handlers( &loc ); if ( jnode->type != IMFS_DIRECTORY ) { 5a528: 7201 moveq #1,%d1 <== NOT EXECUTED 5a52a: b2ab 0048 cmpl %a3@(72),%d1 <== NOT EXECUTED 5a52e: 6606 bnes 5a536 <== NOT EXECUTED result = IMFS_unlink( &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { 5a530: b0ab 004c cmpl %a3@(76),%d0 <== NOT EXECUTED 5a534: 660c bnes 5a542 <== NOT EXECUTED result = IMFS_unlink( &loc ); 5a536: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5a538: 4e94 jsr %a4@ <== NOT EXECUTED if (result != 0) 5a53a: 588f addql #4,%sp <== NOT EXECUTED 5a53c: 4a80 tstl %d0 <== NOT EXECUTED 5a53e: 6626 bnes 5a566 <== NOT EXECUTED 5a540: 264a moveal %a2,%a3 <== NOT EXECUTED return -1; jnode = next; } if ( jnode != NULL ) { 5a542: 4a8b tstl %a3 <== NOT EXECUTED 5a544: 6724 beqs 5a56a <== NOT EXECUTED if ( jnode->type == IMFS_DIRECTORY ) { 5a546: 7001 moveq #1,%d0 <== NOT EXECUTED 5a548: b0ab 0048 cmpl %a3@(72),%d0 <== NOT EXECUTED 5a54c: 66c4 bnes 5a512 <== NOT EXECUTED if ( jnode_has_children( jnode ) ) 5a54e: 200b movel %a3,%d0 <== NOT EXECUTED 5a550: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED 5a556: b0ab 004c cmpl %a3@(76),%d0 <== NOT EXECUTED 5a55a: 67b6 beqs 5a512 <== NOT EXECUTED jnode = jnode_get_first_child( jnode ); 5a55c: 266b 004c moveal %a3@(76),%a3 <== NOT EXECUTED } } } while (jnode != NULL); 5a560: 4a8b tstl %a3 <== NOT EXECUTED 5a562: 66ae bnes 5a512 <== NOT EXECUTED 5a564: 6004 bras 5a56a <== NOT EXECUTED 5a566: 70ff moveq #-1,%d0 <== NOT EXECUTED 5a568: 6002 bras 5a56c <== NOT EXECUTED 5a56a: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5a56c: 4cee 3c04 ffdc moveml %fp@(-36),%d2/%a2-%a5 <== NOT EXECUTED 5a572: 4e5e unlk %fp <== NOT EXECUTED 5a574: 4e75 rts <== NOT EXECUTED ... 00048764 : IMFS_token_types IMFS_get_token( const char *path, char *token, int *token_len ) { 48764: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48768: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 4876c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48770: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 48774: 1410 moveb %a0@,%d2 <== NOT EXECUTED 48776: 4280 clrl %d0 <== NOT EXECUTED 48778: 6016 bras 48790 <== NOT EXECUTED while ( (!IMFS_is_separator(c)) && (i <= IMFS_NAME_MAX) ) { token[i] = c; 4877a: 1782 0800 moveb %d2,%a3@(00000000,%d0:l) <== NOT EXECUTED if ( i == IMFS_NAME_MAX ) 4877e: 7220 moveq #32,%d1 <== NOT EXECUTED 48780: b280 cmpl %d0,%d1 <== NOT EXECUTED 48782: 6606 bnes 4878a <== NOT EXECUTED 48784: 7404 moveq #4,%d2 <== NOT EXECUTED 48786: 6000 0086 braw 4880e <== NOT EXECUTED return IMFS_INVALID_TOKEN; if ( !IMFS_is_valid_name_char(c) ) type = IMFS_INVALID_TOKEN; c = path [++i]; 4878a: 5280 addql #1,%d0 <== NOT EXECUTED 4878c: 1430 0800 moveb %a0@(00000000,%d0:l),%d2 <== NOT EXECUTED /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; while ( (!IMFS_is_separator(c)) && (i <= IMFS_NAME_MAX) ) { 48790: 1202 moveb %d2,%d1 <== NOT EXECUTED 48792: 49c1 extbl %d1 <== NOT EXECUTED 48794: 762f moveq #47,%d3 <== NOT EXECUTED 48796: b681 cmpl %d1,%d3 <== NOT EXECUTED 48798: 6714 beqs 487ae <== NOT EXECUTED 4879a: 163c 005c moveb #92,%d3 <== NOT EXECUTED 4879e: b681 cmpl %d1,%d3 <== NOT EXECUTED 487a0: 670c beqs 487ae <== NOT EXECUTED 487a2: 4a02 tstb %d2 <== NOT EXECUTED 487a4: 6708 beqs 487ae <== NOT EXECUTED 487a6: 7220 moveq #32,%d1 <== NOT EXECUTED 487a8: b280 cmpl %d0,%d1 <== NOT EXECUTED 487aa: 6cce bges 4877a <== NOT EXECUTED 487ac: 6014 bras 487c2 <== NOT EXECUTED 487ae: 2200 movel %d0,%d1 <== NOT EXECUTED /* * Copy a seperator into token. */ if ( i == 0 ) { 487b0: 6610 bnes 487c2 <== NOT EXECUTED token[i] = c; 487b2: 1682 moveb %d2,%a3@ <== NOT EXECUTED if ( token[i] != '\0' ) { 487b4: 6708 beqs 487be <== NOT EXECUTED 487b6: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 487ba: 7401 moveq #1,%d2 <== NOT EXECUTED 487bc: 6018 bras 487d6 <== NOT EXECUTED 487be: 4282 clrl %d2 <== NOT EXECUTED 487c0: 6014 bras 487d6 <== NOT EXECUTED i++; type = IMFS_CURRENT_DIR; } else { type = IMFS_NO_MORE_PATH; } } else if (token[ i-1 ] != '\0') { 487c2: 4a33 08ff tstb %a3@(ffffffff,%d0:l) <== NOT EXECUTED 487c6: 6604 bnes 487cc <== NOT EXECUTED 487c8: 2200 movel %d0,%d1 <== NOT EXECUTED 487ca: 6008 bras 487d4 <== NOT EXECUTED token[i] = '\0'; 487cc: 4202 clrb %d2 <== NOT EXECUTED 487ce: 2200 movel %d0,%d1 <== NOT EXECUTED 487d0: 1782 0800 moveb %d2,%a3@(00000000,%d0:l) <== NOT EXECUTED 487d4: 7403 moveq #3,%d2 <== NOT EXECUTED /* * Set token_len to the number of characters copied. */ *token_len = i; 487d6: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED /* * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { 487da: 7603 moveq #3,%d3 <== NOT EXECUTED /* * Set token_len to the number of characters copied. */ *token_len = i; 487dc: 2081 movel %d1,%a0@ <== NOT EXECUTED /* * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { 487de: b682 cmpl %d2,%d3 <== NOT EXECUTED 487e0: 662c bnes 4880e <== NOT EXECUTED if ( strcmp( token, "..") == 0 ) 487e2: 4879 0005 40f4 pea 540f4 <== NOT EXECUTED 487e8: 45f9 0004 c094 lea 4c094 ,%a2 <== NOT EXECUTED 487ee: 2f0b movel %a3,%sp@- <== NOT EXECUTED 487f0: 4e92 jsr %a2@ <== NOT EXECUTED 487f2: 508f addql #8,%sp <== NOT EXECUTED 487f4: 4a80 tstl %d0 <== NOT EXECUTED 487f6: 6604 bnes 487fc <== NOT EXECUTED 487f8: 7402 moveq #2,%d2 <== NOT EXECUTED 487fa: 6012 bras 4880e <== NOT EXECUTED type = IMFS_UP_DIR; else if ( strcmp( token, "." ) == 0 ) 487fc: 4879 0005 40f5 pea 540f5 <== NOT EXECUTED 48802: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48804: 4e92 jsr %a2@ <== NOT EXECUTED 48806: 508f addql #8,%sp <== NOT EXECUTED 48808: 4a80 tstl %d0 <== NOT EXECUTED 4880a: 6602 bnes 4880e <== NOT EXECUTED 4880c: 7401 moveq #1,%d2 <== NOT EXECUTED type = IMFS_CURRENT_DIR; } return type; } 4880e: 2002 movel %d2,%d0 <== NOT EXECUTED 48810: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 48816: 4e5e unlk %fp <== NOT EXECUTED 48818: 4e75 rts <== NOT EXECUTED ... 00044898 : */ int IMFS_initialize( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 44898: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return IMFS_initialize_support( 4489c: 4879 0007 a41a pea 7a41a <== NOT EXECUTED 448a2: 4879 0007 a48a pea 7a48a <== NOT EXECUTED 448a8: 4879 0007 83c4 pea 783c4 <== NOT EXECUTED 448ae: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 448b2: 4eb9 0004 48bc jsr 448bc <== NOT EXECUTED temp_mt_entry, &IMFS_ops, &IMFS_memfile_handlers, &IMFS_directory_handlers ); } 448b8: 4e5e unlk %fp <== NOT EXECUTED 448ba: 4e75 rts 0004881c : rtems_filesystem_mount_table_entry_t *temp_mt_entry, const rtems_filesystem_operations_table *op_table, const rtems_filesystem_file_handlers_r *memfile_handlers, const rtems_filesystem_file_handlers_r *directory_handlers ) { 4881c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 48820: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 48824: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 48828: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED IMFS_jnode_t *jnode; /* * determine/check value for imfs_memfile_bytes_per_block */ IMFS_determine_bytes_per_block(&imfs_memfile_bytes_per_block, 4882c: 2079 0005 50ec moveal 550ec ,%a0 <== NOT EXECUTED 48832: 7210 moveq #16,%d1 <== NOT EXECUTED 48834: 4280 clrl %d0 <== NOT EXECUTED /* * check, whether requested bytes per block is valid */ for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) { 48836: 5280 addql #1,%d0 <== NOT EXECUTED int bit_mask; /* * check, whether requested bytes per block is valid */ for (bit_mask = 16; !is_valid && (bit_mask <= 512); 48838: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 4883a: 670e beqs 4884a <== NOT EXECUTED bit_mask <<= 1) { 4883c: d281 addl %d1,%d1 <== NOT EXECUTED int bit_mask; /* * check, whether requested bytes per block is valid */ for (bit_mask = 16; !is_valid && (bit_mask <= 512); 4883e: 7606 moveq #6,%d3 <== NOT EXECUTED 48840: b680 cmpl %d0,%d3 <== NOT EXECUTED 48842: 66f2 bnes 48836 <== NOT EXECUTED 48844: 223c 0000 0080 movel #128,%d1 <== NOT EXECUTED * Create the root node * * NOTE: UNIX root is 755 and owned by root/root (0/0). */ temp_mt_entry->mt_fs_root.node_access = IMFS_create_node( 4884a: 42a7 clrl %sp@- <== NOT EXECUTED 4884c: 4878 41ed pea 41ed <== NOT EXECUTED 48850: 4879 0005 4118 pea 54118 <== NOT EXECUTED 48856: 4878 0001 pea 1 <== NOT EXECUTED bit_mask <<= 1) { if (bit_mask == requested_bytes_per_block) { is_valid = true; } } *dest_bytes_per_block = ((is_valid) 4885a: 23c1 0005 6458 movel %d1,56458 <== NOT EXECUTED * Create the root node * * NOTE: UNIX root is 755 and owned by root/root (0/0). */ temp_mt_entry->mt_fs_root.node_access = IMFS_create_node( 48860: 42a7 clrl %sp@- <== NOT EXECUTED 48862: 4eb9 0004 a52c jsr 4a52c <== NOT EXECUTED NULL ); temp_mt_entry->mt_fs_root.handlers = directory_handlers; temp_mt_entry->mt_fs_root.ops = op_table; temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS; 48868: 4878 0030 pea 30 <== NOT EXECUTED 4886c: 4879 0005 45d6 pea 545d6 <== NOT EXECUTED 48872: 486a 0030 pea %a2@(48) <== NOT EXECUTED ( S_IFDIR | 0755 ), NULL ); temp_mt_entry->mt_fs_root.handlers = directory_handlers; temp_mt_entry->mt_fs_root.ops = op_table; 48876: 256e 000c 0020 movel %fp@(12),%a2@(32) <== NOT EXECUTED * Create the root node * * NOTE: UNIX root is 755 and owned by root/root (0/0). */ temp_mt_entry->mt_fs_root.node_access = IMFS_create_node( 4887c: 2540 0018 movel %d0,%a2@(24) <== NOT EXECUTED "", ( S_IFDIR | 0755 ), NULL ); temp_mt_entry->mt_fs_root.handlers = directory_handlers; 48880: 2542 001c movel %d2,%a2@(28) <== NOT EXECUTED temp_mt_entry->mt_fs_root.ops = op_table; temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS; 48884: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED /* * Create custom file system data. */ fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); 4888a: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 48890: 4878 000c pea c <== NOT EXECUTED 48894: 4878 0001 pea 1 <== NOT EXECUTED 48898: 4eb9 0004 8cd4 jsr 48cd4 <== NOT EXECUTED if ( !fs_info ){ 4889e: 508f addql #8,%sp <== NOT EXECUTED 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 ) ); 488a0: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !fs_info ){ 488a2: 4a80 tstl %d0 <== NOT EXECUTED 488a4: 661c bnes 488c2 <== NOT EXECUTED free(temp_mt_entry->mt_fs_root.node_access); 488a6: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 488aa: 4eb9 0004 8dc4 jsr 48dc4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one(ENOMEM); 488b0: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 488b6: 720c moveq #12,%d1 <== NOT EXECUTED 488b8: 2040 moveal %d0,%a0 <== NOT EXECUTED 488ba: 2081 movel %d1,%a0@ <== NOT EXECUTED 488bc: 588f addql #4,%sp <== NOT EXECUTED 488be: 70ff moveq #-1,%d0 <== NOT EXECUTED 488c0: 601e bras 488e0 <== NOT EXECUTED /* * Set st_ino for the root to 1. */ fs_info->ino_count = 1; 488c2: 7001 moveq #1,%d0 <== NOT EXECUTED 488c4: 2280 movel %d0,%a1@ <== NOT EXECUTED fs_info->memfile_handlers = memfile_handlers; fs_info->directory_handlers = directory_handlers; jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; 488c6: 206a 0018 moveal %a2@(24),%a0 <== NOT EXECUTED 488ca: 7001 moveq #1,%d0 <== NOT EXECUTED 488cc: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED 488d0: 4200 clrb %d0 <== NOT EXECUTED /* * Set st_ino for the root to 1. */ fs_info->ino_count = 1; fs_info->memfile_handlers = memfile_handlers; 488d2: 236e 0010 0004 movel %fp@(16),%a1@(4) <== NOT EXECUTED fs_info->directory_handlers = directory_handlers; 488d8: 2342 0008 movel %d2,%a1@(8) <== NOT EXECUTED fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); if ( !fs_info ){ free(temp_mt_entry->mt_fs_root.node_access); rtems_set_errno_and_return_minus_one(ENOMEM); } temp_mt_entry->fs_info = fs_info; 488dc: 2549 002c movel %a1,%a2@(44) <== NOT EXECUTED jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; return 0; } 488e0: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 488e6: 4e5e unlk %fp <== NOT EXECUTED 488e8: 4e75 rts <== NOT EXECUTED ... 0004498c : int IMFS_link( rtems_filesystem_location_info_t *to_loc, /* IN */ rtems_filesystem_location_info_t *parent_loc, /* IN */ const char *token /* IN */ ) { 4498c: 4e56 ffc0 linkw %fp,#-64 <== NOT EXECUTED 44990: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED /* * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; 44994: 2050 moveal %a0@,%a0 <== NOT EXECUTED if ( info.hard_link.link_node->st_nlink >= LINK_MAX ) 44996: 4280 clrl %d0 <== NOT EXECUTED /* * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; 44998: 2d48 ffe4 movel %a0,%fp@(-28) <== NOT EXECUTED if ( info.hard_link.link_node->st_nlink >= LINK_MAX ) 4499c: 3028 0032 movew %a0@(50),%d0 <== NOT EXECUTED 449a0: 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 */ ) { 449a2: 2f02 movel %d2,%sp@- <== 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 ) 449a4: b280 cmpl %d0,%d1 <== NOT EXECUTED 449a6: 640e bccs 449b6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EMLINK ); 449a8: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 449ae: 721f moveq #31,%d1 <== NOT EXECUTED 449b0: 2040 moveal %d0,%a0 <== NOT EXECUTED 449b2: 2081 movel %d1,%a0@ <== NOT EXECUTED 449b4: 6048 bras 449fe <== NOT EXECUTED /* * Remove any separators at the end of the string. */ IMFS_get_token( token, new_name, &i ); 449b6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 449ba: 240e movel %fp,%d2 <== NOT EXECUTED 449bc: 0682 ffff ffc3 addil #-61,%d2 <== NOT EXECUTED 449c2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 449c4: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 449c8: 4eb9 0004 47e0 jsr 447e0 <== NOT EXECUTED /* * Create a new link node. */ new_node = IMFS_create_node( 449ce: 486e ffe4 pea %fp@(-28) <== NOT EXECUTED 449d2: 2f3c 0000 a1ff movel #41471,%sp@- <== NOT EXECUTED 449d8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 449da: 4878 0003 pea 3 <== NOT EXECUTED 449de: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 449e2: 4eb9 0005 9d04 jsr 59d04 <== NOT EXECUTED new_name, ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if ( !new_node ) 449e8: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 449ee: 4a80 tstl %d0 <== NOT EXECUTED 449f0: 6610 bnes 44a02 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM ); 449f2: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 449f8: 2040 moveal %d0,%a0 <== NOT EXECUTED 449fa: 700c moveq #12,%d0 <== NOT EXECUTED 449fc: 2080 movel %d0,%a0@ <== NOT EXECUTED 449fe: 70ff moveq #-1,%d0 <== NOT EXECUTED 44a00: 6028 bras 44a2a <== NOT EXECUTED /* * Increment the link count of the node being pointed to. */ info.hard_link.link_node->st_nlink++; 44a02: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 44a06: 3028 0032 movew %a0@(50),%d0 <== NOT EXECUTED 44a0a: 5280 addql #1,%d0 <== NOT EXECUTED 44a0c: 3140 0032 movew %d0,%a0@(50) <== NOT EXECUTED IMFS_update_ctime( info.hard_link.link_node ); 44a10: 42a7 clrl %sp@- <== NOT EXECUTED 44a12: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 44a16: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 44a1c: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 44a20: 508f addql #8,%sp <== NOT EXECUTED 44a22: 4280 clrl %d0 <== NOT EXECUTED 44a24: 216e fff4 0044 movel %fp@(-12),%a0@(68) <== NOT EXECUTED return 0; } 44a2a: 242e ffbc movel %fp@(-68),%d2 <== NOT EXECUTED 44a2e: 4e5e unlk %fp <== NOT EXECUTED 44a30: 4e75 rts <== NOT EXECUTED ... 0006077e : MEMFILE_STATIC int IMFS_memfile_addblock( IMFS_jnode_t *the_jnode, unsigned int block ) { 6077e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 60782: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 60786: 2f0a movel %a2,%sp@- <== NOT EXECUTED block_p memory; block_p *block_entry_ptr; assert( the_jnode ); 60788: 4a88 tstl %a0 <== NOT EXECUTED 6078a: 6612 bnes 6079e <== NOT EXECUTED 6078c: 4879 0007 a7c7 pea 7a7c7 <== NOT EXECUTED 60792: 4879 0007 a942 pea 7a942 <__func__.5656> <== NOT EXECUTED 60798: 4878 0169 pea 169 <== NOT EXECUTED 6079c: 6018 bras 607b6 <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 6079e: 7005 moveq #5,%d0 <== NOT EXECUTED 607a0: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 607a4: 671c beqs 607c2 <== NOT EXECUTED 607a6: 4879 0007 a81a pea 7a81a <== NOT EXECUTED 607ac: 4879 0007 a942 pea 7a942 <__func__.5656> <== NOT EXECUTED 607b2: 4878 016d pea 16d <== NOT EXECUTED 607b6: 4879 0007 a7d1 pea 7a7d1 <== NOT EXECUTED 607bc: 4eb9 0005 a790 jsr 5a790 <__assert_func> <== NOT EXECUTED if ( the_jnode->type != IMFS_MEMORY_FILE ) rtems_set_errno_and_return_minus_one( EIO ); block_entry_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 1 ); 607c2: 4878 0001 pea 1 <== NOT EXECUTED 607c6: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 607ca: 2f08 movel %a0,%sp@- <== NOT EXECUTED 607cc: 4eb9 0006 0374 jsr 60374 <== NOT EXECUTED if ( *block_entry_ptr ) 607d2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED assert( the_jnode->type == IMFS_MEMORY_FILE ); if ( the_jnode->type != IMFS_MEMORY_FILE ) rtems_set_errno_and_return_minus_one( EIO ); block_entry_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 1 ); 607d8: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( *block_entry_ptr ) 607da: 4a92 tstl %a2@ <== NOT EXECUTED 607dc: 6704 beqs 607e2 <== NOT EXECUTED 607de: 4280 clrl %d0 <== NOT EXECUTED 607e0: 6012 bras 607f4 <== NOT EXECUTED #if 0 fprintf(stdout, "%d %p", block, block_entry_ptr ); fflush(stdout); #endif memory = memfile_alloc_block(); 607e2: 4eb9 0006 0350 jsr 60350 <== NOT EXECUTED 607e8: 2200 movel %d0,%d1 <== NOT EXECUTED if ( !memory ) 607ea: 6604 bnes 607f0 <== NOT EXECUTED 607ec: 7001 moveq #1,%d0 <== NOT EXECUTED 607ee: 6004 bras 607f4 <== NOT EXECUTED return 1; *block_entry_ptr = memory; 607f0: 4280 clrl %d0 <== NOT EXECUTED 607f2: 2481 movel %d1,%a2@ <== NOT EXECUTED return 0; } 607f4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 607f8: 4e5e unlk %fp <== NOT EXECUTED 607fa: 4e75 rts 000607fc : MEMFILE_STATIC int IMFS_memfile_extend( IMFS_jnode_t *the_jnode, off_t new_length ) { 607fc: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 60800: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 60804: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 60808: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 6080c: 4a8a tstl %a2 <== NOT EXECUTED 6080e: 6612 bnes 60822 <== NOT EXECUTED 60810: 4879 0007 a7c7 pea 7a7c7 <== NOT EXECUTED 60816: 4879 0007 a958 pea 7a958 <__func__.5623> <== NOT EXECUTED 6081c: 4878 0131 pea 131 <== NOT EXECUTED 60820: 6018 bras 6083a <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 60822: 7005 moveq #5,%d0 <== NOT EXECUTED 60824: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 60828: 671c beqs 60846 <== NOT EXECUTED 6082a: 4879 0007 a81a pea 7a81a <== NOT EXECUTED 60830: 4879 0007 a958 pea 7a958 <__func__.5623> <== NOT EXECUTED 60836: 4878 0135 pea 135 <== NOT EXECUTED 6083a: 4879 0007 a7d1 pea 7a7d1 <== NOT EXECUTED 60840: 4eb9 0005 a790 jsr 5a790 <__assert_func> <== NOT EXECUTED if ( the_jnode->type != IMFS_MEMORY_FILE ) rtems_set_errno_and_return_minus_one( EIO ); if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) 60846: 2439 0007 f028 movel 7f028 ,%d2 <== NOT EXECUTED 6084c: 2202 movel %d2,%d1 <== NOT EXECUTED 6084e: e489 lsrl #2,%d1 <== NOT EXECUTED 60850: 2001 movel %d1,%d0 <== NOT EXECUTED 60852: 5280 addql #1,%d0 <== NOT EXECUTED 60854: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 60858: 5280 addql #1,%d0 <== NOT EXECUTED 6085a: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 6085e: 5380 subql #1,%d0 <== NOT EXECUTED 60860: 4c02 0800 mulsl %d2,%d0 <== NOT EXECUTED 60864: b083 cmpl %d3,%d0 <== NOT EXECUTED 60866: 620e bhis 60876 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 60868: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 6086e: 7216 moveq #22,%d1 <== NOT EXECUTED 60870: 2040 moveal %d0,%a0 <== NOT EXECUTED 60872: 2081 movel %d1,%a0@ <== NOT EXECUTED 60874: 6052 bras 608c8 <== NOT EXECUTED if ( new_length <= the_jnode->info.file.size ) 60876: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 6087a: b083 cmpl %d3,%d0 <== NOT EXECUTED 6087c: 6d04 blts 60882 <== NOT EXECUTED 6087e: 4280 clrl %d0 <== NOT EXECUTED 60880: 6056 bras 608d8 <== NOT EXECUTED /* * Calculate the number of range of blocks to allocate */ new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK; old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK; 60882: 2a00 movel %d0,%d5 <== NOT EXECUTED /* * Calculate the number of range of blocks to allocate */ new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK; 60884: 2803 movel %d3,%d4 <== NOT EXECUTED old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK; 60886: 4c42 5805 remsl %d2,%d5,%d5 <== NOT EXECUTED /* * Calculate the number of range of blocks to allocate */ new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK; 6088a: 4c42 4804 remsl %d2,%d4,%d4 <== NOT EXECUTED old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK; 6088e: 2405 movel %d5,%d2 <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { if ( IMFS_memfile_addblock( the_jnode, block ) ) { 60890: 47f9 0006 077e lea 6077e ,%a3 <== NOT EXECUTED 60896: 6036 bras 608ce <== NOT EXECUTED 60898: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6089a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6089c: 4e93 jsr %a3@ <== NOT EXECUTED 6089e: 508f addql #8,%sp <== NOT EXECUTED 608a0: 4a80 tstl %d0 <== NOT EXECUTED 608a2: 6728 beqs 608cc <== NOT EXECUTED 608a4: 600c bras 608b2 <== NOT EXECUTED for ( ; block>=old_blocks ; block-- ) { IMFS_memfile_remove_block( the_jnode, block ); 608a6: 2f02 movel %d2,%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-- ) { 608a8: 5382 subql #1,%d2 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 608aa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 608ac: 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-- ) { 608ae: 508f addql #8,%sp <== NOT EXECUTED 608b0: 6006 bras 608b8 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 608b2: 47f9 0006 050c lea 6050c ,%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-- ) { 608b8: ba82 cmpl %d2,%d5 <== NOT EXECUTED 608ba: 63ea blss 608a6 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); } rtems_set_errno_and_return_minus_one( ENOSPC ); 608bc: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 608c2: 2040 moveal %d0,%a0 <== NOT EXECUTED 608c4: 701c moveq #28,%d0 <== NOT EXECUTED 608c6: 2080 movel %d0,%a0@ <== NOT EXECUTED 608c8: 70ff moveq #-1,%d0 <== NOT EXECUTED 608ca: 600c bras 608d8 <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { 608cc: 5282 addql #1,%d2 <== NOT EXECUTED 608ce: b882 cmpl %d2,%d4 <== NOT EXECUTED 608d0: 64c6 bccs 60898 <== NOT EXECUTED /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; 608d2: 4280 clrl %d0 <== NOT EXECUTED 608d4: 2543 004c movel %d3,%a2@(76) <== NOT EXECUTED return 0; } 608d8: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 608de: 4e5e unlk %fp <== NOT EXECUTED 608e0: 4e75 rts 00060374 : #endif IMFS_jnode_t *the_jnode, unsigned int block, int malloc_it ) { 60374: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 60378: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 6037c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 60380: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 60384: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 60388: 4a8a tstl %a2 <== NOT EXECUTED 6038a: 6612 bnes 6039e <== NOT EXECUTED 6038c: 4879 0007 a7c7 pea 7a7c7 <== NOT EXECUTED 60392: 4879 0007 a8cd pea 7a8cd <__func__.5843> <== NOT EXECUTED 60398: 4878 0386 pea 386 <== NOT EXECUTED 6039c: 6018 bras 603b6 <== NOT EXECUTED if ( !the_jnode ) return NULL; assert( the_jnode->type == IMFS_MEMORY_FILE ); 6039e: 7005 moveq #5,%d0 <== NOT EXECUTED 603a0: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 603a4: 671c beqs 603c2 <== NOT EXECUTED 603a6: 4879 0007 a81a pea 7a81a <== NOT EXECUTED 603ac: 4879 0007 a8cd pea 7a8cd <__func__.5843> <== NOT EXECUTED 603b2: 4878 038a pea 38a <== NOT EXECUTED 603b6: 4879 0007 a7d1 pea 7a7d1 <== NOT EXECUTED 603bc: 4eb9 0005 a790 jsr 5a790 <__assert_func> <== NOT EXECUTED /* * Is the block number in the simple indirect portion? */ if ( my_block <= LAST_INDIRECT ) { 603c2: 2239 0007 f028 movel 7f028 ,%d1 <== NOT EXECUTED 603c8: e489 lsrl #2,%d1 <== NOT EXECUTED 603ca: 2001 movel %d1,%d0 <== NOT EXECUTED 603cc: 5380 subql #1,%d0 <== NOT EXECUTED 603ce: b082 cmpl %d2,%d0 <== NOT EXECUTED 603d0: 6530 bcss 60402 <== NOT EXECUTED #if 0 fprintf(stdout, "(s %d) ", block ); fflush(stdout); #endif p = info->indirect; 603d2: 206a 0050 moveal %a2@(80),%a0 <== NOT EXECUTED if ( malloc_it ) { 603d6: 4a89 tstl %a1 <== NOT EXECUTED 603d8: 671e beqs 603f8 <== NOT EXECUTED if ( !p ) { 603da: 4a88 tstl %a0 <== NOT EXECUTED 603dc: 6610 bnes 603ee <== NOT EXECUTED p = memfile_alloc_block(); 603de: 4eb9 0006 0350 jsr 60350 <== NOT EXECUTED if ( !p ) 603e4: 4a80 tstl %d0 <== NOT EXECUTED 603e6: 6700 0116 beqw 604fe <== NOT EXECUTED return 0; info->indirect = p; 603ea: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED } return &info->indirect[ my_block ]; 603ee: 206a 0050 moveal %a2@(80),%a0 <== NOT EXECUTED 603f2: e58a lsll #2,%d2 <== NOT EXECUTED 603f4: 6000 0104 braw 604fa <== NOT EXECUTED } if ( !p ) 603f8: 4a88 tstl %a0 <== NOT EXECUTED 603fa: 6600 00e6 bnew 604e2 <== NOT EXECUTED 603fe: 6000 00fe braw 604fe <== NOT EXECUTED /* * Is the block number in the doubly indirect portion? */ if ( my_block <= LAST_DOUBLY_INDIRECT ) { 60402: 2601 movel %d1,%d3 <== NOT EXECUTED 60404: 5283 addql #1,%d3 <== NOT EXECUTED 60406: 4c01 3800 mulsl %d1,%d3 <== NOT EXECUTED 6040a: 2003 movel %d3,%d0 <== NOT EXECUTED 6040c: 5380 subql #1,%d0 <== NOT EXECUTED 6040e: b082 cmpl %d2,%d0 <== NOT EXECUTED 60410: 655c bcss 6046e <== NOT EXECUTED my_block -= FIRST_DOUBLY_INDIRECT; singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; p = info->doubly_indirect; 60412: 206a 0054 moveal %a2@(84),%a0 <== NOT EXECUTED #if 0 fprintf(stdout, "(d %d) ", block ); fflush(stdout); #endif my_block -= FIRST_DOUBLY_INDIRECT; 60416: 9481 subl %d1,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 60418: 4c41 2003 remul %d1,%d3,%d2 <== NOT EXECUTED 6041c: 4c41 2002 remul %d1,%d2,%d2 <== NOT EXECUTED doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; p = info->doubly_indirect; if ( malloc_it ) { 60420: 4a89 tstl %a1 <== NOT EXECUTED 60422: 6732 beqs 60456 <== NOT EXECUTED if ( !p ) { 60424: 4a88 tstl %a0 <== NOT EXECUTED 60426: 6612 bnes 6043a <== NOT EXECUTED p = memfile_alloc_block(); 60428: 4eb9 0006 0350 jsr 60350 <== NOT EXECUTED 6042e: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p ) 60430: 4a80 tstl %d0 <== NOT EXECUTED 60432: 6700 00ca beqw 604fe <== NOT EXECUTED return 0; info->doubly_indirect = p; 60436: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED } p1 = (block_p *)p[ doubly ]; 6043a: 45f0 2c00 lea %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 6043e: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p1 ) { 60440: 4a88 tstl %a0 <== NOT EXECUTED 60442: 6622 bnes 60466 <== NOT EXECUTED p1 = memfile_alloc_block(); 60444: 4eb9 0006 0350 jsr 60350 <== NOT EXECUTED 6044a: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p1 ) 6044c: 4a80 tstl %d0 <== NOT EXECUTED 6044e: 6700 00ae beqw 604fe <== NOT EXECUTED return 0; p[ doubly ] = (block_p) p1; 60452: 2480 movel %d0,%a2@ <== NOT EXECUTED 60454: 6010 bras 60466 <== NOT EXECUTED } return (block_p *)&p1[ singly ]; } if ( !p ) 60456: 4a88 tstl %a0 <== NOT EXECUTED 60458: 6700 00a4 beqw 604fe <== NOT EXECUTED return 0; p = (block_p *)p[ doubly ]; 6045c: 2070 2c00 moveal %a0@(00000000,%d2:l:4),%a0 <== NOT EXECUTED if ( !p ) 60460: 4a88 tstl %a0 <== NOT EXECUTED 60462: 6700 009a beqw 604fe <== NOT EXECUTED #if 0 fprintf(stdout, "(d %d %d %d %d %p %p) ", block, my_block, doubly, singly, p, &p[singly] ); fflush(stdout); #endif return (block_p *)&p[ singly ]; 60466: 41f0 3c00 lea %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED 6046a: 6000 0094 braw 60500 <== NOT EXECUTED #endif /* * Is the block number in the triply indirect portion? */ if ( my_block <= LAST_TRIPLY_INDIRECT ) { 6046e: 2003 movel %d3,%d0 <== NOT EXECUTED 60470: 5280 addql #1,%d0 <== NOT EXECUTED 60472: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 60476: 5380 subql #1,%d0 <== NOT EXECUTED 60478: b082 cmpl %d2,%d0 <== NOT EXECUTED 6047a: 6500 0082 bcsw 604fe <== NOT EXECUTED my_block -= FIRST_TRIPLY_INDIRECT; 6047e: 9483 subl %d3,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 60480: 2002 movel %d2,%d0 <== NOT EXECUTED 60482: 4c41 0003 remul %d1,%d3,%d0 <== NOT EXECUTED 60486: 4c41 0000 remul %d1,%d0,%d0 <== NOT EXECUTED 6048a: 2403 movel %d3,%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; 6048c: 206a 0058 moveal %a2@(88),%a0 <== 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; 60490: 2600 movel %d0,%d3 <== NOT EXECUTED 60492: 4c41 3004 remul %d1,%d4,%d3 <== NOT EXECUTED 60496: 4c41 3003 remul %d1,%d3,%d3 <== NOT EXECUTED doubly %= IMFS_MEMFILE_BLOCK_SLOTS; p = info->triply_indirect; if ( malloc_it ) { 6049a: 4a89 tstl %a1 <== NOT EXECUTED 6049c: 674a beqs 604e8 <== NOT EXECUTED if ( !p ) { 6049e: 4a88 tstl %a0 <== NOT EXECUTED 604a0: 6610 bnes 604b2 <== NOT EXECUTED p = memfile_alloc_block(); 604a2: 4eb9 0006 0350 jsr 60350 <== NOT EXECUTED 604a8: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p ) 604aa: 4a80 tstl %d0 <== NOT EXECUTED 604ac: 6750 beqs 604fe <== NOT EXECUTED return 0; info->triply_indirect = p; 604ae: 2540 0058 movel %d0,%a2@(88) <== NOT EXECUTED } p1 = (block_p *) p[ triply ]; 604b2: 45f0 3c00 lea %a0@(00000000,%d3:l:4),%a2 <== NOT EXECUTED 604b6: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p1 ) { 604b8: 4a88 tstl %a0 <== NOT EXECUTED 604ba: 660e bnes 604ca <== NOT EXECUTED p1 = memfile_alloc_block(); 604bc: 4eb9 0006 0350 jsr 60350 <== NOT EXECUTED 604c2: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p1 ) 604c4: 4a80 tstl %d0 <== NOT EXECUTED 604c6: 6736 beqs 604fe <== NOT EXECUTED return 0; p[ triply ] = (block_p) p1; 604c8: 2480 movel %d0,%a2@ <== NOT EXECUTED } p2 = (block_p *)p1[ doubly ]; 604ca: 45f0 4c00 lea %a0@(00000000,%d4:l:4),%a2 <== NOT EXECUTED 604ce: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p2 ) { 604d0: 4a88 tstl %a0 <== NOT EXECUTED 604d2: 660e bnes 604e2 <== NOT EXECUTED p2 = memfile_alloc_block(); 604d4: 4eb9 0006 0350 jsr 60350 <== NOT EXECUTED 604da: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p2 ) 604dc: 4a80 tstl %d0 <== NOT EXECUTED 604de: 671e beqs 604fe <== NOT EXECUTED return 0; p1[ doubly ] = (block_p) p2; 604e0: 2480 movel %d0,%a2@ <== NOT EXECUTED } return (block_p *)&p2[ singly ]; 604e2: 41f0 2c00 lea %a0@(00000000,%d2:l:4),%a0 <== NOT EXECUTED 604e6: 6018 bras 60500 <== NOT EXECUTED } if ( !p ) 604e8: 4a88 tstl %a0 <== NOT EXECUTED 604ea: 6712 beqs 604fe <== NOT EXECUTED #if 0 fprintf(stdout, "(t %d %d %d %d %d) ", block, my_block, triply, doubly, singly ); fflush(stdout); #endif p1 = (block_p *) p[ triply ]; 604ec: 2070 3c00 moveal %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED if ( !p1 ) 604f0: 4a88 tstl %a0 <== NOT EXECUTED 604f2: 670a beqs 604fe <== NOT EXECUTED p2 = (block_p *)p1[ doubly ]; if ( !p ) return 0; return (block_p *)&p2[ singly ]; 604f4: 2070 4c00 moveal %a0@(00000000,%d4:l:4),%a0 <== NOT EXECUTED 604f8: e58a lsll #2,%d2 <== NOT EXECUTED 604fa: d1c2 addal %d2,%a0 <== NOT EXECUTED 604fc: 6002 bras 60500 <== NOT EXECUTED 604fe: 91c8 subal %a0,%a0 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 60500: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 60506: 4e5e unlk %fp <== NOT EXECUTED 60508: 2008 movel %a0,%d0 <== NOT EXECUTED 6050a: 4e75 rts 00060c2a : IMFS_jnode_t *the_jnode, off_t start, unsigned char *destination, unsigned int length ) { 60c2a: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 60c2e: 48d7 1cfc moveml %d2-%d7/%a2-%a4,%sp@ <== NOT EXECUTED 60c32: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 60c36: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 60c3a: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 60c3e: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 60c42: 4a8a tstl %a2 <== NOT EXECUTED 60c44: 6612 bnes 60c58 <== NOT EXECUTED 60c46: 4879 0007 a7c7 pea 7a7c7 <== NOT EXECUTED 60c4c: 4879 0007 a8ff pea 7a8ff <__func__.5751> <== NOT EXECUTED 60c52: 4878 024a pea 24a <== NOT EXECUTED 60c56: 601e bras 60c76 <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE || 60c58: 222a 0048 movel %a2@(72),%d1 <== NOT EXECUTED 60c5c: 2001 movel %d1,%d0 <== NOT EXECUTED 60c5e: 5b80 subql #5,%d0 <== NOT EXECUTED 60c60: 7401 moveq #1,%d2 <== NOT EXECUTED 60c62: b480 cmpl %d0,%d2 <== NOT EXECUTED 60c64: 641c bccs 60c82 <== NOT EXECUTED 60c66: 4879 0007 a87d pea 7a87d <== NOT EXECUTED 60c6c: 4879 0007 a8ff pea 7a8ff <__func__.5751> <== NOT EXECUTED 60c72: 4878 024f pea 24f <== NOT EXECUTED 60c76: 4879 0007 a7d1 pea 7a7d1 <== NOT EXECUTED 60c7c: 4eb9 0005 a790 jsr 5a790 <__assert_func> <== NOT EXECUTED /* * Error checks on arguments */ assert( dest ); 60c82: 4a8b tstl %a3 <== NOT EXECUTED 60c84: 6612 bnes 60c98 <== NOT EXECUTED 60c86: 4879 0007 a8c8 pea 7a8c8 <== NOT EXECUTED 60c8c: 4879 0007 a8ff pea 7a8ff <__func__.5751> <== NOT EXECUTED 60c92: 4878 0258 pea 258 <== NOT EXECUTED 60c96: 60de bras 60c76 <== NOT EXECUTED /* * If there is nothing to read, then quick exit. */ my_length = length; if ( !my_length ) 60c98: 4a88 tstl %a0 <== NOT EXECUTED 60c9a: 6612 bnes 60cae <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 60c9c: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 60ca2: 7616 moveq #22,%d3 <== NOT EXECUTED 60ca4: 2040 moveal %d0,%a0 <== NOT EXECUTED 60ca6: 2083 movel %d3,%a0@ <== NOT EXECUTED 60ca8: 70ff moveq #-1,%d0 <== NOT EXECUTED 60caa: 6000 017e braw 60e2a <== NOT EXECUTED /* * Linear files (as created from a tar file are easier to handle * than block files). */ if (the_jnode->type == IMFS_LINEAR_FILE) { 60cae: 7006 moveq #6,%d0 <== NOT EXECUTED 60cb0: b081 cmpl %d1,%d0 <== NOT EXECUTED 60cb2: 663a bnes 60cee <== NOT EXECUTED unsigned char *file_ptr; file_ptr = (unsigned char *)the_jnode->info.linearfile.direct; if (my_length > (the_jnode->info.linearfile.size - start)) 60cb4: 242a 004c movel %a2@(76),%d2 <== NOT EXECUTED 60cb8: 9484 subl %d4,%d2 <== NOT EXECUTED 60cba: b1c2 cmpal %d2,%a0 <== NOT EXECUTED 60cbc: 6402 bccs 60cc0 <== NOT EXECUTED 60cbe: 2408 movel %a0,%d2 <== NOT EXECUTED my_length = the_jnode->info.linearfile.size - start; memcpy(dest, &file_ptr[start], my_length); 60cc0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60cc2: d8aa 0050 addl %a2@(80),%d4 <== NOT EXECUTED 60cc6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 60cc8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 60cca: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED IMFS_update_atime( the_jnode ); 60cd0: 42a7 clrl %sp@- <== NOT EXECUTED 60cd2: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 60cd6: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 60cdc: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return my_length; 60ce2: 2002 movel %d2,%d0 <== NOT EXECUTED 60ce4: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60cea: 6000 013e braw 60e2a <== 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 ) 60cee: 222a 004c movel %a2@(76),%d1 <== NOT EXECUTED 60cf2: 2008 movel %a0,%d0 <== NOT EXECUTED 60cf4: d084 addl %d4,%d0 <== NOT EXECUTED 60cf6: b280 cmpl %d0,%d1 <== NOT EXECUTED 60cf8: 6504 bcss 60cfe <== NOT EXECUTED 60cfa: 2608 movel %a0,%d3 <== NOT EXECUTED 60cfc: 6004 bras 60d02 <== NOT EXECUTED my_length = the_jnode->info.file.size - start; 60cfe: 2601 movel %d1,%d3 <== NOT EXECUTED 60d00: 9684 subl %d4,%d3 <== NOT EXECUTED /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 60d02: 2439 0007 f028 movel 7f028 ,%d2 <== NOT EXECUTED 60d08: 2a04 movel %d4,%d5 <== NOT EXECUTED 60d0a: 4c42 5800 remsl %d2,%d0,%d5 <== NOT EXECUTED 60d0e: 4c42 5805 remsl %d2,%d5,%d5 <== NOT EXECUTED 60d12: 2800 movel %d0,%d4 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 60d14: 2c05 movel %d5,%d6 <== NOT EXECUTED if ( start_offset ) { 60d16: 4a80 tstl %d0 <== NOT EXECUTED 60d18: 6604 bnes 60d1e <== NOT EXECUTED 60d1a: 2e0b movel %a3,%d7 <== NOT EXECUTED 60d1c: 6058 bras 60d76 <== 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 ); 60d1e: 42a7 clrl %sp@- <== NOT EXECUTED 60d20: 2f05 movel %d5,%sp@- <== NOT EXECUTED 60d22: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60d24: 4eb9 0006 0374 jsr 60374 <== NOT EXECUTED assert( block_ptr ); 60d2a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; if ( start_offset ) { 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 ); 60d30: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 60d32: 4a80 tstl %d0 <== NOT EXECUTED 60d34: 6614 bnes 60d4a <== NOT EXECUTED 60d36: 4879 0007 a84a pea 7a84a <== NOT EXECUTED 60d3c: 4879 0007 a8ff pea 7a8ff <__func__.5751> <== NOT EXECUTED 60d42: 4878 0294 pea 294 <== NOT EXECUTED 60d46: 6000 ff2e braw 60c76 <== NOT EXECUTED */ 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; 60d4a: 2002 movel %d2,%d0 <== NOT EXECUTED 60d4c: 9084 subl %d4,%d0 <== NOT EXECUTED 60d4e: 2403 movel %d3,%d2 <== NOT EXECUTED 60d50: b083 cmpl %d3,%d0 <== NOT EXECUTED 60d52: 6402 bccs 60d56 <== NOT EXECUTED 60d54: 2400 movel %d0,%d2 <== NOT EXECUTED to_copy = my_length; block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); assert( block_ptr ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ start_offset ], to_copy ); 60d56: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60d58: d890 addl %a0@,%d4 <== NOT EXECUTED 60d5a: 2f04 movel %d4,%sp@- <== NOT EXECUTED dest += to_copy; 60d5c: 2e0b movel %a3,%d7 <== NOT EXECUTED block++; 60d5e: 2c05 movel %d5,%d6 <== NOT EXECUTED to_copy = my_length; block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); assert( block_ptr ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ start_offset ], to_copy ); 60d60: 2f0b movel %a3,%sp@- <== NOT EXECUTED 60d62: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED dest += to_copy; 60d68: de82 addl %d2,%d7 <== NOT EXECUTED block++; 60d6a: 5286 addql #1,%d6 <== NOT EXECUTED my_length -= to_copy; 60d6c: 9682 subl %d2,%d3 <== NOT EXECUTED 60d6e: 2802 movel %d2,%d4 <== NOT EXECUTED 60d70: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; 60d76: 2439 0007 f028 movel 7f028 ,%d2 <== NOT EXECUTED while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 60d7c: 49f9 0006 0374 lea 60374 ,%a4 <== NOT EXECUTED assert( block_ptr ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 60d82: 47f9 0006 a3dc lea 6a3dc ,%a3 <== NOT EXECUTED 60d88: 603e bras 60dc8 <== 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 ); 60d8a: 42a7 clrl %sp@- <== NOT EXECUTED 60d8c: 2f06 movel %d6,%sp@- <== NOT EXECUTED 60d8e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60d90: 4e94 jsr %a4@ <== NOT EXECUTED assert( block_ptr ); 60d92: dffc 0000 000c addal #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 ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 60d98: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 60d9a: 4a80 tstl %d0 <== NOT EXECUTED 60d9c: 6614 bnes 60db2 <== NOT EXECUTED 60d9e: 4879 0007 a84a pea 7a84a <== NOT EXECUTED 60da4: 4879 0007 a8ff pea 7a8ff <__func__.5751> <== NOT EXECUTED 60daa: 4878 02a5 pea 2a5 <== NOT EXECUTED 60dae: 6000 fec6 braw 60c76 <== NOT EXECUTED if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 60db2: 2f02 movel %d2,%sp@- <== NOT EXECUTED dest += to_copy; block++; 60db4: 5286 addql #1,%d6 <== NOT EXECUTED while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); assert( block_ptr ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 60db6: 2f10 movel %a0@,%sp@- <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; 60db8: 9682 subl %d2,%d3 <== NOT EXECUTED copied += to_copy; 60dba: d882 addl %d2,%d4 <== NOT EXECUTED while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); assert( block_ptr ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 60dbc: 2f07 movel %d7,%sp@- <== NOT EXECUTED 60dbe: 4e93 jsr %a3@ <== NOT EXECUTED dest += to_copy; 60dc0: de82 addl %d2,%d7 <== NOT EXECUTED block++; my_length -= to_copy; copied += to_copy; 60dc2: dffc 0000 000c addal #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 ) { 60dc8: b6b9 0007 f028 cmpl 7f028 ,%d3 <== NOT EXECUTED 60dce: 64ba bccs 60d8a <== NOT EXECUTED * Phase 3: possibly the first part of one block */ assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); if ( my_length ) { 60dd0: 4a83 tstl %d3 <== NOT EXECUTED 60dd2: 6740 beqs 60e14 <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 60dd4: 42a7 clrl %sp@- <== NOT EXECUTED 60dd6: 2f06 movel %d6,%sp@- <== NOT EXECUTED 60dd8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60dda: 4eb9 0006 0374 jsr 60374 <== NOT EXECUTED assert( block_ptr ); 60de0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED */ assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); if ( my_length ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 60de6: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 60de8: 4a80 tstl %d0 <== NOT EXECUTED 60dea: 6614 bnes 60e00 <== NOT EXECUTED 60dec: 4879 0007 a84a pea 7a84a <== NOT EXECUTED 60df2: 4879 0007 a8ff pea 7a8ff <__func__.5751> <== NOT EXECUTED 60df8: 4878 02b7 pea 2b7 <== NOT EXECUTED 60dfc: 6000 fe78 braw 60c76 <== NOT EXECUTED if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], my_length ); 60e00: 2f03 movel %d3,%sp@- <== NOT EXECUTED copied += my_length; 60e02: d883 addl %d3,%d4 <== NOT EXECUTED if ( my_length ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); assert( block_ptr ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], my_length ); 60e04: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 60e06: 2f07 movel %d7,%sp@- <== NOT EXECUTED 60e08: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED copied += my_length; 60e0e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } IMFS_update_atime( the_jnode ); 60e14: 42a7 clrl %sp@- <== NOT EXECUTED 60e16: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 60e1a: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED return copied; 60e20: 508f addql #8,%sp <== NOT EXECUTED 60e22: 2004 movel %d4,%d0 <== NOT EXECUTED return copied; memcpy( dest, &(*block_ptr)[ 0 ], my_length ); copied += my_length; } IMFS_update_atime( the_jnode ); 60e24: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return copied; } 60e2a: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 60e30: 4e5e unlk %fp <== NOT EXECUTED 60e32: 4e75 rts 00060598 : */ int IMFS_memfile_remove( IMFS_jnode_t *the_jnode ) { 60598: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 6059c: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 605a0: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 605a4: 4a8b tstl %a3 <== NOT EXECUTED 605a6: 6612 bnes 605ba <== NOT EXECUTED 605a8: 4879 0007 a7c7 pea 7a7c7 <== NOT EXECUTED 605ae: 4879 0007 a911 pea 7a911 <__func__.5695> <== NOT EXECUTED 605b4: 4878 01ec pea 1ec <== NOT EXECUTED 605b8: 6018 bras 605d2 <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 605ba: 7005 moveq #5,%d0 <== NOT EXECUTED 605bc: b0ab 0048 cmpl %a3@(72),%d0 <== NOT EXECUTED 605c0: 671c beqs 605de <== NOT EXECUTED 605c2: 4879 0007 a81a pea 7a81a <== NOT EXECUTED 605c8: 4879 0007 a911 pea 7a911 <__func__.5695> <== NOT EXECUTED 605ce: 4878 01f0 pea 1f0 <== NOT EXECUTED 605d2: 4879 0007 a7d1 pea 7a7d1 <== NOT EXECUTED 605d8: 4eb9 0005 a790 jsr 5a790 <__assert_func> <== 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; 605de: 2639 0007 f028 movel 7f028 ,%d3 <== NOT EXECUTED 605e4: e48b lsrl #2,%d3 <== NOT EXECUTED * + triply indirect */ info = &the_jnode->info.file; if ( info->indirect ) { 605e6: 4aab 0050 tstl %a3@(80) <== NOT EXECUTED 605ea: 670e beqs 605fa <== NOT EXECUTED memfile_free_blocks_in_table( &info->indirect, to_free ); 605ec: 2f03 movel %d3,%sp@- <== NOT EXECUTED 605ee: 486b 0050 pea %a3@(80) <== NOT EXECUTED 605f2: 4eb9 0006 0534 jsr 60534 <== NOT EXECUTED 605f8: 508f addql #8,%sp <== NOT EXECUTED } if ( info->doubly_indirect ) { 605fa: 4aab 0054 tstl %a3@(84) <== NOT EXECUTED 605fe: 673e beqs 6063e <== NOT EXECUTED 60600: 4282 clrl %d2 <== NOT EXECUTED for ( i=0 ; idoubly_indirect[i] ) { memfile_free_blocks_in_table( 60602: 45f9 0006 0534 lea 60534 ,%a2 <== NOT EXECUTED 60608: 601a bras 60624 <== NOT EXECUTED } if ( info->doubly_indirect ) { for ( i=0 ; idoubly_indirect[i] ) { 6060a: 206b 0054 moveal %a3@(84),%a0 <== NOT EXECUTED 6060e: 2002 movel %d2,%d0 <== NOT EXECUTED 60610: e588 lsll #2,%d0 <== NOT EXECUTED 60612: 4ab0 0800 tstl %a0@(00000000,%d0:l) <== NOT EXECUTED 60616: 670a beqs 60622 <== NOT EXECUTED memfile_free_blocks_in_table( 60618: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6061a: 4870 0800 pea %a0@(00000000,%d0:l) <== NOT EXECUTED 6061e: 4e92 jsr %a2@ <== NOT EXECUTED 60620: 508f addql #8,%sp <== NOT EXECUTED memfile_free_blocks_in_table( &info->indirect, to_free ); } if ( info->doubly_indirect ) { for ( i=0 ; i,%d0 <== NOT EXECUTED 6062a: e488 lsrl #2,%d0 <== NOT EXECUTED 6062c: b082 cmpl %d2,%d0 <== NOT EXECUTED 6062e: 62da bhis 6060a <== 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 ); 60630: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60632: 486b 0054 pea %a3@(84) <== NOT EXECUTED 60636: 4eb9 0006 0534 jsr 60534 <== NOT EXECUTED 6063c: 508f addql #8,%sp <== NOT EXECUTED } if ( info->triply_indirect ) { 6063e: 4aab 0058 tstl %a3@(88) <== NOT EXECUTED 60642: 6762 beqs 606a6 <== NOT EXECUTED 60644: 4284 clrl %d4 <== NOT EXECUTED p = (block_p *) info->triply_indirect[i]; if ( !p ) /* ensure we have a valid pointer */ break; for ( j=0 ; j,%a4 <== NOT EXECUTED 6064c: 603e bras 6068c <== NOT EXECUTED } if ( info->triply_indirect ) { for ( i=0 ; itriply_indirect[i]; 6064e: 206b 0058 moveal %a3@(88),%a0 <== NOT EXECUTED } memfile_free_blocks_in_table( &info->doubly_indirect, to_free ); } if ( info->triply_indirect ) { 60652: 2a04 movel %d4,%d5 <== NOT EXECUTED 60654: e58d lsll #2,%d5 <== NOT EXECUTED for ( i=0 ; itriply_indirect[i]; 60656: 2030 5800 movel %a0@(00000000,%d5:l),%d0 <== NOT EXECUTED if ( !p ) /* ensure we have a valid pointer */ 6065a: 673c beqs 60698 <== NOT EXECUTED break; 6065c: 2440 moveal %d0,%a2 <== NOT EXECUTED 6065e: 4282 clrl %d2 <== NOT EXECUTED 60660: 6010 bras 60672 <== NOT EXECUTED for ( j=0 ; j <== NOT EXECUTED memfile_free_blocks_in_table( (block_p **)&p[j], to_free); 60666: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60668: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6066a: 4e94 jsr %a4@ <== NOT EXECUTED 6066c: 508f addql #8,%sp <== NOT EXECUTED if ( info->triply_indirect ) { for ( i=0 ; itriply_indirect[i]; if ( !p ) /* ensure we have a valid pointer */ break; for ( j=0 ; j,%d0 <== NOT EXECUTED 60678: e488 lsrl #2,%d0 <== NOT EXECUTED 6067a: b082 cmpl %d2,%d0 <== NOT EXECUTED 6067c: 62e4 bhis 60662 <== NOT EXECUTED if ( p[j] ) { memfile_free_blocks_in_table( (block_p **)&p[j], to_free); } } memfile_free_blocks_in_table( 6067e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60680: daab 0058 addl %a3@(88),%d5 <== NOT EXECUTED 60684: 2f05 movel %d5,%sp@- <== NOT EXECUTED 60686: 4e94 jsr %a4@ <== NOT EXECUTED memfile_free_blocks_in_table( &info->doubly_indirect, to_free ); } if ( info->triply_indirect ) { for ( i=0 ; i,%d0 <== NOT EXECUTED 60692: e488 lsrl #2,%d0 <== NOT EXECUTED 60694: b084 cmpl %d4,%d0 <== NOT EXECUTED 60696: 62b6 bhis 6064e <== NOT EXECUTED } } memfile_free_blocks_in_table( (block_p **)&info->triply_indirect[i], to_free ); } memfile_free_blocks_in_table( 60698: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6069a: 486b 0058 pea %a3@(88) <== NOT EXECUTED 6069e: 4eb9 0006 0534 jsr 60534 <== NOT EXECUTED 606a4: 508f addql #8,%sp <== NOT EXECUTED (block_p **)&info->triply_indirect, to_free ); } return 0; } 606a6: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 606ac: 4e5e unlk %fp <== NOT EXECUTED 606ae: 4280 clrl %d0 <== NOT EXECUTED 606b0: 4e75 rts 0006050c : MEMFILE_STATIC int IMFS_memfile_remove_block( IMFS_jnode_t *the_jnode, unsigned int block ) { 6050c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED block_p *block_entry_ptr; block_p ptr; block_entry_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 60510: 42a7 clrl %sp@- <== NOT EXECUTED 60512: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 60516: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 6051a: 4eb9 0006 0374 jsr 60374 <== NOT EXECUTED 60520: 2040 moveal %d0,%a0 <== NOT EXECUTED ptr = *block_entry_ptr; 60522: 2010 movel %a0@,%d0 <== NOT EXECUTED *block_entry_ptr = 0; 60524: 4290 clrl %a0@ <== NOT EXECUTED memfile_free_block( ptr ); 60526: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60528: 4eb9 0006 0336 jsr 60336 <== NOT EXECUTED return 1; } 6052e: 4e5e unlk %fp <== NOT EXECUTED 60530: 7001 moveq #1,%d0 <== NOT EXECUTED 60532: 4e75 rts 0006098e : IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 6098e: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 60992: 48d7 1cfc moveml %d2-%d7/%a2-%a4,%sp@ <== NOT EXECUTED 60996: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 6099a: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 6099e: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 609a2: 2e2e 0014 movel %fp@(20),%d7 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 609a6: 4a8a tstl %a2 <== NOT EXECUTED 609a8: 6612 bnes 609bc <== NOT EXECUTED 609aa: 4879 0007 a7c7 pea 7a7c7 <== NOT EXECUTED 609b0: 4879 0007 a8ec pea 7a8ec <__func__.5801> <== NOT EXECUTED 609b6: 4878 02e1 pea 2e1 <== NOT EXECUTED 609ba: 6018 bras 609d4 <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 609bc: 7005 moveq #5,%d0 <== NOT EXECUTED 609be: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 609c2: 671c beqs 609e0 <== NOT EXECUTED 609c4: 4879 0007 a81a pea 7a81a <== NOT EXECUTED 609ca: 4879 0007 a8ec pea 7a8ec <__func__.5801> <== NOT EXECUTED 609d0: 4878 02e5 pea 2e5 <== NOT EXECUTED 609d4: 4879 0007 a7d1 pea 7a7d1 <== NOT EXECUTED 609da: 4eb9 0005 a790 jsr 5a790 <__assert_func> <== NOT EXECUTED /* * Error check arguments */ assert( source ); 609e0: 4a8b tstl %a3 <== NOT EXECUTED 609e2: 6612 bnes 609f6 <== NOT EXECUTED 609e4: 4879 0007 8688 pea 78688 <== NOT EXECUTED 609ea: 4879 0007 a8ec pea 7a8ec <__func__.5801> <== NOT EXECUTED 609f0: 4878 02ed pea 2ed <== NOT EXECUTED 609f4: 60de bras 609d4 <== NOT EXECUTED /* * If there is nothing to write, then quick exit. */ my_length = length; if ( !my_length ) 609f6: 4a87 tstl %d7 <== NOT EXECUTED 609f8: 660e bnes 60a08 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 609fa: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 60a00: 7416 moveq #22,%d2 <== NOT EXECUTED 60a02: 2040 moveal %d0,%a0 <== NOT EXECUTED 60a04: 2082 movel %d2,%a0@ <== NOT EXECUTED 60a06: 6026 bras 60a2e <== 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 + length; 60a08: 2007 movel %d7,%d0 <== NOT EXECUTED 60a0a: d083 addl %d3,%d0 <== NOT EXECUTED if ( last_byte > the_jnode->info.file.size ) { 60a0c: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 60a10: 6322 blss 60a34 <== NOT EXECUTED status = IMFS_memfile_extend( the_jnode, last_byte ); 60a12: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60a14: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60a16: 4eb9 0006 07fc jsr 607fc <== NOT EXECUTED if ( status ) 60a1c: 508f addql #8,%sp <== NOT EXECUTED 60a1e: 4a80 tstl %d0 <== NOT EXECUTED 60a20: 6712 beqs 60a34 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 60a22: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 60a28: 721c moveq #28,%d1 <== NOT EXECUTED 60a2a: 2040 moveal %d0,%a0 <== NOT EXECUTED 60a2c: 2081 movel %d1,%a0@ <== NOT EXECUTED 60a2e: 74ff moveq #-1,%d2 <== NOT EXECUTED 60a30: 6000 012e braw 60b60 <== NOT EXECUTED /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 60a34: 2439 0007 f028 movel 7f028 ,%d2 <== NOT EXECUTED 60a3a: 2803 movel %d3,%d4 <== NOT EXECUTED 60a3c: 4c42 4800 remsl %d2,%d0,%d4 <== NOT EXECUTED 60a40: 4c42 4804 remsl %d2,%d4,%d4 <== NOT EXECUTED 60a44: 2600 movel %d0,%d3 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 60a46: 2a04 movel %d4,%d5 <== NOT EXECUTED if ( start_offset ) { 60a48: 4a80 tstl %d0 <== NOT EXECUTED 60a4a: 6608 bnes 60a54 <== NOT EXECUTED 60a4c: 2607 movel %d7,%d3 <== NOT EXECUTED 60a4e: 2c0b movel %a3,%d6 <== NOT EXECUTED 60a50: 4282 clrl %d2 <== NOT EXECUTED 60a52: 6054 bras 60aa8 <== 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 ); 60a54: 42a7 clrl %sp@- <== NOT EXECUTED 60a56: 2f04 movel %d4,%sp@- <== NOT EXECUTED 60a58: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60a5a: 4eb9 0006 0374 jsr 60374 <== NOT EXECUTED assert( block_ptr ); 60a60: dffc 0000 000c addal #12,%sp <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; if ( start_offset ) { 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 ); 60a66: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 60a68: 4a80 tstl %d0 <== NOT EXECUTED 60a6a: 6614 bnes 60a80 <== NOT EXECUTED 60a6c: 4879 0007 a84a pea 7a84a <== NOT EXECUTED 60a72: 4879 0007 a8ec pea 7a8ec <__func__.5801> <== NOT EXECUTED 60a78: 4878 031a pea 31a <== NOT EXECUTED 60a7c: 6000 ff56 braw 609d4 <== NOT EXECUTED */ 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; 60a80: 9483 subl %d3,%d2 <== NOT EXECUTED 60a82: be82 cmpl %d2,%d7 <== NOT EXECUTED 60a84: 6402 bccs 60a88 <== NOT EXECUTED 60a86: 2407 movel %d7,%d2 <== NOT EXECUTED if ( !block_ptr ) return copied; #if 0 fprintf(stdout, "write %d at %d in %d: %*s\n", to_copy, start_offset, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 60a88: 2f02 movel %d2,%sp@- <== NOT EXECUTED src += to_copy; 60a8a: 2c0b movel %a3,%d6 <== NOT EXECUTED block++; 60a8c: 2a04 movel %d4,%d5 <== NOT EXECUTED if ( !block_ptr ) return copied; #if 0 fprintf(stdout, "write %d at %d in %d: %*s\n", to_copy, start_offset, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 60a8e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 60a90: d690 addl %a0@,%d3 <== NOT EXECUTED 60a92: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60a94: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED src += to_copy; block++; my_length -= to_copy; 60a9a: 2607 movel %d7,%d3 <== NOT EXECUTED return copied; #if 0 fprintf(stdout, "write %d at %d in %d: %*s\n", to_copy, start_offset, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); src += to_copy; 60a9c: dc82 addl %d2,%d6 <== NOT EXECUTED block++; 60a9e: 5285 addql #1,%d5 <== NOT EXECUTED my_length -= to_copy; 60aa0: 9682 subl %d2,%d3 <== NOT EXECUTED copied += to_copy; 60aa2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; 60aa8: 2839 0007 f028 movel 7f028 ,%d4 <== NOT EXECUTED while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 60aae: 49f9 0006 0374 lea 60374 ,%a4 <== NOT EXECUTED if ( !block_ptr ) return copied; #if 0 fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ 0 ], src, to_copy ); 60ab4: 47f9 0006 a3dc lea 6a3dc ,%a3 <== NOT EXECUTED 60aba: 603e bras 60afa <== 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 ); 60abc: 42a7 clrl %sp@- <== NOT EXECUTED 60abe: 2f05 movel %d5,%sp@- <== NOT EXECUTED 60ac0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60ac2: 4e94 jsr %a4@ <== NOT EXECUTED assert( block_ptr ); 60ac4: dffc 0000 000c addal #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 ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 60aca: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 60acc: 4a80 tstl %d0 <== NOT EXECUTED 60ace: 6614 bnes 60ae4 <== NOT EXECUTED 60ad0: 4879 0007 a84a pea 7a84a <== NOT EXECUTED 60ad6: 4879 0007 a8ec pea 7a8ec <__func__.5801> <== NOT EXECUTED 60adc: 4878 032e pea 32e <== NOT EXECUTED 60ae0: 6000 fef2 braw 609d4 <== 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 ); 60ae4: 2f04 movel %d4,%sp@- <== NOT EXECUTED src += to_copy; block++; 60ae6: 5285 addql #1,%d5 <== NOT EXECUTED my_length -= to_copy; 60ae8: 9684 subl %d4,%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 ); 60aea: 2f06 movel %d6,%sp@- <== NOT EXECUTED src += to_copy; 60aec: dc84 addl %d4,%d6 <== 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 ); 60aee: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 60af0: 4e93 jsr %a3@ <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 60af2: d484 addl %d4,%d2 <== NOT EXECUTED 60af4: dffc 0000 000c addal #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 ) { 60afa: b6b9 0007 f028 cmpl 7f028 ,%d3 <== NOT EXECUTED 60b00: 64ba bccs 60abc <== NOT EXECUTED */ assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); to_copy = my_length; if ( my_length ) { 60b02: 4a83 tstl %d3 <== NOT EXECUTED 60b04: 6740 beqs 60b46 <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 60b06: 42a7 clrl %sp@- <== NOT EXECUTED 60b08: 2f05 movel %d5,%sp@- <== NOT EXECUTED 60b0a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60b0c: 4eb9 0006 0374 jsr 60374 <== NOT EXECUTED assert( block_ptr ); 60b12: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 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 ); 60b18: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 60b1a: 4a80 tstl %d0 <== NOT EXECUTED 60b1c: 6614 bnes 60b32 <== NOT EXECUTED 60b1e: 4879 0007 a84a pea 7a84a <== NOT EXECUTED 60b24: 4879 0007 a8ec pea 7a8ec <__func__.5801> <== NOT EXECUTED 60b2a: 4878 0344 pea 344 <== NOT EXECUTED 60b2e: 6000 fea4 braw 609d4 <== 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 ); 60b32: 2f03 movel %d3,%sp@- <== NOT EXECUTED my_length = 0; copied += to_copy; 60b34: d483 addl %d3,%d2 <== 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 ); 60b36: 2f06 movel %d6,%sp@- <== NOT EXECUTED 60b38: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 60b3a: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED my_length = 0; copied += to_copy; 60b40: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } IMFS_atime_mtime_update( the_jnode ); 60b46: 42a7 clrl %sp@- <== NOT EXECUTED 60b48: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 60b4c: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 60b52: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 60b56: 508f addql #8,%sp <== NOT EXECUTED 60b58: 2540 003c movel %d0,%a2@(60) <== NOT EXECUTED 60b5c: 2540 0040 movel %d0,%a2@(64) <== NOT EXECUTED return copied; } 60b60: 2002 movel %d2,%d0 <== NOT EXECUTED 60b62: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 60b68: 4e5e unlk %fp <== NOT EXECUTED 60b6a: 4e75 rts 000488ec : const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 488ec: 4e56 ffbc linkw %fp,#-68 <== NOT EXECUTED 488f0: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED IMFS_jnode_t *new_node; int result; char new_name[ IMFS_NAME_MAX + 1 ]; IMFS_types_union info; IMFS_get_token( token, new_name, &result ); 488f4: 486e fffc pea %fp@(-4) <== NOT EXECUTED const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 488f8: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED IMFS_jnode_t *new_node; int result; char new_name[ IMFS_NAME_MAX + 1 ]; IMFS_types_union info; IMFS_get_token( token, new_name, &result ); 488fc: 486e ffcb pea %fp@(-53) <== NOT EXECUTED const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 48900: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 48904: 262e 0014 movel %fp@(20),%d3 <== NOT EXECUTED IMFS_jnode_t *new_node; int result; char new_name[ IMFS_NAME_MAX + 1 ]; IMFS_types_union info; IMFS_get_token( token, new_name, &result ); 48908: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4890c: 4eb9 0004 8764 jsr 48764 <== NOT EXECUTED /* * Figure out what type of IMFS node this is. */ if ( S_ISDIR(mode) ) 48912: 2004 movel %d4,%d0 <== NOT EXECUTED 48914: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4891a: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 48920: 0c80 0000 4000 cmpil #16384,%d0 <== NOT EXECUTED 48926: 673a beqs 48962 <== NOT EXECUTED type = IMFS_DIRECTORY; else if ( S_ISREG(mode) ) 48928: 0c80 0000 8000 cmpil #32768,%d0 <== NOT EXECUTED 4892e: 6606 bnes 48936 <== NOT EXECUTED 48930: 303c 0005 movew #5,%d0 <== NOT EXECUTED 48934: 602e bras 48964 <== NOT EXECUTED type = IMFS_MEMORY_FILE; else if ( S_ISBLK(mode) || S_ISCHR(mode) ) { 48936: 0c80 0000 6000 cmpil #24576,%d0 <== NOT EXECUTED 4893c: 6708 beqs 48946 <== NOT EXECUTED 4893e: 0c80 0000 2000 cmpil #8192,%d0 <== NOT EXECUTED 48944: 660c bnes 48952 <== NOT EXECUTED type = IMFS_DEVICE; rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor ); 48946: 2d42 ffec movel %d2,%fp@(-20) <== NOT EXECUTED 4894a: 7002 moveq #2,%d0 <== NOT EXECUTED 4894c: 2d43 fff0 movel %d3,%fp@(-16) <== NOT EXECUTED 48950: 6012 bras 48964 <== NOT EXECUTED } else { rtems_set_errno_and_return_minus_one( EINVAL ); 48952: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48958: 7416 moveq #22,%d2 <== NOT EXECUTED 4895a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4895c: 2082 movel %d2,%a0@ <== NOT EXECUTED 4895e: 70ff moveq #-1,%d0 <== NOT EXECUTED 48960: 6034 bras 48996 <== NOT EXECUTED 48962: 7001 moveq #1,%d0 <== NOT EXECUTED /* * Allocate and fill in an IMFS jnode */ new_node = IMFS_create_node( 48964: 486e ffec pea %fp@(-20) <== NOT EXECUTED 48968: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4896a: 486e ffcb pea %fp@(-53) <== NOT EXECUTED 4896e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48970: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 48974: 4eb9 0004 a52c jsr 4a52c <== NOT EXECUTED new_name, mode, &info ); if ( !new_node ) 4897a: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 48980: 4a80 tstl %d0 <== NOT EXECUTED 48982: 6704 beqs 48988 <== NOT EXECUTED 48984: 4280 clrl %d0 <== NOT EXECUTED 48986: 600e bras 48996 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM ); 48988: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 4898e: 2040 moveal %d0,%a0 <== NOT EXECUTED 48990: 720c moveq #12,%d1 <== NOT EXECUTED 48992: 70ff moveq #-1,%d0 <== NOT EXECUTED 48994: 2081 movel %d1,%a0@ <== NOT EXECUTED return 0; } 48996: 4cee 001c ffbc moveml %fp@(-68),%d2-%d4 <== NOT EXECUTED 4899c: 4e5e unlk %fp <== NOT EXECUTED 4899e: 4e75 rts 00044ae8 : #include int IMFS_mount( rtems_filesystem_mount_table_entry_t *mt_entry ) { 44ae8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44aec: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED IMFS_jnode_t *node; node = mt_entry->mt_point_node.node_access; 44af0: 2069 0008 moveal %a1@(8),%a0 <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 44af4: 7001 moveq #1,%d0 <== NOT EXECUTED 44af6: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 44afa: 6710 beqs 44b0c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 44afc: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 44b02: 2040 moveal %d0,%a0 <== NOT EXECUTED 44b04: 7014 moveq #20,%d0 <== NOT EXECUTED 44b06: 2080 movel %d0,%a0@ <== NOT EXECUTED 44b08: 70ff moveq #-1,%d0 <== NOT EXECUTED 44b0a: 6006 bras 44b12 <== 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; 44b0c: 4280 clrl %d0 <== NOT EXECUTED 44b0e: 2149 0058 movel %a1,%a0@(88) <== NOT EXECUTED return 0; } 44b12: 4e5e unlk %fp <== NOT EXECUTED 44b14: 4e75 rts <== NOT EXECUTED ... 000489a0 : #include "imfs.h" rtems_filesystem_node_types_t IMFS_node_type( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 489a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 489a4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 489a8: 2050 moveal %a0@,%a0 <== NOT EXECUTED IMFS_jnode_t *node; node = pathloc->node_access; return node->type; } 489aa: 4e5e unlk %fp <== NOT EXECUTED 489ac: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED 489b0: 4e75 rts <== NOT EXECUTED ... 00044b2c : int IMFS_readlink( rtems_filesystem_location_info_t *loc, char *buf, /* OUT */ size_t bufsize ) { 44b2c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44b30: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 44b34: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *node; int i; node = loc->node_access; 44b36: 2250 moveal %a0@,%a1 <== NOT EXECUTED int IMFS_readlink( rtems_filesystem_location_info_t *loc, char *buf, /* OUT */ size_t bufsize ) { 44b38: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED IMFS_jnode_t *node; int i; node = loc->node_access; if ( node->type != IMFS_SYM_LINK ) 44b3c: 7004 moveq #4,%d0 <== NOT EXECUTED 44b3e: b0a9 0048 cmpl %a1@(72),%d0 <== NOT EXECUTED 44b42: 6604 bnes 44b48 <== NOT EXECUTED 44b44: 4200 clrb %d0 <== NOT EXECUTED 44b46: 6016 bras 44b5e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 44b48: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 44b4e: 2040 moveal %d0,%a0 <== NOT EXECUTED 44b50: 7016 moveq #22,%d0 <== NOT EXECUTED 44b52: 2080 movel %d0,%a0@ <== NOT EXECUTED 44b54: 70ff moveq #-1,%d0 <== NOT EXECUTED 44b56: 6016 bras 44b6e <== NOT EXECUTED for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) buf[i] = node->info.sym_link.name[i]; 44b58: 1581 0800 moveb %d1,%a2@(00000000,%d0:l) <== NOT EXECUTED node = loc->node_access; if ( node->type != IMFS_SYM_LINK ) rtems_set_errno_and_return_minus_one( EINVAL ); for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) 44b5c: 5280 addql #1,%d0 <== NOT EXECUTED 44b5e: b0ae 0010 cmpl %fp@(16),%d0 <== NOT EXECUTED 44b62: 640a bccs 44b6e <== NOT EXECUTED 44b64: 2069 004c moveal %a1@(76),%a0 <== NOT EXECUTED 44b68: 1230 0800 moveb %a0@(00000000,%d0:l),%d1 <== NOT EXECUTED 44b6c: 66ea bnes 44b58 <== NOT EXECUTED buf[i] = node->info.sym_link.name[i]; return i; } 44b6e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 44b72: 4e5e unlk %fp <== NOT EXECUTED 44b74: 4e75 rts <== NOT EXECUTED ... 000489b4 : */ int IMFS_rmnod( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 489b4: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 489b8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 489ba: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 489be: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 489c0: 2453 moveal %a3@,%a2 <== NOT EXECUTED /* * Take the node out of the parent's chain that contains this node */ if ( the_jnode->Parent != NULL ) { 489c2: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 489c6: 670e beqs 489d6 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void rtems_chain_extract( rtems_chain_node *the_node ) { _Chain_Extract( the_node ); 489c8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 489ca: 4eb9 0004 9a34 jsr 49a34 <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( (rtems_chain_node *) the_jnode ); the_jnode->Parent = NULL; 489d0: 588f addql #4,%sp <== NOT EXECUTED 489d2: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED /* * Decrement the link counter and see if we can free the space. */ the_jnode->st_nlink--; 489d6: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 489da: 5380 subql #1,%d0 <== NOT EXECUTED 489dc: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( the_jnode ); 489e0: 42a7 clrl %sp@- <== NOT EXECUTED 489e2: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 489e6: 4eb9 0004 8f20 jsr 48f20 <== NOT EXECUTED 489ec: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED /* * The file cannot be open and the link must be less than 1 to free. */ if ( !rtems_libio_is_file_open( the_jnode ) && (the_jnode->st_nlink < 1) ) { 489f2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 489f4: 4eb9 0004 8ff2 jsr 48ff2 <== NOT EXECUTED 489fa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48a00: 4a80 tstl %d0 <== NOT EXECUTED 48a02: 663a bnes 48a3e <== NOT EXECUTED 48a04: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 48a08: 6634 bnes 48a3e <== NOT EXECUTED /* * Is rtems_filesystem_current this node? */ if ( rtems_filesystem_current.node_access == pathloc->node_access ) 48a0a: 2079 0005 5604 moveal 55604 ,%a0 <== NOT EXECUTED 48a10: 2653 moveal %a3@,%a3 <== NOT EXECUTED 48a12: b7e8 0004 cmpal %a0@(4),%a3 <== NOT EXECUTED 48a16: 6604 bnes 48a1c <== NOT EXECUTED rtems_filesystem_current.node_access = NULL; 48a18: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED /* * Free memory associated with a memory file. */ if ( the_jnode->type == IMFS_SYM_LINK ) { 48a1c: 7004 moveq #4,%d0 <== NOT EXECUTED 48a1e: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 48a22: 6610 bnes 48a34 <== NOT EXECUTED if ( the_jnode->info.sym_link.name ) 48a24: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 48a28: 670a beqs 48a34 <== NOT EXECUTED free( (void*) the_jnode->info.sym_link.name ); 48a2a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48a2c: 4eb9 0004 8dc4 jsr 48dc4 <== NOT EXECUTED 48a32: 588f addql #4,%sp <== NOT EXECUTED } free( the_jnode ); 48a34: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48a36: 4eb9 0004 8dc4 jsr 48dc4 <== NOT EXECUTED 48a3c: 588f addql #4,%sp <== NOT EXECUTED } return 0; } 48a3e: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 48a42: 266e fff4 moveal %fp@(-12),%a3 <== NOT EXECUTED 48a46: 4e5e unlk %fp <== NOT EXECUTED 48a48: 4280 clrl %d0 <== NOT EXECUTED 48a4a: 4e75 rts 00048a4c : int IMFS_stat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 48a4c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48a50: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; IMFS_device_t *io; the_jnode = loc->node_access; 48a54: 2050 moveal %a0@,%a0 <== NOT EXECUTED int IMFS_stat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 48a56: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED IMFS_device_t *io; the_jnode = loc->node_access; switch ( the_jnode->type ) { 48a5a: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED 48a5e: 7204 moveq #4,%d1 <== NOT EXECUTED 48a60: b280 cmpl %d0,%d1 <== NOT EXECUTED 48a62: 672a beqs 48a8e <== NOT EXECUTED 48a64: 6d0a blts 48a70 <== NOT EXECUTED 48a66: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 48a6a: b280 cmpl %d0,%d1 <== NOT EXECUTED 48a6c: 6626 bnes 48a94 <== NOT EXECUTED 48a6e: 6008 bras 48a78 <== NOT EXECUTED 48a70: 7206 moveq #6,%d1 <== NOT EXECUTED 48a72: b280 cmpl %d0,%d1 <== NOT EXECUTED 48a74: 6d1e blts 48a94 <== NOT EXECUTED 48a76: 600e bras 48a86 <== NOT EXECUTED case IMFS_DEVICE: io = &the_jnode->info.device; buf->st_dev = rtems_filesystem_make_dev_t( io->major, io->minor ); 48a78: 2028 0050 movel %a0@(80),%d0 <== NOT EXECUTED 48a7c: 22a8 004c movel %a0@(76),%a1@ <== NOT EXECUTED 48a80: 2340 0004 movel %d0,%a1@(4) <== NOT EXECUTED 48a84: 6020 bras 48aa6 <== NOT EXECUTED break; case IMFS_LINEAR_FILE: case IMFS_MEMORY_FILE: buf->st_size = the_jnode->info.file.size; 48a86: 2368 004c 001e movel %a0@(76),%a1@(30) <== NOT EXECUTED 48a8c: 6018 bras 48aa6 <== NOT EXECUTED break; case IMFS_SYM_LINK: buf->st_size = 0; 48a8e: 42a9 001e clrl %a1@(30) <== NOT EXECUTED 48a92: 6012 bras 48aa6 <== NOT EXECUTED break; default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 48a94: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48a9a: 2040 moveal %d0,%a0 <== NOT EXECUTED 48a9c: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 48aa2: 70ff moveq #-1,%d0 <== NOT EXECUTED 48aa4: 6032 bras 48ad8 <== NOT EXECUTED buf->st_uid = the_jnode->st_uid; buf->st_gid = the_jnode->st_gid; buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; 48aa6: 4280 clrl %d0 <== NOT EXECUTED break; } buf->st_mode = the_jnode->st_mode; buf->st_nlink = the_jnode->st_nlink; buf->st_ino = the_jnode->st_ino; 48aa8: 2368 0034 0008 movel %a0@(52),%a1@(8) <== NOT EXECUTED buf->st_uid = the_jnode->st_uid; buf->st_gid = the_jnode->st_gid; buf->st_atime = the_jnode->stat_atime; 48aae: 2368 003c 0022 movel %a0@(60),%a1@(34) <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); break; } buf->st_mode = the_jnode->st_mode; buf->st_nlink = the_jnode->st_nlink; 48ab4: 3368 0032 0010 movew %a0@(50),%a1@(16) <== NOT EXECUTED buf->st_ino = the_jnode->st_ino; buf->st_uid = the_jnode->st_uid; buf->st_gid = the_jnode->st_gid; buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; 48aba: 2368 0040 002a movel %a0@(64),%a1@(42) <== NOT EXECUTED } buf->st_mode = the_jnode->st_mode; buf->st_nlink = the_jnode->st_nlink; buf->st_ino = the_jnode->st_ino; buf->st_uid = the_jnode->st_uid; 48ac0: 3368 0038 0012 movew %a0@(56),%a1@(18) <== NOT EXECUTED buf->st_gid = the_jnode->st_gid; 48ac6: 3368 003a 0014 movew %a0@(58),%a1@(20) <== NOT EXECUTED buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; 48acc: 2368 0044 0032 movel %a0@(68),%a1@(50) <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( ENOTSUP ); break; } buf->st_mode = the_jnode->st_mode; 48ad2: 2368 002e 000c movel %a0@(46),%a1@(12) <== 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; } 48ad8: 4e5e unlk %fp <== NOT EXECUTED 48ada: 4e75 rts 00044b78 : int IMFS_symlink( rtems_filesystem_location_info_t *parent_loc, const char *link_name, const char *node_name ) { 44b78: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 44b7c: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Remove any separators at the end of the string. */ IMFS_get_token( node_name, new_name, &i ); 44b7e: 240e movel %fp,%d2 <== NOT EXECUTED 44b80: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44b84: 0682 ffff ffcb addil #-53,%d2 <== NOT EXECUTED 44b8a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44b8c: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 44b90: 4eb9 0004 47e0 jsr 447e0 <== NOT EXECUTED /* * Duplicate link name */ info.sym_link.name = strdup( link_name); 44b96: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 44b9a: 4eb9 0006 cab8 jsr 6cab8 <== NOT EXECUTED if (info.sym_link.name == NULL) { 44ba0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED /* * Duplicate link name */ info.sym_link.name = strdup( link_name); 44ba6: 2d40 ffec movel %d0,%fp@(-20) <== NOT EXECUTED if (info.sym_link.name == NULL) { 44baa: 6610 bnes 44bbc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM); 44bac: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 44bb2: 740c moveq #12,%d2 <== NOT EXECUTED 44bb4: 2040 moveal %d0,%a0 <== NOT EXECUTED 44bb6: 2082 movel %d2,%a0@ <== NOT EXECUTED 44bb8: 70ff moveq #-1,%d0 <== NOT EXECUTED 44bba: 6042 bras 44bfe <== NOT EXECUTED /* * Create a new link node. */ new_node = IMFS_create_node( 44bbc: 486e ffec pea %fp@(-20) <== NOT EXECUTED 44bc0: 2f3c 0000 a1ff movel #41471,%sp@- <== NOT EXECUTED 44bc6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44bc8: 4878 0004 pea 4 <== NOT EXECUTED 44bcc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44bd0: 4eb9 0005 9d04 jsr 59d04 <== NOT EXECUTED new_name, ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if (new_node == NULL) { 44bd6: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 44bdc: 4a80 tstl %d0 <== NOT EXECUTED 44bde: 6704 beqs 44be4 <== NOT EXECUTED 44be0: 4280 clrl %d0 <== NOT EXECUTED 44be2: 601a bras 44bfe <== NOT EXECUTED free( info.sym_link.name); 44be4: 2f2e ffec movel %fp@(-20),%sp@- <== NOT EXECUTED 44be8: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM); 44bee: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 44bf4: 2040 moveal %d0,%a0 <== NOT EXECUTED 44bf6: 720c moveq #12,%d1 <== NOT EXECUTED 44bf8: 588f addql #4,%sp <== NOT EXECUTED 44bfa: 70ff moveq #-1,%d0 <== NOT EXECUTED 44bfc: 2081 movel %d1,%a0@ <== NOT EXECUTED } return 0; } 44bfe: 242e ffc4 movel %fp@(-60),%d2 <== NOT EXECUTED 44c02: 4e5e unlk %fp <== NOT EXECUTED 44c04: 4e75 rts <== NOT EXECUTED ... 00044c08 : #include int IMFS_unlink( rtems_filesystem_location_info_t *loc /* IN */ ) { 44c08: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 44c0c: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 44c10: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED IMFS_jnode_t *node; rtems_filesystem_location_info_t the_link; int result = 0; node = loc->node_access; 44c14: 2453 moveal %a3@,%a2 <== NOT EXECUTED /* * If this is the last last pointer to the node * free the node. */ if ( node->type == IMFS_HARD_LINK ) { 44c16: 7003 moveq #3,%d0 <== NOT EXECUTED 44c18: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 44c1c: 6600 0086 bnew 44ca4 <== NOT EXECUTED if ( !node->info.hard_link.link_node ) 44c20: 242a 004c movel %a2@(76),%d2 <== NOT EXECUTED 44c24: 660e bnes 44c34 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 44c26: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 44c2c: 2040 moveal %d0,%a0 <== NOT EXECUTED 44c2e: 7016 moveq #22,%d0 <== NOT EXECUTED 44c30: 2080 movel %d0,%a0@ <== NOT EXECUTED 44c32: 604c bras 44c80 <== NOT EXECUTED the_link = *loc; 44c34: 4878 0010 pea 10 <== NOT EXECUTED 44c38: 260e movel %fp,%d3 <== NOT EXECUTED 44c3a: 0683 ffff ffe8 addil #-24,%d3 <== NOT EXECUTED 44c40: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44c42: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44c44: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED the_link.node_access = node->info.hard_link.link_node; 44c4a: 2d42 ffe8 movel %d2,%fp@(-24) <== 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) 44c4e: 7401 moveq #1,%d2 <== NOT EXECUTED if ( !node->info.hard_link.link_node ) rtems_set_errno_and_return_minus_one( EINVAL ); the_link = *loc; the_link.node_access = node->info.hard_link.link_node; IMFS_Set_handlers( &the_link ); 44c50: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44c52: 4eb9 0005 9e48 jsr 59e48 <== 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) 44c58: 206a 004c moveal %a2@(76),%a0 <== NOT EXECUTED 44c5c: 4280 clrl %d0 <== NOT EXECUTED 44c5e: 3228 0032 movew %a0@(50),%d1 <== NOT EXECUTED 44c62: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44c68: 3001 movew %d1,%d0 <== NOT EXECUTED 44c6a: b480 cmpl %d0,%d2 <== NOT EXECUTED 44c6c: 6616 bnes 44c84 <== NOT EXECUTED { result = (*the_link.handlers->rmnod_h)( &the_link ); 44c6e: 206e ffec moveal %fp@(-20),%a0 <== NOT EXECUTED 44c72: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44c74: 2068 0034 moveal %a0@(52),%a0 <== NOT EXECUTED 44c78: 4e90 jsr %a0@ <== NOT EXECUTED if ( result != 0 ) 44c7a: 588f addql #4,%sp <== NOT EXECUTED 44c7c: 4a80 tstl %d0 <== NOT EXECUTED 44c7e: 6724 beqs 44ca4 <== NOT EXECUTED 44c80: 70ff moveq #-1,%d0 <== NOT EXECUTED 44c82: 602e bras 44cb2 <== NOT EXECUTED return -1; } else { node->info.hard_link.link_node->st_nlink --; 44c84: 2001 movel %d1,%d0 <== NOT EXECUTED 44c86: 5380 subql #1,%d0 <== NOT EXECUTED 44c88: 3140 0032 movew %d0,%a0@(50) <== NOT EXECUTED IMFS_update_ctime( node->info.hard_link.link_node ); 44c8c: 42a7 clrl %sp@- <== NOT EXECUTED 44c8e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 44c92: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 44c98: 206a 004c moveal %a2@(76),%a0 <== NOT EXECUTED 44c9c: 508f addql #8,%sp <== NOT EXECUTED 44c9e: 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)( loc ); 44ca4: 206b 0004 moveal %a3@(4),%a0 <== NOT EXECUTED 44ca8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44caa: 2068 0034 moveal %a0@(52),%a0 <== NOT EXECUTED 44cae: 4e90 jsr %a0@ <== NOT EXECUTED 44cb0: 588f addql #4,%sp <== NOT EXECUTED return result; } 44cb2: 4cee 0c0c ffd8 moveml %fp@(-40),%d2-%d3/%a2-%a3 <== NOT EXECUTED 44cb8: 4e5e unlk %fp <== NOT EXECUTED 44cba: 4e75 rts 00044cbc : #include int IMFS_unmount( rtems_filesystem_mount_table_entry_t *mt_entry ) { 44cbc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44cc0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *node; node = mt_entry->mt_point_node.node_access; 44cc4: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 44cc8: 7001 moveq #1,%d0 <== NOT EXECUTED 44cca: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 44cce: 670e beqs 44cde <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 44cd0: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 44cd6: 7214 moveq #20,%d1 <== NOT EXECUTED 44cd8: 2040 moveal %d0,%a0 <== NOT EXECUTED 44cda: 2081 movel %d1,%a0@ <== NOT EXECUTED 44cdc: 6012 bras 44cf0 <== NOT EXECUTED /* * Did the node indicate that there was a directory mounted here? */ if ( node->info.directory.mt_fs == NULL ) 44cde: 4aa8 0058 tstl %a0@(88) <== NOT EXECUTED 44ce2: 6610 bnes 44cf4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); /* XXX */ 44ce4: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 44cea: 2040 moveal %d0,%a0 <== NOT EXECUTED 44cec: 7016 moveq #22,%d0 <== NOT EXECUTED 44cee: 2080 movel %d0,%a0@ <== NOT EXECUTED 44cf0: 70ff moveq #-1,%d0 <== NOT EXECUTED 44cf2: 6006 bras 44cfa <== 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; 44cf4: 4280 clrl %d0 <== NOT EXECUTED 44cf6: 42a8 0058 clrl %a0@(88) <== NOT EXECUTED return 0; } 44cfa: 4e5e unlk %fp <== NOT EXECUTED 44cfc: 4e75 rts <== NOT EXECUTED ... 00044d00 : int IMFS_utime( rtems_filesystem_location_info_t *pathloc, /* IN */ time_t actime, /* IN */ time_t modtime /* IN */ ) { 44d00: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44d04: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 44d08: 2050 moveal %a0@,%a0 <== NOT EXECUTED the_jnode->stat_atime = actime; 44d0a: 216e 000c 003c movel %fp@(12),%a0@(60) <== NOT EXECUTED the_jnode->stat_mtime = modtime; return 0; } 44d10: 4280 clrl %d0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; the_jnode->stat_atime = actime; the_jnode->stat_mtime = modtime; 44d12: 216e 0010 0040 movel %fp@(16),%a0@(64) <== NOT EXECUTED return 0; } 44d18: 4e5e unlk %fp <== NOT EXECUTED 44d1a: 4e75 rts 000422a0 : void RTEMS_Malloc_Initialize( void *start, size_t length, size_t sbrk_amount ) { 422a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 422a4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 422a6: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 422aa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 422ac: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED #endif /* * If configured, initialize the statistics support */ if ( rtems_malloc_statistics_helpers ) 422b0: 2079 0005 5b24 moveal 55b24 ,%a0 <== NOT EXECUTED 422b6: 4a88 tstl %a0 <== NOT EXECUTED 422b8: 6704 beqs 422be <== NOT EXECUTED (*rtems_malloc_statistics_helpers->initialize)(); 422ba: 2050 moveal %a0@,%a0 <== NOT EXECUTED 422bc: 4e90 jsr %a0@ <== NOT EXECUTED /* * Initialize the garbage collection list to start with nothing on it. */ malloc_deferred_frees_initialize(); 422be: 4eb9 0004 9240 jsr 49240 <== NOT EXECUTED starting_address = start; /* * Initialize the optional sbrk support for extending the heap */ if (rtems_malloc_sbrk_helpers) { 422c4: 2079 0005 5b28 moveal 55b28 ,%a0 <== NOT EXECUTED 422ca: 4a88 tstl %a0 <== NOT EXECUTED 422cc: 670e beqs 422dc <== NOT EXECUTED starting_address = (*rtems_malloc_sbrk_helpers->initialize)( 422ce: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 422d2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 422d4: 2050 moveal %a0@,%a0 <== NOT EXECUTED 422d6: 4e90 jsr %a0@ <== NOT EXECUTED 422d8: 508f addql #8,%sp <== NOT EXECUTED 422da: 2400 movel %d0,%d2 <== NOT EXECUTED * of the time under UNIX because zero'ing memory when it is first * given to a process eliminates the chance of a process seeing data * left over from another process. This would be a security violation. */ if ( rtems_configuration_get_do_zero_of_workspace() ) 422dc: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED 422e2: 4a28 0028 tstb %a0@(40) <== NOT EXECUTED 422e6: 6712 beqs 422fa <== NOT EXECUTED memset( starting_address, 0, length ); 422e8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 422ea: 42a7 clrl %sp@- <== NOT EXECUTED 422ec: 2f02 movel %d2,%sp@- <== NOT EXECUTED 422ee: 4eb9 0004 b464 jsr 4b464 <== NOT EXECUTED 422f4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED void *starting_address, size_t size, uint32_t page_size ) { return _Heap_Initialize( the_heap, starting_address, size, page_size ); 422fa: 4878 0004 pea 4 <== NOT EXECUTED 422fe: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42300: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42302: 4879 0005 6b48 pea 56b48 <== NOT EXECUTED 42308: 4eb9 0004 5d6c jsr 45d6c <_Heap_Initialize> <== NOT EXECUTED &RTEMS_Malloc_Heap, starting_address, length, CPU_HEAP_ALIGNMENT ); if ( !status ) 4230e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 42314: 4a80 tstl %d0 <== NOT EXECUTED 42316: 6608 bnes 42320 <== NOT EXECUTED rtems_fatal_error_occurred( status ); 42318: 42a7 clrl %sp@- <== NOT EXECUTED 4231a: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED rtems_print_buffer( (start + length) - 48, 48 ); rtems_fatal_error_occurred( RTEMS_NO_MEMORY ); } #endif MSBUMP(space_available, length); 42320: d7b9 0005 6ba0 addl %d3,56ba0 <== NOT EXECUTED } 42326: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4232a: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 4232e: 4e5e unlk %fp <== NOT EXECUTED 42330: 4e75 rts <== NOT EXECUTED ... 00043c8a : static rtems_printk_plugin_t print_handler; void Stack_check_Dump_threads_usage( Thread_Control *the_thread ) { 43c8a: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 43c8e: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED 43c92: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED void *high_water_mark; void *current; Stack_Control *stack; char name[5]; if ( !the_thread ) 43c96: 4a8a tstl %a2 <== NOT EXECUTED 43c98: 6700 0108 beqw 43da2 <== NOT EXECUTED return; if ( !print_handler ) 43c9c: 2879 0007 f024 moveal 7f024 ,%a4 <== NOT EXECUTED 43ca2: 4a8c tstl %a4 <== NOT EXECUTED 43ca4: 6700 00fc beqw 43da2 <== NOT EXECUTED /* * Obtain interrupt stack information */ if (the_thread == (Thread_Control *) -1) { 43ca8: 70ff moveq #-1,%d0 <== NOT EXECUTED 43caa: b08a cmpl %a2,%d0 <== NOT EXECUTED 43cac: 6616 bnes 43cc4 <== NOT EXECUTED if (Stack_check_Interrupt_stack.area) { 43cae: 4ab9 0009 24d8 tstl 924d8 <== NOT EXECUTED 43cb4: 6700 00ec beqw 43da2 <== NOT EXECUTED stack = &Stack_check_Interrupt_stack; the_thread = 0; current = 0; } else return; 43cb8: 95ca subal %a2,%a2 <== NOT EXECUTED 43cba: 4284 clrl %d4 <== NOT EXECUTED 43cbc: 47f9 0009 24d4 lea 924d4 ,%a3 <== NOT EXECUTED 43cc2: 6008 bras 43ccc <== NOT EXECUTED } else { stack = &the_thread->Start.Initial_stack; current = (void *)_CPU_Context_Get_SP( &the_thread->Registers ); 43cc4: 282a 0100 movel %a2@(256),%d4 <== NOT EXECUTED current = 0; } else return; } else { stack = &the_thread->Start.Initial_stack; 43cc8: 47ea 00c0 lea %a2@(192),%a3 <== NOT EXECUTED current = (void *)_CPU_Context_Get_SP( &the_thread->Registers ); } low = Stack_check_usable_stack_start(stack); size = Stack_check_usable_stack_size(stack); 43ccc: 2613 movel %a3@,%d3 <== NOT EXECUTED } else { stack = &the_thread->Start.Initial_stack; current = (void *)_CPU_Context_Get_SP( &the_thread->Registers ); } low = Stack_check_usable_stack_start(stack); 43cce: 242b 0004 movel %a3@(4),%d2 <== NOT EXECUTED size = Stack_check_usable_stack_size(stack); 43cd2: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED high_water_mark = Stack_check_find_high_water_mark(low, size); 43cd8: 2f03 movel %d3,%sp@- <== NOT EXECUTED } else { stack = &the_thread->Start.Initial_stack; current = (void *)_CPU_Context_Get_SP( &the_thread->Registers ); } low = Stack_check_usable_stack_start(stack); 43cda: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED size = Stack_check_usable_stack_size(stack); high_water_mark = Stack_check_find_high_water_mark(low, size); 43ce0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 43ce2: 4eb9 0004 3c58 jsr 43c58 <== NOT EXECUTED if ( high_water_mark ) 43ce8: 508f addql #8,%sp <== NOT EXECUTED 43cea: 4a80 tstl %d0 <== NOT EXECUTED 43cec: 6604 bnes 43cf2 <== NOT EXECUTED 43cee: 4282 clrl %d2 <== NOT EXECUTED 43cf0: 6004 bras 43cf6 <== NOT EXECUTED used = Stack_check_Calculate_used( low, size, high_water_mark ); 43cf2: d483 addl %d3,%d2 <== NOT EXECUTED 43cf4: 9480 subl %d0,%d2 <== NOT EXECUTED else used = 0; if ( the_thread ) { 43cf6: 4a8a tstl %a2 <== NOT EXECUTED 43cf8: 672e beqs 43d28 <== NOT EXECUTED (*print_handler)( 43cfa: 486e fffb pea %fp@(-5) <== NOT EXECUTED 43cfe: 4878 0005 pea 5 <== NOT EXECUTED 43d02: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 43d06: 4eb9 0004 87f8 jsr 487f8 <== NOT EXECUTED 43d0c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43d0e: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 43d12: 4879 0007 81b0 pea 781b0 <== NOT EXECUTED 43d18: 2f39 0007 f020 movel 7f020 ,%sp@- <== NOT EXECUTED 43d1e: 4e94 jsr %a4@ <== NOT EXECUTED 43d20: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 43d26: 6018 bras 43d40 <== NOT EXECUTED "0x%08" PRIx32 " %4s", the_thread->Object.id, rtems_object_get_name( the_thread->Object.id, sizeof(name), name ) ); } else { (*print_handler)( print_context, "0x%08" PRIx32 " INTR", ~0 ); 43d28: 4878 ffff pea ffffffff <== NOT EXECUTED 43d2c: 4879 0007 81bd pea 781bd <== NOT EXECUTED 43d32: 2f39 0007 f020 movel 7f020 ,%sp@- <== NOT EXECUTED 43d38: 4e94 jsr %a4@ <== NOT EXECUTED 43d3a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } (*print_handler)( 43d40: 206b 0004 moveal %a3@(4),%a0 <== NOT EXECUTED 43d44: 2f03 movel %d3,%sp@- <== NOT EXECUTED 43d46: 2f04 movel %d4,%sp@- <== NOT EXECUTED 43d48: 2013 movel %a3@,%d0 <== NOT EXECUTED 43d4a: 5380 subql #1,%d0 <== NOT EXECUTED 43d4c: 4870 0800 pea %a0@(00000000,%d0:l) <== NOT EXECUTED 43d50: 2f08 movel %a0,%sp@- <== NOT EXECUTED 43d52: 2079 0007 f024 moveal 7f024 ,%a0 <== NOT EXECUTED 43d58: 4879 0007 81cb pea 781cb <== NOT EXECUTED 43d5e: 2f39 0007 f020 movel 7f020 ,%sp@- <== NOT EXECUTED 43d64: 4e90 jsr %a0@ <== NOT EXECUTED 43d66: 2079 0007 f024 moveal 7f024 ,%a0 <== NOT EXECUTED stack->area + stack->size - 1, current, size ); if (Stack_check_Initialized == 0) { 43d6c: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 43d72: 4ab9 0007 f01c tstl 7f01c <== NOT EXECUTED 43d78: 6612 bnes 43d8c <== NOT EXECUTED (*print_handler)( print_context, "Unavailable\n" ); 43d7a: 4879 0007 81e9 pea 781e9 <== NOT EXECUTED 43d80: 2f39 0007 f020 movel 7f020 ,%sp@- <== NOT EXECUTED 43d86: 4e90 jsr %a0@ <== NOT EXECUTED 43d88: 508f addql #8,%sp <== NOT EXECUTED 43d8a: 6016 bras 43da2 <== NOT EXECUTED } else { (*print_handler)( print_context, "%8" PRId32 "\n", used ); 43d8c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 43d8e: 4879 0007 81f6 pea 781f6 <== NOT EXECUTED 43d94: 2f39 0007 f020 movel 7f020 ,%sp@- <== NOT EXECUTED 43d9a: 4e90 jsr %a0@ <== NOT EXECUTED 43d9c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } } 43da2: 4cee 1c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a4 <== NOT EXECUTED 43da8: 4e5e unlk %fp <== NOT EXECUTED 43daa: 4e75 rts 00043f8c : /* * Stack_check_Initialize */ void Stack_check_Initialize( void ) { 43f8c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED uint32_t *p; if (Stack_check_Initialized) 43f90: 4ab9 0007 f01c tstl 7f01c <== NOT EXECUTED 43f96: 666c bnes 44004 <== NOT EXECUTED /* * If appropriate, setup the interrupt stack for high water testing * also. */ #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE) if (_CPU_Interrupt_stack_low && _CPU_Interrupt_stack_high) { 43f98: 2239 0009 2670 movel 92670 <_CPU_Interrupt_stack_low>,%d1 <== NOT EXECUTED for ( p = Stack_check_Pattern.pattern; p < &Stack_check_Pattern.pattern[PATTERN_SIZE_WORDS]; p += 4 ) { p[0] = 0xFEEDF00D; /* FEED FOOD to BAD DOG */ 43f9e: 203c feed f00d movel #-17960947,%d0 <== NOT EXECUTED 43fa4: 23c0 0009 24c4 movel %d0,924c4 <== NOT EXECUTED p[1] = 0x0BAD0D06; 43faa: 203c 0bad 0d06 movel #195890438,%d0 <== NOT EXECUTED 43fb0: 23c0 0009 24c8 movel %d0,924c8 <== NOT EXECUTED p[2] = 0xDEADF00D; /* DEAD FOOD GOOD DOG */ 43fb6: 203c dead f00d movel #-559026163,%d0 <== NOT EXECUTED 43fbc: 23c0 0009 24cc movel %d0,924cc <== NOT EXECUTED p[3] = 0x600D0D06; 43fc2: 203c 600d 0d06 movel #1611468038,%d0 <== NOT EXECUTED 43fc8: 23c0 0009 24d0 movel %d0,924d0 <== NOT EXECUTED /* * If appropriate, setup the interrupt stack for high water testing * also. */ #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE) if (_CPU_Interrupt_stack_low && _CPU_Interrupt_stack_high) { 43fce: 4a81 tstl %d1 <== NOT EXECUTED 43fd0: 672a beqs 43ffc <== NOT EXECUTED 43fd2: 2039 0009 2614 movel 92614 <_CPU_Interrupt_stack_high>,%d0 <== NOT EXECUTED 43fd8: 6722 beqs 43ffc <== NOT EXECUTED Stack_check_Interrupt_stack.area = _CPU_Interrupt_stack_low; Stack_check_Interrupt_stack.size = (char *) _CPU_Interrupt_stack_high - 43fda: 9081 subl %d1,%d0 <== NOT EXECUTED (char *) _CPU_Interrupt_stack_low; Stack_check_Dope_stack(&Stack_check_Interrupt_stack); 43fdc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43fde: 4878 00a5 pea a5 <== NOT EXECUTED * If appropriate, setup the interrupt stack for high water testing * also. */ #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE) if (_CPU_Interrupt_stack_low && _CPU_Interrupt_stack_high) { Stack_check_Interrupt_stack.area = _CPU_Interrupt_stack_low; 43fe2: 23c1 0009 24d8 movel %d1,924d8 <== NOT EXECUTED Stack_check_Interrupt_stack.size = (char *) _CPU_Interrupt_stack_high - (char *) _CPU_Interrupt_stack_low; Stack_check_Dope_stack(&Stack_check_Interrupt_stack); 43fe8: 2f01 movel %d1,%sp@- <== NOT EXECUTED * also. */ #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE) if (_CPU_Interrupt_stack_low && _CPU_Interrupt_stack_high) { Stack_check_Interrupt_stack.area = _CPU_Interrupt_stack_low; Stack_check_Interrupt_stack.size = (char *) _CPU_Interrupt_stack_high - 43fea: 23c0 0009 24d4 movel %d0,924d4 <== NOT EXECUTED (char *) _CPU_Interrupt_stack_low; Stack_check_Dope_stack(&Stack_check_Interrupt_stack); 43ff0: 4eb9 0006 a54c jsr 6a54c <== NOT EXECUTED 43ff6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } #endif Stack_check_Initialized = 1; 43ffc: 7001 moveq #1,%d0 <== NOT EXECUTED 43ffe: 23c0 0007 f01c movel %d0,7f01c <== NOT EXECUTED } 44004: 4e5e unlk %fp <== NOT EXECUTED 44006: 4e75 rts 00043c58 : */ void *Stack_check_find_high_water_mark( const void *s, size_t n ) { 43c58: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * start at lower memory and find first word that does not * match pattern */ base += PATTERN_SIZE_WORDS; 43c5c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED for (ebase = base + length; base < ebase; base++) 43c60: 70fc moveq #-4,%d0 <== NOT EXECUTED /* * start at lower memory and find first word that does not * match pattern */ base += PATTERN_SIZE_WORDS; 43c62: d1fc 0000 0010 addal #16,%a0 <== NOT EXECUTED for (ebase = base + length; base < ebase; base++) 43c68: c0ae 000c andl %fp@(12),%d0 <== NOT EXECUTED 43c6c: d088 addl %a0,%d0 <== NOT EXECUTED 43c6e: 6010 bras 43c80 <== NOT EXECUTED if (*base != U32_PATTERN) 43c70: 223c a5a5 a5a5 movel #-1515870811,%d1 <== NOT EXECUTED 43c76: b290 cmpl %a0@,%d1 <== NOT EXECUTED 43c78: 6704 beqs 43c7e <== NOT EXECUTED return (void *) base; 43c7a: 2008 movel %a0,%d0 <== NOT EXECUTED 43c7c: 6008 bras 43c86 <== NOT EXECUTED * start at lower memory and find first word that does not * match pattern */ base += PATTERN_SIZE_WORDS; for (ebase = base + length; base < ebase; base++) 43c7e: 5888 addql #4,%a0 <== NOT EXECUTED 43c80: b088 cmpl %a0,%d0 <== NOT EXECUTED 43c82: 62ec bhis 43c70 <== NOT EXECUTED 43c84: 4280 clrl %d0 <== NOT EXECUTED if (*base != U32_PATTERN) return (void *) base; #endif return (void *)0; } 43c86: 4e5e unlk %fp <== NOT EXECUTED 43c88: 4e75 rts 00043e28 : */ void Stack_check_report_blown_task( Thread_Control *running, bool pattern_ok ) { 43e28: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 43e2c: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 43e30: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Stack_Control *stack = &running->Start.Initial_stack; printk( 43e34: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED */ void Stack_check_report_blown_task( Thread_Control *running, bool pattern_ok ) { 43e38: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Stack_Control *stack = &running->Start.Initial_stack; printk( 43e3c: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 43e40: 47f9 0004 65c2 lea 465c2 ,%a3 <== NOT EXECUTED 43e46: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43e48: 4879 0007 825d pea 7825d <== NOT EXECUTED 43e4e: 4e93 jsr %a3@ <== NOT EXECUTED rtems_configuration_get_user_multiprocessing_table()->node ); } #endif printk( 43e50: 202a 00c0 movel %a2@(192),%d0 <== NOT EXECUTED 43e54: 206a 00c4 moveal %a2@(196),%a0 <== NOT EXECUTED 43e58: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43e5a: 4870 08ff pea %a0@(ffffffff,%d0:l) <== NOT EXECUTED 43e5e: 2f08 movel %a0,%sp@- <== NOT EXECUTED 43e60: 4879 0007 829b pea 7829b <== NOT EXECUTED 43e66: 4e93 jsr %a3@ <== NOT EXECUTED stack->area, stack->area + stack->size - 1, stack->size ); if ( !pattern_ok ) { 43e68: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 43e6e: 4a02 tstb %d2 <== NOT EXECUTED 43e70: 661a bnes 43e8c <== NOT EXECUTED printk( 43e72: 4878 0010 pea 10 <== NOT EXECUTED 43e76: 246a 00c4 moveal %a2@(196),%a2 <== NOT EXECUTED 43e7a: 508a addql #8,%a2 <== NOT EXECUTED 43e7c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43e7e: 4879 0007 82c9 pea 782c9 <== NOT EXECUTED 43e84: 4e93 jsr %a3@ <== NOT EXECUTED 43e86: dffc 0000 000c addal #12,%sp <== NOT EXECUTED " Damaged pattern begins at 0x%08lx and is %d bytes long\n", (unsigned long) Stack_check_Get_pattern_area(stack), PATTERN_SIZE_BYTES); } rtems_fatal_error_occurred( 0x81 ); 43e8c: 4878 0081 pea 81 <== NOT EXECUTED 43e90: 4eb9 0004 911c jsr 4911c <== NOT EXECUTED 000457a0 <_API_Mutex_Allocate>: #include void _API_Mutex_Allocate( API_Mutex_Control **the_mutex ) { 457a0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 457a4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 457a6: 2f02 movel %d2,%sp@- <== NOT EXECUTED CORE_mutex_Attributes attr = { CORE_MUTEX_NESTING_IS_ERROR, FALSE, CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT, 0 }; 457a8: 240e movel %fp,%d2 <== NOT EXECUTED 457aa: 4878 000e pea e <== NOT EXECUTED 457ae: 0682 ffff fff2 addil #-14,%d2 <== NOT EXECUTED 457b4: 4879 0005 41aa pea 541aa <== NOT EXECUTED 457ba: 2f02 movel %d2,%sp@- <== NOT EXECUTED 457bc: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED mutex = (API_Mutex_Control *) _Objects_Allocate( &_API_Mutex_Information ); 457c2: 4879 0005 6d8c pea 56d8c <_API_Mutex_Information> <== NOT EXECUTED 457c8: 4eb9 0004 600c jsr 4600c <_Objects_Allocate> <== NOT EXECUTED _CORE_mutex_Initialize( &mutex->Mutex, &attr, CORE_MUTEX_UNLOCKED ); 457ce: 4878 0001 pea 1 <== NOT EXECUTED FALSE, CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT, 0 }; mutex = (API_Mutex_Control *) _Objects_Allocate( &_API_Mutex_Information ); 457d2: 2440 moveal %d0,%a2 <== NOT EXECUTED _CORE_mutex_Initialize( &mutex->Mutex, &attr, CORE_MUTEX_UNLOCKED ); 457d4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 457d6: 486a 0010 pea %a2@(16) <== NOT EXECUTED 457da: 4eb9 0004 58ec jsr 458ec <_CORE_mutex_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 457e0: 2079 0005 6da6 moveal 56da6 <_API_Mutex_Information+0x1a>,%a0 <== NOT EXECUTED 457e6: 4280 clrl %d0 <== NOT EXECUTED 457e8: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 457ec: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string == FALSE */ the_object->name.name_u32 = name; 457f0: 7001 moveq #1,%d0 <== NOT EXECUTED _Objects_Open_u32( &_API_Mutex_Information, &mutex->Object, 1 ); *the_mutex = mutex; 457f2: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 457f8: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED 457fc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45800: 208a movel %a2,%a0@ <== NOT EXECUTED } 45802: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 45806: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 4580a: 4e5e unlk %fp <== NOT EXECUTED 4580c: 4e75 rts <== NOT EXECUTED ... 00045844 <_API_Mutex_Initialization>: #include void _API_Mutex_Initialization( uint32_t maximum_mutexes ) { 45844: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 45848: 42a7 clrl %sp@- <== NOT EXECUTED 4584a: 42a7 clrl %sp@- <== NOT EXECUTED 4584c: 4878 0072 pea 72 <== NOT EXECUTED 45850: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45854: 4878 0002 pea 2 <== NOT EXECUTED 45858: 4878 0001 pea 1 <== NOT EXECUTED 4585c: 4879 0005 6d8c pea 56d8c <_API_Mutex_Information> <== NOT EXECUTED 45862: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED 45868: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , TRUE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4586e: 4e5e unlk %fp <== NOT EXECUTED 45870: 4e75 rts <== NOT EXECUTED ... 00045810 <_API_Mutex_Lock>: #include void _API_Mutex_Lock( API_Mutex_Control *the_mutex ) { 45810: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 45814: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED #include void _API_Mutex_Lock( API_Mutex_Control *the_mutex ) { 4581a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4581e: 40c0 movew %sr,%d0 <== NOT EXECUTED 45820: 8280 orl %d0,%d1 <== NOT EXECUTED 45822: 46c1 movew %d1,%sr <== NOT EXECUTED _CORE_mutex_Seize( 45824: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45826: 42a7 clrl %sp@- <== NOT EXECUTED 45828: 4878 0001 pea 1 <== NOT EXECUTED 4582c: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 45830: 4868 0010 pea %a0@(16) <== NOT EXECUTED 45834: 4eb9 0004 5a00 jsr 45a00 <_CORE_mutex_Seize> <== NOT EXECUTED 4583a: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED the_mutex->Object.id, TRUE, 0, level ); } 45840: 4e5e unlk %fp <== NOT EXECUTED 45842: 4e75 rts 00045874 <_API_Mutex_Unlock>: rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 45874: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED #include void _API_Mutex_Unlock( API_Mutex_Control *the_mutex ) { 4587a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4587e: 5280 addql #1,%d0 <== NOT EXECUTED 45880: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 45886: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED _Thread_Disable_dispatch(); _CORE_mutex_Surrender( 4588a: 42a7 clrl %sp@- <== NOT EXECUTED 4588c: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 45890: 4868 0010 pea %a0@(16) <== NOT EXECUTED 45894: 4eb9 0004 5aa8 jsr 45aa8 <_CORE_mutex_Surrender> <== NOT EXECUTED &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); 4589a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 458a0: 4e5e unlk %fp <== NOT EXECUTED _CORE_mutex_Surrender( &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); 458a2: 4ef9 0004 6c4e jmp 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 00045786 <_API_extensions_Add>: */ void _API_extensions_Add( API_extensions_Control *the_extension ) { 45786: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Chain_Append( &_API_extensions_List, &the_extension->Node ); 4578a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4578e: 4879 0005 6e4e pea 56e4e <_API_extensions_List> <== NOT EXECUTED 45794: 4eb9 0004 58a8 jsr 458a8 <_Chain_Append> <== NOT EXECUTED 4579a: 508f addql #8,%sp <== NOT EXECUTED } 4579c: 4e5e unlk %fp <== NOT EXECUTED 4579e: 4e75 rts 000456e0 <_API_extensions_Initialization>: * * _API_extensions_Initialization */ void _API_extensions_Initialization( void ) { 456e0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 456e4: 41f9 0005 6e4e lea 56e4e <_API_extensions_List>,%a0 <== NOT EXECUTED _Chain_Initialize_empty( &_API_extensions_List ); } 456ea: 4e5e unlk %fp <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 456ec: 23c8 0005 6e56 movel %a0,56e56 <_API_extensions_List+0x8> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 456f2: 20bc 0005 6e52 movel #355922,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 456f8: 42b9 0005 6e52 clrl 56e52 <_API_extensions_List+0x4> <== NOT EXECUTED 456fe: 4e75 rts 0004572a <_API_extensions_Run_postdriver>: * * _API_extensions_Run_postdriver */ void _API_extensions_Run_postdriver( void ) { 4572a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4572e: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; 45730: 2479 0005 6e4e moveal 56e4e <_API_extensions_List>,%a2 <== NOT EXECUTED 45736: 600c bras 45744 <_API_extensions_Run_postdriver+0x1a> <== NOT EXECUTED !_Chain_Is_tail( &_API_extensions_List, the_node ) ; the_node = the_node->next ) { the_extension = (API_extensions_Control *) the_node; if ( the_extension->postdriver_hook ) 45738: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED 4573c: 4a88 tstl %a0 <== NOT EXECUTED 4573e: 6702 beqs 45742 <_API_extensions_Run_postdriver+0x18> <== NOT EXECUTED (*the_extension->postdriver_hook)(); 45740: 4e90 jsr %a0@ <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; !_Chain_Is_tail( &_API_extensions_List, the_node ) ; the_node = the_node->next ) { 45742: 2452 moveal %a2@,%a2 <== NOT EXECUTED { Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; !_Chain_Is_tail( &_API_extensions_List, the_node ) ; 45744: b5fc 0005 6e52 cmpal #355922,%a2 <== NOT EXECUTED 4574a: 66ec bnes 45738 <_API_extensions_Run_postdriver+0xe> <== NOT EXECUTED the_extension = (API_extensions_Control *) the_node; if ( the_extension->postdriver_hook ) (*the_extension->postdriver_hook)(); } } 4574c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45750: 4e5e unlk %fp <== NOT EXECUTED 45752: 4e75 rts 00045754 <_API_extensions_Run_postswitch>: * * _API_extensions_Run_postswitch */ void _API_extensions_Run_postswitch( void ) { 45754: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45758: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; 4575a: 2479 0005 6e4e moveal 56e4e <_API_extensions_List>,%a2 <== NOT EXECUTED 45760: 6014 bras 45776 <_API_extensions_Run_postswitch+0x22> <== NOT EXECUTED !_Chain_Is_tail( &_API_extensions_List, the_node ) ; the_node = the_node->next ) { the_extension = (API_extensions_Control *) the_node; if ( the_extension->postswitch_hook ) 45762: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 45766: 4a88 tstl %a0 <== NOT EXECUTED 45768: 670a beqs 45774 <_API_extensions_Run_postswitch+0x20> <== NOT EXECUTED (*the_extension->postswitch_hook)( _Thread_Executing ); 4576a: 2f39 0005 6d62 movel 56d62 <_Thread_Executing>,%sp@- <== NOT EXECUTED 45770: 4e90 jsr %a0@ <== NOT EXECUTED 45772: 588f addql #4,%sp <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; !_Chain_Is_tail( &_API_extensions_List, the_node ) ; the_node = the_node->next ) { 45774: 2452 moveal %a2@,%a2 <== NOT EXECUTED { Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; !_Chain_Is_tail( &_API_extensions_List, the_node ) ; 45776: b5fc 0005 6e52 cmpal #355922,%a2 <== NOT EXECUTED 4577c: 66e4 bnes 45762 <_API_extensions_Run_postswitch+0xe> <== NOT EXECUTED the_extension = (API_extensions_Control *) the_node; if ( the_extension->postswitch_hook ) (*the_extension->postswitch_hook)( _Thread_Executing ); } } 4577e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45782: 4e5e unlk %fp <== NOT EXECUTED 45784: 4e75 rts 00045700 <_API_extensions_Run_predriver>: * * _API_extensions_Run_predriver */ void _API_extensions_Run_predriver( void ) { 45700: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45704: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; 45706: 2479 0005 6e4e moveal 56e4e <_API_extensions_List>,%a2 <== NOT EXECUTED 4570c: 600c bras 4571a <_API_extensions_Run_predriver+0x1a> <== NOT EXECUTED !_Chain_Is_tail( &_API_extensions_List, the_node ) ; the_node = the_node->next ) { the_extension = (API_extensions_Control *) the_node; if ( the_extension->predriver_hook ) 4570e: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 45712: 4a88 tstl %a0 <== NOT EXECUTED 45714: 6702 beqs 45718 <_API_extensions_Run_predriver+0x18> <== NOT EXECUTED (*the_extension->predriver_hook)(); 45716: 4e90 jsr %a0@ <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; !_Chain_Is_tail( &_API_extensions_List, the_node ) ; the_node = the_node->next ) { 45718: 2452 moveal %a2@,%a2 <== NOT EXECUTED { Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; !_Chain_Is_tail( &_API_extensions_List, the_node ) ; 4571a: b5fc 0005 6e52 cmpal #355922,%a2 <== NOT EXECUTED 45720: 66ec bnes 4570e <_API_extensions_Run_predriver+0xe> <== NOT EXECUTED the_extension = (API_extensions_Control *) the_node; if ( the_extension->predriver_hook ) (*the_extension->predriver_hook)(); } } 45722: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45726: 4e5e unlk %fp <== NOT EXECUTED 45728: 4e75 rts 000495b8 <_Barrier_Manager_initialization>: */ void _Barrier_Manager_initialization( uint32_t maximum_barriers ) { 495b8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 495bc: 4878 0004 pea 4 <== NOT EXECUTED 495c0: 42a7 clrl %sp@- <== NOT EXECUTED 495c2: 4878 0060 pea 60 <== NOT EXECUTED 495c6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 495ca: 4878 000a pea a <== NOT EXECUTED 495ce: 4878 0002 pea 2 <== NOT EXECUTED 495d2: 4879 0005 6f26 pea 56f26 <_Barrier_Information> <== NOT EXECUTED 495d8: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED 495de: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 495e4: 4e5e unlk %fp <== NOT EXECUTED 495e6: 4e75 rts 0004a354 <_Barrier_Translate_core_barrier_return_code>: }; rtems_status_code _Barrier_Translate_core_barrier_return_code ( CORE_barrier_Status the_barrier_status ) { 4a354: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_barrier_status > CORE_BARRIER_STATUS_LAST ) return RTEMS_INTERNAL_ERROR; #endif return _Barrier_Translate_core_barrier_return_code_[the_barrier_status]; } 4a358: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED }; rtems_status_code _Barrier_Translate_core_barrier_return_code ( CORE_barrier_Status the_barrier_status ) { 4a35c: 41f9 0005 76e8 lea 576e8 <_Barrier_Translate_core_barrier_return_code_>,%a0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_barrier_status > CORE_BARRIER_STATUS_LAST ) return RTEMS_INTERNAL_ERROR; #endif return _Barrier_Translate_core_barrier_return_code_[the_barrier_status]; } 4a362: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4a366: 4e5e unlk %fp <== NOT EXECUTED 4a368: 4e75 rts <== NOT EXECUTED ... 00046548 <_CORE_barrier_Initialize>: void _CORE_barrier_Initialize( CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes ) { 46548: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED the_barrier->Attributes = *the_barrier_attributes; the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 4654c: 4878 0003 pea 3 <== NOT EXECUTED void _CORE_barrier_Initialize( CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes ) { 46550: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46554: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED the_barrier->Attributes = *the_barrier_attributes; the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 46558: 2f3c 0001 0000 movel #65536,%sp@- <== NOT EXECUTED CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes ) { the_barrier->Attributes = *the_barrier_attributes; 4655e: 2011 movel %a1@,%d0 <== NOT EXECUTED 46560: 2169 0004 0044 movel %a1@(4),%a0@(68) <== NOT EXECUTED the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 46566: 42a7 clrl %sp@- <== NOT EXECUTED CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes ) { the_barrier->Attributes = *the_barrier_attributes; 46568: 2140 0040 movel %d0,%a0@(64) <== NOT EXECUTED the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 4656c: 2f08 movel %a0,%sp@- <== NOT EXECUTED CORE_barrier_Attributes *the_barrier_attributes ) { the_barrier->Attributes = *the_barrier_attributes; the_barrier->number_of_waiting_threads = 0; 4656e: 42a8 0048 clrl %a0@(72) <== NOT EXECUTED _Thread_queue_Initialize( 46572: 4eb9 0004 806c jsr 4806c <_Thread_queue_Initialize> <== NOT EXECUTED 46578: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED &the_barrier->Wait_queue, THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_BARRIER, CORE_BARRIER_TIMEOUT ); } 4657e: 4e5e unlk %fp <== NOT EXECUTED 46580: 4e75 rts <== NOT EXECUTED ... 00046584 <_CORE_barrier_Release>: uint32_t _CORE_barrier_Release( CORE_barrier_Control *the_barrier, Objects_Id id, CORE_barrier_API_mp_support_callout api_barrier_mp_support ) { 46584: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 46588: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4658c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Thread_Control *the_thread; uint32_t count; count = 0; while ( (the_thread = _Thread_queue_Dequeue(&the_barrier->Wait_queue)) ) { 46590: 4282 clrl %d2 <== NOT EXECUTED 46592: 47f9 0004 7cdc lea 47cdc <_Thread_queue_Dequeue>,%a3 <== NOT EXECUTED 46598: 6002 bras 4659c <_CORE_barrier_Release+0x18> <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( !_Objects_Is_local_id( the_thread->Object.id ) ) (*api_barrier_mp_support) ( the_thread, id ); #endif count++; 4659a: 5282 addql #1,%d2 <== NOT EXECUTED { Thread_Control *the_thread; uint32_t count; count = 0; while ( (the_thread = _Thread_queue_Dequeue(&the_barrier->Wait_queue)) ) { 4659c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4659e: 4e93 jsr %a3@ <== NOT EXECUTED 465a0: 588f addql #4,%sp <== NOT EXECUTED 465a2: 4a80 tstl %d0 <== NOT EXECUTED 465a4: 66f4 bnes 4659a <_CORE_barrier_Release+0x16> <== NOT EXECUTED #endif count++; } the_barrier->number_of_waiting_threads = 0; return count; } 465a6: 2002 movel %d2,%d0 <== NOT EXECUTED if ( !_Objects_Is_local_id( the_thread->Object.id ) ) (*api_barrier_mp_support) ( the_thread, id ); #endif count++; } the_barrier->number_of_waiting_threads = 0; 465a8: 42aa 0048 clrl %a2@(72) <== NOT EXECUTED return count; } 465ac: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 465b2: 4e5e unlk %fp <== NOT EXECUTED 465b4: 4e75 rts <== NOT EXECUTED ... 000465b8 <_CORE_barrier_Wait>: Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_barrier_API_mp_support_callout api_barrier_mp_support ) { 465b8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 465bc: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 465c0: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 465c4: 282e 0014 movel %fp@(20),%d4 <== NOT EXECUTED Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; 465c8: 2279 0005 8e9a moveal 58e9a <_Thread_Executing>,%a1 <== NOT EXECUTED executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL; _ISR_Disable( level ); 465ce: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED { Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL; 465d4: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_barrier_API_mp_support_callout api_barrier_mp_support ) { 465d8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 465dc: 242e 0018 movel %fp@(24),%d2 <== NOT EXECUTED Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL; _ISR_Disable( level ); 465e0: 40c1 movew %sr,%d1 <== NOT EXECUTED 465e2: 8081 orl %d1,%d0 <== NOT EXECUTED 465e4: 46c0 movew %d0,%sr <== NOT EXECUTED the_barrier->number_of_waiting_threads++; 465e6: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED 465ea: 5280 addql #1,%d0 <== NOT EXECUTED 465ec: 2140 0048 movel %d0,%a0@(72) <== NOT EXECUTED if ( the_barrier->number_of_waiting_threads == 465f0: b0a8 0044 cmpl %a0@(68),%d0 <== NOT EXECUTED 465f4: 6626 bnes 4661c <_CORE_barrier_Wait+0x64> <== NOT EXECUTED the_barrier->Attributes.maximum_count) { if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) { 465f6: 4aa8 0040 tstl %a0@(64) <== NOT EXECUTED 465fa: 6620 bnes 4661c <_CORE_barrier_Wait+0x64> <== NOT EXECUTED executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED; 465fc: 7001 moveq #1,%d0 <== NOT EXECUTED 465fe: 2340 0034 movel %d0,%a1@(52) <== NOT EXECUTED _ISR_Enable( level ); 46602: 46c1 movew %d1,%sr <== NOT EXECUTED _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support ); 46604: 2d42 0010 movel %d2,%fp@(16) <== NOT EXECUTED 46608: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4660c: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED executing->Wait.queue = &the_barrier->Wait_queue; executing->Wait.id = id; _ISR_Enable( level ); _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout ); } 46610: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 46614: 4e5e unlk %fp <== NOT EXECUTED if ( the_barrier->number_of_waiting_threads == the_barrier->Attributes.maximum_count) { if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) { executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED; _ISR_Enable( level ); _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support ); 46616: 4ef9 0004 6584 jmp 46584 <_CORE_barrier_Release> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section ( Thread_queue_Control *the_thread_queue ) { the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; 4661c: 7001 moveq #1,%d0 <== NOT EXECUTED } } _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue ); executing->Wait.queue = &the_barrier->Wait_queue; executing->Wait.id = id; 4661e: 2343 0020 movel %d3,%a1@(32) <== NOT EXECUTED 46622: 2140 0030 movel %d0,%a0@(48) <== NOT EXECUTED return; } } _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue ); executing->Wait.queue = &the_barrier->Wait_queue; 46626: 2348 0044 movel %a0,%a1@(68) <== NOT EXECUTED executing->Wait.id = id; _ISR_Enable( level ); 4662a: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout ); 4662c: 2d44 000c movel %d4,%fp@(12) <== NOT EXECUTED 46630: 203c 0004 8158 movel #295256,%d0 <== NOT EXECUTED 46636: 2d40 0010 movel %d0,%fp@(16) <== NOT EXECUTED 4663a: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 4663e: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 46642: 4e5e unlk %fp <== NOT EXECUTED _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue ); executing->Wait.queue = &the_barrier->Wait_queue; executing->Wait.id = id; _ISR_Enable( level ); _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout ); 46644: 4ef9 0004 7e20 jmp 47e20 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED ... 000500b8 <_CORE_message_queue_Broadcast>: size_t size, Objects_Id id, CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, uint32_t *count ) { 500b8: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 500bc: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@ <== NOT EXECUTED 500c0: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 500c4: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED Thread_Control *the_thread; uint32_t number_broadcasted; Thread_Wait_information *waitp; if ( size > the_message_queue->maximum_message_size ) { 500c8: b6ab 004c cmpl %a3@(76),%d3 <== NOT EXECUTED 500cc: 6304 blss 500d2 <_CORE_message_queue_Broadcast+0x1a> <== NOT EXECUTED 500ce: 7001 moveq #1,%d0 <== NOT EXECUTED 500d0: 604e bras 50120 <_CORE_message_queue_Broadcast+0x68> <== NOT EXECUTED * NOTE: This check is critical because threads can block on * send and receive and this ensures that we are broadcasting * the message to threads waiting to receive -- not to send. */ if ( the_message_queue->number_of_pending_messages != 0 ) { 500d2: 4aab 0048 tstl %a3@(72) <== NOT EXECUTED 500d6: 6610 bnes 500e8 <_CORE_message_queue_Broadcast+0x30> <== NOT EXECUTED * There must be no pending messages if there is a thread waiting to * receive a message. */ number_broadcasted = 0; while ((the_thread = _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) { 500d8: 4282 clrl %d2 <== NOT EXECUTED 500da: 4bf9 0005 2214 lea 52214 <_Thread_queue_Dequeue>,%a5 <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 500e0: 49f9 0005 67b4 lea 567b4 ,%a4 <== NOT EXECUTED 500e6: 6024 bras 5010c <_CORE_message_queue_Broadcast+0x54> <== NOT EXECUTED * send and receive and this ensures that we are broadcasting * the message to threads waiting to receive -- not to send. */ if ( the_message_queue->number_of_pending_messages != 0 ) { *count = 0; 500e8: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 500ec: 4290 clrl %a0@ <== NOT EXECUTED 500ee: 4280 clrl %d0 <== NOT EXECUTED 500f0: 602e bras 50120 <_CORE_message_queue_Broadcast+0x68> <== NOT EXECUTED 500f2: 2f03 movel %d3,%sp@- <== NOT EXECUTED */ number_broadcasted = 0; while ((the_thread = _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) { waitp = &the_thread->Wait; number_broadcasted += 1; 500f4: 5282 addql #1,%d2 <== NOT EXECUTED 500f6: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 500fa: 2f2a 002c movel %a2@(44),%sp@- <== NOT EXECUTED 500fe: 4e94 jsr %a4@ <== NOT EXECUTED buffer, waitp->return_argument_second.mutable_object, size ); *(size_t *) the_thread->Wait.return_argument = size; 50100: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED 50104: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5010a: 2083 movel %d3,%a0@ <== NOT EXECUTED * There must be no pending messages if there is a thread waiting to * receive a message. */ number_broadcasted = 0; while ((the_thread = _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) { 5010c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5010e: 4e95 jsr %a5@ <== NOT EXECUTED 50110: 588f addql #4,%sp <== NOT EXECUTED 50112: 2440 moveal %d0,%a2 <== NOT EXECUTED 50114: 4a80 tstl %d0 <== NOT EXECUTED 50116: 66da bnes 500f2 <_CORE_message_queue_Broadcast+0x3a> <== NOT EXECUTED if ( !_Objects_Is_local_id( the_thread->Object.id ) ) (*api_message_queue_mp_support) ( the_thread, id ); #endif } *count = number_broadcasted; 50118: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 5011c: 4280 clrl %d0 <== NOT EXECUTED 5011e: 2082 movel %d2,%a0@ <== NOT EXECUTED return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; } 50120: 4cee 3c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a5 <== NOT EXECUTED 50126: 4e5e unlk %fp <== NOT EXECUTED 50128: 4e75 rts <== NOT EXECUTED ... 0004f414 <_CORE_message_queue_Close>: void _CORE_message_queue_Close( CORE_message_queue_Control *the_message_queue, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { 4f414: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4f418: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * This will flush blocked threads whether they were blocked on * a send or receive. */ _Thread_queue_Flush( 4f41a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED void _CORE_message_queue_Close( CORE_message_queue_Control *the_message_queue, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { 4f41e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED /* * This will flush blocked threads whether they were blocked on * a send or receive. */ _Thread_queue_Flush( 4f422: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4f426: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f428: 4eb9 0004 af30 jsr 4af30 <_Thread_queue_Flush> <== NOT EXECUTED * This removes all messages from the pending message queue. Since * we just flushed all waiting threads, we don't have to worry about * the flush satisfying any blocked senders as a side-effect. */ if ( the_message_queue->number_of_pending_messages != 0 ) 4f42e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f434: 4aaa 0048 tstl %a2@(72) <== NOT EXECUTED 4f438: 670a beqs 4f444 <_CORE_message_queue_Close+0x30> <== NOT EXECUTED (void) _CORE_message_queue_Flush_support( the_message_queue ); 4f43a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f43c: 4eb9 0004 f458 jsr 4f458 <_CORE_message_queue_Flush_support> <== NOT EXECUTED 4f442: 588f addql #4,%sp <== NOT EXECUTED (void) _Workspace_Free( the_message_queue->message_buffers ); 4f444: 2d6a 005c 0008 movel %a2@(92),%fp@(8) <== NOT EXECUTED } 4f44a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4f44e: 4e5e unlk %fp <== NOT EXECUTED */ if ( the_message_queue->number_of_pending_messages != 0 ) (void) _CORE_message_queue_Flush_support( the_message_queue ); (void) _Workspace_Free( the_message_queue->message_buffers ); 4f450: 4ef9 0004 bad4 jmp 4bad4 <_Workspace_Free> <== NOT EXECUTED ... 00050170 <_CORE_message_queue_Flush>: */ uint32_t _CORE_message_queue_Flush( CORE_message_queue_Control *the_message_queue ) { 50170: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 50174: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( the_message_queue->number_of_pending_messages != 0 ) 50178: 4aa8 0048 tstl %a0@(72) <== NOT EXECUTED 5017c: 6606 bnes 50184 <_CORE_message_queue_Flush+0x14> <== NOT EXECUTED return _CORE_message_queue_Flush_support( the_message_queue ); else return 0; } 5017e: 4e5e unlk %fp <== NOT EXECUTED 50180: 4280 clrl %d0 <== NOT EXECUTED 50182: 4e75 rts <== NOT EXECUTED uint32_t _CORE_message_queue_Flush( CORE_message_queue_Control *the_message_queue ) { if ( the_message_queue->number_of_pending_messages != 0 ) return _CORE_message_queue_Flush_support( the_message_queue ); 50184: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED else return 0; } 50188: 4e5e unlk %fp <== NOT EXECUTED uint32_t _CORE_message_queue_Flush( CORE_message_queue_Control *the_message_queue ) { if ( the_message_queue->number_of_pending_messages != 0 ) return _CORE_message_queue_Flush_support( the_message_queue ); 5018a: 4ef9 0005 0190 jmp 50190 <_CORE_message_queue_Flush_support> <== NOT EXECUTED 0004f458 <_CORE_message_queue_Flush_support>: */ uint32_t _CORE_message_queue_Flush_support( CORE_message_queue_Control *the_message_queue ) { 4f458: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4f45c: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED * * For now, though, we are very happy to have a small routine with * fixed execution time that only deals with pending messages. */ _ISR_Disable( level ); 4f460: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ uint32_t _CORE_message_queue_Flush_support( CORE_message_queue_Control *the_message_queue ) { 4f466: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED * * For now, though, we are very happy to have a small routine with * fixed execution time that only deals with pending messages. */ _ISR_Disable( level ); 4f46a: 40c1 movew %sr,%d1 <== NOT EXECUTED 4f46c: 8081 orl %d1,%d0 <== NOT EXECUTED 4f46e: 46c0 movew %d0,%sr <== NOT EXECUTED inactive_first = the_message_queue->Inactive_messages.first; message_queue_first = the_message_queue->Pending_messages.first; 4f470: 2468 0050 moveal %a0@(80),%a2 <== NOT EXECUTED * For now, though, we are very happy to have a small routine with * fixed execution time that only deals with pending messages. */ _ISR_Disable( level ); inactive_first = the_message_queue->Inactive_messages.first; 4f474: 2668 0068 moveal %a0@(104),%a3 <== NOT EXECUTED message_queue_first = the_message_queue->Pending_messages.first; message_queue_last = the_message_queue->Pending_messages.last; 4f478: 2268 0058 moveal %a0@(88),%a1 <== NOT EXECUTED the_message_queue->Inactive_messages.first = message_queue_first; 4f47c: 214a 0068 movel %a2,%a0@(104) <== NOT EXECUTED message_queue_last->next = inactive_first; inactive_first->previous = message_queue_last; message_queue_first->previous = 4f480: 49e8 0068 lea %a0@(104),%a4 <== NOT EXECUTED _Chain_Head( &the_message_queue->Inactive_messages ); _Chain_Initialize_empty( &the_message_queue->Pending_messages ); count = the_message_queue->number_of_pending_messages; 4f484: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED message_queue_first = the_message_queue->Pending_messages.first; message_queue_last = the_message_queue->Pending_messages.last; the_message_queue->Inactive_messages.first = message_queue_first; message_queue_last->next = inactive_first; inactive_first->previous = message_queue_last; 4f488: 2749 0004 movel %a1,%a3@(4) <== NOT EXECUTED inactive_first = the_message_queue->Inactive_messages.first; message_queue_first = the_message_queue->Pending_messages.first; message_queue_last = the_message_queue->Pending_messages.last; the_message_queue->Inactive_messages.first = message_queue_first; message_queue_last->next = inactive_first; 4f48c: 228b movel %a3,%a1@ <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f48e: 43e8 0054 lea %a0@(84),%a1 <== NOT EXECUTED inactive_first->previous = message_queue_last; message_queue_first->previous = 4f492: 254c 0004 movel %a4,%a2@(4) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f496: 49e8 0050 lea %a0@(80),%a4 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f49a: 2149 0050 movel %a1,%a0@(80) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f49e: 214c 0058 movel %a4,%a0@(88) <== NOT EXECUTED _Chain_Head( &the_message_queue->Inactive_messages ); _Chain_Initialize_empty( &the_message_queue->Pending_messages ); count = the_message_queue->number_of_pending_messages; the_message_queue->number_of_pending_messages = 0; 4f4a2: 42a8 0048 clrl %a0@(72) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 4f4a6: 42a8 0054 clrl %a0@(84) <== NOT EXECUTED _ISR_Enable( level ); 4f4aa: 46c1 movew %d1,%sr <== NOT EXECUTED return count; } 4f4ac: 4cd7 1c00 moveml %sp@,%a2-%a4 <== NOT EXECUTED 4f4b0: 4e5e unlk %fp <== NOT EXECUTED 4f4b2: 4e75 rts 000501ec <_CORE_message_queue_Initialize>: CORE_message_queue_Control *the_message_queue, CORE_message_queue_Attributes *the_message_queue_attributes, uint32_t maximum_pending_messages, size_t maximum_message_size ) { 501ec: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 501f0: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 501f4: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 501f8: 222e 0014 movel %fp@(20),%d1 <== NOT EXECUTED 501fc: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED * Round size up to multiple of a pointer for chain init and * check for overflow on adding overhead to each message. */ allocated_message_size = maximum_message_size; if (allocated_message_size & (sizeof(uint32_t) - 1)) { 50200: 7003 moveq #3,%d0 <== NOT EXECUTED ) { size_t message_buffering_required; size_t allocated_message_size; the_message_queue->maximum_pending_messages = maximum_pending_messages; 50202: 2543 0044 movel %d3,%a2@(68) <== NOT EXECUTED * Round size up to multiple of a pointer for chain init and * check for overflow on adding overhead to each message. */ allocated_message_size = maximum_message_size; if (allocated_message_size & (sizeof(uint32_t) - 1)) { 50206: c081 andl %d1,%d0 <== NOT EXECUTED { size_t message_buffering_required; size_t allocated_message_size; the_message_queue->maximum_pending_messages = maximum_pending_messages; the_message_queue->number_of_pending_messages = 0; 50208: 42aa 0048 clrl %a2@(72) <== NOT EXECUTED the_message_queue->maximum_message_size = maximum_message_size; 5020c: 2541 004c movel %d1,%a2@(76) <== NOT EXECUTED CORE_message_queue_Control *the_message_queue, CORE_message_queue_Notify_Handler the_handler, void *the_argument ) { the_message_queue->notify_handler = the_handler; 50210: 42aa 0060 clrl %a2@(96) <== NOT EXECUTED the_message_queue->notify_argument = the_argument; 50214: 42aa 0064 clrl %a2@(100) <== NOT EXECUTED * Round size up to multiple of a pointer for chain init and * check for overflow on adding overhead to each message. */ allocated_message_size = maximum_message_size; if (allocated_message_size & (sizeof(uint32_t) - 1)) { 50218: 4a80 tstl %d0 <== NOT EXECUTED 5021a: 6604 bnes 50220 <_CORE_message_queue_Initialize+0x34> <== NOT EXECUTED 5021c: 2001 movel %d1,%d0 <== NOT EXECUTED 5021e: 600c bras 5022c <_CORE_message_queue_Initialize+0x40> <== NOT EXECUTED allocated_message_size += sizeof(uint32_t); 50220: 2001 movel %d1,%d0 <== NOT EXECUTED 50222: 5880 addql #4,%d0 <== NOT EXECUTED allocated_message_size &= ~(sizeof(uint32_t) - 1); 50224: 74fc moveq #-4,%d2 <== NOT EXECUTED 50226: c082 andl %d2,%d0 <== NOT EXECUTED } if (allocated_message_size < maximum_message_size) 50228: b280 cmpl %d0,%d1 <== NOT EXECUTED 5022a: 6270 bhis 5029c <_CORE_message_queue_Initialize+0xb0> <== NOT EXECUTED /* * Calculate how much total memory is required for message buffering and * check for overflow on the multiplication. */ message_buffering_required = (size_t) maximum_pending_messages * 5022c: 2400 movel %d0,%d2 <== NOT EXECUTED 5022e: 0682 0000 0014 addil #20,%d2 <== NOT EXECUTED 50234: 2202 movel %d2,%d1 <== NOT EXECUTED 50236: 4c03 1800 mulsl %d3,%d1 <== NOT EXECUTED (allocated_message_size + sizeof(CORE_message_queue_Buffer_control)); if (message_buffering_required < allocated_message_size) 5023a: b081 cmpl %d1,%d0 <== NOT EXECUTED 5023c: 625e bhis 5029c <_CORE_message_queue_Initialize+0xb0> <== NOT EXECUTED return false; /* * Attempt to allocate the message memory */ the_message_queue->message_buffers = (CORE_message_queue_Buffer *) 5023e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 50240: 4eb9 0005 33a0 jsr 533a0 <_Workspace_Allocate> <== NOT EXECUTED _Workspace_Allocate( message_buffering_required ); if (the_message_queue->message_buffers == 0) 50246: 588f addql #4,%sp <== NOT EXECUTED return false; /* * Attempt to allocate the message memory */ the_message_queue->message_buffers = (CORE_message_queue_Buffer *) 50248: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED _Workspace_Allocate( message_buffering_required ); if (the_message_queue->message_buffers == 0) 5024c: 674e beqs 5029c <_CORE_message_queue_Initialize+0xb0> <== NOT EXECUTED /* * Initialize the pool of inactive messages, pending messages, * and set of waiting threads. */ _Chain_Initialize ( 5024e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 50250: 2f03 movel %d3,%sp@- <== NOT EXECUTED 50252: 2f00 movel %d0,%sp@- <== NOT EXECUTED 50254: 486a 0068 pea %a2@(104) <== NOT EXECUTED 50258: 4eb9 0005 007c jsr 5007c <_Chain_Initialize> <== NOT EXECUTED allocated_message_size + sizeof( CORE_message_queue_Buffer_control ) ); _Chain_Initialize_empty( &the_message_queue->Pending_messages ); _Thread_queue_Initialize( 5025e: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 50262: 4878 0006 pea 6 <== NOT EXECUTED 50266: 7001 moveq #1,%d0 <== NOT EXECUTED 50268: b090 cmpl %a0@,%d0 <== NOT EXECUTED 5026a: 57c0 seq %d0 <== NOT EXECUTED 5026c: 4878 0080 pea 80 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 50270: 41ea 0054 lea %a2@(84),%a0 <== NOT EXECUTED 50274: 49c0 extbl %d0 <== NOT EXECUTED 50276: 2548 0050 movel %a0,%a2@(80) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 5027a: 41ea 0050 lea %a2@(80),%a0 <== NOT EXECUTED 5027e: 4480 negl %d0 <== NOT EXECUTED 50280: 2548 0058 movel %a0,%a2@(88) <== NOT EXECUTED 50284: 2f00 movel %d0,%sp@- <== NOT EXECUTED 50286: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 50288: 42aa 0054 clrl %a2@(84) <== NOT EXECUTED 5028c: 4eb9 0005 25a4 jsr 525a4 <_Thread_queue_Initialize> <== NOT EXECUTED 50292: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 50298: 7001 moveq #1,%d0 <== NOT EXECUTED 5029a: 6002 bras 5029e <_CORE_message_queue_Initialize+0xb2> <== NOT EXECUTED THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_MESSAGE, CORE_MESSAGE_QUEUE_STATUS_TIMEOUT ); return true; 5029c: 4200 clrb %d0 <== NOT EXECUTED } 5029e: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 502a4: 4e5e unlk %fp <== NOT EXECUTED 502a6: 4e75 rts 00051dd8 <_CORE_message_queue_Insert_message>: void _CORE_message_queue_Insert_message( CORE_message_queue_Control *the_message_queue, CORE_message_queue_Buffer_control *the_message, CORE_message_queue_Submit_types submit_type ) { 51dd8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 51ddc: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 51de0: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 51de4: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 51de8: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED ISR_Level level; bool notify = false; the_message->priority = submit_type; 51dec: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED switch ( submit_type ) { 51df0: 0c80 8000 0000 cmpil #-2147483648,%d0 <== NOT EXECUTED 51df6: 673e beqs 51e36 <_CORE_message_queue_Insert_message+0x5e> <== NOT EXECUTED 51df8: 0c80 7fff ffff cmpil #2147483647,%d0 <== NOT EXECUTED 51dfe: 666a bnes 51e6a <_CORE_message_queue_Insert_message+0x92> <== NOT EXECUTED case CORE_MESSAGE_QUEUE_SEND_REQUEST: _ISR_Disable( level ); 51e00: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 51e06: 40c1 movew %sr,%d1 <== NOT EXECUTED 51e08: 8081 orl %d1,%d0 <== NOT EXECUTED 51e0a: 46c0 movew %d0,%sr <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 51e0c: 41eb 0054 lea %a3@(84),%a0 <== NOT EXECUTED 51e10: 2488 movel %a0,%a2@ <== NOT EXECUTED old_last_node = the_chain->last; 51e12: 206b 0058 moveal %a3@(88),%a0 <== NOT EXECUTED if ( the_message_queue->number_of_pending_messages++ == 0 ) 51e16: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED the_chain->last = the_node; 51e1a: 274a 0058 movel %a2,%a3@(88) <== NOT EXECUTED 51e1e: 2240 moveal %d0,%a1 <== NOT EXECUTED 51e20: 5289 addql #1,%a1 <== NOT EXECUTED 51e22: 2749 0048 movel %a1,%a3@(72) <== NOT EXECUTED 51e26: 4a80 tstl %d0 <== NOT EXECUTED 51e28: 57c0 seq %d0 <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 51e2a: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 51e2e: 4480 negl %d0 <== NOT EXECUTED Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; the_chain->last = the_node; old_last_node->next = the_node; 51e30: 208a movel %a2,%a0@ <== NOT EXECUTED notify = true; _CORE_message_queue_Append_unprotected(the_message_queue, the_message); _ISR_Enable( level ); 51e32: 46c1 movew %d1,%sr <== NOT EXECUTED 51e34: 607e bras 51eb4 <_CORE_message_queue_Insert_message+0xdc> <== NOT EXECUTED break; case CORE_MESSAGE_QUEUE_URGENT_REQUEST: _ISR_Disable( level ); 51e36: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 51e3c: 40c1 movew %sr,%d1 <== NOT EXECUTED 51e3e: 8081 orl %d1,%d0 <== NOT EXECUTED 51e40: 46c0 movew %d0,%sr <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Head( Chain_Control *the_chain ) { return (Chain_Node *) the_chain; 51e42: 41eb 0050 lea %a3@(80),%a0 <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 51e46: 2250 moveal %a0@,%a1 <== NOT EXECUTED if ( the_message_queue->number_of_pending_messages++ == 0 ) 51e48: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED after_node->next = the_node; 51e4c: 208a movel %a2,%a0@ <== NOT EXECUTED 51e4e: 2400 movel %d0,%d2 <== NOT EXECUTED 51e50: 5282 addql #1,%d2 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 51e52: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 51e56: 4a80 tstl %d0 <== NOT EXECUTED 51e58: 57c0 seq %d0 <== NOT EXECUTED 51e5a: 2742 0048 movel %d2,%a3@(72) <== NOT EXECUTED 51e5e: 4480 negl %d0 <== NOT EXECUTED before_node = after_node->next; after_node->next = the_node; the_node->next = before_node; before_node->previous = the_node; 51e60: 234a 0004 movel %a2,%a1@(4) <== NOT EXECUTED Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; after_node->next = the_node; the_node->next = before_node; 51e64: 2489 movel %a1,%a2@ <== NOT EXECUTED notify = true; _CORE_message_queue_Prepend_unprotected(the_message_queue, the_message); _ISR_Enable( level ); 51e66: 46c1 movew %d1,%sr <== NOT EXECUTED 51e68: 604a bras 51eb4 <_CORE_message_queue_Insert_message+0xdc> <== NOT EXECUTED CORE_message_queue_Buffer_control *this_message; Chain_Node *the_node; Chain_Control *the_header; the_header = &the_message_queue->Pending_messages; the_node = the_header->first; 51e6a: 206b 0050 moveal %a3@(80),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 51e6e: 220b movel %a3,%d1 <== NOT EXECUTED 51e70: 0681 0000 0054 addil #84,%d1 <== NOT EXECUTED 51e76: 6008 bras 51e80 <_CORE_message_queue_Insert_message+0xa8> <== NOT EXECUTED while ( !_Chain_Is_tail( the_header, the_node ) ) { this_message = (CORE_message_queue_Buffer_control *) the_node; if ( this_message->priority <= the_message->priority ) { 51e78: b0a8 0008 cmpl %a0@(8),%d0 <== NOT EXECUTED 51e7c: 6d06 blts 51e84 <_CORE_message_queue_Insert_message+0xac> <== NOT EXECUTED the_node = the_node->next; 51e7e: 2050 moveal %a0@,%a0 <== NOT EXECUTED Chain_Node *the_node; Chain_Control *the_header; the_header = &the_message_queue->Pending_messages; the_node = the_header->first; while ( !_Chain_Is_tail( the_header, the_node ) ) { 51e80: b288 cmpl %a0,%d1 <== NOT EXECUTED 51e82: 66f4 bnes 51e78 <_CORE_message_queue_Insert_message+0xa0> <== NOT EXECUTED continue; } break; } _ISR_Disable( level ); 51e84: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 51e8a: 40c2 movew %sr,%d2 <== NOT EXECUTED 51e8c: 8082 orl %d2,%d0 <== NOT EXECUTED 51e8e: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_message_queue->number_of_pending_messages++ == 0 ) notify = true; _Chain_Insert_unprotected( the_node->previous, &the_message->Node ); 51e90: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 51e94: 2250 moveal %a0@,%a1 <== NOT EXECUTED } break; } _ISR_Disable( level ); if ( the_message_queue->number_of_pending_messages++ == 0 ) 51e96: 222b 0048 movel %a3@(72),%d1 <== NOT EXECUTED after_node->next = the_node; 51e9a: 208a movel %a2,%a0@ <== NOT EXECUTED 51e9c: 4a81 tstl %d1 <== NOT EXECUTED 51e9e: 57c0 seq %d0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 51ea0: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 51ea4: 5281 addql #1,%d1 <== NOT EXECUTED 51ea6: 4480 negl %d0 <== NOT EXECUTED 51ea8: 2741 0048 movel %d1,%a3@(72) <== NOT EXECUTED before_node = after_node->next; after_node->next = the_node; the_node->next = before_node; before_node->previous = the_node; 51eac: 234a 0004 movel %a2,%a1@(4) <== NOT EXECUTED Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; after_node->next = the_node; the_node->next = before_node; 51eb0: 2489 movel %a1,%a2@ <== NOT EXECUTED notify = true; _Chain_Insert_unprotected( the_node->previous, &the_message->Node ); _ISR_Enable( level ); 51eb2: 46c2 movew %d2,%sr <== NOT EXECUTED * According to POSIX, does this happen before or after the message * is actually enqueued. It is logical to think afterwards, because * the message is actually in the queue at this point. */ if ( notify && the_message_queue->notify_handler ) 51eb4: 4a00 tstb %d0 <== NOT EXECUTED 51eb6: 6716 beqs 51ece <_CORE_message_queue_Insert_message+0xf6> <== NOT EXECUTED 51eb8: 202b 0060 movel %a3@(96),%d0 <== NOT EXECUTED 51ebc: 6710 beqs 51ece <_CORE_message_queue_Insert_message+0xf6> <== NOT EXECUTED (*the_message_queue->notify_handler)( the_message_queue->notify_argument ); 51ebe: 2240 moveal %d0,%a1 <== NOT EXECUTED 51ec0: 2d6b 0064 0008 movel %a3@(100),%fp@(8) <== NOT EXECUTED } 51ec6: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 51eca: 4e5e unlk %fp <== NOT EXECUTED * is actually enqueued. It is logical to think afterwards, because * the message is actually in the queue at this point. */ if ( notify && the_message_queue->notify_handler ) (*the_message_queue->notify_handler)( the_message_queue->notify_argument ); 51ecc: 4ed1 jmp %a1@ <== NOT EXECUTED } 51ece: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 51ed2: 4e5e unlk %fp <== NOT EXECUTED 51ed4: 4e75 rts <== NOT EXECUTED ... 0004f4b4 <_CORE_message_queue_Seize>: void *buffer, size_t *size_p, bool wait, Watchdog_Interval timeout ) { 4f4b4: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 4f4b8: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== NOT EXECUTED 4f4bc: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 4f4c0: 282e 001c movel %fp@(28),%d4 <== NOT EXECUTED ISR_Level level; CORE_message_queue_Buffer_control *the_message; Thread_Control *executing; Thread_Control *the_thread; executing = _Thread_Executing; 4f4c4: 2279 0006 2a4a moveal 62a4a <_Thread_Executing>,%a1 <== NOT EXECUTED executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; _ISR_Disable( level ); 4f4ca: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED CORE_message_queue_Buffer_control *the_message; Thread_Control *executing; Thread_Control *the_thread; executing = _Thread_Executing; executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 4f4d0: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED void *buffer, size_t *size_p, bool wait, Watchdog_Interval timeout ) { 4f4d4: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4f4d8: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4f4dc: 286e 0014 moveal %fp@(20),%a4 <== NOT EXECUTED 4f4e0: 142e 001b moveb %fp@(27),%d2 <== NOT EXECUTED Thread_Control *executing; Thread_Control *the_thread; executing = _Thread_Executing; executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; _ISR_Disable( level ); 4f4e4: 40c1 movew %sr,%d1 <== NOT EXECUTED 4f4e6: 8081 orl %d1,%d0 <== NOT EXECUTED 4f4e8: 46c0 movew %d0,%sr <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 4f4ea: 246b 0050 moveal %a3@(80),%a2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected( Chain_Control *the_chain ) { if ( !_Chain_Is_empty(the_chain)) 4f4ee: 200b movel %a3,%d0 <== NOT EXECUTED 4f4f0: 0680 0000 0054 addil #84,%d0 <== NOT EXECUTED 4f4f6: b08a cmpl %a2,%d0 <== NOT EXECUTED 4f4f8: 6700 00ac beqw 4f5a6 <_CORE_message_queue_Seize+0xf2> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 4f4fc: 2052 moveal %a2@,%a0 <== NOT EXECUTED the_chain->first = new_first; 4f4fe: 2748 0050 movel %a0,%a3@(80) <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 4f502: 4beb 0050 lea %a3@(80),%a5 <== NOT EXECUTED 4f506: 214d 0004 movel %a5,%a0@(4) <== NOT EXECUTED the_message = _CORE_message_queue_Get_pending_message( the_message_queue ); if ( the_message != NULL ) { 4f50a: 4a8a tstl %a2 <== NOT EXECUTED 4f50c: 6700 0098 beqw 4f5a6 <_CORE_message_queue_Seize+0xf2> <== NOT EXECUTED the_message_queue->number_of_pending_messages -= 1; 4f510: 53ab 0048 subql #1,%a3@(72) <== NOT EXECUTED _ISR_Enable( level ); 4f514: 46c1 movew %d1,%sr <== NOT EXECUTED *size_p = the_message->Contents.size; _Thread_Executing->Wait.count = the_message->priority; 4f516: 2079 0006 2a4a moveal 62a4a <_Thread_Executing>,%a0 <== NOT EXECUTED the_message = _CORE_message_queue_Get_pending_message( the_message_queue ); if ( the_message != NULL ) { the_message_queue->number_of_pending_messages -= 1; _ISR_Enable( level ); *size_p = the_message->Contents.size; 4f51c: 28aa 000c movel %a2@(12),%a4@ <== NOT EXECUTED _Thread_Executing->Wait.count = the_message->priority; _CORE_message_queue_Copy_buffer(the_message->Contents.buffer,buffer,*size_p); 4f520: 240a movel %a2,%d2 <== NOT EXECUTED if ( the_message != NULL ) { the_message_queue->number_of_pending_messages -= 1; _ISR_Enable( level ); *size_p = the_message->Contents.size; _Thread_Executing->Wait.count = the_message->priority; 4f522: 216a 0008 0024 movel %a2@(8),%a0@(36) <== NOT EXECUTED _CORE_message_queue_Copy_buffer(the_message->Contents.buffer,buffer,*size_p); 4f528: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 4f52e: 2f14 movel %a4@,%sp@- <== NOT EXECUTED 4f530: 4bf9 0005 39b8 lea 539b8 ,%a5 <== NOT EXECUTED 4f536: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f538: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f53a: 4e95 jsr %a5@ <== NOT EXECUTED * * NOTE: If we note that the queue was not full before this receive, * then we can avoid this dequeue. */ the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue ); 4f53c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4f53e: 4eb9 0004 abcc jsr 4abcc <_Thread_queue_Dequeue> <== NOT EXECUTED if ( !the_thread ) { 4f544: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED * * NOTE: If we note that the queue was not full before this receive, * then we can avoid this dequeue. */ the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue ); 4f54a: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !the_thread ) { 4f54c: 4a80 tstl %d0 <== NOT EXECUTED 4f54e: 661c bnes 4f56c <_CORE_message_queue_Seize+0xb8> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _CORE_message_queue_Free_message_buffer ( CORE_message_queue_Control *the_message_queue, CORE_message_queue_Buffer_control *the_message ) { _Chain_Append( &the_message_queue->Inactive_messages, &the_message->Node ); 4f550: d7fc 0000 0068 addal #104,%a3 <== NOT EXECUTED 4f556: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 4f55a: 2d4b 0008 movel %a3,%fp@(8) <== NOT EXECUTED executing->Wait.return_argument = size_p; /* Wait.count will be filled in with the message priority */ _ISR_Enable( level ); _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); } 4f55e: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 4f564: 4e5e unlk %fp <== NOT EXECUTED 4f566: 4ef9 0004 9430 jmp 49430 <_Chain_Append> <== NOT EXECUTED * puts the messages in the message queue on behalf of the * waiting task. */ the_message->priority = the_thread->Wait.count; the_message->Contents.size = (size_t) the_thread->Wait.option; 4f56c: 2028 0030 movel %a0@(48),%d0 <== NOT EXECUTED * There was a thread waiting to send a message. This code * puts the messages in the message queue on behalf of the * waiting task. */ the_message->priority = the_thread->Wait.count; 4f570: 2568 0024 0008 movel %a0@(36),%a2@(8) <== NOT EXECUTED the_message->Contents.size = (size_t) the_thread->Wait.option; 4f576: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 4f57a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f57c: 2f28 002c movel %a0@(44),%sp@- <== NOT EXECUTED 4f580: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f582: 4e95 jsr %a5@ <== NOT EXECUTED the_thread->Wait.return_argument_second.immutable_object, the_message->Contents.buffer, the_message->Contents.size ); _CORE_message_queue_Insert_message( 4f584: 2d6a 0008 0010 movel %a2@(8),%fp@(16) <== NOT EXECUTED 4f58a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f590: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 4f594: 2d4b 0008 movel %a3,%fp@(8) <== NOT EXECUTED executing->Wait.return_argument = size_p; /* Wait.count will be filled in with the message priority */ _ISR_Enable( level ); _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); } 4f598: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 4f59e: 4e5e unlk %fp <== NOT EXECUTED the_thread->Wait.return_argument_second.immutable_object, the_message->Contents.buffer, the_message->Contents.size ); _CORE_message_queue_Insert_message( 4f5a0: 4ef9 0005 1dd8 jmp 51dd8 <_CORE_message_queue_Insert_message> <== NOT EXECUTED the_message->priority ); return; } if ( !wait ) { 4f5a6: 4a02 tstb %d2 <== NOT EXECUTED 4f5a8: 6612 bnes 4f5bc <_CORE_message_queue_Seize+0x108> <== NOT EXECUTED _ISR_Enable( level ); 4f5aa: 46c1 movew %d1,%sr <== NOT EXECUTED executing->Wait.return_argument = size_p; /* Wait.count will be filled in with the message priority */ _ISR_Enable( level ); _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); } 4f5ac: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED return; } if ( !wait ) { _ISR_Enable( level ); executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT; 4f5b2: 7004 moveq #4,%d0 <== NOT EXECUTED executing->Wait.return_argument = size_p; /* Wait.count will be filled in with the message priority */ _ISR_Enable( level ); _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); } 4f5b4: 4e5e unlk %fp <== NOT EXECUTED return; } if ( !wait ) { _ISR_Enable( level ); executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT; 4f5b6: 2340 0034 movel %d0,%a1@(52) <== NOT EXECUTED executing->Wait.return_argument = size_p; /* Wait.count will be filled in with the message priority */ _ISR_Enable( level ); _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); } 4f5ba: 4e75 rts <== NOT EXECUTED 4f5bc: 7001 moveq #1,%d0 <== NOT EXECUTED 4f5be: 2740 0030 movel %d0,%a3@(48) <== NOT EXECUTED _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue ); executing->Wait.queue = &the_message_queue->Wait_queue; executing->Wait.id = id; executing->Wait.return_argument_second.mutable_object = buffer; executing->Wait.return_argument = size_p; 4f5c2: 234c 0028 movel %a4,%a1@(40) <== NOT EXECUTED return; } _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue ); executing->Wait.queue = &the_message_queue->Wait_queue; executing->Wait.id = id; 4f5c6: 2345 0020 movel %d5,%a1@(32) <== NOT EXECUTED executing->Wait.return_argument_second.mutable_object = buffer; 4f5ca: 2343 002c movel %d3,%a1@(44) <== NOT EXECUTED executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT; return; } _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue ); executing->Wait.queue = &the_message_queue->Wait_queue; 4f5ce: 234b 0044 movel %a3,%a1@(68) <== NOT EXECUTED executing->Wait.id = id; executing->Wait.return_argument_second.mutable_object = buffer; executing->Wait.return_argument = size_p; /* Wait.count will be filled in with the message priority */ _ISR_Enable( level ); 4f5d2: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); 4f5d4: 4bf9 0004 b048 lea 4b048 <_Thread_queue_Timeout>,%a5 <== NOT EXECUTED 4f5da: 2d44 000c movel %d4,%fp@(12) <== NOT EXECUTED 4f5de: 2d4d 0010 movel %a5,%fp@(16) <== NOT EXECUTED 4f5e2: 2d4b 0008 movel %a3,%fp@(8) <== NOT EXECUTED } 4f5e6: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 4f5ec: 4e5e unlk %fp <== NOT EXECUTED executing->Wait.return_argument_second.mutable_object = buffer; executing->Wait.return_argument = size_p; /* Wait.count will be filled in with the message priority */ _ISR_Enable( level ); _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); 4f5ee: 4ef9 0004 ad10 jmp 4ad10 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED 0004f5f4 <_CORE_message_queue_Submit>: CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, CORE_message_queue_Submit_types submit_type, bool wait, Watchdog_Interval timeout ) { 4f5f4: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4f5f8: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 4f5fc: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4f600: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4f604: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 4f608: 282e 001c movel %fp@(28),%d4 <== NOT EXECUTED 4f60c: 142e 0023 moveb %fp@(35),%d2 <== NOT EXECUTED ISR_Level level; CORE_message_queue_Buffer_control *the_message; Thread_Control *the_thread; if ( size > the_message_queue->maximum_message_size ) { 4f610: b6ab 004c cmpl %a3@(76),%d3 <== NOT EXECUTED 4f614: 6306 blss 4f61c <_CORE_message_queue_Submit+0x28> <== NOT EXECUTED 4f616: 7001 moveq #1,%d0 <== NOT EXECUTED 4f618: 6000 00e4 braw 4f6fe <_CORE_message_queue_Submit+0x10a> <== NOT EXECUTED /* * Is there a thread currently waiting on this message queue? */ if ( the_message_queue->number_of_pending_messages == 0 ) { 4f61c: 4aab 0048 tstl %a3@(72) <== NOT EXECUTED 4f620: 6634 bnes 4f656 <_CORE_message_queue_Submit+0x62> <== NOT EXECUTED the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue ); 4f622: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4f624: 4eb9 0004 abcc jsr 4abcc <_Thread_queue_Dequeue> <== NOT EXECUTED if ( the_thread ) { 4f62a: 588f addql #4,%sp <== NOT EXECUTED /* * Is there a thread currently waiting on this message queue? */ if ( the_message_queue->number_of_pending_messages == 0 ) { the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue ); 4f62c: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( the_thread ) { 4f62e: 4a80 tstl %d0 <== NOT EXECUTED 4f630: 6724 beqs 4f656 <_CORE_message_queue_Submit+0x62> <== NOT EXECUTED 4f632: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f634: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f636: 2f2a 002c movel %a2@(44),%sp@- <== NOT EXECUTED 4f63a: 4eb9 0005 39b8 jsr 539b8 <== NOT EXECUTED _CORE_message_queue_Copy_buffer( buffer, the_thread->Wait.return_argument_second.mutable_object, size ); *(size_t *) the_thread->Wait.return_argument = size; 4f640: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED 4f644: 2083 movel %d3,%a0@ <== NOT EXECUTED the_thread->Wait.count = submit_type; 4f646: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f64c: 4280 clrl %d0 <== NOT EXECUTED 4f64e: 2544 0024 movel %d4,%a2@(36) <== NOT EXECUTED 4f652: 6000 00aa braw 4f6fe <_CORE_message_queue_Submit+0x10a> <== NOT EXECUTED /* * No one waiting on the message queue at this time, so attempt to * queue the message up for a future receive. */ if ( the_message_queue->number_of_pending_messages < 4f656: 202b 0044 movel %a3@(68),%d0 <== NOT EXECUTED 4f65a: b0ab 0048 cmpl %a3@(72),%d0 <== NOT EXECUTED 4f65e: 6340 blss 4f6a0 <_CORE_message_queue_Submit+0xac> <== NOT EXECUTED RTEMS_INLINE_ROUTINE CORE_message_queue_Buffer_control * _CORE_message_queue_Allocate_message_buffer ( CORE_message_queue_Control *the_message_queue ) { return (CORE_message_queue_Buffer_control *) 4f660: 486b 0068 pea %a3@(104) <== NOT EXECUTED 4f664: 4eb9 0004 9468 jsr 49468 <_Chain_Get> <== NOT EXECUTED /* * NOTE: If the system is consistent, this error should never occur. */ if ( !the_message ) { 4f66a: 588f addql #4,%sp <== NOT EXECUTED 4f66c: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f66e: 4a80 tstl %d0 <== NOT EXECUTED 4f670: 6700 008a beqw 4f6fc <_CORE_message_queue_Submit+0x108> <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 4f674: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f676: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f678: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4f67c: 4eb9 0005 39b8 jsr 539b8 <== NOT EXECUTED _CORE_message_queue_Copy_buffer( buffer, the_message->Contents.buffer, size ); the_message->Contents.size = size; 4f682: 2543 000c movel %d3,%a2@(12) <== NOT EXECUTED the_message->priority = submit_type; 4f686: 2544 0008 movel %d4,%a2@(8) <== NOT EXECUTED _CORE_message_queue_Insert_message( 4f68a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4f68c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f68e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4f690: 4eb9 0005 1dd8 jsr 51dd8 <_CORE_message_queue_Insert_message> <== NOT EXECUTED 4f696: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 4f69c: 4280 clrl %d0 <== NOT EXECUTED 4f69e: 605e bras 4f6fe <_CORE_message_queue_Submit+0x10a> <== NOT EXECUTED * No message buffers were available so we may need to return an * overflow error or block the sender until the message is placed * on the queue. */ if ( !wait ) { 4f6a0: 4a02 tstb %d2 <== NOT EXECUTED 4f6a2: 6604 bnes 4f6a8 <_CORE_message_queue_Submit+0xb4> <== NOT EXECUTED 4f6a4: 7002 moveq #2,%d0 <== NOT EXECUTED 4f6a6: 6056 bras 4f6fe <_CORE_message_queue_Submit+0x10a> <== NOT EXECUTED /* * Do NOT block on a send if the caller is in an ISR. It is * deadly to block in an ISR. */ if ( _ISR_Is_in_progress() ) { 4f6a8: 2039 0006 2a2a movel 62a2a <_ISR_Nest_level>,%d0 <== NOT EXECUTED 4f6ae: 664c bnes 4f6fc <_CORE_message_queue_Submit+0x108> <== NOT EXECUTED */ { Thread_Control *executing = _Thread_Executing; _ISR_Disable( level ); 4f6b0: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED * it as a variable. Doing this emphasizes how dangerous it * would be to use this variable prior to here. */ { Thread_Control *executing = _Thread_Executing; 4f6b6: 2079 0006 2a4a moveal 62a4a <_Thread_Executing>,%a0 <== NOT EXECUTED _ISR_Disable( level ); 4f6bc: 40c0 movew %sr,%d0 <== NOT EXECUTED 4f6be: 8280 orl %d0,%d1 <== NOT EXECUTED 4f6c0: 46c1 movew %d1,%sr <== NOT EXECUTED 4f6c2: 7201 moveq #1,%d1 <== NOT EXECUTED _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue ); executing->Wait.queue = &the_message_queue->Wait_queue; executing->Wait.id = id; 4f6c4: 216e 0014 0020 movel %fp@(20),%a0@(32) <== NOT EXECUTED 4f6ca: 2741 0030 movel %d1,%a3@(48) <== NOT EXECUTED executing->Wait.return_argument_second.immutable_object = buffer; executing->Wait.option = (uint32_t) size; executing->Wait.count = submit_type; 4f6ce: 2144 0024 movel %d4,%a0@(36) <== NOT EXECUTED _ISR_Disable( level ); _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue ); executing->Wait.queue = &the_message_queue->Wait_queue; executing->Wait.id = id; executing->Wait.return_argument_second.immutable_object = buffer; 4f6d2: 2145 002c movel %d5,%a0@(44) <== NOT EXECUTED executing->Wait.option = (uint32_t) size; 4f6d6: 2143 0030 movel %d3,%a0@(48) <== NOT EXECUTED { Thread_Control *executing = _Thread_Executing; _ISR_Disable( level ); _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue ); executing->Wait.queue = &the_message_queue->Wait_queue; 4f6da: 214b 0044 movel %a3,%a0@(68) <== NOT EXECUTED executing->Wait.id = id; executing->Wait.return_argument_second.immutable_object = buffer; executing->Wait.option = (uint32_t) size; executing->Wait.count = submit_type; _ISR_Enable( level ); 4f6de: 46c0 movew %d0,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); 4f6e0: 4879 0004 b048 pea 4b048 <_Thread_queue_Timeout> <== NOT EXECUTED 4f6e6: 2f2e 0024 movel %fp@(36),%sp@- <== NOT EXECUTED 4f6ea: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4f6ec: 4eb9 0004 ad10 jsr 4ad10 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED 4f6f2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f6f8: 7007 moveq #7,%d0 <== NOT EXECUTED 4f6fa: 6002 bras 4f6fe <_CORE_message_queue_Submit+0x10a> <== NOT EXECUTED } return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT; 4f6fc: 7003 moveq #3,%d0 <== NOT EXECUTED } 4f6fe: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 4f704: 4e5e unlk %fp <== NOT EXECUTED 4f706: 4e75 rts 000458e0 <_CORE_mutex_Flush>: void _CORE_mutex_Flush( CORE_mutex_Control *the_mutex, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { 458e0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Thread_queue_Flush( &the_mutex->Wait_queue, remote_extract_callout, status ); } 458e4: 4e5e unlk %fp <== NOT EXECUTED CORE_mutex_Control *the_mutex, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { _Thread_queue_Flush( 458e6: 4ef9 0004 72d4 jmp 472d4 <_Thread_queue_Flush> <== NOT EXECUTED 000458ec <_CORE_mutex_Initialize>: CORE_mutex_Status _CORE_mutex_Initialize( CORE_mutex_Control *the_mutex, CORE_mutex_Attributes *the_mutex_attributes, uint32_t initial_lock ) { 458ec: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 458f0: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED /* Add this to the RTEMS environment later ????????? rtems_assert( initial_lock == CORE_MUTEX_LOCKED || initial_lock == CORE_MUTEX_UNLOCKED ); */ the_mutex->Attributes = *the_mutex_attributes; 458f4: 4878 000e pea e <== NOT EXECUTED CORE_mutex_Status _CORE_mutex_Initialize( CORE_mutex_Control *the_mutex, CORE_mutex_Attributes *the_mutex_attributes, uint32_t initial_lock ) { 458f8: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 458fc: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED /* Add this to the RTEMS environment later ????????? rtems_assert( initial_lock == CORE_MUTEX_LOCKED || initial_lock == CORE_MUTEX_UNLOCKED ); */ the_mutex->Attributes = *the_mutex_attributes; 45900: 2f0b movel %a3,%sp@- <== NOT EXECUTED CORE_mutex_Status _CORE_mutex_Initialize( CORE_mutex_Control *the_mutex, CORE_mutex_Attributes *the_mutex_attributes, uint32_t initial_lock ) { 45902: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED /* Add this to the RTEMS environment later ????????? rtems_assert( initial_lock == CORE_MUTEX_LOCKED || initial_lock == CORE_MUTEX_UNLOCKED ); */ the_mutex->Attributes = *the_mutex_attributes; 45906: 486a 0040 pea %a2@(64) <== NOT EXECUTED 4590a: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED the_mutex->lock = initial_lock; 45910: 2542 004e movel %d2,%a2@(78) <== NOT EXECUTED the_mutex->blocked_count = 0; if ( initial_lock == CORE_MUTEX_LOCKED ) { 45914: dffc 0000 000c addal #12,%sp <== NOT EXECUTED initial_lock == CORE_MUTEX_UNLOCKED ); */ the_mutex->Attributes = *the_mutex_attributes; the_mutex->lock = initial_lock; the_mutex->blocked_count = 0; 4591a: 42aa 0056 clrl %a2@(86) <== NOT EXECUTED if ( initial_lock == CORE_MUTEX_LOCKED ) { 4591e: 4a82 tstl %d2 <== NOT EXECUTED 45920: 663c bnes 4595e <_CORE_mutex_Initialize+0x72> <== NOT EXECUTED the_mutex->nest_count = 1; the_mutex->holder = _Thread_Executing; 45922: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED the_mutex->Attributes = *the_mutex_attributes; the_mutex->lock = initial_lock; the_mutex->blocked_count = 0; if ( initial_lock == CORE_MUTEX_LOCKED ) { the_mutex->nest_count = 1; 45928: 7001 moveq #1,%d0 <== NOT EXECUTED 4592a: 2540 0052 movel %d0,%a2@(82) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_inherit_priority( CORE_mutex_Attributes *the_attribute ) { return the_attribute->discipline == CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT; 4592e: 202a 0046 movel %a2@(70),%d0 <== NOT EXECUTED the_mutex->holder = _Thread_Executing; the_mutex->holder_id = _Thread_Executing->Object.id; 45932: 2568 0008 005e movel %a0@(8),%a2@(94) <== NOT EXECUTED if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 45938: 7202 moveq #2,%d1 <== NOT EXECUTED the_mutex->lock = initial_lock; the_mutex->blocked_count = 0; if ( initial_lock == CORE_MUTEX_LOCKED ) { the_mutex->nest_count = 1; the_mutex->holder = _Thread_Executing; 4593a: 2548 005a movel %a0,%a2@(90) <== NOT EXECUTED the_mutex->holder_id = _Thread_Executing->Object.id; if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 4593e: b280 cmpl %d0,%d1 <== NOT EXECUTED 45940: 6708 beqs 4594a <_CORE_mutex_Initialize+0x5e> <== NOT EXECUTED 45942: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 45946: b280 cmpl %d0,%d1 <== NOT EXECUTED 45948: 6620 bnes 4596a <_CORE_mutex_Initialize+0x7e> <== NOT EXECUTED _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) { if ( _Thread_Executing->current_priority < 4594a: 202a 004a movel %a2@(74),%d0 <== NOT EXECUTED 4594e: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 45952: 6304 blss 45958 <_CORE_mutex_Initialize+0x6c> <== NOT EXECUTED 45954: 7006 moveq #6,%d0 <== NOT EXECUTED 45956: 6036 bras 4598e <_CORE_mutex_Initialize+0xa2> <== NOT EXECUTED _Chain_Prepend_unprotected( &_Thread_Executing->lock_mutex, &the_mutex->queue.lock_queue ); the_mutex->queue.priority_before = _Thread_Executing->current_priority; #endif _Thread_Executing->resource_count++; 45958: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED 4595c: 600c bras 4596a <_CORE_mutex_Initialize+0x7e> <== NOT EXECUTED } } else { the_mutex->nest_count = 0; 4595e: 42aa 0052 clrl %a2@(82) <== NOT EXECUTED the_mutex->holder = NULL; 45962: 42aa 005a clrl %a2@(90) <== NOT EXECUTED the_mutex->holder_id = 0; 45966: 42aa 005e clrl %a2@(94) <== NOT EXECUTED } _Thread_queue_Initialize( 4596a: 4878 0005 pea 5 <== NOT EXECUTED 4596e: 4aab 0006 tstl %a3@(6) <== NOT EXECUTED 45972: 56c0 sne %d0 <== NOT EXECUTED 45974: 4878 0400 pea 400 <== NOT EXECUTED 45978: 49c0 extbl %d0 <== NOT EXECUTED 4597a: 4480 negl %d0 <== NOT EXECUTED 4597c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4597e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45980: 4eb9 0004 7300 jsr 47300 <_Thread_queue_Initialize> <== NOT EXECUTED 45986: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4598c: 4280 clrl %d0 <== NOT EXECUTED STATES_WAITING_FOR_MUTEX, CORE_MUTEX_TIMEOUT ); return CORE_MUTEX_STATUS_SUCCESSFUL; } 4598e: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 45994: 4e5e unlk %fp <== NOT EXECUTED 45996: 4e75 rts 00045a00 <_CORE_mutex_Seize>: Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) { 45a00: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45a04: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45a06: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 45a0a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 45a0e: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) { 45a14: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45a16: 1401 moveb %d1,%d2 <== NOT EXECUTED _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 45a18: 4a80 tstl %d0 <== NOT EXECUTED 45a1a: 671c beqs 45a38 <_CORE_mutex_Seize+0x38> <== NOT EXECUTED 45a1c: 4a01 tstb %d1 <== NOT EXECUTED 45a1e: 6718 beqs 45a38 <_CORE_mutex_Seize+0x38> <== NOT EXECUTED 45a20: 7001 moveq #1,%d0 <== NOT EXECUTED 45a22: b0b9 0005 6e36 cmpl 56e36 <_System_state_Current>,%d0 <== NOT EXECUTED 45a28: 640e bccs 45a38 <_CORE_mutex_Seize+0x38> <== NOT EXECUTED 45a2a: 4878 0013 pea 13 <== NOT EXECUTED 45a2e: 42a7 clrl %sp@- <== NOT EXECUTED 45a30: 42a7 clrl %sp@- <== NOT EXECUTED 45a32: 4eb9 0004 5f40 jsr 45f40 <_Internal_error_Occurred> <== NOT EXECUTED 45a38: 486e 0018 pea %fp@(24) <== NOT EXECUTED 45a3c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45a3e: 4eb9 0004 9acc jsr 49acc <_CORE_mutex_Seize_interrupt_trylock> <== NOT EXECUTED 45a44: 508f addql #8,%sp <== NOT EXECUTED 45a46: 4a80 tstl %d0 <== NOT EXECUTED 45a48: 6750 beqs 45a9a <_CORE_mutex_Seize+0x9a> <== NOT EXECUTED 45a4a: 4a02 tstb %d2 <== NOT EXECUTED 45a4c: 6614 bnes 45a62 <_CORE_mutex_Seize+0x62> <== NOT EXECUTED 45a4e: 202e 0018 movel %fp@(24),%d0 <== NOT EXECUTED 45a52: 46c0 movew %d0,%sr <== NOT EXECUTED 45a54: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED 45a5a: 7201 moveq #1,%d1 <== NOT EXECUTED 45a5c: 2141 0034 movel %d1,%a0@(52) <== NOT EXECUTED 45a60: 6038 bras 45a9a <_CORE_mutex_Seize+0x9a> <== NOT EXECUTED 45a62: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45a68: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED 45a6e: 216e 000c 0020 movel %fp@(12),%a0@(32) <== NOT EXECUTED 45a74: 5280 addql #1,%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section ( Thread_queue_Control *the_thread_queue ) { the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; 45a76: 7201 moveq #1,%d1 <== NOT EXECUTED 45a78: 2541 0030 movel %d1,%a2@(48) <== NOT EXECUTED 45a7c: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 45a82: 214a 0044 movel %a2,%a0@(68) <== NOT EXECUTED 45a86: 202e 0018 movel %fp@(24),%d0 <== NOT EXECUTED 45a8a: 46c0 movew %d0,%sr <== NOT EXECUTED 45a8c: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 45a90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45a92: 4eb9 0004 5998 jsr 45998 <_CORE_mutex_Seize_interrupt_blocking> <== NOT EXECUTED 45a98: 508f addql #8,%sp <== NOT EXECUTED } 45a9a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45a9e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45aa2: 4e5e unlk %fp <== NOT EXECUTED 45aa4: 4e75 rts <== NOT EXECUTED ... 00045998 <_CORE_mutex_Seize_interrupt_blocking>: void _CORE_mutex_Seize_interrupt_blocking( CORE_mutex_Control *the_mutex, Watchdog_Interval timeout ) { 45998: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4599c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4599e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 459a2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 459a4: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Thread_Control *executing; executing = _Thread_Executing; 459a8: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ) { 459ae: 7002 moveq #2,%d0 <== NOT EXECUTED 459b0: b0aa 0046 cmpl %a2@(70),%d0 <== NOT EXECUTED 459b4: 6620 bnes 459d6 <_CORE_mutex_Seize_interrupt_blocking+0x3e> <== NOT EXECUTED if ( the_mutex->holder->current_priority > executing->current_priority ) { 459b6: 2028 0014 movel %a0@(20),%d0 <== NOT EXECUTED 459ba: 206a 005a moveal %a2@(90),%a0 <== NOT EXECUTED 459be: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 459c2: 6412 bccs 459d6 <_CORE_mutex_Seize_interrupt_blocking+0x3e> <== NOT EXECUTED _Thread_Change_priority( 459c4: 42a7 clrl %sp@- <== NOT EXECUTED 459c6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 459c8: 2f08 movel %a0,%sp@- <== NOT EXECUTED 459ca: 4eb9 0004 6748 jsr 46748 <_Thread_Change_priority> <== NOT EXECUTED 459d0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED ); } } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); 459d6: 4879 0004 73ec pea 473ec <_Thread_queue_Timeout> <== NOT EXECUTED FALSE ); } } the_mutex->blocked_count++; 459dc: 52aa 0056 addql #1,%a2@(86) <== NOT EXECUTED _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); 459e0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 459e2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 459e4: 4eb9 0004 70b4 jsr 470b4 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); } 459ea: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 459ee: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); _Thread_Enable_dispatch(); 459f2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 459f8: 4e5e unlk %fp <== NOT EXECUTED } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); _Thread_Enable_dispatch(); 459fa: 4ef9 0004 6c4e jmp 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 00049acc <_CORE_mutex_Seize_interrupt_trylock>: #if defined(__RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__) int _CORE_mutex_Seize_interrupt_trylock( CORE_mutex_Control *the_mutex, ISR_Level *level_p ) { 49acc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49ad0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49ad2: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 49ad6: 2f02 movel %d2,%sp@- <== NOT EXECUTED CORE_mutex_Control *the_mutex, ISR_Level *level_p ) { Thread_Control *executing; ISR_Level level = *level_p; 49ad8: 2410 movel %a0@,%d2 <== NOT EXECUTED /* disabled when you get here */ executing = _Thread_Executing; 49ada: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED 49ae0: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL; 49ae4: 42a8 0034 clrl %a0@(52) <== NOT EXECUTED if ( !_CORE_mutex_Is_locked( the_mutex ) ) { 49ae8: 4aa9 004e tstl %a1@(78) <== NOT EXECUTED 49aec: 6700 0096 beqw 49b84 <_CORE_mutex_Seize_interrupt_trylock+0xb8> <== NOT EXECUTED the_mutex->lock = CORE_MUTEX_LOCKED; 49af0: 42a9 004e clrl %a1@(78) <== NOT EXECUTED the_mutex->holder = executing; the_mutex->holder_id = executing->Object.id; the_mutex->nest_count = 1; 49af4: 7201 moveq #1,%d1 <== NOT EXECUTED executing = _Thread_Executing; executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL; if ( !_CORE_mutex_Is_locked( the_mutex ) ) { the_mutex->lock = CORE_MUTEX_LOCKED; the_mutex->holder = executing; the_mutex->holder_id = executing->Object.id; 49af6: 2368 0008 005e movel %a0@(8),%a1@(94) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_inherit_priority( CORE_mutex_Attributes *the_attribute ) { return the_attribute->discipline == CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT; 49afc: 2029 0046 movel %a1@(70),%d0 <== NOT EXECUTED executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL; if ( !_CORE_mutex_Is_locked( the_mutex ) ) { the_mutex->lock = CORE_MUTEX_LOCKED; the_mutex->holder = executing; the_mutex->holder_id = executing->Object.id; the_mutex->nest_count = 1; 49b00: 2341 0052 movel %d1,%a1@(82) <== NOT EXECUTED if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 49b04: 123c 0002 moveb #2,%d1 <== NOT EXECUTED executing = _Thread_Executing; executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL; if ( !_CORE_mutex_Is_locked( the_mutex ) ) { the_mutex->lock = CORE_MUTEX_LOCKED; the_mutex->holder = executing; 49b08: 2348 005a movel %a0,%a1@(90) <== NOT EXECUTED the_mutex->holder_id = executing->Object.id; the_mutex->nest_count = 1; if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 49b0c: b280 cmpl %d0,%d1 <== NOT EXECUTED 49b0e: 6708 beqs 49b18 <_CORE_mutex_Seize_interrupt_trylock+0x4c> <== NOT EXECUTED 49b10: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 49b14: b280 cmpl %d0,%d1 <== NOT EXECUTED 49b16: 6604 bnes 49b1c <_CORE_mutex_Seize_interrupt_trylock+0x50> <== NOT EXECUTED _Chain_Prepend_unprotected( &executing->lock_mutex, &the_mutex->queue.lock_queue ); the_mutex->queue.priority_before = executing->current_priority; #endif executing->resource_count++; 49b18: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED } if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) { 49b1c: 7003 moveq #3,%d0 <== NOT EXECUTED 49b1e: b0a9 0046 cmpl %a1@(70),%d0 <== NOT EXECUTED 49b22: 6706 beqs 49b2a <_CORE_mutex_Seize_interrupt_trylock+0x5e> <== NOT EXECUTED _ISR_Enable( level ); 49b24: 46c2 movew %d2,%sr <== NOT EXECUTED 49b26: 6000 0084 braw 49bac <_CORE_mutex_Seize_interrupt_trylock+0xe0> <== NOT EXECUTED */ { Priority_Control ceiling; Priority_Control current; ceiling = the_mutex->Attributes.priority_ceiling; 49b2a: 2229 004a movel %a1@(74),%d1 <== NOT EXECUTED current = executing->current_priority; 49b2e: 2028 0014 movel %a0@(20),%d0 <== NOT EXECUTED if ( current == ceiling ) { 49b32: b280 cmpl %d0,%d1 <== NOT EXECUTED 49b34: 6604 bnes 49b3a <_CORE_mutex_Seize_interrupt_trylock+0x6e> <== NOT EXECUTED _ISR_Enable( level ); 49b36: 46c2 movew %d2,%sr <== NOT EXECUTED 49b38: 6066 bras 49ba0 <_CORE_mutex_Seize_interrupt_trylock+0xd4> <== NOT EXECUTED return 0; } if ( current > ceiling ) { 49b3a: b280 cmpl %d0,%d1 <== NOT EXECUTED 49b3c: 642e bccs 49b6c <_CORE_mutex_Seize_interrupt_trylock+0xa0> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 49b3e: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 49b44: 5280 addql #1,%d0 <== NOT EXECUTED 49b46: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); _ISR_Enable( level ); 49b4c: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_Change_priority( 49b4e: 42a7 clrl %sp@- <== NOT EXECUTED 49b50: 2f29 004a movel %a1@(74),%sp@- <== NOT EXECUTED 49b54: 2f29 005a movel %a1@(90),%sp@- <== NOT EXECUTED 49b58: 4eb9 0004 6748 jsr 46748 <_Thread_Change_priority> <== NOT EXECUTED the_mutex->holder, the_mutex->Attributes.priority_ceiling, FALSE ); _Thread_Enable_dispatch(); 49b5e: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 49b64: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49b6a: 6034 bras 49ba0 <_CORE_mutex_Seize_interrupt_trylock+0xd4> <== NOT EXECUTED return 0; } /* if ( current < ceiling ) */ { executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED; 49b6c: 7206 moveq #6,%d1 <== NOT EXECUTED 49b6e: 2141 0034 movel %d1,%a0@(52) <== NOT EXECUTED the_mutex->lock = CORE_MUTEX_UNLOCKED; 49b72: 7001 moveq #1,%d0 <== NOT EXECUTED the_mutex->nest_count = 0; /* undo locking above */ 49b74: 42a9 0052 clrl %a1@(82) <== NOT EXECUTED _Thread_Enable_dispatch(); return 0; } /* if ( current < ceiling ) */ { executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED; the_mutex->lock = CORE_MUTEX_UNLOCKED; 49b78: 2340 004e movel %d0,%a1@(78) <== NOT EXECUTED the_mutex->nest_count = 0; /* undo locking above */ executing->resource_count--; /* undo locking above */ 49b7c: 53a8 001c subql #1,%a0@(28) <== NOT EXECUTED _ISR_Enable( level ); 49b80: 46c2 movew %d2,%sr <== NOT EXECUTED 49b82: 6028 bras 49bac <_CORE_mutex_Seize_interrupt_trylock+0xe0> <== NOT EXECUTED /* * At this point, we know the mutex was not available. If this thread * is the thread that has locked the mutex, let's see if we are allowed * to nest access. */ if ( _Thread_Is_executing( the_mutex->holder ) ) { 49b84: 2469 005a moveal %a1@(90),%a2 <== NOT EXECUTED 49b88: b1ca cmpal %a2,%a0 <== NOT EXECUTED 49b8a: 6624 bnes 49bb0 <_CORE_mutex_Seize_interrupt_trylock+0xe4> <== NOT EXECUTED switch ( the_mutex->Attributes.lock_nesting_behavior ) { 49b8c: 2029 0040 movel %a1@(64),%d0 <== NOT EXECUTED 49b90: 6708 beqs 49b9a <_CORE_mutex_Seize_interrupt_trylock+0xce> <== NOT EXECUTED 49b92: 7201 moveq #1,%d1 <== NOT EXECUTED 49b94: b280 cmpl %d0,%d1 <== NOT EXECUTED 49b96: 6618 bnes 49bb0 <_CORE_mutex_Seize_interrupt_trylock+0xe4> <== NOT EXECUTED 49b98: 600a bras 49ba4 <_CORE_mutex_Seize_interrupt_trylock+0xd8> <== NOT EXECUTED case CORE_MUTEX_NESTING_ACQUIRES: the_mutex->nest_count++; 49b9a: 52a9 0052 addql #1,%a1@(82) <== NOT EXECUTED _ISR_Enable( level ); 49b9e: 46c2 movew %d2,%sr <== NOT EXECUTED 49ba0: 4280 clrl %d0 <== NOT EXECUTED 49ba2: 600e bras 49bb2 <_CORE_mutex_Seize_interrupt_trylock+0xe6> <== NOT EXECUTED return 0; case CORE_MUTEX_NESTING_IS_ERROR: executing->Wait.return_code = CORE_MUTEX_STATUS_NESTING_NOT_ALLOWED; 49ba4: 7002 moveq #2,%d0 <== NOT EXECUTED 49ba6: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED _ISR_Enable( level ); 49baa: 46c2 movew %d2,%sr <== NOT EXECUTED 49bac: 4200 clrb %d0 <== NOT EXECUTED 49bae: 6002 bras 49bb2 <_CORE_mutex_Seize_interrupt_trylock+0xe6> <== NOT EXECUTED 49bb0: 7001 moveq #1,%d0 <== NOT EXECUTED return _CORE_mutex_Seize_interrupt_trylock_body( the_mutex, level_p ); } 49bb2: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 49bb6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 49bba: 4e5e unlk %fp <== NOT EXECUTED 49bbc: 4e75 rts <== NOT EXECUTED ... 00045aa8 <_CORE_mutex_Surrender>: CORE_mutex_Status _CORE_mutex_Surrender( CORE_mutex_Control *the_mutex, Objects_Id id, CORE_mutex_API_mp_support_callout api_mutex_mp_support ) { 45aa8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45aac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45aae: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Thread_Control *the_thread; Thread_Control *holder; #ifdef __RTEMS_STRICT_ORDER_MUTEX__ Chain_Node *first_node; #endif holder = the_mutex->holder; 45ab2: 206a 005a moveal %a2@(90),%a0 <== NOT EXECUTED * allowed when the mutex in quetion is FIFO or simple Priority * discipline. But Priority Ceiling or Priority Inheritance mutexes * must be released by the thread which acquired them. */ if ( the_mutex->Attributes.only_owner_release ) { 45ab6: 4a2a 0044 tstb %a2@(68) <== NOT EXECUTED 45aba: 670e beqs 45aca <_CORE_mutex_Surrender+0x22> <== NOT EXECUTED if ( !_Thread_Is_executing( holder ) ) 45abc: b1f9 0005 6d62 cmpal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED 45ac2: 6706 beqs 45aca <_CORE_mutex_Surrender+0x22> <== NOT EXECUTED 45ac4: 7003 moveq #3,%d0 <== NOT EXECUTED 45ac6: 6000 00e4 braw 45bac <_CORE_mutex_Surrender+0x104> <== NOT EXECUTED return CORE_MUTEX_STATUS_NOT_OWNER_OF_RESOURCE; } /* XXX already unlocked -- not right status */ if ( !the_mutex->nest_count ) 45aca: 202a 0052 movel %a2@(82),%d0 <== NOT EXECUTED 45ace: 6700 00da beqw 45baa <_CORE_mutex_Surrender+0x102> <== NOT EXECUTED return CORE_MUTEX_STATUS_SUCCESSFUL; the_mutex->nest_count--; 45ad2: 5380 subql #1,%d0 <== NOT EXECUTED 45ad4: 2540 0052 movel %d0,%a2@(82) <== NOT EXECUTED if ( the_mutex->nest_count != 0 ) { 45ad8: 6714 beqs 45aee <_CORE_mutex_Surrender+0x46> <== NOT EXECUTED switch ( the_mutex->Attributes.lock_nesting_behavior ) { 45ada: 202a 0040 movel %a2@(64),%d0 <== NOT EXECUTED 45ade: 6700 00ca beqw 45baa <_CORE_mutex_Surrender+0x102> <== NOT EXECUTED 45ae2: 7201 moveq #1,%d1 <== NOT EXECUTED 45ae4: b280 cmpl %d0,%d1 <== NOT EXECUTED 45ae6: 6606 bnes 45aee <_CORE_mutex_Surrender+0x46> <== NOT EXECUTED 45ae8: 7002 moveq #2,%d0 <== NOT EXECUTED 45aea: 6000 00c0 braw 45bac <_CORE_mutex_Surrender+0x104> <== NOT EXECUTED 45aee: 202a 0046 movel %a2@(70),%d0 <== NOT EXECUTED /* * Formally release the mutex before possibly transferring it to a * blocked thread. */ if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 45af2: 7202 moveq #2,%d1 <== NOT EXECUTED 45af4: b280 cmpl %d0,%d1 <== NOT EXECUTED 45af6: 6708 beqs 45b00 <_CORE_mutex_Surrender+0x58> <== NOT EXECUTED 45af8: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 45afc: b280 cmpl %d0,%d1 <== NOT EXECUTED 45afe: 6604 bnes 45b04 <_CORE_mutex_Surrender+0x5c> <== NOT EXECUTED the_mutex->nest_count++; return CORE_MUTEX_RELEASE_NOT_ORDER; } first_node = _Chain_Get_first_unprotected(&holder->lock_mutex); #endif holder->resource_count--; 45b00: 53a8 001c subql #1,%a0@(28) <== NOT EXECUTED 45b04: 202a 0046 movel %a2@(70),%d0 <== NOT EXECUTED } the_mutex->holder = NULL; 45b08: 42aa 005a clrl %a2@(90) <== NOT EXECUTED /* * Whether or not someone is waiting for the mutex, an * inherited priority must be lowered if this is the last * mutex (i.e. resource) this task has. */ if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 45b0c: 7202 moveq #2,%d1 <== NOT EXECUTED first_node = _Chain_Get_first_unprotected(&holder->lock_mutex); #endif holder->resource_count--; } the_mutex->holder = NULL; the_mutex->holder_id = 0; 45b0e: 42aa 005e clrl %a2@(94) <== NOT EXECUTED /* * Whether or not someone is waiting for the mutex, an * inherited priority must be lowered if this is the last * mutex (i.e. resource) this task has. */ if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 45b12: b280 cmpl %d0,%d1 <== NOT EXECUTED 45b14: 6708 beqs 45b1e <_CORE_mutex_Surrender+0x76> <== NOT EXECUTED 45b16: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 45b1a: b280 cmpl %d0,%d1 <== NOT EXECUTED 45b1c: 6624 bnes 45b42 <_CORE_mutex_Surrender+0x9a> <== NOT EXECUTED _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) { #ifdef __RTEMS_STRICT_ORDER_MUTEX__ if(the_mutex->queue.priority_before != holder->current_priority) _Thread_Change_priority(holder,the_mutex->queue.priority_before,TRUE); #endif if ( holder->resource_count == 0 && 45b1e: 4aa8 001c tstl %a0@(28) <== NOT EXECUTED 45b22: 661e bnes 45b42 <_CORE_mutex_Surrender+0x9a> <== NOT EXECUTED 45b24: 2028 0018 movel %a0@(24),%d0 <== NOT EXECUTED 45b28: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 45b2c: 6714 beqs 45b42 <_CORE_mutex_Surrender+0x9a> <== NOT EXECUTED holder->real_priority != holder->current_priority ) { _Thread_Change_priority( holder, holder->real_priority, TRUE ); 45b2e: 4878 0001 pea 1 <== NOT EXECUTED 45b32: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45b34: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45b36: 4eb9 0004 6748 jsr 46748 <_Thread_Change_priority> <== NOT EXECUTED 45b3c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Now we check if another thread was waiting for this mutex. If so, * transfer the mutex to that thread. */ if ( ( the_thread = _Thread_queue_Dequeue( &the_mutex->Wait_queue ) ) ) { 45b42: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45b44: 4eb9 0004 6f70 jsr 46f70 <_Thread_queue_Dequeue> <== NOT EXECUTED 45b4a: 588f addql #4,%sp <== NOT EXECUTED 45b4c: 2040 moveal %d0,%a0 <== NOT EXECUTED 45b4e: 4a80 tstl %d0 <== NOT EXECUTED 45b50: 674e beqs 45ba0 <_CORE_mutex_Surrender+0xf8> <== NOT EXECUTED #endif { the_mutex->holder = the_thread; the_mutex->holder_id = the_thread->Object.id; the_mutex->nest_count = 1; 45b52: 7201 moveq #1,%d1 <== NOT EXECUTED } else #endif { the_mutex->holder = the_thread; the_mutex->holder_id = the_thread->Object.id; 45b54: 2568 0008 005e movel %a0@(8),%a2@(94) <== NOT EXECUTED the_mutex->nest_count = 1; switch ( the_mutex->Attributes.discipline ) { 45b5a: 202a 0046 movel %a2@(70),%d0 <== NOT EXECUTED #endif { the_mutex->holder = the_thread; the_mutex->holder_id = the_thread->Object.id; the_mutex->nest_count = 1; 45b5e: 2541 0052 movel %d1,%a2@(82) <== NOT EXECUTED switch ( the_mutex->Attributes.discipline ) { 45b62: 123c 0002 moveb #2,%d1 <== NOT EXECUTED } else #endif { the_mutex->holder = the_thread; 45b66: 2548 005a movel %a0,%a2@(90) <== NOT EXECUTED the_mutex->holder_id = the_thread->Object.id; the_mutex->nest_count = 1; switch ( the_mutex->Attributes.discipline ) { 45b6a: b280 cmpl %d0,%d1 <== NOT EXECUTED 45b6c: 670a beqs 45b78 <_CORE_mutex_Surrender+0xd0> <== NOT EXECUTED 45b6e: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 45b72: b280 cmpl %d0,%d1 <== NOT EXECUTED 45b74: 6634 bnes 45baa <_CORE_mutex_Surrender+0x102> <== NOT EXECUTED 45b76: 6006 bras 45b7e <_CORE_mutex_Surrender+0xd6> <== NOT EXECUTED case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT: #ifdef __RTEMS_STRICT_ORDER_MUTEX__ _Chain_Prepend_unprotected(&the_thread->lock_mutex,&the_mutex->queue.lock_queue); the_mutex->queue.priority_before = the_thread->current_priority; #endif the_thread->resource_count++; 45b78: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED 45b7c: 602c bras 45baa <_CORE_mutex_Surrender+0x102> <== NOT EXECUTED case CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING: #ifdef __RTEMS_STRICT_ORDER_MUTEX__ _Chain_Prepend_unprotected(&the_thread->lock_mutex,&the_mutex->queue.lock_queue); the_mutex->queue.priority_before = the_thread->current_priority; #endif the_thread->resource_count++; 45b7e: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED if (the_mutex->Attributes.priority_ceiling < 45b82: 202a 004a movel %a2@(74),%d0 <== NOT EXECUTED 45b86: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 45b8a: 641e bccs 45baa <_CORE_mutex_Surrender+0x102> <== NOT EXECUTED the_thread->current_priority){ _Thread_Change_priority( 45b8c: 42a7 clrl %sp@- <== NOT EXECUTED 45b8e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45b90: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45b92: 4eb9 0004 6748 jsr 46748 <_Thread_Change_priority> <== NOT EXECUTED 45b98: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45b9e: 600a bras 45baa <_CORE_mutex_Surrender+0x102> <== NOT EXECUTED } break; } } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; 45ba0: 7001 moveq #1,%d0 <== NOT EXECUTED 45ba2: 2540 004e movel %d0,%a2@(78) <== NOT EXECUTED 45ba6: 4200 clrb %d0 <== NOT EXECUTED 45ba8: 6002 bras 45bac <_CORE_mutex_Surrender+0x104> <== NOT EXECUTED 45baa: 4280 clrl %d0 <== NOT EXECUTED return CORE_MUTEX_STATUS_SUCCESSFUL; } 45bac: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45bb0: 4e5e unlk %fp <== NOT EXECUTED 45bb2: 4e75 rts 00045bb4 <_CORE_semaphore_Flush>: void _CORE_semaphore_Flush( CORE_semaphore_Control *the_semaphore, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { 45bb4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED &the_semaphore->Wait_queue, remote_extract_callout, status ); } 45bb8: 4e5e unlk %fp <== NOT EXECUTED Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { _Thread_queue_Flush( 45bba: 4ef9 0004 72d4 jmp 472d4 <_Thread_queue_Flush> <== NOT EXECUTED 00045bc0 <_CORE_semaphore_Initialize>: void _CORE_semaphore_Initialize( CORE_semaphore_Control *the_semaphore, CORE_semaphore_Attributes *the_semaphore_attributes, uint32_t initial_value ) { 45bc0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED the_semaphore->Attributes = *the_semaphore_attributes; the_semaphore->count = initial_value; _Thread_queue_Initialize( 45bc4: 4878 0003 pea 3 <== NOT EXECUTED void _CORE_semaphore_Initialize( CORE_semaphore_Control *the_semaphore, CORE_semaphore_Attributes *the_semaphore_attributes, uint32_t initial_value ) { 45bc8: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 45bcc: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED the_semaphore->Attributes = *the_semaphore_attributes; 45bd0: 2368 0004 0044 movel %a0@(4),%a1@(68) <== NOT EXECUTED the_semaphore->count = initial_value; _Thread_queue_Initialize( 45bd6: 7001 moveq #1,%d0 <== NOT EXECUTED 45bd8: b0a8 0004 cmpl %a0@(4),%d0 <== NOT EXECUTED 45bdc: 57c0 seq %d0 <== NOT EXECUTED CORE_semaphore_Attributes *the_semaphore_attributes, uint32_t initial_value ) { the_semaphore->Attributes = *the_semaphore_attributes; 45bde: 2210 movel %a0@,%d1 <== NOT EXECUTED the_semaphore->count = initial_value; _Thread_queue_Initialize( 45be0: 4878 0200 pea 200 <== NOT EXECUTED 45be4: 49c0 extbl %d0 <== NOT EXECUTED 45be6: 4480 negl %d0 <== NOT EXECUTED 45be8: 2f00 movel %d0,%sp@- <== NOT EXECUTED uint32_t initial_value ) { the_semaphore->Attributes = *the_semaphore_attributes; the_semaphore->count = initial_value; 45bea: 236e 0010 0048 movel %fp@(16),%a1@(72) <== NOT EXECUTED CORE_semaphore_Attributes *the_semaphore_attributes, uint32_t initial_value ) { the_semaphore->Attributes = *the_semaphore_attributes; 45bf0: 2341 0040 movel %d1,%a1@(64) <== NOT EXECUTED the_semaphore->count = initial_value; _Thread_queue_Initialize( 45bf4: 2f09 movel %a1,%sp@- <== NOT EXECUTED 45bf6: 4eb9 0004 7300 jsr 47300 <_Thread_queue_Initialize> <== NOT EXECUTED 45bfc: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED _CORE_semaphore_Is_priority( the_semaphore_attributes ) ? THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_SEMAPHORE, CORE_SEMAPHORE_TIMEOUT ); } 45c02: 4e5e unlk %fp <== NOT EXECUTED 45c04: 4e75 rts <== NOT EXECUTED ... 00045c08 <_CORE_semaphore_Surrender>: CORE_semaphore_Status _CORE_semaphore_Surrender( CORE_semaphore_Control *the_semaphore, Objects_Id id, CORE_semaphore_API_mp_support_callout api_semaphore_mp_support ) { 45c08: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45c0c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45c0e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 45c12: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; CORE_semaphore_Status status; status = CORE_SEMAPHORE_STATUS_SUCCESSFUL; if ( (the_thread = _Thread_queue_Dequeue(&the_semaphore->Wait_queue)) ) { 45c14: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45c16: 4eb9 0004 6f70 jsr 46f70 <_Thread_queue_Dequeue> <== NOT EXECUTED 45c1c: 588f addql #4,%sp <== NOT EXECUTED 45c1e: 4a80 tstl %d0 <== NOT EXECUTED 45c20: 6704 beqs 45c26 <_CORE_semaphore_Surrender+0x1e> <== NOT EXECUTED 45c22: 4280 clrl %d0 <== NOT EXECUTED 45c24: 6024 bras 45c4a <_CORE_semaphore_Surrender+0x42> <== NOT EXECUTED if ( !_Objects_Is_local_id( the_thread->Object.id ) ) (*api_semaphore_mp_support) ( the_thread, id ); #endif } else { _ISR_Disable( level ); 45c26: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 45c2c: 40c2 movew %sr,%d2 <== NOT EXECUTED 45c2e: 8082 orl %d2,%d0 <== NOT EXECUTED 45c30: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_semaphore->count < the_semaphore->Attributes.maximum_count ) 45c32: 222a 0048 movel %a2@(72),%d1 <== NOT EXECUTED 45c36: b2aa 0040 cmpl %a2@(64),%d1 <== NOT EXECUTED 45c3a: 6504 bcss 45c40 <_CORE_semaphore_Surrender+0x38> <== NOT EXECUTED 45c3c: 7004 moveq #4,%d0 <== NOT EXECUTED 45c3e: 6008 bras 45c48 <_CORE_semaphore_Surrender+0x40> <== NOT EXECUTED the_semaphore->count += 1; 45c40: 5281 addql #1,%d1 <== NOT EXECUTED 45c42: 4280 clrl %d0 <== NOT EXECUTED 45c44: 2541 0048 movel %d1,%a2@(72) <== NOT EXECUTED else status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED; _ISR_Enable( level ); 45c48: 46c2 movew %d2,%sr <== NOT EXECUTED } return status; } 45c4a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45c4e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45c52: 4e5e unlk %fp <== NOT EXECUTED 45c54: 4e75 rts <== NOT EXECUTED ... 000458a8 <_Chain_Append>: void _Chain_Append( Chain_Control *the_chain, Chain_Node *node ) { 458a8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 458ac: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 458ae: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED void _Chain_Append( Chain_Control *the_chain, Chain_Node *node ) { 458b4: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 458b8: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 458bc: 40c0 movew %sr,%d0 <== NOT EXECUTED 458be: 8280 orl %d0,%d1 <== NOT EXECUTED 458c0: 46c1 movew %d1,%sr <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 458c2: 2209 movel %a1,%d1 <== NOT EXECUTED 458c4: 5881 addql #4,%d1 <== NOT EXECUTED 458c6: 2081 movel %d1,%a0@ <== NOT EXECUTED old_last_node = the_chain->last; 458c8: 2469 0008 moveal %a1@(8),%a2 <== NOT EXECUTED the_chain->last = the_node; 458cc: 2348 0008 movel %a0,%a1@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 458d0: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; the_chain->last = the_node; old_last_node->next = the_node; 458d4: 2488 movel %a0,%a2@ <== NOT EXECUTED _Chain_Append_unprotected( the_chain, node ); _ISR_Enable( level ); 458d6: 46c0 movew %d0,%sr <== NOT EXECUTED } 458d8: 245f moveal %sp@+,%a2 <== NOT EXECUTED 458da: 4e5e unlk %fp <== NOT EXECUTED 458dc: 4e75 rts <== NOT EXECUTED ... 00049a34 <_Chain_Extract>: */ void _Chain_Extract( Chain_Node *node ) { 49a34: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 49a38: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED */ void _Chain_Extract( Chain_Node *node ) { 49a3e: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 49a42: 40c0 movew %sr,%d0 <== NOT EXECUTED 49a44: 8280 orl %d0,%d1 <== NOT EXECUTED 49a46: 46c1 movew %d1,%sr <== NOT EXECUTED { Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; 49a48: 2268 0004 moveal %a0@(4),%a1 <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 49a4c: 2050 moveal %a0@,%a0 <== NOT EXECUTED previous = the_node->previous; next->previous = previous; previous->next = next; 49a4e: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 49a50: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED _Chain_Extract_unprotected( node ); _ISR_Enable( level ); 49a54: 46c0 movew %d0,%sr <== NOT EXECUTED } 49a56: 4e5e unlk %fp <== NOT EXECUTED 49a58: 4e75 rts <== NOT EXECUTED ... 00049a5c <_Chain_Get>: */ Chain_Node *_Chain_Get( Chain_Control *the_chain ) { 49a5c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49a60: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; Chain_Node *return_node; return_node = NULL; _ISR_Disable( level ); 49a62: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Chain_Node *_Chain_Get( Chain_Control *the_chain ) { 49a68: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; Chain_Node *return_node; return_node = NULL; _ISR_Disable( level ); 49a6c: 40c1 movew %sr,%d1 <== NOT EXECUTED 49a6e: 8081 orl %d1,%d0 <== NOT EXECUTED 49a70: 46c0 movew %d0,%sr <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 49a72: 204a moveal %a2,%a0 <== NOT EXECUTED 49a74: 2258 moveal %a0@+,%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( the_chain ) ) 49a76: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 49a78: 6604 bnes 49a7e <_Chain_Get+0x22> <== NOT EXECUTED 49a7a: 93c9 subal %a1,%a1 <== NOT EXECUTED 49a7c: 6008 bras 49a86 <_Chain_Get+0x2a> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 49a7e: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_chain->first = new_first; 49a80: 2488 movel %a0,%a2@ <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 49a82: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED return_node = _Chain_Get_first_unprotected( the_chain ); _ISR_Enable( level ); 49a86: 46c1 movew %d1,%sr <== NOT EXECUTED return return_node; } 49a88: 245f moveal %sp@+,%a2 <== NOT EXECUTED 49a8a: 4e5e unlk %fp <== NOT EXECUTED 49a8c: 2009 movel %a1,%d0 <== NOT EXECUTED 49a8e: 4e75 rts 00049a90 <_Chain_Initialize>: Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size ) { 49a90: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49a94: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49a96: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 49a9a: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED Chain_Node *current; Chain_Node *next; count = number_nodes; current = _Chain_Head( the_chain ); the_chain->permanent_null = NULL; 49a9e: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED next = starting_address; 49aa2: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Head( Chain_Control *the_chain ) { return (Chain_Node *) the_chain; 49aa6: 224a moveal %a2,%a1 <== NOT EXECUTED 49aa8: 600e bras 49ab8 <_Chain_Initialize+0x28> <== NOT EXECUTED while ( count-- ) { current->next = next; next->previous = current; 49aaa: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size ) { 49aae: 5380 subql #1,%d0 <== NOT EXECUTED count = number_nodes; current = _Chain_Head( the_chain ); the_chain->permanent_null = NULL; next = starting_address; while ( count-- ) { current->next = next; 49ab0: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size ) { 49ab2: 2248 moveal %a0,%a1 <== NOT EXECUTED 49ab4: d1ee 0014 addal %fp@(20),%a0 <== NOT EXECUTED count = number_nodes; current = _Chain_Head( the_chain ); the_chain->permanent_null = NULL; next = starting_address; while ( count-- ) { 49ab8: 4a80 tstl %d0 <== NOT EXECUTED 49aba: 66ee bnes 49aaa <_Chain_Initialize+0x1a> <== NOT EXECUTED next->previous = current; current = next; next = (Chain_Node *) _Addresses_Add_offset( (void *) next, node_size ); } current->next = _Chain_Tail( the_chain ); 49abc: 200a movel %a2,%d0 <== NOT EXECUTED 49abe: 5880 addql #4,%d0 <== NOT EXECUTED 49ac0: 2280 movel %d0,%a1@ <== NOT EXECUTED the_chain->last = current; 49ac2: 2549 0008 movel %a1,%a2@(8) <== NOT EXECUTED } 49ac6: 245f moveal %sp@+,%a2 <== NOT EXECUTED 49ac8: 4e5e unlk %fp <== NOT EXECUTED 49aca: 4e75 rts 0005d9b4 <_Chain_Insert>: void _Chain_Insert( Chain_Node *after_node, Chain_Node *node ) { 5d9b4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5d9b8: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 5d9ba: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED void _Chain_Insert( Chain_Node *after_node, Chain_Node *node ) { 5d9c0: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 5d9c4: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 5d9c8: 40c0 movew %sr,%d0 <== NOT EXECUTED 5d9ca: 8280 orl %d0,%d1 <== NOT EXECUTED 5d9cc: 46c1 movew %d1,%sr <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 5d9ce: 2451 moveal %a1@,%a2 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 5d9d0: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED before_node = after_node->next; after_node->next = the_node; 5d9d4: 2288 movel %a0,%a1@ <== NOT EXECUTED the_node->next = before_node; before_node->previous = the_node; 5d9d6: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; after_node->next = the_node; the_node->next = before_node; 5d9da: 208a movel %a2,%a0@ <== NOT EXECUTED _Chain_Insert_unprotected( after_node, node ); _ISR_Enable( level ); 5d9dc: 46c0 movew %d0,%sr <== NOT EXECUTED } 5d9de: 245f moveal %sp@+,%a2 <== NOT EXECUTED 5d9e0: 4e5e unlk %fp <== NOT EXECUTED 5d9e2: 4e75 rts 000499cc <_Debug_Is_enabled>: */ bool _Debug_Is_enabled( rtems_debug_control level ) { 499cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 499d0: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 499d4: c0b9 0005 6d66 andl 56d66 <_Debug_Level>,%d0 <== NOT EXECUTED 499da: 56c0 sne %d0 <== NOT EXECUTED return (_Debug_Level & level) ? true : false; } 499dc: 4e5e unlk %fp <== NOT EXECUTED 499de: 4480 negl %d0 <== NOT EXECUTED 499e0: 4e75 rts <== NOT EXECUTED ... 00049998 <_Debug_Manager_initialization>: * * _Debug_Manager_initialization */ void _Debug_Manager_initialization( void ) { 49998: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_debug_disable( RTEMS_DEBUG_ALL_MASK ); } 4999c: 4e5e unlk %fp <== NOT EXECUTED void rtems_debug_disable ( rtems_debug_control to_be_disabled ) { _Debug_Level &= ~to_be_disabled; 4999e: 42b9 0005 6d66 clrl 56d66 <_Debug_Level> <== NOT EXECUTED */ void _Debug_Manager_initialization( void ) { rtems_debug_disable( RTEMS_DEBUG_ALL_MASK ); } 499a4: 4e75 rts 000495e8 <_Dual_ported_memory_Manager_initialization>: */ void _Dual_ported_memory_Manager_initialization( uint32_t maximum_ports ) { 495e8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 495ec: 4878 0004 pea 4 <== NOT EXECUTED 495f0: 42a7 clrl %sp@- <== NOT EXECUTED 495f2: 4878 001c pea 1c <== NOT EXECUTED 495f6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 495fa: 4878 0007 pea 7 <== NOT EXECUTED 495fe: 4878 0002 pea 2 <== NOT EXECUTED 49602: 4879 0005 6f62 pea 56f62 <_Dual_ported_memory_Information> <== NOT EXECUTED 49608: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED 4960e: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 49614: 4e5e unlk %fp <== NOT EXECUTED 49616: 4e75 rts 00049618 <_Event_Manager_initialization>: * * This routine performs the initialization necessary for this manager. */ void _Event_Manager_initialization( void ) { 49618: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED */ #if defined(RTEMS_MULTIPROCESSING) _MPCI_Register_packet_processor( MP_PACKET_EVENT, _Event_MP_Process_packet ); #endif } 4961c: 4e5e unlk %fp <== NOT EXECUTED * This routine performs the initialization necessary for this manager. */ void _Event_Manager_initialization( void ) { _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 4961e: 42b9 0005 6ede clrl 56ede <_Event_Sync_state> <== NOT EXECUTED */ #if defined(RTEMS_MULTIPROCESSING) _MPCI_Register_packet_processor( MP_PACKET_EVENT, _Event_MP_Process_packet ); #endif } 49624: 4e75 rts <== NOT EXECUTED ... 000448e0 <_Event_Seize>: rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 448e0: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 448e4: 48d7 047c moveml %d2-%d6/%a2,%sp@ <== NOT EXECUTED rtems_event_set pending_events; ISR_Level level; RTEMS_API_Control *api; Thread_blocking_operation_States sync_state; executing = _Thread_Executing; 448e8: 2479 0005 6d62 moveal 56d62 <_Thread_Executing>,%a2 <== NOT EXECUTED rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 448ee: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 448f2: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 448f6: 2c2e 0010 movel %fp@(16),%d6 <== NOT EXECUTED executing = _Thread_Executing; executing->Wait.return_code = RTEMS_SUCCESSFUL; api = executing->API_Extensions[ THREAD_API_RTEMS ]; _ISR_Disable( level ); 448fa: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED ISR_Level level; RTEMS_API_Control *api; Thread_blocking_operation_States sync_state; executing = _Thread_Executing; executing->Wait.return_code = RTEMS_SUCCESSFUL; 44900: 42aa 0034 clrl %a2@(52) <== NOT EXECUTED rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 44904: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED Thread_blocking_operation_States sync_state; executing = _Thread_Executing; executing->Wait.return_code = RTEMS_SUCCESSFUL; api = executing->API_Extensions[ THREAD_API_RTEMS ]; 44908: 226a 010c moveal %a2@(268),%a1 <== NOT EXECUTED _ISR_Disable( level ); 4490c: 40c4 movew %sr,%d4 <== NOT EXECUTED 4490e: 8084 orl %d4,%d0 <== NOT EXECUTED 44910: 46c0 movew %d0,%sr <== NOT EXECUTED pending_events = api->pending_events; 44912: 2a11 movel %a1@,%d5 <== NOT EXECUTED RTEMS_INLINE_ROUTINE rtems_event_set _Event_sets_Get( rtems_event_set the_event_set, rtems_event_set the_event_condition ) { return ( the_event_set & the_event_condition ); 44914: 2203 movel %d3,%d1 <== NOT EXECUTED 44916: c285 andl %d5,%d1 <== NOT EXECUTED seized_events = _Event_sets_Get( pending_events, event_in ); if ( !_Event_sets_Is_empty( seized_events ) && 44918: 6716 beqs 44930 <_Event_Seize+0x50> <== NOT EXECUTED 4491a: b681 cmpl %d1,%d3 <== NOT EXECUTED 4491c: 6706 beqs 44924 <_Event_Seize+0x44> <== NOT EXECUTED 4491e: 0802 0001 btst #1,%d2 <== NOT EXECUTED 44922: 670c beqs 44930 <_Event_Seize+0x50> <== NOT EXECUTED (seized_events == event_in || _Options_Is_any( option_set )) ) { api->pending_events = 44924: 2001 movel %d1,%d0 <== NOT EXECUTED 44926: 4680 notl %d0 <== NOT EXECUTED 44928: c085 andl %d5,%d0 <== NOT EXECUTED 4492a: 2280 movel %d0,%a1@ <== NOT EXECUTED _Event_sets_Clear( pending_events, seized_events ); _ISR_Enable( level ); 4492c: 46c4 movew %d4,%sr <== NOT EXECUTED 4492e: 600e bras 4493e <_Event_Seize+0x5e> <== NOT EXECUTED *event_out = seized_events; return; } if ( _Options_Is_no_wait( option_set ) ) { 44930: 0802 0000 btst #0,%d2 <== NOT EXECUTED 44934: 670e beqs 44944 <_Event_Seize+0x64> <== NOT EXECUTED _ISR_Enable( level ); 44936: 46c4 movew %d4,%sr <== NOT EXECUTED executing->Wait.return_code = RTEMS_UNSATISFIED; 44938: 700d moveq #13,%d0 <== NOT EXECUTED 4493a: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED *event_out = seized_events; 4493e: 2081 movel %d1,%a0@ <== NOT EXECUTED 44940: 6000 0096 braw 449d8 <_Event_Seize+0xf8> <== NOT EXECUTED return; } _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; 44944: 7201 moveq #1,%d1 <== NOT EXECUTED executing->Wait.option = (uint32_t) option_set; 44946: 2542 0030 movel %d2,%a2@(48) <== NOT EXECUTED executing->Wait.return_code = RTEMS_UNSATISFIED; *event_out = seized_events; return; } _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; 4494a: 23c1 0005 6ede movel %d1,56ede <_Event_Sync_state> <== NOT EXECUTED executing->Wait.option = (uint32_t) option_set; executing->Wait.count = (uint32_t) event_in; 44950: 2543 0024 movel %d3,%a2@(36) <== NOT EXECUTED executing->Wait.return_argument = event_out; 44954: 2548 0028 movel %a0,%a2@(40) <== NOT EXECUTED _ISR_Enable( level ); 44958: 46c4 movew %d4,%sr <== NOT EXECUTED if ( ticks ) { 4495a: 4a86 tstl %d6 <== NOT EXECUTED 4495c: 6730 beqs 4498e <_Event_Seize+0xae> <== NOT EXECUTED _Watchdog_Initialize( 4495e: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 44962: 243c 0004 4b3c movel #281404,%d2 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 44968: 2546 0054 movel %d6,%a2@(84) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4496c: 2542 0064 movel %d2,%a2@(100) <== NOT EXECUTED the_watchdog->id = id; 44970: 2540 0068 movel %d0,%a2@(104) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 44974: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 44978: 42aa 006c clrl %a2@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4497c: 486a 0048 pea %a2@(72) <== NOT EXECUTED 44980: 4879 0005 6d80 pea 56d80 <_Watchdog_Ticks_chain> <== NOT EXECUTED 44986: 4eb9 0004 7bc4 jsr 47bc4 <_Watchdog_Insert> <== NOT EXECUTED 4498c: 508f addql #8,%sp <== NOT EXECUTED NULL ); _Watchdog_Insert_ticks( &executing->Timer, ticks ); } _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT ); 4498e: 4878 0100 pea 100 <== NOT EXECUTED 44992: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44994: 4eb9 0004 7490 jsr 47490 <_Thread_Set_state> <== NOT EXECUTED _ISR_Disable( level ); 4499a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 449a0: 40c1 movew %sr,%d1 <== NOT EXECUTED 449a2: 8081 orl %d1,%d0 <== NOT EXECUTED 449a4: 46c0 movew %d0,%sr <== NOT EXECUTED sync_state = _Event_Sync_state; 449a6: 2039 0005 6ede movel 56ede <_Event_Sync_state>,%d0 <== NOT EXECUTED _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) { 449ac: 508f addql #8,%sp <== NOT EXECUTED _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT ); _ISR_Disable( level ); sync_state = _Event_Sync_state; _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 449ae: 42b9 0005 6ede clrl 56ede <_Event_Sync_state> <== NOT EXECUTED if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) { 449b4: 7401 moveq #1,%d2 <== NOT EXECUTED 449b6: b480 cmpl %d0,%d2 <== NOT EXECUTED 449b8: 6604 bnes 449be <_Event_Seize+0xde> <== NOT EXECUTED _ISR_Enable( level ); 449ba: 46c1 movew %d1,%sr <== NOT EXECUTED 449bc: 601a bras 449d8 <_Event_Seize+0xf8> <== NOT EXECUTED * An interrupt completed the thread's blocking request. * The blocking thread was satisfied by an ISR or timed out. * * WARNING! Returning with interrupts disabled! */ _Thread_blocking_operation_Cancel( sync_state, executing, level ); 449be: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED } 449c2: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED * An interrupt completed the thread's blocking request. * The blocking thread was satisfied by an ISR or timed out. * * WARNING! Returning with interrupts disabled! */ _Thread_blocking_operation_Cancel( sync_state, executing, level ); 449c8: 2d41 0010 movel %d1,%fp@(16) <== NOT EXECUTED 449cc: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 449d0: 4e5e unlk %fp <== NOT EXECUTED * An interrupt completed the thread's blocking request. * The blocking thread was satisfied by an ISR or timed out. * * WARNING! Returning with interrupts disabled! */ _Thread_blocking_operation_Cancel( sync_state, executing, level ); 449d2: 4ef9 0004 66f8 jmp 466f8 <_Thread_blocking_operation_Cancel> <== NOT EXECUTED } 449d8: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 449de: 4e5e unlk %fp <== NOT EXECUTED 449e0: 4e75 rts <== NOT EXECUTED ... 00044a34 <_Event_Surrender>: */ void _Event_Surrender( Thread_Control *the_thread ) { 44a34: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 44a38: 48d7 0c7c moveml %d2-%d6/%a2-%a3,%sp@ <== NOT EXECUTED 44a3c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; option_set = (rtems_option) the_thread->Wait.option; _ISR_Disable( level ); 44a40: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED rtems_event_set event_condition; rtems_event_set seized_events; rtems_option option_set; RTEMS_API_Control *api; api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; 44a46: 206a 010c moveal %a2@(268),%a0 <== NOT EXECUTED option_set = (rtems_option) the_thread->Wait.option; 44a4a: 2a2a 0030 movel %a2@(48),%d5 <== NOT EXECUTED _ISR_Disable( level ); 44a4e: 40c4 movew %sr,%d4 <== NOT EXECUTED 44a50: 8084 orl %d4,%d0 <== NOT EXECUTED 44a52: 46c0 movew %d0,%sr <== NOT EXECUTED pending_events = api->pending_events; event_condition = (rtems_event_set) the_thread->Wait.count; 44a54: 242a 0024 movel %a2@(36),%d2 <== NOT EXECUTED api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; option_set = (rtems_option) the_thread->Wait.option; _ISR_Disable( level ); pending_events = api->pending_events; 44a58: 2610 movel %a0@,%d3 <== NOT EXECUTED RTEMS_INLINE_ROUTINE rtems_event_set _Event_sets_Get( rtems_event_set the_event_set, rtems_event_set the_event_condition ) { return ( the_event_set & the_event_condition ); 44a5a: 2202 movel %d2,%d1 <== NOT EXECUTED 44a5c: c283 andl %d3,%d1 <== NOT EXECUTED seized_events = _Event_sets_Get( pending_events, event_condition ); /* * No events were seized in this operation */ if ( _Event_sets_Is_empty( seized_events ) ) { 44a5e: 6606 bnes 44a66 <_Event_Surrender+0x32> <== NOT EXECUTED _ISR_Enable( level ); 44a60: 46c4 movew %d4,%sr <== NOT EXECUTED 44a62: 6000 00cc braw 44b30 <_Event_Surrender+0xfc> <== NOT EXECUTED /* * If we are in an ISR and sending to the current thread, then * we have a critical section issue to deal with. */ if ( _ISR_Is_in_progress() && 44a66: 2039 0005 6d42 movel 56d42 <_ISR_Nest_level>,%d0 <== NOT EXECUTED 44a6c: 674a beqs 44ab8 <_Event_Surrender+0x84> <== NOT EXECUTED 44a6e: b5f9 0005 6d62 cmpal 56d62 <_Thread_Executing>,%a2 <== NOT EXECUTED 44a74: 6642 bnes 44ab8 <_Event_Surrender+0x84> <== NOT EXECUTED 44a76: 2039 0005 6ede movel 56ede <_Event_Sync_state>,%d0 <== NOT EXECUTED 44a7c: 7c01 moveq #1,%d6 <== NOT EXECUTED 44a7e: bc80 cmpl %d0,%d6 <== NOT EXECUTED 44a80: 670e beqs 44a90 <_Event_Surrender+0x5c> <== NOT EXECUTED 44a82: 2039 0005 6ede movel 56ede <_Event_Sync_state>,%d0 <== NOT EXECUTED 44a88: 1c3c 0002 moveb #2,%d6 <== NOT EXECUTED 44a8c: bc80 cmpl %d0,%d6 <== NOT EXECUTED 44a8e: 6628 bnes 44ab8 <_Event_Surrender+0x84> <== NOT EXECUTED _Thread_Is_executing( the_thread ) && ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) || (_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT)) ) { if ( seized_events == event_condition || _Options_Is_any(option_set) ) { 44a90: b481 cmpl %d1,%d2 <== NOT EXECUTED 44a92: 6706 beqs 44a9a <_Event_Surrender+0x66> <== NOT EXECUTED 44a94: 0805 0001 btst #1,%d5 <== NOT EXECUTED 44a98: 671a beqs 44ab4 <_Event_Surrender+0x80> <== NOT EXECUTED api->pending_events = _Event_sets_Clear( pending_events,seized_events ); 44a9a: 2001 movel %d1,%d0 <== NOT EXECUTED 44a9c: 4680 notl %d0 <== NOT EXECUTED 44a9e: c083 andl %d3,%d0 <== NOT EXECUTED 44aa0: 2080 movel %d0,%a0@ <== NOT EXECUTED the_thread->Wait.count = 0; *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; 44aa2: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED _Thread_Is_executing( the_thread ) && ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) || (_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT)) ) { if ( seized_events == event_condition || _Options_Is_any(option_set) ) { api->pending_events = _Event_sets_Clear( pending_events,seized_events ); the_thread->Wait.count = 0; 44aa6: 42aa 0024 clrl %a2@(36) <== NOT EXECUTED *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED; 44aaa: 7003 moveq #3,%d0 <== NOT EXECUTED 44aac: 23c0 0005 6ede movel %d0,56ede <_Event_Sync_state> <== NOT EXECUTED ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) || (_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT)) ) { if ( seized_events == event_condition || _Options_Is_any(option_set) ) { api->pending_events = _Event_sets_Clear( pending_events,seized_events ); the_thread->Wait.count = 0; *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; 44ab2: 2081 movel %d1,%a0@ <== NOT EXECUTED _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED; } _ISR_Enable( level ); 44ab4: 46c4 movew %d4,%sr <== NOT EXECUTED 44ab6: 6078 bras 44b30 <_Event_Surrender+0xfc> <== NOT EXECUTED } /* * Otherwise, this is a normal send to another thread */ if ( _States_Is_waiting_for_event( the_thread->current_state ) ) { 44ab8: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 44abc: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 44ac2: 676a beqs 44b2e <_Event_Surrender+0xfa> <== NOT EXECUTED if ( seized_events == event_condition || _Options_Is_any( option_set ) ) { 44ac4: b481 cmpl %d1,%d2 <== NOT EXECUTED 44ac6: 6706 beqs 44ace <_Event_Surrender+0x9a> <== NOT EXECUTED 44ac8: 0805 0001 btst #1,%d5 <== NOT EXECUTED 44acc: 6760 beqs 44b2e <_Event_Surrender+0xfa> <== NOT EXECUTED api->pending_events = _Event_sets_Clear( pending_events, seized_events ); 44ace: 2001 movel %d1,%d0 <== NOT EXECUTED 44ad0: 4680 notl %d0 <== NOT EXECUTED 44ad2: c083 andl %d3,%d0 <== NOT EXECUTED 44ad4: 2080 movel %d0,%a0@ <== NOT EXECUTED the_thread->Wait.count = 0; *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; 44ad6: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED * Otherwise, this is a normal send to another thread */ if ( _States_Is_waiting_for_event( the_thread->current_state ) ) { if ( seized_events == event_condition || _Options_Is_any( option_set ) ) { api->pending_events = _Event_sets_Clear( pending_events, seized_events ); the_thread->Wait.count = 0; 44ada: 42aa 0024 clrl %a2@(36) <== NOT EXECUTED *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; 44ade: 2081 movel %d1,%a0@ <== NOT EXECUTED _ISR_Flash( level ); 44ae0: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 44ae6: 46c4 movew %d4,%sr <== NOT EXECUTED 44ae8: 8084 orl %d4,%d0 <== NOT EXECUTED 44aea: 46c0 movew %d0,%sr <== NOT EXECUTED 44aec: 47f9 0004 688c lea 4688c <_Thread_Clear_state>,%a3 <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 44af2: 7c02 moveq #2,%d6 <== NOT EXECUTED 44af4: bcaa 0050 cmpl %a2@(80),%d6 <== NOT EXECUTED 44af8: 6710 beqs 44b0a <_Event_Surrender+0xd6> <== NOT EXECUTED _ISR_Enable( level ); 44afa: 46c4 movew %d4,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 44afc: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 44b02: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44b04: 4e93 jsr %a3@ <== NOT EXECUTED 44b06: 508f addql #8,%sp <== NOT EXECUTED 44b08: 6026 bras 44b30 <_Event_Surrender+0xfc> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 44b0a: 7003 moveq #3,%d0 <== NOT EXECUTED 44b0c: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED _Thread_Unblock( the_thread ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 44b10: 46c4 movew %d4,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 44b12: 486a 0048 pea %a2@(72) <== NOT EXECUTED 44b16: 4eb9 0004 7ce0 jsr 47ce0 <_Watchdog_Remove> <== NOT EXECUTED 44b1c: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 44b22: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44b24: 4e93 jsr %a3@ <== NOT EXECUTED 44b26: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44b2c: 6002 bras 44b30 <_Event_Surrender+0xfc> <== NOT EXECUTED _Thread_Unblock( the_thread ); } return; } } _ISR_Enable( level ); 44b2e: 46c4 movew %d4,%sr <== NOT EXECUTED } 44b30: 4cee 0c7c ffe4 moveml %fp@(-28),%d2-%d6/%a2-%a3 <== NOT EXECUTED 44b36: 4e5e unlk %fp <== NOT EXECUTED 44b38: 4e75 rts <== NOT EXECUTED ... 00044b3c <_Event_Timeout>: void _Event_Timeout( Objects_Id id, void *ignored ) { 44b3c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44b40: 2f02 movel %d2,%sp@- <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; ISR_Level level; the_thread = _Thread_Get( id, &location ); 44b42: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44b46: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44b4a: 4eb9 0004 6c78 jsr 46c78 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 44b50: 508f addql #8,%sp <== NOT EXECUTED { Thread_Control *the_thread; Objects_Locations location; ISR_Level level; the_thread = _Thread_Get( id, &location ); 44b52: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 44b54: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44b58: 666a bnes 44bc4 <_Event_Timeout+0x88> <== NOT EXECUTED * this is the "timeout" transition. After a request is satisfied, * a timeout is not allowed to occur. */ _ISR_Disable( level ); 44b5a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 44b60: 40c1 movew %sr,%d1 <== NOT EXECUTED 44b62: 8081 orl %d1,%d0 <== NOT EXECUTED 44b64: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !the_thread->Wait.count ) { /* verify thread is waiting */ 44b66: 4aa8 0024 tstl %a0@(36) <== NOT EXECUTED 44b6a: 6612 bnes 44b7e <_Event_Timeout+0x42> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 44b6c: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44b72: 5380 subql #1,%d0 <== NOT EXECUTED 44b74: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Unnest_dispatch(); _ISR_Enable( level ); 44b7a: 46c1 movew %d1,%sr <== NOT EXECUTED 44b7c: 6046 bras 44bc4 <_Event_Timeout+0x88> <== NOT EXECUTED return; } the_thread->Wait.count = 0; 44b7e: 42a8 0024 clrl %a0@(36) <== NOT EXECUTED if ( _Thread_Is_executing( the_thread ) ) { 44b82: b1f9 0005 6d62 cmpal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED 44b88: 6614 bnes 44b9e <_Event_Timeout+0x62> <== NOT EXECUTED Thread_blocking_operation_States sync = _Event_Sync_state; 44b8a: 2039 0005 6ede movel 56ede <_Event_Sync_state>,%d0 <== NOT EXECUTED if ( (sync == THREAD_BLOCKING_OPERATION_SYNCHRONIZED) || 44b90: 7401 moveq #1,%d2 <== NOT EXECUTED 44b92: b480 cmpl %d0,%d2 <== NOT EXECUTED 44b94: 6508 bcss 44b9e <_Event_Timeout+0x62> <== NOT EXECUTED (sync == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ) { _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT; 44b96: 7002 moveq #2,%d0 <== NOT EXECUTED 44b98: 23c0 0005 6ede movel %d0,56ede <_Event_Sync_state> <== NOT EXECUTED } } the_thread->Wait.return_code = RTEMS_TIMEOUT; 44b9e: 7406 moveq #6,%d2 <== NOT EXECUTED 44ba0: 2142 0034 movel %d2,%a0@(52) <== NOT EXECUTED _ISR_Enable( level ); 44ba4: 46c1 movew %d1,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 44ba6: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 44bac: 2f08 movel %a0,%sp@- <== NOT EXECUTED 44bae: 4eb9 0004 688c jsr 4688c <_Thread_Clear_state> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 44bb4: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44bba: 508f addql #8,%sp <== NOT EXECUTED 44bbc: 5380 subql #1,%d0 <== NOT EXECUTED 44bbe: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED case OBJECTS_REMOTE: /* impossible */ #endif case OBJECTS_ERROR: break; } } 44bc4: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44bc8: 4e5e unlk %fp <== NOT EXECUTED 44bca: 4e75 rts 00045540 <_Extension_Manager_initialization>: */ void _Extension_Manager_initialization( uint32_t maximum_extensions ) { 45540: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 45544: 4878 0004 pea 4 <== NOT EXECUTED 45548: 42a7 clrl %sp@- <== NOT EXECUTED 4554a: 4878 0044 pea 44 <== NOT EXECUTED 4554e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45552: 4878 0009 pea 9 <== NOT EXECUTED 45556: 4878 0002 pea 2 <== NOT EXECUTED 4555a: 4879 0005 6ee2 pea 56ee2 <_Extension_Information> <== NOT EXECUTED 45560: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED 45566: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , false, /* true if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4556c: 4e5e unlk %fp <== NOT EXECUTED 4556e: 4e75 rts 00049c20 <_Heap_Allocate>: void *_Heap_Allocate( Heap_Control *the_heap, size_t size ) { 49c20: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 49c24: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 49c28: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED Heap_Block *the_block; void *ptr = NULL; Heap_Statistics *const stats = &the_heap->stats; Heap_Block *const tail = _Heap_Tail(the_heap); the_size = 49c2c: 2f2b 0014 movel %a3@(20),%sp@- <== NOT EXECUTED 49c30: 2f2b 0010 movel %a3@(16),%sp@- <== NOT EXECUTED 49c34: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 49c38: 4eb9 0004 5e74 jsr 45e74 <_Heap_Calc_block_size> <== NOT EXECUTED _Heap_Calc_block_size(size, the_heap->page_size, the_heap->min_block_size); if(the_size == 0) 49c3e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49c44: 4a80 tstl %d0 <== NOT EXECUTED 49c46: 674c beqs 49c94 <_Heap_Allocate+0x74> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 49c48: 246b 0008 moveal %a3@(8),%a2 <== NOT EXECUTED 49c4c: 4282 clrl %d2 <== NOT EXECUTED 49c4e: 6034 bras 49c84 <_Heap_Allocate+0x64> <== NOT EXECUTED /* As we always coalesce free blocks, prev block must have been used. */ _HAssert(_Heap_Is_prev_used(the_block)); /* Don't bother to mask out the HEAP_PREV_USED bit as it won't change the result of the comparison. */ if(the_block->size >= the_size) { 49c50: b0aa 0004 cmpl %a2@(4),%d0 <== NOT EXECUTED 49c54: 6228 bhis 49c7e <_Heap_Allocate+0x5e> <== NOT EXECUTED (void)_Heap_Block_allocate(the_heap, the_block, the_size ); 49c56: 2f00 movel %d0,%sp@- <== NOT EXECUTED 49c58: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49c5a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49c5c: 4eb9 0004 5eb2 jsr 45eb2 <_Heap_Block_allocate> <== NOT EXECUTED ptr = _Heap_User_area(the_block); stats->allocs += 1; stats->searches += search_count + 1; 49c62: 202b 004c movel %a3@(76),%d0 <== NOT EXECUTED if(the_block->size >= the_size) { (void)_Heap_Block_allocate(the_heap, the_block, the_size ); ptr = _Heap_User_area(the_block); stats->allocs += 1; 49c66: 52ab 0048 addql #1,%a3@(72) <== NOT EXECUTED stats->searches += search_count + 1; 49c6a: 5280 addql #1,%d0 <== NOT EXECUTED 49c6c: d082 addl %d2,%d0 <== NOT EXECUTED 49c6e: 2740 004c movel %d0,%a3@(76) <== NOT EXECUTED 49c72: 200a movel %a2,%d0 <== NOT EXECUTED 49c74: 5080 addql #8,%d0 <== NOT EXECUTED 49c76: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49c7c: 600c bras 49c8a <_Heap_Allocate+0x6a> <== NOT EXECUTED return NULL; /* Find large enough free block. */ for(the_block = _Heap_First(the_heap), search_count = 0; the_block != tail; the_block = the_block->next, ++search_count) 49c7e: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 49c82: 5282 addql #1,%d2 <== NOT EXECUTED if(the_size == 0) return NULL; /* Find large enough free block. */ for(the_block = _Heap_First(the_heap), search_count = 0; the_block != tail; 49c84: b7ca cmpal %a2,%a3 <== NOT EXECUTED 49c86: 66c8 bnes 49c50 <_Heap_Allocate+0x30> <== NOT EXECUTED 49c88: 4280 clrl %d0 <== NOT EXECUTED _HAssert(_Heap_Is_aligned_ptr(ptr, the_heap->page_size)); break; } } if(stats->max_search < search_count) 49c8a: b4ab 0044 cmpl %a3@(68),%d2 <== NOT EXECUTED 49c8e: 6304 blss 49c94 <_Heap_Allocate+0x74> <== NOT EXECUTED stats->max_search = search_count; 49c90: 2742 0044 movel %d2,%a3@(68) <== NOT EXECUTED return ptr; } 49c94: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 49c9a: 4e5e unlk %fp <== NOT EXECUTED 49c9c: 4e75 rts <== NOT EXECUTED ... 00048738 <_Heap_Allocate_aligned>: void *_Heap_Allocate_aligned( Heap_Control *the_heap, size_t size, uint32_t alignment ) { 48738: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 4873c: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 48740: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED Heap_Block *const tail = _Heap_Tail(the_heap); uint32_t const end_to_user_offs = size - HEAP_BLOCK_HEADER_OFFSET; uint32_t const the_size = _Heap_Calc_block_size(size, page_size, the_heap->min_block_size); 48744: 2f2b 0014 movel %a3@(20),%sp@- <== NOT EXECUTED { uint32_t search_count; Heap_Block *the_block; void *user_ptr = NULL; uint32_t const page_size = the_heap->page_size; 48748: 2c2b 0010 movel %a3@(16),%d6 <== NOT EXECUTED void *_Heap_Allocate_aligned( Heap_Control *the_heap, size_t size, uint32_t alignment ) { 4874c: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED Heap_Block *const tail = _Heap_Tail(the_heap); uint32_t const end_to_user_offs = size - HEAP_BLOCK_HEADER_OFFSET; uint32_t const the_size = _Heap_Calc_block_size(size, page_size, the_heap->min_block_size); 48750: 2f06 movel %d6,%sp@- <== NOT EXECUTED void *_Heap_Allocate_aligned( Heap_Control *the_heap, size_t size, uint32_t alignment ) { 48752: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED Heap_Block *const tail = _Heap_Tail(the_heap); uint32_t const end_to_user_offs = size - HEAP_BLOCK_HEADER_OFFSET; uint32_t const the_size = _Heap_Calc_block_size(size, page_size, the_heap->min_block_size); 48756: 2f00 movel %d0,%sp@- <== NOT EXECUTED void *user_ptr = NULL; uint32_t const page_size = the_heap->page_size; Heap_Statistics *const stats = &the_heap->stats; Heap_Block *const tail = _Heap_Tail(the_heap); uint32_t const end_to_user_offs = size - HEAP_BLOCK_HEADER_OFFSET; 48758: 5980 subql #4,%d0 <== NOT EXECUTED 4875a: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED uint32_t const the_size = _Heap_Calc_block_size(size, page_size, the_heap->min_block_size); 4875e: 4eb9 0004 8b90 jsr 48b90 <_Heap_Calc_block_size> <== NOT EXECUTED if(the_size == 0) 48764: dffc 0000 000c addal #12,%sp <== NOT EXECUTED Heap_Block *const tail = _Heap_Tail(the_heap); uint32_t const end_to_user_offs = size - HEAP_BLOCK_HEADER_OFFSET; uint32_t const the_size = _Heap_Calc_block_size(size, page_size, the_heap->min_block_size); 4876a: 2a40 moveal %d0,%a5 <== NOT EXECUTED if(the_size == 0) 4876c: 4a80 tstl %d0 <== NOT EXECUTED 4876e: 6606 bnes 48776 <_Heap_Allocate_aligned+0x3e> <== NOT EXECUTED 48770: 4280 clrl %d0 <== NOT EXECUTED 48772: 6000 0104 braw 48878 <_Heap_Allocate_aligned+0x140> <== NOT EXECUTED return NULL; if(alignment == 0) 48776: 4a84 tstl %d4 <== NOT EXECUTED 48778: 6604 bnes 4877e <_Heap_Allocate_aligned+0x46> <== NOT EXECUTED 4877a: 183c 0004 moveb #4,%d4 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 4877e: 246b 0008 moveal %a3@(8),%a2 <== NOT EXECUTED 48782: 4287 clrl %d7 <== NOT EXECUTED 48784: 6000 00e0 braw 48866 <_Heap_Allocate_aligned+0x12e> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 48788: 7afe moveq #-2,%d5 <== NOT EXECUTED 4878a: caaa 0004 andl %a2@(4),%d5 <== NOT EXECUTED uint32_t const block_size = _Heap_Block_size(the_block); /* As we always coalesce free blocks, prev block must have been used. */ _HAssert(_Heap_Is_prev_used(the_block)); if(block_size >= the_size) { /* the_block is large enough. */ 4878e: bbc5 cmpal %d5,%a5 <== NOT EXECUTED 48790: 6200 00ce bhiw 48860 <_Heap_Allocate_aligned+0x128> <== NOT EXECUTED /* Calculate 'aligned_user_addr' that will become the user pointer we return. It should be at least 'end_to_user_offs' bytes less than the the 'block_end' and should be aligned on 'alignment' boundary. Calculations are from the 'block_end' as we are going to split free block so that the upper part of the block becomes used block. */ _H_uptr_t const block_end = _H_p2u(the_block) + block_size; 48794: 49f2 5800 lea %a2@(00000000,%d5:l),%a4 <== NOT EXECUTED aligned_user_addr = block_end - end_to_user_offs; 48798: 200c movel %a4,%d0 <== NOT EXECUTED 4879a: 90ae fffc subl %fp@(-4),%d0 <== NOT EXECUTED _H_uptr_t *value, uint32_t alignment ) { _H_uptr_t v = *value; *value = v - (v % alignment); 4879e: 2400 movel %d0,%d2 <== NOT EXECUTED 487a0: 4c44 2001 remul %d4,%d1,%d2 <== NOT EXECUTED 487a4: 2600 movel %d0,%d3 <== NOT EXECUTED 487a6: 9681 subl %d1,%d3 <== NOT EXECUTED if(block_size >= the_size) { /* the_block is large enough. */ _H_uptr_t user_addr; _H_uptr_t aligned_user_addr; _H_uptr_t const user_area = _H_p2u(_Heap_User_area(the_block)); 487a8: 2203 movel %d3,%d1 <== NOT EXECUTED 487aa: 4c46 1000 remul %d6,%d0,%d1 <== NOT EXECUTED 487ae: 2403 movel %d3,%d2 <== NOT EXECUTED 487b0: 220a movel %a2,%d1 <== NOT EXECUTED 487b2: 9480 subl %d0,%d2 <== NOT EXECUTED 487b4: 5081 addql #8,%d1 <== NOT EXECUTED only at 'page_size' aligned addresses */ user_addr = aligned_user_addr; _Heap_Align_down_uptr(&user_addr, page_size); /* Make sure 'user_addr' calculated didn't run out of 'the_block'. */ if(user_addr >= user_area) { 487b6: b282 cmpl %d2,%d1 <== NOT EXECUTED 487b8: 6200 00a6 bhiw 48860 <_Heap_Allocate_aligned+0x128> <== NOT EXECUTED /* The block seems to be acceptable. Check if the remainder of 'the_block' is less than 'min_block_size' so that 'the_block' won't actually be split at the address we assume. */ if(user_addr - user_area < the_heap->min_block_size) { 487bc: 226b 0014 moveal %a3@(20),%a1 <== NOT EXECUTED 487c0: 2002 movel %d2,%d0 <== NOT EXECUTED 487c2: 9081 subl %d1,%d0 <== NOT EXECUTED 487c4: b3c0 cmpal %d0,%a1 <== NOT EXECUTED 487c6: 632c blss 487f4 <_Heap_Allocate_aligned+0xbc> <== NOT EXECUTED 'aligned_user_addr' to be outside of [0,page_size) range. If we do, we will need to store this distance somewhere to be able to resurrect the block address from the user pointer. (Having the distance within [0,page_size) range allows resurrection by aligning user pointer down to the nearest 'page_size' boundary.) */ if(aligned_user_addr - user_addr >= page_size) { 487c8: 2003 movel %d3,%d0 <== NOT EXECUTED 487ca: 9081 subl %d1,%d0 <== NOT EXECUTED 487cc: bc80 cmpl %d0,%d6 <== NOT EXECUTED 487ce: 6304 blss 487d4 <_Heap_Allocate_aligned+0x9c> <== NOT EXECUTED 487d0: 2401 movel %d1,%d2 <== NOT EXECUTED 487d2: 6020 bras 487f4 <_Heap_Allocate_aligned+0xbc> <== NOT EXECUTED uint32_t alignment ) { _H_uptr_t v = *value; uint32_t a = alignment; _H_uptr_t r = v % a; 487d4: 2401 movel %d1,%d2 <== NOT EXECUTED 487d6: 4c44 2000 remul %d4,%d0,%d2 <== NOT EXECUTED *value = r ? v - r + a : v; 487da: 4a80 tstl %d0 <== NOT EXECUTED 487dc: 6604 bnes 487e2 <_Heap_Allocate_aligned+0xaa> <== NOT EXECUTED 487de: 2041 moveal %d1,%a0 <== NOT EXECUTED 487e0: 6006 bras 487e8 <_Heap_Allocate_aligned+0xb0> <== NOT EXECUTED 487e2: 2041 moveal %d1,%a0 <== NOT EXECUTED 487e4: d1c4 addal %d4,%a0 <== NOT EXECUTED 487e6: 91c0 subal %d0,%a0 <== NOT EXECUTED /* The user pointer will be too far from 'user_addr'. See if we can make 'aligned_user_addr' to be close enough to the 'user_addr'. */ aligned_user_addr = user_addr; _Heap_Align_up_uptr(&aligned_user_addr, alignment); if(aligned_user_addr - user_addr >= page_size) { 487e8: 2008 movel %a0,%d0 <== NOT EXECUTED 487ea: 9081 subl %d1,%d0 <== NOT EXECUTED 487ec: bc80 cmpl %d0,%d6 <== NOT EXECUTED 487ee: 6370 blss 48860 <_Heap_Allocate_aligned+0x128> <== NOT EXECUTED 487f0: 2401 movel %d1,%d2 <== NOT EXECUTED 487f2: 2608 movel %a0,%d3 <== NOT EXECUTED aligned_user_addr = 0; } } } if(aligned_user_addr) { 487f4: 4a83 tstl %d3 <== NOT EXECUTED 487f6: 6768 beqs 48860 <_Heap_Allocate_aligned+0x128> <== NOT EXECUTED /* The block is indeed acceptable: calculate the size of the block to be allocated and perform allocation. */ uint32_t const alloc_size = block_end - user_addr + HEAP_BLOCK_USER_OFFSET; 487f8: 200c movel %a4,%d0 <== NOT EXECUTED 487fa: 5080 addql #8,%d0 <== NOT EXECUTED 487fc: 9082 subl %d2,%d0 <== NOT EXECUTED Heap_Block *the_block, uint32_t alloc_size) { Heap_Statistics *const stats = &the_heap->stats; uint32_t const block_size = _Heap_Block_size(the_block); uint32_t const the_rest = block_size - alloc_size; 487fe: 2205 movel %d5,%d1 <== NOT EXECUTED 48800: 9280 subl %d0,%d1 <== NOT EXECUTED _HAssert(_Heap_Is_aligned(block_size, the_heap->page_size)); _HAssert(_Heap_Is_aligned(alloc_size, the_heap->page_size)); _HAssert(alloc_size <= block_size); _HAssert(_Heap_Is_prev_used(the_block)); if(the_rest >= the_heap->min_block_size) { 48802: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 48804: 6212 bhis 48818 <_Heap_Allocate_aligned+0xe0> <== NOT EXECUTED /* Split the block so that lower part is still free, and upper part becomes used. */ the_block->size = the_rest | HEAP_PREV_USED; 48806: 7401 moveq #1,%d2 <== NOT EXECUTED 48808: 8481 orl %d1,%d2 <== NOT EXECUTED 4880a: 2542 0004 movel %d2,%a2@(4) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset ( void *base, uint32_t offset ) { return (void *)((char *)base + offset); 4880e: d5c1 addal %d1,%a2 <== NOT EXECUTED the_block = _Heap_Block_at(the_block, the_rest); the_block->prev_size = the_rest; 48810: 2481 movel %d1,%a2@ <== NOT EXECUTED the_block->size = alloc_size; 48812: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 48816: 6016 bras 4882e <_Heap_Allocate_aligned+0xf6> <== NOT EXECUTED Heap_Block *the_block ) { Heap_Block *block = the_block; Heap_Block *next = block->next; 48818: 226a 0008 moveal %a2@(8),%a1 <== NOT EXECUTED Heap_Block *prev = block->prev; 4881c: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED /* Don't split the block as remainder is either zero or too small to be used as a separate free block. Change 'alloc_size' to the size of the block and remove the block from the list of free blocks. */ _Heap_Block_remove(the_block); alloc_size = block_size; stats->free_blocks -= 1; 48820: 2005 movel %d5,%d0 <== NOT EXECUTED prev->next = next; next->prev = prev; 48822: 2348 000c movel %a0,%a1@(12) <== NOT EXECUTED 48826: 53ab 0038 subql #1,%a3@(56) <== NOT EXECUTED { Heap_Block *block = the_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; prev->next = next; 4882a: 2149 0008 movel %a1,%a0@(8) <== NOT EXECUTED } /* Mark the block as used (in the next block). */ _Heap_Block_at(the_block, alloc_size)->size |= HEAP_PREV_USED; 4882e: 7201 moveq #1,%d1 <== NOT EXECUTED 48830: 83b2 0804 orl %d1,%a2@(00000004,%d0:l) <== NOT EXECUTED /* Update statistics */ stats->free_size -= alloc_size; 48834: 242b 0030 movel %a3@(48),%d2 <== NOT EXECUTED 48838: 9480 subl %d0,%d2 <== NOT EXECUTED 4883a: 2742 0030 movel %d2,%a3@(48) <== NOT EXECUTED if(stats->min_free_size > stats->free_size) 4883e: b4ab 0034 cmpl %a3@(52),%d2 <== NOT EXECUTED 48842: 6404 bccs 48848 <_Heap_Allocate_aligned+0x110> <== NOT EXECUTED stats->min_free_size = stats->free_size; 48844: 2742 0034 movel %d2,%a3@(52) <== NOT EXECUTED _HAssert(_Heap_Is_aligned_ptr((void*)aligned_user_addr, alignment)); the_block = block_allocate(the_heap, the_block, alloc_size); stats->searches += search_count + 1; 48848: 202b 004c movel %a3@(76),%d0 <== NOT EXECUTED _Heap_Block_at(the_block, alloc_size)->size |= HEAP_PREV_USED; /* Update statistics */ stats->free_size -= alloc_size; if(stats->min_free_size > stats->free_size) stats->min_free_size = stats->free_size; stats->used_blocks += 1; 4884c: 52ab 0040 addql #1,%a3@(64) <== NOT EXECUTED _HAssert(_Heap_Is_aligned_ptr((void*)aligned_user_addr, alignment)); the_block = block_allocate(the_heap, the_block, alloc_size); stats->searches += search_count + 1; 48850: 5280 addql #1,%d0 <== NOT EXECUTED stats->allocs += 1; 48852: 52ab 0048 addql #1,%a3@(72) <== NOT EXECUTED _HAssert(_Heap_Is_aligned_ptr((void*)aligned_user_addr, alignment)); the_block = block_allocate(the_heap, the_block, alloc_size); stats->searches += search_count + 1; 48856: d087 addl %d7,%d0 <== NOT EXECUTED 48858: 2740 004c movel %d0,%a3@(76) <== NOT EXECUTED stats->allocs += 1; check_result(the_heap, the_block, user_addr, aligned_user_addr, size); user_ptr = (void*)aligned_user_addr; 4885c: 2003 movel %d3,%d0 <== NOT EXECUTED 4885e: 600e bras 4886e <_Heap_Allocate_aligned+0x136> <== NOT EXECUTED /* Find large enough free block that satisfies the alignment requirements. */ for(the_block = _Heap_First(the_heap), search_count = 0; the_block != tail; the_block = the_block->next, ++search_count) 48860: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 48864: 5287 addql #1,%d7 <== NOT EXECUTED alignment = CPU_ALIGNMENT; /* Find large enough free block that satisfies the alignment requirements. */ for(the_block = _Heap_First(the_heap), search_count = 0; the_block != tail; 48866: b7ca cmpal %a2,%a3 <== NOT EXECUTED 48868: 6600 ff1e bnew 48788 <_Heap_Allocate_aligned+0x50> <== NOT EXECUTED 4886c: 4280 clrl %d0 <== NOT EXECUTED } } } } if(stats->max_search < search_count) 4886e: beab 0044 cmpl %a3@(68),%d7 <== NOT EXECUTED 48872: 6304 blss 48878 <_Heap_Allocate_aligned+0x140> <== NOT EXECUTED stats->max_search = search_count; 48874: 2747 0044 movel %d7,%a3@(68) <== NOT EXECUTED return user_ptr; } 48878: 4cee 3cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4887e: 4e5e unlk %fp <== NOT EXECUTED 48880: 4e75 rts <== NOT EXECUTED ... 00045eb2 <_Heap_Block_allocate>: uint32_t _Heap_Block_allocate( Heap_Control* the_heap, Heap_Block* the_block, uint32_t alloc_size ) { 45eb2: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 45eb6: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 45eba: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 45ebe: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 45ec2: 70fe moveq #-2,%d0 <== NOT EXECUTED 45ec4: c0a9 0004 andl %a1@(4),%d0 <== NOT EXECUTED 45ec8: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED Heap_Statistics *const stats = &the_heap->stats; uint32_t const block_size = _Heap_Block_size(the_block); uint32_t const the_rest = block_size - alloc_size; 45ecc: 2200 movel %d0,%d1 <== NOT EXECUTED 45ece: 2869 0008 moveal %a1@(8),%a4 <== NOT EXECUTED 45ed2: 2469 000c moveal %a1@(12),%a2 <== NOT EXECUTED 45ed6: 9282 subl %d2,%d1 <== NOT EXECUTED _HAssert(_Heap_Is_aligned(block_size, the_heap->page_size)); _HAssert(_Heap_Is_aligned(alloc_size, the_heap->page_size)); _HAssert(alloc_size <= block_size); _HAssert(_Heap_Is_prev_used(the_block)); if(the_rest >= the_heap->min_block_size) { 45ed8: b2ab 0014 cmpl %a3@(20),%d1 <== NOT EXECUTED 45edc: 652a bcss 45f08 <_Heap_Block_allocate+0x56> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 45ede: 41f1 2800 lea %a1@(00000000,%d2:l),%a0 <== NOT EXECUTED becomes used. This is slightly less optimal than leaving lower part free as it requires replacing block in the free blocks list, but it makes it possible to reuse this code in the _Heap_Resize_block(). */ Heap_Block *next_block = _Heap_Block_at(the_block, alloc_size); _Heap_Block_replace(the_block, next_block); the_block->size = alloc_size | HEAP_PREV_USED; 45ee2: 7001 moveq #1,%d0 <== NOT EXECUTED 45ee4: 8082 orl %d2,%d0 <== NOT EXECUTED 45ee6: 2340 0004 movel %d0,%a1@(4) <== NOT EXECUTED next_block->size = the_rest | HEAP_PREV_USED; 45eea: 7001 moveq #1,%d0 <== NOT EXECUTED 45eec: 8081 orl %d1,%d0 <== NOT EXECUTED Heap_Block *block = old_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; block = new_block; block->next = next; 45eee: 214c 0008 movel %a4,%a0@(8) <== NOT EXECUTED _Heap_Block_at(next_block, the_rest)->prev_size = the_rest; 45ef2: 2181 1800 movel %d1,%a0@(00000000,%d1:l) <== NOT EXECUTED block->prev = prev; 45ef6: 214a 000c movel %a2,%a0@(12) <== NOT EXECUTED free as it requires replacing block in the free blocks list, but it makes it possible to reuse this code in the _Heap_Resize_block(). */ Heap_Block *next_block = _Heap_Block_at(the_block, alloc_size); _Heap_Block_replace(the_block, next_block); the_block->size = alloc_size | HEAP_PREV_USED; next_block->size = the_rest | HEAP_PREV_USED; 45efa: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED next->prev = prev->next = block; 45efe: 2548 0008 movel %a0,%a2@(8) <== NOT EXECUTED 45f02: 2948 000c movel %a0,%a4@(12) <== NOT EXECUTED 45f06: 6014 bras 45f1c <_Heap_Block_allocate+0x6a> <== NOT EXECUTED /* Don't split the block as remainder is either zero or too small to be used as a separate free block. Change 'alloc_size' to the size of the block and remove the block from the list of free blocks. */ _Heap_Block_remove(the_block); alloc_size = block_size; _Heap_Block_at(the_block, alloc_size)->size |= HEAP_PREV_USED; 45f08: 7201 moveq #1,%d1 <== NOT EXECUTED 45f0a: 83b1 0804 orl %d1,%a1@(00000004,%d0:l) <== NOT EXECUTED stats->free_blocks -= 1; 45f0e: 2400 movel %d0,%d2 <== NOT EXECUTED Heap_Block *block = the_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; prev->next = next; next->prev = prev; 45f10: 294a 000c movel %a2,%a4@(12) <== NOT EXECUTED 45f14: 53ab 0038 subql #1,%a3@(56) <== NOT EXECUTED { Heap_Block *block = the_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; prev->next = next; 45f18: 254c 0008 movel %a4,%a2@(8) <== NOT EXECUTED } /* Update statistics */ stats->free_size -= alloc_size; 45f1c: 222b 0030 movel %a3@(48),%d1 <== NOT EXECUTED 45f20: 9282 subl %d2,%d1 <== NOT EXECUTED 45f22: 2741 0030 movel %d1,%a3@(48) <== NOT EXECUTED if(stats->min_free_size > stats->free_size) 45f26: b2ab 0034 cmpl %a3@(52),%d1 <== NOT EXECUTED 45f2a: 6404 bccs 45f30 <_Heap_Block_allocate+0x7e> <== NOT EXECUTED stats->min_free_size = stats->free_size; 45f2c: 2741 0034 movel %d1,%a3@(52) <== NOT EXECUTED stats->used_blocks += 1; 45f30: 52ab 0040 addql #1,%a3@(64) <== NOT EXECUTED return alloc_size; } 45f34: 2002 movel %d2,%d0 <== NOT EXECUTED 45f36: 4cd7 1c04 moveml %sp@,%d2/%a2-%a4 <== NOT EXECUTED 45f3a: 4e5e unlk %fp <== NOT EXECUTED 45f3c: 4e75 rts <== NOT EXECUTED ... 00045e74 <_Heap_Calc_block_size>: */ size_t _Heap_Calc_block_size( size_t size, uint32_t page_size, uint32_t min_size) { 45e74: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45e78: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45e7a: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 45e7e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45e80: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED uint32_t block_size = size + HEAP_BLOCK_USED_OVERHEAD; 45e84: 2009 movel %a1,%d0 <== NOT EXECUTED 45e86: 5880 addql #4,%d0 <== NOT EXECUTED */ size_t _Heap_Calc_block_size( size_t size, uint32_t page_size, uint32_t min_size) { 45e88: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED uint32_t alignment ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; 45e8c: 2600 movel %d0,%d3 <== NOT EXECUTED 45e8e: 4c42 3001 remul %d2,%d1,%d3 <== NOT EXECUTED *value = r ? v - r + a : v; 45e92: 4a81 tstl %d1 <== NOT EXECUTED 45e94: 6704 beqs 45e9a <_Heap_Calc_block_size+0x26> <== NOT EXECUTED 45e96: d082 addl %d2,%d0 <== NOT EXECUTED 45e98: 9081 subl %d1,%d0 <== NOT EXECUTED 45e9a: 2200 movel %d0,%d1 <== NOT EXECUTED 45e9c: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 45e9e: 6302 blss 45ea2 <_Heap_Calc_block_size+0x2e> <== NOT EXECUTED 45ea0: 2208 movel %a0,%d1 <== NOT EXECUTED uint32_t block_size = size + HEAP_BLOCK_USED_OVERHEAD; _Heap_Align_up(&block_size, page_size); if (block_size < min_size) block_size = min_size; /* 'block_size' becomes <= 'size' if and only if overflow occured. */ return (block_size > size) ? block_size : 0; } 45ea2: 241f movel %sp@+,%d2 <== NOT EXECUTED 45ea4: 261f movel %sp@+,%d3 <== NOT EXECUTED { uint32_t block_size = size + HEAP_BLOCK_USED_OVERHEAD; _Heap_Align_up(&block_size, page_size); if (block_size < min_size) block_size = min_size; /* 'block_size' becomes <= 'size' if and only if overflow occured. */ return (block_size > size) ? block_size : 0; 45ea6: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 45ea8: 55c0 scs %d0 <== NOT EXECUTED 45eaa: 49c0 extbl %d0 <== NOT EXECUTED } 45eac: 4e5e unlk %fp <== NOT EXECUTED 45eae: c081 andl %d1,%d0 <== NOT EXECUTED 45eb0: 4e75 rts 0004cbf8 <_Heap_Extend>: Heap_Control *the_heap, void *starting_address, size_t size, uint32_t *amount_extended ) { 4cbf8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4cbfc: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4cc00: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 4cc04: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4cc08: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED * 5. non-contiguous higher address (NOT SUPPORTED) * * As noted, this code only supports (4). */ if ( starting_address >= the_heap->begin && /* case 3 */ 4cc0c: b0a9 0018 cmpl %a1@(24),%d0 <== NOT EXECUTED 4cc10: 650a bcss 4cc1c <_Heap_Extend+0x24> <== NOT EXECUTED 4cc12: b0a9 001c cmpl %a1@(28),%d0 <== NOT EXECUTED 4cc16: 6404 bccs 4cc1c <_Heap_Extend+0x24> <== NOT EXECUTED 4cc18: 7001 moveq #1,%d0 <== NOT EXECUTED 4cc1a: 6066 bras 4cc82 <_Heap_Extend+0x8a> <== NOT EXECUTED starting_address < the_heap->end ) return HEAP_EXTEND_ERROR; if ( starting_address != the_heap->end ) 4cc1c: b0a9 001c cmpl %a1@(28),%d0 <== NOT EXECUTED 4cc20: 6704 beqs 4cc26 <_Heap_Extend+0x2e> <== NOT EXECUTED 4cc22: 7002 moveq #2,%d0 <== NOT EXECUTED 4cc24: 605c bras 4cc82 <_Heap_Extend+0x8a> <== NOT EXECUTED * Currently only case 4 should make it to this point. * The basic trick is to make the extend area look like a used * block and free it. */ old_final = the_heap->final; 4cc26: 2469 0024 moveal %a1@(36),%a2 <== NOT EXECUTED 4cc2a: d082 addl %d2,%d0 <== NOT EXECUTED the_heap->end = _Addresses_Add_offset( the_heap->end, size ); 4cc2c: 2340 001c movel %d0,%a1@(28) <== NOT EXECUTED the_size = _Addresses_Subtract( the_heap->end, old_final ) - HEAP_OVERHEAD; 4cc30: 908a subl %a2,%d0 <== NOT EXECUTED 4cc32: 5180 subql #8,%d0 <== NOT EXECUTED uint32_t *value, uint32_t alignment ) { uint32_t v = *value; *value = v - (v % alignment); 4cc34: 2600 movel %d0,%d3 <== NOT EXECUTED _Heap_Align_down( &the_size, the_heap->page_size ); *amount_extended = size; 4cc36: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 4cc3a: 4c69 3001 0010 remul %a1@(16),%d1,%d3 <== NOT EXECUTED 4cc40: 9081 subl %d1,%d0 <== NOT EXECUTED 4cc42: 2200 movel %d0,%d1 <== NOT EXECUTED 4cc44: 2082 movel %d2,%a0@ <== NOT EXECUTED if( the_size < the_heap->min_block_size ) 4cc46: b0a9 0014 cmpl %a1@(20),%d0 <== NOT EXECUTED 4cc4a: 6534 bcss 4cc80 <_Heap_Extend+0x88> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 4cc4c: 41f2 0800 lea %a2@(00000000,%d0:l),%a0 <== NOT EXECUTED return HEAP_EXTEND_SUCCESSFUL; old_final->size = the_size | (old_final->size & HEAP_PREV_USED); 4cc50: 7001 moveq #1,%d0 <== NOT EXECUTED 4cc52: c0aa 0004 andl %a2@(4),%d0 <== NOT EXECUTED 4cc56: 8280 orl %d0,%d1 <== NOT EXECUTED 4cc58: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED new_final = _Heap_Block_at( old_final, the_size ); new_final->size = HEAP_PREV_USED; 4cc5c: 7001 moveq #1,%d0 <== NOT EXECUTED 4cc5e: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED stats->size += size; stats->used_blocks += 1; stats->frees -= 1; /* Don't count subsequent call as actual free() */ _Heap_Free( the_heap, _Heap_User_area( old_final ) ); 4cc62: 486a 0008 pea %a2@(8) <== NOT EXECUTED old_final->size = the_size | (old_final->size & HEAP_PREV_USED); new_final = _Heap_Block_at( old_final, the_size ); new_final->size = HEAP_PREV_USED; the_heap->final = new_final; stats->size += size; 4cc66: d5a9 002c addl %d2,%a1@(44) <== NOT EXECUTED stats->used_blocks += 1; 4cc6a: 52a9 0040 addql #1,%a1@(64) <== NOT EXECUTED stats->frees -= 1; /* Don't count subsequent call as actual free() */ 4cc6e: 53a9 0050 subql #1,%a1@(80) <== NOT EXECUTED _Heap_Free( the_heap, _Heap_User_area( old_final ) ); 4cc72: 2f09 movel %a1,%sp@- <== NOT EXECUTED return HEAP_EXTEND_SUCCESSFUL; old_final->size = the_size | (old_final->size & HEAP_PREV_USED); new_final = _Heap_Block_at( old_final, the_size ); new_final->size = HEAP_PREV_USED; the_heap->final = new_final; 4cc74: 2348 0024 movel %a0,%a1@(36) <== NOT EXECUTED stats->size += size; stats->used_blocks += 1; stats->frees -= 1; /* Don't count subsequent call as actual free() */ _Heap_Free( the_heap, _Heap_User_area( old_final ) ); 4cc78: 4eb9 0004 8904 jsr 48904 <_Heap_Free> <== NOT EXECUTED 4cc7e: 508f addql #8,%sp <== NOT EXECUTED 4cc80: 4280 clrl %d0 <== NOT EXECUTED return HEAP_EXTEND_SUCCESSFUL; } 4cc82: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4cc88: 4e5e unlk %fp <== NOT EXECUTED 4cc8a: 4e75 rts 00049ca0 <_Heap_Free>: bool _Heap_Free( Heap_Control *the_heap, void *starting_address ) { 49ca0: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 49ca4: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 49ca8: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 49cac: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED uint32_t the_size; uint32_t next_size; Heap_Statistics *const stats = &the_heap->stats; bool next_is_free; if ( !_Addresses_Is_in_range( 49cb0: 206c 0024 moveal %a4@(36),%a0 <== NOT EXECUTED 49cb4: 226c 0020 moveal %a4@(32),%a1 <== NOT EXECUTED void *address, void *base, void *limit ) { return (address >= base && address <= limit); 49cb8: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 49cba: 6200 015e bhiw 49e1a <_Heap_Free+0x17a> <== NOT EXECUTED 49cbe: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 49cc0: 54c0 scc %d0 <== NOT EXECUTED 49cc2: 49c0 extbl %d0 <== NOT EXECUTED 49cc4: 4480 negl %d0 <== NOT EXECUTED 49cc6: 4a00 tstb %d0 <== NOT EXECUTED 49cc8: 6700 0150 beqw 49e1a <_Heap_Free+0x17a> <== NOT EXECUTED /* The address passed could be greater than the block address plus * HEAP_BLOCK_USER_OFFSET as _Heap_Allocate_aligned() may produce such user * pointers. To get rid of this offset we need to align the address down * to the nearest 'page_size' boundary. */ _Heap_Align_down_uptr ( &addr, the_heap->page_size ); *the_block = (Heap_Block *)(addr - HEAP_BLOCK_USER_OFFSET); 49ccc: 2401 movel %d1,%d2 <== NOT EXECUTED 49cce: 2441 moveal %d1,%a2 <== NOT EXECUTED 49cd0: 4c6c 2000 0010 remul %a4@(16),%d0,%d2 <== NOT EXECUTED 49cd6: 518a subql #8,%a2 <== NOT EXECUTED 49cd8: 95c0 subal %d0,%a2 <== NOT EXECUTED 49cda: b3ca cmpal %a2,%a1 <== NOT EXECUTED 49cdc: 6200 013c bhiw 49e1a <_Heap_Free+0x17a> <== NOT EXECUTED 49ce0: b1ca cmpal %a2,%a0 <== NOT EXECUTED 49ce2: 54c0 scc %d0 <== NOT EXECUTED 49ce4: 49c0 extbl %d0 <== NOT EXECUTED 49ce6: 4480 negl %d0 <== NOT EXECUTED return( FALSE ); } _Heap_Start_of_block( the_heap, starting_address, &the_block ); if ( !_Heap_Is_block_in( the_heap, the_block ) ) { 49ce8: 4a00 tstb %d0 <== NOT EXECUTED 49cea: 6700 012e beqw 49e1a <_Heap_Free+0x17a> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 49cee: 242a 0004 movel %a2@(4),%d2 <== NOT EXECUTED 49cf2: 78fe moveq #-2,%d4 <== NOT EXECUTED 49cf4: c882 andl %d2,%d4 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 49cf6: 47f2 4800 lea %a2@(00000000,%d4:l),%a3 <== NOT EXECUTED 49cfa: b3cb cmpal %a3,%a1 <== NOT EXECUTED 49cfc: 6200 011c bhiw 49e1a <_Heap_Free+0x17a> <== NOT EXECUTED 49d00: b1cb cmpal %a3,%a0 <== NOT EXECUTED 49d02: 54c0 scc %d0 <== NOT EXECUTED 49d04: 49c0 extbl %d0 <== NOT EXECUTED 49d06: 4480 negl %d0 <== NOT EXECUTED } the_size = _Heap_Block_size( the_block ); next_block = _Heap_Block_at( the_block, the_size ); if ( !_Heap_Is_block_in( the_heap, next_block ) ) { 49d08: 4a00 tstb %d0 <== NOT EXECUTED 49d0a: 6700 010e beqw 49e1a <_Heap_Free+0x17a> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used ( Heap_Block *the_block ) { return (the_block->size & HEAP_PREV_USED); 49d0e: 222b 0004 movel %a3@(4),%d1 <== NOT EXECUTED _HAssert( FALSE ); return( FALSE ); } if ( !_Heap_Is_prev_used( next_block ) ) { 49d12: 7001 moveq #1,%d0 <== NOT EXECUTED 49d14: c081 andl %d1,%d0 <== NOT EXECUTED 49d16: 4a00 tstb %d0 <== NOT EXECUTED 49d18: 6700 0100 beqw 49e1a <_Heap_Free+0x17a> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 49d1c: 7afe moveq #-2,%d5 <== NOT EXECUTED 49d1e: ca81 andl %d1,%d5 <== NOT EXECUTED _HAssert( FALSE ); return( FALSE ); } next_size = _Heap_Block_size( next_block ); next_is_free = next_block < the_heap->final && 49d20: b1cb cmpal %a3,%a0 <== NOT EXECUTED 49d22: 6204 bhis 49d28 <_Heap_Free+0x88> <== NOT EXECUTED 49d24: 4283 clrl %d3 <== NOT EXECUTED 49d26: 600e bras 49d36 <_Heap_Free+0x96> <== NOT EXECUTED 49d28: 7001 moveq #1,%d0 <== NOT EXECUTED 49d2a: c0b3 5804 andl %a3@(00000004,%d5:l),%d0 <== NOT EXECUTED 49d2e: 7201 moveq #1,%d1 <== NOT EXECUTED 49d30: b380 eorl %d1,%d0 <== NOT EXECUTED 49d32: 4283 clrl %d3 <== NOT EXECUTED 49d34: 1600 moveb %d0,%d3 <== NOT EXECUTED !_Heap_Is_prev_used(_Heap_Block_at(next_block, next_size)); if ( !_Heap_Is_prev_used( the_block ) ) { 49d36: 7001 moveq #1,%d0 <== NOT EXECUTED 49d38: c480 andl %d0,%d2 <== NOT EXECUTED 49d3a: 4a02 tstb %d2 <== NOT EXECUTED 49d3c: 6666 bnes 49da4 <_Heap_Free+0x104> <== NOT EXECUTED uint32_t const prev_size = the_block->prev_size; 49d3e: 2212 movel %a2@,%d1 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 49d40: 95c1 subal %d1,%a2 <== NOT EXECUTED 49d42: b3ca cmpal %a2,%a1 <== NOT EXECUTED 49d44: 6200 00d4 bhiw 49e1a <_Heap_Free+0x17a> <== NOT EXECUTED 49d48: b1ca cmpal %a2,%a0 <== NOT EXECUTED 49d4a: 54c0 scc %d0 <== NOT EXECUTED 49d4c: 49c0 extbl %d0 <== NOT EXECUTED 49d4e: 4480 negl %d0 <== NOT EXECUTED Heap_Block *const prev_block = _Heap_Block_at( the_block, -prev_size ); if ( !_Heap_Is_block_in( the_heap, prev_block ) ) { 49d50: 4a00 tstb %d0 <== NOT EXECUTED 49d52: 6700 00c6 beqw 49e1a <_Heap_Free+0x17a> <== NOT EXECUTED return( FALSE ); } /* As we always coalesce free blocks, the block that preceedes prev_block must have been used. */ if ( !_Heap_Is_prev_used ( prev_block) ) { 49d56: 7001 moveq #1,%d0 <== NOT EXECUTED 49d58: c0aa 0004 andl %a2@(4),%d0 <== NOT EXECUTED 49d5c: 4a00 tstb %d0 <== NOT EXECUTED 49d5e: 6700 00ba beqw 49e1a <_Heap_Free+0x17a> <== NOT EXECUTED _HAssert( FALSE ); return( FALSE ); } if ( next_is_free ) { /* coalesce both */ 49d62: 4a03 tstb %d3 <== NOT EXECUTED 49d64: 6728 beqs 49d8e <_Heap_Free+0xee> <== NOT EXECUTED uint32_t const size = the_size + prev_size + next_size; _Heap_Block_remove( next_block ); stats->free_blocks -= 1; 49d66: 53ac 0038 subql #1,%a4@(56) <== NOT EXECUTED _HAssert( FALSE ); return( FALSE ); } if ( next_is_free ) { /* coalesce both */ uint32_t const size = the_size + prev_size + next_size; 49d6a: 2004 movel %d4,%d0 <== NOT EXECUTED 49d6c: d085 addl %d5,%d0 <== NOT EXECUTED 49d6e: d081 addl %d1,%d0 <== NOT EXECUTED ) { Heap_Block *block = the_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; 49d70: 226b 000c moveal %a3@(12),%a1 <== NOT EXECUTED Heap_Block *the_block ) { Heap_Block *block = the_block; Heap_Block *next = block->next; 49d74: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED _Heap_Block_remove( next_block ); stats->free_blocks -= 1; prev_block->size = size | HEAP_PREV_USED; 49d78: 7201 moveq #1,%d1 <== NOT EXECUTED 49d7a: 8280 orl %d0,%d1 <== NOT EXECUTED next_block = _Heap_Block_at( prev_block, size ); _HAssert(!_Heap_Is_prev_used( next_block)); next_block->prev_size = size; 49d7c: 2580 0800 movel %d0,%a2@(00000000,%d0:l) <== NOT EXECUTED if ( next_is_free ) { /* coalesce both */ uint32_t const size = the_size + prev_size + next_size; _Heap_Block_remove( next_block ); stats->free_blocks -= 1; prev_block->size = size | HEAP_PREV_USED; 49d80: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED Heap_Block *prev = block->prev; prev->next = next; next->prev = prev; 49d84: 2149 000c movel %a1,%a0@(12) <== NOT EXECUTED { Heap_Block *block = the_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; prev->next = next; 49d88: 2348 0008 movel %a0,%a1@(8) <== NOT EXECUTED 49d8c: 607c bras 49e0a <_Heap_Free+0x16a> <== NOT EXECUTED next_block = _Heap_Block_at( prev_block, size ); _HAssert(!_Heap_Is_prev_used( next_block)); next_block->prev_size = size; } else { /* coalesce prev */ uint32_t const size = the_size + prev_size; 49d8e: 2004 movel %d4,%d0 <== NOT EXECUTED 49d90: d081 addl %d1,%d0 <== NOT EXECUTED prev_block->size = size | HEAP_PREV_USED; 49d92: 7201 moveq #1,%d1 <== NOT EXECUTED 49d94: 8280 orl %d0,%d1 <== NOT EXECUTED next_block->size &= ~HEAP_PREV_USED; next_block->prev_size = size; 49d96: 2680 movel %d0,%a3@ <== NOT EXECUTED next_block->prev_size = size; } else { /* coalesce prev */ uint32_t const size = the_size + prev_size; prev_block->size = size | HEAP_PREV_USED; next_block->size &= ~HEAP_PREV_USED; 49d98: 70fe moveq #-2,%d0 <== NOT EXECUTED _HAssert(!_Heap_Is_prev_used( next_block)); next_block->prev_size = size; } else { /* coalesce prev */ uint32_t const size = the_size + prev_size; prev_block->size = size | HEAP_PREV_USED; 49d9a: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED next_block->size &= ~HEAP_PREV_USED; 49d9e: c1ab 0004 andl %d0,%a3@(4) <== NOT EXECUTED 49da2: 6066 bras 49e0a <_Heap_Free+0x16a> <== NOT EXECUTED next_block->prev_size = size; } } else if ( next_is_free ) { /* coalesce next */ 49da4: 4a03 tstb %d3 <== NOT EXECUTED 49da6: 672a beqs 49dd2 <_Heap_Free+0x132> <== NOT EXECUTED Heap_Block *new_block ) { Heap_Block *block = old_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; 49da8: 206b 000c moveal %a3@(12),%a0 <== NOT EXECUTED Heap_Block *old_block, Heap_Block *new_block ) { Heap_Block *block = old_block; Heap_Block *next = block->next; 49dac: 226b 0008 moveal %a3@(8),%a1 <== NOT EXECUTED uint32_t const size = the_size + next_size; 49db0: 2005 movel %d5,%d0 <== NOT EXECUTED Heap_Block *prev = block->prev; block = new_block; block->next = next; 49db2: 2549 0008 movel %a1,%a2@(8) <== NOT EXECUTED 49db6: d084 addl %d4,%d0 <== NOT EXECUTED _Heap_Block_replace( next_block, the_block ); the_block->size = size | HEAP_PREV_USED; 49db8: 7201 moveq #1,%d1 <== NOT EXECUTED block->prev = prev; 49dba: 2548 000c movel %a0,%a2@(12) <== NOT EXECUTED 49dbe: 8280 orl %d0,%d1 <== NOT EXECUTED next_block = _Heap_Block_at( the_block, size ); next_block->prev_size = size; 49dc0: 2580 0800 movel %d0,%a2@(00000000,%d0:l) <== NOT EXECUTED } } else if ( next_is_free ) { /* coalesce next */ uint32_t const size = the_size + next_size; _Heap_Block_replace( next_block, the_block ); the_block->size = size | HEAP_PREV_USED; 49dc4: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED next->prev = prev->next = block; 49dc8: 214a 0008 movel %a2,%a0@(8) <== NOT EXECUTED 49dcc: 234a 000c movel %a2,%a1@(12) <== NOT EXECUTED 49dd0: 6038 bras 49e0a <_Heap_Free+0x16a> <== NOT EXECUTED } else { /* no coalesce */ /* Add 'the_block' to the head of the free blocks list as it tends to produce less fragmentation than adding to the tail. */ _Heap_Block_insert_after( _Heap_Head( the_heap), the_block ); the_block->size = the_size | HEAP_PREV_USED; 49dd2: 7001 moveq #1,%d0 <== NOT EXECUTED 49dd4: 8084 orl %d4,%d0 <== NOT EXECUTED ) { Heap_Block *prev = prev_block; Heap_Block *block = the_block; Heap_Block *next = prev->next; 49dd6: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 49dda: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED next_block->size &= ~HEAP_PREV_USED; 49dde: 72fe moveq #-2,%d1 <== NOT EXECUTED 49de0: c3ab 0004 andl %d1,%a3@(4) <== NOT EXECUTED next_block->prev_size = the_size; 49de4: 2684 movel %d4,%a3@ <== NOT EXECUTED stats->free_blocks += 1; 49de6: 202c 0038 movel %a4@(56),%d0 <== NOT EXECUTED block->next = next; 49dea: 2548 0008 movel %a0,%a2@(8) <== NOT EXECUTED 49dee: 5280 addql #1,%d0 <== NOT EXECUTED block->prev = prev; 49df0: 254c 000c movel %a4,%a2@(12) <== NOT EXECUTED next->prev = prev->next = block; 49df4: 294a 0008 movel %a2,%a4@(8) <== NOT EXECUTED 49df8: 214a 000c movel %a2,%a0@(12) <== NOT EXECUTED 49dfc: 2940 0038 movel %d0,%a4@(56) <== NOT EXECUTED if ( stats->max_free_blocks < stats->free_blocks ) 49e00: b0ac 003c cmpl %a4@(60),%d0 <== NOT EXECUTED 49e04: 6304 blss 49e0a <_Heap_Free+0x16a> <== NOT EXECUTED stats->max_free_blocks = stats->free_blocks; 49e06: 2940 003c movel %d0,%a4@(60) <== NOT EXECUTED } stats->used_blocks -= 1; stats->free_size += the_size; 49e0a: d9ac 0030 addl %d4,%a4@(48) <== NOT EXECUTED stats->frees += 1; 49e0e: 52ac 0050 addql #1,%a4@(80) <== NOT EXECUTED stats->free_blocks += 1; if ( stats->max_free_blocks < stats->free_blocks ) stats->max_free_blocks = stats->free_blocks; } stats->used_blocks -= 1; 49e12: 53ac 0040 subql #1,%a4@(64) <== NOT EXECUTED stats->free_size += the_size; stats->frees += 1; 49e16: 7001 moveq #1,%d0 <== NOT EXECUTED 49e18: 6002 bras 49e1c <_Heap_Free+0x17c> <== NOT EXECUTED return( TRUE ); 49e1a: 4200 clrb %d0 <== NOT EXECUTED } 49e1c: 4cd7 1c3c moveml %sp@,%d2-%d5/%a2-%a4 <== NOT EXECUTED 49e20: 4e5e unlk %fp <== NOT EXECUTED 49e22: 4e75 rts 0005dde4 <_Heap_Get_free_information>: void _Heap_Get_free_information( Heap_Control *the_heap, Heap_Information *info ) { 5dde4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5dde8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5ddea: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 5ddee: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Heap_Block *the_block; Heap_Block *const tail = _Heap_Tail(the_heap); info->number = 0; 5ddf2: 4290 clrl %a0@ <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 5ddf4: 226a 0008 moveal %a2@(8),%a1 <== NOT EXECUTED info->largest = 0; 5ddf8: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED info->total = 0; 5ddfc: 42a8 0008 clrl %a0@(8) <== NOT EXECUTED 5de00: 601a bras 5de1c <_Heap_Get_free_information+0x38> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 5de02: 70fe moveq #-2,%d0 <== NOT EXECUTED 5de04: c0a9 0004 andl %a1@(4),%d0 <== NOT EXECUTED uint32_t const the_size = _Heap_Block_size(the_block); /* As we always coalesce free blocks, prev block must have been used. */ _HAssert(_Heap_Is_prev_used(the_block)); info->number++; 5de08: 5290 addql #1,%a0@ <== NOT EXECUTED info->total += the_size; 5de0a: d1a8 0008 addl %d0,%a0@(8) <== NOT EXECUTED if ( info->largest < the_size ) 5de0e: b0a8 0004 cmpl %a0@(4),%d0 <== NOT EXECUTED 5de12: 6304 blss 5de18 <_Heap_Get_free_information+0x34> <== NOT EXECUTED info->largest = the_size; 5de14: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED info->largest = 0; info->total = 0; for(the_block = _Heap_First(the_heap); the_block != tail; the_block = the_block->next) 5de18: 2269 0008 moveal %a1@(8),%a1 <== NOT EXECUTED info->number = 0; info->largest = 0; info->total = 0; for(the_block = _Heap_First(the_heap); the_block != tail; 5de1c: b5c9 cmpal %a1,%a2 <== NOT EXECUTED 5de1e: 66e2 bnes 5de02 <_Heap_Get_free_information+0x1e> <== NOT EXECUTED info->number++; info->total += the_size; if ( info->largest < the_size ) info->largest = the_size; } } 5de20: 245f moveal %sp@+,%a2 <== NOT EXECUTED 5de22: 4e5e unlk %fp <== NOT EXECUTED 5de24: 4e75 rts <== NOT EXECUTED ... 000668b0 <_Heap_Get_information>: Heap_Get_information_status _Heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) { 668b0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 668b4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 668b8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 668ba: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED Heap_Block *the_block = the_heap->start; Heap_Block *const end = the_heap->final; 668be: 2428 0024 movel %a0@(36),%d2 <== NOT EXECUTED _HAssert(the_block->prev_size == HEAP_PREV_USED); _HAssert(_Heap_Is_prev_used(the_block)); the_info->Free.number = 0; 668c2: 4291 clrl %a1@ <== NOT EXECUTED Heap_Get_information_status _Heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) { Heap_Block *the_block = the_heap->start; 668c4: 2068 0020 moveal %a0@(32),%a0 <== NOT EXECUTED _HAssert(the_block->prev_size == HEAP_PREV_USED); _HAssert(_Heap_Is_prev_used(the_block)); the_info->Free.number = 0; the_info->Free.total = 0; 668c8: 42a9 0008 clrl %a1@(8) <== NOT EXECUTED the_info->Free.largest = 0; 668cc: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED the_info->Used.number = 0; 668d0: 42a9 000c clrl %a1@(12) <== NOT EXECUTED the_info->Used.total = 0; 668d4: 42a9 0014 clrl %a1@(20) <== NOT EXECUTED the_info->Used.largest = 0; 668d8: 42a9 0010 clrl %a1@(16) <== NOT EXECUTED 668dc: 603c bras 6691a <_Heap_Get_information+0x6a> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 668de: 72fe moveq #-2,%d1 <== NOT EXECUTED 668e0: c2a8 0004 andl %a0@(4),%d1 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 668e4: d1c1 addal %d1,%a0 <== NOT EXECUTED while ( the_block != end ) { uint32_t const the_size = _Heap_Block_size(the_block); Heap_Block *const next_block = _Heap_Block_at(the_block, the_size); if ( _Heap_Is_prev_used(next_block) ) { 668e6: 7001 moveq #1,%d0 <== NOT EXECUTED 668e8: c0a8 0004 andl %a0@(4),%d0 <== NOT EXECUTED 668ec: 6714 beqs 66902 <_Heap_Get_information+0x52> <== NOT EXECUTED the_info->Used.number++; 668ee: 52a9 000c addql #1,%a1@(12) <== NOT EXECUTED the_info->Used.total += the_size; 668f2: d3a9 0014 addl %d1,%a1@(20) <== NOT EXECUTED if ( the_info->Used.largest < the_size ) 668f6: b2a9 0010 cmpl %a1@(16),%d1 <== NOT EXECUTED 668fa: 631e blss 6691a <_Heap_Get_information+0x6a> <== NOT EXECUTED the_info->Used.largest = the_size; 668fc: 2341 0010 movel %d1,%a1@(16) <== NOT EXECUTED 66900: 6018 bras 6691a <_Heap_Get_information+0x6a> <== NOT EXECUTED } else { the_info->Free.number++; 66902: 5291 addql #1,%a1@ <== NOT EXECUTED the_info->Free.total += the_size; 66904: d3a9 0008 addl %d1,%a1@(8) <== NOT EXECUTED if ( the_info->Free.largest < the_size ) 66908: b2a9 0004 cmpl %a1@(4),%d1 <== NOT EXECUTED 6690c: 6304 blss 66912 <_Heap_Get_information+0x62> <== NOT EXECUTED the_info->Free.largest = the_size; 6690e: 2341 0004 movel %d1,%a1@(4) <== NOT EXECUTED if ( the_size != next_block->prev_size ) 66912: b290 cmpl %a0@,%d1 <== NOT EXECUTED 66914: 6704 beqs 6691a <_Heap_Get_information+0x6a> <== NOT EXECUTED 66916: 7001 moveq #1,%d0 <== NOT EXECUTED 66918: 600a bras 66924 <_Heap_Get_information+0x74> <== NOT EXECUTED the_info->Free.largest = 0; the_info->Used.number = 0; the_info->Used.total = 0; the_info->Used.largest = 0; while ( the_block != end ) { 6691a: b488 cmpl %a0,%d2 <== NOT EXECUTED 6691c: 66c0 bnes 668de <_Heap_Get_information+0x2e> <== NOT EXECUTED } /* Handle the last dummy block. Don't consider this block to be "used" as client never allocated it. Make 'Used.total' contain this blocks' overhead though. */ the_info->Used.total += HEAP_OVERHEAD; 6691e: 4280 clrl %d0 <== NOT EXECUTED 66920: 50a9 0014 addql #8,%a1@(20) <== NOT EXECUTED return HEAP_GET_INFORMATION_SUCCESSFUL; } 66924: 241f movel %sp@+,%d2 <== NOT EXECUTED 66926: 4e5e unlk %fp <== NOT EXECUTED 66928: 4e75 rts <== NOT EXECUTED ... 00045d6c <_Heap_Initialize>: Heap_Control *the_heap, void *starting_address, size_t size, uint32_t page_size ) { 45d6c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 45d70: 48d7 043c moveml %d2-%d5/%a2,%sp@ <== NOT EXECUTED 45d74: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 45d78: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 45d7c: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 45d80: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED _H_uptr_t start; _H_uptr_t aligned_start; uint32_t overhead; Heap_Statistics *const stats = &the_heap->stats; if (page_size == 0) 45d84: 6606 bnes 45d8c <_Heap_Initialize+0x20> <== NOT EXECUTED 45d86: 143c 0004 moveb #4,%d2 <== NOT EXECUTED 45d8a: 600a bras 45d96 <_Heap_Initialize+0x2a> <== NOT EXECUTED uint32_t alignment ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; 45d8c: 7003 moveq #3,%d0 <== NOT EXECUTED 45d8e: c082 andl %d2,%d0 <== NOT EXECUTED *value = r ? v - r + a : v; 45d90: 6704 beqs 45d96 <_Heap_Initialize+0x2a> <== NOT EXECUTED 45d92: 5882 addql #4,%d2 <== NOT EXECUTED 45d94: 9480 subl %d0,%d2 <== NOT EXECUTED /* Calculate aligned_start so that aligned_start + HEAP_BLOCK_USER_OFFSET (value of user pointer) is aligned on 'page_size' boundary. Make sure resulting 'aligned_start' is not below 'starting_address'. */ start = _H_p2u(starting_address); aligned_start = start + HEAP_BLOCK_USER_OFFSET; 45d96: 2004 movel %d4,%d0 <== NOT EXECUTED 45d98: 5080 addql #8,%d0 <== NOT EXECUTED uint32_t alignment ) { _H_uptr_t v = *value; uint32_t a = alignment; _H_uptr_t r = v % a; 45d9a: 2a00 movel %d0,%d5 <== NOT EXECUTED 45d9c: 4c42 5001 remul %d2,%d1,%d5 <== NOT EXECUTED *value = r ? v - r + a : v; 45da0: 4a81 tstl %d1 <== NOT EXECUTED 45da2: 6704 beqs 45da8 <_Heap_Initialize+0x3c> <== NOT EXECUTED 45da4: d082 addl %d2,%d0 <== NOT EXECUTED 45da6: 9081 subl %d1,%d0 <== NOT EXECUTED _Heap_Align_up_uptr ( &aligned_start, page_size ); aligned_start -= HEAP_BLOCK_USER_OFFSET; 45da8: 2440 moveal %d0,%a2 <== NOT EXECUTED uint32_t alignment ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; 45daa: 7210 moveq #16,%d1 <== NOT EXECUTED 45dac: 518a subql #8,%a2 <== NOT EXECUTED 45dae: 4c42 1000 remul %d2,%d0,%d1 <== NOT EXECUTED *value = r ? v - r + a : v; 45db2: 4a80 tstl %d0 <== NOT EXECUTED 45db4: 6604 bnes 45dba <_Heap_Initialize+0x4e> <== NOT EXECUTED 45db6: 7210 moveq #16,%d1 <== NOT EXECUTED 45db8: 600a bras 45dc4 <_Heap_Initialize+0x58> <== NOT EXECUTED 45dba: 2202 movel %d2,%d1 <== NOT EXECUTED 45dbc: 0681 0000 0010 addil #16,%d1 <== NOT EXECUTED 45dc2: 9280 subl %d0,%d1 <== NOT EXECUTED /* Calculate 'the_size' -- size of the first block so that there is enough space at the end for the permanent last block. It is equal to 'size' minus total overhead aligned down to the nearest multiple of 'page_size'. */ overhead = HEAP_OVERHEAD + (aligned_start - start); 45dc4: 7008 moveq #8,%d0 <== NOT EXECUTED 45dc6: 9084 subl %d4,%d0 <== NOT EXECUTED 45dc8: d08a addl %a2,%d0 <== NOT EXECUTED 45dca: 2341 0014 movel %d1,%a1@(20) <== NOT EXECUTED if ( size < overhead ) 45dce: b083 cmpl %d3,%d0 <== NOT EXECUTED 45dd0: 6200 0096 bhiw 45e68 <_Heap_Initialize+0xfc> <== NOT EXECUTED return 0; /* Too small area for the heap */ the_size = size - overhead; 45dd4: 2203 movel %d3,%d1 <== NOT EXECUTED 45dd6: 9280 subl %d0,%d1 <== NOT EXECUTED 45dd8: 2001 movel %d1,%d0 <== NOT EXECUTED uint32_t *value, uint32_t alignment ) { uint32_t v = *value; *value = v - (v % alignment); 45dda: 2a01 movel %d1,%d5 <== NOT EXECUTED 45ddc: 4c42 5001 remul %d2,%d1,%d5 <== NOT EXECUTED 45de0: 9081 subl %d1,%d0 <== NOT EXECUTED 45de2: 2200 movel %d0,%d1 <== NOT EXECUTED _Heap_Align_down ( &the_size, page_size ); if ( the_size == 0 ) 45de4: 6700 0082 beqw 45e68 <_Heap_Initialize+0xfc> <== NOT EXECUTED return 0; /* Too small area for the heap */ the_heap->page_size = page_size; 45de8: 2342 0010 movel %d2,%a1@(16) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset ( void *base, uint32_t offset ) { return (void *)((char *)base + offset); 45dec: 41f2 0800 lea %a2@(00000000,%d0:l),%a0 <== NOT EXECUTED the_heap->end = starting_address + size; the_block = (Heap_Block *) aligned_start; the_block->prev_size = page_size; the_block->size = the_size | HEAP_PREV_USED; 45df0: 7001 moveq #1,%d0 <== NOT EXECUTED 45df2: 8081 orl %d1,%d0 <== NOT EXECUTED 45df4: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED stats->max_search = 0; stats->allocs = 0; stats->searches = 0; stats->frees = 0; stats->resizes = 0; stats->instance = instance++; 45df8: 2039 0005 6450 movel 56450 ,%d0 <== NOT EXECUTED the_heap->begin = starting_address; the_heap->end = starting_address + size; the_block = (Heap_Block *) aligned_start; the_block->prev_size = page_size; 45dfe: 2482 movel %d2,%a2@ <== NOT EXECUTED _HAssert(_Heap_Is_aligned_ptr(_Heap_User_area(the_block), page_size)); the_block = _Heap_Block_at( the_block, the_size ); the_heap->final = the_block; /* Permanent final block of the heap */ the_block->prev_size = the_size; /* Previous block is free */ the_block->size = page_size; 45e00: 2142 0004 movel %d2,%a0@(4) <== NOT EXECUTED stats->size = size; stats->free_size = the_size; stats->min_free_size = the_size; stats->free_blocks = 1; 45e04: 7401 moveq #1,%d2 <== NOT EXECUTED _HAssert(_Heap_Is_aligned(the_heap->min_block_size, page_size)); _HAssert(_Heap_Is_aligned_ptr(_Heap_User_area(the_block), page_size)); the_block = _Heap_Block_at( the_block, the_size ); the_heap->final = the_block; /* Permanent final block of the heap */ the_block->prev_size = the_size; /* Previous block is free */ 45e06: 2081 movel %d1,%a0@ <== NOT EXECUTED the_block = (Heap_Block *) aligned_start; the_block->prev_size = page_size; the_block->size = the_size | HEAP_PREV_USED; the_block->next = _Heap_Tail( the_heap ); 45e08: 2549 0008 movel %a1,%a2@(8) <== NOT EXECUTED the_block->prev = _Heap_Head( the_heap ); 45e0c: 2549 000c movel %a1,%a2@(12) <== NOT EXECUTED the_block->size = page_size; stats->size = size; stats->free_size = the_size; stats->min_free_size = the_size; stats->free_blocks = 1; 45e10: 2342 0038 movel %d2,%a1@(56) <== NOT EXECUTED stats->max_free_blocks = 1; 45e14: 2342 003c movel %d2,%a1@(60) <== NOT EXECUTED stats->searches = 0; stats->frees = 0; stats->resizes = 0; stats->instance = instance++; return ( the_size - HEAP_BLOCK_USED_OVERHEAD ); 45e18: 2401 movel %d1,%d2 <== NOT EXECUTED 45e1a: 5982 subql #4,%d2 <== NOT EXECUTED the_block = _Heap_Block_at( the_block, the_size ); the_heap->final = the_block; /* Permanent final block of the heap */ the_block->prev_size = the_size; /* Previous block is free */ the_block->size = page_size; stats->size = size; 45e1c: 2343 002c movel %d3,%a1@(44) <== NOT EXECUTED if ( the_size == 0 ) return 0; /* Too small area for the heap */ the_heap->page_size = page_size; the_heap->begin = starting_address; the_heap->end = starting_address + size; 45e20: d684 addl %d4,%d3 <== NOT EXECUTED stats->max_search = 0; stats->allocs = 0; stats->searches = 0; stats->frees = 0; stats->resizes = 0; stats->instance = instance++; 45e22: 2340 0028 movel %d0,%a1@(40) <== NOT EXECUTED 45e26: 5280 addql #1,%d0 <== NOT EXECUTED the_heap->final = the_block; /* Permanent final block of the heap */ the_block->prev_size = the_size; /* Previous block is free */ the_block->size = page_size; stats->size = size; stats->free_size = the_size; 45e28: 2341 0030 movel %d1,%a1@(48) <== NOT EXECUTED stats->min_free_size = the_size; 45e2c: 2341 0034 movel %d1,%a1@(52) <== NOT EXECUTED stats->free_blocks = 1; stats->max_free_blocks = 1; stats->used_blocks = 0; 45e30: 42a9 0040 clrl %a1@(64) <== NOT EXECUTED stats->max_search = 0; 45e34: 42a9 0044 clrl %a1@(68) <== NOT EXECUTED stats->allocs = 0; 45e38: 42a9 0048 clrl %a1@(72) <== NOT EXECUTED stats->searches = 0; 45e3c: 42a9 004c clrl %a1@(76) <== NOT EXECUTED stats->frees = 0; 45e40: 42a9 0050 clrl %a1@(80) <== NOT EXECUTED stats->resizes = 0; 45e44: 42a9 0054 clrl %a1@(84) <== NOT EXECUTED if ( the_size == 0 ) return 0; /* Too small area for the heap */ the_heap->page_size = page_size; the_heap->begin = starting_address; the_heap->end = starting_address + size; 45e48: 2343 001c movel %d3,%a1@(28) <== NOT EXECUTED stats->max_search = 0; stats->allocs = 0; stats->searches = 0; stats->frees = 0; stats->resizes = 0; stats->instance = instance++; 45e4c: 23c0 0005 6450 movel %d0,56450 <== NOT EXECUTED _Heap_Align_down ( &the_size, page_size ); if ( the_size == 0 ) return 0; /* Too small area for the heap */ the_heap->page_size = page_size; the_heap->begin = starting_address; 45e52: 2344 0018 movel %d4,%a1@(24) <== NOT EXECUTED the_block->prev_size = page_size; the_block->size = the_size | HEAP_PREV_USED; the_block->next = _Heap_Tail( the_heap ); the_block->prev = _Heap_Head( the_heap ); _Heap_Head(the_heap)->next = the_block; 45e56: 234a 0008 movel %a2,%a1@(8) <== NOT EXECUTED _Heap_Tail(the_heap)->prev = the_block; 45e5a: 234a 000c movel %a2,%a1@(12) <== NOT EXECUTED the_heap->start = the_block; 45e5e: 234a 0020 movel %a2,%a1@(32) <== NOT EXECUTED _HAssert(_Heap_Is_aligned(the_heap->page_size, CPU_ALIGNMENT)); _HAssert(_Heap_Is_aligned(the_heap->min_block_size, page_size)); _HAssert(_Heap_Is_aligned_ptr(_Heap_User_area(the_block), page_size)); the_block = _Heap_Block_at( the_block, the_size ); the_heap->final = the_block; /* Permanent final block of the heap */ 45e62: 2348 0024 movel %a0,%a1@(36) <== NOT EXECUTED 45e66: 6002 bras 45e6a <_Heap_Initialize+0xfe> <== NOT EXECUTED stats->searches = 0; stats->frees = 0; stats->resizes = 0; stats->instance = instance++; return ( the_size - HEAP_BLOCK_USED_OVERHEAD ); 45e68: 4282 clrl %d2 <== NOT EXECUTED } 45e6a: 2002 movel %d2,%d0 <== NOT EXECUTED 45e6c: 4cd7 043c moveml %sp@,%d2-%d5/%a2 <== NOT EXECUTED 45e70: 4e5e unlk %fp <== NOT EXECUTED 45e72: 4e75 rts 000536dc <_Heap_Resize_block>: void *starting_address, size_t size, uint32_t *old_mem_size, uint32_t *avail_mem_size ) { 536dc: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 536e0: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 536e4: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED uint32_t prev_used_flag; Heap_Statistics *const stats = &the_heap->stats; uint32_t const min_block_size = the_heap->min_block_size; uint32_t const page_size = the_heap->page_size; *old_mem_size = 0; 536e8: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED Heap_Block *next_next_block; uint32_t old_block_size; uint32_t old_user_size; uint32_t prev_used_flag; Heap_Statistics *const stats = &the_heap->stats; uint32_t const min_block_size = the_heap->min_block_size; 536ec: 2a2b 0014 movel %a3@(20),%d5 <== NOT EXECUTED uint32_t const page_size = the_heap->page_size; 536f0: 242b 0010 movel %a3@(16),%d2 <== NOT EXECUTED *old_mem_size = 0; *avail_mem_size = 0; 536f4: 286e 0018 moveal %fp@(24),%a4 <== NOT EXECUTED uint32_t prev_used_flag; Heap_Statistics *const stats = &the_heap->stats; uint32_t const min_block_size = the_heap->min_block_size; uint32_t const page_size = the_heap->page_size; *old_mem_size = 0; 536f8: 4290 clrl %a0@ <== NOT EXECUTED void *starting_address, size_t size, uint32_t *old_mem_size, uint32_t *avail_mem_size ) { 536fa: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED Heap_Statistics *const stats = &the_heap->stats; uint32_t const min_block_size = the_heap->min_block_size; uint32_t const page_size = the_heap->page_size; *old_mem_size = 0; *avail_mem_size = 0; 536fe: 4294 clrl %a4@ <== NOT EXECUTED /* The address passed could be greater than the block address plus * HEAP_BLOCK_USER_OFFSET as _Heap_Allocate_aligned() may produce such user * pointers. To get rid of this offset we need to align the address down * to the nearest 'page_size' boundary. */ _Heap_Align_down_uptr ( &addr, the_heap->page_size ); *the_block = (Heap_Block *)(addr - HEAP_BLOCK_USER_OFFSET); 53700: 2444 moveal %d4,%a2 <== NOT EXECUTED 53702: 2604 movel %d4,%d3 <== NOT EXECUTED void *starting_address, size_t size, uint32_t *old_mem_size, uint32_t *avail_mem_size ) { 53704: 2a6e 0010 moveal %fp@(16),%a5 <== NOT EXECUTED RTEMS_INLINE_ROUTINE bool _Heap_Is_block_in ( Heap_Control *the_heap, Heap_Block *the_block ) { return _Addresses_Is_in_range( the_block, the_heap->start, the_heap->final ); 53708: 206b 0024 moveal %a3@(36),%a0 <== NOT EXECUTED 5370c: 222b 0020 movel %a3@(32),%d1 <== NOT EXECUTED /* The address passed could be greater than the block address plus * HEAP_BLOCK_USER_OFFSET as _Heap_Allocate_aligned() may produce such user * pointers. To get rid of this offset we need to align the address down * to the nearest 'page_size' boundary. */ _Heap_Align_down_uptr ( &addr, the_heap->page_size ); *the_block = (Heap_Block *)(addr - HEAP_BLOCK_USER_OFFSET); 53710: 518a subql #8,%a2 <== NOT EXECUTED 53712: 4c6b 3000 0010 remul %a3@(16),%d0,%d3 <== NOT EXECUTED 53718: 95c0 subal %d0,%a2 <== NOT EXECUTED 5371a: b28a cmpl %a2,%d1 <== NOT EXECUTED 5371c: 6200 0156 bhiw 53874 <_Heap_Resize_block+0x198> <== NOT EXECUTED 53720: b1ca cmpal %a2,%a0 <== NOT EXECUTED 53722: 54c0 scc %d0 <== NOT EXECUTED 53724: 49c0 extbl %d0 <== NOT EXECUTED 53726: 4480 negl %d0 <== NOT EXECUTED *old_mem_size = 0; *avail_mem_size = 0; _Heap_Start_of_block(the_heap, starting_address, &the_block); _HAssert(_Heap_Is_block_in(the_heap, the_block)); if (!_Heap_Is_block_in(the_heap, the_block)) 53728: 4a00 tstb %d0 <== NOT EXECUTED 5372a: 6700 0148 beqw 53874 <_Heap_Resize_block+0x198> <== NOT EXECUTED return HEAP_RESIZE_FATAL_ERROR; prev_used_flag = the_block->size & HEAP_PREV_USED; 5372e: 2e2a 0004 movel %a2@(4),%d7 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 53732: 7cfe moveq #-2,%d6 <== NOT EXECUTED 53734: cc87 andl %d7,%d6 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 53736: 43f2 6800 lea %a2@(00000000,%d6:l),%a1 <== NOT EXECUTED 5373a: b289 cmpl %a1,%d1 <== NOT EXECUTED 5373c: 6200 0136 bhiw 53874 <_Heap_Resize_block+0x198> <== NOT EXECUTED 53740: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 53742: 54c0 scc %d0 <== NOT EXECUTED 53744: 49c0 extbl %d0 <== NOT EXECUTED 53746: 4480 negl %d0 <== NOT EXECUTED old_block_size = _Heap_Block_size(the_block); next_block = _Heap_Block_at(the_block, old_block_size); _HAssert(_Heap_Is_block_in(the_heap, next_block)); _HAssert(_Heap_Is_prev_used(next_block)); if ( !_Heap_Is_block_in(the_heap, next_block) || 53748: 4a00 tstb %d0 <== NOT EXECUTED 5374a: 6700 0128 beqw 53874 <_Heap_Resize_block+0x198> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used ( Heap_Block *the_block ) { return (the_block->size & HEAP_PREV_USED); 5374e: 2229 0004 movel %a1@(4),%d1 <== NOT EXECUTED 53752: 7001 moveq #1,%d0 <== NOT EXECUTED 53754: c081 andl %d1,%d0 <== NOT EXECUTED 53756: 4a00 tstb %d0 <== NOT EXECUTED 53758: 6700 011a beqw 53874 <_Heap_Resize_block+0x198> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 5375c: 76fe moveq #-2,%d3 <== NOT EXECUTED 5375e: c681 andl %d1,%d3 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 53760: 49f1 3800 lea %a1@(00000000,%d3:l),%a4 <== NOT EXECUTED !_Heap_Is_prev_used(next_block)) return HEAP_RESIZE_FATAL_ERROR; next_block_size = _Heap_Block_size(next_block); next_next_block = _Heap_Block_at(next_block, next_block_size); next_is_used = (next_block == the_heap->final) || 53764: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 53766: 6604 bnes 5376c <_Heap_Resize_block+0x90> <== NOT EXECUTED 53768: 7201 moveq #1,%d1 <== NOT EXECUTED 5376a: 6006 bras 53772 <_Heap_Resize_block+0x96> <== NOT EXECUTED 5376c: 7201 moveq #1,%d1 <== NOT EXECUTED 5376e: c2ac 0004 andl %a4@(4),%d1 <== NOT EXECUTED _Heap_Is_prev_used(next_next_block); /* See _Heap_Size_of_user_area() source for explanations */ old_user_size = _Addresses_Subtract(next_block, starting_address) 53772: 2049 moveal %a1,%a0 <== NOT EXECUTED 53774: 91c4 subal %d4,%a0 <== NOT EXECUTED 53776: 2008 movel %a0,%d0 <== NOT EXECUTED + HEAP_BLOCK_HEADER_OFFSET; *old_mem_size = old_user_size; 53778: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED next_next_block = _Heap_Block_at(next_block, next_block_size); next_is_used = (next_block == the_heap->final) || _Heap_Is_prev_used(next_next_block); /* See _Heap_Size_of_user_area() source for explanations */ old_user_size = _Addresses_Subtract(next_block, starting_address) 5377c: 5880 addql #4,%d0 <== NOT EXECUTED _Heap_Start_of_block(the_heap, starting_address, &the_block); _HAssert(_Heap_Is_block_in(the_heap, the_block)); if (!_Heap_Is_block_in(the_heap, the_block)) return HEAP_RESIZE_FATAL_ERROR; prev_used_flag = the_block->size & HEAP_PREV_USED; 5377e: 7801 moveq #1,%d4 <== NOT EXECUTED /* See _Heap_Size_of_user_area() source for explanations */ old_user_size = _Addresses_Subtract(next_block, starting_address) + HEAP_BLOCK_HEADER_OFFSET; *old_mem_size = old_user_size; 53780: 2080 movel %d0,%a0@ <== NOT EXECUTED _Heap_Start_of_block(the_heap, starting_address, &the_block); _HAssert(_Heap_Is_block_in(the_heap, the_block)); if (!_Heap_Is_block_in(the_heap, the_block)) return HEAP_RESIZE_FATAL_ERROR; prev_used_flag = the_block->size & HEAP_PREV_USED; 53782: c887 andl %d7,%d4 <== NOT EXECUTED !_Heap_Is_prev_used(next_block)) return HEAP_RESIZE_FATAL_ERROR; next_block_size = _Heap_Block_size(next_block); next_next_block = _Heap_Block_at(next_block, next_block_size); next_is_used = (next_block == the_heap->final) || 53784: 1d41 ffff moveb %d1,%fp@(-1) <== NOT EXECUTED old_user_size = _Addresses_Subtract(next_block, starting_address) + HEAP_BLOCK_HEADER_OFFSET; *old_mem_size = old_user_size; if (size > old_user_size) { 53788: b08d cmpl %a5,%d0 <== NOT EXECUTED 5378a: 6446 bccs 537d2 <_Heap_Resize_block+0xf6> <== NOT EXECUTED /* Need to extend the block: allocate part of the next block and then merge 'the_block' and allocated block together. */ if (next_is_used) /* Next block is in use, -- no way to extend */ 5378c: 4a01 tstb %d1 <== NOT EXECUTED 5378e: 6600 00e8 bnew 53878 <_Heap_Resize_block+0x19c> <== NOT EXECUTED return HEAP_RESIZE_UNSATISFIED; else { uint32_t add_block_size = size - old_user_size; 53792: 9bc0 subal %d0,%a5 <== NOT EXECUTED uint32_t alignment ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; 53794: 2e0d movel %a5,%d7 <== NOT EXECUTED 53796: 200d movel %a5,%d0 <== NOT EXECUTED 53798: 4c42 7001 remul %d2,%d1,%d7 <== NOT EXECUTED *value = r ? v - r + a : v; 5379c: 4a81 tstl %d1 <== NOT EXECUTED 5379e: 6704 beqs 537a4 <_Heap_Resize_block+0xc8> <== NOT EXECUTED 537a0: d082 addl %d2,%d0 <== NOT EXECUTED 537a2: 9081 subl %d1,%d0 <== NOT EXECUTED 537a4: ba80 cmpl %d0,%d5 <== NOT EXECUTED 537a6: 6302 blss 537aa <_Heap_Resize_block+0xce> <== NOT EXECUTED 537a8: 2005 movel %d5,%d0 <== NOT EXECUTED _Heap_Align_up(&add_block_size, page_size); if (add_block_size < min_block_size) add_block_size = min_block_size; if (add_block_size > next_block_size) 537aa: b680 cmpl %d0,%d3 <== NOT EXECUTED 537ac: 6500 00ca bcsw 53878 <_Heap_Resize_block+0x19c> <== NOT EXECUTED return HEAP_RESIZE_UNSATISFIED; /* Next block is too small or none. */ add_block_size = 537b0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 537b2: 2f09 movel %a1,%sp@- <== NOT EXECUTED 537b4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 537b6: 4eb9 0004 5eb2 jsr 45eb2 <_Heap_Block_allocate> <== NOT EXECUTED _Heap_Block_allocate(the_heap, next_block, add_block_size); /* Merge two subsequent blocks */ the_block->size = (old_block_size + add_block_size) | prev_used_flag; 537bc: d086 addl %d6,%d0 <== NOT EXECUTED 537be: 8084 orl %d4,%d0 <== NOT EXECUTED 537c0: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED --stats->used_blocks; 537c4: 53ab 0040 subql #1,%a3@(64) <== NOT EXECUTED 537c8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 537ce: 6000 009c braw 5386c <_Heap_Resize_block+0x190> <== NOT EXECUTED } } else { /* Calculate how much memory we could free */ uint32_t free_block_size = old_user_size - size; 537d2: 908d subl %a5,%d0 <== NOT EXECUTED uint32_t *value, uint32_t alignment ) { uint32_t v = *value; *value = v - (v % alignment); 537d4: 2200 movel %d0,%d1 <== NOT EXECUTED 537d6: 4c42 1007 remul %d2,%d7,%d1 <== NOT EXECUTED 537da: 2400 movel %d0,%d2 <== NOT EXECUTED 537dc: 9487 subl %d7,%d2 <== NOT EXECUTED _Heap_Align_down(&free_block_size, page_size); if (free_block_size > 0) { 537de: 6700 008c beqw 5386c <_Heap_Resize_block+0x190> <== NOT EXECUTED /* To free some memory the block should be shortened so that it can can hold 'size' user bytes and still remain not shorter than 'min_block_size'. */ uint32_t new_block_size = old_block_size - free_block_size; 537e2: 2206 movel %d6,%d1 <== NOT EXECUTED 537e4: 9282 subl %d2,%d1 <== NOT EXECUTED if (new_block_size < min_block_size) { 537e6: ba81 cmpl %d1,%d5 <== NOT EXECUTED 537e8: 630a blss 537f4 <_Heap_Resize_block+0x118> <== NOT EXECUTED uint32_t delta = min_block_size - new_block_size; 537ea: 2005 movel %d5,%d0 <== NOT EXECUTED 537ec: 9081 subl %d1,%d0 <== NOT EXECUTED _HAssert(free_block_size >= delta); free_block_size -= delta; 537ee: 9480 subl %d0,%d2 <== NOT EXECUTED if (free_block_size == 0) { 537f0: 677a beqs 5386c <_Heap_Resize_block+0x190> <== NOT EXECUTED ++stats->resizes; return HEAP_RESIZE_SUCCESSFUL; } new_block_size += delta; 537f2: d280 addl %d0,%d1 <== NOT EXECUTED _HAssert(new_block_size >= min_block_size); _HAssert(new_block_size + free_block_size == old_block_size); _HAssert(_Heap_Is_aligned(new_block_size, page_size)); _HAssert(_Heap_Is_aligned(free_block_size, page_size)); if (!next_is_used) { 537f4: 4a2e ffff tstb %fp@(-1) <== NOT EXECUTED 537f8: 663e bnes 53838 <_Heap_Resize_block+0x15c> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 537fa: 41f2 1800 lea %a2@(00000000,%d1:l),%a0 <== NOT EXECUTED Heap_Block *const new_next_block = _Heap_Block_at(the_block, new_block_size); uint32_t const new_next_block_size = next_block_size + free_block_size; _HAssert(_Heap_Is_block_in(the_heap, next_next_block)); the_block->size = new_block_size | prev_used_flag; 537fe: 8284 orl %d4,%d1 <== NOT EXECUTED 53800: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED Heap_Block *new_block ) { Heap_Block *block = old_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; 53804: 2469 000c moveal %a1@(12),%a2 <== NOT EXECUTED if (!next_is_used) { /* Extend the next block to the low addresses by 'free_block_size' */ Heap_Block *const new_next_block = _Heap_Block_at(the_block, new_block_size); uint32_t const new_next_block_size = next_block_size + free_block_size; 53808: 2002 movel %d2,%d0 <== NOT EXECUTED 5380a: d083 addl %d3,%d0 <== NOT EXECUTED _HAssert(_Heap_Is_block_in(the_heap, next_next_block)); the_block->size = new_block_size | prev_used_flag; new_next_block->size = new_next_block_size | HEAP_PREV_USED; 5380c: 7201 moveq #1,%d1 <== NOT EXECUTED 5380e: 8280 orl %d0,%d1 <== NOT EXECUTED next_next_block->prev_size = new_next_block_size; 53810: 2880 movel %d0,%a4@ <== NOT EXECUTED Heap_Block *old_block, Heap_Block *new_block ) { Heap_Block *block = old_block; Heap_Block *next = block->next; 53812: 2269 0008 moveal %a1@(8),%a1 <== NOT EXECUTED _Heap_Block_at(the_block, new_block_size); uint32_t const new_next_block_size = next_block_size + free_block_size; _HAssert(_Heap_Is_block_in(the_heap, next_next_block)); the_block->size = new_block_size | prev_used_flag; new_next_block->size = new_next_block_size | HEAP_PREV_USED; 53816: 2141 0004 movel %d1,%a0@(4) <== NOT EXECUTED next_next_block->prev_size = new_next_block_size; _Heap_Block_replace(next_block, new_next_block); the_heap->stats.free_size += free_block_size; 5381a: d5ab 0030 addl %d2,%a3@(48) <== NOT EXECUTED *avail_mem_size = new_next_block_size - HEAP_BLOCK_USED_OVERHEAD; 5381e: 286e 0018 moveal %fp@(24),%a4 <== NOT EXECUTED Heap_Block *prev = block->prev; block = new_block; block->next = next; 53822: 2149 0008 movel %a1,%a0@(8) <== NOT EXECUTED 53826: 5980 subql #4,%d0 <== NOT EXECUTED block->prev = prev; 53828: 214a 000c movel %a2,%a0@(12) <== NOT EXECUTED 5382c: 2880 movel %d0,%a4@ <== NOT EXECUTED next->prev = prev->next = block; 5382e: 2348 000c movel %a0,%a1@(12) <== NOT EXECUTED 53832: 2548 0008 movel %a0,%a2@(8) <== NOT EXECUTED 53836: 6034 bras 5386c <_Heap_Resize_block+0x190> <== NOT EXECUTED } else if (free_block_size >= min_block_size) { 53838: ba82 cmpl %d2,%d5 <== NOT EXECUTED 5383a: 6230 bhis 5386c <_Heap_Resize_block+0x190> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 5383c: 41f2 1800 lea %a2@(00000000,%d1:l),%a0 <== NOT EXECUTED /* Split the block into 2 used parts, then free the second one. */ the_block->size = new_block_size | prev_used_flag; 53840: 8284 orl %d4,%d1 <== NOT EXECUTED 53842: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED next_block = _Heap_Block_at(the_block, new_block_size); next_block->size = free_block_size | HEAP_PREV_USED; 53846: 7001 moveq #1,%d0 <== NOT EXECUTED ++stats->used_blocks; /* We have created used block */ --stats->frees; /* Don't count next call in stats */ _Heap_Free(the_heap, _Heap_User_area(next_block)); 53848: 4868 0008 pea %a0@(8) <== NOT EXECUTED } else if (free_block_size >= min_block_size) { /* Split the block into 2 used parts, then free the second one. */ the_block->size = new_block_size | prev_used_flag; next_block = _Heap_Block_at(the_block, new_block_size); next_block->size = free_block_size | HEAP_PREV_USED; 5384c: 8082 orl %d2,%d0 <== NOT EXECUTED ++stats->used_blocks; /* We have created used block */ --stats->frees; /* Don't count next call in stats */ _Heap_Free(the_heap, _Heap_User_area(next_block)); *avail_mem_size = free_block_size - HEAP_BLOCK_USED_OVERHEAD; 5384e: 5982 subql #4,%d2 <== NOT EXECUTED } else if (free_block_size >= min_block_size) { /* Split the block into 2 used parts, then free the second one. */ the_block->size = new_block_size | prev_used_flag; next_block = _Heap_Block_at(the_block, new_block_size); next_block->size = free_block_size | HEAP_PREV_USED; 53850: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED ++stats->used_blocks; /* We have created used block */ 53854: 52ab 0040 addql #1,%a3@(64) <== NOT EXECUTED --stats->frees; /* Don't count next call in stats */ 53858: 53ab 0050 subql #1,%a3@(80) <== NOT EXECUTED _Heap_Free(the_heap, _Heap_User_area(next_block)); 5385c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5385e: 4eb9 0004 9ca0 jsr 49ca0 <_Heap_Free> <== NOT EXECUTED *avail_mem_size = free_block_size - HEAP_BLOCK_USED_OVERHEAD; 53864: 206e 0018 moveal %fp@(24),%a0 <== NOT EXECUTED 53868: 508f addql #8,%sp <== NOT EXECUTED 5386a: 2082 movel %d2,%a0@ <== NOT EXECUTED } } } ++stats->resizes; 5386c: 52ab 0054 addql #1,%a3@(84) <== NOT EXECUTED 53870: 4280 clrl %d0 <== NOT EXECUTED 53872: 6006 bras 5387a <_Heap_Resize_block+0x19e> <== NOT EXECUTED return HEAP_RESIZE_SUCCESSFUL; 53874: 7002 moveq #2,%d0 <== NOT EXECUTED 53876: 6002 bras 5387a <_Heap_Resize_block+0x19e> <== NOT EXECUTED 53878: 7001 moveq #1,%d0 <== NOT EXECUTED } 5387a: 4cee 3cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a5 <== NOT EXECUTED 53880: 4e5e unlk %fp <== NOT EXECUTED 53882: 4e75 rts 00053884 <_Heap_Size_of_user_area>: bool _Heap_Size_of_user_area( Heap_Control *the_heap, void *starting_address, size_t *size ) { 53884: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 53888: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 5388c: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 53890: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED Heap_Block *the_block; Heap_Block *next_block; uint32_t the_size; if ( !_Addresses_Is_in_range( 53894: 2428 0024 movel %a0@(36),%d2 <== NOT EXECUTED 53898: 2228 0020 movel %a0@(32),%d1 <== NOT EXECUTED 5389c: b283 cmpl %d3,%d1 <== NOT EXECUTED 5389e: 625c bhis 538fc <_Heap_Size_of_user_area+0x78> <== NOT EXECUTED 538a0: b483 cmpl %d3,%d2 <== NOT EXECUTED 538a2: 54c0 scc %d0 <== NOT EXECUTED 538a4: 49c0 extbl %d0 <== NOT EXECUTED 538a6: 4480 negl %d0 <== NOT EXECUTED 538a8: 4a00 tstb %d0 <== NOT EXECUTED 538aa: 6750 beqs 538fc <_Heap_Size_of_user_area+0x78> <== NOT EXECUTED /* The address passed could be greater than the block address plus * HEAP_BLOCK_USER_OFFSET as _Heap_Allocate_aligned() may produce such user * pointers. To get rid of this offset we need to align the address down * to the nearest 'page_size' boundary. */ _Heap_Align_down_uptr ( &addr, the_heap->page_size ); *the_block = (Heap_Block *)(addr - HEAP_BLOCK_USER_OFFSET); 538ac: 2803 movel %d3,%d4 <== NOT EXECUTED 538ae: 4c68 4000 0010 remul %a0@(16),%d0,%d4 <== NOT EXECUTED 538b4: 2043 moveal %d3,%a0 <== NOT EXECUTED 538b6: 5188 subql #8,%a0 <== NOT EXECUTED 538b8: 91c0 subal %d0,%a0 <== NOT EXECUTED 538ba: b288 cmpl %a0,%d1 <== NOT EXECUTED 538bc: 623e bhis 538fc <_Heap_Size_of_user_area+0x78> <== NOT EXECUTED 538be: b488 cmpl %a0,%d2 <== NOT EXECUTED 538c0: 54c0 scc %d0 <== NOT EXECUTED 538c2: 49c0 extbl %d0 <== NOT EXECUTED 538c4: 4480 negl %d0 <== NOT EXECUTED return( FALSE ); _Heap_Start_of_block( the_heap, starting_address, &the_block ); _HAssert(_Heap_Is_block_in( the_heap, the_block )); if ( !_Heap_Is_block_in( the_heap, the_block ) ) 538c6: 4a00 tstb %d0 <== NOT EXECUTED 538c8: 6732 beqs 538fc <_Heap_Size_of_user_area+0x78> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 538ca: 70fe moveq #-2,%d0 <== NOT EXECUTED 538cc: c0a8 0004 andl %a0@(4),%d0 <== NOT EXECUTED 538d0: 43f0 0800 lea %a0@(00000000,%d0:l),%a1 <== NOT EXECUTED 538d4: b289 cmpl %a1,%d1 <== NOT EXECUTED 538d6: 6224 bhis 538fc <_Heap_Size_of_user_area+0x78> <== NOT EXECUTED 538d8: b489 cmpl %a1,%d2 <== NOT EXECUTED 538da: 54c0 scc %d0 <== NOT EXECUTED 538dc: 49c0 extbl %d0 <== NOT EXECUTED 538de: 4480 negl %d0 <== NOT EXECUTED the_size = _Heap_Block_size( the_block ); next_block = _Heap_Block_at( the_block, the_size ); _HAssert(_Heap_Is_block_in( the_heap, next_block )); _HAssert(_Heap_Is_prev_used( next_block )); if ( 538e0: 4a00 tstb %d0 <== NOT EXECUTED 538e2: 6718 beqs 538fc <_Heap_Size_of_user_area+0x78> <== NOT EXECUTED 538e4: 7001 moveq #1,%d0 <== NOT EXECUTED 538e6: c0a9 0004 andl %a1@(4),%d0 <== NOT EXECUTED 538ea: 4a00 tstb %d0 <== NOT EXECUTED 538ec: 670e beqs 538fc <_Heap_Size_of_user_area+0x78> <== NOT EXECUTED and then add correction equal to the offset of the 'size' field of the 'Heap_Block' structure. The correction is due to the fact that 'prev_size' field of the next block is actually used as user accessible area of 'the_block'. */ *size = _Addresses_Subtract ( next_block, starting_address ) 538ee: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 538f2: 93c3 subal %d3,%a1 <== NOT EXECUTED 538f4: 5889 addql #4,%a1 <== NOT EXECUTED 538f6: 2089 movel %a1,%a0@ <== NOT EXECUTED 538f8: 7001 moveq #1,%d0 <== NOT EXECUTED 538fa: 6002 bras 538fe <_Heap_Size_of_user_area+0x7a> <== NOT EXECUTED + HEAP_BLOCK_HEADER_OFFSET; return( TRUE ); 538fc: 4200 clrb %d0 <== NOT EXECUTED } 538fe: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 53902: 4e5e unlk %fp <== NOT EXECUTED 53904: 4e75 rts <== NOT EXECUTED ... 0004cdd0 <_Heap_Walk>: bool _Heap_Walk( Heap_Control *the_heap, int source, bool do_dump ) { 4cdd0: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 4cdd4: 48d7 3c7c moveml %d2-%d6/%a2-%a5,%sp@ <== NOT EXECUTED 4cdd8: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 4cddc: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED Heap_Block *the_block = the_heap->start; 4cde0: 246c 0020 moveal %a4@(32),%a2 <== NOT EXECUTED Heap_Block *const end = the_heap->final; 4cde4: 2c2c 0024 movel %a4@(36),%d6 <== NOT EXECUTED /* if ( !_System_state_Is_up( _System_state_Get() ) ) return TRUE; */ if (source < 0) 4cde8: 4a84 tstl %d4 <== NOT EXECUTED 4cdea: 6c04 bges 4cdf0 <_Heap_Walk+0x20> <== NOT EXECUTED source = the_heap->stats.instance; 4cdec: 282c 0028 movel %a4@(40),%d4 <== NOT EXECUTED /* * Handle the 1st block */ if (!_Heap_Is_prev_used(the_block)) { 4cdf0: 7001 moveq #1,%d0 <== NOT EXECUTED 4cdf2: c0aa 0004 andl %a2@(4),%d0 <== NOT EXECUTED 4cdf6: 4a00 tstb %d0 <== NOT EXECUTED 4cdf8: 6704 beqs 4cdfe <_Heap_Walk+0x2e> <== NOT EXECUTED 4cdfa: 4282 clrl %d2 <== NOT EXECUTED 4cdfc: 6012 bras 4ce10 <_Heap_Walk+0x40> <== NOT EXECUTED printk("PASS: %d !HEAP_PREV_USED flag of 1st block isn't set\n", source); 4cdfe: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ce00: 7401 moveq #1,%d2 <== NOT EXECUTED 4ce02: 4879 0005 77fe pea 577fe <== NOT EXECUTED 4ce08: 4eb9 0004 522e jsr 4522e <== NOT EXECUTED 4ce0e: 508f addql #8,%sp <== NOT EXECUTED error = 1; } if (the_block->prev_size != the_heap->page_size) { 4ce10: 202c 0010 movel %a4@(16),%d0 <== NOT EXECUTED 4ce14: b092 cmpl %a2@,%d0 <== NOT EXECUTED 4ce16: 6700 0106 beqw 4cf1e <_Heap_Walk+0x14e> <== NOT EXECUTED printk("PASS: %d !prev_size of 1st block isn't page_size\n", source); 4ce1a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ce1c: 7401 moveq #1,%d2 <== NOT EXECUTED 4ce1e: 4879 0005 7834 pea 57834 <== NOT EXECUTED 4ce24: 4eb9 0004 522e jsr 4522e <== NOT EXECUTED 4ce2a: 508f addql #8,%sp <== NOT EXECUTED 4ce2c: 6000 00f0 braw 4cf1e <_Heap_Walk+0x14e> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 4ce30: 262a 0004 movel %a2@(4),%d3 <== NOT EXECUTED 4ce34: 7afe moveq #-2,%d5 <== NOT EXECUTED 4ce36: ca83 andl %d3,%d5 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 4ce38: 47f2 5800 lea %a2@(00000000,%d5:l),%a3 <== NOT EXECUTED RTEMS_INLINE_ROUTINE bool _Heap_Is_block_in ( Heap_Control *the_heap, Heap_Block *the_block ) { return _Addresses_Is_in_range( the_block, the_heap->start, the_heap->final ); 4ce3c: 202c 0024 movel %a4@(36),%d0 <== NOT EXECUTED 4ce40: b7ec 0020 cmpal %a4@(32),%a3 <== NOT EXECUTED 4ce44: 650c bcss 4ce52 <_Heap_Walk+0x82> <== NOT EXECUTED 4ce46: b08b cmpl %a3,%d0 <== NOT EXECUTED 4ce48: 54c0 scc %d0 <== NOT EXECUTED 4ce4a: 49c0 extbl %d0 <== NOT EXECUTED 4ce4c: 4480 negl %d0 <== NOT EXECUTED printk(" prev_size %d", the_block->prev_size); else printk(" (prev_size) %d", the_block->prev_size); } if (!_Heap_Is_block_in(the_heap, next_block)) { 4ce4e: 4a00 tstb %d0 <== NOT EXECUTED 4ce50: 661a bnes 4ce6c <_Heap_Walk+0x9c> <== NOT EXECUTED if (do_dump) printk("\n"); printk("PASS: %d !block %p is out of heap\n", source, next_block); 4ce52: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4ce54: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ce56: 4879 0005 7866 pea 57866 <== NOT EXECUTED 4ce5c: 4eb9 0004 522e jsr 4522e <== NOT EXECUTED 4ce62: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ce68: 6000 00c2 braw 4cf2c <_Heap_Walk+0x15c> <== NOT EXECUTED error = 1; break; } if (!_Heap_Is_prev_used(next_block)) { 4ce6c: 7001 moveq #1,%d0 <== NOT EXECUTED 4ce6e: c0ab 0004 andl %a3@(4),%d0 <== NOT EXECUTED 4ce72: 4a00 tstb %d0 <== NOT EXECUTED 4ce74: 6666 bnes 4cedc <_Heap_Walk+0x10c> <== NOT EXECUTED if (do_dump) printk( " prev %p next %p", the_block->prev, the_block->next); if (_Heap_Block_size(the_block) != next_block->prev_size) { 4ce76: ba93 cmpl %a3@,%d5 <== NOT EXECUTED 4ce78: 670e beqs 4ce88 <_Heap_Walk+0xb8> <== NOT EXECUTED if (do_dump) printk("\n"); printk("PASS: %d !front and back sizes don't match", source); 4ce7a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ce7c: 7401 moveq #1,%d2 <== NOT EXECUTED 4ce7e: 4879 0005 7889 pea 57889 <== NOT EXECUTED 4ce84: 4e95 jsr %a5@ <== NOT EXECUTED 4ce86: 508f addql #8,%sp <== NOT EXECUTED error = 1; } if (!prev_used) { 4ce88: 7001 moveq #1,%d0 <== NOT EXECUTED 4ce8a: c680 andl %d0,%d3 <== NOT EXECUTED 4ce8c: 4a03 tstb %d3 <== NOT EXECUTED 4ce8e: 661c bnes 4ceac <_Heap_Walk+0xdc> <== NOT EXECUTED if (do_dump || error) printk("\n"); 4ce90: 4a82 tstl %d2 <== NOT EXECUTED 4ce92: 670a beqs 4ce9e <_Heap_Walk+0xce> <== NOT EXECUTED 4ce94: 4879 0005 72fd pea 572fd <== NOT EXECUTED 4ce9a: 4e95 jsr %a5@ <== NOT EXECUTED 4ce9c: 588f addql #4,%sp <== NOT EXECUTED printk("PASS: %d !two consecutive blocks are free", source); 4ce9e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4cea0: 7401 moveq #1,%d2 <== NOT EXECUTED 4cea2: 4879 0005 78b4 pea 578b4 <== NOT EXECUTED 4cea8: 4e95 jsr %a5@ <== NOT EXECUTED 4ceaa: 508f addql #8,%sp <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 4ceac: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 4ceb0: 6004 bras 4ceb6 <_Heap_Walk+0xe6> <== NOT EXECUTED } { /* Check if 'the_block' is in the free block list */ Heap_Block* block = _Heap_First(the_heap); while(block != the_block && block != tail) block = block->next; 4ceb2: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED error = 1; } { /* Check if 'the_block' is in the free block list */ Heap_Block* block = _Heap_First(the_heap); while(block != the_block && block != tail) 4ceb6: b5c8 cmpal %a0,%a2 <== NOT EXECUTED 4ceb8: 6722 beqs 4cedc <_Heap_Walk+0x10c> <== NOT EXECUTED 4ceba: b9c8 cmpal %a0,%a4 <== NOT EXECUTED 4cebc: 66f4 bnes 4ceb2 <_Heap_Walk+0xe2> <== NOT EXECUTED block = block->next; if(block != the_block) { if (do_dump || error) printk("\n"); 4cebe: 4a82 tstl %d2 <== NOT EXECUTED 4cec0: 670a beqs 4cecc <_Heap_Walk+0xfc> <== NOT EXECUTED 4cec2: 4879 0005 72fd pea 572fd <== NOT EXECUTED 4cec8: 4e95 jsr %a5@ <== NOT EXECUTED 4ceca: 588f addql #4,%sp <== NOT EXECUTED printk("PASS: %d !the_block not in the free list", source); 4cecc: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4cece: 7401 moveq #1,%d2 <== NOT EXECUTED 4ced0: 4879 0005 78de pea 578de <== NOT EXECUTED 4ced6: 4e95 jsr %a5@ <== NOT EXECUTED 4ced8: 508f addql #8,%sp <== NOT EXECUTED 4ceda: 6004 bras 4cee0 <_Heap_Walk+0x110> <== NOT EXECUTED error = 1; } } } if (do_dump || error) printk("\n"); 4cedc: 4a82 tstl %d2 <== NOT EXECUTED 4cede: 670a beqs 4ceea <_Heap_Walk+0x11a> <== NOT EXECUTED 4cee0: 4879 0005 72fd pea 572fd <== NOT EXECUTED 4cee6: 4e95 jsr %a5@ <== NOT EXECUTED 4cee8: 588f addql #4,%sp <== NOT EXECUTED if (the_size < the_heap->min_block_size) { 4ceea: baac 0014 cmpl %a4@(20),%d5 <== NOT EXECUTED 4ceee: 640a bccs 4cefa <_Heap_Walk+0x12a> <== NOT EXECUTED printk("PASS: %d !block size is too small\n", source); 4cef0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4cef2: 4879 0005 7907 pea 57907 <== NOT EXECUTED 4cef8: 6012 bras 4cf0c <_Heap_Walk+0x13c> <== NOT EXECUTED error = 1; break; } if (!_Heap_Is_aligned( the_size, the_heap->page_size)) { 4cefa: 4c6c 5000 0010 remul %a4@(16),%d0,%d5 <== NOT EXECUTED 4cf00: 4a80 tstl %d0 <== NOT EXECUTED 4cf02: 6712 beqs 4cf16 <_Heap_Walk+0x146> <== NOT EXECUTED printk("PASS: %d !block size is misaligned\n", source); 4cf04: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4cf06: 4879 0005 792a pea 5792a <== NOT EXECUTED 4cf0c: 4eb9 0004 522e jsr 4522e <== NOT EXECUTED 4cf12: 508f addql #8,%sp <== NOT EXECUTED 4cf14: 6016 bras 4cf2c <_Heap_Walk+0x15c> <== NOT EXECUTED error = 1; } if (++passes > (do_dump ? 10 : 0) && error) 4cf16: 4a82 tstl %d2 <== NOT EXECUTED 4cf18: 6612 bnes 4cf2c <_Heap_Walk+0x15c> <== NOT EXECUTED break; 4cf1a: 244b moveal %a3,%a2 <== NOT EXECUTED 4cf1c: 6006 bras 4cf24 <_Heap_Walk+0x154> <== NOT EXECUTED error = 1; } } } if (do_dump || error) printk("\n"); 4cf1e: 4bf9 0004 522e lea 4522e ,%a5 <== NOT EXECUTED if (the_block->prev_size != the_heap->page_size) { printk("PASS: %d !prev_size of 1st block isn't page_size\n", source); error = 1; } while ( the_block != end ) { 4cf24: bc8a cmpl %a2,%d6 <== NOT EXECUTED 4cf26: 6600 ff08 bnew 4ce30 <_Heap_Walk+0x60> <== NOT EXECUTED 4cf2a: 601a bras 4cf46 <_Heap_Walk+0x176> <== NOT EXECUTED the_block = next_block; } if (the_block != end) { printk("PASS: %d !last block address isn't equal to 'final' %p %p\n", 4cf2c: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4cf2e: 7401 moveq #1,%d2 <== NOT EXECUTED 4cf30: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4cf32: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4cf34: 4879 0005 794e pea 5794e <== NOT EXECUTED 4cf3a: 4eb9 0004 522e jsr 4522e <== NOT EXECUTED 4cf40: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED source, the_block, end); error = 1; } if (_Heap_Block_size(the_block) != the_heap->page_size) { 4cf46: 202c 0010 movel %a4@(16),%d0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 4cf4a: 72fe moveq #-2,%d1 <== NOT EXECUTED 4cf4c: c2aa 0004 andl %a2@(4),%d1 <== NOT EXECUTED 4cf50: b081 cmpl %d1,%d0 <== NOT EXECUTED 4cf52: 671a beqs 4cf6e <_Heap_Walk+0x19e> <== NOT EXECUTED printk("PASS: %d !last block's size isn't page_size (%d != %d)\n", source, 4cf54: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4cf56: 7401 moveq #1,%d2 <== NOT EXECUTED 4cf58: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4cf5a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4cf5c: 4879 0005 7989 pea 57989 <== NOT EXECUTED 4cf62: 4eb9 0004 522e jsr 4522e <== NOT EXECUTED 4cf68: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4cf6e: 4a82 tstl %d2 <== NOT EXECUTED 4cf70: 56c0 sne %d0 <== NOT EXECUTED if(do_dump && error) _Internal_error_Occurred( INTERNAL_ERROR_CORE, TRUE, 0xffff0000 ); return error; } 4cf72: 4cee 3c7c ffdc moveml %fp@(-36),%d2-%d6/%a2-%a5 <== NOT EXECUTED 4cf78: 4e5e unlk %fp <== NOT EXECUTED 4cf7a: 4480 negl %d0 <== NOT EXECUTED 4cf7c: 4e75 rts <== NOT EXECUTED ... 00045584 <_IO_Initialize_all_drivers>: * * Output Parameters: NONE */ void _IO_Initialize_all_drivers( void ) { 45584: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45588: 2f0a movel %a2,%sp@- <== NOT EXECUTED rtems_device_major_number major; for ( major=0 ; major < _IO_Number_of_drivers ; major ++ ) (void) rtems_io_initialize( major, 0, NULL ); 4558a: 45f9 0004 99e4 lea 499e4 ,%a2 <== NOT EXECUTED * * Output Parameters: NONE */ void _IO_Initialize_all_drivers( void ) { 45590: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45592: 4282 clrl %d2 <== NOT EXECUTED 45594: 6010 bras 455a6 <_IO_Initialize_all_drivers+0x22> <== NOT EXECUTED rtems_device_major_number major; for ( major=0 ; major < _IO_Number_of_drivers ; major ++ ) (void) rtems_io_initialize( major, 0, NULL ); 45596: 42a7 clrl %sp@- <== NOT EXECUTED 45598: 42a7 clrl %sp@- <== NOT EXECUTED 4559a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4559c: 4e92 jsr %a2@ <== NOT EXECUTED void _IO_Initialize_all_drivers( void ) { rtems_device_major_number major; for ( major=0 ; major < _IO_Number_of_drivers ; major ++ ) 4559e: 5282 addql #1,%d2 <== NOT EXECUTED 455a0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 455a6: b4b9 0005 6f1e cmpl 56f1e <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 455ac: 65e8 bcss 45596 <_IO_Initialize_all_drivers+0x12> <== NOT EXECUTED (void) rtems_io_initialize( major, 0, NULL ); } 455ae: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 455b2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 455b6: 4e5e unlk %fp <== NOT EXECUTED 455b8: 4e75 rts 000455ba <_IO_Manager_initialization>: void _IO_Manager_initialization( rtems_driver_address_table *driver_table, uint32_t drivers_in_table, uint32_t number_of_drivers ) { 455ba: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 455be: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 455c2: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 455c6: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 455ca: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED /* * If the user claims there are less drivers than are actually in * the table, then let's just go with the table's count. */ if ( number_of_drivers <= drivers_in_table ) 455ce: ba84 cmpl %d4,%d5 <== NOT EXECUTED 455d0: 6442 bccs 45614 <_IO_Manager_initialization+0x5a> <== NOT EXECUTED /* * The application requested extra slots in the driver table, so we * have to allocate a new driver table and copy theirs to it. */ _IO_Driver_address_table = (rtems_driver_address_table *) 455d2: 2004 movel %d4,%d0 <== NOT EXECUTED 455d4: 2404 movel %d4,%d2 <== NOT EXECUTED 455d6: e788 lsll #3,%d0 <== NOT EXECUTED 455d8: eb8a lsll #5,%d2 <== NOT EXECUTED 455da: 9480 subl %d0,%d2 <== NOT EXECUTED 455dc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 455de: 4eb9 0004 7e08 jsr 47e08 <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED _Workspace_Allocate_or_fatal_error( sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); _IO_Number_of_drivers = number_of_drivers; memset( 455e4: 2f02 movel %d2,%sp@- <== NOT EXECUTED _IO_Driver_address_table, 0, sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); for ( index = 0 ; index < drivers_in_table ; index++ ) _IO_Driver_address_table[index] = driver_table[index]; 455e6: 4283 clrl %d3 <== NOT EXECUTED 455e8: 4282 clrl %d2 <== NOT EXECUTED _Workspace_Allocate_or_fatal_error( sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); _IO_Number_of_drivers = number_of_drivers; memset( 455ea: 42a7 clrl %sp@- <== NOT EXECUTED _IO_Driver_address_table, 0, sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); for ( index = 0 ; index < drivers_in_table ; index++ ) 455ec: 47f9 0004 b3f4 lea 4b3f4 ,%a3 <== NOT EXECUTED _Workspace_Allocate_or_fatal_error( sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); _IO_Number_of_drivers = number_of_drivers; memset( 455f2: 2f00 movel %d0,%sp@- <== NOT EXECUTED _IO_Driver_address_table = (rtems_driver_address_table *) _Workspace_Allocate_or_fatal_error( sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); _IO_Number_of_drivers = number_of_drivers; 455f4: 23c4 0005 6f1e movel %d4,56f1e <_IO_Number_of_drivers> <== NOT EXECUTED /* * The application requested extra slots in the driver table, so we * have to allocate a new driver table and copy theirs to it. */ _IO_Driver_address_table = (rtems_driver_address_table *) 455fa: 23c0 0005 6f22 movel %d0,56f22 <_IO_Driver_address_table> <== NOT EXECUTED _Workspace_Allocate_or_fatal_error( sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); _IO_Number_of_drivers = number_of_drivers; memset( 45600: 4eb9 0004 b464 jsr 4b464 <== NOT EXECUTED _IO_Driver_address_table, 0, sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); for ( index = 0 ; index < drivers_in_table ; index++ ) _IO_Driver_address_table[index] = driver_table[index]; 45606: 2479 0005 6f22 moveal 56f22 <_IO_Driver_address_table>,%a2 <== NOT EXECUTED 4560c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45612: 602a bras 4563e <_IO_Manager_initialization+0x84> <== NOT EXECUTED * If the maximum number of driver is the same as the number in the * table, then we do not have to copy the driver table. They can't * register any dynamically. */ if ( number_of_drivers == drivers_in_table ) { _IO_Driver_address_table = driver_table; 45614: 23cc 0005 6f22 movel %a4,56f22 <_IO_Driver_address_table> <== NOT EXECUTED _IO_Number_of_drivers = number_of_drivers; 4561a: 23c5 0005 6f1e movel %d5,56f1e <_IO_Number_of_drivers> <== NOT EXECUTED 45620: 6020 bras 45642 <_IO_Manager_initialization+0x88> <== NOT EXECUTED memset( _IO_Driver_address_table, 0, sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); for ( index = 0 ; index < drivers_in_table ; index++ ) 45622: 4878 0018 pea 18 <== NOT EXECUTED 45626: 4874 2800 pea %a4@(00000000,%d2:l) <== NOT EXECUTED 4562a: 4872 2800 pea %a2@(00000000,%d2:l) <== NOT EXECUTED 4562e: 4e93 jsr %a3@ <== NOT EXECUTED 45630: 5283 addql #1,%d3 <== NOT EXECUTED 45632: 0682 0000 0018 addil #24,%d2 <== NOT EXECUTED 45638: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4563e: ba83 cmpl %d3,%d5 <== NOT EXECUTED 45640: 62e0 bhis 45622 <_IO_Manager_initialization+0x68> <== NOT EXECUTED _IO_Driver_address_table[index] = driver_table[index]; number_of_drivers = drivers_in_table; } 45642: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 45648: 4e5e unlk %fp <== NOT EXECUTED 4564a: 4e75 rts 00045f9c <_ISR_Handler_initialization>: * * Output parameters: NONE */ void _ISR_Handler_initialization( void ) { 45f9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45fa0: 2f0a movel %a2,%sp@- <== NOT EXECUTED _ISR_Signals_to_thread_executing = FALSE; 45fa2: 4200 clrb %d0 <== NOT EXECUTED _ISR_Nest_level = 0; 45fa4: 42b9 0005 6d42 clrl 56d42 <_ISR_Nest_level> <== NOT EXECUTED #if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE) _ISR_Vector_table = _Workspace_Allocate_or_fatal_error( 45faa: 45f9 0004 7e08 lea 47e08 <_Workspace_Allocate_or_fatal_error>,%a2 <== NOT EXECUTED * Output parameters: NONE */ void _ISR_Handler_initialization( void ) { _ISR_Signals_to_thread_executing = FALSE; 45fb0: 13c0 0005 6df0 moveb %d0,56df0 <_ISR_Signals_to_thread_executing> <== NOT EXECUTED _ISR_Nest_level = 0; #if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE) _ISR_Vector_table = _Workspace_Allocate_or_fatal_error( 45fb6: 4878 0400 pea 400 <== NOT EXECUTED 45fba: 4e92 jsr %a2@ <== NOT EXECUTED _CPU_Initialize_vectors(); #if ( CPU_ALLOCATE_INTERRUPT_STACK == TRUE ) if ( !_Stack_Is_enough(_Configuration_Table->interrupt_stack_size) ) 45fbc: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED 45fc2: 2228 001c movel %a0@(28),%d1 <== NOT EXECUTED _ISR_Signals_to_thread_executing = FALSE; _ISR_Nest_level = 0; #if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE) _ISR_Vector_table = _Workspace_Allocate_or_fatal_error( 45fc6: 23c0 0005 6d1e movel %d0,56d1e <_ISR_Vector_table> <== NOT EXECUTED _CPU_Initialize_vectors(); #if ( CPU_ALLOCATE_INTERRUPT_STACK == TRUE ) if ( !_Stack_Is_enough(_Configuration_Table->interrupt_stack_size) ) 45fcc: 588f addql #4,%sp <== NOT EXECUTED 45fce: b2b9 0005 518e cmpl 5518e ,%d1 <== NOT EXECUTED 45fd4: 6410 bccs 45fe6 <_ISR_Handler_initialization+0x4a> <== NOT EXECUTED _Internal_error_Occurred( 45fd6: 4878 0005 pea 5 <== NOT EXECUTED 45fda: 4878 0001 pea 1 <== NOT EXECUTED 45fde: 42a7 clrl %sp@- <== NOT EXECUTED 45fe0: 4eb9 0004 5f40 jsr 45f40 <_Internal_error_Occurred> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_INTERRUPT_STACK_TOO_SMALL ); _CPU_Interrupt_stack_low = _Workspace_Allocate_or_fatal_error( 45fe6: 2f01 movel %d1,%sp@- <== NOT EXECUTED 45fe8: 4e92 jsr %a2@ <== NOT EXECUTED _Configuration_Table->interrupt_stack_size ); _CPU_Interrupt_stack_high = _Addresses_Add_offset( 45fea: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED 45ff0: 2200 movel %d0,%d1 <== NOT EXECUTED 45ff2: d2a8 001c addl %a0@(28),%d1 <== NOT EXECUTED #if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE ) _CPU_Install_interrupt_stack(); #endif } 45ff6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED _CPU_Interrupt_stack_low = _Workspace_Allocate_or_fatal_error( _Configuration_Table->interrupt_stack_size ); _CPU_Interrupt_stack_high = _Addresses_Add_offset( 45ffa: 588f addql #4,%sp <== NOT EXECUTED #if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE ) _CPU_Install_interrupt_stack(); #endif } 45ffc: 4e5e unlk %fp <== NOT EXECUTED _CPU_Interrupt_stack_low = _Workspace_Allocate_or_fatal_error( _Configuration_Table->interrupt_stack_size ); _CPU_Interrupt_stack_high = _Addresses_Add_offset( 45ffe: 23c1 0005 6c58 movel %d1,56c58 <_CPU_Interrupt_stack_high> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_INTERRUPT_STACK_TOO_SMALL ); _CPU_Interrupt_stack_low = _Workspace_Allocate_or_fatal_error( 46004: 23c0 0005 6cb4 movel %d0,56cb4 <_CPU_Interrupt_stack_low> <== NOT EXECUTED #if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE ) _CPU_Install_interrupt_stack(); #endif } 4600a: 4e75 rts 00045f40 <_Internal_error_Occurred>: void _Internal_error_Occurred( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 45f40: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45f44: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45f46: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 45f4a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45f4c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED _Internal_errors_What_happened.the_source = the_source; _Internal_errors_What_happened.is_internal = is_internal; _Internal_errors_What_happened.the_error = the_error; _User_extensions_Fatal( the_source, is_internal, the_error ); 45f50: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45f52: 4280 clrl %d0 <== NOT EXECUTED 45f54: 1002 moveb %d2,%d0 <== NOT EXECUTED void _Internal_error_Occurred( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 45f56: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED _Internal_errors_What_happened.the_source = the_source; _Internal_errors_What_happened.is_internal = is_internal; _Internal_errors_What_happened.the_error = the_error; _User_extensions_Fatal( the_source, is_internal, the_error ); 45f5a: 2f00 movel %d0,%sp@- <== NOT EXECUTED uint32_t the_error ) { _Internal_errors_What_happened.the_source = the_source; _Internal_errors_What_happened.is_internal = is_internal; 45f5c: 13c2 0005 6d52 moveb %d2,56d52 <_Internal_errors_What_happened+0x4> <== NOT EXECUTED _User_extensions_Fatal( the_source, is_internal, the_error ); _System_state_Set( SYSTEM_STATE_FAILED ); _CPU_Fatal_halt( the_error ); 45f62: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED _Internal_errors_What_happened.the_source = the_source; _Internal_errors_What_happened.is_internal = is_internal; _Internal_errors_What_happened.the_error = the_error; _User_extensions_Fatal( the_source, is_internal, the_error ); 45f68: 2f01 movel %d1,%sp@- <== NOT EXECUTED bool is_internal, uint32_t the_error ) { _Internal_errors_What_happened.the_source = the_source; 45f6a: 23c1 0005 6d4e movel %d1,56d4e <_Internal_errors_What_happened> <== NOT EXECUTED _Internal_errors_What_happened.is_internal = is_internal; _Internal_errors_What_happened.the_error = the_error; 45f70: 23c3 0005 6d54 movel %d3,56d54 <_Internal_errors_What_happened+0x6> <== NOT EXECUTED _User_extensions_Fatal( the_source, is_internal, the_error ); 45f76: 4eb9 0004 7a9e jsr 47a9e <_User_extensions_Fatal> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Set ( System_state_Codes state ) { _System_state_Current = state; 45f7c: 7005 moveq #5,%d0 <== NOT EXECUTED 45f7e: 23c0 0005 6e36 movel %d0,56e36 <_System_state_Current> <== NOT EXECUTED _System_state_Set( SYSTEM_STATE_FAILED ); _CPU_Fatal_halt( the_error ); 45f84: 40c0 movew %sr,%d0 <== NOT EXECUTED 45f86: 8082 orl %d2,%d0 <== NOT EXECUTED 45f88: 46c0 movew %d0,%sr <== NOT EXECUTED 45f8a: 2003 movel %d3,%d0 <== NOT EXECUTED 45f8c: 223c dead beef movel #-559038737,%d1 <== NOT EXECUTED 45f92: 4ac8 halt <== NOT EXECUTED 45f94: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45f9a: 60fe bras 45f9a <_Internal_error_Occurred+0x5a> <== NOT EXECUTED 00049628 <_Interrupt_Manager_initialization>: * * Output parameters: NONE */ void _Interrupt_Manager_initialization( void ) { 49628: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED } 4962c: 4e5e unlk %fp <== NOT EXECUTED 4962e: 4e75 rts 00054c10 <_Message_queue_Allocate>: * Output parameters: * the_message_queue - set if successful, NULL otherwise */ Message_queue_Control *_Message_queue_Allocate(void) { 54c10: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return (Message_queue_Control *) 54c14: 4879 0006 ca76 pea 6ca76 <_Message_queue_Information> <== NOT EXECUTED 54c1a: 4eb9 0005 1278 jsr 51278 <_Objects_Allocate> <== NOT EXECUTED _Objects_Allocate(&_Message_queue_Information); } 54c20: 4e5e unlk %fp <== NOT EXECUTED 54c22: 4e75 rts 00049630 <_Message_queue_Manager_initialization>: */ void _Message_queue_Manager_initialization( uint32_t maximum_message_queues ) { 49630: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49634: 4878 0004 pea 4 <== NOT EXECUTED 49638: 42a7 clrl %sp@- <== NOT EXECUTED 4963a: 4878 0088 pea 88 <== NOT EXECUTED 4963e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49642: 4878 0004 pea 4 <== NOT EXECUTED 49646: 4878 0002 pea 2 <== NOT EXECUTED 4964a: 4879 0005 6f9e pea 56f9e <_Message_queue_Information> <== NOT EXECUTED 49650: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED 49656: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_MESSAGE_QUEUE, _Message_queue_MP_Process_packet ); #endif } 4965c: 4e5e unlk %fp <== NOT EXECUTED 4965e: 4e75 rts 0004efb8 <_Message_queue_Translate_core_message_queue_return_code>: }; rtems_status_code _Message_queue_Translate_core_message_queue_return_code ( uint32_t status ) { 4efb8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( status > CORE_MESSAGE_QUEUE_STATUS_TIMEOUT ) return RTEMS_INTERNAL_ERROR; #endif return _Message_queue_Translate_core_return_code_[status]; } 4efbc: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED }; rtems_status_code _Message_queue_Translate_core_message_queue_return_code ( uint32_t status ) { 4efc0: 41f9 0006 0a5c lea 60a5c <_Message_queue_Translate_core_return_code_>,%a0 <== NOT EXECUTED if ( status > CORE_MESSAGE_QUEUE_STATUS_TIMEOUT ) return RTEMS_INTERNAL_ERROR; #endif return _Message_queue_Translate_core_return_code_[status]; } 4efc6: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4efca: 4e5e unlk %fp <== NOT EXECUTED 4efcc: 4e75 rts <== NOT EXECUTED ... 00049e24 <_Objects_API_maximum_class>: #include int _Objects_API_maximum_class( uint32_t api ) { 49e24: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49e28: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED switch (api) { 49e2c: 7202 moveq #2,%d1 <== NOT EXECUTED 49e2e: b280 cmpl %d0,%d1 <== NOT EXECUTED 49e30: 671c beqs 49e4e <_Objects_API_maximum_class+0x2a> <== NOT EXECUTED 49e32: 650a bcss 49e3e <_Objects_API_maximum_class+0x1a> <== NOT EXECUTED 49e34: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 49e38: b280 cmpl %d0,%d1 <== NOT EXECUTED 49e3a: 6622 bnes 49e5e <_Objects_API_maximum_class+0x3a> <== NOT EXECUTED 49e3c: 6014 bras 49e52 <_Objects_API_maximum_class+0x2e> <== NOT EXECUTED 49e3e: 7203 moveq #3,%d1 <== NOT EXECUTED 49e40: b280 cmpl %d0,%d1 <== NOT EXECUTED 49e42: 6712 beqs 49e56 <_Objects_API_maximum_class+0x32> <== NOT EXECUTED 49e44: 123c 0004 moveb #4,%d1 <== NOT EXECUTED 49e48: b280 cmpl %d0,%d1 <== NOT EXECUTED 49e4a: 6612 bnes 49e5e <_Objects_API_maximum_class+0x3a> <== NOT EXECUTED 49e4c: 600c bras 49e5a <_Objects_API_maximum_class+0x36> <== NOT EXECUTED 49e4e: 700a moveq #10,%d0 <== NOT EXECUTED 49e50: 600e bras 49e60 <_Objects_API_maximum_class+0x3c> <== NOT EXECUTED 49e52: 7002 moveq #2,%d0 <== NOT EXECUTED 49e54: 600a bras 49e60 <_Objects_API_maximum_class+0x3c> <== NOT EXECUTED 49e56: 700c moveq #12,%d0 <== NOT EXECUTED 49e58: 6006 bras 49e60 <_Objects_API_maximum_class+0x3c> <== NOT EXECUTED case OBJECTS_INTERNAL_API: return OBJECTS_INTERNAL_CLASSES_LAST; case OBJECTS_CLASSIC_API: return OBJECTS_RTEMS_CLASSES_LAST; case OBJECTS_POSIX_API: return OBJECTS_POSIX_CLASSES_LAST; 49e5a: 7008 moveq #8,%d0 <== NOT EXECUTED 49e5c: 6002 bras 49e60 <_Objects_API_maximum_class+0x3c> <== NOT EXECUTED case OBJECTS_ITRON_API: return OBJECTS_ITRON_CLASSES_LAST; 49e5e: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_NO_API: default: break; } return -1; } 49e60: 4e5e unlk %fp <== NOT EXECUTED 49e62: 4e75 rts 0004600c <_Objects_Allocate>: */ Objects_Control *_Objects_Allocate( Objects_Information *information ) { 4600c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 46010: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 46014: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED * If the application is using the optional manager stubs and * still attempts to create the object, the information block * should be all zeroed out because it is in the BSS. So let's * check that code for this manager is even present. */ if ( information->size == 0 ) 46018: 4aaa 0016 tstl %a2@(22) <== NOT EXECUTED 4601c: 6604 bnes 46022 <_Objects_Allocate+0x16> <== NOT EXECUTED 4601e: 93c9 subal %a1,%a1 <== NOT EXECUTED 46020: 6064 bras 46086 <_Objects_Allocate+0x7a> <== NOT EXECUTED /* * OK. The manager should be initialized and configured to have objects. * With any luck, it is safe to attempt to allocate an object. */ the_object = (Objects_Control *) _Chain_Get( &information->Inactive ); 46022: 240a movel %a2,%d2 <== NOT EXECUTED 46024: 0682 0000 001e addil #30,%d2 <== NOT EXECUTED 4602a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4602c: 47f9 0004 9a5c lea 49a5c <_Chain_Get>,%a3 <== NOT EXECUTED 46032: 4e93 jsr %a3@ <== NOT EXECUTED if ( information->auto_extend ) { 46034: 588f addql #4,%sp <== NOT EXECUTED /* * OK. The manager should be initialized and configured to have objects. * With any luck, it is safe to attempt to allocate an object. */ the_object = (Objects_Control *) _Chain_Get( &information->Inactive ); 46036: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( information->auto_extend ) { 46038: 4a2a 0010 tstb %a2@(16) <== NOT EXECUTED 4603c: 6748 beqs 46086 <_Objects_Allocate+0x7a> <== NOT EXECUTED /* * If the list is empty then we are out of objects and need to * extend information base. */ if ( !the_object ) { 4603e: 4a80 tstl %d0 <== NOT EXECUTED 46040: 6614 bnes 46056 <_Objects_Allocate+0x4a> <== NOT EXECUTED _Objects_Extend_information( information ); 46042: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46044: 4eb9 0004 60c0 jsr 460c0 <_Objects_Extend_information> <== NOT EXECUTED the_object = (Objects_Control *) _Chain_Get( &information->Inactive ); 4604a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4604c: 4e93 jsr %a3@ <== NOT EXECUTED } if ( the_object ) { 4604e: 508f addql #8,%sp <== NOT EXECUTED * extend information base. */ if ( !the_object ) { _Objects_Extend_information( information ); the_object = (Objects_Control *) _Chain_Get( &information->Inactive ); 46050: 2240 moveal %d0,%a1 <== NOT EXECUTED } if ( the_object ) { 46052: 4a80 tstl %d0 <== NOT EXECUTED 46054: 6730 beqs 46086 <_Objects_Allocate+0x7a> <== NOT EXECUTED uint32_t block; block = _Objects_Get_index( the_object->id ) - 46056: 2029 0008 movel %a1@(8),%d0 <== NOT EXECUTED 4605a: 222a 0006 movel %a2@(6),%d1 <== NOT EXECUTED 4605e: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 46064: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 4606a: 9081 subl %d1,%d0 <== NOT EXECUTED _Objects_Get_index( information->minimum_id ); block /= information->allocation_size; information->inactive_per_block[ block ]--; 4606c: 4c6a 0000 0012 remul %a2@(18),%d0,%d0 <== NOT EXECUTED 46072: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED information->inactive--; 46076: 322a 002a movew %a2@(42),%d1 <== NOT EXECUTED block = _Objects_Get_index( the_object->id ) - _Objects_Get_index( information->minimum_id ); block /= information->allocation_size; information->inactive_per_block[ block ]--; 4607a: e588 lsll #2,%d0 <== NOT EXECUTED information->inactive--; 4607c: 5381 subql #1,%d1 <== NOT EXECUTED block = _Objects_Get_index( the_object->id ) - _Objects_Get_index( information->minimum_id ); block /= information->allocation_size; information->inactive_per_block[ block ]--; 4607e: d1c0 addal %d0,%a0 <== NOT EXECUTED information->inactive--; 46080: 3541 002a movew %d1,%a2@(42) <== NOT EXECUTED block = _Objects_Get_index( the_object->id ) - _Objects_Get_index( information->minimum_id ); block /= information->allocation_size; information->inactive_per_block[ block ]--; 46084: 5390 subql #1,%a0@ <== NOT EXECUTED information->inactive--; } } return the_object; } 46086: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4608c: 4e5e unlk %fp <== NOT EXECUTED 4608e: 2009 movel %a1,%d0 <== NOT EXECUTED 46090: 4e75 rts <== NOT EXECUTED ... 00046094 <_Objects_Close>: void _Objects_Close( Objects_Information *information, Objects_Control *the_object ) { 46094: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46098: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4609a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4609e: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 460a2: 206a 001a moveal %a2@(26),%a0 <== NOT EXECUTED 460a6: 4280 clrl %d0 <== NOT EXECUTED 460a8: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED 460ac: 42b0 0c00 clrl %a0@(00000000,%d0:l:4) <== NOT EXECUTED _Objects_Invalidate_Id( information, the_object ); _Objects_Namespace_remove( information, the_object ); 460b0: 2d49 000c movel %a1,%fp@(12) <== NOT EXECUTED } 460b4: 245f moveal %sp@+,%a2 <== NOT EXECUTED 460b6: 4e5e unlk %fp <== NOT EXECUTED Objects_Control *the_object ) { _Objects_Invalidate_Id( information, the_object ); _Objects_Namespace_remove( information, the_object ); 460b8: 4ef9 0004 65a0 jmp 465a0 <_Objects_Namespace_remove> <== NOT EXECUTED ... 000460c0 <_Objects_Extend_information>: */ void _Objects_Extend_information( Objects_Information *information ) { 460c0: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 460c4: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 460c8: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_index( Objects_Id id ) { return (id >> OBJECTS_INDEX_START_BIT) & OBJECTS_INDEX_VALID_BITS; 460cc: 262b 0006 movel %a3@(6),%d3 <== NOT EXECUTED minimum_index = _Objects_Get_index( information->minimum_id ); index_base = minimum_index; block = 0; if ( information->maximum < minimum_index ) 460d0: 4281 clrl %d1 <== NOT EXECUTED 460d2: 0283 0000 ffff andil #65535,%d3 <== NOT EXECUTED 460d8: 322b 000e movew %a3@(14),%d1 <== NOT EXECUTED 460dc: b681 cmpl %d1,%d3 <== NOT EXECUTED 460de: 6308 blss 460e8 <_Objects_Extend_information+0x28> <== NOT EXECUTED 460e0: 2803 movel %d3,%d4 <== NOT EXECUTED 460e2: 4287 clrl %d7 <== NOT EXECUTED 460e4: 4285 clrl %d5 <== NOT EXECUTED 460e6: 6024 bras 4610c <_Objects_Extend_information+0x4c> <== NOT EXECUTED block_count = 0; else { block_count = information->maximum / information->allocation_size; 460e8: 202b 0012 movel %a3@(18),%d0 <== NOT EXECUTED 460ec: 2401 movel %d1,%d2 <== NOT EXECUTED 460ee: 4c40 2002 remul %d0,%d2,%d2 <== NOT EXECUTED 460f2: 2e02 movel %d2,%d7 <== NOT EXECUTED 460f4: 2803 movel %d3,%d4 <== NOT EXECUTED 460f6: 4285 clrl %d5 <== NOT EXECUTED 460f8: 600e bras 46108 <_Objects_Extend_information+0x48> <== NOT EXECUTED for ( ; block < block_count; block++ ) { if ( information->object_blocks[ block ] == NULL ) 460fa: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED 460fe: 4ab0 5c00 tstl %a0@(00000000,%d5:l:4) <== NOT EXECUTED 46102: 6708 beqs 4610c <_Objects_Extend_information+0x4c> <== NOT EXECUTED break; else index_base += information->allocation_size; 46104: d880 addl %d0,%d4 <== NOT EXECUTED if ( information->maximum < minimum_index ) block_count = 0; else { block_count = information->maximum / information->allocation_size; for ( ; block < block_count; block++ ) { 46106: 5285 addql #1,%d5 <== NOT EXECUTED 46108: b485 cmpl %d5,%d2 <== NOT EXECUTED 4610a: 62ee bhis 460fa <_Objects_Extend_information+0x3a> <== NOT EXECUTED /* * If the index_base is the maximum we need to grow the tables. */ if (index_base >= information->maximum ) { 4610c: b284 cmpl %d4,%d1 <== NOT EXECUTED 4610e: 6200 011c bhiw 4622c <_Objects_Extend_information+0x16c> <== NOT EXECUTED * Up the block count and maximum */ block_count++; maximum = information->maximum + information->allocation_size; 46112: d2ab 0012 addl %a3@(18),%d1 <== NOT EXECUTED /* * Up the block count and maximum */ block_count++; 46116: 2407 movel %d7,%d2 <== NOT EXECUTED 46118: 2001 movel %d1,%d0 <== NOT EXECUTED maximum = information->maximum + information->allocation_size; 4611a: 2d41 fff0 movel %d1,%fp@(-16) <== NOT EXECUTED /* * Up the block count and maximum */ block_count++; 4611e: 5282 addql #1,%d2 <== NOT EXECUTED 46120: 7203 moveq #3,%d1 <== NOT EXECUTED 46122: 4c02 1800 mulsl %d2,%d1 <== NOT EXECUTED 46126: d083 addl %d3,%d0 <== NOT EXECUTED /* * Allocate the tables and break it up. */ if ( information->auto_extend ) { 46128: 4a2b 0010 tstb %a3@(16) <== NOT EXECUTED 4612c: 6718 beqs 46146 <_Objects_Extend_information+0x86> <== NOT EXECUTED object_blocks = (void**) 4612e: d081 addl %d1,%d0 <== NOT EXECUTED 46130: e588 lsll #2,%d0 <== NOT EXECUTED 46132: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46134: 4eb9 0004 7df0 jsr 47df0 <_Workspace_Allocate> <== NOT EXECUTED block_count * (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) + ((maximum + minimum_index) * sizeof(Objects_Control *)) ); if ( !object_blocks ) 4613a: 588f addql #4,%sp <== NOT EXECUTED /* * Allocate the tables and break it up. */ if ( information->auto_extend ) { object_blocks = (void**) 4613c: 2840 moveal %d0,%a4 <== NOT EXECUTED block_count * (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) + ((maximum + minimum_index) * sizeof(Objects_Control *)) ); if ( !object_blocks ) 4613e: 4a80 tstl %d0 <== NOT EXECUTED 46140: 6614 bnes 46156 <_Objects_Extend_information+0x96> <== NOT EXECUTED 46142: 6000 01be braw 46302 <_Objects_Extend_information+0x242> <== NOT EXECUTED return; } else { object_blocks = (void**) 46146: d081 addl %d1,%d0 <== NOT EXECUTED 46148: e588 lsll #2,%d0 <== NOT EXECUTED 4614a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4614c: 4eb9 0004 7e08 jsr 47e08 <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED 46152: 588f addql #4,%sp <== NOT EXECUTED 46154: 2840 moveal %d0,%a4 <== NOT EXECUTED /* * Break the block into the various sections. * */ inactive_per_block = (uint32_t *) _Addresses_Add_offset( 46156: 2002 movel %d2,%d0 <== NOT EXECUTED 46158: e588 lsll #2,%d0 <== NOT EXECUTED 4615a: 2c0c movel %a4,%d6 <== NOT EXECUTED 4615c: dc80 addl %d0,%d6 <== NOT EXECUTED 4615e: 2a46 moveal %d6,%a5 <== NOT EXECUTED 46160: dbc0 addal %d0,%a5 <== NOT EXECUTED * in the copies. */ block_count--; if ( information->maximum > minimum_index ) { 46162: 4280 clrl %d0 <== NOT EXECUTED 46164: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 46168: b680 cmpl %d0,%d3 <== NOT EXECUTED 4616a: 6506 bcss 46172 <_Objects_Extend_information+0xb2> <== NOT EXECUTED 4616c: 204d moveal %a5,%a0 <== NOT EXECUTED 4616e: 4280 clrl %d0 <== NOT EXECUTED 46170: 603e bras 461b0 <_Objects_Extend_information+0xf0> <== NOT EXECUTED /* * Copy each section of the table over. This has to be performed as * separate parts as size of each block has changed. */ memcpy( object_blocks, 46172: 2407 movel %d7,%d2 <== NOT EXECUTED 46174: e58a lsll #2,%d2 <== NOT EXECUTED 46176: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46178: 45f9 0004 b3f4 lea 4b3f4 ,%a2 <== NOT EXECUTED 4617e: 2f2b 0030 movel %a3@(48),%sp@- <== NOT EXECUTED 46182: 2f0c movel %a4,%sp@- <== NOT EXECUTED 46184: 4e92 jsr %a2@ <== NOT EXECUTED information->object_blocks, block_count * sizeof(void*) ); memcpy( inactive_per_block, 46186: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46188: 2f2b 002c movel %a3@(44),%sp@- <== NOT EXECUTED 4618c: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4618e: 4e92 jsr %a2@ <== NOT EXECUTED information->inactive_per_block, block_count * sizeof(uint32_t) ); memcpy( local_table, 46190: 4280 clrl %d0 <== NOT EXECUTED 46192: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 46196: d083 addl %d3,%d0 <== NOT EXECUTED 46198: e588 lsll #2,%d0 <== NOT EXECUTED 4619a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4619c: 2f2b 001a movel %a3@(26),%sp@- <== NOT EXECUTED 461a0: 2f0d movel %a5,%sp@- <== NOT EXECUTED 461a2: 4e92 jsr %a2@ <== NOT EXECUTED 461a4: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 461aa: 6008 bras 461b4 <_Objects_Extend_information+0xf4> <== NOT EXECUTED else { /* * Deal with the special case of the 0 to minimum_index */ for ( index = 0; index < minimum_index; index++ ) { 461ac: 5280 addql #1,%d0 <== NOT EXECUTED local_table[ index ] = NULL; 461ae: 4298 clrl %a0@+ <== NOT EXECUTED else { /* * Deal with the special case of the 0 to minimum_index */ for ( index = 0; index < minimum_index; index++ ) { 461b0: b680 cmpl %d0,%d3 <== NOT EXECUTED 461b2: 62f8 bhis 461ac <_Objects_Extend_information+0xec> <== NOT EXECUTED /* * Initialise the new entries in the table. */ object_blocks[block_count] = NULL; 461b4: 2007 movel %d7,%d0 <== NOT EXECUTED 461b6: e588 lsll #2,%d0 <== NOT EXECUTED inactive_per_block[block_count] = 0; 461b8: 2046 moveal %d6,%a0 <== NOT EXECUTED 461ba: 42b0 0800 clrl %a0@(00000000,%d0:l) <== NOT EXECUTED for ( index=index_base ; index < ( information->allocation_size + index_base ); 461be: 2204 movel %d4,%d1 <== NOT EXECUTED /* * Initialise the new entries in the table. */ object_blocks[block_count] = NULL; 461c0: 42b4 0800 clrl %a4@(00000000,%d0:l) <== NOT EXECUTED inactive_per_block[block_count] = 0; for ( index=index_base ; index < ( information->allocation_size + index_base ); 461c4: d2ab 0012 addl %a3@(18),%d1 <== NOT EXECUTED 461c8: 41f5 4c00 lea %a5@(00000000,%d4:l:4),%a0 <== NOT EXECUTED 461cc: 2004 movel %d4,%d0 <== NOT EXECUTED 461ce: 6004 bras 461d4 <_Objects_Extend_information+0x114> <== NOT EXECUTED index++ ) { 461d0: 5280 addql #1,%d0 <== NOT EXECUTED local_table[ index ] = NULL; 461d2: 4298 clrl %a0@+ <== NOT EXECUTED object_blocks[block_count] = NULL; inactive_per_block[block_count] = 0; for ( index=index_base ; index < ( information->allocation_size + index_base ); 461d4: b280 cmpl %d0,%d1 <== NOT EXECUTED 461d6: 62f8 bhis 461d0 <_Objects_Extend_information+0x110> <== NOT EXECUTED index++ ) { local_table[ index ] = NULL; } _ISR_Disable( level ); 461d8: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 461de: 40c2 movew %sr,%d2 <== NOT EXECUTED 461e0: 8082 orl %d2,%d0 <== NOT EXECUTED 461e2: 46c0 movew %d0,%sr <== NOT EXECUTED information->object_blocks = object_blocks; information->inactive_per_block = inactive_per_block; information->local_table = local_table; information->maximum = maximum; information->maximum_id = _Objects_Build_id( 461e4: 2013 movel %a3@,%d0 <== NOT EXECUTED 461e6: 7218 moveq #24,%d1 <== NOT EXECUTED 461e8: e3a8 lsll %d1,%d0 <== NOT EXECUTED 461ea: 4281 clrl %d1 <== NOT EXECUTED 461ec: 322b 0004 movew %a3@(4),%d1 <== NOT EXECUTED 461f0: 761b moveq #27,%d3 <== NOT EXECUTED 461f2: e7a9 lsll %d3,%d1 <== NOT EXECUTED 461f4: 08c0 0010 bset #16,%d0 <== NOT EXECUTED 461f8: 8081 orl %d1,%d0 <== NOT EXECUTED 461fa: 326e fff2 moveaw %fp@(-14),%a1 <== NOT EXECUTED local_table[ index ] = NULL; } _ISR_Disable( level ); old_tables = information->object_blocks; 461fe: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED information->object_blocks = object_blocks; information->inactive_per_block = inactive_per_block; information->local_table = local_table; information->maximum = maximum; information->maximum_id = _Objects_Build_id( 46202: 4281 clrl %d1 <== NOT EXECUTED 46204: 3209 movew %a1,%d1 <== NOT EXECUTED 46206: 8081 orl %d1,%d0 <== NOT EXECUTED 46208: 2740 000a movel %d0,%a3@(10) <== NOT EXECUTED old_tables = information->object_blocks; information->object_blocks = object_blocks; information->inactive_per_block = inactive_per_block; information->local_table = local_table; information->maximum = maximum; 4620c: 3749 000e movew %a1,%a3@(14) <== NOT EXECUTED _ISR_Disable( level ); old_tables = information->object_blocks; information->object_blocks = object_blocks; 46210: 274c 0030 movel %a4,%a3@(48) <== NOT EXECUTED information->inactive_per_block = inactive_per_block; 46214: 2746 002c movel %d6,%a3@(44) <== NOT EXECUTED information->local_table = local_table; 46218: 274d 001a movel %a5,%a3@(26) <== NOT EXECUTED information->the_class, _Objects_Local_node, information->maximum ); _ISR_Enable( level ); 4621c: 46c2 movew %d2,%sr <== NOT EXECUTED if ( old_tables ) 4621e: 4a88 tstl %a0 <== NOT EXECUTED 46220: 670a beqs 4622c <_Objects_Extend_information+0x16c> <== NOT EXECUTED _Workspace_Free( old_tables ); 46222: 2f08 movel %a0,%sp@- <== NOT EXECUTED 46224: 4eb9 0004 7dd8 jsr 47dd8 <_Workspace_Free> <== NOT EXECUTED 4622a: 588f addql #4,%sp <== NOT EXECUTED 4622c: 202b 0016 movel %a3@(22),%d0 <== NOT EXECUTED 46230: 41eb 0012 lea %a3@(18),%a0 <== NOT EXECUTED 46234: 4c10 0800 mulsl %a0@,%d0 <== NOT EXECUTED 46238: 2405 movel %d5,%d2 <== NOT EXECUTED 4623a: e58a lsll #2,%d2 <== NOT EXECUTED /* * Allocate the name table, and the objects */ if ( information->auto_extend ) { 4623c: 4a2b 0010 tstb %a3@(16) <== NOT EXECUTED 46240: 6720 beqs 46262 <_Objects_Extend_information+0x1a2> <== NOT EXECUTED information->object_blocks[ block ] = 46242: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46244: 246b 0030 moveal %a3@(48),%a2 <== NOT EXECUTED 46248: 4eb9 0004 7df0 jsr 47df0 <_Workspace_Allocate> <== NOT EXECUTED _Workspace_Allocate( (information->allocation_size * information->size) ); if ( !information->object_blocks[ block ] ) 4624e: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED /* * Allocate the name table, and the objects */ if ( information->auto_extend ) { information->object_blocks[ block ] = 46252: d5c2 addal %d2,%a2 <== NOT EXECUTED 46254: 2480 movel %d0,%a2@ <== NOT EXECUTED _Workspace_Allocate( (information->allocation_size * information->size) ); if ( !information->object_blocks[ block ] ) 46256: 588f addql #4,%sp <== NOT EXECUTED 46258: 4ab0 2800 tstl %a0@(00000000,%d2:l) <== NOT EXECUTED 4625c: 6616 bnes 46274 <_Objects_Extend_information+0x1b4> <== NOT EXECUTED 4625e: 6000 00a2 braw 46302 <_Objects_Extend_information+0x242> <== NOT EXECUTED return; } else { information->object_blocks[ block ] = 46262: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46264: 246b 0030 moveal %a3@(48),%a2 <== NOT EXECUTED 46268: 4eb9 0004 7e08 jsr 47e08 <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED 4626e: d5c2 addal %d2,%a2 <== NOT EXECUTED 46270: 588f addql #4,%sp <== NOT EXECUTED 46272: 2480 movel %d0,%a2@ <== NOT EXECUTED /* * Initialize objects .. add to a local chain first. */ _Chain_Initialize( 46274: 2f2b 0016 movel %a3@(22),%sp@- <== NOT EXECUTED 46278: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED 4627c: 2605 movel %d5,%d3 <== NOT EXECUTED 4627e: 2f2b 0012 movel %a3@(18),%sp@- <== NOT EXECUTED 46282: e58b lsll #2,%d3 <== NOT EXECUTED 46284: 2f30 3800 movel %a0@(00000000,%d3:l),%sp@- <== NOT EXECUTED 46288: 200e movel %fp,%d0 <== NOT EXECUTED 4628a: 0680 ffff fff4 addil #-12,%d0 <== NOT EXECUTED 46290: 2f00 movel %d0,%sp@- <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 46292: 2404 movel %d4,%d2 <== NOT EXECUTED * Move from the local chain, initialise, then append to the inactive chain */ index = index_base; while ( (the_object = (Objects_Control *) _Chain_Get( &Inactive ) ) != NULL ) { 46294: 2a00 movel %d0,%d5 <== NOT EXECUTED /* * Initialize objects .. add to a local chain first. */ _Chain_Initialize( 46296: 4eb9 0004 9a90 jsr 49a90 <_Chain_Initialize> <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 4629c: 280b movel %a3,%d4 <== NOT EXECUTED 4629e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 462a4: 0684 0000 001e addil #30,%d4 <== NOT EXECUTED * Move from the local chain, initialise, then append to the inactive chain */ index = index_base; while ( (the_object = (Objects_Control *) _Chain_Get( &Inactive ) ) != NULL ) { 462aa: 49f9 0004 9a5c lea 49a5c <_Chain_Get>,%a4 <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 462b0: 45f9 0004 58a8 lea 458a8 <_Chain_Append>,%a2 <== NOT EXECUTED 462b6: 6026 bras 462de <_Objects_Extend_information+0x21e> <== NOT EXECUTED index = index_base; while ( (the_object = (Objects_Control *) _Chain_Get( &Inactive ) ) != NULL ) { the_object->id = _Objects_Build_id( 462b8: 2013 movel %a3@,%d0 <== NOT EXECUTED 462ba: 7218 moveq #24,%d1 <== NOT EXECUTED 462bc: e3a8 lsll %d1,%d0 <== NOT EXECUTED 462be: 4281 clrl %d1 <== NOT EXECUTED 462c0: 322b 0004 movew %a3@(4),%d1 <== NOT EXECUTED 462c4: 7c1b moveq #27,%d6 <== NOT EXECUTED 462c6: eda9 lsll %d6,%d1 <== NOT EXECUTED 462c8: 08c0 0010 bset #16,%d0 <== NOT EXECUTED 462cc: 8081 orl %d1,%d0 <== NOT EXECUTED 462ce: 8082 orl %d2,%d0 <== NOT EXECUTED 462d0: 2140 0008 movel %d0,%a0@(8) <== NOT EXECUTED index ); _Chain_Append( &information->Inactive, &the_object->Node ); index++; 462d4: 5282 addql #1,%d2 <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 462d6: 2f08 movel %a0,%sp@- <== NOT EXECUTED 462d8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 462da: 4e92 jsr %a2@ <== NOT EXECUTED index++; 462dc: 508f addql #8,%sp <== NOT EXECUTED * Move from the local chain, initialise, then append to the inactive chain */ index = index_base; while ( (the_object = (Objects_Control *) _Chain_Get( &Inactive ) ) != NULL ) { 462de: 2f05 movel %d5,%sp@- <== NOT EXECUTED 462e0: 4e94 jsr %a4@ <== NOT EXECUTED 462e2: 588f addql #4,%sp <== NOT EXECUTED 462e4: 2040 moveal %d0,%a0 <== NOT EXECUTED 462e6: 4a80 tstl %d0 <== NOT EXECUTED 462e8: 66ce bnes 462b8 <_Objects_Extend_information+0x1f8> <== NOT EXECUTED _Chain_Append( &information->Inactive, &the_object->Node ); index++; } information->inactive_per_block[ block ] = information->allocation_size; 462ea: 206b 002c moveal %a3@(44),%a0 <== NOT EXECUTED 462ee: 43eb 0012 lea %a3@(18),%a1 <== NOT EXECUTED 462f2: 2191 3800 movel %a1@,%a0@(00000000,%d3:l) <== NOT EXECUTED information->inactive += information->allocation_size; 462f6: 302b 002a movew %a3@(42),%d0 <== NOT EXECUTED 462fa: d0ab 0012 addl %a3@(18),%d0 <== NOT EXECUTED 462fe: 3740 002a movew %d0,%a3@(42) <== NOT EXECUTED } 46302: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 46308: 4e5e unlk %fp <== NOT EXECUTED 4630a: 4e75 rts 0004630c <_Objects_Free>: void _Objects_Free( Objects_Information *information, Objects_Control *the_object ) { 4630c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 46310: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 46314: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 46318: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED uint32_t allocation_size = information->allocation_size; _Chain_Append( &information->Inactive, &the_object->Node ); 4631c: 2f0b movel %a3,%sp@- <== NOT EXECUTED void _Objects_Free( Objects_Information *information, Objects_Control *the_object ) { uint32_t allocation_size = information->allocation_size; 4631e: 242a 0012 movel %a2@(18),%d2 <== NOT EXECUTED _Chain_Append( &information->Inactive, &the_object->Node ); 46322: 486a 001e pea %a2@(30) <== NOT EXECUTED 46326: 4eb9 0004 58a8 jsr 458a8 <_Chain_Append> <== NOT EXECUTED if ( information->auto_extend ) { 4632c: 508f addql #8,%sp <== NOT EXECUTED 4632e: 4a2a 0010 tstb %a2@(16) <== NOT EXECUTED 46332: 6752 beqs 46386 <_Objects_Free+0x7a> <== NOT EXECUTED uint32_t block; block = 46334: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 46338: 222a 0006 movel %a2@(6),%d1 <== NOT EXECUTED 4633c: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 46342: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 46348: 9081 subl %d1,%d0 <== NOT EXECUTED _Objects_Get_index( the_object->id ) - _Objects_Get_index( information->minimum_id ); block /= information->allocation_size; information->inactive_per_block[ block ]++; 4634a: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED 4634e: 4c6a 0000 0012 remul %a2@(18),%d0,%d0 <== NOT EXECUTED 46354: e588 lsll #2,%d0 <== NOT EXECUTED 46356: d1c0 addal %d0,%a0 <== NOT EXECUTED information->inactive++; 46358: 302a 002a movew %a2@(42),%d0 <== NOT EXECUTED 4635c: 5280 addql #1,%d0 <== NOT EXECUTED /* * Check if the threshold level has been met of * 1.5 x allocation_size are free. */ if ( information->inactive > ( allocation_size + ( allocation_size >> 1 ) ) ) { 4635e: 2202 movel %d2,%d1 <== NOT EXECUTED block = _Objects_Get_index( the_object->id ) - _Objects_Get_index( information->minimum_id ); block /= information->allocation_size; information->inactive_per_block[ block ]++; 46360: 5290 addql #1,%a0@ <== NOT EXECUTED /* * Check if the threshold level has been met of * 1.5 x allocation_size are free. */ if ( information->inactive > ( allocation_size + ( allocation_size >> 1 ) ) ) { 46362: e289 lsrl #1,%d1 <== NOT EXECUTED block = _Objects_Get_index( the_object->id ) - _Objects_Get_index( information->minimum_id ); block /= information->allocation_size; information->inactive_per_block[ block ]++; information->inactive++; 46364: 3540 002a movew %d0,%a2@(42) <== NOT EXECUTED /* * Check if the threshold level has been met of * 1.5 x allocation_size are free. */ if ( information->inactive > ( allocation_size + ( allocation_size >> 1 ) ) ) { 46368: d282 addl %d2,%d1 <== NOT EXECUTED 4636a: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 46370: b280 cmpl %d0,%d1 <== NOT EXECUTED 46372: 6412 bccs 46386 <_Objects_Free+0x7a> <== NOT EXECUTED _Objects_Shrink_information( information ); 46374: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } } 46378: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4637e: 4e5e unlk %fp <== NOT EXECUTED * Check if the threshold level has been met of * 1.5 x allocation_size are free. */ if ( information->inactive > ( allocation_size + ( allocation_size >> 1 ) ) ) { _Objects_Shrink_information( information ); 46380: 4ef9 0004 6648 jmp 46648 <_Objects_Shrink_information> <== NOT EXECUTED } } } 46386: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4638c: 4e5e unlk %fp <== NOT EXECUTED 4638e: 4e75 rts 0004646c <_Objects_Get>: Objects_Control *_Objects_Get( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 4646c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46470: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED * always NULL. * * If the Id is valid but the object has not been created yet, then * the local_table entry will be NULL. */ index = id - information->minimum_id + 1; 46474: 7201 moveq #1,%d1 <== NOT EXECUTED 46476: 92a8 0006 subl %a0@(6),%d1 <== NOT EXECUTED Objects_Control *_Objects_Get( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 4647a: 2f0a movel %a2,%sp@- <== NOT EXECUTED * always NULL. * * If the Id is valid but the object has not been created yet, then * the local_table entry will be NULL. */ index = id - information->minimum_id + 1; 4647c: d2ae 000c addl %fp@(12),%d1 <== NOT EXECUTED Objects_Control *_Objects_Get( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 46480: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED /* * If the index is less than maximum, then it is OK to use it to * index into the local_table array. */ if ( index <= information->maximum ) { 46484: 4280 clrl %d0 <== NOT EXECUTED Objects_Control *_Objects_Get( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 46486: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * If the index is less than maximum, then it is OK to use it to * index into the local_table array. */ if ( index <= information->maximum ) { 46488: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 4648c: b081 cmpl %d1,%d0 <== NOT EXECUTED 4648e: 6524 bcss 464b4 <_Objects_Get+0x48> <== NOT EXECUTED 46490: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46496: 5280 addql #1,%d0 <== NOT EXECUTED 46498: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); if ( (the_object = information->local_table[ index ]) != NULL ) { 4649e: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 464a2: 2430 1c00 movel %a0@(00000000,%d1:l:4),%d2 <== NOT EXECUTED 464a6: 6704 beqs 464ac <_Objects_Get+0x40> <== NOT EXECUTED *location = OBJECTS_LOCAL; 464a8: 4292 clrl %a2@ <== NOT EXECUTED 464aa: 600e bras 464ba <_Objects_Get+0x4e> <== NOT EXECUTED /* * Valid Id for this API, Class and Node but the object has not * been allocated yet. */ _Thread_Enable_dispatch(); 464ac: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 464b2: 6002 bras 464b6 <_Objects_Get+0x4a> <== NOT EXECUTED /* * Object Id is not within this API and Class on this node. So * it may be global in a multiprocessing system. But it is clearly * invalid on a single processor system. */ *location = OBJECTS_ERROR; 464b4: 4282 clrl %d2 <== NOT EXECUTED 464b6: 7001 moveq #1,%d0 <== NOT EXECUTED 464b8: 2480 movel %d0,%a2@ <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 464ba: 2002 movel %d2,%d0 <== NOT EXECUTED 464bc: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 464c0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 464c4: 4e5e unlk %fp <== NOT EXECUTED 464c6: 4e75 rts 000463bc <_Objects_Get_information>: Objects_Information *_Objects_Get_information( Objects_APIs the_api, uint32_t the_class ) { 463bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 463c0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 463c2: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 463c6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 463c8: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid( uint32_t the_api ) { if ( !the_api || the_api > OBJECTS_APIS_LAST ) 463cc: 2002 movel %d2,%d0 <== NOT EXECUTED 463ce: 5380 subql #1,%d0 <== NOT EXECUTED 463d0: 7203 moveq #3,%d1 <== NOT EXECUTED 463d2: b280 cmpl %d0,%d1 <== NOT EXECUTED 463d4: 6530 bcss 46406 <_Objects_Get_information+0x4a> <== NOT EXECUTED 463d6: 603e bras 46416 <_Objects_Get_information+0x5a> <== NOT EXECUTED return NULL; if ( !the_class ) return NULL; the_class_api_maximum = _Objects_API_maximum_class( the_api ); 463d8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 463da: 4eb9 0004 9e24 jsr 49e24 <_Objects_API_maximum_class> <== NOT EXECUTED if ( the_class_api_maximum < 0 || 463e0: 588f addql #4,%sp <== NOT EXECUTED 463e2: 4a80 tstl %d0 <== NOT EXECUTED 463e4: 6d20 blts 46406 <_Objects_Get_information+0x4a> <== NOT EXECUTED 463e6: b083 cmpl %d3,%d0 <== NOT EXECUTED 463e8: 651c bcss 46406 <_Objects_Get_information+0x4a> <== NOT EXECUTED the_class > (uint32_t) the_class_api_maximum ) return NULL; if ( !_Objects_Information_table[ the_api ] ) 463ea: 41f9 0005 6c5c lea 56c5c <_Objects_Information_table>,%a0 <== NOT EXECUTED 463f0: 2070 2c00 moveal %a0@(00000000,%d2:l:4),%a0 <== NOT EXECUTED 463f4: 4a88 tstl %a0 <== NOT EXECUTED 463f6: 670e beqs 46406 <_Objects_Get_information+0x4a> <== NOT EXECUTED return NULL; info = _Objects_Information_table[ the_api ][ the_class ]; 463f8: 2070 3c00 moveal %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED if ( !info ) 463fc: 4a88 tstl %a0 <== NOT EXECUTED 463fe: 6708 beqs 46408 <_Objects_Get_information+0x4c> <== NOT EXECUTED * In a multprocessing configuration, we may access remote objects. * Thus we may have 0 local instances and still have a valid object * pointer. */ #if !defined(RTEMS_MULTIPROCESSING) if ( info->maximum == 0 ) 46400: 4a68 000e tstw %a0@(14) <== NOT EXECUTED 46404: 6602 bnes 46408 <_Objects_Get_information+0x4c> <== NOT EXECUTED 46406: 91c8 subal %a0,%a0 <== NOT EXECUTED return NULL; #endif return info; } 46408: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4640c: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 46410: 4e5e unlk %fp <== NOT EXECUTED 46412: 2008 movel %a0,%d0 <== NOT EXECUTED 46414: 4e75 rts <== NOT EXECUTED int the_class_api_maximum; if ( !_Objects_Is_api_valid( the_api ) ) return NULL; if ( !the_class ) 46416: 4a83 tstl %d3 <== NOT EXECUTED 46418: 67ec beqs 46406 <_Objects_Get_information+0x4a> <== NOT EXECUTED 4641a: 60bc bras 463d8 <_Objects_Get_information+0x1c> <== NOT EXECUTED 00046390 <_Objects_Get_information_id>: #include Objects_Information *_Objects_Get_information_id( Objects_Id id ) { 46390: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46394: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 46398: 2f02 movel %d2,%sp@- <== NOT EXECUTED return _Objects_Get_information( 4639a: 2200 movel %d0,%d1 <== NOT EXECUTED 4639c: 741b moveq #27,%d2 <== NOT EXECUTED 4639e: e4a9 lsrl %d2,%d1 <== NOT EXECUTED 463a0: 2f01 movel %d1,%sp@- <== NOT EXECUTED 463a2: 7218 moveq #24,%d1 <== NOT EXECUTED 463a4: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 463a6: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 463aa: c480 andl %d0,%d2 <== NOT EXECUTED 463ac: 2f02 movel %d2,%sp@- <== NOT EXECUTED 463ae: 4eb9 0004 63bc jsr 463bc <_Objects_Get_information> <== NOT EXECUTED _Objects_Get_API( id ), _Objects_Get_class( id ) ); } 463b4: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 463b8: 4e5e unlk %fp <== NOT EXECUTED 463ba: 4e75 rts 0004641c <_Objects_Get_isr_disable>: Objects_Information *information, Objects_Id id, Objects_Locations *location, ISR_Level *level_p ) { 4641c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46420: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46422: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46426: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) index = id - information->minimum_id + 1; #else /* index = _Objects_Get_index( id ); */ index = id & 0x0000ffff; 4642a: 4282 clrl %d2 <== NOT EXECUTED /* This should work but doesn't always :( */ /* index = (uint16_t ) id; */ #endif _ISR_Disable( level ); 4642c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) index = id - information->minimum_id + 1; #else /* index = _Objects_Get_index( id ); */ index = id & 0x0000ffff; 46432: 342e 000e movew %fp@(14),%d2 <== NOT EXECUTED /* This should work but doesn't always :( */ /* index = (uint16_t ) id; */ #endif _ISR_Disable( level ); 46436: 40c1 movew %sr,%d1 <== NOT EXECUTED 46438: 8081 orl %d1,%d0 <== NOT EXECUTED 4643a: 46c0 movew %d0,%sr <== NOT EXECUTED if ( information->maximum >= index ) { 4643c: 4280 clrl %d0 <== NOT EXECUTED 4643e: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 46442: b480 cmpl %d0,%d2 <== NOT EXECUTED 46444: 6218 bhis 4645e <_Objects_Get_isr_disable+0x42> <== NOT EXECUTED if ( (the_object = information->local_table[ index ]) != NULL ) { 46446: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 4644a: 2030 2c00 movel %a0@(00000000,%d2:l:4),%d0 <== NOT EXECUTED 4644e: 670a beqs 4645a <_Objects_Get_isr_disable+0x3e> <== NOT EXECUTED *location = OBJECTS_LOCAL; *level_p = level; 46450: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED #endif _ISR_Disable( level ); if ( information->maximum >= index ) { if ( (the_object = information->local_table[ index ]) != NULL ) { *location = OBJECTS_LOCAL; 46454: 4291 clrl %a1@ <== NOT EXECUTED *level_p = level; 46456: 2081 movel %d1,%a0@ <== NOT EXECUTED 46458: 600c bras 46466 <_Objects_Get_isr_disable+0x4a> <== NOT EXECUTED return the_object; } _ISR_Enable( level ); 4645a: 46c1 movew %d1,%sr <== NOT EXECUTED 4645c: 6004 bras 46462 <_Objects_Get_isr_disable+0x46> <== NOT EXECUTED *location = OBJECTS_ERROR; return NULL; } _ISR_Enable( level ); 4645e: 46c1 movew %d1,%sr <== NOT EXECUTED *location = OBJECTS_ERROR; 46460: 4280 clrl %d0 <== NOT EXECUTED 46462: 7201 moveq #1,%d1 <== NOT EXECUTED 46464: 2281 movel %d1,%a1@ <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 46466: 241f movel %sp@+,%d2 <== NOT EXECUTED 46468: 4e5e unlk %fp <== NOT EXECUTED 4646a: 4e75 rts 0004faa0 <_Objects_Get_name_as_string>: char *_Objects_Get_name_as_string( Objects_Id id, size_t length, char *name ) { 4faa0: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 4faa4: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 4faa8: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4faac: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 4fab0: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED char lname[5]; Objects_Control *the_object; Objects_Locations location; Objects_Id tmpId; if ( length == 0 ) 4fab4: 4a85 tstl %d5 <== NOT EXECUTED 4fab6: 6700 00c6 beqw 4fb7e <_Objects_Get_name_as_string+0xde> <== NOT EXECUTED return NULL; if ( name == NULL ) 4faba: 4a84 tstl %d4 <== NOT EXECUTED 4fabc: 6700 00c2 beqw 4fb80 <_Objects_Get_name_as_string+0xe0> <== NOT EXECUTED return NULL; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 4fac0: 4a80 tstl %d0 <== NOT EXECUTED 4fac2: 6704 beqs 4fac8 <_Objects_Get_name_as_string+0x28> <== NOT EXECUTED 4fac4: 2400 movel %d0,%d2 <== NOT EXECUTED 4fac6: 600a bras 4fad2 <_Objects_Get_name_as_string+0x32> <== NOT EXECUTED 4fac8: 2079 0006 2a4a moveal 62a4a <_Thread_Executing>,%a0 <== NOT EXECUTED 4face: 2428 0008 movel %a0@(8),%d2 <== NOT EXECUTED information = _Objects_Get_information_id( tmpId ); 4fad2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4fad4: 4eb9 0004 9f4c jsr 49f4c <_Objects_Get_information_id> <== NOT EXECUTED if ( !information ) 4fada: 588f addql #4,%sp <== NOT EXECUTED if ( name == NULL ) return NULL; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; information = _Objects_Get_information_id( tmpId ); 4fadc: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !information ) 4fade: 4a80 tstl %d0 <== NOT EXECUTED 4fae0: 6700 009c beqw 4fb7e <_Objects_Get_name_as_string+0xde> <== NOT EXECUTED return NULL; the_object = _Objects_Get( information, tmpId, &location ); 4fae4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4fae8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4faea: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4faec: 4eb9 0004 a028 jsr 4a028 <_Objects_Get> <== NOT EXECUTED switch ( location ) { 4faf2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED information = _Objects_Get_information_id( tmpId ); if ( !information ) return NULL; the_object = _Objects_Get( information, tmpId, &location ); 4faf8: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 4fafa: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4fafe: 667e bnes 4fb7e <_Objects_Get_name_as_string+0xde> <== NOT EXECUTED case OBJECTS_ERROR: return NULL; case OBJECTS_LOCAL: if ( information->is_string ) { 4fb00: 4a2a 0034 tstb %a2@(52) <== NOT EXECUTED 4fb04: 670c beqs 4fb12 <_Objects_Get_name_as_string+0x72> <== NOT EXECUTED s = the_object->name.name_p; 4fb06: 2668 000c moveal %a0@(12),%a3 <== NOT EXECUTED lname[ 4 ] = '\0'; s = lname; } d = name; if ( s ) { 4fb0a: 4a8b tstl %a3 <== NOT EXECUTED 4fb0c: 6632 bnes 4fb40 <_Objects_Get_name_as_string+0xa0> <== NOT EXECUTED 4fb0e: 2444 moveal %d4,%a2 <== NOT EXECUTED 4fb10: 6062 bras 4fb74 <_Objects_Get_name_as_string+0xd4> <== NOT EXECUTED case OBJECTS_LOCAL: if ( information->is_string ) { s = the_object->name.name_p; } else { uint32_t u32_name = (uint32_t) the_object->name.name_u32; 4fb12: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED lname[ 0 ] = (u32_name >> 24) & 0xff; 4fb16: 7418 moveq #24,%d2 <== NOT EXECUTED 4fb18: 2200 movel %d0,%d1 <== NOT EXECUTED 4fb1a: e4a9 lsrl %d2,%d1 <== NOT EXECUTED lname[ 1 ] = (u32_name >> 16) & 0xff; 4fb1c: 2400 movel %d0,%d2 <== NOT EXECUTED lname[ 2 ] = (u32_name >> 8) & 0xff; 4fb1e: 2600 movel %d0,%d3 <== NOT EXECUTED lname[ 3 ] = (u32_name >> 0) & 0xff; 4fb20: 1d40 fffa moveb %d0,%fp@(-6) <== NOT EXECUTED s = the_object->name.name_p; } else { uint32_t u32_name = (uint32_t) the_object->name.name_u32; lname[ 0 ] = (u32_name >> 24) & 0xff; lname[ 1 ] = (u32_name >> 16) & 0xff; 4fb24: 4242 clrw %d2 <== NOT EXECUTED 4fb26: 4842 swap %d2 <== NOT EXECUTED lname[ 2 ] = (u32_name >> 8) & 0xff; 4fb28: e08b lsrl #8,%d3 <== NOT EXECUTED lname[ 3 ] = (u32_name >> 0) & 0xff; lname[ 4 ] = '\0'; 4fb2a: 4200 clrb %d0 <== NOT EXECUTED if ( information->is_string ) { s = the_object->name.name_p; } else { uint32_t u32_name = (uint32_t) the_object->name.name_u32; lname[ 0 ] = (u32_name >> 24) & 0xff; 4fb2c: 1d41 fff7 moveb %d1,%fp@(-9) <== NOT EXECUTED lname[ 1 ] = (u32_name >> 16) & 0xff; 4fb30: 1d42 fff8 moveb %d2,%fp@(-8) <== NOT EXECUTED lname[ 2 ] = (u32_name >> 8) & 0xff; 4fb34: 1d43 fff9 moveb %d3,%fp@(-7) <== NOT EXECUTED lname[ 3 ] = (u32_name >> 0) & 0xff; lname[ 4 ] = '\0'; 4fb38: 1d40 fffb moveb %d0,%fp@(-5) <== NOT EXECUTED 4fb3c: 47ee fff7 lea %fp@(-9),%a3 <== NOT EXECUTED s = lname; } d = name; if ( s ) { for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) { 4fb40: 2405 movel %d5,%d2 <== NOT EXECUTED 4fb42: 5382 subql #1,%d2 <== NOT EXECUTED lname[ 0 ] = (u32_name >> 24) & 0xff; lname[ 1 ] = (u32_name >> 16) & 0xff; lname[ 2 ] = (u32_name >> 8) & 0xff; lname[ 3 ] = (u32_name >> 0) & 0xff; lname[ 4 ] = '\0'; 4fb44: 2444 moveal %d4,%a2 <== NOT EXECUTED 4fb46: 93c9 subal %a1,%a1 <== NOT EXECUTED 4fb48: 601a bras 4fb64 <_Objects_Get_name_as_string+0xc4> <== NOT EXECUTED } d = name; if ( s ) { for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) { *d = (isprint(*s)) ? *s : '*'; 4fb4a: 2079 0006 0c5c moveal 60c5c <__ctype_ptr>,%a0 <== NOT EXECUTED 4fb50: 1030 0800 moveb %a0@(00000000,%d0:l),%d0 <== NOT EXECUTED 4fb54: 49c0 extbl %d0 <== NOT EXECUTED 4fb56: 0280 0000 0097 andil #151,%d0 <== NOT EXECUTED 4fb5c: 6602 bnes 4fb60 <_Objects_Get_name_as_string+0xc0> <== NOT EXECUTED 4fb5e: 722a moveq #42,%d1 <== NOT EXECUTED 4fb60: 14c1 moveb %d1,%a2@+ <== NOT EXECUTED s = lname; } d = name; if ( s ) { for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) { 4fb62: 5289 addql #1,%a1 <== NOT EXECUTED 4fb64: b489 cmpl %a1,%d2 <== NOT EXECUTED 4fb66: 630c blss 4fb74 <_Objects_Get_name_as_string+0xd4> <== NOT EXECUTED 4fb68: 1233 9800 moveb %a3@(00000000,%a1:l),%d1 <== NOT EXECUTED *d = (isprint(*s)) ? *s : '*'; 4fb6c: 1001 moveb %d1,%d0 <== NOT EXECUTED 4fb6e: 49c0 extbl %d0 <== NOT EXECUTED s = lname; } d = name; if ( s ) { for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) { 4fb70: 4a01 tstb %d1 <== NOT EXECUTED 4fb72: 66d6 bnes 4fb4a <_Objects_Get_name_as_string+0xaa> <== NOT EXECUTED *d = (isprint(*s)) ? *s : '*'; } } *d = '\0'; 4fb74: 4212 clrb %a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4fb76: 4eb9 0004 a87a jsr 4a87a <_Thread_Enable_dispatch> <== NOT EXECUTED 4fb7c: 6002 bras 4fb80 <_Objects_Get_name_as_string+0xe0> <== NOT EXECUTED return name; 4fb7e: 4284 clrl %d4 <== NOT EXECUTED } return NULL; /* unreachable path */ } 4fb80: 2004 movel %d4,%d0 <== NOT EXECUTED 4fb82: 4cee 0c3c ffdc moveml %fp@(-36),%d2-%d5/%a2-%a3 <== NOT EXECUTED 4fb88: 4e5e unlk %fp <== NOT EXECUTED 4fb8a: 4e75 rts 00052104 <_Objects_Get_next>: Objects_Information *information, Objects_Id id, Objects_Locations *location_p, Objects_Id *next_id_p ) { 52104: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 52108: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 5210c: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 52110: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 52114: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 52118: 2a6e 0014 moveal %fp@(20),%a5 <== NOT EXECUTED Objects_Control *object; Objects_Id next_id; if (_Objects_Get_index(id) == OBJECTS_ID_INITIAL_INDEX) 5211c: 4a41 tstw %d1 <== NOT EXECUTED 5211e: 6704 beqs 52124 <_Objects_Get_next+0x20> <== NOT EXECUTED 52120: 2401 movel %d1,%d2 <== NOT EXECUTED 52122: 6004 bras 52128 <_Objects_Get_next+0x24> <== NOT EXECUTED next_id = information->minimum_id; 52124: 242b 0006 movel %a3@(6),%d2 <== NOT EXECUTED *location_p = OBJECTS_ERROR; goto final; } /* try to grab one */ object = _Objects_Get(information, next_id, location_p); 52128: 49f9 0004 a028 lea 4a028 <_Objects_Get>,%a4 <== NOT EXECUTED else next_id = id; do { /* walked off end of list? */ if (_Objects_Get_index(next_id) > information->maximum) 5212e: 2202 movel %d2,%d1 <== NOT EXECUTED 52130: 4280 clrl %d0 <== NOT EXECUTED 52132: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 52138: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 5213c: b081 cmpl %d1,%d0 <== NOT EXECUTED 5213e: 640c bccs 5214c <_Objects_Get_next+0x48> <== NOT EXECUTED { *location_p = OBJECTS_ERROR; 52140: 7401 moveq #1,%d2 <== NOT EXECUTED *next_id_p = next_id; return object; final: *next_id_p = OBJECTS_ID_FINAL; 52142: 72ff moveq #-1,%d1 <== NOT EXECUTED do { /* walked off end of list? */ if (_Objects_Get_index(next_id) > information->maximum) { *location_p = OBJECTS_ERROR; 52144: 2482 movel %d2,%a2@ <== NOT EXECUTED *next_id_p = next_id; return object; final: *next_id_p = OBJECTS_ID_FINAL; 52146: 4280 clrl %d0 <== NOT EXECUTED 52148: 2a81 movel %d1,%a5@ <== NOT EXECUTED 5214a: 6016 bras 52162 <_Objects_Get_next+0x5e> <== NOT EXECUTED *location_p = OBJECTS_ERROR; goto final; } /* try to grab one */ object = _Objects_Get(information, next_id, location_p); 5214c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5214e: 2f02 movel %d2,%sp@- <== NOT EXECUTED next_id++; 52150: 5282 addql #1,%d2 <== NOT EXECUTED *location_p = OBJECTS_ERROR; goto final; } /* try to grab one */ object = _Objects_Get(information, next_id, location_p); 52152: 2f0b movel %a3,%sp@- <== NOT EXECUTED 52154: 4e94 jsr %a4@ <== NOT EXECUTED next_id++; } while (*location_p != OBJECTS_LOCAL); 52156: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5215c: 4a92 tstl %a2@ <== NOT EXECUTED 5215e: 66ce bnes 5212e <_Objects_Get_next+0x2a> <== NOT EXECUTED *next_id_p = next_id; 52160: 2a82 movel %d2,%a5@ <== NOT EXECUTED return object; final: *next_id_p = OBJECTS_ID_FINAL; return 0; } 52162: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 52168: 4e5e unlk %fp <== NOT EXECUTED 5216a: 4e75 rts 000516d8 <_Objects_Get_no_protection>: Objects_Control *_Objects_Get_no_protection( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 516d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 516dc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED /* * You can't just extract the index portion or you can get tricked * by a value between 1 and maximum. */ index = id - information->minimum_id + 1; 516e0: 7201 moveq #1,%d1 <== NOT EXECUTED 516e2: 92a8 0006 subl %a0@(6),%d1 <== NOT EXECUTED 516e6: d2ae 000c addl %fp@(12),%d1 <== NOT EXECUTED Objects_Control *_Objects_Get_no_protection( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 516ea: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED * You can't just extract the index portion or you can get tricked * by a value between 1 and maximum. */ index = id - information->minimum_id + 1; if ( information->maximum >= index ) { 516ee: 4280 clrl %d0 <== NOT EXECUTED 516f0: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 516f4: b280 cmpl %d0,%d1 <== NOT EXECUTED 516f6: 620e bhis 51706 <_Objects_Get_no_protection+0x2e> <== NOT EXECUTED if ( (the_object = information->local_table[ index ]) != NULL ) { 516f8: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 516fc: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 51700: 6704 beqs 51706 <_Objects_Get_no_protection+0x2e> <== NOT EXECUTED *location = OBJECTS_LOCAL; 51702: 4291 clrl %a1@ <== NOT EXECUTED 51704: 6006 bras 5170c <_Objects_Get_no_protection+0x34> <== NOT EXECUTED /* * This isn't supported or required yet for Global objects so * if it isn't local, we don't find it. */ *location = OBJECTS_ERROR; 51706: 7201 moveq #1,%d1 <== NOT EXECUTED 51708: 4280 clrl %d0 <== NOT EXECUTED 5170a: 2281 movel %d1,%a1@ <== NOT EXECUTED return NULL; } 5170c: 4e5e unlk %fp <== NOT EXECUTED 5170e: 4e75 rts 00046640 <_Objects_Handler_initialization>: uint32_t maximum_nodes, uint32_t maximum_global_objects ) #else void _Objects_Handler_initialization(void) #endif { 46640: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED node, maximum_nodes, maximum_global_objects ); #endif } 46644: 4e5e unlk %fp <== NOT EXECUTED 46646: 4e75 rts 000471a0 <_Objects_Id_to_name>: Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( Objects_Id id, Objects_Name *name ) { 471a0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 471a4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 471a8: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 471ac: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Objects_Id tmpId; Objects_Information *information; Objects_Control *the_object = (Objects_Control *) 0; Objects_Locations ignored_location; if ( !name ) 471b0: 4a8a tstl %a2 <== NOT EXECUTED 471b2: 6604 bnes 471b8 <_Objects_Id_to_name+0x18> <== NOT EXECUTED 471b4: 7001 moveq #1,%d0 <== NOT EXECUTED 471b6: 6068 bras 47220 <_Objects_Id_to_name+0x80> <== NOT EXECUTED return OBJECTS_INVALID_NAME; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 471b8: 4a80 tstl %d0 <== NOT EXECUTED 471ba: 6704 beqs 471c0 <_Objects_Id_to_name+0x20> <== NOT EXECUTED 471bc: 2400 movel %d0,%d2 <== NOT EXECUTED 471be: 600a bras 471ca <_Objects_Id_to_name+0x2a> <== NOT EXECUTED 471c0: 2079 0005 8e5a moveal 58e5a <_Thread_Executing>,%a0 <== NOT EXECUTED 471c6: 2428 0008 movel %a0@(8),%d2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API( Objects_Id id ) { return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS); 471ca: 7018 moveq #24,%d0 <== NOT EXECUTED 471cc: 2202 movel %d2,%d1 <== NOT EXECUTED 471ce: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 471d0: 7607 moveq #7,%d3 <== NOT EXECUTED 471d2: c283 andl %d3,%d1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid( uint32_t the_api ) { if ( !the_api || the_api > OBJECTS_APIS_LAST ) 471d4: 2001 movel %d1,%d0 <== NOT EXECUTED 471d6: 5380 subql #1,%d0 <== NOT EXECUTED 471d8: 163c 0003 moveb #3,%d3 <== NOT EXECUTED 471dc: b680 cmpl %d0,%d3 <== NOT EXECUTED 471de: 653e bcss 4721e <_Objects_Id_to_name+0x7e> <== NOT EXECUTED 471e0: 6048 bras 4722a <_Objects_Id_to_name+0x8a> <== NOT EXECUTED if ( !_Objects_Information_table[ the_api ] ) return OBJECTS_INVALID_ID; the_class = _Objects_Get_class( tmpId ); information = _Objects_Information_table[ the_api ][ the_class ]; 471e2: 2002 movel %d2,%d0 <== NOT EXECUTED 471e4: 721b moveq #27,%d1 <== NOT EXECUTED 471e6: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 471e8: 2070 0c00 moveal %a0@(00000000,%d0:l:4),%a0 <== NOT EXECUTED if ( !information ) 471ec: 4a88 tstl %a0 <== NOT EXECUTED 471ee: 672e beqs 4721e <_Objects_Id_to_name+0x7e> <== NOT EXECUTED return OBJECTS_INVALID_ID; if ( information->is_string ) 471f0: 4a28 0034 tstb %a0@(52) <== NOT EXECUTED 471f4: 6628 bnes 4721e <_Objects_Id_to_name+0x7e> <== NOT EXECUTED return OBJECTS_INVALID_ID; the_object = _Objects_Get( information, tmpId, &ignored_location ); 471f6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 471fa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 471fc: 2f08 movel %a0,%sp@- <== NOT EXECUTED 471fe: 4eb9 0004 7144 jsr 47144 <_Objects_Get> <== NOT EXECUTED if ( !the_object ) 47204: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return OBJECTS_INVALID_ID; if ( information->is_string ) return OBJECTS_INVALID_ID; the_object = _Objects_Get( information, tmpId, &ignored_location ); 4720a: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !the_object ) 4720c: 4a80 tstl %d0 <== NOT EXECUTED 4720e: 670e beqs 4721e <_Objects_Id_to_name+0x7e> <== NOT EXECUTED return OBJECTS_INVALID_ID; *name = the_object->name; 47210: 24a8 000c movel %a0@(12),%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 47214: 4eb9 0004 79c2 jsr 479c2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4721a: 4280 clrl %d0 <== NOT EXECUTED 4721c: 6002 bras 47220 <_Objects_Id_to_name+0x80> <== NOT EXECUTED return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL; 4721e: 7003 moveq #3,%d0 <== NOT EXECUTED } 47220: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 47226: 4e5e unlk %fp <== NOT EXECUTED 47228: 4e75 rts <== NOT EXECUTED the_api = _Objects_Get_API( tmpId ); if ( !_Objects_Is_api_valid( the_api ) ) return OBJECTS_INVALID_ID; if ( !_Objects_Information_table[ the_api ] ) 4722a: 41f9 0005 8d54 lea 58d54 <_Objects_Information_table>,%a0 <== NOT EXECUTED 47230: 2070 1c00 moveal %a0@(00000000,%d1:l:4),%a0 <== NOT EXECUTED 47234: 4a88 tstl %a0 <== NOT EXECUTED 47236: 66aa bnes 471e2 <_Objects_Id_to_name+0x42> <== NOT EXECUTED 47238: 60e4 bras 4721e <_Objects_Id_to_name+0x7e> <== NOT EXECUTED ... 000464c8 <_Objects_Initialize_information>: , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 464c8: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 464cc: 48d7 007c moveml %d2-%d6,%sp@ <== NOT EXECUTED 464d0: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 464d4: 282e 0014 movel %fp@(20),%d4 <== NOT EXECUTED 464d8: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED /* * Set the entry in the object information table. */ _Objects_Information_table[ the_api ][ the_class ] = information; 464dc: 41f9 0005 6c5c lea 56c5c <_Objects_Information_table>,%a0 <== NOT EXECUTED 464e2: 2070 0c00 moveal %a0@(00000000,%d0:l:4),%a0 <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 464e6: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED * Are we operating in unlimited, or auto-extend mode */ information->auto_extend = (maximum & OBJECTS_UNLIMITED_OBJECTS) ? TRUE : FALSE; maximum &= ~OBJECTS_UNLIMITED_OBJECTS; 464ea: 2c04 movel %d4,%d6 <== NOT EXECUTED 464ec: 0886 001f bclr #31,%d6 <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 464f0: 7218 moveq #24,%d1 <== NOT EXECUTED uint32_t name_length; #if defined(RTEMS_MULTIPROCESSING) uint32_t index; #endif information->the_api = the_api; 464f2: 2280 movel %d0,%a1@ <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 464f4: e3a8 lsll %d1,%d0 <== NOT EXECUTED 464f6: 4a86 tstl %d6 <== NOT EXECUTED 464f8: 56c3 sne %d3 <== NOT EXECUTED 464fa: 123c 001b moveb #27,%d1 <== NOT EXECUTED /* * Set the entry in the object information table. */ _Objects_Information_table[ the_api ][ the_class ] = information; 464fe: 2189 2c00 movel %a1,%a0@(00000000,%d2:l:4) <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) uint32_t index; #endif information->the_api = the_api; information->the_class = the_class; 46502: 3342 0004 movew %d2,%a1@(4) <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 46506: 2a2e 0020 movel %fp@(32),%d5 <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 4650a: e3aa lsll %d1,%d2 <== NOT EXECUTED 4650c: 08c0 0010 bset #16,%d0 <== NOT EXECUTED 46510: 49c3 extbl %d3 <== NOT EXECUTED 46512: 8082 orl %d2,%d0 <== NOT EXECUTED 46514: 4483 negl %d3 <== NOT EXECUTED 46516: 8083 orl %d3,%d0 <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 46518: 4281 clrl %d1 <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 4651a: 2340 0006 movel %d0,%a1@(6) <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 4651e: 322e 001a movew %fp@(26),%d1 <== NOT EXECUTED information->local_table = 0; information->inactive_per_block = 0; information->object_blocks = 0; information->inactive = 0; 46522: 4240 clrw %d0 <== NOT EXECUTED /* * Set the size of the object */ information->size = size; 46524: 2341 0016 movel %d1,%a1@(22) <== NOT EXECUTED information->local_table = 0; information->inactive_per_block = 0; information->object_blocks = 0; information->inactive = 0; 46528: 3340 002a movew %d0,%a1@(42) <== NOT EXECUTED /* * Are we operating in unlimited, or auto-extend mode */ information->auto_extend = 4652c: d884 addl %d4,%d4 <== NOT EXECUTED 4652e: 9984 subxl %d4,%d4 <== NOT EXECUTED 46530: 4484 negl %d4 <== NOT EXECUTED uint32_t index; #endif information->the_api = the_api; information->the_class = the_class; information->is_string = is_string; 46532: 136e 001f 0034 moveb %fp@(31),%a1@(52) <== NOT EXECUTED * Calculate the maximum name length */ name_length = maximum_name_length; if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) ) 46538: 7003 moveq #3,%d0 <== NOT EXECUTED /* * Provide a null local table entry for the case of any empty table. */ information->local_table = &null_local_table; 4653a: 223c 0005 6454 movel #353364,%d1 <== NOT EXECUTED /* * Are we operating in unlimited, or auto-extend mode */ information->auto_extend = 46540: 1344 0010 moveb %d4,%a1@(16) <== NOT EXECUTED information->the_api = the_api; information->the_class = the_class; information->is_string = is_string; information->local_table = 0; information->inactive_per_block = 0; 46544: 42a9 002c clrl %a1@(44) <== NOT EXECUTED * Calculate the maximum name length */ name_length = maximum_name_length; if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) ) 46548: c085 andl %d5,%d0 <== NOT EXECUTED /* * Provide a null local table entry for the case of any empty table. */ information->local_table = &null_local_table; 4654a: 2341 001a movel %d1,%a1@(26) <== NOT EXECUTED information->the_class = the_class; information->is_string = is_string; information->local_table = 0; information->inactive_per_block = 0; information->object_blocks = 0; 4654e: 42a9 0030 clrl %a1@(48) <== NOT EXECUTED /* * The allocation unit is the maximum value */ information->allocation_size = maximum; 46552: 2346 0012 movel %d6,%a1@(18) <== NOT EXECUTED * Calculate the maximum name length */ name_length = maximum_name_length; if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) ) 46556: 4a80 tstl %d0 <== NOT EXECUTED 46558: 6604 bnes 4655e <_Objects_Initialize_information+0x96> <== NOT EXECUTED 4655a: 2005 movel %d5,%d0 <== NOT EXECUTED 4655c: 6008 bras 46566 <_Objects_Initialize_information+0x9e> <== NOT EXECUTED name_length = (name_length + OBJECTS_NAME_ALIGNMENT) & 4655e: 2005 movel %d5,%d0 <== NOT EXECUTED 46560: 5880 addql #4,%d0 <== NOT EXECUTED 46562: 72fc moveq #-4,%d1 <== NOT EXECUTED 46564: c081 andl %d1,%d0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 46566: 41e9 0022 lea %a1@(34),%a0 <== NOT EXECUTED 4656a: 2348 001e movel %a0,%a1@(30) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4656e: 41e9 001e lea %a1@(30),%a0 <== NOT EXECUTED ~(OBJECTS_NAME_ALIGNMENT-1); information->name_length = name_length; 46572: 3340 0036 movew %d0,%a1@(54) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 46576: 42a9 0022 clrl %a1@(34) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 4657a: 2348 0026 movel %a0,%a1@(38) <== NOT EXECUTED /* * Initialize objects .. if there are any */ if ( maximum ) { 4657e: 4a86 tstl %d6 <== NOT EXECUTED 46580: 6716 beqs 46598 <_Objects_Initialize_information+0xd0> <== NOT EXECUTED * Always have the maximum size available so the current performance * figures are create are met. If the user moves past the maximum * number then a performance hit is taken. */ _Objects_Extend_information( information ); 46582: 2d49 0008 movel %a1,%fp@(8) <== NOT EXECUTED _Chain_Initialize_empty( &information->global_table[ index ] ); } else information->global_table = NULL; #endif } 46586: 4cd7 007c moveml %sp@,%d2-%d6 <== NOT EXECUTED 4658a: 4e5e unlk %fp <== NOT EXECUTED /* * Reset the maximum value. It will be updated when the information is * extended. */ information->maximum = 0; 4658c: 4240 clrw %d0 <== NOT EXECUTED 4658e: 3340 000e movew %d0,%a1@(14) <== NOT EXECUTED * Always have the maximum size available so the current performance * figures are create are met. If the user moves past the maximum * number then a performance hit is taken. */ _Objects_Extend_information( information ); 46592: 4ef9 0004 60c0 jmp 460c0 <_Objects_Extend_information> <== NOT EXECUTED _Chain_Initialize_empty( &information->global_table[ index ] ); } else information->global_table = NULL; #endif } 46598: 4cd7 007c moveml %sp@,%d2-%d6 <== NOT EXECUTED 4659c: 4e5e unlk %fp <== NOT EXECUTED 4659e: 4e75 rts 000465d0 <_Objects_Name_to_id_u32>: Objects_Information *information, uint32_t name, uint32_t node, Objects_Id *id ) { 465d0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 465d4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 465d8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 465dc: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 465e0: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 465e4: 226e 0014 moveal %fp@(20),%a1 <== NOT EXECUTED Objects_Name name_for_mp; #endif /* ASSERT: information->is_string == FALSE */ if ( !id ) 465e8: 4a89 tstl %a1 <== NOT EXECUTED 465ea: 6604 bnes 465f0 <_Objects_Name_to_id_u32+0x20> <== NOT EXECUTED 465ec: 7002 moveq #2,%d0 <== NOT EXECUTED 465ee: 6048 bras 46638 <_Objects_Name_to_id_u32+0x68> <== NOT EXECUTED return OBJECTS_INVALID_ADDRESS; if ( name == 0 ) 465f0: 4a82 tstl %d2 <== NOT EXECUTED 465f2: 6742 beqs 46636 <_Objects_Name_to_id_u32+0x66> <== NOT EXECUTED return OBJECTS_INVALID_NAME; search_local_node = FALSE; if ( information->maximum != 0 && 465f4: 322a 000e movew %a2@(14),%d1 <== NOT EXECUTED 465f8: 673c beqs 46636 <_Objects_Name_to_id_u32+0x66> <== NOT EXECUTED 465fa: 4a80 tstl %d0 <== NOT EXECUTED 465fc: 672c beqs 4662a <_Objects_Name_to_id_u32+0x5a> <== NOT EXECUTED 465fe: 0c80 7fff ffff cmpil #2147483647,%d0 <== NOT EXECUTED 46604: 6724 beqs 4662a <_Objects_Name_to_id_u32+0x5a> <== NOT EXECUTED 46606: 7601 moveq #1,%d3 <== NOT EXECUTED 46608: b680 cmpl %d0,%d3 <== NOT EXECUTED 4660a: 662a bnes 46636 <_Objects_Name_to_id_u32+0x66> <== NOT EXECUTED 4660c: 601c bras 4662a <_Objects_Name_to_id_u32+0x5a> <== NOT EXECUTED if ( search_local_node ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { the_object = information->local_table[ index ]; 4660e: 206a 001a moveal %a2@(26),%a0 <== NOT EXECUTED 46612: 2070 0c00 moveal %a0@(00000000,%d0:l:4),%a0 <== NOT EXECUTED search_local_node = TRUE; if ( search_local_node ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 46616: 5280 addql #1,%d0 <== NOT EXECUTED the_object = information->local_table[ index ]; if ( !the_object ) 46618: 4a88 tstl %a0 <== NOT EXECUTED 4661a: 6716 beqs 46632 <_Objects_Name_to_id_u32+0x62> <== NOT EXECUTED continue; if ( name == the_object->name.name_u32 ) { 4661c: b4a8 000c cmpl %a0@(12),%d2 <== NOT EXECUTED 46620: 6610 bnes 46632 <_Objects_Name_to_id_u32+0x62> <== NOT EXECUTED *id = the_object->id; 46622: 22a8 0008 movel %a0@(8),%a1@ <== NOT EXECUTED 46626: 4280 clrl %d0 <== NOT EXECUTED 46628: 600e bras 46638 <_Objects_Name_to_id_u32+0x68> <== NOT EXECUTED search_local_node = TRUE; if ( search_local_node ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 4662a: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 46630: 7001 moveq #1,%d0 <== NOT EXECUTED 46632: b280 cmpl %d0,%d1 <== NOT EXECUTED 46634: 64d8 bccs 4660e <_Objects_Name_to_id_u32+0x3e> <== NOT EXECUTED 46636: 7001 moveq #1,%d0 <== NOT EXECUTED name_for_mp.name_u32 = name; return _Objects_MP_Global_name_search( information, name_for_mp, node, id ); #else return OBJECTS_INVALID_NAME; #endif } 46638: 4cd7 040c moveml %sp@,%d2-%d3/%a2 <== NOT EXECUTED 4663c: 4e5e unlk %fp <== NOT EXECUTED 4663e: 4e75 rts 000465a0 <_Objects_Namespace_remove>: void _Objects_Namespace_remove( Objects_Information *information, Objects_Control *the_object ) { 465a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 465a4: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * If this is a string format name, then free the memory. */ if ( information->is_string && the_object->name.name_p ) 465a6: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED void _Objects_Namespace_remove( Objects_Information *information, Objects_Control *the_object ) { 465aa: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED /* * If this is a string format name, then free the memory. */ if ( information->is_string && the_object->name.name_p ) 465ae: 4a28 0034 tstb %a0@(52) <== NOT EXECUTED 465b2: 6710 beqs 465c4 <_Objects_Namespace_remove+0x24> <== NOT EXECUTED 465b4: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 465b8: 670a beqs 465c4 <_Objects_Namespace_remove+0x24> <== NOT EXECUTED _Workspace_Free( (void *)the_object->name.name_p ); 465ba: 2f00 movel %d0,%sp@- <== NOT EXECUTED 465bc: 4eb9 0004 7dd8 jsr 47dd8 <_Workspace_Free> <== NOT EXECUTED 465c2: 588f addql #4,%sp <== NOT EXECUTED /* * Clear out either format. */ the_object->name.name_p = NULL; the_object->name.name_u32 = 0; 465c4: 42aa 000c clrl %a2@(12) <== NOT EXECUTED } 465c8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 465cc: 4e5e unlk %fp <== NOT EXECUTED 465ce: 4e75 rts 00047e88 <_Objects_Set_name>: bool _Objects_Set_name( Objects_Information *information, Objects_Control *the_object, const char *name ) { 47e88: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 47e8c: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED 47e90: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED size_t length; const char *s; s = name; length = strnlen( name, information->name_length ) + 1; 47e94: 4280 clrl %d0 <== NOT EXECUTED 47e96: 302a 0036 movew %a2@(54),%d0 <== NOT EXECUTED 47e9a: 2f00 movel %d0,%sp@- <== NOT EXECUTED bool _Objects_Set_name( Objects_Information *information, Objects_Control *the_object, const char *name ) { 47e9c: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 47ea0: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED size_t length; const char *s; s = name; length = strnlen( name, information->name_length ) + 1; 47ea4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47ea6: 4eb9 0004 de68 jsr 4de68 <== NOT EXECUTED 47eac: 2600 movel %d0,%d3 <== NOT EXECUTED if ( information->is_string ) { 47eae: 508f addql #8,%sp <== NOT EXECUTED { size_t length; const char *s; s = name; length = strnlen( name, information->name_length ) + 1; 47eb0: 5283 addql #1,%d3 <== NOT EXECUTED if ( information->is_string ) { 47eb2: 4a2a 0034 tstb %a2@(52) <== NOT EXECUTED 47eb6: 6748 beqs 47f00 <_Objects_Set_name+0x78> <== NOT EXECUTED char *d; d = _Workspace_Allocate( length ); 47eb8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47eba: 4eb9 0004 9718 jsr 49718 <_Workspace_Allocate> <== NOT EXECUTED if ( !d ) 47ec0: 588f addql #4,%sp <== NOT EXECUTED length = strnlen( name, information->name_length ) + 1; if ( information->is_string ) { char *d; d = _Workspace_Allocate( length ); 47ec2: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !d ) 47ec4: 4a80 tstl %d0 <== NOT EXECUTED 47ec6: 6606 bnes 47ece <_Objects_Set_name+0x46> <== NOT EXECUTED 47ec8: 4200 clrb %d0 <== NOT EXECUTED 47eca: 6000 0088 braw 47f54 <_Objects_Set_name+0xcc> <== NOT EXECUTED return FALSE; if ( the_object->name.name_p ) { 47ece: 202c 000c movel %a4@(12),%d0 <== NOT EXECUTED 47ed2: 670e beqs 47ee2 <_Objects_Set_name+0x5a> <== NOT EXECUTED _Workspace_Free( (void *)the_object->name.name_p ); 47ed4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47ed6: 4eb9 0004 9700 jsr 49700 <_Workspace_Free> <== NOT EXECUTED the_object->name.name_p = NULL; 47edc: 588f addql #4,%sp <== NOT EXECUTED 47ede: 42ac 000c clrl %a4@(12) <== NOT EXECUTED } strncpy( d, name, length ); 47ee2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47ee4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47ee6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47ee8: 4eb9 0004 dddc jsr 4dddc <== NOT EXECUTED d[ length ] = '\0'; 47eee: 4200 clrb %d0 <== NOT EXECUTED 47ef0: 1580 3800 moveb %d0,%a2@(00000000,%d3:l) <== NOT EXECUTED the_object->name.name_p = d; 47ef4: 294a 000c movel %a2,%a4@(12) <== NOT EXECUTED 47ef8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 47efe: 6052 bras 47f52 <_Objects_Set_name+0xca> <== NOT EXECUTED } else { the_object->name.name_u32 = _Objects_Build_name( 47f00: 203c 2000 0000 movel #536870912,%d0 <== NOT EXECUTED 47f06: 4a83 tstl %d3 <== NOT EXECUTED 47f08: 675e beqs 47f68 <_Objects_Set_name+0xe0> <== NOT EXECUTED 47f0a: 1013 moveb %a3@,%d0 <== NOT EXECUTED 47f0c: 7218 moveq #24,%d1 <== NOT EXECUTED 47f0e: 49c0 extbl %d0 <== NOT EXECUTED 47f10: e3a8 lsll %d1,%d0 <== NOT EXECUTED 47f12: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 47f16: b283 cmpl %d3,%d1 <== NOT EXECUTED 47f18: 674e beqs 47f68 <_Objects_Set_name+0xe0> <== NOT EXECUTED 47f1a: 182b 0001 moveb %a3@(1),%d4 <== NOT EXECUTED 47f1e: 49c4 extbl %d4 <== NOT EXECUTED 47f20: 4844 swap %d4 <== NOT EXECUTED 47f22: 4244 clrw %d4 <== NOT EXECUTED 47f24: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 47f28: b283 cmpl %d3,%d1 <== NOT EXECUTED 47f2a: 6432 bccs 47f5e <_Objects_Set_name+0xd6> <== NOT EXECUTED 47f2c: 142b 0002 moveb %a3@(2),%d2 <== NOT EXECUTED 47f30: 49c2 extbl %d2 <== NOT EXECUTED 47f32: e18a lsll #8,%d2 <== NOT EXECUTED 47f34: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 47f38: b283 cmpl %d3,%d1 <== NOT EXECUTED 47f3a: 6506 bcss 47f42 <_Objects_Set_name+0xba> <== NOT EXECUTED 47f3c: 123c 0020 moveb #32,%d1 <== NOT EXECUTED 47f40: 6006 bras 47f48 <_Objects_Set_name+0xc0> <== NOT EXECUTED 47f42: 122b 0003 moveb %a3@(3),%d1 <== NOT EXECUTED 47f46: 49c1 extbl %d1 <== NOT EXECUTED 47f48: 8084 orl %d4,%d0 <== NOT EXECUTED 47f4a: 8082 orl %d2,%d0 <== NOT EXECUTED 47f4c: 8081 orl %d1,%d0 <== NOT EXECUTED 47f4e: 2940 000c movel %d0,%a4@(12) <== NOT EXECUTED 47f52: 7001 moveq #1,%d0 <== NOT EXECUTED ); } return TRUE; } 47f54: 4cee 1c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a4 <== NOT EXECUTED 47f5a: 4e5e unlk %fp <== NOT EXECUTED 47f5c: 4e75 rts <== NOT EXECUTED strncpy( d, name, length ); d[ length ] = '\0'; the_object->name.name_p = d; } else { the_object->name.name_u32 = _Objects_Build_name( 47f5e: 7220 moveq #32,%d1 <== NOT EXECUTED 47f60: 243c 0000 2000 movel #8192,%d2 <== NOT EXECUTED 47f66: 60e0 bras 47f48 <_Objects_Set_name+0xc0> <== NOT EXECUTED 47f68: 7820 moveq #32,%d4 <== NOT EXECUTED 47f6a: 4844 swap %d4 <== NOT EXECUTED 47f6c: 60f0 bras 47f5e <_Objects_Set_name+0xd6> <== NOT EXECUTED ... 00046648 <_Objects_Shrink_information>: */ void _Objects_Shrink_information( Objects_Information *information ) { 46648: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4664c: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 46650: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_index( Objects_Id id ) { return (id >> OBJECTS_INDEX_START_BIT) & OBJECTS_INDEX_VALID_BITS; 46654: 262a 0006 movel %a2@(6),%d3 <== NOT EXECUTED /* * Search the list to find block or chunnk with all objects inactive. */ index_base = _Objects_Get_index( information->minimum_id ); block_count = ( information->maximum - index_base ) / information->allocation_size; 46658: 242a 0012 movel %a2@(18),%d2 <== NOT EXECUTED 4665c: 4280 clrl %d0 <== NOT EXECUTED 4665e: 0283 0000 ffff andil #65535,%d3 <== NOT EXECUTED 46664: 302a 000e movew %a2@(14),%d0 <== NOT EXECUTED 46668: 9083 subl %d3,%d0 <== NOT EXECUTED 4666a: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 4666e: 4281 clrl %d1 <== NOT EXECUTED 46670: 6074 bras 466e6 <_Objects_Shrink_information+0x9e> <== NOT EXECUTED for ( block = 0; block < block_count; block++ ) { if ( information->inactive_per_block[ block ] == information->allocation_size ) { 46672: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED 46676: b4b0 4800 cmpl %a0@(00000000,%d4:l),%d2 <== NOT EXECUTED 4667a: 6666 bnes 466e2 <_Objects_Shrink_information+0x9a> <== NOT EXECUTED /* * XXX - Not to sure how to use a chain where you need to iterate and * and remove elements. */ the_object = (Objects_Control *) information->Inactive.first; 4667c: 206a 001e moveal %a2@(30),%a0 <== NOT EXECUTED if ( !_Chain_Is_last( &the_object->Node ) ) the_object = (Objects_Control *) the_object->Node.next; else the_object = NULL; _Chain_Extract( &extract_me->Node ); 46680: 47f9 0004 9a34 lea 49a34 <_Chain_Extract>,%a3 <== NOT EXECUTED 46686: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED 4668a: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED */ do { index = _Objects_Get_index( the_object->id ); if ((index >= index_base) && 46690: b681 cmpl %d1,%d3 <== NOT EXECUTED 46692: 6216 bhis 466aa <_Objects_Shrink_information+0x62> <== NOT EXECUTED 46694: 2003 movel %d3,%d0 <== NOT EXECUTED 46696: d0aa 0012 addl %a2@(18),%d0 <== NOT EXECUTED 4669a: b081 cmpl %d1,%d0 <== NOT EXECUTED 4669c: 630c blss 466aa <_Objects_Shrink_information+0x62> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_last( const Chain_Node *the_node ) { return (the_node->next == NULL); 4669e: 2410 movel %a0@,%d2 <== NOT EXECUTED if ( !_Chain_Is_last( &the_object->Node ) ) the_object = (Objects_Control *) the_object->Node.next; else the_object = NULL; _Chain_Extract( &extract_me->Node ); 466a0: 2f08 movel %a0,%sp@- <== NOT EXECUTED 466a2: 4e93 jsr %a3@ <== NOT EXECUTED 466a4: 2042 moveal %d2,%a0 <== NOT EXECUTED 466a6: 588f addql #4,%sp <== NOT EXECUTED 466a8: 6002 bras 466ac <_Objects_Shrink_information+0x64> <== NOT EXECUTED } else { the_object = (Objects_Control *) the_object->Node.next; 466aa: 2050 moveal %a0@,%a0 <== NOT EXECUTED } } while ( the_object && !_Chain_Is_last( &the_object->Node ) ); 466ac: 4a88 tstl %a0 <== NOT EXECUTED 466ae: 6704 beqs 466b4 <_Objects_Shrink_information+0x6c> <== NOT EXECUTED 466b0: 4a90 tstl %a0@ <== NOT EXECUTED 466b2: 66d2 bnes 46686 <_Objects_Shrink_information+0x3e> <== NOT EXECUTED /* * Free the memory and reset the structures in the object' information */ _Workspace_Free( information->object_blocks[ block ] ); 466b4: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 466b8: 2f30 4800 movel %a0@(00000000,%d4:l),%sp@- <== NOT EXECUTED 466bc: 4eb9 0004 7dd8 jsr 47dd8 <_Workspace_Free> <== NOT EXECUTED information->object_blocks[ block ] = NULL; information->inactive_per_block[ block ] = 0; 466c2: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED 466c6: 42b0 4800 clrl %a0@(00000000,%d4:l) <== NOT EXECUTED /* * Free the memory and reset the structures in the object' information */ _Workspace_Free( information->object_blocks[ block ] ); information->object_blocks[ block ] = NULL; 466ca: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED information->inactive_per_block[ block ] = 0; information->inactive -= information->allocation_size; 466ce: 302a 002a movew %a2@(42),%d0 <== NOT EXECUTED 466d2: 90aa 0012 subl %a2@(18),%d0 <== NOT EXECUTED /* * Free the memory and reset the structures in the object' information */ _Workspace_Free( information->object_blocks[ block ] ); information->object_blocks[ block ] = NULL; 466d6: 42b0 4800 clrl %a0@(00000000,%d4:l) <== NOT EXECUTED information->inactive_per_block[ block ] = 0; information->inactive -= information->allocation_size; 466da: 3540 002a movew %d0,%a2@(42) <== NOT EXECUTED 466de: 588f addql #4,%sp <== NOT EXECUTED 466e0: 600c bras 466ee <_Objects_Shrink_information+0xa6> <== NOT EXECUTED return; } index_base += information->allocation_size; 466e2: d682 addl %d2,%d3 <== NOT EXECUTED */ index_base = _Objects_Get_index( information->minimum_id ); block_count = ( information->maximum - index_base ) / information->allocation_size; for ( block = 0; block < block_count; block++ ) { 466e4: 5281 addql #1,%d1 <== NOT EXECUTED 466e6: 2801 movel %d1,%d4 <== NOT EXECUTED 466e8: e58c lsll #2,%d4 <== NOT EXECUTED 466ea: b081 cmpl %d1,%d0 <== NOT EXECUTED 466ec: 6284 bhis 46672 <_Objects_Shrink_information+0x2a> <== NOT EXECUTED return; } index_base += information->allocation_size; } } 466ee: 4cee 0c1c ffec moveml %fp@(-20),%d2-%d4/%a2-%a3 <== NOT EXECUTED 466f4: 4e5e unlk %fp <== NOT EXECUTED 466f6: 4e75 rts 00049660 <_Partition_Manager_initialization>: */ void _Partition_Manager_initialization( uint32_t maximum_partitions ) { 49660: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49664: 4878 0004 pea 4 <== NOT EXECUTED 49668: 42a7 clrl %sp@- <== NOT EXECUTED 4966a: 4878 0030 pea 30 <== NOT EXECUTED 4966e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49672: 4878 0005 pea 5 <== NOT EXECUTED 49676: 4878 0002 pea 2 <== NOT EXECUTED 4967a: 4879 0005 6fda pea 56fda <_Partition_Information> <== NOT EXECUTED 49680: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED 49686: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_PARTITION, _Partition_MP_Process_packet ); #endif } 4968c: 4e5e unlk %fp <== NOT EXECUTED 4968e: 4e75 rts 00049e64 <_Protected_heap_Allocate>: void *_Protected_heap_Allocate( Heap_Control *the_heap, size_t size ) { 49e64: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49e68: 2f02 movel %d2,%sp@- <== NOT EXECUTED void *p; _RTEMS_Lock_allocator(); 49e6a: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 49e70: 4eb9 0004 5810 jsr 45810 <_API_Mutex_Lock> <== NOT EXECUTED p = _Heap_Allocate( the_heap, size ); 49e76: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 49e7a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49e7e: 4eb9 0004 9c20 jsr 49c20 <_Heap_Allocate> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 49e84: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { void *p; _RTEMS_Lock_allocator(); p = _Heap_Allocate( the_heap, size ); 49e8a: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 49e8c: 4eb9 0004 5874 jsr 45874 <_API_Mutex_Unlock> <== NOT EXECUTED return p; } 49e92: 2002 movel %d2,%d0 <== NOT EXECUTED 49e94: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 49e98: 4e5e unlk %fp <== NOT EXECUTED 49e9a: 4e75 rts 000495bc <_Protected_heap_Allocate_aligned>: void *_Protected_heap_Allocate_aligned( Heap_Control *the_heap, size_t size, uint32_t alignment ) { 495bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 495c0: 2f02 movel %d2,%sp@- <== NOT EXECUTED void *p; _RTEMS_Lock_allocator(); 495c2: 2f39 0005 a6de movel 5a6de <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 495c8: 4eb9 0004 813c jsr 4813c <_API_Mutex_Lock> <== NOT EXECUTED p = _Heap_Allocate_aligned( the_heap, size, alignment ); 495ce: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 495d2: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 495d6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 495da: 4eb9 0004 8738 jsr 48738 <_Heap_Allocate_aligned> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 495e0: 2f39 0005 a6de movel 5a6de <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { void *p; _RTEMS_Lock_allocator(); p = _Heap_Allocate_aligned( the_heap, size, alignment ); 495e6: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 495e8: 4eb9 0004 81a0 jsr 481a0 <_API_Mutex_Unlock> <== NOT EXECUTED return p; } 495ee: 2002 movel %d2,%d0 <== NOT EXECUTED 495f0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 495f4: 4e5e unlk %fp <== NOT EXECUTED 495f6: 4e75 rts 00049630 <_Protected_heap_Extend>: bool _Protected_heap_Extend( Heap_Control *the_heap, void *starting_address, size_t size ) { 49630: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 49634: 2f02 movel %d2,%sp@- <== NOT EXECUTED Heap_Extend_status status; uint32_t amount_extended; _RTEMS_Lock_allocator(); 49636: 2f39 0005 a6de movel 5a6de <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4963c: 4eb9 0004 813c jsr 4813c <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Extend(the_heap, starting_address, size, &amount_extended); 49642: 486e fffc pea %fp@(-4) <== NOT EXECUTED 49646: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4964a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4964e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49652: 4eb9 0004 cbf8 jsr 4cbf8 <_Heap_Extend> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 49658: 2f39 0005 a6de movel 5a6de <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED { Heap_Extend_status status; uint32_t amount_extended; _RTEMS_Lock_allocator(); status = _Heap_Extend(the_heap, starting_address, size, &amount_extended); 4965e: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 49660: 4eb9 0004 81a0 jsr 481a0 <_API_Mutex_Unlock> <== NOT EXECUTED 49666: 4a82 tstl %d2 <== NOT EXECUTED 49668: 57c0 seq %d0 <== NOT EXECUTED return (status == HEAP_EXTEND_SUCCESSFUL); } 4966a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED Heap_Extend_status status; uint32_t amount_extended; _RTEMS_Lock_allocator(); status = _Heap_Extend(the_heap, starting_address, size, &amount_extended); _RTEMS_Unlock_allocator(); 4966e: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED return (status == HEAP_EXTEND_SUCCESSFUL); } 49674: 4e5e unlk %fp <== NOT EXECUTED 49676: 4480 negl %d0 <== NOT EXECUTED 49678: 4e75 rts <== NOT EXECUTED ... 00049e9c <_Protected_heap_Free>: bool _Protected_heap_Free( Heap_Control *the_heap, void *start_address ) { 49e9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49ea0: 2f02 movel %d2,%sp@- <== NOT EXECUTED bool status; _RTEMS_Lock_allocator(); 49ea2: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 49ea8: 4eb9 0004 5810 jsr 45810 <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Free( the_heap, start_address ); 49eae: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 49eb2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49eb6: 4eb9 0004 9ca0 jsr 49ca0 <_Heap_Free> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 49ebc: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { bool status; _RTEMS_Lock_allocator(); status = _Heap_Free( the_heap, start_address ); 49ec2: 1400 moveb %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 49ec4: 4eb9 0004 5874 jsr 45874 <_API_Mutex_Unlock> <== NOT EXECUTED return status; } 49eca: 1002 moveb %d2,%d0 <== NOT EXECUTED 49ecc: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 49ed0: 4e5e unlk %fp <== NOT EXECUTED 49ed2: 4e75 rts 00053650 <_Protected_heap_Get_block_size>: bool _Protected_heap_Get_block_size( Heap_Control *the_heap, void *starting_address, size_t *size ) { 53650: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 53654: 2f02 movel %d2,%sp@- <== NOT EXECUTED bool status; _RTEMS_Lock_allocator(); 53656: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 5365c: 4eb9 0004 5810 jsr 45810 <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Size_of_user_area( the_heap, starting_address, size ); 53662: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 53666: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5366a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5366e: 4eb9 0005 3884 jsr 53884 <_Heap_Size_of_user_area> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 53674: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { bool status; _RTEMS_Lock_allocator(); status = _Heap_Size_of_user_area( the_heap, starting_address, size ); 5367a: 1400 moveb %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 5367c: 4eb9 0004 5874 jsr 45874 <_API_Mutex_Unlock> <== NOT EXECUTED return status; } 53682: 1002 moveb %d2,%d0 <== NOT EXECUTED 53684: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 53688: 4e5e unlk %fp <== NOT EXECUTED 5368a: 4e75 rts 0004a458 <_Protected_heap_Get_free_information>: bool _Protected_heap_Get_free_information( Heap_Control *the_heap, Heap_Information *info ) { 4a458: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * TBD: _Heap_Get_free_information does not error check or return status. */ _RTEMS_Lock_allocator(); 4a45c: 2f39 0009 2716 movel 92716 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4a462: 4eb9 0004 93bc jsr 493bc <_API_Mutex_Lock> <== NOT EXECUTED _Heap_Get_free_information( the_heap, info ); 4a468: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a46c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a470: 4eb9 0005 dde4 jsr 5dde4 <_Heap_Get_free_information> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4a476: 2f39 0009 2716 movel 92716 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4a47c: 4eb9 0004 9420 jsr 49420 <_API_Mutex_Unlock> <== NOT EXECUTED return true; } 4a482: 4e5e unlk %fp <== NOT EXECUTED 4a484: 7001 moveq #1,%d0 <== NOT EXECUTED 4a486: 4e75 rts 0005df5c <_Protected_heap_Get_information>: bool _Protected_heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) { 5df5c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5df60: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5df62: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 5df66: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5df68: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Heap_Get_information_status status; if ( !the_heap ) 5df6c: 4a83 tstl %d3 <== NOT EXECUTED 5df6e: 6736 beqs 5dfa6 <_Protected_heap_Get_information+0x4a> <== NOT EXECUTED return false; if ( !the_info ) 5df70: 4a82 tstl %d2 <== NOT EXECUTED 5df72: 6732 beqs 5dfa6 <_Protected_heap_Get_information+0x4a> <== NOT EXECUTED return false; _RTEMS_Lock_allocator(); 5df74: 2f39 0009 2716 movel 92716 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 5df7a: 4eb9 0004 93bc jsr 493bc <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Get_information( the_heap, the_info ); 5df80: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5df82: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5df84: 4eb9 0006 68b0 jsr 668b0 <_Heap_Get_information> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 5df8a: 2f39 0009 2716 movel 92716 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED if ( !the_info ) return false; _RTEMS_Lock_allocator(); status = _Heap_Get_information( the_heap, the_info ); 5df90: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 5df92: 4eb9 0004 9420 jsr 49420 <_API_Mutex_Unlock> <== NOT EXECUTED if ( status == HEAP_GET_INFORMATION_SUCCESSFUL ) 5df98: 4a82 tstl %d2 <== NOT EXECUTED 5df9a: 57c0 seq %d0 <== NOT EXECUTED 5df9c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5dfa2: 4480 negl %d0 <== NOT EXECUTED 5dfa4: 6002 bras 5dfa8 <_Protected_heap_Get_information+0x4c> <== NOT EXECUTED 5dfa6: 4200 clrb %d0 <== NOT EXECUTED return true; return false; } 5dfa8: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5dfac: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 5dfb0: 4e5e unlk %fp <== NOT EXECUTED 5dfb2: 4e75 rts 0005368c <_Protected_heap_Resize_block>: bool _Protected_heap_Resize_block( Heap_Control *the_heap, void *starting_address, size_t size ) { 5368c: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 53690: 2f02 movel %d2,%sp@- <== NOT EXECUTED Heap_Resize_status status; uint32_t old_mem_size; uint32_t avail_mem_size; _RTEMS_Lock_allocator(); 53692: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 53698: 4eb9 0004 5810 jsr 45810 <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Resize_block( 5369e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 536a2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 536a6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 536aa: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 536ae: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 536b2: 4eb9 0005 36dc jsr 536dc <_Heap_Resize_block> <== NOT EXECUTED the_heap, starting_address, size, &old_mem_size, &avail_mem_size ); _RTEMS_Unlock_allocator(); 536b8: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED Heap_Resize_status status; uint32_t old_mem_size; uint32_t avail_mem_size; _RTEMS_Lock_allocator(); status = _Heap_Resize_block( 536be: 2400 movel %d0,%d2 <== NOT EXECUTED the_heap, starting_address, size, &old_mem_size, &avail_mem_size ); _RTEMS_Unlock_allocator(); 536c0: 4eb9 0004 5874 jsr 45874 <_API_Mutex_Unlock> <== NOT EXECUTED 536c6: 4a82 tstl %d2 <== NOT EXECUTED 536c8: 57c0 seq %d0 <== NOT EXECUTED return (status == HEAP_RESIZE_SUCCESSFUL); } 536ca: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED uint32_t avail_mem_size; _RTEMS_Lock_allocator(); status = _Heap_Resize_block( the_heap, starting_address, size, &old_mem_size, &avail_mem_size ); _RTEMS_Unlock_allocator(); 536ce: dffc 0000 001c addal #28,%sp <== NOT EXECUTED return (status == HEAP_RESIZE_SUCCESSFUL); } 536d4: 4e5e unlk %fp <== NOT EXECUTED 536d6: 4480 negl %d0 <== NOT EXECUTED 536d8: 4e75 rts <== NOT EXECUTED ... 000497c8 <_Protected_heap_Walk>: bool _Protected_heap_Walk( Heap_Control *the_heap, int source, bool do_dump ) { 497c8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 497cc: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 497d0: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 497d4: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED * then it is forbidden to lock a mutex. But since we are inside * a critical section, it should be safe to walk it unlocked. * * NOTE: Dispatching is also disabled during initialization. */ if ( !_Thread_Dispatch_disable_level ) { 497d8: 2039 0005 a628 movel 5a628 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 497de: 4282 clrl %d2 <== NOT EXECUTED 497e0: 142e 0013 moveb %fp@(19),%d2 <== NOT EXECUTED 497e4: 4a80 tstl %d0 <== NOT EXECUTED 497e6: 6638 bnes 49820 <_Protected_heap_Walk+0x58> <== NOT EXECUTED _RTEMS_Lock_allocator(); 497e8: 2f39 0005 a6de movel 5a6de <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 497ee: 4eb9 0004 813c jsr 4813c <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Walk( the_heap, source, do_dump ); 497f4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 497f6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 497f8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 497fa: 4eb9 0004 cdd0 jsr 4cdd0 <_Heap_Walk> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 49800: 2f39 0005 a6de movel 5a6de <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED * * NOTE: Dispatching is also disabled during initialization. */ if ( !_Thread_Dispatch_disable_level ) { _RTEMS_Lock_allocator(); status = _Heap_Walk( the_heap, source, do_dump ); 49806: 1400 moveb %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 49808: 4eb9 0004 81a0 jsr 481a0 <_API_Mutex_Unlock> <== NOT EXECUTED } else { status = _Heap_Walk( the_heap, source, do_dump ); } return status; } 4980e: 1002 moveb %d2,%d0 <== NOT EXECUTED * NOTE: Dispatching is also disabled during initialization. */ if ( !_Thread_Dispatch_disable_level ) { _RTEMS_Lock_allocator(); status = _Heap_Walk( the_heap, source, do_dump ); _RTEMS_Unlock_allocator(); 49810: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED } else { status = _Heap_Walk( the_heap, source, do_dump ); } return status; } 49816: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED 4981c: 4e5e unlk %fp <== NOT EXECUTED 4981e: 4e75 rts <== NOT EXECUTED if ( !_Thread_Dispatch_disable_level ) { _RTEMS_Lock_allocator(); status = _Heap_Walk( the_heap, source, do_dump ); _RTEMS_Unlock_allocator(); } else { status = _Heap_Walk( the_heap, source, do_dump ); 49820: 2d42 0010 movel %d2,%fp@(16) <== NOT EXECUTED 49824: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 49828: 2d44 0008 movel %d4,%fp@(8) <== NOT EXECUTED } return status; } 4982c: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED 49832: 4e5e unlk %fp <== NOT EXECUTED if ( !_Thread_Dispatch_disable_level ) { _RTEMS_Lock_allocator(); status = _Heap_Walk( the_heap, source, do_dump ); _RTEMS_Unlock_allocator(); } else { status = _Heap_Walk( the_heap, source, do_dump ); 49834: 4ef9 0004 cdd0 jmp 4cdd0 <_Heap_Walk> <== NOT EXECUTED ... 0004564c <_RTEMS_API_Initialize>: */ void _RTEMS_API_Initialize( rtems_configuration_table *configuration_table ) { 4564c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45650: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45654: 2f0a movel %a2,%sp@- <== NOT EXECUTED rtems_api_configuration_table *api_configuration; api_configuration = configuration_table->RTEMS_api_configuration; 45656: 2468 003e moveal %a0@(62),%a2 <== NOT EXECUTED _Objects_Information_table[OBJECTS_CLASSIC_API] = _RTEMS_Objects; 4565a: 203c 0005 6e5a movel #355930,%d0 <== NOT EXECUTED 45660: 23c0 0005 6c64 movel %d0,56c64 <_Objects_Information_table+0x8> <== NOT EXECUTED _Attributes_Handler_initialization(); _Interrupt_Manager_initialization(); 45666: 4eb9 0004 9628 jsr 49628 <_Interrupt_Manager_initialization> <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) _Multiprocessing_Manager_initialization(); #endif _RTEMS_tasks_Manager_initialization( api_configuration->maximum_tasks ); 4566c: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 4566e: 4eb9 0004 97ce jsr 497ce <_RTEMS_tasks_Manager_initialization> <== NOT EXECUTED _Timer_Manager_initialization( api_configuration->maximum_timers ); 45674: 2f2a 0006 movel %a2@(6),%sp@- <== NOT EXECUTED 45678: 4eb9 0004 96f0 jsr 496f0 <_Timer_Manager_initialization> <== NOT EXECUTED _Signal_Manager_initialization(); 4567e: 4eb9 0004 975c jsr 4975c <_Signal_Manager_initialization> <== NOT EXECUTED _Event_Manager_initialization(); 45684: 4eb9 0004 9618 jsr 49618 <_Event_Manager_initialization> <== NOT EXECUTED _Message_queue_Manager_initialization( 4568a: 2f2a 000e movel %a2@(14),%sp@- <== NOT EXECUTED 4568e: 4eb9 0004 9630 jsr 49630 <_Message_queue_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_message_queues ); _Semaphore_Manager_initialization( api_configuration->maximum_semaphores ); 45694: 2f2a 000a movel %a2@(10),%sp@- <== NOT EXECUTED 45698: 4eb9 0004 972c jsr 4972c <_Semaphore_Manager_initialization> <== NOT EXECUTED _Partition_Manager_initialization( api_configuration->maximum_partitions ); 4569e: 2f2a 0012 movel %a2@(18),%sp@- <== NOT EXECUTED 456a2: 4eb9 0004 9660 jsr 49660 <_Partition_Manager_initialization> <== NOT EXECUTED _Region_Manager_initialization( api_configuration->maximum_regions ); 456a8: 2f2a 0016 movel %a2@(22),%sp@- <== NOT EXECUTED 456ac: 4eb9 0004 96c0 jsr 496c0 <_Region_Manager_initialization> <== NOT EXECUTED _Dual_ported_memory_Manager_initialization( api_configuration->maximum_ports); 456b2: 2f2a 001a movel %a2@(26),%sp@- <== NOT EXECUTED 456b6: 4eb9 0004 95e8 jsr 495e8 <_Dual_ported_memory_Manager_initialization> <== NOT EXECUTED _Rate_monotonic_Manager_initialization( api_configuration->maximum_periods ); 456bc: 2f2a 001e movel %a2@(30),%sp@- <== NOT EXECUTED 456c0: 4eb9 0004 9690 jsr 49690 <_Rate_monotonic_Manager_initialization> <== NOT EXECUTED _Barrier_Manager_initialization( api_configuration->maximum_barriers ); 456c6: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 456cc: 2d6a 0022 0008 movel %a2@(34),%fp@(8) <== NOT EXECUTED } 456d2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 456d6: 4e5e unlk %fp <== NOT EXECUTED _Dual_ported_memory_Manager_initialization( api_configuration->maximum_ports); _Rate_monotonic_Manager_initialization( api_configuration->maximum_periods ); _Barrier_Manager_initialization( api_configuration->maximum_barriers ); 456d8: 4ef9 0004 95b8 jmp 495b8 <_Barrier_Manager_initialization> <== NOT EXECUTED ... 00049954 <_RTEMS_Tasks_Invoke_task_variable_dtor>: void _RTEMS_Tasks_Invoke_task_variable_dtor( Thread_Control *the_thread, rtems_task_variable_t *tvp ) { 49954: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49958: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4995a: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED void (*dtor)(void *); void *value; dtor = tvp->dtor; if (_Thread_Is_executing(the_thread)) { 4995e: 2039 0005 6d62 movel 56d62 <_Thread_Executing>,%d0 <== NOT EXECUTED ) { void (*dtor)(void *); void *value; dtor = tvp->dtor; 49964: 226a 0010 moveal %a2@(16),%a1 <== NOT EXECUTED if (_Thread_Is_executing(the_thread)) { 49968: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 4996c: 660c bnes 4997a <_RTEMS_Tasks_Invoke_task_variable_dtor+0x26> <== NOT EXECUTED value = *tvp->ptr; 4996e: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED 49972: 2010 movel %a0@,%d0 <== NOT EXECUTED *tvp->ptr = tvp->gval; 49974: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED 49978: 6004 bras 4997e <_RTEMS_Tasks_Invoke_task_variable_dtor+0x2a> <== NOT EXECUTED } else { value = tvp->tval; 4997a: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED } if ( dtor ) 4997e: 4a89 tstl %a1 <== NOT EXECUTED 49980: 6706 beqs 49988 <_RTEMS_Tasks_Invoke_task_variable_dtor+0x34> <== NOT EXECUTED (*dtor)(value); 49982: 2f00 movel %d0,%sp@- <== NOT EXECUTED 49984: 4e91 jsr %a1@ <== NOT EXECUTED 49986: 588f addql #4,%sp <== NOT EXECUTED _Workspace_Free(tvp); 49988: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } 4998c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 49990: 4e5e unlk %fp <== NOT EXECUTED } if ( dtor ) (*dtor)(value); _Workspace_Free(tvp); 49992: 4ef9 0004 7dd8 jmp 47dd8 <_Workspace_Free> <== NOT EXECUTED 000498d2 <_RTEMS_tasks_Create_extension>: /* * Notepads must be the last entry in the structure and they * can be left off if disabled in the configuration. */ to_allocate = sizeof( RTEMS_API_Control ); if ( !rtems_configuration_get_notepads_enabled() ) 498d2: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED bool _RTEMS_tasks_Create_extension( Thread_Control *executing, Thread_Control *created ) { 498d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 498dc: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * Notepads must be the last entry in the structure and they * can be left off if disabled in the configuration. */ to_allocate = sizeof( RTEMS_API_Control ); if ( !rtems_configuration_get_notepads_enabled() ) 498de: 2068 003e moveal %a0@(62),%a0 <== NOT EXECUTED bool _RTEMS_tasks_Create_extension( Thread_Control *executing, Thread_Control *created ) { 498e2: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED /* * Notepads must be the last entry in the structure and they * can be left off if disabled in the configuration. */ to_allocate = sizeof( RTEMS_API_Control ); if ( !rtems_configuration_get_notepads_enabled() ) 498e6: 4a28 0004 tstb %a0@(4) <== NOT EXECUTED 498ea: 6604 bnes 498f0 <_RTEMS_tasks_Create_extension+0x1e> <== NOT EXECUTED 498ec: 701e moveq #30,%d0 <== NOT EXECUTED 498ee: 6002 bras 498f2 <_RTEMS_tasks_Create_extension+0x20> <== NOT EXECUTED 498f0: 705e moveq #94,%d0 <== NOT EXECUTED to_allocate -= (RTEMS_NUMBER_NOTEPADS * sizeof(uint32_t)); api = _Workspace_Allocate( to_allocate ); 498f2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 498f4: 4eb9 0004 7df0 jsr 47df0 <_Workspace_Allocate> <== NOT EXECUTED if ( !api ) 498fa: 588f addql #4,%sp <== NOT EXECUTED */ to_allocate = sizeof( RTEMS_API_Control ); if ( !rtems_configuration_get_notepads_enabled() ) to_allocate -= (RTEMS_NUMBER_NOTEPADS * sizeof(uint32_t)); api = _Workspace_Allocate( to_allocate ); 498fc: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !api ) 498fe: 4a80 tstl %d0 <== NOT EXECUTED 49900: 6604 bnes 49906 <_RTEMS_tasks_Create_extension+0x34> <== NOT EXECUTED 49902: 4200 clrb %d0 <== NOT EXECUTED 49904: 6046 bras 4994c <_RTEMS_tasks_Create_extension+0x7a> <== NOT EXECUTED api->pending_events = EVENT_SETS_NONE_PENDING; _ASR_Initialize( &api->Signal ); created->task_variables = NULL; if ( rtems_configuration_get_notepads_enabled() ) { 49906: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED 4990c: 2068 003e moveal %a0@(62),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _ASR_Initialize ( ASR_Information *information ) { information->is_enabled = true; 49910: 7001 moveq #1,%d0 <== NOT EXECUTED created->API_Extensions[ THREAD_API_RTEMS ] = api; api->pending_events = EVENT_SETS_NONE_PENDING; _ASR_Initialize( &api->Signal ); created->task_variables = NULL; 49912: 42aa 011c clrl %a2@(284) <== NOT EXECUTED 49916: 1340 0008 moveb %d0,%a1@(8) <== NOT EXECUTED api = _Workspace_Allocate( to_allocate ); if ( !api ) return false; created->API_Extensions[ THREAD_API_RTEMS ] = api; 4991a: 2549 010c movel %a1,%a2@(268) <== NOT EXECUTED api->pending_events = EVENT_SETS_NONE_PENDING; 4991e: 4291 clrl %a1@ <== NOT EXECUTED information->handler = NULL; 49920: 42a9 000a clrl %a1@(10) <== NOT EXECUTED information->mode_set = RTEMS_DEFAULT_MODES; 49924: 42a9 000e clrl %a1@(14) <== NOT EXECUTED information->signals_posted = 0; 49928: 42a9 0012 clrl %a1@(18) <== NOT EXECUTED information->signals_pending = 0; 4992c: 42a9 0016 clrl %a1@(22) <== NOT EXECUTED information->nest_level = 0; 49930: 42a9 001a clrl %a1@(26) <== NOT EXECUTED _ASR_Initialize( &api->Signal ); created->task_variables = NULL; if ( rtems_configuration_get_notepads_enabled() ) { 49934: 4a28 0004 tstb %a0@(4) <== NOT EXECUTED 49938: 6710 beqs 4994a <_RTEMS_tasks_Create_extension+0x78> <== NOT EXECUTED 4993a: 41e9 001e lea %a1@(30),%a0 <== NOT EXECUTED 4993e: 4280 clrl %d0 <== NOT EXECUTED for (i=0; i < RTEMS_NUMBER_NOTEPADS; i++) api->Notepads[i] = 0; 49940: 4298 clrl %a0@+ <== NOT EXECUTED api->pending_events = EVENT_SETS_NONE_PENDING; _ASR_Initialize( &api->Signal ); created->task_variables = NULL; if ( rtems_configuration_get_notepads_enabled() ) { for (i=0; i < RTEMS_NUMBER_NOTEPADS; i++) 49942: 5280 addql #1,%d0 <== NOT EXECUTED 49944: 7210 moveq #16,%d1 <== NOT EXECUTED 49946: b280 cmpl %d0,%d1 <== NOT EXECUTED 49948: 66f6 bnes 49940 <_RTEMS_tasks_Create_extension+0x6e> <== NOT EXECUTED 4994a: 7001 moveq #1,%d0 <== NOT EXECUTED api->Notepads[i] = 0; } return true; } 4994c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 49950: 4e5e unlk %fp <== NOT EXECUTED 49952: 4e75 rts 0004988c <_RTEMS_tasks_Delete_extension>: User_extensions_routine _RTEMS_tasks_Delete_extension( Thread_Control *executing, Thread_Control *deleted ) { 4988c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 49890: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 49894: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED /* * Free per task variable memory */ tvp = deleted->task_variables; 49898: 206a 011c moveal %a2@(284),%a0 <== NOT EXECUTED deleted->task_variables = NULL; 4989c: 42aa 011c clrl %a2@(284) <== NOT EXECUTED while (tvp) { next = (rtems_task_variable_t *)tvp->next; _RTEMS_Tasks_Invoke_task_variable_dtor( deleted, tvp ); 498a0: 47f9 0004 9954 lea 49954 <_RTEMS_Tasks_Invoke_task_variable_dtor>,%a3 <== NOT EXECUTED 498a6: 600c bras 498b4 <_RTEMS_tasks_Delete_extension+0x28> <== NOT EXECUTED */ tvp = deleted->task_variables; deleted->task_variables = NULL; while (tvp) { next = (rtems_task_variable_t *)tvp->next; 498a8: 2410 movel %a0@,%d2 <== NOT EXECUTED _RTEMS_Tasks_Invoke_task_variable_dtor( deleted, tvp ); 498aa: 2f08 movel %a0,%sp@- <== NOT EXECUTED 498ac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 498ae: 4e93 jsr %a3@ <== NOT EXECUTED 498b0: 2042 moveal %d2,%a0 <== NOT EXECUTED 498b2: 508f addql #8,%sp <== NOT EXECUTED * Free per task variable memory */ tvp = deleted->task_variables; deleted->task_variables = NULL; while (tvp) { 498b4: 4a88 tstl %a0 <== NOT EXECUTED 498b6: 66f0 bnes 498a8 <_RTEMS_tasks_Delete_extension+0x1c> <== NOT EXECUTED /* * Free API specific memory */ (void) _Workspace_Free( deleted->API_Extensions[ THREAD_API_RTEMS ] ); 498b8: 2f2a 010c movel %a2@(268),%sp@- <== NOT EXECUTED 498bc: 4eb9 0004 7dd8 jsr 47dd8 <_Workspace_Free> <== NOT EXECUTED deleted->API_Extensions[ THREAD_API_RTEMS ] = NULL; 498c2: 42aa 010c clrl %a2@(268) <== NOT EXECUTED 498c6: 588f addql #4,%sp <== NOT EXECUTED } 498c8: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 498ce: 4e5e unlk %fp <== NOT EXECUTED 498d0: 4e75 rts 000497b6 <_RTEMS_tasks_Initialize_user_tasks>: * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks( void ) { if ( _RTEMS_tasks_Initialize_user_tasks_p ) 497b6: 2039 0005 51de movel 551de <_RTEMS_tasks_Initialize_user_tasks_p>,%d0 <== NOT EXECUTED * * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks( void ) { 497bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( _RTEMS_tasks_Initialize_user_tasks_p ) 497c0: 4a80 tstl %d0 <== NOT EXECUTED 497c2: 6706 beqs 497ca <_RTEMS_tasks_Initialize_user_tasks+0x14> <== NOT EXECUTED (*_RTEMS_tasks_Initialize_user_tasks_p)(); } 497c4: 4e5e unlk %fp <== NOT EXECUTED */ void _RTEMS_tasks_Initialize_user_tasks( void ) { if ( _RTEMS_tasks_Initialize_user_tasks_p ) (*_RTEMS_tasks_Initialize_user_tasks_p)(); 497c6: 2240 moveal %d0,%a1 <== NOT EXECUTED 497c8: 4ed1 jmp %a1@ <== NOT EXECUTED } 497ca: 4e5e unlk %fp <== NOT EXECUTED 497cc: 4e75 rts 0004520c <_RTEMS_tasks_Initialize_user_tasks_body>: rtems_status_code return_value; rtems_initialization_tasks_table *user_tasks; rtems_api_configuration_table *api_configuration; api_configuration = _Configuration_Table->RTEMS_api_configuration; 4520c: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED 45212: 2068 003e moveal %a0@(62),%a0 <== NOT EXECUTED * * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks_body( void ) { 45216: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4521a: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED /* * NOTE: This is slightly different from the Ada implementation. */ user_tasks = api_configuration->User_initialization_tasks_table; maximum = api_configuration->number_of_initialization_tasks; 4521e: 2628 0026 movel %a0@(38),%d3 <== NOT EXECUTED /* * NOTE: This is slightly different from the Ada implementation. */ user_tasks = api_configuration->User_initialization_tasks_table; 45222: 2028 002a movel %a0@(42),%d0 <== NOT EXECUTED maximum = api_configuration->number_of_initialization_tasks; if ( !user_tasks || maximum == 0 ) 45226: 676e beqs 45296 <_RTEMS_tasks_Initialize_user_tasks_body+0x8a> <== NOT EXECUTED 45228: 4a83 tstl %d3 <== NOT EXECUTED 4522a: 676a beqs 45296 <_RTEMS_tasks_Initialize_user_tasks_body+0x8a> <== NOT EXECUTED return; for ( index=0 ; index < maximum ; index++ ) { return_value = rtems_task_create( 4522c: 280e movel %fp,%d4 <== NOT EXECUTED */ user_tasks = api_configuration->User_initialization_tasks_table; maximum = api_configuration->number_of_initialization_tasks; if ( !user_tasks || maximum == 0 ) 4522e: 2440 moveal %d0,%a2 <== NOT EXECUTED 45230: 4282 clrl %d2 <== NOT EXECUTED return; for ( index=0 ; index < maximum ; index++ ) { return_value = rtems_task_create( 45232: 5984 subql #4,%d4 <== NOT EXECUTED 45234: 49f9 0004 5008 lea 45008 ,%a4 <== NOT EXECUTED ); if ( !rtems_is_status_successful( return_value ) ) _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value ); return_value = rtems_task_start( 4523a: 47f9 0004 52a0 lea 452a0 ,%a3 <== NOT EXECUTED 45240: 6050 bras 45292 <_RTEMS_tasks_Initialize_user_tasks_body+0x86> <== NOT EXECUTED if ( !user_tasks || maximum == 0 ) return; for ( index=0 ; index < maximum ; index++ ) { return_value = rtems_task_create( 45242: 2f04 movel %d4,%sp@- <== NOT EXECUTED 45244: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 45248: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 4524c: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED 45250: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 45254: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45256: 4e94 jsr %a4@ <== NOT EXECUTED user_tasks[ index ].mode_set, user_tasks[ index ].attribute_set, &id ); if ( !rtems_is_status_successful( return_value ) ) 45258: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 4525e: 4a80 tstl %d0 <== NOT EXECUTED 45260: 661e bnes 45280 <_RTEMS_tasks_Initialize_user_tasks_body+0x74> <== NOT EXECUTED _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value ); return_value = rtems_task_start( 45262: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 45266: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 4526a: d5fc 0000 001c addal #28,%a2 <== NOT EXECUTED 45270: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 45274: 4e93 jsr %a3@ <== NOT EXECUTED id, user_tasks[ index ].entry_point, user_tasks[ index ].argument ); if ( !rtems_is_status_successful( return_value ) ) 45276: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4527c: 4a80 tstl %d0 <== NOT EXECUTED 4527e: 6710 beqs 45290 <_RTEMS_tasks_Initialize_user_tasks_body+0x84> <== NOT EXECUTED _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value ); 45280: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45282: 4878 0001 pea 1 <== NOT EXECUTED 45286: 4878 0001 pea 1 <== NOT EXECUTED 4528a: 4eb9 0004 5f40 jsr 45f40 <_Internal_error_Occurred> <== NOT EXECUTED maximum = api_configuration->number_of_initialization_tasks; if ( !user_tasks || maximum == 0 ) return; for ( index=0 ; index < maximum ; index++ ) { 45290: 5282 addql #1,%d2 <== NOT EXECUTED 45292: b682 cmpl %d2,%d3 <== NOT EXECUTED 45294: 62ac bhis 45242 <_RTEMS_tasks_Initialize_user_tasks_body+0x36> <== NOT EXECUTED ); if ( !rtems_is_status_successful( return_value ) ) _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value ); } } 45296: 4cee 1c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a4 <== NOT EXECUTED 4529c: 4e5e unlk %fp <== NOT EXECUTED 4529e: 4e75 rts 000497ce <_RTEMS_tasks_Manager_initialization>: */ void _RTEMS_tasks_Manager_initialization( uint32_t maximum_tasks ) { 497ce: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 497d2: 4878 0004 pea 4 <== NOT EXECUTED 497d6: 42a7 clrl %sp@- <== NOT EXECUTED 497d8: 4878 0120 pea 120 <== NOT EXECUTED 497dc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 497e0: 4878 0001 pea 1 <== NOT EXECUTED 497e4: 4878 0002 pea 2 <== NOT EXECUTED 497e8: 4879 0005 6c14 pea 56c14 <_RTEMS_tasks_Information> <== NOT EXECUTED 497ee: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED /* * Add all the extensions for this API */ _User_extensions_Add_API_set( &_RTEMS_tasks_User_extensions ); 497f4: 4879 0005 561c pea 5561c <_RTEMS_tasks_User_extensions> <== NOT EXECUTED 497fa: 4eb9 0004 a2b4 jsr 4a2b4 <_User_extensions_Add_API_set> <== NOT EXECUTED _API_extensions_Add( &_RTEMS_tasks_API_extensions ); 49800: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 49806: 203c 0005 5608 movel #349704,%d0 <== NOT EXECUTED 4980c: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED MP_PACKET_TASKS, _RTEMS_tasks_MP_Process_packet ); #endif } 49810: 4e5e unlk %fp <== NOT EXECUTED * Add all the extensions for this API */ _User_extensions_Add_API_set( &_RTEMS_tasks_User_extensions ); _API_extensions_Add( &_RTEMS_tasks_API_extensions ); 49812: 4ef9 0004 5786 jmp 45786 <_API_extensions_Add> <== NOT EXECUTED 00049818 <_RTEMS_tasks_Post_switch_extension>: */ void _RTEMS_tasks_Post_switch_extension( Thread_Control *executing ) { 49818: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4981c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 49820: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED RTEMS_API_Control *api; ASR_Information *asr; rtems_signal_set signal_set; Modes_Control prev_mode; api = executing->API_Extensions[ THREAD_API_RTEMS ]; 49824: 2668 010c moveal %a0@(268),%a3 <== NOT EXECUTED if ( !api ) 49828: 4a8b tstl %a3 <== NOT EXECUTED 4982a: 6756 beqs 49882 <_RTEMS_tasks_Post_switch_extension+0x6a> <== NOT EXECUTED * Signal Processing */ asr = &api->Signal; _ISR_Disable( level ); 4982c: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 49832: 40c0 movew %sr,%d0 <== NOT EXECUTED 49834: 8280 orl %d0,%d1 <== NOT EXECUTED 49836: 46c1 movew %d1,%sr <== NOT EXECUTED signal_set = asr->signals_posted; 49838: 262b 0012 movel %a3@(18),%d3 <== NOT EXECUTED asr->signals_posted = 0; 4983c: 42ab 0012 clrl %a3@(18) <== NOT EXECUTED _ISR_Enable( level ); 49840: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !signal_set ) /* similar to _ASR_Are_signals_pending( asr ) */ 49842: 4a83 tstl %d3 <== NOT EXECUTED 49844: 673c beqs 49882 <_RTEMS_tasks_Post_switch_extension+0x6a> <== NOT EXECUTED return; asr->nest_level += 1; 49846: 52ab 001a addql #1,%a3@(26) <== NOT EXECUTED rtems_task_mode( asr->mode_set, RTEMS_ALL_MODE_MASKS, &prev_mode ); 4984a: 240e movel %fp,%d2 <== NOT EXECUTED 4984c: 5982 subql #4,%d2 <== NOT EXECUTED 4984e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49850: 45f9 0004 a7b8 lea 4a7b8 ,%a2 <== NOT EXECUTED 49856: 2f3c 0000 ffff movel #65535,%sp@- <== NOT EXECUTED 4985c: 2f2b 000e movel %a3@(14),%sp@- <== NOT EXECUTED 49860: 4e92 jsr %a2@ <== NOT EXECUTED (*asr->handler)( signal_set ); 49862: 2f03 movel %d3,%sp@- <== NOT EXECUTED 49864: 206b 000a moveal %a3@(10),%a0 <== NOT EXECUTED 49868: 4e90 jsr %a0@ <== NOT EXECUTED asr->nest_level -= 1; 4986a: 53ab 001a subql #1,%a3@(26) <== NOT EXECUTED rtems_task_mode( prev_mode, RTEMS_ALL_MODE_MASKS, &prev_mode ); 4986e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49870: 2f3c 0000 ffff movel #65535,%sp@- <== NOT EXECUTED 49876: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 4987a: 4e92 jsr %a2@ <== NOT EXECUTED 4987c: dffc 0000 001c addal #28,%sp <== NOT EXECUTED } 49882: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 49888: 4e5e unlk %fp <== NOT EXECUTED 4988a: 4e75 rts 00049764 <_RTEMS_tasks_Start_extension>: User_extensions_routine _RTEMS_tasks_Start_extension( Thread_Control *executing, Thread_Control *started ) { 49764: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49768: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED RTEMS_API_Control *api; api = started->API_Extensions[ THREAD_API_RTEMS ]; api->pending_events = EVENT_SETS_NONE_PENDING; 4976c: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED } 49770: 4e5e unlk %fp <== NOT EXECUTED { RTEMS_API_Control *api; api = started->API_Extensions[ THREAD_API_RTEMS ]; api->pending_events = EVENT_SETS_NONE_PENDING; 49772: 4290 clrl %a0@ <== NOT EXECUTED } 49774: 4e75 rts 00049776 <_RTEMS_tasks_Switch_extension>: void _RTEMS_tasks_Switch_extension( Thread_Control *executing, Thread_Control *heir ) { 49776: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4977a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED /* * Per Task Variables */ tvp = executing->task_variables; 4977e: 2268 011c moveal %a0@(284),%a1 <== NOT EXECUTED 49782: 600e bras 49792 <_RTEMS_tasks_Switch_extension+0x1c> <== NOT EXECUTED while (tvp) { tvp->tval = *tvp->ptr; 49784: 2069 0004 moveal %a1@(4),%a0 <== NOT EXECUTED 49788: 2350 000c movel %a0@,%a1@(12) <== NOT EXECUTED *tvp->ptr = tvp->gval; 4978c: 20a9 0008 movel %a1@(8),%a0@ <== NOT EXECUTED tvp = (rtems_task_variable_t *)tvp->next; 49790: 2251 moveal %a1@,%a1 <== NOT EXECUTED /* * Per Task Variables */ tvp = executing->task_variables; while (tvp) { 49792: 4a89 tstl %a1 <== NOT EXECUTED 49794: 66ee bnes 49784 <_RTEMS_tasks_Switch_extension+0xe> <== NOT EXECUTED tvp->tval = *tvp->ptr; *tvp->ptr = tvp->gval; tvp = (rtems_task_variable_t *)tvp->next; } tvp = heir->task_variables; 49796: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 4979a: 2268 011c moveal %a0@(284),%a1 <== NOT EXECUTED 4979e: 600e bras 497ae <_RTEMS_tasks_Switch_extension+0x38> <== NOT EXECUTED while (tvp) { tvp->gval = *tvp->ptr; 497a0: 2069 0004 moveal %a1@(4),%a0 <== NOT EXECUTED 497a4: 2350 0008 movel %a0@,%a1@(8) <== NOT EXECUTED *tvp->ptr = tvp->tval; 497a8: 20a9 000c movel %a1@(12),%a0@ <== NOT EXECUTED tvp = (rtems_task_variable_t *)tvp->next; 497ac: 2251 moveal %a1@,%a1 <== NOT EXECUTED *tvp->ptr = tvp->gval; tvp = (rtems_task_variable_t *)tvp->next; } tvp = heir->task_variables; while (tvp) { 497ae: 4a89 tstl %a1 <== NOT EXECUTED 497b0: 66ee bnes 497a0 <_RTEMS_tasks_Switch_extension+0x2a> <== NOT EXECUTED tvp->gval = *tvp->ptr; *tvp->ptr = tvp->tval; tvp = (rtems_task_variable_t *)tvp->next; } } 497b2: 4e5e unlk %fp <== NOT EXECUTED 497b4: 4e75 rts 000459f0 <_Rate_monotonic_Initiate_statistics>: #endif void _Rate_monotonic_Initiate_statistics( Rate_monotonic_Control *the_period ) { 459f0: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 459f4: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 459f8: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED Thread_Control *owning_thread = the_period->owner; 459fc: 246b 0050 moveal %a3@(80),%a2 <== NOT EXECUTED #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) || \ defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) struct timespec uptime; _TOD_Get_uptime( &uptime ); 45a00: 260e movel %fp,%d3 <== NOT EXECUTED 45a02: 5183 subql #8,%d3 <== NOT EXECUTED 45a04: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45a06: 4eb9 0004 71ec jsr 471ec <_TOD_Get_uptime> <== NOT EXECUTED /* * Set the starting point and the CPU time used for the statistics. */ #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS the_period->time_at_period = uptime; 45a0c: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 45a10: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 45a14: 2740 0044 movel %d0,%a3@(68) <== NOT EXECUTED 45a18: 2741 0048 movel %d1,%a3@(72) <== NOT EXECUTED #else the_period->time_at_period = _Watchdog_Ticks_since_boot; #endif the_period->owner_executed_at_period = owning_thread->cpu_time_used; 45a1c: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 45a20: 276a 0088 0040 movel %a2@(136),%a3@(64) <== NOT EXECUTED * context switch. When this routine is invoked from * rtems_rate_monotonic_period, the owner will be the executing thread. * When this routine is invoked from _Rate_monotonic_Timeout, it will not. */ #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS if (owning_thread == _Thread_Executing) { 45a26: 588f addql #4,%sp <== NOT EXECUTED the_period->time_at_period = uptime; #else the_period->time_at_period = _Watchdog_Ticks_since_boot; #endif the_period->owner_executed_at_period = owning_thread->cpu_time_used; 45a28: 2740 003c movel %d0,%a3@(60) <== NOT EXECUTED * context switch. When this routine is invoked from * rtems_rate_monotonic_period, the owner will be the executing thread. * When this routine is invoked from _Rate_monotonic_Timeout, it will not. */ #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS if (owning_thread == _Thread_Executing) { 45a2c: b5f9 0005 985e cmpal 5985e <_Thread_Executing>,%a2 <== NOT EXECUTED 45a32: 662a bnes 45a5e <_Rate_monotonic_Initiate_statistics+0x6e> <== NOT EXECUTED /* * Adjust the CPU time used to account for the time since last * context switch. */ _Timespec_Subtract( 45a34: 240e movel %fp,%d2 <== NOT EXECUTED 45a36: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 45a3c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45a3e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45a40: 4879 0005 9866 pea 59866 <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 45a46: 4eb9 0004 90e4 jsr 490e4 <_Timespec_Subtract> <== NOT EXECUTED &_Thread_Time_of_last_context_switch, &uptime, &ran ); _Timespec_Add_to( &the_period->owner_executed_at_period, &ran ); 45a4c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45a4e: 486b 003c pea %a3@(60) <== NOT EXECUTED 45a52: 4eb9 0004 8fbc jsr 48fbc <_Timespec_Add_to> <== NOT EXECUTED 45a58: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED } #endif } 45a5e: 4cee 0c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a3 <== NOT EXECUTED 45a64: 4e5e unlk %fp <== NOT EXECUTED 45a66: 4e75 rts 00049690 <_Rate_monotonic_Manager_initialization>: */ void _Rate_monotonic_Manager_initialization( uint32_t maximum_periods ) { 49690: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49694: 4878 0004 pea 4 <== NOT EXECUTED 49698: 42a7 clrl %sp@- <== NOT EXECUTED 4969a: 4878 008c pea 8c <== NOT EXECUTED 4969e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 496a2: 4878 0008 pea 8 <== NOT EXECUTED 496a6: 4878 0002 pea 2 <== NOT EXECUTED 496aa: 4879 0005 7016 pea 57016 <_Rate_monotonic_Information> <== NOT EXECUTED 496b0: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED 496b6: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 496bc: 4e5e unlk %fp <== NOT EXECUTED 496be: 4e75 rts 00045f94 <_Rate_monotonic_Timeout>: void _Rate_monotonic_Timeout( Objects_Id id, void *ignored ) { 45f94: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45f98: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45f9a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45f9e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45fa2: 4879 0005 9698 pea 59698 <_Rate_monotonic_Information> <== NOT EXECUTED 45fa8: 4eb9 0004 7aec jsr 47aec <_Objects_Get> <== NOT EXECUTED /* * When we get here, the Timer is already off the chain so we do not * have to worry about that -- hence no _Watchdog_Remove(). */ the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 45fae: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45fb4: 2440 moveal %d0,%a2 <== NOT EXECUTED 45fb6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45fba: 6600 009a bnew 46056 <_Rate_monotonic_Timeout+0xc2> <== NOT EXECUTED case OBJECTS_LOCAL: the_thread = the_period->owner; 45fbe: 206a 0050 moveal %a2@(80),%a0 <== NOT EXECUTED if ( _States_Is_waiting_for_period( the_thread->current_state ) && 45fc2: 2028 0010 movel %a0@(16),%d0 <== NOT EXECUTED 45fc6: 0280 0000 4000 andil #16384,%d0 <== NOT EXECUTED 45fcc: 673e beqs 4600c <_Rate_monotonic_Timeout+0x78> <== NOT EXECUTED 45fce: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED 45fd2: b0a8 0020 cmpl %a0@(32),%d0 <== NOT EXECUTED 45fd6: 6634 bnes 4600c <_Rate_monotonic_Timeout+0x78> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 45fd8: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 45fde: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45fe0: 4eb9 0004 7f0c jsr 47f0c <_Thread_Clear_state> <== NOT EXECUTED the_thread->Wait.id == the_period->Object.id ) { _Thread_Unblock( the_thread ); _Rate_monotonic_Initiate_statistics( the_period ); 45fe6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45fe8: 4eb9 0004 59f0 jsr 459f0 <_Rate_monotonic_Initiate_statistics> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45fee: 256a 004c 001c movel %a2@(76),%a2@(28) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 45ff4: 486a 0010 pea %a2@(16) <== NOT EXECUTED 45ff8: 4879 0005 987c pea 5987c <_Watchdog_Ticks_chain> <== NOT EXECUTED 45ffe: 4eb9 0004 9364 jsr 49364 <_Watchdog_Insert> <== NOT EXECUTED 46004: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4600a: 603c bras 46048 <_Rate_monotonic_Timeout+0xb4> <== NOT EXECUTED _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length ); } else if ( the_period->state == RATE_MONOTONIC_OWNER_IS_BLOCKING ) { 4600c: 7001 moveq #1,%d0 <== NOT EXECUTED 4600e: b0aa 0038 cmpl %a2@(56),%d0 <== NOT EXECUTED 46012: 662e bnes 46042 <_Rate_monotonic_Timeout+0xae> <== NOT EXECUTED the_period->state = RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING; 46014: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 46018: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED _Rate_monotonic_Initiate_statistics( the_period ); 4601c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4601e: 4eb9 0004 59f0 jsr 459f0 <_Rate_monotonic_Initiate_statistics> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 46024: 256a 004c 001c movel %a2@(76),%a2@(28) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4602a: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4602e: 4879 0005 987c pea 5987c <_Watchdog_Ticks_chain> <== NOT EXECUTED 46034: 4eb9 0004 9364 jsr 49364 <_Watchdog_Insert> <== NOT EXECUTED 4603a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46040: 6006 bras 46048 <_Rate_monotonic_Timeout+0xb4> <== NOT EXECUTED _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length ); } else the_period->state = RATE_MONOTONIC_EXPIRED; 46042: 7004 moveq #4,%d0 <== NOT EXECUTED 46044: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 46048: 2039 0005 97a0 movel 597a0 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4604e: 5380 subql #1,%d0 <== NOT EXECUTED 46050: 23c0 0005 97a0 movel %d0,597a0 <_Thread_Dispatch_disable_level> <== NOT EXECUTED case OBJECTS_REMOTE: /* impossible */ #endif case OBJECTS_ERROR: break; } } 46056: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4605a: 4e5e unlk %fp <== NOT EXECUTED 4605c: 4e75 rts <== NOT EXECUTED ... 00045a68 <_Rate_monotonic_Update_statistics>: void _Rate_monotonic_Update_statistics( Rate_monotonic_Control *the_period ) { 45a68: 4e56 ffb8 linkw %fp,#-72 <== NOT EXECUTED 45a6c: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== NOT EXECUTED 45a70: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED struct timespec uptime; /* * Obtain the current time since boot */ _TOD_Get_uptime( &uptime ); 45a74: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED 45a78: 4eb9 0004 71ec jsr 471ec <_TOD_Get_uptime> <== NOT EXECUTED /* * Update the counts. */ stats = &the_period->Statistics; stats->count++; 45a7e: 52aa 0054 addql #1,%a2@(84) <== NOT EXECUTED if ( the_period->state == RATE_MONOTONIC_EXPIRED ) 45a82: 588f addql #4,%sp <== NOT EXECUTED 45a84: 7004 moveq #4,%d0 <== NOT EXECUTED 45a86: b0aa 0038 cmpl %a2@(56),%d0 <== NOT EXECUTED 45a8a: 6604 bnes 45a90 <_Rate_monotonic_Update_statistics+0x28> <== NOT EXECUTED stats->missed_count++; 45a8c: 52aa 0058 addql #1,%a2@(88) <== NOT EXECUTED /* * Grab basic information for time statistics. */ #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS _Timespec_Subtract( 45a90: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 45a94: 240e movel %fp,%d2 <== NOT EXECUTED 45a96: 0682 ffff ffe8 addil #-24,%d2 <== NOT EXECUTED 45a9c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45a9e: 47f9 0004 90e4 lea 490e4 <_Timespec_Subtract>,%a3 <== NOT EXECUTED 45aa4: 486a 0044 pea %a2@(68) <== NOT EXECUTED 45aa8: 4e93 jsr %a3@ <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS { rtems_thread_cpu_usage_t ran, used; /* Grab CPU usage when the thread got switched in */ used = _Thread_Executing->cpu_time_used; 45aaa: 2079 0005 985e moveal 5985e <_Thread_Executing>,%a0 <== NOT EXECUTED 45ab0: 2d68 0088 ffdc movel %a0@(136),%fp@(-36) <== NOT EXECUTED 45ab6: 2028 0084 movel %a0@(132),%d0 <== NOT EXECUTED /* How much time time since last context switch */ _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); 45aba: 260e movel %fp,%d3 <== NOT EXECUTED 45abc: 0683 ffff ffe0 addil #-32,%d3 <== NOT EXECUTED 45ac2: 2f03 movel %d3,%sp@- <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); 45ac4: 280e movel %fp,%d4 <== NOT EXECUTED 45ac6: 0684 ffff ffd8 addil #-40,%d4 <== NOT EXECUTED /* Grab CPU usage when the thread got switched in */ used = _Thread_Executing->cpu_time_used; /* How much time time since last context switch */ _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); 45acc: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); 45ace: 4bf9 0004 8fbc lea 48fbc <_Timespec_Add_to>,%a5 <== NOT EXECUTED /* Grab CPU usage when the thread got switched in */ used = _Thread_Executing->cpu_time_used; /* How much time time since last context switch */ _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); 45ad4: 4879 0005 9866 pea 59866 <_Thread_Time_of_last_context_switch> <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); /* partial period, cpu usage info reset while executing. Throw away */ if (_Timespec_Less_than( &used, &the_period->owner_executed_at_period)) 45ada: 2a0a movel %a2,%d5 <== NOT EXECUTED 45adc: 0685 0000 003c addil #60,%d5 <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS { rtems_thread_cpu_usage_t ran, used; /* Grab CPU usage when the thread got switched in */ used = _Thread_Executing->cpu_time_used; 45ae2: 2d40 ffd8 movel %d0,%fp@(-40) <== NOT EXECUTED /* How much time time since last context switch */ _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); 45ae6: 4e93 jsr %a3@ <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); /* partial period, cpu usage info reset while executing. Throw away */ if (_Timespec_Less_than( &used, &the_period->owner_executed_at_period)) 45ae8: 49f9 0004 90b4 lea 490b4 <_Timespec_Less_than>,%a4 <== NOT EXECUTED /* How much time time since last context switch */ _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); /* executed += ran */ _Timespec_Add_to( &used, &ran ); 45aee: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45af0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 45af2: 4e95 jsr %a5@ <== NOT EXECUTED /* partial period, cpu usage info reset while executing. Throw away */ if (_Timespec_Less_than( &used, &the_period->owner_executed_at_period)) 45af4: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 45afa: 2e85 movel %d5,%sp@ <== NOT EXECUTED 45afc: 2f04 movel %d4,%sp@- <== NOT EXECUTED 45afe: 4e94 jsr %a4@ <== NOT EXECUTED 45b00: 508f addql #8,%sp <== NOT EXECUTED 45b02: 4a00 tstb %d0 <== NOT EXECUTED 45b04: 6600 00bc bnew 45bc2 <_Rate_monotonic_Update_statistics+0x15a> <== NOT EXECUTED return; /* executed = current cpu usage - value at start of period */ _Timespec_Subtract( 45b08: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 45b0e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b10: 2f04 movel %d4,%sp@- <== NOT EXECUTED 45b12: 2f05 movel %d5,%sp@- <== NOT EXECUTED 45b14: 4e93 jsr %a3@ <== NOT EXECUTED /* * Update CPU time */ #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS _Timespec_Add_to( &stats->total_cpu_time, &executed ); 45b16: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b18: 486a 006c pea %a2@(108) <== NOT EXECUTED 45b1c: 4e95 jsr %a5@ <== NOT EXECUTED if ( _Timespec_Less_than( &executed, &stats->min_cpu_time ) ) 45b1e: 486a 005c pea %a2@(92) <== NOT EXECUTED 45b22: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b24: 4e94 jsr %a4@ <== NOT EXECUTED 45b26: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 45b2c: 4a00 tstb %d0 <== NOT EXECUTED 45b2e: 6710 beqs 45b40 <_Rate_monotonic_Update_statistics+0xd8> <== NOT EXECUTED stats->min_cpu_time = executed; 45b30: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 45b34: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 45b38: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED 45b3c: 2541 0060 movel %d1,%a2@(96) <== NOT EXECUTED if ( _Timespec_Greater_than( &executed, &stats->max_cpu_time ) ) 45b40: 486a 0064 pea %a2@(100) <== NOT EXECUTED 45b44: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45b48: 4eb9 0004 9084 jsr 49084 <_Timespec_Greater_than> <== NOT EXECUTED 45b4e: 508f addql #8,%sp <== NOT EXECUTED 45b50: 4a00 tstb %d0 <== NOT EXECUTED 45b52: 6710 beqs 45b64 <_Rate_monotonic_Update_statistics+0xfc> <== NOT EXECUTED stats->max_cpu_time = executed; 45b54: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 45b58: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 45b5c: 2540 0064 movel %d0,%a2@(100) <== NOT EXECUTED 45b60: 2541 0068 movel %d1,%a2@(104) <== NOT EXECUTED stats->min_wall_time = since_last_period; if ( since_last_period > stats->max_wall_time ) stats->max_wall_time = since_last_period; #else _Timespec_Add_to( &stats->total_wall_time, &since_last_period ); 45b64: 240e movel %fp,%d2 <== NOT EXECUTED 45b66: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 45b6c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b6e: 486a 0084 pea %a2@(132) <== NOT EXECUTED 45b72: 4eb9 0004 8fbc jsr 48fbc <_Timespec_Add_to> <== NOT EXECUTED if ( _Timespec_Less_than( &since_last_period, &stats->min_wall_time ) ) 45b78: 486a 0074 pea %a2@(116) <== NOT EXECUTED 45b7c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b7e: 4eb9 0004 90b4 jsr 490b4 <_Timespec_Less_than> <== NOT EXECUTED 45b84: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45b8a: 4a00 tstb %d0 <== NOT EXECUTED 45b8c: 6710 beqs 45b9e <_Rate_monotonic_Update_statistics+0x136> <== NOT EXECUTED stats->min_wall_time = since_last_period; 45b8e: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 45b92: 222e fff4 movel %fp@(-12),%d1 <== NOT EXECUTED 45b96: 2540 0074 movel %d0,%a2@(116) <== NOT EXECUTED 45b9a: 2541 0078 movel %d1,%a2@(120) <== NOT EXECUTED if ( _Timespec_Greater_than( &since_last_period, &stats->max_wall_time ) ) 45b9e: 486a 007c pea %a2@(124) <== NOT EXECUTED 45ba2: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 45ba6: 4eb9 0004 9084 jsr 49084 <_Timespec_Greater_than> <== NOT EXECUTED 45bac: 508f addql #8,%sp <== NOT EXECUTED 45bae: 4a00 tstb %d0 <== NOT EXECUTED 45bb0: 6710 beqs 45bc2 <_Rate_monotonic_Update_statistics+0x15a> <== NOT EXECUTED stats->max_wall_time = since_last_period; 45bb2: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 45bb6: 222e fff4 movel %fp@(-12),%d1 <== NOT EXECUTED 45bba: 2540 007c movel %d0,%a2@(124) <== NOT EXECUTED 45bbe: 2541 0080 movel %d1,%a2@(128) <== NOT EXECUTED #endif } 45bc2: 4cee 3c3c ffb8 moveml %fp@(-72),%d2-%d5/%a2-%a5 <== NOT EXECUTED 45bc8: 4e5e unlk %fp <== NOT EXECUTED 45bca: 4e75 rts 000496c0 <_Region_Manager_initialization>: */ void _Region_Manager_initialization( uint32_t maximum_regions ) { 496c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 496c4: 4878 0004 pea 4 <== NOT EXECUTED 496c8: 42a7 clrl %sp@- <== NOT EXECUTED 496ca: 4878 00c0 pea c0 <== NOT EXECUTED 496ce: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 496d2: 4878 0006 pea 6 <== NOT EXECUTED 496d6: 4878 0002 pea 2 <== NOT EXECUTED 496da: 4879 0005 7052 pea 57052 <_Region_Information> <== NOT EXECUTED 496e0: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED 496e6: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_REGION, 0 /* XXX _Region_MP_Process_packet */ ); #endif } 496ec: 4e5e unlk %fp <== NOT EXECUTED 496ee: 4e75 rts 00054cb4 <_Region_Process_queue>: 54cb4: 2039 0006 c830 movel 6c830 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED */ void _Region_Process_queue( Region_Control *the_region ) { 54cba: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 54cbe: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 54cc2: 5280 addql #1,%d0 <== NOT EXECUTED 54cc4: 23c0 0006 c830 movel %d0,6c830 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 54cca: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED * NOTE: Be sure to disable dispatching before unlocking the mutex * since we do not want to open a window where a context * switch could occur. */ _Thread_Disable_dispatch(); _RTEMS_Unlock_allocator(); 54cce: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED /* * NOTE: The following loop is O(n) where n is the number of * threads whose memory request is satisfied. */ for ( ; ; ) { the_thread = _Thread_queue_First( &the_region->Wait_queue ); 54cd4: 240b movel %a3,%d2 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void *_Region_Allocate_segment ( Region_Control *the_region, uint32_t size ) { return _Heap_Allocate( &the_region->Memory, size ); 54cd6: 260b movel %a3,%d3 <== NOT EXECUTED 54cd8: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 54cde: 0683 0000 0068 addil #104,%d3 <== NOT EXECUTED 54ce4: 4bf9 0005 0a54 lea 50a54 <_Heap_Allocate>,%a5 <== NOT EXECUTED if ( the_segment == NULL ) break; *(void **)the_thread->Wait.return_argument = the_segment; the_region->number_of_used_blocks += 1; _Thread_queue_Extract( &the_region->Wait_queue, the_thread ); 54cea: 49f9 0005 540c lea 5540c <_Thread_queue_Extract>,%a4 <== NOT EXECUTED * NOTE: Be sure to disable dispatching before unlocking the mutex * since we do not want to open a window where a context * switch could occur. */ _Thread_Disable_dispatch(); _RTEMS_Unlock_allocator(); 54cf0: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED /* * NOTE: The following loop is O(n) where n is the number of * threads whose memory request is satisfied. */ for ( ; ; ) { the_thread = _Thread_queue_First( &the_region->Wait_queue ); 54cf6: 283c 0005 5518 movel #349464,%d4 <== NOT EXECUTED 54cfc: 588f addql #4,%sp <== NOT EXECUTED 54cfe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 54d00: 2044 moveal %d4,%a0 <== NOT EXECUTED 54d02: 4e90 jsr %a0@ <== NOT EXECUTED if ( the_thread == NULL ) 54d04: 588f addql #4,%sp <== NOT EXECUTED /* * NOTE: The following loop is O(n) where n is the number of * threads whose memory request is satisfied. */ for ( ; ; ) { the_thread = _Thread_queue_First( &the_region->Wait_queue ); 54d06: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( the_thread == NULL ) 54d08: 4a80 tstl %d0 <== NOT EXECUTED 54d0a: 6726 beqs 54d32 <_Region_Process_queue+0x7e> <== NOT EXECUTED 54d0c: 2f2a 0024 movel %a2@(36),%sp@- <== NOT EXECUTED 54d10: 2f03 movel %d3,%sp@- <== NOT EXECUTED 54d12: 4e95 jsr %a5@ <== NOT EXECUTED the_segment = (void **) _Region_Allocate_segment( the_region, the_thread->Wait.count ); if ( the_segment == NULL ) 54d14: 508f addql #8,%sp <== NOT EXECUTED 54d16: 4a80 tstl %d0 <== NOT EXECUTED 54d18: 6718 beqs 54d32 <_Region_Process_queue+0x7e> <== NOT EXECUTED break; *(void **)the_thread->Wait.return_argument = the_segment; 54d1a: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED the_region->number_of_used_blocks += 1; 54d1e: 52ab 0064 addql #1,%a3@(100) <== NOT EXECUTED ); if ( the_segment == NULL ) break; *(void **)the_thread->Wait.return_argument = the_segment; 54d22: 2080 movel %d0,%a0@ <== NOT EXECUTED the_region->number_of_used_blocks += 1; _Thread_queue_Extract( &the_region->Wait_queue, the_thread ); 54d24: 2f0a movel %a2,%sp@- <== NOT EXECUTED 54d26: 2f02 movel %d2,%sp@- <== NOT EXECUTED 54d28: 4e94 jsr %a4@ <== NOT EXECUTED the_thread->Wait.return_code = RTEMS_SUCCESSFUL; 54d2a: 508f addql #8,%sp <== NOT EXECUTED 54d2c: 42aa 0034 clrl %a2@(52) <== NOT EXECUTED 54d30: 60cc bras 54cfe <_Region_Process_queue+0x4a> <== NOT EXECUTED } _Thread_Enable_dispatch(); } 54d32: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 54d38: 4e5e unlk %fp <== NOT EXECUTED *(void **)the_thread->Wait.return_argument = the_segment; the_region->number_of_used_blocks += 1; _Thread_queue_Extract( &the_region->Wait_queue, the_thread ); the_thread->Wait.return_code = RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 54d3a: 4ef9 0005 1ef2 jmp 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 0004972c <_Semaphore_Manager_initialization>: */ void _Semaphore_Manager_initialization( uint32_t maximum_semaphores ) { 4972c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49730: 4878 0004 pea 4 <== NOT EXECUTED 49734: 42a7 clrl %sp@- <== NOT EXECUTED 49736: 4878 0076 pea 76 <== NOT EXECUTED 4973a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4973e: 4878 0003 pea 3 <== NOT EXECUTED 49742: 4878 0002 pea 2 <== NOT EXECUTED 49746: 4879 0005 6bd8 pea 56bd8 <_Semaphore_Information> <== NOT EXECUTED 4974c: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED 49752: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_SEMAPHORE, _Semaphore_MP_Process_packet ); #endif } 49758: 4e5e unlk %fp <== NOT EXECUTED 4975a: 4e75 rts 00044fdc <_Semaphore_Translate_core_mutex_return_code>: }; rtems_status_code _Semaphore_Translate_core_mutex_return_code ( uint32_t status ) { 44fdc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( status > CORE_MUTEX_STATUS_LAST ) return RTEMS_INTERNAL_ERROR; #endif return _Semaphore_Translate_core_mutex_return_code_[status]; } 44fe0: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED }; rtems_status_code _Semaphore_Translate_core_mutex_return_code ( uint32_t status ) { 44fe4: 41f9 0005 411a lea 5411a <_Semaphore_Translate_core_mutex_return_code_>,%a0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( status > CORE_MUTEX_STATUS_LAST ) return RTEMS_INTERNAL_ERROR; #endif return _Semaphore_Translate_core_mutex_return_code_[status]; } 44fea: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 44fee: 4e5e unlk %fp <== NOT EXECUTED 44ff0: 4e75 rts 00044ff2 <_Semaphore_Translate_core_semaphore_return_code>: }; rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( uint32_t status ) { 44ff2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( status > CORE_SEMAPHORE_STATUS_LAST ) return RTEMS_INTERNAL_ERROR; #endif return _Semaphore_Translate_core_semaphore_return_code_[status]; } 44ff6: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED }; rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( uint32_t status ) { 44ffa: 41f9 0005 4136 lea 54136 <_Semaphore_Translate_core_semaphore_return_code_>,%a0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( status > CORE_SEMAPHORE_STATUS_LAST ) return RTEMS_INTERNAL_ERROR; #endif return _Semaphore_Translate_core_semaphore_return_code_[status]; } 45000: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 45004: 4e5e unlk %fp <== NOT EXECUTED 45006: 4e75 rts 0004975c <_Signal_Manager_initialization>: * * Output parameters: NONE */ void _Signal_Manager_initialization( void ) { 4975c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _MPCI_Register_packet_processor( MP_PACKET_SIGNAL, _Signal_MP_Process_packet ); #endif } 49760: 4e5e unlk %fp <== NOT EXECUTED 49762: 4e75 rts 00045c58 <_TOD_Get>: */ void _TOD_Get( struct timespec *time ) { 45c58: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 45c5c: 2f0a movel %a2,%sp@- <== NOT EXECUTED offset.tv_sec = 0; offset.tv_nsec = 0; /* _TOD_Now is a proper POSIX time */ _ISR_Disable( level ); 45c5e: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ void _TOD_Get( struct timespec *time ) { 45c64: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45c66: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; struct timespec offset; /* assume time checked by caller */ offset.tv_sec = 0; 45c6a: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED offset.tv_nsec = 0; 45c6e: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED /* _TOD_Now is a proper POSIX time */ _ISR_Disable( level ); 45c72: 40c2 movew %sr,%d2 <== NOT EXECUTED 45c74: 8082 orl %d2,%d0 <== NOT EXECUTED 45c76: 46c0 movew %d0,%sr <== NOT EXECUTED *time = _TOD_Now; if ( _Watchdog_Nanoseconds_since_tick_handler ) 45c78: 2079 0005 6e3a moveal 56e3a <_Watchdog_Nanoseconds_since_tick_handler>,%a0 <== NOT EXECUTED offset.tv_sec = 0; offset.tv_nsec = 0; /* _TOD_Now is a proper POSIX time */ _ISR_Disable( level ); *time = _TOD_Now; 45c7e: 2039 0005 6d36 movel 56d36 <_TOD_Now>,%d0 <== NOT EXECUTED 45c84: 2239 0005 6d3a movel 56d3a <_TOD_Now+0x4>,%d1 <== NOT EXECUTED 45c8a: 2480 movel %d0,%a2@ <== NOT EXECUTED 45c8c: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED if ( _Watchdog_Nanoseconds_since_tick_handler ) 45c90: 4a88 tstl %a0 <== NOT EXECUTED 45c92: 6706 beqs 45c9a <_TOD_Get+0x42> <== NOT EXECUTED offset.tv_nsec = (*_Watchdog_Nanoseconds_since_tick_handler)(); 45c94: 4e90 jsr %a0@ <== NOT EXECUTED 45c96: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED _ISR_Enable( level ); 45c9a: 46c2 movew %d2,%sr <== NOT EXECUTED _Timespec_Add_to( time, &offset ); 45c9c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45ca0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45ca2: 4eb9 0004 790c jsr 4790c <_Timespec_Add_to> <== NOT EXECUTED } 45ca8: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 45cac: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED *time = _TOD_Now; if ( _Watchdog_Nanoseconds_since_tick_handler ) offset.tv_nsec = (*_Watchdog_Nanoseconds_since_tick_handler)(); _ISR_Enable( level ); _Timespec_Add_to( time, &offset ); 45cb0: 508f addql #8,%sp <== NOT EXECUTED } 45cb2: 4e5e unlk %fp <== NOT EXECUTED 45cb4: 4e75 rts <== NOT EXECUTED ... 00049bc0 <_TOD_Get_uptime>: */ void _TOD_Get_uptime( struct timespec *uptime ) { 49bc0: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 49bc4: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* assume uptime checked by caller */ offset.tv_sec = 0; offset.tv_nsec = 0; _ISR_Disable( level ); 49bc6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ void _TOD_Get_uptime( struct timespec *uptime ) { 49bcc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49bce: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; struct timespec offset; /* assume uptime checked by caller */ offset.tv_sec = 0; 49bd2: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED offset.tv_nsec = 0; 49bd6: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED _ISR_Disable( level ); 49bda: 40c2 movew %sr,%d2 <== NOT EXECUTED 49bdc: 8082 orl %d2,%d0 <== NOT EXECUTED 49bde: 46c0 movew %d0,%sr <== NOT EXECUTED *uptime = _TOD_Uptime; if ( _Watchdog_Nanoseconds_since_tick_handler ) 49be0: 2079 0005 6e3a moveal 56e3a <_Watchdog_Nanoseconds_since_tick_handler>,%a0 <== NOT EXECUTED offset.tv_sec = 0; offset.tv_nsec = 0; _ISR_Disable( level ); *uptime = _TOD_Uptime; 49be6: 2039 0005 6d22 movel 56d22 <_TOD_Uptime>,%d0 <== NOT EXECUTED 49bec: 2239 0005 6d26 movel 56d26 <_TOD_Uptime+0x4>,%d1 <== NOT EXECUTED 49bf2: 2480 movel %d0,%a2@ <== NOT EXECUTED 49bf4: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED if ( _Watchdog_Nanoseconds_since_tick_handler ) 49bf8: 4a88 tstl %a0 <== NOT EXECUTED 49bfa: 6706 beqs 49c02 <_TOD_Get_uptime+0x42> <== NOT EXECUTED offset.tv_nsec = (*_Watchdog_Nanoseconds_since_tick_handler)(); 49bfc: 4e90 jsr %a0@ <== NOT EXECUTED 49bfe: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED _ISR_Enable( level ); 49c02: 46c2 movew %d2,%sr <== NOT EXECUTED _Timespec_Add_to( uptime, &offset ); 49c04: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 49c08: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49c0a: 4eb9 0004 790c jsr 4790c <_Timespec_Add_to> <== NOT EXECUTED } 49c10: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 49c14: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED *uptime = _TOD_Uptime; if ( _Watchdog_Nanoseconds_since_tick_handler ) offset.tv_nsec = (*_Watchdog_Nanoseconds_since_tick_handler)(); _ISR_Enable( level ); _Timespec_Add_to( uptime, &offset ); 49c18: 508f addql #8,%sp <== NOT EXECUTED } 49c1a: 4e5e unlk %fp <== NOT EXECUTED 49c1c: 4e75 rts <== NOT EXECUTED ... 00045cb8 <_TOD_Handler_initialization>: */ void _TOD_Handler_initialization( uint32_t microseconds_per_tick ) { 45cb8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* Uptime (timespec) */ _TOD_Uptime.tv_sec = 0; _TOD_Uptime.tv_nsec = 0; /* TOD has not been set */ _TOD_Is_set = FALSE; 45cbc: 4200 clrb %d0 <== NOT EXECUTED void _TOD_Handler_initialization( uint32_t microseconds_per_tick ) { _TOD_Microseconds_per_tick = microseconds_per_tick; 45cbe: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED /* Uptime (timespec) */ _TOD_Uptime.tv_sec = 0; _TOD_Uptime.tv_nsec = 0; /* TOD has not been set */ _TOD_Is_set = FALSE; 45cc2: 13c0 0005 6cb8 moveb %d0,56cb8 <_TOD_Is_set> <== NOT EXECUTED void _TOD_Handler_initialization( uint32_t microseconds_per_tick ) { _TOD_Microseconds_per_tick = microseconds_per_tick; 45cc8: 23d0 0005 6e32 movel %a0@,56e32 <_TOD_Microseconds_per_tick> <== NOT EXECUTED _TOD_Uptime.tv_nsec = 0; /* TOD has not been set */ _TOD_Is_set = FALSE; _TOD_Activate(); } 45cce: 4e5e unlk %fp <== NOT EXECUTED ) { _TOD_Microseconds_per_tick = microseconds_per_tick; /* POSIX format TOD (timespec) */ _TOD_Now.tv_sec = TOD_SECONDS_1970_THROUGH_1988; 45cd0: 203c 21da e500 movel #567993600,%d0 <== NOT EXECUTED _TOD_Now.tv_nsec = 0; 45cd6: 42b9 0005 6d3a clrl 56d3a <_TOD_Now+0x4> <== NOT EXECUTED ) { _TOD_Microseconds_per_tick = microseconds_per_tick; /* POSIX format TOD (timespec) */ _TOD_Now.tv_sec = TOD_SECONDS_1970_THROUGH_1988; 45cdc: 23c0 0005 6d36 movel %d0,56d36 <_TOD_Now> <== NOT EXECUTED _TOD_Now.tv_nsec = 0; /* Uptime (timespec) */ _TOD_Uptime.tv_sec = 0; 45ce2: 42b9 0005 6d22 clrl 56d22 <_TOD_Uptime> <== NOT EXECUTED _TOD_Uptime.tv_nsec = 0; 45ce8: 42b9 0005 6d26 clrl 56d26 <_TOD_Uptime+0x4> <== NOT EXECUTED /* TOD has not been set */ _TOD_Is_set = FALSE; _TOD_Activate(); } 45cee: 4e75 rts 00046d48 <_TOD_Set>: 46d48: 2039 0006 0fcc movel 60fcc <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED */ void _TOD_Set( const struct timespec *time ) { 46d4e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46d52: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46d54: 5280 addql #1,%d0 <== NOT EXECUTED 46d56: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 46d5a: 23c0 0006 0fcc movel %d0,60fcc <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); _TOD_Deactivate(); if ( time->tv_sec < _TOD_Seconds_since_epoch ) 46d60: 2239 0006 105e movel 6105e <_TOD_Now>,%d1 <== NOT EXECUTED 46d66: 2012 movel %a2@,%d0 <== NOT EXECUTED 46d68: 41f9 0004 8ff8 lea 48ff8 <_Watchdog_Adjust>,%a0 <== NOT EXECUTED 46d6e: b280 cmpl %d0,%d1 <== NOT EXECUTED 46d70: 6f0a bles 46d7c <_TOD_Set+0x34> <== NOT EXECUTED Watchdog_Adjust_directions direction, Watchdog_Interval units ) { _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units ); 46d72: 9280 subl %d0,%d1 <== NOT EXECUTED 46d74: 2f01 movel %d1,%sp@- <== NOT EXECUTED 46d76: 4878 0001 pea 1 <== NOT EXECUTED 46d7a: 6006 bras 46d82 <_TOD_Set+0x3a> <== NOT EXECUTED else _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, time->tv_sec - _TOD_Seconds_since_epoch ); /* POSIX format TOD (timespec) */ _TOD_Now = *time; 46d7c: 9081 subl %d1,%d0 <== NOT EXECUTED 46d7e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46d80: 42a7 clrl %sp@- <== NOT EXECUTED 46d82: 4879 0006 109c pea 6109c <_Watchdog_Seconds_chain> <== NOT EXECUTED 46d88: 4e90 jsr %a0@ <== NOT EXECUTED 46d8a: 2012 movel %a2@,%d0 <== NOT EXECUTED 46d8c: 588a addql #4,%a2 <== NOT EXECUTED 46d8e: 23d2 0006 1062 movel %a2@,61062 <_TOD_Now+0x4> <== NOT EXECUTED _TOD_Is_set = TRUE; _TOD_Activate(); _Thread_Enable_dispatch(); } 46d94: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46d98: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46d9e: 4e5e unlk %fp <== NOT EXECUTED _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, time->tv_sec - _TOD_Seconds_since_epoch ); /* POSIX format TOD (timespec) */ _TOD_Now = *time; _TOD_Is_set = TRUE; 46da0: 7201 moveq #1,%d1 <== NOT EXECUTED 46da2: 13c1 0006 0fe0 moveb %d1,60fe0 <_TOD_Is_set> <== NOT EXECUTED else _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, time->tv_sec - _TOD_Seconds_since_epoch ); /* POSIX format TOD (timespec) */ _TOD_Now = *time; 46da8: 23c0 0006 105e movel %d0,6105e <_TOD_Now> <== NOT EXECUTED _TOD_Is_set = TRUE; _TOD_Activate(); _Thread_Enable_dispatch(); 46dae: 4ef9 0004 7de6 jmp 47de6 <_Thread_Enable_dispatch> <== NOT EXECUTED 00045cf0 <_TOD_Tickle_ticks>: { struct timespec tick; uint32_t seconds; /* Convert the tick quantum to a timespec */ tick.tv_nsec = _TOD_Microseconds_per_tick * 1000; 45cf0: 2239 0005 6e32 movel 56e32 <_TOD_Microseconds_per_tick>,%d1 <== NOT EXECUTED * * Output parameters: NONE */ void _TOD_Tickle_ticks( void ) { 45cf6: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 45cfa: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED struct timespec tick; uint32_t seconds; /* Convert the tick quantum to a timespec */ tick.tv_nsec = _TOD_Microseconds_per_tick * 1000; 45cfe: 2401 movel %d1,%d2 <== NOT EXECUTED 45d00: 2001 movel %d1,%d0 <== NOT EXECUTED 45d02: e58a lsll #2,%d2 <== NOT EXECUTED 45d04: ef88 lsll #7,%d0 <== NOT EXECUTED tick.tv_sec = 0; /* Update the counter of ticks since boot */ _Watchdog_Ticks_since_boot += 1; 45d06: 2079 0005 6dec moveal 56dec <_Watchdog_Ticks_since_boot>,%a0 <== NOT EXECUTED { struct timespec tick; uint32_t seconds; /* Convert the tick quantum to a timespec */ tick.tv_nsec = _TOD_Microseconds_per_tick * 1000; 45d0c: 9082 subl %d2,%d0 <== NOT EXECUTED /* Update the counter of ticks since boot */ _Watchdog_Ticks_since_boot += 1; /* Update the timespec format uptime */ (void) _Timespec_Add_to( &_TOD_Uptime, &tick ); 45d0e: 240e movel %fp,%d2 <== NOT EXECUTED { struct timespec tick; uint32_t seconds; /* Convert the tick quantum to a timespec */ tick.tv_nsec = _TOD_Microseconds_per_tick * 1000; 45d10: d081 addl %d1,%d0 <== NOT EXECUTED /* Update the counter of ticks since boot */ _Watchdog_Ticks_since_boot += 1; /* Update the timespec format uptime */ (void) _Timespec_Add_to( &_TOD_Uptime, &tick ); 45d12: 5182 subql #8,%d2 <== NOT EXECUTED 45d14: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* Convert the tick quantum to a timespec */ tick.tv_nsec = _TOD_Microseconds_per_tick * 1000; tick.tv_sec = 0; /* Update the counter of ticks since boot */ _Watchdog_Ticks_since_boot += 1; 45d16: 5288 addql #1,%a0 <== NOT EXECUTED { struct timespec tick; uint32_t seconds; /* Convert the tick quantum to a timespec */ tick.tv_nsec = _TOD_Microseconds_per_tick * 1000; 45d18: e788 lsll #3,%d0 <== NOT EXECUTED /* Update the counter of ticks since boot */ _Watchdog_Ticks_since_boot += 1; /* Update the timespec format uptime */ (void) _Timespec_Add_to( &_TOD_Uptime, &tick ); 45d1a: 45f9 0004 790c lea 4790c <_Timespec_Add_to>,%a2 <== NOT EXECUTED /* Convert the tick quantum to a timespec */ tick.tv_nsec = _TOD_Microseconds_per_tick * 1000; tick.tv_sec = 0; /* Update the counter of ticks since boot */ _Watchdog_Ticks_since_boot += 1; 45d20: 23c8 0005 6dec movel %a0,56dec <_Watchdog_Ticks_since_boot> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_seconds( void ) { _Watchdog_Tickle( &_Watchdog_Seconds_chain ); 45d26: 47f9 0004 7d5c lea 47d5c <_Watchdog_Tickle>,%a3 <== NOT EXECUTED /* Update the timespec format uptime */ (void) _Timespec_Add_to( &_TOD_Uptime, &tick ); 45d2c: 4879 0005 6d22 pea 56d22 <_TOD_Uptime> <== NOT EXECUTED { struct timespec tick; uint32_t seconds; /* Convert the tick quantum to a timespec */ tick.tv_nsec = _TOD_Microseconds_per_tick * 1000; 45d32: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED tick.tv_sec = 0; 45d36: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED /* Update the counter of ticks since boot */ _Watchdog_Ticks_since_boot += 1; /* Update the timespec format uptime */ (void) _Timespec_Add_to( &_TOD_Uptime, &tick ); 45d3a: 4e92 jsr %a2@ <== NOT EXECUTED /* we do not care how much the uptime changed */ /* Update the timespec format TOD */ seconds = _Timespec_Add_to( &_TOD_Now, &tick ); 45d3c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45d3e: 4879 0005 6d36 pea 56d36 <_TOD_Now> <== NOT EXECUTED 45d44: 4e92 jsr %a2@ <== NOT EXECUTED 45d46: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45d4c: 2400 movel %d0,%d2 <== NOT EXECUTED 45d4e: 600c bras 45d5c <_TOD_Tickle_ticks+0x6c> <== NOT EXECUTED 45d50: 4879 0005 6d74 pea 56d74 <_Watchdog_Seconds_chain> <== NOT EXECUTED 45d56: 4e93 jsr %a3@ <== NOT EXECUTED while ( seconds ) { _Watchdog_Tickle_seconds(); seconds--; 45d58: 5382 subql #1,%d2 <== NOT EXECUTED 45d5a: 588f addql #4,%sp <== NOT EXECUTED (void) _Timespec_Add_to( &_TOD_Uptime, &tick ); /* we do not care how much the uptime changed */ /* Update the timespec format TOD */ seconds = _Timespec_Add_to( &_TOD_Now, &tick ); while ( seconds ) { 45d5c: 4a82 tstl %d2 <== NOT EXECUTED 45d5e: 66f0 bnes 45d50 <_TOD_Tickle_ticks+0x60> <== NOT EXECUTED _Watchdog_Tickle_seconds(); seconds--; } } 45d60: 4cee 0c04 ffec moveml %fp@(-20),%d2/%a2-%a3 <== NOT EXECUTED 45d66: 4e5e unlk %fp <== NOT EXECUTED 45d68: 4e75 rts <== NOT EXECUTED ... 00045588 <_TOD_To_seconds>: */ uint32_t _TOD_To_seconds( rtems_time_of_day *the_tod ) { 45588: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4558c: 48d7 043c moveml %d2-%d5/%a2,%sp@ <== NOT EXECUTED 45590: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED uint32_t time; uint32_t year_mod_4; time = the_tod->day - 1; year_mod_4 = the_tod->year & 3; 45594: 2412 movel %a2@,%d2 <== NOT EXECUTED ) { uint32_t time; uint32_t year_mod_4; time = the_tod->day - 1; 45596: 222a 0008 movel %a2@(8),%d1 <== NOT EXECUTED year_mod_4 = the_tod->year & 3; 4559a: 7a03 moveq #3,%d5 <== NOT EXECUTED ) { uint32_t time; uint32_t year_mod_4; time = the_tod->day - 1; 4559c: 5381 subql #1,%d1 <== NOT EXECUTED year_mod_4 = the_tod->year & 3; 4559e: ca82 andl %d2,%d5 <== NOT EXECUTED 455a0: 41f9 0005 660e lea 5660e <_TOD_Days_to_date>,%a0 <== NOT EXECUTED if ( year_mod_4 == 0 ) 455a6: 660c bnes 455b4 <_TOD_To_seconds+0x2c> <== NOT EXECUTED time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; 455a8: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 455ac: 0680 0000 000d addil #13,%d0 <== NOT EXECUTED 455b2: 6004 bras 455b8 <_TOD_To_seconds+0x30> <== NOT EXECUTED else time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; 455b4: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 455b8: 3030 0a00 movew %a0@(00000000,%d0:l:2),%d0 <== NOT EXECUTED 455bc: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 455c2: 2800 movel %d0,%d4 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 455c4: 0682 ffff f83c addil #-1988,%d2 <== NOT EXECUTED 455ca: e48a lsrl #2,%d2 <== NOT EXECUTED year_mod_4 = the_tod->year & 3; if ( year_mod_4 == 0 ) time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; else time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; 455cc: d881 addl %d1,%d4 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 455ce: 2002 movel %d2,%d0 <== NOT EXECUTED 455d0: 2202 movel %d2,%d1 <== NOT EXECUTED 455d2: ed89 lsll #6,%d1 <== NOT EXECUTED 455d4: e788 lsll #3,%d0 <== NOT EXECUTED 455d6: d081 addl %d1,%d0 <== NOT EXECUTED time *= TOD_SECONDS_PER_DAY; time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 455d8: 262a 000c movel %a2@(12),%d3 <== NOT EXECUTED if ( year_mod_4 == 0 ) time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; else time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 455dc: 2040 moveal %d0,%a0 <== NOT EXECUTED 455de: 43f9 0005 6642 lea 56642 <_TOD_Days_since_last_leap_year>,%a1 <== NOT EXECUTED 455e4: 4280 clrl %d0 <== NOT EXECUTED 455e6: 3031 5a00 movew %a1@(00000000,%d5:l:2),%d0 <== NOT EXECUTED 455ea: d1c2 addal %d2,%a0 <== NOT EXECUTED 455ec: 2242 moveal %d2,%a1 <== NOT EXECUTED time *= TOD_SECONDS_PER_DAY; time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 455ee: 2203 movel %d3,%d1 <== NOT EXECUTED if ( year_mod_4 == 0 ) time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; else time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 455f0: 41f0 8c00 lea %a0@(00000000,%a0:l:4),%a0 <== NOT EXECUTED time *= TOD_SECONDS_PER_DAY; time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 455f4: e58b lsll #2,%d3 <== NOT EXECUTED if ( year_mod_4 == 0 ) time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; else time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 455f6: 41f1 8c00 lea %a1@(00000000,%a0:l:4),%a0 <== NOT EXECUTED time *= TOD_SECONDS_PER_DAY; time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 455fa: ed89 lsll #6,%d1 <== NOT EXECUTED 455fc: 9283 subl %d3,%d1 <== NOT EXECUTED if ( year_mod_4 == 0 ) time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; else time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 455fe: d088 addl %a0,%d0 <== NOT EXECUTED ( (TOD_DAYS_PER_YEAR * 4) + 1); time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; 45600: d084 addl %d4,%d0 <== NOT EXECUTED time *= TOD_SECONDS_PER_DAY; time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 45602: d2aa 0010 addl %a2@(16),%d1 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * ( (TOD_DAYS_PER_YEAR * 4) + 1); time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; time *= TOD_SECONDS_PER_DAY; 45606: 2400 movel %d0,%d2 <== NOT EXECUTED 45608: 7609 moveq #9,%d3 <== NOT EXECUTED 4560a: e7aa lsll %d3,%d2 <== NOT EXECUTED 4560c: ef88 lsll #7,%d0 <== NOT EXECUTED 4560e: 9480 subl %d0,%d2 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 45610: 2001 movel %d1,%d0 <== NOT EXECUTED 45612: e589 lsll #2,%d1 <== NOT EXECUTED 45614: ed88 lsll #6,%d0 <== NOT EXECUTED 45616: 9081 subl %d1,%d0 <== NOT EXECUTED time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; time *= TOD_SECONDS_PER_DAY; time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) 45618: 222a 0014 movel %a2@(20),%d1 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * ( (TOD_DAYS_PER_YEAR * 4) + 1); time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; time *= TOD_SECONDS_PER_DAY; 4561c: 2602 movel %d2,%d3 <== NOT EXECUTED 4561e: e98b lsll #4,%d3 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) 45620: 0681 21da e500 addil #567993600,%d1 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * ( (TOD_DAYS_PER_YEAR * 4) + 1); time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; time *= TOD_SECONDS_PER_DAY; 45626: 9682 subl %d2,%d3 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 45628: d280 addl %d0,%d1 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * ( (TOD_DAYS_PER_YEAR * 4) + 1); time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; time *= TOD_SECONDS_PER_DAY; 4562a: 2003 movel %d3,%d0 <== NOT EXECUTED 4562c: e988 lsll #4,%d0 <== NOT EXECUTED 4562e: 9083 subl %d3,%d0 <== NOT EXECUTED time += the_tod->second; time += TOD_SECONDS_1970_THROUGH_1988; return( time ); } 45630: 4cd7 043c moveml %sp@,%d2-%d5/%a2 <== NOT EXECUTED 45634: 4e5e unlk %fp <== NOT EXECUTED 45636: d081 addl %d1,%d0 <== NOT EXECUTED 45638: 4e75 rts <== NOT EXECUTED ... 0004563c <_TOD_Validate>: */ bool _TOD_Validate( rtems_time_of_day *the_tod ) { 4563c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45640: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45644: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t days_in_month; if ((!the_tod) || 45646: 4a88 tstl %a0 <== NOT EXECUTED 45648: 676c beqs 456b6 <_TOD_Validate+0x7a> <== NOT EXECUTED 4564a: 43f9 0006 115a lea 6115a <_TOD_Microseconds_per_tick>,%a1 <== NOT EXECUTED 45650: 203c 000f 4240 movel #1000000,%d0 <== NOT EXECUTED 45656: 4c51 0000 remul %a1@,%d0,%d0 <== NOT EXECUTED 4565a: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 4565e: 6356 blss 456b6 <_TOD_Validate+0x7a> <== NOT EXECUTED 45660: 703b moveq #59,%d0 <== NOT EXECUTED 45662: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 45666: 654e bcss 456b6 <_TOD_Validate+0x7a> <== NOT EXECUTED 45668: b0a8 0010 cmpl %a0@(16),%d0 <== NOT EXECUTED 4566c: 6548 bcss 456b6 <_TOD_Validate+0x7a> <== NOT EXECUTED 4566e: 7417 moveq #23,%d2 <== NOT EXECUTED 45670: b4a8 000c cmpl %a0@(12),%d2 <== NOT EXECUTED 45674: 6540 bcss 456b6 <_TOD_Validate+0x7a> <== NOT EXECUTED 45676: 2228 0004 movel %a0@(4),%d1 <== NOT EXECUTED 4567a: 673a beqs 456b6 <_TOD_Validate+0x7a> <== NOT EXECUTED 4567c: 103c 000c moveb #12,%d0 <== NOT EXECUTED 45680: b081 cmpl %d1,%d0 <== NOT EXECUTED 45682: 6532 bcss 456b6 <_TOD_Validate+0x7a> <== NOT EXECUTED 45684: 2010 movel %a0@,%d0 <== NOT EXECUTED 45686: 0c80 0000 07c3 cmpil #1987,%d0 <== NOT EXECUTED 4568c: 6328 blss 456b6 <_TOD_Validate+0x7a> <== NOT EXECUTED 4568e: 2268 0008 moveal %a0@(8),%a1 <== NOT EXECUTED 45692: 4a89 tstl %a1 <== NOT EXECUTED 45694: 6720 beqs 456b6 <_TOD_Validate+0x7a> <== NOT EXECUTED (the_tod->month > TOD_MONTHS_PER_YEAR) || (the_tod->year < TOD_BASE_YEAR) || (the_tod->day == 0) ) return false; if ( (the_tod->year % 4) == 0 ) 45696: 143c 0003 moveb #3,%d2 <== NOT EXECUTED 4569a: c082 andl %d2,%d0 <== NOT EXECUTED 4569c: 41f9 0005 664a lea 5664a <_TOD_Days_per_month>,%a0 <== NOT EXECUTED 456a2: 6606 bnes 456aa <_TOD_Validate+0x6e> <== NOT EXECUTED days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ]; 456a4: 2030 1c34 movel %a0@(00000034,%d1:l:4),%d0 <== NOT EXECUTED 456a8: 6004 bras 456ae <_TOD_Validate+0x72> <== NOT EXECUTED else days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ]; 456aa: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 456ae: b089 cmpl %a1,%d0 <== NOT EXECUTED 456b0: 54c0 scc %d0 <== NOT EXECUTED 456b2: 4480 negl %d0 <== NOT EXECUTED 456b4: 6002 bras 456b8 <_TOD_Validate+0x7c> <== NOT EXECUTED 456b6: 4200 clrb %d0 <== NOT EXECUTED if ( the_tod->day > days_in_month ) return false; return true; } 456b8: 241f movel %sp@+,%d2 <== NOT EXECUTED 456ba: 4e5e unlk %fp <== NOT EXECUTED 456bc: 4e75 rts <== NOT EXECUTED ... 00046748 <_Thread_Change_priority>: void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) { 46748: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4674c: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 46750: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 46754: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED */ /* * Save original state */ original_state = the_thread->current_state; 46758: 262a 0010 movel %a2@(16),%d3 <== NOT EXECUTED /* * Set a transient state for the thread so it is pulled off the Ready chains. * This will prevent it from being scheduled no matter what happens in an * ISR. */ _Thread_Set_transient( the_thread ); 4675c: 2f0a movel %a2,%sp@- <== NOT EXECUTED void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) { 4675e: 182e 0013 moveb %fp@(19),%d4 <== NOT EXECUTED /* * Set a transient state for the thread so it is pulled off the Ready chains. * This will prevent it from being scheduled no matter what happens in an * ISR. */ _Thread_Set_transient( the_thread ); 46762: 4eb9 0004 757c jsr 4757c <_Thread_Set_transient> <== NOT EXECUTED /* * Do not bother recomputing all the priority related information if * we are not REALLY changing priority. */ if ( the_thread->current_priority != new_priority ) 46768: 588f addql #4,%sp <== NOT EXECUTED 4676a: b4aa 0014 cmpl %a2@(20),%d2 <== NOT EXECUTED 4676e: 670c beqs 4677c <_Thread_Change_priority+0x34> <== NOT EXECUTED _Thread_Set_priority( the_thread, new_priority ); 46770: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46772: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46774: 4eb9 0004 7424 jsr 47424 <_Thread_Set_priority> <== NOT EXECUTED 4677a: 508f addql #8,%sp <== NOT EXECUTED _ISR_Disable( level ); 4677c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 46782: 40c2 movew %sr,%d2 <== NOT EXECUTED 46784: 8082 orl %d2,%d0 <== NOT EXECUTED 46786: 46c0 movew %d0,%sr <== NOT EXECUTED 46788: 7204 moveq #4,%d1 <== NOT EXECUTED /* * If the thread has more than STATES_TRANSIENT set, then it is blocked, * If it is blocked on a thread queue, then we need to requeue it. */ state = the_thread->current_state; 4678a: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4678e: c283 andl %d3,%d1 <== NOT EXECUTED if ( state != STATES_TRANSIENT ) { 46790: 7604 moveq #4,%d3 <== NOT EXECUTED 46792: b680 cmpl %d0,%d3 <== NOT EXECUTED 46794: 6730 beqs 467c6 <_Thread_Change_priority+0x7e> <== NOT EXECUTED /* Only clear the transient state if it wasn't set already */ if ( ! _States_Is_transient( original_state ) ) 46796: 4a81 tstl %d1 <== NOT EXECUTED 46798: 6608 bnes 467a2 <_Thread_Change_priority+0x5a> <== NOT EXECUTED the_thread->current_state = _States_Clear( STATES_TRANSIENT, state ); 4679a: 72fb moveq #-5,%d1 <== NOT EXECUTED 4679c: c280 andl %d0,%d1 <== NOT EXECUTED 4679e: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED _ISR_Enable( level ); 467a2: 46c2 movew %d2,%sr <== NOT EXECUTED if ( _States_Is_waiting_on_thread_queue( state ) ) { 467a4: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 467aa: 6700 00d4 beqw 46880 <_Thread_Change_priority+0x138> <== NOT EXECUTED _Thread_queue_Requeue( the_thread->Wait.queue, the_thread ); 467ae: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 467b2: 2d6a 0044 0008 movel %a2@(68),%fp@(8) <== NOT EXECUTED if ( !_Thread_Is_executing_also_the_heir() && _Thread_Executing->is_preemptible ) _Context_Switch_necessary = TRUE; _ISR_Enable( level ); } 467b8: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 467be: 4e5e unlk %fp <== NOT EXECUTED /* Only clear the transient state if it wasn't set already */ if ( ! _States_Is_transient( original_state ) ) the_thread->current_state = _States_Clear( STATES_TRANSIENT, state ); _ISR_Enable( level ); if ( _States_Is_waiting_on_thread_queue( state ) ) { _Thread_queue_Requeue( the_thread->Wait.queue, the_thread ); 467c0: 4ef9 0004 7384 jmp 47384 <_Thread_queue_Requeue> <== NOT EXECUTED } return; } /* Only clear the transient state if it wasn't set already */ if ( ! _States_Is_transient( original_state ) ) { 467c6: 4a81 tstl %d1 <== NOT EXECUTED 467c8: 6650 bnes 4681a <_Thread_Change_priority+0xd2> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Priority_Add_to_bit_map ( Priority_Information *the_priority_map ) { *the_priority_map->minor |= the_priority_map->ready_minor; 467ca: 206a 0090 moveal %a2@(144),%a0 <== NOT EXECUTED 467ce: 322a 0096 movew %a2@(150),%d1 <== NOT EXECUTED 467d2: 3010 movew %a0@,%d0 <== NOT EXECUTED 467d4: 8081 orl %d1,%d0 <== NOT EXECUTED 467d6: 3080 movew %d0,%a0@ <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 467d8: 3239 0005 6d58 movew 56d58 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 467de: 302a 0094 movew %a2@(148),%d0 <== NOT EXECUTED 467e2: 226a 008c moveal %a2@(140),%a1 <== NOT EXECUTED 467e6: 8081 orl %d1,%d0 <== NOT EXECUTED 467e8: 33c0 0005 6d58 movew %d0,56d58 <_Priority_Major_bit_map> <== NOT EXECUTED * Interrupts are STILL disabled. * We now know the thread will be in the READY state when we remove * the TRANSIENT state. So we have to place it on the appropriate * Ready Queue with interrupts off. */ the_thread->current_state = _States_Clear( STATES_TRANSIENT, state ); 467ee: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED _Priority_Add_to_bit_map( &the_thread->Priority_map ); if ( prepend_it ) 467f2: 4a04 tstb %d4 <== NOT EXECUTED 467f4: 6710 beqs 46806 <_Thread_Change_priority+0xbe> <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 467f6: 2051 moveal %a1@,%a0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 467f8: 2549 0004 movel %a1,%a2@(4) <== NOT EXECUTED before_node = after_node->next; after_node->next = the_node; 467fc: 228a movel %a2,%a1@ <== NOT EXECUTED the_node->next = before_node; before_node->previous = the_node; 467fe: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; after_node->next = the_node; the_node->next = before_node; 46802: 2488 movel %a0,%a2@ <== NOT EXECUTED 46804: 6014 bras 4681a <_Thread_Change_priority+0xd2> <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 46806: 2609 movel %a1,%d3 <== NOT EXECUTED 46808: 5883 addql #4,%d3 <== NOT EXECUTED 4680a: 2483 movel %d3,%a2@ <== NOT EXECUTED old_last_node = the_chain->last; 4680c: 2069 0008 moveal %a1@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 46810: 234a 0008 movel %a2,%a1@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 46814: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; the_chain->last = the_node; old_last_node->next = the_node; 46818: 208a movel %a2,%a0@ <== NOT EXECUTED _Chain_Prepend_unprotected( the_thread->ready, &the_thread->Object.Node ); else _Chain_Append_unprotected( the_thread->ready, &the_thread->Object.Node ); } _ISR_Flash( level ); 4681a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 46820: 46c2 movew %d2,%sr <== NOT EXECUTED 46822: 8082 orl %d2,%d0 <== NOT EXECUTED 46824: 46c0 movew %d0,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE Priority_Control _Priority_Get_highest( void ) { Priority_Bit_map_control minor; Priority_Bit_map_control major; _Bitfield_Find_first_bit( _Priority_Major_bit_map, major ); 46826: 3039 0005 6d58 movew 56d58 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 4682c: 4840 swap %d0 <== NOT EXECUTED 4682e: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 46830: 41f9 0005 6dc8 lea 56dc8 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 46836: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 4683c: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 46840: 4841 swap %d1 <== NOT EXECUTED 46842: 04c1 ff1 %d1 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 46844: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 4684a: e988 lsll #4,%d0 <== NOT EXECUTED 4684c: d081 addl %d1,%d0 <== NOT EXECUTED 4684e: 2079 0005 6c50 moveal 56c50 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 46854: 2200 movel %d0,%d1 <== NOT EXECUTED 46856: e588 lsll #2,%d0 <== NOT EXECUTED 46858: 91c0 subal %d0,%a0 <== NOT EXECUTED 4685a: e989 lsll #4,%d1 <== NOT EXECUTED 4685c: 2030 1800 movel %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED * is also the heir thread, and FALSE otherwise. */ RTEMS_INLINE_ROUTINE bool _Thread_Is_executing_also_the_heir( void ) { return ( _Thread_Executing == _Thread_Heir ); 46860: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 46866: 23c0 0005 6d32 movel %d0,56d32 <_Thread_Heir> <== NOT EXECUTED * We altered the set of thread priorities. So let's figure out * who is the heir and if we need to switch to them. */ _Thread_Calculate_heir(); if ( !_Thread_Is_executing_also_the_heir() && 4686c: b088 cmpl %a0,%d0 <== NOT EXECUTED 4686e: 670e beqs 4687e <_Thread_Change_priority+0x136> <== NOT EXECUTED 46870: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 46874: 6708 beqs 4687e <_Thread_Change_priority+0x136> <== NOT EXECUTED _Thread_Executing->is_preemptible ) _Context_Switch_necessary = TRUE; 46876: 7001 moveq #1,%d0 <== NOT EXECUTED 46878: 13c0 0005 6d72 moveb %d0,56d72 <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 4687e: 46c2 movew %d2,%sr <== NOT EXECUTED } 46880: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 46886: 4e5e unlk %fp <== NOT EXECUTED 46888: 4e75 rts <== NOT EXECUTED ... 0004688c <_Thread_Clear_state>: void _Thread_Clear_state( Thread_Control *the_thread, States_Control state ) { 4688c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 46890: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED ISR_Level level; States_Control current_state; _ISR_Disable( level ); 46894: 283c 0000 0700 movel #1792,%d4 <== NOT EXECUTED void _Thread_Clear_state( Thread_Control *the_thread, States_Control state ) { 4689a: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4689e: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED ISR_Level level; States_Control current_state; _ISR_Disable( level ); 468a2: 2004 movel %d4,%d0 <== NOT EXECUTED 468a4: 40c3 movew %sr,%d3 <== NOT EXECUTED 468a6: 8083 orl %d3,%d0 <== NOT EXECUTED 468a8: 46c0 movew %d0,%sr <== NOT EXECUTED current_state = the_thread->current_state; 468aa: 222b 0010 movel %a3@(16),%d1 <== NOT EXECUTED if ( current_state & state ) { 468ae: 2002 movel %d2,%d0 <== NOT EXECUTED 468b0: c081 andl %d1,%d0 <== NOT EXECUTED 468b2: 677a beqs 4692e <_Thread_Clear_state+0xa2> <== NOT EXECUTED RTEMS_INLINE_ROUTINE States_Control _States_Clear ( States_Control states_to_clear, States_Control current_state ) { return (current_state & ~states_to_clear); 468b4: 2002 movel %d2,%d0 <== NOT EXECUTED 468b6: 4680 notl %d0 <== NOT EXECUTED 468b8: c081 andl %d1,%d0 <== NOT EXECUTED current_state = 468ba: 2740 0010 movel %d0,%a3@(16) <== NOT EXECUTED the_thread->current_state = _States_Clear( state, current_state ); if ( _States_Is_ready( current_state ) ) { 468be: 666e bnes 4692e <_Thread_Clear_state+0xa2> <== NOT EXECUTED _Priority_Add_to_bit_map( &the_thread->Priority_map ); _Chain_Append_unprotected(the_thread->ready, &the_thread->Object.Node); 468c0: 206b 008c moveal %a3@(140),%a0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 468c4: 2008 movel %a0,%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Priority_Add_to_bit_map ( Priority_Information *the_priority_map ) { *the_priority_map->minor |= the_priority_map->ready_minor; 468c6: 226b 0090 moveal %a3@(144),%a1 <== NOT EXECUTED 468ca: 5880 addql #4,%d0 <== NOT EXECUTED 468cc: 2680 movel %d0,%a3@ <== NOT EXECUTED old_last_node = the_chain->last; 468ce: 2468 0008 moveal %a0@(8),%a2 <== NOT EXECUTED 468d2: 322b 0096 movew %a3@(150),%d1 <== NOT EXECUTED 468d6: 3011 movew %a1@,%d0 <== NOT EXECUTED 468d8: 8081 orl %d1,%d0 <== NOT EXECUTED 468da: 3280 movew %d0,%a1@ <== NOT EXECUTED the_chain->last = the_node; 468dc: 214b 0008 movel %a3,%a0@(8) <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 468e0: 3239 0005 6d58 movew 56d58 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 468e6: 302b 0094 movew %a3@(148),%d0 <== NOT EXECUTED 468ea: 8081 orl %d1,%d0 <== NOT EXECUTED 468ec: 33c0 0005 6d58 movew %d0,56d58 <_Priority_Major_bit_map> <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 468f2: 274a 0004 movel %a2,%a3@(4) <== NOT EXECUTED Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; the_chain->last = the_node; old_last_node->next = the_node; 468f6: 248b movel %a3,%a2@ <== NOT EXECUTED _ISR_Flash( level ); 468f8: 2004 movel %d4,%d0 <== NOT EXECUTED 468fa: 46c3 movew %d3,%sr <== NOT EXECUTED 468fc: 8083 orl %d3,%d0 <== NOT EXECUTED 468fe: 46c0 movew %d0,%sr <== NOT EXECUTED * a context switch. * Pseudo-ISR case: * Even if the thread isn't preemptible, if the new heir is * a pseudo-ISR system task, we need to do a context switch. */ if ( the_thread->current_priority < _Thread_Heir->current_priority ) { 46900: 2079 0005 6d32 moveal 56d32 <_Thread_Heir>,%a0 <== NOT EXECUTED 46906: 202b 0014 movel %a3@(20),%d0 <== NOT EXECUTED 4690a: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 4690e: 641e bccs 4692e <_Thread_Clear_state+0xa2> <== NOT EXECUTED _Thread_Heir = the_thread; if ( _Thread_Executing->is_preemptible || 46910: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED * Pseudo-ISR case: * Even if the thread isn't preemptible, if the new heir is * a pseudo-ISR system task, we need to do a context switch. */ if ( the_thread->current_priority < _Thread_Heir->current_priority ) { _Thread_Heir = the_thread; 46916: 23cb 0005 6d32 movel %a3,56d32 <_Thread_Heir> <== NOT EXECUTED if ( _Thread_Executing->is_preemptible || 4691c: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 46920: 6604 bnes 46926 <_Thread_Clear_state+0x9a> <== NOT EXECUTED 46922: 4a80 tstl %d0 <== NOT EXECUTED 46924: 6608 bnes 4692e <_Thread_Clear_state+0xa2> <== NOT EXECUTED the_thread->current_priority == 0 ) _Context_Switch_necessary = TRUE; 46926: 7001 moveq #1,%d0 <== NOT EXECUTED 46928: 13c0 0005 6d72 moveb %d0,56d72 <_Context_Switch_necessary> <== NOT EXECUTED } } } _ISR_Enable( level ); 4692e: 46c3 movew %d3,%sr <== NOT EXECUTED } 46930: 4cd7 0c1c moveml %sp@,%d2-%d4/%a2-%a3 <== NOT EXECUTED 46934: 4e5e unlk %fp <== NOT EXECUTED 46936: 4e75 rts 00046938 <_Thread_Close>: void _Thread_Close( Objects_Information *information, Thread_Control *the_thread ) { 46938: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4693c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4693e: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 46942: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46944: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 46948: 206a 001a moveal %a2@(26),%a0 <== NOT EXECUTED 4694c: 4280 clrl %d0 <== NOT EXECUTED 4694e: 302b 000a movew %a3@(10),%d0 <== NOT EXECUTED 46952: 42b0 0c00 clrl %a0@(00000000,%d0:l:4) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 46956: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4695c: 5380 subql #1,%d0 <== NOT EXECUTED 4695e: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * disappear and set a transient state on it. So we temporarily * unnest dispatching. */ _Thread_Unnest_dispatch(); _User_extensions_Thread_delete( the_thread ); 46964: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46966: 4eb9 0004 7b24 jsr 47b24 <_User_extensions_Thread_delete> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4696c: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46972: 5280 addql #1,%d0 <== NOT EXECUTED 46974: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Now we are in a dispatching critical section again and we * can take the thread OUT of the published set. It is invalid * to use this thread's Id OR name after this call. */ _Objects_Close( information, &the_thread->Object ); 4697a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4697c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4697e: 4eb9 0004 6094 jsr 46094 <_Objects_Close> <== NOT EXECUTED /* * By setting the dormant state, the thread will not be considered * for scheduling when we remove any blocking states. */ _Thread_Set_state( the_thread, STATES_DORMANT ); 46984: 4878 0001 pea 1 <== NOT EXECUTED 46988: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4698a: 4eb9 0004 7490 jsr 47490 <_Thread_Set_state> <== NOT EXECUTED if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) { 46990: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46992: 4eb9 0004 72ac jsr 472ac <_Thread_queue_Extract_with_proxy> <== NOT EXECUTED 46998: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 4699e: 4a00 tstb %d0 <== NOT EXECUTED 469a0: 6614 bnes 469b6 <_Thread_Close+0x7e> <== NOT EXECUTED if ( _Watchdog_Is_active( &the_thread->Timer ) ) 469a2: 7002 moveq #2,%d0 <== NOT EXECUTED 469a4: b0ab 0050 cmpl %a3@(80),%d0 <== NOT EXECUTED 469a8: 660c bnes 469b6 <_Thread_Close+0x7e> <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 469aa: 486b 0048 pea %a3@(72) <== NOT EXECUTED 469ae: 4eb9 0004 7ce0 jsr 47ce0 <_Watchdog_Remove> <== NOT EXECUTED 469b4: 588f addql #4,%sp <== NOT EXECUTED /* * The thread might have been FP. So deal with that. */ #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE ) if ( _Thread_Is_allocated_fp( the_thread ) ) 469b6: b7f9 0005 6d2a cmpal 56d2a <_Thread_Allocated_fp>,%a3 <== NOT EXECUTED 469bc: 6606 bnes 469c4 <_Thread_Close+0x8c> <== NOT EXECUTED */ #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) RTEMS_INLINE_ROUTINE void _Thread_Deallocate_fp( void ) { _Thread_Allocated_fp = NULL; 469be: 42b9 0005 6d2a clrl 56d2a <_Thread_Allocated_fp> <== NOT EXECUTED _Thread_Deallocate_fp(); #endif the_thread->fp_context = NULL; if ( the_thread->Start.fp_context ) 469c4: 202b 00c8 movel %a3@(200),%d0 <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE ) if ( _Thread_Is_allocated_fp( the_thread ) ) _Thread_Deallocate_fp(); #endif the_thread->fp_context = NULL; 469c8: 42ab 0104 clrl %a3@(260) <== NOT EXECUTED if ( the_thread->Start.fp_context ) 469cc: 4a80 tstl %d0 <== NOT EXECUTED 469ce: 670a beqs 469da <_Thread_Close+0xa2> <== NOT EXECUTED (void) _Workspace_Free( the_thread->Start.fp_context ); 469d0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 469d2: 4eb9 0004 7dd8 jsr 47dd8 <_Workspace_Free> <== NOT EXECUTED 469d8: 588f addql #4,%sp <== NOT EXECUTED /* * Free the rest of the memory associated with this task * and set the associated pointers to NULL for safety. */ _Thread_Stack_Free( the_thread ); 469da: 2f0b movel %a3,%sp@- <== NOT EXECUTED 469dc: 4eb9 0004 7648 jsr 47648 <_Thread_Stack_Free> <== NOT EXECUTED the_thread->Start.stack = NULL; if ( the_thread->extensions ) 469e2: 202b 0118 movel %a3@(280),%d0 <== NOT EXECUTED /* * Free the rest of the memory associated with this task * and set the associated pointers to NULL for safety. */ _Thread_Stack_Free( the_thread ); the_thread->Start.stack = NULL; 469e6: 42ab 00cc clrl %a3@(204) <== NOT EXECUTED if ( the_thread->extensions ) 469ea: 588f addql #4,%sp <== NOT EXECUTED 469ec: 4a80 tstl %d0 <== NOT EXECUTED 469ee: 670a beqs 469fa <_Thread_Close+0xc2> <== NOT EXECUTED (void) _Workspace_Free( the_thread->extensions ); 469f0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 469f2: 4eb9 0004 7dd8 jsr 47dd8 <_Workspace_Free> <== NOT EXECUTED 469f8: 588f addql #4,%sp <== NOT EXECUTED the_thread->extensions = NULL; 469fa: 42ab 0118 clrl %a3@(280) <== NOT EXECUTED } 469fe: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46a02: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 46a06: 4e5e unlk %fp <== NOT EXECUTED 46a08: 4e75 rts <== NOT EXECUTED ... 00046a0c <_Thread_Create_idle>: * * _Thread_Create_idle */ void _Thread_Create_idle( void ) { 46a0c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED * This routine allocates an internal thread. */ RTEMS_INLINE_ROUTINE Thread_Control *_Thread_Internal_allocate( void ) { return (Thread_Control *) _Objects_Allocate( &_Thread_Internal_information ); 46a10: 4879 0005 6df6 pea 56df6 <_Thread_Internal_information> <== NOT EXECUTED 46a16: 4eb9 0004 600c jsr 4600c <_Objects_Allocate> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 46a1c: 2239 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d1 <== NOT EXECUTED 46a22: 5281 addql #1,%d1 <== NOT EXECUTED /* * The entire workspace is zeroed during its initialization. Thus, all * fields not explicitly assigned were explicitly zeroed by * _Workspace_Initialization. */ _Thread_Idle = _Thread_Internal_allocate(); 46a24: 23c0 0005 6e3e movel %d0,56e3e <_Thread_Idle> <== NOT EXECUTED 46a2a: 23c1 0005 6ca4 movel %d1,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * that when _Thread_Initialize unnests dispatch that we do not * do anything stupid. */ _Thread_Disable_dispatch(); _Thread_Initialize( 46a30: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED 46a36: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 46a3a: 4879 0005 41b8 pea 541b8 <== NOT EXECUTED 46a40: 4280 clrl %d0 <== NOT EXECUTED 46a42: 1039 0005 5192 moveb 55192 ,%d0 <== NOT EXECUTED 46a48: 42a7 clrl %sp@- <== NOT EXECUTED 46a4a: 2239 0005 518e movel 5518e ,%d1 <== NOT EXECUTED 46a50: 42a7 clrl %sp@- <== NOT EXECUTED 46a52: 42a7 clrl %sp@- <== NOT EXECUTED 46a54: 4878 0001 pea 1 <== NOT EXECUTED 46a58: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46a5a: 42a7 clrl %sp@- <== NOT EXECUTED 46a5c: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 46a5e: 6302 blss 46a62 <_Thread_Create_idle+0x56> <== NOT EXECUTED 46a60: 2208 movel %a0,%d1 <== NOT EXECUTED 46a62: 2f01 movel %d1,%sp@- <== NOT EXECUTED 46a64: 42a7 clrl %sp@- <== NOT EXECUTED 46a66: 2f39 0005 6e3e movel 56e3e <_Thread_Idle>,%sp@- <== NOT EXECUTED 46a6c: 4879 0005 6df6 pea 56df6 <_Thread_Internal_information> <== NOT EXECUTED 46a72: 4eb9 0004 6d0c jsr 46d0c <_Thread_Initialize> <== NOT EXECUTED * MUST be done before _Thread_Start is invoked. */ _Thread_Heir = _Thread_Executing = _Thread_Idle; _Thread_Start( 46a78: dffc 0000 002c addal #44,%sp <== NOT EXECUTED 46a7e: 4297 clrl %sp@ <== NOT EXECUTED 46a80: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED 46a86: 42a7 clrl %sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 46a88: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46a8e: 2f28 0014 movel %a0@(20),%sp@- <== NOT EXECUTED /* * WARNING!!! This is necessary to "kick" start the system and * MUST be done before _Thread_Start is invoked. */ _Thread_Heir = 46a92: 2239 0005 6e3e movel 56e3e <_Thread_Idle>,%d1 <== NOT EXECUTED _Thread_Executing = _Thread_Idle; _Thread_Start( 46a98: 42a7 clrl %sp@- <== NOT EXECUTED 46a9a: 5380 subql #1,%d0 <== NOT EXECUTED 46a9c: 2f01 movel %d1,%sp@- <== NOT EXECUTED 46a9e: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * WARNING!!! This is necessary to "kick" start the system and * MUST be done before _Thread_Start is invoked. */ _Thread_Heir = 46aa4: 23c1 0005 6d62 movel %d1,56d62 <_Thread_Executing> <== NOT EXECUTED 46aaa: 23c1 0005 6d32 movel %d1,56d32 <_Thread_Heir> <== NOT EXECUTED _Thread_Executing = _Thread_Idle; _Thread_Start( 46ab0: 4eb9 0004 76dc jsr 476dc <_Thread_Start> <== NOT EXECUTED 46ab6: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED _Configuration_Table->idle_task, NULL, 0 ); } 46abc: 4e5e unlk %fp <== NOT EXECUTED 46abe: 4e75 rts 00046ac0 <_Thread_Delay_ended>: void _Thread_Delay_ended( Objects_Id id, void *ignored ) { 46ac0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 46ac4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46ac8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46acc: 4eb9 0004 6c78 jsr 46c78 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 46ad2: 508f addql #8,%sp <== NOT EXECUTED 46ad4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46ad8: 661e bnes 46af8 <_Thread_Delay_ended+0x38> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 46ada: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 46ae0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46ae2: 4eb9 0004 688c jsr 4688c <_Thread_Clear_state> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 46ae8: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46aee: 508f addql #8,%sp <== NOT EXECUTED 46af0: 5380 subql #1,%d0 <== NOT EXECUTED 46af2: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED case OBJECTS_LOCAL: _Thread_Unblock( the_thread ); _Thread_Unnest_dispatch(); break; } } 46af8: 4e5e unlk %fp <== NOT EXECUTED 46afa: 4e75 rts 00046afc <_Thread_Dispatch>: * dispatch thread * no dispatch thread */ void _Thread_Dispatch( void ) { 46afc: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 46b00: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED Thread_Control *executing; Thread_Control *heir; ISR_Level level; executing = _Thread_Executing; _ISR_Disable( level ); 46b04: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED { Thread_Control *executing; Thread_Control *heir; ISR_Level level; executing = _Thread_Executing; 46b0a: 2679 0005 6d62 moveal 56d62 <_Thread_Executing>,%a3 <== NOT EXECUTED _ISR_Disable( level ); 46b10: 2200 movel %d0,%d1 <== NOT EXECUTED 46b12: 40c2 movew %sr,%d2 <== NOT EXECUTED 46b14: 8282 orl %d2,%d1 <== NOT EXECUTED 46b16: 46c1 movew %d1,%sr <== NOT EXECUTED _ISR_Enable( level ); #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS { struct timespec uptime, ran; _TOD_Get_uptime( &uptime ); 46b18: 280e movel %fp,%d4 <== NOT EXECUTED _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); 46b1a: 260e movel %fp,%d3 <== NOT EXECUTED _ISR_Enable( level ); #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS { struct timespec uptime, ran; _TOD_Get_uptime( &uptime ); 46b1c: 5184 subql #8,%d4 <== NOT EXECUTED _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); 46b1e: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED _Timespec_Add_to( &executing->cpu_time_used, &ran ); 46b24: 2e3c 0004 790c movel #293132,%d7 <== NOT EXECUTED if ( _Thread_libc_reent ) { executing->libc_reent = *_Thread_libc_reent; *_Thread_libc_reent = heir->libc_reent; } _User_extensions_Thread_switch( executing, heir ); 46b2a: 2c3c 0004 7b94 movel #293780,%d6 <== NOT EXECUTED if ( executing->fp_context != NULL ) _Context_Save_fp( &executing->fp_context ); #endif #endif _Context_Switch( &executing->Registers, &heir->Registers ); 46b30: 2a3c 0004 7eac movel #294572,%d5 <== NOT EXECUTED #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE ) if ( (executing->fp_context != NULL) && !_Thread_Is_allocated_fp( executing ) ) { if ( _Thread_Allocated_fp != NULL ) _Context_Save_fp( &_Thread_Allocated_fp->fp_context ); _Context_Restore_fp( &executing->fp_context ); 46b36: 4bf9 0004 7ec8 lea 47ec8 <_CPU_Context_restore_fp>,%a5 <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE ) if ( (executing->fp_context != NULL) && !_Thread_Is_allocated_fp( executing ) ) { if ( _Thread_Allocated_fp != NULL ) _Context_Save_fp( &_Thread_Allocated_fp->fp_context ); 46b3c: 49f9 0004 7ec4 lea 47ec4 <_CPU_Context_save_fp>,%a4 <== NOT EXECUTED 46b42: 6000 00d4 braw 46c18 <_Thread_Dispatch+0x11c> <== NOT EXECUTED ISR_Level level; executing = _Thread_Executing; _ISR_Disable( level ); while ( _Context_Switch_necessary == TRUE ) { heir = _Thread_Heir; 46b46: 2479 0005 6d32 moveal 56d32 <_Thread_Heir>,%a2 <== NOT EXECUTED _Thread_Dispatch_disable_level = 1; 46b4c: 7001 moveq #1,%d0 <== NOT EXECUTED 46b4e: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Context_Switch_necessary = FALSE; 46b54: 4201 clrb %d1 <== NOT EXECUTED 46b56: 13c1 0005 6d72 moveb %d1,56d72 <_Context_Switch_necessary> <== NOT EXECUTED _Thread_Executing = heir; 46b5c: 23ca 0005 6d62 movel %a2,56d62 <_Thread_Executing> <== NOT EXECUTED #if __RTEMS_ADA__ executing->rtems_ada_self = rtems_ada_self; rtems_ada_self = heir->rtems_ada_self; #endif if ( heir->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE ) 46b62: b0aa 007c cmpl %a2@(124),%d0 <== NOT EXECUTED 46b66: 660a bnes 46b72 <_Thread_Dispatch+0x76> <== NOT EXECUTED heir->cpu_time_budget = _Thread_Ticks_per_timeslice; 46b68: 41f9 0005 6c54 lea 56c54 <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED 46b6e: 2550 0078 movel %a0@,%a2@(120) <== NOT EXECUTED _ISR_Enable( level ); 46b72: 46c2 movew %d2,%sr <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS { struct timespec uptime, ran; _TOD_Get_uptime( &uptime ); 46b74: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46b76: 4eb9 0004 9bc0 jsr 49bc0 <_TOD_Get_uptime> <== NOT EXECUTED _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); 46b7c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46b7e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46b80: 4879 0005 6d6a pea 56d6a <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 46b86: 4eb9 0004 7944 jsr 47944 <_Timespec_Subtract> <== NOT EXECUTED _Timespec_Add_to( &executing->cpu_time_used, &ran ); 46b8c: 2047 moveal %d7,%a0 <== NOT EXECUTED 46b8e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46b90: 486b 0084 pea %a3@(132) <== NOT EXECUTED 46b94: 4e90 jsr %a0@ <== NOT EXECUTED #endif /* * Switch libc's task specific data. */ if ( _Thread_libc_reent ) { 46b96: 2079 0005 6d2e moveal 56d2e <_Thread_libc_reent>,%a0 <== NOT EXECUTED { struct timespec uptime, ran; _TOD_Get_uptime( &uptime ); _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); _Timespec_Add_to( &executing->cpu_time_used, &ran ); _Thread_Time_of_last_context_switch = uptime; 46b9c: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 46ba0: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 46ba4: 23c0 0005 6d6a movel %d0,56d6a <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 46baa: 23c1 0005 6d6e movel %d1,56d6e <_Thread_Time_of_last_context_switch+0x4> <== NOT EXECUTED #endif /* * Switch libc's task specific data. */ if ( _Thread_libc_reent ) { 46bb0: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 46bb6: 4a88 tstl %a0 <== NOT EXECUTED 46bb8: 6708 beqs 46bc2 <_Thread_Dispatch+0xc6> <== NOT EXECUTED executing->libc_reent = *_Thread_libc_reent; 46bba: 2750 0108 movel %a0@,%a3@(264) <== NOT EXECUTED *_Thread_libc_reent = heir->libc_reent; 46bbe: 20aa 0108 movel %a2@(264),%a0@ <== NOT EXECUTED } _User_extensions_Thread_switch( executing, heir ); 46bc2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46bc4: 2046 moveal %d6,%a0 <== NOT EXECUTED 46bc6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46bc8: 4e90 jsr %a0@ <== NOT EXECUTED if ( executing->fp_context != NULL ) _Context_Save_fp( &executing->fp_context ); #endif #endif _Context_Switch( &executing->Registers, &heir->Registers ); 46bca: 486a 00d0 pea %a2@(208) <== NOT EXECUTED 46bce: 2045 moveal %d5,%a0 <== NOT EXECUTED 46bd0: 486b 00d0 pea %a3@(208) <== NOT EXECUTED 46bd4: 4e90 jsr %a0@ <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE ) if ( (executing->fp_context != NULL) && 46bd6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 46bdc: 4aab 0104 tstl %a3@(260) <== NOT EXECUTED 46be0: 6724 beqs 46c06 <_Thread_Dispatch+0x10a> <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) RTEMS_INLINE_ROUTINE bool _Thread_Is_allocated_fp ( const Thread_Control *the_thread ) { return ( the_thread == _Thread_Allocated_fp ); 46be2: 2079 0005 6d2a moveal 56d2a <_Thread_Allocated_fp>,%a0 <== NOT EXECUTED 46be8: b1cb cmpal %a3,%a0 <== NOT EXECUTED 46bea: 671a beqs 46c06 <_Thread_Dispatch+0x10a> <== NOT EXECUTED !_Thread_Is_allocated_fp( executing ) ) { if ( _Thread_Allocated_fp != NULL ) 46bec: 4a88 tstl %a0 <== NOT EXECUTED 46bee: 6708 beqs 46bf8 <_Thread_Dispatch+0xfc> <== NOT EXECUTED _Context_Save_fp( &_Thread_Allocated_fp->fp_context ); 46bf0: 4868 0104 pea %a0@(260) <== NOT EXECUTED 46bf4: 4e94 jsr %a4@ <== NOT EXECUTED 46bf6: 588f addql #4,%sp <== NOT EXECUTED _Context_Restore_fp( &executing->fp_context ); 46bf8: 486b 0104 pea %a3@(260) <== NOT EXECUTED 46bfc: 4e95 jsr %a5@ <== NOT EXECUTED _Thread_Allocated_fp = executing; 46bfe: 588f addql #4,%sp <== NOT EXECUTED 46c00: 23cb 0005 6d2a movel %a3,56d2a <_Thread_Allocated_fp> <== NOT EXECUTED if ( executing->fp_context != NULL ) _Context_Restore_fp( &executing->fp_context ); #endif #endif executing = _Thread_Executing; 46c06: 2679 0005 6d62 moveal 56d62 <_Thread_Executing>,%a3 <== NOT EXECUTED _ISR_Disable( level ); 46c0c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 46c12: 40c2 movew %sr,%d2 <== NOT EXECUTED 46c14: 8082 orl %d2,%d0 <== NOT EXECUTED 46c16: 46c0 movew %d0,%sr <== NOT EXECUTED Thread_Control *heir; ISR_Level level; executing = _Thread_Executing; _ISR_Disable( level ); while ( _Context_Switch_necessary == TRUE ) { 46c18: 1039 0005 6d72 moveb 56d72 <_Context_Switch_necessary>,%d0 <== NOT EXECUTED 46c1e: 6600 ff26 bnew 46b46 <_Thread_Dispatch+0x4a> <== NOT EXECUTED executing = _Thread_Executing; _ISR_Disable( level ); } _Thread_Dispatch_disable_level = 0; 46c22: 42b9 0005 6ca4 clrl 56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _ISR_Enable( level ); 46c28: 46c2 movew %d2,%sr <== NOT EXECUTED if ( _Thread_Do_post_task_switch_extension || 46c2a: 4ab9 0005 6d4a tstl 56d4a <_Thread_Do_post_task_switch_extension> <== NOT EXECUTED 46c30: 6606 bnes 46c38 <_Thread_Dispatch+0x13c> <== NOT EXECUTED 46c32: 4a2b 0075 tstb %a3@(117) <== NOT EXECUTED 46c36: 670c beqs 46c44 <_Thread_Dispatch+0x148> <== NOT EXECUTED executing->do_post_task_switch_extension ) { executing->do_post_task_switch_extension = false; 46c38: 4200 clrb %d0 <== NOT EXECUTED 46c3a: 1740 0075 moveb %d0,%a3@(117) <== NOT EXECUTED _API_extensions_Run_postswitch(); 46c3e: 4eb9 0004 5754 jsr 45754 <_API_extensions_Run_postswitch> <== NOT EXECUTED } } 46c44: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 46c4a: 4e5e unlk %fp <== NOT EXECUTED 46c4c: 4e75 rts 00046c4e <_Thread_Enable_dispatch>: #if ( (CPU_INLINE_ENABLE_DISPATCH == FALSE) || \ (__RTEMS_DO_NOT_INLINE_THREAD_ENABLE_DISPATCH__ == 1) ) void _Thread_Enable_dispatch( void ) { if ( --_Thread_Dispatch_disable_level ) 46c4e: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46c54: 5380 subql #1,%d0 <== NOT EXECUTED 46c56: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 46c5c: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED */ #if ( (CPU_INLINE_ENABLE_DISPATCH == FALSE) || \ (__RTEMS_DO_NOT_INLINE_THREAD_ENABLE_DISPATCH__ == 1) ) void _Thread_Enable_dispatch( void ) { 46c62: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( --_Thread_Dispatch_disable_level ) 46c66: 4a80 tstl %d0 <== NOT EXECUTED 46c68: 6608 bnes 46c72 <_Thread_Enable_dispatch+0x24> <== NOT EXECUTED return; _Thread_Dispatch(); } 46c6a: 4e5e unlk %fp <== NOT EXECUTED (__RTEMS_DO_NOT_INLINE_THREAD_ENABLE_DISPATCH__ == 1) ) void _Thread_Enable_dispatch( void ) { if ( --_Thread_Dispatch_disable_level ) return; _Thread_Dispatch(); 46c6c: 4ef9 0004 6afc jmp 46afc <_Thread_Dispatch> <== NOT EXECUTED } 46c72: 4e5e unlk %fp <== NOT EXECUTED 46c74: 4e75 rts <== NOT EXECUTED ... 0004aa7c <_Thread_Evaluate_mode>: bool _Thread_Evaluate_mode( void ) { Thread_Control *executing; executing = _Thread_Executing; 4aa7c: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED * * XXX */ bool _Thread_Evaluate_mode( void ) { 4aa82: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Thread_Control *executing; executing = _Thread_Executing; if ( !_States_Is_ready( executing->current_state ) || 4aa86: 4aa8 0010 tstl %a0@(16) <== NOT EXECUTED 4aa8a: 660e bnes 4aa9a <_Thread_Evaluate_mode+0x1e> <== NOT EXECUTED 4aa8c: b1f9 0005 6d32 cmpal 56d32 <_Thread_Heir>,%a0 <== NOT EXECUTED 4aa92: 6710 beqs 4aaa4 <_Thread_Evaluate_mode+0x28> <== NOT EXECUTED 4aa94: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 4aa98: 670a beqs 4aaa4 <_Thread_Evaluate_mode+0x28> <== NOT EXECUTED ( !_Thread_Is_heir( executing ) && executing->is_preemptible ) ) { _Context_Switch_necessary = TRUE; 4aa9a: 7001 moveq #1,%d0 <== NOT EXECUTED 4aa9c: 13c0 0005 6d72 moveb %d0,56d72 <_Context_Switch_necessary> <== NOT EXECUTED 4aaa2: 6002 bras 4aaa6 <_Thread_Evaluate_mode+0x2a> <== NOT EXECUTED return TRUE; 4aaa4: 4200 clrb %d0 <== NOT EXECUTED } return FALSE; } 4aaa6: 4e5e unlk %fp <== NOT EXECUTED 4aaa8: 4e75 rts <== NOT EXECUTED ... 00046c78 <_Thread_Get>: Thread_Control *_Thread_Get ( Objects_Id id, Objects_Locations *location ) { 46c78: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46c7c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46c7e: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 46c82: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46c84: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED uint32_t the_class; Objects_Information **api_information; Objects_Information *information; Thread_Control *tp = (Thread_Control *) 0; if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { 46c88: 6618 bnes 46ca2 <_Thread_Get+0x2a> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 46c8a: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46c90: 5280 addql #1,%d0 <== NOT EXECUTED 46c92: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); *location = OBJECTS_LOCAL; tp = _Thread_Executing; 46c98: 2039 0005 6d62 movel 56d62 <_Thread_Executing>,%d0 <== NOT EXECUTED Objects_Information *information; Thread_Control *tp = (Thread_Control *) 0; if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { _Thread_Disable_dispatch(); *location = OBJECTS_LOCAL; 46c9e: 4291 clrl %a1@ <== NOT EXECUTED 46ca0: 604c bras 46cee <_Thread_Get+0x76> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API( Objects_Id id ) { return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS); 46ca2: 7018 moveq #24,%d0 <== NOT EXECUTED 46ca4: 2202 movel %d2,%d1 <== NOT EXECUTED 46ca6: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 46ca8: 7607 moveq #7,%d3 <== NOT EXECUTED 46caa: c283 andl %d3,%d1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid( uint32_t the_api ) { if ( !the_api || the_api > OBJECTS_APIS_LAST ) 46cac: 2001 movel %d1,%d0 <== NOT EXECUTED 46cae: 5380 subql #1,%d0 <== NOT EXECUTED 46cb0: 163c 0003 moveb #3,%d3 <== NOT EXECUTED 46cb4: b680 cmpl %d0,%d3 <== NOT EXECUTED 46cb6: 6442 bccs 46cfa <_Thread_Get+0x82> <== NOT EXECUTED 46cb8: 600e bras 46cc8 <_Thread_Get+0x50> <== NOT EXECUTED if ( the_class != 1 ) { /* threads are always first class :) */ *location = OBJECTS_ERROR; goto done; } api_information = _Objects_Information_table[ the_api ]; 46cba: 41f9 0005 6c5c lea 56c5c <_Objects_Information_table>,%a0 <== NOT EXECUTED 46cc0: 2070 1c00 moveal %a0@(00000000,%d1:l:4),%a0 <== NOT EXECUTED if ( !api_information ) { 46cc4: 4a88 tstl %a0 <== NOT EXECUTED 46cc6: 6608 bnes 46cd0 <_Thread_Get+0x58> <== NOT EXECUTED *location = OBJECTS_ERROR; 46cc8: 7401 moveq #1,%d2 <== NOT EXECUTED 46cca: 2282 movel %d2,%a1@ <== NOT EXECUTED 46ccc: 4280 clrl %d0 <== NOT EXECUTED 46cce: 601e bras 46cee <_Thread_Get+0x76> <== NOT EXECUTED goto done; } information = api_information[ the_class ]; 46cd0: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED if ( !information ) { 46cd4: 6606 bnes 46cdc <_Thread_Get+0x64> <== NOT EXECUTED *location = OBJECTS_ERROR; 46cd6: 7201 moveq #1,%d1 <== NOT EXECUTED 46cd8: 2281 movel %d1,%a1@ <== NOT EXECUTED 46cda: 6012 bras 46cee <_Thread_Get+0x76> <== NOT EXECUTED goto done; } tp = (Thread_Control *) _Objects_Get( information, id, location ); 46cdc: 2f09 movel %a1,%sp@- <== NOT EXECUTED 46cde: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46ce0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46ce2: 4eb9 0004 646c jsr 4646c <_Objects_Get> <== NOT EXECUTED 46ce8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED done: return tp; } 46cee: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46cf2: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 46cf6: 4e5e unlk %fp <== NOT EXECUTED 46cf8: 4e75 rts <== NOT EXECUTED *location = OBJECTS_ERROR; goto done; } the_class = _Objects_Get_class( id ); if ( the_class != 1 ) { /* threads are always first class :) */ 46cfa: 761b moveq #27,%d3 <== NOT EXECUTED 46cfc: 2002 movel %d2,%d0 <== NOT EXECUTED 46cfe: e6a8 lsrl %d3,%d0 <== NOT EXECUTED 46d00: 163c 0001 moveb #1,%d3 <== NOT EXECUTED 46d04: b680 cmpl %d0,%d3 <== NOT EXECUTED 46d06: 67b2 beqs 46cba <_Thread_Get+0x42> <== NOT EXECUTED 46d08: 60be bras 46cc8 <_Thread_Get+0x50> <== NOT EXECUTED ... 0004aaac <_Thread_Handler>: * * Output parameters: NONE */ void _Thread_Handler( void ) { 4aaac: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4aab0: 2f0a movel %a2,%sp@- <== NOT EXECUTED #if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__) static char doneConstructors; char doneCons; #endif executing = _Thread_Executing; 4aab2: 2479 0005 6d62 moveal 56d62 <_Thread_Executing>,%a2 <== NOT EXECUTED * * Output parameters: NONE */ void _Thread_Handler( void ) { 4aab8: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * have to put level into a register for those cpu's that use * inline asm here */ level = executing->Start.isr_level; 4aaba: 222a 00b6 movel %a2@(182),%d1 <== NOT EXECUTED _ISR_Set_level(level); 4aabe: 40c0 movew %sr,%d0 <== NOT EXECUTED 4aac0: e189 lsll #8,%d1 <== NOT EXECUTED 4aac2: 0280 0000 f8ff andil #63743,%d0 <== NOT EXECUTED 4aac8: 8081 orl %d1,%d0 <== NOT EXECUTED 4aaca: 46c0 movew %d0,%sr <== NOT EXECUTED #if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__) doneCons = doneConstructors; 4aacc: 1439 0005 6494 moveb 56494 ,%d2 <== NOT EXECUTED doneConstructors = 1; 4aad2: 7001 moveq #1,%d0 <== NOT EXECUTED 4aad4: 13c0 0005 6494 moveb %d0,56494 <== NOT EXECUTED #endif #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE ) if ( (executing->fp_context != NULL) && !_Thread_Is_allocated_fp( executing ) ) { 4aada: 4aaa 0104 tstl %a2@(260) <== NOT EXECUTED 4aade: 6720 beqs 4ab00 <_Thread_Handler+0x54> <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) RTEMS_INLINE_ROUTINE bool _Thread_Is_allocated_fp ( const Thread_Control *the_thread ) { return ( the_thread == _Thread_Allocated_fp ); 4aae0: 2079 0005 6d2a moveal 56d2a <_Thread_Allocated_fp>,%a0 <== NOT EXECUTED 4aae6: b1ca cmpal %a2,%a0 <== NOT EXECUTED 4aae8: 6716 beqs 4ab00 <_Thread_Handler+0x54> <== NOT EXECUTED if ( _Thread_Allocated_fp != NULL ) 4aaea: 4a88 tstl %a0 <== NOT EXECUTED 4aaec: 670c beqs 4aafa <_Thread_Handler+0x4e> <== NOT EXECUTED _Context_Save_fp( &_Thread_Allocated_fp->fp_context ); 4aaee: 4868 0104 pea %a0@(260) <== NOT EXECUTED 4aaf2: 4eb9 0004 7ec4 jsr 47ec4 <_CPU_Context_save_fp> <== NOT EXECUTED 4aaf8: 588f addql #4,%sp <== NOT EXECUTED _Thread_Allocated_fp = executing; 4aafa: 23ca 0005 6d2a movel %a2,56d2a <_Thread_Allocated_fp> <== NOT EXECUTED * Take care that 'begin' extensions get to complete before * 'switch' extensions can run. This means must keep dispatch * disabled until all 'begin' extensions complete. */ _User_extensions_Thread_begin( executing ); 4ab00: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ab02: 4eb9 0004 7a3c jsr 47a3c <_User_extensions_Thread_begin> <== NOT EXECUTED /* * At this point, the dispatch disable level BETTER be 1. */ _Thread_Enable_dispatch(); 4ab08: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED /* * _init could be a weak symbol and we SHOULD test it but it isn't * in any configuration I know of and it generates a warning on every * RTEMS target configuration. --joel (12 May 2007) */ if (!doneCons) /* && (volatile void *)_init) */ 4ab0e: 588f addql #4,%sp <== NOT EXECUTED 4ab10: 4a02 tstb %d2 <== NOT EXECUTED 4ab12: 6606 bnes 4ab1a <_Thread_Handler+0x6e> <== NOT EXECUTED { _init (); 4ab14: 4eb9 0005 393c jsr 5393c <_init> <== NOT EXECUTED #if defined(__USE__MAIN__) if (!doneCons && _main) __main (); #endif switch ( executing->Start.prototype ) { 4ab1a: 202a 00a0 movel %a2@(160),%d0 <== NOT EXECUTED 4ab1e: 7201 moveq #1,%d1 <== NOT EXECUTED 4ab20: b280 cmpl %d0,%d1 <== NOT EXECUTED 4ab22: 671a beqs 4ab3e <_Thread_Handler+0x92> <== NOT EXECUTED 4ab24: 6212 bhis 4ab38 <_Thread_Handler+0x8c> <== NOT EXECUTED 4ab26: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 4ab2a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4ab2c: 6722 beqs 4ab50 <_Thread_Handler+0xa4> <== NOT EXECUTED 4ab2e: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 4ab32: b280 cmpl %d0,%d1 <== NOT EXECUTED 4ab34: 6644 bnes 4ab7a <_Thread_Handler+0xce> <== NOT EXECUTED 4ab36: 602e bras 4ab66 <_Thread_Handler+0xba> <== NOT EXECUTED case THREAD_START_NUMERIC: executing->Wait.return_argument = 4ab38: 2f2a 00a8 movel %a2@(168),%sp@- <== NOT EXECUTED 4ab3c: 6004 bras 4ab42 <_Thread_Handler+0x96> <== NOT EXECUTED (*(Thread_Entry_numeric) executing->Start.entry_point)( executing->Start.numeric_argument ); break; case THREAD_START_POINTER: executing->Wait.return_argument = 4ab3e: 2f2a 00a4 movel %a2@(164),%sp@- <== NOT EXECUTED 4ab42: 206a 009c moveal %a2@(156),%a0 <== NOT EXECUTED 4ab46: 4e90 jsr %a0@ <== NOT EXECUTED 4ab48: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 4ab4c: 588f addql #4,%sp <== NOT EXECUTED 4ab4e: 602a bras 4ab7a <_Thread_Handler+0xce> <== NOT EXECUTED (*(Thread_Entry_pointer) executing->Start.entry_point)( executing->Start.pointer_argument ); break; case THREAD_START_BOTH_POINTER_FIRST: executing->Wait.return_argument = 4ab50: 2f2a 00a8 movel %a2@(168),%sp@- <== NOT EXECUTED 4ab54: 2f2a 00a4 movel %a2@(164),%sp@- <== NOT EXECUTED 4ab58: 206a 009c moveal %a2@(156),%a0 <== NOT EXECUTED 4ab5c: 4e90 jsr %a0@ <== NOT EXECUTED 4ab5e: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 4ab62: 508f addql #8,%sp <== NOT EXECUTED 4ab64: 6014 bras 4ab7a <_Thread_Handler+0xce> <== NOT EXECUTED executing->Start.pointer_argument, executing->Start.numeric_argument ); break; case THREAD_START_BOTH_NUMERIC_FIRST: executing->Wait.return_argument = 4ab66: 2f2a 00a4 movel %a2@(164),%sp@- <== NOT EXECUTED 4ab6a: 2f2a 00a8 movel %a2@(168),%sp@- <== NOT EXECUTED 4ab6e: 206a 009c moveal %a2@(156),%a0 <== NOT EXECUTED 4ab72: 4e90 jsr %a0@ <== NOT EXECUTED 4ab74: 508f addql #8,%sp <== NOT EXECUTED 4ab76: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED * was placed in return_argument. This assumed that if it returned * anything (which is not supporting in all APIs), then it would be * able to fit in a (void *). */ _User_extensions_Thread_exitted( executing ); 4ab7a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ab7c: 4eb9 0004 7a6c jsr 47a6c <_User_extensions_Thread_exitted> <== NOT EXECUTED _Internal_error_Occurred( 4ab82: 4878 0006 pea 6 <== NOT EXECUTED 4ab86: 4878 0001 pea 1 <== NOT EXECUTED 4ab8a: 42a7 clrl %sp@- <== NOT EXECUTED 4ab8c: 4eb9 0004 5f40 jsr 45f40 <_Internal_error_Occurred> <== NOT EXECUTED ... 00046e90 <_Thread_Handler_initialization>: /* * BOTH stacks hooks must be set or both must be NULL. * Do not allow mixture. */ if ( !( (!_Configuration_Table->stack_allocate_hook) 46e90: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED 46e96: 4aa8 0024 tstl %a0@(36) <== NOT EXECUTED 46e9a: 57c1 seq %d1 <== NOT EXECUTED 46e9c: 4aa8 0020 tstl %a0@(32) <== NOT EXECUTED 46ea0: 57c0 seq %d0 <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) , uint32_t maximum_proxies #endif ) { 46ea2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * BOTH stacks hooks must be set or both must be NULL. * Do not allow mixture. */ if ( !( (!_Configuration_Table->stack_allocate_hook) 46ea6: 4480 negl %d0 <== NOT EXECUTED 46ea8: 4481 negl %d1 <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) , uint32_t maximum_proxies #endif ) { 46eaa: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * BOTH stacks hooks must be set or both must be NULL. * Do not allow mixture. */ if ( !( (!_Configuration_Table->stack_allocate_hook) 46eac: b380 eorl %d1,%d0 <== NOT EXECUTED 46eae: 4a00 tstb %d0 <== NOT EXECUTED 46eb0: 6710 beqs 46ec2 <_Thread_Handler_initialization+0x32> <== NOT EXECUTED == (!_Configuration_Table->stack_free_hook) ) ) _Internal_error_Occurred( 46eb2: 4878 000f pea f <== NOT EXECUTED 46eb6: 4878 0001 pea 1 <== NOT EXECUTED 46eba: 42a7 clrl %sp@- <== NOT EXECUTED 46ebc: 4eb9 0004 5f40 jsr 45f40 <_Internal_error_Occurred> <== NOT EXECUTED _Thread_Maximum_extensions = maximum_extensions; _Thread_Ticks_per_timeslice = ticks_per_timeslice; _Thread_Ready_chain = (Chain_Control *) _Workspace_Allocate_or_fatal_error( 46ec2: 4280 clrl %d0 <== NOT EXECUTED 46ec4: 1039 0005 5192 moveb 55192 ,%d0 <== NOT EXECUTED 46eca: 5280 addql #1,%d0 <== NOT EXECUTED 46ecc: 2200 movel %d0,%d1 <== NOT EXECUTED 46ece: e588 lsll #2,%d0 <== NOT EXECUTED 46ed0: e989 lsll #4,%d1 <== NOT EXECUTED 46ed2: 9280 subl %d0,%d1 <== NOT EXECUTED 46ed4: 2f01 movel %d1,%sp@- <== NOT EXECUTED _Thread_Allocated_fp = NULL; #endif _Thread_Do_post_task_switch_extension = 0; _Thread_Maximum_extensions = maximum_extensions; 46ed6: 41ee 000c lea %fp@(12),%a0 <== NOT EXECUTED 46eda: 23d0 0005 6d46 movel %a0@,56d46 <_Thread_Maximum_extensions> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_BAD_STACK_HOOK ); _Context_Switch_necessary = FALSE; 46ee0: 4200 clrb %d0 <== NOT EXECUTED _Thread_Do_post_task_switch_extension = 0; _Thread_Maximum_extensions = maximum_extensions; _Thread_Ticks_per_timeslice = ticks_per_timeslice; 46ee2: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED 46ee6: 23d0 0005 6c54 movel %a0@,56c54 <_Thread_Ticks_per_timeslice> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_BAD_STACK_HOOK ); _Context_Switch_necessary = FALSE; 46eec: 13c0 0005 6d72 moveb %d0,56d72 <_Context_Switch_necessary> <== NOT EXECUTED _Thread_Executing = NULL; 46ef2: 42b9 0005 6d62 clrl 56d62 <_Thread_Executing> <== NOT EXECUTED _Thread_Ready_chain = (Chain_Control *) _Workspace_Allocate_or_fatal_error( (PRIORITY_MAXIMUM + 1) * sizeof(Chain_Control) ); for ( index=0; index <= PRIORITY_MAXIMUM ; index++ ) 46ef8: 4282 clrl %d2 <== NOT EXECUTED INTERNAL_ERROR_BAD_STACK_HOOK ); _Context_Switch_necessary = FALSE; _Thread_Executing = NULL; _Thread_Heir = NULL; 46efa: 42b9 0005 6d32 clrl 56d32 <_Thread_Heir> <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) _Thread_Allocated_fp = NULL; 46f00: 42b9 0005 6d2a clrl 56d2a <_Thread_Allocated_fp> <== NOT EXECUTED #endif _Thread_Do_post_task_switch_extension = 0; 46f06: 42b9 0005 6d4a clrl 56d4a <_Thread_Do_post_task_switch_extension> <== NOT EXECUTED _Thread_Maximum_extensions = maximum_extensions; _Thread_Ticks_per_timeslice = ticks_per_timeslice; _Thread_Ready_chain = (Chain_Control *) _Workspace_Allocate_or_fatal_error( 46f0c: 4eb9 0004 7e08 jsr 47e08 <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED (PRIORITY_MAXIMUM + 1) * sizeof(Chain_Control) ); for ( index=0; index <= PRIORITY_MAXIMUM ; index++ ) 46f12: 1439 0005 5192 moveb 55192 ,%d2 <== NOT EXECUTED 46f18: 2040 moveal %d0,%a0 <== NOT EXECUTED 46f1a: 588f addql #4,%sp <== NOT EXECUTED 46f1c: 4281 clrl %d1 <== NOT EXECUTED _Thread_Maximum_extensions = maximum_extensions; _Thread_Ticks_per_timeslice = ticks_per_timeslice; _Thread_Ready_chain = (Chain_Control *) _Workspace_Allocate_or_fatal_error( 46f1e: 23c0 0005 6c50 movel %d0,56c50 <_Thread_Ready_chain> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 46f24: 2008 movel %a0,%d0 <== NOT EXECUTED 46f26: 5880 addql #4,%d0 <== NOT EXECUTED 46f28: 2080 movel %d0,%a0@ <== NOT EXECUTED (PRIORITY_MAXIMUM + 1) * sizeof(Chain_Control) ); for ( index=0; index <= PRIORITY_MAXIMUM ; index++ ) 46f2a: 5281 addql #1,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; 46f2c: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 46f30: 2148 0008 movel %a0,%a0@(8) <== NOT EXECUTED 46f34: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 46f3a: b481 cmpl %d1,%d2 <== NOT EXECUTED 46f3c: 64e6 bccs 46f24 <_Thread_Handler_initialization+0x94> <== NOT EXECUTED /* * Initialize this class of objects. */ _Objects_Initialize_information( 46f3e: 4878 0008 pea 8 <== NOT EXECUTED 46f42: 4878 0001 pea 1 <== NOT EXECUTED 46f46: 4878 0120 pea 120 <== NOT EXECUTED 46f4a: 4878 0001 pea 1 <== NOT EXECUTED 46f4e: 4878 0001 pea 1 <== NOT EXECUTED 46f52: 4878 0001 pea 1 <== NOT EXECUTED 46f56: 4879 0005 6df6 pea 56df6 <_Thread_Internal_information> <== NOT EXECUTED 46f5c: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 46f62: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED /* * Initialize this class of objects. */ _Objects_Initialize_information( 46f66: dffc 0000 001c addal #28,%sp <== NOT EXECUTED FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 46f6c: 4e5e unlk %fp <== NOT EXECUTED 46f6e: 4e75 rts 00046d0c <_Thread_Initialize>: Thread_CPU_budget_algorithms budget_algorithm, Thread_CPU_budget_algorithm_callout budget_callout, uint32_t isr_level, Objects_Name name ) { 46d0c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 46d10: 48d7 047c moveml %d2-%d6/%a2,%sp@ <== NOT EXECUTED 46d14: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 46d18: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 46d1c: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED 46d20: 282e 001c movel %fp@(28),%d4 <== NOT EXECUTED 46d24: 2c2e 0024 movel %fp@(36),%d6 <== NOT EXECUTED 46d28: 162e 001b moveb %fp@(27),%d3 <== NOT EXECUTED 46d2c: 1a2e 0023 moveb %fp@(35),%d5 <== NOT EXECUTED /* * Allocate and Initialize the stack for this thread. */ if ( !stack_area ) { 46d30: 4a81 tstl %d1 <== NOT EXECUTED 46d32: 6620 bnes 46d54 <_Thread_Initialize+0x48> <== NOT EXECUTED actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size ); 46d34: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46d36: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46d38: 4eb9 0004 75fc jsr 475fc <_Thread_Stack_Allocate> <== NOT EXECUTED if ( !actual_stack_size || actual_stack_size < stack_size ) 46d3e: 508f addql #8,%sp <== NOT EXECUTED 46d40: 4a80 tstl %d0 <== NOT EXECUTED 46d42: 6700 013e beqw 46e82 <_Thread_Initialize+0x176> <== NOT EXECUTED 46d46: b480 cmpl %d0,%d2 <== NOT EXECUTED 46d48: 6200 0138 bhiw 46e82 <_Thread_Initialize+0x176> <== NOT EXECUTED return FALSE; /* stack allocation failed */ stack = the_thread->Start.stack; 46d4c: 222a 00cc movel %a2@(204),%d1 <== NOT EXECUTED the_thread->Start.core_allocated_stack = TRUE; 46d50: 7401 moveq #1,%d2 <== NOT EXECUTED 46d52: 6004 bras 46d58 <_Thread_Initialize+0x4c> <== NOT EXECUTED } else { stack = stack_area; actual_stack_size = stack_size; the_thread->Start.core_allocated_stack = FALSE; 46d54: 2002 movel %d2,%d0 <== NOT EXECUTED 46d56: 4202 clrb %d2 <== NOT EXECUTED 46d58: 1542 00be moveb %d2,%a2@(190) <== NOT EXECUTED Stack_Control *the_stack, void *starting_address, size_t size ) { the_stack->area = starting_address; 46d5c: 2541 00c4 movel %d1,%a2@(196) <== NOT EXECUTED the_stack->size = size; 46d60: 2540 00c0 movel %d0,%a2@(192) <== NOT EXECUTED /* * Allocate the floating point area for this thread */ #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) if ( is_fp ) { 46d64: 4a03 tstb %d3 <== NOT EXECUTED 46d66: 6714 beqs 46d7c <_Thread_Initialize+0x70> <== NOT EXECUTED fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE ); 46d68: 4878 001c pea 1c <== NOT EXECUTED 46d6c: 4eb9 0004 7df0 jsr 47df0 <_Workspace_Allocate> <== NOT EXECUTED if ( !fp_area ) { 46d72: 588f addql #4,%sp <== NOT EXECUTED */ #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) if ( is_fp ) { fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE ); 46d74: 2400 movel %d0,%d2 <== NOT EXECUTED if ( !fp_area ) { 46d76: 6606 bnes 46d7e <_Thread_Initialize+0x72> <== NOT EXECUTED 46d78: 6000 00fe braw 46e78 <_Thread_Initialize+0x16c> <== NOT EXECUTED _Thread_Stack_Free( the_thread ); return FALSE; 46d7c: 4282 clrl %d2 <== NOT EXECUTED /* * Allocate the extensions area for this thread */ if ( _Thread_Maximum_extensions ) { 46d7e: 2039 0005 6d46 movel 56d46 <_Thread_Maximum_extensions>,%d0 <== NOT EXECUTED fp_area = _Context_Fp_start( fp_area, 0 ); } else fp_area = NULL; the_thread->fp_context = fp_area; 46d84: 2542 0104 movel %d2,%a2@(260) <== NOT EXECUTED the_thread->Start.fp_context = fp_area; 46d88: 2542 00c8 movel %d2,%a2@(200) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 46d8c: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_watchdog->routine = routine; 46d90: 42aa 0064 clrl %a2@(100) <== NOT EXECUTED the_watchdog->id = id; 46d94: 42aa 0068 clrl %a2@(104) <== NOT EXECUTED the_watchdog->user_data = user_data; 46d98: 42aa 006c clrl %a2@(108) <== NOT EXECUTED /* * Clear the libc reent hook. */ the_thread->libc_reent = NULL; 46d9c: 42aa 0108 clrl %a2@(264) <== NOT EXECUTED /* * Allocate the extensions area for this thread */ if ( _Thread_Maximum_extensions ) { 46da0: 4a80 tstl %d0 <== NOT EXECUTED 46da2: 6718 beqs 46dbc <_Thread_Initialize+0xb0> <== NOT EXECUTED extensions_area = _Workspace_Allocate( 46da4: e588 lsll #2,%d0 <== NOT EXECUTED 46da6: 2040 moveal %d0,%a0 <== NOT EXECUTED 46da8: 4868 0004 pea %a0@(4) <== NOT EXECUTED 46dac: 4eb9 0004 7df0 jsr 47df0 <_Workspace_Allocate> <== NOT EXECUTED (_Thread_Maximum_extensions + 1) * sizeof( void * ) ); if ( !extensions_area ) { 46db2: 588f addql #4,%sp <== NOT EXECUTED /* * Allocate the extensions area for this thread */ if ( _Thread_Maximum_extensions ) { extensions_area = _Workspace_Allocate( 46db4: 2600 movel %d0,%d3 <== NOT EXECUTED (_Thread_Maximum_extensions + 1) * sizeof( void * ) ); if ( !extensions_area ) { 46db6: 6606 bnes 46dbe <_Thread_Initialize+0xb2> <== NOT EXECUTED 46db8: 6000 00b0 braw 46e6a <_Thread_Initialize+0x15e> <== NOT EXECUTED (void) _Workspace_Free( fp_area ); #endif _Thread_Stack_Free( the_thread ); return FALSE; 46dbc: 4283 clrl %d3 <== NOT EXECUTED } } else extensions_area = NULL; the_thread->extensions = (void **) extensions_area; 46dbe: 2543 0118 movel %d3,%a2@(280) <== NOT EXECUTED * create the extension long after tasks have been created * so they cannot rely on the thread create user extension * call. */ if ( the_thread->extensions ) { 46dc2: 671a beqs 46dde <_Thread_Initialize+0xd2> <== NOT EXECUTED 46dc4: 4281 clrl %d1 <== NOT EXECUTED 46dc6: 600a bras 46dd2 <_Thread_Initialize+0xc6> <== NOT EXECUTED uint32_t i; for ( i = 0; i < (_Thread_Maximum_extensions + 1); i++ ) the_thread->extensions[i] = NULL; 46dc8: 206a 0118 moveal %a2@(280),%a0 <== NOT EXECUTED 46dcc: 42b0 1c00 clrl %a0@(00000000,%d1:l:4) <== NOT EXECUTED * call. */ if ( the_thread->extensions ) { uint32_t i; for ( i = 0; i < (_Thread_Maximum_extensions + 1); i++ ) 46dd0: 5281 addql #1,%d1 <== NOT EXECUTED 46dd2: 2039 0005 6d46 movel 56d46 <_Thread_Maximum_extensions>,%d0 <== NOT EXECUTED 46dd8: 5280 addql #1,%d0 <== NOT EXECUTED 46dda: b081 cmpl %d1,%d0 <== NOT EXECUTED 46ddc: 62ea bhis 46dc8 <_Thread_Initialize+0xbc> <== NOT EXECUTED /* * General initialization */ the_thread->Start.is_preemptible = is_preemptible; 46dde: 1545 00ac moveb %d5,%a2@(172) <== NOT EXECUTED the_thread->Start.budget_algorithm = budget_algorithm; 46de2: 2546 00ae movel %d6,%a2@(174) <== NOT EXECUTED the_thread->Start.budget_callout = budget_callout; switch ( budget_algorithm ) { 46de6: 7002 moveq #2,%d0 <== NOT EXECUTED * General initialization */ the_thread->Start.is_preemptible = is_preemptible; the_thread->Start.budget_algorithm = budget_algorithm; the_thread->Start.budget_callout = budget_callout; 46de8: 256e 0028 00b2 movel %fp@(40),%a2@(178) <== NOT EXECUTED switch ( budget_algorithm ) { 46dee: b086 cmpl %d6,%d0 <== NOT EXECUTED 46df0: 660a bnes 46dfc <_Thread_Initialize+0xf0> <== NOT EXECUTED case THREAD_CPU_BUDGET_ALGORITHM_NONE: case THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE: break; case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE: the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice; 46df2: 41f9 0005 6c54 lea 56c54 <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED 46df8: 2550 0078 movel %a0@,%a2@(120) <== NOT EXECUTED the_thread->Wait.queue = NULL; the_thread->resource_count = 0; the_thread->suspend_count = 0; the_thread->real_priority = priority; the_thread->Start.initial_priority = priority; _Thread_Set_priority( the_thread, priority ); 46dfc: 2f04 movel %d4,%sp@- <== NOT EXECUTED break; } the_thread->Start.isr_level = isr_level; the_thread->current_state = STATES_DORMANT; 46dfe: 7001 moveq #1,%d0 <== NOT EXECUTED break; case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT: break; } the_thread->Start.isr_level = isr_level; 46e00: 256e 002c 00b6 movel %fp@(44),%a2@(182) <== NOT EXECUTED the_thread->current_state = STATES_DORMANT; 46e06: 2540 0010 movel %d0,%a2@(16) <== NOT EXECUTED the_thread->Wait.queue = NULL; the_thread->resource_count = 0; the_thread->suspend_count = 0; the_thread->real_priority = priority; the_thread->Start.initial_priority = priority; _Thread_Set_priority( the_thread, priority ); 46e0a: 2f0a movel %a2,%sp@- <== NOT EXECUTED } the_thread->Start.isr_level = isr_level; the_thread->current_state = STATES_DORMANT; the_thread->Wait.queue = NULL; 46e0c: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED the_thread->resource_count = 0; 46e10: 42aa 001c clrl %a2@(28) <== NOT EXECUTED the_thread->suspend_count = 0; 46e14: 42aa 0070 clrl %a2@(112) <== NOT EXECUTED the_thread->real_priority = priority; 46e18: 2544 0018 movel %d4,%a2@(24) <== NOT EXECUTED the_thread->Start.initial_priority = priority; 46e1c: 2544 00ba movel %d4,%a2@(186) <== NOT EXECUTED _Thread_Set_priority( the_thread, priority ); 46e20: 4eb9 0004 7424 jsr 47424 <_Thread_Set_priority> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 46e26: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 46e2a: 256e 0030 000c movel %fp@(48),%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 46e30: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 46e34: 4280 clrl %d0 <== NOT EXECUTED 46e36: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 46e3a: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED /* * Initialize the CPU usage statistics */ #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS the_thread->cpu_time_used.tv_sec = 0; 46e3e: 42aa 0084 clrl %a2@(132) <== NOT EXECUTED the_thread->cpu_time_used.tv_nsec = 0; 46e42: 42aa 0088 clrl %a2@(136) <== NOT EXECUTED * enabled when we get here. We want to be able to run the * user extensions with dispatching enabled. The Allocator * Mutex provides sufficient protection to let the user extensions * run safely. */ extension_status = _User_extensions_Thread_create( the_thread ); 46e46: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46e48: 4eb9 0004 7ae8 jsr 47ae8 <_User_extensions_Thread_create> <== NOT EXECUTED if ( !extension_status ) { 46e4e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46e54: 4a00 tstb %d0 <== NOT EXECUTED 46e56: 6704 beqs 46e5c <_Thread_Initialize+0x150> <== NOT EXECUTED 46e58: 7001 moveq #1,%d0 <== NOT EXECUTED 46e5a: 6028 bras 46e84 <_Thread_Initialize+0x178> <== NOT EXECUTED if ( extensions_area ) 46e5c: 4a83 tstl %d3 <== NOT EXECUTED 46e5e: 670a beqs 46e6a <_Thread_Initialize+0x15e> <== NOT EXECUTED (void) _Workspace_Free( extensions_area ); 46e60: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46e62: 4eb9 0004 7dd8 jsr 47dd8 <_Workspace_Free> <== NOT EXECUTED 46e68: 588f addql #4,%sp <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) if ( fp_area ) 46e6a: 4a82 tstl %d2 <== NOT EXECUTED 46e6c: 670a beqs 46e78 <_Thread_Initialize+0x16c> <== NOT EXECUTED (void) _Workspace_Free( fp_area ); 46e6e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46e70: 4eb9 0004 7dd8 jsr 47dd8 <_Workspace_Free> <== NOT EXECUTED 46e76: 588f addql #4,%sp <== NOT EXECUTED #endif _Thread_Stack_Free( the_thread ); 46e78: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46e7a: 4eb9 0004 7648 jsr 47648 <_Thread_Stack_Free> <== NOT EXECUTED 46e80: 588f addql #4,%sp <== NOT EXECUTED return FALSE; 46e82: 4200 clrb %d0 <== NOT EXECUTED } return TRUE; } 46e84: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 46e8a: 4e5e unlk %fp <== NOT EXECUTED 46e8c: 4e75 rts <== NOT EXECUTED ... 00049ed4 <_Thread_Load_environment>: */ void _Thread_Load_environment( Thread_Control *the_thread ) { 49ed4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49ed8: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED bool is_fp; #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) if ( the_thread->Start.fp_context ) { 49edc: 2069 00c8 moveal %a1@(200),%a0 <== NOT EXECUTED 49ee0: 4a88 tstl %a0 <== NOT EXECUTED 49ee2: 6734 beqs 49f18 <_Thread_Load_environment+0x44> <== NOT EXECUTED the_thread->fp_context = the_thread->Start.fp_context; 49ee4: 2348 0104 movel %a0,%a1@(260) <== NOT EXECUTED _Context_Initialize_fp( &the_thread->fp_context ); 49ee8: 4281 clrl %d1 <== NOT EXECUTED 49eea: 4280 clrl %d0 <== NOT EXECUTED 49eec: 2141 0018 movel %d1,%a0@(24) <== NOT EXECUTED 49ef0: 4241 clrw %d1 <== NOT EXECUTED 49ef2: 2140 0014 movel %d0,%a0@(20) <== NOT EXECUTED 49ef6: 3141 0002 movew %d1,%a0@(2) <== NOT EXECUTED 49efa: 3141 0004 movew %d1,%a0@(4) <== NOT EXECUTED 49efe: 3141 0006 movew %d1,%a0@(6) <== NOT EXECUTED 49f02: 3141 0008 movew %d1,%a0@(8) <== NOT EXECUTED 49f06: 3141 000a movew %d1,%a0@(10) <== NOT EXECUTED 49f0a: 4280 clrl %d0 <== NOT EXECUTED 49f0c: 4281 clrl %d1 <== NOT EXECUTED 49f0e: 4250 clrw %a0@ <== NOT EXECUTED 49f10: 2140 000c movel %d0,%a0@(12) <== NOT EXECUTED 49f14: 2141 0010 movel %d1,%a0@(16) <== NOT EXECUTED the_thread->do_post_task_switch_extension = false; the_thread->is_preemptible = the_thread->Start.is_preemptible; the_thread->budget_algorithm = the_thread->Start.budget_algorithm; the_thread->budget_callout = the_thread->Start.budget_callout; _Context_Initialize( 49f18: 2069 00c0 moveal %a1@(192),%a0 <== NOT EXECUTED 49f1c: 5988 subql #4,%a0 <== NOT EXECUTED 49f1e: d1e9 00c4 addal %a1@(196),%a0 <== NOT EXECUTED 49f22: 2029 00b6 movel %a1@(182),%d0 <== NOT EXECUTED 49f26: 2348 0100 movel %a0,%a1@(256) <== NOT EXECUTED 49f2a: e188 lsll #8,%d0 <== NOT EXECUTED 49f2c: 0080 0000 3000 oril #12288,%d0 <== NOT EXECUTED } else #endif is_fp = false; the_thread->do_post_task_switch_extension = false; 49f32: 4201 clrb %d1 <== NOT EXECUTED the_thread->is_preemptible = the_thread->Start.is_preemptible; the_thread->budget_algorithm = the_thread->Start.budget_algorithm; 49f34: 2369 00ae 007c movel %a1@(174),%a1@(124) <== NOT EXECUTED the_thread->Start.isr_level, _Thread_Handler, is_fp ); } 49f3a: 4e5e unlk %fp <== NOT EXECUTED the_thread->do_post_task_switch_extension = false; the_thread->is_preemptible = the_thread->Start.is_preemptible; the_thread->budget_algorithm = the_thread->Start.budget_algorithm; the_thread->budget_callout = the_thread->Start.budget_callout; 49f3c: 2369 00b2 0080 movel %a1@(178),%a1@(128) <== NOT EXECUTED } else #endif is_fp = false; the_thread->do_post_task_switch_extension = false; 49f42: 1341 0075 moveb %d1,%a1@(117) <== NOT EXECUTED the_thread->is_preemptible = the_thread->Start.is_preemptible; 49f46: 1369 00ac 0076 moveb %a1@(172),%a1@(118) <== NOT EXECUTED the_thread->budget_algorithm = the_thread->Start.budget_algorithm; the_thread->budget_callout = the_thread->Start.budget_callout; _Context_Initialize( 49f4c: 2340 00d0 movel %d0,%a1@(208) <== NOT EXECUTED 49f50: 20bc 0004 aaac movel #305836,%a0@ <== NOT EXECUTED the_thread->Start.isr_level, _Thread_Handler, is_fp ); } 49f56: 4e75 rts 0004a180 <_Thread_Ready>: */ void _Thread_Ready( Thread_Control *the_thread ) { 4a180: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4a184: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED ISR_Level level; Thread_Control *heir; _ISR_Disable( level ); 4a188: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED */ void _Thread_Ready( Thread_Control *the_thread ) { 4a18e: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED ISR_Level level; Thread_Control *heir; _ISR_Disable( level ); 4a192: 2002 movel %d2,%d0 <== NOT EXECUTED 4a194: 40c3 movew %sr,%d3 <== NOT EXECUTED 4a196: 8083 orl %d3,%d0 <== NOT EXECUTED 4a198: 46c0 movew %d0,%sr <== NOT EXECUTED the_thread->current_state = STATES_READY; _Priority_Add_to_bit_map( &the_thread->Priority_map ); _Chain_Append_unprotected( the_thread->ready, &the_thread->Object.Node ); 4a19a: 2268 008c moveal %a0@(140),%a1 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4a19e: 2009 movel %a1,%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Priority_Add_to_bit_map ( Priority_Information *the_priority_map ) { *the_priority_map->minor |= the_priority_map->ready_minor; 4a1a0: 2468 0090 moveal %a0@(144),%a2 <== NOT EXECUTED 4a1a4: 5880 addql #4,%d0 <== NOT EXECUTED 4a1a6: 2080 movel %d0,%a0@ <== NOT EXECUTED old_last_node = the_chain->last; 4a1a8: 2669 0008 moveal %a1@(8),%a3 <== NOT EXECUTED 4a1ac: 3228 0096 movew %a0@(150),%d1 <== NOT EXECUTED 4a1b0: 3012 movew %a2@,%d0 <== NOT EXECUTED 4a1b2: 8081 orl %d1,%d0 <== NOT EXECUTED 4a1b4: 3480 movew %d0,%a2@ <== NOT EXECUTED the_chain->last = the_node; 4a1b6: 2348 0008 movel %a0,%a1@(8) <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 4a1ba: 3239 0005 6d58 movew 56d58 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 4a1c0: 3028 0094 movew %a0@(148),%d0 <== NOT EXECUTED 4a1c4: 8081 orl %d1,%d0 <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4a1c6: 214b 0004 movel %a3,%a0@(4) <== NOT EXECUTED 4a1ca: 33c0 0005 6d58 movew %d0,56d58 <_Priority_Major_bit_map> <== NOT EXECUTED ISR_Level level; Thread_Control *heir; _ISR_Disable( level ); the_thread->current_state = STATES_READY; 4a1d0: 42a8 0010 clrl %a0@(16) <== NOT EXECUTED Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; the_chain->last = the_node; old_last_node->next = the_node; 4a1d4: 2688 movel %a0,%a3@ <== NOT EXECUTED _Priority_Add_to_bit_map( &the_thread->Priority_map ); _Chain_Append_unprotected( the_thread->ready, &the_thread->Object.Node ); _ISR_Flash( level ); 4a1d6: 46c3 movew %d3,%sr <== NOT EXECUTED 4a1d8: 8483 orl %d3,%d2 <== NOT EXECUTED 4a1da: 46c2 movew %d2,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE Priority_Control _Priority_Get_highest( void ) { Priority_Bit_map_control minor; Priority_Bit_map_control major; _Bitfield_Find_first_bit( _Priority_Major_bit_map, major ); 4a1dc: 3039 0005 6d58 movew 56d58 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 4a1e2: 4840 swap %d0 <== NOT EXECUTED 4a1e4: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 4a1e6: 41f9 0005 6dc8 lea 56dc8 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 4a1ec: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 4a1f2: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 4a1f6: 4841 swap %d1 <== NOT EXECUTED 4a1f8: 04c1 ff1 %d1 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 4a1fa: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 4a200: e988 lsll #4,%d0 <== NOT EXECUTED 4a202: d081 addl %d1,%d0 <== NOT EXECUTED 4a204: 2079 0005 6c50 moveal 56c50 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 4a20a: 2200 movel %d0,%d1 <== NOT EXECUTED 4a20c: e588 lsll #2,%d0 <== NOT EXECUTED 4a20e: 91c0 subal %d0,%a0 <== NOT EXECUTED 4a210: e989 lsll #4,%d1 <== NOT EXECUTED 4a212: 2030 1800 movel %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE bool _Thread_Is_executing ( const Thread_Control *the_thread ) { return ( the_thread == _Thread_Executing ); 4a216: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 4a21c: 23c0 0005 6d32 movel %d0,56d32 <_Thread_Heir> <== NOT EXECUTED _Thread_Calculate_heir(); heir = _Thread_Heir; if ( !_Thread_Is_executing( heir ) && _Thread_Executing->is_preemptible ) 4a222: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 4a224: 670e beqs 4a234 <_Thread_Ready+0xb4> <== NOT EXECUTED 4a226: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 4a22a: 6708 beqs 4a234 <_Thread_Ready+0xb4> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 4a22c: 7001 moveq #1,%d0 <== NOT EXECUTED 4a22e: 13c0 0005 6d72 moveb %d0,56d72 <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 4a234: 46c3 movew %d3,%sr <== NOT EXECUTED } 4a236: 4cd7 0c0c moveml %sp@,%d2-%d3/%a2-%a3 <== NOT EXECUTED 4a23a: 4e5e unlk %fp <== NOT EXECUTED 4a23c: 4e75 rts <== NOT EXECUTED ... 0004aa7c <_Thread_Reset>: void _Thread_Reset( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 4aa7c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4aa80: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aa82: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED the_thread->is_preemptible = the_thread->Start.is_preemptible; the_thread->budget_algorithm = the_thread->Start.budget_algorithm; the_thread->budget_callout = the_thread->Start.budget_callout; the_thread->Start.pointer_argument = pointer_argument; the_thread->Start.numeric_argument = numeric_argument; 4aa86: 256e 0010 00a8 movel %fp@(16),%a2@(168) <== NOT EXECUTED the_thread->suspend_count = 0; the_thread->is_preemptible = the_thread->Start.is_preemptible; the_thread->budget_algorithm = the_thread->Start.budget_algorithm; the_thread->budget_callout = the_thread->Start.budget_callout; the_thread->Start.pointer_argument = pointer_argument; 4aa8c: 256e 000c 00a4 movel %fp@(12),%a2@(164) <== NOT EXECUTED Thread_Entry_numeric_type numeric_argument ) { the_thread->resource_count = 0; the_thread->suspend_count = 0; the_thread->is_preemptible = the_thread->Start.is_preemptible; 4aa92: 156a 00ac 0076 moveb %a2@(172),%a2@(118) <== NOT EXECUTED Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { the_thread->resource_count = 0; 4aa98: 42aa 001c clrl %a2@(28) <== NOT EXECUTED the_thread->suspend_count = 0; the_thread->is_preemptible = the_thread->Start.is_preemptible; the_thread->budget_algorithm = the_thread->Start.budget_algorithm; 4aa9c: 256a 00ae 007c movel %a2@(174),%a2@(124) <== NOT EXECUTED the_thread->budget_callout = the_thread->Start.budget_callout; 4aaa2: 256a 00b2 0080 movel %a2@(178),%a2@(128) <== NOT EXECUTED void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { the_thread->resource_count = 0; the_thread->suspend_count = 0; 4aaa8: 42aa 0070 clrl %a2@(112) <== NOT EXECUTED the_thread->budget_callout = the_thread->Start.budget_callout; the_thread->Start.pointer_argument = pointer_argument; the_thread->Start.numeric_argument = numeric_argument; if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) { 4aaac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aaae: 4eb9 0004 7a14 jsr 47a14 <_Thread_queue_Extract_with_proxy> <== NOT EXECUTED 4aab4: 588f addql #4,%sp <== NOT EXECUTED 4aab6: 4a00 tstb %d0 <== NOT EXECUTED 4aab8: 6614 bnes 4aace <_Thread_Reset+0x52> <== NOT EXECUTED if ( _Watchdog_Is_active( &the_thread->Timer ) ) 4aaba: 7002 moveq #2,%d0 <== NOT EXECUTED 4aabc: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4aac0: 660c bnes 4aace <_Thread_Reset+0x52> <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4aac2: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4aac6: 4eb9 0004 851c jsr 4851c <_Watchdog_Remove> <== NOT EXECUTED 4aacc: 588f addql #4,%sp <== NOT EXECUTED } if ( the_thread->current_priority != the_thread->Start.initial_priority ) { 4aace: 202a 00ba movel %a2@(186),%d0 <== NOT EXECUTED 4aad2: b0aa 0014 cmpl %a2@(20),%d0 <== NOT EXECUTED 4aad6: 6718 beqs 4aaf0 <_Thread_Reset+0x74> <== NOT EXECUTED the_thread->real_priority = the_thread->Start.initial_priority; _Thread_Set_priority( the_thread, the_thread->Start.initial_priority ); 4aad8: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED 4aadc: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED if ( _Watchdog_Is_active( &the_thread->Timer ) ) (void) _Watchdog_Remove( &the_thread->Timer ); } if ( the_thread->current_priority != the_thread->Start.initial_priority ) { the_thread->real_priority = the_thread->Start.initial_priority; 4aae0: 2540 0018 movel %d0,%a2@(24) <== NOT EXECUTED _Thread_Set_priority( the_thread, the_thread->Start.initial_priority ); } } 4aae4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4aae8: 4e5e unlk %fp <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); } if ( the_thread->current_priority != the_thread->Start.initial_priority ) { the_thread->real_priority = the_thread->Start.initial_priority; _Thread_Set_priority( the_thread, the_thread->Start.initial_priority ); 4aaea: 4ef9 0004 7c28 jmp 47c28 <_Thread_Set_priority> <== NOT EXECUTED } } 4aaf0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4aaf4: 4e5e unlk %fp <== NOT EXECUTED 4aaf6: 4e75 rts 0004a240 <_Thread_Reset_timeslice>: * ready chain * select heir */ void _Thread_Reset_timeslice( void ) { 4a240: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4a244: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; 4a248: 2479 0005 6d62 moveal 56d62 <_Thread_Executing>,%a2 <== NOT EXECUTED ready = executing->ready; _ISR_Disable( level ); 4a24e: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; ready = executing->ready; 4a254: 266a 008c moveal %a2@(140),%a3 <== NOT EXECUTED _ISR_Disable( level ); 4a258: 2002 movel %d2,%d0 <== NOT EXECUTED 4a25a: 40c1 movew %sr,%d1 <== NOT EXECUTED 4a25c: 8081 orl %d1,%d0 <== NOT EXECUTED 4a25e: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 4a260: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 4a264: b093 cmpl %a3@,%d0 <== NOT EXECUTED 4a266: 6604 bnes 4a26c <_Thread_Reset_timeslice+0x2c> <== NOT EXECUTED _ISR_Enable( level ); 4a268: 46c1 movew %d1,%sr <== NOT EXECUTED 4a26a: 6040 bras 4a2ac <_Thread_Reset_timeslice+0x6c> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 4a26c: 2052 moveal %a2@,%a0 <== NOT EXECUTED previous = the_node->previous; 4a26e: 226a 0004 moveal %a2@(4),%a1 <== NOT EXECUTED next->previous = previous; previous->next = next; 4a272: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4a274: 200b movel %a3,%d0 <== NOT EXECUTED 4a276: 5880 addql #4,%d0 <== NOT EXECUTED 4a278: 2480 movel %d0,%a2@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4a27a: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; 4a27e: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 4a282: 274a 0008 movel %a2,%a3@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4a286: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; the_chain->last = the_node; old_last_node->next = the_node; 4a28a: 208a movel %a2,%a0@ <== NOT EXECUTED return; } _Chain_Extract_unprotected( &executing->Object.Node ); _Chain_Append_unprotected( ready, &executing->Object.Node ); _ISR_Flash( level ); 4a28c: 2002 movel %d2,%d0 <== NOT EXECUTED 4a28e: 46c1 movew %d1,%sr <== NOT EXECUTED 4a290: 8081 orl %d1,%d0 <== NOT EXECUTED 4a292: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( executing ) ) 4a294: b5f9 0005 6d32 cmpal 56d32 <_Thread_Heir>,%a2 <== NOT EXECUTED 4a29a: 6606 bnes 4a2a2 <_Thread_Reset_timeslice+0x62> <== NOT EXECUTED _Thread_Heir = (Thread_Control *) ready->first; 4a29c: 23d3 0005 6d32 movel %a3@,56d32 <_Thread_Heir> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 4a2a2: 7001 moveq #1,%d0 <== NOT EXECUTED 4a2a4: 13c0 0005 6d72 moveb %d0,56d72 <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 4a2aa: 46c1 movew %d1,%sr <== NOT EXECUTED } 4a2ac: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 4a2b0: 4e5e unlk %fp <== NOT EXECUTED 4a2b2: 4e75 rts 00047b8c <_Thread_Restart>: bool _Thread_Restart( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 47b8c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47b90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47b92: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( !_States_Is_dormant( the_thread->current_state ) ) { 47b96: 7001 moveq #1,%d0 <== NOT EXECUTED bool _Thread_Restart( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 47b98: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !_States_Is_dormant( the_thread->current_state ) ) { 47b9a: c0aa 0010 andl %a2@(16),%d0 <== NOT EXECUTED 47b9e: 4a00 tstb %d0 <== NOT EXECUTED 47ba0: 6704 beqs 47ba6 <_Thread_Restart+0x1a> <== NOT EXECUTED 47ba2: 4202 clrb %d2 <== NOT EXECUTED 47ba4: 6072 bras 47c18 <_Thread_Restart+0x8c> <== NOT EXECUTED _Thread_Set_transient( the_thread ); 47ba6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47ba8: 4eb9 0004 7d80 jsr 47d80 <_Thread_Set_transient> <== NOT EXECUTED _Thread_Reset( the_thread, pointer_argument, numeric_argument ); 47bae: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 47bb2: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 47bb6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47bb8: 4eb9 0004 aa7c jsr 4aa7c <_Thread_Reset> <== NOT EXECUTED _Thread_Load_environment( the_thread ); 47bbe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47bc0: 4eb9 0004 a710 jsr 4a710 <_Thread_Load_environment> <== NOT EXECUTED _Thread_Ready( the_thread ); 47bc6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47bc8: 4eb9 0004 a9bc jsr 4a9bc <_Thread_Ready> <== NOT EXECUTED _User_extensions_Thread_restart( the_thread ); 47bce: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47bd0: 4eb9 0004 8360 jsr 48360 <_User_extensions_Thread_restart> <== NOT EXECUTED if ( _Thread_Is_executing ( the_thread ) ) 47bd6: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 47bdc: b5f9 0005 86aa cmpal 586aa <_Thread_Executing>,%a2 <== NOT EXECUTED 47be2: 6704 beqs 47be8 <_Thread_Restart+0x5c> <== NOT EXECUTED 47be4: 7401 moveq #1,%d2 <== NOT EXECUTED 47be6: 6030 bras 47c18 <_Thread_Restart+0x8c> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Restart_self( void ) { #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) if ( _Thread_Executing->fp_context != NULL ) 47be8: 4aaa 0104 tstl %a2@(260) <== NOT EXECUTED 47bec: 670c beqs 47bfa <_Thread_Restart+0x6e> <== NOT EXECUTED _Context_Restore_fp( &_Thread_Executing->fp_context ); 47bee: 486a 0104 pea %a2@(260) <== NOT EXECUTED 47bf2: 4eb9 0004 8704 jsr 48704 <_CPU_Context_restore_fp> <== NOT EXECUTED 47bf8: 588f addql #4,%sp <== NOT EXECUTED #endif _CPU_Context_Restart_self( &_Thread_Executing->Registers ); 47bfa: 2079 0005 86aa moveal 586aa <_Thread_Executing>,%a0 <== NOT EXECUTED 47c00: 2228 00d0 movel %a0@(208),%d1 <== NOT EXECUTED 47c04: 2028 0100 movel %a0@(256),%d0 <== NOT EXECUTED 47c08: 46c1 movew %d1,%sr <== NOT EXECUTED 47c0a: 2e40 moveal %d0,%sp <== NOT EXECUTED 47c0c: 4e75 rts <== NOT EXECUTED 47c0e: 7401 moveq #1,%d2 <== NOT EXECUTED 47c10: 2140 0100 movel %d0,%a0@(256) <== NOT EXECUTED 47c14: 2141 00d0 movel %d1,%a0@(208) <== NOT EXECUTED return TRUE; } return FALSE; } 47c18: 1002 moveb %d2,%d0 <== NOT EXECUTED 47c1a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47c1e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47c22: 4e5e unlk %fp <== NOT EXECUTED 47c24: 4e75 rts <== NOT EXECUTED ... 000485ec <_Thread_Resume>: void _Thread_Resume( Thread_Control *the_thread, bool force ) { 485ec: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 485f0: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 485f4: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 485f8: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED ISR_Level level; States_Control current_state; _ISR_Disable( level ); 485fc: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 48602: 40c2 movew %sr,%d2 <== NOT EXECUTED 48604: 8282 orl %d2,%d1 <== NOT EXECUTED 48606: 46c1 movew %d1,%sr <== NOT EXECUTED if ( force == TRUE ) 48608: 4a00 tstb %d0 <== NOT EXECUTED 4860a: 6706 beqs 48612 <_Thread_Resume+0x26> <== NOT EXECUTED the_thread->suspend_count = 0; 4860c: 42ab 0070 clrl %a3@(112) <== NOT EXECUTED 48610: 6004 bras 48616 <_Thread_Resume+0x2a> <== NOT EXECUTED else the_thread->suspend_count--; 48612: 53ab 0070 subql #1,%a3@(112) <== NOT EXECUTED if ( the_thread->suspend_count > 0 ) { 48616: 4aab 0070 tstl %a3@(112) <== NOT EXECUTED 4861a: 6706 beqs 48622 <_Thread_Resume+0x36> <== NOT EXECUTED _ISR_Enable( level ); 4861c: 46c2 movew %d2,%sr <== NOT EXECUTED 4861e: 6000 008a braw 486aa <_Thread_Resume+0xbe> <== NOT EXECUTED return; } current_state = the_thread->current_state; 48622: 202b 0010 movel %a3@(16),%d0 <== NOT EXECUTED if ( current_state & STATES_SUSPENDED ) { 48626: 0800 0001 btst #1,%d0 <== NOT EXECUTED 4862a: 677c beqs 486a8 <_Thread_Resume+0xbc> <== NOT EXECUTED 4862c: 72fd moveq #-3,%d1 <== NOT EXECUTED 4862e: c081 andl %d1,%d0 <== NOT EXECUTED current_state = 48630: 2740 0010 movel %d0,%a3@(16) <== NOT EXECUTED the_thread->current_state = _States_Clear(STATES_SUSPENDED, current_state); if ( _States_Is_ready( current_state ) ) { 48634: 6672 bnes 486a8 <_Thread_Resume+0xbc> <== NOT EXECUTED _Priority_Add_to_bit_map( &the_thread->Priority_map ); _Chain_Append_unprotected(the_thread->ready, &the_thread->Object.Node); 48636: 206b 008c moveal %a3@(140),%a0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4863a: 2008 movel %a0,%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Priority_Add_to_bit_map ( Priority_Information *the_priority_map ) { *the_priority_map->minor |= the_priority_map->ready_minor; 4863c: 226b 0090 moveal %a3@(144),%a1 <== NOT EXECUTED 48640: 5880 addql #4,%d0 <== NOT EXECUTED 48642: 2680 movel %d0,%a3@ <== NOT EXECUTED old_last_node = the_chain->last; 48644: 2468 0008 moveal %a0@(8),%a2 <== NOT EXECUTED 48648: 322b 0096 movew %a3@(150),%d1 <== NOT EXECUTED 4864c: 3011 movew %a1@,%d0 <== NOT EXECUTED 4864e: 8081 orl %d1,%d0 <== NOT EXECUTED 48650: 3280 movew %d0,%a1@ <== NOT EXECUTED the_chain->last = the_node; 48652: 214b 0008 movel %a3,%a0@(8) <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 48656: 3239 0006 1080 movew 61080 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 4865c: 302b 0094 movew %a3@(148),%d0 <== NOT EXECUTED 48660: 8081 orl %d1,%d0 <== NOT EXECUTED 48662: 33c0 0006 1080 movew %d0,61080 <_Priority_Major_bit_map> <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 48668: 274a 0004 movel %a2,%a3@(4) <== NOT EXECUTED Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; the_chain->last = the_node; old_last_node->next = the_node; 4866c: 248b movel %a3,%a2@ <== NOT EXECUTED _ISR_Flash( level ); 4866e: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 48674: 46c2 movew %d2,%sr <== NOT EXECUTED 48676: 8082 orl %d2,%d0 <== NOT EXECUTED 48678: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_thread->current_priority < _Thread_Heir->current_priority ) { 4867a: 2079 0006 105a moveal 6105a <_Thread_Heir>,%a0 <== NOT EXECUTED 48680: 202b 0014 movel %a3@(20),%d0 <== NOT EXECUTED 48684: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 48688: 641e bccs 486a8 <_Thread_Resume+0xbc> <== NOT EXECUTED _Thread_Heir = the_thread; if ( _Thread_Executing->is_preemptible || 4868a: 2079 0006 108a moveal 6108a <_Thread_Executing>,%a0 <== NOT EXECUTED _Chain_Append_unprotected(the_thread->ready, &the_thread->Object.Node); _ISR_Flash( level ); if ( the_thread->current_priority < _Thread_Heir->current_priority ) { _Thread_Heir = the_thread; 48690: 23cb 0006 105a movel %a3,6105a <_Thread_Heir> <== NOT EXECUTED if ( _Thread_Executing->is_preemptible || 48696: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 4869a: 6604 bnes 486a0 <_Thread_Resume+0xb4> <== NOT EXECUTED 4869c: 4a80 tstl %d0 <== NOT EXECUTED 4869e: 6608 bnes 486a8 <_Thread_Resume+0xbc> <== NOT EXECUTED the_thread->current_priority == 0 ) _Context_Switch_necessary = TRUE; 486a0: 7201 moveq #1,%d1 <== NOT EXECUTED 486a2: 13c1 0006 109a moveb %d1,6109a <_Context_Switch_necessary> <== NOT EXECUTED } } } _ISR_Enable( level ); 486a8: 46c2 movew %d2,%sr <== NOT EXECUTED } 486aa: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 486ae: 4e5e unlk %fp <== NOT EXECUTED 486b0: 4e75 rts <== NOT EXECUTED ... 00047424 <_Thread_Set_priority>: void _Thread_Set_priority( Thread_Control *the_thread, Priority_Control new_priority ) { 47424: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 47428: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4742c: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 47430: 48d7 003c moveml %d2-%d5,%sp@ <== NOT EXECUTED the_thread->current_priority = new_priority; the_thread->ready = &_Thread_Ready_chain[ new_priority ]; 47434: 2800 movel %d0,%d4 <== NOT EXECUTED 47436: 2600 movel %d0,%d3 <== NOT EXECUTED { Priority_Bit_map_control major; Priority_Bit_map_control minor; Priority_Bit_map_control mask; major = _Priority_Major( new_priority ); 47438: 2400 movel %d0,%d2 <== NOT EXECUTED mask = _Priority_Mask( major ); the_priority_map->ready_major = mask; the_priority_map->block_major = ~mask; mask = _Priority_Mask( minor ); 4743a: 720f moveq #15,%d1 <== NOT EXECUTED void _Thread_Set_priority( Thread_Control *the_thread, Priority_Control new_priority ) { the_thread->current_priority = new_priority; 4743c: 2140 0014 movel %d0,%a0@(20) <== NOT EXECUTED 47440: c081 andl %d1,%d0 <== NOT EXECUTED the_thread->ready = &_Thread_Ready_chain[ new_priority ]; 47442: e58c lsll #2,%d4 <== NOT EXECUTED 47444: e98b lsll #4,%d3 <== NOT EXECUTED minor = _Priority_Minor( new_priority ); the_priority_map->minor = &_Priority_Bit_map[ _Priority_Bits_index(major) ]; mask = _Priority_Mask( major ); 47446: 323c 8000 movew #-32768,%d1 <== NOT EXECUTED 4744a: 9684 subl %d4,%d3 <== NOT EXECUTED { Priority_Bit_map_control major; Priority_Bit_map_control minor; Priority_Bit_map_control mask; major = _Priority_Major( new_priority ); 4744c: e88a lsrl #4,%d2 <== NOT EXECUTED minor = _Priority_Minor( new_priority ); the_priority_map->minor = 4744e: 0282 0000 ffff andil #65535,%d2 <== NOT EXECUTED mask = _Priority_Mask( major ); the_priority_map->ready_major = mask; the_priority_map->block_major = ~mask; mask = _Priority_Mask( minor ); 47454: 2a01 movel %d1,%d5 <== NOT EXECUTED 47456: d6b9 0005 6c50 addl 56c50 <_Thread_Ready_chain>,%d3 <== NOT EXECUTED minor = _Priority_Minor( new_priority ); the_priority_map->minor = &_Priority_Bit_map[ _Priority_Bits_index(major) ]; mask = _Priority_Mask( major ); 4745c: e4a1 asrl %d2,%d1 <== NOT EXECUTED Priority_Bit_map_control mask; major = _Priority_Major( new_priority ); minor = _Priority_Minor( new_priority ); the_priority_map->minor = 4745e: d482 addl %d2,%d2 <== NOT EXECUTED mask = _Priority_Mask( major ); the_priority_map->ready_major = mask; the_priority_map->block_major = ~mask; mask = _Priority_Mask( minor ); 47460: e0a5 asrl %d0,%d5 <== NOT EXECUTED Priority_Bit_map_control mask; major = _Priority_Major( new_priority ); minor = _Priority_Minor( new_priority ); the_priority_map->minor = 47462: 0682 0005 6dc8 addil #355784,%d2 <== NOT EXECUTED mask = _Priority_Mask( major ); the_priority_map->ready_major = mask; the_priority_map->block_major = ~mask; mask = _Priority_Mask( minor ); 47468: 2005 movel %d5,%d0 <== NOT EXECUTED the_priority_map->ready_minor = mask; 4746a: 3145 0096 movew %d5,%a0@(150) <== NOT EXECUTED 4746e: 2143 008c movel %d3,%a0@(140) <== NOT EXECUTED the_priority_map->minor = &_Priority_Bit_map[ _Priority_Bits_index(major) ]; mask = _Priority_Mask( major ); the_priority_map->ready_major = mask; 47472: 3141 0094 movew %d1,%a0@(148) <== NOT EXECUTED the_priority_map->block_major = ~mask; 47476: 4681 notl %d1 <== NOT EXECUTED Priority_Bit_map_control mask; major = _Priority_Major( new_priority ); minor = _Priority_Minor( new_priority ); the_priority_map->minor = 47478: 2142 0090 movel %d2,%a0@(144) <== NOT EXECUTED _Priority_Initialize_information( &the_thread->Priority_map, new_priority ); } 4747c: 4cd7 003c moveml %sp@,%d2-%d5 <== NOT EXECUTED the_priority_map->ready_major = mask; the_priority_map->block_major = ~mask; mask = _Priority_Mask( minor ); the_priority_map->ready_minor = mask; the_priority_map->block_minor = ~mask; 47480: 4680 notl %d0 <== NOT EXECUTED 47482: 4e5e unlk %fp <== NOT EXECUTED 47484: 3140 009a movew %d0,%a0@(154) <== NOT EXECUTED the_priority_map->minor = &_Priority_Bit_map[ _Priority_Bits_index(major) ]; mask = _Priority_Mask( major ); the_priority_map->ready_major = mask; the_priority_map->block_major = ~mask; 47488: 3141 0098 movew %d1,%a0@(152) <== NOT EXECUTED 4748c: 4e75 rts <== NOT EXECUTED ... 00047490 <_Thread_Set_state>: void _Thread_Set_state( Thread_Control *the_thread, States_Control state ) { 47490: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47494: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47496: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4749a: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; Chain_Control *ready; ready = the_thread->ready; _ISR_Disable( level ); 4749c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED void _Thread_Set_state( Thread_Control *the_thread, States_Control state ) { 474a2: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED ISR_Level level; Chain_Control *ready; ready = the_thread->ready; 474a6: 226a 008c moveal %a2@(140),%a1 <== NOT EXECUTED _ISR_Disable( level ); 474aa: 40c2 movew %sr,%d2 <== NOT EXECUTED 474ac: 8082 orl %d2,%d0 <== NOT EXECUTED 474ae: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Is_ready( the_thread->current_state ) ) { 474b0: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 474b4: 670c beqs 474c2 <_Thread_Set_state+0x32> <== NOT EXECUTED the_thread->current_state = 474b6: 8280 orl %d0,%d1 <== NOT EXECUTED 474b8: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED _States_Set( state, the_thread->current_state ); _ISR_Enable( level ); 474bc: 46c2 movew %d2,%sr <== NOT EXECUTED 474be: 6000 00b2 braw 47572 <_Thread_Set_state+0xe2> <== NOT EXECUTED return; } the_thread->current_state = state; if ( _Chain_Has_only_one_node( ready ) ) { 474c2: 2029 0008 movel %a1@(8),%d0 <== NOT EXECUTED _States_Set( state, the_thread->current_state ); _ISR_Enable( level ); return; } the_thread->current_state = state; 474c6: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 474ca: b091 cmpl %a1@,%d0 <== NOT EXECUTED 474cc: 6634 bnes 47502 <_Thread_Set_state+0x72> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Priority_Remove_from_bit_map ( Priority_Information *the_priority_map ) { *the_priority_map->minor &= the_priority_map->block_minor; 474ce: 206a 0090 moveal %a2@(144),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 474d2: 2009 movel %a1,%d0 <== NOT EXECUTED 474d4: 5880 addql #4,%d0 <== NOT EXECUTED 474d6: 2280 movel %d0,%a1@ <== NOT EXECUTED 474d8: 3210 movew %a0@,%d1 <== NOT EXECUTED 474da: 302a 009a movew %a2@(154),%d0 <== NOT EXECUTED 474de: c280 andl %d0,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 474e0: 2349 0008 movel %a1,%a1@(8) <== NOT EXECUTED 474e4: 3081 movew %d1,%a0@ <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 474e6: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED if ( *the_priority_map->minor == 0 ) 474ea: 4a41 tstw %d1 <== NOT EXECUTED 474ec: 6620 bnes 4750e <_Thread_Set_state+0x7e> <== NOT EXECUTED _Priority_Major_bit_map &= the_priority_map->block_major; 474ee: 3239 0005 6d58 movew 56d58 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 474f4: 302a 0098 movew %a2@(152),%d0 <== NOT EXECUTED 474f8: c081 andl %d1,%d0 <== NOT EXECUTED 474fa: 33c0 0005 6d58 movew %d0,56d58 <_Priority_Major_bit_map> <== NOT EXECUTED 47500: 600c bras 4750e <_Thread_Set_state+0x7e> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 47502: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 47504: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED next->previous = previous; previous->next = next; 47508: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4750a: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED _Priority_Remove_from_bit_map( &the_thread->Priority_map ); } else _Chain_Extract_unprotected( &the_thread->Object.Node ); _ISR_Flash( level ); 4750e: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 47514: 46c2 movew %d2,%sr <== NOT EXECUTED 47516: 8082 orl %d2,%d0 <== NOT EXECUTED 47518: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( the_thread ) ) 4751a: b5f9 0005 6d32 cmpal 56d32 <_Thread_Heir>,%a2 <== NOT EXECUTED 47520: 663e bnes 47560 <_Thread_Set_state+0xd0> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Priority_Control _Priority_Get_highest( void ) { Priority_Bit_map_control minor; Priority_Bit_map_control major; _Bitfield_Find_first_bit( _Priority_Major_bit_map, major ); 47522: 3039 0005 6d58 movew 56d58 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 47528: 4840 swap %d0 <== NOT EXECUTED 4752a: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 4752c: 41f9 0005 6dc8 lea 56dc8 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 47532: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 47538: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 4753c: 4841 swap %d1 <== NOT EXECUTED 4753e: 04c1 ff1 %d1 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 47540: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 47546: e988 lsll #4,%d0 <== NOT EXECUTED 47548: d081 addl %d1,%d0 <== NOT EXECUTED 4754a: 2079 0005 6c50 moveal 56c50 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 47550: 2200 movel %d0,%d1 <== NOT EXECUTED 47552: e588 lsll #2,%d0 <== NOT EXECUTED 47554: e989 lsll #4,%d1 <== NOT EXECUTED 47556: 91c0 subal %d0,%a0 <== NOT EXECUTED 47558: d1c1 addal %d1,%a0 <== NOT EXECUTED 4755a: 23d0 0005 6d32 movel %a0@,56d32 <_Thread_Heir> <== NOT EXECUTED _Thread_Calculate_heir(); if ( _Thread_Is_executing( the_thread ) ) 47560: b5f9 0005 6d62 cmpal 56d62 <_Thread_Executing>,%a2 <== NOT EXECUTED 47566: 6608 bnes 47570 <_Thread_Set_state+0xe0> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 47568: 7001 moveq #1,%d0 <== NOT EXECUTED 4756a: 13c0 0005 6d72 moveb %d0,56d72 <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 47570: 46c2 movew %d2,%sr <== NOT EXECUTED } 47572: 241f movel %sp@+,%d2 <== NOT EXECUTED 47574: 245f moveal %sp@+,%a2 <== NOT EXECUTED 47576: 4e5e unlk %fp <== NOT EXECUTED 47578: 4e75 rts <== NOT EXECUTED ... 0004757c <_Thread_Set_transient>: */ void _Thread_Set_transient( Thread_Control *the_thread ) { 4757c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47580: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47582: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 47586: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; uint32_t old_state; Chain_Control *ready; ready = the_thread->ready; _ISR_Disable( level ); 47588: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED { ISR_Level level; uint32_t old_state; Chain_Control *ready; ready = the_thread->ready; 4758e: 226a 008c moveal %a2@(140),%a1 <== NOT EXECUTED _ISR_Disable( level ); 47592: 40c2 movew %sr,%d2 <== NOT EXECUTED 47594: 8082 orl %d2,%d0 <== NOT EXECUTED 47596: 46c0 movew %d0,%sr <== NOT EXECUTED old_state = the_thread->current_state; 47598: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED the_thread->current_state = _States_Set( STATES_TRANSIENT, old_state ); 4759c: 7204 moveq #4,%d1 <== NOT EXECUTED 4759e: 8280 orl %d0,%d1 <== NOT EXECUTED 475a0: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED if ( _States_Is_ready( old_state ) ) { 475a4: 4a80 tstl %d0 <== NOT EXECUTED 475a6: 6648 bnes 475f0 <_Thread_Set_transient+0x74> <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 475a8: 2029 0008 movel %a1@(8),%d0 <== NOT EXECUTED 475ac: b091 cmpl %a1@,%d0 <== NOT EXECUTED 475ae: 6634 bnes 475e4 <_Thread_Set_transient+0x68> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Priority_Remove_from_bit_map ( Priority_Information *the_priority_map ) { *the_priority_map->minor &= the_priority_map->block_minor; 475b0: 206a 0090 moveal %a2@(144),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 475b4: 2209 movel %a1,%d1 <== NOT EXECUTED 475b6: 5881 addql #4,%d1 <== NOT EXECUTED 475b8: 2281 movel %d1,%a1@ <== NOT EXECUTED 475ba: 3210 movew %a0@,%d1 <== NOT EXECUTED 475bc: 302a 009a movew %a2@(154),%d0 <== NOT EXECUTED 475c0: c280 andl %d0,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 475c2: 2349 0008 movel %a1,%a1@(8) <== NOT EXECUTED 475c6: 3081 movew %d1,%a0@ <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 475c8: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED if ( *the_priority_map->minor == 0 ) 475cc: 4a41 tstw %d1 <== NOT EXECUTED 475ce: 6620 bnes 475f0 <_Thread_Set_transient+0x74> <== NOT EXECUTED _Priority_Major_bit_map &= the_priority_map->block_major; 475d0: 302a 0098 movew %a2@(152),%d0 <== NOT EXECUTED 475d4: 3239 0005 6d58 movew 56d58 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 475da: c081 andl %d1,%d0 <== NOT EXECUTED 475dc: 33c0 0005 6d58 movew %d0,56d58 <_Priority_Major_bit_map> <== NOT EXECUTED 475e2: 600c bras 475f0 <_Thread_Set_transient+0x74> <== NOT EXECUTED { Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; 475e4: 226a 0004 moveal %a2@(4),%a1 <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 475e8: 2052 moveal %a2@,%a0 <== NOT EXECUTED previous = the_node->previous; next->previous = previous; previous->next = next; 475ea: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 475ec: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED } else _Chain_Extract_unprotected( &the_thread->Object.Node ); } _ISR_Enable( level ); 475f0: 46c2 movew %d2,%sr <== NOT EXECUTED } 475f2: 241f movel %sp@+,%d2 <== NOT EXECUTED 475f4: 245f moveal %sp@+,%a2 <== NOT EXECUTED 475f6: 4e5e unlk %fp <== NOT EXECUTED 475f8: 4e75 rts <== NOT EXECUTED ... 000475fc <_Thread_Stack_Allocate>: size_t _Thread_Stack_Allocate( Thread_Control *the_thread, size_t stack_size ) { 475fc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47600: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47602: 2039 0005 518e movel 5518e ,%d0 <== NOT EXECUTED 47608: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4760c: b082 cmpl %d2,%d0 <== NOT EXECUTED 4760e: 6302 blss 47612 <_Thread_Stack_Allocate+0x16> <== NOT EXECUTED 47610: 2400 movel %d0,%d2 <== NOT EXECUTED * Call ONLY the CPU table stack allocate hook, _or_ the * the RTEMS workspace allocate. This is so the stack free * routine can call the correct deallocation routine. */ if ( _Configuration_Table->stack_allocate_hook ) { 47612: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED 47618: 2068 0020 moveal %a0@(32),%a0 <== NOT EXECUTED 4761c: 4a88 tstl %a0 <== NOT EXECUTED 4761e: 6706 beqs 47626 <_Thread_Stack_Allocate+0x2a> <== NOT EXECUTED stack_addr = (*_Configuration_Table->stack_allocate_hook)( the_stack_size ); 47620: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47622: 4e90 jsr %a0@ <== NOT EXECUTED 47624: 6008 bras 4762e <_Thread_Stack_Allocate+0x32> <== NOT EXECUTED * get and keep the stack adjust factor, the stack alignment, and * the context initialization sequence in sync. */ the_stack_size = _Stack_Adjust_size( the_stack_size ); stack_addr = _Workspace_Allocate( the_stack_size ); 47626: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47628: 4eb9 0004 7df0 jsr 47df0 <_Workspace_Allocate> <== NOT EXECUTED 4762e: 2200 movel %d0,%d1 <== NOT EXECUTED } if ( !stack_addr ) 47630: 56c0 sne %d0 <== NOT EXECUTED 47632: 49c0 extbl %d0 <== NOT EXECUTED the_stack_size = 0; the_thread->Start.stack = stack_addr; return the_stack_size; } 47634: c082 andl %d2,%d0 <== NOT EXECUTED } if ( !stack_addr ) the_stack_size = 0; the_thread->Start.stack = stack_addr; 47636: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED return the_stack_size; } 4763a: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED * get and keep the stack adjust factor, the stack alignment, and * the context initialization sequence in sync. */ the_stack_size = _Stack_Adjust_size( the_stack_size ); stack_addr = _Workspace_Allocate( the_stack_size ); 4763e: 588f addql #4,%sp <== NOT EXECUTED the_stack_size = 0; the_thread->Start.stack = stack_addr; return the_stack_size; } 47640: 4e5e unlk %fp <== NOT EXECUTED } if ( !stack_addr ) the_stack_size = 0; the_thread->Start.stack = stack_addr; 47642: 2141 00cc movel %d1,%a0@(204) <== NOT EXECUTED return the_stack_size; } 47646: 4e75 rts 00047648 <_Thread_Stack_Free>: */ void _Thread_Stack_Free( Thread_Control *the_thread ) { 47648: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4764c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4764e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED /* * If the API provided the stack space, then don't free it. */ if ( !the_thread->Start.core_allocated_stack ) 47652: 4a2a 00be tstb %a2@(190) <== NOT EXECUTED 47656: 672a beqs 47682 <_Thread_Stack_Free+0x3a> <== NOT EXECUTED * Call ONLY the CPU table stack free hook, or the * the RTEMS workspace free. This is so the free * routine properly matches the allocation of the stack. */ if ( _Configuration_Table->stack_free_hook ) 47658: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED 4765e: 2028 0024 movel %a0@(36),%d0 <== NOT EXECUTED 47662: 670e beqs 47672 <_Thread_Stack_Free+0x2a> <== NOT EXECUTED (*_Configuration_Table->stack_free_hook)( 47664: 2240 moveal %d0,%a1 <== NOT EXECUTED 47666: 2d6a 00c4 0008 movel %a2@(196),%fp@(8) <== NOT EXECUTED the_thread->Start.Initial_stack.area ); else _Workspace_Free( the_thread->Start.Initial_stack.area ); } 4766c: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4766e: 4e5e unlk %fp <== NOT EXECUTED * the RTEMS workspace free. This is so the free * routine properly matches the allocation of the stack. */ if ( _Configuration_Table->stack_free_hook ) (*_Configuration_Table->stack_free_hook)( 47670: 4ed1 jmp %a1@ <== NOT EXECUTED the_thread->Start.Initial_stack.area ); else _Workspace_Free( the_thread->Start.Initial_stack.area ); 47672: 2d6a 00c4 0008 movel %a2@(196),%fp@(8) <== NOT EXECUTED } 47678: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4767a: 4e5e unlk %fp <== NOT EXECUTED if ( _Configuration_Table->stack_free_hook ) (*_Configuration_Table->stack_free_hook)( the_thread->Start.Initial_stack.area ); else _Workspace_Free( the_thread->Start.Initial_stack.area ); 4767c: 4ef9 0004 7dd8 jmp 47dd8 <_Workspace_Free> <== NOT EXECUTED } 47682: 245f moveal %sp@+,%a2 <== NOT EXECUTED 47684: 4e5e unlk %fp <== NOT EXECUTED 47686: 4e75 rts 000476dc <_Thread_Start>: Thread_Start_types the_prototype, void *entry_point, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 476dc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 476e0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 476e2: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( _States_Is_dormant( the_thread->current_state ) ) { 476e6: 7001 moveq #1,%d0 <== NOT EXECUTED 476e8: c0aa 0010 andl %a2@(16),%d0 <== NOT EXECUTED 476ec: 6738 beqs 47726 <_Thread_Start+0x4a> <== NOT EXECUTED the_thread->Start.prototype = the_prototype; the_thread->Start.pointer_argument = pointer_argument; the_thread->Start.numeric_argument = numeric_argument; _Thread_Load_environment( the_thread ); 476ee: 2f0a movel %a2,%sp@- <== NOT EXECUTED Thread_Entry_numeric_type numeric_argument ) { if ( _States_Is_dormant( the_thread->current_state ) ) { the_thread->Start.entry_point = (Thread_Entry) entry_point; 476f0: 256e 0010 009c movel %fp@(16),%a2@(156) <== NOT EXECUTED the_thread->Start.prototype = the_prototype; 476f6: 256e 000c 00a0 movel %fp@(12),%a2@(160) <== NOT EXECUTED the_thread->Start.pointer_argument = pointer_argument; 476fc: 256e 0014 00a4 movel %fp@(20),%a2@(164) <== NOT EXECUTED the_thread->Start.numeric_argument = numeric_argument; 47702: 256e 0018 00a8 movel %fp@(24),%a2@(168) <== NOT EXECUTED _Thread_Load_environment( the_thread ); 47708: 4eb9 0004 9ed4 jsr 49ed4 <_Thread_Load_environment> <== NOT EXECUTED _Thread_Ready( the_thread ); 4770e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47710: 4eb9 0004 a180 jsr 4a180 <_Thread_Ready> <== NOT EXECUTED _User_extensions_Thread_start( the_thread ); 47716: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47718: 4eb9 0004 7b5c jsr 47b5c <_User_extensions_Thread_start> <== NOT EXECUTED 4771e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 47724: 7001 moveq #1,%d0 <== NOT EXECUTED return true; } return false; } 47726: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4772a: 4e5e unlk %fp <== NOT EXECUTED 4772c: 4e75 rts <== NOT EXECUTED ... 00047688 <_Thread_Start_multitasking>: 47688: 7003 moveq #3,%d0 <== NOT EXECUTED _System_state_Set( SYSTEM_STATE_UP ); _Context_Switch_necessary = FALSE; _Thread_Executing = _Thread_Heir; 4768a: 2079 0005 6d32 moveal 56d32 <_Thread_Heir>,%a0 <== NOT EXECUTED 47690: 23c0 0005 6e36 movel %d0,56e36 <_System_state_Current> <== NOT EXECUTED * the system is shut down. */ _System_state_Set( SYSTEM_STATE_UP ); _Context_Switch_necessary = FALSE; 47696: 4200 clrb %d0 <== NOT EXECUTED * ready chain * select heir */ void _Thread_Start_multitasking( void ) { 47698: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED * the system is shut down. */ _System_state_Set( SYSTEM_STATE_UP ); _Context_Switch_necessary = FALSE; 4769c: 13c0 0005 6d72 moveb %d0,56d72 <_Context_Switch_necessary> <== NOT EXECUTED _Thread_Executing = _Thread_Heir; 476a2: 23c8 0005 6d62 movel %a0,56d62 <_Thread_Executing> <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) /* * don't need to worry about saving BSP's floating point state */ if ( _Thread_Heir->fp_context != NULL ) 476a8: 4aa8 0104 tstl %a0@(260) <== NOT EXECUTED 476ac: 670c beqs 476ba <_Thread_Start_multitasking+0x32> <== NOT EXECUTED _Context_Restore_fp( &_Thread_Heir->fp_context ); 476ae: 4868 0104 pea %a0@(260) <== NOT EXECUTED 476b2: 4eb9 0004 7ec8 jsr 47ec8 <_CPU_Context_restore_fp> <== NOT EXECUTED 476b8: 588f addql #4,%sp <== NOT EXECUTED #endif _Context_Switch( &_Thread_BSP_context, &_Thread_Heir->Registers ); 476ba: 2039 0005 6d32 movel 56d32 <_Thread_Heir>,%d0 <== NOT EXECUTED 476c0: 0680 0000 00d0 addil #208,%d0 <== NOT EXECUTED 476c6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 476c8: 4879 0005 6c70 pea 56c70 <_Thread_BSP_context> <== NOT EXECUTED 476ce: 4eb9 0004 7eac jsr 47eac <_CPU_Context_switch> <== NOT EXECUTED 476d4: 508f addql #8,%sp <== NOT EXECUTED } 476d6: 4e5e unlk %fp <== NOT EXECUTED 476d8: 4e75 rts <== NOT EXECUTED ... 00047730 <_Thread_Suspend>: */ void _Thread_Suspend( Thread_Control *the_thread ) { 47730: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47734: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47736: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4773a: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; Chain_Control *ready; ready = the_thread->ready; _ISR_Disable( level ); 4773c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED ) { ISR_Level level; Chain_Control *ready; ready = the_thread->ready; 47742: 226a 008c moveal %a2@(140),%a1 <== NOT EXECUTED _ISR_Disable( level ); 47746: 40c2 movew %sr,%d2 <== NOT EXECUTED 47748: 8082 orl %d2,%d0 <== NOT EXECUTED 4774a: 46c0 movew %d0,%sr <== NOT EXECUTED the_thread->suspend_count++; 4774c: 52aa 0070 addql #1,%a2@(112) <== NOT EXECUTED if ( !_States_Is_ready( the_thread->current_state ) ) { 47750: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 47754: 670e beqs 47764 <_Thread_Suspend+0x34> <== NOT EXECUTED the_thread->current_state = 47756: 7202 moveq #2,%d1 <== NOT EXECUTED 47758: 8280 orl %d0,%d1 <== NOT EXECUTED 4775a: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED _States_Set( STATES_SUSPENDED, the_thread->current_state ); _ISR_Enable( level ); 4775e: 46c2 movew %d2,%sr <== NOT EXECUTED 47760: 6000 00b4 braw 47816 <_Thread_Suspend+0xe6> <== NOT EXECUTED return; } the_thread->current_state = STATES_SUSPENDED; if ( _Chain_Has_only_one_node( ready ) ) { 47764: 2229 0008 movel %a1@(8),%d1 <== NOT EXECUTED _States_Set( STATES_SUSPENDED, the_thread->current_state ); _ISR_Enable( level ); return; } the_thread->current_state = STATES_SUSPENDED; 47768: 7002 moveq #2,%d0 <== NOT EXECUTED 4776a: 2540 0010 movel %d0,%a2@(16) <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 4776e: b291 cmpl %a1@,%d1 <== NOT EXECUTED 47770: 6634 bnes 477a6 <_Thread_Suspend+0x76> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Priority_Remove_from_bit_map ( Priority_Information *the_priority_map ) { *the_priority_map->minor &= the_priority_map->block_minor; 47772: 206a 0090 moveal %a2@(144),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47776: 2009 movel %a1,%d0 <== NOT EXECUTED 47778: 5880 addql #4,%d0 <== NOT EXECUTED 4777a: 2280 movel %d0,%a1@ <== NOT EXECUTED 4777c: 3210 movew %a0@,%d1 <== NOT EXECUTED 4777e: 302a 009a movew %a2@(154),%d0 <== NOT EXECUTED 47782: c280 andl %d0,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 47784: 2349 0008 movel %a1,%a1@(8) <== NOT EXECUTED 47788: 3081 movew %d1,%a0@ <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 4778a: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED if ( *the_priority_map->minor == 0 ) 4778e: 4a41 tstw %d1 <== NOT EXECUTED 47790: 6620 bnes 477b2 <_Thread_Suspend+0x82> <== NOT EXECUTED _Priority_Major_bit_map &= the_priority_map->block_major; 47792: 3239 0005 6d58 movew 56d58 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 47798: 302a 0098 movew %a2@(152),%d0 <== NOT EXECUTED 4779c: c081 andl %d1,%d0 <== NOT EXECUTED 4779e: 33c0 0005 6d58 movew %d0,56d58 <_Priority_Major_bit_map> <== NOT EXECUTED 477a4: 600c bras 477b2 <_Thread_Suspend+0x82> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 477a6: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 477a8: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED next->previous = previous; previous->next = next; 477ac: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 477ae: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED _Priority_Remove_from_bit_map( &the_thread->Priority_map ); } else _Chain_Extract_unprotected( &the_thread->Object.Node ); _ISR_Flash( level ); 477b2: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 477b8: 46c2 movew %d2,%sr <== NOT EXECUTED 477ba: 8082 orl %d2,%d0 <== NOT EXECUTED 477bc: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( the_thread ) ) 477be: b5f9 0005 6d32 cmpal 56d32 <_Thread_Heir>,%a2 <== NOT EXECUTED 477c4: 663e bnes 47804 <_Thread_Suspend+0xd4> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Priority_Control _Priority_Get_highest( void ) { Priority_Bit_map_control minor; Priority_Bit_map_control major; _Bitfield_Find_first_bit( _Priority_Major_bit_map, major ); 477c6: 3039 0005 6d58 movew 56d58 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 477cc: 4840 swap %d0 <== NOT EXECUTED 477ce: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 477d0: 41f9 0005 6dc8 lea 56dc8 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 477d6: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 477dc: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 477e0: 4841 swap %d1 <== NOT EXECUTED 477e2: 04c1 ff1 %d1 <== NOT EXECUTED 477e4: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 477ea: e988 lsll #4,%d0 <== NOT EXECUTED 477ec: d081 addl %d1,%d0 <== NOT EXECUTED 477ee: 2079 0005 6c50 moveal 56c50 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 477f4: 2200 movel %d0,%d1 <== NOT EXECUTED 477f6: e588 lsll #2,%d0 <== NOT EXECUTED 477f8: e989 lsll #4,%d1 <== NOT EXECUTED 477fa: 91c0 subal %d0,%a0 <== NOT EXECUTED 477fc: d1c1 addal %d1,%a0 <== NOT EXECUTED 477fe: 23d0 0005 6d32 movel %a0@,56d32 <_Thread_Heir> <== NOT EXECUTED _Thread_Calculate_heir(); if ( _Thread_Is_executing( the_thread ) ) 47804: b5f9 0005 6d62 cmpal 56d62 <_Thread_Executing>,%a2 <== NOT EXECUTED 4780a: 6608 bnes 47814 <_Thread_Suspend+0xe4> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 4780c: 7201 moveq #1,%d1 <== NOT EXECUTED 4780e: 13c1 0005 6d72 moveb %d1,56d72 <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 47814: 46c2 movew %d2,%sr <== NOT EXECUTED } 47816: 241f movel %sp@+,%d2 <== NOT EXECUTED 47818: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4781a: 4e5e unlk %fp <== NOT EXECUTED 4781c: 4e75 rts <== NOT EXECUTED ... 00047820 <_Thread_Tickle_timeslice>: * * Output parameters: NONE */ void _Thread_Tickle_timeslice( void ) { 47820: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47824: 2f0a movel %a2,%sp@- <== NOT EXECUTED Thread_Control *executing; executing = _Thread_Executing; 47826: 2479 0005 6d62 moveal 56d62 <_Thread_Executing>,%a2 <== NOT EXECUTED /* * If the thread is not preemptible or is not ready, then * just return. */ if ( !executing->is_preemptible ) 4782c: 4a2a 0076 tstb %a2@(118) <== NOT EXECUTED 47830: 6756 beqs 47888 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED return; if ( !_States_Is_ready( executing->current_state ) ) 47832: 4aaa 0010 tstl %a2@(16) <== NOT EXECUTED 47836: 6650 bnes 47888 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED /* * The cpu budget algorithm determines what happens next. */ switch ( executing->budget_algorithm ) { 47838: 202a 007c movel %a2@(124),%d0 <== NOT EXECUTED 4783c: 7201 moveq #1,%d1 <== NOT EXECUTED 4783e: b280 cmpl %d0,%d1 <== NOT EXECUTED 47840: 6246 bhis 47888 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED 47842: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 47846: b280 cmpl %d0,%d1 <== NOT EXECUTED 47848: 640a bccs 47854 <_Thread_Tickle_timeslice+0x34> <== NOT EXECUTED 4784a: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 4784e: b280 cmpl %d0,%d1 <== NOT EXECUTED 47850: 6636 bnes 47888 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED 47852: 601e bras 47872 <_Thread_Tickle_timeslice+0x52> <== NOT EXECUTED case THREAD_CPU_BUDGET_ALGORITHM_NONE: break; case THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE: case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE: if ( (int)(--executing->cpu_time_budget) <= 0 ) { 47854: 202a 0078 movel %a2@(120),%d0 <== NOT EXECUTED 47858: 5380 subql #1,%d0 <== NOT EXECUTED 4785a: 2540 0078 movel %d0,%a2@(120) <== NOT EXECUTED 4785e: 6e28 bgts 47888 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED _Thread_Reset_timeslice(); 47860: 4eb9 0004 a240 jsr 4a240 <_Thread_Reset_timeslice> <== NOT EXECUTED executing->cpu_time_budget = _Thread_Ticks_per_timeslice; 47866: 41f9 0005 6c54 lea 56c54 <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED 4786c: 2550 0078 movel %a0@,%a2@(120) <== NOT EXECUTED 47870: 6016 bras 47888 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED } break; case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT: if ( --executing->cpu_time_budget == 0 ) 47872: 202a 0078 movel %a2@(120),%d0 <== NOT EXECUTED 47876: 5380 subql #1,%d0 <== NOT EXECUTED 47878: 2540 0078 movel %d0,%a2@(120) <== NOT EXECUTED 4787c: 660a bnes 47888 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED (*executing->budget_callout)( executing ); 4787e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47880: 206a 0080 moveal %a2@(128),%a0 <== NOT EXECUTED 47884: 4e90 jsr %a0@ <== NOT EXECUTED 47886: 588f addql #4,%sp <== NOT EXECUTED break; } } 47888: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4788c: 4e5e unlk %fp <== NOT EXECUTED 4788e: 4e75 rts 00047890 <_Thread_Yield_processor>: * ready chain * select heir */ void _Thread_Yield_processor( void ) { 47890: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 47894: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; 47898: 2479 0005 6d62 moveal 56d62 <_Thread_Executing>,%a2 <== NOT EXECUTED ready = executing->ready; _ISR_Disable( level ); 4789e: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; ready = executing->ready; 478a4: 266a 008c moveal %a2@(140),%a3 <== NOT EXECUTED _ISR_Disable( level ); 478a8: 2002 movel %d2,%d0 <== NOT EXECUTED 478aa: 40c1 movew %sr,%d1 <== NOT EXECUTED 478ac: 8081 orl %d1,%d0 <== NOT EXECUTED 478ae: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_Chain_Has_only_one_node( ready ) ) { 478b0: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 478b4: b093 cmpl %a3@,%d0 <== NOT EXECUTED 478b6: 6738 beqs 478f0 <_Thread_Yield_processor+0x60> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 478b8: 2052 moveal %a2@,%a0 <== NOT EXECUTED previous = the_node->previous; 478ba: 226a 0004 moveal %a2@(4),%a1 <== NOT EXECUTED next->previous = previous; previous->next = next; 478be: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 478c0: 200b movel %a3,%d0 <== NOT EXECUTED 478c2: 5880 addql #4,%d0 <== NOT EXECUTED 478c4: 2480 movel %d0,%a2@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 478c6: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; 478ca: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 478ce: 274a 0008 movel %a2,%a3@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 478d2: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; the_chain->last = the_node; old_last_node->next = the_node; 478d6: 208a movel %a2,%a0@ <== NOT EXECUTED _Chain_Extract_unprotected( &executing->Object.Node ); _Chain_Append_unprotected( ready, &executing->Object.Node ); _ISR_Flash( level ); 478d8: 2002 movel %d2,%d0 <== NOT EXECUTED 478da: 46c1 movew %d1,%sr <== NOT EXECUTED 478dc: 8081 orl %d1,%d0 <== NOT EXECUTED 478de: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( executing ) ) 478e0: b5f9 0005 6d32 cmpal 56d32 <_Thread_Heir>,%a2 <== NOT EXECUTED 478e6: 6610 bnes 478f8 <_Thread_Yield_processor+0x68> <== NOT EXECUTED _Thread_Heir = (Thread_Control *) ready->first; 478e8: 23d3 0005 6d32 movel %a3@,56d32 <_Thread_Heir> <== NOT EXECUTED 478ee: 6008 bras 478f8 <_Thread_Yield_processor+0x68> <== NOT EXECUTED _Context_Switch_necessary = TRUE; } else if ( !_Thread_Is_heir( executing ) ) 478f0: b5f9 0005 6d32 cmpal 56d32 <_Thread_Heir>,%a2 <== NOT EXECUTED 478f6: 6708 beqs 47900 <_Thread_Yield_processor+0x70> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 478f8: 7001 moveq #1,%d0 <== NOT EXECUTED 478fa: 13c0 0005 6d72 moveb %d0,56d72 <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 47900: 46c1 movew %d1,%sr <== NOT EXECUTED } 47902: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 47906: 4e5e unlk %fp <== NOT EXECUTED 47908: 4e75 rts <== NOT EXECUTED ... 000466f8 <_Thread_blocking_operation_Cancel>: void _Thread_blocking_operation_Cancel( Thread_blocking_operation_States sync_state, Thread_Control *the_thread, ISR_Level level ) { 466f8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 466fc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 466fe: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 46702: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED #endif /* * The thread is not waiting on anything after this completes. */ the_thread->Wait.queue = NULL; 46706: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED /* * If the sync state is timed out, this is very likely not needed. * But better safe than sorry when it comes to critical sections. */ if ( _Watchdog_Is_active( &the_thread->Timer ) ) { 4670a: 7202 moveq #2,%d1 <== NOT EXECUTED 4670c: b2aa 0050 cmpl %a2@(80),%d1 <== NOT EXECUTED 46710: 6618 bnes 4672a <_Thread_blocking_operation_Cancel+0x32> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 46712: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 46716: 2541 0050 movel %d1,%a2@(80) <== NOT EXECUTED _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 4671a: 46c0 movew %d0,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4671c: 486a 0048 pea %a2@(72) <== NOT EXECUTED 46720: 4eb9 0004 7ce0 jsr 47ce0 <_Watchdog_Remove> <== NOT EXECUTED 46726: 588f addql #4,%sp <== NOT EXECUTED 46728: 6002 bras 4672c <_Thread_blocking_operation_Cancel+0x34> <== NOT EXECUTED } else _ISR_Enable( level ); 4672a: 46c0 movew %d0,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 4672c: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( !_Objects_Is_local_id( the_thread->Object.id ) ) _Thread_MP_Free_proxy( the_thread ); #endif } 46730: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46734: 203c 1003 fff8 movel #268697592,%d0 <== NOT EXECUTED 4673a: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 4673e: 4e5e unlk %fp <== NOT EXECUTED 46740: 4ef9 0004 688c jmp 4688c <_Thread_Clear_state> <== NOT EXECUTED ... 00046f70 <_Thread_queue_Dequeue>: */ Thread_Control *_Thread_queue_Dequeue( Thread_queue_Control *the_thread_queue ) { 46f70: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 46f74: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 46f78: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Thread_Control *(*dequeue_p)( Thread_queue_Control * ); Thread_Control *the_thread; ISR_Level level; Thread_blocking_operation_States sync_state; if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) 46f7c: 41f9 0004 6fd0 lea 46fd0 <_Thread_queue_Dequeue_priority>,%a0 <== NOT EXECUTED 46f82: 7001 moveq #1,%d0 <== NOT EXECUTED 46f84: b0aa 0034 cmpl %a2@(52),%d0 <== NOT EXECUTED 46f88: 6706 beqs 46f90 <_Thread_queue_Dequeue+0x20> <== NOT EXECUTED 46f8a: 41f9 0004 9f58 lea 49f58 <_Thread_queue_Dequeue_fifo>,%a0 <== NOT EXECUTED dequeue_p = _Thread_queue_Dequeue_priority; else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */ dequeue_p = _Thread_queue_Dequeue_fifo; the_thread = (*dequeue_p)( the_thread_queue ); 46f90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46f92: 4e90 jsr %a0@ <== NOT EXECUTED 46f94: 2200 movel %d0,%d1 <== NOT EXECUTED _ISR_Disable( level ); 46f96: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 46f9c: 40c2 movew %sr,%d2 <== NOT EXECUTED 46f9e: 8082 orl %d2,%d0 <== NOT EXECUTED 46fa0: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !the_thread ) { 46fa2: 588f addql #4,%sp <== NOT EXECUTED 46fa4: 4a81 tstl %d1 <== NOT EXECUTED 46fa6: 6618 bnes 46fc0 <_Thread_queue_Dequeue+0x50> <== NOT EXECUTED sync_state = the_thread_queue->sync_state; if ( (sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) || 46fa8: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 46fac: 7601 moveq #1,%d3 <== NOT EXECUTED 46fae: 5380 subql #1,%d0 <== NOT EXECUTED 46fb0: b680 cmpl %d0,%d3 <== NOT EXECUTED 46fb2: 650c bcss 46fc0 <_Thread_queue_Dequeue+0x50> <== NOT EXECUTED (sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ) { the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SATISFIED; the_thread = _Thread_Executing; 46fb4: 2239 0005 6d62 movel 56d62 <_Thread_Executing>,%d1 <== NOT EXECUTED _ISR_Disable( level ); if ( !the_thread ) { sync_state = the_thread_queue->sync_state; if ( (sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) || (sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ) { the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SATISFIED; 46fba: 7003 moveq #3,%d0 <== NOT EXECUTED 46fbc: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED the_thread = _Thread_Executing; } } _ISR_Enable( level ); 46fc0: 46c2 movew %d2,%sr <== NOT EXECUTED return the_thread; } 46fc2: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 46fc8: 4e5e unlk %fp <== NOT EXECUTED 46fca: 2001 movel %d1,%d0 <== NOT EXECUTED 46fcc: 4e75 rts <== NOT EXECUTED ... 00049f58 <_Thread_queue_Dequeue_fifo>: */ Thread_Control *_Thread_queue_Dequeue_fifo( Thread_queue_Control *the_thread_queue ) { 49f58: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 49f5c: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED ISR_Level level; Thread_Control *the_thread; _ISR_Disable( level ); 49f60: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Thread_Control *_Thread_queue_Dequeue_fifo( Thread_queue_Control *the_thread_queue ) { 49f66: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED ISR_Level level; Thread_Control *the_thread; _ISR_Disable( level ); 49f6a: 40c1 movew %sr,%d1 <== NOT EXECUTED 49f6c: 8081 orl %d1,%d0 <== NOT EXECUTED 49f6e: 46c0 movew %d0,%sr <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 49f70: 2049 moveal %a1,%a0 <== NOT EXECUTED 49f72: 2458 moveal %a0@+,%a2 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) { 49f74: b1ca cmpal %a2,%a0 <== NOT EXECUTED 49f76: 6750 beqs 49fc8 <_Thread_queue_Dequeue_fifo+0x70> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 49f78: 2052 moveal %a2@,%a0 <== NOT EXECUTED the_chain->first = new_first; 49f7a: 2288 movel %a0,%a1@ <== NOT EXECUTED the_thread = (Thread_Control *) 49f7c: 264a moveal %a2,%a3 <== NOT EXECUTED 49f7e: 49f9 0004 688c lea 4688c <_Thread_Clear_state>,%a4 <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 49f84: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED _Chain_Get_first_unprotected( &the_thread_queue->Queues.Fifo ); the_thread->Wait.queue = NULL; if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 49f88: 7002 moveq #2,%d0 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) { the_thread = (Thread_Control *) _Chain_Get_first_unprotected( &the_thread_queue->Queues.Fifo ); the_thread->Wait.queue = NULL; 49f8a: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 49f8e: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 49f92: 6710 beqs 49fa4 <_Thread_queue_Dequeue_fifo+0x4c> <== NOT EXECUTED _ISR_Enable( level ); 49f94: 46c1 movew %d1,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 49f96: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 49f9c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49f9e: 4e94 jsr %a4@ <== NOT EXECUTED 49fa0: 508f addql #8,%sp <== NOT EXECUTED 49fa2: 6028 bras 49fcc <_Thread_queue_Dequeue_fifo+0x74> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 49fa4: 7003 moveq #3,%d0 <== NOT EXECUTED 49fa6: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED _Thread_Unblock( the_thread ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 49faa: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 49fac: 486a 0048 pea %a2@(72) <== NOT EXECUTED 49fb0: 4eb9 0004 7ce0 jsr 47ce0 <_Watchdog_Remove> <== NOT EXECUTED 49fb6: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 49fbc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49fbe: 4e94 jsr %a4@ <== NOT EXECUTED 49fc0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49fc6: 6004 bras 49fcc <_Thread_queue_Dequeue_fifo+0x74> <== NOT EXECUTED #endif return the_thread; } _ISR_Enable( level ); 49fc8: 46c1 movew %d1,%sr <== NOT EXECUTED 49fca: 97cb subal %a3,%a3 <== NOT EXECUTED return NULL; } 49fcc: 200b movel %a3,%d0 <== NOT EXECUTED 49fce: 4cee 1c00 fff4 moveml %fp@(-12),%a2-%a4 <== NOT EXECUTED 49fd4: 4e5e unlk %fp <== NOT EXECUTED 49fd6: 4e75 rts 00046fd0 <_Thread_queue_Dequeue_priority>: */ Thread_Control *_Thread_queue_Dequeue_priority( Thread_queue_Control *the_thread_queue ) { 46fd0: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 46fd4: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED Chain_Node *new_second_node; Chain_Node *last_node; Chain_Node *next_node; Chain_Node *previous_node; _ISR_Disable( level ); 46fd8: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Thread_Control *_Thread_queue_Dequeue_priority( Thread_queue_Control *the_thread_queue ) { 46fde: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED Chain_Node *new_second_node; Chain_Node *last_node; Chain_Node *next_node; Chain_Node *previous_node; _ISR_Disable( level ); 46fe2: 40c1 movew %sr,%d1 <== NOT EXECUTED 46fe4: 8081 orl %d1,%d0 <== NOT EXECUTED 46fe6: 46c0 movew %d0,%sr <== NOT EXECUTED 46fe8: 93c9 subal %a1,%a1 <== NOT EXECUTED 46fea: 264c moveal %a4,%a3 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 46fec: 2453 moveal %a3@,%a2 <== NOT EXECUTED for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; index++ ) { if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) { 46fee: 41f1 9a01 lea %a1@(00000001,%a1:l:2),%a0 <== NOT EXECUTED Chain_Node *previous_node; _ISR_Disable( level ); for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; index++ ) { 46ff2: d7fc 0000 000c addal #12,%a3 <== NOT EXECUTED 46ff8: 5289 addql #1,%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) { 46ffa: 41f4 8c00 lea %a4@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 46ffe: b1ca cmpal %a2,%a0 <== NOT EXECUTED 47000: 671e beqs 47020 <_Thread_queue_Dequeue_priority+0x50> <== NOT EXECUTED _ISR_Enable( level ); return NULL; dequeue: the_thread->Wait.queue = NULL; new_first_node = the_thread->Wait.Block2n.first; 47002: 206a 0038 moveal %a2@(56),%a0 <== NOT EXECUTED new_first_thread = (Thread_Control *) new_first_node; next_node = the_thread->Object.Node.next; 47006: 2652 moveal %a2@,%a3 <== NOT EXECUTED previous_node = the_thread->Object.Node.previous; 47008: 226a 0004 moveal %a2@(4),%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { 4700c: 200a movel %a2,%d0 <== NOT EXECUTED */ _ISR_Enable( level ); return NULL; dequeue: the_thread->Wait.queue = NULL; 4700e: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED _ISR_Disable( level ); for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; index++ ) { if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) { the_thread = (Thread_Control *) 47012: 240a movel %a2,%d2 <== NOT EXECUTED new_first_node = the_thread->Wait.Block2n.first; new_first_thread = (Thread_Control *) new_first_node; next_node = the_thread->Object.Node.next; previous_node = the_thread->Object.Node.previous; if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { 47014: 0680 0000 003c addil #60,%d0 <== NOT EXECUTED 4701a: b088 cmpl %a0,%d0 <== NOT EXECUTED 4701c: 660e bnes 4702c <_Thread_queue_Dequeue_priority+0x5c> <== NOT EXECUTED 4701e: 6042 bras 47062 <_Thread_queue_Dequeue_priority+0x92> <== NOT EXECUTED Chain_Node *next_node; Chain_Node *previous_node; _ISR_Disable( level ); for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; 47020: 7004 moveq #4,%d0 <== NOT EXECUTED 47022: b089 cmpl %a1,%d0 <== NOT EXECUTED 47024: 66c6 bnes 46fec <_Thread_queue_Dequeue_priority+0x1c> <== NOT EXECUTED } /* * We did not find a thread to unblock. */ _ISR_Enable( level ); 47026: 46c1 movew %d1,%sr <== NOT EXECUTED 47028: 4282 clrl %d2 <== NOT EXECUTED 4702a: 607c bras 470a8 <_Thread_queue_Dequeue_priority+0xd8> <== NOT EXECUTED new_first_thread = (Thread_Control *) new_first_node; next_node = the_thread->Object.Node.next; previous_node = the_thread->Object.Node.previous; if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { last_node = the_thread->Wait.Block2n.last; 4702c: 2a6a 0040 moveal %a2@(64),%a5 <== NOT EXECUTED new_second_node = new_first_node->next; 47030: 2850 moveal %a0@,%a4 <== NOT EXECUTED previous_node->next = new_first_node; next_node->previous = new_first_node; 47032: 2748 0004 movel %a0,%a3@(4) <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { last_node = the_thread->Wait.Block2n.last; new_second_node = new_first_node->next; previous_node->next = new_first_node; 47036: 2288 movel %a0,%a1@ <== NOT EXECUTED next_node->previous = new_first_node; new_first_node->next = next_node; new_first_node->previous = previous_node; 47038: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED last_node = the_thread->Wait.Block2n.last; new_second_node = new_first_node->next; previous_node->next = new_first_node; next_node->previous = new_first_node; new_first_node->next = next_node; 4703c: 208b movel %a3,%a0@ <== NOT EXECUTED new_first_node->previous = previous_node; if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) { 4703e: 226a 0040 moveal %a2@(64),%a1 <== NOT EXECUTED 47042: b3ea 0038 cmpal %a2@(56),%a1 <== NOT EXECUTED 47046: 6720 beqs 47068 <_Thread_queue_Dequeue_priority+0x98> <== NOT EXECUTED /* > two threads on 2-n */ new_second_node->previous = 47048: 43e8 0038 lea %a0@(56),%a1 <== NOT EXECUTED 4704c: 2949 0004 movel %a1,%a4@(4) <== NOT EXECUTED _Chain_Head( &new_first_thread->Wait.Block2n ); new_first_thread->Wait.Block2n.first = new_second_node; 47050: 214c 0038 movel %a4,%a0@(56) <== NOT EXECUTED new_first_thread->Wait.Block2n.last = last_node; 47054: 214d 0040 movel %a5,%a0@(64) <== NOT EXECUTED last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); 47058: d1fc 0000 003c addal #60,%a0 <== NOT EXECUTED 4705e: 2a88 movel %a0,%a5@ <== NOT EXECUTED 47060: 6006 bras 47068 <_Thread_queue_Dequeue_priority+0x98> <== NOT EXECUTED } } else { previous_node->next = next_node; next_node->previous = previous_node; 47062: 2749 0004 movel %a1,%a3@(4) <== NOT EXECUTED new_first_thread->Wait.Block2n.last = last_node; last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); } } else { previous_node->next = next_node; 47066: 228b movel %a3,%a1@ <== NOT EXECUTED 47068: 47f9 0004 688c lea 4688c <_Thread_Clear_state>,%a3 <== NOT EXECUTED next_node->previous = previous_node; } if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4706e: 7002 moveq #2,%d0 <== NOT EXECUTED 47070: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 47074: 6710 beqs 47086 <_Thread_queue_Dequeue_priority+0xb6> <== NOT EXECUTED _ISR_Enable( level ); 47076: 46c1 movew %d1,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 47078: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 4707e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47080: 4e93 jsr %a3@ <== NOT EXECUTED 47082: 508f addql #8,%sp <== NOT EXECUTED 47084: 6022 bras 470a8 <_Thread_queue_Dequeue_priority+0xd8> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 47086: 7003 moveq #3,%d0 <== NOT EXECUTED 47088: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED _Thread_Unblock( the_thread ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 4708c: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4708e: 486a 0048 pea %a2@(72) <== NOT EXECUTED 47092: 4eb9 0004 7ce0 jsr 47ce0 <_Watchdog_Remove> <== NOT EXECUTED 47098: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 4709e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 470a0: 4e93 jsr %a3@ <== NOT EXECUTED 470a2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( !_Objects_Is_local_id( the_thread->Object.id ) ) _Thread_MP_Free_proxy( the_thread ); #endif return( the_thread ); } 470a8: 2002 movel %d2,%d0 <== NOT EXECUTED 470aa: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 470b0: 4e5e unlk %fp <== NOT EXECUTED 470b2: 4e75 rts 00049fd8 <_Thread_queue_Enqueue_fifo>: Thread_blocking_operation_States _Thread_queue_Enqueue_fifo ( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, ISR_Level *level_p ) { 49fd8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49fdc: 2f0a movel %a2,%sp@- <== NOT EXECUTED Thread_blocking_operation_States sync_state; ISR_Level level; _ISR_Disable( level ); 49fde: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED Thread_blocking_operation_States _Thread_queue_Enqueue_fifo ( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, ISR_Level *level_p ) { 49fe4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49fe6: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 49fea: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Thread_blocking_operation_States sync_state; ISR_Level level; _ISR_Disable( level ); 49fee: 40c1 movew %sr,%d1 <== NOT EXECUTED 49ff0: 8081 orl %d1,%d0 <== NOT EXECUTED 49ff2: 46c0 movew %d0,%sr <== NOT EXECUTED sync_state = the_thread_queue->sync_state; 49ff4: 2029 0030 movel %a1@(48),%d0 <== NOT EXECUTED the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; if (sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) { 49ff8: 7401 moveq #1,%d2 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); sync_state = the_thread_queue->sync_state; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 49ffa: 42a9 0030 clrl %a1@(48) <== NOT EXECUTED if (sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) { 49ffe: b480 cmpl %d0,%d2 <== NOT EXECUTED 4a000: 661c bnes 4a01e <_Thread_queue_Enqueue_fifo+0x46> <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4a002: 2049 moveal %a1,%a0 <== NOT EXECUTED 4a004: 5888 addql #4,%a0 <== NOT EXECUTED 4a006: 2488 movel %a0,%a2@ <== NOT EXECUTED old_last_node = the_chain->last; 4a008: 2069 0008 moveal %a1@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 4a00c: 234a 0008 movel %a2,%a1@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4a010: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED _Chain_Append_unprotected( &the_thread_queue->Queues.Fifo, &the_thread->Object.Node ); the_thread->Wait.queue = the_thread_queue; 4a014: 2549 0044 movel %a1,%a2@(68) <== NOT EXECUTED Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; the_chain->last = the_node; old_last_node->next = the_node; 4a018: 208a movel %a2,%a0@ <== NOT EXECUTED the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; _ISR_Enable( level ); 4a01a: 46c1 movew %d1,%sr <== NOT EXECUTED 4a01c: 6006 bras 4a024 <_Thread_queue_Enqueue_fifo+0x4c> <== NOT EXECUTED * For example, the blocking thread could have been given * the mutex by an ISR or timed out. * * WARNING! Returning with interrupts disabled! */ *level_p = level; 4a01e: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 4a022: 2081 movel %d1,%a0@ <== NOT EXECUTED return sync_state; } 4a024: 241f movel %sp@+,%d2 <== NOT EXECUTED 4a026: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4a028: 4e5e unlk %fp <== NOT EXECUTED 4a02a: 4e75 rts 00047150 <_Thread_queue_Enqueue_priority>: Thread_blocking_operation_States _Thread_queue_Enqueue_priority ( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, ISR_Level *level_p ) { 47150: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 47154: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 47158: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Priority_Control priority; States_Control block_state; _Chain_Initialize_empty( &the_thread->Wait.Block2n ); priority = the_thread->current_priority; 4715c: 282a 0014 movel %a2@(20),%d4 <== NOT EXECUTED Thread_blocking_operation_States _Thread_queue_Enqueue_priority ( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, ISR_Level *level_p ) { 47160: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED RTEMS_INLINE_ROUTINE uint32_t _Thread_queue_Header_number ( Priority_Control the_priority ) { return (the_priority / TASK_QUEUE_DATA_PRIORITIES_PER_HEADER); 47164: 2404 movel %d4,%d2 <== NOT EXECUTED 47166: ec8a lsrl #6,%d2 <== NOT EXECUTED _Chain_Initialize_empty( &the_thread->Wait.Block2n ); priority = the_thread->current_priority; header_index = _Thread_queue_Header_number( priority ); header = &the_thread_queue->Queues.Priority[ header_index ]; 47168: 2002 movel %d2,%d0 <== NOT EXECUTED 4716a: 2202 movel %d2,%d1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4716c: 41ea 003c lea %a2@(60),%a0 <== NOT EXECUTED 47170: e588 lsll #2,%d0 <== NOT EXECUTED 47172: e989 lsll #4,%d1 <== NOT EXECUTED block_state = the_thread_queue->state; 47174: 2a2b 0038 movel %a3@(56),%d5 <== NOT EXECUTED 47178: 2548 0038 movel %a0,%a2@(56) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4717c: 43ea 0038 lea %a2@(56),%a1 <== NOT EXECUTED _Chain_Initialize_empty( &the_thread->Wait.Block2n ); priority = the_thread->current_priority; header_index = _Thread_queue_Header_number( priority ); header = &the_thread_queue->Queues.Priority[ header_index ]; 47180: 9280 subl %d0,%d1 <== NOT EXECUTED 47182: 2549 0040 movel %a1,%a2@(64) <== NOT EXECUTED 47186: 41f3 1800 lea %a3@(00000000,%d1:l),%a0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 4718a: 42aa 003c clrl %a2@(60) <== NOT EXECUTED block_state = the_thread_queue->state; if ( _Thread_queue_Is_reverse_search( priority ) ) 4718e: 0804 0005 btst #5,%d4 <== NOT EXECUTED 47192: 6674 bnes 47208 <_Thread_queue_Enqueue_priority+0xb8> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 47194: 2242 moveal %d2,%a1 <== NOT EXECUTED 47196: 41f1 2a01 lea %a1@(00000001,%d2:l:2),%a0 <== NOT EXECUTED 4719a: 49f3 8c00 lea %a3@(00000000,%a0:l:4),%a4 <== NOT EXECUTED goto restart_reverse_search; restart_forward_search: search_priority = PRIORITY_MINIMUM - 1; _ISR_Disable( level ); search_thread = (Thread_Control *) header->first; 4719e: 2041 moveal %d1,%a0 <== NOT EXECUTED if ( _Thread_queue_Is_reverse_search( priority ) ) goto restart_reverse_search; restart_forward_search: search_priority = PRIORITY_MINIMUM - 1; _ISR_Disable( level ); 471a0: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED 471a6: 2002 movel %d2,%d0 <== NOT EXECUTED 471a8: 40c3 movew %sr,%d3 <== NOT EXECUTED 471aa: 8083 orl %d3,%d0 <== NOT EXECUTED 471ac: 46c0 movew %d0,%sr <== NOT EXECUTED search_thread = (Thread_Control *) header->first; 471ae: 72ff moveq #-1,%d1 <== NOT EXECUTED 471b0: 2270 b800 moveal %a0@(00000000,%a3:l),%a1 <== NOT EXECUTED 471b4: 601e bras 471d4 <_Thread_queue_Enqueue_priority+0x84> <== NOT EXECUTED while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) { search_priority = search_thread->current_priority; 471b6: 2229 0014 movel %a1@(20),%d1 <== NOT EXECUTED if ( priority <= search_priority ) 471ba: b284 cmpl %d4,%d1 <== NOT EXECUTED 471bc: 641a bccs 471d8 <_Thread_queue_Enqueue_priority+0x88> <== NOT EXECUTED break; search_priority = search_thread->current_priority; if ( priority <= search_priority ) break; #endif _ISR_Flash( level ); 471be: 2002 movel %d2,%d0 <== NOT EXECUTED 471c0: 46c3 movew %d3,%sr <== NOT EXECUTED 471c2: 8083 orl %d3,%d0 <== NOT EXECUTED 471c4: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Are_set( search_thread->current_state, block_state) ) { 471c6: 2005 movel %d5,%d0 <== NOT EXECUTED 471c8: c0a9 0010 andl %a1@(16),%d0 <== NOT EXECUTED 471cc: 6604 bnes 471d2 <_Thread_queue_Enqueue_priority+0x82> <== NOT EXECUTED _ISR_Enable( level ); 471ce: 46c3 movew %d3,%sr <== NOT EXECUTED 471d0: 60d4 bras 471a6 <_Thread_queue_Enqueue_priority+0x56> <== NOT EXECUTED goto restart_forward_search; } search_thread = 471d2: 2251 moveal %a1@,%a1 <== NOT EXECUTED restart_forward_search: search_priority = PRIORITY_MINIMUM - 1; _ISR_Disable( level ); search_thread = (Thread_Control *) header->first; while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) { 471d4: b9c9 cmpal %a1,%a4 <== NOT EXECUTED 471d6: 66de bnes 471b6 <_Thread_queue_Enqueue_priority+0x66> <== NOT EXECUTED 471d8: 2009 movel %a1,%d0 <== NOT EXECUTED 471da: 2403 movel %d3,%d2 <== NOT EXECUTED } search_thread = (Thread_Control *)search_thread->Object.Node.next; } if ( the_thread_queue->sync_state != 471dc: 7a01 moveq #1,%d5 <== NOT EXECUTED 471de: baab 0030 cmpl %a3@(48),%d5 <== NOT EXECUTED 471e2: 6600 00b6 bnew 4729a <_Thread_queue_Enqueue_priority+0x14a> <== NOT EXECUTED THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) goto synchronize; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 471e6: 42ab 0030 clrl %a3@(48) <== NOT EXECUTED if ( priority == search_priority ) 471ea: b284 cmpl %d4,%d1 <== NOT EXECUTED 471ec: 6700 008c beqw 4727a <_Thread_queue_Enqueue_priority+0x12a> <== NOT EXECUTED goto equal_priority; search_node = (Chain_Node *) search_thread; previous_node = search_node->previous; 471f0: 2069 0004 moveal %a1@(4),%a0 <== NOT EXECUTED the_node = (Chain_Node *) the_thread; the_node->next = search_node; 471f4: 2489 movel %a1,%a2@ <== NOT EXECUTED the_node->previous = previous_node; 471f6: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED previous_node->next = the_node; search_node->previous = the_node; the_thread->Wait.queue = the_thread_queue; 471fa: 254b 0044 movel %a3,%a2@(68) <== NOT EXECUTED previous_node = search_node->previous; the_node = (Chain_Node *) the_thread; the_node->next = search_node; the_node->previous = previous_node; previous_node->next = the_node; 471fe: 208a movel %a2,%a0@ <== NOT EXECUTED search_node->previous = the_node; 47200: 234a 0004 movel %a2,%a1@(4) <== NOT EXECUTED the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 47204: 46c3 movew %d3,%sr <== NOT EXECUTED 47206: 606e bras 47276 <_Thread_queue_Enqueue_priority+0x126> <== NOT EXECUTED return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; restart_reverse_search: search_priority = PRIORITY_MAXIMUM + 1; _ISR_Disable( level ); 47208: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED search_thread = (Thread_Control *) header->last; 4720e: 49e8 0008 lea %a0@(8),%a4 <== NOT EXECUTED the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; restart_reverse_search: search_priority = PRIORITY_MAXIMUM + 1; 47212: 4280 clrl %d0 <== NOT EXECUTED 47214: 1039 0005 5192 moveb 55192 ,%d0 <== NOT EXECUTED 4721a: 2200 movel %d0,%d1 <== NOT EXECUTED 4721c: 5281 addql #1,%d1 <== NOT EXECUTED _ISR_Disable( level ); 4721e: 2002 movel %d2,%d0 <== NOT EXECUTED 47220: 40c3 movew %sr,%d3 <== NOT EXECUTED 47222: 8083 orl %d3,%d0 <== NOT EXECUTED 47224: 46c0 movew %d0,%sr <== NOT EXECUTED search_thread = (Thread_Control *) header->last; 47226: 2254 moveal %a4@,%a1 <== NOT EXECUTED 47228: 6020 bras 4724a <_Thread_queue_Enqueue_priority+0xfa> <== NOT EXECUTED while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) { search_priority = search_thread->current_priority; 4722a: 2229 0014 movel %a1@(20),%d1 <== NOT EXECUTED if ( priority >= search_priority ) 4722e: b284 cmpl %d4,%d1 <== NOT EXECUTED 47230: 631c blss 4724e <_Thread_queue_Enqueue_priority+0xfe> <== NOT EXECUTED break; search_priority = search_thread->current_priority; if ( priority >= search_priority ) break; #endif _ISR_Flash( level ); 47232: 2002 movel %d2,%d0 <== NOT EXECUTED 47234: 46c3 movew %d3,%sr <== NOT EXECUTED 47236: 8083 orl %d3,%d0 <== NOT EXECUTED 47238: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Are_set( search_thread->current_state, block_state) ) { 4723a: 2005 movel %d5,%d0 <== NOT EXECUTED 4723c: c0a9 0010 andl %a1@(16),%d0 <== NOT EXECUTED 47240: 6604 bnes 47246 <_Thread_queue_Enqueue_priority+0xf6> <== NOT EXECUTED _ISR_Enable( level ); 47242: 46c3 movew %d3,%sr <== NOT EXECUTED 47244: 60cc bras 47212 <_Thread_queue_Enqueue_priority+0xc2> <== NOT EXECUTED goto restart_reverse_search; } search_thread = (Thread_Control *) 47246: 2269 0004 moveal %a1@(4),%a1 <== NOT EXECUTED restart_reverse_search: search_priority = PRIORITY_MAXIMUM + 1; _ISR_Disable( level ); search_thread = (Thread_Control *) header->last; while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) { 4724a: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 4724c: 66dc bnes 4722a <_Thread_queue_Enqueue_priority+0xda> <== NOT EXECUTED 4724e: 2009 movel %a1,%d0 <== NOT EXECUTED 47250: 2403 movel %d3,%d2 <== NOT EXECUTED } search_thread = (Thread_Control *) search_thread->Object.Node.previous; } if ( the_thread_queue->sync_state != 47252: 7a01 moveq #1,%d5 <== NOT EXECUTED 47254: baab 0030 cmpl %a3@(48),%d5 <== NOT EXECUTED 47258: 6640 bnes 4729a <_Thread_queue_Enqueue_priority+0x14a> <== NOT EXECUTED THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) goto synchronize; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 4725a: 42ab 0030 clrl %a3@(48) <== NOT EXECUTED if ( priority == search_priority ) 4725e: b284 cmpl %d4,%d1 <== NOT EXECUTED 47260: 6718 beqs 4727a <_Thread_queue_Enqueue_priority+0x12a> <== NOT EXECUTED goto equal_priority; search_node = (Chain_Node *) search_thread; next_node = search_node->next; 47262: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_node = (Chain_Node *) the_thread; the_node->next = next_node; the_node->previous = search_node; 47264: 2549 0004 movel %a1,%a2@(4) <== NOT EXECUTED search_node = (Chain_Node *) search_thread; next_node = search_node->next; the_node = (Chain_Node *) the_thread; the_node->next = next_node; 47268: 2488 movel %a0,%a2@ <== NOT EXECUTED the_node->previous = search_node; search_node->next = the_node; next_node->previous = the_node; the_thread->Wait.queue = the_thread_queue; 4726a: 254b 0044 movel %a3,%a2@(68) <== NOT EXECUTED next_node = search_node->next; the_node = (Chain_Node *) the_thread; the_node->next = next_node; the_node->previous = search_node; search_node->next = the_node; 4726e: 228a movel %a2,%a1@ <== NOT EXECUTED next_node->previous = the_node; 47270: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 47274: 46c3 movew %d3,%sr <== NOT EXECUTED 47276: 7001 moveq #1,%d0 <== NOT EXECUTED 47278: 602a bras 472a4 <_Thread_queue_Enqueue_priority+0x154> <== NOT EXECUTED 4727a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4727c: d1fc 0000 003c addal #60,%a0 <== NOT EXECUTED return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; equal_priority: /* add at end of priority group */ search_node = _Chain_Tail( &search_thread->Wait.Block2n ); previous_node = search_node->previous; 47282: 2268 0004 moveal %a0@(4),%a1 <== NOT EXECUTED the_node = (Chain_Node *) the_thread; the_node->next = search_node; 47286: 2488 movel %a0,%a2@ <== NOT EXECUTED the_node->previous = previous_node; 47288: 2549 0004 movel %a1,%a2@(4) <== NOT EXECUTED previous_node->next = the_node; search_node->previous = the_node; the_thread->Wait.queue = the_thread_queue; 4728c: 254b 0044 movel %a3,%a2@(68) <== NOT EXECUTED previous_node = search_node->previous; the_node = (Chain_Node *) the_thread; the_node->next = search_node; the_node->previous = previous_node; previous_node->next = the_node; 47290: 228a movel %a2,%a1@ <== NOT EXECUTED search_node->previous = the_node; 47292: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 47296: 46c2 movew %d2,%sr <== NOT EXECUTED 47298: 60dc bras 47276 <_Thread_queue_Enqueue_priority+0x126> <== NOT EXECUTED * For example, the blocking thread could have been given * the mutex by an ISR or timed out. * * WARNING! Returning with interrupts disabled! */ *level_p = level; 4729a: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED return the_thread_queue->sync_state; 4729e: 202b 0030 movel %a3@(48),%d0 <== NOT EXECUTED * For example, the blocking thread could have been given * the mutex by an ISR or timed out. * * WARNING! Returning with interrupts disabled! */ *level_p = level; 472a2: 2082 movel %d2,%a0@ <== NOT EXECUTED return the_thread_queue->sync_state; } 472a4: 4cd7 1c3c moveml %sp@,%d2-%d5/%a2-%a4 <== NOT EXECUTED 472a8: 4e5e unlk %fp <== NOT EXECUTED 472aa: 4e75 rts 000470b4 <_Thread_queue_Enqueue_with_handler>: void _Thread_queue_Enqueue_with_handler( Thread_queue_Control *the_thread_queue, Watchdog_Interval timeout, Thread_queue_Timeout_callout handler ) { 470b4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 470b8: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 470bc: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED else #endif /* * Set the blocking state for this thread queue in the thread. */ _Thread_Set_state( the_thread, the_thread_queue->state ); 470c0: 2f2b 0038 movel %a3@(56),%sp@- <== NOT EXECUTED Thread_queue_Control *, Thread_Control *, ISR_Level * ); the_thread = _Thread_Executing; 470c4: 2479 0005 6d62 moveal 56d62 <_Thread_Executing>,%a2 <== NOT EXECUTED void _Thread_queue_Enqueue_with_handler( Thread_queue_Control *the_thread_queue, Watchdog_Interval timeout, Thread_queue_Timeout_callout handler ) { 470ca: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED else #endif /* * Set the blocking state for this thread queue in the thread. */ _Thread_Set_state( the_thread, the_thread_queue->state ); 470ce: 2f0a movel %a2,%sp@- <== NOT EXECUTED 470d0: 4eb9 0004 7490 jsr 47490 <_Thread_Set_state> <== NOT EXECUTED /* * If the thread wants to timeout, then schedule its timer. */ if ( timeout ) { 470d6: 508f addql #8,%sp <== NOT EXECUTED 470d8: 4a82 tstl %d2 <== NOT EXECUTED 470da: 672c beqs 47108 <_Thread_queue_Enqueue_with_handler+0x54> <== NOT EXECUTED _Watchdog_Initialize( 470dc: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 470e0: 256e 0010 0064 movel %fp@(16),%a2@(100) <== NOT EXECUTED the_watchdog->id = id; 470e6: 2540 0068 movel %d0,%a2@(104) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 470ea: 2542 0054 movel %d2,%a2@(84) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 470ee: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 470f2: 42aa 006c clrl %a2@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 470f6: 486a 0048 pea %a2@(72) <== NOT EXECUTED 470fa: 4879 0005 6d80 pea 56d80 <_Watchdog_Ticks_chain> <== NOT EXECUTED 47100: 4eb9 0004 7bc4 jsr 47bc4 <_Watchdog_Insert> <== NOT EXECUTED 47106: 508f addql #8,%sp <== NOT EXECUTED } /* * Now enqueue the thread per the discipline for this thread queue. */ if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) 47108: 41f9 0004 7150 lea 47150 <_Thread_queue_Enqueue_priority>,%a0 <== NOT EXECUTED 4710e: 7001 moveq #1,%d0 <== NOT EXECUTED 47110: b0ab 0034 cmpl %a3@(52),%d0 <== NOT EXECUTED 47114: 6706 beqs 4711c <_Thread_queue_Enqueue_with_handler+0x68> <== NOT EXECUTED 47116: 41f9 0004 9fd8 lea 49fd8 <_Thread_queue_Enqueue_fifo>,%a0 <== NOT EXECUTED enqueue_p = _Thread_queue_Enqueue_priority; else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */ enqueue_p = _Thread_queue_Enqueue_fifo; sync_state = (*enqueue_p)( the_thread_queue, the_thread, &level ); 4711c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 47120: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47122: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47124: 4e90 jsr %a0@ <== NOT EXECUTED if ( sync_state != THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) 47126: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4712c: 7201 moveq #1,%d1 <== NOT EXECUTED 4712e: b280 cmpl %d0,%d1 <== NOT EXECUTED 47130: 6714 beqs 47146 <_Thread_queue_Enqueue_with_handler+0x92> <== NOT EXECUTED _Thread_blocking_operation_Cancel( sync_state, the_thread, level ); 47132: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 47136: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47138: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4713a: 4eb9 0004 66f8 jsr 466f8 <_Thread_blocking_operation_Cancel> <== NOT EXECUTED 47140: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 47146: 4cee 0c04 fff0 moveml %fp@(-16),%d2/%a2-%a3 <== NOT EXECUTED 4714c: 4e5e unlk %fp <== NOT EXECUTED 4714e: 4e75 rts 0004a02c <_Thread_queue_Extract>: void _Thread_queue_Extract( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) { 4a02c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a030: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4a034: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED /* * Can not use indirect function pointer here since Extract priority * is a macro and the underlying methods do not have the same signature. */ if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) 4a038: 7201 moveq #1,%d1 <== NOT EXECUTED 4a03a: b2a8 0034 cmpl %a0@(52),%d1 <== NOT EXECUTED 4a03e: 6616 bnes 4a056 <_Thread_queue_Extract+0x2a> <== NOT EXECUTED _Thread_queue_Extract_priority( the_thread_queue, the_thread ); 4a040: 42a7 clrl %sp@- <== NOT EXECUTED 4a042: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a044: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4a046: 4eb9 0004 a068 jsr 4a068 <_Thread_queue_Extract_priority_helper> <== NOT EXECUTED 4a04c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */ _Thread_queue_Extract_fifo( the_thread_queue, the_thread ); } 4a052: 4e5e unlk %fp <== NOT EXECUTED 4a054: 4e75 rts <== NOT EXECUTED * is a macro and the underlying methods do not have the same signature. */ if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) _Thread_queue_Extract_priority( the_thread_queue, the_thread ); else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */ _Thread_queue_Extract_fifo( the_thread_queue, the_thread ); 4a056: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 4a05a: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 4a05e: 4e5e unlk %fp <== NOT EXECUTED * is a macro and the underlying methods do not have the same signature. */ if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) _Thread_queue_Extract_priority( the_thread_queue, the_thread ); else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */ _Thread_queue_Extract_fifo( the_thread_queue, the_thread ); 4a060: 4ef9 0004 ab94 jmp 4ab94 <_Thread_queue_Extract_fifo> <== NOT EXECUTED ... 0004ab94 <_Thread_queue_Extract_fifo>: void _Thread_queue_Extract_fifo( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) { 4ab94: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ab98: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ab9a: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4ab9e: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4aba4: 40c1 movew %sr,%d1 <== NOT EXECUTED 4aba6: 8081 orl %d1,%d0 <== NOT EXECUTED 4aba8: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { 4abaa: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4abae: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 4abb4: 660a bnes 4abc0 <_Thread_queue_Extract_fifo+0x2c> <== NOT EXECUTED _ISR_Enable( level ); 4abb6: 46c1 movew %d1,%sr <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( !_Objects_Is_local_id( the_thread->Object.id ) ) _Thread_MP_Free_proxy( the_thread ); #endif } 4abb8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4abbc: 4e5e unlk %fp <== NOT EXECUTED 4abbe: 4e75 rts <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 4abc0: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 4abc2: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED return; } _Chain_Extract_unprotected( &the_thread->Object.Node ); the_thread->Wait.queue = NULL; 4abc6: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4abca: 7002 moveq #2,%d0 <== NOT EXECUTED next->previous = previous; previous->next = next; 4abcc: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4abce: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED 4abd2: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4abd6: 6704 beqs 4abdc <_Thread_queue_Extract_fifo+0x48> <== NOT EXECUTED _ISR_Enable( level ); 4abd8: 46c1 movew %d1,%sr <== NOT EXECUTED 4abda: 6014 bras 4abf0 <_Thread_queue_Extract_fifo+0x5c> <== NOT EXECUTED 4abdc: 7003 moveq #3,%d0 <== NOT EXECUTED 4abde: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 4abe2: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4abe4: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4abe8: 4eb9 0004 7ce0 jsr 47ce0 <_Watchdog_Remove> <== NOT EXECUTED 4abee: 588f addql #4,%sp <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 4abf0: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( !_Objects_Is_local_id( the_thread->Object.id ) ) _Thread_MP_Free_proxy( the_thread ); #endif } 4abf4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4abf8: 203c 1003 fff8 movel #268697592,%d0 <== NOT EXECUTED 4abfe: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 4ac02: 4e5e unlk %fp <== NOT EXECUTED 4ac04: 4ef9 0004 688c jmp 4688c <_Thread_Clear_state> <== NOT EXECUTED ... 0004a068 <_Thread_queue_Extract_priority_helper>: void _Thread_queue_Extract_priority_helper( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, bool requeuing ) { 4a068: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4a06c: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 4a070: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Chain_Node *new_first_node; Chain_Node *new_second_node; Chain_Node *last_node; the_node = (Chain_Node *) the_thread; _ISR_Disable( level ); 4a074: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED void _Thread_queue_Extract_priority_helper( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, bool requeuing ) { 4a07a: 142e 0013 moveb %fp@(19),%d2 <== NOT EXECUTED Chain_Node *new_first_node; Chain_Node *new_second_node; Chain_Node *last_node; the_node = (Chain_Node *) the_thread; _ISR_Disable( level ); 4a07e: 40c1 movew %sr,%d1 <== NOT EXECUTED 4a080: 8081 orl %d1,%d0 <== NOT EXECUTED 4a082: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { 4a084: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4a088: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 4a08e: 6606 bnes 4a096 <_Thread_queue_Extract_priority_helper+0x2e> <== NOT EXECUTED _ISR_Enable( level ); 4a090: 46c1 movew %d1,%sr <== NOT EXECUTED 4a092: 6000 0098 braw 4a12c <_Thread_queue_Extract_priority_helper+0xc4> <== NOT EXECUTED /* * The thread was actually waiting on a thread queue so let's remove it. */ next_node = the_node->next; 4a096: 2652 moveal %a2@,%a3 <== NOT EXECUTED previous_node = the_node->previous; 4a098: 226a 0004 moveal %a2@(4),%a1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 4a09c: 206a 0038 moveal %a2@(56),%a0 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { 4a0a0: 200a movel %a2,%d0 <== NOT EXECUTED 4a0a2: 0680 0000 003c addil #60,%d0 <== NOT EXECUTED 4a0a8: b088 cmpl %a0,%d0 <== NOT EXECUTED 4a0aa: 6736 beqs 4a0e2 <_Thread_queue_Extract_priority_helper+0x7a> <== NOT EXECUTED new_first_node = the_thread->Wait.Block2n.first; new_first_thread = (Thread_Control *) new_first_node; last_node = the_thread->Wait.Block2n.last; 4a0ac: 2a6a 0040 moveal %a2@(64),%a5 <== NOT EXECUTED new_second_node = new_first_node->next; 4a0b0: 2850 moveal %a0@,%a4 <== NOT EXECUTED previous_node->next = new_first_node; next_node->previous = new_first_node; 4a0b2: 2748 0004 movel %a0,%a3@(4) <== NOT EXECUTED new_first_node = the_thread->Wait.Block2n.first; new_first_thread = (Thread_Control *) new_first_node; last_node = the_thread->Wait.Block2n.last; new_second_node = new_first_node->next; previous_node->next = new_first_node; 4a0b6: 2288 movel %a0,%a1@ <== NOT EXECUTED next_node->previous = new_first_node; new_first_node->next = next_node; new_first_node->previous = previous_node; 4a0b8: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED last_node = the_thread->Wait.Block2n.last; new_second_node = new_first_node->next; previous_node->next = new_first_node; next_node->previous = new_first_node; new_first_node->next = next_node; 4a0bc: 208b movel %a3,%a0@ <== NOT EXECUTED new_first_node->previous = previous_node; if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) { 4a0be: 202a 0040 movel %a2@(64),%d0 <== NOT EXECUTED 4a0c2: b0aa 0038 cmpl %a2@(56),%d0 <== NOT EXECUTED 4a0c6: 6720 beqs 4a0e8 <_Thread_queue_Extract_priority_helper+0x80> <== NOT EXECUTED /* > two threads on 2-n */ new_second_node->previous = 4a0c8: 43e8 0038 lea %a0@(56),%a1 <== NOT EXECUTED 4a0cc: 2949 0004 movel %a1,%a4@(4) <== NOT EXECUTED _Chain_Head( &new_first_thread->Wait.Block2n ); new_first_thread->Wait.Block2n.first = new_second_node; 4a0d0: 214c 0038 movel %a4,%a0@(56) <== NOT EXECUTED new_first_thread->Wait.Block2n.last = last_node; 4a0d4: 214d 0040 movel %a5,%a0@(64) <== NOT EXECUTED last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); 4a0d8: d1fc 0000 003c addal #60,%a0 <== NOT EXECUTED 4a0de: 2a88 movel %a0,%a5@ <== NOT EXECUTED 4a0e0: 6006 bras 4a0e8 <_Thread_queue_Extract_priority_helper+0x80> <== NOT EXECUTED } } else { previous_node->next = next_node; next_node->previous = previous_node; 4a0e2: 2749 0004 movel %a1,%a3@(4) <== NOT EXECUTED new_first_thread->Wait.Block2n.last = last_node; last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); } } else { previous_node->next = next_node; 4a0e6: 228b movel %a3,%a1@ <== NOT EXECUTED /* * If we are not supposed to touch timers or the thread's state, return. */ if ( requeuing ) { 4a0e8: 4a02 tstb %d2 <== NOT EXECUTED 4a0ea: 6704 beqs 4a0f0 <_Thread_queue_Extract_priority_helper+0x88> <== NOT EXECUTED _ISR_Enable( level ); 4a0ec: 46c1 movew %d1,%sr <== NOT EXECUTED 4a0ee: 603c bras 4a12c <_Thread_queue_Extract_priority_helper+0xc4> <== NOT EXECUTED return; } if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4a0f0: 7002 moveq #2,%d0 <== NOT EXECUTED 4a0f2: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4a0f6: 6704 beqs 4a0fc <_Thread_queue_Extract_priority_helper+0x94> <== NOT EXECUTED _ISR_Enable( level ); 4a0f8: 46c1 movew %d1,%sr <== NOT EXECUTED 4a0fa: 6014 bras 4a110 <_Thread_queue_Extract_priority_helper+0xa8> <== NOT EXECUTED 4a0fc: 7003 moveq #3,%d0 <== NOT EXECUTED 4a0fe: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 4a102: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4a104: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4a108: 4eb9 0004 7ce0 jsr 47ce0 <_Watchdog_Remove> <== NOT EXECUTED 4a10e: 588f addql #4,%sp <== NOT EXECUTED 4a110: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( !_Objects_Is_local_id( the_thread->Object.id ) ) _Thread_MP_Free_proxy( the_thread ); #endif } 4a114: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4a11a: 227c 1003 fff8 moveal #268697592,%a1 <== NOT EXECUTED 4a120: 2d49 000c movel %a1,%fp@(12) <== NOT EXECUTED 4a124: 4e5e unlk %fp <== NOT EXECUTED 4a126: 4ef9 0004 688c jmp 4688c <_Thread_Clear_state> <== NOT EXECUTED 4a12c: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4a132: 4e5e unlk %fp <== NOT EXECUTED 4a134: 4e75 rts <== NOT EXECUTED ... 000472ac <_Thread_queue_Extract_with_proxy>: */ bool _Thread_queue_Extract_with_proxy( Thread_Control *the_thread ) { 472ac: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 472b0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED States_Control state; state = the_thread->current_state; if ( _States_Is_waiting_on_thread_queue( state ) ) { 472b4: 2028 0010 movel %a0@(16),%d0 <== NOT EXECUTED 472b8: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 472be: 6710 beqs 472d0 <_Thread_queue_Extract_with_proxy+0x24> <== NOT EXECUTED if ( proxy_extract_callout ) (*proxy_extract_callout)( the_thread ); } #endif _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); 472c0: 2f08 movel %a0,%sp@- <== NOT EXECUTED 472c2: 2f28 0044 movel %a0@(68),%sp@- <== NOT EXECUTED 472c6: 4eb9 0004 a02c jsr 4a02c <_Thread_queue_Extract> <== NOT EXECUTED 472cc: 508f addql #8,%sp <== NOT EXECUTED 472ce: 7001 moveq #1,%d0 <== NOT EXECUTED return TRUE; } return FALSE; } 472d0: 4e5e unlk %fp <== NOT EXECUTED 472d2: 4e75 rts 00055518 <_Thread_queue_First>: */ Thread_Control *_Thread_queue_First( Thread_queue_Control *the_thread_queue ) { 55518: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5551c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED Thread_Control * (*first_p)(Thread_queue_Control *); if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) 55520: 203c 0005 5540 movel #349504,%d0 <== NOT EXECUTED 55526: 7201 moveq #1,%d1 <== NOT EXECUTED 55528: b2a8 0034 cmpl %a0@(52),%d1 <== NOT EXECUTED 5552c: 6706 beqs 55534 <_Thread_queue_First+0x1c> <== NOT EXECUTED 5552e: 203c 0005 5f24 movel #352036,%d0 <== NOT EXECUTED first_p = _Thread_queue_First_priority; else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */ first_p = _Thread_queue_First_fifo; return (*first_p)( the_thread_queue ); 55534: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 55538: 4e5e unlk %fp <== NOT EXECUTED if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) first_p = _Thread_queue_First_priority; else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */ first_p = _Thread_queue_First_fifo; return (*first_p)( the_thread_queue ); 5553a: 2240 moveal %d0,%a1 <== NOT EXECUTED 5553c: 4ed1 jmp %a1@ <== NOT EXECUTED ... 00055f24 <_Thread_queue_First_fifo>: */ Thread_Control *_Thread_queue_First_fifo( Thread_queue_Control *the_thread_queue ) { 55f24: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 55f28: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 55f2c: 2018 movel %a0@+,%d0 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) 55f2e: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 55f30: 6602 bnes 55f34 <_Thread_queue_First_fifo+0x10> <== NOT EXECUTED 55f32: 4280 clrl %d0 <== NOT EXECUTED return (Thread_Control *) the_thread_queue->Queues.Fifo.first; return NULL; } 55f34: 4e5e unlk %fp <== NOT EXECUTED 55f36: 4e75 rts 00055540 <_Thread_queue_First_priority>: */ Thread_Control *_Thread_queue_First_priority ( Thread_queue_Control *the_thread_queue ) { 55540: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 55544: 2f0b movel %a3,%sp@- <== NOT EXECUTED 55546: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 5554a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5554c: 93c9 subal %a1,%a1 <== NOT EXECUTED 5554e: 244b moveal %a3,%a2 <== NOT EXECUTED 55550: 2012 movel %a2@,%d0 <== NOT EXECUTED uint32_t index; for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; index++ ) { if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) 55552: 41f1 9a01 lea %a1@(00000001,%a1:l:2),%a0 <== NOT EXECUTED { uint32_t index; for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; index++ ) { 55556: d5fc 0000 000c addal #12,%a2 <== NOT EXECUTED 5555c: 5289 addql #1,%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) 5555e: 41f3 8c00 lea %a3@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 55562: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 55564: 6608 bnes 5556e <_Thread_queue_First_priority+0x2e> <== NOT EXECUTED ) { uint32_t index; for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; 55566: 7004 moveq #4,%d0 <== NOT EXECUTED 55568: b089 cmpl %a1,%d0 <== NOT EXECUTED 5556a: 66e4 bnes 55550 <_Thread_queue_First_priority+0x10> <== NOT EXECUTED 5556c: 4200 clrb %d0 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) return (Thread_Control *) the_thread_queue->Queues.Priority[ index ].first; } return NULL; } 5556e: 245f moveal %sp@+,%a2 <== NOT EXECUTED 55570: 265f moveal %sp@+,%a3 <== NOT EXECUTED 55572: 4e5e unlk %fp <== NOT EXECUTED 55574: 4e75 rts <== NOT EXECUTED ... 000472d4 <_Thread_queue_Flush>: void _Thread_queue_Flush( Thread_queue_Control *the_thread_queue, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { 472d4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 472d8: 2f0a movel %a2,%sp@- <== NOT EXECUTED Thread_Control *the_thread; while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) { 472da: 45f9 0004 6f70 lea 46f70 <_Thread_queue_Dequeue>,%a2 <== NOT EXECUTED 472e0: 6008 bras 472ea <_Thread_queue_Flush+0x16> <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( !_Objects_Is_local_id( the_thread->Object.id ) ) ( *remote_extract_callout )( the_thread ); else #endif the_thread->Wait.return_code = status; 472e2: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 472e6: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED uint32_t status ) { Thread_Control *the_thread; while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) { 472ea: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 472ee: 4e92 jsr %a2@ <== NOT EXECUTED 472f0: 588f addql #4,%sp <== NOT EXECUTED 472f2: 2040 moveal %d0,%a0 <== NOT EXECUTED 472f4: 4a80 tstl %d0 <== NOT EXECUTED 472f6: 66ea bnes 472e2 <_Thread_queue_Flush+0xe> <== NOT EXECUTED ( *remote_extract_callout )( the_thread ); else #endif the_thread->Wait.return_code = status; } } 472f8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 472fc: 4e5e unlk %fp <== NOT EXECUTED 472fe: 4e75 rts 00047300 <_Thread_queue_Initialize>: Thread_queue_Control *the_thread_queue, Thread_queue_Disciplines the_discipline, States_Control state, uint32_t timeout_status ) { 47300: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47304: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED the_thread_queue->state = state; 47308: 216e 0010 0038 movel %fp@(16),%a0@(56) <== NOT EXECUTED Thread_queue_Control *the_thread_queue, Thread_queue_Disciplines the_discipline, States_Control state, uint32_t timeout_status ) { 4730e: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED the_thread_queue->state = state; the_thread_queue->discipline = the_discipline; the_thread_queue->timeout_status = timeout_status; 47312: 216e 0014 003c movel %fp@(20),%a0@(60) <== NOT EXECUTED the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; if ( the_discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) { 47318: 7201 moveq #1,%d1 <== NOT EXECUTED States_Control state, uint32_t timeout_status ) { the_thread_queue->state = state; the_thread_queue->discipline = the_discipline; 4731a: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED the_thread_queue->timeout_status = timeout_status; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 4731e: 42a8 0030 clrl %a0@(48) <== NOT EXECUTED if ( the_discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) { 47322: b280 cmpl %d0,%d1 <== NOT EXECUTED 47324: 664c bnes 47372 <_Thread_queue_Initialize+0x72> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47326: 2248 moveal %a0,%a1 <== NOT EXECUTED 47328: 5889 addql #4,%a1 <== NOT EXECUTED 4732a: 2089 movel %a1,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4732c: 43e8 0024 lea %a0@(36),%a1 <== NOT EXECUTED 47330: 2149 002c movel %a1,%a0@(44) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47334: 43e8 0010 lea %a0@(16),%a1 <== NOT EXECUTED 47338: 2149 000c movel %a1,%a0@(12) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4733c: 43e8 000c lea %a0@(12),%a1 <== NOT EXECUTED 47340: 2149 0014 movel %a1,%a0@(20) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47344: 43e8 001c lea %a0@(28),%a1 <== NOT EXECUTED 47348: 2149 0018 movel %a1,%a0@(24) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4734c: 43e8 0018 lea %a0@(24),%a1 <== NOT EXECUTED 47350: 2149 0020 movel %a1,%a0@(32) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47354: 43e8 0028 lea %a0@(40),%a1 <== NOT EXECUTED 47358: 2149 0024 movel %a1,%a0@(36) <== NOT EXECUTED the_chain->permanent_null = NULL; 4735c: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 47360: 2148 0008 movel %a0,%a0@(8) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 47364: 42a8 0010 clrl %a0@(16) <== NOT EXECUTED 47368: 42a8 001c clrl %a0@(28) <== NOT EXECUTED 4736c: 42a8 0028 clrl %a0@(40) <== NOT EXECUTED 47370: 600e bras 47380 <_Thread_queue_Initialize+0x80> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47372: 2008 movel %a0,%d0 <== NOT EXECUTED 47374: 5880 addql #4,%d0 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 47376: 2148 0008 movel %a0,%a0@(8) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4737a: 2080 movel %d0,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 4737c: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED _Chain_Initialize_empty( &the_thread_queue->Queues.Priority[index] ); } else { /* must be THREAD_QUEUE_DISCIPLINE_FIFO */ _Chain_Initialize_empty( &the_thread_queue->Queues.Fifo ); } } 47380: 4e5e unlk %fp <== NOT EXECUTED 47382: 4e75 rts 0004a138 <_Thread_queue_Process_timeout>: #include void _Thread_queue_Process_timeout( Thread_Control *the_thread ) { 4a138: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a13c: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED Thread_queue_Control *the_thread_queue = the_thread->Wait.queue; 4a140: 2069 0044 moveal %a1@(68),%a0 <== NOT EXECUTED * If it is not satisfied, then it is "nothing happened" and * this is the "timeout" transition. After a request is satisfied, * a timeout is not allowed to occur. */ if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SYNCHRONIZED && 4a144: 2028 0030 movel %a0@(48),%d0 <== NOT EXECUTED 4a148: 671c beqs 4a166 <_Thread_queue_Process_timeout+0x2e> <== NOT EXECUTED 4a14a: b3f9 0005 6d62 cmpal 56d62 <_Thread_Executing>,%a1 <== NOT EXECUTED 4a150: 6614 bnes 4a166 <_Thread_queue_Process_timeout+0x2e> <== NOT EXECUTED _Thread_Is_executing( the_thread ) ) { if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) { 4a152: 7203 moveq #3,%d1 <== NOT EXECUTED 4a154: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a156: 6722 beqs 4a17a <_Thread_queue_Process_timeout+0x42> <== NOT EXECUTED the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT; 4a158: 7002 moveq #2,%d0 <== NOT EXECUTED */ if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SYNCHRONIZED && _Thread_Is_executing( the_thread ) ) { if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) { the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status; 4a15a: 2368 003c 0034 movel %a0@(60),%a1@(52) <== NOT EXECUTED the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT; 4a160: 2140 0030 movel %d0,%a0@(48) <== NOT EXECUTED 4a164: 6014 bras 4a17a <_Thread_queue_Process_timeout+0x42> <== NOT EXECUTED } } else { the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status; 4a166: 2368 003c 0034 movel %a0@(60),%a1@(52) <== NOT EXECUTED _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); 4a16c: 2f09 movel %a1,%sp@- <== NOT EXECUTED 4a16e: 2f29 0044 movel %a1@(68),%sp@- <== NOT EXECUTED 4a172: 4eb9 0004 a02c jsr 4a02c <_Thread_queue_Extract> <== NOT EXECUTED 4a178: 508f addql #8,%sp <== NOT EXECUTED } } 4a17a: 4e5e unlk %fp <== NOT EXECUTED 4a17c: 4e75 rts <== NOT EXECUTED ... 00047384 <_Thread_queue_Requeue>: void _Thread_queue_Requeue( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) { 47384: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 47388: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4738c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 47390: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED /* * Just in case the thread really wasn't blocked on a thread queue * when we get here. */ if ( !the_thread_queue ) 47394: 4a8a tstl %a2 <== NOT EXECUTED 47396: 6748 beqs 473e0 <_Thread_queue_Requeue+0x5c> <== NOT EXECUTED /* * If queueing by FIFO, there is nothing to do. This only applies to * priority blocking discipline. */ if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) { 47398: 7001 moveq #1,%d0 <== NOT EXECUTED 4739a: b0aa 0034 cmpl %a2@(52),%d0 <== NOT EXECUTED 4739e: 6640 bnes 473e0 <_Thread_queue_Requeue+0x5c> <== NOT EXECUTED Thread_queue_Control *tq = the_thread_queue; ISR_Level level; ISR_Level level_ignored; _ISR_Disable( level ); 473a0: 303c 0700 movew #1792,%d0 <== NOT EXECUTED 473a4: 40c2 movew %sr,%d2 <== NOT EXECUTED 473a6: 8082 orl %d2,%d0 <== NOT EXECUTED 473a8: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { 473aa: 202b 0010 movel %a3@(16),%d0 <== NOT EXECUTED 473ae: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 473b4: 6728 beqs 473de <_Thread_queue_Requeue+0x5a> <== NOT EXECUTED _Thread_queue_Enter_critical_section( tq ); _Thread_queue_Extract_priority_helper( tq, the_thread, TRUE ); 473b6: 4878 0001 pea 1 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section ( Thread_queue_Control *the_thread_queue ) { the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; 473ba: 7001 moveq #1,%d0 <== NOT EXECUTED 473bc: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED 473c0: 2f0b movel %a3,%sp@- <== NOT EXECUTED 473c2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 473c4: 4eb9 0004 a068 jsr 4a068 <_Thread_queue_Extract_priority_helper> <== NOT EXECUTED (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored ); 473ca: 486e fffc pea %fp@(-4) <== NOT EXECUTED 473ce: 2f0b movel %a3,%sp@- <== NOT EXECUTED 473d0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 473d2: 4eb9 0004 7150 jsr 47150 <_Thread_queue_Enqueue_priority> <== NOT EXECUTED 473d8: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED } _ISR_Enable( level ); 473de: 46c2 movew %d2,%sr <== NOT EXECUTED } } 473e0: 4cee 0c04 fff0 moveml %fp@(-16),%d2/%a2-%a3 <== NOT EXECUTED 473e6: 4e5e unlk %fp <== NOT EXECUTED 473e8: 4e75 rts <== NOT EXECUTED ... 000473ec <_Thread_queue_Timeout>: void _Thread_queue_Timeout( Objects_Id id, void *ignored ) { 473ec: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 473f0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 473f4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 473f8: 4eb9 0004 6c78 jsr 46c78 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 473fe: 508f addql #8,%sp <== NOT EXECUTED 47400: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47404: 6618 bnes 4741e <_Thread_queue_Timeout+0x32> <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: /* impossible */ #endif break; case OBJECTS_LOCAL: _Thread_queue_Process_timeout( the_thread ); 47406: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47408: 4eb9 0004 a138 jsr 4a138 <_Thread_queue_Process_timeout> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 4740e: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 47414: 588f addql #4,%sp <== NOT EXECUTED 47416: 5380 subql #1,%d0 <== NOT EXECUTED 47418: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Unnest_dispatch(); break; } } 4741e: 4e5e unlk %fp <== NOT EXECUTED 47420: 4e75 rts <== NOT EXECUTED ... 000496f0 <_Timer_Manager_initialization>: */ void _Timer_Manager_initialization( uint32_t maximum_timers ) { 496f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 496f4: 4878 0004 pea 4 <== NOT EXECUTED 496f8: 42a7 clrl %sp@- <== NOT EXECUTED 496fa: 4878 003c pea 3c <== NOT EXECUTED 496fe: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49702: 4878 0002 pea 2 <== NOT EXECUTED 49706: 4878 0002 pea 2 <== NOT EXECUTED 4970a: 4879 0005 708e pea 5708e <_Timer_Information> <== NOT EXECUTED 49710: 4eb9 0004 64c8 jsr 464c8 <_Objects_Initialize_information> <== NOT EXECUTED * Initialize the pointer to the Timer Server TCB to NULL indicating * that task-based timer support is not initialized. */ _Timer_Server = NULL; _Timer_Server_schedule_operation = NULL; 49716: dffc 0000 001c addal #28,%sp <== NOT EXECUTED } 4971c: 4e5e unlk %fp <== NOT EXECUTED /* * Initialize the pointer to the Timer Server TCB to NULL indicating * that task-based timer support is not initialized. */ _Timer_Server = NULL; 4971e: 42b9 0005 70ce clrl 570ce <_Timer_Server> <== NOT EXECUTED _Timer_Server_schedule_operation = NULL; 49724: 42b9 0005 70ca clrl 570ca <_Timer_Server_schedule_operation> <== NOT EXECUTED } 4972a: 4e75 rts 0004f726 <_Timer_Server_body>: /* * Initialize the "last time" markers to indicate the timer that * the server was initiated. */ _Timer_Server_ticks_last_time = _Watchdog_Ticks_since_boot; 4f726: 2039 0006 c978 movel 6c978 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED * @param[in] ignored is the the task argument that is ignored */ Thread _Timer_Server_body( uint32_t ignored ) { 4f72c: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 4f730: 2239 0006 c830 movel 6c830 <_Thread_Dispatch_disable_level>,%d1 <== NOT EXECUTED 4f736: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 4f73a: 240e movel %fp,%d2 <== NOT EXECUTED 4f73c: 2a0e movel %fp,%d5 <== NOT EXECUTED 4f73e: 5281 addql #1,%d1 <== NOT EXECUTED 4f740: 0682 ffff fff4 addil #-12,%d2 <== NOT EXECUTED 4f746: 5185 subql #8,%d5 <== NOT EXECUTED /* * Initialize the "last time" markers to indicate the timer that * the server was initiated. */ _Timer_Server_ticks_last_time = _Watchdog_Ticks_since_boot; _Timer_Server_seconds_last_time = _TOD_Seconds_since_epoch; 4f748: 41f9 0006 c8c2 lea 6c8c2 <_TOD_Now>,%a0 <== NOT EXECUTED /* * Initialize the "last time" markers to indicate the timer that * the server was initiated. */ _Timer_Server_ticks_last_time = _Watchdog_Ticks_since_boot; 4f74e: 23c0 0006 c798 movel %d0,6c798 <_Timer_Server_ticks_last_time> <== NOT EXECUTED _Timer_Server_seconds_last_time = _TOD_Seconds_since_epoch; 4f754: 23d0 0006 c794 movel %a0@,6c794 <_Timer_Server_seconds_last_time> <== NOT EXECUTED 4f75a: 23c1 0006 c830 movel %d1,6c830 <_Thread_Dispatch_disable_level> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f760: 2d45 fff4 movel %d5,%fp@(-12) <== NOT EXECUTED the_chain->permanent_null = NULL; 4f764: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 4f768: 2d42 fffc movel %d2,%fp@(-4) <== NOT EXECUTED * Insert the timers that were inserted before we got to run. * This should be done with dispatching disabled. */ _Thread_Disable_dispatch(); _Timer_Server_process_insertions(); _Thread_Enable_dispatch(); 4f76c: 45f9 0005 1ef2 lea 51ef2 <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED */ _Thread_Disable_dispatch(); _Thread_Set_state( _Timer_Server, STATES_DELAYING ); _Timer_Server_reset_ticks_timer(); _Timer_Server_reset_seconds_timer(); _Thread_Enable_dispatch(); 4f772: 280a movel %a2,%d4 <== NOT EXECUTED /* * Insert the timers that were inserted before we got to run. * This should be done with dispatching disabled. */ _Thread_Disable_dispatch(); _Timer_Server_process_insertions(); 4f774: 4eba ff50 jsr %pc@(4f6c6 <_Timer_Server_process_insertions>) <== NOT EXECUTED _Thread_Enable_dispatch(); 4f778: 4e92 jsr %a2@ <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4f77a: 4bf9 0005 3174 lea 53174 <_Watchdog_Insert>,%a5 <== NOT EXECUTED /* * At this point, at least one of the timers this task relies * upon has fired. Stop them both while we process any outstanding * timers. Before we block, we will restart them. */ _Timer_Server_stop_ticks_timer(); 4f780: 49f9 0005 3290 lea 53290 <_Watchdog_Remove>,%a4 <== NOT EXECUTED ticks = snapshot - _Timer_Server_ticks_last_time; else ticks = (0xFFFFFFFF - _Timer_Server_ticks_last_time) + snapshot; _Timer_Server_ticks_last_time = snapshot; _Watchdog_Adjust_to_chain( &_Timer_Ticks_chain, ticks, to_fire ); 4f786: 2602 movel %d2,%d3 <== NOT EXECUTED 4f788: 47f9 0005 30e8 lea 530e8 <_Watchdog_Adjust_to_chain>,%a3 <== NOT EXECUTED /* * The current TOD is before the last TOD which indicates that * TOD has been set backwards. */ ticks = _Timer_Server_seconds_last_time - snapshot; _Watchdog_Adjust( &_Timer_Seconds_chain, WATCHDOG_BACKWARD, ticks ); 4f78e: 2e3c 0005 3064 movel #340068,%d7 <== NOT EXECUTED 4f794: 2039 0006 c830 movel 6c830 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4f79a: 5280 addql #1,%d0 <== NOT EXECUTED 4f79c: 23c0 0006 c830 movel %d0,6c830 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Block until there is something to do. */ _Thread_Disable_dispatch(); _Thread_Set_state( _Timer_Server, STATES_DELAYING ); 4f7a2: 4878 0008 pea 8 <== NOT EXECUTED 4f7a6: 2f39 0006 caf2 movel 6caf2 <_Timer_Server>,%sp@- <== NOT EXECUTED 4f7ac: 4eb9 0005 2898 jsr 52898 <_Thread_Set_state> <== NOT EXECUTED _Timer_Server_reset_ticks_timer(); 4f7b2: 508f addql #8,%sp <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 4f7b4: 2279 0006 c788 moveal 6c788 <_Timer_Ticks_chain>,%a1 <== NOT EXECUTED 4f7ba: b3fc 0006 c78c cmpal #444300,%a1 <== NOT EXECUTED 4f7c0: 671a beqs 4f7dc <_Timer_Server_body+0xb6> <== NOT EXECUTED 4f7c2: 2079 0006 caf2 moveal 6caf2 <_Timer_Server>,%a0 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4f7c8: 2169 0010 0054 movel %a1@(16),%a0@(84) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4f7ce: 4868 0048 pea %a0@(72) <== NOT EXECUTED 4f7d2: 4879 0006 c90c pea 6c90c <_Watchdog_Ticks_chain> <== NOT EXECUTED 4f7d8: 4e95 jsr %a5@ <== NOT EXECUTED 4f7da: 508f addql #8,%sp <== NOT EXECUTED 4f7dc: 2079 0006 c79c moveal 6c79c <_Timer_Seconds_chain>,%a0 <== NOT EXECUTED _Timer_Server_reset_seconds_timer(); 4f7e2: b1fc 0006 c7a0 cmpal #444320,%a0 <== NOT EXECUTED 4f7e8: 671c beqs 4f806 <_Timer_Server_body+0xe0> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4f7ea: d1fc 0000 0010 addal #16,%a0 <== NOT EXECUTED 4f7f0: 23d0 0006 c7c0 movel %a0@,6c7c0 <_Timer_Seconds_timer+0xc> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 4f7f6: 4879 0006 c7b4 pea 6c7b4 <_Timer_Seconds_timer> <== NOT EXECUTED 4f7fc: 4879 0006 c900 pea 6c900 <_Watchdog_Seconds_chain> <== NOT EXECUTED 4f802: 4e95 jsr %a5@ <== NOT EXECUTED 4f804: 508f addql #8,%sp <== NOT EXECUTED _Thread_Enable_dispatch(); 4f806: 2044 moveal %d4,%a0 <== NOT EXECUTED 4f808: 4e90 jsr %a0@ <== NOT EXECUTED 4f80a: 2039 0006 c830 movel 6c830 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4f810: 5280 addql #1,%d0 <== NOT EXECUTED 4f812: 23c0 0006 c830 movel %d0,6c830 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * At this point, at least one of the timers this task relies * upon has fired. Stop them both while we process any outstanding * timers. Before we block, we will restart them. */ _Timer_Server_stop_ticks_timer(); 4f818: 2039 0006 caf2 movel 6caf2 <_Timer_Server>,%d0 <== NOT EXECUTED 4f81e: 0680 0000 0048 addil #72,%d0 <== NOT EXECUTED 4f824: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f826: 4e94 jsr %a4@ <== NOT EXECUTED _Timer_Server_stop_seconds_timer(); 4f828: 4879 0006 c7b4 pea 6c7b4 <_Timer_Seconds_timer> <== NOT EXECUTED 4f82e: 4e94 jsr %a4@ <== NOT EXECUTED ) { Watchdog_Interval snapshot; Watchdog_Interval ticks; snapshot = _Watchdog_Ticks_since_boot; 4f830: 2239 0006 c978 movel 6c978 <_Watchdog_Ticks_since_boot>,%d1 <== NOT EXECUTED if ( snapshot >= _Timer_Server_ticks_last_time ) 4f836: 2039 0006 c798 movel 6c798 <_Timer_Server_ticks_last_time>,%d0 <== NOT EXECUTED 4f83c: 508f addql #8,%sp <== NOT EXECUTED 4f83e: b081 cmpl %d1,%d0 <== NOT EXECUTED 4f840: 6208 bhis 4f84a <_Timer_Server_body+0x124> <== NOT EXECUTED ticks = snapshot - _Timer_Server_ticks_last_time; 4f842: 2c01 movel %d1,%d6 <== NOT EXECUTED 4f844: 9c80 subl %d0,%d6 <== NOT EXECUTED 4f846: 2006 movel %d6,%d0 <== NOT EXECUTED 4f848: 6004 bras 4f84e <_Timer_Server_body+0x128> <== NOT EXECUTED else ticks = (0xFFFFFFFF - _Timer_Server_ticks_last_time) + snapshot; 4f84a: 4680 notl %d0 <== NOT EXECUTED 4f84c: d081 addl %d1,%d0 <== NOT EXECUTED _Timer_Server_ticks_last_time = snapshot; _Watchdog_Adjust_to_chain( &_Timer_Ticks_chain, ticks, to_fire ); 4f84e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f850: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f852: 4879 0006 c788 pea 6c788 <_Timer_Ticks_chain> <== NOT EXECUTED if ( snapshot >= _Timer_Server_ticks_last_time ) ticks = snapshot - _Timer_Server_ticks_last_time; else ticks = (0xFFFFFFFF - _Timer_Server_ticks_last_time) + snapshot; _Timer_Server_ticks_last_time = snapshot; 4f858: 23c1 0006 c798 movel %d1,6c798 <_Timer_Server_ticks_last_time> <== NOT EXECUTED _Watchdog_Adjust_to_chain( &_Timer_Ticks_chain, ticks, to_fire ); 4f85e: 4e93 jsr %a3@ <== NOT EXECUTED /* * Process the seconds chain. Start by checking that the Time * of Day (TOD) has not been set backwards. If it has then * we want to adjust the _Timer_Seconds_chain to indicate this. */ snapshot = _TOD_Seconds_since_epoch; 4f860: 2479 0006 c8c2 moveal 6c8c2 <_TOD_Now>,%a2 <== NOT EXECUTED if ( snapshot > _Timer_Server_seconds_last_time ) { 4f866: 2039 0006 c794 movel 6c794 <_Timer_Server_seconds_last_time>,%d0 <== NOT EXECUTED 4f86c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f872: b08a cmpl %a2,%d0 <== NOT EXECUTED 4f874: 6412 bccs 4f888 <_Timer_Server_body+0x162> <== NOT EXECUTED /* * This path is for normal forward movement and cases where the * TOD has been set forward. */ ticks = snapshot - _Timer_Server_seconds_last_time; _Watchdog_Adjust_to_chain( &_Timer_Seconds_chain, ticks, to_fire ); 4f876: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f878: 220a movel %a2,%d1 <== NOT EXECUTED 4f87a: 9280 subl %d0,%d1 <== NOT EXECUTED 4f87c: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4f87e: 4879 0006 c79c pea 6c79c <_Timer_Seconds_chain> <== NOT EXECUTED 4f884: 4e93 jsr %a3@ <== NOT EXECUTED 4f886: 6016 bras 4f89e <_Timer_Server_body+0x178> <== NOT EXECUTED } else if ( snapshot < _Timer_Server_seconds_last_time ) { 4f888: b08a cmpl %a2,%d0 <== NOT EXECUTED 4f88a: 6318 blss 4f8a4 <_Timer_Server_body+0x17e> <== NOT EXECUTED /* * The current TOD is before the last TOD which indicates that * TOD has been set backwards. */ ticks = _Timer_Server_seconds_last_time - snapshot; _Watchdog_Adjust( &_Timer_Seconds_chain, WATCHDOG_BACKWARD, ticks ); 4f88c: 908a subl %a2,%d0 <== NOT EXECUTED 4f88e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f890: 2047 moveal %d7,%a0 <== NOT EXECUTED 4f892: 4878 0001 pea 1 <== NOT EXECUTED 4f896: 4879 0006 c79c pea 6c79c <_Timer_Seconds_chain> <== NOT EXECUTED 4f89c: 4e90 jsr %a0@ <== NOT EXECUTED 4f89e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } _Timer_Server_seconds_last_time = snapshot; 4f8a4: 23ca 0006 c794 movel %a2,6c794 <_Timer_Server_seconds_last_time> <== NOT EXECUTED _Timer_Server_process_seconds_chain( &to_fire ); /* * Insert the timers that have been requested to be inserted. */ _Timer_Server_process_insertions(); 4f8aa: 4eba fe1a jsr %pc@(4f6c6 <_Timer_Server_process_insertions>) <== NOT EXECUTED /* * Enable dispatching to process the set that are ready "to fire." */ _Thread_Enable_dispatch(); 4f8ae: 2044 moveal %d4,%a0 <== NOT EXECUTED 4f8b0: 4e90 jsr %a0@ <== NOT EXECUTED */ while (1) { Watchdog_Control *watch; ISR_Level level; _ISR_Disable( level ); 4f8b2: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4f8b8: 40c1 movew %sr,%d1 <== NOT EXECUTED 4f8ba: 8081 orl %d1,%d0 <== NOT EXECUTED 4f8bc: 46c0 movew %d0,%sr <== NOT EXECUTED 4f8be: 226e fff4 moveal %fp@(-12),%a1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected( Chain_Control *the_chain ) { if ( !_Chain_Is_empty(the_chain)) 4f8c2: ba89 cmpl %a1,%d5 <== NOT EXECUTED 4f8c4: 670e beqs 4f8d4 <_Timer_Server_body+0x1ae> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 4f8c6: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_chain->first = new_first; 4f8c8: 2d48 fff4 movel %a0,%fp@(-12) <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 4f8cc: 2142 0004 movel %d2,%a0@(4) <== NOT EXECUTED watch = (Watchdog_Control *) _Chain_Get_unprotected( &to_fire ); if ( watch == NULL ) { 4f8d0: 4a89 tstl %a1 <== NOT EXECUTED 4f8d2: 6606 bnes 4f8da <_Timer_Server_body+0x1b4> <== NOT EXECUTED _ISR_Enable( level ); 4f8d4: 46c1 movew %d1,%sr <== NOT EXECUTED 4f8d6: 6000 febc braw 4f794 <_Timer_Server_body+0x6e> <== NOT EXECUTED break; } watch->state = WATCHDOG_INACTIVE; 4f8da: 42a9 0008 clrl %a1@(8) <== NOT EXECUTED _ISR_Enable( level ); 4f8de: 46c1 movew %d1,%sr <== NOT EXECUTED (*watch->routine)( watch->id, watch->user_data ); 4f8e0: 2f29 0024 movel %a1@(36),%sp@- <== NOT EXECUTED 4f8e4: 2f29 0020 movel %a1@(32),%sp@- <== NOT EXECUTED 4f8e8: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 4f8ec: 4e90 jsr %a0@ <== NOT EXECUTED 4f8ee: 508f addql #8,%sp <== NOT EXECUTED 4f8f0: 60c0 bras 4f8b2 <_Timer_Server_body+0x18c> <== NOT EXECUTED ... 0004f6c6 <_Timer_Server_process_insertions>: * onto one of the Timer Server chains. * * @note It is only to be called from the Timer Server task. */ static void _Timer_Server_process_insertions(void) { 4f6c6: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4f6ca: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED Timer_Control *the_timer; while ( 1 ) { the_timer = (Timer_Control *) _Chain_Get( &_Timer_To_be_inserted ); 4f6ce: 49f9 0005 0048 lea 50048 <_Chain_Get>,%a4 <== NOT EXECUTED break; if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) { _Watchdog_Insert( &_Timer_Ticks_chain, &the_timer->Ticker ); } else if ( the_timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) { _Watchdog_Insert( &_Timer_Seconds_chain, &the_timer->Ticker ); 4f6d4: 45f9 0005 3174 lea 53174 <_Watchdog_Insert>,%a2 <== NOT EXECUTED } /* * Insert the timers that have been requested to be inserted. */ _Timer_Server_process_insertions(); 4f6da: 47fa ffea lea %pc@(4f6c6 <_Timer_Server_process_insertions>),%a3 <== NOT EXECUTED static void _Timer_Server_process_insertions(void) { Timer_Control *the_timer; while ( 1 ) { the_timer = (Timer_Control *) _Chain_Get( &_Timer_To_be_inserted ); 4f6de: 4879 0006 c7a8 pea 6c7a8 <_Timer_To_be_inserted> <== NOT EXECUTED 4f6e4: 4e94 jsr %a4@ <== NOT EXECUTED if ( the_timer == NULL ) 4f6e6: 588f addql #4,%sp <== NOT EXECUTED static void _Timer_Server_process_insertions(void) { Timer_Control *the_timer; while ( 1 ) { the_timer = (Timer_Control *) _Chain_Get( &_Timer_To_be_inserted ); 4f6e8: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( the_timer == NULL ) 4f6ea: 4a80 tstl %d0 <== NOT EXECUTED 4f6ec: 672e beqs 4f71c <_Timer_Server_process_insertions+0x56> <== NOT EXECUTED break; if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) { 4f6ee: 2028 0038 movel %a0@(56),%d0 <== NOT EXECUTED 4f6f2: 7201 moveq #1,%d1 <== NOT EXECUTED 4f6f4: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f6f6: 660c bnes 4f704 <_Timer_Server_process_insertions+0x3e> <== NOT EXECUTED _Watchdog_Insert( &_Timer_Ticks_chain, &the_timer->Ticker ); 4f6f8: 4868 0010 pea %a0@(16) <== NOT EXECUTED 4f6fc: 4879 0006 c788 pea 6c788 <_Timer_Ticks_chain> <== NOT EXECUTED 4f702: 6010 bras 4f714 <_Timer_Server_process_insertions+0x4e> <== NOT EXECUTED } else if ( the_timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) { 4f704: 7203 moveq #3,%d1 <== NOT EXECUTED 4f706: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f708: 660e bnes 4f718 <_Timer_Server_process_insertions+0x52> <== NOT EXECUTED _Watchdog_Insert( &_Timer_Seconds_chain, &the_timer->Ticker ); 4f70a: 4868 0010 pea %a0@(16) <== NOT EXECUTED 4f70e: 4879 0006 c79c pea 6c79c <_Timer_Seconds_chain> <== NOT EXECUTED 4f714: 4e92 jsr %a2@ <== NOT EXECUTED 4f716: 508f addql #8,%sp <== NOT EXECUTED } /* * Insert the timers that have been requested to be inserted. */ _Timer_Server_process_insertions(); 4f718: 4e93 jsr %a3@ <== NOT EXECUTED 4f71a: 60c2 bras 4f6de <_Timer_Server_process_insertions+0x18> <== NOT EXECUTED } } 4f71c: 4cee 1c00 fff4 moveml %fp@(-12),%a2-%a4 <== NOT EXECUTED 4f722: 4e5e unlk %fp <== NOT EXECUTED 4f724: 4e75 rts 0004f682 <_Timer_Server_schedule_operation_method>: * the directive invoking this is executed. */ static void _Timer_Server_schedule_operation_method( Timer_Control *the_timer ) { 4f682: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Chain_Append( &_Timer_To_be_inserted, &the_timer->Object.Node ); 4f686: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f68a: 4879 0006 c7a8 pea 6c7a8 <_Timer_To_be_inserted> <== NOT EXECUTED 4f690: 4eb9 0005 0010 jsr 50010 <_Chain_Append> <== NOT EXECUTED _Watchdog_Remove( &_Timer_Server->Timer ); 4f696: 2039 0006 caf2 movel 6caf2 <_Timer_Server>,%d0 <== NOT EXECUTED 4f69c: 0680 0000 0048 addil #72,%d0 <== NOT EXECUTED 4f6a2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f6a4: 4eb9 0005 3290 jsr 53290 <_Watchdog_Remove> <== NOT EXECUTED _Thread_Delay_ended( _Timer_Server->Object.id, NULL ); 4f6aa: 2079 0006 caf2 moveal 6caf2 <_Timer_Server>,%a0 <== NOT EXECUTED 4f6b0: 42a7 clrl %sp@- <== NOT EXECUTED 4f6b2: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4f6b6: 4eb9 0005 1d64 jsr 51d64 <_Thread_Delay_ended> <== NOT EXECUTED 4f6bc: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED } 4f6c2: 4e5e unlk %fp <== NOT EXECUTED 4f6c4: 4e75 rts 0004790c <_Timespec_Add_to>: uint32_t _Timespec_Add_to( struct timespec *time, const struct timespec *add ) { 4790c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47910: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 47914: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED uint32_t seconds = add->tv_sec; 47918: 2010 movel %a0@,%d0 <== NOT EXECUTED /* Add the basics */ time->tv_sec += add->tv_sec; time->tv_nsec += add->tv_nsec; 4791a: 2228 0004 movel %a0@(4),%d1 <== NOT EXECUTED ) { uint32_t seconds = add->tv_sec; /* Add the basics */ time->tv_sec += add->tv_sec; 4791e: d191 addl %d0,%a1@ <== NOT EXECUTED time->tv_nsec += add->tv_nsec; 47920: d3a9 0004 addl %d1,%a1@(4) <== NOT EXECUTED 47924: 600e bras 47934 <_Timespec_Add_to+0x28> <== NOT EXECUTED /* Now adjust it so nanoseconds is in range */ while ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) { time->tv_nsec -= TOD_NANOSECONDS_PER_SECOND; time->tv_sec++; seconds++; 47926: 5280 addql #1,%d0 <== NOT EXECUTED time->tv_sec += add->tv_sec; time->tv_nsec += add->tv_nsec; /* Now adjust it so nanoseconds is in range */ while ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) { time->tv_nsec -= TOD_NANOSECONDS_PER_SECOND; 47928: 0681 c465 3600 addil #-1000000000,%d1 <== NOT EXECUTED 4792e: 2341 0004 movel %d1,%a1@(4) <== NOT EXECUTED time->tv_sec++; 47932: 5291 addql #1,%a1@ <== NOT EXECUTED /* Add the basics */ time->tv_sec += add->tv_sec; time->tv_nsec += add->tv_nsec; /* Now adjust it so nanoseconds is in range */ while ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) { 47934: 2229 0004 movel %a1@(4),%d1 <== NOT EXECUTED 47938: 0c81 3b9a c9ff cmpil #999999999,%d1 <== NOT EXECUTED 4793e: 62e6 bhis 47926 <_Timespec_Add_to+0x1a> <== NOT EXECUTED time->tv_sec++; seconds++; } return seconds; } 47940: 4e5e unlk %fp <== NOT EXECUTED 47942: 4e75 rts 00048bd4 <_Timespec_Divide>: const struct timespec *lhs, const struct timespec *rhs, uint32_t *ival_percentage, uint32_t *fval_percentage ) { 48bd4: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 48bd8: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ left = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; left += lhs->tv_nsec; right = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; 48bdc: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED const struct timespec *lhs, const struct timespec *rhs, uint32_t *ival_percentage, uint32_t *fval_percentage ) { 48be2: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ left = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; left += lhs->tv_nsec; right = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; 48be6: 42a7 clrl %sp@- <== NOT EXECUTED const struct timespec *lhs, const struct timespec *rhs, uint32_t *ival_percentage, uint32_t *fval_percentage ) { 48be8: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED /* * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ left = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; left += lhs->tv_nsec; 48bec: 2a28 0004 movel %a0@(4),%d5 <== NOT EXECUTED /* * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ left = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; 48bf0: 2810 movel %a0@,%d4 <== NOT EXECUTED left += lhs->tv_nsec; right = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; 48bf2: 4bf9 0005 4618 lea 54618 <__muldi3>,%a5 <== NOT EXECUTED 48bf8: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 48bfa: 5bc0 smi %d0 <== NOT EXECUTED 48bfc: 49c0 extbl %d0 <== NOT EXECUTED 48bfe: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48c00: 4e95 jsr %a5@ <== NOT EXECUTED right += rhs->tv_nsec; 48c02: 262a 0004 movel %a2@(4),%d3 <== NOT EXECUTED 48c06: 5bc2 smi %d2 <== NOT EXECUTED 48c08: 49c2 extbl %d2 <== NOT EXECUTED 48c0a: d283 addl %d3,%d1 <== NOT EXECUTED 48c0c: d182 addxl %d2,%d0 <== NOT EXECUTED * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ left = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; left += lhs->tv_nsec; right = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; 48c0e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED right += rhs->tv_nsec; 48c14: 2640 moveal %d0,%a3 <== NOT EXECUTED 48c16: 2841 moveal %d1,%a4 <== NOT EXECUTED if ( right == 0 ) { 48c18: 4a8b tstl %a3 <== NOT EXECUTED 48c1a: 6614 bnes 48c30 <_Timespec_Divide+0x5c> <== NOT EXECUTED 48c1c: 4a8c tstl %a4 <== NOT EXECUTED 48c1e: 6610 bnes 48c30 <_Timespec_Divide+0x5c> <== NOT EXECUTED *ival_percentage = 0; 48c20: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 48c24: 4290 clrl %a0@ <== NOT EXECUTED *fval_percentage = 0; 48c26: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 48c2a: 4290 clrl %a0@ <== NOT EXECUTED 48c2c: 6000 00d4 braw 48d02 <_Timespec_Divide+0x12e> <== NOT EXECUTED * Put it back in the timespec result. * * TODO: Rounding on the last digit of the fval. */ answer = (left * 100000) / right; 48c30: 2605 movel %d5,%d3 <== NOT EXECUTED 48c32: 5bc2 smi %d2 <== NOT EXECUTED 48c34: 49c2 extbl %d2 <== NOT EXECUTED /* * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ left = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; 48c36: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED * Put it back in the timespec result. * * TODO: Rounding on the last digit of the fval. */ answer = (left * 100000) / right; 48c3c: 7a1b moveq #27,%d5 <== NOT EXECUTED /* * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ left = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; 48c3e: 42a7 clrl %sp@- <== NOT EXECUTED 48c40: 2f04 movel %d4,%sp@- <== NOT EXECUTED 48c42: 5bc0 smi %d0 <== NOT EXECUTED 48c44: 49c0 extbl %d0 <== NOT EXECUTED 48c46: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48c48: 4e95 jsr %a5@ <== NOT EXECUTED * Put it back in the timespec result. * * TODO: Rounding on the last digit of the fval. */ answer = (left * 100000) / right; 48c4a: d283 addl %d3,%d1 <== NOT EXECUTED 48c4c: d182 addxl %d2,%d0 <== NOT EXECUTED 48c4e: 2801 movel %d1,%d4 <== NOT EXECUTED 48c50: 741e moveq #30,%d2 <== NOT EXECUTED 48c52: e4ac lsrl %d2,%d4 <== NOT EXECUTED 48c54: 2400 movel %d0,%d2 <== NOT EXECUTED 48c56: 2601 movel %d1,%d3 <== NOT EXECUTED 48c58: e58a lsll #2,%d2 <== NOT EXECUTED 48c5a: 8484 orl %d4,%d2 <== NOT EXECUTED 48c5c: e58b lsll #2,%d3 <== NOT EXECUTED 48c5e: 2803 movel %d3,%d4 <== NOT EXECUTED 48c60: 2c02 movel %d2,%d6 <== NOT EXECUTED 48c62: eaac lsrl %d5,%d4 <== NOT EXECUTED 48c64: 2e03 movel %d3,%d7 <== NOT EXECUTED 48c66: eb8e lsll #5,%d6 <== NOT EXECUTED 48c68: 8c84 orl %d4,%d6 <== NOT EXECUTED 48c6a: eb8f lsll #5,%d7 <== NOT EXECUTED 48c6c: 2806 movel %d6,%d4 <== NOT EXECUTED 48c6e: 2a07 movel %d7,%d5 <== NOT EXECUTED 48c70: 9a83 subl %d3,%d5 <== NOT EXECUTED 48c72: 9982 subxl %d2,%d4 <== NOT EXECUTED 48c74: da81 addl %d1,%d5 <== NOT EXECUTED 48c76: d980 addxl %d0,%d4 <== NOT EXECUTED 48c78: 721e moveq #30,%d1 <== NOT EXECUTED 48c7a: 2005 movel %d5,%d0 <== NOT EXECUTED 48c7c: 2404 movel %d4,%d2 <== NOT EXECUTED 48c7e: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 48c80: 2605 movel %d5,%d3 <== NOT EXECUTED 48c82: e58a lsll #2,%d2 <== NOT EXECUTED 48c84: 8480 orl %d0,%d2 <== NOT EXECUTED 48c86: e58b lsll #2,%d3 <== NOT EXECUTED /* * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ left = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; 48c88: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED * Put it back in the timespec result. * * TODO: Rounding on the last digit of the fval. */ answer = (left * 100000) / right; 48c8e: da83 addl %d3,%d5 <== NOT EXECUTED 48c90: d982 addxl %d2,%d4 <== NOT EXECUTED 48c92: 2f0c movel %a4,%sp@- <== NOT EXECUTED 48c94: 2005 movel %d5,%d0 <== NOT EXECUTED 48c96: 2404 movel %d4,%d2 <== NOT EXECUTED 48c98: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 48c9a: 2605 movel %d5,%d3 <== NOT EXECUTED 48c9c: e58a lsll #2,%d2 <== NOT EXECUTED 48c9e: 8480 orl %d0,%d2 <== NOT EXECUTED 48ca0: e58b lsll #2,%d3 <== NOT EXECUTED 48ca2: da83 addl %d3,%d5 <== NOT EXECUTED 48ca4: d982 addxl %d2,%d4 <== NOT EXECUTED 48ca6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48ca8: 741b moveq #27,%d2 <== NOT EXECUTED 48caa: 2005 movel %d5,%d0 <== NOT EXECUTED 48cac: 2605 movel %d5,%d3 <== NOT EXECUTED 48cae: e4a8 lsrl %d2,%d0 <== NOT EXECUTED 48cb0: eb8b lsll #5,%d3 <== NOT EXECUTED 48cb2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48cb4: 2404 movel %d4,%d2 <== NOT EXECUTED 48cb6: eb8a lsll #5,%d2 <== NOT EXECUTED 48cb8: 8480 orl %d0,%d2 <== NOT EXECUTED 48cba: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48cbc: 45f9 0005 4680 lea 54680 <__udivdi3>,%a2 <== NOT EXECUTED 48cc2: 4e92 jsr %a2@ <== NOT EXECUTED 48cc4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED *ival_percentage = answer / 1000; 48cca: 4878 03e8 pea 3e8 <== NOT EXECUTED * Put it back in the timespec result. * * TODO: Rounding on the last digit of the fval. */ answer = (left * 100000) / right; 48cce: 2400 movel %d0,%d2 <== NOT EXECUTED 48cd0: 2601 movel %d1,%d3 <== NOT EXECUTED *ival_percentage = answer / 1000; 48cd2: 42a7 clrl %sp@- <== NOT EXECUTED 48cd4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48cd6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48cd8: 4e92 jsr %a2@ <== NOT EXECUTED 48cda: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED *fval_percentage = answer % 1000; 48ce0: 4878 03e8 pea 3e8 <== NOT EXECUTED * TODO: Rounding on the last digit of the fval. */ answer = (left * 100000) / right; *ival_percentage = answer / 1000; 48ce4: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED *fval_percentage = answer % 1000; 48ce8: 42a7 clrl %sp@- <== NOT EXECUTED * TODO: Rounding on the last digit of the fval. */ answer = (left * 100000) / right; *ival_percentage = answer / 1000; 48cea: 2081 movel %d1,%a0@ <== NOT EXECUTED *fval_percentage = answer % 1000; 48cec: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48cee: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48cf0: 4eb9 0005 4a34 jsr 54a34 <__umoddi3> <== NOT EXECUTED 48cf6: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 48cfa: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 48d00: 2081 movel %d1,%a0@ <== NOT EXECUTED } 48d02: 4cee 3cfc ffd8 moveml %fp@(-40),%d2-%d7/%a2-%a5 <== NOT EXECUTED 48d08: 4e5e unlk %fp <== NOT EXECUTED 48d0a: 4e75 rts 0005e414 <_Timespec_Divide_by_integer>: void _Timespec_Divide_by_integer( const struct timespec *time, uint32_t iterations, struct timespec *result ) { 5e414: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 5e418: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED /* * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ t = time->tv_sec; t *= TOD_NANOSECONDS_PER_SECOND; 5e41c: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED void _Timespec_Divide_by_integer( const struct timespec *time, uint32_t iterations, struct timespec *result ) { 5e422: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED /* * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ t = time->tv_sec; t *= TOD_NANOSECONDS_PER_SECOND; 5e426: 42a7 clrl %sp@- <== NOT EXECUTED 5e428: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 5e42a: 5bc0 smi %d0 <== NOT EXECUTED 5e42c: 49c0 extbl %d0 <== NOT EXECUTED 5e42e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5e430: 4eb9 0007 6c58 jsr 76c58 <__muldi3> <== NOT EXECUTED /* * Divide to get nanoseconds per iteration */ t /= iterations; 5e436: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5e43c: 2eae 000c movel %fp@(12),%sp@ <== NOT EXECUTED * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ t = time->tv_sec; t *= TOD_NANOSECONDS_PER_SECOND; t += time->tv_nsec; 5e440: 262a 0004 movel %a2@(4),%d3 <== NOT EXECUTED 5e444: 5bc2 smi %d2 <== NOT EXECUTED 5e446: 49c2 extbl %d2 <== NOT EXECUTED /* * Divide to get nanoseconds per iteration */ t /= iterations; 5e448: d283 addl %d3,%d1 <== NOT EXECUTED 5e44a: d182 addxl %d2,%d0 <== NOT EXECUTED 5e44c: 42a7 clrl %sp@- <== NOT EXECUTED 5e44e: 45f9 0007 6d3c lea 76d3c <__udivdi3>,%a2 <== NOT EXECUTED 5e454: 2f01 movel %d1,%sp@- <== NOT EXECUTED 5e456: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5e458: 4e92 jsr %a2@ <== NOT EXECUTED 5e45a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED /* * Put it back in the timespec result */ result->tv_sec = t / TOD_NANOSECONDS_PER_SECOND; 5e460: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED /* * Divide to get nanoseconds per iteration */ t /= iterations; 5e466: 2400 movel %d0,%d2 <== NOT EXECUTED 5e468: 2601 movel %d1,%d3 <== NOT EXECUTED /* * Put it back in the timespec result */ result->tv_sec = t / TOD_NANOSECONDS_PER_SECOND; 5e46a: 42a7 clrl %sp@- <== NOT EXECUTED 5e46c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5e46e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5e470: 4e92 jsr %a2@ <== NOT EXECUTED 5e472: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED result->tv_nsec = t % TOD_NANOSECONDS_PER_SECOND; 5e478: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED void _Timespec_Divide_by_integer( const struct timespec *time, uint32_t iterations, struct timespec *result ) { 5e47e: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED /* * Put it back in the timespec result */ result->tv_sec = t / TOD_NANOSECONDS_PER_SECOND; result->tv_nsec = t % TOD_NANOSECONDS_PER_SECOND; 5e482: 42a7 clrl %sp@- <== NOT EXECUTED /* * Put it back in the timespec result */ result->tv_sec = t / TOD_NANOSECONDS_PER_SECOND; 5e484: 2481 movel %d1,%a2@ <== NOT EXECUTED result->tv_nsec = t % TOD_NANOSECONDS_PER_SECOND; 5e486: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5e488: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5e48a: 4eb9 0007 70f0 jsr 770f0 <__umoddi3> <== NOT EXECUTED 5e490: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED 5e494: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 5e49a: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 5e4a0: 4e5e unlk %fp <== NOT EXECUTED 5e4a2: 4e75 rts 0004fff8 <_Timespec_From_ticks>: void _Timespec_From_ticks( uint32_t ticks, struct timespec *time ) { 4fff8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED uint32_t usecs; usecs = ticks * _TOD_Microseconds_per_tick; 4fffc: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 50000: 43f9 0006 2b1a lea 62b1a <_TOD_Microseconds_per_tick>,%a1 <== NOT EXECUTED 50006: 4c11 0800 mulsl %a1@,%d0 <== NOT EXECUTED void _Timespec_From_ticks( uint32_t ticks, struct timespec *time ) { 5000a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5000c: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED uint32_t usecs; usecs = ticks * _TOD_Microseconds_per_tick; time->tv_sec = usecs / TOD_MICROSECONDS_PER_SECOND; 50010: 243c 000f 4240 movel #1000000,%d2 <== NOT EXECUTED 50016: 4c42 0001 remul %d2,%d1,%d0 <== NOT EXECUTED 5001a: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 5001e: 2080 movel %d0,%a0@ <== NOT EXECUTED time->tv_nsec = (usecs % TOD_MICROSECONDS_PER_SECOND) * 50020: 2401 movel %d1,%d2 <== NOT EXECUTED 50022: 2001 movel %d1,%d0 <== NOT EXECUTED 50024: e58a lsll #2,%d2 <== NOT EXECUTED 50026: ef88 lsll #7,%d0 <== NOT EXECUTED 50028: 9082 subl %d2,%d0 <== NOT EXECUTED TOD_NANOSECONDS_PER_MICROSECOND; } 5002a: 241f movel %sp@+,%d2 <== NOT EXECUTED uint32_t usecs; usecs = ticks * _TOD_Microseconds_per_tick; time->tv_sec = usecs / TOD_MICROSECONDS_PER_SECOND; time->tv_nsec = (usecs % TOD_MICROSECONDS_PER_SECOND) * 5002c: d081 addl %d1,%d0 <== NOT EXECUTED 5002e: e788 lsll #3,%d0 <== NOT EXECUTED TOD_NANOSECONDS_PER_MICROSECOND; } 50030: 4e5e unlk %fp <== NOT EXECUTED uint32_t usecs; usecs = ticks * _TOD_Microseconds_per_tick; time->tv_sec = usecs / TOD_MICROSECONDS_PER_SECOND; time->tv_nsec = (usecs % TOD_MICROSECONDS_PER_SECOND) * 50032: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED TOD_NANOSECONDS_PER_MICROSECOND; } 50036: 4e75 rts 00049084 <_Timespec_Greater_than>: bool _Timespec_Greater_than( const struct timespec *lhs, const struct timespec *rhs ) { 49084: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49088: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 4908c: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED if ( lhs->tv_sec > rhs->tv_sec ) 49090: 2211 movel %a1@,%d1 <== NOT EXECUTED 49092: 2010 movel %a0@,%d0 <== NOT EXECUTED 49094: b081 cmpl %d1,%d0 <== NOT EXECUTED 49096: 6c04 bges 4909c <_Timespec_Greater_than+0x18> <== NOT EXECUTED 49098: 7001 moveq #1,%d0 <== NOT EXECUTED 4909a: 6014 bras 490b0 <_Timespec_Greater_than+0x2c> <== NOT EXECUTED return TRUE; if ( lhs->tv_sec < rhs->tv_sec ) 4909c: b081 cmpl %d1,%d0 <== NOT EXECUTED 4909e: 6f04 bles 490a4 <_Timespec_Greater_than+0x20> <== NOT EXECUTED 490a0: 4200 clrb %d0 <== NOT EXECUTED 490a2: 600c bras 490b0 <_Timespec_Greater_than+0x2c> <== NOT EXECUTED return FALSE; /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec > rhs->tv_nsec ) 490a4: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 490a8: b1e9 0004 cmpal %a1@(4),%a0 <== NOT EXECUTED 490ac: 5dc0 slt %d0 <== NOT EXECUTED 490ae: 4480 negl %d0 <== NOT EXECUTED return TRUE; return FALSE; } 490b0: 4e5e unlk %fp <== NOT EXECUTED 490b2: 4e75 rts 00050038 <_Timespec_Is_valid>: #include bool _Timespec_Is_valid( const struct timespec *time ) { 50038: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5003c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !time ) 50040: 4a88 tstl %a0 <== NOT EXECUTED 50042: 6716 beqs 5005a <_Timespec_Is_valid+0x22> <== NOT EXECUTED return FALSE; if ( time->tv_sec < 0 ) 50044: 4a90 tstl %a0@ <== NOT EXECUTED 50046: 6d12 blts 5005a <_Timespec_Is_valid+0x22> <== NOT EXECUTED return FALSE; if ( time->tv_nsec < 0 ) 50048: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED 5004c: 6d0c blts 5005a <_Timespec_Is_valid+0x22> <== NOT EXECUTED 5004e: 0c80 3b9a c9ff cmpil #999999999,%d0 <== NOT EXECUTED 50054: 53c0 sls %d0 <== NOT EXECUTED 50056: 4480 negl %d0 <== NOT EXECUTED 50058: 6002 bras 5005c <_Timespec_Is_valid+0x24> <== NOT EXECUTED 5005a: 4200 clrb %d0 <== NOT EXECUTED if ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) return FALSE; return TRUE; } 5005c: 4e5e unlk %fp <== NOT EXECUTED 5005e: 4e75 rts 000490b4 <_Timespec_Less_than>: bool _Timespec_Less_than( const struct timespec *lhs, const struct timespec *rhs ) { 490b4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 490b8: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 490bc: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED if ( lhs->tv_sec < rhs->tv_sec ) 490c0: 2211 movel %a1@,%d1 <== NOT EXECUTED 490c2: 2010 movel %a0@,%d0 <== NOT EXECUTED 490c4: b081 cmpl %d1,%d0 <== NOT EXECUTED 490c6: 6f04 bles 490cc <_Timespec_Less_than+0x18> <== NOT EXECUTED 490c8: 7001 moveq #1,%d0 <== NOT EXECUTED 490ca: 6014 bras 490e0 <_Timespec_Less_than+0x2c> <== NOT EXECUTED return TRUE; if ( lhs->tv_sec > rhs->tv_sec ) 490cc: b081 cmpl %d1,%d0 <== NOT EXECUTED 490ce: 6c04 bges 490d4 <_Timespec_Less_than+0x20> <== NOT EXECUTED 490d0: 4200 clrb %d0 <== NOT EXECUTED 490d2: 600c bras 490e0 <_Timespec_Less_than+0x2c> <== NOT EXECUTED return FALSE; /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec < rhs->tv_nsec ) 490d4: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 490d8: b1e9 0004 cmpal %a1@(4),%a0 <== NOT EXECUTED 490dc: 5ec0 sgt %d0 <== NOT EXECUTED 490de: 4480 negl %d0 <== NOT EXECUTED return TRUE; return FALSE; } 490e0: 4e5e unlk %fp <== NOT EXECUTED 490e2: 4e75 rts 00047944 <_Timespec_Subtract>: void _Timespec_Subtract( const struct timespec *start, const struct timespec *end, struct timespec *result ) { 47944: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47948: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4794a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4794e: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED if (end->tv_nsec < start->tv_nsec) { 47952: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED void _Timespec_Subtract( const struct timespec *start, const struct timespec *end, struct timespec *result ) { 47956: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED if (end->tv_nsec < start->tv_nsec) { 4795a: b0a8 0004 cmpl %a0@(4),%d0 <== NOT EXECUTED 4795e: 6f1c bles 4797c <_Timespec_Subtract+0x38> <== NOT EXECUTED result->tv_sec = end->tv_sec - start->tv_sec - 1; 47960: 2010 movel %a0@,%d0 <== NOT EXECUTED result->tv_nsec = 47962: 2228 0004 movel %a0@(4),%d1 <== NOT EXECUTED struct timespec *result ) { if (end->tv_nsec < start->tv_nsec) { result->tv_sec = end->tv_sec - start->tv_sec - 1; 47966: 5380 subql #1,%d0 <== NOT EXECUTED result->tv_nsec = 47968: 0681 3b9a ca00 addil #1000000000,%d1 <== NOT EXECUTED struct timespec *result ) { if (end->tv_nsec < start->tv_nsec) { result->tv_sec = end->tv_sec - start->tv_sec - 1; 4796e: 9092 subl %a2@,%d0 <== NOT EXECUTED result->tv_nsec = 47970: 92aa 0004 subl %a2@(4),%d1 <== NOT EXECUTED struct timespec *result ) { if (end->tv_nsec < start->tv_nsec) { result->tv_sec = end->tv_sec - start->tv_sec - 1; 47974: 2280 movel %d0,%a1@ <== NOT EXECUTED result->tv_nsec = 47976: 2341 0004 movel %d1,%a1@(4) <== NOT EXECUTED 4797a: 6012 bras 4798e <_Timespec_Subtract+0x4a> <== NOT EXECUTED (TOD_NANOSECONDS_PER_SECOND - start->tv_nsec) + end->tv_nsec; } else { result->tv_sec = end->tv_sec - start->tv_sec; 4797c: 2010 movel %a0@,%d0 <== NOT EXECUTED 4797e: 9092 subl %a2@,%d0 <== NOT EXECUTED 47980: 2280 movel %d0,%a1@ <== NOT EXECUTED result->tv_nsec = end->tv_nsec - start->tv_nsec; 47982: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED 47986: 90aa 0004 subl %a2@(4),%d0 <== NOT EXECUTED 4798a: 2340 0004 movel %d0,%a1@(4) <== NOT EXECUTED } } 4798e: 245f moveal %sp@+,%a2 <== NOT EXECUTED 47990: 4e5e unlk %fp <== NOT EXECUTED 47992: 4e75 rts 00050060 <_Timespec_To_ticks>: */ uint32_t _Timespec_To_ticks( const struct timespec *time ) { 50060: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 50064: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED uint32_t ticks; if ( (time->tv_sec == 0) && (time->tv_nsec == 0) ) 50068: 2210 movel %a0@,%d1 <== NOT EXECUTED */ uint32_t _Timespec_To_ticks( const struct timespec *time ) { 5006a: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED uint32_t ticks; if ( (time->tv_sec == 0) && (time->tv_nsec == 0) ) 5006e: 4a81 tstl %d1 <== NOT EXECUTED 50070: 660a bnes 5007c <_Timespec_To_ticks+0x1c> <== NOT EXECUTED 50072: 4aa8 0004 tstl %a0@(4) <== NOT EXECUTED 50076: 6604 bnes 5007c <_Timespec_To_ticks+0x1c> <== NOT EXECUTED 50078: 4280 clrl %d0 <== NOT EXECUTED 5007a: 6030 bras 500ac <_Timespec_To_ticks+0x4c> <== NOT EXECUTED return 0; ticks = time->tv_sec * TOD_TICKS_PER_SECOND; 5007c: 2039 0006 2b1a movel 62b1a <_TOD_Microseconds_per_tick>,%d0 <== NOT EXECUTED 50082: 243c 000f 4240 movel #1000000,%d2 <== NOT EXECUTED 50088: 4c40 2002 remul %d0,%d2,%d2 <== NOT EXECUTED 5008c: 4c01 2800 mulsl %d1,%d2 <== NOT EXECUTED ticks += (time->tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND) / 50090: 2228 0004 movel %a0@(4),%d1 <== NOT EXECUTED 50094: 283c 0000 03e8 movel #1000,%d4 <== NOT EXECUTED 5009a: 4c44 1001 remul %d4,%d1,%d1 <== NOT EXECUTED 5009e: 4c40 1001 remul %d0,%d1,%d1 <== NOT EXECUTED 500a2: 2001 movel %d1,%d0 <== NOT EXECUTED 500a4: d082 addl %d2,%d0 <== NOT EXECUTED _TOD_Microseconds_per_tick; if (ticks) 500a6: 6604 bnes 500ac <_Timespec_To_ticks+0x4c> <== NOT EXECUTED 500a8: 103c 0001 moveb #1,%d0 <== NOT EXECUTED return ticks; return 1; } 500ac: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 500b0: 4e5e unlk %fp <== NOT EXECUTED 500b2: 4e75 rts 0004a2b4 <_User_extensions_Add_API_set>: */ void _User_extensions_Add_API_set ( User_extensions_Control *the_extension ) { 4a2b4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a2b8: 2f0b movel %a3,%sp@- <== NOT EXECUTED _Chain_Append( &_User_extensions_List, &the_extension->Node ); 4a2ba: 47f9 0004 58a8 lea 458a8 <_Chain_Append>,%a3 <== NOT EXECUTED */ void _User_extensions_Add_API_set ( User_extensions_Control *the_extension ) { 4a2c0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a2c2: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED _Chain_Append( &_User_extensions_List, &the_extension->Node ); 4a2c6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a2c8: 4879 0005 6e42 pea 56e42 <_User_extensions_List> <== NOT EXECUTED 4a2ce: 4e93 jsr %a3@ <== NOT EXECUTED /* * If a switch handler is present, append it to the switch chain. */ if ( the_extension->Callouts.thread_switch != NULL ) { 4a2d0: 202a 0024 movel %a2@(36),%d0 <== NOT EXECUTED 4a2d4: 508f addql #8,%sp <== NOT EXECUTED 4a2d6: 6712 beqs 4a2ea <_User_extensions_Add_API_set+0x36> <== NOT EXECUTED the_extension->Switch.thread_switch = the_extension->Callouts.thread_switch; _Chain_Append( 4a2d8: 486a 0008 pea %a2@(8) <== NOT EXECUTED 4a2dc: 4879 0005 6ca8 pea 56ca8 <_User_extensions_Switches_list> <== NOT EXECUTED /* * If a switch handler is present, append it to the switch chain. */ if ( the_extension->Callouts.thread_switch != NULL ) { the_extension->Switch.thread_switch = the_extension->Callouts.thread_switch; 4a2e2: 2540 0010 movel %d0,%a2@(16) <== NOT EXECUTED _Chain_Append( 4a2e6: 4e93 jsr %a3@ <== NOT EXECUTED 4a2e8: 508f addql #8,%sp <== NOT EXECUTED &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4a2ea: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4a2ee: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4a2f2: 4e5e unlk %fp <== NOT EXECUTED 4a2f4: 4e75 rts <== NOT EXECUTED ... 0004a2f8 <_User_extensions_Add_set>: void _User_extensions_Add_set ( User_extensions_Control *the_extension, User_extensions_Table *extension_table ) { 4a2f8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a2fc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a2fe: 2f0a movel %a2,%sp@- <== NOT EXECUTED the_extension->Callouts = *extension_table; 4a300: 4878 0020 pea 20 <== NOT EXECUTED void _User_extensions_Add_set ( User_extensions_Control *the_extension, User_extensions_Table *extension_table ) { 4a304: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4a308: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED the_extension->Callouts = *extension_table; 4a30c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a30e: 486b 0014 pea %a3@(20) <== NOT EXECUTED 4a312: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED _Chain_Append( &_User_extensions_List, &the_extension->Node ); 4a318: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a31a: 4879 0005 6e42 pea 56e42 <_User_extensions_List> <== NOT EXECUTED 4a320: 4eb9 0004 58a8 jsr 458a8 <_Chain_Append> <== NOT EXECUTED /* * If a switch handler is present, append it to the switch chain. */ if ( extension_table->thread_switch != NULL ) { 4a326: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4a32a: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4a330: 6726 beqs 4a358 <_User_extensions_Add_set+0x60> <== NOT EXECUTED the_extension->Switch.thread_switch = extension_table->thread_switch; _Chain_Append( 4a332: 220b movel %a3,%d1 <== NOT EXECUTED 4a334: 5081 addql #8,%d1 <== NOT EXECUTED 4a336: 2d41 000c movel %d1,%fp@(12) <== NOT EXECUTED 4a33a: 223c 0005 6ca8 movel #355496,%d1 <== NOT EXECUTED 4a340: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4a344: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED /* * If a switch handler is present, append it to the switch chain. */ if ( extension_table->thread_switch != NULL ) { the_extension->Switch.thread_switch = extension_table->thread_switch; 4a348: 2740 0010 movel %d0,%a3@(16) <== NOT EXECUTED _Chain_Append( &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4a34c: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4a350: 4e5e unlk %fp <== NOT EXECUTED * If a switch handler is present, append it to the switch chain. */ if ( extension_table->thread_switch != NULL ) { the_extension->Switch.thread_switch = extension_table->thread_switch; _Chain_Append( 4a352: 4ef9 0004 58a8 jmp 458a8 <_Chain_Append> <== NOT EXECUTED &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4a358: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4a35c: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4a360: 4e5e unlk %fp <== NOT EXECUTED 4a362: 4e75 rts 00047a9e <_User_extensions_Fatal>: void _User_extensions_Fatal ( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 47a9e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47aa2: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; 47aa4: 2479 0005 6e4a moveal 56e4a <_User_extensions_List+0x8>,%a2 <== NOT EXECUTED void _User_extensions_Fatal ( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 47aaa: 2f02 movel %d2,%sp@- <== NOT EXECUTED the_node = the_node->previous ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.fatal != NULL ) (*the_extension->Callouts.fatal)( the_source, is_internal, the_error ); 47aac: 4282 clrl %d2 <== NOT EXECUTED 47aae: 142e 000f moveb %fp@(15),%d2 <== NOT EXECUTED 47ab2: 601e bras 47ad2 <_User_extensions_Fatal+0x34> <== NOT EXECUTED !_Chain_Is_head( &_User_extensions_List, the_node ) ; the_node = the_node->previous ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.fatal != NULL ) 47ab4: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 47ab8: 4a88 tstl %a0 <== NOT EXECUTED 47aba: 6712 beqs 47ace <_User_extensions_Fatal+0x30> <== NOT EXECUTED (*the_extension->Callouts.fatal)( the_source, is_internal, the_error ); 47abc: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 47ac0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47ac2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47ac6: 4e90 jsr %a0@ <== NOT EXECUTED 47ac8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; !_Chain_Is_head( &_User_extensions_List, the_node ) ; the_node = the_node->previous ) { 47ace: 246a 0004 moveal %a2@(4),%a2 <== NOT EXECUTED { Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; !_Chain_Is_head( &_User_extensions_List, the_node ) ; 47ad2: b5fc 0005 6e42 cmpal #355906,%a2 <== NOT EXECUTED 47ad8: 66da bnes 47ab4 <_User_extensions_Fatal+0x16> <== NOT EXECUTED the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.fatal != NULL ) (*the_extension->Callouts.fatal)( the_source, is_internal, the_error ); } } 47ada: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47ade: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47ae2: 4e5e unlk %fp <== NOT EXECUTED 47ae4: 4e75 rts <== NOT EXECUTED ... 00047994 <_User_extensions_Handler_initialization>: void _User_extensions_Handler_initialization ( uint32_t number_of_extensions, User_extensions_Table *initial_extensions ) { 47994: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 47998: 48d7 043c moveml %d2-%d5/%a2,%sp@ <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4799c: 203c 0005 6e46 movel #355910,%d0 <== NOT EXECUTED 479a2: 23c0 0005 6e42 movel %d0,56e42 <_User_extensions_List> <== NOT EXECUTED 479a8: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 479ac: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 479b0: 203c 0005 6e42 movel #355906,%d0 <== NOT EXECUTED 479b6: 23c0 0005 6e4a movel %d0,56e4a <_User_extensions_List+0x8> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 479bc: 203c 0005 6cac movel #355500,%d0 <== NOT EXECUTED 479c2: 23c0 0005 6ca8 movel %d0,56ca8 <_User_extensions_Switches_list> <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 479c8: 203c 0005 6ca8 movel #355496,%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 479ce: 42b9 0005 6e46 clrl 56e46 <_User_extensions_List+0x4> <== NOT EXECUTED 479d4: 42b9 0005 6cac clrl 56cac <_User_extensions_Switches_list+0x4> <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 479da: 23c0 0005 6cb0 movel %d0,56cb0 <_User_extensions_Switches_list+0x8> <== NOT EXECUTED uint32_t i; _Chain_Initialize_empty( &_User_extensions_List ); _Chain_Initialize_empty( &_User_extensions_Switches_list ); if ( initial_extensions ) { 479e0: 4a84 tstl %d4 <== NOT EXECUTED 479e2: 674e beqs 47a32 <_User_extensions_Handler_initialization+0x9e> <== NOT EXECUTED extension = (User_extensions_Control *) 479e4: 2005 movel %d5,%d0 <== NOT EXECUTED 479e6: 2405 movel %d5,%d2 <== NOT EXECUTED 479e8: e588 lsll #2,%d0 <== NOT EXECUTED 479ea: e98a lsll #4,%d2 <== NOT EXECUTED 479ec: 9480 subl %d0,%d2 <== NOT EXECUTED 479ee: d485 addl %d5,%d2 <== NOT EXECUTED 479f0: e58a lsll #2,%d2 <== NOT EXECUTED 479f2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 479f4: 4eb9 0004 7e08 jsr 47e08 <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED _Workspace_Allocate_or_fatal_error( number_of_extensions * sizeof( User_extensions_Control ) ); memset ( 479fa: 2f02 movel %d2,%sp@- <== NOT EXECUTED _Chain_Initialize_empty( &_User_extensions_List ); _Chain_Initialize_empty( &_User_extensions_Switches_list ); if ( initial_extensions ) { extension = (User_extensions_Control *) 479fc: 2600 movel %d0,%d3 <== NOT EXECUTED _Workspace_Allocate_or_fatal_error( number_of_extensions * sizeof( User_extensions_Control ) ); memset ( 479fe: 4282 clrl %d2 <== NOT EXECUTED 47a00: 42a7 clrl %sp@- <== NOT EXECUTED 0, number_of_extensions * sizeof( User_extensions_Control ) ); for ( i = 0 ; i < number_of_extensions ; i++ ) { _User_extensions_Add_set (extension, &initial_extensions[i]); 47a02: 45f9 0004 a2f8 lea 4a2f8 <_User_extensions_Add_set>,%a2 <== NOT EXECUTED extension = (User_extensions_Control *) _Workspace_Allocate_or_fatal_error( number_of_extensions * sizeof( User_extensions_Control ) ); memset ( 47a08: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47a0a: 4eb9 0004 b464 jsr 4b464 <== NOT EXECUTED 47a10: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 47a16: 6016 bras 47a2e <_User_extensions_Handler_initialization+0x9a> <== NOT EXECUTED 0, number_of_extensions * sizeof( User_extensions_Control ) ); for ( i = 0 ; i < number_of_extensions ; i++ ) { _User_extensions_Add_set (extension, &initial_extensions[i]); 47a18: 2f04 movel %d4,%sp@- <== NOT EXECUTED extension, 0, number_of_extensions * sizeof( User_extensions_Control ) ); for ( i = 0 ; i < number_of_extensions ; i++ ) { 47a1a: 5282 addql #1,%d2 <== NOT EXECUTED 47a1c: 0684 0000 0020 addil #32,%d4 <== NOT EXECUTED _User_extensions_Add_set (extension, &initial_extensions[i]); 47a22: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47a24: 4e92 jsr %a2@ <== NOT EXECUTED extension, 0, number_of_extensions * sizeof( User_extensions_Control ) ); for ( i = 0 ; i < number_of_extensions ; i++ ) { 47a26: 508f addql #8,%sp <== NOT EXECUTED _User_extensions_Add_set (extension, &initial_extensions[i]); extension++; 47a28: 0683 0000 0034 addil #52,%d3 <== NOT EXECUTED extension, 0, number_of_extensions * sizeof( User_extensions_Control ) ); for ( i = 0 ; i < number_of_extensions ; i++ ) { 47a2e: ba82 cmpl %d2,%d5 <== NOT EXECUTED 47a30: 62e6 bhis 47a18 <_User_extensions_Handler_initialization+0x84> <== NOT EXECUTED _User_extensions_Add_set (extension, &initial_extensions[i]); extension++; } } } 47a32: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED 47a38: 4e5e unlk %fp <== NOT EXECUTED 47a3a: 4e75 rts 0004b704 <_User_extensions_Remove_set>: */ void _User_extensions_Remove_set ( User_extensions_Control *the_extension ) { 4b704: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b708: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b70a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED _Chain_Extract( &the_extension->Node ); 4b70e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b710: 4eb9 0004 f3b0 jsr 4f3b0 <_Chain_Extract> <== NOT EXECUTED /* * If a switch handler is present, remove it. */ if ( the_extension->Callouts.thread_switch != NULL ) 4b716: 588f addql #4,%sp <== NOT EXECUTED 4b718: 4aaa 0024 tstl %a2@(36) <== NOT EXECUTED 4b71c: 6712 beqs 4b730 <_User_extensions_Remove_set+0x2c> <== NOT EXECUTED _Chain_Extract( &the_extension->Switch.Node ); 4b71e: 508a addql #8,%a2 <== NOT EXECUTED 4b720: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } 4b724: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4b728: 4e5e unlk %fp <== NOT EXECUTED /* * If a switch handler is present, remove it. */ if ( the_extension->Callouts.thread_switch != NULL ) _Chain_Extract( &the_extension->Switch.Node ); 4b72a: 4ef9 0004 f3b0 jmp 4f3b0 <_Chain_Extract> <== NOT EXECUTED } 4b730: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4b734: 4e5e unlk %fp <== NOT EXECUTED 4b736: 4e75 rts 00047a3c <_User_extensions_Thread_begin>: */ void _User_extensions_Thread_begin ( Thread_Control *executing ) { 47a3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47a40: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; 47a42: 2479 0005 6e42 moveal 56e42 <_User_extensions_List>,%a2 <== NOT EXECUTED 47a48: 6012 bras 47a5c <_User_extensions_Thread_begin+0x20> <== NOT EXECUTED !_Chain_Is_tail( &_User_extensions_List, the_node ) ; the_node = the_node->next ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_begin != NULL ) 47a4a: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED 47a4e: 4a88 tstl %a0 <== NOT EXECUTED 47a50: 6708 beqs 47a5a <_User_extensions_Thread_begin+0x1e> <== NOT EXECUTED (*the_extension->Callouts.thread_begin)( executing ); 47a52: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47a56: 4e90 jsr %a0@ <== NOT EXECUTED 47a58: 588f addql #4,%sp <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; !_Chain_Is_tail( &_User_extensions_List, the_node ) ; the_node = the_node->next ) { 47a5a: 2452 moveal %a2@,%a2 <== NOT EXECUTED { Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; !_Chain_Is_tail( &_User_extensions_List, the_node ) ; 47a5c: b5fc 0005 6e46 cmpal #355910,%a2 <== NOT EXECUTED 47a62: 66e6 bnes 47a4a <_User_extensions_Thread_begin+0xe> <== NOT EXECUTED the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_begin != NULL ) (*the_extension->Callouts.thread_begin)( executing ); } } 47a64: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47a68: 4e5e unlk %fp <== NOT EXECUTED 47a6a: 4e75 rts 00047ae8 <_User_extensions_Thread_create>: */ bool _User_extensions_Thread_create ( Thread_Control *the_thread ) { 47ae8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47aec: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; bool status; for ( the_node = _User_extensions_List.first ; 47aee: 2479 0005 6e42 moveal 56e42 <_User_extensions_List>,%a2 <== NOT EXECUTED 47af4: 601c bras 47b12 <_User_extensions_Thread_create+0x2a> <== NOT EXECUTED !_Chain_Is_tail( &_User_extensions_List, the_node ) ; the_node = the_node->next ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_create != NULL ) { 47af6: 206a 0014 moveal %a2@(20),%a0 <== NOT EXECUTED 47afa: 4a88 tstl %a0 <== NOT EXECUTED 47afc: 6712 beqs 47b10 <_User_extensions_Thread_create+0x28> <== NOT EXECUTED status = (*the_extension->Callouts.thread_create)( 47afe: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47b02: 2f39 0005 6d62 movel 56d62 <_Thread_Executing>,%sp@- <== NOT EXECUTED 47b08: 4e90 jsr %a0@ <== NOT EXECUTED _Thread_Executing, the_thread ); if ( !status ) 47b0a: 508f addql #8,%sp <== NOT EXECUTED 47b0c: 4a00 tstb %d0 <== NOT EXECUTED 47b0e: 670c beqs 47b1c <_User_extensions_Thread_create+0x34> <== NOT EXECUTED User_extensions_Control *the_extension; bool status; for ( the_node = _User_extensions_List.first ; !_Chain_Is_tail( &_User_extensions_List, the_node ) ; the_node = the_node->next ) { 47b10: 2452 moveal %a2@,%a2 <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; bool status; for ( the_node = _User_extensions_List.first ; !_Chain_Is_tail( &_User_extensions_List, the_node ) ; 47b12: b5fc 0005 6e46 cmpal #355910,%a2 <== NOT EXECUTED 47b18: 66dc bnes 47af6 <_User_extensions_Thread_create+0xe> <== NOT EXECUTED 47b1a: 7001 moveq #1,%d0 <== NOT EXECUTED return FALSE; } } return TRUE; } 47b1c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47b20: 4e5e unlk %fp <== NOT EXECUTED 47b22: 4e75 rts 00047b24 <_User_extensions_Thread_delete>: */ void _User_extensions_Thread_delete ( Thread_Control *the_thread ) { 47b24: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47b28: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; 47b2a: 2479 0005 6e4a moveal 56e4a <_User_extensions_List+0x8>,%a2 <== NOT EXECUTED 47b30: 601a bras 47b4c <_User_extensions_Thread_delete+0x28> <== NOT EXECUTED !_Chain_Is_head( &_User_extensions_List, the_node ) ; the_node = the_node->previous ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_delete != NULL ) 47b32: 206a 0020 moveal %a2@(32),%a0 <== NOT EXECUTED 47b36: 4a88 tstl %a0 <== NOT EXECUTED 47b38: 670e beqs 47b48 <_User_extensions_Thread_delete+0x24> <== NOT EXECUTED (*the_extension->Callouts.thread_delete)( 47b3a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47b3e: 2f39 0005 6d62 movel 56d62 <_Thread_Executing>,%sp@- <== NOT EXECUTED 47b44: 4e90 jsr %a0@ <== NOT EXECUTED 47b46: 508f addql #8,%sp <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; !_Chain_Is_head( &_User_extensions_List, the_node ) ; the_node = the_node->previous ) { 47b48: 246a 0004 moveal %a2@(4),%a2 <== NOT EXECUTED { Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; !_Chain_Is_head( &_User_extensions_List, the_node ) ; 47b4c: b5fc 0005 6e42 cmpal #355906,%a2 <== NOT EXECUTED 47b52: 66de bnes 47b32 <_User_extensions_Thread_delete+0xe> <== NOT EXECUTED (*the_extension->Callouts.thread_delete)( _Thread_Executing, the_thread ); } } 47b54: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47b58: 4e5e unlk %fp <== NOT EXECUTED 47b5a: 4e75 rts 00047a6c <_User_extensions_Thread_exitted>: */ void _User_extensions_Thread_exitted ( Thread_Control *executing ) { 47a6c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47a70: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; 47a72: 2479 0005 6e4a moveal 56e4a <_User_extensions_List+0x8>,%a2 <== NOT EXECUTED 47a78: 6014 bras 47a8e <_User_extensions_Thread_exitted+0x22> <== NOT EXECUTED !_Chain_Is_head( &_User_extensions_List, the_node ) ; the_node = the_node->previous ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_exitted != NULL ) 47a7a: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED 47a7e: 4a88 tstl %a0 <== NOT EXECUTED 47a80: 6708 beqs 47a8a <_User_extensions_Thread_exitted+0x1e> <== NOT EXECUTED (*the_extension->Callouts.thread_exitted)( executing ); 47a82: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47a86: 4e90 jsr %a0@ <== NOT EXECUTED 47a88: 588f addql #4,%sp <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; !_Chain_Is_head( &_User_extensions_List, the_node ) ; the_node = the_node->previous ) { 47a8a: 246a 0004 moveal %a2@(4),%a2 <== NOT EXECUTED { Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; !_Chain_Is_head( &_User_extensions_List, the_node ) ; 47a8e: b5fc 0005 6e42 cmpal #355906,%a2 <== NOT EXECUTED 47a94: 66e4 bnes 47a7a <_User_extensions_Thread_exitted+0xe> <== NOT EXECUTED the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_exitted != NULL ) (*the_extension->Callouts.thread_exitted)( executing ); } } 47a96: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47a9a: 4e5e unlk %fp <== NOT EXECUTED 47a9c: 4e75 rts 00048360 <_User_extensions_Thread_restart>: */ void _User_extensions_Thread_restart ( Thread_Control *the_thread ) { 48360: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48364: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; 48366: 2479 0005 878a moveal 5878a <_User_extensions_List>,%a2 <== NOT EXECUTED 4836c: 6018 bras 48386 <_User_extensions_Thread_restart+0x26> <== NOT EXECUTED !_Chain_Is_tail( &_User_extensions_List, the_node ) ; the_node = the_node->next ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_restart != NULL ) 4836e: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 48372: 4a88 tstl %a0 <== NOT EXECUTED 48374: 670e beqs 48384 <_User_extensions_Thread_restart+0x24> <== NOT EXECUTED (*the_extension->Callouts.thread_restart)( 48376: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4837a: 2f39 0005 86aa movel 586aa <_Thread_Executing>,%sp@- <== NOT EXECUTED 48380: 4e90 jsr %a0@ <== NOT EXECUTED 48382: 508f addql #8,%sp <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; !_Chain_Is_tail( &_User_extensions_List, the_node ) ; the_node = the_node->next ) { 48384: 2452 moveal %a2@,%a2 <== NOT EXECUTED { Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; !_Chain_Is_tail( &_User_extensions_List, the_node ) ; 48386: b5fc 0005 878e cmpal #362382,%a2 <== NOT EXECUTED 4838c: 66e0 bnes 4836e <_User_extensions_Thread_restart+0xe> <== NOT EXECUTED (*the_extension->Callouts.thread_restart)( _Thread_Executing, the_thread ); } } 4838e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48392: 4e5e unlk %fp <== NOT EXECUTED 48394: 4e75 rts <== NOT EXECUTED ... 00047b5c <_User_extensions_Thread_start>: */ void _User_extensions_Thread_start ( Thread_Control *the_thread ) { 47b5c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47b60: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; 47b62: 2479 0005 6e42 moveal 56e42 <_User_extensions_List>,%a2 <== NOT EXECUTED 47b68: 6018 bras 47b82 <_User_extensions_Thread_start+0x26> <== NOT EXECUTED !_Chain_Is_tail( &_User_extensions_List, the_node ) ; the_node = the_node->next ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_start != NULL ) 47b6a: 206a 0018 moveal %a2@(24),%a0 <== NOT EXECUTED 47b6e: 4a88 tstl %a0 <== NOT EXECUTED 47b70: 670e beqs 47b80 <_User_extensions_Thread_start+0x24> <== NOT EXECUTED (*the_extension->Callouts.thread_start)( 47b72: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47b76: 2f39 0005 6d62 movel 56d62 <_Thread_Executing>,%sp@- <== NOT EXECUTED 47b7c: 4e90 jsr %a0@ <== NOT EXECUTED 47b7e: 508f addql #8,%sp <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; !_Chain_Is_tail( &_User_extensions_List, the_node ) ; the_node = the_node->next ) { 47b80: 2452 moveal %a2@,%a2 <== NOT EXECUTED { Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; !_Chain_Is_tail( &_User_extensions_List, the_node ) ; 47b82: b5fc 0005 6e46 cmpal #355910,%a2 <== NOT EXECUTED 47b88: 66e0 bnes 47b6a <_User_extensions_Thread_start+0xe> <== NOT EXECUTED (*the_extension->Callouts.thread_start)( _Thread_Executing, the_thread ); } } 47b8a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47b8e: 4e5e unlk %fp <== NOT EXECUTED 47b90: 4e75 rts <== NOT EXECUTED ... 00047b94 <_User_extensions_Thread_switch>: */ void _User_extensions_Thread_switch ( Thread_Control *executing, Thread_Control *heir ) { 47b94: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47b98: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Switch_control *the_extension_switch; for ( the_node = _User_extensions_Switches_list.first ; 47b9a: 2479 0005 6ca8 moveal 56ca8 <_User_extensions_Switches_list>,%a2 <== NOT EXECUTED 47ba0: 6012 bras 47bb4 <_User_extensions_Thread_switch+0x20> <== NOT EXECUTED !_Chain_Is_tail( &_User_extensions_Switches_list, the_node ) ; the_node = the_node->next ) { the_extension_switch = (User_extensions_Switch_control *) the_node; (*the_extension_switch->thread_switch)( executing, heir ); 47ba2: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 47ba6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47baa: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 47bae: 4e90 jsr %a0@ <== NOT EXECUTED Chain_Node *the_node; User_extensions_Switch_control *the_extension_switch; for ( the_node = _User_extensions_Switches_list.first ; !_Chain_Is_tail( &_User_extensions_Switches_list, the_node ) ; the_node = the_node->next ) { 47bb0: 2452 moveal %a2@,%a2 <== NOT EXECUTED 47bb2: 508f addql #8,%sp <== NOT EXECUTED { Chain_Node *the_node; User_extensions_Switch_control *the_extension_switch; for ( the_node = _User_extensions_Switches_list.first ; !_Chain_Is_tail( &_User_extensions_Switches_list, the_node ) ; 47bb4: b5fc 0005 6cac cmpal #355500,%a2 <== NOT EXECUTED 47bba: 66e6 bnes 47ba2 <_User_extensions_Thread_switch+0xe> <== NOT EXECUTED the_extension_switch = (User_extensions_Switch_control *) the_node; (*the_extension_switch->thread_switch)( executing, heir ); } } 47bbc: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47bc0: 4e5e unlk %fp <== NOT EXECUTED 47bc2: 4e75 rts 00048ff8 <_Watchdog_Adjust>: void _Watchdog_Adjust( Chain_Control *header, Watchdog_Adjust_directions direction, Watchdog_Interval units ) { 48ff8: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 48ffc: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 49000: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED void _Watchdog_Adjust( Chain_Control *header, Watchdog_Adjust_directions direction, Watchdog_Interval units ) { 49006: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4900a: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 4900e: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 49012: 2002 movel %d2,%d0 <== NOT EXECUTED 49014: 40c1 movew %sr,%d1 <== NOT EXECUTED 49016: 8081 orl %d1,%d0 <== NOT EXECUTED 49018: 46c0 movew %d0,%sr <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 4901a: 244b moveal %a3,%a2 <== NOT EXECUTED 4901c: 205a moveal %a2@+,%a0 <== NOT EXECUTED * hence the compiler must not assume *header to remain * unmodified across that call. * * Till Straumann, 7/2003 */ if ( !_Chain_Is_empty( header ) ) { 4901e: b5c8 cmpal %a0,%a2 <== NOT EXECUTED 49020: 674c beqs 4906e <_Watchdog_Adjust+0x76> <== NOT EXECUTED switch ( direction ) { 49022: 4a89 tstl %a1 <== NOT EXECUTED 49024: 673c beqs 49062 <_Watchdog_Adjust+0x6a> <== NOT EXECUTED 49026: 7001 moveq #1,%d0 <== NOT EXECUTED 49028: b089 cmpl %a1,%d0 <== NOT EXECUTED 4902a: 6642 bnes 4906e <_Watchdog_Adjust+0x76> <== NOT EXECUTED case WATCHDOG_BACKWARD: _Watchdog_First( header )->delta_interval += units; 4902c: d7a8 0010 addl %d3,%a0@(16) <== NOT EXECUTED 49030: 603c bras 4906e <_Watchdog_Adjust+0x76> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First( Chain_Control *header ) { return ( (Watchdog_Control *) header->first ); 49032: 2053 moveal %a3@,%a0 <== NOT EXECUTED break; case WATCHDOG_FORWARD: while ( units ) { if ( units < _Watchdog_First( header )->delta_interval ) { 49034: 2428 0010 movel %a0@(16),%d2 <== NOT EXECUTED 49038: b483 cmpl %d3,%d2 <== NOT EXECUTED 4903a: 6308 blss 49044 <_Watchdog_Adjust+0x4c> <== NOT EXECUTED _Watchdog_First( header )->delta_interval -= units; 4903c: 9483 subl %d3,%d2 <== NOT EXECUTED 4903e: 2142 0010 movel %d2,%a0@(16) <== NOT EXECUTED 49042: 602a bras 4906e <_Watchdog_Adjust+0x76> <== NOT EXECUTED break; } else { units -= _Watchdog_First( header )->delta_interval; _Watchdog_First( header )->delta_interval = 1; 49044: 7001 moveq #1,%d0 <== NOT EXECUTED 49046: 2140 0010 movel %d0,%a0@(16) <== NOT EXECUTED _ISR_Enable( level ); 4904a: 46c1 movew %d1,%sr <== NOT EXECUTED _Watchdog_Tickle( header ); 4904c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4904e: 4e94 jsr %a4@ <== NOT EXECUTED _ISR_Disable( level ); 49050: 2004 movel %d4,%d0 <== NOT EXECUTED 49052: 40c1 movew %sr,%d1 <== NOT EXECUTED 49054: 8081 orl %d1,%d0 <== NOT EXECUTED 49056: 46c0 movew %d0,%sr <== NOT EXECUTED while ( units ) { if ( units < _Watchdog_First( header )->delta_interval ) { _Watchdog_First( header )->delta_interval -= units; break; } else { units -= _Watchdog_First( header )->delta_interval; 49058: 9682 subl %d2,%d3 <== NOT EXECUTED _Watchdog_Tickle( header ); _ISR_Disable( level ); if ( _Chain_Is_empty( header ) ) 4905a: 588f addql #4,%sp <== NOT EXECUTED 4905c: b5d3 cmpal %a3@,%a2 <== NOT EXECUTED 4905e: 660a bnes 4906a <_Watchdog_Adjust+0x72> <== NOT EXECUTED 49060: 600c bras 4906e <_Watchdog_Adjust+0x76> <== NOT EXECUTED _ISR_Enable( level ); _Watchdog_Tickle( header ); _ISR_Disable( level ); 49062: 2802 movel %d2,%d4 <== NOT EXECUTED units -= _Watchdog_First( header )->delta_interval; _Watchdog_First( header )->delta_interval = 1; _ISR_Enable( level ); _Watchdog_Tickle( header ); 49064: 49f9 0004 9214 lea 49214 <_Watchdog_Tickle>,%a4 <== NOT EXECUTED switch ( direction ) { case WATCHDOG_BACKWARD: _Watchdog_First( header )->delta_interval += units; break; case WATCHDOG_FORWARD: while ( units ) { 4906a: 4a83 tstl %d3 <== NOT EXECUTED 4906c: 66c4 bnes 49032 <_Watchdog_Adjust+0x3a> <== NOT EXECUTED } break; } } _ISR_Enable( level ); 4906e: 46c1 movew %d1,%sr <== NOT EXECUTED } 49070: 4cee 1c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a4 <== NOT EXECUTED 49076: 4e5e unlk %fp <== NOT EXECUTED 49078: 4e75 rts <== NOT EXECUTED ... 000530e8 <_Watchdog_Adjust_to_chain>: Chain_Control *header, Watchdog_Interval units_arg, Chain_Control *to_fire ) { 530e8: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 530ec: 48d7 0c7c moveml %d2-%d6/%a2-%a3,%sp@ <== NOT EXECUTED 530f0: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 530f4: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 530f8: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED Watchdog_Interval units = units_arg; ISR_Level level; Chain_Node *node; if ( !units ) { 530fc: 676c beqs 5316a <_Watchdog_Adjust_to_chain+0x82> <== NOT EXECUTED return; } _ISR_Disable( level ); 530fe: 307c 0700 moveaw #1792,%a0 <== NOT EXECUTED 53102: 2008 movel %a0,%d0 <== NOT EXECUTED 53104: 40c4 movew %sr,%d4 <== NOT EXECUTED 53106: 8084 orl %d4,%d0 <== NOT EXECUTED 53108: 46c0 movew %d0,%sr <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 5310a: 260a movel %a2,%d3 <== NOT EXECUTED 5310c: 5883 addql #4,%d3 <== NOT EXECUTED if ( !_Chain_Is_empty( header ) ) { 5310e: b692 cmpl %a2@,%d3 <== NOT EXECUTED 53110: 6756 beqs 53168 <_Watchdog_Adjust_to_chain+0x80> <== NOT EXECUTED 53112: 2a0b movel %a3,%d5 <== NOT EXECUTED do { node = _Chain_Get_unprotected( header ); _Chain_Append_unprotected( to_fire, node ); _ISR_Flash( level ); 53114: 2c08 movel %a0,%d6 <== NOT EXECUTED 53116: 5885 addql #4,%d5 <== NOT EXECUTED 53118: 2052 moveal %a2@,%a0 <== NOT EXECUTED } _ISR_Disable( level ); if ( !_Chain_Is_empty( header ) ) { while ( units ) { if ( units < _Watchdog_First( header )->delta_interval ) { 5311a: 2428 0010 movel %a0@(16),%d2 <== NOT EXECUTED 5311e: b481 cmpl %d1,%d2 <== NOT EXECUTED 53120: 6308 blss 5312a <_Watchdog_Adjust_to_chain+0x42> <== NOT EXECUTED _Watchdog_First( header )->delta_interval -= units; 53122: 9481 subl %d1,%d2 <== NOT EXECUTED 53124: 2142 0010 movel %d2,%a0@(16) <== NOT EXECUTED 53128: 603e bras 53168 <_Watchdog_Adjust_to_chain+0x80> <== NOT EXECUTED break; } else { units -= _Watchdog_First( header )->delta_interval; _Watchdog_First( header )->delta_interval = 0; 5312a: 42a8 0010 clrl %a0@(16) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 5312e: 2252 moveal %a2@,%a1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected( Chain_Control *the_chain ) { if ( !_Chain_Is_empty(the_chain)) 53130: b689 cmpl %a1,%d3 <== NOT EXECUTED 53132: 6604 bnes 53138 <_Watchdog_Adjust_to_chain+0x50> <== NOT EXECUTED 53134: 93c9 subal %a1,%a1 <== NOT EXECUTED 53136: 6008 bras 53140 <_Watchdog_Adjust_to_chain+0x58> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 53138: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_chain->first = new_first; 5313a: 2488 movel %a0,%a2@ <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 5313c: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 53140: 2285 movel %d5,%a1@ <== NOT EXECUTED old_last_node = the_chain->last; 53142: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 53146: 2749 0008 movel %a1,%a3@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 5314a: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); old_last_node = the_chain->last; the_chain->last = the_node; old_last_node->next = the_node; 5314e: 2089 movel %a1,%a0@ <== NOT EXECUTED do { node = _Chain_Get_unprotected( header ); _Chain_Append_unprotected( to_fire, node ); _ISR_Flash( level ); 53150: 2006 movel %d6,%d0 <== NOT EXECUTED 53152: 46c4 movew %d4,%sr <== NOT EXECUTED 53154: 8084 orl %d4,%d0 <== NOT EXECUTED 53156: 46c0 movew %d0,%sr <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 53158: 2052 moveal %a2@,%a0 <== NOT EXECUTED } while ( !_Chain_Is_empty( header ) && _Watchdog_First( header )->delta_interval == 0 ); 5315a: b688 cmpl %a0,%d3 <== NOT EXECUTED 5315c: 670a beqs 53168 <_Watchdog_Adjust_to_chain+0x80> <== NOT EXECUTED 5315e: 4aa8 0010 tstl %a0@(16) <== NOT EXECUTED 53162: 67ca beqs 5312e <_Watchdog_Adjust_to_chain+0x46> <== NOT EXECUTED while ( units ) { if ( units < _Watchdog_First( header )->delta_interval ) { _Watchdog_First( header )->delta_interval -= units; break; } else { units -= _Watchdog_First( header )->delta_interval; 53164: 9282 subl %d2,%d1 <== NOT EXECUTED return; } _ISR_Disable( level ); if ( !_Chain_Is_empty( header ) ) { while ( units ) { 53166: 66b0 bnes 53118 <_Watchdog_Adjust_to_chain+0x30> <== NOT EXECUTED break; } } } _ISR_Enable( level ); 53168: 46c4 movew %d4,%sr <== NOT EXECUTED } 5316a: 4cd7 0c7c moveml %sp@,%d2-%d6/%a2-%a3 <== NOT EXECUTED 5316e: 4e5e unlk %fp <== NOT EXECUTED 53170: 4e75 rts <== NOT EXECUTED ... 00047c94 <_Watchdog_Handler_initialization>: * Output parameters: NONE */ void _Watchdog_Handler_initialization( void ) { _Watchdog_Sync_count = 0; 47c94: 42b9 0005 6de8 clrl 56de8 <_Watchdog_Sync_count> <== NOT EXECUTED * * Output parameters: NONE */ void _Watchdog_Handler_initialization( void ) { 47c9a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Watchdog_Sync_count = 0; _Watchdog_Sync_level = 0; 47c9e: 42b9 0005 6d5e clrl 56d5e <_Watchdog_Sync_level> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47ca4: 41f9 0005 6d80 lea 56d80 <_Watchdog_Ticks_chain>,%a0 <== NOT EXECUTED _Watchdog_Ticks_since_boot = 0; _Chain_Initialize_empty( &_Watchdog_Ticks_chain ); _Chain_Initialize_empty( &_Watchdog_Seconds_chain ); } 47caa: 43f9 0005 6d74 lea 56d74 <_Watchdog_Seconds_chain>,%a1 <== NOT EXECUTED 47cb0: 4e5e unlk %fp <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 47cb2: 23c8 0005 6d88 movel %a0,56d88 <_Watchdog_Ticks_chain+0x8> <== NOT EXECUTED 47cb8: 23c9 0005 6d7c movel %a1,56d7c <_Watchdog_Seconds_chain+0x8> <== NOT EXECUTED void _Watchdog_Handler_initialization( void ) { _Watchdog_Sync_count = 0; _Watchdog_Sync_level = 0; _Watchdog_Ticks_since_boot = 0; 47cbe: 42b9 0005 6dec clrl 56dec <_Watchdog_Ticks_since_boot> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47cc4: 20bc 0005 6d84 movel #355716,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 47cca: 42b9 0005 6d84 clrl 56d84 <_Watchdog_Ticks_chain+0x4> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47cd0: 22bc 0005 6d78 movel #355704,%a1@ <== NOT EXECUTED the_chain->permanent_null = NULL; 47cd6: 42b9 0005 6d78 clrl 56d78 <_Watchdog_Seconds_chain+0x4> <== NOT EXECUTED _Chain_Initialize_empty( &_Watchdog_Ticks_chain ); _Chain_Initialize_empty( &_Watchdog_Seconds_chain ); } 47cdc: 4e75 rts <== NOT EXECUTED ... 00047bc4 <_Watchdog_Insert>: void _Watchdog_Insert( Chain_Control *header, Watchdog_Control *the_watchdog ) { 47bc4: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 47bc8: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 47bcc: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 47bd0: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Watchdog_Control *after; uint32_t insert_isr_nest_level; Watchdog_Interval delta_interval; insert_isr_nest_level = _ISR_Nest_level; 47bd4: 2639 0005 6d42 movel 56d42 <_ISR_Nest_level>,%d3 <== NOT EXECUTED _ISR_Disable( level ); 47bda: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 47be0: 2001 movel %d1,%d0 <== NOT EXECUTED 47be2: 40c4 movew %sr,%d4 <== NOT EXECUTED 47be4: 8084 orl %d4,%d0 <== NOT EXECUTED 47be6: 46c0 movew %d0,%sr <== NOT EXECUTED /* * Check to see if the watchdog has just been inserted by a * higher priority interrupt. If so, abandon this insert. */ if ( the_watchdog->state != WATCHDOG_INACTIVE ) { 47be8: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 47bec: 6706 beqs 47bf4 <_Watchdog_Insert+0x30> <== NOT EXECUTED _ISR_Enable( level ); 47bee: 46c4 movew %d4,%sr <== NOT EXECUTED 47bf0: 6000 009a braw 47c8c <_Watchdog_Insert+0xc8> <== NOT EXECUTED return; } the_watchdog->state = WATCHDOG_BEING_INSERTED; _Watchdog_Sync_count++; 47bf4: 2039 0005 6de8 movel 56de8 <_Watchdog_Sync_count>,%d0 <== NOT EXECUTED if ( the_watchdog->state != WATCHDOG_INACTIVE ) { _ISR_Enable( level ); return; } the_watchdog->state = WATCHDOG_BEING_INSERTED; 47bfa: 7401 moveq #1,%d2 <== NOT EXECUTED _Watchdog_Sync_count++; 47bfc: 5280 addql #1,%d0 <== NOT EXECUTED * used around this flash point allowed interrupts to execute * which violated the design assumptions. The critical section * mechanism used here WAS redesigned to address this. */ _ISR_Flash( level ); 47bfe: 2241 moveal %d1,%a1 <== NOT EXECUTED if ( the_watchdog->state != WATCHDOG_INACTIVE ) { _ISR_Enable( level ); return; } the_watchdog->state = WATCHDOG_BEING_INSERTED; 47c00: 2542 0008 movel %d2,%a2@(8) <== NOT EXECUTED _Watchdog_Sync_count++; 47c04: 23c0 0005 6de8 movel %d0,56de8 <_Watchdog_Sync_count> <== NOT EXECUTED restart: delta_interval = the_watchdog->initial; 47c0a: 242a 000c movel %a2@(12),%d2 <== NOT EXECUTED * cache *header!! * * Till Straumann, 7/2003 (gcc-3.2.2 -O4 on powerpc) * */ for ( after = (Watchdog_Control *) ((volatile Chain_Control *)header)->first ; 47c0e: 2053 moveal %a3@,%a0 <== NOT EXECUTED ; after = _Watchdog_Next( after ) ) { if ( delta_interval == 0 || !_Watchdog_Next( after ) ) 47c10: 4a82 tstl %d2 <== NOT EXECUTED 47c12: 673c beqs 47c50 <_Watchdog_Insert+0x8c> <== NOT EXECUTED 47c14: 4a90 tstl %a0@ <== NOT EXECUTED 47c16: 6738 beqs 47c50 <_Watchdog_Insert+0x8c> <== NOT EXECUTED break; if ( delta_interval < after->delta_interval ) { 47c18: 2228 0010 movel %a0@(16),%d1 <== NOT EXECUTED 47c1c: b282 cmpl %d2,%d1 <== NOT EXECUTED 47c1e: 6308 blss 47c28 <_Watchdog_Insert+0x64> <== NOT EXECUTED after->delta_interval -= delta_interval; 47c20: 9282 subl %d2,%d1 <== NOT EXECUTED 47c22: 2141 0010 movel %d1,%a0@(16) <== NOT EXECUTED 47c26: 6028 bras 47c50 <_Watchdog_Insert+0x8c> <== NOT EXECUTED * used around this flash point allowed interrupts to execute * which violated the design assumptions. The critical section * mechanism used here WAS redesigned to address this. */ _ISR_Flash( level ); 47c28: 2009 movel %a1,%d0 <== NOT EXECUTED 47c2a: 46c4 movew %d4,%sr <== NOT EXECUTED 47c2c: 8084 orl %d4,%d0 <== NOT EXECUTED 47c2e: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) { 47c30: 7001 moveq #1,%d0 <== NOT EXECUTED if ( delta_interval < after->delta_interval ) { after->delta_interval -= delta_interval; break; } delta_interval -= after->delta_interval; 47c32: 9481 subl %d1,%d2 <== NOT EXECUTED * mechanism used here WAS redesigned to address this. */ _ISR_Flash( level ); if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) { 47c34: b0aa 0008 cmpl %a2@(8),%d0 <== NOT EXECUTED 47c38: 663c bnes 47c76 <_Watchdog_Insert+0xb2> <== NOT EXECUTED goto exit_insert; } if ( _Watchdog_Sync_level > insert_isr_nest_level ) { 47c3a: 2039 0005 6d5e movel 56d5e <_Watchdog_Sync_level>,%d0 <== NOT EXECUTED 47c40: b680 cmpl %d0,%d3 <== NOT EXECUTED 47c42: 6408 bccs 47c4c <_Watchdog_Insert+0x88> <== NOT EXECUTED _Watchdog_Sync_level = insert_isr_nest_level; 47c44: 23c3 0005 6d5e movel %d3,56d5e <_Watchdog_Sync_level> <== NOT EXECUTED 47c4a: 60be bras 47c0a <_Watchdog_Insert+0x46> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next( Watchdog_Control *the_watchdog ) { return ( (Watchdog_Control *) the_watchdog->Node.next ); 47c4c: 2050 moveal %a0@,%a0 <== NOT EXECUTED 47c4e: 60c0 bras 47c10 <_Watchdog_Insert+0x4c> <== NOT EXECUTED _Watchdog_Activate( the_watchdog ); the_watchdog->delta_interval = delta_interval; _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node ); 47c50: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 47c54: 2250 moveal %a0@,%a1 <== NOT EXECUTED the_watchdog->start_time = _Watchdog_Ticks_since_boot; 47c56: 2039 0005 6dec movel 56dec <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED after_node->next = the_node; 47c5c: 208a movel %a2,%a0@ <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Activate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_ACTIVE; 47c5e: 7202 moveq #2,%d1 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 47c60: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 47c64: 2541 0008 movel %d1,%a2@(8) <== NOT EXECUTED 47c68: 2540 0014 movel %d0,%a2@(20) <== NOT EXECUTED } } _Watchdog_Activate( the_watchdog ); the_watchdog->delta_interval = delta_interval; 47c6c: 2542 0010 movel %d2,%a2@(16) <== NOT EXECUTED before_node = after_node->next; after_node->next = the_node; the_node->next = before_node; before_node->previous = the_node; 47c70: 234a 0004 movel %a2,%a1@(4) <== NOT EXECUTED Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; after_node->next = the_node; the_node->next = before_node; 47c74: 2489 movel %a1,%a2@ <== NOT EXECUTED _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node ); the_watchdog->start_time = _Watchdog_Ticks_since_boot; exit_insert: _Watchdog_Sync_level = insert_isr_nest_level; 47c76: 23c3 0005 6d5e movel %d3,56d5e <_Watchdog_Sync_level> <== NOT EXECUTED _Watchdog_Sync_count--; 47c7c: 2039 0005 6de8 movel 56de8 <_Watchdog_Sync_count>,%d0 <== NOT EXECUTED 47c82: 5380 subql #1,%d0 <== NOT EXECUTED 47c84: 23c0 0005 6de8 movel %d0,56de8 <_Watchdog_Sync_count> <== NOT EXECUTED _ISR_Enable( level ); 47c8a: 46c4 movew %d4,%sr <== NOT EXECUTED } 47c8c: 4cd7 0c1c moveml %sp@,%d2-%d4/%a2-%a3 <== NOT EXECUTED 47c90: 4e5e unlk %fp <== NOT EXECUTED 47c92: 4e75 rts 00047ce0 <_Watchdog_Remove>: */ Watchdog_States _Watchdog_Remove( Watchdog_Control *the_watchdog ) { 47ce0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47ce4: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; Watchdog_States previous_state; Watchdog_Control *next_watchdog; _ISR_Disable( level ); 47ce6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Watchdog_States _Watchdog_Remove( Watchdog_Control *the_watchdog ) { 47cec: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47cee: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; Watchdog_States previous_state; Watchdog_Control *next_watchdog; _ISR_Disable( level ); 47cf2: 40c2 movew %sr,%d2 <== NOT EXECUTED 47cf4: 8082 orl %d2,%d0 <== NOT EXECUTED 47cf6: 46c0 movew %d0,%sr <== NOT EXECUTED previous_state = the_watchdog->state; 47cf8: 222a 0008 movel %a2@(8),%d1 <== NOT EXECUTED switch ( previous_state ) { 47cfc: 7001 moveq #1,%d0 <== NOT EXECUTED 47cfe: b081 cmpl %d1,%d0 <== NOT EXECUTED 47d00: 670c beqs 47d0e <_Watchdog_Remove+0x2e> <== NOT EXECUTED 47d02: 6242 bhis 47d46 <_Watchdog_Remove+0x66> <== NOT EXECUTED 47d04: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 47d08: b081 cmpl %d1,%d0 <== NOT EXECUTED 47d0a: 653a bcss 47d46 <_Watchdog_Remove+0x66> <== NOT EXECUTED 47d0c: 6006 bras 47d14 <_Watchdog_Remove+0x34> <== NOT EXECUTED /* * It is not actually on the chain so just change the state and * the Insert operation we interrupted will be aborted. */ the_watchdog->state = WATCHDOG_INACTIVE; 47d0e: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED 47d12: 6032 bras 47d46 <_Watchdog_Remove+0x66> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next( Watchdog_Control *the_watchdog ) { return ( (Watchdog_Control *) the_watchdog->Node.next ); 47d14: 2052 moveal %a2@,%a0 <== NOT EXECUTED break; case WATCHDOG_ACTIVE: case WATCHDOG_REMOVE_IT: the_watchdog->state = WATCHDOG_INACTIVE; 47d16: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED next_watchdog = _Watchdog_Next( the_watchdog ); if ( _Watchdog_Next(next_watchdog) ) 47d1a: 4a90 tstl %a0@ <== NOT EXECUTED 47d1c: 6708 beqs 47d26 <_Watchdog_Remove+0x46> <== NOT EXECUTED next_watchdog->delta_interval += the_watchdog->delta_interval; 47d1e: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 47d22: d1a8 0010 addl %d0,%a0@(16) <== NOT EXECUTED if ( _Watchdog_Sync_count ) 47d26: 2039 0005 6de8 movel 56de8 <_Watchdog_Sync_count>,%d0 <== NOT EXECUTED 47d2c: 670c beqs 47d3a <_Watchdog_Remove+0x5a> <== NOT EXECUTED _Watchdog_Sync_level = _ISR_Nest_level; 47d2e: 2039 0005 6d42 movel 56d42 <_ISR_Nest_level>,%d0 <== NOT EXECUTED 47d34: 23c0 0005 6d5e movel %d0,56d5e <_Watchdog_Sync_level> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 47d3a: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 47d3c: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED next->previous = previous; previous->next = next; 47d40: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 47d42: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED _Chain_Extract_unprotected( &the_watchdog->Node ); break; } the_watchdog->stop_time = _Watchdog_Ticks_since_boot; 47d46: 2039 0005 6dec movel 56dec <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED 47d4c: 2540 0018 movel %d0,%a2@(24) <== NOT EXECUTED _ISR_Enable( level ); 47d50: 46c2 movew %d2,%sr <== NOT EXECUTED return( previous_state ); } 47d52: 241f movel %sp@+,%d2 <== NOT EXECUTED 47d54: 245f moveal %sp@+,%a2 <== NOT EXECUTED 47d56: 4e5e unlk %fp <== NOT EXECUTED 47d58: 2001 movel %d1,%d0 <== NOT EXECUTED 47d5a: 4e75 rts 00047d5c <_Watchdog_Tickle>: */ void _Watchdog_Tickle( Chain_Control *header ) { 47d5c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 47d60: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@ <== NOT EXECUTED * See the comment in watchdoginsert.c and watchdogadjust.c * about why it's safe not to declare header a pointer to * volatile data - till, 2003/7 */ _ISR_Disable( level ); 47d64: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ void _Watchdog_Tickle( Chain_Control *header ) { 47d6a: 2a6e 0008 moveal %fp@(8),%a5 <== NOT EXECUTED * See the comment in watchdoginsert.c and watchdogadjust.c * about why it's safe not to declare header a pointer to * volatile data - till, 2003/7 */ _ISR_Disable( level ); 47d6e: 40c2 movew %sr,%d2 <== NOT EXECUTED 47d70: 8082 orl %d2,%d0 <== NOT EXECUTED 47d72: 46c0 movew %d0,%sr <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 47d74: 264d moveal %a5,%a3 <== NOT EXECUTED 47d76: 205b moveal %a3@+,%a0 <== NOT EXECUTED if ( _Chain_Is_empty( header ) ) 47d78: b7c8 cmpal %a0,%a3 <== NOT EXECUTED 47d7a: 6750 beqs 47dcc <_Watchdog_Tickle+0x70> <== NOT EXECUTED * to be inserted has already had its delta_interval adjusted to 0, and * so is added to the head of the chain with a delta_interval of 0. * * Steven Johnson - 12/2005 (gcc-3.2.3 -O3 on powerpc) */ if (the_watchdog->delta_interval != 0) { 47d7c: 2028 0010 movel %a0@(16),%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First( Chain_Control *header ) { return ( (Watchdog_Control *) header->first ); 47d80: 2448 moveal %a0,%a2 <== NOT EXECUTED 47d82: 6708 beqs 47d8c <_Watchdog_Tickle+0x30> <== NOT EXECUTED the_watchdog->delta_interval--; 47d84: 5380 subql #1,%d0 <== NOT EXECUTED 47d86: 2140 0010 movel %d0,%a0@(16) <== NOT EXECUTED if ( the_watchdog->delta_interval != 0 ) 47d8a: 6640 bnes 47dcc <_Watchdog_Tickle+0x70> <== NOT EXECUTED goto leave; } do { watchdog_state = _Watchdog_Remove( the_watchdog ); 47d8c: 49f9 0004 7ce0 lea 47ce0 <_Watchdog_Remove>,%a4 <== NOT EXECUTED case WATCHDOG_REMOVE_IT: break; } _ISR_Disable( level ); 47d92: 263c 0000 0700 movel #1792,%d3 <== NOT EXECUTED if ( the_watchdog->delta_interval != 0 ) goto leave; } do { watchdog_state = _Watchdog_Remove( the_watchdog ); 47d98: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47d9a: 4e94 jsr %a4@ <== NOT EXECUTED _ISR_Enable( level ); 47d9c: 46c2 movew %d2,%sr <== NOT EXECUTED switch( watchdog_state ) { 47d9e: 7202 moveq #2,%d1 <== NOT EXECUTED 47da0: 588f addql #4,%sp <== NOT EXECUTED 47da2: b280 cmpl %d0,%d1 <== NOT EXECUTED 47da4: 6610 bnes 47db6 <_Watchdog_Tickle+0x5a> <== NOT EXECUTED case WATCHDOG_ACTIVE: (*the_watchdog->routine)( 47da6: 2f2a 0024 movel %a2@(36),%sp@- <== NOT EXECUTED 47daa: 2f2a 0020 movel %a2@(32),%sp@- <== NOT EXECUTED 47dae: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 47db2: 4e90 jsr %a0@ <== NOT EXECUTED 47db4: 508f addql #8,%sp <== NOT EXECUTED case WATCHDOG_REMOVE_IT: break; } _ISR_Disable( level ); 47db6: 2003 movel %d3,%d0 <== NOT EXECUTED 47db8: 40c2 movew %sr,%d2 <== NOT EXECUTED 47dba: 8082 orl %d2,%d0 <== NOT EXECUTED 47dbc: 46c0 movew %d0,%sr <== NOT EXECUTED 47dbe: 2015 movel %a5@,%d0 <== NOT EXECUTED 47dc0: 2440 moveal %d0,%a2 <== NOT EXECUTED the_watchdog = _Watchdog_First( header ); } while ( !_Chain_Is_empty( header ) && (the_watchdog->delta_interval == 0) ); 47dc2: b7c0 cmpal %d0,%a3 <== NOT EXECUTED 47dc4: 6706 beqs 47dcc <_Watchdog_Tickle+0x70> <== NOT EXECUTED 47dc6: 4aaa 0010 tstl %a2@(16) <== NOT EXECUTED 47dca: 67cc beqs 47d98 <_Watchdog_Tickle+0x3c> <== NOT EXECUTED leave: _ISR_Enable(level); 47dcc: 46c2 movew %d2,%sr <== NOT EXECUTED } 47dce: 4cee 3c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a5 <== NOT EXECUTED 47dd4: 4e5e unlk %fp <== NOT EXECUTED 47dd6: 4e75 rts 00047df0 <_Workspace_Allocate>: * _Workspace_Allocate */ void *_Workspace_Allocate( size_t size ) { 47df0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Heap_Allocate( &_Workspace_Area, size ); 47df4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47df8: 4879 0005 6cc6 pea 56cc6 <_Workspace_Area> <== NOT EXECUTED 47dfe: 4eb9 0004 9c20 jsr 49c20 <_Heap_Allocate> <== NOT EXECUTED } 47e04: 4e5e unlk %fp <== NOT EXECUTED 47e06: 4e75 rts 00047e08 <_Workspace_Allocate_or_fatal_error>: * _Workspace_Allocate_or_fatal_error */ void *_Workspace_Allocate_or_fatal_error( size_t size ) { 47e08: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED */ void *_Workspace_Allocate( size_t size ) { return _Heap_Allocate( &_Workspace_Area, size ); 47e0c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47e10: 4879 0005 6cc6 pea 56cc6 <_Workspace_Area> <== NOT EXECUTED 47e16: 4eb9 0004 9c20 jsr 49c20 <_Heap_Allocate> <== NOT EXECUTED { void *memory; memory = _Workspace_Allocate( size ); if ( memory == NULL ) 47e1c: 508f addql #8,%sp <== NOT EXECUTED 47e1e: 4a80 tstl %d0 <== NOT EXECUTED 47e20: 6610 bnes 47e32 <_Workspace_Allocate_or_fatal_error+0x2a> <== NOT EXECUTED _Internal_error_Occurred( 47e22: 4878 0004 pea 4 <== NOT EXECUTED 47e26: 4878 0001 pea 1 <== NOT EXECUTED 47e2a: 42a7 clrl %sp@- <== NOT EXECUTED 47e2c: 4eb9 0004 5f40 jsr 45f40 <_Internal_error_Occurred> <== NOT EXECUTED TRUE, INTERNAL_ERROR_WORKSPACE_ALLOCATION ); return memory; } 47e32: 4e5e unlk %fp <== NOT EXECUTED 47e34: 4e75 rts 00047dd8 <_Workspace_Free>: * _Workspace_Free */ bool _Workspace_Free( void *block ) { 47dd8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Heap_Free( &_Workspace_Area, block ); 47ddc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47de0: 4879 0005 6cc6 pea 56cc6 <_Workspace_Area> <== NOT EXECUTED 47de6: 4eb9 0004 9ca0 jsr 49ca0 <_Heap_Free> <== NOT EXECUTED } 47dec: 4e5e unlk %fp <== NOT EXECUTED 47dee: 4e75 rts 00047e36 <_Workspace_Handler_initialization>: */ void _Workspace_Handler_initialization( void *starting_address, size_t size ) { 47e36: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47e3a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47e3c: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 47e40: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47e42: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED uint32_t memory_available; if ( !starting_address || !_Addresses_Is_aligned( starting_address ) ) 47e46: 6706 beqs 47e4e <_Workspace_Handler_initialization+0x18> <== NOT EXECUTED 47e48: 7003 moveq #3,%d0 <== NOT EXECUTED 47e4a: c082 andl %d2,%d0 <== NOT EXECUTED 47e4c: 6706 beqs 47e54 <_Workspace_Handler_initialization+0x1e> <== NOT EXECUTED _Internal_error_Occurred( 47e4e: 4878 0002 pea 2 <== NOT EXECUTED 47e52: 6040 bras 47e94 <_Workspace_Handler_initialization+0x5e> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_INVALID_WORKSPACE_ADDRESS ); if ( _Configuration_Table->do_zero_of_workspace ) 47e54: 2079 0005 6d3e moveal 56d3e <_Configuration_Table>,%a0 <== NOT EXECUTED 47e5a: 4a28 0028 tstb %a0@(40) <== NOT EXECUTED 47e5e: 6712 beqs 47e72 <_Workspace_Handler_initialization+0x3c> <== NOT EXECUTED memset( starting_address, 0, size ); 47e60: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47e62: 42a7 clrl %sp@- <== NOT EXECUTED 47e64: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47e66: 4eb9 0004 b464 jsr 4b464 <== NOT EXECUTED 47e6c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED memory_available = _Heap_Initialize( 47e72: 4878 0004 pea 4 <== NOT EXECUTED 47e76: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47e78: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47e7a: 4879 0005 6cc6 pea 56cc6 <_Workspace_Area> <== NOT EXECUTED 47e80: 4eb9 0004 5d6c jsr 45d6c <_Heap_Initialize> <== NOT EXECUTED starting_address, size, CPU_HEAP_ALIGNMENT ); if ( memory_available == 0 ) 47e86: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 47e8c: 4a80 tstl %d0 <== NOT EXECUTED 47e8e: 6610 bnes 47ea0 <_Workspace_Handler_initialization+0x6a> <== NOT EXECUTED _Internal_error_Occurred( 47e90: 4878 0003 pea 3 <== NOT EXECUTED 47e94: 4878 0001 pea 1 <== NOT EXECUTED 47e98: 42a7 clrl %sp@- <== NOT EXECUTED 47e9a: 4eb9 0004 5f40 jsr 45f40 <_Internal_error_Occurred> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_TOO_LITTLE_WORKSPACE ); } 47ea0: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47ea4: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 47ea8: 4e5e unlk %fp <== NOT EXECUTED 47eaa: 4e75 rts 00048b1a <__assert>: void __assert( const char *file, int line, const char *failedexpr ) { 48b1a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED __assert_func (file, line, NULL, failedexpr); 48b1e: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 48b22: 42a7 clrl %sp@- <== NOT EXECUTED 48b24: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48b28: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48b2c: 4eb9 0004 8adc jsr 48adc <__assert_func> <== NOT EXECUTED 48b32: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 48b38: 4e5e unlk %fp <== NOT EXECUTED 48b3a: 4e75 rts 00048adc <__assert_func>: const char *file, int line, const char *func, const char *failedexpr ) { 48adc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48ae0: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED printk("assertion \"%s\" failed: file \"%s\", line %d%s%s\n", 48ae4: 203c 0005 43da movel #345050,%d0 <== NOT EXECUTED 48aea: 4a81 tstl %d1 <== NOT EXECUTED 48aec: 6608 bnes 48af6 <__assert_func+0x1a> <== NOT EXECUTED 48aee: 203c 0005 4118 movel #344344,%d0 <== NOT EXECUTED 48af4: 2200 movel %d0,%d1 <== NOT EXECUTED 48af6: 2f01 movel %d1,%sp@- <== NOT EXECUTED 48af8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48afa: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48afe: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48b02: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 48b06: 4879 0005 43e7 pea 543e7 <== NOT EXECUTED 48b0c: 4eb9 0004 2c36 jsr 42c36 <== NOT EXECUTED file, line, (func) ? ", function: " : "", (func) ? func : "" ); rtems_fatal_error_occurred(0); 48b12: 42a7 clrl %sp@- <== NOT EXECUTED 48b14: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED 00059b54 <__env_lock>: 59b54: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 59b58: 4e5e unlk %fp <== NOT EXECUTED 59b5a: 4e75 rts 00059b5c <__env_unlock>: 59b5c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 59b60: 4e5e unlk %fp <== NOT EXECUTED 59b62: 4e75 rts 00053378 <__kill>: #endif #endif int __kill( pid_t pid, int sig ) { 53378: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 5337c: 4e5e unlk %fp <== NOT EXECUTED 5337e: 4280 clrl %d0 <== NOT EXECUTED 53380: 4e75 rts 0005310c <_calloc_r>: void *_calloc_r( struct _reent *ignored, size_t elements, size_t size ) { 5310c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 53110: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return calloc( elements, size ); 53114: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 5311a: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 5311e: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ignored, size_t elements, size_t size ) { return calloc( elements, size ); 53120: 4ef9 0004 8cd4 jmp 48cd4 <== NOT EXECUTED ... 00048db2 <_close_r>: int _close_r( struct _reent *ptr, int fd ) { 48db2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return close( fd ); 48db6: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 48dbc: 4e5e unlk %fp <== NOT EXECUTED int _close_r( struct _reent *ptr, int fd ) { return close( fd ); 48dbe: 4ef9 0004 8d24 jmp 48d24 <== NOT EXECUTED 000424cc <_exit>: /* * If the toolset uses init/fini sections, then we need to * run the global destructors now. */ #if defined(__USE_INIT_FINI__) _fini(); 424cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 424d0: 4eb9 0005 3950 jsr 53950 <_fini> <== NOT EXECUTED * We need to do the exit processing on the global reentrancy structure. * This has already been done on the per task reentrancy structure * associated with this task. */ libc_wrapup(); 424d6: 4eb9 0004 2460 jsr 42460 <== NOT EXECUTED rtems_shutdown_executive(status); 424dc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 424e0: 4eb9 0004 5514 jsr 45514 <== NOT EXECUTED 424e6: 588f addql #4,%sp <== NOT EXECUTED 424e8: 60fe bras 424e8 <_exit+0x1c> <== NOT EXECUTED ... 00066076 <_fcntl_r>: struct _reent *ptr, int fd, int cmd, int arg ) { 66076: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 6607a: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 6607e: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return fcntl( fd, cmd, arg ); 66082: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 66088: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 6608c: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 66090: 4e5e unlk %fp <== NOT EXECUTED int fd, int cmd, int arg ) { return fcntl( fd, cmd, arg ); 66092: 4ef9 0006 5eec jmp 65eec <== NOT EXECUTED 00053128 <_free_r>: void _free_r( struct _reent *ignored, void *ptr ) { 53128: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED free( ptr ); 5312c: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 53132: 4e5e unlk %fp <== NOT EXECUTED void _free_r( struct _reent *ignored, void *ptr ) { free( ptr ); 53134: 4ef9 0004 8dc4 jmp 48dc4 <== NOT EXECUTED ... 000531f4 <_fstat_r>: int _fstat_r( struct _reent *ptr, int fd, struct stat *buf ) { 531f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 531f8: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return fstat( fd, buf ); 531fc: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 53202: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 53206: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, int fd, struct stat *buf ) { return fstat( fd, buf ); 53208: 4ef9 0005 313c jmp 5313c <== NOT EXECUTED ... 0005321a <_getpid_r>: #include pid_t _getpid_r( struct _reent *ptr ) { 5321a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getpid(); } 5321e: 4e5e unlk %fp <== NOT EXECUTED 53220: 7001 moveq #1,%d0 <== NOT EXECUTED 53222: 4e75 rts 00048f7e <_gettimeofday>: int _gettimeofday( struct timeval *tp, struct timezone *tzp ) { 48f7e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return gettimeofday( tp, tzp ); } 48f82: 4e5e unlk %fp <== NOT EXECUTED int _gettimeofday( struct timeval *tp, struct timezone *tzp ) { return gettimeofday( tp, tzp ); 48f84: 4ef9 0004 8f20 jmp 48f20 <== NOT EXECUTED 00048f8a <_gettimeofday_r>: int _gettimeofday_r( struct _reent *ignored_reentrancy_stuff, struct timeval *tp, struct timezone *tzp ) { 48f8a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48f8e: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return gettimeofday( tp, tzp ); 48f92: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 48f98: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 48f9c: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ignored_reentrancy_stuff, struct timeval *tp, struct timezone *tzp ) { return gettimeofday( tp, tzp ); 48f9e: 4ef9 0004 8f20 jmp 48f20 <== NOT EXECUTED 0005336e <_kill_r>: #if defined(RTEMS_NEWLIB) #include int _kill_r( struct _reent *ptr, pid_t pid, int sig ) { 5336e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 53372: 4e5e unlk %fp <== NOT EXECUTED 53374: 4280 clrl %d0 <== NOT EXECUTED 53376: 4e75 rts 0005be9e <_link_r>: int _link_r( struct _reent *ptr, const char *existing, const char *new ) { 5be9e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5bea2: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return link( existing, new ); 5bea6: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 5beac: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 5beb0: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, const char *existing, const char *new ) { return link( existing, new ); 5beb2: 4ef9 0005 bcbc jmp 5bcbc <== NOT EXECUTED 0005332c <_lseek_r>: struct _reent *ptr, int fd, off_t offset, int whence ) { 5332c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 53330: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 53334: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return lseek( fd, offset, whence ); 53338: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 5333e: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 53342: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 53346: 4e5e unlk %fp <== NOT EXECUTED int fd, off_t offset, int whence ) { return lseek( fd, offset, whence ); 53348: 4ef9 0005 325c jmp 5325c <== NOT EXECUTED ... 0005c064 <_lstat_r>: int _STAT_R_NAME( struct _reent *ptr, const char *path, struct stat *buf ) { 5c064: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5c068: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return _STAT_NAME( path, buf ); 5c06c: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 5c072: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 5c076: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, const char *path, struct stat *buf ) { return _STAT_NAME( path, buf ); 5c078: 4ef9 0005 bfac jmp 5bfac <== NOT EXECUTED ... 00053350 <_malloc_r>: void *_malloc_r( struct _reent *ignored, size_t size ) { 53350: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return malloc( size ); 53354: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 5335a: 4e5e unlk %fp <== NOT EXECUTED void *_malloc_r( struct _reent *ignored, size_t size ) { return malloc( size ); 5335c: 4ef9 0004 92b0 jmp 492b0 <== NOT EXECUTED ... 000429a8 <_open_r>: struct _reent *ptr, const char *buf, int flags, int mode ) { 429a8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 429ac: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 429b0: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return open( buf, flags, mode ); 429b4: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 429ba: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 429be: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 429c2: 4e5e unlk %fp <== NOT EXECUTED const char *buf, int flags, int mode ) { return open( buf, flags, mode ); 429c4: 4ef9 0004 27b0 jmp 427b0 <== NOT EXECUTED ... 00053458 <_read_r>: struct _reent *ptr, int fd, void *buf, size_t nbytes ) { 53458: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5345c: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 53460: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return read( fd, buf, nbytes ); 53464: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 5346a: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 5346e: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 53472: 4e5e unlk %fp <== NOT EXECUTED int fd, void *buf, size_t nbytes ) { return read( fd, buf, nbytes ); 53474: 4ef9 0005 33b0 jmp 533b0 <== NOT EXECUTED ... 0005347c <_realloc_r>: void *_realloc_r( struct _reent *ignored, void *ptr, size_t size ) { 5347c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 53480: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return realloc( ptr, size ); 53484: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 5348a: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 5348e: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ignored, void *ptr, size_t size ) { return realloc( ptr, size ); 53490: 4ef9 0005 34bc jmp 534bc <== NOT EXECUTED ... 00077550 <_rename_r>: int _rename_r( struct _reent *ptr, const char *old, const char *new ) { 77550: 4e56 ffb4 linkw %fp,#-76 <== NOT EXECUTED 77554: 2f02 movel %d2,%sp@- <== NOT EXECUTED 77556: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED struct stat sb; int s; s = stat( old, &sb); 7755a: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 7755e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 77560: 4eb9 0004 66c0 jsr 466c0 <== NOT EXECUTED if ( s < 0 ) 77566: 508f addql #8,%sp <== NOT EXECUTED 77568: 4a80 tstl %d0 <== NOT EXECUTED 7756a: 6d38 blts 775a4 <_rename_r+0x54> <== NOT EXECUTED return s; s = link( old, new ); 7756c: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 77570: 2f02 movel %d2,%sp@- <== NOT EXECUTED 77572: 4eb9 0005 bcbc jsr 5bcbc <== NOT EXECUTED if ( s < 0 ) 77578: 508f addql #8,%sp <== NOT EXECUTED 7757a: 4a80 tstl %d0 <== NOT EXECUTED 7757c: 6d26 blts 775a4 <_rename_r+0x54> <== NOT EXECUTED return s; return S_ISDIR(sb.st_mode) ? rmdir( old ) : unlink( old ); 7757e: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 77582: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 77588: 0c80 0000 4000 cmpil #16384,%d0 <== NOT EXECUTED 7758e: 660a bnes 7759a <_rename_r+0x4a> <== NOT EXECUTED 77590: 2f02 movel %d2,%sp@- <== NOT EXECUTED 77592: 4eb9 0005 c690 jsr 5c690 <== NOT EXECUTED 77598: 6008 bras 775a2 <_rename_r+0x52> <== NOT EXECUTED 7759a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 7759c: 4eb9 0005 ca58 jsr 5ca58 <== NOT EXECUTED 775a2: 588f addql #4,%sp <== NOT EXECUTED } 775a4: 242e ffb0 movel %fp@(-80),%d2 <== NOT EXECUTED 775a8: 4e5e unlk %fp <== NOT EXECUTED 775aa: 4e75 rts 0004677a <_stat_r>: int _STAT_R_NAME( struct _reent *ptr, const char *path, struct stat *buf ) { 4677a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4677e: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return _STAT_NAME( path, buf ); 46782: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 46788: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 4678c: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, const char *path, struct stat *buf ) { return _STAT_NAME( path, buf ); 4678e: 4ef9 0004 66c0 jmp 466c0 <== NOT EXECUTED 0005cb6e <_unlink_r>: int _unlink_r( struct _reent *ptr, const char *path ) { 5cb6e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return unlink( path ); 5cb72: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 5cb78: 4e5e unlk %fp <== NOT EXECUTED int _unlink_r( struct _reent *ptr, const char *path ) { return unlink( path ); 5cb7a: 4ef9 0005 ca58 jmp 5ca58 <== NOT EXECUTED 00053498 <_write_r>: struct _reent *ptr, int fd, const void *buf, size_t nbytes ) { 53498: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5349c: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 534a0: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return write( fd, buf, nbytes ); 534a4: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 534aa: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 534ae: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 534b2: 4e5e unlk %fp <== NOT EXECUTED int fd, const void *buf, size_t nbytes ) { return write( fd, buf, nbytes ); 534b4: 4ef9 0005 35a8 jmp 535a8 <== NOT EXECUTED ... 0005a734 : int access( const char *path, int amode ) { 5a734: 4e56 ffb4 linkw %fp,#-76 <== NOT EXECUTED 5a738: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5a73a: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED struct stat statbuf; if ( stat(path, &statbuf) ) 5a73e: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 5a742: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5a746: 4eb9 0004 66c0 jsr 466c0 <== NOT EXECUTED 5a74c: 508f addql #8,%sp <== NOT EXECUTED 5a74e: 4a80 tstl %d0 <== NOT EXECUTED 5a750: 6630 bnes 5a782 <== NOT EXECUTED return -1; if ( amode & R_OK ) { 5a752: 44c2 movew %d2,%ccr <== NOT EXECUTED 5a754: 660c bnes 5a762 <== NOT EXECUTED if (!( statbuf.st_mode & S_IREAD )) 5a756: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 5a75a: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 5a760: 6720 beqs 5a782 <== NOT EXECUTED return -1; } if ( amode & W_OK ) { 5a762: 0802 0001 btst #1,%d2 <== NOT EXECUTED 5a766: 670c beqs 5a774 <== NOT EXECUTED if ( !( statbuf.st_mode & S_IWRITE ) ) 5a768: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 5a76c: 0280 0000 0080 andil #128,%d0 <== NOT EXECUTED 5a772: 670e beqs 5a782 <== NOT EXECUTED return -1; } if ( amode & X_OK ) { 5a774: 0802 0000 btst #0,%d2 <== NOT EXECUTED 5a778: 670c beqs 5a786 <== NOT EXECUTED if ( !( statbuf.st_mode & S_IEXEC ) ) 5a77a: 7040 moveq #64,%d0 <== NOT EXECUTED 5a77c: c0ae ffc2 andl %fp@(-62),%d0 <== NOT EXECUTED 5a780: 6604 bnes 5a786 <== NOT EXECUTED 5a782: 70ff moveq #-1,%d0 <== NOT EXECUTED 5a784: 6002 bras 5a788 <== NOT EXECUTED 5a786: 4280 clrl %d0 <== NOT EXECUTED return -1; } return 0; } 5a788: 242e ffb0 movel %fp@(-80),%d2 <== NOT EXECUTED 5a78c: 4e5e unlk %fp <== NOT EXECUTED 5a78e: 4e75 rts 00048cd4 : ) { register char *cptr; int length; MSBUMP(calloc_calls, 1); 48cd4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48cd8: 2f03 movel %d3,%sp@- <== NOT EXECUTED length = nelem * elsize; 48cda: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 48cde: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED 48ce2: 4c10 3800 mulsl %a0@,%d3 <== NOT EXECUTED ) { register char *cptr; int length; MSBUMP(calloc_calls, 1); 48ce6: 52b9 0005 6bb4 addql #1,56bb4 <== NOT EXECUTED 48cec: 2f02 movel %d2,%sp@- <== NOT EXECUTED length = nelem * elsize; cptr = malloc( length ); 48cee: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48cf0: 4eb9 0004 92b0 jsr 492b0 <== NOT EXECUTED if ( cptr ) 48cf6: 588f addql #4,%sp <== NOT EXECUTED int length; MSBUMP(calloc_calls, 1); length = nelem * elsize; cptr = malloc( length ); 48cf8: 2400 movel %d0,%d2 <== NOT EXECUTED if ( cptr ) 48cfa: 6712 beqs 48d0e <== NOT EXECUTED memset( cptr, '\0', length ); 48cfc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48cfe: 42a7 clrl %sp@- <== NOT EXECUTED 48d00: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48d02: 4eb9 0004 b464 jsr 4b464 <== NOT EXECUTED 48d08: dffc 0000 000c addal #12,%sp <== NOT EXECUTED MSBUMP(malloc_calls, -1); /* subtract off the malloc */ return cptr; } 48d0e: 2002 movel %d2,%d0 <== NOT EXECUTED 48d10: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48d14: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED length = nelem * elsize; cptr = malloc( length ); if ( cptr ) memset( cptr, '\0', length ); MSBUMP(malloc_calls, -1); /* subtract off the malloc */ 48d18: 53b9 0005 6ba4 subql #1,56ba4 <== NOT EXECUTED return cptr; } 48d1e: 4e5e unlk %fp <== NOT EXECUTED 48d20: 4e75 rts <== NOT EXECUTED ... 0005aa40 : #include int chdir( const char *pathname ) { 5aa40: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5aa44: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Get the node where we wish to go. */ result = rtems_filesystem_evaluate_path( 5aa46: 240e movel %fp,%d2 <== NOT EXECUTED 5aa48: 4878 0001 pea 1 <== NOT EXECUTED 5aa4c: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 5aa52: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5aa54: 4878 0001 pea 1 <== NOT EXECUTED 5aa58: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5aa5c: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED pathname, RTEMS_LIBIO_PERMS_SEARCH, &loc, true ); if ( result != 0 ) 5aa62: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5aa68: 4a80 tstl %d0 <== NOT EXECUTED 5aa6a: 6628 bnes 5aa94 <== NOT EXECUTED /* * Verify you can change directory into this node. */ if ( !loc.ops->node_type_h ) { 5aa6c: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED 5aa70: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED 5aa74: 4a88 tstl %a0 <== NOT EXECUTED 5aa76: 6620 bnes 5aa98 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5aa78: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 5aa7c: 4a88 tstl %a0 <== NOT EXECUTED 5aa7e: 6706 beqs 5aa86 <== NOT EXECUTED 5aa80: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5aa82: 4e90 jsr %a0@ <== NOT EXECUTED 5aa84: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5aa86: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5aa8c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5aa8e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5aa94: 70ff moveq #-1,%d0 <== NOT EXECUTED 5aa96: 606e bras 5ab06 <== NOT EXECUTED } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) { 5aa98: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5aa9a: 4e90 jsr %a0@ <== NOT EXECUTED 5aa9c: 588f addql #4,%sp <== NOT EXECUTED 5aa9e: 7201 moveq #1,%d1 <== NOT EXECUTED 5aaa0: b280 cmpl %d0,%d1 <== NOT EXECUTED 5aaa2: 6724 beqs 5aac8 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5aaa4: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5aaa8: 4a88 tstl %a0 <== NOT EXECUTED 5aaaa: 670e beqs 5aaba <== NOT EXECUTED 5aaac: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5aab0: 4a88 tstl %a0 <== NOT EXECUTED 5aab2: 6706 beqs 5aaba <== NOT EXECUTED 5aab4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5aab6: 4e90 jsr %a0@ <== NOT EXECUTED 5aab8: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 5aaba: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5aac0: 2040 moveal %d0,%a0 <== NOT EXECUTED 5aac2: 7014 moveq #20,%d0 <== NOT EXECUTED 5aac4: 2080 movel %d0,%a0@ <== NOT EXECUTED 5aac6: 60cc bras 5aa94 <== NOT EXECUTED } rtems_filesystem_freenode( &rtems_filesystem_current ); 5aac8: 2279 0007 d460 moveal 7d460 ,%a1 <== NOT EXECUTED 5aace: 2069 000c moveal %a1@(12),%a0 <== NOT EXECUTED 5aad2: 4a88 tstl %a0 <== NOT EXECUTED 5aad4: 6710 beqs 5aae6 <== NOT EXECUTED 5aad6: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5aada: 4a88 tstl %a0 <== NOT EXECUTED 5aadc: 6708 beqs 5aae6 <== NOT EXECUTED 5aade: 4869 0004 pea %a1@(4) <== NOT EXECUTED 5aae2: 4e90 jsr %a0@ <== NOT EXECUTED 5aae4: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_current = loc; 5aae6: 4878 0010 pea 10 <== NOT EXECUTED 5aaea: 2039 0007 d460 movel 7d460 ,%d0 <== NOT EXECUTED 5aaf0: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 5aaf4: 5880 addql #4,%d0 <== NOT EXECUTED 5aaf6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5aaf8: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED 5aafe: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5ab04: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5ab06: 242e ffec movel %fp@(-20),%d2 <== NOT EXECUTED 5ab0a: 4e5e unlk %fp <== NOT EXECUTED 5ab0c: 4e75 rts <== NOT EXECUTED ... 00044e68 : int chmod( const char *path, mode_t mode ) { 44e68: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 44e6c: 2f03 movel %d3,%sp@- <== NOT EXECUTED int status; rtems_filesystem_location_info_t loc; int result; status = rtems_filesystem_evaluate_path( path, 0, &loc, true ); 44e6e: 260e movel %fp,%d3 <== NOT EXECUTED 44e70: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED int chmod( const char *path, mode_t mode ) { 44e76: 2f02 movel %d2,%sp@- <== NOT EXECUTED int status; rtems_filesystem_location_info_t loc; int result; status = rtems_filesystem_evaluate_path( path, 0, &loc, true ); 44e78: 4878 0001 pea 1 <== NOT EXECUTED 44e7c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44e7e: 42a7 clrl %sp@- <== NOT EXECUTED 44e80: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44e84: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( status != 0 ) 44e8a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44e90: 4a80 tstl %d0 <== NOT EXECUTED 44e92: 662a bnes 44ebe <== NOT EXECUTED return -1; if ( !loc.handlers ){ 44e94: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 44e98: 4a88 tstl %a0 <== NOT EXECUTED 44e9a: 6626 bnes 44ec2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 44e9c: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 44ea0: 4a88 tstl %a0 <== NOT EXECUTED 44ea2: 670e beqs 44eb2 <== NOT EXECUTED 44ea4: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 44ea8: 4a88 tstl %a0 <== NOT EXECUTED 44eaa: 6706 beqs 44eb2 <== NOT EXECUTED 44eac: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44eae: 4e90 jsr %a0@ <== NOT EXECUTED 44eb0: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 44eb2: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 44eb8: 2040 moveal %d0,%a0 <== NOT EXECUTED 44eba: 7009 moveq #9,%d0 <== NOT EXECUTED 44ebc: 2080 movel %d0,%a0@ <== NOT EXECUTED 44ebe: 74ff moveq #-1,%d2 <== NOT EXECUTED 44ec0: 6050 bras 44f12 <== NOT EXECUTED } if ( !loc.handlers->fchmod_h ){ 44ec2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 44ec6: 4a88 tstl %a0 <== NOT EXECUTED 44ec8: 6626 bnes 44ef0 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 44eca: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 44ece: 4a88 tstl %a0 <== NOT EXECUTED 44ed0: 670e beqs 44ee0 <== NOT EXECUTED 44ed2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 44ed6: 4a88 tstl %a0 <== NOT EXECUTED 44ed8: 6706 beqs 44ee0 <== NOT EXECUTED 44eda: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44edc: 4e90 jsr %a0@ <== NOT EXECUTED 44ede: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 44ee0: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 44ee6: 2040 moveal %d0,%a0 <== NOT EXECUTED 44ee8: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 44eee: 60ce bras 44ebe <== NOT EXECUTED } result = (*loc.handlers->fchmod_h)( &loc, mode ); 44ef0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 44ef4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44ef6: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 44ef8: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED if ( !loc.handlers->fchmod_h ){ rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.handlers->fchmod_h)( &loc, mode ); 44efc: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 44efe: 508f addql #8,%sp <== NOT EXECUTED 44f00: 4a88 tstl %a0 <== NOT EXECUTED 44f02: 670e beqs 44f12 <== NOT EXECUTED 44f04: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 44f08: 4a88 tstl %a0 <== NOT EXECUTED 44f0a: 6706 beqs 44f12 <== NOT EXECUTED 44f0c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44f0e: 4e90 jsr %a0@ <== NOT EXECUTED 44f10: 588f addql #4,%sp <== NOT EXECUTED return result; } 44f12: 2002 movel %d2,%d0 <== NOT EXECUTED 44f14: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 44f18: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 44f1c: 4e5e unlk %fp <== NOT EXECUTED 44f1e: 4e75 rts 0005ab10 : int chown( const char *path, uid_t owner, gid_t group ) { 5ab10: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5ab14: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED rtems_filesystem_location_info_t loc; int result; if ( rtems_filesystem_evaluate_path( path, 0x00, &loc, true ) ) 5ab18: 4878 0001 pea 1 <== NOT EXECUTED 5ab1c: 260e movel %fp,%d3 <== NOT EXECUTED 5ab1e: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 5ab24: 2f03 movel %d3,%sp@- <== NOT EXECUTED int chown( const char *path, uid_t owner, gid_t group ) { 5ab26: 382e 000e movew %fp@(14),%d4 <== NOT EXECUTED 5ab2a: 342e 0012 movew %fp@(18),%d2 <== NOT EXECUTED rtems_filesystem_location_info_t loc; int result; if ( rtems_filesystem_evaluate_path( path, 0x00, &loc, true ) ) 5ab2e: 42a7 clrl %sp@- <== NOT EXECUTED 5ab30: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5ab34: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED 5ab3a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5ab40: 4a80 tstl %d0 <== NOT EXECUTED 5ab42: 6628 bnes 5ab6c <== NOT EXECUTED return -1; if ( !loc.ops->chown_h ) { 5ab44: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5ab48: 2268 0018 moveal %a0@(24),%a1 <== NOT EXECUTED 5ab4c: 4a89 tstl %a1 <== NOT EXECUTED 5ab4e: 6620 bnes 5ab70 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5ab50: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5ab54: 4a88 tstl %a0 <== NOT EXECUTED 5ab56: 6706 beqs 5ab5e <== NOT EXECUTED 5ab58: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ab5a: 4e90 jsr %a0@ <== NOT EXECUTED 5ab5c: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5ab5e: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5ab64: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ab66: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5ab6c: 74ff moveq #-1,%d2 <== NOT EXECUTED 5ab6e: 602a bras 5ab9a <== NOT EXECUTED } result = (*loc.ops->chown_h)( &loc, owner, group ); 5ab70: 3f02 movew %d2,%sp@- <== NOT EXECUTED 5ab72: 4267 clrw %sp@- <== NOT EXECUTED 5ab74: 3f04 movew %d4,%sp@- <== NOT EXECUTED 5ab76: 4267 clrw %sp@- <== NOT EXECUTED 5ab78: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ab7a: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5ab7c: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED if ( !loc.ops->chown_h ) { rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.ops->chown_h)( &loc, owner, group ); 5ab80: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5ab82: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5ab88: 4a88 tstl %a0 <== NOT EXECUTED 5ab8a: 670e beqs 5ab9a <== NOT EXECUTED 5ab8c: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5ab90: 4a88 tstl %a0 <== NOT EXECUTED 5ab92: 6706 beqs 5ab9a <== NOT EXECUTED 5ab94: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ab96: 4e90 jsr %a0@ <== NOT EXECUTED 5ab98: 588f addql #4,%sp <== NOT EXECUTED return result; } 5ab9a: 2002 movel %d2,%d0 <== NOT EXECUTED 5ab9c: 4cee 001c ffe4 moveml %fp@(-28),%d2-%d4 <== NOT EXECUTED 5aba2: 4e5e unlk %fp <== NOT EXECUTED 5aba4: 4e75 rts <== NOT EXECUTED ... 0005aba8 : #include int chroot( const char *pathname ) { 5aba8: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5abac: 2f0b movel %a3,%sp@- <== NOT EXECUTED int result; rtems_filesystem_location_info_t loc; /* an automatic call to new private env the first time */ if (rtems_current_user_env == &rtems_global_user_env) { 5abae: 203c 0009 2974 movel #600436,%d0 <== NOT EXECUTED #include int chroot( const char *pathname ) { 5abb4: 2f0a movel %a2,%sp@- <== NOT EXECUTED int result; rtems_filesystem_location_info_t loc; /* an automatic call to new private env the first time */ if (rtems_current_user_env == &rtems_global_user_env) { 5abb6: b0b9 0007 d460 cmpl 7d460 ,%d0 <== NOT EXECUTED 5abbc: 6624 bnes 5abe2 <== NOT EXECUTED rtems_libio_set_private_env(); /* try to set a new private env*/ 5abbe: 4eb9 0005 c320 jsr 5c320 <== NOT EXECUTED if (rtems_current_user_env == &rtems_global_user_env) /* not ok */ 5abc4: 203c 0009 2974 movel #600436,%d0 <== NOT EXECUTED 5abca: b0b9 0007 d460 cmpl 7d460 ,%d0 <== NOT EXECUTED 5abd0: 6610 bnes 5abe2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5abd2: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5abd8: 2040 moveal %d0,%a0 <== NOT EXECUTED 5abda: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5abe0: 6020 bras 5ac02 <== NOT EXECUTED } result = chdir(pathname); 5abe2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5abe6: 4eb9 0005 aa40 jsr 5aa40 <== NOT EXECUTED if (result) { 5abec: 588f addql #4,%sp <== NOT EXECUTED 5abee: 4a80 tstl %d0 <== NOT EXECUTED 5abf0: 6714 beqs 5ac06 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( errno ); 5abf2: 45f9 0006 7f7c lea 67f7c <__errno>,%a2 <== NOT EXECUTED 5abf8: 4e92 jsr %a2@ <== NOT EXECUTED 5abfa: 2640 moveal %d0,%a3 <== NOT EXECUTED 5abfc: 4e92 jsr %a2@ <== NOT EXECUTED 5abfe: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ac00: 2690 movel %a0@,%a3@ <== NOT EXECUTED 5ac02: 70ff moveq #-1,%d0 <== NOT EXECUTED 5ac04: 6060 bras 5ac66 <== NOT EXECUTED } /* clone the new root location */ if (rtems_filesystem_evaluate_path(".", 0, &loc, 0)) { 5ac06: 42a7 clrl %sp@- <== NOT EXECUTED 5ac08: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 5ac0c: 42a7 clrl %sp@- <== NOT EXECUTED 5ac0e: 4879 0007 8dca pea 78dca <_CPU_m68k_BFFFO_table+0x3d7> <== NOT EXECUTED 5ac14: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED 5ac1a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5ac20: 4a80 tstl %d0 <== NOT EXECUTED 5ac22: 66ce bnes 5abf2 <== NOT EXECUTED /* our cwd has changed, though - but there is no easy way of return :-( */ rtems_set_errno_and_return_minus_one( errno ); } rtems_filesystem_freenode(&rtems_filesystem_root); 5ac24: 2279 0007 d460 moveal 7d460 ,%a1 <== NOT EXECUTED 5ac2a: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 5ac2e: 4a88 tstl %a0 <== NOT EXECUTED 5ac30: 6710 beqs 5ac42 <== NOT EXECUTED 5ac32: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5ac36: 4a88 tstl %a0 <== NOT EXECUTED 5ac38: 6708 beqs 5ac42 <== NOT EXECUTED 5ac3a: 4869 0014 pea %a1@(20) <== NOT EXECUTED 5ac3e: 4e90 jsr %a0@ <== NOT EXECUTED 5ac40: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_root = loc; 5ac42: 4878 0010 pea 10 <== NOT EXECUTED 5ac46: 2039 0007 d460 movel 7d460 ,%d0 <== NOT EXECUTED 5ac4c: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 5ac50: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 5ac56: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5ac58: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED 5ac5e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5ac64: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5ac66: 246e ffe8 moveal %fp@(-24),%a2 <== NOT EXECUTED 5ac6a: 266e ffec moveal %fp@(-20),%a3 <== NOT EXECUTED 5ac6e: 4e5e unlk %fp <== NOT EXECUTED 5ac70: 4e75 rts <== NOT EXECUTED ... 00048d24 : #include int close( int fd ) { 48d24: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48d28: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48d2a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48d2c: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_status_code rc; rtems_libio_check_fd(fd); 48d30: b4b9 0005 50e8 cmpl 550e8 ,%d2 <== NOT EXECUTED 48d36: 6422 bccs 48d5a <== NOT EXECUTED iop = rtems_libio_iop(fd); 48d38: 2002 movel %d2,%d0 <== NOT EXECUTED 48d3a: 2202 movel %d2,%d1 <== NOT EXECUTED 48d3c: e588 lsll #2,%d0 <== NOT EXECUTED 48d3e: e989 lsll #4,%d1 <== NOT EXECUTED 48d40: 9280 subl %d0,%d1 <== NOT EXECUTED 48d42: 2479 0005 6b3c moveal 56b3c ,%a2 <== NOT EXECUTED 48d48: d282 addl %d2,%d1 <== NOT EXECUTED 48d4a: e589 lsll #2,%d1 <== NOT EXECUTED 48d4c: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_is_open(iop); 48d4e: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 48d52: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 48d58: 6610 bnes 48d6a <== NOT EXECUTED 48d5a: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48d60: 2040 moveal %d0,%a0 <== NOT EXECUTED 48d62: 7009 moveq #9,%d0 <== NOT EXECUTED 48d64: 2080 movel %d0,%a0@ <== NOT EXECUTED 48d66: 70ff moveq #-1,%d0 <== NOT EXECUTED 48d68: 603c bras 48da6 <== NOT EXECUTED rc = RTEMS_SUCCESSFUL; if ( iop->handlers->close_h ) 48d6a: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 48d6e: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 48d72: 4a88 tstl %a0 <== NOT EXECUTED 48d74: 6604 bnes 48d7a <== NOT EXECUTED 48d76: 4282 clrl %d2 <== NOT EXECUTED 48d78: 6008 bras 48d82 <== NOT EXECUTED rc = (*iop->handlers->close_h)( iop ); 48d7a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48d7c: 4e90 jsr %a0@ <== NOT EXECUTED 48d7e: 588f addql #4,%sp <== NOT EXECUTED 48d80: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &iop->pathinfo ); 48d82: 206a 0018 moveal %a2@(24),%a0 <== NOT EXECUTED 48d86: 4a88 tstl %a0 <== NOT EXECUTED 48d88: 6710 beqs 48d9a <== NOT EXECUTED 48d8a: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 48d8e: 4a88 tstl %a0 <== NOT EXECUTED 48d90: 6708 beqs 48d9a <== NOT EXECUTED 48d92: 486a 0010 pea %a2@(16) <== NOT EXECUTED 48d96: 4e90 jsr %a0@ <== NOT EXECUTED 48d98: 588f addql #4,%sp <== NOT EXECUTED rtems_libio_free( iop ); 48d9a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48d9c: 4eb9 0004 90ce jsr 490ce <== NOT EXECUTED return rc; 48da2: 2002 movel %d2,%d0 <== NOT EXECUTED 48da4: 588f addql #4,%sp <== NOT EXECUTED } 48da6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48daa: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48dae: 4e5e unlk %fp <== NOT EXECUTED 48db0: 4e75 rts 00065d50 : * close a directory. */ int closedir( DIR *dirp ) { 65d50: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 65d54: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 65d58: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED int fd; if ( !dirp ) 65d5c: 4a8b tstl %a3 <== NOT EXECUTED 65d5e: 6618 bnes 65d78 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 65d60: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED dirp->dd_fd = -1; dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); (void)free((void *)dirp); return(close(fd)); } 65d66: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED DIR *dirp ) { int fd; if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); 65d6c: 2040 moveal %d0,%a0 <== NOT EXECUTED 65d6e: 7209 moveq #9,%d1 <== NOT EXECUTED dirp->dd_fd = -1; dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); (void)free((void *)dirp); return(close(fd)); } 65d70: 4e5e unlk %fp <== NOT EXECUTED 65d72: 70ff moveq #-1,%d0 <== NOT EXECUTED DIR *dirp ) { int fd; if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); 65d74: 2081 movel %d1,%a0@ <== NOT EXECUTED dirp->dd_fd = -1; dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); (void)free((void *)dirp); return(close(fd)); } 65d76: 4e75 rts <== NOT EXECUTED int fd; if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); fd = dirp->dd_fd; 65d78: 2413 movel %a3@,%d2 <== NOT EXECUTED dirp->dd_fd = -1; dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); 65d7a: 2f2b 000c movel %a3@(12),%sp@- <== NOT EXECUTED if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); fd = dirp->dd_fd; dirp->dd_fd = -1; 65d7e: 70ff moveq #-1,%d0 <== NOT EXECUTED dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); 65d80: 45f9 0004 5358 lea 45358 ,%a2 <== NOT EXECUTED if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); fd = dirp->dd_fd; dirp->dd_fd = -1; 65d86: 2680 movel %d0,%a3@ <== NOT EXECUTED dirp->dd_loc = 0; 65d88: 42ab 0004 clrl %a3@(4) <== NOT EXECUTED (void)free((void *)dirp->dd_buf); 65d8c: 4e92 jsr %a2@ <== NOT EXECUTED (void)free((void *)dirp); 65d8e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 65d90: 4e92 jsr %a2@ <== NOT EXECUTED return(close(fd)); 65d92: 508f addql #8,%sp <== NOT EXECUTED 65d94: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 65d98: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 65d9e: 4e5e unlk %fp <== NOT EXECUTED fd = dirp->dd_fd; dirp->dd_fd = -1; dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); (void)free((void *)dirp); return(close(fd)); 65da0: 4ef9 0004 4f20 jmp 44f20 <== NOT EXECUTED ... 0004a4a8 : */ int device_close( rtems_libio_t *iop ) { 4a4a8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4a4ac: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED args.iop = iop; args.flags = 0; args.mode = 0; status = rtems_io_close( 4a4b0: 486e fff4 pea %fp@(-12) <== NOT EXECUTED { rtems_libio_open_close_args_t args; rtems_status_code status; IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 4a4b4: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; 4a4b8: 2d48 fff4 movel %a0,%fp@(-12) <== NOT EXECUTED args.flags = 0; 4a4bc: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED args.mode = 0; 4a4c0: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED status = rtems_io_close( 4a4c4: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4a4c8: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4a4cc: 4eb9 0004 a8d8 jsr 4a8d8 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) { 4a4d2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a4d8: 4a80 tstl %d0 <== NOT EXECUTED 4a4da: 6708 beqs 4a4e4 <== NOT EXECUTED return rtems_deviceio_errno(status); 4a4dc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a4de: 4eba fe9a jsr %pc@(4a37a ) <== NOT EXECUTED 4a4e2: 588f addql #4,%sp <== NOT EXECUTED } return 0; } 4a4e4: 4e5e unlk %fp <== NOT EXECUTED 4a4e6: 4e75 rts 0004a370 : int device_ftruncate( rtems_libio_t *iop, off_t length ) { 4a370: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 4a374: 4e5e unlk %fp <== NOT EXECUTED 4a376: 4280 clrl %d0 <== NOT EXECUTED 4a378: 4e75 rts 0004a3aa : int device_ioctl( rtems_libio_t *iop, uint32_t command, void *buffer ) { 4a3aa: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4a3ae: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED args.iop = iop; args.command = command; args.buffer = buffer; the_jnode = iop->file_info; 4a3b2: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED rtems_libio_ioctl_args_t args; rtems_status_code status; IMFS_jnode_t *the_jnode; args.iop = iop; args.command = command; 4a3b6: 2d6e 000c fff4 movel %fp@(12),%fp@(-12) <== NOT EXECUTED args.buffer = buffer; the_jnode = iop->file_info; status = rtems_io_control( 4a3bc: 486e fff0 pea %fp@(-16) <== NOT EXECUTED rtems_status_code status; IMFS_jnode_t *the_jnode; args.iop = iop; args.command = command; args.buffer = buffer; 4a3c0: 2d6e 0010 fff8 movel %fp@(16),%fp@(-8) <== NOT EXECUTED { rtems_libio_ioctl_args_t args; rtems_status_code status; IMFS_jnode_t *the_jnode; args.iop = iop; 4a3c6: 2d48 fff0 movel %a0,%fp@(-16) <== NOT EXECUTED args.command = command; args.buffer = buffer; the_jnode = iop->file_info; status = rtems_io_control( 4a3ca: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4a3ce: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4a3d2: 4eb9 0004 a92c jsr 4a92c <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4a3d8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a3de: 4a80 tstl %d0 <== NOT EXECUTED 4a3e0: 670a beqs 4a3ec <== NOT EXECUTED return rtems_deviceio_errno(status); 4a3e2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a3e4: 4eba ff94 jsr %pc@(4a37a ) <== NOT EXECUTED 4a3e8: 588f addql #4,%sp <== NOT EXECUTED 4a3ea: 6004 bras 4a3f0 <== NOT EXECUTED return args.ioctl_return; 4a3ec: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 4a3f0: 4e5e unlk %fp <== NOT EXECUTED 4a3f2: 4e75 rts 0004a364 : off_t device_lseek( rtems_libio_t *iop, off_t offset, int whence ) { 4a364: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return offset; } 4a368: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4a36c: 4e5e unlk %fp <== NOT EXECUTED 4a36e: 4e75 rts 0004a4e8 : rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) { 4a4e8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4a4ec: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; args.iop = iop; args.flags = iop->flags; 4a4f0: 2d68 000c fff8 movel %a0@(12),%fp@(-8) <== NOT EXECUTED { rtems_libio_open_close_args_t args; rtems_status_code status; IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 4a4f6: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; args.flags = iop->flags; args.mode = mode; 4a4fa: 2d6e 0014 fffc movel %fp@(20),%fp@(-4) <== NOT EXECUTED status = rtems_io_open( 4a500: 486e fff4 pea %fp@(-12) <== NOT EXECUTED rtems_status_code status; IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; args.iop = iop; 4a504: 2d48 fff4 movel %a0,%fp@(-12) <== NOT EXECUTED args.flags = iop->flags; args.mode = mode; status = rtems_io_open( 4a508: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4a50c: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4a510: 4eb9 0004 a980 jsr 4a980 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4a516: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a51c: 4a80 tstl %d0 <== NOT EXECUTED 4a51e: 6708 beqs 4a528 <== NOT EXECUTED return rtems_deviceio_errno(status); 4a520: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a522: 4eba fe56 jsr %pc@(4a37a ) <== NOT EXECUTED 4a526: 588f addql #4,%sp <== NOT EXECUTED return 0; } 4a528: 4e5e unlk %fp <== NOT EXECUTED 4a52a: 4e75 rts 0004a44e : ssize_t device_read( rtems_libio_t *iop, void *buffer, size_t count ) { 4a44e: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4a452: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED args.iop = iop; args.offset = iop->offset; args.buffer = buffer; args.count = count; args.flags = iop->flags; 4a456: 2d68 000c fff8 movel %a0@(12),%fp@(-8) <== NOT EXECUTED { rtems_libio_rw_args_t args; rtems_status_code status; IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 4a45c: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; args.offset = iop->offset; 4a460: 2d68 0008 ffec movel %a0@(8),%fp@(-20) <== NOT EXECUTED args.buffer = buffer; args.count = count; args.flags = iop->flags; args.bytes_moved = 0; status = rtems_io_read( 4a466: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED the_jnode = iop->file_info; args.iop = iop; args.offset = iop->offset; args.buffer = buffer; 4a46a: 2d6e 000c fff0 movel %fp@(12),%fp@(-16) <== NOT EXECUTED args.count = count; 4a470: 2d6e 0010 fff4 movel %fp@(16),%fp@(-12) <== NOT EXECUTED rtems_status_code status; IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; args.iop = iop; 4a476: 2d48 ffe8 movel %a0,%fp@(-24) <== NOT EXECUTED args.offset = iop->offset; args.buffer = buffer; args.count = count; args.flags = iop->flags; args.bytes_moved = 0; 4a47a: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED status = rtems_io_read( 4a47e: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4a482: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4a486: 4eb9 0004 a9d4 jsr 4a9d4 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4a48c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a492: 4a80 tstl %d0 <== NOT EXECUTED 4a494: 670a beqs 4a4a0 <== NOT EXECUTED return rtems_deviceio_errno(status); 4a496: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a498: 4eba fee0 jsr %pc@(4a37a ) <== NOT EXECUTED 4a49c: 588f addql #4,%sp <== NOT EXECUTED 4a49e: 6004 bras 4a4a4 <== NOT EXECUTED return (ssize_t) args.bytes_moved; 4a4a0: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 4a4a4: 4e5e unlk %fp <== NOT EXECUTED 4a4a6: 4e75 rts 0004a3f4 : ssize_t device_write( rtems_libio_t *iop, const void *buffer, size_t count ) { 4a3f4: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4a3f8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED args.iop = iop; args.offset = iop->offset; args.buffer = (void *) buffer; args.count = count; args.flags = iop->flags; 4a3fc: 2d68 000c fff8 movel %a0@(12),%fp@(-8) <== NOT EXECUTED { rtems_libio_rw_args_t args; rtems_status_code status; IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 4a402: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; args.offset = iop->offset; 4a406: 2d68 0008 ffec movel %a0@(8),%fp@(-20) <== NOT EXECUTED args.buffer = (void *) buffer; args.count = count; args.flags = iop->flags; args.bytes_moved = 0; status = rtems_io_write( 4a40c: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED the_jnode = iop->file_info; args.iop = iop; args.offset = iop->offset; args.buffer = (void *) buffer; 4a410: 2d6e 000c fff0 movel %fp@(12),%fp@(-16) <== NOT EXECUTED args.count = count; 4a416: 2d6e 0010 fff4 movel %fp@(16),%fp@(-12) <== NOT EXECUTED rtems_status_code status; IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; args.iop = iop; 4a41c: 2d48 ffe8 movel %a0,%fp@(-24) <== NOT EXECUTED args.offset = iop->offset; args.buffer = (void *) buffer; args.count = count; args.flags = iop->flags; args.bytes_moved = 0; 4a420: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED status = rtems_io_write( 4a424: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4a428: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4a42c: 4eb9 0004 aa28 jsr 4aa28 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4a432: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a438: 4a80 tstl %d0 <== NOT EXECUTED 4a43a: 670a beqs 4a446 <== NOT EXECUTED return rtems_deviceio_errno(status); 4a43c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a43e: 4eba ff3a jsr %pc@(4a37a ) <== NOT EXECUTED 4a442: 588f addql #4,%sp <== NOT EXECUTED 4a444: 6004 bras 4a44a <== NOT EXECUTED return (ssize_t) args.bytes_moved; 4a446: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 4a44a: 4e5e unlk %fp <== NOT EXECUTED 4a44c: 4e75 rts 0004395c : /* * Drain output queue */ static void drainOutput (struct rtems_termios_tty *tty) { 4395c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 43960: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 43964: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED rtems_interrupt_level level; rtems_status_code sc; if (tty->device.outputUsesInterrupts != TERMIOS_POLLED) { 43968: 4aaa 00b4 tstl %a2@(180) <== NOT EXECUTED 4396c: 6752 beqs 439c0 <== NOT EXECUTED rtems_interrupt_disable (level); 4396e: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 43974: 2200 movel %d0,%d1 <== NOT EXECUTED 43976: 40c2 movew %sr,%d2 <== NOT EXECUTED 43978: 8282 orl %d2,%d1 <== NOT EXECUTED 4397a: 46c1 movew %d1,%sr <== NOT EXECUTED while (tty->rawOutBuf.Tail != tty->rawOutBuf.Head) { tty->rawOutBufState = rob_wait; rtems_interrupt_enable (level); sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore, 4397c: 47f9 0004 4e48 lea 44e48 ,%a3 <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); rtems_interrupt_disable (level); 43982: 2600 movel %d0,%d3 <== NOT EXECUTED 43984: 602c bras 439b2 <== NOT EXECUTED rtems_status_code sc; if (tty->device.outputUsesInterrupts != TERMIOS_POLLED) { rtems_interrupt_disable (level); while (tty->rawOutBuf.Tail != tty->rawOutBuf.Head) { tty->rawOutBufState = rob_wait; 43986: 7002 moveq #2,%d0 <== NOT EXECUTED 43988: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED rtems_interrupt_enable (level); 4398c: 46c2 movew %d2,%sr <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore, 4398e: 42a7 clrl %sp@- <== NOT EXECUTED 43990: 42a7 clrl %sp@- <== NOT EXECUTED 43992: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 43996: 4e93 jsr %a3@ <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 43998: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4399e: 4a80 tstl %d0 <== NOT EXECUTED 439a0: 6708 beqs 439aa <== NOT EXECUTED rtems_fatal_error_occurred (sc); 439a2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 439a4: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED rtems_interrupt_disable (level); 439aa: 2003 movel %d3,%d0 <== NOT EXECUTED 439ac: 40c2 movew %sr,%d2 <== NOT EXECUTED 439ae: 8082 orl %d2,%d0 <== NOT EXECUTED 439b0: 46c0 movew %d0,%sr <== NOT EXECUTED rtems_interrupt_level level; rtems_status_code sc; if (tty->device.outputUsesInterrupts != TERMIOS_POLLED) { rtems_interrupt_disable (level); while (tty->rawOutBuf.Tail != tty->rawOutBuf.Head) { 439b2: 222a 0084 movel %a2@(132),%d1 <== NOT EXECUTED 439b6: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 439ba: b081 cmpl %d1,%d0 <== NOT EXECUTED 439bc: 66c8 bnes 43986 <== NOT EXECUTED RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); rtems_interrupt_disable (level); } rtems_interrupt_enable (level); 439be: 46c2 movew %d2,%sr <== NOT EXECUTED } } 439c0: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 439c6: 4e5e unlk %fp <== NOT EXECUTED 439c8: 4e75 rts 000434b0 : /* * Echo a typed character */ static void echo (unsigned char c, struct rtems_termios_tty *tty) { 434b0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 434b4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 434b8: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 434bc: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { 434c0: 202a 003c movel %a2@(60),%d0 <== NOT EXECUTED /* * Echo a typed character */ static void echo (unsigned char c, struct rtems_termios_tty *tty) { 434c4: 1602 moveb %d2,%d3 <== NOT EXECUTED if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { 434c6: 0280 0000 0200 andil #512,%d0 <== NOT EXECUTED 434cc: 6750 beqs 4351e <== NOT EXECUTED 434ce: 2079 0005 5678 moveal 55678 <__ctype_ptr>,%a0 <== NOT EXECUTED 434d4: 4281 clrl %d1 <== NOT EXECUTED 434d6: 1202 moveb %d2,%d1 <== NOT EXECUTED 434d8: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 434dc: 49c0 extbl %d0 <== NOT EXECUTED 434de: 0800 0005 btst #5,%d0 <== NOT EXECUTED 434e2: 673a beqs 4351e <== NOT EXECUTED 434e4: 7009 moveq #9,%d0 <== NOT EXECUTED 434e6: b081 cmpl %d1,%d0 <== NOT EXECUTED 434e8: 6734 beqs 4351e <== NOT EXECUTED 434ea: 103c 000a moveb #10,%d0 <== NOT EXECUTED 434ee: b081 cmpl %d1,%d0 <== NOT EXECUTED 434f0: 672c beqs 4351e <== NOT EXECUTED char echobuf[2]; echobuf[0] = '^'; echobuf[1] = c ^ 0x40; rtems_termios_puts (echobuf, 2, tty); 434f2: 2f0a movel %a2,%sp@- <== NOT EXECUTED { if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { char echobuf[2]; echobuf[0] = '^'; echobuf[1] = c ^ 0x40; 434f4: 103c 0040 moveb #64,%d0 <== NOT EXECUTED 434f8: b182 eorl %d0,%d2 <== NOT EXECUTED rtems_termios_puts (echobuf, 2, tty); 434fa: 4878 0002 pea 2 <== NOT EXECUTED echo (unsigned char c, struct rtems_termios_tty *tty) { if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { char echobuf[2]; echobuf[0] = '^'; 434fe: 705e moveq #94,%d0 <== NOT EXECUTED echobuf[1] = c ^ 0x40; rtems_termios_puts (echobuf, 2, tty); 43500: 486e fffe pea %fp@(-2) <== NOT EXECUTED { if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { char echobuf[2]; echobuf[0] = '^'; echobuf[1] = c ^ 0x40; 43504: 1d42 ffff moveb %d2,%fp@(-1) <== NOT EXECUTED echo (unsigned char c, struct rtems_termios_tty *tty) { if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { char echobuf[2]; echobuf[0] = '^'; 43508: 1d40 fffe moveb %d0,%fp@(-2) <== NOT EXECUTED echobuf[1] = c ^ 0x40; rtems_termios_puts (echobuf, 2, tty); 4350c: 4eb9 0004 326a jsr 4326a <== NOT EXECUTED tty->column += 2; 43512: 54aa 0028 addql #2,%a2@(40) <== NOT EXECUTED 43516: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4351c: 600e bras 4352c <== NOT EXECUTED } else { oproc (c, tty); 4351e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43520: 4280 clrl %d0 <== NOT EXECUTED 43522: 1003 moveb %d3,%d0 <== NOT EXECUTED 43524: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43526: 4eba fe42 jsr %pc@(4336a ) <== NOT EXECUTED 4352a: 508f addql #8,%sp <== NOT EXECUTED } } 4352c: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 43532: 4e5e unlk %fp <== NOT EXECUTED 43534: 4e75 rts 0005b3c8 : group_fp = fopen("/etc/group", "r"); } void endgrent(void) { if (group_fp != NULL) 5b3c8: 2039 0009 1672 movel 91672 ,%d0 <== NOT EXECUTED fclose(group_fp); group_fp = fopen("/etc/group", "r"); } void endgrent(void) { 5b3ce: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (group_fp != NULL) 5b3d2: 4a80 tstl %d0 <== NOT EXECUTED 5b3d4: 670a beqs 5b3e0 <== NOT EXECUTED fclose(group_fp); 5b3d6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b3d8: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED 5b3de: 588f addql #4,%sp <== NOT EXECUTED } 5b3e0: 4e5e unlk %fp <== NOT EXECUTED 5b3e2: 4e75 rts 0005b3e4 : passwd_fp = fopen("/etc/passwd", "r"); } void endpwent(void) { if (passwd_fp != NULL) 5b3e4: 2039 0009 158a movel 9158a ,%d0 <== NOT EXECUTED fclose(passwd_fp); passwd_fp = fopen("/etc/passwd", "r"); } void endpwent(void) { 5b3ea: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (passwd_fp != NULL) 5b3ee: 4a80 tstl %d0 <== NOT EXECUTED 5b3f0: 670a beqs 5b3fc <== NOT EXECUTED fclose(passwd_fp); 5b3f2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b3f4: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED 5b3fa: 588f addql #4,%sp <== NOT EXECUTED } 5b3fc: 4e5e unlk %fp <== NOT EXECUTED 5b3fe: 4e75 rts 00043536 : * FIXME: Needs support for WERASE and ECHOPRT. * FIXME: Some of the tests should check for IEXTEN, too. */ static void erase (struct rtems_termios_tty *tty, int lineFlag) { 43536: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4353a: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 4353e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 43542: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED if (tty->ccount == 0) 43546: 4aaa 0020 tstl %a2@(32) <== NOT EXECUTED 4354a: 6700 0182 beqw 436ce <== NOT EXECUTED return; if (lineFlag) { 4354e: 4a84 tstl %d4 <== NOT EXECUTED 43550: 6700 016e beqw 436c0 <== NOT EXECUTED if (!(tty->termios.c_lflag & ECHO)) { 43554: 202a 003c movel %a2@(60),%d0 <== NOT EXECUTED 43558: 44c0 movew %d0,%ccr <== NOT EXECUTED 4355a: 6b08 bmis 43564 <== NOT EXECUTED tty->ccount = 0; 4355c: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED 43560: 6000 016c braw 436ce <== NOT EXECUTED return; } if (!(tty->termios.c_lflag & ECHOE)) { 43564: 0800 0004 btst #4,%d0 <== NOT EXECUTED 43568: 6600 0156 bnew 436c0 <== NOT EXECUTED tty->ccount = 0; echo (tty->termios.c_cc[VKILL], tty); 4356c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4356e: 4280 clrl %d0 <== NOT EXECUTED 43570: 102a 0044 moveb %a2@(68),%d0 <== NOT EXECUTED 43574: 2f00 movel %d0,%sp@- <== NOT EXECUTED if (!(tty->termios.c_lflag & ECHO)) { tty->ccount = 0; return; } if (!(tty->termios.c_lflag & ECHOE)) { tty->ccount = 0; 43576: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED echo (tty->termios.c_cc[VKILL], tty); 4357a: 4eba ff34 jsr %pc@(434b0 ) <== NOT EXECUTED if (tty->termios.c_lflag & ECHOK) 4357e: 7020 moveq #32,%d0 <== NOT EXECUTED 43580: 508f addql #8,%sp <== NOT EXECUTED 43582: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 43586: 6700 0146 beqw 436ce <== NOT EXECUTED echo ('\n', tty); 4358a: 700a moveq #10,%d0 <== NOT EXECUTED 4358c: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 43590: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED 43594: 6032 bras 435c8 <== NOT EXECUTED return; } } while (tty->ccount) { unsigned char c = tty->cbuf[--tty->ccount]; 43596: 2240 moveal %d0,%a1 <== NOT EXECUTED 43598: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 4359c: 5389 subql #1,%a1 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) { 4359e: 222a 003c movel %a2@(60),%d1 <== NOT EXECUTED echo ('\n', tty); return; } } while (tty->ccount) { unsigned char c = tty->cbuf[--tty->ccount]; 435a2: 2549 0020 movel %a1,%a2@(32) <== NOT EXECUTED 435a6: 1030 9800 moveb %a0@(00000000,%a1:l),%d0 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) { 435aa: 44c1 movew %d1,%ccr <== NOT EXECUTED 435ac: 6a00 010c bplw 436ba <== NOT EXECUTED if (!lineFlag && !(tty->termios.c_lflag & ECHOE)) { 435b0: 4a84 tstl %d4 <== NOT EXECUTED 435b2: 6620 bnes 435d4 <== NOT EXECUTED 435b4: 0801 0004 btst #4,%d1 <== NOT EXECUTED 435b8: 661a bnes 435d4 <== NOT EXECUTED echo (tty->termios.c_cc[VERASE], tty); 435ba: 4280 clrl %d0 <== NOT EXECUTED 435bc: 102a 0043 moveb %a2@(67),%d0 <== NOT EXECUTED 435c0: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 435c4: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } } if (!lineFlag) break; } } 435c8: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 435ce: 4e5e unlk %fp <== NOT EXECUTED while (tty->ccount) { unsigned char c = tty->cbuf[--tty->ccount]; if (tty->termios.c_lflag & ECHO) { if (!lineFlag && !(tty->termios.c_lflag & ECHOE)) { echo (tty->termios.c_cc[VERASE], tty); 435d0: 6000 fede braw 434b0 <== NOT EXECUTED 435d4: 2679 0005 5678 moveal 55678 <__ctype_ptr>,%a3 <== NOT EXECUTED } else if (c == '\t') { 435da: 4282 clrl %d2 <== NOT EXECUTED 435dc: 1400 moveb %d0,%d2 <== NOT EXECUTED 435de: 7a09 moveq #9,%d5 <== NOT EXECUTED 435e0: ba82 cmpl %d2,%d5 <== NOT EXECUTED 435e2: 6666 bnes 4364a <== NOT EXECUTED int col = tty->read_start_column; 435e4: 242a 002c movel %a2@(44),%d2 <== NOT EXECUTED c = tty->cbuf[i++]; if (c == '\t') { col = (col | 7) + 1; } else if (iscntrl (c)) { if (tty->termios.c_lflag & ECHOCTL) 435e8: 2601 movel %d1,%d3 <== NOT EXECUTED 435ea: 0283 0000 0200 andil #512,%d3 <== NOT EXECUTED while (i != tty->ccount) { c = tty->cbuf[i++]; if (c == '\t') { col = (col | 7) + 1; } else if (iscntrl (c)) { 435f0: 4281 clrl %d1 <== NOT EXECUTED 435f2: 6030 bras 43624 <== NOT EXECUTED /* * Find the character before the tab */ while (i != tty->ccount) { c = tty->cbuf[i++]; 435f4: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED if (c == '\t') { 435f8: 4280 clrl %d0 <== NOT EXECUTED 435fa: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 435fe: 7a09 moveq #9,%d5 <== NOT EXECUTED 43600: ba80 cmpl %d0,%d5 <== NOT EXECUTED 43602: 6608 bnes 4360c <== NOT EXECUTED col = (col | 7) + 1; 43604: 7007 moveq #7,%d0 <== NOT EXECUTED 43606: 8082 orl %d2,%d0 <== NOT EXECUTED 43608: 2400 movel %d0,%d2 <== NOT EXECUTED 4360a: 6014 bras 43620 <== NOT EXECUTED } else if (iscntrl (c)) { 4360c: 1033 0800 moveb %a3@(00000000,%d0:l),%d0 <== NOT EXECUTED 43610: 49c0 extbl %d0 <== NOT EXECUTED 43612: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43616: 6708 beqs 43620 <== NOT EXECUTED if (tty->termios.c_lflag & ECHOCTL) 43618: 4a83 tstl %d3 <== NOT EXECUTED 4361a: 6706 beqs 43622 <== NOT EXECUTED col += 2; 4361c: 5482 addql #2,%d2 <== NOT EXECUTED 4361e: 6002 bras 43622 <== NOT EXECUTED } else { col++; 43620: 5282 addql #1,%d2 <== NOT EXECUTED /* * Find the character before the tab */ while (i != tty->ccount) { c = tty->cbuf[i++]; 43622: 5281 addql #1,%d1 <== NOT EXECUTED int i = 0; /* * Find the character before the tab */ while (i != tty->ccount) { 43624: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 43626: 66cc bnes 435f4 <== NOT EXECUTED 43628: 6018 bras 43642 <== NOT EXECUTED /* * Back up over the tab */ while (tty->column > col) { rtems_termios_puts ("\b", 1, tty); 4362a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4362c: 4878 0001 pea 1 <== NOT EXECUTED 43630: 4879 0005 4117 pea 54117 <== NOT EXECUTED 43636: 4e94 jsr %a4@ <== NOT EXECUTED tty->column--; 43638: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4363e: 53aa 0028 subql #1,%a2@(40) <== NOT EXECUTED } /* * Back up over the tab */ while (tty->column > col) { 43642: b4aa 0028 cmpl %a2@(40),%d2 <== NOT EXECUTED 43646: 6de2 blts 4362a <== NOT EXECUTED 43648: 6070 bras 436ba <== NOT EXECUTED rtems_termios_puts ("\b", 1, tty); tty->column--; } } else { if (iscntrl (c) && (tty->termios.c_lflag & ECHOCTL)) { 4364a: 1033 2800 moveb %a3@(00000000,%d2:l),%d0 <== NOT EXECUTED 4364e: 49c0 extbl %d0 <== NOT EXECUTED 43650: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43654: 6726 beqs 4367c <== NOT EXECUTED 43656: 0801 0009 btst #9,%d1 <== NOT EXECUTED 4365a: 6720 beqs 4367c <== NOT EXECUTED rtems_termios_puts ("\b \b", 3, tty); 4365c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4365e: 4878 0003 pea 3 <== NOT EXECUTED 43662: 4879 0005 4115 pea 54115 <== NOT EXECUTED 43668: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->column) 4366a: 202a 0028 movel %a2@(40),%d0 <== NOT EXECUTED 4366e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43674: 6706 beqs 4367c <== NOT EXECUTED tty->column--; 43676: 5380 subql #1,%d0 <== NOT EXECUTED 43678: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED } if (!iscntrl (c) || (tty->termios.c_lflag & ECHOCTL)) { 4367c: 2079 0005 5678 moveal 55678 <__ctype_ptr>,%a0 <== NOT EXECUTED 43682: 1030 2800 moveb %a0@(00000000,%d2:l),%d0 <== NOT EXECUTED 43686: 49c0 extbl %d0 <== NOT EXECUTED 43688: 0800 0005 btst #5,%d0 <== NOT EXECUTED 4368c: 670c beqs 4369a <== NOT EXECUTED 4368e: 202a 003c movel %a2@(60),%d0 <== NOT EXECUTED 43692: 0280 0000 0200 andil #512,%d0 <== NOT EXECUTED 43698: 6720 beqs 436ba <== NOT EXECUTED rtems_termios_puts ("\b \b", 3, tty); 4369a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4369c: 4878 0003 pea 3 <== NOT EXECUTED 436a0: 4879 0005 4115 pea 54115 <== NOT EXECUTED 436a6: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->column) 436a8: 202a 0028 movel %a2@(40),%d0 <== NOT EXECUTED 436ac: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 436b2: 6706 beqs 436ba <== NOT EXECUTED tty->column--; 436b4: 5380 subql #1,%d0 <== NOT EXECUTED 436b6: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED } } } if (!lineFlag) 436ba: 4a84 tstl %d4 <== NOT EXECUTED 436bc: 6608 bnes 436c6 <== NOT EXECUTED 436be: 600e bras 436ce <== NOT EXECUTED rtems_termios_puts ("\b \b", 3, tty); if (tty->column) tty->column--; } if (!iscntrl (c) || (tty->termios.c_lflag & ECHOCTL)) { rtems_termios_puts ("\b \b", 3, tty); 436c0: 49f9 0004 326a lea 4326a ,%a4 <== NOT EXECUTED if (tty->termios.c_lflag & ECHOK) echo ('\n', tty); return; } } while (tty->ccount) { 436c6: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 436ca: 6600 feca bnew 43596 <== NOT EXECUTED } } if (!lineFlag) break; } } 436ce: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 436d4: 4e5e unlk %fp <== NOT EXECUTED 436d6: 4e75 rts 00065da8 : #include int fchdir( int fd ) { 65da8: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 65dac: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 65db0: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_location_info_t loc, saved; rtems_libio_check_fd( fd ); 65db4: b4b9 0007 c9c8 cmpl 7c9c8 ,%d2 <== NOT EXECUTED 65dba: 6420 bccs 65ddc <== NOT EXECUTED iop = rtems_libio_iop( fd ); 65dbc: 2202 movel %d2,%d1 <== NOT EXECUTED 65dbe: 2002 movel %d2,%d0 <== NOT EXECUTED 65dc0: e589 lsll #2,%d1 <== NOT EXECUTED 65dc2: e988 lsll #4,%d0 <== NOT EXECUTED 65dc4: 9081 subl %d1,%d0 <== NOT EXECUTED 65dc6: 2279 0009 24e0 moveal 924e0 ,%a1 <== NOT EXECUTED 65dcc: d082 addl %d2,%d0 <== NOT EXECUTED 65dce: e588 lsll #2,%d0 <== NOT EXECUTED 65dd0: d3c0 addal %d0,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 65dd2: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 65dd6: 0800 0008 btst #8,%d0 <== NOT EXECUTED 65dda: 6610 bnes 65dec <== NOT EXECUTED 65ddc: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 65de2: 7409 moveq #9,%d2 <== NOT EXECUTED 65de4: 2040 moveal %d0,%a0 <== NOT EXECUTED 65de6: 2082 movel %d2,%a0@ <== NOT EXECUTED 65de8: 6000 00bc braw 65ea6 <== NOT EXECUTED /* * Now process the fchmod(). */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 65dec: 0800 0001 btst #1,%d0 <== NOT EXECUTED 65df0: 6610 bnes 65e02 <== NOT EXECUTED 65df2: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 65df8: 7216 moveq #22,%d1 <== NOT EXECUTED 65dfa: 2040 moveal %d0,%a0 <== NOT EXECUTED 65dfc: 2081 movel %d1,%a0@ <== NOT EXECUTED 65dfe: 6000 00a6 braw 65ea6 <== NOT EXECUTED /* * Verify you can change directory into this node. */ if ( !iop->pathinfo.ops ) { 65e02: 2069 0018 moveal %a1@(24),%a0 <== NOT EXECUTED 65e06: 4a88 tstl %a0 <== NOT EXECUTED 65e08: 6708 beqs 65e12 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( !iop->pathinfo.ops->node_type_h ) { 65e0a: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 65e0e: 4a88 tstl %a0 <== NOT EXECUTED 65e10: 6612 bnes 65e24 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 65e12: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 65e18: 2040 moveal %d0,%a0 <== NOT EXECUTED 65e1a: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 65e20: 6000 0084 braw 65ea6 <== NOT EXECUTED } if ( (*iop->pathinfo.ops->node_type_h)( &iop->pathinfo ) != 65e24: 2609 movel %a1,%d3 <== NOT EXECUTED 65e26: 0683 0000 0010 addil #16,%d3 <== NOT EXECUTED 65e2c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 65e2e: 4e90 jsr %a0@ <== NOT EXECUTED 65e30: 588f addql #4,%sp <== NOT EXECUTED 65e32: 7201 moveq #1,%d1 <== NOT EXECUTED 65e34: b280 cmpl %d0,%d1 <== NOT EXECUTED 65e36: 670e beqs 65e46 <== NOT EXECUTED RTEMS_FILESYSTEM_DIRECTORY ) { rtems_set_errno_and_return_minus_one( ENOTDIR ); 65e38: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 65e3e: 2040 moveal %d0,%a0 <== NOT EXECUTED 65e40: 7014 moveq #20,%d0 <== NOT EXECUTED 65e42: 2080 movel %d0,%a0@ <== NOT EXECUTED 65e44: 6060 bras 65ea6 <== NOT EXECUTED * but note the race condition. Threads who * share their rtems_filesystem_current better * be synchronized! */ saved = rtems_filesystem_current; 65e46: 4878 0010 pea 10 <== NOT EXECUTED 65e4a: 2439 0007 d460 movel 7d460 ,%d2 <== NOT EXECUTED 65e50: 5882 addql #4,%d2 <== NOT EXECUTED 65e52: 2f02 movel %d2,%sp@- <== NOT EXECUTED 65e54: 280e movel %fp,%d4 <== NOT EXECUTED 65e56: 0684 ffff ffe0 addil #-32,%d4 <== NOT EXECUTED 65e5c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 65e5e: 45f9 0006 a3dc lea 6a3dc ,%a2 <== NOT EXECUTED 65e64: 4e92 jsr %a2@ <== NOT EXECUTED rtems_filesystem_current = iop->pathinfo; 65e66: 4878 0010 pea 10 <== NOT EXECUTED 65e6a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 65e6c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 65e6e: 4e92 jsr %a2@ <== NOT EXECUTED /* clone the current node */ if (rtems_filesystem_evaluate_path(".", 0, &loc, 0)) { 65e70: 42a7 clrl %sp@- <== NOT EXECUTED 65e72: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 65e76: 42a7 clrl %sp@- <== NOT EXECUTED 65e78: 4879 0007 8dca pea 78dca <_CPU_m68k_BFFFO_table+0x3d7> <== NOT EXECUTED 65e7e: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED 65e84: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED 65e8a: 4a80 tstl %d0 <== NOT EXECUTED 65e8c: 671c beqs 65eaa <== NOT EXECUTED /* cloning failed; restore original and bail out */ rtems_filesystem_current = saved; 65e8e: 4878 0010 pea 10 <== NOT EXECUTED 65e92: 2039 0007 d460 movel 7d460 ,%d0 <== NOT EXECUTED 65e98: 2f04 movel %d4,%sp@- <== NOT EXECUTED 65e9a: 5880 addql #4,%d0 <== NOT EXECUTED 65e9c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 65e9e: 4e92 jsr %a2@ <== NOT EXECUTED 65ea0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 65ea6: 70ff moveq #-1,%d0 <== NOT EXECUTED 65ea8: 6036 bras 65ee0 <== NOT EXECUTED return -1; } /* release the old one */ rtems_filesystem_freenode( &saved ); 65eaa: 206e ffe8 moveal %fp@(-24),%a0 <== NOT EXECUTED 65eae: 4a88 tstl %a0 <== NOT EXECUTED 65eb0: 670e beqs 65ec0 <== NOT EXECUTED 65eb2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 65eb6: 4a88 tstl %a0 <== NOT EXECUTED 65eb8: 6706 beqs 65ec0 <== NOT EXECUTED 65eba: 2f04 movel %d4,%sp@- <== NOT EXECUTED 65ebc: 4e90 jsr %a0@ <== NOT EXECUTED 65ebe: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_current = loc; 65ec0: 4878 0010 pea 10 <== NOT EXECUTED 65ec4: 2239 0007 d460 movel 7d460 ,%d1 <== NOT EXECUTED 65eca: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 65ece: 5881 addql #4,%d1 <== NOT EXECUTED 65ed0: 2f01 movel %d1,%sp@- <== NOT EXECUTED 65ed2: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED 65ed8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 65ede: 4280 clrl %d0 <== NOT EXECUTED return 0; } 65ee0: 4cee 041c ffd0 moveml %fp@(-48),%d2-%d4/%a2 <== NOT EXECUTED 65ee6: 4e5e unlk %fp <== NOT EXECUTED 65ee8: 4e75 rts <== NOT EXECUTED ... 0005ac74 : int fchmod( int fd, mode_t mode ) { 5ac74: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5ac78: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ac7a: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 5ac7e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ac80: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); 5ac84: b4b9 0007 c9c8 cmpl 7c9c8 ,%d2 <== NOT EXECUTED 5ac8a: 6420 bccs 5acac <== NOT EXECUTED iop = rtems_libio_iop( fd ); 5ac8c: 2202 movel %d2,%d1 <== NOT EXECUTED 5ac8e: 2002 movel %d2,%d0 <== NOT EXECUTED 5ac90: e589 lsll #2,%d1 <== NOT EXECUTED 5ac92: e988 lsll #4,%d0 <== NOT EXECUTED 5ac94: 9081 subl %d1,%d0 <== NOT EXECUTED 5ac96: 2279 0009 24e0 moveal 924e0 ,%a1 <== NOT EXECUTED 5ac9c: d082 addl %d2,%d0 <== NOT EXECUTED 5ac9e: e588 lsll #2,%d0 <== NOT EXECUTED 5aca0: d3c0 addal %d0,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 5aca2: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 5aca6: 0800 0008 btst #8,%d0 <== NOT EXECUTED 5acaa: 660e bnes 5acba <== NOT EXECUTED 5acac: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5acb2: 7209 moveq #9,%d1 <== NOT EXECUTED 5acb4: 2040 moveal %d0,%a0 <== NOT EXECUTED 5acb6: 2081 movel %d1,%a0@ <== NOT EXECUTED 5acb8: 604e bras 5ad08 <== NOT EXECUTED /* * Now process the fchmod(). */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 5acba: 44c0 movew %d0,%ccr <== NOT EXECUTED 5acbc: 670e beqs 5accc <== NOT EXECUTED 5acbe: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5acc4: 2040 moveal %d0,%a0 <== NOT EXECUTED 5acc6: 7016 moveq #22,%d0 <== NOT EXECUTED 5acc8: 2080 movel %d0,%a0@ <== NOT EXECUTED 5acca: 603c bras 5ad08 <== NOT EXECUTED if ( !iop->handlers->fchmod_h ) 5accc: 2069 0030 moveal %a1@(48),%a0 <== NOT EXECUTED 5acd0: 4aa8 001c tstl %a0@(28) <== NOT EXECUTED 5acd4: 6610 bnes 5ace6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5acd6: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5acdc: 2040 moveal %d0,%a0 <== NOT EXECUTED 5acde: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5ace4: 6022 bras 5ad08 <== NOT EXECUTED return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); 5ace6: 2069 0014 moveal %a1@(20),%a0 <== NOT EXECUTED 5acea: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED } 5acee: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5acf2: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->handlers->fchmod_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); 5acf6: d3fc 0000 0010 addal #16,%a1 <== NOT EXECUTED 5acfc: 2d49 0008 movel %a1,%fp@(8) <== NOT EXECUTED 5ad00: 2268 001c moveal %a0@(28),%a1 <== NOT EXECUTED } 5ad04: 4e5e unlk %fp <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->handlers->fchmod_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); 5ad06: 4ed1 jmp %a1@ <== NOT EXECUTED } 5ad08: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5ad0c: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 5ad10: 4e5e unlk %fp <== NOT EXECUTED 5ad12: 70ff moveq #-1,%d0 <== NOT EXECUTED 5ad14: 4e75 rts <== NOT EXECUTED ... 0005ad18 : int fchown( int fd, uid_t owner, gid_t group ) { 5ad18: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 5ad1c: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 5ad20: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 5ad24: 382e 000e movew %fp@(14),%d4 <== NOT EXECUTED 5ad28: 362e 0012 movew %fp@(18),%d3 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); 5ad2c: b4b9 0007 c9c8 cmpl 7c9c8 ,%d2 <== NOT EXECUTED 5ad32: 6420 bccs 5ad54 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 5ad34: 2202 movel %d2,%d1 <== NOT EXECUTED 5ad36: 2002 movel %d2,%d0 <== NOT EXECUTED 5ad38: e589 lsll #2,%d1 <== NOT EXECUTED 5ad3a: e988 lsll #4,%d0 <== NOT EXECUTED 5ad3c: 9081 subl %d1,%d0 <== NOT EXECUTED 5ad3e: 2279 0009 24e0 moveal 924e0 ,%a1 <== NOT EXECUTED 5ad44: d082 addl %d2,%d0 <== NOT EXECUTED 5ad46: e588 lsll #2,%d0 <== NOT EXECUTED 5ad48: d3c0 addal %d0,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 5ad4a: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 5ad4e: 0800 0008 btst #8,%d0 <== NOT EXECUTED 5ad52: 660e bnes 5ad62 <== NOT EXECUTED 5ad54: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5ad5a: 7209 moveq #9,%d1 <== NOT EXECUTED 5ad5c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ad5e: 2081 movel %d1,%a0@ <== NOT EXECUTED 5ad60: 6054 bras 5adb6 <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 5ad62: 44c0 movew %d0,%ccr <== NOT EXECUTED 5ad64: 670e beqs 5ad74 <== NOT EXECUTED 5ad66: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5ad6c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ad6e: 7016 moveq #22,%d0 <== NOT EXECUTED 5ad70: 2080 movel %d0,%a0@ <== NOT EXECUTED 5ad72: 6042 bras 5adb6 <== NOT EXECUTED if ( !iop->pathinfo.ops->chown_h ) 5ad74: 2069 0018 moveal %a1@(24),%a0 <== NOT EXECUTED 5ad78: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 5ad7c: 4a88 tstl %a0 <== NOT EXECUTED 5ad7e: 6610 bnes 5ad90 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5ad80: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5ad86: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ad88: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5ad8e: 6026 bras 5adb6 <== NOT EXECUTED return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); 5ad90: 4281 clrl %d1 <== NOT EXECUTED 5ad92: 4280 clrl %d0 <== NOT EXECUTED 5ad94: 3203 movew %d3,%d1 <== NOT EXECUTED 5ad96: d3fc 0000 0010 addal #16,%a1 <== NOT EXECUTED 5ad9c: 3004 movew %d4,%d0 <== NOT EXECUTED 5ad9e: 2d49 0008 movel %a1,%fp@(8) <== NOT EXECUTED } 5ada2: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->pathinfo.ops->chown_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); 5ada8: 2248 moveal %a0,%a1 <== NOT EXECUTED 5adaa: 2d41 0010 movel %d1,%fp@(16) <== NOT EXECUTED 5adae: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED } 5adb2: 4e5e unlk %fp <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->pathinfo.ops->chown_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); 5adb4: 4ed1 jmp %a1@ <== NOT EXECUTED } 5adb6: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED 5adbc: 4e5e unlk %fp <== NOT EXECUTED 5adbe: 70ff moveq #-1,%d0 <== NOT EXECUTED 5adc0: 4e75 rts <== NOT EXECUTED ... 00065eec : int fcntl( int fd, int cmd, ... ) { 65eec: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 65ef0: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 65ef4: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 65ef8: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED int fd2; int flags; int mask; int ret = 0; rtems_libio_check_fd( fd ); 65efc: 2479 0007 c9c8 moveal 7c9c8 ,%a2 <== NOT EXECUTED int fcntl( int fd, int cmd, ... ) { 65f02: 41ee 0010 lea %fp@(16),%a0 <== NOT EXECUTED int fd2; int flags; int mask; int ret = 0; rtems_libio_check_fd( fd ); 65f06: b5c2 cmpal %d2,%a2 <== NOT EXECUTED 65f08: 6320 blss 65f2a <== NOT EXECUTED iop = rtems_libio_iop( fd ); 65f0a: 2202 movel %d2,%d1 <== NOT EXECUTED 65f0c: 2002 movel %d2,%d0 <== NOT EXECUTED 65f0e: e589 lsll #2,%d1 <== NOT EXECUTED 65f10: e988 lsll #4,%d0 <== NOT EXECUTED 65f12: 2279 0009 24e0 moveal 924e0 ,%a1 <== NOT EXECUTED 65f18: 9081 subl %d1,%d0 <== NOT EXECUTED 65f1a: d082 addl %d2,%d0 <== NOT EXECUTED 65f1c: 47f1 0c00 lea %a1@(00000000,%d0:l:4),%a3 <== NOT EXECUTED rtems_libio_check_is_open(iop); 65f20: 222b 000c movel %a3@(12),%d1 <== NOT EXECUTED 65f24: 0801 0008 btst #8,%d1 <== NOT EXECUTED 65f28: 6610 bnes 65f3a <== NOT EXECUTED 65f2a: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 65f30: 7209 moveq #9,%d1 <== NOT EXECUTED 65f32: 2040 moveal %d0,%a0 <== NOT EXECUTED 65f34: 2081 movel %d1,%a0@ <== NOT EXECUTED 65f36: 6000 0104 braw 6603c <== NOT EXECUTED /* * This switch should contain all the cases from POSIX. */ switch ( cmd ) { 65f3a: 7009 moveq #9,%d0 <== NOT EXECUTED 65f3c: b083 cmpl %d3,%d0 <== NOT EXECUTED 65f3e: 6500 00f0 bcsw 66030 <== NOT EXECUTED 65f42: 303b 3a08 movew %pc@(65f4c ,%d3:l:2),%d0 <== NOT EXECUTED 65f46: 48c0 extl %d0 <== NOT EXECUTED 65f48: 4efb 0802 jmp %pc@(65f4c ,%d0:l) <== NOT EXECUTED 65f4c: 0014 024 <== NOT EXECUTED 65f4e: 0080 008e 00a4 oril #9306276,%d0 <== NOT EXECUTED 65f54: 00b2 00d4 00d4 oril #13893844,%d2 <== NOT EXECUTED 65f5a: 00d4 0324 <== NOT EXECUTED 65f5c: 00d4 0324 <== NOT EXECUTED 65f5e: 00d4 0324 <== NOT EXECUTED case F_DUPFD: /* dup */ fd2 = va_arg( ap, int ); 65f60: 2410 movel %a0@,%d2 <== NOT EXECUTED if ( fd2 ) 65f62: 671a beqs 65f7e <== NOT EXECUTED diop = rtems_libio_iop( fd2 ); 65f64: b5c2 cmpal %d2,%a2 <== NOT EXECUTED 65f66: 6204 bhis 65f6c <== NOT EXECUTED 65f68: 95ca subal %a2,%a2 <== NOT EXECUTED 65f6a: 6020 bras 65f8c <== NOT EXECUTED 65f6c: 2202 movel %d2,%d1 <== NOT EXECUTED 65f6e: 2002 movel %d2,%d0 <== NOT EXECUTED 65f70: e589 lsll #2,%d1 <== NOT EXECUTED 65f72: e988 lsll #4,%d0 <== NOT EXECUTED 65f74: 9081 subl %d1,%d0 <== NOT EXECUTED 65f76: d082 addl %d2,%d0 <== NOT EXECUTED 65f78: 45f1 0c00 lea %a1@(00000000,%d0:l:4),%a2 <== NOT EXECUTED 65f7c: 600e bras 65f8c <== NOT EXECUTED else { /* allocate a file control block */ diop = rtems_libio_allocate(); 65f7e: 4eb9 0004 56b2 jsr 456b2 <== NOT EXECUTED 65f84: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( diop == 0 ) { 65f86: 4a80 tstl %d0 <== NOT EXECUTED 65f88: 6700 00b2 beqw 6603c <== NOT EXECUTED diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; ret = (int) (diop - rtems_libio_iops); 65f8c: 240a movel %a2,%d2 <== NOT EXECUTED ret = -1; break; } } diop->handlers = iop->handlers; 65f8e: 256b 0030 0030 movel %a3@(48),%a2@(48) <== NOT EXECUTED diop->file_info = iop->file_info; 65f94: 256b 002c 002c movel %a3@(44),%a2@(44) <== NOT EXECUTED diop->flags = iop->flags; 65f9a: 256b 000c 000c movel %a3@(12),%a2@(12) <== NOT EXECUTED diop->pathinfo = iop->pathinfo; 65fa0: 4878 0010 pea 10 <== NOT EXECUTED 65fa4: 486b 0010 pea %a3@(16) <== NOT EXECUTED 65fa8: 486a 0010 pea %a2@(16) <== NOT EXECUTED 65fac: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED ret = (int) (diop - rtems_libio_iops); 65fb2: 94b9 0009 24e0 subl 924e0 ,%d2 <== NOT EXECUTED 65fb8: 203c c4ec 4ec5 movel #-991146299,%d0 <== NOT EXECUTED 65fbe: e482 asrl #2,%d2 <== NOT EXECUTED 65fc0: 4c00 2800 mulsl %d0,%d2 <== NOT EXECUTED 65fc4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 65fca: 6074 bras 66040 <== NOT EXECUTED break; case F_GETFD: /* get f_flags */ ret = ((iop->flags & LIBIO_FLAGS_CLOSE_ON_EXEC) != 0); 65fcc: 700b moveq #11,%d0 <== NOT EXECUTED 65fce: 2401 movel %d1,%d2 <== NOT EXECUTED 65fd0: e0aa lsrl %d0,%d2 <== NOT EXECUTED 65fd2: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 65fd6: c480 andl %d0,%d2 <== NOT EXECUTED 65fd8: 606a bras 66044 <== NOT EXECUTED * if a new process is exec()'ed. Since RTEMS does not support * processes, then we can ignore this one except to make * F_GETFD work. */ if ( va_arg( ap, int ) ) 65fda: 4a90 tstl %a0@ <== NOT EXECUTED 65fdc: 6706 beqs 65fe4 <== NOT EXECUTED iop->flags |= LIBIO_FLAGS_CLOSE_ON_EXEC; 65fde: 08c1 000b bset #11,%d1 <== NOT EXECUTED 65fe2: 6004 bras 65fe8 <== NOT EXECUTED else iop->flags &= ~LIBIO_FLAGS_CLOSE_ON_EXEC; 65fe4: 0881 000b bclr #11,%d1 <== NOT EXECUTED 65fe8: 2741 000c movel %d1,%a3@(12) <== NOT EXECUTED 65fec: 4282 clrl %d2 <== NOT EXECUTED 65fee: 6054 bras 66044 <== NOT EXECUTED break; case F_GETFL: /* more flags (cloexec) */ ret = rtems_libio_to_fcntl_flags( iop->flags ); 65ff0: 2f01 movel %d1,%sp@- <== NOT EXECUTED 65ff2: 4eb9 0004 5528 jsr 45528 <== NOT EXECUTED 65ff8: 588f addql #4,%sp <== NOT EXECUTED 65ffa: 2400 movel %d0,%d2 <== NOT EXECUTED 65ffc: 6042 bras 66040 <== NOT EXECUTED break; case F_SETFL: flags = rtems_libio_fcntl_flags( va_arg( ap, int ) ); 65ffe: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 66000: 4eb9 0004 5762 jsr 45762 <== NOT EXECUTED /* * XXX If we are turning on append, should we seek to the end? */ iop->flags = (iop->flags & ~mask) | (flags & mask); 66006: 222b 000c movel %a3@(12),%d1 <== NOT EXECUTED 6600a: 0280 0000 0201 andil #513,%d0 <== NOT EXECUTED 66010: 0281 ffff fdfe andil #-514,%d1 <== NOT EXECUTED 66016: 8081 orl %d1,%d0 <== NOT EXECUTED 66018: 2740 000c movel %d0,%a3@(12) <== NOT EXECUTED 6601c: 588f addql #4,%sp <== NOT EXECUTED 6601e: 60cc bras 65fec <== NOT EXECUTED errno = ENOTSUP; ret = -1; break; case F_GETOWN: /* for sockets. */ errno = ENOTSUP; 66020: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 66026: 2040 moveal %d0,%a0 <== NOT EXECUTED 66028: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 6602e: 600c bras 6603c <== NOT EXECUTED ret = -1; break; default: errno = EINVAL; 66030: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 66036: 2040 moveal %d0,%a0 <== NOT EXECUTED 66038: 7016 moveq #22,%d0 <== NOT EXECUTED 6603a: 2080 movel %d0,%a0@ <== NOT EXECUTED 6603c: 74ff moveq #-1,%d2 <== NOT EXECUTED 6603e: 602a bras 6606a <== NOT EXECUTED /* * If we got this far successfully, then we give the optional * filesystem specific handler a chance to process this. */ if (ret >= 0) { 66040: 4a82 tstl %d2 <== NOT EXECUTED 66042: 6d26 blts 6606a <== NOT EXECUTED if (iop->handlers->fcntl_h) { 66044: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED 66048: 2068 0030 moveal %a0@(48),%a0 <== NOT EXECUTED 6604c: 4a88 tstl %a0 <== NOT EXECUTED 6604e: 671a beqs 6606a <== NOT EXECUTED int err = (*iop->handlers->fcntl_h)( cmd, iop ); 66050: 2f0b movel %a3,%sp@- <== NOT EXECUTED 66052: 2f03 movel %d3,%sp@- <== NOT EXECUTED 66054: 4e90 jsr %a0@ <== NOT EXECUTED if (err) { 66056: 508f addql #8,%sp <== NOT EXECUTED * filesystem specific handler a chance to process this. */ if (ret >= 0) { if (iop->handlers->fcntl_h) { int err = (*iop->handlers->fcntl_h)( cmd, iop ); 66058: 2440 moveal %d0,%a2 <== NOT EXECUTED if (err) { 6605a: 4a80 tstl %d0 <== NOT EXECUTED 6605c: 670c beqs 6606a <== NOT EXECUTED errno = err; 6605e: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 66064: 74ff moveq #-1,%d2 <== NOT EXECUTED 66066: 2040 moveal %d0,%a0 <== NOT EXECUTED 66068: 208a movel %a2,%a0@ <== NOT EXECUTED va_list ap; va_start( ap, cmd ); ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 6606a: 2002 movel %d2,%d0 <== NOT EXECUTED 6606c: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 66072: 4e5e unlk %fp <== NOT EXECUTED 66074: 4e75 rts 0005cb98 : bool file_systems_below_this_mountpoint( const char *path, rtems_filesystem_location_info_t *fs_root_loc, rtems_filesystem_mount_table_entry_t *fs_to_unmount ) { 5cb98: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5cb9c: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED /* * Search the mount table for any mount entries referencing this * mount entry. */ for ( the_node = rtems_filesystem_mount_table_control.first; 5cba0: 2079 0009 257c moveal 9257c ,%a0 <== NOT EXECUTED 5cba6: 6010 bras 5cbb8 <== NOT EXECUTED !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node ); the_node = the_node->next ) { the_mount_entry = ( rtems_filesystem_mount_table_entry_t * )the_node; if (the_mount_entry->mt_point_node.mt_entry == fs_root_loc->mt_entry ) { 5cba8: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 5cbac: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 5cbb0: 6604 bnes 5cbb6 <== NOT EXECUTED 5cbb2: 7001 moveq #1,%d0 <== NOT EXECUTED 5cbb4: 600c bras 5cbc2 <== NOT EXECUTED * mount entry. */ for ( the_node = rtems_filesystem_mount_table_control.first; !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node ); the_node = the_node->next ) { 5cbb6: 2050 moveal %a0@,%a0 <== NOT EXECUTED * Search the mount table for any mount entries referencing this * mount entry. */ for ( the_node = rtems_filesystem_mount_table_control.first; !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node ); 5cbb8: b1fc 0009 2580 cmpal #599424,%a0 <== NOT EXECUTED 5cbbe: 66e8 bnes 5cba8 <== NOT EXECUTED 5cbc0: 4200 clrb %d0 <== NOT EXECUTED return true; } } return false; } 5cbc2: 4e5e unlk %fp <== NOT EXECUTED 5cbc4: 4e75 rts 00048dc4 : void free( void *ptr ) { MSBUMP(free_calls, 1); 48dc4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48dc8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48dca: 52b9 0005 6bac addql #1,56bac <== NOT EXECUTED 48dd0: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED if ( !ptr ) 48dd4: 676c beqs 48e42 <== NOT EXECUTED /* * Do not attempt to free memory if in a critical section or ISR. */ if ( _System_state_Is_up(_System_state_Get()) && 48dd6: 7003 moveq #3,%d0 <== NOT EXECUTED 48dd8: b0b9 0005 6e36 cmpl 56e36 <_System_state_Current>,%d0 <== NOT EXECUTED 48dde: 661a bnes 48dfa <== NOT EXECUTED 48de0: 4eb9 0004 9220 jsr 49220 <== NOT EXECUTED 48de6: 4a00 tstb %d0 <== NOT EXECUTED 48de8: 6610 bnes 48dfa <== NOT EXECUTED !malloc_is_system_state_OK() ) { malloc_deferred_free(ptr); 48dea: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED RTEMS_Malloc_Heap.begin, RTEMS_Malloc_Heap.end ); } } 48dee: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 48df2: 4e5e unlk %fp <== NOT EXECUTED * Do not attempt to free memory if in a critical section or ISR. */ if ( _System_state_Is_up(_System_state_Get()) && !malloc_is_system_state_OK() ) { malloc_deferred_free(ptr); 48df4: 4ef9 0004 9260 jmp 49260 <== NOT EXECUTED #endif /* * If configured, update the statistics */ if ( rtems_malloc_statistics_helpers ) 48dfa: 2079 0005 5b24 moveal 55b24 ,%a0 <== NOT EXECUTED 48e00: 4a88 tstl %a0 <== NOT EXECUTED 48e02: 670a beqs 48e0e <== NOT EXECUTED (*rtems_malloc_statistics_helpers->at_free)(ptr); 48e04: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e06: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED 48e0a: 4e90 jsr %a0@ <== NOT EXECUTED 48e0c: 588f addql #4,%sp <== NOT EXECUTED if ( !_Protected_heap_Free( &RTEMS_Malloc_Heap, ptr ) ) { 48e0e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e10: 4879 0005 6b48 pea 56b48 <== NOT EXECUTED 48e16: 4eb9 0004 9e9c jsr 49e9c <_Protected_heap_Free> <== NOT EXECUTED 48e1c: 508f addql #8,%sp <== NOT EXECUTED 48e1e: 4a00 tstb %d0 <== NOT EXECUTED 48e20: 6620 bnes 48e42 <== NOT EXECUTED printk( "Program heap: free of bad pointer %p -- range %p - %p \n", 48e22: 2f39 0005 6b64 movel 56b64 ,%sp@- <== NOT EXECUTED 48e28: 2f39 0005 6b60 movel 56b60 ,%sp@- <== NOT EXECUTED 48e2e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e30: 4879 0005 4427 pea 54427 <== NOT EXECUTED 48e36: 4eb9 0004 2c36 jsr 42c36 <== NOT EXECUTED 48e3c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED RTEMS_Malloc_Heap.begin, RTEMS_Malloc_Heap.end ); } } 48e42: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 48e46: 4e5e unlk %fp <== NOT EXECUTED 48e48: 4e75 rts <== NOT EXECUTED ... 0005c224 : * NOTE: this must be called with * thread dispatching disabled! */ static void free_user_env(void *venv) { 5c224: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5c228: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5c22a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED rtems_user_env_t *env = (rtems_user_env_t*) venv ; if (env != &rtems_global_user_env 5c22e: b5fc 0009 2974 cmpal #600436,%a2 <== NOT EXECUTED 5c234: 6740 beqs 5c276 <== NOT EXECUTED #ifdef HAVE_USERENV_REFCNT && --env->refcnt <= 0 #endif ) { rtems_filesystem_freenode( &env->current_directory); 5c236: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED 5c23a: 4a88 tstl %a0 <== NOT EXECUTED 5c23c: 6710 beqs 5c24e <== NOT EXECUTED 5c23e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c242: 4a88 tstl %a0 <== NOT EXECUTED 5c244: 6708 beqs 5c24e <== NOT EXECUTED 5c246: 486a 0004 pea %a2@(4) <== NOT EXECUTED 5c24a: 4e90 jsr %a0@ <== NOT EXECUTED 5c24c: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &env->root_directory); 5c24e: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 5c252: 4a88 tstl %a0 <== NOT EXECUTED 5c254: 6710 beqs 5c266 <== NOT EXECUTED 5c256: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c25a: 4a88 tstl %a0 <== NOT EXECUTED 5c25c: 6708 beqs 5c266 <== NOT EXECUTED 5c25e: 486a 0014 pea %a2@(20) <== NOT EXECUTED 5c262: 4e90 jsr %a0@ <== NOT EXECUTED 5c264: 588f addql #4,%sp <== NOT EXECUTED free(env); 5c266: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } 5c26a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 5c26e: 4e5e unlk %fp <== NOT EXECUTED && --env->refcnt <= 0 #endif ) { rtems_filesystem_freenode( &env->current_directory); rtems_filesystem_freenode( &env->root_directory); free(env); 5c270: 4ef9 0004 5358 jmp 45358 <== NOT EXECUTED } } 5c276: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 5c27a: 4e5e unlk %fp <== NOT EXECUTED 5c27c: 4e75 rts 0005313c : int fstat( int fd, struct stat *sbuf ) { 5313c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 53140: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 53144: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 53148: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !sbuf ) 5314c: 660e bnes 5315c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 5314e: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 53154: 720e moveq #14,%d1 <== NOT EXECUTED 53156: 2040 moveal %d0,%a0 <== NOT EXECUTED 53158: 2081 movel %d1,%a0@ <== NOT EXECUTED 5315a: 607e bras 531da <== NOT EXECUTED /* * Now process the stat() request. */ iop = rtems_libio_iop( fd ); 5315c: b4b9 0005 50e8 cmpl 550e8 ,%d2 <== NOT EXECUTED 53162: 6400 0082 bccw 531e6 <== NOT EXECUTED 53166: 2002 movel %d2,%d0 <== NOT EXECUTED 53168: 2202 movel %d2,%d1 <== NOT EXECUTED 5316a: e588 lsll #2,%d0 <== NOT EXECUTED 5316c: e989 lsll #4,%d1 <== NOT EXECUTED 5316e: 9280 subl %d0,%d1 <== NOT EXECUTED 53170: 2479 0005 6b3c moveal 56b3c ,%a2 <== NOT EXECUTED 53176: d282 addl %d2,%d1 <== NOT EXECUTED 53178: e589 lsll #2,%d1 <== NOT EXECUTED 5317a: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_fd( fd ); rtems_libio_check_is_open(iop); 5317c: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 53180: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 53186: 675e beqs 531e6 <== NOT EXECUTED if ( !iop->handlers ) 53188: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 5318c: 4a88 tstl %a0 <== NOT EXECUTED 5318e: 6756 beqs 531e6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fstat_h ) 53190: 4aa8 0018 tstl %a0@(24) <== NOT EXECUTED 53194: 6610 bnes 531a6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 53196: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 5319c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5319e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 531a4: 6034 bras 531da <== NOT EXECUTED /* * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); 531a6: 4878 004a pea 4a <== NOT EXECUTED 531aa: 42a7 clrl %sp@- <== NOT EXECUTED 531ac: 2f03 movel %d3,%sp@- <== NOT EXECUTED 531ae: 4eb9 0004 b464 jsr 4b464 <== NOT EXECUTED return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); 531b4: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 531b8: d5fc 0000 0010 addal #16,%a2 <== NOT EXECUTED 531be: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 531c2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 531c8: 2268 0018 moveal %a0@(24),%a1 <== NOT EXECUTED 531cc: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } 531d0: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 531d6: 4e5e unlk %fp <== NOT EXECUTED * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); 531d8: 4ed1 jmp %a1@ <== NOT EXECUTED } 531da: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 531e0: 4e5e unlk %fp <== NOT EXECUTED 531e2: 70ff moveq #-1,%d0 <== NOT EXECUTED 531e4: 4e75 rts <== NOT EXECUTED /* * Now process the stat() request. */ iop = rtems_libio_iop( fd ); rtems_libio_check_fd( fd ); 531e6: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 531ec: 2040 moveal %d0,%a0 <== NOT EXECUTED 531ee: 7009 moveq #9,%d0 <== NOT EXECUTED 531f0: 2080 movel %d0,%a0@ <== NOT EXECUTED 531f2: 60e6 bras 531da <== NOT EXECUTED 0005ae98 : #include int fsync( int fd ) { 5ae98: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5ae9c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ae9e: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); 5aea2: b4b9 0007 c9c8 cmpl 7c9c8 ,%d2 <== NOT EXECUTED 5aea8: 643a bccs 5aee4 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 5aeaa: 2202 movel %d2,%d1 <== NOT EXECUTED 5aeac: 2002 movel %d2,%d0 <== NOT EXECUTED 5aeae: e589 lsll #2,%d1 <== NOT EXECUTED 5aeb0: e988 lsll #4,%d0 <== NOT EXECUTED 5aeb2: 9081 subl %d1,%d0 <== NOT EXECUTED 5aeb4: 2079 0009 24e0 moveal 924e0 ,%a0 <== NOT EXECUTED 5aeba: d082 addl %d2,%d0 <== NOT EXECUTED 5aebc: e588 lsll #2,%d0 <== NOT EXECUTED 5aebe: d1c0 addal %d0,%a0 <== NOT EXECUTED rtems_libio_check_is_open(iop); 5aec0: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED 5aec4: 0800 0008 btst #8,%d0 <== NOT EXECUTED 5aec8: 671a beqs 5aee4 <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 5aeca: 44c0 movew %d0,%ccr <== NOT EXECUTED 5aecc: 670e beqs 5aedc <== NOT EXECUTED 5aece: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5aed4: 7216 moveq #22,%d1 <== NOT EXECUTED 5aed6: 2040 moveal %d0,%a0 <== NOT EXECUTED 5aed8: 2081 movel %d1,%a0@ <== NOT EXECUTED 5aeda: 603a bras 5af16 <== NOT EXECUTED /* * Now process the fsync(). */ if ( !iop->handlers ) 5aedc: 2268 0030 moveal %a0@(48),%a1 <== NOT EXECUTED 5aee0: 4a89 tstl %a1 <== NOT EXECUTED 5aee2: 660e bnes 5aef2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 5aee4: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5aeea: 2040 moveal %d0,%a0 <== NOT EXECUTED 5aeec: 7009 moveq #9,%d0 <== NOT EXECUTED 5aeee: 2080 movel %d0,%a0@ <== NOT EXECUTED 5aef0: 6024 bras 5af16 <== NOT EXECUTED if ( !iop->handlers->fsync_h ) 5aef2: 2029 0028 movel %a1@(40),%d0 <== NOT EXECUTED 5aef6: 6610 bnes 5af08 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5aef8: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5aefe: 2040 moveal %d0,%a0 <== NOT EXECUTED 5af00: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5af06: 600e bras 5af16 <== NOT EXECUTED return (*iop->handlers->fsync_h)( iop ); } 5af08: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fsync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fsync_h)( iop ); 5af0c: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 5af10: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fsync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fsync_h)( iop ); 5af12: 2240 moveal %d0,%a1 <== NOT EXECUTED 5af14: 4ed1 jmp %a1@ <== NOT EXECUTED } 5af16: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 5af1a: 4e5e unlk %fp <== NOT EXECUTED 5af1c: 70ff moveq #-1,%d0 <== NOT EXECUTED 5af1e: 4e75 rts 00048e4c : int ftruncate( int fd, off_t length ) { 48e4c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48e50: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48e52: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e54: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_location_info_t loc; rtems_libio_check_fd( fd ); 48e58: b4b9 0005 50e8 cmpl 550e8 ,%d2 <== NOT EXECUTED 48e5e: 6422 bccs 48e82 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 48e60: 2002 movel %d2,%d0 <== NOT EXECUTED 48e62: 2202 movel %d2,%d1 <== NOT EXECUTED 48e64: e588 lsll #2,%d0 <== NOT EXECUTED 48e66: e989 lsll #4,%d1 <== NOT EXECUTED 48e68: 9280 subl %d0,%d1 <== NOT EXECUTED 48e6a: 2479 0005 6b3c moveal 56b3c ,%a2 <== NOT EXECUTED 48e70: d282 addl %d2,%d1 <== NOT EXECUTED 48e72: e589 lsll #2,%d1 <== NOT EXECUTED 48e74: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_is_open(iop); 48e76: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 48e7a: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 48e80: 660e bnes 48e90 <== NOT EXECUTED 48e82: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48e88: 7409 moveq #9,%d2 <== NOT EXECUTED 48e8a: 2040 moveal %d0,%a0 <== NOT EXECUTED 48e8c: 2082 movel %d2,%a0@ <== NOT EXECUTED 48e8e: 6074 bras 48f04 <== NOT EXECUTED /* * Make sure we are not working on a directory */ loc = iop->pathinfo; 48e90: 4878 0010 pea 10 <== NOT EXECUTED 48e94: 240e movel %fp,%d2 <== NOT EXECUTED 48e96: 486a 0010 pea %a2@(16) <== NOT EXECUTED 48e9a: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 48ea0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48ea2: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED if ( !loc.ops->node_type_h ) 48ea8: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 48eac: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 48eb0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48eb6: 4a88 tstl %a0 <== NOT EXECUTED 48eb8: 673c beqs 48ef6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) 48eba: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48ebc: 4e90 jsr %a0@ <== NOT EXECUTED 48ebe: 588f addql #4,%sp <== NOT EXECUTED 48ec0: 7201 moveq #1,%d1 <== NOT EXECUTED 48ec2: b280 cmpl %d0,%d1 <== NOT EXECUTED 48ec4: 660e bnes 48ed4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EISDIR ); 48ec6: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48ecc: 7215 moveq #21,%d1 <== NOT EXECUTED 48ece: 2040 moveal %d0,%a0 <== NOT EXECUTED 48ed0: 2081 movel %d1,%a0@ <== NOT EXECUTED 48ed2: 6030 bras 48f04 <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 48ed4: 7004 moveq #4,%d0 <== NOT EXECUTED 48ed6: c0aa 000c andl %a2@(12),%d0 <== NOT EXECUTED 48eda: 660e bnes 48eea <== NOT EXECUTED 48edc: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48ee2: 2040 moveal %d0,%a0 <== NOT EXECUTED 48ee4: 7016 moveq #22,%d0 <== NOT EXECUTED 48ee6: 2080 movel %d0,%a0@ <== NOT EXECUTED 48ee8: 601a bras 48f04 <== NOT EXECUTED if ( !iop->handlers->ftruncate_h ) 48eea: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 48eee: 2068 0020 moveal %a0@(32),%a0 <== NOT EXECUTED 48ef2: 4a88 tstl %a0 <== NOT EXECUTED 48ef4: 6612 bnes 48f08 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 48ef6: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48efc: 2040 moveal %d0,%a0 <== NOT EXECUTED 48efe: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 48f04: 70ff moveq #-1,%d0 <== NOT EXECUTED 48f06: 600a bras 48f12 <== NOT EXECUTED return (*iop->handlers->ftruncate_h)( iop, length ); 48f08: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48f0c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48f0e: 4e90 jsr %a0@ <== NOT EXECUTED 48f10: 508f addql #8,%sp <== NOT EXECUTED } 48f12: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 48f16: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 48f1a: 4e5e unlk %fp <== NOT EXECUTED 48f1c: 4e75 rts <== NOT EXECUTED ... 0005aff4 : char * getcwd ( char *pt, size_t size) { 5aff4: 4e56 ff68 linkw %fp,#-152 <== NOT EXECUTED 5aff8: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 5affc: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 5b000: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED * If no buffer specified by the user, allocate one as necessary. * If a buffer is specified, the size has to be non-zero. The path * is built from the end of the buffer backwards. */ if (pt) 5b004: 4a8c tstl %a4 <== NOT EXECUTED 5b006: 6720 beqs 5b028 <== NOT EXECUTED { ptsize = 0; if (!size) 5b008: 4a80 tstl %d0 <== NOT EXECUTED 5b00a: 6610 bnes 5b01c <== NOT EXECUTED { errno = EINVAL; 5b00c: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5b012: 7216 moveq #22,%d1 <== NOT EXECUTED 5b014: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b016: 2081 movel %d1,%a0@ <== NOT EXECUTED 5b018: 6000 0342 braw 5b35c <== NOT EXECUTED return (char *) NULL; } ept = pt + size; 5b01c: 41f4 0800 lea %a4@(00000000,%d0:l),%a0 <== NOT EXECUTED 5b020: 2d48 ffac movel %a0,%fp@(-84) <== NOT EXECUTED 5b024: 4287 clrl %d7 <== NOT EXECUTED 5b026: 6022 bras 5b04a <== NOT EXECUTED } else { if (!(pt = (char *) malloc (ptsize = 1024 - 4))) 5b028: 4878 03fc pea 3fc <== NOT EXECUTED 5b02c: 4eb9 0004 58e4 jsr 458e4 <== NOT EXECUTED 5b032: 588f addql #4,%sp <== NOT EXECUTED 5b034: 2840 moveal %d0,%a4 <== NOT EXECUTED 5b036: 4a80 tstl %d0 <== NOT EXECUTED 5b038: 6700 0324 beqw 5b35e <== NOT EXECUTED { return (char *) NULL; } ept = pt + ptsize; 5b03c: 43ec 03fc lea %a4@(1020),%a1 <== NOT EXECUTED 5b040: 2e3c 0000 03fc movel #1020,%d7 <== NOT EXECUTED 5b046: 2d49 ffac movel %a1,%fp@(-84) <== NOT EXECUTED } bpt = ept - 1; 5b04a: 2a6e ffac moveal %fp@(-84),%a5 <== NOT EXECUTED *bpt = '\0'; 5b04e: 4225 clrb %a5@- <== NOT EXECUTED * Allocate bytes (1024 - malloc space) for the string of "../"'s. * Should always be enough (it's 340 levels). If it's not, allocate * as necessary. Special * case the first stat, it's ".", not "..". */ if (!(up = (char *) malloc (upsize = 1024 - 4))) 5b050: 4878 03fc pea 3fc <== NOT EXECUTED 5b054: 4eb9 0004 58e4 jsr 458e4 <== NOT EXECUTED 5b05a: 588f addql #4,%sp <== NOT EXECUTED 5b05c: 2640 moveal %d0,%a3 <== NOT EXECUTED 5b05e: 4a80 tstl %d0 <== NOT EXECUTED 5b060: 6700 02e2 beqw 5b344 <== NOT EXECUTED goto err; } eup = up + MAXPATHLEN; bup = up; up[0] = '.'; up[1] = '\0'; 5b064: 4200 clrb %d0 <== NOT EXECUTED /* Save root values, so know when to stop. */ if (stat ("/", &s)) 5b066: 240e movel %fp,%d2 <== NOT EXECUTED { goto err; } eup = up + MAXPATHLEN; bup = up; up[0] = '.'; 5b068: 16bc 002e moveb #46,%a3@ <== NOT EXECUTED up[1] = '\0'; 5b06c: 1740 0001 moveb %d0,%a3@(1) <== NOT EXECUTED /* Save root values, so know when to stop. */ if (stat ("/", &s)) 5b070: 0682 ffff ffb6 addil #-74,%d2 <== NOT EXECUTED 5b076: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b078: 45f9 0004 66c0 lea 466c0 ,%a2 <== NOT EXECUTED 5b07e: 4879 0007 a664 pea 7a664 <== NOT EXECUTED 5b084: 4e92 jsr %a2@ <== NOT EXECUTED 5b086: 508f addql #8,%sp <== NOT EXECUTED 5b088: 4a80 tstl %d0 <== NOT EXECUTED 5b08a: 6600 02b8 bnew 5b344 <== NOT EXECUTED goto err; root_dev = s.st_dev; root_ino = s.st_ino; 5b08e: 222e ffbe movel %fp@(-66),%d1 <== NOT EXECUTED up[1] = '\0'; /* Save root values, so know when to stop. */ if (stat ("/", &s)) goto err; root_dev = s.st_dev; 5b092: 206e ffb6 moveal %fp@(-74),%a0 <== NOT EXECUTED 5b096: 226e ffba moveal %fp@(-70),%a1 <== NOT EXECUTED 5b09a: 2d48 ff9c movel %a0,%fp@(-100) <== NOT EXECUTED 5b09e: 2d49 ffa0 movel %a1,%fp@(-96) <== NOT EXECUTED root_ino = s.st_ino; 5b0a2: 2d41 ffa4 movel %d1,%fp@(-92) <== NOT EXECUTED errno = 0; /* XXX readdir has no error return. */ 5b0a6: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5b0ac: 2040 moveal %d0,%a0 <== NOT EXECUTED if (!(up = (char *) malloc (upsize = 1024 - 4))) { goto err; } eup = up + MAXPATHLEN; 5b0ae: 43eb 0400 lea %a3@(1024),%a1 <== NOT EXECUTED if (stat ("/", &s)) goto err; root_dev = s.st_dev; root_ino = s.st_ino; errno = 0; /* XXX readdir has no error return. */ 5b0b2: 7001 moveq #1,%d0 <== NOT EXECUTED 5b0b4: 223c 0000 03fc movel #1020,%d1 <== NOT EXECUTED 5b0ba: 280b movel %a3,%d4 <== NOT EXECUTED if (!(up = (char *) malloc (upsize = 1024 - 4))) { goto err; } eup = up + MAXPATHLEN; 5b0bc: 2d49 ffb0 movel %a1,%fp@(-80) <== NOT EXECUTED if (stat ("/", &s)) goto err; root_dev = s.st_dev; root_ino = s.st_ino; errno = 0; /* XXX readdir has no error return. */ 5b0c0: 2d40 ff98 movel %d0,%fp@(-104) <== NOT EXECUTED 5b0c4: 2d41 ffa8 movel %d1,%fp@(-88) <== NOT EXECUTED 5b0c8: 4290 clrl %a0@ <== NOT EXECUTED for (first = 1;; first = 0) { /* Stat the current level. */ if (_stat (up, &s)) 5b0ca: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 5b0ce: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b0d0: 4eb9 0004 66c0 jsr 466c0 <== NOT EXECUTED 5b0d6: 508f addql #8,%sp <== NOT EXECUTED 5b0d8: 4a80 tstl %d0 <== NOT EXECUTED 5b0da: 6600 0268 bnew 5b344 <== NOT EXECUTED goto err; /* Save current node values. */ ino = s.st_ino; 5b0de: 206e ffbe moveal %fp@(-66),%a0 <== NOT EXECUTED dev = s.st_dev; 5b0e2: 2a2e ffb6 movel %fp@(-74),%d5 <== NOT EXECUTED 5b0e6: 2c2e ffba movel %fp@(-70),%d6 <== NOT EXECUTED /* Stat the current level. */ if (_stat (up, &s)) goto err; /* Save current node values. */ ino = s.st_ino; 5b0ea: 2d48 ff94 movel %a0,%fp@(-108) <== NOT EXECUTED dev = s.st_dev; /* Check for reaching root. */ if (root_dev == dev && root_ino == ino) 5b0ee: 202e ff9c movel %fp@(-100),%d0 <== NOT EXECUTED 5b0f2: 222e ffa0 movel %fp@(-96),%d1 <== NOT EXECUTED 5b0f6: 9286 subl %d6,%d1 <== NOT EXECUTED 5b0f8: 9185 subxl %d5,%d0 <== NOT EXECUTED 5b0fa: 6630 bnes 5b12c <== NOT EXECUTED 5b0fc: b1ee ffa4 cmpal %fp@(-92),%a0 <== NOT EXECUTED 5b100: 662a bnes 5b12c <== NOT EXECUTED { *--bpt = '/'; 5b102: 204d moveal %a5,%a0 <== NOT EXECUTED 5b104: 113c 002f moveb #47,%a0@- <== NOT EXECUTED /* * It's unclear that it's a requirement to copy the * path to the beginning of the buffer, but it's always * been that way and stuff would probably break. */ (void) bcopy (bpt, pt, ept - bpt); 5b108: 226e ffac moveal %fp@(-84),%a1 <== NOT EXECUTED 5b10c: 93c8 subal %a0,%a1 <== NOT EXECUTED 5b10e: 2f09 movel %a1,%sp@- <== NOT EXECUTED 5b110: 2f08 movel %a0,%sp@- <== NOT EXECUTED 5b112: 2f0c movel %a4,%sp@- <== NOT EXECUTED 5b114: 4eb9 0006 a44c jsr 6a44c <== NOT EXECUTED free (up); 5b11a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b11c: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 5b122: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5b128: 6000 0234 braw 5b35e <== NOT EXECUTED * Build pointer to the parent directory, allocating memory * as necessary. Max length is 3 for "../", the largest * possible component name, plus a trailing NULL. */ if (bup + 3 + MAXNAMLEN + 1 >= eup) 5b12c: 2004 movel %d4,%d0 <== NOT EXECUTED 5b12e: 0680 0000 0404 addil #1028,%d0 <== NOT EXECUTED 5b134: b0ae ffb0 cmpl %fp@(-80),%d0 <== NOT EXECUTED 5b138: 652a bcss 5b164 <== NOT EXECUTED { if (!(up = (char *) realloc (up, upsize *= 2))) 5b13a: 202e ffa8 movel %fp@(-88),%d0 <== NOT EXECUTED 5b13e: d080 addl %d0,%d0 <== NOT EXECUTED 5b140: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b142: 2d40 ffa8 movel %d0,%fp@(-88) <== NOT EXECUTED 5b146: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b148: 4eb9 0005 c5a4 jsr 5c5a4 <== NOT EXECUTED 5b14e: 508f addql #8,%sp <== NOT EXECUTED 5b150: 2640 moveal %d0,%a3 <== NOT EXECUTED 5b152: 4a80 tstl %d0 <== NOT EXECUTED 5b154: 6700 01ee beqw 5b344 <== NOT EXECUTED { goto err; } bup = up; eup = up + upsize; 5b158: 222e ffa8 movel %fp@(-88),%d1 <== NOT EXECUTED 5b15c: 2800 movel %d0,%d4 <== NOT EXECUTED 5b15e: d280 addl %d0,%d1 <== NOT EXECUTED 5b160: 2d41 ffb0 movel %d1,%fp@(-80) <== NOT EXECUTED } *bup++ = '.'; 5b164: 2044 moveal %d4,%a0 <== NOT EXECUTED 5b166: 10fc 002e moveb #46,%a0@+ <== NOT EXECUTED *bup++ = '.'; 5b16a: 2448 moveal %a0,%a2 <== NOT EXECUTED 5b16c: 14fc 002e moveb #46,%a2@+ <== NOT EXECUTED *bup = '\0'; 5b170: 4212 clrb %a2@ <== NOT EXECUTED /* Open and stat parent directory. */ if (!(dir = _opendir (up)) || _fstat (__dirfd (dir), &s)) 5b172: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b174: 4eb9 0005 c198 jsr 5c198 <== NOT EXECUTED 5b17a: 588f addql #4,%sp <== NOT EXECUTED 5b17c: 2d40 ff90 movel %d0,%fp@(-112) <== NOT EXECUTED 5b180: 6700 01c2 beqw 5b344 <== NOT EXECUTED 5b184: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 5b188: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b18a: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 5b18c: 4eb9 0005 adc4 jsr 5adc4 <== NOT EXECUTED 5b192: 508f addql #8,%sp <== NOT EXECUTED 5b194: 4a80 tstl %d0 <== NOT EXECUTED 5b196: 6600 01d2 bnew 5b36a <== NOT EXECUTED goto err; /* Add trailing slash for next directory. */ *bup++ = '/'; 5b19a: 224a moveal %a2,%a1 <== NOT EXECUTED 5b19c: 280a movel %a2,%d4 <== NOT EXECUTED 5b19e: 12fc 002f moveb #47,%a1@+ <== NOT EXECUTED 5b1a2: 5284 addql #1,%d4 <== NOT EXECUTED * the inode number in the directory is for the entry in the * parent directory, not the inode number of the mounted file. */ save_errno = 0; if (s.st_dev == dev) 5b1a4: 202e ffb6 movel %fp@(-74),%d0 <== NOT EXECUTED 5b1a8: 222e ffba movel %fp@(-70),%d1 <== NOT EXECUTED 5b1ac: 9286 subl %d6,%d1 <== NOT EXECUTED 5b1ae: 9185 subxl %d5,%d0 <== NOT EXECUTED 5b1b0: 6704 beqs 5b1b6 <== NOT EXECUTED 5b1b2: 4283 clrl %d3 <== NOT EXECUTED 5b1b4: 6020 bras 5b1d6 <== NOT EXECUTED { for (;;) { if (!(dp = _readdir (dir))) 5b1b6: 2f2e ff90 movel %fp@(-112),%sp@- <== NOT EXECUTED 5b1ba: 4eb9 0005 c440 jsr 5c440 <== NOT EXECUTED 5b1c0: 588f addql #4,%sp <== NOT EXECUTED 5b1c2: 2440 moveal %d0,%a2 <== NOT EXECUTED 5b1c4: 4a80 tstl %d0 <== NOT EXECUTED 5b1c6: 6700 015c beqw 5b324 <== NOT EXECUTED goto notfound; if (dp->d_ino == ino) 5b1ca: 202e ff94 movel %fp@(-108),%d0 <== NOT EXECUTED 5b1ce: b092 cmpl %a2@,%d0 <== NOT EXECUTED 5b1d0: 66e4 bnes 5b1b6 <== NOT EXECUTED 5b1d2: 6000 009e braw 5b272 <== NOT EXECUTED } } else for (;;) { if (!(dp = _readdir (dir))) 5b1d6: 2f2e ff90 movel %fp@(-112),%sp@- <== NOT EXECUTED 5b1da: 4eb9 0005 c440 jsr 5c440 <== NOT EXECUTED 5b1e0: 588f addql #4,%sp <== NOT EXECUTED 5b1e2: 2440 moveal %d0,%a2 <== NOT EXECUTED 5b1e4: 4a80 tstl %d0 <== NOT EXECUTED 5b1e6: 6700 013e beqw 5b326 <== NOT EXECUTED goto notfound; if (ISDOT (dp)) 5b1ea: 102a 000c moveb %a2@(12),%d0 <== NOT EXECUTED 5b1ee: 49c0 extbl %d0 <== NOT EXECUTED 5b1f0: 722e moveq #46,%d1 <== NOT EXECUTED 5b1f2: b280 cmpl %d0,%d1 <== NOT EXECUTED 5b1f4: 6612 bnes 5b208 <== NOT EXECUTED 5b1f6: 102a 000d moveb %a2@(13),%d0 <== NOT EXECUTED 5b1fa: 67da beqs 5b1d6 <== NOT EXECUTED 5b1fc: 49c0 extbl %d0 <== NOT EXECUTED 5b1fe: b280 cmpl %d0,%d1 <== NOT EXECUTED 5b200: 6606 bnes 5b208 <== NOT EXECUTED 5b202: 4a2a 000e tstb %a2@(14) <== NOT EXECUTED 5b206: 67ce beqs 5b1d6 <== NOT EXECUTED continue; bcopy (dp->d_name, bup, strlen (dp->d_name) + 1); 5b208: 240a movel %a2,%d2 <== NOT EXECUTED 5b20a: 0682 0000 000c addil #12,%d2 <== NOT EXECUTED 5b210: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b212: 4eb9 0006 d010 jsr 6d010 <== NOT EXECUTED 5b218: 5280 addql #1,%d0 <== NOT EXECUTED 5b21a: 2e80 movel %d0,%sp@ <== NOT EXECUTED 5b21c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b21e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b220: 4eb9 0006 a44c jsr 6a44c <== NOT EXECUTED /* Save the first error for later. */ if (stat (up, &s)) 5b226: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 5b22a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b22c: 4eb9 0004 66c0 jsr 466c0 <== NOT EXECUTED 5b232: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b238: 4a80 tstl %d0 <== NOT EXECUTED 5b23a: 671a beqs 5b256 <== NOT EXECUTED { if (!save_errno) 5b23c: 4a83 tstl %d3 <== NOT EXECUTED 5b23e: 660a bnes 5b24a <== NOT EXECUTED save_errno = errno; 5b240: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5b246: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b248: 2610 movel %a0@,%d3 <== NOT EXECUTED errno = 0; 5b24a: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5b250: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b252: 4290 clrl %a0@ <== NOT EXECUTED 5b254: 6080 bras 5b1d6 <== NOT EXECUTED continue; } if (s.st_dev == dev && s.st_ino == ino) 5b256: 202e ffb6 movel %fp@(-74),%d0 <== NOT EXECUTED 5b25a: 222e ffba movel %fp@(-70),%d1 <== NOT EXECUTED 5b25e: 9286 subl %d6,%d1 <== NOT EXECUTED 5b260: 9185 subxl %d5,%d0 <== NOT EXECUTED 5b262: 6600 ff72 bnew 5b1d6 <== NOT EXECUTED 5b266: 206e ff94 moveal %fp@(-108),%a0 <== NOT EXECUTED 5b26a: b1ee ffbe cmpal %fp@(-66),%a0 <== NOT EXECUTED 5b26e: 6600 ff66 bnew 5b1d6 <== NOT EXECUTED /* * Check for length of the current name, preceding slash, * leading slash. */ if (bpt - pt <= strlen (dp->d_name) + (first ? 1 : 2)) 5b272: 240a movel %a2,%d2 <== NOT EXECUTED 5b274: 0682 0000 000c addil #12,%d2 <== NOT EXECUTED 5b27a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b27c: 4eb9 0006 d010 jsr 6d010 <== NOT EXECUTED 5b282: 222e ff98 movel %fp@(-104),%d1 <== NOT EXECUTED 5b286: 2240 moveal %d0,%a1 <== NOT EXECUTED 5b288: 4481 negl %d1 <== NOT EXECUTED 5b28a: 244d moveal %a5,%a2 <== NOT EXECUTED 5b28c: 588f addql #4,%sp <== NOT EXECUTED 5b28e: 41f1 1802 lea %a1@(00000002,%d1:l),%a0 <== NOT EXECUTED 5b292: 95cc subal %a4,%a2 <== NOT EXECUTED 5b294: b1ca cmpal %a2,%a0 <== NOT EXECUTED 5b296: 6550 bcss 5b2e8 <== NOT EXECUTED { size_t len, off; if (!ptsize) 5b298: 4a87 tstl %d7 <== NOT EXECUTED 5b29a: 6610 bnes 5b2ac <== NOT EXECUTED { errno = ERANGE; 5b29c: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5b2a2: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b2a4: 7022 moveq #34,%d0 <== NOT EXECUTED 5b2a6: 2080 movel %d0,%a0@ <== NOT EXECUTED 5b2a8: 6000 00c0 braw 5b36a <== NOT EXECUTED goto err; } off = bpt - pt; len = ept - bpt; if (!(pt = (char *) realloc (pt, ptsize *= 2))) 5b2ac: de87 addl %d7,%d7 <== NOT EXECUTED 5b2ae: 2f07 movel %d7,%sp@- <== NOT EXECUTED 5b2b0: 2f0c movel %a4,%sp@- <== NOT EXECUTED 5b2b2: 4eb9 0005 c5a4 jsr 5c5a4 <== NOT EXECUTED 5b2b8: 508f addql #8,%sp <== NOT EXECUTED 5b2ba: 2840 moveal %d0,%a4 <== NOT EXECUTED 5b2bc: 4a80 tstl %d0 <== NOT EXECUTED 5b2be: 6700 00aa beqw 5b36a <== NOT EXECUTED { errno = ERANGE; goto err; } off = bpt - pt; len = ept - bpt; 5b2c2: 202e ffac movel %fp@(-84),%d0 <== NOT EXECUTED 5b2c6: 908d subl %a5,%d0 <== NOT EXECUTED { goto err; } bpt = pt + off; ept = pt + ptsize; (void) bcopy (bpt, ept - len, len); 5b2c8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b2ca: 4874 a800 pea %a4@(00000000,%a2:l) <== NOT EXECUTED if (!(pt = (char *) realloc (pt, ptsize *= 2))) { goto err; } bpt = pt + off; ept = pt + ptsize; 5b2ce: 41f4 7800 lea %a4@(00000000,%d7:l),%a0 <== NOT EXECUTED (void) bcopy (bpt, ept - len, len); 5b2d2: 2a48 moveal %a0,%a5 <== NOT EXECUTED 5b2d4: 9bc0 subal %d0,%a5 <== NOT EXECUTED 5b2d6: 2f0d movel %a5,%sp@- <== NOT EXECUTED if (!(pt = (char *) realloc (pt, ptsize *= 2))) { goto err; } bpt = pt + off; ept = pt + ptsize; 5b2d8: 2d48 ffac movel %a0,%fp@(-84) <== NOT EXECUTED (void) bcopy (bpt, ept - len, len); 5b2dc: 4eb9 0006 a44c jsr 6a44c <== NOT EXECUTED 5b2e2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED bpt = ept - len; } if (!first) 5b2e8: 4aae ff98 tstl %fp@(-104) <== NOT EXECUTED 5b2ec: 6604 bnes 5b2f2 <== NOT EXECUTED *--bpt = '/'; 5b2ee: 1b3c 002f moveb #47,%a5@- <== NOT EXECUTED bpt -= strlen (dp->d_name); 5b2f2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b2f4: 4eb9 0006 d010 jsr 6d010 <== NOT EXECUTED bcopy (dp->d_name, bpt, strlen (dp->d_name)); 5b2fa: 2e80 movel %d0,%sp@ <== NOT EXECUTED (void) bcopy (bpt, ept - len, len); bpt = ept - len; } if (!first) *--bpt = '/'; bpt -= strlen (dp->d_name); 5b2fc: 9bc0 subal %d0,%a5 <== NOT EXECUTED bcopy (dp->d_name, bpt, strlen (dp->d_name)); 5b2fe: 2f02 movel %d2,%sp@- <== NOT EXECUTED (void) _closedir (dir); dir = 0; /* Truncate any file name. */ *bup = '\0'; 5b300: 42ae ff98 clrl %fp@(-104) <== NOT EXECUTED bpt = ept - len; } if (!first) *--bpt = '/'; bpt -= strlen (dp->d_name); bcopy (dp->d_name, bpt, strlen (dp->d_name)); 5b304: 2f0d movel %a5,%sp@- <== NOT EXECUTED 5b306: 4eb9 0006 a44c jsr 6a44c <== NOT EXECUTED (void) _closedir (dir); 5b30c: 2f2e ff90 movel %fp@(-112),%sp@- <== NOT EXECUTED 5b310: 4eb9 0006 5d50 jsr 65d50 <== NOT EXECUTED dir = 0; /* Truncate any file name. */ *bup = '\0'; 5b316: 2244 moveal %d4,%a1 <== NOT EXECUTED 5b318: 4211 clrb %a1@ <== NOT EXECUTED 5b31a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5b320: 6000 fda8 braw 5b0ca <== NOT EXECUTED } 5b324: 4283 clrl %d3 <== NOT EXECUTED * If readdir set errno, use it, not any saved error; otherwise, * didn't find the current directory in its parent directory, set * errno to ENOENT. */ if (!errno) 5b326: 45f9 0006 7f7c lea 67f7c <__errno>,%a2 <== NOT EXECUTED 5b32c: 4e92 jsr %a2@ <== NOT EXECUTED 5b32e: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b330: 4a90 tstl %a0@ <== NOT EXECUTED 5b332: 6636 bnes 5b36a <== NOT EXECUTED errno = save_errno ? save_errno : ENOENT; 5b334: 4e92 jsr %a2@ <== NOT EXECUTED 5b336: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b338: 4a83 tstl %d3 <== NOT EXECUTED 5b33a: 6604 bnes 5b340 <== NOT EXECUTED 5b33c: 163c 0002 moveb #2,%d3 <== NOT EXECUTED 5b340: 2083 movel %d3,%a0@ <== NOT EXECUTED 5b342: 6026 bras 5b36a <== NOT EXECUTED /* FALLTHROUGH */ err: if(dir) (void) _closedir (dir); if (ptsize) 5b344: 4a87 tstl %d7 <== NOT EXECUTED 5b346: 670a beqs 5b352 <== NOT EXECUTED free (pt); 5b348: 2f0c movel %a4,%sp@- <== NOT EXECUTED 5b34a: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 5b350: 588f addql #4,%sp <== NOT EXECUTED free (up); 5b352: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b354: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 5b35a: 588f addql #4,%sp <== NOT EXECUTED 5b35c: 99cc subal %a4,%a4 <== NOT EXECUTED return (char *) NULL; } 5b35e: 200c movel %a4,%d0 <== NOT EXECUTED 5b360: 4cee 3cfc ff68 moveml %fp@(-152),%d2-%d7/%a2-%a5 <== NOT EXECUTED 5b366: 4e5e unlk %fp <== NOT EXECUTED 5b368: 4e75 rts <== NOT EXECUTED errno = save_errno ? save_errno : ENOENT; /* FALLTHROUGH */ err: if(dir) (void) _closedir (dir); 5b36a: 2f2e ff90 movel %fp@(-112),%sp@- <== NOT EXECUTED 5b36e: 4eb9 0006 5d50 jsr 65d50 <== NOT EXECUTED 5b374: 588f addql #4,%sp <== NOT EXECUTED 5b376: 60cc bras 5b344 <== NOT EXECUTED 00066098 : int getdents( int dd_fd, char *dd_buf, int dd_len ) { 66098: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 6609c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6609e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 660a0: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED /* * Get the file control block structure associated with the file descriptor */ iop = rtems_libio_iop( dd_fd ); 660a4: b4b9 0007 c9c8 cmpl 7c9c8 ,%d2 <== NOT EXECUTED 660aa: 6504 bcss 660b0 <== NOT EXECUTED 660ac: 95ca subal %a2,%a2 <== NOT EXECUTED 660ae: 6016 bras 660c6 <== NOT EXECUTED 660b0: 2202 movel %d2,%d1 <== NOT EXECUTED 660b2: 2002 movel %d2,%d0 <== NOT EXECUTED 660b4: e589 lsll #2,%d1 <== NOT EXECUTED 660b6: e988 lsll #4,%d0 <== NOT EXECUTED 660b8: 9081 subl %d1,%d0 <== NOT EXECUTED 660ba: 2479 0009 24e0 moveal 924e0 ,%a2 <== NOT EXECUTED 660c0: d082 addl %d2,%d0 <== NOT EXECUTED 660c2: e588 lsll #2,%d0 <== NOT EXECUTED 660c4: d5c0 addal %d0,%a2 <== NOT EXECUTED /* * Make sure we are working on a directory */ loc = iop->pathinfo; 660c6: 4878 0010 pea 10 <== NOT EXECUTED 660ca: 240e movel %fp,%d2 <== NOT EXECUTED 660cc: 486a 0010 pea %a2@(16) <== NOT EXECUTED 660d0: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 660d6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 660d8: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED if ( !loc.ops->node_type_h ) 660de: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 660e2: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 660e6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 660ec: 4a88 tstl %a0 <== NOT EXECUTED 660ee: 6728 beqs 66118 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) 660f0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 660f2: 4e90 jsr %a0@ <== NOT EXECUTED 660f4: 588f addql #4,%sp <== NOT EXECUTED 660f6: 7201 moveq #1,%d1 <== NOT EXECUTED 660f8: b280 cmpl %d0,%d1 <== NOT EXECUTED 660fa: 6710 beqs 6610c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 660fc: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 66102: 2040 moveal %d0,%a0 <== NOT EXECUTED 66104: 7014 moveq #20,%d0 <== NOT EXECUTED 66106: 2080 movel %d0,%a0@ <== NOT EXECUTED 66108: 70ff moveq #-1,%d0 <== NOT EXECUTED 6610a: 602e bras 6613a <== NOT EXECUTED /* * Return the number of bytes that were actually transfered as a result * of the read attempt. */ if ( !iop->handlers->read_h ) 6610c: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 66110: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED 66114: 4a88 tstl %a0 <== NOT EXECUTED 66116: 6610 bnes 66128 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 66118: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 6611e: 2040 moveal %d0,%a0 <== NOT EXECUTED 66120: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 66126: 60e0 bras 66108 <== NOT EXECUTED return (*iop->handlers->read_h)( iop, dd_buf, dd_len ); 66128: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 6612c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 66130: 2f0a movel %a2,%sp@- <== NOT EXECUTED 66132: 4e90 jsr %a0@ <== NOT EXECUTED 66134: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 6613a: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 6613e: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 66142: 4e5e unlk %fp <== NOT EXECUTED 66144: 4e75 rts <== NOT EXECUTED ... 0005b378 : * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ gid_t getegid( void ) { 5b378: 2079 0007 d460 moveal 7d460 ,%a0 <== NOT EXECUTED 5b37e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_types_Egid; } 5b382: 4e5e unlk %fp <== NOT EXECUTED 5b384: 3028 0030 movew %a0@(48),%d0 <== NOT EXECUTED 5b388: 4e75 rts <== NOT EXECUTED ... 0005b38c : * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ uid_t geteuid( void ) { 5b38c: 2079 0007 d460 moveal 7d460 ,%a0 <== NOT EXECUTED 5b392: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_types_Euid; } 5b396: 4e5e unlk %fp <== NOT EXECUTED 5b398: 3028 002e movew %a0@(46),%d0 <== NOT EXECUTED 5b39c: 4e75 rts <== NOT EXECUTED ... 0005b3a0 : * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ gid_t getgid( void ) { 5b3a0: 2079 0007 d460 moveal 7d460 ,%a0 <== NOT EXECUTED 5b3a6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_types_Gid; } 5b3aa: 4e5e unlk %fp <== NOT EXECUTED 5b3ac: 3028 002c movew %a0@(44),%d0 <== NOT EXECUTED 5b3b0: 4e75 rts 0005b8e2 : struct group *grp, char *buffer, size_t bufsize, struct group **result ) { 5b8e2: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 5b8e6: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 5b8ea: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 5b8ee: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED FILE *fp; int match; init_etc_passwd_group(); 5b8f2: 4eb9 0005 b7c2 jsr 5b7c2 <== NOT EXECUTED if ((fp = fopen("/etc/group", "r")) == NULL) { 5b8f8: 4879 0007 8e79 pea 78e79 <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5b8fe: 4879 0007 a585 pea 7a585 <== NOT EXECUTED 5b904: 4eb9 0006 88c4 jsr 688c4 <== NOT EXECUTED 5b90a: 508f addql #8,%sp <== NOT EXECUTED 5b90c: 2400 movel %d0,%d2 <== NOT EXECUTED 5b90e: 660e bnes 5b91e <== NOT EXECUTED errno = EINVAL; 5b910: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5b916: 7216 moveq #22,%d1 <== NOT EXECUTED 5b918: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b91a: 2081 movel %d1,%a0@ <== NOT EXECUTED 5b91c: 6038 bras 5b956 <== NOT EXECUTED return -1; } for(;;) { if (!scangr(fp, grp, buffer, bufsize)) { 5b91e: 49fa fc24 lea %pc@(5b544 ),%a4 <== NOT EXECUTED errno = EINVAL; fclose(fp); return -1; } if (name) { match = (strcmp(grp->gr_name, name) == 0); 5b922: 47f9 0006 ca18 lea 6ca18 ,%a3 <== NOT EXECUTED if ((fp = fopen("/etc/group", "r")) == NULL) { errno = EINVAL; return -1; } for(;;) { if (!scangr(fp, grp, buffer, bufsize)) { 5b928: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5b92c: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5b930: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5b932: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b934: 4e94 jsr %a4@ <== NOT EXECUTED 5b936: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5b93c: 4a80 tstl %d0 <== NOT EXECUTED 5b93e: 661a bnes 5b95a <== NOT EXECUTED errno = EINVAL; 5b940: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5b946: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b948: 7016 moveq #22,%d0 <== NOT EXECUTED 5b94a: 2080 movel %d0,%a0@ <== NOT EXECUTED fclose(fp); 5b94c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b94e: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED 5b954: 588f addql #4,%sp <== NOT EXECUTED 5b956: 70ff moveq #-1,%d0 <== NOT EXECUTED 5b958: 6036 bras 5b990 <== NOT EXECUTED return -1; } if (name) { 5b95a: 4a83 tstl %d3 <== NOT EXECUTED 5b95c: 670e beqs 5b96c <== NOT EXECUTED match = (strcmp(grp->gr_name, name) == 0); 5b95e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b960: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 5b962: 4e93 jsr %a3@ <== NOT EXECUTED 5b964: 4a80 tstl %d0 <== NOT EXECUTED 5b966: 57c0 seq %d0 <== NOT EXECUTED 5b968: 508f addql #8,%sp <== NOT EXECUTED 5b96a: 600c bras 5b978 <== NOT EXECUTED } else { match = (grp->gr_gid == gid); 5b96c: 4280 clrl %d0 <== NOT EXECUTED 5b96e: 302a 0008 movew %a2@(8),%d0 <== NOT EXECUTED 5b972: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 5b976: 57c0 seq %d0 <== NOT EXECUTED 5b978: 49c0 extbl %d0 <== NOT EXECUTED 5b97a: 4480 negl %d0 <== NOT EXECUTED } if (match) { 5b97c: 67aa beqs 5b928 <== NOT EXECUTED fclose(fp); 5b97e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b980: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED *result = grp; 5b986: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 5b98a: 588f addql #4,%sp <== NOT EXECUTED 5b98c: 4280 clrl %d0 <== NOT EXECUTED 5b98e: 208a movel %a2,%a0@ <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 5b990: 4cee 1c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a4 <== NOT EXECUTED 5b996: 4e5e unlk %fp <== NOT EXECUTED 5b998: 4e75 rts 0005b654 : return p; } struct group *getgrent() { if (group_fp == NULL) 5b654: 2039 0009 1672 movel 91672 ,%d0 <== NOT EXECUTED return NULL; return p; } struct group *getgrent() { 5b65a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (group_fp == NULL) 5b65e: 4a80 tstl %d0 <== NOT EXECUTED 5b660: 6726 beqs 5b688 <== NOT EXECUTED return NULL; if (!scangr(group_fp, &grent, grbuf, sizeof grbuf)) 5b662: 4878 00c8 pea c8 <== NOT EXECUTED 5b666: 4879 0009 1676 pea 91676 <== NOT EXECUTED 5b66c: 4879 0009 173e pea 9173e <== NOT EXECUTED 5b672: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b674: 4eba fece jsr %pc@(5b544 ) <== NOT EXECUTED 5b678: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5b67e: 223c 0009 173e movel #595774,%d1 <== NOT EXECUTED 5b684: 4a80 tstl %d0 <== NOT EXECUTED 5b686: 6602 bnes 5b68a <== NOT EXECUTED 5b688: 4281 clrl %d1 <== NOT EXECUTED return NULL; return &grent; } 5b68a: 4e5e unlk %fp <== NOT EXECUTED 5b68c: 2001 movel %d1,%d0 <== NOT EXECUTED 5b68e: 4e75 rts 0005b9c0 : struct group *getgrgid( gid_t gid ) { 5b9c0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct group *p; if(getgrgid_r(gid, &grent, grbuf, sizeof grbuf, &p)) 5b9c4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5b9c8: 4280 clrl %d0 <== NOT EXECUTED 5b9ca: 4878 00c8 pea c8 <== NOT EXECUTED 5b9ce: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 5b9d2: 4879 0009 1676 pea 91676 <== NOT EXECUTED 5b9d8: 4879 0009 173e pea 9173e <== NOT EXECUTED 5b9de: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b9e0: 4eb9 0005 b99a jsr 5b99a <== NOT EXECUTED 5b9e6: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b9ec: 4a80 tstl %d0 <== NOT EXECUTED 5b9ee: 6704 beqs 5b9f4 <== NOT EXECUTED 5b9f0: 4280 clrl %d0 <== NOT EXECUTED 5b9f2: 6004 bras 5b9f8 <== NOT EXECUTED return NULL; return p; 5b9f4: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 5b9f8: 4e5e unlk %fp <== NOT EXECUTED 5b9fa: 4e75 rts 0005b99a : struct group *grp, char *buffer, size_t bufsize, struct group **result ) { 5b99a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getgr_r(NULL, gid, grp, buffer, bufsize, result); 5b99e: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5b9a2: 4280 clrl %d0 <== NOT EXECUTED 5b9a4: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5b9a8: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 5b9ac: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5b9b0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5b9b4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b9b6: 42a7 clrl %sp@- <== NOT EXECUTED 5b9b8: 4eba ff28 jsr %pc@(5b8e2 ) <== NOT EXECUTED } 5b9bc: 4e5e unlk %fp <== NOT EXECUTED 5b9be: 4e75 rts 0005ba1e : struct group *getgrnam( const char *name ) { 5ba1e: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct group *p; if(getgrnam_r(name, &grent, grbuf, sizeof grbuf, &p)) 5ba22: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5ba26: 4878 00c8 pea c8 <== NOT EXECUTED 5ba2a: 4879 0009 1676 pea 91676 <== NOT EXECUTED 5ba30: 4879 0009 173e pea 9173e <== NOT EXECUTED 5ba36: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5ba3a: 4eb9 0005 b9fc jsr 5b9fc <== NOT EXECUTED 5ba40: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5ba46: 4a80 tstl %d0 <== NOT EXECUTED 5ba48: 6704 beqs 5ba4e <== NOT EXECUTED 5ba4a: 4280 clrl %d0 <== NOT EXECUTED 5ba4c: 6004 bras 5ba52 <== NOT EXECUTED return NULL; return p; 5ba4e: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 5ba52: 4e5e unlk %fp <== NOT EXECUTED 5ba54: 4e75 rts 0005b9fc : struct group *grp, char *buffer, size_t bufsize, struct group **result ) { 5b9fc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getgr_r(name, 0, grp, buffer, bufsize, result); 5ba00: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5ba04: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5ba08: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5ba0c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5ba10: 42a7 clrl %sp@- <== NOT EXECUTED 5ba12: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5ba16: 4eba feca jsr %pc@(5b8e2 ) <== NOT EXECUTED } 5ba1a: 4e5e unlk %fp <== NOT EXECUTED 5ba1c: 4e75 rts 00053210 : * * 4.1.1 Get Process and Parent Process IDs, P1003.1b-1993, p. 83 */ pid_t getpid( void ) { 53210: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Local_node; } 53214: 4e5e unlk %fp <== NOT EXECUTED 53216: 7001 moveq #1,%d0 <== NOT EXECUTED 53218: 4e75 rts 0005ba90 : struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result ) { 5ba90: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 5ba94: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 5ba98: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 5ba9c: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED FILE *fp; int match; init_etc_passwd_group(); 5baa0: 4eb9 0005 b7c2 jsr 5b7c2 <== NOT EXECUTED if ((fp = fopen("/etc/passwd", "r")) == NULL) { 5baa6: 4879 0007 8e79 pea 78e79 <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5baac: 4879 0007 a512 pea 7a512 <== NOT EXECUTED 5bab2: 4eb9 0006 88c4 jsr 688c4 <== NOT EXECUTED 5bab8: 508f addql #8,%sp <== NOT EXECUTED 5baba: 2400 movel %d0,%d2 <== NOT EXECUTED 5babc: 660e bnes 5bacc <== NOT EXECUTED errno = EINVAL; 5babe: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5bac4: 2040 moveal %d0,%a0 <== NOT EXECUTED 5bac6: 7016 moveq #22,%d0 <== NOT EXECUTED 5bac8: 2080 movel %d0,%a0@ <== NOT EXECUTED 5baca: 6038 bras 5bb04 <== NOT EXECUTED return -1; } for(;;) { if (!scanpw(fp, pwd, buffer, bufsize)) { 5bacc: 49fa fbc2 lea %pc@(5b690 ),%a4 <== NOT EXECUTED errno = EINVAL; fclose(fp); return -1; } if (name) { match = (strcmp(pwd->pw_name, name) == 0); 5bad0: 47f9 0006 ca18 lea 6ca18 ,%a3 <== NOT EXECUTED if ((fp = fopen("/etc/passwd", "r")) == NULL) { errno = EINVAL; return -1; } for(;;) { if (!scanpw(fp, pwd, buffer, bufsize)) { 5bad6: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5bada: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5bade: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5bae0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5bae2: 4e94 jsr %a4@ <== NOT EXECUTED 5bae4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5baea: 4a80 tstl %d0 <== NOT EXECUTED 5baec: 661a bnes 5bb08 <== NOT EXECUTED errno = EINVAL; 5baee: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5baf4: 7616 moveq #22,%d3 <== NOT EXECUTED 5baf6: 2040 moveal %d0,%a0 <== NOT EXECUTED 5baf8: 2083 movel %d3,%a0@ <== NOT EXECUTED fclose(fp); 5bafa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5bafc: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED 5bb02: 588f addql #4,%sp <== NOT EXECUTED 5bb04: 70ff moveq #-1,%d0 <== NOT EXECUTED 5bb06: 6036 bras 5bb3e <== NOT EXECUTED return -1; } if (name) { 5bb08: 4a83 tstl %d3 <== NOT EXECUTED 5bb0a: 670e beqs 5bb1a <== NOT EXECUTED match = (strcmp(pwd->pw_name, name) == 0); 5bb0c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5bb0e: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 5bb10: 4e93 jsr %a3@ <== NOT EXECUTED 5bb12: 4a80 tstl %d0 <== NOT EXECUTED 5bb14: 57c0 seq %d0 <== NOT EXECUTED 5bb16: 508f addql #8,%sp <== NOT EXECUTED 5bb18: 600c bras 5bb26 <== NOT EXECUTED } else { match = (pwd->pw_uid == uid); 5bb1a: 4280 clrl %d0 <== NOT EXECUTED 5bb1c: 302a 0008 movew %a2@(8),%d0 <== NOT EXECUTED 5bb20: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 5bb24: 57c0 seq %d0 <== NOT EXECUTED 5bb26: 49c0 extbl %d0 <== NOT EXECUTED 5bb28: 4480 negl %d0 <== NOT EXECUTED } if (match) { 5bb2a: 67aa beqs 5bad6 <== NOT EXECUTED fclose(fp); 5bb2c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5bb2e: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED *result = pwd; 5bb34: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 5bb38: 588f addql #4,%sp <== NOT EXECUTED 5bb3a: 4280 clrl %d0 <== NOT EXECUTED 5bb3c: 208a movel %a2,%a0@ <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 5bb3e: 4cee 1c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a4 <== NOT EXECUTED 5bb44: 4e5e unlk %fp <== NOT EXECUTED 5bb46: 4e75 rts 0005b786 : return p; } struct passwd *getpwent() { if (passwd_fp == NULL) 5b786: 2039 0009 158a movel 9158a ,%d0 <== NOT EXECUTED return NULL; return p; } struct passwd *getpwent() { 5b78c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (passwd_fp == NULL) 5b790: 4a80 tstl %d0 <== NOT EXECUTED 5b792: 6726 beqs 5b7ba <== NOT EXECUTED return NULL; if (!scanpw(passwd_fp, &pwent, pwbuf, sizeof pwbuf)) 5b794: 4878 00c8 pea c8 <== NOT EXECUTED 5b798: 4879 0009 158e pea 9158e <== NOT EXECUTED 5b79e: 4879 0009 1656 pea 91656 <== NOT EXECUTED 5b7a4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b7a6: 4eba fee8 jsr %pc@(5b690 ) <== NOT EXECUTED 5b7aa: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5b7b0: 223c 0009 1656 movel #595542,%d1 <== NOT EXECUTED 5b7b6: 4a80 tstl %d0 <== NOT EXECUTED 5b7b8: 6602 bnes 5b7bc <== NOT EXECUTED 5b7ba: 4281 clrl %d1 <== NOT EXECUTED return NULL; return &pwent; } 5b7bc: 4e5e unlk %fp <== NOT EXECUTED 5b7be: 2001 movel %d1,%d0 <== NOT EXECUTED 5b7c0: 4e75 rts 0005bbcc : struct passwd *getpwnam( const char *name ) { 5bbcc: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct passwd *p; if(getpwnam_r(name, &pwent, pwbuf, sizeof pwbuf, &p)) 5bbd0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5bbd4: 4878 00c8 pea c8 <== NOT EXECUTED 5bbd8: 4879 0009 158e pea 9158e <== NOT EXECUTED 5bbde: 4879 0009 1656 pea 91656 <== NOT EXECUTED 5bbe4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5bbe8: 4eb9 0005 bbaa jsr 5bbaa <== NOT EXECUTED 5bbee: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5bbf4: 4a80 tstl %d0 <== NOT EXECUTED 5bbf6: 6704 beqs 5bbfc <== NOT EXECUTED 5bbf8: 4280 clrl %d0 <== NOT EXECUTED 5bbfa: 6004 bras 5bc00 <== NOT EXECUTED return NULL; return p; 5bbfc: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 5bc00: 4e5e unlk %fp <== NOT EXECUTED 5bc02: 4e75 rts 0005bbaa : struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result ) { 5bbaa: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getpw_r(name, 0, pwd, buffer, bufsize, result); 5bbae: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5bbb2: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5bbb6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5bbba: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5bbbe: 42a7 clrl %sp@- <== NOT EXECUTED 5bbc0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5bbc4: 4eba feca jsr %pc@(5ba90 ) <== NOT EXECUTED } 5bbc8: 4e5e unlk %fp <== NOT EXECUTED 5bbca: 4e75 rts 0005bb6e : struct passwd *getpwuid( uid_t uid ) { 5bb6e: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct passwd *p; if(getpwuid_r(uid, &pwent, pwbuf, sizeof pwbuf, &p)) 5bb72: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5bb76: 4280 clrl %d0 <== NOT EXECUTED 5bb78: 4878 00c8 pea c8 <== NOT EXECUTED 5bb7c: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 5bb80: 4879 0009 158e pea 9158e <== NOT EXECUTED 5bb86: 4879 0009 1656 pea 91656 <== NOT EXECUTED 5bb8c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5bb8e: 4eb9 0005 bb48 jsr 5bb48 <== NOT EXECUTED 5bb94: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5bb9a: 4a80 tstl %d0 <== NOT EXECUTED 5bb9c: 6704 beqs 5bba2 <== NOT EXECUTED 5bb9e: 4280 clrl %d0 <== NOT EXECUTED 5bba0: 6004 bras 5bba6 <== NOT EXECUTED return NULL; return p; 5bba2: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 5bba6: 4e5e unlk %fp <== NOT EXECUTED 5bba8: 4e75 rts 0005bb48 : struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result ) { 5bb48: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getpw_r(NULL, uid, pwd, buffer, bufsize, result); 5bb4c: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5bb50: 4280 clrl %d0 <== NOT EXECUTED 5bb52: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5bb56: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 5bb5a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5bb5e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5bb62: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5bb64: 42a7 clrl %sp@- <== NOT EXECUTED 5bb66: 4eba ff28 jsr %pc@(5ba90 ) <== NOT EXECUTED } 5bb6a: 4e5e unlk %fp <== NOT EXECUTED 5bb6c: 4e75 rts 00048f20 : int gettimeofday( struct timeval *tp, void * __tz ) { 48f20: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 48f24: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48f26: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 48f2a: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* struct timezone* tzp = (struct timezone*) __tz; */ if ( !tp ) { 48f2c: 4a8a tstl %a2 <== NOT EXECUTED 48f2e: 6610 bnes 48f40 <== NOT EXECUTED errno = EFAULT; 48f30: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 48f36: 2040 moveal %d0,%a0 <== NOT EXECUTED 48f38: 700e moveq #14,%d0 <== NOT EXECUTED 48f3a: 2080 movel %d0,%a0@ <== NOT EXECUTED 48f3c: 70ff moveq #-1,%d0 <== NOT EXECUTED 48f3e: 6032 bras 48f72 <== NOT EXECUTED ) { ISR_Level level; struct timespec now; _ISR_Disable(level); 48f40: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 48f46: 40c2 movew %sr,%d2 <== NOT EXECUTED 48f48: 8082 orl %d2,%d0 <== NOT EXECUTED 48f4a: 46c0 movew %d0,%sr <== NOT EXECUTED _TOD_Get( &now ); 48f4c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 48f50: 4eb9 0004 5c58 jsr 45c58 <_TOD_Get> <== NOT EXECUTED _ISR_Enable(level); 48f56: 46c2 movew %d2,%sr <== NOT EXECUTED time->tv_sec = now.tv_sec; time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 48f58: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 48f5c: 243c 0000 03e8 movel #1000,%d2 <== NOT EXECUTED 48f62: 4c42 1001 remul %d2,%d1,%d1 <== NOT EXECUTED 48f66: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED 48f6a: 588f addql #4,%sp <== NOT EXECUTED 48f6c: 4280 clrl %d0 <== NOT EXECUTED _ISR_Disable(level); _TOD_Get( &now ); _ISR_Enable(level); time->tv_sec = now.tv_sec; 48f6e: 24ae fff8 movel %fp@(-8),%a2@ <== NOT EXECUTED * with Eric Norum, this is how GNU/Linux, Solaris, and MacOS X * do it. This puts us in good company. */ return 0; } 48f72: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 48f76: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 48f7a: 4e5e unlk %fp <== NOT EXECUTED 48f7c: 4e75 rts 00045464 : * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ uid_t getuid( void ) { 45464: 2079 0007 d460 moveal 7d460 ,%a0 <== NOT EXECUTED 4546a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_types_Uid; } 4546e: 4e5e unlk %fp <== NOT EXECUTED 45470: 3028 002a movew %a0@(42),%d0 <== NOT EXECUTED 45474: 4e75 rts 00065a32 : */ int imfs_dir_close( rtems_libio_t *iop ) { 65a32: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED * and associated memory. At present the imfs_dir_close simply * returns a successful completion status. */ return 0; } 65a36: 4e5e unlk %fp <== NOT EXECUTED 65a38: 4280 clrl %d0 <== NOT EXECUTED 65a3a: 4e75 rts 00065a3c : int imfs_dir_fstat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 65a3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 65a40: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 65a44: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED rtems_chain_node *the_node; rtems_chain_control *the_chain; IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) loc->node_access; 65a48: 2050 moveal %a0@,%a0 <== NOT EXECUTED buf->st_dev = 0ll; buf->st_ino = the_jnode->st_ino; 65a4a: 2368 0034 0008 movel %a0@(52),%a1@(8) <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) loc->node_access; buf->st_dev = 0ll; 65a50: 4280 clrl %d0 <== NOT EXECUTED 65a52: 4281 clrl %d1 <== NOT EXECUTED buf->st_ino = the_jnode->st_ino; buf->st_mode = the_jnode->st_mode; buf->st_nlink = the_jnode->st_nlink; 65a54: 3368 0032 0010 movew %a0@(50),%a1@(16) <== NOT EXECUTED buf->st_uid = the_jnode->st_uid; buf->st_gid = the_jnode->st_gid; buf->st_rdev = 0ll; buf->st_blksize = 0; 65a5a: 42a9 003a clrl %a1@(58) <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) loc->node_access; buf->st_dev = 0ll; 65a5e: 2280 movel %d0,%a1@ <== NOT EXECUTED 65a60: 2341 0004 movel %d1,%a1@(4) <== NOT EXECUTED 65a64: 2008 movel %a0,%d0 <== NOT EXECUTED buf->st_nlink = the_jnode->st_nlink; buf->st_uid = the_jnode->st_uid; buf->st_gid = the_jnode->st_gid; buf->st_rdev = 0ll; buf->st_blksize = 0; buf->st_blocks = 0; 65a66: 42a9 003e clrl %a1@(62) <== NOT EXECUTED 65a6a: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED int imfs_dir_fstat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 65a70: 2f02 movel %d2,%sp@- <== NOT EXECUTED buf->st_dev = 0ll; buf->st_ino = the_jnode->st_ino; buf->st_mode = the_jnode->st_mode; buf->st_nlink = the_jnode->st_nlink; buf->st_uid = the_jnode->st_uid; 65a72: 3368 0038 0012 movew %a0@(56),%a1@(18) <== NOT EXECUTED buf->st_gid = the_jnode->st_gid; buf->st_rdev = 0ll; 65a78: 4281 clrl %d1 <== NOT EXECUTED 65a7a: 4282 clrl %d2 <== NOT EXECUTED 65a7c: 2341 0016 movel %d1,%a1@(22) <== NOT EXECUTED 65a80: 2342 001a movel %d2,%a1@(26) <== NOT EXECUTED buf->st_blksize = 0; buf->st_blocks = 0; buf->st_atime = the_jnode->stat_atime; 65a84: 2368 003c 0022 movel %a0@(60),%a1@(34) <== NOT EXECUTED buf->st_dev = 0ll; buf->st_ino = the_jnode->st_ino; buf->st_mode = the_jnode->st_mode; buf->st_nlink = the_jnode->st_nlink; buf->st_uid = the_jnode->st_uid; buf->st_gid = the_jnode->st_gid; 65a8a: 3368 003a 0014 movew %a0@(58),%a1@(20) <== NOT EXECUTED buf->st_rdev = 0ll; buf->st_blksize = 0; buf->st_blocks = 0; buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; 65a90: 2368 0040 002a movel %a0@(64),%a1@(42) <== NOT EXECUTED buf->st_ctime = the_jnode->stat_ctime; 65a96: 2368 0044 0032 movel %a0@(68),%a1@(50) <== NOT EXECUTED the_jnode = (IMFS_jnode_t *) loc->node_access; buf->st_dev = 0ll; buf->st_ino = the_jnode->st_ino; buf->st_mode = the_jnode->st_mode; 65a9c: 2368 002e 000c movel %a0@(46),%a1@(12) <== NOT EXECUTED buf->st_blocks = 0; buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; buf->st_size = 0; 65aa2: 42a9 001e clrl %a1@(30) <== NOT EXECUTED the_chain = &the_jnode->info.directory.Entries; /* Run through the chain and count the number of directory entries */ /* that are subordinate to this directory node */ for ( the_node = the_chain->first ; 65aa6: 2068 004c moveal %a0@(76),%a0 <== NOT EXECUTED 65aaa: 600c bras 65ab8 <== NOT EXECUTED !rtems_chain_is_tail( the_chain, the_node ) ; the_node = the_node->next ) { 65aac: 2050 moveal %a0@,%a0 <== NOT EXECUTED buf->st_size = buf->st_size + sizeof( struct dirent ); 65aae: 243c 0000 010c movel #268,%d2 <== NOT EXECUTED 65ab4: d5a9 001e addl %d2,%a1@(30) <== NOT EXECUTED the_chain = &the_jnode->info.directory.Entries; /* Run through the chain and count the number of directory entries */ /* that are subordinate to this directory node */ for ( the_node = the_chain->first ; !rtems_chain_is_tail( the_chain, the_node ) ; 65ab8: b088 cmpl %a0,%d0 <== NOT EXECUTED 65aba: 66f0 bnes 65aac <== NOT EXECUTED buf->st_size = buf->st_size + sizeof( struct dirent ); } return 0; } 65abc: 241f movel %sp@+,%d2 <== NOT EXECUTED 65abe: 4e5e unlk %fp <== NOT EXECUTED 65ac0: 4280 clrl %d0 <== NOT EXECUTED 65ac2: 4e75 rts 00065ac4 : off_t imfs_dir_lseek( rtems_libio_t *iop, off_t offset, int whence ) { 65ac4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 65ac8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 65acc: 2f02 movel %d2,%sp@- <== NOT EXECUTED switch( whence ) { 65ace: 7001 moveq #1,%d0 <== NOT EXECUTED 65ad0: b0ae 0010 cmpl %fp@(16),%d0 <== NOT EXECUTED 65ad4: 6526 bcss 65afc <== NOT EXECUTED case SEEK_SET: /* absolute move from the start of the file */ case SEEK_CUR: /* relative move */ iop->offset = (iop->offset/sizeof(struct dirent)) * 65ad6: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED 65ada: 243c 0000 010c movel #268,%d2 <== NOT EXECUTED 65ae0: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 65ae4: 2200 movel %d0,%d1 <== NOT EXECUTED 65ae6: ed89 lsll #6,%d1 <== NOT EXECUTED 65ae8: 2241 moveal %d1,%a1 <== NOT EXECUTED 65aea: 43f1 0c00 lea %a1@(00000000,%d0:l:4),%a1 <== NOT EXECUTED 65aee: 2209 movel %a1,%d1 <== NOT EXECUTED 65af0: 9280 subl %d0,%d1 <== NOT EXECUTED 65af2: e589 lsll #2,%d1 <== NOT EXECUTED 65af4: 2141 0008 movel %d1,%a0@(8) <== NOT EXECUTED 65af8: 4280 clrl %d0 <== NOT EXECUTED 65afa: 600e bras 65b0a <== NOT EXECUTED break; case SEEK_END: /* Movement past the end of the directory via lseek */ /* is not a permitted operation */ default: rtems_set_errno_and_return_minus_one( EINVAL ); 65afc: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 65b02: 2040 moveal %d0,%a0 <== NOT EXECUTED 65b04: 7216 moveq #22,%d1 <== NOT EXECUTED 65b06: 70ff moveq #-1,%d0 <== NOT EXECUTED 65b08: 2081 movel %d1,%a0@ <== NOT EXECUTED break; } return 0; } 65b0a: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 65b0e: 4e5e unlk %fp <== NOT EXECUTED 65b10: 4e75 rts 00065a10 : rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) { 65a10: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 65a14: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED IMFS_jnode_t *the_jnode; /* Is the node a directory ? */ the_jnode = (IMFS_jnode_t *) iop->file_info; if ( the_jnode->type != IMFS_DIRECTORY ) 65a18: 2069 002c moveal %a1@(44),%a0 <== NOT EXECUTED 65a1c: 7001 moveq #1,%d0 <== NOT EXECUTED 65a1e: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 65a22: 6704 beqs 65a28 <== NOT EXECUTED 65a24: 70ff moveq #-1,%d0 <== NOT EXECUTED 65a26: 6006 bras 65a2e <== NOT EXECUTED return -1; /* It wasn't a directory --> return error */ iop->offset = 0; 65a28: 4280 clrl %d0 <== NOT EXECUTED 65a2a: 42a9 0008 clrl %a1@(8) <== NOT EXECUTED return 0; } 65a2e: 4e5e unlk %fp <== NOT EXECUTED 65a30: 4e75 rts 00065bce : ssize_t imfs_dir_read( rtems_libio_t *iop, void *buffer, size_t count ) { 65bce: 4e56 fecc linkw %fp,#-308 <== NOT EXECUTED 65bd2: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 65bd6: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED int current_entry; int first_entry; int last_entry; struct dirent tmp_dirent; the_jnode = (IMFS_jnode_t *)iop->file_info; 65bda: 206b 002c moveal %a3@(44),%a0 <== NOT EXECUTED ssize_t imfs_dir_read( rtems_libio_t *iop, void *buffer, size_t count ) { 65bde: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 65be2: 2468 004c moveal %a0@(76),%a2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 65be6: 2a08 movel %a0,%d5 <== NOT EXECUTED 65be8: 0685 0000 0050 addil #80,%d5 <== NOT EXECUTED struct dirent tmp_dirent; the_jnode = (IMFS_jnode_t *)iop->file_info; the_chain = &the_jnode->info.directory.Entries; if ( rtems_chain_is_empty( the_chain ) ) 65bee: ba8a cmpl %a2,%d5 <== NOT EXECUTED 65bf0: 6606 bnes 65bf8 <== NOT EXECUTED 65bf2: 4284 clrl %d4 <== NOT EXECUTED 65bf4: 6000 00a4 braw 65c9a <== NOT EXECUTED bytes_transferred = 0; first_entry = iop->offset; /* protect against using sizes that are not exact multiples of the */ /* -dirent- size. These could result in unexpected results */ last_entry = first_entry + (count/sizeof(struct dirent)) * sizeof(struct dirent); 65bf8: 243c 0000 010c movel #268,%d2 <== NOT EXECUTED 65bfe: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 65c02: 2200 movel %d0,%d1 <== NOT EXECUTED 65c04: ed89 lsll #6,%d1 <== NOT EXECUTED /* Move to the first of the desired directory entries */ the_node = the_chain->first; bytes_transferred = 0; first_entry = iop->offset; 65c06: 286b 0008 moveal %a3@(8),%a4 <== NOT EXECUTED /* protect against using sizes that are not exact multiples of the */ /* -dirent- size. These could result in unexpected results */ last_entry = first_entry + (count/sizeof(struct dirent)) * sizeof(struct dirent); 65c0a: 2241 moveal %d1,%a1 <== NOT EXECUTED tmp_dirent.d_off = current_entry; tmp_dirent.d_reclen = sizeof( struct dirent ); the_jnode = (IMFS_jnode_t *) the_node; tmp_dirent.d_ino = the_jnode->st_ino; tmp_dirent.d_namlen = strlen( the_jnode->name ); strcpy( tmp_dirent.d_name, the_jnode->name ); 65c0c: 2e0e movel %fp,%d7 <== NOT EXECUTED bytes_transferred = 0; first_entry = iop->offset; /* protect against using sizes that are not exact multiples of the */ /* -dirent- size. These could result in unexpected results */ last_entry = first_entry + (count/sizeof(struct dirent)) * sizeof(struct dirent); 65c0e: 41f1 0c00 lea %a1@(00000000,%d0:l:4),%a0 <== NOT EXECUTED tmp_dirent.d_off = current_entry; tmp_dirent.d_reclen = sizeof( struct dirent ); the_jnode = (IMFS_jnode_t *) the_node; tmp_dirent.d_ino = the_jnode->st_ino; tmp_dirent.d_namlen = strlen( the_jnode->name ); strcpy( tmp_dirent.d_name, the_jnode->name ); 65c12: 0687 ffff fef4 addil #-268,%d7 <== NOT EXECUTED bytes_transferred = 0; first_entry = iop->offset; /* protect against using sizes that are not exact multiples of the */ /* -dirent- size. These could result in unexpected results */ last_entry = first_entry + (count/sizeof(struct dirent)) * sizeof(struct dirent); 65c18: 91c0 subal %d0,%a0 <== NOT EXECUTED tmp_dirent.d_off = current_entry; tmp_dirent.d_reclen = sizeof( struct dirent ); the_jnode = (IMFS_jnode_t *) the_node; tmp_dirent.d_ino = the_jnode->st_ino; tmp_dirent.d_namlen = strlen( the_jnode->name ); strcpy( tmp_dirent.d_name, the_jnode->name ); 65c1a: 2c07 movel %d7,%d6 <== NOT EXECUTED bytes_transferred = 0; first_entry = iop->offset; /* protect against using sizes that are not exact multiples of the */ /* -dirent- size. These could result in unexpected results */ last_entry = first_entry + (count/sizeof(struct dirent)) * sizeof(struct dirent); 65c1c: 4bf4 8c00 lea %a4@(00000000,%a0:l:4),%a5 <== NOT EXECUTED 65c20: 4284 clrl %d4 <== NOT EXECUTED 65c22: 4283 clrl %d3 <== NOT EXECUTED tmp_dirent.d_off = current_entry; tmp_dirent.d_reclen = sizeof( struct dirent ); the_jnode = (IMFS_jnode_t *) the_node; tmp_dirent.d_ino = the_jnode->st_ino; tmp_dirent.d_namlen = strlen( the_jnode->name ); strcpy( tmp_dirent.d_name, the_jnode->name ); 65c24: 0686 0000 000c addil #12,%d6 <== NOT EXECUTED 65c2a: 606a bras 65c96 <== NOT EXECUTED for ( current_entry = 0; current_entry < last_entry; current_entry = current_entry + sizeof(struct dirent) ){ if ( rtems_chain_is_tail( the_chain, the_node ) ){ 65c2c: ba8a cmpl %a2,%d5 <== NOT EXECUTED 65c2e: 676a beqs 65c9a <== NOT EXECUTED /* entry in the read */ return bytes_transferred; /* Indicate that there are no more */ /* entries to return */ } if( current_entry >= first_entry ) { 65c30: b9c3 cmpal %d3,%a4 <== NOT EXECUTED 65c32: 6e5a bgts 65c8e <== NOT EXECUTED /* Move the entry to the return buffer */ tmp_dirent.d_off = current_entry; 65c34: 2d43 fef8 movel %d3,%fp@(-264) <== NOT EXECUTED tmp_dirent.d_reclen = sizeof( struct dirent ); the_jnode = (IMFS_jnode_t *) the_node; tmp_dirent.d_ino = the_jnode->st_ino; tmp_dirent.d_namlen = strlen( the_jnode->name ); 65c38: 240a movel %a2,%d2 <== NOT EXECUTED if( current_entry >= first_entry ) { /* Move the entry to the return buffer */ tmp_dirent.d_off = current_entry; tmp_dirent.d_reclen = sizeof( struct dirent ); the_jnode = (IMFS_jnode_t *) the_node; tmp_dirent.d_ino = the_jnode->st_ino; 65c3a: 2d6a 0034 fef4 movel %a2@(52),%fp@(-268) <== NOT EXECUTED tmp_dirent.d_namlen = strlen( the_jnode->name ); 65c40: 0682 0000 000c addil #12,%d2 <== NOT EXECUTED 65c46: 2f02 movel %d2,%sp@- <== NOT EXECUTED } if( current_entry >= first_entry ) { /* Move the entry to the return buffer */ tmp_dirent.d_off = current_entry; tmp_dirent.d_reclen = sizeof( struct dirent ); 65c48: 303c 010c movew #268,%d0 <== NOT EXECUTED 65c4c: 3d40 fefc movew %d0,%fp@(-260) <== NOT EXECUTED the_jnode = (IMFS_jnode_t *) the_node; tmp_dirent.d_ino = the_jnode->st_ino; tmp_dirent.d_namlen = strlen( the_jnode->name ); 65c50: 4eb9 0006 d010 jsr 6d010 <== NOT EXECUTED strcpy( tmp_dirent.d_name, the_jnode->name ); 65c56: 2e82 movel %d2,%sp@ <== NOT EXECUTED /* Move the entry to the return buffer */ tmp_dirent.d_off = current_entry; tmp_dirent.d_reclen = sizeof( struct dirent ); the_jnode = (IMFS_jnode_t *) the_node; tmp_dirent.d_ino = the_jnode->st_ino; tmp_dirent.d_namlen = strlen( the_jnode->name ); 65c58: 3d40 fefe movew %d0,%fp@(-258) <== NOT EXECUTED strcpy( tmp_dirent.d_name, the_jnode->name ); 65c5c: 2f06 movel %d6,%sp@- <== NOT EXECUTED 65c5e: 4eb9 0006 ca9c jsr 6ca9c <== NOT EXECUTED memcpy( 65c64: 4878 010c pea 10c <== NOT EXECUTED 65c68: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 65c6c: 2f07 movel %d7,%sp@- <== NOT EXECUTED 65c6e: 4870 4800 pea %a0@(00000000,%d4:l) <== NOT EXECUTED 65c72: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED buffer + bytes_transferred, (void *)&tmp_dirent, sizeof( struct dirent ) ); iop->offset = iop->offset + sizeof(struct dirent); bytes_transferred = bytes_transferred + sizeof( struct dirent ); 65c78: 0684 0000 010c addil #268,%d4 <== NOT EXECUTED memcpy( buffer + bytes_transferred, (void *)&tmp_dirent, sizeof( struct dirent ) ); iop->offset = iop->offset + sizeof(struct dirent); 65c7e: 203c 0000 010c movel #268,%d0 <== NOT EXECUTED bytes_transferred = bytes_transferred + sizeof( struct dirent ); 65c84: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED memcpy( buffer + bytes_transferred, (void *)&tmp_dirent, sizeof( struct dirent ) ); iop->offset = iop->offset + sizeof(struct dirent); 65c8a: d1ab 0008 addl %d0,%a3@(8) <== NOT EXECUTED bytes_transferred = bytes_transferred + sizeof( struct dirent ); } the_node = the_node->next; 65c8e: 2452 moveal %a2@,%a2 <== NOT EXECUTED ssize_t imfs_dir_read( rtems_libio_t *iop, void *buffer, size_t count ) { 65c90: 0683 0000 010c addil #268,%d3 <== NOT EXECUTED last_entry = first_entry + (count/sizeof(struct dirent)) * sizeof(struct dirent); /* The directory was not empty so try to move to the desired entry in chain*/ for ( current_entry = 0; current_entry < last_entry; 65c96: bbc3 cmpal %d3,%a5 <== NOT EXECUTED 65c98: 6e92 bgts 65c2c <== NOT EXECUTED the_node = the_node->next; } /* Success */ return bytes_transferred; } 65c9a: 2004 movel %d4,%d0 <== NOT EXECUTED 65c9c: 4cee 3cfc fecc moveml %fp@(-308),%d2-%d7/%a2-%a5 <== NOT EXECUTED 65ca2: 4e5e unlk %fp <== NOT EXECUTED 65ca4: 4e75 rts <== NOT EXECUTED ... 00065b12 : */ int imfs_dir_rmnod( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 65b12: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 65b16: 2f0b movel %a3,%sp@- <== NOT EXECUTED 65b18: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 65b1c: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 65b1e: 2453 moveal %a3@,%a2 <== NOT EXECUTED /* * You cannot remove a node that still has children */ if ( ! rtems_chain_is_empty( &the_jnode->info.directory.Entries ) ) 65b20: 200a movel %a2,%d0 <== NOT EXECUTED 65b22: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED 65b28: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 65b2c: 670e beqs 65b3c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTEMPTY ); 65b2e: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 65b34: 725a moveq #90,%d1 <== NOT EXECUTED 65b36: 2040 moveal %d0,%a0 <== NOT EXECUTED 65b38: 2081 movel %d1,%a0@ <== NOT EXECUTED 65b3a: 601c bras 65b58 <== NOT EXECUTED /* * You cannot remove the file system root node. */ if ( pathloc->mt_entry->mt_fs_root.node_access == pathloc->node_access ) 65b3c: 206b 000c moveal %a3@(12),%a0 <== NOT EXECUTED 65b40: b5e8 0018 cmpal %a0@(24),%a2 <== NOT EXECUTED 65b44: 6706 beqs 65b4c <== NOT EXECUTED /* * You cannot remove a mountpoint. */ if ( the_jnode->info.directory.mt_fs != NULL ) 65b46: 4aaa 0058 tstl %a2@(88) <== NOT EXECUTED 65b4a: 6710 beqs 65b5c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBUSY ); 65b4c: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 65b52: 2040 moveal %d0,%a0 <== NOT EXECUTED 65b54: 7010 moveq #16,%d0 <== NOT EXECUTED 65b56: 2080 movel %d0,%a0@ <== NOT EXECUTED 65b58: 70ff moveq #-1,%d0 <== NOT EXECUTED 65b5a: 6066 bras 65bc2 <== NOT EXECUTED /* * Take the node out of the parent's chain that contains this node */ if ( the_jnode->Parent != NULL ) { 65b5c: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 65b60: 670e beqs 65b70 <== NOT EXECUTED 65b62: 2f0a movel %a2,%sp@- <== NOT EXECUTED 65b64: 4eb9 0005 d98c jsr 5d98c <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( (rtems_chain_node *) the_jnode ); the_jnode->Parent = NULL; 65b6a: 588f addql #4,%sp <== NOT EXECUTED 65b6c: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED /* * Decrement the link counter and see if we can free the space. */ the_jnode->st_nlink--; 65b70: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 65b74: 5380 subql #1,%d0 <== NOT EXECUTED 65b76: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( the_jnode ); 65b7a: 42a7 clrl %sp@- <== NOT EXECUTED 65b7c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 65b80: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 65b86: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED /* * The file cannot be open and the link must be less than 1 to free. */ if ( !rtems_libio_is_file_open( the_jnode ) && (the_jnode->st_nlink < 1) ) { 65b8c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 65b8e: 4eb9 0004 5576 jsr 45576 <== NOT EXECUTED 65b94: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 65b9a: 4a80 tstl %d0 <== NOT EXECUTED 65b9c: 6622 bnes 65bc0 <== NOT EXECUTED 65b9e: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 65ba2: 661c bnes 65bc0 <== NOT EXECUTED /* * Is the rtems_filesystem_current is this node? */ if ( rtems_filesystem_current.node_access == pathloc->node_access ) 65ba4: 2079 0007 d460 moveal 7d460 ,%a0 <== NOT EXECUTED 65baa: 2653 moveal %a3@,%a3 <== NOT EXECUTED 65bac: b7e8 0004 cmpal %a0@(4),%a3 <== NOT EXECUTED 65bb0: 6604 bnes 65bb6 <== NOT EXECUTED rtems_filesystem_current.node_access = NULL; 65bb2: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED /* * Free memory associated with a memory file. */ free( the_jnode ); 65bb6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 65bb8: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 65bbe: 588f addql #4,%sp <== NOT EXECUTED 65bc0: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 65bc2: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 65bc6: 266e fff4 moveal %fp@(-12),%a3 <== NOT EXECUTED 65bca: 4e5e unlk %fp <== NOT EXECUTED 65bcc: 4e75 rts 0005b7c2 : /* * Initialize useable but dummy databases */ void init_etc_passwd_group(void) { 5b7c2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5b7c6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5b7c8: 2f02 movel %d2,%sp@- <== NOT EXECUTED FILE *fp; static char etc_passwd_initted = 0; if (etc_passwd_initted) 5b7ca: 4a39 0009 1588 tstb 91588 <== NOT EXECUTED 5b7d0: 6600 00ca bnew 5b89c <== NOT EXECUTED return; etc_passwd_initted = 1; mkdir("/etc", 0777); 5b7d4: 4878 01ff pea 1ff <== NOT EXECUTED FILE *fp; static char etc_passwd_initted = 0; if (etc_passwd_initted) return; etc_passwd_initted = 1; 5b7d8: 7001 moveq #1,%d0 <== NOT EXECUTED 5b7da: 13c0 0009 1588 moveb %d0,91588 <== NOT EXECUTED mkdir("/etc", 0777); 5b7e0: 4879 0007 a50d pea 7a50d <== NOT EXECUTED 5b7e6: 4eb9 0004 5a5c jsr 45a5c <== NOT EXECUTED /* * Initialize /etc/passwd */ if ((fp = fopen("/etc/passwd", "r")) != NULL) { 5b7ec: 4879 0007 8e79 pea 78e79 <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5b7f2: 45f9 0006 88c4 lea 688c4 ,%a2 <== NOT EXECUTED 5b7f8: 4879 0007 a512 pea 7a512 <== NOT EXECUTED 5b7fe: 4e92 jsr %a2@ <== NOT EXECUTED 5b800: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5b806: 4a80 tstl %d0 <== NOT EXECUTED 5b808: 670c beqs 5b816 <== NOT EXECUTED fclose(fp); 5b80a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b80c: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED 5b812: 588f addql #4,%sp <== NOT EXECUTED 5b814: 6030 bras 5b846 <== NOT EXECUTED } else if ((fp = fopen("/etc/passwd", "w")) != NULL) { 5b816: 4879 0007 8b25 pea 78b25 <_CPU_m68k_BFFFO_table+0x132> <== NOT EXECUTED 5b81c: 4879 0007 a512 pea 7a512 <== NOT EXECUTED 5b822: 4e92 jsr %a2@ <== NOT EXECUTED 5b824: 508f addql #8,%sp <== NOT EXECUTED 5b826: 2400 movel %d0,%d2 <== NOT EXECUTED 5b828: 671c beqs 5b846 <== NOT EXECUTED fprintf(fp, "root:*:0:0:root::/:/bin/sh\n" 5b82a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b82c: 4879 0007 a51e pea 7a51e <== NOT EXECUTED 5b832: 4eb9 0006 8a42 jsr 68a42 <== NOT EXECUTED "rtems:*:1:1:RTEMS Application::/:/bin/sh\n" "tty:!:2:2:tty owner::/:/bin/false\n" ); fclose(fp); 5b838: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b83a: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED 5b840: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } /* * Initialize /etc/group */ if ((fp = fopen("/etc/group", "r")) != NULL) { 5b846: 4879 0007 8e79 pea 78e79 <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5b84c: 45f9 0006 88c4 lea 688c4 ,%a2 <== NOT EXECUTED 5b852: 4879 0007 a585 pea 7a585 <== NOT EXECUTED 5b858: 4e92 jsr %a2@ <== NOT EXECUTED 5b85a: 508f addql #8,%sp <== NOT EXECUTED 5b85c: 4a80 tstl %d0 <== NOT EXECUTED 5b85e: 670c beqs 5b86c <== NOT EXECUTED fclose(fp); 5b860: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b862: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED 5b868: 588f addql #4,%sp <== NOT EXECUTED 5b86a: 6030 bras 5b89c <== NOT EXECUTED } else if ((fp = fopen("/etc/group", "w")) != NULL) { 5b86c: 4879 0007 8b25 pea 78b25 <_CPU_m68k_BFFFO_table+0x132> <== NOT EXECUTED 5b872: 4879 0007 a585 pea 7a585 <== NOT EXECUTED 5b878: 4e92 jsr %a2@ <== NOT EXECUTED 5b87a: 508f addql #8,%sp <== NOT EXECUTED 5b87c: 2400 movel %d0,%d2 <== NOT EXECUTED 5b87e: 671c beqs 5b89c <== NOT EXECUTED fprintf( fp, "root:x:0:root\n" 5b880: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b882: 4879 0007 a590 pea 7a590 <== NOT EXECUTED 5b888: 4eb9 0006 8a42 jsr 68a42 <== NOT EXECUTED "rtems:x:1:rtems\n" "tty:x:2:tty\n" ); fclose(fp); 5b88e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b890: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED 5b896: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } } 5b89c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5b8a0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 5b8a4: 4e5e unlk %fp <== NOT EXECUTED 5b8a6: 4e75 rts 00049374 : * This routine will initialize the chain control element that manages the * mount table chain. */ int init_fs_mount_table(void) { 49374: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 49378: 41f9 0005 6ed2 lea 56ed2 ,%a0 <== NOT EXECUTED rtems_chain_initialize_empty ( &rtems_filesystem_mount_table_control ); return 0; } 4937e: 4e5e unlk %fp <== NOT EXECUTED 49380: 4280 clrl %d0 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 49382: 23c8 0005 6eda movel %a0,56eda <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 49388: 20bc 0005 6ed6 movel #356054,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 4938e: 42b9 0005 6ed6 clrl 56ed6 <== NOT EXECUTED 49394: 4e75 rts 00051bb4 : int ioctl( int fd, ioctl_command_t command, ... ) { 51bb4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 51bb8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 51bba: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED va_list ap; rtems_status_code rc; rtems_libio_t *iop; void *buffer; rtems_libio_check_fd( fd ); 51bbe: b4b9 0005 fd38 cmpl 5fd38 ,%d2 <== NOT EXECUTED 51bc4: 642e bccs 51bf4 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 51bc6: 2002 movel %d2,%d0 <== NOT EXECUTED 51bc8: 2202 movel %d2,%d1 <== NOT EXECUTED 51bca: e588 lsll #2,%d0 <== NOT EXECUTED 51bcc: e989 lsll #4,%d1 <== NOT EXECUTED 51bce: 9280 subl %d0,%d1 <== NOT EXECUTED 51bd0: 2279 0006 2818 moveal 62818 ,%a1 <== NOT EXECUTED 51bd6: d282 addl %d2,%d1 <== NOT EXECUTED 51bd8: e589 lsll #2,%d1 <== NOT EXECUTED 51bda: d3c1 addal %d1,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 51bdc: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 51be0: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 51be6: 670c beqs 51bf4 <== NOT EXECUTED va_start(ap, command); buffer = va_arg(ap, void *); 51be8: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED /* * Now process the ioctl(). */ if ( !iop->handlers ) 51bec: 2069 0030 moveal %a1@(48),%a0 <== NOT EXECUTED 51bf0: 4a88 tstl %a0 <== NOT EXECUTED 51bf2: 660e bnes 51c02 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 51bf4: 4eb9 0005 22fc jsr 522fc <__errno> <== NOT EXECUTED 51bfa: 2040 moveal %d0,%a0 <== NOT EXECUTED 51bfc: 7009 moveq #9,%d0 <== NOT EXECUTED 51bfe: 2080 movel %d0,%a0@ <== NOT EXECUTED 51c00: 6016 bras 51c18 <== NOT EXECUTED if ( !iop->handlers->ioctl_h ) 51c02: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 51c06: 4a88 tstl %a0 <== NOT EXECUTED 51c08: 6612 bnes 51c1c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 51c0a: 4eb9 0005 22fc jsr 522fc <__errno> <== NOT EXECUTED 51c10: 2040 moveal %d0,%a0 <== NOT EXECUTED 51c12: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 51c18: 70ff moveq #-1,%d0 <== NOT EXECUTED 51c1a: 6010 bras 51c2c <== NOT EXECUTED rc = (*iop->handlers->ioctl_h)( iop, command, buffer ); 51c1c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 51c1e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 51c22: 2f09 movel %a1,%sp@- <== NOT EXECUTED 51c24: 4e90 jsr %a0@ <== NOT EXECUTED 51c26: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return rc; } 51c2c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 51c30: 4e5e unlk %fp <== NOT EXECUTED 51c32: 4e75 rts 000436d8 : /* * Process a single input character */ static int iproc (unsigned char c, struct rtems_termios_tty *tty) { 436d8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 436dc: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 436e0: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 436e4: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if (tty->termios.c_iflag & ISTRIP) 436e8: 262a 0030 movel %a2@(48),%d3 <== NOT EXECUTED /* * Process a single input character */ static int iproc (unsigned char c, struct rtems_termios_tty *tty) { 436ec: 1400 moveb %d0,%d2 <== NOT EXECUTED if (tty->termios.c_iflag & ISTRIP) 436ee: 0803 0005 btst #5,%d3 <== NOT EXECUTED 436f2: 6704 beqs 436f8 <== NOT EXECUTED c &= 0x7f; 436f4: 747f moveq #127,%d2 <== NOT EXECUTED 436f6: c480 andl %d0,%d2 <== NOT EXECUTED if (tty->termios.c_iflag & IUCLC) 436f8: 0803 0009 btst #9,%d3 <== NOT EXECUTED 436fc: 671e beqs 4371c <== NOT EXECUTED c = tolower (c); 436fe: 2079 0005 5678 moveal 55678 <__ctype_ptr>,%a0 <== NOT EXECUTED 43704: 4281 clrl %d1 <== NOT EXECUTED 43706: 1202 moveb %d2,%d1 <== NOT EXECUTED 43708: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 4370c: 49c0 extbl %d0 <== NOT EXECUTED 4370e: 0800 0000 btst #0,%d0 <== NOT EXECUTED 43712: 6706 beqs 4371a <== NOT EXECUTED 43714: 0681 0000 0020 addil #32,%d1 <== NOT EXECUTED 4371a: 1401 moveb %d1,%d2 <== NOT EXECUTED if (c == '\r') { 4371c: 4280 clrl %d0 <== NOT EXECUTED 4371e: 1002 moveb %d2,%d0 <== NOT EXECUTED 43720: 720d moveq #13,%d1 <== NOT EXECUTED 43722: b280 cmpl %d0,%d1 <== NOT EXECUTED 43724: 6610 bnes 43736 <== NOT EXECUTED if (tty->termios.c_iflag & IGNCR) 43726: 4a03 tstb %d3 <== NOT EXECUTED 43728: 6d00 00fe bltw 43828 <== NOT EXECUTED return 0; if (tty->termios.c_iflag & ICRNL) 4372c: 0803 0008 btst #8,%d3 <== NOT EXECUTED 43730: 671a beqs 4374c <== NOT EXECUTED 43732: 740a moveq #10,%d2 <== NOT EXECUTED 43734: 6016 bras 4374c <== NOT EXECUTED c = '\n'; } else if ((c == '\n') && (tty->termios.c_iflag & INLCR)) { 43736: 720a moveq #10,%d1 <== NOT EXECUTED 43738: b280 cmpl %d0,%d1 <== NOT EXECUTED 4373a: 660a bnes 43746 <== NOT EXECUTED 4373c: 0803 0006 btst #6,%d3 <== NOT EXECUTED 43740: 6600 00f2 bnew 43834 <== NOT EXECUTED 43744: 6006 bras 4374c <== NOT EXECUTED c = '\r'; } if ((c != '\0') && (tty->termios.c_lflag & ICANON)) { 43746: 4a02 tstb %d2 <== NOT EXECUTED 43748: 6700 00a8 beqw 437f2 <== NOT EXECUTED 4374c: 262a 003c movel %a2@(60),%d3 <== NOT EXECUTED 43750: 0803 0001 btst #1,%d3 <== NOT EXECUTED 43754: 6700 009c beqw 437f2 <== NOT EXECUTED if (c == tty->termios.c_cc[VERASE]) { 43758: 4280 clrl %d0 <== NOT EXECUTED 4375a: 102a 0043 moveb %a2@(67),%d0 <== NOT EXECUTED 4375e: 4281 clrl %d1 <== NOT EXECUTED 43760: 1202 moveb %d2,%d1 <== NOT EXECUTED 43762: b081 cmpl %d1,%d0 <== NOT EXECUTED 43764: 6604 bnes 4376a <== NOT EXECUTED erase (tty, 0); 43766: 42a7 clrl %sp@- <== NOT EXECUTED 43768: 600e bras 43778 <== NOT EXECUTED return 0; } else if (c == tty->termios.c_cc[VKILL]) { 4376a: 4280 clrl %d0 <== NOT EXECUTED 4376c: 102a 0044 moveb %a2@(68),%d0 <== NOT EXECUTED 43770: b081 cmpl %d1,%d0 <== NOT EXECUTED 43772: 6610 bnes 43784 <== NOT EXECUTED erase (tty, 1); 43774: 4878 0001 pea 1 <== NOT EXECUTED 43778: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4377a: 4eba fdba jsr %pc@(43536 ) <== NOT EXECUTED 4377e: 508f addql #8,%sp <== NOT EXECUTED 43780: 6000 00a6 braw 43828 <== NOT EXECUTED return 0; } else if (c == tty->termios.c_cc[VEOF]) { 43784: 4280 clrl %d0 <== NOT EXECUTED 43786: 102a 0045 moveb %a2@(69),%d0 <== NOT EXECUTED 4378a: b081 cmpl %d1,%d0 <== NOT EXECUTED 4378c: 6760 beqs 437ee <== NOT EXECUTED return 1; } else if (c == '\n') { 4378e: 700a moveq #10,%d0 <== NOT EXECUTED 43790: b081 cmpl %d1,%d0 <== NOT EXECUTED 43792: 6622 bnes 437b6 <== NOT EXECUTED if (tty->termios.c_lflag & (ECHO | ECHONL)) 43794: 7248 moveq #72,%d1 <== NOT EXECUTED 43796: c681 andl %d1,%d3 <== NOT EXECUTED 43798: 670c beqs 437a6 <== NOT EXECUTED echo (c, tty); 4379a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4379c: 4878 000a pea a <== NOT EXECUTED 437a0: 4eba fd0e jsr %pc@(434b0 ) <== NOT EXECUTED 437a4: 508f addql #8,%sp <== NOT EXECUTED tty->cbuf[tty->ccount++] = c; 437a6: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 437aa: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 437ae: 720a moveq #10,%d1 <== NOT EXECUTED 437b0: 1181 0800 moveb %d1,%a0@(00000000,%d0:l) <== NOT EXECUTED 437b4: 6032 bras 437e8 <== NOT EXECUTED return 1; } else if ((c == tty->termios.c_cc[VEOL]) 437b6: 4280 clrl %d0 <== NOT EXECUTED 437b8: 102a 004c moveb %a2@(76),%d0 <== NOT EXECUTED 437bc: b081 cmpl %d1,%d0 <== NOT EXECUTED 437be: 670a beqs 437ca <== NOT EXECUTED 437c0: 4280 clrl %d0 <== NOT EXECUTED 437c2: 102a 0051 moveb %a2@(81),%d0 <== NOT EXECUTED 437c6: b081 cmpl %d1,%d0 <== NOT EXECUTED 437c8: 6628 bnes 437f2 <== NOT EXECUTED || (c == tty->termios.c_cc[VEOL2])) { if (tty->termios.c_lflag & ECHO) 437ca: 44c3 movew %d3,%ccr <== NOT EXECUTED 437cc: 6a0e bpls 437dc <== NOT EXECUTED echo (c, tty); 437ce: 2f0a movel %a2,%sp@- <== NOT EXECUTED 437d0: 4280 clrl %d0 <== NOT EXECUTED 437d2: 1002 moveb %d2,%d0 <== NOT EXECUTED 437d4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 437d6: 4eba fcd8 jsr %pc@(434b0 ) <== NOT EXECUTED 437da: 508f addql #8,%sp <== NOT EXECUTED tty->cbuf[tty->ccount++] = c; 437dc: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 437e0: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 437e4: 1182 0800 moveb %d2,%a0@(00000000,%d0:l) <== NOT EXECUTED 437e8: 5280 addql #1,%d0 <== NOT EXECUTED 437ea: 2540 0020 movel %d0,%a2@(32) <== NOT EXECUTED 437ee: 7001 moveq #1,%d0 <== NOT EXECUTED 437f0: 6038 bras 4382a <== NOT EXECUTED } /* * FIXME: Should do IMAXBEL handling somehow */ if (tty->ccount < (CBUFSIZE-1)) { 437f2: 2039 0005 55f4 movel 555f4 ,%d0 <== NOT EXECUTED 437f8: 5380 subql #1,%d0 <== NOT EXECUTED 437fa: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 437fe: 6f28 bles 43828 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) 43800: 7008 moveq #8,%d0 <== NOT EXECUTED 43802: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 43806: 670e beqs 43816 <== NOT EXECUTED echo (c, tty); 43808: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4380a: 4280 clrl %d0 <== NOT EXECUTED 4380c: 1002 moveb %d2,%d0 <== NOT EXECUTED 4380e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43810: 4eba fc9e jsr %pc@(434b0 ) <== NOT EXECUTED 43814: 508f addql #8,%sp <== NOT EXECUTED tty->cbuf[tty->ccount++] = c; 43816: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 4381a: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 4381e: 1182 0800 moveb %d2,%a0@(00000000,%d0:l) <== NOT EXECUTED 43822: 5280 addql #1,%d0 <== NOT EXECUTED 43824: 2540 0020 movel %d0,%a2@(32) <== NOT EXECUTED 43828: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 4382a: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 43830: 4e5e unlk %fp <== NOT EXECUTED 43832: 4e75 rts <== NOT EXECUTED * FIXME: Should do IMAXBEL handling somehow */ if (tty->ccount < (CBUFSIZE-1)) { if (tty->termios.c_lflag & ECHO) echo (c, tty); tty->cbuf[tty->ccount++] = c; 43834: 740d moveq #13,%d2 <== NOT EXECUTED 43836: 6000 ff14 braw 4374c <== NOT EXECUTED 00053224 : #include int isatty( int fd ) { 53224: 4e56 ffb4 linkw %fp,#-76 <== NOT EXECUTED struct stat buf; if (fstat (fd, &buf) < 0) 53228: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 5322c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 53230: 4eb9 0005 313c jsr 5313c <== NOT EXECUTED 53236: 508f addql #8,%sp <== NOT EXECUTED 53238: 4a80 tstl %d0 <== NOT EXECUTED 5323a: 6c04 bges 53240 <== NOT EXECUTED 5323c: 4280 clrl %d0 <== NOT EXECUTED 5323e: 6016 bras 53256 <== NOT EXECUTED 53240: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 53244: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 5324a: 0c80 0000 2000 cmpil #8192,%d0 <== NOT EXECUTED 53250: 57c0 seq %d0 <== NOT EXECUTED 53252: 49c0 extbl %d0 <== NOT EXECUTED 53254: 4480 negl %d0 <== NOT EXECUTED if (S_ISCHR (buf.st_mode)) return 1; return 0; } 53256: 4e5e unlk %fp <== NOT EXECUTED 53258: 4e75 rts <== NOT EXECUTED ... 00053364 : * These are directly supported (and completely correct) in the posix api. */ #if !defined(RTEMS_POSIX_API) int kill( pid_t pid, int sig ) { 53364: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 53368: 4e5e unlk %fp <== NOT EXECUTED 5336a: 4280 clrl %d0 <== NOT EXECUTED 5336c: 4e75 rts 000425c2 : */ bool libc_create_hook( rtems_tcb *current_task, rtems_tcb *creating_task ) { 425c2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 425c6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 425c8: 2f0a movel %a2,%sp@- <== NOT EXECUTED ptr = (struct _reent *) calloc(1, sizeof(struct _reent)); #else /* It is OK to allocate from the workspace because these * hooks run with thread dispatching disabled. */ ptr = (struct _reent *) _Workspace_Allocate(sizeof(struct _reent)); 425ca: 4878 03fe pea 3fe <== NOT EXECUTED 425ce: 4eb9 0004 7df0 jsr 47df0 <_Workspace_Allocate> <== NOT EXECUTED #endif if (ptr) { 425d4: 588f addql #4,%sp <== NOT EXECUTED ptr = (struct _reent *) calloc(1, sizeof(struct _reent)); #else /* It is OK to allocate from the workspace because these * hooks run with thread dispatching disabled. */ ptr = (struct _reent *) _Workspace_Allocate(sizeof(struct _reent)); 425d6: 2640 moveal %d0,%a3 <== NOT EXECUTED #endif if (ptr) { 425d8: 4a80 tstl %d0 <== NOT EXECUTED 425da: 6606 bnes 425e2 <== NOT EXECUTED 425dc: 4200 clrb %d0 <== NOT EXECUTED 425de: 6000 0150 braw 42730 <== NOT EXECUTED _REENT_INIT_PTR((ptr)); /* GCC extension: structure constants */ 425e2: 41eb 02ea lea %a3@(746),%a0 <== NOT EXECUTED 425e6: 2748 0004 movel %a0,%a3@(4) <== NOT EXECUTED 425ea: 41eb 0346 lea %a3@(838),%a0 <== NOT EXECUTED 425ee: 2748 0008 movel %a0,%a3@(8) <== NOT EXECUTED 425f2: 41eb 03a2 lea %a3@(930),%a0 <== NOT EXECUTED 425f6: 2748 000c movel %a0,%a3@(12) <== NOT EXECUTED 425fa: 45f9 0004 b464 lea 4b464 ,%a2 <== NOT EXECUTED 42600: 4293 clrl %a3@ <== NOT EXECUTED 42602: 42ab 0010 clrl %a3@(16) <== NOT EXECUTED 42606: 4878 0019 pea 19 <== NOT EXECUTED 4260a: 42a7 clrl %sp@- <== NOT EXECUTED 4260c: 486b 0014 pea %a3@(20) <== NOT EXECUTED 42610: 4e92 jsr %a2@ <== NOT EXECUTED 42612: 203c 0005 40f7 movel #344311,%d0 <== NOT EXECUTED 42618: 42ab 002e clrl %a3@(46) <== NOT EXECUTED 4261c: 4201 clrb %d1 <== NOT EXECUTED 4261e: 1741 005e moveb %d1,%a3@(94) <== NOT EXECUTED 42622: 2740 0032 movel %d0,%a3@(50) <== NOT EXECUTED 42626: 42ab 0036 clrl %a3@(54) <== NOT EXECUTED 4262a: 42ab 003a clrl %a3@(58) <== NOT EXECUTED 4262e: 42ab 003e clrl %a3@(62) <== NOT EXECUTED 42632: 42ab 0042 clrl %a3@(66) <== NOT EXECUTED 42636: 42ab 0046 clrl %a3@(70) <== NOT EXECUTED 4263a: 42ab 004a clrl %a3@(74) <== NOT EXECUTED 4263e: 42ab 004e clrl %a3@(78) <== NOT EXECUTED 42642: 42ab 0052 clrl %a3@(82) <== NOT EXECUTED 42646: 42ab 0056 clrl %a3@(86) <== NOT EXECUTED 4264a: 42ab 005a clrl %a3@(90) <== NOT EXECUTED 4264e: 4878 0024 pea 24 <== NOT EXECUTED 42652: 42a7 clrl %sp@- <== NOT EXECUTED 42654: 486b 0078 pea %a3@(120) <== NOT EXECUTED 42658: 4e92 jsr %a2@ <== NOT EXECUTED 4265a: 4280 clrl %d0 <== NOT EXECUTED 4265c: 7201 moveq #1,%d1 <== NOT EXECUTED 4265e: 2740 00a0 movel %d0,%a3@(160) <== NOT EXECUTED 42662: 2741 00a4 movel %d1,%a3@(164) <== NOT EXECUTED 42666: 323c 330e movew #13070,%d1 <== NOT EXECUTED 4266a: 303c 1234 movew #4660,%d0 <== NOT EXECUTED 4266e: 3741 00a8 movew %d1,%a3@(168) <== NOT EXECUTED 42672: 3740 00ac movew %d0,%a3@(172) <== NOT EXECUTED 42676: 307c abcd moveaw #-21555,%a0 <== NOT EXECUTED 4267a: 323c e66d movew #-6547,%d1 <== NOT EXECUTED 4267e: 7005 moveq #5,%d0 <== NOT EXECUTED 42680: 3748 00aa movew %a0,%a3@(170) <== NOT EXECUTED 42684: 3741 00ae movew %d1,%a3@(174) <== NOT EXECUTED 42688: 3740 00b2 movew %d0,%a3@(178) <== NOT EXECUTED 4268c: 42ab 009c clrl %a3@(156) <== NOT EXECUTED 42690: 307c deec moveaw #-8468,%a0 <== NOT EXECUTED 42694: 4200 clrb %d0 <== NOT EXECUTED 42696: 42ab 00b6 clrl %a3@(182) <== NOT EXECUTED 4269a: 720b moveq #11,%d1 <== NOT EXECUTED 4269c: 3748 00b0 movew %a0,%a3@(176) <== NOT EXECUTED 426a0: 42ab 00ba clrl %a3@(186) <== NOT EXECUTED 426a4: 3741 00b4 movew %d1,%a3@(180) <== NOT EXECUTED 426a8: 42ab 00be clrl %a3@(190) <== NOT EXECUTED 426ac: 1740 00ce moveb %d0,%a3@(206) <== NOT EXECUTED 426b0: 42ab 00c2 clrl %a3@(194) <== NOT EXECUTED 426b4: 1740 00d6 moveb %d0,%a3@(214) <== NOT EXECUTED 426b8: 42ab 00c6 clrl %a3@(198) <== NOT EXECUTED 426bc: 42ab 00ca clrl %a3@(202) <== NOT EXECUTED 426c0: 42ab 00f2 clrl %a3@(242) <== NOT EXECUTED 426c4: 42ab 00f6 clrl %a3@(246) <== NOT EXECUTED 426c8: 42ab 00fa clrl %a3@(250) <== NOT EXECUTED 426cc: 42ab 00fe clrl %a3@(254) <== NOT EXECUTED 426d0: 42ab 0102 clrl %a3@(258) <== NOT EXECUTED 426d4: 42ab 0106 clrl %a3@(262) <== NOT EXECUTED 426d8: 42ab 010a clrl %a3@(266) <== NOT EXECUTED 426dc: 42ab 010e clrl %a3@(270) <== NOT EXECUTED 426e0: 42ab 0112 clrl %a3@(274) <== NOT EXECUTED 426e4: 42ab 0116 clrl %a3@(278) <== NOT EXECUTED 426e8: 42ab 00ee clrl %a3@(238) <== NOT EXECUTED 426ec: 42ab 0146 clrl %a3@(326) <== NOT EXECUTED 426f0: 42ab 014a clrl %a3@(330) <== NOT EXECUTED 426f4: 42ab 014e clrl %a3@(334) <== NOT EXECUTED 426f8: 42ab 0152 clrl %a3@(338) <== NOT EXECUTED 426fc: 42ab 02d2 clrl %a3@(722) <== NOT EXECUTED 42700: 42ab 01d2 clrl %a3@(466) <== NOT EXECUTED 42704: 42ab 02da clrl %a3@(730) <== NOT EXECUTED 42708: 42ab 02de clrl %a3@(734) <== NOT EXECUTED 4270c: 42ab 02e2 clrl %a3@(738) <== NOT EXECUTED 42710: 42ab 02e6 clrl %a3@(742) <== NOT EXECUTED 42714: 4878 0114 pea 114 <== NOT EXECUTED 42718: 42a7 clrl %sp@- <== NOT EXECUTED 4271a: 486b 02ea pea %a3@(746) <== NOT EXECUTED 4271e: 4e92 jsr %a2@ <== NOT EXECUTED creating_task->libc_reent = ptr; 42720: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 42724: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 4272a: 7001 moveq #1,%d0 <== NOT EXECUTED 4272c: 214b 0108 movel %a3,%a0@(264) <== NOT EXECUTED return true; } else return false; } 42730: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 42734: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 42738: 4e5e unlk %fp <== NOT EXECUTED 4273a: 4e75 rts 0004250c : rtems_extension libc_delete_hook( rtems_tcb *current_task, rtems_tcb *deleted_task ) { 4250c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 42510: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 42514: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 42518: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED /* * The reentrancy structure was allocated by newlib using malloc() */ if (current_task == deleted_task) { 4251c: b5c3 cmpal %d3,%a2 <== NOT EXECUTED 4251e: 6608 bnes 42528 <== NOT EXECUTED ptr = _REENT; 42520: 2439 0005 567c movel 5567c <_impure_ptr>,%d2 <== NOT EXECUTED 42526: 6004 bras 4252c <== NOT EXECUTED } else { ptr = deleted_task->libc_reent; 42528: 242a 0108 movel %a2@(264),%d2 <== NOT EXECUTED } if (ptr && ptr != &libc_global_reent) { 4252c: 4a82 tstl %d2 <== NOT EXECUTED 4252e: 6724 beqs 42554 <== NOT EXECUTED 42530: 0c82 0005 51f0 cmpil #348656,%d2 <== NOT EXECUTED 42536: 671c beqs 42554 <== NOT EXECUTED _reclaim_reent(ptr); */ /* * Just in case there are some buffers lying around. */ _fwalk(ptr, newlib_free_buffers); 42538: 4879 0004 256c pea 4256c <== NOT EXECUTED 4253e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42540: 4eb9 0004 b35a jsr 4b35a <_fwalk> <== NOT EXECUTED #if REENT_MALLOCED free(ptr); #else _Workspace_Free(ptr); 42546: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42548: 4eb9 0004 7dd8 jsr 47dd8 <_Workspace_Free> <== NOT EXECUTED 4254e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED #endif } deleted_task->libc_reent = NULL; 42554: 42aa 0108 clrl %a2@(264) <== NOT EXECUTED /* * Require the switch back to another task to install its own */ if ( current_task == deleted_task ) { 42558: b5c3 cmpal %d3,%a2 <== NOT EXECUTED 4255a: 6606 bnes 42562 <== NOT EXECUTED _REENT = 0; 4255c: 42b9 0005 567c clrl 5567c <_impure_ptr> <== NOT EXECUTED } } 42562: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 42568: 4e5e unlk %fp <== NOT EXECUTED 4256a: 4e75 rts 000424ec : struct _reent libc_global_reent __ATTRIBUTE_IMPURE_PTR__ = _REENT_INIT(libc_global_reent); void libc_init(void) { 424ec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _REENT = &libc_global_reent; _Thread_Set_libc_reent (&_REENT); } 424f0: 4e5e unlk %fp <== NOT EXECUTED struct _reent libc_global_reent __ATTRIBUTE_IMPURE_PTR__ = _REENT_INIT(libc_global_reent); void libc_init(void) { _REENT = &libc_global_reent; 424f2: 203c 0005 51f0 movel #348656,%d0 <== NOT EXECUTED 424f8: 23c0 0005 567c movel %d0,5567c <_impure_ptr> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Set_libc_reent ( struct _reent **libc_reent ) { _Thread_libc_reent = libc_reent; 424fe: 203c 0005 567c movel #349820,%d0 <== NOT EXECUTED 42504: 23c0 0005 6d2e movel %d0,56d2e <_Thread_libc_reent> <== NOT EXECUTED _Thread_Set_libc_reent (&_REENT); } 4250a: 4e75 rts 00042460 : extern void _wrapup_reent(struct _reent *); extern void _reclaim_reent(struct _reent *); void libc_wrapup(void) { 42460: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42464: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * In case RTEMS is already down, don't do this. It could be * dangerous. */ if (!_System_state_Is_up(_System_state_Get())) 42466: 7003 moveq #3,%d0 <== NOT EXECUTED 42468: b0b9 0005 6e36 cmpl 56e36 <_System_state_Current>,%d0 <== NOT EXECUTED 4246e: 6654 bnes 424c4 <== NOT EXECUTED /* * This was already done if the user called exit() directly . _wrapup_reent(0); */ if (_REENT != &libc_global_reent) { 42470: 203c 0005 51f0 movel #348656,%d0 <== NOT EXECUTED 42476: b0b9 0005 567c cmpl 5567c <_impure_ptr>,%d0 <== NOT EXECUTED 4247c: 6716 beqs 42494 <== NOT EXECUTED _wrapup_reent(&libc_global_reent); 4247e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42480: 4eb9 0004 bc28 jsr 4bc28 <_wrapup_reent> <== NOT EXECUTED /* Don't reclaim this one, just in case we do printfs * on the way out to ROM. */ _reclaim_reent(&libc_global_reent); #endif _REENT = &libc_global_reent; 42486: 588f addql #4,%sp <== NOT EXECUTED 42488: 203c 0005 51f0 movel #348656,%d0 <== NOT EXECUTED 4248e: 23c0 0005 567c movel %d0,5567c <_impure_ptr> <== NOT EXECUTED * * Should this be changed to do *all* file streams? * _fwalk (_REENT, fclose); */ fclose (stdin); 42494: 2079 0005 567c moveal 5567c <_impure_ptr>,%a0 <== NOT EXECUTED 4249a: 45f9 0004 ad8a lea 4ad8a ,%a2 <== NOT EXECUTED 424a0: 2f28 0004 movel %a0@(4),%sp@- <== NOT EXECUTED 424a4: 4e92 jsr %a2@ <== NOT EXECUTED fclose (stdout); 424a6: 2079 0005 567c moveal 5567c <_impure_ptr>,%a0 <== NOT EXECUTED 424ac: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 424b0: 4e92 jsr %a2@ <== NOT EXECUTED fclose (stderr); 424b2: 2079 0005 567c moveal 5567c <_impure_ptr>,%a0 <== NOT EXECUTED 424b8: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 424bc: 4e92 jsr %a2@ <== NOT EXECUTED 424be: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 424c4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 424c8: 4e5e unlk %fp <== NOT EXECUTED 424ca: 4e75 rts 0005bcbc : int link( const char *existing, const char *new ) { 5bcbc: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 5bcc0: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED /* * Get the node we are linking to. */ result = rtems_filesystem_evaluate_path( existing, 0, &existing_loc, true ); 5bcc4: 4878 0001 pea 1 <== NOT EXECUTED int link( const char *existing, const char *new ) { 5bcc8: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED /* * Get the node we are linking to. */ result = rtems_filesystem_evaluate_path( existing, 0, &existing_loc, true ); 5bccc: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5bcd0: 42a7 clrl %sp@- <== NOT EXECUTED 5bcd2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5bcd6: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( result != 0 ) 5bcdc: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5bce2: 4a80 tstl %d0 <== NOT EXECUTED 5bce4: 6600 0092 bnew 5bd78 <== NOT EXECUTED /* * Get the parent of the node we are creating. */ rtems_filesystem_get_start_loc( new, &i, &parent_loc ); 5bce8: 1212 moveb %a2@,%d1 <== NOT EXECUTED 5bcea: 1001 moveb %d1,%d0 <== NOT EXECUTED 5bcec: 49c0 extbl %d0 <== NOT EXECUTED 5bcee: 742f moveq #47,%d2 <== NOT EXECUTED 5bcf0: b480 cmpl %d0,%d2 <== NOT EXECUTED 5bcf2: 670c beqs 5bd00 <== NOT EXECUTED 5bcf4: 143c 005c moveb #92,%d2 <== NOT EXECUTED 5bcf8: b480 cmpl %d0,%d2 <== NOT EXECUTED 5bcfa: 6704 beqs 5bd00 <== NOT EXECUTED 5bcfc: 4a01 tstb %d1 <== NOT EXECUTED 5bcfe: 6626 bnes 5bd26 <== NOT EXECUTED 5bd00: 4878 0010 pea 10 <== NOT EXECUTED 5bd04: 2039 0007 d460 movel 7d460 ,%d0 <== NOT EXECUTED 5bd0a: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 5bd10: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5bd12: 486e ffdc pea %fp@(-36) <== NOT EXECUTED 5bd16: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED 5bd1c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5bd22: 7001 moveq #1,%d0 <== NOT EXECUTED 5bd24: 6020 bras 5bd46 <== NOT EXECUTED 5bd26: 4878 0010 pea 10 <== NOT EXECUTED 5bd2a: 2439 0007 d460 movel 7d460 ,%d2 <== NOT EXECUTED 5bd30: 5882 addql #4,%d2 <== NOT EXECUTED 5bd32: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5bd34: 486e ffdc pea %fp@(-36) <== NOT EXECUTED 5bd38: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED 5bd3e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5bd44: 4280 clrl %d0 <== NOT EXECUTED if ( !parent_loc.ops->evalformake_h ) { 5bd46: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 5bd4a: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 5bd4e: 4a88 tstl %a0 <== NOT EXECUTED 5bd50: 662c bnes 5bd7e <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5bd52: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5bd56: 4a88 tstl %a0 <== NOT EXECUTED 5bd58: 6710 beqs 5bd6a <== NOT EXECUTED 5bd5a: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5bd5e: 4a88 tstl %a0 <== NOT EXECUTED 5bd60: 6708 beqs 5bd6a <== NOT EXECUTED 5bd62: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5bd66: 4e90 jsr %a0@ <== NOT EXECUTED 5bd68: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5bd6a: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5bd70: 2040 moveal %d0,%a0 <== NOT EXECUTED 5bd72: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5bd78: 74ff moveq #-1,%d2 <== NOT EXECUTED 5bd7a: 6000 0116 braw 5be92 <== NOT EXECUTED } result = (*parent_loc.ops->evalformake_h)( &new[i], &parent_loc, &name_start ); 5bd7e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5bd82: 280e movel %fp,%d4 <== NOT EXECUTED 5bd84: 0684 ffff ffdc addil #-36,%d4 <== NOT EXECUTED 5bd8a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5bd8c: 4872 0800 pea %a2@(00000000,%d0:l) <== NOT EXECUTED 5bd90: 4e90 jsr %a0@ <== NOT EXECUTED if ( result != 0 ) { 5bd92: dffc 0000 000c addal #12,%sp <== NOT EXECUTED if ( !parent_loc.ops->evalformake_h ) { rtems_filesystem_freenode( &existing_loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*parent_loc.ops->evalformake_h)( &new[i], &parent_loc, &name_start ); 5bd98: 2400 movel %d0,%d2 <== NOT EXECUTED if ( result != 0 ) { 5bd9a: 6724 beqs 5bdc0 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5bd9c: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5bda0: 4a88 tstl %a0 <== NOT EXECUTED 5bda2: 6710 beqs 5bdb4 <== NOT EXECUTED 5bda4: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5bda8: 4a88 tstl %a0 <== NOT EXECUTED 5bdaa: 6708 beqs 5bdb4 <== NOT EXECUTED 5bdac: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5bdb0: 4e90 jsr %a0@ <== NOT EXECUTED 5bdb2: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( result ); 5bdb4: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5bdba: 2040 moveal %d0,%a0 <== NOT EXECUTED 5bdbc: 2082 movel %d2,%a0@ <== NOT EXECUTED 5bdbe: 60b8 bras 5bd78 <== NOT EXECUTED /* * Check to see if the caller is trying to link across file system * boundaries. */ if ( parent_loc.mt_entry != existing_loc.mt_entry ) { 5bdc0: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 5bdc4: b0ae ffe8 cmpl %fp@(-24),%d0 <== NOT EXECUTED 5bdc8: 6740 beqs 5be0a <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5bdca: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5bdce: 4a88 tstl %a0 <== NOT EXECUTED 5bdd0: 6710 beqs 5bde2 <== NOT EXECUTED 5bdd2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5bdd6: 4a88 tstl %a0 <== NOT EXECUTED 5bdd8: 6708 beqs 5bde2 <== NOT EXECUTED 5bdda: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5bdde: 4e90 jsr %a0@ <== NOT EXECUTED 5bde0: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &parent_loc ); 5bde2: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 5bde6: 4a88 tstl %a0 <== NOT EXECUTED 5bde8: 6710 beqs 5bdfa <== NOT EXECUTED 5bdea: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5bdee: 4a88 tstl %a0 <== NOT EXECUTED 5bdf0: 6708 beqs 5bdfa <== NOT EXECUTED 5bdf2: 486e ffdc pea %fp@(-36) <== NOT EXECUTED 5bdf6: 4e90 jsr %a0@ <== NOT EXECUTED 5bdf8: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EXDEV ); 5bdfa: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5be00: 2040 moveal %d0,%a0 <== NOT EXECUTED 5be02: 7012 moveq #18,%d0 <== NOT EXECUTED 5be04: 2080 movel %d0,%a0@ <== NOT EXECUTED 5be06: 6000 ff70 braw 5bd78 <== NOT EXECUTED } if ( !parent_loc.ops->link_h ) { 5be0a: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 5be0e: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED 5be12: 4a88 tstl %a0 <== NOT EXECUTED 5be14: 6634 bnes 5be4a <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5be16: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5be1a: 4a88 tstl %a0 <== NOT EXECUTED 5be1c: 6710 beqs 5be2e <== NOT EXECUTED 5be1e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5be22: 4a88 tstl %a0 <== NOT EXECUTED 5be24: 6708 beqs 5be2e <== NOT EXECUTED 5be26: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5be2a: 4e90 jsr %a0@ <== NOT EXECUTED 5be2c: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &parent_loc ); 5be2e: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 5be32: 4a88 tstl %a0 <== NOT EXECUTED 5be34: 6700 ff34 beqw 5bd6a <== NOT EXECUTED 5be38: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5be3c: 4a88 tstl %a0 <== NOT EXECUTED 5be3e: 6700 ff2a beqw 5bd6a <== NOT EXECUTED 5be42: 486e ffdc pea %fp@(-36) <== NOT EXECUTED 5be46: 6000 ff1e braw 5bd66 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*parent_loc.ops->link_h)( &existing_loc, &parent_loc, name_start ); 5be4a: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 5be4e: 260e movel %fp,%d3 <== NOT EXECUTED 5be50: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5be52: 0683 ffff ffec addil #-20,%d3 <== NOT EXECUTED 5be58: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5be5a: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5be5c: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); rtems_filesystem_freenode( &parent_loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*parent_loc.ops->link_h)( &existing_loc, &parent_loc, name_start ); 5be60: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5be62: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5be68: 4a88 tstl %a0 <== NOT EXECUTED 5be6a: 670e beqs 5be7a <== NOT EXECUTED 5be6c: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5be70: 4a88 tstl %a0 <== NOT EXECUTED 5be72: 6706 beqs 5be7a <== NOT EXECUTED 5be74: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5be76: 4e90 jsr %a0@ <== NOT EXECUTED 5be78: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &parent_loc ); 5be7a: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 5be7e: 4a88 tstl %a0 <== NOT EXECUTED 5be80: 6710 beqs 5be92 <== NOT EXECUTED 5be82: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5be86: 4a88 tstl %a0 <== NOT EXECUTED 5be88: 6708 beqs 5be92 <== NOT EXECUTED 5be8a: 486e ffdc pea %fp@(-36) <== NOT EXECUTED 5be8e: 4e90 jsr %a0@ <== NOT EXECUTED 5be90: 588f addql #4,%sp <== NOT EXECUTED return result; } 5be92: 2002 movel %d2,%d0 <== NOT EXECUTED 5be94: 4cee 041c ffcc moveml %fp@(-52),%d2-%d4/%a2 <== NOT EXECUTED 5be9a: 4e5e unlk %fp <== NOT EXECUTED 5be9c: 4e75 rts 0005325c : off_t lseek( int fd, off_t offset, int whence ) { 5325c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 53260: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 53264: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 53268: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 5326c: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_libio_t *iop; off_t old_offset; off_t status; rtems_libio_check_fd( fd ); 53270: b4b9 0005 50e8 cmpl 550e8 ,%d2 <== NOT EXECUTED 53276: 6422 bccs 5329a <== NOT EXECUTED iop = rtems_libio_iop( fd ); 53278: 2002 movel %d2,%d0 <== NOT EXECUTED 5327a: 2202 movel %d2,%d1 <== NOT EXECUTED 5327c: e588 lsll #2,%d0 <== NOT EXECUTED 5327e: e989 lsll #4,%d1 <== NOT EXECUTED 53280: 9280 subl %d0,%d1 <== NOT EXECUTED 53282: 2479 0005 6b3c moveal 56b3c ,%a2 <== NOT EXECUTED 53288: d282 addl %d2,%d1 <== NOT EXECUTED 5328a: e589 lsll #2,%d1 <== NOT EXECUTED 5328c: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_is_open(iop); 5328e: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 53292: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 53298: 660e bnes 532a8 <== NOT EXECUTED 5329a: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 532a0: 7209 moveq #9,%d1 <== NOT EXECUTED 532a2: 2040 moveal %d0,%a0 <== NOT EXECUTED 532a4: 2081 movel %d1,%a0@ <== NOT EXECUTED 532a6: 6056 bras 532fe <== NOT EXECUTED /* * Check as many errors as possible before touching iop->offset. */ if ( !iop->handlers->lseek_h ) 532a8: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 532ac: 4aa8 0014 tstl %a0@(20) <== NOT EXECUTED 532b0: 6610 bnes 532c2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 532b2: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 532b8: 2040 moveal %d0,%a0 <== NOT EXECUTED 532ba: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 532c0: 603c bras 532fe <== NOT EXECUTED /* * Now process the lseek(). */ old_offset = iop->offset; 532c2: 242a 0008 movel %a2@(8),%d2 <== NOT EXECUTED switch ( whence ) { 532c6: 7001 moveq #1,%d0 <== NOT EXECUTED 532c8: b089 cmpl %a1,%d0 <== NOT EXECUTED 532ca: 6710 beqs 532dc <== NOT EXECUTED 532cc: 7202 moveq #2,%d1 <== NOT EXECUTED 532ce: b289 cmpl %a1,%d1 <== NOT EXECUTED 532d0: 6714 beqs 532e6 <== NOT EXECUTED 532d2: 4a89 tstl %a1 <== NOT EXECUTED 532d4: 661c bnes 532f2 <== NOT EXECUTED case SEEK_SET: iop->offset = offset; 532d6: 2543 0008 movel %d3,%a2@(8) <== NOT EXECUTED 532da: 6026 bras 53302 <== NOT EXECUTED break; case SEEK_CUR: iop->offset += offset; 532dc: 2003 movel %d3,%d0 <== NOT EXECUTED 532de: d082 addl %d2,%d0 <== NOT EXECUTED 532e0: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED 532e4: 601c bras 53302 <== NOT EXECUTED break; case SEEK_END: iop->offset = iop->size + offset; 532e6: 2203 movel %d3,%d1 <== NOT EXECUTED 532e8: d2aa 0004 addl %a2@(4),%d1 <== NOT EXECUTED 532ec: 2541 0008 movel %d1,%a2@(8) <== NOT EXECUTED 532f0: 6010 bras 53302 <== NOT EXECUTED break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 532f2: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 532f8: 2040 moveal %d0,%a0 <== NOT EXECUTED 532fa: 7016 moveq #22,%d0 <== NOT EXECUTED 532fc: 2080 movel %d0,%a0@ <== NOT EXECUTED 532fe: 70ff moveq #-1,%d0 <== NOT EXECUTED 53300: 6020 bras 53322 <== NOT EXECUTED /* * At this time, handlers assume iop->offset has the desired * new offset. */ status = (*iop->handlers->lseek_h)( iop, offset, whence ); 53302: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 53306: 2f09 movel %a1,%sp@- <== NOT EXECUTED 53308: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5330a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5330c: 2068 0014 moveal %a0@(20),%a0 <== NOT EXECUTED 53310: 4e90 jsr %a0@ <== NOT EXECUTED if ( status == (off_t) -1 ) 53312: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 53318: 72ff moveq #-1,%d1 <== NOT EXECUTED 5331a: b280 cmpl %d0,%d1 <== NOT EXECUTED 5331c: 6604 bnes 53322 <== NOT EXECUTED iop->offset = old_offset; 5331e: 2542 0008 movel %d2,%a2@(8) <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 53322: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 53328: 4e5e unlk %fp <== NOT EXECUTED 5332a: 4e75 rts 0005bfac : int _STAT_NAME( const char *path, struct stat *buf ) { 5bfac: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5bfb0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5bfb2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5bfb4: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !buf ) 5bfb8: 660e bnes 5bfc8 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 5bfba: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5bfc0: 2040 moveal %d0,%a0 <== NOT EXECUTED 5bfc2: 700e moveq #14,%d0 <== NOT EXECUTED 5bfc4: 2080 movel %d0,%a0@ <== NOT EXECUTED 5bfc6: 6050 bras 5c018 <== NOT EXECUTED status = rtems_filesystem_evaluate_path( path, 0, &loc, _STAT_FOLLOW_LINKS ); 5bfc8: 42a7 clrl %sp@- <== NOT EXECUTED 5bfca: 260e movel %fp,%d3 <== NOT EXECUTED 5bfcc: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 5bfd2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5bfd4: 42a7 clrl %sp@- <== NOT EXECUTED 5bfd6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5bfda: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( status != 0 ) 5bfe0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5bfe6: 4a80 tstl %d0 <== NOT EXECUTED 5bfe8: 662e bnes 5c018 <== NOT EXECUTED return -1; if ( !loc.handlers->fstat_h ){ 5bfea: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5bfee: 4aa8 0018 tstl %a0@(24) <== NOT EXECUTED 5bff2: 6628 bnes 5c01c <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5bff4: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5bff8: 4a88 tstl %a0 <== NOT EXECUTED 5bffa: 670e beqs 5c00a <== NOT EXECUTED 5bffc: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c000: 4a88 tstl %a0 <== NOT EXECUTED 5c002: 6706 beqs 5c00a <== NOT EXECUTED 5c004: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c006: 4e90 jsr %a0@ <== NOT EXECUTED 5c008: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5c00a: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5c010: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c012: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5c018: 74ff moveq #-1,%d2 <== NOT EXECUTED 5c01a: 603a bras 5c056 <== NOT EXECUTED /* * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( buf, 0, sizeof(struct stat) ); 5c01c: 4878 004a pea 4a <== NOT EXECUTED 5c020: 42a7 clrl %sp@- <== NOT EXECUTED 5c022: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c024: 4eb9 0006 a54c jsr 6a54c <== NOT EXECUTED status = (*loc.handlers->fstat_h)( &loc, buf ); 5c02a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c02c: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5c030: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c032: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 5c036: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c038: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED * versions of stat don't have to. */ memset( buf, 0, sizeof(struct stat) ); status = (*loc.handlers->fstat_h)( &loc, buf ); 5c03c: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c03e: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5c044: 4a88 tstl %a0 <== NOT EXECUTED 5c046: 670e beqs 5c056 <== NOT EXECUTED 5c048: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c04c: 4a88 tstl %a0 <== NOT EXECUTED 5c04e: 6706 beqs 5c056 <== NOT EXECUTED 5c050: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c052: 4e90 jsr %a0@ <== NOT EXECUTED 5c054: 588f addql #4,%sp <== NOT EXECUTED return status; } 5c056: 2002 movel %d2,%d0 <== NOT EXECUTED 5c058: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 5c05c: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 5c060: 4e5e unlk %fp <== NOT EXECUTED 5c062: 4e75 rts 000492b0 : size_t size ) { void *return_this; MSBUMP(malloc_calls, 1); 492b0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 492b4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 492b6: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 492ba: 52b9 0005 6ba4 addql #1,56ba4 <== NOT EXECUTED 492c0: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * If some free's have been deferred, then do them now. */ malloc_deferred_frees_process(); 492c2: 4eb9 0004 927a jsr 4927a <== NOT EXECUTED /* * Validate the parameters */ if ( !size ) 492c8: 4a83 tstl %d3 <== NOT EXECUTED 492ca: 6778 beqs 49344 <== NOT EXECUTED return (void *) 0; /* * Do not attempt to allocate memory if not in correct system state. */ if ( _System_state_Is_up(_System_state_Get()) && 492cc: 7003 moveq #3,%d0 <== NOT EXECUTED 492ce: b0b9 0005 6e36 cmpl 56e36 <_System_state_Current>,%d0 <== NOT EXECUTED 492d4: 660a bnes 492e0 <== NOT EXECUTED 492d6: 4eb9 0004 9220 jsr 49220 <== NOT EXECUTED 492dc: 4a00 tstb %d0 <== NOT EXECUTED 492de: 6764 beqs 49344 <== NOT EXECUTED * Try to give a segment in the current heap if there is not * enough space then try to grow the heap. * If this fails then return a NULL pointer. */ return_this = _Protected_heap_Allocate( &RTEMS_Malloc_Heap, size ); 492e0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 492e2: 4879 0005 6b48 pea 56b48 <== NOT EXECUTED 492e8: 4eb9 0004 9e64 jsr 49e64 <_Protected_heap_Allocate> <== NOT EXECUTED if ( !return_this ) { 492ee: 508f addql #8,%sp <== NOT EXECUTED * Try to give a segment in the current heap if there is not * enough space then try to grow the heap. * If this fails then return a NULL pointer. */ return_this = _Protected_heap_Allocate( &RTEMS_Malloc_Heap, size ); 492f0: 2400 movel %d0,%d2 <== NOT EXECUTED if ( !return_this ) { 492f2: 6628 bnes 4931c <== NOT EXECUTED if (rtems_malloc_sbrk_helpers) 492f4: 2079 0005 5b28 moveal 55b28 ,%a0 <== NOT EXECUTED 492fa: 4a88 tstl %a0 <== NOT EXECUTED 492fc: 670e beqs 4930c <== NOT EXECUTED return_this = (*rtems_malloc_sbrk_helpers->extend)( size ); 492fe: 2f03 movel %d3,%sp@- <== NOT EXECUTED 49300: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 49304: 4e90 jsr %a0@ <== NOT EXECUTED if ( !return_this ) { 49306: 588f addql #4,%sp <== NOT EXECUTED 49308: 4a80 tstl %d0 <== NOT EXECUTED 4930a: 660e bnes 4931a <== NOT EXECUTED errno = ENOMEM; 4930c: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 49312: 2040 moveal %d0,%a0 <== NOT EXECUTED 49314: 700c moveq #12,%d0 <== NOT EXECUTED 49316: 2080 movel %d0,%a0@ <== NOT EXECUTED 49318: 602c bras 49346 <== NOT EXECUTED return (void *) 0; 4931a: 2400 movel %d0,%d2 <== NOT EXECUTED } /* * If the user wants us to dirty the allocated memory, then do it. */ if ( rtems_malloc_dirty_helper ) 4931c: 2079 0005 5b2c moveal 55b2c ,%a0 <== NOT EXECUTED 49322: 4a88 tstl %a0 <== NOT EXECUTED 49324: 6708 beqs 4932e <== NOT EXECUTED (*rtems_malloc_dirty_helper)( return_this, size ); 49326: 2f03 movel %d3,%sp@- <== NOT EXECUTED 49328: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4932a: 4e90 jsr %a0@ <== NOT EXECUTED 4932c: 508f addql #8,%sp <== NOT EXECUTED /* * If configured, update the statistics */ if ( rtems_malloc_statistics_helpers ) 4932e: 2079 0005 5b24 moveal 55b24 ,%a0 <== NOT EXECUTED 49334: 4a88 tstl %a0 <== NOT EXECUTED 49336: 670e beqs 49346 <== NOT EXECUTED (*rtems_malloc_statistics_helpers->at_malloc)(return_this); 49338: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4933a: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 4933e: 4e90 jsr %a0@ <== NOT EXECUTED 49340: 588f addql #4,%sp <== NOT EXECUTED 49342: 6002 bras 49346 <== NOT EXECUTED 49344: 4282 clrl %d2 <== NOT EXECUTED if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif return return_this; } 49346: 2002 movel %d2,%d0 <== NOT EXECUTED 49348: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4934c: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 49350: 4e5e unlk %fp <== NOT EXECUTED 49352: 4e75 rts 00049260 : } void malloc_deferred_free( void *pointer ) { 49260: 4e56 0000 linkw %fp,#0 <== 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 ); 49264: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49268: 4879 0005 6ec6 pea 56ec6 <== NOT EXECUTED 4926e: 4eb9 0004 58a8 jsr 458a8 <_Chain_Append> <== NOT EXECUTED 49274: 508f addql #8,%sp <== NOT EXECUTED rtems_chain_append(&RTEMS_Malloc_GC_list, (rtems_chain_node *)pointer); } 49276: 4e5e unlk %fp <== NOT EXECUTED 49278: 4e75 rts 00049240 : void malloc_deferred_frees_initialize(void) { 49240: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 49244: 41f9 0005 6ec6 lea 56ec6 ,%a0 <== NOT EXECUTED rtems_chain_initialize_empty(&RTEMS_Malloc_GC_list); } 4924a: 4e5e unlk %fp <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4924c: 23c8 0005 6ece movel %a0,56ece <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 49252: 20bc 0005 6eca movel #356042,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 49258: 42b9 0005 6eca clrl 56eca <== NOT EXECUTED 4925e: 4e75 rts 0004927a : { rtems_chain_initialize_empty(&RTEMS_Malloc_GC_list); } void malloc_deferred_frees_process(void) { 4927a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4927e: 2f0b movel %a3,%sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get( rtems_chain_control *the_chain ) { return _Chain_Get( the_chain ); 49280: 47f9 0004 9a5c lea 49a5c <_Chain_Get>,%a3 <== NOT EXECUTED 49286: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * If some free's have been deferred, then do them now. */ while ((to_be_freed = rtems_chain_get(&RTEMS_Malloc_GC_list)) != NULL) free(to_be_freed); 49288: 45f9 0004 8dc4 lea 48dc4 ,%a2 <== NOT EXECUTED 4928e: 6006 bras 49296 <== NOT EXECUTED 49290: 2f00 movel %d0,%sp@- <== NOT EXECUTED 49292: 4e92 jsr %a2@ <== NOT EXECUTED 49294: 588f addql #4,%sp <== NOT EXECUTED 49296: 4879 0005 6ec6 pea 56ec6 <== NOT EXECUTED 4929c: 4e93 jsr %a3@ <== NOT EXECUTED rtems_chain_node *to_be_freed; /* * If some free's have been deferred, then do them now. */ while ((to_be_freed = rtems_chain_get(&RTEMS_Malloc_GC_list)) != NULL) 4929e: 588f addql #4,%sp <== NOT EXECUTED 492a0: 4a80 tstl %d0 <== NOT EXECUTED 492a2: 66ec bnes 49290 <== NOT EXECUTED free(to_be_freed); } 492a4: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 492a8: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 492ac: 4e5e unlk %fp <== NOT EXECUTED 492ae: 4e75 rts 00045834 : /* * Find amount of free heap remaining */ size_t malloc_free_space( void ) { 45834: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED Heap_Information info; _Protected_heap_Get_free_information( &RTEMS_Malloc_Heap, &info ); 45838: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 4583c: 4879 0009 24f8 pea 924f8 <== NOT EXECUTED 45842: 4eb9 0004 a458 jsr 4a458 <_Protected_heap_Get_free_information> <== NOT EXECUTED return (size_t) info.largest; } 45848: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 4584c: 4e5e unlk %fp <== NOT EXECUTED 4584e: 4e75 rts 0005c080 : */ int malloc_info( Heap_Information_block *the_info ) { 5c080: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5c084: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !the_info ) 5c088: 6604 bnes 5c08e <== NOT EXECUTED 5c08a: 70ff moveq #-1,%d0 <== NOT EXECUTED 5c08c: 6012 bras 5c0a0 <== NOT EXECUTED return -1; _Protected_heap_Get_information( &RTEMS_Malloc_Heap, the_info ); 5c08e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c090: 4879 0009 24f8 pea 924f8 <== NOT EXECUTED 5c096: 4eb9 0005 df5c jsr 5df5c <_Protected_heap_Get_information> <== NOT EXECUTED 5c09c: 508f addql #8,%sp <== NOT EXECUTED 5c09e: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5c0a0: 4e5e unlk %fp <== NOT EXECUTED 5c0a2: 4e75 rts 00049220 : rtems_chain_control RTEMS_Malloc_GC_list; bool malloc_is_system_state_OK(void) { if ( _Thread_Dispatch_disable_level > 0 ) 49220: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED #include "malloc_p.h" rtems_chain_control RTEMS_Malloc_GC_list; bool malloc_is_system_state_OK(void) { 49226: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( _Thread_Dispatch_disable_level > 0 ) 4922a: 4a80 tstl %d0 <== NOT EXECUTED 4922c: 6704 beqs 49232 <== NOT EXECUTED 4922e: 4200 clrb %d0 <== NOT EXECUTED 49230: 600a bras 4923c <== NOT EXECUTED return false; if ( _ISR_Nest_level > 0 ) 49232: 2039 0005 6d42 movel 56d42 <_ISR_Nest_level>,%d0 <== NOT EXECUTED 49238: 57c0 seq %d0 <== NOT EXECUTED 4923a: 4480 negl %d0 <== NOT EXECUTED return false; return true; } 4923c: 4e5e unlk %fp <== NOT EXECUTED 4923e: 4e75 rts 000447e8 : #ifdef RTEMS_NEWLIB #include "malloc_p.h" void malloc_report_statistics(void) { 447e8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED malloc_report_statistics_with_plugin( NULL, printk_plugin ); 447ec: 4879 0004 5248 pea 45248 <== NOT EXECUTED 447f2: 42a7 clrl %sp@- <== NOT EXECUTED 447f4: 4eb9 0004 4800 jsr 44800 <== NOT EXECUTED 447fa: 508f addql #8,%sp <== NOT EXECUTED } 447fc: 4e5e unlk %fp <== NOT EXECUTED 447fe: 4e75 rts 0005c0a4 : void malloc_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 5c0a4: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5c0a8: 48d7 04fc moveml %d2-%d7/%a2,%sp@ <== NOT EXECUTED s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; (*print)( 5c0ac: 2c39 0009 2568 movel 92568 ,%d6 <== NOT EXECUTED 5c0b2: 2006 movel %d6,%d0 <== NOT EXECUTED rtems_malloc_statistics_t *s; uint32_t allocated; s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; 5c0b4: 2a39 0009 2570 movel 92570 ,%d5 <== NOT EXECUTED 5c0ba: 2639 0009 2574 movel 92574 ,%d3 <== NOT EXECUTED (*print)( 5c0c0: e988 lsll #4,%d0 <== NOT EXECUTED rtems_malloc_statistics_t *s; uint32_t allocated; s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; 5c0c2: 2239 0009 2578 movel 92578 ,%d1 <== NOT EXECUTED (*print)( 5c0c8: 2240 moveal %d0,%a1 <== NOT EXECUTED 5c0ca: 7016 moveq #22,%d0 <== NOT EXECUTED rtems_malloc_statistics_t *s; uint32_t allocated; s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; 5c0cc: 2e05 movel %d5,%d7 <== NOT EXECUTED (*print)( 5c0ce: e1ab lsll %d0,%d3 <== NOT EXECUTED rtems_malloc_statistics_t *s; uint32_t allocated; s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; 5c0d0: 9e81 subl %d1,%d7 <== NOT EXECUTED 5c0d2: 2839 0009 256c movel 9256c ,%d4 <== NOT EXECUTED (*print)( 5c0d8: 103c 000a moveb #10,%d0 <== NOT EXECUTED 5c0dc: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 5c0de: 103c 0016 moveb #22,%d0 <== NOT EXECUTED 5c0e2: 8681 orl %d1,%d3 <== NOT EXECUTED 5c0e4: e1ac lsll %d0,%d4 <== NOT EXECUTED 5c0e6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c0e8: 103c 000a moveb #10,%d0 <== NOT EXECUTED 5c0ec: e0ad lsrl %d0,%d5 <== NOT EXECUTED 5c0ee: 2439 0009 2550 movel 92550 ,%d2 <== NOT EXECUTED 5c0f4: 41f1 6c00 lea %a1@(00000000,%d6:l:4),%a0 <== NOT EXECUTED 5c0f8: 8885 orl %d5,%d4 <== NOT EXECUTED 5c0fa: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5c0fc: 41f0 8c00 lea %a0@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 5c100: 2008 movel %a0,%d0 <== NOT EXECUTED 5c102: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 5c106: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c108: 700a moveq #10,%d0 <== NOT EXECUTED 5c10a: e0ae lsrl %d0,%d6 <== NOT EXECUTED 5c10c: 2007 movel %d7,%d0 <== NOT EXECUTED 5c10e: e988 lsll #4,%d0 <== NOT EXECUTED 5c110: 2240 moveal %d0,%a1 <== NOT EXECUTED 5c112: 41f1 7c00 lea %a1@(00000000,%d7:l:4),%a0 <== NOT EXECUTED 5c116: 2f06 movel %d6,%sp@- <== NOT EXECUTED 5c118: 41f0 8c00 lea %a0@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 5c11c: 2008 movel %a0,%d0 <== NOT EXECUTED 5c11e: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 5c122: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c124: 700a moveq #10,%d0 <== NOT EXECUTED 5c126: e0af lsrl %d0,%d7 <== NOT EXECUTED 5c128: 2f07 movel %d7,%sp@- <== NOT EXECUTED 5c12a: e0aa lsrl %d0,%d2 <== NOT EXECUTED void malloc_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 5c12c: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; (*print)( 5c130: 2f02 movel %d2,%sp@- <== NOT EXECUTED void malloc_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 5c132: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; (*print)( 5c136: 4879 0007 a5bb pea 7a5bb <== NOT EXECUTED 5c13c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c13e: 4e92 jsr %a2@ <== NOT EXECUTED s->max_depth / 1024, (s->max_depth * 100) / s->space_available, (uint32_t) (s->lifetime_allocated / 1024), (uint32_t) (s->lifetime_freed / 1024) ); (*print)( 5c140: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 5c146: 2eb9 0009 2564 movel 92564 ,%sp@ <== NOT EXECUTED 5c14c: 2f39 0009 2560 movel 92560 ,%sp@- <== NOT EXECUTED 5c152: 2f39 0009 255c movel 9255c ,%sp@- <== NOT EXECUTED 5c158: 2f39 0009 2554 movel 92554 ,%sp@- <== NOT EXECUTED 5c15e: 4879 0007 a61d pea 7a61d <== NOT EXECUTED 5c164: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c166: 4e92 jsr %a2@ <== NOT EXECUTED 5c168: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED s->malloc_calls, s->free_calls, s->realloc_calls, s->calloc_calls ); } 5c16e: 4cee 04fc ffe4 moveml %fp@(-28),%d2-%d7/%a2 <== NOT EXECUTED 5c174: 4e5e unlk %fp <== NOT EXECUTED 5c176: 4e75 rts 000448d4 : #include "malloc_p.h" #include void malloc_walk(size_t source, size_t printf_enabled) { 448d4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Protected_heap_Walk( &RTEMS_Malloc_Heap, source, printf_enabled ); 448d8: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 448dc: 56c0 sne %d0 <== NOT EXECUTED 448de: 49c0 extbl %d0 <== NOT EXECUTED 448e0: 4480 negl %d0 <== NOT EXECUTED 448e2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 448e4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 448e8: 4879 0005 a4cc pea 5a4cc <== NOT EXECUTED 448ee: 4eb9 0004 97c8 jsr 497c8 <_Protected_heap_Walk> <== NOT EXECUTED 448f4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 448fa: 4e5e unlk %fp <== NOT EXECUTED 448fc: 4e75 rts <== NOT EXECUTED ... 00060350 : */ int memfile_blocks_allocated = 0; void *memfile_alloc_block(void) { 60350: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED void *memory; memory = (void *)calloc(1, IMFS_MEMFILE_BYTES_PER_BLOCK); 60354: 2f39 0007 f028 movel 7f028 ,%sp@- <== NOT EXECUTED 6035a: 4878 0001 pea 1 <== NOT EXECUTED 6035e: 4eb9 0004 4e18 jsr 44e18 <== NOT EXECUTED if ( memory ) 60364: 508f addql #8,%sp <== NOT EXECUTED 60366: 4a80 tstl %d0 <== NOT EXECUTED 60368: 6706 beqs 60370 <== NOT EXECUTED memfile_blocks_allocated++; 6036a: 52b9 0009 174c addql #1,9174c <== NOT EXECUTED return memory; } 60370: 4e5e unlk %fp <== NOT EXECUTED 60372: 4e75 rts 000606b2 : return memfile_check_rmnod( the_jnode ); } int memfile_check_rmnod( IMFS_jnode_t *the_jnode ){ 606b2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 606b6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 606b8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED /* * The file cannot be open and the link must be less than 1 to free. */ if ( !rtems_libio_is_file_open( the_jnode ) && (the_jnode->st_nlink < 1) ) { 606bc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 606be: 4eb9 0004 5576 jsr 45576 <== NOT EXECUTED 606c4: 588f addql #4,%sp <== NOT EXECUTED 606c6: 4a80 tstl %d0 <== NOT EXECUTED 606c8: 6632 bnes 606fc <== NOT EXECUTED 606ca: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 606ce: 662c bnes 606fc <== NOT EXECUTED /* * Is the rtems_filesystem_current is this node? */ if ( rtems_filesystem_current.node_access == the_jnode ) 606d0: 2079 0007 d460 moveal 7d460 ,%a0 <== NOT EXECUTED 606d6: b5e8 0004 cmpal %a0@(4),%a2 <== NOT EXECUTED 606da: 6604 bnes 606e0 <== NOT EXECUTED rtems_filesystem_current.node_access = NULL; 606dc: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED /* * Free memory associated with a memory file. */ if (the_jnode->type != IMFS_LINEAR_FILE) 606e0: 7006 moveq #6,%d0 <== NOT EXECUTED 606e2: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 606e6: 670a beqs 606f2 <== NOT EXECUTED IMFS_memfile_remove( the_jnode ); 606e8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 606ea: 4eb9 0006 0598 jsr 60598 <== NOT EXECUTED 606f0: 588f addql #4,%sp <== NOT EXECUTED free( the_jnode ); 606f2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 606f4: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 606fa: 588f addql #4,%sp <== NOT EXECUTED } return 0; } 606fc: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 60700: 4e5e unlk %fp <== NOT EXECUTED 60702: 4280 clrl %d0 <== NOT EXECUTED 60704: 4e75 rts 00060752 : */ int memfile_close( rtems_libio_t *iop ) { 60752: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 60756: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; if (iop->flags & LIBIO_FLAGS_APPEND) 6075a: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED rtems_libio_t *iop ) { IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 6075e: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED if (iop->flags & LIBIO_FLAGS_APPEND) 60762: 0280 0000 0200 andil #512,%d0 <== NOT EXECUTED 60768: 6706 beqs 60770 <== NOT EXECUTED iop->offset = the_jnode->info.file.size; 6076a: 2169 004c 0008 movel %a1@(76),%a0@(8) <== NOT EXECUTED memfile_check_rmnod( the_jnode ); 60770: 2f09 movel %a1,%sp@- <== NOT EXECUTED 60772: 4eb9 0006 06b2 jsr 606b2 <== NOT EXECUTED return 0; } 60778: 4e5e unlk %fp <== NOT EXECUTED 6077a: 4280 clrl %d0 <== NOT EXECUTED 6077c: 4e75 rts 00060336 : */ void memfile_free_block( void *memory ) { 60336: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if 0 fprintf(stdout, "(d %p) ", memory ); fflush(stdout); #endif free(memory); 6033a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 6033e: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED memfile_blocks_allocated--; 60344: 588f addql #4,%sp <== NOT EXECUTED 60346: 53b9 0009 174c subql #1,9174c <== NOT EXECUTED } 6034c: 4e5e unlk %fp <== NOT EXECUTED 6034e: 4e75 rts 00060534 : void memfile_free_blocks_in_table( block_p **block_table, int entries ) { 60534: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 60538: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 6053c: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( block_table ); 60540: 4a8b tstl %a3 <== NOT EXECUTED 60542: 661c bnes 60560 <== NOT EXECUTED 60544: 4879 0007 a83e pea 7a83e <== NOT EXECUTED 6054a: 4879 0007 a925 pea 7a925 <__func__.5678> <== NOT EXECUTED 60550: 4878 01b1 pea 1b1 <== NOT EXECUTED 60554: 4879 0007 a7d1 pea 7a7d1 <== NOT EXECUTED 6055a: 4eb9 0005 a790 jsr 5a790 <__assert_func> <== NOT EXECUTED 60560: 2453 moveal %a3@,%a2 <== NOT EXECUTED 60562: 4282 clrl %d2 <== NOT EXECUTED b = *block_table; for ( i=0 ; i,%a4 <== NOT EXECUTED 6056a: 6010 bras 6057c <== NOT EXECUTED */ b = *block_table; for ( i=0 ; i <== NOT EXECUTED memfile_free_block( b[i] ); 60570: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60572: 4e94 jsr %a4@ <== NOT EXECUTED b[i] = 0; 60574: 588f addql #4,%sp <== NOT EXECUTED 60576: 4292 clrl %a2@ <== NOT EXECUTED * Now go through all the slots in the table and free the memory. */ b = *block_table; for ( i=0 ; i <== NOT EXECUTED /* * Now that all the blocks in the block table are free, we can * free the block table itself. */ memfile_free_block( *block_table ); 60582: 2f13 movel %a3@,%sp@- <== NOT EXECUTED 60584: 4eb9 0006 0336 jsr 60336 <== NOT EXECUTED *block_table = 0; 6058a: 4293 clrl %a3@ <== NOT EXECUTED 6058c: 588f addql #4,%sp <== NOT EXECUTED } 6058e: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 60594: 4e5e unlk %fp <== NOT EXECUTED 60596: 4e75 rts 000608e2 : int memfile_ftruncate( rtems_libio_t *iop, off_t length ) { 608e2: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 608e6: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 608ea: 2f0a movel %a2,%sp@- <== NOT EXECUTED 608ec: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 608f0: 2468 002c moveal %a0@(44),%a2 <== NOT EXECUTED * POSIX 1003.1b does not specify what happens if you truncate a file * and the new length is greater than the current size. We treat this * as an extend operation. */ if ( length > the_jnode->info.file.size ) 608f4: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 608f8: 6f0e bles 60908 <== NOT EXECUTED return IMFS_memfile_extend( the_jnode, length ); 608fa: 2f00 movel %d0,%sp@- <== NOT EXECUTED 608fc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 608fe: 4eb9 0006 07fc jsr 607fc <== NOT EXECUTED 60904: 508f addql #8,%sp <== NOT EXECUTED 60906: 601e bras 60926 <== NOT EXECUTED * The in-memory files do not currently reclaim memory until the file is * deleted. So we leave the previously allocated blocks in place for * future use and just set the length. */ the_jnode->info.file.size = length; 60908: 2540 004c movel %d0,%a2@(76) <== NOT EXECUTED iop->size = the_jnode->info.file.size; IMFS_update_atime( the_jnode ); 6090c: 42a7 clrl %sp@- <== NOT EXECUTED 6090e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED * deleted. So we leave the previously allocated blocks in place for * future use and just set the length. */ the_jnode->info.file.size = length; iop->size = the_jnode->info.file.size; 60912: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED IMFS_update_atime( the_jnode ); 60916: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 6091c: 508f addql #8,%sp <== NOT EXECUTED 6091e: 4280 clrl %d0 <== NOT EXECUTED 60920: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return 0; } 60926: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 6092a: 4e5e unlk %fp <== NOT EXECUTED 6092c: 4e75 rts 0006032c : int memfile_ioctl( rtems_libio_t *iop, uint32_t command, void *buffer ) { 6032c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; return 0; } 60330: 4e5e unlk %fp <== NOT EXECUTED 60332: 4280 clrl %d0 <== NOT EXECUTED 60334: 4e75 rts 0006092e : off_t memfile_lseek( rtems_libio_t *iop, off_t offset, int whence ) { 6092e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 60932: 2f0b movel %a3,%sp@- <== NOT EXECUTED 60934: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 60938: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 6093a: 246b 002c moveal %a3@(44),%a2 <== NOT EXECUTED if (the_jnode->type == IMFS_LINEAR_FILE) { 6093e: 7006 moveq #6,%d0 <== NOT EXECUTED 60940: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 60944: 6610 bnes 60956 <== NOT EXECUTED if (iop->offset > the_jnode->info.linearfile.size) 60946: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 6094a: b0ab 0008 cmpl %a3@(8),%d0 <== NOT EXECUTED 6094e: 6c2e bges 6097e <== NOT EXECUTED iop->offset = the_jnode->info.linearfile.size; 60950: 2740 0008 movel %d0,%a3@(8) <== NOT EXECUTED 60954: 6028 bras 6097e <== NOT EXECUTED } else { /* Must be a block file (IMFS_MEMORY_FILE). */ if (IMFS_memfile_extend( the_jnode, iop->offset )) 60956: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 6095a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6095c: 4eb9 0006 07fc jsr 607fc <== NOT EXECUTED 60962: 508f addql #8,%sp <== NOT EXECUTED 60964: 4a80 tstl %d0 <== NOT EXECUTED 60966: 6710 beqs 60978 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 60968: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 6096e: 2040 moveal %d0,%a0 <== NOT EXECUTED 60970: 701c moveq #28,%d0 <== NOT EXECUTED 60972: 2080 movel %d0,%a0@ <== NOT EXECUTED 60974: 70ff moveq #-1,%d0 <== NOT EXECUTED 60976: 600a bras 60982 <== NOT EXECUTED iop->size = the_jnode->info.file.size; 60978: 276a 004c 0004 movel %a2@(76),%a3@(4) <== NOT EXECUTED } return iop->offset; 6097e: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED } 60982: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 60986: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 6098a: 4e5e unlk %fp <== NOT EXECUTED 6098c: 4e75 rts 00060ba2 : rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) { 60ba2: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 60ba6: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 60baa: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED the_jnode = iop->file_info; /* * Perform 'copy on write' for linear files */ if ((iop->flags & (LIBIO_FLAGS_WRITE | LIBIO_FLAGS_APPEND)) 60bae: 202b 000c movel %a3@(12),%d0 <== NOT EXECUTED uint32_t mode ) { IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 60bb2: 246b 002c moveal %a3@(44),%a2 <== NOT EXECUTED /* * Perform 'copy on write' for linear files */ if ((iop->flags & (LIBIO_FLAGS_WRITE | LIBIO_FLAGS_APPEND)) 60bb6: 0280 0000 0204 andil #516,%d0 <== NOT EXECUTED 60bbc: 6748 beqs 60c06 <== NOT EXECUTED 60bbe: 7006 moveq #6,%d0 <== NOT EXECUTED 60bc0: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 60bc4: 6640 bnes 60c06 <== NOT EXECUTED && (the_jnode->type == IMFS_LINEAR_FILE)) { uint32_t count = the_jnode->info.linearfile.size; 60bc6: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED const unsigned char *buffer = the_jnode->info.linearfile.direct; 60bca: 222a 0050 movel %a2@(80),%d1 <== NOT EXECUTED the_jnode->type = IMFS_MEMORY_FILE; 60bce: 7405 moveq #5,%d2 <== NOT EXECUTED 60bd0: 2542 0048 movel %d2,%a2@(72) <== NOT EXECUTED the_jnode->info.file.size = 0; 60bd4: 42aa 004c clrl %a2@(76) <== NOT EXECUTED the_jnode->info.file.indirect = 0; 60bd8: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_jnode->info.file.doubly_indirect = 0; 60bdc: 42aa 0054 clrl %a2@(84) <== NOT EXECUTED the_jnode->info.file.triply_indirect = 0; 60be0: 42aa 0058 clrl %a2@(88) <== NOT EXECUTED if ((count != 0) 60be4: 4a80 tstl %d0 <== NOT EXECUTED 60be6: 671e beqs 60c06 <== NOT EXECUTED 60be8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60bea: 2f01 movel %d1,%sp@- <== NOT EXECUTED 60bec: 42a7 clrl %sp@- <== NOT EXECUTED 60bee: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60bf0: 4eb9 0006 098e jsr 6098e <== NOT EXECUTED 60bf6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 60bfc: 72ff moveq #-1,%d1 <== NOT EXECUTED 60bfe: b280 cmpl %d0,%d1 <== NOT EXECUTED 60c00: 6604 bnes 60c06 <== NOT EXECUTED 60c02: 70ff moveq #-1,%d0 <== NOT EXECUTED 60c04: 601a bras 60c20 <== NOT EXECUTED && (IMFS_memfile_write(the_jnode, 0, buffer, count) == -1)) return -1; } if (iop->flags & LIBIO_FLAGS_APPEND) 60c06: 202b 000c movel %a3@(12),%d0 <== NOT EXECUTED 60c0a: 0280 0000 0200 andil #512,%d0 <== NOT EXECUTED 60c10: 6706 beqs 60c18 <== NOT EXECUTED iop->offset = the_jnode->info.file.size; 60c12: 276a 004c 0008 movel %a2@(76),%a3@(8) <== NOT EXECUTED iop->size = the_jnode->info.file.size; 60c18: 4280 clrl %d0 <== NOT EXECUTED 60c1a: 276a 004c 0004 movel %a2@(76),%a3@(4) <== NOT EXECUTED return 0; } 60c20: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 60c26: 4e5e unlk %fp <== NOT EXECUTED 60c28: 4e75 rts 00060e34 : ssize_t memfile_read( rtems_libio_t *iop, void *buffer, size_t count ) { 60e34: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; return IMFS_memfile_read( the_jnode, iop->offset, buffer, count ); 60e38: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED ssize_t memfile_read( rtems_libio_t *iop, void *buffer, size_t count ) { 60e3c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; return IMFS_memfile_read( the_jnode, iop->offset, buffer, count ); 60e40: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 60e44: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 60e48: 2f28 002c movel %a0@(44),%sp@- <== NOT EXECUTED 60e4c: 4eb9 0006 0c2a jsr 60c2a <== NOT EXECUTED } 60e52: 4e5e unlk %fp <== NOT EXECUTED 60e54: 4e75 rts <== NOT EXECUTED ... 00060706 : */ int memfile_rmnod( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 60706: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 6070a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 6070e: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 60710: 2450 moveal %a0@,%a2 <== NOT EXECUTED /* * Take the node out of the parent's chain that contains this node */ if ( the_jnode->Parent != NULL ) { 60712: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 60716: 670e beqs 60726 <== NOT EXECUTED 60718: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6071a: 4eb9 0005 d98c jsr 5d98c <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( (rtems_chain_node *) the_jnode ); the_jnode->Parent = NULL; 60720: 588f addql #4,%sp <== NOT EXECUTED 60722: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED /* * Decrement the link counter and see if we can free the space. */ the_jnode->st_nlink--; 60726: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 6072a: 5380 subql #1,%d0 <== NOT EXECUTED 6072c: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( the_jnode ); 60730: 42a7 clrl %sp@- <== NOT EXECUTED 60732: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 60736: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 6073c: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return memfile_check_rmnod( the_jnode ); 60742: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60744: 4eb9 0006 06b2 jsr 606b2 <== NOT EXECUTED } 6074a: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 6074e: 4e5e unlk %fp <== NOT EXECUTED 60750: 4e75 rts 00060b6c : ssize_t memfile_write( rtems_libio_t *iop, const void *buffer, size_t count ) { 60b6c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 60b70: 2f0b movel %a3,%sp@- <== NOT EXECUTED 60b72: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60b74: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_jnode_t *the_jnode; ssize_t status; the_jnode = iop->file_info; status = IMFS_memfile_write( the_jnode, iop->offset, buffer, count ); 60b78: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 60b7c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED ) { IMFS_jnode_t *the_jnode; ssize_t status; the_jnode = iop->file_info; 60b80: 266a 002c moveal %a2@(44),%a3 <== NOT EXECUTED status = IMFS_memfile_write( the_jnode, iop->offset, buffer, count ); 60b84: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 60b88: 2f0b movel %a3,%sp@- <== NOT EXECUTED 60b8a: 4eb9 0006 098e jsr 6098e <== NOT EXECUTED iop->size = the_jnode->info.file.size; 60b90: 256b 004c 0004 movel %a3@(76),%a2@(4) <== NOT EXECUTED return status; } 60b96: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 60b9a: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 60b9e: 4e5e unlk %fp <== NOT EXECUTED 60ba0: 4e75 rts 0004802c : */ int miniIMFS_initialize( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 4802c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return IMFS_initialize_support( 48030: 4879 0005 645c pea 5645c <== NOT EXECUTED 48036: 4879 0005 645c pea 5645c <== NOT EXECUTED 4803c: 4879 0005 42be pea 542be <== NOT EXECUTED 48042: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48046: 4eb9 0004 881c jsr 4881c <== NOT EXECUTED temp_mt_entry, &miniIMFS_ops, &rtems_filesystem_null_handlers, /* for memfiles */ &rtems_filesystem_null_handlers /* for directories */ ); } 4804c: 4e5e unlk %fp <== NOT EXECUTED 4804e: 4e75 rts 00049354 : int mkdir( const char *pathname, mode_t mode ) { 49354: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return mknod( pathname, mode | S_IFDIR, 0LL); 49358: 42a7 clrl %sp@- <== NOT EXECUTED 4935a: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4935e: 42a7 clrl %sp@- <== NOT EXECUTED 49360: 08c0 000e bset #14,%d0 <== NOT EXECUTED 49364: 2f00 movel %d0,%sp@- <== NOT EXECUTED 49366: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4936a: 4eb9 0004 2334 jsr 42334 <== NOT EXECUTED } 49370: 4e5e unlk %fp <== NOT EXECUTED 49372: 4e75 rts 0005c178 : int mkfifo( const char *path, mode_t mode ) { 5c178: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return mknod( path, mode | S_IFIFO, 0LL ); 5c17c: 42a7 clrl %sp@- <== NOT EXECUTED 5c17e: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 5c182: 42a7 clrl %sp@- <== NOT EXECUTED 5c184: 08c0 000c bset #12,%d0 <== NOT EXECUTED 5c188: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c18a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c18e: 4eb9 0004 5a7c jsr 45a7c <== NOT EXECUTED } 5c194: 4e5e unlk %fp <== NOT EXECUTED 5c196: 4e75 rts 00042334 : int mknod( const char *pathname, mode_t mode, dev_t dev ) { 42334: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 42338: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4233c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 42340: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED rtems_filesystem_location_info_t temp_loc; int i; const char *name_start; int result; if ( !(mode & (S_IFREG|S_IFCHR|S_IFBLK|S_IFIFO) ) ) 42344: 2002 movel %d2,%d0 <== NOT EXECUTED 42346: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 4234c: 660e bnes 4235c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4234e: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 42354: 2040 moveal %d0,%a0 <== NOT EXECUTED 42356: 7016 moveq #22,%d0 <== NOT EXECUTED 42358: 2080 movel %d0,%a0@ <== NOT EXECUTED 4235a: 6016 bras 42372 <== NOT EXECUTED if ( S_ISFIFO(mode) ) 4235c: 0c80 0000 1000 cmpil #4096,%d0 <== NOT EXECUTED 42362: 6614 bnes 42378 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 42364: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 4236a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4236c: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 42372: 74ff moveq #-1,%d2 <== NOT EXECUTED 42374: 6000 00dc braw 42452 <== NOT EXECUTED rtems_filesystem_get_start_loc( pathname, &i, &temp_loc ); 42378: 1212 moveb %a2@,%d1 <== NOT EXECUTED 4237a: 1001 moveb %d1,%d0 <== NOT EXECUTED 4237c: 49c0 extbl %d0 <== NOT EXECUTED 4237e: 762f moveq #47,%d3 <== NOT EXECUTED 42380: b680 cmpl %d0,%d3 <== NOT EXECUTED 42382: 670c beqs 42390 <== NOT EXECUTED 42384: 163c 005c moveb #92,%d3 <== NOT EXECUTED 42388: b680 cmpl %d0,%d3 <== NOT EXECUTED 4238a: 6704 beqs 42390 <== NOT EXECUTED 4238c: 4a01 tstb %d1 <== NOT EXECUTED 4238e: 6626 bnes 423b6 <== NOT EXECUTED 42390: 4878 0010 pea 10 <== NOT EXECUTED 42394: 2039 0005 5604 movel 55604 ,%d0 <== NOT EXECUTED 4239a: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 423a0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 423a2: 486e ffec pea %fp@(-20) <== NOT EXECUTED 423a6: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED 423ac: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 423b2: 7001 moveq #1,%d0 <== NOT EXECUTED 423b4: 6020 bras 423d6 <== NOT EXECUTED 423b6: 4878 0010 pea 10 <== NOT EXECUTED 423ba: 2639 0005 5604 movel 55604 ,%d3 <== NOT EXECUTED 423c0: 5883 addql #4,%d3 <== NOT EXECUTED 423c2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 423c4: 486e ffec pea %fp@(-20) <== NOT EXECUTED 423c8: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED 423ce: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 423d4: 4280 clrl %d0 <== NOT EXECUTED if ( !temp_loc.ops->evalformake_h ) { 423d6: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 423da: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 423de: 4a88 tstl %a0 <== NOT EXECUTED 423e0: 6782 beqs 42364 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*temp_loc.ops->evalformake_h)( 423e2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 423e6: 260e movel %fp,%d3 <== NOT EXECUTED 423e8: 0683 ffff ffec addil #-20,%d3 <== NOT EXECUTED 423ee: 2f03 movel %d3,%sp@- <== NOT EXECUTED 423f0: 4872 0800 pea %a2@(00000000,%d0:l) <== NOT EXECUTED 423f4: 4e90 jsr %a0@ <== NOT EXECUTED &pathname[i], &temp_loc, &name_start ); if ( result != 0 ) 423f6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 423fc: 4a80 tstl %d0 <== NOT EXECUTED 423fe: 6600 ff72 bnew 42372 <== NOT EXECUTED return -1; if ( !temp_loc.ops->mknod_h ) { 42402: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 42406: 2268 0014 moveal %a0@(20),%a1 <== NOT EXECUTED 4240a: 4a89 tstl %a1 <== NOT EXECUTED 4240c: 6614 bnes 42422 <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 4240e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 42412: 4a88 tstl %a0 <== NOT EXECUTED 42414: 6700 ff4e beqw 42364 <== NOT EXECUTED 42418: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4241a: 4e90 jsr %a0@ <== NOT EXECUTED 4241c: 588f addql #4,%sp <== NOT EXECUTED 4241e: 6000 ff44 braw 42364 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*temp_loc.ops->mknod_h)( name_start, mode, dev, &temp_loc ); 42422: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42424: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 42428: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4242c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4242e: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 42432: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 42434: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED if ( !temp_loc.ops->mknod_h ) { rtems_filesystem_freenode( &temp_loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*temp_loc.ops->mknod_h)( name_start, mode, dev, &temp_loc ); 42438: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 4243a: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 42440: 4a88 tstl %a0 <== NOT EXECUTED 42442: 670e beqs 42452 <== NOT EXECUTED 42444: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 42448: 4a88 tstl %a0 <== NOT EXECUTED 4244a: 6706 beqs 42452 <== NOT EXECUTED 4244c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4244e: 4e90 jsr %a0@ <== NOT EXECUTED 42450: 588f addql #4,%sp <== NOT EXECUTED return result; } 42452: 2002 movel %d2,%d0 <== NOT EXECUTED 42454: 4cee 040c ffe0 moveml %fp@(-32),%d2-%d3/%a2 <== NOT EXECUTED 4245a: 4e5e unlk %fp <== NOT EXECUTED 4245c: 4e75 rts <== NOT EXECUTED ... 00049396 : const rtems_filesystem_operations_table *fs_ops, rtems_filesystem_options_t options, const char *device, const char *mount_point ) { 49396: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 4939a: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 4939e: 2a6e 0008 moveal %fp@(8),%a5 <== NOT EXECUTED 493a2: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED 493a6: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 493aa: 266e 0014 moveal %fp@(20),%a3 <== NOT EXECUTED 493ae: 262e 0018 movel %fp@(24),%d3 <== NOT EXECUTED /* * Is there a file system operations table? */ if ( fs_ops == NULL ) { 493b2: 4a8c tstl %a4 <== NOT EXECUTED 493b4: 6706 beqs 493bc <== NOT EXECUTED /* * Are the file system options valid? */ if ( options != RTEMS_FILESYSTEM_READ_ONLY && 493b6: 7001 moveq #1,%d0 <== NOT EXECUTED 493b8: b082 cmpl %d2,%d0 <== NOT EXECUTED 493ba: 6410 bccs 493cc <== NOT EXECUTED options != RTEMS_FILESYSTEM_READ_WRITE ) { errno = EINVAL; 493bc: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 493c2: 7616 moveq #22,%d3 <== NOT EXECUTED 493c4: 2040 moveal %d0,%a0 <== NOT EXECUTED 493c6: 2083 movel %d3,%a0@ <== NOT EXECUTED 493c8: 6000 01bc braw 49586 <== NOT EXECUTED return -1; } /* Do they support being mounted at all ? */ if ( !fs_ops->fsmount_me_h ) { 493cc: 4aac 0024 tstl %a4@(36) <== NOT EXECUTED 493d0: 6614 bnes 493e6 <== NOT EXECUTED errno = ENOTSUP; 493d2: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 493d8: 2040 moveal %d0,%a0 <== NOT EXECUTED 493da: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 493e0: 4284 clrl %d4 <== NOT EXECUTED 493e2: 6000 017c braw 49560 <== NOT EXECUTED /* * Allocate a mount table entry */ size = sizeof(rtems_filesystem_mount_table_entry_t); if ( device ) 493e6: 4a8b tstl %a3 <== NOT EXECUTED 493e8: 6604 bnes 493ee <== NOT EXECUTED 493ea: 7064 moveq #100,%d0 <== NOT EXECUTED 493ec: 6010 bras 493fe <== NOT EXECUTED size += strlen( device ) + 1; 493ee: 2f0b movel %a3,%sp@- <== NOT EXECUTED 493f0: 4eb9 0004 c5cc jsr 4c5cc <== NOT EXECUTED 493f6: 588f addql #4,%sp <== NOT EXECUTED 493f8: 0680 0000 0065 addil #101,%d0 <== NOT EXECUTED temp_mt_entry = malloc( size ); 493fe: 2f00 movel %d0,%sp@- <== NOT EXECUTED 49400: 4eb9 0004 92b0 jsr 492b0 <== NOT EXECUTED if ( !temp_mt_entry ) { 49406: 588f addql #4,%sp <== NOT EXECUTED */ size = sizeof(rtems_filesystem_mount_table_entry_t); if ( device ) size += strlen( device ) + 1; temp_mt_entry = malloc( size ); 49408: 2440 moveal %d0,%a2 <== NOT EXECUTED 4940a: 2800 movel %d0,%d4 <== NOT EXECUTED if ( !temp_mt_entry ) { 4940c: 6610 bnes 4941e <== NOT EXECUTED errno = ENOMEM; 4940e: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 49414: 740c moveq #12,%d2 <== NOT EXECUTED 49416: 2040 moveal %d0,%a0 <== NOT EXECUTED 49418: 2082 movel %d2,%a0@ <== NOT EXECUTED 4941a: 6000 016a braw 49586 <== NOT EXECUTED return -1; } temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry; temp_mt_entry->options = options; 4941e: 2542 0028 movel %d2,%a2@(40) <== NOT EXECUTED if ( !temp_mt_entry ) { errno = ENOMEM; return -1; } temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry; 49422: 2540 0024 movel %d0,%a2@(36) <== NOT EXECUTED temp_mt_entry->options = options; if ( device ) { 49426: 4a8b tstl %a3 <== NOT EXECUTED 49428: 6718 beqs 49442 <== NOT EXECUTED temp_mt_entry->dev = (char *)temp_mt_entry + sizeof( rtems_filesystem_mount_table_entry_t ); strcpy( temp_mt_entry->dev, device ); 4942a: 2f0b movel %a3,%sp@- <== NOT EXECUTED } temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry; temp_mt_entry->options = options; if ( device ) { temp_mt_entry->dev = 4942c: 0680 0000 0064 addil #100,%d0 <== NOT EXECUTED (char *)temp_mt_entry + sizeof( rtems_filesystem_mount_table_entry_t ); strcpy( temp_mt_entry->dev, device ); 49432: 2f00 movel %d0,%sp@- <== NOT EXECUTED } temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry; temp_mt_entry->options = options; if ( device ) { temp_mt_entry->dev = 49434: 2540 0060 movel %d0,%a2@(96) <== NOT EXECUTED (char *)temp_mt_entry + sizeof( rtems_filesystem_mount_table_entry_t ); strcpy( temp_mt_entry->dev, device ); 49438: 4eb9 0004 c118 jsr 4c118 <== NOT EXECUTED 4943e: 508f addql #8,%sp <== NOT EXECUTED 49440: 6004 bras 49446 <== NOT EXECUTED } else temp_mt_entry->dev = 0; 49442: 42aa 0060 clrl %a2@(96) <== NOT EXECUTED /* * The mount_point should be a directory with read/write/execute * permissions in the existing tree. */ if ( mount_point ) { 49446: 4a83 tstl %d3 <== NOT EXECUTED 49448: 6700 00bc beqw 49506 <== NOT EXECUTED if ( rtems_filesystem_evaluate_path( 4944c: 4878 0001 pea 1 <== NOT EXECUTED 49450: 47ee fff0 lea %fp@(-16),%a3 <== NOT EXECUTED 49454: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49456: 4878 0007 pea 7 <== NOT EXECUTED 4945a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4945c: 4eb9 0004 20e2 jsr 420e2 <== NOT EXECUTED 49462: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 49468: 72ff moveq #-1,%d1 <== NOT EXECUTED 4946a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4946c: 6700 00f2 beqw 49560 <== NOT EXECUTED /* * Test for node_type_h */ if (!loc.ops->node_type_h) { 49470: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 49474: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 49478: 4a88 tstl %a0 <== NOT EXECUTED 4947a: 6612 bnes 4948e <== NOT EXECUTED errno = ENOTSUP; 4947c: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 49482: 2040 moveal %d0,%a0 <== NOT EXECUTED 49484: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 4948a: 6000 00d6 braw 49562 <== NOT EXECUTED /* * Test to see if it is a directory */ if ( loc.ops->node_type_h( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) { 4948e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49490: 4e90 jsr %a0@ <== NOT EXECUTED 49492: 588f addql #4,%sp <== NOT EXECUTED 49494: 7201 moveq #1,%d1 <== NOT EXECUTED 49496: b280 cmpl %d0,%d1 <== NOT EXECUTED 49498: 6710 beqs 494aa <== NOT EXECUTED errno = ENOTDIR; 4949a: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 494a0: 7214 moveq #20,%d1 <== NOT EXECUTED 494a2: 2040 moveal %d0,%a0 <== NOT EXECUTED 494a4: 2081 movel %d1,%a0@ <== NOT EXECUTED 494a6: 6000 00ba braw 49562 <== NOT EXECUTED /* * For each mount table entry */ for ( the_node = rtems_filesystem_mount_table_control.first; 494aa: 2079 0005 6ed2 moveal 56ed2 ,%a0 <== NOT EXECUTED !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node ); the_node = the_node->next ) { the_mount_entry = (rtems_filesystem_mount_table_entry_t *) the_node; if ( the_mount_entry->mt_fs_root.node_access == loc->node_access ) 494b0: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 494b4: 6008 bras 494be <== NOT EXECUTED 494b6: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 494ba: 670e beqs 494ca <== NOT EXECUTED * For each mount table entry */ for ( the_node = rtems_filesystem_mount_table_control.first; !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node ); the_node = the_node->next ) { 494bc: 2050 moveal %a0@,%a0 <== NOT EXECUTED /* * For each mount table entry */ for ( the_node = rtems_filesystem_mount_table_control.first; !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node ); 494be: b1fc 0005 6ed6 cmpal #356054,%a0 <== NOT EXECUTED 494c4: 66f0 bnes 494b6 <== NOT EXECUTED 494c6: 6000 00ca braw 49592 <== NOT EXECUTED /* * You can only mount one file system onto a single mount point. */ if ( Is_node_fs_root( &loc ) ){ errno = EBUSY; 494ca: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 494d0: 2040 moveal %d0,%a0 <== NOT EXECUTED 494d2: 7010 moveq #16,%d0 <== NOT EXECUTED 494d4: 2080 movel %d0,%a0@ <== NOT EXECUTED 494d6: 600e bras 494e6 <== NOT EXECUTED * This link to the parent is only done when we are dealing with system * below the base file system */ if ( !loc.ops->mount_h ){ errno = ENOTSUP; 494d8: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 494de: 2040 moveal %d0,%a0 <== NOT EXECUTED 494e0: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 494e6: 47ee fff0 lea %fp@(-16),%a3 <== NOT EXECUTED 494ea: 6076 bras 49562 <== NOT EXECUTED goto cleanup_and_bail; } if ( loc.ops->mount_h( temp_mt_entry ) ) { 494ec: 2f0a movel %a2,%sp@- <== NOT EXECUTED 494ee: 4e91 jsr %a1@ <== NOT EXECUTED 494f0: 220e movel %fp,%d1 <== NOT EXECUTED 494f2: 588f addql #4,%sp <== NOT EXECUTED 494f4: 0681 ffff fff0 addil #-16,%d1 <== NOT EXECUTED 494fa: 4a80 tstl %d0 <== NOT EXECUTED 494fc: 6704 beqs 49502 <== NOT EXECUTED 494fe: 2641 moveal %d1,%a3 <== NOT EXECUTED 49500: 6060 bras 49562 <== NOT EXECUTED 49502: 2641 moveal %d1,%a3 <== NOT EXECUTED 49504: 601e bras 49524 <== NOT EXECUTED temp_mt_entry->mt_fs_root.ops = NULL; temp_mt_entry->mt_point_node.node_access = NULL; temp_mt_entry->mt_point_node.handlers = NULL; temp_mt_entry->mt_point_node.ops = NULL; temp_mt_entry->mt_point_node.mt_entry = NULL; 49506: 97cb subal %a3,%a3 <== NOT EXECUTED * This is a mount of the base file system --> The * mt_point_node.node_access will be set to null to indicate that this * is the root of the entire file system. */ temp_mt_entry->mt_fs_root.node_access = NULL; 49508: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED temp_mt_entry->mt_fs_root.handlers = NULL; 4950c: 42aa 001c clrl %a2@(28) <== NOT EXECUTED temp_mt_entry->mt_fs_root.ops = NULL; 49510: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED temp_mt_entry->mt_point_node.node_access = NULL; 49514: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED temp_mt_entry->mt_point_node.handlers = NULL; 49518: 42aa 000c clrl %a2@(12) <== NOT EXECUTED temp_mt_entry->mt_point_node.ops = NULL; 4951c: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED temp_mt_entry->mt_point_node.mt_entry = NULL; 49520: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED } if ( fs_ops->fsmount_me_h( temp_mt_entry ) ) { 49524: 206c 0024 moveal %a4@(36),%a0 <== NOT EXECUTED 49528: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4952a: 4e90 jsr %a0@ <== NOT EXECUTED 4952c: 588f addql #4,%sp <== NOT EXECUTED 4952e: 4a80 tstl %d0 <== NOT EXECUTED 49530: 6714 beqs 49546 <== NOT EXECUTED /* try to undo the mount operation */ if ( loc.ops->unmount_h ) { 49532: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 49536: 2068 0028 moveal %a0@(40),%a0 <== NOT EXECUTED 4953a: 4a88 tstl %a0 <== NOT EXECUTED 4953c: 6724 beqs 49562 <== NOT EXECUTED loc.ops->unmount_h( temp_mt_entry ); 4953e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49540: 4e90 jsr %a0@ <== NOT EXECUTED 49542: 588f addql #4,%sp <== NOT EXECUTED 49544: 601c bras 49562 <== 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 ); 49546: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49548: 4879 0005 6ed2 pea 56ed2 <== NOT EXECUTED 4954e: 4eb9 0004 58a8 jsr 458a8 <_Chain_Append> <== NOT EXECUTED */ rtems_chain_append( &rtems_filesystem_mount_table_control, &temp_mt_entry->Node ); if ( mt_entry ) 49554: 508f addql #8,%sp <== NOT EXECUTED 49556: 4a8d tstl %a5 <== NOT EXECUTED 49558: 6702 beqs 4955c <== NOT EXECUTED *mt_entry = temp_mt_entry; 4955a: 2a8a movel %a2,%a5@ <== NOT EXECUTED 4955c: 4280 clrl %d0 <== NOT EXECUTED 4955e: 6028 bras 49588 <== NOT EXECUTED 49560: 97cb subal %a3,%a3 <== NOT EXECUTED return 0; cleanup_and_bail: free( temp_mt_entry ); 49562: 2f04 movel %d4,%sp@- <== NOT EXECUTED 49564: 4eb9 0004 8dc4 jsr 48dc4 <== NOT EXECUTED if ( loc_to_free ) 4956a: 588f addql #4,%sp <== NOT EXECUTED 4956c: 4a8b tstl %a3 <== NOT EXECUTED 4956e: 6716 beqs 49586 <== NOT EXECUTED rtems_filesystem_freenode( loc_to_free ); 49570: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED 49574: 4a88 tstl %a0 <== NOT EXECUTED 49576: 670e beqs 49586 <== NOT EXECUTED 49578: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 4957c: 4a88 tstl %a0 <== NOT EXECUTED 4957e: 6706 beqs 49586 <== NOT EXECUTED 49580: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49582: 4e90 jsr %a0@ <== NOT EXECUTED 49584: 588f addql #4,%sp <== NOT EXECUTED 49586: 70ff moveq #-1,%d0 <== NOT EXECUTED return -1; } 49588: 4cee 3c1c ffd4 moveml %fp@(-44),%d2-%d4/%a2-%a5 <== NOT EXECUTED 4958e: 4e5e unlk %fp <== NOT EXECUTED 49590: 4e75 rts <== NOT EXECUTED * traverse the tree. */ temp_mt_entry->mt_point_node.node_access = loc.node_access; temp_mt_entry->mt_point_node.handlers = loc.handlers; temp_mt_entry->mt_point_node.ops = loc.ops; 49592: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED /* * This link to the parent is only done when we are dealing with system * below the base file system */ if ( !loc.ops->mount_h ){ 49596: 2268 0020 moveal %a0@(32),%a1 <== NOT EXECUTED * until the system is unmounted. It may be needed to correctly * traverse the tree. */ temp_mt_entry->mt_point_node.node_access = loc.node_access; temp_mt_entry->mt_point_node.handlers = loc.handlers; 4959a: 256e fff4 000c movel %fp@(-12),%a2@(12) <== NOT EXECUTED temp_mt_entry->mt_point_node.ops = loc.ops; temp_mt_entry->mt_point_node.mt_entry = loc.mt_entry; 495a0: 256e fffc 0014 movel %fp@(-4),%a2@(20) <== NOT EXECUTED * may have been allocated in loc should not be sent to freenode * until the system is unmounted. It may be needed to correctly * traverse the tree. */ temp_mt_entry->mt_point_node.node_access = loc.node_access; 495a6: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED temp_mt_entry->mt_point_node.handlers = loc.handlers; temp_mt_entry->mt_point_node.ops = loc.ops; 495aa: 2548 0010 movel %a0,%a2@(16) <== NOT EXECUTED /* * This link to the parent is only done when we are dealing with system * below the base file system */ if ( !loc.ops->mount_h ){ 495ae: 4a89 tstl %a1 <== NOT EXECUTED 495b0: 6600 ff3a bnew 494ec <== NOT EXECUTED 495b4: 6000 ff22 braw 494d8 <== NOT EXECUTED 0004256c : */ int newlib_free_buffers( FILE *fp ) { 4256c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42570: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42572: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED switch ( fileno(fp) ) { 42576: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42578: 4eb9 0004 af54 jsr 4af54 <== NOT EXECUTED 4257e: 588f addql #4,%sp <== NOT EXECUTED 42580: 7202 moveq #2,%d1 <== NOT EXECUTED 42582: b280 cmpl %d0,%d1 <== NOT EXECUTED 42584: 6528 bcss 425ae <== NOT EXECUTED case 0: case 1: case 2: if (fp->_flags & __SMBF) { 42586: 302a 000c movew %a2@(12),%d0 <== NOT EXECUTED 4258a: 48c0 extl %d0 <== NOT EXECUTED 4258c: 4a00 tstb %d0 <== NOT EXECUTED 4258e: 6c28 bges 425b8 <== NOT EXECUTED free( fp->_bf._base ); 42590: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 42594: 4eb9 0004 8dc4 jsr 48dc4 <== NOT EXECUTED fp->_flags &= ~__SMBF; 4259a: 302a 000c movew %a2@(12),%d0 <== NOT EXECUTED fp->_bf._base = fp->_p = (unsigned char *) NULL; 4259e: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED case 0: case 1: case 2: if (fp->_flags & __SMBF) { free( fp->_bf._base ); fp->_flags &= ~__SMBF; 425a2: 0880 0007 bclr #7,%d0 <== NOT EXECUTED 425a6: 3540 000c movew %d0,%a2@(12) <== NOT EXECUTED fp->_bf._base = fp->_p = (unsigned char *) NULL; 425aa: 4292 clrl %a2@ <== NOT EXECUTED 425ac: 6008 bras 425b6 <== NOT EXECUTED } break; default: fclose(fp); 425ae: 2f0a movel %a2,%sp@- <== NOT EXECUTED 425b0: 4eb9 0004 ad8a jsr 4ad8a <== NOT EXECUTED 425b6: 588f addql #4,%sp <== NOT EXECUTED } return 0; } 425b8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 425bc: 4e5e unlk %fp <== NOT EXECUTED 425be: 4280 clrl %d0 <== NOT EXECUTED 425c0: 4e75 rts 00042716 : rtems_device_driver null_close( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 42716: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return NULL_SUCCESSFUL; } 4271a: 4e5e unlk %fp <== NOT EXECUTED 4271c: 4280 clrl %d0 <== NOT EXECUTED 4271e: 4e75 rts 00042742 : rtems_device_driver null_control( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 42742: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return NULL_SUCCESSFUL; } 42746: 4e5e unlk %fp <== NOT EXECUTED 42748: 4280 clrl %d0 <== NOT EXECUTED 4274a: 4e75 rts 0004274c : rtems_device_driver null_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 4274c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42750: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42752: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_device_driver status; if ( !initialized ) { 42756: 4a39 0005 8388 tstb 58388 <== NOT EXECUTED 4275c: 6630 bnes 4278e <== NOT EXECUTED initialized = 1; status = rtems_io_register_name( 4275e: 42a7 clrl %sp@- <== NOT EXECUTED ) { rtems_device_driver status; if ( !initialized ) { initialized = 1; 42760: 7001 moveq #1,%d0 <== NOT EXECUTED status = rtems_io_register_name( 42762: 2f02 movel %d2,%sp@- <== NOT EXECUTED ) { rtems_device_driver status; if ( !initialized ) { initialized = 1; 42764: 13c0 0005 8388 moveb %d0,58388 <== NOT EXECUTED status = rtems_io_register_name( 4276a: 4879 0005 5c34 pea 55c34 <== NOT EXECUTED 42770: 4eb9 0004 2866 jsr 42866 <== NOT EXECUTED "/dev/null", major, (rtems_device_minor_number) 0 ); if (status != RTEMS_SUCCESSFUL) 42776: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4277c: 4a80 tstl %d0 <== NOT EXECUTED 4277e: 6708 beqs 42788 <== NOT EXECUTED rtems_fatal_error_occurred(status); 42780: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42782: 4eb9 0004 5f4c jsr 45f4c <== NOT EXECUTED NULL_major = major; 42788: 23c2 0005 8b94 movel %d2,58b94 <== NOT EXECUTED } return RTEMS_SUCCESSFUL; } 4278e: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 42792: 4e5e unlk %fp <== NOT EXECUTED 42794: 4280 clrl %d0 <== NOT EXECUTED 42796: 4e75 rts 0004270c : rtems_device_driver null_open( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 4270c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return NULL_SUCCESSFUL; } 42710: 4e5e unlk %fp <== NOT EXECUTED 42712: 4280 clrl %d0 <== NOT EXECUTED 42714: 4e75 rts 00042720 : rtems_device_driver null_read( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 42720: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return NULL_SUCCESSFUL; } 42724: 4e5e unlk %fp <== NOT EXECUTED 42726: 4280 clrl %d0 <== NOT EXECUTED 42728: 4e75 rts 0004272a : rtems_device_driver null_write( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 4272a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4272e: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED rtems_libio_rw_args_t *rw_args = (rtems_libio_rw_args_t *) pargp; if ( rw_args ) 42732: 4a88 tstl %a0 <== NOT EXECUTED 42734: 6706 beqs 4273c <== NOT EXECUTED rw_args->bytes_moved = rw_args->count; 42736: 2168 000c 0014 movel %a0@(12),%a0@(20) <== NOT EXECUTED return NULL_SUCCESSFUL; } 4273c: 4e5e unlk %fp <== NOT EXECUTED 4273e: 4280 clrl %d0 <== NOT EXECUTED 42740: 4e75 rts 000427b0 : int open( const char *pathname, int flags, ... ) { 427b0: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 427b4: 48d7 1c7c moveml %d2-%d6/%a2-%a4,%sp@ <== NOT EXECUTED 427b8: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 427bc: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED /* * Set the Evaluation flags */ eval_flags = 0; status = flags + 1; 427c0: 2004 movel %d4,%d0 <== NOT EXECUTED 427c2: 5280 addql #1,%d0 <== NOT EXECUTED if ( ( status & _FREAD ) == _FREAD ) 427c4: 0800 0000 btst #0,%d0 <== NOT EXECUTED 427c8: 6604 bnes 427ce <== NOT EXECUTED 427ca: 4282 clrl %d2 <== NOT EXECUTED 427cc: 6002 bras 427d0 <== NOT EXECUTED 427ce: 7404 moveq #4,%d2 <== NOT EXECUTED eval_flags |= RTEMS_LIBIO_PERMS_READ; if ( ( status & _FWRITE ) == _FWRITE ) 427d0: 0800 0001 btst #1,%d0 <== NOT EXECUTED 427d4: 6704 beqs 427da <== NOT EXECUTED eval_flags |= RTEMS_LIBIO_PERMS_WRITE; 427d6: 7002 moveq #2,%d0 <== NOT EXECUTED 427d8: 8480 orl %d0,%d2 <== NOT EXECUTED va_start(ap, flags); mode = va_arg( ap, int ); 427da: 2c2e 0010 movel %fp@(16),%d6 <== NOT EXECUTED * code does not require changes here since network file * descriptors are obtained using socket(), not open(). */ /* allocate a file control block */ iop = rtems_libio_allocate(); 427de: 4eb9 0004 912e jsr 4912e <== NOT EXECUTED 427e4: 2640 moveal %d0,%a3 <== NOT EXECUTED if ( iop == 0 ) { 427e6: 4a80 tstl %d0 <== NOT EXECUTED 427e8: 6606 bnes 427f0 <== NOT EXECUTED 427ea: 7417 moveq #23,%d2 <== NOT EXECUTED 427ec: 6000 0186 braw 42974 <== NOT EXECUTED /* * See if the file exists. */ status = rtems_filesystem_evaluate_path( 427f0: 4878 0001 pea 1 <== NOT EXECUTED 427f4: 260e movel %fp,%d3 <== NOT EXECUTED 427f6: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 427fc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 427fe: 49f9 0004 20e2 lea 420e2 ,%a4 <== NOT EXECUTED 42804: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42806: 2f05 movel %d5,%sp@- <== NOT EXECUTED 42808: 4e94 jsr %a4@ <== NOT EXECUTED pathname, eval_flags, &loc, true ); if ( status == -1 ) { 4280a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 42810: 72ff moveq #-1,%d1 <== NOT EXECUTED 42812: b280 cmpl %d0,%d1 <== NOT EXECUTED 42814: 6660 bnes 42876 <== NOT EXECUTED if ( errno != ENOENT ) { 42816: 45f9 0004 ac3c lea 4ac3c <__errno>,%a2 <== NOT EXECUTED 4281c: 4e92 jsr %a2@ <== NOT EXECUTED 4281e: 2040 moveal %d0,%a0 <== NOT EXECUTED 42820: 7002 moveq #2,%d0 <== NOT EXECUTED 42822: b090 cmpl %a0@,%d0 <== NOT EXECUTED 42824: 662a bnes 42850 <== NOT EXECUTED rc = errno; goto done; } /* If the file does not exist and we are not trying to create it--> error */ if ( !(flags & O_CREAT) ) { 42826: 0804 0009 btst #9,%d4 <== NOT EXECUTED 4282a: 6606 bnes 42832 <== NOT EXECUTED 4282c: 7402 moveq #2,%d2 <== NOT EXECUTED 4282e: 6000 011a braw 4294a <== NOT EXECUTED rc = ENOENT; goto done; } /* Create the node for the new regular file */ rc = mknod( pathname, S_IFREG | mode, 0LL ); 42832: 42a7 clrl %sp@- <== NOT EXECUTED 42834: 2206 movel %d6,%d1 <== NOT EXECUTED 42836: 08c1 000f bset #15,%d1 <== NOT EXECUTED 4283a: 42a7 clrl %sp@- <== NOT EXECUTED 4283c: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4283e: 2f05 movel %d5,%sp@- <== NOT EXECUTED 42840: 4eb9 0004 2334 jsr 42334 <== NOT EXECUTED if ( rc ) { 42846: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4284c: 4a80 tstl %d0 <== NOT EXECUTED 4284e: 670a beqs 4285a <== NOT EXECUTED rc = errno; 42850: 4e92 jsr %a2@ <== NOT EXECUTED 42852: 2040 moveal %d0,%a0 <== NOT EXECUTED 42854: 2410 movel %a0@,%d2 <== NOT EXECUTED 42856: 6000 00ee braw 42946 <== NOT EXECUTED goto done; } /* Sanity check to see if the file name exists after the mknod() */ status = rtems_filesystem_evaluate_path( pathname, 0x0, &loc, true ); 4285a: 4878 0001 pea 1 <== NOT EXECUTED 4285e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42860: 42a7 clrl %sp@- <== NOT EXECUTED 42862: 2f05 movel %d5,%sp@- <== NOT EXECUTED 42864: 4e94 jsr %a4@ <== NOT EXECUTED if ( status != 0 ) { /* The file did not exist */ 42866: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4286c: 4a80 tstl %d0 <== NOT EXECUTED 4286e: 671e beqs 4288e <== NOT EXECUTED 42870: 740d moveq #13,%d2 <== NOT EXECUTED 42872: 6000 00d6 braw 4294a <== NOT EXECUTED rc = EACCES; goto done; } } else if ((flags & (O_EXCL|O_CREAT)) == (O_EXCL|O_CREAT)) { 42876: 2004 movel %d4,%d0 <== NOT EXECUTED 42878: 0280 0000 0a00 andil #2560,%d0 <== NOT EXECUTED 4287e: 0c80 0000 0a00 cmpil #2560,%d0 <== NOT EXECUTED 42884: 6608 bnes 4288e <== NOT EXECUTED 42886: 2443 moveal %d3,%a2 <== NOT EXECUTED 42888: 7411 moveq #17,%d2 <== NOT EXECUTED 4288a: 6000 00c0 braw 4294c <== NOT EXECUTED * returned by successful path evaluation. */ iop->handlers = loc.handlers; iop->file_info = loc.node_access; iop->flags |= rtems_libio_fcntl_flags( flags ); 4288e: 242b 000c movel %a3@(12),%d2 <== NOT EXECUTED /* * Fill in the file control block based on the loc structure * returned by successful path evaluation. */ iop->handlers = loc.handlers; 42892: 276e fff4 0030 movel %fp@(-12),%a3@(48) <== NOT EXECUTED iop->file_info = loc.node_access; iop->flags |= rtems_libio_fcntl_flags( flags ); iop->pathinfo = loc; 42898: 45ee fff0 lea %fp@(-16),%a2 <== NOT EXECUTED * Fill in the file control block based on the loc structure * returned by successful path evaluation. */ iop->handlers = loc.handlers; iop->file_info = loc.node_access; 4289c: 276e fff0 002c movel %fp@(-16),%a3@(44) <== NOT EXECUTED iop->flags |= rtems_libio_fcntl_flags( flags ); 428a2: 2f04 movel %d4,%sp@- <== NOT EXECUTED 428a4: 4eb9 0004 91de jsr 491de <== NOT EXECUTED 428aa: 8082 orl %d2,%d0 <== NOT EXECUTED 428ac: 2740 000c movel %d0,%a3@(12) <== NOT EXECUTED iop->pathinfo = loc; 428b0: 4878 0010 pea 10 <== NOT EXECUTED 428b4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 428b6: 486b 0010 pea %a3@(16) <== NOT EXECUTED 428ba: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED if ( !iop->handlers->open_h ) { 428c0: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED 428c4: 2050 moveal %a0@,%a0 <== NOT EXECUTED 428c6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 428cc: 4a88 tstl %a0 <== NOT EXECUTED 428ce: 6700 00d0 beqw 429a0 <== NOT EXECUTED rc = ENOTSUP; goto done; } rc = (*iop->handlers->open_h)( iop, pathname, flags, mode ); 428d2: 2f06 movel %d6,%sp@- <== NOT EXECUTED 428d4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 428d6: 2f05 movel %d5,%sp@- <== NOT EXECUTED 428d8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 428da: 4e90 jsr %a0@ <== NOT EXECUTED if ( rc ) 428dc: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED if ( !iop->handlers->open_h ) { rc = ENOTSUP; goto done; } rc = (*iop->handlers->open_h)( iop, pathname, flags, mode ); 428e2: 2400 movel %d0,%d2 <== NOT EXECUTED if ( rc ) 428e4: 6666 bnes 4294c <== NOT EXECUTED /* * Optionally truncate the file. */ if ( (flags & O_TRUNC) == O_TRUNC ) { 428e6: 0804 000a btst #10,%d4 <== NOT EXECUTED 428ea: 6700 0096 beqw 42982 <== NOT EXECUTED rc = ftruncate( iop - rtems_libio_iops, 0 ); 428ee: 200b movel %a3,%d0 <== NOT EXECUTED 428f0: 90b9 0005 6b3c subl 56b3c ,%d0 <== NOT EXECUTED 428f6: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 428fc: e480 asrl #2,%d0 <== NOT EXECUTED 428fe: 4c00 1800 mulsl %d0,%d1 <== NOT EXECUTED 42902: 42a7 clrl %sp@- <== NOT EXECUTED 42904: 2f01 movel %d1,%sp@- <== NOT EXECUTED 42906: 4eb9 0004 8e4c jsr 48e4c <== NOT EXECUTED if ( rc ) { 4290c: 508f addql #8,%sp <== NOT EXECUTED /* * Optionally truncate the file. */ if ( (flags & O_TRUNC) == O_TRUNC ) { rc = ftruncate( iop - rtems_libio_iops, 0 ); 4290e: 2400 movel %d0,%d2 <== NOT EXECUTED if ( rc ) { 42910: 6770 beqs 42982 <== NOT EXECUTED if(errno) rc = errno; 42912: 45f9 0004 ac3c lea 4ac3c <__errno>,%a2 <== NOT EXECUTED 42918: 4e92 jsr %a2@ <== NOT EXECUTED 4291a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4291c: 4a90 tstl %a0@ <== NOT EXECUTED 4291e: 6706 beqs 42926 <== NOT EXECUTED 42920: 4e92 jsr %a2@ <== NOT EXECUTED 42922: 2040 moveal %d0,%a0 <== NOT EXECUTED 42924: 2410 movel %a0@,%d2 <== NOT EXECUTED close( iop - rtems_libio_iops ); 42926: 97f9 0005 6b3c subal 56b3c ,%a3 <== NOT EXECUTED 4292c: 200b movel %a3,%d0 <== NOT EXECUTED 4292e: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 42934: e480 asrl #2,%d0 <== NOT EXECUTED 42936: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 4293a: 97cb subal %a3,%a3 <== NOT EXECUTED 4293c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4293e: 4eb9 0004 8d24 jsr 48d24 <== NOT EXECUTED 42944: 588f addql #4,%sp <== NOT EXECUTED */ done: va_end(ap); if ( rc ) { 42946: 4a82 tstl %d2 <== NOT EXECUTED 42948: 6738 beqs 42982 <== NOT EXECUTED 4294a: 95ca subal %a2,%a2 <== NOT EXECUTED if ( iop ) 4294c: 4a8b tstl %a3 <== NOT EXECUTED 4294e: 670a beqs 4295a <== NOT EXECUTED rtems_libio_free( iop ); 42950: 2f0b movel %a3,%sp@- <== NOT EXECUTED 42952: 4eb9 0004 90ce jsr 490ce <== NOT EXECUTED 42958: 588f addql #4,%sp <== NOT EXECUTED if ( loc_to_free ) 4295a: 4a8a tstl %a2 <== NOT EXECUTED 4295c: 6716 beqs 42974 <== NOT EXECUTED rtems_filesystem_freenode( loc_to_free ); 4295e: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 42962: 4a88 tstl %a0 <== NOT EXECUTED 42964: 670e beqs 42974 <== NOT EXECUTED 42966: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 4296a: 4a88 tstl %a0 <== NOT EXECUTED 4296c: 6706 beqs 42974 <== NOT EXECUTED 4296e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42970: 4e90 jsr %a0@ <== NOT EXECUTED 42972: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( rc ); 42974: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 4297a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4297c: 2082 movel %d2,%a0@ <== NOT EXECUTED 4297e: 70ff moveq #-1,%d0 <== NOT EXECUTED 42980: 6014 bras 42996 <== NOT EXECUTED } return iop - rtems_libio_iops; 42982: 200b movel %a3,%d0 <== NOT EXECUTED 42984: 90b9 0005 6b3c subl 56b3c ,%d0 <== NOT EXECUTED 4298a: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 42990: e480 asrl #2,%d0 <== NOT EXECUTED 42992: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED } 42996: 4cee 1c7c ffd0 moveml %fp@(-48),%d2-%d6/%a2-%a4 <== NOT EXECUTED 4299c: 4e5e unlk %fp <== NOT EXECUTED 4299e: 4e75 rts <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); rtems_set_errno_and_return_minus_one( rc ); } return iop - rtems_libio_iops; 429a0: 243c 0000 0086 movel #134,%d2 <== NOT EXECUTED 429a6: 60a4 bras 4294c <== NOT EXECUTED 0004273c : /* * This is a replaceable stub */ void open_dev_console(void) { 4273c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42740: 2f0a movel %a2,%sp@- <== NOT EXECUTED int error_code = 'S' << 24 | 'T' << 16 | 'D' << 8; /* * Attempt to open /dev/console. */ if ((stdin_fd = open("/dev/console", O_RDONLY, 0)) == -1) { 42742: 45f9 0004 27b0 lea 427b0 ,%a2 <== NOT EXECUTED 42748: 42a7 clrl %sp@- <== NOT EXECUTED 4274a: 42a7 clrl %sp@- <== NOT EXECUTED 4274c: 4879 0005 3bea pea 53bea <== NOT EXECUTED 42752: 4e92 jsr %a2@ <== NOT EXECUTED 42754: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4275a: 72ff moveq #-1,%d1 <== NOT EXECUTED 4275c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4275e: 6748 beqs 427a8 <== NOT EXECUTED /* * But if we find /dev/console once, we better find it twice more * or something is REALLY wrong. */ if ((stdout_fd = open("/dev/console", O_WRONLY, 0)) == -1) 42760: 42a7 clrl %sp@- <== NOT EXECUTED 42762: 4878 0001 pea 1 <== NOT EXECUTED 42766: 4879 0005 3bea pea 53bea <== NOT EXECUTED 4276c: 4e92 jsr %a2@ <== NOT EXECUTED 4276e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42774: 72ff moveq #-1,%d1 <== NOT EXECUTED 42776: b280 cmpl %d0,%d1 <== NOT EXECUTED 42778: 6608 bnes 42782 <== NOT EXECUTED rtems_fatal_error_occurred( error_code | '1' ); 4277a: 2f3c 5354 4431 movel #1398031409,%sp@- <== NOT EXECUTED 42780: 6020 bras 427a2 <== NOT EXECUTED if ((stderr_fd = open("/dev/console", O_WRONLY, 0)) == -1) 42782: 42a7 clrl %sp@- <== NOT EXECUTED 42784: 4878 0001 pea 1 <== NOT EXECUTED 42788: 4879 0005 3bea pea 53bea <== NOT EXECUTED 4278e: 4e92 jsr %a2@ <== NOT EXECUTED 42790: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42796: 72ff moveq #-1,%d1 <== NOT EXECUTED 42798: b280 cmpl %d0,%d1 <== NOT EXECUTED 4279a: 660c bnes 427a8 <== NOT EXECUTED rtems_fatal_error_occurred( error_code | '2' ); 4279c: 2f3c 5354 4432 movel #1398031410,%sp@- <== NOT EXECUTED 427a2: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED } 427a8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 427ac: 4e5e unlk %fp <== NOT EXECUTED 427ae: 4e75 rts 0005c198 : * open a directory. */ DIR * opendir( const char *name ) { 5c198: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 5c19c: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED register DIR *dirp; register int fd; if ((fd = open(name, 0)) == -1) 5c1a0: 42a7 clrl %sp@- <== NOT EXECUTED 5c1a2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c1a6: 4eb9 0004 613c jsr 4613c <== NOT EXECUTED 5c1ac: 2400 movel %d0,%d2 <== NOT EXECUTED 5c1ae: 508f addql #8,%sp <== NOT EXECUTED 5c1b0: 70ff moveq #-1,%d0 <== NOT EXECUTED 5c1b2: b082 cmpl %d2,%d0 <== NOT EXECUTED 5c1b4: 673a beqs 5c1f0 <== NOT EXECUTED return NULL; if (fcntl(fd, F_SETFD, 1) == -1 || 5c1b6: 4878 0001 pea 1 <== NOT EXECUTED 5c1ba: 4878 0002 pea 2 <== NOT EXECUTED 5c1be: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c1c0: 4eb9 0006 5eec jsr 65eec <== NOT EXECUTED 5c1c6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c1cc: 72ff moveq #-1,%d1 <== NOT EXECUTED 5c1ce: b280 cmpl %d0,%d1 <== NOT EXECUTED 5c1d0: 6714 beqs 5c1e6 <== NOT EXECUTED 5c1d2: 47f9 0004 58e4 lea 458e4 ,%a3 <== NOT EXECUTED 5c1d8: 4878 0018 pea 18 <== NOT EXECUTED 5c1dc: 4e93 jsr %a3@ <== NOT EXECUTED 5c1de: 588f addql #4,%sp <== NOT EXECUTED 5c1e0: 2440 moveal %d0,%a2 <== NOT EXECUTED 5c1e2: 4a80 tstl %d0 <== NOT EXECUTED 5c1e4: 660e bnes 5c1f4 <== NOT EXECUTED (dirp = (DIR *)malloc(sizeof(DIR))) == NULL) { close (fd); 5c1e6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c1e8: 4eb9 0004 4f20 jsr 44f20 <== NOT EXECUTED 5c1ee: 588f addql #4,%sp <== NOT EXECUTED 5c1f0: 95ca subal %a2,%a2 <== NOT EXECUTED 5c1f2: 6024 bras 5c218 <== NOT EXECUTED * If CLSIZE is an exact multiple of DIRBLKSIZ, use a CLSIZE * buffer that it cluster boundary aligned. * Hopefully this can be a big win someday by allowing page trades * to user space to be done by getdirentries() */ dirp->dd_buf = malloc (512); 5c1f4: 4878 0200 pea 200 <== NOT EXECUTED 5c1f8: 4e93 jsr %a3@ <== NOT EXECUTED dirp->dd_len = 512; 5c1fa: 223c 0000 0200 movel #512,%d1 <== NOT EXECUTED * If CLSIZE is an exact multiple of DIRBLKSIZ, use a CLSIZE * buffer that it cluster boundary aligned. * Hopefully this can be a big win someday by allowing page trades * to user space to be done by getdirentries() */ dirp->dd_buf = malloc (512); 5c200: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED dirp->dd_len = 512; if (dirp->dd_buf == NULL) { 5c204: 588f addql #4,%sp <== NOT EXECUTED * buffer that it cluster boundary aligned. * Hopefully this can be a big win someday by allowing page trades * to user space to be done by getdirentries() */ dirp->dd_buf = malloc (512); dirp->dd_len = 512; 5c206: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED if (dirp->dd_buf == NULL) { 5c20a: 4a80 tstl %d0 <== NOT EXECUTED 5c20c: 67d8 beqs 5c1e6 <== NOT EXECUTED close (fd); return NULL; } dirp->dd_fd = fd; 5c20e: 2482 movel %d2,%a2@ <== NOT EXECUTED dirp->dd_loc = 0; 5c210: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED dirp->dd_seek = 0; 5c214: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED /* * Set up seek point for rewinddir. */ return dirp; } 5c218: 200a movel %a2,%d0 <== NOT EXECUTED 5c21a: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 5c220: 4e5e unlk %fp <== NOT EXECUTED 5c222: 4e75 rts 0004336a : /* * Handle output processing */ static void oproc (unsigned char c, struct rtems_termios_tty *tty) { 4336a: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4336e: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 43372: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 43376: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED int i; if (tty->termios.c_oflag & OPOST) { 4337a: 222a 0034 movel %a2@(52),%d1 <== NOT EXECUTED /* * Handle output processing */ static void oproc (unsigned char c, struct rtems_termios_tty *tty) { 4337e: 1d40 fffe moveb %d0,%fp@(-2) <== NOT EXECUTED int i; if (tty->termios.c_oflag & OPOST) { 43382: 0801 0000 btst #0,%d1 <== NOT EXECUTED 43386: 6700 0108 beqw 43490 <== NOT EXECUTED switch (c) { 4338a: 1400 moveb %d0,%d2 <== NOT EXECUTED 4338c: 4280 clrl %d0 <== NOT EXECUTED 4338e: 1002 moveb %d2,%d0 <== NOT EXECUTED 43390: 7609 moveq #9,%d3 <== NOT EXECUTED 43392: b680 cmpl %d0,%d3 <== NOT EXECUTED 43394: 6778 beqs 4340e <== NOT EXECUTED 43396: 650e bcss 433a6 <== NOT EXECUTED 43398: 163c 0008 moveb #8,%d3 <== NOT EXECUTED 4339c: b680 cmpl %d0,%d3 <== NOT EXECUTED 4339e: 6600 00ae bnew 4344e <== NOT EXECUTED 433a2: 6000 009c braw 43440 <== NOT EXECUTED 433a6: 760a moveq #10,%d3 <== NOT EXECUTED 433a8: b680 cmpl %d0,%d3 <== NOT EXECUTED 433aa: 670c beqs 433b8 <== NOT EXECUTED 433ac: 163c 000d moveb #13,%d3 <== NOT EXECUTED 433b0: b680 cmpl %d0,%d3 <== NOT EXECUTED 433b2: 6600 009a bnew 4344e <== NOT EXECUTED 433b6: 602e bras 433e6 <== NOT EXECUTED case '\n': if (tty->termios.c_oflag & ONLRET) 433b8: 0801 0005 btst #5,%d1 <== NOT EXECUTED 433bc: 6704 beqs 433c2 <== NOT EXECUTED tty->column = 0; 433be: 42aa 0028 clrl %a2@(40) <== NOT EXECUTED if (tty->termios.c_oflag & ONLCR) { 433c2: 7004 moveq #4,%d0 <== NOT EXECUTED 433c4: c0aa 0034 andl %a2@(52),%d0 <== NOT EXECUTED 433c8: 6700 00c6 beqw 43490 <== NOT EXECUTED rtems_termios_puts ("\r", 1, tty); 433cc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 433ce: 4878 0001 pea 1 <== NOT EXECUTED 433d2: 4879 0005 410a pea 5410a <== NOT EXECUTED 433d8: 4eb9 0004 326a jsr 4326a <== NOT EXECUTED tty->column = 0; 433de: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 433e4: 6020 bras 43406 <== NOT EXECUTED } break; case '\r': if ((tty->termios.c_oflag & ONOCR) && (tty->column == 0)) 433e6: 0801 0004 btst #4,%d1 <== NOT EXECUTED 433ea: 6708 beqs 433f4 <== NOT EXECUTED 433ec: 4aaa 0028 tstl %a2@(40) <== NOT EXECUTED 433f0: 6700 00b4 beqw 434a6 <== NOT EXECUTED return; if (tty->termios.c_oflag & OCRNL) { 433f4: 44c1 movew %d1,%ccr <== NOT EXECUTED 433f6: 6a0e bpls 43406 <== NOT EXECUTED c = '\n'; 433f8: 700a moveq #10,%d0 <== NOT EXECUTED 433fa: 1d40 fffe moveb %d0,%fp@(-2) <== NOT EXECUTED if (tty->termios.c_oflag & ONLRET) 433fe: 0801 0005 btst #5,%d1 <== NOT EXECUTED 43402: 6700 008c beqw 43490 <== NOT EXECUTED tty->column = 0; break; } tty->column = 0; 43406: 42aa 0028 clrl %a2@(40) <== NOT EXECUTED 4340a: 6000 0084 braw 43490 <== NOT EXECUTED break; case '\t': i = 8 - (tty->column & 7); 4340e: 242a 0028 movel %a2@(40),%d2 <== NOT EXECUTED 43412: 7007 moveq #7,%d0 <== NOT EXECUTED 43414: c082 andl %d2,%d0 <== NOT EXECUTED 43416: 7608 moveq #8,%d3 <== NOT EXECUTED 43418: 9680 subl %d0,%d3 <== NOT EXECUTED 4341a: 2003 movel %d3,%d0 <== NOT EXECUTED if ((tty->termios.c_oflag & TABDLY) == XTABS) { 4341c: 0281 0000 1800 andil #6144,%d1 <== NOT EXECUTED 43422: 0c81 0000 1800 cmpil #6144,%d1 <== NOT EXECUTED 43428: 6612 bnes 4343c <== NOT EXECUTED tty->column += i; rtems_termios_puts ( " ", i, tty); 4342a: 2f0a movel %a2,%sp@- <== NOT EXECUTED break; case '\t': i = 8 - (tty->column & 7); if ((tty->termios.c_oflag & TABDLY) == XTABS) { tty->column += i; 4342c: d483 addl %d3,%d2 <== NOT EXECUTED 4342e: 2542 0028 movel %d2,%a2@(40) <== NOT EXECUTED rtems_termios_puts ( " ", i, tty); 43432: 2f03 movel %d3,%sp@- <== NOT EXECUTED 43434: 4879 0005 410c pea 5410c <== NOT EXECUTED 4343a: 605e bras 4349a <== NOT EXECUTED return; } tty->column += i; 4343c: d082 addl %d2,%d0 <== NOT EXECUTED 4343e: 6008 bras 43448 <== NOT EXECUTED break; case '\b': if (tty->column > 0) 43440: 202a 0028 movel %a2@(40),%d0 <== NOT EXECUTED 43444: 6f4a bles 43490 <== NOT EXECUTED tty->column--; 43446: 5380 subql #1,%d0 <== NOT EXECUTED 43448: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 4344c: 6042 bras 43490 <== NOT EXECUTED break; default: if (tty->termios.c_oflag & OLCUC) 4344e: 0801 0001 btst #1,%d1 <== NOT EXECUTED 43452: 6720 beqs 43474 <== NOT EXECUTED c = toupper(c); 43454: 2079 0005 5678 moveal 55678 <__ctype_ptr>,%a0 <== NOT EXECUTED 4345a: 4281 clrl %d1 <== NOT EXECUTED 4345c: 1202 moveb %d2,%d1 <== NOT EXECUTED 4345e: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 43462: 49c0 extbl %d0 <== NOT EXECUTED 43464: 0800 0001 btst #1,%d0 <== NOT EXECUTED 43468: 6706 beqs 43470 <== NOT EXECUTED 4346a: 0681 ffff ffe0 addil #-32,%d1 <== NOT EXECUTED 43470: 1d41 fffe moveb %d1,%fp@(-2) <== NOT EXECUTED if (!iscntrl(c)) 43474: 4280 clrl %d0 <== NOT EXECUTED 43476: 102e fffe moveb %fp@(-2),%d0 <== NOT EXECUTED 4347a: 2079 0005 5678 moveal 55678 <__ctype_ptr>,%a0 <== NOT EXECUTED 43480: 1030 0800 moveb %a0@(00000000,%d0:l),%d0 <== NOT EXECUTED 43484: 49c0 extbl %d0 <== NOT EXECUTED 43486: 0800 0005 btst #5,%d0 <== NOT EXECUTED 4348a: 6604 bnes 43490 <== NOT EXECUTED tty->column++; 4348c: 52aa 0028 addql #1,%a2@(40) <== NOT EXECUTED break; } } rtems_termios_puts (&c, 1, tty); 43490: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43492: 4878 0001 pea 1 <== NOT EXECUTED 43496: 486e fffe pea %fp@(-2) <== NOT EXECUTED 4349a: 4eb9 0004 326a jsr 4326a <== NOT EXECUTED 434a0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 434a6: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 434ac: 4e5e unlk %fp <== NOT EXECUTED 434ae: 4e75 rts 00044f98 : int posix_memalign( void **pointer, size_t alignment, size_t size ) { 44f98: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44f9c: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED /* * Update call statistics */ MSBUMP(memalign_calls, 1); 44fa0: 52b9 0005 a52c addql #1,5a52c <== NOT EXECUTED if (((alignment - 1) & alignment) != 0 || (alignment < sizeof(void *))) 44fa6: 2001 movel %d1,%d0 <== NOT EXECUTED 44fa8: 5380 subql #1,%d0 <== NOT EXECUTED 44faa: c081 andl %d1,%d0 <== NOT EXECUTED 44fac: 6610 bnes 44fbe <== NOT EXECUTED 44fae: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 44fb2: b081 cmpl %d1,%d0 <== NOT EXECUTED 44fb4: 6408 bccs 44fbe <== NOT EXECUTED /* * rtems_memalign does all of the error checking work EXCEPT * for adding restrictionso on the alignment. */ return rtems_memalign( pointer, alignment, size ); } 44fb6: 4e5e unlk %fp <== NOT EXECUTED /* * rtems_memalign does all of the error checking work EXCEPT * for adding restrictionso on the alignment. */ return rtems_memalign( pointer, alignment, size ); 44fb8: 4ef9 0004 534c jmp 4534c <== NOT EXECUTED } 44fbe: 4e5e unlk %fp <== NOT EXECUTED 44fc0: 7016 moveq #22,%d0 <== NOT EXECUTED 44fc2: 4e75 rts 00042c36 : * printk * * Kernel printf function requiring minimal infrastrure. */ void printk(const char *fmt, ...) { 42c36: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED va_list ap; /* points to each unnamed argument in turn */ va_start(ap, fmt); /* make ap point to 1st unnamed arg */ vprintk(fmt, ap); 42c3a: 486e 000c pea %fp@(12) <== NOT EXECUTED 42c3e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42c42: 4eb9 0004 29cc jsr 429cc <== NOT EXECUTED 42c48: 508f addql #8,%sp <== NOT EXECUTED va_end(ap); /* clean up when done */ } 42c4a: 4e5e unlk %fp <== NOT EXECUTED 42c4c: 4e75 rts <== NOT EXECUTED ... 000438c4 : int printk_plugin( void *ignored, const char *format, ... ) { 438c4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED va_list arg_pointer; va_start (arg_pointer, format); vprintk( format, arg_pointer ); 438c8: 486e 0010 pea %fp@(16) <== NOT EXECUTED 438cc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 438d0: 4eb9 0004 3640 jsr 43640 <== NOT EXECUTED va_end(arg_pointer); /* clean up when done */ return 0; } 438d6: 4e5e unlk %fp <== NOT EXECUTED 438d8: 4280 clrl %d0 <== NOT EXECUTED 438da: 4e75 rts 000533b0 : ssize_t read( int fd, void *buffer, size_t count ) { 533b0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 533b4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 533b8: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 533bc: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 533c0: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); 533c4: b4b9 0005 50e8 cmpl 550e8 ,%d2 <== NOT EXECUTED 533ca: 6420 bccs 533ec <== NOT EXECUTED iop = rtems_libio_iop( fd ); 533cc: 2202 movel %d2,%d1 <== NOT EXECUTED 533ce: 2002 movel %d2,%d0 <== NOT EXECUTED 533d0: e589 lsll #2,%d1 <== NOT EXECUTED 533d2: e988 lsll #4,%d0 <== NOT EXECUTED 533d4: 9081 subl %d1,%d0 <== NOT EXECUTED 533d6: 2479 0005 6b3c moveal 56b3c ,%a2 <== NOT EXECUTED 533dc: d082 addl %d2,%d0 <== NOT EXECUTED 533de: e588 lsll #2,%d0 <== NOT EXECUTED 533e0: d5c0 addal %d0,%a2 <== NOT EXECUTED rtems_libio_check_is_open( iop ); 533e2: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 533e6: 0800 0008 btst #8,%d0 <== NOT EXECUTED 533ea: 660e bnes 533fa <== NOT EXECUTED 533ec: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 533f2: 7209 moveq #9,%d1 <== NOT EXECUTED 533f4: 2040 moveal %d0,%a0 <== NOT EXECUTED 533f6: 2081 movel %d1,%a0@ <== NOT EXECUTED 533f8: 603a bras 53434 <== NOT EXECUTED rtems_libio_check_buffer( buffer ); 533fa: 4a83 tstl %d3 <== NOT EXECUTED 533fc: 670e beqs 5340c <== NOT EXECUTED rtems_libio_check_count( count ); 533fe: 4a89 tstl %a1 <== NOT EXECUTED 53400: 6604 bnes 53406 <== NOT EXECUTED 53402: 4280 clrl %d0 <== NOT EXECUTED 53404: 6048 bras 5344e <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 53406: 0800 0001 btst #1,%d0 <== NOT EXECUTED 5340a: 660e bnes 5341a <== NOT EXECUTED 5340c: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 53412: 2040 moveal %d0,%a0 <== NOT EXECUTED 53414: 7016 moveq #22,%d0 <== NOT EXECUTED 53416: 2080 movel %d0,%a0@ <== NOT EXECUTED 53418: 601a bras 53434 <== NOT EXECUTED /* * Now process the read(). */ if ( !iop->handlers->read_h ) 5341a: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 5341e: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED 53422: 4a88 tstl %a0 <== NOT EXECUTED 53424: 6612 bnes 53438 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 53426: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 5342c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5342e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 53434: 70ff moveq #-1,%d0 <== NOT EXECUTED 53436: 6016 bras 5344e <== NOT EXECUTED rc = (*iop->handlers->read_h)( iop, buffer, count ); 53438: 2f09 movel %a1,%sp@- <== NOT EXECUTED 5343a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5343c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5343e: 4e90 jsr %a0@ <== NOT EXECUTED if ( rc > 0 ) 53440: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 53446: 4a80 tstl %d0 <== NOT EXECUTED 53448: 6f04 bles 5344e <== NOT EXECUTED iop->offset += rc; 5344a: d1aa 0008 addl %d0,%a2@(8) <== NOT EXECUTED return rc; } 5344e: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 53454: 4e5e unlk %fp <== NOT EXECUTED 53456: 4e75 rts 0005c440 : /* * get next entry in a directory. */ struct dirent * readdir( DIR *dirp ) { 5c440: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 5c444: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 5c448: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED register struct dirent *dp; if ( !dirp ) 5c44c: 4a8a tstl %a2 <== NOT EXECUTED 5c44e: 6764 beqs 5c4b4 <== NOT EXECUTED return NULL; for (;;) { if (dirp->dd_loc == 0) { dirp->dd_size = getdents (dirp->dd_fd, 5c450: 47f9 0006 6098 lea 66098 ,%a3 <== NOT EXECUTED if ( !dirp ) return NULL; for (;;) { if (dirp->dd_loc == 0) { 5c456: 4aaa 0004 tstl %a2@(4) <== NOT EXECUTED 5c45a: 6618 bnes 5c474 <== NOT EXECUTED dirp->dd_size = getdents (dirp->dd_fd, 5c45c: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 5c460: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 5c464: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 5c466: 4e93 jsr %a3@ <== NOT EXECUTED dirp->dd_buf, dirp->dd_len); if (dirp->dd_size <= 0) 5c468: dffc 0000 000c addal #12,%sp <== NOT EXECUTED if ( !dirp ) return NULL; for (;;) { if (dirp->dd_loc == 0) { dirp->dd_size = getdents (dirp->dd_fd, 5c46e: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED dirp->dd_buf, dirp->dd_len); if (dirp->dd_size <= 0) 5c472: 6f40 bles 5c4b4 <== NOT EXECUTED return NULL; } if (dirp->dd_loc >= dirp->dd_size) { 5c474: 222a 0004 movel %a2@(4),%d1 <== NOT EXECUTED 5c478: b2aa 0008 cmpl %a2@(8),%d1 <== NOT EXECUTED 5c47c: 6d06 blts 5c484 <== NOT EXECUTED dirp->dd_loc = 0; 5c47e: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED 5c482: 60d2 bras 5c456 <== NOT EXECUTED continue; } dp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc); 5c484: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED 5c488: d1c1 addal %d1,%a0 <== NOT EXECUTED if ((intptr_t)dp & 03) /* bogus pointer check */ 5c48a: 2008 movel %a0,%d0 <== NOT EXECUTED 5c48c: 7403 moveq #3,%d2 <== NOT EXECUTED 5c48e: c082 andl %d2,%d0 <== NOT EXECUTED 5c490: 6622 bnes 5c4b4 <== NOT EXECUTED return NULL; if (dp->d_reclen <= 0 || 5c492: 3028 0008 movew %a0@(8),%d0 <== NOT EXECUTED 5c496: 4282 clrl %d2 <== NOT EXECUTED 5c498: 3400 movew %d0,%d2 <== NOT EXECUTED 5c49a: 6718 beqs 5c4b4 <== NOT EXECUTED 5c49c: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 5c4a0: 5280 addql #1,%d0 <== NOT EXECUTED 5c4a2: 9081 subl %d1,%d0 <== NOT EXECUTED 5c4a4: b082 cmpl %d2,%d0 <== NOT EXECUTED 5c4a6: 6d0c blts 5c4b4 <== NOT EXECUTED dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) return NULL; dirp->dd_loc += dp->d_reclen; 5c4a8: d481 addl %d1,%d2 <== NOT EXECUTED 5c4aa: 2542 0004 movel %d2,%a2@(4) <== NOT EXECUTED if (dp->d_ino == 0) 5c4ae: 4a90 tstl %a0@ <== NOT EXECUTED 5c4b0: 67a4 beqs 5c456 <== NOT EXECUTED 5c4b2: 6002 bras 5c4b6 <== NOT EXECUTED 5c4b4: 91c8 subal %a0,%a0 <== NOT EXECUTED continue; return (dp); } } 5c4b6: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 5c4bc: 4e5e unlk %fp <== NOT EXECUTED 5c4be: 2008 movel %a0,%d0 <== NOT EXECUTED 5c4c0: 4e75 rts <== NOT EXECUTED ... 0005c4c4 : ssize_t readlink( const char *pathname, char *buf, size_t bufsize ) { 5c4c4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5c4c8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c4ca: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c4cc: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED rtems_filesystem_location_info_t loc; int result; if (!buf) 5c4d0: 6610 bnes 5c4e2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 5c4d2: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5c4d8: 720e moveq #14,%d1 <== NOT EXECUTED 5c4da: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c4dc: 2081 movel %d1,%a0@ <== NOT EXECUTED 5c4de: 6000 008a braw 5c56a <== NOT EXECUTED result = rtems_filesystem_evaluate_path( pathname, 0, &loc, false ); 5c4e2: 42a7 clrl %sp@- <== NOT EXECUTED 5c4e4: 260e movel %fp,%d3 <== NOT EXECUTED 5c4e6: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 5c4ec: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c4ee: 42a7 clrl %sp@- <== NOT EXECUTED 5c4f0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c4f4: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( result != 0 ) 5c4fa: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5c500: 4a80 tstl %d0 <== NOT EXECUTED 5c502: 6666 bnes 5c56a <== NOT EXECUTED return -1; if ( !loc.ops->node_type_h ){ 5c504: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED 5c508: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED 5c50c: 4a88 tstl %a0 <== NOT EXECUTED 5c50e: 6606 bnes 5c516 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c510: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 5c514: 603c bras 5c552 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_SYM_LINK ){ 5c516: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c518: 4e90 jsr %a0@ <== NOT EXECUTED 5c51a: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5c51e: 588f addql #4,%sp <== NOT EXECUTED 5c520: 7204 moveq #4,%d1 <== NOT EXECUTED 5c522: b280 cmpl %d0,%d1 <== NOT EXECUTED 5c524: 6720 beqs 5c546 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c526: 4a88 tstl %a0 <== NOT EXECUTED 5c528: 670e beqs 5c538 <== NOT EXECUTED 5c52a: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c52e: 4a88 tstl %a0 <== NOT EXECUTED 5c530: 6706 beqs 5c538 <== NOT EXECUTED 5c532: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c534: 4e90 jsr %a0@ <== NOT EXECUTED 5c536: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 5c538: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5c53e: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c540: 7016 moveq #22,%d0 <== NOT EXECUTED 5c542: 2080 movel %d0,%a0@ <== NOT EXECUTED 5c544: 6024 bras 5c56a <== NOT EXECUTED } if ( !loc.ops->readlink_h ){ 5c546: 2268 003c moveal %a0@(60),%a1 <== NOT EXECUTED 5c54a: 4a89 tstl %a1 <== NOT EXECUTED 5c54c: 6620 bnes 5c56e <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c54e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c552: 4a88 tstl %a0 <== NOT EXECUTED 5c554: 6706 beqs 5c55c <== NOT EXECUTED 5c556: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c558: 4e90 jsr %a0@ <== NOT EXECUTED 5c55a: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5c55c: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5c562: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c564: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5c56a: 74ff moveq #-1,%d2 <== NOT EXECUTED 5c56c: 6028 bras 5c596 <== NOT EXECUTED } result = (*loc.ops->readlink_h)( &loc, buf, bufsize ); 5c56e: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5c572: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c574: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c576: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c578: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED if ( !loc.ops->readlink_h ){ rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.ops->readlink_h)( &loc, buf, bufsize ); 5c57c: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c57e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c584: 4a88 tstl %a0 <== NOT EXECUTED 5c586: 670e beqs 5c596 <== NOT EXECUTED 5c588: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c58c: 4a88 tstl %a0 <== NOT EXECUTED 5c58e: 6706 beqs 5c596 <== NOT EXECUTED 5c590: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c592: 4e90 jsr %a0@ <== NOT EXECUTED 5c594: 588f addql #4,%sp <== NOT EXECUTED return result; } 5c596: 2002 movel %d2,%d0 <== NOT EXECUTED 5c598: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 5c59c: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 5c5a0: 4e5e unlk %fp <== NOT EXECUTED 5c5a2: 4e75 rts 000534bc : { size_t old_size; char *new_area; size_t resize; MSBUMP(realloc_calls, 1); 534bc: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 534c0: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 534c4: 52b9 0005 6bb0 addql #1,56bb0 <== NOT EXECUTED 534ca: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 534ce: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED /* * Do not attempt to allocate memory if in a critical section or ISR. */ if (_System_state_Is_up(_System_state_Get())) { 534d2: 7003 moveq #3,%d0 <== NOT EXECUTED 534d4: b0b9 0005 6e36 cmpl 56e36 <_System_state_Current>,%d0 <== NOT EXECUTED 534da: 6614 bnes 534f0 <== NOT EXECUTED if (_Thread_Dispatch_disable_level > 0) 534dc: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 534e2: 6600 00b4 bnew 53598 <== NOT EXECUTED return (void *) 0; if (_ISR_Nest_level > 0) 534e6: 2039 0005 6d42 movel 56d42 <_ISR_Nest_level>,%d0 <== NOT EXECUTED 534ec: 6600 00aa bnew 53598 <== NOT EXECUTED } /* * Continue with realloc(). */ if ( !ptr ) 534f0: 4a82 tstl %d2 <== NOT EXECUTED 534f2: 6610 bnes 53504 <== NOT EXECUTED return malloc( size ); 534f4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 534f6: 4eb9 0004 92b0 jsr 492b0 <== NOT EXECUTED 534fc: 588f addql #4,%sp <== NOT EXECUTED 534fe: 2400 movel %d0,%d2 <== NOT EXECUTED 53500: 6000 0098 braw 5359a <== NOT EXECUTED if ( !size ) { 53504: 4a84 tstl %d4 <== NOT EXECUTED 53506: 660e bnes 53516 <== NOT EXECUTED free( ptr ); 53508: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5350a: 4eb9 0004 8dc4 jsr 48dc4 <== NOT EXECUTED 53510: 588f addql #4,%sp <== NOT EXECUTED 53512: 6000 0084 braw 53598 <== NOT EXECUTED return (void *) 0; } if ( !_Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, ptr, &old_size) ) { 53516: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5351a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5351c: 4879 0005 6b48 pea 56b48 <== NOT EXECUTED 53522: 4eb9 0005 3650 jsr 53650 <_Protected_heap_Get_block_size> <== NOT EXECUTED 53528: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5352e: 4a00 tstb %d0 <== NOT EXECUTED 53530: 660e bnes 53540 <== NOT EXECUTED errno = EINVAL; 53532: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 53538: 2040 moveal %d0,%a0 <== NOT EXECUTED 5353a: 7016 moveq #22,%d0 <== NOT EXECUTED 5353c: 2080 movel %d0,%a0@ <== NOT EXECUTED 5353e: 6058 bras 53598 <== NOT EXECUTED #if defined(RTEMS_MALLOC_BOUNDARY_HELPERS) if (rtems_malloc_boundary_helpers) resize += (*rtems_malloc_boundary_helpers->overhead)(); #endif if ( _Protected_heap_Resize_block( &RTEMS_Malloc_Heap, ptr, resize ) ) { 53540: 2f04 movel %d4,%sp@- <== NOT EXECUTED 53542: 2f02 movel %d2,%sp@- <== NOT EXECUTED 53544: 4879 0005 6b48 pea 56b48 <== NOT EXECUTED 5354a: 4eb9 0005 368c jsr 5368c <_Protected_heap_Resize_block> <== NOT EXECUTED 53550: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 53556: 4a00 tstb %d0 <== NOT EXECUTED 53558: 6640 bnes 5359a <== NOT EXECUTED * There used to be a free on this error case but it is wrong to * free the memory per OpenGroup Single UNIX Specification V2 * and the C Standard. */ new_area = malloc( size ); 5355a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5355c: 4eb9 0004 92b0 jsr 492b0 <== NOT EXECUTED MSBUMP(malloc_calls, -1); /* subtract off the malloc */ 53562: 53b9 0005 6ba4 subql #1,56ba4 <== NOT EXECUTED * There used to be a free on this error case but it is wrong to * free the memory per OpenGroup Single UNIX Specification V2 * and the C Standard. */ new_area = malloc( size ); 53568: 2600 movel %d0,%d3 <== NOT EXECUTED MSBUMP(malloc_calls, -1); /* subtract off the malloc */ if ( !new_area ) { 5356a: 588f addql #4,%sp <== NOT EXECUTED 5356c: 672a beqs 53598 <== NOT EXECUTED return (void *) 0; } memcpy( new_area, ptr, (size < old_size) ? size : old_size ); 5356e: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 53572: 2004 movel %d4,%d0 <== NOT EXECUTED 53574: b284 cmpl %d4,%d1 <== NOT EXECUTED 53576: 6402 bccs 5357a <== NOT EXECUTED 53578: 2001 movel %d1,%d0 <== NOT EXECUTED 5357a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5357c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5357e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 53580: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED free( ptr ); 53586: 2f02 movel %d2,%sp@- <== NOT EXECUTED 53588: 4eb9 0004 8dc4 jsr 48dc4 <== NOT EXECUTED 5358e: 2403 movel %d3,%d2 <== NOT EXECUTED 53590: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 53596: 6002 bras 5359a <== NOT EXECUTED return new_area; 53598: 4282 clrl %d2 <== NOT EXECUTED } 5359a: 2002 movel %d2,%d0 <== NOT EXECUTED 5359c: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 535a2: 4e5e unlk %fp <== NOT EXECUTED 535a4: 4e75 rts <== NOT EXECUTED ... 0005c690 : #include int rmdir( const char *pathname ) { 5c690: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5c694: 2f03 movel %d3,%sp@- <== NOT EXECUTED /* * Get the node where we wish to go. */ result = rtems_filesystem_evaluate_path( pathname, 0, &loc, false ); 5c696: 260e movel %fp,%d3 <== NOT EXECUTED 5c698: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED #include int rmdir( const char *pathname ) { 5c69e: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Get the node where we wish to go. */ result = rtems_filesystem_evaluate_path( pathname, 0, &loc, false ); 5c6a0: 42a7 clrl %sp@- <== NOT EXECUTED 5c6a2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c6a4: 42a7 clrl %sp@- <== NOT EXECUTED 5c6a6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c6aa: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( result != 0 ) 5c6b0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5c6b6: 4a80 tstl %d0 <== NOT EXECUTED 5c6b8: 6600 00bc bnew 5c776 <== NOT EXECUTED return -1; result = rtems_filesystem_evaluate_parent(RTEMS_LIBIO_PERMS_WRITE, &loc ); 5c6bc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c6be: 4878 0002 pea 2 <== NOT EXECUTED 5c6c2: 4eb9 0004 51a8 jsr 451a8 <== NOT EXECUTED 5c6c8: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED if (result != 0) { 5c6cc: 508f addql #8,%sp <== NOT EXECUTED 5c6ce: 4a80 tstl %d0 <== NOT EXECUTED 5c6d0: 671a beqs 5c6ec <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c6d2: 4a88 tstl %a0 <== NOT EXECUTED 5c6d4: 6700 00a0 beqw 5c776 <== NOT EXECUTED 5c6d8: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c6dc: 4a88 tstl %a0 <== NOT EXECUTED 5c6de: 6700 0096 beqw 5c776 <== NOT EXECUTED 5c6e2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c6e4: 4e90 jsr %a0@ <== NOT EXECUTED 5c6e6: 588f addql #4,%sp <== NOT EXECUTED 5c6e8: 6000 008c braw 5c776 <== NOT EXECUTED /* * Verify you can remove this node as a directory. */ if ( !loc.ops->node_type_h ){ 5c6ec: 2268 0010 moveal %a0@(16),%a1 <== NOT EXECUTED 5c6f0: 4a89 tstl %a1 <== NOT EXECUTED 5c6f2: 6744 beqs 5c738 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ){ 5c6f4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c6f6: 4e91 jsr %a1@ <== NOT EXECUTED 5c6f8: 588f addql #4,%sp <== NOT EXECUTED 5c6fa: 7201 moveq #1,%d1 <== NOT EXECUTED 5c6fc: b280 cmpl %d0,%d1 <== NOT EXECUTED 5c6fe: 6724 beqs 5c724 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c700: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5c704: 4a88 tstl %a0 <== NOT EXECUTED 5c706: 670e beqs 5c716 <== NOT EXECUTED 5c708: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c70c: 4a88 tstl %a0 <== NOT EXECUTED 5c70e: 6706 beqs 5c716 <== NOT EXECUTED 5c710: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c712: 4e90 jsr %a0@ <== NOT EXECUTED 5c714: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 5c716: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5c71c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c71e: 7014 moveq #20,%d0 <== NOT EXECUTED 5c720: 2080 movel %d0,%a0@ <== NOT EXECUTED 5c722: 6052 bras 5c776 <== NOT EXECUTED /* * Use the filesystems rmnod to remove the node. */ if ( !loc.handlers->rmnod_h ){ 5c724: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5c728: 2068 0034 moveal %a0@(52),%a0 <== NOT EXECUTED 5c72c: 4a88 tstl %a0 <== NOT EXECUTED 5c72e: 6626 bnes 5c756 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c730: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5c734: 4a88 tstl %a0 <== NOT EXECUTED 5c736: 670e beqs 5c746 <== NOT EXECUTED 5c738: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c73c: 4a88 tstl %a0 <== NOT EXECUTED 5c73e: 6706 beqs 5c746 <== NOT EXECUTED 5c740: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c742: 4e90 jsr %a0@ <== NOT EXECUTED 5c744: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5c746: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5c74c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c74e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5c754: 6020 bras 5c776 <== NOT EXECUTED } result = (*loc.handlers->rmnod_h)( &loc ); 5c756: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c758: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c75a: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED if ( !loc.handlers->rmnod_h ){ rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.handlers->rmnod_h)( &loc ); 5c75e: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c760: 588f addql #4,%sp <== NOT EXECUTED 5c762: 4a88 tstl %a0 <== NOT EXECUTED 5c764: 6712 beqs 5c778 <== NOT EXECUTED 5c766: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c76a: 4a88 tstl %a0 <== NOT EXECUTED 5c76c: 670a beqs 5c778 <== NOT EXECUTED 5c76e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c770: 4e90 jsr %a0@ <== NOT EXECUTED 5c772: 588f addql #4,%sp <== NOT EXECUTED 5c774: 6002 bras 5c778 <== NOT EXECUTED 5c776: 74ff moveq #-1,%d2 <== NOT EXECUTED return result; } 5c778: 2002 movel %d2,%d0 <== NOT EXECUTED 5c77a: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 5c77e: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 5c782: 4e5e unlk %fp <== NOT EXECUTED 5c784: 4e75 rts <== NOT EXECUTED ... 0004a708 : uint32_t rtems_assoc_local_by_remote( const rtems_assoc_t *ap, uint32_t remote_value ) { 4a708: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_remote(ap, remote_value); 4a70c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a710: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a714: 4eb9 0004 a740 jsr 4a740 <== NOT EXECUTED if (nap) 4a71a: 508f addql #8,%sp <== NOT EXECUTED uint32_t remote_value ) { const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_remote(ap, remote_value); 4a71c: 2040 moveal %d0,%a0 <== NOT EXECUTED if (nap) 4a71e: 4a80 tstl %d0 <== NOT EXECUTED 4a720: 6604 bnes 4a726 <== NOT EXECUTED 4a722: 4280 clrl %d0 <== NOT EXECUTED 4a724: 6004 bras 4a72a <== NOT EXECUTED return nap->local_value; 4a726: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED return 0; } 4a72a: 4e5e unlk %fp <== NOT EXECUTED 4a72c: 4e75 rts <== NOT EXECUTED ... 0004a6c8 : uint32_t rtems_assoc_local_by_remote_bitfield( const rtems_assoc_t *ap, uint32_t remote_value ) { 4a6c8: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4a6cc: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 4a6d0: 7401 moveq #1,%d2 <== NOT EXECUTED 4a6d2: 4284 clrl %d4 <== NOT EXECUTED 4a6d4: 4283 clrl %d3 <== NOT EXECUTED uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { if (b & remote_value) local_value |= rtems_assoc_local_by_remote(ap, b); 4a6d6: 45f9 0004 a708 lea 4a708 ,%a2 <== NOT EXECUTED { uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { if (b & remote_value) 4a6dc: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED ) { uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { 4a6e0: 5283 addql #1,%d3 <== NOT EXECUTED if (b & remote_value) 4a6e2: c082 andl %d2,%d0 <== NOT EXECUTED 4a6e4: 670c beqs 4a6f2 <== NOT EXECUTED local_value |= rtems_assoc_local_by_remote(ap, b); 4a6e6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a6e8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a6ec: 4e92 jsr %a2@ <== NOT EXECUTED 4a6ee: 508f addql #8,%sp <== NOT EXECUTED 4a6f0: 8880 orl %d0,%d4 <== NOT EXECUTED ) { uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { 4a6f2: d482 addl %d2,%d2 <== NOT EXECUTED 4a6f4: 7020 moveq #32,%d0 <== NOT EXECUTED 4a6f6: b083 cmpl %d3,%d0 <== NOT EXECUTED 4a6f8: 66e2 bnes 4a6dc <== NOT EXECUTED if (b & remote_value) local_value |= rtems_assoc_local_by_remote(ap, b); } return local_value; } 4a6fa: 2004 movel %d4,%d0 <== NOT EXECUTED 4a6fc: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 4a702: 4e5e unlk %fp <== NOT EXECUTED 4a704: 4e75 rts <== NOT EXECUTED ... 0004a730 : const char * rtems_assoc_name_bad( uint32_t bad_value ) { 4a730: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED sprintf(bad_buffer, "< %" PRId32 "[0x%" PRIx32 " ] >", bad_value, bad_value); #else static char bad_buffer[40] = ""; #endif return bad_buffer; } 4a734: 4e5e unlk %fp <== NOT EXECUTED 4a736: 203c 0005 5650 movel #349776,%d0 <== NOT EXECUTED 4a73c: 4e75 rts <== NOT EXECUTED ... 00048b3c : const char *rtems_assoc_name_by_local( const rtems_assoc_t *ap, uint32_t local_value ) { 48b3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48b40: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48b42: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 48b46: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48b48: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48b4c: 4eb9 0004 8b74 jsr 48b74 <== NOT EXECUTED if (nap) 48b52: 508f addql #8,%sp <== NOT EXECUTED uint32_t local_value ) { const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 48b54: 2040 moveal %d0,%a0 <== NOT EXECUTED if (nap) 48b56: 4a80 tstl %d0 <== NOT EXECUTED 48b58: 670a beqs 48b64 <== NOT EXECUTED return nap->name; return rtems_assoc_name_bad(local_value); } 48b5a: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 48b5e: 2010 movel %a0@,%d0 <== NOT EXECUTED 48b60: 4e5e unlk %fp <== NOT EXECUTED 48b62: 4e75 rts <== NOT EXECUTED nap = rtems_assoc_ptr_by_local(ap, local_value); if (nap) return nap->name; return rtems_assoc_name_bad(local_value); 48b64: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 48b68: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 48b6c: 4e5e unlk %fp <== NOT EXECUTED nap = rtems_assoc_ptr_by_local(ap, local_value); if (nap) return nap->name; return rtems_assoc_name_bad(local_value); 48b6e: 4ef9 0004 a730 jmp 4a730 <== NOT EXECUTED 00048b74 : const rtems_assoc_t *rtems_assoc_ptr_by_local( const rtems_assoc_t *ap, uint32_t local_value ) { 48b74: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48b78: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48b7a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 48b7e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48b80: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) 48b84: 2012 movel %a2@,%d0 <== NOT EXECUTED 48b86: 6718 beqs 48ba0 <== NOT EXECUTED 48b88: 4879 0005 4416 pea 54416 <== NOT EXECUTED 48b8e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48b90: 4eb9 0004 c094 jsr 4c094 <== NOT EXECUTED 48b96: 508f addql #8,%sp <== NOT EXECUTED 48b98: 4a80 tstl %d0 <== NOT EXECUTED 48b9a: 6604 bnes 48ba0 <== NOT EXECUTED default_ap = ap++; 48b9c: 200a movel %a2,%d0 <== NOT EXECUTED 48b9e: 600a bras 48baa <== NOT EXECUTED 48ba0: 4280 clrl %d0 <== NOT EXECUTED 48ba2: 600c bras 48bb0 <== NOT EXECUTED for ( ; ap->name; ap++) if (ap->local_value == local_value) 48ba4: b4aa 0004 cmpl %a2@(4),%d2 <== NOT EXECUTED 48ba8: 670c beqs 48bb6 <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) default_ap = ap++; for ( ; ap->name; ap++) 48baa: d5fc 0000 000c addal #12,%a2 <== NOT EXECUTED 48bb0: 4a92 tstl %a2@ <== NOT EXECUTED 48bb2: 66f0 bnes 48ba4 <== NOT EXECUTED 48bb4: 2440 moveal %d0,%a2 <== NOT EXECUTED if (ap->local_value == local_value) return ap; return default_ap; } 48bb6: 200a movel %a2,%d0 <== NOT EXECUTED 48bb8: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48bbc: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48bc0: 4e5e unlk %fp <== NOT EXECUTED 48bc2: 4e75 rts 0004a740 : const rtems_assoc_t *rtems_assoc_ptr_by_remote( const rtems_assoc_t *ap, uint32_t remote_value ) { 4a740: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a744: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a746: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4a74a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a74c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) 4a750: 2012 movel %a2@,%d0 <== NOT EXECUTED 4a752: 6718 beqs 4a76c <== NOT EXECUTED 4a754: 4879 0005 4416 pea 54416 <== NOT EXECUTED 4a75a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a75c: 4eb9 0004 c094 jsr 4c094 <== NOT EXECUTED 4a762: 508f addql #8,%sp <== NOT EXECUTED 4a764: 4a80 tstl %d0 <== NOT EXECUTED 4a766: 6604 bnes 4a76c <== NOT EXECUTED default_ap = ap++; 4a768: 200a movel %a2,%d0 <== NOT EXECUTED 4a76a: 600a bras 4a776 <== NOT EXECUTED 4a76c: 4280 clrl %d0 <== NOT EXECUTED 4a76e: 600c bras 4a77c <== NOT EXECUTED for ( ; ap->name; ap++) if (ap->remote_value == remote_value) 4a770: b4aa 0008 cmpl %a2@(8),%d2 <== NOT EXECUTED 4a774: 670c beqs 4a782 <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) default_ap = ap++; for ( ; ap->name; ap++) 4a776: d5fc 0000 000c addal #12,%a2 <== NOT EXECUTED 4a77c: 4a92 tstl %a2@ <== NOT EXECUTED 4a77e: 66f0 bnes 4a770 <== NOT EXECUTED 4a780: 2440 moveal %d0,%a2 <== NOT EXECUTED if (ap->remote_value == remote_value) return ap; return default_ap; } 4a782: 200a movel %a2,%d0 <== NOT EXECUTED 4a784: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4a788: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4a78c: 4e5e unlk %fp <== NOT EXECUTED 4a78e: 4e75 rts 0004a790 : uint32_t rtems_assoc_remote_by_local( const rtems_assoc_t *ap, uint32_t local_value ) { 4a790: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 4a794: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a798: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a79c: 4eb9 0004 8b74 jsr 48b74 <== NOT EXECUTED if (nap) 4a7a2: 508f addql #8,%sp <== NOT EXECUTED uint32_t local_value ) { const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 4a7a4: 2040 moveal %d0,%a0 <== NOT EXECUTED if (nap) 4a7a6: 4a80 tstl %d0 <== NOT EXECUTED 4a7a8: 6604 bnes 4a7ae <== NOT EXECUTED 4a7aa: 4280 clrl %d0 <== NOT EXECUTED 4a7ac: 6004 bras 4a7b2 <== NOT EXECUTED return nap->remote_value; 4a7ae: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED return 0; } 4a7b2: 4e5e unlk %fp <== NOT EXECUTED 4a7b4: 4e75 rts <== NOT EXECUTED ... 000450d4 : rtems_name name, rtems_attribute attribute_set, uint32_t maximum_waiters, rtems_id *id ) { 450d4: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 450d8: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 450dc: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 450e0: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 450e4: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 450e8: 286e 0014 moveal %fp@(20),%a4 <== NOT EXECUTED Barrier_Control *the_barrier; CORE_barrier_Attributes the_attributes; if ( !rtems_is_name_valid( name ) ) 450ec: 4a83 tstl %d3 <== NOT EXECUTED 450ee: 6606 bnes 450f6 <== NOT EXECUTED 450f0: 7003 moveq #3,%d0 <== NOT EXECUTED 450f2: 6000 0086 braw 4517a <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 450f6: 4a8c tstl %a4 <== NOT EXECUTED 450f8: 6604 bnes 450fe <== NOT EXECUTED 450fa: 7009 moveq #9,%d0 <== NOT EXECUTED 450fc: 607c bras 4517a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; /* Initialize core barrier attributes */ if ( _Attributes_Is_barrier_automatic( attribute_set ) ) { 450fe: 0802 0004 btst #4,%d2 <== NOT EXECUTED 45102: 670e beqs 45112 <== NOT EXECUTED the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE; if ( maximum_waiters == 0 ) 45104: 4a81 tstl %d1 <== NOT EXECUTED 45106: 6604 bnes 4510c <== NOT EXECUTED 45108: 700a moveq #10,%d0 <== NOT EXECUTED 4510a: 606e bras 4517a <== NOT EXECUTED if ( !id ) return RTEMS_INVALID_ADDRESS; /* Initialize core barrier attributes */ if ( _Attributes_Is_barrier_automatic( attribute_set ) ) { the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE; 4510c: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED 45110: 6006 bras 45118 <== NOT EXECUTED if ( maximum_waiters == 0 ) return RTEMS_INVALID_NUMBER; } else the_attributes.discipline = CORE_BARRIER_MANUAL_RELEASE; 45112: 7001 moveq #1,%d0 <== NOT EXECUTED 45114: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 45118: 2039 0005 8ddc movel 58ddc <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4511e: 5280 addql #1,%d0 <== NOT EXECUTED the_attributes.maximum_count = maximum_waiters; 45120: 2d41 fffc movel %d1,%fp@(-4) <== NOT EXECUTED 45124: 23c0 0005 8ddc movel %d0,58ddc <_Thread_Dispatch_disable_level> <== NOT EXECUTED * This function allocates a barrier control block from * the inactive chain of free barrier control blocks. */ RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Allocate( void ) { return (Barrier_Control *) _Objects_Allocate( &_Barrier_Information ); 4512a: 4879 0005 8cd4 pea 58cd4 <_Barrier_Information> <== NOT EXECUTED 45130: 4eb9 0004 6d78 jsr 46d78 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_barrier = _Barrier_Allocate(); if ( !the_barrier ) { 45136: 588f addql #4,%sp <== NOT EXECUTED 45138: 2440 moveal %d0,%a2 <== NOT EXECUTED 4513a: 47f9 0004 79ba lea 479ba <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 45140: 4a80 tstl %d0 <== NOT EXECUTED 45142: 6606 bnes 4514a <== NOT EXECUTED _Thread_Enable_dispatch(); 45144: 4e93 jsr %a3@ <== NOT EXECUTED 45146: 7005 moveq #5,%d0 <== NOT EXECUTED 45148: 6030 bras 4517a <== NOT EXECUTED return RTEMS_TOO_MANY; } the_barrier->attribute_set = attribute_set; 4514a: 2542 0010 movel %d2,%a2@(16) <== NOT EXECUTED _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 4514e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45152: 486a 0014 pea %a2@(20) <== NOT EXECUTED 45156: 4eb9 0004 6548 jsr 46548 <_CORE_barrier_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4515c: 2079 0005 8cee moveal 58cee <_Barrier_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 45162: 2543 000c movel %d3,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 45166: 4280 clrl %d0 <== NOT EXECUTED 45168: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED &_Barrier_Information, &the_barrier->Object, (Objects_Name) name ); *id = the_barrier->Object.id; 4516c: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED 45170: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); 45174: 4e93 jsr %a3@ <== NOT EXECUTED 45176: 508f addql #8,%sp <== NOT EXECUTED 45178: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4517a: 4cee 1c0c ffe4 moveml %fp@(-28),%d2-%d3/%a2-%a4 <== NOT EXECUTED 45180: 4e5e unlk %fp <== NOT EXECUTED 45182: 4e75 rts 00045184 : */ rtems_status_code rtems_barrier_delete( rtems_id id ) { 45184: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45188: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Get ( Objects_Id id, Objects_Locations *location ) { return (Barrier_Control *) 4518a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4518e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45192: 4879 0005 8cd4 pea 58cd4 <_Barrier_Information> <== NOT EXECUTED 45198: 4eb9 0004 71d8 jsr 471d8 <_Objects_Get> <== NOT EXECUTED Barrier_Control *the_barrier; Objects_Locations location; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 4519e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 451a4: 2440 moveal %d0,%a2 <== NOT EXECUTED 451a6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 451aa: 6704 beqs 451b0 <== NOT EXECUTED 451ac: 7004 moveq #4,%d0 <== NOT EXECUTED 451ae: 603a bras 451ea <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_barrier_Flush( 451b0: 4878 0002 pea 2 <== NOT EXECUTED 451b4: 42a7 clrl %sp@- <== NOT EXECUTED 451b6: 486a 0014 pea %a2@(20) <== NOT EXECUTED 451ba: 4eb9 0004 8040 jsr 48040 <_Thread_queue_Flush> <== NOT EXECUTED &the_barrier->Barrier, NULL, CORE_BARRIER_WAS_DELETED ); _Objects_Close( &_Barrier_Information, &the_barrier->Object ); 451c0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 451c2: 4879 0005 8cd4 pea 58cd4 <_Barrier_Information> <== NOT EXECUTED 451c8: 4eb9 0004 6e00 jsr 46e00 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Barrier_Free ( Barrier_Control *the_barrier ) { _Objects_Free( &_Barrier_Information, &the_barrier->Object ); 451ce: 2f0a movel %a2,%sp@- <== NOT EXECUTED 451d0: 4879 0005 8cd4 pea 58cd4 <_Barrier_Information> <== NOT EXECUTED 451d6: 4eb9 0004 7078 jsr 47078 <_Objects_Free> <== NOT EXECUTED _Barrier_Free( the_barrier ); _Thread_Enable_dispatch(); 451dc: 4eb9 0004 79ba jsr 479ba <_Thread_Enable_dispatch> <== NOT EXECUTED 451e2: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 451e8: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 451ea: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 451ee: 4e5e unlk %fp <== NOT EXECUTED 451f0: 4e75 rts <== NOT EXECUTED ... 000451f4 : rtems_status_code rtems_barrier_ident( rtems_name name, rtems_id *id ) { 451f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 451f8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 451fc: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 45202: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45206: 4879 0005 8cd4 pea 58cd4 <_Barrier_Information> <== NOT EXECUTED 4520c: 4eb9 0004 733c jsr 4733c <_Objects_Name_to_id_u32> <== NOT EXECUTED 45212: 41f9 0005 625c lea 5625c <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 45218: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4521c: 4e5e unlk %fp <== NOT EXECUTED 4521e: 4e75 rts 00045220 : rtems_status_code rtems_barrier_release( rtems_id id, uint32_t *released ) { 45220: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45224: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45226: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4522a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4522c: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED Barrier_Control *the_barrier; Objects_Locations location; if ( !released ) 45230: 4a8a tstl %a2 <== NOT EXECUTED 45232: 6604 bnes 45238 <== NOT EXECUTED 45234: 7009 moveq #9,%d0 <== NOT EXECUTED 45236: 6042 bras 4527a <== NOT EXECUTED RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Get ( Objects_Id id, Objects_Locations *location ) { return (Barrier_Control *) 45238: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4523c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4523e: 4879 0005 8cd4 pea 58cd4 <_Barrier_Information> <== NOT EXECUTED 45244: 4eb9 0004 71d8 jsr 471d8 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 4524a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45250: 2040 moveal %d0,%a0 <== NOT EXECUTED 45252: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45256: 6704 beqs 4525c <== NOT EXECUTED 45258: 7004 moveq #4,%d0 <== NOT EXECUTED 4525a: 601e bras 4527a <== NOT EXECUTED case OBJECTS_LOCAL: *released = _CORE_barrier_Release( &the_barrier->Barrier, id, NULL ); 4525c: 42a7 clrl %sp@- <== NOT EXECUTED 4525e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45260: 4868 0014 pea %a0@(20) <== NOT EXECUTED 45264: 4eb9 0004 6584 jsr 46584 <_CORE_barrier_Release> <== NOT EXECUTED 4526a: 2480 movel %d0,%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4526c: 4eb9 0004 79ba jsr 479ba <_Thread_Enable_dispatch> <== NOT EXECUTED 45272: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45278: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4527a: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4527e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45282: 4e5e unlk %fp <== NOT EXECUTED 45284: 4e75 rts <== NOT EXECUTED ... 00045288 : rtems_status_code rtems_barrier_wait( rtems_id id, rtems_interval timeout ) { 45288: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4528c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4528e: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 45292: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45296: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45298: 4879 0005 8cd4 pea 58cd4 <_Barrier_Information> <== NOT EXECUTED 4529e: 4eb9 0004 71d8 jsr 471d8 <_Objects_Get> <== NOT EXECUTED Barrier_Control *the_barrier; Objects_Locations location; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 452a4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 452aa: 2040 moveal %d0,%a0 <== NOT EXECUTED 452ac: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 452b0: 6704 beqs 452b6 <== NOT EXECUTED 452b2: 7004 moveq #4,%d0 <== NOT EXECUTED 452b4: 6032 bras 452e8 <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_barrier_Wait( 452b6: 42a7 clrl %sp@- <== NOT EXECUTED 452b8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 452bc: 4878 0001 pea 1 <== NOT EXECUTED 452c0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 452c2: 4868 0014 pea %a0@(20) <== NOT EXECUTED 452c6: 4eb9 0004 65b8 jsr 465b8 <_CORE_barrier_Wait> <== NOT EXECUTED id, TRUE, timeout, NULL ); _Thread_Enable_dispatch(); 452cc: 4eb9 0004 79ba jsr 479ba <_Thread_Enable_dispatch> <== NOT EXECUTED return _Barrier_Translate_core_barrier_return_code( 452d2: 2079 0005 8e9a moveal 58e9a <_Thread_Executing>,%a0 <== NOT EXECUTED 452d8: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 452dc: 4eb9 0004 a354 jsr 4a354 <_Barrier_Translate_core_barrier_return_code> <== NOT EXECUTED 452e2: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 452e8: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 452ec: 4e5e unlk %fp <== NOT EXECUTED 452ee: 4e75 rts 0004608c : uint32_t api, uint32_t class, uint32_t node, uint32_t index ) { 4608c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46090: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46092: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 46096: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 4609a: 761b moveq #27,%d3 <== NOT EXECUTED 4609c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4609e: e7a8 lsll %d3,%d0 <== NOT EXECUTED 460a0: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 460a4: 163c 0018 moveb #24,%d3 <== NOT EXECUTED 460a8: e7a9 lsll %d3,%d1 <== NOT EXECUTED 460aa: 8081 orl %d1,%d0 <== NOT EXECUTED 460ac: 80ae 0014 orl %fp@(20),%d0 <== NOT EXECUTED 460b0: 4842 swap %d2 <== NOT EXECUTED 460b2: 4242 clrw %d2 <== NOT EXECUTED return _Objects_Build_id( api, class, node, index ); } 460b4: 8082 orl %d2,%d0 <== NOT EXECUTED 460b6: 241f movel %sp@+,%d2 <== NOT EXECUTED 460b8: 261f movel %sp@+,%d3 <== NOT EXECUTED 460ba: 4e5e unlk %fp <== NOT EXECUTED 460bc: 4e75 rts <== NOT EXECUTED ... 000460c0 : char C1, char C2, char C3, char C4 ) { 460c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 460c4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 460c6: 142e 000b moveb %fp@(11),%d2 <== NOT EXECUTED 460ca: 7218 moveq #24,%d1 <== NOT EXECUTED 460cc: 102e 000f moveb %fp@(15),%d0 <== NOT EXECUTED 460d0: 49c2 extbl %d2 <== NOT EXECUTED 460d2: e3aa lsll %d1,%d2 <== NOT EXECUTED 460d4: 49c0 extbl %d0 <== NOT EXECUTED 460d6: 122e 0013 moveb %fp@(19),%d1 <== NOT EXECUTED 460da: 4840 swap %d0 <== NOT EXECUTED 460dc: 4240 clrw %d0 <== NOT EXECUTED 460de: 8082 orl %d2,%d0 <== NOT EXECUTED 460e0: 49c1 extbl %d1 <== NOT EXECUTED 460e2: e189 lsll #8,%d1 <== NOT EXECUTED return _Objects_Build_name( C1, C2, C3, C4 ); } 460e4: 241f movel %sp@+,%d2 <== NOT EXECUTED char C1, char C2, char C3, char C4 ) { 460e6: 8081 orl %d1,%d0 <== NOT EXECUTED 460e8: 122e 0017 moveb %fp@(23),%d1 <== NOT EXECUTED 460ec: 49c1 extbl %d1 <== NOT EXECUTED return _Objects_Build_name( C1, C2, C3, C4 ); } 460ee: 4e5e unlk %fp <== NOT EXECUTED 460f0: 8081 orl %d1,%d0 <== NOT EXECUTED 460f2: 4e75 rts 0004463c : rtems_status_code rtems_clock_get( rtems_clock_get_options option, void *time_buffer ) { 4463c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44640: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44642: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 44646: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED if ( !time_buffer ) 4464a: 4a8a tstl %a2 <== NOT EXECUTED 4464c: 6604 bnes 44652 <== NOT EXECUTED 4464e: 7009 moveq #9,%d0 <== NOT EXECUTED 44650: 6062 bras 446b4 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; switch ( option ) { 44652: 7204 moveq #4,%d1 <== NOT EXECUTED 44654: b280 cmpl %d0,%d1 <== NOT EXECUTED 44656: 6514 bcss 4466c <== NOT EXECUTED 44658: 303b 0a08 movew %pc@(44662 ,%d0:l:2),%d0 <== NOT EXECUTED 4465c: 48c0 extl %d0 <== NOT EXECUTED 4465e: 4efb 0802 jmp %pc@(44662 ,%d0:l) <== NOT EXECUTED 44662: 000e 016 <== NOT EXECUTED 44664: 001e 036 <== NOT EXECUTED 44666: 002e 056 <== NOT EXECUTED 44668: 0036 066 <== NOT EXECUTED 4466a: 0042 0102 <== NOT EXECUTED 4466c: 700a moveq #10,%d0 <== NOT EXECUTED 4466e: 6044 bras 446b4 <== NOT EXECUTED case RTEMS_CLOCK_GET_TOD: return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer ); 44670: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 44674: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 44678: 4e5e unlk %fp <== NOT EXECUTED if ( !time_buffer ) return RTEMS_INVALID_ADDRESS; switch ( option ) { case RTEMS_CLOCK_GET_TOD: return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer ); 4467a: 4ef9 0004 470c jmp 4470c <== NOT EXECUTED case RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH: return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer); 44680: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 44684: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 44688: 4e5e unlk %fp <== NOT EXECUTED switch ( option ) { case RTEMS_CLOCK_GET_TOD: return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer ); case RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH: return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer); 4468a: 4ef9 0004 46bc jmp 446bc <== NOT EXECUTED case RTEMS_CLOCK_GET_TICKS_SINCE_BOOT: { rtems_interval *interval = (rtems_interval *)time_buffer; *interval = rtems_clock_get_ticks_since_boot(); 44690: 4eb9 0004 46fc jsr 446fc <== NOT EXECUTED 44696: 6006 bras 4469e <== NOT EXECUTED return RTEMS_SUCCESSFUL; } case RTEMS_CLOCK_GET_TICKS_PER_SECOND: { rtems_interval *interval = (rtems_interval *)time_buffer; *interval = rtems_clock_get_ticks_per_second(); 44698: 4eb9 0004 46e4 jsr 446e4 <== NOT EXECUTED 4469e: 2480 movel %d0,%a2@ <== NOT EXECUTED 446a0: 4280 clrl %d0 <== NOT EXECUTED 446a2: 6010 bras 446b4 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } case RTEMS_CLOCK_GET_TIME_VALUE: return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer ); 446a4: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 446a8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 446ac: 4e5e unlk %fp <== NOT EXECUTED *interval = rtems_clock_get_ticks_per_second(); return RTEMS_SUCCESSFUL; } case RTEMS_CLOCK_GET_TIME_VALUE: return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer ); 446ae: 4ef9 0004 47c4 jmp 447c4 <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 446b4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 446b8: 4e5e unlk %fp <== NOT EXECUTED 446ba: 4e75 rts 000446bc : #include rtems_status_code rtems_clock_get_seconds_since_epoch( rtems_interval *the_interval ) { 446bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 446c0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !the_interval ) 446c4: 4a88 tstl %a0 <== NOT EXECUTED 446c6: 6604 bnes 446cc <== NOT EXECUTED 446c8: 7009 moveq #9,%d0 <== NOT EXECUTED 446ca: 6014 bras 446e0 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 446cc: 4a39 0005 6cb8 tstb 56cb8 <_TOD_Is_set> <== NOT EXECUTED 446d2: 6604 bnes 446d8 <== NOT EXECUTED 446d4: 700b moveq #11,%d0 <== NOT EXECUTED 446d6: 6008 bras 446e0 <== NOT EXECUTED return RTEMS_NOT_DEFINED; *the_interval = _TOD_Seconds_since_epoch; 446d8: 4280 clrl %d0 <== NOT EXECUTED 446da: 20b9 0005 6d36 movel 56d36 <_TOD_Now>,%a0@ <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 446e0: 4e5e unlk %fp <== NOT EXECUTED 446e2: 4e75 rts 000446e4 : #include #include #include rtems_interval rtems_clock_get_ticks_per_second(void) { 446e4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return TOD_MICROSECONDS_PER_SECOND / _TOD_Microseconds_per_tick; } 446e8: 41f9 0005 6e32 lea 56e32 <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 446ee: 4e5e unlk %fp <== NOT EXECUTED 446f0: 203c 000f 4240 movel #1000000,%d0 <== NOT EXECUTED 446f6: 4c50 0000 remul %a0@,%d0,%d0 <== NOT EXECUTED 446fa: 4e75 rts 000446fc : #include #include #include rtems_interval rtems_clock_get_ticks_since_boot(void) { 446fc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Watchdog_Ticks_since_boot; 44700: 2039 0005 6dec movel 56dec <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED } 44706: 4e5e unlk %fp <== NOT EXECUTED 44708: 4e75 rts <== NOT EXECUTED ... 0004470c : #include rtems_status_code rtems_clock_get_tod( rtems_time_of_day *time_buffer ) { 4470c: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 44710: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44712: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 44716: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_time_of_day *tmbuf = time_buffer; struct tm time; struct timeval now; if ( !time_buffer ) 44718: 4a8a tstl %a2 <== NOT EXECUTED 4471a: 6606 bnes 44722 <== NOT EXECUTED 4471c: 7009 moveq #9,%d0 <== NOT EXECUTED 4471e: 6000 0096 braw 447b6 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 44722: 4a39 0005 6cb8 tstb 56cb8 <_TOD_Is_set> <== NOT EXECUTED 44728: 6606 bnes 44730 <== NOT EXECUTED 4472a: 700b moveq #11,%d0 <== NOT EXECUTED 4472c: 6000 0088 braw 447b6 <== NOT EXECUTED ) { ISR_Level level; struct timespec now; _ISR_Disable(level); 44730: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 44736: 40c2 movew %sr,%d2 <== NOT EXECUTED 44738: 8082 orl %d2,%d0 <== NOT EXECUTED 4473a: 46c0 movew %d0,%sr <== NOT EXECUTED _TOD_Get( &now ); 4473c: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 44740: 4eb9 0004 5c58 jsr 45c58 <_TOD_Get> <== NOT EXECUTED _ISR_Enable(level); 44746: 46c2 movew %d2,%sr <== NOT EXECUTED time->tv_sec = now.tv_sec; time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 44748: 222e fff4 movel %fp@(-12),%d1 <== NOT EXECUTED /* Obtain the current time */ _TOD_Get_timeval( &now ); /* Split it into a closer format */ gmtime_r( &now.tv_sec, &time ); 4474c: 486e ffcc pea %fp@(-52) <== NOT EXECUTED 44750: 243c 0000 03e8 movel #1000,%d2 <== NOT EXECUTED 44756: 4c42 1001 remul %d2,%d1,%d1 <== NOT EXECUTED 4475a: 2d41 fffc movel %d1,%fp@(-4) <== NOT EXECUTED _ISR_Disable(level); _TOD_Get( &now ); _ISR_Enable(level); time->tv_sec = now.tv_sec; 4475e: 2d6e fff0 fff8 movel %fp@(-16),%fp@(-8) <== NOT EXECUTED 44764: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 44768: 4eb9 0004 b3d8 jsr 4b3d8 <== NOT EXECUTED tmbuf->month = time.tm_mon + 1; tmbuf->day = time.tm_mday; tmbuf->hour = time.tm_hour; tmbuf->minute = time.tm_min; tmbuf->second = time.tm_sec; tmbuf->ticks = now.tv_usec / _TOD_Microseconds_per_tick; 4476e: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 44772: 41f9 0005 6e32 lea 56e32 <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 44778: 4c50 1001 remul %a0@,%d1,%d1 <== NOT EXECUTED 4477c: 2541 0018 movel %d1,%a2@(24) <== NOT EXECUTED /* Split it into a closer format */ gmtime_r( &now.tv_sec, &time ); /* Now adjust it to the RTEMS format */ tmbuf->year = time.tm_year + 1900; 44780: 222e ffe0 movel %fp@(-32),%d1 <== NOT EXECUTED tmbuf->month = time.tm_mon + 1; 44784: 242e ffdc movel %fp@(-36),%d2 <== NOT EXECUTED /* Split it into a closer format */ gmtime_r( &now.tv_sec, &time ); /* Now adjust it to the RTEMS format */ tmbuf->year = time.tm_year + 1900; 44788: 0681 0000 076c addil #1900,%d1 <== NOT EXECUTED tmbuf->month = time.tm_mon + 1; 4478e: 5282 addql #1,%d2 <== NOT EXECUTED tmbuf->day = time.tm_mday; tmbuf->hour = time.tm_hour; tmbuf->minute = time.tm_min; tmbuf->second = time.tm_sec; tmbuf->ticks = now.tv_usec / _TOD_Microseconds_per_tick; 44790: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44796: 4280 clrl %d0 <== NOT EXECUTED /* Split it into a closer format */ gmtime_r( &now.tv_sec, &time ); /* Now adjust it to the RTEMS format */ tmbuf->year = time.tm_year + 1900; 44798: 2481 movel %d1,%a2@ <== NOT EXECUTED tmbuf->month = time.tm_mon + 1; tmbuf->day = time.tm_mday; 4479a: 256e ffd8 0008 movel %fp@(-40),%a2@(8) <== NOT EXECUTED tmbuf->hour = time.tm_hour; 447a0: 256e ffd4 000c movel %fp@(-44),%a2@(12) <== NOT EXECUTED tmbuf->minute = time.tm_min; 447a6: 256e ffd0 0010 movel %fp@(-48),%a2@(16) <== NOT EXECUTED tmbuf->second = time.tm_sec; 447ac: 256e ffcc 0014 movel %fp@(-52),%a2@(20) <== NOT EXECUTED /* Split it into a closer format */ gmtime_r( &now.tv_sec, &time ); /* Now adjust it to the RTEMS format */ tmbuf->year = time.tm_year + 1900; tmbuf->month = time.tm_mon + 1; 447b2: 2542 0004 movel %d2,%a2@(4) <== NOT EXECUTED tmbuf->minute = time.tm_min; tmbuf->second = time.tm_sec; tmbuf->ticks = now.tv_usec / _TOD_Microseconds_per_tick; return RTEMS_SUCCESSFUL; } 447b6: 242e ffc4 movel %fp@(-60),%d2 <== NOT EXECUTED 447ba: 246e ffc8 moveal %fp@(-56),%a2 <== NOT EXECUTED 447be: 4e5e unlk %fp <== NOT EXECUTED 447c0: 4e75 rts <== NOT EXECUTED ... 000447c4 : #include rtems_status_code rtems_clock_get_tod_timeval( struct timeval *time ) { 447c4: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 447c8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 447ca: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 447ce: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !time ) 447d0: 4a8a tstl %a2 <== NOT EXECUTED 447d2: 6604 bnes 447d8 <== NOT EXECUTED 447d4: 7009 moveq #9,%d0 <== NOT EXECUTED 447d6: 603e bras 44816 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 447d8: 4a39 0005 6cb8 tstb 56cb8 <_TOD_Is_set> <== NOT EXECUTED 447de: 6604 bnes 447e4 <== NOT EXECUTED 447e0: 700b moveq #11,%d0 <== NOT EXECUTED 447e2: 6032 bras 44816 <== NOT EXECUTED ) { ISR_Level level; struct timespec now; _ISR_Disable(level); 447e4: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 447ea: 40c2 movew %sr,%d2 <== NOT EXECUTED 447ec: 8082 orl %d2,%d0 <== NOT EXECUTED 447ee: 46c0 movew %d0,%sr <== NOT EXECUTED _TOD_Get( &now ); 447f0: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 447f4: 4eb9 0004 5c58 jsr 45c58 <_TOD_Get> <== NOT EXECUTED _ISR_Enable(level); 447fa: 46c2 movew %d2,%sr <== NOT EXECUTED time->tv_sec = now.tv_sec; time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 447fc: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 44800: 243c 0000 03e8 movel #1000,%d2 <== NOT EXECUTED 44806: 4c42 1001 remul %d2,%d1,%d1 <== NOT EXECUTED 4480a: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED 4480e: 588f addql #4,%sp <== NOT EXECUTED 44810: 4280 clrl %d0 <== NOT EXECUTED _ISR_Disable(level); _TOD_Get( &now ); _ISR_Enable(level); time->tv_sec = now.tv_sec; 44812: 24ae fff8 movel %fp@(-8),%a2@ <== NOT EXECUTED return RTEMS_NOT_DEFINED; _TOD_Get_timeval( time ); return RTEMS_SUCCESSFUL; } 44816: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 4481a: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4481e: 4e5e unlk %fp <== NOT EXECUTED 44820: 4e75 rts <== NOT EXECUTED ... 00044a3c : * error code - if unsuccessful */ rtems_status_code rtems_clock_get_uptime( struct timespec *uptime ) { 44a3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44a40: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !uptime ) 44a44: 6606 bnes 44a4c <== NOT EXECUTED 44a46: 103c 0009 moveb #9,%d0 <== NOT EXECUTED 44a4a: 600c bras 44a58 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _TOD_Get_uptime( uptime ); 44a4c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44a4e: 4eb9 0004 605c jsr 4605c <_TOD_Get_uptime> <== NOT EXECUTED 44a54: 588f addql #4,%sp <== NOT EXECUTED 44a56: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 44a58: 4e5e unlk %fp <== NOT EXECUTED 44a5a: 4e75 rts 000454cc : */ rtems_status_code rtems_clock_set( rtems_time_of_day *time_buffer ) { 454cc: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 454d0: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 454d4: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED struct timespec newtime; if ( !time_buffer ) 454d8: 4a8a tstl %a2 <== NOT EXECUTED 454da: 6604 bnes 454e0 <== NOT EXECUTED 454dc: 7009 moveq #9,%d0 <== NOT EXECUTED 454de: 6060 bras 45540 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( _TOD_Validate( time_buffer ) ) { 454e0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 454e2: 4eb9 0004 563c jsr 4563c <_TOD_Validate> <== NOT EXECUTED 454e8: 588f addql #4,%sp <== NOT EXECUTED 454ea: 4a00 tstb %d0 <== NOT EXECUTED 454ec: 6604 bnes 454f2 <== NOT EXECUTED 454ee: 7014 moveq #20,%d0 <== NOT EXECUTED 454f0: 604e bras 45540 <== NOT EXECUTED newtime.tv_sec = _TOD_To_seconds( time_buffer ); 454f2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 454f4: 4eb9 0004 5588 jsr 45588 <_TOD_To_seconds> <== NOT EXECUTED newtime.tv_nsec = time_buffer->ticks * 454fa: 242a 0018 movel %a2@(24),%d2 <== NOT EXECUTED 454fe: 41f9 0006 115a lea 6115a <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 45504: 4c10 2800 mulsl %a0@,%d2 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 45508: 2079 0006 0fcc moveal 60fcc <_Thread_Dispatch_disable_level>,%a0 <== NOT EXECUTED 4550e: 2602 movel %d2,%d3 <== NOT EXECUTED 45510: 2202 movel %d2,%d1 <== NOT EXECUTED 45512: e58b lsll #2,%d3 <== NOT EXECUTED 45514: ef89 lsll #7,%d1 <== NOT EXECUTED 45516: 9283 subl %d3,%d1 <== NOT EXECUTED 45518: d282 addl %d2,%d1 <== NOT EXECUTED 4551a: 5288 addql #1,%a0 <== NOT EXECUTED 4551c: e789 lsll #3,%d1 <== NOT EXECUTED 4551e: 2d41 fffc movel %d1,%fp@(-4) <== NOT EXECUTED 45522: 23c8 0006 0fcc movel %a0,60fcc <_Thread_Dispatch_disable_level> <== NOT EXECUTED if ( !time_buffer ) return RTEMS_INVALID_ADDRESS; if ( _TOD_Validate( time_buffer ) ) { newtime.tv_sec = _TOD_To_seconds( time_buffer ); 45528: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED newtime.tv_nsec = time_buffer->ticks * (_TOD_Microseconds_per_tick * TOD_NANOSECONDS_PER_MICROSECOND); _Thread_Disable_dispatch(); _TOD_Set( &newtime ); 4552c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45530: 4eb9 0004 6d48 jsr 46d48 <_TOD_Set> <== NOT EXECUTED _Thread_Enable_dispatch(); 45536: 4eb9 0004 7de6 jsr 47de6 <_Thread_Enable_dispatch> <== NOT EXECUTED 4553c: 508f addql #8,%sp <== NOT EXECUTED 4553e: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } return RTEMS_INVALID_CLOCK; } 45540: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 45546: 4e5e unlk %fp <== NOT EXECUTED 45548: 4e75 rts <== NOT EXECUTED ... 00044824 : * error code - if unsuccessful */ rtems_status_code rtems_clock_set_nanoseconds_extension( rtems_nanoseconds_extension_routine routine ) { 44824: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44828: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED if ( !routine ) 4482c: 6604 bnes 44832 <== NOT EXECUTED 4482e: 7009 moveq #9,%d0 <== NOT EXECUTED 44830: 6008 bras 4483a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _Watchdog_Nanoseconds_since_tick_handler = routine; 44832: 4280 clrl %d0 <== NOT EXECUTED 44834: 23c1 0005 6e3a movel %d1,56e3a <_Watchdog_Nanoseconds_since_tick_handler> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4483a: 4e5e unlk %fp <== NOT EXECUTED 4483c: 4e75 rts <== NOT EXECUTED ... 00044840 : * * NOTE: This routine only works for leap-years through 2099. */ rtems_status_code rtems_clock_tick( void ) { 44840: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _TOD_Tickle_ticks(); 44844: 4eb9 0004 5cf0 jsr 45cf0 <_TOD_Tickle_ticks> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_ticks( void ) { _Watchdog_Tickle( &_Watchdog_Ticks_chain ); 4484a: 4879 0005 6d80 pea 56d80 <_Watchdog_Ticks_chain> <== NOT EXECUTED 44850: 4eb9 0004 7d5c jsr 47d5c <_Watchdog_Tickle> <== NOT EXECUTED _Watchdog_Tickle_ticks(); _Thread_Tickle_timeslice(); 44856: 4eb9 0004 7820 jsr 47820 <_Thread_Tickle_timeslice> <== NOT EXECUTED if ( _Thread_Is_context_switch_necessary() && 4485c: 588f addql #4,%sp <== NOT EXECUTED * otherwise. */ RTEMS_INLINE_ROUTINE bool _Thread_Is_context_switch_necessary( void ) { return ( _Context_Switch_necessary ); 4485e: 1039 0005 6d72 moveb 56d72 <_Context_Switch_necessary>,%d0 <== NOT EXECUTED 44864: 670e beqs 44874 <== NOT EXECUTED * otherwise. */ RTEMS_INLINE_ROUTINE bool _Thread_Is_dispatching_enabled( void ) { return ( _Thread_Dispatch_disable_level == 0 ); 44866: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4486c: 6606 bnes 44874 <== NOT EXECUTED _Thread_Is_dispatching_enabled() ) _Thread_Dispatch(); 4486e: 4eb9 0004 6afc jsr 46afc <_Thread_Dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 44874: 4e5e unlk %fp <== NOT EXECUTED 44876: 4280 clrl %d0 <== NOT EXECUTED 44878: 4e75 rts <== NOT EXECUTED ... 00042980 : void rtems_cpu_usage_report( void ) { 42980: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_cpu_usage_report_with_plugin( NULL, printk_plugin ); 42984: 4879 0004 38c4 pea 438c4 <== NOT EXECUTED 4298a: 42a7 clrl %sp@- <== NOT EXECUTED 4298c: 4eb9 0004 2800 jsr 42800 <== NOT EXECUTED 42992: 508f addql #8,%sp <== NOT EXECUTED } 42994: 4e5e unlk %fp <== NOT EXECUTED 42996: 4e75 rts 00042800 : void rtems_cpu_usage_report_with_plugin( void *context, rtems_printk_plugin_t print ) { 42800: 4e56 ffa0 linkw %fp,#-96 <== NOT EXECUTED 42804: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 42808: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4280c: 2a6e 000c moveal %fp@(12),%a5 <== NOT EXECUTED struct timespec uptime, total, ran; #else uint32_t total_units = 0; #endif if ( !print ) 42810: 4a8d tstl %a5 <== NOT EXECUTED 42812: 6700 0162 beqw 42976 <== NOT EXECUTED * When not using nanosecond CPU usage resolution, we have to count * the number of "ticks" we gave credit for to give the user a rough * guideline as to what each number means proportionally. */ #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS _TOD_Get_uptime( &uptime ); 42816: 240e movel %fp,%d2 <== NOT EXECUTED 42818: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 4281e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42820: 4eb9 0004 6cb0 jsr 46cb0 <_TOD_Get_uptime> <== NOT EXECUTED _Timespec_Subtract( &CPU_usage_Uptime_at_last_reset, &uptime, &total ); 42826: 200e movel %fp,%d0 <== NOT EXECUTED 42828: 0680 ffff ffe8 addil #-24,%d0 <== NOT EXECUTED 4282e: 2f00 movel %d0,%sp@- <== NOT EXECUTED the_thread = (Thread_Control *)information->local_table[ i ]; if ( !the_thread ) continue; rtems_object_get_name( the_thread->Object.id, sizeof(name), name ); 42830: 2e0e movel %fp,%d7 <== NOT EXECUTED _Timespec_Subtract( &_Thread_Time_of_last_context_switch, &uptime, &used ); _Timespec_Add_to( &ran, &used ); }; _Timespec_Divide( &ran, &total, &ival, &fval ); 42832: 2a0e movel %fp,%d5 <== NOT EXECUTED * the number of "ticks" we gave credit for to give the user a rough * guideline as to what each number means proportionally. */ #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS _TOD_Get_uptime( &uptime ); _Timespec_Subtract( &CPU_usage_Uptime_at_last_reset, &uptime, &total ); 42834: 2f02 movel %d2,%sp@- <== NOT EXECUTED } } } #endif (*print)( context, "CPU Usage by thread\n" 42836: 49f9 0006 0f88 lea 60f88 <_Objects_Information_table+0x4>,%a4 <== NOT EXECUTED * the number of "ticks" we gave credit for to give the user a rough * guideline as to what each number means proportionally. */ #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS _TOD_Get_uptime( &uptime ); _Timespec_Subtract( &CPU_usage_Uptime_at_last_reset, &uptime, &total ); 4283c: 4879 0006 11ea pea 611ea <== NOT EXECUTED 42842: 4eb9 0004 8d0c jsr 48d0c <_Timespec_Subtract> <== NOT EXECUTED } } } #endif (*print)( context, "CPU Usage by thread\n" 42848: 4879 0005 60d0 pea 560d0 <== NOT EXECUTED the_thread = (Thread_Control *)information->local_table[ i ]; if ( !the_thread ) continue; rtems_object_get_name( the_thread->Object.id, sizeof(name), name ); 4284e: 0687 ffff ffcb addil #-53,%d7 <== NOT EXECUTED _Timespec_Subtract( &_Thread_Time_of_last_context_switch, &uptime, &used ); _Timespec_Add_to( &ran, &used ); }; _Timespec_Divide( &ran, &total, &ival, &fval ); 42854: 0685 ffff ffe0 addil #-32,%d5 <== NOT EXECUTED } } } #endif (*print)( context, "CPU Usage by thread\n" 4285a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4285c: 4e95 jsr %a5@ <== NOT EXECUTED 4285e: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED ); for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) { if ( !_Objects_Information_table[ api_index ] ) 42864: 2054 moveal %a4@,%a0 <== NOT EXECUTED 42866: 4a88 tstl %a0 <== NOT EXECUTED 42868: 6700 00dc beqw 42946 <== NOT EXECUTED continue; information = _Objects_Information_table[ api_index ][ 1 ]; 4286c: 2668 0004 moveal %a0@(4),%a3 <== NOT EXECUTED if ( information ) { 42870: 4a8b tstl %a3 <== NOT EXECUTED 42872: 6700 00d2 beqw 42946 <== NOT EXECUTED * since the last context switch. */ ran = the_thread->cpu_time_used; if ( _Thread_Executing->Object.id == the_thread->Object.id ) { struct timespec used; _Timespec_Subtract( 42876: 280e movel %fp,%d4 <== NOT EXECUTED api_index <= OBJECTS_APIS_LAST ; api_index++ ) { if ( !_Objects_Information_table[ api_index ] ) continue; information = _Objects_Information_table[ api_index ][ 1 ]; if ( information ) { 42878: 7401 moveq #1,%d2 <== NOT EXECUTED * since the last context switch. */ ran = the_thread->cpu_time_used; if ( _Thread_Executing->Object.id == the_thread->Object.id ) { struct timespec used; _Timespec_Subtract( 4287a: 0684 ffff ffd8 addil #-40,%d4 <== NOT EXECUTED 42880: 6000 00b8 braw 4293a <== NOT EXECUTED if ( !_Objects_Information_table[ api_index ] ) continue; information = _Objects_Information_table[ api_index ][ 1 ]; if ( information ) { for ( i=1 ; i <= information->maximum ; i++ ) { the_thread = (Thread_Control *)information->local_table[ i ]; 42884: 206b 001a moveal %a3@(26),%a0 <== NOT EXECUTED 42888: 2470 2c00 moveal %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED if ( !the_thread ) 4288c: 4a8a tstl %a2 <== NOT EXECUTED 4288e: 6700 00a8 beqw 42938 <== NOT EXECUTED continue; rtems_object_get_name( the_thread->Object.id, sizeof(name), name ); 42892: 2f07 movel %d7,%sp@- <== NOT EXECUTED 42894: 4878 000d pea d <== NOT EXECUTED 42898: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 4289c: 4eb9 0004 5a50 jsr 45a50 <== NOT EXECUTED (*print)( 428a2: 2f07 movel %d7,%sp@- <== NOT EXECUTED 428a4: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 428a8: 4879 0005 6115 pea 56115 <== NOT EXECUTED 428ae: 2f03 movel %d3,%sp@- <== NOT EXECUTED 428b0: 4e95 jsr %a5@ <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS /* * If this is the currently executing thread, account for time * since the last context switch. */ ran = the_thread->cpu_time_used; 428b2: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 428b6: 2d6a 0088 ffe4 movel %a2@(136),%fp@(-28) <== NOT EXECUTED if ( _Thread_Executing->Object.id == the_thread->Object.id ) { 428bc: 2079 0006 108a moveal 6108a <_Thread_Executing>,%a0 <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS /* * If this is the currently executing thread, account for time * since the last context switch. */ ran = the_thread->cpu_time_used; 428c2: 2d40 ffe0 movel %d0,%fp@(-32) <== NOT EXECUTED if ( _Thread_Executing->Object.id == the_thread->Object.id ) { 428c6: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 428ca: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 428d0: b5e8 0008 cmpal %a0@(8),%a2 <== NOT EXECUTED 428d4: 6622 bnes 428f8 <== NOT EXECUTED struct timespec used; _Timespec_Subtract( 428d6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 428d8: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 428dc: 4879 0006 1092 pea 61092 <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 428e2: 4eb9 0004 8d0c jsr 48d0c <_Timespec_Subtract> <== NOT EXECUTED &_Thread_Time_of_last_context_switch, &uptime, &used ); _Timespec_Add_to( &ran, &used ); 428e8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 428ea: 2f05 movel %d5,%sp@- <== NOT EXECUTED 428ec: 4eb9 0004 8b9c jsr 48b9c <_Timespec_Add_to> <== NOT EXECUTED 428f2: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED }; _Timespec_Divide( &ran, &total, &ival, &fval ); 428f8: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 428fc: 486e fffc pea %fp@(-4) <== NOT EXECUTED 42900: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED 42904: 2f05 movel %d5,%sp@- <== NOT EXECUTED 42906: 4eb9 0004 8bd4 jsr 48bd4 <_Timespec_Divide> <== NOT EXECUTED /* * Print the information */ (*print)( context, 4290c: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 42910: 202e ffe4 movel %fp@(-28),%d0 <== NOT EXECUTED 42914: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 42918: 223c 0000 03e8 movel #1000,%d1 <== NOT EXECUTED 4291e: 4c41 0000 remul %d1,%d0,%d0 <== NOT EXECUTED 42922: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42924: 2f2e ffe0 movel %fp@(-32),%sp@- <== NOT EXECUTED 42928: 4879 0005 6128 pea 56128 <== NOT EXECUTED 4292e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42930: 4e95 jsr %a5@ <== NOT EXECUTED 42932: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED api_index++ ) { if ( !_Objects_Information_table[ api_index ] ) continue; information = _Objects_Information_table[ api_index ][ 1 ]; if ( information ) { for ( i=1 ; i <= information->maximum ; i++ ) { 42938: 5282 addql #1,%d2 <== NOT EXECUTED 4293a: 4280 clrl %d0 <== NOT EXECUTED 4293c: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 42940: b082 cmpl %d2,%d0 <== NOT EXECUTED 42942: 6400 ff40 bccw 42884 <== NOT EXECUTED 42946: 588c addql #4,%a4 <== NOT EXECUTED " ID NAME TICKS PERCENT\n" #endif ); for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; 42948: b9fc 0006 0f98 cmpal #397208,%a4 <== NOT EXECUTED 4294e: 6600 ff14 bnew 42864 <== NOT EXECUTED } } } #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS (*print)( context, "Time since last CPU Usage reset %" PRId32 42952: 202e ffec movel %fp@(-20),%d0 <== NOT EXECUTED 42956: 243c 0000 03e8 movel #1000,%d2 <== NOT EXECUTED 4295c: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 42960: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42962: 2f2e ffe8 movel %fp@(-24),%sp@- <== NOT EXECUTED 42966: 4879 0005 6140 pea 56140 <== NOT EXECUTED 4296c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4296e: 4e95 jsr %a5@ <== NOT EXECUTED 42970: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED "Ticks since last reset = %" PRId32 "\n", _Watchdog_Ticks_since_boot - CPU_usage_Ticks_at_last_reset ); (*print)( context, "Total Units = %" PRId32 "\n", total_units ); #endif } 42976: 4cee 3cfc ffa0 moveml %fp@(-96),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4297c: 4e5e unlk %fp <== NOT EXECUTED 4297e: 4e75 rts 000429ac : /* * rtems_cpu_usage_reset */ void rtems_cpu_usage_reset( void ) { 429ac: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS _TOD_Get_uptime( &CPU_usage_Uptime_at_last_reset ); 429b0: 4879 0006 11ea pea 611ea <== NOT EXECUTED 429b6: 4eb9 0004 6cb0 jsr 46cb0 <_TOD_Get_uptime> <== NOT EXECUTED _Thread_Time_of_last_context_switch = CPU_usage_Uptime_at_last_reset; 429bc: 2039 0006 11ea movel 611ea ,%d0 <== NOT EXECUTED 429c2: 2239 0006 11ee movel 611ee ,%d1 <== NOT EXECUTED #else CPU_usage_Ticks_at_last_reset = _Watchdog_Ticks_since_boot; #endif rtems_iterate_over_all_threads(CPU_usage_Per_thread_handler); 429c8: 487a ffce pea %pc@(42998 ) <== NOT EXECUTED */ void rtems_cpu_usage_reset( void ) { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS _TOD_Get_uptime( &CPU_usage_Uptime_at_last_reset ); _Thread_Time_of_last_context_switch = CPU_usage_Uptime_at_last_reset; 429cc: 23c0 0006 1092 movel %d0,61092 <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 429d2: 23c1 0006 1096 movel %d1,61096 <_Thread_Time_of_last_context_switch+0x4> <== NOT EXECUTED #else CPU_usage_Ticks_at_last_reset = _Watchdog_Ticks_since_boot; #endif rtems_iterate_over_all_threads(CPU_usage_Per_thread_handler); 429d8: 4eb9 0004 70d0 jsr 470d0 <== NOT EXECUTED 429de: 508f addql #8,%sp <== NOT EXECUTED } 429e0: 4e5e unlk %fp <== NOT EXECUTED 429e2: 4e75 rts 000499b8 : */ void rtems_debug_disable ( rtems_debug_control to_be_disabled ) { 499b8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Debug_Level &= ~to_be_disabled; 499bc: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED } 499c0: 4e5e unlk %fp <== NOT EXECUTED void rtems_debug_disable ( rtems_debug_control to_be_disabled ) { _Debug_Level &= ~to_be_disabled; 499c2: 4680 notl %d0 <== NOT EXECUTED 499c4: c1b9 0005 6d66 andl %d0,56d66 <_Debug_Level> <== NOT EXECUTED } 499ca: 4e75 rts 000499a6 : */ void rtems_debug_enable ( rtems_debug_control to_be_enabled ) { 499a6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Debug_Level |= to_be_enabled; 499aa: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED } 499ae: 4e5e unlk %fp <== NOT EXECUTED void rtems_debug_enable ( rtems_debug_control to_be_enabled ) { _Debug_Level |= to_be_enabled; 499b0: 81b9 0005 6d66 orl %d0,56d66 <_Debug_Level> <== NOT EXECUTED } 499b6: 4e75 rts 0004a37a : { 0, 0, 0 }, }; static int rtems_deviceio_errno(rtems_status_code code) { 4a37a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a37e: 2f02 movel %d2,%sp@- <== NOT EXECUTED int rc; if ((rc = rtems_assoc_remote_by_local(errno_assoc, (uint32_t) code))) 4a380: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a384: 4879 0005 4552 pea 54552 <== NOT EXECUTED 4a38a: 4eb9 0004 a790 jsr 4a790 <== NOT EXECUTED 4a390: 508f addql #8,%sp <== NOT EXECUTED 4a392: 2400 movel %d0,%d2 <== NOT EXECUTED 4a394: 670a beqs 4a3a0 <== NOT EXECUTED { errno = rc; 4a396: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 4a39c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a39e: 2082 movel %d2,%a0@ <== NOT EXECUTED return -1; } return -1; } 4a3a0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4a3a4: 4e5e unlk %fp <== NOT EXECUTED 4a3a6: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a3a8: 4e75 rts 0004203a : int rtems_error( int error_flag, const char *printf_format, ... ) { 4203a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED va_list arglist; int chars_written; va_start(arglist, printf_format); chars_written = rtems_verror(error_flag, printf_format, arglist); 4203e: 486e 0010 pea %fp@(16) <== NOT EXECUTED 42042: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 42046: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4204a: 4eba fe38 jsr %pc@(41e84 ) <== NOT EXECUTED va_end(arglist); return chars_written; } 4204e: 4e5e unlk %fp <== NOT EXECUTED 42050: 4e75 rts <== NOT EXECUTED ... 0004487c : rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 4487c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44880: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 44884: 226e 0014 moveal %fp@(20),%a1 <== NOT EXECUTED RTEMS_API_Control *api; if ( !event_out ) 44888: 4a89 tstl %a1 <== NOT EXECUTED 4488a: 6604 bnes 44890 <== NOT EXECUTED 4488c: 7009 moveq #9,%d0 <== NOT EXECUTED 4488e: 604a bras 448da <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; 44890: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED 44896: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED if ( _Event_sets_Is_empty( event_in ) ) { 4489a: 4a81 tstl %d1 <== NOT EXECUTED 4489c: 6606 bnes 448a4 <== NOT EXECUTED *event_out = api->pending_events; 4489e: 2290 movel %a0@,%a1@ <== NOT EXECUTED 448a0: 4280 clrl %d0 <== NOT EXECUTED 448a2: 6036 bras 448da <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 448a4: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 448aa: 5280 addql #1,%d0 <== NOT EXECUTED 448ac: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Disable_dispatch(); _Event_Seize( event_in, option_set, ticks, event_out ); 448b2: 2f09 movel %a1,%sp@- <== NOT EXECUTED 448b4: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 448b8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 448bc: 2f01 movel %d1,%sp@- <== NOT EXECUTED 448be: 4eb9 0004 48e0 jsr 448e0 <_Event_Seize> <== NOT EXECUTED _Thread_Enable_dispatch(); 448c4: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED return( _Thread_Executing->Wait.return_code ); 448ca: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED 448d0: 2028 0034 movel %a0@(52),%d0 <== NOT EXECUTED 448d4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 448da: 4e5e unlk %fp <== NOT EXECUTED 448dc: 4e75 rts <== NOT EXECUTED ... 000449e4 : rtems_status_code rtems_event_send( Objects_Id id, rtems_event_set event_in ) { 449e4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; the_thread = _Thread_Get( id, &location ); 449e8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 449ec: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 449f0: 4eb9 0004 6c78 jsr 46c78 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 449f6: 508f addql #8,%sp <== NOT EXECUTED { register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; the_thread = _Thread_Get( id, &location ); 449f8: 2240 moveal %d0,%a1 <== NOT EXECUTED switch ( location ) { 449fa: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 449fe: 6704 beqs 44a04 <== NOT EXECUTED 44a00: 7004 moveq #4,%d0 <== NOT EXECUTED 44a02: 602a bras 44a2e <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; 44a04: 2069 010c moveal %a1@(268),%a0 <== NOT EXECUTED rtems_event_set *the_event_set ) { ISR_Level level; _ISR_Disable( level ); 44a08: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 44a0e: 40c0 movew %sr,%d0 <== NOT EXECUTED 44a10: 8280 orl %d0,%d1 <== NOT EXECUTED 44a12: 46c1 movew %d1,%sr <== NOT EXECUTED *the_event_set |= the_new_events; 44a14: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 44a18: 8390 orl %d1,%a0@ <== NOT EXECUTED _ISR_Enable( level ); 44a1a: 46c0 movew %d0,%sr <== NOT EXECUTED _Event_sets_Post( event_in, &api->pending_events ); _Event_Surrender( the_thread ); 44a1c: 2f09 movel %a1,%sp@- <== NOT EXECUTED 44a1e: 4eb9 0004 4a34 jsr 44a34 <_Event_Surrender> <== NOT EXECUTED _Thread_Enable_dispatch(); 44a24: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 44a2a: 588f addql #4,%sp <== NOT EXECUTED 44a2c: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 44a2e: 4e5e unlk %fp <== NOT EXECUTED 44a30: 4e75 rts <== NOT EXECUTED ... 00048fdc : rtems_status_code rtems_extension_create( rtems_name name, rtems_extensions_table *extension_table, Objects_Id *id ) { 48fdc: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48fe0: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 48fe4: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 48fe8: 286e 0010 moveal %fp@(16),%a4 <== NOT EXECUTED Extension_Control *the_extension; if ( !id ) 48fec: 4a8c tstl %a4 <== NOT EXECUTED 48fee: 6604 bnes 48ff4 <== NOT EXECUTED 48ff0: 7009 moveq #9,%d0 <== NOT EXECUTED 48ff2: 6062 bras 49056 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !rtems_is_name_valid( name ) ) 48ff4: 4a82 tstl %d2 <== NOT EXECUTED 48ff6: 6604 bnes 48ffc <== NOT EXECUTED 48ff8: 7003 moveq #3,%d0 <== NOT EXECUTED 48ffa: 605a bras 49056 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 48ffc: 2039 0006 298c movel 6298c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 49002: 5280 addql #1,%d0 <== NOT EXECUTED 49004: 23c0 0006 298c movel %d0,6298c <_Thread_Dispatch_disable_level> <== NOT EXECUTED * the inactive chain of free extension control blocks. */ RTEMS_INLINE_ROUTINE Extension_Control *_Extension_Allocate( void ) { return (Extension_Control *) _Objects_Allocate( &_Extension_Information ); 4900a: 4879 0006 2b42 pea 62b42 <_Extension_Information> <== NOT EXECUTED 49010: 4eb9 0004 9bc8 jsr 49bc8 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_extension = _Extension_Allocate(); if ( !the_extension ) { 49016: 588f addql #4,%sp <== NOT EXECUTED 49018: 2440 moveal %d0,%a2 <== NOT EXECUTED 4901a: 47f9 0004 a87a lea 4a87a <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 49020: 4a80 tstl %d0 <== NOT EXECUTED 49022: 6606 bnes 4902a <== NOT EXECUTED _Thread_Enable_dispatch(); 49024: 4e93 jsr %a3@ <== NOT EXECUTED 49026: 7005 moveq #5,%d0 <== NOT EXECUTED 49028: 602c bras 49056 <== NOT EXECUTED return RTEMS_TOO_MANY; } _User_extensions_Add_set( &the_extension->Extension, extension_table ); 4902a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4902e: 486a 0010 pea %a2@(16) <== NOT EXECUTED 49032: 4eb9 0004 b5f0 jsr 4b5f0 <_User_extensions_Add_set> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 49038: 4280 clrl %d0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4903a: 2542 000c movel %d2,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4903e: 2079 0006 2b5c moveal 62b5c <_Extension_Information+0x1a>,%a0 <== NOT EXECUTED 49044: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED &_Extension_Information, &the_extension->Object, (Objects_Name) name ); *id = the_extension->Object.id; 49048: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED 4904c: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); 49050: 4e93 jsr %a3@ <== NOT EXECUTED 49052: 508f addql #8,%sp <== NOT EXECUTED 49054: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 49056: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 4905c: 4e5e unlk %fp <== NOT EXECUTED 4905e: 4e75 rts 00049060 : */ rtems_status_code rtems_extension_delete( Objects_Id id ) { 49060: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 49064: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Extension_Control *_Extension_Get ( Objects_Id id, Objects_Locations *location ) { return (Extension_Control *) 49066: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4906a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4906e: 4879 0006 2b42 pea 62b42 <_Extension_Information> <== NOT EXECUTED 49074: 4eb9 0004 a028 jsr 4a028 <_Objects_Get> <== NOT EXECUTED Extension_Control *the_extension; Objects_Locations location; the_extension = _Extension_Get( id, &location ); switch ( location ) { 4907a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49080: 2440 moveal %d0,%a2 <== NOT EXECUTED 49082: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 49086: 6704 beqs 4908c <== NOT EXECUTED 49088: 7004 moveq #4,%d0 <== NOT EXECUTED 4908a: 6034 bras 490c0 <== NOT EXECUTED case OBJECTS_LOCAL: _User_extensions_Remove_set( &the_extension->Extension ); 4908c: 486a 0010 pea %a2@(16) <== NOT EXECUTED 49090: 4eb9 0004 b704 jsr 4b704 <_User_extensions_Remove_set> <== NOT EXECUTED _Objects_Close( &_Extension_Information, &the_extension->Object ); 49096: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49098: 4879 0006 2b42 pea 62b42 <_Extension_Information> <== NOT EXECUTED 4909e: 4eb9 0004 9c50 jsr 49c50 <_Objects_Close> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Extension_Free ( Extension_Control *the_extension ) { _Objects_Free( &_Extension_Information, &the_extension->Object ); 490a4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 490a6: 4879 0006 2b42 pea 62b42 <_Extension_Information> <== NOT EXECUTED 490ac: 4eb9 0004 9ec8 jsr 49ec8 <_Objects_Free> <== NOT EXECUTED _Extension_Free( the_extension ); _Thread_Enable_dispatch(); 490b2: 4eb9 0004 a87a jsr 4a87a <_Thread_Enable_dispatch> <== NOT EXECUTED 490b8: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 490be: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 490c0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 490c4: 4e5e unlk %fp <== NOT EXECUTED 490c6: 4e75 rts 00046ce0 : rtems_status_code rtems_extension_ident( rtems_name name, Objects_Id *id ) { 46ce0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 46ce4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 46ce8: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 46cee: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46cf2: 4879 0005 a55a pea 5a55a <_Extension_Information> <== NOT EXECUTED 46cf8: 4eb9 0004 7d9c jsr 47d9c <_Objects_Name_to_id_u32> <== NOT EXECUTED 46cfe: 41f9 0005 7604 lea 57604 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 46d04: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 46d08: 4e5e unlk %fp <== NOT EXECUTED 46d0a: 4e75 rts 00045570 : */ void rtems_fatal_error_occurred( uint32_t the_error ) { 45570: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, FALSE, the_error ); 45574: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45578: 42a7 clrl %sp@- <== NOT EXECUTED 4557a: 4878 0001 pea 1 <== NOT EXECUTED 4557e: 4eb9 0004 5f40 jsr 45f40 <_Internal_error_Occurred> <== NOT EXECUTED 00042054 : int rtems_filesystem_evaluate_parent( int flags, rtems_filesystem_location_info_t *pathloc ) { 42054: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 42058: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4205c: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED rtems_filesystem_location_info_t parent; int result; if ( !pathloc ) 42060: 4a8a tstl %a2 <== NOT EXECUTED 42062: 660e bnes 42072 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EIO ); /* should never happen */ 42064: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 4206a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4206c: 7005 moveq #5,%d0 <== NOT EXECUTED 4206e: 2080 movel %d0,%a0@ <== NOT EXECUTED 42070: 6016 bras 42088 <== NOT EXECUTED if ( !pathloc->ops->evalpath_h ) 42072: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 42076: 4a90 tstl %a0@ <== NOT EXECUTED 42078: 6612 bnes 4208c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 4207a: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 42080: 2040 moveal %d0,%a0 <== NOT EXECUTED 42082: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 42088: 74ff moveq #-1,%d2 <== NOT EXECUTED 4208a: 604a bras 420d6 <== NOT EXECUTED parent = *pathloc; 4208c: 4878 0010 pea 10 <== NOT EXECUTED 42090: 260e movel %fp,%d3 <== NOT EXECUTED 42092: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 42098: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4209a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4209c: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED result = (*pathloc->ops->evalpath_h)( "..", flags, &parent ); 420a2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 420a4: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 420a8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 420ac: 4879 0005 40f4 pea 540f4 <== NOT EXECUTED 420b2: 2050 moveal %a0@,%a0 <== NOT EXECUTED 420b4: 4e90 jsr %a0@ <== NOT EXECUTED if (result != 0){ 420b6: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED if ( !pathloc->ops->evalpath_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); parent = *pathloc; result = (*pathloc->ops->evalpath_h)( "..", flags, &parent ); 420bc: 2400 movel %d0,%d2 <== NOT EXECUTED if (result != 0){ 420be: 66c8 bnes 42088 <== NOT EXECUTED return -1; } rtems_filesystem_freenode( &parent ); 420c0: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 420c4: 4a88 tstl %a0 <== NOT EXECUTED 420c6: 670e beqs 420d6 <== NOT EXECUTED 420c8: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 420cc: 4a88 tstl %a0 <== NOT EXECUTED 420ce: 6706 beqs 420d6 <== NOT EXECUTED 420d0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 420d2: 4e90 jsr %a0@ <== NOT EXECUTED 420d4: 588f addql #4,%sp <== NOT EXECUTED return result; } 420d6: 2002 movel %d2,%d0 <== NOT EXECUTED 420d8: 4cee 040c ffe4 moveml %fp@(-28),%d2-%d3/%a2 <== NOT EXECUTED 420de: 4e5e unlk %fp <== NOT EXECUTED 420e0: 4e75 rts 000420e2 : const char *pathname, int flags, rtems_filesystem_location_info_t *pathloc, int follow_link ) { 420e2: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 420e6: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 420ea: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 420ee: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 420f2: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 420f6: 282e 0014 movel %fp@(20),%d4 <== NOT EXECUTED /* * Verify Input parameters. */ if ( !pathname ) 420fa: 4a8b tstl %a3 <== NOT EXECUTED 420fc: 660e bnes 4210c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 420fe: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 42104: 740e moveq #14,%d2 <== NOT EXECUTED 42106: 2040 moveal %d0,%a0 <== NOT EXECUTED 42108: 2082 movel %d2,%a0@ <== NOT EXECUTED 4210a: 6010 bras 4211c <== NOT EXECUTED if ( !pathloc ) 4210c: 4a8a tstl %a2 <== NOT EXECUTED 4210e: 6612 bnes 42122 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EIO ); /* should never happen */ 42110: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 42116: 7205 moveq #5,%d1 <== NOT EXECUTED 42118: 2040 moveal %d0,%a0 <== NOT EXECUTED 4211a: 2081 movel %d1,%a0@ <== NOT EXECUTED 4211c: 74ff moveq #-1,%d2 <== NOT EXECUTED 4211e: 6000 00d6 braw 421f6 <== NOT EXECUTED /* * Evaluate the path using the optable evalpath. */ rtems_filesystem_get_start_loc( pathname, &i, pathloc ); 42122: 1213 moveb %a3@,%d1 <== NOT EXECUTED 42124: 1001 moveb %d1,%d0 <== NOT EXECUTED 42126: 49c0 extbl %d0 <== NOT EXECUTED 42128: 742f moveq #47,%d2 <== NOT EXECUTED 4212a: b480 cmpl %d0,%d2 <== NOT EXECUTED 4212c: 670c beqs 4213a <== NOT EXECUTED 4212e: 143c 005c moveb #92,%d2 <== NOT EXECUTED 42132: b480 cmpl %d0,%d2 <== NOT EXECUTED 42134: 6704 beqs 4213a <== NOT EXECUTED 42136: 4a01 tstb %d1 <== NOT EXECUTED 42138: 6624 bnes 4215e <== NOT EXECUTED 4213a: 4878 0010 pea 10 <== NOT EXECUTED 4213e: 2039 0005 5604 movel 55604 ,%d0 <== NOT EXECUTED 42144: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 4214a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4214c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4214e: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED 42154: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4215a: 7001 moveq #1,%d0 <== NOT EXECUTED 4215c: 601e bras 4217c <== NOT EXECUTED 4215e: 4878 0010 pea 10 <== NOT EXECUTED 42162: 2239 0005 5604 movel 55604 ,%d1 <== NOT EXECUTED 42168: 5881 addql #4,%d1 <== NOT EXECUTED 4216a: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4216c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4216e: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED 42174: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4217a: 4280 clrl %d0 <== NOT EXECUTED if ( !pathloc->ops->evalpath_h ) 4217c: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 42180: 2050 moveal %a0@,%a0 <== NOT EXECUTED 42182: 4a88 tstl %a0 <== NOT EXECUTED 42184: 674a beqs 421d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); result = (*pathloc->ops->evalpath_h)( &pathname[i], flags, pathloc ); 42186: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42188: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4218a: 4873 0800 pea %a3@(00000000,%d0:l) <== NOT EXECUTED 4218e: 4e90 jsr %a0@ <== NOT EXECUTED /* * Get the Node type and determine if you need to follow the link or * not. */ if ( (result == 0) && follow_link ) { 42190: dffc 0000 000c addal #12,%sp <== NOT EXECUTED rtems_filesystem_get_start_loc( pathname, &i, pathloc ); if ( !pathloc->ops->evalpath_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); result = (*pathloc->ops->evalpath_h)( &pathname[i], flags, pathloc ); 42196: 2400 movel %d0,%d2 <== NOT EXECUTED /* * Get the Node type and determine if you need to follow the link or * not. */ if ( (result == 0) && follow_link ) { 42198: 665c bnes 421f6 <== NOT EXECUTED 4219a: 4a84 tstl %d4 <== NOT EXECUTED 4219c: 6758 beqs 421f6 <== NOT EXECUTED if ( !pathloc->ops->node_type_h ){ 4219e: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 421a2: 2268 0010 moveal %a0@(16),%a1 <== NOT EXECUTED 421a6: 4a89 tstl %a1 <== NOT EXECUTED 421a8: 6718 beqs 421c2 <== NOT EXECUTED rtems_filesystem_freenode( pathloc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } type = (*pathloc->ops->node_type_h)( pathloc ); 421aa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 421ac: 4e91 jsr %a1@ <== NOT EXECUTED if ( ( type == RTEMS_FILESYSTEM_HARD_LINK ) || 421ae: 588f addql #4,%sp <== NOT EXECUTED 421b0: 5780 subql #3,%d0 <== NOT EXECUTED 421b2: 7201 moveq #1,%d1 <== NOT EXECUTED 421b4: b280 cmpl %d0,%d1 <== NOT EXECUTED 421b6: 653e bcss 421f6 <== NOT EXECUTED ( type == RTEMS_FILESYSTEM_SYM_LINK ) ) { if ( !pathloc->ops->eval_link_h ){ 421b8: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 421bc: 2028 0034 movel %a0@(52),%d0 <== NOT EXECUTED 421c0: 6620 bnes 421e2 <== NOT EXECUTED rtems_filesystem_freenode( pathloc ); 421c2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 421c6: 4a88 tstl %a0 <== NOT EXECUTED 421c8: 6706 beqs 421d0 <== NOT EXECUTED 421ca: 2f0a movel %a2,%sp@- <== NOT EXECUTED 421cc: 4e90 jsr %a0@ <== NOT EXECUTED 421ce: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 421d0: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 421d6: 2040 moveal %d0,%a0 <== NOT EXECUTED 421d8: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 421de: 6000 ff3c braw 4211c <== NOT EXECUTED * pathloc will be passed up (and eventually released). * Hence, the (valid) originial node that we submit to * eval_link_h() should be released by the handler. */ result = (*pathloc->ops->eval_link_h)( pathloc, flags ); 421e2: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 421e6: 2240 moveal %d0,%a1 <== NOT EXECUTED 421e8: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } return result; } 421ec: 4cee 0c1c ffec moveml %fp@(-20),%d2-%d4/%a2-%a3 <== NOT EXECUTED 421f2: 4e5e unlk %fp <== NOT EXECUTED * pathloc will be passed up (and eventually released). * Hence, the (valid) originial node that we submit to * eval_link_h() should be released by the handler. */ result = (*pathloc->ops->eval_link_h)( pathloc, flags ); 421f4: 4ed1 jmp %a1@ <== NOT EXECUTED } } return result; } 421f6: 2002 movel %d2,%d0 <== NOT EXECUTED 421f8: 4cee 0c1c ffec moveml %fp@(-20),%d2-%d4/%a2-%a3 <== NOT EXECUTED 421fe: 4e5e unlk %fp <== NOT EXECUTED 42200: 4e75 rts <== NOT EXECUTED ... 00048bc4 : /* * Set the default umask to "022". */ rtems_filesystem_umask = 022; 48bc4: 2079 0005 5604 moveal 55604 ,%a0 <== NOT EXECUTED * configuration is a single instantiation of the IMFS or miniIMFS with * a single "/dev" directory in it. */ void rtems_filesystem_initialize( void ) { 48bca: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED /* * Set the default umask to "022". */ rtems_filesystem_umask = 022; 48bce: 7012 moveq #18,%d0 <== NOT EXECUTED * configuration is a single instantiation of the IMFS or miniIMFS with * a single "/dev" directory in it. */ void rtems_filesystem_initialize( void ) { 48bd0: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED /* * Set the default umask to "022". */ rtems_filesystem_umask = 022; 48bd4: 2140 0024 movel %d0,%a0@(36) <== NOT EXECUTED init_fs_mount_table(); 48bd8: 4eb9 0004 9374 jsr 49374 <== NOT EXECUTED /* * mount the first filesystem. */ if ( rtems_filesystem_mount_table_size == 0 ) 48bde: 4ab9 0005 3a48 tstl 53a48 <== NOT EXECUTED 48be4: 6608 bnes 48bee <== NOT EXECUTED rtems_fatal_error_occurred( 0xABCD0001 ); 48be6: 2f3c abcd 0001 movel #-1412628479,%sp@- <== NOT EXECUTED 48bec: 6030 bras 48c1e <== NOT EXECUTED mt = &rtems_filesystem_mount_table[0]; 48bee: 2079 0005 50f0 moveal 550f0 ,%a0 <== NOT EXECUTED status = mount( 48bf4: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 48bf8: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 48bfc: 2f28 0004 movel %a0@(4),%sp@- <== NOT EXECUTED 48c00: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 48c02: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48c06: 4eb9 0004 9396 jsr 49396 <== NOT EXECUTED &entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point ); if ( status == -1 ) 48c0c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 48c12: 72ff moveq #-1,%d1 <== NOT EXECUTED 48c14: b280 cmpl %d0,%d1 <== NOT EXECUTED 48c16: 660c bnes 48c24 <== NOT EXECUTED rtems_fatal_error_occurred( 0xABCD0002 ); 48c18: 2f3c abcd 0002 movel #-1412628478,%sp@- <== NOT EXECUTED 48c1e: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED rtems_filesystem_link_counts = 0; 48c24: 2079 0005 5604 moveal 55604 ,%a0 <== NOT EXECUTED 48c2a: 4240 clrw %d0 <== NOT EXECUTED 48c2c: 3140 0028 movew %d0,%a0@(40) <== NOT EXECUTED * set_private_env() - but then: that's * gonna hit performance. * * Till Straumann, 10/25/2002 */ rtems_filesystem_root = entry->mt_fs_root; 48c30: 4878 0010 pea 10 <== NOT EXECUTED 48c34: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 48c38: 0681 0000 0018 addil #24,%d1 <== NOT EXECUTED 48c3e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 48c40: 45f9 0004 b3f4 lea 4b3f4 ,%a2 <== NOT EXECUTED 48c46: 4868 0014 pea %a0@(20) <== NOT EXECUTED 48c4a: 4e92 jsr %a2@ <== NOT EXECUTED /* Clone the root pathloc */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); 48c4c: 42a7 clrl %sp@- <== NOT EXECUTED 48c4e: 240e movel %fp,%d2 <== NOT EXECUTED 48c50: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED 48c56: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48c58: 47f9 0004 20e2 lea 420e2 ,%a3 <== NOT EXECUTED 48c5e: 42a7 clrl %sp@- <== NOT EXECUTED 48c60: 4879 0005 4420 pea 54420 <== NOT EXECUTED 48c66: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_root = loc; 48c68: 4878 0010 pea 10 <== NOT EXECUTED 48c6c: 2039 0005 5604 movel 55604 ,%d0 <== NOT EXECUTED 48c72: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48c74: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 48c7a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48c7c: 4e92 jsr %a2@ <== NOT EXECUTED /* One more clone for the current node */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); 48c7e: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 48c84: 4297 clrl %sp@ <== NOT EXECUTED 48c86: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48c88: 42a7 clrl %sp@- <== NOT EXECUTED 48c8a: 4879 0005 4420 pea 54420 <== NOT EXECUTED 48c90: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_current = loc; 48c92: 4878 0010 pea 10 <== NOT EXECUTED 48c96: 2239 0005 5604 movel 55604 ,%d1 <== NOT EXECUTED 48c9c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48c9e: 5881 addql #4,%d1 <== NOT EXECUTED 48ca0: 2f01 movel %d1,%sp@- <== NOT EXECUTED 48ca2: 4e92 jsr %a2@ <== NOT EXECUTED * * NOTE: UNIX root is 755 and owned by root/root (0/0). It is actually * created that way by the IMFS. */ status = mkdir( "/dev", 0777); 48ca4: 4878 01ff pea 1ff <== NOT EXECUTED 48ca8: 4879 0005 4422 pea 54422 <== NOT EXECUTED 48cae: 4eb9 0004 9354 jsr 49354 <== NOT EXECUTED if ( status != 0 ) 48cb4: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 48cba: 4a80 tstl %d0 <== NOT EXECUTED 48cbc: 670a beqs 48cc8 <== NOT EXECUTED rtems_fatal_error_occurred( 0xABCD0003 ); 48cbe: 2f3c abcd 0003 movel #-1412628477,%sp@- <== NOT EXECUTED 48cc4: 6000 ff58 braw 48c1e <== NOT EXECUTED * before device drivers are initialized. So we return via a base * filesystem image and nothing auto-mounted at this point. */ #endif } 48cc8: 4cee 0c04 ffe0 moveml %fp@(-32),%d2/%a2-%a3 <== NOT EXECUTED 48cce: 4e5e unlk %fp <== NOT EXECUTED 48cd0: 4e75 rts <== NOT EXECUTED ... 0005cb80 : ); bool rtems_filesystem_nodes_equal( const rtems_filesystem_location_info_t *loc1, const rtems_filesystem_location_info_t *loc2 ){ 5cb80: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5cb84: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 5cb88: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 5cb8c: 2050 moveal %a0@,%a0 <== NOT EXECUTED 5cb8e: b1d1 cmpal %a1@,%a0 <== NOT EXECUTED 5cb90: 57c0 seq %d0 <== NOT EXECUTED return ( loc1->node_access == loc2->node_access ); } 5cb92: 4e5e unlk %fp <== NOT EXECUTED 5cb94: 4480 negl %d0 <== NOT EXECUTED 5cb96: 4e75 rts 00046c5c : #endif #include const char *rtems_get_version_string(void) { 46c5c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _RTEMS_version; } 46c60: 4e5e unlk %fp <== NOT EXECUTED 46c62: 203c 0005 84f2 movel #361714,%d0 <== NOT EXECUTED 46c68: 4e75 rts <== NOT EXECUTED ... 000453f2 : * Scheduling can properly occur now as long as we avoid dispatching. */ } void rtems_initialize_before_drivers(void) { 453f2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED * Run the API and BSPs predriver hook. */ _API_extensions_Run_predriver(); } 453f6: 4e5e unlk %fp <== NOT EXECUTED /* * Run the API and BSPs predriver hook. */ _API_extensions_Run_predriver(); 453f8: 4ef9 0004 5700 jmp 45700 <_API_extensions_Run_predriver> <== NOT EXECUTED 000453fe : Objects_Information *_Internal_Objects[ OBJECTS_INTERNAL_CLASSES_LAST + 1 ]; void rtems_initialize_data_structures( rtems_configuration_table *configuration_table ) { 453fe: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45402: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45404: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED /* * Dispatching and interrupts are disabled until the end of the * initialization sequence. This prevents an inadvertent context * switch before the executive is initialized. */ _ISR_Disable( bsp_level ); 45408: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4540e: 40c1 movew %sr,%d1 <== NOT EXECUTED 45410: 8081 orl %d1,%d0 <== NOT EXECUTED 45412: 46c0 movew %d0,%sr <== NOT EXECUTED /* * Make sure the parameters were not NULL. */ if ( configuration_table == NULL ) 45414: 4a8a tstl %a2 <== NOT EXECUTED 45416: 660e bnes 45426 <== NOT EXECUTED _Internal_error_Occurred( 45418: 42a7 clrl %sp@- <== NOT EXECUTED 4541a: 4878 0001 pea 1 <== NOT EXECUTED 4541e: 42a7 clrl %sp@- <== NOT EXECUTED 45420: 4eb9 0004 5f40 jsr 45f40 <_Internal_error_Occurred> <== NOT EXECUTED _Configuration_Table = configuration_table; /* * Initialize any target architecture specific support as early as possible */ _CPU_Initialize( _Thread_Dispatch ); 45426: 4879 0004 6afc pea 46afc <_Thread_Dispatch> <== NOT EXECUTED ); /* * Provide pointers just for later convenience. */ _Configuration_Table = configuration_table; 4542c: 23ca 0005 6d3e movel %a2,56d3e <_Configuration_Table> <== NOT EXECUTED /* * Initialize any target architecture specific support as early as possible */ _CPU_Initialize( _Thread_Dispatch ); 45432: 4eb9 0004 7f70 jsr 47f70 <_CPU_Initialize> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Handler_initialization ( bool is_multiprocessing ) { _System_state_Current = SYSTEM_STATE_BEFORE_INITIALIZATION; 45438: 42b9 0005 6e36 clrl 56e36 <_System_state_Current> <== NOT EXECUTED /* * Do this as early as possible to insure no debugging output * is even attempted to be printed. */ _Debug_Manager_initialization(); 4543e: 4eb9 0004 9998 jsr 49998 <_Debug_Manager_initialization> <== NOT EXECUTED _API_extensions_Initialization(); 45444: 4eb9 0004 56e0 jsr 456e0 <_API_extensions_Initialization> <== NOT EXECUTED /* * Before this is called, we are not allowed to allocate memory * from the Workspace because it is not initialized. */ _Workspace_Handler_initialization( 4544a: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED * This routine initializes the thread dispatching subsystem. */ RTEMS_INLINE_ROUTINE void _Thread_Dispatch_initialization( void ) { _Thread_Dispatch_disable_level = 1; 4544e: 7001 moveq #1,%d0 <== NOT EXECUTED 45450: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 45456: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45458: 4eb9 0004 7e36 jsr 47e36 <_Workspace_Handler_initialization> <== NOT EXECUTED (void *)configuration_table->work_space_start, configuration_table->work_space_size ); _User_extensions_Handler_initialization( 4545e: 2f2a 003a movel %a2@(58),%sp@- <== NOT EXECUTED 45462: 2f2a 0036 movel %a2@(54),%sp@- <== NOT EXECUTED 45466: 4eb9 0004 7994 jsr 47994 <_User_extensions_Handler_initialization> <== NOT EXECUTED configuration_table->number_of_initial_extensions, configuration_table->User_extension_table ); _ISR_Handler_initialization(); 4546c: 4eb9 0004 5f9c jsr 45f9c <_ISR_Handler_initialization> <== NOT EXECUTED _Objects_Handler_initialization( 45472: 4eb9 0004 6640 jsr 46640 <_Objects_Handler_initialization> <== NOT EXECUTED _Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects; /* * Initialize the internal allocator Mutex */ _API_Mutex_Initialization( 1 ); 45478: 4878 0001 pea 1 <== NOT EXECUTED _Configuration_MP_table->maximum_nodes, _Configuration_MP_table->maximum_global_objects #endif ); _Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects; 4547c: 203c 0005 6cba movel #355514,%d0 <== NOT EXECUTED 45482: 23c0 0005 6c60 movel %d0,56c60 <_Objects_Information_table+0x4> <== NOT EXECUTED /* * Initialize the internal allocator Mutex */ _API_Mutex_Initialization( 1 ); 45488: 4eb9 0004 5844 jsr 45844 <_API_Mutex_Initialization> <== NOT EXECUTED _API_Mutex_Allocate( &_RTEMS_Allocator_Mutex ); 4548e: 4879 0005 6d5a pea 56d5a <_RTEMS_Allocator_Mutex> <== NOT EXECUTED 45494: 4eb9 0004 57a0 jsr 457a0 <_API_Mutex_Allocate> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Priority_Handler_initialization( void ) { size_t index; _Priority_Major_bit_map = 0; 4549a: 4240 clrw %d0 <== NOT EXECUTED 4549c: 33c0 0005 6d58 movew %d0,56d58 <_Priority_Major_bit_map> <== NOT EXECUTED 454a2: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 454a8: 41f9 0005 6dc8 lea 56dc8 <_Priority_Bit_map>,%a0 <== NOT EXECUTED for ( index=0 ; index <16 ; index++ ) _Priority_Bit_map[ index ] = 0; 454ae: 4258 clrw %a0@+ <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Priority_Handler_initialization( void ) { size_t index; _Priority_Major_bit_map = 0; for ( index=0 ; index <16 ; index++ ) 454b0: b1fc 0005 6de8 cmpal #355816,%a0 <== NOT EXECUTED 454b6: 66f6 bnes 454ae <== NOT EXECUTED _Priority_Handler_initialization(); _Watchdog_Handler_initialization(); 454b8: 4eb9 0004 7c94 jsr 47c94 <_Watchdog_Handler_initialization> <== NOT EXECUTED _TOD_Handler_initialization( configuration_table->microseconds_per_tick ); 454be: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 454c2: 4eb9 0004 5cb8 jsr 45cb8 <_TOD_Handler_initialization> <== NOT EXECUTED _Thread_Handler_initialization( 454c8: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 454cc: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 454d0: 4eb9 0004 6e90 jsr 46e90 <_Thread_Handler_initialization> <== NOT EXECUTED ); #endif /* MANAGERS */ _RTEMS_API_Initialize( configuration_table ); 454d6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 454d8: 4eb9 0004 564c jsr 4564c <_RTEMS_API_Initialize> <== NOT EXECUTED _Extension_Manager_initialization( configuration_table->maximum_extensions ); 454de: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 454e2: 4eb9 0004 5540 jsr 45540 <_Extension_Manager_initialization> <== NOT EXECUTED _IO_Manager_initialization( 454e8: 2f2a 002a movel %a2@(42),%sp@- <== NOT EXECUTED 454ec: 2f2a 002e movel %a2@(46),%sp@- <== NOT EXECUTED 454f0: 2f2a 0032 movel %a2@(50),%sp@- <== NOT EXECUTED 454f4: 4eb9 0004 55ba jsr 455ba <_IO_Manager_initialization> <== NOT EXECUTED _Thread_Create_idle(); /* * Scheduling can properly occur now as long as we avoid dispatching. */ } 454fa: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED * * At this point all API extensions are in place. After the call to * _Thread_Create_idle() _Thread_Executing and _Thread_Heir will be set. */ _Thread_Create_idle(); 454fe: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED /* * Scheduling can properly occur now as long as we avoid dispatching. */ } 45504: 4e5e unlk %fp <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Set ( System_state_Codes state ) { _System_state_Current = state; 45506: 7001 moveq #1,%d0 <== NOT EXECUTED 45508: 23c0 0005 6e36 movel %d0,56e36 <_System_state_Current> <== NOT EXECUTED * * At this point all API extensions are in place. After the call to * _Thread_Create_idle() _Thread_Executing and _Thread_Heir will be set. */ _Thread_Create_idle(); 4550e: 4ef9 0004 6a0c jmp 46a0c <_Thread_Create_idle> <== NOT EXECUTED 000453e0 : _API_extensions_Run_predriver(); } void rtems_initialize_device_drivers(void) { 453e0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED * Initialize all the device drivers and initialize the MPCI layer. * * NOTE: The MPCI may be build upon a device driver. */ _IO_Initialize_all_drivers(); 453e4: 4eb9 0004 5584 jsr 45584 <_IO_Initialize_all_drivers> <== NOT EXECUTED * * The API extensions are supposed to create user initialization tasks. */ _API_extensions_Run_postdriver(); } 453ea: 4e5e unlk %fp <== NOT EXECUTED * Run the APIs and BSPs postdriver hooks. * * The API extensions are supposed to create user initialization tasks. */ _API_extensions_Run_postdriver(); 453ec: 4ef9 0004 572a jmp 4572a <_API_extensions_Run_postdriver> <== NOT EXECUTED 000453cc : _API_extensions_Run_postdriver(); } void rtems_initialize_start_multitasking(void) { 453cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ****** APPLICATION RUNS HERE ****** ****** RETURNS WHEN SYSTEM IS SHUT DOWN ****** ******************************************************************* ******************************************************************* *******************************************************************/ } 453d0: 4e5e unlk %fp <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Set ( System_state_Codes state ) { _System_state_Current = state; 453d2: 7002 moveq #2,%d0 <== NOT EXECUTED 453d4: 23c0 0005 6e36 movel %d0,56e36 <_System_state_Current> <== NOT EXECUTED void rtems_initialize_start_multitasking(void) { _System_state_Set( SYSTEM_STATE_BEGIN_MULTITASKING ); _Thread_Start_multitasking(); 453da: 4ef9 0004 7688 jmp 47688 <_Thread_Start_multitasking> <== NOT EXECUTED 00044bcc : rtems_status_code rtems_interrupt_catch( rtems_isr_entry new_isr_handler, rtems_vector_number vector, rtems_isr_entry *old_isr_handler ) { 44bcc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44bd0: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 44bd4: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 44bd8: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED if ( !_ISR_Is_vector_number_valid( vector ) ) 44bdc: b1fc 0000 00ff cmpal #255,%a0 <== NOT EXECUTED 44be2: 6304 blss 44be8 <== NOT EXECUTED 44be4: 700a moveq #10,%d0 <== NOT EXECUTED 44be6: 6020 bras 44c08 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; if ( !_ISR_Is_valid_user_handler( (void *) new_isr_handler ) ) 44be8: 4a81 tstl %d1 <== NOT EXECUTED 44bea: 671a beqs 44c06 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_ISR_Is_valid_user_handler( (void *) old_isr_handler ) ) 44bec: 4a80 tstl %d0 <== NOT EXECUTED 44bee: 6716 beqs 44c06 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _ISR_Install_vector( 44bf0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44bf2: 2f01 movel %d1,%sp@- <== NOT EXECUTED 44bf4: 2f08 movel %a0,%sp@- <== NOT EXECUTED 44bf6: 4eb9 0004 7faa jsr 47faa <_CPU_ISR_install_vector> <== NOT EXECUTED 44bfc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44c02: 4280 clrl %d0 <== NOT EXECUTED 44c04: 6002 bras 44c08 <== NOT EXECUTED vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler ); return RTEMS_SUCCESSFUL; 44c06: 7009 moveq #9,%d0 <== NOT EXECUTED } 44c08: 4e5e unlk %fp <== NOT EXECUTED 44c0a: 4e75 rts 0004560c : */ #undef rtems_interrupt_disable rtems_interrupt_level rtems_interrupt_disable( void ) { 4560c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_interrupt_level previous_level; _ISR_Disable( previous_level ); 45610: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 45616: 40c0 movew %sr,%d0 <== NOT EXECUTED 45618: 8280 orl %d0,%d1 <== NOT EXECUTED 4561a: 46c1 movew %d1,%sr <== NOT EXECUTED return previous_level; } 4561c: 4e5e unlk %fp <== NOT EXECUTED 4561e: 4e75 rts 00045620 : #undef rtems_interrupt_enable void rtems_interrupt_enable( rtems_interrupt_level previous_level ) { 45620: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _ISR_Enable( previous_level ); 45624: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 45628: 46c0 movew %d0,%sr <== NOT EXECUTED } 4562a: 4e5e unlk %fp <== NOT EXECUTED 4562c: 4e75 rts 0004562e : #undef rtems_interrupt_flash void rtems_interrupt_flash( rtems_interrupt_level previous_level ) { 4562e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _ISR_Flash( previous_level ); 45632: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 45638: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4563c: 46c0 movew %d0,%sr <== NOT EXECUTED 4563e: 8280 orl %d0,%d1 <== NOT EXECUTED 45640: 46c1 movew %d1,%sr <== NOT EXECUTED } 45642: 4e5e unlk %fp <== NOT EXECUTED 45644: 4e75 rts 00045646 : #undef rtems_interrupt_is_in_progress bool rtems_interrupt_is_in_progress( void ) { return _ISR_Is_in_progress(); 45646: 2039 0005 8d42 movel 58d42 <_ISR_Nest_level>,%d0 <== NOT EXECUTED */ #undef rtems_interrupt_is_in_progress bool rtems_interrupt_is_in_progress( void ) { 4564c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _ISR_Is_in_progress(); 45650: 4a80 tstl %d0 <== NOT EXECUTED 45652: 56c0 sne %d0 <== NOT EXECUTED } 45654: 4e5e unlk %fp <== NOT EXECUTED 45656: 4480 negl %d0 <== NOT EXECUTED 45658: 4e75 rts <== NOT EXECUTED ... 0004a8d8 : rtems_status_code rtems_io_close( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4a8d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a8dc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a8de: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4a8e2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a8e4: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4a8e8: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4a8ec: b4b9 0005 6f1e cmpl 56f1e <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4a8f2: 6504 bcss 4a8f8 <== NOT EXECUTED 4a8f4: 700a moveq #10,%d0 <== NOT EXECUTED 4a8f6: 602c bras 4a924 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].close_entry; 4a8f8: 2002 movel %d2,%d0 <== NOT EXECUTED 4a8fa: 2202 movel %d2,%d1 <== NOT EXECUTED 4a8fc: 2079 0005 6f22 moveal 56f22 <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4a902: e788 lsll #3,%d0 <== NOT EXECUTED 4a904: eb89 lsll #5,%d1 <== NOT EXECUTED 4a906: 9280 subl %d0,%d1 <== NOT EXECUTED 4a908: 2030 1808 movel %a0@(00000008,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4a90c: 6716 beqs 4a924 <== NOT EXECUTED 4a90e: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4a912: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a914: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4a918: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4a91c: 241f movel %sp@+,%d2 <== NOT EXECUTED 4a91e: 261f movel %sp@+,%d3 <== NOT EXECUTED 4a920: 4e5e unlk %fp <== NOT EXECUTED if ( major >= _IO_Number_of_drivers ) return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].close_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4a922: 4ed1 jmp %a1@ <== NOT EXECUTED } 4a924: 241f movel %sp@+,%d2 <== NOT EXECUTED 4a926: 261f movel %sp@+,%d3 <== NOT EXECUTED 4a928: 4e5e unlk %fp <== NOT EXECUTED 4a92a: 4e75 rts 0004a92c : rtems_status_code rtems_io_control( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4a92c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a930: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a932: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4a936: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a938: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4a93c: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4a940: b4b9 0005 6f1e cmpl 56f1e <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4a946: 6504 bcss 4a94c <== NOT EXECUTED 4a948: 700a moveq #10,%d0 <== NOT EXECUTED 4a94a: 602c bras 4a978 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].control_entry; 4a94c: 2002 movel %d2,%d0 <== NOT EXECUTED 4a94e: 2202 movel %d2,%d1 <== NOT EXECUTED 4a950: 2079 0005 6f22 moveal 56f22 <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4a956: e788 lsll #3,%d0 <== NOT EXECUTED 4a958: eb89 lsll #5,%d1 <== NOT EXECUTED 4a95a: 9280 subl %d0,%d1 <== NOT EXECUTED 4a95c: 2030 1814 movel %a0@(00000014,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4a960: 6716 beqs 4a978 <== NOT EXECUTED 4a962: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4a966: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a968: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4a96c: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4a970: 241f movel %sp@+,%d2 <== NOT EXECUTED 4a972: 261f movel %sp@+,%d3 <== NOT EXECUTED 4a974: 4e5e unlk %fp <== NOT EXECUTED if ( major >= _IO_Number_of_drivers ) return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].control_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4a976: 4ed1 jmp %a1@ <== NOT EXECUTED } 4a978: 241f movel %sp@+,%d2 <== NOT EXECUTED 4a97a: 261f movel %sp@+,%d3 <== NOT EXECUTED 4a97c: 4e5e unlk %fp <== NOT EXECUTED 4a97e: 4e75 rts 000499e4 : rtems_status_code rtems_io_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 499e4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 499e8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 499ea: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 499ee: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 499f2: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 499f6: b2b9 0005 6f1e cmpl 56f1e <_IO_Number_of_drivers>,%d1 <== NOT EXECUTED 499fc: 6504 bcss 49a02 <== NOT EXECUTED 499fe: 700a moveq #10,%d0 <== NOT EXECUTED 49a00: 602a bras 49a2c <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].initialization_entry; 49a02: 2079 0005 6f22 moveal 56f22 <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 49a08: 2001 movel %d1,%d0 <== NOT EXECUTED 49a0a: e788 lsll #3,%d0 <== NOT EXECUTED 49a0c: 91c0 subal %d0,%a0 <== NOT EXECUTED 49a0e: 2001 movel %d1,%d0 <== NOT EXECUTED 49a10: eb88 lsll #5,%d0 <== NOT EXECUTED 49a12: 2030 0800 movel %a0@(00000000,%d0:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 49a16: 6714 beqs 49a2c <== NOT EXECUTED 49a18: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 49a1c: 2240 moveal %d0,%a1 <== NOT EXECUTED 49a1e: 2d42 000c movel %d2,%fp@(12) <== NOT EXECUTED 49a22: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 49a26: 241f movel %sp@+,%d2 <== NOT EXECUTED 49a28: 4e5e unlk %fp <== NOT EXECUTED if ( major >= _IO_Number_of_drivers ) return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].initialization_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 49a2a: 4ed1 jmp %a1@ <== NOT EXECUTED } 49a2c: 241f movel %sp@+,%d2 <== NOT EXECUTED 49a2e: 4e5e unlk %fp <== NOT EXECUTED 49a30: 4e75 rts <== NOT EXECUTED ... 00041d70 : rtems_status_code rtems_io_lookup_name( const char *name, rtems_driver_name_t *device_info ) { 41d70: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 41d74: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED IMFS_jnode_t *the_jnode; rtems_filesystem_location_info_t loc; int result; rtems_filesystem_node_types_t node_type; result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true ); 41d78: 4878 0001 pea 1 <== NOT EXECUTED 41d7c: 280e movel %fp,%d4 <== NOT EXECUTED 41d7e: 0684 ffff fff0 addil #-16,%d4 <== NOT EXECUTED 41d84: 2f04 movel %d4,%sp@- <== NOT EXECUTED rtems_status_code rtems_io_lookup_name( const char *name, rtems_driver_name_t *device_info ) { 41d86: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED IMFS_jnode_t *the_jnode; rtems_filesystem_location_info_t loc; int result; rtems_filesystem_node_types_t node_type; result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true ); 41d8a: 42a7 clrl %sp@- <== NOT EXECUTED rtems_status_code rtems_io_lookup_name( const char *name, rtems_driver_name_t *device_info ) { 41d8c: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED IMFS_jnode_t *the_jnode; rtems_filesystem_location_info_t loc; int result; rtems_filesystem_node_types_t node_type; result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true ); 41d90: 2f02 movel %d2,%sp@- <== NOT EXECUTED 41d92: 4eb9 0004 20e2 jsr 420e2 <== NOT EXECUTED the_jnode = loc.node_access; if ( !loc.ops->node_type_h ) { 41d98: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED rtems_filesystem_location_info_t loc; int result; rtems_filesystem_node_types_t node_type; result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true ); the_jnode = loc.node_access; 41d9c: 266e fff0 moveal %fp@(-16),%a3 <== NOT EXECUTED if ( !loc.ops->node_type_h ) { 41da0: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; rtems_filesystem_location_info_t loc; int result; rtems_filesystem_node_types_t node_type; result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true ); 41da4: 2600 movel %d0,%d3 <== NOT EXECUTED the_jnode = loc.node_access; if ( !loc.ops->node_type_h ) { 41da6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 41dac: 4a88 tstl %a0 <== NOT EXECUTED 41dae: 6620 bnes 41dd0 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 41db0: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 41db4: 4a88 tstl %a0 <== NOT EXECUTED 41db6: 6706 beqs 41dbe <== NOT EXECUTED 41db8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 41dba: 4e90 jsr %a0@ <== NOT EXECUTED 41dbc: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 41dbe: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 41dc4: 2040 moveal %d0,%a0 <== NOT EXECUTED 41dc6: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 41dcc: 70ff moveq #-1,%d0 <== NOT EXECUTED 41dce: 6064 bras 41e34 <== NOT EXECUTED } node_type = (*loc.ops->node_type_h)( &loc ); 41dd0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 41dd2: 4e90 jsr %a0@ <== NOT EXECUTED if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) { 41dd4: 588f addql #4,%sp <== NOT EXECUTED 41dd6: 4a83 tstl %d3 <== NOT EXECUTED 41dd8: 6606 bnes 41de0 <== NOT EXECUTED 41dda: 7202 moveq #2,%d1 <== NOT EXECUTED 41ddc: b280 cmpl %d0,%d1 <== NOT EXECUTED 41dde: 671a beqs 41dfa <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 41de0: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 41de4: 4a88 tstl %a0 <== NOT EXECUTED 41de6: 6746 beqs 41e2e <== NOT EXECUTED 41de8: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 41dec: 4a88 tstl %a0 <== NOT EXECUTED 41dee: 673e beqs 41e2e <== NOT EXECUTED 41df0: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 41df4: 4e90 jsr %a0@ <== NOT EXECUTED 41df6: 588f addql #4,%sp <== NOT EXECUTED 41df8: 6034 bras 41e2e <== NOT EXECUTED return RTEMS_UNSATISFIED; } device_info->device_name = (char *) name; device_info->device_name_length = strlen( name ); 41dfa: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) { rtems_filesystem_freenode( &loc ); return RTEMS_UNSATISFIED; } device_info->device_name = (char *) name; 41dfc: 2482 movel %d2,%a2@ <== NOT EXECUTED device_info->device_name_length = strlen( name ); 41dfe: 4eb9 0004 c5cc jsr 4c5cc <== NOT EXECUTED 41e04: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED device_info->major = the_jnode->info.device.major; device_info->minor = the_jnode->info.device.minor; rtems_filesystem_freenode( &loc ); 41e08: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED return RTEMS_UNSATISFIED; } device_info->device_name = (char *) name; device_info->device_name_length = strlen( name ); device_info->major = the_jnode->info.device.major; 41e0c: 256b 004c 0008 movel %a3@(76),%a2@(8) <== NOT EXECUTED rtems_filesystem_freenode( &loc ); return RTEMS_UNSATISFIED; } device_info->device_name = (char *) name; device_info->device_name_length = strlen( name ); 41e12: 588f addql #4,%sp <== NOT EXECUTED device_info->major = the_jnode->info.device.major; device_info->minor = the_jnode->info.device.minor; 41e14: 256b 0050 000c movel %a3@(80),%a2@(12) <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 41e1a: 4a88 tstl %a0 <== NOT EXECUTED 41e1c: 6714 beqs 41e32 <== NOT EXECUTED 41e1e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 41e22: 4a88 tstl %a0 <== NOT EXECUTED 41e24: 670c beqs 41e32 <== NOT EXECUTED 41e26: 2f04 movel %d4,%sp@- <== NOT EXECUTED 41e28: 4e90 jsr %a0@ <== NOT EXECUTED 41e2a: 588f addql #4,%sp <== NOT EXECUTED 41e2c: 6004 bras 41e32 <== NOT EXECUTED 41e2e: 700d moveq #13,%d0 <== NOT EXECUTED 41e30: 6002 bras 41e34 <== NOT EXECUTED 41e32: 4280 clrl %d0 <== NOT EXECUTED #endif return RTEMS_SUCCESSFUL; } 41e34: 4cee 0c1c ffdc moveml %fp@(-36),%d2-%d4/%a2-%a3 <== NOT EXECUTED 41e3a: 4e5e unlk %fp <== NOT EXECUTED 41e3c: 4e75 rts 0004a980 : rtems_status_code rtems_io_open( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4a980: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a984: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a986: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4a98a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a98c: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4a990: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4a994: b4b9 0005 6f1e cmpl 56f1e <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4a99a: 6504 bcss 4a9a0 <== NOT EXECUTED 4a99c: 700a moveq #10,%d0 <== NOT EXECUTED 4a99e: 602c bras 4a9cc <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].open_entry; 4a9a0: 2002 movel %d2,%d0 <== NOT EXECUTED 4a9a2: 2202 movel %d2,%d1 <== NOT EXECUTED 4a9a4: 2079 0005 6f22 moveal 56f22 <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4a9aa: e788 lsll #3,%d0 <== NOT EXECUTED 4a9ac: eb89 lsll #5,%d1 <== NOT EXECUTED 4a9ae: 9280 subl %d0,%d1 <== NOT EXECUTED 4a9b0: 2030 1804 movel %a0@(00000004,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4a9b4: 6716 beqs 4a9cc <== NOT EXECUTED 4a9b6: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4a9ba: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a9bc: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4a9c0: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4a9c4: 241f movel %sp@+,%d2 <== NOT EXECUTED 4a9c6: 261f movel %sp@+,%d3 <== NOT EXECUTED 4a9c8: 4e5e unlk %fp <== NOT EXECUTED if ( major >= _IO_Number_of_drivers ) return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].open_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4a9ca: 4ed1 jmp %a1@ <== NOT EXECUTED } 4a9cc: 241f movel %sp@+,%d2 <== NOT EXECUTED 4a9ce: 261f movel %sp@+,%d3 <== NOT EXECUTED 4a9d0: 4e5e unlk %fp <== NOT EXECUTED 4a9d2: 4e75 rts 0004a9d4 : rtems_status_code rtems_io_read( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4a9d4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a9d8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a9da: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4a9de: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a9e0: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4a9e4: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4a9e8: b4b9 0005 6f1e cmpl 56f1e <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4a9ee: 6504 bcss 4a9f4 <== NOT EXECUTED 4a9f0: 700a moveq #10,%d0 <== NOT EXECUTED 4a9f2: 602c bras 4aa20 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].read_entry; 4a9f4: 2002 movel %d2,%d0 <== NOT EXECUTED 4a9f6: 2202 movel %d2,%d1 <== NOT EXECUTED 4a9f8: 2079 0005 6f22 moveal 56f22 <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4a9fe: e788 lsll #3,%d0 <== NOT EXECUTED 4aa00: eb89 lsll #5,%d1 <== NOT EXECUTED 4aa02: 9280 subl %d0,%d1 <== NOT EXECUTED 4aa04: 2030 180c movel %a0@(0000000c,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4aa08: 6716 beqs 4aa20 <== NOT EXECUTED 4aa0a: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4aa0e: 2240 moveal %d0,%a1 <== NOT EXECUTED 4aa10: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4aa14: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4aa18: 241f movel %sp@+,%d2 <== NOT EXECUTED 4aa1a: 261f movel %sp@+,%d3 <== NOT EXECUTED 4aa1c: 4e5e unlk %fp <== NOT EXECUTED if ( major >= _IO_Number_of_drivers ) return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].read_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4aa1e: 4ed1 jmp %a1@ <== NOT EXECUTED } 4aa20: 241f movel %sp@+,%d2 <== NOT EXECUTED 4aa22: 261f movel %sp@+,%d3 <== NOT EXECUTED 4aa24: 4e5e unlk %fp <== NOT EXECUTED 4aa26: 4e75 rts 000461c8 : rtems_status_code rtems_io_register_driver( rtems_device_major_number major, const rtems_driver_address_table *driver_table, rtems_device_major_number *registered_major ) { 461c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 461cc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 461ce: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 461d2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 461d4: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 461d8: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED /* * Validate the pointer data and contents passed in */ if ( !driver_table ) 461dc: 4a89 tstl %a1 <== NOT EXECUTED 461de: 6700 00aa beqw 4628a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !registered_major ) 461e2: 4a8a tstl %a2 <== NOT EXECUTED 461e4: 6700 00a4 beqw 4628a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !driver_table->initialization_entry && !driver_table->open_entry ) 461e8: 4a91 tstl %a1@ <== NOT EXECUTED 461ea: 6608 bnes 461f4 <== NOT EXECUTED 461ec: 4aa9 0004 tstl %a1@(4) <== NOT EXECUTED 461f0: 6700 0098 beqw 4628a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; *registered_major = 0; 461f4: 4292 clrl %a2@ <== NOT EXECUTED /* * The requested major number is higher than what is configured. */ if ( major >= _IO_Number_of_drivers ) 461f6: 2239 0005 8eba movel 58eba <_IO_Number_of_drivers>,%d1 <== NOT EXECUTED 461fc: b282 cmpl %d2,%d1 <== NOT EXECUTED 461fe: 6206 bhis 46206 <== NOT EXECUTED 46200: 700a moveq #10,%d0 <== NOT EXECUTED 46202: 6000 008c braw 46290 <== NOT EXECUTED /* * Test for initialise/open being present to indicate the driver slot is * in use. */ if ( major == 0 ) { 46206: 4a82 tstl %d2 <== NOT EXECUTED 46208: 6632 bnes 4623c <== NOT EXECUTED bool found = false; for ( major = _IO_Number_of_drivers - 1 ; major ; major-- ) { 4620a: 2079 0005 8ebe moveal 58ebe <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 46210: 2001 movel %d1,%d0 <== NOT EXECUTED 46212: 2401 movel %d1,%d2 <== NOT EXECUTED 46214: e789 lsll #3,%d1 <== NOT EXECUTED 46216: eb88 lsll #5,%d0 <== NOT EXECUTED 46218: 91c1 subal %d1,%a0 <== NOT EXECUTED 4621a: 5382 subql #1,%d2 <== NOT EXECUTED 4621c: 41f0 08e8 lea %a0@(ffffffe8,%d0:l),%a0 <== NOT EXECUTED 46220: 6012 bras 46234 <== NOT EXECUTED if ( !_IO_Driver_address_table[major].initialization_entry && 46222: 4a90 tstl %a0@ <== NOT EXECUTED 46224: 6606 bnes 4622c <== NOT EXECUTED 46226: 4aa8 0004 tstl %a0@(4) <== NOT EXECUTED 4622a: 6710 beqs 4623c <== NOT EXECUTED * in use. */ if ( major == 0 ) { bool found = false; for ( major = _IO_Number_of_drivers - 1 ; major ; major-- ) { 4622c: 5382 subql #1,%d2 <== NOT EXECUTED 4622e: d1fc ffff ffe8 addal #-24,%a0 <== NOT EXECUTED 46234: 4a82 tstl %d2 <== NOT EXECUTED 46236: 66ea bnes 46222 <== NOT EXECUTED 46238: 7005 moveq #5,%d0 <== NOT EXECUTED 4623a: 6054 bras 46290 <== NOT EXECUTED if ( !found ) return RTEMS_TOO_MANY; } if ( _IO_Driver_address_table[major].initialization_entry || 4623c: 2202 movel %d2,%d1 <== NOT EXECUTED 4623e: 2002 movel %d2,%d0 <== NOT EXECUTED 46240: 2079 0005 8ebe moveal 58ebe <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 46246: e789 lsll #3,%d1 <== NOT EXECUTED 46248: eb88 lsll #5,%d0 <== NOT EXECUTED 4624a: 9081 subl %d1,%d0 <== NOT EXECUTED 4624c: d1c0 addal %d0,%a0 <== NOT EXECUTED 4624e: 4a90 tstl %a0@ <== NOT EXECUTED 46250: 663c bnes 4628e <== NOT EXECUTED 46252: 4aa8 0004 tstl %a0@(4) <== NOT EXECUTED 46256: 6636 bnes 4628e <== NOT EXECUTED _IO_Driver_address_table[major].open_entry ) return RTEMS_RESOURCE_IN_USE; _IO_Driver_address_table[major] = *driver_table; 46258: 4878 0018 pea 18 <== NOT EXECUTED 4625c: 2f09 movel %a1,%sp@- <== NOT EXECUTED 4625e: 2f08 movel %a0,%sp@- <== NOT EXECUTED 46260: 4eb9 0004 beb0 jsr 4beb0 <== NOT EXECUTED *registered_major = major; 46266: 2482 movel %d2,%a2@ <== NOT EXECUTED return rtems_io_initialize( major, 0, NULL ); } 46268: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); 4626c: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 46270: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); 46274: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4627a: 42ae 0010 clrl %fp@(16) <== NOT EXECUTED 4627e: 42ae 000c clrl %fp@(12) <== NOT EXECUTED } 46282: 4e5e unlk %fp <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); 46284: 4ef9 0004 6008 jmp 46008 <== NOT EXECUTED 4628a: 7009 moveq #9,%d0 <== NOT EXECUTED 4628c: 6002 bras 46290 <== NOT EXECUTED 4628e: 700c moveq #12,%d0 <== NOT EXECUTED } 46290: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46294: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46298: 4e5e unlk %fp <== NOT EXECUTED 4629a: 4e75 rts 00041e3e : rtems_status_code rtems_io_register_name( const char *device_name, rtems_device_major_number major, rtems_device_minor_number minor ) { 41e3e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ) { union __rtems_dev_t temp; temp.__overlay.major = _major; temp.__overlay.minor = _minor; 41e42: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED rtems_device_minor_number _minor ) { union __rtems_dev_t temp; temp.__overlay.major = _major; 41e46: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED #if !defined(RTEMS_UNIX) int status; dev_t dev; dev = rtems_filesystem_make_dev_t( major, minor ); status = mknod( device_name, 0777 | S_IFCHR, dev ); 41e4a: 2f01 movel %d1,%sp@- <== NOT EXECUTED 41e4c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 41e4e: 4878 21ff pea 21ff <== NOT EXECUTED 41e52: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 41e56: 4eb9 0004 2334 jsr 42334 <== NOT EXECUTED /* this is the only error returned by the old version */ if ( status ) 41e5c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 41e62: 4a80 tstl %d0 <== NOT EXECUTED 41e64: 6702 beqs 41e68 <== NOT EXECUTED 41e66: 7005 moveq #5,%d0 <== NOT EXECUTED return RTEMS_TOO_MANY; #endif return RTEMS_SUCCESSFUL; } 41e68: 4e5e unlk %fp <== NOT EXECUTED 41e6a: 4e75 rts 0004629c : */ rtems_status_code rtems_io_unregister_driver( rtems_device_major_number major ) { 4629c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 462a0: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED if ( major < _IO_Number_of_drivers ) { 462a4: b2b9 0005 8eba cmpl 58eba <_IO_Number_of_drivers>,%d1 <== NOT EXECUTED 462aa: 6504 bcss 462b0 <== NOT EXECUTED 462ac: 700d moveq #13,%d0 <== NOT EXECUTED 462ae: 6024 bras 462d4 <== NOT EXECUTED memset( 462b0: 4878 0018 pea 18 <== NOT EXECUTED 462b4: 2001 movel %d1,%d0 <== NOT EXECUTED 462b6: e789 lsll #3,%d1 <== NOT EXECUTED 462b8: eb88 lsll #5,%d0 <== NOT EXECUTED 462ba: 9081 subl %d1,%d0 <== NOT EXECUTED 462bc: d0b9 0005 8ebe addl 58ebe <_IO_Driver_address_table>,%d0 <== NOT EXECUTED 462c2: 42a7 clrl %sp@- <== NOT EXECUTED 462c4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 462c6: 4eb9 0004 bf20 jsr 4bf20 <== NOT EXECUTED 462cc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 462d2: 4280 clrl %d0 <== NOT EXECUTED sizeof( rtems_driver_address_table ) ); return RTEMS_SUCCESSFUL; } return RTEMS_UNSATISFIED; } 462d4: 4e5e unlk %fp <== NOT EXECUTED 462d6: 4e75 rts 0004aa28 : rtems_status_code rtems_io_write( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4aa28: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4aa2c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4aa2e: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4aa32: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4aa34: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4aa38: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4aa3c: b4b9 0005 6f1e cmpl 56f1e <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4aa42: 6504 bcss 4aa48 <== NOT EXECUTED 4aa44: 700a moveq #10,%d0 <== NOT EXECUTED 4aa46: 602c bras 4aa74 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].write_entry; 4aa48: 2002 movel %d2,%d0 <== NOT EXECUTED 4aa4a: 2202 movel %d2,%d1 <== NOT EXECUTED 4aa4c: 2079 0005 6f22 moveal 56f22 <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4aa52: e788 lsll #3,%d0 <== NOT EXECUTED 4aa54: eb89 lsll #5,%d1 <== NOT EXECUTED 4aa56: 9280 subl %d0,%d1 <== NOT EXECUTED 4aa58: 2030 1810 movel %a0@(00000010,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4aa5c: 6716 beqs 4aa74 <== NOT EXECUTED 4aa5e: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4aa62: 2240 moveal %d0,%a1 <== NOT EXECUTED 4aa64: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4aa68: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4aa6c: 241f movel %sp@+,%d2 <== NOT EXECUTED 4aa6e: 261f movel %sp@+,%d3 <== NOT EXECUTED 4aa70: 4e5e unlk %fp <== NOT EXECUTED if ( major >= _IO_Number_of_drivers ) return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].write_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4aa72: 4ed1 jmp %a1@ <== NOT EXECUTED } 4aa74: 241f movel %sp@+,%d2 <== NOT EXECUTED 4aa76: 261f movel %sp@+,%d3 <== NOT EXECUTED 4aa78: 4e5e unlk %fp <== NOT EXECUTED 4aa7a: 4e75 rts 000470d0 : #include #include void rtems_iterate_over_all_threads(rtems_per_thread_routine routine) { 470d0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 470d4: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 470d8: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED uint32_t i; uint32_t api_index; Thread_Control *the_thread; Objects_Information *information; if ( !routine ) 470dc: 4a8c tstl %a4 <== NOT EXECUTED 470de: 673e beqs 4711e <== NOT EXECUTED return; 470e0: 47f9 0006 0f88 lea 60f88 <_Objects_Information_table+0x4>,%a3 <== NOT EXECUTED for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) { if ( !_Objects_Information_table[ api_index ] ) 470e6: 2053 moveal %a3@,%a0 <== NOT EXECUTED 470e8: 4a88 tstl %a0 <== NOT EXECUTED 470ea: 6728 beqs 47114 <== NOT EXECUTED continue; information = _Objects_Information_table[ api_index ][ 1 ]; 470ec: 2468 0004 moveal %a0@(4),%a2 <== NOT EXECUTED if ( information ) { 470f0: 4a8a tstl %a2 <== NOT EXECUTED 470f2: 6720 beqs 47114 <== NOT EXECUTED 470f4: 7401 moveq #1,%d2 <== NOT EXECUTED 470f6: 6012 bras 4710a <== NOT EXECUTED for ( i=1 ; i <= information->maximum ; i++ ) { the_thread = (Thread_Control *)information->local_table[ i ]; 470f8: 206a 001a moveal %a2@(26),%a0 <== NOT EXECUTED 470fc: 2030 2c00 movel %a0@(00000000,%d2:l:4),%d0 <== NOT EXECUTED if ( !the_thread ) 47100: 6706 beqs 47108 <== NOT EXECUTED continue; (*routine)(the_thread); 47102: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47104: 4e94 jsr %a4@ <== NOT EXECUTED 47106: 588f addql #4,%sp <== NOT EXECUTED api_index++ ) { if ( !_Objects_Information_table[ api_index ] ) continue; information = _Objects_Information_table[ api_index ][ 1 ]; if ( information ) { for ( i=1 ; i <= information->maximum ; i++ ) { 47108: 5282 addql #1,%d2 <== NOT EXECUTED 4710a: 4280 clrl %d0 <== NOT EXECUTED 4710c: 302a 000e movew %a2@(14),%d0 <== NOT EXECUTED 47110: b082 cmpl %d2,%d0 <== NOT EXECUTED 47112: 64e4 bccs 470f8 <== NOT EXECUTED 47114: 588b addql #4,%a3 <== NOT EXECUTED if ( !routine ) return; for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; 47116: b7fc 0006 0f98 cmpal #397208,%a3 <== NOT EXECUTED 4711c: 66c8 bnes 470e6 <== NOT EXECUTED (*routine)(the_thread); } } } } 4711e: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 47124: 4e5e unlk %fp <== NOT EXECUTED 47126: 4e75 rts 0004912e : * This routine searches the IOP Table for an unused entry. If it * finds one, it returns it. Otherwise, it returns NULL. */ rtems_libio_t *rtems_libio_allocate( void ) { 4912e: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 49132: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49134: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_libio_t *iop, *next; rtems_status_code rc; rtems_id sema; rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); 49136: 42a7 clrl %sp@- <== NOT EXECUTED 49138: 42a7 clrl %sp@- <== NOT EXECUTED 4913a: 2f39 0005 6b44 movel 56b44 ,%sp@- <== NOT EXECUTED 49140: 4eb9 0004 4e48 jsr 44e48 <== NOT EXECUTED if (rtems_libio_iop_freelist) { 49146: 2039 0005 6b40 movel 56b40 ,%d0 <== NOT EXECUTED 4914c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49152: 676e beqs 491c2 <== NOT EXECUTED rc = rtems_semaphore_create( 49154: 486e fffc pea %fp@(-4) <== NOT EXECUTED 49158: 90b9 0005 6b3c subl 56b3c ,%d0 <== NOT EXECUTED 4915e: 42a7 clrl %sp@- <== NOT EXECUTED 49160: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 49166: 4878 0054 pea 54 <== NOT EXECUTED 4916a: e480 asrl #2,%d0 <== NOT EXECUTED 4916c: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 49170: 4878 0001 pea 1 <== NOT EXECUTED 49174: 0080 4c42 4900 oril #1279412480,%d0 <== NOT EXECUTED 4917a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4917c: 4eb9 0004 4c0c jsr 44c0c <== NOT EXECUTED 1, RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY, RTEMS_NO_PRIORITY, &sema ); if (rc != RTEMS_SUCCESSFUL) 49182: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 49188: 4a80 tstl %d0 <== NOT EXECUTED 4918a: 6636 bnes 491c2 <== NOT EXECUTED goto failed; iop = rtems_libio_iop_freelist; 4918c: 2479 0005 6b40 moveal 56b40 ,%a2 <== NOT EXECUTED next = iop->data1; 49192: 242a 0028 movel %a2@(40),%d2 <== NOT EXECUTED (void) memset( iop, 0, sizeof(rtems_libio_t) ); 49196: 4878 0034 pea 34 <== NOT EXECUTED 4919a: 42a7 clrl %sp@- <== NOT EXECUTED 4919c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4919e: 4eb9 0004 b464 jsr 4b464 <== NOT EXECUTED iop->flags = LIBIO_FLAGS_OPEN; iop->sem = sema; 491a4: 256e fffc 0020 movel %fp@(-4),%a2@(32) <== NOT EXECUTED if (rc != RTEMS_SUCCESSFUL) goto failed; iop = rtems_libio_iop_freelist; next = iop->data1; (void) memset( iop, 0, sizeof(rtems_libio_t) ); iop->flags = LIBIO_FLAGS_OPEN; 491aa: 203c 0000 0100 movel #256,%d0 <== NOT EXECUTED iop->sem = sema; rtems_libio_iop_freelist = next; 491b0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 491b6: 23c2 0005 6b40 movel %d2,56b40 <== NOT EXECUTED if (rc != RTEMS_SUCCESSFUL) goto failed; iop = rtems_libio_iop_freelist; next = iop->data1; (void) memset( iop, 0, sizeof(rtems_libio_t) ); iop->flags = LIBIO_FLAGS_OPEN; 491bc: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED 491c0: 6002 bras 491c4 <== NOT EXECUTED } failed: iop = 0; done: 491c2: 95ca subal %a2,%a2 <== NOT EXECUTED rtems_semaphore_release( rtems_libio_semaphore ); 491c4: 2f39 0005 6b44 movel 56b44 ,%sp@- <== NOT EXECUTED 491ca: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED return iop; } 491d0: 200a movel %a2,%d0 <== NOT EXECUTED 491d2: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 491d6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 491da: 4e5e unlk %fp <== NOT EXECUTED 491dc: 4e75 rts 000491de : }; uint32_t rtems_libio_fcntl_flags( uint32_t fcntl_flags ) { 491de: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 491e2: 2f03 movel %d3,%sp@- <== NOT EXECUTED * Access mode is a small integer */ access_modes = fcntl_flags & O_ACCMODE; fcntl_flags &= ~O_ACCMODE; flags = rtems_assoc_local_by_remote( access_modes_assoc, access_modes ); 491e4: 7003 moveq #3,%d0 <== NOT EXECUTED }; uint32_t rtems_libio_fcntl_flags( uint32_t fcntl_flags ) { 491e6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 491e8: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED * Access mode is a small integer */ access_modes = fcntl_flags & O_ACCMODE; fcntl_flags &= ~O_ACCMODE; flags = rtems_assoc_local_by_remote( access_modes_assoc, access_modes ); 491ec: c082 andl %d2,%d0 <== NOT EXECUTED 491ee: 2f00 movel %d0,%sp@- <== NOT EXECUTED 491f0: 4879 0005 4486 pea 54486 <== NOT EXECUTED 491f6: 4eb9 0004 a708 jsr 4a708 <== NOT EXECUTED 491fc: 2600 movel %d0,%d3 <== NOT EXECUTED /* * Everything else is single bits */ flags |= 491fe: 70fc moveq #-4,%d0 <== NOT EXECUTED 49200: c082 andl %d2,%d0 <== NOT EXECUTED 49202: 2f00 movel %d0,%sp@- <== NOT EXECUTED 49204: 4879 0005 44b6 pea 544b6 <== NOT EXECUTED 4920a: 4eb9 0004 a6c8 jsr 4a6c8 <== NOT EXECUTED rtems_assoc_local_by_remote_bitfield(status_flags_assoc, fcntl_flags); return flags; } 49210: 8083 orl %d3,%d0 <== NOT EXECUTED 49212: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 49216: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 4921a: 4e5e unlk %fp <== NOT EXECUTED 4921c: 4e75 rts <== NOT EXECUTED ... 000490ce : */ void rtems_libio_free( rtems_libio_t *iop ) { 490ce: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 490d2: 2f0a movel %a2,%sp@- <== NOT EXECUTED rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); 490d4: 42a7 clrl %sp@- <== NOT EXECUTED */ void rtems_libio_free( rtems_libio_t *iop ) { 490d6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); 490da: 42a7 clrl %sp@- <== NOT EXECUTED 490dc: 2f39 0005 6b44 movel 56b44 ,%sp@- <== NOT EXECUTED 490e2: 4eb9 0004 4e48 jsr 44e48 <== NOT EXECUTED if (iop->sem) 490e8: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 490ec: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 490f2: 670a beqs 490fe <== NOT EXECUTED rtems_semaphore_delete(iop->sem); 490f4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 490f6: 4eb9 0004 4da8 jsr 44da8 <== NOT EXECUTED 490fc: 588f addql #4,%sp <== NOT EXECUTED iop->flags &= ~LIBIO_FLAGS_OPEN; iop->data1 = rtems_libio_iop_freelist; 490fe: 41f9 0005 6b40 lea 56b40 ,%a0 <== NOT EXECUTED 49104: 2550 0028 movel %a0@,%a2@(40) <== NOT EXECUTED rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); if (iop->sem) rtems_semaphore_delete(iop->sem); iop->flags &= ~LIBIO_FLAGS_OPEN; 49108: 203c ffff feff movel #-257,%d0 <== NOT EXECUTED iop->data1 = rtems_libio_iop_freelist; rtems_libio_iop_freelist = iop; 4910e: 23ca 0005 6b40 movel %a2,56b40 <== NOT EXECUTED rtems_semaphore_release(rtems_libio_semaphore); 49114: 41f9 0005 6b44 lea 56b44 ,%a0 <== NOT EXECUTED rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); if (iop->sem) rtems_semaphore_delete(iop->sem); iop->flags &= ~LIBIO_FLAGS_OPEN; 4911a: c1aa 000c andl %d0,%a2@(12) <== NOT EXECUTED iop->data1 = rtems_libio_iop_freelist; rtems_libio_iop_freelist = iop; rtems_semaphore_release(rtems_libio_semaphore); } 4911e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED iop->flags &= ~LIBIO_FLAGS_OPEN; iop->data1 = rtems_libio_iop_freelist; rtems_libio_iop_freelist = iop; rtems_semaphore_release(rtems_libio_semaphore); 49122: 2d50 0008 movel %a0@,%fp@(8) <== NOT EXECUTED } 49126: 4e5e unlk %fp <== NOT EXECUTED iop->flags &= ~LIBIO_FLAGS_OPEN; iop->data1 = rtems_libio_iop_freelist; rtems_libio_iop_freelist = iop; rtems_semaphore_release(rtems_libio_semaphore); 49128: 4ef9 0004 4f50 jmp 44f50 <== NOT EXECUTED 00042204 : { rtems_status_code rc; int i; rtems_libio_t *iop; if (rtems_libio_number_iops > 0) 42204: 2039 0005 50e8 movel 550e8 ,%d0 <== NOT EXECUTED * * Called by BSP startup code to initialize the libio subsystem. */ void rtems_libio_init( void ) { 4220a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4220e: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_status_code rc; int i; rtems_libio_t *iop; if (rtems_libio_number_iops > 0) 42210: 4a80 tstl %d0 <== NOT EXECUTED 42212: 6750 beqs 42264 <== NOT EXECUTED { rtems_libio_iops = (rtems_libio_t *) calloc(rtems_libio_number_iops, 42214: 4878 0034 pea 34 <== NOT EXECUTED 42218: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4221a: 4eb9 0004 8cd4 jsr 48cd4 <== NOT EXECUTED sizeof(rtems_libio_t)); if (rtems_libio_iops == NULL) 42220: 508f addql #8,%sp <== NOT EXECUTED int i; rtems_libio_t *iop; if (rtems_libio_number_iops > 0) { rtems_libio_iops = (rtems_libio_t *) calloc(rtems_libio_number_iops, 42222: 2240 moveal %d0,%a1 <== NOT EXECUTED 42224: 23c0 0005 6b3c movel %d0,56b3c <== NOT EXECUTED sizeof(rtems_libio_t)); if (rtems_libio_iops == NULL) 4222a: 6606 bnes 42232 <== NOT EXECUTED rtems_fatal_error_occurred(RTEMS_NO_MEMORY); 4222c: 4878 001a pea 1a <== NOT EXECUTED 42230: 605a bras 4228c <== NOT EXECUTED iop = rtems_libio_iop_freelist = rtems_libio_iops; 42232: 23c0 0005 6b40 movel %d0,56b40 <== NOT EXECUTED for (i = 0 ; i < (rtems_libio_number_iops - 1) ; i++, iop++) 42238: 2039 0005 50e8 movel 550e8 ,%d0 <== NOT EXECUTED 4223e: 2049 moveal %a1,%a0 <== NOT EXECUTED 42240: 4282 clrl %d2 <== NOT EXECUTED 42242: 6004 bras 42248 <== NOT EXECUTED iop->data1 = iop + 1; 42244: 2148 fff4 movel %a0,%a0@(-12) <== NOT EXECUTED 42248: 5282 addql #1,%d2 <== NOT EXECUTED 4224a: d1fc 0000 0034 addal #52,%a0 <== NOT EXECUTED sizeof(rtems_libio_t)); if (rtems_libio_iops == NULL) rtems_fatal_error_occurred(RTEMS_NO_MEMORY); iop = rtems_libio_iop_freelist = rtems_libio_iops; for (i = 0 ; i < (rtems_libio_number_iops - 1) ; i++, iop++) 42250: b082 cmpl %d2,%d0 <== NOT EXECUTED 42252: 66f0 bnes 42244 <== NOT EXECUTED iop->data1 = iop + 1; iop->data1 = NULL; 42254: 2202 movel %d2,%d1 <== NOT EXECUTED 42256: 2002 movel %d2,%d0 <== NOT EXECUTED 42258: e589 lsll #2,%d1 <== NOT EXECUTED 4225a: e988 lsll #4,%d0 <== NOT EXECUTED 4225c: 9081 subl %d1,%d0 <== NOT EXECUTED 4225e: d082 addl %d2,%d0 <== NOT EXECUTED 42260: 42b1 0cf4 clrl %a1@(fffffff4,%d0:l:4) <== NOT EXECUTED /* * Create the binary semaphore used to provide mutual exclusion * on the IOP Table. */ rc = rtems_semaphore_create( 42264: 4879 0005 6b44 pea 56b44 <== NOT EXECUTED 4226a: 42a7 clrl %sp@- <== NOT EXECUTED 4226c: 4878 0054 pea 54 <== NOT EXECUTED 42270: 4878 0001 pea 1 <== NOT EXECUTED 42274: 2f3c 4c42 494f movel #1279412559,%sp@- <== NOT EXECUTED 4227a: 4eb9 0004 4c0c jsr 44c0c <== NOT EXECUTED 1, RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY, RTEMS_NO_PRIORITY, &rtems_libio_semaphore ); if ( rc != RTEMS_SUCCESSFUL ) 42280: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 42286: 4a80 tstl %d0 <== NOT EXECUTED 42288: 6708 beqs 42292 <== NOT EXECUTED rtems_fatal_error_occurred( rc ); 4228a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4228c: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED /* * Initialize the base file system infrastructure. */ rtems_filesystem_initialize(); } 42292: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 42296: 4e5e unlk %fp <== NOT EXECUTED /* * Initialize the base file system infrastructure. */ rtems_filesystem_initialize(); 42298: 4ef9 0004 8bc4 jmp 48bc4 <== NOT EXECUTED ... 00048ff2 : */ int rtems_libio_is_file_open( void *node_access ) { 48ff2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48ff6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48ff8: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; int result=0; int i; rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); 48ffc: 42a7 clrl %sp@- <== NOT EXECUTED 48ffe: 42a7 clrl %sp@- <== NOT EXECUTED 49000: 2f39 0005 6b44 movel 56b44 ,%sp@- <== NOT EXECUTED 49006: 4eb9 0004 4e48 jsr 44e48 <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4900c: 2079 0005 6b3c moveal 56b3c ,%a0 <== NOT EXECUTED 49012: 2279 0005 50e8 moveal 550e8 ,%a1 <== NOT EXECUTED 49018: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4901e: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 49024: 4281 clrl %d1 <== NOT EXECUTED 49026: 601c bras 49044 <== NOT EXECUTED if ((iop->flags & LIBIO_FLAGS_OPEN) != 0) { 49028: 2010 movel %a0@,%d0 <== NOT EXECUTED 4902a: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 49030: 670a beqs 4903c <== NOT EXECUTED /* * Check if this node is under the file system that we * are trying to dismount. */ if ( iop->pathinfo.node_access == node_access ) { 49032: b4a8 0004 cmpl %a0@(4),%d2 <== NOT EXECUTED 49036: 6604 bnes 4903c <== NOT EXECUTED 49038: 7401 moveq #1,%d2 <== NOT EXECUTED 4903a: 600e bras 4904a <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4903c: 5281 addql #1,%d1 <== NOT EXECUTED 4903e: d1fc 0000 0034 addal #52,%a0 <== NOT EXECUTED 49044: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 49046: 62e0 bhis 49028 <== NOT EXECUTED 49048: 4282 clrl %d2 <== NOT EXECUTED break; } } } rtems_semaphore_release( rtems_libio_semaphore ); 4904a: 2f39 0005 6b44 movel 56b44 ,%sp@- <== NOT EXECUTED 49050: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED return result; } 49056: 2002 movel %d2,%d0 <== NOT EXECUTED 49058: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4905c: 4e5e unlk %fp <== NOT EXECUTED 4905e: 4e75 rts 00049060 : */ int rtems_libio_is_open_files_in_fs( rtems_filesystem_mount_table_entry_t * fs_mt_entry ) { 49060: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49064: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49066: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; int result = 0; int i; rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); 4906a: 42a7 clrl %sp@- <== NOT EXECUTED 4906c: 42a7 clrl %sp@- <== NOT EXECUTED 4906e: 2f39 0005 6b44 movel 56b44 ,%sp@- <== NOT EXECUTED 49074: 4eb9 0004 4e48 jsr 44e48 <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4907a: 2079 0005 6b3c moveal 56b3c ,%a0 <== NOT EXECUTED 49080: 2279 0005 50e8 moveal 550e8 ,%a1 <== NOT EXECUTED 49086: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4908c: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 49092: 4281 clrl %d1 <== NOT EXECUTED 49094: 601c bras 490b2 <== NOT EXECUTED if ((iop->flags & LIBIO_FLAGS_OPEN) != 0) { 49096: 2010 movel %a0@,%d0 <== NOT EXECUTED 49098: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 4909e: 670a beqs 490aa <== NOT EXECUTED /* * Check if this node is under the file system that we * are trying to dismount. */ if ( iop->pathinfo.mt_entry == fs_mt_entry ) { 490a0: b4a8 0010 cmpl %a0@(16),%d2 <== NOT EXECUTED 490a4: 6604 bnes 490aa <== NOT EXECUTED 490a6: 7401 moveq #1,%d2 <== NOT EXECUTED 490a8: 600e bras 490b8 <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 490aa: 5281 addql #1,%d1 <== NOT EXECUTED 490ac: d1fc 0000 0034 addal #52,%a0 <== NOT EXECUTED 490b2: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 490b4: 62e0 bhis 49096 <== NOT EXECUTED 490b6: 4282 clrl %d2 <== NOT EXECUTED break; } } } rtems_semaphore_release( rtems_libio_semaphore ); 490b8: 2f39 0005 6b44 movel 56b44 ,%sp@- <== NOT EXECUTED 490be: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED return result; } 490c4: 2002 movel %d2,%d0 <== NOT EXECUTED 490c6: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 490ca: 4e5e unlk %fp <== NOT EXECUTED 490cc: 4e75 rts 0005c320 : rtems_filesystem_freenode( &env->root_directory); free(env); } } rtems_status_code rtems_libio_set_private_env(void) { 5c320: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 5c324: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED rtems_status_code sc; rtems_id task_id; rtems_filesystem_location_info_t loc; sc=rtems_task_ident(RTEMS_SELF,0,&task_id); 5c328: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5c32c: 42a7 clrl %sp@- <== NOT EXECUTED 5c32e: 42a7 clrl %sp@- <== NOT EXECUTED 5c330: 4eb9 0005 d3c8 jsr 5d3c8 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 5c336: dffc 0000 000c addal #12,%sp <== NOT EXECUTED rtems_status_code rtems_libio_set_private_env(void) { rtems_status_code sc; rtems_id task_id; rtems_filesystem_location_info_t loc; sc=rtems_task_ident(RTEMS_SELF,0,&task_id); 5c33c: 2600 movel %d0,%d3 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 5c33e: 6600 00f4 bnew 5c434 <== NOT EXECUTED /* Only for the first time a malloc is necesary */ if (rtems_current_user_env==&rtems_global_user_env) { 5c342: 203c 0009 2974 movel #600436,%d0 <== NOT EXECUTED 5c348: b0b9 0007 d460 cmpl 7d460 ,%d0 <== NOT EXECUTED 5c34e: 664c bnes 5c39c <== NOT EXECUTED rtems_user_env_t *tmp = malloc(sizeof(rtems_user_env_t)); 5c350: 4878 0040 pea 40 <== NOT EXECUTED 5c354: 4eb9 0004 58e4 jsr 458e4 <== NOT EXECUTED if (!tmp) 5c35a: 588f addql #4,%sp <== NOT EXECUTED sc=rtems_task_ident(RTEMS_SELF,0,&task_id); if (sc != RTEMS_SUCCESSFUL) return sc; /* Only for the first time a malloc is necesary */ if (rtems_current_user_env==&rtems_global_user_env) { rtems_user_env_t *tmp = malloc(sizeof(rtems_user_env_t)); 5c35c: 2400 movel %d0,%d2 <== NOT EXECUTED if (!tmp) 5c35e: 6608 bnes 5c368 <== NOT EXECUTED 5c360: 163c 001a moveb #26,%d3 <== NOT EXECUTED 5c364: 6000 00ce braw 5c434 <== NOT EXECUTED #ifdef HAVE_USERENV_REFCNT tmp->refcnt = 1; #endif sc = rtems_task_variable_add(RTEMS_SELF,(void*)&rtems_current_user_env,(void(*)(void *))free_user_env); 5c368: 487a feba pea %pc@(5c224 ) <== NOT EXECUTED 5c36c: 4879 0007 d460 pea 7d460 <== NOT EXECUTED 5c372: 42a7 clrl %sp@- <== NOT EXECUTED 5c374: 4eb9 0005 d738 jsr 5d738 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 5c37a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED #ifdef HAVE_USERENV_REFCNT tmp->refcnt = 1; #endif sc = rtems_task_variable_add(RTEMS_SELF,(void*)&rtems_current_user_env,(void(*)(void *))free_user_env); 5c380: 2440 moveal %d0,%a2 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 5c382: 4a80 tstl %d0 <== NOT EXECUTED 5c384: 6710 beqs 5c396 <== NOT EXECUTED /* don't use free_user_env because the pathlocs are * not initialized yet */ free(tmp); 5c386: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c388: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 5c38e: 260a movel %a2,%d3 <== NOT EXECUTED 5c390: 588f addql #4,%sp <== NOT EXECUTED 5c392: 6000 00a0 braw 5c434 <== NOT EXECUTED return sc; } rtems_current_user_env = tmp; 5c396: 23c2 0007 d460 movel %d2,7d460 <== NOT EXECUTED }; *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ 5c39c: 4878 0040 pea 40 <== NOT EXECUTED 5c3a0: 45f9 0006 a3dc lea 6a3dc ,%a2 <== NOT EXECUTED 5c3a6: 4879 0009 2974 pea 92974 <== NOT EXECUTED * code we must _not_ free the original locs because * what we are trying to do here is forking off * clones. */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); 5c3ac: 240e movel %fp,%d2 <== NOT EXECUTED return sc; } rtems_current_user_env = tmp; }; *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ 5c3ae: 2f39 0007 d460 movel 7d460 ,%sp@- <== NOT EXECUTED 5c3b4: 4e92 jsr %a2@ <== NOT EXECUTED rtems_current_user_env->task_id=task_id; /* mark the local values*/ 5c3b6: 2079 0007 d460 moveal 7d460 ,%a0 <== NOT EXECUTED 5c3bc: 20ae fffc movel %fp@(-4),%a0@ <== NOT EXECUTED /* get a clean root */ rtems_filesystem_root = THE_ROOT_FS_LOC; 5c3c0: 2039 0009 257c movel 9257c ,%d0 <== NOT EXECUTED 5c3c6: 4878 0010 pea 10 <== NOT EXECUTED 5c3ca: 0680 0000 0018 addil #24,%d0 <== NOT EXECUTED * code we must _not_ free the original locs because * what we are trying to do here is forking off * clones. */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); 5c3d0: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ rtems_current_user_env->task_id=task_id; /* mark the local values*/ /* get a clean root */ rtems_filesystem_root = THE_ROOT_FS_LOC; 5c3d6: 2f00 movel %d0,%sp@- <== NOT EXECUTED * code we must _not_ free the original locs because * what we are trying to do here is forking off * clones. */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); 5c3d8: 47f9 0004 5236 lea 45236 ,%a3 <== NOT EXECUTED *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ rtems_current_user_env->task_id=task_id; /* mark the local values*/ /* get a clean root */ rtems_filesystem_root = THE_ROOT_FS_LOC; 5c3de: 4868 0014 pea %a0@(20) <== NOT EXECUTED 5c3e2: 4e92 jsr %a2@ <== NOT EXECUTED * code we must _not_ free the original locs because * what we are trying to do here is forking off * clones. */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); 5c3e4: 42a7 clrl %sp@- <== NOT EXECUTED 5c3e6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c3e8: 42a7 clrl %sp@- <== NOT EXECUTED 5c3ea: 4879 0007 a664 pea 7a664 <== NOT EXECUTED 5c3f0: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_root = loc; 5c3f2: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED 5c3f8: 4878 0010 pea 10 <== NOT EXECUTED 5c3fc: 2039 0007 d460 movel 7d460 ,%d0 <== NOT EXECUTED 5c402: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c404: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 5c40a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c40c: 4e92 jsr %a2@ <== NOT EXECUTED rtems_filesystem_evaluate_path("/", 0, &loc, 0); 5c40e: 42a7 clrl %sp@- <== NOT EXECUTED 5c410: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c412: 42a7 clrl %sp@- <== NOT EXECUTED 5c414: 4879 0007 a664 pea 7a664 <== NOT EXECUTED 5c41a: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_current = loc; 5c41c: 4878 0010 pea 10 <== NOT EXECUTED 5c420: 2039 0007 d460 movel 7d460 ,%d0 <== NOT EXECUTED 5c426: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c428: 5880 addql #4,%d0 <== NOT EXECUTED 5c42a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c42c: 4e92 jsr %a2@ <== NOT EXECUTED 5c42e: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 5c434: 2003 movel %d3,%d0 <== NOT EXECUTED 5c436: 4cee 0c0c ffdc moveml %fp@(-36),%d2-%d3/%a2-%a3 <== NOT EXECUTED 5c43c: 4e5e unlk %fp <== NOT EXECUTED 5c43e: 4e75 rts 0005c27e : * b) mutex access to rtems_filesystem_current, rtems_filesytem_root * while changing any of those (chdir(), chroot()). */ #ifndef HAVE_USERENV_REFCNT rtems_status_code rtems_libio_share_private_env(rtems_id task_id) { 5c27e: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 5c282: 2f0a movel %a2,%sp@- <== NOT EXECUTED rtems_status_code sc; rtems_user_env_t * shared_user_env; rtems_id current_task_id; sc=rtems_task_ident(RTEMS_SELF,0,¤t_task_id); 5c284: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 5c288: 42a7 clrl %sp@- <== NOT EXECUTED 5c28a: 42a7 clrl %sp@- <== NOT EXECUTED 5c28c: 4eb9 0005 d3c8 jsr 5d3c8 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 5c292: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c298: 4a80 tstl %d0 <== NOT EXECUTED 5c29a: 667c bnes 5c318 <== NOT EXECUTED if (rtems_current_user_env->task_id==current_task_id) { 5c29c: 2479 0007 d460 moveal 7d460 ,%a2 <== NOT EXECUTED 5c2a2: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 5c2a6: b092 cmpl %a2@,%d0 <== NOT EXECUTED 5c2a8: 661c bnes 5c2c6 <== NOT EXECUTED /* kill the current user env & task_var*/ rtems_user_env_t *tmp = rtems_current_user_env; sc = rtems_task_variable_delete(RTEMS_SELF,(void*)&rtems_current_user_env); 5c2aa: 4879 0007 d460 pea 7d460 <== NOT EXECUTED 5c2b0: 42a7 clrl %sp@- <== NOT EXECUTED 5c2b2: 4eb9 0005 d7cc jsr 5d7cc <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 5c2b8: 508f addql #8,%sp <== NOT EXECUTED 5c2ba: 4a80 tstl %d0 <== NOT EXECUTED 5c2bc: 665a bnes 5c318 <== NOT EXECUTED free_user_env(tmp); 5c2be: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5c2c0: 4eba ff62 jsr %pc@(5c224 ) <== NOT EXECUTED 5c2c4: 588f addql #4,%sp <== NOT EXECUTED }; /* AT THIS POINT, rtems_current_user_env is DANGLING */ sc = rtems_task_variable_get(task_id,(void*)&rtems_current_user_env, 5c2c6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5c2ca: 4879 0007 d460 pea 7d460 <== NOT EXECUTED 5c2d0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c2d4: 4eb9 0005 d844 jsr 5d844 <== NOT EXECUTED (void*)&shared_user_env ); if (sc != RTEMS_SUCCESSFUL) 5c2da: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c2e0: 4a80 tstl %d0 <== NOT EXECUTED 5c2e2: 6628 bnes 5c30c <== NOT EXECUTED goto bailout; sc = rtems_task_variable_add(RTEMS_SELF,(void*)&rtems_current_user_env,free_user_env); 5c2e4: 487a ff3e pea %pc@(5c224 ) <== NOT EXECUTED 5c2e8: 4879 0007 d460 pea 7d460 <== NOT EXECUTED 5c2ee: 42a7 clrl %sp@- <== NOT EXECUTED 5c2f0: 4eb9 0005 d738 jsr 5d738 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 5c2f6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c2fc: 4a80 tstl %d0 <== NOT EXECUTED 5c2fe: 660c bnes 5c30c <== NOT EXECUTED goto bailout; /* the current_user_env is the same pointer that remote env */ rtems_current_user_env = shared_user_env; 5c300: 41ee fffc lea %fp@(-4),%a0 <== NOT EXECUTED 5c304: 23d0 0007 d460 movel %a0@,7d460 <== NOT EXECUTED 5c30a: 600c bras 5c318 <== NOT EXECUTED return RTEMS_SUCCESSFUL; bailout: /* fallback to the global env */ rtems_current_user_env = &rtems_global_user_env; 5c30c: 223c 0009 2974 movel #600436,%d1 <== NOT EXECUTED 5c312: 23c1 0007 d460 movel %d1,7d460 <== NOT EXECUTED return sc; } 5c318: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 5c31c: 4e5e unlk %fp <== NOT EXECUTED 5c31e: 4e75 rts 00048fa4 : */ uint32_t rtems_libio_to_fcntl_flags( uint32_t flags ) { 48fa4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48fa8: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 48fac: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t fcntl_flags = 0; if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) { 48fae: 7006 moveq #6,%d0 <== NOT EXECUTED 48fb0: c081 andl %d1,%d0 <== NOT EXECUTED 48fb2: 7406 moveq #6,%d2 <== NOT EXECUTED 48fb4: b480 cmpl %d0,%d2 <== NOT EXECUTED 48fb6: 6604 bnes 48fbc <== NOT EXECUTED 48fb8: 7002 moveq #2,%d0 <== NOT EXECUTED 48fba: 6012 bras 48fce <== NOT EXECUTED fcntl_flags |= O_RDWR; } else if ( (flags & LIBIO_FLAGS_READ) == LIBIO_FLAGS_READ) { 48fbc: 0801 0001 btst #1,%d1 <== NOT EXECUTED 48fc0: 6704 beqs 48fc6 <== NOT EXECUTED 48fc2: 4280 clrl %d0 <== NOT EXECUTED 48fc4: 6008 bras 48fce <== NOT EXECUTED 48fc6: 2001 movel %d1,%d0 <== NOT EXECUTED 48fc8: e488 lsrl #2,%d0 <== NOT EXECUTED 48fca: 7401 moveq #1,%d2 <== NOT EXECUTED 48fcc: c082 andl %d2,%d0 <== NOT EXECUTED fcntl_flags |= O_RDONLY; } else if ( (flags & LIBIO_FLAGS_WRITE) == LIBIO_FLAGS_WRITE) { fcntl_flags |= O_WRONLY; } if ( (flags & LIBIO_FLAGS_NO_DELAY) == LIBIO_FLAGS_NO_DELAY ) { 48fce: 0801 0000 btst #0,%d1 <== NOT EXECUTED 48fd2: 6704 beqs 48fd8 <== NOT EXECUTED fcntl_flags |= O_NONBLOCK; 48fd4: 08c0 000e bset #14,%d0 <== NOT EXECUTED } if ( (flags & LIBIO_FLAGS_APPEND) == LIBIO_FLAGS_APPEND ) { 48fd8: 0801 0009 btst #9,%d1 <== NOT EXECUTED 48fdc: 6704 beqs 48fe2 <== NOT EXECUTED fcntl_flags |= O_APPEND; 48fde: 7408 moveq #8,%d2 <== NOT EXECUTED 48fe0: 8082 orl %d2,%d0 <== NOT EXECUTED } if ( (flags & LIBIO_FLAGS_CREATE) == LIBIO_FLAGS_CREATE ) { 48fe2: 0801 000a btst #10,%d1 <== NOT EXECUTED 48fe6: 6704 beqs 48fec <== NOT EXECUTED fcntl_flags |= O_CREAT; 48fe8: 08c0 0009 bset #9,%d0 <== NOT EXECUTED } return fcntl_flags; } 48fec: 241f movel %sp@+,%d2 <== NOT EXECUTED 48fee: 4e5e unlk %fp <== NOT EXECUTED 48ff0: 4e75 rts 00045988 : * size and thus we skip updating the statistics. */ void rtems_malloc_statistics_at_free( void *pointer ) { 45988: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4598c: 2f02 movel %d2,%sp@- <== NOT EXECUTED size_t size; if (_Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, pointer, &size) ) { 4598e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45992: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45996: 4879 0009 24f8 pea 924f8 <== NOT EXECUTED 4599c: 4eb9 0004 a41c jsr 4a41c <_Protected_heap_Get_block_size> <== NOT EXECUTED 459a2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 459a8: 4a00 tstb %d0 <== NOT EXECUTED 459aa: 671a beqs 459c6 <== NOT EXECUTED MSBUMP(lifetime_freed, size); 459ac: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 459b0: 4280 clrl %d0 <== NOT EXECUTED 459b2: d3b9 0009 2578 addl %d1,92578 <== NOT EXECUTED 459b8: 2439 0009 2574 movel 92574 ,%d2 <== NOT EXECUTED 459be: d580 addxl %d0,%d2 <== NOT EXECUTED 459c0: 23c2 0009 2574 movel %d2,92574 <== NOT EXECUTED } } 459c6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 459ca: 4e5e unlk %fp <== NOT EXECUTED 459cc: 4e75 rts 000459ce : } void rtems_malloc_statistics_at_malloc( void *pointer ) { 459ce: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 459d2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 459d4: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 459d8: 2f02 movel %d2,%sp@- <== NOT EXECUTED size_t actual_size = 0; uint32_t current_depth; rtems_malloc_statistics_t *s = &rtems_malloc_statistics; if ( !pointer ) 459da: 4a80 tstl %d0 <== NOT EXECUTED 459dc: 6750 beqs 45a2e <== NOT EXECUTED void rtems_malloc_statistics_at_malloc( void *pointer ) { size_t actual_size = 0; 459de: 204e moveal %fp,%a0 <== NOT EXECUTED 459e0: 42a0 clrl %a0@- <== NOT EXECUTED if ( !pointer ) return; _Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, pointer, &actual_size); MSBUMP(lifetime_allocated, actual_size); 459e2: 4282 clrl %d2 <== NOT EXECUTED rtems_malloc_statistics_t *s = &rtems_malloc_statistics; if ( !pointer ) return; _Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, pointer, &actual_size); 459e4: 2f08 movel %a0,%sp@- <== NOT EXECUTED 459e6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 459e8: 4879 0009 24f8 pea 924f8 <== NOT EXECUTED 459ee: 4eb9 0004 a41c jsr 4a41c <_Protected_heap_Get_block_size> <== NOT EXECUTED MSBUMP(lifetime_allocated, actual_size); 459f4: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 459f8: 2039 0009 256c movel 9256c ,%d0 <== NOT EXECUTED 459fe: d6b9 0009 2570 addl 92570 ,%d3 <== NOT EXECUTED 45a04: d580 addxl %d0,%d2 <== NOT EXECUTED current_depth = s->lifetime_allocated - s->lifetime_freed; 45a06: 2003 movel %d3,%d0 <== NOT EXECUTED 45a08: 90b9 0009 2578 subl 92578 ,%d0 <== NOT EXECUTED if ( !pointer ) return; _Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, pointer, &actual_size); MSBUMP(lifetime_allocated, actual_size); 45a0e: 23c2 0009 256c movel %d2,9256c <== NOT EXECUTED 45a14: 23c3 0009 2570 movel %d3,92570 <== NOT EXECUTED current_depth = s->lifetime_allocated - s->lifetime_freed; if (current_depth > s->max_depth) 45a1a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45a20: b0b9 0009 2568 cmpl 92568 ,%d0 <== NOT EXECUTED 45a26: 6306 blss 45a2e <== NOT EXECUTED s->max_depth = current_depth; 45a28: 23c0 0009 2568 movel %d0,92568 <== NOT EXECUTED } 45a2e: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 45a32: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 45a36: 4e5e unlk %fp <== NOT EXECUTED 45a38: 4e75 rts 00045a3a : #include #include void rtems_malloc_statistics_initialize( void ) { 45a3a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * Zero all the statistics */ (void) memset(&rtems_malloc_statistics, 0, sizeof(rtems_malloc_statistics)); 45a3e: 4878 002c pea 2c <== NOT EXECUTED 45a42: 42a7 clrl %sp@- <== NOT EXECUTED 45a44: 4879 0009 2550 pea 92550 <== NOT EXECUTED 45a4a: 4eb9 0006 a54c jsr 6a54c <== NOT EXECUTED 45a50: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 45a56: 4e5e unlk %fp <== NOT EXECUTED 45a58: 4e75 rts <== NOT EXECUTED ... 0004534c : int rtems_memalign( void **pointer, size_t alignment, size_t size ) { 4534c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45350: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45352: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 45356: 2f02 movel %d2,%sp@- <== NOT EXECUTED void *return_this; /* * Parameter error checks */ if ( !pointer ) 45358: 4a8a tstl %a2 <== NOT EXECUTED 4535a: 6758 beqs 453b4 <== NOT EXECUTED return EINVAL; *pointer = NULL; 4535c: 4292 clrl %a2@ <== NOT EXECUTED /* * Do not attempt to allocate memory if not in correct system state. */ if ( _System_state_Is_up(_System_state_Get()) && 4535e: 7003 moveq #3,%d0 <== NOT EXECUTED 45360: b0b9 0005 a7ba cmpl 5a7ba <_System_state_Current>,%d0 <== NOT EXECUTED 45366: 660a bnes 45372 <== NOT EXECUTED 45368: 4eb9 0004 45e0 jsr 445e0 <== NOT EXECUTED 4536e: 4a00 tstb %d0 <== NOT EXECUTED 45370: 6742 beqs 453b4 <== NOT EXECUTED /* * * If some free's have been deferred, then do them now. */ malloc_deferred_frees_process(); 45372: 4eb9 0004 463a jsr 4463a <== NOT EXECUTED /* * Perform the aligned allocation requested */ return_this = _Protected_heap_Allocate_aligned( 45378: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4537c: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 45380: 4879 0005 a4cc pea 5a4cc <== NOT EXECUTED 45386: 4eb9 0004 95bc jsr 495bc <_Protected_heap_Allocate_aligned> <== NOT EXECUTED &RTEMS_Malloc_Heap, size, alignment ); if ( !return_this ) 4538c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Perform the aligned allocation requested */ return_this = _Protected_heap_Allocate_aligned( 45392: 2400 movel %d0,%d2 <== NOT EXECUTED &RTEMS_Malloc_Heap, size, alignment ); if ( !return_this ) 45394: 6604 bnes 4539a <== NOT EXECUTED 45396: 700c moveq #12,%d0 <== NOT EXECUTED 45398: 601c bras 453b6 <== NOT EXECUTED return ENOMEM; /* * If configured, update the more involved statistics */ if ( rtems_malloc_statistics_helpers ) 4539a: 2079 0005 9014 moveal 59014 ,%a0 <== NOT EXECUTED 453a0: 4a88 tstl %a0 <== NOT EXECUTED 453a2: 670a beqs 453ae <== NOT EXECUTED (*rtems_malloc_statistics_helpers->at_malloc)(pointer); 453a4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 453a6: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 453aa: 4e90 jsr %a0@ <== NOT EXECUTED 453ac: 588f addql #4,%sp <== NOT EXECUTED */ if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif *pointer = return_this; 453ae: 2482 movel %d2,%a2@ <== NOT EXECUTED 453b0: 4280 clrl %d0 <== NOT EXECUTED 453b2: 6002 bras 453b6 <== NOT EXECUTED return 0; 453b4: 7016 moveq #22,%d0 <== NOT EXECUTED } 453b6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 453ba: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 453be: 4e5e unlk %fp <== NOT EXECUTED 453c0: 4e75 rts <== NOT EXECUTED ... 0004cfe4 : Objects_Id id, const void *buffer, size_t size, uint32_t *count ) { 4cfe4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4cfe8: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 4cfec: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4cff0: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4cff4: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; CORE_message_queue_Status core_status; if ( !buffer ) 4cff8: 4a84 tstl %d4 <== NOT EXECUTED 4cffa: 6756 beqs 4d052 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !count ) 4cffc: 4a82 tstl %d2 <== NOT EXECUTED 4cffe: 6752 beqs 4d052 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (Message_queue_Control *) 4d000: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d004: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d006: 4879 0006 ca76 pea 6ca76 <_Message_queue_Information> <== NOT EXECUTED 4d00c: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4d012: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d018: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d01a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d01e: 6704 beqs 4d024 <== NOT EXECUTED 4d020: 7004 moveq #4,%d0 <== NOT EXECUTED 4d022: 6030 bras 4d054 <== NOT EXECUTED case OBJECTS_LOCAL: core_status = _CORE_message_queue_Broadcast( 4d024: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d026: 42a7 clrl %sp@- <== NOT EXECUTED 4d028: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d02a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4d02e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d030: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4d034: 4eb9 0005 00b8 jsr 500b8 <_CORE_message_queue_Broadcast> <== NOT EXECUTED 4d03a: 2400 movel %d0,%d2 <== NOT EXECUTED NULL, #endif count ); _Thread_Enable_dispatch(); 4d03c: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED return 4d042: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d044: 4eb9 0004 d380 jsr 4d380 <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 4d04a: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 4d050: 6002 bras 4d054 <== NOT EXECUTED 4d052: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d054: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 4d05a: 4e5e unlk %fp <== NOT EXECUTED 4d05c: 4e75 rts <== NOT EXECUTED ... 0004d060 : uint32_t count, size_t max_message_size, rtems_attribute attribute_set, Objects_Id *id ) { 4d060: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 4d064: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 4d068: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 4d06c: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4d070: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4d074: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED 4d078: 286e 0018 moveal %fp@(24),%a4 <== NOT EXECUTED CORE_message_queue_Attributes the_msgq_attributes; #if defined(RTEMS_MULTIPROCESSING) bool is_global; #endif if ( !rtems_is_name_valid( name ) ) 4d07c: 4a85 tstl %d5 <== NOT EXECUTED 4d07e: 6606 bnes 4d086 <== NOT EXECUTED 4d080: 7003 moveq #3,%d0 <== NOT EXECUTED 4d082: 6000 00a6 braw 4d12a <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 4d086: 4a8c tstl %a4 <== NOT EXECUTED 4d088: 6606 bnes 4d090 <== NOT EXECUTED 4d08a: 7009 moveq #9,%d0 <== NOT EXECUTED 4d08c: 6000 009c braw 4d12a <== NOT EXECUTED if ( (is_global = _Attributes_Is_global( attribute_set ) ) && !_System_state_Is_multiprocessing ) return RTEMS_MP_NOT_CONFIGURED; #endif if ( count == 0 ) 4d090: 4a84 tstl %d4 <== NOT EXECUTED 4d092: 6606 bnes 4d09a <== NOT EXECUTED 4d094: 700a moveq #10,%d0 <== NOT EXECUTED 4d096: 6000 0092 braw 4d12a <== NOT EXECUTED return RTEMS_INVALID_NUMBER; if ( max_message_size == 0 ) 4d09a: 4a83 tstl %d3 <== NOT EXECUTED 4d09c: 6606 bnes 4d0a4 <== NOT EXECUTED 4d09e: 7008 moveq #8,%d0 <== NOT EXECUTED 4d0a0: 6000 0088 braw 4d12a <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4d0a4: 2039 0006 c830 movel 6c830 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4d0aa: 5280 addql #1,%d0 <== NOT EXECUTED 4d0ac: 23c0 0006 c830 movel %d0,6c830 <_Thread_Dispatch_disable_level> <== NOT EXECUTED #endif #endif _Thread_Disable_dispatch(); /* protects object pointer */ the_message_queue = _Message_queue_Allocate(); 4d0b2: 4eb9 0005 4c10 jsr 54c10 <_Message_queue_Allocate> <== NOT EXECUTED 4d0b8: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !the_message_queue ) { 4d0ba: 4a80 tstl %d0 <== NOT EXECUTED 4d0bc: 660a bnes 4d0c8 <== NOT EXECUTED _Thread_Enable_dispatch(); 4d0be: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4d0c4: 7005 moveq #5,%d0 <== NOT EXECUTED 4d0c6: 6062 bras 4d12a <== NOT EXECUTED #endif the_message_queue->attribute_set = attribute_set; if (_Attributes_Is_priority( attribute_set ) ) the_msgq_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY; 4d0c8: 44c2 movew %d2,%ccr <== NOT EXECUTED 4d0ca: 56c0 sne %d0 <== NOT EXECUTED 4d0cc: 49c0 extbl %d0 <== NOT EXECUTED 4d0ce: 204e moveal %fp,%a0 <== NOT EXECUTED 4d0d0: 5280 addql #1,%d0 <== NOT EXECUTED 4d0d2: 2100 movel %d0,%a0@- <== NOT EXECUTED 4d0d4: 47f9 0005 1ef2 lea 51ef2 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } #endif the_message_queue->attribute_set = attribute_set; 4d0da: 2542 0010 movel %d2,%a2@(16) <== NOT EXECUTED if (_Attributes_Is_priority( attribute_set ) ) the_msgq_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY; else the_msgq_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO; if ( ! _CORE_message_queue_Initialize( 4d0de: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d0e0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d0e2: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4d0e4: 486a 0014 pea %a2@(20) <== NOT EXECUTED 4d0e8: 4eb9 0005 01ec jsr 501ec <_CORE_message_queue_Initialize> <== NOT EXECUTED 4d0ee: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4d0f4: 4a00 tstb %d0 <== NOT EXECUTED 4d0f6: 6616 bnes 4d10e <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Message_queue_Free ( Message_queue_Control *the_message_queue ) { _Objects_Free( &_Message_queue_Information, &the_message_queue->Object ); 4d0f8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d0fa: 4879 0006 ca76 pea 6ca76 <_Message_queue_Information> <== NOT EXECUTED 4d100: 4eb9 0005 1578 jsr 51578 <_Objects_Free> <== NOT EXECUTED _Objects_MP_Close( &_Message_queue_Information, the_message_queue->Object.id); #endif _Message_queue_Free( the_message_queue ); _Thread_Enable_dispatch(); 4d106: 4e93 jsr %a3@ <== NOT EXECUTED 4d108: 508f addql #8,%sp <== NOT EXECUTED 4d10a: 700d moveq #13,%d0 <== NOT EXECUTED 4d10c: 601c bras 4d12a <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4d10e: 2545 000c movel %d5,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4d112: 2079 0006 ca90 moveal 6ca90 <_Message_queue_Information+0x1a>,%a0 <== NOT EXECUTED 4d118: 4280 clrl %d0 <== NOT EXECUTED 4d11a: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED &_Message_queue_Information, &the_message_queue->Object, (Objects_Name) name ); *id = the_message_queue->Object.id; 4d11e: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED 4d122: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED name, 0 ); #endif _Thread_Enable_dispatch(); 4d126: 4e93 jsr %a3@ <== NOT EXECUTED 4d128: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4d12a: 4cee 1c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4d130: 4e5e unlk %fp <== NOT EXECUTED 4d132: 4e75 rts 0004ee10 : */ rtems_status_code rtems_message_queue_delete( Objects_Id id ) { 4ee10: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4ee14: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (Message_queue_Control *) 4ee16: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4ee1a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ee1e: 4879 0006 2c32 pea 62c32 <_Message_queue_Information> <== NOT EXECUTED 4ee24: 4eb9 0004 a028 jsr 4a028 <_Objects_Get> <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4ee2a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ee30: 2440 moveal %d0,%a2 <== NOT EXECUTED 4ee32: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4ee36: 6704 beqs 4ee3c <== NOT EXECUTED 4ee38: 7004 moveq #4,%d0 <== NOT EXECUTED 4ee3a: 603a bras 4ee76 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Message_queue_Information, 4ee3c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ee3e: 4879 0006 2c32 pea 62c32 <_Message_queue_Information> <== NOT EXECUTED 4ee44: 4eb9 0004 9c50 jsr 49c50 <_Objects_Close> <== NOT EXECUTED &the_message_queue->Object ); _CORE_message_queue_Close( 4ee4a: 4878 0005 pea 5 <== NOT EXECUTED 4ee4e: 42a7 clrl %sp@- <== NOT EXECUTED 4ee50: 486a 0014 pea %a2@(20) <== NOT EXECUTED 4ee54: 4eb9 0004 f414 jsr 4f414 <_CORE_message_queue_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Message_queue_Free ( Message_queue_Control *the_message_queue ) { _Objects_Free( &_Message_queue_Information, &the_message_queue->Object ); 4ee5a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ee5c: 4879 0006 2c32 pea 62c32 <_Message_queue_Information> <== NOT EXECUTED 4ee62: 4eb9 0004 9ec8 jsr 49ec8 <_Objects_Free> <== NOT EXECUTED 0, /* Not used */ 0 ); } #endif _Thread_Enable_dispatch(); 4ee68: 4eb9 0004 a87a jsr 4a87a <_Thread_Enable_dispatch> <== NOT EXECUTED 4ee6e: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 4ee74: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4ee76: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4ee7a: 4e5e unlk %fp <== NOT EXECUTED 4ee7c: 4e75 rts <== NOT EXECUTED ... 0004d1a4 : rtems_status_code rtems_message_queue_flush( Objects_Id id, uint32_t *count ) { 4d1a4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d1a8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d1aa: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; if ( !count ) 4d1ae: 4a8a tstl %a2 <== NOT EXECUTED 4d1b0: 6604 bnes 4d1b6 <== NOT EXECUTED 4d1b2: 7009 moveq #9,%d0 <== NOT EXECUTED 4d1b4: 603c bras 4d1f2 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (Message_queue_Control *) 4d1b6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d1ba: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d1be: 4879 0006 ca76 pea 6ca76 <_Message_queue_Information> <== NOT EXECUTED 4d1c4: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4d1ca: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d1d0: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d1d2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d1d6: 6704 beqs 4d1dc <== NOT EXECUTED 4d1d8: 7004 moveq #4,%d0 <== NOT EXECUTED 4d1da: 6016 bras 4d1f2 <== NOT EXECUTED case OBJECTS_LOCAL: *count = _CORE_message_queue_Flush( &the_message_queue->message_queue ); 4d1dc: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4d1e0: 4eb9 0005 0170 jsr 50170 <_CORE_message_queue_Flush> <== NOT EXECUTED 4d1e6: 2480 movel %d0,%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4d1e8: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4d1ee: 588f addql #4,%sp <== NOT EXECUTED 4d1f0: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d1f2: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4d1f6: 4e5e unlk %fp <== NOT EXECUTED 4d1f8: 4e75 rts <== NOT EXECUTED ... 0004d1fc : rtems_status_code rtems_message_queue_get_number_pending( Objects_Id id, uint32_t *count ) { 4d1fc: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d200: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d202: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; if ( !count ) 4d206: 4a8a tstl %a2 <== NOT EXECUTED 4d208: 6604 bnes 4d20e <== NOT EXECUTED 4d20a: 7009 moveq #9,%d0 <== NOT EXECUTED 4d20c: 6032 bras 4d240 <== NOT EXECUTED 4d20e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d212: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d216: 4879 0006 ca76 pea 6ca76 <_Message_queue_Information> <== NOT EXECUTED 4d21c: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4d222: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d228: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d22a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d22e: 6704 beqs 4d234 <== NOT EXECUTED 4d230: 7004 moveq #4,%d0 <== NOT EXECUTED 4d232: 600c bras 4d240 <== NOT EXECUTED case OBJECTS_LOCAL: *count = the_message_queue->message_queue.number_of_pending_messages; 4d234: 24a8 005c movel %a0@(92),%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4d238: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4d23e: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d240: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4d244: 4e5e unlk %fp <== NOT EXECUTED 4d246: 4e75 rts 0004ee80 : rtems_status_code rtems_message_queue_ident( rtems_name name, uint32_t node, Objects_Id *id ) { 4ee80: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 4ee84: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4ee88: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4ee8c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ee90: 4879 0006 2c32 pea 62c32 <_Message_queue_Information> <== NOT EXECUTED 4ee96: 4eb9 0004 a18c jsr 4a18c <_Objects_Name_to_id_u32> <== NOT EXECUTED 4ee9c: 41f9 0005 de34 lea 5de34 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED node, id ); return _Status_Object_name_errors_to_status[ status ]; } 4eea2: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4eea6: 4e5e unlk %fp <== NOT EXECUTED 4eea8: 4e75 rts <== NOT EXECUTED ... 0004eeac : void *buffer, size_t *size, rtems_option option_set, rtems_interval timeout ) { 4eeac: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4eeb0: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 4eeb4: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4eeb8: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4eebc: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; bool wait; if ( !buffer ) 4eec0: 4a84 tstl %d4 <== NOT EXECUTED 4eec2: 6766 beqs 4ef2a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !size ) 4eec4: 4a83 tstl %d3 <== NOT EXECUTED 4eec6: 6762 beqs 4ef2a <== NOT EXECUTED RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (Message_queue_Control *) 4eec8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4eecc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4eed0: 4879 0006 2c32 pea 62c32 <_Message_queue_Information> <== NOT EXECUTED 4eed6: 4eb9 0004 a028 jsr 4a028 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4eedc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4eee2: 2040 moveal %d0,%a0 <== NOT EXECUTED 4eee4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4eee8: 6704 beqs 4eeee <== NOT EXECUTED 4eeea: 7004 moveq #4,%d0 <== NOT EXECUTED 4eeec: 603e bras 4ef2c <== NOT EXECUTED if ( _Options_Is_no_wait( option_set ) ) wait = false; else wait = true; _CORE_message_queue_Seize( 4eeee: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 4eef2: 7001 moveq #1,%d0 <== NOT EXECUTED 4eef4: b182 eorl %d0,%d2 <== NOT EXECUTED 4eef6: c082 andl %d2,%d0 <== NOT EXECUTED 4eef8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4eefa: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4eefc: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4eefe: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4ef02: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4ef06: 4eb9 0004 f4b4 jsr 4f4b4 <_CORE_message_queue_Seize> <== NOT EXECUTED buffer, size, wait, timeout ); _Thread_Enable_dispatch(); 4ef0c: 4eb9 0004 a87a jsr 4a87a <_Thread_Enable_dispatch> <== NOT EXECUTED return _Message_queue_Translate_core_message_queue_return_code( 4ef12: 2079 0006 2a4a moveal 62a4a <_Thread_Executing>,%a0 <== NOT EXECUTED 4ef18: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 4ef1c: 4eb9 0004 efb8 jsr 4efb8 <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 4ef22: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 4ef28: 6002 bras 4ef2c <== NOT EXECUTED 4ef2a: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4ef2c: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 4ef32: 4e5e unlk %fp <== NOT EXECUTED 4ef34: 4e75 rts <== NOT EXECUTED ... 0004ef38 : rtems_status_code rtems_message_queue_send( Objects_Id id, const void *buffer, size_t size ) { 4ef38: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4ef3c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4ef3e: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4ef42: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ef44: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; CORE_message_queue_Status status; if ( !buffer ) 4ef48: 4a83 tstl %d3 <== NOT EXECUTED 4ef4a: 6604 bnes 4ef50 <== NOT EXECUTED 4ef4c: 7009 moveq #9,%d0 <== NOT EXECUTED 4ef4e: 605a bras 4efaa <== NOT EXECUTED 4ef50: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4ef54: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ef56: 4879 0006 2c32 pea 62c32 <_Message_queue_Information> <== NOT EXECUTED 4ef5c: 4eb9 0004 a028 jsr 4a028 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4ef62: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ef68: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ef6a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4ef6e: 6704 beqs 4ef74 <== NOT EXECUTED 4ef70: 7004 moveq #4,%d0 <== NOT EXECUTED 4ef72: 6036 bras 4efaa <== NOT EXECUTED CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, bool wait, Watchdog_Interval timeout ) { return _CORE_message_queue_Submit( 4ef74: 42a7 clrl %sp@- <== NOT EXECUTED 4ef76: 42a7 clrl %sp@- <== NOT EXECUTED 4ef78: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 4ef7e: 42a7 clrl %sp@- <== NOT EXECUTED 4ef80: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ef82: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4ef86: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4ef88: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4ef8c: 4eb9 0004 f5f4 jsr 4f5f4 <_CORE_message_queue_Submit> <== NOT EXECUTED MESSAGE_QUEUE_MP_HANDLER, FALSE, /* sender does not block */ 0 /* no timeout */ ); _Thread_Enable_dispatch(); 4ef92: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 4ef98: 2400 movel %d0,%d2 <== NOT EXECUTED 4ef9a: 4eb9 0004 a87a jsr 4a87a <_Thread_Enable_dispatch> <== NOT EXECUTED /* * Since this API does not allow for blocking sends, we can directly * return the returned status. */ return _Message_queue_Translate_core_message_queue_return_code(status); 4efa0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4efa2: 4eb9 0004 efb8 jsr 4efb8 <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 4efa8: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4efaa: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4efae: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 4efb2: 4e5e unlk %fp <== NOT EXECUTED 4efb4: 4e75 rts <== NOT EXECUTED ... 0004d398 : rtems_status_code rtems_message_queue_urgent( Objects_Id id, const void *buffer, size_t size ) { 4d398: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d39c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d39e: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4d3a2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d3a4: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; CORE_message_queue_Status status; if ( !buffer ) 4d3a8: 4a83 tstl %d3 <== NOT EXECUTED 4d3aa: 6604 bnes 4d3b0 <== NOT EXECUTED 4d3ac: 7009 moveq #9,%d0 <== NOT EXECUTED 4d3ae: 605a bras 4d40a <== NOT EXECUTED 4d3b0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d3b4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d3b6: 4879 0006 ca76 pea 6ca76 <_Message_queue_Information> <== NOT EXECUTED 4d3bc: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4d3c2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d3c8: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d3ca: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d3ce: 6704 beqs 4d3d4 <== NOT EXECUTED 4d3d0: 7004 moveq #4,%d0 <== NOT EXECUTED 4d3d2: 6036 bras 4d40a <== NOT EXECUTED CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, bool wait, Watchdog_Interval timeout ) { return _CORE_message_queue_Submit( 4d3d4: 42a7 clrl %sp@- <== NOT EXECUTED 4d3d6: 42a7 clrl %sp@- <== NOT EXECUTED 4d3d8: 2f3c 8000 0000 movel #-2147483648,%sp@- <== NOT EXECUTED 4d3de: 42a7 clrl %sp@- <== NOT EXECUTED 4d3e0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d3e2: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4d3e6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d3e8: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4d3ec: 4eb9 0005 03e8 jsr 503e8 <_CORE_message_queue_Submit> <== NOT EXECUTED id, MESSAGE_QUEUE_MP_HANDLER, FALSE, /* sender does not block */ 0 /* no timeout */ ); _Thread_Enable_dispatch(); 4d3f2: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 4d3f8: 2400 movel %d0,%d2 <== NOT EXECUTED 4d3fa: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED /* * Since this API does not allow for blocking sends, we can directly * return the returned status. */ return _Message_queue_Translate_core_message_queue_return_code(status); 4d400: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d402: 4eb9 0004 d380 jsr 4d380 <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 4d408: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d40a: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4d40e: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 4d412: 4e5e unlk %fp <== NOT EXECUTED 4d414: 4e75 rts <== NOT EXECUTED ... 000460f4 : #include int rtems_object_api_maximum_class( uint32_t api ) { 460f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_API_maximum_class(api); } 460f8: 4e5e unlk %fp <== NOT EXECUTED int rtems_object_api_maximum_class( uint32_t api ) { return _Objects_API_maximum_class(api); 460fa: 4ef9 0004 777c jmp 4777c <_Objects_API_maximum_class> <== NOT EXECUTED 00046100 : #include uint32_t rtems_object_api_minimum_class( uint32_t api ) { 46100: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid( uint32_t the_api ) { if ( !the_api || the_api > OBJECTS_APIS_LAST ) 46104: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 46108: 7203 moveq #3,%d1 <== NOT EXECUTED 4610a: 5380 subql #1,%d0 <== NOT EXECUTED 4610c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4610e: 55c0 scs %d0 <== NOT EXECUTED 46110: 49c0 extbl %d0 <== NOT EXECUTED if ( _Objects_Is_api_valid( api ) ) return 1; return -1; } 46112: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 46116: 4e5e unlk %fp <== NOT EXECUTED 46118: 8081 orl %d1,%d0 <== NOT EXECUTED 4611a: 4e75 rts 0004611c : const char *rtems_object_get_api_class_name( uint32_t the_api, uint32_t the_class ) { 4611c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46120: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 46124: 2f02 movel %d2,%sp@- <== NOT EXECUTED const rtems_assoc_t *api_assoc; const rtems_assoc_t *class_assoc; if ( the_api == OBJECTS_INTERNAL_API ) 46126: 203c 0005 8a54 movel #363092,%d0 <== NOT EXECUTED 4612c: 7401 moveq #1,%d2 <== NOT EXECUTED 4612e: b481 cmpl %d1,%d2 <== NOT EXECUTED 46130: 6712 beqs 46144 <== NOT EXECUTED api_assoc = rtems_object_api_internal_assoc; else if ( the_api == OBJECTS_CLASSIC_API ) 46132: 7402 moveq #2,%d2 <== NOT EXECUTED 46134: 203c 0005 74c3 movel #357571,%d0 <== NOT EXECUTED 4613a: b481 cmpl %d1,%d2 <== NOT EXECUTED 4613c: 6622 bnes 46160 <== NOT EXECUTED 4613e: 203c 0005 8a6c movel #363116,%d0 <== NOT EXECUTED else if ( the_api == OBJECTS_ITRON_API ) api_assoc = rtems_object_api_itron_assoc; #endif else return "BAD API"; class_assoc = rtems_assoc_ptr_by_local( api_assoc, the_class ); 46144: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 46148: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4614a: 4eb9 0004 a43c jsr 4a43c <== NOT EXECUTED 46150: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( class_assoc ) 46152: 508f addql #8,%sp <== NOT EXECUTED 46154: 203c 0005 74cb movel #357579,%d0 <== NOT EXECUTED 4615a: 4a88 tstl %a0 <== NOT EXECUTED 4615c: 6702 beqs 46160 <== NOT EXECUTED return class_assoc->name; 4615e: 2010 movel %a0@,%d0 <== NOT EXECUTED return "BAD CLASS"; } 46160: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 46164: 4e5e unlk %fp <== NOT EXECUTED 46166: 4e75 rts 00046168 : }; const char *rtems_object_get_api_name( uint32_t api ) { 46168: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED const rtems_assoc_t *api_assoc; api_assoc = rtems_assoc_ptr_by_local( rtems_objects_api_assoc, api ); 4616c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46170: 4879 0005 8ae4 pea 58ae4 <== NOT EXECUTED 46176: 4eb9 0004 a43c jsr 4a43c <== NOT EXECUTED 4617c: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( api_assoc ) 4617e: 508f addql #8,%sp <== NOT EXECUTED 46180: 203c 0005 74cb movel #357579,%d0 <== NOT EXECUTED 46186: 4a88 tstl %a0 <== NOT EXECUTED 46188: 6702 beqs 4618c <== NOT EXECUTED return api_assoc->name; 4618a: 2010 movel %a0@,%d0 <== NOT EXECUTED return "BAD CLASS"; } 4618c: 4e5e unlk %fp <== NOT EXECUTED 4618e: 4e75 rts 000461c8 : rtems_status_code rtems_object_get_class_information( uint32_t the_api, uint32_t the_class, rtems_object_api_class_information *info ) { 461c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 461cc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 461ce: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 461d2: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t i; /* * Validate parameters and look up information structure. */ if ( !info ) 461d4: 4a8a tstl %a2 <== NOT EXECUTED 461d6: 6604 bnes 461dc <== NOT EXECUTED 461d8: 7009 moveq #9,%d0 <== NOT EXECUTED 461da: 6052 bras 4622e <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; obj_info = _Objects_Get_information( the_api, the_class ); 461dc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 461e0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 461e4: 4eb9 0004 7ae4 jsr 47ae4 <_Objects_Get_information> <== NOT EXECUTED if ( !obj_info ) 461ea: 508f addql #8,%sp <== NOT EXECUTED * Validate parameters and look up information structure. */ if ( !info ) return RTEMS_INVALID_ADDRESS; obj_info = _Objects_Get_information( the_api, the_class ); 461ec: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !obj_info ) 461ee: 4a80 tstl %d0 <== NOT EXECUTED 461f0: 6604 bnes 461f6 <== NOT EXECUTED 461f2: 700a moveq #10,%d0 <== NOT EXECUTED 461f4: 6038 bras 4622e <== NOT EXECUTED return RTEMS_INVALID_NUMBER; /* * Return information about this object class to the user. */ info->minimum_id = obj_info->minimum_id; 461f6: 24a9 0006 movel %a1@(6),%a2@ <== NOT EXECUTED info->maximum_id = obj_info->maximum_id; info->auto_extend = obj_info->auto_extend; info->maximum = obj_info->maximum; 461fa: 4282 clrl %d2 <== NOT EXECUTED 461fc: 4281 clrl %d1 <== NOT EXECUTED 461fe: 3429 000e movew %a1@(14),%d2 <== NOT EXECUTED 46202: 7001 moveq #1,%d0 <== NOT EXECUTED /* * Return information about this object class to the user. */ info->minimum_id = obj_info->minimum_id; info->maximum_id = obj_info->maximum_id; 46204: 2569 000a 0004 movel %a1@(10),%a2@(4) <== NOT EXECUTED info->auto_extend = obj_info->auto_extend; info->maximum = obj_info->maximum; 4620a: 2542 0008 movel %d2,%a2@(8) <== NOT EXECUTED /* * Return information about this object class to the user. */ info->minimum_id = obj_info->minimum_id; info->maximum_id = obj_info->maximum_id; info->auto_extend = obj_info->auto_extend; 4620e: 1569 0010 000c moveb %a1@(16),%a2@(12) <== NOT EXECUTED 46214: 600e bras 46224 <== NOT EXECUTED info->maximum = obj_info->maximum; for ( unallocated=0, i=1 ; i <= info->maximum ; i++ ) if ( !obj_info->local_table[i] ) 46216: 2069 001a moveal %a1@(26),%a0 <== NOT EXECUTED 4621a: 4ab0 0c00 tstl %a0@(00000000,%d0:l:4) <== NOT EXECUTED 4621e: 6602 bnes 46222 <== NOT EXECUTED unallocated++; 46220: 5281 addql #1,%d1 <== NOT EXECUTED info->minimum_id = obj_info->minimum_id; info->maximum_id = obj_info->maximum_id; info->auto_extend = obj_info->auto_extend; info->maximum = obj_info->maximum; for ( unallocated=0, i=1 ; i <= info->maximum ; i++ ) 46222: 5280 addql #1,%d0 <== NOT EXECUTED 46224: b480 cmpl %d0,%d2 <== NOT EXECUTED 46226: 64ee bccs 46216 <== NOT EXECUTED if ( !obj_info->local_table[i] ) unallocated++; info->unallocated = unallocated; 46228: 4280 clrl %d0 <== NOT EXECUTED 4622a: 2541 000e movel %d1,%a2@(14) <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4622e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46232: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46236: 4e5e unlk %fp <== NOT EXECUTED 46238: 4e75 rts <== NOT EXECUTED ... 00045828 : rtems_status_code rtems_object_get_classic_name( rtems_id id, rtems_name *name ) { 45828: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4582c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4582e: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; Objects_Name name_u; if ( !name ) 45832: 4a8a tstl %a2 <== NOT EXECUTED 45834: 6604 bnes 4583a <== NOT EXECUTED 45836: 7009 moveq #9,%d0 <== NOT EXECUTED 45838: 601e bras 45858 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; status = _Objects_Id_to_name( id, &name_u ); 4583a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4583e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45842: 4eb9 0004 71a0 jsr 471a0 <_Objects_Id_to_name> <== NOT EXECUTED *name = name_u.name_u32; return _Status_Object_name_errors_to_status[ status ]; 45848: 41f9 0005 6244 lea 56244 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED 4584e: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 45852: 508f addql #8,%sp <== NOT EXECUTED if ( !name ) return RTEMS_INVALID_ADDRESS; status = _Objects_Id_to_name( id, &name_u ); *name = name_u.name_u32; 45854: 24ae fffc movel %fp@(-4),%a2@ <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; } 45858: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4585c: 4e5e unlk %fp <== NOT EXECUTED 4585e: 4e75 rts 0004f060 : char *rtems_object_get_name( Objects_Id id, size_t length, char *name ) { 4f060: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Get_name_as_string( id, length, name ); } 4f064: 4e5e unlk %fp <== NOT EXECUTED Objects_Id id, size_t length, char *name ) { return _Objects_Get_name_as_string( id, length, name ); 4f066: 4ef9 0004 faa0 jmp 4faa0 <_Objects_Get_name_as_string> <== NOT EXECUTED 00046248 : #include #include #undef rtems_object_id_api_maximum uint32_t rtems_object_id_api_maximum(void) { 46248: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return OBJECTS_ITRON_API; } 4624c: 4e5e unlk %fp <== NOT EXECUTED 4624e: 7004 moveq #4,%d0 <== NOT EXECUTED 46250: 4e75 rts <== NOT EXECUTED ... 00046254 : #include #include #undef rtems_object_id_api_minimum uint32_t rtems_object_id_api_minimum(void) { 46254: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return OBJECTS_INTERNAL_API; } 46258: 4e5e unlk %fp <== NOT EXECUTED 4625a: 7001 moveq #1,%d0 <== NOT EXECUTED 4625c: 4e75 rts <== NOT EXECUTED ... 00046260 : #undef rtems_object_id_get_api uint32_t rtems_object_id_get_api( rtems_id id ) { 46260: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46264: 4280 clrl %d0 <== NOT EXECUTED 46266: 102e 0008 moveb %fp@(8),%d0 <== NOT EXECUTED return _Objects_Get_API( id ); } 4626a: 7207 moveq #7,%d1 <== NOT EXECUTED 4626c: 4e5e unlk %fp <== NOT EXECUTED 4626e: c081 andl %d1,%d0 <== NOT EXECUTED 46270: 4e75 rts <== NOT EXECUTED ... 00046274 : #undef rtems_object_id_get_class uint32_t rtems_object_id_get_class( rtems_id id ) { 46274: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46278: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED return _Objects_Get_class( id ); } 4627c: 721b moveq #27,%d1 <== NOT EXECUTED 4627e: 4e5e unlk %fp <== NOT EXECUTED 46280: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 46282: 4e75 rts 00046284 : #undef rtems_object_id_get_index uint32_t rtems_object_id_get_index( rtems_id id ) { 46284: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Get_index( id ); } 46288: 4280 clrl %d0 <== NOT EXECUTED 4628a: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 4628e: 4e5e unlk %fp <== NOT EXECUTED 46290: 4e75 rts <== NOT EXECUTED ... 00046294 : #undef rtems_object_id_get_node uint32_t rtems_object_id_get_node( rtems_id id ) { 46294: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Get_node( id ); } 46298: 4280 clrl %d0 <== NOT EXECUTED 4629a: 102e 0009 moveb %fp@(9),%d0 <== NOT EXECUTED 4629e: 4e5e unlk %fp <== NOT EXECUTED 462a0: 4e75 rts <== NOT EXECUTED ... 000462a4 : */ rtems_status_code rtems_object_set_name( rtems_id id, const char *name ) { 462a4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 462a8: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 462ac: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 462b0: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED Objects_Information *information; Objects_Locations location; Objects_Control *the_object; Objects_Id tmpId; if ( !name ) 462b4: 6604 bnes 462ba <== NOT EXECUTED 462b6: 7009 moveq #9,%d0 <== NOT EXECUTED 462b8: 6058 bras 46312 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 462ba: 4a80 tstl %d0 <== NOT EXECUTED 462bc: 6704 beqs 462c2 <== NOT EXECUTED 462be: 2400 movel %d0,%d2 <== NOT EXECUTED 462c0: 600a bras 462cc <== NOT EXECUTED 462c2: 2079 0005 a27a moveal 5a27a <_Thread_Executing>,%a0 <== NOT EXECUTED 462c8: 2428 0008 movel %a0@(8),%d2 <== NOT EXECUTED information = _Objects_Get_information_id( tmpId ); 462cc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 462ce: 4eb9 0004 7ab8 jsr 47ab8 <_Objects_Get_information_id> <== NOT EXECUTED if ( !information ) 462d4: 588f addql #4,%sp <== NOT EXECUTED if ( !name ) return RTEMS_INVALID_ADDRESS; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; information = _Objects_Get_information_id( tmpId ); 462d6: 2600 movel %d0,%d3 <== NOT EXECUTED if ( !information ) 462d8: 6736 beqs 46310 <== NOT EXECUTED return RTEMS_INVALID_ID; the_object = _Objects_Get( information, tmpId, &location ); 462da: 486e fffc pea %fp@(-4) <== NOT EXECUTED 462de: 2f02 movel %d2,%sp@- <== NOT EXECUTED 462e0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 462e2: 4eb9 0004 7c80 jsr 47c80 <_Objects_Get> <== NOT EXECUTED switch ( location ) { 462e8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 462ee: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 462f2: 661c bnes 46310 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Set_name( information, the_object, name ); 462f4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 462f6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 462f8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 462fa: 4eb9 0004 7e88 jsr 47e88 <_Objects_Set_name> <== NOT EXECUTED _Thread_Enable_dispatch(); 46300: 4eb9 0004 8576 jsr 48576 <_Thread_Enable_dispatch> <== NOT EXECUTED 46306: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4630c: 4280 clrl %d0 <== NOT EXECUTED 4630e: 6002 bras 46312 <== NOT EXECUTED return RTEMS_SUCCESSFUL; 46310: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46312: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 46318: 4e5e unlk %fp <== NOT EXECUTED 4631a: 4e75 rts 0004201a : void rtems_panic( const char *printf_format, ... ) { 4201a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED va_list arglist; va_start(arglist, printf_format); (void) rtems_verror(RTEMS_ERROR_PANIC, printf_format, arglist); 4201e: 486e 000c pea %fp@(12) <== NOT EXECUTED 42022: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42026: 2f3c 2000 0000 movel #536870912,%sp@- <== NOT EXECUTED 4202c: 4eba fe56 jsr %pc@(41e84 ) <== NOT EXECUTED 42030: dffc 0000 000c addal #12,%sp <== NOT EXECUTED va_end(arglist); } 42036: 4e5e unlk %fp <== NOT EXECUTED 42038: 4e75 rts 0004d418 : uint32_t length, uint32_t buffer_size, rtems_attribute attribute_set, Objects_Id *id ) { 4d418: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4d41c: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 4d420: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 4d424: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4d428: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 4d42c: 262e 0014 movel %fp@(20),%d3 <== NOT EXECUTED 4d430: 286e 001c moveal %fp@(28),%a4 <== NOT EXECUTED register Partition_Control *the_partition; if ( !rtems_is_name_valid( name ) ) 4d434: 4a85 tstl %d5 <== NOT EXECUTED 4d436: 6606 bnes 4d43e <== NOT EXECUTED 4d438: 7003 moveq #3,%d0 <== NOT EXECUTED 4d43a: 6000 00b2 braw 4d4ee <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !starting_address ) 4d43e: 4a84 tstl %d4 <== NOT EXECUTED 4d440: 6700 00a6 beqw 4d4e8 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !id ) 4d444: 4a8c tstl %a4 <== NOT EXECUTED 4d446: 6700 00a0 beqw 4d4e8 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( length == 0 || buffer_size == 0 || length < buffer_size || 4d44a: 4a82 tstl %d2 <== NOT EXECUTED 4d44c: 6700 009e beqw 4d4ec <== NOT EXECUTED 4d450: 4a83 tstl %d3 <== NOT EXECUTED 4d452: 6700 0098 beqw 4d4ec <== NOT EXECUTED 4d456: b682 cmpl %d2,%d3 <== NOT EXECUTED 4d458: 6200 0092 bhiw 4d4ec <== NOT EXECUTED 4d45c: 7003 moveq #3,%d0 <== NOT EXECUTED 4d45e: c083 andl %d3,%d0 <== NOT EXECUTED 4d460: 6600 008a bnew 4d4ec <== NOT EXECUTED !_Partition_Is_buffer_size_aligned( buffer_size ) ) return RTEMS_INVALID_SIZE; if ( !_Addresses_Is_aligned( starting_address ) ) 4d464: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 4d468: c084 andl %d4,%d0 <== NOT EXECUTED 4d46a: 667c bnes 4d4e8 <== NOT EXECUTED 4d46c: 2039 0006 c830 movel 6c830 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4d472: 5280 addql #1,%d0 <== NOT EXECUTED 4d474: 23c0 0006 c830 movel %d0,6c830 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * This function allocates a partition control block from * the inactive chain of free partition control blocks. */ RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Allocate ( void ) { return (Partition_Control *) _Objects_Allocate( &_Partition_Information ); 4d47a: 4879 0006 c65c pea 6c65c <_Partition_Information> <== NOT EXECUTED 4d480: 4eb9 0005 1278 jsr 51278 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_partition = _Partition_Allocate(); if ( !the_partition ) { 4d486: 588f addql #4,%sp <== NOT EXECUTED 4d488: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d48a: 47f9 0005 1ef2 lea 51ef2 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 4d490: 4a80 tstl %d0 <== NOT EXECUTED 4d492: 6606 bnes 4d49a <== NOT EXECUTED _Thread_Enable_dispatch(); 4d494: 4e93 jsr %a3@ <== NOT EXECUTED 4d496: 7005 moveq #5,%d0 <== NOT EXECUTED 4d498: 6054 bras 4d4ee <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } #endif the_partition->starting_address = starting_address; 4d49a: 2544 0010 movel %d4,%a2@(16) <== NOT EXECUTED the_partition->length = length; the_partition->buffer_size = buffer_size; the_partition->attribute_set = attribute_set; 4d49e: 256e 0018 001c movel %fp@(24),%a2@(28) <== NOT EXECUTED return RTEMS_TOO_MANY; } #endif the_partition->starting_address = starting_address; the_partition->length = length; 4d4a4: 2542 0014 movel %d2,%a2@(20) <== NOT EXECUTED the_partition->buffer_size = buffer_size; the_partition->attribute_set = attribute_set; the_partition->number_of_used_blocks = 0; _Chain_Initialize( &the_partition->Memory, starting_address, 4d4a8: 4c43 2002 remul %d3,%d2,%d2 <== NOT EXECUTED } #endif the_partition->starting_address = starting_address; the_partition->length = length; the_partition->buffer_size = buffer_size; 4d4ac: 2543 0018 movel %d3,%a2@(24) <== NOT EXECUTED the_partition->attribute_set = attribute_set; the_partition->number_of_used_blocks = 0; 4d4b0: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED _Chain_Initialize( &the_partition->Memory, starting_address, 4d4b4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d4b6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d4b8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d4ba: 486a 0024 pea %a2@(36) <== NOT EXECUTED 4d4be: 4eb9 0005 007c jsr 5007c <_Chain_Initialize> <== NOT EXECUTED 4d4c4: 2079 0006 c676 moveal 6c676 <_Partition_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4d4ca: 2545 000c movel %d5,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4d4ce: 4280 clrl %d0 <== NOT EXECUTED 4d4d0: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 4d4d4: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED &_Partition_Information, &the_partition->Object, (Objects_Name) name ); *id = the_partition->Object.id; 4d4d8: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED name, 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); 4d4dc: 4e93 jsr %a3@ <== NOT EXECUTED 4d4de: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4d4e4: 4280 clrl %d0 <== NOT EXECUTED 4d4e6: 6006 bras 4d4ee <== NOT EXECUTED return RTEMS_SUCCESSFUL; 4d4e8: 7009 moveq #9,%d0 <== NOT EXECUTED 4d4ea: 6002 bras 4d4ee <== NOT EXECUTED 4d4ec: 7008 moveq #8,%d0 <== NOT EXECUTED } 4d4ee: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4d4f4: 4e5e unlk %fp <== NOT EXECUTED 4d4f6: 4e75 rts 0004d4f8 : */ rtems_status_code rtems_partition_delete( Objects_Id id ) { 4d4f8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d4fc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4d4fe: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get ( Objects_Id id, Objects_Locations *location ) { return (Partition_Control *) 4d500: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d504: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d508: 4879 0006 c65c pea 6c65c <_Partition_Information> <== NOT EXECUTED 4d50e: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED register Partition_Control *the_partition; Objects_Locations location; the_partition = _Partition_Get( id, &location ); switch ( location ) { 4d514: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d51a: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d51c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d520: 6704 beqs 4d526 <== NOT EXECUTED 4d522: 7004 moveq #4,%d0 <== NOT EXECUTED 4d524: 6038 bras 4d55e <== NOT EXECUTED 4d526: 47f9 0005 1ef2 lea 51ef2 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED case OBJECTS_LOCAL: if ( the_partition->number_of_used_blocks == 0 ) { 4d52c: 4aaa 0020 tstl %a2@(32) <== NOT EXECUTED 4d530: 6628 bnes 4d55a <== NOT EXECUTED _Objects_Close( &_Partition_Information, &the_partition->Object ); 4d532: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4d534: 4879 0006 c65c pea 6c65c <_Partition_Information> <== NOT EXECUTED 4d53a: 4eb9 0005 1300 jsr 51300 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Partition_Free ( Partition_Control *the_partition ) { _Objects_Free( &_Partition_Information, &the_partition->Object ); 4d540: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d542: 4879 0006 c65c pea 6c65c <_Partition_Information> <== NOT EXECUTED 4d548: 4eb9 0005 1578 jsr 51578 <_Objects_Free> <== NOT EXECUTED 0 /* Not used */ ); } #endif _Thread_Enable_dispatch(); 4d54e: 4e93 jsr %a3@ <== NOT EXECUTED 4d550: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4d556: 4280 clrl %d0 <== NOT EXECUTED 4d558: 6004 bras 4d55e <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 4d55a: 4e93 jsr %a3@ <== NOT EXECUTED 4d55c: 700c moveq #12,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d55e: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4d562: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 4d566: 4e5e unlk %fp <== NOT EXECUTED 4d568: 4e75 rts <== NOT EXECUTED ... 0004d56c : rtems_status_code rtems_partition_get_buffer( Objects_Id id, void **buffer ) { 4d56c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4d570: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4d574: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED register Partition_Control *the_partition; Objects_Locations location; void *the_buffer; if ( !buffer ) 4d578: 4a8b tstl %a3 <== NOT EXECUTED 4d57a: 6604 bnes 4d580 <== NOT EXECUTED 4d57c: 7009 moveq #9,%d0 <== NOT EXECUTED 4d57e: 604c bras 4d5cc <== NOT EXECUTED RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get ( Objects_Id id, Objects_Locations *location ) { return (Partition_Control *) 4d580: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d584: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d588: 4879 0006 c65c pea 6c65c <_Partition_Information> <== NOT EXECUTED 4d58e: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_partition = _Partition_Get( id, &location ); switch ( location ) { 4d594: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d59a: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d59c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d5a0: 6704 beqs 4d5a6 <== NOT EXECUTED 4d5a2: 7004 moveq #4,%d0 <== NOT EXECUTED 4d5a4: 6026 bras 4d5cc <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void *_Partition_Allocate_buffer ( Partition_Control *the_partition ) { return _Chain_Get( &the_partition->Memory ); 4d5a6: 486a 0024 pea %a2@(36) <== NOT EXECUTED 4d5aa: 4eb9 0005 0048 jsr 50048 <_Chain_Get> <== NOT EXECUTED case OBJECTS_LOCAL: the_buffer = _Partition_Allocate_buffer( the_partition ); if ( the_buffer ) { 4d5b0: 588f addql #4,%sp <== NOT EXECUTED 4d5b2: 2400 movel %d0,%d2 <== NOT EXECUTED 4d5b4: 41f9 0005 1ef2 lea 51ef2 <_Thread_Enable_dispatch>,%a0 <== NOT EXECUTED 4d5ba: 670c beqs 4d5c8 <== NOT EXECUTED the_partition->number_of_used_blocks += 1; 4d5bc: 52aa 0020 addql #1,%a2@(32) <== NOT EXECUTED _Thread_Enable_dispatch(); 4d5c0: 4e90 jsr %a0@ <== NOT EXECUTED *buffer = the_buffer; 4d5c2: 4280 clrl %d0 <== NOT EXECUTED 4d5c4: 2682 movel %d2,%a3@ <== NOT EXECUTED 4d5c6: 6004 bras 4d5cc <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 4d5c8: 4e90 jsr %a0@ <== NOT EXECUTED 4d5ca: 700d moveq #13,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d5cc: 4cee 0c04 fff0 moveml %fp@(-16),%d2/%a2-%a3 <== NOT EXECUTED 4d5d2: 4e5e unlk %fp <== NOT EXECUTED 4d5d4: 4e75 rts <== NOT EXECUTED ... 0004d5d8 : rtems_status_code rtems_partition_ident( rtems_name name, uint32_t node, Objects_Id *id ) { 4d5d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( &_Partition_Information, name, node, id ); 4d5dc: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4d5e0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4d5e4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d5e8: 4879 0006 c65c pea 6c65c <_Partition_Information> <== NOT EXECUTED 4d5ee: 4eb9 0005 1874 jsr 51874 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4d5f4: 41f9 0006 597e lea 6597e <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; } 4d5fa: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4d5fe: 4e5e unlk %fp <== NOT EXECUTED 4d600: 4e75 rts <== NOT EXECUTED ... 0004d604 : rtems_status_code rtems_partition_return_buffer( Objects_Id id, void *buffer ) { 4d604: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4d608: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get ( Objects_Id id, Objects_Locations *location ) { return (Partition_Control *) 4d60c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d610: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4d614: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d618: 4879 0006 c65c pea 6c65c <_Partition_Information> <== NOT EXECUTED 4d61e: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED register Partition_Control *the_partition; Objects_Locations location; the_partition = _Partition_Get( id, &location ); switch ( location ) { 4d624: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d62a: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d62c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d630: 6704 beqs 4d636 <== NOT EXECUTED 4d632: 7004 moveq #4,%d0 <== NOT EXECUTED 4d634: 6044 bras 4d67a <== NOT EXECUTED ) { void *starting; void *ending; starting = the_partition->starting_address; 4d636: 222a 0010 movel %a2@(16),%d1 <== NOT EXECUTED ending = _Addresses_Add_offset( starting, the_partition->length ); 4d63a: 202a 0014 movel %a2@(20),%d0 <== NOT EXECUTED void *address, void *base, void *limit ) { return (address >= base && address <= limit); 4d63e: b282 cmpl %d2,%d1 <== NOT EXECUTED 4d640: 6242 bhis 4d684 <== NOT EXECUTED 4d642: d081 addl %d1,%d0 <== NOT EXECUTED 4d644: b082 cmpl %d2,%d0 <== NOT EXECUTED 4d646: 54c0 scc %d0 <== NOT EXECUTED 4d648: 49c0 extbl %d0 <== NOT EXECUTED 4d64a: 4480 negl %d0 <== NOT EXECUTED return ( 4d64c: 4a00 tstb %d0 <== NOT EXECUTED 4d64e: 6734 beqs 4d684 <== NOT EXECUTED 4d650: 2002 movel %d2,%d0 <== NOT EXECUTED 4d652: 9081 subl %d1,%d0 <== NOT EXECUTED 4d654: 2200 movel %d0,%d1 <== NOT EXECUTED 4d656: 4c6a 1003 0018 remul %a2@(24),%d3,%d1 <== NOT EXECUTED 4d65c: 4a83 tstl %d3 <== NOT EXECUTED 4d65e: 6624 bnes 4d684 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Partition_Free_buffer ( Partition_Control *the_partition, Chain_Node *the_buffer ) { _Chain_Append( &the_partition->Memory, the_buffer ); 4d660: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d662: 486a 0024 pea %a2@(36) <== NOT EXECUTED 4d666: 4eb9 0005 0010 jsr 50010 <_Chain_Append> <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) { _Partition_Free_buffer( the_partition, buffer ); the_partition->number_of_used_blocks -= 1; 4d66c: 53aa 0020 subql #1,%a2@(32) <== NOT EXECUTED _Thread_Enable_dispatch(); 4d670: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4d676: 508f addql #8,%sp <== NOT EXECUTED 4d678: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d67a: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 4d680: 4e5e unlk %fp <== NOT EXECUTED 4d682: 4e75 rts <== NOT EXECUTED _Partition_Free_buffer( the_partition, buffer ); the_partition->number_of_used_blocks -= 1; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 4d684: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4d68a: 7009 moveq #9,%d0 <== NOT EXECUTED 4d68c: 60ec bras 4d67a <== NOT EXECUTED ... 0004ca64 : void *internal_start, void *external_start, uint32_t length, Objects_Id *id ) { 4ca64: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4ca68: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 4ca6c: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4ca70: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4ca74: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED 4ca78: 266e 0018 moveal %fp@(24),%a3 <== NOT EXECUTED register Dual_ported_memory_Control *the_port; if ( !rtems_is_name_valid( name) ) 4ca7c: 4a82 tstl %d2 <== NOT EXECUTED 4ca7e: 6604 bnes 4ca84 <== NOT EXECUTED 4ca80: 7003 moveq #3,%d0 <== NOT EXECUTED 4ca82: 606e bras 4caf2 <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 4ca84: 4a8b tstl %a3 <== NOT EXECUTED 4ca86: 6768 beqs 4caf0 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_Addresses_Is_aligned( internal_start ) || 4ca88: 2004 movel %d4,%d0 <== NOT EXECUTED 4ca8a: 8083 orl %d3,%d0 <== NOT EXECUTED 4ca8c: 7203 moveq #3,%d1 <== NOT EXECUTED 4ca8e: c081 andl %d1,%d0 <== NOT EXECUTED 4ca90: 665e bnes 4caf0 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4ca92: 2039 0006 c830 movel 6c830 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4ca98: 5280 addql #1,%d0 <== NOT EXECUTED 4ca9a: 23c0 0006 c830 movel %d0,6c830 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * of free port control blocks. */ RTEMS_INLINE_ROUTINE Dual_ported_memory_Control *_Dual_ported_memory_Allocate ( void ) { return (Dual_ported_memory_Control *) 4caa0: 4879 0006 c620 pea 6c620 <_Dual_ported_memory_Information> <== NOT EXECUTED 4caa6: 4eb9 0005 1278 jsr 51278 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_port = _Dual_ported_memory_Allocate(); if ( !the_port ) { 4caac: 588f addql #4,%sp <== NOT EXECUTED 4caae: 2240 moveal %d0,%a1 <== NOT EXECUTED 4cab0: 45f9 0005 1ef2 lea 51ef2 <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 4cab6: 4a80 tstl %d0 <== NOT EXECUTED 4cab8: 6606 bnes 4cac0 <== NOT EXECUTED _Thread_Enable_dispatch(); 4caba: 4e92 jsr %a2@ <== NOT EXECUTED 4cabc: 7005 moveq #5,%d0 <== NOT EXECUTED 4cabe: 6032 bras 4caf2 <== NOT EXECUTED return RTEMS_TOO_MANY; } the_port->internal_base = internal_start; the_port->external_base = external_start; the_port->length = length - 1; 4cac0: 202e 0014 movel %fp@(20),%d0 <== NOT EXECUTED 4cac4: 5380 subql #1,%d0 <== NOT EXECUTED 4cac6: 2340 0018 movel %d0,%a1@(24) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4caca: 2079 0006 c63a moveal 6c63a <_Dual_ported_memory_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4cad0: 2342 000c movel %d2,%a1@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4cad4: 4280 clrl %d0 <== NOT EXECUTED 4cad6: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED 4cada: 2189 0c00 movel %a1,%a0@(00000000,%d0:l:4) <== NOT EXECUTED &_Dual_ported_memory_Information, &the_port->Object, (Objects_Name) name ); *id = the_port->Object.id; 4cade: 26a9 0008 movel %a1@(8),%a3@ <== NOT EXECUTED if ( !the_port ) { _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } the_port->internal_base = internal_start; 4cae2: 2343 0010 movel %d3,%a1@(16) <== NOT EXECUTED the_port->external_base = external_start; 4cae6: 2344 0014 movel %d4,%a1@(20) <== NOT EXECUTED &the_port->Object, (Objects_Name) name ); *id = the_port->Object.id; _Thread_Enable_dispatch(); 4caea: 4e92 jsr %a2@ <== NOT EXECUTED 4caec: 4280 clrl %d0 <== NOT EXECUTED 4caee: 6002 bras 4caf2 <== NOT EXECUTED return RTEMS_SUCCESSFUL; 4caf0: 7009 moveq #9,%d0 <== NOT EXECUTED } 4caf2: 4cee 0c1c ffec moveml %fp@(-20),%d2-%d4/%a2-%a3 <== NOT EXECUTED 4caf8: 4e5e unlk %fp <== NOT EXECUTED 4cafa: 4e75 rts 0004cafc : */ rtems_status_code rtems_port_delete( Objects_Id id ) { 4cafc: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4cb00: 2f02 movel %d2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( Objects_Id id, Objects_Locations *location ) { return (Dual_ported_memory_Control *) 4cb02: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4cb06: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4cb0a: 4879 0006 c620 pea 6c620 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cb10: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED register Dual_ported_memory_Control *the_port; Objects_Locations location; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 4cb16: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4cb1c: 2400 movel %d0,%d2 <== NOT EXECUTED 4cb1e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4cb22: 6704 beqs 4cb28 <== NOT EXECUTED 4cb24: 7004 moveq #4,%d0 <== NOT EXECUTED 4cb26: 602a bras 4cb52 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Dual_ported_memory_Information, &the_port->Object ); 4cb28: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4cb2a: 4879 0006 c620 pea 6c620 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cb30: 4eb9 0005 1300 jsr 51300 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Dual_ported_memory_Free ( Dual_ported_memory_Control *the_port ) { _Objects_Free( &_Dual_ported_memory_Information, &the_port->Object ); 4cb36: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cb38: 4879 0006 c620 pea 6c620 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cb3e: 4eb9 0005 1578 jsr 51578 <_Objects_Free> <== NOT EXECUTED _Dual_ported_memory_Free( the_port ); _Thread_Enable_dispatch(); 4cb44: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4cb4a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4cb50: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4cb52: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4cb56: 4e5e unlk %fp <== NOT EXECUTED 4cb58: 4e75 rts <== NOT EXECUTED ... 0004cb5c : rtems_status_code rtems_port_external_to_internal( Objects_Id id, void *external, void **internal ) { 4cb5c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4cb60: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4cb62: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 4cb66: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cb68: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED register Dual_ported_memory_Control *the_port; Objects_Locations location; uint32_t ending; if ( !internal ) 4cb6c: 4a8a tstl %a2 <== NOT EXECUTED 4cb6e: 6604 bnes 4cb74 <== NOT EXECUTED 4cb70: 7009 moveq #9,%d0 <== NOT EXECUTED 4cb72: 6044 bras 4cbb8 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( Objects_Id id, Objects_Locations *location ) { return (Dual_ported_memory_Control *) 4cb74: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4cb78: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4cb7c: 4879 0006 c620 pea 6c620 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cb82: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 4cb88: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4cb8e: 2040 moveal %d0,%a0 <== NOT EXECUTED 4cb90: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4cb94: 6704 beqs 4cb9a <== NOT EXECUTED 4cb96: 7004 moveq #4,%d0 <== NOT EXECUTED 4cb98: 601e bras 4cbb8 <== NOT EXECUTED RTEMS_INLINE_ROUTINE uint32_t _Addresses_Subtract ( void *left, void *right ) { return ((char *) left - (char *) right); 4cb9a: 2002 movel %d2,%d0 <== NOT EXECUTED 4cb9c: 90a8 0014 subl %a0@(20),%d0 <== NOT EXECUTED case OBJECTS_LOCAL: ending = _Addresses_Subtract( external, the_port->external_base ); if ( ending > the_port->length ) 4cba0: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 4cba4: 6304 blss 4cbaa <== NOT EXECUTED *internal = external; 4cba6: 2482 movel %d2,%a2@ <== NOT EXECUTED 4cba8: 6006 bras 4cbb0 <== NOT EXECUTED else *internal = _Addresses_Add_offset( the_port->internal_base, 4cbaa: d0a8 0010 addl %a0@(16),%d0 <== NOT EXECUTED 4cbae: 2480 movel %d0,%a2@ <== NOT EXECUTED ending ); _Thread_Enable_dispatch(); 4cbb0: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4cbb6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4cbb8: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4cbbc: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4cbc0: 4e5e unlk %fp <== NOT EXECUTED 4cbc2: 4e75 rts 0004cbc4 : rtems_status_code rtems_port_ident( rtems_name name, Objects_Id *id ) { 4cbc4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 4cbc8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4cbcc: 42a7 clrl %sp@- <== NOT EXECUTED 4cbce: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4cbd2: 4879 0006 c620 pea 6c620 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cbd8: 4eb9 0005 1874 jsr 51874 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4cbde: 41f9 0006 597e lea 6597e <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_ALL_NODES, id ); return _Status_Object_name_errors_to_status[ status ]; } 4cbe4: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4cbe8: 4e5e unlk %fp <== NOT EXECUTED 4cbea: 4e75 rts 0004cbec : rtems_status_code rtems_port_internal_to_external( Objects_Id id, void *internal, void **external ) { 4cbec: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4cbf0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4cbf2: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 4cbf6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cbf8: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED register Dual_ported_memory_Control *the_port; Objects_Locations location; uint32_t ending; if ( !external ) 4cbfc: 4a8a tstl %a2 <== NOT EXECUTED 4cbfe: 6604 bnes 4cc04 <== NOT EXECUTED 4cc00: 7009 moveq #9,%d0 <== NOT EXECUTED 4cc02: 6044 bras 4cc48 <== NOT EXECUTED 4cc04: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4cc08: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4cc0c: 4879 0006 c620 pea 6c620 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cc12: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 4cc18: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4cc1e: 2040 moveal %d0,%a0 <== NOT EXECUTED 4cc20: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4cc24: 6704 beqs 4cc2a <== NOT EXECUTED 4cc26: 7004 moveq #4,%d0 <== NOT EXECUTED 4cc28: 601e bras 4cc48 <== NOT EXECUTED 4cc2a: 2002 movel %d2,%d0 <== NOT EXECUTED 4cc2c: 90a8 0010 subl %a0@(16),%d0 <== NOT EXECUTED case OBJECTS_LOCAL: ending = _Addresses_Subtract( internal, the_port->internal_base ); if ( ending > the_port->length ) 4cc30: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 4cc34: 6304 blss 4cc3a <== NOT EXECUTED *external = internal; 4cc36: 2482 movel %d2,%a2@ <== NOT EXECUTED 4cc38: 6006 bras 4cc40 <== NOT EXECUTED else *external = _Addresses_Add_offset( the_port->external_base, 4cc3a: d0a8 0014 addl %a0@(20),%d0 <== NOT EXECUTED 4cc3e: 2480 movel %d0,%a2@ <== NOT EXECUTED ending ); _Thread_Enable_dispatch(); 4cc40: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4cc46: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4cc48: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4cc4c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4cc50: 4e5e unlk %fp <== NOT EXECUTED 4cc52: 4e75 rts 0004d690 : */ rtems_status_code rtems_rate_monotonic_cancel( Objects_Id id ) { 4d690: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d694: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4d696: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get ( Objects_Id id, Objects_Locations *location ) { return (Rate_monotonic_Control *) 4d698: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d69c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d6a0: 4879 0006 c698 pea 6c698 <_Rate_monotonic_Information> <== NOT EXECUTED 4d6a6: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED Rate_monotonic_Control *the_period; Objects_Locations location; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 4d6ac: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d6b2: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d6b4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d6b8: 6704 beqs 4d6be <== NOT EXECUTED 4d6ba: 7004 moveq #4,%d0 <== NOT EXECUTED 4d6bc: 602c bras 4d6ea <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Thread_Is_executing( the_period->owner ) ) { 4d6be: 2039 0006 c8ee movel 6c8ee <_Thread_Executing>,%d0 <== NOT EXECUTED 4d6c4: 47f9 0005 1ef2 lea 51ef2 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 4d6ca: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4d6ce: 6706 beqs 4d6d6 <== NOT EXECUTED _Thread_Enable_dispatch(); 4d6d0: 4e93 jsr %a3@ <== NOT EXECUTED 4d6d2: 7017 moveq #23,%d0 <== NOT EXECUTED 4d6d4: 6014 bras 4d6ea <== NOT EXECUTED return RTEMS_NOT_OWNER_OF_RESOURCE; } (void) _Watchdog_Remove( &the_period->Timer ); 4d6d6: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4d6da: 4eb9 0005 3290 jsr 53290 <_Watchdog_Remove> <== NOT EXECUTED the_period->state = RATE_MONOTONIC_INACTIVE; 4d6e0: 42aa 0038 clrl %a2@(56) <== NOT EXECUTED _Thread_Enable_dispatch(); 4d6e4: 4e93 jsr %a3@ <== NOT EXECUTED 4d6e6: 588f addql #4,%sp <== NOT EXECUTED 4d6e8: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d6ea: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4d6ee: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 4d6f2: 4e5e unlk %fp <== NOT EXECUTED 4d6f4: 4e75 rts <== NOT EXECUTED ... 000458fc : rtems_status_code rtems_rate_monotonic_create( rtems_name name, Objects_Id *id ) { 458fc: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 45900: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 45904: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 45908: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED Rate_monotonic_Control *the_period; if ( !rtems_is_name_valid( name ) ) 4590c: 6606 bnes 45914 <== NOT EXECUTED 4590e: 7003 moveq #3,%d0 <== NOT EXECUTED 45910: 6000 00a6 braw 459b8 <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 45914: 4a8c tstl %a4 <== NOT EXECUTED 45916: 6606 bnes 4591e <== NOT EXECUTED 45918: 7009 moveq #9,%d0 <== NOT EXECUTED 4591a: 6000 009c braw 459b8 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4591e: 2039 0005 97a0 movel 597a0 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45924: 5280 addql #1,%d0 <== NOT EXECUTED 45926: 23c0 0005 97a0 movel %d0,597a0 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * This function allocates a period control block from * the inactive chain of free period control blocks. */ RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void ) { return (Rate_monotonic_Control *) 4592c: 4879 0005 9698 pea 59698 <_Rate_monotonic_Information> <== NOT EXECUTED 45932: 4eb9 0004 75a0 jsr 475a0 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_period = _Rate_monotonic_Allocate(); if ( !the_period ) { 45938: 588f addql #4,%sp <== NOT EXECUTED 4593a: 2440 moveal %d0,%a2 <== NOT EXECUTED 4593c: 47f9 0004 82ce lea 482ce <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 45942: 4a80 tstl %d0 <== NOT EXECUTED 45944: 6606 bnes 4594c <== NOT EXECUTED _Thread_Enable_dispatch(); 45946: 4e93 jsr %a3@ <== NOT EXECUTED 45948: 7005 moveq #5,%d0 <== NOT EXECUTED 4594a: 606c bras 459b8 <== NOT EXECUTED return RTEMS_TOO_MANY; } the_period->owner = _Thread_Executing; 4594c: 41f9 0005 985e lea 5985e <_Thread_Executing>,%a0 <== NOT EXECUTED 45952: 2550 0050 movel %a0@,%a2@(80) <== NOT EXECUTED the_period->state = RATE_MONOTONIC_INACTIVE; 45956: 42aa 0038 clrl %a2@(56) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4595a: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED the_watchdog->routine = routine; 4595e: 42aa 002c clrl %a2@(44) <== NOT EXECUTED the_watchdog->id = id; 45962: 42aa 0030 clrl %a2@(48) <== NOT EXECUTED the_watchdog->user_data = user_data; 45966: 42aa 0034 clrl %a2@(52) <== NOT EXECUTED _Watchdog_Initialize( &the_period->Timer, NULL, 0, NULL ); _Rate_monotonic_Reset_statistics( the_period ); 4596a: 4878 0038 pea 38 <== NOT EXECUTED 4596e: 42a7 clrl %sp@- <== NOT EXECUTED 45970: 486a 0054 pea %a2@(84) <== NOT EXECUTED 45974: 4eb9 0004 cbbc jsr 4cbbc <== NOT EXECUTED 4597a: 203c 7fff ffff movel #2147483647,%d0 <== NOT EXECUTED 45980: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 45984: 2079 0005 96b2 moveal 596b2 <_Rate_monotonic_Information+0x1a>,%a0 <== NOT EXECUTED 4598a: 4280 clrl %d0 <== NOT EXECUTED 4598c: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 45990: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED 45994: 207c 7fff ffff moveal #2147483647,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4599a: 2542 000c movel %d2,%a2@(12) <== NOT EXECUTED 4599e: 2548 0060 movel %a0,%a2@(96) <== NOT EXECUTED 459a2: 2548 0074 movel %a0,%a2@(116) <== NOT EXECUTED 459a6: 2548 0078 movel %a0,%a2@(120) <== NOT EXECUTED &_Rate_monotonic_Information, &the_period->Object, (Objects_Name) name ); *id = the_period->Object.id; 459aa: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED _Thread_Enable_dispatch(); 459ae: 4e93 jsr %a3@ <== NOT EXECUTED 459b0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 459b6: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 459b8: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 459be: 4e5e unlk %fp <== NOT EXECUTED 459c0: 4e75 rts <== NOT EXECUTED ... 0004d7c0 : */ rtems_status_code rtems_rate_monotonic_delete( Objects_Id id ) { 4d7c0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d7c4: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get ( Objects_Id id, Objects_Locations *location ) { return (Rate_monotonic_Control *) 4d7c6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d7ca: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d7ce: 4879 0006 c698 pea 6c698 <_Rate_monotonic_Information> <== NOT EXECUTED 4d7d4: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED Rate_monotonic_Control *the_period; Objects_Locations location; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 4d7da: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d7e0: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d7e2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d7e6: 6704 beqs 4d7ec <== NOT EXECUTED 4d7e8: 7004 moveq #4,%d0 <== NOT EXECUTED 4d7ea: 6038 bras 4d824 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Rate_monotonic_Information, &the_period->Object ); 4d7ec: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4d7ee: 4879 0006 c698 pea 6c698 <_Rate_monotonic_Information> <== NOT EXECUTED 4d7f4: 4eb9 0005 1300 jsr 51300 <_Objects_Close> <== NOT EXECUTED (void) _Watchdog_Remove( &the_period->Timer ); 4d7fa: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4d7fe: 4eb9 0005 3290 jsr 53290 <_Watchdog_Remove> <== NOT EXECUTED the_period->state = RATE_MONOTONIC_INACTIVE; 4d804: 42aa 0038 clrl %a2@(56) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Rate_monotonic_Free ( Rate_monotonic_Control *the_period ) { _Objects_Free( &_Rate_monotonic_Information, &the_period->Object ); 4d808: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d80a: 4879 0006 c698 pea 6c698 <_Rate_monotonic_Information> <== NOT EXECUTED 4d810: 4eb9 0005 1578 jsr 51578 <_Objects_Free> <== NOT EXECUTED _Rate_monotonic_Free( the_period ); _Thread_Enable_dispatch(); 4d816: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4d81c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4d822: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d824: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4d828: 4e5e unlk %fp <== NOT EXECUTED 4d82a: 4e75 rts 00066308 : rtems_status_code rtems_rate_monotonic_get_statistics( Objects_Id id, rtems_rate_monotonic_period_statistics *statistics ) { 66308: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 6630c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6630e: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Objects_Locations location; Rate_monotonic_Control *the_period; if ( !statistics ) 66312: 6604 bnes 66318 <== NOT EXECUTED 66314: 7009 moveq #9,%d0 <== NOT EXECUTED 66316: 6044 bras 6635c <== NOT EXECUTED 66318: 486e fffc pea %fp@(-4) <== NOT EXECUTED 6631c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 66320: 4879 0009 2b2c pea 92b2c <_Rate_monotonic_Information> <== NOT EXECUTED 66326: 4eb9 0004 a190 jsr 4a190 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 6632c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 66332: 2040 moveal %d0,%a0 <== NOT EXECUTED 66334: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 66338: 6704 beqs 6633e <== NOT EXECUTED 6633a: 7004 moveq #4,%d0 <== NOT EXECUTED 6633c: 601e bras 6635c <== NOT EXECUTED case OBJECTS_LOCAL: *statistics = the_period->Statistics; 6633e: 4878 0038 pea 38 <== NOT EXECUTED 66342: 4868 0054 pea %a0@(84) <== NOT EXECUTED 66346: 2f02 movel %d2,%sp@- <== NOT EXECUTED 66348: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED _Thread_Enable_dispatch(); 6634e: 4eb9 0004 a9de jsr 4a9de <_Thread_Enable_dispatch> <== NOT EXECUTED 66354: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 6635a: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6635c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 66360: 4e5e unlk %fp <== NOT EXECUTED 66362: 4e75 rts 00066364 : rtems_status_code rtems_rate_monotonic_get_status( Objects_Id id, rtems_rate_monotonic_period_status *status ) { 66364: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 66368: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 6636c: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED Objects_Locations location; Rate_monotonic_Control *the_period; if ( !status ) 66370: 4a8b tstl %a3 <== NOT EXECUTED 66372: 6606 bnes 6637a <== NOT EXECUTED 66374: 7009 moveq #9,%d0 <== NOT EXECUTED 66376: 6000 0094 braw 6640c <== NOT EXECUTED 6637a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 6637e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 66382: 4879 0009 2b2c pea 92b2c <_Rate_monotonic_Information> <== NOT EXECUTED 66388: 4eb9 0004 a190 jsr 4a190 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 6638e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 66394: 2840 moveal %d0,%a4 <== NOT EXECUTED 66396: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 6639a: 6704 beqs 663a0 <== NOT EXECUTED 6639c: 7004 moveq #4,%d0 <== NOT EXECUTED 6639e: 606c bras 6640c <== NOT EXECUTED case OBJECTS_LOCAL: status->owner = ((the_period->owner) ? the_period->owner->Object.id : 0); 663a0: 206c 0050 moveal %a4@(80),%a0 <== NOT EXECUTED 663a4: 4a88 tstl %a0 <== NOT EXECUTED 663a6: 6604 bnes 663ac <== NOT EXECUTED 663a8: 4281 clrl %d1 <== NOT EXECUTED 663aa: 6004 bras 663b0 <== NOT EXECUTED 663ac: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED status->state = the_period->state; 663b0: 202c 0038 movel %a4@(56),%d0 <== NOT EXECUTED the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: status->owner = ((the_period->owner) ? the_period->owner->Object.id : 0); 663b4: 2681 movel %d1,%a3@ <== NOT EXECUTED status->state = the_period->state; 663b6: 2740 0004 movel %d0,%a3@(4) <== NOT EXECUTED if ( status->state == RATE_MONOTONIC_INACTIVE ) { 663ba: 6612 bnes 663ce <== NOT EXECUTED #else status->since_last_period = 0; #endif #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS status->executed_since_last_period.tv_sec = 0; status->executed_since_last_period.tv_nsec = 0; 663bc: 42ab 0014 clrl %a3@(20) <== NOT EXECUTED status->owner = ((the_period->owner) ? the_period->owner->Object.id : 0); status->state = the_period->state; if ( status->state == RATE_MONOTONIC_INACTIVE ) { #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS status->since_last_period.tv_sec = 0; 663c0: 42ab 0008 clrl %a3@(8) <== NOT EXECUTED status->since_last_period.tv_nsec = 0; 663c4: 42ab 000c clrl %a3@(12) <== NOT EXECUTED #else status->since_last_period = 0; #endif #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS status->executed_since_last_period.tv_sec = 0; 663c8: 42ab 0010 clrl %a3@(16) <== NOT EXECUTED 663cc: 6036 bras 66404 <== NOT EXECUTED * This lets them share one single invocation of _TOD_Get_uptime(). */ #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) || \ defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) struct timespec uptime; _TOD_Get_uptime( &uptime ); 663ce: 240e movel %fp,%d2 <== NOT EXECUTED 663d0: 0682 ffff fff4 addil #-12,%d2 <== NOT EXECUTED 663d6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 663d8: 4eb9 0005 db14 jsr 5db14 <_TOD_Get_uptime> <== NOT EXECUTED #endif #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS _Timespec_Subtract( 663de: 486b 0008 pea %a3@(8) <== NOT EXECUTED 663e2: 45f9 0004 b6d4 lea 4b6d4 <_Timespec_Subtract>,%a2 <== NOT EXECUTED 663e8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 663ea: 486c 0044 pea %a4@(68) <== NOT EXECUTED 663ee: 4e92 jsr %a2@ <== NOT EXECUTED status->since_last_period = _Watchdog_Ticks_since_boot - the_period->time_at_period; #endif #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS _Timespec_Subtract( 663f0: 486b 0010 pea %a3@(16) <== NOT EXECUTED 663f4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 663f6: 4879 0009 2726 pea 92726 <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 663fc: 4e92 jsr %a2@ <== NOT EXECUTED 663fe: dffc 0000 001c addal #28,%sp <== NOT EXECUTED the_period->owner->cpu_time_used - the_period->owner_executed_at_period; #endif } _Thread_Enable_dispatch(); 66404: 4eb9 0004 a9de jsr 4a9de <_Thread_Enable_dispatch> <== NOT EXECUTED 6640a: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6640c: 4cee 1c04 ffe4 moveml %fp@(-28),%d2/%a2-%a4 <== NOT EXECUTED 66412: 4e5e unlk %fp <== NOT EXECUTED 66414: 4e75 rts <== NOT EXECUTED ... 000459c4 : rtems_status_code rtems_rate_monotonic_ident( rtems_name name, Objects_Id *id ) { 459c4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 459c8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 459cc: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 459d2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 459d6: 4879 0005 9698 pea 59698 <_Rate_monotonic_Information> <== NOT EXECUTED 459dc: 4eb9 0004 7c50 jsr 47c50 <_Objects_Name_to_id_u32> <== NOT EXECUTED 459e2: 41f9 0005 6b94 lea 56b94 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 459e8: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 459ec: 4e5e unlk %fp <== NOT EXECUTED 459ee: 4e75 rts 00045bcc : rtems_status_code rtems_rate_monotonic_period( Objects_Id id, rtems_interval length ) { 45bcc: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 45bd0: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get ( Objects_Id id, Objects_Locations *location ) { return (Rate_monotonic_Control *) 45bd4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45bd8: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 45bdc: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 45be0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 45be2: 4879 0005 9698 pea 59698 <_Rate_monotonic_Information> <== NOT EXECUTED 45be8: 4eb9 0004 7aec jsr 47aec <_Objects_Get> <== NOT EXECUTED rtems_rate_monotonic_period_states local_state; ISR_Level level; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 45bee: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45bf4: 2440 moveal %d0,%a2 <== NOT EXECUTED 45bf6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45bfa: 6600 012e bnew 45d2a <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Thread_Is_executing( the_period->owner ) ) { 45bfe: 2039 0005 985e movel 5985e <_Thread_Executing>,%d0 <== NOT EXECUTED 45c04: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 45c08: 6706 beqs 45c10 <== NOT EXECUTED _Thread_Enable_dispatch(); 45c0a: 7417 moveq #23,%d2 <== NOT EXECUTED 45c0c: 6000 00dc braw 45cea <== NOT EXECUTED return RTEMS_NOT_OWNER_OF_RESOURCE; } if ( length == RTEMS_PERIOD_STATUS ) { 45c10: 4a83 tstl %d3 <== NOT EXECUTED 45c12: 661c bnes 45c30 <== NOT EXECUTED switch ( the_period->state ) { 45c14: 202a 0038 movel %a2@(56),%d0 <== NOT EXECUTED 45c18: 6710 beqs 45c2a <== NOT EXECUTED 45c1a: 5780 subql #3,%d0 <== NOT EXECUTED 45c1c: 7201 moveq #1,%d1 <== NOT EXECUTED 45c1e: b280 cmpl %d0,%d1 <== NOT EXECUTED 45c20: 6500 00c6 bcsw 45ce8 <== NOT EXECUTED 45c24: 7406 moveq #6,%d2 <== NOT EXECUTED 45c26: 6000 00c2 braw 45cea <== NOT EXECUTED 45c2a: 740b moveq #11,%d2 <== NOT EXECUTED 45c2c: 6000 00bc braw 45cea <== NOT EXECUTED } _Thread_Enable_dispatch(); return( return_value ); } _ISR_Disable( level ); 45c30: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 45c36: 40c2 movew %sr,%d2 <== NOT EXECUTED 45c38: 8082 orl %d2,%d0 <== NOT EXECUTED 45c3a: 46c0 movew %d0,%sr <== NOT EXECUTED switch ( the_period->state ) { 45c3c: 202a 0038 movel %a2@(56),%d0 <== NOT EXECUTED 45c40: 7202 moveq #2,%d1 <== NOT EXECUTED 45c42: b280 cmpl %d0,%d1 <== NOT EXECUTED 45c44: 6740 beqs 45c86 <== NOT EXECUTED 45c46: 123c 0004 moveb #4,%d1 <== NOT EXECUTED 45c4a: b280 cmpl %d0,%d1 <== NOT EXECUTED 45c4c: 6700 00a4 beqw 45cf2 <== NOT EXECUTED 45c50: 4a80 tstl %d0 <== NOT EXECUTED 45c52: 6600 00d6 bnew 45d2a <== NOT EXECUTED case RATE_MONOTONIC_INACTIVE: { _ISR_Enable( level ); 45c56: 46c2 movew %d2,%sr <== NOT EXECUTED /* * Baseline statistics information for the beginning of a period. */ _Rate_monotonic_Initiate_statistics( the_period ); 45c58: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45c5a: 4eb9 0004 59f0 jsr 459f0 <_Rate_monotonic_Initiate_statistics> <== NOT EXECUTED the_period->state = RATE_MONOTONIC_ACTIVE; 45c60: 7402 moveq #2,%d2 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 45c62: 203c 0004 5f94 movel #286612,%d0 <== NOT EXECUTED 45c68: 2542 0038 movel %d2,%a2@(56) <== NOT EXECUTED ); the_period->next_length = length; _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); 45c6c: 4202 clrb %d2 <== NOT EXECUTED the_watchdog->id = id; 45c6e: 2544 0030 movel %d4,%a2@(48) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45c72: 2543 001c movel %d3,%a2@(28) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 45c76: 2540 002c movel %d0,%a2@(44) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 45c7a: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 45c7e: 42aa 0034 clrl %a2@(52) <== NOT EXECUTED 45c82: 6000 0084 braw 45d08 <== NOT EXECUTED case RATE_MONOTONIC_ACTIVE: /* * Update statistics from the concluding period. */ _Rate_monotonic_Update_statistics( the_period ); 45c86: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45c88: 4eb9 0004 5a68 jsr 45a68 <_Rate_monotonic_Update_statistics> <== NOT EXECUTED /* * This tells the _Rate_monotonic_Timeout that this task is * in the process of blocking on the period and that we * may be changing the length of the next period. */ the_period->state = RATE_MONOTONIC_OWNER_IS_BLOCKING; 45c8e: 7201 moveq #1,%d1 <== NOT EXECUTED the_period->next_length = length; 45c90: 2543 004c movel %d3,%a2@(76) <== NOT EXECUTED /* * This tells the _Rate_monotonic_Timeout that this task is * in the process of blocking on the period and that we * may be changing the length of the next period. */ the_period->state = RATE_MONOTONIC_OWNER_IS_BLOCKING; 45c94: 2541 0038 movel %d1,%a2@(56) <== NOT EXECUTED the_period->next_length = length; _ISR_Enable( level ); 45c98: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_Executing->Wait.id = the_period->Object.id; 45c9a: 2079 0005 985e moveal 5985e <_Thread_Executing>,%a0 <== NOT EXECUTED 45ca0: 216a 0008 0020 movel %a2@(8),%a0@(32) <== NOT EXECUTED _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD ); 45ca6: 4878 4000 pea 4000 <== NOT EXECUTED 45caa: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45cac: 4eb9 0004 8b40 jsr 48b40 <_Thread_Set_state> <== NOT EXECUTED /* * Did the watchdog timer expire while we were actually blocking * on it? */ _ISR_Disable( level ); 45cb2: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 45cb8: 40c0 movew %sr,%d0 <== NOT EXECUTED 45cba: 8280 orl %d0,%d1 <== NOT EXECUTED 45cbc: 46c1 movew %d1,%sr <== NOT EXECUTED local_state = the_period->state; 45cbe: 222a 0038 movel %a2@(56),%d1 <== NOT EXECUTED the_period->state = RATE_MONOTONIC_ACTIVE; 45cc2: 7402 moveq #2,%d2 <== NOT EXECUTED 45cc4: 2542 0038 movel %d2,%a2@(56) <== NOT EXECUTED _ISR_Enable( level ); 45cc8: 46c0 movew %d0,%sr <== NOT EXECUTED /* * If it did, then we want to unblock ourself and continue as * if nothing happen. The period was reset in the timeout routine. */ if ( local_state == RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING ) 45cca: 7003 moveq #3,%d0 <== NOT EXECUTED 45ccc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45cd2: b081 cmpl %d1,%d0 <== NOT EXECUTED 45cd4: 6612 bnes 45ce8 <== NOT EXECUTED _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD ); 45cd6: 4878 4000 pea 4000 <== NOT EXECUTED 45cda: 2f39 0005 985e movel 5985e <_Thread_Executing>,%sp@- <== NOT EXECUTED 45ce0: 4eb9 0004 7f0c jsr 47f0c <_Thread_Clear_state> <== NOT EXECUTED 45ce6: 508f addql #8,%sp <== NOT EXECUTED _Thread_Enable_dispatch(); 45ce8: 4282 clrl %d2 <== NOT EXECUTED 45cea: 4eb9 0004 82ce jsr 482ce <_Thread_Enable_dispatch> <== NOT EXECUTED 45cf0: 603a bras 45d2c <== NOT EXECUTED case RATE_MONOTONIC_EXPIRED: /* * Update statistics from the concluding period */ _Rate_monotonic_Update_statistics( the_period ); 45cf2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45cf4: 4eb9 0004 5a68 jsr 45a68 <_Rate_monotonic_Update_statistics> <== NOT EXECUTED _ISR_Enable( level ); 45cfa: 46c2 movew %d2,%sr <== NOT EXECUTED the_period->state = RATE_MONOTONIC_ACTIVE; 45cfc: 7202 moveq #2,%d1 <== NOT EXECUTED the_period->next_length = length; _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); 45cfe: 7406 moveq #6,%d2 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45d00: 2543 001c movel %d3,%a2@(28) <== NOT EXECUTED */ _Rate_monotonic_Update_statistics( the_period ); _ISR_Enable( level ); the_period->state = RATE_MONOTONIC_ACTIVE; 45d04: 2541 0038 movel %d1,%a2@(56) <== NOT EXECUTED the_period->next_length = length; 45d08: 2543 004c movel %d3,%a2@(76) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 45d0c: 486a 0010 pea %a2@(16) <== NOT EXECUTED 45d10: 4879 0005 987c pea 5987c <_Watchdog_Ticks_chain> <== NOT EXECUTED 45d16: 4eb9 0004 9364 jsr 49364 <_Watchdog_Insert> <== NOT EXECUTED _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); 45d1c: 4eb9 0004 82ce jsr 482ce <_Thread_Enable_dispatch> <== NOT EXECUTED 45d22: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45d28: 6002 bras 45d2c <== NOT EXECUTED return RTEMS_TIMEOUT; 45d2a: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45d2c: 2002 movel %d2,%d0 <== NOT EXECUTED 45d2e: 4cee 041c ffec moveml %fp@(-20),%d2-%d4/%a2 <== NOT EXECUTED 45d34: 4e5e unlk %fp <== NOT EXECUTED 45d36: 4e75 rts 0005d1f2 : void rtems_rate_monotonic_report_statistics( void ) { 5d1f2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_rate_monotonic_report_statistics_with_plugin( NULL, printk_plugin ); 5d1f6: 4879 0004 65dc pea 465dc <== NOT EXECUTED 5d1fc: 42a7 clrl %sp@- <== NOT EXECUTED 5d1fe: 4eb9 0005 d05c jsr 5d05c <== NOT EXECUTED 5d204: 508f addql #8,%sp <== NOT EXECUTED } 5d206: 4e5e unlk %fp <== NOT EXECUTED 5d208: 4e75 rts <== NOT EXECUTED ... 0005d05c : */ void rtems_rate_monotonic_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 5d05c: 4e56 ff78 linkw %fp,#-136 <== NOT EXECUTED 5d060: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 5d064: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 5d068: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED rtems_id id; rtems_rate_monotonic_period_statistics the_stats; rtems_rate_monotonic_period_status the_status; char name[5]; if ( !print ) 5d06c: 4a8a tstl %a2 <== NOT EXECUTED 5d06e: 6700 0178 beqw 5d1e8 <== NOT EXECUTED return; (*print)( context, "Period information by period\n" ); 5d072: 4879 0007 a666 pea 7a666 <== NOT EXECUTED /* * Print part of report line that is not dependent on granularity */ (*print)( context, 5d078: 2a0e movel %fp,%d5 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d07a: 280e movel %fp,%d4 <== NOT EXECUTED char name[5]; if ( !print ) return; (*print)( context, "Period information by period\n" ); 5d07c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d07e: 4e92 jsr %a2@ <== NOT EXECUTED #if defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) (*print)( context, "--- CPU times are in seconds ---\n" ); 5d080: 4879 0007 a684 pea 7a684 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d086: 2e0e movel %fp,%d7 <== NOT EXECUTED status = rtems_rate_monotonic_get_statistics( id, &the_stats ); if ( status != RTEMS_SUCCESSFUL ) continue; /* If the above passed, so should this but check it anyway */ status = rtems_rate_monotonic_get_status( id, &the_status ); 5d088: 4bf9 0006 6364 lea 66364 ,%a5 <== NOT EXECUTED if ( !print ) return; (*print)( context, "Period information by period\n" ); #if defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) (*print)( context, "--- CPU times are in seconds ---\n" ); 5d08e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d090: 4e92 jsr %a2@ <== NOT EXECUTED #endif #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) (*print)( context, "--- Wall times are in seconds ---\n" ); 5d092: 4879 0007 a6a6 pea 7a6a6 <== NOT EXECUTED /* * Print part of report line that is not dependent on granularity */ (*print)( context, 5d098: 5b85 subql #5,%d5 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d09a: 0684 ffff fff2 addil #-14,%d4 <== NOT EXECUTED (*print)( context, "Period information by period\n" ); #if defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) (*print)( context, "--- CPU times are in seconds ---\n" ); #endif #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) (*print)( context, "--- Wall times are in seconds ---\n" ); 5d0a0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d0a2: 4e92 jsr %a2@ <== NOT EXECUTED Be sure to test the various cases. (*print)( context,"\ 1234567890123456789012345678901234567890123456789012345678901234567890123456789\ \n"); */ (*print)( context, " ID OWNER COUNT MISSED " 5d0a4: 4879 0007 a6c9 pea 7a6c9 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d0aa: 0687 ffff ffba addil #-70,%d7 <== NOT EXECUTED 5d0b0: 47f9 0005 e414 lea 5e414 <_Timespec_Divide_by_integer>,%a3 <== NOT EXECUTED Be sure to test the various cases. (*print)( context,"\ 1234567890123456789012345678901234567890123456789012345678901234567890123456789\ \n"); */ (*print)( context, " ID OWNER COUNT MISSED " 5d0b6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d0b8: 4e92 jsr %a2@ <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS " " #endif " WALL TIME\n" ); (*print)( context, " " 5d0ba: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 5d0c0: 2ebc 0007 a714 movel #501524,%sp@ <== NOT EXECUTED #endif name[ 0 ] = '\0'; if ( the_status.owner ) { rtems_object_get_name( the_status.owner, sizeof(name), name ); 5d0c6: 49f9 0004 87f8 lea 487f8 ,%a4 <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS " " #endif " WALL TIME\n" ); (*print)( context, " " 5d0cc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d0ce: 4e92 jsr %a2@ <== NOT EXECUTED /* * Cycle through all possible ids and try to report on each one. If it * is a period that is inactive, we just get an error back. No big deal. */ for ( id=_Rate_monotonic_Information.minimum_id ; 5d0d0: 2439 0009 2b32 movel 92b32 <_Rate_monotonic_Information+0x6>,%d2 <== NOT EXECUTED 5d0d6: 508f addql #8,%sp <== NOT EXECUTED 5d0d8: 6000 0104 braw 5d1de <== NOT EXECUTED id <= _Rate_monotonic_Information.maximum_id ; id++ ) { status = rtems_rate_monotonic_get_statistics( id, &the_stats ); 5d0dc: 486e ffa2 pea %fp@(-94) <== NOT EXECUTED 5d0e0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d0e2: 4eb9 0006 6308 jsr 66308 <== NOT EXECUTED if ( status != RTEMS_SUCCESSFUL ) 5d0e8: 508f addql #8,%sp <== NOT EXECUTED 5d0ea: 4a80 tstl %d0 <== NOT EXECUTED 5d0ec: 6600 00ee bnew 5d1dc <== NOT EXECUTED continue; /* If the above passed, so should this but check it anyway */ status = rtems_rate_monotonic_get_status( id, &the_status ); 5d0f0: 486e ffda pea %fp@(-38) <== NOT EXECUTED 5d0f4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d0f6: 4e95 jsr %a5@ <== NOT EXECUTED continue; #endif name[ 0 ] = '\0'; if ( the_status.owner ) { 5d0f8: 202e ffda movel %fp@(-38),%d0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( status != RTEMS_SUCCESSFUL ) continue; #endif name[ 0 ] = '\0'; 5d0fc: 4201 clrb %d1 <== NOT EXECUTED if ( the_status.owner ) { 5d0fe: 508f addql #8,%sp <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( status != RTEMS_SUCCESSFUL ) continue; #endif name[ 0 ] = '\0'; 5d100: 1d41 fffb moveb %d1,%fp@(-5) <== NOT EXECUTED if ( the_status.owner ) { 5d104: 4a80 tstl %d0 <== NOT EXECUTED 5d106: 6710 beqs 5d118 <== NOT EXECUTED rtems_object_get_name( the_status.owner, sizeof(name), name ); 5d108: 2f05 movel %d5,%sp@- <== NOT EXECUTED 5d10a: 4878 0005 pea 5 <== NOT EXECUTED 5d10e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5d110: 4e94 jsr %a4@ <== NOT EXECUTED 5d112: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Print part of report line that is not dependent on granularity */ (*print)( context, 5d118: 2f2e ffa6 movel %fp@(-90),%sp@- <== NOT EXECUTED 5d11c: 2f2e ffa2 movel %fp@(-94),%sp@- <== NOT EXECUTED 5d120: 2f05 movel %d5,%sp@- <== NOT EXECUTED 5d122: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d124: 4879 0007 a760 pea 7a760 <== NOT EXECUTED 5d12a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d12c: 4e92 jsr %a2@ <== NOT EXECUTED /* * If the count is zero, don't print statistics */ if (the_stats.count == 0) { 5d12e: 202e ffa2 movel %fp@(-94),%d0 <== NOT EXECUTED 5d132: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 5d138: 6610 bnes 5d14a <== NOT EXECUTED (*print)( context, "\n" ); 5d13a: 4879 0007 aa70 pea 7aa70 <__func__.5623+0x118> <== NOT EXECUTED 5d140: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d142: 4e92 jsr %a2@ <== NOT EXECUTED 5d144: 508f addql #8,%sp <== NOT EXECUTED 5d146: 6000 0094 braw 5d1dc <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d14a: 2f04 movel %d4,%sp@- <== NOT EXECUTED &the_stats.total_cpu_time, the_stats.count, &cpu_average ); (*print)( context, 5d14c: 2c3c 0000 03e8 movel #1000,%d6 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d152: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5d154: 2f07 movel %d7,%sp@- <== NOT EXECUTED 5d156: 4e93 jsr %a3@ <== NOT EXECUTED &the_stats.total_cpu_time, the_stats.count, &cpu_average ); (*print)( context, 5d158: 202e fff6 movel %fp@(-10),%d0 <== NOT EXECUTED 5d15c: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 5d160: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5d162: 202e ffb6 movel %fp@(-74),%d0 <== NOT EXECUTED 5d166: 2f2e fff2 movel %fp@(-14),%sp@- <== NOT EXECUTED 5d16a: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 5d16e: 2240 moveal %d0,%a1 <== NOT EXECUTED 5d170: 2f09 movel %a1,%sp@- <== NOT EXECUTED 5d172: 222e ffae movel %fp@(-82),%d1 <== NOT EXECUTED 5d176: 2f2e ffb2 movel %fp@(-78),%sp@- <== NOT EXECUTED 5d17a: 4c46 1801 remsl %d6,%d1,%d1 <== NOT EXECUTED 5d17e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 5d180: 2f2e ffaa movel %fp@(-86),%sp@- <== NOT EXECUTED 5d184: 4879 0007 a777 pea 7a777 <== NOT EXECUTED 5d18a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d18c: 4e92 jsr %a2@ <== NOT EXECUTED * print Wall time part of statistics */ { #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS struct timespec wall_average; _Timespec_Divide_by_integer( 5d18e: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED 5d194: 2e84 movel %d4,%sp@ <== NOT EXECUTED 5d196: 2f2e ffa2 movel %fp@(-94),%sp@- <== NOT EXECUTED 5d19a: 486e ffd2 pea %fp@(-46) <== NOT EXECUTED 5d19e: 4e93 jsr %a3@ <== NOT EXECUTED &the_stats.total_wall_time, the_stats.count, &wall_average ); (*print)( context, 5d1a0: 202e fff6 movel %fp@(-10),%d0 <== NOT EXECUTED 5d1a4: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 5d1a8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5d1aa: 202e ffce movel %fp@(-50),%d0 <== NOT EXECUTED 5d1ae: 2f2e fff2 movel %fp@(-14),%sp@- <== NOT EXECUTED 5d1b2: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 5d1b6: 2240 moveal %d0,%a1 <== NOT EXECUTED 5d1b8: 2f09 movel %a1,%sp@- <== NOT EXECUTED 5d1ba: 222e ffc6 movel %fp@(-58),%d1 <== NOT EXECUTED 5d1be: 2f2e ffca movel %fp@(-54),%sp@- <== NOT EXECUTED 5d1c2: 4c46 1801 remsl %d6,%d1,%d1 <== NOT EXECUTED 5d1c6: 2f01 movel %d1,%sp@- <== NOT EXECUTED 5d1c8: 2f2e ffc2 movel %fp@(-62),%sp@- <== NOT EXECUTED 5d1cc: 4879 0007 a796 pea 7a796 <== NOT EXECUTED 5d1d2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d1d4: 4e92 jsr %a2@ <== NOT EXECUTED 5d1d6: dffc 0000 002c addal #44,%sp <== NOT EXECUTED * Cycle through all possible ids and try to report on each one. If it * is a period that is inactive, we just get an error back. No big deal. */ for ( id=_Rate_monotonic_Information.minimum_id ; id <= _Rate_monotonic_Information.maximum_id ; id++ ) { 5d1dc: 5282 addql #1,%d2 <== NOT EXECUTED /* * Cycle through all possible ids and try to report on each one. If it * is a period that is inactive, we just get an error back. No big deal. */ for ( id=_Rate_monotonic_Information.minimum_id ; id <= _Rate_monotonic_Information.maximum_id ; 5d1de: b4b9 0009 2b36 cmpl 92b36 <_Rate_monotonic_Information+0xa>,%d2 <== NOT EXECUTED 5d1e4: 6300 fef6 blsw 5d0dc <== NOT EXECUTED the_stats.min_wall_time, the_stats.max_wall_time, ival_wall, fval_wall ); #endif } } } 5d1e8: 4cee 3cfc ff78 moveml %fp@(-136),%d2-%d7/%a2-%a5 <== NOT EXECUTED 5d1ee: 4e5e unlk %fp <== NOT EXECUTED 5d1f0: 4e75 rts 0005d20c : /* * rtems_rate_monotonic_reset_all_statistics */ void rtems_rate_monotonic_reset_all_statistics( void ) { 5d20c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5d210: 2039 0009 2660 movel 92660 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 5d216: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5d218: 5280 addql #1,%d0 <== NOT EXECUTED 5d21a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d21c: 23c0 0009 2660 movel %d0,92660 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Cycle through all possible ids and try to reset each one. If it * is a period that is inactive, we just get an error back. No big deal. */ for ( id=_Rate_monotonic_Information.minimum_id ; 5d222: 2439 0009 2b32 movel 92b32 <_Rate_monotonic_Information+0x6>,%d2 <== NOT EXECUTED id <= _Rate_monotonic_Information.maximum_id ; id++ ) { status = rtems_rate_monotonic_reset_statistics( id ); 5d228: 45f9 0005 d250 lea 5d250 ,%a2 <== NOT EXECUTED 5d22e: 6008 bras 5d238 <== NOT EXECUTED 5d230: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d232: 4e92 jsr %a2@ <== NOT EXECUTED * Cycle through all possible ids and try to reset each one. If it * is a period that is inactive, we just get an error back. No big deal. */ for ( id=_Rate_monotonic_Information.minimum_id ; id <= _Rate_monotonic_Information.maximum_id ; id++ ) { 5d234: 5282 addql #1,%d2 <== NOT EXECUTED 5d236: 588f addql #4,%sp <== NOT EXECUTED /* * Cycle through all possible ids and try to reset each one. If it * is a period that is inactive, we just get an error back. No big deal. */ for ( id=_Rate_monotonic_Information.minimum_id ; id <= _Rate_monotonic_Information.maximum_id ; 5d238: b4b9 0009 2b36 cmpl 92b36 <_Rate_monotonic_Information+0xa>,%d2 <== NOT EXECUTED 5d23e: 63f0 blss 5d230 <== NOT EXECUTED /* * Done so exit thread dispatching disabled critical section. */ _Thread_Enable_dispatch(); } 5d240: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5d244: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 5d248: 4e5e unlk %fp <== NOT EXECUTED } /* * Done so exit thread dispatching disabled critical section. */ _Thread_Enable_dispatch(); 5d24a: 4ef9 0004 a9de jmp 4a9de <_Thread_Enable_dispatch> <== NOT EXECUTED 0005d250 : */ rtems_status_code rtems_rate_monotonic_reset_statistics( Objects_Id id ) { 5d250: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 5d254: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get ( Objects_Id id, Objects_Locations *location ) { return (Rate_monotonic_Control *) 5d256: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5d25a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5d25e: 4879 0009 2b2c pea 92b2c <_Rate_monotonic_Information> <== NOT EXECUTED 5d264: 4eb9 0004 a190 jsr 4a190 <_Objects_Get> <== NOT EXECUTED Objects_Locations location; Rate_monotonic_Control *the_period; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 5d26a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5d270: 2440 moveal %d0,%a2 <== NOT EXECUTED 5d272: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5d276: 6704 beqs 5d27c <== NOT EXECUTED 5d278: 7004 moveq #4,%d0 <== NOT EXECUTED 5d27a: 6034 bras 5d2b0 <== NOT EXECUTED case OBJECTS_LOCAL: _Rate_monotonic_Reset_statistics( the_period ); 5d27c: 4878 0038 pea 38 <== NOT EXECUTED 5d280: 42a7 clrl %sp@- <== NOT EXECUTED 5d282: 486a 0054 pea %a2@(84) <== NOT EXECUTED 5d286: 4eb9 0006 a54c jsr 6a54c <== NOT EXECUTED 5d28c: 203c 7fff ffff movel #2147483647,%d0 <== NOT EXECUTED 5d292: 2540 0078 movel %d0,%a2@(120) <== NOT EXECUTED 5d296: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED 5d29a: 2540 0060 movel %d0,%a2@(96) <== NOT EXECUTED 5d29e: 2540 0074 movel %d0,%a2@(116) <== NOT EXECUTED _Thread_Enable_dispatch(); 5d2a2: 4eb9 0004 a9de jsr 4a9de <_Thread_Enable_dispatch> <== NOT EXECUTED 5d2a8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5d2ae: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5d2b0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5d2b4: 4e5e unlk %fp <== NOT EXECUTED 5d2b6: 4e75 rts 0004dd20 : uint32_t length, uint32_t page_size, rtems_attribute attribute_set, Objects_Id *id ) { 4dd20: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4dd24: 48d7 0c7c moveml %d2-%d6/%a2-%a3,%sp@ <== NOT EXECUTED 4dd28: 2c2e 0008 movel %fp@(8),%d6 <== NOT EXECUTED 4dd2c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4dd30: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED 4dd34: 2a2e 0014 movel %fp@(20),%d5 <== NOT EXECUTED 4dd38: 262e 0018 movel %fp@(24),%d3 <== NOT EXECUTED 4dd3c: 266e 001c moveal %fp@(28),%a3 <== NOT EXECUTED rtems_status_code return_status; Region_Control *the_region; if ( !rtems_is_name_valid( name ) ) 4dd40: 4a86 tstl %d6 <== NOT EXECUTED 4dd42: 6606 bnes 4dd4a <== NOT EXECUTED 4dd44: 7403 moveq #3,%d2 <== NOT EXECUTED 4dd46: 6000 00ca braw 4de12 <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !starting_address ) 4dd4a: 4a82 tstl %d2 <== NOT EXECUTED 4dd4c: 6700 00c2 beqw 4de10 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !id ) 4dd50: 4a8b tstl %a3 <== NOT EXECUTED 4dd52: 6700 00bc beqw 4de10 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_Addresses_Is_aligned( starting_address ) ) 4dd56: 7003 moveq #3,%d0 <== NOT EXECUTED 4dd58: c082 andl %d2,%d0 <== NOT EXECUTED 4dd5a: 6600 00b4 bnew 4de10 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); /* to prevent deletion */ 4dd5e: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4dd64: 4eb9 0004 ff78 jsr 4ff78 <_API_Mutex_Lock> <== NOT EXECUTED * This function allocates a region control block from * the inactive chain of free region control blocks. */ RTEMS_INLINE_ROUTINE Region_Control *_Region_Allocate( void ) { return (Region_Control *) _Objects_Allocate( &_Region_Information ); 4dd6a: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4dd70: 4eb9 0005 1278 jsr 51278 <_Objects_Allocate> <== NOT EXECUTED the_region = _Region_Allocate(); if ( !the_region ) 4dd76: 508f addql #8,%sp <== NOT EXECUTED 4dd78: 2440 moveal %d0,%a2 <== NOT EXECUTED 4dd7a: 4a80 tstl %d0 <== NOT EXECUTED 4dd7c: 6604 bnes 4dd82 <== NOT EXECUTED 4dd7e: 7405 moveq #5,%d2 <== NOT EXECUTED 4dd80: 607e bras 4de00 <== NOT EXECUTED return_status = RTEMS_TOO_MANY; else { the_region->maximum_segment_size = _Heap_Initialize( 4dd82: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4dd84: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4dd86: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4dd88: 486a 0068 pea %a2@(104) <== NOT EXECUTED 4dd8c: 4eb9 0005 0dac jsr 50dac <_Heap_Initialize> <== NOT EXECUTED &the_region->Memory, starting_address, length, page_size ); if ( !the_region->maximum_segment_size ) { 4dd92: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED if ( !the_region ) return_status = RTEMS_TOO_MANY; else { the_region->maximum_segment_size = _Heap_Initialize( 4dd98: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED &the_region->Memory, starting_address, length, page_size ); if ( !the_region->maximum_segment_size ) { 4dd9c: 6614 bnes 4ddb2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Region_Free ( Region_Control *the_region ) { _Objects_Free( &_Region_Information, &the_region->Object ); 4dd9e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4dda0: 7408 moveq #8,%d2 <== NOT EXECUTED 4dda2: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4dda8: 4eb9 0005 1578 jsr 51578 <_Objects_Free> <== NOT EXECUTED 4ddae: 508f addql #8,%sp <== NOT EXECUTED 4ddb0: 604e bras 4de00 <== NOT EXECUTED return_status = RTEMS_INVALID_SIZE; } else { the_region->starting_address = starting_address; 4ddb2: 2542 0050 movel %d2,%a2@(80) <== NOT EXECUTED the_region->length = length; the_region->page_size = page_size; the_region->attribute_set = attribute_set; the_region->number_of_used_blocks = 0; _Thread_queue_Initialize( 4ddb6: 7001 moveq #1,%d0 <== NOT EXECUTED &_Region_Information, &the_region->Object, (Objects_Name) name ); *id = the_region->Object.id; 4ddb8: 4282 clrl %d2 <== NOT EXECUTED else { the_region->starting_address = starting_address; the_region->length = length; the_region->page_size = page_size; the_region->attribute_set = attribute_set; 4ddba: 2543 0060 movel %d3,%a2@(96) <== NOT EXECUTED the_region->number_of_used_blocks = 0; _Thread_queue_Initialize( 4ddbe: e48b lsrl #2,%d3 <== NOT EXECUTED } else { the_region->starting_address = starting_address; the_region->length = length; 4ddc0: 2544 0054 movel %d4,%a2@(84) <== NOT EXECUTED the_region->page_size = page_size; the_region->attribute_set = attribute_set; the_region->number_of_used_blocks = 0; _Thread_queue_Initialize( 4ddc4: c083 andl %d3,%d0 <== NOT EXECUTED else { the_region->starting_address = starting_address; the_region->length = length; the_region->page_size = page_size; 4ddc6: 2545 0058 movel %d5,%a2@(88) <== NOT EXECUTED the_region->attribute_set = attribute_set; the_region->number_of_used_blocks = 0; 4ddca: 42aa 0064 clrl %a2@(100) <== NOT EXECUTED _Thread_queue_Initialize( 4ddce: 4878 0006 pea 6 <== NOT EXECUTED 4ddd2: 4878 0040 pea 40 <== NOT EXECUTED 4ddd6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ddd8: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4dddc: 4eb9 0005 25a4 jsr 525a4 <_Thread_queue_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4dde2: 2079 0006 c6ee moveal 6c6ee <_Region_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4dde8: 2546 000c movel %d6,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4ddec: 4280 clrl %d0 <== NOT EXECUTED 4ddee: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED &_Region_Information, &the_region->Object, (Objects_Name) name ); *id = the_region->Object.id; 4ddf2: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4ddf8: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED 4ddfc: 26aa 0008 movel %a2@(8),%a3@ <== NOT EXECUTED return_status = RTEMS_SUCCESSFUL; } } _RTEMS_Unlock_allocator(); 4de00: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4de06: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED 4de0c: 588f addql #4,%sp <== NOT EXECUTED 4de0e: 6002 bras 4de12 <== NOT EXECUTED return return_status; 4de10: 7409 moveq #9,%d2 <== NOT EXECUTED } 4de12: 2002 movel %d2,%d0 <== NOT EXECUTED 4de14: 4cee 0c7c ffe4 moveml %fp@(-28),%d2-%d6/%a2-%a3 <== NOT EXECUTED 4de1a: 4e5e unlk %fp <== NOT EXECUTED 4de1c: 4e75 rts <== NOT EXECUTED ... 0004de20 : */ rtems_status_code rtems_region_delete( Objects_Id id ) { 4de20: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4de24: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4de26: 2f02 movel %d2,%sp@- <== NOT EXECUTED Objects_Locations location; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; register Region_Control *the_region; _RTEMS_Lock_allocator(); 4de28: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4de2e: 4eb9 0004 ff78 jsr 4ff78 <_API_Mutex_Lock> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Region_Control *_Region_Get ( Objects_Id id, Objects_Locations *location ) { return (Region_Control *) 4de34: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4de38: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4de3c: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4de42: 4eb9 0005 16d8 jsr 516d8 <_Objects_Get_no_protection> <== NOT EXECUTED 4de48: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4de4a: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4de4e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4de54: 670e beqs 4de64 <== NOT EXECUTED 4de56: 7201 moveq #1,%d1 <== NOT EXECUTED 4de58: b280 cmpl %d0,%d1 <== NOT EXECUTED 4de5a: 6604 bnes 4de60 <== NOT EXECUTED 4de5c: 7404 moveq #4,%d2 <== NOT EXECUTED 4de5e: 6032 bras 4de92 <== NOT EXECUTED 4de60: 7419 moveq #25,%d2 <== NOT EXECUTED 4de62: 602e bras 4de92 <== NOT EXECUTED case OBJECTS_LOCAL: _Region_Debug_Walk( the_region, 5 ); if ( the_region->number_of_used_blocks != 0 ) 4de64: 4aaa 0064 tstl %a2@(100) <== NOT EXECUTED 4de68: 6704 beqs 4de6e <== NOT EXECUTED 4de6a: 740c moveq #12,%d2 <== NOT EXECUTED 4de6c: 6024 bras 4de92 <== NOT EXECUTED return_status = RTEMS_RESOURCE_IN_USE; else { _Objects_Close( &_Region_Information, &the_region->Object ); 4de6e: 2f0a movel %a2,%sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Region_Free ( Region_Control *the_region ) { _Objects_Free( &_Region_Information, &the_region->Object ); 4de70: 4282 clrl %d2 <== NOT EXECUTED 4de72: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4de78: 4eb9 0005 1300 jsr 51300 <_Objects_Close> <== NOT EXECUTED 4de7e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4de80: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4de86: 4eb9 0005 1578 jsr 51578 <_Objects_Free> <== NOT EXECUTED 4de8c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4de92: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4de98: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED return return_status; } 4de9e: 2002 movel %d2,%d0 <== NOT EXECUTED 4dea0: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4dea4: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4dea8: 4e5e unlk %fp <== NOT EXECUTED 4deaa: 4e75 rts 0004deac : rtems_status_code rtems_region_extend( Objects_Id id, void *starting_address, uint32_t length ) { 4deac: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 4deb0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4deb2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4deb4: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Heap_Extend_status heap_status; Objects_Locations location; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; Region_Control *the_region; if ( !starting_address ) 4deb8: 6608 bnes 4dec2 <== NOT EXECUTED 4deba: 143c 0009 moveb #9,%d2 <== NOT EXECUTED 4debe: 6000 008e braw 4df4e <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); /* to prevent deletion */ 4dec2: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4dec8: 4eb9 0004 ff78 jsr 4ff78 <_API_Mutex_Lock> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Region_Control *_Region_Get ( Objects_Id id, Objects_Locations *location ) { return (Region_Control *) 4dece: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4ded2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ded6: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4dedc: 4eb9 0005 16d8 jsr 516d8 <_Objects_Get_no_protection> <== NOT EXECUTED 4dee2: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4dee4: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 4dee8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4deee: 670a beqs 4defa <== NOT EXECUTED 4def0: 7201 moveq #1,%d1 <== NOT EXECUTED 4def2: b280 cmpl %d0,%d1 <== NOT EXECUTED 4def4: 6648 bnes 4df3e <== NOT EXECUTED 4def6: 7404 moveq #4,%d2 <== NOT EXECUTED 4def8: 6046 bras 4df40 <== NOT EXECUTED case OBJECTS_LOCAL: heap_status = _Heap_Extend( 4defa: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4defe: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4df02: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4df04: 486a 0068 pea %a2@(104) <== NOT EXECUTED 4df08: 4eb9 0005 0ad4 jsr 50ad4 <_Heap_Extend> <== NOT EXECUTED starting_address, length, &amount_extended ); switch ( heap_status ) { 4df0e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4df14: 7201 moveq #1,%d1 <== NOT EXECUTED 4df16: b280 cmpl %d0,%d1 <== NOT EXECUTED 4df18: 670c beqs 4df26 <== NOT EXECUTED 4df1a: 620e bhis 4df2a <== NOT EXECUTED 4df1c: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 4df20: b280 cmpl %d0,%d1 <== NOT EXECUTED 4df22: 661a bnes 4df3e <== NOT EXECUTED 4df24: 6014 bras 4df3a <== NOT EXECUTED 4df26: 7409 moveq #9,%d2 <== NOT EXECUTED 4df28: 6016 bras 4df40 <== NOT EXECUTED case HEAP_EXTEND_SUCCESSFUL: the_region->length += amount_extended; 4df2a: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED the_region->maximum_segment_size += amount_extended; 4df2e: d1aa 005c addl %d0,%a2@(92) <== NOT EXECUTED &amount_extended ); switch ( heap_status ) { case HEAP_EXTEND_SUCCESSFUL: the_region->length += amount_extended; 4df32: d1aa 0054 addl %d0,%a2@(84) <== NOT EXECUTED the_region->maximum_segment_size += amount_extended; 4df36: 4282 clrl %d2 <== NOT EXECUTED 4df38: 6006 bras 4df40 <== NOT EXECUTED return_status = RTEMS_SUCCESSFUL; break; 4df3a: 7418 moveq #24,%d2 <== NOT EXECUTED 4df3c: 6002 bras 4df40 <== NOT EXECUTED 4df3e: 7419 moveq #25,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4df40: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4df46: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED 4df4c: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 4df4e: 2002 movel %d2,%d0 <== NOT EXECUTED 4df50: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 4df54: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4df58: 4e5e unlk %fp <== NOT EXECUTED 4df5a: 4e75 rts 0004df5c : rtems_status_code rtems_region_get_free_information( Objects_Id id, Heap_Information_block *the_info ) { 4df5c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4df60: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4df62: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4df66: 2f02 movel %d2,%sp@- <== NOT EXECUTED Objects_Locations location; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; register Region_Control *the_region; if ( !the_info ) 4df68: 4a8a tstl %a2 <== NOT EXECUTED 4df6a: 6604 bnes 4df70 <== NOT EXECUTED 4df6c: 7409 moveq #9,%d2 <== NOT EXECUTED 4df6e: 6066 bras 4dfd6 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 4df70: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4df76: 4eb9 0004 ff78 jsr 4ff78 <_API_Mutex_Lock> <== NOT EXECUTED 4df7c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4df80: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4df84: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4df8a: 4eb9 0005 16d8 jsr 516d8 <_Objects_Get_no_protection> <== NOT EXECUTED 4df90: 2040 moveal %d0,%a0 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4df92: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4df96: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4df9c: 670e beqs 4dfac <== NOT EXECUTED 4df9e: 7201 moveq #1,%d1 <== NOT EXECUTED 4dfa0: b280 cmpl %d0,%d1 <== NOT EXECUTED 4dfa2: 6604 bnes 4dfa8 <== NOT EXECUTED 4dfa4: 7404 moveq #4,%d2 <== NOT EXECUTED 4dfa6: 6020 bras 4dfc8 <== NOT EXECUTED 4dfa8: 7419 moveq #25,%d2 <== NOT EXECUTED 4dfaa: 601c bras 4dfc8 <== NOT EXECUTED the_info->Used.number = 0; the_info->Used.total = 0; the_info->Used.largest = 0; _Heap_Get_free_information( &the_region->Memory, &the_info->Free ); 4dfac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4dfae: 4282 clrl %d2 <== NOT EXECUTED 4dfb0: 4868 0068 pea %a0@(104) <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: the_info->Used.number = 0; 4dfb4: 42aa 000c clrl %a2@(12) <== NOT EXECUTED the_info->Used.total = 0; 4dfb8: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED the_info->Used.largest = 0; 4dfbc: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED _Heap_Get_free_information( &the_region->Memory, &the_info->Free ); 4dfc0: 4eb9 0005 0cec jsr 50cec <_Heap_Get_free_information> <== NOT EXECUTED 4dfc6: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4dfc8: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4dfce: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED 4dfd4: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 4dfd6: 2002 movel %d2,%d0 <== NOT EXECUTED 4dfd8: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4dfdc: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4dfe0: 4e5e unlk %fp <== NOT EXECUTED 4dfe2: 4e75 rts 0004dfe4 : rtems_status_code rtems_region_get_information( Objects_Id id, Heap_Information_block *the_info ) { 4dfe4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4dfe8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4dfea: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Objects_Locations location; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; register Region_Control *the_region; if ( !the_info ) 4dfee: 6606 bnes 4dff6 <== NOT EXECUTED 4dff0: 143c 0009 moveb #9,%d2 <== NOT EXECUTED 4dff4: 6062 bras 4e058 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 4dff6: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4dffc: 4eb9 0004 ff78 jsr 4ff78 <_API_Mutex_Lock> <== NOT EXECUTED 4e002: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4e006: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e00a: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4e010: 4eb9 0005 16d8 jsr 516d8 <_Objects_Get_no_protection> <== NOT EXECUTED 4e016: 2040 moveal %d0,%a0 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4e018: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4e01c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e022: 670e beqs 4e032 <== NOT EXECUTED 4e024: 7201 moveq #1,%d1 <== NOT EXECUTED 4e026: b280 cmpl %d0,%d1 <== NOT EXECUTED 4e028: 6604 bnes 4e02e <== NOT EXECUTED 4e02a: 7404 moveq #4,%d2 <== NOT EXECUTED 4e02c: 601c bras 4e04a <== NOT EXECUTED 4e02e: 7419 moveq #25,%d2 <== NOT EXECUTED 4e030: 6018 bras 4e04a <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Heap_Get_information( &the_region->Memory, the_info ) != 4e032: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4e034: 4868 0068 pea %a0@(104) <== NOT EXECUTED 4e038: 4eb9 0005 0d30 jsr 50d30 <_Heap_Get_information> <== NOT EXECUTED 4e03e: 508f addql #8,%sp <== NOT EXECUTED 4e040: 4a80 tstl %d0 <== NOT EXECUTED 4e042: 6604 bnes 4e048 <== NOT EXECUTED 4e044: 4282 clrl %d2 <== NOT EXECUTED 4e046: 6002 bras 4e04a <== NOT EXECUTED 4e048: 7409 moveq #9,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e04a: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e050: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED 4e056: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 4e058: 2002 movel %d2,%d0 <== NOT EXECUTED 4e05a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4e05e: 4e5e unlk %fp <== NOT EXECUTED 4e060: 4e75 rts <== NOT EXECUTED ... 0004e064 : uint32_t size, rtems_option option_set, rtems_interval timeout, void **segment ) { 4e064: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4e068: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 4e06c: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4e070: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4e074: 286e 0018 moveal %fp@(24),%a4 <== NOT EXECUTED Objects_Locations location; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; register Region_Control *the_region; void *the_segment; if ( !segment ) 4e078: 4a8c tstl %a4 <== NOT EXECUTED 4e07a: 6606 bnes 4e082 <== NOT EXECUTED 4e07c: 7409 moveq #9,%d2 <== NOT EXECUTED 4e07e: 6000 00f2 braw 4e172 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; *segment = NULL; 4e082: 4294 clrl %a4@ <== NOT EXECUTED if ( size == 0 ) 4e084: 4a82 tstl %d2 <== NOT EXECUTED 4e086: 6608 bnes 4e090 <== NOT EXECUTED 4e088: 143c 0008 moveb #8,%d2 <== NOT EXECUTED 4e08c: 6000 00e4 braw 4e172 <== NOT EXECUTED return RTEMS_INVALID_SIZE; _RTEMS_Lock_allocator(); 4e090: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e096: 4eb9 0004 ff78 jsr 4ff78 <_API_Mutex_Lock> <== NOT EXECUTED 4e09c: 486e fffc pea %fp@(-4) <== NOT EXECUTED executing = _Thread_Executing; 4e0a0: 2679 0006 c8ee moveal 6c8ee <_Thread_Executing>,%a3 <== NOT EXECUTED 4e0a6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4e0a8: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4e0ae: 4eb9 0005 16d8 jsr 516d8 <_Objects_Get_no_protection> <== NOT EXECUTED 4e0b4: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4e0b6: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4e0ba: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e0c0: 670e beqs 4e0d0 <== NOT EXECUTED 4e0c2: 7201 moveq #1,%d1 <== NOT EXECUTED 4e0c4: b280 cmpl %d0,%d1 <== NOT EXECUTED 4e0c6: 6700 009a beqw 4e162 <== NOT EXECUTED 4e0ca: 7419 moveq #25,%d2 <== NOT EXECUTED 4e0cc: 6000 0096 braw 4e164 <== NOT EXECUTED case OBJECTS_LOCAL: if ( size > the_region->maximum_segment_size ) 4e0d0: b4aa 005c cmpl %a2@(92),%d2 <== NOT EXECUTED 4e0d4: 6306 blss 4e0dc <== NOT EXECUTED 4e0d6: 7408 moveq #8,%d2 <== NOT EXECUTED 4e0d8: 6000 008a braw 4e164 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void *_Region_Allocate_segment ( Region_Control *the_region, uint32_t size ) { return _Heap_Allocate( &the_region->Memory, size ); 4e0dc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4e0de: 486a 0068 pea %a2@(104) <== NOT EXECUTED 4e0e2: 4eb9 0005 0a54 jsr 50a54 <_Heap_Allocate> <== NOT EXECUTED the_segment = _Region_Allocate_segment( the_region, size ); _Region_Debug_Walk( the_region, 2 ); if ( the_segment ) { 4e0e8: 508f addql #8,%sp <== NOT EXECUTED 4e0ea: 4a80 tstl %d0 <== NOT EXECUTED 4e0ec: 670a beqs 4e0f8 <== NOT EXECUTED the_region->number_of_used_blocks += 1; 4e0ee: 52aa 0064 addql #1,%a2@(100) <== NOT EXECUTED *segment = the_segment; 4e0f2: 4282 clrl %d2 <== NOT EXECUTED 4e0f4: 2880 movel %d0,%a4@ <== NOT EXECUTED 4e0f6: 606c bras 4e164 <== NOT EXECUTED return_status = RTEMS_SUCCESSFUL; } else if ( _Options_Is_no_wait( option_set ) ) { 4e0f8: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 4e0fc: 0800 0000 btst #0,%d0 <== NOT EXECUTED 4e100: 6704 beqs 4e106 <== NOT EXECUTED 4e102: 740d moveq #13,%d2 <== NOT EXECUTED 4e104: 605e bras 4e164 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4e106: 2039 0006 c830 movel 6c830 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4e10c: 5280 addql #1,%d0 <== NOT EXECUTED 4e10e: 23c0 0006 c830 movel %d0,6c830 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * Switch from using the memory allocation mutex to using a * dispatching disabled critical section. We have to do this * because this thread is going to block. */ _Thread_Disable_dispatch(); _RTEMS_Unlock_allocator(); 4e114: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e11a: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED executing->Wait.queue = &the_region->Wait_queue; 4e120: 200a movel %a2,%d0 <== NOT EXECUTED 4e122: 0680 0000 0010 addil #16,%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section ( Thread_queue_Control *the_thread_queue ) { the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; 4e128: 7201 moveq #1,%d1 <== NOT EXECUTED 4e12a: 2541 0040 movel %d1,%a2@(64) <== NOT EXECUTED executing->Wait.id = id; executing->Wait.count = size; 4e12e: 2742 0024 movel %d2,%a3@(36) <== NOT EXECUTED * because this thread is going to block. */ _Thread_Disable_dispatch(); _RTEMS_Unlock_allocator(); executing->Wait.queue = &the_region->Wait_queue; 4e132: 2740 0044 movel %d0,%a3@(68) <== NOT EXECUTED executing->Wait.id = id; 4e136: 2743 0020 movel %d3,%a3@(32) <== NOT EXECUTED executing->Wait.count = size; executing->Wait.return_argument = segment; 4e13a: 274c 0028 movel %a4,%a3@(40) <== NOT EXECUTED _Thread_queue_Enter_critical_section( &the_region->Wait_queue ); _Thread_queue_Enqueue( &the_region->Wait_queue, timeout ); 4e13e: 4879 0005 2690 pea 52690 <_Thread_queue_Timeout> <== NOT EXECUTED 4e144: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4e148: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4e14a: 4eb9 0005 2358 jsr 52358 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 4e150: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED return (rtems_status_code) executing->Wait.return_code; 4e156: 242b 0034 movel %a3@(52),%d2 <== NOT EXECUTED 4e15a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e160: 6010 bras 4e172 <== NOT EXECUTED 4e162: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e164: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e16a: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED 4e170: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 4e172: 2002 movel %d2,%d0 <== NOT EXECUTED 4e174: 4cee 1c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a4 <== NOT EXECUTED 4e17a: 4e5e unlk %fp <== NOT EXECUTED 4e17c: 4e75 rts <== NOT EXECUTED ... 0004e180 : rtems_status_code rtems_region_get_segment_size( Objects_Id id, void *segment, size_t *size ) { 4e180: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4e184: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4e186: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4e18a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4e18c: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED Objects_Locations location; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; register Region_Control *the_region; if ( !segment ) 4e190: 4a83 tstl %d3 <== NOT EXECUTED 4e192: 676e beqs 4e202 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !size ) 4e194: 4a82 tstl %d2 <== NOT EXECUTED 4e196: 676a beqs 4e202 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 4e198: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e19e: 4eb9 0004 ff78 jsr 4ff78 <_API_Mutex_Lock> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Region_Control *_Region_Get ( Objects_Id id, Objects_Locations *location ) { return (Region_Control *) 4e1a4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4e1a8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e1ac: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4e1b2: 4eb9 0005 16d8 jsr 516d8 <_Objects_Get_no_protection> <== NOT EXECUTED 4e1b8: 2040 moveal %d0,%a0 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4e1ba: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4e1be: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e1c4: 670e beqs 4e1d4 <== NOT EXECUTED 4e1c6: 7201 moveq #1,%d1 <== NOT EXECUTED 4e1c8: b280 cmpl %d0,%d1 <== NOT EXECUTED 4e1ca: 6604 bnes 4e1d0 <== NOT EXECUTED 4e1cc: 7404 moveq #4,%d2 <== NOT EXECUTED 4e1ce: 6022 bras 4e1f2 <== NOT EXECUTED 4e1d0: 7419 moveq #25,%d2 <== NOT EXECUTED 4e1d2: 601e bras 4e1f2 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Heap_Size_of_user_area( &the_region->Memory, segment, size ) ) 4e1d4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4e1d6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4e1d8: 4868 0068 pea %a0@(104) <== NOT EXECUTED 4e1dc: 4eb9 0005 1128 jsr 51128 <_Heap_Size_of_user_area> <== NOT EXECUTED 4e1e2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4e1e8: 4a00 tstb %d0 <== NOT EXECUTED 4e1ea: 6704 beqs 4e1f0 <== NOT EXECUTED 4e1ec: 4282 clrl %d2 <== NOT EXECUTED 4e1ee: 6002 bras 4e1f2 <== NOT EXECUTED 4e1f0: 7409 moveq #9,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e1f2: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e1f8: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED 4e1fe: 588f addql #4,%sp <== NOT EXECUTED 4e200: 6002 bras 4e204 <== NOT EXECUTED return return_status; 4e202: 7409 moveq #9,%d2 <== NOT EXECUTED } 4e204: 2002 movel %d2,%d0 <== NOT EXECUTED 4e206: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4e20a: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 4e20e: 4e5e unlk %fp <== NOT EXECUTED 4e210: 4e75 rts <== NOT EXECUTED ... 0004e214 : rtems_status_code rtems_region_ident( rtems_name name, Objects_Id *id ) { 4e214: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 4e218: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4e21c: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 4e222: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e226: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4e22c: 4eb9 0005 1874 jsr 51874 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4e232: 41f9 0006 597e lea 6597e <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 4e238: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4e23c: 4e5e unlk %fp <== NOT EXECUTED 4e23e: 4e75 rts 0004e240 : Objects_Id id, void *segment, size_t size, size_t *old_size ) { 4e240: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4e244: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4e248: 266e 0014 moveal %fp@(20),%a3 <== NOT EXECUTED uint32_t osize; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; Heap_Resize_status status; register Region_Control *the_region; if ( !old_size ) 4e24c: 4a8b tstl %a3 <== NOT EXECUTED 4e24e: 6700 00a0 beqw 4e2f0 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 4e252: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e258: 4eb9 0004 ff78 jsr 4ff78 <_API_Mutex_Lock> <== NOT EXECUTED 4e25e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4e262: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e266: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4e26c: 4eb9 0005 16d8 jsr 516d8 <_Objects_Get_no_protection> <== NOT EXECUTED 4e272: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4e274: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 4e278: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e27e: 670a beqs 4e28a <== NOT EXECUTED 4e280: 7201 moveq #1,%d1 <== NOT EXECUTED 4e282: b280 cmpl %d0,%d1 <== NOT EXECUTED 4e284: 6758 beqs 4e2de <== NOT EXECUTED 4e286: 7419 moveq #25,%d2 <== NOT EXECUTED 4e288: 6056 bras 4e2e0 <== NOT EXECUTED case OBJECTS_LOCAL: _Region_Debug_Walk( the_region, 7 ); status = _Heap_Resize_block( 4e28a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4e28e: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 4e292: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4e296: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4e29a: 486a 0068 pea %a2@(104) <== NOT EXECUTED 4e29e: 4eb9 0005 0f80 jsr 50f80 <_Heap_Resize_block> <== NOT EXECUTED segment, (uint32_t) size, &osize, &avail_size ); *old_size = (uint32_t) osize; 4e2a4: 26ae fff4 movel %fp@(-12),%a3@ <== NOT EXECUTED case OBJECTS_LOCAL: _Region_Debug_Walk( the_region, 7 ); status = _Heap_Resize_block( 4e2a8: 2400 movel %d0,%d2 <== NOT EXECUTED ); *old_size = (uint32_t) osize; _Region_Debug_Walk( the_region, 8 ); if ( status == HEAP_RESIZE_SUCCESSFUL && avail_size > 0 ) 4e2aa: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4e2b0: 6610 bnes 4e2c2 <== NOT EXECUTED 4e2b2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4e2b6: 670a beqs 4e2c2 <== NOT EXECUTED _Region_Process_queue( the_region ); /* unlocks allocator */ 4e2b8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4e2ba: 4eb9 0005 4cb4 jsr 54cb4 <_Region_Process_queue> <== NOT EXECUTED 4e2c0: 602a bras 4e2ec <== NOT EXECUTED else _RTEMS_Unlock_allocator(); 4e2c2: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e2c8: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED return 4e2ce: 588f addql #4,%sp <== NOT EXECUTED 4e2d0: 4a82 tstl %d2 <== NOT EXECUTED 4e2d2: 671e beqs 4e2f2 <== NOT EXECUTED 4e2d4: 7001 moveq #1,%d0 <== NOT EXECUTED 4e2d6: b082 cmpl %d2,%d0 <== NOT EXECUTED 4e2d8: 6616 bnes 4e2f0 <== NOT EXECUTED 4e2da: 740d moveq #13,%d2 <== NOT EXECUTED 4e2dc: 6014 bras 4e2f2 <== NOT EXECUTED 4e2de: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e2e0: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e2e6: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED 4e2ec: 588f addql #4,%sp <== NOT EXECUTED 4e2ee: 6002 bras 4e2f2 <== NOT EXECUTED return return_status; 4e2f0: 7409 moveq #9,%d2 <== NOT EXECUTED } 4e2f2: 2002 movel %d2,%d0 <== NOT EXECUTED 4e2f4: 4cee 0c04 ffe8 moveml %fp@(-24),%d2/%a2-%a3 <== NOT EXECUTED 4e2fa: 4e5e unlk %fp <== NOT EXECUTED 4e2fc: 4e75 rts <== NOT EXECUTED ... 0004e300 : rtems_status_code rtems_region_return_segment( Objects_Id id, void *segment ) { 4e300: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4e304: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4e306: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t size; #endif int status; register Region_Control *the_region; _RTEMS_Lock_allocator(); 4e308: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e30e: 4eb9 0004 ff78 jsr 4ff78 <_API_Mutex_Lock> <== NOT EXECUTED 4e314: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4e318: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e31c: 4879 0006 c6d4 pea 6c6d4 <_Region_Information> <== NOT EXECUTED 4e322: 4eb9 0005 16d8 jsr 516d8 <_Objects_Get_no_protection> <== NOT EXECUTED 4e328: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4e32a: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4e32e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e334: 670e beqs 4e344 <== NOT EXECUTED 4e336: 7201 moveq #1,%d1 <== NOT EXECUTED 4e338: b280 cmpl %d0,%d1 <== NOT EXECUTED 4e33a: 6604 bnes 4e340 <== NOT EXECUTED 4e33c: 7404 moveq #4,%d2 <== NOT EXECUTED 4e33e: 602a bras 4e36a <== NOT EXECUTED 4e340: 7419 moveq #25,%d2 <== NOT EXECUTED 4e342: 6026 bras 4e36a <== NOT EXECUTED RTEMS_INLINE_ROUTINE bool _Region_Free_segment ( Region_Control *the_region, void *the_segment ) { return _Heap_Free( &the_region->Memory, the_segment ); 4e344: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4e348: 486a 0068 pea %a2@(104) <== NOT EXECUTED 4e34c: 4eb9 0005 0b68 jsr 50b68 <_Heap_Free> <== NOT EXECUTED #endif status = _Region_Free_segment( the_region, segment ); _Region_Debug_Walk( the_region, 4 ); if ( !status ) 4e352: 508f addql #8,%sp <== NOT EXECUTED 4e354: 4a00 tstb %d0 <== NOT EXECUTED 4e356: 6710 beqs 4e368 <== NOT EXECUTED return_status = RTEMS_INVALID_ADDRESS; else { the_region->number_of_used_blocks -= 1; 4e358: 53aa 0064 subql #1,%a2@(100) <== NOT EXECUTED _Region_Process_queue(the_region); /* unlocks allocator */ 4e35c: 4282 clrl %d2 <== NOT EXECUTED 4e35e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4e360: 4eb9 0005 4cb4 jsr 54cb4 <_Region_Process_queue> <== NOT EXECUTED 4e366: 600e bras 4e376 <== NOT EXECUTED return RTEMS_SUCCESSFUL; 4e368: 7409 moveq #9,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e36a: 2f39 0006 c8e6 movel 6c8e6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e370: 4eb9 0004 ffdc jsr 4ffdc <_API_Mutex_Unlock> <== NOT EXECUTED return return_status; } 4e376: 2002 movel %d2,%d0 <== NOT EXECUTED 4e378: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4e37c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e380: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 4e382: 4e5e unlk %fp <== NOT EXECUTED 4e384: 4e75 rts <== NOT EXECUTED ... 00044c0c : uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id ) { 44c0c: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 44c10: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 44c14: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 44c18: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 44c1c: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 44c20: 266e 0018 moveal %fp@(24),%a3 <== NOT EXECUTED register Semaphore_Control *the_semaphore; CORE_mutex_Attributes the_mutex_attributes; CORE_semaphore_Attributes the_semaphore_attributes; if ( !rtems_is_name_valid( name ) ) 44c24: 4a85 tstl %d5 <== NOT EXECUTED 44c26: 6606 bnes 44c2e <== NOT EXECUTED 44c28: 7003 moveq #3,%d0 <== NOT EXECUTED 44c2a: 6000 0172 braw 44d9e <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 44c2e: 4a8b tstl %a3 <== NOT EXECUTED 44c30: 6606 bnes 44c38 <== NOT EXECUTED 44c32: 7009 moveq #9,%d0 <== NOT EXECUTED 44c34: 6000 0168 braw 44d9e <== NOT EXECUTED uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id ) { 44c38: 2202 movel %d2,%d1 <== NOT EXECUTED 44c3a: 0281 0000 00c0 andil #192,%d1 <== NOT EXECUTED return RTEMS_NOT_DEFINED; } else #endif if ( _Attributes_Is_inherit_priority( attribute_set ) || 44c40: 6724 beqs 44c66 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Attributes_Is_binary_semaphore( rtems_attribute attribute_set ) { return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_BINARY_SEMAPHORE); 44c42: 7030 moveq #48,%d0 <== NOT EXECUTED 44c44: c082 andl %d2,%d0 <== NOT EXECUTED _Attributes_Is_priority_ceiling( attribute_set ) ) { if ( ! ( (_Attributes_Is_binary_semaphore( attribute_set ) || 44c46: 7610 moveq #16,%d3 <== NOT EXECUTED 44c48: b680 cmpl %d0,%d3 <== NOT EXECUTED 44c4a: 670a beqs 44c56 <== NOT EXECUTED 44c4c: 163c 0020 moveb #32,%d3 <== NOT EXECUTED 44c50: b680 cmpl %d0,%d3 <== NOT EXECUTED 44c52: 6600 0148 bnew 44d9c <== NOT EXECUTED 44c56: 44c2 movew %d2,%ccr <== NOT EXECUTED 44c58: 6600 0142 bnew 44d9c <== NOT EXECUTED _Attributes_Is_priority( attribute_set ) ) ) return RTEMS_NOT_DEFINED; } if ( _Attributes_Is_inherit_priority( attribute_set ) && 44c5c: 0c81 0000 00c0 cmpil #192,%d1 <== NOT EXECUTED 44c62: 6700 0138 beqw 44d9c <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Attributes_Is_counting_semaphore( rtems_attribute attribute_set ) { return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_COUNTING_SEMAPHORE); 44c66: 7630 moveq #48,%d3 <== NOT EXECUTED 44c68: c682 andl %d2,%d3 <== NOT EXECUTED _Attributes_Is_priority_ceiling( attribute_set ) ) return RTEMS_NOT_DEFINED; if ( !_Attributes_Is_counting_semaphore( attribute_set ) && ( count > 1 ) ) 44c6a: 670e beqs 44c7a <== NOT EXECUTED 44c6c: 7001 moveq #1,%d0 <== NOT EXECUTED 44c6e: b084 cmpl %d4,%d0 <== NOT EXECUTED 44c70: 6408 bccs 44c7a <== NOT EXECUTED 44c72: 103c 000a moveb #10,%d0 <== NOT EXECUTED 44c76: 6000 0126 braw 44d9e <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 44c7a: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44c80: 5280 addql #1,%d0 <== NOT EXECUTED 44c82: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * This function allocates a semaphore control block from * the inactive chain of free semaphore control blocks. */ RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Allocate( void ) { return (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information ); 44c88: 4879 0005 6bd8 pea 56bd8 <_Semaphore_Information> <== NOT EXECUTED 44c8e: 4eb9 0004 600c jsr 4600c <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_semaphore = _Semaphore_Allocate(); if ( !the_semaphore ) { 44c94: 588f addql #4,%sp <== NOT EXECUTED 44c96: 2440 moveal %d0,%a2 <== NOT EXECUTED 44c98: 4a80 tstl %d0 <== NOT EXECUTED 44c9a: 660c bnes 44ca8 <== NOT EXECUTED _Thread_Enable_dispatch(); 44c9c: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 44ca2: 7005 moveq #5,%d0 <== NOT EXECUTED 44ca4: 6000 00f8 braw 44d9e <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } #endif the_semaphore->attribute_set = attribute_set; 44ca8: 2542 0010 movel %d2,%a2@(16) <== NOT EXECUTED * If it is not a counting semaphore, then it is either a * simple binary semaphore or a more powerful mutex style binary * semaphore. */ if ( !_Attributes_Is_counting_semaphore( attribute_set ) ) { 44cac: 4a83 tstl %d3 <== NOT EXECUTED 44cae: 6700 009a beqw 44d4a <== NOT EXECUTED CORE_mutex_Status mutex_status; if ( _Attributes_Is_inherit_priority( attribute_set ) ) 44cb2: 0802 0006 btst #6,%d2 <== NOT EXECUTED 44cb6: 6708 beqs 44cc0 <== NOT EXECUTED the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT; 44cb8: 7202 moveq #2,%d1 <== NOT EXECUTED 44cba: 2d41 fff0 movel %d1,%fp@(-16) <== NOT EXECUTED 44cbe: 6014 bras 44cd4 <== NOT EXECUTED else if ( _Attributes_Is_priority_ceiling( attribute_set ) ) 44cc0: 4a02 tstb %d2 <== NOT EXECUTED 44cc2: 6c04 bges 44cc8 <== NOT EXECUTED the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING; 44cc4: 7003 moveq #3,%d0 <== NOT EXECUTED 44cc6: 6008 bras 44cd0 <== NOT EXECUTED else if ( _Attributes_Is_priority( attribute_set ) ) the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY; 44cc8: 44c2 movew %d2,%ccr <== NOT EXECUTED 44cca: 56c0 sne %d0 <== NOT EXECUTED 44ccc: 49c0 extbl %d0 <== NOT EXECUTED 44cce: 5280 addql #1,%d0 <== NOT EXECUTED 44cd0: 2d40 fff0 movel %d0,%fp@(-16) <== NOT EXECUTED else the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_FIFO; if ( _Attributes_Is_binary_semaphore( attribute_set ) ) { 44cd4: 7210 moveq #16,%d1 <== NOT EXECUTED 44cd6: b283 cmpl %d3,%d1 <== NOT EXECUTED 44cd8: 661e bnes 44cf8 <== NOT EXECUTED the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; switch ( the_mutex_attributes.discipline ) { 44cda: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED else the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_FIFO; if ( _Attributes_Is_binary_semaphore( attribute_set ) ) { the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; 44cde: 42ae ffea clrl %fp@(-22) <== NOT EXECUTED switch ( the_mutex_attributes.discipline ) { 44ce2: 7601 moveq #1,%d3 <== NOT EXECUTED 44ce4: b680 cmpl %d0,%d3 <== NOT EXECUTED 44ce6: 6416 bccs 44cfe <== NOT EXECUTED 44ce8: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 44cec: b280 cmpl %d0,%d1 <== NOT EXECUTED 44cee: 6514 bcss 44d04 <== NOT EXECUTED case CORE_MUTEX_DISCIPLINES_PRIORITY: the_mutex_attributes.only_owner_release = FALSE; break; case CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING: case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT: the_mutex_attributes.only_owner_release = TRUE; 44cf0: 7001 moveq #1,%d0 <== NOT EXECUTED 44cf2: 1d40 ffee moveb %d0,%fp@(-18) <== NOT EXECUTED 44cf6: 600c bras 44d04 <== NOT EXECUTED break; } } else { the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_BLOCKS; 44cf8: 7202 moveq #2,%d1 <== NOT EXECUTED 44cfa: 2d41 ffea movel %d1,%fp@(-22) <== NOT EXECUTED the_mutex_attributes.only_owner_release = FALSE; 44cfe: 4203 clrb %d3 <== NOT EXECUTED 44d00: 1d43 ffee moveb %d3,%fp@(-18) <== NOT EXECUTED } the_mutex_attributes.priority_ceiling = priority_ceiling; mutex_status = _CORE_mutex_Initialize( 44d04: 7001 moveq #1,%d0 <== NOT EXECUTED 44d06: b084 cmpl %d4,%d0 <== NOT EXECUTED 44d08: 57c0 seq %d0 <== NOT EXECUTED 44d0a: 49c0 extbl %d0 <== NOT EXECUTED 44d0c: 4480 negl %d0 <== NOT EXECUTED 44d0e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44d10: 486e ffea pea %fp@(-22) <== NOT EXECUTED } else { the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_BLOCKS; the_mutex_attributes.only_owner_release = FALSE; } the_mutex_attributes.priority_ceiling = priority_ceiling; 44d14: 2d6e 0014 fff4 movel %fp@(20),%fp@(-12) <== NOT EXECUTED mutex_status = _CORE_mutex_Initialize( 44d1a: 486a 0014 pea %a2@(20) <== NOT EXECUTED 44d1e: 4eb9 0004 58ec jsr 458ec <_CORE_mutex_Initialize> <== NOT EXECUTED &the_semaphore->Core_control.mutex, &the_mutex_attributes, (count == 1) ? CORE_MUTEX_UNLOCKED : CORE_MUTEX_LOCKED ); if ( mutex_status == CORE_MUTEX_STATUS_CEILING_VIOLATED ) { 44d24: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44d2a: 7206 moveq #6,%d1 <== NOT EXECUTED 44d2c: b280 cmpl %d0,%d1 <== NOT EXECUTED 44d2e: 664a bnes 44d7a <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Semaphore_Free ( Semaphore_Control *the_semaphore ) { _Objects_Free( &_Semaphore_Information, &the_semaphore->Object ); 44d30: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44d32: 4879 0005 6bd8 pea 56bd8 <_Semaphore_Information> <== NOT EXECUTED 44d38: 4eb9 0004 630c jsr 4630c <_Objects_Free> <== NOT EXECUTED _Semaphore_Free( the_semaphore ); _Thread_Enable_dispatch(); 44d3e: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 44d44: 508f addql #8,%sp <== NOT EXECUTED 44d46: 7013 moveq #19,%d0 <== NOT EXECUTED 44d48: 6054 bras 44d9e <== NOT EXECUTED */ the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM; _CORE_semaphore_Initialize( 44d4a: 2f04 movel %d4,%sp@- <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_INVALID_PRIORITY; } } else { if ( _Attributes_Is_priority( attribute_set ) ) the_semaphore_attributes.discipline = CORE_SEMAPHORE_DISCIPLINES_PRIORITY; 44d4c: 44c2 movew %d2,%ccr <== NOT EXECUTED 44d4e: 56c0 sne %d0 <== NOT EXECUTED */ the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM; _CORE_semaphore_Initialize( 44d50: 486e fff8 pea %fp@(-8) <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_INVALID_PRIORITY; } } else { if ( _Attributes_Is_priority( attribute_set ) ) the_semaphore_attributes.discipline = CORE_SEMAPHORE_DISCIPLINES_PRIORITY; 44d54: 49c0 extbl %d0 <== NOT EXECUTED 44d56: 5280 addql #1,%d0 <== NOT EXECUTED /* * This effectively disables limit checking. */ the_semaphore_attributes.maximum_count = 0xFFFFFFFF; 44d58: 76ff moveq #-1,%d3 <== NOT EXECUTED */ the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM; _CORE_semaphore_Initialize( 44d5a: 486a 0014 pea %a2@(20) <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_INVALID_PRIORITY; } } else { if ( _Attributes_Is_priority( attribute_set ) ) the_semaphore_attributes.discipline = CORE_SEMAPHORE_DISCIPLINES_PRIORITY; 44d5e: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED /* * This effectively disables limit checking. */ the_semaphore_attributes.maximum_count = 0xFFFFFFFF; 44d62: 2d43 fff8 movel %d3,%fp@(-8) <== NOT EXECUTED /* * The following are just to make Purify happy. */ the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; 44d66: 42ae ffea clrl %fp@(-22) <== NOT EXECUTED the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM; 44d6a: 42ae fff4 clrl %fp@(-12) <== NOT EXECUTED _CORE_semaphore_Initialize( 44d6e: 4eb9 0004 5bc0 jsr 45bc0 <_CORE_semaphore_Initialize> <== NOT EXECUTED 44d74: dffc 0000 000c addal #12,%sp <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 44d7a: 2079 0005 6bf2 moveal 56bf2 <_Semaphore_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 44d80: 2545 000c movel %d5,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 44d84: 4280 clrl %d0 <== NOT EXECUTED 44d86: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 44d8a: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED &_Semaphore_Information, &the_semaphore->Object, (Objects_Name) name ); *id = the_semaphore->Object.id; 44d8e: 26aa 0008 movel %a2@(8),%a3@ <== NOT EXECUTED the_semaphore->Object.id, name, 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); 44d92: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 44d98: 4280 clrl %d0 <== NOT EXECUTED 44d9a: 6002 bras 44d9e <== NOT EXECUTED return RTEMS_SUCCESSFUL; 44d9c: 700b moveq #11,%d0 <== NOT EXECUTED } 44d9e: 4cee 0c3c ffd0 moveml %fp@(-48),%d2-%d5/%a2-%a3 <== NOT EXECUTED 44da4: 4e5e unlk %fp <== NOT EXECUTED 44da6: 4e75 rts 00044da8 : #endif rtems_status_code rtems_semaphore_delete( rtems_id id ) { 44da8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44dac: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get ( Objects_Id id, Objects_Locations *location ) { return (Semaphore_Control *) 44dae: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44db2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44db6: 4879 0005 6bd8 pea 56bd8 <_Semaphore_Information> <== NOT EXECUTED 44dbc: 4eb9 0004 646c jsr 4646c <_Objects_Get> <== NOT EXECUTED register Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { 44dc2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44dc8: 2440 moveal %d0,%a2 <== NOT EXECUTED 44dca: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44dce: 6704 beqs 44dd4 <== NOT EXECUTED 44dd0: 7004 moveq #4,%d0 <== NOT EXECUTED 44dd2: 606c bras 44e40 <== NOT EXECUTED 44dd4: 7030 moveq #48,%d0 <== NOT EXECUTED 44dd6: c0aa 0010 andl %a2@(16),%d0 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 44dda: 6728 beqs 44e04 <== NOT EXECUTED if ( _CORE_mutex_Is_locked( &the_semaphore->Core_control.mutex ) && 44ddc: 4aaa 0062 tstl %a2@(98) <== NOT EXECUTED 44de0: 6610 bnes 44df2 <== NOT EXECUTED 44de2: 7220 moveq #32,%d1 <== NOT EXECUTED 44de4: b280 cmpl %d0,%d1 <== NOT EXECUTED 44de6: 670a beqs 44df2 <== NOT EXECUTED !_Attributes_Is_simple_binary_semaphore( the_semaphore->attribute_set ) ) { _Thread_Enable_dispatch(); 44de8: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 44dee: 700c moveq #12,%d0 <== NOT EXECUTED 44df0: 604e bras 44e40 <== NOT EXECUTED return RTEMS_RESOURCE_IN_USE; } _CORE_mutex_Flush( 44df2: 4878 0004 pea 4 <== NOT EXECUTED 44df6: 42a7 clrl %sp@- <== NOT EXECUTED 44df8: 486a 0014 pea %a2@(20) <== NOT EXECUTED 44dfc: 4eb9 0004 58e0 jsr 458e0 <_CORE_mutex_Flush> <== NOT EXECUTED 44e02: 6010 bras 44e14 <== NOT EXECUTED &the_semaphore->Core_control.mutex, SEMAPHORE_MP_OBJECT_WAS_DELETED, CORE_MUTEX_WAS_DELETED ); } else { _CORE_semaphore_Flush( 44e04: 4878 0002 pea 2 <== NOT EXECUTED 44e08: 42a7 clrl %sp@- <== NOT EXECUTED 44e0a: 486a 0014 pea %a2@(20) <== NOT EXECUTED 44e0e: 4eb9 0004 5bb4 jsr 45bb4 <_CORE_semaphore_Flush> <== NOT EXECUTED SEMAPHORE_MP_OBJECT_WAS_DELETED, CORE_SEMAPHORE_WAS_DELETED ); } _Objects_Close( &_Semaphore_Information, &the_semaphore->Object ); 44e14: 508f addql #8,%sp <== NOT EXECUTED 44e16: 2e8a movel %a2,%sp@ <== NOT EXECUTED 44e18: 4879 0005 6bd8 pea 56bd8 <_Semaphore_Information> <== NOT EXECUTED 44e1e: 4eb9 0004 6094 jsr 46094 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Semaphore_Free ( Semaphore_Control *the_semaphore ) { _Objects_Free( &_Semaphore_Information, &the_semaphore->Object ); 44e24: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44e26: 4879 0005 6bd8 pea 56bd8 <_Semaphore_Information> <== NOT EXECUTED 44e2c: 4eb9 0004 630c jsr 4630c <_Objects_Free> <== NOT EXECUTED 0, /* Not used */ 0 /* Not used */ ); } #endif _Thread_Enable_dispatch(); 44e32: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 44e38: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44e3e: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 44e40: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 44e44: 4e5e unlk %fp <== NOT EXECUTED 44e46: 4e75 rts 0005d324 : #endif rtems_status_code rtems_semaphore_flush( rtems_id id ) { 5d324: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 5d328: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5d32c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5d330: 4879 0009 2594 pea 92594 <_Semaphore_Information> <== NOT EXECUTED 5d336: 4eb9 0004 a190 jsr 4a190 <_Objects_Get> <== NOT EXECUTED register Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { 5d33c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5d342: 2040 moveal %d0,%a0 <== NOT EXECUTED 5d344: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5d348: 6704 beqs 5d34e <== NOT EXECUTED 5d34a: 7004 moveq #4,%d0 <== NOT EXECUTED 5d34c: 603c bras 5d38a <== NOT EXECUTED 5d34e: 2200 movel %d0,%d1 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 5d350: 7030 moveq #48,%d0 <== NOT EXECUTED 5d352: 0681 0000 0014 addil #20,%d1 <== NOT EXECUTED 5d358: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 5d35c: 6710 beqs 5d36e <== NOT EXECUTED _CORE_mutex_Flush( 5d35e: 4878 0001 pea 1 <== NOT EXECUTED 5d362: 42a7 clrl %sp@- <== NOT EXECUTED 5d364: 2f01 movel %d1,%sp@- <== NOT EXECUTED 5d366: 4eb9 0004 94c0 jsr 494c0 <_CORE_mutex_Flush> <== NOT EXECUTED 5d36c: 600e bras 5d37c <== NOT EXECUTED &the_semaphore->Core_control.mutex, SEND_OBJECT_WAS_DELETED, CORE_MUTEX_STATUS_UNSATISFIED_NOWAIT ); } else { _CORE_semaphore_Flush( 5d36e: 4878 0001 pea 1 <== NOT EXECUTED 5d372: 42a7 clrl %sp@- <== NOT EXECUTED 5d374: 2f01 movel %d1,%sp@- <== NOT EXECUTED 5d376: 4eb9 0004 9794 jsr 49794 <_CORE_semaphore_Flush> <== NOT EXECUTED 5d37c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED &the_semaphore->Core_control.semaphore, SEND_OBJECT_WAS_DELETED, CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT ); } _Thread_Enable_dispatch(); 5d382: 4eb9 0004 a9de jsr 4a9de <_Thread_Enable_dispatch> <== NOT EXECUTED 5d388: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5d38a: 4e5e unlk %fp <== NOT EXECUTED 5d38c: 4e75 rts <== NOT EXECUTED ... 0004e630 : rtems_status_code rtems_semaphore_ident( rtems_name name, uint32_t node, rtems_id *id ) { 4e630: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( &_Semaphore_Information, name, node, id ); 4e634: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4e638: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4e63c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e640: 4879 0006 c710 pea 6c710 <_Semaphore_Information> <== NOT EXECUTED 4e646: 4eb9 0005 1874 jsr 51874 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4e64c: 41f9 0006 597e lea 6597e <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; } 4e652: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4e656: 4e5e unlk %fp <== NOT EXECUTED 4e658: 4e75 rts <== NOT EXECUTED ... 00044e48 : rtems_status_code rtems_semaphore_obtain( rtems_id id, rtems_option option_set, rtems_interval timeout ) { 44e48: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 44e4c: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED Objects_Id id, Objects_Locations *location, ISR_Level *level ) { return (Semaphore_Control *) 44e50: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 44e54: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 44e58: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44e5c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 44e60: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44e62: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED 44e66: 4879 0005 6bd8 pea 56bd8 <_Semaphore_Information> <== NOT EXECUTED 44e6c: 4eb9 0004 641c jsr 4641c <_Objects_Get_isr_disable> <== NOT EXECUTED register Semaphore_Control *the_semaphore; Objects_Locations location; ISR_Level level; the_semaphore = _Semaphore_Get_interrupt_disable( id, &location, &level ); switch ( location ) { 44e72: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44e78: 2240 moveal %d0,%a1 <== NOT EXECUTED 44e7a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44e7e: 6706 beqs 44e86 <== NOT EXECUTED 44e80: 7004 moveq #4,%d0 <== NOT EXECUTED 44e82: 6000 00c0 braw 44f44 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 44e86: 7030 moveq #48,%d0 <== NOT EXECUTED 44e88: c0a9 0010 andl %a1@(16),%d0 <== NOT EXECUTED 44e8c: 6734 beqs 44ec2 <== NOT EXECUTED _CORE_mutex_Seize( 44e8e: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 44e92: 7001 moveq #1,%d0 <== NOT EXECUTED 44e94: b182 eorl %d0,%d2 <== NOT EXECUTED 44e96: 2f04 movel %d4,%sp@- <== NOT EXECUTED 44e98: c082 andl %d2,%d0 <== NOT EXECUTED 44e9a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44e9c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44e9e: 4869 0014 pea %a1@(20) <== NOT EXECUTED 44ea2: 4eb9 0004 5a00 jsr 45a00 <_CORE_mutex_Seize> <== NOT EXECUTED id, ((_Options_Is_no_wait( option_set )) ? FALSE : TRUE), timeout, level ); return _Semaphore_Translate_core_mutex_return_code( 44ea8: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED 44eae: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 44eb2: 4eb9 0004 4fdc jsr 44fdc <_Semaphore_Translate_core_mutex_return_code> <== NOT EXECUTED 44eb8: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 44ebe: 6000 0084 braw 44f44 <== NOT EXECUTED Watchdog_Interval timeout, ISR_Level *level_p ) { Thread_Control *executing; ISR_Level level = *level_p; 44ec2: 222e fff8 movel %fp@(-8),%d1 <== NOT EXECUTED /* disabled when you get here */ executing = _Thread_Executing; 44ec6: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL; 44ecc: 42a8 0034 clrl %a0@(52) <== NOT EXECUTED if ( the_semaphore->count != 0 ) { 44ed0: 2029 005c movel %a1@(92),%d0 <== NOT EXECUTED 44ed4: 670a beqs 44ee0 <== NOT EXECUTED the_semaphore->count -= 1; 44ed6: 5380 subql #1,%d0 <== NOT EXECUTED 44ed8: 2340 005c movel %d0,%a1@(92) <== NOT EXECUTED _ISR_Enable( level ); 44edc: 46c1 movew %d1,%sr <== NOT EXECUTED 44ede: 6052 bras 44f32 <== NOT EXECUTED return; } if ( !wait ) { 44ee0: 0802 0000 btst #0,%d2 <== NOT EXECUTED 44ee4: 670a beqs 44ef0 <== NOT EXECUTED _ISR_Enable( level ); 44ee6: 46c1 movew %d1,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT; 44ee8: 7001 moveq #1,%d0 <== NOT EXECUTED 44eea: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED 44eee: 6042 bras 44f32 <== NOT EXECUTED 44ef0: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44ef6: 5280 addql #1,%d0 <== NOT EXECUTED 44ef8: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section ( Thread_queue_Control *the_thread_queue ) { the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; 44efe: 7001 moveq #1,%d0 <== NOT EXECUTED 44f00: 2340 0044 movel %d0,%a1@(68) <== NOT EXECUTED return; } _Thread_Disable_dispatch(); _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); executing->Wait.queue = &the_semaphore->Wait_queue; 44f04: 2009 movel %a1,%d0 <== NOT EXECUTED 44f06: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED executing->Wait.id = id; 44f0c: 2143 0020 movel %d3,%a0@(32) <== NOT EXECUTED return; } _Thread_Disable_dispatch(); _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); executing->Wait.queue = &the_semaphore->Wait_queue; 44f10: 2140 0044 movel %d0,%a0@(68) <== NOT EXECUTED executing->Wait.id = id; _ISR_Enable( level ); 44f14: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout ); 44f16: 4879 0004 73ec pea 473ec <_Thread_queue_Timeout> <== NOT EXECUTED 44f1c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 44f1e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44f20: 4eb9 0004 70b4 jsr 470b4 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 44f26: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 44f2c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED id, ((_Options_Is_no_wait( option_set )) ? FALSE : TRUE), timeout, &level ); return _Semaphore_Translate_core_semaphore_return_code( 44f32: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED 44f38: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 44f3c: 4eb9 0004 4ff2 jsr 44ff2 <_Semaphore_Translate_core_semaphore_return_code> <== NOT EXECUTED 44f42: 588f addql #4,%sp <== NOT EXECUTED break; } return RTEMS_INVALID_ID; } 44f44: 4cee 001c ffec moveml %fp@(-20),%d2-%d4 <== NOT EXECUTED 44f4a: 4e5e unlk %fp <== NOT EXECUTED 44f4c: 4e75 rts <== NOT EXECUTED ... 00044f50 : #endif rtems_status_code rtems_semaphore_release( rtems_id id ) { 44f50: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44f54: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44f56: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44f58: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get ( Objects_Id id, Objects_Locations *location ) { return (Semaphore_Control *) 44f5c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44f60: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44f62: 4879 0005 6bd8 pea 56bd8 <_Semaphore_Information> <== NOT EXECUTED 44f68: 4eb9 0004 646c jsr 4646c <_Objects_Get> <== NOT EXECUTED Objects_Locations location; CORE_mutex_Status mutex_status; CORE_semaphore_Status semaphore_status; the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { 44f6e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44f74: 2040 moveal %d0,%a0 <== NOT EXECUTED 44f76: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44f7a: 6704 beqs 44f80 <== NOT EXECUTED 44f7c: 7004 moveq #4,%d0 <== NOT EXECUTED 44f7e: 604e bras 44fce <== NOT EXECUTED 44f80: 2200 movel %d0,%d1 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 44f82: 7030 moveq #48,%d0 <== NOT EXECUTED 44f84: 0681 0000 0014 addil #20,%d1 <== NOT EXECUTED 44f8a: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 44f8e: 45f9 0004 6c4e lea 46c4e <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 44f94: 671a beqs 44fb0 <== NOT EXECUTED mutex_status = _CORE_mutex_Surrender( 44f96: 42a7 clrl %sp@- <== NOT EXECUTED 44f98: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44f9a: 2f01 movel %d1,%sp@- <== NOT EXECUTED 44f9c: 4eb9 0004 5aa8 jsr 45aa8 <_CORE_mutex_Surrender> <== NOT EXECUTED 44fa2: 2400 movel %d0,%d2 <== NOT EXECUTED &the_semaphore->Core_control.mutex, id, MUTEX_MP_SUPPORT ); _Thread_Enable_dispatch(); 44fa4: 4e92 jsr %a2@ <== NOT EXECUTED return _Semaphore_Translate_core_mutex_return_code( mutex_status ); 44fa6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44fa8: 4eb9 0004 4fdc jsr 44fdc <_Semaphore_Translate_core_mutex_return_code> <== NOT EXECUTED 44fae: 6018 bras 44fc8 <== NOT EXECUTED } else { semaphore_status = _CORE_semaphore_Surrender( 44fb0: 42a7 clrl %sp@- <== NOT EXECUTED 44fb2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44fb4: 2f01 movel %d1,%sp@- <== NOT EXECUTED 44fb6: 4eb9 0004 5c08 jsr 45c08 <_CORE_semaphore_Surrender> <== NOT EXECUTED 44fbc: 2400 movel %d0,%d2 <== NOT EXECUTED &the_semaphore->Core_control.semaphore, id, MUTEX_MP_SUPPORT ); _Thread_Enable_dispatch(); 44fbe: 4e92 jsr %a2@ <== NOT EXECUTED return 44fc0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44fc2: 4eb9 0004 4ff2 jsr 44ff2 <_Semaphore_Translate_core_semaphore_return_code> <== NOT EXECUTED 44fc8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 44fce: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 44fd2: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 44fd6: 4e5e unlk %fp <== NOT EXECUTED 44fd8: 4e75 rts <== NOT EXECUTED ... 00045514 : */ void rtems_shutdown_executive( uint32_t result ) { 45514: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED if ( _System_state_Current != SYSTEM_STATE_SHUTDOWN ) { 45518: 7004 moveq #4,%d0 <== NOT EXECUTED 4551a: b0b9 0005 6e36 cmpl 56e36 <_System_state_Current>,%d0 <== NOT EXECUTED 45520: 6718 beqs 4553a <== NOT EXECUTED Context_Control *context_p = &context_area; if ( _System_state_Is_up(_System_state_Get ()) ) context_p = &_Thread_Executing->Registers; _Context_Switch( context_p, &_Thread_BSP_context ); 45522: 4879 0005 6c70 pea 56c70 <_Thread_BSP_context> <== NOT EXECUTED 45528: 486e ffcc pea %fp@(-52) <== NOT EXECUTED 4552c: 23c0 0005 6e36 movel %d0,56e36 <_System_state_Current> <== NOT EXECUTED 45532: 4eb9 0004 7eac jsr 47eac <_CPU_Context_switch> <== NOT EXECUTED 45538: 508f addql #8,%sp <== NOT EXECUTED _System_state_Set( SYSTEM_STATE_SHUTDOWN ); _Thread_Stop_multitasking(); } } 4553a: 4e5e unlk %fp <== NOT EXECUTED 4553c: 4e75 rts <== NOT EXECUTED ... 00045ad8 : RTEMS_API_Control *api; ASR_Information *asr; /* XXX normalize mode */ executing = _Thread_Executing; api = (RTEMS_API_Control*)executing->API_Extensions[ THREAD_API_RTEMS ]; 45ad8: 2079 0005 8cfa moveal 58cfa <_Thread_Executing>,%a0 <== NOT EXECUTED 45ade: 2039 0005 8c3c movel 58c3c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED rtems_status_code rtems_signal_catch( rtems_asr_entry asr_handler, rtems_mode mode_set ) { 45ae4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED RTEMS_API_Control *api; ASR_Information *asr; /* XXX normalize mode */ executing = _Thread_Executing; api = (RTEMS_API_Control*)executing->API_Extensions[ THREAD_API_RTEMS ]; 45ae8: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED rtems_status_code rtems_signal_catch( rtems_asr_entry asr_handler, rtems_mode mode_set ) { 45aec: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 45af0: 5280 addql #1,%d0 <== NOT EXECUTED 45af2: 23c0 0005 8c3c movel %d0,58c3c <_Thread_Dispatch_disable_level> <== NOT EXECUTED asr = &api->Signal; _Thread_Disable_dispatch(); /* cannot reschedule while */ /* the thread is inconsistent */ if ( !_ASR_Is_null_handler( asr_handler ) ) { 45af8: 4a81 tstl %d1 <== NOT EXECUTED 45afa: 670c beqs 45b08 <== NOT EXECUTED asr->mode_set = mode_set; asr->handler = asr_handler; 45afc: 2141 000a movel %d1,%a0@(10) <== NOT EXECUTED _Thread_Disable_dispatch(); /* cannot reschedule while */ /* the thread is inconsistent */ if ( !_ASR_Is_null_handler( asr_handler ) ) { asr->mode_set = mode_set; 45b00: 216e 000c 000e movel %fp@(12),%a0@(14) <== NOT EXECUTED 45b06: 601a bras 45b22 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _ASR_Initialize ( ASR_Information *information ) { information->is_enabled = true; 45b08: 7001 moveq #1,%d0 <== NOT EXECUTED 45b0a: 1140 0008 moveb %d0,%a0@(8) <== NOT EXECUTED information->handler = NULL; information->mode_set = RTEMS_DEFAULT_MODES; information->signals_posted = 0; information->signals_pending = 0; information->nest_level = 0; 45b0e: 42a8 001a clrl %a0@(26) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _ASR_Initialize ( ASR_Information *information ) { information->is_enabled = true; information->handler = NULL; 45b12: 42a8 000a clrl %a0@(10) <== NOT EXECUTED information->mode_set = RTEMS_DEFAULT_MODES; 45b16: 42a8 000e clrl %a0@(14) <== NOT EXECUTED information->signals_posted = 0; 45b1a: 42a8 0012 clrl %a0@(18) <== NOT EXECUTED information->signals_pending = 0; 45b1e: 42a8 0016 clrl %a0@(22) <== NOT EXECUTED asr->handler = asr_handler; } else _ASR_Initialize( asr ); _Thread_Enable_dispatch(); 45b22: 4eb9 0004 79b6 jsr 479b6 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45b28: 4e5e unlk %fp <== NOT EXECUTED 45b2a: 4280 clrl %d0 <== NOT EXECUTED 45b2c: 4e75 rts <== NOT EXECUTED ... 0004e81c : rtems_status_code rtems_signal_send( Objects_Id id, rtems_signal_set signal_set ) { 4e81c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4e820: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4e822: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; ASR_Information *asr; if ( !signal_set ) 4e826: 6606 bnes 4e82e <== NOT EXECUTED 4e828: 700a moveq #10,%d0 <== NOT EXECUTED 4e82a: 6000 0084 braw 4e8b0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; the_thread = _Thread_Get( id, &location ); 4e82e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4e832: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e836: 4eb9 0005 1f1c jsr 51f1c <_Thread_Get> <== NOT EXECUTED switch ( location ) { 4e83c: 508f addql #8,%sp <== NOT EXECUTED ASR_Information *asr; if ( !signal_set ) return RTEMS_INVALID_NUMBER; the_thread = _Thread_Get( id, &location ); 4e83e: 2240 moveal %d0,%a1 <== NOT EXECUTED switch ( location ) { 4e840: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4e844: 6704 beqs 4e84a <== NOT EXECUTED 4e846: 7004 moveq #4,%d0 <== NOT EXECUTED 4e848: 6066 bras 4e8b0 <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; 4e84a: 2069 010c moveal %a1@(268),%a0 <== NOT EXECUTED asr = &api->Signal; if ( ! _ASR_Is_null_handler( asr->handler ) ) { 4e84e: 4aa8 000a tstl %a0@(10) <== NOT EXECUTED 4e852: 6754 beqs 4e8a8 <== NOT EXECUTED if ( asr->is_enabled ) { 4e854: 4a28 0008 tstb %a0@(8) <== NOT EXECUTED 4e858: 6732 beqs 4e88c <== NOT EXECUTED rtems_signal_set *signal_set ) { ISR_Level _level; _ISR_Disable( _level ); 4e85a: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 4e860: 40c0 movew %sr,%d0 <== NOT EXECUTED 4e862: 8280 orl %d0,%d1 <== NOT EXECUTED 4e864: 46c1 movew %d1,%sr <== NOT EXECUTED *signal_set |= signals; 4e866: 85a8 0012 orl %d2,%a0@(18) <== NOT EXECUTED _ISR_Enable( _level ); 4e86a: 46c0 movew %d0,%sr <== NOT EXECUTED _ASR_Post_signals( signal_set, &asr->signals_posted ); the_thread->do_post_task_switch_extension = true; if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) 4e86c: 2039 0006 c8ce movel 6c8ce <_ISR_Nest_level>,%d0 <== NOT EXECUTED if ( ! _ASR_Is_null_handler( asr->handler ) ) { if ( asr->is_enabled ) { _ASR_Post_signals( signal_set, &asr->signals_posted ); the_thread->do_post_task_switch_extension = true; 4e872: 7201 moveq #1,%d1 <== NOT EXECUTED 4e874: 1341 0075 moveb %d1,%a1@(117) <== NOT EXECUTED if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) 4e878: 4a80 tstl %d0 <== NOT EXECUTED 4e87a: 6722 beqs 4e89e <== NOT EXECUTED 4e87c: b3f9 0006 c8ee cmpal 6c8ee <_Thread_Executing>,%a1 <== NOT EXECUTED 4e882: 661a bnes 4e89e <== NOT EXECUTED _ISR_Signals_to_thread_executing = TRUE; 4e884: 13c1 0006 c97c moveb %d1,6c97c <_ISR_Signals_to_thread_executing> <== NOT EXECUTED 4e88a: 6012 bras 4e89e <== NOT EXECUTED rtems_signal_set *signal_set ) { ISR_Level _level; _ISR_Disable( _level ); 4e88c: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 4e892: 40c0 movew %sr,%d0 <== NOT EXECUTED 4e894: 8280 orl %d0,%d1 <== NOT EXECUTED 4e896: 46c1 movew %d1,%sr <== NOT EXECUTED *signal_set |= signals; 4e898: 85a8 0016 orl %d2,%a0@(22) <== NOT EXECUTED _ISR_Enable( _level ); 4e89c: 46c0 movew %d0,%sr <== NOT EXECUTED } else { _ASR_Post_signals( signal_set, &asr->signals_pending ); } _Thread_Enable_dispatch(); 4e89e: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4e8a4: 4280 clrl %d0 <== NOT EXECUTED 4e8a6: 6008 bras 4e8b0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 4e8a8: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4e8ae: 700b moveq #11,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4e8b0: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4e8b4: 4e5e unlk %fp <== NOT EXECUTED 4e8b6: 4e75 rts 00043c28 : * rtems_stack_checker_Begin_extension */ void rtems_stack_checker_begin_extension( Thread_Control *the_thread ) { 43c28: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43c2c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED Stack_check_Control *the_pattern; if ( the_thread->Object.id == 0 ) /* skip system tasks */ 43c30: 4aa8 0008 tstl %a0@(8) <== NOT EXECUTED 43c34: 671e beqs 43c54 <== NOT EXECUTED return; the_pattern = Stack_check_Get_pattern_area(&the_thread->Start.Initial_stack); *the_pattern = Stack_check_Pattern; 43c36: 4878 0010 pea 10 <== NOT EXECUTED 43c3a: 4879 0009 24c4 pea 924c4 <== NOT EXECUTED 43c40: 2068 00c4 moveal %a0@(196),%a0 <== NOT EXECUTED 43c44: 5088 addql #8,%a0 <== NOT EXECUTED 43c46: 2f08 movel %a0,%sp@- <== NOT EXECUTED 43c48: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED 43c4e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 43c54: 4e5e unlk %fp <== NOT EXECUTED 43c56: 4e75 rts 00044008 : */ bool rtems_stack_checker_create_extension( Thread_Control *running, Thread_Control *the_thread ) { 44008: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4400c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4400e: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Stack_check_Initialize(); 44012: 4eb9 0004 3f8c jsr 43f8c <== NOT EXECUTED if (the_thread) 44018: 4a8a tstl %a2 <== NOT EXECUTED 4401a: 6718 beqs 44034 <== NOT EXECUTED Stack_check_Dope_stack(&the_thread->Start.Initial_stack); 4401c: 2f2a 00c0 movel %a2@(192),%sp@- <== NOT EXECUTED 44020: 4878 00a5 pea a5 <== NOT EXECUTED 44024: 2f2a 00c4 movel %a2@(196),%sp@- <== NOT EXECUTED 44028: 4eb9 0006 a54c jsr 6a54c <== NOT EXECUTED 4402e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return true; } 44034: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 44038: 4e5e unlk %fp <== NOT EXECUTED 4403a: 7001 moveq #1,%d0 <== NOT EXECUTED 4403c: 4e75 rts <== NOT EXECUTED ... 00043e96 : /* * Check if blown */ bool rtems_stack_checker_is_blown( void ) { Stack_Control *the_stack = &_Thread_Executing->Start.Initial_stack; 43e96: 2079 0009 271e moveal 9271e <_Thread_Executing>,%a0 <== NOT EXECUTED ) { void *sp = __builtin_frame_address(0); #if defined(__GNUC__) if ( sp < the_stack->area ) { 43e9c: 2268 00c4 moveal %a0@(196),%a1 <== NOT EXECUTED /* * Check if blown */ bool rtems_stack_checker_is_blown( void ) { 43ea0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43ea4: 2f02 movel %d2,%sp@- <== NOT EXECUTED ) { void *sp = __builtin_frame_address(0); #if defined(__GNUC__) if ( sp < the_stack->area ) { 43ea6: b3ce cmpal %fp,%a1 <== NOT EXECUTED 43ea8: 6304 blss 43eae <== NOT EXECUTED 43eaa: 4202 clrb %d2 <== NOT EXECUTED 43eac: 600e bras 43ebc <== NOT EXECUTED 43eae: 2009 movel %a1,%d0 <== NOT EXECUTED 43eb0: d0a8 00c0 addl %a0@(192),%d0 <== NOT EXECUTED 43eb4: b08e cmpl %fp,%d0 <== NOT EXECUTED 43eb6: 54c0 scc %d0 <== NOT EXECUTED 43eb8: 2400 movel %d0,%d2 <== NOT EXECUTED 43eba: 4482 negl %d2 <== NOT EXECUTED /* * The stack checker must be initialized before the pattern is there * to check. */ if ( Stack_check_Initialized ) { 43ebc: 4ab9 0007 f01c tstl 7f01c <== NOT EXECUTED 43ec2: 6604 bnes 43ec8 <== NOT EXECUTED 43ec4: 7001 moveq #1,%d0 <== NOT EXECUTED 43ec6: 6020 bras 43ee8 <== NOT EXECUTED pattern_ok = (!memcmp( 43ec8: 4878 0010 pea 10 <== NOT EXECUTED 43ecc: 4879 0009 24c4 pea 924c4 <== NOT EXECUTED 43ed2: 4869 0008 pea %a1@(8) <== NOT EXECUTED 43ed6: 4eb9 0006 a364 jsr 6a364 <== NOT EXECUTED 43edc: 4a80 tstl %d0 <== NOT EXECUTED 43ede: 57c0 seq %d0 <== NOT EXECUTED 43ee0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43ee6: 4480 negl %d0 <== NOT EXECUTED } /* * The Stack Pointer and the Pattern Area are OK so return false. */ if ( sp_ok && pattern_ok ) 43ee8: 4a02 tstb %d2 <== NOT EXECUTED 43eea: 6708 beqs 43ef4 <== NOT EXECUTED 43eec: 4a00 tstb %d0 <== NOT EXECUTED 43eee: 6704 beqs 43ef4 <== NOT EXECUTED 43ef0: 4200 clrb %d0 <== NOT EXECUTED 43ef2: 6018 bras 43f0c <== NOT EXECUTED return false; /* * Let's report as much as we can. */ Stack_check_report_blown_task( _Thread_Executing, pattern_ok ); 43ef4: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 43efa: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43efc: 2f39 0009 271e movel 9271e <_Thread_Executing>,%sp@- <== NOT EXECUTED 43f02: 4eb9 0004 3e28 jsr 43e28 <== NOT EXECUTED 43f08: 508f addql #8,%sp <== NOT EXECUTED 43f0a: 7001 moveq #1,%d0 <== NOT EXECUTED return true; } 43f0c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 43f10: 4e5e unlk %fp <== NOT EXECUTED 43f12: 4e75 rts 00043e10 : void rtems_stack_checker_report_usage( void ) { 43e10: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_stack_checker_report_usage_with_plugin( NULL, printk_plugin ); 43e14: 4879 0004 65dc pea 465dc <== NOT EXECUTED 43e1a: 42a7 clrl %sp@- <== NOT EXECUTED 43e1c: 4eb9 0004 3dac jsr 43dac <== NOT EXECUTED 43e22: 508f addql #8,%sp <== NOT EXECUTED } 43e24: 4e5e unlk %fp <== NOT EXECUTED 43e26: 4e75 rts 00043dac : void rtems_stack_checker_report_usage_with_plugin( void *context, rtems_printk_plugin_t print ) { 43dac: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43db0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43db2: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 43db6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 43db8: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED print_context = context; print_handler = print; (*print)( context, "Stack usage by thread\n"); 43dbc: 4879 0007 81fc pea 781fc <== NOT EXECUTED void rtems_stack_checker_report_usage_with_plugin( void *context, rtems_printk_plugin_t print ) { print_context = context; 43dc2: 23c2 0007 f020 movel %d2,7f020 <== NOT EXECUTED print_handler = print; (*print)( context, "Stack usage by thread\n"); 43dc8: 2f02 movel %d2,%sp@- <== NOT EXECUTED void *context, rtems_printk_plugin_t print ) { print_context = context; print_handler = print; 43dca: 23ca 0007 f024 movel %a2,7f024 <== NOT EXECUTED (*print)( context, "Stack usage by thread\n"); 43dd0: 4e92 jsr %a2@ <== NOT EXECUTED (*print)( context, 43dd2: 4879 0007 8213 pea 78213 <== NOT EXECUTED 43dd8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 43dda: 4e92 jsr %a2@ <== NOT EXECUTED " ID NAME LOW HIGH CURRENT AVAILABLE USED\n" ); /* iterate over all threads and dump the usage */ rtems_iterate_over_all_threads( Stack_check_Dump_threads_usage ); 43ddc: 4879 0004 3c8a pea 43c8a <== NOT EXECUTED 43de2: 4eb9 0004 9bec jsr 49bec <== NOT EXECUTED /* dump interrupt stack info if any */ Stack_check_Dump_threads_usage((Thread_Control *) -1); 43de8: 4878 ffff pea ffffffff <== NOT EXECUTED 43dec: 4eb9 0004 3c8a jsr 43c8a <== NOT EXECUTED print_context = NULL; print_handler = NULL; } 43df2: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 43df6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED /* dump interrupt stack info if any */ Stack_check_Dump_threads_usage((Thread_Control *) -1); print_context = NULL; print_handler = NULL; 43dfa: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED } 43e00: 4e5e unlk %fp <== NOT EXECUTED rtems_iterate_over_all_threads( Stack_check_Dump_threads_usage ); /* dump interrupt stack info if any */ Stack_check_Dump_threads_usage((Thread_Control *) -1); print_context = NULL; 43e02: 42b9 0007 f020 clrl 7f020 <== NOT EXECUTED print_handler = NULL; 43e08: 42b9 0007 f024 clrl 7f024 <== NOT EXECUTED } 43e0e: 4e75 rts 00043f14 : */ void rtems_stack_checker_switch_extension( Thread_Control *running, Thread_Control *heir ) { 43f14: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43f18: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43f1a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Stack_Control *the_stack = &running->Start.Initial_stack; void *pattern; bool sp_ok; bool pattern_ok = true; pattern = (void *) Stack_check_Get_pattern_area(the_stack)->pattern; 43f1e: 206a 00c4 moveal %a2@(196),%a0 <== NOT EXECUTED */ void rtems_stack_checker_switch_extension( Thread_Control *running, Thread_Control *heir ) { 43f22: 2f02 movel %d2,%sp@- <== NOT EXECUTED ) { void *sp = __builtin_frame_address(0); #if defined(__GNUC__) if ( sp < the_stack->area ) { 43f24: b1ce cmpal %fp,%a0 <== NOT EXECUTED 43f26: 6304 blss 43f2c <== NOT EXECUTED 43f28: 4202 clrb %d2 <== NOT EXECUTED 43f2a: 600e bras 43f3a <== NOT EXECUTED 43f2c: 2008 movel %a0,%d0 <== NOT EXECUTED 43f2e: d0aa 00c0 addl %a2@(192),%d0 <== NOT EXECUTED 43f32: b08e cmpl %fp,%d0 <== NOT EXECUTED 43f34: 54c0 scc %d0 <== NOT EXECUTED 43f36: 2400 movel %d0,%d2 <== NOT EXECUTED 43f38: 4482 negl %d2 <== NOT EXECUTED /* * Check for an out of bounds stack pointer or an overwrite */ sp_ok = Stack_check_Frame_pointer_in_range( the_stack ); pattern_ok = (!memcmp( pattern, 43f3a: 4878 0010 pea 10 <== NOT EXECUTED 43f3e: 4879 0009 24c4 pea 924c4 <== NOT EXECUTED 43f44: 4868 0008 pea %a0@(8) <== NOT EXECUTED 43f48: 4eb9 0006 a364 jsr 6a364 <== NOT EXECUTED 43f4e: 4a80 tstl %d0 <== NOT EXECUTED 43f50: 57c0 seq %d0 <== NOT EXECUTED 43f52: 4480 negl %d0 <== NOT EXECUTED 43f54: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43f5a: 1200 moveb %d0,%d1 <== NOT EXECUTED (void *) Stack_check_Pattern.pattern, PATTERN_SIZE_BYTES)); if ( !sp_ok || !pattern_ok ) { 43f5c: 4a02 tstb %d2 <== NOT EXECUTED 43f5e: 6704 beqs 43f64 <== NOT EXECUTED 43f60: 4a00 tstb %d0 <== NOT EXECUTED 43f62: 661c bnes 43f80 <== NOT EXECUTED Stack_check_report_blown_task( running, pattern_ok ); 43f64: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED 43f68: 4280 clrl %d0 <== NOT EXECUTED 43f6a: 1001 moveb %d1,%d0 <== NOT EXECUTED } } 43f6c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 43f70: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED pattern_ok = (!memcmp( pattern, (void *) Stack_check_Pattern.pattern, PATTERN_SIZE_BYTES)); if ( !sp_ok || !pattern_ok ) { Stack_check_report_blown_task( running, pattern_ok ); 43f74: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED } } 43f78: 4e5e unlk %fp <== NOT EXECUTED pattern_ok = (!memcmp( pattern, (void *) Stack_check_Pattern.pattern, PATTERN_SIZE_BYTES)); if ( !sp_ok || !pattern_ok ) { Stack_check_report_blown_task( running, pattern_ok ); 43f7a: 4ef9 0004 3e28 jmp 43e28 <== NOT EXECUTED } } 43f80: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 43f84: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 43f88: 4e5e unlk %fp <== NOT EXECUTED 43f8a: 4e75 rts 00041e6c : const char * rtems_status_text( rtems_status_code status ) { 41e6c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return rtems_assoc_name_by_local(rtems_status_assoc, status); 41e70: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 41e74: 4879 0005 3f8c pea 53f8c <== NOT EXECUTED 41e7a: 4eb9 0004 8b3c jsr 48b3c <== NOT EXECUTED } 41e80: 4e5e unlk %fp <== NOT EXECUTED 41e82: 4e75 rts 00045008 : size_t stack_size, rtems_mode initial_modes, rtems_attribute attribute_set, Objects_Id *id ) { 45008: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4500c: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 45010: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 45014: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 45018: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED 4501c: 282e 0018 movel %fp@(24),%d4 <== NOT EXECUTED 45020: 286e 001c moveal %fp@(28),%a4 <== NOT EXECUTED Priority_Control core_priority; RTEMS_API_Control *api; ASR_Information *asr; if ( !id ) 45024: 4a8c tstl %a4 <== NOT EXECUTED 45026: 6606 bnes 4502e <== NOT EXECUTED 45028: 7009 moveq #9,%d0 <== NOT EXECUTED 4502a: 6000 00fc braw 45128 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !rtems_is_name_valid( name ) ) 4502e: 4a8b tstl %a3 <== NOT EXECUTED 45030: 6606 bnes 45038 <== NOT EXECUTED 45032: 7003 moveq #3,%d0 <== NOT EXECUTED 45034: 6000 00f2 braw 45128 <== NOT EXECUTED /* * Validate the RTEMS API priority and convert it to the core priority range. */ if ( !_Attributes_Is_system_task( the_attribute_set ) ) { 45038: 4a44 tstw %d4 <== NOT EXECUTED 4503a: 6d1e blts 4505a <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid ( rtems_task_priority the_priority ) { return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) && 4503c: 4a83 tstl %d3 <== NOT EXECUTED 4503e: 6714 beqs 45054 <== NOT EXECUTED 45040: 4280 clrl %d0 <== NOT EXECUTED 45042: 1039 0005 5192 moveb 55192 ,%d0 <== NOT EXECUTED 45048: b083 cmpl %d3,%d0 <== NOT EXECUTED 4504a: 54c0 scc %d0 <== NOT EXECUTED 4504c: 49c0 extbl %d0 <== NOT EXECUTED 4504e: 4480 negl %d0 <== NOT EXECUTED if ( !_RTEMS_tasks_Priority_is_valid( initial_priority ) ) 45050: 4a00 tstb %d0 <== NOT EXECUTED 45052: 6606 bnes 4505a <== NOT EXECUTED 45054: 7013 moveq #19,%d0 <== NOT EXECUTED 45056: 6000 00d0 braw 45128 <== NOT EXECUTED */ /* * Lock the allocator mutex for protection */ _RTEMS_Lock_allocator(); 4505a: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45060: 4eb9 0004 5810 jsr 45810 <_API_Mutex_Lock> <== NOT EXECUTED * This function allocates a task control block from * the inactive chain of free task control blocks. */ RTEMS_INLINE_ROUTINE Thread_Control *_RTEMS_tasks_Allocate( void ) { return (Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information ); 45066: 4879 0005 6c14 pea 56c14 <_RTEMS_tasks_Information> <== NOT EXECUTED 4506c: 4eb9 0004 600c jsr 4600c <_Objects_Allocate> <== NOT EXECUTED * the event of an error. */ the_thread = _RTEMS_tasks_Allocate(); if ( !the_thread ) { 45072: 508f addql #8,%sp <== NOT EXECUTED 45074: 2440 moveal %d0,%a2 <== NOT EXECUTED 45076: 4a80 tstl %d0 <== NOT EXECUTED 45078: 6614 bnes 4508e <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4507a: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45080: 4eb9 0004 5874 jsr 45874 <_API_Mutex_Unlock> <== NOT EXECUTED 45086: 588f addql #4,%sp <== NOT EXECUTED 45088: 7005 moveq #5,%d0 <== NOT EXECUTED 4508a: 6000 009c braw 45128 <== NOT EXECUTED /* * Initialize the core thread for this task. */ status = _Thread_Initialize( 4508e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45090: 7007 moveq #7,%d0 <== NOT EXECUTED 45092: c082 andl %d2,%d0 <== NOT EXECUTED 45094: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45096: 7a09 moveq #9,%d5 <== NOT EXECUTED 45098: 2202 movel %d2,%d1 <== NOT EXECUTED 4509a: 42a7 clrl %sp@- <== NOT EXECUTED 4509c: eaa9 lsrl %d5,%d1 <== NOT EXECUTED 4509e: 1a3c 0001 moveb #1,%d5 <== NOT EXECUTED 450a2: ca81 andl %d1,%d5 <== NOT EXECUTED 450a4: 2002 movel %d2,%d0 <== NOT EXECUTED 450a6: 2f05 movel %d5,%sp@- <== NOT EXECUTED 450a8: 7201 moveq #1,%d1 <== NOT EXECUTED 450aa: e088 lsrl #8,%d0 <== NOT EXECUTED 450ac: b380 eorl %d1,%d0 <== NOT EXECUTED 450ae: 7a01 moveq #1,%d5 <== NOT EXECUTED 450b0: ca80 andl %d0,%d5 <== NOT EXECUTED 450b2: 2f05 movel %d5,%sp@- <== NOT EXECUTED 450b4: 7001 moveq #1,%d0 <== NOT EXECUTED 450b6: c084 andl %d4,%d0 <== NOT EXECUTED 450b8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 450ba: 47f9 0004 5874 lea 45874 <_API_Mutex_Unlock>,%a3 <== NOT EXECUTED 450c0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 450c2: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 450c6: 42a7 clrl %sp@- <== NOT EXECUTED 450c8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 450ca: 4879 0005 6c14 pea 56c14 <_RTEMS_tasks_Information> <== NOT EXECUTED 450d0: 4eb9 0004 6d0c jsr 46d0c <_Thread_Initialize> <== NOT EXECUTED NULL, /* no budget algorithm callout */ _Modes_Get_interrupt_level(initial_modes), (Objects_Name) name ); if ( !status ) { 450d6: dffc 0000 002c addal #44,%sp <== NOT EXECUTED 450dc: 4a00 tstb %d0 <== NOT EXECUTED 450de: 6626 bnes 45106 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _RTEMS_tasks_Free ( Thread_Control *the_task ) { _Objects_Free( 450e0: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 450e4: 4eb9 0004 6390 jsr 46390 <_Objects_Get_information_id> <== NOT EXECUTED 450ea: 2f0a movel %a2,%sp@- <== NOT EXECUTED 450ec: 2f00 movel %d0,%sp@- <== NOT EXECUTED 450ee: 4eb9 0004 630c jsr 4630c <_Objects_Free> <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( is_global ) _Objects_MP_Free_global_object( the_global_object ); #endif _RTEMS_tasks_Free( the_thread ); _RTEMS_Unlock_allocator(); 450f4: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 450fa: 4e93 jsr %a3@ <== NOT EXECUTED 450fc: 700d moveq #13,%d0 <== NOT EXECUTED 450fe: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45104: 6022 bras 45128 <== NOT EXECUTED } api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; asr = &api->Signal; asr->is_enabled = _Modes_Is_asr_disabled(initial_modes) ? false : true; 45106: 720a moveq #10,%d1 <== NOT EXECUTED 45108: 206a 010c moveal %a2@(268),%a0 <== NOT EXECUTED 4510c: e2aa lsrl %d1,%d2 <== NOT EXECUTED 4510e: 7a01 moveq #1,%d5 <== NOT EXECUTED *id = the_thread->Object.id; 45110: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED } api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; asr = &api->Signal; asr->is_enabled = _Modes_Is_asr_disabled(initial_modes) ? false : true; 45114: bb82 eorl %d5,%d2 <== NOT EXECUTED 45116: c485 andl %d5,%d2 <== NOT EXECUTED 45118: 1142 0008 moveb %d2,%a0@(8) <== NOT EXECUTED ); } #endif _RTEMS_Unlock_allocator(); 4511c: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45122: 4e93 jsr %a3@ <== NOT EXECUTED 45124: 588f addql #4,%sp <== NOT EXECUTED 45126: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45128: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4512e: 4e5e unlk %fp <== NOT EXECUTED 45130: 4e75 rts <== NOT EXECUTED ... 00045134 : */ rtems_status_code rtems_task_delete( Objects_Id id ) { 45134: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 45138: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; Objects_Information *the_information; _RTEMS_Lock_allocator(); 4513c: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45142: 4eb9 0004 5810 jsr 45810 <_API_Mutex_Lock> <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); 45148: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4514c: 49f9 0004 5874 lea 45874 <_API_Mutex_Unlock>,%a4 <== NOT EXECUTED 45152: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45156: 4eb9 0004 6c78 jsr 46c78 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 4515c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED Objects_Locations location; Objects_Information *the_information; _RTEMS_Lock_allocator(); the_thread = _Thread_Get( id, &location ); 45162: 2640 moveal %d0,%a3 <== NOT EXECUTED switch ( location ) { 45164: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45168: 663e bnes 451a8 <== NOT EXECUTED case OBJECTS_LOCAL: the_information = _Objects_Get_information_id( the_thread->Object.id ); 4516a: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 4516e: 45f9 0004 6390 lea 46390 <_Objects_Get_information_id>,%a2 <== NOT EXECUTED 45174: 4e92 jsr %a2@ <== NOT EXECUTED 0 /* Not used */ ); } #endif _Thread_Close( the_information, the_thread ); 45176: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45178: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4517a: 4eb9 0004 6938 jsr 46938 <_Thread_Close> <== NOT EXECUTED 45180: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 45184: 4e92 jsr %a2@ <== NOT EXECUTED 45186: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45188: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4518a: 4eb9 0004 630c jsr 4630c <_Objects_Free> <== NOT EXECUTED _RTEMS_tasks_Free( the_thread ); _RTEMS_Unlock_allocator(); 45190: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45196: 4e94 jsr %a4@ <== NOT EXECUTED _Thread_Enable_dispatch(); 45198: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED 4519e: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 451a4: 4280 clrl %d0 <== NOT EXECUTED 451a6: 600c bras 451b4 <== NOT EXECUTED case OBJECTS_ERROR: break; } _RTEMS_Unlock_allocator(); 451a8: 2f39 0005 6d5a movel 56d5a <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 451ae: 4e94 jsr %a4@ <== NOT EXECUTED 451b0: 588f addql #4,%sp <== NOT EXECUTED 451b2: 7004 moveq #4,%d0 <== NOT EXECUTED return RTEMS_INVALID_ID; } 451b4: 4cee 1c00 fff0 moveml %fp@(-16),%a2-%a4 <== NOT EXECUTED 451ba: 4e5e unlk %fp <== NOT EXECUTED 451bc: 4e75 rts <== NOT EXECUTED ... 000466c4 : rtems_status_code rtems_task_get_note( Objects_Id id, uint32_t notepad, uint32_t *note ) { 466c4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 466c8: 2f0a movel %a2,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 466ca: 2079 0005 a43e moveal 5a43e <_Configuration_Table>,%a0 <== NOT EXECUTED rtems_status_code rtems_task_get_note( Objects_Id id, uint32_t notepad, uint32_t *note ) { 466d0: 2f02 movel %d2,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 466d2: 2068 003e moveal %a0@(62),%a0 <== NOT EXECUTED rtems_status_code rtems_task_get_note( Objects_Id id, uint32_t notepad, uint32_t *note ) { 466d6: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 466da: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 466de: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 466e2: 4a28 0004 tstb %a0@(4) <== NOT EXECUTED 466e6: 6604 bnes 466ec <== NOT EXECUTED 466e8: 7016 moveq #22,%d0 <== NOT EXECUTED 466ea: 605c bras 46748 <== NOT EXECUTED return RTEMS_NOT_CONFIGURED; if ( !note ) 466ec: 4a8a tstl %a2 <== NOT EXECUTED 466ee: 6604 bnes 466f4 <== NOT EXECUTED 466f0: 7009 moveq #9,%d0 <== NOT EXECUTED 466f2: 6054 bras 46748 <== NOT EXECUTED /* * NOTE: There is no check for < RTEMS_NOTEPAD_FIRST because that would * be checking an unsigned number for being negative. */ if ( notepad > RTEMS_NOTEPAD_LAST ) 466f4: 720f moveq #15,%d1 <== NOT EXECUTED 466f6: b282 cmpl %d2,%d1 <== NOT EXECUTED 466f8: 6404 bccs 466fe <== NOT EXECUTED 466fa: 700a moveq #10,%d0 <== NOT EXECUTED 466fc: 604a bras 46748 <== NOT EXECUTED /* * Optimize the most likely case to avoid the Thread_Dispatch. */ if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || 466fe: 4a80 tstl %d0 <== NOT EXECUTED 46700: 670c beqs 4670e <== NOT EXECUTED 46702: 2079 0005 a462 moveal 5a462 <_Thread_Executing>,%a0 <== NOT EXECUTED 46708: b0a8 0008 cmpl %a0@(8),%d0 <== NOT EXECUTED 4670c: 6610 bnes 4671e <== NOT EXECUTED _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; *note = api->Notepads[ notepad ]; 4670e: 2079 0005 a462 moveal 5a462 <_Thread_Executing>,%a0 <== NOT EXECUTED 46714: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED 46718: 24b0 2c1e movel %a0@(0000001e,%d2:l:4),%a2@ <== NOT EXECUTED 4671c: 6028 bras 46746 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } the_thread = _Thread_Get( id, &location ); 4671e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46722: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46724: 4eb9 0004 8444 jsr 48444 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 4672a: 508f addql #8,%sp <== NOT EXECUTED api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; *note = api->Notepads[ notepad ]; return RTEMS_SUCCESSFUL; } the_thread = _Thread_Get( id, &location ); 4672c: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 4672e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46732: 6704 beqs 46738 <== NOT EXECUTED 46734: 7004 moveq #4,%d0 <== NOT EXECUTED 46736: 6010 bras 46748 <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; *note = api->Notepads[ notepad ]; 46738: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED 4673c: 24b0 2c1e movel %a0@(0000001e,%d2:l:4),%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 46740: 4eb9 0004 841a jsr 4841a <_Thread_Enable_dispatch> <== NOT EXECUTED 46746: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46748: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4674c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46750: 4e5e unlk %fp <== NOT EXECUTED 46752: 4e75 rts 000451c0 : rtems_status_code rtems_task_ident( rtems_name name, uint32_t node, Objects_Id *id ) { 451c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 451c4: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 451c8: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; if ( !id ) 451cc: 4a89 tstl %a1 <== NOT EXECUTED 451ce: 6604 bnes 451d4 <== NOT EXECUTED 451d0: 7009 moveq #9,%d0 <== NOT EXECUTED 451d2: 6034 bras 45208 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( name == OBJECTS_ID_OF_SELF ) { 451d4: 4a80 tstl %d0 <== NOT EXECUTED 451d6: 660c bnes 451e4 <== NOT EXECUTED *id = _Thread_Executing->Object.id; 451d8: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED 451de: 22a8 0008 movel %a0@(8),%a1@ <== NOT EXECUTED 451e2: 6024 bras 45208 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } status = _Objects_Name_to_id_u32( &_RTEMS_tasks_Information, name, node, id ); 451e4: 2f09 movel %a1,%sp@- <== NOT EXECUTED 451e6: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 451ea: 2f00 movel %d0,%sp@- <== NOT EXECUTED 451ec: 4879 0005 6c14 pea 56c14 <_RTEMS_tasks_Information> <== NOT EXECUTED 451f2: 4eb9 0004 65d0 jsr 465d0 <_Objects_Name_to_id_u32> <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; 451f8: 41f9 0005 4196 lea 54196 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED 451fe: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 45202: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 45208: 4e5e unlk %fp <== NOT EXECUTED 4520a: 4e75 rts 00045550 : */ rtems_status_code rtems_task_is_suspended( Objects_Id id ) { 45550: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 45554: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45558: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4555c: 4eb9 0004 6f44 jsr 46f44 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 45562: 508f addql #8,%sp <== NOT EXECUTED ) { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 45564: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 45566: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4556a: 6704 beqs 45570 <== NOT EXECUTED 4556c: 7004 moveq #4,%d0 <== NOT EXECUTED 4556e: 6018 bras 45588 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { 45570: 7002 moveq #2,%d0 <== NOT EXECUTED 45572: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 45576: 41f9 0004 6f1a lea 46f1a <_Thread_Enable_dispatch>,%a0 <== NOT EXECUTED 4557c: 6606 bnes 45584 <== NOT EXECUTED _Thread_Enable_dispatch(); 4557e: 4e90 jsr %a0@ <== NOT EXECUTED 45580: 4280 clrl %d0 <== NOT EXECUTED 45582: 6004 bras 45588 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 45584: 4e90 jsr %a0@ <== NOT EXECUTED 45586: 700f moveq #15,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45588: 4e5e unlk %fp <== NOT EXECUTED 4558a: 4e75 rts 0004a7b8 : rtems_status_code rtems_task_mode( rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set ) { 4a7b8: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4a7bc: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 4a7c0: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 4a7c4: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4a7c8: 286e 0010 moveal %fp@(16),%a4 <== NOT EXECUTED ASR_Information *asr; bool is_asr_enabled = false; bool needs_asr_dispatching = false; rtems_mode old_mode; if ( !previous_mode_set ) 4a7cc: 4a8c tstl %a4 <== NOT EXECUTED 4a7ce: 6606 bnes 4a7d6 <== NOT EXECUTED 4a7d0: 7009 moveq #9,%d0 <== NOT EXECUTED 4a7d2: 6000 00fa braw 4a8ce <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; executing = _Thread_Executing; 4a7d6: 2679 0005 6d62 moveal 56d62 <_Thread_Executing>,%a3 <== NOT EXECUTED api = executing->API_Extensions[ THREAD_API_RTEMS ]; 4a7dc: 246b 010c moveal %a3@(268),%a2 <== NOT EXECUTED asr = &api->Signal; old_mode = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT; 4a7e0: 263c 0000 0100 movel #256,%d3 <== NOT EXECUTED 4a7e6: 4a2b 0076 tstb %a3@(118) <== NOT EXECUTED 4a7ea: 6702 beqs 4a7ee <== NOT EXECUTED 4a7ec: 4283 clrl %d3 <== NOT EXECUTED if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE ) 4a7ee: 4aab 007c tstl %a3@(124) <== NOT EXECUTED 4a7f2: 6704 beqs 4a7f8 <== NOT EXECUTED old_mode |= RTEMS_NO_TIMESLICE; else old_mode |= RTEMS_TIMESLICE; 4a7f4: 08c3 0009 bset #9,%d3 <== NOT EXECUTED old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR; 4a7f8: 243c 0000 0400 movel #1024,%d2 <== NOT EXECUTED 4a7fe: 4a2a 0008 tstb %a2@(8) <== NOT EXECUTED 4a802: 6702 beqs 4a806 <== NOT EXECUTED 4a804: 4282 clrl %d2 <== NOT EXECUTED old_mode |= _ISR_Get_level(); 4a806: 4eb9 0004 7f78 jsr 47f78 <_CPU_ISR_Get_level> <== NOT EXECUTED if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE ) old_mode |= RTEMS_NO_TIMESLICE; else old_mode |= RTEMS_TIMESLICE; old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR; 4a80c: 8480 orl %d0,%d2 <== NOT EXECUTED old_mode |= _ISR_Get_level(); *previous_mode_set = old_mode; 4a80e: 8483 orl %d3,%d2 <== NOT EXECUTED 4a810: 2882 movel %d2,%a4@ <== NOT EXECUTED /* * These are generic thread scheduling characteristics. */ if ( mask & RTEMS_PREEMPT_MASK ) 4a812: 0804 0008 btst #8,%d4 <== NOT EXECUTED 4a816: 670e beqs 4a826 <== NOT EXECUTED executing->is_preemptible = _Modes_Is_preempt(mode_set) ? TRUE : FALSE; 4a818: 2005 movel %d5,%d0 <== NOT EXECUTED 4a81a: 7201 moveq #1,%d1 <== NOT EXECUTED 4a81c: e088 lsrl #8,%d0 <== NOT EXECUTED 4a81e: b380 eorl %d1,%d0 <== NOT EXECUTED 4a820: c081 andl %d1,%d0 <== NOT EXECUTED 4a822: 1740 0076 moveb %d0,%a3@(118) <== NOT EXECUTED if ( mask & RTEMS_TIMESLICE_MASK ) { 4a826: 0804 0009 btst #9,%d4 <== NOT EXECUTED 4a82a: 671c beqs 4a848 <== NOT EXECUTED if ( _Modes_Is_timeslice(mode_set) ) { 4a82c: 0805 0009 btst #9,%d5 <== NOT EXECUTED 4a830: 6712 beqs 4a844 <== NOT EXECUTED executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE; executing->cpu_time_budget = _Thread_Ticks_per_timeslice; 4a832: 41f9 0005 6c54 lea 56c54 <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED if ( mask & RTEMS_PREEMPT_MASK ) executing->is_preemptible = _Modes_Is_preempt(mode_set) ? TRUE : FALSE; if ( mask & RTEMS_TIMESLICE_MASK ) { if ( _Modes_Is_timeslice(mode_set) ) { executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE; 4a838: 7001 moveq #1,%d0 <== NOT EXECUTED executing->cpu_time_budget = _Thread_Ticks_per_timeslice; 4a83a: 2750 0078 movel %a0@,%a3@(120) <== NOT EXECUTED if ( mask & RTEMS_PREEMPT_MASK ) executing->is_preemptible = _Modes_Is_preempt(mode_set) ? TRUE : FALSE; if ( mask & RTEMS_TIMESLICE_MASK ) { if ( _Modes_Is_timeslice(mode_set) ) { executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE; 4a83e: 2740 007c movel %d0,%a3@(124) <== NOT EXECUTED 4a842: 6004 bras 4a848 <== NOT EXECUTED executing->cpu_time_budget = _Thread_Ticks_per_timeslice; } else executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; 4a844: 42ab 007c clrl %a3@(124) <== NOT EXECUTED /* * Set the new interrupt level */ if ( mask & RTEMS_INTERRUPT_MASK ) 4a848: 7007 moveq #7,%d0 <== NOT EXECUTED 4a84a: c084 andl %d4,%d0 <== NOT EXECUTED 4a84c: 6712 beqs 4a860 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level ( Modes_Control mode_set ) { _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) ); 4a84e: 40c1 movew %sr,%d1 <== NOT EXECUTED 4a850: 7007 moveq #7,%d0 <== NOT EXECUTED 4a852: c085 andl %d5,%d0 <== NOT EXECUTED 4a854: e188 lsll #8,%d0 <== NOT EXECUTED 4a856: 0281 0000 f8ff andil #63743,%d1 <== NOT EXECUTED 4a85c: 8280 orl %d0,%d1 <== NOT EXECUTED 4a85e: 46c1 movew %d1,%sr <== NOT EXECUTED */ is_asr_enabled = FALSE; needs_asr_dispatching = FALSE; if ( mask & RTEMS_ASR_MASK ) { 4a860: 0804 000a btst #10,%d4 <== NOT EXECUTED 4a864: 6746 beqs 4a8ac <== NOT EXECUTED 4a866: 700a moveq #10,%d0 <== NOT EXECUTED 4a868: 2205 movel %d5,%d1 <== NOT EXECUTED 4a86a: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 4a86c: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 4a870: b181 eorl %d0,%d1 <== NOT EXECUTED 4a872: c280 andl %d0,%d1 <== NOT EXECUTED is_asr_enabled = _Modes_Is_asr_disabled( mode_set ) ? false : true; if ( is_asr_enabled != asr->is_enabled ) { 4a874: 4280 clrl %d0 <== NOT EXECUTED 4a876: 102a 0008 moveb %a2@(8),%d0 <== NOT EXECUTED 4a87a: b081 cmpl %d1,%d0 <== NOT EXECUTED 4a87c: 672e beqs 4a8ac <== NOT EXECUTED asr->is_enabled = is_asr_enabled; 4a87e: 1541 0008 moveb %d1,%a2@(8) <== NOT EXECUTED ) { rtems_signal_set _signals; ISR_Level _level; _ISR_Disable( _level ); 4a882: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4a888: 40c1 movew %sr,%d1 <== NOT EXECUTED 4a88a: 8081 orl %d1,%d0 <== NOT EXECUTED 4a88c: 46c0 movew %d0,%sr <== NOT EXECUTED _signals = information->signals_pending; 4a88e: 202a 0016 movel %a2@(22),%d0 <== NOT EXECUTED information->signals_pending = information->signals_posted; 4a892: 256a 0012 0016 movel %a2@(18),%a2@(22) <== NOT EXECUTED information->signals_posted = _signals; 4a898: 2540 0012 movel %d0,%a2@(18) <== NOT EXECUTED _ISR_Enable( _level ); 4a89c: 46c1 movew %d1,%sr <== NOT EXECUTED _ASR_Swap_signals( asr ); if ( _ASR_Are_signals_pending( asr ) ) { 4a89e: 4aaa 0012 tstl %a2@(18) <== NOT EXECUTED 4a8a2: 6708 beqs 4a8ac <== NOT EXECUTED needs_asr_dispatching = true; executing->do_post_task_switch_extension = true; 4a8a4: 7401 moveq #1,%d2 <== NOT EXECUTED 4a8a6: 1742 0075 moveb %d2,%a3@(117) <== NOT EXECUTED 4a8aa: 6002 bras 4a8ae <== NOT EXECUTED 4a8ac: 4202 clrb %d2 <== NOT EXECUTED } } } if ( _System_state_Is_up(_System_state_Current) ) 4a8ae: 7203 moveq #3,%d1 <== NOT EXECUTED 4a8b0: b2b9 0005 6e36 cmpl 56e36 <_System_state_Current>,%d1 <== NOT EXECUTED 4a8b6: 6614 bnes 4a8cc <== NOT EXECUTED if ( _Thread_Evaluate_mode() || needs_asr_dispatching ) 4a8b8: 4eb9 0004 aa7c jsr 4aa7c <_Thread_Evaluate_mode> <== NOT EXECUTED 4a8be: 4a00 tstb %d0 <== NOT EXECUTED 4a8c0: 6604 bnes 4a8c6 <== NOT EXECUTED 4a8c2: 4a02 tstb %d2 <== NOT EXECUTED 4a8c4: 6706 beqs 4a8cc <== NOT EXECUTED _Thread_Dispatch(); 4a8c6: 4eb9 0004 6afc jsr 46afc <_Thread_Dispatch> <== NOT EXECUTED 4a8cc: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4a8ce: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4a8d4: 4e5e unlk %fp <== NOT EXECUTED 4a8d6: 4e75 rts 000459a8 : rtems_status_code rtems_task_restart( Objects_Id id, uint32_t argument ) { 459a8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 459ac: 486e fffc pea %fp@(-4) <== NOT EXECUTED 459b0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 459b4: 4eb9 0004 73e0 jsr 473e0 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 459ba: 508f addql #8,%sp <== NOT EXECUTED 459bc: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 459c0: 6704 beqs 459c6 <== NOT EXECUTED 459c2: 7004 moveq #4,%d0 <== NOT EXECUTED 459c4: 6028 bras 459ee <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Thread_Restart( the_thread, NULL, argument ) ) { 459c6: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 459ca: 42a7 clrl %sp@- <== NOT EXECUTED 459cc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 459ce: 4eb9 0004 7b8c jsr 47b8c <_Thread_Restart> <== NOT EXECUTED 459d4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 459da: 41f9 0004 73b6 lea 473b6 <_Thread_Enable_dispatch>,%a0 <== NOT EXECUTED 459e0: 4a00 tstb %d0 <== NOT EXECUTED 459e2: 6706 beqs 459ea <== NOT EXECUTED _Thread_Enable_dispatch(); 459e4: 4e90 jsr %a0@ <== NOT EXECUTED 459e6: 4280 clrl %d0 <== NOT EXECUTED 459e8: 6004 bras 459ee <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 459ea: 4e90 jsr %a0@ <== NOT EXECUTED 459ec: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 459ee: 4e5e unlk %fp <== NOT EXECUTED 459f0: 4e75 rts <== NOT EXECUTED ... 000461c4 : */ rtems_status_code rtems_task_resume( Objects_Id id ) { 461c4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 461c8: 2f0a movel %a2,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 461ca: 486e fffc pea %fp@(-4) <== NOT EXECUTED 461ce: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 461d2: 4eb9 0004 7e40 jsr 47e40 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 461d8: 508f addql #8,%sp <== NOT EXECUTED ) { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 461da: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 461dc: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 461e0: 6704 beqs 461e6 <== NOT EXECUTED 461e2: 7004 moveq #4,%d0 <== NOT EXECUTED 461e4: 6026 bras 4620c <== NOT EXECUTED case OBJECTS_LOCAL: if ( _States_Is_suspended( the_thread->current_state ) ) { 461e6: 7002 moveq #2,%d0 <== NOT EXECUTED 461e8: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 461ec: 45f9 0004 7de6 lea 47de6 <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 461f2: 6714 beqs 46208 <== NOT EXECUTED _Thread_Resume( the_thread, TRUE ); 461f4: 4878 0001 pea 1 <== NOT EXECUTED 461f8: 2f08 movel %a0,%sp@- <== NOT EXECUTED 461fa: 4eb9 0004 85ec jsr 485ec <_Thread_Resume> <== NOT EXECUTED _Thread_Enable_dispatch(); 46200: 4e92 jsr %a2@ <== NOT EXECUTED 46202: 508f addql #8,%sp <== NOT EXECUTED 46204: 4280 clrl %d0 <== NOT EXECUTED 46206: 6004 bras 4620c <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 46208: 4e92 jsr %a2@ <== NOT EXECUTED 4620a: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4620c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46210: 4e5e unlk %fp <== NOT EXECUTED 46212: 4e75 rts 0005d534 : #include #include rtems_id rtems_task_self(void) { 5d534: 2079 0009 271e moveal 9271e <_Thread_Executing>,%a0 <== NOT EXECUTED 5d53a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Thread_Executing->Object.id; } 5d53e: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED 5d542: 4e5e unlk %fp <== NOT EXECUTED 5d544: 4e75 rts <== NOT EXECUTED ... 00046848 : rtems_status_code rtems_task_set_note( Objects_Id id, uint32_t notepad, uint32_t note ) { 46848: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4684c: 2f03 movel %d3,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 4684e: 2079 0005 a43e moveal 5a43e <_Configuration_Table>,%a0 <== NOT EXECUTED rtems_status_code rtems_task_set_note( Objects_Id id, uint32_t notepad, uint32_t note ) { 46854: 2f02 movel %d2,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 46856: 2068 003e moveal %a0@(62),%a0 <== NOT EXECUTED rtems_status_code rtems_task_set_note( Objects_Id id, uint32_t notepad, uint32_t note ) { 4685a: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4685e: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 46862: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 46866: 4a28 0004 tstb %a0@(4) <== NOT EXECUTED 4686a: 6604 bnes 46870 <== NOT EXECUTED 4686c: 7016 moveq #22,%d0 <== NOT EXECUTED 4686e: 6054 bras 468c4 <== NOT EXECUTED /* * NOTE: There is no check for < RTEMS_NOTEPAD_FIRST because that would * be checking an unsigned number for being negative. */ if ( notepad > RTEMS_NOTEPAD_LAST ) 46870: 720f moveq #15,%d1 <== NOT EXECUTED 46872: b282 cmpl %d2,%d1 <== NOT EXECUTED 46874: 6404 bccs 4687a <== NOT EXECUTED 46876: 700a moveq #10,%d0 <== NOT EXECUTED 46878: 604a bras 468c4 <== NOT EXECUTED /* * Optimize the most likely case to avoid the Thread_Dispatch. */ if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || 4687a: 4a80 tstl %d0 <== NOT EXECUTED 4687c: 670c beqs 4688a <== NOT EXECUTED 4687e: 2079 0005 a462 moveal 5a462 <_Thread_Executing>,%a0 <== NOT EXECUTED 46884: b0a8 0008 cmpl %a0@(8),%d0 <== NOT EXECUTED 46888: 6610 bnes 4689a <== NOT EXECUTED _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; api->Notepads[ notepad ] = note; 4688a: 2079 0005 a462 moveal 5a462 <_Thread_Executing>,%a0 <== NOT EXECUTED 46890: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED 46894: 2183 2c1e movel %d3,%a0@(0000001e,%d2:l:4) <== NOT EXECUTED 46898: 6028 bras 468c2 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } the_thread = _Thread_Get( id, &location ); 4689a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4689e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 468a0: 4eb9 0004 8444 jsr 48444 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 468a6: 508f addql #8,%sp <== NOT EXECUTED api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; api->Notepads[ notepad ] = note; return RTEMS_SUCCESSFUL; } the_thread = _Thread_Get( id, &location ); 468a8: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 468aa: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 468ae: 6704 beqs 468b4 <== NOT EXECUTED 468b0: 7004 moveq #4,%d0 <== NOT EXECUTED 468b2: 6010 bras 468c4 <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; api->Notepads[ notepad ] = note; 468b4: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED 468b8: 2183 2c1e movel %d3,%a0@(0000001e,%d2:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); 468bc: 4eb9 0004 841a jsr 4841a <_Thread_Enable_dispatch> <== NOT EXECUTED 468c2: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 468c4: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 468c8: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 468cc: 4e5e unlk %fp <== NOT EXECUTED 468ce: 4e75 rts 00048cb8 : rtems_status_code rtems_task_set_priority( Objects_Id id, rtems_task_priority new_priority, rtems_task_priority *old_priority ) { 48cb8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 48cbc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48cbe: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 48cc2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48cc4: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; if ( new_priority != RTEMS_CURRENT_PRIORITY && 48cc8: 6710 beqs 48cda <== NOT EXECUTED 48cca: 4280 clrl %d0 <== NOT EXECUTED 48ccc: 1039 0005 fde2 moveb 5fde2 ,%d0 <== NOT EXECUTED 48cd2: b082 cmpl %d2,%d0 <== NOT EXECUTED 48cd4: 6404 bccs 48cda <== NOT EXECUTED 48cd6: 7013 moveq #19,%d0 <== NOT EXECUTED 48cd8: 6056 bras 48d30 <== NOT EXECUTED !_RTEMS_tasks_Priority_is_valid( new_priority ) ) return RTEMS_INVALID_PRIORITY; if ( !old_priority ) 48cda: 4a8a tstl %a2 <== NOT EXECUTED 48cdc: 6604 bnes 48ce2 <== NOT EXECUTED 48cde: 7009 moveq #9,%d0 <== NOT EXECUTED 48ce0: 604e bras 48d30 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get( id, &location ); 48ce2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48ce6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48cea: 4eb9 0004 a8d4 jsr 4a8d4 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 48cf0: 508f addql #8,%sp <== NOT EXECUTED return RTEMS_INVALID_PRIORITY; if ( !old_priority ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get( id, &location ); 48cf2: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 48cf4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48cf8: 6704 beqs 48cfe <== NOT EXECUTED 48cfa: 7004 moveq #4,%d0 <== NOT EXECUTED 48cfc: 6032 bras 48d30 <== NOT EXECUTED case OBJECTS_LOCAL: /* XXX need helper to "convert" from core priority */ *old_priority = the_thread->current_priority; 48cfe: 24a8 0014 movel %a0@(20),%a2@ <== NOT EXECUTED if ( new_priority != RTEMS_CURRENT_PRIORITY ) { 48d02: 4a82 tstl %d2 <== NOT EXECUTED 48d04: 6722 beqs 48d28 <== NOT EXECUTED the_thread->real_priority = new_priority; 48d06: 2142 0018 movel %d2,%a0@(24) <== NOT EXECUTED if ( the_thread->resource_count == 0 || 48d0a: 4aa8 001c tstl %a0@(28) <== NOT EXECUTED 48d0e: 6706 beqs 48d16 <== NOT EXECUTED 48d10: b4a8 0014 cmpl %a0@(20),%d2 <== NOT EXECUTED 48d14: 6412 bccs 48d28 <== NOT EXECUTED the_thread->current_priority > new_priority ) _Thread_Change_priority( the_thread, new_priority, FALSE ); 48d16: 42a7 clrl %sp@- <== NOT EXECUTED 48d18: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48d1a: 2f08 movel %a0,%sp@- <== NOT EXECUTED 48d1c: 4eb9 0004 a374 jsr 4a374 <_Thread_Change_priority> <== NOT EXECUTED 48d22: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } _Thread_Enable_dispatch(); 48d28: 4eb9 0004 a87a jsr 4a87a <_Thread_Enable_dispatch> <== NOT EXECUTED 48d2e: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 48d30: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 48d34: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 48d38: 4e5e unlk %fp <== NOT EXECUTED 48d3a: 4e75 rts 000452a0 : rtems_status_code rtems_task_start( rtems_id id, rtems_task_entry entry_point, rtems_task_argument argument ) { 452a0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 452a4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 452a6: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; if ( entry_point == NULL ) 452aa: 6604 bnes 452b0 <== NOT EXECUTED 452ac: 7009 moveq #9,%d0 <== NOT EXECUTED 452ae: 6046 bras 452f6 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get( id, &location ); 452b0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 452b4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 452b8: 4eb9 0004 6c78 jsr 46c78 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 452be: 508f addql #8,%sp <== NOT EXECUTED 452c0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 452c4: 6704 beqs 452ca <== NOT EXECUTED 452c6: 7004 moveq #4,%d0 <== NOT EXECUTED 452c8: 602c bras 452f6 <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Thread_Start( 452ca: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 452ce: 42a7 clrl %sp@- <== NOT EXECUTED 452d0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 452d2: 42a7 clrl %sp@- <== NOT EXECUTED 452d4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 452d6: 4eb9 0004 76dc jsr 476dc <_Thread_Start> <== NOT EXECUTED 452dc: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 452e2: 41f9 0004 6c4e lea 46c4e <_Thread_Enable_dispatch>,%a0 <== NOT EXECUTED 452e8: 4a00 tstb %d0 <== NOT EXECUTED 452ea: 6706 beqs 452f2 <== NOT EXECUTED the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) { _Thread_Enable_dispatch(); 452ec: 4e90 jsr %a0@ <== NOT EXECUTED 452ee: 4280 clrl %d0 <== NOT EXECUTED 452f0: 6004 bras 452f6 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 452f2: 4e90 jsr %a0@ <== NOT EXECUTED 452f4: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 452f6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 452fa: 4e5e unlk %fp <== NOT EXECUTED 452fc: 4e75 rts <== NOT EXECUTED ... 00045300 : */ rtems_status_code rtems_task_suspend( Objects_Id id ) { 45300: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45304: 2f0a movel %a2,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 45306: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4530a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4530e: 4eb9 0004 6c78 jsr 46c78 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 45314: 508f addql #8,%sp <== NOT EXECUTED ) { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 45316: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 45318: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4531c: 6704 beqs 45322 <== NOT EXECUTED 4531e: 7004 moveq #4,%d0 <== NOT EXECUTED 45320: 6022 bras 45344 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { 45322: 7002 moveq #2,%d0 <== NOT EXECUTED 45324: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 45328: 45f9 0004 6c4e lea 46c4e <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 4532e: 6610 bnes 45340 <== NOT EXECUTED _Thread_Suspend( the_thread ); 45330: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45332: 4eb9 0004 7730 jsr 47730 <_Thread_Suspend> <== NOT EXECUTED _Thread_Enable_dispatch(); 45338: 4e92 jsr %a2@ <== NOT EXECUTED 4533a: 588f addql #4,%sp <== NOT EXECUTED 4533c: 4280 clrl %d0 <== NOT EXECUTED 4533e: 6004 bras 45344 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 45340: 4e92 jsr %a2@ <== NOT EXECUTED 45342: 700f moveq #15,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45344: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45348: 4e5e unlk %fp <== NOT EXECUTED 4534a: 4e75 rts 0005d738 : rtems_status_code rtems_task_variable_add( rtems_id tid, void **ptr, void (*dtor)(void *) ) { 5d738: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5d73c: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 5d740: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 5d744: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; rtems_task_variable_t *tvp, *new; if ( !ptr ) 5d748: 4a8b tstl %a3 <== NOT EXECUTED 5d74a: 6604 bnes 5d750 <== NOT EXECUTED 5d74c: 7009 moveq #9,%d0 <== NOT EXECUTED 5d74e: 6070 bras 5d7c0 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 5d750: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5d754: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5d758: 4eb9 0004 aa08 jsr 4aa08 <_Thread_Get> <== NOT EXECUTED switch (location) { 5d75e: 508f addql #8,%sp <== NOT EXECUTED rtems_task_variable_t *tvp, *new; if ( !ptr ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 5d760: 2440 moveal %d0,%a2 <== NOT EXECUTED switch (location) { 5d762: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5d766: 6704 beqs 5d76c <== NOT EXECUTED 5d768: 7004 moveq #4,%d0 <== NOT EXECUTED 5d76a: 6054 bras 5d7c0 <== NOT EXECUTED case OBJECTS_LOCAL: /* * Figure out if the variable is already in this task's list. */ tvp = the_thread->task_variables; 5d76c: 206a 011c moveal %a2@(284),%a0 <== NOT EXECUTED 5d770: 6014 bras 5d786 <== NOT EXECUTED while (tvp) { if (tvp->ptr == ptr) { 5d772: b7e8 0004 cmpal %a0@(4),%a3 <== NOT EXECUTED 5d776: 660c bnes 5d784 <== NOT EXECUTED tvp->dtor = dtor; 5d778: 2142 0010 movel %d2,%a0@(16) <== NOT EXECUTED _Thread_Enable_dispatch(); 5d77c: 4eb9 0004 a9de jsr 4a9de <_Thread_Enable_dispatch> <== NOT EXECUTED 5d782: 603a bras 5d7be <== NOT EXECUTED return RTEMS_SUCCESSFUL; } tvp = (rtems_task_variable_t *)tvp->next; 5d784: 2050 moveal %a0@,%a0 <== NOT EXECUTED case OBJECTS_LOCAL: /* * Figure out if the variable is already in this task's list. */ tvp = the_thread->task_variables; while (tvp) { 5d786: 4a88 tstl %a0 <== NOT EXECUTED 5d788: 66e8 bnes 5d772 <== NOT EXECUTED } /* * Now allocate memory for this task variable. */ new = (rtems_task_variable_t *) 5d78a: 4878 0014 pea 14 <== NOT EXECUTED 5d78e: 4eb9 0004 bb80 jsr 4bb80 <_Workspace_Allocate> <== NOT EXECUTED _Workspace_Allocate(sizeof(rtems_task_variable_t)); if (new == NULL) { 5d794: 588f addql #4,%sp <== NOT EXECUTED } /* * Now allocate memory for this task variable. */ new = (rtems_task_variable_t *) 5d796: 2040 moveal %d0,%a0 <== NOT EXECUTED 5d798: 43f9 0004 a9de lea 4a9de <_Thread_Enable_dispatch>,%a1 <== NOT EXECUTED _Workspace_Allocate(sizeof(rtems_task_variable_t)); if (new == NULL) { 5d79e: 4a80 tstl %d0 <== NOT EXECUTED 5d7a0: 6606 bnes 5d7a8 <== NOT EXECUTED _Thread_Enable_dispatch(); 5d7a2: 4e91 jsr %a1@ <== NOT EXECUTED 5d7a4: 701a moveq #26,%d0 <== NOT EXECUTED 5d7a6: 6018 bras 5d7c0 <== NOT EXECUTED } new->gval = *ptr; new->ptr = ptr; new->dtor = dtor; new->next = (struct rtems_task_variable_tt *)the_thread->task_variables; 5d7a8: 20aa 011c movel %a2@(284),%a0@ <== NOT EXECUTED _Workspace_Allocate(sizeof(rtems_task_variable_t)); if (new == NULL) { _Thread_Enable_dispatch(); return RTEMS_NO_MEMORY; } new->gval = *ptr; 5d7ac: 2153 0008 movel %a3@,%a0@(8) <== NOT EXECUTED new->ptr = ptr; new->dtor = dtor; new->next = (struct rtems_task_variable_tt *)the_thread->task_variables; the_thread->task_variables = new; 5d7b0: 2540 011c movel %d0,%a2@(284) <== NOT EXECUTED if (new == NULL) { _Thread_Enable_dispatch(); return RTEMS_NO_MEMORY; } new->gval = *ptr; new->ptr = ptr; 5d7b4: 214b 0004 movel %a3,%a0@(4) <== NOT EXECUTED new->dtor = dtor; 5d7b8: 2142 0010 movel %d2,%a0@(16) <== NOT EXECUTED new->next = (struct rtems_task_variable_tt *)the_thread->task_variables; the_thread->task_variables = new; _Thread_Enable_dispatch(); 5d7bc: 4e91 jsr %a1@ <== NOT EXECUTED 5d7be: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5d7c0: 4cee 0c04 fff0 moveml %fp@(-16),%d2/%a2-%a3 <== NOT EXECUTED 5d7c6: 4e5e unlk %fp <== NOT EXECUTED 5d7c8: 4e75 rts <== NOT EXECUTED ... 0005d7cc : rtems_status_code rtems_task_variable_delete( rtems_id tid, void **ptr ) { 5d7cc: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 5d7d0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5d7d2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d7d4: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; rtems_task_variable_t *tvp, *prev; if ( !ptr ) 5d7d8: 675a beqs 5d834 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; prev = NULL; the_thread = _Thread_Get (tid, &location); 5d7da: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5d7de: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5d7e2: 4eb9 0004 aa08 jsr 4aa08 <_Thread_Get> <== NOT EXECUTED switch (location) { 5d7e8: 508f addql #8,%sp <== NOT EXECUTED if ( !ptr ) return RTEMS_INVALID_ADDRESS; prev = NULL; the_thread = _Thread_Get (tid, &location); 5d7ea: 2440 moveal %d0,%a2 <== NOT EXECUTED switch (location) { 5d7ec: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5d7f0: 6704 beqs 5d7f6 <== NOT EXECUTED 5d7f2: 7004 moveq #4,%d0 <== NOT EXECUTED 5d7f4: 6040 bras 5d836 <== NOT EXECUTED case OBJECTS_LOCAL: tvp = the_thread->task_variables; 5d7f6: 206a 011c moveal %a2@(284),%a0 <== NOT EXECUTED 5d7fa: 93c9 subal %a1,%a1 <== NOT EXECUTED 5d7fc: 602c bras 5d82a <== NOT EXECUTED while (tvp) { if (tvp->ptr == ptr) { 5d7fe: b4a8 0004 cmpl %a0@(4),%d2 <== NOT EXECUTED 5d802: 6622 bnes 5d826 <== NOT EXECUTED if (prev) 5d804: 4a89 tstl %a1 <== NOT EXECUTED 5d806: 6704 beqs 5d80c <== NOT EXECUTED prev->next = tvp->next; 5d808: 2290 movel %a0@,%a1@ <== NOT EXECUTED 5d80a: 6004 bras 5d810 <== NOT EXECUTED else the_thread->task_variables = (rtems_task_variable_t *)tvp->next; 5d80c: 2550 011c movel %a0@,%a2@(284) <== NOT EXECUTED _RTEMS_Tasks_Invoke_task_variable_dtor( the_thread, tvp ); 5d810: 2f08 movel %a0,%sp@- <== NOT EXECUTED 5d812: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5d814: 4eb9 0005 d8ac jsr 5d8ac <_RTEMS_Tasks_Invoke_task_variable_dtor> <== NOT EXECUTED _Thread_Enable_dispatch(); 5d81a: 4eb9 0004 a9de jsr 4a9de <_Thread_Enable_dispatch> <== NOT EXECUTED 5d820: 508f addql #8,%sp <== NOT EXECUTED 5d822: 4280 clrl %d0 <== NOT EXECUTED 5d824: 6010 bras 5d836 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } prev = tvp; tvp = (rtems_task_variable_t *)tvp->next; 5d826: 2248 moveal %a0,%a1 <== NOT EXECUTED 5d828: 2050 moveal %a0@,%a0 <== NOT EXECUTED the_thread = _Thread_Get (tid, &location); switch (location) { case OBJECTS_LOCAL: tvp = the_thread->task_variables; while (tvp) { 5d82a: 4a88 tstl %a0 <== NOT EXECUTED 5d82c: 66d0 bnes 5d7fe <== NOT EXECUTED return RTEMS_SUCCESSFUL; } prev = tvp; tvp = (rtems_task_variable_t *)tvp->next; } _Thread_Enable_dispatch(); 5d82e: 4eb9 0004 a9de jsr 4a9de <_Thread_Enable_dispatch> <== NOT EXECUTED 5d834: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5d836: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 5d83a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5d83e: 4e5e unlk %fp <== NOT EXECUTED 5d840: 4e75 rts <== NOT EXECUTED ... 0005d844 : rtems_status_code rtems_task_variable_get( rtems_id tid, void **ptr, void **result ) { 5d844: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 5d848: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5d84a: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 5d84e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d850: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; rtems_task_variable_t *tvp; if ( !ptr ) 5d854: 6746 beqs 5d89c <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !result ) 5d856: 4a8a tstl %a2 <== NOT EXECUTED 5d858: 6742 beqs 5d89c <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 5d85a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5d85e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5d862: 4eb9 0004 aa08 jsr 4aa08 <_Thread_Get> <== NOT EXECUTED switch (location) { 5d868: 508f addql #8,%sp <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !result ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 5d86a: 2040 moveal %d0,%a0 <== NOT EXECUTED switch (location) { 5d86c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5d870: 6704 beqs 5d876 <== NOT EXECUTED 5d872: 7004 moveq #4,%d0 <== NOT EXECUTED 5d874: 6028 bras 5d89e <== NOT EXECUTED case OBJECTS_LOCAL: /* * Figure out if the variable is in this task's list. */ tvp = the_thread->task_variables; 5d876: 2068 011c moveal %a0@(284),%a0 <== NOT EXECUTED 5d87a: 6016 bras 5d892 <== NOT EXECUTED while (tvp) { if (tvp->ptr == ptr) { 5d87c: b4a8 0004 cmpl %a0@(4),%d2 <== NOT EXECUTED 5d880: 660e bnes 5d890 <== NOT EXECUTED /* * Should this return the current (i.e not the * saved) value if `tid' is the current task? */ *result = tvp->tval; 5d882: 24a8 000c movel %a0@(12),%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 5d886: 4eb9 0004 a9de jsr 4a9de <_Thread_Enable_dispatch> <== NOT EXECUTED 5d88c: 4280 clrl %d0 <== NOT EXECUTED 5d88e: 600e bras 5d89e <== NOT EXECUTED return RTEMS_SUCCESSFUL; } tvp = (rtems_task_variable_t *)tvp->next; 5d890: 2050 moveal %a0@,%a0 <== NOT EXECUTED case OBJECTS_LOCAL: /* * Figure out if the variable is in this task's list. */ tvp = the_thread->task_variables; while (tvp) { 5d892: 4a88 tstl %a0 <== NOT EXECUTED 5d894: 66e6 bnes 5d87c <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } tvp = (rtems_task_variable_t *)tvp->next; } _Thread_Enable_dispatch(); 5d896: 4eb9 0004 a9de jsr 4a9de <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; 5d89c: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5d89e: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 5d8a2: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5d8a6: 4e5e unlk %fp <== NOT EXECUTED 5d8a8: 4e75 rts <== NOT EXECUTED ... 0004534c : */ rtems_status_code rtems_task_wake_after( rtems_interval ticks ) { 4534c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45350: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45356: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45358: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4535c: 5280 addql #1,%d0 <== NOT EXECUTED 4535e: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); if ( ticks == 0 ) { 45364: 4a82 tstl %d2 <== NOT EXECUTED 45366: 6608 bnes 45370 <== NOT EXECUTED _Thread_Yield_processor(); 45368: 4eb9 0004 7890 jsr 47890 <_Thread_Yield_processor> <== NOT EXECUTED 4536e: 604a bras 453ba <== NOT EXECUTED } else { _Thread_Set_state( _Thread_Executing, STATES_DELAYING ); 45370: 4878 0008 pea 8 <== NOT EXECUTED 45374: 2f39 0005 6d62 movel 56d62 <_Thread_Executing>,%sp@- <== NOT EXECUTED 4537a: 4eb9 0004 7490 jsr 47490 <_Thread_Set_state> <== NOT EXECUTED _Watchdog_Initialize( 45380: 2079 0005 6d62 moveal 56d62 <_Thread_Executing>,%a0 <== NOT EXECUTED 45386: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4538a: 223c 0004 6ac0 movel #289472,%d1 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45390: 2142 0054 movel %d2,%a0@(84) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 45394: 2141 0064 movel %d1,%a0@(100) <== NOT EXECUTED the_watchdog->id = id; 45398: 2140 0068 movel %d0,%a0@(104) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4539c: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 453a0: 42a8 006c clrl %a0@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 453a4: 4868 0048 pea %a0@(72) <== NOT EXECUTED 453a8: 4879 0005 6d80 pea 56d80 <_Watchdog_Ticks_chain> <== NOT EXECUTED 453ae: 4eb9 0004 7bc4 jsr 47bc4 <_Watchdog_Insert> <== NOT EXECUTED 453b4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED _Thread_Executing->Object.id, NULL ); _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks ); } _Thread_Enable_dispatch(); 453ba: 4eb9 0004 6c4e jsr 46c4e <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 453c0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 453c4: 4e5e unlk %fp <== NOT EXECUTED 453c6: 4280 clrl %d0 <== NOT EXECUTED 453c8: 4e75 rts <== NOT EXECUTED ... 00045e74 : */ rtems_status_code rtems_task_wake_when( rtems_time_of_day *time_buffer ) { 45e74: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45e78: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45e7a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Watchdog_Interval seconds; if ( !_TOD_Is_set ) 45e7e: 4a39 0005 8908 tstb 58908 <_TOD_Is_set> <== NOT EXECUTED 45e84: 6606 bnes 45e8c <== NOT EXECUTED 45e86: 700b moveq #11,%d0 <== NOT EXECUTED 45e88: 6000 009c braw 45f26 <== NOT EXECUTED return RTEMS_NOT_DEFINED; if ( !time_buffer ) 45e8c: 4a8a tstl %a2 <== NOT EXECUTED 45e8e: 6606 bnes 45e96 <== NOT EXECUTED 45e90: 7009 moveq #9,%d0 <== NOT EXECUTED 45e92: 6000 0092 braw 45f26 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; time_buffer->ticks = 0; 45e96: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED if ( !_TOD_Validate( time_buffer ) ) 45e9a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45e9c: 4eb9 0004 52ec jsr 452ec <_TOD_Validate> <== NOT EXECUTED 45ea2: 588f addql #4,%sp <== NOT EXECUTED 45ea4: 4a00 tstb %d0 <== NOT EXECUTED 45ea6: 677c beqs 45f24 <== NOT EXECUTED return RTEMS_INVALID_CLOCK; seconds = _TOD_To_seconds( time_buffer ); 45ea8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45eaa: 4eb9 0004 5238 jsr 45238 <_TOD_To_seconds> <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 45eb0: 588f addql #4,%sp <== NOT EXECUTED time_buffer->ticks = 0; if ( !_TOD_Validate( time_buffer ) ) return RTEMS_INVALID_CLOCK; seconds = _TOD_To_seconds( time_buffer ); 45eb2: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 45eb4: b0b9 0005 8986 cmpl 58986 <_TOD_Now>,%d0 <== NOT EXECUTED 45eba: 6368 blss 45f24 <== NOT EXECUTED 45ebc: 2039 0005 88f4 movel 588f4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45ec2: 5280 addql #1,%d0 <== NOT EXECUTED 45ec4: 23c0 0005 88f4 movel %d0,588f4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED return RTEMS_INVALID_CLOCK; _Thread_Disable_dispatch(); _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME ); 45eca: 4878 0010 pea 10 <== NOT EXECUTED 45ece: 2f39 0005 89b2 movel 589b2 <_Thread_Executing>,%sp@- <== NOT EXECUTED 45ed4: 4eb9 0004 7ff0 jsr 47ff0 <_Thread_Set_state> <== NOT EXECUTED _Watchdog_Initialize( 45eda: 2079 0005 89b2 moveal 589b2 <_Thread_Executing>,%a0 <== NOT EXECUTED 45ee0: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 45ee4: 2140 0068 movel %d0,%a0@(104) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45ee8: 95f9 0005 8986 subal 58986 <_TOD_Now>,%a2 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 45eee: 203c 0004 7620 movel #292384,%d0 <== NOT EXECUTED 45ef4: 2140 0064 movel %d0,%a0@(100) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45ef8: 214a 0054 movel %a2,%a0@(84) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 45efc: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 45f00: 42a8 006c clrl %a0@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 45f04: 4868 0048 pea %a0@(72) <== NOT EXECUTED 45f08: 4879 0005 89c4 pea 589c4 <_Watchdog_Seconds_chain> <== NOT EXECUTED 45f0e: 4eb9 0004 87a8 jsr 487a8 <_Watchdog_Insert> <== NOT EXECUTED ); _Watchdog_Insert_seconds( &_Thread_Executing->Timer, seconds - _TOD_Seconds_since_epoch ); _Thread_Enable_dispatch(); 45f14: 4eb9 0004 77ae jsr 477ae <_Thread_Enable_dispatch> <== NOT EXECUTED 45f1a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45f20: 4280 clrl %d0 <== NOT EXECUTED 45f22: 6002 bras 45f26 <== NOT EXECUTED return RTEMS_SUCCESSFUL; 45f24: 7014 moveq #20,%d0 <== NOT EXECUTED } 45f26: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45f2a: 4e5e unlk %fp <== NOT EXECUTED 45f2c: 4e75 rts <== NOT EXECUTED ... 00042db4 : rtems_status_code rtems_termios_bufsize ( int cbufsize, int raw_input, int raw_output ) { 42db4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_termios_cbufsize = cbufsize; 42db8: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED 42dbc: 23d0 0005 55f4 movel %a0@,555f4 <== NOT EXECUTED rtems_termios_raw_input_size = raw_input; 42dc2: 41ee 000c lea %fp@(12),%a0 <== NOT EXECUTED 42dc6: 23d0 0005 55f8 movel %a0@,555f8 <== NOT EXECUTED rtems_termios_raw_output_size = raw_output; 42dcc: 41ee 0010 lea %fp@(16),%a0 <== NOT EXECUTED 42dd0: 23d0 0005 55fc movel %a0@,555fc <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 42dd6: 4e5e unlk %fp <== NOT EXECUTED 42dd8: 4280 clrl %d0 <== NOT EXECUTED 42dda: 4e75 rts 00043ffe : } } rtems_status_code rtems_termios_close (void *arg) { 43ffe: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 44002: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED 44006: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED rtems_libio_open_close_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 4400a: 2054 moveal %a4@,%a0 <== NOT EXECUTED 4400c: 2668 0028 moveal %a0@(40),%a3 <== NOT EXECUTED rtems_status_code sc; sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 44010: 42a7 clrl %sp@- <== NOT EXECUTED 44012: 42a7 clrl %sp@- <== NOT EXECUTED 44014: 2f39 0005 6bcc movel 56bcc ,%sp@- <== NOT EXECUTED 4401a: 4eb9 0004 4e48 jsr 44e48 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 44020: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44026: 4a80 tstl %d0 <== NOT EXECUTED 44028: 665e bnes 44088 <== NOT EXECUTED rtems_fatal_error_occurred (sc); if (--tty->refcount == 0) { 4402a: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 4402e: 5380 subql #1,%d0 <== NOT EXECUTED 44030: 2740 0008 movel %d0,%a3@(8) <== NOT EXECUTED 44034: 6600 0104 bnew 4413a <== NOT EXECUTED if (rtems_termios_linesw[tty->t_line].l_close != NULL) { 44038: 202b 00cc movel %a3@(204),%d0 <== NOT EXECUTED 4403c: 41f9 0005 6350 lea 56350 ,%a0 <== NOT EXECUTED 44042: e788 lsll #3,%d0 <== NOT EXECUTED 44044: 2070 0c04 moveal %a0@(00000004,%d0:l:4),%a0 <== NOT EXECUTED 44048: 4a88 tstl %a0 <== NOT EXECUTED 4404a: 6706 beqs 44052 <== NOT EXECUTED /* * call discipline-specific close */ sc = rtems_termios_linesw[tty->t_line].l_close(tty); 4404c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4404e: 4e90 jsr %a0@ <== NOT EXECUTED 44050: 6006 bras 44058 <== NOT EXECUTED } else { /* * default: just flush output buffer */ drainOutput (tty); 44052: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44054: 4eba f906 jsr %pc@(4395c ) <== NOT EXECUTED 44058: 588f addql #4,%sp <== NOT EXECUTED } if (tty->device.outputUsesInterrupts 4405a: 7002 moveq #2,%d0 <== NOT EXECUTED 4405c: b0ab 00b4 cmpl %a3@(180),%d0 <== NOT EXECUTED 44060: 662e bnes 44090 <== NOT EXECUTED == TERMIOS_TASK_DRIVEN) { /* * send "terminate" to I/O tasks */ sc = rtems_event_send( 44062: 4878 0001 pea 1 <== NOT EXECUTED 44066: 45f9 0004 49e4 lea 449e4 ,%a2 <== NOT EXECUTED 4406c: 2f2b 00c4 movel %a3@(196),%sp@- <== NOT EXECUTED 44070: 4e92 jsr %a2@ <== NOT EXECUTED tty->rxTaskId, TERMIOS_RX_TERMINATE_EVENT); if (sc != RTEMS_SUCCESSFUL) 44072: 508f addql #8,%sp <== NOT EXECUTED 44074: 4a80 tstl %d0 <== NOT EXECUTED 44076: 6610 bnes 44088 <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_event_send( 44078: 4878 0001 pea 1 <== NOT EXECUTED 4407c: 2f2b 00c8 movel %a3@(200),%sp@- <== NOT EXECUTED 44080: 4e92 jsr %a2@ <== NOT EXECUTED tty->txTaskId, TERMIOS_TX_TERMINATE_EVENT); if (sc != RTEMS_SUCCESSFUL) 44082: 508f addql #8,%sp <== NOT EXECUTED 44084: 4a80 tstl %d0 <== NOT EXECUTED 44086: 6708 beqs 44090 <== NOT EXECUTED rtems_fatal_error_occurred (sc); 44088: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4408a: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED } if (tty->device.lastClose) 44090: 206b 009c moveal %a3@(156),%a0 <== NOT EXECUTED 44094: 4a88 tstl %a0 <== NOT EXECUTED 44096: 6712 beqs 440aa <== NOT EXECUTED (*tty->device.lastClose)(tty->major, tty->minor, arg); 44098: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4409a: 2f2b 0010 movel %a3@(16),%sp@- <== NOT EXECUTED 4409e: 2f2b 000c movel %a3@(12),%sp@- <== NOT EXECUTED 440a2: 4e90 jsr %a0@ <== NOT EXECUTED 440a4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED if (tty->forw == NULL) { 440aa: 2053 moveal %a3@,%a0 <== NOT EXECUTED 440ac: 4a88 tstl %a0 <== NOT EXECUTED 440ae: 6610 bnes 440c0 <== NOT EXECUTED rtems_termios_ttyTail = tty->back; 440b0: 206b 0004 moveal %a3@(4),%a0 <== NOT EXECUTED 440b4: 23c8 0005 6bd0 movel %a0,56bd0 <== NOT EXECUTED if ( rtems_termios_ttyTail != NULL ) { 440ba: 670a beqs 440c6 <== NOT EXECUTED rtems_termios_ttyTail->forw = NULL; 440bc: 4290 clrl %a0@ <== NOT EXECUTED 440be: 6006 bras 440c6 <== NOT EXECUTED } } else { tty->forw->back = tty->back; 440c0: 216b 0004 0004 movel %a3@(4),%a0@(4) <== NOT EXECUTED } if (tty->back == NULL) { 440c6: 206b 0004 moveal %a3@(4),%a0 <== NOT EXECUTED 440ca: 4a88 tstl %a0 <== NOT EXECUTED 440cc: 6610 bnes 440de <== NOT EXECUTED rtems_termios_ttyHead = tty->forw; 440ce: 2053 moveal %a3@,%a0 <== NOT EXECUTED 440d0: 23c8 0005 6bd4 movel %a0,56bd4 <== NOT EXECUTED if ( rtems_termios_ttyHead != NULL ) { 440d6: 6708 beqs 440e0 <== NOT EXECUTED rtems_termios_ttyHead->back = NULL; 440d8: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED 440dc: 6002 bras 440e0 <== NOT EXECUTED } } else { tty->back->forw = tty->forw; 440de: 2093 movel %a3@,%a0@ <== NOT EXECUTED } rtems_semaphore_delete (tty->isem); 440e0: 2f2b 0014 movel %a3@(20),%sp@- <== NOT EXECUTED 440e4: 45f9 0004 4da8 lea 44da8 ,%a2 <== NOT EXECUTED 440ea: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_delete (tty->osem); 440ec: 2f2b 0018 movel %a3@(24),%sp@- <== NOT EXECUTED 440f0: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_delete (tty->rawOutBuf.Semaphore); 440f2: 2f2b 008c movel %a3@(140),%sp@- <== NOT EXECUTED 440f6: 4e92 jsr %a2@ <== NOT EXECUTED if ((tty->device.pollRead == NULL) || 440f8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 440fe: 4aab 00a0 tstl %a3@(160) <== NOT EXECUTED 44102: 6708 beqs 4410c <== NOT EXECUTED 44104: 7002 moveq #2,%d0 <== NOT EXECUTED 44106: b0ab 00b4 cmpl %a3@(180),%d0 <== NOT EXECUTED 4410a: 660c bnes 44118 <== NOT EXECUTED (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN)) rtems_semaphore_delete (tty->rawInBuf.Semaphore); 4410c: 2f2b 0068 movel %a3@(104),%sp@- <== NOT EXECUTED 44110: 4eb9 0004 4da8 jsr 44da8 <== NOT EXECUTED 44116: 588f addql #4,%sp <== NOT EXECUTED free (tty->rawInBuf.theBuf); 44118: 2f2b 0058 movel %a3@(88),%sp@- <== NOT EXECUTED 4411c: 45f9 0004 8dc4 lea 48dc4 ,%a2 <== NOT EXECUTED 44122: 4e92 jsr %a2@ <== NOT EXECUTED free (tty->rawOutBuf.theBuf); 44124: 2f2b 007c movel %a3@(124),%sp@- <== NOT EXECUTED 44128: 4e92 jsr %a2@ <== NOT EXECUTED free (tty->cbuf); 4412a: 2f2b 001c movel %a3@(28),%sp@- <== NOT EXECUTED 4412e: 4e92 jsr %a2@ <== NOT EXECUTED free (tty); 44130: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44132: 4e92 jsr %a2@ <== NOT EXECUTED 44134: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } rtems_semaphore_release (rtems_termios_ttyMutex); 4413a: 2f39 0005 6bcc movel 56bcc ,%sp@- <== NOT EXECUTED 44140: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 44146: 4cee 1c00 fff4 moveml %fp@(-12),%a2-%a4 <== NOT EXECUTED 4414c: 4e5e unlk %fp <== NOT EXECUTED 4414e: 4280 clrl %d0 <== NOT EXECUTED 44150: 4e75 rts 00042fb0 : * for each transmitted character. * It returns number of characters left to transmit */ int rtems_termios_dequeue_characters (void *ttyp, int len) { 42fb0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_status_code sc; /* * sum up character count already sent */ tty->t_dqlen += len; 42fb4: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED * for each transmitted character. * It returns number of characters left to transmit */ int rtems_termios_dequeue_characters (void *ttyp, int len) { 42fb8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED rtems_status_code sc; /* * sum up character count already sent */ tty->t_dqlen += len; 42fbc: d1a8 0090 addl %d0,%a0@(144) <== NOT EXECUTED if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { 42fc0: 7002 moveq #2,%d0 <== NOT EXECUTED 42fc2: b0a8 00b4 cmpl %a0@(180),%d0 <== NOT EXECUTED 42fc6: 661c bnes 42fe4 <== NOT EXECUTED /* * send wake up to transmitter task */ sc = rtems_event_send(tty->txTaskId, 42fc8: 4878 0002 pea 2 <== NOT EXECUTED 42fcc: 2f28 00c8 movel %a0@(200),%sp@- <== NOT EXECUTED 42fd0: 4eb9 0004 49e4 jsr 449e4 <== NOT EXECUTED TERMIOS_TX_START_EVENT); if (sc != RTEMS_SUCCESSFUL) 42fd6: 508f addql #8,%sp <== NOT EXECUTED 42fd8: 4a80 tstl %d0 <== NOT EXECUTED 42fda: 672e beqs 4300a <== NOT EXECUTED rtems_fatal_error_occurred (sc); 42fdc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42fde: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED return 0; /* nothing to output in IRQ... */ } else if (tty->t_line == PPPDISC ) { 42fe4: 7005 moveq #5,%d0 <== NOT EXECUTED 42fe6: b0a8 00cc cmpl %a0@(204),%d0 <== NOT EXECUTED 42fea: 6612 bnes 42ffe <== NOT EXECUTED /* * call any line discipline start function */ if (rtems_termios_linesw[tty->t_line].l_start != NULL) { 42fec: 2279 0005 6404 moveal 56404 ,%a1 <== NOT EXECUTED 42ff2: 4a89 tstl %a1 <== NOT EXECUTED 42ff4: 6714 beqs 4300a <== NOT EXECUTED rtems_termios_linesw[tty->t_line].l_start(tty); 42ff6: 2f08 movel %a0,%sp@- <== NOT EXECUTED 42ff8: 4e91 jsr %a1@ <== NOT EXECUTED 42ffa: 588f addql #4,%sp <== NOT EXECUTED 42ffc: 600c bras 4300a <== NOT EXECUTED } return 0; /* nothing to output in IRQ... */ } else { return rtems_termios_refill_transmitter(tty); 42ffe: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } } 43002: 4e5e unlk %fp <== NOT EXECUTED rtems_termios_linesw[tty->t_line].l_start(tty); } return 0; /* nothing to output in IRQ... */ } else { return rtems_termios_refill_transmitter(tty); 43004: 4ef9 0004 2df8 jmp 42df8 <== NOT EXECUTED } } 4300a: 4e5e unlk %fp <== NOT EXECUTED 4300c: 4280 clrl %d0 <== NOT EXECUTED 4300e: 4e75 rts 00043010 : * device receive interrupt handler. * Returns the number of characters dropped because of overflow. */ int rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len) { 43010: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 43014: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 43018: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED char c; int dropped = 0; bool flow_rcv = false; /* true, if flow control char received */ rtems_interrupt_level level; if (rtems_termios_linesw[tty->t_line].l_rint != NULL) { 4301c: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED * device receive interrupt handler. * Returns the number of characters dropped because of overflow. */ int rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len) { 43020: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED 43024: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED char c; int dropped = 0; bool flow_rcv = false; /* true, if flow control char received */ rtems_interrupt_level level; if (rtems_termios_linesw[tty->t_line].l_rint != NULL) { 43028: eb88 lsll #5,%d0 <== NOT EXECUTED 4302a: 41f9 0005 6350 lea 56350 ,%a0 <== NOT EXECUTED 43030: 4ab0 0810 tstl %a0@(00000010,%d0:l) <== NOT EXECUTED 43034: 6628 bnes 4305e <== NOT EXECUTED if ((tty->flow_ctrl & FL_OSTOP) || (tty->rawOutBufState == rob_idle)) { /* if tx is stopped due to XOFF or out of data */ /* call write function here */ tty->flow_ctrl |= FL_ISNTXOF; (*tty->device.write)(tty->minor, 43036: 4bea 004a lea %a2@(74),%a5 <== NOT EXECUTED /* * check to see if rcv wakeup callback was set */ if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) { (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 4303a: 47ea 0030 lea %a2@(48),%a3 <== NOT EXECUTED 4303e: 4283 clrl %d3 <== NOT EXECUTED 43040: 4205 clrb %d5 <== NOT EXECUTED 43042: 6000 01fc braw 43240 <== NOT EXECUTED rtems_interrupt_level level; if (rtems_termios_linesw[tty->t_line].l_rint != NULL) { while (len--) { c = *buf++; rtems_termios_linesw[tty->t_line].l_rint(c,tty); 43046: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 4304a: eb88 lsll #5,%d0 <== NOT EXECUTED 4304c: 2073 0810 moveal %a3@(00000010,%d0:l),%a0 <== NOT EXECUTED 43050: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43052: 101c moveb %a4@+,%d0 <== NOT EXECUTED 43054: 49c0 extbl %d0 <== NOT EXECUTED 43056: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43058: 4e90 jsr %a0@ <== NOT EXECUTED 4305a: 508f addql #8,%sp <== NOT EXECUTED 4305c: 6002 bras 43060 <== NOT EXECUTED 4305e: 2648 moveal %a0,%a3 <== NOT EXECUTED int dropped = 0; bool flow_rcv = false; /* true, if flow control char received */ rtems_interrupt_level level; if (rtems_termios_linesw[tty->t_line].l_rint != NULL) { while (len--) { 43060: 5384 subql #1,%d4 <== NOT EXECUTED 43062: 72ff moveq #-1,%d1 <== NOT EXECUTED 43064: b284 cmpl %d4,%d1 <== NOT EXECUTED 43066: 66de bnes 43046 <== NOT EXECUTED } /* * check to see if rcv wakeup callback was set */ if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) { 43068: 4aaa 00e4 tstl %a2@(228) <== NOT EXECUTED 4306c: 6600 01ee bnew 4325c <== NOT EXECUTED 43070: 206a 00dc moveal %a2@(220),%a0 <== NOT EXECUTED 43074: 4a88 tstl %a0 <== NOT EXECUTED 43076: 6700 01e4 beqw 4325c <== NOT EXECUTED (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 4307a: 2f2a 00e0 movel %a2@(224),%sp@- <== NOT EXECUTED tty->tty_rcvwakeup = 1; 4307e: 7c01 moveq #1,%d6 <== NOT EXECUTED 43080: 4283 clrl %d3 <== NOT EXECUTED /* * check to see if rcv wakeup callback was set */ if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) { (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 43082: 486a 0030 pea %a2@(48) <== NOT EXECUTED 43086: 4e90 jsr %a0@ <== NOT EXECUTED tty->tty_rcvwakeup = 1; 43088: 508f addql #8,%sp <== NOT EXECUTED 4308a: 2546 00e4 movel %d6,%a2@(228) <== NOT EXECUTED 4308e: 6000 01ce braw 4325e <== NOT EXECUTED while (len--) { c = *buf++; /* FIXME: implement IXANY: any character restarts output */ /* if incoming XON/XOFF controls outgoing stream: */ if (tty->flow_ctrl & FL_MDXON) { 43092: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED } return 0; } while (len--) { c = *buf++; 43096: 1d54 fffb moveb %a4@,%fp@(-5) <== NOT EXECUTED /* FIXME: implement IXANY: any character restarts output */ /* if incoming XON/XOFF controls outgoing stream: */ if (tty->flow_ctrl & FL_MDXON) { 4309a: 0800 0009 btst #9,%d0 <== NOT EXECUTED 4309e: 6740 beqs 430e0 <== NOT EXECUTED /* if received char is V_STOP and V_START (both are equal value) */ if (c == tty->termios.c_cc[VSTOP]) { 430a0: 4280 clrl %d0 <== NOT EXECUTED 430a2: 102a 004a moveb %a2@(74),%d0 <== NOT EXECUTED 430a6: 122e fffb moveb %fp@(-5),%d1 <== NOT EXECUTED 430aa: 4282 clrl %d2 <== NOT EXECUTED 430ac: 49c1 extbl %d1 <== NOT EXECUTED 430ae: 142a 0049 moveb %a2@(73),%d2 <== NOT EXECUTED 430b2: b081 cmpl %d1,%d0 <== NOT EXECUTED 430b4: 6618 bnes 430ce <== NOT EXECUTED if (c == tty->termios.c_cc[VSTART]) { 430b6: b481 cmpl %d1,%d2 <== NOT EXECUTED 430b8: 660a bnes 430c4 <== NOT EXECUTED /* received VSTOP and VSTART==VSTOP? */ /* then toggle "stop output" status */ tty->flow_ctrl = tty->flow_ctrl ^ FL_ORCVXOF; 430ba: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 430be: 7e10 moveq #16,%d7 <== NOT EXECUTED 430c0: bf80 eorl %d7,%d0 <== NOT EXECUTED 430c2: 6016 bras 430da <== NOT EXECUTED } else { /* VSTOP received (other code than VSTART) */ /* stop output */ tty->flow_ctrl |= FL_ORCVXOF; 430c4: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 430c8: 7210 moveq #16,%d1 <== NOT EXECUTED 430ca: 8081 orl %d1,%d0 <== NOT EXECUTED 430cc: 600c bras 430da <== NOT EXECUTED } flow_rcv = true; } else if (c == tty->termios.c_cc[VSTART]) { 430ce: b481 cmpl %d1,%d2 <== NOT EXECUTED 430d0: 660e bnes 430e0 <== NOT EXECUTED /* VSTART received */ /* restart output */ tty->flow_ctrl &= ~FL_ORCVXOF; 430d2: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 430d6: 7cef moveq #-17,%d6 <== NOT EXECUTED 430d8: c086 andl %d6,%d0 <== NOT EXECUTED 430da: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED 430de: 6004 bras 430e4 <== NOT EXECUTED flow_rcv = true; } } if (flow_rcv) { 430e0: 4a05 tstb %d5 <== NOT EXECUTED 430e2: 6752 beqs 43136 <== NOT EXECUTED /* restart output according to FL_ORCVXOF flag */ if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) { 430e4: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 430e8: 7e30 moveq #48,%d7 <== NOT EXECUTED 430ea: c087 andl %d7,%d0 <== NOT EXECUTED 430ec: 7220 moveq #32,%d1 <== NOT EXECUTED 430ee: b280 cmpl %d0,%d1 <== NOT EXECUTED 430f0: 663e bnes 43130 <== NOT EXECUTED /* disable interrupts */ rtems_interrupt_disable(level); 430f2: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 430f8: 40c2 movew %sr,%d2 <== NOT EXECUTED 430fa: 8082 orl %d2,%d0 <== NOT EXECUTED 430fc: 46c0 movew %d0,%sr <== NOT EXECUTED tty->flow_ctrl &= ~FL_OSTOP; 430fe: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43102: 7cdf moveq #-33,%d6 <== NOT EXECUTED 43104: c086 andl %d6,%d0 <== NOT EXECUTED 43106: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* check for chars in output buffer (or rob_state?) */ if (tty->rawOutBufState != rob_idle) { 4310a: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 4310e: 671e beqs 4312e <== NOT EXECUTED /* if chars available, call write function... */ (*tty->device.write)(tty->minor, 43110: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 43114: 4878 0001 pea 1 <== NOT EXECUTED 43118: d0aa 007c addl %a2@(124),%d0 <== NOT EXECUTED 4311c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4311e: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 43122: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43126: 4e90 jsr %a0@ <== NOT EXECUTED 43128: dffc 0000 000c addal #12,%sp <== NOT EXECUTED &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail], 1); } /* reenable interrupts */ rtems_interrupt_enable(level); 4312e: 46c2 movew %d2,%sr <== NOT EXECUTED 43130: 7a01 moveq #1,%d5 <== NOT EXECUTED 43132: 6000 010a braw 4323e <== NOT EXECUTED } } else { newTail = (tty->rawInBuf.Tail + 1) % tty->rawInBuf.Size; 43136: 202a 0060 movel %a2@(96),%d0 <== NOT EXECUTED 4313a: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED 4313e: 5280 addql #1,%d0 <== NOT EXECUTED 43140: 4c41 0002 remul %d1,%d2,%d0 <== NOT EXECUTED /* if chars_in_buffer > highwater */ rtems_interrupt_disable(level); 43144: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4314a: 40c7 movew %sr,%d7 <== NOT EXECUTED 4314c: 8087 orl %d7,%d0 <== NOT EXECUTED 4314e: 46c0 movew %d0,%sr <== NOT EXECUTED 43150: 2d47 fffc movel %d7,%fp@(-4) <== NOT EXECUTED if ((((newTail - tty->rawInBuf.Head + tty->rawInBuf.Size) 43154: 222a 005c movel %a2@(92),%d1 <== NOT EXECUTED 43158: 202a 0064 movel %a2@(100),%d0 <== NOT EXECUTED 4315c: 9081 subl %d1,%d0 <== NOT EXECUTED 4315e: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED 43162: d082 addl %d2,%d0 <== NOT EXECUTED 43164: 2c00 movel %d0,%d6 <== NOT EXECUTED 43166: 4c41 6007 remul %d1,%d7,%d6 <== NOT EXECUTED 4316a: beaa 00c0 cmpl %a2@(192),%d7 <== NOT EXECUTED 4316e: 6300 008e blsw 431fe <== NOT EXECUTED 43172: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43176: 0800 0000 btst #0,%d0 <== NOT EXECUTED 4317a: 6600 0082 bnew 431fe <== NOT EXECUTED % tty->rawInBuf.Size) > tty->highwater) && !(tty->flow_ctrl & FL_IREQXOF)) { /* incoming data stream should be stopped */ tty->flow_ctrl |= FL_IREQXOF; 4317e: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43182: 7201 moveq #1,%d1 <== NOT EXECUTED 43184: 8081 orl %d1,%d0 <== NOT EXECUTED 43186: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED if ((tty->flow_ctrl & (FL_MDXOF | FL_ISNTXOF)) 4318a: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 4318e: 0280 0000 0402 andil #1026,%d0 <== NOT EXECUTED 43194: 0c80 0000 0400 cmpil #1024,%d0 <== NOT EXECUTED 4319a: 6634 bnes 431d0 <== NOT EXECUTED == (FL_MDXOF ) ){ if ((tty->flow_ctrl & FL_OSTOP) || 4319c: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 431a0: 0800 0005 btst #5,%d0 <== NOT EXECUTED 431a4: 6606 bnes 431ac <== NOT EXECUTED 431a6: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 431aa: 6652 bnes 431fe <== NOT EXECUTED (tty->rawOutBufState == rob_idle)) { /* if tx is stopped due to XOFF or out of data */ /* call write function here */ tty->flow_ctrl |= FL_ISNTXOF; (*tty->device.write)(tty->minor, 431ac: 4878 0001 pea 1 <== NOT EXECUTED == (FL_MDXOF ) ){ if ((tty->flow_ctrl & FL_OSTOP) || (tty->rawOutBufState == rob_idle)) { /* if tx is stopped due to XOFF or out of data */ /* call write function here */ tty->flow_ctrl |= FL_ISNTXOF; 431b0: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED (*tty->device.write)(tty->minor, 431b4: 2f0d movel %a5,%sp@- <== NOT EXECUTED 431b6: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 431ba: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED == (FL_MDXOF ) ){ if ((tty->flow_ctrl & FL_OSTOP) || (tty->rawOutBufState == rob_idle)) { /* if tx is stopped due to XOFF or out of data */ /* call write function here */ tty->flow_ctrl |= FL_ISNTXOF; 431be: 7c02 moveq #2,%d6 <== NOT EXECUTED 431c0: 8086 orl %d6,%d0 <== NOT EXECUTED 431c2: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED (*tty->device.write)(tty->minor, 431c6: 4e90 jsr %a0@ <== NOT EXECUTED 431c8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 431ce: 602e bras 431fe <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTOP]), 1); } } else if ((tty->flow_ctrl & (FL_MDRTS | FL_IRTSOFF)) 431d0: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 431d4: 0280 0000 0104 andil #260,%d0 <== NOT EXECUTED 431da: 0c80 0000 0100 cmpil #256,%d0 <== NOT EXECUTED 431e0: 661c bnes 431fe <== NOT EXECUTED == (FL_MDRTS ) ) { tty->flow_ctrl |= FL_IRTSOFF; 431e2: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 431e6: 7e04 moveq #4,%d7 <== NOT EXECUTED /* deactivate RTS line */ if (tty->device.stopRemoteTx != NULL) { 431e8: 206a 00ac moveal %a2@(172),%a0 <== NOT EXECUTED 1); } } else if ((tty->flow_ctrl & (FL_MDRTS | FL_IRTSOFF)) == (FL_MDRTS ) ) { tty->flow_ctrl |= FL_IRTSOFF; 431ec: 8087 orl %d7,%d0 <== NOT EXECUTED 431ee: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* deactivate RTS line */ if (tty->device.stopRemoteTx != NULL) { 431f2: 4a88 tstl %a0 <== NOT EXECUTED 431f4: 6708 beqs 431fe <== NOT EXECUTED tty->device.stopRemoteTx(tty->minor); 431f6: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 431fa: 4e90 jsr %a0@ <== NOT EXECUTED 431fc: 588f addql #4,%sp <== NOT EXECUTED } } } /* reenable interrupts */ rtems_interrupt_enable(level); 431fe: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 43202: 46c0 movew %d0,%sr <== NOT EXECUTED if (newTail == tty->rawInBuf.Head) { 43204: 202a 005c movel %a2@(92),%d0 <== NOT EXECUTED 43208: b082 cmpl %d2,%d0 <== NOT EXECUTED 4320a: 6604 bnes 43210 <== NOT EXECUTED dropped++; 4320c: 5283 addql #1,%d3 <== NOT EXECUTED 4320e: 602e bras 4323e <== NOT EXECUTED } else { tty->rawInBuf.theBuf[newTail] = c; 43210: 206a 0058 moveal %a2@(88),%a0 <== NOT EXECUTED 43214: 122e fffb moveb %fp@(-5),%d1 <== NOT EXECUTED 43218: 1181 2800 moveb %d1,%a0@(00000000,%d2:l) <== NOT EXECUTED tty->rawInBuf.Tail = newTail; 4321c: 2542 0060 movel %d2,%a2@(96) <== NOT EXECUTED /* * check to see if rcv wakeup callback was set */ if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) { 43220: 4aaa 00e4 tstl %a2@(228) <== NOT EXECUTED 43224: 6618 bnes 4323e <== NOT EXECUTED 43226: 206a 00dc moveal %a2@(220),%a0 <== NOT EXECUTED 4322a: 4a88 tstl %a0 <== NOT EXECUTED 4322c: 6710 beqs 4323e <== NOT EXECUTED (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 4322e: 2f2a 00e0 movel %a2@(224),%sp@- <== NOT EXECUTED tty->tty_rcvwakeup = 1; 43232: 7c01 moveq #1,%d6 <== NOT EXECUTED /* * check to see if rcv wakeup callback was set */ if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) { (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 43234: 2f0b movel %a3,%sp@- <== NOT EXECUTED 43236: 4e90 jsr %a0@ <== NOT EXECUTED tty->tty_rcvwakeup = 1; 43238: 508f addql #8,%sp <== NOT EXECUTED 4323a: 2546 00e4 movel %d6,%a2@(228) <== NOT EXECUTED } return 0; } while (len--) { c = *buf++; 4323e: 528c addql #1,%a4 <== NOT EXECUTED tty->tty_rcvwakeup = 1; } return 0; } while (len--) { 43240: 5384 subql #1,%d4 <== NOT EXECUTED 43242: 7eff moveq #-1,%d7 <== NOT EXECUTED 43244: be84 cmpl %d4,%d7 <== NOT EXECUTED 43246: 6600 fe4a bnew 43092 <== NOT EXECUTED tty->tty_rcvwakeup = 1; } } } } tty->rawInBufDropped += dropped; 4324a: d7aa 0078 addl %d3,%a2@(120) <== NOT EXECUTED rtems_semaphore_release (tty->rawInBuf.Semaphore); 4324e: 2f2a 0068 movel %a2@(104),%sp@- <== NOT EXECUTED 43252: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 43258: 588f addql #4,%sp <== NOT EXECUTED 4325a: 6002 bras 4325e <== NOT EXECUTED return dropped; 4325c: 4283 clrl %d3 <== NOT EXECUTED } 4325e: 2003 movel %d3,%d0 <== NOT EXECUTED 43260: 4cee 3cfc ffd0 moveml %fp@(-48),%d2-%d7/%a2-%a5 <== NOT EXECUTED 43266: 4e5e unlk %fp <== NOT EXECUTED 43268: 4e75 rts 00042d74 : struct rtems_termios_tty *rtems_termios_ttyTail; rtems_id rtems_termios_ttyMutex; void rtems_termios_initialize (void) { 42d74: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_status_code sc; /* * Create the mutex semaphore for the tty list */ if (!rtems_termios_ttyMutex) { 42d78: 4ab9 0005 6bcc tstl 56bcc <== NOT EXECUTED 42d7e: 662e bnes 42dae <== NOT EXECUTED sc = rtems_semaphore_create ( 42d80: 4879 0005 6bcc pea 56bcc <== NOT EXECUTED 42d86: 42a7 clrl %sp@- <== NOT EXECUTED 42d88: 4878 0054 pea 54 <== NOT EXECUTED 42d8c: 4878 0001 pea 1 <== NOT EXECUTED 42d90: 2f3c 5452 6d69 movel #1414688105,%sp@- <== NOT EXECUTED 42d96: 4eb9 0004 4c0c jsr 44c0c <== NOT EXECUTED rtems_build_name ('T', 'R', 'm', 'i'), 1, RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY, RTEMS_NO_PRIORITY, &rtems_termios_ttyMutex); if (sc != RTEMS_SUCCESSFUL) 42d9c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 42da2: 4a80 tstl %d0 <== NOT EXECUTED 42da4: 6708 beqs 42dae <== NOT EXECUTED rtems_fatal_error_occurred (sc); 42da6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42da8: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED } } 42dae: 4e5e unlk %fp <== NOT EXECUTED 42db0: 4e75 rts <== NOT EXECUTED ... 00043cd6 : } } rtems_status_code rtems_termios_ioctl (void *arg) { 43cd6: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 43cda: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 43cde: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED rtems_libio_ioctl_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 43ce2: 2054 moveal %a4@,%a0 <== NOT EXECUTED 43ce4: 2468 0028 moveal %a0@(40),%a2 <== NOT EXECUTED struct ttywakeup *wakeup = (struct ttywakeup *)args->buffer; rtems_status_code sc; args->ioctl_return = 0; sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 43ce8: 42a7 clrl %sp@- <== NOT EXECUTED rtems_status_code rtems_termios_ioctl (void *arg) { rtems_libio_ioctl_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; struct ttywakeup *wakeup = (struct ttywakeup *)args->buffer; 43cea: 266c 0008 moveal %a4@(8),%a3 <== NOT EXECUTED rtems_status_code sc; args->ioctl_return = 0; 43cee: 42ac 000c clrl %a4@(12) <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 43cf2: 42a7 clrl %sp@- <== NOT EXECUTED 43cf4: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 43cf8: 4eb9 0004 4e48 jsr 44e48 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 43cfe: dffc 0000 000c addal #12,%sp <== NOT EXECUTED struct rtems_termios_tty *tty = args->iop->data1; struct ttywakeup *wakeup = (struct ttywakeup *)args->buffer; rtems_status_code sc; args->ioctl_return = 0; sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 43d04: 2400 movel %d0,%d2 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 43d06: 6600 02e6 bnew 43fee <== NOT EXECUTED args->ioctl_return = sc; return sc; } switch (args->command) { 43d0a: 202c 0004 movel %a4@(4),%d0 <== NOT EXECUTED 43d0e: 7204 moveq #4,%d1 <== NOT EXECUTED 43d10: b280 cmpl %d0,%d1 <== NOT EXECUTED 43d12: 6700 024e beqw 43f62 <== NOT EXECUTED 43d16: 6514 bcss 43d2c <== NOT EXECUTED 43d18: 7602 moveq #2,%d3 <== NOT EXECUTED 43d1a: b680 cmpl %d0,%d3 <== NOT EXECUTED 43d1c: 677a beqs 43d98 <== NOT EXECUTED 43d1e: 6500 022a bcsw 43f4a <== NOT EXECUTED 43d22: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 43d26: b280 cmpl %d0,%d1 <== NOT EXECUTED 43d28: 662c bnes 43d56 <== NOT EXECUTED 43d2a: 6050 bras 43d7c <== NOT EXECUTED 43d2c: 0c80 4004 667f cmpil #1074030207,%d0 <== NOT EXECUTED 43d32: 6700 028c beqw 43fc0 <== NOT EXECUTED 43d36: 620a bhis 43d42 <== NOT EXECUTED 43d38: 7605 moveq #5,%d3 <== NOT EXECUTED 43d3a: b680 cmpl %d0,%d3 <== NOT EXECUTED 43d3c: 6618 bnes 43d56 <== NOT EXECUTED 43d3e: 6000 0212 braw 43f52 <== NOT EXECUTED 43d42: 0c80 4004 741a cmpil #1074033690,%d0 <== NOT EXECUTED 43d48: 6700 026c beqw 43fb6 <== NOT EXECUTED 43d4c: 0c80 8004 741b cmpil #-2147191781,%d0 <== NOT EXECUTED 43d52: 6700 021c beqw 43f70 <== NOT EXECUTED default: if (rtems_termios_linesw[tty->t_line].l_ioctl != NULL) { 43d56: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 43d5a: eb88 lsll #5,%d0 <== NOT EXECUTED 43d5c: 0680 0005 6368 addil #353128,%d0 <== NOT EXECUTED 43d62: 2240 moveal %d0,%a1 <== NOT EXECUTED 43d64: 2051 moveal %a1@,%a0 <== NOT EXECUTED 43d66: 4a88 tstl %a0 <== NOT EXECUTED 43d68: 6606 bnes 43d70 <== NOT EXECUTED 43d6a: 740a moveq #10,%d2 <== NOT EXECUTED 43d6c: 6000 0274 braw 43fe2 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_ioctl(tty,args); 43d70: 2f0c movel %a4,%sp@- <== NOT EXECUTED 43d72: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43d74: 4e90 jsr %a0@ <== NOT EXECUTED 43d76: 2400 movel %d0,%d2 <== NOT EXECUTED 43d78: 6000 01ca braw 43f44 <== NOT EXECUTED sc = RTEMS_INVALID_NUMBER; } break; case RTEMS_IO_GET_ATTRIBUTES: *(struct termios *)args->buffer = tty->termios; 43d7c: 4878 0024 pea 24 <== NOT EXECUTED 43d80: 486a 0030 pea %a2@(48) <== NOT EXECUTED 43d84: 2f2c 0008 movel %a4@(8),%sp@- <== NOT EXECUTED 43d88: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED 43d8e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43d94: 6000 024c braw 43fe2 <== NOT EXECUTED break; case RTEMS_IO_SET_ATTRIBUTES: tty->termios = *(struct termios *)args->buffer; 43d98: 4878 0024 pea 24 <== NOT EXECUTED 43d9c: 2f2c 0008 movel %a4@(8),%sp@- <== NOT EXECUTED 43da0: 486a 0030 pea %a2@(48) <== NOT EXECUTED 43da4: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED /* * check for flow control options to be switched off */ /* check for outgoing XON/XOFF flow control switched off */ if (( tty->flow_ctrl & FL_MDXON) && 43daa: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43dae: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43db4: 0800 0009 btst #9,%d0 <== NOT EXECUTED 43db8: 6762 beqs 43e1c <== NOT EXECUTED 43dba: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 43dbe: 0280 0000 0400 andil #1024,%d0 <== NOT EXECUTED 43dc4: 6656 bnes 43e1c <== NOT EXECUTED !(tty->termios.c_iflag & IXON)) { /* clear related flags in flow_ctrl */ tty->flow_ctrl &= ~(FL_MDXON | FL_ORCVXOF); 43dc6: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43dca: 0280 ffff fdef andil #-529,%d0 <== NOT EXECUTED 43dd0: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* has output been stopped due to received XOFF? */ if (tty->flow_ctrl & FL_OSTOP) { 43dd4: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43dd8: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43ddc: 673e beqs 43e1c <== NOT EXECUTED /* disable interrupts */ rtems_interrupt_disable(level); 43dde: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 43de4: 40c3 movew %sr,%d3 <== NOT EXECUTED 43de6: 8083 orl %d3,%d0 <== NOT EXECUTED 43de8: 46c0 movew %d0,%sr <== NOT EXECUTED tty->flow_ctrl &= ~FL_OSTOP; 43dea: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43dee: 72df moveq #-33,%d1 <== NOT EXECUTED 43df0: c081 andl %d1,%d0 <== NOT EXECUTED 43df2: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* check for chars in output buffer (or rob_state?) */ if (tty->rawOutBufState != rob_idle) { 43df6: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 43dfa: 671e beqs 43e1a <== NOT EXECUTED /* if chars available, call write function... */ (*tty->device.write)(tty->minor, 43dfc: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 43e00: 4878 0001 pea 1 <== NOT EXECUTED 43e04: d0aa 007c addl %a2@(124),%d0 <== NOT EXECUTED 43e08: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43e0a: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43e0e: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 43e12: 4e90 jsr %a0@ <== NOT EXECUTED 43e14: dffc 0000 000c addal #12,%sp <== NOT EXECUTED &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1); } /* reenable interrupts */ rtems_interrupt_enable(level); 43e1a: 46c3 movew %d3,%sr <== NOT EXECUTED } } /* check for incoming XON/XOFF flow control switched off */ if (( tty->flow_ctrl & FL_MDXOF) && 43e1c: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e20: 0800 000a btst #10,%d0 <== NOT EXECUTED 43e24: 6724 beqs 43e4a <== NOT EXECUTED 43e26: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 43e2a: 0280 0000 1000 andil #4096,%d0 <== NOT EXECUTED 43e30: 6618 bnes 43e4a <== NOT EXECUTED !(tty->termios.c_iflag & IXOFF)) { /* clear related flags in flow_ctrl */ tty->flow_ctrl &= ~(FL_MDXOF); 43e32: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e36: 0880 000a bclr #10,%d0 <== NOT EXECUTED 43e3a: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* FIXME: what happens, if we had sent XOFF but not yet XON? */ tty->flow_ctrl &= ~(FL_ISNTXOF); 43e3e: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e42: 76fd moveq #-3,%d3 <== NOT EXECUTED 43e44: c083 andl %d3,%d0 <== NOT EXECUTED 43e46: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED } /* check for incoming RTS/CTS flow control switched off */ if (( tty->flow_ctrl & FL_MDRTS) && 43e4a: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e4e: 0800 0008 btst #8,%d0 <== NOT EXECUTED 43e52: 6736 beqs 43e8a <== NOT EXECUTED 43e54: 4aaa 0038 tstl %a2@(56) <== NOT EXECUTED 43e58: 6d30 blts 43e8a <== NOT EXECUTED !(tty->termios.c_cflag & CRTSCTS)) { /* clear related flags in flow_ctrl */ tty->flow_ctrl &= ~(FL_MDRTS); 43e5a: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e5e: 0880 0008 bclr #8,%d0 <== NOT EXECUTED 43e62: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* restart remote Tx, if it was stopped */ if ((tty->flow_ctrl & FL_IRTSOFF) && 43e66: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e6a: 44c0 movew %d0,%ccr <== NOT EXECUTED 43e6c: 6610 bnes 43e7e <== NOT EXECUTED 43e6e: 206a 00b0 moveal %a2@(176),%a0 <== NOT EXECUTED 43e72: 4a88 tstl %a0 <== NOT EXECUTED 43e74: 6708 beqs 43e7e <== NOT EXECUTED (tty->device.startRemoteTx != NULL)) { tty->device.startRemoteTx(tty->minor); 43e76: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43e7a: 4e90 jsr %a0@ <== NOT EXECUTED 43e7c: 588f addql #4,%sp <== NOT EXECUTED } tty->flow_ctrl &= ~(FL_IRTSOFF); 43e7e: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e82: 72fb moveq #-5,%d1 <== NOT EXECUTED 43e84: c081 andl %d1,%d0 <== NOT EXECUTED 43e86: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* * check for flow control options to be switched on */ /* check for incoming RTS/CTS flow control switched on */ if (tty->termios.c_cflag & CRTSCTS) { 43e8a: 4aaa 0038 tstl %a2@(56) <== NOT EXECUTED 43e8e: 6c0c bges 43e9c <== NOT EXECUTED tty->flow_ctrl |= FL_MDRTS; 43e90: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e94: 08c0 0008 bset #8,%d0 <== NOT EXECUTED 43e98: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED } /* check for incoming XON/XOF flow control switched on */ if (tty->termios.c_iflag & IXOFF) { 43e9c: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 43ea0: 0280 0000 1000 andil #4096,%d0 <== NOT EXECUTED 43ea6: 670c beqs 43eb4 <== NOT EXECUTED tty->flow_ctrl |= FL_MDXOF; 43ea8: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43eac: 08c0 000a bset #10,%d0 <== NOT EXECUTED 43eb0: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED } /* check for outgoing XON/XOF flow control switched on */ if (tty->termios.c_iflag & IXON) { 43eb4: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 43eb8: 0280 0000 0400 andil #1024,%d0 <== NOT EXECUTED 43ebe: 670c beqs 43ecc <== NOT EXECUTED tty->flow_ctrl |= FL_MDXON; 43ec0: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43ec4: 08c0 0009 bset #9,%d0 <== NOT EXECUTED 43ec8: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED tty->termios = *(struct termios *)args->buffer; /* check for and process change in flow control options */ termios_set_flowctrl(tty); if (tty->termios.c_lflag & ICANON) { 43ecc: 7002 moveq #2,%d0 <== NOT EXECUTED 43ece: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 43ed2: 6648 bnes 43f1c <== NOT EXECUTED tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT; tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT; } else { rtems_interval ticksPerSecond; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticksPerSecond); 43ed4: 486e fffc pea %fp@(-4) <== NOT EXECUTED tty->vtimeTicks = tty->termios.c_cc[VTIME] * ticksPerSecond / 10; 43ed8: 760a moveq #10,%d3 <== NOT EXECUTED tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT; tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT; } else { rtems_interval ticksPerSecond; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticksPerSecond); 43eda: 4878 0003 pea 3 <== NOT EXECUTED 43ede: 4eb9 0004 463c jsr 4463c <== NOT EXECUTED tty->vtimeTicks = tty->termios.c_cc[VTIME] * ticksPerSecond / 10; 43ee4: 4280 clrl %d0 <== NOT EXECUTED 43ee6: 102a 0046 moveb %a2@(70),%d0 <== NOT EXECUTED 43eea: 41ee fffc lea %fp@(-4),%a0 <== NOT EXECUTED 43eee: 4c10 0800 mulsl %a0@,%d0 <== NOT EXECUTED if (tty->termios.c_cc[VTIME]) { 43ef2: 508f addql #8,%sp <== NOT EXECUTED tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT; } else { rtems_interval ticksPerSecond; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticksPerSecond); tty->vtimeTicks = tty->termios.c_cc[VTIME] * ticksPerSecond / 10; 43ef4: 4c43 0000 remul %d3,%d0,%d0 <== NOT EXECUTED 43ef8: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED if (tty->termios.c_cc[VTIME]) { 43efc: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 43f00: 6714 beqs 43f16 <== NOT EXECUTED tty->rawInBufSemaphoreOptions = RTEMS_WAIT; 43f02: 42aa 006c clrl %a2@(108) <== NOT EXECUTED tty->rawInBufSemaphoreTimeout = tty->vtimeTicks; 43f06: 2540 0070 movel %d0,%a2@(112) <== NOT EXECUTED if (tty->termios.c_cc[VMIN]) 43f0a: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 43f0e: 6614 bnes 43f24 <== NOT EXECUTED tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT; else tty->rawInBufSemaphoreFirstTimeout = tty->vtimeTicks; 43f10: 2540 0074 movel %d0,%a2@(116) <== NOT EXECUTED 43f14: 601a bras 43f30 <== NOT EXECUTED } else { if (tty->termios.c_cc[VMIN]) { 43f16: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 43f1a: 670e beqs 43f2a <== NOT EXECUTED tty->rawInBufSemaphoreOptions = RTEMS_WAIT; 43f1c: 42aa 006c clrl %a2@(108) <== NOT EXECUTED tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT; 43f20: 42aa 0070 clrl %a2@(112) <== NOT EXECUTED tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT; 43f24: 42aa 0074 clrl %a2@(116) <== NOT EXECUTED 43f28: 6006 bras 43f30 <== NOT EXECUTED } else { tty->rawInBufSemaphoreOptions = RTEMS_NO_WAIT; 43f2a: 7001 moveq #1,%d0 <== NOT EXECUTED 43f2c: 2540 006c movel %d0,%a2@(108) <== NOT EXECUTED } } } if (tty->device.setAttributes) 43f30: 206a 00a8 moveal %a2@(168),%a0 <== NOT EXECUTED 43f34: 4a88 tstl %a0 <== NOT EXECUTED 43f36: 6700 00aa beqw 43fe2 <== NOT EXECUTED (*tty->device.setAttributes)(tty->minor, &tty->termios); 43f3a: 486a 0030 pea %a2@(48) <== NOT EXECUTED 43f3e: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43f42: 4e90 jsr %a0@ <== NOT EXECUTED 43f44: 508f addql #8,%sp <== NOT EXECUTED 43f46: 6000 009a braw 43fe2 <== NOT EXECUTED break; case RTEMS_IO_TCDRAIN: drainOutput (tty); 43f4a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43f4c: 4eba fa0e jsr %pc@(4395c ) <== NOT EXECUTED 43f50: 6060 bras 43fb2 <== NOT EXECUTED break; case RTEMS_IO_SNDWAKEUP: tty->tty_snd = *wakeup; 43f52: 2013 movel %a3@,%d0 <== NOT EXECUTED 43f54: 256b 0004 00d8 movel %a3@(4),%a2@(216) <== NOT EXECUTED 43f5a: 2540 00d4 movel %d0,%a2@(212) <== NOT EXECUTED 43f5e: 6000 0082 braw 43fe2 <== NOT EXECUTED break; case RTEMS_IO_RCVWAKEUP: tty->tty_rcv = *wakeup; 43f62: 2013 movel %a3@,%d0 <== NOT EXECUTED 43f64: 256b 0004 00e0 movel %a3@(4),%a2@(224) <== NOT EXECUTED 43f6a: 2540 00dc movel %d0,%a2@(220) <== NOT EXECUTED 43f6e: 6072 bras 43fe2 <== NOT EXECUTED #if 1 /* FIXME */ case TIOCSETD: /* * close old line discipline */ if (rtems_termios_linesw[tty->t_line].l_close != NULL) { 43f70: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 43f74: 41f9 0005 6350 lea 56350 ,%a0 <== NOT EXECUTED 43f7a: e788 lsll #3,%d0 <== NOT EXECUTED 43f7c: 2070 0c04 moveal %a0@(00000004,%d0:l:4),%a0 <== NOT EXECUTED 43f80: 4a88 tstl %a0 <== NOT EXECUTED 43f82: 6708 beqs 43f8c <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_close(tty); 43f84: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43f86: 4e90 jsr %a0@ <== NOT EXECUTED 43f88: 588f addql #4,%sp <== NOT EXECUTED 43f8a: 2400 movel %d0,%d2 <== NOT EXECUTED } tty->t_line=*(int*)(args->buffer); 43f8c: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 43f90: 2550 00cc movel %a0@,%a2@(204) <== NOT EXECUTED tty->t_sc = NULL; /* ensure that no more valid data */ /* * open new line discipline */ if (rtems_termios_linesw[tty->t_line].l_open != NULL) { 43f94: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 43f98: 41f9 0005 6350 lea 56350 ,%a0 <== NOT EXECUTED 43f9e: eb88 lsll #5,%d0 <== NOT EXECUTED 43fa0: 2070 0800 moveal %a0@(00000000,%d0:l),%a0 <== NOT EXECUTED */ if (rtems_termios_linesw[tty->t_line].l_close != NULL) { sc = rtems_termios_linesw[tty->t_line].l_close(tty); } tty->t_line=*(int*)(args->buffer); tty->t_sc = NULL; /* ensure that no more valid data */ 43fa4: 42aa 00d0 clrl %a2@(208) <== NOT EXECUTED /* * open new line discipline */ if (rtems_termios_linesw[tty->t_line].l_open != NULL) { 43fa8: 4a88 tstl %a0 <== NOT EXECUTED 43faa: 6736 beqs 43fe2 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_open(tty); 43fac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43fae: 4e90 jsr %a0@ <== NOT EXECUTED 43fb0: 2400 movel %d0,%d2 <== NOT EXECUTED 43fb2: 588f addql #4,%sp <== NOT EXECUTED 43fb4: 602c bras 43fe2 <== NOT EXECUTED } break; case TIOCGETD: *(int*)(args->buffer)=tty->t_line; 43fb6: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 43fba: 20aa 00cc movel %a2@(204),%a0@ <== NOT EXECUTED 43fbe: 6022 bras 43fe2 <== NOT EXECUTED break; #endif case FIONREAD: { int rawnc = tty->rawInBuf.Tail - tty->rawInBuf.Head; 43fc0: 222a 0060 movel %a2@(96),%d1 <== NOT EXECUTED 43fc4: 202a 005c movel %a2@(92),%d0 <== NOT EXECUTED 43fc8: 9280 subl %d0,%d1 <== NOT EXECUTED if ( rawnc < 0 ) 43fca: 6a06 bpls 43fd2 <== NOT EXECUTED rawnc += tty->rawInBuf.Size; 43fcc: 202a 0064 movel %a2@(100),%d0 <== NOT EXECUTED 43fd0: d280 addl %d0,%d1 <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; 43fd2: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 43fd6: 90aa 0024 subl %a2@(36),%d0 <== NOT EXECUTED 43fda: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 43fde: d081 addl %d1,%d0 <== NOT EXECUTED 43fe0: 2080 movel %d0,%a0@ <== NOT EXECUTED } break; } rtems_semaphore_release (tty->osem); 43fe2: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 43fe6: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED args->ioctl_return = sc; 43fec: 588f addql #4,%sp <== NOT EXECUTED return sc; } 43fee: 2002 movel %d2,%d0 <== NOT EXECUTED *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); args->ioctl_return = sc; 43ff0: 2942 000c movel %d2,%a4@(12) <== NOT EXECUTED return sc; } 43ff4: 4cee 1c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a4 <== NOT EXECUTED 43ffa: 4e5e unlk %fp <== NOT EXECUTED 43ffc: 4e75 rts 00044152 : rtems_device_major_number major, rtems_device_minor_number minor, void *arg, const rtems_termios_callbacks *callbacks ) { 44152: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 44156: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== NOT EXECUTED struct rtems_termios_tty *tty; /* * See if the device has already been opened */ sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, 4415a: 42a7 clrl %sp@- <== NOT EXECUTED rtems_device_major_number major, rtems_device_minor_number minor, void *arg, const rtems_termios_callbacks *callbacks ) { 4415c: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED struct rtems_termios_tty *tty; /* * See if the device has already been opened */ sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, 44160: 42a7 clrl %sp@- <== NOT EXECUTED rtems_device_major_number major, rtems_device_minor_number minor, void *arg, const rtems_termios_callbacks *callbacks ) { 44162: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 44166: 2a6e 0010 moveal %fp@(16),%a5 <== NOT EXECUTED struct rtems_termios_tty *tty; /* * See if the device has already been opened */ sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, 4416a: 2f39 0005 6bcc movel 56bcc ,%sp@- <== NOT EXECUTED 44170: 4eb9 0004 4e48 jsr 44e48 <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 44176: dffc 0000 000c addal #12,%sp <== NOT EXECUTED struct rtems_termios_tty *tty; /* * See if the device has already been opened */ sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, 4417c: 2400 movel %d0,%d2 <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 4417e: 6600 03b0 bnew 44530 <== NOT EXECUTED return sc; for (tty = rtems_termios_ttyHead ; tty != NULL ; tty = tty->forw) { 44182: 2679 0005 6bd4 moveal 56bd4 ,%a3 <== NOT EXECUTED 44188: 6010 bras 4419a <== NOT EXECUTED if ((tty->major == major) && (tty->minor == minor)) 4418a: b8ab 000c cmpl %a3@(12),%d4 <== NOT EXECUTED 4418e: 6608 bnes 44198 <== NOT EXECUTED 44190: b6ab 0010 cmpl %a3@(16),%d3 <== NOT EXECUTED 44194: 6700 031e beqw 444b4 <== NOT EXECUTED */ sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) return sc; for (tty = rtems_termios_ttyHead ; tty != NULL ; tty = tty->forw) { 44198: 2653 moveal %a3@,%a3 <== NOT EXECUTED 4419a: 4a8b tstl %a3 <== NOT EXECUTED 4419c: 66ec bnes 4418a <== NOT EXECUTED 4419e: 6000 039c braw 4453c <== NOT EXECUTED /* * Create a new device */ tty = calloc (1, sizeof (struct rtems_termios_tty)); if (tty == NULL) { rtems_semaphore_release (rtems_termios_ttyMutex); 441a2: 2f39 0005 6bcc movel 56bcc ,%sp@- <== NOT EXECUTED 441a8: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 441ae: 588f addql #4,%sp <== NOT EXECUTED 441b0: 6036 bras 441e8 <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate raw input buffer */ tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE; 441b2: 41f9 0005 55f8 lea 555f8 ,%a0 <== NOT EXECUTED 441b8: 2750 0064 movel %a0@,%a3@(100) <== NOT EXECUTED tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size); 441bc: 202b 0064 movel %a3@(100),%d0 <== NOT EXECUTED 441c0: 49f9 0004 92b0 lea 492b0 ,%a4 <== NOT EXECUTED 441c6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 441c8: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->rawInBuf.theBuf == NULL) { 441ca: 588f addql #4,%sp <== NOT EXECUTED } /* * allocate raw input buffer */ tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE; tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size); 441cc: 2740 0058 movel %d0,%a3@(88) <== NOT EXECUTED if (tty->rawInBuf.theBuf == NULL) { 441d0: 661c bnes 441ee <== NOT EXECUTED free(tty); 441d2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 441d4: 4eb9 0004 8dc4 jsr 48dc4 <== NOT EXECUTED rtems_semaphore_release (rtems_termios_ttyMutex); 441da: 2f39 0005 6bcc movel 56bcc ,%sp@- <== NOT EXECUTED 441e0: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 441e6: 508f addql #8,%sp <== NOT EXECUTED 441e8: 741a moveq #26,%d2 <== NOT EXECUTED 441ea: 6000 0344 braw 44530 <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate raw output buffer */ tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE; 441ee: 41f9 0005 55fc lea 555fc ,%a0 <== NOT EXECUTED 441f4: 2750 0088 movel %a0@,%a3@(136) <== NOT EXECUTED tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size); 441f8: 202b 0088 movel %a3@(136),%d0 <== NOT EXECUTED 441fc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 441fe: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->rawOutBuf.theBuf == NULL) { 44200: 588f addql #4,%sp <== NOT EXECUTED } /* * allocate raw output buffer */ tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE; tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size); 44202: 2740 007c movel %d0,%a3@(124) <== NOT EXECUTED if (tty->rawOutBuf.theBuf == NULL) { 44206: 6628 bnes 44230 <== NOT EXECUTED free((void *)(tty->rawInBuf.theBuf)); 44208: 2f2b 0058 movel %a3@(88),%sp@- <== NOT EXECUTED 4420c: 45f9 0004 8dc4 lea 48dc4 ,%a2 <== NOT EXECUTED 44212: 4e92 jsr %a2@ <== NOT EXECUTED free(tty); 44214: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44216: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_release (rtems_termios_ttyMutex); 44218: 741a moveq #26,%d2 <== NOT EXECUTED 4421a: 2f39 0005 6bcc movel 56bcc ,%sp@- <== NOT EXECUTED 44220: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 44226: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4422c: 6000 0302 braw 44530 <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate cooked buffer */ tty->cbuf = malloc (CBUFSIZE); 44230: 2f39 0005 55f4 movel 555f4 ,%sp@- <== NOT EXECUTED 44236: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->cbuf == NULL) { 44238: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate cooked buffer */ tty->cbuf = malloc (CBUFSIZE); 4423a: 2740 001c movel %d0,%a3@(28) <== NOT EXECUTED if (tty->cbuf == NULL) { 4423e: 662e bnes 4426e <== NOT EXECUTED free((void *)(tty->rawOutBuf.theBuf)); 44240: 2f2b 007c movel %a3@(124),%sp@- <== NOT EXECUTED 44244: 45f9 0004 8dc4 lea 48dc4 ,%a2 <== NOT EXECUTED 4424a: 4e92 jsr %a2@ <== NOT EXECUTED free((void *)(tty->rawInBuf.theBuf)); 4424c: 2f2b 0058 movel %a3@(88),%sp@- <== NOT EXECUTED 44250: 4e92 jsr %a2@ <== NOT EXECUTED free(tty); 44252: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44254: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_release (rtems_termios_ttyMutex); 44256: 741a moveq #26,%d2 <== NOT EXECUTED 44258: 2f39 0005 6bcc movel 56bcc ,%sp@- <== NOT EXECUTED 4425e: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 44264: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4426a: 6000 02c4 braw 44530 <== NOT EXECUTED tty->tty_rcvwakeup = 0; /* * link tty */ tty->forw = rtems_termios_ttyHead; 4426e: 2079 0005 6bd4 moveal 56bd4 ,%a0 <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * Initialize wakeup callbacks */ tty->tty_snd.sw_pfn = NULL; 44274: 42ab 00d4 clrl %a3@(212) <== NOT EXECUTED tty->tty_snd.sw_arg = NULL; 44278: 42ab 00d8 clrl %a3@(216) <== NOT EXECUTED tty->tty_rcv.sw_pfn = NULL; 4427c: 42ab 00dc clrl %a3@(220) <== NOT EXECUTED tty->tty_rcv.sw_arg = NULL; 44280: 42ab 00e0 clrl %a3@(224) <== NOT EXECUTED tty->tty_rcvwakeup = 0; 44284: 42ab 00e4 clrl %a3@(228) <== NOT EXECUTED /* * link tty */ tty->forw = rtems_termios_ttyHead; 44288: 2688 movel %a0,%a3@ <== NOT EXECUTED tty->back = NULL; 4428a: 42ab 0004 clrl %a3@(4) <== NOT EXECUTED if (rtems_termios_ttyHead != NULL) 4428e: 4a88 tstl %a0 <== NOT EXECUTED 44290: 6704 beqs 44296 <== NOT EXECUTED rtems_termios_ttyHead->back = tty; 44292: 214b 0004 movel %a3,%a0@(4) <== NOT EXECUTED rtems_termios_ttyHead = tty; 44296: 23ca 0005 6bd4 movel %a2,56bd4 <== NOT EXECUTED if (rtems_termios_ttyTail == NULL) 4429c: 4ab9 0005 6bd0 tstl 56bd0 <== NOT EXECUTED 442a2: 6606 bnes 442aa <== NOT EXECUTED rtems_termios_ttyTail = tty; 442a4: 23ca 0005 6bd0 movel %a2,56bd0 <== NOT EXECUTED tty->major = major; /* * Set up mutex semaphores */ sc = rtems_semaphore_create ( 442aa: 1039 0005 5600 moveb 55600 ,%d0 <== NOT EXECUTED rtems_termios_ttyHead->back = tty; rtems_termios_ttyHead = tty; if (rtems_termios_ttyTail == NULL) rtems_termios_ttyTail = tty; tty->minor = minor; 442b0: 2543 0010 movel %d3,%a2@(16) <== NOT EXECUTED tty->major = major; /* * Set up mutex semaphores */ sc = rtems_semaphore_create ( 442b4: 49c0 extbl %d0 <== NOT EXECUTED 442b6: 0080 5452 6900 oril #1414686976,%d0 <== NOT EXECUTED rtems_termios_ttyHead = tty; if (rtems_termios_ttyTail == NULL) rtems_termios_ttyTail = tty; tty->minor = minor; tty->major = major; 442bc: 2544 000c movel %d4,%a2@(12) <== NOT EXECUTED /* * Set up mutex semaphores */ sc = rtems_semaphore_create ( 442c0: 49f9 0004 4c0c lea 44c0c ,%a4 <== NOT EXECUTED 442c6: 486a 0014 pea %a2@(20) <== NOT EXECUTED 442ca: 42a7 clrl %sp@- <== NOT EXECUTED 442cc: 4878 0054 pea 54 <== NOT EXECUTED 442d0: 4878 0001 pea 1 <== NOT EXECUTED 442d4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 442d6: 4e94 jsr %a4@ <== NOT EXECUTED rtems_build_name ('T', 'R', 'i', c), 1, RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY, RTEMS_NO_PRIORITY, &tty->isem); if (sc != RTEMS_SUCCESSFUL) 442d8: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 442de: 4a80 tstl %d0 <== NOT EXECUTED 442e0: 6600 0238 bnew 4451a <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_semaphore_create ( 442e4: 486a 0018 pea %a2@(24) <== NOT EXECUTED 442e8: 1039 0005 5600 moveb 55600 ,%d0 <== NOT EXECUTED 442ee: 49c0 extbl %d0 <== NOT EXECUTED 442f0: 42a7 clrl %sp@- <== NOT EXECUTED 442f2: 0080 5452 6f00 oril #1414688512,%d0 <== NOT EXECUTED 442f8: 4878 0054 pea 54 <== NOT EXECUTED 442fc: 4878 0001 pea 1 <== NOT EXECUTED 44300: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44302: 4e94 jsr %a4@ <== NOT EXECUTED rtems_build_name ('T', 'R', 'o', c), 1, RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY, RTEMS_NO_PRIORITY, &tty->osem); if (sc != RTEMS_SUCCESSFUL) 44304: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4430a: 4a80 tstl %d0 <== NOT EXECUTED 4430c: 6600 020c bnew 4451a <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_semaphore_create ( 44310: 486a 008c pea %a2@(140) <== NOT EXECUTED 44314: 1039 0005 5600 moveb 55600 ,%d0 <== NOT EXECUTED 4431a: 49c0 extbl %d0 <== NOT EXECUTED 4431c: 42a7 clrl %sp@- <== NOT EXECUTED 4431e: 0080 5452 7800 oril #1414690816,%d0 <== NOT EXECUTED 44324: 4878 0020 pea 20 <== NOT EXECUTED 44328: 42a7 clrl %sp@- <== NOT EXECUTED 4432a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4432c: 4e94 jsr %a4@ <== NOT EXECUTED rtems_build_name ('T', 'R', 'x', c), 0, RTEMS_SIMPLE_BINARY_SEMAPHORE | RTEMS_FIFO, RTEMS_NO_PRIORITY, &tty->rawOutBuf.Semaphore); if (sc != RTEMS_SUCCESSFUL) 4432e: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 44334: 4a80 tstl %d0 <== NOT EXECUTED 44336: 6600 01e2 bnew 4451a <== NOT EXECUTED rtems_fatal_error_occurred (sc); tty->rawOutBufState = rob_idle; 4433a: 42aa 0094 clrl %a2@(148) <== NOT EXECUTED /* * Set callbacks */ tty->device = *callbacks; 4433e: 4878 0020 pea 20 <== NOT EXECUTED 44342: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 44346: 486a 0098 pea %a2@(152) <== NOT EXECUTED 4434a: 4eb9 0004 b3f4 jsr 4b3f4 <== NOT EXECUTED /* * Create I/O tasks */ if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { 44350: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44356: 7002 moveq #2,%d0 <== NOT EXECUTED 44358: b0aa 00b4 cmpl %a2@(180),%d0 <== NOT EXECUTED 4435c: 6666 bnes 443c4 <== NOT EXECUTED sc = rtems_task_create ( 4435e: 486a 00c8 pea %a2@(200) <== NOT EXECUTED 44362: 1039 0005 5600 moveb 55600 ,%d0 <== NOT EXECUTED 44368: 49c0 extbl %d0 <== NOT EXECUTED 4436a: 42a7 clrl %sp@- <== NOT EXECUTED 4436c: 0080 5478 5400 oril #1417171968,%d0 <== NOT EXECUTED 44372: 4878 0500 pea 500 <== NOT EXECUTED 44376: 49f9 0004 5008 lea 45008 ,%a4 <== NOT EXECUTED 4437c: 4878 0400 pea 400 <== NOT EXECUTED 44380: 4878 000a pea a <== NOT EXECUTED 44384: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44386: 4e94 jsr %a4@ <== NOT EXECUTED TERMIOS_TXTASK_STACKSIZE, RTEMS_NO_PREEMPT | RTEMS_NO_TIMESLICE | RTEMS_NO_ASR, RTEMS_NO_FLOATING_POINT | RTEMS_LOCAL, &tty->txTaskId); if (sc != RTEMS_SUCCESSFUL) 44388: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 4438e: 4a80 tstl %d0 <== NOT EXECUTED 44390: 6600 0188 bnew 4451a <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_task_create ( 44394: 486a 00c4 pea %a2@(196) <== NOT EXECUTED 44398: 1039 0005 5600 moveb 55600 ,%d0 <== NOT EXECUTED 4439e: 49c0 extbl %d0 <== NOT EXECUTED 443a0: 42a7 clrl %sp@- <== NOT EXECUTED 443a2: 0080 5278 5400 oril #1383617536,%d0 <== NOT EXECUTED 443a8: 4878 0500 pea 500 <== NOT EXECUTED 443ac: 4878 0400 pea 400 <== NOT EXECUTED 443b0: 4878 0009 pea 9 <== NOT EXECUTED 443b4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 443b6: 4e94 jsr %a4@ <== NOT EXECUTED TERMIOS_RXTASK_STACKSIZE, RTEMS_NO_PREEMPT | RTEMS_NO_TIMESLICE | RTEMS_NO_ASR, RTEMS_NO_FLOATING_POINT | RTEMS_LOCAL, &tty->rxTaskId); if (sc != RTEMS_SUCCESSFUL) 443b8: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 443be: 4a80 tstl %d0 <== NOT EXECUTED 443c0: 6600 0158 bnew 4451a <== NOT EXECUTED rtems_fatal_error_occurred (sc); } if ((tty->device.pollRead == NULL) || 443c4: 4aaa 00a0 tstl %a2@(160) <== NOT EXECUTED 443c8: 6708 beqs 443d2 <== NOT EXECUTED 443ca: 7202 moveq #2,%d1 <== NOT EXECUTED 443cc: b2aa 00b4 cmpl %a2@(180),%d1 <== NOT EXECUTED 443d0: 662e bnes 44400 <== NOT EXECUTED (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN)){ sc = rtems_semaphore_create ( 443d2: 486a 0068 pea %a2@(104) <== NOT EXECUTED 443d6: 1039 0005 5600 moveb 55600 ,%d0 <== NOT EXECUTED 443dc: 49c0 extbl %d0 <== NOT EXECUTED 443de: 42a7 clrl %sp@- <== NOT EXECUTED 443e0: 0080 5452 7200 oril #1414689280,%d0 <== NOT EXECUTED 443e6: 4878 0024 pea 24 <== NOT EXECUTED 443ea: 42a7 clrl %sp@- <== NOT EXECUTED 443ec: 2f00 movel %d0,%sp@- <== NOT EXECUTED 443ee: 4eb9 0004 4c0c jsr 44c0c <== NOT EXECUTED rtems_build_name ('T', 'R', 'r', c), 0, RTEMS_SIMPLE_BINARY_SEMAPHORE | RTEMS_PRIORITY, RTEMS_NO_PRIORITY, &tty->rawInBuf.Semaphore); if (sc != RTEMS_SUCCESSFUL) 443f4: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 443fa: 4a80 tstl %d0 <== NOT EXECUTED 443fc: 6600 011c bnew 4451a <== NOT EXECUTED tty->termios.c_cc[VDISCARD] = '\017'; tty->termios.c_cc[VWERASE] = '\027'; tty->termios.c_cc[VLNEXT] = '\026'; /* start with no flow control, clear flow control flags */ tty->flow_ctrl = 0; 44400: 42aa 00b8 clrl %a2@(184) <== NOT EXECUTED /* * set low/highwater mark for XON/XOFF support */ tty->lowwater = tty->rawInBuf.Size * 1/2; 44404: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED tty->highwater = tty->rawInBuf.Size * 3/4; 44408: 206a 0064 moveal %a2@(100),%a0 <== NOT EXECUTED tty->termios.c_oflag = OPOST | ONLCR | XTABS; tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL; tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL; tty->termios.c_cc[VINTR] = '\003'; tty->termios.c_cc[VQUIT] = '\034'; 4440c: 701c moveq #28,%d0 <== NOT EXECUTED 4440e: 1540 0042 moveb %d0,%a2@(66) <== NOT EXECUTED tty->flow_ctrl = 0; /* * set low/highwater mark for XON/XOFF support */ tty->lowwater = tty->rawInBuf.Size * 1/2; tty->highwater = tty->rawInBuf.Size * 3/4; 44412: 41f0 8a00 lea %a0@(00000000,%a0:l:2),%a0 <== NOT EXECUTED 44416: 2008 movel %a0,%d0 <== NOT EXECUTED tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; tty->termios.c_oflag = OPOST | ONLCR | XTABS; tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL; tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL; tty->termios.c_cc[VINTR] = '\003'; 44418: 7a03 moveq #3,%d5 <== NOT EXECUTED tty->flow_ctrl = 0; /* * set low/highwater mark for XON/XOFF support */ tty->lowwater = tty->rawInBuf.Size * 1/2; tty->highwater = tty->rawInBuf.Size * 3/4; 4441a: e488 lsrl #2,%d0 <== NOT EXECUTED tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; tty->termios.c_oflag = OPOST | ONLCR | XTABS; tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL; tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL; tty->termios.c_cc[VINTR] = '\003'; 4441c: 1545 0041 moveb %d5,%a2@(65) <== NOT EXECUTED tty->flow_ctrl = 0; /* * set low/highwater mark for XON/XOFF support */ tty->lowwater = tty->rawInBuf.Size * 1/2; tty->highwater = tty->rawInBuf.Size * 3/4; 44420: 2540 00c0 movel %d0,%a2@(192) <== NOT EXECUTED tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL; tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL; tty->termios.c_cc[VINTR] = '\003'; tty->termios.c_cc[VQUIT] = '\034'; tty->termios.c_cc[VERASE] = '\177'; 44424: 7a7f moveq #127,%d5 <== NOT EXECUTED /* start with no flow control, clear flow control flags */ tty->flow_ctrl = 0; /* * set low/highwater mark for XON/XOFF support */ tty->lowwater = tty->rawInBuf.Size * 1/2; 44426: e289 lsrl #1,%d1 <== NOT EXECUTED tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL; tty->termios.c_cc[VINTR] = '\003'; tty->termios.c_cc[VQUIT] = '\034'; tty->termios.c_cc[VERASE] = '\177'; tty->termios.c_cc[VKILL] = '\025'; 44428: 7015 moveq #21,%d0 <== NOT EXECUTED tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL; tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL; tty->termios.c_cc[VINTR] = '\003'; tty->termios.c_cc[VQUIT] = '\034'; tty->termios.c_cc[VERASE] = '\177'; 4442a: 1545 0043 moveb %d5,%a2@(67) <== NOT EXECUTED tty->termios.c_cc[VKILL] = '\025'; 4442e: 1540 0044 moveb %d0,%a2@(68) <== NOT EXECUTED /* start with no flow control, clear flow control flags */ tty->flow_ctrl = 0; /* * set low/highwater mark for XON/XOFF support */ tty->lowwater = tty->rawInBuf.Size * 1/2; 44432: 2541 00bc movel %d1,%a2@(188) <== NOT EXECUTED tty->termios.c_cc[VINTR] = '\003'; tty->termios.c_cc[VQUIT] = '\034'; tty->termios.c_cc[VERASE] = '\177'; tty->termios.c_cc[VKILL] = '\025'; tty->termios.c_cc[VEOF] = '\004'; tty->termios.c_cc[VEOL] = '\000'; 44436: 4200 clrb %d0 <== NOT EXECUTED tty->termios.c_cc[VINTR] = '\003'; tty->termios.c_cc[VQUIT] = '\034'; tty->termios.c_cc[VERASE] = '\177'; tty->termios.c_cc[VKILL] = '\025'; tty->termios.c_cc[VEOF] = '\004'; 44438: 7a04 moveq #4,%d5 <== NOT EXECUTED tty->termios.c_cc[VEOL] = '\000'; tty->termios.c_cc[VEOL2] = '\000'; tty->termios.c_cc[VSTART] = '\021'; 4443a: 7211 moveq #17,%d1 <== NOT EXECUTED tty->termios.c_cc[VINTR] = '\003'; tty->termios.c_cc[VQUIT] = '\034'; tty->termios.c_cc[VERASE] = '\177'; tty->termios.c_cc[VKILL] = '\025'; tty->termios.c_cc[VEOF] = '\004'; 4443c: 1545 0045 moveb %d5,%a2@(69) <== NOT EXECUTED tty->termios.c_cc[VEOL] = '\000'; 44440: 1540 004c moveb %d0,%a2@(76) <== NOT EXECUTED tty->termios.c_cc[VEOL2] = '\000'; 44444: 1540 0051 moveb %d0,%a2@(81) <== NOT EXECUTED tty->termios.c_cc[VSTART] = '\021'; 44448: 1541 0049 moveb %d1,%a2@(73) <== NOT EXECUTED tty->termios.c_cc[VSTOP] = '\023'; 4444c: 7a13 moveq #19,%d5 <== NOT EXECUTED tty->termios.c_cc[VSUSP] = '\032'; 4444e: 701a moveq #26,%d0 <== NOT EXECUTED tty->termios.c_cc[VREPRINT] = '\022'; 44450: 7212 moveq #18,%d1 <== NOT EXECUTED tty->termios.c_cc[VKILL] = '\025'; tty->termios.c_cc[VEOF] = '\004'; tty->termios.c_cc[VEOL] = '\000'; tty->termios.c_cc[VEOL2] = '\000'; tty->termios.c_cc[VSTART] = '\021'; tty->termios.c_cc[VSTOP] = '\023'; 44452: 1545 004a moveb %d5,%a2@(74) <== NOT EXECUTED tty->termios.c_cc[VSUSP] = '\032'; 44456: 1540 004b moveb %d0,%a2@(75) <== NOT EXECUTED tty->termios.c_cc[VREPRINT] = '\022'; 4445a: 1541 004d moveb %d1,%a2@(77) <== NOT EXECUTED tty->termios.c_cc[VDISCARD] = '\017'; 4445e: 7a0f moveq #15,%d5 <== NOT EXECUTED tty->termios.c_cc[VWERASE] = '\027'; 44460: 7017 moveq #23,%d0 <== NOT EXECUTED tty->termios.c_cc[VLNEXT] = '\026'; 44462: 7216 moveq #22,%d1 <== NOT EXECUTED tty->termios.c_cc[VEOL2] = '\000'; tty->termios.c_cc[VSTART] = '\021'; tty->termios.c_cc[VSTOP] = '\023'; tty->termios.c_cc[VSUSP] = '\032'; tty->termios.c_cc[VREPRINT] = '\022'; tty->termios.c_cc[VDISCARD] = '\017'; 44464: 1545 004e moveb %d5,%a2@(78) <== NOT EXECUTED tty->termios.c_cc[VWERASE] = '\027'; tty->termios.c_cc[VLNEXT] = '\026'; 44468: 1541 0050 moveb %d1,%a2@(80) <== NOT EXECUTED tty->termios.c_cc[VSTART] = '\021'; tty->termios.c_cc[VSTOP] = '\023'; tty->termios.c_cc[VSUSP] = '\032'; tty->termios.c_cc[VREPRINT] = '\022'; tty->termios.c_cc[VDISCARD] = '\017'; tty->termios.c_cc[VWERASE] = '\027'; 4446c: 1540 004f moveb %d0,%a2@(79) <== NOT EXECUTED tty->lowwater = tty->rawInBuf.Size * 1/2; tty->highwater = tty->rawInBuf.Size * 3/4; /* * Bump name characer */ if (c++ == 'z') 44470: 1039 0005 5600 moveb 55600 ,%d0 <== NOT EXECUTED } /* * Set default parameters */ tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; 44476: 2a3c 0000 2502 movel #9474,%d5 <== NOT EXECUTED tty->termios.c_oflag = OPOST | ONLCR | XTABS; 4447c: 307c 1805 moveaw #6149,%a0 <== NOT EXECUTED } /* * Set default parameters */ tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; 44480: 2545 0030 movel %d5,%a2@(48) <== NOT EXECUTED tty->lowwater = tty->rawInBuf.Size * 1/2; tty->highwater = tty->rawInBuf.Size * 3/4; /* * Bump name characer */ if (c++ == 'z') 44484: 49c0 extbl %d0 <== NOT EXECUTED 44486: 2200 movel %d0,%d1 <== NOT EXECUTED /* * Set default parameters */ tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; tty->termios.c_oflag = OPOST | ONLCR | XTABS; 44488: 2548 0034 movel %a0,%a2@(52) <== NOT EXECUTED tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL; 4448c: 3a3c 08bd movew #2237,%d5 <== NOT EXECUTED tty->lowwater = tty->rawInBuf.Size * 1/2; tty->highwater = tty->rawInBuf.Size * 3/4; /* * Bump name characer */ if (c++ == 'z') 44490: 5281 addql #1,%d1 <== NOT EXECUTED * Set default parameters */ tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; tty->termios.c_oflag = OPOST | ONLCR | XTABS; tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL; tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL; 44492: 207c 0000 823b moveal #33339,%a0 <== NOT EXECUTED /* * Set default parameters */ tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; tty->termios.c_oflag = OPOST | ONLCR | XTABS; tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL; 44498: 2545 0038 movel %d5,%a2@(56) <== NOT EXECUTED tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL; 4449c: 2548 003c movel %a0,%a2@(60) <== NOT EXECUTED tty->lowwater = tty->rawInBuf.Size * 1/2; tty->highwater = tty->rawInBuf.Size * 3/4; /* * Bump name characer */ if (c++ == 'z') 444a0: 13c1 0005 5600 moveb %d1,55600 <== NOT EXECUTED 444a6: 727a moveq #122,%d1 <== NOT EXECUTED 444a8: b280 cmpl %d0,%d1 <== NOT EXECUTED 444aa: 6608 bnes 444b4 <== NOT EXECUTED c = 'a'; 444ac: 7a61 moveq #97,%d5 <== NOT EXECUTED 444ae: 13c5 0005 5600 moveb %d5,55600 <== NOT EXECUTED } args->iop->data1 = tty; if (!tty->refcount++) { 444b4: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED */ if (c++ == 'z') c = 'a'; } args->iop->data1 = tty; 444b8: 2055 moveal %a5@,%a0 <== NOT EXECUTED if (!tty->refcount++) { 444ba: 2200 movel %d0,%d1 <== NOT EXECUTED 444bc: 5281 addql #1,%d1 <== NOT EXECUTED 444be: 2741 0008 movel %d1,%a3@(8) <== NOT EXECUTED */ if (c++ == 'z') c = 'a'; } args->iop->data1 = tty; 444c2: 214b 0028 movel %a3,%a0@(40) <== NOT EXECUTED if (!tty->refcount++) { 444c6: 4a80 tstl %d0 <== NOT EXECUTED 444c8: 6658 bnes 44522 <== NOT EXECUTED if (tty->device.firstOpen) 444ca: 206b 0098 moveal %a3@(152),%a0 <== NOT EXECUTED 444ce: 4a88 tstl %a0 <== NOT EXECUTED 444d0: 670e beqs 444e0 <== NOT EXECUTED (*tty->device.firstOpen)(major, minor, arg); 444d2: 2f0d movel %a5,%sp@- <== NOT EXECUTED 444d4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 444d6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 444d8: 4e90 jsr %a0@ <== NOT EXECUTED 444da: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * start I/O tasks, if needed */ if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { 444e0: 7a02 moveq #2,%d5 <== NOT EXECUTED 444e2: baab 00b4 cmpl %a3@(180),%d5 <== NOT EXECUTED 444e6: 663a bnes 44522 <== NOT EXECUTED sc = rtems_task_start(tty->rxTaskId, 444e8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 444ea: 45f9 0004 52a0 lea 452a0 ,%a2 <== NOT EXECUTED 444f0: 487a 00d2 pea %pc@(445c4 ) <== NOT EXECUTED 444f4: 2f2b 00c4 movel %a3@(196),%sp@- <== NOT EXECUTED 444f8: 4e92 jsr %a2@ <== NOT EXECUTED rtems_termios_rxdaemon, (rtems_task_argument)tty); if (sc != RTEMS_SUCCESSFUL) 444fa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44500: 4a80 tstl %d0 <== NOT EXECUTED 44502: 6616 bnes 4451a <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_task_start(tty->txTaskId, 44504: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44506: 487a 0052 pea %pc@(4455a ) <== NOT EXECUTED 4450a: 2f2b 00c8 movel %a3@(200),%sp@- <== NOT EXECUTED 4450e: 4e92 jsr %a2@ <== NOT EXECUTED rtems_termios_txdaemon, (rtems_task_argument)tty); if (sc != RTEMS_SUCCESSFUL) 44510: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44516: 4a80 tstl %d0 <== NOT EXECUTED 44518: 6708 beqs 44522 <== NOT EXECUTED rtems_fatal_error_occurred (sc); 4451a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4451c: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED } } rtems_semaphore_release (rtems_termios_ttyMutex); 44522: 2f39 0005 6bcc movel 56bcc ,%sp@- <== NOT EXECUTED 44528: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 4452e: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 44530: 2002 movel %d2,%d0 <== NOT EXECUTED 44532: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 44538: 4e5e unlk %fp <== NOT EXECUTED 4453a: 4e75 rts <== NOT EXECUTED static char c = 'a'; /* * Create a new device */ tty = calloc (1, sizeof (struct rtems_termios_tty)); 4453c: 4878 00e8 pea e8 <== NOT EXECUTED 44540: 4878 0001 pea 1 <== NOT EXECUTED 44544: 4eb9 0004 8cd4 jsr 48cd4 <== NOT EXECUTED if (tty == NULL) { 4454a: 508f addql #8,%sp <== NOT EXECUTED static char c = 'a'; /* * Create a new device */ tty = calloc (1, sizeof (struct rtems_termios_tty)); 4454c: 2640 moveal %d0,%a3 <== NOT EXECUTED 4454e: 2440 moveal %d0,%a2 <== NOT EXECUTED if (tty == NULL) { 44550: 4a80 tstl %d0 <== NOT EXECUTED 44552: 6600 fc5e bnew 441b2 <== NOT EXECUTED 44556: 6000 fc4a braw 441a2 <== NOT EXECUTED 0004326a : * Send characters to device-specific code */ void rtems_termios_puts ( const void *_buf, int len, struct rtems_termios_tty *tty) { 4326a: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 4326e: 48d7 1c7c moveml %d2-%d6/%a2-%a4,%sp@ <== NOT EXECUTED 43272: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 43276: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4327a: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED const unsigned char *buf = _buf; 4327e: 2640 moveal %d0,%a3 <== NOT EXECUTED unsigned int newHead; rtems_interrupt_level level; rtems_status_code sc; if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) { 43280: 4aaa 00b4 tstl %a2@(180) <== NOT EXECUTED 43284: 661c bnes 432a2 <== NOT EXECUTED (*tty->device.write)(tty->minor, (void *)buf, len); 43286: 226a 00a4 moveal %a2@(164),%a1 <== NOT EXECUTED 4328a: 2d6a 0010 0008 movel %a2@(16),%fp@(8) <== NOT EXECUTED 43290: 2d44 0010 movel %d4,%fp@(16) <== NOT EXECUTED tty->rawOutBufState = rob_busy; } rtems_interrupt_enable (level); len--; } } 43294: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED unsigned int newHead; rtems_interrupt_level level; rtems_status_code sc; if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) { (*tty->device.write)(tty->minor, (void *)buf, len); 4329a: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED tty->rawOutBufState = rob_busy; } rtems_interrupt_enable (level); len--; } } 4329e: 4e5e unlk %fp <== NOT EXECUTED unsigned int newHead; rtems_interrupt_level level; rtems_status_code sc; if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) { (*tty->device.write)(tty->minor, (void *)buf, len); 432a0: 4ed1 jmp %a1@ <== NOT EXECUTED return; } newHead = tty->rawOutBuf.Head; 432a2: 2a2a 0080 movel %a2@(128),%d5 <== NOT EXECUTED * * To minimize latency, the memcpy should be done * with interrupts enabled. */ newHead = (newHead + 1) % tty->rawOutBuf.Size; rtems_interrupt_disable (level); 432a6: 2c3c 0000 0700 movel #1792,%d6 <== NOT EXECUTED while (newHead == tty->rawOutBuf.Tail) { tty->rawOutBufState = rob_wait; rtems_interrupt_enable (level); sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore, 432ac: 49f9 0004 4e48 lea 44e48 ,%a4 <== NOT EXECUTED 432b2: 6000 00a6 braw 4335a <== NOT EXECUTED * len -= ncopy * * To minimize latency, the memcpy should be done * with interrupts enabled. */ newHead = (newHead + 1) % tty->rawOutBuf.Size; 432b6: 222a 0088 movel %a2@(136),%d1 <== NOT EXECUTED 432ba: 2005 movel %d5,%d0 <== NOT EXECUTED 432bc: 5280 addql #1,%d0 <== NOT EXECUTED 432be: 4c41 0002 remul %d1,%d2,%d0 <== NOT EXECUTED 432c2: 2a02 movel %d2,%d5 <== NOT EXECUTED rtems_interrupt_disable (level); 432c4: 2006 movel %d6,%d0 <== NOT EXECUTED 432c6: 40c3 movew %sr,%d3 <== NOT EXECUTED 432c8: 8083 orl %d3,%d0 <== NOT EXECUTED 432ca: 46c0 movew %d0,%sr <== NOT EXECUTED 432cc: 602c bras 432fa <== NOT EXECUTED while (newHead == tty->rawOutBuf.Tail) { tty->rawOutBufState = rob_wait; 432ce: 7002 moveq #2,%d0 <== NOT EXECUTED 432d0: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED rtems_interrupt_enable (level); 432d4: 46c3 movew %d3,%sr <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore, 432d6: 42a7 clrl %sp@- <== NOT EXECUTED 432d8: 42a7 clrl %sp@- <== NOT EXECUTED 432da: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 432de: 4e94 jsr %a4@ <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 432e0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 432e6: 4a80 tstl %d0 <== NOT EXECUTED 432e8: 6708 beqs 432f2 <== NOT EXECUTED rtems_fatal_error_occurred (sc); 432ea: 2f00 movel %d0,%sp@- <== NOT EXECUTED 432ec: 4eb9 0004 5570 jsr 45570 <== NOT EXECUTED rtems_interrupt_disable (level); 432f2: 2006 movel %d6,%d0 <== NOT EXECUTED 432f4: 40c3 movew %sr,%d3 <== NOT EXECUTED 432f6: 8083 orl %d3,%d0 <== NOT EXECUTED 432f8: 46c0 movew %d0,%sr <== NOT EXECUTED * To minimize latency, the memcpy should be done * with interrupts enabled. */ newHead = (newHead + 1) % tty->rawOutBuf.Size; rtems_interrupt_disable (level); while (newHead == tty->rawOutBuf.Tail) { 432fa: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 432fe: b082 cmpl %d2,%d0 <== NOT EXECUTED 43300: 67cc beqs 432ce <== NOT EXECUTED RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); rtems_interrupt_disable (level); } tty->rawOutBuf.theBuf[tty->rawOutBuf.Head] = *buf++; 43302: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 43306: 206a 007c moveal %a2@(124),%a0 <== NOT EXECUTED 4330a: 1193 0800 moveb %a3@,%a0@(00000000,%d0:l) <== NOT EXECUTED tty->rawOutBuf.Head = newHead; 4330e: 2542 0080 movel %d2,%a2@(128) <== NOT EXECUTED if (tty->rawOutBufState == rob_idle) { 43312: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 43316: 663c bnes 43354 <== NOT EXECUTED /* check, whether XOFF has been received */ if (!(tty->flow_ctrl & FL_ORCVXOF)) { 43318: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 4331c: 0800 0004 btst #4,%d0 <== NOT EXECUTED 43320: 6620 bnes 43342 <== NOT EXECUTED (*tty->device.write)(tty->minor, 43322: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 43326: 4878 0001 pea 1 <== NOT EXECUTED 4332a: d0aa 007c addl %a2@(124),%d0 <== NOT EXECUTED 4332e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43330: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 43334: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43338: 4e90 jsr %a0@ <== NOT EXECUTED 4333a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43340: 600c bras 4334e <== NOT EXECUTED (char *)&tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1); } else { /* remember that output has been stopped due to flow ctrl*/ tty->flow_ctrl |= FL_OSTOP; 43342: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43346: 7220 moveq #32,%d1 <== NOT EXECUTED 43348: 8081 orl %d1,%d0 <== NOT EXECUTED 4334a: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED } tty->rawOutBufState = rob_busy; 4334e: 7001 moveq #1,%d0 <== NOT EXECUTED 43350: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); rtems_interrupt_disable (level); } tty->rawOutBuf.theBuf[tty->rawOutBuf.Head] = *buf++; 43354: 528b addql #1,%a3 <== NOT EXECUTED /* remember that output has been stopped due to flow ctrl*/ tty->flow_ctrl |= FL_OSTOP; } tty->rawOutBufState = rob_busy; } rtems_interrupt_enable (level); 43356: 46c3 movew %d3,%sr <== NOT EXECUTED len--; 43358: 5384 subql #1,%d4 <== NOT EXECUTED if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) { (*tty->device.write)(tty->minor, (void *)buf, len); return; } newHead = tty->rawOutBuf.Head; while (len) { 4335a: 4a84 tstl %d4 <== NOT EXECUTED 4335c: 6600 ff58 bnew 432b6 <== NOT EXECUTED tty->rawOutBufState = rob_busy; } rtems_interrupt_enable (level); len--; } } 43360: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED 43366: 4e5e unlk %fp <== NOT EXECUTED 43368: 4e75 rts 000439ca : return RTEMS_SUCCESSFUL; } rtems_status_code rtems_termios_read (void *arg) { 439ca: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 439ce: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 439d2: 2a6e 0008 moveal %fp@(8),%a5 <== NOT EXECUTED rtems_libio_rw_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 439d6: 2055 moveal %a5@,%a0 <== NOT EXECUTED 439d8: 2468 0028 moveal %a0@(40),%a2 <== NOT EXECUTED uint32_t count = args->count; char *buffer = args->buffer; rtems_status_code sc; sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 439dc: 42a7 clrl %sp@- <== NOT EXECUTED rtems_status_code rtems_termios_read (void *arg) { rtems_libio_rw_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; uint32_t count = args->count; 439de: 2a2d 000c movel %a5@(12),%d5 <== NOT EXECUTED char *buffer = args->buffer; rtems_status_code sc; sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 439e2: 42a7 clrl %sp@- <== NOT EXECUTED rtems_termios_read (void *arg) { rtems_libio_rw_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; uint32_t count = args->count; char *buffer = args->buffer; 439e4: 2e2d 0008 movel %a5@(8),%d7 <== NOT EXECUTED rtems_status_code sc; sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 439e8: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 439ec: 4eb9 0004 4e48 jsr 44e48 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 439f2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED struct rtems_termios_tty *tty = args->iop->data1; uint32_t count = args->count; char *buffer = args->buffer; rtems_status_code sc; sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 439f8: 2c00 movel %d0,%d6 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 439fa: 6600 02ce bnew 43cca <== NOT EXECUTED return sc; if (rtems_termios_linesw[tty->t_line].l_read != NULL) { 439fe: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 43a02: 41f9 0005 6350 lea 56350 ,%a0 <== NOT EXECUTED 43a08: eb88 lsll #5,%d0 <== NOT EXECUTED 43a0a: 2070 0808 moveal %a0@(00000008,%d0:l),%a0 <== NOT EXECUTED 43a0e: 4a88 tstl %a0 <== NOT EXECUTED 43a10: 6720 beqs 43a32 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_read(tty,args); 43a12: 2f0d movel %a5,%sp@- <== NOT EXECUTED 43a14: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43a16: 4e90 jsr %a0@ <== NOT EXECUTED tty->tty_rcvwakeup = 0; 43a18: 42aa 00e4 clrl %a2@(228) <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) return sc; if (rtems_termios_linesw[tty->t_line].l_read != NULL) { sc = rtems_termios_linesw[tty->t_line].l_read(tty,args); 43a1c: 2c00 movel %d0,%d6 <== NOT EXECUTED tty->tty_rcvwakeup = 0; rtems_semaphore_release (tty->isem); 43a1e: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 43a22: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 43a28: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43a2e: 6000 029a braw 43cca <== NOT EXECUTED return sc; } if (tty->cindex == tty->ccount) { 43a32: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 43a36: b0aa 0024 cmpl %a2@(36),%d0 <== NOT EXECUTED 43a3a: 6600 0266 bnew 43ca2 <== NOT EXECUTED tty->cindex = tty->ccount = 0; 43a3e: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED tty->read_start_column = tty->column; 43a42: 256a 0028 002c movel %a2@(40),%a2@(44) <== NOT EXECUTED tty->tty_rcvwakeup = 0; rtems_semaphore_release (tty->isem); return sc; } if (tty->cindex == tty->ccount) { tty->cindex = tty->ccount = 0; 43a48: 42aa 0024 clrl %a2@(36) <== NOT EXECUTED tty->read_start_column = tty->column; if (tty->device.pollRead != NULL 43a4c: 4aaa 00a0 tstl %a2@(160) <== NOT EXECUTED 43a50: 6700 0108 beqw 43b5a <== NOT EXECUTED 43a54: 4aaa 00b4 tstl %a2@(180) <== NOT EXECUTED 43a58: 6600 0100 bnew 43b5a <== NOT EXECUTED static rtems_status_code fillBufferPoll (struct rtems_termios_tty *tty) { int n; if (tty->termios.c_lflag & ICANON) { 43a5c: 7002 moveq #2,%d0 <== NOT EXECUTED 43a5e: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 43a62: 6738 beqs 43a9c <== NOT EXECUTED n = (*tty->device.pollRead)(tty->minor); if (n < 0) { rtems_task_wake_after (1); } else { if (siproc (n, tty)) 43a64: 49fa fdd4 lea %pc@(4383a ),%a4 <== NOT EXECUTED if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); if (n < 0) { rtems_task_wake_after (1); 43a68: 47f9 0004 534c lea 4534c ,%a3 <== NOT EXECUTED { int n; if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); 43a6e: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43a72: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED 43a76: 4e90 jsr %a0@ <== NOT EXECUTED if (n < 0) { rtems_task_wake_after (1); } else { if (siproc (n, tty)) 43a78: 4281 clrl %d1 <== NOT EXECUTED int n; if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); if (n < 0) { 43a7a: 588f addql #4,%sp <== NOT EXECUTED rtems_task_wake_after (1); } else { if (siproc (n, tty)) 43a7c: 1200 moveb %d0,%d1 <== NOT EXECUTED int n; if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); if (n < 0) { 43a7e: 4a80 tstl %d0 <== NOT EXECUTED 43a80: 6c0a bges 43a8c <== NOT EXECUTED rtems_task_wake_after (1); 43a82: 4878 0001 pea 1 <== NOT EXECUTED 43a86: 4e93 jsr %a3@ <== NOT EXECUTED 43a88: 588f addql #4,%sp <== NOT EXECUTED 43a8a: 60e2 bras 43a6e <== NOT EXECUTED } else { if (siproc (n, tty)) 43a8c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43a8e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 43a90: 4e94 jsr %a4@ <== NOT EXECUTED 43a92: 508f addql #8,%sp <== NOT EXECUTED 43a94: 4a80 tstl %d0 <== NOT EXECUTED 43a96: 67d6 beqs 43a6e <== NOT EXECUTED 43a98: 6000 0208 braw 43ca2 <== NOT EXECUTED } } } else { rtems_interval then, now; if (!tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME]) 43a9c: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 43aa0: 6616 bnes 43ab8 <== NOT EXECUTED 43aa2: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 43aa6: 6710 beqs 43ab8 <== NOT EXECUTED rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then); 43aa8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 43aac: 4878 0002 pea 2 <== NOT EXECUTED 43ab0: 4eb9 0004 463c jsr 4463c <== NOT EXECUTED 43ab6: 508f addql #8,%sp <== NOT EXECUTED else { siproc (n, tty); if (tty->ccount >= tty->termios.c_cc[VMIN]) break; if (tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME]) rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then); 43ab8: 260e movel %fp,%d3 <== NOT EXECUTED } } else { if (!tty->termios.c_cc[VTIME]) break; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); 43aba: 240e movel %fp,%d2 <== NOT EXECUTED } } rtems_task_wake_after (1); } else { siproc (n, tty); 43abc: 283c 0004 383a movel #276538,%d4 <== NOT EXECUTED if (tty->ccount >= tty->termios.c_cc[VMIN]) break; if (tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME]) rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then); 43ac2: 5983 subql #4,%d3 <== NOT EXECUTED 43ac4: 47f9 0004 463c lea 4463c ,%a3 <== NOT EXECUTED rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); if ((now - then) > tty->vtimeTicks) { break; } } rtems_task_wake_after (1); 43aca: 49f9 0004 534c lea 4534c ,%a4 <== NOT EXECUTED } } else { if (!tty->termios.c_cc[VTIME]) break; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); 43ad0: 5182 subql #8,%d2 <== NOT EXECUTED else { rtems_interval then, now; if (!tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME]) rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then); for (;;) { n = (*tty->device.pollRead)(tty->minor); 43ad2: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43ad6: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED 43ada: 4e90 jsr %a0@ <== NOT EXECUTED if (n < 0) { 43adc: 588f addql #4,%sp <== NOT EXECUTED 43ade: 4a80 tstl %d0 <== NOT EXECUTED 43ae0: 6c40 bges 43b22 <== NOT EXECUTED if (tty->termios.c_cc[VMIN]) { 43ae2: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 43ae6: 670e beqs 43af6 <== NOT EXECUTED if (tty->termios.c_cc[VTIME] && tty->ccount) { 43ae8: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 43aec: 672a beqs 43b18 <== NOT EXECUTED 43aee: 4aaa 0020 tstl %a2@(32) <== NOT EXECUTED 43af2: 6724 beqs 43b18 <== NOT EXECUTED 43af4: 6008 bras 43afe <== NOT EXECUTED break; } } } else { if (!tty->termios.c_cc[VTIME]) 43af6: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 43afa: 6700 01a6 beqw 43ca2 <== NOT EXECUTED break; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); 43afe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 43b00: 4878 0002 pea 2 <== NOT EXECUTED 43b04: 4e93 jsr %a3@ <== NOT EXECUTED if ((now - then) > tty->vtimeTicks) { 43b06: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 43b0a: 90ae fffc subl %fp@(-4),%d0 <== NOT EXECUTED 43b0e: 508f addql #8,%sp <== NOT EXECUTED 43b10: b0aa 0054 cmpl %a2@(84),%d0 <== NOT EXECUTED 43b14: 6200 018c bhiw 43ca2 <== NOT EXECUTED break; } } rtems_task_wake_after (1); 43b18: 4878 0001 pea 1 <== NOT EXECUTED 43b1c: 4e94 jsr %a4@ <== NOT EXECUTED 43b1e: 588f addql #4,%sp <== NOT EXECUTED 43b20: 60b0 bras 43ad2 <== NOT EXECUTED } else { siproc (n, tty); 43b22: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43b24: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 43b2a: 2044 moveal %d4,%a0 <== NOT EXECUTED 43b2c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43b2e: 4e90 jsr %a0@ <== NOT EXECUTED if (tty->ccount >= tty->termios.c_cc[VMIN]) 43b30: 122a 0047 moveb %a2@(71),%d1 <== NOT EXECUTED 43b34: 4280 clrl %d0 <== NOT EXECUTED 43b36: 508f addql #8,%sp <== NOT EXECUTED 43b38: 1001 moveb %d1,%d0 <== NOT EXECUTED 43b3a: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 43b3e: 6f00 0162 blew 43ca2 <== NOT EXECUTED break; if (tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME]) 43b42: 4a01 tstb %d1 <== NOT EXECUTED 43b44: 678c beqs 43ad2 <== NOT EXECUTED 43b46: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 43b4a: 6786 beqs 43ad2 <== NOT EXECUTED rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then); 43b4c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 43b4e: 4878 0002 pea 2 <== NOT EXECUTED 43b52: 4e93 jsr %a3@ <== NOT EXECUTED 43b54: 508f addql #8,%sp <== NOT EXECUTED 43b56: 6000 ff7a braw 43ad2 <== NOT EXECUTED * Fill the input buffer from the raw input queue */ static rtems_status_code fillBufferQueue (struct rtems_termios_tty *tty) { rtems_interval timeout = tty->rawInBufSemaphoreFirstTimeout; 43b5a: 242a 0074 movel %a2@(116),%d2 <== NOT EXECUTED if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF)) == (FL_MDXON | FL_ISNTXOF)) && ((tty->rawOutBufState == rob_idle) || (tty->flow_ctrl & FL_OSTOP))) { /* XON should be sent now... */ (*tty->device.write)(tty->minor, 43b5e: 47ea 0049 lea %a2@(73),%a3 <== NOT EXECUTED 43b62: 7601 moveq #1,%d3 <== NOT EXECUTED 43b64: 49fa fcd4 lea %pc@(4383a ),%a4 <== NOT EXECUTED 43b68: 6000 011e braw 43c88 <== NOT EXECUTED while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) && (tty->ccount < (CBUFSIZE-1))) { unsigned char c; unsigned int newHead; newHead = (tty->rawInBuf.Head + 1) % tty->rawInBuf.Size; 43b6c: 202a 005c movel %a2@(92),%d0 <== NOT EXECUTED 43b70: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED c = tty->rawInBuf.theBuf[newHead]; 43b74: 206a 0058 moveal %a2@(88),%a0 <== NOT EXECUTED while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) && (tty->ccount < (CBUFSIZE-1))) { unsigned char c; unsigned int newHead; newHead = (tty->rawInBuf.Head + 1) % tty->rawInBuf.Size; 43b78: 5280 addql #1,%d0 <== NOT EXECUTED 43b7a: 4c41 0002 remul %d1,%d2,%d0 <== NOT EXECUTED c = tty->rawInBuf.theBuf[newHead]; 43b7e: 1030 2800 moveb %a0@(00000000,%d2:l),%d0 <== NOT EXECUTED tty->rawInBuf.Head = newHead; 43b82: 2542 005c movel %d2,%a2@(92) <== NOT EXECUTED if(((tty->rawInBuf.Tail-newHead+tty->rawInBuf.Size) 43b86: 222a 0060 movel %a2@(96),%d1 <== NOT EXECUTED (tty->ccount < (CBUFSIZE-1))) { unsigned char c; unsigned int newHead; newHead = (tty->rawInBuf.Head + 1) % tty->rawInBuf.Size; c = tty->rawInBuf.theBuf[newHead]; 43b8a: 1d40 fff7 moveb %d0,%fp@(-9) <== NOT EXECUTED tty->rawInBuf.Head = newHead; if(((tty->rawInBuf.Tail-newHead+tty->rawInBuf.Size) 43b8e: 202a 0064 movel %a2@(100),%d0 <== NOT EXECUTED 43b92: d081 addl %d1,%d0 <== NOT EXECUTED 43b94: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED 43b98: 9082 subl %d2,%d0 <== NOT EXECUTED 43b9a: 2400 movel %d0,%d2 <== NOT EXECUTED 43b9c: 4c41 2003 remul %d1,%d3,%d2 <== NOT EXECUTED 43ba0: b6aa 00bc cmpl %a2@(188),%d3 <== NOT EXECUTED 43ba4: 646c bccs 43c12 <== NOT EXECUTED % tty->rawInBuf.Size) < tty->lowwater) { tty->flow_ctrl &= ~FL_IREQXOF; 43ba6: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43baa: 72fe moveq #-2,%d1 <== NOT EXECUTED 43bac: c081 andl %d1,%d0 <== NOT EXECUTED 43bae: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* if tx stopped and XON should be sent... */ if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF)) 43bb2: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43bb6: 0280 0000 0202 andil #514,%d0 <== NOT EXECUTED 43bbc: 0c80 0000 0202 cmpil #514,%d0 <== NOT EXECUTED 43bc2: 6628 bnes 43bec <== NOT EXECUTED 43bc4: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 43bc8: 670a beqs 43bd4 <== NOT EXECUTED 43bca: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43bce: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43bd2: 6718 beqs 43bec <== NOT EXECUTED == (FL_MDXON | FL_ISNTXOF)) && ((tty->rawOutBufState == rob_idle) || (tty->flow_ctrl & FL_OSTOP))) { /* XON should be sent now... */ (*tty->device.write)(tty->minor, 43bd4: 4878 0001 pea 1 <== NOT EXECUTED 43bd8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 43bda: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43bde: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 43be2: 4e90 jsr %a0@ <== NOT EXECUTED 43be4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43bea: 6026 bras 43c12 <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTART]), 1); } else if (tty->flow_ctrl & FL_MDRTS) { 43bec: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43bf0: 0800 0008 btst #8,%d0 <== NOT EXECUTED 43bf4: 671c beqs 43c12 <== NOT EXECUTED tty->flow_ctrl &= ~FL_IRTSOFF; 43bf6: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43bfa: 74fb moveq #-5,%d2 <== NOT EXECUTED /* activate RTS line */ if (tty->device.startRemoteTx != NULL) { 43bfc: 206a 00b0 moveal %a2@(176),%a0 <== NOT EXECUTED (*tty->device.write)(tty->minor, (void *)&(tty->termios.c_cc[VSTART]), 1); } else if (tty->flow_ctrl & FL_MDRTS) { tty->flow_ctrl &= ~FL_IRTSOFF; 43c00: c082 andl %d2,%d0 <== NOT EXECUTED 43c02: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* activate RTS line */ if (tty->device.startRemoteTx != NULL) { 43c06: 4a88 tstl %a0 <== NOT EXECUTED 43c08: 6708 beqs 43c12 <== NOT EXECUTED tty->device.startRemoteTx(tty->minor); 43c0a: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43c0e: 4e90 jsr %a0@ <== NOT EXECUTED 43c10: 588f addql #4,%sp <== NOT EXECUTED 43c12: 4281 clrl %d1 <== NOT EXECUTED } } } /* continue processing new character */ if (tty->termios.c_lflag & ICANON) { 43c14: 7002 moveq #2,%d0 <== NOT EXECUTED 43c16: 122e fff7 moveb %fp@(-9),%d1 <== NOT EXECUTED 43c1a: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 43c1e: 670e beqs 43c2e <== NOT EXECUTED if (siproc (c, tty)) 43c20: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43c22: 2f01 movel %d1,%sp@- <== NOT EXECUTED 43c24: 4e94 jsr %a4@ <== NOT EXECUTED 43c26: 508f addql #8,%sp <== NOT EXECUTED 43c28: 4a80 tstl %d0 <== NOT EXECUTED 43c2a: 6616 bnes 43c42 <== NOT EXECUTED 43c2c: 6016 bras 43c44 <== NOT EXECUTED wait = 0; } else { siproc (c, tty); 43c2e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43c30: 2f01 movel %d1,%sp@- <== NOT EXECUTED 43c32: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->ccount >= tty->termios.c_cc[VMIN]) 43c34: 4280 clrl %d0 <== NOT EXECUTED 43c36: 102a 0047 moveb %a2@(71),%d0 <== NOT EXECUTED 43c3a: 508f addql #8,%sp <== NOT EXECUTED 43c3c: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 43c40: 6e02 bgts 43c44 <== NOT EXECUTED 43c42: 4284 clrl %d4 <== NOT EXECUTED wait = 0; } timeout = tty->rawInBufSemaphoreTimeout; 43c44: 206a 0070 moveal %a2@(112),%a0 <== NOT EXECUTED while ( wait ) { /* * Process characters read from raw queue */ while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) && 43c48: 222a 005c movel %a2@(92),%d1 <== NOT EXECUTED 43c4c: 202a 0060 movel %a2@(96),%d0 <== NOT EXECUTED 43c50: b081 cmpl %d1,%d0 <== NOT EXECUTED 43c52: 6710 beqs 43c64 <== NOT EXECUTED 43c54: 2039 0005 55f4 movel 555f4 ,%d0 <== NOT EXECUTED 43c5a: 5380 subql #1,%d0 <== NOT EXECUTED 43c5c: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 43c60: 6e00 ff0a bgtw 43b6c <== NOT EXECUTED 43c64: 2408 movel %a0,%d2 <== NOT EXECUTED 43c66: 2604 movel %d4,%d3 <== NOT EXECUTED } /* * Wait for characters */ if ( wait ) { 43c68: 671a beqs 43c84 <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->rawInBuf.Semaphore, 43c6a: 2f08 movel %a0,%sp@- <== NOT EXECUTED 43c6c: 2f2a 006c movel %a2@(108),%sp@- <== NOT EXECUTED 43c70: 2f2a 0068 movel %a2@(104),%sp@- <== NOT EXECUTED 43c74: 4eb9 0004 4e48 jsr 44e48 <== NOT EXECUTED tty->rawInBufSemaphoreOptions, timeout); if (sc != RTEMS_SUCCESSFUL) 43c7a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43c80: 4a80 tstl %d0 <== NOT EXECUTED 43c82: 661e bnes 43ca2 <== NOT EXECUTED { rtems_interval timeout = tty->rawInBufSemaphoreFirstTimeout; rtems_status_code sc; int wait = (int)1; while ( wait ) { 43c84: 4a84 tstl %d4 <== NOT EXECUTED 43c86: 671a beqs 43ca2 <== NOT EXECUTED 43c88: 2803 movel %d3,%d4 <== NOT EXECUTED 43c8a: 2042 moveal %d2,%a0 <== NOT EXECUTED 43c8c: 60ba bras 43c48 <== NOT EXECUTED sc = fillBufferQueue (tty); if (sc != RTEMS_SUCCESSFUL) tty->cindex = tty->ccount = 0; } while (count && (tty->cindex < tty->ccount)) { *buffer++ = tty->cbuf[tty->cindex++]; 43c8e: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 43c92: 2247 moveal %d7,%a1 <== NOT EXECUTED 43c94: 12f0 0800 moveb %a0@(00000000,%d0:l),%a1@+ <== NOT EXECUTED 43c98: 5280 addql #1,%d0 <== NOT EXECUTED 43c9a: 5287 addql #1,%d7 <== NOT EXECUTED count--; 43c9c: 5385 subql #1,%d5 <== NOT EXECUTED sc = fillBufferQueue (tty); if (sc != RTEMS_SUCCESSFUL) tty->cindex = tty->ccount = 0; } while (count && (tty->cindex < tty->ccount)) { *buffer++ = tty->cbuf[tty->cindex++]; 43c9e: 2540 0024 movel %d0,%a2@(36) <== NOT EXECUTED else sc = fillBufferQueue (tty); if (sc != RTEMS_SUCCESSFUL) tty->cindex = tty->ccount = 0; } while (count && (tty->cindex < tty->ccount)) { 43ca2: 4a85 tstl %d5 <== NOT EXECUTED 43ca4: 670a beqs 43cb0 <== NOT EXECUTED 43ca6: 202a 0024 movel %a2@(36),%d0 <== NOT EXECUTED 43caa: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 43cae: 6dde blts 43c8e <== NOT EXECUTED *buffer++ = tty->cbuf[tty->cindex++]; count--; } args->bytes_moved = args->count - count; 43cb0: 202d 000c movel %a5@(12),%d0 <== NOT EXECUTED 43cb4: 9085 subl %d5,%d0 <== NOT EXECUTED 43cb6: 2b40 0014 movel %d0,%a5@(20) <== NOT EXECUTED tty->tty_rcvwakeup = 0; 43cba: 42aa 00e4 clrl %a2@(228) <== NOT EXECUTED rtems_semaphore_release (tty->isem); 43cbe: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 43cc2: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 43cc8: 588f addql #4,%sp <== NOT EXECUTED return sc; } 43cca: 2006 movel %d6,%d0 <== NOT EXECUTED 43ccc: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED 43cd2: 4e5e unlk %fp <== NOT EXECUTED 43cd4: 4e75 rts 00042df8 : * in task-driven mode, this function is called in Tx task context * in interrupt-driven mode, this function is called in TxIRQ context */ int rtems_termios_refill_transmitter (struct rtems_termios_tty *tty) { 42df8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 42dfc: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 42e00: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED int nToSend; rtems_interrupt_level level; int len; /* check for XOF/XON to send */ if ((tty->flow_ctrl & (FL_MDXOF | FL_IREQXOF | FL_ISNTXOF)) 42e04: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42e08: 0280 0000 0403 andil #1027,%d0 <== NOT EXECUTED 42e0e: 0c80 0000 0401 cmpil #1025,%d0 <== NOT EXECUTED 42e14: 663e bnes 42e54 <== NOT EXECUTED == (FL_MDXOF | FL_IREQXOF)) { /* XOFF should be sent now... */ (*tty->device.write)(tty->minor, 42e16: 4878 0001 pea 1 <== NOT EXECUTED 42e1a: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 42e1e: 486a 004a pea %a2@(74) <== NOT EXECUTED 42e22: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 42e26: 4e90 jsr %a0@ <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTOP]), 1); rtems_interrupt_disable(level); 42e28: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 42e2e: 40c1 movew %sr,%d1 <== NOT EXECUTED 42e30: 8081 orl %d1,%d0 <== NOT EXECUTED 42e32: 46c0 movew %d0,%sr <== NOT EXECUTED tty->t_dqlen--; tty->flow_ctrl |= FL_ISNTXOF; 42e34: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42e38: 7402 moveq #2,%d2 <== NOT EXECUTED /* XOFF should be sent now... */ (*tty->device.write)(tty->minor, (void *)&(tty->termios.c_cc[VSTOP]), 1); rtems_interrupt_disable(level); tty->t_dqlen--; 42e3a: 53aa 0090 subql #1,%a2@(144) <== NOT EXECUTED tty->flow_ctrl |= FL_ISNTXOF; 42e3e: 8082 orl %d2,%d0 <== NOT EXECUTED 42e40: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED rtems_interrupt_enable(level); 42e44: 46c1 movew %d1,%sr <== NOT EXECUTED 42e46: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42e4c: 143c 0001 moveb #1,%d2 <== NOT EXECUTED 42e50: 6000 0152 braw 42fa4 <== NOT EXECUTED nToSend = 1; } else if ((tty->flow_ctrl & (FL_IREQXOF | FL_ISNTXOF)) 42e54: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42e58: 7203 moveq #3,%d1 <== NOT EXECUTED 42e5a: c081 andl %d1,%d0 <== NOT EXECUTED 42e5c: 7402 moveq #2,%d2 <== NOT EXECUTED 42e5e: b480 cmpl %d0,%d2 <== NOT EXECUTED 42e60: 663c bnes 42e9e <== NOT EXECUTED * FIXME: this .write call will generate another * dequeue callback. This will advance the "Tail" in the data * buffer, although the corresponding data is not yet out! * Therefore the dequeue "length" should be reduced by 1 */ (*tty->device.write)(tty->minor, 42e62: 4878 0001 pea 1 <== NOT EXECUTED 42e66: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 42e6a: 486a 0049 pea %a2@(73) <== NOT EXECUTED 42e6e: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 42e72: 4e90 jsr %a0@ <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTART]), 1); rtems_interrupt_disable(level); 42e74: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 42e7a: 40c1 movew %sr,%d1 <== NOT EXECUTED 42e7c: 8081 orl %d1,%d0 <== NOT EXECUTED 42e7e: 46c0 movew %d0,%sr <== NOT EXECUTED tty->t_dqlen--; tty->flow_ctrl &= ~FL_ISNTXOF; 42e80: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42e84: 74fd moveq #-3,%d2 <== NOT EXECUTED */ (*tty->device.write)(tty->minor, (void *)&(tty->termios.c_cc[VSTART]), 1); rtems_interrupt_disable(level); tty->t_dqlen--; 42e86: 53aa 0090 subql #1,%a2@(144) <== NOT EXECUTED tty->flow_ctrl &= ~FL_ISNTXOF; 42e8a: c082 andl %d2,%d0 <== NOT EXECUTED 42e8c: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED rtems_interrupt_enable(level); 42e90: 46c1 movew %d1,%sr <== NOT EXECUTED 42e92: 7401 moveq #1,%d2 <== NOT EXECUTED 42e94: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42e9a: 6000 0108 braw 42fa4 <== NOT EXECUTED nToSend = 1; } else { if ( tty->rawOutBuf.Head == tty->rawOutBuf.Tail ) { 42e9e: 222a 0080 movel %a2@(128),%d1 <== NOT EXECUTED 42ea2: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 42ea6: b081 cmpl %d1,%d0 <== NOT EXECUTED 42ea8: 661a bnes 42ec4 <== NOT EXECUTED /* * buffer was empty */ if (tty->rawOutBufState == rob_wait) { 42eaa: 7002 moveq #2,%d0 <== NOT EXECUTED 42eac: b0aa 0094 cmpl %a2@(148),%d0 <== NOT EXECUTED 42eb0: 660c bnes 42ebe <== NOT EXECUTED /* * this should never happen... */ rtems_semaphore_release (tty->rawOutBuf.Semaphore); 42eb2: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 42eb6: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 42ebc: 588f addql #4,%sp <== NOT EXECUTED 42ebe: 4282 clrl %d2 <== NOT EXECUTED 42ec0: 6000 00e2 braw 42fa4 <== NOT EXECUTED } return 0; } rtems_interrupt_disable(level); 42ec4: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 42eca: 40c0 movew %sr,%d0 <== NOT EXECUTED 42ecc: 8280 orl %d0,%d1 <== NOT EXECUTED 42ece: 46c1 movew %d1,%sr <== NOT EXECUTED len = tty->t_dqlen; 42ed0: 222a 0090 movel %a2@(144),%d1 <== NOT EXECUTED tty->t_dqlen = 0; 42ed4: 42aa 0090 clrl %a2@(144) <== NOT EXECUTED rtems_interrupt_enable(level); 42ed8: 46c0 movew %d0,%sr <== NOT EXECUTED newTail = (tty->rawOutBuf.Tail + len) % tty->rawOutBuf.Size; 42eda: 206a 0084 moveal %a2@(132),%a0 <== NOT EXECUTED 42ede: 202a 0088 movel %a2@(136),%d0 <== NOT EXECUTED 42ee2: d288 addl %a0,%d1 <== NOT EXECUTED 42ee4: 4c40 1003 remul %d0,%d3,%d1 <== NOT EXECUTED tty->rawOutBuf.Tail = newTail; 42ee8: 2543 0084 movel %d3,%a2@(132) <== NOT EXECUTED if (tty->rawOutBufState == rob_wait) { 42eec: 7202 moveq #2,%d1 <== NOT EXECUTED 42eee: b2aa 0094 cmpl %a2@(148),%d1 <== NOT EXECUTED 42ef2: 660c bnes 42f00 <== NOT EXECUTED /* * wake up any pending writer task */ rtems_semaphore_release (tty->rawOutBuf.Semaphore); 42ef4: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 42ef8: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 42efe: 588f addql #4,%sp <== NOT EXECUTED } if (newTail == tty->rawOutBuf.Head) { 42f00: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 42f04: b083 cmpl %d3,%d0 <== NOT EXECUTED 42f06: 6622 bnes 42f2a <== NOT EXECUTED nToSend = 0; /* * check to see if snd wakeup callback was set */ if ( tty->tty_snd.sw_pfn != NULL) { 42f08: 206a 00d4 moveal %a2@(212),%a0 <== NOT EXECUTED } if (newTail == tty->rawOutBuf.Head) { /* * Buffer has become empty */ tty->rawOutBufState = rob_idle; 42f0c: 42aa 0094 clrl %a2@(148) <== NOT EXECUTED nToSend = 0; /* * check to see if snd wakeup callback was set */ if ( tty->tty_snd.sw_pfn != NULL) { 42f10: 4a88 tstl %a0 <== NOT EXECUTED 42f12: 6606 bnes 42f1a <== NOT EXECUTED 42f14: 4282 clrl %d2 <== NOT EXECUTED 42f16: 6000 0088 braw 42fa0 <== NOT EXECUTED (*tty->tty_snd.sw_pfn)(&tty->termios, tty->tty_snd.sw_arg); 42f1a: 2f2a 00d8 movel %a2@(216),%sp@- <== NOT EXECUTED 42f1e: 4282 clrl %d2 <== NOT EXECUTED 42f20: 486a 0030 pea %a2@(48) <== NOT EXECUTED 42f24: 4e90 jsr %a0@ <== NOT EXECUTED 42f26: 508f addql #8,%sp <== NOT EXECUTED 42f28: 6076 bras 42fa0 <== NOT EXECUTED } } /* check, whether output should stop due to received XOFF */ else if ((tty->flow_ctrl & (FL_MDXON | FL_ORCVXOF)) 42f2a: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42f2e: 0280 0000 0210 andil #528,%d0 <== NOT EXECUTED 42f34: 0c80 0000 0210 cmpil #528,%d0 <== NOT EXECUTED 42f3a: 6622 bnes 42f5e <== NOT EXECUTED == (FL_MDXON | FL_ORCVXOF)) { /* Buffer not empty, but output stops due to XOFF */ /* set flag, that output has been stopped */ rtems_interrupt_disable(level); 42f3c: 303c 0700 movew #1792,%d0 <== NOT EXECUTED 42f40: 40c1 movew %sr,%d1 <== NOT EXECUTED 42f42: 8081 orl %d1,%d0 <== NOT EXECUTED 42f44: 46c0 movew %d0,%sr <== NOT EXECUTED tty->flow_ctrl |= FL_OSTOP; 42f46: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42f4a: 7420 moveq #32,%d2 <== NOT EXECUTED 42f4c: 8082 orl %d2,%d0 <== NOT EXECUTED 42f4e: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED tty->rawOutBufState = rob_busy; /*apm*/ 42f52: 7001 moveq #1,%d0 <== NOT EXECUTED 42f54: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED rtems_interrupt_enable(level); 42f58: 46c1 movew %d1,%sr <== NOT EXECUTED 42f5a: 4202 clrb %d2 <== NOT EXECUTED 42f5c: 6042 bras 42fa0 <== NOT EXECUTED } else { /* * Buffer not empty, start tranmitter */ if (newTail > tty->rawOutBuf.Head) 42f5e: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 42f62: b083 cmpl %d3,%d0 <== NOT EXECUTED 42f64: 6406 bccs 42f6c <== NOT EXECUTED nToSend = tty->rawOutBuf.Size - newTail; 42f66: 242a 0088 movel %a2@(136),%d2 <== NOT EXECUTED 42f6a: 6004 bras 42f70 <== NOT EXECUTED else nToSend = tty->rawOutBuf.Head - newTail; 42f6c: 242a 0080 movel %a2@(128),%d2 <== NOT EXECUTED /* when flow control XON or XOF, don't send blocks of data */ /* to allow fast reaction on incoming flow ctrl and low latency*/ /* for outgoing flow control */ if (tty->flow_ctrl & (FL_MDXON | FL_MDXOF)) { 42f70: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED * Buffer not empty, start tranmitter */ if (newTail > tty->rawOutBuf.Head) nToSend = tty->rawOutBuf.Size - newTail; else nToSend = tty->rawOutBuf.Head - newTail; 42f74: 9483 subl %d3,%d2 <== NOT EXECUTED /* when flow control XON or XOF, don't send blocks of data */ /* to allow fast reaction on incoming flow ctrl and low latency*/ /* for outgoing flow control */ if (tty->flow_ctrl & (FL_MDXON | FL_MDXOF)) { 42f76: 0280 0000 0600 andil #1536,%d0 <== NOT EXECUTED 42f7c: 6702 beqs 42f80 <== NOT EXECUTED 42f7e: 7401 moveq #1,%d2 <== NOT EXECUTED nToSend = 1; } tty->rawOutBufState = rob_busy; /*apm*/ (*tty->device.write)(tty->minor, 42f80: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42f82: 222a 007c movel %a2@(124),%d1 <== NOT EXECUTED 42f86: d283 addl %d3,%d1 <== NOT EXECUTED 42f88: 2f01 movel %d1,%sp@- <== NOT EXECUTED 42f8a: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED /* to allow fast reaction on incoming flow ctrl and low latency*/ /* for outgoing flow control */ if (tty->flow_ctrl & (FL_MDXON | FL_MDXOF)) { nToSend = 1; } tty->rawOutBufState = rob_busy; /*apm*/ 42f8e: 7001 moveq #1,%d0 <== NOT EXECUTED 42f90: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED (*tty->device.write)(tty->minor, 42f94: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 42f98: 4e90 jsr %a0@ <== NOT EXECUTED 42f9a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED &tty->rawOutBuf.theBuf[newTail], nToSend); } tty->rawOutBuf.Tail = newTail; /*apm*/ 42fa0: 2543 0084 movel %d3,%a2@(132) <== NOT EXECUTED } return nToSend; } 42fa4: 2002 movel %d2,%d0 <== NOT EXECUTED 42fa6: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 42fac: 4e5e unlk %fp <== NOT EXECUTED 42fae: 4e75 rts 000445c4 : /* * this task actually processes any receive events */ static rtems_task rtems_termios_rxdaemon(rtems_task_argument argument) { 445c4: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 445c8: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@ <== NOT EXECUTED 445cc: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED char c_buf; while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_RX_PROC_EVENT | 445d0: 260e movel %fp,%d3 <== NOT EXECUTED if (c != EOF) { /* * pollRead did call enqueue on its own */ c_buf = c; rtems_termios_enqueue_raw_characters ( 445d2: 240e movel %fp,%d2 <== NOT EXECUTED char c_buf; while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_RX_PROC_EVENT | 445d4: 5d83 subql #6,%d3 <== NOT EXECUTED 445d6: 4bf9 0004 487c lea 4487c ,%a5 <== NOT EXECUTED RTEMS_EVENT_ANY | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &the_event); if ((the_event & TERMIOS_RX_TERMINATE_EVENT) != 0) { tty->rxTaskId = 0; rtems_task_delete(RTEMS_SELF); 445dc: 49f9 0004 5134 lea 45134 ,%a4 <== NOT EXECUTED if (c != EOF) { /* * pollRead did call enqueue on its own */ c_buf = c; rtems_termios_enqueue_raw_characters ( 445e2: 5382 subql #1,%d2 <== NOT EXECUTED 445e4: 47f9 0004 3010 lea 43010 ,%a3 <== NOT EXECUTED char c_buf; while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_RX_PROC_EVENT | 445ea: 2f03 movel %d3,%sp@- <== NOT EXECUTED 445ec: 42a7 clrl %sp@- <== NOT EXECUTED 445ee: 4878 0002 pea 2 <== NOT EXECUTED 445f2: 4878 0003 pea 3 <== NOT EXECUTED 445f6: 4e95 jsr %a5@ <== NOT EXECUTED TERMIOS_RX_TERMINATE_EVENT), RTEMS_EVENT_ANY | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &the_event); if ((the_event & TERMIOS_RX_TERMINATE_EVENT) != 0) { 445f8: 7001 moveq #1,%d0 <== NOT EXECUTED 445fa: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44600: c0ae fffa andl %fp@(-6),%d0 <== NOT EXECUTED 44604: 670c beqs 44612 <== NOT EXECUTED tty->rxTaskId = 0; 44606: 42aa 00c4 clrl %a2@(196) <== NOT EXECUTED rtems_task_delete(RTEMS_SELF); 4460a: 42a7 clrl %sp@- <== NOT EXECUTED 4460c: 4e94 jsr %a4@ <== NOT EXECUTED 4460e: 588f addql #4,%sp <== NOT EXECUTED 44610: 60d8 bras 445ea <== NOT EXECUTED } else { /* * do something */ c = tty->device.pollRead(tty->minor); 44612: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 44616: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED 4461a: 4e90 jsr %a0@ <== NOT EXECUTED if (c != EOF) { 4461c: 588f addql #4,%sp <== NOT EXECUTED 4461e: 72ff moveq #-1,%d1 <== NOT EXECUTED 44620: b280 cmpl %d0,%d1 <== NOT EXECUTED 44622: 67c6 beqs 445ea <== NOT EXECUTED /* * pollRead did call enqueue on its own */ c_buf = c; rtems_termios_enqueue_raw_characters ( 44624: 4878 0001 pea 1 <== NOT EXECUTED c = tty->device.pollRead(tty->minor); if (c != EOF) { /* * pollRead did call enqueue on its own */ c_buf = c; 44628: 1d40 ffff moveb %d0,%fp@(-1) <== NOT EXECUTED rtems_termios_enqueue_raw_characters ( 4462c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4462e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44630: 4e93 jsr %a3@ <== NOT EXECUTED 44632: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44638: 60b0 bras 445ea <== NOT EXECUTED ... 00042ddc : * signal receive interrupt to rx daemon * NOTE: This routine runs in the context of the * device receive interrupt handler. */ void rtems_termios_rxirq_occured(struct rtems_termios_tty *tty) { 42ddc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * send event to rx daemon task */ rtems_event_send(tty->rxTaskId,TERMIOS_RX_PROC_EVENT); 42de0: 4878 0002 pea 2 <== NOT EXECUTED * signal receive interrupt to rx daemon * NOTE: This routine runs in the context of the * device receive interrupt handler. */ void rtems_termios_rxirq_occured(struct rtems_termios_tty *tty) { 42de4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED /* * send event to rx daemon task */ rtems_event_send(tty->rxTaskId,TERMIOS_RX_PROC_EVENT); 42de8: 2f28 00c4 movel %a0@(196),%sp@- <== NOT EXECUTED 42dec: 4eb9 0004 49e4 jsr 449e4 <== NOT EXECUTED 42df2: 508f addql #8,%sp <== NOT EXECUTED } 42df4: 4e5e unlk %fp <== NOT EXECUTED 42df6: 4e75 rts 0004455a : /* * this task actually processes any transmit events */ static rtems_task rtems_termios_txdaemon(rtems_task_argument argument) { 4455a: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4455e: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 44562: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_TX_START_EVENT | 44566: 240e movel %fp,%d2 <== NOT EXECUTED 44568: 5982 subql #4,%d2 <== NOT EXECUTED 4456a: 4bf9 0004 487c lea 4487c ,%a5 <== NOT EXECUTED RTEMS_EVENT_ANY | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &the_event); if ((the_event & TERMIOS_TX_TERMINATE_EVENT) != 0) { tty->txTaskId = 0; rtems_task_delete(RTEMS_SELF); 44570: 49f9 0004 5134 lea 45134 ,%a4 <== NOT EXECUTED rtems_termios_linesw[tty->t_line].l_start(tty); } /* * try to push further characters to device */ rtems_termios_refill_transmitter(tty); 44576: 47f9 0004 2df8 lea 42df8 ,%a3 <== NOT EXECUTED while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_TX_START_EVENT | 4457c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4457e: 42a7 clrl %sp@- <== NOT EXECUTED 44580: 4878 0002 pea 2 <== NOT EXECUTED 44584: 4878 0003 pea 3 <== NOT EXECUTED 44588: 4e95 jsr %a5@ <== NOT EXECUTED TERMIOS_TX_TERMINATE_EVENT), RTEMS_EVENT_ANY | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &the_event); if ((the_event & TERMIOS_TX_TERMINATE_EVENT) != 0) { 4458a: 7001 moveq #1,%d0 <== NOT EXECUTED 4458c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44592: c0ae fffc andl %fp@(-4),%d0 <== NOT EXECUTED 44596: 670a beqs 445a2 <== NOT EXECUTED tty->txTaskId = 0; 44598: 42aa 00c8 clrl %a2@(200) <== NOT EXECUTED rtems_task_delete(RTEMS_SELF); 4459c: 42a7 clrl %sp@- <== NOT EXECUTED 4459e: 4e94 jsr %a4@ <== NOT EXECUTED 445a0: 601e bras 445c0 <== NOT EXECUTED } else { /* * call any line discipline start function */ if (rtems_termios_linesw[tty->t_line].l_start != NULL) { 445a2: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 445a6: eb88 lsll #5,%d0 <== NOT EXECUTED 445a8: 0680 0005 6364 addil #353124,%d0 <== NOT EXECUTED 445ae: 2240 moveal %d0,%a1 <== NOT EXECUTED 445b0: 2051 moveal %a1@,%a0 <== NOT EXECUTED 445b2: 4a88 tstl %a0 <== NOT EXECUTED 445b4: 6706 beqs 445bc <== NOT EXECUTED rtems_termios_linesw[tty->t_line].l_start(tty); 445b6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 445b8: 4e90 jsr %a0@ <== NOT EXECUTED 445ba: 588f addql #4,%sp <== NOT EXECUTED } /* * try to push further characters to device */ rtems_termios_refill_transmitter(tty); 445bc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 445be: 4e93 jsr %a3@ <== NOT EXECUTED 445c0: 588f addql #4,%sp <== NOT EXECUTED 445c2: 60b8 bras 4457c <== NOT EXECUTED 000438a4 : rtems_termios_puts (&c, 1, tty); } rtems_status_code rtems_termios_write (void *arg) { 438a4: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 438a8: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@ <== NOT EXECUTED 438ac: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED rtems_libio_rw_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 438b0: 2053 moveal %a3@,%a0 <== NOT EXECUTED 438b2: 2468 0028 moveal %a0@(40),%a2 <== NOT EXECUTED rtems_status_code sc; sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 438b6: 42a7 clrl %sp@- <== NOT EXECUTED 438b8: 42a7 clrl %sp@- <== NOT EXECUTED 438ba: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 438be: 4eb9 0004 4e48 jsr 44e48 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 438c4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED { rtems_libio_rw_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; rtems_status_code sc; sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 438ca: 2600 movel %d0,%d3 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 438cc: 6600 0082 bnew 43950 <== NOT EXECUTED return sc; if (rtems_termios_linesw[tty->t_line].l_write != NULL) { 438d0: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 438d4: eb88 lsll #5,%d0 <== NOT EXECUTED 438d6: 0680 0005 635c addil #353116,%d0 <== NOT EXECUTED 438dc: 2240 moveal %d0,%a1 <== NOT EXECUTED 438de: 2051 moveal %a1@,%a0 <== NOT EXECUTED 438e0: 4a88 tstl %a0 <== NOT EXECUTED 438e2: 671a beqs 438fe <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_write(tty,args); 438e4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 438e6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 438e8: 4e90 jsr %a0@ <== NOT EXECUTED rtems_semaphore_release (tty->osem); 438ea: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) return sc; if (rtems_termios_linesw[tty->t_line].l_write != NULL) { sc = rtems_termios_linesw[tty->t_line].l_write(tty,args); 438ee: 2600 movel %d0,%d3 <== NOT EXECUTED rtems_semaphore_release (tty->osem); 438f0: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 438f6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 438fc: 6052 bras 43950 <== NOT EXECUTED return sc; } if (tty->termios.c_oflag & OPOST) { 438fe: 7001 moveq #1,%d0 <== NOT EXECUTED 43900: c0aa 0034 andl %a2@(52),%d0 <== NOT EXECUTED 43904: 6722 beqs 43928 <== NOT EXECUTED uint32_t count = args->count; 43906: 242b 000c movel %a3@(12),%d2 <== NOT EXECUTED char *buffer = args->buffer; 4390a: 286b 0008 moveal %a3@(8),%a4 <== NOT EXECUTED while (count--) oproc (*buffer++, tty); 4390e: 4bfa fa5a lea %pc@(4336a ),%a5 <== NOT EXECUTED 43912: 600e bras 43922 <== NOT EXECUTED 43914: 4280 clrl %d0 <== NOT EXECUTED 43916: 101c moveb %a4@+,%d0 <== NOT EXECUTED 43918: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4391a: 5382 subql #1,%d2 <== NOT EXECUTED 4391c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4391e: 4e95 jsr %a5@ <== NOT EXECUTED 43920: 508f addql #8,%sp <== NOT EXECUTED return sc; } if (tty->termios.c_oflag & OPOST) { uint32_t count = args->count; char *buffer = args->buffer; while (count--) 43922: 4a82 tstl %d2 <== NOT EXECUTED 43924: 66ee bnes 43914 <== NOT EXECUTED 43926: 6016 bras 4393e <== NOT EXECUTED oproc (*buffer++, tty); args->bytes_moved = args->count; } else { rtems_termios_puts (args->buffer, args->count, tty); 43928: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4392a: 2f2b 000c movel %a3@(12),%sp@- <== NOT EXECUTED 4392e: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 43932: 4eb9 0004 326a jsr 4326a <== NOT EXECUTED args->bytes_moved = args->count; 43938: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4393e: 276b 000c 0014 movel %a3@(12),%a3@(20) <== NOT EXECUTED } rtems_semaphore_release (tty->osem); 43944: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 43948: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED 4394e: 588f addql #4,%sp <== NOT EXECUTED return sc; } 43950: 2003 movel %d3,%d0 <== NOT EXECUTED 43952: 4cee 3c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a5 <== NOT EXECUTED 43958: 4e5e unlk %fp <== NOT EXECUTED 4395a: 4e75 rts 0004ef70 : */ rtems_status_code rtems_timer_cancel( Objects_Id id ) { 4ef70: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get ( Objects_Id id, Objects_Locations *location ) { return (Timer_Control *) 4ef74: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4ef78: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ef7c: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4ef82: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4ef88: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ef8e: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ef90: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4ef94: 6704 beqs 4ef9a <== NOT EXECUTED 4ef96: 7004 moveq #4,%d0 <== NOT EXECUTED 4ef98: 601c bras 4efb6 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Timer_Is_dormant_class( the_timer->the_class ) ) 4ef9a: 7004 moveq #4,%d0 <== NOT EXECUTED 4ef9c: b0a8 0038 cmpl %a0@(56),%d0 <== NOT EXECUTED 4efa0: 670c beqs 4efae <== NOT EXECUTED (void) _Watchdog_Remove( &the_timer->Ticker ); 4efa2: 4868 0010 pea %a0@(16) <== NOT EXECUTED 4efa6: 4eb9 0005 3290 jsr 53290 <_Watchdog_Remove> <== NOT EXECUTED 4efac: 588f addql #4,%sp <== NOT EXECUTED _Thread_Enable_dispatch(); 4efae: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4efb4: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4efb6: 4e5e unlk %fp <== NOT EXECUTED 4efb8: 4e75 rts <== NOT EXECUTED ... 0004efbc : rtems_status_code rtems_timer_create( rtems_name name, Objects_Id *id ) { 4efbc: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4efc0: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4efc4: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4efc8: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED Timer_Control *the_timer; if ( !rtems_is_name_valid( name ) ) 4efcc: 6604 bnes 4efd2 <== NOT EXECUTED 4efce: 7003 moveq #3,%d0 <== NOT EXECUTED 4efd0: 6068 bras 4f03a <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 4efd2: 4a8b tstl %a3 <== NOT EXECUTED 4efd4: 6604 bnes 4efda <== NOT EXECUTED 4efd6: 7009 moveq #9,%d0 <== NOT EXECUTED 4efd8: 6060 bras 4f03a <== NOT EXECUTED 4efda: 2039 0006 c830 movel 6c830 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4efe0: 5280 addql #1,%d0 <== NOT EXECUTED 4efe2: 23c0 0006 c830 movel %d0,6c830 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * This function allocates a timer control block from * the inactive chain of free timer control blocks. */ RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Allocate( void ) { return (Timer_Control *) _Objects_Allocate( &_Timer_Information ); 4efe8: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4efee: 4eb9 0005 1278 jsr 51278 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_timer = _Timer_Allocate(); if ( !the_timer ) { 4eff4: 588f addql #4,%sp <== NOT EXECUTED 4eff6: 2240 moveal %d0,%a1 <== NOT EXECUTED 4eff8: 45f9 0005 1ef2 lea 51ef2 <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 4effe: 4a80 tstl %d0 <== NOT EXECUTED 4f000: 6606 bnes 4f008 <== NOT EXECUTED _Thread_Enable_dispatch(); 4f002: 4e92 jsr %a2@ <== NOT EXECUTED 4f004: 7005 moveq #5,%d0 <== NOT EXECUTED 4f006: 6032 bras 4f03a <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4f008: 2342 000c movel %d2,%a1@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4f00c: 2079 0006 cacc moveal 6cacc <_Timer_Information+0x1a>,%a0 <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 4f012: 42a9 0030 clrl %a1@(48) <== NOT EXECUTED 4f016: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_TOO_MANY; } the_timer->the_class = TIMER_DORMANT; 4f018: 7204 moveq #4,%d1 <== NOT EXECUTED 4f01a: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED &_Timer_Information, &the_timer->Object, (Objects_Name) name ); *id = the_timer->Object.id; 4f01e: 26a9 0008 movel %a1@(8),%a3@ <== NOT EXECUTED 4f022: 2189 0c00 movel %a1,%a0@(00000000,%d0:l:4) <== NOT EXECUTED if ( !the_timer ) { _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } the_timer->the_class = TIMER_DORMANT; 4f026: 2341 0038 movel %d1,%a1@(56) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f02a: 42a9 0018 clrl %a1@(24) <== NOT EXECUTED the_watchdog->routine = routine; 4f02e: 42a9 002c clrl %a1@(44) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 4f032: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED &the_timer->Object, (Objects_Name) name ); *id = the_timer->Object.id; _Thread_Enable_dispatch(); 4f036: 4e92 jsr %a2@ <== NOT EXECUTED 4f038: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4f03a: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4f040: 4e5e unlk %fp <== NOT EXECUTED 4f042: 4e75 rts 0004f044 : */ rtems_status_code rtems_timer_delete( Objects_Id id ) { 4f044: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4f048: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get ( Objects_Id id, Objects_Locations *location ) { return (Timer_Control *) 4f04a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f04e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f052: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4f058: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f05e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f064: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f066: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f06a: 6704 beqs 4f070 <== NOT EXECUTED 4f06c: 7004 moveq #4,%d0 <== NOT EXECUTED 4f06e: 6034 bras 4f0a4 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Timer_Information, &the_timer->Object ); 4f070: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f072: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4f078: 4eb9 0005 1300 jsr 51300 <_Objects_Close> <== NOT EXECUTED (void) _Watchdog_Remove( &the_timer->Ticker ); 4f07e: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4f082: 4eb9 0005 3290 jsr 53290 <_Watchdog_Remove> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Timer_Free ( Timer_Control *the_timer ) { _Objects_Free( &_Timer_Information, &the_timer->Object ); 4f088: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f08a: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4f090: 4eb9 0005 1578 jsr 51578 <_Objects_Free> <== NOT EXECUTED _Timer_Free( the_timer ); _Thread_Enable_dispatch(); 4f096: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4f09c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4f0a2: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f0a4: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4f0a8: 4e5e unlk %fp <== NOT EXECUTED 4f0aa: 4e75 rts 0004f0ac : Objects_Id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) { 4f0ac: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4f0b0: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 4f0b4: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 4f0b8: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 4f0bc: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; ISR_Level level; if ( ticks == 0 ) 4f0c0: 4a85 tstl %d5 <== NOT EXECUTED 4f0c2: 6606 bnes 4f0ca <== NOT EXECUTED 4f0c4: 700a moveq #10,%d0 <== NOT EXECUTED 4f0c6: 6000 0090 braw 4f158 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; if ( !routine ) 4f0ca: 4a83 tstl %d3 <== NOT EXECUTED 4f0cc: 6606 bnes 4f0d4 <== NOT EXECUTED 4f0ce: 7009 moveq #9,%d0 <== NOT EXECUTED 4f0d0: 6000 0086 braw 4f158 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get ( Objects_Id id, Objects_Locations *location ) { return (Timer_Control *) 4f0d4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f0d8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4f0da: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4f0e0: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f0e6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f0ec: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f0ee: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f0f2: 6704 beqs 4f0f8 <== NOT EXECUTED 4f0f4: 7004 moveq #4,%d0 <== NOT EXECUTED 4f0f6: 6060 bras 4f158 <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 4f0f8: 2400 movel %d0,%d2 <== NOT EXECUTED 4f0fa: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 4f100: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f102: 4eb9 0005 3290 jsr 53290 <_Watchdog_Remove> <== NOT EXECUTED _ISR_Disable( level ); 4f108: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4f10e: 40c1 movew %sr,%d1 <== NOT EXECUTED 4f110: 8081 orl %d1,%d0 <== NOT EXECUTED 4f112: 46c0 movew %d0,%sr <== NOT EXECUTED 4f114: 47f9 0005 1ef2 lea 51ef2 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED /* * Check to see if the watchdog has just been inserted by a * higher priority interrupt. If so, abandon this insert. */ if ( the_timer->Ticker.state != WATCHDOG_INACTIVE ) { 4f11a: 588f addql #4,%sp <== NOT EXECUTED 4f11c: 4aaa 0018 tstl %a2@(24) <== NOT EXECUTED 4f120: 6706 beqs 4f128 <== NOT EXECUTED _ISR_Enable( level ); 4f122: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_Enable_dispatch(); 4f124: 4e93 jsr %a3@ <== NOT EXECUTED 4f126: 602e bras 4f156 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4f128: 2543 002c movel %d3,%a2@(44) <== NOT EXECUTED the_watchdog->id = id; 4f12c: 2544 0030 movel %d4,%a2@(48) <== NOT EXECUTED the_watchdog->user_data = user_data; 4f130: 256e 0014 0034 movel %fp@(20),%a2@(52) <== NOT EXECUTED /* * OK. Now we now the timer was not rescheduled by an interrupt * so we can atomically initialize it as in use. */ the_timer->the_class = TIMER_INTERVAL; 4f136: 42aa 0038 clrl %a2@(56) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f13a: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); _ISR_Enable( level ); 4f13e: 46c1 movew %d1,%sr <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4f140: 2545 001c movel %d5,%a2@(28) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4f144: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f146: 4879 0006 c90c pea 6c90c <_Watchdog_Ticks_chain> <== NOT EXECUTED 4f14c: 4eb9 0005 3174 jsr 53174 <_Watchdog_Insert> <== NOT EXECUTED _Watchdog_Insert_ticks( &the_timer->Ticker, ticks ); _Thread_Enable_dispatch(); 4f152: 4e93 jsr %a3@ <== NOT EXECUTED 4f154: 508f addql #8,%sp <== NOT EXECUTED 4f156: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f158: 4cee 0c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a3 <== NOT EXECUTED 4f15e: 4e5e unlk %fp <== NOT EXECUTED 4f160: 4e75 rts <== NOT EXECUTED ... 0004f164 : Objects_Id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) { 4f164: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4f168: 48d7 043c moveml %d2-%d5/%a2,%sp@ <== NOT EXECUTED 4f16c: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 4f170: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4f174: 2a2e 0010 movel %fp@(16),%d5 <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; rtems_interval seconds; if ( !_TOD_Is_set ) 4f178: 4a39 0006 c844 tstb 6c844 <_TOD_Is_set> <== NOT EXECUTED 4f17e: 6606 bnes 4f186 <== NOT EXECUTED 4f180: 700b moveq #11,%d0 <== NOT EXECUTED 4f182: 6000 00a6 braw 4f22a <== NOT EXECUTED return RTEMS_NOT_DEFINED; if ( !_TOD_Validate( wall_time ) ) 4f186: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f188: 4eb9 0004 c9e0 jsr 4c9e0 <_TOD_Validate> <== NOT EXECUTED 4f18e: 588f addql #4,%sp <== NOT EXECUTED 4f190: 4a00 tstb %d0 <== NOT EXECUTED 4f192: 6700 0094 beqw 4f228 <== NOT EXECUTED return RTEMS_INVALID_CLOCK; if ( !routine ) 4f196: 4a85 tstl %d5 <== NOT EXECUTED 4f198: 6606 bnes 4f1a0 <== NOT EXECUTED 4f19a: 7009 moveq #9,%d0 <== NOT EXECUTED 4f19c: 6000 008c braw 4f22a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; seconds = _TOD_To_seconds( wall_time ); 4f1a0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f1a2: 4eb9 0004 c92c jsr 4c92c <_TOD_To_seconds> <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 4f1a8: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_INVALID_CLOCK; if ( !routine ) return RTEMS_INVALID_ADDRESS; seconds = _TOD_To_seconds( wall_time ); 4f1aa: 2600 movel %d0,%d3 <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 4f1ac: b0b9 0006 c8c2 cmpl 6c8c2 <_TOD_Now>,%d0 <== NOT EXECUTED 4f1b2: 6374 blss 4f228 <== NOT EXECUTED 4f1b4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f1b8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4f1ba: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4f1c0: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_CLOCK; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f1c6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f1cc: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f1ce: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f1d2: 6704 beqs 4f1d8 <== NOT EXECUTED 4f1d4: 7004 moveq #4,%d0 <== NOT EXECUTED 4f1d6: 6052 bras 4f22a <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 4f1d8: 2400 movel %d0,%d2 <== NOT EXECUTED 4f1da: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 4f1e0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f1e2: 4eb9 0005 3290 jsr 53290 <_Watchdog_Remove> <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 4f1e8: 2544 0030 movel %d4,%a2@(48) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4f1ec: 96b9 0006 c8c2 subl 6c8c2 <_TOD_Now>,%d3 <== NOT EXECUTED the_timer->the_class = TIMER_TIME_OF_DAY; 4f1f2: 7002 moveq #2,%d0 <== NOT EXECUTED ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 4f1f4: 256e 0014 0034 movel %fp@(20),%a2@(52) <== NOT EXECUTED 4f1fa: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4f1fe: 2543 001c movel %d3,%a2@(28) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4f202: 2545 002c movel %d5,%a2@(44) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f206: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 4f20a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f20c: 4879 0006 c900 pea 6c900 <_Watchdog_Seconds_chain> <== NOT EXECUTED 4f212: 4eb9 0005 3174 jsr 53174 <_Watchdog_Insert> <== NOT EXECUTED _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); _Watchdog_Insert_seconds( &the_timer->Ticker, seconds - _TOD_Seconds_since_epoch ); _Thread_Enable_dispatch(); 4f218: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4f21e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f224: 4280 clrl %d0 <== NOT EXECUTED 4f226: 6002 bras 4f22a <== NOT EXECUTED return RTEMS_SUCCESSFUL; 4f228: 7014 moveq #20,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f22a: 4cee 043c ffe8 moveml %fp@(-24),%d2-%d5/%a2 <== NOT EXECUTED 4f230: 4e5e unlk %fp <== NOT EXECUTED 4f232: 4e75 rts 0004f234 : rtems_status_code rtems_timer_get_information( Objects_Id id, rtems_timer_information *the_info ) { 4f234: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4f238: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f23a: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; if ( !the_info ) 4f23e: 4a8a tstl %a2 <== NOT EXECUTED 4f240: 6604 bnes 4f246 <== NOT EXECUTED 4f242: 7009 moveq #9,%d0 <== NOT EXECUTED 4f244: 6044 bras 4f28a <== NOT EXECUTED 4f246: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f24a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f24e: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4f254: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f25a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f260: 2040 moveal %d0,%a0 <== NOT EXECUTED 4f262: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f266: 6704 beqs 4f26c <== NOT EXECUTED 4f268: 7004 moveq #4,%d0 <== NOT EXECUTED 4f26a: 601e bras 4f28a <== NOT EXECUTED case OBJECTS_LOCAL: the_info->the_class = the_timer->the_class; 4f26c: 24a8 0038 movel %a0@(56),%a2@ <== NOT EXECUTED the_info->initial = the_timer->Ticker.initial; 4f270: 2568 001c 0004 movel %a0@(28),%a2@(4) <== NOT EXECUTED the_info->start_time = the_timer->Ticker.start_time; 4f276: 2568 0024 0008 movel %a0@(36),%a2@(8) <== NOT EXECUTED the_info->stop_time = the_timer->Ticker.stop_time; 4f27c: 2568 0028 000c movel %a0@(40),%a2@(12) <== NOT EXECUTED _Thread_Enable_dispatch(); 4f282: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4f288: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f28a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4f28e: 4e5e unlk %fp <== NOT EXECUTED 4f290: 4e75 rts <== NOT EXECUTED ... 0004f294 : rtems_status_code rtems_timer_ident( rtems_name name, Objects_Id *id ) { 4f294: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 4f298: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4f29c: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 4f2a2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f2a6: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4f2ac: 4eb9 0005 1874 jsr 51874 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4f2b2: 41f9 0006 597e lea 6597e <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 4f2b8: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4f2bc: 4e5e unlk %fp <== NOT EXECUTED 4f2be: 4e75 rts 0004f500 : rtems_status_code rtems_timer_initiate_server( uint32_t priority, uint32_t stack_size, rtems_attribute attribute_set ) { 4f500: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4f504: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f506: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 4f50a: 2f02 movel %d2,%sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid ( rtems_task_priority the_priority ) { return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) && 4f50c: 4a81 tstl %d1 <== NOT EXECUTED 4f50e: 671e beqs 4f52e <== NOT EXECUTED 4f510: 4280 clrl %d0 <== NOT EXECUTED 4f512: 1039 0006 69e2 moveb 669e2 ,%d0 <== NOT EXECUTED 4f518: b081 cmpl %d1,%d0 <== NOT EXECUTED 4f51a: 54c0 scc %d0 <== NOT EXECUTED 4f51c: 49c0 extbl %d0 <== NOT EXECUTED 4f51e: 4480 negl %d0 <== NOT EXECUTED * Make sure the requested priority is valid. The if is * structured so we check it is invalid before looking for * a specific invalid value as the default. */ _priority = priority; if ( !_RTEMS_tasks_Priority_is_valid( priority ) ) { 4f520: 4a00 tstb %d0 <== NOT EXECUTED 4f522: 6704 beqs 4f528 <== NOT EXECUTED 4f524: 2601 movel %d1,%d3 <== NOT EXECUTED 4f526: 600e bras 4f536 <== NOT EXECUTED if ( priority != RTEMS_TIMER_SERVER_DEFAULT_PRIORITY ) 4f528: 70ff moveq #-1,%d0 <== NOT EXECUTED 4f52a: b081 cmpl %d1,%d0 <== NOT EXECUTED 4f52c: 6706 beqs 4f534 <== NOT EXECUTED 4f52e: 7013 moveq #19,%d0 <== NOT EXECUTED 4f530: 6000 0144 braw 4f676 <== NOT EXECUTED 4f534: 4283 clrl %d3 <== NOT EXECUTED 4f536: 2039 0006 c830 movel 6c830 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4f53c: 5280 addql #1,%d0 <== NOT EXECUTED 4f53e: 23c0 0006 c830 movel %d0,6c830 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Just to make sure this is only called once. */ _Thread_Disable_dispatch(); tmpInitialized = initialized; 4f544: 1439 0006 7cb0 moveb 67cb0 ,%d2 <== NOT EXECUTED initialized = true; 4f54a: 7201 moveq #1,%d1 <== NOT EXECUTED 4f54c: 13c1 0006 7cb0 moveb %d1,67cb0 <== NOT EXECUTED _Thread_Enable_dispatch(); 4f552: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( tmpInitialized ) 4f558: 4a02 tstb %d2 <== NOT EXECUTED 4f55a: 6706 beqs 4f562 <== NOT EXECUTED 4f55c: 700e moveq #14,%d0 <== NOT EXECUTED 4f55e: 6000 0116 braw 4f676 <== NOT EXECUTED * other library rules. For example, if using a TSR written in Ada the * Server should run at the same priority as the priority Ada task. * Otherwise, the priority ceiling for the mutex used to protect the * GNAT run-time is violated. */ status = rtems_task_create( 4f562: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f566: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 4f56a: 08c0 000f bset #15,%d0 <== NOT EXECUTED 4f56e: 2f00 movel %d0,%sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f570: 223c 0006 c7ac movel #444332,%d1 <== NOT EXECUTED 4f576: 4878 0100 pea 100 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f57a: 203c 0006 c7a8 movel #444328,%d0 <== NOT EXECUTED 4f580: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4f584: 2f03 movel %d3,%sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f586: 23c1 0006 c7a8 movel %d1,6c7a8 <_Timer_To_be_inserted> <== NOT EXECUTED 4f58c: 2f3c 5449 4d45 movel #1414090053,%sp@- <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f592: 23c0 0006 c7b0 movel %d0,6c7b0 <_Timer_To_be_inserted+0x8> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 4f598: 42b9 0006 c7ac clrl 6c7ac <_Timer_To_be_inserted+0x4> <== NOT EXECUTED 4f59e: 4eb9 0004 e8b8 jsr 4e8b8 <== NOT EXECUTED /* user may want floating point but we need */ /* system task specified for 0 priority */ attribute_set | RTEMS_SYSTEM_TASK, &id /* get the id back */ ); if (status) { 4f5a4: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 4f5aa: 4a80 tstl %d0 <== NOT EXECUTED 4f5ac: 6600 00c0 bnew 4f66e <== NOT EXECUTED * to a TCB pointer from here out. * * NOTE: Setting the pointer to the Timer Server TCB to a value other than * NULL indicates that task-based timer support is initialized. */ _Timer_Server = (Thread_Control *)_Objects_Get_local_object( 4f5b0: 226e fffc moveal %fp@(-4),%a1 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Objects_Control *_Objects_Get_local_object( Objects_Information *information, uint16_t index ) { if ( index > information->maximum ) 4f5b4: 4280 clrl %d0 <== NOT EXECUTED 4f5b6: 4281 clrl %d1 <== NOT EXECUTED 4f5b8: 3039 0006 c75a movew 6c75a <_RTEMS_tasks_Information+0xe>,%d0 <== NOT EXECUTED 4f5be: 3209 movew %a1,%d1 <== NOT EXECUTED 4f5c0: b081 cmpl %d1,%d0 <== NOT EXECUTED 4f5c2: 6404 bccs 4f5c8 <== NOT EXECUTED 4f5c4: 91c8 subal %a0,%a0 <== NOT EXECUTED 4f5c6: 600a bras 4f5d2 <== NOT EXECUTED return NULL; return information->local_table[ index ]; 4f5c8: 2079 0006 c766 moveal 6c766 <_RTEMS_tasks_Information+0x1a>,%a0 <== NOT EXECUTED 4f5ce: 2070 1c00 moveal %a0@(00000000,%d1:l:4),%a0 <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 4f5d2: 42a8 006c clrl %a0@(108) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4f5d6: 203c 0005 1d64 movel #335204,%d0 <== NOT EXECUTED 4f5dc: 2140 0064 movel %d0,%a0@(100) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f5e0: 223c 0006 c78c movel #444300,%d1 <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f5e6: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; 4f5ea: 2149 0068 movel %a1,%a0@(104) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f5ee: 203c 0006 c788 movel #444296,%d0 <== NOT EXECUTED _Timer_Server_schedule_operation = _Timer_Server_schedule_operation_method; /* * Start the timer server */ status = rtems_task_start( 4f5f4: 42a7 clrl %sp@- <== NOT EXECUTED 4f5f6: 4879 0004 f726 pea 4f726 <_Timer_Server_body> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f5fc: 23c1 0006 c788 movel %d1,6c788 <_Timer_Ticks_chain> <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f602: 223c 0006 c7a0 movel #444320,%d1 <== NOT EXECUTED 4f608: 23c0 0006 c790 movel %d0,6c790 <_Timer_Ticks_chain+0x8> <== NOT EXECUTED 4f60e: 203c 0006 c79c movel #444316,%d0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f614: 23c1 0006 c79c movel %d1,6c79c <_Timer_Seconds_chain> <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4f61a: 223c 0005 1d64 movel #335204,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f620: 23c0 0006 c7a4 movel %d0,6c7a4 <_Timer_Seconds_chain+0x8> <== NOT EXECUTED /* * Initialize the pointer to the timer reset method so applications * that do not use the Timer Server do not have to pull it in. */ _Timer_Server_schedule_operation = _Timer_Server_schedule_operation_method; 4f626: 203c 0004 f682 movel #325250,%d0 <== NOT EXECUTED /* * Start the timer server */ status = rtems_task_start( 4f62c: 2f09 movel %a1,%sp@- <== NOT EXECUTED 4f62e: 23c1 0006 c7d0 movel %d1,6c7d0 <_Timer_Seconds_timer+0x1c> <== NOT EXECUTED /* * Initialize the pointer to the timer reset method so applications * that do not use the Timer Server do not have to pull it in. */ _Timer_Server_schedule_operation = _Timer_Server_schedule_operation_method; 4f634: 23c0 0006 caee movel %d0,6caee <_Timer_Server_schedule_operation> <== NOT EXECUTED * to a TCB pointer from here out. * * NOTE: Setting the pointer to the Timer Server TCB to a value other than * NULL indicates that task-based timer support is initialized. */ _Timer_Server = (Thread_Control *)_Objects_Get_local_object( 4f63a: 23c8 0006 caf2 movel %a0,6caf2 <_Timer_Server> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 4f640: 42b9 0006 c78c clrl 6c78c <_Timer_Ticks_chain+0x4> <== NOT EXECUTED 4f646: 42b9 0006 c7a0 clrl 6c7a0 <_Timer_Seconds_chain+0x4> <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f64c: 42b9 0006 c7bc clrl 6c7bc <_Timer_Seconds_timer+0x8> <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; 4f652: 23c9 0006 c7d4 movel %a1,6c7d4 <_Timer_Seconds_timer+0x20> <== NOT EXECUTED the_watchdog->user_data = user_data; 4f658: 42b9 0006 c7d8 clrl 6c7d8 <_Timer_Seconds_timer+0x24> <== NOT EXECUTED _Timer_Server_schedule_operation = _Timer_Server_schedule_operation_method; /* * Start the timer server */ status = rtems_task_start( 4f65e: 4eb9 0004 ed88 jsr 4ed88 <== NOT EXECUTED id, /* the id from create */ (rtems_task_entry) _Timer_Server_body, /* the timer server entry point */ 0 /* there is no argument */ ); if (status) { 4f664: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f66a: 4a80 tstl %d0 <== NOT EXECUTED 4f66c: 6708 beqs 4f676 <== NOT EXECUTED * but there is actually no way (in normal circumstances) that the * start can fail. The id and starting address are known to be * be good. If this service fails, something is weirdly wrong on the * target such as a stray write in an ISR or incorrect memory layout. */ initialized = false; 4f66e: 4201 clrb %d1 <== NOT EXECUTED 4f670: 13c1 0006 7cb0 moveb %d1,67cb0 <== NOT EXECUTED } return status; } 4f676: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4f67a: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 4f67e: 4e5e unlk %fp <== NOT EXECUTED 4f680: 4e75 rts 0004f2c0 : */ rtems_status_code rtems_timer_reset( Objects_Id id ) { 4f2c0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4f2c4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f2c6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f2c8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f2cc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f2d0: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4f2d6: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f2dc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f2e2: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f2e4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f2e8: 6704 beqs 4f2ee <== NOT EXECUTED 4f2ea: 7004 moveq #4,%d0 <== NOT EXECUTED 4f2ec: 6078 bras 4f366 <== NOT EXECUTED case OBJECTS_LOCAL: switch ( the_timer->the_class ) { 4f2ee: 202a 0038 movel %a2@(56),%d0 <== NOT EXECUTED 4f2f2: 7201 moveq #1,%d1 <== NOT EXECUTED 4f2f4: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f2f6: 6732 beqs 4f32a <== NOT EXECUTED 4f2f8: 620a bhis 4f304 <== NOT EXECUTED 4f2fa: 123c 0004 moveb #4,%d1 <== NOT EXECUTED 4f2fe: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f300: 655c bcss 4f35e <== NOT EXECUTED 4f302: 6050 bras 4f354 <== NOT EXECUTED case TIMER_INTERVAL: _Watchdog_Remove( &the_timer->Ticker ); 4f304: 240a movel %a2,%d2 <== NOT EXECUTED 4f306: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 4f30c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f30e: 4eb9 0005 3290 jsr 53290 <_Watchdog_Remove> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker ); 4f314: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f316: 4879 0006 c90c pea 6c90c <_Watchdog_Ticks_chain> <== NOT EXECUTED 4f31c: 4eb9 0005 3174 jsr 53174 <_Watchdog_Insert> <== NOT EXECUTED 4f322: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f328: 6034 bras 4f35e <== NOT EXECUTED break; case TIMER_INTERVAL_ON_TASK: if ( !_Timer_Server_schedule_operation ) { 4f32a: 4ab9 0006 caee tstl 6caee <_Timer_Server_schedule_operation> <== NOT EXECUTED 4f330: 660a bnes 4f33c <== NOT EXECUTED _Thread_Enable_dispatch(); 4f332: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4f338: 700e moveq #14,%d0 <== NOT EXECUTED 4f33a: 602a bras 4f366 <== NOT EXECUTED return RTEMS_INCORRECT_STATE; } _Watchdog_Remove( &the_timer->Ticker ); 4f33c: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4f340: 4eb9 0005 3290 jsr 53290 <_Watchdog_Remove> <== NOT EXECUTED (*_Timer_Server_schedule_operation)( the_timer ); 4f346: 2079 0006 caee moveal 6caee <_Timer_Server_schedule_operation>,%a0 <== NOT EXECUTED 4f34c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f34e: 4e90 jsr %a0@ <== NOT EXECUTED 4f350: 508f addql #8,%sp <== NOT EXECUTED 4f352: 600a bras 4f35e <== NOT EXECUTED break; case TIMER_TIME_OF_DAY: case TIMER_TIME_OF_DAY_ON_TASK: case TIMER_DORMANT: _Thread_Enable_dispatch(); 4f354: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4f35a: 700b moveq #11,%d0 <== NOT EXECUTED 4f35c: 6008 bras 4f366 <== NOT EXECUTED return RTEMS_NOT_DEFINED; } _Thread_Enable_dispatch(); 4f35e: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4f364: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f366: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4f36a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4f36e: 4e5e unlk %fp <== NOT EXECUTED 4f370: 4e75 rts <== NOT EXECUTED ... 0004f374 : Objects_Id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) { 4f374: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4f378: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 4f37c: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4f380: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4f384: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; ISR_Level level; if ( !_Timer_Server ) 4f388: 4ab9 0006 caf2 tstl 6caf2 <_Timer_Server> <== NOT EXECUTED 4f38e: 6606 bnes 4f396 <== NOT EXECUTED 4f390: 700e moveq #14,%d0 <== NOT EXECUTED 4f392: 6000 0090 braw 4f424 <== NOT EXECUTED return RTEMS_INCORRECT_STATE; if ( !routine ) 4f396: 4a82 tstl %d2 <== NOT EXECUTED 4f398: 6606 bnes 4f3a0 <== NOT EXECUTED 4f39a: 7009 moveq #9,%d0 <== NOT EXECUTED 4f39c: 6000 0086 braw 4f424 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( ticks == 0 ) 4f3a0: 4a84 tstl %d4 <== NOT EXECUTED 4f3a2: 6604 bnes 4f3a8 <== NOT EXECUTED 4f3a4: 700a moveq #10,%d0 <== NOT EXECUTED 4f3a6: 607c bras 4f424 <== NOT EXECUTED 4f3a8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f3ac: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f3ae: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4f3b4: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_NUMBER; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f3ba: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f3c0: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f3c2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f3c6: 6704 beqs 4f3cc <== NOT EXECUTED 4f3c8: 7004 moveq #4,%d0 <== NOT EXECUTED 4f3ca: 6058 bras 4f424 <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 4f3cc: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4f3d0: 4eb9 0005 3290 jsr 53290 <_Watchdog_Remove> <== NOT EXECUTED _ISR_Disable( level ); 4f3d6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4f3dc: 40c1 movew %sr,%d1 <== NOT EXECUTED 4f3de: 8081 orl %d1,%d0 <== NOT EXECUTED 4f3e0: 46c0 movew %d0,%sr <== NOT EXECUTED 4f3e2: 47f9 0005 1ef2 lea 51ef2 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED /* * Check to see if the watchdog has just been inserted by a * higher priority interrupt. If so, abandon this insert. */ if ( the_timer->Ticker.state != WATCHDOG_INACTIVE ) { 4f3e8: 588f addql #4,%sp <== NOT EXECUTED 4f3ea: 4aaa 0018 tstl %a2@(24) <== NOT EXECUTED 4f3ee: 6706 beqs 4f3f6 <== NOT EXECUTED _ISR_Enable( level ); 4f3f0: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_Enable_dispatch(); 4f3f2: 4e93 jsr %a3@ <== NOT EXECUTED 4f3f4: 602c bras 4f422 <== NOT EXECUTED /* * OK. Now we now the timer was not rescheduled by an interrupt * so we can atomically initialize it as in use. */ the_timer->the_class = TIMER_INTERVAL_ON_TASK; 4f3f6: 7001 moveq #1,%d0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4f3f8: 2542 002c movel %d2,%a2@(44) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 4f3fc: 256e 0014 0034 movel %fp@(20),%a2@(52) <== NOT EXECUTED 4f402: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 4f406: 2543 0030 movel %d3,%a2@(48) <== NOT EXECUTED _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); the_timer->Ticker.initial = ticks; 4f40a: 2544 001c movel %d4,%a2@(28) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f40e: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED _ISR_Enable( level ); 4f412: 46c1 movew %d1,%sr <== NOT EXECUTED /* * _Timer_Server_schedule_operation != NULL because we checked that * _Timer_Server was != NULL above. Both are set at the same time. */ (*_Timer_Server_schedule_operation)( the_timer ); 4f414: 2079 0006 caee moveal 6caee <_Timer_Server_schedule_operation>,%a0 <== NOT EXECUTED 4f41a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f41c: 4e90 jsr %a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4f41e: 4e93 jsr %a3@ <== NOT EXECUTED 4f420: 588f addql #4,%sp <== NOT EXECUTED 4f422: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f424: 4cee 0c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a3 <== NOT EXECUTED 4f42a: 4e5e unlk %fp <== NOT EXECUTED 4f42c: 4e75 rts <== NOT EXECUTED ... 0004f430 : Objects_Id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) { 4f430: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4f434: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 4f438: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4f43c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4f440: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; rtems_interval seconds; if ( !_Timer_Server ) 4f444: 4ab9 0006 caf2 tstl 6caf2 <_Timer_Server> <== NOT EXECUTED 4f44a: 6606 bnes 4f452 <== NOT EXECUTED 4f44c: 700e moveq #14,%d0 <== NOT EXECUTED 4f44e: 6000 00a4 braw 4f4f4 <== NOT EXECUTED return RTEMS_INCORRECT_STATE; if ( !_TOD_Is_set ) 4f452: 4a39 0006 c844 tstb 6c844 <_TOD_Is_set> <== NOT EXECUTED 4f458: 6606 bnes 4f460 <== NOT EXECUTED 4f45a: 700b moveq #11,%d0 <== NOT EXECUTED 4f45c: 6000 0096 braw 4f4f4 <== NOT EXECUTED return RTEMS_NOT_DEFINED; if ( !routine ) 4f460: 4a84 tstl %d4 <== NOT EXECUTED 4f462: 6606 bnes 4f46a <== NOT EXECUTED 4f464: 7009 moveq #9,%d0 <== NOT EXECUTED 4f466: 6000 008c braw 4f4f4 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Validate( wall_time ) ) 4f46a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f46c: 4eb9 0004 c9e0 jsr 4c9e0 <_TOD_Validate> <== NOT EXECUTED 4f472: 588f addql #4,%sp <== NOT EXECUTED 4f474: 4a00 tstb %d0 <== NOT EXECUTED 4f476: 677a beqs 4f4f2 <== NOT EXECUTED return RTEMS_INVALID_CLOCK; seconds = _TOD_To_seconds( wall_time ); 4f478: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f47a: 4eb9 0004 c92c jsr 4c92c <_TOD_To_seconds> <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 4f480: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Validate( wall_time ) ) return RTEMS_INVALID_CLOCK; seconds = _TOD_To_seconds( wall_time ); 4f482: 2400 movel %d0,%d2 <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 4f484: b0b9 0006 c8c2 cmpl 6c8c2 <_TOD_Now>,%d0 <== NOT EXECUTED 4f48a: 6366 blss 4f4f2 <== NOT EXECUTED 4f48c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f490: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f492: 4879 0006 cab2 pea 6cab2 <_Timer_Information> <== NOT EXECUTED 4f498: 4eb9 0005 1710 jsr 51710 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_CLOCK; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f49e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f4a4: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f4a6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f4aa: 6704 beqs 4f4b0 <== NOT EXECUTED 4f4ac: 7004 moveq #4,%d0 <== NOT EXECUTED 4f4ae: 6044 bras 4f4f4 <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 4f4b0: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4f4b4: 4eb9 0005 3290 jsr 53290 <_Watchdog_Remove> <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; 4f4ba: 2543 0030 movel %d3,%a2@(48) <== NOT EXECUTED the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK; _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch; 4f4be: 94b9 0006 c8c2 subl 6c8c2 <_TOD_Now>,%d2 <== NOT EXECUTED the_timer = _Timer_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK; 4f4c4: 7003 moveq #3,%d0 <== NOT EXECUTED the_watchdog->user_data = user_data; 4f4c6: 256e 0014 0034 movel %fp@(20),%a2@(52) <== NOT EXECUTED /* * _Timer_Server_schedule_operation != NULL because we checked that * _Timer_Server was != NULL above. Both are set at the same time. */ (*_Timer_Server_schedule_operation)( the_timer ); 4f4cc: 2079 0006 caee moveal 6caee <_Timer_Server_schedule_operation>,%a0 <== NOT EXECUTED the_timer = _Timer_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK; 4f4d2: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4f4d6: 2544 002c movel %d4,%a2@(44) <== NOT EXECUTED _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch; 4f4da: 2542 001c movel %d2,%a2@(28) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f4de: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED /* * _Timer_Server_schedule_operation != NULL because we checked that * _Timer_Server was != NULL above. Both are set at the same time. */ (*_Timer_Server_schedule_operation)( the_timer ); 4f4e2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f4e4: 4e90 jsr %a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4f4e6: 4eb9 0005 1ef2 jsr 51ef2 <_Thread_Enable_dispatch> <== NOT EXECUTED 4f4ec: 508f addql #8,%sp <== NOT EXECUTED 4f4ee: 4280 clrl %d0 <== NOT EXECUTED 4f4f0: 6002 bras 4f4f4 <== NOT EXECUTED return RTEMS_SUCCESSFUL; 4f4f2: 7014 moveq #20,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f4f4: 4cee 041c ffec moveml %fp@(-20),%d2-%d4/%a2 <== NOT EXECUTED 4f4fa: 4e5e unlk %fp <== NOT EXECUTED 4f4fc: 4e75 rts <== NOT EXECUTED ... 00041e84 : static int rtems_verror( uint32_t error_flag, const char *printf_format, va_list arglist ) { 41e84: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 41e88: 48d7 047c moveml %d2-%d6/%a2,%sp@ <== NOT EXECUTED 41e8c: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED int local_errno = 0; int chars_written = 0; rtems_status_code status; if (error_flag & RTEMS_ERROR_PANIC) 41e90: 2c05 movel %d5,%d6 <== NOT EXECUTED 41e92: 0286 2000 0000 andil #536870912,%d6 <== NOT EXECUTED 41e98: 672e beqs 41ec8 <== NOT EXECUTED { if (rtems_panic_in_progress++) 41e9a: 2039 0005 6b38 movel 56b38 ,%d0 <== NOT EXECUTED 41ea0: 2200 movel %d0,%d1 <== NOT EXECUTED 41ea2: 5281 addql #1,%d1 <== NOT EXECUTED 41ea4: 23c1 0005 6b38 movel %d1,56b38 <== NOT EXECUTED 41eaa: 4a80 tstl %d0 <== NOT EXECUTED 41eac: 670e beqs 41ebc <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 41eae: 2039 0005 6ca4 movel 56ca4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 41eb4: 5280 addql #1,%d0 <== NOT EXECUTED 41eb6: 23c0 0005 6ca4 movel %d0,56ca4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); /* disable task switches */ /* don't aggravate things */ if (rtems_panic_in_progress > 2) 41ebc: 7002 moveq #2,%d0 <== NOT EXECUTED 41ebe: b0b9 0005 6b38 cmpl 56b38 ,%d0 <== NOT EXECUTED 41ec4: 6d00 0148 bltw 4200e <== NOT EXECUTED return 0; } (void) fflush(stdout); /* in case stdout/stderr same */ 41ec8: 2079 0005 567c moveal 5567c <_impure_ptr>,%a0 <== NOT EXECUTED 41ece: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 41ed2: 4eb9 0004 af1e jsr 4af1e <== NOT EXECUTED status = error_flag & ~RTEMS_ERROR_MASK; 41ed8: 2805 movel %d5,%d4 <== NOT EXECUTED if (error_flag & RTEMS_ERROR_ERRNO) /* include errno? */ 41eda: 588f addql #4,%sp <== NOT EXECUTED return 0; } (void) fflush(stdout); /* in case stdout/stderr same */ status = error_flag & ~RTEMS_ERROR_MASK; 41edc: 0284 8fff ffff andil #-1879048193,%d4 <== NOT EXECUTED if (error_flag & RTEMS_ERROR_ERRNO) /* include errno? */ 41ee2: 0805 001e btst #30,%d5 <== NOT EXECUTED 41ee6: 6604 bnes 41eec <== NOT EXECUTED 41ee8: 4283 clrl %d3 <== NOT EXECUTED 41eea: 600a bras 41ef6 <== NOT EXECUTED local_errno = errno; 41eec: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 41ef2: 2040 moveal %d0,%a0 <== NOT EXECUTED 41ef4: 2610 movel %a0@,%d3 <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if (_System_state_Is_multiprocessing) fprintf(stderr, "[%" PRIu32 "] ", _Configuration_MP_table->node); #endif chars_written += vfprintf(stderr, printf_format, arglist); 41ef6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 41efa: 2079 0005 567c moveal 5567c <_impure_ptr>,%a0 <== NOT EXECUTED 41f00: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 41f04: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 41f08: 4eb9 0004 e852 jsr 4e852 <== NOT EXECUTED if (status) 41f0e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if (_System_state_Is_multiprocessing) fprintf(stderr, "[%" PRIu32 "] ", _Configuration_MP_table->node); #endif chars_written += vfprintf(stderr, printf_format, arglist); 41f14: 2400 movel %d0,%d2 <== NOT EXECUTED if (status) 41f16: 4a84 tstl %d4 <== NOT EXECUTED 41f18: 672e beqs 41f48 <== NOT EXECUTED const char * rtems_status_text( rtems_status_code status ) { return rtems_assoc_name_by_local(rtems_status_assoc, status); 41f1a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 41f1c: 4879 0005 3f8c pea 53f8c <== NOT EXECUTED 41f22: 4eb9 0004 8b3c jsr 48b3c <== NOT EXECUTED #endif chars_written += vfprintf(stderr, printf_format, arglist); if (status) chars_written += fprintf(stderr, " (status: %s)", rtems_status_text(status)); 41f28: 2f00 movel %d0,%sp@- <== NOT EXECUTED 41f2a: 2079 0005 567c moveal 5567c <_impure_ptr>,%a0 <== NOT EXECUTED 41f30: 4879 0005 3c80 pea 53c80 <== NOT EXECUTED 41f36: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 41f3a: 4eb9 0004 b298 jsr 4b298 <== NOT EXECUTED 41f40: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 41f46: d480 addl %d0,%d2 <== NOT EXECUTED if (local_errno) 41f48: 4a83 tstl %d3 <== NOT EXECUTED 41f4a: 675a beqs 41fa6 <== NOT EXECUTED { if ((local_errno > 0) && *strerror(local_errno)) 41f4c: 6f38 bles 41f86 <== NOT EXECUTED 41f4e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 41f50: 45f9 0004 c134 lea 4c134 ,%a2 <== NOT EXECUTED 41f56: 4e92 jsr %a2@ <== NOT EXECUTED 41f58: 588f addql #4,%sp <== NOT EXECUTED 41f5a: 2040 moveal %d0,%a0 <== NOT EXECUTED 41f5c: 4a10 tstb %a0@ <== NOT EXECUTED 41f5e: 6726 beqs 41f86 <== NOT EXECUTED chars_written += fprintf(stderr, " (errno: %s)", strerror(local_errno)); 41f60: 2f03 movel %d3,%sp@- <== NOT EXECUTED 41f62: 4e92 jsr %a2@ <== NOT EXECUTED 41f64: 2f00 movel %d0,%sp@- <== NOT EXECUTED 41f66: 2079 0005 567c moveal 5567c <_impure_ptr>,%a0 <== NOT EXECUTED 41f6c: 4879 0005 3c8e pea 53c8e <== NOT EXECUTED 41f72: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 41f76: 4eb9 0004 b298 jsr 4b298 <== NOT EXECUTED 41f7c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 41f82: d480 addl %d0,%d2 <== NOT EXECUTED 41f84: 6020 bras 41fa6 <== NOT EXECUTED else chars_written += fprintf(stderr, " (unknown errno=%d)", local_errno); 41f86: 2f03 movel %d3,%sp@- <== NOT EXECUTED 41f88: 2079 0005 567c moveal 5567c <_impure_ptr>,%a0 <== NOT EXECUTED 41f8e: 4879 0005 3c9b pea 53c9b <== NOT EXECUTED 41f94: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 41f98: 4eb9 0004 b298 jsr 4b298 <== NOT EXECUTED 41f9e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 41fa4: d480 addl %d0,%d2 <== NOT EXECUTED } chars_written += fprintf(stderr, "\n"); 41fa6: 4879 0005 445d pea 5445d <== NOT EXECUTED 41fac: 2079 0005 567c moveal 5567c <_impure_ptr>,%a0 <== NOT EXECUTED 41fb2: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 41fb6: 4eb9 0004 b298 jsr 4b298 <== NOT EXECUTED (void) fflush(stderr); 41fbc: 2079 0005 567c moveal 5567c <_impure_ptr>,%a0 <== NOT EXECUTED chars_written += fprintf(stderr, " (errno: %s)", strerror(local_errno)); else chars_written += fprintf(stderr, " (unknown errno=%d)", local_errno); } chars_written += fprintf(stderr, "\n"); 41fc2: 2800 movel %d0,%d4 <== NOT EXECUTED (void) fflush(stderr); 41fc4: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 41fc8: 4eb9 0004 af1e jsr 4af1e <== NOT EXECUTED if (error_flag & (RTEMS_ERROR_PANIC | RTEMS_ERROR_ABORT)) 41fce: 0285 3000 0000 andil #805306368,%d5 <== NOT EXECUTED 41fd4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 41fda: 6606 bnes 41fe2 <== NOT EXECUTED chars_written += fprintf(stderr, " (errno: %s)", strerror(local_errno)); else chars_written += fprintf(stderr, " (unknown errno=%d)", local_errno); } chars_written += fprintf(stderr, "\n"); 41fdc: 2004 movel %d4,%d0 <== NOT EXECUTED 41fde: d082 addl %d2,%d0 <== NOT EXECUTED 41fe0: 602e bras 42010 <== NOT EXECUTED 41fe2: 41f9 0004 203a lea 4203a ,%a0 <== NOT EXECUTED (void) fflush(stderr); if (error_flag & (RTEMS_ERROR_PANIC | RTEMS_ERROR_ABORT)) { if (error_flag & RTEMS_ERROR_PANIC) 41fe8: 4a86 tstl %d6 <== NOT EXECUTED 41fea: 6712 beqs 41ffe <== NOT EXECUTED { rtems_error(0, "fatal error, exiting"); 41fec: 4879 0005 3caf pea 53caf <== NOT EXECUTED 41ff2: 42a7 clrl %sp@- <== NOT EXECUTED 41ff4: 4e90 jsr %a0@ <== NOT EXECUTED _exit(local_errno); 41ff6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 41ff8: 4eb9 0004 24cc jsr 424cc <_exit> <== NOT EXECUTED } else { rtems_error(0, "fatal error, aborting"); 41ffe: 4879 0005 3cc4 pea 53cc4 <== NOT EXECUTED 42004: 42a7 clrl %sp@- <== NOT EXECUTED 42006: 4e90 jsr %a0@ <== NOT EXECUTED abort(); 42008: 4eb9 0004 ac0c jsr 4ac0c <== NOT EXECUTED 4200e: 4280 clrl %d0 <== NOT EXECUTED } } return chars_written; } 42010: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 42016: 4e5e unlk %fp <== NOT EXECUTED 42018: 4e75 rts 0005b400 : /* * Extract an integer value from the database */ static int scanInt(FILE *fp, int *val) { 5b400: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5b404: 48d7 0c7c moveml %d2-%d6/%a2-%a3,%sp@ <== NOT EXECUTED 5b408: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 5b40c: 4284 clrl %d4 <== NOT EXECUTED 5b40e: 4282 clrl %d2 <== NOT EXECUTED 5b410: 2a3c 7fff ffff movel #2147483647,%d5 <== NOT EXECUTED unsigned int limit = INT_MAX; int sign = 0; int d; for (;;) { c = getc(fp); 5b416: 47f9 0006 c158 lea 6c158 <__srget_r>,%a3 <== NOT EXECUTED 5b41c: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 5b420: 5380 subql #1,%d0 <== NOT EXECUTED 5b422: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 5b426: 6c10 bges 5b438 <== NOT EXECUTED 5b428: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5b42a: 2f39 0007 e290 movel 7e290 <_impure_ptr>,%sp@- <== NOT EXECUTED 5b430: 4e93 jsr %a3@ <== NOT EXECUTED 5b432: 508f addql #8,%sp <== NOT EXECUTED 5b434: 2200 movel %d0,%d1 <== NOT EXECUTED 5b436: 600a bras 5b442 <== NOT EXECUTED 5b438: 2052 moveal %a2@,%a0 <== NOT EXECUTED 5b43a: 4281 clrl %d1 <== NOT EXECUTED 5b43c: 1210 moveb %a0@,%d1 <== NOT EXECUTED 5b43e: 5288 addql #1,%a0 <== NOT EXECUTED 5b440: 2488 movel %a0,%a2@ <== NOT EXECUTED if (c == ':') 5b442: 703a moveq #58,%d0 <== NOT EXECUTED 5b444: b081 cmpl %d1,%d0 <== NOT EXECUTED 5b446: 6750 beqs 5b498 <== NOT EXECUTED break; if (sign == 0) { 5b448: 4a84 tstl %d4 <== NOT EXECUTED 5b44a: 660e bnes 5b45a <== NOT EXECUTED if (c == '-') { 5b44c: 7c2d moveq #45,%d6 <== NOT EXECUTED 5b44e: bc81 cmpl %d1,%d6 <== NOT EXECUTED 5b450: 6606 bnes 5b458 <== NOT EXECUTED sign = -1; limit++; 5b452: 5285 addql #1,%d5 <== NOT EXECUTED 5b454: 78ff moveq #-1,%d4 <== NOT EXECUTED 5b456: 60c4 bras 5b41c <== NOT EXECUTED continue; 5b458: 7801 moveq #1,%d4 <== NOT EXECUTED } sign = 1; } if (!isdigit(c)) 5b45a: 2079 0007 e284 moveal 7e284 <__ctype_ptr>,%a0 <== NOT EXECUTED 5b460: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 5b464: 49c0 extbl %d0 <== NOT EXECUTED 5b466: 44c0 movew %d0,%ccr <== NOT EXECUTED 5b468: 6640 bnes 5b4aa <== NOT EXECUTED return 0; d = c - '0'; if ((i > (limit / 10)) 5b46a: 2005 movel %d5,%d0 <== NOT EXECUTED 5b46c: 7c0a moveq #10,%d6 <== NOT EXECUTED 5b46e: 4c46 0003 remul %d6,%d3,%d0 <== NOT EXECUTED 5b472: 4c46 0000 remul %d6,%d0,%d0 <== NOT EXECUTED 5b476: b082 cmpl %d2,%d0 <== NOT EXECUTED 5b478: 6530 bcss 5b4aa <== NOT EXECUTED } sign = 1; } if (!isdigit(c)) return 0; d = c - '0'; 5b47a: 0681 ffff ffd0 addil #-48,%d1 <== NOT EXECUTED if ((i > (limit / 10)) 5b480: b082 cmpl %d2,%d0 <== NOT EXECUTED 5b482: 6604 bnes 5b488 <== NOT EXECUTED 5b484: b681 cmpl %d1,%d3 <== NOT EXECUTED 5b486: 6522 bcss 5b4aa <== NOT EXECUTED || ((i == (limit / 10)) && (d > (limit % 10)))) return 0; i = i * 10 + d; 5b488: 2002 movel %d2,%d0 <== NOT EXECUTED 5b48a: e788 lsll #3,%d0 <== NOT EXECUTED 5b48c: 2240 moveal %d0,%a1 <== NOT EXECUTED 5b48e: 41f1 2a00 lea %a1@(00000000,%d2:l:2),%a0 <== NOT EXECUTED 5b492: 2401 movel %d1,%d2 <== NOT EXECUTED 5b494: d488 addl %a0,%d2 <== NOT EXECUTED 5b496: 6084 bras 5b41c <== NOT EXECUTED } if (sign == 0) 5b498: 4a84 tstl %d4 <== NOT EXECUTED 5b49a: 670e beqs 5b4aa <== NOT EXECUTED return 0; *val = i * sign; 5b49c: 4c02 4800 mulsl %d2,%d4 <== NOT EXECUTED 5b4a0: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 5b4a4: 2084 movel %d4,%a0@ <== NOT EXECUTED 5b4a6: 7001 moveq #1,%d0 <== NOT EXECUTED 5b4a8: 6002 bras 5b4ac <== NOT EXECUTED return 1; 5b4aa: 4280 clrl %d0 <== NOT EXECUTED } 5b4ac: 4cee 0c7c ffe4 moveml %fp@(-28),%d2-%d6/%a2-%a3 <== NOT EXECUTED 5b4b2: 4e5e unlk %fp <== NOT EXECUTED 5b4b4: 4e75 rts 0005b4b6 : /* * Extract a string value from the database */ static int scanString(FILE *fp, char **name, char **bufp, size_t *nleft, int nlFlag) { 5b4b6: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 5b4ba: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 5b4be: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED int c; *name = *bufp; 5b4c2: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED /* * Extract a string value from the database */ static int scanString(FILE *fp, char **name, char **bufp, size_t *nleft, int nlFlag) { 5b4c6: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 5b4ca: 286e 0014 moveal %fp@(20),%a4 <== NOT EXECUTED 5b4ce: 242e 0018 movel %fp@(24),%d2 <== NOT EXECUTED int c; *name = *bufp; for (;;) { c = getc(fp); 5b4d2: 4bf9 0006 c158 lea 6c158 <__srget_r>,%a5 <== NOT EXECUTED static int scanString(FILE *fp, char **name, char **bufp, size_t *nleft, int nlFlag) { int c; *name = *bufp; 5b4d8: 2092 movel %a2@,%a0@ <== NOT EXECUTED for (;;) { c = getc(fp); 5b4da: 202b 0004 movel %a3@(4),%d0 <== NOT EXECUTED 5b4de: 5380 subql #1,%d0 <== NOT EXECUTED 5b4e0: 2740 0004 movel %d0,%a3@(4) <== NOT EXECUTED 5b4e4: 6c0e bges 5b4f4 <== NOT EXECUTED 5b4e6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b4e8: 2f39 0007 e290 movel 7e290 <_impure_ptr>,%sp@- <== NOT EXECUTED 5b4ee: 4e95 jsr %a5@ <== NOT EXECUTED 5b4f0: 508f addql #8,%sp <== NOT EXECUTED 5b4f2: 600a bras 5b4fe <== NOT EXECUTED 5b4f4: 2053 moveal %a3@,%a0 <== NOT EXECUTED 5b4f6: 4280 clrl %d0 <== NOT EXECUTED 5b4f8: 1010 moveb %a0@,%d0 <== NOT EXECUTED 5b4fa: 5288 addql #1,%a0 <== NOT EXECUTED 5b4fc: 2688 movel %a0,%a3@ <== NOT EXECUTED if (c == ':') { 5b4fe: 723a moveq #58,%d1 <== NOT EXECUTED 5b500: b280 cmpl %d0,%d1 <== NOT EXECUTED 5b502: 6606 bnes 5b50a <== NOT EXECUTED if (nlFlag) 5b504: 4a82 tstl %d2 <== NOT EXECUTED 5b506: 6724 beqs 5b52c <== NOT EXECUTED 5b508: 602e bras 5b538 <== NOT EXECUTED return 0; break; } if (c == '\n') { 5b50a: 720a moveq #10,%d1 <== NOT EXECUTED 5b50c: b280 cmpl %d0,%d1 <== NOT EXECUTED 5b50e: 6606 bnes 5b516 <== NOT EXECUTED if (!nlFlag) 5b510: 4a82 tstl %d2 <== NOT EXECUTED 5b512: 6618 bnes 5b52c <== NOT EXECUTED 5b514: 6022 bras 5b538 <== NOT EXECUTED return 0; break; } if (c == EOF) 5b516: 72ff moveq #-1,%d1 <== NOT EXECUTED 5b518: b280 cmpl %d0,%d1 <== NOT EXECUTED 5b51a: 671c beqs 5b538 <== NOT EXECUTED return 0; if (*nleft < 2) 5b51c: 7201 moveq #1,%d1 <== NOT EXECUTED 5b51e: b294 cmpl %a4@,%d1 <== NOT EXECUTED 5b520: 6416 bccs 5b538 <== NOT EXECUTED return 0; **bufp = c; 5b522: 2052 moveal %a2@,%a0 <== NOT EXECUTED 5b524: 1080 moveb %d0,%a0@ <== NOT EXECUTED ++(*bufp); 5b526: 5292 addql #1,%a2@ <== NOT EXECUTED --(*nleft); 5b528: 5394 subql #1,%a4@ <== NOT EXECUTED 5b52a: 60ae bras 5b4da <== NOT EXECUTED } **bufp = '\0'; 5b52c: 2052 moveal %a2@,%a0 <== NOT EXECUTED 5b52e: 4210 clrb %a0@ <== NOT EXECUTED ++(*bufp); 5b530: 5292 addql #1,%a2@ <== NOT EXECUTED --(*nleft); 5b532: 5394 subql #1,%a4@ <== NOT EXECUTED 5b534: 7001 moveq #1,%d0 <== NOT EXECUTED 5b536: 6002 bras 5b53a <== NOT EXECUTED return 1; 5b538: 4280 clrl %d0 <== NOT EXECUTED } 5b53a: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 5b540: 4e5e unlk %fp <== NOT EXECUTED 5b542: 4e75 rts 0005b544 : FILE *fp, struct group *grp, char *buffer, size_t bufsize ) { 5b544: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5b548: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED int grgid; char *grmem, *cp; int memcount; if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0) 5b54c: 42a7 clrl %sp@- <== NOT EXECUTED 5b54e: 280e movel %fp,%d4 <== NOT EXECUTED 5b550: 0684 0000 0014 addil #20,%d4 <== NOT EXECUTED 5b556: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b558: 260e movel %fp,%d3 <== NOT EXECUTED 5b55a: 0683 0000 0010 addil #16,%d3 <== NOT EXECUTED 5b560: 2f03 movel %d3,%sp@- <== NOT EXECUTED FILE *fp, struct group *grp, char *buffer, size_t bufsize ) { 5b562: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 5b566: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED int grgid; char *grmem, *cp; int memcount; if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0) 5b56a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b56c: 45fa ff48 lea %pc@(5b4b6 ),%a2 <== NOT EXECUTED 5b570: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b572: 4e92 jsr %a2@ <== NOT EXECUTED 5b574: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b57a: 4a80 tstl %d0 <== NOT EXECUTED 5b57c: 6700 00ca beqw 5b648 <== NOT EXECUTED 5b580: 42a7 clrl %sp@- <== NOT EXECUTED 5b582: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b584: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b586: 486b 0004 pea %a3@(4) <== NOT EXECUTED 5b58a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b58c: 4e92 jsr %a2@ <== NOT EXECUTED 5b58e: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b594: 4a80 tstl %d0 <== NOT EXECUTED 5b596: 6700 00b0 beqw 5b648 <== NOT EXECUTED 5b59a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5b59e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b5a0: 4eba fe5e jsr %pc@(5b400 ) <== NOT EXECUTED 5b5a4: 508f addql #8,%sp <== NOT EXECUTED 5b5a6: 4a80 tstl %d0 <== NOT EXECUTED 5b5a8: 6700 009e beqw 5b648 <== NOT EXECUTED 5b5ac: 4878 0001 pea 1 <== NOT EXECUTED 5b5b0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b5b2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b5b4: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 5b5b8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b5ba: 4e92 jsr %a2@ <== NOT EXECUTED 5b5bc: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b5c2: 4a80 tstl %d0 <== NOT EXECUTED 5b5c4: 6700 0082 beqw 5b648 <== NOT EXECUTED grp->gr_gid = grgid; /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b5c8: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0) || !scanString(fp, &grp->gr_passwd, &buffer, &bufsize, 0) || !scanInt(fp, &grgid) || !scanString(fp, &grmem, &buffer, &bufsize, 1)) return 0; grp->gr_gid = grgid; 5b5cc: 376e fffe 0008 movew %fp@(-2),%a3@(8) <== NOT EXECUTED /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b5d2: 2049 moveal %a1,%a0 <== NOT EXECUTED 5b5d4: 7201 moveq #1,%d1 <== NOT EXECUTED 5b5d6: 600a bras 5b5e2 <== NOT EXECUTED if(*cp == ',') 5b5d8: 702c moveq #44,%d0 <== NOT EXECUTED 5b5da: b082 cmpl %d2,%d0 <== NOT EXECUTED 5b5dc: 6602 bnes 5b5e0 <== NOT EXECUTED memcount++; 5b5de: 5281 addql #1,%d1 <== NOT EXECUTED grp->gr_gid = grgid; /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b5e0: 5288 addql #1,%a0 <== NOT EXECUTED 5b5e2: 1010 moveb %a0@,%d0 <== NOT EXECUTED if(*cp == ',') 5b5e4: 1400 moveb %d0,%d2 <== NOT EXECUTED 5b5e6: 49c2 extbl %d2 <== NOT EXECUTED grp->gr_gid = grgid; /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b5e8: 4a00 tstb %d0 <== NOT EXECUTED 5b5ea: 66ec bnes 5b5d8 <== NOT EXECUTED } /* * Hack to produce (hopefully) a suitably-aligned array of pointers */ if (bufsize < (((memcount+1)*sizeof(char *)) + 15)) 5b5ec: e589 lsll #2,%d1 <== NOT EXECUTED 5b5ee: 2001 movel %d1,%d0 <== NOT EXECUTED 5b5f0: 0680 0000 0013 addil #19,%d0 <== NOT EXECUTED 5b5f6: b0ae 0014 cmpl %fp@(20),%d0 <== NOT EXECUTED 5b5fa: 624c bhis 5b648 <== NOT EXECUTED return 0; grp->gr_mem = (char **)(((uintptr_t)buffer + 15) & ~15); 5b5fc: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 5b600: 72f0 moveq #-16,%d1 <== NOT EXECUTED 5b602: 0680 0000 000f addil #15,%d0 <== NOT EXECUTED 5b608: c081 andl %d1,%d0 <== NOT EXECUTED /* * Fill in pointer array */ grp->gr_mem[0] = grmem; 5b60a: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b60c: 2089 movel %a1,%a0@ <== NOT EXECUTED for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b60e: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED /* * Hack to produce (hopefully) a suitably-aligned array of pointers */ if (bufsize < (((memcount+1)*sizeof(char *)) + 15)) return 0; grp->gr_mem = (char **)(((uintptr_t)buffer + 15) & ~15); 5b612: 2740 000a movel %d0,%a3@(10) <== NOT EXECUTED /* * Fill in pointer array */ grp->gr_mem[0] = grmem; for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b616: 7201 moveq #1,%d1 <== NOT EXECUTED 5b618: 6018 bras 5b632 <== NOT EXECUTED if(*cp == ',') { 5b61a: 702c moveq #44,%d0 <== NOT EXECUTED 5b61c: b082 cmpl %d2,%d0 <== NOT EXECUTED 5b61e: 6610 bnes 5b630 <== NOT EXECUTED *cp = '\0'; 5b620: 4211 clrb %a1@ <== NOT EXECUTED grp->gr_mem[memcount++] = cp + 1; 5b622: 206b 000a moveal %a3@(10),%a0 <== NOT EXECUTED 5b626: 2009 movel %a1,%d0 <== NOT EXECUTED 5b628: 5280 addql #1,%d0 <== NOT EXECUTED 5b62a: 2180 1c00 movel %d0,%a0@(00000000,%d1:l:4) <== NOT EXECUTED 5b62e: 5281 addql #1,%d1 <== NOT EXECUTED /* * Fill in pointer array */ grp->gr_mem[0] = grmem; for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b630: 5289 addql #1,%a1 <== NOT EXECUTED 5b632: 1011 moveb %a1@,%d0 <== NOT EXECUTED if(*cp == ',') { 5b634: 1400 moveb %d0,%d2 <== NOT EXECUTED 5b636: 49c2 extbl %d2 <== NOT EXECUTED /* * Fill in pointer array */ grp->gr_mem[0] = grmem; for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b638: 4a00 tstb %d0 <== NOT EXECUTED 5b63a: 66de bnes 5b61a <== NOT EXECUTED if(*cp == ',') { *cp = '\0'; grp->gr_mem[memcount++] = cp + 1; } } grp->gr_mem[memcount] = NULL; 5b63c: 206b 000a moveal %a3@(10),%a0 <== NOT EXECUTED 5b640: 42b0 1c00 clrl %a0@(00000000,%d1:l:4) <== NOT EXECUTED 5b644: 7001 moveq #1,%d0 <== NOT EXECUTED 5b646: 6002 bras 5b64a <== NOT EXECUTED return 1; 5b648: 4280 clrl %d0 <== NOT EXECUTED } 5b64a: 4cee 0c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a3 <== NOT EXECUTED 5b650: 4e5e unlk %fp <== NOT EXECUTED 5b652: 4e75 rts 0005b690 : FILE *fp, struct passwd *pwd, char *buffer, size_t bufsize ) { 5b690: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 5b694: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED int pwuid, pwgid; if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0) 5b698: 42a7 clrl %sp@- <== NOT EXECUTED 5b69a: 280e movel %fp,%d4 <== NOT EXECUTED 5b69c: 0684 0000 0014 addil #20,%d4 <== NOT EXECUTED 5b6a2: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b6a4: 260e movel %fp,%d3 <== NOT EXECUTED 5b6a6: 0683 0000 0010 addil #16,%d3 <== NOT EXECUTED 5b6ac: 2f03 movel %d3,%sp@- <== NOT EXECUTED FILE *fp, struct passwd *pwd, char *buffer, size_t bufsize ) { 5b6ae: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 5b6b2: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED int pwuid, pwgid; if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0) 5b6b6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5b6b8: 49fa fdfc lea %pc@(5b4b6 ),%a4 <== NOT EXECUTED 5b6bc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b6be: 4e94 jsr %a4@ <== NOT EXECUTED 5b6c0: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b6c6: 4a80 tstl %d0 <== NOT EXECUTED 5b6c8: 6700 00b0 beqw 5b77a <== NOT EXECUTED 5b6cc: 42a7 clrl %sp@- <== NOT EXECUTED 5b6ce: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b6d0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b6d2: 486a 0004 pea %a2@(4) <== NOT EXECUTED 5b6d6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b6d8: 4e94 jsr %a4@ <== NOT EXECUTED 5b6da: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b6e0: 4a80 tstl %d0 <== NOT EXECUTED 5b6e2: 6700 0096 beqw 5b77a <== NOT EXECUTED 5b6e6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5b6ea: 47fa fd14 lea %pc@(5b400 ),%a3 <== NOT EXECUTED 5b6ee: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b6f0: 4e93 jsr %a3@ <== NOT EXECUTED 5b6f2: 508f addql #8,%sp <== NOT EXECUTED 5b6f4: 4a80 tstl %d0 <== NOT EXECUTED 5b6f6: 6700 0082 beqw 5b77a <== NOT EXECUTED 5b6fa: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 5b6fe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b700: 4e93 jsr %a3@ <== NOT EXECUTED 5b702: 508f addql #8,%sp <== NOT EXECUTED 5b704: 4a80 tstl %d0 <== NOT EXECUTED 5b706: 6772 beqs 5b77a <== NOT EXECUTED 5b708: 42a7 clrl %sp@- <== NOT EXECUTED 5b70a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b70c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b70e: 486a 000c pea %a2@(12) <== NOT EXECUTED 5b712: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b714: 4e94 jsr %a4@ <== NOT EXECUTED 5b716: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b71c: 4a80 tstl %d0 <== NOT EXECUTED 5b71e: 675a beqs 5b77a <== NOT EXECUTED 5b720: 42a7 clrl %sp@- <== NOT EXECUTED 5b722: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b724: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b726: 486a 0010 pea %a2@(16) <== NOT EXECUTED 5b72a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b72c: 4e94 jsr %a4@ <== NOT EXECUTED 5b72e: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b734: 4a80 tstl %d0 <== NOT EXECUTED 5b736: 6742 beqs 5b77a <== NOT EXECUTED 5b738: 42a7 clrl %sp@- <== NOT EXECUTED 5b73a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b73c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b73e: 486a 0014 pea %a2@(20) <== NOT EXECUTED 5b742: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b744: 4e94 jsr %a4@ <== NOT EXECUTED 5b746: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b74c: 4a80 tstl %d0 <== NOT EXECUTED 5b74e: 672a beqs 5b77a <== NOT EXECUTED 5b750: 4878 0001 pea 1 <== NOT EXECUTED 5b754: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b756: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b758: 486a 0018 pea %a2@(24) <== NOT EXECUTED 5b75c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b75e: 4e94 jsr %a4@ <== NOT EXECUTED 5b760: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b766: 4a80 tstl %d0 <== NOT EXECUTED 5b768: 6710 beqs 5b77a <== NOT EXECUTED || !scanString(fp, &pwd->pw_gecos, &buffer, &bufsize, 0) || !scanString(fp, &pwd->pw_dir, &buffer, &bufsize, 0) || !scanString(fp, &pwd->pw_shell, &buffer, &bufsize, 1)) return 0; pwd->pw_uid = pwuid; pwd->pw_gid = pwgid; 5b76a: 7001 moveq #1,%d0 <== NOT EXECUTED 5b76c: 356e fffa 000a movew %fp@(-6),%a2@(10) <== NOT EXECUTED || !scanString(fp, &pwd->pw_comment, &buffer, &bufsize, 0) || !scanString(fp, &pwd->pw_gecos, &buffer, &bufsize, 0) || !scanString(fp, &pwd->pw_dir, &buffer, &bufsize, 0) || !scanString(fp, &pwd->pw_shell, &buffer, &bufsize, 1)) return 0; pwd->pw_uid = pwuid; 5b772: 356e fffe 0008 movew %fp@(-2),%a2@(8) <== NOT EXECUTED 5b778: 6002 bras 5b77c <== NOT EXECUTED pwd->pw_gid = pwgid; return 1; 5b77a: 4280 clrl %d0 <== NOT EXECUTED } 5b77c: 4cee 1c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a4 <== NOT EXECUTED 5b782: 4e5e unlk %fp <== NOT EXECUTED 5b784: 4e75 rts 0005b3b2 : int setgid( gid_t gid ) { _POSIX_types_Gid = gid; 5b3b2: 2079 0007 d460 moveal 7d460 ,%a0 <== NOT EXECUTED */ int setgid( gid_t gid ) { 5b3b8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _POSIX_types_Gid = gid; 5b3bc: 316e 000a 002c movew %fp@(10),%a0@(44) <== NOT EXECUTED return 0; } 5b3c2: 4e5e unlk %fp <== NOT EXECUTED 5b3c4: 4280 clrl %d0 <== NOT EXECUTED 5b3c6: 4e75 rts 0005b8a8 : return NULL; return &grent; } void setgrent(void) { 5b8a8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED init_etc_passwd_group(); 5b8ac: 4eb9 0005 b7c2 jsr 5b7c2 <== NOT EXECUTED if (group_fp != NULL) 5b8b2: 2039 0009 1672 movel 91672 ,%d0 <== NOT EXECUTED 5b8b8: 670a beqs 5b8c4 <== NOT EXECUTED fclose(group_fp); 5b8ba: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b8bc: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED 5b8c2: 588f addql #4,%sp <== NOT EXECUTED group_fp = fopen("/etc/group", "r"); 5b8c4: 4879 0007 8e79 pea 78e79 <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5b8ca: 4879 0007 a585 pea 7a585 <== NOT EXECUTED 5b8d0: 4eb9 0006 88c4 jsr 688c4 <== NOT EXECUTED 5b8d6: 508f addql #8,%sp <== NOT EXECUTED } 5b8d8: 4e5e unlk %fp <== NOT EXECUTED { init_etc_passwd_group(); if (group_fp != NULL) fclose(group_fp); group_fp = fopen("/etc/group", "r"); 5b8da: 23c0 0009 1672 movel %d0,91672 <== NOT EXECUTED } 5b8e0: 4e75 rts 0005ba56 : return NULL; return &pwent; } void setpwent(void) { 5ba56: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED init_etc_passwd_group(); 5ba5a: 4eb9 0005 b7c2 jsr 5b7c2 <== NOT EXECUTED if (passwd_fp != NULL) 5ba60: 2039 0009 158a movel 9158a ,%d0 <== NOT EXECUTED 5ba66: 670a beqs 5ba72 <== NOT EXECUTED fclose(passwd_fp); 5ba68: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5ba6a: 4eb9 0006 80ca jsr 680ca <== NOT EXECUTED 5ba70: 588f addql #4,%sp <== NOT EXECUTED passwd_fp = fopen("/etc/passwd", "r"); 5ba72: 4879 0007 8e79 pea 78e79 <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5ba78: 4879 0007 a512 pea 7a512 <== NOT EXECUTED 5ba7e: 4eb9 0006 88c4 jsr 688c4 <== NOT EXECUTED 5ba84: 508f addql #8,%sp <== NOT EXECUTED } 5ba86: 4e5e unlk %fp <== NOT EXECUTED { init_etc_passwd_group(); if (passwd_fp != NULL) fclose(passwd_fp); passwd_fp = fopen("/etc/passwd", "r"); 5ba88: 23c0 0009 158a movel %d0,9158a <== NOT EXECUTED } 5ba8e: 4e75 rts 00045476 : int setuid( uid_t uid ) { _POSIX_types_Uid = uid; 45476: 2079 0007 d460 moveal 7d460 ,%a0 <== NOT EXECUTED */ int setuid( uid_t uid ) { 4547c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _POSIX_types_Uid = uid; 45480: 316e 000a 002a movew %fp@(10),%a0@(42) <== NOT EXECUTED return 0; } 45486: 4e5e unlk %fp <== NOT EXECUTED 45488: 4280 clrl %d0 <== NOT EXECUTED 4548a: 4e75 rts 0004383a : /* * Process input character, with semaphore. */ static int siproc (unsigned char c, struct rtems_termios_tty *tty) { 4383a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4383e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43840: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED int i; /* * Obtain output semaphore if character will be echoed */ if (tty->termios.c_lflag & (ECHO|ECHOE|ECHOK|ECHONL|ECHOPRT|ECHOCTL|ECHOKE)) { 43844: 202a 003c movel %a2@(60),%d0 <== NOT EXECUTED /* * Process input character, with semaphore. */ static int siproc (unsigned char c, struct rtems_termios_tty *tty) { 43848: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4384a: 4282 clrl %d2 <== NOT EXECUTED 4384c: 142e 000b moveb %fp@(11),%d2 <== NOT EXECUTED int i; /* * Obtain output semaphore if character will be echoed */ if (tty->termios.c_lflag & (ECHO|ECHOE|ECHOK|ECHONL|ECHOPRT|ECHOCTL|ECHOKE)) { 43850: 0280 0000 0e78 andil #3704,%d0 <== NOT EXECUTED 43856: 6736 beqs 4388e <== NOT EXECUTED rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 43858: 42a7 clrl %sp@- <== NOT EXECUTED 4385a: 42a7 clrl %sp@- <== NOT EXECUTED 4385c: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 43860: 4eb9 0004 4e48 jsr 44e48 <== NOT EXECUTED i = iproc (c, tty); 43866: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43868: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4386a: 4eba fe6c jsr %pc@(436d8 ) <== NOT EXECUTED rtems_semaphore_release (tty->osem); 4386e: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED /* * Obtain output semaphore if character will be echoed */ if (tty->termios.c_lflag & (ECHO|ECHOE|ECHOK|ECHONL|ECHOPRT|ECHOCTL|ECHOKE)) { rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); i = iproc (c, tty); 43872: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_semaphore_release (tty->osem); 43874: 4eb9 0004 4f50 jsr 44f50 <== NOT EXECUTED } else { i = iproc (c, tty); } return i; } 4387a: 2002 movel %d2,%d0 <== NOT EXECUTED 4387c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 43880: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED * Obtain output semaphore if character will be echoed */ if (tty->termios.c_lflag & (ECHO|ECHOE|ECHOK|ECHONL|ECHOPRT|ECHOCTL|ECHOKE)) { rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); i = iproc (c, tty); rtems_semaphore_release (tty->osem); 43884: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED } else { i = iproc (c, tty); } return i; } 4388a: 4e5e unlk %fp <== NOT EXECUTED 4388c: 4e75 rts <== NOT EXECUTED rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); i = iproc (c, tty); rtems_semaphore_release (tty->osem); } else { i = iproc (c, tty); 4388e: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED } return i; } 43892: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); i = iproc (c, tty); rtems_semaphore_release (tty->osem); } else { i = iproc (c, tty); 43896: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } return i; } 4389a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4389e: 4e5e unlk %fp <== NOT EXECUTED rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); i = iproc (c, tty); rtems_semaphore_release (tty->osem); } else { i = iproc (c, tty); 438a0: 6000 fe36 braw 436d8 <== NOT EXECUTED 00053382 : #if !defined(RTEMS_POSIX_API) unsigned int sleep( unsigned int seconds ) { 53382: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED rtems_status_code status; rtems_interval ticks_per_second; rtems_interval ticks; status = rtems_clock_get( 53386: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5338a: 4878 0003 pea 3 <== NOT EXECUTED 5338e: 4eb9 0004 463c jsr 4463c <== NOT EXECUTED &ticks_per_second ); ticks = seconds * ticks_per_second; status = rtems_task_wake_after( ticks ); 53394: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 53398: 41ee fffc lea %fp@(-4),%a0 <== NOT EXECUTED 5339c: 4c10 0800 mulsl %a0@,%d0 <== NOT EXECUTED 533a0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 533a2: 4eb9 0004 534c jsr 4534c <== NOT EXECUTED * Returns the "unslept" amount of time. In RTEMS signals are not * interruptable, so tasks really sleep all of the requested time. */ return 0; } 533a8: 4e5e unlk %fp <== NOT EXECUTED 533aa: 4280 clrl %d0 <== NOT EXECUTED 533ac: 4e75 rts <== NOT EXECUTED ... 000466c0 : int _STAT_NAME( const char *path, struct stat *buf ) { 466c0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 466c4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 466c6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 466c8: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !buf ) 466cc: 660e bnes 466dc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 466ce: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 466d4: 2040 moveal %d0,%a0 <== NOT EXECUTED 466d6: 700e moveq #14,%d0 <== NOT EXECUTED 466d8: 2080 movel %d0,%a0@ <== NOT EXECUTED 466da: 6052 bras 4672e <== NOT EXECUTED status = rtems_filesystem_evaluate_path( path, 0, &loc, _STAT_FOLLOW_LINKS ); 466dc: 4878 0001 pea 1 <== NOT EXECUTED 466e0: 260e movel %fp,%d3 <== NOT EXECUTED 466e2: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 466e8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 466ea: 42a7 clrl %sp@- <== NOT EXECUTED 466ec: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 466f0: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( status != 0 ) 466f6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 466fc: 4a80 tstl %d0 <== NOT EXECUTED 466fe: 662e bnes 4672e <== NOT EXECUTED return -1; if ( !loc.handlers->fstat_h ){ 46700: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 46704: 4aa8 0018 tstl %a0@(24) <== NOT EXECUTED 46708: 6628 bnes 46732 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 4670a: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 4670e: 4a88 tstl %a0 <== NOT EXECUTED 46710: 670e beqs 46720 <== NOT EXECUTED 46712: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 46716: 4a88 tstl %a0 <== NOT EXECUTED 46718: 6706 beqs 46720 <== NOT EXECUTED 4671a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4671c: 4e90 jsr %a0@ <== NOT EXECUTED 4671e: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 46720: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 46726: 2040 moveal %d0,%a0 <== NOT EXECUTED 46728: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 4672e: 74ff moveq #-1,%d2 <== NOT EXECUTED 46730: 603a bras 4676c <== NOT EXECUTED /* * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( buf, 0, sizeof(struct stat) ); 46732: 4878 004a pea 4a <== NOT EXECUTED 46736: 42a7 clrl %sp@- <== NOT EXECUTED 46738: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4673a: 4eb9 0006 a54c jsr 6a54c <== NOT EXECUTED status = (*loc.handlers->fstat_h)( &loc, buf ); 46740: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46742: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 46746: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46748: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 4674c: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 4674e: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED * versions of stat don't have to. */ memset( buf, 0, sizeof(struct stat) ); status = (*loc.handlers->fstat_h)( &loc, buf ); 46752: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 46754: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4675a: 4a88 tstl %a0 <== NOT EXECUTED 4675c: 670e beqs 4676c <== NOT EXECUTED 4675e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 46762: 4a88 tstl %a0 <== NOT EXECUTED 46764: 6706 beqs 4676c <== NOT EXECUTED 46766: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46768: 4e90 jsr %a0@ <== NOT EXECUTED 4676a: 588f addql #4,%sp <== NOT EXECUTED return status; } 4676c: 2002 movel %d2,%d0 <== NOT EXECUTED 4676e: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 46772: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 46776: 4e5e unlk %fp <== NOT EXECUTED 46778: 4e75 rts 0005c788 : int symlink( const char *actualpath, const char *sympath ) { 5c788: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 5c78c: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 5c790: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED rtems_filesystem_location_info_t loc; int i; const char *name_start; int result; rtems_filesystem_get_start_loc( sympath, &i, &loc ); 5c794: 1212 moveb %a2@,%d1 <== NOT EXECUTED 5c796: 1001 moveb %d1,%d0 <== NOT EXECUTED 5c798: 49c0 extbl %d0 <== NOT EXECUTED 5c79a: 742f moveq #47,%d2 <== NOT EXECUTED 5c79c: b480 cmpl %d0,%d2 <== NOT EXECUTED 5c79e: 670c beqs 5c7ac <== NOT EXECUTED 5c7a0: 143c 005c moveb #92,%d2 <== NOT EXECUTED 5c7a4: b480 cmpl %d0,%d2 <== NOT EXECUTED 5c7a6: 6704 beqs 5c7ac <== NOT EXECUTED 5c7a8: 4a01 tstb %d1 <== NOT EXECUTED 5c7aa: 6626 bnes 5c7d2 <== NOT EXECUTED 5c7ac: 4878 0010 pea 10 <== NOT EXECUTED 5c7b0: 2039 0007 d460 movel 7d460 ,%d0 <== NOT EXECUTED 5c7b6: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 5c7bc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c7be: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5c7c2: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED 5c7c8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c7ce: 7001 moveq #1,%d0 <== NOT EXECUTED 5c7d0: 6020 bras 5c7f2 <== NOT EXECUTED 5c7d2: 4878 0010 pea 10 <== NOT EXECUTED 5c7d6: 2439 0007 d460 movel 7d460 ,%d2 <== NOT EXECUTED 5c7dc: 5882 addql #4,%d2 <== NOT EXECUTED 5c7de: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c7e0: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5c7e4: 4eb9 0006 a3dc jsr 6a3dc <== NOT EXECUTED 5c7ea: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c7f0: 4280 clrl %d0 <== NOT EXECUTED result = (*loc.ops->evalformake_h)( &sympath[i], &loc, &name_start ); 5c7f2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5c7f6: 260e movel %fp,%d3 <== NOT EXECUTED 5c7f8: 0683 ffff ffec addil #-20,%d3 <== NOT EXECUTED 5c7fe: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c800: 4872 0800 pea %a2@(00000000,%d0:l) <== NOT EXECUTED 5c804: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5c808: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 5c80c: 4e90 jsr %a0@ <== NOT EXECUTED if ( result != 0 ) 5c80e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c814: 4a80 tstl %d0 <== NOT EXECUTED 5c816: 6628 bnes 5c840 <== NOT EXECUTED return -1; if ( !loc.ops->symlink_h ) { 5c818: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5c81c: 2268 0038 moveal %a0@(56),%a1 <== NOT EXECUTED 5c820: 4a89 tstl %a1 <== NOT EXECUTED 5c822: 6620 bnes 5c844 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c824: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c828: 4a88 tstl %a0 <== NOT EXECUTED 5c82a: 6706 beqs 5c832 <== NOT EXECUTED 5c82c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c82e: 4e90 jsr %a0@ <== NOT EXECUTED 5c830: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5c832: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5c838: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c83a: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5c840: 74ff moveq #-1,%d2 <== NOT EXECUTED 5c842: 602a bras 5c86e <== NOT EXECUTED } result = (*loc.ops->symlink_h)( &loc, actualpath, name_start); 5c844: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 5c848: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c84c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c84e: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c850: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED if ( !loc.ops->symlink_h ) { rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.ops->symlink_h)( &loc, actualpath, name_start); 5c854: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c856: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c85c: 4a88 tstl %a0 <== NOT EXECUTED 5c85e: 670e beqs 5c86e <== NOT EXECUTED 5c860: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c864: 4a88 tstl %a0 <== NOT EXECUTED 5c866: 6706 beqs 5c86e <== NOT EXECUTED 5c868: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c86a: 4e90 jsr %a0@ <== NOT EXECUTED 5c86c: 588f addql #4,%sp <== NOT EXECUTED return result; } 5c86e: 2002 movel %d2,%d0 <== NOT EXECUTED 5c870: 4cee 040c ffe0 moveml %fp@(-32),%d2-%d3/%a2 <== NOT EXECUTED 5c876: 4e5e unlk %fp <== NOT EXECUTED 5c878: 4e75 rts <== NOT EXECUTED ... 0005c87c : #include int tcdrain( int fd ) { 5c87c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return ioctl( fd, RTEMS_IO_TCDRAIN, 0 ); 5c880: 42a7 clrl %sp@- <== NOT EXECUTED 5c882: 4878 0003 pea 3 <== NOT EXECUTED 5c886: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c88a: 4eb9 0005 bc04 jsr 5bc04 <== NOT EXECUTED } 5c890: 4e5e unlk %fp <== NOT EXECUTED 5c892: 4e75 rts 0004ebc4 : int tcgetattr( int fd, struct termios *tp ) { 4ebc4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return ioctl( fd, RTEMS_IO_GET_ATTRIBUTES, tp ); 4ebc8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4ebcc: 4878 0001 pea 1 <== NOT EXECUTED 4ebd0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ebd4: 4eb9 0005 1bb4 jsr 51bb4 <== NOT EXECUTED } 4ebda: 4e5e unlk %fp <== NOT EXECUTED 4ebdc: 4e75 rts <== NOT EXECUTED ... 0004ebe0 : int tcsetattr( int fd, int opt, struct termios *tp ) { 4ebe0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ebe4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4ebe6: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4ebea: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ebec: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4ebf0: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED switch (opt) { 4ebf4: 4a80 tstl %d0 <== NOT EXECUTED 4ebf6: 672e beqs 4ec26 <== NOT EXECUTED 4ebf8: 7201 moveq #1,%d1 <== NOT EXECUTED 4ebfa: b280 cmpl %d0,%d1 <== NOT EXECUTED 4ebfc: 6710 beqs 4ec0e <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 4ebfe: 4eb9 0005 22fc jsr 522fc <__errno> <== NOT EXECUTED 4ec04: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ec06: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 4ec0c: 6036 bras 4ec44 <== NOT EXECUTED case TCSADRAIN: if (ioctl( fd, RTEMS_IO_TCDRAIN, NULL ) < 0) 4ec0e: 42a7 clrl %sp@- <== NOT EXECUTED 4ec10: 4878 0003 pea 3 <== NOT EXECUTED 4ec14: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ec16: 4eb9 0005 1bb4 jsr 51bb4 <== NOT EXECUTED 4ec1c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ec22: 4a80 tstl %d0 <== NOT EXECUTED 4ec24: 6d1e blts 4ec44 <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 4ec26: 2d43 0010 movel %d3,%fp@(16) <== NOT EXECUTED } } 4ec2a: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 4ec2e: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } } 4ec32: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 4ec36: 7002 moveq #2,%d0 <== NOT EXECUTED 4ec38: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED } } 4ec3c: 4e5e unlk %fp <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 4ec3e: 4ef9 0005 1bb4 jmp 51bb4 <== NOT EXECUTED } } 4ec44: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4ec48: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 4ec4c: 4e5e unlk %fp <== NOT EXECUTED 4ec4e: 70ff moveq #-1,%d0 <== NOT EXECUTED 4ec50: 4e75 rts <== NOT EXECUTED ... 00042c50 : #include int termios_baud_to_number( int termios_baud ) { 42c50: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42c54: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 42c58: 2f02 movel %d2,%sp@- <== NOT EXECUTED case B110: baud = 110; break; case B134: baud = 135; break; case B150: baud = 150; break; case B200: baud = 200; break; case B300: baud = 300; break; case B600: baud = 600; break; 42c5a: 203c 0000 04b0 movel #1200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42c60: 7409 moveq #9,%d2 <== NOT EXECUTED 42c62: b481 cmpl %d1,%d2 <== NOT EXECUTED 42c64: 6700 0108 beqw 42d6e <== NOT EXECUTED 42c68: 6d6c blts 42cd6 <== NOT EXECUTED case B0: baud = 0; break; case B50: baud = 50; break; case B75: baud = 75; break; case B110: baud = 110; break; 42c6a: 303c 0087 movew #135,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42c6e: 143c 0004 moveb #4,%d2 <== NOT EXECUTED 42c72: b481 cmpl %d1,%d2 <== NOT EXECUTED 42c74: 6700 00f8 beqw 42d6e <== NOT EXECUTED 42c78: 6d2a blts 42ca4 <== NOT EXECUTED 42c7a: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 42c7e: b081 cmpl %d1,%d0 <== NOT EXECUTED 42c80: 6700 00da beqw 42d5c <== NOT EXECUTED 42c84: 6d0a blts 42c90 <== NOT EXECUTED 42c86: 4a81 tstl %d1 <== NOT EXECUTED 42c88: 6700 00d6 beqw 42d60 <== NOT EXECUTED 42c8c: 6000 00de braw 42d6c <== NOT EXECUTED 42c90: 7402 moveq #2,%d2 <== NOT EXECUTED 42c92: b481 cmpl %d1,%d2 <== NOT EXECUTED 42c94: 6700 00ce beqw 42d64 <== NOT EXECUTED 42c98: 7003 moveq #3,%d0 <== NOT EXECUTED 42c9a: b081 cmpl %d1,%d0 <== NOT EXECUTED 42c9c: 6600 00ce bnew 42d6c <== NOT EXECUTED 42ca0: 6000 00c6 braw 42d68 <== NOT EXECUTED case B0: baud = 0; break; case B50: baud = 50; break; case B75: baud = 75; break; case B110: baud = 110; break; case B134: baud = 135; break; case B150: baud = 150; break; 42ca4: 203c 0000 00c8 movel #200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42caa: 7406 moveq #6,%d2 <== NOT EXECUTED 42cac: b481 cmpl %d1,%d2 <== NOT EXECUTED 42cae: 6700 00be beqw 42d6e <== NOT EXECUTED case B0: baud = 0; break; case B50: baud = 50; break; case B75: baud = 75; break; case B110: baud = 110; break; case B134: baud = 135; break; 42cb2: 0680 ffff ffce addil #-50,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cb8: b481 cmpl %d1,%d2 <== NOT EXECUTED 42cba: 6e00 00b2 bgtw 42d6e <== NOT EXECUTED case B50: baud = 50; break; case B75: baud = 75; break; case B110: baud = 110; break; case B134: baud = 135; break; case B150: baud = 150; break; case B200: baud = 200; break; 42cbe: 303c 012c movew #300,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cc2: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 42cc6: b481 cmpl %d1,%d2 <== NOT EXECUTED 42cc8: 6700 00a4 beqw 42d6e <== NOT EXECUTED case B75: baud = 75; break; case B110: baud = 110; break; case B134: baud = 135; break; case B150: baud = 150; break; case B200: baud = 200; break; case B300: baud = 300; break; 42ccc: 303c 0258 movew #600,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cd0: 143c 0008 moveb #8,%d2 <== NOT EXECUTED 42cd4: 6038 bras 42d0e <== NOT EXECUTED case B600: baud = 600; break; case B1200: baud = 1200; break; case B1800: baud = 1800; break; case B2400: baud = 2400; break; case B4800: baud = 4800; break; case B9600: baud = 9600; break; 42cd6: 203c 0000 4b00 movel #19200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cdc: 740e moveq #14,%d2 <== NOT EXECUTED 42cde: b481 cmpl %d1,%d2 <== NOT EXECUTED 42ce0: 6700 008c beqw 42d6e <== NOT EXECUTED 42ce4: 6d2e blts 42d14 <== NOT EXECUTED case B150: baud = 150; break; case B200: baud = 200; break; case B300: baud = 300; break; case B600: baud = 600; break; case B1200: baud = 1200; break; case B1800: baud = 1800; break; 42ce6: 303c 0960 movew #2400,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cea: 143c 000b moveb #11,%d2 <== NOT EXECUTED 42cee: b481 cmpl %d1,%d2 <== NOT EXECUTED 42cf0: 677c beqs 42d6e <== NOT EXECUTED case B134: baud = 135; break; case B150: baud = 150; break; case B200: baud = 200; break; case B300: baud = 300; break; case B600: baud = 600; break; case B1200: baud = 1200; break; 42cf2: 303c 0708 movew #1800,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cf6: b481 cmpl %d1,%d2 <== NOT EXECUTED 42cf8: 6e74 bgts 42d6e <== NOT EXECUTED case B200: baud = 200; break; case B300: baud = 300; break; case B600: baud = 600; break; case B1200: baud = 1200; break; case B1800: baud = 1800; break; case B2400: baud = 2400; break; 42cfa: 303c 12c0 movew #4800,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cfe: 143c 000c moveb #12,%d2 <== NOT EXECUTED 42d02: b481 cmpl %d1,%d2 <== NOT EXECUTED 42d04: 6768 beqs 42d6e <== NOT EXECUTED case B300: baud = 300; break; case B600: baud = 600; break; case B1200: baud = 1200; break; case B1800: baud = 1800; break; case B2400: baud = 2400; break; case B4800: baud = 4800; break; 42d06: 303c 2580 movew #9600,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d0a: 143c 000d moveb #13,%d2 <== NOT EXECUTED 42d0e: b481 cmpl %d1,%d2 <== NOT EXECUTED 42d10: 665a bnes 42d6c <== NOT EXECUTED 42d12: 605a bras 42d6e <== NOT EXECUTED case B2400: baud = 2400; break; case B4800: baud = 4800; break; case B9600: baud = 9600; break; case B19200: baud = 19200; break; case B38400: baud = 38400; break; case B57600: baud = 57600; break; 42d14: 203c 0001 c200 movel #115200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d1a: 0c81 0000 1002 cmpil #4098,%d1 <== NOT EXECUTED 42d20: 674c beqs 42d6e <== NOT EXECUTED 42d22: 6e1a bgts 42d3e <== NOT EXECUTED 42d24: 740f moveq #15,%d2 <== NOT EXECUTED case B1200: baud = 1200; break; case B1800: baud = 1800; break; case B2400: baud = 2400; break; case B4800: baud = 4800; break; case B9600: baud = 9600; break; case B19200: baud = 19200; break; 42d26: 203c 0000 9600 movel #38400,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d2c: b481 cmpl %d1,%d2 <== NOT EXECUTED 42d2e: 673e beqs 42d6e <== NOT EXECUTED case B1800: baud = 1800; break; case B2400: baud = 2400; break; case B4800: baud = 4800; break; case B9600: baud = 9600; break; case B19200: baud = 19200; break; case B38400: baud = 38400; break; 42d30: 303c e100 movew #-7936,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d34: 0c81 0000 1001 cmpil #4097,%d1 <== NOT EXECUTED 42d3a: 6630 bnes 42d6c <== NOT EXECUTED 42d3c: 6030 bras 42d6e <== NOT EXECUTED case B4800: baud = 4800; break; case B9600: baud = 9600; break; case B19200: baud = 19200; break; case B38400: baud = 38400; break; case B57600: baud = 57600; break; case B115200: baud = 115200; break; 42d3e: 203c 0003 8400 movel #230400,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d44: 0c81 0000 1003 cmpil #4099,%d1 <== NOT EXECUTED 42d4a: 6722 beqs 42d6e <== NOT EXECUTED case B9600: baud = 9600; break; case B19200: baud = 19200; break; case B38400: baud = 38400; break; case B57600: baud = 57600; break; case B115200: baud = 115200; break; case B230400: baud = 230400; break; 42d4c: 203c 0007 0800 movel #460800,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d52: 0c81 0000 1004 cmpil #4100,%d1 <== NOT EXECUTED 42d58: 6612 bnes 42d6c <== NOT EXECUTED 42d5a: 6012 bras 42d6e <== NOT EXECUTED 42d5c: 7032 moveq #50,%d0 <== NOT EXECUTED 42d5e: 600e bras 42d6e <== NOT EXECUTED 42d60: 4280 clrl %d0 <== NOT EXECUTED 42d62: 600a bras 42d6e <== NOT EXECUTED 42d64: 704b moveq #75,%d0 <== NOT EXECUTED 42d66: 6006 bras 42d6e <== NOT EXECUTED case B0: baud = 0; break; case B50: baud = 50; break; case B75: baud = 75; break; 42d68: 706e moveq #110,%d0 <== NOT EXECUTED 42d6a: 6002 bras 42d6e <== NOT EXECUTED case B19200: baud = 19200; break; case B38400: baud = 38400; break; case B57600: baud = 57600; break; case B115200: baud = 115200; break; case B230400: baud = 230400; break; case B460800: baud = 460800; break; 42d6c: 70ff moveq #-1,%d0 <== NOT EXECUTED default: baud = -1; break; } return baud; } 42d6e: 241f movel %sp@+,%d2 <== NOT EXECUTED 42d70: 4e5e unlk %fp <== NOT EXECUTED 42d72: 4e75 rts 0005ca0e : */ char *ttyname( int fd ) { 5ca0e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( !ttyname_r( fd, ttyname_buf, sizeof(ttyname_buf) ) ) 5ca12: 4878 0406 pea 406 <== NOT EXECUTED 5ca16: 4879 0007 d464 pea 7d464 <== NOT EXECUTED 5ca1c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5ca20: 4eb9 0005 c924 jsr 5c924 <== NOT EXECUTED 5ca26: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5ca2c: 223c 0007 d464 movel #513124,%d1 <== NOT EXECUTED 5ca32: 4a80 tstl %d0 <== NOT EXECUTED 5ca34: 6702 beqs 5ca38 <== NOT EXECUTED 5ca36: 4281 clrl %d1 <== NOT EXECUTED return ttyname_buf; return NULL; } 5ca38: 4e5e unlk %fp <== NOT EXECUTED 5ca3a: 2001 movel %d1,%d0 <== NOT EXECUTED 5ca3c: 4e75 rts <== NOT EXECUTED ... 0005c924 : int ttyname_r( int fd, char *name, size_t namesize ) { 5c924: 4e56 ff24 linkw %fp,#-220 <== NOT EXECUTED 5c928: 48d7 1cfc moveml %d2-%d7/%a2-%a4,%sp@ <== NOT EXECUTED DIR *dp; struct stat dsb; char *rval; /* Must be a terminal. */ if (tcgetattr (fd, &tty) < 0) 5c92c: 486e ffdc pea %fp@(-36) <== NOT EXECUTED int ttyname_r( int fd, char *name, size_t namesize ) { 5c930: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 5c934: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED DIR *dp; struct stat dsb; char *rval; /* Must be a terminal. */ if (tcgetattr (fd, &tty) < 0) 5c938: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c93a: 4eb9 0005 c894 jsr 5c894 <== NOT EXECUTED 5c940: 508f addql #8,%sp <== NOT EXECUTED 5c942: 4a80 tstl %d0 <== NOT EXECUTED 5c944: 6d36 blts 5c97c <== NOT EXECUTED rtems_set_errno_and_return_minus_one(EBADF); /* Must be a character device. */ if (fstat (fd, &sb) || !S_ISCHR (sb.st_mode)) 5c946: 486e ff92 pea %fp@(-110) <== NOT EXECUTED 5c94a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c94c: 4eb9 0005 adc4 jsr 5adc4 <== NOT EXECUTED 5c952: 508f addql #8,%sp <== NOT EXECUTED 5c954: 4a80 tstl %d0 <== NOT EXECUTED 5c956: 6624 bnes 5c97c <== NOT EXECUTED 5c958: 202e ff9e movel %fp@(-98),%d0 <== NOT EXECUTED 5c95c: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 5c962: 0c80 0000 2000 cmpil #8192,%d0 <== NOT EXECUTED 5c968: 6612 bnes 5c97c <== NOT EXECUTED rtems_set_errno_and_return_minus_one(EBADF); if ((dp = opendir (_PATH_DEV)) == NULL) 5c96a: 4879 0007 a660 pea 7a660 <== NOT EXECUTED 5c970: 4eb9 0005 c198 jsr 5c198 <== NOT EXECUTED 5c976: 588f addql #4,%sp <== NOT EXECUTED 5c978: 2400 movel %d0,%d2 <== NOT EXECUTED 5c97a: 6652 bnes 5c9ce <== NOT EXECUTED rtems_set_errno_and_return_minus_one(EBADF); 5c97c: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5c982: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c984: 7009 moveq #9,%d0 <== NOT EXECUTED 5c986: 2080 movel %d0,%a0@ <== NOT EXECUTED 5c988: 70ff moveq #-1,%d0 <== NOT EXECUTED 5c98a: 6078 bras 5ca04 <== NOT EXECUTED for (rval = NULL; (dirp = readdir (dp)) != NULL ;) { if (dirp->d_ino != sb.st_ino) 5c98c: 202e ff9a movel %fp@(-102),%d0 <== NOT EXECUTED 5c990: b090 cmpl %a0@,%d0 <== NOT EXECUTED 5c992: 6658 bnes 5c9ec <== NOT EXECUTED continue; strcpy (name + sizeof (_PATH_DEV) - 1, dirp->d_name); 5c994: 4868 000c pea %a0@(12) <== NOT EXECUTED 5c998: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c99a: 4e93 jsr %a3@ <== NOT EXECUTED if (stat (name, &dsb) || sb.st_dev != dsb.st_dev || 5c99c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5c99e: 2f05 movel %d5,%sp@- <== NOT EXECUTED 5c9a0: 4e92 jsr %a2@ <== NOT EXECUTED 5c9a2: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5c9a8: 4a80 tstl %d0 <== NOT EXECUTED 5c9aa: 6640 bnes 5c9ec <== NOT EXECUTED 5c9ac: 202e ff92 movel %fp@(-110),%d0 <== NOT EXECUTED 5c9b0: 222e ff96 movel %fp@(-106),%d1 <== NOT EXECUTED 5c9b4: 2c2e ff48 movel %fp@(-184),%d6 <== NOT EXECUTED 5c9b8: 2e2e ff4c movel %fp@(-180),%d7 <== NOT EXECUTED 5c9bc: 9287 subl %d7,%d1 <== NOT EXECUTED 5c9be: 9186 subxl %d6,%d0 <== NOT EXECUTED 5c9c0: 662a bnes 5c9ec <== NOT EXECUTED 5c9c2: 2e2e ff50 movel %fp@(-176),%d7 <== NOT EXECUTED 5c9c6: beae ff9a cmpl %fp@(-102),%d7 <== NOT EXECUTED 5c9ca: 6620 bnes 5c9ec <== NOT EXECUTED 5c9cc: 602a bras 5c9f8 <== NOT EXECUTED for (rval = NULL; (dirp = readdir (dp)) != NULL ;) { if (dirp->d_ino != sb.st_ino) continue; strcpy (name + sizeof (_PATH_DEV) - 1, dirp->d_name); 5c9ce: 2605 movel %d5,%d3 <== NOT EXECUTED if (stat (name, &dsb) || sb.st_dev != dsb.st_dev || 5c9d0: 280e movel %fp,%d4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one(EBADF); if ((dp = opendir (_PATH_DEV)) == NULL) rtems_set_errno_and_return_minus_one(EBADF); for (rval = NULL; (dirp = readdir (dp)) != NULL ;) 5c9d2: 49f9 0005 c440 lea 5c440 ,%a4 <== NOT EXECUTED { if (dirp->d_ino != sb.st_ino) continue; strcpy (name + sizeof (_PATH_DEV) - 1, dirp->d_name); 5c9d8: 5a83 addql #5,%d3 <== NOT EXECUTED 5c9da: 47f9 0006 ca9c lea 6ca9c ,%a3 <== NOT EXECUTED if (stat (name, &dsb) || sb.st_dev != dsb.st_dev || 5c9e0: 0684 ffff ff48 addil #-184,%d4 <== NOT EXECUTED 5c9e6: 45f9 0004 66c0 lea 466c0 ,%a2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one(EBADF); if ((dp = opendir (_PATH_DEV)) == NULL) rtems_set_errno_and_return_minus_one(EBADF); for (rval = NULL; (dirp = readdir (dp)) != NULL ;) 5c9ec: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c9ee: 4e94 jsr %a4@ <== NOT EXECUTED 5c9f0: 588f addql #4,%sp <== NOT EXECUTED 5c9f2: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c9f4: 4a80 tstl %d0 <== NOT EXECUTED 5c9f6: 6694 bnes 5c98c <== NOT EXECUTED sb.st_ino != dsb.st_ino) continue; rval = name; break; } (void) closedir (dp); 5c9f8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c9fa: 4eb9 0006 5d50 jsr 65d50 <== NOT EXECUTED 5ca00: 588f addql #4,%sp <== NOT EXECUTED 5ca02: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5ca04: 4cee 1cfc ff24 moveml %fp@(-220),%d2-%d7/%a2-%a4 <== NOT EXECUTED 5ca0a: 4e5e unlk %fp <== NOT EXECUTED 5ca0c: 4e75 rts 0005ca40 : mode_t cmask ) { mode_t old_mask; old_mask = rtems_filesystem_umask; 5ca40: 2079 0007 d460 moveal 7d460 ,%a0 <== NOT EXECUTED 5ca46: 2028 0024 movel %a0@(36),%d0 <== NOT EXECUTED #include mode_t umask( mode_t cmask ) { 5ca4a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED mode_t old_mask; old_mask = rtems_filesystem_umask; rtems_filesystem_umask = cmask; 5ca4e: 216e 0008 0024 movel %fp@(8),%a0@(36) <== NOT EXECUTED return old_mask; } 5ca54: 4e5e unlk %fp <== NOT EXECUTED 5ca56: 4e75 rts 0005ca58 : #include int unlink( const char *path ) { 5ca58: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5ca5c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ca5e: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Get the node to be unlinked. */ result = rtems_filesystem_evaluate_path( path, 0, &loc, false ); 5ca60: 240e movel %fp,%d2 <== NOT EXECUTED 5ca62: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 5ca68: 42a7 clrl %sp@- <== NOT EXECUTED 5ca6a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ca6c: 42a7 clrl %sp@- <== NOT EXECUTED 5ca6e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5ca72: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( result != 0 ) 5ca78: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5ca7e: 4a80 tstl %d0 <== NOT EXECUTED 5ca80: 6600 00dc bnew 5cb5e <== NOT EXECUTED return -1; result = rtems_filesystem_evaluate_parent(RTEMS_LIBIO_PERMS_WRITE, &loc ); 5ca84: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ca86: 4878 0002 pea 2 <== NOT EXECUTED 5ca8a: 4eb9 0004 51a8 jsr 451a8 <== NOT EXECUTED if (result != 0 && errno != ENOTSUP) { 5ca90: 508f addql #8,%sp <== NOT EXECUTED 5ca92: 4a80 tstl %d0 <== NOT EXECUTED 5ca94: 6730 beqs 5cac6 <== NOT EXECUTED 5ca96: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5ca9c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ca9e: 203c 0000 0086 movel #134,%d0 <== NOT EXECUTED 5caa4: b090 cmpl %a0@,%d0 <== NOT EXECUTED 5caa6: 671e beqs 5cac6 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5caa8: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5caac: 4a88 tstl %a0 <== NOT EXECUTED 5caae: 6700 00ae beqw 5cb5e <== NOT EXECUTED 5cab2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cab6: 4a88 tstl %a0 <== NOT EXECUTED 5cab8: 6700 00a4 beqw 5cb5e <== NOT EXECUTED 5cabc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5cabe: 4e90 jsr %a0@ <== NOT EXECUTED 5cac0: 588f addql #4,%sp <== NOT EXECUTED 5cac2: 6000 009a braw 5cb5e <== NOT EXECUTED return -1; } if ( !loc.ops->node_type_h ) { 5cac6: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5caca: 2268 0010 moveal %a0@(16),%a1 <== NOT EXECUTED 5cace: 4a89 tstl %a1 <== NOT EXECUTED 5cad0: 660e bnes 5cae0 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cad2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cad6: 4a88 tstl %a0 <== NOT EXECUTED 5cad8: 6754 beqs 5cb2e <== NOT EXECUTED 5cada: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 5cade: 604a bras 5cb2a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) { 5cae0: 260e movel %fp,%d3 <== NOT EXECUTED 5cae2: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 5cae8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5caea: 4e91 jsr %a1@ <== NOT EXECUTED 5caec: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5caf0: 588f addql #4,%sp <== NOT EXECUTED 5caf2: 7201 moveq #1,%d1 <== NOT EXECUTED 5caf4: b280 cmpl %d0,%d1 <== NOT EXECUTED 5caf6: 6620 bnes 5cb18 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5caf8: 4a88 tstl %a0 <== NOT EXECUTED 5cafa: 670e beqs 5cb0a <== NOT EXECUTED 5cafc: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cb00: 4a88 tstl %a0 <== NOT EXECUTED 5cb02: 6706 beqs 5cb0a <== NOT EXECUTED 5cb04: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cb06: 4e90 jsr %a0@ <== NOT EXECUTED 5cb08: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EISDIR ); 5cb0a: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5cb10: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cb12: 7015 moveq #21,%d0 <== NOT EXECUTED 5cb14: 2080 movel %d0,%a0@ <== NOT EXECUTED 5cb16: 6046 bras 5cb5e <== NOT EXECUTED } if ( !loc.ops->unlink_h ) { 5cb18: 2268 000c moveal %a0@(12),%a1 <== NOT EXECUTED 5cb1c: 4a89 tstl %a1 <== NOT EXECUTED 5cb1e: 661e bnes 5cb3e <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cb20: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cb24: 4a88 tstl %a0 <== NOT EXECUTED 5cb26: 6706 beqs 5cb2e <== NOT EXECUTED 5cb28: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cb2a: 4e90 jsr %a0@ <== NOT EXECUTED 5cb2c: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5cb2e: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5cb34: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cb36: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5cb3c: 6020 bras 5cb5e <== NOT EXECUTED } result = (*loc.ops->unlink_h)( &loc ); 5cb3e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cb40: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cb42: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED if ( !loc.ops->unlink_h ) { rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.ops->unlink_h)( &loc ); 5cb46: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cb48: 588f addql #4,%sp <== NOT EXECUTED 5cb4a: 4a88 tstl %a0 <== NOT EXECUTED 5cb4c: 6712 beqs 5cb60 <== NOT EXECUTED 5cb4e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cb52: 4a88 tstl %a0 <== NOT EXECUTED 5cb54: 670a beqs 5cb60 <== NOT EXECUTED 5cb56: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cb58: 4e90 jsr %a0@ <== NOT EXECUTED 5cb5a: 588f addql #4,%sp <== NOT EXECUTED 5cb5c: 6002 bras 5cb60 <== NOT EXECUTED 5cb5e: 74ff moveq #-1,%d2 <== NOT EXECUTED return result; } 5cb60: 2002 movel %d2,%d0 <== NOT EXECUTED 5cb62: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 5cb66: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 5cb6a: 4e5e unlk %fp <== NOT EXECUTED 5cb6c: 4e75 rts 0005cbc6 : */ int unmount( const char *path ) { 5cbc6: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5cbca: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5cbcc: 2f02 movel %d2,%sp@- <== NOT EXECUTED * The root node of the mounted filesytem. * The node for the directory that the fileystem is mounted on. * The mount entry that is being refered to. */ if ( rtems_filesystem_evaluate_path( path, 0x0, &loc, true ) ) 5cbce: 240e movel %fp,%d2 <== NOT EXECUTED 5cbd0: 4878 0001 pea 1 <== NOT EXECUTED 5cbd4: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 5cbda: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5cbdc: 42a7 clrl %sp@- <== NOT EXECUTED 5cbde: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5cbe2: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED 5cbe8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5cbee: 4a80 tstl %d0 <== NOT EXECUTED 5cbf0: 6600 0116 bnew 5cd08 <== NOT EXECUTED return -1; mt_entry = loc.mt_entry; 5cbf4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED /* * Verify this is the root node for the file system to be unmounted. */ if ( !rtems_filesystem_nodes_equal( fs_root_loc, &loc) ){ 5cbf8: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 5cbfc: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5cc00: b0aa 0018 cmpl %a2@(24),%d0 <== NOT EXECUTED 5cc04: 6722 beqs 5cc28 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cc06: 4a88 tstl %a0 <== NOT EXECUTED 5cc08: 670e beqs 5cc18 <== NOT EXECUTED 5cc0a: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cc0e: 4a88 tstl %a0 <== NOT EXECUTED 5cc10: 6706 beqs 5cc18 <== NOT EXECUTED 5cc12: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5cc14: 4e90 jsr %a0@ <== NOT EXECUTED 5cc16: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 5cc18: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5cc1e: 720d moveq #13,%d1 <== NOT EXECUTED 5cc20: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cc22: 2081 movel %d1,%a0@ <== NOT EXECUTED 5cc24: 6000 00e2 braw 5cd08 <== NOT EXECUTED /* * Free the loc node and just use the nodes from the mt_entry . */ rtems_filesystem_freenode( &loc ); 5cc28: 4a88 tstl %a0 <== NOT EXECUTED 5cc2a: 670e beqs 5cc3a <== NOT EXECUTED 5cc2c: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cc30: 4a88 tstl %a0 <== NOT EXECUTED 5cc32: 6706 beqs 5cc3a <== NOT EXECUTED 5cc34: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5cc36: 4e90 jsr %a0@ <== NOT EXECUTED 5cc38: 588f addql #4,%sp <== NOT EXECUTED /* * Verify Unmount is supported by both filesystems. */ if ( !fs_mount_loc->ops->unmount_h ) 5cc3a: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 5cc3e: 4aa8 0028 tstl %a0@(40) <== NOT EXECUTED 5cc42: 670a beqs 5cc4e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( !fs_root_loc->ops->fsunmount_me_h ) 5cc44: 206a 0020 moveal %a2@(32),%a0 <== NOT EXECUTED 5cc48: 4aa8 002c tstl %a0@(44) <== NOT EXECUTED 5cc4c: 6612 bnes 5cc60 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5cc4e: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5cc54: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cc56: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5cc5c: 6000 00aa braw 5cd08 <== NOT EXECUTED * that made the current node thread based instead * of system based? I thought it was but it doesn't * look like it in this version. */ if ( rtems_filesystem_current.mt_entry == mt_entry ) 5cc60: 2079 0007 d460 moveal 7d460 ,%a0 <== NOT EXECUTED 5cc66: b5e8 0010 cmpal %a0@(16),%a2 <== NOT EXECUTED 5cc6a: 6720 beqs 5cc8c <== NOT EXECUTED /* * Search the mount table for any mount entries referencing this * mount entry. */ for ( the_node = rtems_filesystem_mount_table_control.first; 5cc6c: 2079 0009 257c moveal 9257c ,%a0 <== NOT EXECUTED 5cc72: 600c bras 5cc80 <== NOT EXECUTED !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node ); the_node = the_node->next ) { the_mount_entry = ( rtems_filesystem_mount_table_entry_t * )the_node; if (the_mount_entry->mt_point_node.mt_entry == fs_root_loc->mt_entry ) { 5cc74: 222a 0024 movel %a2@(36),%d1 <== NOT EXECUTED 5cc78: b2a8 0014 cmpl %a0@(20),%d1 <== NOT EXECUTED 5cc7c: 670e beqs 5cc8c <== NOT EXECUTED * mount entry. */ for ( the_node = rtems_filesystem_mount_table_control.first; !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node ); the_node = the_node->next ) { 5cc7e: 2050 moveal %a0@,%a0 <== NOT EXECUTED * Search the mount table for any mount entries referencing this * mount entry. */ for ( the_node = rtems_filesystem_mount_table_control.first; !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node ); 5cc80: b1fc 0009 2580 cmpal #599424,%a0 <== NOT EXECUTED 5cc86: 66ec bnes 5cc74 <== NOT EXECUTED 5cc88: 6000 008c braw 5cd16 <== NOT EXECUTED * descriptors that are currently active and reference nodes in the * file system that we are trying to unmount */ if ( rtems_libio_is_open_files_in_fs( mt_entry ) == 1 ) rtems_set_errno_and_return_minus_one( EBUSY ); 5cc8c: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5cc92: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cc94: 7010 moveq #16,%d0 <== NOT EXECUTED 5cc96: 2080 movel %d0,%a0@ <== NOT EXECUTED 5cc98: 606e bras 5cd08 <== NOT EXECUTED * Allow the file system being unmounted on to do its cleanup. * If it fails it will set the errno to the approprate value * and the fileystem will not be modified. */ if (( fs_mount_loc->ops->unmount_h )( mt_entry ) != 0 ) 5cc9a: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 5cc9e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5cca0: 2068 0028 moveal %a0@(40),%a0 <== NOT EXECUTED 5cca4: 4e90 jsr %a0@ <== NOT EXECUTED 5cca6: 588f addql #4,%sp <== NOT EXECUTED 5cca8: 4a80 tstl %d0 <== NOT EXECUTED 5ccaa: 665c bnes 5cd08 <== NOT EXECUTED * NOTE: Fatal error is called in a case which should never happen * This was response was questionable but the best we could * come up with. */ if ((fs_root_loc->ops->fsunmount_me_h )( mt_entry ) != 0){ 5ccac: 206a 0020 moveal %a2@(32),%a0 <== NOT EXECUTED 5ccb0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5ccb2: 2068 002c moveal %a0@(44),%a0 <== NOT EXECUTED 5ccb6: 4e90 jsr %a0@ <== NOT EXECUTED 5ccb8: 588f addql #4,%sp <== NOT EXECUTED 5ccba: 4a80 tstl %d0 <== NOT EXECUTED 5ccbc: 671a beqs 5ccd8 <== NOT EXECUTED if (( fs_mount_loc->ops->mount_h )( mt_entry ) != 0 ) 5ccbe: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 5ccc2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5ccc4: 2068 0020 moveal %a0@(32),%a0 <== NOT EXECUTED 5ccc8: 4e90 jsr %a0@ <== NOT EXECUTED 5ccca: 588f addql #4,%sp <== NOT EXECUTED 5cccc: 4a80 tstl %d0 <== NOT EXECUTED 5ccce: 6738 beqs 5cd08 <== NOT EXECUTED rtems_fatal_error_occurred( 0 ); 5ccd0: 42a7 clrl %sp@- <== NOT EXECUTED 5ccd2: 4eb9 0004 911c jsr 4911c <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void rtems_chain_extract( rtems_chain_node *the_node ) { _Chain_Extract( the_node ); 5ccd8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5ccda: 4eb9 0005 d98c jsr 5d98c <_Chain_Extract> <== NOT EXECUTED /* * Free the memory node that was allocated in mount * Free the memory associated with the extracted mount table entry. */ rtems_filesystem_freenode( fs_mount_loc ); 5cce0: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 5cce4: 588f addql #4,%sp <== NOT EXECUTED 5cce6: 4a88 tstl %a0 <== NOT EXECUTED 5cce8: 6710 beqs 5ccfa <== NOT EXECUTED 5ccea: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5ccee: 4a88 tstl %a0 <== NOT EXECUTED 5ccf0: 6708 beqs 5ccfa <== NOT EXECUTED 5ccf2: 486a 0008 pea %a2@(8) <== NOT EXECUTED 5ccf6: 4e90 jsr %a0@ <== NOT EXECUTED 5ccf8: 588f addql #4,%sp <== NOT EXECUTED free( mt_entry ); 5ccfa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5ccfc: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 5cd02: 588f addql #4,%sp <== NOT EXECUTED 5cd04: 4280 clrl %d0 <== NOT EXECUTED 5cd06: 6002 bras 5cd0a <== NOT EXECUTED return 0; 5cd08: 70ff moveq #-1,%d0 <== NOT EXECUTED } 5cd0a: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 5cd0e: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 5cd12: 4e5e unlk %fp <== NOT EXECUTED 5cd14: 4e75 rts <== NOT EXECUTED * Run the file descriptor table to determine if there are any file * descriptors that are currently active and reference nodes in the * file system that we are trying to unmount */ if ( rtems_libio_is_open_files_in_fs( mt_entry ) == 1 ) 5cd16: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5cd18: 4eb9 0004 55e4 jsr 455e4 <== NOT EXECUTED 5cd1e: 588f addql #4,%sp <== NOT EXECUTED 5cd20: 7201 moveq #1,%d1 <== NOT EXECUTED 5cd22: b280 cmpl %d0,%d1 <== NOT EXECUTED 5cd24: 6600 ff74 bnew 5cc9a <== NOT EXECUTED 5cd28: 6000 ff62 braw 5cc8c <== NOT EXECUTED 0005cd2c : int utime( const char *path, const struct utimbuf *times ) { 5cd2c: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5cd30: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED rtems_filesystem_location_info_t temp_loc; int result; if ( rtems_filesystem_evaluate_path( path, 0x00, &temp_loc, true ) ) 5cd34: 4878 0001 pea 1 <== NOT EXECUTED 5cd38: 260e movel %fp,%d3 <== NOT EXECUTED 5cd3a: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 5cd40: 2f03 movel %d3,%sp@- <== NOT EXECUTED int utime( const char *path, const struct utimbuf *times ) { 5cd42: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED rtems_filesystem_location_info_t temp_loc; int result; if ( rtems_filesystem_evaluate_path( path, 0x00, &temp_loc, true ) ) 5cd46: 42a7 clrl %sp@- <== NOT EXECUTED 5cd48: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5cd4c: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED 5cd52: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5cd58: 4a80 tstl %d0 <== NOT EXECUTED 5cd5a: 6628 bnes 5cd84 <== NOT EXECUTED return -1; if ( !temp_loc.ops->utime_h ){ 5cd5c: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5cd60: 2268 0030 moveal %a0@(48),%a1 <== NOT EXECUTED 5cd64: 4a89 tstl %a1 <== NOT EXECUTED 5cd66: 6620 bnes 5cd88 <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 5cd68: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cd6c: 4a88 tstl %a0 <== NOT EXECUTED 5cd6e: 6706 beqs 5cd76 <== NOT EXECUTED 5cd70: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cd72: 4e90 jsr %a0@ <== NOT EXECUTED 5cd74: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5cd76: 4eb9 0006 7f7c jsr 67f7c <__errno> <== NOT EXECUTED 5cd7c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cd7e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5cd84: 74ff moveq #-1,%d2 <== NOT EXECUTED 5cd86: 6028 bras 5cdb0 <== NOT EXECUTED } result = (*temp_loc.ops->utime_h)( &temp_loc, times->actime, times->modtime ); 5cd88: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED 5cd8c: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 5cd8e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cd90: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 5cd92: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED if ( !temp_loc.ops->utime_h ){ rtems_filesystem_freenode( &temp_loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*temp_loc.ops->utime_h)( &temp_loc, times->actime, times->modtime ); 5cd96: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 5cd98: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5cd9e: 4a88 tstl %a0 <== NOT EXECUTED 5cda0: 670e beqs 5cdb0 <== NOT EXECUTED 5cda2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cda6: 4a88 tstl %a0 <== NOT EXECUTED 5cda8: 6706 beqs 5cdb0 <== NOT EXECUTED 5cdaa: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cdac: 4e90 jsr %a0@ <== NOT EXECUTED 5cdae: 588f addql #4,%sp <== NOT EXECUTED return result; } 5cdb0: 2002 movel %d2,%d0 <== NOT EXECUTED 5cdb2: 4cee 040c ffe4 moveml %fp@(-28),%d2-%d3/%a2 <== NOT EXECUTED 5cdb8: 4e5e unlk %fp <== NOT EXECUTED 5cdba: 4e75 rts 000429cc : */ void vprintk( const char *fmt, va_list ap ) { 429cc: 4e56 ffc4 linkw %fp,#-60 <== NOT EXECUTED 429d0: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 429d4: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 429d8: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { toPrint[count++] = (num - (n*base)); 429dc: 2e0e movel %fp,%d7 <== NOT EXECUTED 429de: 0687 ffff ffec addil #-20,%d7 <== NOT EXECUTED for (n=maxwidth ; n > count; n-- ) BSP_output_char(lead); for (n = 0; n < count; n++) { BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); 429e4: 4bf9 0005 40f9 lea 540f9 ,%a5 <== NOT EXECUTED 429ea: 6000 023a braw 42c26 <== NOT EXECUTED base = 0; sign = 0; width = 0; minus = 0; lead = ' '; if (*fmt == '%') { 429ee: 49c0 extbl %d0 <== NOT EXECUTED 429f0: 7225 moveq #37,%d1 <== NOT EXECUTED 429f2: b280 cmpl %d0,%d1 <== NOT EXECUTED 429f4: 6600 0222 bnew 42c18 <== NOT EXECUTED fmt++; 429f8: 528a addql #1,%a2 <== NOT EXECUTED if (*fmt == '0' ) { 429fa: 1012 moveb %a2@,%d0 <== NOT EXECUTED 429fc: 49c0 extbl %d0 <== NOT EXECUTED 429fe: 7630 moveq #48,%d3 <== NOT EXECUTED 42a00: b680 cmpl %d0,%d3 <== NOT EXECUTED 42a02: 6704 beqs 42a08 <== NOT EXECUTED 42a04: 7c20 moveq #32,%d6 <== NOT EXECUTED 42a06: 6004 bras 42a0c <== NOT EXECUTED lead = '0'; fmt++; 42a08: 528a addql #1,%a2 <== NOT EXECUTED 42a0a: 7c30 moveq #48,%d6 <== NOT EXECUTED } if (*fmt == '-' ) { 42a0c: 1012 moveb %a2@,%d0 <== NOT EXECUTED 42a0e: 49c0 extbl %d0 <== NOT EXECUTED 42a10: 722d moveq #45,%d1 <== NOT EXECUTED 42a12: b280 cmpl %d0,%d1 <== NOT EXECUTED 42a14: 6704 beqs 42a1a <== NOT EXECUTED 42a16: 4285 clrl %d5 <== NOT EXECUTED 42a18: 6004 bras 42a1e <== NOT EXECUTED minus = 1; fmt++; 42a1a: 528a addql #1,%a2 <== NOT EXECUTED 42a1c: 7a01 moveq #1,%d5 <== NOT EXECUTED 42a1e: 4284 clrl %d4 <== NOT EXECUTED 42a20: 6012 bras 42a34 <== NOT EXECUTED } while (*fmt >= '0' && *fmt <= '9' ) { width *= 10; 42a22: 2004 movel %d4,%d0 <== NOT EXECUTED 42a24: e788 lsll #3,%d0 <== NOT EXECUTED 42a26: 2240 moveal %d0,%a1 <== NOT EXECUTED 42a28: 41f1 4a00 lea %a1@(00000000,%d4:l:2),%a0 <== NOT EXECUTED width += (*fmt - '0'); 42a2c: 41f0 18d0 lea %a0@(ffffffd0,%d1:l),%a0 <== NOT EXECUTED 42a30: 2808 movel %a0,%d4 <== NOT EXECUTED fmt++; 42a32: 528a addql #1,%a2 <== NOT EXECUTED } if (*fmt == '-' ) { minus = 1; fmt++; } while (*fmt >= '0' && *fmt <= '9' ) { 42a34: 1412 moveb %a2@,%d2 <== NOT EXECUTED 42a36: 2002 movel %d2,%d0 <== NOT EXECUTED 42a38: 0680 ffff ffd0 addil #-48,%d0 <== NOT EXECUTED 42a3e: 1202 moveb %d2,%d1 <== NOT EXECUTED 42a40: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 42a46: 49c1 extbl %d1 <== NOT EXECUTED 42a48: 7609 moveq #9,%d3 <== NOT EXECUTED 42a4a: b680 cmpl %d0,%d3 <== NOT EXECUTED 42a4c: 64d4 bccs 42a22 <== NOT EXECUTED 42a4e: 2644 moveal %d4,%a3 <== NOT EXECUTED width *= 10; width += (*fmt - '0'); fmt++; } if ((c = *fmt) == 'l') { 42a50: 706c moveq #108,%d0 <== NOT EXECUTED 42a52: b081 cmpl %d1,%d0 <== NOT EXECUTED 42a54: 6604 bnes 42a5a <== NOT EXECUTED lflag = 1; c = *++fmt; 42a56: 528a addql #1,%a2 <== NOT EXECUTED 42a58: 1412 moveb %a2@,%d2 <== NOT EXECUTED } switch (c) { 42a5a: 1002 moveb %d2,%d0 <== NOT EXECUTED 42a5c: 49c0 extbl %d0 <== NOT EXECUTED 42a5e: 7264 moveq #100,%d1 <== NOT EXECUTED 42a60: b280 cmpl %d0,%d1 <== NOT EXECUTED 42a62: 6774 beqs 42ad8 <== NOT EXECUTED 42a64: 6d3a blts 42aa0 <== NOT EXECUTED 42a66: 764f moveq #79,%d3 <== NOT EXECUTED 42a68: b680 cmpl %d0,%d3 <== NOT EXECUTED 42a6a: 6700 0108 beqw 42b74 <== NOT EXECUTED 42a6e: 6d14 blts 42a84 <== NOT EXECUTED 42a70: 123c 0044 moveb #68,%d1 <== NOT EXECUTED 42a74: b280 cmpl %d0,%d1 <== NOT EXECUTED 42a76: 6760 beqs 42ad8 <== NOT EXECUTED 42a78: 163c 0049 moveb #73,%d3 <== NOT EXECUTED 42a7c: b680 cmpl %d0,%d3 <== NOT EXECUTED 42a7e: 6600 00ec bnew 42b6c <== NOT EXECUTED 42a82: 6054 bras 42ad8 <== NOT EXECUTED 42a84: 7258 moveq #88,%d1 <== NOT EXECUTED 42a86: b280 cmpl %d0,%d1 <== NOT EXECUTED 42a88: 6700 00ee beqw 42b78 <== NOT EXECUTED 42a8c: 7663 moveq #99,%d3 <== NOT EXECUTED 42a8e: b680 cmpl %d0,%d3 <== NOT EXECUTED 42a90: 6700 00c2 beqw 42b54 <== NOT EXECUTED 42a94: 123c 0055 moveb #85,%d1 <== NOT EXECUTED 42a98: b280 cmpl %d0,%d1 <== NOT EXECUTED 42a9a: 6600 00d0 bnew 42b6c <== NOT EXECUTED 42a9e: 6040 bras 42ae0 <== NOT EXECUTED 42aa0: 7670 moveq #112,%d3 <== NOT EXECUTED 42aa2: b680 cmpl %d0,%d3 <== NOT EXECUTED 42aa4: 6700 00d2 beqw 42b78 <== NOT EXECUTED 42aa8: 6d14 blts 42abe <== NOT EXECUTED 42aaa: 7269 moveq #105,%d1 <== NOT EXECUTED 42aac: b280 cmpl %d0,%d1 <== NOT EXECUTED 42aae: 6728 beqs 42ad8 <== NOT EXECUTED 42ab0: 163c 006f moveb #111,%d3 <== NOT EXECUTED 42ab4: b680 cmpl %d0,%d3 <== NOT EXECUTED 42ab6: 6600 00b4 bnew 42b6c <== NOT EXECUTED 42aba: 6000 00b8 braw 42b74 <== NOT EXECUTED 42abe: 7275 moveq #117,%d1 <== NOT EXECUTED 42ac0: b280 cmpl %d0,%d1 <== NOT EXECUTED 42ac2: 671c beqs 42ae0 <== NOT EXECUTED 42ac4: 7678 moveq #120,%d3 <== NOT EXECUTED 42ac6: b680 cmpl %d0,%d3 <== NOT EXECUTED 42ac8: 6700 00ae beqw 42b78 <== NOT EXECUTED 42acc: 123c 0073 moveb #115,%d1 <== NOT EXECUTED 42ad0: b280 cmpl %d0,%d1 <== NOT EXECUTED 42ad2: 6600 0098 bnew 42b6c <== NOT EXECUTED 42ad6: 600e bras 42ae6 <== NOT EXECUTED 42ad8: 7a0a moveq #10,%d5 <== NOT EXECUTED 42ada: 7001 moveq #1,%d0 <== NOT EXECUTED 42adc: 6000 009e braw 42b7c <== NOT EXECUTED 42ae0: 7a0a moveq #10,%d5 <== NOT EXECUTED 42ae2: 6000 0096 braw 42b7a <== NOT EXECUTED case 'p': base = 16; sign = 0; break; case 's': { int i, len; char *s; str = va_arg(ap, char *); 42ae6: 2654 moveal %a4@,%a3 <== NOT EXECUTED 42ae8: 4283 clrl %d3 <== NOT EXECUTED 42aea: 588c addql #4,%a4 <== NOT EXECUTED 42aec: 6002 bras 42af0 <== NOT EXECUTED /* calculate length of string */ for ( len=0, s=str ; *s ; len++, s++ ) 42aee: 5283 addql #1,%d3 <== NOT EXECUTED 42af0: 4a33 3800 tstb %a3@(00000000,%d3:l) <== NOT EXECUTED 42af4: 66f8 bnes 42aee <== NOT EXECUTED ; /* leading spaces */ if ( !minus ) 42af6: 4a85 tstl %d5 <== NOT EXECUTED 42af8: 6618 bnes 42b12 <== NOT EXECUTED 42afa: 2403 movel %d3,%d2 <== NOT EXECUTED 42afc: 6010 bras 42b0e <== NOT EXECUTED for ( i=len ; i,%a0 <== NOT EXECUTED 42b04: 4878 0020 pea 20 <== NOT EXECUTED 42b08: 4e90 jsr %a0@ <== NOT EXECUTED for ( len=0, s=str ; *s ; len++, s++ ) ; /* leading spaces */ if ( !minus ) for ( i=len ; i <== NOT EXECUTED BSP_output_char(' '); /* no width option */ if (width == 0) { 42b12: 4a84 tstl %d4 <== NOT EXECUTED 42b14: 6602 bnes 42b18 <== NOT EXECUTED 42b16: 2803 movel %d3,%d4 <== NOT EXECUTED width = len; } /* output the string */ for ( i=0 ; i <== NOT EXECUTED 42b1c: 6010 bras 42b2e <== NOT EXECUTED BSP_output_char(*str); 42b1e: 2079 0005 51ec moveal 551ec ,%a0 <== NOT EXECUTED 42b24: 49c0 extbl %d0 <== NOT EXECUTED 42b26: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42b28: 4e90 jsr %a0@ <== NOT EXECUTED if (width == 0) { width = len; } /* output the string */ for ( i=0 ; i <== NOT EXECUTED BSP_output_char(*str); /* trailing spaces */ if ( minus ) 42b32: 4a85 tstl %d5 <== NOT EXECUTED 42b34: 6700 00ee beqw 42c24 <== NOT EXECUTED 42b38: 2403 movel %d3,%d2 <== NOT EXECUTED 42b3a: 6010 bras 42b4c <== NOT EXECUTED for ( i=len ; i,%a0 <== NOT EXECUTED 42b42: 4878 0020 pea 20 <== NOT EXECUTED 42b46: 4e90 jsr %a0@ <== NOT EXECUTED for ( i=0 ; i <== NOT EXECUTED 42b50: 6000 00d2 braw 42c24 <== NOT EXECUTED BSP_output_char(' '); } break; case 'c': BSP_output_char(va_arg(ap, int)); 42b54: 2014 movel %a4@,%d0 <== NOT EXECUTED 42b56: 2079 0005 51ec moveal 551ec ,%a0 <== NOT EXECUTED 42b5c: 49c0 extbl %d0 <== NOT EXECUTED 42b5e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42b60: 4e90 jsr %a0@ <== NOT EXECUTED 42b62: 200c movel %a4,%d0 <== NOT EXECUTED 42b64: 5880 addql #4,%d0 <== NOT EXECUTED 42b66: 2840 moveal %d0,%a4 <== NOT EXECUTED 42b68: 6000 00b8 braw 42c22 <== NOT EXECUTED break; default: BSP_output_char(c); 42b6c: 49c2 extbl %d2 <== NOT EXECUTED 42b6e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42b70: 6000 00a8 braw 42c1a <== NOT EXECUTED 42b74: 7a08 moveq #8,%d5 <== NOT EXECUTED 42b76: 6002 bras 42b7a <== NOT EXECUTED 42b78: 7a10 moveq #16,%d5 <== NOT EXECUTED 42b7a: 4280 clrl %d0 <== NOT EXECUTED break; } /* switch*/ if (base) printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int), 42b7c: 2414 movel %a4@,%d2 <== NOT EXECUTED 42b7e: 220c movel %a4,%d1 <== NOT EXECUTED 42b80: 5881 addql #4,%d1 <== NOT EXECUTED 42b82: 2841 moveal %d1,%a4 <== NOT EXECUTED { long unsigned int n; int count; char toPrint[20]; if ( (sign == 1) && ((long)num < 0) ) { 42b84: 7601 moveq #1,%d3 <== NOT EXECUTED 42b86: b680 cmpl %d0,%d3 <== NOT EXECUTED 42b88: 661e bnes 42ba8 <== NOT EXECUTED 42b8a: 4a82 tstl %d2 <== NOT EXECUTED 42b8c: 6c1a bges 42ba8 <== NOT EXECUTED BSP_output_char('-'); 42b8e: 2079 0005 51ec moveal 551ec ,%a0 <== NOT EXECUTED 42b94: 4878 002d pea 2d <== NOT EXECUTED 42b98: 4e90 jsr %a0@ <== NOT EXECUTED num = -num; 42b9a: 4482 negl %d2 <== NOT EXECUTED if (maxwidth) maxwidth--; 42b9c: 588f addql #4,%sp <== NOT EXECUTED 42b9e: 4a84 tstl %d4 <== NOT EXECUTED 42ba0: 6708 beqs 42baa <== NOT EXECUTED 42ba2: 2644 moveal %d4,%a3 <== NOT EXECUTED 42ba4: 538b subql #1,%a3 <== NOT EXECUTED 42ba6: 6002 bras 42baa <== NOT EXECUTED 42ba8: 2644 moveal %d4,%a3 <== NOT EXECUTED 42baa: 4281 clrl %d1 <== NOT EXECUTED 42bac: 600c bras 42bba <== NOT EXECUTED } count = 0; while ((n = num / base) > 0) { toPrint[count++] = (num - (n*base)); 42bae: 9483 subl %d3,%d2 <== NOT EXECUTED 42bb0: 2047 moveal %d7,%a0 <== NOT EXECUTED 42bb2: 1182 1800 moveb %d2,%a0@(00000000,%d1:l) <== NOT EXECUTED 42bb6: 2204 movel %d4,%d1 <== NOT EXECUTED 42bb8: 2400 movel %d0,%d2 <== NOT EXECUTED num = -num; if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { 42bba: 2002 movel %d2,%d0 <== NOT EXECUTED 42bbc: 4c45 0000 remul %d5,%d0,%d0 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); 42bc0: 2600 movel %d0,%d3 <== NOT EXECUTED 42bc2: 2801 movel %d1,%d4 <== NOT EXECUTED 42bc4: 4c05 3800 mulsl %d5,%d3 <== NOT EXECUTED 42bc8: 5284 addql #1,%d4 <== NOT EXECUTED num = -num; if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { 42bca: 4a80 tstl %d0 <== NOT EXECUTED 42bcc: 66e0 bnes 42bae <== NOT EXECUTED toPrint[count++] = (num - (n*base)); num = n; } toPrint[count++] = num; 42bce: 1d82 18ec moveb %d2,%fp@(ffffffec,%d1:l) <== NOT EXECUTED for (n=maxwidth ; n > count; n-- ) BSP_output_char(lead); 42bd2: 1606 moveb %d6,%d3 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); num = n; } toPrint[count++] = num; for (n=maxwidth ; n > count; n-- ) 42bd4: 240b movel %a3,%d2 <== NOT EXECUTED BSP_output_char(lead); 42bd6: 49c3 extbl %d3 <== NOT EXECUTED 42bd8: 600e bras 42be8 <== NOT EXECUTED 42bda: 2079 0005 51ec moveal 551ec ,%a0 <== NOT EXECUTED 42be0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42be2: 4e90 jsr %a0@ <== NOT EXECUTED toPrint[count++] = (num - (n*base)); num = n; } toPrint[count++] = num; for (n=maxwidth ; n > count; n-- ) 42be4: 5382 subql #1,%d2 <== NOT EXECUTED 42be6: 588f addql #4,%sp <== NOT EXECUTED 42be8: b882 cmpl %d2,%d4 <== NOT EXECUTED 42bea: 65ee bcss 42bda <== NOT EXECUTED 42bec: 4282 clrl %d2 <== NOT EXECUTED BSP_output_char(lead); for (n = 0; n < count; n++) { BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); 42bee: 47f6 4800 lea %fp@(00000000,%d4:l),%a3 <== NOT EXECUTED 42bf2: 601a bras 42c0e <== NOT EXECUTED 42bf4: 1033 08ec moveb %a3@(ffffffec,%d0:l),%d0 <== NOT EXECUTED 42bf8: 49c0 extbl %d0 <== NOT EXECUTED 42bfa: 1035 0800 moveb %a5@(00000000,%d0:l),%d0 <== NOT EXECUTED 42bfe: 2079 0005 51ec moveal 551ec ,%a0 <== NOT EXECUTED 42c04: 49c0 extbl %d0 <== NOT EXECUTED 42c06: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42c08: 4e90 jsr %a0@ <== NOT EXECUTED toPrint[count++] = num; for (n=maxwidth ; n > count; n-- ) BSP_output_char(lead); for (n = 0; n < count; n++) { 42c0a: 5282 addql #1,%d2 <== NOT EXECUTED 42c0c: 588f addql #4,%sp <== NOT EXECUTED BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); 42c0e: 2002 movel %d2,%d0 <== NOT EXECUTED 42c10: 4680 notl %d0 <== NOT EXECUTED toPrint[count++] = num; for (n=maxwidth ; n > count; n-- ) BSP_output_char(lead); for (n = 0; n < count; n++) { 42c12: b882 cmpl %d2,%d4 <== NOT EXECUTED 42c14: 62de bhis 42bf4 <== NOT EXECUTED 42c16: 600c bras 42c24 <== NOT EXECUTED if (base) printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int), base, sign, width, lead); } else { BSP_output_char(*fmt); 42c18: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42c1a: 2079 0005 51ec moveal 551ec ,%a0 <== NOT EXECUTED 42c20: 4e90 jsr %a0@ <== NOT EXECUTED 42c22: 588f addql #4,%sp <== NOT EXECUTED ) { char c, *str; int lflag, base, sign, width, lead, minus; for (; *fmt != '\0'; fmt++) { 42c24: 528a addql #1,%a2 <== NOT EXECUTED 42c26: 1012 moveb %a2@,%d0 <== NOT EXECUTED 42c28: 6600 fdc4 bnew 429ee <== NOT EXECUTED base, sign, width, lead); } else { BSP_output_char(*fmt); } } } 42c2c: 4cee 3cfc ffc4 moveml %fp@(-60),%d2-%d7/%a2-%a5 <== NOT EXECUTED 42c32: 4e5e unlk %fp <== NOT EXECUTED 42c34: 4e75 rts 000535a8 : ssize_t write( int fd, const void *buffer, size_t count ) { 535a8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 535ac: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 535b0: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 535b4: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 535b8: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); 535bc: b4b9 0005 50e8 cmpl 550e8 ,%d2 <== NOT EXECUTED 535c2: 6420 bccs 535e4 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 535c4: 2202 movel %d2,%d1 <== NOT EXECUTED 535c6: 2002 movel %d2,%d0 <== NOT EXECUTED 535c8: e589 lsll #2,%d1 <== NOT EXECUTED 535ca: e988 lsll #4,%d0 <== NOT EXECUTED 535cc: 9081 subl %d1,%d0 <== NOT EXECUTED 535ce: 2479 0005 6b3c moveal 56b3c ,%a2 <== NOT EXECUTED 535d4: d082 addl %d2,%d0 <== NOT EXECUTED 535d6: e588 lsll #2,%d0 <== NOT EXECUTED 535d8: d5c0 addal %d0,%a2 <== NOT EXECUTED rtems_libio_check_is_open( iop ); 535da: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 535de: 0800 0008 btst #8,%d0 <== NOT EXECUTED 535e2: 660e bnes 535f2 <== NOT EXECUTED 535e4: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 535ea: 7209 moveq #9,%d1 <== NOT EXECUTED 535ec: 2040 moveal %d0,%a0 <== NOT EXECUTED 535ee: 2081 movel %d1,%a0@ <== NOT EXECUTED 535f0: 6038 bras 5362a <== NOT EXECUTED rtems_libio_check_buffer( buffer ); 535f2: 4a83 tstl %d3 <== NOT EXECUTED 535f4: 670c beqs 53602 <== NOT EXECUTED rtems_libio_check_count( count ); 535f6: 4a89 tstl %a1 <== NOT EXECUTED 535f8: 6604 bnes 535fe <== NOT EXECUTED 535fa: 4280 clrl %d0 <== NOT EXECUTED 535fc: 6046 bras 53644 <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 535fe: 44c0 movew %d0,%ccr <== NOT EXECUTED 53600: 670e beqs 53610 <== NOT EXECUTED 53602: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 53608: 2040 moveal %d0,%a0 <== NOT EXECUTED 5360a: 7016 moveq #22,%d0 <== NOT EXECUTED 5360c: 2080 movel %d0,%a0@ <== NOT EXECUTED 5360e: 601a bras 5362a <== NOT EXECUTED /* * Now process the write() request. */ if ( !iop->handlers->write_h ) 53610: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 53614: 2068 000c moveal %a0@(12),%a0 <== NOT EXECUTED 53618: 4a88 tstl %a0 <== NOT EXECUTED 5361a: 6612 bnes 5362e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5361c: 4eb9 0004 ac3c jsr 4ac3c <__errno> <== NOT EXECUTED 53622: 2040 moveal %d0,%a0 <== NOT EXECUTED 53624: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5362a: 70ff moveq #-1,%d0 <== NOT EXECUTED 5362c: 6016 bras 53644 <== NOT EXECUTED rc = (*iop->handlers->write_h)( iop, buffer, count ); 5362e: 2f09 movel %a1,%sp@- <== NOT EXECUTED 53630: 2f03 movel %d3,%sp@- <== NOT EXECUTED 53632: 2f0a movel %a2,%sp@- <== NOT EXECUTED 53634: 4e90 jsr %a0@ <== NOT EXECUTED if ( rc > 0 ) 53636: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5363c: 4a80 tstl %d0 <== NOT EXECUTED 5363e: 6f04 bles 53644 <== NOT EXECUTED iop->offset += rc; 53640: d1aa 0008 addl %d0,%a2@(8) <== NOT EXECUTED return rc; } 53644: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 5364a: 4e5e unlk %fp <== NOT EXECUTED 5364c: 4e75 rts <== NOT EXECUTED ...