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 0004810c : #define MAXSYMLINK 5 int IMFS_Set_handlers( rtems_filesystem_location_info_t *loc ) { 4810c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48110: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48112: 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 ) { 48116: 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; 48118: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED switch( node->type ) { 4811c: 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; 48120: 2068 002c moveal %a0@(44),%a0 <== NOT EXECUTED switch( node->type ) { 48124: 5380 subql #1,%d0 <== NOT EXECUTED 48126: 7205 moveq #5,%d1 <== NOT EXECUTED 48128: b280 cmpl %d0,%d1 <== NOT EXECUTED 4812a: 653c bcss 48168 <== NOT EXECUTED 4812c: 303b 0a08 movew %pc@(48136 ,%d0:l:2),%d0 <== NOT EXECUTED 48130: 48c0 extl %d0 <== NOT EXECUTED 48132: 4efb 0802 jmp %pc@(48136 ,%d0:l) <== NOT EXECUTED 48136: 000c 014 <== NOT EXECUTED 48138: 0014 024 <== NOT EXECUTED 4813a: 0020 040 <== NOT EXECUTED 4813c: 0020 040 <== NOT EXECUTED 4813e: 002c 054 <== NOT EXECUTED 48140: 002c 054 <== NOT EXECUTED case IMFS_DIRECTORY: loc->handlers = fs_info->directory_handlers; 48142: 2568 0008 0004 movel %a0@(8),%a2@(4) <== NOT EXECUTED 48148: 601e bras 48168 <== NOT EXECUTED break; case IMFS_DEVICE: loc->handlers = &IMFS_device_handlers; 4814a: 203c 0005 530e movel #348942,%d0 <== NOT EXECUTED 48150: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 48154: 6012 bras 48168 <== NOT EXECUTED break; case IMFS_SYM_LINK: case IMFS_HARD_LINK: loc->handlers = &IMFS_link_handlers; 48156: 223c 0005 5346 movel #348998,%d1 <== NOT EXECUTED 4815c: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED 48160: 6006 bras 48168 <== NOT EXECUTED break; case IMFS_LINEAR_FILE: loc->handlers = fs_info->memfile_handlers; break; case IMFS_MEMORY_FILE: loc->handlers = fs_info->memfile_handlers; 48162: 2568 0004 0004 movel %a0@(4),%a2@(4) <== NOT EXECUTED break; } return 0; } 48168: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4816a: 4e5e unlk %fp <== NOT EXECUTED 4816c: 4280 clrl %d0 <== NOT EXECUTED 4816e: 4e75 rts 00059d8c : int IMFS_chown( rtems_filesystem_location_info_t *pathloc, /* IN */ uid_t owner, /* IN */ gid_t group /* IN */ ) { 59d8c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 59d90: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 59d94: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED IMFS_jnode_t *jnode; #if defined(RTEMS_POSIX_API) uid_t st_uid; #endif jnode = (IMFS_jnode_t *) pathloc->node_access; 59d98: 2450 moveal %a0@,%a2 <== NOT EXECUTED int IMFS_chown( rtems_filesystem_location_info_t *pathloc, /* IN */ uid_t owner, /* IN */ gid_t group /* IN */ ) { 59d9a: 362e 000e movew %fp@(14),%d3 <== NOT EXECUTED 59d9e: 382e 0012 movew %fp@(18),%d4 <== NOT EXECUTED /* * Verify I am the owner of the node or the super user. */ #if defined(RTEMS_POSIX_API) st_uid = geteuid(); 59da2: 4eb9 0005 b494 jsr 5b494 <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 59da8: 4281 clrl %d1 <== NOT EXECUTED /* * Verify I am the owner of the node or the super user. */ #if defined(RTEMS_POSIX_API) st_uid = geteuid(); 59daa: 3400 movew %d0,%d2 <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 59dac: 3200 movew %d0,%d1 <== NOT EXECUTED 59dae: 4280 clrl %d0 <== NOT EXECUTED 59db0: 302a 0038 movew %a2@(56),%d0 <== NOT EXECUTED 59db4: b081 cmpl %d1,%d0 <== NOT EXECUTED 59db6: 6714 beqs 59dcc <== NOT EXECUTED 59db8: 4a42 tstw %d2 <== NOT EXECUTED 59dba: 6710 beqs 59dcc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EPERM ); 59dbc: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 59dc2: 2040 moveal %d0,%a0 <== NOT EXECUTED 59dc4: 7001 moveq #1,%d0 <== NOT EXECUTED 59dc6: 2080 movel %d0,%a0@ <== NOT EXECUTED 59dc8: 70ff moveq #-1,%d0 <== NOT EXECUTED 59dca: 601e bras 59dea <== NOT EXECUTED #endif jnode->st_uid = owner; 59dcc: 3543 0038 movew %d3,%a2@(56) <== NOT EXECUTED jnode->st_gid = group; 59dd0: 3544 003a movew %d4,%a2@(58) <== NOT EXECUTED IMFS_update_ctime( jnode ); 59dd4: 42a7 clrl %sp@- <== NOT EXECUTED 59dd6: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 59dda: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 59de0: 508f addql #8,%sp <== NOT EXECUTED 59de2: 4280 clrl %d0 <== NOT EXECUTED 59de4: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; } 59dea: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED 59df0: 4e5e unlk %fp <== NOT EXECUTED 59df2: 4e75 rts 0004ad10 : IMFS_jnode_types_t type, const char *name, mode_t mode, const IMFS_types_union *info ) { 4ad10: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4ad14: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 4ad18: 2a6e 0008 moveal %fp@(8),%a5 <== NOT EXECUTED 4ad1c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4ad20: 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 ) 4ad24: 4a8d tstl %a5 <== NOT EXECUTED 4ad26: 6604 bnes 4ad2c <== NOT EXECUTED 4ad28: 97cb subal %a3,%a3 <== NOT EXECUTED 4ad2a: 6002 bras 4ad2e <== NOT EXECUTED parent = parent_loc->node_access; 4ad2c: 2655 moveal %a5@,%a3 <== NOT EXECUTED /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 4ad2e: 4878 005c pea 5c <== NOT EXECUTED 4ad32: 4878 0001 pea 1 <== NOT EXECUTED 4ad36: 4eb9 0004 8d9c jsr 48d9c <== NOT EXECUTED if ( !node ) 4ad3c: 508f addql #8,%sp <== NOT EXECUTED /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 4ad3e: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !node ) 4ad40: 4a80 tstl %d0 <== NOT EXECUTED 4ad42: 6700 010e beqw 4ae52 <== NOT EXECUTED * Fill in the basic information */ node->st_nlink = 1; node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 4ad46: 4878 0020 pea 20 <== NOT EXECUTED /* * Fill in the basic information */ node->st_nlink = 1; 4ad4a: 7001 moveq #1,%d0 <== NOT EXECUTED node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 4ad4c: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED /* * Fill in the basic information */ node->st_nlink = 1; 4ad50: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED node->type = type; 4ad54: 2542 0048 movel %d2,%a2@(72) <== NOT EXECUTED strncpy( node->name, name, IMFS_NAME_MAX ); 4ad58: 486a 000c pea %a2@(12) <== NOT EXECUTED 4ad5c: 4eb9 0004 d13c jsr 4d13c <== NOT EXECUTED /* * Fill in the mode and permission information for the jnode structure. */ node->st_mode = mode & ~rtems_filesystem_umask; 4ad62: 2079 0005 6764 moveal 56764 ,%a0 <== NOT EXECUTED 4ad68: 2028 0024 movel %a0@(36),%d0 <== NOT EXECUTED 4ad6c: 4680 notl %d0 <== NOT EXECUTED 4ad6e: c0ae 0014 andl %fp@(20),%d0 <== NOT EXECUTED 4ad72: 2540 002e movel %d0,%a2@(46) <== NOT EXECUTED #if defined(RTEMS_POSIX_API) node->st_uid = geteuid(); 4ad76: 4eb9 0004 8ffc jsr 48ffc <== NOT EXECUTED 4ad7c: 3540 0038 movew %d0,%a2@(56) <== NOT EXECUTED node->st_gid = getegid(); 4ad80: 4eb9 0004 8fe8 jsr 48fe8 <== NOT EXECUTED /* * Now set all the times. */ gettimeofday( &tv, 0 ); 4ad86: 42a7 clrl %sp@- <== NOT EXECUTED node->st_mode = mode & ~rtems_filesystem_umask; #if defined(RTEMS_POSIX_API) node->st_uid = geteuid(); node->st_gid = getegid(); 4ad88: 3540 003a movew %d0,%a2@(58) <== NOT EXECUTED /* * Now set all the times. */ gettimeofday( &tv, 0 ); 4ad8c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4ad90: 4eb9 0004 9010 jsr 49010 <== NOT EXECUTED node->stat_atime = (time_t) tv.tv_sec; 4ad96: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED /* * Set the type specific information */ switch (type) { 4ad9a: 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; 4ad9c: 2540 0044 movel %d0,%a2@(68) <== NOT EXECUTED /* * Set the type specific information */ switch (type) { 4ada0: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4ada6: 5381 subql #1,%d1 <== NOT EXECUTED * Now set all the times. */ gettimeofday( &tv, 0 ); node->stat_atime = (time_t) tv.tv_sec; 4ada8: 2540 003c movel %d0,%a2@(60) <== NOT EXECUTED node->stat_mtime = (time_t) tv.tv_sec; 4adac: 2540 0040 movel %d0,%a2@(64) <== NOT EXECUTED /* * Set the type specific information */ switch (type) { 4adb0: 7005 moveq #5,%d0 <== NOT EXECUTED 4adb2: b081 cmpl %d1,%d0 <== NOT EXECUTED 4adb4: 6558 bcss 4ae0e <== NOT EXECUTED 4adb6: 303b 1a08 movew %pc@(4adc0 ,%d1:l:2),%d0 <== NOT EXECUTED 4adba: 48c0 extl %d0 <== NOT EXECUTED 4adbc: 4efb 0802 jmp %pc@(4adc0 ,%d0:l) <== NOT EXECUTED 4adc0: 000c 014 <== NOT EXECUTED 4adc2: 0028 050 <== NOT EXECUTED 4adc4: 0022 042 <== NOT EXECUTED 4adc6: 0022 042 <== NOT EXECUTED 4adc8: 003c 074 <== NOT EXECUTED 4adca: 0034 064 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4adcc: 41ea 0050 lea %a2@(80),%a0 <== NOT EXECUTED 4add0: 2548 004c movel %a0,%a2@(76) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4add4: 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; 4add8: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 4addc: 2548 0054 movel %a0,%a2@(84) <== NOT EXECUTED 4ade0: 6048 bras 4ae2a <== 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; 4ade2: 2554 004c movel %a4@,%a2@(76) <== NOT EXECUTED 4ade6: 6042 bras 4ae2a <== NOT EXECUTED break; case IMFS_DEVICE: node->info.device.major = info->device.major; 4ade8: 2554 004c movel %a4@,%a2@(76) <== NOT EXECUTED node->info.device.minor = info->device.minor; 4adec: 256c 0004 0050 movel %a4@(4),%a2@(80) <== NOT EXECUTED 4adf2: 6036 bras 4ae2a <== NOT EXECUTED break; case IMFS_LINEAR_FILE: node->info.linearfile.size = 0; 4adf4: 42aa 004c clrl %a2@(76) <== NOT EXECUTED node->info.linearfile.direct = 0; 4adf8: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED case IMFS_MEMORY_FILE: node->info.file.size = 0; 4adfc: 42aa 004c clrl %a2@(76) <== NOT EXECUTED node->info.file.indirect = 0; 4ae00: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED node->info.file.doubly_indirect = 0; 4ae04: 42aa 0054 clrl %a2@(84) <== NOT EXECUTED node->info.file.triply_indirect = 0; 4ae08: 42aa 0058 clrl %a2@(88) <== NOT EXECUTED 4ae0c: 601c bras 4ae2a <== NOT EXECUTED break; default: assert(0); 4ae0e: 4879 0005 5762 pea 55762 <== NOT EXECUTED 4ae14: 4879 0005 57b0 pea 557b0 <__func__.5543> <== NOT EXECUTED 4ae1a: 4878 0074 pea 74 <== NOT EXECUTED 4ae1e: 4879 0005 5764 pea 55764 <== NOT EXECUTED 4ae24: 4eb9 0004 8ba4 jsr 48ba4 <__assert_func> <== NOT EXECUTED /* * If this node has a parent, then put it in that directory list. */ if ( parent ) { 4ae2a: 4a8b tstl %a3 <== NOT EXECUTED 4ae2c: 6724 beqs 4ae52 <== 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 ); 4ae2e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ae30: 486b 004c pea %a3@(76) <== NOT EXECUTED 4ae34: 4eb9 0004 5964 jsr 45964 <_Chain_Append> <== NOT EXECUTED rtems_chain_append( &parent->info.directory.Entries, &node->Node ); node->Parent = parent; fs_info = parent_loc->mt_entry->fs_info; 4ae3a: 206d 000c moveal %a5@(12),%a0 <== NOT EXECUTED 4ae3e: 2068 002c moveal %a0@(44),%a0 <== NOT EXECUTED node->st_ino = ++fs_info->ino_count; 4ae42: 2010 movel %a0@,%d0 <== NOT EXECUTED 4ae44: 5280 addql #1,%d0 <== NOT EXECUTED 4ae46: 2080 movel %d0,%a0@ <== NOT EXECUTED 4ae48: 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; 4ae4a: 254b 0008 movel %a3,%a2@(8) <== NOT EXECUTED fs_info = parent_loc->mt_entry->fs_info; node->st_ino = ++fs_info->ino_count; 4ae4e: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED } return node; } 4ae52: 200a movel %a2,%d0 <== NOT EXECUTED 4ae54: 4cee 3c04 ffe4 moveml %fp@(-28),%d2/%a2-%a5 <== NOT EXECUTED 4ae5a: 4e5e unlk %fp <== NOT EXECUTED 4ae5c: 4e75 rts <== NOT EXECUTED ... 000437c2 : * NOTE: Assuming the "/" directory is bad. * Not checking that the starting directory is in an IMFS is bad. */ void IMFS_dump( void ) { 437c2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED fprintf(stdout, "*************** Dump of Entire IMFS ***************\n" ); 437c6: 2079 0005 c740 moveal 5c740 <_impure_ptr>,%a0 <== NOT EXECUTED * NOTE: Assuming the "/" directory is bad. * Not checking that the starting directory is in an IMFS is bad. */ void IMFS_dump( void ) { 437cc: 2f0a movel %a2,%sp@- <== NOT EXECUTED fprintf(stdout, "*************** Dump of Entire IMFS ***************\n" ); 437ce: 45f9 0004 f776 lea 4f776 ,%a2 <== NOT EXECUTED 437d4: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 437d8: 4879 0005 a728 pea 5a728 <== NOT EXECUTED 437de: 4e92 jsr %a2@ <== NOT EXECUTED fprintf(stdout, "/\n" ); 437e0: 2079 0005 c740 moveal 5c740 <_impure_ptr>,%a0 <== NOT EXECUTED 437e6: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 437ea: 4879 0005 a75d pea 5a75d <== NOT EXECUTED 437f0: 4e92 jsr %a2@ <== NOT EXECUTED IMFS_dump_directory( rtems_filesystem_root.node_access, 0 ); 437f2: 2079 0005 c26c moveal 5c26c ,%a0 <== NOT EXECUTED 437f8: 42a7 clrl %sp@- <== NOT EXECUTED 437fa: 2f28 0014 movel %a0@(20),%sp@- <== NOT EXECUTED 437fe: 4eb9 0004 36fc jsr 436fc <== NOT EXECUTED fprintf(stdout, "*************** End of Dump ***************\n" ); 43804: 2079 0005 c740 moveal 5c740 <_impure_ptr>,%a0 <== NOT EXECUTED 4380a: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4380e: 4879 0005 a760 pea 5a760 <== NOT EXECUTED 43814: 4e92 jsr %a2@ <== NOT EXECUTED } 43816: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED void IMFS_dump( void ) { fprintf(stdout, "*************** Dump of Entire IMFS ***************\n" ); fprintf(stdout, "/\n" ); IMFS_dump_directory( rtems_filesystem_root.node_access, 0 ); fprintf(stdout, "*************** End of Dump ***************\n" ); 4381a: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED } 43820: 4e5e unlk %fp <== NOT EXECUTED 43822: 4e75 rts 000436fc : void IMFS_dump_directory( IMFS_jnode_t *the_directory, int level ) { 436fc: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 43700: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== NOT EXECUTED 43704: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 43708: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED rtems_chain_node *the_node; rtems_chain_control *the_chain; IMFS_jnode_t *the_jnode; int i; assert( the_directory ); 4370c: 4a88 tstl %a0 <== NOT EXECUTED 4370e: 6612 bnes 43722 <== NOT EXECUTED 43710: 4879 0005 a6e4 pea 5a6e4 <== NOT EXECUTED 43716: 4879 0005 a7b2 pea 5a7b2 <__func__.6243> <== NOT EXECUTED 4371c: 4878 007f pea 7f <== NOT EXECUTED 43720: 6014 bras 43736 <== NOT EXECUTED assert( level >= 0 ); 43722: 4a83 tstl %d3 <== NOT EXECUTED 43724: 6c1c bges 43742 <== NOT EXECUTED 43726: 4879 0005 a6f2 pea 5a6f2 <== NOT EXECUTED 4372c: 4879 0005 a7b2 pea 5a7b2 <__func__.6243> <== NOT EXECUTED 43732: 4878 0081 pea 81 <== NOT EXECUTED 43736: 4879 0005 a648 pea 5a648 <== NOT EXECUTED 4373c: 4eb9 0004 3da4 jsr 43da4 <__assert_func> <== NOT EXECUTED assert( the_directory->type == IMFS_DIRECTORY ); 43742: 7001 moveq #1,%d0 <== NOT EXECUTED 43744: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 43748: 6712 beqs 4375c <== NOT EXECUTED 4374a: 4879 0005 a6fd pea 5a6fd <== NOT EXECUTED 43750: 4879 0005 a7b2 pea 5a7b2 <__func__.6243> <== NOT EXECUTED 43756: 4878 0083 pea 83 <== NOT EXECUTED 4375a: 60da bras 43736 <== NOT EXECUTED the_chain = &the_directory->info.directory.Entries; for ( the_node = the_chain->first; 4375c: 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; 43760: 2a08 movel %a0,%d5 <== NOT EXECUTED for ( i=0 ; i<=level ; i++ ) fprintf(stdout, "...." ); IMFS_print_jnode( the_jnode ); if ( the_jnode->type == IMFS_DIRECTORY ) IMFS_dump_directory( the_jnode, level + 1 ); 43762: 2803 movel %d3,%d4 <== NOT EXECUTED 43764: 0685 0000 0050 addil #80,%d5 <== NOT EXECUTED the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; for ( i=0 ; i<=level ; i++ ) fprintf(stdout, "...." ); 4376a: 4bf9 0004 f776 lea 4f776 ,%a5 <== NOT EXECUTED IMFS_print_jnode( the_jnode ); 43770: 49f9 0004 35a2 lea 435a2 ,%a4 <== NOT EXECUTED if ( the_jnode->type == IMFS_DIRECTORY ) IMFS_dump_directory( the_jnode, level + 1 ); 43776: 5284 addql #1,%d4 <== NOT EXECUTED 43778: 47f9 0004 36fc lea 436fc ,%a3 <== NOT EXECUTED 4377e: 6034 bras 437b4 <== NOT EXECUTED for ( the_node = the_chain->first; !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; 43780: 4282 clrl %d2 <== NOT EXECUTED for ( i=0 ; i<=level ; i++ ) fprintf(stdout, "...." ); 43782: 2079 0005 c740 moveal 5c740 <_impure_ptr>,%a0 <== NOT EXECUTED 43788: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; for ( i=0 ; i<=level ; i++ ) 4378c: 5282 addql #1,%d2 <== NOT EXECUTED fprintf(stdout, "...." ); 4378e: 4879 0005 a723 pea 5a723 <== NOT EXECUTED 43794: 4e95 jsr %a5@ <== NOT EXECUTED !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; for ( i=0 ; i<=level ; i++ ) 43796: 508f addql #8,%sp <== NOT EXECUTED 43798: b682 cmpl %d2,%d3 <== NOT EXECUTED 4379a: 6ce6 bges 43782 <== NOT EXECUTED fprintf(stdout, "...." ); IMFS_print_jnode( the_jnode ); 4379c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4379e: 4e94 jsr %a4@ <== NOT EXECUTED if ( the_jnode->type == IMFS_DIRECTORY ) 437a0: 588f addql #4,%sp <== NOT EXECUTED 437a2: 7001 moveq #1,%d0 <== NOT EXECUTED 437a4: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 437a8: 6608 bnes 437b2 <== NOT EXECUTED IMFS_dump_directory( the_jnode, level + 1 ); 437aa: 2f04 movel %d4,%sp@- <== NOT EXECUTED 437ac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 437ae: 4e93 jsr %a3@ <== NOT EXECUTED 437b0: 508f addql #8,%sp <== NOT EXECUTED the_chain = &the_directory->info.directory.Entries; for ( the_node = the_chain->first; !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { 437b2: 2452 moveal %a2@,%a2 <== NOT EXECUTED assert( the_directory->type == IMFS_DIRECTORY ); the_chain = &the_directory->info.directory.Entries; for ( the_node = the_chain->first; !rtems_chain_is_tail( the_chain, the_node ); 437b4: ba8a cmpl %a2,%d5 <== NOT EXECUTED 437b6: 66c8 bnes 43780 <== NOT EXECUTED fprintf(stdout, "...." ); IMFS_print_jnode( the_jnode ); if ( the_jnode->type == IMFS_DIRECTORY ) IMFS_dump_directory( the_jnode, level + 1 ); } } 437b8: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 437be: 4e5e unlk %fp <== NOT EXECUTED 437c0: 4e75 rts 000482f2 : int IMFS_eval_path( const char *pathname, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 482f2: 4e56 ffa0 linkw %fp,#-96 <== NOT EXECUTED 482f6: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 482fa: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 482fe: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 48302: 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; 48306: 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 ); 48308: 2c0e movel %fp,%d6 <== NOT EXECUTED /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 4830a: 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 ); 4830c: 0686 ffff ffcb addil #-53,%d6 <== 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 ); 48312: 2e3c 0004 8234 movel #295476,%d7 <== NOT EXECUTED * If we are at a link follow it. */ if ( node->type == IMFS_HARD_LINK ) { IMFS_evaluate_hard_link( pathloc, 0 ); 48318: 4bf9 0004 81d8 lea 481d8 ,%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 ); 4831e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48322: 2f06 movel %d6,%sp@- <== NOT EXECUTED 48324: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 48328: 4eb9 0004 882c jsr 4882c <== NOT EXECUTED i += len; 4832e: 282e fffc movel %fp@(-4),%d4 <== 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 ); 48332: 2400 movel %d0,%d2 <== NOT EXECUTED i += len; if ( !pathloc->node_access ) 48334: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4833a: 4a93 tstl %a3@ <== NOT EXECUTED 4833c: 6700 00e8 beqw 48426 <== 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 ) 48340: 4a80 tstl %d0 <== NOT EXECUTED 48342: 672c beqs 48370 <== NOT EXECUTED if ( node->type == IMFS_DIRECTORY ) 48344: 7001 moveq #1,%d0 <== NOT EXECUTED 48346: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 4834a: 6624 bnes 48370 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) 4834c: 4878 0001 pea 1 <== NOT EXECUTED 48350: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48352: 4eb9 0004 8170 jsr 48170 <== NOT EXECUTED 48358: 508f addql #8,%sp <== NOT EXECUTED 4835a: 4a80 tstl %d0 <== NOT EXECUTED 4835c: 6612 bnes 48370 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 4835e: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48364: 2040 moveal %d0,%a0 <== NOT EXECUTED 48366: 700d moveq #13,%d0 <== NOT EXECUTED 48368: 2080 movel %d0,%a0@ <== NOT EXECUTED 4836a: 74ff moveq #-1,%d2 <== NOT EXECUTED 4836c: 6000 0164 braw 484d2 <== NOT EXECUTED node = pathloc->node_access; 48370: 2453 moveal %a3@,%a2 <== NOT EXECUTED */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], token, &len ); i += len; 48372: d684 addl %d4,%d3 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; switch( type ) { 48374: 7203 moveq #3,%d1 <== NOT EXECUTED 48376: b282 cmpl %d2,%d1 <== NOT EXECUTED 48378: 6742 beqs 483bc <== NOT EXECUTED 4837a: 7004 moveq #4,%d0 <== NOT EXECUTED 4837c: b082 cmpl %d2,%d0 <== NOT EXECUTED 4837e: 6700 00bc beqw 4843c <== NOT EXECUTED 48382: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 48386: b282 cmpl %d2,%d1 <== NOT EXECUTED 48388: 6600 00c2 bnew 4844c <== 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 ) 4838c: 2079 0005 6764 moveal 56764 ,%a0 <== NOT EXECUTED 48392: b5e8 0014 cmpal %a0@(20),%a2 <== NOT EXECUTED 48396: 6786 beqs 4831e <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == 48398: 206b 000c moveal %a3@(12),%a0 <== NOT EXECUTED 4839c: b5e8 0018 cmpal %a0@(24),%a2 <== NOT EXECUTED 483a0: 6614 bnes 483b6 <== 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; 483a2: 4878 0010 pea 10 <== NOT EXECUTED 483a6: 240e movel %fp,%d2 <== NOT EXECUTED 483a8: 4868 0008 pea %a0@(8) <== NOT EXECUTED 483ac: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED 483b2: 6000 00c4 braw 48478 <== NOT EXECUTED *pathloc = newloc; return (*pathloc->ops->evalpath_h)(&(pathname[i-len]),flags,pathloc); } } else { if ( !node->Parent ) 483b6: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 483ba: 6066 bras 48422 <== NOT EXECUTED case IMFS_NAME: /* * If we are at a link follow it. */ if ( node->type == IMFS_HARD_LINK ) { 483bc: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 483c0: 7203 moveq #3,%d1 <== NOT EXECUTED 483c2: b280 cmpl %d0,%d1 <== NOT EXECUTED 483c4: 6610 bnes 483d6 <== NOT EXECUTED IMFS_evaluate_hard_link( pathloc, 0 ); 483c6: 42a7 clrl %sp@- <== NOT EXECUTED 483c8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 483ca: 4e95 jsr %a5@ <== NOT EXECUTED node = pathloc->node_access; 483cc: 2453 moveal %a3@,%a2 <== NOT EXECUTED if ( !node ) 483ce: 508f addql #8,%sp <== NOT EXECUTED 483d0: 4a8a tstl %a2 <== NOT EXECUTED 483d2: 6620 bnes 483f4 <== NOT EXECUTED 483d4: 6026 bras 483fc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); } else if ( node->type == IMFS_SYM_LINK ) { 483d6: 7204 moveq #4,%d1 <== NOT EXECUTED 483d8: b280 cmpl %d0,%d1 <== NOT EXECUTED 483da: 6618 bnes 483f4 <== NOT EXECUTED result = IMFS_evaluate_sym_link( pathloc, 0 ); 483dc: 42a7 clrl %sp@- <== NOT EXECUTED 483de: 2047 moveal %d7,%a0 <== NOT EXECUTED 483e0: 2f0b movel %a3,%sp@- <== NOT EXECUTED 483e2: 4e90 jsr %a0@ <== NOT EXECUTED 483e4: 2400 movel %d0,%d2 <== NOT EXECUTED node = pathloc->node_access; 483e6: 2013 movel %a3@,%d0 <== NOT EXECUTED if ( result == -1 ) 483e8: 508f addql #8,%sp <== NOT EXECUTED 483ea: 72ff moveq #-1,%d1 <== NOT EXECUTED 483ec: b282 cmpl %d2,%d1 <== NOT EXECUTED 483ee: 6700 00e2 beqw 484d2 <== NOT EXECUTED } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_sym_link( pathloc, 0 ); node = pathloc->node_access; 483f2: 2440 moveal %d0,%a2 <== NOT EXECUTED /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 483f4: 7001 moveq #1,%d0 <== NOT EXECUTED 483f6: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 483fa: 6710 beqs 4840c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 483fc: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48402: 7e14 moveq #20,%d7 <== NOT EXECUTED 48404: 2040 moveal %d0,%a0 <== NOT EXECUTED 48406: 2087 movel %d7,%a0@ <== NOT EXECUTED 48408: 6000 ff60 braw 4836a <== 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 ) { 4840c: 206a 0058 moveal %a2@(88),%a0 <== NOT EXECUTED 48410: 4a88 tstl %a0 <== NOT EXECUTED 48412: 6654 bnes 48468 <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48414: 2f06 movel %d6,%sp@- <== NOT EXECUTED 48416: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48418: 4eb9 0004 8798 jsr 48798 <== NOT EXECUTED if ( !node ) 4841e: 508f addql #8,%sp <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48420: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !node ) 48422: 4a8a tstl %a2 <== NOT EXECUTED 48424: 6610 bnes 48436 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOENT ); 48426: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 4842c: 7c02 moveq #2,%d6 <== NOT EXECUTED 4842e: 2040 moveal %d0,%a0 <== NOT EXECUTED 48430: 2086 movel %d6,%a0@ <== NOT EXECUTED 48432: 6000 ff36 braw 4836a <== NOT EXECUTED /* * Set the node access to the point we have found. */ pathloc->node_access = node; 48436: 268a movel %a2,%a3@ <== NOT EXECUTED 48438: 6000 fee4 braw 4831e <== NOT EXECUTED case IMFS_NO_MORE_PATH: case IMFS_CURRENT_DIR: break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 4843c: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48442: 7a5b moveq #91,%d5 <== NOT EXECUTED 48444: 2040 moveal %d0,%a0 <== NOT EXECUTED 48446: 2085 movel %d5,%a0@ <== NOT EXECUTED 48448: 6000 ff20 braw 4836a <== NOT EXECUTED /* * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { 4844c: 4a82 tstl %d2 <== NOT EXECUTED 4844e: 6708 beqs 48458 <== NOT EXECUTED 48450: 7204 moveq #4,%d1 <== NOT EXECUTED 48452: b282 cmpl %d2,%d1 <== NOT EXECUTED 48454: 6600 fec8 bnew 4831e <== 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 ) { 48458: 7001 moveq #1,%d0 <== NOT EXECUTED 4845a: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 4845e: 664a bnes 484aa <== NOT EXECUTED if ( node->info.directory.mt_fs != NULL ) { 48460: 206a 0058 moveal %a2@(88),%a0 <== NOT EXECUTED 48464: 4a88 tstl %a0 <== NOT EXECUTED 48466: 6742 beqs 484aa <== NOT EXECUTED newloc = node->info.directory.mt_fs->mt_fs_root; 48468: 4878 0010 pea 10 <== NOT EXECUTED 4846c: 240e movel %fp,%d2 <== NOT EXECUTED 4846e: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED 48474: 4868 0018 pea %a0@(24) <== NOT EXECUTED 48478: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4847a: 45f9 0004 bf4c lea 4bf4c ,%a2 <== NOT EXECUTED 48480: 4e92 jsr %a2@ <== NOT EXECUTED *pathloc = newloc; 48482: 4878 0010 pea 10 <== NOT EXECUTED 48486: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48488: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4848a: 4e92 jsr %a2@ <== NOT EXECUTED return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc ); 4848c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4848e: 96ae fffc subl %fp@(-4),%d3 <== NOT EXECUTED 48492: 2f05 movel %d5,%sp@- <== NOT EXECUTED 48494: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 48498: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED 4849c: 2050 moveal %a0@,%a0 <== NOT EXECUTED 4849e: 4e90 jsr %a0@ <== NOT EXECUTED 484a0: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 484a6: 2400 movel %d0,%d2 <== NOT EXECUTED 484a8: 6028 bras 484d2 <== NOT EXECUTED } else { result = IMFS_Set_handlers( pathloc ); } } else { result = IMFS_Set_handlers( pathloc ); 484aa: 2f0b movel %a3,%sp@- <== NOT EXECUTED 484ac: 4eb9 0004 810c jsr 4810c <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( pathloc, flags ) ) 484b2: 2e85 movel %d5,%sp@ <== NOT EXECUTED return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc ); } else { result = IMFS_Set_handlers( pathloc ); } } else { result = IMFS_Set_handlers( pathloc ); 484b4: 2400 movel %d0,%d2 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( pathloc, flags ) ) 484b6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 484b8: 4eb9 0004 8170 jsr 48170 <== NOT EXECUTED 484be: 508f addql #8,%sp <== NOT EXECUTED 484c0: 4a80 tstl %d0 <== NOT EXECUTED 484c2: 660e bnes 484d2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 484c4: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 484ca: 780d moveq #13,%d4 <== NOT EXECUTED 484cc: 2040 moveal %d0,%a0 <== NOT EXECUTED 484ce: 74ff moveq #-1,%d2 <== NOT EXECUTED 484d0: 2084 movel %d4,%a0@ <== NOT EXECUTED return result; } 484d2: 2002 movel %d2,%d0 <== NOT EXECUTED 484d4: 4cee 3cfc ffa0 moveml %fp@(-96),%d2-%d7/%a2-%a5 <== NOT EXECUTED 484da: 4e5e unlk %fp <== NOT EXECUTED 484dc: 4e75 rts 00048576 : int IMFS_evaluate_for_make( const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) { 48576: 4e56 ffa0 linkw %fp,#-96 <== NOT EXECUTED 4857a: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 4857e: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 48582: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 48586: 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; 4858a: 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 ); 4858c: 2c0e movel %fp,%d6 <== NOT EXECUTED /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 4858e: 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 ); 48590: 0686 ffff ffcb addil #-53,%d6 <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48596: 2e3c 0004 8798 movel #296856,%d7 <== NOT EXECUTED if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_link( pathloc, 0 ); 4859c: 2a3c 0004 84de movel #296158,%d5 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], token, &len ); 485a2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 485a6: 2f06 movel %d6,%sp@- <== NOT EXECUTED 485a8: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 485ac: 4eb9 0004 882c jsr 4882c <== NOT EXECUTED i += len; 485b2: 282e fffc movel %fp@(-4),%d4 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], token, &len ); 485b6: 2400 movel %d0,%d2 <== NOT EXECUTED i += len; if ( !pathloc->node_access ) 485b8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 485be: 4a93 tstl %a3@ <== NOT EXECUTED 485c0: 6700 0166 beqw 48728 <== NOT EXECUTED /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) 485c4: 4a80 tstl %d0 <== NOT EXECUTED 485c6: 672c beqs 485f4 <== NOT EXECUTED if ( node->type == IMFS_DIRECTORY ) 485c8: 7001 moveq #1,%d0 <== NOT EXECUTED 485ca: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 485ce: 6624 bnes 485f4 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) 485d0: 4878 0001 pea 1 <== NOT EXECUTED 485d4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 485d6: 4eb9 0004 8170 jsr 48170 <== NOT EXECUTED 485dc: 508f addql #8,%sp <== NOT EXECUTED 485de: 4a80 tstl %d0 <== NOT EXECUTED 485e0: 6612 bnes 485f4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 485e2: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 485e8: 2040 moveal %d0,%a0 <== NOT EXECUTED 485ea: 700d moveq #13,%d0 <== NOT EXECUTED 485ec: 2080 movel %d0,%a0@ <== NOT EXECUTED 485ee: 74ff moveq #-1,%d2 <== NOT EXECUTED 485f0: 6000 0198 braw 4878a <== NOT EXECUTED node = pathloc->node_access; 485f4: 2453 moveal %a3@,%a2 <== NOT EXECUTED */ while( !done ) { type = IMFS_get_token( &path[i], token, &len ); i += len; 485f6: d684 addl %d4,%d3 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; switch( type ) { 485f8: 7202 moveq #2,%d1 <== NOT EXECUTED 485fa: b282 cmpl %d2,%d1 <== NOT EXECUTED 485fc: 671a beqs 48618 <== NOT EXECUTED 485fe: 6508 bcss 48608 <== NOT EXECUTED 48600: 4a82 tstl %d2 <== NOT EXECUTED 48602: 6700 00e6 beqw 486ea <== NOT EXECUTED 48606: 609a bras 485a2 <== NOT EXECUTED 48608: 7003 moveq #3,%d0 <== NOT EXECUTED 4860a: b082 cmpl %d2,%d0 <== NOT EXECUTED 4860c: 6742 beqs 48650 <== NOT EXECUTED 4860e: 7204 moveq #4,%d1 <== NOT EXECUTED 48610: b282 cmpl %d2,%d1 <== NOT EXECUTED 48612: 668e bnes 485a2 <== NOT EXECUTED 48614: 6000 00e4 braw 486fa <== 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 ) 48618: 2079 0005 6764 moveal 56764 ,%a0 <== NOT EXECUTED 4861e: b5e8 0014 cmpal %a0@(20),%a2 <== NOT EXECUTED 48622: 6700 ff7e beqw 485a2 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access){ 48626: 206b 000c moveal %a3@(12),%a0 <== NOT EXECUTED 4862a: b5e8 0018 cmpal %a0@(24),%a2 <== NOT EXECUTED 4862e: 6612 bnes 48642 <== NOT EXECUTED if ( pathloc->node_access == rtems_filesystem_root.node_access ) { break; } else { newloc = pathloc->mt_entry->mt_point_node; 48630: 4878 0010 pea 10 <== NOT EXECUTED 48634: 240e movel %fp,%d2 <== NOT EXECUTED 48636: 4868 0008 pea %a0@(8) <== NOT EXECUTED 4863a: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED 48640: 605c bras 4869e <== NOT EXECUTED *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); } } else { if ( !node->Parent ) 48642: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 48646: 4a8a tstl %a2 <== NOT EXECUTED 48648: 6600 009a bnew 486e4 <== NOT EXECUTED 4864c: 6000 00da braw 48728 <== NOT EXECUTED pathloc->node_access = node; break; case IMFS_NAME: if ( node->type == IMFS_HARD_LINK ) { 48650: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 48654: 7203 moveq #3,%d1 <== NOT EXECUTED 48656: b280 cmpl %d0,%d1 <== NOT EXECUTED 48658: 6706 beqs 48660 <== NOT EXECUTED result = IMFS_evaluate_link( pathloc, 0 ); if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { 4865a: 7204 moveq #4,%d1 <== NOT EXECUTED 4865c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4865e: 6614 bnes 48674 <== NOT EXECUTED result = IMFS_evaluate_link( pathloc, 0 ); 48660: 42a7 clrl %sp@- <== NOT EXECUTED 48662: 2045 moveal %d5,%a0 <== NOT EXECUTED 48664: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48666: 4e90 jsr %a0@ <== NOT EXECUTED 48668: 2400 movel %d0,%d2 <== NOT EXECUTED if ( result == -1 ) 4866a: 508f addql #8,%sp <== NOT EXECUTED 4866c: 70ff moveq #-1,%d0 <== NOT EXECUTED 4866e: b082 cmpl %d2,%d0 <== NOT EXECUTED 48670: 6700 0118 beqw 4878a <== NOT EXECUTED return -1; } node = pathloc->node_access; 48674: 2053 moveal %a3@,%a0 <== NOT EXECUTED if ( !node ) 48676: 4a88 tstl %a0 <== NOT EXECUTED 48678: 6700 00e0 beqw 4875a <== NOT EXECUTED /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 4867c: 7201 moveq #1,%d1 <== NOT EXECUTED 4867e: b2a8 0048 cmpl %a0@(72),%d1 <== NOT EXECUTED 48682: 6600 00d6 bnew 4875a <== 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 ) { 48686: 2268 0058 moveal %a0@(88),%a1 <== NOT EXECUTED 4868a: 4a89 tstl %a1 <== NOT EXECUTED 4868c: 6746 beqs 486d4 <== NOT EXECUTED newloc = node->info.directory.mt_fs->mt_fs_root; 4868e: 4878 0010 pea 10 <== NOT EXECUTED 48692: 240e movel %fp,%d2 <== NOT EXECUTED 48694: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED 4869a: 4869 0018 pea %a1@(24) <== NOT EXECUTED 4869e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 486a0: 45f9 0004 bf4c lea 4bf4c ,%a2 <== NOT EXECUTED 486a6: 4e92 jsr %a2@ <== NOT EXECUTED *pathloc = newloc; 486a8: 4878 0010 pea 10 <== NOT EXECUTED 486ac: 2f02 movel %d2,%sp@- <== NOT EXECUTED 486ae: 2f0b movel %a3,%sp@- <== NOT EXECUTED 486b0: 4e92 jsr %a2@ <== NOT EXECUTED return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 486b2: 2f0d movel %a5,%sp@- <== NOT EXECUTED 486b4: 96ae fffc subl %fp@(-4),%d3 <== NOT EXECUTED 486b8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 486ba: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 486be: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED 486c2: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 486c6: 4e90 jsr %a0@ <== NOT EXECUTED 486c8: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 486ce: 2400 movel %d0,%d2 <== NOT EXECUTED 486d0: 6000 00b8 braw 4878a <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 486d4: 2f06 movel %d6,%sp@- <== NOT EXECUTED 486d6: 2f08 movel %a0,%sp@- <== NOT EXECUTED 486d8: 2047 moveal %d7,%a0 <== NOT EXECUTED 486da: 4e90 jsr %a0@ <== NOT EXECUTED /* * If there is no node we have found the name of the node we * wish to create. */ if ( ! node ) 486dc: 508f addql #8,%sp <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 486de: 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 ) 486e0: 4a80 tstl %d0 <== NOT EXECUTED 486e2: 6726 beqs 4870a <== NOT EXECUTED done = true; else pathloc->node_access = node; 486e4: 268a movel %a2,%a3@ <== NOT EXECUTED 486e6: 6000 feba braw 485a2 <== NOT EXECUTED break; case IMFS_NO_MORE_PATH: rtems_set_errno_and_return_minus_one( EEXIST ); 486ea: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 486f0: 7e11 moveq #17,%d7 <== NOT EXECUTED 486f2: 2040 moveal %d0,%a0 <== NOT EXECUTED 486f4: 2087 movel %d7,%a0@ <== NOT EXECUTED 486f6: 6000 fef6 braw 485ee <== NOT EXECUTED break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 486fa: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48700: 7c5b moveq #91,%d6 <== NOT EXECUTED 48702: 2040 moveal %d0,%a0 <== NOT EXECUTED 48704: 2086 movel %d6,%a0@ <== NOT EXECUTED 48706: 6000 fee6 braw 485ee <== NOT EXECUTED case IMFS_CURRENT_DIR: break; } } *name = &path[ i - len ]; 4870a: 2003 movel %d3,%d0 <== NOT EXECUTED 4870c: 90ae fffc subl %fp@(-4),%d0 <== NOT EXECUTED 48710: d08c addl %a4,%d0 <== NOT EXECUTED 48712: 2a80 movel %d0,%a5@ <== NOT EXECUTED 48714: 41f4 3800 lea %a4@(00000000,%d3:l),%a0 <== NOT EXECUTED 48718: 6020 bras 4873a <== 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 ] ) ) 4871a: 702f moveq #47,%d0 <== NOT EXECUTED 4871c: b081 cmpl %d1,%d0 <== NOT EXECUTED 4871e: 6718 beqs 48738 <== NOT EXECUTED 48720: 103c 005c moveb #92,%d0 <== NOT EXECUTED 48724: b081 cmpl %d1,%d0 <== NOT EXECUTED 48726: 6710 beqs 48738 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOENT ); 48728: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 4872e: 7a02 moveq #2,%d5 <== NOT EXECUTED 48730: 2040 moveal %d0,%a0 <== NOT EXECUTED 48732: 2085 movel %d5,%a0@ <== NOT EXECUTED 48734: 6000 feb8 braw 485ee <== NOT EXECUTED 48738: 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++) { 4873a: 1010 moveb %a0@,%d0 <== NOT EXECUTED if ( !IMFS_is_separator( path[ i ] ) ) 4873c: 1200 moveb %d0,%d1 <== NOT EXECUTED 4873e: 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++) { 48740: 4a00 tstb %d0 <== NOT EXECUTED 48742: 66d6 bnes 4871a <== NOT EXECUTED /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 48744: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48746: 4eb9 0004 810c jsr 4810c <== NOT EXECUTED /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) 4874c: 2053 moveal %a3@,%a0 <== NOT EXECUTED /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 4874e: 2400 movel %d0,%d2 <== NOT EXECUTED /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) 48750: 588f addql #4,%sp <== NOT EXECUTED 48752: 7201 moveq #1,%d1 <== NOT EXECUTED 48754: b2a8 0048 cmpl %a0@(72),%d1 <== NOT EXECUTED 48758: 6710 beqs 4876a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 4875a: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48760: 7814 moveq #20,%d4 <== NOT EXECUTED 48762: 2040 moveal %d0,%a0 <== NOT EXECUTED 48764: 2084 movel %d4,%a0@ <== NOT EXECUTED 48766: 6000 fe86 braw 485ee <== NOT EXECUTED /* * We must have Write and execute permission on the returned node. */ if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) 4876a: 4878 0003 pea 3 <== NOT EXECUTED 4876e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48770: 4eb9 0004 8170 jsr 48170 <== NOT EXECUTED 48776: 508f addql #8,%sp <== NOT EXECUTED 48778: 4a80 tstl %d0 <== NOT EXECUTED 4877a: 660e bnes 4878a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 4877c: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48782: 760d moveq #13,%d3 <== NOT EXECUTED 48784: 2040 moveal %d0,%a0 <== NOT EXECUTED 48786: 74ff moveq #-1,%d2 <== NOT EXECUTED 48788: 2083 movel %d3,%a0@ <== NOT EXECUTED return result; } 4878a: 2002 movel %d2,%d0 <== NOT EXECUTED 4878c: 4cee 3cfc ffa0 moveml %fp@(-96),%d2-%d7/%a2-%a5 <== NOT EXECUTED 48792: 4e5e unlk %fp <== NOT EXECUTED 48794: 4e75 rts <== NOT EXECUTED ... 000481d8 : int IMFS_evaluate_hard_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 481d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 481dc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 481de: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_jnode_t *jnode = node->node_access; 481e2: 2052 moveal %a2@,%a0 <== NOT EXECUTED /* * Check for things that should never happen. */ if ( jnode->type != IMFS_HARD_LINK ) 481e4: 7003 moveq #3,%d0 <== NOT EXECUTED 481e6: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 481ea: 670c beqs 481f8 <== NOT EXECUTED rtems_fatal_error_occurred (0xABCD0000); 481ec: 2f3c abcd 0000 movel #-1412628480,%sp@- <== NOT EXECUTED 481f2: 4eb9 0004 5580 jsr 45580 <== NOT EXECUTED /* * Set the hard link value and the handlers. */ node->node_access = jnode->info.hard_link.link_node; 481f8: 24a8 004c movel %a0@(76),%a2@ <== NOT EXECUTED IMFS_Set_handlers( node ); 481fc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 481fe: 4eb9 0004 810c jsr 4810c <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 48204: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48208: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4820a: 4eb9 0004 8170 jsr 48170 <== NOT EXECUTED 48210: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48216: 4a80 tstl %d0 <== NOT EXECUTED 48218: 6704 beqs 4821e <== NOT EXECUTED 4821a: 4280 clrl %d0 <== NOT EXECUTED 4821c: 600e bras 4822c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 4821e: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48224: 2040 moveal %d0,%a0 <== NOT EXECUTED 48226: 720d moveq #13,%d1 <== NOT EXECUTED 48228: 70ff moveq #-1,%d0 <== NOT EXECUTED 4822a: 2081 movel %d1,%a0@ <== NOT EXECUTED return result; } 4822c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48230: 4e5e unlk %fp <== NOT EXECUTED 48232: 4e75 rts 000484de : int IMFS_evaluate_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 484de: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 484e2: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 484e6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 484ea: 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 ); 484ee: 4bf9 0004 8234 lea 48234 ,%a5 <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) result = IMFS_evaluate_hard_link( node, flags ); 484f4: 49f9 0004 81d8 lea 481d8 ,%a4 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 484fa: 2079 0005 6764 moveal 56764 ,%a0 <== NOT EXECUTED 48500: 3028 0028 movew %a0@(40),%d0 <== NOT EXECUTED 48504: 5280 addql #1,%d0 <== NOT EXECUTED { IMFS_jnode_t *jnode; int result = 0; do { jnode = node->node_access; 48506: 2652 moveal %a2@,%a3 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 48508: 3140 0028 movew %d0,%a0@(40) <== NOT EXECUTED if ( rtems_filesystem_link_counts > MAXSYMLINK ) { 4850c: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 48512: 7205 moveq #5,%d1 <== NOT EXECUTED 48514: b280 cmpl %d0,%d1 <== NOT EXECUTED 48516: 6416 bccs 4852e <== NOT EXECUTED rtems_filesystem_link_counts = 0; 48518: 4240 clrw %d0 <== NOT EXECUTED 4851a: 3140 0028 movew %d0,%a0@(40) <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ELOOP ); 4851e: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48524: 725c moveq #92,%d1 <== NOT EXECUTED 48526: 2040 moveal %d0,%a0 <== NOT EXECUTED 48528: 2081 movel %d1,%a0@ <== NOT EXECUTED 4852a: 70ff moveq #-1,%d0 <== NOT EXECUTED 4852c: 603e bras 4856c <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) 4852e: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 48532: 7203 moveq #3,%d1 <== NOT EXECUTED 48534: b280 cmpl %d0,%d1 <== NOT EXECUTED 48536: 6608 bnes 48540 <== NOT EXECUTED result = IMFS_evaluate_hard_link( node, flags ); 48538: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4853a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4853c: 4e94 jsr %a4@ <== NOT EXECUTED 4853e: 600c bras 4854c <== NOT EXECUTED else if (jnode->type == IMFS_SYM_LINK ) 48540: 7204 moveq #4,%d1 <== NOT EXECUTED 48542: b280 cmpl %d0,%d1 <== NOT EXECUTED 48544: 660c bnes 48552 <== NOT EXECUTED result = IMFS_evaluate_sym_link( node, flags ); 48546: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48548: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4854a: 4e95 jsr %a5@ <== NOT EXECUTED 4854c: 508f addql #8,%sp <== NOT EXECUTED } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || ( jnode->type == IMFS_HARD_LINK ) ) ); 4854e: 4a80 tstl %d0 <== NOT EXECUTED 48550: 660e bnes 48560 <== NOT EXECUTED 48552: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 48556: 7201 moveq #1,%d1 <== NOT EXECUTED 48558: 5780 subql #3,%d0 <== NOT EXECUTED 4855a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4855c: 649c bccs 484fa <== NOT EXECUTED 4855e: 4280 clrl %d0 <== NOT EXECUTED /* * Clear link counter. */ rtems_filesystem_link_counts = 0; 48560: 2079 0005 6764 moveal 56764 ,%a0 <== NOT EXECUTED 48566: 4241 clrw %d1 <== NOT EXECUTED 48568: 3141 0028 movew %d1,%a0@(40) <== NOT EXECUTED return result; } 4856c: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 48572: 4e5e unlk %fp <== NOT EXECUTED 48574: 4e75 rts 00048170 : int IMFS_evaluate_permission( rtems_filesystem_location_info_t *node, int flags ) { 48170: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 48174: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48178: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED if ( !rtems_libio_is_valid_perms( flags ) ) { assert( 0 ); rtems_set_errno_and_return_minus_one( EIO ); } jnode = node->node_access; 4817c: 2450 moveal %a0@,%a2 <== NOT EXECUTED int IMFS_evaluate_permission( rtems_filesystem_location_info_t *node, int flags ) { 4817e: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED } jnode = node->node_access; #if defined(RTEMS_POSIX_API) st_uid = geteuid(); 48182: 4eb9 0004 8ffc jsr 48ffc <== NOT EXECUTED 48188: 3400 movew %d0,%d2 <== NOT EXECUTED st_gid = getegid(); 4818a: 4eb9 0004 8fe8 jsr 48fe8 <== NOT EXECUTED 48190: 3200 movew %d0,%d1 <== NOT EXECUTED * Check if I am owner or a group member or someone else. */ flags_to_test = flags; if ( st_uid == jnode->st_uid ) 48192: 4280 clrl %d0 <== NOT EXECUTED 48194: 0282 0000 ffff andil #65535,%d2 <== NOT EXECUTED 4819a: 302a 0038 movew %a2@(56),%d0 <== NOT EXECUTED 4819e: b082 cmpl %d2,%d0 <== NOT EXECUTED 481a0: 6606 bnes 481a8 <== NOT EXECUTED flags_to_test <<= 6; 481a2: 2203 movel %d3,%d1 <== NOT EXECUTED 481a4: ed89 lsll #6,%d1 <== NOT EXECUTED 481a6: 6018 bras 481c0 <== NOT EXECUTED else if ( st_gid == jnode->st_gid ) 481a8: 4280 clrl %d0 <== NOT EXECUTED 481aa: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 481b0: 302a 003a movew %a2@(58),%d0 <== NOT EXECUTED 481b4: b081 cmpl %d1,%d0 <== NOT EXECUTED 481b6: 6704 beqs 481bc <== NOT EXECUTED 481b8: 2203 movel %d3,%d1 <== NOT EXECUTED 481ba: 6004 bras 481c0 <== NOT EXECUTED flags_to_test <<= 3; 481bc: 2203 movel %d3,%d1 <== NOT EXECUTED 481be: e789 lsll #3,%d1 <== 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 ) 481c0: 2001 movel %d1,%d0 <== NOT EXECUTED 481c2: c0aa 002e andl %a2@(46),%d0 <== NOT EXECUTED 481c6: b280 cmpl %d0,%d1 <== NOT EXECUTED 481c8: 57c0 seq %d0 <== NOT EXECUTED return 1; return 0; } 481ca: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== 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 ) 481d0: 49c0 extbl %d0 <== NOT EXECUTED return 1; return 0; } 481d2: 4e5e unlk %fp <== NOT EXECUTED 481d4: 4480 negl %d0 <== NOT EXECUTED 481d6: 4e75 rts 00048234 : int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48234: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48238: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 4823c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_jnode_t *jnode = node->node_access; 48240: 2052 moveal %a2@,%a0 <== NOT EXECUTED int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48242: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * Check for things that should never happen. */ if ( jnode->type != IMFS_SYM_LINK ) 48246: 7004 moveq #4,%d0 <== NOT EXECUTED 48248: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 4824c: 6708 beqs 48256 <== NOT EXECUTED rtems_fatal_error_occurred (0xABCD0000); 4824e: 2f3c abcd 0000 movel #-1412628480,%sp@- <== NOT EXECUTED 48254: 600c bras 48262 <== NOT EXECUTED if ( !jnode->Parent ) 48256: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED 4825a: 660c bnes 48268 <== NOT EXECUTED rtems_fatal_error_occurred( 0xBAD00000 ); 4825c: 2f3c bad0 0000 movel #-1160773632,%sp@- <== NOT EXECUTED 48262: 4eb9 0004 5580 jsr 45580 <== 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; 48268: 2480 movel %d0,%a2@ <== NOT EXECUTED rtems_filesystem_get_sym_start_loc( 4826a: 2668 004c moveal %a0@(76),%a3 <== NOT EXECUTED 4826e: 1213 moveb %a3@,%d1 <== NOT EXECUTED 48270: 1001 moveb %d1,%d0 <== NOT EXECUTED 48272: 49c0 extbl %d0 <== NOT EXECUTED 48274: 742f moveq #47,%d2 <== NOT EXECUTED 48276: b480 cmpl %d0,%d2 <== NOT EXECUTED 48278: 6710 beqs 4828a <== NOT EXECUTED 4827a: 143c 005c moveb #92,%d2 <== NOT EXECUTED 4827e: b480 cmpl %d0,%d2 <== NOT EXECUTED 48280: 6708 beqs 4828a <== NOT EXECUTED 48282: 4a01 tstb %d1 <== NOT EXECUTED 48284: 6704 beqs 4828a <== NOT EXECUTED 48286: 4280 clrl %d0 <== NOT EXECUTED 48288: 6022 bras 482ac <== NOT EXECUTED 4828a: 4878 0010 pea 10 <== NOT EXECUTED 4828e: 2039 0005 6764 movel 56764 ,%d0 <== NOT EXECUTED 48294: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 4829a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4829c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4829e: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED 482a4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 482aa: 7001 moveq #1,%d0 <== NOT EXECUTED /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 482ac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 482ae: 2f03 movel %d3,%sp@- <== NOT EXECUTED 482b0: 4873 0800 pea %a3@(00000000,%d0:l) <== NOT EXECUTED 482b4: 4eb9 0004 82f2 jsr 482f2 <== NOT EXECUTED &jnode->info.sym_link.name[i], flags, node ); IMFS_Set_handlers( node ); 482ba: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 482bc: 2400 movel %d0,%d2 <== NOT EXECUTED &jnode->info.sym_link.name[i], flags, node ); IMFS_Set_handlers( node ); 482be: 4eb9 0004 810c jsr 4810c <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 482c4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 482c6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 482c8: 4eb9 0004 8170 jsr 48170 <== NOT EXECUTED 482ce: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 482d4: 4a80 tstl %d0 <== NOT EXECUTED 482d6: 660e bnes 482e6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 482d8: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 482de: 760d moveq #13,%d3 <== NOT EXECUTED 482e0: 2040 moveal %d0,%a0 <== NOT EXECUTED 482e2: 74ff moveq #-1,%d2 <== NOT EXECUTED 482e4: 2083 movel %d3,%a0@ <== NOT EXECUTED return result; } 482e6: 2002 movel %d2,%d0 <== NOT EXECUTED 482e8: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 482ee: 4e5e unlk %fp <== NOT EXECUTED 482f0: 4e75 rts 0004ae60 : int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4ae60: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4ae64: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4ae68: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED IMFS_jnode_t *jnode; #if defined(RTEMS_POSIX_API) uid_t st_uid; #endif jnode = loc->node_access; 4ae6c: 2450 moveal %a0@,%a2 <== NOT EXECUTED int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4ae6e: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * Verify I am the owner of the node or the super user. */ #if defined(RTEMS_POSIX_API) st_uid = geteuid(); 4ae72: 4eb9 0004 8ffc jsr 48ffc <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 4ae78: 4281 clrl %d1 <== NOT EXECUTED /* * Verify I am the owner of the node or the super user. */ #if defined(RTEMS_POSIX_API) st_uid = geteuid(); 4ae7a: 3400 movew %d0,%d2 <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 4ae7c: 3200 movew %d0,%d1 <== NOT EXECUTED 4ae7e: 4280 clrl %d0 <== NOT EXECUTED 4ae80: 302a 0038 movew %a2@(56),%d0 <== NOT EXECUTED 4ae84: b081 cmpl %d1,%d0 <== NOT EXECUTED 4ae86: 6704 beqs 4ae8c <== NOT EXECUTED 4ae88: 4a42 tstw %d2 <== NOT EXECUTED 4ae8a: 660a bnes 4ae96 <== NOT EXECUTED #endif /* * Change only the RWX permissions on the jnode to mode. */ if ( mode & (~ (S_IRWXU | S_IRWXG | S_IRWXO ) ) ) 4ae8c: 2003 movel %d3,%d0 <== NOT EXECUTED 4ae8e: 0280 ffff fe00 andil #-512,%d0 <== NOT EXECUTED 4ae94: 6710 beqs 4aea6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EPERM ); 4ae96: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 4ae9c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ae9e: 7001 moveq #1,%d0 <== NOT EXECUTED 4aea0: 2080 movel %d0,%a0@ <== NOT EXECUTED 4aea2: 70ff moveq #-1,%d0 <== NOT EXECUTED 4aea4: 6026 bras 4aecc <== NOT EXECUTED jnode->st_mode &= ~(S_IRWXU | S_IRWXG | S_IRWXO); jnode->st_mode |= mode; 4aea6: 202a 002e movel %a2@(46),%d0 <== NOT EXECUTED 4aeaa: 0280 ffff fe00 andil #-512,%d0 <== NOT EXECUTED 4aeb0: 8680 orl %d0,%d3 <== NOT EXECUTED 4aeb2: 2543 002e movel %d3,%a2@(46) <== NOT EXECUTED IMFS_update_ctime( jnode ); 4aeb6: 42a7 clrl %sp@- <== NOT EXECUTED 4aeb8: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4aebc: 4eb9 0004 9010 jsr 49010 <== NOT EXECUTED 4aec2: 508f addql #8,%sp <== NOT EXECUTED 4aec4: 4280 clrl %d0 <== NOT EXECUTED 4aec6: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; } 4aecc: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 4aed2: 4e5e unlk %fp <== NOT EXECUTED 4aed4: 4e75 rts <== NOT EXECUTED ... 000664c8 : int IMFS_fcntl( int cmd, rtems_libio_t *iop ) { 664c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 664cc: 4e5e unlk %fp <== NOT EXECUTED 664ce: 4280 clrl %d0 <== NOT EXECUTED 664d0: 4e75 rts <== NOT EXECUTED ... 000664d4 : #include "imfs.h" int IMFS_fdatasync( rtems_libio_t *iop ) { 664d4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 664d8: 4e5e unlk %fp <== NOT EXECUTED 664da: 4280 clrl %d0 <== NOT EXECUTED 664dc: 4e75 rts <== NOT EXECUTED ... 00048798 : IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 48798: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4879c: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 487a0: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 487a4: 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 ); 487a8: 4a8a tstl %a2 <== NOT EXECUTED 487aa: 661c bnes 487c8 <== NOT EXECUTED 487ac: 4879 0005 5af1 pea 55af1 <== NOT EXECUTED 487b2: 4879 0005 52f6 pea 552f6 <__func__.5126> <== NOT EXECUTED 487b8: 4878 002a pea 2a <== NOT EXECUTED 487bc: 4879 0005 52a2 pea 552a2 <== NOT EXECUTED 487c2: 4eb9 0004 8ba4 jsr 48ba4 <__assert_func> <== NOT EXECUTED if ( !name ) 487c8: 4a82 tstl %d2 <== NOT EXECUTED 487ca: 6750 beqs 4881c <== NOT EXECUTED /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 487cc: 4879 0005 52f1 pea 552f1 <== NOT EXECUTED 487d2: 49f9 0004 cbec lea 4cbec ,%a4 <== NOT EXECUTED 487d8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 487da: 4e94 jsr %a4@ <== NOT EXECUTED 487dc: 508f addql #8,%sp <== NOT EXECUTED 487de: 4a80 tstl %d0 <== NOT EXECUTED 487e0: 673c beqs 4881e <== NOT EXECUTED return directory; if ( !strcmp( name, dotdotname ) ) 487e2: 4879 0005 52f3 pea 552f3 <== NOT EXECUTED 487e8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 487ea: 4e94 jsr %a4@ <== NOT EXECUTED 487ec: 508f addql #8,%sp <== NOT EXECUTED 487ee: 4a80 tstl %d0 <== NOT EXECUTED 487f0: 6606 bnes 487f8 <== NOT EXECUTED return directory->Parent; 487f2: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 487f6: 6026 bras 4881e <== NOT EXECUTED the_chain = &directory->info.directory.Entries; for ( the_node = the_chain->first; 487f8: 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; 487fc: d5fc 0000 0050 addal #80,%a2 <== NOT EXECUTED 48802: 6014 bras 48818 <== 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 ) ) 48804: 486b 000c pea %a3@(12) <== NOT EXECUTED 48808: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4880a: 4e94 jsr %a4@ <== NOT EXECUTED 4880c: 508f addql #8,%sp <== NOT EXECUTED 4880e: 4a80 tstl %d0 <== NOT EXECUTED 48810: 6604 bnes 48816 <== NOT EXECUTED 48812: 244b moveal %a3,%a2 <== NOT EXECUTED 48814: 6008 bras 4881e <== 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 ) { 48816: 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 ); 48818: b5cb cmpal %a3,%a2 <== NOT EXECUTED 4881a: 66e8 bnes 48804 <== NOT EXECUTED 4881c: 95ca subal %a2,%a2 <== NOT EXECUTED if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; } 4881e: 200a movel %a2,%d0 <== NOT EXECUTED 48820: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 48826: 4e5e unlk %fp <== NOT EXECUTED 48828: 4e75 rts <== NOT EXECUTED ... 0005a5d0 : */ int IMFS_freenodinfo( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 5a5d0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 5a5d4: 4e5e unlk %fp <== NOT EXECUTED 5a5d6: 4280 clrl %d0 <== NOT EXECUTED 5a5d8: 4e75 rts <== NOT EXECUTED ... 0005a5dc : ((IMFS_jnode_t *)( rtems_chain_head( jnode_get_control( jnode ) )->next)) int IMFS_fsunmount( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 5a5dc: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 5a5e0: 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; 5a5e4: 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 ) { 5a5e8: 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; 5a5ec: 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; 5a5f0: 266a 0018 moveal %a2@(24),%a3 <== NOT EXECUTED loc = temp_mt_entry->mt_fs_root; 5a5f4: 240e movel %fp,%d2 <== NOT EXECUTED 5a5f6: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 5a5fc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5a5fe: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED /* * Set this to null to indicate that it is being unmounted. */ temp_mt_entry->mt_fs_root.node_access = NULL; 5a604: dffc 0000 000c addal #12,%sp <== NOT EXECUTED do { next = jnode->Parent; loc.node_access = (void *)jnode; IMFS_Set_handlers( &loc ); 5a60a: 4bf9 0005 9f44 lea 59f44 ,%a5 <== NOT EXECUTED if ( jnode->type != IMFS_DIRECTORY ) { result = IMFS_unlink( &loc ); 5a610: 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; 5a616: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED do { next = jnode->Parent; 5a61a: 246b 0008 moveal %a3@(8),%a2 <== NOT EXECUTED loc.node_access = (void *)jnode; 5a61e: 2d4b fff0 movel %a3,%fp@(-16) <== NOT EXECUTED IMFS_Set_handlers( &loc ); 5a622: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5a624: 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 ) ) { 5a626: 200b movel %a3,%d0 <== NOT EXECUTED do { next = jnode->Parent; loc.node_access = (void *)jnode; IMFS_Set_handlers( &loc ); if ( jnode->type != IMFS_DIRECTORY ) { 5a628: 588f addql #4,%sp <== NOT EXECUTED result = IMFS_unlink( &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { 5a62a: 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 ) { 5a630: 7201 moveq #1,%d1 <== NOT EXECUTED 5a632: b2ab 0048 cmpl %a3@(72),%d1 <== NOT EXECUTED 5a636: 6606 bnes 5a63e <== NOT EXECUTED result = IMFS_unlink( &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { 5a638: b0ab 004c cmpl %a3@(76),%d0 <== NOT EXECUTED 5a63c: 660c bnes 5a64a <== NOT EXECUTED result = IMFS_unlink( &loc ); 5a63e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5a640: 4e94 jsr %a4@ <== NOT EXECUTED if (result != 0) 5a642: 588f addql #4,%sp <== NOT EXECUTED 5a644: 4a80 tstl %d0 <== NOT EXECUTED 5a646: 6626 bnes 5a66e <== NOT EXECUTED 5a648: 264a moveal %a2,%a3 <== NOT EXECUTED return -1; jnode = next; } if ( jnode != NULL ) { 5a64a: 4a8b tstl %a3 <== NOT EXECUTED 5a64c: 6724 beqs 5a672 <== NOT EXECUTED if ( jnode->type == IMFS_DIRECTORY ) { 5a64e: 7001 moveq #1,%d0 <== NOT EXECUTED 5a650: b0ab 0048 cmpl %a3@(72),%d0 <== NOT EXECUTED 5a654: 66c4 bnes 5a61a <== NOT EXECUTED if ( jnode_has_children( jnode ) ) 5a656: 200b movel %a3,%d0 <== NOT EXECUTED 5a658: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED 5a65e: b0ab 004c cmpl %a3@(76),%d0 <== NOT EXECUTED 5a662: 67b6 beqs 5a61a <== NOT EXECUTED jnode = jnode_get_first_child( jnode ); 5a664: 266b 004c moveal %a3@(76),%a3 <== NOT EXECUTED } } } while (jnode != NULL); 5a668: 4a8b tstl %a3 <== NOT EXECUTED 5a66a: 66ae bnes 5a61a <== NOT EXECUTED 5a66c: 6004 bras 5a672 <== NOT EXECUTED 5a66e: 70ff moveq #-1,%d0 <== NOT EXECUTED 5a670: 6002 bras 5a674 <== NOT EXECUTED 5a672: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5a674: 4cee 3c04 ffdc moveml %fp@(-36),%d2/%a2-%a5 <== NOT EXECUTED 5a67a: 4e5e unlk %fp <== NOT EXECUTED 5a67c: 4e75 rts <== NOT EXECUTED ... 0004882c : IMFS_token_types IMFS_get_token( const char *path, char *token, int *token_len ) { 4882c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48830: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 48834: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48838: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 4883c: 1410 moveb %a0@,%d2 <== NOT EXECUTED 4883e: 4280 clrl %d0 <== NOT EXECUTED 48840: 6016 bras 48858 <== NOT EXECUTED while ( (!IMFS_is_separator(c)) && (i <= IMFS_NAME_MAX) ) { token[i] = c; 48842: 1782 0800 moveb %d2,%a3@(00000000,%d0:l) <== NOT EXECUTED if ( i == IMFS_NAME_MAX ) 48846: 7220 moveq #32,%d1 <== NOT EXECUTED 48848: b280 cmpl %d0,%d1 <== NOT EXECUTED 4884a: 6606 bnes 48852 <== NOT EXECUTED 4884c: 7404 moveq #4,%d2 <== NOT EXECUTED 4884e: 6000 0086 braw 488d6 <== NOT EXECUTED return IMFS_INVALID_TOKEN; if ( !IMFS_is_valid_name_char(c) ) type = IMFS_INVALID_TOKEN; c = path [++i]; 48852: 5280 addql #1,%d0 <== NOT EXECUTED 48854: 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) ) { 48858: 1202 moveb %d2,%d1 <== NOT EXECUTED 4885a: 49c1 extbl %d1 <== NOT EXECUTED 4885c: 762f moveq #47,%d3 <== NOT EXECUTED 4885e: b681 cmpl %d1,%d3 <== NOT EXECUTED 48860: 6714 beqs 48876 <== NOT EXECUTED 48862: 163c 005c moveb #92,%d3 <== NOT EXECUTED 48866: b681 cmpl %d1,%d3 <== NOT EXECUTED 48868: 670c beqs 48876 <== NOT EXECUTED 4886a: 4a02 tstb %d2 <== NOT EXECUTED 4886c: 6708 beqs 48876 <== NOT EXECUTED 4886e: 7220 moveq #32,%d1 <== NOT EXECUTED 48870: b280 cmpl %d0,%d1 <== NOT EXECUTED 48872: 6cce bges 48842 <== NOT EXECUTED 48874: 6014 bras 4888a <== NOT EXECUTED 48876: 2200 movel %d0,%d1 <== NOT EXECUTED /* * Copy a seperator into token. */ if ( i == 0 ) { 48878: 6610 bnes 4888a <== NOT EXECUTED token[i] = c; 4887a: 1682 moveb %d2,%a3@ <== NOT EXECUTED if ( token[i] != '\0' ) { 4887c: 6708 beqs 48886 <== NOT EXECUTED 4887e: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 48882: 7401 moveq #1,%d2 <== NOT EXECUTED 48884: 6018 bras 4889e <== NOT EXECUTED 48886: 4282 clrl %d2 <== NOT EXECUTED 48888: 6014 bras 4889e <== NOT EXECUTED i++; type = IMFS_CURRENT_DIR; } else { type = IMFS_NO_MORE_PATH; } } else if (token[ i-1 ] != '\0') { 4888a: 4a33 08ff tstb %a3@(ffffffff,%d0:l) <== NOT EXECUTED 4888e: 6604 bnes 48894 <== NOT EXECUTED 48890: 2200 movel %d0,%d1 <== NOT EXECUTED 48892: 6008 bras 4889c <== NOT EXECUTED token[i] = '\0'; 48894: 4202 clrb %d2 <== NOT EXECUTED 48896: 2200 movel %d0,%d1 <== NOT EXECUTED 48898: 1782 0800 moveb %d2,%a3@(00000000,%d0:l) <== NOT EXECUTED 4889c: 7403 moveq #3,%d2 <== NOT EXECUTED /* * Set token_len to the number of characters copied. */ *token_len = i; 4889e: 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 ) { 488a2: 7603 moveq #3,%d3 <== NOT EXECUTED /* * Set token_len to the number of characters copied. */ *token_len = i; 488a4: 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 ) { 488a6: b682 cmpl %d2,%d3 <== NOT EXECUTED 488a8: 662c bnes 488d6 <== NOT EXECUTED if ( strcmp( token, "..") == 0 ) 488aa: 4879 0005 5064 pea 55064 <== NOT EXECUTED 488b0: 45f9 0004 cbec lea 4cbec ,%a2 <== NOT EXECUTED 488b6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 488b8: 4e92 jsr %a2@ <== NOT EXECUTED 488ba: 508f addql #8,%sp <== NOT EXECUTED 488bc: 4a80 tstl %d0 <== NOT EXECUTED 488be: 6604 bnes 488c4 <== NOT EXECUTED 488c0: 7402 moveq #2,%d2 <== NOT EXECUTED 488c2: 6012 bras 488d6 <== NOT EXECUTED type = IMFS_UP_DIR; else if ( strcmp( token, "." ) == 0 ) 488c4: 4879 0005 5065 pea 55065 <== NOT EXECUTED 488ca: 2f0b movel %a3,%sp@- <== NOT EXECUTED 488cc: 4e92 jsr %a2@ <== NOT EXECUTED 488ce: 508f addql #8,%sp <== NOT EXECUTED 488d0: 4a80 tstl %d0 <== NOT EXECUTED 488d2: 6602 bnes 488d6 <== NOT EXECUTED 488d4: 7401 moveq #1,%d2 <== NOT EXECUTED type = IMFS_CURRENT_DIR; } return type; } 488d6: 2002 movel %d2,%d0 <== NOT EXECUTED 488d8: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 488de: 4e5e unlk %fp <== NOT EXECUTED 488e0: 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 b36e pea 7b36e <== NOT EXECUTED 448a2: 4879 0007 b3de pea 7b3de <== NOT EXECUTED 448a8: 4879 0007 92e4 pea 792e4 <== 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 000488e4 : 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 ) { 488e4: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 488e8: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 488ec: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 488f0: 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, 488f4: 2079 0005 624c moveal 5624c ,%a0 <== NOT EXECUTED 488fa: 7210 moveq #16,%d1 <== NOT EXECUTED 488fc: 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) { 488fe: 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); 48900: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 48902: 670e beqs 48912 <== NOT EXECUTED bit_mask <<= 1) { 48904: 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); 48906: 7606 moveq #6,%d3 <== NOT EXECUTED 48908: b680 cmpl %d0,%d3 <== NOT EXECUTED 4890a: 66f2 bnes 488fe <== NOT EXECUTED 4890c: 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( 48912: 42a7 clrl %sp@- <== NOT EXECUTED 48914: 4878 41ed pea 41ed <== NOT EXECUTED 48918: 4879 0005 5088 pea 55088 <== NOT EXECUTED 4891e: 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) 48922: 23c1 0005 7630 movel %d1,57630 <== 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( 48928: 42a7 clrl %sp@- <== NOT EXECUTED 4892a: 4eb9 0004 ad10 jsr 4ad10 <== 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; 48930: 4878 0030 pea 30 <== NOT EXECUTED 48934: 4879 0005 5732 pea 55732 <== NOT EXECUTED 4893a: 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; 4893e: 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( 48944: 2540 0018 movel %d0,%a2@(24) <== NOT EXECUTED "", ( S_IFDIR | 0755 ), NULL ); temp_mt_entry->mt_fs_root.handlers = directory_handlers; 48948: 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; 4894c: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED /* * Create custom file system data. */ fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); 48952: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 48958: 4878 000c pea c <== NOT EXECUTED 4895c: 4878 0001 pea 1 <== NOT EXECUTED 48960: 4eb9 0004 8d9c jsr 48d9c <== NOT EXECUTED if ( !fs_info ){ 48966: 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 ) ); 48968: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !fs_info ){ 4896a: 4a80 tstl %d0 <== NOT EXECUTED 4896c: 661c bnes 4898a <== NOT EXECUTED free(temp_mt_entry->mt_fs_root.node_access); 4896e: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 48972: 4eb9 0004 8e8c jsr 48e8c <== NOT EXECUTED rtems_set_errno_and_return_minus_one(ENOMEM); 48978: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 4897e: 720c moveq #12,%d1 <== NOT EXECUTED 48980: 2040 moveal %d0,%a0 <== NOT EXECUTED 48982: 2081 movel %d1,%a0@ <== NOT EXECUTED 48984: 588f addql #4,%sp <== NOT EXECUTED 48986: 70ff moveq #-1,%d0 <== NOT EXECUTED 48988: 601e bras 489a8 <== NOT EXECUTED /* * Set st_ino for the root to 1. */ fs_info->ino_count = 1; 4898a: 7001 moveq #1,%d0 <== NOT EXECUTED 4898c: 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; 4898e: 206a 0018 moveal %a2@(24),%a0 <== NOT EXECUTED 48992: 7001 moveq #1,%d0 <== NOT EXECUTED 48994: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED 48998: 4200 clrb %d0 <== NOT EXECUTED /* * Set st_ino for the root to 1. */ fs_info->ino_count = 1; fs_info->memfile_handlers = memfile_handlers; 4899a: 236e 0010 0004 movel %fp@(16),%a1@(4) <== NOT EXECUTED fs_info->directory_handlers = directory_handlers; 489a0: 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; 489a4: 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; } 489a8: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 489ae: 4e5e unlk %fp <== NOT EXECUTED 489b0: 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 8a8c jsr 68a8c <__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 9df4 jsr 59df4 <== 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 8a8c jsr 68a8c <__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 ... 00060f26 : MEMFILE_STATIC int IMFS_memfile_addblock( IMFS_jnode_t *the_jnode, unsigned int block ) { 60f26: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 60f2a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 60f2e: 2f0a movel %a2,%sp@- <== NOT EXECUTED block_p memory; block_p *block_entry_ptr; assert( the_jnode ); 60f30: 4a88 tstl %a0 <== NOT EXECUTED 60f32: 6612 bnes 60f46 <== NOT EXECUTED 60f34: 4879 0007 b8d3 pea 7b8d3 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 60f3a: 4879 0007 ba4e pea 7ba4e <__func__.5677> <== NOT EXECUTED 60f40: 4878 0169 pea 169 <== NOT EXECUTED 60f44: 6018 bras 60f5e <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 60f46: 7005 moveq #5,%d0 <== NOT EXECUTED 60f48: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 60f4c: 671c beqs 60f6a <== NOT EXECUTED 60f4e: 4879 0007 b926 pea 7b926 <_POSIX_Threads_Default_attributes+0x1ec> <== NOT EXECUTED 60f54: 4879 0007 ba4e pea 7ba4e <__func__.5677> <== NOT EXECUTED 60f5a: 4878 016d pea 16d <== NOT EXECUTED 60f5e: 4879 0007 b8dd pea 7b8dd <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 60f64: 4eb9 0005 a898 jsr 5a898 <__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 ); 60f6a: 4878 0001 pea 1 <== NOT EXECUTED 60f6e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 60f72: 2f08 movel %a0,%sp@- <== NOT EXECUTED 60f74: 4eb9 0006 0b1c jsr 60b1c <== NOT EXECUTED if ( *block_entry_ptr ) 60f7a: 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 ); 60f80: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( *block_entry_ptr ) 60f82: 4a92 tstl %a2@ <== NOT EXECUTED 60f84: 6704 beqs 60f8a <== NOT EXECUTED 60f86: 4280 clrl %d0 <== NOT EXECUTED 60f88: 6012 bras 60f9c <== NOT EXECUTED #if 0 fprintf(stdout, "%d %p", block, block_entry_ptr ); fflush(stdout); #endif memory = memfile_alloc_block(); 60f8a: 4eb9 0006 0af8 jsr 60af8 <== NOT EXECUTED 60f90: 2200 movel %d0,%d1 <== NOT EXECUTED if ( !memory ) 60f92: 6604 bnes 60f98 <== NOT EXECUTED 60f94: 7001 moveq #1,%d0 <== NOT EXECUTED 60f96: 6004 bras 60f9c <== NOT EXECUTED return 1; *block_entry_ptr = memory; 60f98: 4280 clrl %d0 <== NOT EXECUTED 60f9a: 2481 movel %d1,%a2@ <== NOT EXECUTED return 0; } 60f9c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 60fa0: 4e5e unlk %fp <== NOT EXECUTED 60fa2: 4e75 rts 00060fa4 : MEMFILE_STATIC int IMFS_memfile_extend( IMFS_jnode_t *the_jnode, off_t new_length ) { 60fa4: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 60fa8: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 60fac: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 60fb0: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 60fb4: 4a8a tstl %a2 <== NOT EXECUTED 60fb6: 6612 bnes 60fca <== NOT EXECUTED 60fb8: 4879 0007 b8d3 pea 7b8d3 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 60fbe: 4879 0007 ba64 pea 7ba64 <__func__.5644> <== NOT EXECUTED 60fc4: 4878 0131 pea 131 <== NOT EXECUTED 60fc8: 6018 bras 60fe2 <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 60fca: 7005 moveq #5,%d0 <== NOT EXECUTED 60fcc: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 60fd0: 671c beqs 60fee <== NOT EXECUTED 60fd2: 4879 0007 b926 pea 7b926 <_POSIX_Threads_Default_attributes+0x1ec> <== NOT EXECUTED 60fd8: 4879 0007 ba64 pea 7ba64 <__func__.5644> <== NOT EXECUTED 60fde: 4878 0135 pea 135 <== NOT EXECUTED 60fe2: 4879 0007 b8dd pea 7b8dd <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 60fe8: 4eb9 0005 a898 jsr 5a898 <__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 ) 60fee: 2439 0008 0280 movel 80280 ,%d2 <== NOT EXECUTED 60ff4: 2202 movel %d2,%d1 <== NOT EXECUTED 60ff6: e489 lsrl #2,%d1 <== NOT EXECUTED 60ff8: 2001 movel %d1,%d0 <== NOT EXECUTED 60ffa: 5280 addql #1,%d0 <== NOT EXECUTED 60ffc: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 61000: 5280 addql #1,%d0 <== NOT EXECUTED 61002: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 61006: 5380 subql #1,%d0 <== NOT EXECUTED 61008: 4c02 0800 mulsl %d2,%d0 <== NOT EXECUTED 6100c: b083 cmpl %d3,%d0 <== NOT EXECUTED 6100e: 620e bhis 6101e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 61010: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 61016: 7216 moveq #22,%d1 <== NOT EXECUTED 61018: 2040 moveal %d0,%a0 <== NOT EXECUTED 6101a: 2081 movel %d1,%a0@ <== NOT EXECUTED 6101c: 6052 bras 61070 <== NOT EXECUTED if ( new_length <= the_jnode->info.file.size ) 6101e: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 61022: b083 cmpl %d3,%d0 <== NOT EXECUTED 61024: 6d04 blts 6102a <== NOT EXECUTED 61026: 4280 clrl %d0 <== NOT EXECUTED 61028: 6056 bras 61080 <== 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; 6102a: 2a00 movel %d0,%d5 <== NOT EXECUTED /* * Calculate the number of range of blocks to allocate */ new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK; 6102c: 2803 movel %d3,%d4 <== NOT EXECUTED old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK; 6102e: 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; 61032: 4c42 4804 remsl %d2,%d4,%d4 <== NOT EXECUTED old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK; 61036: 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 ) ) { 61038: 47f9 0006 0f26 lea 60f26 ,%a3 <== NOT EXECUTED 6103e: 6036 bras 61076 <== NOT EXECUTED 61040: 2f02 movel %d2,%sp@- <== NOT EXECUTED 61042: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61044: 4e93 jsr %a3@ <== NOT EXECUTED 61046: 508f addql #8,%sp <== NOT EXECUTED 61048: 4a80 tstl %d0 <== NOT EXECUTED 6104a: 6728 beqs 61074 <== NOT EXECUTED 6104c: 600c bras 6105a <== NOT EXECUTED for ( ; block>=old_blocks ; block-- ) { IMFS_memfile_remove_block( the_jnode, block ); 6104e: 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-- ) { 61050: 5382 subql #1,%d2 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 61052: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61054: 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-- ) { 61056: 508f addql #8,%sp <== NOT EXECUTED 61058: 6006 bras 61060 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 6105a: 47f9 0006 0cb4 lea 60cb4 ,%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-- ) { 61060: ba82 cmpl %d2,%d5 <== NOT EXECUTED 61062: 63ea blss 6104e <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); } rtems_set_errno_and_return_minus_one( ENOSPC ); 61064: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 6106a: 2040 moveal %d0,%a0 <== NOT EXECUTED 6106c: 701c moveq #28,%d0 <== NOT EXECUTED 6106e: 2080 movel %d0,%a0@ <== NOT EXECUTED 61070: 70ff moveq #-1,%d0 <== NOT EXECUTED 61072: 600c bras 61080 <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { 61074: 5282 addql #1,%d2 <== NOT EXECUTED 61076: b882 cmpl %d2,%d4 <== NOT EXECUTED 61078: 64c6 bccs 61040 <== NOT EXECUTED /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; 6107a: 4280 clrl %d0 <== NOT EXECUTED 6107c: 2543 004c movel %d3,%a2@(76) <== NOT EXECUTED return 0; } 61080: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 61086: 4e5e unlk %fp <== NOT EXECUTED 61088: 4e75 rts 00060b1c : #endif IMFS_jnode_t *the_jnode, unsigned int block, int malloc_it ) { 60b1c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 60b20: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 60b24: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 60b28: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 60b2c: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 60b30: 4a8a tstl %a2 <== NOT EXECUTED 60b32: 6612 bnes 60b46 <== NOT EXECUTED 60b34: 4879 0007 b8d3 pea 7b8d3 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 60b3a: 4879 0007 b9d9 pea 7b9d9 <__func__.5864> <== NOT EXECUTED 60b40: 4878 0386 pea 386 <== NOT EXECUTED 60b44: 6018 bras 60b5e <== NOT EXECUTED if ( !the_jnode ) return NULL; assert( the_jnode->type == IMFS_MEMORY_FILE ); 60b46: 7005 moveq #5,%d0 <== NOT EXECUTED 60b48: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 60b4c: 671c beqs 60b6a <== NOT EXECUTED 60b4e: 4879 0007 b926 pea 7b926 <_POSIX_Threads_Default_attributes+0x1ec> <== NOT EXECUTED 60b54: 4879 0007 b9d9 pea 7b9d9 <__func__.5864> <== NOT EXECUTED 60b5a: 4878 038a pea 38a <== NOT EXECUTED 60b5e: 4879 0007 b8dd pea 7b8dd <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 60b64: 4eb9 0005 a898 jsr 5a898 <__assert_func> <== NOT EXECUTED /* * Is the block number in the simple indirect portion? */ if ( my_block <= LAST_INDIRECT ) { 60b6a: 2239 0008 0280 movel 80280 ,%d1 <== NOT EXECUTED 60b70: e489 lsrl #2,%d1 <== NOT EXECUTED 60b72: 2001 movel %d1,%d0 <== NOT EXECUTED 60b74: 5380 subql #1,%d0 <== NOT EXECUTED 60b76: b082 cmpl %d2,%d0 <== NOT EXECUTED 60b78: 6530 bcss 60baa <== NOT EXECUTED #if 0 fprintf(stdout, "(s %d) ", block ); fflush(stdout); #endif p = info->indirect; 60b7a: 206a 0050 moveal %a2@(80),%a0 <== NOT EXECUTED if ( malloc_it ) { 60b7e: 4a89 tstl %a1 <== NOT EXECUTED 60b80: 671e beqs 60ba0 <== NOT EXECUTED if ( !p ) { 60b82: 4a88 tstl %a0 <== NOT EXECUTED 60b84: 6610 bnes 60b96 <== NOT EXECUTED p = memfile_alloc_block(); 60b86: 4eb9 0006 0af8 jsr 60af8 <== NOT EXECUTED if ( !p ) 60b8c: 4a80 tstl %d0 <== NOT EXECUTED 60b8e: 6700 0116 beqw 60ca6 <== NOT EXECUTED return 0; info->indirect = p; 60b92: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED } return &info->indirect[ my_block ]; 60b96: 206a 0050 moveal %a2@(80),%a0 <== NOT EXECUTED 60b9a: e58a lsll #2,%d2 <== NOT EXECUTED 60b9c: 6000 0104 braw 60ca2 <== NOT EXECUTED } if ( !p ) 60ba0: 4a88 tstl %a0 <== NOT EXECUTED 60ba2: 6600 00e6 bnew 60c8a <== NOT EXECUTED 60ba6: 6000 00fe braw 60ca6 <== NOT EXECUTED /* * Is the block number in the doubly indirect portion? */ if ( my_block <= LAST_DOUBLY_INDIRECT ) { 60baa: 2601 movel %d1,%d3 <== NOT EXECUTED 60bac: 5283 addql #1,%d3 <== NOT EXECUTED 60bae: 4c01 3800 mulsl %d1,%d3 <== NOT EXECUTED 60bb2: 2003 movel %d3,%d0 <== NOT EXECUTED 60bb4: 5380 subql #1,%d0 <== NOT EXECUTED 60bb6: b082 cmpl %d2,%d0 <== NOT EXECUTED 60bb8: 655c bcss 60c16 <== 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; 60bba: 206a 0054 moveal %a2@(84),%a0 <== NOT EXECUTED #if 0 fprintf(stdout, "(d %d) ", block ); fflush(stdout); #endif my_block -= FIRST_DOUBLY_INDIRECT; 60bbe: 9481 subl %d1,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 60bc0: 4c41 2003 remul %d1,%d3,%d2 <== NOT EXECUTED 60bc4: 4c41 2002 remul %d1,%d2,%d2 <== NOT EXECUTED doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; p = info->doubly_indirect; if ( malloc_it ) { 60bc8: 4a89 tstl %a1 <== NOT EXECUTED 60bca: 6732 beqs 60bfe <== NOT EXECUTED if ( !p ) { 60bcc: 4a88 tstl %a0 <== NOT EXECUTED 60bce: 6612 bnes 60be2 <== NOT EXECUTED p = memfile_alloc_block(); 60bd0: 4eb9 0006 0af8 jsr 60af8 <== NOT EXECUTED 60bd6: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p ) 60bd8: 4a80 tstl %d0 <== NOT EXECUTED 60bda: 6700 00ca beqw 60ca6 <== NOT EXECUTED return 0; info->doubly_indirect = p; 60bde: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED } p1 = (block_p *)p[ doubly ]; 60be2: 45f0 2c00 lea %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 60be6: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p1 ) { 60be8: 4a88 tstl %a0 <== NOT EXECUTED 60bea: 6622 bnes 60c0e <== NOT EXECUTED p1 = memfile_alloc_block(); 60bec: 4eb9 0006 0af8 jsr 60af8 <== NOT EXECUTED 60bf2: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p1 ) 60bf4: 4a80 tstl %d0 <== NOT EXECUTED 60bf6: 6700 00ae beqw 60ca6 <== NOT EXECUTED return 0; p[ doubly ] = (block_p) p1; 60bfa: 2480 movel %d0,%a2@ <== NOT EXECUTED 60bfc: 6010 bras 60c0e <== NOT EXECUTED } return (block_p *)&p1[ singly ]; } if ( !p ) 60bfe: 4a88 tstl %a0 <== NOT EXECUTED 60c00: 6700 00a4 beqw 60ca6 <== NOT EXECUTED return 0; p = (block_p *)p[ doubly ]; 60c04: 2070 2c00 moveal %a0@(00000000,%d2:l:4),%a0 <== NOT EXECUTED if ( !p ) 60c08: 4a88 tstl %a0 <== NOT EXECUTED 60c0a: 6700 009a beqw 60ca6 <== 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 ]; 60c0e: 41f0 3c00 lea %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED 60c12: 6000 0094 braw 60ca8 <== NOT EXECUTED #endif /* * Is the block number in the triply indirect portion? */ if ( my_block <= LAST_TRIPLY_INDIRECT ) { 60c16: 2003 movel %d3,%d0 <== NOT EXECUTED 60c18: 5280 addql #1,%d0 <== NOT EXECUTED 60c1a: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 60c1e: 5380 subql #1,%d0 <== NOT EXECUTED 60c20: b082 cmpl %d2,%d0 <== NOT EXECUTED 60c22: 6500 0082 bcsw 60ca6 <== NOT EXECUTED my_block -= FIRST_TRIPLY_INDIRECT; 60c26: 9483 subl %d3,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 60c28: 2002 movel %d2,%d0 <== NOT EXECUTED 60c2a: 4c41 0003 remul %d1,%d3,%d0 <== NOT EXECUTED 60c2e: 4c41 0000 remul %d1,%d0,%d0 <== NOT EXECUTED 60c32: 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; 60c34: 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; 60c38: 2600 movel %d0,%d3 <== NOT EXECUTED 60c3a: 4c41 3004 remul %d1,%d4,%d3 <== NOT EXECUTED 60c3e: 4c41 3003 remul %d1,%d3,%d3 <== NOT EXECUTED doubly %= IMFS_MEMFILE_BLOCK_SLOTS; p = info->triply_indirect; if ( malloc_it ) { 60c42: 4a89 tstl %a1 <== NOT EXECUTED 60c44: 674a beqs 60c90 <== NOT EXECUTED if ( !p ) { 60c46: 4a88 tstl %a0 <== NOT EXECUTED 60c48: 6610 bnes 60c5a <== NOT EXECUTED p = memfile_alloc_block(); 60c4a: 4eb9 0006 0af8 jsr 60af8 <== NOT EXECUTED 60c50: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p ) 60c52: 4a80 tstl %d0 <== NOT EXECUTED 60c54: 6750 beqs 60ca6 <== NOT EXECUTED return 0; info->triply_indirect = p; 60c56: 2540 0058 movel %d0,%a2@(88) <== NOT EXECUTED } p1 = (block_p *) p[ triply ]; 60c5a: 45f0 3c00 lea %a0@(00000000,%d3:l:4),%a2 <== NOT EXECUTED 60c5e: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p1 ) { 60c60: 4a88 tstl %a0 <== NOT EXECUTED 60c62: 660e bnes 60c72 <== NOT EXECUTED p1 = memfile_alloc_block(); 60c64: 4eb9 0006 0af8 jsr 60af8 <== NOT EXECUTED 60c6a: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p1 ) 60c6c: 4a80 tstl %d0 <== NOT EXECUTED 60c6e: 6736 beqs 60ca6 <== NOT EXECUTED return 0; p[ triply ] = (block_p) p1; 60c70: 2480 movel %d0,%a2@ <== NOT EXECUTED } p2 = (block_p *)p1[ doubly ]; 60c72: 45f0 4c00 lea %a0@(00000000,%d4:l:4),%a2 <== NOT EXECUTED 60c76: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p2 ) { 60c78: 4a88 tstl %a0 <== NOT EXECUTED 60c7a: 660e bnes 60c8a <== NOT EXECUTED p2 = memfile_alloc_block(); 60c7c: 4eb9 0006 0af8 jsr 60af8 <== NOT EXECUTED 60c82: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p2 ) 60c84: 4a80 tstl %d0 <== NOT EXECUTED 60c86: 671e beqs 60ca6 <== NOT EXECUTED return 0; p1[ doubly ] = (block_p) p2; 60c88: 2480 movel %d0,%a2@ <== NOT EXECUTED } return (block_p *)&p2[ singly ]; 60c8a: 41f0 2c00 lea %a0@(00000000,%d2:l:4),%a0 <== NOT EXECUTED 60c8e: 6018 bras 60ca8 <== NOT EXECUTED } if ( !p ) 60c90: 4a88 tstl %a0 <== NOT EXECUTED 60c92: 6712 beqs 60ca6 <== 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 ]; 60c94: 2070 3c00 moveal %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED if ( !p1 ) 60c98: 4a88 tstl %a0 <== NOT EXECUTED 60c9a: 670a beqs 60ca6 <== NOT EXECUTED p2 = (block_p *)p1[ doubly ]; if ( !p ) return 0; return (block_p *)&p2[ singly ]; 60c9c: 2070 4c00 moveal %a0@(00000000,%d4:l:4),%a0 <== NOT EXECUTED 60ca0: e58a lsll #2,%d2 <== NOT EXECUTED 60ca2: d1c2 addal %d2,%a0 <== NOT EXECUTED 60ca4: 6002 bras 60ca8 <== NOT EXECUTED 60ca6: 91c8 subal %a0,%a0 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 60ca8: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 60cae: 4e5e unlk %fp <== NOT EXECUTED 60cb0: 2008 movel %a0,%d0 <== NOT EXECUTED 60cb2: 4e75 rts 00043578 : * using the IMFS memory file type. * */ int IMFS_memfile_maximum_size( void ) { 43578: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4357c: 2f02 movel %d2,%sp@- <== NOT EXECUTED return IMFS_MEMFILE_MAXIMUM_SIZE; 4357e: 2439 0005 d448 movel 5d448 ,%d2 <== NOT EXECUTED 43584: 2202 movel %d2,%d1 <== NOT EXECUTED 43586: e489 lsrl #2,%d1 <== NOT EXECUTED 43588: 2001 movel %d1,%d0 <== NOT EXECUTED 4358a: 5280 addql #1,%d0 <== NOT EXECUTED 4358c: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 43590: 5280 addql #1,%d0 <== NOT EXECUTED 43592: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 43596: 5380 subql #1,%d0 <== NOT EXECUTED } 43598: 4c02 0800 mulsl %d2,%d0 <== NOT EXECUTED 4359c: 241f movel %sp@+,%d2 <== NOT EXECUTED 4359e: 4e5e unlk %fp <== NOT EXECUTED 435a0: 4e75 rts 000613d2 : IMFS_jnode_t *the_jnode, off_t start, unsigned char *destination, unsigned int length ) { 613d2: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 613d6: 48d7 1cfc moveml %d2-%d7/%a2-%a4,%sp@ <== NOT EXECUTED 613da: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 613de: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 613e2: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 613e6: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 613ea: 4a8a tstl %a2 <== NOT EXECUTED 613ec: 6612 bnes 61400 <== NOT EXECUTED 613ee: 4879 0007 b8d3 pea 7b8d3 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 613f4: 4879 0007 ba0b pea 7ba0b <__func__.5772> <== NOT EXECUTED 613fa: 4878 024a pea 24a <== NOT EXECUTED 613fe: 601e bras 6141e <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE || 61400: 222a 0048 movel %a2@(72),%d1 <== NOT EXECUTED 61404: 2001 movel %d1,%d0 <== NOT EXECUTED 61406: 5b80 subql #5,%d0 <== NOT EXECUTED 61408: 7401 moveq #1,%d2 <== NOT EXECUTED 6140a: b480 cmpl %d0,%d2 <== NOT EXECUTED 6140c: 641c bccs 6142a <== NOT EXECUTED 6140e: 4879 0007 b989 pea 7b989 <_POSIX_Threads_Default_attributes+0x24f> <== NOT EXECUTED 61414: 4879 0007 ba0b pea 7ba0b <__func__.5772> <== NOT EXECUTED 6141a: 4878 024f pea 24f <== NOT EXECUTED 6141e: 4879 0007 b8dd pea 7b8dd <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 61424: 4eb9 0005 a898 jsr 5a898 <__assert_func> <== NOT EXECUTED /* * Error checks on arguments */ assert( dest ); 6142a: 4a8b tstl %a3 <== NOT EXECUTED 6142c: 6612 bnes 61440 <== NOT EXECUTED 6142e: 4879 0007 b9d4 pea 7b9d4 <_POSIX_Threads_Default_attributes+0x29a> <== NOT EXECUTED 61434: 4879 0007 ba0b pea 7ba0b <__func__.5772> <== NOT EXECUTED 6143a: 4878 0258 pea 258 <== NOT EXECUTED 6143e: 60de bras 6141e <== NOT EXECUTED /* * If there is nothing to read, then quick exit. */ my_length = length; if ( !my_length ) 61440: 4a88 tstl %a0 <== NOT EXECUTED 61442: 6612 bnes 61456 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 61444: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 6144a: 7616 moveq #22,%d3 <== NOT EXECUTED 6144c: 2040 moveal %d0,%a0 <== NOT EXECUTED 6144e: 2083 movel %d3,%a0@ <== NOT EXECUTED 61450: 70ff moveq #-1,%d0 <== NOT EXECUTED 61452: 6000 017e braw 615d2 <== NOT EXECUTED /* * Linear files (as created from a tar file are easier to handle * than block files). */ if (the_jnode->type == IMFS_LINEAR_FILE) { 61456: 7006 moveq #6,%d0 <== NOT EXECUTED 61458: b081 cmpl %d1,%d0 <== NOT EXECUTED 6145a: 663a bnes 61496 <== NOT EXECUTED unsigned char *file_ptr; file_ptr = (unsigned char *)the_jnode->info.linearfile.direct; if (my_length > (the_jnode->info.linearfile.size - start)) 6145c: 242a 004c movel %a2@(76),%d2 <== NOT EXECUTED 61460: 9484 subl %d4,%d2 <== NOT EXECUTED 61462: b1c2 cmpal %d2,%a0 <== NOT EXECUTED 61464: 6402 bccs 61468 <== NOT EXECUTED 61466: 2408 movel %a0,%d2 <== NOT EXECUTED my_length = the_jnode->info.linearfile.size - start; memcpy(dest, &file_ptr[start], my_length); 61468: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6146a: d8aa 0050 addl %a2@(80),%d4 <== NOT EXECUTED 6146e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 61470: 2f0b movel %a3,%sp@- <== NOT EXECUTED 61472: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED IMFS_update_atime( the_jnode ); 61478: 42a7 clrl %sp@- <== NOT EXECUTED 6147a: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 6147e: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 61484: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return my_length; 6148a: 2002 movel %d2,%d0 <== NOT EXECUTED 6148c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 61492: 6000 013e braw 615d2 <== 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 ) 61496: 222a 004c movel %a2@(76),%d1 <== NOT EXECUTED 6149a: 2008 movel %a0,%d0 <== NOT EXECUTED 6149c: d084 addl %d4,%d0 <== NOT EXECUTED 6149e: b280 cmpl %d0,%d1 <== NOT EXECUTED 614a0: 6504 bcss 614a6 <== NOT EXECUTED 614a2: 2608 movel %a0,%d3 <== NOT EXECUTED 614a4: 6004 bras 614aa <== NOT EXECUTED my_length = the_jnode->info.file.size - start; 614a6: 2601 movel %d1,%d3 <== NOT EXECUTED 614a8: 9684 subl %d4,%d3 <== NOT EXECUTED /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 614aa: 2439 0008 0280 movel 80280 ,%d2 <== NOT EXECUTED 614b0: 2a04 movel %d4,%d5 <== NOT EXECUTED 614b2: 4c42 5800 remsl %d2,%d0,%d5 <== NOT EXECUTED 614b6: 4c42 5805 remsl %d2,%d5,%d5 <== NOT EXECUTED 614ba: 2800 movel %d0,%d4 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 614bc: 2c05 movel %d5,%d6 <== NOT EXECUTED if ( start_offset ) { 614be: 4a80 tstl %d0 <== NOT EXECUTED 614c0: 6604 bnes 614c6 <== NOT EXECUTED 614c2: 2e0b movel %a3,%d7 <== NOT EXECUTED 614c4: 6058 bras 6151e <== 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 ); 614c6: 42a7 clrl %sp@- <== NOT EXECUTED 614c8: 2f05 movel %d5,%sp@- <== NOT EXECUTED 614ca: 2f0a movel %a2,%sp@- <== NOT EXECUTED 614cc: 4eb9 0006 0b1c jsr 60b1c <== NOT EXECUTED assert( block_ptr ); 614d2: 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 ); 614d8: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 614da: 4a80 tstl %d0 <== NOT EXECUTED 614dc: 6614 bnes 614f2 <== NOT EXECUTED 614de: 4879 0007 b956 pea 7b956 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 614e4: 4879 0007 ba0b pea 7ba0b <__func__.5772> <== NOT EXECUTED 614ea: 4878 0294 pea 294 <== NOT EXECUTED 614ee: 6000 ff2e braw 6141e <== 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; 614f2: 2002 movel %d2,%d0 <== NOT EXECUTED 614f4: 9084 subl %d4,%d0 <== NOT EXECUTED 614f6: 2403 movel %d3,%d2 <== NOT EXECUTED 614f8: b083 cmpl %d3,%d0 <== NOT EXECUTED 614fa: 6402 bccs 614fe <== NOT EXECUTED 614fc: 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 ); 614fe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 61500: d890 addl %a0@,%d4 <== NOT EXECUTED 61502: 2f04 movel %d4,%sp@- <== NOT EXECUTED dest += to_copy; 61504: 2e0b movel %a3,%d7 <== NOT EXECUTED block++; 61506: 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 ); 61508: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6150a: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED dest += to_copy; 61510: de82 addl %d2,%d7 <== NOT EXECUTED block++; 61512: 5286 addql #1,%d6 <== NOT EXECUTED my_length -= to_copy; 61514: 9682 subl %d2,%d3 <== NOT EXECUTED 61516: 2802 movel %d2,%d4 <== NOT EXECUTED 61518: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; 6151e: 2439 0008 0280 movel 80280 ,%d2 <== NOT EXECUTED while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 61524: 49f9 0006 0b1c lea 60b1c ,%a4 <== NOT EXECUTED assert( block_ptr ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 6152a: 47f9 0006 aeec lea 6aeec ,%a3 <== NOT EXECUTED 61530: 603e bras 61570 <== 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 ); 61532: 42a7 clrl %sp@- <== NOT EXECUTED 61534: 2f06 movel %d6,%sp@- <== NOT EXECUTED 61536: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61538: 4e94 jsr %a4@ <== NOT EXECUTED assert( block_ptr ); 6153a: 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 ); 61540: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 61542: 4a80 tstl %d0 <== NOT EXECUTED 61544: 6614 bnes 6155a <== NOT EXECUTED 61546: 4879 0007 b956 pea 7b956 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 6154c: 4879 0007 ba0b pea 7ba0b <__func__.5772> <== NOT EXECUTED 61552: 4878 02a5 pea 2a5 <== NOT EXECUTED 61556: 6000 fec6 braw 6141e <== NOT EXECUTED if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 6155a: 2f02 movel %d2,%sp@- <== NOT EXECUTED dest += to_copy; block++; 6155c: 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 ); 6155e: 2f10 movel %a0@,%sp@- <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; 61560: 9682 subl %d2,%d3 <== NOT EXECUTED copied += to_copy; 61562: 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 ); 61564: 2f07 movel %d7,%sp@- <== NOT EXECUTED 61566: 4e93 jsr %a3@ <== NOT EXECUTED dest += to_copy; 61568: de82 addl %d2,%d7 <== NOT EXECUTED block++; my_length -= to_copy; copied += to_copy; 6156a: 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 ) { 61570: b6b9 0008 0280 cmpl 80280 ,%d3 <== NOT EXECUTED 61576: 64ba bccs 61532 <== NOT EXECUTED * Phase 3: possibly the first part of one block */ assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); if ( my_length ) { 61578: 4a83 tstl %d3 <== NOT EXECUTED 6157a: 6740 beqs 615bc <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 6157c: 42a7 clrl %sp@- <== NOT EXECUTED 6157e: 2f06 movel %d6,%sp@- <== NOT EXECUTED 61580: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61582: 4eb9 0006 0b1c jsr 60b1c <== NOT EXECUTED assert( block_ptr ); 61588: 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 ); 6158e: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 61590: 4a80 tstl %d0 <== NOT EXECUTED 61592: 6614 bnes 615a8 <== NOT EXECUTED 61594: 4879 0007 b956 pea 7b956 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 6159a: 4879 0007 ba0b pea 7ba0b <__func__.5772> <== NOT EXECUTED 615a0: 4878 02b7 pea 2b7 <== NOT EXECUTED 615a4: 6000 fe78 braw 6141e <== NOT EXECUTED if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], my_length ); 615a8: 2f03 movel %d3,%sp@- <== NOT EXECUTED copied += my_length; 615aa: 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 ); 615ac: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 615ae: 2f07 movel %d7,%sp@- <== NOT EXECUTED 615b0: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED copied += my_length; 615b6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } IMFS_update_atime( the_jnode ); 615bc: 42a7 clrl %sp@- <== NOT EXECUTED 615be: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 615c2: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED return copied; 615c8: 508f addql #8,%sp <== NOT EXECUTED 615ca: 2004 movel %d4,%d0 <== NOT EXECUTED return copied; memcpy( dest, &(*block_ptr)[ 0 ], my_length ); copied += my_length; } IMFS_update_atime( the_jnode ); 615cc: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return copied; } 615d2: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 615d8: 4e5e unlk %fp <== NOT EXECUTED 615da: 4e75 rts 00060d40 : */ int IMFS_memfile_remove( IMFS_jnode_t *the_jnode ) { 60d40: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 60d44: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 60d48: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 60d4c: 4a8b tstl %a3 <== NOT EXECUTED 60d4e: 6612 bnes 60d62 <== NOT EXECUTED 60d50: 4879 0007 b8d3 pea 7b8d3 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 60d56: 4879 0007 ba1d pea 7ba1d <__func__.5716> <== NOT EXECUTED 60d5c: 4878 01ec pea 1ec <== NOT EXECUTED 60d60: 6018 bras 60d7a <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 60d62: 7005 moveq #5,%d0 <== NOT EXECUTED 60d64: b0ab 0048 cmpl %a3@(72),%d0 <== NOT EXECUTED 60d68: 671c beqs 60d86 <== NOT EXECUTED 60d6a: 4879 0007 b926 pea 7b926 <_POSIX_Threads_Default_attributes+0x1ec> <== NOT EXECUTED 60d70: 4879 0007 ba1d pea 7ba1d <__func__.5716> <== NOT EXECUTED 60d76: 4878 01f0 pea 1f0 <== NOT EXECUTED 60d7a: 4879 0007 b8dd pea 7b8dd <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 60d80: 4eb9 0005 a898 jsr 5a898 <__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; 60d86: 2639 0008 0280 movel 80280 ,%d3 <== NOT EXECUTED 60d8c: e48b lsrl #2,%d3 <== NOT EXECUTED * + triply indirect */ info = &the_jnode->info.file; if ( info->indirect ) { 60d8e: 4aab 0050 tstl %a3@(80) <== NOT EXECUTED 60d92: 670e beqs 60da2 <== NOT EXECUTED memfile_free_blocks_in_table( &info->indirect, to_free ); 60d94: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60d96: 486b 0050 pea %a3@(80) <== NOT EXECUTED 60d9a: 4eb9 0006 0cdc jsr 60cdc <== NOT EXECUTED 60da0: 508f addql #8,%sp <== NOT EXECUTED } if ( info->doubly_indirect ) { 60da2: 4aab 0054 tstl %a3@(84) <== NOT EXECUTED 60da6: 673e beqs 60de6 <== NOT EXECUTED 60da8: 4282 clrl %d2 <== NOT EXECUTED for ( i=0 ; idoubly_indirect[i] ) { memfile_free_blocks_in_table( 60daa: 45f9 0006 0cdc lea 60cdc ,%a2 <== NOT EXECUTED 60db0: 601a bras 60dcc <== NOT EXECUTED } if ( info->doubly_indirect ) { for ( i=0 ; idoubly_indirect[i] ) { 60db2: 206b 0054 moveal %a3@(84),%a0 <== NOT EXECUTED 60db6: 2002 movel %d2,%d0 <== NOT EXECUTED 60db8: e588 lsll #2,%d0 <== NOT EXECUTED 60dba: 4ab0 0800 tstl %a0@(00000000,%d0:l) <== NOT EXECUTED 60dbe: 670a beqs 60dca <== NOT EXECUTED memfile_free_blocks_in_table( 60dc0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60dc2: 4870 0800 pea %a0@(00000000,%d0:l) <== NOT EXECUTED 60dc6: 4e92 jsr %a2@ <== NOT EXECUTED 60dc8: 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 60dd2: e488 lsrl #2,%d0 <== NOT EXECUTED 60dd4: b082 cmpl %d2,%d0 <== NOT EXECUTED 60dd6: 62da bhis 60db2 <== 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 ); 60dd8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60dda: 486b 0054 pea %a3@(84) <== NOT EXECUTED 60dde: 4eb9 0006 0cdc jsr 60cdc <== NOT EXECUTED 60de4: 508f addql #8,%sp <== NOT EXECUTED } if ( info->triply_indirect ) { 60de6: 4aab 0058 tstl %a3@(88) <== NOT EXECUTED 60dea: 6762 beqs 60e4e <== NOT EXECUTED 60dec: 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 60df4: 603e bras 60e34 <== NOT EXECUTED } if ( info->triply_indirect ) { for ( i=0 ; itriply_indirect[i]; 60df6: 206b 0058 moveal %a3@(88),%a0 <== NOT EXECUTED } memfile_free_blocks_in_table( &info->doubly_indirect, to_free ); } if ( info->triply_indirect ) { 60dfa: 2a04 movel %d4,%d5 <== NOT EXECUTED 60dfc: e58d lsll #2,%d5 <== NOT EXECUTED for ( i=0 ; itriply_indirect[i]; 60dfe: 2030 5800 movel %a0@(00000000,%d5:l),%d0 <== NOT EXECUTED if ( !p ) /* ensure we have a valid pointer */ 60e02: 673c beqs 60e40 <== NOT EXECUTED break; 60e04: 2440 moveal %d0,%a2 <== NOT EXECUTED 60e06: 4282 clrl %d2 <== NOT EXECUTED 60e08: 6010 bras 60e1a <== NOT EXECUTED for ( j=0 ; j <== NOT EXECUTED memfile_free_blocks_in_table( (block_p **)&p[j], to_free); 60e0e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60e10: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60e12: 4e94 jsr %a4@ <== NOT EXECUTED 60e14: 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 60e20: e488 lsrl #2,%d0 <== NOT EXECUTED 60e22: b082 cmpl %d2,%d0 <== NOT EXECUTED 60e24: 62e4 bhis 60e0a <== NOT EXECUTED if ( p[j] ) { memfile_free_blocks_in_table( (block_p **)&p[j], to_free); } } memfile_free_blocks_in_table( 60e26: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60e28: daab 0058 addl %a3@(88),%d5 <== NOT EXECUTED 60e2c: 2f05 movel %d5,%sp@- <== NOT EXECUTED 60e2e: 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 60e3a: e488 lsrl #2,%d0 <== NOT EXECUTED 60e3c: b084 cmpl %d4,%d0 <== NOT EXECUTED 60e3e: 62b6 bhis 60df6 <== NOT EXECUTED } } memfile_free_blocks_in_table( (block_p **)&info->triply_indirect[i], to_free ); } memfile_free_blocks_in_table( 60e40: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60e42: 486b 0058 pea %a3@(88) <== NOT EXECUTED 60e46: 4eb9 0006 0cdc jsr 60cdc <== NOT EXECUTED 60e4c: 508f addql #8,%sp <== NOT EXECUTED (block_p **)&info->triply_indirect, to_free ); } return 0; } 60e4e: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 60e54: 4e5e unlk %fp <== NOT EXECUTED 60e56: 4280 clrl %d0 <== NOT EXECUTED 60e58: 4e75 rts 00060cb4 : MEMFILE_STATIC int IMFS_memfile_remove_block( IMFS_jnode_t *the_jnode, unsigned int block ) { 60cb4: 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 ); 60cb8: 42a7 clrl %sp@- <== NOT EXECUTED 60cba: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 60cbe: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 60cc2: 4eb9 0006 0b1c jsr 60b1c <== NOT EXECUTED 60cc8: 2040 moveal %d0,%a0 <== NOT EXECUTED ptr = *block_entry_ptr; 60cca: 2010 movel %a0@,%d0 <== NOT EXECUTED *block_entry_ptr = 0; 60ccc: 4290 clrl %a0@ <== NOT EXECUTED memfile_free_block( ptr ); 60cce: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60cd0: 4eb9 0006 0ade jsr 60ade <== NOT EXECUTED return 1; } 60cd6: 4e5e unlk %fp <== NOT EXECUTED 60cd8: 7001 moveq #1,%d0 <== NOT EXECUTED 60cda: 4e75 rts 00061136 : IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 61136: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 6113a: 48d7 1cfc moveml %d2-%d7/%a2-%a4,%sp@ <== NOT EXECUTED 6113e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 61142: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 61146: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 6114a: 2e2e 0014 movel %fp@(20),%d7 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 6114e: 4a8a tstl %a2 <== NOT EXECUTED 61150: 6612 bnes 61164 <== NOT EXECUTED 61152: 4879 0007 b8d3 pea 7b8d3 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 61158: 4879 0007 b9f8 pea 7b9f8 <__func__.5822> <== NOT EXECUTED 6115e: 4878 02e1 pea 2e1 <== NOT EXECUTED 61162: 6018 bras 6117c <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 61164: 7005 moveq #5,%d0 <== NOT EXECUTED 61166: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 6116a: 671c beqs 61188 <== NOT EXECUTED 6116c: 4879 0007 b926 pea 7b926 <_POSIX_Threads_Default_attributes+0x1ec> <== NOT EXECUTED 61172: 4879 0007 b9f8 pea 7b9f8 <__func__.5822> <== NOT EXECUTED 61178: 4878 02e5 pea 2e5 <== NOT EXECUTED 6117c: 4879 0007 b8dd pea 7b8dd <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 61182: 4eb9 0005 a898 jsr 5a898 <__assert_func> <== NOT EXECUTED /* * Error check arguments */ assert( source ); 61188: 4a8b tstl %a3 <== NOT EXECUTED 6118a: 6612 bnes 6119e <== NOT EXECUTED 6118c: 4879 0007 95a8 pea 795a8 <== NOT EXECUTED 61192: 4879 0007 b9f8 pea 7b9f8 <__func__.5822> <== NOT EXECUTED 61198: 4878 02ed pea 2ed <== NOT EXECUTED 6119c: 60de bras 6117c <== NOT EXECUTED /* * If there is nothing to write, then quick exit. */ my_length = length; if ( !my_length ) 6119e: 4a87 tstl %d7 <== NOT EXECUTED 611a0: 660e bnes 611b0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 611a2: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 611a8: 7416 moveq #22,%d2 <== NOT EXECUTED 611aa: 2040 moveal %d0,%a0 <== NOT EXECUTED 611ac: 2082 movel %d2,%a0@ <== NOT EXECUTED 611ae: 6026 bras 611d6 <== 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; 611b0: 2007 movel %d7,%d0 <== NOT EXECUTED 611b2: d083 addl %d3,%d0 <== NOT EXECUTED if ( last_byte > the_jnode->info.file.size ) { 611b4: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 611b8: 6322 blss 611dc <== NOT EXECUTED status = IMFS_memfile_extend( the_jnode, last_byte ); 611ba: 2f00 movel %d0,%sp@- <== NOT EXECUTED 611bc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 611be: 4eb9 0006 0fa4 jsr 60fa4 <== NOT EXECUTED if ( status ) 611c4: 508f addql #8,%sp <== NOT EXECUTED 611c6: 4a80 tstl %d0 <== NOT EXECUTED 611c8: 6712 beqs 611dc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 611ca: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 611d0: 721c moveq #28,%d1 <== NOT EXECUTED 611d2: 2040 moveal %d0,%a0 <== NOT EXECUTED 611d4: 2081 movel %d1,%a0@ <== NOT EXECUTED 611d6: 74ff moveq #-1,%d2 <== NOT EXECUTED 611d8: 6000 012e braw 61308 <== NOT EXECUTED /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 611dc: 2439 0008 0280 movel 80280 ,%d2 <== NOT EXECUTED 611e2: 2803 movel %d3,%d4 <== NOT EXECUTED 611e4: 4c42 4800 remsl %d2,%d0,%d4 <== NOT EXECUTED 611e8: 4c42 4804 remsl %d2,%d4,%d4 <== NOT EXECUTED 611ec: 2600 movel %d0,%d3 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 611ee: 2a04 movel %d4,%d5 <== NOT EXECUTED if ( start_offset ) { 611f0: 4a80 tstl %d0 <== NOT EXECUTED 611f2: 6608 bnes 611fc <== NOT EXECUTED 611f4: 2607 movel %d7,%d3 <== NOT EXECUTED 611f6: 2c0b movel %a3,%d6 <== NOT EXECUTED 611f8: 4282 clrl %d2 <== NOT EXECUTED 611fa: 6054 bras 61250 <== 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 ); 611fc: 42a7 clrl %sp@- <== NOT EXECUTED 611fe: 2f04 movel %d4,%sp@- <== NOT EXECUTED 61200: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61202: 4eb9 0006 0b1c jsr 60b1c <== NOT EXECUTED assert( block_ptr ); 61208: 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 ); 6120e: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 61210: 4a80 tstl %d0 <== NOT EXECUTED 61212: 6614 bnes 61228 <== NOT EXECUTED 61214: 4879 0007 b956 pea 7b956 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 6121a: 4879 0007 b9f8 pea 7b9f8 <__func__.5822> <== NOT EXECUTED 61220: 4878 031a pea 31a <== NOT EXECUTED 61224: 6000 ff56 braw 6117c <== 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; 61228: 9483 subl %d3,%d2 <== NOT EXECUTED 6122a: be82 cmpl %d2,%d7 <== NOT EXECUTED 6122c: 6402 bccs 61230 <== NOT EXECUTED 6122e: 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 ); 61230: 2f02 movel %d2,%sp@- <== NOT EXECUTED src += to_copy; 61232: 2c0b movel %a3,%d6 <== NOT EXECUTED block++; 61234: 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 ); 61236: 2f0b movel %a3,%sp@- <== NOT EXECUTED 61238: d690 addl %a0@,%d3 <== NOT EXECUTED 6123a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6123c: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED src += to_copy; block++; my_length -= to_copy; 61242: 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; 61244: dc82 addl %d2,%d6 <== NOT EXECUTED block++; 61246: 5285 addql #1,%d5 <== NOT EXECUTED my_length -= to_copy; 61248: 9682 subl %d2,%d3 <== NOT EXECUTED copied += to_copy; 6124a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; 61250: 2839 0008 0280 movel 80280 ,%d4 <== NOT EXECUTED while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 61256: 49f9 0006 0b1c lea 60b1c ,%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 ); 6125c: 47f9 0006 aeec lea 6aeec ,%a3 <== NOT EXECUTED 61262: 603e bras 612a2 <== 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 ); 61264: 42a7 clrl %sp@- <== NOT EXECUTED 61266: 2f05 movel %d5,%sp@- <== NOT EXECUTED 61268: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6126a: 4e94 jsr %a4@ <== NOT EXECUTED assert( block_ptr ); 6126c: 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 ); 61272: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 61274: 4a80 tstl %d0 <== NOT EXECUTED 61276: 6614 bnes 6128c <== NOT EXECUTED 61278: 4879 0007 b956 pea 7b956 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 6127e: 4879 0007 b9f8 pea 7b9f8 <__func__.5822> <== NOT EXECUTED 61284: 4878 032e pea 32e <== NOT EXECUTED 61288: 6000 fef2 braw 6117c <== 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 ); 6128c: 2f04 movel %d4,%sp@- <== NOT EXECUTED src += to_copy; block++; 6128e: 5285 addql #1,%d5 <== NOT EXECUTED my_length -= to_copy; 61290: 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 ); 61292: 2f06 movel %d6,%sp@- <== NOT EXECUTED src += to_copy; 61294: 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 ); 61296: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 61298: 4e93 jsr %a3@ <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 6129a: d484 addl %d4,%d2 <== NOT EXECUTED 6129c: 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 ) { 612a2: b6b9 0008 0280 cmpl 80280 ,%d3 <== NOT EXECUTED 612a8: 64ba bccs 61264 <== NOT EXECUTED */ assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); to_copy = my_length; if ( my_length ) { 612aa: 4a83 tstl %d3 <== NOT EXECUTED 612ac: 6740 beqs 612ee <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 612ae: 42a7 clrl %sp@- <== NOT EXECUTED 612b0: 2f05 movel %d5,%sp@- <== NOT EXECUTED 612b2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 612b4: 4eb9 0006 0b1c jsr 60b1c <== NOT EXECUTED assert( block_ptr ); 612ba: 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 ); 612c0: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 612c2: 4a80 tstl %d0 <== NOT EXECUTED 612c4: 6614 bnes 612da <== NOT EXECUTED 612c6: 4879 0007 b956 pea 7b956 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 612cc: 4879 0007 b9f8 pea 7b9f8 <__func__.5822> <== NOT EXECUTED 612d2: 4878 0344 pea 344 <== NOT EXECUTED 612d6: 6000 fea4 braw 6117c <== 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 ); 612da: 2f03 movel %d3,%sp@- <== NOT EXECUTED my_length = 0; copied += to_copy; 612dc: 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 ); 612de: 2f06 movel %d6,%sp@- <== NOT EXECUTED 612e0: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 612e2: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED my_length = 0; copied += to_copy; 612e8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } IMFS_atime_mtime_update( the_jnode ); 612ee: 42a7 clrl %sp@- <== NOT EXECUTED 612f0: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 612f4: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 612fa: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 612fe: 508f addql #8,%sp <== NOT EXECUTED 61300: 2540 003c movel %d0,%a2@(60) <== NOT EXECUTED 61304: 2540 0040 movel %d0,%a2@(64) <== NOT EXECUTED return copied; } 61308: 2002 movel %d2,%d0 <== NOT EXECUTED 6130a: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 61310: 4e5e unlk %fp <== NOT EXECUTED 61312: 4e75 rts 000489b4 : const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 489b4: 4e56 ffbc linkw %fp,#-68 <== NOT EXECUTED 489b8: 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 ); 489bc: 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 */ ) { 489c0: 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 ); 489c4: 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 */ ) { 489c8: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 489cc: 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 ); 489d0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 489d4: 4eb9 0004 882c jsr 4882c <== NOT EXECUTED /* * Figure out what type of IMFS node this is. */ if ( S_ISDIR(mode) ) 489da: 2004 movel %d4,%d0 <== NOT EXECUTED 489dc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 489e2: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 489e8: 0c80 0000 4000 cmpil #16384,%d0 <== NOT EXECUTED 489ee: 673a beqs 48a2a <== NOT EXECUTED type = IMFS_DIRECTORY; else if ( S_ISREG(mode) ) 489f0: 0c80 0000 8000 cmpil #32768,%d0 <== NOT EXECUTED 489f6: 6606 bnes 489fe <== NOT EXECUTED 489f8: 303c 0005 movew #5,%d0 <== NOT EXECUTED 489fc: 602e bras 48a2c <== NOT EXECUTED type = IMFS_MEMORY_FILE; else if ( S_ISBLK(mode) || S_ISCHR(mode) ) { 489fe: 0c80 0000 6000 cmpil #24576,%d0 <== NOT EXECUTED 48a04: 6708 beqs 48a0e <== NOT EXECUTED 48a06: 0c80 0000 2000 cmpil #8192,%d0 <== NOT EXECUTED 48a0c: 660c bnes 48a1a <== NOT EXECUTED type = IMFS_DEVICE; rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor ); 48a0e: 2d42 ffec movel %d2,%fp@(-20) <== NOT EXECUTED 48a12: 7002 moveq #2,%d0 <== NOT EXECUTED 48a14: 2d43 fff0 movel %d3,%fp@(-16) <== NOT EXECUTED 48a18: 6012 bras 48a2c <== NOT EXECUTED } else { rtems_set_errno_and_return_minus_one( EINVAL ); 48a1a: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48a20: 7416 moveq #22,%d2 <== NOT EXECUTED 48a22: 2040 moveal %d0,%a0 <== NOT EXECUTED 48a24: 2082 movel %d2,%a0@ <== NOT EXECUTED 48a26: 70ff moveq #-1,%d0 <== NOT EXECUTED 48a28: 6034 bras 48a5e <== NOT EXECUTED 48a2a: 7001 moveq #1,%d0 <== NOT EXECUTED /* * Allocate and fill in an IMFS jnode */ new_node = IMFS_create_node( 48a2c: 486e ffec pea %fp@(-20) <== NOT EXECUTED 48a30: 2f04 movel %d4,%sp@- <== NOT EXECUTED 48a32: 486e ffcb pea %fp@(-53) <== NOT EXECUTED 48a36: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48a38: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 48a3c: 4eb9 0004 ad10 jsr 4ad10 <== NOT EXECUTED new_name, mode, &info ); if ( !new_node ) 48a42: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 48a48: 4a80 tstl %d0 <== NOT EXECUTED 48a4a: 6704 beqs 48a50 <== NOT EXECUTED 48a4c: 4280 clrl %d0 <== NOT EXECUTED 48a4e: 600e bras 48a5e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM ); 48a50: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48a56: 2040 moveal %d0,%a0 <== NOT EXECUTED 48a58: 720c moveq #12,%d1 <== NOT EXECUTED 48a5a: 70ff moveq #-1,%d0 <== NOT EXECUTED 48a5c: 2081 movel %d1,%a0@ <== NOT EXECUTED return 0; } 48a5e: 4cee 001c ffbc moveml %fp@(-68),%d2-%d4 <== NOT EXECUTED 48a64: 4e5e unlk %fp <== NOT EXECUTED 48a66: 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 8a8c jsr 68a8c <__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 ... 00048a68 : #include "imfs.h" rtems_filesystem_node_types_t IMFS_node_type( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 48a68: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48a6c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48a70: 2050 moveal %a0@,%a0 <== NOT EXECUTED IMFS_jnode_t *node; node = pathloc->node_access; return node->type; } 48a72: 4e5e unlk %fp <== NOT EXECUTED 48a74: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED 48a78: 4e75 rts <== NOT EXECUTED ... 000435a2 : */ void IMFS_print_jnode( IMFS_jnode_t *the_jnode ) { 435a2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 435a6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 435a8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 435ac: 2f02 movel %d2,%sp@- <== NOT EXECUTED assert( the_jnode ); 435ae: 4a8a tstl %a2 <== NOT EXECUTED 435b0: 6614 bnes 435c6 <== NOT EXECUTED 435b2: 4879 0005 a63e pea 5a63e <== NOT EXECUTED 435b8: 4879 0005 a7c6 pea 5a7c6 <__func__.6215> <== NOT EXECUTED 435be: 4878 0038 pea 38 <== NOT EXECUTED 435c2: 6000 00c6 braw 4368a <== NOT EXECUTED fprintf(stdout, "%s", the_jnode->name ); 435c6: 2079 0005 c740 moveal 5c740 <_impure_ptr>,%a0 <== NOT EXECUTED 435cc: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED switch( the_jnode->type ) { 435d0: 7405 moveq #5,%d2 <== NOT EXECUTED IMFS_jnode_t *the_jnode ) { assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); 435d2: 486a 000c pea %a2@(12) <== NOT EXECUTED 435d6: 4eb9 0004 f776 jsr 4f776 <== NOT EXECUTED switch( the_jnode->type ) { 435dc: 222a 0048 movel %a2@(72),%d1 <== NOT EXECUTED 435e0: 2001 movel %d1,%d0 <== NOT EXECUTED 435e2: 508f addql #8,%sp <== NOT EXECUTED 435e4: 5380 subql #1,%d0 <== NOT EXECUTED 435e6: b480 cmpl %d0,%d2 <== NOT EXECUTED 435e8: 6500 00ce bcsw 436b8 <== NOT EXECUTED 435ec: 2079 0005 c740 moveal 5c740 <_impure_ptr>,%a0 <== NOT EXECUTED 435f2: 303b 0a08 movew %pc@(435fc ,%d0:l:2),%d0 <== NOT EXECUTED 435f6: 48c0 extl %d0 <== NOT EXECUTED 435f8: 4efb 0802 jmp %pc@(435fc ,%d0:l) <== NOT EXECUTED 435fc: 000c 014 <== NOT EXECUTED 435fe: 0020 040 <== NOT EXECUTED 43600: 006e 0156 <== NOT EXECUTED 43602: 009a 0052 0030 oril #5374000,%d2 <== NOT EXECUTED case IMFS_DIRECTORY: fprintf(stdout, "/" ); 43608: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4360c: 4878 002f pea 2f <== NOT EXECUTED 43610: 4eb9 0004 f654 jsr 4f654 <== NOT EXECUTED 43616: 508f addql #8,%sp <== NOT EXECUTED 43618: 6000 00c8 braw 436e2 <== NOT EXECUTED break; case IMFS_DEVICE: fprintf(stdout, " (device %" PRId32 ", %" PRId32 ")", 4361c: 2f2a 0050 movel %a2@(80),%sp@- <== NOT EXECUTED 43620: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 43624: 4879 0005 a694 pea 5a694 <== NOT EXECUTED 4362a: 600e bras 4363a <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor ); break; case IMFS_LINEAR_FILE: fprintf(stdout, " (file %" PRId32 " %p)", 4362c: 2f2a 0050 movel %a2@(80),%sp@- <== NOT EXECUTED 43630: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 43634: 4879 0005 a6a7 pea 5a6a7 <== NOT EXECUTED 4363a: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4363e: 4eb9 0004 f614 jsr 4f614 <== NOT EXECUTED 43644: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4364a: 6000 0096 braw 436e2 <== NOT EXECUTED the_jnode->info.file.indirect, the_jnode->info.file.doubly_indirect, the_jnode->info.file.triply_indirect ); #else fprintf(stdout, " (file %" PRId32 ")", 4364e: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 43652: 4879 0005 a6b6 pea 5a6b6 <== NOT EXECUTED 43658: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4365c: 4eb9 0004 f614 jsr 4f614 <== NOT EXECUTED 43662: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43668: 6078 bras 436e2 <== NOT EXECUTED (uint32_t)the_jnode->info.file.size ); #endif break; case IMFS_HARD_LINK: fprintf(stdout, " links not printed\n" ); 4366a: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4366e: 4879 0005 a6c2 pea 5a6c2 <== NOT EXECUTED 43674: 4eb9 0004 f776 jsr 4f776 <== NOT EXECUTED assert(0); 4367a: 4879 0005 9e98 pea 59e98 <== NOT EXECUTED 43680: 4879 0005 a7c6 pea 5a7c6 <__func__.6215> <== NOT EXECUTED 43686: 4878 005d pea 5d <== NOT EXECUTED 4368a: 4879 0005 a648 pea 5a648 <== NOT EXECUTED 43690: 4eb9 0004 3da4 jsr 43da4 <__assert_func> <== NOT EXECUTED break; case IMFS_SYM_LINK: fprintf(stdout, " links not printed\n" ); 43696: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4369a: 4879 0005 a6c2 pea 5a6c2 <== NOT EXECUTED 436a0: 4eb9 0004 f776 jsr 4f776 <== NOT EXECUTED assert(0); 436a6: 4879 0005 9e98 pea 59e98 <== NOT EXECUTED 436ac: 4879 0005 a7c6 pea 5a7c6 <__func__.6215> <== NOT EXECUTED 436b2: 4878 0062 pea 62 <== NOT EXECUTED 436b6: 60d2 bras 4368a <== NOT EXECUTED break; default: fprintf(stdout, " bad type %d\n", the_jnode->type ); 436b8: 2f01 movel %d1,%sp@- <== NOT EXECUTED 436ba: 4879 0005 a6d6 pea 5a6d6 <== NOT EXECUTED 436c0: 2079 0005 c740 moveal 5c740 <_impure_ptr>,%a0 <== NOT EXECUTED 436c6: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 436ca: 4eb9 0004 f614 jsr 4f614 <== NOT EXECUTED assert(0); 436d0: 4879 0005 9e98 pea 59e98 <== NOT EXECUTED 436d6: 4879 0005 a7c6 pea 5a7c6 <__func__.6215> <== NOT EXECUTED 436dc: 4878 0067 pea 67 <== NOT EXECUTED 436e0: 60a8 bras 4368a <== NOT EXECUTED break; } puts(""); } 436e2: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 436e6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 436ea: 203c 0005 ada9 movel #372137,%d0 <== NOT EXECUTED 436f0: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 436f4: 4e5e unlk %fp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 436f6: 4ef9 0005 0df8 jmp 50df8 <== 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 8a8c jsr 68a8c <__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 ... 00048a7c : */ int IMFS_rmnod( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 48a7c: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 48a80: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48a82: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 48a86: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 48a88: 2453 moveal %a3@,%a2 <== NOT EXECUTED /* * Take the node out of the parent's chain that contains this node */ if ( the_jnode->Parent != NULL ) { 48a8a: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 48a8e: 670e beqs 48a9e <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void rtems_chain_extract( rtems_chain_node *the_node ) { _Chain_Extract( the_node ); 48a90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48a92: 4eb9 0004 a1c4 jsr 4a1c4 <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( (rtems_chain_node *) the_jnode ); the_jnode->Parent = NULL; 48a98: 588f addql #4,%sp <== NOT EXECUTED 48a9a: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED /* * Decrement the link counter and see if we can free the space. */ the_jnode->st_nlink--; 48a9e: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 48aa2: 5380 subql #1,%d0 <== NOT EXECUTED 48aa4: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( the_jnode ); 48aa8: 42a7 clrl %sp@- <== NOT EXECUTED 48aaa: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 48aae: 4eb9 0004 9010 jsr 49010 <== NOT EXECUTED 48ab4: 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) ) { 48aba: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48abc: 4eb9 0004 90e2 jsr 490e2 <== NOT EXECUTED 48ac2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48ac8: 4a80 tstl %d0 <== NOT EXECUTED 48aca: 663a bnes 48b06 <== NOT EXECUTED 48acc: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 48ad0: 6634 bnes 48b06 <== NOT EXECUTED /* * Is rtems_filesystem_current this node? */ if ( rtems_filesystem_current.node_access == pathloc->node_access ) 48ad2: 2079 0005 6764 moveal 56764 ,%a0 <== NOT EXECUTED 48ad8: 2653 moveal %a3@,%a3 <== NOT EXECUTED 48ada: b7e8 0004 cmpal %a0@(4),%a3 <== NOT EXECUTED 48ade: 6604 bnes 48ae4 <== NOT EXECUTED rtems_filesystem_current.node_access = NULL; 48ae0: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED /* * Free memory associated with a memory file. */ if ( the_jnode->type == IMFS_SYM_LINK ) { 48ae4: 7004 moveq #4,%d0 <== NOT EXECUTED 48ae6: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 48aea: 6610 bnes 48afc <== NOT EXECUTED if ( the_jnode->info.sym_link.name ) 48aec: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 48af0: 670a beqs 48afc <== NOT EXECUTED free( (void*) the_jnode->info.sym_link.name ); 48af2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48af4: 4eb9 0004 8e8c jsr 48e8c <== NOT EXECUTED 48afa: 588f addql #4,%sp <== NOT EXECUTED } free( the_jnode ); 48afc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48afe: 4eb9 0004 8e8c jsr 48e8c <== NOT EXECUTED 48b04: 588f addql #4,%sp <== NOT EXECUTED } return 0; } 48b06: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 48b0a: 266e fff4 moveal %fp@(-12),%a3 <== NOT EXECUTED 48b0e: 4e5e unlk %fp <== NOT EXECUTED 48b10: 4280 clrl %d0 <== NOT EXECUTED 48b12: 4e75 rts 00048b14 : int IMFS_stat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 48b14: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48b18: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; IMFS_device_t *io; the_jnode = loc->node_access; 48b1c: 2050 moveal %a0@,%a0 <== NOT EXECUTED int IMFS_stat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 48b1e: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED IMFS_device_t *io; the_jnode = loc->node_access; switch ( the_jnode->type ) { 48b22: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED 48b26: 7204 moveq #4,%d1 <== NOT EXECUTED 48b28: b280 cmpl %d0,%d1 <== NOT EXECUTED 48b2a: 672a beqs 48b56 <== NOT EXECUTED 48b2c: 6d0a blts 48b38 <== NOT EXECUTED 48b2e: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 48b32: b280 cmpl %d0,%d1 <== NOT EXECUTED 48b34: 6626 bnes 48b5c <== NOT EXECUTED 48b36: 6008 bras 48b40 <== NOT EXECUTED 48b38: 7206 moveq #6,%d1 <== NOT EXECUTED 48b3a: b280 cmpl %d0,%d1 <== NOT EXECUTED 48b3c: 6d1e blts 48b5c <== NOT EXECUTED 48b3e: 600e bras 48b4e <== NOT EXECUTED case IMFS_DEVICE: io = &the_jnode->info.device; buf->st_dev = rtems_filesystem_make_dev_t( io->major, io->minor ); 48b40: 2028 0050 movel %a0@(80),%d0 <== NOT EXECUTED 48b44: 22a8 004c movel %a0@(76),%a1@ <== NOT EXECUTED 48b48: 2340 0004 movel %d0,%a1@(4) <== NOT EXECUTED 48b4c: 6020 bras 48b6e <== NOT EXECUTED break; case IMFS_LINEAR_FILE: case IMFS_MEMORY_FILE: buf->st_size = the_jnode->info.file.size; 48b4e: 2368 004c 001e movel %a0@(76),%a1@(30) <== NOT EXECUTED 48b54: 6018 bras 48b6e <== NOT EXECUTED break; case IMFS_SYM_LINK: buf->st_size = 0; 48b56: 42a9 001e clrl %a1@(30) <== NOT EXECUTED 48b5a: 6012 bras 48b6e <== NOT EXECUTED break; default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 48b5c: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48b62: 2040 moveal %d0,%a0 <== NOT EXECUTED 48b64: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 48b6a: 70ff moveq #-1,%d0 <== NOT EXECUTED 48b6c: 6032 bras 48ba0 <== 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; 48b6e: 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; 48b70: 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; 48b76: 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; 48b7c: 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; 48b82: 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; 48b88: 3368 0038 0012 movew %a0@(56),%a1@(18) <== NOT EXECUTED buf->st_gid = the_jnode->st_gid; 48b8e: 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; 48b94: 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; 48b9a: 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; } 48ba0: 4e5e unlk %fp <== NOT EXECUTED 48ba2: 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 d5c8 jsr 6d5c8 <== 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 8a8c jsr 68a8c <__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 9df4 jsr 59df4 <== 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 8a8c jsr 68a8c <__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 8a8c jsr 68a8c <__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 aeec jsr 6aeec <== 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 9f44 jsr 59f44 <== 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 8a8c jsr 68a8c <__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 8a8c jsr 68a8c <__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 6cc4 moveal 56cc4 ,%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 9330 jsr 49330 <== NOT EXECUTED starting_address = start; /* * Initialize the optional sbrk support for extending the heap */ if (rtems_malloc_sbrk_helpers) { 422c4: 2079 0005 6cc8 moveal 56cc8 ,%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 7f16 moveal 57f16 <_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 bfbc jsr 4bfbc <== 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 7d20 pea 57d20 <== NOT EXECUTED 42308: 4eb9 0004 5e28 jsr 45e28 <_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 5580 jsr 45580 <== NOT EXECUTED rtems_print_buffer( (start + length) - 48, 48 ); rtems_fatal_error_occurred( RTEMS_NO_MEMORY ); } #endif MSBUMP(space_available, length); 42320: d7b9 0005 7d78 addl %d3,57d78 <== 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 0008 027c moveal 8027c ,%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 3730 tstl 93730 <== 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 372c lea 9372c ,%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 87fc jsr 487fc <== NOT EXECUTED 43d0c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43d0e: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 43d12: 4879 0007 90d0 pea 790d0 <== NOT EXECUTED 43d18: 2f39 0008 0278 movel 80278 ,%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 90dd pea 790dd <== NOT EXECUTED 43d32: 2f39 0008 0278 movel 80278 ,%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 0008 027c moveal 8027c ,%a0 <== NOT EXECUTED 43d58: 4879 0007 90eb pea 790eb <== NOT EXECUTED 43d5e: 2f39 0008 0278 movel 80278 ,%sp@- <== NOT EXECUTED 43d64: 4e90 jsr %a0@ <== NOT EXECUTED 43d66: 2079 0008 027c moveal 8027c ,%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 0008 0274 tstl 80274 <== NOT EXECUTED 43d78: 6612 bnes 43d8c <== NOT EXECUTED (*print_handler)( print_context, "Unavailable\n" ); 43d7a: 4879 0007 9109 pea 79109 <== NOT EXECUTED 43d80: 2f39 0008 0278 movel 80278 ,%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 9116 pea 79116 <== NOT EXECUTED 43d94: 2f39 0008 0278 movel 80278 ,%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 0008 0274 tstl 80274 <== 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 38c8 movel 938c8 <_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 371c movel %d0,9371c <== NOT EXECUTED p[1] = 0x0BAD0D06; 43faa: 203c 0bad 0d06 movel #195890438,%d0 <== NOT EXECUTED 43fb0: 23c0 0009 3720 movel %d0,93720 <== NOT EXECUTED p[2] = 0xDEADF00D; /* DEAD FOOD GOOD DOG */ 43fb6: 203c dead f00d movel #-559026163,%d0 <== NOT EXECUTED 43fbc: 23c0 0009 3724 movel %d0,93724 <== NOT EXECUTED p[3] = 0x600D0D06; 43fc2: 203c 600d 0d06 movel #1611468038,%d0 <== NOT EXECUTED 43fc8: 23c0 0009 3728 movel %d0,93728 <== 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 386c movel 9386c <_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 3730 movel %d1,93730 <== 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 372c movel %d0,9372c <== NOT EXECUTED (char *) _CPU_Interrupt_stack_low; Stack_check_Dope_stack(&Stack_check_Interrupt_stack); 43ff0: 4eb9 0006 b05c jsr 6b05c <== 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 0008 0274 movel %d0,80274 <== 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 65c6 lea 465c6 ,%a3 <== NOT EXECUTED 43e46: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43e48: 4879 0007 917d pea 7917d <== 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 91bb pea 791bb <== 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 91e9 pea 791e9 <== 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 912c jsr 4912c <== NOT EXECUTED 0004585c <_API_Mutex_Allocate>: #include void _API_Mutex_Allocate( API_Mutex_Control **the_mutex ) { 4585c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 45860: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45862: 2f02 movel %d2,%sp@- <== NOT EXECUTED CORE_mutex_Attributes attr = { CORE_MUTEX_NESTING_IS_ERROR, FALSE, CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT, 0 }; 45864: 240e movel %fp,%d2 <== NOT EXECUTED 45866: 4878 000e pea e <== NOT EXECUTED 4586a: 0682 ffff fff2 addil #-14,%d2 <== NOT EXECUTED 45870: 4879 0005 514e pea 5514e <== NOT EXECUTED 45876: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45878: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED mutex = (API_Mutex_Control *) _Objects_Allocate( &_API_Mutex_Information ); 4587e: 4879 0005 7f64 pea 57f64 <_API_Mutex_Information> <== NOT EXECUTED 45884: 4eb9 0004 60c8 jsr 460c8 <_Objects_Allocate> <== NOT EXECUTED _CORE_mutex_Initialize( &mutex->Mutex, &attr, CORE_MUTEX_UNLOCKED ); 4588a: 4878 0001 pea 1 <== NOT EXECUTED FALSE, CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT, 0 }; mutex = (API_Mutex_Control *) _Objects_Allocate( &_API_Mutex_Information ); 4588e: 2440 moveal %d0,%a2 <== NOT EXECUTED _CORE_mutex_Initialize( &mutex->Mutex, &attr, CORE_MUTEX_UNLOCKED ); 45890: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45892: 486a 0010 pea %a2@(16) <== NOT EXECUTED 45896: 4eb9 0004 59a8 jsr 459a8 <_CORE_mutex_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4589c: 2079 0005 7f7e moveal 57f7e <_API_Mutex_Information+0x1a>,%a0 <== NOT EXECUTED 458a2: 4280 clrl %d0 <== NOT EXECUTED 458a4: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 458a8: 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; 458ac: 7001 moveq #1,%d0 <== NOT EXECUTED _Objects_Open_u32( &_API_Mutex_Information, &mutex->Object, 1 ); *the_mutex = mutex; 458ae: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 458b4: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED 458b8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 458bc: 208a movel %a2,%a0@ <== NOT EXECUTED } 458be: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 458c2: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 458c6: 4e5e unlk %fp <== NOT EXECUTED 458c8: 4e75 rts <== NOT EXECUTED ... 00045900 <_API_Mutex_Initialization>: #include void _API_Mutex_Initialization( uint32_t maximum_mutexes ) { 45900: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 45904: 42a7 clrl %sp@- <== NOT EXECUTED 45906: 42a7 clrl %sp@- <== NOT EXECUTED 45908: 4878 0072 pea 72 <== NOT EXECUTED 4590c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45910: 4878 0002 pea 2 <== NOT EXECUTED 45914: 4878 0001 pea 1 <== NOT EXECUTED 45918: 4879 0005 7f64 pea 57f64 <_API_Mutex_Information> <== NOT EXECUTED 4591e: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 45924: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , TRUE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4592a: 4e5e unlk %fp <== NOT EXECUTED 4592c: 4e75 rts <== NOT EXECUTED ... 000458cc <_API_Mutex_Lock>: #include void _API_Mutex_Lock( API_Mutex_Control *the_mutex ) { 458cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 458d0: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED #include void _API_Mutex_Lock( API_Mutex_Control *the_mutex ) { 458d6: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 458da: 40c0 movew %sr,%d0 <== NOT EXECUTED 458dc: 8280 orl %d0,%d1 <== NOT EXECUTED 458de: 46c1 movew %d1,%sr <== NOT EXECUTED _CORE_mutex_Seize( 458e0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 458e2: 42a7 clrl %sp@- <== NOT EXECUTED 458e4: 4878 0001 pea 1 <== NOT EXECUTED 458e8: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 458ec: 4868 0010 pea %a0@(16) <== NOT EXECUTED 458f0: 4eb9 0004 5abc jsr 45abc <_CORE_mutex_Seize> <== NOT EXECUTED 458f6: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED the_mutex->Object.id, TRUE, 0, level ); } 458fc: 4e5e unlk %fp <== NOT EXECUTED 458fe: 4e75 rts 00045930 <_API_Mutex_Unlock>: rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 45930: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED #include void _API_Mutex_Unlock( API_Mutex_Control *the_mutex ) { 45936: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4593a: 5280 addql #1,%d0 <== NOT EXECUTED 4593c: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED 45942: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED _Thread_Disable_dispatch(); _CORE_mutex_Surrender( 45946: 42a7 clrl %sp@- <== NOT EXECUTED 45948: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4594c: 4868 0010 pea %a0@(16) <== NOT EXECUTED 45950: 4eb9 0004 5b64 jsr 45b64 <_CORE_mutex_Surrender> <== NOT EXECUTED &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); 45956: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 4595c: 4e5e unlk %fp <== NOT EXECUTED _CORE_mutex_Surrender( &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); 4595e: 4ef9 0004 6d0a jmp 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 00045842 <_API_extensions_Add>: */ void _API_extensions_Add( API_extensions_Control *the_extension ) { 45842: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Chain_Append( &_API_extensions_List, &the_extension->Node ); 45846: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4584a: 4879 0005 8026 pea 58026 <_API_extensions_List> <== NOT EXECUTED 45850: 4eb9 0004 5964 jsr 45964 <_Chain_Append> <== NOT EXECUTED 45856: 508f addql #8,%sp <== NOT EXECUTED } 45858: 4e5e unlk %fp <== NOT EXECUTED 4585a: 4e75 rts 0004579c <_API_extensions_Initialization>: * * _API_extensions_Initialization */ void _API_extensions_Initialization( void ) { 4579c: 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); 457a0: 41f9 0005 8026 lea 58026 <_API_extensions_List>,%a0 <== NOT EXECUTED _Chain_Initialize_empty( &_API_extensions_List ); } 457a6: 4e5e unlk %fp <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 457a8: 23c8 0005 802e movel %a0,5802e <_API_extensions_List+0x8> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 457ae: 20bc 0005 802a movel #360490,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 457b4: 42b9 0005 802a clrl 5802a <_API_extensions_List+0x4> <== NOT EXECUTED 457ba: 4e75 rts 000457e6 <_API_extensions_Run_postdriver>: * * _API_extensions_Run_postdriver */ void _API_extensions_Run_postdriver( void ) { 457e6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 457ea: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; 457ec: 2479 0005 8026 moveal 58026 <_API_extensions_List>,%a2 <== NOT EXECUTED 457f2: 600c bras 45800 <_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 ) 457f4: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED 457f8: 4a88 tstl %a0 <== NOT EXECUTED 457fa: 6702 beqs 457fe <_API_extensions_Run_postdriver+0x18> <== NOT EXECUTED (*the_extension->postdriver_hook)(); 457fc: 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 ) { 457fe: 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 ) ; 45800: b5fc 0005 802a cmpal #360490,%a2 <== NOT EXECUTED 45806: 66ec bnes 457f4 <_API_extensions_Run_postdriver+0xe> <== NOT EXECUTED the_extension = (API_extensions_Control *) the_node; if ( the_extension->postdriver_hook ) (*the_extension->postdriver_hook)(); } } 45808: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4580c: 4e5e unlk %fp <== NOT EXECUTED 4580e: 4e75 rts 00045810 <_API_extensions_Run_postswitch>: * * _API_extensions_Run_postswitch */ void _API_extensions_Run_postswitch( void ) { 45810: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45814: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; 45816: 2479 0005 8026 moveal 58026 <_API_extensions_List>,%a2 <== NOT EXECUTED 4581c: 6014 bras 45832 <_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 ) 4581e: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 45822: 4a88 tstl %a0 <== NOT EXECUTED 45824: 670a beqs 45830 <_API_extensions_Run_postswitch+0x20> <== NOT EXECUTED (*the_extension->postswitch_hook)( _Thread_Executing ); 45826: 2f39 0005 7f3a movel 57f3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 4582c: 4e90 jsr %a0@ <== NOT EXECUTED 4582e: 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 ) { 45830: 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 ) ; 45832: b5fc 0005 802a cmpal #360490,%a2 <== NOT EXECUTED 45838: 66e4 bnes 4581e <_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 ); } } 4583a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4583e: 4e5e unlk %fp <== NOT EXECUTED 45840: 4e75 rts 000457bc <_API_extensions_Run_predriver>: * * _API_extensions_Run_predriver */ void _API_extensions_Run_predriver( void ) { 457bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 457c0: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; 457c2: 2479 0005 8026 moveal 58026 <_API_extensions_List>,%a2 <== NOT EXECUTED 457c8: 600c bras 457d6 <_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 ) 457ca: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 457ce: 4a88 tstl %a0 <== NOT EXECUTED 457d0: 6702 beqs 457d4 <_API_extensions_Run_predriver+0x18> <== NOT EXECUTED (*the_extension->predriver_hook)(); 457d2: 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 ) { 457d4: 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 ) ; 457d6: b5fc 0005 802a cmpal #360490,%a2 <== NOT EXECUTED 457dc: 66ec bnes 457ca <_API_extensions_Run_predriver+0xe> <== NOT EXECUTED the_extension = (API_extensions_Control *) the_node; if ( the_extension->predriver_hook ) (*the_extension->predriver_hook)(); } } 457de: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 457e2: 4e5e unlk %fp <== NOT EXECUTED 457e4: 4e75 rts 00049d48 <_Barrier_Manager_initialization>: */ void _Barrier_Manager_initialization( uint32_t maximum_barriers ) { 49d48: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49d4c: 4878 0004 pea 4 <== NOT EXECUTED 49d50: 42a7 clrl %sp@- <== NOT EXECUTED 49d52: 4878 0060 pea 60 <== NOT EXECUTED 49d56: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49d5a: 4878 000a pea a <== NOT EXECUTED 49d5e: 4878 0002 pea 2 <== NOT EXECUTED 49d62: 4879 0005 871e pea 5871e <_Barrier_Information> <== NOT EXECUTED 49d68: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49d6e: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 49d74: 4e5e unlk %fp <== NOT EXECUTED 49d76: 4e75 rts 0004aae4 <_Barrier_Translate_core_barrier_return_code>: }; rtems_status_code _Barrier_Translate_core_barrier_return_code ( CORE_barrier_Status the_barrier_status ) { 4aae4: 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]; } 4aae8: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED }; rtems_status_code _Barrier_Translate_core_barrier_return_code ( CORE_barrier_Status the_barrier_status ) { 4aaec: 41f9 0005 8880 lea 58880 <_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]; } 4aaf2: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4aaf6: 4e5e unlk %fp <== NOT EXECUTED 4aaf8: 4e75 rts <== NOT EXECUTED ... 000474e0 <_CORE_RWLock_Initialize>: void _CORE_RWLock_Initialize( CORE_RWLock_Control *the_rwlock, CORE_RWLock_Attributes *the_rwlock_attributes ) { 474e0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED the_rwlock->number_of_waiting_threads = 0; */ the_rwlock->number_of_readers = 0; the_rwlock->current_state = CORE_RWLOCK_UNLOCKED; _Thread_queue_Initialize( 474e4: 4878 0003 pea 3 <== NOT EXECUTED void _CORE_RWLock_Initialize( CORE_RWLock_Control *the_rwlock, CORE_RWLock_Attributes *the_rwlock_attributes ) { 474e8: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED the_rwlock->number_of_waiting_threads = 0; */ the_rwlock->number_of_readers = 0; the_rwlock->current_state = CORE_RWLOCK_UNLOCKED; _Thread_queue_Initialize( 474ec: 2f3c 0002 0000 movel #131072,%sp@- <== NOT EXECUTED CORE_RWLock_Control *the_rwlock, CORE_RWLock_Attributes *the_rwlock_attributes ) { the_rwlock->Attributes = *the_rwlock_attributes; 474f2: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED the_rwlock->number_of_waiting_threads = 0; */ the_rwlock->number_of_readers = 0; the_rwlock->current_state = CORE_RWLOCK_UNLOCKED; _Thread_queue_Initialize( 474f6: 42a7 clrl %sp@- <== NOT EXECUTED CORE_RWLock_Control *the_rwlock, CORE_RWLock_Attributes *the_rwlock_attributes ) { the_rwlock->Attributes = *the_rwlock_attributes; 474f8: 2350 0040 movel %a0@,%a1@(64) <== NOT EXECUTED the_rwlock->number_of_waiting_threads = 0; */ the_rwlock->number_of_readers = 0; the_rwlock->current_state = CORE_RWLOCK_UNLOCKED; _Thread_queue_Initialize( 474fc: 2f09 movel %a1,%sp@- <== NOT EXECUTED the_rwlock->Attributes = *the_rwlock_attributes; /* the_rwlock->number_of_waiting_threads = 0; */ the_rwlock->number_of_readers = 0; 474fe: 42a9 0048 clrl %a1@(72) <== NOT EXECUTED the_rwlock->current_state = CORE_RWLOCK_UNLOCKED; 47502: 42a9 0044 clrl %a1@(68) <== NOT EXECUTED _Thread_queue_Initialize( 47506: 4eb9 0004 8fe8 jsr 48fe8 <_Thread_queue_Initialize> <== NOT EXECUTED 4750c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED &the_rwlock->Wait_queue, THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_RWLOCK, CORE_RWLOCK_TIMEOUT ); } 47512: 4e5e unlk %fp <== NOT EXECUTED 47514: 4e75 rts <== NOT EXECUTED ... 00047518 <_CORE_RWLock_Obtain_for_reading>: Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_RWLock_API_mp_support_callout api_rwlock_mp_support ) { 47518: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4751c: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED * If unlocked, then OK to read. * If locked for reading and no waiters, then OK to read. * If any thread is waiting, then we wait. */ _ISR_Disable( level ); 47520: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_RWLock_API_mp_support_callout api_rwlock_mp_support ) { 47526: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4752a: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4752e: 2a2e 0014 movel %fp@(20),%d5 <== NOT EXECUTED 47532: 162e 0013 moveb %fp@(19),%d3 <== NOT EXECUTED ISR_Level level; Thread_Control *executing = _Thread_Executing; 47536: 2679 0005 a342 moveal 5a342 <_Thread_Executing>,%a3 <== NOT EXECUTED * If unlocked, then OK to read. * If locked for reading and no waiters, then OK to read. * If any thread is waiting, then we wait. */ _ISR_Disable( level ); 4753c: 40c2 movew %sr,%d2 <== NOT EXECUTED 4753e: 8082 orl %d2,%d0 <== NOT EXECUTED 47540: 46c0 movew %d0,%sr <== NOT EXECUTED switch ( the_rwlock->current_state ) { 47542: 202a 0044 movel %a2@(68),%d0 <== NOT EXECUTED 47546: 6708 beqs 47550 <_CORE_RWLock_Obtain_for_reading+0x38> <== NOT EXECUTED 47548: 7201 moveq #1,%d1 <== NOT EXECUTED 4754a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4754c: 662a bnes 47578 <_CORE_RWLock_Obtain_for_reading+0x60> <== NOT EXECUTED 4754e: 600e bras 4755e <_CORE_RWLock_Obtain_for_reading+0x46> <== NOT EXECUTED case CORE_RWLOCK_UNLOCKED: the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING; the_rwlock->number_of_readers += 1; 47550: 52aa 0048 addql #1,%a2@(72) <== NOT EXECUTED */ _ISR_Disable( level ); switch ( the_rwlock->current_state ) { case CORE_RWLOCK_UNLOCKED: the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING; 47554: 7001 moveq #1,%d0 <== NOT EXECUTED 47556: 2540 0044 movel %d0,%a2@(68) <== NOT EXECUTED the_rwlock->number_of_readers += 1; _ISR_Enable( level ); 4755a: 46c2 movew %d2,%sr <== NOT EXECUTED 4755c: 6014 bras 47572 <_CORE_RWLock_Obtain_for_reading+0x5a> <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; return; case CORE_RWLOCK_LOCKED_FOR_READING: { Thread_Control *waiter; waiter = _Thread_queue_First( &the_rwlock->Wait_queue ); 4755e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47560: 4eb9 0004 8f5c jsr 48f5c <_Thread_queue_First> <== NOT EXECUTED if ( !waiter ) { 47566: 588f addql #4,%sp <== NOT EXECUTED 47568: 4a80 tstl %d0 <== NOT EXECUTED 4756a: 660c bnes 47578 <_CORE_RWLock_Obtain_for_reading+0x60> <== NOT EXECUTED the_rwlock->number_of_readers += 1; 4756c: 52aa 0048 addql #1,%a2@(72) <== NOT EXECUTED _ISR_Enable( level ); 47570: 46c2 movew %d2,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; 47572: 42ab 0034 clrl %a3@(52) <== NOT EXECUTED 47576: 6046 bras 475be <_CORE_RWLock_Obtain_for_reading+0xa6> <== NOT EXECUTED /* * If the thread is not willing to wait, then return immediately. */ if ( !wait ) { 47578: 4a03 tstb %d3 <== NOT EXECUTED 4757a: 660a bnes 47586 <_CORE_RWLock_Obtain_for_reading+0x6e> <== NOT EXECUTED _ISR_Enable( level ); 4757c: 46c2 movew %d2,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE; 4757e: 7202 moveq #2,%d1 <== NOT EXECUTED 47580: 2741 0034 movel %d1,%a3@(52) <== NOT EXECUTED 47584: 6038 bras 475be <_CORE_RWLock_Obtain_for_reading+0xa6> <== NOT EXECUTED 47586: 7001 moveq #1,%d0 <== NOT EXECUTED * We need to wait to enter this critical section */ _Thread_queue_Enter_critical_section( &the_rwlock->Wait_queue ); executing->Wait.queue = &the_rwlock->Wait_queue; executing->Wait.id = id; 47588: 2744 0020 movel %d4,%a3@(32) <== NOT EXECUTED 4758c: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED executing->Wait.option = CORE_RWLOCK_THREAD_WAITING_FOR_READ; executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; 47590: 42ab 0034 clrl %a3@(52) <== NOT EXECUTED /* * We need to wait to enter this critical section */ _Thread_queue_Enter_critical_section( &the_rwlock->Wait_queue ); executing->Wait.queue = &the_rwlock->Wait_queue; 47594: 274a 0044 movel %a2,%a3@(68) <== NOT EXECUTED executing->Wait.id = id; executing->Wait.option = CORE_RWLOCK_THREAD_WAITING_FOR_READ; 47598: 42ab 0030 clrl %a3@(48) <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; _ISR_Enable( level ); 4759c: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_queue_Enqueue_with_handler( 4759e: 2d45 000c movel %d5,%fp@(12) <== NOT EXECUTED 475a2: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED 475a6: 223c 0004 7708 movel #292616,%d1 <== NOT EXECUTED timeout, _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 475ac: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED executing->Wait.id = id; executing->Wait.option = CORE_RWLOCK_THREAD_WAITING_FOR_READ; executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; _ISR_Enable( level ); _Thread_queue_Enqueue_with_handler( 475b2: 2d41 0010 movel %d1,%fp@(16) <== NOT EXECUTED timeout, _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 475b6: 4e5e unlk %fp <== NOT EXECUTED executing->Wait.id = id; executing->Wait.option = CORE_RWLOCK_THREAD_WAITING_FOR_READ; executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; _ISR_Enable( level ); _Thread_queue_Enqueue_with_handler( 475b8: 4ef9 0004 8c30 jmp 48c30 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED timeout, _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 475be: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 475c4: 4e5e unlk %fp <== NOT EXECUTED 475c6: 4e75 rts 000475c8 <_CORE_RWLock_Obtain_for_writing>: Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_RWLock_API_mp_support_callout api_rwlock_mp_support ) { 475c8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 475cc: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 475d0: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 475d4: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 475d8: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 475dc: 282e 0014 movel %fp@(20),%d4 <== NOT EXECUTED ISR_Level level; Thread_Control *executing = _Thread_Executing; 475e0: 2079 0005 a342 moveal 5a342 <_Thread_Executing>,%a0 <== NOT EXECUTED * Otherwise, we have to block. * If locked for reading and no waiters, then OK to read. * If any thread is waiting, then we wait. */ _ISR_Disable( level ); 475e6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 475ec: 40c1 movew %sr,%d1 <== NOT EXECUTED 475ee: 8081 orl %d1,%d0 <== NOT EXECUTED 475f0: 46c0 movew %d0,%sr <== NOT EXECUTED switch ( the_rwlock->current_state ) { 475f2: 4aa9 0044 tstl %a1@(68) <== NOT EXECUTED 475f6: 660e bnes 47606 <_CORE_RWLock_Obtain_for_writing+0x3e> <== NOT EXECUTED case CORE_RWLOCK_UNLOCKED: the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_WRITING; 475f8: 7002 moveq #2,%d0 <== NOT EXECUTED 475fa: 2340 0044 movel %d0,%a1@(68) <== NOT EXECUTED _ISR_Enable( level ); 475fe: 46c1 movew %d1,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; 47600: 42a8 0034 clrl %a0@(52) <== NOT EXECUTED 47604: 6044 bras 4764a <_CORE_RWLock_Obtain_for_writing+0x82> <== NOT EXECUTED /* * If the thread is not willing to wait, then return immediately. */ if ( !wait ) { 47606: 4a02 tstb %d2 <== NOT EXECUTED 47608: 660a bnes 47614 <_CORE_RWLock_Obtain_for_writing+0x4c> <== NOT EXECUTED _ISR_Enable( level ); 4760a: 46c1 movew %d1,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE; 4760c: 7002 moveq #2,%d0 <== NOT EXECUTED 4760e: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED 47612: 6036 bras 4764a <_CORE_RWLock_Obtain_for_writing+0x82> <== NOT EXECUTED 47614: 7001 moveq #1,%d0 <== NOT EXECUTED * We need to wait to enter this critical section */ _Thread_queue_Enter_critical_section( &the_rwlock->Wait_queue ); executing->Wait.queue = &the_rwlock->Wait_queue; executing->Wait.id = id; 47616: 2143 0020 movel %d3,%a0@(32) <== NOT EXECUTED 4761a: 2340 0030 movel %d0,%a1@(48) <== NOT EXECUTED executing->Wait.option = CORE_RWLOCK_THREAD_WAITING_FOR_WRITE; 4761e: 2140 0030 movel %d0,%a0@(48) <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; 47622: 42a8 0034 clrl %a0@(52) <== NOT EXECUTED /* * We need to wait to enter this critical section */ _Thread_queue_Enter_critical_section( &the_rwlock->Wait_queue ); executing->Wait.queue = &the_rwlock->Wait_queue; 47626: 2149 0044 movel %a1,%a0@(68) <== NOT EXECUTED executing->Wait.id = id; executing->Wait.option = CORE_RWLOCK_THREAD_WAITING_FOR_WRITE; executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; _ISR_Enable( level ); 4762a: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue_with_handler( 4762c: 2d44 000c movel %d4,%fp@(12) <== NOT EXECUTED 47630: 203c 0004 7708 movel #292616,%d0 <== NOT EXECUTED 47636: 2d40 0010 movel %d0,%fp@(16) <== NOT EXECUTED 4763a: 2d49 0008 movel %a1,%fp@(8) <== NOT EXECUTED _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 4763e: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 47642: 4e5e unlk %fp <== NOT EXECUTED executing->Wait.id = id; executing->Wait.option = CORE_RWLOCK_THREAD_WAITING_FOR_WRITE; executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; _ISR_Enable( level ); _Thread_queue_Enqueue_with_handler( 47644: 4ef9 0004 8c30 jmp 48c30 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 4764a: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 4764e: 4e5e unlk %fp <== NOT EXECUTED 47650: 4e75 rts <== NOT EXECUTED ... 00047654 <_CORE_RWLock_Release>: */ CORE_RWLock_Status _CORE_RWLock_Release( CORE_RWLock_Control *the_rwlock ) { 47654: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 47658: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED * Otherwise, we have to block. * If locked for reading and no waiters, then OK to read. * If any thread is waiting, then we wait. */ _ISR_Disable( level ); 4765c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ CORE_RWLock_Status _CORE_RWLock_Release( CORE_RWLock_Control *the_rwlock ) { 47662: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; Thread_Control *executing = _Thread_Executing; 47666: 2079 0005 a342 moveal 5a342 <_Thread_Executing>,%a0 <== NOT EXECUTED * Otherwise, we have to block. * If locked for reading and no waiters, then OK to read. * If any thread is waiting, then we wait. */ _ISR_Disable( level ); 4766c: 40c1 movew %sr,%d1 <== NOT EXECUTED 4766e: 8081 orl %d1,%d0 <== NOT EXECUTED 47670: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_rwlock->current_state == CORE_RWLOCK_UNLOCKED){ 47672: 202a 0044 movel %a2@(68),%d0 <== NOT EXECUTED 47676: 660c bnes 47684 <_CORE_RWLock_Release+0x30> <== NOT EXECUTED _ISR_Enable( level ); 47678: 46c1 movew %d1,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE; 4767a: 103c 0002 moveb #2,%d0 <== NOT EXECUTED 4767e: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED 47682: 6078 bras 476fc <_CORE_RWLock_Release+0xa8> <== NOT EXECUTED return CORE_RWLOCK_SUCCESSFUL; } if ( the_rwlock->current_state == CORE_RWLOCK_LOCKED_FOR_READING ) { 47684: 7401 moveq #1,%d2 <== NOT EXECUTED 47686: b480 cmpl %d0,%d2 <== NOT EXECUTED 47688: 6610 bnes 4769a <_CORE_RWLock_Release+0x46> <== NOT EXECUTED the_rwlock->number_of_readers -= 1; 4768a: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 4768e: 5380 subql #1,%d0 <== NOT EXECUTED 47690: 2540 0048 movel %d0,%a2@(72) <== NOT EXECUTED if ( the_rwlock->number_of_readers != 0 ) { 47694: 6704 beqs 4769a <_CORE_RWLock_Release+0x46> <== NOT EXECUTED /* must be unlocked again */ _ISR_Enable( level ); 47696: 46c1 movew %d1,%sr <== NOT EXECUTED 47698: 6062 bras 476fc <_CORE_RWLock_Release+0xa8> <== NOT EXECUTED return CORE_RWLOCK_SUCCESSFUL; } } /* CORE_RWLOCK_LOCKED_FOR_WRITING or READING with readers */ executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; 4769a: 42a8 0034 clrl %a0@(52) <== NOT EXECUTED /* * Implicitly transition to "unlocked" and find another thread interested * in obtaining this rwlock. */ the_rwlock->current_state = CORE_RWLOCK_UNLOCKED; 4769e: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED _ISR_Enable( level ); 476a2: 46c1 movew %d1,%sr <== NOT EXECUTED next = _Thread_queue_Dequeue( &the_rwlock->Wait_queue ); 476a4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 476a6: 4eb9 0004 8aec jsr 48aec <_Thread_queue_Dequeue> <== NOT EXECUTED if ( next ) { 476ac: 588f addql #4,%sp <== NOT EXECUTED * in obtaining this rwlock. */ the_rwlock->current_state = CORE_RWLOCK_UNLOCKED; _ISR_Enable( level ); next = _Thread_queue_Dequeue( &the_rwlock->Wait_queue ); 476ae: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( next ) { 476b0: 4a80 tstl %d0 <== NOT EXECUTED 476b2: 6748 beqs 476fc <_CORE_RWLock_Release+0xa8> <== NOT EXECUTED if ( next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) { 476b4: 7001 moveq #1,%d0 <== NOT EXECUTED 476b6: b0a8 0030 cmpl %a0@(48),%d0 <== NOT EXECUTED 476ba: 6608 bnes 476c4 <_CORE_RWLock_Release+0x70> <== NOT EXECUTED the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_WRITING; 476bc: 7402 moveq #2,%d2 <== NOT EXECUTED 476be: 2542 0044 movel %d2,%a2@(68) <== NOT EXECUTED 476c2: 6038 bras 476fc <_CORE_RWLock_Release+0xa8> <== NOT EXECUTED /* * Must be CORE_RWLOCK_THREAD_WAITING_FOR_READING */ the_rwlock->number_of_readers += 1; the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING; 476c4: 7001 moveq #1,%d0 <== NOT EXECUTED /* * Now see if more readers can be let go. */ while ( 1 ) { next = _Thread_queue_First( &the_rwlock->Wait_queue ); 476c6: 49f9 0004 8f5c lea 48f5c <_Thread_queue_First>,%a4 <== NOT EXECUTED if ( !next || next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) return CORE_RWLOCK_SUCCESSFUL; the_rwlock->number_of_readers += 1; _Thread_queue_Extract( &the_rwlock->Wait_queue, next ); 476cc: 47f9 0004 8e28 lea 48e28 <_Thread_queue_Extract>,%a3 <== NOT EXECUTED /* * Must be CORE_RWLOCK_THREAD_WAITING_FOR_READING */ the_rwlock->number_of_readers += 1; the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING; 476d2: 2540 0044 movel %d0,%a2@(68) <== NOT EXECUTED } /* * Must be CORE_RWLOCK_THREAD_WAITING_FOR_READING */ the_rwlock->number_of_readers += 1; 476d6: 52aa 0048 addql #1,%a2@(72) <== NOT EXECUTED /* * Now see if more readers can be let go. */ while ( 1 ) { next = _Thread_queue_First( &the_rwlock->Wait_queue ); 476da: 2f0a movel %a2,%sp@- <== NOT EXECUTED 476dc: 4e94 jsr %a4@ <== NOT EXECUTED if ( !next || 476de: 588f addql #4,%sp <== NOT EXECUTED /* * Now see if more readers can be let go. */ while ( 1 ) { next = _Thread_queue_First( &the_rwlock->Wait_queue ); 476e0: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !next || 476e2: 4a80 tstl %d0 <== NOT EXECUTED 476e4: 6716 beqs 476fc <_CORE_RWLock_Release+0xa8> <== NOT EXECUTED 476e6: 7401 moveq #1,%d2 <== NOT EXECUTED 476e8: b4a8 0030 cmpl %a0@(48),%d2 <== NOT EXECUTED 476ec: 670e beqs 476fc <_CORE_RWLock_Release+0xa8> <== NOT EXECUTED next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) return CORE_RWLOCK_SUCCESSFUL; the_rwlock->number_of_readers += 1; _Thread_queue_Extract( &the_rwlock->Wait_queue, next ); 476ee: 2f00 movel %d0,%sp@- <== NOT EXECUTED while ( 1 ) { next = _Thread_queue_First( &the_rwlock->Wait_queue ); if ( !next || next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) return CORE_RWLOCK_SUCCESSFUL; the_rwlock->number_of_readers += 1; 476f0: 52aa 0048 addql #1,%a2@(72) <== NOT EXECUTED _Thread_queue_Extract( &the_rwlock->Wait_queue, next ); 476f4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 476f6: 4e93 jsr %a3@ <== NOT EXECUTED 476f8: 508f addql #8,%sp <== NOT EXECUTED 476fa: 60de bras 476da <_CORE_RWLock_Release+0x86> <== NOT EXECUTED } /* indentation is to match _ISR_Disable at top */ return CORE_RWLOCK_SUCCESSFUL; } 476fc: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 47702: 4e5e unlk %fp <== NOT EXECUTED 47704: 4280 clrl %d0 <== NOT EXECUTED 47706: 4e75 rts 00047708 <_CORE_RWLock_Timeout>: void _CORE_RWLock_Timeout( Objects_Id id, void *ignored ) { 47708: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 4770c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 47710: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47714: 4eb9 0004 87f4 jsr 487f4 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 4771a: 508f addql #8,%sp <== NOT EXECUTED 4771c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47720: 6618 bnes 4773a <_CORE_RWLock_Timeout+0x32> <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: /* impossible */ #endif break; case OBJECTS_LOCAL: _Thread_queue_Process_timeout( the_thread ); 47722: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47724: 4eb9 0004 906c jsr 4906c <_Thread_queue_Process_timeout> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 4772a: 2039 0005 a284 movel 5a284 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 47730: 588f addql #4,%sp <== NOT EXECUTED 47732: 5380 subql #1,%d0 <== NOT EXECUTED 47734: 23c0 0005 a284 movel %d0,5a284 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Unnest_dispatch(); break; } } 4773a: 4e5e unlk %fp <== NOT EXECUTED 4773c: 4e75 rts <== NOT EXECUTED ... 00046894 <_CORE_barrier_Initialize>: void _CORE_barrier_Initialize( CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes ) { 46894: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED the_barrier->Attributes = *the_barrier_attributes; the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 46898: 4878 0003 pea 3 <== NOT EXECUTED void _CORE_barrier_Initialize( CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes ) { 4689c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 468a0: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED the_barrier->Attributes = *the_barrier_attributes; the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 468a4: 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; 468aa: 2011 movel %a1@,%d0 <== NOT EXECUTED 468ac: 2169 0004 0044 movel %a1@(4),%a0@(68) <== NOT EXECUTED the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 468b2: 42a7 clrl %sp@- <== NOT EXECUTED CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes ) { the_barrier->Attributes = *the_barrier_attributes; 468b4: 2140 0040 movel %d0,%a0@(64) <== NOT EXECUTED the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 468b8: 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; 468ba: 42a8 0048 clrl %a0@(72) <== NOT EXECUTED _Thread_queue_Initialize( 468be: 4eb9 0004 8314 jsr 48314 <_Thread_queue_Initialize> <== NOT EXECUTED 468c4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED &the_barrier->Wait_queue, THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_BARRIER, CORE_BARRIER_TIMEOUT ); } 468ca: 4e5e unlk %fp <== NOT EXECUTED 468cc: 4e75 rts <== NOT EXECUTED ... 0004b198 <_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 ) { 4b198: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4b19c: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4b1a0: 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)) ) { 4b1a4: 4282 clrl %d2 <== NOT EXECUTED 4b1a6: 47f9 0004 7f84 lea 47f84 <_Thread_queue_Dequeue>,%a3 <== NOT EXECUTED 4b1ac: 6002 bras 4b1b0 <_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++; 4b1ae: 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)) ) { 4b1b0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b1b2: 4e93 jsr %a3@ <== NOT EXECUTED 4b1b4: 588f addql #4,%sp <== NOT EXECUTED 4b1b6: 4a80 tstl %d0 <== NOT EXECUTED 4b1b8: 66f4 bnes 4b1ae <_CORE_barrier_Release+0x16> <== NOT EXECUTED #endif count++; } the_barrier->number_of_waiting_threads = 0; return count; } 4b1ba: 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; 4b1bc: 42aa 0048 clrl %a2@(72) <== NOT EXECUTED return count; } 4b1c0: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4b1c6: 4e5e unlk %fp <== NOT EXECUTED 4b1c8: 4e75 rts <== NOT EXECUTED ... 000468d0 <_CORE_barrier_Wait>: Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_barrier_API_mp_support_callout api_barrier_mp_support ) { 468d0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 468d4: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 468d8: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 468dc: 282e 0014 movel %fp@(20),%d4 <== NOT EXECUTED Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; 468e0: 2279 0005 93c2 moveal 593c2 <_Thread_Executing>,%a1 <== NOT EXECUTED executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL; _ISR_Disable( level ); 468e6: 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; 468ec: 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 ) { 468f0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 468f4: 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 ); 468f8: 40c1 movew %sr,%d1 <== NOT EXECUTED 468fa: 8081 orl %d1,%d0 <== NOT EXECUTED 468fc: 46c0 movew %d0,%sr <== NOT EXECUTED the_barrier->number_of_waiting_threads++; 468fe: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED 46902: 5280 addql #1,%d0 <== NOT EXECUTED 46904: 2140 0048 movel %d0,%a0@(72) <== NOT EXECUTED if ( the_barrier->number_of_waiting_threads == 46908: b0a8 0044 cmpl %a0@(68),%d0 <== NOT EXECUTED 4690c: 6626 bnes 46934 <_CORE_barrier_Wait+0x64> <== NOT EXECUTED the_barrier->Attributes.maximum_count) { if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) { 4690e: 4aa8 0040 tstl %a0@(64) <== NOT EXECUTED 46912: 6620 bnes 46934 <_CORE_barrier_Wait+0x64> <== NOT EXECUTED executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED; 46914: 7001 moveq #1,%d0 <== NOT EXECUTED 46916: 2340 0034 movel %d0,%a1@(52) <== NOT EXECUTED _ISR_Enable( level ); 4691a: 46c1 movew %d1,%sr <== NOT EXECUTED _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support ); 4691c: 2d42 0010 movel %d2,%fp@(16) <== NOT EXECUTED 46920: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 46924: 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 ); } 46928: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 4692c: 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 ); 4692e: 4ef9 0004 b198 jmp 4b198 <_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; 46934: 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; 46936: 2343 0020 movel %d3,%a1@(32) <== NOT EXECUTED 4693a: 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; 4693e: 2348 0044 movel %a0,%a1@(68) <== NOT EXECUTED executing->Wait.id = id; _ISR_Enable( level ); 46942: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout ); 46944: 2d44 000c movel %d4,%fp@(12) <== NOT EXECUTED 46948: 203c 0004 8400 movel #295936,%d0 <== NOT EXECUTED 4694e: 2d40 0010 movel %d0,%fp@(16) <== NOT EXECUTED 46952: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 46956: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 4695a: 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 ); 4695c: 4ef9 0004 80c8 jmp 480c8 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED ... 00050174 <_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 ) { 50174: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 50178: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@ <== NOT EXECUTED 5017c: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 50180: 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 ) { 50184: b6ab 004c cmpl %a3@(76),%d3 <== NOT EXECUTED 50188: 6304 blss 5018e <_CORE_message_queue_Broadcast+0x1a> <== NOT EXECUTED 5018a: 7001 moveq #1,%d0 <== NOT EXECUTED 5018c: 604e bras 501dc <_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 ) { 5018e: 4aab 0048 tstl %a3@(72) <== NOT EXECUTED 50192: 6610 bnes 501a4 <_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))) { 50194: 4282 clrl %d2 <== NOT EXECUTED 50196: 4bf9 0005 22d0 lea 522d0 <_Thread_queue_Dequeue>,%a5 <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 5019c: 49f9 0005 730c lea 5730c ,%a4 <== NOT EXECUTED 501a2: 6024 bras 501c8 <_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; 501a4: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 501a8: 4290 clrl %a0@ <== NOT EXECUTED 501aa: 4280 clrl %d0 <== NOT EXECUTED 501ac: 602e bras 501dc <_CORE_message_queue_Broadcast+0x68> <== NOT EXECUTED 501ae: 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; 501b0: 5282 addql #1,%d2 <== NOT EXECUTED 501b2: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 501b6: 2f2a 002c movel %a2@(44),%sp@- <== NOT EXECUTED 501ba: 4e94 jsr %a4@ <== NOT EXECUTED buffer, waitp->return_argument_second.mutable_object, size ); *(size_t *) the_thread->Wait.return_argument = size; 501bc: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED 501c0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 501c6: 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))) { 501c8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 501ca: 4e95 jsr %a5@ <== NOT EXECUTED 501cc: 588f addql #4,%sp <== NOT EXECUTED 501ce: 2440 moveal %d0,%a2 <== NOT EXECUTED 501d0: 4a80 tstl %d0 <== NOT EXECUTED 501d2: 66da bnes 501ae <_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; 501d4: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 501d8: 4280 clrl %d0 <== NOT EXECUTED 501da: 2082 movel %d2,%a0@ <== NOT EXECUTED return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; } 501dc: 4cee 3c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a5 <== NOT EXECUTED 501e2: 4e5e unlk %fp <== NOT EXECUTED 501e4: 4e75 rts <== NOT EXECUTED ... 0004fba4 <_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 ) { 4fba4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4fba8: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * This will flush blocked threads whether they were blocked on * a send or receive. */ _Thread_queue_Flush( 4fbaa: 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 ) { 4fbae: 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( 4fbb2: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4fbb6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4fbb8: 4eb9 0004 afec jsr 4afec <_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 ) 4fbbe: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4fbc4: 4aaa 0048 tstl %a2@(72) <== NOT EXECUTED 4fbc8: 670a beqs 4fbd4 <_CORE_message_queue_Close+0x30> <== NOT EXECUTED (void) _CORE_message_queue_Flush_support( the_message_queue ); 4fbca: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4fbcc: 4eb9 0004 fbe8 jsr 4fbe8 <_CORE_message_queue_Flush_support> <== NOT EXECUTED 4fbd2: 588f addql #4,%sp <== NOT EXECUTED (void) _Workspace_Free( the_message_queue->message_buffers ); 4fbd4: 2d6a 005c 0008 movel %a2@(92),%fp@(8) <== NOT EXECUTED } 4fbda: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4fbde: 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 ); 4fbe0: 4ef9 0004 bb90 jmp 4bb90 <_Workspace_Free> <== NOT EXECUTED ... 0005022c <_CORE_message_queue_Flush>: */ uint32_t _CORE_message_queue_Flush( CORE_message_queue_Control *the_message_queue ) { 5022c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 50230: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( the_message_queue->number_of_pending_messages != 0 ) 50234: 4aa8 0048 tstl %a0@(72) <== NOT EXECUTED 50238: 6606 bnes 50240 <_CORE_message_queue_Flush+0x14> <== NOT EXECUTED return _CORE_message_queue_Flush_support( the_message_queue ); else return 0; } 5023a: 4e5e unlk %fp <== NOT EXECUTED 5023c: 4280 clrl %d0 <== NOT EXECUTED 5023e: 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 ); 50240: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED else return 0; } 50244: 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 ); 50246: 4ef9 0005 024c jmp 5024c <_CORE_message_queue_Flush_support> <== NOT EXECUTED 0004fbe8 <_CORE_message_queue_Flush_support>: */ uint32_t _CORE_message_queue_Flush_support( CORE_message_queue_Control *the_message_queue ) { 4fbe8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4fbec: 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 ); 4fbf0: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ uint32_t _CORE_message_queue_Flush_support( CORE_message_queue_Control *the_message_queue ) { 4fbf6: 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 ); 4fbfa: 40c1 movew %sr,%d1 <== NOT EXECUTED 4fbfc: 8081 orl %d1,%d0 <== NOT EXECUTED 4fbfe: 46c0 movew %d0,%sr <== NOT EXECUTED inactive_first = the_message_queue->Inactive_messages.first; message_queue_first = the_message_queue->Pending_messages.first; 4fc00: 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; 4fc04: 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; 4fc08: 2268 0058 moveal %a0@(88),%a1 <== NOT EXECUTED the_message_queue->Inactive_messages.first = message_queue_first; 4fc0c: 214a 0068 movel %a2,%a0@(104) <== NOT EXECUTED message_queue_last->next = inactive_first; inactive_first->previous = message_queue_last; message_queue_first->previous = 4fc10: 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; 4fc14: 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; 4fc18: 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; 4fc1c: 228b movel %a3,%a1@ <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4fc1e: 43e8 0054 lea %a0@(84),%a1 <== NOT EXECUTED inactive_first->previous = message_queue_last; message_queue_first->previous = 4fc22: 254c 0004 movel %a4,%a2@(4) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4fc26: 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); 4fc2a: 2149 0050 movel %a1,%a0@(80) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4fc2e: 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; 4fc32: 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; 4fc36: 42a8 0054 clrl %a0@(84) <== NOT EXECUTED _ISR_Enable( level ); 4fc3a: 46c1 movew %d1,%sr <== NOT EXECUTED return count; } 4fc3c: 4cd7 1c00 moveml %sp@,%a2-%a4 <== NOT EXECUTED 4fc40: 4e5e unlk %fp <== NOT EXECUTED 4fc42: 4e75 rts 0004fc4c <_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 ) { 4fc4c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4fc50: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4fc54: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4fc58: 222e 0014 movel %fp@(20),%d1 <== NOT EXECUTED 4fc5c: 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)) { 4fc60: 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; 4fc62: 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)) { 4fc66: 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; 4fc68: 42aa 0048 clrl %a2@(72) <== NOT EXECUTED the_message_queue->maximum_message_size = maximum_message_size; 4fc6c: 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; 4fc70: 42aa 0060 clrl %a2@(96) <== NOT EXECUTED the_message_queue->notify_argument = the_argument; 4fc74: 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)) { 4fc78: 4a80 tstl %d0 <== NOT EXECUTED 4fc7a: 6604 bnes 4fc80 <_CORE_message_queue_Initialize+0x34> <== NOT EXECUTED 4fc7c: 2001 movel %d1,%d0 <== NOT EXECUTED 4fc7e: 600c bras 4fc8c <_CORE_message_queue_Initialize+0x40> <== NOT EXECUTED allocated_message_size += sizeof(uint32_t); 4fc80: 2001 movel %d1,%d0 <== NOT EXECUTED 4fc82: 5880 addql #4,%d0 <== NOT EXECUTED allocated_message_size &= ~(sizeof(uint32_t) - 1); 4fc84: 74fc moveq #-4,%d2 <== NOT EXECUTED 4fc86: c082 andl %d2,%d0 <== NOT EXECUTED } if (allocated_message_size < maximum_message_size) 4fc88: b280 cmpl %d0,%d1 <== NOT EXECUTED 4fc8a: 6270 bhis 4fcfc <_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 * 4fc8c: 2400 movel %d0,%d2 <== NOT EXECUTED 4fc8e: 0682 0000 0014 addil #20,%d2 <== NOT EXECUTED 4fc94: 2202 movel %d2,%d1 <== NOT EXECUTED 4fc96: 4c03 1800 mulsl %d3,%d1 <== NOT EXECUTED (allocated_message_size + sizeof(CORE_message_queue_Buffer_control)); if (message_buffering_required < allocated_message_size) 4fc9a: b081 cmpl %d1,%d0 <== NOT EXECUTED 4fc9c: 625e bhis 4fcfc <_CORE_message_queue_Initialize+0xb0> <== NOT EXECUTED return false; /* * Attempt to allocate the message memory */ the_message_queue->message_buffers = (CORE_message_queue_Buffer *) 4fc9e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4fca0: 4eb9 0004 d71c jsr 4d71c <_Workspace_Allocate> <== NOT EXECUTED _Workspace_Allocate( message_buffering_required ); if (the_message_queue->message_buffers == 0) 4fca6: 588f addql #4,%sp <== NOT EXECUTED return false; /* * Attempt to allocate the message memory */ the_message_queue->message_buffers = (CORE_message_queue_Buffer *) 4fca8: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED _Workspace_Allocate( message_buffering_required ); if (the_message_queue->message_buffers == 0) 4fcac: 674e beqs 4fcfc <_CORE_message_queue_Initialize+0xb0> <== NOT EXECUTED /* * Initialize the pool of inactive messages, pending messages, * and set of waiting threads. */ _Chain_Initialize ( 4fcae: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4fcb0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4fcb2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4fcb4: 486a 0068 pea %a2@(104) <== NOT EXECUTED 4fcb8: 4eb9 0004 fb10 jsr 4fb10 <_Chain_Initialize> <== NOT EXECUTED allocated_message_size + sizeof( CORE_message_queue_Buffer_control ) ); _Chain_Initialize_empty( &the_message_queue->Pending_messages ); _Thread_queue_Initialize( 4fcbe: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 4fcc2: 4878 0006 pea 6 <== NOT EXECUTED 4fcc6: 7001 moveq #1,%d0 <== NOT EXECUTED 4fcc8: b090 cmpl %a0@,%d0 <== NOT EXECUTED 4fcca: 57c0 seq %d0 <== NOT EXECUTED 4fccc: 4878 0080 pea 80 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4fcd0: 41ea 0054 lea %a2@(84),%a0 <== NOT EXECUTED 4fcd4: 49c0 extbl %d0 <== NOT EXECUTED 4fcd6: 2548 0050 movel %a0,%a2@(80) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4fcda: 41ea 0050 lea %a2@(80),%a0 <== NOT EXECUTED 4fcde: 4480 negl %d0 <== NOT EXECUTED 4fce0: 2548 0058 movel %a0,%a2@(88) <== NOT EXECUTED 4fce4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4fce6: 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; 4fce8: 42aa 0054 clrl %a2@(84) <== NOT EXECUTED 4fcec: 4eb9 0004 cb3c jsr 4cb3c <_Thread_queue_Initialize> <== NOT EXECUTED 4fcf2: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 4fcf8: 7001 moveq #1,%d0 <== NOT EXECUTED 4fcfa: 6002 bras 4fcfe <_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; 4fcfc: 4200 clrb %d0 <== NOT EXECUTED } 4fcfe: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4fd04: 4e5e unlk %fp <== NOT EXECUTED 4fd06: 4e75 rts 000528a8 <_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 ) { 528a8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 528ac: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 528b0: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 528b4: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 528b8: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED ISR_Level level; bool notify = false; the_message->priority = submit_type; 528bc: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED switch ( submit_type ) { 528c0: 0c80 8000 0000 cmpil #-2147483648,%d0 <== NOT EXECUTED 528c6: 673e beqs 52906 <_CORE_message_queue_Insert_message+0x5e> <== NOT EXECUTED 528c8: 0c80 7fff ffff cmpil #2147483647,%d0 <== NOT EXECUTED 528ce: 666a bnes 5293a <_CORE_message_queue_Insert_message+0x92> <== NOT EXECUTED case CORE_MESSAGE_QUEUE_SEND_REQUEST: _ISR_Disable( level ); 528d0: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 528d6: 40c1 movew %sr,%d1 <== NOT EXECUTED 528d8: 8081 orl %d1,%d0 <== NOT EXECUTED 528da: 46c0 movew %d0,%sr <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 528dc: 41eb 0054 lea %a3@(84),%a0 <== NOT EXECUTED 528e0: 2488 movel %a0,%a2@ <== NOT EXECUTED old_last_node = the_chain->last; 528e2: 206b 0058 moveal %a3@(88),%a0 <== NOT EXECUTED if ( the_message_queue->number_of_pending_messages++ == 0 ) 528e6: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED the_chain->last = the_node; 528ea: 274a 0058 movel %a2,%a3@(88) <== NOT EXECUTED 528ee: 2240 moveal %d0,%a1 <== NOT EXECUTED 528f0: 5289 addql #1,%a1 <== NOT EXECUTED 528f2: 2749 0048 movel %a1,%a3@(72) <== NOT EXECUTED 528f6: 4a80 tstl %d0 <== NOT EXECUTED 528f8: 57c0 seq %d0 <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 528fa: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 528fe: 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; 52900: 208a movel %a2,%a0@ <== NOT EXECUTED notify = true; _CORE_message_queue_Append_unprotected(the_message_queue, the_message); _ISR_Enable( level ); 52902: 46c1 movew %d1,%sr <== NOT EXECUTED 52904: 607e bras 52984 <_CORE_message_queue_Insert_message+0xdc> <== NOT EXECUTED break; case CORE_MESSAGE_QUEUE_URGENT_REQUEST: _ISR_Disable( level ); 52906: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 5290c: 40c1 movew %sr,%d1 <== NOT EXECUTED 5290e: 8081 orl %d1,%d0 <== NOT EXECUTED 52910: 46c0 movew %d0,%sr <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Head( Chain_Control *the_chain ) { return (Chain_Node *) the_chain; 52912: 41eb 0050 lea %a3@(80),%a0 <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 52916: 2250 moveal %a0@,%a1 <== NOT EXECUTED if ( the_message_queue->number_of_pending_messages++ == 0 ) 52918: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED after_node->next = the_node; 5291c: 208a movel %a2,%a0@ <== NOT EXECUTED 5291e: 2400 movel %d0,%d2 <== NOT EXECUTED 52920: 5282 addql #1,%d2 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 52922: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 52926: 4a80 tstl %d0 <== NOT EXECUTED 52928: 57c0 seq %d0 <== NOT EXECUTED 5292a: 2742 0048 movel %d2,%a3@(72) <== NOT EXECUTED 5292e: 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; 52930: 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; 52934: 2489 movel %a1,%a2@ <== NOT EXECUTED notify = true; _CORE_message_queue_Prepend_unprotected(the_message_queue, the_message); _ISR_Enable( level ); 52936: 46c1 movew %d1,%sr <== NOT EXECUTED 52938: 604a bras 52984 <_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; 5293a: 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; 5293e: 220b movel %a3,%d1 <== NOT EXECUTED 52940: 0681 0000 0054 addil #84,%d1 <== NOT EXECUTED 52946: 6008 bras 52950 <_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 ) { 52948: b0a8 0008 cmpl %a0@(8),%d0 <== NOT EXECUTED 5294c: 6d06 blts 52954 <_CORE_message_queue_Insert_message+0xac> <== NOT EXECUTED the_node = the_node->next; 5294e: 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 ) ) { 52950: b288 cmpl %a0,%d1 <== NOT EXECUTED 52952: 66f4 bnes 52948 <_CORE_message_queue_Insert_message+0xa0> <== NOT EXECUTED continue; } break; } _ISR_Disable( level ); 52954: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 5295a: 40c2 movew %sr,%d2 <== NOT EXECUTED 5295c: 8082 orl %d2,%d0 <== NOT EXECUTED 5295e: 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 ); 52960: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 52964: 2250 moveal %a0@,%a1 <== NOT EXECUTED } break; } _ISR_Disable( level ); if ( the_message_queue->number_of_pending_messages++ == 0 ) 52966: 222b 0048 movel %a3@(72),%d1 <== NOT EXECUTED after_node->next = the_node; 5296a: 208a movel %a2,%a0@ <== NOT EXECUTED 5296c: 4a81 tstl %d1 <== NOT EXECUTED 5296e: 57c0 seq %d0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 52970: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 52974: 5281 addql #1,%d1 <== NOT EXECUTED 52976: 4480 negl %d0 <== NOT EXECUTED 52978: 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; 5297c: 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; 52980: 2489 movel %a1,%a2@ <== NOT EXECUTED notify = true; _Chain_Insert_unprotected( the_node->previous, &the_message->Node ); _ISR_Enable( level ); 52982: 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 ) 52984: 4a00 tstb %d0 <== NOT EXECUTED 52986: 6716 beqs 5299e <_CORE_message_queue_Insert_message+0xf6> <== NOT EXECUTED 52988: 202b 0060 movel %a3@(96),%d0 <== NOT EXECUTED 5298c: 6710 beqs 5299e <_CORE_message_queue_Insert_message+0xf6> <== NOT EXECUTED (*the_message_queue->notify_handler)( the_message_queue->notify_argument ); 5298e: 2240 moveal %d0,%a1 <== NOT EXECUTED 52990: 2d6b 0064 0008 movel %a3@(100),%fp@(8) <== NOT EXECUTED } 52996: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 5299a: 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 ); 5299c: 4ed1 jmp %a1@ <== NOT EXECUTED } 5299e: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 529a2: 4e5e unlk %fp <== NOT EXECUTED 529a4: 4e75 rts <== NOT EXECUTED ... 0004fc44 <_CORE_message_queue_Seize>: void *buffer, size_t *size_p, bool wait, Watchdog_Interval timeout ) { 4fc44: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 4fc48: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== NOT EXECUTED 4fc4c: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 4fc50: 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; 4fc54: 2279 0006 3ca2 moveal 63ca2 <_Thread_Executing>,%a1 <== NOT EXECUTED executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; _ISR_Disable( level ); 4fc5a: 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; 4fc60: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED void *buffer, size_t *size_p, bool wait, Watchdog_Interval timeout ) { 4fc64: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4fc68: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4fc6c: 286e 0014 moveal %fp@(20),%a4 <== NOT EXECUTED 4fc70: 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 ); 4fc74: 40c1 movew %sr,%d1 <== NOT EXECUTED 4fc76: 8081 orl %d1,%d0 <== NOT EXECUTED 4fc78: 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)); 4fc7a: 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)) 4fc7e: 200b movel %a3,%d0 <== NOT EXECUTED 4fc80: 0680 0000 0054 addil #84,%d0 <== NOT EXECUTED 4fc86: b08a cmpl %a2,%d0 <== NOT EXECUTED 4fc88: 6700 00ac beqw 4fd36 <_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; 4fc8c: 2052 moveal %a2@,%a0 <== NOT EXECUTED the_chain->first = new_first; 4fc8e: 2748 0050 movel %a0,%a3@(80) <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 4fc92: 4beb 0050 lea %a3@(80),%a5 <== NOT EXECUTED 4fc96: 214d 0004 movel %a5,%a0@(4) <== NOT EXECUTED the_message = _CORE_message_queue_Get_pending_message( the_message_queue ); if ( the_message != NULL ) { 4fc9a: 4a8a tstl %a2 <== NOT EXECUTED 4fc9c: 6700 0098 beqw 4fd36 <_CORE_message_queue_Seize+0xf2> <== NOT EXECUTED the_message_queue->number_of_pending_messages -= 1; 4fca0: 53ab 0048 subql #1,%a3@(72) <== NOT EXECUTED _ISR_Enable( level ); 4fca4: 46c1 movew %d1,%sr <== NOT EXECUTED *size_p = the_message->Contents.size; _Thread_Executing->Wait.count = the_message->priority; 4fca6: 2079 0006 3ca2 moveal 63ca2 <_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; 4fcac: 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); 4fcb0: 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; 4fcb2: 216a 0008 0024 movel %a2@(8),%a0@(36) <== NOT EXECUTED _CORE_message_queue_Copy_buffer(the_message->Contents.buffer,buffer,*size_p); 4fcb8: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 4fcbe: 2f14 movel %a4@,%sp@- <== NOT EXECUTED 4fcc0: 4bf9 0005 44bc lea 544bc ,%a5 <== NOT EXECUTED 4fcc6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4fcc8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4fcca: 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 ); 4fccc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4fcce: 4eb9 0004 ac88 jsr 4ac88 <_Thread_queue_Dequeue> <== NOT EXECUTED if ( !the_thread ) { 4fcd4: 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 ); 4fcda: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !the_thread ) { 4fcdc: 4a80 tstl %d0 <== NOT EXECUTED 4fcde: 661c bnes 4fcfc <_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 ); 4fce0: d7fc 0000 0068 addal #104,%a3 <== NOT EXECUTED 4fce6: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 4fcea: 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 ); } 4fcee: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 4fcf4: 4e5e unlk %fp <== NOT EXECUTED 4fcf6: 4ef9 0004 94ec jmp 494ec <_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; 4fcfc: 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; 4fd00: 2568 0024 0008 movel %a0@(36),%a2@(8) <== NOT EXECUTED the_message->Contents.size = (size_t) the_thread->Wait.option; 4fd06: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 4fd0a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4fd0c: 2f28 002c movel %a0@(44),%sp@- <== NOT EXECUTED 4fd10: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4fd12: 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( 4fd14: 2d6a 0008 0010 movel %a2@(8),%fp@(16) <== NOT EXECUTED 4fd1a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4fd20: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 4fd24: 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 ); } 4fd28: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 4fd2e: 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( 4fd30: 4ef9 0005 28a8 jmp 528a8 <_CORE_message_queue_Insert_message> <== NOT EXECUTED the_message->priority ); return; } if ( !wait ) { 4fd36: 4a02 tstb %d2 <== NOT EXECUTED 4fd38: 6612 bnes 4fd4c <_CORE_message_queue_Seize+0x108> <== NOT EXECUTED _ISR_Enable( level ); 4fd3a: 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 ); } 4fd3c: 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; 4fd42: 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 ); } 4fd44: 4e5e unlk %fp <== NOT EXECUTED return; } if ( !wait ) { _ISR_Enable( level ); executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT; 4fd46: 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 ); } 4fd4a: 4e75 rts <== NOT EXECUTED 4fd4c: 7001 moveq #1,%d0 <== NOT EXECUTED 4fd4e: 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; 4fd52: 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; 4fd56: 2345 0020 movel %d5,%a1@(32) <== NOT EXECUTED executing->Wait.return_argument_second.mutable_object = buffer; 4fd5a: 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; 4fd5e: 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 ); 4fd62: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); 4fd64: 4bf9 0004 b104 lea 4b104 <_Thread_queue_Timeout>,%a5 <== NOT EXECUTED 4fd6a: 2d44 000c movel %d4,%fp@(12) <== NOT EXECUTED 4fd6e: 2d4d 0010 movel %a5,%fp@(16) <== NOT EXECUTED 4fd72: 2d4b 0008 movel %a3,%fp@(8) <== NOT EXECUTED } 4fd76: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 4fd7c: 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 ); 4fd7e: 4ef9 0004 adcc jmp 4adcc <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED 0004fd84 <_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 ) { 4fd84: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4fd88: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 4fd8c: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4fd90: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4fd94: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 4fd98: 282e 001c movel %fp@(28),%d4 <== NOT EXECUTED 4fd9c: 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 ) { 4fda0: b6ab 004c cmpl %a3@(76),%d3 <== NOT EXECUTED 4fda4: 6306 blss 4fdac <_CORE_message_queue_Submit+0x28> <== NOT EXECUTED 4fda6: 7001 moveq #1,%d0 <== NOT EXECUTED 4fda8: 6000 00e4 braw 4fe8e <_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 ) { 4fdac: 4aab 0048 tstl %a3@(72) <== NOT EXECUTED 4fdb0: 6634 bnes 4fde6 <_CORE_message_queue_Submit+0x62> <== NOT EXECUTED the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue ); 4fdb2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4fdb4: 4eb9 0004 ac88 jsr 4ac88 <_Thread_queue_Dequeue> <== NOT EXECUTED if ( the_thread ) { 4fdba: 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 ); 4fdbc: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( the_thread ) { 4fdbe: 4a80 tstl %d0 <== NOT EXECUTED 4fdc0: 6724 beqs 4fde6 <_CORE_message_queue_Submit+0x62> <== NOT EXECUTED 4fdc2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4fdc4: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4fdc6: 2f2a 002c movel %a2@(44),%sp@- <== NOT EXECUTED 4fdca: 4eb9 0005 44bc jsr 544bc <== 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; 4fdd0: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED 4fdd4: 2083 movel %d3,%a0@ <== NOT EXECUTED the_thread->Wait.count = submit_type; 4fdd6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4fddc: 4280 clrl %d0 <== NOT EXECUTED 4fdde: 2544 0024 movel %d4,%a2@(36) <== NOT EXECUTED 4fde2: 6000 00aa braw 4fe8e <_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 < 4fde6: 202b 0044 movel %a3@(68),%d0 <== NOT EXECUTED 4fdea: b0ab 0048 cmpl %a3@(72),%d0 <== NOT EXECUTED 4fdee: 6340 blss 4fe30 <_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 *) 4fdf0: 486b 0068 pea %a3@(104) <== NOT EXECUTED 4fdf4: 4eb9 0004 9524 jsr 49524 <_Chain_Get> <== NOT EXECUTED /* * NOTE: If the system is consistent, this error should never occur. */ if ( !the_message ) { 4fdfa: 588f addql #4,%sp <== NOT EXECUTED 4fdfc: 2440 moveal %d0,%a2 <== NOT EXECUTED 4fdfe: 4a80 tstl %d0 <== NOT EXECUTED 4fe00: 6700 008a beqw 4fe8c <_CORE_message_queue_Submit+0x108> <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 4fe04: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4fe06: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4fe08: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4fe0c: 4eb9 0005 44bc jsr 544bc <== NOT EXECUTED _CORE_message_queue_Copy_buffer( buffer, the_message->Contents.buffer, size ); the_message->Contents.size = size; 4fe12: 2543 000c movel %d3,%a2@(12) <== NOT EXECUTED the_message->priority = submit_type; 4fe16: 2544 0008 movel %d4,%a2@(8) <== NOT EXECUTED _CORE_message_queue_Insert_message( 4fe1a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4fe1c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4fe1e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4fe20: 4eb9 0005 28a8 jsr 528a8 <_CORE_message_queue_Insert_message> <== NOT EXECUTED 4fe26: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 4fe2c: 4280 clrl %d0 <== NOT EXECUTED 4fe2e: 605e bras 4fe8e <_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 ) { 4fe30: 4a02 tstb %d2 <== NOT EXECUTED 4fe32: 6604 bnes 4fe38 <_CORE_message_queue_Submit+0xb4> <== NOT EXECUTED 4fe34: 7002 moveq #2,%d0 <== NOT EXECUTED 4fe36: 6056 bras 4fe8e <_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() ) { 4fe38: 2039 0006 3c82 movel 63c82 <_ISR_Nest_level>,%d0 <== NOT EXECUTED 4fe3e: 664c bnes 4fe8c <_CORE_message_queue_Submit+0x108> <== NOT EXECUTED */ { Thread_Control *executing = _Thread_Executing; _ISR_Disable( level ); 4fe40: 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; 4fe46: 2079 0006 3ca2 moveal 63ca2 <_Thread_Executing>,%a0 <== NOT EXECUTED _ISR_Disable( level ); 4fe4c: 40c0 movew %sr,%d0 <== NOT EXECUTED 4fe4e: 8280 orl %d0,%d1 <== NOT EXECUTED 4fe50: 46c1 movew %d1,%sr <== NOT EXECUTED 4fe52: 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; 4fe54: 216e 0014 0020 movel %fp@(20),%a0@(32) <== NOT EXECUTED 4fe5a: 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; 4fe5e: 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; 4fe62: 2145 002c movel %d5,%a0@(44) <== NOT EXECUTED executing->Wait.option = (uint32_t) size; 4fe66: 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; 4fe6a: 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 ); 4fe6e: 46c0 movew %d0,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); 4fe70: 4879 0004 b104 pea 4b104 <_Thread_queue_Timeout> <== NOT EXECUTED 4fe76: 2f2e 0024 movel %fp@(36),%sp@- <== NOT EXECUTED 4fe7a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4fe7c: 4eb9 0004 adcc jsr 4adcc <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED 4fe82: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4fe88: 7007 moveq #7,%d0 <== NOT EXECUTED 4fe8a: 6002 bras 4fe8e <_CORE_message_queue_Submit+0x10a> <== NOT EXECUTED } return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT; 4fe8c: 7003 moveq #3,%d0 <== NOT EXECUTED } 4fe8e: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 4fe94: 4e5e unlk %fp <== NOT EXECUTED 4fe96: 4e75 rts 0004599c <_CORE_mutex_Flush>: void _CORE_mutex_Flush( CORE_mutex_Control *the_mutex, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { 4599c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Thread_queue_Flush( &the_mutex->Wait_queue, remote_extract_callout, status ); } 459a0: 4e5e unlk %fp <== NOT EXECUTED CORE_mutex_Control *the_mutex, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { _Thread_queue_Flush( 459a2: 4ef9 0004 7390 jmp 47390 <_Thread_queue_Flush> <== NOT EXECUTED 000459a8 <_CORE_mutex_Initialize>: CORE_mutex_Status _CORE_mutex_Initialize( CORE_mutex_Control *the_mutex, CORE_mutex_Attributes *the_mutex_attributes, uint32_t initial_lock ) { 459a8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 459ac: 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; 459b0: 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 ) { 459b4: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 459b8: 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; 459bc: 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 ) { 459be: 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; 459c2: 486a 0040 pea %a2@(64) <== NOT EXECUTED 459c6: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED the_mutex->lock = initial_lock; 459cc: 2542 004e movel %d2,%a2@(78) <== NOT EXECUTED the_mutex->blocked_count = 0; if ( initial_lock == CORE_MUTEX_LOCKED ) { 459d0: 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; 459d6: 42aa 0056 clrl %a2@(86) <== NOT EXECUTED if ( initial_lock == CORE_MUTEX_LOCKED ) { 459da: 4a82 tstl %d2 <== NOT EXECUTED 459dc: 663c bnes 45a1a <_CORE_mutex_Initialize+0x72> <== NOT EXECUTED the_mutex->nest_count = 1; the_mutex->holder = _Thread_Executing; 459de: 2079 0005 7f3a moveal 57f3a <_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; 459e4: 7001 moveq #1,%d0 <== NOT EXECUTED 459e6: 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; 459ea: 202a 0046 movel %a2@(70),%d0 <== NOT EXECUTED the_mutex->holder = _Thread_Executing; the_mutex->holder_id = _Thread_Executing->Object.id; 459ee: 2568 0008 005e movel %a0@(8),%a2@(94) <== NOT EXECUTED if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 459f4: 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; 459f6: 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 ) || 459fa: b280 cmpl %d0,%d1 <== NOT EXECUTED 459fc: 6708 beqs 45a06 <_CORE_mutex_Initialize+0x5e> <== NOT EXECUTED 459fe: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 45a02: b280 cmpl %d0,%d1 <== NOT EXECUTED 45a04: 6620 bnes 45a26 <_CORE_mutex_Initialize+0x7e> <== NOT EXECUTED _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) { if ( _Thread_Executing->current_priority < 45a06: 202a 004a movel %a2@(74),%d0 <== NOT EXECUTED 45a0a: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 45a0e: 6304 blss 45a14 <_CORE_mutex_Initialize+0x6c> <== NOT EXECUTED 45a10: 7006 moveq #6,%d0 <== NOT EXECUTED 45a12: 6036 bras 45a4a <_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++; 45a14: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED 45a18: 600c bras 45a26 <_CORE_mutex_Initialize+0x7e> <== NOT EXECUTED } } else { the_mutex->nest_count = 0; 45a1a: 42aa 0052 clrl %a2@(82) <== NOT EXECUTED the_mutex->holder = NULL; 45a1e: 42aa 005a clrl %a2@(90) <== NOT EXECUTED the_mutex->holder_id = 0; 45a22: 42aa 005e clrl %a2@(94) <== NOT EXECUTED } _Thread_queue_Initialize( 45a26: 4878 0005 pea 5 <== NOT EXECUTED 45a2a: 4aab 0006 tstl %a3@(6) <== NOT EXECUTED 45a2e: 56c0 sne %d0 <== NOT EXECUTED 45a30: 4878 0400 pea 400 <== NOT EXECUTED 45a34: 49c0 extbl %d0 <== NOT EXECUTED 45a36: 4480 negl %d0 <== NOT EXECUTED 45a38: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45a3a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45a3c: 4eb9 0004 73bc jsr 473bc <_Thread_queue_Initialize> <== NOT EXECUTED 45a42: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45a48: 4280 clrl %d0 <== NOT EXECUTED STATES_WAITING_FOR_MUTEX, CORE_MUTEX_TIMEOUT ); return CORE_MUTEX_STATUS_SUCCESSFUL; } 45a4a: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 45a50: 4e5e unlk %fp <== NOT EXECUTED 45a52: 4e75 rts 00045abc <_CORE_mutex_Seize>: Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) { 45abc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45ac0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45ac2: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 45ac6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 45aca: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) { 45ad0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45ad2: 1401 moveb %d1,%d2 <== NOT EXECUTED _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 45ad4: 4a80 tstl %d0 <== NOT EXECUTED 45ad6: 671c beqs 45af4 <_CORE_mutex_Seize+0x38> <== NOT EXECUTED 45ad8: 4a01 tstb %d1 <== NOT EXECUTED 45ada: 6718 beqs 45af4 <_CORE_mutex_Seize+0x38> <== NOT EXECUTED 45adc: 7001 moveq #1,%d0 <== NOT EXECUTED 45ade: b0b9 0005 800e cmpl 5800e <_System_state_Current>,%d0 <== NOT EXECUTED 45ae4: 640e bccs 45af4 <_CORE_mutex_Seize+0x38> <== NOT EXECUTED 45ae6: 4878 0013 pea 13 <== NOT EXECUTED 45aea: 42a7 clrl %sp@- <== NOT EXECUTED 45aec: 42a7 clrl %sp@- <== NOT EXECUTED 45aee: 4eb9 0004 5ffc jsr 45ffc <_Internal_error_Occurred> <== NOT EXECUTED 45af4: 486e 0018 pea %fp@(24) <== NOT EXECUTED 45af8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45afa: 4eb9 0004 a25c jsr 4a25c <_CORE_mutex_Seize_interrupt_trylock> <== NOT EXECUTED 45b00: 508f addql #8,%sp <== NOT EXECUTED 45b02: 4a80 tstl %d0 <== NOT EXECUTED 45b04: 6750 beqs 45b56 <_CORE_mutex_Seize+0x9a> <== NOT EXECUTED 45b06: 4a02 tstb %d2 <== NOT EXECUTED 45b08: 6614 bnes 45b1e <_CORE_mutex_Seize+0x62> <== NOT EXECUTED 45b0a: 202e 0018 movel %fp@(24),%d0 <== NOT EXECUTED 45b0e: 46c0 movew %d0,%sr <== NOT EXECUTED 45b10: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 45b16: 7201 moveq #1,%d1 <== NOT EXECUTED 45b18: 2141 0034 movel %d1,%a0@(52) <== NOT EXECUTED 45b1c: 6038 bras 45b56 <_CORE_mutex_Seize+0x9a> <== NOT EXECUTED 45b1e: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45b24: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 45b2a: 216e 000c 0020 movel %fp@(12),%a0@(32) <== NOT EXECUTED 45b30: 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; 45b32: 7201 moveq #1,%d1 <== NOT EXECUTED 45b34: 2541 0030 movel %d1,%a2@(48) <== NOT EXECUTED 45b38: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED 45b3e: 214a 0044 movel %a2,%a0@(68) <== NOT EXECUTED 45b42: 202e 0018 movel %fp@(24),%d0 <== NOT EXECUTED 45b46: 46c0 movew %d0,%sr <== NOT EXECUTED 45b48: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 45b4c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45b4e: 4eb9 0004 5a54 jsr 45a54 <_CORE_mutex_Seize_interrupt_blocking> <== NOT EXECUTED 45b54: 508f addql #8,%sp <== NOT EXECUTED } 45b56: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45b5a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45b5e: 4e5e unlk %fp <== NOT EXECUTED 45b60: 4e75 rts <== NOT EXECUTED ... 00045a54 <_CORE_mutex_Seize_interrupt_blocking>: void _CORE_mutex_Seize_interrupt_blocking( CORE_mutex_Control *the_mutex, Watchdog_Interval timeout ) { 45a54: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45a58: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45a5a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 45a5e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45a60: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Thread_Control *executing; executing = _Thread_Executing; 45a64: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ) { 45a6a: 7002 moveq #2,%d0 <== NOT EXECUTED 45a6c: b0aa 0046 cmpl %a2@(70),%d0 <== NOT EXECUTED 45a70: 6620 bnes 45a92 <_CORE_mutex_Seize_interrupt_blocking+0x3e> <== NOT EXECUTED if ( the_mutex->holder->current_priority > executing->current_priority ) { 45a72: 2028 0014 movel %a0@(20),%d0 <== NOT EXECUTED 45a76: 206a 005a moveal %a2@(90),%a0 <== NOT EXECUTED 45a7a: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 45a7e: 6412 bccs 45a92 <_CORE_mutex_Seize_interrupt_blocking+0x3e> <== NOT EXECUTED _Thread_Change_priority( 45a80: 42a7 clrl %sp@- <== NOT EXECUTED 45a82: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45a84: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45a86: 4eb9 0004 6804 jsr 46804 <_Thread_Change_priority> <== NOT EXECUTED 45a8c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED ); } } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); 45a92: 4879 0004 74a8 pea 474a8 <_Thread_queue_Timeout> <== NOT EXECUTED FALSE ); } } the_mutex->blocked_count++; 45a98: 52aa 0056 addql #1,%a2@(86) <== NOT EXECUTED _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); 45a9c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45a9e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45aa0: 4eb9 0004 7170 jsr 47170 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); } 45aa6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45aaa: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); _Thread_Enable_dispatch(); 45aae: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 45ab4: 4e5e unlk %fp <== NOT EXECUTED } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); _Thread_Enable_dispatch(); 45ab6: 4ef9 0004 6d0a jmp 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 0004a25c <_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 ) { 4a25c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a260: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a262: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 4a266: 2f02 movel %d2,%sp@- <== NOT EXECUTED CORE_mutex_Control *the_mutex, ISR_Level *level_p ) { Thread_Control *executing; ISR_Level level = *level_p; 4a268: 2410 movel %a0@,%d2 <== NOT EXECUTED /* disabled when you get here */ executing = _Thread_Executing; 4a26a: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 4a270: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL; 4a274: 42a8 0034 clrl %a0@(52) <== NOT EXECUTED if ( !_CORE_mutex_Is_locked( the_mutex ) ) { 4a278: 4aa9 004e tstl %a1@(78) <== NOT EXECUTED 4a27c: 6700 0096 beqw 4a314 <_CORE_mutex_Seize_interrupt_trylock+0xb8> <== NOT EXECUTED the_mutex->lock = CORE_MUTEX_LOCKED; 4a280: 42a9 004e clrl %a1@(78) <== NOT EXECUTED the_mutex->holder = executing; the_mutex->holder_id = executing->Object.id; the_mutex->nest_count = 1; 4a284: 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; 4a286: 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; 4a28c: 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; 4a290: 2341 0052 movel %d1,%a1@(82) <== NOT EXECUTED if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 4a294: 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; 4a298: 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 ) || 4a29c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a29e: 6708 beqs 4a2a8 <_CORE_mutex_Seize_interrupt_trylock+0x4c> <== NOT EXECUTED 4a2a0: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 4a2a4: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a2a6: 6604 bnes 4a2ac <_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++; 4a2a8: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED } if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) { 4a2ac: 7003 moveq #3,%d0 <== NOT EXECUTED 4a2ae: b0a9 0046 cmpl %a1@(70),%d0 <== NOT EXECUTED 4a2b2: 6706 beqs 4a2ba <_CORE_mutex_Seize_interrupt_trylock+0x5e> <== NOT EXECUTED _ISR_Enable( level ); 4a2b4: 46c2 movew %d2,%sr <== NOT EXECUTED 4a2b6: 6000 0084 braw 4a33c <_CORE_mutex_Seize_interrupt_trylock+0xe0> <== NOT EXECUTED */ { Priority_Control ceiling; Priority_Control current; ceiling = the_mutex->Attributes.priority_ceiling; 4a2ba: 2229 004a movel %a1@(74),%d1 <== NOT EXECUTED current = executing->current_priority; 4a2be: 2028 0014 movel %a0@(20),%d0 <== NOT EXECUTED if ( current == ceiling ) { 4a2c2: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a2c4: 6604 bnes 4a2ca <_CORE_mutex_Seize_interrupt_trylock+0x6e> <== NOT EXECUTED _ISR_Enable( level ); 4a2c6: 46c2 movew %d2,%sr <== NOT EXECUTED 4a2c8: 6066 bras 4a330 <_CORE_mutex_Seize_interrupt_trylock+0xd4> <== NOT EXECUTED return 0; } if ( current > ceiling ) { 4a2ca: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a2cc: 642e bccs 4a2fc <_CORE_mutex_Seize_interrupt_trylock+0xa0> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4a2ce: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4a2d4: 5280 addql #1,%d0 <== NOT EXECUTED 4a2d6: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); _ISR_Enable( level ); 4a2dc: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_Change_priority( 4a2de: 42a7 clrl %sp@- <== NOT EXECUTED 4a2e0: 2f29 004a movel %a1@(74),%sp@- <== NOT EXECUTED 4a2e4: 2f29 005a movel %a1@(90),%sp@- <== NOT EXECUTED 4a2e8: 4eb9 0004 6804 jsr 46804 <_Thread_Change_priority> <== NOT EXECUTED the_mutex->holder, the_mutex->Attributes.priority_ceiling, FALSE ); _Thread_Enable_dispatch(); 4a2ee: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 4a2f4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a2fa: 6034 bras 4a330 <_CORE_mutex_Seize_interrupt_trylock+0xd4> <== NOT EXECUTED return 0; } /* if ( current < ceiling ) */ { executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED; 4a2fc: 7206 moveq #6,%d1 <== NOT EXECUTED 4a2fe: 2141 0034 movel %d1,%a0@(52) <== NOT EXECUTED the_mutex->lock = CORE_MUTEX_UNLOCKED; 4a302: 7001 moveq #1,%d0 <== NOT EXECUTED the_mutex->nest_count = 0; /* undo locking above */ 4a304: 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; 4a308: 2340 004e movel %d0,%a1@(78) <== NOT EXECUTED the_mutex->nest_count = 0; /* undo locking above */ executing->resource_count--; /* undo locking above */ 4a30c: 53a8 001c subql #1,%a0@(28) <== NOT EXECUTED _ISR_Enable( level ); 4a310: 46c2 movew %d2,%sr <== NOT EXECUTED 4a312: 6028 bras 4a33c <_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 ) ) { 4a314: 2469 005a moveal %a1@(90),%a2 <== NOT EXECUTED 4a318: b1ca cmpal %a2,%a0 <== NOT EXECUTED 4a31a: 6624 bnes 4a340 <_CORE_mutex_Seize_interrupt_trylock+0xe4> <== NOT EXECUTED switch ( the_mutex->Attributes.lock_nesting_behavior ) { 4a31c: 2029 0040 movel %a1@(64),%d0 <== NOT EXECUTED 4a320: 6708 beqs 4a32a <_CORE_mutex_Seize_interrupt_trylock+0xce> <== NOT EXECUTED 4a322: 7201 moveq #1,%d1 <== NOT EXECUTED 4a324: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a326: 6618 bnes 4a340 <_CORE_mutex_Seize_interrupt_trylock+0xe4> <== NOT EXECUTED 4a328: 600a bras 4a334 <_CORE_mutex_Seize_interrupt_trylock+0xd8> <== NOT EXECUTED case CORE_MUTEX_NESTING_ACQUIRES: the_mutex->nest_count++; 4a32a: 52a9 0052 addql #1,%a1@(82) <== NOT EXECUTED _ISR_Enable( level ); 4a32e: 46c2 movew %d2,%sr <== NOT EXECUTED 4a330: 4280 clrl %d0 <== NOT EXECUTED 4a332: 600e bras 4a342 <_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; 4a334: 7002 moveq #2,%d0 <== NOT EXECUTED 4a336: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED _ISR_Enable( level ); 4a33a: 46c2 movew %d2,%sr <== NOT EXECUTED 4a33c: 4200 clrb %d0 <== NOT EXECUTED 4a33e: 6002 bras 4a342 <_CORE_mutex_Seize_interrupt_trylock+0xe6> <== NOT EXECUTED 4a340: 7001 moveq #1,%d0 <== NOT EXECUTED return _CORE_mutex_Seize_interrupt_trylock_body( the_mutex, level_p ); } 4a342: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4a346: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4a34a: 4e5e unlk %fp <== NOT EXECUTED 4a34c: 4e75 rts <== NOT EXECUTED ... 00045b64 <_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 ) { 45b64: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45b68: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45b6a: 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; 45b6e: 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 ) { 45b72: 4a2a 0044 tstb %a2@(68) <== NOT EXECUTED 45b76: 670e beqs 45b86 <_CORE_mutex_Surrender+0x22> <== NOT EXECUTED if ( !_Thread_Is_executing( holder ) ) 45b78: b1f9 0005 7f3a cmpal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 45b7e: 6706 beqs 45b86 <_CORE_mutex_Surrender+0x22> <== NOT EXECUTED 45b80: 7003 moveq #3,%d0 <== NOT EXECUTED 45b82: 6000 00e4 braw 45c68 <_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 ) 45b86: 202a 0052 movel %a2@(82),%d0 <== NOT EXECUTED 45b8a: 6700 00da beqw 45c66 <_CORE_mutex_Surrender+0x102> <== NOT EXECUTED return CORE_MUTEX_STATUS_SUCCESSFUL; the_mutex->nest_count--; 45b8e: 5380 subql #1,%d0 <== NOT EXECUTED 45b90: 2540 0052 movel %d0,%a2@(82) <== NOT EXECUTED if ( the_mutex->nest_count != 0 ) { 45b94: 6714 beqs 45baa <_CORE_mutex_Surrender+0x46> <== NOT EXECUTED switch ( the_mutex->Attributes.lock_nesting_behavior ) { 45b96: 202a 0040 movel %a2@(64),%d0 <== NOT EXECUTED 45b9a: 6700 00ca beqw 45c66 <_CORE_mutex_Surrender+0x102> <== NOT EXECUTED 45b9e: 7201 moveq #1,%d1 <== NOT EXECUTED 45ba0: b280 cmpl %d0,%d1 <== NOT EXECUTED 45ba2: 6606 bnes 45baa <_CORE_mutex_Surrender+0x46> <== NOT EXECUTED 45ba4: 7002 moveq #2,%d0 <== NOT EXECUTED 45ba6: 6000 00c0 braw 45c68 <_CORE_mutex_Surrender+0x104> <== NOT EXECUTED 45baa: 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 ) || 45bae: 7202 moveq #2,%d1 <== NOT EXECUTED 45bb0: b280 cmpl %d0,%d1 <== NOT EXECUTED 45bb2: 6708 beqs 45bbc <_CORE_mutex_Surrender+0x58> <== NOT EXECUTED 45bb4: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 45bb8: b280 cmpl %d0,%d1 <== NOT EXECUTED 45bba: 6604 bnes 45bc0 <_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--; 45bbc: 53a8 001c subql #1,%a0@(28) <== NOT EXECUTED 45bc0: 202a 0046 movel %a2@(70),%d0 <== NOT EXECUTED } the_mutex->holder = NULL; 45bc4: 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 ) || 45bc8: 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; 45bca: 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 ) || 45bce: b280 cmpl %d0,%d1 <== NOT EXECUTED 45bd0: 6708 beqs 45bda <_CORE_mutex_Surrender+0x76> <== NOT EXECUTED 45bd2: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 45bd6: b280 cmpl %d0,%d1 <== NOT EXECUTED 45bd8: 6624 bnes 45bfe <_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 && 45bda: 4aa8 001c tstl %a0@(28) <== NOT EXECUTED 45bde: 661e bnes 45bfe <_CORE_mutex_Surrender+0x9a> <== NOT EXECUTED 45be0: 2028 0018 movel %a0@(24),%d0 <== NOT EXECUTED 45be4: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 45be8: 6714 beqs 45bfe <_CORE_mutex_Surrender+0x9a> <== NOT EXECUTED holder->real_priority != holder->current_priority ) { _Thread_Change_priority( holder, holder->real_priority, TRUE ); 45bea: 4878 0001 pea 1 <== NOT EXECUTED 45bee: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45bf0: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45bf2: 4eb9 0004 6804 jsr 46804 <_Thread_Change_priority> <== NOT EXECUTED 45bf8: 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 ) ) ) { 45bfe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45c00: 4eb9 0004 702c jsr 4702c <_Thread_queue_Dequeue> <== NOT EXECUTED 45c06: 588f addql #4,%sp <== NOT EXECUTED 45c08: 2040 moveal %d0,%a0 <== NOT EXECUTED 45c0a: 4a80 tstl %d0 <== NOT EXECUTED 45c0c: 674e beqs 45c5c <_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; 45c0e: 7201 moveq #1,%d1 <== NOT EXECUTED } else #endif { the_mutex->holder = the_thread; the_mutex->holder_id = the_thread->Object.id; 45c10: 2568 0008 005e movel %a0@(8),%a2@(94) <== NOT EXECUTED the_mutex->nest_count = 1; switch ( the_mutex->Attributes.discipline ) { 45c16: 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; 45c1a: 2541 0052 movel %d1,%a2@(82) <== NOT EXECUTED switch ( the_mutex->Attributes.discipline ) { 45c1e: 123c 0002 moveb #2,%d1 <== NOT EXECUTED } else #endif { the_mutex->holder = the_thread; 45c22: 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 ) { 45c26: b280 cmpl %d0,%d1 <== NOT EXECUTED 45c28: 670a beqs 45c34 <_CORE_mutex_Surrender+0xd0> <== NOT EXECUTED 45c2a: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 45c2e: b280 cmpl %d0,%d1 <== NOT EXECUTED 45c30: 6634 bnes 45c66 <_CORE_mutex_Surrender+0x102> <== NOT EXECUTED 45c32: 6006 bras 45c3a <_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++; 45c34: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED 45c38: 602c bras 45c66 <_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++; 45c3a: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED if (the_mutex->Attributes.priority_ceiling < 45c3e: 202a 004a movel %a2@(74),%d0 <== NOT EXECUTED 45c42: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 45c46: 641e bccs 45c66 <_CORE_mutex_Surrender+0x102> <== NOT EXECUTED the_thread->current_priority){ _Thread_Change_priority( 45c48: 42a7 clrl %sp@- <== NOT EXECUTED 45c4a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45c4c: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45c4e: 4eb9 0004 6804 jsr 46804 <_Thread_Change_priority> <== NOT EXECUTED 45c54: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45c5a: 600a bras 45c66 <_CORE_mutex_Surrender+0x102> <== NOT EXECUTED } break; } } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; 45c5c: 7001 moveq #1,%d0 <== NOT EXECUTED 45c5e: 2540 004e movel %d0,%a2@(78) <== NOT EXECUTED 45c62: 4200 clrb %d0 <== NOT EXECUTED 45c64: 6002 bras 45c68 <_CORE_mutex_Surrender+0x104> <== NOT EXECUTED 45c66: 4280 clrl %d0 <== NOT EXECUTED return CORE_MUTEX_STATUS_SUCCESSFUL; } 45c68: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45c6c: 4e5e unlk %fp <== NOT EXECUTED 45c6e: 4e75 rts 00045c70 <_CORE_semaphore_Flush>: void _CORE_semaphore_Flush( CORE_semaphore_Control *the_semaphore, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { 45c70: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED &the_semaphore->Wait_queue, remote_extract_callout, status ); } 45c74: 4e5e unlk %fp <== NOT EXECUTED Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { _Thread_queue_Flush( 45c76: 4ef9 0004 7390 jmp 47390 <_Thread_queue_Flush> <== NOT EXECUTED 00045c7c <_CORE_semaphore_Initialize>: void _CORE_semaphore_Initialize( CORE_semaphore_Control *the_semaphore, CORE_semaphore_Attributes *the_semaphore_attributes, uint32_t initial_value ) { 45c7c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED the_semaphore->Attributes = *the_semaphore_attributes; the_semaphore->count = initial_value; _Thread_queue_Initialize( 45c80: 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 ) { 45c84: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 45c88: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED the_semaphore->Attributes = *the_semaphore_attributes; 45c8c: 2368 0004 0044 movel %a0@(4),%a1@(68) <== NOT EXECUTED the_semaphore->count = initial_value; _Thread_queue_Initialize( 45c92: 7001 moveq #1,%d0 <== NOT EXECUTED 45c94: b0a8 0004 cmpl %a0@(4),%d0 <== NOT EXECUTED 45c98: 57c0 seq %d0 <== NOT EXECUTED CORE_semaphore_Attributes *the_semaphore_attributes, uint32_t initial_value ) { the_semaphore->Attributes = *the_semaphore_attributes; 45c9a: 2210 movel %a0@,%d1 <== NOT EXECUTED the_semaphore->count = initial_value; _Thread_queue_Initialize( 45c9c: 4878 0200 pea 200 <== NOT EXECUTED 45ca0: 49c0 extbl %d0 <== NOT EXECUTED 45ca2: 4480 negl %d0 <== NOT EXECUTED 45ca4: 2f00 movel %d0,%sp@- <== NOT EXECUTED uint32_t initial_value ) { the_semaphore->Attributes = *the_semaphore_attributes; the_semaphore->count = initial_value; 45ca6: 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; 45cac: 2341 0040 movel %d1,%a1@(64) <== NOT EXECUTED the_semaphore->count = initial_value; _Thread_queue_Initialize( 45cb0: 2f09 movel %a1,%sp@- <== NOT EXECUTED 45cb2: 4eb9 0004 73bc jsr 473bc <_Thread_queue_Initialize> <== NOT EXECUTED 45cb8: 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 ); } 45cbe: 4e5e unlk %fp <== NOT EXECUTED 45cc0: 4e75 rts <== NOT EXECUTED ... 0004d790 <_CORE_semaphore_Seize>: CORE_semaphore_Control *the_semaphore, Objects_Id id, bool wait, Watchdog_Interval timeout ) { 4d790: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4d794: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 4d798: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4d79c: 282e 0014 movel %fp@(20),%d4 <== NOT EXECUTED Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; 4d7a0: 2279 0005 ceae moveal 5ceae <_Thread_Executing>,%a1 <== NOT EXECUTED executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL; _ISR_Disable( level ); 4d7a6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED { Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL; 4d7ac: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED CORE_semaphore_Control *the_semaphore, Objects_Id id, bool wait, Watchdog_Interval timeout ) { 4d7b0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4d7b4: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL; _ISR_Disable( level ); 4d7b8: 40c1 movew %sr,%d1 <== NOT EXECUTED 4d7ba: 8081 orl %d1,%d0 <== NOT EXECUTED 4d7bc: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_semaphore->count != 0 ) { 4d7be: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED 4d7c2: 670a beqs 4d7ce <_CORE_semaphore_Seize+0x3e> <== NOT EXECUTED the_semaphore->count -= 1; 4d7c4: 5380 subql #1,%d0 <== NOT EXECUTED 4d7c6: 2140 0048 movel %d0,%a0@(72) <== NOT EXECUTED _ISR_Enable( level ); 4d7ca: 46c1 movew %d1,%sr <== NOT EXECUTED 4d7cc: 603c bras 4d80a <_CORE_semaphore_Seize+0x7a> <== NOT EXECUTED /* * If the semaphore was not available and the caller was not willing * to block, then return immediately with a status indicating that * the semaphore was not available and the caller never blocked. */ if ( !wait ) { 4d7ce: 4a02 tstb %d2 <== NOT EXECUTED 4d7d0: 660a bnes 4d7dc <_CORE_semaphore_Seize+0x4c> <== NOT EXECUTED _ISR_Enable( level ); 4d7d2: 46c1 movew %d1,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT; 4d7d4: 7001 moveq #1,%d0 <== NOT EXECUTED 4d7d6: 2340 0034 movel %d0,%a1@(52) <== NOT EXECUTED 4d7da: 602e bras 4d80a <_CORE_semaphore_Seize+0x7a> <== NOT EXECUTED 4d7dc: 7001 moveq #1,%d0 <== NOT EXECUTED * If the semaphore is not available and the caller is willing to * block, then we now block the caller with optional timeout. */ _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); executing->Wait.queue = &the_semaphore->Wait_queue; executing->Wait.id = id; 4d7de: 2343 0020 movel %d3,%a1@(32) <== NOT EXECUTED 4d7e2: 2140 0030 movel %d0,%a0@(48) <== NOT EXECUTED /* * If the semaphore is not available and the caller is willing to * block, then we now block the caller with optional timeout. */ _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); executing->Wait.queue = &the_semaphore->Wait_queue; 4d7e6: 2348 0044 movel %a0,%a1@(68) <== NOT EXECUTED executing->Wait.id = id; _ISR_Enable( level ); 4d7ea: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout ); 4d7ec: 2d44 000c movel %d4,%fp@(12) <== NOT EXECUTED 4d7f0: 203c 0004 a398 movel #304024,%d0 <== NOT EXECUTED 4d7f6: 2d40 0010 movel %d0,%fp@(16) <== NOT EXECUTED 4d7fa: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 4d7fe: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 4d802: 4e5e unlk %fp <== NOT EXECUTED */ _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); executing->Wait.queue = &the_semaphore->Wait_queue; executing->Wait.id = id; _ISR_Enable( level ); _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout ); 4d804: 4ef9 0004 a060 jmp 4a060 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED } 4d80a: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 4d80e: 4e5e unlk %fp <== NOT EXECUTED 4d810: 4e75 rts <== NOT EXECUTED ... 00045cc4 <_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 ) { 45cc4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45cc8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45cca: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 45cce: 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)) ) { 45cd0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45cd2: 4eb9 0004 702c jsr 4702c <_Thread_queue_Dequeue> <== NOT EXECUTED 45cd8: 588f addql #4,%sp <== NOT EXECUTED 45cda: 4a80 tstl %d0 <== NOT EXECUTED 45cdc: 6704 beqs 45ce2 <_CORE_semaphore_Surrender+0x1e> <== NOT EXECUTED 45cde: 4280 clrl %d0 <== NOT EXECUTED 45ce0: 6024 bras 45d06 <_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 ); 45ce2: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 45ce8: 40c2 movew %sr,%d2 <== NOT EXECUTED 45cea: 8082 orl %d2,%d0 <== NOT EXECUTED 45cec: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_semaphore->count < the_semaphore->Attributes.maximum_count ) 45cee: 222a 0048 movel %a2@(72),%d1 <== NOT EXECUTED 45cf2: b2aa 0040 cmpl %a2@(64),%d1 <== NOT EXECUTED 45cf6: 6504 bcss 45cfc <_CORE_semaphore_Surrender+0x38> <== NOT EXECUTED 45cf8: 7004 moveq #4,%d0 <== NOT EXECUTED 45cfa: 6008 bras 45d04 <_CORE_semaphore_Surrender+0x40> <== NOT EXECUTED the_semaphore->count += 1; 45cfc: 5281 addql #1,%d1 <== NOT EXECUTED 45cfe: 4280 clrl %d0 <== NOT EXECUTED 45d00: 2541 0048 movel %d1,%a2@(72) <== NOT EXECUTED else status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED; _ISR_Enable( level ); 45d04: 46c2 movew %d2,%sr <== NOT EXECUTED } return status; } 45d06: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45d0a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45d0e: 4e5e unlk %fp <== NOT EXECUTED 45d10: 4e75 rts <== NOT EXECUTED ... 000464f8 <_CORE_spinlock_Initialize>: void _CORE_spinlock_Initialize( CORE_spinlock_Control *the_spinlock, CORE_spinlock_Attributes *the_spinlock_attributes ) { 464f8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 464fc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46500: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED the_spinlock->Attributes = *the_spinlock_attributes; 46504: 2091 movel %a1@,%a0@ <== NOT EXECUTED the_spinlock->lock = 0; the_spinlock->users = 0; the_spinlock->holder = 0; } 46506: 4e5e unlk %fp <== NOT EXECUTED ) { the_spinlock->Attributes = *the_spinlock_attributes; the_spinlock->lock = 0; 46508: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED the_spinlock->users = 0; 4650c: 42a8 0008 clrl %a0@(8) <== NOT EXECUTED the_spinlock->holder = 0; 46510: 42a8 000c clrl %a0@(12) <== NOT EXECUTED } 46514: 4e75 rts <== NOT EXECUTED ... 00046518 <_CORE_spinlock_Release>: */ CORE_spinlock_Status _CORE_spinlock_Release( CORE_spinlock_Control *the_spinlock ) { 46518: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4651c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ CORE_spinlock_Status _CORE_spinlock_Release( CORE_spinlock_Control *the_spinlock ) { 46522: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 46526: 40c1 movew %sr,%d1 <== NOT EXECUTED 46528: 8081 orl %d1,%d0 <== NOT EXECUTED 4652a: 46c0 movew %d0,%sr <== NOT EXECUTED /* * It must locked before it can be unlocked. */ if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) { 4652c: 2029 0004 movel %a1@(4),%d0 <== NOT EXECUTED 46530: 6608 bnes 4653a <_CORE_spinlock_Release+0x22> <== NOT EXECUTED _ISR_Enable( level ); 46532: 46c1 movew %d1,%sr <== NOT EXECUTED 46534: 103c 0006 moveb #6,%d0 <== NOT EXECUTED 46538: 602c bras 46566 <_CORE_spinlock_Release+0x4e> <== NOT EXECUTED } /* * It must locked by the current thread before it can be unlocked. */ if ( the_spinlock->holder != _Thread_Executing->Object.id ) { 4653a: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 4653e: 2079 0005 8e16 moveal 58e16 <_Thread_Executing>,%a0 <== NOT EXECUTED 46544: b0a8 0008 cmpl %a0@(8),%d0 <== NOT EXECUTED 46548: 6706 beqs 46550 <_CORE_spinlock_Release+0x38> <== NOT EXECUTED _ISR_Enable( level ); 4654a: 46c1 movew %d1,%sr <== NOT EXECUTED 4654c: 7002 moveq #2,%d0 <== NOT EXECUTED 4654e: 6016 bras 46566 <_CORE_spinlock_Release+0x4e> <== NOT EXECUTED } /* * Let it be unlocked. */ the_spinlock->users -= 1; 46550: 2029 0008 movel %a1@(8),%d0 <== NOT EXECUTED 46554: 5380 subql #1,%d0 <== NOT EXECUTED 46556: 2340 0008 movel %d0,%a1@(8) <== NOT EXECUTED the_spinlock->lock = CORE_SPINLOCK_UNLOCKED; 4655a: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED the_spinlock->holder = 0; 4655e: 42a9 000c clrl %a1@(12) <== NOT EXECUTED _ISR_Enable( level ); 46562: 46c1 movew %d1,%sr <== NOT EXECUTED 46564: 4280 clrl %d0 <== NOT EXECUTED return CORE_SPINLOCK_SUCCESSFUL; } 46566: 4e5e unlk %fp <== NOT EXECUTED 46568: 4e75 rts <== NOT EXECUTED ... 0004656c <_CORE_spinlock_Wait>: CORE_spinlock_Status _CORE_spinlock_Wait( CORE_spinlock_Control *the_spinlock, bool wait, Watchdog_Interval timeout ) { 4656c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 46570: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 46574: 2a2e 0010 movel %fp@(16),%d5 <== NOT EXECUTED ISR_Level level; Watchdog_Interval limit = _Watchdog_Ticks_since_boot + timeout; 46578: 2039 0005 8ea0 movel 58ea0 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED 4657e: 2605 movel %d5,%d3 <== NOT EXECUTED 46580: d680 addl %d0,%d3 <== NOT EXECUTED _ISR_Disable( level ); 46582: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED CORE_spinlock_Status _CORE_spinlock_Wait( CORE_spinlock_Control *the_spinlock, bool wait, Watchdog_Interval timeout ) { 46588: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4658c: 142e 000f moveb %fp@(15),%d2 <== NOT EXECUTED ISR_Level level; Watchdog_Interval limit = _Watchdog_Ticks_since_boot + timeout; _ISR_Disable( level ); 46590: 40c1 movew %sr,%d1 <== NOT EXECUTED 46592: 8081 orl %d1,%d0 <== NOT EXECUTED 46594: 46c0 movew %d0,%sr <== NOT EXECUTED if ( (the_spinlock->lock == CORE_SPINLOCK_LOCKED) && 46596: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 4659a: 7801 moveq #1,%d4 <== NOT EXECUTED 4659c: b880 cmpl %d0,%d4 <== NOT EXECUTED 4659e: 6618 bnes 465b8 <_CORE_spinlock_Wait+0x4c> <== NOT EXECUTED 465a0: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 465a4: 2079 0005 8e16 moveal 58e16 <_Thread_Executing>,%a0 <== NOT EXECUTED 465aa: b0a8 0008 cmpl %a0@(8),%d0 <== NOT EXECUTED 465ae: 6608 bnes 465b8 <_CORE_spinlock_Wait+0x4c> <== NOT EXECUTED (the_spinlock->holder == _Thread_Executing->Object.id) ) { _ISR_Enable( level ); 465b0: 46c1 movew %d1,%sr <== NOT EXECUTED 465b2: 7001 moveq #1,%d0 <== NOT EXECUTED 465b4: 6000 0088 braw 4663e <_CORE_spinlock_Wait+0xd2> <== NOT EXECUTED return CORE_SPINLOCK_HOLDER_RELOCKING; } the_spinlock->users += 1; 465b8: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED */ _ISR_Enable( level ); /* An ISR could occur here */ _Thread_Enable_dispatch(); 465bc: 47f9 0004 75ce lea 475ce <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED if ( (the_spinlock->lock == CORE_SPINLOCK_LOCKED) && (the_spinlock->holder == _Thread_Executing->Object.id) ) { _ISR_Enable( level ); return CORE_SPINLOCK_HOLDER_RELOCKING; } the_spinlock->users += 1; 465c2: 5280 addql #1,%d0 <== NOT EXECUTED /* Another thread could get dispatched here */ /* Reenter the critical sections so we can attempt the lock again. */ _Thread_Disable_dispatch(); _ISR_Disable( level ); 465c4: 283c 0000 0700 movel #1792,%d4 <== NOT EXECUTED if ( (the_spinlock->lock == CORE_SPINLOCK_LOCKED) && (the_spinlock->holder == _Thread_Executing->Object.id) ) { _ISR_Enable( level ); return CORE_SPINLOCK_HOLDER_RELOCKING; } the_spinlock->users += 1; 465ca: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED for ( ;; ) { if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) { 465ce: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 465d2: 661c bnes 465f0 <_CORE_spinlock_Wait+0x84> <== NOT EXECUTED the_spinlock->lock = CORE_SPINLOCK_LOCKED; the_spinlock->holder = _Thread_Executing->Object.id; 465d4: 2079 0005 8e16 moveal 58e16 <_Thread_Executing>,%a0 <== NOT EXECUTED return CORE_SPINLOCK_HOLDER_RELOCKING; } the_spinlock->users += 1; for ( ;; ) { if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) { the_spinlock->lock = CORE_SPINLOCK_LOCKED; 465da: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 465de: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED the_spinlock->holder = _Thread_Executing->Object.id; 465e2: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED 465e6: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED _ISR_Enable( level ); 465ea: 46c1 movew %d1,%sr <== NOT EXECUTED 465ec: 4280 clrl %d0 <== NOT EXECUTED 465ee: 604e bras 4663e <_CORE_spinlock_Wait+0xd2> <== NOT EXECUTED } /* * Spinlock is unavailable. If not willing to wait, return. */ if ( !wait ) { 465f0: 4a02 tstb %d2 <== NOT EXECUTED 465f2: 6610 bnes 46604 <_CORE_spinlock_Wait+0x98> <== NOT EXECUTED the_spinlock->users -= 1; 465f4: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED 465f8: 5380 subql #1,%d0 <== NOT EXECUTED 465fa: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED _ISR_Enable( level ); 465fe: 46c1 movew %d1,%sr <== NOT EXECUTED 46600: 7005 moveq #5,%d0 <== NOT EXECUTED 46602: 603a bras 4663e <_CORE_spinlock_Wait+0xd2> <== NOT EXECUTED } /* * They are willing to wait but there could be a timeout. */ if ( timeout && (limit <= _Watchdog_Ticks_since_boot) ) { 46604: 4a85 tstl %d5 <== NOT EXECUTED 46606: 671a beqs 46622 <_CORE_spinlock_Wait+0xb6> <== NOT EXECUTED 46608: 2039 0005 8ea0 movel 58ea0 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED 4660e: b083 cmpl %d3,%d0 <== NOT EXECUTED 46610: 6510 bcss 46622 <_CORE_spinlock_Wait+0xb6> <== NOT EXECUTED the_spinlock->users -= 1; 46612: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED 46616: 5380 subql #1,%d0 <== NOT EXECUTED 46618: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED _ISR_Enable( level ); 4661c: 46c1 movew %d1,%sr <== NOT EXECUTED 4661e: 7003 moveq #3,%d0 <== NOT EXECUTED 46620: 601c bras 4663e <_CORE_spinlock_Wait+0xd2> <== NOT EXECUTED * * A spinlock cannot be deleted while it is being used so we are * safe from deletion. */ _ISR_Enable( level ); 46622: 46c1 movew %d1,%sr <== NOT EXECUTED /* An ISR could occur here */ _Thread_Enable_dispatch(); 46624: 4e93 jsr %a3@ <== NOT EXECUTED 46626: 2039 0005 8d58 movel 58d58 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4662c: 5280 addql #1,%d0 <== NOT EXECUTED 4662e: 23c0 0005 8d58 movel %d0,58d58 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* Another thread could get dispatched here */ /* Reenter the critical sections so we can attempt the lock again. */ _Thread_Disable_dispatch(); _ISR_Disable( level ); 46634: 2004 movel %d4,%d0 <== NOT EXECUTED 46636: 40c1 movew %sr,%d1 <== NOT EXECUTED 46638: 8081 orl %d1,%d0 <== NOT EXECUTED 4663a: 46c0 movew %d0,%sr <== NOT EXECUTED 4663c: 6090 bras 465ce <_CORE_spinlock_Wait+0x62> <== NOT EXECUTED } } 4663e: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 46644: 4e5e unlk %fp <== NOT EXECUTED 46646: 4e75 rts 00045964 <_Chain_Append>: void _Chain_Append( Chain_Control *the_chain, Chain_Node *node ) { 45964: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45968: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4596a: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED void _Chain_Append( Chain_Control *the_chain, Chain_Node *node ) { 45970: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 45974: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 45978: 40c0 movew %sr,%d0 <== NOT EXECUTED 4597a: 8280 orl %d0,%d1 <== NOT EXECUTED 4597c: 46c1 movew %d1,%sr <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4597e: 2209 movel %a1,%d1 <== NOT EXECUTED 45980: 5881 addql #4,%d1 <== NOT EXECUTED 45982: 2081 movel %d1,%a0@ <== NOT EXECUTED old_last_node = the_chain->last; 45984: 2469 0008 moveal %a1@(8),%a2 <== NOT EXECUTED the_chain->last = the_node; 45988: 2348 0008 movel %a0,%a1@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4598c: 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; 45990: 2488 movel %a0,%a2@ <== NOT EXECUTED _Chain_Append_unprotected( the_chain, node ); _ISR_Enable( level ); 45992: 46c0 movew %d0,%sr <== NOT EXECUTED } 45994: 245f moveal %sp@+,%a2 <== NOT EXECUTED 45996: 4e5e unlk %fp <== NOT EXECUTED 45998: 4e75 rts <== NOT EXECUTED ... 0004a1c4 <_Chain_Extract>: */ void _Chain_Extract( Chain_Node *node ) { 4a1c4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4a1c8: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED */ void _Chain_Extract( Chain_Node *node ) { 4a1ce: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4a1d2: 40c0 movew %sr,%d0 <== NOT EXECUTED 4a1d4: 8280 orl %d0,%d1 <== NOT EXECUTED 4a1d6: 46c1 movew %d1,%sr <== NOT EXECUTED { Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; 4a1d8: 2268 0004 moveal %a0@(4),%a1 <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 4a1dc: 2050 moveal %a0@,%a0 <== NOT EXECUTED previous = the_node->previous; next->previous = previous; previous->next = next; 4a1de: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4a1e0: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED _Chain_Extract_unprotected( node ); _ISR_Enable( level ); 4a1e4: 46c0 movew %d0,%sr <== NOT EXECUTED } 4a1e6: 4e5e unlk %fp <== NOT EXECUTED 4a1e8: 4e75 rts <== NOT EXECUTED ... 0004a1ec <_Chain_Get>: */ Chain_Node *_Chain_Get( Chain_Control *the_chain ) { 4a1ec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a1f0: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; Chain_Node *return_node; return_node = NULL; _ISR_Disable( level ); 4a1f2: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Chain_Node *_Chain_Get( Chain_Control *the_chain ) { 4a1f8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; Chain_Node *return_node; return_node = NULL; _ISR_Disable( level ); 4a1fc: 40c1 movew %sr,%d1 <== NOT EXECUTED 4a1fe: 8081 orl %d1,%d0 <== NOT EXECUTED 4a200: 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)); 4a202: 204a moveal %a2,%a0 <== NOT EXECUTED 4a204: 2258 moveal %a0@+,%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( the_chain ) ) 4a206: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 4a208: 6604 bnes 4a20e <_Chain_Get+0x22> <== NOT EXECUTED 4a20a: 93c9 subal %a1,%a1 <== NOT EXECUTED 4a20c: 6008 bras 4a216 <_Chain_Get+0x2a> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 4a20e: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_chain->first = new_first; 4a210: 2488 movel %a0,%a2@ <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 4a212: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED return_node = _Chain_Get_first_unprotected( the_chain ); _ISR_Enable( level ); 4a216: 46c1 movew %d1,%sr <== NOT EXECUTED return return_node; } 4a218: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4a21a: 4e5e unlk %fp <== NOT EXECUTED 4a21c: 2009 movel %a1,%d0 <== NOT EXECUTED 4a21e: 4e75 rts 0004a220 <_Chain_Initialize>: Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size ) { 4a220: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a224: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a226: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4a22a: 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; 4a22e: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED next = starting_address; 4a232: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Head( Chain_Control *the_chain ) { return (Chain_Node *) the_chain; 4a236: 224a moveal %a2,%a1 <== NOT EXECUTED 4a238: 600e bras 4a248 <_Chain_Initialize+0x28> <== NOT EXECUTED while ( count-- ) { current->next = next; next->previous = current; 4a23a: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size ) { 4a23e: 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; 4a240: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size ) { 4a242: 2248 moveal %a0,%a1 <== NOT EXECUTED 4a244: 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-- ) { 4a248: 4a80 tstl %d0 <== NOT EXECUTED 4a24a: 66ee bnes 4a23a <_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 ); 4a24c: 200a movel %a2,%d0 <== NOT EXECUTED 4a24e: 5880 addql #4,%d0 <== NOT EXECUTED 4a250: 2280 movel %d0,%a1@ <== NOT EXECUTED the_chain->last = current; 4a252: 2549 0008 movel %a1,%a2@(8) <== NOT EXECUTED } 4a256: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4a258: 4e5e unlk %fp <== NOT EXECUTED 4a25a: 4e75 rts 0005e15c <_Chain_Insert>: void _Chain_Insert( Chain_Node *after_node, Chain_Node *node ) { 5e15c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5e160: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 5e162: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED void _Chain_Insert( Chain_Node *after_node, Chain_Node *node ) { 5e168: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 5e16c: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 5e170: 40c0 movew %sr,%d0 <== NOT EXECUTED 5e172: 8280 orl %d0,%d1 <== NOT EXECUTED 5e174: 46c1 movew %d1,%sr <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 5e176: 2451 moveal %a1@,%a2 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 5e178: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED before_node = after_node->next; after_node->next = the_node; 5e17c: 2288 movel %a0,%a1@ <== NOT EXECUTED the_node->next = before_node; before_node->previous = the_node; 5e17e: 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; 5e182: 208a movel %a2,%a0@ <== NOT EXECUTED _Chain_Insert_unprotected( after_node, node ); _ISR_Enable( level ); 5e184: 46c0 movew %d0,%sr <== NOT EXECUTED } 5e186: 245f moveal %sp@+,%a2 <== NOT EXECUTED 5e188: 4e5e unlk %fp <== NOT EXECUTED 5e18a: 4e75 rts 0004a15c <_Debug_Is_enabled>: */ bool _Debug_Is_enabled( rtems_debug_control level ) { 4a15c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a160: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4a164: c0b9 0005 7f3e andl 57f3e <_Debug_Level>,%d0 <== NOT EXECUTED 4a16a: 56c0 sne %d0 <== NOT EXECUTED return (_Debug_Level & level) ? true : false; } 4a16c: 4e5e unlk %fp <== NOT EXECUTED 4a16e: 4480 negl %d0 <== NOT EXECUTED 4a170: 4e75 rts <== NOT EXECUTED ... 0004a128 <_Debug_Manager_initialization>: * * _Debug_Manager_initialization */ void _Debug_Manager_initialization( void ) { 4a128: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_debug_disable( RTEMS_DEBUG_ALL_MASK ); } 4a12c: 4e5e unlk %fp <== NOT EXECUTED void rtems_debug_disable ( rtems_debug_control to_be_disabled ) { _Debug_Level &= ~to_be_disabled; 4a12e: 42b9 0005 7f3e clrl 57f3e <_Debug_Level> <== NOT EXECUTED */ void _Debug_Manager_initialization( void ) { rtems_debug_disable( RTEMS_DEBUG_ALL_MASK ); } 4a134: 4e75 rts 00049d78 <_Dual_ported_memory_Manager_initialization>: */ void _Dual_ported_memory_Manager_initialization( uint32_t maximum_ports ) { 49d78: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49d7c: 4878 0004 pea 4 <== NOT EXECUTED 49d80: 42a7 clrl %sp@- <== NOT EXECUTED 49d82: 4878 001c pea 1c <== NOT EXECUTED 49d86: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49d8a: 4878 0007 pea 7 <== NOT EXECUTED 49d8e: 4878 0002 pea 2 <== NOT EXECUTED 49d92: 4879 0005 875a pea 5875a <_Dual_ported_memory_Information> <== NOT EXECUTED 49d98: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49d9e: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 49da4: 4e5e unlk %fp <== NOT EXECUTED 49da6: 4e75 rts 00049da8 <_Event_Manager_initialization>: * * This routine performs the initialization necessary for this manager. */ void _Event_Manager_initialization( void ) { 49da8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED */ #if defined(RTEMS_MULTIPROCESSING) _MPCI_Register_packet_processor( MP_PACKET_EVENT, _Event_MP_Process_packet ); #endif } 49dac: 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; 49dae: 42b9 0005 86d6 clrl 586d6 <_Event_Sync_state> <== NOT EXECUTED */ #if defined(RTEMS_MULTIPROCESSING) _MPCI_Register_packet_processor( MP_PACKET_EVENT, _Event_MP_Process_packet ); #endif } 49db4: 4e75 rts <== NOT EXECUTED ... 000448e4 <_Event_Seize>: rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 448e4: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 448e8: 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; 448ec: 2479 0005 7f3a moveal 57f3a <_Thread_Executing>,%a2 <== NOT EXECUTED rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 448f2: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 448f6: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 448fa: 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 ); 448fe: 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; 44904: 42aa 0034 clrl %a2@(52) <== NOT EXECUTED rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 44908: 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 ]; 4490c: 226a 010c moveal %a2@(268),%a1 <== NOT EXECUTED _ISR_Disable( level ); 44910: 40c4 movew %sr,%d4 <== NOT EXECUTED 44912: 8084 orl %d4,%d0 <== NOT EXECUTED 44914: 46c0 movew %d0,%sr <== NOT EXECUTED pending_events = api->pending_events; 44916: 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 ); 44918: 2203 movel %d3,%d1 <== NOT EXECUTED 4491a: c285 andl %d5,%d1 <== NOT EXECUTED seized_events = _Event_sets_Get( pending_events, event_in ); if ( !_Event_sets_Is_empty( seized_events ) && 4491c: 6716 beqs 44934 <_Event_Seize+0x50> <== NOT EXECUTED 4491e: b681 cmpl %d1,%d3 <== NOT EXECUTED 44920: 6706 beqs 44928 <_Event_Seize+0x44> <== NOT EXECUTED 44922: 0802 0001 btst #1,%d2 <== NOT EXECUTED 44926: 670c beqs 44934 <_Event_Seize+0x50> <== NOT EXECUTED (seized_events == event_in || _Options_Is_any( option_set )) ) { api->pending_events = 44928: 2001 movel %d1,%d0 <== NOT EXECUTED 4492a: 4680 notl %d0 <== NOT EXECUTED 4492c: c085 andl %d5,%d0 <== NOT EXECUTED 4492e: 2280 movel %d0,%a1@ <== NOT EXECUTED _Event_sets_Clear( pending_events, seized_events ); _ISR_Enable( level ); 44930: 46c4 movew %d4,%sr <== NOT EXECUTED 44932: 600e bras 44942 <_Event_Seize+0x5e> <== NOT EXECUTED *event_out = seized_events; return; } if ( _Options_Is_no_wait( option_set ) ) { 44934: 0802 0000 btst #0,%d2 <== NOT EXECUTED 44938: 670e beqs 44948 <_Event_Seize+0x64> <== NOT EXECUTED _ISR_Enable( level ); 4493a: 46c4 movew %d4,%sr <== NOT EXECUTED executing->Wait.return_code = RTEMS_UNSATISFIED; 4493c: 700d moveq #13,%d0 <== NOT EXECUTED 4493e: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED *event_out = seized_events; 44942: 2081 movel %d1,%a0@ <== NOT EXECUTED 44944: 6000 0096 braw 449dc <_Event_Seize+0xf8> <== NOT EXECUTED return; } _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; 44948: 7201 moveq #1,%d1 <== NOT EXECUTED executing->Wait.option = (uint32_t) option_set; 4494a: 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; 4494e: 23c1 0005 86d6 movel %d1,586d6 <_Event_Sync_state> <== NOT EXECUTED executing->Wait.option = (uint32_t) option_set; executing->Wait.count = (uint32_t) event_in; 44954: 2543 0024 movel %d3,%a2@(36) <== NOT EXECUTED executing->Wait.return_argument = event_out; 44958: 2548 0028 movel %a0,%a2@(40) <== NOT EXECUTED _ISR_Enable( level ); 4495c: 46c4 movew %d4,%sr <== NOT EXECUTED if ( ticks ) { 4495e: 4a86 tstl %d6 <== NOT EXECUTED 44960: 6730 beqs 44992 <_Event_Seize+0xae> <== NOT EXECUTED _Watchdog_Initialize( 44962: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 44966: 243c 0004 4b40 movel #281408,%d2 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4496c: 2546 0054 movel %d6,%a2@(84) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 44970: 2542 0064 movel %d2,%a2@(100) <== NOT EXECUTED the_watchdog->id = id; 44974: 2540 0068 movel %d0,%a2@(104) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 44978: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 4497c: 42aa 006c clrl %a2@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 44980: 486a 0048 pea %a2@(72) <== NOT EXECUTED 44984: 4879 0005 7f58 pea 57f58 <_Watchdog_Ticks_chain> <== NOT EXECUTED 4498a: 4eb9 0004 7c80 jsr 47c80 <_Watchdog_Insert> <== NOT EXECUTED 44990: 508f addql #8,%sp <== NOT EXECUTED NULL ); _Watchdog_Insert_ticks( &executing->Timer, ticks ); } _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT ); 44992: 4878 0100 pea 100 <== NOT EXECUTED 44996: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44998: 4eb9 0004 754c jsr 4754c <_Thread_Set_state> <== NOT EXECUTED _ISR_Disable( level ); 4499e: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 449a4: 40c1 movew %sr,%d1 <== NOT EXECUTED 449a6: 8081 orl %d1,%d0 <== NOT EXECUTED 449a8: 46c0 movew %d0,%sr <== NOT EXECUTED sync_state = _Event_Sync_state; 449aa: 2039 0005 86d6 movel 586d6 <_Event_Sync_state>,%d0 <== NOT EXECUTED _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) { 449b0: 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; 449b2: 42b9 0005 86d6 clrl 586d6 <_Event_Sync_state> <== NOT EXECUTED if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) { 449b8: 7401 moveq #1,%d2 <== NOT EXECUTED 449ba: b480 cmpl %d0,%d2 <== NOT EXECUTED 449bc: 6604 bnes 449c2 <_Event_Seize+0xde> <== NOT EXECUTED _ISR_Enable( level ); 449be: 46c1 movew %d1,%sr <== NOT EXECUTED 449c0: 601a bras 449dc <_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 ); 449c2: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED } 449c6: 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 ); 449cc: 2d41 0010 movel %d1,%fp@(16) <== NOT EXECUTED 449d0: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 449d4: 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 ); 449d6: 4ef9 0004 67b4 jmp 467b4 <_Thread_blocking_operation_Cancel> <== NOT EXECUTED } 449dc: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 449e2: 4e5e unlk %fp <== NOT EXECUTED 449e4: 4e75 rts <== NOT EXECUTED ... 00044a38 <_Event_Surrender>: */ void _Event_Surrender( Thread_Control *the_thread ) { 44a38: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 44a3c: 48d7 0c7c moveml %d2-%d6/%a2-%a3,%sp@ <== NOT EXECUTED 44a40: 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 ); 44a44: 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 ]; 44a4a: 206a 010c moveal %a2@(268),%a0 <== NOT EXECUTED option_set = (rtems_option) the_thread->Wait.option; 44a4e: 2a2a 0030 movel %a2@(48),%d5 <== NOT EXECUTED _ISR_Disable( level ); 44a52: 40c4 movew %sr,%d4 <== NOT EXECUTED 44a54: 8084 orl %d4,%d0 <== NOT EXECUTED 44a56: 46c0 movew %d0,%sr <== NOT EXECUTED pending_events = api->pending_events; event_condition = (rtems_event_set) the_thread->Wait.count; 44a58: 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; 44a5c: 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 ); 44a5e: 2202 movel %d2,%d1 <== NOT EXECUTED 44a60: 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 ) ) { 44a62: 6606 bnes 44a6a <_Event_Surrender+0x32> <== NOT EXECUTED _ISR_Enable( level ); 44a64: 46c4 movew %d4,%sr <== NOT EXECUTED 44a66: 6000 00cc braw 44b34 <_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() && 44a6a: 2039 0005 7f1a movel 57f1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED 44a70: 674a beqs 44abc <_Event_Surrender+0x84> <== NOT EXECUTED 44a72: b5f9 0005 7f3a cmpal 57f3a <_Thread_Executing>,%a2 <== NOT EXECUTED 44a78: 6642 bnes 44abc <_Event_Surrender+0x84> <== NOT EXECUTED 44a7a: 2039 0005 86d6 movel 586d6 <_Event_Sync_state>,%d0 <== NOT EXECUTED 44a80: 7c01 moveq #1,%d6 <== NOT EXECUTED 44a82: bc80 cmpl %d0,%d6 <== NOT EXECUTED 44a84: 670e beqs 44a94 <_Event_Surrender+0x5c> <== NOT EXECUTED 44a86: 2039 0005 86d6 movel 586d6 <_Event_Sync_state>,%d0 <== NOT EXECUTED 44a8c: 1c3c 0002 moveb #2,%d6 <== NOT EXECUTED 44a90: bc80 cmpl %d0,%d6 <== NOT EXECUTED 44a92: 6628 bnes 44abc <_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) ) { 44a94: b481 cmpl %d1,%d2 <== NOT EXECUTED 44a96: 6706 beqs 44a9e <_Event_Surrender+0x66> <== NOT EXECUTED 44a98: 0805 0001 btst #1,%d5 <== NOT EXECUTED 44a9c: 671a beqs 44ab8 <_Event_Surrender+0x80> <== NOT EXECUTED api->pending_events = _Event_sets_Clear( pending_events,seized_events ); 44a9e: 2001 movel %d1,%d0 <== NOT EXECUTED 44aa0: 4680 notl %d0 <== NOT EXECUTED 44aa2: c083 andl %d3,%d0 <== NOT EXECUTED 44aa4: 2080 movel %d0,%a0@ <== NOT EXECUTED the_thread->Wait.count = 0; *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; 44aa6: 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; 44aaa: 42aa 0024 clrl %a2@(36) <== NOT EXECUTED *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED; 44aae: 7003 moveq #3,%d0 <== NOT EXECUTED 44ab0: 23c0 0005 86d6 movel %d0,586d6 <_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; 44ab6: 2081 movel %d1,%a0@ <== NOT EXECUTED _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED; } _ISR_Enable( level ); 44ab8: 46c4 movew %d4,%sr <== NOT EXECUTED 44aba: 6078 bras 44b34 <_Event_Surrender+0xfc> <== NOT EXECUTED } /* * Otherwise, this is a normal send to another thread */ if ( _States_Is_waiting_for_event( the_thread->current_state ) ) { 44abc: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 44ac0: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 44ac6: 676a beqs 44b32 <_Event_Surrender+0xfa> <== NOT EXECUTED if ( seized_events == event_condition || _Options_Is_any( option_set ) ) { 44ac8: b481 cmpl %d1,%d2 <== NOT EXECUTED 44aca: 6706 beqs 44ad2 <_Event_Surrender+0x9a> <== NOT EXECUTED 44acc: 0805 0001 btst #1,%d5 <== NOT EXECUTED 44ad0: 6760 beqs 44b32 <_Event_Surrender+0xfa> <== NOT EXECUTED api->pending_events = _Event_sets_Clear( pending_events, seized_events ); 44ad2: 2001 movel %d1,%d0 <== NOT EXECUTED 44ad4: 4680 notl %d0 <== NOT EXECUTED 44ad6: c083 andl %d3,%d0 <== NOT EXECUTED 44ad8: 2080 movel %d0,%a0@ <== NOT EXECUTED the_thread->Wait.count = 0; *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; 44ada: 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; 44ade: 42aa 0024 clrl %a2@(36) <== NOT EXECUTED *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; 44ae2: 2081 movel %d1,%a0@ <== NOT EXECUTED _ISR_Flash( level ); 44ae4: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 44aea: 46c4 movew %d4,%sr <== NOT EXECUTED 44aec: 8084 orl %d4,%d0 <== NOT EXECUTED 44aee: 46c0 movew %d0,%sr <== NOT EXECUTED 44af0: 47f9 0004 6948 lea 46948 <_Thread_Clear_state>,%a3 <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 44af6: 7c02 moveq #2,%d6 <== NOT EXECUTED 44af8: bcaa 0050 cmpl %a2@(80),%d6 <== NOT EXECUTED 44afc: 6710 beqs 44b0e <_Event_Surrender+0xd6> <== NOT EXECUTED _ISR_Enable( level ); 44afe: 46c4 movew %d4,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 44b00: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 44b06: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44b08: 4e93 jsr %a3@ <== NOT EXECUTED 44b0a: 508f addql #8,%sp <== NOT EXECUTED 44b0c: 6026 bras 44b34 <_Event_Surrender+0xfc> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 44b0e: 7003 moveq #3,%d0 <== NOT EXECUTED 44b10: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED _Thread_Unblock( the_thread ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 44b14: 46c4 movew %d4,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 44b16: 486a 0048 pea %a2@(72) <== NOT EXECUTED 44b1a: 4eb9 0004 7d9c jsr 47d9c <_Watchdog_Remove> <== NOT EXECUTED 44b20: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 44b26: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44b28: 4e93 jsr %a3@ <== NOT EXECUTED 44b2a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44b30: 6002 bras 44b34 <_Event_Surrender+0xfc> <== NOT EXECUTED _Thread_Unblock( the_thread ); } return; } } _ISR_Enable( level ); 44b32: 46c4 movew %d4,%sr <== NOT EXECUTED } 44b34: 4cee 0c7c ffe4 moveml %fp@(-28),%d2-%d6/%a2-%a3 <== NOT EXECUTED 44b3a: 4e5e unlk %fp <== NOT EXECUTED 44b3c: 4e75 rts <== NOT EXECUTED ... 00044b40 <_Event_Timeout>: void _Event_Timeout( Objects_Id id, void *ignored ) { 44b40: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44b44: 2f02 movel %d2,%sp@- <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; ISR_Level level; the_thread = _Thread_Get( id, &location ); 44b46: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44b4a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44b4e: 4eb9 0004 6d34 jsr 46d34 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 44b54: 508f addql #8,%sp <== NOT EXECUTED { Thread_Control *the_thread; Objects_Locations location; ISR_Level level; the_thread = _Thread_Get( id, &location ); 44b56: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 44b58: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44b5c: 666a bnes 44bc8 <_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 ); 44b5e: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 44b64: 40c1 movew %sr,%d1 <== NOT EXECUTED 44b66: 8081 orl %d1,%d0 <== NOT EXECUTED 44b68: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !the_thread->Wait.count ) { /* verify thread is waiting */ 44b6a: 4aa8 0024 tstl %a0@(36) <== NOT EXECUTED 44b6e: 6612 bnes 44b82 <_Event_Timeout+0x42> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 44b70: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44b76: 5380 subql #1,%d0 <== NOT EXECUTED 44b78: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Unnest_dispatch(); _ISR_Enable( level ); 44b7e: 46c1 movew %d1,%sr <== NOT EXECUTED 44b80: 6046 bras 44bc8 <_Event_Timeout+0x88> <== NOT EXECUTED return; } the_thread->Wait.count = 0; 44b82: 42a8 0024 clrl %a0@(36) <== NOT EXECUTED if ( _Thread_Is_executing( the_thread ) ) { 44b86: b1f9 0005 7f3a cmpal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 44b8c: 6614 bnes 44ba2 <_Event_Timeout+0x62> <== NOT EXECUTED Thread_blocking_operation_States sync = _Event_Sync_state; 44b8e: 2039 0005 86d6 movel 586d6 <_Event_Sync_state>,%d0 <== NOT EXECUTED if ( (sync == THREAD_BLOCKING_OPERATION_SYNCHRONIZED) || 44b94: 7401 moveq #1,%d2 <== NOT EXECUTED 44b96: b480 cmpl %d0,%d2 <== NOT EXECUTED 44b98: 6508 bcss 44ba2 <_Event_Timeout+0x62> <== NOT EXECUTED (sync == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ) { _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT; 44b9a: 7002 moveq #2,%d0 <== NOT EXECUTED 44b9c: 23c0 0005 86d6 movel %d0,586d6 <_Event_Sync_state> <== NOT EXECUTED } } the_thread->Wait.return_code = RTEMS_TIMEOUT; 44ba2: 7406 moveq #6,%d2 <== NOT EXECUTED 44ba4: 2142 0034 movel %d2,%a0@(52) <== NOT EXECUTED _ISR_Enable( level ); 44ba8: 46c1 movew %d1,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 44baa: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 44bb0: 2f08 movel %a0,%sp@- <== NOT EXECUTED 44bb2: 4eb9 0004 6948 jsr 46948 <_Thread_Clear_state> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 44bb8: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44bbe: 508f addql #8,%sp <== NOT EXECUTED 44bc0: 5380 subql #1,%d0 <== NOT EXECUTED 44bc2: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED case OBJECTS_REMOTE: /* impossible */ #endif case OBJECTS_ERROR: break; } } 44bc8: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44bcc: 4e5e unlk %fp <== NOT EXECUTED 44bce: 4e75 rts 00045550 <_Extension_Manager_initialization>: */ void _Extension_Manager_initialization( uint32_t maximum_extensions ) { 45550: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 45554: 4878 0004 pea 4 <== NOT EXECUTED 45558: 42a7 clrl %sp@- <== NOT EXECUTED 4555a: 4878 0044 pea 44 <== NOT EXECUTED 4555e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45562: 4878 0009 pea 9 <== NOT EXECUTED 45566: 4878 0002 pea 2 <== NOT EXECUTED 4556a: 4879 0005 86da pea 586da <_Extension_Information> <== NOT EXECUTED 45570: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 45576: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , false, /* true if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4557c: 4e5e unlk %fp <== NOT EXECUTED 4557e: 4e75 rts 0004a3b0 <_Heap_Allocate>: void *_Heap_Allocate( Heap_Control *the_heap, size_t size ) { 4a3b0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4a3b4: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4a3b8: 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 = 4a3bc: 2f2b 0014 movel %a3@(20),%sp@- <== NOT EXECUTED 4a3c0: 2f2b 0010 movel %a3@(16),%sp@- <== NOT EXECUTED 4a3c4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a3c8: 4eb9 0004 5f30 jsr 45f30 <_Heap_Calc_block_size> <== NOT EXECUTED _Heap_Calc_block_size(size, the_heap->page_size, the_heap->min_block_size); if(the_size == 0) 4a3ce: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a3d4: 4a80 tstl %d0 <== NOT EXECUTED 4a3d6: 674c beqs 4a424 <_Heap_Allocate+0x74> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 4a3d8: 246b 0008 moveal %a3@(8),%a2 <== NOT EXECUTED 4a3dc: 4282 clrl %d2 <== NOT EXECUTED 4a3de: 6034 bras 4a414 <_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) { 4a3e0: b0aa 0004 cmpl %a2@(4),%d0 <== NOT EXECUTED 4a3e4: 6228 bhis 4a40e <_Heap_Allocate+0x5e> <== NOT EXECUTED (void)_Heap_Block_allocate(the_heap, the_block, the_size ); 4a3e6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a3e8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a3ea: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a3ec: 4eb9 0004 5f6e jsr 45f6e <_Heap_Block_allocate> <== NOT EXECUTED ptr = _Heap_User_area(the_block); stats->allocs += 1; stats->searches += search_count + 1; 4a3f2: 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; 4a3f6: 52ab 0048 addql #1,%a3@(72) <== NOT EXECUTED stats->searches += search_count + 1; 4a3fa: 5280 addql #1,%d0 <== NOT EXECUTED 4a3fc: d082 addl %d2,%d0 <== NOT EXECUTED 4a3fe: 2740 004c movel %d0,%a3@(76) <== NOT EXECUTED 4a402: 200a movel %a2,%d0 <== NOT EXECUTED 4a404: 5080 addql #8,%d0 <== NOT EXECUTED 4a406: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a40c: 600c bras 4a41a <_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) 4a40e: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 4a412: 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; 4a414: b7ca cmpal %a2,%a3 <== NOT EXECUTED 4a416: 66c8 bnes 4a3e0 <_Heap_Allocate+0x30> <== NOT EXECUTED 4a418: 4280 clrl %d0 <== NOT EXECUTED _HAssert(_Heap_Is_aligned_ptr(ptr, the_heap->page_size)); break; } } if(stats->max_search < search_count) 4a41a: b4ab 0044 cmpl %a3@(68),%d2 <== NOT EXECUTED 4a41e: 6304 blss 4a424 <_Heap_Allocate+0x74> <== NOT EXECUTED stats->max_search = search_count; 4a420: 2742 0044 movel %d2,%a3@(68) <== NOT EXECUTED return ptr; } 4a424: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4a42a: 4e5e unlk %fp <== NOT EXECUTED 4a42c: 4e75 rts <== NOT EXECUTED ... 000487f4 <_Heap_Allocate_aligned>: void *_Heap_Allocate_aligned( Heap_Control *the_heap, size_t size, uint32_t alignment ) { 487f4: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 487f8: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 487fc: 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); 48800: 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; 48804: 2c2b 0010 movel %a3@(16),%d6 <== NOT EXECUTED void *_Heap_Allocate_aligned( Heap_Control *the_heap, size_t size, uint32_t alignment ) { 48808: 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); 4880c: 2f06 movel %d6,%sp@- <== NOT EXECUTED void *_Heap_Allocate_aligned( Heap_Control *the_heap, size_t size, uint32_t alignment ) { 4880e: 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); 48812: 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; 48814: 5980 subql #4,%d0 <== NOT EXECUTED 48816: 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); 4881a: 4eb9 0004 8c4c jsr 48c4c <_Heap_Calc_block_size> <== NOT EXECUTED if(the_size == 0) 48820: 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); 48826: 2a40 moveal %d0,%a5 <== NOT EXECUTED if(the_size == 0) 48828: 4a80 tstl %d0 <== NOT EXECUTED 4882a: 6606 bnes 48832 <_Heap_Allocate_aligned+0x3e> <== NOT EXECUTED 4882c: 4280 clrl %d0 <== NOT EXECUTED 4882e: 6000 0104 braw 48934 <_Heap_Allocate_aligned+0x140> <== NOT EXECUTED return NULL; if(alignment == 0) 48832: 4a84 tstl %d4 <== NOT EXECUTED 48834: 6604 bnes 4883a <_Heap_Allocate_aligned+0x46> <== NOT EXECUTED 48836: 183c 0004 moveb #4,%d4 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 4883a: 246b 0008 moveal %a3@(8),%a2 <== NOT EXECUTED 4883e: 4287 clrl %d7 <== NOT EXECUTED 48840: 6000 00e0 braw 48922 <_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); 48844: 7afe moveq #-2,%d5 <== NOT EXECUTED 48846: 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. */ 4884a: bbc5 cmpal %d5,%a5 <== NOT EXECUTED 4884c: 6200 00ce bhiw 4891c <_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; 48850: 49f2 5800 lea %a2@(00000000,%d5:l),%a4 <== NOT EXECUTED aligned_user_addr = block_end - end_to_user_offs; 48854: 200c movel %a4,%d0 <== NOT EXECUTED 48856: 90ae fffc subl %fp@(-4),%d0 <== NOT EXECUTED _H_uptr_t *value, uint32_t alignment ) { _H_uptr_t v = *value; *value = v - (v % alignment); 4885a: 2400 movel %d0,%d2 <== NOT EXECUTED 4885c: 4c44 2001 remul %d4,%d1,%d2 <== NOT EXECUTED 48860: 2600 movel %d0,%d3 <== NOT EXECUTED 48862: 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)); 48864: 2203 movel %d3,%d1 <== NOT EXECUTED 48866: 4c46 1000 remul %d6,%d0,%d1 <== NOT EXECUTED 4886a: 2403 movel %d3,%d2 <== NOT EXECUTED 4886c: 220a movel %a2,%d1 <== NOT EXECUTED 4886e: 9480 subl %d0,%d2 <== NOT EXECUTED 48870: 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) { 48872: b282 cmpl %d2,%d1 <== NOT EXECUTED 48874: 6200 00a6 bhiw 4891c <_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) { 48878: 226b 0014 moveal %a3@(20),%a1 <== NOT EXECUTED 4887c: 2002 movel %d2,%d0 <== NOT EXECUTED 4887e: 9081 subl %d1,%d0 <== NOT EXECUTED 48880: b3c0 cmpal %d0,%a1 <== NOT EXECUTED 48882: 632c blss 488b0 <_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) { 48884: 2003 movel %d3,%d0 <== NOT EXECUTED 48886: 9081 subl %d1,%d0 <== NOT EXECUTED 48888: bc80 cmpl %d0,%d6 <== NOT EXECUTED 4888a: 6304 blss 48890 <_Heap_Allocate_aligned+0x9c> <== NOT EXECUTED 4888c: 2401 movel %d1,%d2 <== NOT EXECUTED 4888e: 6020 bras 488b0 <_Heap_Allocate_aligned+0xbc> <== NOT EXECUTED uint32_t alignment ) { _H_uptr_t v = *value; uint32_t a = alignment; _H_uptr_t r = v % a; 48890: 2401 movel %d1,%d2 <== NOT EXECUTED 48892: 4c44 2000 remul %d4,%d0,%d2 <== NOT EXECUTED *value = r ? v - r + a : v; 48896: 4a80 tstl %d0 <== NOT EXECUTED 48898: 6604 bnes 4889e <_Heap_Allocate_aligned+0xaa> <== NOT EXECUTED 4889a: 2041 moveal %d1,%a0 <== NOT EXECUTED 4889c: 6006 bras 488a4 <_Heap_Allocate_aligned+0xb0> <== NOT EXECUTED 4889e: 2041 moveal %d1,%a0 <== NOT EXECUTED 488a0: d1c4 addal %d4,%a0 <== NOT EXECUTED 488a2: 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) { 488a4: 2008 movel %a0,%d0 <== NOT EXECUTED 488a6: 9081 subl %d1,%d0 <== NOT EXECUTED 488a8: bc80 cmpl %d0,%d6 <== NOT EXECUTED 488aa: 6370 blss 4891c <_Heap_Allocate_aligned+0x128> <== NOT EXECUTED 488ac: 2401 movel %d1,%d2 <== NOT EXECUTED 488ae: 2608 movel %a0,%d3 <== NOT EXECUTED aligned_user_addr = 0; } } } if(aligned_user_addr) { 488b0: 4a83 tstl %d3 <== NOT EXECUTED 488b2: 6768 beqs 4891c <_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; 488b4: 200c movel %a4,%d0 <== NOT EXECUTED 488b6: 5080 addql #8,%d0 <== NOT EXECUTED 488b8: 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; 488ba: 2205 movel %d5,%d1 <== NOT EXECUTED 488bc: 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) { 488be: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 488c0: 6212 bhis 488d4 <_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; 488c2: 7401 moveq #1,%d2 <== NOT EXECUTED 488c4: 8481 orl %d1,%d2 <== NOT EXECUTED 488c6: 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); 488ca: d5c1 addal %d1,%a2 <== NOT EXECUTED the_block = _Heap_Block_at(the_block, the_rest); the_block->prev_size = the_rest; 488cc: 2481 movel %d1,%a2@ <== NOT EXECUTED the_block->size = alloc_size; 488ce: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 488d2: 6016 bras 488ea <_Heap_Allocate_aligned+0xf6> <== NOT EXECUTED Heap_Block *the_block ) { Heap_Block *block = the_block; Heap_Block *next = block->next; 488d4: 226a 0008 moveal %a2@(8),%a1 <== NOT EXECUTED Heap_Block *prev = block->prev; 488d8: 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; 488dc: 2005 movel %d5,%d0 <== NOT EXECUTED prev->next = next; next->prev = prev; 488de: 2348 000c movel %a0,%a1@(12) <== NOT EXECUTED 488e2: 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; 488e6: 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; 488ea: 7201 moveq #1,%d1 <== NOT EXECUTED 488ec: 83b2 0804 orl %d1,%a2@(00000004,%d0:l) <== NOT EXECUTED /* Update statistics */ stats->free_size -= alloc_size; 488f0: 242b 0030 movel %a3@(48),%d2 <== NOT EXECUTED 488f4: 9480 subl %d0,%d2 <== NOT EXECUTED 488f6: 2742 0030 movel %d2,%a3@(48) <== NOT EXECUTED if(stats->min_free_size > stats->free_size) 488fa: b4ab 0034 cmpl %a3@(52),%d2 <== NOT EXECUTED 488fe: 6404 bccs 48904 <_Heap_Allocate_aligned+0x110> <== NOT EXECUTED stats->min_free_size = stats->free_size; 48900: 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; 48904: 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; 48908: 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; 4890c: 5280 addql #1,%d0 <== NOT EXECUTED stats->allocs += 1; 4890e: 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; 48912: d087 addl %d7,%d0 <== NOT EXECUTED 48914: 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; 48918: 2003 movel %d3,%d0 <== NOT EXECUTED 4891a: 600e bras 4892a <_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) 4891c: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 48920: 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; 48922: b7ca cmpal %a2,%a3 <== NOT EXECUTED 48924: 6600 ff1e bnew 48844 <_Heap_Allocate_aligned+0x50> <== NOT EXECUTED 48928: 4280 clrl %d0 <== NOT EXECUTED } } } } if(stats->max_search < search_count) 4892a: beab 0044 cmpl %a3@(68),%d7 <== NOT EXECUTED 4892e: 6304 blss 48934 <_Heap_Allocate_aligned+0x140> <== NOT EXECUTED stats->max_search = search_count; 48930: 2747 0044 movel %d7,%a3@(68) <== NOT EXECUTED return user_ptr; } 48934: 4cee 3cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4893a: 4e5e unlk %fp <== NOT EXECUTED 4893c: 4e75 rts <== NOT EXECUTED ... 00045f6e <_Heap_Block_allocate>: uint32_t _Heap_Block_allocate( Heap_Control* the_heap, Heap_Block* the_block, uint32_t alloc_size ) { 45f6e: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 45f72: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 45f76: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 45f7a: 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); 45f7e: 70fe moveq #-2,%d0 <== NOT EXECUTED 45f80: c0a9 0004 andl %a1@(4),%d0 <== NOT EXECUTED 45f84: 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; 45f88: 2200 movel %d0,%d1 <== NOT EXECUTED 45f8a: 2869 0008 moveal %a1@(8),%a4 <== NOT EXECUTED 45f8e: 2469 000c moveal %a1@(12),%a2 <== NOT EXECUTED 45f92: 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) { 45f94: b2ab 0014 cmpl %a3@(20),%d1 <== NOT EXECUTED 45f98: 652a bcss 45fc4 <_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 ); 45f9a: 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; 45f9e: 7001 moveq #1,%d0 <== NOT EXECUTED 45fa0: 8082 orl %d2,%d0 <== NOT EXECUTED 45fa2: 2340 0004 movel %d0,%a1@(4) <== NOT EXECUTED next_block->size = the_rest | HEAP_PREV_USED; 45fa6: 7001 moveq #1,%d0 <== NOT EXECUTED 45fa8: 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; 45faa: 214c 0008 movel %a4,%a0@(8) <== NOT EXECUTED _Heap_Block_at(next_block, the_rest)->prev_size = the_rest; 45fae: 2181 1800 movel %d1,%a0@(00000000,%d1:l) <== NOT EXECUTED block->prev = prev; 45fb2: 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; 45fb6: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED next->prev = prev->next = block; 45fba: 2548 0008 movel %a0,%a2@(8) <== NOT EXECUTED 45fbe: 2948 000c movel %a0,%a4@(12) <== NOT EXECUTED 45fc2: 6014 bras 45fd8 <_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; 45fc4: 7201 moveq #1,%d1 <== NOT EXECUTED 45fc6: 83b1 0804 orl %d1,%a1@(00000004,%d0:l) <== NOT EXECUTED stats->free_blocks -= 1; 45fca: 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; 45fcc: 294a 000c movel %a2,%a4@(12) <== NOT EXECUTED 45fd0: 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; 45fd4: 254c 0008 movel %a4,%a2@(8) <== NOT EXECUTED } /* Update statistics */ stats->free_size -= alloc_size; 45fd8: 222b 0030 movel %a3@(48),%d1 <== NOT EXECUTED 45fdc: 9282 subl %d2,%d1 <== NOT EXECUTED 45fde: 2741 0030 movel %d1,%a3@(48) <== NOT EXECUTED if(stats->min_free_size > stats->free_size) 45fe2: b2ab 0034 cmpl %a3@(52),%d1 <== NOT EXECUTED 45fe6: 6404 bccs 45fec <_Heap_Block_allocate+0x7e> <== NOT EXECUTED stats->min_free_size = stats->free_size; 45fe8: 2741 0034 movel %d1,%a3@(52) <== NOT EXECUTED stats->used_blocks += 1; 45fec: 52ab 0040 addql #1,%a3@(64) <== NOT EXECUTED return alloc_size; } 45ff0: 2002 movel %d2,%d0 <== NOT EXECUTED 45ff2: 4cd7 1c04 moveml %sp@,%d2/%a2-%a4 <== NOT EXECUTED 45ff6: 4e5e unlk %fp <== NOT EXECUTED 45ff8: 4e75 rts <== NOT EXECUTED ... 00045f30 <_Heap_Calc_block_size>: */ size_t _Heap_Calc_block_size( size_t size, uint32_t page_size, uint32_t min_size) { 45f30: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45f34: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45f36: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 45f3a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45f3c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED uint32_t block_size = size + HEAP_BLOCK_USED_OVERHEAD; 45f40: 2009 movel %a1,%d0 <== NOT EXECUTED 45f42: 5880 addql #4,%d0 <== NOT EXECUTED */ size_t _Heap_Calc_block_size( size_t size, uint32_t page_size, uint32_t min_size) { 45f44: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED uint32_t alignment ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; 45f48: 2600 movel %d0,%d3 <== NOT EXECUTED 45f4a: 4c42 3001 remul %d2,%d1,%d3 <== NOT EXECUTED *value = r ? v - r + a : v; 45f4e: 4a81 tstl %d1 <== NOT EXECUTED 45f50: 6704 beqs 45f56 <_Heap_Calc_block_size+0x26> <== NOT EXECUTED 45f52: d082 addl %d2,%d0 <== NOT EXECUTED 45f54: 9081 subl %d1,%d0 <== NOT EXECUTED 45f56: 2200 movel %d0,%d1 <== NOT EXECUTED 45f58: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 45f5a: 6302 blss 45f5e <_Heap_Calc_block_size+0x2e> <== NOT EXECUTED 45f5c: 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; } 45f5e: 241f movel %sp@+,%d2 <== NOT EXECUTED 45f60: 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; 45f62: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 45f64: 55c0 scs %d0 <== NOT EXECUTED 45f66: 49c0 extbl %d0 <== NOT EXECUTED } 45f68: 4e5e unlk %fp <== NOT EXECUTED 45f6a: c081 andl %d1,%d0 <== NOT EXECUTED 45f6c: 4e75 rts 0004d388 <_Heap_Extend>: Heap_Control *the_heap, void *starting_address, size_t size, uint32_t *amount_extended ) { 4d388: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4d38c: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4d390: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 4d394: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4d398: 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 */ 4d39c: b0a9 0018 cmpl %a1@(24),%d0 <== NOT EXECUTED 4d3a0: 650a bcss 4d3ac <_Heap_Extend+0x24> <== NOT EXECUTED 4d3a2: b0a9 001c cmpl %a1@(28),%d0 <== NOT EXECUTED 4d3a6: 6404 bccs 4d3ac <_Heap_Extend+0x24> <== NOT EXECUTED 4d3a8: 7001 moveq #1,%d0 <== NOT EXECUTED 4d3aa: 6066 bras 4d412 <_Heap_Extend+0x8a> <== NOT EXECUTED starting_address < the_heap->end ) return HEAP_EXTEND_ERROR; if ( starting_address != the_heap->end ) 4d3ac: b0a9 001c cmpl %a1@(28),%d0 <== NOT EXECUTED 4d3b0: 6704 beqs 4d3b6 <_Heap_Extend+0x2e> <== NOT EXECUTED 4d3b2: 7002 moveq #2,%d0 <== NOT EXECUTED 4d3b4: 605c bras 4d412 <_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; 4d3b6: 2469 0024 moveal %a1@(36),%a2 <== NOT EXECUTED 4d3ba: d082 addl %d2,%d0 <== NOT EXECUTED the_heap->end = _Addresses_Add_offset( the_heap->end, size ); 4d3bc: 2340 001c movel %d0,%a1@(28) <== NOT EXECUTED the_size = _Addresses_Subtract( the_heap->end, old_final ) - HEAP_OVERHEAD; 4d3c0: 908a subl %a2,%d0 <== NOT EXECUTED 4d3c2: 5180 subql #8,%d0 <== NOT EXECUTED uint32_t *value, uint32_t alignment ) { uint32_t v = *value; *value = v - (v % alignment); 4d3c4: 2600 movel %d0,%d3 <== NOT EXECUTED _Heap_Align_down( &the_size, the_heap->page_size ); *amount_extended = size; 4d3c6: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 4d3ca: 4c69 3001 0010 remul %a1@(16),%d1,%d3 <== NOT EXECUTED 4d3d0: 9081 subl %d1,%d0 <== NOT EXECUTED 4d3d2: 2200 movel %d0,%d1 <== NOT EXECUTED 4d3d4: 2082 movel %d2,%a0@ <== NOT EXECUTED if( the_size < the_heap->min_block_size ) 4d3d6: b0a9 0014 cmpl %a1@(20),%d0 <== NOT EXECUTED 4d3da: 6534 bcss 4d410 <_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 ); 4d3dc: 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); 4d3e0: 7001 moveq #1,%d0 <== NOT EXECUTED 4d3e2: c0aa 0004 andl %a2@(4),%d0 <== NOT EXECUTED 4d3e6: 8280 orl %d0,%d1 <== NOT EXECUTED 4d3e8: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED new_final = _Heap_Block_at( old_final, the_size ); new_final->size = HEAP_PREV_USED; 4d3ec: 7001 moveq #1,%d0 <== NOT EXECUTED 4d3ee: 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 ) ); 4d3f2: 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; 4d3f6: d5a9 002c addl %d2,%a1@(44) <== NOT EXECUTED stats->used_blocks += 1; 4d3fa: 52a9 0040 addql #1,%a1@(64) <== NOT EXECUTED stats->frees -= 1; /* Don't count subsequent call as actual free() */ 4d3fe: 53a9 0050 subql #1,%a1@(80) <== NOT EXECUTED _Heap_Free( the_heap, _Heap_User_area( old_final ) ); 4d402: 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; 4d404: 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 ) ); 4d408: 4eb9 0004 89c0 jsr 489c0 <_Heap_Free> <== NOT EXECUTED 4d40e: 508f addql #8,%sp <== NOT EXECUTED 4d410: 4280 clrl %d0 <== NOT EXECUTED return HEAP_EXTEND_SUCCESSFUL; } 4d412: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4d418: 4e5e unlk %fp <== NOT EXECUTED 4d41a: 4e75 rts 0004a430 <_Heap_Free>: bool _Heap_Free( Heap_Control *the_heap, void *starting_address ) { 4a430: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4a434: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 4a438: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 4a43c: 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( 4a440: 206c 0024 moveal %a4@(36),%a0 <== NOT EXECUTED 4a444: 226c 0020 moveal %a4@(32),%a1 <== NOT EXECUTED void *address, void *base, void *limit ) { return (address >= base && address <= limit); 4a448: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 4a44a: 6200 015e bhiw 4a5aa <_Heap_Free+0x17a> <== NOT EXECUTED 4a44e: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 4a450: 54c0 scc %d0 <== NOT EXECUTED 4a452: 49c0 extbl %d0 <== NOT EXECUTED 4a454: 4480 negl %d0 <== NOT EXECUTED 4a456: 4a00 tstb %d0 <== NOT EXECUTED 4a458: 6700 0150 beqw 4a5aa <_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); 4a45c: 2401 movel %d1,%d2 <== NOT EXECUTED 4a45e: 2441 moveal %d1,%a2 <== NOT EXECUTED 4a460: 4c6c 2000 0010 remul %a4@(16),%d0,%d2 <== NOT EXECUTED 4a466: 518a subql #8,%a2 <== NOT EXECUTED 4a468: 95c0 subal %d0,%a2 <== NOT EXECUTED 4a46a: b3ca cmpal %a2,%a1 <== NOT EXECUTED 4a46c: 6200 013c bhiw 4a5aa <_Heap_Free+0x17a> <== NOT EXECUTED 4a470: b1ca cmpal %a2,%a0 <== NOT EXECUTED 4a472: 54c0 scc %d0 <== NOT EXECUTED 4a474: 49c0 extbl %d0 <== NOT EXECUTED 4a476: 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 ) ) { 4a478: 4a00 tstb %d0 <== NOT EXECUTED 4a47a: 6700 012e beqw 4a5aa <_Heap_Free+0x17a> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 4a47e: 242a 0004 movel %a2@(4),%d2 <== NOT EXECUTED 4a482: 78fe moveq #-2,%d4 <== NOT EXECUTED 4a484: 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 ); 4a486: 47f2 4800 lea %a2@(00000000,%d4:l),%a3 <== NOT EXECUTED 4a48a: b3cb cmpal %a3,%a1 <== NOT EXECUTED 4a48c: 6200 011c bhiw 4a5aa <_Heap_Free+0x17a> <== NOT EXECUTED 4a490: b1cb cmpal %a3,%a0 <== NOT EXECUTED 4a492: 54c0 scc %d0 <== NOT EXECUTED 4a494: 49c0 extbl %d0 <== NOT EXECUTED 4a496: 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 ) ) { 4a498: 4a00 tstb %d0 <== NOT EXECUTED 4a49a: 6700 010e beqw 4a5aa <_Heap_Free+0x17a> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used ( Heap_Block *the_block ) { return (the_block->size & HEAP_PREV_USED); 4a49e: 222b 0004 movel %a3@(4),%d1 <== NOT EXECUTED _HAssert( FALSE ); return( FALSE ); } if ( !_Heap_Is_prev_used( next_block ) ) { 4a4a2: 7001 moveq #1,%d0 <== NOT EXECUTED 4a4a4: c081 andl %d1,%d0 <== NOT EXECUTED 4a4a6: 4a00 tstb %d0 <== NOT EXECUTED 4a4a8: 6700 0100 beqw 4a5aa <_Heap_Free+0x17a> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 4a4ac: 7afe moveq #-2,%d5 <== NOT EXECUTED 4a4ae: 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 && 4a4b0: b1cb cmpal %a3,%a0 <== NOT EXECUTED 4a4b2: 6204 bhis 4a4b8 <_Heap_Free+0x88> <== NOT EXECUTED 4a4b4: 4283 clrl %d3 <== NOT EXECUTED 4a4b6: 600e bras 4a4c6 <_Heap_Free+0x96> <== NOT EXECUTED 4a4b8: 7001 moveq #1,%d0 <== NOT EXECUTED 4a4ba: c0b3 5804 andl %a3@(00000004,%d5:l),%d0 <== NOT EXECUTED 4a4be: 7201 moveq #1,%d1 <== NOT EXECUTED 4a4c0: b380 eorl %d1,%d0 <== NOT EXECUTED 4a4c2: 4283 clrl %d3 <== NOT EXECUTED 4a4c4: 1600 moveb %d0,%d3 <== NOT EXECUTED !_Heap_Is_prev_used(_Heap_Block_at(next_block, next_size)); if ( !_Heap_Is_prev_used( the_block ) ) { 4a4c6: 7001 moveq #1,%d0 <== NOT EXECUTED 4a4c8: c480 andl %d0,%d2 <== NOT EXECUTED 4a4ca: 4a02 tstb %d2 <== NOT EXECUTED 4a4cc: 6666 bnes 4a534 <_Heap_Free+0x104> <== NOT EXECUTED uint32_t const prev_size = the_block->prev_size; 4a4ce: 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 ); 4a4d0: 95c1 subal %d1,%a2 <== NOT EXECUTED 4a4d2: b3ca cmpal %a2,%a1 <== NOT EXECUTED 4a4d4: 6200 00d4 bhiw 4a5aa <_Heap_Free+0x17a> <== NOT EXECUTED 4a4d8: b1ca cmpal %a2,%a0 <== NOT EXECUTED 4a4da: 54c0 scc %d0 <== NOT EXECUTED 4a4dc: 49c0 extbl %d0 <== NOT EXECUTED 4a4de: 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 ) ) { 4a4e0: 4a00 tstb %d0 <== NOT EXECUTED 4a4e2: 6700 00c6 beqw 4a5aa <_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) ) { 4a4e6: 7001 moveq #1,%d0 <== NOT EXECUTED 4a4e8: c0aa 0004 andl %a2@(4),%d0 <== NOT EXECUTED 4a4ec: 4a00 tstb %d0 <== NOT EXECUTED 4a4ee: 6700 00ba beqw 4a5aa <_Heap_Free+0x17a> <== NOT EXECUTED _HAssert( FALSE ); return( FALSE ); } if ( next_is_free ) { /* coalesce both */ 4a4f2: 4a03 tstb %d3 <== NOT EXECUTED 4a4f4: 6728 beqs 4a51e <_Heap_Free+0xee> <== NOT EXECUTED uint32_t const size = the_size + prev_size + next_size; _Heap_Block_remove( next_block ); stats->free_blocks -= 1; 4a4f6: 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; 4a4fa: 2004 movel %d4,%d0 <== NOT EXECUTED 4a4fc: d085 addl %d5,%d0 <== NOT EXECUTED 4a4fe: d081 addl %d1,%d0 <== NOT EXECUTED ) { Heap_Block *block = the_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; 4a500: 226b 000c moveal %a3@(12),%a1 <== NOT EXECUTED Heap_Block *the_block ) { Heap_Block *block = the_block; Heap_Block *next = block->next; 4a504: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED _Heap_Block_remove( next_block ); stats->free_blocks -= 1; prev_block->size = size | HEAP_PREV_USED; 4a508: 7201 moveq #1,%d1 <== NOT EXECUTED 4a50a: 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; 4a50c: 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; 4a510: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED Heap_Block *prev = block->prev; prev->next = next; next->prev = prev; 4a514: 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; 4a518: 2348 0008 movel %a0,%a1@(8) <== NOT EXECUTED 4a51c: 607c bras 4a59a <_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; 4a51e: 2004 movel %d4,%d0 <== NOT EXECUTED 4a520: d081 addl %d1,%d0 <== NOT EXECUTED prev_block->size = size | HEAP_PREV_USED; 4a522: 7201 moveq #1,%d1 <== NOT EXECUTED 4a524: 8280 orl %d0,%d1 <== NOT EXECUTED next_block->size &= ~HEAP_PREV_USED; next_block->prev_size = size; 4a526: 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; 4a528: 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; 4a52a: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED next_block->size &= ~HEAP_PREV_USED; 4a52e: c1ab 0004 andl %d0,%a3@(4) <== NOT EXECUTED 4a532: 6066 bras 4a59a <_Heap_Free+0x16a> <== NOT EXECUTED next_block->prev_size = size; } } else if ( next_is_free ) { /* coalesce next */ 4a534: 4a03 tstb %d3 <== NOT EXECUTED 4a536: 672a beqs 4a562 <_Heap_Free+0x132> <== NOT EXECUTED Heap_Block *new_block ) { Heap_Block *block = old_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; 4a538: 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; 4a53c: 226b 0008 moveal %a3@(8),%a1 <== NOT EXECUTED uint32_t const size = the_size + next_size; 4a540: 2005 movel %d5,%d0 <== NOT EXECUTED Heap_Block *prev = block->prev; block = new_block; block->next = next; 4a542: 2549 0008 movel %a1,%a2@(8) <== NOT EXECUTED 4a546: d084 addl %d4,%d0 <== NOT EXECUTED _Heap_Block_replace( next_block, the_block ); the_block->size = size | HEAP_PREV_USED; 4a548: 7201 moveq #1,%d1 <== NOT EXECUTED block->prev = prev; 4a54a: 2548 000c movel %a0,%a2@(12) <== NOT EXECUTED 4a54e: 8280 orl %d0,%d1 <== NOT EXECUTED next_block = _Heap_Block_at( the_block, size ); next_block->prev_size = size; 4a550: 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; 4a554: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED next->prev = prev->next = block; 4a558: 214a 0008 movel %a2,%a0@(8) <== NOT EXECUTED 4a55c: 234a 000c movel %a2,%a1@(12) <== NOT EXECUTED 4a560: 6038 bras 4a59a <_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; 4a562: 7001 moveq #1,%d0 <== NOT EXECUTED 4a564: 8084 orl %d4,%d0 <== NOT EXECUTED ) { Heap_Block *prev = prev_block; Heap_Block *block = the_block; Heap_Block *next = prev->next; 4a566: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 4a56a: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED next_block->size &= ~HEAP_PREV_USED; 4a56e: 72fe moveq #-2,%d1 <== NOT EXECUTED 4a570: c3ab 0004 andl %d1,%a3@(4) <== NOT EXECUTED next_block->prev_size = the_size; 4a574: 2684 movel %d4,%a3@ <== NOT EXECUTED stats->free_blocks += 1; 4a576: 202c 0038 movel %a4@(56),%d0 <== NOT EXECUTED block->next = next; 4a57a: 2548 0008 movel %a0,%a2@(8) <== NOT EXECUTED 4a57e: 5280 addql #1,%d0 <== NOT EXECUTED block->prev = prev; 4a580: 254c 000c movel %a4,%a2@(12) <== NOT EXECUTED next->prev = prev->next = block; 4a584: 294a 0008 movel %a2,%a4@(8) <== NOT EXECUTED 4a588: 214a 000c movel %a2,%a0@(12) <== NOT EXECUTED 4a58c: 2940 0038 movel %d0,%a4@(56) <== NOT EXECUTED if ( stats->max_free_blocks < stats->free_blocks ) 4a590: b0ac 003c cmpl %a4@(60),%d0 <== NOT EXECUTED 4a594: 6304 blss 4a59a <_Heap_Free+0x16a> <== NOT EXECUTED stats->max_free_blocks = stats->free_blocks; 4a596: 2940 003c movel %d0,%a4@(60) <== NOT EXECUTED } stats->used_blocks -= 1; stats->free_size += the_size; 4a59a: d9ac 0030 addl %d4,%a4@(48) <== NOT EXECUTED stats->frees += 1; 4a59e: 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; 4a5a2: 53ac 0040 subql #1,%a4@(64) <== NOT EXECUTED stats->free_size += the_size; stats->frees += 1; 4a5a6: 7001 moveq #1,%d0 <== NOT EXECUTED 4a5a8: 6002 bras 4a5ac <_Heap_Free+0x17c> <== NOT EXECUTED return( TRUE ); 4a5aa: 4200 clrb %d0 <== NOT EXECUTED } 4a5ac: 4cd7 1c3c moveml %sp@,%d2-%d5/%a2-%a4 <== NOT EXECUTED 4a5b0: 4e5e unlk %fp <== NOT EXECUTED 4a5b2: 4e75 rts 0005e58c <_Heap_Get_free_information>: void _Heap_Get_free_information( Heap_Control *the_heap, Heap_Information *info ) { 5e58c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5e590: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5e592: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 5e596: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Heap_Block *the_block; Heap_Block *const tail = _Heap_Tail(the_heap); info->number = 0; 5e59a: 4290 clrl %a0@ <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 5e59c: 226a 0008 moveal %a2@(8),%a1 <== NOT EXECUTED info->largest = 0; 5e5a0: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED info->total = 0; 5e5a4: 42a8 0008 clrl %a0@(8) <== NOT EXECUTED 5e5a8: 601a bras 5e5c4 <_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); 5e5aa: 70fe moveq #-2,%d0 <== NOT EXECUTED 5e5ac: 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++; 5e5b0: 5290 addql #1,%a0@ <== NOT EXECUTED info->total += the_size; 5e5b2: d1a8 0008 addl %d0,%a0@(8) <== NOT EXECUTED if ( info->largest < the_size ) 5e5b6: b0a8 0004 cmpl %a0@(4),%d0 <== NOT EXECUTED 5e5ba: 6304 blss 5e5c0 <_Heap_Get_free_information+0x34> <== NOT EXECUTED info->largest = the_size; 5e5bc: 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) 5e5c0: 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; 5e5c4: b5c9 cmpal %a1,%a2 <== NOT EXECUTED 5e5c6: 66e2 bnes 5e5aa <_Heap_Get_free_information+0x1e> <== NOT EXECUTED info->number++; info->total += the_size; if ( info->largest < the_size ) info->largest = the_size; } } 5e5c8: 245f moveal %sp@+,%a2 <== NOT EXECUTED 5e5ca: 4e5e unlk %fp <== NOT EXECUTED 5e5cc: 4e75 rts <== NOT EXECUTED ... 0006738c <_Heap_Get_information>: Heap_Get_information_status _Heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) { 6738c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 67390: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 67394: 2f02 movel %d2,%sp@- <== NOT EXECUTED 67396: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED Heap_Block *the_block = the_heap->start; Heap_Block *const end = the_heap->final; 6739a: 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; 6739e: 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; 673a0: 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; 673a4: 42a9 0008 clrl %a1@(8) <== NOT EXECUTED the_info->Free.largest = 0; 673a8: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED the_info->Used.number = 0; 673ac: 42a9 000c clrl %a1@(12) <== NOT EXECUTED the_info->Used.total = 0; 673b0: 42a9 0014 clrl %a1@(20) <== NOT EXECUTED the_info->Used.largest = 0; 673b4: 42a9 0010 clrl %a1@(16) <== NOT EXECUTED 673b8: 603c bras 673f6 <_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); 673ba: 72fe moveq #-2,%d1 <== NOT EXECUTED 673bc: 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 ); 673c0: 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) ) { 673c2: 7001 moveq #1,%d0 <== NOT EXECUTED 673c4: c0a8 0004 andl %a0@(4),%d0 <== NOT EXECUTED 673c8: 6714 beqs 673de <_Heap_Get_information+0x52> <== NOT EXECUTED the_info->Used.number++; 673ca: 52a9 000c addql #1,%a1@(12) <== NOT EXECUTED the_info->Used.total += the_size; 673ce: d3a9 0014 addl %d1,%a1@(20) <== NOT EXECUTED if ( the_info->Used.largest < the_size ) 673d2: b2a9 0010 cmpl %a1@(16),%d1 <== NOT EXECUTED 673d6: 631e blss 673f6 <_Heap_Get_information+0x6a> <== NOT EXECUTED the_info->Used.largest = the_size; 673d8: 2341 0010 movel %d1,%a1@(16) <== NOT EXECUTED 673dc: 6018 bras 673f6 <_Heap_Get_information+0x6a> <== NOT EXECUTED } else { the_info->Free.number++; 673de: 5291 addql #1,%a1@ <== NOT EXECUTED the_info->Free.total += the_size; 673e0: d3a9 0008 addl %d1,%a1@(8) <== NOT EXECUTED if ( the_info->Free.largest < the_size ) 673e4: b2a9 0004 cmpl %a1@(4),%d1 <== NOT EXECUTED 673e8: 6304 blss 673ee <_Heap_Get_information+0x62> <== NOT EXECUTED the_info->Free.largest = the_size; 673ea: 2341 0004 movel %d1,%a1@(4) <== NOT EXECUTED if ( the_size != next_block->prev_size ) 673ee: b290 cmpl %a0@,%d1 <== NOT EXECUTED 673f0: 6704 beqs 673f6 <_Heap_Get_information+0x6a> <== NOT EXECUTED 673f2: 7001 moveq #1,%d0 <== NOT EXECUTED 673f4: 600a bras 67400 <_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 ) { 673f6: b488 cmpl %a0,%d2 <== NOT EXECUTED 673f8: 66c0 bnes 673ba <_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; 673fa: 4280 clrl %d0 <== NOT EXECUTED 673fc: 50a9 0014 addql #8,%a1@(20) <== NOT EXECUTED return HEAP_GET_INFORMATION_SUCCESSFUL; } 67400: 241f movel %sp@+,%d2 <== NOT EXECUTED 67402: 4e5e unlk %fp <== NOT EXECUTED 67404: 4e75 rts <== NOT EXECUTED ... 00045e28 <_Heap_Initialize>: Heap_Control *the_heap, void *starting_address, size_t size, uint32_t page_size ) { 45e28: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 45e2c: 48d7 043c moveml %d2-%d5/%a2,%sp@ <== NOT EXECUTED 45e30: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 45e34: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 45e38: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 45e3c: 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) 45e40: 6606 bnes 45e48 <_Heap_Initialize+0x20> <== NOT EXECUTED 45e42: 143c 0004 moveb #4,%d2 <== NOT EXECUTED 45e46: 600a bras 45e52 <_Heap_Initialize+0x2a> <== NOT EXECUTED uint32_t alignment ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; 45e48: 7003 moveq #3,%d0 <== NOT EXECUTED 45e4a: c082 andl %d2,%d0 <== NOT EXECUTED *value = r ? v - r + a : v; 45e4c: 6704 beqs 45e52 <_Heap_Initialize+0x2a> <== NOT EXECUTED 45e4e: 5882 addql #4,%d2 <== NOT EXECUTED 45e50: 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; 45e52: 2004 movel %d4,%d0 <== NOT EXECUTED 45e54: 5080 addql #8,%d0 <== NOT EXECUTED uint32_t alignment ) { _H_uptr_t v = *value; uint32_t a = alignment; _H_uptr_t r = v % a; 45e56: 2a00 movel %d0,%d5 <== NOT EXECUTED 45e58: 4c42 5001 remul %d2,%d1,%d5 <== NOT EXECUTED *value = r ? v - r + a : v; 45e5c: 4a81 tstl %d1 <== NOT EXECUTED 45e5e: 6704 beqs 45e64 <_Heap_Initialize+0x3c> <== NOT EXECUTED 45e60: d082 addl %d2,%d0 <== NOT EXECUTED 45e62: 9081 subl %d1,%d0 <== NOT EXECUTED _Heap_Align_up_uptr ( &aligned_start, page_size ); aligned_start -= HEAP_BLOCK_USER_OFFSET; 45e64: 2440 moveal %d0,%a2 <== NOT EXECUTED uint32_t alignment ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; 45e66: 7210 moveq #16,%d1 <== NOT EXECUTED 45e68: 518a subql #8,%a2 <== NOT EXECUTED 45e6a: 4c42 1000 remul %d2,%d0,%d1 <== NOT EXECUTED *value = r ? v - r + a : v; 45e6e: 4a80 tstl %d0 <== NOT EXECUTED 45e70: 6604 bnes 45e76 <_Heap_Initialize+0x4e> <== NOT EXECUTED 45e72: 7210 moveq #16,%d1 <== NOT EXECUTED 45e74: 600a bras 45e80 <_Heap_Initialize+0x58> <== NOT EXECUTED 45e76: 2202 movel %d2,%d1 <== NOT EXECUTED 45e78: 0681 0000 0010 addil #16,%d1 <== NOT EXECUTED 45e7e: 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); 45e80: 7008 moveq #8,%d0 <== NOT EXECUTED 45e82: 9084 subl %d4,%d0 <== NOT EXECUTED 45e84: d08a addl %a2,%d0 <== NOT EXECUTED 45e86: 2341 0014 movel %d1,%a1@(20) <== NOT EXECUTED if ( size < overhead ) 45e8a: b083 cmpl %d3,%d0 <== NOT EXECUTED 45e8c: 6200 0096 bhiw 45f24 <_Heap_Initialize+0xfc> <== NOT EXECUTED return 0; /* Too small area for the heap */ the_size = size - overhead; 45e90: 2203 movel %d3,%d1 <== NOT EXECUTED 45e92: 9280 subl %d0,%d1 <== NOT EXECUTED 45e94: 2001 movel %d1,%d0 <== NOT EXECUTED uint32_t *value, uint32_t alignment ) { uint32_t v = *value; *value = v - (v % alignment); 45e96: 2a01 movel %d1,%d5 <== NOT EXECUTED 45e98: 4c42 5001 remul %d2,%d1,%d5 <== NOT EXECUTED 45e9c: 9081 subl %d1,%d0 <== NOT EXECUTED 45e9e: 2200 movel %d0,%d1 <== NOT EXECUTED _Heap_Align_down ( &the_size, page_size ); if ( the_size == 0 ) 45ea0: 6700 0082 beqw 45f24 <_Heap_Initialize+0xfc> <== NOT EXECUTED return 0; /* Too small area for the heap */ the_heap->page_size = page_size; 45ea4: 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); 45ea8: 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; 45eac: 7001 moveq #1,%d0 <== NOT EXECUTED 45eae: 8081 orl %d1,%d0 <== NOT EXECUTED 45eb0: 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++; 45eb4: 2039 0005 7628 movel 57628 ,%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; 45eba: 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; 45ebc: 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; 45ec0: 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 */ 45ec2: 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 ); 45ec4: 2549 0008 movel %a1,%a2@(8) <== NOT EXECUTED the_block->prev = _Heap_Head( the_heap ); 45ec8: 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; 45ecc: 2342 0038 movel %d2,%a1@(56) <== NOT EXECUTED stats->max_free_blocks = 1; 45ed0: 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 ); 45ed4: 2401 movel %d1,%d2 <== NOT EXECUTED 45ed6: 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; 45ed8: 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; 45edc: 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++; 45ede: 2340 0028 movel %d0,%a1@(40) <== NOT EXECUTED 45ee2: 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; 45ee4: 2341 0030 movel %d1,%a1@(48) <== NOT EXECUTED stats->min_free_size = the_size; 45ee8: 2341 0034 movel %d1,%a1@(52) <== NOT EXECUTED stats->free_blocks = 1; stats->max_free_blocks = 1; stats->used_blocks = 0; 45eec: 42a9 0040 clrl %a1@(64) <== NOT EXECUTED stats->max_search = 0; 45ef0: 42a9 0044 clrl %a1@(68) <== NOT EXECUTED stats->allocs = 0; 45ef4: 42a9 0048 clrl %a1@(72) <== NOT EXECUTED stats->searches = 0; 45ef8: 42a9 004c clrl %a1@(76) <== NOT EXECUTED stats->frees = 0; 45efc: 42a9 0050 clrl %a1@(80) <== NOT EXECUTED stats->resizes = 0; 45f00: 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; 45f04: 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++; 45f08: 23c0 0005 7628 movel %d0,57628 <== 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; 45f0e: 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; 45f12: 234a 0008 movel %a2,%a1@(8) <== NOT EXECUTED _Heap_Tail(the_heap)->prev = the_block; 45f16: 234a 000c movel %a2,%a1@(12) <== NOT EXECUTED the_heap->start = the_block; 45f1a: 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 */ 45f1e: 2348 0024 movel %a0,%a1@(36) <== NOT EXECUTED 45f22: 6002 bras 45f26 <_Heap_Initialize+0xfe> <== NOT EXECUTED stats->searches = 0; stats->frees = 0; stats->resizes = 0; stats->instance = instance++; return ( the_size - HEAP_BLOCK_USED_OVERHEAD ); 45f24: 4282 clrl %d2 <== NOT EXECUTED } 45f26: 2002 movel %d2,%d0 <== NOT EXECUTED 45f28: 4cd7 043c moveml %sp@,%d2-%d5/%a2 <== NOT EXECUTED 45f2c: 4e5e unlk %fp <== NOT EXECUTED 45f2e: 4e75 rts 00054648 <_Heap_Resize_block>: void *starting_address, size_t size, uint32_t *old_mem_size, uint32_t *avail_mem_size ) { 54648: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 5464c: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 54650: 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; 54654: 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; 54658: 2a2b 0014 movel %a3@(20),%d5 <== NOT EXECUTED uint32_t const page_size = the_heap->page_size; 5465c: 242b 0010 movel %a3@(16),%d2 <== NOT EXECUTED *old_mem_size = 0; *avail_mem_size = 0; 54660: 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; 54664: 4290 clrl %a0@ <== NOT EXECUTED void *starting_address, size_t size, uint32_t *old_mem_size, uint32_t *avail_mem_size ) { 54666: 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; 5466a: 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); 5466c: 2444 moveal %d4,%a2 <== NOT EXECUTED 5466e: 2604 movel %d4,%d3 <== NOT EXECUTED void *starting_address, size_t size, uint32_t *old_mem_size, uint32_t *avail_mem_size ) { 54670: 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 ); 54674: 206b 0024 moveal %a3@(36),%a0 <== NOT EXECUTED 54678: 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); 5467c: 518a subql #8,%a2 <== NOT EXECUTED 5467e: 4c6b 3000 0010 remul %a3@(16),%d0,%d3 <== NOT EXECUTED 54684: 95c0 subal %d0,%a2 <== NOT EXECUTED 54686: b28a cmpl %a2,%d1 <== NOT EXECUTED 54688: 6200 0156 bhiw 547e0 <_Heap_Resize_block+0x198> <== NOT EXECUTED 5468c: b1ca cmpal %a2,%a0 <== NOT EXECUTED 5468e: 54c0 scc %d0 <== NOT EXECUTED 54690: 49c0 extbl %d0 <== NOT EXECUTED 54692: 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)) 54694: 4a00 tstb %d0 <== NOT EXECUTED 54696: 6700 0148 beqw 547e0 <_Heap_Resize_block+0x198> <== NOT EXECUTED return HEAP_RESIZE_FATAL_ERROR; prev_used_flag = the_block->size & HEAP_PREV_USED; 5469a: 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); 5469e: 7cfe moveq #-2,%d6 <== NOT EXECUTED 546a0: 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 ); 546a2: 43f2 6800 lea %a2@(00000000,%d6:l),%a1 <== NOT EXECUTED 546a6: b289 cmpl %a1,%d1 <== NOT EXECUTED 546a8: 6200 0136 bhiw 547e0 <_Heap_Resize_block+0x198> <== NOT EXECUTED 546ac: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 546ae: 54c0 scc %d0 <== NOT EXECUTED 546b0: 49c0 extbl %d0 <== NOT EXECUTED 546b2: 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) || 546b4: 4a00 tstb %d0 <== NOT EXECUTED 546b6: 6700 0128 beqw 547e0 <_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); 546ba: 2229 0004 movel %a1@(4),%d1 <== NOT EXECUTED 546be: 7001 moveq #1,%d0 <== NOT EXECUTED 546c0: c081 andl %d1,%d0 <== NOT EXECUTED 546c2: 4a00 tstb %d0 <== NOT EXECUTED 546c4: 6700 011a beqw 547e0 <_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); 546c8: 76fe moveq #-2,%d3 <== NOT EXECUTED 546ca: 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 ); 546cc: 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) || 546d0: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 546d2: 6604 bnes 546d8 <_Heap_Resize_block+0x90> <== NOT EXECUTED 546d4: 7201 moveq #1,%d1 <== NOT EXECUTED 546d6: 6006 bras 546de <_Heap_Resize_block+0x96> <== NOT EXECUTED 546d8: 7201 moveq #1,%d1 <== NOT EXECUTED 546da: 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) 546de: 2049 moveal %a1,%a0 <== NOT EXECUTED 546e0: 91c4 subal %d4,%a0 <== NOT EXECUTED 546e2: 2008 movel %a0,%d0 <== NOT EXECUTED + HEAP_BLOCK_HEADER_OFFSET; *old_mem_size = old_user_size; 546e4: 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) 546e8: 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; 546ea: 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; 546ec: 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; 546ee: 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) || 546f0: 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) { 546f4: b08d cmpl %a5,%d0 <== NOT EXECUTED 546f6: 6446 bccs 5473e <_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 */ 546f8: 4a01 tstb %d1 <== NOT EXECUTED 546fa: 6600 00e8 bnew 547e4 <_Heap_Resize_block+0x19c> <== NOT EXECUTED return HEAP_RESIZE_UNSATISFIED; else { uint32_t add_block_size = size - old_user_size; 546fe: 9bc0 subal %d0,%a5 <== NOT EXECUTED uint32_t alignment ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; 54700: 2e0d movel %a5,%d7 <== NOT EXECUTED 54702: 200d movel %a5,%d0 <== NOT EXECUTED 54704: 4c42 7001 remul %d2,%d1,%d7 <== NOT EXECUTED *value = r ? v - r + a : v; 54708: 4a81 tstl %d1 <== NOT EXECUTED 5470a: 6704 beqs 54710 <_Heap_Resize_block+0xc8> <== NOT EXECUTED 5470c: d082 addl %d2,%d0 <== NOT EXECUTED 5470e: 9081 subl %d1,%d0 <== NOT EXECUTED 54710: ba80 cmpl %d0,%d5 <== NOT EXECUTED 54712: 6302 blss 54716 <_Heap_Resize_block+0xce> <== NOT EXECUTED 54714: 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) 54716: b680 cmpl %d0,%d3 <== NOT EXECUTED 54718: 6500 00ca bcsw 547e4 <_Heap_Resize_block+0x19c> <== NOT EXECUTED return HEAP_RESIZE_UNSATISFIED; /* Next block is too small or none. */ add_block_size = 5471c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5471e: 2f09 movel %a1,%sp@- <== NOT EXECUTED 54720: 2f0b movel %a3,%sp@- <== NOT EXECUTED 54722: 4eb9 0004 5f6e jsr 45f6e <_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; 54728: d086 addl %d6,%d0 <== NOT EXECUTED 5472a: 8084 orl %d4,%d0 <== NOT EXECUTED 5472c: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED --stats->used_blocks; 54730: 53ab 0040 subql #1,%a3@(64) <== NOT EXECUTED 54734: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5473a: 6000 009c braw 547d8 <_Heap_Resize_block+0x190> <== NOT EXECUTED } } else { /* Calculate how much memory we could free */ uint32_t free_block_size = old_user_size - size; 5473e: 908d subl %a5,%d0 <== NOT EXECUTED uint32_t *value, uint32_t alignment ) { uint32_t v = *value; *value = v - (v % alignment); 54740: 2200 movel %d0,%d1 <== NOT EXECUTED 54742: 4c42 1007 remul %d2,%d7,%d1 <== NOT EXECUTED 54746: 2400 movel %d0,%d2 <== NOT EXECUTED 54748: 9487 subl %d7,%d2 <== NOT EXECUTED _Heap_Align_down(&free_block_size, page_size); if (free_block_size > 0) { 5474a: 6700 008c beqw 547d8 <_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; 5474e: 2206 movel %d6,%d1 <== NOT EXECUTED 54750: 9282 subl %d2,%d1 <== NOT EXECUTED if (new_block_size < min_block_size) { 54752: ba81 cmpl %d1,%d5 <== NOT EXECUTED 54754: 630a blss 54760 <_Heap_Resize_block+0x118> <== NOT EXECUTED uint32_t delta = min_block_size - new_block_size; 54756: 2005 movel %d5,%d0 <== NOT EXECUTED 54758: 9081 subl %d1,%d0 <== NOT EXECUTED _HAssert(free_block_size >= delta); free_block_size -= delta; 5475a: 9480 subl %d0,%d2 <== NOT EXECUTED if (free_block_size == 0) { 5475c: 677a beqs 547d8 <_Heap_Resize_block+0x190> <== NOT EXECUTED ++stats->resizes; return HEAP_RESIZE_SUCCESSFUL; } new_block_size += delta; 5475e: 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) { 54760: 4a2e ffff tstb %fp@(-1) <== NOT EXECUTED 54764: 663e bnes 547a4 <_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 ); 54766: 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; 5476a: 8284 orl %d4,%d1 <== NOT EXECUTED 5476c: 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; 54770: 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; 54774: 2002 movel %d2,%d0 <== NOT EXECUTED 54776: 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; 54778: 7201 moveq #1,%d1 <== NOT EXECUTED 5477a: 8280 orl %d0,%d1 <== NOT EXECUTED next_next_block->prev_size = new_next_block_size; 5477c: 2880 movel %d0,%a4@ <== NOT EXECUTED Heap_Block *old_block, Heap_Block *new_block ) { Heap_Block *block = old_block; Heap_Block *next = block->next; 5477e: 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; 54782: 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; 54786: d5ab 0030 addl %d2,%a3@(48) <== NOT EXECUTED *avail_mem_size = new_next_block_size - HEAP_BLOCK_USED_OVERHEAD; 5478a: 286e 0018 moveal %fp@(24),%a4 <== NOT EXECUTED Heap_Block *prev = block->prev; block = new_block; block->next = next; 5478e: 2149 0008 movel %a1,%a0@(8) <== NOT EXECUTED 54792: 5980 subql #4,%d0 <== NOT EXECUTED block->prev = prev; 54794: 214a 000c movel %a2,%a0@(12) <== NOT EXECUTED 54798: 2880 movel %d0,%a4@ <== NOT EXECUTED next->prev = prev->next = block; 5479a: 2348 000c movel %a0,%a1@(12) <== NOT EXECUTED 5479e: 2548 0008 movel %a0,%a2@(8) <== NOT EXECUTED 547a2: 6034 bras 547d8 <_Heap_Resize_block+0x190> <== NOT EXECUTED } else if (free_block_size >= min_block_size) { 547a4: ba82 cmpl %d2,%d5 <== NOT EXECUTED 547a6: 6230 bhis 547d8 <_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 ); 547a8: 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; 547ac: 8284 orl %d4,%d1 <== NOT EXECUTED 547ae: 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; 547b2: 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)); 547b4: 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; 547b8: 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; 547ba: 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; 547bc: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED ++stats->used_blocks; /* We have created used block */ 547c0: 52ab 0040 addql #1,%a3@(64) <== NOT EXECUTED --stats->frees; /* Don't count next call in stats */ 547c4: 53ab 0050 subql #1,%a3@(80) <== NOT EXECUTED _Heap_Free(the_heap, _Heap_User_area(next_block)); 547c8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 547ca: 4eb9 0004 a430 jsr 4a430 <_Heap_Free> <== NOT EXECUTED *avail_mem_size = free_block_size - HEAP_BLOCK_USED_OVERHEAD; 547d0: 206e 0018 moveal %fp@(24),%a0 <== NOT EXECUTED 547d4: 508f addql #8,%sp <== NOT EXECUTED 547d6: 2082 movel %d2,%a0@ <== NOT EXECUTED } } } ++stats->resizes; 547d8: 52ab 0054 addql #1,%a3@(84) <== NOT EXECUTED 547dc: 4280 clrl %d0 <== NOT EXECUTED 547de: 6006 bras 547e6 <_Heap_Resize_block+0x19e> <== NOT EXECUTED return HEAP_RESIZE_SUCCESSFUL; 547e0: 7002 moveq #2,%d0 <== NOT EXECUTED 547e2: 6002 bras 547e6 <_Heap_Resize_block+0x19e> <== NOT EXECUTED 547e4: 7001 moveq #1,%d0 <== NOT EXECUTED } 547e6: 4cee 3cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a5 <== NOT EXECUTED 547ec: 4e5e unlk %fp <== NOT EXECUTED 547ee: 4e75 rts 000547f0 <_Heap_Size_of_user_area>: bool _Heap_Size_of_user_area( Heap_Control *the_heap, void *starting_address, size_t *size ) { 547f0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 547f4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 547f8: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 547fc: 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( 54800: 2428 0024 movel %a0@(36),%d2 <== NOT EXECUTED 54804: 2228 0020 movel %a0@(32),%d1 <== NOT EXECUTED 54808: b283 cmpl %d3,%d1 <== NOT EXECUTED 5480a: 625c bhis 54868 <_Heap_Size_of_user_area+0x78> <== NOT EXECUTED 5480c: b483 cmpl %d3,%d2 <== NOT EXECUTED 5480e: 54c0 scc %d0 <== NOT EXECUTED 54810: 49c0 extbl %d0 <== NOT EXECUTED 54812: 4480 negl %d0 <== NOT EXECUTED 54814: 4a00 tstb %d0 <== NOT EXECUTED 54816: 6750 beqs 54868 <_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); 54818: 2803 movel %d3,%d4 <== NOT EXECUTED 5481a: 4c68 4000 0010 remul %a0@(16),%d0,%d4 <== NOT EXECUTED 54820: 2043 moveal %d3,%a0 <== NOT EXECUTED 54822: 5188 subql #8,%a0 <== NOT EXECUTED 54824: 91c0 subal %d0,%a0 <== NOT EXECUTED 54826: b288 cmpl %a0,%d1 <== NOT EXECUTED 54828: 623e bhis 54868 <_Heap_Size_of_user_area+0x78> <== NOT EXECUTED 5482a: b488 cmpl %a0,%d2 <== NOT EXECUTED 5482c: 54c0 scc %d0 <== NOT EXECUTED 5482e: 49c0 extbl %d0 <== NOT EXECUTED 54830: 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 ) ) 54832: 4a00 tstb %d0 <== NOT EXECUTED 54834: 6732 beqs 54868 <_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 ); 54836: 70fe moveq #-2,%d0 <== NOT EXECUTED 54838: c0a8 0004 andl %a0@(4),%d0 <== NOT EXECUTED 5483c: 43f0 0800 lea %a0@(00000000,%d0:l),%a1 <== NOT EXECUTED 54840: b289 cmpl %a1,%d1 <== NOT EXECUTED 54842: 6224 bhis 54868 <_Heap_Size_of_user_area+0x78> <== NOT EXECUTED 54844: b489 cmpl %a1,%d2 <== NOT EXECUTED 54846: 54c0 scc %d0 <== NOT EXECUTED 54848: 49c0 extbl %d0 <== NOT EXECUTED 5484a: 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 ( 5484c: 4a00 tstb %d0 <== NOT EXECUTED 5484e: 6718 beqs 54868 <_Heap_Size_of_user_area+0x78> <== NOT EXECUTED 54850: 7001 moveq #1,%d0 <== NOT EXECUTED 54852: c0a9 0004 andl %a1@(4),%d0 <== NOT EXECUTED 54856: 4a00 tstb %d0 <== NOT EXECUTED 54858: 670e beqs 54868 <_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 ) 5485a: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 5485e: 93c3 subal %d3,%a1 <== NOT EXECUTED 54860: 5889 addql #4,%a1 <== NOT EXECUTED 54862: 2089 movel %a1,%a0@ <== NOT EXECUTED 54864: 7001 moveq #1,%d0 <== NOT EXECUTED 54866: 6002 bras 5486a <_Heap_Size_of_user_area+0x7a> <== NOT EXECUTED + HEAP_BLOCK_HEADER_OFFSET; return( TRUE ); 54868: 4200 clrb %d0 <== NOT EXECUTED } 5486a: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 5486e: 4e5e unlk %fp <== NOT EXECUTED 54870: 4e75 rts <== NOT EXECUTED ... 0004d560 <_Heap_Walk>: bool _Heap_Walk( Heap_Control *the_heap, int source, bool do_dump ) { 4d560: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 4d564: 48d7 3c7c moveml %d2-%d6/%a2-%a5,%sp@ <== NOT EXECUTED 4d568: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 4d56c: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED Heap_Block *the_block = the_heap->start; 4d570: 246c 0020 moveal %a4@(32),%a2 <== NOT EXECUTED Heap_Block *const end = the_heap->final; 4d574: 2c2c 0024 movel %a4@(36),%d6 <== NOT EXECUTED /* if ( !_System_state_Is_up( _System_state_Get() ) ) return TRUE; */ if (source < 0) 4d578: 4a84 tstl %d4 <== NOT EXECUTED 4d57a: 6c04 bges 4d580 <_Heap_Walk+0x20> <== NOT EXECUTED source = the_heap->stats.instance; 4d57c: 282c 0028 movel %a4@(40),%d4 <== NOT EXECUTED /* * Handle the 1st block */ if (!_Heap_Is_prev_used(the_block)) { 4d580: 7001 moveq #1,%d0 <== NOT EXECUTED 4d582: c0aa 0004 andl %a2@(4),%d0 <== NOT EXECUTED 4d586: 4a00 tstb %d0 <== NOT EXECUTED 4d588: 6704 beqs 4d58e <_Heap_Walk+0x2e> <== NOT EXECUTED 4d58a: 4282 clrl %d2 <== NOT EXECUTED 4d58c: 6012 bras 4d5a0 <_Heap_Walk+0x40> <== NOT EXECUTED printk("PASS: %d !HEAP_PREV_USED flag of 1st block isn't set\n", source); 4d58e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d590: 7401 moveq #1,%d2 <== NOT EXECUTED 4d592: 4879 0005 894a pea 5894a <_POSIX_Threads_Default_attributes+0x38> <== NOT EXECUTED 4d598: 4eb9 0004 5232 jsr 45232 <== NOT EXECUTED 4d59e: 508f addql #8,%sp <== NOT EXECUTED error = 1; } if (the_block->prev_size != the_heap->page_size) { 4d5a0: 202c 0010 movel %a4@(16),%d0 <== NOT EXECUTED 4d5a4: b092 cmpl %a2@,%d0 <== NOT EXECUTED 4d5a6: 6700 0106 beqw 4d6ae <_Heap_Walk+0x14e> <== NOT EXECUTED printk("PASS: %d !prev_size of 1st block isn't page_size\n", source); 4d5aa: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d5ac: 7401 moveq #1,%d2 <== NOT EXECUTED 4d5ae: 4879 0005 8980 pea 58980 <_POSIX_Threads_Default_attributes+0x6e> <== NOT EXECUTED 4d5b4: 4eb9 0004 5232 jsr 45232 <== NOT EXECUTED 4d5ba: 508f addql #8,%sp <== NOT EXECUTED 4d5bc: 6000 00f0 braw 4d6ae <_Heap_Walk+0x14e> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 4d5c0: 262a 0004 movel %a2@(4),%d3 <== NOT EXECUTED 4d5c4: 7afe moveq #-2,%d5 <== NOT EXECUTED 4d5c6: 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 ); 4d5c8: 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 ); 4d5cc: 202c 0024 movel %a4@(36),%d0 <== NOT EXECUTED 4d5d0: b7ec 0020 cmpal %a4@(32),%a3 <== NOT EXECUTED 4d5d4: 650c bcss 4d5e2 <_Heap_Walk+0x82> <== NOT EXECUTED 4d5d6: b08b cmpl %a3,%d0 <== NOT EXECUTED 4d5d8: 54c0 scc %d0 <== NOT EXECUTED 4d5da: 49c0 extbl %d0 <== NOT EXECUTED 4d5dc: 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)) { 4d5de: 4a00 tstb %d0 <== NOT EXECUTED 4d5e0: 661a bnes 4d5fc <_Heap_Walk+0x9c> <== NOT EXECUTED if (do_dump) printk("\n"); printk("PASS: %d !block %p is out of heap\n", source, next_block); 4d5e2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4d5e4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d5e6: 4879 0005 89b2 pea 589b2 <_POSIX_Threads_Default_attributes+0xa0> <== NOT EXECUTED 4d5ec: 4eb9 0004 5232 jsr 45232 <== NOT EXECUTED 4d5f2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d5f8: 6000 00c2 braw 4d6bc <_Heap_Walk+0x15c> <== NOT EXECUTED error = 1; break; } if (!_Heap_Is_prev_used(next_block)) { 4d5fc: 7001 moveq #1,%d0 <== NOT EXECUTED 4d5fe: c0ab 0004 andl %a3@(4),%d0 <== NOT EXECUTED 4d602: 4a00 tstb %d0 <== NOT EXECUTED 4d604: 6666 bnes 4d66c <_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) { 4d606: ba93 cmpl %a3@,%d5 <== NOT EXECUTED 4d608: 670e beqs 4d618 <_Heap_Walk+0xb8> <== NOT EXECUTED if (do_dump) printk("\n"); printk("PASS: %d !front and back sizes don't match", source); 4d60a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d60c: 7401 moveq #1,%d2 <== NOT EXECUTED 4d60e: 4879 0005 89d5 pea 589d5 <_POSIX_Threads_Default_attributes+0xc3> <== NOT EXECUTED 4d614: 4e95 jsr %a5@ <== NOT EXECUTED 4d616: 508f addql #8,%sp <== NOT EXECUTED error = 1; } if (!prev_used) { 4d618: 7001 moveq #1,%d0 <== NOT EXECUTED 4d61a: c680 andl %d0,%d3 <== NOT EXECUTED 4d61c: 4a03 tstb %d3 <== NOT EXECUTED 4d61e: 661c bnes 4d63c <_Heap_Walk+0xdc> <== NOT EXECUTED if (do_dump || error) printk("\n"); 4d620: 4a82 tstl %d2 <== NOT EXECUTED 4d622: 670a beqs 4d62e <_Heap_Walk+0xce> <== NOT EXECUTED 4d624: 4879 0005 825d pea 5825d <== NOT EXECUTED 4d62a: 4e95 jsr %a5@ <== NOT EXECUTED 4d62c: 588f addql #4,%sp <== NOT EXECUTED printk("PASS: %d !two consecutive blocks are free", source); 4d62e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d630: 7401 moveq #1,%d2 <== NOT EXECUTED 4d632: 4879 0005 8a00 pea 58a00 <_POSIX_Threads_Default_attributes+0xee> <== NOT EXECUTED 4d638: 4e95 jsr %a5@ <== NOT EXECUTED 4d63a: 508f addql #8,%sp <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 4d63c: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 4d640: 6004 bras 4d646 <_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; 4d642: 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) 4d646: b5c8 cmpal %a0,%a2 <== NOT EXECUTED 4d648: 6722 beqs 4d66c <_Heap_Walk+0x10c> <== NOT EXECUTED 4d64a: b9c8 cmpal %a0,%a4 <== NOT EXECUTED 4d64c: 66f4 bnes 4d642 <_Heap_Walk+0xe2> <== NOT EXECUTED block = block->next; if(block != the_block) { if (do_dump || error) printk("\n"); 4d64e: 4a82 tstl %d2 <== NOT EXECUTED 4d650: 670a beqs 4d65c <_Heap_Walk+0xfc> <== NOT EXECUTED 4d652: 4879 0005 825d pea 5825d <== NOT EXECUTED 4d658: 4e95 jsr %a5@ <== NOT EXECUTED 4d65a: 588f addql #4,%sp <== NOT EXECUTED printk("PASS: %d !the_block not in the free list", source); 4d65c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d65e: 7401 moveq #1,%d2 <== NOT EXECUTED 4d660: 4879 0005 8a2a pea 58a2a <_POSIX_Threads_Default_attributes+0x118> <== NOT EXECUTED 4d666: 4e95 jsr %a5@ <== NOT EXECUTED 4d668: 508f addql #8,%sp <== NOT EXECUTED 4d66a: 6004 bras 4d670 <_Heap_Walk+0x110> <== NOT EXECUTED error = 1; } } } if (do_dump || error) printk("\n"); 4d66c: 4a82 tstl %d2 <== NOT EXECUTED 4d66e: 670a beqs 4d67a <_Heap_Walk+0x11a> <== NOT EXECUTED 4d670: 4879 0005 825d pea 5825d <== NOT EXECUTED 4d676: 4e95 jsr %a5@ <== NOT EXECUTED 4d678: 588f addql #4,%sp <== NOT EXECUTED if (the_size < the_heap->min_block_size) { 4d67a: baac 0014 cmpl %a4@(20),%d5 <== NOT EXECUTED 4d67e: 640a bccs 4d68a <_Heap_Walk+0x12a> <== NOT EXECUTED printk("PASS: %d !block size is too small\n", source); 4d680: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d682: 4879 0005 8a53 pea 58a53 <_POSIX_Threads_Default_attributes+0x141> <== NOT EXECUTED 4d688: 6012 bras 4d69c <_Heap_Walk+0x13c> <== NOT EXECUTED error = 1; break; } if (!_Heap_Is_aligned( the_size, the_heap->page_size)) { 4d68a: 4c6c 5000 0010 remul %a4@(16),%d0,%d5 <== NOT EXECUTED 4d690: 4a80 tstl %d0 <== NOT EXECUTED 4d692: 6712 beqs 4d6a6 <_Heap_Walk+0x146> <== NOT EXECUTED printk("PASS: %d !block size is misaligned\n", source); 4d694: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d696: 4879 0005 8a76 pea 58a76 <_POSIX_Threads_Default_attributes+0x164> <== NOT EXECUTED 4d69c: 4eb9 0004 5232 jsr 45232 <== NOT EXECUTED 4d6a2: 508f addql #8,%sp <== NOT EXECUTED 4d6a4: 6016 bras 4d6bc <_Heap_Walk+0x15c> <== NOT EXECUTED error = 1; } if (++passes > (do_dump ? 10 : 0) && error) 4d6a6: 4a82 tstl %d2 <== NOT EXECUTED 4d6a8: 6612 bnes 4d6bc <_Heap_Walk+0x15c> <== NOT EXECUTED break; 4d6aa: 244b moveal %a3,%a2 <== NOT EXECUTED 4d6ac: 6006 bras 4d6b4 <_Heap_Walk+0x154> <== NOT EXECUTED error = 1; } } } if (do_dump || error) printk("\n"); 4d6ae: 4bf9 0004 5232 lea 45232 ,%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 ) { 4d6b4: bc8a cmpl %a2,%d6 <== NOT EXECUTED 4d6b6: 6600 ff08 bnew 4d5c0 <_Heap_Walk+0x60> <== NOT EXECUTED 4d6ba: 601a bras 4d6d6 <_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", 4d6bc: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4d6be: 7401 moveq #1,%d2 <== NOT EXECUTED 4d6c0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d6c2: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d6c4: 4879 0005 8a9a pea 58a9a <_POSIX_Threads_Default_attributes+0x188> <== NOT EXECUTED 4d6ca: 4eb9 0004 5232 jsr 45232 <== NOT EXECUTED 4d6d0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED source, the_block, end); error = 1; } if (_Heap_Block_size(the_block) != the_heap->page_size) { 4d6d6: 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); 4d6da: 72fe moveq #-2,%d1 <== NOT EXECUTED 4d6dc: c2aa 0004 andl %a2@(4),%d1 <== NOT EXECUTED 4d6e0: b081 cmpl %d1,%d0 <== NOT EXECUTED 4d6e2: 671a beqs 4d6fe <_Heap_Walk+0x19e> <== NOT EXECUTED printk("PASS: %d !last block's size isn't page_size (%d != %d)\n", source, 4d6e4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4d6e6: 7401 moveq #1,%d2 <== NOT EXECUTED 4d6e8: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4d6ea: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d6ec: 4879 0005 8ad5 pea 58ad5 <_POSIX_Threads_Default_attributes+0x1c3> <== NOT EXECUTED 4d6f2: 4eb9 0004 5232 jsr 45232 <== NOT EXECUTED 4d6f8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4d6fe: 4a82 tstl %d2 <== NOT EXECUTED 4d700: 56c0 sne %d0 <== NOT EXECUTED if(do_dump && error) _Internal_error_Occurred( INTERNAL_ERROR_CORE, TRUE, 0xffff0000 ); return error; } 4d702: 4cee 3c7c ffdc moveml %fp@(-36),%d2-%d6/%a2-%a5 <== NOT EXECUTED 4d708: 4e5e unlk %fp <== NOT EXECUTED 4d70a: 4480 negl %d0 <== NOT EXECUTED 4d70c: 4e75 rts <== NOT EXECUTED ... 00045594 <_IO_Initialize_all_drivers>: * * Output Parameters: NONE */ void _IO_Initialize_all_drivers( void ) { 45594: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45598: 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 ); 4559a: 45f9 0004 a174 lea 4a174 ,%a2 <== NOT EXECUTED * * Output Parameters: NONE */ void _IO_Initialize_all_drivers( void ) { 455a0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 455a2: 4282 clrl %d2 <== NOT EXECUTED 455a4: 6010 bras 455b6 <_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 ); 455a6: 42a7 clrl %sp@- <== NOT EXECUTED 455a8: 42a7 clrl %sp@- <== NOT EXECUTED 455aa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 455ac: 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 ++ ) 455ae: 5282 addql #1,%d2 <== NOT EXECUTED 455b0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 455b6: b4b9 0005 8716 cmpl 58716 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 455bc: 65e8 bcss 455a6 <_IO_Initialize_all_drivers+0x12> <== NOT EXECUTED (void) rtems_io_initialize( major, 0, NULL ); } 455be: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 455c2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 455c6: 4e5e unlk %fp <== NOT EXECUTED 455c8: 4e75 rts 000455ca <_IO_Manager_initialization>: void _IO_Manager_initialization( rtems_driver_address_table *driver_table, uint32_t drivers_in_table, uint32_t number_of_drivers ) { 455ca: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 455ce: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 455d2: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 455d6: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 455da: 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 ) 455de: ba84 cmpl %d4,%d5 <== NOT EXECUTED 455e0: 6442 bccs 45624 <_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 *) 455e2: 2004 movel %d4,%d0 <== NOT EXECUTED 455e4: 2404 movel %d4,%d2 <== NOT EXECUTED 455e6: e788 lsll #3,%d0 <== NOT EXECUTED 455e8: eb8a lsll #5,%d2 <== NOT EXECUTED 455ea: 9480 subl %d0,%d2 <== NOT EXECUTED 455ec: 2f02 movel %d2,%sp@- <== NOT EXECUTED 455ee: 4eb9 0004 7ec4 jsr 47ec4 <_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( 455f4: 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]; 455f6: 4283 clrl %d3 <== NOT EXECUTED 455f8: 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( 455fa: 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++ ) 455fc: 47f9 0004 bf4c lea 4bf4c ,%a3 <== NOT EXECUTED _Workspace_Allocate_or_fatal_error( sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); _IO_Number_of_drivers = number_of_drivers; memset( 45602: 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; 45604: 23c4 0005 8716 movel %d4,58716 <_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 *) 4560a: 23c0 0005 871a movel %d0,5871a <_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( 45610: 4eb9 0004 bfbc jsr 4bfbc <== 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]; 45616: 2479 0005 871a moveal 5871a <_IO_Driver_address_table>,%a2 <== NOT EXECUTED 4561c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45622: 602a bras 4564e <_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; 45624: 23cc 0005 871a movel %a4,5871a <_IO_Driver_address_table> <== NOT EXECUTED _IO_Number_of_drivers = number_of_drivers; 4562a: 23c5 0005 8716 movel %d5,58716 <_IO_Number_of_drivers> <== NOT EXECUTED 45630: 6020 bras 45652 <_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++ ) 45632: 4878 0018 pea 18 <== NOT EXECUTED 45636: 4874 2800 pea %a4@(00000000,%d2:l) <== NOT EXECUTED 4563a: 4872 2800 pea %a2@(00000000,%d2:l) <== NOT EXECUTED 4563e: 4e93 jsr %a3@ <== NOT EXECUTED 45640: 5283 addql #1,%d3 <== NOT EXECUTED 45642: 0682 0000 0018 addil #24,%d2 <== NOT EXECUTED 45648: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4564e: ba83 cmpl %d3,%d5 <== NOT EXECUTED 45650: 62e0 bhis 45632 <_IO_Manager_initialization+0x68> <== NOT EXECUTED _IO_Driver_address_table[index] = driver_table[index]; number_of_drivers = drivers_in_table; } 45652: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 45658: 4e5e unlk %fp <== NOT EXECUTED 4565a: 4e75 rts 00046058 <_ISR_Handler_initialization>: * * Output parameters: NONE */ void _ISR_Handler_initialization( void ) { 46058: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4605c: 2f0a movel %a2,%sp@- <== NOT EXECUTED _ISR_Signals_to_thread_executing = FALSE; 4605e: 4200 clrb %d0 <== NOT EXECUTED _ISR_Nest_level = 0; 46060: 42b9 0005 7f1a clrl 57f1a <_ISR_Nest_level> <== NOT EXECUTED #if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE) _ISR_Vector_table = _Workspace_Allocate_or_fatal_error( 46066: 45f9 0004 7ec4 lea 47ec4 <_Workspace_Allocate_or_fatal_error>,%a2 <== NOT EXECUTED * Output parameters: NONE */ void _ISR_Handler_initialization( void ) { _ISR_Signals_to_thread_executing = FALSE; 4606c: 13c0 0005 7fc8 moveb %d0,57fc8 <_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( 46072: 4878 0400 pea 400 <== NOT EXECUTED 46076: 4e92 jsr %a2@ <== NOT EXECUTED _CPU_Initialize_vectors(); #if ( CPU_ALLOCATE_INTERRUPT_STACK == TRUE ) if ( !_Stack_Is_enough(_Configuration_Table->interrupt_stack_size) ) 46078: 2079 0005 7f16 moveal 57f16 <_Configuration_Table>,%a0 <== NOT EXECUTED 4607e: 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( 46082: 23c0 0005 7ef6 movel %d0,57ef6 <_ISR_Vector_table> <== NOT EXECUTED _CPU_Initialize_vectors(); #if ( CPU_ALLOCATE_INTERRUPT_STACK == TRUE ) if ( !_Stack_Is_enough(_Configuration_Table->interrupt_stack_size) ) 46088: 588f addql #4,%sp <== NOT EXECUTED 4608a: b2b9 0005 62ee cmpl 562ee ,%d1 <== NOT EXECUTED 46090: 6410 bccs 460a2 <_ISR_Handler_initialization+0x4a> <== NOT EXECUTED _Internal_error_Occurred( 46092: 4878 0005 pea 5 <== NOT EXECUTED 46096: 4878 0001 pea 1 <== NOT EXECUTED 4609a: 42a7 clrl %sp@- <== NOT EXECUTED 4609c: 4eb9 0004 5ffc jsr 45ffc <_Internal_error_Occurred> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_INTERRUPT_STACK_TOO_SMALL ); _CPU_Interrupt_stack_low = _Workspace_Allocate_or_fatal_error( 460a2: 2f01 movel %d1,%sp@- <== NOT EXECUTED 460a4: 4e92 jsr %a2@ <== NOT EXECUTED _Configuration_Table->interrupt_stack_size ); _CPU_Interrupt_stack_high = _Addresses_Add_offset( 460a6: 2079 0005 7f16 moveal 57f16 <_Configuration_Table>,%a0 <== NOT EXECUTED 460ac: 2200 movel %d0,%d1 <== NOT EXECUTED 460ae: d2a8 001c addl %a0@(28),%d1 <== NOT EXECUTED #if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE ) _CPU_Install_interrupt_stack(); #endif } 460b2: 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( 460b6: 588f addql #4,%sp <== NOT EXECUTED #if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE ) _CPU_Install_interrupt_stack(); #endif } 460b8: 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( 460ba: 23c1 0005 7e30 movel %d1,57e30 <_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( 460c0: 23c0 0005 7e8c movel %d0,57e8c <_CPU_Interrupt_stack_low> <== NOT EXECUTED #if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE ) _CPU_Install_interrupt_stack(); #endif } 460c6: 4e75 rts 00045ffc <_Internal_error_Occurred>: void _Internal_error_Occurred( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 45ffc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46000: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46002: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 46006: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46008: 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 ); 4600c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4600e: 4280 clrl %d0 <== NOT EXECUTED 46010: 1002 moveb %d2,%d0 <== NOT EXECUTED void _Internal_error_Occurred( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 46012: 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 ); 46016: 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; 46018: 13c2 0005 7f2a moveb %d2,57f2a <_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 ); 4601e: 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 ); 46024: 2f01 movel %d1,%sp@- <== NOT EXECUTED bool is_internal, uint32_t the_error ) { _Internal_errors_What_happened.the_source = the_source; 46026: 23c1 0005 7f26 movel %d1,57f26 <_Internal_errors_What_happened> <== NOT EXECUTED _Internal_errors_What_happened.is_internal = is_internal; _Internal_errors_What_happened.the_error = the_error; 4602c: 23c3 0005 7f2c movel %d3,57f2c <_Internal_errors_What_happened+0x6> <== NOT EXECUTED _User_extensions_Fatal( the_source, is_internal, the_error ); 46032: 4eb9 0004 7b5a jsr 47b5a <_User_extensions_Fatal> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Set ( System_state_Codes state ) { _System_state_Current = state; 46038: 7005 moveq #5,%d0 <== NOT EXECUTED 4603a: 23c0 0005 800e movel %d0,5800e <_System_state_Current> <== NOT EXECUTED _System_state_Set( SYSTEM_STATE_FAILED ); _CPU_Fatal_halt( the_error ); 46040: 40c0 movew %sr,%d0 <== NOT EXECUTED 46042: 8082 orl %d2,%d0 <== NOT EXECUTED 46044: 46c0 movew %d0,%sr <== NOT EXECUTED 46046: 2003 movel %d3,%d0 <== NOT EXECUTED 46048: 223c dead beef movel #-559038737,%d1 <== NOT EXECUTED 4604e: 4ac8 halt <== NOT EXECUTED 46050: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46056: 60fe bras 46056 <_Internal_error_Occurred+0x5a> <== NOT EXECUTED 00049db8 <_Interrupt_Manager_initialization>: * * Output parameters: NONE */ void _Interrupt_Manager_initialization( void ) { 49db8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED } 49dbc: 4e5e unlk %fp <== NOT EXECUTED 49dbe: 4e75 rts 000553a0 <_Message_queue_Allocate>: * Output parameters: * the_message_queue - set if successful, NULL otherwise */ Message_queue_Control *_Message_queue_Allocate(void) { 553a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return (Message_queue_Control *) 553a4: 4879 0006 e27e pea 6e27e <_Message_queue_Information> <== NOT EXECUTED 553aa: 4eb9 0005 1334 jsr 51334 <_Objects_Allocate> <== NOT EXECUTED _Objects_Allocate(&_Message_queue_Information); } 553b0: 4e5e unlk %fp <== NOT EXECUTED 553b2: 4e75 rts 00049dc0 <_Message_queue_Manager_initialization>: */ void _Message_queue_Manager_initialization( uint32_t maximum_message_queues ) { 49dc0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49dc4: 4878 0004 pea 4 <== NOT EXECUTED 49dc8: 42a7 clrl %sp@- <== NOT EXECUTED 49dca: 4878 0088 pea 88 <== NOT EXECUTED 49dce: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49dd2: 4878 0004 pea 4 <== NOT EXECUTED 49dd6: 4878 0002 pea 2 <== NOT EXECUTED 49dda: 4879 0005 8796 pea 58796 <_Message_queue_Information> <== NOT EXECUTED 49de0: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49de6: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_MESSAGE_QUEUE, _Message_queue_MP_Process_packet ); #endif } 49dec: 4e5e unlk %fp <== NOT EXECUTED 49dee: 4e75 rts 0004f748 <_Message_queue_Translate_core_message_queue_return_code>: }; rtems_status_code _Message_queue_Translate_core_message_queue_return_code ( uint32_t status ) { 4f748: 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]; } 4f74c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED }; rtems_status_code _Message_queue_Translate_core_message_queue_return_code ( uint32_t status ) { 4f750: 41f9 0006 1c78 lea 61c78 <_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]; } 4f756: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4f75a: 4e5e unlk %fp <== NOT EXECUTED 4f75c: 4e75 rts <== NOT EXECUTED ... 0004a5b4 <_Objects_API_maximum_class>: #include int _Objects_API_maximum_class( uint32_t api ) { 4a5b4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a5b8: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED switch (api) { 4a5bc: 7202 moveq #2,%d1 <== NOT EXECUTED 4a5be: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a5c0: 671c beqs 4a5de <_Objects_API_maximum_class+0x2a> <== NOT EXECUTED 4a5c2: 650a bcss 4a5ce <_Objects_API_maximum_class+0x1a> <== NOT EXECUTED 4a5c4: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 4a5c8: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a5ca: 6622 bnes 4a5ee <_Objects_API_maximum_class+0x3a> <== NOT EXECUTED 4a5cc: 6014 bras 4a5e2 <_Objects_API_maximum_class+0x2e> <== NOT EXECUTED 4a5ce: 7203 moveq #3,%d1 <== NOT EXECUTED 4a5d0: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a5d2: 6712 beqs 4a5e6 <_Objects_API_maximum_class+0x32> <== NOT EXECUTED 4a5d4: 123c 0004 moveb #4,%d1 <== NOT EXECUTED 4a5d8: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a5da: 6612 bnes 4a5ee <_Objects_API_maximum_class+0x3a> <== NOT EXECUTED 4a5dc: 600c bras 4a5ea <_Objects_API_maximum_class+0x36> <== NOT EXECUTED 4a5de: 700a moveq #10,%d0 <== NOT EXECUTED 4a5e0: 600e bras 4a5f0 <_Objects_API_maximum_class+0x3c> <== NOT EXECUTED 4a5e2: 7002 moveq #2,%d0 <== NOT EXECUTED 4a5e4: 600a bras 4a5f0 <_Objects_API_maximum_class+0x3c> <== NOT EXECUTED 4a5e6: 700c moveq #12,%d0 <== NOT EXECUTED 4a5e8: 6006 bras 4a5f0 <_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; 4a5ea: 7008 moveq #8,%d0 <== NOT EXECUTED 4a5ec: 6002 bras 4a5f0 <_Objects_API_maximum_class+0x3c> <== NOT EXECUTED case OBJECTS_ITRON_API: return OBJECTS_ITRON_CLASSES_LAST; 4a5ee: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_NO_API: default: break; } return -1; } 4a5f0: 4e5e unlk %fp <== NOT EXECUTED 4a5f2: 4e75 rts 000460c8 <_Objects_Allocate>: */ Objects_Control *_Objects_Allocate( Objects_Information *information ) { 460c8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 460cc: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 460d0: 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 ) 460d4: 4aaa 0016 tstl %a2@(22) <== NOT EXECUTED 460d8: 6604 bnes 460de <_Objects_Allocate+0x16> <== NOT EXECUTED 460da: 93c9 subal %a1,%a1 <== NOT EXECUTED 460dc: 6064 bras 46142 <_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 ); 460de: 240a movel %a2,%d2 <== NOT EXECUTED 460e0: 0682 0000 001e addil #30,%d2 <== NOT EXECUTED 460e6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 460e8: 47f9 0004 a1ec lea 4a1ec <_Chain_Get>,%a3 <== NOT EXECUTED 460ee: 4e93 jsr %a3@ <== NOT EXECUTED if ( information->auto_extend ) { 460f0: 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 ); 460f2: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( information->auto_extend ) { 460f4: 4a2a 0010 tstb %a2@(16) <== NOT EXECUTED 460f8: 6748 beqs 46142 <_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 ) { 460fa: 4a80 tstl %d0 <== NOT EXECUTED 460fc: 6614 bnes 46112 <_Objects_Allocate+0x4a> <== NOT EXECUTED _Objects_Extend_information( information ); 460fe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46100: 4eb9 0004 617c jsr 4617c <_Objects_Extend_information> <== NOT EXECUTED the_object = (Objects_Control *) _Chain_Get( &information->Inactive ); 46106: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46108: 4e93 jsr %a3@ <== NOT EXECUTED } if ( the_object ) { 4610a: 508f addql #8,%sp <== NOT EXECUTED * extend information base. */ if ( !the_object ) { _Objects_Extend_information( information ); the_object = (Objects_Control *) _Chain_Get( &information->Inactive ); 4610c: 2240 moveal %d0,%a1 <== NOT EXECUTED } if ( the_object ) { 4610e: 4a80 tstl %d0 <== NOT EXECUTED 46110: 6730 beqs 46142 <_Objects_Allocate+0x7a> <== NOT EXECUTED uint32_t block; block = _Objects_Get_index( the_object->id ) - 46112: 2029 0008 movel %a1@(8),%d0 <== NOT EXECUTED 46116: 222a 0006 movel %a2@(6),%d1 <== NOT EXECUTED 4611a: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 46120: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 46126: 9081 subl %d1,%d0 <== NOT EXECUTED _Objects_Get_index( information->minimum_id ); block /= information->allocation_size; information->inactive_per_block[ block ]--; 46128: 4c6a 0000 0012 remul %a2@(18),%d0,%d0 <== NOT EXECUTED 4612e: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED information->inactive--; 46132: 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 ]--; 46136: e588 lsll #2,%d0 <== NOT EXECUTED information->inactive--; 46138: 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 ]--; 4613a: d1c0 addal %d0,%a0 <== NOT EXECUTED information->inactive--; 4613c: 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 ]--; 46140: 5390 subql #1,%a0@ <== NOT EXECUTED information->inactive--; } } return the_object; } 46142: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 46148: 4e5e unlk %fp <== NOT EXECUTED 4614a: 2009 movel %a1,%d0 <== NOT EXECUTED 4614c: 4e75 rts <== NOT EXECUTED ... 00046150 <_Objects_Close>: void _Objects_Close( Objects_Information *information, Objects_Control *the_object ) { 46150: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46154: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46156: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4615a: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4615e: 206a 001a moveal %a2@(26),%a0 <== NOT EXECUTED 46162: 4280 clrl %d0 <== NOT EXECUTED 46164: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED 46168: 42b0 0c00 clrl %a0@(00000000,%d0:l:4) <== NOT EXECUTED _Objects_Invalidate_Id( information, the_object ); _Objects_Namespace_remove( information, the_object ); 4616c: 2d49 000c movel %a1,%fp@(12) <== NOT EXECUTED } 46170: 245f moveal %sp@+,%a2 <== NOT EXECUTED 46172: 4e5e unlk %fp <== NOT EXECUTED Objects_Control *the_object ) { _Objects_Invalidate_Id( information, the_object ); _Objects_Namespace_remove( information, the_object ); 46174: 4ef9 0004 665c jmp 4665c <_Objects_Namespace_remove> <== NOT EXECUTED ... 0004617c <_Objects_Extend_information>: */ void _Objects_Extend_information( Objects_Information *information ) { 4617c: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 46180: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 46184: 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; 46188: 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 ) 4618c: 4281 clrl %d1 <== NOT EXECUTED 4618e: 0283 0000 ffff andil #65535,%d3 <== NOT EXECUTED 46194: 322b 000e movew %a3@(14),%d1 <== NOT EXECUTED 46198: b681 cmpl %d1,%d3 <== NOT EXECUTED 4619a: 6308 blss 461a4 <_Objects_Extend_information+0x28> <== NOT EXECUTED 4619c: 2803 movel %d3,%d4 <== NOT EXECUTED 4619e: 4287 clrl %d7 <== NOT EXECUTED 461a0: 4285 clrl %d5 <== NOT EXECUTED 461a2: 6024 bras 461c8 <_Objects_Extend_information+0x4c> <== NOT EXECUTED block_count = 0; else { block_count = information->maximum / information->allocation_size; 461a4: 202b 0012 movel %a3@(18),%d0 <== NOT EXECUTED 461a8: 2401 movel %d1,%d2 <== NOT EXECUTED 461aa: 4c40 2002 remul %d0,%d2,%d2 <== NOT EXECUTED 461ae: 2e02 movel %d2,%d7 <== NOT EXECUTED 461b0: 2803 movel %d3,%d4 <== NOT EXECUTED 461b2: 4285 clrl %d5 <== NOT EXECUTED 461b4: 600e bras 461c4 <_Objects_Extend_information+0x48> <== NOT EXECUTED for ( ; block < block_count; block++ ) { if ( information->object_blocks[ block ] == NULL ) 461b6: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED 461ba: 4ab0 5c00 tstl %a0@(00000000,%d5:l:4) <== NOT EXECUTED 461be: 6708 beqs 461c8 <_Objects_Extend_information+0x4c> <== NOT EXECUTED break; else index_base += information->allocation_size; 461c0: 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++ ) { 461c2: 5285 addql #1,%d5 <== NOT EXECUTED 461c4: b485 cmpl %d5,%d2 <== NOT EXECUTED 461c6: 62ee bhis 461b6 <_Objects_Extend_information+0x3a> <== NOT EXECUTED /* * If the index_base is the maximum we need to grow the tables. */ if (index_base >= information->maximum ) { 461c8: b284 cmpl %d4,%d1 <== NOT EXECUTED 461ca: 6200 011c bhiw 462e8 <_Objects_Extend_information+0x16c> <== NOT EXECUTED * Up the block count and maximum */ block_count++; maximum = information->maximum + information->allocation_size; 461ce: d2ab 0012 addl %a3@(18),%d1 <== NOT EXECUTED /* * Up the block count and maximum */ block_count++; 461d2: 2407 movel %d7,%d2 <== NOT EXECUTED 461d4: 2001 movel %d1,%d0 <== NOT EXECUTED maximum = information->maximum + information->allocation_size; 461d6: 2d41 fff0 movel %d1,%fp@(-16) <== NOT EXECUTED /* * Up the block count and maximum */ block_count++; 461da: 5282 addql #1,%d2 <== NOT EXECUTED 461dc: 7203 moveq #3,%d1 <== NOT EXECUTED 461de: 4c02 1800 mulsl %d2,%d1 <== NOT EXECUTED 461e2: d083 addl %d3,%d0 <== NOT EXECUTED /* * Allocate the tables and break it up. */ if ( information->auto_extend ) { 461e4: 4a2b 0010 tstb %a3@(16) <== NOT EXECUTED 461e8: 6718 beqs 46202 <_Objects_Extend_information+0x86> <== NOT EXECUTED object_blocks = (void**) 461ea: d081 addl %d1,%d0 <== NOT EXECUTED 461ec: e588 lsll #2,%d0 <== NOT EXECUTED 461ee: 2f00 movel %d0,%sp@- <== NOT EXECUTED 461f0: 4eb9 0004 7eac jsr 47eac <_Workspace_Allocate> <== NOT EXECUTED block_count * (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) + ((maximum + minimum_index) * sizeof(Objects_Control *)) ); if ( !object_blocks ) 461f6: 588f addql #4,%sp <== NOT EXECUTED /* * Allocate the tables and break it up. */ if ( information->auto_extend ) { object_blocks = (void**) 461f8: 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 ) 461fa: 4a80 tstl %d0 <== NOT EXECUTED 461fc: 6614 bnes 46212 <_Objects_Extend_information+0x96> <== NOT EXECUTED 461fe: 6000 01be braw 463be <_Objects_Extend_information+0x242> <== NOT EXECUTED return; } else { object_blocks = (void**) 46202: d081 addl %d1,%d0 <== NOT EXECUTED 46204: e588 lsll #2,%d0 <== NOT EXECUTED 46206: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46208: 4eb9 0004 7ec4 jsr 47ec4 <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED 4620e: 588f addql #4,%sp <== NOT EXECUTED 46210: 2840 moveal %d0,%a4 <== NOT EXECUTED /* * Break the block into the various sections. * */ inactive_per_block = (uint32_t *) _Addresses_Add_offset( 46212: 2002 movel %d2,%d0 <== NOT EXECUTED 46214: e588 lsll #2,%d0 <== NOT EXECUTED 46216: 2c0c movel %a4,%d6 <== NOT EXECUTED 46218: dc80 addl %d0,%d6 <== NOT EXECUTED 4621a: 2a46 moveal %d6,%a5 <== NOT EXECUTED 4621c: dbc0 addal %d0,%a5 <== NOT EXECUTED * in the copies. */ block_count--; if ( information->maximum > minimum_index ) { 4621e: 4280 clrl %d0 <== NOT EXECUTED 46220: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 46224: b680 cmpl %d0,%d3 <== NOT EXECUTED 46226: 6506 bcss 4622e <_Objects_Extend_information+0xb2> <== NOT EXECUTED 46228: 204d moveal %a5,%a0 <== NOT EXECUTED 4622a: 4280 clrl %d0 <== NOT EXECUTED 4622c: 603e bras 4626c <_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, 4622e: 2407 movel %d7,%d2 <== NOT EXECUTED 46230: e58a lsll #2,%d2 <== NOT EXECUTED 46232: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46234: 45f9 0004 bf4c lea 4bf4c ,%a2 <== NOT EXECUTED 4623a: 2f2b 0030 movel %a3@(48),%sp@- <== NOT EXECUTED 4623e: 2f0c movel %a4,%sp@- <== NOT EXECUTED 46240: 4e92 jsr %a2@ <== NOT EXECUTED information->object_blocks, block_count * sizeof(void*) ); memcpy( inactive_per_block, 46242: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46244: 2f2b 002c movel %a3@(44),%sp@- <== NOT EXECUTED 46248: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4624a: 4e92 jsr %a2@ <== NOT EXECUTED information->inactive_per_block, block_count * sizeof(uint32_t) ); memcpy( local_table, 4624c: 4280 clrl %d0 <== NOT EXECUTED 4624e: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 46252: d083 addl %d3,%d0 <== NOT EXECUTED 46254: e588 lsll #2,%d0 <== NOT EXECUTED 46256: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46258: 2f2b 001a movel %a3@(26),%sp@- <== NOT EXECUTED 4625c: 2f0d movel %a5,%sp@- <== NOT EXECUTED 4625e: 4e92 jsr %a2@ <== NOT EXECUTED 46260: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 46266: 6008 bras 46270 <_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++ ) { 46268: 5280 addql #1,%d0 <== NOT EXECUTED local_table[ index ] = NULL; 4626a: 4298 clrl %a0@+ <== NOT EXECUTED else { /* * Deal with the special case of the 0 to minimum_index */ for ( index = 0; index < minimum_index; index++ ) { 4626c: b680 cmpl %d0,%d3 <== NOT EXECUTED 4626e: 62f8 bhis 46268 <_Objects_Extend_information+0xec> <== NOT EXECUTED /* * Initialise the new entries in the table. */ object_blocks[block_count] = NULL; 46270: 2007 movel %d7,%d0 <== NOT EXECUTED 46272: e588 lsll #2,%d0 <== NOT EXECUTED inactive_per_block[block_count] = 0; 46274: 2046 moveal %d6,%a0 <== NOT EXECUTED 46276: 42b0 0800 clrl %a0@(00000000,%d0:l) <== NOT EXECUTED for ( index=index_base ; index < ( information->allocation_size + index_base ); 4627a: 2204 movel %d4,%d1 <== NOT EXECUTED /* * Initialise the new entries in the table. */ object_blocks[block_count] = NULL; 4627c: 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 ); 46280: d2ab 0012 addl %a3@(18),%d1 <== NOT EXECUTED 46284: 41f5 4c00 lea %a5@(00000000,%d4:l:4),%a0 <== NOT EXECUTED 46288: 2004 movel %d4,%d0 <== NOT EXECUTED 4628a: 6004 bras 46290 <_Objects_Extend_information+0x114> <== NOT EXECUTED index++ ) { 4628c: 5280 addql #1,%d0 <== NOT EXECUTED local_table[ index ] = NULL; 4628e: 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 ); 46290: b280 cmpl %d0,%d1 <== NOT EXECUTED 46292: 62f8 bhis 4628c <_Objects_Extend_information+0x110> <== NOT EXECUTED index++ ) { local_table[ index ] = NULL; } _ISR_Disable( level ); 46294: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4629a: 40c2 movew %sr,%d2 <== NOT EXECUTED 4629c: 8082 orl %d2,%d0 <== NOT EXECUTED 4629e: 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( 462a0: 2013 movel %a3@,%d0 <== NOT EXECUTED 462a2: 7218 moveq #24,%d1 <== NOT EXECUTED 462a4: e3a8 lsll %d1,%d0 <== NOT EXECUTED 462a6: 4281 clrl %d1 <== NOT EXECUTED 462a8: 322b 0004 movew %a3@(4),%d1 <== NOT EXECUTED 462ac: 761b moveq #27,%d3 <== NOT EXECUTED 462ae: e7a9 lsll %d3,%d1 <== NOT EXECUTED 462b0: 08c0 0010 bset #16,%d0 <== NOT EXECUTED 462b4: 8081 orl %d1,%d0 <== NOT EXECUTED 462b6: 326e fff2 moveaw %fp@(-14),%a1 <== NOT EXECUTED local_table[ index ] = NULL; } _ISR_Disable( level ); old_tables = information->object_blocks; 462ba: 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( 462be: 4281 clrl %d1 <== NOT EXECUTED 462c0: 3209 movew %a1,%d1 <== NOT EXECUTED 462c2: 8081 orl %d1,%d0 <== NOT EXECUTED 462c4: 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; 462c8: 3749 000e movew %a1,%a3@(14) <== NOT EXECUTED _ISR_Disable( level ); old_tables = information->object_blocks; information->object_blocks = object_blocks; 462cc: 274c 0030 movel %a4,%a3@(48) <== NOT EXECUTED information->inactive_per_block = inactive_per_block; 462d0: 2746 002c movel %d6,%a3@(44) <== NOT EXECUTED information->local_table = local_table; 462d4: 274d 001a movel %a5,%a3@(26) <== NOT EXECUTED information->the_class, _Objects_Local_node, information->maximum ); _ISR_Enable( level ); 462d8: 46c2 movew %d2,%sr <== NOT EXECUTED if ( old_tables ) 462da: 4a88 tstl %a0 <== NOT EXECUTED 462dc: 670a beqs 462e8 <_Objects_Extend_information+0x16c> <== NOT EXECUTED _Workspace_Free( old_tables ); 462de: 2f08 movel %a0,%sp@- <== NOT EXECUTED 462e0: 4eb9 0004 7e94 jsr 47e94 <_Workspace_Free> <== NOT EXECUTED 462e6: 588f addql #4,%sp <== NOT EXECUTED 462e8: 202b 0016 movel %a3@(22),%d0 <== NOT EXECUTED 462ec: 41eb 0012 lea %a3@(18),%a0 <== NOT EXECUTED 462f0: 4c10 0800 mulsl %a0@,%d0 <== NOT EXECUTED 462f4: 2405 movel %d5,%d2 <== NOT EXECUTED 462f6: e58a lsll #2,%d2 <== NOT EXECUTED /* * Allocate the name table, and the objects */ if ( information->auto_extend ) { 462f8: 4a2b 0010 tstb %a3@(16) <== NOT EXECUTED 462fc: 6720 beqs 4631e <_Objects_Extend_information+0x1a2> <== NOT EXECUTED information->object_blocks[ block ] = 462fe: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46300: 246b 0030 moveal %a3@(48),%a2 <== NOT EXECUTED 46304: 4eb9 0004 7eac jsr 47eac <_Workspace_Allocate> <== NOT EXECUTED _Workspace_Allocate( (information->allocation_size * information->size) ); if ( !information->object_blocks[ block ] ) 4630a: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED /* * Allocate the name table, and the objects */ if ( information->auto_extend ) { information->object_blocks[ block ] = 4630e: d5c2 addal %d2,%a2 <== NOT EXECUTED 46310: 2480 movel %d0,%a2@ <== NOT EXECUTED _Workspace_Allocate( (information->allocation_size * information->size) ); if ( !information->object_blocks[ block ] ) 46312: 588f addql #4,%sp <== NOT EXECUTED 46314: 4ab0 2800 tstl %a0@(00000000,%d2:l) <== NOT EXECUTED 46318: 6616 bnes 46330 <_Objects_Extend_information+0x1b4> <== NOT EXECUTED 4631a: 6000 00a2 braw 463be <_Objects_Extend_information+0x242> <== NOT EXECUTED return; } else { information->object_blocks[ block ] = 4631e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46320: 246b 0030 moveal %a3@(48),%a2 <== NOT EXECUTED 46324: 4eb9 0004 7ec4 jsr 47ec4 <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED 4632a: d5c2 addal %d2,%a2 <== NOT EXECUTED 4632c: 588f addql #4,%sp <== NOT EXECUTED 4632e: 2480 movel %d0,%a2@ <== NOT EXECUTED /* * Initialize objects .. add to a local chain first. */ _Chain_Initialize( 46330: 2f2b 0016 movel %a3@(22),%sp@- <== NOT EXECUTED 46334: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED 46338: 2605 movel %d5,%d3 <== NOT EXECUTED 4633a: 2f2b 0012 movel %a3@(18),%sp@- <== NOT EXECUTED 4633e: e58b lsll #2,%d3 <== NOT EXECUTED 46340: 2f30 3800 movel %a0@(00000000,%d3:l),%sp@- <== NOT EXECUTED 46344: 200e movel %fp,%d0 <== NOT EXECUTED 46346: 0680 ffff fff4 addil #-12,%d0 <== NOT EXECUTED 4634c: 2f00 movel %d0,%sp@- <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 4634e: 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 ) { 46350: 2a00 movel %d0,%d5 <== NOT EXECUTED /* * Initialize objects .. add to a local chain first. */ _Chain_Initialize( 46352: 4eb9 0004 a220 jsr 4a220 <_Chain_Initialize> <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 46358: 280b movel %a3,%d4 <== NOT EXECUTED 4635a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 46360: 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 ) { 46366: 49f9 0004 a1ec lea 4a1ec <_Chain_Get>,%a4 <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 4636c: 45f9 0004 5964 lea 45964 <_Chain_Append>,%a2 <== NOT EXECUTED 46372: 6026 bras 4639a <_Objects_Extend_information+0x21e> <== NOT EXECUTED index = index_base; while ( (the_object = (Objects_Control *) _Chain_Get( &Inactive ) ) != NULL ) { the_object->id = _Objects_Build_id( 46374: 2013 movel %a3@,%d0 <== NOT EXECUTED 46376: 7218 moveq #24,%d1 <== NOT EXECUTED 46378: e3a8 lsll %d1,%d0 <== NOT EXECUTED 4637a: 4281 clrl %d1 <== NOT EXECUTED 4637c: 322b 0004 movew %a3@(4),%d1 <== NOT EXECUTED 46380: 7c1b moveq #27,%d6 <== NOT EXECUTED 46382: eda9 lsll %d6,%d1 <== NOT EXECUTED 46384: 08c0 0010 bset #16,%d0 <== NOT EXECUTED 46388: 8081 orl %d1,%d0 <== NOT EXECUTED 4638a: 8082 orl %d2,%d0 <== NOT EXECUTED 4638c: 2140 0008 movel %d0,%a0@(8) <== NOT EXECUTED index ); _Chain_Append( &information->Inactive, &the_object->Node ); index++; 46390: 5282 addql #1,%d2 <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 46392: 2f08 movel %a0,%sp@- <== NOT EXECUTED 46394: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46396: 4e92 jsr %a2@ <== NOT EXECUTED index++; 46398: 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 ) { 4639a: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4639c: 4e94 jsr %a4@ <== NOT EXECUTED 4639e: 588f addql #4,%sp <== NOT EXECUTED 463a0: 2040 moveal %d0,%a0 <== NOT EXECUTED 463a2: 4a80 tstl %d0 <== NOT EXECUTED 463a4: 66ce bnes 46374 <_Objects_Extend_information+0x1f8> <== NOT EXECUTED _Chain_Append( &information->Inactive, &the_object->Node ); index++; } information->inactive_per_block[ block ] = information->allocation_size; 463a6: 206b 002c moveal %a3@(44),%a0 <== NOT EXECUTED 463aa: 43eb 0012 lea %a3@(18),%a1 <== NOT EXECUTED 463ae: 2191 3800 movel %a1@,%a0@(00000000,%d3:l) <== NOT EXECUTED information->inactive += information->allocation_size; 463b2: 302b 002a movew %a3@(42),%d0 <== NOT EXECUTED 463b6: d0ab 0012 addl %a3@(18),%d0 <== NOT EXECUTED 463ba: 3740 002a movew %d0,%a3@(42) <== NOT EXECUTED } 463be: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 463c4: 4e5e unlk %fp <== NOT EXECUTED 463c6: 4e75 rts 000463c8 <_Objects_Free>: void _Objects_Free( Objects_Information *information, Objects_Control *the_object ) { 463c8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 463cc: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 463d0: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 463d4: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED uint32_t allocation_size = information->allocation_size; _Chain_Append( &information->Inactive, &the_object->Node ); 463d8: 2f0b movel %a3,%sp@- <== NOT EXECUTED void _Objects_Free( Objects_Information *information, Objects_Control *the_object ) { uint32_t allocation_size = information->allocation_size; 463da: 242a 0012 movel %a2@(18),%d2 <== NOT EXECUTED _Chain_Append( &information->Inactive, &the_object->Node ); 463de: 486a 001e pea %a2@(30) <== NOT EXECUTED 463e2: 4eb9 0004 5964 jsr 45964 <_Chain_Append> <== NOT EXECUTED if ( information->auto_extend ) { 463e8: 508f addql #8,%sp <== NOT EXECUTED 463ea: 4a2a 0010 tstb %a2@(16) <== NOT EXECUTED 463ee: 6752 beqs 46442 <_Objects_Free+0x7a> <== NOT EXECUTED uint32_t block; block = 463f0: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 463f4: 222a 0006 movel %a2@(6),%d1 <== NOT EXECUTED 463f8: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 463fe: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 46404: 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 ]++; 46406: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED 4640a: 4c6a 0000 0012 remul %a2@(18),%d0,%d0 <== NOT EXECUTED 46410: e588 lsll #2,%d0 <== NOT EXECUTED 46412: d1c0 addal %d0,%a0 <== NOT EXECUTED information->inactive++; 46414: 302a 002a movew %a2@(42),%d0 <== NOT EXECUTED 46418: 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 ) ) ) { 4641a: 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 ]++; 4641c: 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 ) ) ) { 4641e: 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++; 46420: 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 ) ) ) { 46424: d282 addl %d2,%d1 <== NOT EXECUTED 46426: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 4642c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4642e: 6412 bccs 46442 <_Objects_Free+0x7a> <== NOT EXECUTED _Objects_Shrink_information( information ); 46430: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } } 46434: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4643a: 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 ); 4643c: 4ef9 0004 6704 jmp 46704 <_Objects_Shrink_information> <== NOT EXECUTED } } } 46442: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 46448: 4e5e unlk %fp <== NOT EXECUTED 4644a: 4e75 rts 00046528 <_Objects_Get>: Objects_Control *_Objects_Get( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 46528: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4652c: 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; 46530: 7201 moveq #1,%d1 <== NOT EXECUTED 46532: 92a8 0006 subl %a0@(6),%d1 <== NOT EXECUTED Objects_Control *_Objects_Get( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 46536: 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; 46538: d2ae 000c addl %fp@(12),%d1 <== NOT EXECUTED Objects_Control *_Objects_Get( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 4653c: 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 ) { 46540: 4280 clrl %d0 <== NOT EXECUTED Objects_Control *_Objects_Get( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 46542: 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 ) { 46544: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 46548: b081 cmpl %d1,%d0 <== NOT EXECUTED 4654a: 6524 bcss 46570 <_Objects_Get+0x48> <== NOT EXECUTED 4654c: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46552: 5280 addql #1,%d0 <== NOT EXECUTED 46554: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); if ( (the_object = information->local_table[ index ]) != NULL ) { 4655a: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 4655e: 2430 1c00 movel %a0@(00000000,%d1:l:4),%d2 <== NOT EXECUTED 46562: 6704 beqs 46568 <_Objects_Get+0x40> <== NOT EXECUTED *location = OBJECTS_LOCAL; 46564: 4292 clrl %a2@ <== NOT EXECUTED 46566: 600e bras 46576 <_Objects_Get+0x4e> <== NOT EXECUTED /* * Valid Id for this API, Class and Node but the object has not * been allocated yet. */ _Thread_Enable_dispatch(); 46568: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 4656e: 6002 bras 46572 <_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; 46570: 4282 clrl %d2 <== NOT EXECUTED 46572: 7001 moveq #1,%d0 <== NOT EXECUTED 46574: 2480 movel %d0,%a2@ <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 46576: 2002 movel %d2,%d0 <== NOT EXECUTED 46578: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4657c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46580: 4e5e unlk %fp <== NOT EXECUTED 46582: 4e75 rts 00046478 <_Objects_Get_information>: Objects_Information *_Objects_Get_information( Objects_APIs the_api, uint32_t the_class ) { 46478: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4647c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4647e: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 46482: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46484: 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 ) 46488: 2002 movel %d2,%d0 <== NOT EXECUTED 4648a: 5380 subql #1,%d0 <== NOT EXECUTED 4648c: 7203 moveq #3,%d1 <== NOT EXECUTED 4648e: b280 cmpl %d0,%d1 <== NOT EXECUTED 46490: 6530 bcss 464c2 <_Objects_Get_information+0x4a> <== NOT EXECUTED 46492: 603e bras 464d2 <_Objects_Get_information+0x5a> <== NOT EXECUTED return NULL; if ( !the_class ) return NULL; the_class_api_maximum = _Objects_API_maximum_class( the_api ); 46494: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46496: 4eb9 0004 a5b4 jsr 4a5b4 <_Objects_API_maximum_class> <== NOT EXECUTED if ( the_class_api_maximum < 0 || 4649c: 588f addql #4,%sp <== NOT EXECUTED 4649e: 4a80 tstl %d0 <== NOT EXECUTED 464a0: 6d20 blts 464c2 <_Objects_Get_information+0x4a> <== NOT EXECUTED 464a2: b083 cmpl %d3,%d0 <== NOT EXECUTED 464a4: 651c bcss 464c2 <_Objects_Get_information+0x4a> <== NOT EXECUTED the_class > (uint32_t) the_class_api_maximum ) return NULL; if ( !_Objects_Information_table[ the_api ] ) 464a6: 41f9 0005 7e34 lea 57e34 <_Objects_Information_table>,%a0 <== NOT EXECUTED 464ac: 2070 2c00 moveal %a0@(00000000,%d2:l:4),%a0 <== NOT EXECUTED 464b0: 4a88 tstl %a0 <== NOT EXECUTED 464b2: 670e beqs 464c2 <_Objects_Get_information+0x4a> <== NOT EXECUTED return NULL; info = _Objects_Information_table[ the_api ][ the_class ]; 464b4: 2070 3c00 moveal %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED if ( !info ) 464b8: 4a88 tstl %a0 <== NOT EXECUTED 464ba: 6708 beqs 464c4 <_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 ) 464bc: 4a68 000e tstw %a0@(14) <== NOT EXECUTED 464c0: 6602 bnes 464c4 <_Objects_Get_information+0x4c> <== NOT EXECUTED 464c2: 91c8 subal %a0,%a0 <== NOT EXECUTED return NULL; #endif return info; } 464c4: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 464c8: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 464cc: 4e5e unlk %fp <== NOT EXECUTED 464ce: 2008 movel %a0,%d0 <== NOT EXECUTED 464d0: 4e75 rts <== NOT EXECUTED int the_class_api_maximum; if ( !_Objects_Is_api_valid( the_api ) ) return NULL; if ( !the_class ) 464d2: 4a83 tstl %d3 <== NOT EXECUTED 464d4: 67ec beqs 464c2 <_Objects_Get_information+0x4a> <== NOT EXECUTED 464d6: 60bc bras 46494 <_Objects_Get_information+0x1c> <== NOT EXECUTED 0004644c <_Objects_Get_information_id>: #include Objects_Information *_Objects_Get_information_id( Objects_Id id ) { 4644c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46450: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 46454: 2f02 movel %d2,%sp@- <== NOT EXECUTED return _Objects_Get_information( 46456: 2200 movel %d0,%d1 <== NOT EXECUTED 46458: 741b moveq #27,%d2 <== NOT EXECUTED 4645a: e4a9 lsrl %d2,%d1 <== NOT EXECUTED 4645c: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4645e: 7218 moveq #24,%d1 <== NOT EXECUTED 46460: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 46462: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 46466: c480 andl %d0,%d2 <== NOT EXECUTED 46468: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4646a: 4eb9 0004 6478 jsr 46478 <_Objects_Get_information> <== NOT EXECUTED _Objects_Get_API( id ), _Objects_Get_class( id ) ); } 46470: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 46474: 4e5e unlk %fp <== NOT EXECUTED 46476: 4e75 rts 000464d8 <_Objects_Get_isr_disable>: Objects_Information *information, Objects_Id id, Objects_Locations *location, ISR_Level *level_p ) { 464d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 464dc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 464de: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 464e2: 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; 464e6: 4282 clrl %d2 <== NOT EXECUTED /* This should work but doesn't always :( */ /* index = (uint16_t ) id; */ #endif _ISR_Disable( level ); 464e8: 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; 464ee: 342e 000e movew %fp@(14),%d2 <== NOT EXECUTED /* This should work but doesn't always :( */ /* index = (uint16_t ) id; */ #endif _ISR_Disable( level ); 464f2: 40c1 movew %sr,%d1 <== NOT EXECUTED 464f4: 8081 orl %d1,%d0 <== NOT EXECUTED 464f6: 46c0 movew %d0,%sr <== NOT EXECUTED if ( information->maximum >= index ) { 464f8: 4280 clrl %d0 <== NOT EXECUTED 464fa: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 464fe: b480 cmpl %d0,%d2 <== NOT EXECUTED 46500: 6218 bhis 4651a <_Objects_Get_isr_disable+0x42> <== NOT EXECUTED if ( (the_object = information->local_table[ index ]) != NULL ) { 46502: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 46506: 2030 2c00 movel %a0@(00000000,%d2:l:4),%d0 <== NOT EXECUTED 4650a: 670a beqs 46516 <_Objects_Get_isr_disable+0x3e> <== NOT EXECUTED *location = OBJECTS_LOCAL; *level_p = level; 4650c: 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; 46510: 4291 clrl %a1@ <== NOT EXECUTED *level_p = level; 46512: 2081 movel %d1,%a0@ <== NOT EXECUTED 46514: 600c bras 46522 <_Objects_Get_isr_disable+0x4a> <== NOT EXECUTED return the_object; } _ISR_Enable( level ); 46516: 46c1 movew %d1,%sr <== NOT EXECUTED 46518: 6004 bras 4651e <_Objects_Get_isr_disable+0x46> <== NOT EXECUTED *location = OBJECTS_ERROR; return NULL; } _ISR_Enable( level ); 4651a: 46c1 movew %d1,%sr <== NOT EXECUTED *location = OBJECTS_ERROR; 4651c: 4280 clrl %d0 <== NOT EXECUTED 4651e: 7201 moveq #1,%d1 <== NOT EXECUTED 46520: 2281 movel %d1,%a1@ <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 46522: 241f movel %sp@+,%d2 <== NOT EXECUTED 46524: 4e5e unlk %fp <== NOT EXECUTED 46526: 4e75 rts 00050230 <_Objects_Get_name_as_string>: char *_Objects_Get_name_as_string( Objects_Id id, size_t length, char *name ) { 50230: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 50234: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 50238: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 5023c: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 50240: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED char lname[5]; Objects_Control *the_object; Objects_Locations location; Objects_Id tmpId; if ( length == 0 ) 50244: 4a85 tstl %d5 <== NOT EXECUTED 50246: 6700 00c6 beqw 5030e <_Objects_Get_name_as_string+0xde> <== NOT EXECUTED return NULL; if ( name == NULL ) 5024a: 4a84 tstl %d4 <== NOT EXECUTED 5024c: 6700 00c2 beqw 50310 <_Objects_Get_name_as_string+0xe0> <== NOT EXECUTED return NULL; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 50250: 4a80 tstl %d0 <== NOT EXECUTED 50252: 6704 beqs 50258 <_Objects_Get_name_as_string+0x28> <== NOT EXECUTED 50254: 2400 movel %d0,%d2 <== NOT EXECUTED 50256: 600a bras 50262 <_Objects_Get_name_as_string+0x32> <== NOT EXECUTED 50258: 2079 0006 3ca2 moveal 63ca2 <_Thread_Executing>,%a0 <== NOT EXECUTED 5025e: 2428 0008 movel %a0@(8),%d2 <== NOT EXECUTED information = _Objects_Get_information_id( tmpId ); 50262: 2f02 movel %d2,%sp@- <== NOT EXECUTED 50264: 4eb9 0004 a008 jsr 4a008 <_Objects_Get_information_id> <== NOT EXECUTED if ( !information ) 5026a: 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 ); 5026c: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !information ) 5026e: 4a80 tstl %d0 <== NOT EXECUTED 50270: 6700 009c beqw 5030e <_Objects_Get_name_as_string+0xde> <== NOT EXECUTED return NULL; the_object = _Objects_Get( information, tmpId, &location ); 50274: 486e fffc pea %fp@(-4) <== NOT EXECUTED 50278: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5027a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5027c: 4eb9 0004 a0e4 jsr 4a0e4 <_Objects_Get> <== NOT EXECUTED switch ( location ) { 50282: 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 ); 50288: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 5028a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5028e: 667e bnes 5030e <_Objects_Get_name_as_string+0xde> <== NOT EXECUTED case OBJECTS_ERROR: return NULL; case OBJECTS_LOCAL: if ( information->is_string ) { 50290: 4a2a 0034 tstb %a2@(52) <== NOT EXECUTED 50294: 670c beqs 502a2 <_Objects_Get_name_as_string+0x72> <== NOT EXECUTED s = the_object->name.name_p; 50296: 2668 000c moveal %a0@(12),%a3 <== NOT EXECUTED lname[ 4 ] = '\0'; s = lname; } d = name; if ( s ) { 5029a: 4a8b tstl %a3 <== NOT EXECUTED 5029c: 6632 bnes 502d0 <_Objects_Get_name_as_string+0xa0> <== NOT EXECUTED 5029e: 2444 moveal %d4,%a2 <== NOT EXECUTED 502a0: 6062 bras 50304 <_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; 502a2: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED lname[ 0 ] = (u32_name >> 24) & 0xff; 502a6: 7418 moveq #24,%d2 <== NOT EXECUTED 502a8: 2200 movel %d0,%d1 <== NOT EXECUTED 502aa: e4a9 lsrl %d2,%d1 <== NOT EXECUTED lname[ 1 ] = (u32_name >> 16) & 0xff; 502ac: 2400 movel %d0,%d2 <== NOT EXECUTED lname[ 2 ] = (u32_name >> 8) & 0xff; 502ae: 2600 movel %d0,%d3 <== NOT EXECUTED lname[ 3 ] = (u32_name >> 0) & 0xff; 502b0: 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; 502b4: 4242 clrw %d2 <== NOT EXECUTED 502b6: 4842 swap %d2 <== NOT EXECUTED lname[ 2 ] = (u32_name >> 8) & 0xff; 502b8: e08b lsrl #8,%d3 <== NOT EXECUTED lname[ 3 ] = (u32_name >> 0) & 0xff; lname[ 4 ] = '\0'; 502ba: 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; 502bc: 1d41 fff7 moveb %d1,%fp@(-9) <== NOT EXECUTED lname[ 1 ] = (u32_name >> 16) & 0xff; 502c0: 1d42 fff8 moveb %d2,%fp@(-8) <== NOT EXECUTED lname[ 2 ] = (u32_name >> 8) & 0xff; 502c4: 1d43 fff9 moveb %d3,%fp@(-7) <== NOT EXECUTED lname[ 3 ] = (u32_name >> 0) & 0xff; lname[ 4 ] = '\0'; 502c8: 1d40 fffb moveb %d0,%fp@(-5) <== NOT EXECUTED 502cc: 47ee fff7 lea %fp@(-9),%a3 <== NOT EXECUTED s = lname; } d = name; if ( s ) { for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) { 502d0: 2405 movel %d5,%d2 <== NOT EXECUTED 502d2: 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'; 502d4: 2444 moveal %d4,%a2 <== NOT EXECUTED 502d6: 93c9 subal %a1,%a1 <== NOT EXECUTED 502d8: 601a bras 502f4 <_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 : '*'; 502da: 2079 0006 1e78 moveal 61e78 <__ctype_ptr>,%a0 <== NOT EXECUTED 502e0: 1030 0800 moveb %a0@(00000000,%d0:l),%d0 <== NOT EXECUTED 502e4: 49c0 extbl %d0 <== NOT EXECUTED 502e6: 0280 0000 0097 andil #151,%d0 <== NOT EXECUTED 502ec: 6602 bnes 502f0 <_Objects_Get_name_as_string+0xc0> <== NOT EXECUTED 502ee: 722a moveq #42,%d1 <== NOT EXECUTED 502f0: 14c1 moveb %d1,%a2@+ <== NOT EXECUTED s = lname; } d = name; if ( s ) { for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) { 502f2: 5289 addql #1,%a1 <== NOT EXECUTED 502f4: b489 cmpl %a1,%d2 <== NOT EXECUTED 502f6: 630c blss 50304 <_Objects_Get_name_as_string+0xd4> <== NOT EXECUTED 502f8: 1233 9800 moveb %a3@(00000000,%a1:l),%d1 <== NOT EXECUTED *d = (isprint(*s)) ? *s : '*'; 502fc: 1001 moveb %d1,%d0 <== NOT EXECUTED 502fe: 49c0 extbl %d0 <== NOT EXECUTED s = lname; } d = name; if ( s ) { for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) { 50300: 4a01 tstb %d1 <== NOT EXECUTED 50302: 66d6 bnes 502da <_Objects_Get_name_as_string+0xaa> <== NOT EXECUTED *d = (isprint(*s)) ? *s : '*'; } } *d = '\0'; 50304: 4212 clrb %a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 50306: 4eb9 0004 a936 jsr 4a936 <_Thread_Enable_dispatch> <== NOT EXECUTED 5030c: 6002 bras 50310 <_Objects_Get_name_as_string+0xe0> <== NOT EXECUTED return name; 5030e: 4284 clrl %d4 <== NOT EXECUTED } return NULL; /* unreachable path */ } 50310: 2004 movel %d4,%d0 <== NOT EXECUTED 50312: 4cee 0c3c ffdc moveml %fp@(-36),%d2-%d5/%a2-%a3 <== NOT EXECUTED 50318: 4e5e unlk %fp <== NOT EXECUTED 5031a: 4e75 rts 00052bd4 <_Objects_Get_next>: Objects_Information *information, Objects_Id id, Objects_Locations *location_p, Objects_Id *next_id_p ) { 52bd4: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 52bd8: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 52bdc: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 52be0: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 52be4: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 52be8: 2a6e 0014 moveal %fp@(20),%a5 <== NOT EXECUTED Objects_Control *object; Objects_Id next_id; if (_Objects_Get_index(id) == OBJECTS_ID_INITIAL_INDEX) 52bec: 4a41 tstw %d1 <== NOT EXECUTED 52bee: 6704 beqs 52bf4 <_Objects_Get_next+0x20> <== NOT EXECUTED 52bf0: 2401 movel %d1,%d2 <== NOT EXECUTED 52bf2: 6004 bras 52bf8 <_Objects_Get_next+0x24> <== NOT EXECUTED next_id = information->minimum_id; 52bf4: 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); 52bf8: 49f9 0004 a0e4 lea 4a0e4 <_Objects_Get>,%a4 <== NOT EXECUTED else next_id = id; do { /* walked off end of list? */ if (_Objects_Get_index(next_id) > information->maximum) 52bfe: 2202 movel %d2,%d1 <== NOT EXECUTED 52c00: 4280 clrl %d0 <== NOT EXECUTED 52c02: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 52c08: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 52c0c: b081 cmpl %d1,%d0 <== NOT EXECUTED 52c0e: 640c bccs 52c1c <_Objects_Get_next+0x48> <== NOT EXECUTED { *location_p = OBJECTS_ERROR; 52c10: 7401 moveq #1,%d2 <== NOT EXECUTED *next_id_p = next_id; return object; final: *next_id_p = OBJECTS_ID_FINAL; 52c12: 72ff moveq #-1,%d1 <== NOT EXECUTED do { /* walked off end of list? */ if (_Objects_Get_index(next_id) > information->maximum) { *location_p = OBJECTS_ERROR; 52c14: 2482 movel %d2,%a2@ <== NOT EXECUTED *next_id_p = next_id; return object; final: *next_id_p = OBJECTS_ID_FINAL; 52c16: 4280 clrl %d0 <== NOT EXECUTED 52c18: 2a81 movel %d1,%a5@ <== NOT EXECUTED 52c1a: 6016 bras 52c32 <_Objects_Get_next+0x5e> <== NOT EXECUTED *location_p = OBJECTS_ERROR; goto final; } /* try to grab one */ object = _Objects_Get(information, next_id, location_p); 52c1c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 52c1e: 2f02 movel %d2,%sp@- <== NOT EXECUTED next_id++; 52c20: 5282 addql #1,%d2 <== NOT EXECUTED *location_p = OBJECTS_ERROR; goto final; } /* try to grab one */ object = _Objects_Get(information, next_id, location_p); 52c22: 2f0b movel %a3,%sp@- <== NOT EXECUTED 52c24: 4e94 jsr %a4@ <== NOT EXECUTED next_id++; } while (*location_p != OBJECTS_LOCAL); 52c26: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 52c2c: 4a92 tstl %a2@ <== NOT EXECUTED 52c2e: 66ce bnes 52bfe <_Objects_Get_next+0x2a> <== NOT EXECUTED *next_id_p = next_id; 52c30: 2a82 movel %d2,%a5@ <== NOT EXECUTED return object; final: *next_id_p = OBJECTS_ID_FINAL; return 0; } 52c32: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 52c38: 4e5e unlk %fp <== NOT EXECUTED 52c3a: 4e75 rts 00051794 <_Objects_Get_no_protection>: Objects_Control *_Objects_Get_no_protection( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 51794: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 51798: 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; 5179c: 7201 moveq #1,%d1 <== NOT EXECUTED 5179e: 92a8 0006 subl %a0@(6),%d1 <== NOT EXECUTED 517a2: d2ae 000c addl %fp@(12),%d1 <== NOT EXECUTED Objects_Control *_Objects_Get_no_protection( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 517a6: 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 ) { 517aa: 4280 clrl %d0 <== NOT EXECUTED 517ac: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 517b0: b280 cmpl %d0,%d1 <== NOT EXECUTED 517b2: 620e bhis 517c2 <_Objects_Get_no_protection+0x2e> <== NOT EXECUTED if ( (the_object = information->local_table[ index ]) != NULL ) { 517b4: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 517b8: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 517bc: 6704 beqs 517c2 <_Objects_Get_no_protection+0x2e> <== NOT EXECUTED *location = OBJECTS_LOCAL; 517be: 4291 clrl %a1@ <== NOT EXECUTED 517c0: 6006 bras 517c8 <_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; 517c2: 7201 moveq #1,%d1 <== NOT EXECUTED 517c4: 4280 clrl %d0 <== NOT EXECUTED 517c6: 2281 movel %d1,%a1@ <== NOT EXECUTED return NULL; } 517c8: 4e5e unlk %fp <== NOT EXECUTED 517ca: 4e75 rts 000466fc <_Objects_Handler_initialization>: uint32_t maximum_nodes, uint32_t maximum_global_objects ) #else void _Objects_Handler_initialization(void) #endif { 466fc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED node, maximum_nodes, maximum_global_objects ); #endif } 46700: 4e5e unlk %fp <== NOT EXECUTED 46702: 4e75 rts 0004725c <_Objects_Id_to_name>: Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( Objects_Id id, Objects_Name *name ) { 4725c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 47260: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 47264: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 47268: 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 ) 4726c: 4a8a tstl %a2 <== NOT EXECUTED 4726e: 6604 bnes 47274 <_Objects_Id_to_name+0x18> <== NOT EXECUTED 47270: 7001 moveq #1,%d0 <== NOT EXECUTED 47272: 6068 bras 472dc <_Objects_Id_to_name+0x80> <== NOT EXECUTED return OBJECTS_INVALID_NAME; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 47274: 4a80 tstl %d0 <== NOT EXECUTED 47276: 6704 beqs 4727c <_Objects_Id_to_name+0x20> <== NOT EXECUTED 47278: 2400 movel %d0,%d2 <== NOT EXECUTED 4727a: 600a bras 47286 <_Objects_Id_to_name+0x2a> <== NOT EXECUTED 4727c: 2079 0005 a022 moveal 5a022 <_Thread_Executing>,%a0 <== NOT EXECUTED 47282: 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); 47286: 7018 moveq #24,%d0 <== NOT EXECUTED 47288: 2202 movel %d2,%d1 <== NOT EXECUTED 4728a: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 4728c: 7607 moveq #7,%d3 <== NOT EXECUTED 4728e: 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 ) 47290: 2001 movel %d1,%d0 <== NOT EXECUTED 47292: 5380 subql #1,%d0 <== NOT EXECUTED 47294: 163c 0003 moveb #3,%d3 <== NOT EXECUTED 47298: b680 cmpl %d0,%d3 <== NOT EXECUTED 4729a: 653e bcss 472da <_Objects_Id_to_name+0x7e> <== NOT EXECUTED 4729c: 6048 bras 472e6 <_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 ]; 4729e: 2002 movel %d2,%d0 <== NOT EXECUTED 472a0: 721b moveq #27,%d1 <== NOT EXECUTED 472a2: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 472a4: 2070 0c00 moveal %a0@(00000000,%d0:l:4),%a0 <== NOT EXECUTED if ( !information ) 472a8: 4a88 tstl %a0 <== NOT EXECUTED 472aa: 672e beqs 472da <_Objects_Id_to_name+0x7e> <== NOT EXECUTED return OBJECTS_INVALID_ID; if ( information->is_string ) 472ac: 4a28 0034 tstb %a0@(52) <== NOT EXECUTED 472b0: 6628 bnes 472da <_Objects_Id_to_name+0x7e> <== NOT EXECUTED return OBJECTS_INVALID_ID; the_object = _Objects_Get( information, tmpId, &ignored_location ); 472b2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 472b6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 472b8: 2f08 movel %a0,%sp@- <== NOT EXECUTED 472ba: 4eb9 0004 7200 jsr 47200 <_Objects_Get> <== NOT EXECUTED if ( !the_object ) 472c0: 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 ); 472c6: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !the_object ) 472c8: 4a80 tstl %d0 <== NOT EXECUTED 472ca: 670e beqs 472da <_Objects_Id_to_name+0x7e> <== NOT EXECUTED return OBJECTS_INVALID_ID; *name = the_object->name; 472cc: 24a8 000c movel %a0@(12),%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 472d0: 4eb9 0004 7a7e jsr 47a7e <_Thread_Enable_dispatch> <== NOT EXECUTED 472d6: 4280 clrl %d0 <== NOT EXECUTED 472d8: 6002 bras 472dc <_Objects_Id_to_name+0x80> <== NOT EXECUTED return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL; 472da: 7003 moveq #3,%d0 <== NOT EXECUTED } 472dc: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 472e2: 4e5e unlk %fp <== NOT EXECUTED 472e4: 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 ] ) 472e6: 41f9 0005 9f1c lea 59f1c <_Objects_Information_table>,%a0 <== NOT EXECUTED 472ec: 2070 1c00 moveal %a0@(00000000,%d1:l:4),%a0 <== NOT EXECUTED 472f0: 4a88 tstl %a0 <== NOT EXECUTED 472f2: 66aa bnes 4729e <_Objects_Id_to_name+0x42> <== NOT EXECUTED 472f4: 60e4 bras 472da <_Objects_Id_to_name+0x7e> <== NOT EXECUTED ... 00046584 <_Objects_Initialize_information>: , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 46584: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 46588: 48d7 007c moveml %d2-%d6,%sp@ <== NOT EXECUTED 4658c: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 46590: 282e 0014 movel %fp@(20),%d4 <== NOT EXECUTED 46594: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED /* * Set the entry in the object information table. */ _Objects_Information_table[ the_api ][ the_class ] = information; 46598: 41f9 0005 7e34 lea 57e34 <_Objects_Information_table>,%a0 <== NOT EXECUTED 4659e: 2070 0c00 moveal %a0@(00000000,%d0:l:4),%a0 <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 465a2: 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; 465a6: 2c04 movel %d4,%d6 <== NOT EXECUTED 465a8: 0886 001f bclr #31,%d6 <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 465ac: 7218 moveq #24,%d1 <== NOT EXECUTED uint32_t name_length; #if defined(RTEMS_MULTIPROCESSING) uint32_t index; #endif information->the_api = the_api; 465ae: 2280 movel %d0,%a1@ <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 465b0: e3a8 lsll %d1,%d0 <== NOT EXECUTED 465b2: 4a86 tstl %d6 <== NOT EXECUTED 465b4: 56c3 sne %d3 <== NOT EXECUTED 465b6: 123c 001b moveb #27,%d1 <== NOT EXECUTED /* * Set the entry in the object information table. */ _Objects_Information_table[ the_api ][ the_class ] = information; 465ba: 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; 465be: 3342 0004 movew %d2,%a1@(4) <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 465c2: 2a2e 0020 movel %fp@(32),%d5 <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 465c6: e3aa lsll %d1,%d2 <== NOT EXECUTED 465c8: 08c0 0010 bset #16,%d0 <== NOT EXECUTED 465cc: 49c3 extbl %d3 <== NOT EXECUTED 465ce: 8082 orl %d2,%d0 <== NOT EXECUTED 465d0: 4483 negl %d3 <== NOT EXECUTED 465d2: 8083 orl %d3,%d0 <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 465d4: 4281 clrl %d1 <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 465d6: 2340 0006 movel %d0,%a1@(6) <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 465da: 322e 001a movew %fp@(26),%d1 <== NOT EXECUTED information->local_table = 0; information->inactive_per_block = 0; information->object_blocks = 0; information->inactive = 0; 465de: 4240 clrw %d0 <== NOT EXECUTED /* * Set the size of the object */ information->size = size; 465e0: 2341 0016 movel %d1,%a1@(22) <== NOT EXECUTED information->local_table = 0; information->inactive_per_block = 0; information->object_blocks = 0; information->inactive = 0; 465e4: 3340 002a movew %d0,%a1@(42) <== NOT EXECUTED /* * Are we operating in unlimited, or auto-extend mode */ information->auto_extend = 465e8: d884 addl %d4,%d4 <== NOT EXECUTED 465ea: 9984 subxl %d4,%d4 <== NOT EXECUTED 465ec: 4484 negl %d4 <== NOT EXECUTED uint32_t index; #endif information->the_api = the_api; information->the_class = the_class; information->is_string = is_string; 465ee: 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) ) 465f4: 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; 465f6: 223c 0005 762c movel #357932,%d1 <== NOT EXECUTED /* * Are we operating in unlimited, or auto-extend mode */ information->auto_extend = 465fc: 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; 46600: 42a9 002c clrl %a1@(44) <== NOT EXECUTED * Calculate the maximum name length */ name_length = maximum_name_length; if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) ) 46604: 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; 46606: 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; 4660a: 42a9 0030 clrl %a1@(48) <== NOT EXECUTED /* * The allocation unit is the maximum value */ information->allocation_size = maximum; 4660e: 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) ) 46612: 4a80 tstl %d0 <== NOT EXECUTED 46614: 6604 bnes 4661a <_Objects_Initialize_information+0x96> <== NOT EXECUTED 46616: 2005 movel %d5,%d0 <== NOT EXECUTED 46618: 6008 bras 46622 <_Objects_Initialize_information+0x9e> <== NOT EXECUTED name_length = (name_length + OBJECTS_NAME_ALIGNMENT) & 4661a: 2005 movel %d5,%d0 <== NOT EXECUTED 4661c: 5880 addql #4,%d0 <== NOT EXECUTED 4661e: 72fc moveq #-4,%d1 <== NOT EXECUTED 46620: c081 andl %d1,%d0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 46622: 41e9 0022 lea %a1@(34),%a0 <== NOT EXECUTED 46626: 2348 001e movel %a0,%a1@(30) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4662a: 41e9 001e lea %a1@(30),%a0 <== NOT EXECUTED ~(OBJECTS_NAME_ALIGNMENT-1); information->name_length = name_length; 4662e: 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; 46632: 42a9 0022 clrl %a1@(34) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 46636: 2348 0026 movel %a0,%a1@(38) <== NOT EXECUTED /* * Initialize objects .. if there are any */ if ( maximum ) { 4663a: 4a86 tstl %d6 <== NOT EXECUTED 4663c: 6716 beqs 46654 <_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 ); 4663e: 2d49 0008 movel %a1,%fp@(8) <== NOT EXECUTED _Chain_Initialize_empty( &information->global_table[ index ] ); } else information->global_table = NULL; #endif } 46642: 4cd7 007c moveml %sp@,%d2-%d6 <== NOT EXECUTED 46646: 4e5e unlk %fp <== NOT EXECUTED /* * Reset the maximum value. It will be updated when the information is * extended. */ information->maximum = 0; 46648: 4240 clrw %d0 <== NOT EXECUTED 4664a: 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 ); 4664e: 4ef9 0004 617c jmp 4617c <_Objects_Extend_information> <== NOT EXECUTED _Chain_Initialize_empty( &information->global_table[ index ] ); } else information->global_table = NULL; #endif } 46654: 4cd7 007c moveml %sp@,%d2-%d6 <== NOT EXECUTED 46658: 4e5e unlk %fp <== NOT EXECUTED 4665a: 4e75 rts 000500bc <_Objects_Name_to_id_string>: Objects_Name_or_id_lookup_errors _Objects_Name_to_id_string( Objects_Information *information, const char *name, Objects_Id *id ) { 500bc: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 500c0: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 500c4: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 500c8: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 500cc: 2a6e 0010 moveal %fp@(16),%a5 <== NOT EXECUTED uint32_t index; uint32_t name_length; /* ASSERT: information->is_string == TRUE */ if ( !id ) 500d0: 4a8d tstl %a5 <== NOT EXECUTED 500d2: 6604 bnes 500d8 <_Objects_Name_to_id_string+0x1c> <== NOT EXECUTED 500d4: 7002 moveq #2,%d0 <== NOT EXECUTED 500d6: 6050 bras 50128 <_Objects_Name_to_id_string+0x6c> <== NOT EXECUTED return OBJECTS_INVALID_ADDRESS; if ( !name ) 500d8: 4a84 tstl %d4 <== NOT EXECUTED 500da: 674a beqs 50126 <_Objects_Name_to_id_string+0x6a> <== NOT EXECUTED return OBJECTS_INVALID_NAME; if ( information->maximum != 0 ) { 500dc: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 500e0: 6744 beqs 50126 <_Objects_Name_to_id_string+0x6a> <== NOT EXECUTED name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 500e2: 4283 clrl %d3 <== NOT EXECUTED 500e4: 3600 movew %d0,%d3 <== NOT EXECUTED return OBJECTS_INVALID_ADDRESS; if ( !name ) return OBJECTS_INVALID_NAME; if ( information->maximum != 0 ) { 500e6: 7401 moveq #1,%d2 <== NOT EXECUTED continue; if ( !the_object->name.name_p ) continue; if (!strncmp( name, the_object->name.name_p, information->name_length)) { 500e8: 49f9 0005 2e1c lea 52e1c ,%a4 <== NOT EXECUTED 500ee: 6032 bras 50122 <_Objects_Name_to_id_string+0x66> <== NOT EXECUTED if ( information->maximum != 0 ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { the_object = information->local_table[ index ]; 500f0: 206b 001a moveal %a3@(26),%a0 <== NOT EXECUTED 500f4: 2470 2c00 moveal %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED if ( !the_object ) 500f8: 4a8a tstl %a2 <== NOT EXECUTED 500fa: 6724 beqs 50120 <_Objects_Name_to_id_string+0x64> <== NOT EXECUTED continue; if ( !the_object->name.name_p ) 500fc: 222a 000c movel %a2@(12),%d1 <== NOT EXECUTED 50100: 671e beqs 50120 <_Objects_Name_to_id_string+0x64> <== NOT EXECUTED continue; if (!strncmp( name, the_object->name.name_p, information->name_length)) { 50102: 4280 clrl %d0 <== NOT EXECUTED 50104: 302b 0036 movew %a3@(54),%d0 <== NOT EXECUTED 50108: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5010a: 2f01 movel %d1,%sp@- <== NOT EXECUTED 5010c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5010e: 4e94 jsr %a4@ <== NOT EXECUTED 50110: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 50116: 4a80 tstl %d0 <== NOT EXECUTED 50118: 6606 bnes 50120 <_Objects_Name_to_id_string+0x64> <== NOT EXECUTED *id = the_object->id; 5011a: 2aaa 0008 movel %a2@(8),%a5@ <== NOT EXECUTED 5011e: 6008 bras 50128 <_Objects_Name_to_id_string+0x6c> <== NOT EXECUTED return OBJECTS_INVALID_NAME; if ( information->maximum != 0 ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 50120: 5282 addql #1,%d2 <== NOT EXECUTED 50122: b682 cmpl %d2,%d3 <== NOT EXECUTED 50124: 64ca bccs 500f0 <_Objects_Name_to_id_string+0x34> <== NOT EXECUTED 50126: 7001 moveq #1,%d0 <== NOT EXECUTED } } } return OBJECTS_INVALID_NAME; } 50128: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 5012e: 4e5e unlk %fp <== NOT EXECUTED 50130: 4e75 rts <== NOT EXECUTED ... 0004668c <_Objects_Name_to_id_u32>: Objects_Information *information, uint32_t name, uint32_t node, Objects_Id *id ) { 4668c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 46690: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 46694: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 46698: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4669c: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 466a0: 226e 0014 moveal %fp@(20),%a1 <== NOT EXECUTED Objects_Name name_for_mp; #endif /* ASSERT: information->is_string == FALSE */ if ( !id ) 466a4: 4a89 tstl %a1 <== NOT EXECUTED 466a6: 6604 bnes 466ac <_Objects_Name_to_id_u32+0x20> <== NOT EXECUTED 466a8: 7002 moveq #2,%d0 <== NOT EXECUTED 466aa: 6048 bras 466f4 <_Objects_Name_to_id_u32+0x68> <== NOT EXECUTED return OBJECTS_INVALID_ADDRESS; if ( name == 0 ) 466ac: 4a82 tstl %d2 <== NOT EXECUTED 466ae: 6742 beqs 466f2 <_Objects_Name_to_id_u32+0x66> <== NOT EXECUTED return OBJECTS_INVALID_NAME; search_local_node = FALSE; if ( information->maximum != 0 && 466b0: 322a 000e movew %a2@(14),%d1 <== NOT EXECUTED 466b4: 673c beqs 466f2 <_Objects_Name_to_id_u32+0x66> <== NOT EXECUTED 466b6: 4a80 tstl %d0 <== NOT EXECUTED 466b8: 672c beqs 466e6 <_Objects_Name_to_id_u32+0x5a> <== NOT EXECUTED 466ba: 0c80 7fff ffff cmpil #2147483647,%d0 <== NOT EXECUTED 466c0: 6724 beqs 466e6 <_Objects_Name_to_id_u32+0x5a> <== NOT EXECUTED 466c2: 7601 moveq #1,%d3 <== NOT EXECUTED 466c4: b680 cmpl %d0,%d3 <== NOT EXECUTED 466c6: 662a bnes 466f2 <_Objects_Name_to_id_u32+0x66> <== NOT EXECUTED 466c8: 601c bras 466e6 <_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 ]; 466ca: 206a 001a moveal %a2@(26),%a0 <== NOT EXECUTED 466ce: 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++ ) { 466d2: 5280 addql #1,%d0 <== NOT EXECUTED the_object = information->local_table[ index ]; if ( !the_object ) 466d4: 4a88 tstl %a0 <== NOT EXECUTED 466d6: 6716 beqs 466ee <_Objects_Name_to_id_u32+0x62> <== NOT EXECUTED continue; if ( name == the_object->name.name_u32 ) { 466d8: b4a8 000c cmpl %a0@(12),%d2 <== NOT EXECUTED 466dc: 6610 bnes 466ee <_Objects_Name_to_id_u32+0x62> <== NOT EXECUTED *id = the_object->id; 466de: 22a8 0008 movel %a0@(8),%a1@ <== NOT EXECUTED 466e2: 4280 clrl %d0 <== NOT EXECUTED 466e4: 600e bras 466f4 <_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++ ) { 466e6: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 466ec: 7001 moveq #1,%d0 <== NOT EXECUTED 466ee: b280 cmpl %d0,%d1 <== NOT EXECUTED 466f0: 64d8 bccs 466ca <_Objects_Name_to_id_u32+0x3e> <== NOT EXECUTED 466f2: 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 } 466f4: 4cd7 040c moveml %sp@,%d2-%d3/%a2 <== NOT EXECUTED 466f8: 4e5e unlk %fp <== NOT EXECUTED 466fa: 4e75 rts 0004665c <_Objects_Namespace_remove>: void _Objects_Namespace_remove( Objects_Information *information, Objects_Control *the_object ) { 4665c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46660: 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 ) 46662: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED void _Objects_Namespace_remove( Objects_Information *information, Objects_Control *the_object ) { 46666: 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 ) 4666a: 4a28 0034 tstb %a0@(52) <== NOT EXECUTED 4666e: 6710 beqs 46680 <_Objects_Namespace_remove+0x24> <== NOT EXECUTED 46670: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 46674: 670a beqs 46680 <_Objects_Namespace_remove+0x24> <== NOT EXECUTED _Workspace_Free( (void *)the_object->name.name_p ); 46676: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46678: 4eb9 0004 7e94 jsr 47e94 <_Workspace_Free> <== NOT EXECUTED 4667e: 588f addql #4,%sp <== NOT EXECUTED /* * Clear out either format. */ the_object->name.name_p = NULL; the_object->name.name_u32 = 0; 46680: 42aa 000c clrl %a2@(12) <== NOT EXECUTED } 46684: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46688: 4e5e unlk %fp <== NOT EXECUTED 4668a: 4e75 rts 00046aa0 <_Objects_Set_name>: bool _Objects_Set_name( Objects_Information *information, Objects_Control *the_object, const char *name ) { 46aa0: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 46aa4: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED 46aa8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED size_t length; const char *s; s = name; length = strnlen( name, information->name_length ) + 1; 46aac: 4280 clrl %d0 <== NOT EXECUTED 46aae: 302a 0036 movew %a2@(54),%d0 <== NOT EXECUTED 46ab2: 2f00 movel %d0,%sp@- <== NOT EXECUTED bool _Objects_Set_name( Objects_Information *information, Objects_Control *the_object, const char *name ) { 46ab4: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 46ab8: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED size_t length; const char *s; s = name; length = strnlen( name, information->name_length ) + 1; 46abc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46abe: 4eb9 0004 d888 jsr 4d888 <== NOT EXECUTED 46ac4: 2600 movel %d0,%d3 <== NOT EXECUTED if ( information->is_string ) { 46ac6: 508f addql #8,%sp <== NOT EXECUTED { size_t length; const char *s; s = name; length = strnlen( name, information->name_length ) + 1; 46ac8: 5283 addql #1,%d3 <== NOT EXECUTED if ( information->is_string ) { 46aca: 4a2a 0034 tstb %a2@(52) <== NOT EXECUTED 46ace: 6748 beqs 46b18 <_Objects_Set_name+0x78> <== NOT EXECUTED char *d; d = _Workspace_Allocate( length ); 46ad0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46ad2: 4eb9 0004 8330 jsr 48330 <_Workspace_Allocate> <== NOT EXECUTED if ( !d ) 46ad8: 588f addql #4,%sp <== NOT EXECUTED length = strnlen( name, information->name_length ) + 1; if ( information->is_string ) { char *d; d = _Workspace_Allocate( length ); 46ada: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !d ) 46adc: 4a80 tstl %d0 <== NOT EXECUTED 46ade: 6606 bnes 46ae6 <_Objects_Set_name+0x46> <== NOT EXECUTED 46ae0: 4200 clrb %d0 <== NOT EXECUTED 46ae2: 6000 0088 braw 46b6c <_Objects_Set_name+0xcc> <== NOT EXECUTED return FALSE; if ( the_object->name.name_p ) { 46ae6: 202c 000c movel %a4@(12),%d0 <== NOT EXECUTED 46aea: 670e beqs 46afa <_Objects_Set_name+0x5a> <== NOT EXECUTED _Workspace_Free( (void *)the_object->name.name_p ); 46aec: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46aee: 4eb9 0004 8318 jsr 48318 <_Workspace_Free> <== NOT EXECUTED the_object->name.name_p = NULL; 46af4: 588f addql #4,%sp <== NOT EXECUTED 46af6: 42ac 000c clrl %a4@(12) <== NOT EXECUTED } strncpy( d, name, length ); 46afa: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46afc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46afe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46b00: 4eb9 0004 d7fc jsr 4d7fc <== NOT EXECUTED d[ length ] = '\0'; 46b06: 4200 clrb %d0 <== NOT EXECUTED 46b08: 1580 3800 moveb %d0,%a2@(00000000,%d3:l) <== NOT EXECUTED the_object->name.name_p = d; 46b0c: 294a 000c movel %a2,%a4@(12) <== NOT EXECUTED 46b10: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46b16: 6052 bras 46b6a <_Objects_Set_name+0xca> <== NOT EXECUTED } else { the_object->name.name_u32 = _Objects_Build_name( 46b18: 203c 2000 0000 movel #536870912,%d0 <== NOT EXECUTED 46b1e: 4a83 tstl %d3 <== NOT EXECUTED 46b20: 675e beqs 46b80 <_Objects_Set_name+0xe0> <== NOT EXECUTED 46b22: 1013 moveb %a3@,%d0 <== NOT EXECUTED 46b24: 7218 moveq #24,%d1 <== NOT EXECUTED 46b26: 49c0 extbl %d0 <== NOT EXECUTED 46b28: e3a8 lsll %d1,%d0 <== NOT EXECUTED 46b2a: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 46b2e: b283 cmpl %d3,%d1 <== NOT EXECUTED 46b30: 674e beqs 46b80 <_Objects_Set_name+0xe0> <== NOT EXECUTED 46b32: 182b 0001 moveb %a3@(1),%d4 <== NOT EXECUTED 46b36: 49c4 extbl %d4 <== NOT EXECUTED 46b38: 4844 swap %d4 <== NOT EXECUTED 46b3a: 4244 clrw %d4 <== NOT EXECUTED 46b3c: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 46b40: b283 cmpl %d3,%d1 <== NOT EXECUTED 46b42: 6432 bccs 46b76 <_Objects_Set_name+0xd6> <== NOT EXECUTED 46b44: 142b 0002 moveb %a3@(2),%d2 <== NOT EXECUTED 46b48: 49c2 extbl %d2 <== NOT EXECUTED 46b4a: e18a lsll #8,%d2 <== NOT EXECUTED 46b4c: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 46b50: b283 cmpl %d3,%d1 <== NOT EXECUTED 46b52: 6506 bcss 46b5a <_Objects_Set_name+0xba> <== NOT EXECUTED 46b54: 123c 0020 moveb #32,%d1 <== NOT EXECUTED 46b58: 6006 bras 46b60 <_Objects_Set_name+0xc0> <== NOT EXECUTED 46b5a: 122b 0003 moveb %a3@(3),%d1 <== NOT EXECUTED 46b5e: 49c1 extbl %d1 <== NOT EXECUTED 46b60: 8084 orl %d4,%d0 <== NOT EXECUTED 46b62: 8082 orl %d2,%d0 <== NOT EXECUTED 46b64: 8081 orl %d1,%d0 <== NOT EXECUTED 46b66: 2940 000c movel %d0,%a4@(12) <== NOT EXECUTED 46b6a: 7001 moveq #1,%d0 <== NOT EXECUTED ); } return TRUE; } 46b6c: 4cee 1c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a4 <== NOT EXECUTED 46b72: 4e5e unlk %fp <== NOT EXECUTED 46b74: 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( 46b76: 7220 moveq #32,%d1 <== NOT EXECUTED 46b78: 243c 0000 2000 movel #8192,%d2 <== NOT EXECUTED 46b7e: 60e0 bras 46b60 <_Objects_Set_name+0xc0> <== NOT EXECUTED 46b80: 7820 moveq #32,%d4 <== NOT EXECUTED 46b82: 4844 swap %d4 <== NOT EXECUTED 46b84: 60f0 bras 46b76 <_Objects_Set_name+0xd6> <== NOT EXECUTED ... 00046704 <_Objects_Shrink_information>: */ void _Objects_Shrink_information( Objects_Information *information ) { 46704: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 46708: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 4670c: 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; 46710: 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; 46714: 242a 0012 movel %a2@(18),%d2 <== NOT EXECUTED 46718: 4280 clrl %d0 <== NOT EXECUTED 4671a: 0283 0000 ffff andil #65535,%d3 <== NOT EXECUTED 46720: 302a 000e movew %a2@(14),%d0 <== NOT EXECUTED 46724: 9083 subl %d3,%d0 <== NOT EXECUTED 46726: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 4672a: 4281 clrl %d1 <== NOT EXECUTED 4672c: 6074 bras 467a2 <_Objects_Shrink_information+0x9e> <== NOT EXECUTED for ( block = 0; block < block_count; block++ ) { if ( information->inactive_per_block[ block ] == information->allocation_size ) { 4672e: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED 46732: b4b0 4800 cmpl %a0@(00000000,%d4:l),%d2 <== NOT EXECUTED 46736: 6666 bnes 4679e <_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; 46738: 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 ); 4673c: 47f9 0004 a1c4 lea 4a1c4 <_Chain_Extract>,%a3 <== NOT EXECUTED 46742: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED 46746: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED */ do { index = _Objects_Get_index( the_object->id ); if ((index >= index_base) && 4674c: b681 cmpl %d1,%d3 <== NOT EXECUTED 4674e: 6216 bhis 46766 <_Objects_Shrink_information+0x62> <== NOT EXECUTED 46750: 2003 movel %d3,%d0 <== NOT EXECUTED 46752: d0aa 0012 addl %a2@(18),%d0 <== NOT EXECUTED 46756: b081 cmpl %d1,%d0 <== NOT EXECUTED 46758: 630c blss 46766 <_Objects_Shrink_information+0x62> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_last( const Chain_Node *the_node ) { return (the_node->next == NULL); 4675a: 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 ); 4675c: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4675e: 4e93 jsr %a3@ <== NOT EXECUTED 46760: 2042 moveal %d2,%a0 <== NOT EXECUTED 46762: 588f addql #4,%sp <== NOT EXECUTED 46764: 6002 bras 46768 <_Objects_Shrink_information+0x64> <== NOT EXECUTED } else { the_object = (Objects_Control *) the_object->Node.next; 46766: 2050 moveal %a0@,%a0 <== NOT EXECUTED } } while ( the_object && !_Chain_Is_last( &the_object->Node ) ); 46768: 4a88 tstl %a0 <== NOT EXECUTED 4676a: 6704 beqs 46770 <_Objects_Shrink_information+0x6c> <== NOT EXECUTED 4676c: 4a90 tstl %a0@ <== NOT EXECUTED 4676e: 66d2 bnes 46742 <_Objects_Shrink_information+0x3e> <== NOT EXECUTED /* * Free the memory and reset the structures in the object' information */ _Workspace_Free( information->object_blocks[ block ] ); 46770: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 46774: 2f30 4800 movel %a0@(00000000,%d4:l),%sp@- <== NOT EXECUTED 46778: 4eb9 0004 7e94 jsr 47e94 <_Workspace_Free> <== NOT EXECUTED information->object_blocks[ block ] = NULL; information->inactive_per_block[ block ] = 0; 4677e: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED 46782: 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; 46786: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED information->inactive_per_block[ block ] = 0; information->inactive -= information->allocation_size; 4678a: 302a 002a movew %a2@(42),%d0 <== NOT EXECUTED 4678e: 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; 46792: 42b0 4800 clrl %a0@(00000000,%d4:l) <== NOT EXECUTED information->inactive_per_block[ block ] = 0; information->inactive -= information->allocation_size; 46796: 3540 002a movew %d0,%a2@(42) <== NOT EXECUTED 4679a: 588f addql #4,%sp <== NOT EXECUTED 4679c: 600c bras 467aa <_Objects_Shrink_information+0xa6> <== NOT EXECUTED return; } index_base += information->allocation_size; 4679e: 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++ ) { 467a0: 5281 addql #1,%d1 <== NOT EXECUTED 467a2: 2801 movel %d1,%d4 <== NOT EXECUTED 467a4: e58c lsll #2,%d4 <== NOT EXECUTED 467a6: b081 cmpl %d1,%d0 <== NOT EXECUTED 467a8: 6284 bhis 4672e <_Objects_Shrink_information+0x2a> <== NOT EXECUTED return; } index_base += information->allocation_size; } } 467aa: 4cee 0c1c ffec moveml %fp@(-20),%d2-%d4/%a2-%a3 <== NOT EXECUTED 467b0: 4e5e unlk %fp <== NOT EXECUTED 467b2: 4e75 rts 0004565c <_POSIX_API_Initialize>: void _POSIX_API_Initialize( rtems_configuration_table *configuration_table ) { 4565c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45660: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45664: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* XXX need to assert here based on size assumptions */ assert( sizeof(pthread_t) == sizeof(Objects_Id) ); api_configuration = configuration_table->POSIX_api_configuration; 45666: 2468 0042 moveal %a0@(66),%a2 <== NOT EXECUTED if ( !api_configuration ) 4566a: 4a8a tstl %a2 <== NOT EXECUTED 4566c: 6606 bnes 45674 <_POSIX_API_Initialize+0x18> <== NOT EXECUTED 4566e: 45f9 0005 5106 lea 55106 <_POSIX_Default_configuration>,%a2 <== NOT EXECUTED api_configuration = &_POSIX_Default_configuration; _Objects_Information_table[OBJECTS_POSIX_API] = _POSIX_Objects; _POSIX_signals_Manager_Initialization( 45674: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED api_configuration = configuration_table->POSIX_api_configuration; if ( !api_configuration ) api_configuration = &_POSIX_Default_configuration; _Objects_Information_table[OBJECTS_POSIX_API] = _POSIX_Objects; 45678: 203c 0005 828e movel #361102,%d0 <== NOT EXECUTED 4567e: 23c0 0005 7e40 movel %d0,57e40 <_Objects_Information_table+0xc> <== NOT EXECUTED _POSIX_signals_Manager_Initialization( 45684: 4eb9 0004 980c jsr 4980c <_POSIX_signals_Manager_Initialization> <== NOT EXECUTED api_configuration->maximum_queued_signals ); _POSIX_Threads_Manager_initialization( 4568a: 2f2a 0030 movel %a2@(48),%sp@- <== NOT EXECUTED 4568e: 2f2a 002c movel %a2@(44),%sp@- <== NOT EXECUTED 45692: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45694: 4eb9 0004 99dc jsr 499dc <_POSIX_Threads_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_threads, api_configuration->number_of_initialization_threads, api_configuration->User_initialization_threads_table ); _POSIX_Condition_variables_Manager_initialization( 4569a: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 4569e: 4eb9 0004 96a8 jsr 496a8 <_POSIX_Condition_variables_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_condition_variables ); _POSIX_Key_Manager_initialization( api_configuration->maximum_keys ); 456a4: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 456a8: 4eb9 0004 96dc jsr 496dc <_POSIX_Key_Manager_initialization> <== NOT EXECUTED _POSIX_Mutex_Manager_initialization( 456ae: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED 456b2: 4eb9 0004 9770 jsr 49770 <_POSIX_Mutex_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_mutexes ); _POSIX_Message_queue_Manager_initialization( 456b8: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 456bc: 4eb9 0004 9710 jsr 49710 <_POSIX_Message_queue_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_message_queues ); _POSIX_Semaphore_Manager_initialization( 456c2: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 456c8: 2eaa 001c movel %a2@(28),%sp@ <== NOT EXECUTED 456cc: 4eb9 0004 9cf0 jsr 49cf0 <_POSIX_Semaphore_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_semaphores ); _POSIX_Timer_Manager_initialization( api_configuration->maximum_timers ); 456d2: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 456d6: 4eb9 0004 9cbc jsr 49cbc <_POSIX_Timer_Manager_initialization> <== NOT EXECUTED _POSIX_Barrier_Manager_initialization( api_configuration->maximum_barriers ); 456dc: 2f2a 0020 movel %a2@(32),%sp@- <== NOT EXECUTED 456e0: 4eb9 0004 97a4 jsr 497a4 <_POSIX_Barrier_Manager_initialization> <== NOT EXECUTED _POSIX_RWLock_Manager_initialization( api_configuration->maximum_rwlocks ); 456e6: 2f2a 0024 movel %a2@(36),%sp@- <== NOT EXECUTED 456ea: 4eb9 0004 97d8 jsr 497d8 <_POSIX_RWLock_Manager_initialization> <== NOT EXECUTED _POSIX_Spinlock_Manager_initialization(api_configuration->maximum_spinlocks); 456f0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 456f6: 2d6a 0028 0008 movel %a2@(40),%fp@(8) <== NOT EXECUTED } 456fc: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45700: 4e5e unlk %fp <== NOT EXECUTED _POSIX_Barrier_Manager_initialization( api_configuration->maximum_barriers ); _POSIX_RWLock_Manager_initialization( api_configuration->maximum_rwlocks ); _POSIX_Spinlock_Manager_initialization(api_configuration->maximum_spinlocks); 45702: 4ef9 0004 9990 jmp 49990 <_POSIX_Spinlock_Manager_initialization> <== NOT EXECUTED 00046a90 <_POSIX_Absolute_timeout_to_ticks>: */ POSIX_Absolute_timeout_conversion_results_t _POSIX_Absolute_timeout_to_ticks( const struct timespec *abstime, Watchdog_Interval *ticks_out ) { 46a90: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 46a94: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 46a98: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 46a9c: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED *ticks_out = 0; /* * Is the absolute time even valid? */ if ( !_Timespec_Is_valid(abstime) ) 46aa0: 2f04 movel %d4,%sp@- <== NOT EXECUTED /* * Make sure there is always a value returned. */ *ticks_out = 0; 46aa2: 4292 clrl %a2@ <== NOT EXECUTED /* * Is the absolute time even valid? */ if ( !_Timespec_Is_valid(abstime) ) 46aa4: 4eb9 0004 a68c jsr 4a68c <_Timespec_Is_valid> <== NOT EXECUTED 46aaa: 588f addql #4,%sp <== NOT EXECUTED 46aac: 4a00 tstb %d0 <== NOT EXECUTED 46aae: 6604 bnes 46ab4 <_POSIX_Absolute_timeout_to_ticks+0x24> <== NOT EXECUTED 46ab0: 4281 clrl %d1 <== NOT EXECUTED 46ab2: 6050 bras 46b04 <_POSIX_Absolute_timeout_to_ticks+0x74> <== NOT EXECUTED return POSIX_ABSOLUTE_TIMEOUT_INVALID; /* * Is the absolute time in the past? */ _TOD_Get( ¤t_time ); 46ab4: 260e movel %fp,%d3 <== NOT EXECUTED 46ab6: 5183 subql #8,%d3 <== NOT EXECUTED 46ab8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46aba: 4eb9 0004 89a4 jsr 489a4 <_TOD_Get> <== NOT EXECUTED if ( _Timespec_Less_than( abstime, ¤t_time ) ) 46ac0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46ac2: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46ac4: 4eb9 0004 a6b4 jsr 4a6b4 <_Timespec_Less_than> <== NOT EXECUTED 46aca: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46ad0: 4a00 tstb %d0 <== NOT EXECUTED 46ad2: 6704 beqs 46ad8 <_POSIX_Absolute_timeout_to_ticks+0x48> <== NOT EXECUTED 46ad4: 7201 moveq #1,%d1 <== NOT EXECUTED 46ad6: 602c bras 46b04 <_POSIX_Absolute_timeout_to_ticks+0x74> <== NOT EXECUTED return POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST; /* * How long until the requested absolute time? */ _Timespec_Subtract( ¤t_time, abstime, &difference ); 46ad8: 240e movel %fp,%d2 <== NOT EXECUTED 46ada: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 46ae0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46ae2: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46ae4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46ae6: 4eb9 0004 a6e4 jsr 4a6e4 <_Timespec_Subtract> <== NOT EXECUTED /* * Internally the SuperCore uses ticks, so convert to them. */ *ticks_out = _Timespec_To_ticks( &difference ); 46aec: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46aee: 4eb9 0004 a734 jsr 4a734 <_Timespec_To_ticks> <== NOT EXECUTED /* * If the difference was 0, then the future is now. It is so bright * we better wear shades. */ if ( !*ticks_out ) 46af4: 4a80 tstl %d0 <== NOT EXECUTED 46af6: 57c1 seq %d1 <== NOT EXECUTED 46af8: 49c1 extbl %d1 <== NOT EXECUTED 46afa: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 46b00: 5681 addql #3,%d1 <== NOT EXECUTED _Timespec_Subtract( ¤t_time, abstime, &difference ); /* * Internally the SuperCore uses ticks, so convert to them. */ *ticks_out = _Timespec_To_ticks( &difference ); 46b02: 2480 movel %d0,%a2@ <== NOT EXECUTED /* * This is the case we were expecting and it took this long to * get here. */ return POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE; } 46b04: 4cee 041c ffe0 moveml %fp@(-32),%d2-%d4/%a2 <== NOT EXECUTED 46b0a: 4e5e unlk %fp <== NOT EXECUTED 46b0c: 2001 movel %d1,%d0 <== NOT EXECUTED 46b0e: 4e75 rts 000497a4 <_POSIX_Barrier_Manager_initialization>: */ void _POSIX_Barrier_Manager_initialization( uint32_t maximum_barriers ) { 497a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 497a8: 4878 00ff pea ff <== NOT EXECUTED 497ac: 4878 0001 pea 1 <== NOT EXECUTED 497b0: 4878 005c pea 5c <== NOT EXECUTED 497b4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 497b8: 4878 000a pea a <== NOT EXECUTED 497bc: 4878 0003 pea 3 <== NOT EXECUTED 497c0: 4879 0005 81d6 pea 581d6 <_POSIX_Barrier_Information> <== NOT EXECUTED 497c6: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 497cc: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 497d2: 4e5e unlk %fp <== NOT EXECUTED 497d4: 4e75 rts <== NOT EXECUTED ... 0004a968 <_POSIX_Barrier_Translate_core_barrier_return_code>: int _POSIX_Barrier_Translate_core_barrier_return_code( CORE_barrier_Status the_barrier_status ) { 4a968: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_barrier_status > CORE_BARRIER_STATUS_LAST ) return EINVAL; #endif return _POSIX_Barrier_Return_codes[the_barrier_status]; } 4a96c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED int _POSIX_Barrier_Translate_core_barrier_return_code( CORE_barrier_Status the_barrier_status ) { 4a970: 41f9 0005 693e lea 5693e <_POSIX_Barrier_Return_codes>,%a0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_barrier_status > CORE_BARRIER_STATUS_LAST ) return EINVAL; #endif return _POSIX_Barrier_Return_codes[the_barrier_status]; } 4a976: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4a97a: 4e5e unlk %fp <== NOT EXECUTED 4a97c: 4e75 rts <== NOT EXECUTED ... 00045868 <_POSIX_Condition_variables_Get>: POSIX_Condition_variables_Control *_POSIX_Condition_variables_Get ( pthread_cond_t *cond, Objects_Locations *location ) { 45868: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4586c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4586e: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 45872: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45874: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Objects_Id *id = (Objects_Id *)cond; int status; if ( !id ) { 45878: 4a8a tstl %a2 <== NOT EXECUTED 4587a: 6716 beqs 45892 <_POSIX_Condition_variables_Get+0x2a> <== NOT EXECUTED *location = OBJECTS_ERROR; return (POSIX_Condition_variables_Control *) 0; } if ( *id == PTHREAD_COND_INITIALIZER ) { 4587c: 70ff moveq #-1,%d0 <== NOT EXECUTED 4587e: b092 cmpl %a2@,%d0 <== NOT EXECUTED 45880: 6618 bnes 4589a <_POSIX_Condition_variables_Get+0x32> <== NOT EXECUTED /* * Do an "auto-create" here. */ status = pthread_cond_init( (pthread_cond_t *)id, 0 ); 45882: 42a7 clrl %sp@- <== NOT EXECUTED 45884: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45886: 4eb9 0004 58bc jsr 458bc <== NOT EXECUTED if ( status ) { 4588c: 508f addql #8,%sp <== NOT EXECUTED 4588e: 4a80 tstl %d0 <== NOT EXECUTED 45890: 6708 beqs 4589a <_POSIX_Condition_variables_Get+0x32> <== NOT EXECUTED *location = OBJECTS_ERROR; 45892: 7001 moveq #1,%d0 <== NOT EXECUTED 45894: 2680 movel %d0,%a3@ <== NOT EXECUTED 45896: 4280 clrl %d0 <== NOT EXECUTED 45898: 6016 bras 458b0 <_POSIX_Condition_variables_Get+0x48> <== NOT EXECUTED /* * Now call Objects_Get() */ return (POSIX_Condition_variables_Control *) 4589a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4589c: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 4589e: 4879 0005 b806 pea 5b806 <_POSIX_Condition_variables_Information> <== NOT EXECUTED 458a4: 4eb9 0004 83f8 jsr 483f8 <_Objects_Get> <== NOT EXECUTED 458aa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED _Objects_Get( &_POSIX_Condition_variables_Information, *id, location ); } 458b0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 458b4: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 458b8: 4e5e unlk %fp <== NOT EXECUTED 458ba: 4e75 rts 000496a8 <_POSIX_Condition_variables_Manager_initialization>: */ void _POSIX_Condition_variables_Manager_initialization( uint32_t maximum_condition_variables ) { 496a8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 496ac: 4878 00ff pea ff <== NOT EXECUTED 496b0: 4878 0001 pea 1 <== NOT EXECUTED 496b4: 4878 0058 pea 58 <== NOT EXECUTED 496b8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 496bc: 4878 0008 pea 8 <== NOT EXECUTED 496c0: 4878 0003 pea 3 <== NOT EXECUTED 496c4: 4879 0005 8252 pea 58252 <_POSIX_Condition_variables_Information> <== NOT EXECUTED 496ca: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 496d0: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 496d6: 4e5e unlk %fp <== NOT EXECUTED 496d8: 4e75 rts <== NOT EXECUTED ... 00045974 <_POSIX_Condition_variables_Signal_support>: int _POSIX_Condition_variables_Signal_support( pthread_cond_t *cond, bool is_broadcast ) { 45974: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 45978: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED register POSIX_Condition_variables_Control *the_cond; Objects_Locations location; Thread_Control *the_thread; the_cond = _POSIX_Condition_variables_Get( cond, &location ); 4597c: 486e fffc pea %fp@(-4) <== NOT EXECUTED int _POSIX_Condition_variables_Signal_support( pthread_cond_t *cond, bool is_broadcast ) { 45980: 162e 000f moveb %fp@(15),%d3 <== NOT EXECUTED register POSIX_Condition_variables_Control *the_cond; Objects_Locations location; Thread_Control *the_thread; the_cond = _POSIX_Condition_variables_Get( cond, &location ); 45984: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45988: 4eb9 0004 5868 jsr 45868 <_POSIX_Condition_variables_Get> <== NOT EXECUTED switch ( location ) { 4598e: 508f addql #8,%sp <== NOT EXECUTED { register POSIX_Condition_variables_Control *the_cond; Objects_Locations location; Thread_Control *the_thread; the_cond = _POSIX_Condition_variables_Get( cond, &location ); 45990: 2440 moveal %d0,%a2 <== NOT EXECUTED switch ( location ) { 45992: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45996: 6704 beqs 4599c <_POSIX_Condition_variables_Signal_support+0x28> <== NOT EXECUTED 45998: 7016 moveq #22,%d0 <== NOT EXECUTED 4599a: 602c bras 459c8 <_POSIX_Condition_variables_Signal_support+0x54> <== NOT EXECUTED case OBJECTS_LOCAL: do { the_thread = _Thread_queue_Dequeue( &the_cond->Wait_queue ); 4599c: 2400 movel %d0,%d2 <== NOT EXECUTED 4599e: 0682 0000 0018 addil #24,%d2 <== NOT EXECUTED 459a4: 47f9 0004 8e8c lea 48e8c <_Thread_queue_Dequeue>,%a3 <== NOT EXECUTED 459aa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 459ac: 4e93 jsr %a3@ <== NOT EXECUTED if ( !the_thread ) 459ae: 588f addql #4,%sp <== NOT EXECUTED 459b0: 4a80 tstl %d0 <== NOT EXECUTED 459b2: 6604 bnes 459b8 <_POSIX_Condition_variables_Signal_support+0x44> <== NOT EXECUTED the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX; 459b4: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED } while ( is_broadcast && the_thread ); 459b8: 4a03 tstb %d3 <== NOT EXECUTED 459ba: 6704 beqs 459c0 <_POSIX_Condition_variables_Signal_support+0x4c> <== NOT EXECUTED 459bc: 4a80 tstl %d0 <== NOT EXECUTED 459be: 66ea bnes 459aa <_POSIX_Condition_variables_Signal_support+0x36> <== NOT EXECUTED _Thread_Enable_dispatch(); 459c0: 4eb9 0004 8b6a jsr 48b6a <_Thread_Enable_dispatch> <== NOT EXECUTED 459c6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 459c8: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 459ce: 4e5e unlk %fp <== NOT EXECUTED 459d0: 4e75 rts <== NOT EXECUTED ... 00045a40 <_POSIX_Condition_variables_Wait_support>: pthread_cond_t *cond, pthread_mutex_t *mutex, Watchdog_Interval timeout, bool already_timedout ) { 45a40: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 45a44: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@ <== NOT EXECUTED register POSIX_Condition_variables_Control *the_cond; Objects_Locations location; int status; int mutex_status; if ( !_POSIX_Mutex_Get( mutex, &location ) ) { 45a48: 240e movel %fp,%d2 <== NOT EXECUTED 45a4a: 5982 subql #4,%d2 <== NOT EXECUTED 45a4c: 2f02 movel %d2,%sp@- <== NOT EXECUTED pthread_cond_t *cond, pthread_mutex_t *mutex, Watchdog_Interval timeout, bool already_timedout ) { 45a4e: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 45a52: 2a6e 0008 moveal %fp@(8),%a5 <== NOT EXECUTED register POSIX_Condition_variables_Control *the_cond; Objects_Locations location; int status; int mutex_status; if ( !_POSIX_Mutex_Get( mutex, &location ) ) { 45a56: 2f0b movel %a3,%sp@- <== NOT EXECUTED pthread_cond_t *cond, pthread_mutex_t *mutex, Watchdog_Interval timeout, bool already_timedout ) { 45a58: 162e 0017 moveb %fp@(23),%d3 <== NOT EXECUTED register POSIX_Condition_variables_Control *the_cond; Objects_Locations location; int status; int mutex_status; if ( !_POSIX_Mutex_Get( mutex, &location ) ) { 45a5c: 4eb9 0004 5bf8 jsr 45bf8 <_POSIX_Mutex_Get> <== NOT EXECUTED 45a62: 508f addql #8,%sp <== NOT EXECUTED 45a64: 4a80 tstl %d0 <== NOT EXECUTED 45a66: 6700 00b2 beqw 45b1a <_POSIX_Condition_variables_Wait_support+0xda> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 45a6a: 2039 0005 b430 movel 5b430 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED return EINVAL; } _Thread_Unnest_dispatch(); the_cond = _POSIX_Condition_variables_Get( cond, &location ); 45a70: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45a72: 5380 subql #1,%d0 <== NOT EXECUTED 45a74: 2f0d movel %a5,%sp@- <== NOT EXECUTED 45a76: 23c0 0005 b430 movel %d0,5b430 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 45a7c: 4eb9 0004 5868 jsr 45868 <_POSIX_Condition_variables_Get> <== NOT EXECUTED switch ( location ) { 45a82: 508f addql #8,%sp <== NOT EXECUTED return EINVAL; } _Thread_Unnest_dispatch(); the_cond = _POSIX_Condition_variables_Get( cond, &location ); 45a84: 2440 moveal %d0,%a2 <== NOT EXECUTED switch ( location ) { 45a86: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45a8a: 6600 008e bnew 45b1a <_POSIX_Condition_variables_Wait_support+0xda> <== NOT EXECUTED case OBJECTS_LOCAL: if ( the_cond->Mutex && ( the_cond->Mutex != *mutex ) ) { 45a8e: 202a 0014 movel %a2@(20),%d0 <== NOT EXECUTED 45a92: 670e beqs 45aa2 <_POSIX_Condition_variables_Wait_support+0x62> <== NOT EXECUTED 45a94: b093 cmpl %a3@,%d0 <== NOT EXECUTED 45a96: 670a beqs 45aa2 <_POSIX_Condition_variables_Wait_support+0x62> <== NOT EXECUTED _Thread_Enable_dispatch(); 45a98: 7416 moveq #22,%d2 <== NOT EXECUTED 45a9a: 4eb9 0004 8b6a jsr 48b6a <_Thread_Enable_dispatch> <== NOT EXECUTED 45aa0: 607a bras 45b1c <_POSIX_Condition_variables_Wait_support+0xdc> <== NOT EXECUTED return EINVAL; } (void) pthread_mutex_unlock( mutex ); 45aa2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45aa4: 4eb9 0004 5e00 jsr 45e00 <== NOT EXECUTED _Thread_Enable_dispatch(); return EINVAL; } */ if ( !already_timedout ) { 45aaa: 588f addql #4,%sp <== NOT EXECUTED 45aac: 49f9 0004 8b6a lea 48b6a <_Thread_Enable_dispatch>,%a4 <== NOT EXECUTED 45ab2: 4a03 tstb %d3 <== NOT EXECUTED 45ab4: 6652 bnes 45b08 <_POSIX_Condition_variables_Wait_support+0xc8> <== NOT EXECUTED the_cond->Mutex = *mutex; _Thread_queue_Enter_critical_section( &the_cond->Wait_queue ); _Thread_Executing->Wait.return_code = 0; 45ab6: 2079 0005 b4ee moveal 5b4ee <_Thread_Executing>,%a0 <== NOT EXECUTED return EINVAL; } */ if ( !already_timedout ) { the_cond->Mutex = *mutex; 45abc: 2553 0014 movel %a3@,%a2@(20) <== NOT EXECUTED _Thread_queue_Enter_critical_section( &the_cond->Wait_queue ); _Thread_Executing->Wait.return_code = 0; _Thread_Executing->Wait.queue = &the_cond->Wait_queue; 45ac0: 200a movel %a2,%d0 <== NOT EXECUTED _Thread_Executing->Wait.id = *cond; 45ac2: 2155 0020 movel %a5@,%a0@(32) <== NOT EXECUTED if ( !already_timedout ) { the_cond->Mutex = *mutex; _Thread_queue_Enter_critical_section( &the_cond->Wait_queue ); _Thread_Executing->Wait.return_code = 0; _Thread_Executing->Wait.queue = &the_cond->Wait_queue; 45ac6: 0680 0000 0018 addil #24,%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; 45acc: 7201 moveq #1,%d1 <== NOT EXECUTED if ( !already_timedout ) { the_cond->Mutex = *mutex; _Thread_queue_Enter_critical_section( &the_cond->Wait_queue ); _Thread_Executing->Wait.return_code = 0; 45ace: 42a8 0034 clrl %a0@(52) <== NOT EXECUTED _Thread_Executing->Wait.queue = &the_cond->Wait_queue; 45ad2: 2140 0044 movel %d0,%a0@(68) <== NOT EXECUTED 45ad6: 2541 0048 movel %d1,%a2@(72) <== NOT EXECUTED _Thread_Executing->Wait.id = *cond; _Thread_queue_Enqueue( &the_cond->Wait_queue, timeout ); 45ada: 4879 0004 9368 pea 49368 <_Thread_queue_Timeout> <== NOT EXECUTED 45ae0: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 45ae4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45ae6: 4eb9 0004 8fd0 jsr 48fd0 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 45aec: 4e94 jsr %a4@ <== NOT EXECUTED /* * Switch ourself out because we blocked as a result of the * _Thread_queue_Enqueue. */ status = _Thread_Executing->Wait.return_code; 45aee: 2079 0005 b4ee moveal 5b4ee <_Thread_Executing>,%a0 <== NOT EXECUTED 45af4: 2428 0034 movel %a0@(52),%d2 <== NOT EXECUTED if ( status && status != ETIMEDOUT ) 45af8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45afe: 670c beqs 45b0c <_POSIX_Condition_variables_Wait_support+0xcc> <== NOT EXECUTED 45b00: 7074 moveq #116,%d0 <== NOT EXECUTED 45b02: b082 cmpl %d2,%d0 <== NOT EXECUTED 45b04: 6616 bnes 45b1c <_POSIX_Condition_variables_Wait_support+0xdc> <== NOT EXECUTED 45b06: 6004 bras 45b0c <_POSIX_Condition_variables_Wait_support+0xcc> <== NOT EXECUTED return status; } else { _Thread_Enable_dispatch(); 45b08: 4e94 jsr %a4@ <== NOT EXECUTED 45b0a: 7474 moveq #116,%d2 <== NOT EXECUTED /* * When we get here the dispatch disable level is 0. */ mutex_status = pthread_mutex_lock( mutex ); 45b0c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45b0e: 4eb9 0004 5d68 jsr 45d68 <== NOT EXECUTED if ( mutex_status ) 45b14: 588f addql #4,%sp <== NOT EXECUTED 45b16: 4a80 tstl %d0 <== NOT EXECUTED 45b18: 6702 beqs 45b1c <_POSIX_Condition_variables_Wait_support+0xdc> <== NOT EXECUTED 45b1a: 7416 moveq #22,%d2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45b1c: 2002 movel %d2,%d0 <== NOT EXECUTED 45b1e: 4cee 3c0c ffe4 moveml %fp@(-28),%d2-%d3/%a2-%a5 <== NOT EXECUTED 45b24: 4e5e unlk %fp <== NOT EXECUTED 45b26: 4e75 rts 000496dc <_POSIX_Key_Manager_initialization>: */ void _POSIX_Key_Manager_initialization( uint32_t maximum_keys ) { 496dc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 496e0: 4878 00ff pea ff <== NOT EXECUTED 496e4: 4878 0001 pea 1 <== NOT EXECUTED 496e8: 4878 002a pea 2a <== NOT EXECUTED 496ec: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 496f0: 4878 0002 pea 2 <== NOT EXECUTED 496f4: 4878 0003 pea 3 <== NOT EXECUTED 496f8: 4879 0005 8216 pea 58216 <_POSIX_Keys_Information> <== NOT EXECUTED 496fe: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49704: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4970a: 4e5e unlk %fp <== NOT EXECUTED 4970c: 4e75 rts <== NOT EXECUTED ... 0004b02c <_POSIX_Keys_Run_destructors>: */ void _POSIX_Keys_Run_destructors( Thread_Control *thread ) { 4b02c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4b030: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED uint32_t iterations; bool are_all_null; POSIX_Keys_Control *the_key; void *value; thread_index = _Objects_Get_index( thread->Object.id ); 4b034: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED */ void _POSIX_Keys_Run_destructors( Thread_Control *thread ) { 4b038: 48d7 047c moveml %d2-%d6/%a2,%sp@ <== NOT EXECUTED the_key = (POSIX_Keys_Control *) _POSIX_Keys_Information.local_table[ index ]; if ( the_key && the_key->is_active && the_key->destructor ) { value = the_key->Values[ thread_api ][ thread_index ]; 4b03c: 2a00 movel %d0,%d5 <== 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); 4b03e: 2800 movel %d0,%d4 <== NOT EXECUTED 4b040: 7218 moveq #24,%d1 <== NOT EXECUTED 4b042: 0285 0000 ffff andil #65535,%d5 <== NOT EXECUTED 4b048: e2ac lsrl %d1,%d4 <== NOT EXECUTED 4b04a: 7007 moveq #7,%d0 <== NOT EXECUTED 4b04c: c880 andl %d0,%d4 <== NOT EXECUTED 4b04e: e58d lsll #2,%d5 <== NOT EXECUTED 4b050: 4286 clrl %d6 <== NOT EXECUTED 4b052: 7401 moveq #1,%d2 <== NOT EXECUTED 4b054: 7601 moveq #1,%d3 <== NOT EXECUTED 4b056: 603a bras 4b092 <_POSIX_Keys_Run_destructors+0x66> <== NOT EXECUTED are_all_null = TRUE; for ( index=1 ; index <= _POSIX_Keys_Information.maximum ; index++ ) { the_key = (POSIX_Keys_Control *) 4b058: 2079 0005 8230 moveal 58230 <_POSIX_Keys_Information+0x1a>,%a0 <== NOT EXECUTED 4b05e: 2470 2c00 moveal %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED _POSIX_Keys_Information.local_table[ index ]; if ( the_key && the_key->is_active && the_key->destructor ) { 4b062: 4a8a tstl %a2 <== NOT EXECUTED 4b064: 672a beqs 4b090 <_POSIX_Keys_Run_destructors+0x64> <== NOT EXECUTED 4b066: 4a2a 0010 tstb %a2@(16) <== NOT EXECUTED 4b06a: 6724 beqs 4b090 <_POSIX_Keys_Run_destructors+0x64> <== NOT EXECUTED 4b06c: 226a 0012 moveal %a2@(18),%a1 <== NOT EXECUTED 4b070: 4a89 tstl %a1 <== NOT EXECUTED 4b072: 671c beqs 4b090 <_POSIX_Keys_Run_destructors+0x64> <== NOT EXECUTED value = the_key->Values[ thread_api ][ thread_index ]; 4b074: 2072 4c16 moveal %a2@(00000016,%d4:l:4),%a0 <== NOT EXECUTED 4b078: 2030 5800 movel %a0@(00000000,%d5:l),%d0 <== NOT EXECUTED if ( value ) { 4b07c: 6712 beqs 4b090 <_POSIX_Keys_Run_destructors+0x64> <== NOT EXECUTED (*the_key->destructor)( value ); 4b07e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4b080: 4e91 jsr %a1@ <== NOT EXECUTED if ( the_key->Values[ thread_api ][ thread_index ] ) 4b082: 588f addql #4,%sp <== NOT EXECUTED 4b084: 2072 4c16 moveal %a2@(00000016,%d4:l:4),%a0 <== NOT EXECUTED 4b088: 4ab0 5800 tstl %a0@(00000000,%d5:l) <== NOT EXECUTED 4b08c: 57c0 seq %d0 <== NOT EXECUTED 4b08e: c680 andl %d0,%d3 <== NOT EXECUTED for ( ; ; ) { are_all_null = TRUE; for ( index=1 ; index <= _POSIX_Keys_Information.maximum ; index++ ) { 4b090: 5282 addql #1,%d2 <== NOT EXECUTED 4b092: 4280 clrl %d0 <== NOT EXECUTED 4b094: 3039 0005 8224 movew 58224 <_POSIX_Keys_Information+0xe>,%d0 <== NOT EXECUTED 4b09a: b082 cmpl %d2,%d0 <== NOT EXECUTED 4b09c: 64ba bccs 4b058 <_POSIX_Keys_Run_destructors+0x2c> <== NOT EXECUTED are_all_null = FALSE; } } } if ( are_all_null == TRUE ) 4b09e: 4a03 tstb %d3 <== NOT EXECUTED 4b0a0: 6608 bnes 4b0aa <_POSIX_Keys_Run_destructors+0x7e> <== NOT EXECUTED return; iterations++; 4b0a2: 5286 addql #1,%d6 <== NOT EXECUTED * loop. It seems rude to unnecessarily lock up a system. * * Reference: 17.1.1.2 P1003.1c/Draft 10, p. 163, line 99. */ if ( iterations >= PTHREAD_DESTRUCTOR_ITERATIONS ) 4b0a4: 7204 moveq #4,%d1 <== NOT EXECUTED 4b0a6: b286 cmpl %d6,%d1 <== NOT EXECUTED 4b0a8: 66a8 bnes 4b052 <_POSIX_Keys_Run_destructors+0x26> <== NOT EXECUTED return; } } 4b0aa: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 4b0b0: 4e5e unlk %fp <== NOT EXECUTED 4b0b2: 4e75 rts 0004efb4 <_POSIX_Message_queue_Create_support>: const char *name_arg, int pshared, struct mq_attr *attr_ptr, POSIX_Message_queue_Control **message_queue ) { 4efb4: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 4efb8: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED CORE_message_queue_Attributes *the_mq_attr; struct mq_attr attr; char *name; size_t n; n = strnlen( name_arg, NAME_MAX ); 4efbc: 4878 00ff pea ff <== NOT EXECUTED const char *name_arg, int pshared, struct mq_attr *attr_ptr, POSIX_Message_queue_Control **message_queue ) { 4efc0: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4efc4: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED CORE_message_queue_Attributes *the_mq_attr; struct mq_attr attr; char *name; size_t n; n = strnlen( name_arg, NAME_MAX ); 4efc8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4efca: 4eb9 0005 2f84 jsr 52f84 <== NOT EXECUTED if ( n > NAME_MAX ) 4efd0: 508f addql #8,%sp <== NOT EXECUTED CORE_message_queue_Attributes *the_mq_attr; struct mq_attr attr; char *name; size_t n; n = strnlen( name_arg, NAME_MAX ); 4efd2: 2400 movel %d0,%d2 <== NOT EXECUTED if ( n > NAME_MAX ) 4efd4: 0c80 0000 00ff cmpil #255,%d0 <== NOT EXECUTED 4efda: 6306 blss 4efe2 <_POSIX_Message_queue_Create_support+0x2e> <== NOT EXECUTED 4efdc: 705b moveq #91,%d0 <== NOT EXECUTED 4efde: 6000 0146 braw 4f126 <_POSIX_Message_queue_Create_support+0x172> <== NOT EXECUTED 4efe2: 2039 0006 0168 movel 60168 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4efe8: 5280 addql #1,%d0 <== NOT EXECUTED 4efea: 23c0 0006 0168 movel %d0,60168 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * but were not compared against any existing implementation for * compatibility. See README.mqueue for an example program we * think will print out the defaults. Report anything you find with it. */ if ( attr_ptr == NULL ) { 4eff0: 4a8a tstl %a2 <== NOT EXECUTED 4eff2: 6606 bnes 4effa <_POSIX_Message_queue_Create_support+0x46> <== NOT EXECUTED 4eff4: 7810 moveq #16,%d4 <== NOT EXECUTED 4eff6: 760a moveq #10,%d3 <== NOT EXECUTED 4eff8: 6040 bras 4f03a <_POSIX_Message_queue_Create_support+0x86> <== NOT EXECUTED attr.mq_maxmsg = 10; attr.mq_msgsize = 16; } else { if ( attr_ptr->mq_maxmsg <= 0 ){ 4effa: 4aaa 0004 tstl %a2@(4) <== NOT EXECUTED 4effe: 6f06 bles 4f006 <_POSIX_Message_queue_Create_support+0x52> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EINVAL ); } if ( attr_ptr->mq_msgsize <= 0 ){ 4f000: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 4f004: 6e16 bgts 4f01c <_POSIX_Message_queue_Create_support+0x68> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EINVAL ); 4f006: 7616 moveq #22,%d3 <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EINVAL ); } if ( attr_ptr->mq_msgsize <= 0 ){ _Thread_Enable_dispatch(); 4f008: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4f00e: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 4f014: 2040 moveal %d0,%a0 <== NOT EXECUTED 4f016: 2083 movel %d3,%a0@ <== NOT EXECUTED 4f018: 6000 00ea braw 4f104 <_POSIX_Message_queue_Create_support+0x150> <== NOT EXECUTED } attr = *attr_ptr; 4f01c: 4878 0010 pea 10 <== NOT EXECUTED 4f020: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f022: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 4f026: 4eb9 0005 1bd4 jsr 51bd4 <== NOT EXECUTED 4f02c: 282e fff8 movel %fp@(-8),%d4 <== NOT EXECUTED 4f030: 262e fff4 movel %fp@(-12),%d3 <== NOT EXECUTED 4f034: dffc 0000 000c addal #12,%sp <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Allocate( void ) { return (POSIX_Message_queue_Control *) 4f03a: 4879 0006 044a pea 6044a <_POSIX_Message_queue_Information> <== NOT EXECUTED 4f040: 4eb9 0004 b7f0 jsr 4b7f0 <_Objects_Allocate> <== NOT EXECUTED } the_mq = _POSIX_Message_queue_Allocate(); if ( !the_mq ) { 4f046: 588f addql #4,%sp <== NOT EXECUTED 4f048: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f04a: 4a80 tstl %d0 <== NOT EXECUTED 4f04c: 6616 bnes 4f064 <_POSIX_Message_queue_Create_support+0xb0> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENFILE ); 4f04e: 7417 moveq #23,%d2 <== NOT EXECUTED attr = *attr_ptr; } the_mq = _POSIX_Message_queue_Allocate(); if ( !the_mq ) { _Thread_Enable_dispatch(); 4f050: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENFILE ); 4f056: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 4f05c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4f05e: 2082 movel %d2,%a0@ <== NOT EXECUTED 4f060: 6000 00a2 braw 4f104 <_POSIX_Message_queue_Create_support+0x150> <== NOT EXECUTED } the_mq->process_shared = pshared; the_mq->named = TRUE; the_mq->open_count = 1; 4f064: 7001 moveq #1,%d0 <== NOT EXECUTED if ( !the_mq ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENFILE ); } the_mq->process_shared = pshared; 4f066: 256e 000c 0010 movel %fp@(12),%a2@(16) <== NOT EXECUTED the_mq->named = TRUE; 4f06c: 1540 0014 moveb %d0,%a2@(20) <== NOT EXECUTED the_mq->open_count = 1; 4f070: 2540 0016 movel %d0,%a2@(22) <== NOT EXECUTED the_mq->linked = TRUE; 4f074: 1540 0015 moveb %d0,%a2@(21) <== NOT EXECUTED /* * Make a copy of the user's string for name just in case it was * dynamically constructed. */ name = _Workspace_Allocate(n); 4f078: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f07a: 4eb9 0004 d71c jsr 4d71c <_Workspace_Allocate> <== NOT EXECUTED if (!name) { 4f080: 588f addql #4,%sp <== NOT EXECUTED /* * Make a copy of the user's string for name just in case it was * dynamically constructed. */ name = _Workspace_Allocate(n); 4f082: 2400 movel %d0,%d2 <== NOT EXECUTED if (!name) { 4f084: 6624 bnes 4f0aa <_POSIX_Message_queue_Create_support+0xf6> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free ( POSIX_Message_queue_Control *the_mq ) { _Objects_Free( &_POSIX_Message_queue_Information, &the_mq->Object ); 4f086: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f088: 4879 0006 044a pea 6044a <_POSIX_Message_queue_Information> <== NOT EXECUTED 4f08e: 4eb9 0004 baf0 jsr 4baf0 <_Objects_Free> <== NOT EXECUTED _POSIX_Message_queue_Free( the_mq ); _Thread_Enable_dispatch(); 4f094: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM ); 4f09a: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 4f0a0: 720c moveq #12,%d1 <== NOT EXECUTED 4f0a2: 2040 moveal %d0,%a0 <== NOT EXECUTED 4f0a4: 2081 movel %d1,%a0@ <== NOT EXECUTED 4f0a6: 508f addql #8,%sp <== NOT EXECUTED 4f0a8: 605a bras 4f104 <_POSIX_Message_queue_Create_support+0x150> <== NOT EXECUTED } strcpy( name, name_arg ); 4f0aa: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4f0ac: 47f9 0004 c48a lea 4c48a <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 4f0b2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f0b4: 4eb9 0005 2950 jsr 52950 <== NOT EXECUTED * Note that thread blocking discipline should be based on the * current scheduling policy. */ the_mq_attr = &the_mq->Message_queue.Attributes; the_mq_attr->discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO; 4f0ba: 42aa 005a clrl %a2@(90) <== NOT EXECUTED if ( ! _CORE_message_queue_Initialize( 4f0be: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4f0c0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f0c2: 486a 005a pea %a2@(90) <== NOT EXECUTED 4f0c6: 486a 001a pea %a2@(26) <== NOT EXECUTED 4f0ca: 4eb9 0004 fc4c jsr 4fc4c <_CORE_message_queue_Initialize> <== NOT EXECUTED 4f0d0: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 4f0d6: 4a00 tstb %d0 <== NOT EXECUTED 4f0d8: 662e bnes 4f108 <_POSIX_Message_queue_Create_support+0x154> <== NOT EXECUTED 4f0da: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f0dc: 4879 0006 044a pea 6044a <_POSIX_Message_queue_Information> <== NOT EXECUTED 4f0e2: 4eb9 0004 baf0 jsr 4baf0 <_Objects_Free> <== NOT EXECUTED attr.mq_maxmsg, attr.mq_msgsize ) ) { _POSIX_Message_queue_Free( the_mq ); _Workspace_Free(name); 4f0e8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f0ea: 4eb9 0004 d704 jsr 4d704 <_Workspace_Free> <== NOT EXECUTED _Thread_Enable_dispatch(); 4f0f0: 4e93 jsr %a3@ <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 4f0f2: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 4f0f8: 2040 moveal %d0,%a0 <== NOT EXECUTED 4f0fa: 701c moveq #28,%d0 <== NOT EXECUTED 4f0fc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f102: 2080 movel %d0,%a0@ <== NOT EXECUTED 4f104: 70ff moveq #-1,%d0 <== NOT EXECUTED 4f106: 601e bras 4f126 <_POSIX_Message_queue_Create_support+0x172> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4f108: 2079 0006 0464 moveal 60464 <_POSIX_Message_queue_Information+0x1a>,%a0 <== NOT EXECUTED 4f10e: 4280 clrl %d0 <== NOT EXECUTED 4f110: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 4f114: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string */ the_object->name.name_p = name; 4f118: 2542 000c movel %d2,%a2@(12) <== NOT EXECUTED &_POSIX_Message_queue_Information, &the_mq->Object, name ); *message_queue = the_mq; 4f11c: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 4f120: 208a movel %a2,%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4f122: 4e93 jsr %a3@ <== NOT EXECUTED 4f124: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4f126: 4cee 0c1c ffdc moveml %fp@(-36),%d2-%d4/%a2-%a3 <== NOT EXECUTED 4f12c: 4e5e unlk %fp <== NOT EXECUTED 4f12e: 4e75 rts 0004887c <_POSIX_Message_queue_Delete>: */ void _POSIX_Message_queue_Delete( POSIX_Message_queue_Control *the_mq ) { 4887c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48880: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48882: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( !the_mq->linked && !the_mq->open_count ) { 48886: 4a2a 0015 tstb %a2@(21) <== NOT EXECUTED 4888a: 6648 bnes 488d4 <_POSIX_Message_queue_Delete+0x58> <== NOT EXECUTED 4888c: 4aaa 0016 tstl %a2@(22) <== NOT EXECUTED 48890: 6642 bnes 488d4 <_POSIX_Message_queue_Delete+0x58> <== NOT EXECUTED /* the name memory may have been freed by unlink. */ Objects_Control *the_object = &the_mq->Object; if ( the_object->name.name_p ) 48892: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 48896: 670a beqs 488a2 <_POSIX_Message_queue_Delete+0x26> <== NOT EXECUTED _Workspace_Free( (void *)the_object->name.name_p ); 48898: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4889a: 4eb9 0004 d704 jsr 4d704 <_Workspace_Free> <== NOT EXECUTED 488a0: 588f addql #4,%sp <== NOT EXECUTED _Objects_Close( &_POSIX_Message_queue_Information, the_object ); 488a2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 488a4: 4879 0006 044a pea 6044a <_POSIX_Message_queue_Information> <== NOT EXECUTED 488aa: 4eb9 0004 b878 jsr 4b878 <_Objects_Close> <== NOT EXECUTED _CORE_message_queue_Close( 488b0: 4878 0005 pea 5 <== NOT EXECUTED 488b4: 42a7 clrl %sp@- <== NOT EXECUTED 488b6: 486a 001a pea %a2@(26) <== NOT EXECUTED 488ba: 4eb9 0004 ad70 jsr 4ad70 <_CORE_message_queue_Close> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free ( POSIX_Message_queue_Control *the_mq ) { _Objects_Free( &_POSIX_Message_queue_Information, &the_mq->Object ); 488c0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 488c2: 4879 0006 044a pea 6044a <_POSIX_Message_queue_Information> <== NOT EXECUTED 488c8: 4eb9 0004 baf0 jsr 4baf0 <_Objects_Free> <== NOT EXECUTED 488ce: dffc 0000 001c addal #28,%sp <== NOT EXECUTED ); _POSIX_Message_queue_Free( the_mq ); } } 488d4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 488d8: 4e5e unlk %fp <== NOT EXECUTED 488da: 4e75 rts 00049710 <_POSIX_Message_queue_Manager_initialization>: */ void _POSIX_Message_queue_Manager_initialization( uint32_t maximum_message_queues ) { 49710: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49714: 2f0a movel %a2,%sp@- <== NOT EXECUTED _Objects_Initialize_information( 49716: 45f9 0004 6584 lea 46584 <_Objects_Initialize_information>,%a2 <== NOT EXECUTED */ void _POSIX_Message_queue_Manager_initialization( uint32_t maximum_message_queues ) { 4971c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4971e: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED _Objects_Initialize_information( 49722: 4878 00ff pea ff <== NOT EXECUTED 49726: 4878 0001 pea 1 <== NOT EXECUTED 4972a: 4878 00a2 pea a2 <== NOT EXECUTED 4972e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49730: 4878 0005 pea 5 <== NOT EXECUTED 49734: 4878 0003 pea 3 <== NOT EXECUTED 49738: 4879 0005 815e pea 5815e <_POSIX_Message_queue_Information> <== NOT EXECUTED 4973e: 4e92 jsr %a2@ <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); _Objects_Initialize_information( 49740: 4878 00ff pea ff <== NOT EXECUTED 49744: 4878 0001 pea 1 <== NOT EXECUTED 49748: 4878 0018 pea 18 <== NOT EXECUTED 4974c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4974e: 4878 0004 pea 4 <== NOT EXECUTED 49752: 4878 0003 pea 3 <== NOT EXECUTED 49756: 4879 0005 82c6 pea 582c6 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4975c: 4e92 jsr %a2@ <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4975e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 49762: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); _Objects_Initialize_information( 49766: dffc 0000 0038 addal #56,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4976c: 4e5e unlk %fp <== NOT EXECUTED 4976e: 4e75 rts 0004f130 <_POSIX_Message_queue_Name_to_id>: int _POSIX_Message_queue_Name_to_id( const char *name, Objects_Id *id ) { 4f130: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4f134: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f136: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; if ( !name ) 4f13a: 4a8a tstl %a2 <== NOT EXECUTED 4f13c: 673e beqs 4f17c <_POSIX_Message_queue_Name_to_id+0x4c> <== NOT EXECUTED return EINVAL; if ( !name[0] ) 4f13e: 4a12 tstb %a2@ <== NOT EXECUTED 4f140: 673a beqs 4f17c <_POSIX_Message_queue_Name_to_id+0x4c> <== NOT EXECUTED return EINVAL; if( strlen(name) > PATH_MAX ) 4f142: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f144: 4eb9 0005 2e04 jsr 52e04 <== NOT EXECUTED 4f14a: 588f addql #4,%sp <== NOT EXECUTED 4f14c: 0c80 0000 00ff cmpil #255,%d0 <== NOT EXECUTED 4f152: 6304 blss 4f158 <_POSIX_Message_queue_Name_to_id+0x28> <== NOT EXECUTED 4f154: 705b moveq #91,%d0 <== NOT EXECUTED 4f156: 6026 bras 4f17e <_POSIX_Message_queue_Name_to_id+0x4e> <== NOT EXECUTED return ENAMETOOLONG; status = _Objects_Name_to_id_string( 4f158: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4f15c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f15e: 4879 0006 044a pea 6044a <_POSIX_Message_queue_Information> <== NOT EXECUTED 4f164: 4eb9 0005 00bc jsr 500bc <_Objects_Name_to_id_string> <== NOT EXECUTED &_POSIX_Message_queue_Information, name, id ); if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) 4f16a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f170: 4a80 tstl %d0 <== NOT EXECUTED 4f172: 6704 beqs 4f178 <_POSIX_Message_queue_Name_to_id+0x48> <== NOT EXECUTED 4f174: 7002 moveq #2,%d0 <== NOT EXECUTED 4f176: 6006 bras 4f17e <_POSIX_Message_queue_Name_to_id+0x4e> <== NOT EXECUTED 4f178: 4280 clrl %d0 <== NOT EXECUTED 4f17a: 6002 bras 4f17e <_POSIX_Message_queue_Name_to_id+0x4e> <== NOT EXECUTED 4f17c: 7016 moveq #22,%d0 <== NOT EXECUTED return 0; return ENOENT; } 4f17e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4f182: 4e5e unlk %fp <== NOT EXECUTED 4f184: 4e75 rts <== NOT EXECUTED ... 00048a04 <_POSIX_Message_queue_Notify_handler>: */ void _POSIX_Message_queue_Notify_handler( void *user_data ) { 48a04: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48a08: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48a0a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 48a0e: 2f02 movel %d2,%sp@- <== NOT EXECUTED POSIX_Message_queue_Control *the_mq; the_mq = user_data; kill( getpid(), the_mq->notification.sigev_signo ); 48a10: 242a 0092 movel %a2@(146),%d2 <== NOT EXECUTED 48a14: 4eb9 0004 e820 jsr 4e820 <== NOT EXECUTED 48a1a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48a1c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48a1e: 4eb9 0004 ef9c jsr 4ef9c <== NOT EXECUTED the_message_queue->notify_argument = the_argument; 48a24: 42aa 007e clrl %a2@(126) <== NOT EXECUTED _CORE_message_queue_Set_notify( &the_mq->Message_queue, NULL, NULL ); } 48a28: 242e fff8 movel %fp@(-8),%d2 <== 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; 48a2c: 42aa 007a clrl %a2@(122) <== NOT EXECUTED 48a30: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED the_message_queue->notify_argument = the_argument; 48a34: 508f addql #8,%sp <== NOT EXECUTED 48a36: 4e5e unlk %fp <== NOT EXECUTED 48a38: 4e75 rts <== NOT EXECUTED ... 00048bdc <_POSIX_Message_queue_Receive_support>: size_t msg_len, unsigned int *msg_prio, bool wait, Watchdog_Interval timeout ) { 48bdc: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 48be0: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *_POSIX_Message_queue_Get_fd ( Objects_Id id, Objects_Locations *location ) { return (POSIX_Message_queue_Control_fd *) 48be4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48be8: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 48bec: 246e 0014 moveal %fp@(20),%a2 <== NOT EXECUTED 48bf0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48bf2: 242e 0018 movel %fp@(24),%d2 <== NOT EXECUTED 48bf6: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 48bfc: 4eb9 0004 bc50 jsr 4bc50 <_Objects_Get> <== NOT EXECUTED Objects_Locations location; size_t length_out; bool do_wait; the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { 48c02: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48c08: 2040 moveal %d0,%a0 <== NOT EXECUTED 48c0a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48c0e: 6600 00d0 bnew 48ce0 <_POSIX_Message_queue_Receive_support+0x104> <== NOT EXECUTED case OBJECTS_LOCAL: if ( (the_mq_fd->oflag & O_ACCMODE) == O_WRONLY ) { 48c12: 2228 0014 movel %a0@(20),%d1 <== NOT EXECUTED 48c16: 7003 moveq #3,%d0 <== NOT EXECUTED 48c18: c081 andl %d1,%d0 <== NOT EXECUTED 48c1a: 7801 moveq #1,%d4 <== NOT EXECUTED 48c1c: b880 cmpl %d0,%d4 <== NOT EXECUTED 48c1e: 6614 bnes 48c34 <_POSIX_Message_queue_Receive_support+0x58> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EBADF ); 48c20: 7609 moveq #9,%d3 <== NOT EXECUTED the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( (the_mq_fd->oflag & O_ACCMODE) == O_WRONLY ) { _Thread_Enable_dispatch(); 48c22: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 48c28: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48c2e: 2040 moveal %d0,%a0 <== NOT EXECUTED 48c30: 2083 movel %d3,%a0@ <== NOT EXECUTED 48c32: 6020 bras 48c54 <_POSIX_Message_queue_Receive_support+0x78> <== NOT EXECUTED } the_mq = the_mq_fd->Queue; 48c34: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED if ( msg_len < the_mq->Message_queue.maximum_message_size ) { 48c38: 2028 0066 movel %a0@(102),%d0 <== NOT EXECUTED 48c3c: b0ae 0010 cmpl %fp@(16),%d0 <== NOT EXECUTED 48c40: 6318 blss 48c5a <_POSIX_Message_queue_Receive_support+0x7e> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EMSGSIZE ); 48c42: 747a moveq #122,%d2 <== NOT EXECUTED } the_mq = the_mq_fd->Queue; if ( msg_len < the_mq->Message_queue.maximum_message_size ) { _Thread_Enable_dispatch(); 48c44: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EMSGSIZE ); 48c4a: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48c50: 2040 moveal %d0,%a0 <== NOT EXECUTED 48c52: 2082 movel %d2,%a0@ <== NOT EXECUTED 48c54: 70ff moveq #-1,%d0 <== NOT EXECUTED 48c56: 6000 0096 braw 48cee <_POSIX_Message_queue_Receive_support+0x112> <== NOT EXECUTED length_out = -1; /* * A timed receive with a bad time will do a poll regardless. */ if ( wait ) 48c5a: 4a02 tstb %d2 <== NOT EXECUTED 48c5c: 6604 bnes 48c62 <_POSIX_Message_queue_Receive_support+0x86> <== NOT EXECUTED 48c5e: 4200 clrb %d0 <== NOT EXECUTED 48c60: 600a bras 48c6c <_POSIX_Message_queue_Receive_support+0x90> <== NOT EXECUTED do_wait = (the_mq_fd->oflag & O_NONBLOCK) ? FALSE : TRUE; 48c62: 780e moveq #14,%d4 <== NOT EXECUTED 48c64: 7001 moveq #1,%d0 <== NOT EXECUTED 48c66: e8a9 lsrl %d4,%d1 <== NOT EXECUTED 48c68: b181 eorl %d0,%d1 <== NOT EXECUTED 48c6a: c081 andl %d1,%d0 <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ _CORE_message_queue_Seize( 48c6c: 2f2e 001c movel %fp@(28),%sp@- <== NOT EXECUTED 48c70: 7201 moveq #1,%d1 <== NOT EXECUTED 48c72: c280 andl %d0,%d1 <== NOT EXECUTED 48c74: 2f01 movel %d1,%sp@- <== NOT EXECUTED /* * Now if something goes wrong, we return a "length" of -1 * to indicate an error. */ length_out = -1; 48c76: 78ff moveq #-1,%d4 <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ _CORE_message_queue_Seize( 48c78: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 48c7c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48c80: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48c82: 4868 001a pea %a0@(26) <== NOT EXECUTED /* * Now if something goes wrong, we return a "length" of -1 * to indicate an error. */ length_out = -1; 48c86: 2d44 fff8 movel %d4,%fp@(-8) <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ _CORE_message_queue_Seize( 48c8a: 4eb9 0004 ae10 jsr 4ae10 <_CORE_message_queue_Seize> <== NOT EXECUTED &length_out, do_wait, timeout ); _Thread_Enable_dispatch(); 48c90: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED *msg_prio = 48c96: 2079 0006 0226 moveal 60226 <_Thread_Executing>,%a0 <== NOT EXECUTED 48c9c: 24a8 0024 movel %a0@(36),%a2@ <== NOT EXECUTED 48ca0: 6c06 bges 48ca8 <_POSIX_Message_queue_Receive_support+0xcc> <== NOT EXECUTED 48ca2: 2012 movel %a2@,%d0 <== NOT EXECUTED 48ca4: 4480 negl %d0 <== NOT EXECUTED 48ca6: 2480 movel %d0,%a2@ <== NOT EXECUTED _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count); if ( !_Thread_Executing->Wait.return_code ) 48ca8: 2079 0006 0226 moveal 60226 <_Thread_Executing>,%a0 <== NOT EXECUTED 48cae: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 48cb4: 4aa8 0034 tstl %a0@(52) <== NOT EXECUTED 48cb8: 6606 bnes 48cc0 <_POSIX_Message_queue_Receive_support+0xe4> <== NOT EXECUTED return length_out; 48cba: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 48cbe: 602e bras 48cee <_POSIX_Message_queue_Receive_support+0x112> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( 48cc0: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48cc6: 2079 0006 0226 moveal 60226 <_Thread_Executing>,%a0 <== NOT EXECUTED 48ccc: 2440 moveal %d0,%a2 <== NOT EXECUTED 48cce: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 48cd2: 4eb9 0004 8f2c jsr 48f2c <_POSIX_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 48cd8: 2480 movel %d0,%a2@ <== NOT EXECUTED 48cda: 588f addql #4,%sp <== NOT EXECUTED 48cdc: 6000 ff76 braw 48c54 <_POSIX_Message_queue_Receive_support+0x78> <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 48ce0: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48ce6: 2040 moveal %d0,%a0 <== NOT EXECUTED 48ce8: 7209 moveq #9,%d1 <== NOT EXECUTED 48cea: 70ff moveq #-1,%d0 <== NOT EXECUTED 48cec: 2081 movel %d1,%a0@ <== NOT EXECUTED } 48cee: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED 48cf4: 4e5e unlk %fp <== NOT EXECUTED 48cf6: 4e75 rts 00048d1c <_POSIX_Message_queue_Send_support>: size_t msg_len, uint32_t msg_prio, bool wait, Watchdog_Interval timeout ) { 48d1c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48d20: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 48d24: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 48d28: 262e 0014 movel %fp@(20),%d3 <== NOT EXECUTED 48d2c: 242e 0018 movel %fp@(24),%d2 <== NOT EXECUTED /* * Validate the priority. * XXX - Do not validate msg_prio is not less than 0. */ if ( msg_prio > MQ_PRIO_MAX ) 48d30: 7020 moveq #32,%d0 <== NOT EXECUTED 48d32: b083 cmpl %d3,%d0 <== NOT EXECUTED 48d34: 640e bccs 48d44 <_POSIX_Message_queue_Send_support+0x28> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 48d36: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48d3c: 7616 moveq #22,%d3 <== NOT EXECUTED 48d3e: 2040 moveal %d0,%a0 <== NOT EXECUTED 48d40: 2083 movel %d3,%a0@ <== NOT EXECUTED 48d42: 603e bras 48d82 <_POSIX_Message_queue_Send_support+0x66> <== NOT EXECUTED 48d44: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48d48: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48d4a: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 48d50: 4eb9 0004 bc50 jsr 4bc50 <_Objects_Get> <== NOT EXECUTED the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { 48d56: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48d5c: 2040 moveal %d0,%a0 <== NOT EXECUTED 48d5e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48d62: 6600 009c bnew 48e00 <_POSIX_Message_queue_Send_support+0xe4> <== NOT EXECUTED case OBJECTS_LOCAL: if ( (the_mq_fd->oflag & O_ACCMODE) == O_RDONLY ) { 48d66: 2228 0014 movel %a0@(20),%d1 <== NOT EXECUTED 48d6a: 7003 moveq #3,%d0 <== NOT EXECUTED 48d6c: c081 andl %d1,%d0 <== NOT EXECUTED 48d6e: 6618 bnes 48d88 <_POSIX_Message_queue_Send_support+0x6c> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EBADF ); 48d70: 7409 moveq #9,%d2 <== NOT EXECUTED the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( (the_mq_fd->oflag & O_ACCMODE) == O_RDONLY ) { _Thread_Enable_dispatch(); 48d72: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 48d78: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48d7e: 2040 moveal %d0,%a0 <== NOT EXECUTED 48d80: 2082 movel %d2,%a0@ <== NOT EXECUTED 48d82: 70ff moveq #-1,%d0 <== NOT EXECUTED 48d84: 6000 0088 braw 48e0e <_POSIX_Message_queue_Send_support+0xf2> <== NOT EXECUTED } the_mq = the_mq_fd->Queue; 48d88: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED /* * A timed receive with a bad time will do a poll regardless. */ if ( wait ) 48d8c: 4a02 tstb %d2 <== NOT EXECUTED 48d8e: 6604 bnes 48d94 <_POSIX_Message_queue_Send_support+0x78> <== NOT EXECUTED 48d90: 4200 clrb %d0 <== NOT EXECUTED 48d92: 600c bras 48da0 <_POSIX_Message_queue_Send_support+0x84> <== NOT EXECUTED do_wait = (the_mq_fd->oflag & O_NONBLOCK) ? FALSE : TRUE; 48d94: 700e moveq #14,%d0 <== NOT EXECUTED 48d96: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 48d98: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 48d9c: b181 eorl %d0,%d1 <== NOT EXECUTED 48d9e: c081 andl %d1,%d0 <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ msg_status = _CORE_message_queue_Submit( 48da0: 2f2e 001c movel %fp@(28),%sp@- <== NOT EXECUTED 48da4: 7201 moveq #1,%d1 <== NOT EXECUTED 48da6: c280 andl %d0,%d1 <== NOT EXECUTED 48da8: 2f01 movel %d1,%sp@- <== NOT EXECUTED 48daa: 4483 negl %d3 <== NOT EXECUTED 48dac: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48dae: 42a7 clrl %sp@- <== NOT EXECUTED 48db0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48db2: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 48db6: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48dba: 4868 001a pea %a0@(26) <== NOT EXECUTED 48dbe: 4eb9 0004 af50 jsr 4af50 <_CORE_message_queue_Submit> <== NOT EXECUTED _POSIX_Message_queue_Priority_to_core( msg_prio ), do_wait, timeout /* no timeout */ ); _Thread_Enable_dispatch(); 48dc4: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ msg_status = _CORE_message_queue_Submit( 48dca: 2400 movel %d0,%d2 <== NOT EXECUTED _POSIX_Message_queue_Priority_to_core( msg_prio ), do_wait, timeout /* no timeout */ ); _Thread_Enable_dispatch(); 48dcc: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED * after it wakes up. The returned status is correct for * non-blocking operations but if we blocked, then we need * to look at the status in our TCB. */ if ( msg_status == CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT ) 48dd2: 7007 moveq #7,%d0 <== NOT EXECUTED 48dd4: b082 cmpl %d2,%d0 <== NOT EXECUTED 48dd6: 660a bnes 48de2 <_POSIX_Message_queue_Send_support+0xc6> <== NOT EXECUTED msg_status = _Thread_Executing->Wait.return_code; 48dd8: 2079 0006 0226 moveal 60226 <_Thread_Executing>,%a0 <== NOT EXECUTED 48dde: 2428 0034 movel %a0@(52),%d2 <== NOT EXECUTED if ( !msg_status ) 48de2: 4a82 tstl %d2 <== NOT EXECUTED 48de4: 6604 bnes 48dea <_POSIX_Message_queue_Send_support+0xce> <== NOT EXECUTED 48de6: 4280 clrl %d0 <== NOT EXECUTED 48de8: 6024 bras 48e0e <_POSIX_Message_queue_Send_support+0xf2> <== NOT EXECUTED return msg_status; rtems_set_errno_and_return_minus_one( 48dea: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48df0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48df2: 2440 moveal %d0,%a2 <== NOT EXECUTED 48df4: 4eb9 0004 8f2c jsr 48f2c <_POSIX_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 48dfa: 2480 movel %d0,%a2@ <== NOT EXECUTED 48dfc: 588f addql #4,%sp <== NOT EXECUTED 48dfe: 6082 bras 48d82 <_POSIX_Message_queue_Send_support+0x66> <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 48e00: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48e06: 2040 moveal %d0,%a0 <== NOT EXECUTED 48e08: 7209 moveq #9,%d1 <== NOT EXECUTED 48e0a: 70ff moveq #-1,%d0 <== NOT EXECUTED 48e0c: 2081 movel %d1,%a0@ <== NOT EXECUTED } 48e0e: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 48e14: 4e5e unlk %fp <== NOT EXECUTED 48e16: 4e75 rts 00048f2c <_POSIX_Message_queue_Translate_core_message_queue_return_code>: int _POSIX_Message_queue_Translate_core_message_queue_return_code( uint32_t the_message_queue_status ) { 48f2c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_message_queue_status > CORE_MESSAGE_QUEUE_STATUS_LAST ) return EINVAL; #endif return _POSIX_Message_queue_Return_codes[the_message_queue_status]; } 48f30: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED int _POSIX_Message_queue_Translate_core_message_queue_return_code( uint32_t the_message_queue_status ) { 48f34: 41f9 0005 ce30 lea 5ce30 <_POSIX_Message_queue_Return_codes>,%a0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_message_queue_status > CORE_MESSAGE_QUEUE_STATUS_LAST ) return EINVAL; #endif return _POSIX_Message_queue_Return_codes[the_message_queue_status]; } 48f3a: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 48f3e: 4e5e unlk %fp <== NOT EXECUTED 48f40: 4e75 rts <== NOT EXECUTED ... 00046708 <_POSIX_Mutex_Get>: POSIX_Mutex_Control *_POSIX_Mutex_Get ( pthread_mutex_t *mutex, Objects_Locations *location ) { 46708: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4670c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4670e: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 46712: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46714: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 46718: 4a8a tstl %a2 <== NOT EXECUTED 4671a: 6716 beqs 46732 <_POSIX_Mutex_Get+0x2a> <== NOT EXECUTED 4671c: 70ff moveq #-1,%d0 <== NOT EXECUTED 4671e: b092 cmpl %a2@,%d0 <== NOT EXECUTED 46720: 6618 bnes 4673a <_POSIX_Mutex_Get+0x32> <== NOT EXECUTED 46722: 42a7 clrl %sp@- <== NOT EXECUTED 46724: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46726: 4eb9 0004 67a4 jsr 467a4 <== NOT EXECUTED 4672c: 508f addql #8,%sp <== NOT EXECUTED 4672e: 4a80 tstl %d0 <== NOT EXECUTED 46730: 6708 beqs 4673a <_POSIX_Mutex_Get+0x32> <== NOT EXECUTED 46732: 7201 moveq #1,%d1 <== NOT EXECUTED 46734: 2681 movel %d1,%a3@ <== NOT EXECUTED 46736: 4280 clrl %d0 <== NOT EXECUTED 46738: 6016 bras 46750 <_POSIX_Mutex_Get+0x48> <== NOT EXECUTED return (POSIX_Mutex_Control *) 4673a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4673c: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 4673e: 4879 0005 d336 pea 5d336 <_POSIX_Mutex_Information> <== NOT EXECUTED 46744: 4eb9 0004 9224 jsr 49224 <_Objects_Get> <== NOT EXECUTED 4674a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED _Objects_Get( &_POSIX_Mutex_Information, *id, location ); } 46750: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46754: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 46758: 4e5e unlk %fp <== NOT EXECUTED 4675a: 4e75 rts 000466b0 <_POSIX_Mutex_Get_interrupt_disable>: POSIX_Mutex_Control *_POSIX_Mutex_Get_interrupt_disable ( pthread_mutex_t *mutex, Objects_Locations *location, ISR_Level *level ) { 466b0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 466b4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 466b6: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 466ba: 2f0a movel %a2,%sp@- <== NOT EXECUTED 466bc: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 466c0: 4a8a tstl %a2 <== NOT EXECUTED 466c2: 6716 beqs 466da <_POSIX_Mutex_Get_interrupt_disable+0x2a> <== NOT EXECUTED 466c4: 70ff moveq #-1,%d0 <== NOT EXECUTED 466c6: b092 cmpl %a2@,%d0 <== NOT EXECUTED 466c8: 6618 bnes 466e2 <_POSIX_Mutex_Get_interrupt_disable+0x32> <== NOT EXECUTED 466ca: 42a7 clrl %sp@- <== NOT EXECUTED 466cc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 466ce: 4eb9 0004 67a4 jsr 467a4 <== NOT EXECUTED 466d4: 508f addql #8,%sp <== NOT EXECUTED 466d6: 4a80 tstl %d0 <== NOT EXECUTED 466d8: 6708 beqs 466e2 <_POSIX_Mutex_Get_interrupt_disable+0x32> <== NOT EXECUTED 466da: 7001 moveq #1,%d0 <== NOT EXECUTED 466dc: 2680 movel %d0,%a3@ <== NOT EXECUTED 466de: 4280 clrl %d0 <== NOT EXECUTED 466e0: 601a bras 466fc <_POSIX_Mutex_Get_interrupt_disable+0x4c> <== NOT EXECUTED return (POSIX_Mutex_Control *) 466e2: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 466e6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 466e8: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 466ea: 4879 0005 d336 pea 5d336 <_POSIX_Mutex_Information> <== NOT EXECUTED 466f0: 4eb9 0004 91d4 jsr 491d4 <_Objects_Get_isr_disable> <== NOT EXECUTED 466f6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED _Objects_Get_isr_disable( &_POSIX_Mutex_Information, *id, location, level ); } 466fc: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46700: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 46704: 4e5e unlk %fp <== NOT EXECUTED 46706: 4e75 rts 000468d8 <_POSIX_Mutex_Lock_support>: int _POSIX_Mutex_Lock_support( pthread_mutex_t *mutex, bool blocking, Watchdog_Interval timeout ) { 468d8: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 468dc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 468de: 142e 000f moveb %fp@(15),%d2 <== NOT EXECUTED register POSIX_Mutex_Control *the_mutex; Objects_Locations location; ISR_Level level; the_mutex = _POSIX_Mutex_Get_interrupt_disable( mutex, &location, &level ); 468e2: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 468e6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 468ea: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 468ee: 4eb9 0004 66b0 jsr 466b0 <_POSIX_Mutex_Get_interrupt_disable> <== NOT EXECUTED switch ( location ) { 468f4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED { register POSIX_Mutex_Control *the_mutex; Objects_Locations location; ISR_Level level; the_mutex = _POSIX_Mutex_Get_interrupt_disable( mutex, &location, &level ); 468fa: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 468fc: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46900: 6704 beqs 46906 <_POSIX_Mutex_Lock_support+0x2e> <== NOT EXECUTED 46902: 7016 moveq #22,%d0 <== NOT EXECUTED 46904: 6032 bras 46938 <_POSIX_Mutex_Lock_support+0x60> <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_mutex_Seize( 46906: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 4690a: 4280 clrl %d0 <== NOT EXECUTED 4690c: 1002 moveb %d2,%d0 <== NOT EXECUTED 4690e: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 46912: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46914: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 46918: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4691c: 4eb9 0004 874c jsr 4874c <_CORE_mutex_Seize> <== NOT EXECUTED the_mutex->Object.id, blocking, timeout, level ); return _POSIX_Mutex_Translate_core_mutex_return_code( 46922: 2079 0005 d0d6 moveal 5d0d6 <_Thread_Executing>,%a0 <== NOT EXECUTED 46928: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 4692c: 4eb9 0004 6a10 jsr 46a10 <_POSIX_Mutex_Translate_core_mutex_return_code> <== NOT EXECUTED 46932: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46938: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4693c: 4e5e unlk %fp <== NOT EXECUTED 4693e: 4e75 rts 00049770 <_POSIX_Mutex_Manager_initialization>: */ void _POSIX_Mutex_Manager_initialization( uint32_t maximum_mutexes ) { 49770: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49774: 4878 00ff pea ff <== NOT EXECUTED 49778: 4878 0001 pea 1 <== NOT EXECUTED 4977c: 4878 0076 pea 76 <== NOT EXECUTED 49780: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49784: 4878 0006 pea 6 <== NOT EXECUTED 49788: 4878 0003 pea 3 <== NOT EXECUTED 4978c: 4879 0005 819a pea 5819a <_POSIX_Mutex_Information> <== NOT EXECUTED 49792: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49798: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4979e: 4e5e unlk %fp <== NOT EXECUTED 497a0: 4e75 rts <== NOT EXECUTED ... 00046a10 <_POSIX_Mutex_Translate_core_mutex_return_code>: int _POSIX_Mutex_Translate_core_mutex_return_code( CORE_mutex_Status the_mutex_status ) { 46a10: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_mutex_status > CORE_MUTEX_STATUS_LAST ) return EINVAL; #endif return _POSIX_Mutex_Return_codes[the_mutex_status]; } 46a14: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED int _POSIX_Mutex_Translate_core_mutex_return_code( CORE_mutex_Status the_mutex_status ) { 46a18: 41f9 0005 a1be lea 5a1be <_POSIX_Mutex_Return_codes>,%a0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_mutex_status > CORE_MUTEX_STATUS_LAST ) return EINVAL; #endif return _POSIX_Mutex_Return_codes[the_mutex_status]; } 46a1e: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 46a22: 4e5e unlk %fp <== NOT EXECUTED 46a24: 4e75 rts <== NOT EXECUTED ... 000497d8 <_POSIX_RWLock_Manager_initialization>: */ void _POSIX_RWLock_Manager_initialization( uint32_t maximum_rwlocks ) { 497d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 497dc: 4878 00ff pea ff <== NOT EXECUTED 497e0: 4878 0001 pea 1 <== NOT EXECUTED 497e4: 4878 005c pea 5c <== NOT EXECUTED 497e8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 497ec: 4878 000b pea b <== NOT EXECUTED 497f0: 4878 0003 pea 3 <== NOT EXECUTED 497f4: 4879 0005 8032 pea 58032 <_POSIX_RWLock_Information> <== NOT EXECUTED 497fa: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49800: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 49806: 4e5e unlk %fp <== NOT EXECUTED 49808: 4e75 rts <== NOT EXECUTED ... 0004573c <_POSIX_RWLock_Translate_core_RWLock_return_code>: int _POSIX_RWLock_Translate_core_RWLock_return_code( CORE_RWLock_Status the_rwlock_status ) { 4573c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_rwlock_status > CORE_RWLOCK_STATUS_LAST ) return EINVAL; #endif return _POSIX_RWLock_Return_codes[the_rwlock_status]; } 45740: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED int _POSIX_RWLock_Translate_core_RWLock_return_code( CORE_RWLock_Status the_rwlock_status ) { 45744: 41f9 0005 74cc lea 574cc <_POSIX_RWLock_Return_codes>,%a0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_rwlock_status > CORE_RWLOCK_STATUS_LAST ) return EINVAL; #endif return _POSIX_RWLock_Return_codes[the_rwlock_status]; } 4574a: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4574e: 4e5e unlk %fp <== NOT EXECUTED 45750: 4e75 rts <== NOT EXECUTED ... 0004cf0c <_POSIX_Semaphore_Create_support>: const char *name, int pshared, unsigned int value, POSIX_Semaphore_Control **the_sem ) { 4cf0c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4cf10: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4cf12: 2039 0005 cdf0 movel 5cdf0 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4cf18: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cf1a: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4cf1e: 5280 addql #1,%d0 <== NOT EXECUTED 4cf20: 23c0 0005 cdf0 movel %d0,5cdf0 <_Thread_Dispatch_disable_level> <== NOT EXECUTED char *name_p = (char *)name; _Thread_Disable_dispatch(); /* Sharing semaphores among processes is not currently supported */ if (pshared != 0) { 4cf26: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 4cf2a: 6714 beqs 4cf40 <_POSIX_Semaphore_Create_support+0x34> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOSYS ); 4cf2c: 7458 moveq #88,%d2 <== NOT EXECUTED _Thread_Disable_dispatch(); /* Sharing semaphores among processes is not currently supported */ if (pshared != 0) { _Thread_Enable_dispatch(); 4cf2e: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 4cf34: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 4cf3a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4cf3c: 2082 movel %d2,%a0@ <== NOT EXECUTED 4cf3e: 6028 bras 4cf68 <_POSIX_Semaphore_Create_support+0x5c> <== NOT EXECUTED } if ( name ) { 4cf40: 4a82 tstl %d2 <== NOT EXECUTED 4cf42: 672a beqs 4cf6e <_POSIX_Semaphore_Create_support+0x62> <== NOT EXECUTED if( strlen(name) > PATH_MAX ) { 4cf44: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cf46: 4eb9 0005 06dc jsr 506dc <== NOT EXECUTED 4cf4c: 588f addql #4,%sp <== NOT EXECUTED 4cf4e: 0c80 0000 00ff cmpil #255,%d0 <== NOT EXECUTED 4cf54: 6318 blss 4cf6e <_POSIX_Semaphore_Create_support+0x62> <== NOT EXECUTED _Thread_Enable_dispatch(); 4cf56: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 4cf5c: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 4cf62: 725b moveq #91,%d1 <== NOT EXECUTED 4cf64: 2040 moveal %d0,%a0 <== NOT EXECUTED 4cf66: 2081 movel %d1,%a0@ <== NOT EXECUTED 4cf68: 70ff moveq #-1,%d0 <== NOT EXECUTED 4cf6a: 6000 008c braw 4cff8 <_POSIX_Semaphore_Create_support+0xec> <== NOT EXECUTED * _POSIX_Semaphore_Allocate */ RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Allocate( void ) { return (POSIX_Semaphore_Control *) 4cf6e: 4879 0005 d05a pea 5d05a <_POSIX_Semaphore_Information> <== NOT EXECUTED 4cf74: 4eb9 0004 9028 jsr 49028 <_Objects_Allocate> <== NOT EXECUTED } } the_semaphore = _POSIX_Semaphore_Allocate(); if ( !the_semaphore ) { 4cf7a: 588f addql #4,%sp <== NOT EXECUTED 4cf7c: 2440 moveal %d0,%a2 <== NOT EXECUTED 4cf7e: 4a80 tstl %d0 <== NOT EXECUTED 4cf80: 6614 bnes 4cf96 <_POSIX_Semaphore_Create_support+0x8a> <== NOT EXECUTED _Thread_Enable_dispatch(); 4cf82: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 4cf88: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 4cf8e: 2040 moveal %d0,%a0 <== NOT EXECUTED 4cf90: 701c moveq #28,%d0 <== NOT EXECUTED 4cf92: 2080 movel %d0,%a0@ <== NOT EXECUTED 4cf94: 60d2 bras 4cf68 <_POSIX_Semaphore_Create_support+0x5c> <== NOT EXECUTED } the_semaphore->process_shared = pshared; 4cf96: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED if ( name ) { 4cf9a: 4a82 tstl %d2 <== NOT EXECUTED 4cf9c: 6708 beqs 4cfa6 <_POSIX_Semaphore_Create_support+0x9a> <== NOT EXECUTED the_semaphore->named = TRUE; the_semaphore->open_count = 1; 4cf9e: 7001 moveq #1,%d0 <== NOT EXECUTED 4cfa0: 2540 0016 movel %d0,%a2@(22) <== NOT EXECUTED 4cfa4: 6006 bras 4cfac <_POSIX_Semaphore_Create_support+0xa0> <== NOT EXECUTED the_semaphore->linked = TRUE; } else { the_semaphore->named = FALSE; 4cfa6: 4200 clrb %d0 <== NOT EXECUTED the_semaphore->open_count = 0; 4cfa8: 42aa 0016 clrl %a2@(22) <== NOT EXECUTED if ( name ) { the_semaphore->named = TRUE; the_semaphore->open_count = 1; the_semaphore->linked = TRUE; } else { the_semaphore->named = FALSE; 4cfac: 1540 0014 moveb %d0,%a2@(20) <== NOT EXECUTED the_semaphore->open_count = 0; the_semaphore->linked = FALSE; 4cfb0: 1540 0015 moveb %d0,%a2@(21) <== NOT EXECUTED /* * This effectively disables limit checking. */ the_sem_attr->maximum_count = 0xFFFFFFFF; 4cfb4: 70ff moveq #-1,%d0 <== NOT EXECUTED 4cfb6: 2540 005a movel %d0,%a2@(90) <== NOT EXECUTED * be derived from the current scheduling policy. One * thing is certain, no matter what we decide, it won't be * the same as all other POSIX implementations. :) */ the_sem_attr->discipline = CORE_SEMAPHORE_DISCIPLINES_FIFO; 4cfba: 42aa 005e clrl %a2@(94) <== NOT EXECUTED * This effectively disables limit checking. */ the_sem_attr->maximum_count = 0xFFFFFFFF; _CORE_semaphore_Initialize( &the_semaphore->Semaphore, the_sem_attr, value ); 4cfbe: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4cfc2: 486a 005a pea %a2@(90) <== NOT EXECUTED 4cfc6: 486a 001a pea %a2@(26) <== NOT EXECUTED 4cfca: 4eb9 0004 8bdc jsr 48bdc <_CORE_semaphore_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4cfd0: 2079 0005 d074 moveal 5d074 <_POSIX_Semaphore_Information+0x1a>,%a0 <== NOT EXECUTED 4cfd6: 4280 clrl %d0 <== NOT EXECUTED 4cfd8: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 4cfdc: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string */ the_object->name.name_p = name; 4cfe0: 2542 000c movel %d2,%a2@(12) <== NOT EXECUTED &_POSIX_Semaphore_Information, &the_semaphore->Object, name_p ); *the_sem = the_semaphore; 4cfe4: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 4cfe8: 208a movel %a2,%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4cfea: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED 4cff0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4cff6: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4cff8: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4cffc: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4d000: 4e5e unlk %fp <== NOT EXECUTED 4d002: 4e75 rts 0004d004 <_POSIX_Semaphore_Delete>: */ void _POSIX_Semaphore_Delete( POSIX_Semaphore_Control *the_semaphore ) { 4d004: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d008: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d00a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( !the_semaphore->linked && !the_semaphore->open_count ) { 4d00e: 4a2a 0015 tstb %a2@(21) <== NOT EXECUTED 4d012: 6638 bnes 4d04c <_POSIX_Semaphore_Delete+0x48> <== NOT EXECUTED 4d014: 4aaa 0016 tstl %a2@(22) <== NOT EXECUTED 4d018: 6632 bnes 4d04c <_POSIX_Semaphore_Delete+0x48> <== NOT EXECUTED _Objects_Close( &_POSIX_Semaphore_Information, &the_semaphore->Object ); 4d01a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d01c: 4879 0005 d05a pea 5d05a <_POSIX_Semaphore_Information> <== NOT EXECUTED 4d022: 4eb9 0004 90b0 jsr 490b0 <_Objects_Close> <== NOT EXECUTED _CORE_semaphore_Flush( 4d028: 4878 ffff pea ffffffff <== NOT EXECUTED 4d02c: 42a7 clrl %sp@- <== NOT EXECUTED 4d02e: 486a 001a pea %a2@(26) <== NOT EXECUTED 4d032: 4eb9 0004 8bd0 jsr 48bd0 <_CORE_semaphore_Flush> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Free ( POSIX_Semaphore_Control *the_semaphore ) { _Objects_Free( &_POSIX_Semaphore_Information, &the_semaphore->Object ); 4d038: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d03a: 4879 0005 d05a pea 5d05a <_POSIX_Semaphore_Information> <== NOT EXECUTED 4d040: 4eb9 0004 9328 jsr 49328 <_Objects_Free> <== NOT EXECUTED 4d046: dffc 0000 001c addal #28,%sp <== NOT EXECUTED -1 ); _POSIX_Semaphore_Free( the_semaphore ); } } 4d04c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4d050: 4e5e unlk %fp <== NOT EXECUTED 4d052: 4e75 rts 00049cf0 <_POSIX_Semaphore_Manager_initialization>: */ void _POSIX_Semaphore_Manager_initialization( uint32_t maximum_semaphores ) { 49cf0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49cf4: 4878 00ff pea ff <== NOT EXECUTED 49cf8: 4878 0001 pea 1 <== NOT EXECUTED 49cfc: 4878 0066 pea 66 <== NOT EXECUTED 49d00: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49d04: 4878 0007 pea 7 <== NOT EXECUTED 49d08: 4878 0003 pea 3 <== NOT EXECUTED 49d0c: 4879 0005 80e6 pea 580e6 <_POSIX_Semaphore_Information> <== NOT EXECUTED 49d12: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49d18: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 49d1e: 4e5e unlk %fp <== NOT EXECUTED 49d20: 4e75 rts <== NOT EXECUTED ... 0004d054 <_POSIX_Semaphore_Name_to_id>: int _POSIX_Semaphore_Name_to_id( const char *name, sem_t *id ) { 4d054: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d058: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; if ( !name ) 4d05c: 4a88 tstl %a0 <== NOT EXECUTED 4d05e: 6728 beqs 4d088 <_POSIX_Semaphore_Name_to_id+0x34> <== NOT EXECUTED return EINVAL; if ( !name[0] ) 4d060: 4a10 tstb %a0@ <== NOT EXECUTED 4d062: 6724 beqs 4d088 <_POSIX_Semaphore_Name_to_id+0x34> <== NOT EXECUTED return EINVAL; status = _Objects_Name_to_id_string( 4d064: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4d068: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4d06a: 4879 0005 d05a pea 5d05a <_POSIX_Semaphore_Information> <== NOT EXECUTED 4d070: 4eb9 0004 dab8 jsr 4dab8 <_Objects_Name_to_id_string> <== NOT EXECUTED &_POSIX_Semaphore_Information, name, (Objects_Id*)id ); if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) 4d076: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d07c: 4a80 tstl %d0 <== NOT EXECUTED 4d07e: 6704 beqs 4d084 <_POSIX_Semaphore_Name_to_id+0x30> <== NOT EXECUTED 4d080: 7002 moveq #2,%d0 <== NOT EXECUTED 4d082: 6006 bras 4d08a <_POSIX_Semaphore_Name_to_id+0x36> <== NOT EXECUTED 4d084: 4280 clrl %d0 <== NOT EXECUTED 4d086: 6002 bras 4d08a <_POSIX_Semaphore_Name_to_id+0x36> <== NOT EXECUTED 4d088: 7016 moveq #22,%d0 <== NOT EXECUTED return 0; return ENOENT; } 4d08a: 4e5e unlk %fp <== NOT EXECUTED 4d08c: 4e75 rts <== NOT EXECUTED ... 0004e870 <_POSIX_Semaphore_Translate_core_semaphore_return_code>: int _POSIX_Semaphore_Translate_core_semaphore_return_code( CORE_semaphore_Status the_semaphore_status ) { 4e870: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_semaphore_status > CORE_SEMAPHORE_STATUS_LAST ) return EINVAL; #endif return _POSIX_Semaphore_Return_codes[the_semaphore_status]; } 4e874: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED int _POSIX_Semaphore_Translate_core_semaphore_return_code( CORE_semaphore_Status the_semaphore_status ) { 4e878: 41f9 0005 a70c lea 5a70c <_POSIX_Semaphore_Return_codes>,%a0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_semaphore_status > CORE_SEMAPHORE_STATUS_LAST ) return EINVAL; #endif return _POSIX_Semaphore_Return_codes[the_semaphore_status]; } 4e87e: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4e882: 4e5e unlk %fp <== NOT EXECUTED 4e884: 4e75 rts <== NOT EXECUTED ... 0004d0c4 <_POSIX_Semaphore_Wait_support>: int _POSIX_Semaphore_Wait_support( sem_t *sem, bool blocking, Watchdog_Interval timeout ) { 4d0c4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d0c8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d0ca: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4d0ce: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d0d0: 142e 000f moveb %fp@(15),%d2 <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Get ( sem_t *id, Objects_Locations *location ) { return (POSIX_Semaphore_Control *) 4d0d4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d0d8: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4d0da: 4879 0005 d05a pea 5d05a <_POSIX_Semaphore_Information> <== NOT EXECUTED 4d0e0: 4eb9 0004 9488 jsr 49488 <_Objects_Get> <== NOT EXECUTED POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { 4d0e6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d0ec: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d0ee: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d0f2: 6654 bnes 4d148 <_POSIX_Semaphore_Wait_support+0x84> <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_semaphore_Seize( 4d0f4: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4d0f8: 4280 clrl %d0 <== NOT EXECUTED 4d0fa: 1002 moveb %d2,%d0 <== NOT EXECUTED 4d0fc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4d0fe: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4d102: 4868 001a pea %a0@(26) <== NOT EXECUTED 4d106: 4eb9 0004 d790 jsr 4d790 <_CORE_semaphore_Seize> <== NOT EXECUTED &the_semaphore->Semaphore, the_semaphore->Object.id, blocking, timeout ); _Thread_Enable_dispatch(); 4d10c: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED if ( !_Thread_Executing->Wait.return_code ) 4d112: 2079 0005 ceae moveal 5ceae <_Thread_Executing>,%a0 <== NOT EXECUTED 4d118: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4d11e: 4aa8 0034 tstl %a0@(52) <== NOT EXECUTED 4d122: 6604 bnes 4d128 <_POSIX_Semaphore_Wait_support+0x64> <== NOT EXECUTED 4d124: 4280 clrl %d0 <== NOT EXECUTED 4d126: 602e bras 4d156 <_POSIX_Semaphore_Wait_support+0x92> <== NOT EXECUTED return 0; rtems_set_errno_and_return_minus_one( 4d128: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 4d12e: 2079 0005 ceae moveal 5ceae <_Thread_Executing>,%a0 <== NOT EXECUTED 4d134: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d136: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 4d13a: 4eb9 0004 e870 jsr 4e870 <_POSIX_Semaphore_Translate_core_semaphore_return_code> <== NOT EXECUTED 4d140: 2480 movel %d0,%a2@ <== NOT EXECUTED 4d142: 588f addql #4,%sp <== NOT EXECUTED 4d144: 70ff moveq #-1,%d0 <== NOT EXECUTED 4d146: 600e bras 4d156 <_POSIX_Semaphore_Wait_support+0x92> <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 4d148: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 4d14e: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d150: 7216 moveq #22,%d1 <== NOT EXECUTED 4d152: 70ff moveq #-1,%d0 <== NOT EXECUTED 4d154: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4d156: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4d15a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4d15e: 4e5e unlk %fp <== NOT EXECUTED 4d160: 4e75 rts <== NOT EXECUTED ... 00049990 <_POSIX_Spinlock_Manager_initialization>: */ void _POSIX_Spinlock_Manager_initialization( uint32_t maximum_spinlocks ) { 49990: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49994: 4878 00ff pea ff <== NOT EXECUTED 49998: 4878 0001 pea 1 <== NOT EXECUTED 4999c: 4878 0020 pea 20 <== NOT EXECUTED 499a0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 499a4: 4878 000b pea b <== NOT EXECUTED 499a8: 4878 0003 pea 3 <== NOT EXECUTED 499ac: 4879 0005 80aa pea 580aa <_POSIX_Spinlock_Information> <== NOT EXECUTED 499b2: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 499b8: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 499be: 4e5e unlk %fp <== NOT EXECUTED 499c0: 4e75 rts <== NOT EXECUTED ... 00044d7c <_POSIX_Spinlock_Translate_core_spinlock_return_code>: int _POSIX_Spinlock_Translate_core_spinlock_return_code( CORE_spinlock_Status the_spinlock_status ) { 44d7c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_spinlock_status > CORE_SPINLOCK_STATUS_LAST ) return EINVAL; #endif return _POSIX_Spinlock_Return_codes[the_spinlock_status]; } 44d80: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED int _POSIX_Spinlock_Translate_core_spinlock_return_code( CORE_spinlock_Status the_spinlock_status ) { 44d84: 41f9 0005 5f8e lea 55f8e <_POSIX_Spinlock_Return_codes>,%a0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( the_spinlock_status > CORE_SPINLOCK_STATUS_LAST ) return EINVAL; #endif return _POSIX_Spinlock_Return_codes[the_spinlock_status]; } 44d8a: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 44d8e: 4e5e unlk %fp <== NOT EXECUTED 44d90: 4e75 rts <== NOT EXECUTED ... 0004b250 <_POSIX_Thread_Exit>: void _POSIX_Thread_Exit( Thread_Control *the_thread, void *value_ptr ) { 4b250: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4b254: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4b258: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4b25c: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED Objects_Information *the_information; the_information = _Objects_Get_information_id( the_thread->Object.id ); 4b260: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 4b264: 4eb9 0004 644c jsr 4644c <_Objects_Get_information_id> <== NOT EXECUTED * are ready to be switched out. Otherwise, an ISR could * occur and preempt us out while we still hold the * allocator mutex. */ _RTEMS_Lock_allocator(); 4b26a: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED void *value_ptr ) { Objects_Information *the_information; the_information = _Objects_Get_information_id( the_thread->Object.id ); 4b270: 2400 movel %d0,%d2 <== NOT EXECUTED * are ready to be switched out. Otherwise, an ISR could * occur and preempt us out while we still hold the * allocator mutex. */ _RTEMS_Lock_allocator(); 4b272: 4eb9 0004 58cc jsr 458cc <_API_Mutex_Lock> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4b278: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4b27e: 5280 addql #1,%d0 <== NOT EXECUTED 4b280: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); the_thread->Wait.return_argument = value_ptr; _Thread_Close( the_information, the_thread ); 4b286: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b288: 2f02 movel %d2,%sp@- <== NOT EXECUTED */ _RTEMS_Lock_allocator(); _Thread_Disable_dispatch(); the_thread->Wait.return_argument = value_ptr; 4b28a: 2543 0028 movel %d3,%a2@(40) <== NOT EXECUTED _Thread_Close( the_information, the_thread ); 4b28e: 4eb9 0004 69f4 jsr 469f4 <_Thread_Close> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Threads_Free ( Thread_Control *the_pthread ) { _Objects_Free( &_POSIX_Threads_Information, &the_pthread->Object ); 4b294: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b296: 4879 0005 806e pea 5806e <_POSIX_Threads_Information> <== NOT EXECUTED 4b29c: 4eb9 0004 63c8 jsr 463c8 <_Objects_Free> <== NOT EXECUTED _POSIX_Threads_Free( the_thread ); _RTEMS_Unlock_allocator(); 4b2a2: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4b2a8: 4eb9 0004 5930 jsr 45930 <_API_Mutex_Unlock> <== NOT EXECUTED _Thread_Enable_dispatch(); 4b2ae: dffc 0000 001c addal #28,%sp <== NOT EXECUTED } 4b2b4: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4b2ba: 4e5e unlk %fp <== NOT EXECUTED _Thread_Close( the_information, the_thread ); _POSIX_Threads_Free( the_thread ); _RTEMS_Unlock_allocator(); _Thread_Enable_dispatch(); 4b2bc: 4ef9 0004 6d0a jmp 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 00049ada <_POSIX_Threads_Create_extension>: bool _POSIX_Threads_Create_extension( Thread_Control *executing, Thread_Control *created ) { 49ada: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 49ade: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 49ae2: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED POSIX_API_Control *api; POSIX_API_Control *executing_api; api = _Workspace_Allocate( sizeof( POSIX_API_Control ) ); 49ae6: 4878 00e4 pea e4 <== NOT EXECUTED 49aea: 4eb9 0004 7eac jsr 47eac <_Workspace_Allocate> <== NOT EXECUTED if ( !api ) 49af0: 588f addql #4,%sp <== NOT EXECUTED ) { POSIX_API_Control *api; POSIX_API_Control *executing_api; api = _Workspace_Allocate( sizeof( POSIX_API_Control ) ); 49af2: 2640 moveal %d0,%a3 <== NOT EXECUTED if ( !api ) 49af4: 4a80 tstl %d0 <== NOT EXECUTED 49af6: 6606 bnes 49afe <_POSIX_Threads_Create_extension+0x24> <== NOT EXECUTED 49af8: 4201 clrb %d1 <== NOT EXECUTED 49afa: 6000 00dc braw 49bd8 <_POSIX_Threads_Create_extension+0xfe> <== NOT EXECUTED return false; created->API_Extensions[ THREAD_API_POSIX ] = api; /* XXX check all fields are touched */ api->Attributes = _POSIX_Threads_Default_attributes; 49afe: 4878 0038 pea 38 <== NOT EXECUTED 49b02: 45f9 0004 bf4c lea 4bf4c ,%a2 <== NOT EXECUTED 49b08: 4879 0005 560a pea 5560a <_POSIX_Threads_Default_attributes> <== NOT EXECUTED * by default. */ /* XXX use signal constants */ api->signals_pending = 0; if ( _Objects_Get_API( created->Object.id ) == OBJECTS_POSIX_API && 49b0e: 7418 moveq #24,%d2 <== NOT EXECUTED api = _Workspace_Allocate( sizeof( POSIX_API_Control ) ); if ( !api ) return false; created->API_Extensions[ THREAD_API_POSIX ] = api; 49b10: 2940 0110 movel %d0,%a4@(272) <== NOT EXECUTED /* XXX check all fields are touched */ api->Attributes = _POSIX_Threads_Default_attributes; 49b14: 2f00 movel %d0,%sp@- <== NOT EXECUTED 49b16: 4e92 jsr %a2@ <== NOT EXECUTED api->detachstate = _POSIX_Threads_Default_attributes.detachstate; 49b18: 7001 moveq #1,%d0 <== NOT EXECUTED 49b1a: 2740 0038 movel %d0,%a3@(56) <== NOT EXECUTED api->schedpolicy = _POSIX_Threads_Default_attributes.schedpolicy; 49b1e: 2740 007c movel %d0,%a3@(124) <== NOT EXECUTED api->schedparam = _POSIX_Threads_Default_attributes.schedparam; 49b22: 4878 0018 pea 18 <== NOT EXECUTED 49b26: 4879 0005 5622 pea 55622 <_POSIX_Threads_Default_attributes+0x18> <== NOT EXECUTED 49b2c: 486b 0080 pea %a3@(128) <== NOT EXECUTED 49b30: 4e92 jsr %a2@ <== NOT EXECUTED api->schedparam.sched_priority = 49b32: 223c 0000 00ff movel #255,%d1 <== NOT EXECUTED 49b38: 92ac 0014 subl %a4@(20),%d1 <== NOT EXECUTED * If the thread is not a posix thread, then all posix signals are blocked * by default. */ /* XXX use signal constants */ api->signals_pending = 0; 49b3c: 42ab 00c8 clrl %a3@(200) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 49b40: 41eb 00dc lea %a3@(220),%a0 <== NOT EXECUTED if ( _Objects_Get_API( created->Object.id ) == OBJECTS_POSIX_API && 49b44: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED /* XXX check all fields are touched */ api->Attributes = _POSIX_Threads_Default_attributes; api->detachstate = _POSIX_Threads_Default_attributes.detachstate; api->schedpolicy = _POSIX_Threads_Default_attributes.schedpolicy; api->schedparam = _POSIX_Threads_Default_attributes.schedparam; api->schedparam.sched_priority = 49b4a: 2741 0080 movel %d1,%a3@(128) <== NOT EXECUTED * by default. */ /* XXX use signal constants */ api->signals_pending = 0; if ( _Objects_Get_API( created->Object.id ) == OBJECTS_POSIX_API && 49b4e: 222c 0008 movel %a4@(8),%d1 <== NOT EXECUTED 49b52: 2001 movel %d1,%d0 <== NOT EXECUTED 49b54: e4a8 lsrl %d2,%d0 <== NOT EXECUTED 49b56: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 49b5a: 2748 00d8 movel %a0,%a3@(216) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 49b5e: 41eb 00d8 lea %a3@(216),%a0 <== NOT EXECUTED 49b62: c082 andl %d2,%d0 <== NOT EXECUTED 49b64: 2748 00e0 movel %a0,%a3@(224) <== NOT EXECUTED 49b68: 143c 0003 moveb #3,%d2 <== NOT EXECUTED _POSIX_Priority_From_core( created->current_priority ); /* * POSIX 1003.1 1996, 18.2.2.2 */ api->cancelation_requested = 0; 49b6c: 42ab 00d4 clrl %a3@(212) <== NOT EXECUTED api->cancelability_state = PTHREAD_CANCEL_ENABLE; 49b70: 42ab 00cc clrl %a3@(204) <== NOT EXECUTED api->cancelability_type = PTHREAD_CANCEL_DEFERRED; 49b74: 42ab 00d0 clrl %a3@(208) <== 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; 49b78: 42ab 00dc clrl %a3@(220) <== NOT EXECUTED * by default. */ /* XXX use signal constants */ api->signals_pending = 0; if ( _Objects_Get_API( created->Object.id ) == OBJECTS_POSIX_API && 49b7c: b480 cmpl %d0,%d2 <== NOT EXECUTED 49b7e: 661e bnes 49b9e <_POSIX_Threads_Create_extension+0xc4> <== NOT EXECUTED 49b80: 701b moveq #27,%d0 <== NOT EXECUTED 49b82: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 49b84: 143c 0001 moveb #1,%d2 <== NOT EXECUTED 49b88: b481 cmpl %d1,%d2 <== NOT EXECUTED 49b8a: 6612 bnes 49b9e <_POSIX_Threads_Create_extension+0xc4> <== NOT EXECUTED _Objects_Get_class( created->Object.id ) == 1 ) { executing_api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; api->signals_blocked = executing_api->signals_blocked; 49b8c: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 49b92: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED 49b96: 2768 00c4 00c4 movel %a0@(196),%a3@(196) <== NOT EXECUTED 49b9c: 6006 bras 49ba4 <_POSIX_Threads_Create_extension+0xca> <== NOT EXECUTED } else { api->signals_blocked = 0xffffffff; 49b9e: 70ff moveq #-1,%d0 <== NOT EXECUTED 49ba0: 2740 00c4 movel %d0,%a3@(196) <== NOT EXECUTED } _Thread_queue_Initialize( 49ba4: 42a7 clrl %sp@- <== NOT EXECUTED 49ba6: 4878 1000 pea 1000 <== NOT EXECUTED 49baa: 42a7 clrl %sp@- <== NOT EXECUTED 49bac: 486b 003c pea %a3@(60) <== NOT EXECUTED 49bb0: 4eb9 0004 73bc jsr 473bc <_Thread_queue_Initialize> <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 49bb6: 223c 0004 9c28 movel #302120,%d1 <== NOT EXECUTED THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_JOIN_AT_EXIT, 0 ); _Watchdog_Initialize( 49bbc: 202c 0008 movel %a4@(8),%d0 <== NOT EXECUTED 49bc0: 2741 00b8 movel %d1,%a3@(184) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 49bc4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 49bca: 7201 moveq #1,%d1 <== NOT EXECUTED 49bcc: 274c 00c0 movel %a4,%a3@(192) <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 49bd0: 2740 00bc movel %d0,%a3@(188) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 49bd4: 42ab 00a4 clrl %a3@(164) <== NOT EXECUTED created->Object.id, created ); return true; } 49bd8: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 49bde: 4e5e unlk %fp <== NOT EXECUTED 49be0: 1001 moveb %d1,%d0 <== NOT EXECUTED 49be2: 4e75 rts 00049a68 <_POSIX_Threads_Delete_extension>: User_extensions_routine _POSIX_Threads_Delete_extension( Thread_Control *executing, Thread_Control *deleted ) { 49a68: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 49a6c: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 49a70: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Thread_Control *the_thread; POSIX_API_Control *api; void **value_ptr; api = deleted->API_Extensions[ THREAD_API_POSIX ]; 49a74: 266a 0110 moveal %a2@(272),%a3 <== NOT EXECUTED /* * Run the POSIX cancellation handlers */ _POSIX_Threads_cancel_run( deleted ); 49a78: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49a7a: 4eb9 0004 afc8 jsr 4afc8 <_POSIX_Threads_cancel_run> <== NOT EXECUTED /* * Wakeup all the tasks which joined with this one */ value_ptr = (void **) deleted->Wait.return_argument; while ( (the_thread = _Thread_queue_Dequeue( &api->Join_List )) ) 49a80: 260b movel %a3,%d3 <== NOT EXECUTED _POSIX_Threads_cancel_run( deleted ); /* * Run all the key destructors */ _POSIX_Keys_Run_destructors( deleted ); 49a82: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49a84: 4eb9 0004 b02c jsr 4b02c <_POSIX_Keys_Run_destructors> <== NOT EXECUTED /* * Wakeup all the tasks which joined with this one */ value_ptr = (void **) deleted->Wait.return_argument; 49a8a: 242a 0028 movel %a2@(40),%d2 <== NOT EXECUTED while ( (the_thread = _Thread_queue_Dequeue( &api->Join_List )) ) 49a8e: 0683 0000 003c addil #60,%d3 <== NOT EXECUTED 49a94: 508f addql #8,%sp <== NOT EXECUTED 49a96: 49f9 0004 702c lea 4702c <_Thread_queue_Dequeue>,%a4 <== NOT EXECUTED 49a9c: 6006 bras 49aa4 <_POSIX_Threads_Delete_extension+0x3c> <== NOT EXECUTED *(void **)the_thread->Wait.return_argument = value_ptr; 49a9e: 2068 0028 moveal %a0@(40),%a0 <== NOT EXECUTED 49aa2: 2082 movel %d2,%a0@ <== NOT EXECUTED /* * Wakeup all the tasks which joined with this one */ value_ptr = (void **) deleted->Wait.return_argument; while ( (the_thread = _Thread_queue_Dequeue( &api->Join_List )) ) 49aa4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 49aa6: 4e94 jsr %a4@ <== NOT EXECUTED 49aa8: 588f addql #4,%sp <== NOT EXECUTED 49aaa: 2040 moveal %d0,%a0 <== NOT EXECUTED 49aac: 4a80 tstl %d0 <== NOT EXECUTED 49aae: 66ee bnes 49a9e <_POSIX_Threads_Delete_extension+0x36> <== NOT EXECUTED *(void **)the_thread->Wait.return_argument = value_ptr; if ( api->schedpolicy == SCHED_SPORADIC ) 49ab0: 7003 moveq #3,%d0 <== NOT EXECUTED 49ab2: b0ab 007c cmpl %a3@(124),%d0 <== NOT EXECUTED 49ab6: 660c bnes 49ac4 <_POSIX_Threads_Delete_extension+0x5c> <== NOT EXECUTED (void) _Watchdog_Remove( &api->Sporadic_timer ); 49ab8: 486b 009c pea %a3@(156) <== NOT EXECUTED 49abc: 4eb9 0004 7d9c jsr 47d9c <_Watchdog_Remove> <== NOT EXECUTED 49ac2: 588f addql #4,%sp <== NOT EXECUTED deleted->API_Extensions[ THREAD_API_POSIX ] = NULL; 49ac4: 42aa 0110 clrl %a2@(272) <== NOT EXECUTED (void) _Workspace_Free( api ); 49ac8: 2d4b 0008 movel %a3,%fp@(8) <== NOT EXECUTED } 49acc: 4cee 1c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a4 <== NOT EXECUTED 49ad2: 4e5e unlk %fp <== NOT EXECUTED if ( api->schedpolicy == SCHED_SPORADIC ) (void) _Watchdog_Remove( &api->Sporadic_timer ); deleted->API_Extensions[ THREAD_API_POSIX ] = NULL; (void) _Workspace_Free( api ); 49ad4: 4ef9 0004 7e94 jmp 47e94 <_Workspace_Free> <== NOT EXECUTED 00049a3c <_POSIX_Threads_Exitted_extension>: */ User_extensions_routine _POSIX_Threads_Exitted_extension( Thread_Control *executing ) { 49a3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49a40: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED /* * If the executing thread was not created with the POSIX API, then this * API do not get to define its exit behavior. */ if ( _Objects_Get_API( executing->Object.id ) == OBJECTS_POSIX_API ) 49a44: 4280 clrl %d0 <== NOT EXECUTED 49a46: 1028 0008 moveb %a0@(8),%d0 <== NOT EXECUTED 49a4a: 7207 moveq #7,%d1 <== NOT EXECUTED 49a4c: c081 andl %d1,%d0 <== NOT EXECUTED 49a4e: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 49a52: b280 cmpl %d0,%d1 <== NOT EXECUTED 49a54: 660e bnes 49a64 <_POSIX_Threads_Exitted_extension+0x28> <== NOT EXECUTED pthread_exit( executing->Wait.return_argument ); 49a56: 2d68 0028 0008 movel %a0@(40),%fp@(8) <== NOT EXECUTED } 49a5c: 4e5e unlk %fp <== NOT EXECUTED /* * If the executing thread was not created with the POSIX API, then this * API do not get to define its exit behavior. */ if ( _Objects_Get_API( executing->Object.id ) == OBJECTS_POSIX_API ) pthread_exit( executing->Wait.return_argument ); 49a5e: 4ef9 0004 b2c2 jmp 4b2c2 <== NOT EXECUTED } 49a64: 4e5e unlk %fp <== NOT EXECUTED 49a66: 4e75 rts 000499c4 <_POSIX_Threads_Initialize_user_threads>: * Output parameters: NONE */ void _POSIX_Threads_Initialize_user_threads( void ) { if ( _POSIX_Threads_Initialize_user_threads_p ) 499c4: 2039 0005 6d04 movel 56d04 <_POSIX_Threads_Initialize_user_threads_p>,%d0 <== NOT EXECUTED * * Output parameters: NONE */ void _POSIX_Threads_Initialize_user_threads( void ) { 499ca: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( _POSIX_Threads_Initialize_user_threads_p ) 499ce: 4a80 tstl %d0 <== NOT EXECUTED 499d0: 6706 beqs 499d8 <_POSIX_Threads_Initialize_user_threads+0x14> <== NOT EXECUTED (*_POSIX_Threads_Initialize_user_threads_p)(); } 499d2: 4e5e unlk %fp <== NOT EXECUTED */ void _POSIX_Threads_Initialize_user_threads( void ) { if ( _POSIX_Threads_Initialize_user_threads_p ) (*_POSIX_Threads_Initialize_user_threads_p)(); 499d4: 2240 moveal %d0,%a1 <== NOT EXECUTED 499d6: 4ed1 jmp %a1@ <== NOT EXECUTED } 499d8: 4e5e unlk %fp <== NOT EXECUTED 499da: 4e75 rts 00045b64 <_POSIX_Threads_Initialize_user_threads_body>: * * Output parameters: NONE */ void _POSIX_Threads_Initialize_user_threads_body( void ) { 45b64: 4e56 ffa0 linkw %fp,#-96 <== NOT EXECUTED 45b68: 48d7 3c7c moveml %d2-%d6/%a2-%a5,%sp@ <== NOT EXECUTED uint32_t maximum; posix_initialization_threads_table *user_threads; pthread_t thread_id; pthread_attr_t attr; user_threads = _POSIX_Threads_User_initialization_threads; 45b6c: 2039 0005 b906 movel 5b906 <_POSIX_Threads_User_initialization_threads>,%d0 <== NOT EXECUTED maximum = _POSIX_Threads_Number_of_initialization_threads; 45b72: 2839 0005 b9b6 movel 5b9b6 <_POSIX_Threads_Number_of_initialization_threads>,%d4 <== NOT EXECUTED if ( !user_threads || maximum == 0 ) 45b78: 4a80 tstl %d0 <== NOT EXECUTED 45b7a: 6770 beqs 45bec <_POSIX_Threads_Initialize_user_threads_body+0x88> <== NOT EXECUTED 45b7c: 4a84 tstl %d4 <== NOT EXECUTED 45b7e: 676c beqs 45bec <_POSIX_Threads_Initialize_user_threads_body+0x88> <== NOT EXECUTED for ( index=0 ; index < maximum ; index++ ) { /* * There is no way for these calls to fail in this situation. */ (void) pthread_attr_init( &attr ); 45b80: 260e movel %fp,%d3 <== NOT EXECUTED (void) pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED ); (void) pthread_attr_setstacksize(&attr, user_threads[ index ].stack_size); status = pthread_create( 45b82: 2a0e movel %fp,%d5 <== NOT EXECUTED pthread_attr_t attr; user_threads = _POSIX_Threads_User_initialization_threads; maximum = _POSIX_Threads_Number_of_initialization_threads; if ( !user_threads || maximum == 0 ) 45b84: 2440 moveal %d0,%a2 <== NOT EXECUTED 45b86: 4282 clrl %d2 <== NOT EXECUTED for ( index=0 ; index < maximum ; index++ ) { /* * There is no way for these calls to fail in this situation. */ (void) pthread_attr_init( &attr ); 45b88: 0683 ffff ffc4 addil #-60,%d3 <== NOT EXECUTED 45b8e: 2c3c 0004 b734 movel #309044,%d6 <== NOT EXECUTED (void) pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED ); 45b94: 4bf9 0004 b764 lea 4b764 ,%a5 <== NOT EXECUTED (void) pthread_attr_setstacksize(&attr, user_threads[ index ].stack_size); 45b9a: 49f9 0004 b79c lea 4b79c ,%a4 <== NOT EXECUTED status = pthread_create( 45ba0: 5985 subql #4,%d5 <== NOT EXECUTED 45ba2: 47f9 0004 5850 lea 45850 ,%a3 <== NOT EXECUTED 45ba8: 603e bras 45be8 <_POSIX_Threads_Initialize_user_threads_body+0x84> <== NOT EXECUTED for ( index=0 ; index < maximum ; index++ ) { /* * There is no way for these calls to fail in this situation. */ (void) pthread_attr_init( &attr ); 45baa: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45bac: 2046 moveal %d6,%a0 <== NOT EXECUTED 45bae: 4e90 jsr %a0@ <== NOT EXECUTED (void) pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED ); 45bb0: 4878 0002 pea 2 <== NOT EXECUTED 45bb4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45bb6: 4e95 jsr %a5@ <== NOT EXECUTED (void) pthread_attr_setstacksize(&attr, user_threads[ index ].stack_size); 45bb8: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED 45bbc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45bbe: 4e94 jsr %a4@ <== NOT EXECUTED status = pthread_create( 45bc0: 42a7 clrl %sp@- <== NOT EXECUTED 45bc2: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45bc4: 508a addql #8,%a2 <== NOT EXECUTED 45bc6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45bc8: 2f05 movel %d5,%sp@- <== NOT EXECUTED 45bca: 4e93 jsr %a3@ <== NOT EXECUTED &thread_id, &attr, user_threads[ index ].thread_entry, NULL ); if ( status ) 45bcc: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 45bd2: 4a80 tstl %d0 <== NOT EXECUTED 45bd4: 6710 beqs 45be6 <_POSIX_Threads_Initialize_user_threads_body+0x82> <== NOT EXECUTED _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, TRUE, status ); 45bd6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45bd8: 4878 0001 pea 1 <== NOT EXECUTED 45bdc: 4878 0002 pea 2 <== NOT EXECUTED 45be0: 4eb9 0004 7b9c jsr 47b9c <_Internal_error_Occurred> <== NOT EXECUTED * * Setting the attributes explicitly is critical, since we don't want * to inherit the idle tasks attributes. */ for ( index=0 ; index < maximum ; index++ ) { 45be6: 5282 addql #1,%d2 <== NOT EXECUTED 45be8: b882 cmpl %d2,%d4 <== NOT EXECUTED 45bea: 62be bhis 45baa <_POSIX_Threads_Initialize_user_threads_body+0x46> <== NOT EXECUTED NULL ); if ( status ) _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, TRUE, status ); } } 45bec: 4cee 3c7c ffa0 moveml %fp@(-96),%d2-%d6/%a2-%a5 <== NOT EXECUTED 45bf2: 4e5e unlk %fp <== NOT EXECUTED 45bf4: 4e75 rts <== NOT EXECUTED ... 000499dc <_POSIX_Threads_Manager_initialization>: uint32_t maximum_pthreads, uint32_t number_of_initialization_threads, posix_initialization_threads_table *user_threads ) { 499dc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if 0 if ( user_threads == NULL || number_of_initialization_threads == 0 ) _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, TRUE, EINVAL ); #endif _Objects_Initialize_information( 499e0: 4878 00ff pea ff <== NOT EXECUTED uint32_t number_of_initialization_threads, posix_initialization_threads_table *user_threads ) { _POSIX_Threads_Number_of_initialization_threads = 499e4: 41ee 000c lea %fp@(12),%a0 <== NOT EXECUTED #if 0 if ( user_threads == NULL || number_of_initialization_threads == 0 ) _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, TRUE, EINVAL ); #endif _Objects_Initialize_information( 499e8: 4878 0001 pea 1 <== NOT EXECUTED 499ec: 4878 0120 pea 120 <== NOT EXECUTED uint32_t number_of_initialization_threads, posix_initialization_threads_table *user_threads ) { _POSIX_Threads_Number_of_initialization_threads = 499f0: 23d0 0005 82c2 movel %a0@,582c2 <_POSIX_Threads_Number_of_initialization_threads> <== NOT EXECUTED number_of_initialization_threads; _POSIX_Threads_User_initialization_threads = user_threads; 499f6: 41ee 0010 lea %fp@(16),%a0 <== NOT EXECUTED #if 0 if ( user_threads == NULL || number_of_initialization_threads == 0 ) _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, TRUE, EINVAL ); #endif _Objects_Initialize_information( 499fa: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 499fe: 4878 0001 pea 1 <== NOT EXECUTED 49a02: 4878 0003 pea 3 <== NOT EXECUTED 49a06: 4879 0005 806e pea 5806e <_POSIX_Threads_Information> <== NOT EXECUTED ) { _POSIX_Threads_Number_of_initialization_threads = number_of_initialization_threads; _POSIX_Threads_User_initialization_threads = user_threads; 49a0c: 23d0 0005 8212 movel %a0@,58212 <_POSIX_Threads_User_initialization_threads> <== NOT EXECUTED #if 0 if ( user_threads == NULL || number_of_initialization_threads == 0 ) _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, TRUE, EINVAL ); #endif _Objects_Initialize_information( 49a12: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED /* * Add all the extensions for this API */ _User_extensions_Add_API_set( &_POSIX_Threads_User_extensions ); 49a18: 4879 0005 677c pea 5677c <_POSIX_Threads_User_extensions> <== NOT EXECUTED 49a1e: 4eb9 0004 aa98 jsr 4aa98 <_User_extensions_Add_API_set> <== NOT EXECUTED _API_extensions_Add( &_POSIX_Threads_API_extensions ); 49a24: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 49a2a: 203c 0005 6768 movel #354152,%d0 <== NOT EXECUTED 49a30: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED /* * If we supported MP, then here we would ... * Register the MP Process Packet routine. */ } 49a34: 4e5e unlk %fp <== NOT EXECUTED * Add all the extensions for this API */ _User_extensions_Add_API_set( &_POSIX_Threads_User_extensions ); _API_extensions_Add( &_POSIX_Threads_API_extensions ); 49a36: 4ef9 0004 5842 jmp 45842 <_API_extensions_Add> <== NOT EXECUTED 00049c28 <_POSIX_Threads_Sporadic_budget_TSR>: void _POSIX_Threads_Sporadic_budget_TSR( Objects_Id id, void *argument ) { 49c28: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49c2c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49c2e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49c30: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Thread_Control *the_thread; POSIX_API_Control *api; the_thread = argument; api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 49c34: 266a 0110 moveal %a2@(272),%a3 <== NOT EXECUTED ticks = _Timespec_To_ticks( &api->schedparam.ss_initial_budget ); 49c38: 486b 0090 pea %a3@(144) <== NOT EXECUTED 49c3c: 4eb9 0004 aa44 jsr 4aa44 <_Timespec_To_ticks> <== NOT EXECUTED if ( !ticks ) 49c42: 588f addql #4,%sp <== NOT EXECUTED 49c44: 4a80 tstl %d0 <== NOT EXECUTED 49c46: 6604 bnes 49c4c <_POSIX_Threads_Sporadic_budget_TSR+0x24> <== NOT EXECUTED 49c48: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 49c4c: 223c 0000 00ff movel #255,%d1 <== NOT EXECUTED 49c52: 92ab 0098 subl %a3@(152),%d1 <== NOT EXECUTED ticks = 1; the_thread->cpu_time_budget = ticks; 49c56: 2540 0078 movel %d0,%a2@(120) <== NOT EXECUTED new_priority = _POSIX_Priority_To_core( api->ss_high_priority ); the_thread->real_priority = new_priority; 49c5a: 2541 0018 movel %d1,%a2@(24) <== NOT EXECUTED if ( the_thread->resource_count == 0 || 49c5e: 4aaa 001c tstl %a2@(28) <== NOT EXECUTED 49c62: 6706 beqs 49c6a <_POSIX_Threads_Sporadic_budget_TSR+0x42> <== NOT EXECUTED 49c64: b2aa 0014 cmpl %a2@(20),%d1 <== NOT EXECUTED 49c68: 6414 bccs 49c7e <_POSIX_Threads_Sporadic_budget_TSR+0x56> <== NOT EXECUTED the_thread->current_priority > new_priority ) _Thread_Change_priority( the_thread, new_priority, TRUE ); 49c6a: 4878 0001 pea 1 <== NOT EXECUTED 49c6e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 49c70: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49c72: 4eb9 0004 6804 jsr 46804 <_Thread_Change_priority> <== NOT EXECUTED 49c78: dffc 0000 000c addal #12,%sp <== NOT EXECUTED ticks = _Timespec_To_ticks( &api->schedparam.ss_replenish_period ); 49c7e: 486b 0088 pea %a3@(136) <== NOT EXECUTED 49c82: 4eb9 0004 aa44 jsr 4aa44 <_Timespec_To_ticks> <== NOT EXECUTED if ( !ticks ) 49c88: 588f addql #4,%sp <== NOT EXECUTED 49c8a: 4a80 tstl %d0 <== NOT EXECUTED 49c8c: 6604 bnes 49c92 <_POSIX_Threads_Sporadic_budget_TSR+0x6a> <== NOT EXECUTED 49c8e: 103c 0001 moveb #1,%d0 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 49c92: 2740 00a8 movel %d0,%a3@(168) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 49c96: d7fc 0000 009c addal #156,%a3 <== NOT EXECUTED 49c9c: 2d4b 000c movel %a3,%fp@(12) <== NOT EXECUTED ticks = 1; _Watchdog_Insert_ticks( &api->Sporadic_timer, ticks ); } 49ca0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 49ca4: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 49ca8: 203c 0005 7f58 movel #360280,%d0 <== NOT EXECUTED 49cae: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED 49cb2: 4e5e unlk %fp <== NOT EXECUTED 49cb4: 4ef9 0004 7c80 jmp 47c80 <_Watchdog_Insert> <== NOT EXECUTED ... 00049be4 <_POSIX_Threads_Sporadic_budget_callout>: */ void _POSIX_Threads_Sporadic_budget_callout( Thread_Control *the_thread ) { 49be4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49be8: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED POSIX_API_Control *api; uint32_t new_priority; api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 49bec: 2069 0110 moveal %a1@(272),%a0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Priority_Control _POSIX_Priority_To_core( int priority ) { return (Priority_Control) (255 - priority); 49bf0: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 49bf6: 90a8 0084 subl %a0@(132),%d0 <== NOT EXECUTED * This will prevent the thread from consuming its entire "budget" * while at low priority. */ the_thread->cpu_time_budget = 0xFFFFFFFF; /* XXX should be based on MAX_U32 */ 49bfa: 72ff moveq #-1,%d1 <== NOT EXECUTED 49bfc: 2341 0078 movel %d1,%a1@(120) <== NOT EXECUTED new_priority = _POSIX_Priority_To_core( api->schedparam.ss_low_priority ); the_thread->real_priority = new_priority; 49c00: 2340 0018 movel %d0,%a1@(24) <== NOT EXECUTED if ( the_thread->resource_count == 0 || 49c04: 4aa9 001c tstl %a1@(28) <== NOT EXECUTED 49c08: 6706 beqs 49c10 <_POSIX_Threads_Sporadic_budget_callout+0x2c> <== NOT EXECUTED 49c0a: b0a9 0014 cmpl %a1@(20),%d0 <== NOT EXECUTED 49c0e: 6414 bccs 49c24 <_POSIX_Threads_Sporadic_budget_callout+0x40> <== NOT EXECUTED the_thread->current_priority > new_priority ) _Thread_Change_priority( the_thread, new_priority, TRUE ); 49c10: 4878 0001 pea 1 <== NOT EXECUTED 49c14: 2f00 movel %d0,%sp@- <== NOT EXECUTED 49c16: 2f09 movel %a1,%sp@- <== NOT EXECUTED 49c18: 4eb9 0004 6804 jsr 46804 <_Thread_Change_priority> <== NOT EXECUTED 49c1e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 49c24: 4e5e unlk %fp <== NOT EXECUTED 49c26: 4e75 rts 0004afc8 <_POSIX_Threads_cancel_run>: #include void _POSIX_Threads_cancel_run( Thread_Control *the_thread ) { 4afc8: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4afcc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4afd0: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED POSIX_Cancel_Handler_control *handler; Chain_Control *handler_stack; POSIX_API_Control *thread_support; ISR_Level level; thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ]; 4afd4: 2668 0110 moveal %a0@(272),%a3 <== NOT EXECUTED handler_stack = &thread_support->Cancellation_Handlers; thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE; 4afd8: 7001 moveq #1,%d0 <== NOT EXECUTED 4afda: 2740 00cc movel %d0,%a3@(204) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 4afde: 49eb 00dc lea %a3@(220),%a4 <== NOT EXECUTED while ( !_Chain_Is_empty( handler_stack ) ) { _ISR_Disable( level ); 4afe2: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED _Chain_Extract_unprotected( &handler->Node ); _ISR_Enable( level ); (*handler->routine)( handler->arg ); _Workspace_Free( handler ); 4afe8: 4bf9 0004 7e94 lea 47e94 <_Workspace_Free>,%a5 <== NOT EXECUTED 4afee: 6028 bras 4b018 <_POSIX_Threads_cancel_run+0x50> <== NOT EXECUTED handler_stack = &thread_support->Cancellation_Handlers; thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE; while ( !_Chain_Is_empty( handler_stack ) ) { _ISR_Disable( level ); 4aff0: 40c0 movew %sr,%d0 <== NOT EXECUTED 4aff2: 8280 orl %d0,%d1 <== NOT EXECUTED 4aff4: 46c1 movew %d1,%sr <== NOT EXECUTED handler = (POSIX_Cancel_Handler_control *) 4aff6: 246c 0004 moveal %a4@(4),%a2 <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 4affa: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 4affc: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED next->previous = previous; previous->next = next; 4b000: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4b002: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED _Chain_Tail( handler_stack )->previous; _Chain_Extract_unprotected( &handler->Node ); _ISR_Enable( level ); 4b006: 46c0 movew %d0,%sr <== NOT EXECUTED (*handler->routine)( handler->arg ); 4b008: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 4b00c: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 4b010: 4e90 jsr %a0@ <== NOT EXECUTED _Workspace_Free( handler ); 4b012: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b014: 4e95 jsr %a5@ <== NOT EXECUTED 4b016: 508f addql #8,%sp <== NOT EXECUTED handler_stack = &thread_support->Cancellation_Handlers; thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE; while ( !_Chain_Is_empty( handler_stack ) ) { _ISR_Disable( level ); 4b018: 2202 movel %d2,%d1 <== NOT EXECUTED handler_stack = &thread_support->Cancellation_Handlers; thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE; while ( !_Chain_Is_empty( handler_stack ) ) { 4b01a: b9eb 00d8 cmpal %a3@(216),%a4 <== NOT EXECUTED 4b01e: 66d0 bnes 4aff0 <_POSIX_Threads_cancel_run+0x28> <== NOT EXECUTED (*handler->routine)( handler->arg ); _Workspace_Free( handler ); } } 4b020: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4b026: 4e5e unlk %fp <== NOT EXECUTED 4b028: 4e75 rts <== NOT EXECUTED ... 0004b9cc <_POSIX_Timer_Insert_helper>: Watchdog_Interval ticks, Objects_Id id, Watchdog_Service_routine_entry TSR, void *arg ) { 4b9cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b9d0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b9d2: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4b9d6: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; (void) _Watchdog_Remove( timer ); 4b9d8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b9da: 4eb9 0004 9838 jsr 49838 <_Watchdog_Remove> <== NOT EXECUTED _ISR_Disable( level ); 4b9e0: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4b9e6: 40c2 movew %sr,%d2 <== NOT EXECUTED 4b9e8: 8082 orl %d2,%d0 <== NOT EXECUTED 4b9ea: 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 ( timer->state != WATCHDOG_INACTIVE ) { 4b9ec: 588f addql #4,%sp <== NOT EXECUTED 4b9ee: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 4b9f2: 6706 beqs 4b9fa <_POSIX_Timer_Insert_helper+0x2e> <== NOT EXECUTED _ISR_Enable( level ); 4b9f4: 46c2 movew %d2,%sr <== NOT EXECUTED 4b9f6: 4200 clrb %d0 <== NOT EXECUTED 4b9f8: 6030 bras 4ba2a <_POSIX_Timer_Insert_helper+0x5e> <== NOT EXECUTED 4b9fa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b9fc: 4879 0005 b290 pea 5b290 <_Watchdog_Ticks_chain> <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 4ba02: 256e 0010 0020 movel %fp@(16),%a2@(32) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4ba08: 256e 0014 001c movel %fp@(20),%a2@(28) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 4ba0e: 256e 0018 0024 movel %fp@(24),%a2@(36) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4ba14: 256e 000c 000c movel %fp@(12),%a2@(12) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4ba1a: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4ba1e: 4eb9 0004 971c jsr 4971c <_Watchdog_Insert> <== NOT EXECUTED * OK. Now we now the timer was not rescheduled by an interrupt * so we can atomically initialize it as in use. */ _Watchdog_Initialize( timer, TSR, id, arg ); _Watchdog_Insert_ticks( timer, ticks ); _ISR_Enable( level ); 4ba24: 46c2 movew %d2,%sr <== NOT EXECUTED 4ba26: 7001 moveq #1,%d0 <== NOT EXECUTED 4ba28: 508f addql #8,%sp <== NOT EXECUTED return true; } 4ba2a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4ba2e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4ba32: 4e5e unlk %fp <== NOT EXECUTED 4ba34: 4e75 rts <== NOT EXECUTED ... 00049cbc <_POSIX_Timer_Manager_initialization>: * Description: Initialize the internal structure in which the data of all * the timers are stored */ void _POSIX_Timer_Manager_initialization ( int maximum_timers ) { 49cbc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49cc0: 4878 00ff pea ff <== NOT EXECUTED 49cc4: 4878 0001 pea 1 <== NOT EXECUTED 49cc8: 4878 0072 pea 72 <== NOT EXECUTED 49ccc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49cd0: 4878 0009 pea 9 <== NOT EXECUTED 49cd4: 4878 0003 pea 3 <== NOT EXECUTED 49cd8: 4879 0005 8122 pea 58122 <_POSIX_Timer_Information> <== NOT EXECUTED 49cde: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49ce4: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 49cea: 4e5e unlk %fp <== NOT EXECUTED 49cec: 4e75 rts <== NOT EXECUTED ... 000460b4 <_POSIX_Timer_TSR>: /* * This is the operation that is run when a timer expires */ void _POSIX_Timer_TSR(Objects_Id timer, void *data) { 460b4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 460b8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 460ba: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED bool activated; ptimer = (POSIX_Timer_Control *)data; /* Increment the number of expirations. */ ptimer->overrun = ptimer->overrun + 1; 460be: 52aa 0066 addql #1,%a2@(102) <== NOT EXECUTED /* The timer must be reprogrammed */ if ( ( ptimer->timer_data.it_interval.tv_sec != 0 ) || 460c2: 4aaa 0052 tstl %a2@(82) <== NOT EXECUTED 460c6: 6606 bnes 460ce <_POSIX_Timer_TSR+0x1a> <== NOT EXECUTED 460c8: 4aaa 0056 tstl %a2@(86) <== NOT EXECUTED 460cc: 6734 beqs 46102 <_POSIX_Timer_TSR+0x4e> <== NOT EXECUTED ( ptimer->timer_data.it_interval.tv_nsec != 0 ) ) { activated = _POSIX_Timer_Insert_helper( 460ce: 2f0a movel %a2,%sp@- <== NOT EXECUTED 460d0: 4879 0004 60b4 pea 460b4 <_POSIX_Timer_TSR> <== NOT EXECUTED 460d6: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 460da: 2f2a 0062 movel %a2@(98),%sp@- <== NOT EXECUTED 460de: 486a 0010 pea %a2@(16) <== NOT EXECUTED 460e2: 4eb9 0004 b9cc jsr 4b9cc <_POSIX_Timer_Insert_helper> <== NOT EXECUTED ptimer->ticks, ptimer->Object.id, _POSIX_Timer_TSR, ptimer ); if ( !activated ) 460e8: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 460ee: 4a00 tstb %d0 <== NOT EXECUTED 460f0: 672a beqs 4611c <_POSIX_Timer_TSR+0x68> <== NOT EXECUTED return; /* Store the time when the timer was started again */ _TOD_Get( &ptimer->time ); 460f2: 486a 006a pea %a2@(106) <== NOT EXECUTED 460f6: 4eb9 0004 7718 jsr 47718 <_TOD_Get> <== NOT EXECUTED /* The state really did not change but just to be safe */ ptimer->state = POSIX_TIMER_STATE_CREATE_RUN; 460fc: 588f addql #4,%sp <== NOT EXECUTED 460fe: 7003 moveq #3,%d0 <== NOT EXECUTED 46100: 6002 bras 46104 <_POSIX_Timer_TSR+0x50> <== NOT EXECUTED } else { /* Indicates that the timer is stopped */ ptimer->state = POSIX_TIMER_STATE_CREATE_STOP; 46102: 7004 moveq #4,%d0 <== NOT EXECUTED 46104: 1540 003c moveb %d0,%a2@(60) <== NOT EXECUTED /* * The sending of the signal to the process running the handling function * specified for that signal is simulated */ if ( pthread_kill ( ptimer->thread_id, ptimer->inf.sigev_signo ) ) { 46108: 2f2a 0042 movel %a2@(66),%sp@- <== NOT EXECUTED 4610c: 2f2a 0038 movel %a2@(56),%sp@- <== NOT EXECUTED 46110: 4eb9 0004 b6e8 jsr 4b6e8 <== NOT EXECUTED } /* After the signal handler returns, the count of expirations of the * timer must be set to 0. */ ptimer->overrun = 0; 46116: 508f addql #8,%sp <== NOT EXECUTED 46118: 42aa 0066 clrl %a2@(102) <== NOT EXECUTED } 4611c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46120: 4e5e unlk %fp <== NOT EXECUTED 46122: 4e75 rts 00049982 <_POSIX_signals_Abnormal_termination_handler>: /*** PROCESS WIDE STUFF ****/ sigset_t _POSIX_signals_Pending; void _POSIX_signals_Abnormal_termination_handler( int signo ) { 49982: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED exit( 1 ); 49986: 4878 0001 pea 1 <== NOT EXECUTED 4998a: 4eb9 0004 b7a4 jsr 4b7a4 <== NOT EXECUTED 00046740 <_POSIX_signals_Alarm_TSR>: void _POSIX_signals_Alarm_TSR( Objects_Id id, void *argument ) { 46740: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED int status; status = kill( getpid(), SIGALRM ); 46744: 4eb9 0004 4258 jsr 44258 <== NOT EXECUTED 4674a: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED 4674e: 700e moveq #14,%d0 <== NOT EXECUTED 46750: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED /* XXX can't print from an ISR, should this be fatal? */ } 46754: 4e5e unlk %fp <== NOT EXECUTED void *argument ) { int status; status = kill( getpid(), SIGALRM ); 46756: 4ef9 0004 67e0 jmp 467e0 <== NOT EXECUTED 0004b0b4 <_POSIX_signals_Check_signal>: bool _POSIX_signals_Check_signal( POSIX_API_Control *api, int signo, bool is_global ) { 4b0b4: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 4b0b8: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED siginfo_t siginfo_struct; sigset_t saved_signals_blocked; if ( ! _POSIX_signals_Clear_signals( api, signo, &siginfo_struct, 4b0bc: 4280 clrl %d0 <== NOT EXECUTED 4b0be: 4878 0001 pea 1 <== NOT EXECUTED 4b0c2: 102e 0013 moveb %fp@(19),%d0 <== NOT EXECUTED 4b0c6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4b0c8: 280e movel %fp,%d4 <== NOT EXECUTED 4b0ca: 0684 ffff fff4 addil #-12,%d4 <== NOT EXECUTED 4b0d0: 2f04 movel %d4,%sp@- <== NOT EXECUTED bool _POSIX_signals_Check_signal( POSIX_API_Control *api, int signo, bool is_global ) { 4b0d2: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4b0d6: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED siginfo_t siginfo_struct; sigset_t saved_signals_blocked; if ( ! _POSIX_signals_Clear_signals( api, signo, &siginfo_struct, 4b0da: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b0dc: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4b0de: 4eb9 0004 b158 jsr 4b158 <_POSIX_signals_Clear_signals> <== NOT EXECUTED 4b0e4: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4b0ea: 4a00 tstb %d0 <== NOT EXECUTED 4b0ec: 675c beqs 4b14a <_POSIX_signals_Check_signal+0x96> <== NOT EXECUTED #endif /* * Just to prevent sending a signal which is currently being ignored. */ if ( _POSIX_signals_Vectors[ signo ].sa_handler == SIG_IGN ) 4b0ee: 2002 movel %d2,%d0 <== NOT EXECUTED 4b0f0: 2202 movel %d2,%d1 <== NOT EXECUTED 4b0f2: e588 lsll #2,%d0 <== NOT EXECUTED 4b0f4: e989 lsll #4,%d1 <== NOT EXECUTED 4b0f6: 9280 subl %d0,%d1 <== NOT EXECUTED 4b0f8: 2441 moveal %d1,%a2 <== NOT EXECUTED 4b0fa: d5fc 0005 838e addal #361358,%a2 <== NOT EXECUTED 4b100: 2252 moveal %a2@,%a1 <== NOT EXECUTED 4b102: 47f9 0005 8386 lea 58386 <_POSIX_signals_Vectors>,%a3 <== NOT EXECUTED 4b108: 7001 moveq #1,%d0 <== NOT EXECUTED 4b10a: b089 cmpl %a1,%d0 <== NOT EXECUTED 4b10c: 673c beqs 4b14a <_POSIX_signals_Check_signal+0x96> <== NOT EXECUTED /* * Block the signals requested in sa_mask */ saved_signals_blocked = api->signals_blocked; api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask; 4b10e: 2a42 moveal %d2,%a5 <== NOT EXECUTED 4b110: 41f5 2a01 lea %a5@(00000001,%d2:l:2),%a0 <== NOT EXECUTED 4b114: 2033 8c00 movel %a3@(00000000,%a0:l:4),%d0 <== NOT EXECUTED return false; /* * Block the signals requested in sa_mask */ saved_signals_blocked = api->signals_blocked; 4b118: 262c 00c4 movel %a4@(196),%d3 <== NOT EXECUTED api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask; 4b11c: 8083 orl %d3,%d0 <== NOT EXECUTED 4b11e: 2940 00c4 movel %d0,%a4@(196) <== NOT EXECUTED /* * Here, the signal handler function executes */ switch ( _POSIX_signals_Vectors[ signo ].sa_flags ) { 4b122: 7002 moveq #2,%d0 <== NOT EXECUTED 4b124: b0b3 1800 cmpl %a3@(00000000,%d1:l),%d0 <== NOT EXECUTED 4b128: 6612 bnes 4b13c <_POSIX_signals_Check_signal+0x88> <== NOT EXECUTED case SA_SIGINFO: (*_POSIX_signals_Vectors[ signo ].sa_sigaction)( 4b12a: 42a7 clrl %sp@- <== NOT EXECUTED 4b12c: 2052 moveal %a2@,%a0 <== NOT EXECUTED 4b12e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4b130: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b132: 4e90 jsr %a0@ <== NOT EXECUTED 4b134: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4b13a: 6006 bras 4b142 <_POSIX_signals_Check_signal+0x8e> <== NOT EXECUTED &siginfo_struct, NULL /* context is undefined per 1003.1b-1993, p. 66 */ ); break; default: (*_POSIX_signals_Vectors[ signo ].sa_handler)( signo ); 4b13c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b13e: 4e91 jsr %a1@ <== NOT EXECUTED 4b140: 588f addql #4,%sp <== NOT EXECUTED } /* * Restore the previous set of blocked signals */ api->signals_blocked = saved_signals_blocked; 4b142: 2943 00c4 movel %d3,%a4@(196) <== NOT EXECUTED 4b146: 7001 moveq #1,%d0 <== NOT EXECUTED 4b148: 6002 bras 4b14c <_POSIX_signals_Check_signal+0x98> <== NOT EXECUTED return true; 4b14a: 4200 clrb %d0 <== NOT EXECUTED } 4b14c: 4cee 3c1c ffd8 moveml %fp@(-40),%d2-%d4/%a2-%a5 <== NOT EXECUTED 4b152: 4e5e unlk %fp <== NOT EXECUTED 4b154: 4e75 rts <== NOT EXECUTED ... 0004b730 <_POSIX_signals_Clear_process_signals>: */ void _POSIX_signals_Clear_process_signals( sigset_t mask ) { 4b730: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b734: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4b736: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED */ void _POSIX_signals_Clear_process_signals( sigset_t mask ) { 4b73c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4b740: 40c2 movew %sr,%d2 <== NOT EXECUTED 4b742: 8282 orl %d2,%d1 <== NOT EXECUTED 4b744: 46c1 movew %d1,%sr <== NOT EXECUTED _POSIX_signals_Pending &= ~mask; 4b746: 4680 notl %d0 <== NOT EXECUTED 4b748: c0b9 0005 8552 andl 58552 <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4b74e: 23c0 0005 8552 movel %d0,58552 <_POSIX_signals_Pending> <== NOT EXECUTED if ( !_POSIX_signals_Pending ) 4b754: 6606 bnes 4b75c <_POSIX_signals_Clear_process_signals+0x2c> <== NOT EXECUTED _Thread_Do_post_task_switch_extension--; 4b756: 53b9 0005 7f22 subql #1,57f22 <_Thread_Do_post_task_switch_extension> <== NOT EXECUTED _ISR_Enable( level ); 4b75c: 46c2 movew %d2,%sr <== NOT EXECUTED } 4b75e: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b760: 4e5e unlk %fp <== NOT EXECUTED 4b762: 4e75 rts 0004b158 <_POSIX_signals_Clear_signals>: int signo, siginfo_t *info, bool is_global, bool check_blocked ) { 4b158: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4b15c: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 4b160: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED sigset_t signals_blocked; ISR_Level level; bool do_callout; POSIX_signals_Siginfo_node *psiginfo; mask = signo_to_mask( signo ); 4b164: 2003 movel %d3,%d0 <== NOT EXECUTED 4b166: 7401 moveq #1,%d2 <== NOT EXECUTED 4b168: 5380 subql #1,%d0 <== NOT EXECUTED int signo, siginfo_t *info, bool is_global, bool check_blocked ) { 4b16a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED sigset_t signals_blocked; ISR_Level level; bool do_callout; POSIX_signals_Siginfo_node *psiginfo; mask = signo_to_mask( signo ); 4b16e: e1aa lsll %d0,%d2 <== NOT EXECUTED int signo, siginfo_t *info, bool is_global, bool check_blocked ) { 4b170: 182e 0017 moveb %fp@(23),%d4 <== NOT EXECUTED /* set blocked signals based on if checking for them, SIGNAL_ALL_MASK * insures that no signals are blocked and all are checked. */ if ( check_blocked ) 4b174: 4a2e 001b tstb %fp@(27) <== NOT EXECUTED 4b178: 6604 bnes 4b17e <_POSIX_signals_Clear_signals+0x26> <== NOT EXECUTED 4b17a: 72ff moveq #-1,%d1 <== NOT EXECUTED 4b17c: 6006 bras 4b184 <_POSIX_signals_Clear_signals+0x2c> <== NOT EXECUTED signals_blocked = ~api->signals_blocked; 4b17e: 2228 00c4 movel %a0@(196),%d1 <== NOT EXECUTED 4b182: 4681 notl %d1 <== NOT EXECUTED signals_blocked = SIGNAL_ALL_MASK; /* XXX this is not right for siginfo type signals yet */ /* XXX since they can't be cleared the same way */ _ISR_Disable( level ); 4b184: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4b18a: 40c5 movew %sr,%d5 <== NOT EXECUTED 4b18c: 8085 orl %d5,%d0 <== NOT EXECUTED 4b18e: 46c0 movew %d0,%sr <== NOT EXECUTED if ( is_global ) { 4b190: 4a04 tstb %d4 <== NOT EXECUTED 4b192: 6700 0096 beqw 4b22a <_POSIX_signals_Clear_signals+0xd2> <== NOT EXECUTED if ( mask & (_POSIX_signals_Pending & signals_blocked) ) { 4b196: 2002 movel %d2,%d0 <== NOT EXECUTED 4b198: c0b9 0005 8552 andl 58552 <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4b19e: c081 andl %d1,%d0 <== NOT EXECUTED 4b1a0: 6700 00a0 beqw 4b242 <_POSIX_signals_Clear_signals+0xea> <== NOT EXECUTED if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) { 4b1a4: 2003 movel %d3,%d0 <== NOT EXECUTED 4b1a6: e988 lsll #4,%d0 <== NOT EXECUTED 4b1a8: e58b lsll #2,%d3 <== NOT EXECUTED 4b1aa: 9083 subl %d3,%d0 <== NOT EXECUTED 4b1ac: 41f9 0005 8386 lea 58386 <_POSIX_signals_Vectors>,%a0 <== NOT EXECUTED 4b1b2: 7202 moveq #2,%d1 <== NOT EXECUTED 4b1b4: b2b0 0800 cmpl %a0@(00000000,%d0:l),%d1 <== NOT EXECUTED 4b1b8: 6662 bnes 4b21c <_POSIX_signals_Clear_signals+0xc4> <== NOT EXECUTED psiginfo = (POSIX_signals_Siginfo_node *) 4b1ba: 2240 moveal %d0,%a1 <== NOT EXECUTED 4b1bc: d3fc 0005 8556 addal #361814,%a1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 4b1c2: 2649 moveal %a1,%a3 <== NOT EXECUTED 4b1c4: 245b moveal %a3@+,%a2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected( Chain_Control *the_chain ) { if ( !_Chain_Is_empty(the_chain)) 4b1c6: b7ca cmpal %a2,%a3 <== NOT EXECUTED 4b1c8: 6604 bnes 4b1ce <_POSIX_signals_Clear_signals+0x76> <== NOT EXECUTED 4b1ca: 95ca subal %a2,%a2 <== NOT EXECUTED 4b1cc: 6008 bras 4b1d6 <_POSIX_signals_Clear_signals+0x7e> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 4b1ce: 2052 moveal %a2@,%a0 <== NOT EXECUTED the_chain->first = new_first; 4b1d0: 2288 movel %a0,%a1@ <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 4b1d2: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED _Chain_Get_unprotected( &_POSIX_signals_Siginfo[ signo ] ); if ( _Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) ) 4b1d6: b7d1 cmpal %a1@,%a3 <== NOT EXECUTED 4b1d8: 660a bnes 4b1e4 <_POSIX_signals_Clear_signals+0x8c> <== NOT EXECUTED _POSIX_signals_Clear_process_signals( mask ); 4b1da: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b1dc: 4eb9 0004 b730 jsr 4b730 <_POSIX_signals_Clear_process_signals> <== NOT EXECUTED 4b1e2: 588f addql #4,%sp <== NOT EXECUTED if ( psiginfo ) { 4b1e4: 4a8a tstl %a2 <== NOT EXECUTED 4b1e6: 673e beqs 4b226 <_POSIX_signals_Clear_signals+0xce> <== NOT EXECUTED *info = psiginfo->Info; 4b1e8: 4878 000c pea c <== NOT EXECUTED 4b1ec: 486a 0008 pea %a2@(8) <== NOT EXECUTED 4b1f0: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4b1f4: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4b1fa: 24bc 0005 850a movel #361738,%a2@ <== NOT EXECUTED old_last_node = the_chain->last; 4b200: 2079 0005 850e moveal 5850e <_POSIX_signals_Inactive_siginfo+0x8>,%a0 <== NOT EXECUTED the_chain->last = the_node; 4b206: 23ca 0005 850e movel %a2,5850e <_POSIX_signals_Inactive_siginfo+0x8> <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4b20c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4b212: 7001 moveq #1,%d0 <== NOT EXECUTED 4b214: 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; 4b218: 208a movel %a2,%a0@ <== NOT EXECUTED 4b21a: 6028 bras 4b244 <_POSIX_signals_Clear_signals+0xec> <== NOT EXECUTED &psiginfo->Node ); } else do_callout = false; } else _POSIX_signals_Clear_process_signals( mask ); 4b21c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b21e: 4eb9 0004 b730 jsr 4b730 <_POSIX_signals_Clear_process_signals> <== NOT EXECUTED 4b224: 588f addql #4,%sp <== NOT EXECUTED 4b226: 7001 moveq #1,%d0 <== NOT EXECUTED 4b228: 601a bras 4b244 <_POSIX_signals_Clear_signals+0xec> <== NOT EXECUTED do_callout = true; } } else { if ( mask & (api->signals_pending & signals_blocked) ) { 4b22a: 2628 00c8 movel %a0@(200),%d3 <== NOT EXECUTED 4b22e: 2002 movel %d2,%d0 <== NOT EXECUTED 4b230: c083 andl %d3,%d0 <== NOT EXECUTED 4b232: c081 andl %d1,%d0 <== NOT EXECUTED 4b234: 670c beqs 4b242 <_POSIX_signals_Clear_signals+0xea> <== NOT EXECUTED api->signals_pending &= ~mask; 4b236: 2002 movel %d2,%d0 <== NOT EXECUTED 4b238: 4680 notl %d0 <== NOT EXECUTED 4b23a: c083 andl %d3,%d0 <== NOT EXECUTED 4b23c: 2140 00c8 movel %d0,%a0@(200) <== NOT EXECUTED 4b240: 60e4 bras 4b226 <_POSIX_signals_Clear_signals+0xce> <== NOT EXECUTED 4b242: 4200 clrb %d0 <== NOT EXECUTED do_callout = true; } } _ISR_Enable( level ); 4b244: 46c5 movew %d5,%sr <== NOT EXECUTED return do_callout; } 4b246: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 4b24c: 4e5e unlk %fp <== NOT EXECUTED 4b24e: 4e75 rts 0004583c <_POSIX_signals_Get_highest>: #include int _POSIX_signals_Get_highest( sigset_t set ) { 4583c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 45840: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 45844: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 45848: 721b moveq #27,%d1 <== NOT EXECUTED int signo; for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { if ( set & signo_to_mask( signo ) ) 4584a: 7401 moveq #1,%d2 <== NOT EXECUTED 4584c: 2001 movel %d1,%d0 <== NOT EXECUTED 4584e: 5380 subql #1,%d0 <== NOT EXECUTED 45850: 2802 movel %d2,%d4 <== NOT EXECUTED 45852: e1ac lsll %d0,%d4 <== NOT EXECUTED 45854: 2004 movel %d4,%d0 <== NOT EXECUTED 45856: c083 andl %d3,%d0 <== NOT EXECUTED 45858: 6628 bnes 45882 <_POSIX_signals_Get_highest+0x46> <== NOT EXECUTED sigset_t set ) { int signo; for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { 4585a: 5281 addql #1,%d1 <== NOT EXECUTED 4585c: 103c 0020 moveb #32,%d0 <== NOT EXECUTED 45860: b081 cmpl %d1,%d0 <== NOT EXECUTED 45862: 66e8 bnes 4584c <_POSIX_signals_Get_highest+0x10> <== NOT EXECUTED 45864: 7201 moveq #1,%d1 <== NOT EXECUTED } /* XXX - add __SIGFIRSTNOTRT or something like that to newlib signal .h */ for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) { if ( set & signo_to_mask( signo ) ) 45866: 7401 moveq #1,%d2 <== NOT EXECUTED 45868: 2001 movel %d1,%d0 <== NOT EXECUTED 4586a: 5380 subql #1,%d0 <== NOT EXECUTED 4586c: 2802 movel %d2,%d4 <== NOT EXECUTED 4586e: e1ac lsll %d0,%d4 <== NOT EXECUTED 45870: 2004 movel %d4,%d0 <== NOT EXECUTED 45872: c083 andl %d3,%d0 <== NOT EXECUTED 45874: 660c bnes 45882 <_POSIX_signals_Get_highest+0x46> <== NOT EXECUTED return signo; } /* XXX - add __SIGFIRSTNOTRT or something like that to newlib signal .h */ for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) { 45876: 5281 addql #1,%d1 <== NOT EXECUTED 45878: 103c 001b moveb #27,%d0 <== NOT EXECUTED 4587c: b081 cmpl %d1,%d0 <== NOT EXECUTED 4587e: 66e8 bnes 45868 <_POSIX_signals_Get_highest+0x2c> <== NOT EXECUTED 45880: 4281 clrl %d1 <== NOT EXECUTED if ( set & signo_to_mask( signo ) ) return signo; } return 0; } 45882: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 45886: 4e5e unlk %fp <== NOT EXECUTED 45888: 2001 movel %d1,%d0 <== NOT EXECUTED 4588a: 4e75 rts 0004980c <_POSIX_signals_Manager_Initialization>: */ void _POSIX_signals_Manager_Initialization( int maximum_queued_signals ) { 4980c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49810: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49812: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED assert( sizeof(_POSIX_signals_Vectors) == sizeof(_POSIX_signals_Default_vectors) ); memcpy( 49816: 4878 0180 pea 180 <== NOT EXECUTED 4981a: 4879 0005 548a pea 5548a <_POSIX_signals_Default_vectors> <== NOT EXECUTED 49820: 4879 0005 8386 pea 58386 <_POSIX_signals_Vectors> <== NOT EXECUTED 49826: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED /* * Initialize the set of pending signals for the entire process */ sigemptyset( &_POSIX_signals_Pending ); 4982c: 4879 0005 8552 pea 58552 <_POSIX_signals_Pending> <== NOT EXECUTED 49832: 4eb9 0004 9d24 jsr 49d24 <== NOT EXECUTED /* * Initialize the queue we use to block for signals */ _Thread_queue_Initialize( 49838: 4878 000b pea b <== NOT EXECUTED 4983c: 2f3c 1000 8000 movel #268468224,%sp@- <== NOT EXECUTED 49842: 4878 0001 pea 1 <== NOT EXECUTED 49846: 4879 0005 8512 pea 58512 <_POSIX_signals_Wait_queue> <== NOT EXECUTED 4984c: 4eb9 0004 73bc jsr 473bc <_Thread_queue_Initialize> <== NOT EXECUTED 49852: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 49858: 41f9 0005 8562 lea 58562 <_POSIX_signals_Siginfo+0xc>,%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4985e: 2008 movel %a0,%d0 <== NOT EXECUTED 49860: 5880 addql #4,%d0 <== NOT EXECUTED 49862: 2080 movel %d0,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 49864: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 49868: 2148 0008 movel %a0,%a0@(8) <== NOT EXECUTED 4986c: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED /* * Allocate the siginfo pools. */ for ( signo=1 ; signo<= SIGRTMAX ; signo++ ) 49872: b1fc 0005 86d6 cmpal #362198,%a0 <== NOT EXECUTED 49878: 66e4 bnes 4985e <_POSIX_signals_Manager_Initialization+0x52> <== NOT EXECUTED _Chain_Initialize_empty( &_POSIX_signals_Siginfo[ signo ] ); if ( maximum_queued_signals ) { 4987a: 4a82 tstl %d2 <== NOT EXECUTED 4987c: 672c beqs 498aa <_POSIX_signals_Manager_Initialization+0x9e> <== NOT EXECUTED _Chain_Initialize( 4987e: 2002 movel %d2,%d0 <== NOT EXECUTED 49880: e988 lsll #4,%d0 <== NOT EXECUTED 49882: 2040 moveal %d0,%a0 <== NOT EXECUTED 49884: 4870 2c00 pea %a0@(00000000,%d2:l:4) <== NOT EXECUTED 49888: 4eb9 0004 7ec4 jsr 47ec4 <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED 4988e: 4878 0014 pea 14 <== NOT EXECUTED 49892: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49894: 2f00 movel %d0,%sp@- <== NOT EXECUTED 49896: 4879 0005 8506 pea 58506 <_POSIX_signals_Inactive_siginfo> <== NOT EXECUTED 4989c: 4eb9 0004 a220 jsr 4a220 <_Chain_Initialize> <== NOT EXECUTED 498a2: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 498a8: 601e bras 498c8 <_POSIX_signals_Manager_Initialization+0xbc> <== NOT EXECUTED 498aa: 41f9 0005 8506 lea 58506 <_POSIX_signals_Inactive_siginfo>,%a0 <== NOT EXECUTED 498b0: 23c8 0005 850e movel %a0,5850e <_POSIX_signals_Inactive_siginfo+0x8> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 498b6: 203c 0005 850a movel #361738,%d0 <== NOT EXECUTED 498bc: 23c0 0005 8506 movel %d0,58506 <_POSIX_signals_Inactive_siginfo> <== NOT EXECUTED the_chain->permanent_null = NULL; 498c2: 42b9 0005 850a clrl 5850a <_POSIX_signals_Inactive_siginfo+0x4> <== NOT EXECUTED sizeof( POSIX_signals_Siginfo_node ) ); } else { _Chain_Initialize_empty( &_POSIX_signals_Inactive_siginfo ); } } 498c8: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 498cc: 4e5e unlk %fp <== NOT EXECUTED 498ce: 4e75 rts 000498d0 <_POSIX_signals_Post_switch_extension>: */ void _POSIX_signals_Post_switch_extension( Thread_Control *the_thread ) { 498d0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 498d4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 498d8: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED POSIX_API_Control *api; int signo; ISR_Level level; api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 498dc: 2468 0110 moveal %a0@(272),%a2 <== NOT EXECUTED if ( !api ) 498e0: 4a8a tstl %a2 <== NOT EXECUTED 498e2: 6700 0094 beqw 49978 <_POSIX_signals_Post_switch_extension+0xa8> <== NOT EXECUTED * The first thing done is to check there are any signals to be * processed at all. No point in doing this loop otherwise. */ while (1) { restart: _ISR_Disable( level ); 498e6: 263c 0000 0700 movel #1792,%d3 <== NOT EXECUTED } _ISR_Enable( level ); for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { if ( _POSIX_signals_Check_signal( api, signo, false ) ) 498ec: 47f9 0004 b0b4 lea 4b0b4 <_POSIX_signals_Check_signal>,%a3 <== NOT EXECUTED * The first thing done is to check there are any signals to be * processed at all. No point in doing this loop otherwise. */ while (1) { restart: _ISR_Disable( level ); 498f2: 2003 movel %d3,%d0 <== NOT EXECUTED 498f4: 40c2 movew %sr,%d2 <== NOT EXECUTED 498f6: 8082 orl %d2,%d0 <== NOT EXECUTED 498f8: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !(~api->signals_blocked & 498fa: 2039 0005 8552 movel 58552 <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 49900: 222a 00c4 movel %a2@(196),%d1 <== NOT EXECUTED 49904: 80aa 00c8 orl %a2@(200),%d0 <== NOT EXECUTED 49908: 4681 notl %d1 <== NOT EXECUTED 4990a: c081 andl %d1,%d0 <== NOT EXECUTED 4990c: 6604 bnes 49912 <_POSIX_signals_Post_switch_extension+0x42> <== NOT EXECUTED (api->signals_pending | _POSIX_signals_Pending)) ) { _ISR_Enable( level ); 4990e: 46c2 movew %d2,%sr <== NOT EXECUTED 49910: 6066 bras 49978 <_POSIX_signals_Post_switch_extension+0xa8> <== NOT EXECUTED break; } _ISR_Enable( level ); 49912: 46c2 movew %d2,%sr <== NOT EXECUTED 49914: 741b moveq #27,%d2 <== NOT EXECUTED for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { if ( _POSIX_signals_Check_signal( api, signo, false ) ) 49916: 42a7 clrl %sp@- <== NOT EXECUTED 49918: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4991a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4991c: 4e93 jsr %a3@ <== NOT EXECUTED 4991e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49924: 4a00 tstb %d0 <== NOT EXECUTED 49926: 66ca bnes 498f2 <_POSIX_signals_Post_switch_extension+0x22> <== NOT EXECUTED goto restart; if ( _POSIX_signals_Check_signal( api, signo, true ) ) 49928: 4878 0001 pea 1 <== NOT EXECUTED 4992c: 2f02 movel %d2,%sp@- <== NOT EXECUTED _ISR_Enable( level ); break; } _ISR_Enable( level ); for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { 4992e: 5282 addql #1,%d2 <== NOT EXECUTED if ( _POSIX_signals_Check_signal( api, signo, false ) ) goto restart; if ( _POSIX_signals_Check_signal( api, signo, true ) ) 49930: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49932: 4e93 jsr %a3@ <== NOT EXECUTED 49934: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4993a: 4a00 tstb %d0 <== NOT EXECUTED 4993c: 66b4 bnes 498f2 <_POSIX_signals_Post_switch_extension+0x22> <== NOT EXECUTED _ISR_Enable( level ); break; } _ISR_Enable( level ); for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { 4993e: 7020 moveq #32,%d0 <== NOT EXECUTED 49940: b082 cmpl %d2,%d0 <== NOT EXECUTED 49942: 66d2 bnes 49916 <_POSIX_signals_Post_switch_extension+0x46> <== NOT EXECUTED 49944: 7401 moveq #1,%d2 <== NOT EXECUTED /* XXX - add __SIGFIRSTNOTRT or something like that to newlib signal .h */ for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) { if ( _POSIX_signals_Check_signal( api, signo, false ) ) 49946: 42a7 clrl %sp@- <== NOT EXECUTED 49948: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4994a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4994c: 4e93 jsr %a3@ <== NOT EXECUTED 4994e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49954: 4a00 tstb %d0 <== NOT EXECUTED 49956: 669a bnes 498f2 <_POSIX_signals_Post_switch_extension+0x22> <== NOT EXECUTED goto restart; if ( _POSIX_signals_Check_signal( api, signo, true ) ) 49958: 4878 0001 pea 1 <== NOT EXECUTED 4995c: 2f02 movel %d2,%sp@- <== NOT EXECUTED } /* XXX - add __SIGFIRSTNOTRT or something like that to newlib signal .h */ for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) { 4995e: 5282 addql #1,%d2 <== NOT EXECUTED if ( _POSIX_signals_Check_signal( api, signo, false ) ) goto restart; if ( _POSIX_signals_Check_signal( api, signo, true ) ) 49960: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49962: 4e93 jsr %a3@ <== NOT EXECUTED 49964: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4996a: 4a00 tstb %d0 <== NOT EXECUTED 4996c: 6684 bnes 498f2 <_POSIX_signals_Post_switch_extension+0x22> <== NOT EXECUTED } /* XXX - add __SIGFIRSTNOTRT or something like that to newlib signal .h */ for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) { 4996e: 701b moveq #27,%d0 <== NOT EXECUTED 49970: b082 cmpl %d2,%d0 <== NOT EXECUTED 49972: 66d2 bnes 49946 <_POSIX_signals_Post_switch_extension+0x76> <== NOT EXECUTED 49974: 6000 ff7c braw 498f2 <_POSIX_signals_Post_switch_extension+0x22> <== NOT EXECUTED goto restart; } } return; } 49978: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 4997e: 4e5e unlk %fp <== NOT EXECUTED 49980: 4e75 rts 000543b0 <_POSIX_signals_Set_process_signals>: */ void _POSIX_signals_Set_process_signals( sigset_t mask ) { 543b0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 543b4: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 543ba: 40c1 movew %sr,%d1 <== NOT EXECUTED 543bc: 8081 orl %d1,%d0 <== NOT EXECUTED 543be: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_POSIX_signals_Pending ) 543c0: 2039 0005 8552 movel 58552 <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 543c6: 6606 bnes 543ce <_POSIX_signals_Set_process_signals+0x1e> <== NOT EXECUTED _Thread_Do_post_task_switch_extension++; 543c8: 52b9 0005 7f22 addql #1,57f22 <_Thread_Do_post_task_switch_extension> <== NOT EXECUTED _POSIX_signals_Pending |= mask; 543ce: 80ae 0008 orl %fp@(8),%d0 <== NOT EXECUTED 543d2: 23c0 0005 8552 movel %d0,58552 <_POSIX_signals_Pending> <== NOT EXECUTED _ISR_Enable( level ); 543d8: 46c1 movew %d1,%sr <== NOT EXECUTED } 543da: 4e5e unlk %fp <== NOT EXECUTED 543dc: 4e75 rts <== NOT EXECUTED ... 00044c3a <_POSIX_signals_Ualarm_TSR>: void _POSIX_signals_Ualarm_TSR( Objects_Id id, void *argument ) { 44c3a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * Send a SIGALRM but if there is a problem, ignore it. * It's OK, there isn't a way this should fail. */ (void) kill( getpid(), SIGALRM ); 44c3e: 4eb9 0004 2444 jsr 42444 <== NOT EXECUTED 44c44: 4878 000e pea e <== NOT EXECUTED 44c48: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44c4a: 4eb9 0004 4918 jsr 44918 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Reset( Watchdog_Control *the_watchdog ) { (void) _Watchdog_Remove( the_watchdog ); 44c50: 4879 0005 9dbc pea 59dbc <_POSIX_signals_Ualarm_timer> <== NOT EXECUTED 44c56: 4eb9 0004 8410 jsr 48410 <_Watchdog_Remove> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 44c5c: 203c 0005 9dbc movel #368060,%d0 <== NOT EXECUTED 44c62: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 44c66: 203c 0005 9f8c movel #368524,%d0 <== NOT EXECUTED 44c6c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44c72: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED /* * If the reset interval is non-zero, reschedule ourselves. */ _Watchdog_Reset( &_POSIX_signals_Ualarm_timer ); } 44c76: 4e5e unlk %fp <== NOT EXECUTED 44c78: 4ef9 0004 82f4 jmp 482f4 <_Watchdog_Insert> <== NOT EXECUTED ... 000543e0 <_POSIX_signals_Unblock_thread>: bool _POSIX_signals_Unblock_thread( Thread_Control *the_thread, int signo, siginfo_t *info ) { 543e0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 543e4: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 543e8: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 543ec: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED sigset_t mask; siginfo_t *the_info = NULL; api = the_thread->API_Extensions[ THREAD_API_POSIX ]; mask = signo_to_mask( signo ); 543f0: 2009 movel %a1,%d0 <== NOT EXECUTED 543f2: 5380 subql #1,%d0 <== NOT EXECUTED 543f4: 7401 moveq #1,%d2 <== NOT EXECUTED 543f6: e1aa lsll %d0,%d2 <== NOT EXECUTED /* * Is the thread is specifically waiting for a signal? */ if ( _States_Is_interruptible_signal( the_thread->current_state ) ) { 543f8: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED bool _POSIX_signals_Unblock_thread( Thread_Control *the_thread, int signo, siginfo_t *info ) { 543fc: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED POSIX_API_Control *api; sigset_t mask; siginfo_t *the_info = NULL; api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 54400: 206a 0110 moveal %a2@(272),%a0 <== NOT EXECUTED /* * Is the thread is specifically waiting for a signal? */ if ( _States_Is_interruptible_signal( the_thread->current_state ) ) { 54404: 0280 1000 8000 andil #268468224,%d0 <== NOT EXECUTED 5440a: 0c80 1000 8000 cmpil #268468224,%d0 <== NOT EXECUTED 54410: 6654 bnes 54466 <_POSIX_signals_Unblock_thread+0x86> <== NOT EXECUTED if ( (the_thread->Wait.option & mask) || (~api->signals_blocked & mask) ) { 54412: 2002 movel %d2,%d0 <== NOT EXECUTED 54414: c0aa 0030 andl %a2@(48),%d0 <== NOT EXECUTED 54418: 660e bnes 54428 <_POSIX_signals_Unblock_thread+0x48> <== NOT EXECUTED 5441a: 2228 00c4 movel %a0@(196),%d1 <== NOT EXECUTED 5441e: 2002 movel %d2,%d0 <== NOT EXECUTED 54420: 4681 notl %d1 <== NOT EXECUTED 54422: c081 andl %d1,%d0 <== NOT EXECUTED 54424: 6700 00b2 beqw 544d8 <_POSIX_signals_Unblock_thread+0xf8> <== NOT EXECUTED the_thread->Wait.return_code = EINTR; the_info = (siginfo_t *) the_thread->Wait.return_argument; 54428: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED */ if ( _States_Is_interruptible_signal( the_thread->current_state ) ) { if ( (the_thread->Wait.option & mask) || (~api->signals_blocked & mask) ) { the_thread->Wait.return_code = EINTR; 5442c: 7004 moveq #4,%d0 <== NOT EXECUTED 5442e: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED the_info = (siginfo_t *) the_thread->Wait.return_argument; if ( !info ) { 54432: 4a83 tstl %d3 <== NOT EXECUTED 54434: 660e bnes 54444 <_POSIX_signals_Unblock_thread+0x64> <== NOT EXECUTED the_info->si_signo = signo; the_info->si_code = SI_USER; 54436: 7201 moveq #1,%d1 <== NOT EXECUTED the_thread->Wait.return_code = EINTR; the_info = (siginfo_t *) the_thread->Wait.return_argument; if ( !info ) { the_info->si_signo = signo; 54438: 2089 movel %a1,%a0@ <== NOT EXECUTED the_info->si_code = SI_USER; 5443a: 2141 0004 movel %d1,%a0@(4) <== NOT EXECUTED the_info->si_value.sival_int = 0; 5443e: 42a8 0008 clrl %a0@(8) <== NOT EXECUTED 54442: 6014 bras 54458 <_POSIX_signals_Unblock_thread+0x78> <== NOT EXECUTED } else { *the_info = *info; 54444: 4878 000c pea c <== NOT EXECUTED 54448: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5444a: 2f08 movel %a0,%sp@- <== NOT EXECUTED 5444c: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED 54452: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } _Thread_queue_Extract_with_proxy( the_thread ); 54458: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5445a: 4eb9 0004 7368 jsr 47368 <_Thread_queue_Extract_with_proxy> <== NOT EXECUTED 54460: 588f addql #4,%sp <== NOT EXECUTED 54462: 7001 moveq #1,%d0 <== NOT EXECUTED 54464: 6074 bras 544da <_POSIX_signals_Unblock_thread+0xfa> <== NOT EXECUTED } /* * Thread is not waiting due to a sigwait. */ if ( ~api->signals_blocked & mask ) { 54466: 2228 00c4 movel %a0@(196),%d1 <== NOT EXECUTED 5446a: 2002 movel %d2,%d0 <== NOT EXECUTED 5446c: 4681 notl %d1 <== NOT EXECUTED 5446e: c081 andl %d1,%d0 <== NOT EXECUTED 54470: 6766 beqs 544d8 <_POSIX_signals_Unblock_thread+0xf8> <== NOT EXECUTED * + Any other combination, do nothing. */ the_thread->do_post_task_switch_extension = true; if ( the_thread->current_state & STATES_INTERRUPTIBLE_BY_SIGNAL ) { 54472: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED * it is not blocked, THEN * we need to dispatch at the end of this ISR. * + Any other combination, do nothing. */ the_thread->do_post_task_switch_extension = true; 54476: 7201 moveq #1,%d1 <== NOT EXECUTED 54478: 1541 0075 moveb %d1,%a2@(117) <== NOT EXECUTED if ( the_thread->current_state & STATES_INTERRUPTIBLE_BY_SIGNAL ) { 5447c: 0800 001c btst #28,%d0 <== NOT EXECUTED 54480: 6736 beqs 544b8 <_POSIX_signals_Unblock_thread+0xd8> <== NOT EXECUTED the_thread->Wait.return_code = EINTR; 54482: 7004 moveq #4,%d0 <== NOT EXECUTED 54484: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED #if 0 if ( _States_Is_waiting_on_thread_queue(the_thread->current_state) ) _Thread_queue_Extract_with_proxy( the_thread ); else #endif if ( _States_Is_delaying(the_thread->current_state) ){ 54488: 103c 0008 moveb #8,%d0 <== NOT EXECUTED 5448c: c0aa 0010 andl %a2@(16),%d0 <== NOT EXECUTED 54490: 6746 beqs 544d8 <_POSIX_signals_Unblock_thread+0xf8> <== NOT EXECUTED if ( _Watchdog_Is_active( &the_thread->Timer ) ) 54492: 7202 moveq #2,%d1 <== NOT EXECUTED 54494: b2aa 0050 cmpl %a2@(80),%d1 <== NOT EXECUTED 54498: 660c bnes 544a6 <_POSIX_signals_Unblock_thread+0xc6> <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 5449a: 486a 0048 pea %a2@(72) <== NOT EXECUTED 5449e: 4eb9 0004 7d9c jsr 47d9c <_Watchdog_Remove> <== NOT EXECUTED 544a4: 588f addql #4,%sp <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 544a6: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 544ac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 544ae: 4eb9 0004 6948 jsr 46948 <_Thread_Clear_state> <== NOT EXECUTED 544b4: 508f addql #8,%sp <== NOT EXECUTED 544b6: 6020 bras 544d8 <_POSIX_signals_Unblock_thread+0xf8> <== NOT EXECUTED _Thread_Unblock( the_thread ); } } else if ( the_thread->current_state == STATES_READY ) { 544b8: 4a80 tstl %d0 <== NOT EXECUTED 544ba: 661c bnes 544d8 <_POSIX_signals_Unblock_thread+0xf8> <== NOT EXECUTED if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) 544bc: 2039 0005 7f1a movel 57f1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED 544c2: 6714 beqs 544d8 <_POSIX_signals_Unblock_thread+0xf8> <== NOT EXECUTED 544c4: b5f9 0005 7f3a cmpal 57f3a <_Thread_Executing>,%a2 <== NOT EXECUTED 544ca: 660c bnes 544d8 <_POSIX_signals_Unblock_thread+0xf8> <== NOT EXECUTED _ISR_Signals_to_thread_executing = TRUE; 544cc: 7201 moveq #1,%d1 <== NOT EXECUTED 544ce: 4200 clrb %d0 <== NOT EXECUTED 544d0: 13c1 0005 7fc8 moveb %d1,57fc8 <_ISR_Signals_to_thread_executing> <== NOT EXECUTED 544d6: 6002 bras 544da <_POSIX_signals_Unblock_thread+0xfa> <== NOT EXECUTED 544d8: 4200 clrb %d0 <== NOT EXECUTED } } return false; } 544da: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 544e0: 4e5e unlk %fp <== NOT EXECUTED 544e2: 4e75 rts 00049df0 <_Partition_Manager_initialization>: */ void _Partition_Manager_initialization( uint32_t maximum_partitions ) { 49df0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49df4: 4878 0004 pea 4 <== NOT EXECUTED 49df8: 42a7 clrl %sp@- <== NOT EXECUTED 49dfa: 4878 0030 pea 30 <== NOT EXECUTED 49dfe: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49e02: 4878 0005 pea 5 <== NOT EXECUTED 49e06: 4878 0002 pea 2 <== NOT EXECUTED 49e0a: 4879 0005 87d2 pea 587d2 <_Partition_Information> <== NOT EXECUTED 49e10: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49e16: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_PARTITION, _Partition_MP_Process_packet ); #endif } 49e1c: 4e5e unlk %fp <== NOT EXECUTED 49e1e: 4e75 rts 0004a5f4 <_Protected_heap_Allocate>: void *_Protected_heap_Allocate( Heap_Control *the_heap, size_t size ) { 4a5f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a5f8: 2f02 movel %d2,%sp@- <== NOT EXECUTED void *p; _RTEMS_Lock_allocator(); 4a5fa: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4a600: 4eb9 0004 58cc jsr 458cc <_API_Mutex_Lock> <== NOT EXECUTED p = _Heap_Allocate( the_heap, size ); 4a606: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a60a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a60e: 4eb9 0004 a3b0 jsr 4a3b0 <_Heap_Allocate> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4a614: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { void *p; _RTEMS_Lock_allocator(); p = _Heap_Allocate( the_heap, size ); 4a61a: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4a61c: 4eb9 0004 5930 jsr 45930 <_API_Mutex_Unlock> <== NOT EXECUTED return p; } 4a622: 2002 movel %d2,%d0 <== NOT EXECUTED 4a624: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4a628: 4e5e unlk %fp <== NOT EXECUTED 4a62a: 4e75 rts 00049678 <_Protected_heap_Allocate_aligned>: void *_Protected_heap_Allocate_aligned( Heap_Control *the_heap, size_t size, uint32_t alignment ) { 49678: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4967c: 2f02 movel %d2,%sp@- <== NOT EXECUTED void *p; _RTEMS_Lock_allocator(); 4967e: 2f39 0005 b8a6 movel 5b8a6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 49684: 4eb9 0004 81f8 jsr 481f8 <_API_Mutex_Lock> <== NOT EXECUTED p = _Heap_Allocate_aligned( the_heap, size, alignment ); 4968a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4968e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 49692: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49696: 4eb9 0004 87f4 jsr 487f4 <_Heap_Allocate_aligned> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4969c: 2f39 0005 b8a6 movel 5b8a6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { void *p; _RTEMS_Lock_allocator(); p = _Heap_Allocate_aligned( the_heap, size, alignment ); 496a2: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 496a4: 4eb9 0004 825c jsr 4825c <_API_Mutex_Unlock> <== NOT EXECUTED return p; } 496aa: 2002 movel %d2,%d0 <== NOT EXECUTED 496ac: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 496b0: 4e5e unlk %fp <== NOT EXECUTED 496b2: 4e75 rts 000496ec <_Protected_heap_Extend>: bool _Protected_heap_Extend( Heap_Control *the_heap, void *starting_address, size_t size ) { 496ec: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 496f0: 2f02 movel %d2,%sp@- <== NOT EXECUTED Heap_Extend_status status; uint32_t amount_extended; _RTEMS_Lock_allocator(); 496f2: 2f39 0005 b8a6 movel 5b8a6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 496f8: 4eb9 0004 81f8 jsr 481f8 <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Extend(the_heap, starting_address, size, &amount_extended); 496fe: 486e fffc pea %fp@(-4) <== NOT EXECUTED 49702: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 49706: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4970a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4970e: 4eb9 0004 d388 jsr 4d388 <_Heap_Extend> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 49714: 2f39 0005 b8a6 movel 5b8a6 <_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); 4971a: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4971c: 4eb9 0004 825c jsr 4825c <_API_Mutex_Unlock> <== NOT EXECUTED 49722: 4a82 tstl %d2 <== NOT EXECUTED 49724: 57c0 seq %d0 <== NOT EXECUTED return (status == HEAP_EXTEND_SUCCESSFUL); } 49726: 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(); 4972a: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED return (status == HEAP_EXTEND_SUCCESSFUL); } 49730: 4e5e unlk %fp <== NOT EXECUTED 49732: 4480 negl %d0 <== NOT EXECUTED 49734: 4e75 rts <== NOT EXECUTED ... 0004a62c <_Protected_heap_Free>: bool _Protected_heap_Free( Heap_Control *the_heap, void *start_address ) { 4a62c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a630: 2f02 movel %d2,%sp@- <== NOT EXECUTED bool status; _RTEMS_Lock_allocator(); 4a632: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4a638: 4eb9 0004 58cc jsr 458cc <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Free( the_heap, start_address ); 4a63e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a642: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a646: 4eb9 0004 a430 jsr 4a430 <_Heap_Free> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4a64c: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { bool status; _RTEMS_Lock_allocator(); status = _Heap_Free( the_heap, start_address ); 4a652: 1400 moveb %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4a654: 4eb9 0004 5930 jsr 45930 <_API_Mutex_Unlock> <== NOT EXECUTED return status; } 4a65a: 1002 moveb %d2,%d0 <== NOT EXECUTED 4a65c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4a660: 4e5e unlk %fp <== NOT EXECUTED 4a662: 4e75 rts 000545bc <_Protected_heap_Get_block_size>: bool _Protected_heap_Get_block_size( Heap_Control *the_heap, void *starting_address, size_t *size ) { 545bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 545c0: 2f02 movel %d2,%sp@- <== NOT EXECUTED bool status; _RTEMS_Lock_allocator(); 545c2: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 545c8: 4eb9 0004 58cc jsr 458cc <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Size_of_user_area( the_heap, starting_address, size ); 545ce: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 545d2: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 545d6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 545da: 4eb9 0005 47f0 jsr 547f0 <_Heap_Size_of_user_area> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 545e0: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { bool status; _RTEMS_Lock_allocator(); status = _Heap_Size_of_user_area( the_heap, starting_address, size ); 545e6: 1400 moveb %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 545e8: 4eb9 0004 5930 jsr 45930 <_API_Mutex_Unlock> <== NOT EXECUTED return status; } 545ee: 1002 moveb %d2,%d0 <== NOT EXECUTED 545f0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 545f4: 4e5e unlk %fp <== NOT EXECUTED 545f6: 4e75 rts 0004a514 <_Protected_heap_Get_free_information>: bool _Protected_heap_Get_free_information( Heap_Control *the_heap, Heap_Information *info ) { 4a514: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * TBD: _Heap_Get_free_information does not error check or return status. */ _RTEMS_Lock_allocator(); 4a518: 2f39 0009 396e movel 9396e <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4a51e: 4eb9 0004 9478 jsr 49478 <_API_Mutex_Lock> <== NOT EXECUTED _Heap_Get_free_information( the_heap, info ); 4a524: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a528: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a52c: 4eb9 0005 e58c jsr 5e58c <_Heap_Get_free_information> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4a532: 2f39 0009 396e movel 9396e <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4a538: 4eb9 0004 94dc jsr 494dc <_API_Mutex_Unlock> <== NOT EXECUTED return true; } 4a53e: 4e5e unlk %fp <== NOT EXECUTED 4a540: 7001 moveq #1,%d0 <== NOT EXECUTED 4a542: 4e75 rts 0005e704 <_Protected_heap_Get_information>: bool _Protected_heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) { 5e704: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5e708: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5e70a: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 5e70e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5e710: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Heap_Get_information_status status; if ( !the_heap ) 5e714: 4a83 tstl %d3 <== NOT EXECUTED 5e716: 6736 beqs 5e74e <_Protected_heap_Get_information+0x4a> <== NOT EXECUTED return false; if ( !the_info ) 5e718: 4a82 tstl %d2 <== NOT EXECUTED 5e71a: 6732 beqs 5e74e <_Protected_heap_Get_information+0x4a> <== NOT EXECUTED return false; _RTEMS_Lock_allocator(); 5e71c: 2f39 0009 396e movel 9396e <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 5e722: 4eb9 0004 9478 jsr 49478 <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Get_information( the_heap, the_info ); 5e728: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5e72a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5e72c: 4eb9 0006 738c jsr 6738c <_Heap_Get_information> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 5e732: 2f39 0009 396e movel 9396e <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED if ( !the_info ) return false; _RTEMS_Lock_allocator(); status = _Heap_Get_information( the_heap, the_info ); 5e738: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 5e73a: 4eb9 0004 94dc jsr 494dc <_API_Mutex_Unlock> <== NOT EXECUTED if ( status == HEAP_GET_INFORMATION_SUCCESSFUL ) 5e740: 4a82 tstl %d2 <== NOT EXECUTED 5e742: 57c0 seq %d0 <== NOT EXECUTED 5e744: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5e74a: 4480 negl %d0 <== NOT EXECUTED 5e74c: 6002 bras 5e750 <_Protected_heap_Get_information+0x4c> <== NOT EXECUTED 5e74e: 4200 clrb %d0 <== NOT EXECUTED return true; return false; } 5e750: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5e754: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 5e758: 4e5e unlk %fp <== NOT EXECUTED 5e75a: 4e75 rts 000545f8 <_Protected_heap_Resize_block>: bool _Protected_heap_Resize_block( Heap_Control *the_heap, void *starting_address, size_t size ) { 545f8: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 545fc: 2f02 movel %d2,%sp@- <== NOT EXECUTED Heap_Resize_status status; uint32_t old_mem_size; uint32_t avail_mem_size; _RTEMS_Lock_allocator(); 545fe: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 54604: 4eb9 0004 58cc jsr 458cc <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Resize_block( 5460a: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 5460e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 54612: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 54616: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5461a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5461e: 4eb9 0005 4648 jsr 54648 <_Heap_Resize_block> <== NOT EXECUTED the_heap, starting_address, size, &old_mem_size, &avail_mem_size ); _RTEMS_Unlock_allocator(); 54624: 2f39 0005 7f32 movel 57f32 <_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( 5462a: 2400 movel %d0,%d2 <== NOT EXECUTED the_heap, starting_address, size, &old_mem_size, &avail_mem_size ); _RTEMS_Unlock_allocator(); 5462c: 4eb9 0004 5930 jsr 45930 <_API_Mutex_Unlock> <== NOT EXECUTED 54632: 4a82 tstl %d2 <== NOT EXECUTED 54634: 57c0 seq %d0 <== NOT EXECUTED return (status == HEAP_RESIZE_SUCCESSFUL); } 54636: 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(); 5463a: dffc 0000 001c addal #28,%sp <== NOT EXECUTED return (status == HEAP_RESIZE_SUCCESSFUL); } 54640: 4e5e unlk %fp <== NOT EXECUTED 54642: 4480 negl %d0 <== NOT EXECUTED 54644: 4e75 rts <== NOT EXECUTED ... 00049884 <_Protected_heap_Walk>: bool _Protected_heap_Walk( Heap_Control *the_heap, int source, bool do_dump ) { 49884: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 49888: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 4988c: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 49890: 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 ) { 49894: 2039 0005 b7f0 movel 5b7f0 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4989a: 4282 clrl %d2 <== NOT EXECUTED 4989c: 142e 0013 moveb %fp@(19),%d2 <== NOT EXECUTED 498a0: 4a80 tstl %d0 <== NOT EXECUTED 498a2: 6638 bnes 498dc <_Protected_heap_Walk+0x58> <== NOT EXECUTED _RTEMS_Lock_allocator(); 498a4: 2f39 0005 b8a6 movel 5b8a6 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 498aa: 4eb9 0004 81f8 jsr 481f8 <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Walk( the_heap, source, do_dump ); 498b0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 498b2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 498b4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 498b6: 4eb9 0004 d560 jsr 4d560 <_Heap_Walk> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 498bc: 2f39 0005 b8a6 movel 5b8a6 <_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 ); 498c2: 1400 moveb %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 498c4: 4eb9 0004 825c jsr 4825c <_API_Mutex_Unlock> <== NOT EXECUTED } else { status = _Heap_Walk( the_heap, source, do_dump ); } return status; } 498ca: 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(); 498cc: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED } else { status = _Heap_Walk( the_heap, source, do_dump ); } return status; } 498d2: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED 498d8: 4e5e unlk %fp <== NOT EXECUTED 498da: 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 ); 498dc: 2d42 0010 movel %d2,%fp@(16) <== NOT EXECUTED 498e0: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 498e4: 2d44 0008 movel %d4,%fp@(8) <== NOT EXECUTED } return status; } 498e8: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED 498ee: 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 ); 498f0: 4ef9 0004 d560 jmp 4d560 <_Heap_Walk> <== NOT EXECUTED ... 00045708 <_RTEMS_API_Initialize>: */ void _RTEMS_API_Initialize( rtems_configuration_table *configuration_table ) { 45708: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4570c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45710: 2f0a movel %a2,%sp@- <== NOT EXECUTED rtems_api_configuration_table *api_configuration; api_configuration = configuration_table->RTEMS_api_configuration; 45712: 2468 003e moveal %a0@(62),%a2 <== NOT EXECUTED _Objects_Information_table[OBJECTS_CLASSIC_API] = _RTEMS_Objects; 45716: 203c 0005 8302 movel #361218,%d0 <== NOT EXECUTED 4571c: 23c0 0005 7e3c movel %d0,57e3c <_Objects_Information_table+0x8> <== NOT EXECUTED _Attributes_Handler_initialization(); _Interrupt_Manager_initialization(); 45722: 4eb9 0004 9db8 jsr 49db8 <_Interrupt_Manager_initialization> <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) _Multiprocessing_Manager_initialization(); #endif _RTEMS_tasks_Manager_initialization( api_configuration->maximum_tasks ); 45728: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 4572a: 4eb9 0004 9f5e jsr 49f5e <_RTEMS_tasks_Manager_initialization> <== NOT EXECUTED _Timer_Manager_initialization( api_configuration->maximum_timers ); 45730: 2f2a 0006 movel %a2@(6),%sp@- <== NOT EXECUTED 45734: 4eb9 0004 9e80 jsr 49e80 <_Timer_Manager_initialization> <== NOT EXECUTED _Signal_Manager_initialization(); 4573a: 4eb9 0004 9eec jsr 49eec <_Signal_Manager_initialization> <== NOT EXECUTED _Event_Manager_initialization(); 45740: 4eb9 0004 9da8 jsr 49da8 <_Event_Manager_initialization> <== NOT EXECUTED _Message_queue_Manager_initialization( 45746: 2f2a 000e movel %a2@(14),%sp@- <== NOT EXECUTED 4574a: 4eb9 0004 9dc0 jsr 49dc0 <_Message_queue_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_message_queues ); _Semaphore_Manager_initialization( api_configuration->maximum_semaphores ); 45750: 2f2a 000a movel %a2@(10),%sp@- <== NOT EXECUTED 45754: 4eb9 0004 9ebc jsr 49ebc <_Semaphore_Manager_initialization> <== NOT EXECUTED _Partition_Manager_initialization( api_configuration->maximum_partitions ); 4575a: 2f2a 0012 movel %a2@(18),%sp@- <== NOT EXECUTED 4575e: 4eb9 0004 9df0 jsr 49df0 <_Partition_Manager_initialization> <== NOT EXECUTED _Region_Manager_initialization( api_configuration->maximum_regions ); 45764: 2f2a 0016 movel %a2@(22),%sp@- <== NOT EXECUTED 45768: 4eb9 0004 9e50 jsr 49e50 <_Region_Manager_initialization> <== NOT EXECUTED _Dual_ported_memory_Manager_initialization( api_configuration->maximum_ports); 4576e: 2f2a 001a movel %a2@(26),%sp@- <== NOT EXECUTED 45772: 4eb9 0004 9d78 jsr 49d78 <_Dual_ported_memory_Manager_initialization> <== NOT EXECUTED _Rate_monotonic_Manager_initialization( api_configuration->maximum_periods ); 45778: 2f2a 001e movel %a2@(30),%sp@- <== NOT EXECUTED 4577c: 4eb9 0004 9e20 jsr 49e20 <_Rate_monotonic_Manager_initialization> <== NOT EXECUTED _Barrier_Manager_initialization( api_configuration->maximum_barriers ); 45782: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 45788: 2d6a 0022 0008 movel %a2@(34),%fp@(8) <== NOT EXECUTED } 4578e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45792: 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 ); 45794: 4ef9 0004 9d48 jmp 49d48 <_Barrier_Manager_initialization> <== NOT EXECUTED ... 0004a0e4 <_RTEMS_Tasks_Invoke_task_variable_dtor>: void _RTEMS_Tasks_Invoke_task_variable_dtor( Thread_Control *the_thread, rtems_task_variable_t *tvp ) { 4a0e4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a0e8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a0ea: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED void (*dtor)(void *); void *value; dtor = tvp->dtor; if (_Thread_Is_executing(the_thread)) { 4a0ee: 2039 0005 7f3a movel 57f3a <_Thread_Executing>,%d0 <== NOT EXECUTED ) { void (*dtor)(void *); void *value; dtor = tvp->dtor; 4a0f4: 226a 0010 moveal %a2@(16),%a1 <== NOT EXECUTED if (_Thread_Is_executing(the_thread)) { 4a0f8: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 4a0fc: 660c bnes 4a10a <_RTEMS_Tasks_Invoke_task_variable_dtor+0x26> <== NOT EXECUTED value = *tvp->ptr; 4a0fe: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED 4a102: 2010 movel %a0@,%d0 <== NOT EXECUTED *tvp->ptr = tvp->gval; 4a104: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED 4a108: 6004 bras 4a10e <_RTEMS_Tasks_Invoke_task_variable_dtor+0x2a> <== NOT EXECUTED } else { value = tvp->tval; 4a10a: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED } if ( dtor ) 4a10e: 4a89 tstl %a1 <== NOT EXECUTED 4a110: 6706 beqs 4a118 <_RTEMS_Tasks_Invoke_task_variable_dtor+0x34> <== NOT EXECUTED (*dtor)(value); 4a112: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a114: 4e91 jsr %a1@ <== NOT EXECUTED 4a116: 588f addql #4,%sp <== NOT EXECUTED _Workspace_Free(tvp); 4a118: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } 4a11c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4a120: 4e5e unlk %fp <== NOT EXECUTED } if ( dtor ) (*dtor)(value); _Workspace_Free(tvp); 4a122: 4ef9 0004 7e94 jmp 47e94 <_Workspace_Free> <== NOT EXECUTED 0004a062 <_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() ) 4a062: 2079 0005 7f16 moveal 57f16 <_Configuration_Table>,%a0 <== NOT EXECUTED bool _RTEMS_tasks_Create_extension( Thread_Control *executing, Thread_Control *created ) { 4a068: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a06c: 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() ) 4a06e: 2068 003e moveal %a0@(62),%a0 <== NOT EXECUTED bool _RTEMS_tasks_Create_extension( Thread_Control *executing, Thread_Control *created ) { 4a072: 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() ) 4a076: 4a28 0004 tstb %a0@(4) <== NOT EXECUTED 4a07a: 6604 bnes 4a080 <_RTEMS_tasks_Create_extension+0x1e> <== NOT EXECUTED 4a07c: 701e moveq #30,%d0 <== NOT EXECUTED 4a07e: 6002 bras 4a082 <_RTEMS_tasks_Create_extension+0x20> <== NOT EXECUTED 4a080: 705e moveq #94,%d0 <== NOT EXECUTED to_allocate -= (RTEMS_NUMBER_NOTEPADS * sizeof(uint32_t)); api = _Workspace_Allocate( to_allocate ); 4a082: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a084: 4eb9 0004 7eac jsr 47eac <_Workspace_Allocate> <== NOT EXECUTED if ( !api ) 4a08a: 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 ); 4a08c: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !api ) 4a08e: 4a80 tstl %d0 <== NOT EXECUTED 4a090: 6604 bnes 4a096 <_RTEMS_tasks_Create_extension+0x34> <== NOT EXECUTED 4a092: 4200 clrb %d0 <== NOT EXECUTED 4a094: 6046 bras 4a0dc <_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() ) { 4a096: 2079 0005 7f16 moveal 57f16 <_Configuration_Table>,%a0 <== NOT EXECUTED 4a09c: 2068 003e moveal %a0@(62),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _ASR_Initialize ( ASR_Information *information ) { information->is_enabled = true; 4a0a0: 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; 4a0a2: 42aa 011c clrl %a2@(284) <== NOT EXECUTED 4a0a6: 1340 0008 moveb %d0,%a1@(8) <== NOT EXECUTED api = _Workspace_Allocate( to_allocate ); if ( !api ) return false; created->API_Extensions[ THREAD_API_RTEMS ] = api; 4a0aa: 2549 010c movel %a1,%a2@(268) <== NOT EXECUTED api->pending_events = EVENT_SETS_NONE_PENDING; 4a0ae: 4291 clrl %a1@ <== NOT EXECUTED information->handler = NULL; 4a0b0: 42a9 000a clrl %a1@(10) <== NOT EXECUTED information->mode_set = RTEMS_DEFAULT_MODES; 4a0b4: 42a9 000e clrl %a1@(14) <== NOT EXECUTED information->signals_posted = 0; 4a0b8: 42a9 0012 clrl %a1@(18) <== NOT EXECUTED information->signals_pending = 0; 4a0bc: 42a9 0016 clrl %a1@(22) <== NOT EXECUTED information->nest_level = 0; 4a0c0: 42a9 001a clrl %a1@(26) <== NOT EXECUTED _ASR_Initialize( &api->Signal ); created->task_variables = NULL; if ( rtems_configuration_get_notepads_enabled() ) { 4a0c4: 4a28 0004 tstb %a0@(4) <== NOT EXECUTED 4a0c8: 6710 beqs 4a0da <_RTEMS_tasks_Create_extension+0x78> <== NOT EXECUTED 4a0ca: 41e9 001e lea %a1@(30),%a0 <== NOT EXECUTED 4a0ce: 4280 clrl %d0 <== NOT EXECUTED for (i=0; i < RTEMS_NUMBER_NOTEPADS; i++) api->Notepads[i] = 0; 4a0d0: 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++) 4a0d2: 5280 addql #1,%d0 <== NOT EXECUTED 4a0d4: 7210 moveq #16,%d1 <== NOT EXECUTED 4a0d6: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a0d8: 66f6 bnes 4a0d0 <_RTEMS_tasks_Create_extension+0x6e> <== NOT EXECUTED 4a0da: 7001 moveq #1,%d0 <== NOT EXECUTED api->Notepads[i] = 0; } return true; } 4a0dc: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4a0e0: 4e5e unlk %fp <== NOT EXECUTED 4a0e2: 4e75 rts 0004a01c <_RTEMS_tasks_Delete_extension>: User_extensions_routine _RTEMS_tasks_Delete_extension( Thread_Control *executing, Thread_Control *deleted ) { 4a01c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4a020: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4a024: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED /* * Free per task variable memory */ tvp = deleted->task_variables; 4a028: 206a 011c moveal %a2@(284),%a0 <== NOT EXECUTED deleted->task_variables = NULL; 4a02c: 42aa 011c clrl %a2@(284) <== NOT EXECUTED while (tvp) { next = (rtems_task_variable_t *)tvp->next; _RTEMS_Tasks_Invoke_task_variable_dtor( deleted, tvp ); 4a030: 47f9 0004 a0e4 lea 4a0e4 <_RTEMS_Tasks_Invoke_task_variable_dtor>,%a3 <== NOT EXECUTED 4a036: 600c bras 4a044 <_RTEMS_tasks_Delete_extension+0x28> <== NOT EXECUTED */ tvp = deleted->task_variables; deleted->task_variables = NULL; while (tvp) { next = (rtems_task_variable_t *)tvp->next; 4a038: 2410 movel %a0@,%d2 <== NOT EXECUTED _RTEMS_Tasks_Invoke_task_variable_dtor( deleted, tvp ); 4a03a: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4a03c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a03e: 4e93 jsr %a3@ <== NOT EXECUTED 4a040: 2042 moveal %d2,%a0 <== NOT EXECUTED 4a042: 508f addql #8,%sp <== NOT EXECUTED * Free per task variable memory */ tvp = deleted->task_variables; deleted->task_variables = NULL; while (tvp) { 4a044: 4a88 tstl %a0 <== NOT EXECUTED 4a046: 66f0 bnes 4a038 <_RTEMS_tasks_Delete_extension+0x1c> <== NOT EXECUTED /* * Free API specific memory */ (void) _Workspace_Free( deleted->API_Extensions[ THREAD_API_RTEMS ] ); 4a048: 2f2a 010c movel %a2@(268),%sp@- <== NOT EXECUTED 4a04c: 4eb9 0004 7e94 jsr 47e94 <_Workspace_Free> <== NOT EXECUTED deleted->API_Extensions[ THREAD_API_RTEMS ] = NULL; 4a052: 42aa 010c clrl %a2@(268) <== NOT EXECUTED 4a056: 588f addql #4,%sp <== NOT EXECUTED } 4a058: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4a05e: 4e5e unlk %fp <== NOT EXECUTED 4a060: 4e75 rts 00049f46 <_RTEMS_tasks_Initialize_user_tasks>: * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks( void ) { if ( _RTEMS_tasks_Initialize_user_tasks_p ) 49f46: 2039 0005 633e movel 5633e <_RTEMS_tasks_Initialize_user_tasks_p>,%d0 <== NOT EXECUTED * * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks( void ) { 49f4c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( _RTEMS_tasks_Initialize_user_tasks_p ) 49f50: 4a80 tstl %d0 <== NOT EXECUTED 49f52: 6706 beqs 49f5a <_RTEMS_tasks_Initialize_user_tasks+0x14> <== NOT EXECUTED (*_RTEMS_tasks_Initialize_user_tasks_p)(); } 49f54: 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)(); 49f56: 2240 moveal %d0,%a1 <== NOT EXECUTED 49f58: 4ed1 jmp %a1@ <== NOT EXECUTED } 49f5a: 4e5e unlk %fp <== NOT EXECUTED 49f5c: 4e75 rts 00045210 <_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; 45210: 2079 0005 7f16 moveal 57f16 <_Configuration_Table>,%a0 <== NOT EXECUTED 45216: 2068 003e moveal %a0@(62),%a0 <== NOT EXECUTED * * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks_body( void ) { 4521a: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4521e: 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; 45222: 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; 45226: 2028 002a movel %a0@(42),%d0 <== NOT EXECUTED maximum = api_configuration->number_of_initialization_tasks; if ( !user_tasks || maximum == 0 ) 4522a: 676e beqs 4529a <_RTEMS_tasks_Initialize_user_tasks_body+0x8a> <== NOT EXECUTED 4522c: 4a83 tstl %d3 <== NOT EXECUTED 4522e: 676a beqs 4529a <_RTEMS_tasks_Initialize_user_tasks_body+0x8a> <== NOT EXECUTED return; for ( index=0 ; index < maximum ; index++ ) { return_value = rtems_task_create( 45230: 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 ) 45232: 2440 moveal %d0,%a2 <== NOT EXECUTED 45234: 4282 clrl %d2 <== NOT EXECUTED return; for ( index=0 ; index < maximum ; index++ ) { return_value = rtems_task_create( 45236: 5984 subql #4,%d4 <== NOT EXECUTED 45238: 49f9 0004 500c lea 4500c ,%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( 4523e: 47f9 0004 52a4 lea 452a4 ,%a3 <== NOT EXECUTED 45244: 6050 bras 45296 <_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( 45246: 2f04 movel %d4,%sp@- <== NOT EXECUTED 45248: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 4524c: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 45250: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED 45254: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 45258: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 4525a: 4e94 jsr %a4@ <== NOT EXECUTED user_tasks[ index ].mode_set, user_tasks[ index ].attribute_set, &id ); if ( !rtems_is_status_successful( return_value ) ) 4525c: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 45262: 4a80 tstl %d0 <== NOT EXECUTED 45264: 661e bnes 45284 <_RTEMS_tasks_Initialize_user_tasks_body+0x74> <== NOT EXECUTED _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value ); return_value = rtems_task_start( 45266: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 4526a: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 4526e: d5fc 0000 001c addal #28,%a2 <== NOT EXECUTED 45274: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 45278: 4e93 jsr %a3@ <== NOT EXECUTED id, user_tasks[ index ].entry_point, user_tasks[ index ].argument ); if ( !rtems_is_status_successful( return_value ) ) 4527a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45280: 4a80 tstl %d0 <== NOT EXECUTED 45282: 6710 beqs 45294 <_RTEMS_tasks_Initialize_user_tasks_body+0x84> <== NOT EXECUTED _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value ); 45284: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45286: 4878 0001 pea 1 <== NOT EXECUTED 4528a: 4878 0001 pea 1 <== NOT EXECUTED 4528e: 4eb9 0004 5ffc jsr 45ffc <_Internal_error_Occurred> <== NOT EXECUTED maximum = api_configuration->number_of_initialization_tasks; if ( !user_tasks || maximum == 0 ) return; for ( index=0 ; index < maximum ; index++ ) { 45294: 5282 addql #1,%d2 <== NOT EXECUTED 45296: b682 cmpl %d2,%d3 <== NOT EXECUTED 45298: 62ac bhis 45246 <_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 ); } } 4529a: 4cee 1c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a4 <== NOT EXECUTED 452a0: 4e5e unlk %fp <== NOT EXECUTED 452a2: 4e75 rts 00049f5e <_RTEMS_tasks_Manager_initialization>: */ void _RTEMS_tasks_Manager_initialization( uint32_t maximum_tasks ) { 49f5e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49f62: 4878 0004 pea 4 <== NOT EXECUTED 49f66: 42a7 clrl %sp@- <== NOT EXECUTED 49f68: 4878 0120 pea 120 <== NOT EXECUTED 49f6c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49f70: 4878 0001 pea 1 <== NOT EXECUTED 49f74: 4878 0002 pea 2 <== NOT EXECUTED 49f78: 4879 0005 7dec pea 57dec <_RTEMS_tasks_Information> <== NOT EXECUTED 49f7e: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED /* * Add all the extensions for this API */ _User_extensions_Add_API_set( &_RTEMS_tasks_User_extensions ); 49f84: 4879 0005 67c4 pea 567c4 <_RTEMS_tasks_User_extensions> <== NOT EXECUTED 49f8a: 4eb9 0004 aa98 jsr 4aa98 <_User_extensions_Add_API_set> <== NOT EXECUTED _API_extensions_Add( &_RTEMS_tasks_API_extensions ); 49f90: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 49f96: 203c 0005 67b0 movel #354224,%d0 <== NOT EXECUTED 49f9c: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED MP_PACKET_TASKS, _RTEMS_tasks_MP_Process_packet ); #endif } 49fa0: 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 ); 49fa2: 4ef9 0004 5842 jmp 45842 <_API_extensions_Add> <== NOT EXECUTED 00049fa8 <_RTEMS_tasks_Post_switch_extension>: */ void _RTEMS_tasks_Post_switch_extension( Thread_Control *executing ) { 49fa8: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 49fac: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 49fb0: 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 ]; 49fb4: 2668 010c moveal %a0@(268),%a3 <== NOT EXECUTED if ( !api ) 49fb8: 4a8b tstl %a3 <== NOT EXECUTED 49fba: 6756 beqs 4a012 <_RTEMS_tasks_Post_switch_extension+0x6a> <== NOT EXECUTED * Signal Processing */ asr = &api->Signal; _ISR_Disable( level ); 49fbc: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 49fc2: 40c0 movew %sr,%d0 <== NOT EXECUTED 49fc4: 8280 orl %d0,%d1 <== NOT EXECUTED 49fc6: 46c1 movew %d1,%sr <== NOT EXECUTED signal_set = asr->signals_posted; 49fc8: 262b 0012 movel %a3@(18),%d3 <== NOT EXECUTED asr->signals_posted = 0; 49fcc: 42ab 0012 clrl %a3@(18) <== NOT EXECUTED _ISR_Enable( level ); 49fd0: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !signal_set ) /* similar to _ASR_Are_signals_pending( asr ) */ 49fd2: 4a83 tstl %d3 <== NOT EXECUTED 49fd4: 673c beqs 4a012 <_RTEMS_tasks_Post_switch_extension+0x6a> <== NOT EXECUTED return; asr->nest_level += 1; 49fd6: 52ab 001a addql #1,%a3@(26) <== NOT EXECUTED rtems_task_mode( asr->mode_set, RTEMS_ALL_MODE_MASKS, &prev_mode ); 49fda: 240e movel %fp,%d2 <== NOT EXECUTED 49fdc: 5982 subql #4,%d2 <== NOT EXECUTED 49fde: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49fe0: 45f9 0004 b2dc lea 4b2dc ,%a2 <== NOT EXECUTED 49fe6: 2f3c 0000 ffff movel #65535,%sp@- <== NOT EXECUTED 49fec: 2f2b 000e movel %a3@(14),%sp@- <== NOT EXECUTED 49ff0: 4e92 jsr %a2@ <== NOT EXECUTED (*asr->handler)( signal_set ); 49ff2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 49ff4: 206b 000a moveal %a3@(10),%a0 <== NOT EXECUTED 49ff8: 4e90 jsr %a0@ <== NOT EXECUTED asr->nest_level -= 1; 49ffa: 53ab 001a subql #1,%a3@(26) <== NOT EXECUTED rtems_task_mode( prev_mode, RTEMS_ALL_MODE_MASKS, &prev_mode ); 49ffe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a000: 2f3c 0000 ffff movel #65535,%sp@- <== NOT EXECUTED 4a006: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 4a00a: 4e92 jsr %a2@ <== NOT EXECUTED 4a00c: dffc 0000 001c addal #28,%sp <== NOT EXECUTED } 4a012: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 4a018: 4e5e unlk %fp <== NOT EXECUTED 4a01a: 4e75 rts 00049ef4 <_RTEMS_tasks_Start_extension>: User_extensions_routine _RTEMS_tasks_Start_extension( Thread_Control *executing, Thread_Control *started ) { 49ef4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49ef8: 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; 49efc: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED } 49f00: 4e5e unlk %fp <== NOT EXECUTED { RTEMS_API_Control *api; api = started->API_Extensions[ THREAD_API_RTEMS ]; api->pending_events = EVENT_SETS_NONE_PENDING; 49f02: 4290 clrl %a0@ <== NOT EXECUTED } 49f04: 4e75 rts 00049f06 <_RTEMS_tasks_Switch_extension>: void _RTEMS_tasks_Switch_extension( Thread_Control *executing, Thread_Control *heir ) { 49f06: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49f0a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED /* * Per Task Variables */ tvp = executing->task_variables; 49f0e: 2268 011c moveal %a0@(284),%a1 <== NOT EXECUTED 49f12: 600e bras 49f22 <_RTEMS_tasks_Switch_extension+0x1c> <== NOT EXECUTED while (tvp) { tvp->tval = *tvp->ptr; 49f14: 2069 0004 moveal %a1@(4),%a0 <== NOT EXECUTED 49f18: 2350 000c movel %a0@,%a1@(12) <== NOT EXECUTED *tvp->ptr = tvp->gval; 49f1c: 20a9 0008 movel %a1@(8),%a0@ <== NOT EXECUTED tvp = (rtems_task_variable_t *)tvp->next; 49f20: 2251 moveal %a1@,%a1 <== NOT EXECUTED /* * Per Task Variables */ tvp = executing->task_variables; while (tvp) { 49f22: 4a89 tstl %a1 <== NOT EXECUTED 49f24: 66ee bnes 49f14 <_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; 49f26: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 49f2a: 2268 011c moveal %a0@(284),%a1 <== NOT EXECUTED 49f2e: 600e bras 49f3e <_RTEMS_tasks_Switch_extension+0x38> <== NOT EXECUTED while (tvp) { tvp->gval = *tvp->ptr; 49f30: 2069 0004 moveal %a1@(4),%a0 <== NOT EXECUTED 49f34: 2350 0008 movel %a0@,%a1@(8) <== NOT EXECUTED *tvp->ptr = tvp->tval; 49f38: 20a9 000c movel %a1@(12),%a0@ <== NOT EXECUTED tvp = (rtems_task_variable_t *)tvp->next; 49f3c: 2251 moveal %a1@,%a1 <== NOT EXECUTED *tvp->ptr = tvp->gval; tvp = (rtems_task_variable_t *)tvp->next; } tvp = heir->task_variables; while (tvp) { 49f3e: 4a89 tstl %a1 <== NOT EXECUTED 49f40: 66ee bnes 49f30 <_RTEMS_tasks_Switch_extension+0x2a> <== NOT EXECUTED tvp->gval = *tvp->ptr; *tvp->ptr = tvp->tval; tvp = (rtems_task_variable_t *)tvp->next; } } 49f42: 4e5e unlk %fp <== NOT EXECUTED 49f44: 4e75 rts 000459f4 <_Rate_monotonic_Initiate_statistics>: #endif void _Rate_monotonic_Initiate_statistics( Rate_monotonic_Control *the_period ) { 459f4: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 459f8: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 459fc: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED Thread_Control *owning_thread = the_period->owner; 45a00: 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 ); 45a04: 260e movel %fp,%d3 <== NOT EXECUTED 45a06: 5183 subql #8,%d3 <== NOT EXECUTED 45a08: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45a0a: 4eb9 0004 72a8 jsr 472a8 <_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; 45a10: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 45a14: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 45a18: 2740 0044 movel %d0,%a3@(68) <== NOT EXECUTED 45a1c: 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; 45a20: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 45a24: 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) { 45a2a: 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; 45a2c: 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) { 45a30: b5f9 0005 aa46 cmpal 5aa46 <_Thread_Executing>,%a2 <== NOT EXECUTED 45a36: 662a bnes 45a62 <_Rate_monotonic_Initiate_statistics+0x6e> <== NOT EXECUTED /* * Adjust the CPU time used to account for the time since last * context switch. */ _Timespec_Subtract( 45a38: 240e movel %fp,%d2 <== NOT EXECUTED 45a3a: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 45a40: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45a42: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45a44: 4879 0005 aa4e pea 5aa4e <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 45a4a: 4eb9 0004 91a0 jsr 491a0 <_Timespec_Subtract> <== NOT EXECUTED &_Thread_Time_of_last_context_switch, &uptime, &ran ); _Timespec_Add_to( &the_period->owner_executed_at_period, &ran ); 45a50: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45a52: 486b 003c pea %a3@(60) <== NOT EXECUTED 45a56: 4eb9 0004 9078 jsr 49078 <_Timespec_Add_to> <== NOT EXECUTED 45a5c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED } #endif } 45a62: 4cee 0c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a3 <== NOT EXECUTED 45a68: 4e5e unlk %fp <== NOT EXECUTED 45a6a: 4e75 rts 00049e20 <_Rate_monotonic_Manager_initialization>: */ void _Rate_monotonic_Manager_initialization( uint32_t maximum_periods ) { 49e20: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49e24: 4878 0004 pea 4 <== NOT EXECUTED 49e28: 42a7 clrl %sp@- <== NOT EXECUTED 49e2a: 4878 008c pea 8c <== NOT EXECUTED 49e2e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49e32: 4878 0008 pea 8 <== NOT EXECUTED 49e36: 4878 0002 pea 2 <== NOT EXECUTED 49e3a: 4879 0005 880e pea 5880e <_Rate_monotonic_Information> <== NOT EXECUTED 49e40: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49e46: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 49e4c: 4e5e unlk %fp <== NOT EXECUTED 49e4e: 4e75 rts 00045f98 <_Rate_monotonic_Timeout>: void _Rate_monotonic_Timeout( Objects_Id id, void *ignored ) { 45f98: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45f9c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45f9e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45fa2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45fa6: 4879 0005 a880 pea 5a880 <_Rate_monotonic_Information> <== NOT EXECUTED 45fac: 4eb9 0004 7ba8 jsr 47ba8 <_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 ) { 45fb2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45fb8: 2440 moveal %d0,%a2 <== NOT EXECUTED 45fba: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45fbe: 6600 009a bnew 4605a <_Rate_monotonic_Timeout+0xc2> <== NOT EXECUTED case OBJECTS_LOCAL: the_thread = the_period->owner; 45fc2: 206a 0050 moveal %a2@(80),%a0 <== NOT EXECUTED if ( _States_Is_waiting_for_period( the_thread->current_state ) && 45fc6: 2028 0010 movel %a0@(16),%d0 <== NOT EXECUTED 45fca: 0280 0000 4000 andil #16384,%d0 <== NOT EXECUTED 45fd0: 673e beqs 46010 <_Rate_monotonic_Timeout+0x78> <== NOT EXECUTED 45fd2: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED 45fd6: b0a8 0020 cmpl %a0@(32),%d0 <== NOT EXECUTED 45fda: 6634 bnes 46010 <_Rate_monotonic_Timeout+0x78> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 45fdc: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 45fe2: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45fe4: 4eb9 0004 7fc8 jsr 47fc8 <_Thread_Clear_state> <== NOT EXECUTED the_thread->Wait.id == the_period->Object.id ) { _Thread_Unblock( the_thread ); _Rate_monotonic_Initiate_statistics( the_period ); 45fea: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45fec: 4eb9 0004 59f4 jsr 459f4 <_Rate_monotonic_Initiate_statistics> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45ff2: 256a 004c 001c movel %a2@(76),%a2@(28) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 45ff8: 486a 0010 pea %a2@(16) <== NOT EXECUTED 45ffc: 4879 0005 aa64 pea 5aa64 <_Watchdog_Ticks_chain> <== NOT EXECUTED 46002: 4eb9 0004 9420 jsr 49420 <_Watchdog_Insert> <== NOT EXECUTED 46008: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4600e: 603c bras 4604c <_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 ) { 46010: 7001 moveq #1,%d0 <== NOT EXECUTED 46012: b0aa 0038 cmpl %a2@(56),%d0 <== NOT EXECUTED 46016: 662e bnes 46046 <_Rate_monotonic_Timeout+0xae> <== NOT EXECUTED the_period->state = RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING; 46018: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 4601c: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED _Rate_monotonic_Initiate_statistics( the_period ); 46020: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46022: 4eb9 0004 59f4 jsr 459f4 <_Rate_monotonic_Initiate_statistics> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 46028: 256a 004c 001c movel %a2@(76),%a2@(28) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4602e: 486a 0010 pea %a2@(16) <== NOT EXECUTED 46032: 4879 0005 aa64 pea 5aa64 <_Watchdog_Ticks_chain> <== NOT EXECUTED 46038: 4eb9 0004 9420 jsr 49420 <_Watchdog_Insert> <== NOT EXECUTED 4603e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46044: 6006 bras 4604c <_Rate_monotonic_Timeout+0xb4> <== NOT EXECUTED _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length ); } else the_period->state = RATE_MONOTONIC_EXPIRED; 46046: 7004 moveq #4,%d0 <== NOT EXECUTED 46048: 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; 4604c: 2039 0005 a988 movel 5a988 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46052: 5380 subql #1,%d0 <== NOT EXECUTED 46054: 23c0 0005 a988 movel %d0,5a988 <_Thread_Dispatch_disable_level> <== NOT EXECUTED case OBJECTS_REMOTE: /* impossible */ #endif case OBJECTS_ERROR: break; } } 4605a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4605e: 4e5e unlk %fp <== NOT EXECUTED 46060: 4e75 rts <== NOT EXECUTED ... 00045a6c <_Rate_monotonic_Update_statistics>: void _Rate_monotonic_Update_statistics( Rate_monotonic_Control *the_period ) { 45a6c: 4e56 ffb8 linkw %fp,#-72 <== NOT EXECUTED 45a70: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== NOT EXECUTED 45a74: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED struct timespec uptime; /* * Obtain the current time since boot */ _TOD_Get_uptime( &uptime ); 45a78: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED 45a7c: 4eb9 0004 72a8 jsr 472a8 <_TOD_Get_uptime> <== NOT EXECUTED /* * Update the counts. */ stats = &the_period->Statistics; stats->count++; 45a82: 52aa 0054 addql #1,%a2@(84) <== NOT EXECUTED if ( the_period->state == RATE_MONOTONIC_EXPIRED ) 45a86: 588f addql #4,%sp <== NOT EXECUTED 45a88: 7004 moveq #4,%d0 <== NOT EXECUTED 45a8a: b0aa 0038 cmpl %a2@(56),%d0 <== NOT EXECUTED 45a8e: 6604 bnes 45a94 <_Rate_monotonic_Update_statistics+0x28> <== NOT EXECUTED stats->missed_count++; 45a90: 52aa 0058 addql #1,%a2@(88) <== NOT EXECUTED /* * Grab basic information for time statistics. */ #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS _Timespec_Subtract( 45a94: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 45a98: 240e movel %fp,%d2 <== NOT EXECUTED 45a9a: 0682 ffff ffe8 addil #-24,%d2 <== NOT EXECUTED 45aa0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45aa2: 47f9 0004 91a0 lea 491a0 <_Timespec_Subtract>,%a3 <== NOT EXECUTED 45aa8: 486a 0044 pea %a2@(68) <== NOT EXECUTED 45aac: 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; 45aae: 2079 0005 aa46 moveal 5aa46 <_Thread_Executing>,%a0 <== NOT EXECUTED 45ab4: 2d68 0088 ffdc movel %a0@(136),%fp@(-36) <== NOT EXECUTED 45aba: 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); 45abe: 260e movel %fp,%d3 <== NOT EXECUTED 45ac0: 0683 ffff ffe0 addil #-32,%d3 <== NOT EXECUTED 45ac6: 2f03 movel %d3,%sp@- <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); 45ac8: 280e movel %fp,%d4 <== NOT EXECUTED 45aca: 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); 45ad0: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); 45ad2: 4bf9 0004 9078 lea 49078 <_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); 45ad8: 4879 0005 aa4e pea 5aa4e <_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)) 45ade: 2a0a movel %a2,%d5 <== NOT EXECUTED 45ae0: 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; 45ae6: 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); 45aea: 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)) 45aec: 49f9 0004 9170 lea 49170 <_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 ); 45af2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45af4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 45af6: 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)) 45af8: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 45afe: 2e85 movel %d5,%sp@ <== NOT EXECUTED 45b00: 2f04 movel %d4,%sp@- <== NOT EXECUTED 45b02: 4e94 jsr %a4@ <== NOT EXECUTED 45b04: 508f addql #8,%sp <== NOT EXECUTED 45b06: 4a00 tstb %d0 <== NOT EXECUTED 45b08: 6600 00bc bnew 45bc6 <_Rate_monotonic_Update_statistics+0x15a> <== NOT EXECUTED return; /* executed = current cpu usage - value at start of period */ _Timespec_Subtract( 45b0c: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 45b12: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b14: 2f04 movel %d4,%sp@- <== NOT EXECUTED 45b16: 2f05 movel %d5,%sp@- <== NOT EXECUTED 45b18: 4e93 jsr %a3@ <== NOT EXECUTED /* * Update CPU time */ #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS _Timespec_Add_to( &stats->total_cpu_time, &executed ); 45b1a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b1c: 486a 006c pea %a2@(108) <== NOT EXECUTED 45b20: 4e95 jsr %a5@ <== NOT EXECUTED if ( _Timespec_Less_than( &executed, &stats->min_cpu_time ) ) 45b22: 486a 005c pea %a2@(92) <== NOT EXECUTED 45b26: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b28: 4e94 jsr %a4@ <== NOT EXECUTED 45b2a: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 45b30: 4a00 tstb %d0 <== NOT EXECUTED 45b32: 6710 beqs 45b44 <_Rate_monotonic_Update_statistics+0xd8> <== NOT EXECUTED stats->min_cpu_time = executed; 45b34: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 45b38: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 45b3c: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED 45b40: 2541 0060 movel %d1,%a2@(96) <== NOT EXECUTED if ( _Timespec_Greater_than( &executed, &stats->max_cpu_time ) ) 45b44: 486a 0064 pea %a2@(100) <== NOT EXECUTED 45b48: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45b4c: 4eb9 0004 9140 jsr 49140 <_Timespec_Greater_than> <== NOT EXECUTED 45b52: 508f addql #8,%sp <== NOT EXECUTED 45b54: 4a00 tstb %d0 <== NOT EXECUTED 45b56: 6710 beqs 45b68 <_Rate_monotonic_Update_statistics+0xfc> <== NOT EXECUTED stats->max_cpu_time = executed; 45b58: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 45b5c: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 45b60: 2540 0064 movel %d0,%a2@(100) <== NOT EXECUTED 45b64: 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 ); 45b68: 240e movel %fp,%d2 <== NOT EXECUTED 45b6a: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 45b70: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b72: 486a 0084 pea %a2@(132) <== NOT EXECUTED 45b76: 4eb9 0004 9078 jsr 49078 <_Timespec_Add_to> <== NOT EXECUTED if ( _Timespec_Less_than( &since_last_period, &stats->min_wall_time ) ) 45b7c: 486a 0074 pea %a2@(116) <== NOT EXECUTED 45b80: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b82: 4eb9 0004 9170 jsr 49170 <_Timespec_Less_than> <== NOT EXECUTED 45b88: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45b8e: 4a00 tstb %d0 <== NOT EXECUTED 45b90: 6710 beqs 45ba2 <_Rate_monotonic_Update_statistics+0x136> <== NOT EXECUTED stats->min_wall_time = since_last_period; 45b92: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 45b96: 222e fff4 movel %fp@(-12),%d1 <== NOT EXECUTED 45b9a: 2540 0074 movel %d0,%a2@(116) <== NOT EXECUTED 45b9e: 2541 0078 movel %d1,%a2@(120) <== NOT EXECUTED if ( _Timespec_Greater_than( &since_last_period, &stats->max_wall_time ) ) 45ba2: 486a 007c pea %a2@(124) <== NOT EXECUTED 45ba6: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 45baa: 4eb9 0004 9140 jsr 49140 <_Timespec_Greater_than> <== NOT EXECUTED 45bb0: 508f addql #8,%sp <== NOT EXECUTED 45bb2: 4a00 tstb %d0 <== NOT EXECUTED 45bb4: 6710 beqs 45bc6 <_Rate_monotonic_Update_statistics+0x15a> <== NOT EXECUTED stats->max_wall_time = since_last_period; 45bb6: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 45bba: 222e fff4 movel %fp@(-12),%d1 <== NOT EXECUTED 45bbe: 2540 007c movel %d0,%a2@(124) <== NOT EXECUTED 45bc2: 2541 0080 movel %d1,%a2@(128) <== NOT EXECUTED #endif } 45bc6: 4cee 3c3c ffb8 moveml %fp@(-72),%d2-%d5/%a2-%a5 <== NOT EXECUTED 45bcc: 4e5e unlk %fp <== NOT EXECUTED 45bce: 4e75 rts 00049e50 <_Region_Manager_initialization>: */ void _Region_Manager_initialization( uint32_t maximum_regions ) { 49e50: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49e54: 4878 0004 pea 4 <== NOT EXECUTED 49e58: 42a7 clrl %sp@- <== NOT EXECUTED 49e5a: 4878 00c0 pea c0 <== NOT EXECUTED 49e5e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49e62: 4878 0006 pea 6 <== NOT EXECUTED 49e66: 4878 0002 pea 2 <== NOT EXECUTED 49e6a: 4879 0005 884a pea 5884a <_Region_Information> <== NOT EXECUTED 49e70: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49e76: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_REGION, 0 /* XXX _Region_MP_Process_packet */ ); #endif } 49e7c: 4e5e unlk %fp <== NOT EXECUTED 49e7e: 4e75 rts 00055444 <_Region_Process_queue>: 55444: 2039 0006 da18 movel 6da18 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED */ void _Region_Process_queue( Region_Control *the_region ) { 5544a: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5544e: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 55452: 5280 addql #1,%d0 <== NOT EXECUTED 55454: 23c0 0006 da18 movel %d0,6da18 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 5545a: 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(); 5545e: 2f39 0006 dace movel 6dace <_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 ); 55464: 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 ); 55466: 260b movel %a3,%d3 <== NOT EXECUTED 55468: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 5546e: 0683 0000 0068 addil #104,%d3 <== NOT EXECUTED 55474: 4bf9 0005 0b10 lea 50b10 <_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 ); 5547a: 49f9 0005 5b9c lea 55b9c <_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(); 55480: 4eb9 0005 0098 jsr 50098 <_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 ); 55486: 283c 0005 5ca8 movel #351400,%d4 <== NOT EXECUTED 5548c: 588f addql #4,%sp <== NOT EXECUTED 5548e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 55490: 2044 moveal %d4,%a0 <== NOT EXECUTED 55492: 4e90 jsr %a0@ <== NOT EXECUTED if ( the_thread == NULL ) 55494: 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 ); 55496: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( the_thread == NULL ) 55498: 4a80 tstl %d0 <== NOT EXECUTED 5549a: 6726 beqs 554c2 <_Region_Process_queue+0x7e> <== NOT EXECUTED 5549c: 2f2a 0024 movel %a2@(36),%sp@- <== NOT EXECUTED 554a0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 554a2: 4e95 jsr %a5@ <== NOT EXECUTED the_segment = (void **) _Region_Allocate_segment( the_region, the_thread->Wait.count ); if ( the_segment == NULL ) 554a4: 508f addql #8,%sp <== NOT EXECUTED 554a6: 4a80 tstl %d0 <== NOT EXECUTED 554a8: 6718 beqs 554c2 <_Region_Process_queue+0x7e> <== NOT EXECUTED break; *(void **)the_thread->Wait.return_argument = the_segment; 554aa: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED the_region->number_of_used_blocks += 1; 554ae: 52ab 0064 addql #1,%a3@(100) <== NOT EXECUTED ); if ( the_segment == NULL ) break; *(void **)the_thread->Wait.return_argument = the_segment; 554b2: 2080 movel %d0,%a0@ <== NOT EXECUTED the_region->number_of_used_blocks += 1; _Thread_queue_Extract( &the_region->Wait_queue, the_thread ); 554b4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 554b6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 554b8: 4e94 jsr %a4@ <== NOT EXECUTED the_thread->Wait.return_code = RTEMS_SUCCESSFUL; 554ba: 508f addql #8,%sp <== NOT EXECUTED 554bc: 42aa 0034 clrl %a2@(52) <== NOT EXECUTED 554c0: 60cc bras 5548e <_Region_Process_queue+0x4a> <== NOT EXECUTED } _Thread_Enable_dispatch(); } 554c2: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 554c8: 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(); 554ca: 4ef9 0005 1fae jmp 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 00049ebc <_Semaphore_Manager_initialization>: */ void _Semaphore_Manager_initialization( uint32_t maximum_semaphores ) { 49ebc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49ec0: 4878 0004 pea 4 <== NOT EXECUTED 49ec4: 42a7 clrl %sp@- <== NOT EXECUTED 49ec6: 4878 0076 pea 76 <== NOT EXECUTED 49eca: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49ece: 4878 0003 pea 3 <== NOT EXECUTED 49ed2: 4878 0002 pea 2 <== NOT EXECUTED 49ed6: 4879 0005 7db0 pea 57db0 <_Semaphore_Information> <== NOT EXECUTED 49edc: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED 49ee2: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_SEMAPHORE, _Semaphore_MP_Process_packet ); #endif } 49ee8: 4e5e unlk %fp <== NOT EXECUTED 49eea: 4e75 rts 00044fe0 <_Semaphore_Translate_core_mutex_return_code>: }; rtems_status_code _Semaphore_Translate_core_mutex_return_code ( uint32_t status ) { 44fe0: 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]; } 44fe4: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED }; rtems_status_code _Semaphore_Translate_core_mutex_return_code ( uint32_t status ) { 44fe8: 41f9 0005 508a lea 5508a <_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]; } 44fee: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 44ff2: 4e5e unlk %fp <== NOT EXECUTED 44ff4: 4e75 rts 00044ff6 <_Semaphore_Translate_core_semaphore_return_code>: }; rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( uint32_t status ) { 44ff6: 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]; } 44ffa: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED }; rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( uint32_t status ) { 44ffe: 41f9 0005 50a6 lea 550a6 <_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]; } 45004: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 45008: 4e5e unlk %fp <== NOT EXECUTED 4500a: 4e75 rts 00049eec <_Signal_Manager_initialization>: * * Output parameters: NONE */ void _Signal_Manager_initialization( void ) { 49eec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _MPCI_Register_packet_processor( MP_PACKET_SIGNAL, _Signal_MP_Process_packet ); #endif } 49ef0: 4e5e unlk %fp <== NOT EXECUTED 49ef2: 4e75 rts 00045d14 <_TOD_Get>: */ void _TOD_Get( struct timespec *time ) { 45d14: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 45d18: 2f0a movel %a2,%sp@- <== NOT EXECUTED offset.tv_sec = 0; offset.tv_nsec = 0; /* _TOD_Now is a proper POSIX time */ _ISR_Disable( level ); 45d1a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ void _TOD_Get( struct timespec *time ) { 45d20: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45d22: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; struct timespec offset; /* assume time checked by caller */ offset.tv_sec = 0; 45d26: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED offset.tv_nsec = 0; 45d2a: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED /* _TOD_Now is a proper POSIX time */ _ISR_Disable( level ); 45d2e: 40c2 movew %sr,%d2 <== NOT EXECUTED 45d30: 8082 orl %d2,%d0 <== NOT EXECUTED 45d32: 46c0 movew %d0,%sr <== NOT EXECUTED *time = _TOD_Now; if ( _Watchdog_Nanoseconds_since_tick_handler ) 45d34: 2079 0005 8012 moveal 58012 <_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; 45d3a: 2039 0005 7f0e movel 57f0e <_TOD_Now>,%d0 <== NOT EXECUTED 45d40: 2239 0005 7f12 movel 57f12 <_TOD_Now+0x4>,%d1 <== NOT EXECUTED 45d46: 2480 movel %d0,%a2@ <== NOT EXECUTED 45d48: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED if ( _Watchdog_Nanoseconds_since_tick_handler ) 45d4c: 4a88 tstl %a0 <== NOT EXECUTED 45d4e: 6706 beqs 45d56 <_TOD_Get+0x42> <== NOT EXECUTED offset.tv_nsec = (*_Watchdog_Nanoseconds_since_tick_handler)(); 45d50: 4e90 jsr %a0@ <== NOT EXECUTED 45d52: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED _ISR_Enable( level ); 45d56: 46c2 movew %d2,%sr <== NOT EXECUTED _Timespec_Add_to( time, &offset ); 45d58: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45d5c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45d5e: 4eb9 0004 79c8 jsr 479c8 <_Timespec_Add_to> <== NOT EXECUTED } 45d64: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 45d68: 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 ); 45d6c: 508f addql #8,%sp <== NOT EXECUTED } 45d6e: 4e5e unlk %fp <== NOT EXECUTED 45d70: 4e75 rts <== NOT EXECUTED ... 0004a350 <_TOD_Get_uptime>: */ void _TOD_Get_uptime( struct timespec *uptime ) { 4a350: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 4a354: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* assume uptime checked by caller */ offset.tv_sec = 0; offset.tv_nsec = 0; _ISR_Disable( level ); 4a356: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ void _TOD_Get_uptime( struct timespec *uptime ) { 4a35c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a35e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; struct timespec offset; /* assume uptime checked by caller */ offset.tv_sec = 0; 4a362: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED offset.tv_nsec = 0; 4a366: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED _ISR_Disable( level ); 4a36a: 40c2 movew %sr,%d2 <== NOT EXECUTED 4a36c: 8082 orl %d2,%d0 <== NOT EXECUTED 4a36e: 46c0 movew %d0,%sr <== NOT EXECUTED *uptime = _TOD_Uptime; if ( _Watchdog_Nanoseconds_since_tick_handler ) 4a370: 2079 0005 8012 moveal 58012 <_Watchdog_Nanoseconds_since_tick_handler>,%a0 <== NOT EXECUTED offset.tv_sec = 0; offset.tv_nsec = 0; _ISR_Disable( level ); *uptime = _TOD_Uptime; 4a376: 2039 0005 7efa movel 57efa <_TOD_Uptime>,%d0 <== NOT EXECUTED 4a37c: 2239 0005 7efe movel 57efe <_TOD_Uptime+0x4>,%d1 <== NOT EXECUTED 4a382: 2480 movel %d0,%a2@ <== NOT EXECUTED 4a384: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED if ( _Watchdog_Nanoseconds_since_tick_handler ) 4a388: 4a88 tstl %a0 <== NOT EXECUTED 4a38a: 6706 beqs 4a392 <_TOD_Get_uptime+0x42> <== NOT EXECUTED offset.tv_nsec = (*_Watchdog_Nanoseconds_since_tick_handler)(); 4a38c: 4e90 jsr %a0@ <== NOT EXECUTED 4a38e: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED _ISR_Enable( level ); 4a392: 46c2 movew %d2,%sr <== NOT EXECUTED _Timespec_Add_to( uptime, &offset ); 4a394: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4a398: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a39a: 4eb9 0004 79c8 jsr 479c8 <_Timespec_Add_to> <== NOT EXECUTED } 4a3a0: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 4a3a4: 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 ); 4a3a8: 508f addql #8,%sp <== NOT EXECUTED } 4a3aa: 4e5e unlk %fp <== NOT EXECUTED 4a3ac: 4e75 rts <== NOT EXECUTED ... 00045d74 <_TOD_Handler_initialization>: */ void _TOD_Handler_initialization( uint32_t microseconds_per_tick ) { 45d74: 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; 45d78: 4200 clrb %d0 <== NOT EXECUTED void _TOD_Handler_initialization( uint32_t microseconds_per_tick ) { _TOD_Microseconds_per_tick = microseconds_per_tick; 45d7a: 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; 45d7e: 13c0 0005 7e90 moveb %d0,57e90 <_TOD_Is_set> <== NOT EXECUTED void _TOD_Handler_initialization( uint32_t microseconds_per_tick ) { _TOD_Microseconds_per_tick = microseconds_per_tick; 45d84: 23d0 0005 800a movel %a0@,5800a <_TOD_Microseconds_per_tick> <== NOT EXECUTED _TOD_Uptime.tv_nsec = 0; /* TOD has not been set */ _TOD_Is_set = FALSE; _TOD_Activate(); } 45d8a: 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; 45d8c: 203c 21da e500 movel #567993600,%d0 <== NOT EXECUTED _TOD_Now.tv_nsec = 0; 45d92: 42b9 0005 7f12 clrl 57f12 <_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; 45d98: 23c0 0005 7f0e movel %d0,57f0e <_TOD_Now> <== NOT EXECUTED _TOD_Now.tv_nsec = 0; /* Uptime (timespec) */ _TOD_Uptime.tv_sec = 0; 45d9e: 42b9 0005 7efa clrl 57efa <_TOD_Uptime> <== NOT EXECUTED _TOD_Uptime.tv_nsec = 0; 45da4: 42b9 0005 7efe clrl 57efe <_TOD_Uptime+0x4> <== NOT EXECUTED /* TOD has not been set */ _TOD_Is_set = FALSE; _TOD_Activate(); } 45daa: 4e75 rts 00046e04 <_TOD_Set>: 46e04: 2039 0006 2194 movel 62194 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED */ void _TOD_Set( const struct timespec *time ) { 46e0a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46e0e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46e10: 5280 addql #1,%d0 <== NOT EXECUTED 46e12: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 46e16: 23c0 0006 2194 movel %d0,62194 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); _TOD_Deactivate(); if ( time->tv_sec < _TOD_Seconds_since_epoch ) 46e1c: 2239 0006 2226 movel 62226 <_TOD_Now>,%d1 <== NOT EXECUTED 46e22: 2012 movel %a2@,%d0 <== NOT EXECUTED 46e24: 41f9 0004 90b4 lea 490b4 <_Watchdog_Adjust>,%a0 <== NOT EXECUTED 46e2a: b280 cmpl %d0,%d1 <== NOT EXECUTED 46e2c: 6f0a bles 46e38 <_TOD_Set+0x34> <== NOT EXECUTED Watchdog_Adjust_directions direction, Watchdog_Interval units ) { _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units ); 46e2e: 9280 subl %d0,%d1 <== NOT EXECUTED 46e30: 2f01 movel %d1,%sp@- <== NOT EXECUTED 46e32: 4878 0001 pea 1 <== NOT EXECUTED 46e36: 6006 bras 46e3e <_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; 46e38: 9081 subl %d1,%d0 <== NOT EXECUTED 46e3a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46e3c: 42a7 clrl %sp@- <== NOT EXECUTED 46e3e: 4879 0006 2264 pea 62264 <_Watchdog_Seconds_chain> <== NOT EXECUTED 46e44: 4e90 jsr %a0@ <== NOT EXECUTED 46e46: 2012 movel %a2@,%d0 <== NOT EXECUTED 46e48: 588a addql #4,%a2 <== NOT EXECUTED 46e4a: 23d2 0006 222a movel %a2@,6222a <_TOD_Now+0x4> <== NOT EXECUTED _TOD_Is_set = TRUE; _TOD_Activate(); _Thread_Enable_dispatch(); } 46e50: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46e54: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46e5a: 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; 46e5c: 7201 moveq #1,%d1 <== NOT EXECUTED 46e5e: 13c1 0006 21a8 moveb %d1,621a8 <_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; 46e64: 23c0 0006 2226 movel %d0,62226 <_TOD_Now> <== NOT EXECUTED _TOD_Is_set = TRUE; _TOD_Activate(); _Thread_Enable_dispatch(); 46e6a: 4ef9 0004 7ea2 jmp 47ea2 <_Thread_Enable_dispatch> <== NOT EXECUTED 00045dac <_TOD_Tickle_ticks>: { struct timespec tick; uint32_t seconds; /* Convert the tick quantum to a timespec */ tick.tv_nsec = _TOD_Microseconds_per_tick * 1000; 45dac: 2239 0005 800a movel 5800a <_TOD_Microseconds_per_tick>,%d1 <== NOT EXECUTED * * Output parameters: NONE */ void _TOD_Tickle_ticks( void ) { 45db2: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 45db6: 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; 45dba: 2401 movel %d1,%d2 <== NOT EXECUTED 45dbc: 2001 movel %d1,%d0 <== NOT EXECUTED 45dbe: e58a lsll #2,%d2 <== NOT EXECUTED 45dc0: ef88 lsll #7,%d0 <== NOT EXECUTED tick.tv_sec = 0; /* Update the counter of ticks since boot */ _Watchdog_Ticks_since_boot += 1; 45dc2: 2079 0005 7fc4 moveal 57fc4 <_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; 45dc8: 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 ); 45dca: 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; 45dcc: 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 ); 45dce: 5182 subql #8,%d2 <== NOT EXECUTED 45dd0: 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; 45dd2: 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; 45dd4: 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 ); 45dd6: 45f9 0004 79c8 lea 479c8 <_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; 45ddc: 23c8 0005 7fc4 movel %a0,57fc4 <_Watchdog_Ticks_since_boot> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_seconds( void ) { _Watchdog_Tickle( &_Watchdog_Seconds_chain ); 45de2: 47f9 0004 7e18 lea 47e18 <_Watchdog_Tickle>,%a3 <== NOT EXECUTED /* Update the timespec format uptime */ (void) _Timespec_Add_to( &_TOD_Uptime, &tick ); 45de8: 4879 0005 7efa pea 57efa <_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; 45dee: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED tick.tv_sec = 0; 45df2: 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 ); 45df6: 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 ); 45df8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45dfa: 4879 0005 7f0e pea 57f0e <_TOD_Now> <== NOT EXECUTED 45e00: 4e92 jsr %a2@ <== NOT EXECUTED 45e02: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45e08: 2400 movel %d0,%d2 <== NOT EXECUTED 45e0a: 600c bras 45e18 <_TOD_Tickle_ticks+0x6c> <== NOT EXECUTED 45e0c: 4879 0005 7f4c pea 57f4c <_Watchdog_Seconds_chain> <== NOT EXECUTED 45e12: 4e93 jsr %a3@ <== NOT EXECUTED while ( seconds ) { _Watchdog_Tickle_seconds(); seconds--; 45e14: 5382 subql #1,%d2 <== NOT EXECUTED 45e16: 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 ) { 45e18: 4a82 tstl %d2 <== NOT EXECUTED 45e1a: 66f0 bnes 45e0c <_TOD_Tickle_ticks+0x60> <== NOT EXECUTED _Watchdog_Tickle_seconds(); seconds--; } } 45e1c: 4cee 0c04 ffec moveml %fp@(-20),%d2/%a2-%a3 <== NOT EXECUTED 45e22: 4e5e unlk %fp <== NOT EXECUTED 45e24: 4e75 rts <== NOT EXECUTED ... 0004558c <_TOD_To_seconds>: */ uint32_t _TOD_To_seconds( rtems_time_of_day *the_tod ) { 4558c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 45590: 48d7 043c moveml %d2-%d5/%a2,%sp@ <== NOT EXECUTED 45594: 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; 45598: 2412 movel %a2@,%d2 <== NOT EXECUTED ) { uint32_t time; uint32_t year_mod_4; time = the_tod->day - 1; 4559a: 222a 0008 movel %a2@(8),%d1 <== NOT EXECUTED year_mod_4 = the_tod->year & 3; 4559e: 7a03 moveq #3,%d5 <== NOT EXECUTED ) { uint32_t time; uint32_t year_mod_4; time = the_tod->day - 1; 455a0: 5381 subql #1,%d1 <== NOT EXECUTED year_mod_4 = the_tod->year & 3; 455a2: ca82 andl %d2,%d5 <== NOT EXECUTED 455a4: 41f9 0005 756e lea 5756e <_TOD_Days_to_date>,%a0 <== NOT EXECUTED if ( year_mod_4 == 0 ) 455aa: 660c bnes 455b8 <_TOD_To_seconds+0x2c> <== NOT EXECUTED time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; 455ac: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 455b0: 0680 0000 000d addil #13,%d0 <== NOT EXECUTED 455b6: 6004 bras 455bc <_TOD_To_seconds+0x30> <== NOT EXECUTED else time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; 455b8: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 455bc: 3030 0a00 movew %a0@(00000000,%d0:l:2),%d0 <== NOT EXECUTED 455c0: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 455c6: 2800 movel %d0,%d4 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 455c8: 0682 ffff f83c addil #-1988,%d2 <== NOT EXECUTED 455ce: 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 ]; 455d0: d881 addl %d1,%d4 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 455d2: 2002 movel %d2,%d0 <== NOT EXECUTED 455d4: 2202 movel %d2,%d1 <== NOT EXECUTED 455d6: ed89 lsll #6,%d1 <== NOT EXECUTED 455d8: e788 lsll #3,%d0 <== NOT EXECUTED 455da: 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; 455dc: 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 ) * 455e0: 2040 moveal %d0,%a0 <== NOT EXECUTED 455e2: 43f9 0005 75a2 lea 575a2 <_TOD_Days_since_last_leap_year>,%a1 <== NOT EXECUTED 455e8: 4280 clrl %d0 <== NOT EXECUTED 455ea: 3031 5a00 movew %a1@(00000000,%d5:l:2),%d0 <== NOT EXECUTED 455ee: d1c2 addal %d2,%a0 <== NOT EXECUTED 455f0: 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; 455f2: 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 ) * 455f4: 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; 455f8: 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 ) * 455fa: 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; 455fe: ed89 lsll #6,%d1 <== NOT EXECUTED 45600: 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 ) * 45602: d088 addl %a0,%d0 <== NOT EXECUTED ( (TOD_DAYS_PER_YEAR * 4) + 1); time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; 45604: 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; 45606: 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; 4560a: 2400 movel %d0,%d2 <== NOT EXECUTED 4560c: 7609 moveq #9,%d3 <== NOT EXECUTED 4560e: e7aa lsll %d3,%d2 <== NOT EXECUTED 45610: ef88 lsll #7,%d0 <== NOT EXECUTED 45612: 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; 45614: 2001 movel %d1,%d0 <== NOT EXECUTED 45616: e589 lsll #2,%d1 <== NOT EXECUTED 45618: ed88 lsll #6,%d0 <== NOT EXECUTED 4561a: 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) 4561c: 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; 45620: 2602 movel %d2,%d3 <== NOT EXECUTED 45622: e98b lsll #4,%d3 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) 45624: 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; 4562a: 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; 4562c: 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; 4562e: 2003 movel %d3,%d0 <== NOT EXECUTED 45630: e988 lsll #4,%d0 <== NOT EXECUTED 45632: 9083 subl %d3,%d0 <== NOT EXECUTED time += the_tod->second; time += TOD_SECONDS_1970_THROUGH_1988; return( time ); } 45634: 4cd7 043c moveml %sp@,%d2-%d5/%a2 <== NOT EXECUTED 45638: 4e5e unlk %fp <== NOT EXECUTED 4563a: d081 addl %d1,%d0 <== NOT EXECUTED 4563c: 4e75 rts <== NOT EXECUTED ... 00045640 <_TOD_Validate>: */ bool _TOD_Validate( rtems_time_of_day *the_tod ) { 45640: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45644: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45648: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t days_in_month; if ((!the_tod) || 4564a: 4a88 tstl %a0 <== NOT EXECUTED 4564c: 676c beqs 456ba <_TOD_Validate+0x7a> <== NOT EXECUTED 4564e: 43f9 0006 2322 lea 62322 <_TOD_Microseconds_per_tick>,%a1 <== NOT EXECUTED 45654: 203c 000f 4240 movel #1000000,%d0 <== NOT EXECUTED 4565a: 4c51 0000 remul %a1@,%d0,%d0 <== NOT EXECUTED 4565e: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 45662: 6356 blss 456ba <_TOD_Validate+0x7a> <== NOT EXECUTED 45664: 703b moveq #59,%d0 <== NOT EXECUTED 45666: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 4566a: 654e bcss 456ba <_TOD_Validate+0x7a> <== NOT EXECUTED 4566c: b0a8 0010 cmpl %a0@(16),%d0 <== NOT EXECUTED 45670: 6548 bcss 456ba <_TOD_Validate+0x7a> <== NOT EXECUTED 45672: 7417 moveq #23,%d2 <== NOT EXECUTED 45674: b4a8 000c cmpl %a0@(12),%d2 <== NOT EXECUTED 45678: 6540 bcss 456ba <_TOD_Validate+0x7a> <== NOT EXECUTED 4567a: 2228 0004 movel %a0@(4),%d1 <== NOT EXECUTED 4567e: 673a beqs 456ba <_TOD_Validate+0x7a> <== NOT EXECUTED 45680: 103c 000c moveb #12,%d0 <== NOT EXECUTED 45684: b081 cmpl %d1,%d0 <== NOT EXECUTED 45686: 6532 bcss 456ba <_TOD_Validate+0x7a> <== NOT EXECUTED 45688: 2010 movel %a0@,%d0 <== NOT EXECUTED 4568a: 0c80 0000 07c3 cmpil #1987,%d0 <== NOT EXECUTED 45690: 6328 blss 456ba <_TOD_Validate+0x7a> <== NOT EXECUTED 45692: 2268 0008 moveal %a0@(8),%a1 <== NOT EXECUTED 45696: 4a89 tstl %a1 <== NOT EXECUTED 45698: 6720 beqs 456ba <_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 ) 4569a: 143c 0003 moveb #3,%d2 <== NOT EXECUTED 4569e: c082 andl %d2,%d0 <== NOT EXECUTED 456a0: 41f9 0005 75aa lea 575aa <_TOD_Days_per_month>,%a0 <== NOT EXECUTED 456a6: 6606 bnes 456ae <_TOD_Validate+0x6e> <== NOT EXECUTED days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ]; 456a8: 2030 1c34 movel %a0@(00000034,%d1:l:4),%d0 <== NOT EXECUTED 456ac: 6004 bras 456b2 <_TOD_Validate+0x72> <== NOT EXECUTED else days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ]; 456ae: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 456b2: b089 cmpl %a1,%d0 <== NOT EXECUTED 456b4: 54c0 scc %d0 <== NOT EXECUTED 456b6: 4480 negl %d0 <== NOT EXECUTED 456b8: 6002 bras 456bc <_TOD_Validate+0x7c> <== NOT EXECUTED 456ba: 4200 clrb %d0 <== NOT EXECUTED if ( the_tod->day > days_in_month ) return false; return true; } 456bc: 241f movel %sp@+,%d2 <== NOT EXECUTED 456be: 4e5e unlk %fp <== NOT EXECUTED 456c0: 4e75 rts <== NOT EXECUTED ... 00046804 <_Thread_Change_priority>: void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) { 46804: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 46808: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 4680c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 46810: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED */ /* * Save original state */ original_state = the_thread->current_state; 46814: 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 ); 46818: 2f0a movel %a2,%sp@- <== NOT EXECUTED void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) { 4681a: 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 ); 4681e: 4eb9 0004 7638 jsr 47638 <_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 ) 46824: 588f addql #4,%sp <== NOT EXECUTED 46826: b4aa 0014 cmpl %a2@(20),%d2 <== NOT EXECUTED 4682a: 670c beqs 46838 <_Thread_Change_priority+0x34> <== NOT EXECUTED _Thread_Set_priority( the_thread, new_priority ); 4682c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4682e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46830: 4eb9 0004 74e0 jsr 474e0 <_Thread_Set_priority> <== NOT EXECUTED 46836: 508f addql #8,%sp <== NOT EXECUTED _ISR_Disable( level ); 46838: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4683e: 40c2 movew %sr,%d2 <== NOT EXECUTED 46840: 8082 orl %d2,%d0 <== NOT EXECUTED 46842: 46c0 movew %d0,%sr <== NOT EXECUTED 46844: 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; 46846: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4684a: c283 andl %d3,%d1 <== NOT EXECUTED if ( state != STATES_TRANSIENT ) { 4684c: 7604 moveq #4,%d3 <== NOT EXECUTED 4684e: b680 cmpl %d0,%d3 <== NOT EXECUTED 46850: 6730 beqs 46882 <_Thread_Change_priority+0x7e> <== NOT EXECUTED /* Only clear the transient state if it wasn't set already */ if ( ! _States_Is_transient( original_state ) ) 46852: 4a81 tstl %d1 <== NOT EXECUTED 46854: 6608 bnes 4685e <_Thread_Change_priority+0x5a> <== NOT EXECUTED the_thread->current_state = _States_Clear( STATES_TRANSIENT, state ); 46856: 72fb moveq #-5,%d1 <== NOT EXECUTED 46858: c280 andl %d0,%d1 <== NOT EXECUTED 4685a: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED _ISR_Enable( level ); 4685e: 46c2 movew %d2,%sr <== NOT EXECUTED if ( _States_Is_waiting_on_thread_queue( state ) ) { 46860: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 46866: 6700 00d4 beqw 4693c <_Thread_Change_priority+0x138> <== NOT EXECUTED _Thread_queue_Requeue( the_thread->Wait.queue, the_thread ); 4686a: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 4686e: 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 ); } 46874: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 4687a: 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 ); 4687c: 4ef9 0004 7440 jmp 47440 <_Thread_queue_Requeue> <== NOT EXECUTED } return; } /* Only clear the transient state if it wasn't set already */ if ( ! _States_Is_transient( original_state ) ) { 46882: 4a81 tstl %d1 <== NOT EXECUTED 46884: 6650 bnes 468d6 <_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; 46886: 206a 0090 moveal %a2@(144),%a0 <== NOT EXECUTED 4688a: 322a 0096 movew %a2@(150),%d1 <== NOT EXECUTED 4688e: 3010 movew %a0@,%d0 <== NOT EXECUTED 46890: 8081 orl %d1,%d0 <== NOT EXECUTED 46892: 3080 movew %d0,%a0@ <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 46894: 3239 0005 7f30 movew 57f30 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 4689a: 302a 0094 movew %a2@(148),%d0 <== NOT EXECUTED 4689e: 226a 008c moveal %a2@(140),%a1 <== NOT EXECUTED 468a2: 8081 orl %d1,%d0 <== NOT EXECUTED 468a4: 33c0 0005 7f30 movew %d0,57f30 <_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 ); 468aa: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED _Priority_Add_to_bit_map( &the_thread->Priority_map ); if ( prepend_it ) 468ae: 4a04 tstb %d4 <== NOT EXECUTED 468b0: 6710 beqs 468c2 <_Thread_Change_priority+0xbe> <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 468b2: 2051 moveal %a1@,%a0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 468b4: 2549 0004 movel %a1,%a2@(4) <== NOT EXECUTED before_node = after_node->next; after_node->next = the_node; 468b8: 228a movel %a2,%a1@ <== NOT EXECUTED the_node->next = before_node; before_node->previous = the_node; 468ba: 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; 468be: 2488 movel %a0,%a2@ <== NOT EXECUTED 468c0: 6014 bras 468d6 <_Thread_Change_priority+0xd2> <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 468c2: 2609 movel %a1,%d3 <== NOT EXECUTED 468c4: 5883 addql #4,%d3 <== NOT EXECUTED 468c6: 2483 movel %d3,%a2@ <== NOT EXECUTED old_last_node = the_chain->last; 468c8: 2069 0008 moveal %a1@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 468cc: 234a 0008 movel %a2,%a1@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 468d0: 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; 468d4: 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 ); 468d6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 468dc: 46c2 movew %d2,%sr <== NOT EXECUTED 468de: 8082 orl %d2,%d0 <== NOT EXECUTED 468e0: 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 ); 468e2: 3039 0005 7f30 movew 57f30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 468e8: 4840 swap %d0 <== NOT EXECUTED 468ea: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 468ec: 41f9 0005 7fa0 lea 57fa0 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 468f2: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 468f8: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 468fc: 4841 swap %d1 <== NOT EXECUTED 468fe: 04c1 ff1 %d1 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 46900: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 46906: e988 lsll #4,%d0 <== NOT EXECUTED 46908: d081 addl %d1,%d0 <== NOT EXECUTED 4690a: 2079 0005 7e28 moveal 57e28 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 46910: 2200 movel %d0,%d1 <== NOT EXECUTED 46912: e588 lsll #2,%d0 <== NOT EXECUTED 46914: 91c0 subal %d0,%a0 <== NOT EXECUTED 46916: e989 lsll #4,%d1 <== NOT EXECUTED 46918: 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 ); 4691c: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 46922: 23c0 0005 7f0a movel %d0,57f0a <_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() && 46928: b088 cmpl %a0,%d0 <== NOT EXECUTED 4692a: 670e beqs 4693a <_Thread_Change_priority+0x136> <== NOT EXECUTED 4692c: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 46930: 6708 beqs 4693a <_Thread_Change_priority+0x136> <== NOT EXECUTED _Thread_Executing->is_preemptible ) _Context_Switch_necessary = TRUE; 46932: 7001 moveq #1,%d0 <== NOT EXECUTED 46934: 13c0 0005 7f4a moveb %d0,57f4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 4693a: 46c2 movew %d2,%sr <== NOT EXECUTED } 4693c: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 46942: 4e5e unlk %fp <== NOT EXECUTED 46944: 4e75 rts <== NOT EXECUTED ... 00046948 <_Thread_Clear_state>: void _Thread_Clear_state( Thread_Control *the_thread, States_Control state ) { 46948: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4694c: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED ISR_Level level; States_Control current_state; _ISR_Disable( level ); 46950: 283c 0000 0700 movel #1792,%d4 <== NOT EXECUTED void _Thread_Clear_state( Thread_Control *the_thread, States_Control state ) { 46956: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4695a: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED ISR_Level level; States_Control current_state; _ISR_Disable( level ); 4695e: 2004 movel %d4,%d0 <== NOT EXECUTED 46960: 40c3 movew %sr,%d3 <== NOT EXECUTED 46962: 8083 orl %d3,%d0 <== NOT EXECUTED 46964: 46c0 movew %d0,%sr <== NOT EXECUTED current_state = the_thread->current_state; 46966: 222b 0010 movel %a3@(16),%d1 <== NOT EXECUTED if ( current_state & state ) { 4696a: 2002 movel %d2,%d0 <== NOT EXECUTED 4696c: c081 andl %d1,%d0 <== NOT EXECUTED 4696e: 677a beqs 469ea <_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); 46970: 2002 movel %d2,%d0 <== NOT EXECUTED 46972: 4680 notl %d0 <== NOT EXECUTED 46974: c081 andl %d1,%d0 <== NOT EXECUTED current_state = 46976: 2740 0010 movel %d0,%a3@(16) <== NOT EXECUTED the_thread->current_state = _States_Clear( state, current_state ); if ( _States_Is_ready( current_state ) ) { 4697a: 666e bnes 469ea <_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); 4697c: 206b 008c moveal %a3@(140),%a0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 46980: 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; 46982: 226b 0090 moveal %a3@(144),%a1 <== NOT EXECUTED 46986: 5880 addql #4,%d0 <== NOT EXECUTED 46988: 2680 movel %d0,%a3@ <== NOT EXECUTED old_last_node = the_chain->last; 4698a: 2468 0008 moveal %a0@(8),%a2 <== NOT EXECUTED 4698e: 322b 0096 movew %a3@(150),%d1 <== NOT EXECUTED 46992: 3011 movew %a1@,%d0 <== NOT EXECUTED 46994: 8081 orl %d1,%d0 <== NOT EXECUTED 46996: 3280 movew %d0,%a1@ <== NOT EXECUTED the_chain->last = the_node; 46998: 214b 0008 movel %a3,%a0@(8) <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 4699c: 3239 0005 7f30 movew 57f30 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 469a2: 302b 0094 movew %a3@(148),%d0 <== NOT EXECUTED 469a6: 8081 orl %d1,%d0 <== NOT EXECUTED 469a8: 33c0 0005 7f30 movew %d0,57f30 <_Priority_Major_bit_map> <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 469ae: 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; 469b2: 248b movel %a3,%a2@ <== NOT EXECUTED _ISR_Flash( level ); 469b4: 2004 movel %d4,%d0 <== NOT EXECUTED 469b6: 46c3 movew %d3,%sr <== NOT EXECUTED 469b8: 8083 orl %d3,%d0 <== NOT EXECUTED 469ba: 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 ) { 469bc: 2079 0005 7f0a moveal 57f0a <_Thread_Heir>,%a0 <== NOT EXECUTED 469c2: 202b 0014 movel %a3@(20),%d0 <== NOT EXECUTED 469c6: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 469ca: 641e bccs 469ea <_Thread_Clear_state+0xa2> <== NOT EXECUTED _Thread_Heir = the_thread; if ( _Thread_Executing->is_preemptible || 469cc: 2079 0005 7f3a moveal 57f3a <_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; 469d2: 23cb 0005 7f0a movel %a3,57f0a <_Thread_Heir> <== NOT EXECUTED if ( _Thread_Executing->is_preemptible || 469d8: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 469dc: 6604 bnes 469e2 <_Thread_Clear_state+0x9a> <== NOT EXECUTED 469de: 4a80 tstl %d0 <== NOT EXECUTED 469e0: 6608 bnes 469ea <_Thread_Clear_state+0xa2> <== NOT EXECUTED the_thread->current_priority == 0 ) _Context_Switch_necessary = TRUE; 469e2: 7001 moveq #1,%d0 <== NOT EXECUTED 469e4: 13c0 0005 7f4a moveb %d0,57f4a <_Context_Switch_necessary> <== NOT EXECUTED } } } _ISR_Enable( level ); 469ea: 46c3 movew %d3,%sr <== NOT EXECUTED } 469ec: 4cd7 0c1c moveml %sp@,%d2-%d4/%a2-%a3 <== NOT EXECUTED 469f0: 4e5e unlk %fp <== NOT EXECUTED 469f2: 4e75 rts 000469f4 <_Thread_Close>: void _Thread_Close( Objects_Information *information, Thread_Control *the_thread ) { 469f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 469f8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 469fa: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 469fe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46a00: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 46a04: 206a 001a moveal %a2@(26),%a0 <== NOT EXECUTED 46a08: 4280 clrl %d0 <== NOT EXECUTED 46a0a: 302b 000a movew %a3@(10),%d0 <== NOT EXECUTED 46a0e: 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; 46a12: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46a18: 5380 subql #1,%d0 <== NOT EXECUTED 46a1a: 23c0 0005 7e7c movel %d0,57e7c <_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 ); 46a20: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46a22: 4eb9 0004 7be0 jsr 47be0 <_User_extensions_Thread_delete> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 46a28: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46a2e: 5280 addql #1,%d0 <== NOT EXECUTED 46a30: 23c0 0005 7e7c movel %d0,57e7c <_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 ); 46a36: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46a38: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46a3a: 4eb9 0004 6150 jsr 46150 <_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 ); 46a40: 4878 0001 pea 1 <== NOT EXECUTED 46a44: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46a46: 4eb9 0004 754c jsr 4754c <_Thread_Set_state> <== NOT EXECUTED if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) { 46a4c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46a4e: 4eb9 0004 7368 jsr 47368 <_Thread_queue_Extract_with_proxy> <== NOT EXECUTED 46a54: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 46a5a: 4a00 tstb %d0 <== NOT EXECUTED 46a5c: 6614 bnes 46a72 <_Thread_Close+0x7e> <== NOT EXECUTED if ( _Watchdog_Is_active( &the_thread->Timer ) ) 46a5e: 7002 moveq #2,%d0 <== NOT EXECUTED 46a60: b0ab 0050 cmpl %a3@(80),%d0 <== NOT EXECUTED 46a64: 660c bnes 46a72 <_Thread_Close+0x7e> <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 46a66: 486b 0048 pea %a3@(72) <== NOT EXECUTED 46a6a: 4eb9 0004 7d9c jsr 47d9c <_Watchdog_Remove> <== NOT EXECUTED 46a70: 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 ) ) 46a72: b7f9 0005 7f02 cmpal 57f02 <_Thread_Allocated_fp>,%a3 <== NOT EXECUTED 46a78: 6606 bnes 46a80 <_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; 46a7a: 42b9 0005 7f02 clrl 57f02 <_Thread_Allocated_fp> <== NOT EXECUTED _Thread_Deallocate_fp(); #endif the_thread->fp_context = NULL; if ( the_thread->Start.fp_context ) 46a80: 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; 46a84: 42ab 0104 clrl %a3@(260) <== NOT EXECUTED if ( the_thread->Start.fp_context ) 46a88: 4a80 tstl %d0 <== NOT EXECUTED 46a8a: 670a beqs 46a96 <_Thread_Close+0xa2> <== NOT EXECUTED (void) _Workspace_Free( the_thread->Start.fp_context ); 46a8c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46a8e: 4eb9 0004 7e94 jsr 47e94 <_Workspace_Free> <== NOT EXECUTED 46a94: 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 ); 46a96: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46a98: 4eb9 0004 7704 jsr 47704 <_Thread_Stack_Free> <== NOT EXECUTED the_thread->Start.stack = NULL; if ( the_thread->extensions ) 46a9e: 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; 46aa2: 42ab 00cc clrl %a3@(204) <== NOT EXECUTED if ( the_thread->extensions ) 46aa6: 588f addql #4,%sp <== NOT EXECUTED 46aa8: 4a80 tstl %d0 <== NOT EXECUTED 46aaa: 670a beqs 46ab6 <_Thread_Close+0xc2> <== NOT EXECUTED (void) _Workspace_Free( the_thread->extensions ); 46aac: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46aae: 4eb9 0004 7e94 jsr 47e94 <_Workspace_Free> <== NOT EXECUTED 46ab4: 588f addql #4,%sp <== NOT EXECUTED the_thread->extensions = NULL; 46ab6: 42ab 0118 clrl %a3@(280) <== NOT EXECUTED } 46aba: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46abe: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 46ac2: 4e5e unlk %fp <== NOT EXECUTED 46ac4: 4e75 rts <== NOT EXECUTED ... 00046ac8 <_Thread_Create_idle>: * * _Thread_Create_idle */ void _Thread_Create_idle( void ) { 46ac8: 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 ); 46acc: 4879 0005 7fce pea 57fce <_Thread_Internal_information> <== NOT EXECUTED 46ad2: 4eb9 0004 60c8 jsr 460c8 <_Objects_Allocate> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 46ad8: 2239 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d1 <== NOT EXECUTED 46ade: 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(); 46ae0: 23c0 0005 8016 movel %d0,58016 <_Thread_Idle> <== NOT EXECUTED 46ae6: 23c1 0005 7e7c movel %d1,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED * that when _Thread_Initialize unnests dispatch that we do not * do anything stupid. */ _Thread_Disable_dispatch(); _Thread_Initialize( 46aec: 2079 0005 7f16 moveal 57f16 <_Configuration_Table>,%a0 <== NOT EXECUTED 46af2: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 46af6: 4879 0005 515c pea 5515c <== NOT EXECUTED 46afc: 4280 clrl %d0 <== NOT EXECUTED 46afe: 1039 0005 62f2 moveb 562f2 ,%d0 <== NOT EXECUTED 46b04: 42a7 clrl %sp@- <== NOT EXECUTED 46b06: 2239 0005 62ee movel 562ee ,%d1 <== NOT EXECUTED 46b0c: 42a7 clrl %sp@- <== NOT EXECUTED 46b0e: 42a7 clrl %sp@- <== NOT EXECUTED 46b10: 4878 0001 pea 1 <== NOT EXECUTED 46b14: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46b16: 42a7 clrl %sp@- <== NOT EXECUTED 46b18: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 46b1a: 6302 blss 46b1e <_Thread_Create_idle+0x56> <== NOT EXECUTED 46b1c: 2208 movel %a0,%d1 <== NOT EXECUTED 46b1e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 46b20: 42a7 clrl %sp@- <== NOT EXECUTED 46b22: 2f39 0005 8016 movel 58016 <_Thread_Idle>,%sp@- <== NOT EXECUTED 46b28: 4879 0005 7fce pea 57fce <_Thread_Internal_information> <== NOT EXECUTED 46b2e: 4eb9 0004 6dc8 jsr 46dc8 <_Thread_Initialize> <== NOT EXECUTED * MUST be done before _Thread_Start is invoked. */ _Thread_Heir = _Thread_Executing = _Thread_Idle; _Thread_Start( 46b34: dffc 0000 002c addal #44,%sp <== NOT EXECUTED 46b3a: 4297 clrl %sp@ <== NOT EXECUTED 46b3c: 2079 0005 7f16 moveal 57f16 <_Configuration_Table>,%a0 <== NOT EXECUTED 46b42: 42a7 clrl %sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 46b44: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46b4a: 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 = 46b4e: 2239 0005 8016 movel 58016 <_Thread_Idle>,%d1 <== NOT EXECUTED _Thread_Executing = _Thread_Idle; _Thread_Start( 46b54: 42a7 clrl %sp@- <== NOT EXECUTED 46b56: 5380 subql #1,%d0 <== NOT EXECUTED 46b58: 2f01 movel %d1,%sp@- <== NOT EXECUTED 46b5a: 23c0 0005 7e7c movel %d0,57e7c <_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 = 46b60: 23c1 0005 7f3a movel %d1,57f3a <_Thread_Executing> <== NOT EXECUTED 46b66: 23c1 0005 7f0a movel %d1,57f0a <_Thread_Heir> <== NOT EXECUTED _Thread_Executing = _Thread_Idle; _Thread_Start( 46b6c: 4eb9 0004 7798 jsr 47798 <_Thread_Start> <== NOT EXECUTED 46b72: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED _Configuration_Table->idle_task, NULL, 0 ); } 46b78: 4e5e unlk %fp <== NOT EXECUTED 46b7a: 4e75 rts 00046b7c <_Thread_Delay_ended>: void _Thread_Delay_ended( Objects_Id id, void *ignored ) { 46b7c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 46b80: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46b84: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46b88: 4eb9 0004 6d34 jsr 46d34 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 46b8e: 508f addql #8,%sp <== NOT EXECUTED 46b90: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46b94: 661e bnes 46bb4 <_Thread_Delay_ended+0x38> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 46b96: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 46b9c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46b9e: 4eb9 0004 6948 jsr 46948 <_Thread_Clear_state> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 46ba4: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46baa: 508f addql #8,%sp <== NOT EXECUTED 46bac: 5380 subql #1,%d0 <== NOT EXECUTED 46bae: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED case OBJECTS_LOCAL: _Thread_Unblock( the_thread ); _Thread_Unnest_dispatch(); break; } } 46bb4: 4e5e unlk %fp <== NOT EXECUTED 46bb6: 4e75 rts 00046bb8 <_Thread_Dispatch>: * dispatch thread * no dispatch thread */ void _Thread_Dispatch( void ) { 46bb8: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 46bbc: 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 ); 46bc0: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED { Thread_Control *executing; Thread_Control *heir; ISR_Level level; executing = _Thread_Executing; 46bc6: 2679 0005 7f3a moveal 57f3a <_Thread_Executing>,%a3 <== NOT EXECUTED _ISR_Disable( level ); 46bcc: 2200 movel %d0,%d1 <== NOT EXECUTED 46bce: 40c2 movew %sr,%d2 <== NOT EXECUTED 46bd0: 8282 orl %d2,%d1 <== NOT EXECUTED 46bd2: 46c1 movew %d1,%sr <== NOT EXECUTED _ISR_Enable( level ); #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS { struct timespec uptime, ran; _TOD_Get_uptime( &uptime ); 46bd4: 280e movel %fp,%d4 <== NOT EXECUTED _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); 46bd6: 260e movel %fp,%d3 <== NOT EXECUTED _ISR_Enable( level ); #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS { struct timespec uptime, ran; _TOD_Get_uptime( &uptime ); 46bd8: 5184 subql #8,%d4 <== NOT EXECUTED _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); 46bda: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED _Timespec_Add_to( &executing->cpu_time_used, &ran ); 46be0: 2e3c 0004 79c8 movel #293320,%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 ); 46be6: 2c3c 0004 7c50 movel #293968,%d6 <== NOT EXECUTED if ( executing->fp_context != NULL ) _Context_Save_fp( &executing->fp_context ); #endif #endif _Context_Switch( &executing->Registers, &heir->Registers ); 46bec: 2a3c 0004 7f68 movel #294760,%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 ); 46bf2: 4bf9 0004 7f84 lea 47f84 <_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 ); 46bf8: 49f9 0004 7f80 lea 47f80 <_CPU_Context_save_fp>,%a4 <== NOT EXECUTED 46bfe: 6000 00d4 braw 46cd4 <_Thread_Dispatch+0x11c> <== NOT EXECUTED ISR_Level level; executing = _Thread_Executing; _ISR_Disable( level ); while ( _Context_Switch_necessary == TRUE ) { heir = _Thread_Heir; 46c02: 2479 0005 7f0a moveal 57f0a <_Thread_Heir>,%a2 <== NOT EXECUTED _Thread_Dispatch_disable_level = 1; 46c08: 7001 moveq #1,%d0 <== NOT EXECUTED 46c0a: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Context_Switch_necessary = FALSE; 46c10: 4201 clrb %d1 <== NOT EXECUTED 46c12: 13c1 0005 7f4a moveb %d1,57f4a <_Context_Switch_necessary> <== NOT EXECUTED _Thread_Executing = heir; 46c18: 23ca 0005 7f3a movel %a2,57f3a <_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 ) 46c1e: b0aa 007c cmpl %a2@(124),%d0 <== NOT EXECUTED 46c22: 660a bnes 46c2e <_Thread_Dispatch+0x76> <== NOT EXECUTED heir->cpu_time_budget = _Thread_Ticks_per_timeslice; 46c24: 41f9 0005 7e2c lea 57e2c <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED 46c2a: 2550 0078 movel %a0@,%a2@(120) <== NOT EXECUTED _ISR_Enable( level ); 46c2e: 46c2 movew %d2,%sr <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS { struct timespec uptime, ran; _TOD_Get_uptime( &uptime ); 46c30: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46c32: 4eb9 0004 a350 jsr 4a350 <_TOD_Get_uptime> <== NOT EXECUTED _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); 46c38: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46c3a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46c3c: 4879 0005 7f42 pea 57f42 <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 46c42: 4eb9 0004 7a00 jsr 47a00 <_Timespec_Subtract> <== NOT EXECUTED _Timespec_Add_to( &executing->cpu_time_used, &ran ); 46c48: 2047 moveal %d7,%a0 <== NOT EXECUTED 46c4a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46c4c: 486b 0084 pea %a3@(132) <== NOT EXECUTED 46c50: 4e90 jsr %a0@ <== NOT EXECUTED #endif /* * Switch libc's task specific data. */ if ( _Thread_libc_reent ) { 46c52: 2079 0005 7f06 moveal 57f06 <_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; 46c58: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 46c5c: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 46c60: 23c0 0005 7f42 movel %d0,57f42 <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 46c66: 23c1 0005 7f46 movel %d1,57f46 <_Thread_Time_of_last_context_switch+0x4> <== NOT EXECUTED #endif /* * Switch libc's task specific data. */ if ( _Thread_libc_reent ) { 46c6c: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 46c72: 4a88 tstl %a0 <== NOT EXECUTED 46c74: 6708 beqs 46c7e <_Thread_Dispatch+0xc6> <== NOT EXECUTED executing->libc_reent = *_Thread_libc_reent; 46c76: 2750 0108 movel %a0@,%a3@(264) <== NOT EXECUTED *_Thread_libc_reent = heir->libc_reent; 46c7a: 20aa 0108 movel %a2@(264),%a0@ <== NOT EXECUTED } _User_extensions_Thread_switch( executing, heir ); 46c7e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46c80: 2046 moveal %d6,%a0 <== NOT EXECUTED 46c82: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46c84: 4e90 jsr %a0@ <== NOT EXECUTED if ( executing->fp_context != NULL ) _Context_Save_fp( &executing->fp_context ); #endif #endif _Context_Switch( &executing->Registers, &heir->Registers ); 46c86: 486a 00d0 pea %a2@(208) <== NOT EXECUTED 46c8a: 2045 moveal %d5,%a0 <== NOT EXECUTED 46c8c: 486b 00d0 pea %a3@(208) <== NOT EXECUTED 46c90: 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) && 46c92: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 46c98: 4aab 0104 tstl %a3@(260) <== NOT EXECUTED 46c9c: 6724 beqs 46cc2 <_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 ); 46c9e: 2079 0005 7f02 moveal 57f02 <_Thread_Allocated_fp>,%a0 <== NOT EXECUTED 46ca4: b1cb cmpal %a3,%a0 <== NOT EXECUTED 46ca6: 671a beqs 46cc2 <_Thread_Dispatch+0x10a> <== NOT EXECUTED !_Thread_Is_allocated_fp( executing ) ) { if ( _Thread_Allocated_fp != NULL ) 46ca8: 4a88 tstl %a0 <== NOT EXECUTED 46caa: 6708 beqs 46cb4 <_Thread_Dispatch+0xfc> <== NOT EXECUTED _Context_Save_fp( &_Thread_Allocated_fp->fp_context ); 46cac: 4868 0104 pea %a0@(260) <== NOT EXECUTED 46cb0: 4e94 jsr %a4@ <== NOT EXECUTED 46cb2: 588f addql #4,%sp <== NOT EXECUTED _Context_Restore_fp( &executing->fp_context ); 46cb4: 486b 0104 pea %a3@(260) <== NOT EXECUTED 46cb8: 4e95 jsr %a5@ <== NOT EXECUTED _Thread_Allocated_fp = executing; 46cba: 588f addql #4,%sp <== NOT EXECUTED 46cbc: 23cb 0005 7f02 movel %a3,57f02 <_Thread_Allocated_fp> <== NOT EXECUTED if ( executing->fp_context != NULL ) _Context_Restore_fp( &executing->fp_context ); #endif #endif executing = _Thread_Executing; 46cc2: 2679 0005 7f3a moveal 57f3a <_Thread_Executing>,%a3 <== NOT EXECUTED _ISR_Disable( level ); 46cc8: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 46cce: 40c2 movew %sr,%d2 <== NOT EXECUTED 46cd0: 8082 orl %d2,%d0 <== NOT EXECUTED 46cd2: 46c0 movew %d0,%sr <== NOT EXECUTED Thread_Control *heir; ISR_Level level; executing = _Thread_Executing; _ISR_Disable( level ); while ( _Context_Switch_necessary == TRUE ) { 46cd4: 1039 0005 7f4a moveb 57f4a <_Context_Switch_necessary>,%d0 <== NOT EXECUTED 46cda: 6600 ff26 bnew 46c02 <_Thread_Dispatch+0x4a> <== NOT EXECUTED executing = _Thread_Executing; _ISR_Disable( level ); } _Thread_Dispatch_disable_level = 0; 46cde: 42b9 0005 7e7c clrl 57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _ISR_Enable( level ); 46ce4: 46c2 movew %d2,%sr <== NOT EXECUTED if ( _Thread_Do_post_task_switch_extension || 46ce6: 4ab9 0005 7f22 tstl 57f22 <_Thread_Do_post_task_switch_extension> <== NOT EXECUTED 46cec: 6606 bnes 46cf4 <_Thread_Dispatch+0x13c> <== NOT EXECUTED 46cee: 4a2b 0075 tstb %a3@(117) <== NOT EXECUTED 46cf2: 670c beqs 46d00 <_Thread_Dispatch+0x148> <== NOT EXECUTED executing->do_post_task_switch_extension ) { executing->do_post_task_switch_extension = false; 46cf4: 4200 clrb %d0 <== NOT EXECUTED 46cf6: 1740 0075 moveb %d0,%a3@(117) <== NOT EXECUTED _API_extensions_Run_postswitch(); 46cfa: 4eb9 0004 5810 jsr 45810 <_API_extensions_Run_postswitch> <== NOT EXECUTED } } 46d00: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 46d06: 4e5e unlk %fp <== NOT EXECUTED 46d08: 4e75 rts 00046d0a <_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 ) 46d0a: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46d10: 5380 subql #1,%d0 <== NOT EXECUTED 46d12: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED 46d18: 2039 0005 7e7c movel 57e7c <_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 ) { 46d1e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( --_Thread_Dispatch_disable_level ) 46d22: 4a80 tstl %d0 <== NOT EXECUTED 46d24: 6608 bnes 46d2e <_Thread_Enable_dispatch+0x24> <== NOT EXECUTED return; _Thread_Dispatch(); } 46d26: 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(); 46d28: 4ef9 0004 6bb8 jmp 46bb8 <_Thread_Dispatch> <== NOT EXECUTED } 46d2e: 4e5e unlk %fp <== NOT EXECUTED 46d30: 4e75 rts <== NOT EXECUTED ... 0004b5a0 <_Thread_Evaluate_mode>: bool _Thread_Evaluate_mode( void ) { Thread_Control *executing; executing = _Thread_Executing; 4b5a0: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED * * XXX */ bool _Thread_Evaluate_mode( void ) { 4b5a6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Thread_Control *executing; executing = _Thread_Executing; if ( !_States_Is_ready( executing->current_state ) || 4b5aa: 4aa8 0010 tstl %a0@(16) <== NOT EXECUTED 4b5ae: 660e bnes 4b5be <_Thread_Evaluate_mode+0x1e> <== NOT EXECUTED 4b5b0: b1f9 0005 7f0a cmpal 57f0a <_Thread_Heir>,%a0 <== NOT EXECUTED 4b5b6: 6710 beqs 4b5c8 <_Thread_Evaluate_mode+0x28> <== NOT EXECUTED 4b5b8: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 4b5bc: 670a beqs 4b5c8 <_Thread_Evaluate_mode+0x28> <== NOT EXECUTED ( !_Thread_Is_heir( executing ) && executing->is_preemptible ) ) { _Context_Switch_necessary = TRUE; 4b5be: 7001 moveq #1,%d0 <== NOT EXECUTED 4b5c0: 13c0 0005 7f4a moveb %d0,57f4a <_Context_Switch_necessary> <== NOT EXECUTED 4b5c6: 6002 bras 4b5ca <_Thread_Evaluate_mode+0x2a> <== NOT EXECUTED return TRUE; 4b5c8: 4200 clrb %d0 <== NOT EXECUTED } return FALSE; } 4b5ca: 4e5e unlk %fp <== NOT EXECUTED 4b5cc: 4e75 rts <== NOT EXECUTED ... 00046d34 <_Thread_Get>: Thread_Control *_Thread_Get ( Objects_Id id, Objects_Locations *location ) { 46d34: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46d38: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46d3a: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 46d3e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46d40: 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 ) ) { 46d44: 6618 bnes 46d5e <_Thread_Get+0x2a> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 46d46: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46d4c: 5280 addql #1,%d0 <== NOT EXECUTED 46d4e: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); *location = OBJECTS_LOCAL; tp = _Thread_Executing; 46d54: 2039 0005 7f3a movel 57f3a <_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; 46d5a: 4291 clrl %a1@ <== NOT EXECUTED 46d5c: 604c bras 46daa <_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); 46d5e: 7018 moveq #24,%d0 <== NOT EXECUTED 46d60: 2202 movel %d2,%d1 <== NOT EXECUTED 46d62: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 46d64: 7607 moveq #7,%d3 <== NOT EXECUTED 46d66: 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 ) 46d68: 2001 movel %d1,%d0 <== NOT EXECUTED 46d6a: 5380 subql #1,%d0 <== NOT EXECUTED 46d6c: 163c 0003 moveb #3,%d3 <== NOT EXECUTED 46d70: b680 cmpl %d0,%d3 <== NOT EXECUTED 46d72: 6442 bccs 46db6 <_Thread_Get+0x82> <== NOT EXECUTED 46d74: 600e bras 46d84 <_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 ]; 46d76: 41f9 0005 7e34 lea 57e34 <_Objects_Information_table>,%a0 <== NOT EXECUTED 46d7c: 2070 1c00 moveal %a0@(00000000,%d1:l:4),%a0 <== NOT EXECUTED if ( !api_information ) { 46d80: 4a88 tstl %a0 <== NOT EXECUTED 46d82: 6608 bnes 46d8c <_Thread_Get+0x58> <== NOT EXECUTED *location = OBJECTS_ERROR; 46d84: 7401 moveq #1,%d2 <== NOT EXECUTED 46d86: 2282 movel %d2,%a1@ <== NOT EXECUTED 46d88: 4280 clrl %d0 <== NOT EXECUTED 46d8a: 601e bras 46daa <_Thread_Get+0x76> <== NOT EXECUTED goto done; } information = api_information[ the_class ]; 46d8c: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED if ( !information ) { 46d90: 6606 bnes 46d98 <_Thread_Get+0x64> <== NOT EXECUTED *location = OBJECTS_ERROR; 46d92: 7201 moveq #1,%d1 <== NOT EXECUTED 46d94: 2281 movel %d1,%a1@ <== NOT EXECUTED 46d96: 6012 bras 46daa <_Thread_Get+0x76> <== NOT EXECUTED goto done; } tp = (Thread_Control *) _Objects_Get( information, id, location ); 46d98: 2f09 movel %a1,%sp@- <== NOT EXECUTED 46d9a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46d9c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46d9e: 4eb9 0004 6528 jsr 46528 <_Objects_Get> <== NOT EXECUTED 46da4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED done: return tp; } 46daa: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46dae: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 46db2: 4e5e unlk %fp <== NOT EXECUTED 46db4: 4e75 rts <== NOT EXECUTED *location = OBJECTS_ERROR; goto done; } the_class = _Objects_Get_class( id ); if ( the_class != 1 ) { /* threads are always first class :) */ 46db6: 761b moveq #27,%d3 <== NOT EXECUTED 46db8: 2002 movel %d2,%d0 <== NOT EXECUTED 46dba: e6a8 lsrl %d3,%d0 <== NOT EXECUTED 46dbc: 163c 0001 moveb #1,%d3 <== NOT EXECUTED 46dc0: b680 cmpl %d0,%d3 <== NOT EXECUTED 46dc2: 67b2 beqs 46d76 <_Thread_Get+0x42> <== NOT EXECUTED 46dc4: 60be bras 46d84 <_Thread_Get+0x50> <== NOT EXECUTED ... 0004b5d0 <_Thread_Handler>: * * Output parameters: NONE */ void _Thread_Handler( void ) { 4b5d0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b5d4: 2f0a movel %a2,%sp@- <== NOT EXECUTED #if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__) static char doneConstructors; char doneCons; #endif executing = _Thread_Executing; 4b5d6: 2479 0005 7f3a moveal 57f3a <_Thread_Executing>,%a2 <== NOT EXECUTED * * Output parameters: NONE */ void _Thread_Handler( void ) { 4b5dc: 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; 4b5de: 222a 00b6 movel %a2@(182),%d1 <== NOT EXECUTED _ISR_Set_level(level); 4b5e2: 40c0 movew %sr,%d0 <== NOT EXECUTED 4b5e4: e189 lsll #8,%d1 <== NOT EXECUTED 4b5e6: 0280 0000 f8ff andil #63743,%d0 <== NOT EXECUTED 4b5ec: 8081 orl %d1,%d0 <== NOT EXECUTED 4b5ee: 46c0 movew %d0,%sr <== NOT EXECUTED #if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__) doneCons = doneConstructors; 4b5f0: 1439 0005 766c moveb 5766c ,%d2 <== NOT EXECUTED doneConstructors = 1; 4b5f6: 7001 moveq #1,%d0 <== NOT EXECUTED 4b5f8: 13c0 0005 766c moveb %d0,5766c <== 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 ) ) { 4b5fe: 4aaa 0104 tstl %a2@(260) <== NOT EXECUTED 4b602: 6720 beqs 4b624 <_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 ); 4b604: 2079 0005 7f02 moveal 57f02 <_Thread_Allocated_fp>,%a0 <== NOT EXECUTED 4b60a: b1ca cmpal %a2,%a0 <== NOT EXECUTED 4b60c: 6716 beqs 4b624 <_Thread_Handler+0x54> <== NOT EXECUTED if ( _Thread_Allocated_fp != NULL ) 4b60e: 4a88 tstl %a0 <== NOT EXECUTED 4b610: 670c beqs 4b61e <_Thread_Handler+0x4e> <== NOT EXECUTED _Context_Save_fp( &_Thread_Allocated_fp->fp_context ); 4b612: 4868 0104 pea %a0@(260) <== NOT EXECUTED 4b616: 4eb9 0004 7f80 jsr 47f80 <_CPU_Context_save_fp> <== NOT EXECUTED 4b61c: 588f addql #4,%sp <== NOT EXECUTED _Thread_Allocated_fp = executing; 4b61e: 23ca 0005 7f02 movel %a2,57f02 <_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 ); 4b624: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b626: 4eb9 0004 7af8 jsr 47af8 <_User_extensions_Thread_begin> <== NOT EXECUTED /* * At this point, the dispatch disable level BETTER be 1. */ _Thread_Enable_dispatch(); 4b62c: 4eb9 0004 6d0a jsr 46d0a <_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) */ 4b632: 588f addql #4,%sp <== NOT EXECUTED 4b634: 4a02 tstb %d2 <== NOT EXECUTED 4b636: 6606 bnes 4b63e <_Thread_Handler+0x6e> <== NOT EXECUTED { _init (); 4b638: 4eb9 0005 48a8 jsr 548a8 <_init> <== NOT EXECUTED #if defined(__USE__MAIN__) if (!doneCons && _main) __main (); #endif switch ( executing->Start.prototype ) { 4b63e: 202a 00a0 movel %a2@(160),%d0 <== NOT EXECUTED 4b642: 7201 moveq #1,%d1 <== NOT EXECUTED 4b644: b280 cmpl %d0,%d1 <== NOT EXECUTED 4b646: 671a beqs 4b662 <_Thread_Handler+0x92> <== NOT EXECUTED 4b648: 6212 bhis 4b65c <_Thread_Handler+0x8c> <== NOT EXECUTED 4b64a: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 4b64e: b280 cmpl %d0,%d1 <== NOT EXECUTED 4b650: 6722 beqs 4b674 <_Thread_Handler+0xa4> <== NOT EXECUTED 4b652: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 4b656: b280 cmpl %d0,%d1 <== NOT EXECUTED 4b658: 6644 bnes 4b69e <_Thread_Handler+0xce> <== NOT EXECUTED 4b65a: 602e bras 4b68a <_Thread_Handler+0xba> <== NOT EXECUTED case THREAD_START_NUMERIC: executing->Wait.return_argument = 4b65c: 2f2a 00a8 movel %a2@(168),%sp@- <== NOT EXECUTED 4b660: 6004 bras 4b666 <_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 = 4b662: 2f2a 00a4 movel %a2@(164),%sp@- <== NOT EXECUTED 4b666: 206a 009c moveal %a2@(156),%a0 <== NOT EXECUTED 4b66a: 4e90 jsr %a0@ <== NOT EXECUTED 4b66c: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 4b670: 588f addql #4,%sp <== NOT EXECUTED 4b672: 602a bras 4b69e <_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 = 4b674: 2f2a 00a8 movel %a2@(168),%sp@- <== NOT EXECUTED 4b678: 2f2a 00a4 movel %a2@(164),%sp@- <== NOT EXECUTED 4b67c: 206a 009c moveal %a2@(156),%a0 <== NOT EXECUTED 4b680: 4e90 jsr %a0@ <== NOT EXECUTED 4b682: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 4b686: 508f addql #8,%sp <== NOT EXECUTED 4b688: 6014 bras 4b69e <_Thread_Handler+0xce> <== NOT EXECUTED executing->Start.pointer_argument, executing->Start.numeric_argument ); break; case THREAD_START_BOTH_NUMERIC_FIRST: executing->Wait.return_argument = 4b68a: 2f2a 00a4 movel %a2@(164),%sp@- <== NOT EXECUTED 4b68e: 2f2a 00a8 movel %a2@(168),%sp@- <== NOT EXECUTED 4b692: 206a 009c moveal %a2@(156),%a0 <== NOT EXECUTED 4b696: 4e90 jsr %a0@ <== NOT EXECUTED 4b698: 508f addql #8,%sp <== NOT EXECUTED 4b69a: 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 ); 4b69e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b6a0: 4eb9 0004 7b28 jsr 47b28 <_User_extensions_Thread_exitted> <== NOT EXECUTED _Internal_error_Occurred( 4b6a6: 4878 0006 pea 6 <== NOT EXECUTED 4b6aa: 4878 0001 pea 1 <== NOT EXECUTED 4b6ae: 42a7 clrl %sp@- <== NOT EXECUTED 4b6b0: 4eb9 0004 5ffc jsr 45ffc <_Internal_error_Occurred> <== NOT EXECUTED ... 00046f4c <_Thread_Handler_initialization>: /* * BOTH stacks hooks must be set or both must be NULL. * Do not allow mixture. */ if ( !( (!_Configuration_Table->stack_allocate_hook) 46f4c: 2079 0005 7f16 moveal 57f16 <_Configuration_Table>,%a0 <== NOT EXECUTED 46f52: 4aa8 0024 tstl %a0@(36) <== NOT EXECUTED 46f56: 57c1 seq %d1 <== NOT EXECUTED 46f58: 4aa8 0020 tstl %a0@(32) <== NOT EXECUTED 46f5c: 57c0 seq %d0 <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) , uint32_t maximum_proxies #endif ) { 46f5e: 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) 46f62: 4480 negl %d0 <== NOT EXECUTED 46f64: 4481 negl %d1 <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) , uint32_t maximum_proxies #endif ) { 46f66: 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) 46f68: b380 eorl %d1,%d0 <== NOT EXECUTED 46f6a: 4a00 tstb %d0 <== NOT EXECUTED 46f6c: 6710 beqs 46f7e <_Thread_Handler_initialization+0x32> <== NOT EXECUTED == (!_Configuration_Table->stack_free_hook) ) ) _Internal_error_Occurred( 46f6e: 4878 000f pea f <== NOT EXECUTED 46f72: 4878 0001 pea 1 <== NOT EXECUTED 46f76: 42a7 clrl %sp@- <== NOT EXECUTED 46f78: 4eb9 0004 5ffc jsr 45ffc <_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( 46f7e: 4280 clrl %d0 <== NOT EXECUTED 46f80: 1039 0005 62f2 moveb 562f2 ,%d0 <== NOT EXECUTED 46f86: 5280 addql #1,%d0 <== NOT EXECUTED 46f88: 2200 movel %d0,%d1 <== NOT EXECUTED 46f8a: e588 lsll #2,%d0 <== NOT EXECUTED 46f8c: e989 lsll #4,%d1 <== NOT EXECUTED 46f8e: 9280 subl %d0,%d1 <== NOT EXECUTED 46f90: 2f01 movel %d1,%sp@- <== NOT EXECUTED _Thread_Allocated_fp = NULL; #endif _Thread_Do_post_task_switch_extension = 0; _Thread_Maximum_extensions = maximum_extensions; 46f92: 41ee 000c lea %fp@(12),%a0 <== NOT EXECUTED 46f96: 23d0 0005 7f1e movel %a0@,57f1e <_Thread_Maximum_extensions> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_BAD_STACK_HOOK ); _Context_Switch_necessary = FALSE; 46f9c: 4200 clrb %d0 <== NOT EXECUTED _Thread_Do_post_task_switch_extension = 0; _Thread_Maximum_extensions = maximum_extensions; _Thread_Ticks_per_timeslice = ticks_per_timeslice; 46f9e: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED 46fa2: 23d0 0005 7e2c movel %a0@,57e2c <_Thread_Ticks_per_timeslice> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_BAD_STACK_HOOK ); _Context_Switch_necessary = FALSE; 46fa8: 13c0 0005 7f4a moveb %d0,57f4a <_Context_Switch_necessary> <== NOT EXECUTED _Thread_Executing = NULL; 46fae: 42b9 0005 7f3a clrl 57f3a <_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++ ) 46fb4: 4282 clrl %d2 <== NOT EXECUTED INTERNAL_ERROR_BAD_STACK_HOOK ); _Context_Switch_necessary = FALSE; _Thread_Executing = NULL; _Thread_Heir = NULL; 46fb6: 42b9 0005 7f0a clrl 57f0a <_Thread_Heir> <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) _Thread_Allocated_fp = NULL; 46fbc: 42b9 0005 7f02 clrl 57f02 <_Thread_Allocated_fp> <== NOT EXECUTED #endif _Thread_Do_post_task_switch_extension = 0; 46fc2: 42b9 0005 7f22 clrl 57f22 <_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( 46fc8: 4eb9 0004 7ec4 jsr 47ec4 <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED (PRIORITY_MAXIMUM + 1) * sizeof(Chain_Control) ); for ( index=0; index <= PRIORITY_MAXIMUM ; index++ ) 46fce: 1439 0005 62f2 moveb 562f2 ,%d2 <== NOT EXECUTED 46fd4: 2040 moveal %d0,%a0 <== NOT EXECUTED 46fd6: 588f addql #4,%sp <== NOT EXECUTED 46fd8: 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( 46fda: 23c0 0005 7e28 movel %d0,57e28 <_Thread_Ready_chain> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 46fe0: 2008 movel %a0,%d0 <== NOT EXECUTED 46fe2: 5880 addql #4,%d0 <== NOT EXECUTED 46fe4: 2080 movel %d0,%a0@ <== NOT EXECUTED (PRIORITY_MAXIMUM + 1) * sizeof(Chain_Control) ); for ( index=0; index <= PRIORITY_MAXIMUM ; index++ ) 46fe6: 5281 addql #1,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; 46fe8: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 46fec: 2148 0008 movel %a0,%a0@(8) <== NOT EXECUTED 46ff0: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 46ff6: b481 cmpl %d1,%d2 <== NOT EXECUTED 46ff8: 64e6 bccs 46fe0 <_Thread_Handler_initialization+0x94> <== NOT EXECUTED /* * Initialize this class of objects. */ _Objects_Initialize_information( 46ffa: 4878 0008 pea 8 <== NOT EXECUTED 46ffe: 4878 0001 pea 1 <== NOT EXECUTED 47002: 4878 0120 pea 120 <== NOT EXECUTED 47006: 4878 0001 pea 1 <== NOT EXECUTED 4700a: 4878 0001 pea 1 <== NOT EXECUTED 4700e: 4878 0001 pea 1 <== NOT EXECUTED 47012: 4879 0005 7fce pea 57fce <_Thread_Internal_information> <== NOT EXECUTED 47018: 4eb9 0004 6584 jsr 46584 <_Objects_Initialize_information> <== NOT EXECUTED FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4701e: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED /* * Initialize this class of objects. */ _Objects_Initialize_information( 47022: dffc 0000 001c addal #28,%sp <== NOT EXECUTED FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 47028: 4e5e unlk %fp <== NOT EXECUTED 4702a: 4e75 rts 00046dc8 <_Thread_Initialize>: Thread_CPU_budget_algorithms budget_algorithm, Thread_CPU_budget_algorithm_callout budget_callout, uint32_t isr_level, Objects_Name name ) { 46dc8: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 46dcc: 48d7 047c moveml %d2-%d6/%a2,%sp@ <== NOT EXECUTED 46dd0: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 46dd4: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 46dd8: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED 46ddc: 282e 001c movel %fp@(28),%d4 <== NOT EXECUTED 46de0: 2c2e 0024 movel %fp@(36),%d6 <== NOT EXECUTED 46de4: 162e 001b moveb %fp@(27),%d3 <== NOT EXECUTED 46de8: 1a2e 0023 moveb %fp@(35),%d5 <== NOT EXECUTED /* * Allocate and Initialize the stack for this thread. */ if ( !stack_area ) { 46dec: 4a81 tstl %d1 <== NOT EXECUTED 46dee: 6620 bnes 46e10 <_Thread_Initialize+0x48> <== NOT EXECUTED actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size ); 46df0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46df2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46df4: 4eb9 0004 76b8 jsr 476b8 <_Thread_Stack_Allocate> <== NOT EXECUTED if ( !actual_stack_size || actual_stack_size < stack_size ) 46dfa: 508f addql #8,%sp <== NOT EXECUTED 46dfc: 4a80 tstl %d0 <== NOT EXECUTED 46dfe: 6700 013e beqw 46f3e <_Thread_Initialize+0x176> <== NOT EXECUTED 46e02: b480 cmpl %d0,%d2 <== NOT EXECUTED 46e04: 6200 0138 bhiw 46f3e <_Thread_Initialize+0x176> <== NOT EXECUTED return FALSE; /* stack allocation failed */ stack = the_thread->Start.stack; 46e08: 222a 00cc movel %a2@(204),%d1 <== NOT EXECUTED the_thread->Start.core_allocated_stack = TRUE; 46e0c: 7401 moveq #1,%d2 <== NOT EXECUTED 46e0e: 6004 bras 46e14 <_Thread_Initialize+0x4c> <== NOT EXECUTED } else { stack = stack_area; actual_stack_size = stack_size; the_thread->Start.core_allocated_stack = FALSE; 46e10: 2002 movel %d2,%d0 <== NOT EXECUTED 46e12: 4202 clrb %d2 <== NOT EXECUTED 46e14: 1542 00be moveb %d2,%a2@(190) <== NOT EXECUTED Stack_Control *the_stack, void *starting_address, size_t size ) { the_stack->area = starting_address; 46e18: 2541 00c4 movel %d1,%a2@(196) <== NOT EXECUTED the_stack->size = size; 46e1c: 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 ) { 46e20: 4a03 tstb %d3 <== NOT EXECUTED 46e22: 6714 beqs 46e38 <_Thread_Initialize+0x70> <== NOT EXECUTED fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE ); 46e24: 4878 001c pea 1c <== NOT EXECUTED 46e28: 4eb9 0004 7eac jsr 47eac <_Workspace_Allocate> <== NOT EXECUTED if ( !fp_area ) { 46e2e: 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 ); 46e30: 2400 movel %d0,%d2 <== NOT EXECUTED if ( !fp_area ) { 46e32: 6606 bnes 46e3a <_Thread_Initialize+0x72> <== NOT EXECUTED 46e34: 6000 00fe braw 46f34 <_Thread_Initialize+0x16c> <== NOT EXECUTED _Thread_Stack_Free( the_thread ); return FALSE; 46e38: 4282 clrl %d2 <== NOT EXECUTED /* * Allocate the extensions area for this thread */ if ( _Thread_Maximum_extensions ) { 46e3a: 2039 0005 7f1e movel 57f1e <_Thread_Maximum_extensions>,%d0 <== NOT EXECUTED fp_area = _Context_Fp_start( fp_area, 0 ); } else fp_area = NULL; the_thread->fp_context = fp_area; 46e40: 2542 0104 movel %d2,%a2@(260) <== NOT EXECUTED the_thread->Start.fp_context = fp_area; 46e44: 2542 00c8 movel %d2,%a2@(200) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 46e48: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_watchdog->routine = routine; 46e4c: 42aa 0064 clrl %a2@(100) <== NOT EXECUTED the_watchdog->id = id; 46e50: 42aa 0068 clrl %a2@(104) <== NOT EXECUTED the_watchdog->user_data = user_data; 46e54: 42aa 006c clrl %a2@(108) <== NOT EXECUTED /* * Clear the libc reent hook. */ the_thread->libc_reent = NULL; 46e58: 42aa 0108 clrl %a2@(264) <== NOT EXECUTED /* * Allocate the extensions area for this thread */ if ( _Thread_Maximum_extensions ) { 46e5c: 4a80 tstl %d0 <== NOT EXECUTED 46e5e: 6718 beqs 46e78 <_Thread_Initialize+0xb0> <== NOT EXECUTED extensions_area = _Workspace_Allocate( 46e60: e588 lsll #2,%d0 <== NOT EXECUTED 46e62: 2040 moveal %d0,%a0 <== NOT EXECUTED 46e64: 4868 0004 pea %a0@(4) <== NOT EXECUTED 46e68: 4eb9 0004 7eac jsr 47eac <_Workspace_Allocate> <== NOT EXECUTED (_Thread_Maximum_extensions + 1) * sizeof( void * ) ); if ( !extensions_area ) { 46e6e: 588f addql #4,%sp <== NOT EXECUTED /* * Allocate the extensions area for this thread */ if ( _Thread_Maximum_extensions ) { extensions_area = _Workspace_Allocate( 46e70: 2600 movel %d0,%d3 <== NOT EXECUTED (_Thread_Maximum_extensions + 1) * sizeof( void * ) ); if ( !extensions_area ) { 46e72: 6606 bnes 46e7a <_Thread_Initialize+0xb2> <== NOT EXECUTED 46e74: 6000 00b0 braw 46f26 <_Thread_Initialize+0x15e> <== NOT EXECUTED (void) _Workspace_Free( fp_area ); #endif _Thread_Stack_Free( the_thread ); return FALSE; 46e78: 4283 clrl %d3 <== NOT EXECUTED } } else extensions_area = NULL; the_thread->extensions = (void **) extensions_area; 46e7a: 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 ) { 46e7e: 671a beqs 46e9a <_Thread_Initialize+0xd2> <== NOT EXECUTED 46e80: 4281 clrl %d1 <== NOT EXECUTED 46e82: 600a bras 46e8e <_Thread_Initialize+0xc6> <== NOT EXECUTED uint32_t i; for ( i = 0; i < (_Thread_Maximum_extensions + 1); i++ ) the_thread->extensions[i] = NULL; 46e84: 206a 0118 moveal %a2@(280),%a0 <== NOT EXECUTED 46e88: 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++ ) 46e8c: 5281 addql #1,%d1 <== NOT EXECUTED 46e8e: 2039 0005 7f1e movel 57f1e <_Thread_Maximum_extensions>,%d0 <== NOT EXECUTED 46e94: 5280 addql #1,%d0 <== NOT EXECUTED 46e96: b081 cmpl %d1,%d0 <== NOT EXECUTED 46e98: 62ea bhis 46e84 <_Thread_Initialize+0xbc> <== NOT EXECUTED /* * General initialization */ the_thread->Start.is_preemptible = is_preemptible; 46e9a: 1545 00ac moveb %d5,%a2@(172) <== NOT EXECUTED the_thread->Start.budget_algorithm = budget_algorithm; 46e9e: 2546 00ae movel %d6,%a2@(174) <== NOT EXECUTED the_thread->Start.budget_callout = budget_callout; switch ( budget_algorithm ) { 46ea2: 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; 46ea4: 256e 0028 00b2 movel %fp@(40),%a2@(178) <== NOT EXECUTED switch ( budget_algorithm ) { 46eaa: b086 cmpl %d6,%d0 <== NOT EXECUTED 46eac: 660a bnes 46eb8 <_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; 46eae: 41f9 0005 7e2c lea 57e2c <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED 46eb4: 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 ); 46eb8: 2f04 movel %d4,%sp@- <== NOT EXECUTED break; } the_thread->Start.isr_level = isr_level; the_thread->current_state = STATES_DORMANT; 46eba: 7001 moveq #1,%d0 <== NOT EXECUTED break; case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT: break; } the_thread->Start.isr_level = isr_level; 46ebc: 256e 002c 00b6 movel %fp@(44),%a2@(182) <== NOT EXECUTED the_thread->current_state = STATES_DORMANT; 46ec2: 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 ); 46ec6: 2f0a movel %a2,%sp@- <== NOT EXECUTED } the_thread->Start.isr_level = isr_level; the_thread->current_state = STATES_DORMANT; the_thread->Wait.queue = NULL; 46ec8: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED the_thread->resource_count = 0; 46ecc: 42aa 001c clrl %a2@(28) <== NOT EXECUTED the_thread->suspend_count = 0; 46ed0: 42aa 0070 clrl %a2@(112) <== NOT EXECUTED the_thread->real_priority = priority; 46ed4: 2544 0018 movel %d4,%a2@(24) <== NOT EXECUTED the_thread->Start.initial_priority = priority; 46ed8: 2544 00ba movel %d4,%a2@(186) <== NOT EXECUTED _Thread_Set_priority( the_thread, priority ); 46edc: 4eb9 0004 74e0 jsr 474e0 <_Thread_Set_priority> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 46ee2: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 46ee6: 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; 46eec: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 46ef0: 4280 clrl %d0 <== NOT EXECUTED 46ef2: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 46ef6: 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; 46efa: 42aa 0084 clrl %a2@(132) <== NOT EXECUTED the_thread->cpu_time_used.tv_nsec = 0; 46efe: 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 ); 46f02: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46f04: 4eb9 0004 7ba4 jsr 47ba4 <_User_extensions_Thread_create> <== NOT EXECUTED if ( !extension_status ) { 46f0a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46f10: 4a00 tstb %d0 <== NOT EXECUTED 46f12: 6704 beqs 46f18 <_Thread_Initialize+0x150> <== NOT EXECUTED 46f14: 7001 moveq #1,%d0 <== NOT EXECUTED 46f16: 6028 bras 46f40 <_Thread_Initialize+0x178> <== NOT EXECUTED if ( extensions_area ) 46f18: 4a83 tstl %d3 <== NOT EXECUTED 46f1a: 670a beqs 46f26 <_Thread_Initialize+0x15e> <== NOT EXECUTED (void) _Workspace_Free( extensions_area ); 46f1c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46f1e: 4eb9 0004 7e94 jsr 47e94 <_Workspace_Free> <== NOT EXECUTED 46f24: 588f addql #4,%sp <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) if ( fp_area ) 46f26: 4a82 tstl %d2 <== NOT EXECUTED 46f28: 670a beqs 46f34 <_Thread_Initialize+0x16c> <== NOT EXECUTED (void) _Workspace_Free( fp_area ); 46f2a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46f2c: 4eb9 0004 7e94 jsr 47e94 <_Workspace_Free> <== NOT EXECUTED 46f32: 588f addql #4,%sp <== NOT EXECUTED #endif _Thread_Stack_Free( the_thread ); 46f34: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46f36: 4eb9 0004 7704 jsr 47704 <_Thread_Stack_Free> <== NOT EXECUTED 46f3c: 588f addql #4,%sp <== NOT EXECUTED return FALSE; 46f3e: 4200 clrb %d0 <== NOT EXECUTED } return TRUE; } 46f40: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 46f46: 4e5e unlk %fp <== NOT EXECUTED 46f48: 4e75 rts <== NOT EXECUTED ... 0004a664 <_Thread_Load_environment>: */ void _Thread_Load_environment( Thread_Control *the_thread ) { 4a664: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a668: 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 ) { 4a66c: 2069 00c8 moveal %a1@(200),%a0 <== NOT EXECUTED 4a670: 4a88 tstl %a0 <== NOT EXECUTED 4a672: 6734 beqs 4a6a8 <_Thread_Load_environment+0x44> <== NOT EXECUTED the_thread->fp_context = the_thread->Start.fp_context; 4a674: 2348 0104 movel %a0,%a1@(260) <== NOT EXECUTED _Context_Initialize_fp( &the_thread->fp_context ); 4a678: 4281 clrl %d1 <== NOT EXECUTED 4a67a: 4280 clrl %d0 <== NOT EXECUTED 4a67c: 2141 0018 movel %d1,%a0@(24) <== NOT EXECUTED 4a680: 4241 clrw %d1 <== NOT EXECUTED 4a682: 2140 0014 movel %d0,%a0@(20) <== NOT EXECUTED 4a686: 3141 0002 movew %d1,%a0@(2) <== NOT EXECUTED 4a68a: 3141 0004 movew %d1,%a0@(4) <== NOT EXECUTED 4a68e: 3141 0006 movew %d1,%a0@(6) <== NOT EXECUTED 4a692: 3141 0008 movew %d1,%a0@(8) <== NOT EXECUTED 4a696: 3141 000a movew %d1,%a0@(10) <== NOT EXECUTED 4a69a: 4280 clrl %d0 <== NOT EXECUTED 4a69c: 4281 clrl %d1 <== NOT EXECUTED 4a69e: 4250 clrw %a0@ <== NOT EXECUTED 4a6a0: 2140 000c movel %d0,%a0@(12) <== NOT EXECUTED 4a6a4: 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( 4a6a8: 2069 00c0 moveal %a1@(192),%a0 <== NOT EXECUTED 4a6ac: 5988 subql #4,%a0 <== NOT EXECUTED 4a6ae: d1e9 00c4 addal %a1@(196),%a0 <== NOT EXECUTED 4a6b2: 2029 00b6 movel %a1@(182),%d0 <== NOT EXECUTED 4a6b6: 2348 0100 movel %a0,%a1@(256) <== NOT EXECUTED 4a6ba: e188 lsll #8,%d0 <== NOT EXECUTED 4a6bc: 0080 0000 3000 oril #12288,%d0 <== NOT EXECUTED } else #endif is_fp = false; the_thread->do_post_task_switch_extension = false; 4a6c2: 4201 clrb %d1 <== NOT EXECUTED the_thread->is_preemptible = the_thread->Start.is_preemptible; the_thread->budget_algorithm = the_thread->Start.budget_algorithm; 4a6c4: 2369 00ae 007c movel %a1@(174),%a1@(124) <== NOT EXECUTED the_thread->Start.isr_level, _Thread_Handler, is_fp ); } 4a6ca: 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; 4a6cc: 2369 00b2 0080 movel %a1@(178),%a1@(128) <== NOT EXECUTED } else #endif is_fp = false; the_thread->do_post_task_switch_extension = false; 4a6d2: 1341 0075 moveb %d1,%a1@(117) <== NOT EXECUTED the_thread->is_preemptible = the_thread->Start.is_preemptible; 4a6d6: 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( 4a6dc: 2340 00d0 movel %d0,%a1@(208) <== NOT EXECUTED 4a6e0: 20bc 0004 b5d0 movel #308688,%a0@ <== NOT EXECUTED the_thread->Start.isr_level, _Thread_Handler, is_fp ); } 4a6e6: 4e75 rts 0004a910 <_Thread_Ready>: */ void _Thread_Ready( Thread_Control *the_thread ) { 4a910: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4a914: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED ISR_Level level; Thread_Control *heir; _ISR_Disable( level ); 4a918: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED */ void _Thread_Ready( Thread_Control *the_thread ) { 4a91e: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED ISR_Level level; Thread_Control *heir; _ISR_Disable( level ); 4a922: 2002 movel %d2,%d0 <== NOT EXECUTED 4a924: 40c3 movew %sr,%d3 <== NOT EXECUTED 4a926: 8083 orl %d3,%d0 <== NOT EXECUTED 4a928: 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 ); 4a92a: 2268 008c moveal %a0@(140),%a1 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4a92e: 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; 4a930: 2468 0090 moveal %a0@(144),%a2 <== NOT EXECUTED 4a934: 5880 addql #4,%d0 <== NOT EXECUTED 4a936: 2080 movel %d0,%a0@ <== NOT EXECUTED old_last_node = the_chain->last; 4a938: 2669 0008 moveal %a1@(8),%a3 <== NOT EXECUTED 4a93c: 3228 0096 movew %a0@(150),%d1 <== NOT EXECUTED 4a940: 3012 movew %a2@,%d0 <== NOT EXECUTED 4a942: 8081 orl %d1,%d0 <== NOT EXECUTED 4a944: 3480 movew %d0,%a2@ <== NOT EXECUTED the_chain->last = the_node; 4a946: 2348 0008 movel %a0,%a1@(8) <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 4a94a: 3239 0005 7f30 movew 57f30 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 4a950: 3028 0094 movew %a0@(148),%d0 <== NOT EXECUTED 4a954: 8081 orl %d1,%d0 <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4a956: 214b 0004 movel %a3,%a0@(4) <== NOT EXECUTED 4a95a: 33c0 0005 7f30 movew %d0,57f30 <_Priority_Major_bit_map> <== NOT EXECUTED ISR_Level level; Thread_Control *heir; _ISR_Disable( level ); the_thread->current_state = STATES_READY; 4a960: 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; 4a964: 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 ); 4a966: 46c3 movew %d3,%sr <== NOT EXECUTED 4a968: 8483 orl %d3,%d2 <== NOT EXECUTED 4a96a: 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 ); 4a96c: 3039 0005 7f30 movew 57f30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 4a972: 4840 swap %d0 <== NOT EXECUTED 4a974: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 4a976: 41f9 0005 7fa0 lea 57fa0 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 4a97c: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 4a982: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 4a986: 4841 swap %d1 <== NOT EXECUTED 4a988: 04c1 ff1 %d1 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 4a98a: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 4a990: e988 lsll #4,%d0 <== NOT EXECUTED 4a992: d081 addl %d1,%d0 <== NOT EXECUTED 4a994: 2079 0005 7e28 moveal 57e28 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 4a99a: 2200 movel %d0,%d1 <== NOT EXECUTED 4a99c: e588 lsll #2,%d0 <== NOT EXECUTED 4a99e: 91c0 subal %d0,%a0 <== NOT EXECUTED 4a9a0: e989 lsll #4,%d1 <== NOT EXECUTED 4a9a2: 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 ); 4a9a6: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 4a9ac: 23c0 0005 7f0a movel %d0,57f0a <_Thread_Heir> <== NOT EXECUTED _Thread_Calculate_heir(); heir = _Thread_Heir; if ( !_Thread_Is_executing( heir ) && _Thread_Executing->is_preemptible ) 4a9b2: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 4a9b4: 670e beqs 4a9c4 <_Thread_Ready+0xb4> <== NOT EXECUTED 4a9b6: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 4a9ba: 6708 beqs 4a9c4 <_Thread_Ready+0xb4> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 4a9bc: 7001 moveq #1,%d0 <== NOT EXECUTED 4a9be: 13c0 0005 7f4a moveb %d0,57f4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 4a9c4: 46c3 movew %d3,%sr <== NOT EXECUTED } 4a9c6: 4cd7 0c0c moveml %sp@,%d2-%d3/%a2-%a3 <== NOT EXECUTED 4a9ca: 4e5e unlk %fp <== NOT EXECUTED 4a9cc: 4e75 rts <== NOT EXECUTED ... 0004b20c <_Thread_Reset>: void _Thread_Reset( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 4b20c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b210: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b212: 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; 4b216: 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; 4b21c: 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; 4b222: 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; 4b228: 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; 4b22c: 256a 00ae 007c movel %a2@(174),%a2@(124) <== NOT EXECUTED the_thread->budget_callout = the_thread->Start.budget_callout; 4b232: 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; 4b238: 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 ) ) { 4b23c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b23e: 4eb9 0004 7ad0 jsr 47ad0 <_Thread_queue_Extract_with_proxy> <== NOT EXECUTED 4b244: 588f addql #4,%sp <== NOT EXECUTED 4b246: 4a00 tstb %d0 <== NOT EXECUTED 4b248: 6614 bnes 4b25e <_Thread_Reset+0x52> <== NOT EXECUTED if ( _Watchdog_Is_active( &the_thread->Timer ) ) 4b24a: 7002 moveq #2,%d0 <== NOT EXECUTED 4b24c: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4b250: 660c bnes 4b25e <_Thread_Reset+0x52> <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4b252: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4b256: 4eb9 0004 85d8 jsr 485d8 <_Watchdog_Remove> <== NOT EXECUTED 4b25c: 588f addql #4,%sp <== NOT EXECUTED } if ( the_thread->current_priority != the_thread->Start.initial_priority ) { 4b25e: 202a 00ba movel %a2@(186),%d0 <== NOT EXECUTED 4b262: b0aa 0014 cmpl %a2@(20),%d0 <== NOT EXECUTED 4b266: 6718 beqs 4b280 <_Thread_Reset+0x74> <== NOT EXECUTED the_thread->real_priority = the_thread->Start.initial_priority; _Thread_Set_priority( the_thread, the_thread->Start.initial_priority ); 4b268: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED 4b26c: 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; 4b270: 2540 0018 movel %d0,%a2@(24) <== NOT EXECUTED _Thread_Set_priority( the_thread, the_thread->Start.initial_priority ); } } 4b274: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4b278: 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 ); 4b27a: 4ef9 0004 7ce4 jmp 47ce4 <_Thread_Set_priority> <== NOT EXECUTED } } 4b280: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4b284: 4e5e unlk %fp <== NOT EXECUTED 4b286: 4e75 rts 0004a9d0 <_Thread_Reset_timeslice>: * ready chain * select heir */ void _Thread_Reset_timeslice( void ) { 4a9d0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4a9d4: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; 4a9d8: 2479 0005 7f3a moveal 57f3a <_Thread_Executing>,%a2 <== NOT EXECUTED ready = executing->ready; _ISR_Disable( level ); 4a9de: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; ready = executing->ready; 4a9e4: 266a 008c moveal %a2@(140),%a3 <== NOT EXECUTED _ISR_Disable( level ); 4a9e8: 2002 movel %d2,%d0 <== NOT EXECUTED 4a9ea: 40c1 movew %sr,%d1 <== NOT EXECUTED 4a9ec: 8081 orl %d1,%d0 <== NOT EXECUTED 4a9ee: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 4a9f0: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 4a9f4: b093 cmpl %a3@,%d0 <== NOT EXECUTED 4a9f6: 6604 bnes 4a9fc <_Thread_Reset_timeslice+0x2c> <== NOT EXECUTED _ISR_Enable( level ); 4a9f8: 46c1 movew %d1,%sr <== NOT EXECUTED 4a9fa: 6040 bras 4aa3c <_Thread_Reset_timeslice+0x6c> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 4a9fc: 2052 moveal %a2@,%a0 <== NOT EXECUTED previous = the_node->previous; 4a9fe: 226a 0004 moveal %a2@(4),%a1 <== NOT EXECUTED next->previous = previous; previous->next = next; 4aa02: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4aa04: 200b movel %a3,%d0 <== NOT EXECUTED 4aa06: 5880 addql #4,%d0 <== NOT EXECUTED 4aa08: 2480 movel %d0,%a2@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4aa0a: 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; 4aa0e: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 4aa12: 274a 0008 movel %a2,%a3@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4aa16: 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; 4aa1a: 208a movel %a2,%a0@ <== NOT EXECUTED return; } _Chain_Extract_unprotected( &executing->Object.Node ); _Chain_Append_unprotected( ready, &executing->Object.Node ); _ISR_Flash( level ); 4aa1c: 2002 movel %d2,%d0 <== NOT EXECUTED 4aa1e: 46c1 movew %d1,%sr <== NOT EXECUTED 4aa20: 8081 orl %d1,%d0 <== NOT EXECUTED 4aa22: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( executing ) ) 4aa24: b5f9 0005 7f0a cmpal 57f0a <_Thread_Heir>,%a2 <== NOT EXECUTED 4aa2a: 6606 bnes 4aa32 <_Thread_Reset_timeslice+0x62> <== NOT EXECUTED _Thread_Heir = (Thread_Control *) ready->first; 4aa2c: 23d3 0005 7f0a movel %a3@,57f0a <_Thread_Heir> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 4aa32: 7001 moveq #1,%d0 <== NOT EXECUTED 4aa34: 13c0 0005 7f4a moveb %d0,57f4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 4aa3a: 46c1 movew %d1,%sr <== NOT EXECUTED } 4aa3c: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 4aa40: 4e5e unlk %fp <== NOT EXECUTED 4aa42: 4e75 rts 00047c48 <_Thread_Restart>: bool _Thread_Restart( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 47c48: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47c4c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47c4e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( !_States_Is_dormant( the_thread->current_state ) ) { 47c52: 7001 moveq #1,%d0 <== NOT EXECUTED bool _Thread_Restart( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 47c54: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !_States_Is_dormant( the_thread->current_state ) ) { 47c56: c0aa 0010 andl %a2@(16),%d0 <== NOT EXECUTED 47c5a: 4a00 tstb %d0 <== NOT EXECUTED 47c5c: 6704 beqs 47c62 <_Thread_Restart+0x1a> <== NOT EXECUTED 47c5e: 4202 clrb %d2 <== NOT EXECUTED 47c60: 6072 bras 47cd4 <_Thread_Restart+0x8c> <== NOT EXECUTED _Thread_Set_transient( the_thread ); 47c62: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47c64: 4eb9 0004 7e3c jsr 47e3c <_Thread_Set_transient> <== NOT EXECUTED _Thread_Reset( the_thread, pointer_argument, numeric_argument ); 47c6a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 47c6e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 47c72: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47c74: 4eb9 0004 b20c jsr 4b20c <_Thread_Reset> <== NOT EXECUTED _Thread_Load_environment( the_thread ); 47c7a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47c7c: 4eb9 0004 aea0 jsr 4aea0 <_Thread_Load_environment> <== NOT EXECUTED _Thread_Ready( the_thread ); 47c82: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47c84: 4eb9 0004 b14c jsr 4b14c <_Thread_Ready> <== NOT EXECUTED _User_extensions_Thread_restart( the_thread ); 47c8a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47c8c: 4eb9 0004 841c jsr 4841c <_User_extensions_Thread_restart> <== NOT EXECUTED if ( _Thread_Is_executing ( the_thread ) ) 47c92: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 47c98: b5f9 0005 9882 cmpal 59882 <_Thread_Executing>,%a2 <== NOT EXECUTED 47c9e: 6704 beqs 47ca4 <_Thread_Restart+0x5c> <== NOT EXECUTED 47ca0: 7401 moveq #1,%d2 <== NOT EXECUTED 47ca2: 6030 bras 47cd4 <_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 ) 47ca4: 4aaa 0104 tstl %a2@(260) <== NOT EXECUTED 47ca8: 670c beqs 47cb6 <_Thread_Restart+0x6e> <== NOT EXECUTED _Context_Restore_fp( &_Thread_Executing->fp_context ); 47caa: 486a 0104 pea %a2@(260) <== NOT EXECUTED 47cae: 4eb9 0004 87c0 jsr 487c0 <_CPU_Context_restore_fp> <== NOT EXECUTED 47cb4: 588f addql #4,%sp <== NOT EXECUTED #endif _CPU_Context_Restart_self( &_Thread_Executing->Registers ); 47cb6: 2079 0005 9882 moveal 59882 <_Thread_Executing>,%a0 <== NOT EXECUTED 47cbc: 2228 00d0 movel %a0@(208),%d1 <== NOT EXECUTED 47cc0: 2028 0100 movel %a0@(256),%d0 <== NOT EXECUTED 47cc4: 46c1 movew %d1,%sr <== NOT EXECUTED 47cc6: 2e40 moveal %d0,%sp <== NOT EXECUTED 47cc8: 4e75 rts <== NOT EXECUTED 47cca: 7401 moveq #1,%d2 <== NOT EXECUTED 47ccc: 2140 0100 movel %d0,%a0@(256) <== NOT EXECUTED 47cd0: 2141 00d0 movel %d1,%a0@(208) <== NOT EXECUTED return TRUE; } return FALSE; } 47cd4: 1002 moveb %d2,%d0 <== NOT EXECUTED 47cd6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47cda: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47cde: 4e5e unlk %fp <== NOT EXECUTED 47ce0: 4e75 rts <== NOT EXECUTED ... 000486a8 <_Thread_Resume>: void _Thread_Resume( Thread_Control *the_thread, bool force ) { 486a8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 486ac: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 486b0: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 486b4: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED ISR_Level level; States_Control current_state; _ISR_Disable( level ); 486b8: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 486be: 40c2 movew %sr,%d2 <== NOT EXECUTED 486c0: 8282 orl %d2,%d1 <== NOT EXECUTED 486c2: 46c1 movew %d1,%sr <== NOT EXECUTED if ( force == TRUE ) 486c4: 4a00 tstb %d0 <== NOT EXECUTED 486c6: 6706 beqs 486ce <_Thread_Resume+0x26> <== NOT EXECUTED the_thread->suspend_count = 0; 486c8: 42ab 0070 clrl %a3@(112) <== NOT EXECUTED 486cc: 6004 bras 486d2 <_Thread_Resume+0x2a> <== NOT EXECUTED else the_thread->suspend_count--; 486ce: 53ab 0070 subql #1,%a3@(112) <== NOT EXECUTED if ( the_thread->suspend_count > 0 ) { 486d2: 4aab 0070 tstl %a3@(112) <== NOT EXECUTED 486d6: 6706 beqs 486de <_Thread_Resume+0x36> <== NOT EXECUTED _ISR_Enable( level ); 486d8: 46c2 movew %d2,%sr <== NOT EXECUTED 486da: 6000 008a braw 48766 <_Thread_Resume+0xbe> <== NOT EXECUTED return; } current_state = the_thread->current_state; 486de: 202b 0010 movel %a3@(16),%d0 <== NOT EXECUTED if ( current_state & STATES_SUSPENDED ) { 486e2: 0800 0001 btst #1,%d0 <== NOT EXECUTED 486e6: 677c beqs 48764 <_Thread_Resume+0xbc> <== NOT EXECUTED 486e8: 72fd moveq #-3,%d1 <== NOT EXECUTED 486ea: c081 andl %d1,%d0 <== NOT EXECUTED current_state = 486ec: 2740 0010 movel %d0,%a3@(16) <== NOT EXECUTED the_thread->current_state = _States_Clear(STATES_SUSPENDED, current_state); if ( _States_Is_ready( current_state ) ) { 486f0: 6672 bnes 48764 <_Thread_Resume+0xbc> <== NOT EXECUTED _Priority_Add_to_bit_map( &the_thread->Priority_map ); _Chain_Append_unprotected(the_thread->ready, &the_thread->Object.Node); 486f2: 206b 008c moveal %a3@(140),%a0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 486f6: 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; 486f8: 226b 0090 moveal %a3@(144),%a1 <== NOT EXECUTED 486fc: 5880 addql #4,%d0 <== NOT EXECUTED 486fe: 2680 movel %d0,%a3@ <== NOT EXECUTED old_last_node = the_chain->last; 48700: 2468 0008 moveal %a0@(8),%a2 <== NOT EXECUTED 48704: 322b 0096 movew %a3@(150),%d1 <== NOT EXECUTED 48708: 3011 movew %a1@,%d0 <== NOT EXECUTED 4870a: 8081 orl %d1,%d0 <== NOT EXECUTED 4870c: 3280 movew %d0,%a1@ <== NOT EXECUTED the_chain->last = the_node; 4870e: 214b 0008 movel %a3,%a0@(8) <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 48712: 3239 0006 2248 movew 62248 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 48718: 302b 0094 movew %a3@(148),%d0 <== NOT EXECUTED 4871c: 8081 orl %d1,%d0 <== NOT EXECUTED 4871e: 33c0 0006 2248 movew %d0,62248 <_Priority_Major_bit_map> <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 48724: 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; 48728: 248b movel %a3,%a2@ <== NOT EXECUTED _ISR_Flash( level ); 4872a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 48730: 46c2 movew %d2,%sr <== NOT EXECUTED 48732: 8082 orl %d2,%d0 <== NOT EXECUTED 48734: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_thread->current_priority < _Thread_Heir->current_priority ) { 48736: 2079 0006 2222 moveal 62222 <_Thread_Heir>,%a0 <== NOT EXECUTED 4873c: 202b 0014 movel %a3@(20),%d0 <== NOT EXECUTED 48740: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 48744: 641e bccs 48764 <_Thread_Resume+0xbc> <== NOT EXECUTED _Thread_Heir = the_thread; if ( _Thread_Executing->is_preemptible || 48746: 2079 0006 2252 moveal 62252 <_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; 4874c: 23cb 0006 2222 movel %a3,62222 <_Thread_Heir> <== NOT EXECUTED if ( _Thread_Executing->is_preemptible || 48752: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 48756: 6604 bnes 4875c <_Thread_Resume+0xb4> <== NOT EXECUTED 48758: 4a80 tstl %d0 <== NOT EXECUTED 4875a: 6608 bnes 48764 <_Thread_Resume+0xbc> <== NOT EXECUTED the_thread->current_priority == 0 ) _Context_Switch_necessary = TRUE; 4875c: 7201 moveq #1,%d1 <== NOT EXECUTED 4875e: 13c1 0006 2262 moveb %d1,62262 <_Context_Switch_necessary> <== NOT EXECUTED } } } _ISR_Enable( level ); 48764: 46c2 movew %d2,%sr <== NOT EXECUTED } 48766: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 4876a: 4e5e unlk %fp <== NOT EXECUTED 4876c: 4e75 rts <== NOT EXECUTED ... 000474e0 <_Thread_Set_priority>: void _Thread_Set_priority( Thread_Control *the_thread, Priority_Control new_priority ) { 474e0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 474e4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 474e8: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 474ec: 48d7 003c moveml %d2-%d5,%sp@ <== NOT EXECUTED the_thread->current_priority = new_priority; the_thread->ready = &_Thread_Ready_chain[ new_priority ]; 474f0: 2800 movel %d0,%d4 <== NOT EXECUTED 474f2: 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 ); 474f4: 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 ); 474f6: 720f moveq #15,%d1 <== NOT EXECUTED void _Thread_Set_priority( Thread_Control *the_thread, Priority_Control new_priority ) { the_thread->current_priority = new_priority; 474f8: 2140 0014 movel %d0,%a0@(20) <== NOT EXECUTED 474fc: c081 andl %d1,%d0 <== NOT EXECUTED the_thread->ready = &_Thread_Ready_chain[ new_priority ]; 474fe: e58c lsll #2,%d4 <== NOT EXECUTED 47500: 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 ); 47502: 323c 8000 movew #-32768,%d1 <== NOT EXECUTED 47506: 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 ); 47508: e88a lsrl #4,%d2 <== NOT EXECUTED minor = _Priority_Minor( new_priority ); the_priority_map->minor = 4750a: 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 ); 47510: 2a01 movel %d1,%d5 <== NOT EXECUTED 47512: d6b9 0005 7e28 addl 57e28 <_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 ); 47518: 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 = 4751a: 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 ); 4751c: 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 = 4751e: 0682 0005 7fa0 addil #360352,%d2 <== NOT EXECUTED mask = _Priority_Mask( major ); the_priority_map->ready_major = mask; the_priority_map->block_major = ~mask; mask = _Priority_Mask( minor ); 47524: 2005 movel %d5,%d0 <== NOT EXECUTED the_priority_map->ready_minor = mask; 47526: 3145 0096 movew %d5,%a0@(150) <== NOT EXECUTED 4752a: 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; 4752e: 3141 0094 movew %d1,%a0@(148) <== NOT EXECUTED the_priority_map->block_major = ~mask; 47532: 4681 notl %d1 <== NOT EXECUTED Priority_Bit_map_control mask; major = _Priority_Major( new_priority ); minor = _Priority_Minor( new_priority ); the_priority_map->minor = 47534: 2142 0090 movel %d2,%a0@(144) <== NOT EXECUTED _Priority_Initialize_information( &the_thread->Priority_map, new_priority ); } 47538: 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; 4753c: 4680 notl %d0 <== NOT EXECUTED 4753e: 4e5e unlk %fp <== NOT EXECUTED 47540: 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; 47544: 3141 0098 movew %d1,%a0@(152) <== NOT EXECUTED 47548: 4e75 rts <== NOT EXECUTED ... 0004754c <_Thread_Set_state>: void _Thread_Set_state( Thread_Control *the_thread, States_Control state ) { 4754c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47550: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47552: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 47556: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; Chain_Control *ready; ready = the_thread->ready; _ISR_Disable( level ); 47558: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED void _Thread_Set_state( Thread_Control *the_thread, States_Control state ) { 4755e: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED ISR_Level level; Chain_Control *ready; ready = the_thread->ready; 47562: 226a 008c moveal %a2@(140),%a1 <== NOT EXECUTED _ISR_Disable( level ); 47566: 40c2 movew %sr,%d2 <== NOT EXECUTED 47568: 8082 orl %d2,%d0 <== NOT EXECUTED 4756a: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Is_ready( the_thread->current_state ) ) { 4756c: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 47570: 670c beqs 4757e <_Thread_Set_state+0x32> <== NOT EXECUTED the_thread->current_state = 47572: 8280 orl %d0,%d1 <== NOT EXECUTED 47574: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED _States_Set( state, the_thread->current_state ); _ISR_Enable( level ); 47578: 46c2 movew %d2,%sr <== NOT EXECUTED 4757a: 6000 00b2 braw 4762e <_Thread_Set_state+0xe2> <== NOT EXECUTED return; } the_thread->current_state = state; if ( _Chain_Has_only_one_node( ready ) ) { 4757e: 2029 0008 movel %a1@(8),%d0 <== NOT EXECUTED _States_Set( state, the_thread->current_state ); _ISR_Enable( level ); return; } the_thread->current_state = state; 47582: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 47586: b091 cmpl %a1@,%d0 <== NOT EXECUTED 47588: 6634 bnes 475be <_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; 4758a: 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); 4758e: 2009 movel %a1,%d0 <== NOT EXECUTED 47590: 5880 addql #4,%d0 <== NOT EXECUTED 47592: 2280 movel %d0,%a1@ <== NOT EXECUTED 47594: 3210 movew %a0@,%d1 <== NOT EXECUTED 47596: 302a 009a movew %a2@(154),%d0 <== NOT EXECUTED 4759a: c280 andl %d0,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4759c: 2349 0008 movel %a1,%a1@(8) <== NOT EXECUTED 475a0: 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; 475a2: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED if ( *the_priority_map->minor == 0 ) 475a6: 4a41 tstw %d1 <== NOT EXECUTED 475a8: 6620 bnes 475ca <_Thread_Set_state+0x7e> <== NOT EXECUTED _Priority_Major_bit_map &= the_priority_map->block_major; 475aa: 3239 0005 7f30 movew 57f30 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 475b0: 302a 0098 movew %a2@(152),%d0 <== NOT EXECUTED 475b4: c081 andl %d1,%d0 <== NOT EXECUTED 475b6: 33c0 0005 7f30 movew %d0,57f30 <_Priority_Major_bit_map> <== NOT EXECUTED 475bc: 600c bras 475ca <_Thread_Set_state+0x7e> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 475be: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 475c0: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED next->previous = previous; previous->next = next; 475c4: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 475c6: 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 ); 475ca: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 475d0: 46c2 movew %d2,%sr <== NOT EXECUTED 475d2: 8082 orl %d2,%d0 <== NOT EXECUTED 475d4: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( the_thread ) ) 475d6: b5f9 0005 7f0a cmpal 57f0a <_Thread_Heir>,%a2 <== NOT EXECUTED 475dc: 663e bnes 4761c <_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 ); 475de: 3039 0005 7f30 movew 57f30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 475e4: 4840 swap %d0 <== NOT EXECUTED 475e6: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 475e8: 41f9 0005 7fa0 lea 57fa0 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 475ee: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 475f4: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 475f8: 4841 swap %d1 <== NOT EXECUTED 475fa: 04c1 ff1 %d1 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 475fc: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 47602: e988 lsll #4,%d0 <== NOT EXECUTED 47604: d081 addl %d1,%d0 <== NOT EXECUTED 47606: 2079 0005 7e28 moveal 57e28 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 4760c: 2200 movel %d0,%d1 <== NOT EXECUTED 4760e: e588 lsll #2,%d0 <== NOT EXECUTED 47610: e989 lsll #4,%d1 <== NOT EXECUTED 47612: 91c0 subal %d0,%a0 <== NOT EXECUTED 47614: d1c1 addal %d1,%a0 <== NOT EXECUTED 47616: 23d0 0005 7f0a movel %a0@,57f0a <_Thread_Heir> <== NOT EXECUTED _Thread_Calculate_heir(); if ( _Thread_Is_executing( the_thread ) ) 4761c: b5f9 0005 7f3a cmpal 57f3a <_Thread_Executing>,%a2 <== NOT EXECUTED 47622: 6608 bnes 4762c <_Thread_Set_state+0xe0> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 47624: 7001 moveq #1,%d0 <== NOT EXECUTED 47626: 13c0 0005 7f4a moveb %d0,57f4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 4762c: 46c2 movew %d2,%sr <== NOT EXECUTED } 4762e: 241f movel %sp@+,%d2 <== NOT EXECUTED 47630: 245f moveal %sp@+,%a2 <== NOT EXECUTED 47632: 4e5e unlk %fp <== NOT EXECUTED 47634: 4e75 rts <== NOT EXECUTED ... 00047638 <_Thread_Set_transient>: */ void _Thread_Set_transient( Thread_Control *the_thread ) { 47638: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4763c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4763e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 47642: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; uint32_t old_state; Chain_Control *ready; ready = the_thread->ready; _ISR_Disable( level ); 47644: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED { ISR_Level level; uint32_t old_state; Chain_Control *ready; ready = the_thread->ready; 4764a: 226a 008c moveal %a2@(140),%a1 <== NOT EXECUTED _ISR_Disable( level ); 4764e: 40c2 movew %sr,%d2 <== NOT EXECUTED 47650: 8082 orl %d2,%d0 <== NOT EXECUTED 47652: 46c0 movew %d0,%sr <== NOT EXECUTED old_state = the_thread->current_state; 47654: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED the_thread->current_state = _States_Set( STATES_TRANSIENT, old_state ); 47658: 7204 moveq #4,%d1 <== NOT EXECUTED 4765a: 8280 orl %d0,%d1 <== NOT EXECUTED 4765c: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED if ( _States_Is_ready( old_state ) ) { 47660: 4a80 tstl %d0 <== NOT EXECUTED 47662: 6648 bnes 476ac <_Thread_Set_transient+0x74> <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 47664: 2029 0008 movel %a1@(8),%d0 <== NOT EXECUTED 47668: b091 cmpl %a1@,%d0 <== NOT EXECUTED 4766a: 6634 bnes 476a0 <_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; 4766c: 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); 47670: 2209 movel %a1,%d1 <== NOT EXECUTED 47672: 5881 addql #4,%d1 <== NOT EXECUTED 47674: 2281 movel %d1,%a1@ <== NOT EXECUTED 47676: 3210 movew %a0@,%d1 <== NOT EXECUTED 47678: 302a 009a movew %a2@(154),%d0 <== NOT EXECUTED 4767c: c280 andl %d0,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4767e: 2349 0008 movel %a1,%a1@(8) <== NOT EXECUTED 47682: 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; 47684: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED if ( *the_priority_map->minor == 0 ) 47688: 4a41 tstw %d1 <== NOT EXECUTED 4768a: 6620 bnes 476ac <_Thread_Set_transient+0x74> <== NOT EXECUTED _Priority_Major_bit_map &= the_priority_map->block_major; 4768c: 302a 0098 movew %a2@(152),%d0 <== NOT EXECUTED 47690: 3239 0005 7f30 movew 57f30 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 47696: c081 andl %d1,%d0 <== NOT EXECUTED 47698: 33c0 0005 7f30 movew %d0,57f30 <_Priority_Major_bit_map> <== NOT EXECUTED 4769e: 600c bras 476ac <_Thread_Set_transient+0x74> <== NOT EXECUTED { Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; 476a0: 226a 0004 moveal %a2@(4),%a1 <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 476a4: 2052 moveal %a2@,%a0 <== NOT EXECUTED previous = the_node->previous; next->previous = previous; previous->next = next; 476a6: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 476a8: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED } else _Chain_Extract_unprotected( &the_thread->Object.Node ); } _ISR_Enable( level ); 476ac: 46c2 movew %d2,%sr <== NOT EXECUTED } 476ae: 241f movel %sp@+,%d2 <== NOT EXECUTED 476b0: 245f moveal %sp@+,%a2 <== NOT EXECUTED 476b2: 4e5e unlk %fp <== NOT EXECUTED 476b4: 4e75 rts <== NOT EXECUTED ... 000476b8 <_Thread_Stack_Allocate>: size_t _Thread_Stack_Allocate( Thread_Control *the_thread, size_t stack_size ) { 476b8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 476bc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 476be: 2039 0005 62ee movel 562ee ,%d0 <== NOT EXECUTED 476c4: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 476c8: b082 cmpl %d2,%d0 <== NOT EXECUTED 476ca: 6302 blss 476ce <_Thread_Stack_Allocate+0x16> <== NOT EXECUTED 476cc: 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 ) { 476ce: 2079 0005 7f16 moveal 57f16 <_Configuration_Table>,%a0 <== NOT EXECUTED 476d4: 2068 0020 moveal %a0@(32),%a0 <== NOT EXECUTED 476d8: 4a88 tstl %a0 <== NOT EXECUTED 476da: 6706 beqs 476e2 <_Thread_Stack_Allocate+0x2a> <== NOT EXECUTED stack_addr = (*_Configuration_Table->stack_allocate_hook)( the_stack_size ); 476dc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 476de: 4e90 jsr %a0@ <== NOT EXECUTED 476e0: 6008 bras 476ea <_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 ); 476e2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 476e4: 4eb9 0004 7eac jsr 47eac <_Workspace_Allocate> <== NOT EXECUTED 476ea: 2200 movel %d0,%d1 <== NOT EXECUTED } if ( !stack_addr ) 476ec: 56c0 sne %d0 <== NOT EXECUTED 476ee: 49c0 extbl %d0 <== NOT EXECUTED the_stack_size = 0; the_thread->Start.stack = stack_addr; return the_stack_size; } 476f0: c082 andl %d2,%d0 <== NOT EXECUTED } if ( !stack_addr ) the_stack_size = 0; the_thread->Start.stack = stack_addr; 476f2: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED return the_stack_size; } 476f6: 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 ); 476fa: 588f addql #4,%sp <== NOT EXECUTED the_stack_size = 0; the_thread->Start.stack = stack_addr; return the_stack_size; } 476fc: 4e5e unlk %fp <== NOT EXECUTED } if ( !stack_addr ) the_stack_size = 0; the_thread->Start.stack = stack_addr; 476fe: 2141 00cc movel %d1,%a0@(204) <== NOT EXECUTED return the_stack_size; } 47702: 4e75 rts 00047704 <_Thread_Stack_Free>: */ void _Thread_Stack_Free( Thread_Control *the_thread ) { 47704: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47708: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4770a: 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 ) 4770e: 4a2a 00be tstb %a2@(190) <== NOT EXECUTED 47712: 672a beqs 4773e <_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 ) 47714: 2079 0005 7f16 moveal 57f16 <_Configuration_Table>,%a0 <== NOT EXECUTED 4771a: 2028 0024 movel %a0@(36),%d0 <== NOT EXECUTED 4771e: 670e beqs 4772e <_Thread_Stack_Free+0x2a> <== NOT EXECUTED (*_Configuration_Table->stack_free_hook)( 47720: 2240 moveal %d0,%a1 <== NOT EXECUTED 47722: 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 ); } 47728: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4772a: 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)( 4772c: 4ed1 jmp %a1@ <== NOT EXECUTED the_thread->Start.Initial_stack.area ); else _Workspace_Free( the_thread->Start.Initial_stack.area ); 4772e: 2d6a 00c4 0008 movel %a2@(196),%fp@(8) <== NOT EXECUTED } 47734: 245f moveal %sp@+,%a2 <== NOT EXECUTED 47736: 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 ); 47738: 4ef9 0004 7e94 jmp 47e94 <_Workspace_Free> <== NOT EXECUTED } 4773e: 245f moveal %sp@+,%a2 <== NOT EXECUTED 47740: 4e5e unlk %fp <== NOT EXECUTED 47742: 4e75 rts 00047798 <_Thread_Start>: Thread_Start_types the_prototype, void *entry_point, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 47798: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4779c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4779e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( _States_Is_dormant( the_thread->current_state ) ) { 477a2: 7001 moveq #1,%d0 <== NOT EXECUTED 477a4: c0aa 0010 andl %a2@(16),%d0 <== NOT EXECUTED 477a8: 6738 beqs 477e2 <_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 ); 477aa: 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; 477ac: 256e 0010 009c movel %fp@(16),%a2@(156) <== NOT EXECUTED the_thread->Start.prototype = the_prototype; 477b2: 256e 000c 00a0 movel %fp@(12),%a2@(160) <== NOT EXECUTED the_thread->Start.pointer_argument = pointer_argument; 477b8: 256e 0014 00a4 movel %fp@(20),%a2@(164) <== NOT EXECUTED the_thread->Start.numeric_argument = numeric_argument; 477be: 256e 0018 00a8 movel %fp@(24),%a2@(168) <== NOT EXECUTED _Thread_Load_environment( the_thread ); 477c4: 4eb9 0004 a664 jsr 4a664 <_Thread_Load_environment> <== NOT EXECUTED _Thread_Ready( the_thread ); 477ca: 2f0a movel %a2,%sp@- <== NOT EXECUTED 477cc: 4eb9 0004 a910 jsr 4a910 <_Thread_Ready> <== NOT EXECUTED _User_extensions_Thread_start( the_thread ); 477d2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 477d4: 4eb9 0004 7c18 jsr 47c18 <_User_extensions_Thread_start> <== NOT EXECUTED 477da: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 477e0: 7001 moveq #1,%d0 <== NOT EXECUTED return true; } return false; } 477e2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 477e6: 4e5e unlk %fp <== NOT EXECUTED 477e8: 4e75 rts <== NOT EXECUTED ... 00047744 <_Thread_Start_multitasking>: 47744: 7003 moveq #3,%d0 <== NOT EXECUTED _System_state_Set( SYSTEM_STATE_UP ); _Context_Switch_necessary = FALSE; _Thread_Executing = _Thread_Heir; 47746: 2079 0005 7f0a moveal 57f0a <_Thread_Heir>,%a0 <== NOT EXECUTED 4774c: 23c0 0005 800e movel %d0,5800e <_System_state_Current> <== NOT EXECUTED * the system is shut down. */ _System_state_Set( SYSTEM_STATE_UP ); _Context_Switch_necessary = FALSE; 47752: 4200 clrb %d0 <== NOT EXECUTED * ready chain * select heir */ void _Thread_Start_multitasking( void ) { 47754: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED * the system is shut down. */ _System_state_Set( SYSTEM_STATE_UP ); _Context_Switch_necessary = FALSE; 47758: 13c0 0005 7f4a moveb %d0,57f4a <_Context_Switch_necessary> <== NOT EXECUTED _Thread_Executing = _Thread_Heir; 4775e: 23c8 0005 7f3a movel %a0,57f3a <_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 ) 47764: 4aa8 0104 tstl %a0@(260) <== NOT EXECUTED 47768: 670c beqs 47776 <_Thread_Start_multitasking+0x32> <== NOT EXECUTED _Context_Restore_fp( &_Thread_Heir->fp_context ); 4776a: 4868 0104 pea %a0@(260) <== NOT EXECUTED 4776e: 4eb9 0004 7f84 jsr 47f84 <_CPU_Context_restore_fp> <== NOT EXECUTED 47774: 588f addql #4,%sp <== NOT EXECUTED #endif _Context_Switch( &_Thread_BSP_context, &_Thread_Heir->Registers ); 47776: 2039 0005 7f0a movel 57f0a <_Thread_Heir>,%d0 <== NOT EXECUTED 4777c: 0680 0000 00d0 addil #208,%d0 <== NOT EXECUTED 47782: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47784: 4879 0005 7e48 pea 57e48 <_Thread_BSP_context> <== NOT EXECUTED 4778a: 4eb9 0004 7f68 jsr 47f68 <_CPU_Context_switch> <== NOT EXECUTED 47790: 508f addql #8,%sp <== NOT EXECUTED } 47792: 4e5e unlk %fp <== NOT EXECUTED 47794: 4e75 rts <== NOT EXECUTED ... 000477ec <_Thread_Suspend>: */ void _Thread_Suspend( Thread_Control *the_thread ) { 477ec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 477f0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 477f2: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 477f6: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; Chain_Control *ready; ready = the_thread->ready; _ISR_Disable( level ); 477f8: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED ) { ISR_Level level; Chain_Control *ready; ready = the_thread->ready; 477fe: 226a 008c moveal %a2@(140),%a1 <== NOT EXECUTED _ISR_Disable( level ); 47802: 40c2 movew %sr,%d2 <== NOT EXECUTED 47804: 8082 orl %d2,%d0 <== NOT EXECUTED 47806: 46c0 movew %d0,%sr <== NOT EXECUTED the_thread->suspend_count++; 47808: 52aa 0070 addql #1,%a2@(112) <== NOT EXECUTED if ( !_States_Is_ready( the_thread->current_state ) ) { 4780c: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 47810: 670e beqs 47820 <_Thread_Suspend+0x34> <== NOT EXECUTED the_thread->current_state = 47812: 7202 moveq #2,%d1 <== NOT EXECUTED 47814: 8280 orl %d0,%d1 <== NOT EXECUTED 47816: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED _States_Set( STATES_SUSPENDED, the_thread->current_state ); _ISR_Enable( level ); 4781a: 46c2 movew %d2,%sr <== NOT EXECUTED 4781c: 6000 00b4 braw 478d2 <_Thread_Suspend+0xe6> <== NOT EXECUTED return; } the_thread->current_state = STATES_SUSPENDED; if ( _Chain_Has_only_one_node( ready ) ) { 47820: 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; 47824: 7002 moveq #2,%d0 <== NOT EXECUTED 47826: 2540 0010 movel %d0,%a2@(16) <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 4782a: b291 cmpl %a1@,%d1 <== NOT EXECUTED 4782c: 6634 bnes 47862 <_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; 4782e: 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); 47832: 2009 movel %a1,%d0 <== NOT EXECUTED 47834: 5880 addql #4,%d0 <== NOT EXECUTED 47836: 2280 movel %d0,%a1@ <== NOT EXECUTED 47838: 3210 movew %a0@,%d1 <== NOT EXECUTED 4783a: 302a 009a movew %a2@(154),%d0 <== NOT EXECUTED 4783e: c280 andl %d0,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 47840: 2349 0008 movel %a1,%a1@(8) <== NOT EXECUTED 47844: 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; 47846: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED if ( *the_priority_map->minor == 0 ) 4784a: 4a41 tstw %d1 <== NOT EXECUTED 4784c: 6620 bnes 4786e <_Thread_Suspend+0x82> <== NOT EXECUTED _Priority_Major_bit_map &= the_priority_map->block_major; 4784e: 3239 0005 7f30 movew 57f30 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 47854: 302a 0098 movew %a2@(152),%d0 <== NOT EXECUTED 47858: c081 andl %d1,%d0 <== NOT EXECUTED 4785a: 33c0 0005 7f30 movew %d0,57f30 <_Priority_Major_bit_map> <== NOT EXECUTED 47860: 600c bras 4786e <_Thread_Suspend+0x82> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 47862: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 47864: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED next->previous = previous; previous->next = next; 47868: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4786a: 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 ); 4786e: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 47874: 46c2 movew %d2,%sr <== NOT EXECUTED 47876: 8082 orl %d2,%d0 <== NOT EXECUTED 47878: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( the_thread ) ) 4787a: b5f9 0005 7f0a cmpal 57f0a <_Thread_Heir>,%a2 <== NOT EXECUTED 47880: 663e bnes 478c0 <_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 ); 47882: 3039 0005 7f30 movew 57f30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 47888: 4840 swap %d0 <== NOT EXECUTED 4788a: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 4788c: 41f9 0005 7fa0 lea 57fa0 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 47892: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 47898: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 4789c: 4841 swap %d1 <== NOT EXECUTED 4789e: 04c1 ff1 %d1 <== NOT EXECUTED 478a0: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 478a6: e988 lsll #4,%d0 <== NOT EXECUTED 478a8: d081 addl %d1,%d0 <== NOT EXECUTED 478aa: 2079 0005 7e28 moveal 57e28 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 478b0: 2200 movel %d0,%d1 <== NOT EXECUTED 478b2: e588 lsll #2,%d0 <== NOT EXECUTED 478b4: e989 lsll #4,%d1 <== NOT EXECUTED 478b6: 91c0 subal %d0,%a0 <== NOT EXECUTED 478b8: d1c1 addal %d1,%a0 <== NOT EXECUTED 478ba: 23d0 0005 7f0a movel %a0@,57f0a <_Thread_Heir> <== NOT EXECUTED _Thread_Calculate_heir(); if ( _Thread_Is_executing( the_thread ) ) 478c0: b5f9 0005 7f3a cmpal 57f3a <_Thread_Executing>,%a2 <== NOT EXECUTED 478c6: 6608 bnes 478d0 <_Thread_Suspend+0xe4> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 478c8: 7201 moveq #1,%d1 <== NOT EXECUTED 478ca: 13c1 0005 7f4a moveb %d1,57f4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 478d0: 46c2 movew %d2,%sr <== NOT EXECUTED } 478d2: 241f movel %sp@+,%d2 <== NOT EXECUTED 478d4: 245f moveal %sp@+,%a2 <== NOT EXECUTED 478d6: 4e5e unlk %fp <== NOT EXECUTED 478d8: 4e75 rts <== NOT EXECUTED ... 000478dc <_Thread_Tickle_timeslice>: * * Output parameters: NONE */ void _Thread_Tickle_timeslice( void ) { 478dc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 478e0: 2f0a movel %a2,%sp@- <== NOT EXECUTED Thread_Control *executing; executing = _Thread_Executing; 478e2: 2479 0005 7f3a moveal 57f3a <_Thread_Executing>,%a2 <== NOT EXECUTED /* * If the thread is not preemptible or is not ready, then * just return. */ if ( !executing->is_preemptible ) 478e8: 4a2a 0076 tstb %a2@(118) <== NOT EXECUTED 478ec: 6756 beqs 47944 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED return; if ( !_States_Is_ready( executing->current_state ) ) 478ee: 4aaa 0010 tstl %a2@(16) <== NOT EXECUTED 478f2: 6650 bnes 47944 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED /* * The cpu budget algorithm determines what happens next. */ switch ( executing->budget_algorithm ) { 478f4: 202a 007c movel %a2@(124),%d0 <== NOT EXECUTED 478f8: 7201 moveq #1,%d1 <== NOT EXECUTED 478fa: b280 cmpl %d0,%d1 <== NOT EXECUTED 478fc: 6246 bhis 47944 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED 478fe: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 47902: b280 cmpl %d0,%d1 <== NOT EXECUTED 47904: 640a bccs 47910 <_Thread_Tickle_timeslice+0x34> <== NOT EXECUTED 47906: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 4790a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4790c: 6636 bnes 47944 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED 4790e: 601e bras 4792e <_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 ) { 47910: 202a 0078 movel %a2@(120),%d0 <== NOT EXECUTED 47914: 5380 subql #1,%d0 <== NOT EXECUTED 47916: 2540 0078 movel %d0,%a2@(120) <== NOT EXECUTED 4791a: 6e28 bgts 47944 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED _Thread_Reset_timeslice(); 4791c: 4eb9 0004 a9d0 jsr 4a9d0 <_Thread_Reset_timeslice> <== NOT EXECUTED executing->cpu_time_budget = _Thread_Ticks_per_timeslice; 47922: 41f9 0005 7e2c lea 57e2c <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED 47928: 2550 0078 movel %a0@,%a2@(120) <== NOT EXECUTED 4792c: 6016 bras 47944 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED } break; case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT: if ( --executing->cpu_time_budget == 0 ) 4792e: 202a 0078 movel %a2@(120),%d0 <== NOT EXECUTED 47932: 5380 subql #1,%d0 <== NOT EXECUTED 47934: 2540 0078 movel %d0,%a2@(120) <== NOT EXECUTED 47938: 660a bnes 47944 <_Thread_Tickle_timeslice+0x68> <== NOT EXECUTED (*executing->budget_callout)( executing ); 4793a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4793c: 206a 0080 moveal %a2@(128),%a0 <== NOT EXECUTED 47940: 4e90 jsr %a0@ <== NOT EXECUTED 47942: 588f addql #4,%sp <== NOT EXECUTED break; } } 47944: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47948: 4e5e unlk %fp <== NOT EXECUTED 4794a: 4e75 rts 0004794c <_Thread_Yield_processor>: * ready chain * select heir */ void _Thread_Yield_processor( void ) { 4794c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 47950: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; 47954: 2479 0005 7f3a moveal 57f3a <_Thread_Executing>,%a2 <== NOT EXECUTED ready = executing->ready; _ISR_Disable( level ); 4795a: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; ready = executing->ready; 47960: 266a 008c moveal %a2@(140),%a3 <== NOT EXECUTED _ISR_Disable( level ); 47964: 2002 movel %d2,%d0 <== NOT EXECUTED 47966: 40c1 movew %sr,%d1 <== NOT EXECUTED 47968: 8081 orl %d1,%d0 <== NOT EXECUTED 4796a: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_Chain_Has_only_one_node( ready ) ) { 4796c: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 47970: b093 cmpl %a3@,%d0 <== NOT EXECUTED 47972: 6738 beqs 479ac <_Thread_Yield_processor+0x60> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 47974: 2052 moveal %a2@,%a0 <== NOT EXECUTED previous = the_node->previous; 47976: 226a 0004 moveal %a2@(4),%a1 <== NOT EXECUTED next->previous = previous; previous->next = next; 4797a: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4797c: 200b movel %a3,%d0 <== NOT EXECUTED 4797e: 5880 addql #4,%d0 <== NOT EXECUTED 47980: 2480 movel %d0,%a2@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 47982: 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; 47986: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 4798a: 274a 0008 movel %a2,%a3@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4798e: 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; 47992: 208a movel %a2,%a0@ <== NOT EXECUTED _Chain_Extract_unprotected( &executing->Object.Node ); _Chain_Append_unprotected( ready, &executing->Object.Node ); _ISR_Flash( level ); 47994: 2002 movel %d2,%d0 <== NOT EXECUTED 47996: 46c1 movew %d1,%sr <== NOT EXECUTED 47998: 8081 orl %d1,%d0 <== NOT EXECUTED 4799a: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( executing ) ) 4799c: b5f9 0005 7f0a cmpal 57f0a <_Thread_Heir>,%a2 <== NOT EXECUTED 479a2: 6610 bnes 479b4 <_Thread_Yield_processor+0x68> <== NOT EXECUTED _Thread_Heir = (Thread_Control *) ready->first; 479a4: 23d3 0005 7f0a movel %a3@,57f0a <_Thread_Heir> <== NOT EXECUTED 479aa: 6008 bras 479b4 <_Thread_Yield_processor+0x68> <== NOT EXECUTED _Context_Switch_necessary = TRUE; } else if ( !_Thread_Is_heir( executing ) ) 479ac: b5f9 0005 7f0a cmpal 57f0a <_Thread_Heir>,%a2 <== NOT EXECUTED 479b2: 6708 beqs 479bc <_Thread_Yield_processor+0x70> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 479b4: 7001 moveq #1,%d0 <== NOT EXECUTED 479b6: 13c0 0005 7f4a moveb %d0,57f4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 479bc: 46c1 movew %d1,%sr <== NOT EXECUTED } 479be: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 479c2: 4e5e unlk %fp <== NOT EXECUTED 479c4: 4e75 rts <== NOT EXECUTED ... 000467b4 <_Thread_blocking_operation_Cancel>: void _Thread_blocking_operation_Cancel( Thread_blocking_operation_States sync_state, Thread_Control *the_thread, ISR_Level level ) { 467b4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 467b8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 467ba: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 467be: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED #endif /* * The thread is not waiting on anything after this completes. */ the_thread->Wait.queue = NULL; 467c2: 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 ) ) { 467c6: 7202 moveq #2,%d1 <== NOT EXECUTED 467c8: b2aa 0050 cmpl %a2@(80),%d1 <== NOT EXECUTED 467cc: 6618 bnes 467e6 <_Thread_blocking_operation_Cancel+0x32> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 467ce: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 467d2: 2541 0050 movel %d1,%a2@(80) <== NOT EXECUTED _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 467d6: 46c0 movew %d0,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 467d8: 486a 0048 pea %a2@(72) <== NOT EXECUTED 467dc: 4eb9 0004 7d9c jsr 47d9c <_Watchdog_Remove> <== NOT EXECUTED 467e2: 588f addql #4,%sp <== NOT EXECUTED 467e4: 6002 bras 467e8 <_Thread_blocking_operation_Cancel+0x34> <== NOT EXECUTED } else _ISR_Enable( level ); 467e6: 46c0 movew %d0,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 467e8: 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 } 467ec: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 467f0: 203c 1003 fff8 movel #268697592,%d0 <== NOT EXECUTED 467f6: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 467fa: 4e5e unlk %fp <== NOT EXECUTED 467fc: 4ef9 0004 6948 jmp 46948 <_Thread_Clear_state> <== NOT EXECUTED ... 0004702c <_Thread_queue_Dequeue>: */ Thread_Control *_Thread_queue_Dequeue( Thread_queue_Control *the_thread_queue ) { 4702c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 47030: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 47034: 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 ) 47038: 41f9 0004 708c lea 4708c <_Thread_queue_Dequeue_priority>,%a0 <== NOT EXECUTED 4703e: 7001 moveq #1,%d0 <== NOT EXECUTED 47040: b0aa 0034 cmpl %a2@(52),%d0 <== NOT EXECUTED 47044: 6706 beqs 4704c <_Thread_queue_Dequeue+0x20> <== NOT EXECUTED 47046: 41f9 0004 a6e8 lea 4a6e8 <_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 ); 4704c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4704e: 4e90 jsr %a0@ <== NOT EXECUTED 47050: 2200 movel %d0,%d1 <== NOT EXECUTED _ISR_Disable( level ); 47052: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 47058: 40c2 movew %sr,%d2 <== NOT EXECUTED 4705a: 8082 orl %d2,%d0 <== NOT EXECUTED 4705c: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !the_thread ) { 4705e: 588f addql #4,%sp <== NOT EXECUTED 47060: 4a81 tstl %d1 <== NOT EXECUTED 47062: 6618 bnes 4707c <_Thread_queue_Dequeue+0x50> <== NOT EXECUTED sync_state = the_thread_queue->sync_state; if ( (sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) || 47064: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 47068: 7601 moveq #1,%d3 <== NOT EXECUTED 4706a: 5380 subql #1,%d0 <== NOT EXECUTED 4706c: b680 cmpl %d0,%d3 <== NOT EXECUTED 4706e: 650c bcss 4707c <_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; 47070: 2239 0005 7f3a movel 57f3a <_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; 47076: 7003 moveq #3,%d0 <== NOT EXECUTED 47078: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED the_thread = _Thread_Executing; } } _ISR_Enable( level ); 4707c: 46c2 movew %d2,%sr <== NOT EXECUTED return the_thread; } 4707e: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 47084: 4e5e unlk %fp <== NOT EXECUTED 47086: 2001 movel %d1,%d0 <== NOT EXECUTED 47088: 4e75 rts <== NOT EXECUTED ... 0004a6e8 <_Thread_queue_Dequeue_fifo>: */ Thread_Control *_Thread_queue_Dequeue_fifo( Thread_queue_Control *the_thread_queue ) { 4a6e8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4a6ec: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED ISR_Level level; Thread_Control *the_thread; _ISR_Disable( level ); 4a6f0: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Thread_Control *_Thread_queue_Dequeue_fifo( Thread_queue_Control *the_thread_queue ) { 4a6f6: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED ISR_Level level; Thread_Control *the_thread; _ISR_Disable( level ); 4a6fa: 40c1 movew %sr,%d1 <== NOT EXECUTED 4a6fc: 8081 orl %d1,%d0 <== NOT EXECUTED 4a6fe: 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)); 4a700: 2049 moveal %a1,%a0 <== NOT EXECUTED 4a702: 2458 moveal %a0@+,%a2 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) { 4a704: b1ca cmpal %a2,%a0 <== NOT EXECUTED 4a706: 6750 beqs 4a758 <_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; 4a708: 2052 moveal %a2@,%a0 <== NOT EXECUTED the_chain->first = new_first; 4a70a: 2288 movel %a0,%a1@ <== NOT EXECUTED the_thread = (Thread_Control *) 4a70c: 264a moveal %a2,%a3 <== NOT EXECUTED 4a70e: 49f9 0004 6948 lea 46948 <_Thread_Clear_state>,%a4 <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 4a714: 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 ) ) { 4a718: 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; 4a71a: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4a71e: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4a722: 6710 beqs 4a734 <_Thread_queue_Dequeue_fifo+0x4c> <== NOT EXECUTED _ISR_Enable( level ); 4a724: 46c1 movew %d1,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 4a726: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 4a72c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a72e: 4e94 jsr %a4@ <== NOT EXECUTED 4a730: 508f addql #8,%sp <== NOT EXECUTED 4a732: 6028 bras 4a75c <_Thread_queue_Dequeue_fifo+0x74> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 4a734: 7003 moveq #3,%d0 <== NOT EXECUTED 4a736: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED _Thread_Unblock( the_thread ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 4a73a: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4a73c: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4a740: 4eb9 0004 7d9c jsr 47d9c <_Watchdog_Remove> <== NOT EXECUTED 4a746: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 4a74c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a74e: 4e94 jsr %a4@ <== NOT EXECUTED 4a750: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a756: 6004 bras 4a75c <_Thread_queue_Dequeue_fifo+0x74> <== NOT EXECUTED #endif return the_thread; } _ISR_Enable( level ); 4a758: 46c1 movew %d1,%sr <== NOT EXECUTED 4a75a: 97cb subal %a3,%a3 <== NOT EXECUTED return NULL; } 4a75c: 200b movel %a3,%d0 <== NOT EXECUTED 4a75e: 4cee 1c00 fff4 moveml %fp@(-12),%a2-%a4 <== NOT EXECUTED 4a764: 4e5e unlk %fp <== NOT EXECUTED 4a766: 4e75 rts 0004708c <_Thread_queue_Dequeue_priority>: */ Thread_Control *_Thread_queue_Dequeue_priority( Thread_queue_Control *the_thread_queue ) { 4708c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 47090: 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 ); 47094: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Thread_Control *_Thread_queue_Dequeue_priority( Thread_queue_Control *the_thread_queue ) { 4709a: 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 ); 4709e: 40c1 movew %sr,%d1 <== NOT EXECUTED 470a0: 8081 orl %d1,%d0 <== NOT EXECUTED 470a2: 46c0 movew %d0,%sr <== NOT EXECUTED 470a4: 93c9 subal %a1,%a1 <== NOT EXECUTED 470a6: 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)); 470a8: 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 ] ) ) { 470aa: 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++ ) { 470ae: d7fc 0000 000c addal #12,%a3 <== NOT EXECUTED 470b4: 5289 addql #1,%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) { 470b6: 41f4 8c00 lea %a4@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 470ba: b1ca cmpal %a2,%a0 <== NOT EXECUTED 470bc: 671e beqs 470dc <_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; 470be: 206a 0038 moveal %a2@(56),%a0 <== NOT EXECUTED new_first_thread = (Thread_Control *) new_first_node; next_node = the_thread->Object.Node.next; 470c2: 2652 moveal %a2@,%a3 <== NOT EXECUTED previous_node = the_thread->Object.Node.previous; 470c4: 226a 0004 moveal %a2@(4),%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { 470c8: 200a movel %a2,%d0 <== NOT EXECUTED */ _ISR_Enable( level ); return NULL; dequeue: the_thread->Wait.queue = NULL; 470ca: 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 *) 470ce: 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 ) ) { 470d0: 0680 0000 003c addil #60,%d0 <== NOT EXECUTED 470d6: b088 cmpl %a0,%d0 <== NOT EXECUTED 470d8: 660e bnes 470e8 <_Thread_queue_Dequeue_priority+0x5c> <== NOT EXECUTED 470da: 6042 bras 4711e <_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 ; 470dc: 7004 moveq #4,%d0 <== NOT EXECUTED 470de: b089 cmpl %a1,%d0 <== NOT EXECUTED 470e0: 66c6 bnes 470a8 <_Thread_queue_Dequeue_priority+0x1c> <== NOT EXECUTED } /* * We did not find a thread to unblock. */ _ISR_Enable( level ); 470e2: 46c1 movew %d1,%sr <== NOT EXECUTED 470e4: 4282 clrl %d2 <== NOT EXECUTED 470e6: 607c bras 47164 <_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; 470e8: 2a6a 0040 moveal %a2@(64),%a5 <== NOT EXECUTED new_second_node = new_first_node->next; 470ec: 2850 moveal %a0@,%a4 <== NOT EXECUTED previous_node->next = new_first_node; next_node->previous = new_first_node; 470ee: 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; 470f2: 2288 movel %a0,%a1@ <== NOT EXECUTED next_node->previous = new_first_node; new_first_node->next = next_node; new_first_node->previous = previous_node; 470f4: 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; 470f8: 208b movel %a3,%a0@ <== NOT EXECUTED new_first_node->previous = previous_node; if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) { 470fa: 226a 0040 moveal %a2@(64),%a1 <== NOT EXECUTED 470fe: b3ea 0038 cmpal %a2@(56),%a1 <== NOT EXECUTED 47102: 6720 beqs 47124 <_Thread_queue_Dequeue_priority+0x98> <== NOT EXECUTED /* > two threads on 2-n */ new_second_node->previous = 47104: 43e8 0038 lea %a0@(56),%a1 <== NOT EXECUTED 47108: 2949 0004 movel %a1,%a4@(4) <== NOT EXECUTED _Chain_Head( &new_first_thread->Wait.Block2n ); new_first_thread->Wait.Block2n.first = new_second_node; 4710c: 214c 0038 movel %a4,%a0@(56) <== NOT EXECUTED new_first_thread->Wait.Block2n.last = last_node; 47110: 214d 0040 movel %a5,%a0@(64) <== NOT EXECUTED last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); 47114: d1fc 0000 003c addal #60,%a0 <== NOT EXECUTED 4711a: 2a88 movel %a0,%a5@ <== NOT EXECUTED 4711c: 6006 bras 47124 <_Thread_queue_Dequeue_priority+0x98> <== NOT EXECUTED } } else { previous_node->next = next_node; next_node->previous = previous_node; 4711e: 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; 47122: 228b movel %a3,%a1@ <== NOT EXECUTED 47124: 47f9 0004 6948 lea 46948 <_Thread_Clear_state>,%a3 <== NOT EXECUTED next_node->previous = previous_node; } if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4712a: 7002 moveq #2,%d0 <== NOT EXECUTED 4712c: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 47130: 6710 beqs 47142 <_Thread_queue_Dequeue_priority+0xb6> <== NOT EXECUTED _ISR_Enable( level ); 47132: 46c1 movew %d1,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 47134: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 4713a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4713c: 4e93 jsr %a3@ <== NOT EXECUTED 4713e: 508f addql #8,%sp <== NOT EXECUTED 47140: 6022 bras 47164 <_Thread_queue_Dequeue_priority+0xd8> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 47142: 7003 moveq #3,%d0 <== NOT EXECUTED 47144: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED _Thread_Unblock( the_thread ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 47148: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4714a: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4714e: 4eb9 0004 7d9c jsr 47d9c <_Watchdog_Remove> <== NOT EXECUTED 47154: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 4715a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4715c: 4e93 jsr %a3@ <== NOT EXECUTED 4715e: 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 ); } 47164: 2002 movel %d2,%d0 <== NOT EXECUTED 47166: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4716c: 4e5e unlk %fp <== NOT EXECUTED 4716e: 4e75 rts 0004a768 <_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 ) { 4a768: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a76c: 2f0a movel %a2,%sp@- <== NOT EXECUTED Thread_blocking_operation_States sync_state; ISR_Level level; _ISR_Disable( level ); 4a76e: 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 ) { 4a774: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a776: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 4a77a: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Thread_blocking_operation_States sync_state; ISR_Level level; _ISR_Disable( level ); 4a77e: 40c1 movew %sr,%d1 <== NOT EXECUTED 4a780: 8081 orl %d1,%d0 <== NOT EXECUTED 4a782: 46c0 movew %d0,%sr <== NOT EXECUTED sync_state = the_thread_queue->sync_state; 4a784: 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) { 4a788: 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; 4a78a: 42a9 0030 clrl %a1@(48) <== NOT EXECUTED if (sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) { 4a78e: b480 cmpl %d0,%d2 <== NOT EXECUTED 4a790: 661c bnes 4a7ae <_Thread_queue_Enqueue_fifo+0x46> <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4a792: 2049 moveal %a1,%a0 <== NOT EXECUTED 4a794: 5888 addql #4,%a0 <== NOT EXECUTED 4a796: 2488 movel %a0,%a2@ <== NOT EXECUTED old_last_node = the_chain->last; 4a798: 2069 0008 moveal %a1@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 4a79c: 234a 0008 movel %a2,%a1@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4a7a0: 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; 4a7a4: 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; 4a7a8: 208a movel %a2,%a0@ <== NOT EXECUTED the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; _ISR_Enable( level ); 4a7aa: 46c1 movew %d1,%sr <== NOT EXECUTED 4a7ac: 6006 bras 4a7b4 <_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; 4a7ae: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 4a7b2: 2081 movel %d1,%a0@ <== NOT EXECUTED return sync_state; } 4a7b4: 241f movel %sp@+,%d2 <== NOT EXECUTED 4a7b6: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4a7b8: 4e5e unlk %fp <== NOT EXECUTED 4a7ba: 4e75 rts 0004720c <_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 ) { 4720c: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 47210: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 47214: 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; 47218: 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 ) { 4721c: 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); 47220: 2404 movel %d4,%d2 <== NOT EXECUTED 47222: 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 ]; 47224: 2002 movel %d2,%d0 <== NOT EXECUTED 47226: 2202 movel %d2,%d1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47228: 41ea 003c lea %a2@(60),%a0 <== NOT EXECUTED 4722c: e588 lsll #2,%d0 <== NOT EXECUTED 4722e: e989 lsll #4,%d1 <== NOT EXECUTED block_state = the_thread_queue->state; 47230: 2a2b 0038 movel %a3@(56),%d5 <== NOT EXECUTED 47234: 2548 0038 movel %a0,%a2@(56) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 47238: 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 ]; 4723c: 9280 subl %d0,%d1 <== NOT EXECUTED 4723e: 2549 0040 movel %a1,%a2@(64) <== NOT EXECUTED 47242: 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; 47246: 42aa 003c clrl %a2@(60) <== NOT EXECUTED block_state = the_thread_queue->state; if ( _Thread_queue_Is_reverse_search( priority ) ) 4724a: 0804 0005 btst #5,%d4 <== NOT EXECUTED 4724e: 6674 bnes 472c4 <_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; 47250: 2242 moveal %d2,%a1 <== NOT EXECUTED 47252: 41f1 2a01 lea %a1@(00000001,%d2:l:2),%a0 <== NOT EXECUTED 47256: 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; 4725a: 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 ); 4725c: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED 47262: 2002 movel %d2,%d0 <== NOT EXECUTED 47264: 40c3 movew %sr,%d3 <== NOT EXECUTED 47266: 8083 orl %d3,%d0 <== NOT EXECUTED 47268: 46c0 movew %d0,%sr <== NOT EXECUTED search_thread = (Thread_Control *) header->first; 4726a: 72ff moveq #-1,%d1 <== NOT EXECUTED 4726c: 2270 b800 moveal %a0@(00000000,%a3:l),%a1 <== NOT EXECUTED 47270: 601e bras 47290 <_Thread_queue_Enqueue_priority+0x84> <== NOT EXECUTED while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) { search_priority = search_thread->current_priority; 47272: 2229 0014 movel %a1@(20),%d1 <== NOT EXECUTED if ( priority <= search_priority ) 47276: b284 cmpl %d4,%d1 <== NOT EXECUTED 47278: 641a bccs 47294 <_Thread_queue_Enqueue_priority+0x88> <== NOT EXECUTED break; search_priority = search_thread->current_priority; if ( priority <= search_priority ) break; #endif _ISR_Flash( level ); 4727a: 2002 movel %d2,%d0 <== NOT EXECUTED 4727c: 46c3 movew %d3,%sr <== NOT EXECUTED 4727e: 8083 orl %d3,%d0 <== NOT EXECUTED 47280: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Are_set( search_thread->current_state, block_state) ) { 47282: 2005 movel %d5,%d0 <== NOT EXECUTED 47284: c0a9 0010 andl %a1@(16),%d0 <== NOT EXECUTED 47288: 6604 bnes 4728e <_Thread_queue_Enqueue_priority+0x82> <== NOT EXECUTED _ISR_Enable( level ); 4728a: 46c3 movew %d3,%sr <== NOT EXECUTED 4728c: 60d4 bras 47262 <_Thread_queue_Enqueue_priority+0x56> <== NOT EXECUTED goto restart_forward_search; } search_thread = 4728e: 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 ) ) { 47290: b9c9 cmpal %a1,%a4 <== NOT EXECUTED 47292: 66de bnes 47272 <_Thread_queue_Enqueue_priority+0x66> <== NOT EXECUTED 47294: 2009 movel %a1,%d0 <== NOT EXECUTED 47296: 2403 movel %d3,%d2 <== NOT EXECUTED } search_thread = (Thread_Control *)search_thread->Object.Node.next; } if ( the_thread_queue->sync_state != 47298: 7a01 moveq #1,%d5 <== NOT EXECUTED 4729a: baab 0030 cmpl %a3@(48),%d5 <== NOT EXECUTED 4729e: 6600 00b6 bnew 47356 <_Thread_queue_Enqueue_priority+0x14a> <== NOT EXECUTED THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) goto synchronize; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 472a2: 42ab 0030 clrl %a3@(48) <== NOT EXECUTED if ( priority == search_priority ) 472a6: b284 cmpl %d4,%d1 <== NOT EXECUTED 472a8: 6700 008c beqw 47336 <_Thread_queue_Enqueue_priority+0x12a> <== NOT EXECUTED goto equal_priority; search_node = (Chain_Node *) search_thread; previous_node = search_node->previous; 472ac: 2069 0004 moveal %a1@(4),%a0 <== NOT EXECUTED the_node = (Chain_Node *) the_thread; the_node->next = search_node; 472b0: 2489 movel %a1,%a2@ <== NOT EXECUTED the_node->previous = previous_node; 472b2: 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; 472b6: 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; 472ba: 208a movel %a2,%a0@ <== NOT EXECUTED search_node->previous = the_node; 472bc: 234a 0004 movel %a2,%a1@(4) <== NOT EXECUTED the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 472c0: 46c3 movew %d3,%sr <== NOT EXECUTED 472c2: 606e bras 47332 <_Thread_queue_Enqueue_priority+0x126> <== NOT EXECUTED return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; restart_reverse_search: search_priority = PRIORITY_MAXIMUM + 1; _ISR_Disable( level ); 472c4: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED search_thread = (Thread_Control *) header->last; 472ca: 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; 472ce: 4280 clrl %d0 <== NOT EXECUTED 472d0: 1039 0005 62f2 moveb 562f2 ,%d0 <== NOT EXECUTED 472d6: 2200 movel %d0,%d1 <== NOT EXECUTED 472d8: 5281 addql #1,%d1 <== NOT EXECUTED _ISR_Disable( level ); 472da: 2002 movel %d2,%d0 <== NOT EXECUTED 472dc: 40c3 movew %sr,%d3 <== NOT EXECUTED 472de: 8083 orl %d3,%d0 <== NOT EXECUTED 472e0: 46c0 movew %d0,%sr <== NOT EXECUTED search_thread = (Thread_Control *) header->last; 472e2: 2254 moveal %a4@,%a1 <== NOT EXECUTED 472e4: 6020 bras 47306 <_Thread_queue_Enqueue_priority+0xfa> <== NOT EXECUTED while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) { search_priority = search_thread->current_priority; 472e6: 2229 0014 movel %a1@(20),%d1 <== NOT EXECUTED if ( priority >= search_priority ) 472ea: b284 cmpl %d4,%d1 <== NOT EXECUTED 472ec: 631c blss 4730a <_Thread_queue_Enqueue_priority+0xfe> <== NOT EXECUTED break; search_priority = search_thread->current_priority; if ( priority >= search_priority ) break; #endif _ISR_Flash( level ); 472ee: 2002 movel %d2,%d0 <== NOT EXECUTED 472f0: 46c3 movew %d3,%sr <== NOT EXECUTED 472f2: 8083 orl %d3,%d0 <== NOT EXECUTED 472f4: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Are_set( search_thread->current_state, block_state) ) { 472f6: 2005 movel %d5,%d0 <== NOT EXECUTED 472f8: c0a9 0010 andl %a1@(16),%d0 <== NOT EXECUTED 472fc: 6604 bnes 47302 <_Thread_queue_Enqueue_priority+0xf6> <== NOT EXECUTED _ISR_Enable( level ); 472fe: 46c3 movew %d3,%sr <== NOT EXECUTED 47300: 60cc bras 472ce <_Thread_queue_Enqueue_priority+0xc2> <== NOT EXECUTED goto restart_reverse_search; } search_thread = (Thread_Control *) 47302: 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 ) ) { 47306: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 47308: 66dc bnes 472e6 <_Thread_queue_Enqueue_priority+0xda> <== NOT EXECUTED 4730a: 2009 movel %a1,%d0 <== NOT EXECUTED 4730c: 2403 movel %d3,%d2 <== NOT EXECUTED } search_thread = (Thread_Control *) search_thread->Object.Node.previous; } if ( the_thread_queue->sync_state != 4730e: 7a01 moveq #1,%d5 <== NOT EXECUTED 47310: baab 0030 cmpl %a3@(48),%d5 <== NOT EXECUTED 47314: 6640 bnes 47356 <_Thread_queue_Enqueue_priority+0x14a> <== NOT EXECUTED THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) goto synchronize; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 47316: 42ab 0030 clrl %a3@(48) <== NOT EXECUTED if ( priority == search_priority ) 4731a: b284 cmpl %d4,%d1 <== NOT EXECUTED 4731c: 6718 beqs 47336 <_Thread_queue_Enqueue_priority+0x12a> <== NOT EXECUTED goto equal_priority; search_node = (Chain_Node *) search_thread; next_node = search_node->next; 4731e: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_node = (Chain_Node *) the_thread; the_node->next = next_node; the_node->previous = search_node; 47320: 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; 47324: 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; 47326: 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; 4732a: 228a movel %a2,%a1@ <== NOT EXECUTED next_node->previous = the_node; 4732c: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 47330: 46c3 movew %d3,%sr <== NOT EXECUTED 47332: 7001 moveq #1,%d0 <== NOT EXECUTED 47334: 602a bras 47360 <_Thread_queue_Enqueue_priority+0x154> <== NOT EXECUTED 47336: 2040 moveal %d0,%a0 <== NOT EXECUTED 47338: 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; 4733e: 2268 0004 moveal %a0@(4),%a1 <== NOT EXECUTED the_node = (Chain_Node *) the_thread; the_node->next = search_node; 47342: 2488 movel %a0,%a2@ <== NOT EXECUTED the_node->previous = previous_node; 47344: 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; 47348: 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; 4734c: 228a movel %a2,%a1@ <== NOT EXECUTED search_node->previous = the_node; 4734e: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 47352: 46c2 movew %d2,%sr <== NOT EXECUTED 47354: 60dc bras 47332 <_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; 47356: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED return the_thread_queue->sync_state; 4735a: 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; 4735e: 2082 movel %d2,%a0@ <== NOT EXECUTED return the_thread_queue->sync_state; } 47360: 4cd7 1c3c moveml %sp@,%d2-%d5/%a2-%a4 <== NOT EXECUTED 47364: 4e5e unlk %fp <== NOT EXECUTED 47366: 4e75 rts 00047170 <_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 ) { 47170: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 47174: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 47178: 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 ); 4717c: 2f2b 0038 movel %a3@(56),%sp@- <== NOT EXECUTED Thread_queue_Control *, Thread_Control *, ISR_Level * ); the_thread = _Thread_Executing; 47180: 2479 0005 7f3a moveal 57f3a <_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 ) { 47186: 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 ); 4718a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4718c: 4eb9 0004 754c jsr 4754c <_Thread_Set_state> <== NOT EXECUTED /* * If the thread wants to timeout, then schedule its timer. */ if ( timeout ) { 47192: 508f addql #8,%sp <== NOT EXECUTED 47194: 4a82 tstl %d2 <== NOT EXECUTED 47196: 672c beqs 471c4 <_Thread_queue_Enqueue_with_handler+0x54> <== NOT EXECUTED _Watchdog_Initialize( 47198: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4719c: 256e 0010 0064 movel %fp@(16),%a2@(100) <== NOT EXECUTED the_watchdog->id = id; 471a2: 2540 0068 movel %d0,%a2@(104) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 471a6: 2542 0054 movel %d2,%a2@(84) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 471aa: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 471ae: 42aa 006c clrl %a2@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 471b2: 486a 0048 pea %a2@(72) <== NOT EXECUTED 471b6: 4879 0005 7f58 pea 57f58 <_Watchdog_Ticks_chain> <== NOT EXECUTED 471bc: 4eb9 0004 7c80 jsr 47c80 <_Watchdog_Insert> <== NOT EXECUTED 471c2: 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 ) 471c4: 41f9 0004 720c lea 4720c <_Thread_queue_Enqueue_priority>,%a0 <== NOT EXECUTED 471ca: 7001 moveq #1,%d0 <== NOT EXECUTED 471cc: b0ab 0034 cmpl %a3@(52),%d0 <== NOT EXECUTED 471d0: 6706 beqs 471d8 <_Thread_queue_Enqueue_with_handler+0x68> <== NOT EXECUTED 471d2: 41f9 0004 a768 lea 4a768 <_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 ); 471d8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 471dc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 471de: 2f0b movel %a3,%sp@- <== NOT EXECUTED 471e0: 4e90 jsr %a0@ <== NOT EXECUTED if ( sync_state != THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) 471e2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 471e8: 7201 moveq #1,%d1 <== NOT EXECUTED 471ea: b280 cmpl %d0,%d1 <== NOT EXECUTED 471ec: 6714 beqs 47202 <_Thread_queue_Enqueue_with_handler+0x92> <== NOT EXECUTED _Thread_blocking_operation_Cancel( sync_state, the_thread, level ); 471ee: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 471f2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 471f4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 471f6: 4eb9 0004 67b4 jsr 467b4 <_Thread_blocking_operation_Cancel> <== NOT EXECUTED 471fc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 47202: 4cee 0c04 fff0 moveml %fp@(-16),%d2/%a2-%a3 <== NOT EXECUTED 47208: 4e5e unlk %fp <== NOT EXECUTED 4720a: 4e75 rts 0004a7bc <_Thread_queue_Extract>: void _Thread_queue_Extract( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) { 4a7bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a7c0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4a7c4: 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 ) 4a7c8: 7201 moveq #1,%d1 <== NOT EXECUTED 4a7ca: b2a8 0034 cmpl %a0@(52),%d1 <== NOT EXECUTED 4a7ce: 6616 bnes 4a7e6 <_Thread_queue_Extract+0x2a> <== NOT EXECUTED _Thread_queue_Extract_priority( the_thread_queue, the_thread ); 4a7d0: 42a7 clrl %sp@- <== NOT EXECUTED 4a7d2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a7d4: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4a7d6: 4eb9 0004 a7f8 jsr 4a7f8 <_Thread_queue_Extract_priority_helper> <== NOT EXECUTED 4a7dc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */ _Thread_queue_Extract_fifo( the_thread_queue, the_thread ); } 4a7e2: 4e5e unlk %fp <== NOT EXECUTED 4a7e4: 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 ); 4a7e6: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 4a7ea: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 4a7ee: 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 ); 4a7f0: 4ef9 0004 b6b8 jmp 4b6b8 <_Thread_queue_Extract_fifo> <== NOT EXECUTED ... 0004b6b8 <_Thread_queue_Extract_fifo>: void _Thread_queue_Extract_fifo( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) { 4b6b8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b6bc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b6be: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4b6c2: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4b6c8: 40c1 movew %sr,%d1 <== NOT EXECUTED 4b6ca: 8081 orl %d1,%d0 <== NOT EXECUTED 4b6cc: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { 4b6ce: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4b6d2: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 4b6d8: 660a bnes 4b6e4 <_Thread_queue_Extract_fifo+0x2c> <== NOT EXECUTED _ISR_Enable( level ); 4b6da: 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 } 4b6dc: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4b6e0: 4e5e unlk %fp <== NOT EXECUTED 4b6e2: 4e75 rts <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 4b6e4: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 4b6e6: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED return; } _Chain_Extract_unprotected( &the_thread->Object.Node ); the_thread->Wait.queue = NULL; 4b6ea: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4b6ee: 7002 moveq #2,%d0 <== NOT EXECUTED next->previous = previous; previous->next = next; 4b6f0: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4b6f2: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED 4b6f6: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4b6fa: 6704 beqs 4b700 <_Thread_queue_Extract_fifo+0x48> <== NOT EXECUTED _ISR_Enable( level ); 4b6fc: 46c1 movew %d1,%sr <== NOT EXECUTED 4b6fe: 6014 bras 4b714 <_Thread_queue_Extract_fifo+0x5c> <== NOT EXECUTED 4b700: 7003 moveq #3,%d0 <== NOT EXECUTED 4b702: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 4b706: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4b708: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4b70c: 4eb9 0004 7d9c jsr 47d9c <_Watchdog_Remove> <== NOT EXECUTED 4b712: 588f addql #4,%sp <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 4b714: 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 } 4b718: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4b71c: 203c 1003 fff8 movel #268697592,%d0 <== NOT EXECUTED 4b722: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 4b726: 4e5e unlk %fp <== NOT EXECUTED 4b728: 4ef9 0004 6948 jmp 46948 <_Thread_Clear_state> <== NOT EXECUTED ... 0004a7f8 <_Thread_queue_Extract_priority_helper>: void _Thread_queue_Extract_priority_helper( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, bool requeuing ) { 4a7f8: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4a7fc: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 4a800: 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 ); 4a804: 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 ) { 4a80a: 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 ); 4a80e: 40c1 movew %sr,%d1 <== NOT EXECUTED 4a810: 8081 orl %d1,%d0 <== NOT EXECUTED 4a812: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { 4a814: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4a818: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 4a81e: 6606 bnes 4a826 <_Thread_queue_Extract_priority_helper+0x2e> <== NOT EXECUTED _ISR_Enable( level ); 4a820: 46c1 movew %d1,%sr <== NOT EXECUTED 4a822: 6000 0098 braw 4a8bc <_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; 4a826: 2652 moveal %a2@,%a3 <== NOT EXECUTED previous_node = the_node->previous; 4a828: 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)); 4a82c: 206a 0038 moveal %a2@(56),%a0 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { 4a830: 200a movel %a2,%d0 <== NOT EXECUTED 4a832: 0680 0000 003c addil #60,%d0 <== NOT EXECUTED 4a838: b088 cmpl %a0,%d0 <== NOT EXECUTED 4a83a: 6736 beqs 4a872 <_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; 4a83c: 2a6a 0040 moveal %a2@(64),%a5 <== NOT EXECUTED new_second_node = new_first_node->next; 4a840: 2850 moveal %a0@,%a4 <== NOT EXECUTED previous_node->next = new_first_node; next_node->previous = new_first_node; 4a842: 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; 4a846: 2288 movel %a0,%a1@ <== NOT EXECUTED next_node->previous = new_first_node; new_first_node->next = next_node; new_first_node->previous = previous_node; 4a848: 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; 4a84c: 208b movel %a3,%a0@ <== NOT EXECUTED new_first_node->previous = previous_node; if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) { 4a84e: 202a 0040 movel %a2@(64),%d0 <== NOT EXECUTED 4a852: b0aa 0038 cmpl %a2@(56),%d0 <== NOT EXECUTED 4a856: 6720 beqs 4a878 <_Thread_queue_Extract_priority_helper+0x80> <== NOT EXECUTED /* > two threads on 2-n */ new_second_node->previous = 4a858: 43e8 0038 lea %a0@(56),%a1 <== NOT EXECUTED 4a85c: 2949 0004 movel %a1,%a4@(4) <== NOT EXECUTED _Chain_Head( &new_first_thread->Wait.Block2n ); new_first_thread->Wait.Block2n.first = new_second_node; 4a860: 214c 0038 movel %a4,%a0@(56) <== NOT EXECUTED new_first_thread->Wait.Block2n.last = last_node; 4a864: 214d 0040 movel %a5,%a0@(64) <== NOT EXECUTED last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); 4a868: d1fc 0000 003c addal #60,%a0 <== NOT EXECUTED 4a86e: 2a88 movel %a0,%a5@ <== NOT EXECUTED 4a870: 6006 bras 4a878 <_Thread_queue_Extract_priority_helper+0x80> <== NOT EXECUTED } } else { previous_node->next = next_node; next_node->previous = previous_node; 4a872: 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; 4a876: 228b movel %a3,%a1@ <== NOT EXECUTED /* * If we are not supposed to touch timers or the thread's state, return. */ if ( requeuing ) { 4a878: 4a02 tstb %d2 <== NOT EXECUTED 4a87a: 6704 beqs 4a880 <_Thread_queue_Extract_priority_helper+0x88> <== NOT EXECUTED _ISR_Enable( level ); 4a87c: 46c1 movew %d1,%sr <== NOT EXECUTED 4a87e: 603c bras 4a8bc <_Thread_queue_Extract_priority_helper+0xc4> <== NOT EXECUTED return; } if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4a880: 7002 moveq #2,%d0 <== NOT EXECUTED 4a882: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4a886: 6704 beqs 4a88c <_Thread_queue_Extract_priority_helper+0x94> <== NOT EXECUTED _ISR_Enable( level ); 4a888: 46c1 movew %d1,%sr <== NOT EXECUTED 4a88a: 6014 bras 4a8a0 <_Thread_queue_Extract_priority_helper+0xa8> <== NOT EXECUTED 4a88c: 7003 moveq #3,%d0 <== NOT EXECUTED 4a88e: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 4a892: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4a894: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4a898: 4eb9 0004 7d9c jsr 47d9c <_Watchdog_Remove> <== NOT EXECUTED 4a89e: 588f addql #4,%sp <== NOT EXECUTED 4a8a0: 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 } 4a8a4: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4a8aa: 227c 1003 fff8 moveal #268697592,%a1 <== NOT EXECUTED 4a8b0: 2d49 000c movel %a1,%fp@(12) <== NOT EXECUTED 4a8b4: 4e5e unlk %fp <== NOT EXECUTED 4a8b6: 4ef9 0004 6948 jmp 46948 <_Thread_Clear_state> <== NOT EXECUTED 4a8bc: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4a8c2: 4e5e unlk %fp <== NOT EXECUTED 4a8c4: 4e75 rts <== NOT EXECUTED ... 00047368 <_Thread_queue_Extract_with_proxy>: */ bool _Thread_queue_Extract_with_proxy( Thread_Control *the_thread ) { 47368: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4736c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED States_Control state; state = the_thread->current_state; if ( _States_Is_waiting_on_thread_queue( state ) ) { 47370: 2028 0010 movel %a0@(16),%d0 <== NOT EXECUTED 47374: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 4737a: 6710 beqs 4738c <_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 ); 4737c: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4737e: 2f28 0044 movel %a0@(68),%sp@- <== NOT EXECUTED 47382: 4eb9 0004 a7bc jsr 4a7bc <_Thread_queue_Extract> <== NOT EXECUTED 47388: 508f addql #8,%sp <== NOT EXECUTED 4738a: 7001 moveq #1,%d0 <== NOT EXECUTED return TRUE; } return FALSE; } 4738c: 4e5e unlk %fp <== NOT EXECUTED 4738e: 4e75 rts 000491f0 <_Thread_queue_First>: */ Thread_Control *_Thread_queue_First( Thread_queue_Control *the_thread_queue ) { 491f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 491f4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED Thread_Control * (*first_p)(Thread_queue_Control *); if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) 491f8: 203c 0004 9218 movel #299544,%d0 <== NOT EXECUTED 491fe: 7201 moveq #1,%d1 <== NOT EXECUTED 49200: b2a8 0034 cmpl %a0@(52),%d1 <== NOT EXECUTED 49204: 6706 beqs 4920c <_Thread_queue_First+0x1c> <== NOT EXECUTED 49206: 203c 0004 c75c movel #313180,%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 ); 4920c: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 49210: 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 ); 49212: 2240 moveal %d0,%a1 <== NOT EXECUTED 49214: 4ed1 jmp %a1@ <== NOT EXECUTED ... 0004c75c <_Thread_queue_First_fifo>: */ Thread_Control *_Thread_queue_First_fifo( Thread_queue_Control *the_thread_queue ) { 4c75c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c760: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4c764: 2018 movel %a0@+,%d0 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) 4c766: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 4c768: 6602 bnes 4c76c <_Thread_queue_First_fifo+0x10> <== NOT EXECUTED 4c76a: 4280 clrl %d0 <== NOT EXECUTED return (Thread_Control *) the_thread_queue->Queues.Fifo.first; return NULL; } 4c76c: 4e5e unlk %fp <== NOT EXECUTED 4c76e: 4e75 rts 00049218 <_Thread_queue_First_priority>: */ Thread_Control *_Thread_queue_First_priority ( Thread_queue_Control *the_thread_queue ) { 49218: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4921c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4921e: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 49222: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49224: 93c9 subal %a1,%a1 <== NOT EXECUTED 49226: 244b moveal %a3,%a2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 49228: 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 ] ) ) 4922a: 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++ ) { 4922e: d5fc 0000 000c addal #12,%a2 <== NOT EXECUTED 49234: 5289 addql #1,%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) 49236: 41f3 8c00 lea %a3@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 4923a: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 4923c: 6608 bnes 49246 <_Thread_queue_First_priority+0x2e> <== NOT EXECUTED ) { uint32_t index; for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; 4923e: 7004 moveq #4,%d0 <== NOT EXECUTED 49240: b089 cmpl %a1,%d0 <== NOT EXECUTED 49242: 66e4 bnes 49228 <_Thread_queue_First_priority+0x10> <== NOT EXECUTED 49244: 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; } 49246: 245f moveal %sp@+,%a2 <== NOT EXECUTED 49248: 265f moveal %sp@+,%a3 <== NOT EXECUTED 4924a: 4e5e unlk %fp <== NOT EXECUTED 4924c: 4e75 rts <== NOT EXECUTED ... 00047390 <_Thread_queue_Flush>: void _Thread_queue_Flush( Thread_queue_Control *the_thread_queue, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { 47390: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47394: 2f0a movel %a2,%sp@- <== NOT EXECUTED Thread_Control *the_thread; while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) { 47396: 45f9 0004 702c lea 4702c <_Thread_queue_Dequeue>,%a2 <== NOT EXECUTED 4739c: 6008 bras 473a6 <_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; 4739e: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 473a2: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED uint32_t status ) { Thread_Control *the_thread; while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) { 473a6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 473aa: 4e92 jsr %a2@ <== NOT EXECUTED 473ac: 588f addql #4,%sp <== NOT EXECUTED 473ae: 2040 moveal %d0,%a0 <== NOT EXECUTED 473b0: 4a80 tstl %d0 <== NOT EXECUTED 473b2: 66ea bnes 4739e <_Thread_queue_Flush+0xe> <== NOT EXECUTED ( *remote_extract_callout )( the_thread ); else #endif the_thread->Wait.return_code = status; } } 473b4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 473b8: 4e5e unlk %fp <== NOT EXECUTED 473ba: 4e75 rts 000473bc <_Thread_queue_Initialize>: Thread_queue_Control *the_thread_queue, Thread_queue_Disciplines the_discipline, States_Control state, uint32_t timeout_status ) { 473bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 473c0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED the_thread_queue->state = state; 473c4: 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 ) { 473ca: 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; 473ce: 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 ) { 473d4: 7201 moveq #1,%d1 <== NOT EXECUTED States_Control state, uint32_t timeout_status ) { the_thread_queue->state = state; the_thread_queue->discipline = the_discipline; 473d6: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED the_thread_queue->timeout_status = timeout_status; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 473da: 42a8 0030 clrl %a0@(48) <== NOT EXECUTED if ( the_discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) { 473de: b280 cmpl %d0,%d1 <== NOT EXECUTED 473e0: 664c bnes 4742e <_Thread_queue_Initialize+0x72> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 473e2: 2248 moveal %a0,%a1 <== NOT EXECUTED 473e4: 5889 addql #4,%a1 <== NOT EXECUTED 473e6: 2089 movel %a1,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 473e8: 43e8 0024 lea %a0@(36),%a1 <== NOT EXECUTED 473ec: 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); 473f0: 43e8 0010 lea %a0@(16),%a1 <== NOT EXECUTED 473f4: 2149 000c movel %a1,%a0@(12) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 473f8: 43e8 000c lea %a0@(12),%a1 <== NOT EXECUTED 473fc: 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); 47400: 43e8 001c lea %a0@(28),%a1 <== NOT EXECUTED 47404: 2149 0018 movel %a1,%a0@(24) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 47408: 43e8 0018 lea %a0@(24),%a1 <== NOT EXECUTED 4740c: 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); 47410: 43e8 0028 lea %a0@(40),%a1 <== NOT EXECUTED 47414: 2149 0024 movel %a1,%a0@(36) <== NOT EXECUTED the_chain->permanent_null = NULL; 47418: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 4741c: 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; 47420: 42a8 0010 clrl %a0@(16) <== NOT EXECUTED 47424: 42a8 001c clrl %a0@(28) <== NOT EXECUTED 47428: 42a8 0028 clrl %a0@(40) <== NOT EXECUTED 4742c: 600e bras 4743c <_Thread_queue_Initialize+0x80> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4742e: 2008 movel %a0,%d0 <== NOT EXECUTED 47430: 5880 addql #4,%d0 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 47432: 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); 47436: 2080 movel %d0,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 47438: 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 ); } } 4743c: 4e5e unlk %fp <== NOT EXECUTED 4743e: 4e75 rts 0004a8c8 <_Thread_queue_Process_timeout>: #include void _Thread_queue_Process_timeout( Thread_Control *the_thread ) { 4a8c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a8cc: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED Thread_queue_Control *the_thread_queue = the_thread->Wait.queue; 4a8d0: 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 && 4a8d4: 2028 0030 movel %a0@(48),%d0 <== NOT EXECUTED 4a8d8: 671c beqs 4a8f6 <_Thread_queue_Process_timeout+0x2e> <== NOT EXECUTED 4a8da: b3f9 0005 7f3a cmpal 57f3a <_Thread_Executing>,%a1 <== NOT EXECUTED 4a8e0: 6614 bnes 4a8f6 <_Thread_queue_Process_timeout+0x2e> <== NOT EXECUTED _Thread_Is_executing( the_thread ) ) { if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) { 4a8e2: 7203 moveq #3,%d1 <== NOT EXECUTED 4a8e4: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a8e6: 6722 beqs 4a90a <_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; 4a8e8: 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; 4a8ea: 2368 003c 0034 movel %a0@(60),%a1@(52) <== NOT EXECUTED the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT; 4a8f0: 2140 0030 movel %d0,%a0@(48) <== NOT EXECUTED 4a8f4: 6014 bras 4a90a <_Thread_queue_Process_timeout+0x42> <== NOT EXECUTED } } else { the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status; 4a8f6: 2368 003c 0034 movel %a0@(60),%a1@(52) <== NOT EXECUTED _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); 4a8fc: 2f09 movel %a1,%sp@- <== NOT EXECUTED 4a8fe: 2f29 0044 movel %a1@(68),%sp@- <== NOT EXECUTED 4a902: 4eb9 0004 a7bc jsr 4a7bc <_Thread_queue_Extract> <== NOT EXECUTED 4a908: 508f addql #8,%sp <== NOT EXECUTED } } 4a90a: 4e5e unlk %fp <== NOT EXECUTED 4a90c: 4e75 rts <== NOT EXECUTED ... 00047440 <_Thread_queue_Requeue>: void _Thread_queue_Requeue( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) { 47440: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 47444: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 47448: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4744c: 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 ) 47450: 4a8a tstl %a2 <== NOT EXECUTED 47452: 6748 beqs 4749c <_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 ) { 47454: 7001 moveq #1,%d0 <== NOT EXECUTED 47456: b0aa 0034 cmpl %a2@(52),%d0 <== NOT EXECUTED 4745a: 6640 bnes 4749c <_Thread_queue_Requeue+0x5c> <== NOT EXECUTED Thread_queue_Control *tq = the_thread_queue; ISR_Level level; ISR_Level level_ignored; _ISR_Disable( level ); 4745c: 303c 0700 movew #1792,%d0 <== NOT EXECUTED 47460: 40c2 movew %sr,%d2 <== NOT EXECUTED 47462: 8082 orl %d2,%d0 <== NOT EXECUTED 47464: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { 47466: 202b 0010 movel %a3@(16),%d0 <== NOT EXECUTED 4746a: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 47470: 6728 beqs 4749a <_Thread_queue_Requeue+0x5a> <== NOT EXECUTED _Thread_queue_Enter_critical_section( tq ); _Thread_queue_Extract_priority_helper( tq, the_thread, TRUE ); 47472: 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; 47476: 7001 moveq #1,%d0 <== NOT EXECUTED 47478: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED 4747c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4747e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47480: 4eb9 0004 a7f8 jsr 4a7f8 <_Thread_queue_Extract_priority_helper> <== NOT EXECUTED (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored ); 47486: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4748a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4748c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4748e: 4eb9 0004 720c jsr 4720c <_Thread_queue_Enqueue_priority> <== NOT EXECUTED 47494: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED } _ISR_Enable( level ); 4749a: 46c2 movew %d2,%sr <== NOT EXECUTED } } 4749c: 4cee 0c04 fff0 moveml %fp@(-16),%d2/%a2-%a3 <== NOT EXECUTED 474a2: 4e5e unlk %fp <== NOT EXECUTED 474a4: 4e75 rts <== NOT EXECUTED ... 000474a8 <_Thread_queue_Timeout>: void _Thread_queue_Timeout( Objects_Id id, void *ignored ) { 474a8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 474ac: 486e fffc pea %fp@(-4) <== NOT EXECUTED 474b0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 474b4: 4eb9 0004 6d34 jsr 46d34 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 474ba: 508f addql #8,%sp <== NOT EXECUTED 474bc: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 474c0: 6618 bnes 474da <_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 ); 474c2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 474c4: 4eb9 0004 a8c8 jsr 4a8c8 <_Thread_queue_Process_timeout> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 474ca: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 474d0: 588f addql #4,%sp <== NOT EXECUTED 474d2: 5380 subql #1,%d0 <== NOT EXECUTED 474d4: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Unnest_dispatch(); break; } } 474da: 4e5e unlk %fp <== NOT EXECUTED 474dc: 4e75 rts <== NOT EXECUTED ... 00049e80 <_Timer_Manager_initialization>: */ void _Timer_Manager_initialization( uint32_t maximum_timers ) { 49e80: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 49e84: 4878 0004 pea 4 <== NOT EXECUTED 49e88: 42a7 clrl %sp@- <== NOT EXECUTED 49e8a: 4878 003c pea 3c <== NOT EXECUTED 49e8e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49e92: 4878 0002 pea 2 <== NOT EXECUTED 49e96: 4878 0002 pea 2 <== NOT EXECUTED 49e9a: 4879 0005 8886 pea 58886 <_Timer_Information> <== NOT EXECUTED 49ea0: 4eb9 0004 6584 jsr 46584 <_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; 49ea6: dffc 0000 001c addal #28,%sp <== NOT EXECUTED } 49eac: 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; 49eae: 42b9 0005 88c6 clrl 588c6 <_Timer_Server> <== NOT EXECUTED _Timer_Server_schedule_operation = NULL; 49eb4: 42b9 0005 88c2 clrl 588c2 <_Timer_Server_schedule_operation> <== NOT EXECUTED } 49eba: 4e75 rts 0004f72a <_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; 4f72a: 2039 0006 db60 movel 6db60 <_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 ) { 4f730: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 4f734: 2239 0006 da18 movel 6da18 <_Thread_Dispatch_disable_level>,%d1 <== NOT EXECUTED 4f73a: 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; 4f73e: 240e movel %fp,%d2 <== NOT EXECUTED 4f740: 2a0e movel %fp,%d5 <== NOT EXECUTED 4f742: 5281 addql #1,%d1 <== NOT EXECUTED 4f744: 0682 ffff fff4 addil #-12,%d2 <== NOT EXECUTED 4f74a: 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; 4f74c: 41f9 0006 daaa lea 6daaa <_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; 4f752: 23c0 0006 d980 movel %d0,6d980 <_Timer_Server_ticks_last_time> <== NOT EXECUTED _Timer_Server_seconds_last_time = _TOD_Seconds_since_epoch; 4f758: 23d0 0006 d97c movel %a0@,6d97c <_Timer_Server_seconds_last_time> <== NOT EXECUTED 4f75e: 23c1 0006 da18 movel %d1,6da18 <_Thread_Dispatch_disable_level> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f764: 2d45 fff4 movel %d5,%fp@(-12) <== NOT EXECUTED the_chain->permanent_null = NULL; 4f768: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 4f76c: 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(); 4f770: 45f9 0005 1fae lea 51fae <_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(); 4f776: 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(); 4f778: 4eba ff50 jsr %pc@(4f6ca <_Timer_Server_process_insertions>) <== NOT EXECUTED _Thread_Enable_dispatch(); 4f77c: 4e92 jsr %a2@ <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4f77e: 4bf9 0005 3230 lea 53230 <_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(); 4f784: 49f9 0005 334c lea 5334c <_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 ); 4f78a: 2602 movel %d2,%d3 <== NOT EXECUTED 4f78c: 47f9 0005 31a4 lea 531a4 <_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 ); 4f792: 2e3c 0005 3120 movel #340256,%d7 <== NOT EXECUTED 4f798: 2039 0006 da18 movel 6da18 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4f79e: 5280 addql #1,%d0 <== NOT EXECUTED 4f7a0: 23c0 0006 da18 movel %d0,6da18 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Block until there is something to do. */ _Thread_Disable_dispatch(); _Thread_Set_state( _Timer_Server, STATES_DELAYING ); 4f7a6: 4878 0008 pea 8 <== NOT EXECUTED 4f7aa: 2f39 0006 e2fa movel 6e2fa <_Timer_Server>,%sp@- <== NOT EXECUTED 4f7b0: 4eb9 0005 2954 jsr 52954 <_Thread_Set_state> <== NOT EXECUTED _Timer_Server_reset_ticks_timer(); 4f7b6: 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)); 4f7b8: 2279 0006 d970 moveal 6d970 <_Timer_Ticks_chain>,%a1 <== NOT EXECUTED 4f7be: b3fc 0006 d974 cmpal #448884,%a1 <== NOT EXECUTED 4f7c4: 671a beqs 4f7e0 <_Timer_Server_body+0xb6> <== NOT EXECUTED 4f7c6: 2079 0006 e2fa moveal 6e2fa <_Timer_Server>,%a0 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4f7cc: 2169 0010 0054 movel %a1@(16),%a0@(84) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4f7d2: 4868 0048 pea %a0@(72) <== NOT EXECUTED 4f7d6: 4879 0006 daf4 pea 6daf4 <_Watchdog_Ticks_chain> <== NOT EXECUTED 4f7dc: 4e95 jsr %a5@ <== NOT EXECUTED 4f7de: 508f addql #8,%sp <== NOT EXECUTED 4f7e0: 2079 0006 d984 moveal 6d984 <_Timer_Seconds_chain>,%a0 <== NOT EXECUTED _Timer_Server_reset_seconds_timer(); 4f7e6: b1fc 0006 d988 cmpal #448904,%a0 <== NOT EXECUTED 4f7ec: 671c beqs 4f80a <_Timer_Server_body+0xe0> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4f7ee: d1fc 0000 0010 addal #16,%a0 <== NOT EXECUTED 4f7f4: 23d0 0006 d9a8 movel %a0@,6d9a8 <_Timer_Seconds_timer+0xc> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 4f7fa: 4879 0006 d99c pea 6d99c <_Timer_Seconds_timer> <== NOT EXECUTED 4f800: 4879 0006 dae8 pea 6dae8 <_Watchdog_Seconds_chain> <== NOT EXECUTED 4f806: 4e95 jsr %a5@ <== NOT EXECUTED 4f808: 508f addql #8,%sp <== NOT EXECUTED _Thread_Enable_dispatch(); 4f80a: 2044 moveal %d4,%a0 <== NOT EXECUTED 4f80c: 4e90 jsr %a0@ <== NOT EXECUTED 4f80e: 2039 0006 da18 movel 6da18 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4f814: 5280 addql #1,%d0 <== NOT EXECUTED 4f816: 23c0 0006 da18 movel %d0,6da18 <_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(); 4f81c: 2039 0006 e2fa movel 6e2fa <_Timer_Server>,%d0 <== NOT EXECUTED 4f822: 0680 0000 0048 addil #72,%d0 <== NOT EXECUTED 4f828: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f82a: 4e94 jsr %a4@ <== NOT EXECUTED _Timer_Server_stop_seconds_timer(); 4f82c: 4879 0006 d99c pea 6d99c <_Timer_Seconds_timer> <== NOT EXECUTED 4f832: 4e94 jsr %a4@ <== NOT EXECUTED ) { Watchdog_Interval snapshot; Watchdog_Interval ticks; snapshot = _Watchdog_Ticks_since_boot; 4f834: 2239 0006 db60 movel 6db60 <_Watchdog_Ticks_since_boot>,%d1 <== NOT EXECUTED if ( snapshot >= _Timer_Server_ticks_last_time ) 4f83a: 2039 0006 d980 movel 6d980 <_Timer_Server_ticks_last_time>,%d0 <== NOT EXECUTED 4f840: 508f addql #8,%sp <== NOT EXECUTED 4f842: b081 cmpl %d1,%d0 <== NOT EXECUTED 4f844: 6208 bhis 4f84e <_Timer_Server_body+0x124> <== NOT EXECUTED ticks = snapshot - _Timer_Server_ticks_last_time; 4f846: 2c01 movel %d1,%d6 <== NOT EXECUTED 4f848: 9c80 subl %d0,%d6 <== NOT EXECUTED 4f84a: 2006 movel %d6,%d0 <== NOT EXECUTED 4f84c: 6004 bras 4f852 <_Timer_Server_body+0x128> <== NOT EXECUTED else ticks = (0xFFFFFFFF - _Timer_Server_ticks_last_time) + snapshot; 4f84e: 4680 notl %d0 <== NOT EXECUTED 4f850: d081 addl %d1,%d0 <== NOT EXECUTED _Timer_Server_ticks_last_time = snapshot; _Watchdog_Adjust_to_chain( &_Timer_Ticks_chain, ticks, to_fire ); 4f852: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f854: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f856: 4879 0006 d970 pea 6d970 <_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; 4f85c: 23c1 0006 d980 movel %d1,6d980 <_Timer_Server_ticks_last_time> <== NOT EXECUTED _Watchdog_Adjust_to_chain( &_Timer_Ticks_chain, ticks, to_fire ); 4f862: 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; 4f864: 2479 0006 daaa moveal 6daaa <_TOD_Now>,%a2 <== NOT EXECUTED if ( snapshot > _Timer_Server_seconds_last_time ) { 4f86a: 2039 0006 d97c movel 6d97c <_Timer_Server_seconds_last_time>,%d0 <== NOT EXECUTED 4f870: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f876: b08a cmpl %a2,%d0 <== NOT EXECUTED 4f878: 6412 bccs 4f88c <_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 ); 4f87a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f87c: 220a movel %a2,%d1 <== NOT EXECUTED 4f87e: 9280 subl %d0,%d1 <== NOT EXECUTED 4f880: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4f882: 4879 0006 d984 pea 6d984 <_Timer_Seconds_chain> <== NOT EXECUTED 4f888: 4e93 jsr %a3@ <== NOT EXECUTED 4f88a: 6016 bras 4f8a2 <_Timer_Server_body+0x178> <== NOT EXECUTED } else if ( snapshot < _Timer_Server_seconds_last_time ) { 4f88c: b08a cmpl %a2,%d0 <== NOT EXECUTED 4f88e: 6318 blss 4f8a8 <_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 ); 4f890: 908a subl %a2,%d0 <== NOT EXECUTED 4f892: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f894: 2047 moveal %d7,%a0 <== NOT EXECUTED 4f896: 4878 0001 pea 1 <== NOT EXECUTED 4f89a: 4879 0006 d984 pea 6d984 <_Timer_Seconds_chain> <== NOT EXECUTED 4f8a0: 4e90 jsr %a0@ <== NOT EXECUTED 4f8a2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } _Timer_Server_seconds_last_time = snapshot; 4f8a8: 23ca 0006 d97c movel %a2,6d97c <_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(); 4f8ae: 4eba fe1a jsr %pc@(4f6ca <_Timer_Server_process_insertions>) <== NOT EXECUTED /* * Enable dispatching to process the set that are ready "to fire." */ _Thread_Enable_dispatch(); 4f8b2: 2044 moveal %d4,%a0 <== NOT EXECUTED 4f8b4: 4e90 jsr %a0@ <== NOT EXECUTED */ while (1) { Watchdog_Control *watch; ISR_Level level; _ISR_Disable( level ); 4f8b6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4f8bc: 40c1 movew %sr,%d1 <== NOT EXECUTED 4f8be: 8081 orl %d1,%d0 <== NOT EXECUTED 4f8c0: 46c0 movew %d0,%sr <== NOT EXECUTED 4f8c2: 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)) 4f8c6: ba89 cmpl %a1,%d5 <== NOT EXECUTED 4f8c8: 670e beqs 4f8d8 <_Timer_Server_body+0x1ae> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 4f8ca: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_chain->first = new_first; 4f8cc: 2d48 fff4 movel %a0,%fp@(-12) <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 4f8d0: 2142 0004 movel %d2,%a0@(4) <== NOT EXECUTED watch = (Watchdog_Control *) _Chain_Get_unprotected( &to_fire ); if ( watch == NULL ) { 4f8d4: 4a89 tstl %a1 <== NOT EXECUTED 4f8d6: 6606 bnes 4f8de <_Timer_Server_body+0x1b4> <== NOT EXECUTED _ISR_Enable( level ); 4f8d8: 46c1 movew %d1,%sr <== NOT EXECUTED 4f8da: 6000 febc braw 4f798 <_Timer_Server_body+0x6e> <== NOT EXECUTED break; } watch->state = WATCHDOG_INACTIVE; 4f8de: 42a9 0008 clrl %a1@(8) <== NOT EXECUTED _ISR_Enable( level ); 4f8e2: 46c1 movew %d1,%sr <== NOT EXECUTED (*watch->routine)( watch->id, watch->user_data ); 4f8e4: 2f29 0024 movel %a1@(36),%sp@- <== NOT EXECUTED 4f8e8: 2f29 0020 movel %a1@(32),%sp@- <== NOT EXECUTED 4f8ec: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 4f8f0: 4e90 jsr %a0@ <== NOT EXECUTED 4f8f2: 508f addql #8,%sp <== NOT EXECUTED 4f8f4: 60c0 bras 4f8b6 <_Timer_Server_body+0x18c> <== NOT EXECUTED ... 0004f6ca <_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) { 4f6ca: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4f6ce: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED Timer_Control *the_timer; while ( 1 ) { the_timer = (Timer_Control *) _Chain_Get( &_Timer_To_be_inserted ); 4f6d2: 49f9 0005 0104 lea 50104 <_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 ); 4f6d8: 45f9 0005 3230 lea 53230 <_Watchdog_Insert>,%a2 <== NOT EXECUTED } /* * Insert the timers that have been requested to be inserted. */ _Timer_Server_process_insertions(); 4f6de: 47fa ffea lea %pc@(4f6ca <_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 ); 4f6e2: 4879 0006 d990 pea 6d990 <_Timer_To_be_inserted> <== NOT EXECUTED 4f6e8: 4e94 jsr %a4@ <== NOT EXECUTED if ( the_timer == NULL ) 4f6ea: 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 ); 4f6ec: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( the_timer == NULL ) 4f6ee: 4a80 tstl %d0 <== NOT EXECUTED 4f6f0: 672e beqs 4f720 <_Timer_Server_process_insertions+0x56> <== NOT EXECUTED break; if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) { 4f6f2: 2028 0038 movel %a0@(56),%d0 <== NOT EXECUTED 4f6f6: 7201 moveq #1,%d1 <== NOT EXECUTED 4f6f8: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f6fa: 660c bnes 4f708 <_Timer_Server_process_insertions+0x3e> <== NOT EXECUTED _Watchdog_Insert( &_Timer_Ticks_chain, &the_timer->Ticker ); 4f6fc: 4868 0010 pea %a0@(16) <== NOT EXECUTED 4f700: 4879 0006 d970 pea 6d970 <_Timer_Ticks_chain> <== NOT EXECUTED 4f706: 6010 bras 4f718 <_Timer_Server_process_insertions+0x4e> <== NOT EXECUTED } else if ( the_timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) { 4f708: 7203 moveq #3,%d1 <== NOT EXECUTED 4f70a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f70c: 660e bnes 4f71c <_Timer_Server_process_insertions+0x52> <== NOT EXECUTED _Watchdog_Insert( &_Timer_Seconds_chain, &the_timer->Ticker ); 4f70e: 4868 0010 pea %a0@(16) <== NOT EXECUTED 4f712: 4879 0006 d984 pea 6d984 <_Timer_Seconds_chain> <== NOT EXECUTED 4f718: 4e92 jsr %a2@ <== NOT EXECUTED 4f71a: 508f addql #8,%sp <== NOT EXECUTED } /* * Insert the timers that have been requested to be inserted. */ _Timer_Server_process_insertions(); 4f71c: 4e93 jsr %a3@ <== NOT EXECUTED 4f71e: 60c2 bras 4f6e2 <_Timer_Server_process_insertions+0x18> <== NOT EXECUTED } } 4f720: 4cee 1c00 fff4 moveml %fp@(-12),%a2-%a4 <== NOT EXECUTED 4f726: 4e5e unlk %fp <== NOT EXECUTED 4f728: 4e75 rts 0004f686 <_Timer_Server_schedule_operation_method>: * the directive invoking this is executed. */ static void _Timer_Server_schedule_operation_method( Timer_Control *the_timer ) { 4f686: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Chain_Append( &_Timer_To_be_inserted, &the_timer->Object.Node ); 4f68a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f68e: 4879 0006 d990 pea 6d990 <_Timer_To_be_inserted> <== NOT EXECUTED 4f694: 4eb9 0005 00cc jsr 500cc <_Chain_Append> <== NOT EXECUTED _Watchdog_Remove( &_Timer_Server->Timer ); 4f69a: 2039 0006 e2fa movel 6e2fa <_Timer_Server>,%d0 <== NOT EXECUTED 4f6a0: 0680 0000 0048 addil #72,%d0 <== NOT EXECUTED 4f6a6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f6a8: 4eb9 0005 334c jsr 5334c <_Watchdog_Remove> <== NOT EXECUTED _Thread_Delay_ended( _Timer_Server->Object.id, NULL ); 4f6ae: 2079 0006 e2fa moveal 6e2fa <_Timer_Server>,%a0 <== NOT EXECUTED 4f6b4: 42a7 clrl %sp@- <== NOT EXECUTED 4f6b6: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4f6ba: 4eb9 0005 1e20 jsr 51e20 <_Thread_Delay_ended> <== NOT EXECUTED 4f6c0: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED } 4f6c6: 4e5e unlk %fp <== NOT EXECUTED 4f6c8: 4e75 rts 000479c8 <_Timespec_Add_to>: uint32_t _Timespec_Add_to( struct timespec *time, const struct timespec *add ) { 479c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 479cc: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 479d0: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED uint32_t seconds = add->tv_sec; 479d4: 2010 movel %a0@,%d0 <== NOT EXECUTED /* Add the basics */ time->tv_sec += add->tv_sec; time->tv_nsec += add->tv_nsec; 479d6: 2228 0004 movel %a0@(4),%d1 <== NOT EXECUTED ) { uint32_t seconds = add->tv_sec; /* Add the basics */ time->tv_sec += add->tv_sec; 479da: d191 addl %d0,%a1@ <== NOT EXECUTED time->tv_nsec += add->tv_nsec; 479dc: d3a9 0004 addl %d1,%a1@(4) <== NOT EXECUTED 479e0: 600e bras 479f0 <_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++; 479e2: 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; 479e4: 0681 c465 3600 addil #-1000000000,%d1 <== NOT EXECUTED 479ea: 2341 0004 movel %d1,%a1@(4) <== NOT EXECUTED time->tv_sec++; 479ee: 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 ) { 479f0: 2229 0004 movel %a1@(4),%d1 <== NOT EXECUTED 479f4: 0c81 3b9a c9ff cmpil #999999999,%d1 <== NOT EXECUTED 479fa: 62e6 bhis 479e2 <_Timespec_Add_to+0x1a> <== NOT EXECUTED time->tv_sec++; seconds++; } return seconds; } 479fc: 4e5e unlk %fp <== NOT EXECUTED 479fe: 4e75 rts 00048c90 <_Timespec_Divide>: const struct timespec *lhs, const struct timespec *rhs, uint32_t *ival_percentage, uint32_t *fval_percentage ) { 48c90: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 48c94: 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; 48c98: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED const struct timespec *lhs, const struct timespec *rhs, uint32_t *ival_percentage, uint32_t *fval_percentage ) { 48c9e: 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; 48ca2: 42a7 clrl %sp@- <== NOT EXECUTED const struct timespec *lhs, const struct timespec *rhs, uint32_t *ival_percentage, uint32_t *fval_percentage ) { 48ca4: 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; 48ca8: 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; 48cac: 2810 movel %a0@,%d4 <== NOT EXECUTED left += lhs->tv_nsec; right = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; 48cae: 4bf9 0005 5170 lea 55170 <__muldi3>,%a5 <== NOT EXECUTED 48cb4: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 48cb6: 5bc0 smi %d0 <== NOT EXECUTED 48cb8: 49c0 extbl %d0 <== NOT EXECUTED 48cba: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48cbc: 4e95 jsr %a5@ <== NOT EXECUTED right += rhs->tv_nsec; 48cbe: 262a 0004 movel %a2@(4),%d3 <== NOT EXECUTED 48cc2: 5bc2 smi %d2 <== NOT EXECUTED 48cc4: 49c2 extbl %d2 <== NOT EXECUTED 48cc6: d283 addl %d3,%d1 <== NOT EXECUTED 48cc8: 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; 48cca: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED right += rhs->tv_nsec; 48cd0: 2640 moveal %d0,%a3 <== NOT EXECUTED 48cd2: 2841 moveal %d1,%a4 <== NOT EXECUTED if ( right == 0 ) { 48cd4: 4a8b tstl %a3 <== NOT EXECUTED 48cd6: 6614 bnes 48cec <_Timespec_Divide+0x5c> <== NOT EXECUTED 48cd8: 4a8c tstl %a4 <== NOT EXECUTED 48cda: 6610 bnes 48cec <_Timespec_Divide+0x5c> <== NOT EXECUTED *ival_percentage = 0; 48cdc: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 48ce0: 4290 clrl %a0@ <== NOT EXECUTED *fval_percentage = 0; 48ce2: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 48ce6: 4290 clrl %a0@ <== NOT EXECUTED 48ce8: 6000 00d4 braw 48dbe <_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; 48cec: 2605 movel %d5,%d3 <== NOT EXECUTED 48cee: 5bc2 smi %d2 <== NOT EXECUTED 48cf0: 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; 48cf2: 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; 48cf8: 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; 48cfa: 42a7 clrl %sp@- <== NOT EXECUTED 48cfc: 2f04 movel %d4,%sp@- <== NOT EXECUTED 48cfe: 5bc0 smi %d0 <== NOT EXECUTED 48d00: 49c0 extbl %d0 <== NOT EXECUTED 48d02: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48d04: 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; 48d06: d283 addl %d3,%d1 <== NOT EXECUTED 48d08: d182 addxl %d2,%d0 <== NOT EXECUTED 48d0a: 2801 movel %d1,%d4 <== NOT EXECUTED 48d0c: 741e moveq #30,%d2 <== NOT EXECUTED 48d0e: e4ac lsrl %d2,%d4 <== NOT EXECUTED 48d10: 2400 movel %d0,%d2 <== NOT EXECUTED 48d12: 2601 movel %d1,%d3 <== NOT EXECUTED 48d14: e58a lsll #2,%d2 <== NOT EXECUTED 48d16: 8484 orl %d4,%d2 <== NOT EXECUTED 48d18: e58b lsll #2,%d3 <== NOT EXECUTED 48d1a: 2803 movel %d3,%d4 <== NOT EXECUTED 48d1c: 2c02 movel %d2,%d6 <== NOT EXECUTED 48d1e: eaac lsrl %d5,%d4 <== NOT EXECUTED 48d20: 2e03 movel %d3,%d7 <== NOT EXECUTED 48d22: eb8e lsll #5,%d6 <== NOT EXECUTED 48d24: 8c84 orl %d4,%d6 <== NOT EXECUTED 48d26: eb8f lsll #5,%d7 <== NOT EXECUTED 48d28: 2806 movel %d6,%d4 <== NOT EXECUTED 48d2a: 2a07 movel %d7,%d5 <== NOT EXECUTED 48d2c: 9a83 subl %d3,%d5 <== NOT EXECUTED 48d2e: 9982 subxl %d2,%d4 <== NOT EXECUTED 48d30: da81 addl %d1,%d5 <== NOT EXECUTED 48d32: d980 addxl %d0,%d4 <== NOT EXECUTED 48d34: 721e moveq #30,%d1 <== NOT EXECUTED 48d36: 2005 movel %d5,%d0 <== NOT EXECUTED 48d38: 2404 movel %d4,%d2 <== NOT EXECUTED 48d3a: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 48d3c: 2605 movel %d5,%d3 <== NOT EXECUTED 48d3e: e58a lsll #2,%d2 <== NOT EXECUTED 48d40: 8480 orl %d0,%d2 <== NOT EXECUTED 48d42: 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; 48d44: 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; 48d4a: da83 addl %d3,%d5 <== NOT EXECUTED 48d4c: d982 addxl %d2,%d4 <== NOT EXECUTED 48d4e: 2f0c movel %a4,%sp@- <== NOT EXECUTED 48d50: 2005 movel %d5,%d0 <== NOT EXECUTED 48d52: 2404 movel %d4,%d2 <== NOT EXECUTED 48d54: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 48d56: 2605 movel %d5,%d3 <== NOT EXECUTED 48d58: e58a lsll #2,%d2 <== NOT EXECUTED 48d5a: 8480 orl %d0,%d2 <== NOT EXECUTED 48d5c: e58b lsll #2,%d3 <== NOT EXECUTED 48d5e: da83 addl %d3,%d5 <== NOT EXECUTED 48d60: d982 addxl %d2,%d4 <== NOT EXECUTED 48d62: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48d64: 741b moveq #27,%d2 <== NOT EXECUTED 48d66: 2005 movel %d5,%d0 <== NOT EXECUTED 48d68: 2605 movel %d5,%d3 <== NOT EXECUTED 48d6a: e4a8 lsrl %d2,%d0 <== NOT EXECUTED 48d6c: eb8b lsll #5,%d3 <== NOT EXECUTED 48d6e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48d70: 2404 movel %d4,%d2 <== NOT EXECUTED 48d72: eb8a lsll #5,%d2 <== NOT EXECUTED 48d74: 8480 orl %d0,%d2 <== NOT EXECUTED 48d76: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48d78: 45f9 0005 51d8 lea 551d8 <__udivdi3>,%a2 <== NOT EXECUTED 48d7e: 4e92 jsr %a2@ <== NOT EXECUTED 48d80: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED *ival_percentage = answer / 1000; 48d86: 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; 48d8a: 2400 movel %d0,%d2 <== NOT EXECUTED 48d8c: 2601 movel %d1,%d3 <== NOT EXECUTED *ival_percentage = answer / 1000; 48d8e: 42a7 clrl %sp@- <== NOT EXECUTED 48d90: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48d92: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48d94: 4e92 jsr %a2@ <== NOT EXECUTED 48d96: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED *fval_percentage = answer % 1000; 48d9c: 4878 03e8 pea 3e8 <== NOT EXECUTED * TODO: Rounding on the last digit of the fval. */ answer = (left * 100000) / right; *ival_percentage = answer / 1000; 48da0: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED *fval_percentage = answer % 1000; 48da4: 42a7 clrl %sp@- <== NOT EXECUTED * TODO: Rounding on the last digit of the fval. */ answer = (left * 100000) / right; *ival_percentage = answer / 1000; 48da6: 2081 movel %d1,%a0@ <== NOT EXECUTED *fval_percentage = answer % 1000; 48da8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48daa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48dac: 4eb9 0005 558c jsr 5558c <__umoddi3> <== NOT EXECUTED 48db2: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 48db6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 48dbc: 2081 movel %d1,%a0@ <== NOT EXECUTED } 48dbe: 4cee 3cfc ffd8 moveml %fp@(-40),%d2-%d7/%a2-%a5 <== NOT EXECUTED 48dc4: 4e5e unlk %fp <== NOT EXECUTED 48dc6: 4e75 rts 0005ebbc <_Timespec_Divide_by_integer>: void _Timespec_Divide_by_integer( const struct timespec *time, uint32_t iterations, struct timespec *result ) { 5ebbc: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 5ebc0: 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; 5ebc4: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED void _Timespec_Divide_by_integer( const struct timespec *time, uint32_t iterations, struct timespec *result ) { 5ebca: 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; 5ebce: 42a7 clrl %sp@- <== NOT EXECUTED 5ebd0: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 5ebd2: 5bc0 smi %d0 <== NOT EXECUTED 5ebd4: 49c0 extbl %d0 <== NOT EXECUTED 5ebd6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5ebd8: 4eb9 0007 7768 jsr 77768 <__muldi3> <== NOT EXECUTED /* * Divide to get nanoseconds per iteration */ t /= iterations; 5ebde: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5ebe4: 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; 5ebe8: 262a 0004 movel %a2@(4),%d3 <== NOT EXECUTED 5ebec: 5bc2 smi %d2 <== NOT EXECUTED 5ebee: 49c2 extbl %d2 <== NOT EXECUTED /* * Divide to get nanoseconds per iteration */ t /= iterations; 5ebf0: d283 addl %d3,%d1 <== NOT EXECUTED 5ebf2: d182 addxl %d2,%d0 <== NOT EXECUTED 5ebf4: 42a7 clrl %sp@- <== NOT EXECUTED 5ebf6: 45f9 0007 784c lea 7784c <__udivdi3>,%a2 <== NOT EXECUTED 5ebfc: 2f01 movel %d1,%sp@- <== NOT EXECUTED 5ebfe: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5ec00: 4e92 jsr %a2@ <== NOT EXECUTED 5ec02: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED /* * Put it back in the timespec result */ result->tv_sec = t / TOD_NANOSECONDS_PER_SECOND; 5ec08: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED /* * Divide to get nanoseconds per iteration */ t /= iterations; 5ec0e: 2400 movel %d0,%d2 <== NOT EXECUTED 5ec10: 2601 movel %d1,%d3 <== NOT EXECUTED /* * Put it back in the timespec result */ result->tv_sec = t / TOD_NANOSECONDS_PER_SECOND; 5ec12: 42a7 clrl %sp@- <== NOT EXECUTED 5ec14: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ec16: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5ec18: 4e92 jsr %a2@ <== NOT EXECUTED 5ec1a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED result->tv_nsec = t % TOD_NANOSECONDS_PER_SECOND; 5ec20: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED void _Timespec_Divide_by_integer( const struct timespec *time, uint32_t iterations, struct timespec *result ) { 5ec26: 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; 5ec2a: 42a7 clrl %sp@- <== NOT EXECUTED /* * Put it back in the timespec result */ result->tv_sec = t / TOD_NANOSECONDS_PER_SECOND; 5ec2c: 2481 movel %d1,%a2@ <== NOT EXECUTED result->tv_nsec = t % TOD_NANOSECONDS_PER_SECOND; 5ec2e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ec30: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ec32: 4eb9 0007 7c00 jsr 77c00 <__umoddi3> <== NOT EXECUTED 5ec38: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED 5ec3c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 5ec42: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 5ec48: 4e5e unlk %fp <== NOT EXECUTED 5ec4a: 4e75 rts 00050788 <_Timespec_From_ticks>: void _Timespec_From_ticks( uint32_t ticks, struct timespec *time ) { 50788: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED uint32_t usecs; usecs = ticks * _TOD_Microseconds_per_tick; 5078c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 50790: 43f9 0006 3d72 lea 63d72 <_TOD_Microseconds_per_tick>,%a1 <== NOT EXECUTED 50796: 4c11 0800 mulsl %a1@,%d0 <== NOT EXECUTED void _Timespec_From_ticks( uint32_t ticks, struct timespec *time ) { 5079a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5079c: 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; 507a0: 243c 000f 4240 movel #1000000,%d2 <== NOT EXECUTED 507a6: 4c42 0001 remul %d2,%d1,%d0 <== NOT EXECUTED 507aa: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 507ae: 2080 movel %d0,%a0@ <== NOT EXECUTED time->tv_nsec = (usecs % TOD_MICROSECONDS_PER_SECOND) * 507b0: 2401 movel %d1,%d2 <== NOT EXECUTED 507b2: 2001 movel %d1,%d0 <== NOT EXECUTED 507b4: e58a lsll #2,%d2 <== NOT EXECUTED 507b6: ef88 lsll #7,%d0 <== NOT EXECUTED 507b8: 9082 subl %d2,%d0 <== NOT EXECUTED TOD_NANOSECONDS_PER_MICROSECOND; } 507ba: 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) * 507bc: d081 addl %d1,%d0 <== NOT EXECUTED 507be: e788 lsll #3,%d0 <== NOT EXECUTED TOD_NANOSECONDS_PER_MICROSECOND; } 507c0: 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) * 507c2: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED TOD_NANOSECONDS_PER_MICROSECOND; } 507c6: 4e75 rts 000493d4 <_Timespec_Greater_than>: bool _Timespec_Greater_than( const struct timespec *lhs, const struct timespec *rhs ) { 493d4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 493d8: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 493dc: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED if ( lhs->tv_sec > rhs->tv_sec ) 493e0: 2211 movel %a1@,%d1 <== NOT EXECUTED 493e2: 2010 movel %a0@,%d0 <== NOT EXECUTED 493e4: b081 cmpl %d1,%d0 <== NOT EXECUTED 493e6: 6c04 bges 493ec <_Timespec_Greater_than+0x18> <== NOT EXECUTED 493e8: 7001 moveq #1,%d0 <== NOT EXECUTED 493ea: 6014 bras 49400 <_Timespec_Greater_than+0x2c> <== NOT EXECUTED return TRUE; if ( lhs->tv_sec < rhs->tv_sec ) 493ec: b081 cmpl %d1,%d0 <== NOT EXECUTED 493ee: 6f04 bles 493f4 <_Timespec_Greater_than+0x20> <== NOT EXECUTED 493f0: 4200 clrb %d0 <== NOT EXECUTED 493f2: 600c bras 49400 <_Timespec_Greater_than+0x2c> <== NOT EXECUTED return FALSE; /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec > rhs->tv_nsec ) 493f4: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 493f8: b1e9 0004 cmpal %a1@(4),%a0 <== NOT EXECUTED 493fc: 5dc0 slt %d0 <== NOT EXECUTED 493fe: 4480 negl %d0 <== NOT EXECUTED return TRUE; return FALSE; } 49400: 4e5e unlk %fp <== NOT EXECUTED 49402: 4e75 rts 000507c8 <_Timespec_Is_valid>: #include bool _Timespec_Is_valid( const struct timespec *time ) { 507c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 507cc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !time ) 507d0: 4a88 tstl %a0 <== NOT EXECUTED 507d2: 6716 beqs 507ea <_Timespec_Is_valid+0x22> <== NOT EXECUTED return FALSE; if ( time->tv_sec < 0 ) 507d4: 4a90 tstl %a0@ <== NOT EXECUTED 507d6: 6d12 blts 507ea <_Timespec_Is_valid+0x22> <== NOT EXECUTED return FALSE; if ( time->tv_nsec < 0 ) 507d8: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED 507dc: 6d0c blts 507ea <_Timespec_Is_valid+0x22> <== NOT EXECUTED 507de: 0c80 3b9a c9ff cmpil #999999999,%d0 <== NOT EXECUTED 507e4: 53c0 sls %d0 <== NOT EXECUTED 507e6: 4480 negl %d0 <== NOT EXECUTED 507e8: 6002 bras 507ec <_Timespec_Is_valid+0x24> <== NOT EXECUTED 507ea: 4200 clrb %d0 <== NOT EXECUTED if ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) return FALSE; return TRUE; } 507ec: 4e5e unlk %fp <== NOT EXECUTED 507ee: 4e75 rts 0004a6b4 <_Timespec_Less_than>: bool _Timespec_Less_than( const struct timespec *lhs, const struct timespec *rhs ) { 4a6b4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a6b8: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 4a6bc: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED if ( lhs->tv_sec < rhs->tv_sec ) 4a6c0: 2211 movel %a1@,%d1 <== NOT EXECUTED 4a6c2: 2010 movel %a0@,%d0 <== NOT EXECUTED 4a6c4: b081 cmpl %d1,%d0 <== NOT EXECUTED 4a6c6: 6f04 bles 4a6cc <_Timespec_Less_than+0x18> <== NOT EXECUTED 4a6c8: 7001 moveq #1,%d0 <== NOT EXECUTED 4a6ca: 6014 bras 4a6e0 <_Timespec_Less_than+0x2c> <== NOT EXECUTED return TRUE; if ( lhs->tv_sec > rhs->tv_sec ) 4a6cc: b081 cmpl %d1,%d0 <== NOT EXECUTED 4a6ce: 6c04 bges 4a6d4 <_Timespec_Less_than+0x20> <== NOT EXECUTED 4a6d0: 4200 clrb %d0 <== NOT EXECUTED 4a6d2: 600c bras 4a6e0 <_Timespec_Less_than+0x2c> <== NOT EXECUTED return FALSE; /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec < rhs->tv_nsec ) 4a6d4: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 4a6d8: b1e9 0004 cmpal %a1@(4),%a0 <== NOT EXECUTED 4a6dc: 5ec0 sgt %d0 <== NOT EXECUTED 4a6de: 4480 negl %d0 <== NOT EXECUTED return TRUE; return FALSE; } 4a6e0: 4e5e unlk %fp <== NOT EXECUTED 4a6e2: 4e75 rts 00047a00 <_Timespec_Subtract>: void _Timespec_Subtract( const struct timespec *start, const struct timespec *end, struct timespec *result ) { 47a00: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47a04: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47a06: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 47a0a: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED if (end->tv_nsec < start->tv_nsec) { 47a0e: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED void _Timespec_Subtract( const struct timespec *start, const struct timespec *end, struct timespec *result ) { 47a12: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED if (end->tv_nsec < start->tv_nsec) { 47a16: b0a8 0004 cmpl %a0@(4),%d0 <== NOT EXECUTED 47a1a: 6f1c bles 47a38 <_Timespec_Subtract+0x38> <== NOT EXECUTED result->tv_sec = end->tv_sec - start->tv_sec - 1; 47a1c: 2010 movel %a0@,%d0 <== NOT EXECUTED result->tv_nsec = 47a1e: 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; 47a22: 5380 subql #1,%d0 <== NOT EXECUTED result->tv_nsec = 47a24: 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; 47a2a: 9092 subl %a2@,%d0 <== NOT EXECUTED result->tv_nsec = 47a2c: 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; 47a30: 2280 movel %d0,%a1@ <== NOT EXECUTED result->tv_nsec = 47a32: 2341 0004 movel %d1,%a1@(4) <== NOT EXECUTED 47a36: 6012 bras 47a4a <_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; 47a38: 2010 movel %a0@,%d0 <== NOT EXECUTED 47a3a: 9092 subl %a2@,%d0 <== NOT EXECUTED 47a3c: 2280 movel %d0,%a1@ <== NOT EXECUTED result->tv_nsec = end->tv_nsec - start->tv_nsec; 47a3e: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED 47a42: 90aa 0004 subl %a2@(4),%d0 <== NOT EXECUTED 47a46: 2340 0004 movel %d0,%a1@(4) <== NOT EXECUTED } } 47a4a: 245f moveal %sp@+,%a2 <== NOT EXECUTED 47a4c: 4e5e unlk %fp <== NOT EXECUTED 47a4e: 4e75 rts 0004aa44 <_Timespec_To_ticks>: */ uint32_t _Timespec_To_ticks( const struct timespec *time ) { 4aa44: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4aa48: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED uint32_t ticks; if ( (time->tv_sec == 0) && (time->tv_nsec == 0) ) 4aa4c: 2210 movel %a0@,%d1 <== NOT EXECUTED */ uint32_t _Timespec_To_ticks( const struct timespec *time ) { 4aa4e: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED uint32_t ticks; if ( (time->tv_sec == 0) && (time->tv_nsec == 0) ) 4aa52: 4a81 tstl %d1 <== NOT EXECUTED 4aa54: 660a bnes 4aa60 <_Timespec_To_ticks+0x1c> <== NOT EXECUTED 4aa56: 4aa8 0004 tstl %a0@(4) <== NOT EXECUTED 4aa5a: 6604 bnes 4aa60 <_Timespec_To_ticks+0x1c> <== NOT EXECUTED 4aa5c: 4280 clrl %d0 <== NOT EXECUTED 4aa5e: 6030 bras 4aa90 <_Timespec_To_ticks+0x4c> <== NOT EXECUTED return 0; ticks = time->tv_sec * TOD_TICKS_PER_SECOND; 4aa60: 2039 0005 800a movel 5800a <_TOD_Microseconds_per_tick>,%d0 <== NOT EXECUTED 4aa66: 243c 000f 4240 movel #1000000,%d2 <== NOT EXECUTED 4aa6c: 4c40 2002 remul %d0,%d2,%d2 <== NOT EXECUTED 4aa70: 4c01 2800 mulsl %d1,%d2 <== NOT EXECUTED ticks += (time->tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND) / 4aa74: 2228 0004 movel %a0@(4),%d1 <== NOT EXECUTED 4aa78: 283c 0000 03e8 movel #1000,%d4 <== NOT EXECUTED 4aa7e: 4c44 1001 remul %d4,%d1,%d1 <== NOT EXECUTED 4aa82: 4c40 1001 remul %d0,%d1,%d1 <== NOT EXECUTED 4aa86: 2001 movel %d1,%d0 <== NOT EXECUTED 4aa88: d082 addl %d2,%d0 <== NOT EXECUTED _TOD_Microseconds_per_tick; if (ticks) 4aa8a: 6604 bnes 4aa90 <_Timespec_To_ticks+0x4c> <== NOT EXECUTED 4aa8c: 103c 0001 moveb #1,%d0 <== NOT EXECUTED return ticks; return 1; } 4aa90: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 4aa94: 4e5e unlk %fp <== NOT EXECUTED 4aa96: 4e75 rts 0004aa98 <_User_extensions_Add_API_set>: */ void _User_extensions_Add_API_set ( User_extensions_Control *the_extension ) { 4aa98: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4aa9c: 2f0b movel %a3,%sp@- <== NOT EXECUTED _Chain_Append( &_User_extensions_List, &the_extension->Node ); 4aa9e: 47f9 0004 5964 lea 45964 <_Chain_Append>,%a3 <== NOT EXECUTED */ void _User_extensions_Add_API_set ( User_extensions_Control *the_extension ) { 4aaa4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aaa6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED _Chain_Append( &_User_extensions_List, &the_extension->Node ); 4aaaa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aaac: 4879 0005 801a pea 5801a <_User_extensions_List> <== NOT EXECUTED 4aab2: 4e93 jsr %a3@ <== NOT EXECUTED /* * If a switch handler is present, append it to the switch chain. */ if ( the_extension->Callouts.thread_switch != NULL ) { 4aab4: 202a 0024 movel %a2@(36),%d0 <== NOT EXECUTED 4aab8: 508f addql #8,%sp <== NOT EXECUTED 4aaba: 6712 beqs 4aace <_User_extensions_Add_API_set+0x36> <== NOT EXECUTED the_extension->Switch.thread_switch = the_extension->Callouts.thread_switch; _Chain_Append( 4aabc: 486a 0008 pea %a2@(8) <== NOT EXECUTED 4aac0: 4879 0005 7e80 pea 57e80 <_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; 4aac6: 2540 0010 movel %d0,%a2@(16) <== NOT EXECUTED _Chain_Append( 4aaca: 4e93 jsr %a3@ <== NOT EXECUTED 4aacc: 508f addql #8,%sp <== NOT EXECUTED &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4aace: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4aad2: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4aad6: 4e5e unlk %fp <== NOT EXECUTED 4aad8: 4e75 rts <== NOT EXECUTED ... 0004aadc <_User_extensions_Add_set>: void _User_extensions_Add_set ( User_extensions_Control *the_extension, User_extensions_Table *extension_table ) { 4aadc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4aae0: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4aae2: 2f0a movel %a2,%sp@- <== NOT EXECUTED the_extension->Callouts = *extension_table; 4aae4: 4878 0020 pea 20 <== NOT EXECUTED void _User_extensions_Add_set ( User_extensions_Control *the_extension, User_extensions_Table *extension_table ) { 4aae8: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4aaec: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED the_extension->Callouts = *extension_table; 4aaf0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aaf2: 486b 0014 pea %a3@(20) <== NOT EXECUTED 4aaf6: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED _Chain_Append( &_User_extensions_List, &the_extension->Node ); 4aafc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4aafe: 4879 0005 801a pea 5801a <_User_extensions_List> <== NOT EXECUTED 4ab04: 4eb9 0004 5964 jsr 45964 <_Chain_Append> <== NOT EXECUTED /* * If a switch handler is present, append it to the switch chain. */ if ( extension_table->thread_switch != NULL ) { 4ab0a: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4ab0e: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4ab14: 6726 beqs 4ab3c <_User_extensions_Add_set+0x60> <== NOT EXECUTED the_extension->Switch.thread_switch = extension_table->thread_switch; _Chain_Append( 4ab16: 220b movel %a3,%d1 <== NOT EXECUTED 4ab18: 5081 addql #8,%d1 <== NOT EXECUTED 4ab1a: 2d41 000c movel %d1,%fp@(12) <== NOT EXECUTED 4ab1e: 223c 0005 7e80 movel #360064,%d1 <== NOT EXECUTED 4ab24: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4ab28: 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; 4ab2c: 2740 0010 movel %d0,%a3@(16) <== NOT EXECUTED _Chain_Append( &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4ab30: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4ab34: 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( 4ab36: 4ef9 0004 5964 jmp 45964 <_Chain_Append> <== NOT EXECUTED &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4ab3c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4ab40: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4ab44: 4e5e unlk %fp <== NOT EXECUTED 4ab46: 4e75 rts 00047b5a <_User_extensions_Fatal>: void _User_extensions_Fatal ( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 47b5a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47b5e: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; 47b60: 2479 0005 8022 moveal 58022 <_User_extensions_List+0x8>,%a2 <== NOT EXECUTED void _User_extensions_Fatal ( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 47b66: 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 ); 47b68: 4282 clrl %d2 <== NOT EXECUTED 47b6a: 142e 000f moveb %fp@(15),%d2 <== NOT EXECUTED 47b6e: 601e bras 47b8e <_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 ) 47b70: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 47b74: 4a88 tstl %a0 <== NOT EXECUTED 47b76: 6712 beqs 47b8a <_User_extensions_Fatal+0x30> <== NOT EXECUTED (*the_extension->Callouts.fatal)( the_source, is_internal, the_error ); 47b78: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 47b7c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47b7e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47b82: 4e90 jsr %a0@ <== NOT EXECUTED 47b84: 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 ) { 47b8a: 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 ) ; 47b8e: b5fc 0005 801a cmpal #360474,%a2 <== NOT EXECUTED 47b94: 66da bnes 47b70 <_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 ); } } 47b96: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47b9a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47b9e: 4e5e unlk %fp <== NOT EXECUTED 47ba0: 4e75 rts <== NOT EXECUTED ... 00047a50 <_User_extensions_Handler_initialization>: void _User_extensions_Handler_initialization ( uint32_t number_of_extensions, User_extensions_Table *initial_extensions ) { 47a50: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 47a54: 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); 47a58: 203c 0005 801e movel #360478,%d0 <== NOT EXECUTED 47a5e: 23c0 0005 801a movel %d0,5801a <_User_extensions_List> <== NOT EXECUTED 47a64: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 47a68: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 47a6c: 203c 0005 801a movel #360474,%d0 <== NOT EXECUTED 47a72: 23c0 0005 8022 movel %d0,58022 <_User_extensions_List+0x8> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47a78: 203c 0005 7e84 movel #360068,%d0 <== NOT EXECUTED 47a7e: 23c0 0005 7e80 movel %d0,57e80 <_User_extensions_Switches_list> <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 47a84: 203c 0005 7e80 movel #360064,%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; 47a8a: 42b9 0005 801e clrl 5801e <_User_extensions_List+0x4> <== NOT EXECUTED 47a90: 42b9 0005 7e84 clrl 57e84 <_User_extensions_Switches_list+0x4> <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 47a96: 23c0 0005 7e88 movel %d0,57e88 <_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 ) { 47a9c: 4a84 tstl %d4 <== NOT EXECUTED 47a9e: 674e beqs 47aee <_User_extensions_Handler_initialization+0x9e> <== NOT EXECUTED extension = (User_extensions_Control *) 47aa0: 2005 movel %d5,%d0 <== NOT EXECUTED 47aa2: 2405 movel %d5,%d2 <== NOT EXECUTED 47aa4: e588 lsll #2,%d0 <== NOT EXECUTED 47aa6: e98a lsll #4,%d2 <== NOT EXECUTED 47aa8: 9480 subl %d0,%d2 <== NOT EXECUTED 47aaa: d485 addl %d5,%d2 <== NOT EXECUTED 47aac: e58a lsll #2,%d2 <== NOT EXECUTED 47aae: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47ab0: 4eb9 0004 7ec4 jsr 47ec4 <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED _Workspace_Allocate_or_fatal_error( number_of_extensions * sizeof( User_extensions_Control ) ); memset ( 47ab6: 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 *) 47ab8: 2600 movel %d0,%d3 <== NOT EXECUTED _Workspace_Allocate_or_fatal_error( number_of_extensions * sizeof( User_extensions_Control ) ); memset ( 47aba: 4282 clrl %d2 <== NOT EXECUTED 47abc: 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]); 47abe: 45f9 0004 aadc lea 4aadc <_User_extensions_Add_set>,%a2 <== NOT EXECUTED extension = (User_extensions_Control *) _Workspace_Allocate_or_fatal_error( number_of_extensions * sizeof( User_extensions_Control ) ); memset ( 47ac4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47ac6: 4eb9 0004 bfbc jsr 4bfbc <== NOT EXECUTED 47acc: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 47ad2: 6016 bras 47aea <_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]); 47ad4: 2f04 movel %d4,%sp@- <== NOT EXECUTED extension, 0, number_of_extensions * sizeof( User_extensions_Control ) ); for ( i = 0 ; i < number_of_extensions ; i++ ) { 47ad6: 5282 addql #1,%d2 <== NOT EXECUTED 47ad8: 0684 0000 0020 addil #32,%d4 <== NOT EXECUTED _User_extensions_Add_set (extension, &initial_extensions[i]); 47ade: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47ae0: 4e92 jsr %a2@ <== NOT EXECUTED extension, 0, number_of_extensions * sizeof( User_extensions_Control ) ); for ( i = 0 ; i < number_of_extensions ; i++ ) { 47ae2: 508f addql #8,%sp <== NOT EXECUTED _User_extensions_Add_set (extension, &initial_extensions[i]); extension++; 47ae4: 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++ ) { 47aea: ba82 cmpl %d2,%d5 <== NOT EXECUTED 47aec: 62e6 bhis 47ad4 <_User_extensions_Handler_initialization+0x84> <== NOT EXECUTED _User_extensions_Add_set (extension, &initial_extensions[i]); extension++; } } } 47aee: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED 47af4: 4e5e unlk %fp <== NOT EXECUTED 47af6: 4e75 rts 0004b7c0 <_User_extensions_Remove_set>: */ void _User_extensions_Remove_set ( User_extensions_Control *the_extension ) { 4b7c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b7c4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b7c6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED _Chain_Extract( &the_extension->Node ); 4b7ca: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b7cc: 4eb9 0004 fb40 jsr 4fb40 <_Chain_Extract> <== NOT EXECUTED /* * If a switch handler is present, remove it. */ if ( the_extension->Callouts.thread_switch != NULL ) 4b7d2: 588f addql #4,%sp <== NOT EXECUTED 4b7d4: 4aaa 0024 tstl %a2@(36) <== NOT EXECUTED 4b7d8: 6712 beqs 4b7ec <_User_extensions_Remove_set+0x2c> <== NOT EXECUTED _Chain_Extract( &the_extension->Switch.Node ); 4b7da: 508a addql #8,%a2 <== NOT EXECUTED 4b7dc: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } 4b7e0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4b7e4: 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 ); 4b7e6: 4ef9 0004 fb40 jmp 4fb40 <_Chain_Extract> <== NOT EXECUTED } 4b7ec: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4b7f0: 4e5e unlk %fp <== NOT EXECUTED 4b7f2: 4e75 rts 00047af8 <_User_extensions_Thread_begin>: */ void _User_extensions_Thread_begin ( Thread_Control *executing ) { 47af8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47afc: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; 47afe: 2479 0005 801a moveal 5801a <_User_extensions_List>,%a2 <== NOT EXECUTED 47b04: 6012 bras 47b18 <_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 ) 47b06: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED 47b0a: 4a88 tstl %a0 <== NOT EXECUTED 47b0c: 6708 beqs 47b16 <_User_extensions_Thread_begin+0x1e> <== NOT EXECUTED (*the_extension->Callouts.thread_begin)( executing ); 47b0e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47b12: 4e90 jsr %a0@ <== NOT EXECUTED 47b14: 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 ) { 47b16: 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 ) ; 47b18: b5fc 0005 801e cmpal #360478,%a2 <== NOT EXECUTED 47b1e: 66e6 bnes 47b06 <_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 ); } } 47b20: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47b24: 4e5e unlk %fp <== NOT EXECUTED 47b26: 4e75 rts 00047ba4 <_User_extensions_Thread_create>: */ bool _User_extensions_Thread_create ( Thread_Control *the_thread ) { 47ba4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47ba8: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; bool status; for ( the_node = _User_extensions_List.first ; 47baa: 2479 0005 801a moveal 5801a <_User_extensions_List>,%a2 <== NOT EXECUTED 47bb0: 601c bras 47bce <_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 ) { 47bb2: 206a 0014 moveal %a2@(20),%a0 <== NOT EXECUTED 47bb6: 4a88 tstl %a0 <== NOT EXECUTED 47bb8: 6712 beqs 47bcc <_User_extensions_Thread_create+0x28> <== NOT EXECUTED status = (*the_extension->Callouts.thread_create)( 47bba: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47bbe: 2f39 0005 7f3a movel 57f3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 47bc4: 4e90 jsr %a0@ <== NOT EXECUTED _Thread_Executing, the_thread ); if ( !status ) 47bc6: 508f addql #8,%sp <== NOT EXECUTED 47bc8: 4a00 tstb %d0 <== NOT EXECUTED 47bca: 670c beqs 47bd8 <_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 ) { 47bcc: 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 ) ; 47bce: b5fc 0005 801e cmpal #360478,%a2 <== NOT EXECUTED 47bd4: 66dc bnes 47bb2 <_User_extensions_Thread_create+0xe> <== NOT EXECUTED 47bd6: 7001 moveq #1,%d0 <== NOT EXECUTED return FALSE; } } return TRUE; } 47bd8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47bdc: 4e5e unlk %fp <== NOT EXECUTED 47bde: 4e75 rts 00047be0 <_User_extensions_Thread_delete>: */ void _User_extensions_Thread_delete ( Thread_Control *the_thread ) { 47be0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47be4: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; 47be6: 2479 0005 8022 moveal 58022 <_User_extensions_List+0x8>,%a2 <== NOT EXECUTED 47bec: 601a bras 47c08 <_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 ) 47bee: 206a 0020 moveal %a2@(32),%a0 <== NOT EXECUTED 47bf2: 4a88 tstl %a0 <== NOT EXECUTED 47bf4: 670e beqs 47c04 <_User_extensions_Thread_delete+0x24> <== NOT EXECUTED (*the_extension->Callouts.thread_delete)( 47bf6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47bfa: 2f39 0005 7f3a movel 57f3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 47c00: 4e90 jsr %a0@ <== NOT EXECUTED 47c02: 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 ) { 47c04: 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 ) ; 47c08: b5fc 0005 801a cmpal #360474,%a2 <== NOT EXECUTED 47c0e: 66de bnes 47bee <_User_extensions_Thread_delete+0xe> <== NOT EXECUTED (*the_extension->Callouts.thread_delete)( _Thread_Executing, the_thread ); } } 47c10: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47c14: 4e5e unlk %fp <== NOT EXECUTED 47c16: 4e75 rts 00047b28 <_User_extensions_Thread_exitted>: */ void _User_extensions_Thread_exitted ( Thread_Control *executing ) { 47b28: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47b2c: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; 47b2e: 2479 0005 8022 moveal 58022 <_User_extensions_List+0x8>,%a2 <== NOT EXECUTED 47b34: 6014 bras 47b4a <_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 ) 47b36: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED 47b3a: 4a88 tstl %a0 <== NOT EXECUTED 47b3c: 6708 beqs 47b46 <_User_extensions_Thread_exitted+0x1e> <== NOT EXECUTED (*the_extension->Callouts.thread_exitted)( executing ); 47b3e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47b42: 4e90 jsr %a0@ <== NOT EXECUTED 47b44: 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 ) { 47b46: 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 ) ; 47b4a: b5fc 0005 801a cmpal #360474,%a2 <== NOT EXECUTED 47b50: 66e4 bnes 47b36 <_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 ); } } 47b52: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47b56: 4e5e unlk %fp <== NOT EXECUTED 47b58: 4e75 rts 0004841c <_User_extensions_Thread_restart>: */ void _User_extensions_Thread_restart ( Thread_Control *the_thread ) { 4841c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48420: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; 48422: 2479 0005 9962 moveal 59962 <_User_extensions_List>,%a2 <== NOT EXECUTED 48428: 6018 bras 48442 <_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 ) 4842a: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 4842e: 4a88 tstl %a0 <== NOT EXECUTED 48430: 670e beqs 48440 <_User_extensions_Thread_restart+0x24> <== NOT EXECUTED (*the_extension->Callouts.thread_restart)( 48432: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48436: 2f39 0005 9882 movel 59882 <_Thread_Executing>,%sp@- <== NOT EXECUTED 4843c: 4e90 jsr %a0@ <== NOT EXECUTED 4843e: 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 ) { 48440: 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 ) ; 48442: b5fc 0005 9966 cmpal #366950,%a2 <== NOT EXECUTED 48448: 66e0 bnes 4842a <_User_extensions_Thread_restart+0xe> <== NOT EXECUTED (*the_extension->Callouts.thread_restart)( _Thread_Executing, the_thread ); } } 4844a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4844e: 4e5e unlk %fp <== NOT EXECUTED 48450: 4e75 rts <== NOT EXECUTED ... 00047c18 <_User_extensions_Thread_start>: */ void _User_extensions_Thread_start ( Thread_Control *the_thread ) { 47c18: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47c1c: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; 47c1e: 2479 0005 801a moveal 5801a <_User_extensions_List>,%a2 <== NOT EXECUTED 47c24: 6018 bras 47c3e <_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 ) 47c26: 206a 0018 moveal %a2@(24),%a0 <== NOT EXECUTED 47c2a: 4a88 tstl %a0 <== NOT EXECUTED 47c2c: 670e beqs 47c3c <_User_extensions_Thread_start+0x24> <== NOT EXECUTED (*the_extension->Callouts.thread_start)( 47c2e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47c32: 2f39 0005 7f3a movel 57f3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 47c38: 4e90 jsr %a0@ <== NOT EXECUTED 47c3a: 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 ) { 47c3c: 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 ) ; 47c3e: b5fc 0005 801e cmpal #360478,%a2 <== NOT EXECUTED 47c44: 66e0 bnes 47c26 <_User_extensions_Thread_start+0xe> <== NOT EXECUTED (*the_extension->Callouts.thread_start)( _Thread_Executing, the_thread ); } } 47c46: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47c4a: 4e5e unlk %fp <== NOT EXECUTED 47c4c: 4e75 rts <== NOT EXECUTED ... 00047c50 <_User_extensions_Thread_switch>: */ void _User_extensions_Thread_switch ( Thread_Control *executing, Thread_Control *heir ) { 47c50: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47c54: 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 ; 47c56: 2479 0005 7e80 moveal 57e80 <_User_extensions_Switches_list>,%a2 <== NOT EXECUTED 47c5c: 6012 bras 47c70 <_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 ); 47c5e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 47c62: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47c66: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 47c6a: 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 ) { 47c6c: 2452 moveal %a2@,%a2 <== NOT EXECUTED 47c6e: 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 ) ; 47c70: b5fc 0005 7e84 cmpal #360068,%a2 <== NOT EXECUTED 47c76: 66e6 bnes 47c5e <_User_extensions_Thread_switch+0xe> <== NOT EXECUTED the_extension_switch = (User_extensions_Switch_control *) the_node; (*the_extension_switch->thread_switch)( executing, heir ); } } 47c78: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47c7c: 4e5e unlk %fp <== NOT EXECUTED 47c7e: 4e75 rts 000490b4 <_Watchdog_Adjust>: void _Watchdog_Adjust( Chain_Control *header, Watchdog_Adjust_directions direction, Watchdog_Interval units ) { 490b4: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 490b8: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 490bc: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED void _Watchdog_Adjust( Chain_Control *header, Watchdog_Adjust_directions direction, Watchdog_Interval units ) { 490c2: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 490c6: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 490ca: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 490ce: 2002 movel %d2,%d0 <== NOT EXECUTED 490d0: 40c1 movew %sr,%d1 <== NOT EXECUTED 490d2: 8081 orl %d1,%d0 <== NOT EXECUTED 490d4: 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)); 490d6: 244b moveal %a3,%a2 <== NOT EXECUTED 490d8: 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 ) ) { 490da: b5c8 cmpal %a0,%a2 <== NOT EXECUTED 490dc: 674c beqs 4912a <_Watchdog_Adjust+0x76> <== NOT EXECUTED switch ( direction ) { 490de: 4a89 tstl %a1 <== NOT EXECUTED 490e0: 673c beqs 4911e <_Watchdog_Adjust+0x6a> <== NOT EXECUTED 490e2: 7001 moveq #1,%d0 <== NOT EXECUTED 490e4: b089 cmpl %a1,%d0 <== NOT EXECUTED 490e6: 6642 bnes 4912a <_Watchdog_Adjust+0x76> <== NOT EXECUTED case WATCHDOG_BACKWARD: _Watchdog_First( header )->delta_interval += units; 490e8: d7a8 0010 addl %d3,%a0@(16) <== NOT EXECUTED 490ec: 603c bras 4912a <_Watchdog_Adjust+0x76> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First( Chain_Control *header ) { return ( (Watchdog_Control *) header->first ); 490ee: 2053 moveal %a3@,%a0 <== NOT EXECUTED break; case WATCHDOG_FORWARD: while ( units ) { if ( units < _Watchdog_First( header )->delta_interval ) { 490f0: 2428 0010 movel %a0@(16),%d2 <== NOT EXECUTED 490f4: b483 cmpl %d3,%d2 <== NOT EXECUTED 490f6: 6308 blss 49100 <_Watchdog_Adjust+0x4c> <== NOT EXECUTED _Watchdog_First( header )->delta_interval -= units; 490f8: 9483 subl %d3,%d2 <== NOT EXECUTED 490fa: 2142 0010 movel %d2,%a0@(16) <== NOT EXECUTED 490fe: 602a bras 4912a <_Watchdog_Adjust+0x76> <== NOT EXECUTED break; } else { units -= _Watchdog_First( header )->delta_interval; _Watchdog_First( header )->delta_interval = 1; 49100: 7001 moveq #1,%d0 <== NOT EXECUTED 49102: 2140 0010 movel %d0,%a0@(16) <== NOT EXECUTED _ISR_Enable( level ); 49106: 46c1 movew %d1,%sr <== NOT EXECUTED _Watchdog_Tickle( header ); 49108: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4910a: 4e94 jsr %a4@ <== NOT EXECUTED _ISR_Disable( level ); 4910c: 2004 movel %d4,%d0 <== NOT EXECUTED 4910e: 40c1 movew %sr,%d1 <== NOT EXECUTED 49110: 8081 orl %d1,%d0 <== NOT EXECUTED 49112: 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; 49114: 9682 subl %d2,%d3 <== NOT EXECUTED _Watchdog_Tickle( header ); _ISR_Disable( level ); if ( _Chain_Is_empty( header ) ) 49116: 588f addql #4,%sp <== NOT EXECUTED 49118: b5d3 cmpal %a3@,%a2 <== NOT EXECUTED 4911a: 660a bnes 49126 <_Watchdog_Adjust+0x72> <== NOT EXECUTED 4911c: 600c bras 4912a <_Watchdog_Adjust+0x76> <== NOT EXECUTED _ISR_Enable( level ); _Watchdog_Tickle( header ); _ISR_Disable( level ); 4911e: 2802 movel %d2,%d4 <== NOT EXECUTED units -= _Watchdog_First( header )->delta_interval; _Watchdog_First( header )->delta_interval = 1; _ISR_Enable( level ); _Watchdog_Tickle( header ); 49120: 49f9 0004 92d0 lea 492d0 <_Watchdog_Tickle>,%a4 <== NOT EXECUTED switch ( direction ) { case WATCHDOG_BACKWARD: _Watchdog_First( header )->delta_interval += units; break; case WATCHDOG_FORWARD: while ( units ) { 49126: 4a83 tstl %d3 <== NOT EXECUTED 49128: 66c4 bnes 490ee <_Watchdog_Adjust+0x3a> <== NOT EXECUTED } break; } } _ISR_Enable( level ); 4912a: 46c1 movew %d1,%sr <== NOT EXECUTED } 4912c: 4cee 1c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a4 <== NOT EXECUTED 49132: 4e5e unlk %fp <== NOT EXECUTED 49134: 4e75 rts <== NOT EXECUTED ... 000531a4 <_Watchdog_Adjust_to_chain>: Chain_Control *header, Watchdog_Interval units_arg, Chain_Control *to_fire ) { 531a4: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 531a8: 48d7 0c7c moveml %d2-%d6/%a2-%a3,%sp@ <== NOT EXECUTED 531ac: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 531b0: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 531b4: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED Watchdog_Interval units = units_arg; ISR_Level level; Chain_Node *node; if ( !units ) { 531b8: 676c beqs 53226 <_Watchdog_Adjust_to_chain+0x82> <== NOT EXECUTED return; } _ISR_Disable( level ); 531ba: 307c 0700 moveaw #1792,%a0 <== NOT EXECUTED 531be: 2008 movel %a0,%d0 <== NOT EXECUTED 531c0: 40c4 movew %sr,%d4 <== NOT EXECUTED 531c2: 8084 orl %d4,%d0 <== NOT EXECUTED 531c4: 46c0 movew %d0,%sr <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 531c6: 260a movel %a2,%d3 <== NOT EXECUTED 531c8: 5883 addql #4,%d3 <== NOT EXECUTED if ( !_Chain_Is_empty( header ) ) { 531ca: b692 cmpl %a2@,%d3 <== NOT EXECUTED 531cc: 6756 beqs 53224 <_Watchdog_Adjust_to_chain+0x80> <== NOT EXECUTED 531ce: 2a0b movel %a3,%d5 <== NOT EXECUTED do { node = _Chain_Get_unprotected( header ); _Chain_Append_unprotected( to_fire, node ); _ISR_Flash( level ); 531d0: 2c08 movel %a0,%d6 <== NOT EXECUTED 531d2: 5885 addql #4,%d5 <== NOT EXECUTED 531d4: 2052 moveal %a2@,%a0 <== NOT EXECUTED } _ISR_Disable( level ); if ( !_Chain_Is_empty( header ) ) { while ( units ) { if ( units < _Watchdog_First( header )->delta_interval ) { 531d6: 2428 0010 movel %a0@(16),%d2 <== NOT EXECUTED 531da: b481 cmpl %d1,%d2 <== NOT EXECUTED 531dc: 6308 blss 531e6 <_Watchdog_Adjust_to_chain+0x42> <== NOT EXECUTED _Watchdog_First( header )->delta_interval -= units; 531de: 9481 subl %d1,%d2 <== NOT EXECUTED 531e0: 2142 0010 movel %d2,%a0@(16) <== NOT EXECUTED 531e4: 603e bras 53224 <_Watchdog_Adjust_to_chain+0x80> <== NOT EXECUTED break; } else { units -= _Watchdog_First( header )->delta_interval; _Watchdog_First( header )->delta_interval = 0; 531e6: 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)); 531ea: 2252 moveal %a2@,%a1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected( Chain_Control *the_chain ) { if ( !_Chain_Is_empty(the_chain)) 531ec: b689 cmpl %a1,%d3 <== NOT EXECUTED 531ee: 6604 bnes 531f4 <_Watchdog_Adjust_to_chain+0x50> <== NOT EXECUTED 531f0: 93c9 subal %a1,%a1 <== NOT EXECUTED 531f2: 6008 bras 531fc <_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; 531f4: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_chain->first = new_first; 531f6: 2488 movel %a0,%a2@ <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 531f8: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 531fc: 2285 movel %d5,%a1@ <== NOT EXECUTED old_last_node = the_chain->last; 531fe: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 53202: 2749 0008 movel %a1,%a3@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 53206: 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; 5320a: 2089 movel %a1,%a0@ <== NOT EXECUTED do { node = _Chain_Get_unprotected( header ); _Chain_Append_unprotected( to_fire, node ); _ISR_Flash( level ); 5320c: 2006 movel %d6,%d0 <== NOT EXECUTED 5320e: 46c4 movew %d4,%sr <== NOT EXECUTED 53210: 8084 orl %d4,%d0 <== NOT EXECUTED 53212: 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)); 53214: 2052 moveal %a2@,%a0 <== NOT EXECUTED } while ( !_Chain_Is_empty( header ) && _Watchdog_First( header )->delta_interval == 0 ); 53216: b688 cmpl %a0,%d3 <== NOT EXECUTED 53218: 670a beqs 53224 <_Watchdog_Adjust_to_chain+0x80> <== NOT EXECUTED 5321a: 4aa8 0010 tstl %a0@(16) <== NOT EXECUTED 5321e: 67ca beqs 531ea <_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; 53220: 9282 subl %d2,%d1 <== NOT EXECUTED return; } _ISR_Disable( level ); if ( !_Chain_Is_empty( header ) ) { while ( units ) { 53222: 66b0 bnes 531d4 <_Watchdog_Adjust_to_chain+0x30> <== NOT EXECUTED break; } } } _ISR_Enable( level ); 53224: 46c4 movew %d4,%sr <== NOT EXECUTED } 53226: 4cd7 0c7c moveml %sp@,%d2-%d6/%a2-%a3 <== NOT EXECUTED 5322a: 4e5e unlk %fp <== NOT EXECUTED 5322c: 4e75 rts <== NOT EXECUTED ... 00047d50 <_Watchdog_Handler_initialization>: * Output parameters: NONE */ void _Watchdog_Handler_initialization( void ) { _Watchdog_Sync_count = 0; 47d50: 42b9 0005 7fc0 clrl 57fc0 <_Watchdog_Sync_count> <== NOT EXECUTED * * Output parameters: NONE */ void _Watchdog_Handler_initialization( void ) { 47d56: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Watchdog_Sync_count = 0; _Watchdog_Sync_level = 0; 47d5a: 42b9 0005 7f36 clrl 57f36 <_Watchdog_Sync_level> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47d60: 41f9 0005 7f58 lea 57f58 <_Watchdog_Ticks_chain>,%a0 <== NOT EXECUTED _Watchdog_Ticks_since_boot = 0; _Chain_Initialize_empty( &_Watchdog_Ticks_chain ); _Chain_Initialize_empty( &_Watchdog_Seconds_chain ); } 47d66: 43f9 0005 7f4c lea 57f4c <_Watchdog_Seconds_chain>,%a1 <== NOT EXECUTED 47d6c: 4e5e unlk %fp <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 47d6e: 23c8 0005 7f60 movel %a0,57f60 <_Watchdog_Ticks_chain+0x8> <== NOT EXECUTED 47d74: 23c9 0005 7f54 movel %a1,57f54 <_Watchdog_Seconds_chain+0x8> <== NOT EXECUTED void _Watchdog_Handler_initialization( void ) { _Watchdog_Sync_count = 0; _Watchdog_Sync_level = 0; _Watchdog_Ticks_since_boot = 0; 47d7a: 42b9 0005 7fc4 clrl 57fc4 <_Watchdog_Ticks_since_boot> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47d80: 20bc 0005 7f5c movel #360284,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 47d86: 42b9 0005 7f5c clrl 57f5c <_Watchdog_Ticks_chain+0x4> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 47d8c: 22bc 0005 7f50 movel #360272,%a1@ <== NOT EXECUTED the_chain->permanent_null = NULL; 47d92: 42b9 0005 7f50 clrl 57f50 <_Watchdog_Seconds_chain+0x4> <== NOT EXECUTED _Chain_Initialize_empty( &_Watchdog_Ticks_chain ); _Chain_Initialize_empty( &_Watchdog_Seconds_chain ); } 47d98: 4e75 rts <== NOT EXECUTED ... 00047c80 <_Watchdog_Insert>: void _Watchdog_Insert( Chain_Control *header, Watchdog_Control *the_watchdog ) { 47c80: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 47c84: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 47c88: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 47c8c: 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; 47c90: 2639 0005 7f1a movel 57f1a <_ISR_Nest_level>,%d3 <== NOT EXECUTED _ISR_Disable( level ); 47c96: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 47c9c: 2001 movel %d1,%d0 <== NOT EXECUTED 47c9e: 40c4 movew %sr,%d4 <== NOT EXECUTED 47ca0: 8084 orl %d4,%d0 <== NOT EXECUTED 47ca2: 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 ) { 47ca4: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 47ca8: 6706 beqs 47cb0 <_Watchdog_Insert+0x30> <== NOT EXECUTED _ISR_Enable( level ); 47caa: 46c4 movew %d4,%sr <== NOT EXECUTED 47cac: 6000 009a braw 47d48 <_Watchdog_Insert+0xc8> <== NOT EXECUTED return; } the_watchdog->state = WATCHDOG_BEING_INSERTED; _Watchdog_Sync_count++; 47cb0: 2039 0005 7fc0 movel 57fc0 <_Watchdog_Sync_count>,%d0 <== NOT EXECUTED if ( the_watchdog->state != WATCHDOG_INACTIVE ) { _ISR_Enable( level ); return; } the_watchdog->state = WATCHDOG_BEING_INSERTED; 47cb6: 7401 moveq #1,%d2 <== NOT EXECUTED _Watchdog_Sync_count++; 47cb8: 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 ); 47cba: 2241 moveal %d1,%a1 <== NOT EXECUTED if ( the_watchdog->state != WATCHDOG_INACTIVE ) { _ISR_Enable( level ); return; } the_watchdog->state = WATCHDOG_BEING_INSERTED; 47cbc: 2542 0008 movel %d2,%a2@(8) <== NOT EXECUTED _Watchdog_Sync_count++; 47cc0: 23c0 0005 7fc0 movel %d0,57fc0 <_Watchdog_Sync_count> <== NOT EXECUTED restart: delta_interval = the_watchdog->initial; 47cc6: 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 ; 47cca: 2053 moveal %a3@,%a0 <== NOT EXECUTED ; after = _Watchdog_Next( after ) ) { if ( delta_interval == 0 || !_Watchdog_Next( after ) ) 47ccc: 4a82 tstl %d2 <== NOT EXECUTED 47cce: 673c beqs 47d0c <_Watchdog_Insert+0x8c> <== NOT EXECUTED 47cd0: 4a90 tstl %a0@ <== NOT EXECUTED 47cd2: 6738 beqs 47d0c <_Watchdog_Insert+0x8c> <== NOT EXECUTED break; if ( delta_interval < after->delta_interval ) { 47cd4: 2228 0010 movel %a0@(16),%d1 <== NOT EXECUTED 47cd8: b282 cmpl %d2,%d1 <== NOT EXECUTED 47cda: 6308 blss 47ce4 <_Watchdog_Insert+0x64> <== NOT EXECUTED after->delta_interval -= delta_interval; 47cdc: 9282 subl %d2,%d1 <== NOT EXECUTED 47cde: 2141 0010 movel %d1,%a0@(16) <== NOT EXECUTED 47ce2: 6028 bras 47d0c <_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 ); 47ce4: 2009 movel %a1,%d0 <== NOT EXECUTED 47ce6: 46c4 movew %d4,%sr <== NOT EXECUTED 47ce8: 8084 orl %d4,%d0 <== NOT EXECUTED 47cea: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) { 47cec: 7001 moveq #1,%d0 <== NOT EXECUTED if ( delta_interval < after->delta_interval ) { after->delta_interval -= delta_interval; break; } delta_interval -= after->delta_interval; 47cee: 9481 subl %d1,%d2 <== NOT EXECUTED * mechanism used here WAS redesigned to address this. */ _ISR_Flash( level ); if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) { 47cf0: b0aa 0008 cmpl %a2@(8),%d0 <== NOT EXECUTED 47cf4: 663c bnes 47d32 <_Watchdog_Insert+0xb2> <== NOT EXECUTED goto exit_insert; } if ( _Watchdog_Sync_level > insert_isr_nest_level ) { 47cf6: 2039 0005 7f36 movel 57f36 <_Watchdog_Sync_level>,%d0 <== NOT EXECUTED 47cfc: b680 cmpl %d0,%d3 <== NOT EXECUTED 47cfe: 6408 bccs 47d08 <_Watchdog_Insert+0x88> <== NOT EXECUTED _Watchdog_Sync_level = insert_isr_nest_level; 47d00: 23c3 0005 7f36 movel %d3,57f36 <_Watchdog_Sync_level> <== NOT EXECUTED 47d06: 60be bras 47cc6 <_Watchdog_Insert+0x46> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next( Watchdog_Control *the_watchdog ) { return ( (Watchdog_Control *) the_watchdog->Node.next ); 47d08: 2050 moveal %a0@,%a0 <== NOT EXECUTED 47d0a: 60c0 bras 47ccc <_Watchdog_Insert+0x4c> <== NOT EXECUTED _Watchdog_Activate( the_watchdog ); the_watchdog->delta_interval = delta_interval; _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node ); 47d0c: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 47d10: 2250 moveal %a0@,%a1 <== NOT EXECUTED the_watchdog->start_time = _Watchdog_Ticks_since_boot; 47d12: 2039 0005 7fc4 movel 57fc4 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED after_node->next = the_node; 47d18: 208a movel %a2,%a0@ <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Activate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_ACTIVE; 47d1a: 7202 moveq #2,%d1 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 47d1c: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 47d20: 2541 0008 movel %d1,%a2@(8) <== NOT EXECUTED 47d24: 2540 0014 movel %d0,%a2@(20) <== NOT EXECUTED } } _Watchdog_Activate( the_watchdog ); the_watchdog->delta_interval = delta_interval; 47d28: 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; 47d2c: 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; 47d30: 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; 47d32: 23c3 0005 7f36 movel %d3,57f36 <_Watchdog_Sync_level> <== NOT EXECUTED _Watchdog_Sync_count--; 47d38: 2039 0005 7fc0 movel 57fc0 <_Watchdog_Sync_count>,%d0 <== NOT EXECUTED 47d3e: 5380 subql #1,%d0 <== NOT EXECUTED 47d40: 23c0 0005 7fc0 movel %d0,57fc0 <_Watchdog_Sync_count> <== NOT EXECUTED _ISR_Enable( level ); 47d46: 46c4 movew %d4,%sr <== NOT EXECUTED } 47d48: 4cd7 0c1c moveml %sp@,%d2-%d4/%a2-%a3 <== NOT EXECUTED 47d4c: 4e5e unlk %fp <== NOT EXECUTED 47d4e: 4e75 rts 00047d9c <_Watchdog_Remove>: */ Watchdog_States _Watchdog_Remove( Watchdog_Control *the_watchdog ) { 47d9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47da0: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; Watchdog_States previous_state; Watchdog_Control *next_watchdog; _ISR_Disable( level ); 47da2: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Watchdog_States _Watchdog_Remove( Watchdog_Control *the_watchdog ) { 47da8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47daa: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; Watchdog_States previous_state; Watchdog_Control *next_watchdog; _ISR_Disable( level ); 47dae: 40c2 movew %sr,%d2 <== NOT EXECUTED 47db0: 8082 orl %d2,%d0 <== NOT EXECUTED 47db2: 46c0 movew %d0,%sr <== NOT EXECUTED previous_state = the_watchdog->state; 47db4: 222a 0008 movel %a2@(8),%d1 <== NOT EXECUTED switch ( previous_state ) { 47db8: 7001 moveq #1,%d0 <== NOT EXECUTED 47dba: b081 cmpl %d1,%d0 <== NOT EXECUTED 47dbc: 670c beqs 47dca <_Watchdog_Remove+0x2e> <== NOT EXECUTED 47dbe: 6242 bhis 47e02 <_Watchdog_Remove+0x66> <== NOT EXECUTED 47dc0: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 47dc4: b081 cmpl %d1,%d0 <== NOT EXECUTED 47dc6: 653a bcss 47e02 <_Watchdog_Remove+0x66> <== NOT EXECUTED 47dc8: 6006 bras 47dd0 <_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; 47dca: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED 47dce: 6032 bras 47e02 <_Watchdog_Remove+0x66> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next( Watchdog_Control *the_watchdog ) { return ( (Watchdog_Control *) the_watchdog->Node.next ); 47dd0: 2052 moveal %a2@,%a0 <== NOT EXECUTED break; case WATCHDOG_ACTIVE: case WATCHDOG_REMOVE_IT: the_watchdog->state = WATCHDOG_INACTIVE; 47dd2: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED next_watchdog = _Watchdog_Next( the_watchdog ); if ( _Watchdog_Next(next_watchdog) ) 47dd6: 4a90 tstl %a0@ <== NOT EXECUTED 47dd8: 6708 beqs 47de2 <_Watchdog_Remove+0x46> <== NOT EXECUTED next_watchdog->delta_interval += the_watchdog->delta_interval; 47dda: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 47dde: d1a8 0010 addl %d0,%a0@(16) <== NOT EXECUTED if ( _Watchdog_Sync_count ) 47de2: 2039 0005 7fc0 movel 57fc0 <_Watchdog_Sync_count>,%d0 <== NOT EXECUTED 47de8: 670c beqs 47df6 <_Watchdog_Remove+0x5a> <== NOT EXECUTED _Watchdog_Sync_level = _ISR_Nest_level; 47dea: 2039 0005 7f1a movel 57f1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED 47df0: 23c0 0005 7f36 movel %d0,57f36 <_Watchdog_Sync_level> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 47df6: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 47df8: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED next->previous = previous; previous->next = next; 47dfc: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 47dfe: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED _Chain_Extract_unprotected( &the_watchdog->Node ); break; } the_watchdog->stop_time = _Watchdog_Ticks_since_boot; 47e02: 2039 0005 7fc4 movel 57fc4 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED 47e08: 2540 0018 movel %d0,%a2@(24) <== NOT EXECUTED _ISR_Enable( level ); 47e0c: 46c2 movew %d2,%sr <== NOT EXECUTED return( previous_state ); } 47e0e: 241f movel %sp@+,%d2 <== NOT EXECUTED 47e10: 245f moveal %sp@+,%a2 <== NOT EXECUTED 47e12: 4e5e unlk %fp <== NOT EXECUTED 47e14: 2001 movel %d1,%d0 <== NOT EXECUTED 47e16: 4e75 rts 00047e18 <_Watchdog_Tickle>: */ void _Watchdog_Tickle( Chain_Control *header ) { 47e18: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 47e1c: 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 ); 47e20: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ void _Watchdog_Tickle( Chain_Control *header ) { 47e26: 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 ); 47e2a: 40c2 movew %sr,%d2 <== NOT EXECUTED 47e2c: 8082 orl %d2,%d0 <== NOT EXECUTED 47e2e: 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)); 47e30: 264d moveal %a5,%a3 <== NOT EXECUTED 47e32: 205b moveal %a3@+,%a0 <== NOT EXECUTED if ( _Chain_Is_empty( header ) ) 47e34: b7c8 cmpal %a0,%a3 <== NOT EXECUTED 47e36: 6750 beqs 47e88 <_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) { 47e38: 2028 0010 movel %a0@(16),%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First( Chain_Control *header ) { return ( (Watchdog_Control *) header->first ); 47e3c: 2448 moveal %a0,%a2 <== NOT EXECUTED 47e3e: 6708 beqs 47e48 <_Watchdog_Tickle+0x30> <== NOT EXECUTED the_watchdog->delta_interval--; 47e40: 5380 subql #1,%d0 <== NOT EXECUTED 47e42: 2140 0010 movel %d0,%a0@(16) <== NOT EXECUTED if ( the_watchdog->delta_interval != 0 ) 47e46: 6640 bnes 47e88 <_Watchdog_Tickle+0x70> <== NOT EXECUTED goto leave; } do { watchdog_state = _Watchdog_Remove( the_watchdog ); 47e48: 49f9 0004 7d9c lea 47d9c <_Watchdog_Remove>,%a4 <== NOT EXECUTED case WATCHDOG_REMOVE_IT: break; } _ISR_Disable( level ); 47e4e: 263c 0000 0700 movel #1792,%d3 <== NOT EXECUTED if ( the_watchdog->delta_interval != 0 ) goto leave; } do { watchdog_state = _Watchdog_Remove( the_watchdog ); 47e54: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47e56: 4e94 jsr %a4@ <== NOT EXECUTED _ISR_Enable( level ); 47e58: 46c2 movew %d2,%sr <== NOT EXECUTED switch( watchdog_state ) { 47e5a: 7202 moveq #2,%d1 <== NOT EXECUTED 47e5c: 588f addql #4,%sp <== NOT EXECUTED 47e5e: b280 cmpl %d0,%d1 <== NOT EXECUTED 47e60: 6610 bnes 47e72 <_Watchdog_Tickle+0x5a> <== NOT EXECUTED case WATCHDOG_ACTIVE: (*the_watchdog->routine)( 47e62: 2f2a 0024 movel %a2@(36),%sp@- <== NOT EXECUTED 47e66: 2f2a 0020 movel %a2@(32),%sp@- <== NOT EXECUTED 47e6a: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 47e6e: 4e90 jsr %a0@ <== NOT EXECUTED 47e70: 508f addql #8,%sp <== NOT EXECUTED case WATCHDOG_REMOVE_IT: break; } _ISR_Disable( level ); 47e72: 2003 movel %d3,%d0 <== NOT EXECUTED 47e74: 40c2 movew %sr,%d2 <== NOT EXECUTED 47e76: 8082 orl %d2,%d0 <== NOT EXECUTED 47e78: 46c0 movew %d0,%sr <== NOT EXECUTED 47e7a: 2015 movel %a5@,%d0 <== NOT EXECUTED 47e7c: 2440 moveal %d0,%a2 <== NOT EXECUTED the_watchdog = _Watchdog_First( header ); } while ( !_Chain_Is_empty( header ) && (the_watchdog->delta_interval == 0) ); 47e7e: b7c0 cmpal %d0,%a3 <== NOT EXECUTED 47e80: 6706 beqs 47e88 <_Watchdog_Tickle+0x70> <== NOT EXECUTED 47e82: 4aaa 0010 tstl %a2@(16) <== NOT EXECUTED 47e86: 67cc beqs 47e54 <_Watchdog_Tickle+0x3c> <== NOT EXECUTED leave: _ISR_Enable(level); 47e88: 46c2 movew %d2,%sr <== NOT EXECUTED } 47e8a: 4cee 3c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a5 <== NOT EXECUTED 47e90: 4e5e unlk %fp <== NOT EXECUTED 47e92: 4e75 rts 00047eac <_Workspace_Allocate>: * _Workspace_Allocate */ void *_Workspace_Allocate( size_t size ) { 47eac: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Heap_Allocate( &_Workspace_Area, size ); 47eb0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47eb4: 4879 0005 7e9e pea 57e9e <_Workspace_Area> <== NOT EXECUTED 47eba: 4eb9 0004 a3b0 jsr 4a3b0 <_Heap_Allocate> <== NOT EXECUTED } 47ec0: 4e5e unlk %fp <== NOT EXECUTED 47ec2: 4e75 rts 00047ec4 <_Workspace_Allocate_or_fatal_error>: * _Workspace_Allocate_or_fatal_error */ void *_Workspace_Allocate_or_fatal_error( size_t size ) { 47ec4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED */ void *_Workspace_Allocate( size_t size ) { return _Heap_Allocate( &_Workspace_Area, size ); 47ec8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47ecc: 4879 0005 7e9e pea 57e9e <_Workspace_Area> <== NOT EXECUTED 47ed2: 4eb9 0004 a3b0 jsr 4a3b0 <_Heap_Allocate> <== NOT EXECUTED { void *memory; memory = _Workspace_Allocate( size ); if ( memory == NULL ) 47ed8: 508f addql #8,%sp <== NOT EXECUTED 47eda: 4a80 tstl %d0 <== NOT EXECUTED 47edc: 6610 bnes 47eee <_Workspace_Allocate_or_fatal_error+0x2a> <== NOT EXECUTED _Internal_error_Occurred( 47ede: 4878 0004 pea 4 <== NOT EXECUTED 47ee2: 4878 0001 pea 1 <== NOT EXECUTED 47ee6: 42a7 clrl %sp@- <== NOT EXECUTED 47ee8: 4eb9 0004 5ffc jsr 45ffc <_Internal_error_Occurred> <== NOT EXECUTED TRUE, INTERNAL_ERROR_WORKSPACE_ALLOCATION ); return memory; } 47eee: 4e5e unlk %fp <== NOT EXECUTED 47ef0: 4e75 rts 00047e94 <_Workspace_Free>: * _Workspace_Free */ bool _Workspace_Free( void *block ) { 47e94: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Heap_Free( &_Workspace_Area, block ); 47e98: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47e9c: 4879 0005 7e9e pea 57e9e <_Workspace_Area> <== NOT EXECUTED 47ea2: 4eb9 0004 a430 jsr 4a430 <_Heap_Free> <== NOT EXECUTED } 47ea8: 4e5e unlk %fp <== NOT EXECUTED 47eaa: 4e75 rts 00047ef2 <_Workspace_Handler_initialization>: */ void _Workspace_Handler_initialization( void *starting_address, size_t size ) { 47ef2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47ef6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47ef8: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 47efc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47efe: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED uint32_t memory_available; if ( !starting_address || !_Addresses_Is_aligned( starting_address ) ) 47f02: 6706 beqs 47f0a <_Workspace_Handler_initialization+0x18> <== NOT EXECUTED 47f04: 7003 moveq #3,%d0 <== NOT EXECUTED 47f06: c082 andl %d2,%d0 <== NOT EXECUTED 47f08: 6706 beqs 47f10 <_Workspace_Handler_initialization+0x1e> <== NOT EXECUTED _Internal_error_Occurred( 47f0a: 4878 0002 pea 2 <== NOT EXECUTED 47f0e: 6040 bras 47f50 <_Workspace_Handler_initialization+0x5e> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_INVALID_WORKSPACE_ADDRESS ); if ( _Configuration_Table->do_zero_of_workspace ) 47f10: 2079 0005 7f16 moveal 57f16 <_Configuration_Table>,%a0 <== NOT EXECUTED 47f16: 4a28 0028 tstb %a0@(40) <== NOT EXECUTED 47f1a: 6712 beqs 47f2e <_Workspace_Handler_initialization+0x3c> <== NOT EXECUTED memset( starting_address, 0, size ); 47f1c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47f1e: 42a7 clrl %sp@- <== NOT EXECUTED 47f20: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47f22: 4eb9 0004 bfbc jsr 4bfbc <== NOT EXECUTED 47f28: dffc 0000 000c addal #12,%sp <== NOT EXECUTED memory_available = _Heap_Initialize( 47f2e: 4878 0004 pea 4 <== NOT EXECUTED 47f32: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47f34: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47f36: 4879 0005 7e9e pea 57e9e <_Workspace_Area> <== NOT EXECUTED 47f3c: 4eb9 0004 5e28 jsr 45e28 <_Heap_Initialize> <== NOT EXECUTED starting_address, size, CPU_HEAP_ALIGNMENT ); if ( memory_available == 0 ) 47f42: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 47f48: 4a80 tstl %d0 <== NOT EXECUTED 47f4a: 6610 bnes 47f5c <_Workspace_Handler_initialization+0x6a> <== NOT EXECUTED _Internal_error_Occurred( 47f4c: 4878 0003 pea 3 <== NOT EXECUTED 47f50: 4878 0001 pea 1 <== NOT EXECUTED 47f54: 42a7 clrl %sp@- <== NOT EXECUTED 47f56: 4eb9 0004 5ffc jsr 45ffc <_Internal_error_Occurred> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_TOO_LITTLE_WORKSPACE ); } 47f5c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47f60: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 47f64: 4e5e unlk %fp <== NOT EXECUTED 47f66: 4e75 rts 00048be2 <__assert>: void __assert( const char *file, int line, const char *failedexpr ) { 48be2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED __assert_func (file, line, NULL, failedexpr); 48be6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 48bea: 42a7 clrl %sp@- <== NOT EXECUTED 48bec: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48bf0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48bf4: 4eb9 0004 8ba4 jsr 48ba4 <__assert_func> <== NOT EXECUTED 48bfa: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 48c00: 4e5e unlk %fp <== NOT EXECUTED 48c02: 4e75 rts 00048ba4 <__assert_func>: const char *file, int line, const char *func, const char *failedexpr ) { 48ba4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48ba8: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED printk("assertion \"%s\" failed: file \"%s\", line %d%s%s\n", 48bac: 203c 0005 537e movel #349054,%d0 <== NOT EXECUTED 48bb2: 4a81 tstl %d1 <== NOT EXECUTED 48bb4: 6608 bnes 48bbe <__assert_func+0x1a> <== NOT EXECUTED 48bb6: 203c 0005 5088 movel #348296,%d0 <== NOT EXECUTED 48bbc: 2200 movel %d0,%d1 <== NOT EXECUTED 48bbe: 2f01 movel %d1,%sp@- <== NOT EXECUTED 48bc0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48bc2: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48bc6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48bca: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 48bce: 4879 0005 538b pea 5538b <== NOT EXECUTED 48bd4: 4eb9 0004 2c3a jsr 42c3a <== NOT EXECUTED file, line, (func) ? ", function: " : "", (func) ? func : "" ); rtems_fatal_error_occurred(0); 48bda: 42a7 clrl %sp@- <== NOT EXECUTED 48bdc: 4eb9 0004 5580 jsr 45580 <== NOT EXECUTED 0005a658 <__env_lock>: 5a658: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5a65c: 4e5e unlk %fp <== NOT EXECUTED 5a65e: 4e75 rts 0005a660 <__env_unlock>: 5a660: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5a664: 4e5e unlk %fp <== NOT EXECUTED 5a666: 4e75 rts 00053c64 <_calloc_r>: void *_calloc_r( struct _reent *ignored, size_t elements, size_t size ) { 53c64: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 53c68: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return calloc( elements, size ); 53c6c: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 53c72: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 53c76: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ignored, size_t elements, size_t size ) { return calloc( elements, size ); 53c78: 4ef9 0004 8d9c jmp 48d9c <== NOT EXECUTED ... 00048e7a <_close_r>: int _close_r( struct _reent *ptr, int fd ) { 48e7a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return close( fd ); 48e7e: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 48e84: 4e5e unlk %fp <== NOT EXECUTED int _close_r( struct _reent *ptr, int fd ) { return close( fd ); 48e86: 4ef9 0004 8dec jmp 48dec <== 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 48bc jsr 548bc <_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 5524 jsr 45524 <== NOT EXECUTED 424e6: 588f addql #4,%sp <== NOT EXECUTED 424e8: 60fe bras 424e8 <_exit+0x1c> <== NOT EXECUTED ... 0006683e <_fcntl_r>: struct _reent *ptr, int fd, int cmd, int arg ) { 6683e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 66842: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 66846: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return fcntl( fd, cmd, arg ); 6684a: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 66850: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 66854: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 66858: 4e5e unlk %fp <== NOT EXECUTED int fd, int cmd, int arg ) { return fcntl( fd, cmd, arg ); 6685a: 4ef9 0006 66b4 jmp 666b4 <== NOT EXECUTED 00053c80 <_free_r>: void _free_r( struct _reent *ignored, void *ptr ) { 53c80: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED free( ptr ); 53c84: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 53c8a: 4e5e unlk %fp <== NOT EXECUTED void _free_r( struct _reent *ignored, void *ptr ) { free( ptr ); 53c8c: 4ef9 0004 8e8c jmp 48e8c <== NOT EXECUTED ... 00053d4c <_fstat_r>: int _fstat_r( struct _reent *ptr, int fd, struct stat *buf ) { 53d4c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 53d50: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return fstat( fd, buf ); 53d54: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 53d5a: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 53d5e: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, int fd, struct stat *buf ) { return fstat( fd, buf ); 53d60: 4ef9 0005 3c94 jmp 53c94 <== NOT EXECUTED ... 00053d72 <_getpid_r>: #include pid_t _getpid_r( struct _reent *ptr ) { 53d72: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getpid(); } 53d76: 4e5e unlk %fp <== NOT EXECUTED 53d78: 7001 moveq #1,%d0 <== NOT EXECUTED 53d7a: 4e75 rts 0004906e <_gettimeofday>: int _gettimeofday( struct timeval *tp, struct timezone *tzp ) { 4906e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return gettimeofday( tp, tzp ); } 49072: 4e5e unlk %fp <== NOT EXECUTED int _gettimeofday( struct timeval *tp, struct timezone *tzp ) { return gettimeofday( tp, tzp ); 49074: 4ef9 0004 9010 jmp 49010 <== NOT EXECUTED 0004907a <_gettimeofday_r>: int _gettimeofday_r( struct _reent *ignored_reentrancy_stuff, struct timeval *tp, struct timezone *tzp ) { 4907a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4907e: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return gettimeofday( tp, tzp ); 49082: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 49088: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 4908c: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ignored_reentrancy_stuff, struct timeval *tp, struct timezone *tzp ) { return gettimeofday( tp, tzp ); 4908e: 4ef9 0004 9010 jmp 49010 <== NOT EXECUTED 00053fc8 <_kill_r>: int _kill_r( struct _reent *ptr, pid_t pid, int sig ) { 53fc8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return killinfo( pid, sig, NULL ); 53fcc: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED 53fd2: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 53fd8: 42ae 0010 clrl %fp@(16) <== NOT EXECUTED } 53fdc: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, pid_t pid, int sig ) { return killinfo( pid, sig, NULL ); 53fde: 4ef9 0005 4178 jmp 54178 <== NOT EXECUTED 0005bfa6 <_link_r>: int _link_r( struct _reent *ptr, const char *existing, const char *new ) { 5bfa6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5bfaa: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return link( existing, new ); 5bfae: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 5bfb4: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 5bfb8: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, const char *existing, const char *new ) { return link( existing, new ); 5bfba: 4ef9 0005 bdc4 jmp 5bdc4 <== NOT EXECUTED 00053e84 <_lseek_r>: struct _reent *ptr, int fd, off_t offset, int whence ) { 53e84: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 53e88: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 53e8c: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return lseek( fd, offset, whence ); 53e90: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 53e96: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 53e9a: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 53e9e: 4e5e unlk %fp <== NOT EXECUTED int fd, off_t offset, int whence ) { return lseek( fd, offset, whence ); 53ea0: 4ef9 0005 3db4 jmp 53db4 <== NOT EXECUTED ... 0005c16c <_lstat_r>: int _STAT_R_NAME( struct _reent *ptr, const char *path, struct stat *buf ) { 5c16c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5c170: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return _STAT_NAME( path, buf ); 5c174: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 5c17a: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 5c17e: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, const char *path, struct stat *buf ) { return _STAT_NAME( path, buf ); 5c180: 4ef9 0005 c0b4 jmp 5c0b4 <== NOT EXECUTED ... 00053ea8 <_malloc_r>: void *_malloc_r( struct _reent *ignored, size_t size ) { 53ea8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return malloc( size ); 53eac: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 53eb2: 4e5e unlk %fp <== NOT EXECUTED void *_malloc_r( struct _reent *ignored, size_t size ) { return malloc( size ); 53eb4: 4ef9 0004 93a0 jmp 493a0 <== NOT EXECUTED ... 000429ac <_open_r>: struct _reent *ptr, const char *buf, int flags, int mode ) { 429ac: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 429b0: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 429b4: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return open( buf, flags, mode ); 429b8: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 429be: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 429c2: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 429c6: 4e5e unlk %fp <== NOT EXECUTED const char *buf, int flags, int mode ) { return open( buf, flags, mode ); 429c8: 4ef9 0004 27b0 jmp 427b0 <== NOT EXECUTED ... 00053f64 <_read_r>: struct _reent *ptr, int fd, void *buf, size_t nbytes ) { 53f64: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 53f68: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 53f6c: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return read( fd, buf, nbytes ); 53f70: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 53f76: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 53f7a: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 53f7e: 4e5e unlk %fp <== NOT EXECUTED int fd, void *buf, size_t nbytes ) { return read( fd, buf, nbytes ); 53f80: 4ef9 0005 3ebc jmp 53ebc <== NOT EXECUTED ... 00053f88 <_realloc_r>: void *_realloc_r( struct _reent *ignored, void *ptr, size_t size ) { 53f88: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 53f8c: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return realloc( ptr, size ); 53f90: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 53f96: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 53f9a: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ignored, void *ptr, size_t size ) { return realloc( ptr, size ); 53f9c: 4ef9 0005 3fe4 jmp 53fe4 <== NOT EXECUTED ... 00078014 <_rename_r>: int _rename_r( struct _reent *ptr, const char *old, const char *new ) { 78014: 4e56 ffb4 linkw %fp,#-76 <== NOT EXECUTED 78018: 2f02 movel %d2,%sp@- <== NOT EXECUTED 7801a: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED struct stat sb; int s; s = stat( old, &sb); 7801e: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 78022: 2f02 movel %d2,%sp@- <== NOT EXECUTED 78024: 4eb9 0004 66c4 jsr 466c4 <== NOT EXECUTED if ( s < 0 ) 7802a: 508f addql #8,%sp <== NOT EXECUTED 7802c: 4a80 tstl %d0 <== NOT EXECUTED 7802e: 6d38 blts 78068 <_rename_r+0x54> <== NOT EXECUTED return s; s = link( old, new ); 78030: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 78034: 2f02 movel %d2,%sp@- <== NOT EXECUTED 78036: 4eb9 0005 bdc4 jsr 5bdc4 <== NOT EXECUTED if ( s < 0 ) 7803c: 508f addql #8,%sp <== NOT EXECUTED 7803e: 4a80 tstl %d0 <== NOT EXECUTED 78040: 6d26 blts 78068 <_rename_r+0x54> <== NOT EXECUTED return s; return S_ISDIR(sb.st_mode) ? rmdir( old ) : unlink( old ); 78042: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 78046: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 7804c: 0c80 0000 4000 cmpil #16384,%d0 <== NOT EXECUTED 78052: 660a bnes 7805e <_rename_r+0x4a> <== NOT EXECUTED 78054: 2f02 movel %d2,%sp@- <== NOT EXECUTED 78056: 4eb9 0005 c798 jsr 5c798 <== NOT EXECUTED 7805c: 6008 bras 78066 <_rename_r+0x52> <== NOT EXECUTED 7805e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 78060: 4eb9 0005 cb60 jsr 5cb60 <== NOT EXECUTED 78066: 588f addql #4,%sp <== NOT EXECUTED } 78068: 242e ffb0 movel %fp@(-80),%d2 <== NOT EXECUTED 7806c: 4e5e unlk %fp <== NOT EXECUTED 7806e: 4e75 rts 0004677e <_stat_r>: int _STAT_R_NAME( struct _reent *ptr, const char *path, struct stat *buf ) { 4677e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46782: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return _STAT_NAME( path, buf ); 46786: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 4678c: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 46790: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, const char *path, struct stat *buf ) { return _STAT_NAME( path, buf ); 46792: 4ef9 0004 66c4 jmp 466c4 <== NOT EXECUTED 0005cc76 <_unlink_r>: int _unlink_r( struct _reent *ptr, const char *path ) { 5cc76: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return unlink( path ); 5cc7a: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 5cc80: 4e5e unlk %fp <== NOT EXECUTED int _unlink_r( struct _reent *ptr, const char *path ) { return unlink( path ); 5cc82: 4ef9 0005 cb60 jmp 5cb60 <== NOT EXECUTED 00053fa4 <_write_r>: struct _reent *ptr, int fd, const void *buf, size_t nbytes ) { 53fa4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 53fa8: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 53fac: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return write( fd, buf, nbytes ); 53fb0: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 53fb6: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 53fba: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 53fbe: 4e5e unlk %fp <== NOT EXECUTED int fd, const void *buf, size_t nbytes ) { return write( fd, buf, nbytes ); 53fc0: 4ef9 0005 40d0 jmp 540d0 <== NOT EXECUTED ... 0005a83c : int access( const char *path, int amode ) { 5a83c: 4e56 ffb4 linkw %fp,#-76 <== NOT EXECUTED 5a840: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5a842: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED struct stat statbuf; if ( stat(path, &statbuf) ) 5a846: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 5a84a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5a84e: 4eb9 0004 66c4 jsr 466c4 <== NOT EXECUTED 5a854: 508f addql #8,%sp <== NOT EXECUTED 5a856: 4a80 tstl %d0 <== NOT EXECUTED 5a858: 6630 bnes 5a88a <== NOT EXECUTED return -1; if ( amode & R_OK ) { 5a85a: 44c2 movew %d2,%ccr <== NOT EXECUTED 5a85c: 660c bnes 5a86a <== NOT EXECUTED if (!( statbuf.st_mode & S_IREAD )) 5a85e: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 5a862: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 5a868: 6720 beqs 5a88a <== NOT EXECUTED return -1; } if ( amode & W_OK ) { 5a86a: 0802 0001 btst #1,%d2 <== NOT EXECUTED 5a86e: 670c beqs 5a87c <== NOT EXECUTED if ( !( statbuf.st_mode & S_IWRITE ) ) 5a870: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 5a874: 0280 0000 0080 andil #128,%d0 <== NOT EXECUTED 5a87a: 670e beqs 5a88a <== NOT EXECUTED return -1; } if ( amode & X_OK ) { 5a87c: 0802 0000 btst #0,%d2 <== NOT EXECUTED 5a880: 670c beqs 5a88e <== NOT EXECUTED if ( !( statbuf.st_mode & S_IEXEC ) ) 5a882: 7040 moveq #64,%d0 <== NOT EXECUTED 5a884: c0ae ffc2 andl %fp@(-62),%d0 <== NOT EXECUTED 5a888: 6604 bnes 5a88e <== NOT EXECUTED 5a88a: 70ff moveq #-1,%d0 <== NOT EXECUTED 5a88c: 6002 bras 5a890 <== NOT EXECUTED 5a88e: 4280 clrl %d0 <== NOT EXECUTED return -1; } return 0; } 5a890: 242e ffb0 movel %fp@(-80),%d2 <== NOT EXECUTED 5a894: 4e5e unlk %fp <== NOT EXECUTED 5a896: 4e75 rts 00044b6c : int adjtime( struct timeval *delta, struct timeval *olddelta ) { 44b6c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 44b70: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 44b74: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 44b78: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED long adjustment; /* * Simple validations */ if ( !delta ) 44b7c: 4a8a tstl %a2 <== NOT EXECUTED 44b7e: 670c beqs 44b8c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( delta->tv_usec >= TOD_MICROSECONDS_PER_SECOND ) 44b80: 203c 000f 423f movel #999999,%d0 <== NOT EXECUTED 44b86: b0aa 0004 cmpl %a2@(4),%d0 <== NOT EXECUTED 44b8a: 6412 bccs 44b9e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 44b8c: 4eb9 0004 bf6c jsr 4bf6c <__errno> <== NOT EXECUTED 44b92: 2040 moveal %d0,%a0 <== NOT EXECUTED 44b94: 7016 moveq #22,%d0 <== NOT EXECUTED 44b96: 2080 movel %d0,%a0@ <== NOT EXECUTED 44b98: 72ff moveq #-1,%d1 <== NOT EXECUTED 44b9a: 6000 00c4 braw 44c60 <== NOT EXECUTED if ( olddelta ) { 44b9e: 4a8b tstl %a3 <== NOT EXECUTED 44ba0: 6706 beqs 44ba8 <== NOT EXECUTED olddelta->tv_sec = 0; 44ba2: 4293 clrl %a3@ <== NOT EXECUTED olddelta->tv_usec = 0; 44ba4: 42ab 0004 clrl %a3@(4) <== NOT EXECUTED } /* convert delta to microseconds */ adjustment = (delta->tv_sec * TOD_MICROSECONDS_PER_SECOND); 44ba8: 2412 movel %a2@,%d2 <== NOT EXECUTED 44baa: 2002 movel %d2,%d0 <== NOT EXECUTED 44bac: 2202 movel %d2,%d1 <== NOT EXECUTED 44bae: e788 lsll #3,%d0 <== NOT EXECUTED 44bb0: e189 lsll #8,%d1 <== NOT EXECUTED 44bb2: 9280 subl %d0,%d1 <== NOT EXECUTED 44bb4: 2001 movel %d1,%d0 <== NOT EXECUTED 44bb6: ed88 lsll #6,%d0 <== NOT EXECUTED 44bb8: 9081 subl %d1,%d0 <== NOT EXECUTED 44bba: d082 addl %d2,%d0 <== NOT EXECUTED 44bbc: ed88 lsll #6,%d0 <== NOT EXECUTED adjustment += delta->tv_usec; /* too small to account for */ if ( adjustment < _TOD_Microseconds_per_tick ) 44bbe: d0aa 0004 addl %a2@(4),%d0 <== NOT EXECUTED 44bc2: b0b9 0005 9b5a cmpl 59b5a <_TOD_Microseconds_per_tick>,%d0 <== NOT EXECUTED 44bc8: 6500 0094 bcsw 44c5e <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 44bcc: 2039 0005 99cc movel 599cc <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44bd2: 5280 addql #1,%d0 <== NOT EXECUTED 44bd4: 23c0 0005 99cc movel %d0,599cc <_Thread_Dispatch_disable_level> <== NOT EXECUTED * This prevents context switches while we are adjusting the TOD */ _Thread_Disable_dispatch(); _TOD_Get( &ts ); 44bda: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 44bde: 4eb9 0004 64ac jsr 464ac <_TOD_Get> <== NOT EXECUTED int adjtime( struct timeval *delta, struct timeval *olddelta ) { 44be4: 2052 moveal %a2@,%a0 <== NOT EXECUTED _Thread_Disable_dispatch(); _TOD_Get( &ts ); ts.tv_sec += delta->tv_sec; ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND; 44be6: 222a 0004 movel %a2@(4),%d1 <== NOT EXECUTED 44bea: 2401 movel %d1,%d2 <== NOT EXECUTED 44bec: 2001 movel %d1,%d0 <== NOT EXECUTED 44bee: e58a lsll #2,%d2 <== NOT EXECUTED 44bf0: ef88 lsll #7,%d0 <== NOT EXECUTED 44bf2: 9082 subl %d2,%d0 <== NOT EXECUTED 44bf4: d081 addl %d1,%d0 <== NOT EXECUTED 44bf6: e788 lsll #3,%d0 <== NOT EXECUTED 44bf8: d0ae fffc addl %fp@(-4),%d0 <== NOT EXECUTED int adjtime( struct timeval *delta, struct timeval *olddelta ) { 44bfc: d1ee fff8 addal %fp@(-8),%a0 <== NOT EXECUTED 44c00: 2200 movel %d0,%d1 <== NOT EXECUTED 44c02: 263c 3b9a ca00 movel #1000000000,%d3 <== NOT EXECUTED 44c08: 4c43 1001 remul %d3,%d1,%d1 <== NOT EXECUTED 44c0c: 41f0 1800 lea %a0@(00000000,%d1:l),%a0 <== NOT EXECUTED 44c10: 243c c465 3600 movel #-1000000000,%d2 <== NOT EXECUTED 44c16: 4c02 1800 mulsl %d2,%d1 <== NOT EXECUTED 44c1a: 588f addql #4,%sp <== NOT EXECUTED 44c1c: d280 addl %d0,%d1 <== NOT EXECUTED 44c1e: 6006 bras 44c26 <== NOT EXECUTED 44c20: 0681 3b9a ca00 addil #1000000000,%d1 <== NOT EXECUTED 44c26: 2008 movel %a0,%d0 <== NOT EXECUTED 44c28: 5388 subql #1,%a0 <== NOT EXECUTED ts.tv_nsec -= TOD_NANOSECONDS_PER_SECOND; ts.tv_sec++; } /* if adjustment is too much negative */ while ( ts.tv_nsec <= (-1 * TOD_NANOSECONDS_PER_SECOND) ) { 44c2a: 0c81 c465 3600 cmpil #-1000000000,%d1 <== NOT EXECUTED 44c30: 63ee blss 44c20 <== NOT EXECUTED ts.tv_nsec += TOD_NANOSECONDS_PER_SECOND; ts.tv_sec--; } _TOD_Set( &ts ); 44c32: 486e fff8 pea %fp@(-8) <== NOT EXECUTED ts.tv_nsec -= TOD_NANOSECONDS_PER_SECOND; ts.tv_sec++; } /* if adjustment is too much negative */ while ( ts.tv_nsec <= (-1 * TOD_NANOSECONDS_PER_SECOND) ) { 44c36: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED 44c3a: 2d41 fffc movel %d1,%fp@(-4) <== NOT EXECUTED ts.tv_nsec += TOD_NANOSECONDS_PER_SECOND; ts.tv_sec--; } _TOD_Set( &ts ); 44c3e: 4eb9 0004 6544 jsr 46544 <_TOD_Set> <== NOT EXECUTED _Thread_Enable_dispatch(); 44c44: 4eb9 0004 749e jsr 4749e <_Thread_Enable_dispatch> <== NOT EXECUTED /* set the user's output */ if ( olddelta ) 44c4a: 588f addql #4,%sp <== NOT EXECUTED 44c4c: 4a8b tstl %a3 <== NOT EXECUTED 44c4e: 670e beqs 44c5e <== NOT EXECUTED *olddelta = *delta; 44c50: 2012 movel %a2@,%d0 <== NOT EXECUTED 44c52: 276a 0004 0004 movel %a2@(4),%a3@(4) <== NOT EXECUTED 44c58: 4281 clrl %d1 <== NOT EXECUTED 44c5a: 2680 movel %d0,%a3@ <== NOT EXECUTED 44c5c: 6002 bras 44c60 <== NOT EXECUTED 44c5e: 4281 clrl %d1 <== NOT EXECUTED return 0; } 44c60: 4cee 0c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a3 <== NOT EXECUTED 44c66: 4e5e unlk %fp <== NOT EXECUTED 44c68: 2001 movel %d1,%d0 <== NOT EXECUTED 44c6a: 4e75 rts 00044c0c : int aio_cancel( int filedes, struct aiocb *aiocbp ) { 44c0c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44c10: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44c16: 2040 moveal %d0,%a0 <== NOT EXECUTED 44c18: 7058 moveq #88,%d0 <== NOT EXECUTED 44c1a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44c1c: 4e5e unlk %fp <== NOT EXECUTED 44c1e: 70ff moveq #-1,%d0 <== NOT EXECUTED 44c20: 4e75 rts <== NOT EXECUTED ... 00044c24 : #include int aio_error( const struct aiocb *aiocbp ) { 44c24: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44c28: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44c2e: 2040 moveal %d0,%a0 <== NOT EXECUTED 44c30: 7058 moveq #88,%d0 <== NOT EXECUTED 44c32: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44c34: 4e5e unlk %fp <== NOT EXECUTED 44c36: 70ff moveq #-1,%d0 <== NOT EXECUTED 44c38: 4e75 rts <== NOT EXECUTED ... 00044c3c : int aio_fsync( int op, struct aiocb *aiocbp ) { 44c3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44c40: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44c46: 2040 moveal %d0,%a0 <== NOT EXECUTED 44c48: 7058 moveq #88,%d0 <== NOT EXECUTED 44c4a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44c4c: 4e5e unlk %fp <== NOT EXECUTED 44c4e: 70ff moveq #-1,%d0 <== NOT EXECUTED 44c50: 4e75 rts <== NOT EXECUTED ... 00044c54 : #include int aio_read( struct aiocb *aiocbp ) { 44c54: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44c58: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44c5e: 2040 moveal %d0,%a0 <== NOT EXECUTED 44c60: 7058 moveq #88,%d0 <== NOT EXECUTED 44c62: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44c64: 4e5e unlk %fp <== NOT EXECUTED 44c66: 70ff moveq #-1,%d0 <== NOT EXECUTED 44c68: 4e75 rts <== NOT EXECUTED ... 00044c6c : #include int aio_return( const struct aiocb *aiocbp ) { 44c6c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44c70: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44c76: 2040 moveal %d0,%a0 <== NOT EXECUTED 44c78: 7058 moveq #88,%d0 <== NOT EXECUTED 44c7a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44c7c: 4e5e unlk %fp <== NOT EXECUTED 44c7e: 70ff moveq #-1,%d0 <== NOT EXECUTED 44c80: 4e75 rts <== NOT EXECUTED ... 00044c84 : int aio_suspend( const struct aiocb * const list[], int nent, const struct timespec *timeout ) { 44c84: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44c88: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44c8e: 2040 moveal %d0,%a0 <== NOT EXECUTED 44c90: 7058 moveq #88,%d0 <== NOT EXECUTED 44c92: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44c94: 4e5e unlk %fp <== NOT EXECUTED 44c96: 70ff moveq #-1,%d0 <== NOT EXECUTED 44c98: 4e75 rts <== NOT EXECUTED ... 00044c9c : #include int aio_write( struct aiocb *aiocbp ) { 44c9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44ca0: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44ca6: 2040 moveal %d0,%a0 <== NOT EXECUTED 44ca8: 7058 moveq #88,%d0 <== NOT EXECUTED 44caa: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44cac: 4e5e unlk %fp <== NOT EXECUTED 44cae: 70ff moveq #-1,%d0 <== NOT EXECUTED 44cb0: 4e75 rts <== NOT EXECUTED ... 000466a8 : } unsigned int alarm( unsigned int seconds ) { 466a8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 466ac: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Initialize the timer used to implement alarm(). */ if ( !the_timer->routine ) { 466ae: 4ab9 0005 ca70 tstl 5ca70 <_POSIX_signals_Alarm_timer+0x1c> <== NOT EXECUTED 466b4: 6622 bnes 466d8 <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 466b6: 42b9 0005 ca5c clrl 5ca5c <_POSIX_signals_Alarm_timer+0x8> <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 466bc: 4282 clrl %d2 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 466be: 203c 0004 6740 movel #288576,%d0 <== NOT EXECUTED 466c4: 23c0 0005 ca70 movel %d0,5ca70 <_POSIX_signals_Alarm_timer+0x1c> <== NOT EXECUTED the_watchdog->id = id; 466ca: 42b9 0005 ca74 clrl 5ca74 <_POSIX_signals_Alarm_timer+0x20> <== NOT EXECUTED the_watchdog->user_data = user_data; 466d0: 42b9 0005 ca78 clrl 5ca78 <_POSIX_signals_Alarm_timer+0x24> <== NOT EXECUTED 466d6: 6042 bras 4671a <== NOT EXECUTED _Watchdog_Initialize( the_timer, _POSIX_signals_Alarm_TSR, 0, NULL ); } else { switch ( _Watchdog_Remove( the_timer ) ) { 466d8: 4879 0005 ca54 pea 5ca54 <_POSIX_signals_Alarm_timer> <== NOT EXECUTED 466de: 4eb9 0004 aca8 jsr 4aca8 <_Watchdog_Remove> <== NOT EXECUTED 466e4: 588f addql #4,%sp <== NOT EXECUTED 466e6: 5580 subql #2,%d0 <== NOT EXECUTED 466e8: 7201 moveq #1,%d1 <== NOT EXECUTED 466ea: b280 cmpl %d0,%d1 <== NOT EXECUTED 466ec: 6404 bccs 466f2 <== NOT EXECUTED 466ee: 4282 clrl %d2 <== NOT EXECUTED 466f0: 6028 bras 4671a <== NOT EXECUTED * The stop_time and start_time fields are snapshots of ticks since * boot. Since alarm() is dealing in seconds, we must account for * this. */ remaining = the_timer->initial - 466f2: 2039 0005 ca6c movel 5ca6c <_POSIX_signals_Alarm_timer+0x18>,%d0 <== NOT EXECUTED 466f8: 90b9 0005 ca68 subl 5ca68 <_POSIX_signals_Alarm_timer+0x14>,%d0 <== NOT EXECUTED 466fe: 223c 000f 4240 movel #1000000,%d1 <== NOT EXECUTED 46704: 41f9 0005 ccd6 lea 5ccd6 <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 4670a: 4c50 1001 remul %a0@,%d1,%d1 <== NOT EXECUTED 4670e: 4c41 0000 remul %d1,%d0,%d0 <== NOT EXECUTED 46712: 2439 0005 ca60 movel 5ca60 <_POSIX_signals_Alarm_timer+0xc>,%d2 <== NOT EXECUTED 46718: 9480 subl %d0,%d2 <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 4671a: 4879 0005 ca54 pea 5ca54 <_POSIX_signals_Alarm_timer> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 46720: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 46724: 4879 0005 cc18 pea 5cc18 <_Watchdog_Seconds_chain> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4672a: 23d0 0005 ca60 movel %a0@,5ca60 <_POSIX_signals_Alarm_timer+0xc> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 46730: 4eb9 0004 ab8c jsr 4ab8c <_Watchdog_Insert> <== NOT EXECUTED } _Watchdog_Insert_seconds( the_timer, seconds ); return remaining; } 46736: 2002 movel %d2,%d0 <== NOT EXECUTED 46738: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4673c: 4e5e unlk %fp <== NOT EXECUTED 4673e: 4e75 rts 00044edc : */ int alphasort( const void *d1, const void *d2 ) { 44edc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44ee0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED return(strcmp((*(struct dirent **)d1)->d_name, 44ee4: 2050 moveal %a0@,%a0 <== NOT EXECUTED 44ee6: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 44eec: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED 44ef0: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 44ef4: 2050 moveal %a0@,%a0 <== NOT EXECUTED 44ef6: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 44efc: 2d48 000c movel %a0,%fp@(12) <== NOT EXECUTED (*(struct dirent **)d2)->d_name)); } 44f00: 4e5e unlk %fp <== NOT EXECUTED int alphasort( const void *d1, const void *d2 ) { return(strcmp((*(struct dirent **)d1)->d_name, 44f02: 4ef9 0005 02e4 jmp 502e4 <== NOT EXECUTED 00048d9c : ) { register char *cptr; int length; MSBUMP(calloc_calls, 1); 48d9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48da0: 2f03 movel %d3,%sp@- <== NOT EXECUTED length = nelem * elsize; 48da2: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 48da6: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED 48daa: 4c10 3800 mulsl %a0@,%d3 <== NOT EXECUTED ) { register char *cptr; int length; MSBUMP(calloc_calls, 1); 48dae: 52b9 0005 7d8c addql #1,57d8c <== NOT EXECUTED 48db4: 2f02 movel %d2,%sp@- <== NOT EXECUTED length = nelem * elsize; cptr = malloc( length ); 48db6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48db8: 4eb9 0004 93a0 jsr 493a0 <== NOT EXECUTED if ( cptr ) 48dbe: 588f addql #4,%sp <== NOT EXECUTED int length; MSBUMP(calloc_calls, 1); length = nelem * elsize; cptr = malloc( length ); 48dc0: 2400 movel %d0,%d2 <== NOT EXECUTED if ( cptr ) 48dc2: 6712 beqs 48dd6 <== NOT EXECUTED memset( cptr, '\0', length ); 48dc4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48dc6: 42a7 clrl %sp@- <== NOT EXECUTED 48dc8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48dca: 4eb9 0004 bfbc jsr 4bfbc <== NOT EXECUTED 48dd0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED MSBUMP(malloc_calls, -1); /* subtract off the malloc */ return cptr; } 48dd6: 2002 movel %d2,%d0 <== NOT EXECUTED 48dd8: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48ddc: 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 */ 48de0: 53b9 0005 7d7c subql #1,57d7c <== NOT EXECUTED return cptr; } 48de6: 4e5e unlk %fp <== NOT EXECUTED 48de8: 4e75 rts <== NOT EXECUTED ... 0005ab48 : #include int chdir( const char *pathname ) { 5ab48: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5ab4c: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Get the node where we wish to go. */ result = rtems_filesystem_evaluate_path( 5ab4e: 240e movel %fp,%d2 <== NOT EXECUTED 5ab50: 4878 0001 pea 1 <== NOT EXECUTED 5ab54: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 5ab5a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ab5c: 4878 0001 pea 1 <== NOT EXECUTED 5ab60: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5ab64: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED pathname, RTEMS_LIBIO_PERMS_SEARCH, &loc, true ); if ( result != 0 ) 5ab6a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5ab70: 4a80 tstl %d0 <== NOT EXECUTED 5ab72: 6628 bnes 5ab9c <== NOT EXECUTED /* * Verify you can change directory into this node. */ if ( !loc.ops->node_type_h ) { 5ab74: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED 5ab78: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED 5ab7c: 4a88 tstl %a0 <== NOT EXECUTED 5ab7e: 6620 bnes 5aba0 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5ab80: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 5ab84: 4a88 tstl %a0 <== NOT EXECUTED 5ab86: 6706 beqs 5ab8e <== NOT EXECUTED 5ab88: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ab8a: 4e90 jsr %a0@ <== NOT EXECUTED 5ab8c: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5ab8e: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ab94: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ab96: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5ab9c: 70ff moveq #-1,%d0 <== NOT EXECUTED 5ab9e: 606e bras 5ac0e <== NOT EXECUTED } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) { 5aba0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5aba2: 4e90 jsr %a0@ <== NOT EXECUTED 5aba4: 588f addql #4,%sp <== NOT EXECUTED 5aba6: 7201 moveq #1,%d1 <== NOT EXECUTED 5aba8: b280 cmpl %d0,%d1 <== NOT EXECUTED 5abaa: 6724 beqs 5abd0 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5abac: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5abb0: 4a88 tstl %a0 <== NOT EXECUTED 5abb2: 670e beqs 5abc2 <== NOT EXECUTED 5abb4: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5abb8: 4a88 tstl %a0 <== NOT EXECUTED 5abba: 6706 beqs 5abc2 <== NOT EXECUTED 5abbc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5abbe: 4e90 jsr %a0@ <== NOT EXECUTED 5abc0: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 5abc2: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5abc8: 2040 moveal %d0,%a0 <== NOT EXECUTED 5abca: 7014 moveq #20,%d0 <== NOT EXECUTED 5abcc: 2080 movel %d0,%a0@ <== NOT EXECUTED 5abce: 60cc bras 5ab9c <== NOT EXECUTED } rtems_filesystem_freenode( &rtems_filesystem_current ); 5abd0: 2279 0007 e600 moveal 7e600 ,%a1 <== NOT EXECUTED 5abd6: 2069 000c moveal %a1@(12),%a0 <== NOT EXECUTED 5abda: 4a88 tstl %a0 <== NOT EXECUTED 5abdc: 6710 beqs 5abee <== NOT EXECUTED 5abde: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5abe2: 4a88 tstl %a0 <== NOT EXECUTED 5abe4: 6708 beqs 5abee <== NOT EXECUTED 5abe6: 4869 0004 pea %a1@(4) <== NOT EXECUTED 5abea: 4e90 jsr %a0@ <== NOT EXECUTED 5abec: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_current = loc; 5abee: 4878 0010 pea 10 <== NOT EXECUTED 5abf2: 2039 0007 e600 movel 7e600 ,%d0 <== NOT EXECUTED 5abf8: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 5abfc: 5880 addql #4,%d0 <== NOT EXECUTED 5abfe: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5ac00: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED 5ac06: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5ac0c: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5ac0e: 242e ffec movel %fp@(-20),%d2 <== NOT EXECUTED 5ac12: 4e5e unlk %fp <== NOT EXECUTED 5ac14: 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 8a8c jsr 68a8c <__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 8a8c jsr 68a8c <__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 0005ac18 : int chown( const char *path, uid_t owner, gid_t group ) { 5ac18: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5ac1c: 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 ) ) 5ac20: 4878 0001 pea 1 <== NOT EXECUTED 5ac24: 260e movel %fp,%d3 <== NOT EXECUTED 5ac26: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 5ac2c: 2f03 movel %d3,%sp@- <== NOT EXECUTED int chown( const char *path, uid_t owner, gid_t group ) { 5ac2e: 382e 000e movew %fp@(14),%d4 <== NOT EXECUTED 5ac32: 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 ) ) 5ac36: 42a7 clrl %sp@- <== NOT EXECUTED 5ac38: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5ac3c: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED 5ac42: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5ac48: 4a80 tstl %d0 <== NOT EXECUTED 5ac4a: 6628 bnes 5ac74 <== NOT EXECUTED return -1; if ( !loc.ops->chown_h ) { 5ac4c: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5ac50: 2268 0018 moveal %a0@(24),%a1 <== NOT EXECUTED 5ac54: 4a89 tstl %a1 <== NOT EXECUTED 5ac56: 6620 bnes 5ac78 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5ac58: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5ac5c: 4a88 tstl %a0 <== NOT EXECUTED 5ac5e: 6706 beqs 5ac66 <== NOT EXECUTED 5ac60: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ac62: 4e90 jsr %a0@ <== NOT EXECUTED 5ac64: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5ac66: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ac6c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ac6e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5ac74: 74ff moveq #-1,%d2 <== NOT EXECUTED 5ac76: 602a bras 5aca2 <== NOT EXECUTED } result = (*loc.ops->chown_h)( &loc, owner, group ); 5ac78: 3f02 movew %d2,%sp@- <== NOT EXECUTED 5ac7a: 4267 clrw %sp@- <== NOT EXECUTED 5ac7c: 3f04 movew %d4,%sp@- <== NOT EXECUTED 5ac7e: 4267 clrw %sp@- <== NOT EXECUTED 5ac80: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ac82: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5ac84: 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 ); 5ac88: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5ac8a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5ac90: 4a88 tstl %a0 <== NOT EXECUTED 5ac92: 670e beqs 5aca2 <== NOT EXECUTED 5ac94: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5ac98: 4a88 tstl %a0 <== NOT EXECUTED 5ac9a: 6706 beqs 5aca2 <== NOT EXECUTED 5ac9c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ac9e: 4e90 jsr %a0@ <== NOT EXECUTED 5aca0: 588f addql #4,%sp <== NOT EXECUTED return result; } 5aca2: 2002 movel %d2,%d0 <== NOT EXECUTED 5aca4: 4cee 001c ffe4 moveml %fp@(-28),%d2-%d4 <== NOT EXECUTED 5acaa: 4e5e unlk %fp <== NOT EXECUTED 5acac: 4e75 rts <== NOT EXECUTED ... 0005acb0 : #include int chroot( const char *pathname ) { 5acb0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5acb4: 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) { 5acb6: 203c 0009 3e9c movel #605852,%d0 <== NOT EXECUTED #include int chroot( const char *pathname ) { 5acbc: 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) { 5acbe: b0b9 0007 e600 cmpl 7e600 ,%d0 <== NOT EXECUTED 5acc4: 6624 bnes 5acea <== NOT EXECUTED rtems_libio_set_private_env(); /* try to set a new private env*/ 5acc6: 4eb9 0005 c428 jsr 5c428 <== NOT EXECUTED if (rtems_current_user_env == &rtems_global_user_env) /* not ok */ 5accc: 203c 0009 3e9c movel #605852,%d0 <== NOT EXECUTED 5acd2: b0b9 0007 e600 cmpl 7e600 ,%d0 <== NOT EXECUTED 5acd8: 6610 bnes 5acea <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5acda: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ace0: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ace2: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5ace8: 6020 bras 5ad0a <== NOT EXECUTED } result = chdir(pathname); 5acea: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5acee: 4eb9 0005 ab48 jsr 5ab48 <== NOT EXECUTED if (result) { 5acf4: 588f addql #4,%sp <== NOT EXECUTED 5acf6: 4a80 tstl %d0 <== NOT EXECUTED 5acf8: 6714 beqs 5ad0e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( errno ); 5acfa: 45f9 0006 8a8c lea 68a8c <__errno>,%a2 <== NOT EXECUTED 5ad00: 4e92 jsr %a2@ <== NOT EXECUTED 5ad02: 2640 moveal %d0,%a3 <== NOT EXECUTED 5ad04: 4e92 jsr %a2@ <== NOT EXECUTED 5ad06: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ad08: 2690 movel %a0@,%a3@ <== NOT EXECUTED 5ad0a: 70ff moveq #-1,%d0 <== NOT EXECUTED 5ad0c: 6060 bras 5ad6e <== NOT EXECUTED } /* clone the new root location */ if (rtems_filesystem_evaluate_path(".", 0, &loc, 0)) { 5ad0e: 42a7 clrl %sp@- <== NOT EXECUTED 5ad10: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 5ad14: 42a7 clrl %sp@- <== NOT EXECUTED 5ad16: 4879 0007 9d1e pea 79d1e <_CPU_m68k_BFFFO_table+0x3d7> <== NOT EXECUTED 5ad1c: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED 5ad22: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5ad28: 4a80 tstl %d0 <== NOT EXECUTED 5ad2a: 66ce bnes 5acfa <== 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); 5ad2c: 2279 0007 e600 moveal 7e600 ,%a1 <== NOT EXECUTED 5ad32: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 5ad36: 4a88 tstl %a0 <== NOT EXECUTED 5ad38: 6710 beqs 5ad4a <== NOT EXECUTED 5ad3a: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5ad3e: 4a88 tstl %a0 <== NOT EXECUTED 5ad40: 6708 beqs 5ad4a <== NOT EXECUTED 5ad42: 4869 0014 pea %a1@(20) <== NOT EXECUTED 5ad46: 4e90 jsr %a0@ <== NOT EXECUTED 5ad48: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_root = loc; 5ad4a: 4878 0010 pea 10 <== NOT EXECUTED 5ad4e: 2039 0007 e600 movel 7e600 ,%d0 <== NOT EXECUTED 5ad54: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 5ad58: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 5ad5e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5ad60: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED 5ad66: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5ad6c: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5ad6e: 246e ffe8 moveal %fp@(-24),%a2 <== NOT EXECUTED 5ad72: 266e ffec moveal %fp@(-20),%a3 <== NOT EXECUTED 5ad76: 4e5e unlk %fp <== NOT EXECUTED 5ad78: 4e75 rts <== NOT EXECUTED ... 00044cb4 : int clock_getcpuclockid( pid_t pid, clockid_t *clock_id ) { 44cb4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44cb8: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44cbe: 2040 moveal %d0,%a0 <== NOT EXECUTED 44cc0: 7058 moveq #88,%d0 <== NOT EXECUTED 44cc2: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44cc4: 4e5e unlk %fp <== NOT EXECUTED 44cc6: 70ff moveq #-1,%d0 <== NOT EXECUTED 44cc8: 4e75 rts <== NOT EXECUTED ... 00044ccc : int clock_getenable_attr( clockid_t clock_id, int *attr ) { 44ccc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44cd0: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44cd6: 2040 moveal %d0,%a0 <== NOT EXECUTED 44cd8: 7058 moveq #88,%d0 <== NOT EXECUTED 44cda: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44cdc: 4e5e unlk %fp <== NOT EXECUTED 44cde: 70ff moveq #-1,%d0 <== NOT EXECUTED 44ce0: 4e75 rts <== NOT EXECUTED ... 000455d4 : int clock_getres( clockid_t clock_id, struct timespec *res ) { 455d4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 455d8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 455da: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 455de: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !res ) 455e0: 4a88 tstl %a0 <== NOT EXECUTED 455e2: 6610 bnes 455f4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 455e4: 4eb9 0004 cf8c jsr 4cf8c <__errno> <== NOT EXECUTED 455ea: 7416 moveq #22,%d2 <== NOT EXECUTED 455ec: 2040 moveal %d0,%a0 <== NOT EXECUTED 455ee: 2082 movel %d2,%a0@ <== NOT EXECUTED 455f0: 70ff moveq #-1,%d0 <== NOT EXECUTED 455f2: 6044 bras 45638 <== NOT EXECUTED switch ( clock_id ) { 455f4: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 455f8: 7202 moveq #2,%d1 <== NOT EXECUTED 455fa: 5380 subql #1,%d0 <== NOT EXECUTED 455fc: b280 cmpl %d0,%d1 <== NOT EXECUTED 455fe: 652a bcss 4562a <== NOT EXECUTED case CLOCK_REALTIME: case CLOCK_PROCESS_CPUTIME: case CLOCK_THREAD_CPUTIME: if ( res ) { res->tv_sec = _TOD_Microseconds_per_tick / 1000000; 45600: 2039 0005 b6fe movel 5b6fe <_TOD_Microseconds_per_tick>,%d0 <== NOT EXECUTED res->tv_nsec = _TOD_Microseconds_per_tick * 1000; 45606: 2400 movel %d0,%d2 <== NOT EXECUTED 45608: 2200 movel %d0,%d1 <== NOT EXECUTED 4560a: e58a lsll #2,%d2 <== NOT EXECUTED 4560c: ef89 lsll #7,%d1 <== NOT EXECUTED 4560e: 9282 subl %d2,%d1 <== NOT EXECUTED 45610: d280 addl %d0,%d1 <== NOT EXECUTED 45612: e789 lsll #3,%d1 <== NOT EXECUTED case CLOCK_REALTIME: case CLOCK_PROCESS_CPUTIME: case CLOCK_THREAD_CPUTIME: if ( res ) { res->tv_sec = _TOD_Microseconds_per_tick / 1000000; 45614: 2400 movel %d0,%d2 <== NOT EXECUTED res->tv_nsec = _TOD_Microseconds_per_tick * 1000; 45616: 2141 0004 movel %d1,%a0@(4) <== NOT EXECUTED case CLOCK_REALTIME: case CLOCK_PROCESS_CPUTIME: case CLOCK_THREAD_CPUTIME: if ( res ) { res->tv_sec = _TOD_Microseconds_per_tick / 1000000; 4561a: 263c 000f 4240 movel #1000000,%d3 <== NOT EXECUTED 45620: 4c43 2002 remul %d3,%d2,%d2 <== NOT EXECUTED 45624: 2082 movel %d2,%a0@ <== NOT EXECUTED res->tv_nsec = _TOD_Microseconds_per_tick * 1000; 45626: 4280 clrl %d0 <== NOT EXECUTED 45628: 600e bras 45638 <== NOT EXECUTED /* _TOD_From_ticks( _TOD_Microseconds_per_tick, res ); */ } break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 4562a: 4eb9 0004 cf8c jsr 4cf8c <__errno> <== NOT EXECUTED 45630: 2040 moveal %d0,%a0 <== NOT EXECUTED 45632: 7216 moveq #22,%d1 <== NOT EXECUTED 45634: 70ff moveq #-1,%d0 <== NOT EXECUTED 45636: 2081 movel %d1,%a0@ <== NOT EXECUTED } return 0; } 45638: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4563c: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 45640: 4e5e unlk %fp <== NOT EXECUTED 45642: 4e75 rts 00045644 : int clock_gettime( clockid_t clock_id, struct timespec *tp ) { 45644: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45648: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4564c: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 45650: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !tp ) 45652: 4a81 tstl %d1 <== NOT EXECUTED 45654: 660e bnes 45664 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 45656: 4eb9 0004 cf8c jsr 4cf8c <__errno> <== NOT EXECUTED 4565c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4565e: 7016 moveq #22,%d0 <== NOT EXECUTED 45660: 2080 movel %d0,%a0@ <== NOT EXECUTED 45662: 603e bras 456a2 <== NOT EXECUTED if ( clock_id == CLOCK_REALTIME ) 45664: 7401 moveq #1,%d2 <== NOT EXECUTED 45666: b480 cmpl %d0,%d2 <== NOT EXECUTED 45668: 660a bnes 45674 <== NOT EXECUTED _TOD_Get(tp); 4566a: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4566c: 4eb9 0004 77e8 jsr 477e8 <_TOD_Get> <== NOT EXECUTED 45672: 6014 bras 45688 <== NOT EXECUTED #ifdef CLOCK_MONOTONIC else if ( clock_id == CLOCK_MONOTONIC ) 45674: 7404 moveq #4,%d2 <== NOT EXECUTED 45676: b480 cmpl %d0,%d2 <== NOT EXECUTED 45678: 6706 beqs 45680 <== NOT EXECUTED _TOD_Get_uptime(tp); #endif #ifdef _POSIX_CPUTIME else if ( clock_id == CLOCK_PROCESS_CPUTIME ) 4567a: 7402 moveq #2,%d2 <== NOT EXECUTED 4567c: b480 cmpl %d0,%d2 <== NOT EXECUTED 4567e: 660e bnes 4568e <== NOT EXECUTED _TOD_Get_uptime(tp); 45680: 2f01 movel %d1,%sp@- <== NOT EXECUTED 45682: 4eb9 0004 7848 jsr 47848 <_TOD_Get_uptime> <== NOT EXECUTED 45688: 588f addql #4,%sp <== NOT EXECUTED 4568a: 4280 clrl %d0 <== NOT EXECUTED 4568c: 6022 bras 456b0 <== NOT EXECUTED 4568e: 41f9 0004 cf8c lea 4cf8c <__errno>,%a0 <== NOT EXECUTED #endif #ifdef _POSIX_THREAD_CPUTIME else if ( clock_id == CLOCK_THREAD_CPUTIME ) 45694: 7203 moveq #3,%d1 <== NOT EXECUTED 45696: b280 cmpl %d0,%d1 <== NOT EXECUTED 45698: 660c bnes 456a6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 4569a: 4e90 jsr %a0@ <== NOT EXECUTED 4569c: 7458 moveq #88,%d2 <== NOT EXECUTED 4569e: 2040 moveal %d0,%a0 <== NOT EXECUTED 456a0: 2082 movel %d2,%a0@ <== NOT EXECUTED 456a2: 70ff moveq #-1,%d0 <== NOT EXECUTED 456a4: 600a bras 456b0 <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); 456a6: 4e90 jsr %a0@ <== NOT EXECUTED 456a8: 2040 moveal %d0,%a0 <== NOT EXECUTED 456aa: 7216 moveq #22,%d1 <== NOT EXECUTED 456ac: 70ff moveq #-1,%d0 <== NOT EXECUTED 456ae: 2081 movel %d1,%a0@ <== NOT EXECUTED return 0; } 456b0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 456b4: 4e5e unlk %fp <== NOT EXECUTED 456b6: 4e75 rts 00044d58 : int clock_setenable_attr( clockid_t clock_id, int attr ) { 44d58: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44d5c: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44d62: 2040 moveal %d0,%a0 <== NOT EXECUTED 44d64: 7058 moveq #88,%d0 <== NOT EXECUTED 44d66: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44d68: 4e5e unlk %fp <== NOT EXECUTED 44d6a: 70ff moveq #-1,%d0 <== NOT EXECUTED 44d6c: 4e75 rts <== NOT EXECUTED ... 0005cec4 : int clock_settime( clockid_t clock_id, const struct timespec *tp ) { 5cec4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5cec8: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 5cecc: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED if ( !tp ) 5ced0: 4a88 tstl %a0 <== NOT EXECUTED 5ced2: 6710 beqs 5cee4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( clock_id == CLOCK_REALTIME ) { 5ced4: 7201 moveq #1,%d1 <== NOT EXECUTED 5ced6: b280 cmpl %d0,%d1 <== NOT EXECUTED 5ced8: 663a bnes 5cf14 <== NOT EXECUTED if ( tp->tv_sec < TOD_SECONDS_1970_THROUGH_1988 ) 5ceda: 203c 21da e4ff movel #567993599,%d0 <== NOT EXECUTED 5cee0: b090 cmpl %a0@,%d0 <== NOT EXECUTED 5cee2: 650e bcss 5cef2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 5cee4: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ceea: 7216 moveq #22,%d1 <== NOT EXECUTED 5ceec: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ceee: 2081 movel %d1,%a0@ <== NOT EXECUTED 5cef0: 6034 bras 5cf26 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 5cef2: 2039 0009 38b8 movel 938b8 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 5cef8: 5280 addql #1,%d0 <== NOT EXECUTED 5cefa: 23c0 0009 38b8 movel %d0,938b8 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); _TOD_Set( tp ); 5cf00: 2f08 movel %a0,%sp@- <== NOT EXECUTED 5cf02: 4eb9 0005 e31c jsr 5e31c <_TOD_Set> <== NOT EXECUTED _Thread_Enable_dispatch(); 5cf08: 4eb9 0004 aa9a jsr 4aa9a <_Thread_Enable_dispatch> <== NOT EXECUTED 5cf0e: 588f addql #4,%sp <== NOT EXECUTED 5cf10: 4280 clrl %d0 <== NOT EXECUTED 5cf12: 6030 bras 5cf44 <== NOT EXECUTED } #ifdef _POSIX_CPUTIME else if ( clock_id == CLOCK_PROCESS_CPUTIME ) 5cf14: 7202 moveq #2,%d1 <== NOT EXECUTED 5cf16: b280 cmpl %d0,%d1 <== NOT EXECUTED 5cf18: 6610 bnes 5cf2a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 5cf1a: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5cf20: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cf22: 7058 moveq #88,%d0 <== NOT EXECUTED 5cf24: 2080 movel %d0,%a0@ <== NOT EXECUTED 5cf26: 70ff moveq #-1,%d0 <== NOT EXECUTED 5cf28: 601a bras 5cf44 <== NOT EXECUTED 5cf2a: 41f9 0006 8a8c lea 68a8c <__errno>,%a0 <== NOT EXECUTED #endif #ifdef _POSIX_THREAD_CPUTIME else if ( clock_id == CLOCK_THREAD_CPUTIME ) 5cf30: 7203 moveq #3,%d1 <== NOT EXECUTED 5cf32: b280 cmpl %d0,%d1 <== NOT EXECUTED 5cf34: 6604 bnes 5cf3a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 5cf36: 4e90 jsr %a0@ <== NOT EXECUTED 5cf38: 60e6 bras 5cf20 <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); 5cf3a: 4e90 jsr %a0@ <== NOT EXECUTED 5cf3c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cf3e: 7216 moveq #22,%d1 <== NOT EXECUTED 5cf40: 70ff moveq #-1,%d0 <== NOT EXECUTED 5cf42: 2081 movel %d1,%a0@ <== NOT EXECUTED return 0; } 5cf44: 4e5e unlk %fp <== NOT EXECUTED 5cf46: 4e75 rts 00048dec : #include int close( int fd ) { 48dec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48df0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48df2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48df4: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_status_code rc; rtems_libio_check_fd(fd); 48df8: b4b9 0005 6248 cmpl 56248 ,%d2 <== NOT EXECUTED 48dfe: 6422 bccs 48e22 <== NOT EXECUTED iop = rtems_libio_iop(fd); 48e00: 2002 movel %d2,%d0 <== NOT EXECUTED 48e02: 2202 movel %d2,%d1 <== NOT EXECUTED 48e04: e588 lsll #2,%d0 <== NOT EXECUTED 48e06: e989 lsll #4,%d1 <== NOT EXECUTED 48e08: 9280 subl %d0,%d1 <== NOT EXECUTED 48e0a: 2479 0005 7d14 moveal 57d14 ,%a2 <== NOT EXECUTED 48e10: d282 addl %d2,%d1 <== NOT EXECUTED 48e12: e589 lsll #2,%d1 <== NOT EXECUTED 48e14: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_is_open(iop); 48e16: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 48e1a: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 48e20: 6610 bnes 48e32 <== NOT EXECUTED 48e22: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48e28: 2040 moveal %d0,%a0 <== NOT EXECUTED 48e2a: 7009 moveq #9,%d0 <== NOT EXECUTED 48e2c: 2080 movel %d0,%a0@ <== NOT EXECUTED 48e2e: 70ff moveq #-1,%d0 <== NOT EXECUTED 48e30: 603c bras 48e6e <== NOT EXECUTED rc = RTEMS_SUCCESSFUL; if ( iop->handlers->close_h ) 48e32: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 48e36: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 48e3a: 4a88 tstl %a0 <== NOT EXECUTED 48e3c: 6604 bnes 48e42 <== NOT EXECUTED 48e3e: 4282 clrl %d2 <== NOT EXECUTED 48e40: 6008 bras 48e4a <== NOT EXECUTED rc = (*iop->handlers->close_h)( iop ); 48e42: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48e44: 4e90 jsr %a0@ <== NOT EXECUTED 48e46: 588f addql #4,%sp <== NOT EXECUTED 48e48: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &iop->pathinfo ); 48e4a: 206a 0018 moveal %a2@(24),%a0 <== NOT EXECUTED 48e4e: 4a88 tstl %a0 <== NOT EXECUTED 48e50: 6710 beqs 48e62 <== NOT EXECUTED 48e52: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 48e56: 4a88 tstl %a0 <== NOT EXECUTED 48e58: 6708 beqs 48e62 <== NOT EXECUTED 48e5a: 486a 0010 pea %a2@(16) <== NOT EXECUTED 48e5e: 4e90 jsr %a0@ <== NOT EXECUTED 48e60: 588f addql #4,%sp <== NOT EXECUTED rtems_libio_free( iop ); 48e62: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48e64: 4eb9 0004 91be jsr 491be <== NOT EXECUTED return rc; 48e6a: 2002 movel %d2,%d0 <== NOT EXECUTED 48e6c: 588f addql #4,%sp <== NOT EXECUTED } 48e6e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48e72: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48e76: 4e5e unlk %fp <== NOT EXECUTED 48e78: 4e75 rts 00066518 : * close a directory. */ int closedir( DIR *dirp ) { 66518: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 6651c: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 66520: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED int fd; if ( !dirp ) 66524: 4a8b tstl %a3 <== NOT EXECUTED 66526: 6618 bnes 66540 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 66528: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED dirp->dd_fd = -1; dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); (void)free((void *)dirp); return(close(fd)); } 6652e: 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 ); 66534: 2040 moveal %d0,%a0 <== NOT EXECUTED 66536: 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)); } 66538: 4e5e unlk %fp <== NOT EXECUTED 6653a: 70ff moveq #-1,%d0 <== NOT EXECUTED DIR *dirp ) { int fd; if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); 6653c: 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)); } 6653e: 4e75 rts <== NOT EXECUTED int fd; if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); fd = dirp->dd_fd; 66540: 2413 movel %a3@,%d2 <== NOT EXECUTED dirp->dd_fd = -1; dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); 66542: 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; 66546: 70ff moveq #-1,%d0 <== NOT EXECUTED dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); 66548: 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; 6654e: 2680 movel %d0,%a3@ <== NOT EXECUTED dirp->dd_loc = 0; 66550: 42ab 0004 clrl %a3@(4) <== NOT EXECUTED (void)free((void *)dirp->dd_buf); 66554: 4e92 jsr %a2@ <== NOT EXECUTED (void)free((void *)dirp); 66556: 2f0b movel %a3,%sp@- <== NOT EXECUTED 66558: 4e92 jsr %a2@ <== NOT EXECUTED return(close(fd)); 6655a: 508f addql #8,%sp <== NOT EXECUTED 6655c: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 66560: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 66566: 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)); 66568: 4ef9 0004 4f20 jmp 44f20 <== NOT EXECUTED ... 00044df4 : int filedes, void *dev_data_ptr, size_t nbyte, int *dev_info_ptr ) { 44df4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44df8: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44dfe: 2040 moveal %d0,%a0 <== NOT EXECUTED 44e00: 7058 moveq #88,%d0 <== NOT EXECUTED 44e02: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44e04: 4e5e unlk %fp <== NOT EXECUTED 44e06: 70ff moveq #-1,%d0 <== NOT EXECUTED 44e08: 4e75 rts <== NOT EXECUTED ... 0004ac8c : */ int device_close( rtems_libio_t *iop ) { 4ac8c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4ac90: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED args.iop = iop; args.flags = 0; args.mode = 0; status = rtems_io_close( 4ac94: 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; 4ac98: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; 4ac9c: 2d48 fff4 movel %a0,%fp@(-12) <== NOT EXECUTED args.flags = 0; 4aca0: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED args.mode = 0; 4aca4: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED status = rtems_io_close( 4aca8: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4acac: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4acb0: 4eb9 0004 b3fc jsr 4b3fc <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) { 4acb6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4acbc: 4a80 tstl %d0 <== NOT EXECUTED 4acbe: 6708 beqs 4acc8 <== NOT EXECUTED return rtems_deviceio_errno(status); 4acc0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4acc2: 4eba fe9a jsr %pc@(4ab5e ) <== NOT EXECUTED 4acc6: 588f addql #4,%sp <== NOT EXECUTED } return 0; } 4acc8: 4e5e unlk %fp <== NOT EXECUTED 4acca: 4e75 rts 0004ab54 : int device_ftruncate( rtems_libio_t *iop, off_t length ) { 4ab54: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 4ab58: 4e5e unlk %fp <== NOT EXECUTED 4ab5a: 4280 clrl %d0 <== NOT EXECUTED 4ab5c: 4e75 rts 0004ab8e : int device_ioctl( rtems_libio_t *iop, uint32_t command, void *buffer ) { 4ab8e: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4ab92: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED args.iop = iop; args.command = command; args.buffer = buffer; the_jnode = iop->file_info; 4ab96: 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; 4ab9a: 2d6e 000c fff4 movel %fp@(12),%fp@(-12) <== NOT EXECUTED args.buffer = buffer; the_jnode = iop->file_info; status = rtems_io_control( 4aba0: 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; 4aba4: 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; 4abaa: 2d48 fff0 movel %a0,%fp@(-16) <== NOT EXECUTED args.command = command; args.buffer = buffer; the_jnode = iop->file_info; status = rtems_io_control( 4abae: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4abb2: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4abb6: 4eb9 0004 b450 jsr 4b450 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4abbc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4abc2: 4a80 tstl %d0 <== NOT EXECUTED 4abc4: 670a beqs 4abd0 <== NOT EXECUTED return rtems_deviceio_errno(status); 4abc6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4abc8: 4eba ff94 jsr %pc@(4ab5e ) <== NOT EXECUTED 4abcc: 588f addql #4,%sp <== NOT EXECUTED 4abce: 6004 bras 4abd4 <== NOT EXECUTED return args.ioctl_return; 4abd0: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 4abd4: 4e5e unlk %fp <== NOT EXECUTED 4abd6: 4e75 rts 0004ab48 : off_t device_lseek( rtems_libio_t *iop, off_t offset, int whence ) { 4ab48: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return offset; } 4ab4c: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4ab50: 4e5e unlk %fp <== NOT EXECUTED 4ab52: 4e75 rts 0004accc : rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) { 4accc: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4acd0: 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; 4acd4: 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; 4acda: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; args.flags = iop->flags; args.mode = mode; 4acde: 2d6e 0014 fffc movel %fp@(20),%fp@(-4) <== NOT EXECUTED status = rtems_io_open( 4ace4: 486e fff4 pea %fp@(-12) <== NOT EXECUTED rtems_status_code status; IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; args.iop = iop; 4ace8: 2d48 fff4 movel %a0,%fp@(-12) <== NOT EXECUTED args.flags = iop->flags; args.mode = mode; status = rtems_io_open( 4acec: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4acf0: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4acf4: 4eb9 0004 b4a4 jsr 4b4a4 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4acfa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ad00: 4a80 tstl %d0 <== NOT EXECUTED 4ad02: 6708 beqs 4ad0c <== NOT EXECUTED return rtems_deviceio_errno(status); 4ad04: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ad06: 4eba fe56 jsr %pc@(4ab5e ) <== NOT EXECUTED 4ad0a: 588f addql #4,%sp <== NOT EXECUTED return 0; } 4ad0c: 4e5e unlk %fp <== NOT EXECUTED 4ad0e: 4e75 rts 0004ac32 : ssize_t device_read( rtems_libio_t *iop, void *buffer, size_t count ) { 4ac32: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4ac36: 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; 4ac3a: 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; 4ac40: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; args.offset = iop->offset; 4ac44: 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( 4ac4a: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED the_jnode = iop->file_info; args.iop = iop; args.offset = iop->offset; args.buffer = buffer; 4ac4e: 2d6e 000c fff0 movel %fp@(12),%fp@(-16) <== NOT EXECUTED args.count = count; 4ac54: 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; 4ac5a: 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; 4ac5e: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED status = rtems_io_read( 4ac62: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4ac66: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4ac6a: 4eb9 0004 b4f8 jsr 4b4f8 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4ac70: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ac76: 4a80 tstl %d0 <== NOT EXECUTED 4ac78: 670a beqs 4ac84 <== NOT EXECUTED return rtems_deviceio_errno(status); 4ac7a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ac7c: 4eba fee0 jsr %pc@(4ab5e ) <== NOT EXECUTED 4ac80: 588f addql #4,%sp <== NOT EXECUTED 4ac82: 6004 bras 4ac88 <== NOT EXECUTED return (ssize_t) args.bytes_moved; 4ac84: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 4ac88: 4e5e unlk %fp <== NOT EXECUTED 4ac8a: 4e75 rts 0004abd8 : ssize_t device_write( rtems_libio_t *iop, const void *buffer, size_t count ) { 4abd8: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4abdc: 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; 4abe0: 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; 4abe6: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; args.offset = iop->offset; 4abea: 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( 4abf0: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED the_jnode = iop->file_info; args.iop = iop; args.offset = iop->offset; args.buffer = (void *) buffer; 4abf4: 2d6e 000c fff0 movel %fp@(12),%fp@(-16) <== NOT EXECUTED args.count = count; 4abfa: 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; 4ac00: 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; 4ac04: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED status = rtems_io_write( 4ac08: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4ac0c: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4ac10: 4eb9 0004 b54c jsr 4b54c <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4ac16: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ac1c: 4a80 tstl %d0 <== NOT EXECUTED 4ac1e: 670a beqs 4ac2a <== NOT EXECUTED return rtems_deviceio_errno(status); 4ac20: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ac22: 4eba ff3a jsr %pc@(4ab5e ) <== NOT EXECUTED 4ac26: 588f addql #4,%sp <== NOT EXECUTED 4ac28: 6004 bras 4ac2e <== NOT EXECUTED return (ssize_t) args.bytes_moved; 4ac2a: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 4ac2e: 4e5e unlk %fp <== NOT EXECUTED 4ac30: 4e75 rts 00043960 : /* * Drain output queue */ static void drainOutput (struct rtems_termios_tty *tty) { 43960: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 43964: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 43968: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED rtems_interrupt_level level; rtems_status_code sc; if (tty->device.outputUsesInterrupts != TERMIOS_POLLED) { 4396c: 4aaa 00b4 tstl %a2@(180) <== NOT EXECUTED 43970: 6752 beqs 439c4 <== NOT EXECUTED rtems_interrupt_disable (level); 43972: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 43978: 2200 movel %d0,%d1 <== NOT EXECUTED 4397a: 40c2 movew %sr,%d2 <== NOT EXECUTED 4397c: 8282 orl %d2,%d1 <== NOT EXECUTED 4397e: 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, 43980: 47f9 0004 4e4c lea 44e4c ,%a3 <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); rtems_interrupt_disable (level); 43986: 2600 movel %d0,%d3 <== NOT EXECUTED 43988: 602c bras 439b6 <== 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; 4398a: 7002 moveq #2,%d0 <== NOT EXECUTED 4398c: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED rtems_interrupt_enable (level); 43990: 46c2 movew %d2,%sr <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore, 43992: 42a7 clrl %sp@- <== NOT EXECUTED 43994: 42a7 clrl %sp@- <== NOT EXECUTED 43996: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 4399a: 4e93 jsr %a3@ <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 4399c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 439a2: 4a80 tstl %d0 <== NOT EXECUTED 439a4: 6708 beqs 439ae <== NOT EXECUTED rtems_fatal_error_occurred (sc); 439a6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 439a8: 4eb9 0004 5580 jsr 45580 <== NOT EXECUTED rtems_interrupt_disable (level); 439ae: 2003 movel %d3,%d0 <== NOT EXECUTED 439b0: 40c2 movew %sr,%d2 <== NOT EXECUTED 439b2: 8082 orl %d2,%d0 <== NOT EXECUTED 439b4: 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) { 439b6: 222a 0084 movel %a2@(132),%d1 <== NOT EXECUTED 439ba: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 439be: b081 cmpl %d1,%d0 <== NOT EXECUTED 439c0: 66c8 bnes 4398a <== NOT EXECUTED RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); rtems_interrupt_disable (level); } rtems_interrupt_enable (level); 439c2: 46c2 movew %d2,%sr <== NOT EXECUTED } } 439c4: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 439ca: 4e5e unlk %fp <== NOT EXECUTED 439cc: 4e75 rts 00042c1c : #include int dup( int fildes ) { 42c1c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return fcntl( fildes, F_DUPFD, 0 ); 42c20: 42a7 clrl %sp@- <== NOT EXECUTED 42c22: 42a7 clrl %sp@- <== NOT EXECUTED 42c24: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42c28: 4eb9 0004 2fcc jsr 42fcc <== NOT EXECUTED } 42c2e: 4e5e unlk %fp <== NOT EXECUTED 42c30: 4e75 rts <== NOT EXECUTED ... 00042bc0 : int dup2( int fildes, int fildes2 ) { 42bc0: 4e56 ffa4 linkw %fp,#-92 <== NOT EXECUTED 42bc4: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED /* * If fildes is not valid, then fildes2 should not be closed. */ status = fstat( fildes, &buf ); 42bc8: 240e movel %fp,%d2 <== NOT EXECUTED 42bca: 0682 ffff ffb6 addil #-74,%d2 <== NOT EXECUTED 42bd0: 2f02 movel %d2,%sp@- <== NOT EXECUTED int dup2( int fildes, int fildes2 ) { 42bd2: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 42bd6: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * If fildes is not valid, then fildes2 should not be closed. */ status = fstat( fildes, &buf ); 42bda: 2f04 movel %d4,%sp@- <== NOT EXECUTED 42bdc: 45f9 0004 336c lea 4336c ,%a2 <== NOT EXECUTED 42be2: 4e92 jsr %a2@ <== NOT EXECUTED if ( status == -1 ) 42be4: 508f addql #8,%sp <== NOT EXECUTED 42be6: 72ff moveq #-1,%d1 <== NOT EXECUTED 42be8: b280 cmpl %d0,%d1 <== NOT EXECUTED 42bea: 6722 beqs 42c0e <== NOT EXECUTED /* * If fildes2 is not valid, then we should not do anything either. */ status = fstat( fildes2, &buf ); 42bec: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42bee: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42bf0: 4e92 jsr %a2@ <== NOT EXECUTED if ( status == -1 ) 42bf2: 508f addql #8,%sp <== NOT EXECUTED 42bf4: 72ff moveq #-1,%d1 <== NOT EXECUTED 42bf6: b280 cmpl %d0,%d1 <== NOT EXECUTED 42bf8: 6714 beqs 42c0e <== NOT EXECUTED /* * This fcntl handles everything else. */ return fcntl( fildes, F_DUPFD, fildes2 ); 42bfa: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42bfc: 42a7 clrl %sp@- <== NOT EXECUTED 42bfe: 2f04 movel %d4,%sp@- <== NOT EXECUTED 42c00: 4eb9 0004 2fcc jsr 42fcc <== NOT EXECUTED 42c06: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42c0c: 6002 bras 42c10 <== NOT EXECUTED 42c0e: 70ff moveq #-1,%d0 <== NOT EXECUTED } 42c10: 4cee 041c ffa4 moveml %fp@(-92),%d2-%d4/%a2 <== NOT EXECUTED 42c16: 4e5e unlk %fp <== NOT EXECUTED 42c18: 4e75 rts <== NOT EXECUTED ... 000434b4 : /* * Echo a typed character */ static void echo (unsigned char c, struct rtems_termios_tty *tty) { 434b4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 434b8: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 434bc: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 434c0: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { 434c4: 202a 003c movel %a2@(60),%d0 <== NOT EXECUTED /* * Echo a typed character */ static void echo (unsigned char c, struct rtems_termios_tty *tty) { 434c8: 1602 moveb %d2,%d3 <== NOT EXECUTED if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { 434ca: 0280 0000 0200 andil #512,%d0 <== NOT EXECUTED 434d0: 6750 beqs 43522 <== NOT EXECUTED 434d2: 2079 0005 6820 moveal 56820 <__ctype_ptr>,%a0 <== NOT EXECUTED 434d8: 4281 clrl %d1 <== NOT EXECUTED 434da: 1202 moveb %d2,%d1 <== NOT EXECUTED 434dc: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 434e0: 49c0 extbl %d0 <== NOT EXECUTED 434e2: 0800 0005 btst #5,%d0 <== NOT EXECUTED 434e6: 673a beqs 43522 <== NOT EXECUTED 434e8: 7009 moveq #9,%d0 <== NOT EXECUTED 434ea: b081 cmpl %d1,%d0 <== NOT EXECUTED 434ec: 6734 beqs 43522 <== NOT EXECUTED 434ee: 103c 000a moveb #10,%d0 <== NOT EXECUTED 434f2: b081 cmpl %d1,%d0 <== NOT EXECUTED 434f4: 672c beqs 43522 <== NOT EXECUTED char echobuf[2]; echobuf[0] = '^'; echobuf[1] = c ^ 0x40; rtems_termios_puts (echobuf, 2, tty); 434f6: 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; 434f8: 103c 0040 moveb #64,%d0 <== NOT EXECUTED 434fc: b182 eorl %d0,%d2 <== NOT EXECUTED rtems_termios_puts (echobuf, 2, tty); 434fe: 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] = '^'; 43502: 705e moveq #94,%d0 <== NOT EXECUTED echobuf[1] = c ^ 0x40; rtems_termios_puts (echobuf, 2, tty); 43504: 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; 43508: 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] = '^'; 4350c: 1d40 fffe moveb %d0,%fp@(-2) <== NOT EXECUTED echobuf[1] = c ^ 0x40; rtems_termios_puts (echobuf, 2, tty); 43510: 4eb9 0004 326e jsr 4326e <== NOT EXECUTED tty->column += 2; 43516: 54aa 0028 addql #2,%a2@(40) <== NOT EXECUTED 4351a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43520: 600e bras 43530 <== NOT EXECUTED } else { oproc (c, tty); 43522: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43524: 4280 clrl %d0 <== NOT EXECUTED 43526: 1003 moveb %d3,%d0 <== NOT EXECUTED 43528: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4352a: 4eba fe42 jsr %pc@(4336e ) <== NOT EXECUTED 4352e: 508f addql #8,%sp <== NOT EXECUTED } } 43530: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 43536: 4e5e unlk %fp <== NOT EXECUTED 43538: 4e75 rts 0005b4d0 : group_fp = fopen("/etc/group", "r"); } void endgrent(void) { if (group_fp != NULL) 5b4d0: 2039 0009 28ca movel 928ca ,%d0 <== NOT EXECUTED fclose(group_fp); group_fp = fopen("/etc/group", "r"); } void endgrent(void) { 5b4d6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (group_fp != NULL) 5b4da: 4a80 tstl %d0 <== NOT EXECUTED 5b4dc: 670a beqs 5b4e8 <== NOT EXECUTED fclose(group_fp); 5b4de: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b4e0: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED 5b4e6: 588f addql #4,%sp <== NOT EXECUTED } 5b4e8: 4e5e unlk %fp <== NOT EXECUTED 5b4ea: 4e75 rts 0005b4ec : passwd_fp = fopen("/etc/passwd", "r"); } void endpwent(void) { if (passwd_fp != NULL) 5b4ec: 2039 0009 27e2 movel 927e2 ,%d0 <== NOT EXECUTED fclose(passwd_fp); passwd_fp = fopen("/etc/passwd", "r"); } void endpwent(void) { 5b4f2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (passwd_fp != NULL) 5b4f6: 4a80 tstl %d0 <== NOT EXECUTED 5b4f8: 670a beqs 5b504 <== NOT EXECUTED fclose(passwd_fp); 5b4fa: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b4fc: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED 5b502: 588f addql #4,%sp <== NOT EXECUTED } 5b504: 4e5e unlk %fp <== NOT EXECUTED 5b506: 4e75 rts 0004353a : * 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) { 4353a: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4353e: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 43542: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 43546: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED if (tty->ccount == 0) 4354a: 4aaa 0020 tstl %a2@(32) <== NOT EXECUTED 4354e: 6700 0182 beqw 436d2 <== NOT EXECUTED return; if (lineFlag) { 43552: 4a84 tstl %d4 <== NOT EXECUTED 43554: 6700 016e beqw 436c4 <== NOT EXECUTED if (!(tty->termios.c_lflag & ECHO)) { 43558: 202a 003c movel %a2@(60),%d0 <== NOT EXECUTED 4355c: 44c0 movew %d0,%ccr <== NOT EXECUTED 4355e: 6b08 bmis 43568 <== NOT EXECUTED tty->ccount = 0; 43560: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED 43564: 6000 016c braw 436d2 <== NOT EXECUTED return; } if (!(tty->termios.c_lflag & ECHOE)) { 43568: 0800 0004 btst #4,%d0 <== NOT EXECUTED 4356c: 6600 0156 bnew 436c4 <== NOT EXECUTED tty->ccount = 0; echo (tty->termios.c_cc[VKILL], tty); 43570: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43572: 4280 clrl %d0 <== NOT EXECUTED 43574: 102a 0044 moveb %a2@(68),%d0 <== NOT EXECUTED 43578: 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; 4357a: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED echo (tty->termios.c_cc[VKILL], tty); 4357e: 4eba ff34 jsr %pc@(434b4 ) <== NOT EXECUTED if (tty->termios.c_lflag & ECHOK) 43582: 7020 moveq #32,%d0 <== NOT EXECUTED 43584: 508f addql #8,%sp <== NOT EXECUTED 43586: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 4358a: 6700 0146 beqw 436d2 <== NOT EXECUTED echo ('\n', tty); 4358e: 700a moveq #10,%d0 <== NOT EXECUTED 43590: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 43594: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED 43598: 6032 bras 435cc <== NOT EXECUTED return; } } while (tty->ccount) { unsigned char c = tty->cbuf[--tty->ccount]; 4359a: 2240 moveal %d0,%a1 <== NOT EXECUTED 4359c: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 435a0: 5389 subql #1,%a1 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) { 435a2: 222a 003c movel %a2@(60),%d1 <== NOT EXECUTED echo ('\n', tty); return; } } while (tty->ccount) { unsigned char c = tty->cbuf[--tty->ccount]; 435a6: 2549 0020 movel %a1,%a2@(32) <== NOT EXECUTED 435aa: 1030 9800 moveb %a0@(00000000,%a1:l),%d0 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) { 435ae: 44c1 movew %d1,%ccr <== NOT EXECUTED 435b0: 6a00 010c bplw 436be <== NOT EXECUTED if (!lineFlag && !(tty->termios.c_lflag & ECHOE)) { 435b4: 4a84 tstl %d4 <== NOT EXECUTED 435b6: 6620 bnes 435d8 <== NOT EXECUTED 435b8: 0801 0004 btst #4,%d1 <== NOT EXECUTED 435bc: 661a bnes 435d8 <== NOT EXECUTED echo (tty->termios.c_cc[VERASE], tty); 435be: 4280 clrl %d0 <== NOT EXECUTED 435c0: 102a 0043 moveb %a2@(67),%d0 <== NOT EXECUTED 435c4: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 435c8: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } } if (!lineFlag) break; } } 435cc: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 435d2: 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); 435d4: 6000 fede braw 434b4 <== NOT EXECUTED 435d8: 2679 0005 6820 moveal 56820 <__ctype_ptr>,%a3 <== NOT EXECUTED } else if (c == '\t') { 435de: 4282 clrl %d2 <== NOT EXECUTED 435e0: 1400 moveb %d0,%d2 <== NOT EXECUTED 435e2: 7a09 moveq #9,%d5 <== NOT EXECUTED 435e4: ba82 cmpl %d2,%d5 <== NOT EXECUTED 435e6: 6666 bnes 4364e <== NOT EXECUTED int col = tty->read_start_column; 435e8: 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) 435ec: 2601 movel %d1,%d3 <== NOT EXECUTED 435ee: 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)) { 435f4: 4281 clrl %d1 <== NOT EXECUTED 435f6: 6030 bras 43628 <== NOT EXECUTED /* * Find the character before the tab */ while (i != tty->ccount) { c = tty->cbuf[i++]; 435f8: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED if (c == '\t') { 435fc: 4280 clrl %d0 <== NOT EXECUTED 435fe: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 43602: 7a09 moveq #9,%d5 <== NOT EXECUTED 43604: ba80 cmpl %d0,%d5 <== NOT EXECUTED 43606: 6608 bnes 43610 <== NOT EXECUTED col = (col | 7) + 1; 43608: 7007 moveq #7,%d0 <== NOT EXECUTED 4360a: 8082 orl %d2,%d0 <== NOT EXECUTED 4360c: 2400 movel %d0,%d2 <== NOT EXECUTED 4360e: 6014 bras 43624 <== NOT EXECUTED } else if (iscntrl (c)) { 43610: 1033 0800 moveb %a3@(00000000,%d0:l),%d0 <== NOT EXECUTED 43614: 49c0 extbl %d0 <== NOT EXECUTED 43616: 0800 0005 btst #5,%d0 <== NOT EXECUTED 4361a: 6708 beqs 43624 <== NOT EXECUTED if (tty->termios.c_lflag & ECHOCTL) 4361c: 4a83 tstl %d3 <== NOT EXECUTED 4361e: 6706 beqs 43626 <== NOT EXECUTED col += 2; 43620: 5482 addql #2,%d2 <== NOT EXECUTED 43622: 6002 bras 43626 <== NOT EXECUTED } else { col++; 43624: 5282 addql #1,%d2 <== NOT EXECUTED /* * Find the character before the tab */ while (i != tty->ccount) { c = tty->cbuf[i++]; 43626: 5281 addql #1,%d1 <== NOT EXECUTED int i = 0; /* * Find the character before the tab */ while (i != tty->ccount) { 43628: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 4362a: 66cc bnes 435f8 <== NOT EXECUTED 4362c: 6018 bras 43646 <== NOT EXECUTED /* * Back up over the tab */ while (tty->column > col) { rtems_termios_puts ("\b", 1, tty); 4362e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43630: 4878 0001 pea 1 <== NOT EXECUTED 43634: 4879 0005 5087 pea 55087 <== NOT EXECUTED 4363a: 4e94 jsr %a4@ <== NOT EXECUTED tty->column--; 4363c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43642: 53aa 0028 subql #1,%a2@(40) <== NOT EXECUTED } /* * Back up over the tab */ while (tty->column > col) { 43646: b4aa 0028 cmpl %a2@(40),%d2 <== NOT EXECUTED 4364a: 6de2 blts 4362e <== NOT EXECUTED 4364c: 6070 bras 436be <== NOT EXECUTED rtems_termios_puts ("\b", 1, tty); tty->column--; } } else { if (iscntrl (c) && (tty->termios.c_lflag & ECHOCTL)) { 4364e: 1033 2800 moveb %a3@(00000000,%d2:l),%d0 <== NOT EXECUTED 43652: 49c0 extbl %d0 <== NOT EXECUTED 43654: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43658: 6726 beqs 43680 <== NOT EXECUTED 4365a: 0801 0009 btst #9,%d1 <== NOT EXECUTED 4365e: 6720 beqs 43680 <== NOT EXECUTED rtems_termios_puts ("\b \b", 3, tty); 43660: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43662: 4878 0003 pea 3 <== NOT EXECUTED 43666: 4879 0005 5085 pea 55085 <== NOT EXECUTED 4366c: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->column) 4366e: 202a 0028 movel %a2@(40),%d0 <== NOT EXECUTED 43672: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43678: 6706 beqs 43680 <== NOT EXECUTED tty->column--; 4367a: 5380 subql #1,%d0 <== NOT EXECUTED 4367c: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED } if (!iscntrl (c) || (tty->termios.c_lflag & ECHOCTL)) { 43680: 2079 0005 6820 moveal 56820 <__ctype_ptr>,%a0 <== NOT EXECUTED 43686: 1030 2800 moveb %a0@(00000000,%d2:l),%d0 <== NOT EXECUTED 4368a: 49c0 extbl %d0 <== NOT EXECUTED 4368c: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43690: 670c beqs 4369e <== NOT EXECUTED 43692: 202a 003c movel %a2@(60),%d0 <== NOT EXECUTED 43696: 0280 0000 0200 andil #512,%d0 <== NOT EXECUTED 4369c: 6720 beqs 436be <== NOT EXECUTED rtems_termios_puts ("\b \b", 3, tty); 4369e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 436a0: 4878 0003 pea 3 <== NOT EXECUTED 436a4: 4879 0005 5085 pea 55085 <== NOT EXECUTED 436aa: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->column) 436ac: 202a 0028 movel %a2@(40),%d0 <== NOT EXECUTED 436b0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 436b6: 6706 beqs 436be <== NOT EXECUTED tty->column--; 436b8: 5380 subql #1,%d0 <== NOT EXECUTED 436ba: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED } } } if (!lineFlag) 436be: 4a84 tstl %d4 <== NOT EXECUTED 436c0: 6608 bnes 436ca <== NOT EXECUTED 436c2: 600e bras 436d2 <== 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); 436c4: 49f9 0004 326e lea 4326e ,%a4 <== NOT EXECUTED if (tty->termios.c_lflag & ECHOK) echo ('\n', tty); return; } } while (tty->ccount) { 436ca: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 436ce: 6600 feca bnew 4359a <== NOT EXECUTED } } if (!lineFlag) break; } } 436d2: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 436d8: 4e5e unlk %fp <== NOT EXECUTED 436da: 4e75 rts 00044e24 : const char *path, const char *arg, ... ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 44e24: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44e28: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44e2e: 2040 moveal %d0,%a0 <== NOT EXECUTED 44e30: 7058 moveq #88,%d0 <== NOT EXECUTED 44e32: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44e34: 4e5e unlk %fp <== NOT EXECUTED 44e36: 70ff moveq #-1,%d0 <== NOT EXECUTED 44e38: 4e75 rts <== NOT EXECUTED ... 00044e0c : const char *path, char const *arg, ... ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 44e0c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44e10: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44e16: 2040 moveal %d0,%a0 <== NOT EXECUTED 44e18: 7058 moveq #88,%d0 <== NOT EXECUTED 44e1a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44e1c: 4e5e unlk %fp <== NOT EXECUTED 44e1e: 70ff moveq #-1,%d0 <== NOT EXECUTED 44e20: 4e75 rts <== NOT EXECUTED ... 00044e3c : const char *file, const char *arg, ... ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 44e3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44e40: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44e46: 2040 moveal %d0,%a0 <== NOT EXECUTED 44e48: 7058 moveq #88,%d0 <== NOT EXECUTED 44e4a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44e4c: 4e5e unlk %fp <== NOT EXECUTED 44e4e: 70ff moveq #-1,%d0 <== NOT EXECUTED 44e50: 4e75 rts <== NOT EXECUTED ... 00044e6c : int execv( const char *file, char *const argv[] ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 44e6c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44e70: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44e76: 2040 moveal %d0,%a0 <== NOT EXECUTED 44e78: 7058 moveq #88,%d0 <== NOT EXECUTED 44e7a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44e7c: 4e5e unlk %fp <== NOT EXECUTED 44e7e: 70ff moveq #-1,%d0 <== NOT EXECUTED 44e80: 4e75 rts <== NOT EXECUTED ... 00044e54 : const char *path, char *const argv[], char *const envp[] ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 44e54: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44e58: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44e5e: 2040 moveal %d0,%a0 <== NOT EXECUTED 44e60: 7058 moveq #88,%d0 <== NOT EXECUTED 44e62: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44e64: 4e5e unlk %fp <== NOT EXECUTED 44e66: 70ff moveq #-1,%d0 <== NOT EXECUTED 44e68: 4e75 rts <== NOT EXECUTED ... 00044e84 : int execvp( const char *path, char *const argv[] ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 44e84: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44e88: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44e8e: 2040 moveal %d0,%a0 <== NOT EXECUTED 44e90: 7058 moveq #88,%d0 <== NOT EXECUTED 44e92: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44e94: 4e5e unlk %fp <== NOT EXECUTED 44e96: 70ff moveq #-1,%d0 <== NOT EXECUTED 44e98: 4e75 rts <== NOT EXECUTED ... 00066570 : #include int fchdir( int fd ) { 66570: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 66574: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 66578: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_location_info_t loc, saved; rtems_libio_check_fd( fd ); 6657c: b4b9 0007 db68 cmpl 7db68 ,%d2 <== NOT EXECUTED 66582: 6420 bccs 665a4 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 66584: 2202 movel %d2,%d1 <== NOT EXECUTED 66586: 2002 movel %d2,%d0 <== NOT EXECUTED 66588: e589 lsll #2,%d1 <== NOT EXECUTED 6658a: e988 lsll #4,%d0 <== NOT EXECUTED 6658c: 9081 subl %d1,%d0 <== NOT EXECUTED 6658e: 2279 0009 3738 moveal 93738 ,%a1 <== NOT EXECUTED 66594: d082 addl %d2,%d0 <== NOT EXECUTED 66596: e588 lsll #2,%d0 <== NOT EXECUTED 66598: d3c0 addal %d0,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 6659a: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 6659e: 0800 0008 btst #8,%d0 <== NOT EXECUTED 665a2: 6610 bnes 665b4 <== NOT EXECUTED 665a4: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 665aa: 7409 moveq #9,%d2 <== NOT EXECUTED 665ac: 2040 moveal %d0,%a0 <== NOT EXECUTED 665ae: 2082 movel %d2,%a0@ <== NOT EXECUTED 665b0: 6000 00bc braw 6666e <== NOT EXECUTED /* * Now process the fchmod(). */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 665b4: 0800 0001 btst #1,%d0 <== NOT EXECUTED 665b8: 6610 bnes 665ca <== NOT EXECUTED 665ba: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 665c0: 7216 moveq #22,%d1 <== NOT EXECUTED 665c2: 2040 moveal %d0,%a0 <== NOT EXECUTED 665c4: 2081 movel %d1,%a0@ <== NOT EXECUTED 665c6: 6000 00a6 braw 6666e <== NOT EXECUTED /* * Verify you can change directory into this node. */ if ( !iop->pathinfo.ops ) { 665ca: 2069 0018 moveal %a1@(24),%a0 <== NOT EXECUTED 665ce: 4a88 tstl %a0 <== NOT EXECUTED 665d0: 6708 beqs 665da <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( !iop->pathinfo.ops->node_type_h ) { 665d2: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 665d6: 4a88 tstl %a0 <== NOT EXECUTED 665d8: 6612 bnes 665ec <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 665da: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 665e0: 2040 moveal %d0,%a0 <== NOT EXECUTED 665e2: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 665e8: 6000 0084 braw 6666e <== NOT EXECUTED } if ( (*iop->pathinfo.ops->node_type_h)( &iop->pathinfo ) != 665ec: 2609 movel %a1,%d3 <== NOT EXECUTED 665ee: 0683 0000 0010 addil #16,%d3 <== NOT EXECUTED 665f4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 665f6: 4e90 jsr %a0@ <== NOT EXECUTED 665f8: 588f addql #4,%sp <== NOT EXECUTED 665fa: 7201 moveq #1,%d1 <== NOT EXECUTED 665fc: b280 cmpl %d0,%d1 <== NOT EXECUTED 665fe: 670e beqs 6660e <== NOT EXECUTED RTEMS_FILESYSTEM_DIRECTORY ) { rtems_set_errno_and_return_minus_one( ENOTDIR ); 66600: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 66606: 2040 moveal %d0,%a0 <== NOT EXECUTED 66608: 7014 moveq #20,%d0 <== NOT EXECUTED 6660a: 2080 movel %d0,%a0@ <== NOT EXECUTED 6660c: 6060 bras 6666e <== NOT EXECUTED * but note the race condition. Threads who * share their rtems_filesystem_current better * be synchronized! */ saved = rtems_filesystem_current; 6660e: 4878 0010 pea 10 <== NOT EXECUTED 66612: 2439 0007 e600 movel 7e600 ,%d2 <== NOT EXECUTED 66618: 5882 addql #4,%d2 <== NOT EXECUTED 6661a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6661c: 280e movel %fp,%d4 <== NOT EXECUTED 6661e: 0684 ffff ffe0 addil #-32,%d4 <== NOT EXECUTED 66624: 2f04 movel %d4,%sp@- <== NOT EXECUTED 66626: 45f9 0006 aeec lea 6aeec ,%a2 <== NOT EXECUTED 6662c: 4e92 jsr %a2@ <== NOT EXECUTED rtems_filesystem_current = iop->pathinfo; 6662e: 4878 0010 pea 10 <== NOT EXECUTED 66632: 2f03 movel %d3,%sp@- <== NOT EXECUTED 66634: 2f02 movel %d2,%sp@- <== NOT EXECUTED 66636: 4e92 jsr %a2@ <== NOT EXECUTED /* clone the current node */ if (rtems_filesystem_evaluate_path(".", 0, &loc, 0)) { 66638: 42a7 clrl %sp@- <== NOT EXECUTED 6663a: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 6663e: 42a7 clrl %sp@- <== NOT EXECUTED 66640: 4879 0007 9d1e pea 79d1e <_CPU_m68k_BFFFO_table+0x3d7> <== NOT EXECUTED 66646: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED 6664c: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED 66652: 4a80 tstl %d0 <== NOT EXECUTED 66654: 671c beqs 66672 <== NOT EXECUTED /* cloning failed; restore original and bail out */ rtems_filesystem_current = saved; 66656: 4878 0010 pea 10 <== NOT EXECUTED 6665a: 2039 0007 e600 movel 7e600 ,%d0 <== NOT EXECUTED 66660: 2f04 movel %d4,%sp@- <== NOT EXECUTED 66662: 5880 addql #4,%d0 <== NOT EXECUTED 66664: 2f00 movel %d0,%sp@- <== NOT EXECUTED 66666: 4e92 jsr %a2@ <== NOT EXECUTED 66668: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 6666e: 70ff moveq #-1,%d0 <== NOT EXECUTED 66670: 6036 bras 666a8 <== NOT EXECUTED return -1; } /* release the old one */ rtems_filesystem_freenode( &saved ); 66672: 206e ffe8 moveal %fp@(-24),%a0 <== NOT EXECUTED 66676: 4a88 tstl %a0 <== NOT EXECUTED 66678: 670e beqs 66688 <== NOT EXECUTED 6667a: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 6667e: 4a88 tstl %a0 <== NOT EXECUTED 66680: 6706 beqs 66688 <== NOT EXECUTED 66682: 2f04 movel %d4,%sp@- <== NOT EXECUTED 66684: 4e90 jsr %a0@ <== NOT EXECUTED 66686: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_current = loc; 66688: 4878 0010 pea 10 <== NOT EXECUTED 6668c: 2239 0007 e600 movel 7e600 ,%d1 <== NOT EXECUTED 66692: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 66696: 5881 addql #4,%d1 <== NOT EXECUTED 66698: 2f01 movel %d1,%sp@- <== NOT EXECUTED 6669a: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED 666a0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 666a6: 4280 clrl %d0 <== NOT EXECUTED return 0; } 666a8: 4cee 041c ffd0 moveml %fp@(-48),%d2-%d4/%a2 <== NOT EXECUTED 666ae: 4e5e unlk %fp <== NOT EXECUTED 666b0: 4e75 rts <== NOT EXECUTED ... 0005ad7c : int fchmod( int fd, mode_t mode ) { 5ad7c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5ad80: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ad82: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 5ad86: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ad88: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); 5ad8c: b4b9 0007 db68 cmpl 7db68 ,%d2 <== NOT EXECUTED 5ad92: 6420 bccs 5adb4 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 5ad94: 2202 movel %d2,%d1 <== NOT EXECUTED 5ad96: 2002 movel %d2,%d0 <== NOT EXECUTED 5ad98: e589 lsll #2,%d1 <== NOT EXECUTED 5ad9a: e988 lsll #4,%d0 <== NOT EXECUTED 5ad9c: 9081 subl %d1,%d0 <== NOT EXECUTED 5ad9e: 2279 0009 3738 moveal 93738 ,%a1 <== NOT EXECUTED 5ada4: d082 addl %d2,%d0 <== NOT EXECUTED 5ada6: e588 lsll #2,%d0 <== NOT EXECUTED 5ada8: d3c0 addal %d0,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 5adaa: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 5adae: 0800 0008 btst #8,%d0 <== NOT EXECUTED 5adb2: 660e bnes 5adc2 <== NOT EXECUTED 5adb4: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5adba: 7209 moveq #9,%d1 <== NOT EXECUTED 5adbc: 2040 moveal %d0,%a0 <== NOT EXECUTED 5adbe: 2081 movel %d1,%a0@ <== NOT EXECUTED 5adc0: 604e bras 5ae10 <== NOT EXECUTED /* * Now process the fchmod(). */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 5adc2: 44c0 movew %d0,%ccr <== NOT EXECUTED 5adc4: 670e beqs 5add4 <== NOT EXECUTED 5adc6: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5adcc: 2040 moveal %d0,%a0 <== NOT EXECUTED 5adce: 7016 moveq #22,%d0 <== NOT EXECUTED 5add0: 2080 movel %d0,%a0@ <== NOT EXECUTED 5add2: 603c bras 5ae10 <== NOT EXECUTED if ( !iop->handlers->fchmod_h ) 5add4: 2069 0030 moveal %a1@(48),%a0 <== NOT EXECUTED 5add8: 4aa8 001c tstl %a0@(28) <== NOT EXECUTED 5addc: 6610 bnes 5adee <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5adde: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ade4: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ade6: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5adec: 6022 bras 5ae10 <== NOT EXECUTED return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); 5adee: 2069 0014 moveal %a1@(20),%a0 <== NOT EXECUTED 5adf2: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED } 5adf6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5adfa: 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 ); 5adfe: d3fc 0000 0010 addal #16,%a1 <== NOT EXECUTED 5ae04: 2d49 0008 movel %a1,%fp@(8) <== NOT EXECUTED 5ae08: 2268 001c moveal %a0@(28),%a1 <== NOT EXECUTED } 5ae0c: 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 ); 5ae0e: 4ed1 jmp %a1@ <== NOT EXECUTED } 5ae10: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5ae14: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 5ae18: 4e5e unlk %fp <== NOT EXECUTED 5ae1a: 70ff moveq #-1,%d0 <== NOT EXECUTED 5ae1c: 4e75 rts <== NOT EXECUTED ... 0005ae20 : int fchown( int fd, uid_t owner, gid_t group ) { 5ae20: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 5ae24: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 5ae28: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 5ae2c: 382e 000e movew %fp@(14),%d4 <== NOT EXECUTED 5ae30: 362e 0012 movew %fp@(18),%d3 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); 5ae34: b4b9 0007 db68 cmpl 7db68 ,%d2 <== NOT EXECUTED 5ae3a: 6420 bccs 5ae5c <== NOT EXECUTED iop = rtems_libio_iop( fd ); 5ae3c: 2202 movel %d2,%d1 <== NOT EXECUTED 5ae3e: 2002 movel %d2,%d0 <== NOT EXECUTED 5ae40: e589 lsll #2,%d1 <== NOT EXECUTED 5ae42: e988 lsll #4,%d0 <== NOT EXECUTED 5ae44: 9081 subl %d1,%d0 <== NOT EXECUTED 5ae46: 2279 0009 3738 moveal 93738 ,%a1 <== NOT EXECUTED 5ae4c: d082 addl %d2,%d0 <== NOT EXECUTED 5ae4e: e588 lsll #2,%d0 <== NOT EXECUTED 5ae50: d3c0 addal %d0,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 5ae52: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 5ae56: 0800 0008 btst #8,%d0 <== NOT EXECUTED 5ae5a: 660e bnes 5ae6a <== NOT EXECUTED 5ae5c: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ae62: 7209 moveq #9,%d1 <== NOT EXECUTED 5ae64: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ae66: 2081 movel %d1,%a0@ <== NOT EXECUTED 5ae68: 6054 bras 5aebe <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 5ae6a: 44c0 movew %d0,%ccr <== NOT EXECUTED 5ae6c: 670e beqs 5ae7c <== NOT EXECUTED 5ae6e: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ae74: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ae76: 7016 moveq #22,%d0 <== NOT EXECUTED 5ae78: 2080 movel %d0,%a0@ <== NOT EXECUTED 5ae7a: 6042 bras 5aebe <== NOT EXECUTED if ( !iop->pathinfo.ops->chown_h ) 5ae7c: 2069 0018 moveal %a1@(24),%a0 <== NOT EXECUTED 5ae80: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 5ae84: 4a88 tstl %a0 <== NOT EXECUTED 5ae86: 6610 bnes 5ae98 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5ae88: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ae8e: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ae90: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5ae96: 6026 bras 5aebe <== NOT EXECUTED return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); 5ae98: 4281 clrl %d1 <== NOT EXECUTED 5ae9a: 4280 clrl %d0 <== NOT EXECUTED 5ae9c: 3203 movew %d3,%d1 <== NOT EXECUTED 5ae9e: d3fc 0000 0010 addal #16,%a1 <== NOT EXECUTED 5aea4: 3004 movew %d4,%d0 <== NOT EXECUTED 5aea6: 2d49 0008 movel %a1,%fp@(8) <== NOT EXECUTED } 5aeaa: 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 ); 5aeb0: 2248 moveal %a0,%a1 <== NOT EXECUTED 5aeb2: 2d41 0010 movel %d1,%fp@(16) <== NOT EXECUTED 5aeb6: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED } 5aeba: 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 ); 5aebc: 4ed1 jmp %a1@ <== NOT EXECUTED } 5aebe: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED 5aec4: 4e5e unlk %fp <== NOT EXECUTED 5aec6: 70ff moveq #-1,%d0 <== NOT EXECUTED 5aec8: 4e75 rts <== NOT EXECUTED ... 000666b4 : int fcntl( int fd, int cmd, ... ) { 666b4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 666b8: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 666bc: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 666c0: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED int fd2; int flags; int mask; int ret = 0; rtems_libio_check_fd( fd ); 666c4: 2479 0007 db68 moveal 7db68 ,%a2 <== NOT EXECUTED int fcntl( int fd, int cmd, ... ) { 666ca: 41ee 0010 lea %fp@(16),%a0 <== NOT EXECUTED int fd2; int flags; int mask; int ret = 0; rtems_libio_check_fd( fd ); 666ce: b5c2 cmpal %d2,%a2 <== NOT EXECUTED 666d0: 6320 blss 666f2 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 666d2: 2202 movel %d2,%d1 <== NOT EXECUTED 666d4: 2002 movel %d2,%d0 <== NOT EXECUTED 666d6: e589 lsll #2,%d1 <== NOT EXECUTED 666d8: e988 lsll #4,%d0 <== NOT EXECUTED 666da: 2279 0009 3738 moveal 93738 ,%a1 <== NOT EXECUTED 666e0: 9081 subl %d1,%d0 <== NOT EXECUTED 666e2: d082 addl %d2,%d0 <== NOT EXECUTED 666e4: 47f1 0c00 lea %a1@(00000000,%d0:l:4),%a3 <== NOT EXECUTED rtems_libio_check_is_open(iop); 666e8: 222b 000c movel %a3@(12),%d1 <== NOT EXECUTED 666ec: 0801 0008 btst #8,%d1 <== NOT EXECUTED 666f0: 6610 bnes 66702 <== NOT EXECUTED 666f2: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 666f8: 7209 moveq #9,%d1 <== NOT EXECUTED 666fa: 2040 moveal %d0,%a0 <== NOT EXECUTED 666fc: 2081 movel %d1,%a0@ <== NOT EXECUTED 666fe: 6000 0104 braw 66804 <== NOT EXECUTED /* * This switch should contain all the cases from POSIX. */ switch ( cmd ) { 66702: 7009 moveq #9,%d0 <== NOT EXECUTED 66704: b083 cmpl %d3,%d0 <== NOT EXECUTED 66706: 6500 00f0 bcsw 667f8 <== NOT EXECUTED 6670a: 303b 3a08 movew %pc@(66714 ,%d3:l:2),%d0 <== NOT EXECUTED 6670e: 48c0 extl %d0 <== NOT EXECUTED 66710: 4efb 0802 jmp %pc@(66714 ,%d0:l) <== NOT EXECUTED 66714: 0014 024 <== NOT EXECUTED 66716: 0080 008e 00a4 oril #9306276,%d0 <== NOT EXECUTED 6671c: 00b2 00d4 00d4 oril #13893844,%d2 <== NOT EXECUTED 66722: 00d4 0324 <== NOT EXECUTED 66724: 00d4 0324 <== NOT EXECUTED 66726: 00d4 0324 <== NOT EXECUTED case F_DUPFD: /* dup */ fd2 = va_arg( ap, int ); 66728: 2410 movel %a0@,%d2 <== NOT EXECUTED if ( fd2 ) 6672a: 671a beqs 66746 <== NOT EXECUTED diop = rtems_libio_iop( fd2 ); 6672c: b5c2 cmpal %d2,%a2 <== NOT EXECUTED 6672e: 6204 bhis 66734 <== NOT EXECUTED 66730: 95ca subal %a2,%a2 <== NOT EXECUTED 66732: 6020 bras 66754 <== NOT EXECUTED 66734: 2202 movel %d2,%d1 <== NOT EXECUTED 66736: 2002 movel %d2,%d0 <== NOT EXECUTED 66738: e589 lsll #2,%d1 <== NOT EXECUTED 6673a: e988 lsll #4,%d0 <== NOT EXECUTED 6673c: 9081 subl %d1,%d0 <== NOT EXECUTED 6673e: d082 addl %d2,%d0 <== NOT EXECUTED 66740: 45f1 0c00 lea %a1@(00000000,%d0:l:4),%a2 <== NOT EXECUTED 66744: 600e bras 66754 <== NOT EXECUTED else { /* allocate a file control block */ diop = rtems_libio_allocate(); 66746: 4eb9 0004 56b2 jsr 456b2 <== NOT EXECUTED 6674c: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( diop == 0 ) { 6674e: 4a80 tstl %d0 <== NOT EXECUTED 66750: 6700 00b2 beqw 66804 <== 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); 66754: 240a movel %a2,%d2 <== NOT EXECUTED ret = -1; break; } } diop->handlers = iop->handlers; 66756: 256b 0030 0030 movel %a3@(48),%a2@(48) <== NOT EXECUTED diop->file_info = iop->file_info; 6675c: 256b 002c 002c movel %a3@(44),%a2@(44) <== NOT EXECUTED diop->flags = iop->flags; 66762: 256b 000c 000c movel %a3@(12),%a2@(12) <== NOT EXECUTED diop->pathinfo = iop->pathinfo; 66768: 4878 0010 pea 10 <== NOT EXECUTED 6676c: 486b 0010 pea %a3@(16) <== NOT EXECUTED 66770: 486a 0010 pea %a2@(16) <== NOT EXECUTED 66774: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED ret = (int) (diop - rtems_libio_iops); 6677a: 94b9 0009 3738 subl 93738 ,%d2 <== NOT EXECUTED 66780: 203c c4ec 4ec5 movel #-991146299,%d0 <== NOT EXECUTED 66786: e482 asrl #2,%d2 <== NOT EXECUTED 66788: 4c00 2800 mulsl %d0,%d2 <== NOT EXECUTED 6678c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 66792: 6074 bras 66808 <== NOT EXECUTED break; case F_GETFD: /* get f_flags */ ret = ((iop->flags & LIBIO_FLAGS_CLOSE_ON_EXEC) != 0); 66794: 700b moveq #11,%d0 <== NOT EXECUTED 66796: 2401 movel %d1,%d2 <== NOT EXECUTED 66798: e0aa lsrl %d0,%d2 <== NOT EXECUTED 6679a: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 6679e: c480 andl %d0,%d2 <== NOT EXECUTED 667a0: 606a bras 6680c <== 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 ) ) 667a2: 4a90 tstl %a0@ <== NOT EXECUTED 667a4: 6706 beqs 667ac <== NOT EXECUTED iop->flags |= LIBIO_FLAGS_CLOSE_ON_EXEC; 667a6: 08c1 000b bset #11,%d1 <== NOT EXECUTED 667aa: 6004 bras 667b0 <== NOT EXECUTED else iop->flags &= ~LIBIO_FLAGS_CLOSE_ON_EXEC; 667ac: 0881 000b bclr #11,%d1 <== NOT EXECUTED 667b0: 2741 000c movel %d1,%a3@(12) <== NOT EXECUTED 667b4: 4282 clrl %d2 <== NOT EXECUTED 667b6: 6054 bras 6680c <== NOT EXECUTED break; case F_GETFL: /* more flags (cloexec) */ ret = rtems_libio_to_fcntl_flags( iop->flags ); 667b8: 2f01 movel %d1,%sp@- <== NOT EXECUTED 667ba: 4eb9 0004 5528 jsr 45528 <== NOT EXECUTED 667c0: 588f addql #4,%sp <== NOT EXECUTED 667c2: 2400 movel %d0,%d2 <== NOT EXECUTED 667c4: 6042 bras 66808 <== NOT EXECUTED break; case F_SETFL: flags = rtems_libio_fcntl_flags( va_arg( ap, int ) ); 667c6: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 667c8: 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); 667ce: 222b 000c movel %a3@(12),%d1 <== NOT EXECUTED 667d2: 0280 0000 0201 andil #513,%d0 <== NOT EXECUTED 667d8: 0281 ffff fdfe andil #-514,%d1 <== NOT EXECUTED 667de: 8081 orl %d1,%d0 <== NOT EXECUTED 667e0: 2740 000c movel %d0,%a3@(12) <== NOT EXECUTED 667e4: 588f addql #4,%sp <== NOT EXECUTED 667e6: 60cc bras 667b4 <== NOT EXECUTED errno = ENOTSUP; ret = -1; break; case F_GETOWN: /* for sockets. */ errno = ENOTSUP; 667e8: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 667ee: 2040 moveal %d0,%a0 <== NOT EXECUTED 667f0: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 667f6: 600c bras 66804 <== NOT EXECUTED ret = -1; break; default: errno = EINVAL; 667f8: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 667fe: 2040 moveal %d0,%a0 <== NOT EXECUTED 66800: 7016 moveq #22,%d0 <== NOT EXECUTED 66802: 2080 movel %d0,%a0@ <== NOT EXECUTED 66804: 74ff moveq #-1,%d2 <== NOT EXECUTED 66806: 602a bras 66832 <== NOT EXECUTED /* * If we got this far successfully, then we give the optional * filesystem specific handler a chance to process this. */ if (ret >= 0) { 66808: 4a82 tstl %d2 <== NOT EXECUTED 6680a: 6d26 blts 66832 <== NOT EXECUTED if (iop->handlers->fcntl_h) { 6680c: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED 66810: 2068 0030 moveal %a0@(48),%a0 <== NOT EXECUTED 66814: 4a88 tstl %a0 <== NOT EXECUTED 66816: 671a beqs 66832 <== NOT EXECUTED int err = (*iop->handlers->fcntl_h)( cmd, iop ); 66818: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6681a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6681c: 4e90 jsr %a0@ <== NOT EXECUTED if (err) { 6681e: 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 ); 66820: 2440 moveal %d0,%a2 <== NOT EXECUTED if (err) { 66822: 4a80 tstl %d0 <== NOT EXECUTED 66824: 670c beqs 66832 <== NOT EXECUTED errno = err; 66826: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 6682c: 74ff moveq #-1,%d2 <== NOT EXECUTED 6682e: 2040 moveal %d0,%a0 <== NOT EXECUTED 66830: 208a movel %a2,%a0@ <== NOT EXECUTED va_list ap; va_start( ap, cmd ); ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 66832: 2002 movel %d2,%d0 <== NOT EXECUTED 66834: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 6683a: 4e5e unlk %fp <== NOT EXECUTED 6683c: 4e75 rts 00043178 : #include int fdatasync( int fd ) { 43178: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4317c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4317e: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); 43182: b4b9 0005 a0b8 cmpl 5a0b8 ,%d2 <== NOT EXECUTED 43188: 6420 bccs 431aa <== NOT EXECUTED iop = rtems_libio_iop( fd ); 4318a: 2202 movel %d2,%d1 <== NOT EXECUTED 4318c: 2002 movel %d2,%d0 <== NOT EXECUTED 4318e: e589 lsll #2,%d1 <== NOT EXECUTED 43190: e988 lsll #4,%d0 <== NOT EXECUTED 43192: 9081 subl %d1,%d0 <== NOT EXECUTED 43194: 2279 0005 bb50 moveal 5bb50 ,%a1 <== NOT EXECUTED 4319a: d082 addl %d2,%d0 <== NOT EXECUTED 4319c: e588 lsll #2,%d0 <== NOT EXECUTED 4319e: d3c0 addal %d0,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 431a0: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 431a4: 0800 0008 btst #8,%d0 <== NOT EXECUTED 431a8: 660e bnes 431b8 <== NOT EXECUTED 431aa: 4eb9 0004 d920 jsr 4d920 <__errno> <== NOT EXECUTED 431b0: 7209 moveq #9,%d1 <== NOT EXECUTED 431b2: 2040 moveal %d0,%a0 <== NOT EXECUTED 431b4: 2081 movel %d1,%a0@ <== NOT EXECUTED 431b6: 603a bras 431f2 <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 431b8: 44c0 movew %d0,%ccr <== NOT EXECUTED 431ba: 670e beqs 431ca <== NOT EXECUTED 431bc: 4eb9 0004 d920 jsr 4d920 <__errno> <== NOT EXECUTED 431c2: 2040 moveal %d0,%a0 <== NOT EXECUTED 431c4: 7016 moveq #22,%d0 <== NOT EXECUTED 431c6: 2080 movel %d0,%a0@ <== NOT EXECUTED 431c8: 6028 bras 431f2 <== NOT EXECUTED /* * Now process the fdatasync(). */ if ( !iop->handlers->fdatasync_h ) 431ca: 2069 0030 moveal %a1@(48),%a0 <== NOT EXECUTED 431ce: 2028 002c movel %a0@(44),%d0 <== NOT EXECUTED 431d2: 6610 bnes 431e4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 431d4: 4eb9 0004 d920 jsr 4d920 <__errno> <== NOT EXECUTED 431da: 2040 moveal %d0,%a0 <== NOT EXECUTED 431dc: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 431e2: 600e bras 431f2 <== NOT EXECUTED return (*iop->handlers->fdatasync_h)( iop ); } 431e4: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED */ if ( !iop->handlers->fdatasync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fdatasync_h)( iop ); 431e8: 2d49 0008 movel %a1,%fp@(8) <== NOT EXECUTED } 431ec: 4e5e unlk %fp <== NOT EXECUTED */ if ( !iop->handlers->fdatasync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fdatasync_h)( iop ); 431ee: 2240 moveal %d0,%a1 <== NOT EXECUTED 431f0: 4ed1 jmp %a1@ <== NOT EXECUTED } 431f2: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 431f6: 4e5e unlk %fp <== NOT EXECUTED 431f8: 70ff moveq #-1,%d0 <== NOT EXECUTED 431fa: 4e75 rts 0005cca0 : 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 ) { 5cca0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5cca4: 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; 5cca8: 2079 0009 37d4 moveal 937d4 ,%a0 <== NOT EXECUTED 5ccae: 6010 bras 5ccc0 <== 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 ) { 5ccb0: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 5ccb4: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 5ccb8: 6604 bnes 5ccbe <== NOT EXECUTED 5ccba: 7001 moveq #1,%d0 <== NOT EXECUTED 5ccbc: 600c bras 5ccca <== 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 ) { 5ccbe: 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 ); 5ccc0: b1fc 0009 37d8 cmpal #604120,%a0 <== NOT EXECUTED 5ccc6: 66e8 bnes 5ccb0 <== NOT EXECUTED 5ccc8: 4200 clrb %d0 <== NOT EXECUTED return true; } } return false; } 5ccca: 4e5e unlk %fp <== NOT EXECUTED 5cccc: 4e75 rts 00044e9c : #include #include int fork( void ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 44e9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44ea0: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44ea6: 2040 moveal %d0,%a0 <== NOT EXECUTED 44ea8: 7058 moveq #88,%d0 <== NOT EXECUTED 44eaa: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44eac: 4e5e unlk %fp <== NOT EXECUTED 44eae: 70ff moveq #-1,%d0 <== NOT EXECUTED 44eb0: 4e75 rts <== NOT EXECUTED ... 000431fc : long fpathconf( int fd, int name ) { 431fc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43200: 2f02 movel %d2,%sp@- <== NOT EXECUTED 43202: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 43206: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED long return_value; rtems_libio_t *iop; rtems_filesystem_limits_and_options_t *the_limits; rtems_libio_check_fd(fd); 4320a: b4b9 0005 a0b8 cmpl 5a0b8 ,%d2 <== NOT EXECUTED 43210: 6420 bccs 43232 <== NOT EXECUTED iop = rtems_libio_iop(fd); 43212: 2202 movel %d2,%d1 <== NOT EXECUTED 43214: 2002 movel %d2,%d0 <== NOT EXECUTED 43216: e589 lsll #2,%d1 <== NOT EXECUTED 43218: e988 lsll #4,%d0 <== NOT EXECUTED 4321a: 9081 subl %d1,%d0 <== NOT EXECUTED 4321c: 2079 0005 bb50 moveal 5bb50 ,%a0 <== NOT EXECUTED 43222: d082 addl %d2,%d0 <== NOT EXECUTED 43224: e588 lsll #2,%d0 <== NOT EXECUTED 43226: d1c0 addal %d0,%a0 <== NOT EXECUTED rtems_libio_check_is_open(iop); 43228: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED 4322c: 0800 0008 btst #8,%d0 <== NOT EXECUTED 43230: 660e bnes 43240 <== NOT EXECUTED 43232: 4eb9 0004 d920 jsr 4d920 <__errno> <== NOT EXECUTED 43238: 2040 moveal %d0,%a0 <== NOT EXECUTED 4323a: 7009 moveq #9,%d0 <== NOT EXECUTED 4323c: 2080 movel %d0,%a0@ <== NOT EXECUTED 4323e: 6012 bras 43252 <== NOT EXECUTED rtems_libio_check_permissions(iop, LIBIO_FLAGS_READ); 43240: 0800 0001 btst #1,%d0 <== NOT EXECUTED 43244: 6612 bnes 43258 <== NOT EXECUTED 43246: 4eb9 0004 d920 jsr 4d920 <__errno> <== NOT EXECUTED 4324c: 7416 moveq #22,%d2 <== NOT EXECUTED 4324e: 2040 moveal %d0,%a0 <== NOT EXECUTED 43250: 2082 movel %d2,%a0@ <== NOT EXECUTED 43252: 70ff moveq #-1,%d0 <== NOT EXECUTED 43254: 6000 0084 braw 432da <== NOT EXECUTED /* * Now process the information request. */ the_limits = &iop->pathinfo.mt_entry->pathconf_limits_and_options; 43258: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED switch ( name ) { 4325c: 700b moveq #11,%d0 <== NOT EXECUTED 4325e: b089 cmpl %a1,%d0 <== NOT EXECUTED 43260: 656a bcss 432cc <== NOT EXECUTED 43262: 303b 9a08 movew %pc@(4326c ,%a1:l:2),%d0 <== NOT EXECUTED 43266: 48c0 extl %d0 <== NOT EXECUTED 43268: 4efb 0802 jmp %pc@(4326c ,%d0:l) <== NOT EXECUTED 4326c: 0018 030 <== NOT EXECUTED 4326e: 001e 036 <== NOT EXECUTED 43270: 0024 044 <== NOT EXECUTED 43272: 002a 052 <== NOT EXECUTED 43274: 0030 060 <== NOT EXECUTED 43276: 0036 066 <== NOT EXECUTED 43278: 003c 074 <== NOT EXECUTED 4327a: 0042 0102 <== NOT EXECUTED 4327c: 0048 0110 <== NOT EXECUTED 4327e: 004e 0116 <== NOT EXECUTED 43280: 0054 0124 <== NOT EXECUTED 43282: 005a 0132 <== NOT EXECUTED case _PC_LINK_MAX: return_value = the_limits->link_max; 43284: 2028 0030 movel %a0@(48),%d0 <== NOT EXECUTED 43288: 6050 bras 432da <== NOT EXECUTED break; case _PC_MAX_CANON: return_value = the_limits->max_canon; 4328a: 2028 0034 movel %a0@(52),%d0 <== NOT EXECUTED 4328e: 604a bras 432da <== NOT EXECUTED break; case _PC_MAX_INPUT: return_value = the_limits->max_input; 43290: 2028 0038 movel %a0@(56),%d0 <== NOT EXECUTED 43294: 6044 bras 432da <== NOT EXECUTED break; case _PC_NAME_MAX: return_value = the_limits->name_max; 43296: 2028 003c movel %a0@(60),%d0 <== NOT EXECUTED 4329a: 603e bras 432da <== NOT EXECUTED break; case _PC_PATH_MAX: return_value = the_limits->path_max; 4329c: 2028 0040 movel %a0@(64),%d0 <== NOT EXECUTED 432a0: 6038 bras 432da <== NOT EXECUTED break; case _PC_PIPE_BUF: return_value = the_limits->pipe_buf; 432a2: 2028 0044 movel %a0@(68),%d0 <== NOT EXECUTED 432a6: 6032 bras 432da <== NOT EXECUTED break; case _PC_CHOWN_RESTRICTED: return_value = the_limits->posix_chown_restrictions; 432a8: 2028 004c movel %a0@(76),%d0 <== NOT EXECUTED 432ac: 602c bras 432da <== NOT EXECUTED break; case _PC_NO_TRUNC: return_value = the_limits->posix_no_trunc; 432ae: 2028 0050 movel %a0@(80),%d0 <== NOT EXECUTED 432b2: 6026 bras 432da <== NOT EXECUTED break; case _PC_VDISABLE: return_value = the_limits->posix_vdisable; 432b4: 2028 005c movel %a0@(92),%d0 <== NOT EXECUTED 432b8: 6020 bras 432da <== NOT EXECUTED break; case _PC_ASYNC_IO: return_value = the_limits->posix_async_io; 432ba: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED 432be: 601a bras 432da <== NOT EXECUTED break; case _PC_PRIO_IO: return_value = the_limits->posix_prio_io; 432c0: 2028 0054 movel %a0@(84),%d0 <== NOT EXECUTED 432c4: 6014 bras 432da <== NOT EXECUTED break; case _PC_SYNC_IO: return_value = the_limits->posix_sync_io; 432c6: 2028 0058 movel %a0@(88),%d0 <== NOT EXECUTED 432ca: 600e bras 432da <== NOT EXECUTED break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 432cc: 4eb9 0004 d920 jsr 4d920 <__errno> <== NOT EXECUTED 432d2: 2040 moveal %d0,%a0 <== NOT EXECUTED 432d4: 7216 moveq #22,%d1 <== NOT EXECUTED 432d6: 70ff moveq #-1,%d0 <== NOT EXECUTED 432d8: 2081 movel %d1,%a0@ <== NOT EXECUTED break; } return return_value; } 432da: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 432de: 4e5e unlk %fp <== NOT EXECUTED 432e0: 4e75 rts <== NOT EXECUTED ... 00048e8c : void free( void *ptr ) { MSBUMP(free_calls, 1); 48e8c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48e90: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e92: 52b9 0005 7d84 addql #1,57d84 <== NOT EXECUTED 48e98: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED if ( !ptr ) 48e9c: 676c beqs 48f0a <== NOT EXECUTED /* * Do not attempt to free memory if in a critical section or ISR. */ if ( _System_state_Is_up(_System_state_Get()) && 48e9e: 7003 moveq #3,%d0 <== NOT EXECUTED 48ea0: b0b9 0005 800e cmpl 5800e <_System_state_Current>,%d0 <== NOT EXECUTED 48ea6: 661a bnes 48ec2 <== NOT EXECUTED 48ea8: 4eb9 0004 9310 jsr 49310 <== NOT EXECUTED 48eae: 4a00 tstb %d0 <== NOT EXECUTED 48eb0: 6610 bnes 48ec2 <== NOT EXECUTED !malloc_is_system_state_OK() ) { malloc_deferred_free(ptr); 48eb2: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED RTEMS_Malloc_Heap.begin, RTEMS_Malloc_Heap.end ); } } 48eb6: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 48eba: 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); 48ebc: 4ef9 0004 9350 jmp 49350 <== NOT EXECUTED #endif /* * If configured, update the statistics */ if ( rtems_malloc_statistics_helpers ) 48ec2: 2079 0005 6cc4 moveal 56cc4 ,%a0 <== NOT EXECUTED 48ec8: 4a88 tstl %a0 <== NOT EXECUTED 48eca: 670a beqs 48ed6 <== NOT EXECUTED (*rtems_malloc_statistics_helpers->at_free)(ptr); 48ecc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48ece: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED 48ed2: 4e90 jsr %a0@ <== NOT EXECUTED 48ed4: 588f addql #4,%sp <== NOT EXECUTED if ( !_Protected_heap_Free( &RTEMS_Malloc_Heap, ptr ) ) { 48ed6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48ed8: 4879 0005 7d20 pea 57d20 <== NOT EXECUTED 48ede: 4eb9 0004 a62c jsr 4a62c <_Protected_heap_Free> <== NOT EXECUTED 48ee4: 508f addql #8,%sp <== NOT EXECUTED 48ee6: 4a00 tstb %d0 <== NOT EXECUTED 48ee8: 6620 bnes 48f0a <== NOT EXECUTED printk( "Program heap: free of bad pointer %p -- range %p - %p \n", 48eea: 2f39 0005 7d3c movel 57d3c ,%sp@- <== NOT EXECUTED 48ef0: 2f39 0005 7d38 movel 57d38 ,%sp@- <== NOT EXECUTED 48ef6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48ef8: 4879 0005 53cb pea 553cb <== NOT EXECUTED 48efe: 4eb9 0004 2c3a jsr 42c3a <== NOT EXECUTED 48f04: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED RTEMS_Malloc_Heap.begin, RTEMS_Malloc_Heap.end ); } } 48f0a: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 48f0e: 4e5e unlk %fp <== NOT EXECUTED 48f10: 4e75 rts <== NOT EXECUTED ... 0005c32c : * NOTE: this must be called with * thread dispatching disabled! */ static void free_user_env(void *venv) { 5c32c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5c330: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5c332: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED rtems_user_env_t *env = (rtems_user_env_t*) venv ; if (env != &rtems_global_user_env 5c336: b5fc 0009 3e9c cmpal #605852,%a2 <== NOT EXECUTED 5c33c: 6740 beqs 5c37e <== NOT EXECUTED #ifdef HAVE_USERENV_REFCNT && --env->refcnt <= 0 #endif ) { rtems_filesystem_freenode( &env->current_directory); 5c33e: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED 5c342: 4a88 tstl %a0 <== NOT EXECUTED 5c344: 6710 beqs 5c356 <== NOT EXECUTED 5c346: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c34a: 4a88 tstl %a0 <== NOT EXECUTED 5c34c: 6708 beqs 5c356 <== NOT EXECUTED 5c34e: 486a 0004 pea %a2@(4) <== NOT EXECUTED 5c352: 4e90 jsr %a0@ <== NOT EXECUTED 5c354: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &env->root_directory); 5c356: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 5c35a: 4a88 tstl %a0 <== NOT EXECUTED 5c35c: 6710 beqs 5c36e <== NOT EXECUTED 5c35e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c362: 4a88 tstl %a0 <== NOT EXECUTED 5c364: 6708 beqs 5c36e <== NOT EXECUTED 5c366: 486a 0014 pea %a2@(20) <== NOT EXECUTED 5c36a: 4e90 jsr %a0@ <== NOT EXECUTED 5c36c: 588f addql #4,%sp <== NOT EXECUTED free(env); 5c36e: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } 5c372: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 5c376: 4e5e unlk %fp <== NOT EXECUTED && --env->refcnt <= 0 #endif ) { rtems_filesystem_freenode( &env->current_directory); rtems_filesystem_freenode( &env->root_directory); free(env); 5c378: 4ef9 0004 5358 jmp 45358 <== NOT EXECUTED } } 5c37e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 5c382: 4e5e unlk %fp <== NOT EXECUTED 5c384: 4e75 rts 00053c94 : int fstat( int fd, struct stat *sbuf ) { 53c94: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 53c98: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 53c9c: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 53ca0: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !sbuf ) 53ca4: 660e bnes 53cb4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 53ca6: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 53cac: 720e moveq #14,%d1 <== NOT EXECUTED 53cae: 2040 moveal %d0,%a0 <== NOT EXECUTED 53cb0: 2081 movel %d1,%a0@ <== NOT EXECUTED 53cb2: 607e bras 53d32 <== NOT EXECUTED /* * Now process the stat() request. */ iop = rtems_libio_iop( fd ); 53cb4: b4b9 0005 6248 cmpl 56248 ,%d2 <== NOT EXECUTED 53cba: 6400 0082 bccw 53d3e <== NOT EXECUTED 53cbe: 2002 movel %d2,%d0 <== NOT EXECUTED 53cc0: 2202 movel %d2,%d1 <== NOT EXECUTED 53cc2: e588 lsll #2,%d0 <== NOT EXECUTED 53cc4: e989 lsll #4,%d1 <== NOT EXECUTED 53cc6: 9280 subl %d0,%d1 <== NOT EXECUTED 53cc8: 2479 0005 7d14 moveal 57d14 ,%a2 <== NOT EXECUTED 53cce: d282 addl %d2,%d1 <== NOT EXECUTED 53cd0: e589 lsll #2,%d1 <== NOT EXECUTED 53cd2: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_fd( fd ); rtems_libio_check_is_open(iop); 53cd4: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 53cd8: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 53cde: 675e beqs 53d3e <== NOT EXECUTED if ( !iop->handlers ) 53ce0: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 53ce4: 4a88 tstl %a0 <== NOT EXECUTED 53ce6: 6756 beqs 53d3e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fstat_h ) 53ce8: 4aa8 0018 tstl %a0@(24) <== NOT EXECUTED 53cec: 6610 bnes 53cfe <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 53cee: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 53cf4: 2040 moveal %d0,%a0 <== NOT EXECUTED 53cf6: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 53cfc: 6034 bras 53d32 <== NOT EXECUTED /* * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); 53cfe: 4878 004a pea 4a <== NOT EXECUTED 53d02: 42a7 clrl %sp@- <== NOT EXECUTED 53d04: 2f03 movel %d3,%sp@- <== NOT EXECUTED 53d06: 4eb9 0004 bfbc jsr 4bfbc <== NOT EXECUTED return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); 53d0c: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 53d10: d5fc 0000 0010 addal #16,%a2 <== NOT EXECUTED 53d16: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 53d1a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 53d20: 2268 0018 moveal %a0@(24),%a1 <== NOT EXECUTED 53d24: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } 53d28: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 53d2e: 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 ); 53d30: 4ed1 jmp %a1@ <== NOT EXECUTED } 53d32: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 53d38: 4e5e unlk %fp <== NOT EXECUTED 53d3a: 70ff moveq #-1,%d0 <== NOT EXECUTED 53d3c: 4e75 rts <== NOT EXECUTED /* * Now process the stat() request. */ iop = rtems_libio_iop( fd ); rtems_libio_check_fd( fd ); 53d3e: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 53d44: 2040 moveal %d0,%a0 <== NOT EXECUTED 53d46: 7009 moveq #9,%d0 <== NOT EXECUTED 53d48: 2080 movel %d0,%a0@ <== NOT EXECUTED 53d4a: 60e6 bras 53d32 <== NOT EXECUTED 0005afa0 : #include int fsync( int fd ) { 5afa0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5afa4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5afa6: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); 5afaa: b4b9 0007 db68 cmpl 7db68 ,%d2 <== NOT EXECUTED 5afb0: 643a bccs 5afec <== NOT EXECUTED iop = rtems_libio_iop( fd ); 5afb2: 2202 movel %d2,%d1 <== NOT EXECUTED 5afb4: 2002 movel %d2,%d0 <== NOT EXECUTED 5afb6: e589 lsll #2,%d1 <== NOT EXECUTED 5afb8: e988 lsll #4,%d0 <== NOT EXECUTED 5afba: 9081 subl %d1,%d0 <== NOT EXECUTED 5afbc: 2079 0009 3738 moveal 93738 ,%a0 <== NOT EXECUTED 5afc2: d082 addl %d2,%d0 <== NOT EXECUTED 5afc4: e588 lsll #2,%d0 <== NOT EXECUTED 5afc6: d1c0 addal %d0,%a0 <== NOT EXECUTED rtems_libio_check_is_open(iop); 5afc8: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED 5afcc: 0800 0008 btst #8,%d0 <== NOT EXECUTED 5afd0: 671a beqs 5afec <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 5afd2: 44c0 movew %d0,%ccr <== NOT EXECUTED 5afd4: 670e beqs 5afe4 <== NOT EXECUTED 5afd6: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5afdc: 7216 moveq #22,%d1 <== NOT EXECUTED 5afde: 2040 moveal %d0,%a0 <== NOT EXECUTED 5afe0: 2081 movel %d1,%a0@ <== NOT EXECUTED 5afe2: 603a bras 5b01e <== NOT EXECUTED /* * Now process the fsync(). */ if ( !iop->handlers ) 5afe4: 2268 0030 moveal %a0@(48),%a1 <== NOT EXECUTED 5afe8: 4a89 tstl %a1 <== NOT EXECUTED 5afea: 660e bnes 5affa <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 5afec: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5aff2: 2040 moveal %d0,%a0 <== NOT EXECUTED 5aff4: 7009 moveq #9,%d0 <== NOT EXECUTED 5aff6: 2080 movel %d0,%a0@ <== NOT EXECUTED 5aff8: 6024 bras 5b01e <== NOT EXECUTED if ( !iop->handlers->fsync_h ) 5affa: 2029 0028 movel %a1@(40),%d0 <== NOT EXECUTED 5affe: 6610 bnes 5b010 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5b000: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5b006: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b008: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5b00e: 600e bras 5b01e <== NOT EXECUTED return (*iop->handlers->fsync_h)( iop ); } 5b010: 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 ); 5b014: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 5b018: 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 ); 5b01a: 2240 moveal %d0,%a1 <== NOT EXECUTED 5b01c: 4ed1 jmp %a1@ <== NOT EXECUTED } 5b01e: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 5b022: 4e5e unlk %fp <== NOT EXECUTED 5b024: 70ff moveq #-1,%d0 <== NOT EXECUTED 5b026: 4e75 rts 00048f14 : int ftruncate( int fd, off_t length ) { 48f14: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48f18: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48f1a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48f1c: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_location_info_t loc; rtems_libio_check_fd( fd ); 48f20: b4b9 0005 6248 cmpl 56248 ,%d2 <== NOT EXECUTED 48f26: 6422 bccs 48f4a <== NOT EXECUTED iop = rtems_libio_iop( fd ); 48f28: 2002 movel %d2,%d0 <== NOT EXECUTED 48f2a: 2202 movel %d2,%d1 <== NOT EXECUTED 48f2c: e588 lsll #2,%d0 <== NOT EXECUTED 48f2e: e989 lsll #4,%d1 <== NOT EXECUTED 48f30: 9280 subl %d0,%d1 <== NOT EXECUTED 48f32: 2479 0005 7d14 moveal 57d14 ,%a2 <== NOT EXECUTED 48f38: d282 addl %d2,%d1 <== NOT EXECUTED 48f3a: e589 lsll #2,%d1 <== NOT EXECUTED 48f3c: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_is_open(iop); 48f3e: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 48f42: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 48f48: 660e bnes 48f58 <== NOT EXECUTED 48f4a: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48f50: 7409 moveq #9,%d2 <== NOT EXECUTED 48f52: 2040 moveal %d0,%a0 <== NOT EXECUTED 48f54: 2082 movel %d2,%a0@ <== NOT EXECUTED 48f56: 6074 bras 48fcc <== NOT EXECUTED /* * Make sure we are not working on a directory */ loc = iop->pathinfo; 48f58: 4878 0010 pea 10 <== NOT EXECUTED 48f5c: 240e movel %fp,%d2 <== NOT EXECUTED 48f5e: 486a 0010 pea %a2@(16) <== NOT EXECUTED 48f62: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 48f68: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48f6a: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED if ( !loc.ops->node_type_h ) 48f70: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 48f74: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 48f78: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48f7e: 4a88 tstl %a0 <== NOT EXECUTED 48f80: 673c beqs 48fbe <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) 48f82: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48f84: 4e90 jsr %a0@ <== NOT EXECUTED 48f86: 588f addql #4,%sp <== NOT EXECUTED 48f88: 7201 moveq #1,%d1 <== NOT EXECUTED 48f8a: b280 cmpl %d0,%d1 <== NOT EXECUTED 48f8c: 660e bnes 48f9c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EISDIR ); 48f8e: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48f94: 7215 moveq #21,%d1 <== NOT EXECUTED 48f96: 2040 moveal %d0,%a0 <== NOT EXECUTED 48f98: 2081 movel %d1,%a0@ <== NOT EXECUTED 48f9a: 6030 bras 48fcc <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 48f9c: 7004 moveq #4,%d0 <== NOT EXECUTED 48f9e: c0aa 000c andl %a2@(12),%d0 <== NOT EXECUTED 48fa2: 660e bnes 48fb2 <== NOT EXECUTED 48fa4: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48faa: 2040 moveal %d0,%a0 <== NOT EXECUTED 48fac: 7016 moveq #22,%d0 <== NOT EXECUTED 48fae: 2080 movel %d0,%a0@ <== NOT EXECUTED 48fb0: 601a bras 48fcc <== NOT EXECUTED if ( !iop->handlers->ftruncate_h ) 48fb2: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 48fb6: 2068 0020 moveal %a0@(32),%a0 <== NOT EXECUTED 48fba: 4a88 tstl %a0 <== NOT EXECUTED 48fbc: 6612 bnes 48fd0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 48fbe: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 48fc4: 2040 moveal %d0,%a0 <== NOT EXECUTED 48fc6: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 48fcc: 70ff moveq #-1,%d0 <== NOT EXECUTED 48fce: 600a bras 48fda <== NOT EXECUTED return (*iop->handlers->ftruncate_h)( iop, length ); 48fd0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48fd4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48fd6: 4e90 jsr %a0@ <== NOT EXECUTED 48fd8: 508f addql #8,%sp <== NOT EXECUTED } 48fda: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 48fde: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 48fe2: 4e5e unlk %fp <== NOT EXECUTED 48fe4: 4e75 rts <== NOT EXECUTED ... 0005b0fc : char * getcwd ( char *pt, size_t size) { 5b0fc: 4e56 ff68 linkw %fp,#-152 <== NOT EXECUTED 5b100: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 5b104: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 5b108: 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) 5b10c: 4a8c tstl %a4 <== NOT EXECUTED 5b10e: 6720 beqs 5b130 <== NOT EXECUTED { ptsize = 0; if (!size) 5b110: 4a80 tstl %d0 <== NOT EXECUTED 5b112: 6610 bnes 5b124 <== NOT EXECUTED { errno = EINVAL; 5b114: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5b11a: 7216 moveq #22,%d1 <== NOT EXECUTED 5b11c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b11e: 2081 movel %d1,%a0@ <== NOT EXECUTED 5b120: 6000 0342 braw 5b464 <== NOT EXECUTED return (char *) NULL; } ept = pt + size; 5b124: 41f4 0800 lea %a4@(00000000,%d0:l),%a0 <== NOT EXECUTED 5b128: 2d48 ffac movel %a0,%fp@(-84) <== NOT EXECUTED 5b12c: 4287 clrl %d7 <== NOT EXECUTED 5b12e: 6022 bras 5b152 <== NOT EXECUTED } else { if (!(pt = (char *) malloc (ptsize = 1024 - 4))) 5b130: 4878 03fc pea 3fc <== NOT EXECUTED 5b134: 4eb9 0004 58e4 jsr 458e4 <== NOT EXECUTED 5b13a: 588f addql #4,%sp <== NOT EXECUTED 5b13c: 2840 moveal %d0,%a4 <== NOT EXECUTED 5b13e: 4a80 tstl %d0 <== NOT EXECUTED 5b140: 6700 0324 beqw 5b466 <== NOT EXECUTED { return (char *) NULL; } ept = pt + ptsize; 5b144: 43ec 03fc lea %a4@(1020),%a1 <== NOT EXECUTED 5b148: 2e3c 0000 03fc movel #1020,%d7 <== NOT EXECUTED 5b14e: 2d49 ffac movel %a1,%fp@(-84) <== NOT EXECUTED } bpt = ept - 1; 5b152: 2a6e ffac moveal %fp@(-84),%a5 <== NOT EXECUTED *bpt = '\0'; 5b156: 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))) 5b158: 4878 03fc pea 3fc <== NOT EXECUTED 5b15c: 4eb9 0004 58e4 jsr 458e4 <== NOT EXECUTED 5b162: 588f addql #4,%sp <== NOT EXECUTED 5b164: 2640 moveal %d0,%a3 <== NOT EXECUTED 5b166: 4a80 tstl %d0 <== NOT EXECUTED 5b168: 6700 02e2 beqw 5b44c <== NOT EXECUTED goto err; } eup = up + MAXPATHLEN; bup = up; up[0] = '.'; up[1] = '\0'; 5b16c: 4200 clrb %d0 <== NOT EXECUTED /* Save root values, so know when to stop. */ if (stat ("/", &s)) 5b16e: 240e movel %fp,%d2 <== NOT EXECUTED { goto err; } eup = up + MAXPATHLEN; bup = up; up[0] = '.'; 5b170: 16bc 002e moveb #46,%a3@ <== NOT EXECUTED up[1] = '\0'; 5b174: 1740 0001 moveb %d0,%a3@(1) <== NOT EXECUTED /* Save root values, so know when to stop. */ if (stat ("/", &s)) 5b178: 0682 ffff ffb6 addil #-74,%d2 <== NOT EXECUTED 5b17e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b180: 45f9 0004 66c4 lea 466c4 ,%a2 <== NOT EXECUTED 5b186: 4879 0007 b5b8 pea 7b5b8 <== NOT EXECUTED 5b18c: 4e92 jsr %a2@ <== NOT EXECUTED 5b18e: 508f addql #8,%sp <== NOT EXECUTED 5b190: 4a80 tstl %d0 <== NOT EXECUTED 5b192: 6600 02b8 bnew 5b44c <== NOT EXECUTED goto err; root_dev = s.st_dev; root_ino = s.st_ino; 5b196: 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; 5b19a: 206e ffb6 moveal %fp@(-74),%a0 <== NOT EXECUTED 5b19e: 226e ffba moveal %fp@(-70),%a1 <== NOT EXECUTED 5b1a2: 2d48 ff9c movel %a0,%fp@(-100) <== NOT EXECUTED 5b1a6: 2d49 ffa0 movel %a1,%fp@(-96) <== NOT EXECUTED root_ino = s.st_ino; 5b1aa: 2d41 ffa4 movel %d1,%fp@(-92) <== NOT EXECUTED errno = 0; /* XXX readdir has no error return. */ 5b1ae: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5b1b4: 2040 moveal %d0,%a0 <== NOT EXECUTED if (!(up = (char *) malloc (upsize = 1024 - 4))) { goto err; } eup = up + MAXPATHLEN; 5b1b6: 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. */ 5b1ba: 7001 moveq #1,%d0 <== NOT EXECUTED 5b1bc: 223c 0000 03fc movel #1020,%d1 <== NOT EXECUTED 5b1c2: 280b movel %a3,%d4 <== NOT EXECUTED if (!(up = (char *) malloc (upsize = 1024 - 4))) { goto err; } eup = up + MAXPATHLEN; 5b1c4: 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. */ 5b1c8: 2d40 ff98 movel %d0,%fp@(-104) <== NOT EXECUTED 5b1cc: 2d41 ffa8 movel %d1,%fp@(-88) <== NOT EXECUTED 5b1d0: 4290 clrl %a0@ <== NOT EXECUTED for (first = 1;; first = 0) { /* Stat the current level. */ if (_stat (up, &s)) 5b1d2: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 5b1d6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b1d8: 4eb9 0004 66c4 jsr 466c4 <== NOT EXECUTED 5b1de: 508f addql #8,%sp <== NOT EXECUTED 5b1e0: 4a80 tstl %d0 <== NOT EXECUTED 5b1e2: 6600 0268 bnew 5b44c <== NOT EXECUTED goto err; /* Save current node values. */ ino = s.st_ino; 5b1e6: 206e ffbe moveal %fp@(-66),%a0 <== NOT EXECUTED dev = s.st_dev; 5b1ea: 2a2e ffb6 movel %fp@(-74),%d5 <== NOT EXECUTED 5b1ee: 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; 5b1f2: 2d48 ff94 movel %a0,%fp@(-108) <== NOT EXECUTED dev = s.st_dev; /* Check for reaching root. */ if (root_dev == dev && root_ino == ino) 5b1f6: 202e ff9c movel %fp@(-100),%d0 <== NOT EXECUTED 5b1fa: 222e ffa0 movel %fp@(-96),%d1 <== NOT EXECUTED 5b1fe: 9286 subl %d6,%d1 <== NOT EXECUTED 5b200: 9185 subxl %d5,%d0 <== NOT EXECUTED 5b202: 6630 bnes 5b234 <== NOT EXECUTED 5b204: b1ee ffa4 cmpal %fp@(-92),%a0 <== NOT EXECUTED 5b208: 662a bnes 5b234 <== NOT EXECUTED { *--bpt = '/'; 5b20a: 204d moveal %a5,%a0 <== NOT EXECUTED 5b20c: 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); 5b210: 226e ffac moveal %fp@(-84),%a1 <== NOT EXECUTED 5b214: 93c8 subal %a0,%a1 <== NOT EXECUTED 5b216: 2f09 movel %a1,%sp@- <== NOT EXECUTED 5b218: 2f08 movel %a0,%sp@- <== NOT EXECUTED 5b21a: 2f0c movel %a4,%sp@- <== NOT EXECUTED 5b21c: 4eb9 0006 af5c jsr 6af5c <== NOT EXECUTED free (up); 5b222: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b224: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 5b22a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5b230: 6000 0234 braw 5b466 <== 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) 5b234: 2004 movel %d4,%d0 <== NOT EXECUTED 5b236: 0680 0000 0404 addil #1028,%d0 <== NOT EXECUTED 5b23c: b0ae ffb0 cmpl %fp@(-80),%d0 <== NOT EXECUTED 5b240: 652a bcss 5b26c <== NOT EXECUTED { if (!(up = (char *) realloc (up, upsize *= 2))) 5b242: 202e ffa8 movel %fp@(-88),%d0 <== NOT EXECUTED 5b246: d080 addl %d0,%d0 <== NOT EXECUTED 5b248: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b24a: 2d40 ffa8 movel %d0,%fp@(-88) <== NOT EXECUTED 5b24e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b250: 4eb9 0005 c6ac jsr 5c6ac <== NOT EXECUTED 5b256: 508f addql #8,%sp <== NOT EXECUTED 5b258: 2640 moveal %d0,%a3 <== NOT EXECUTED 5b25a: 4a80 tstl %d0 <== NOT EXECUTED 5b25c: 6700 01ee beqw 5b44c <== NOT EXECUTED { goto err; } bup = up; eup = up + upsize; 5b260: 222e ffa8 movel %fp@(-88),%d1 <== NOT EXECUTED 5b264: 2800 movel %d0,%d4 <== NOT EXECUTED 5b266: d280 addl %d0,%d1 <== NOT EXECUTED 5b268: 2d41 ffb0 movel %d1,%fp@(-80) <== NOT EXECUTED } *bup++ = '.'; 5b26c: 2044 moveal %d4,%a0 <== NOT EXECUTED 5b26e: 10fc 002e moveb #46,%a0@+ <== NOT EXECUTED *bup++ = '.'; 5b272: 2448 moveal %a0,%a2 <== NOT EXECUTED 5b274: 14fc 002e moveb #46,%a2@+ <== NOT EXECUTED *bup = '\0'; 5b278: 4212 clrb %a2@ <== NOT EXECUTED /* Open and stat parent directory. */ if (!(dir = _opendir (up)) || _fstat (__dirfd (dir), &s)) 5b27a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b27c: 4eb9 0005 c2a0 jsr 5c2a0 <== NOT EXECUTED 5b282: 588f addql #4,%sp <== NOT EXECUTED 5b284: 2d40 ff90 movel %d0,%fp@(-112) <== NOT EXECUTED 5b288: 6700 01c2 beqw 5b44c <== NOT EXECUTED 5b28c: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 5b290: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b292: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 5b294: 4eb9 0005 aecc jsr 5aecc <== NOT EXECUTED 5b29a: 508f addql #8,%sp <== NOT EXECUTED 5b29c: 4a80 tstl %d0 <== NOT EXECUTED 5b29e: 6600 01d2 bnew 5b472 <== NOT EXECUTED goto err; /* Add trailing slash for next directory. */ *bup++ = '/'; 5b2a2: 224a moveal %a2,%a1 <== NOT EXECUTED 5b2a4: 280a movel %a2,%d4 <== NOT EXECUTED 5b2a6: 12fc 002f moveb #47,%a1@+ <== NOT EXECUTED 5b2aa: 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) 5b2ac: 202e ffb6 movel %fp@(-74),%d0 <== NOT EXECUTED 5b2b0: 222e ffba movel %fp@(-70),%d1 <== NOT EXECUTED 5b2b4: 9286 subl %d6,%d1 <== NOT EXECUTED 5b2b6: 9185 subxl %d5,%d0 <== NOT EXECUTED 5b2b8: 6704 beqs 5b2be <== NOT EXECUTED 5b2ba: 4283 clrl %d3 <== NOT EXECUTED 5b2bc: 6020 bras 5b2de <== NOT EXECUTED { for (;;) { if (!(dp = _readdir (dir))) 5b2be: 2f2e ff90 movel %fp@(-112),%sp@- <== NOT EXECUTED 5b2c2: 4eb9 0005 c548 jsr 5c548 <== NOT EXECUTED 5b2c8: 588f addql #4,%sp <== NOT EXECUTED 5b2ca: 2440 moveal %d0,%a2 <== NOT EXECUTED 5b2cc: 4a80 tstl %d0 <== NOT EXECUTED 5b2ce: 6700 015c beqw 5b42c <== NOT EXECUTED goto notfound; if (dp->d_ino == ino) 5b2d2: 202e ff94 movel %fp@(-108),%d0 <== NOT EXECUTED 5b2d6: b092 cmpl %a2@,%d0 <== NOT EXECUTED 5b2d8: 66e4 bnes 5b2be <== NOT EXECUTED 5b2da: 6000 009e braw 5b37a <== NOT EXECUTED } } else for (;;) { if (!(dp = _readdir (dir))) 5b2de: 2f2e ff90 movel %fp@(-112),%sp@- <== NOT EXECUTED 5b2e2: 4eb9 0005 c548 jsr 5c548 <== NOT EXECUTED 5b2e8: 588f addql #4,%sp <== NOT EXECUTED 5b2ea: 2440 moveal %d0,%a2 <== NOT EXECUTED 5b2ec: 4a80 tstl %d0 <== NOT EXECUTED 5b2ee: 6700 013e beqw 5b42e <== NOT EXECUTED goto notfound; if (ISDOT (dp)) 5b2f2: 102a 000c moveb %a2@(12),%d0 <== NOT EXECUTED 5b2f6: 49c0 extbl %d0 <== NOT EXECUTED 5b2f8: 722e moveq #46,%d1 <== NOT EXECUTED 5b2fa: b280 cmpl %d0,%d1 <== NOT EXECUTED 5b2fc: 6612 bnes 5b310 <== NOT EXECUTED 5b2fe: 102a 000d moveb %a2@(13),%d0 <== NOT EXECUTED 5b302: 67da beqs 5b2de <== NOT EXECUTED 5b304: 49c0 extbl %d0 <== NOT EXECUTED 5b306: b280 cmpl %d0,%d1 <== NOT EXECUTED 5b308: 6606 bnes 5b310 <== NOT EXECUTED 5b30a: 4a2a 000e tstb %a2@(14) <== NOT EXECUTED 5b30e: 67ce beqs 5b2de <== NOT EXECUTED continue; bcopy (dp->d_name, bup, strlen (dp->d_name) + 1); 5b310: 240a movel %a2,%d2 <== NOT EXECUTED 5b312: 0682 0000 000c addil #12,%d2 <== NOT EXECUTED 5b318: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b31a: 4eb9 0006 db20 jsr 6db20 <== NOT EXECUTED 5b320: 5280 addql #1,%d0 <== NOT EXECUTED 5b322: 2e80 movel %d0,%sp@ <== NOT EXECUTED 5b324: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b326: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b328: 4eb9 0006 af5c jsr 6af5c <== NOT EXECUTED /* Save the first error for later. */ if (stat (up, &s)) 5b32e: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 5b332: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b334: 4eb9 0004 66c4 jsr 466c4 <== NOT EXECUTED 5b33a: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b340: 4a80 tstl %d0 <== NOT EXECUTED 5b342: 671a beqs 5b35e <== NOT EXECUTED { if (!save_errno) 5b344: 4a83 tstl %d3 <== NOT EXECUTED 5b346: 660a bnes 5b352 <== NOT EXECUTED save_errno = errno; 5b348: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5b34e: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b350: 2610 movel %a0@,%d3 <== NOT EXECUTED errno = 0; 5b352: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5b358: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b35a: 4290 clrl %a0@ <== NOT EXECUTED 5b35c: 6080 bras 5b2de <== NOT EXECUTED continue; } if (s.st_dev == dev && s.st_ino == ino) 5b35e: 202e ffb6 movel %fp@(-74),%d0 <== NOT EXECUTED 5b362: 222e ffba movel %fp@(-70),%d1 <== NOT EXECUTED 5b366: 9286 subl %d6,%d1 <== NOT EXECUTED 5b368: 9185 subxl %d5,%d0 <== NOT EXECUTED 5b36a: 6600 ff72 bnew 5b2de <== NOT EXECUTED 5b36e: 206e ff94 moveal %fp@(-108),%a0 <== NOT EXECUTED 5b372: b1ee ffbe cmpal %fp@(-66),%a0 <== NOT EXECUTED 5b376: 6600 ff66 bnew 5b2de <== NOT EXECUTED /* * Check for length of the current name, preceding slash, * leading slash. */ if (bpt - pt <= strlen (dp->d_name) + (first ? 1 : 2)) 5b37a: 240a movel %a2,%d2 <== NOT EXECUTED 5b37c: 0682 0000 000c addil #12,%d2 <== NOT EXECUTED 5b382: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b384: 4eb9 0006 db20 jsr 6db20 <== NOT EXECUTED 5b38a: 222e ff98 movel %fp@(-104),%d1 <== NOT EXECUTED 5b38e: 2240 moveal %d0,%a1 <== NOT EXECUTED 5b390: 4481 negl %d1 <== NOT EXECUTED 5b392: 244d moveal %a5,%a2 <== NOT EXECUTED 5b394: 588f addql #4,%sp <== NOT EXECUTED 5b396: 41f1 1802 lea %a1@(00000002,%d1:l),%a0 <== NOT EXECUTED 5b39a: 95cc subal %a4,%a2 <== NOT EXECUTED 5b39c: b1ca cmpal %a2,%a0 <== NOT EXECUTED 5b39e: 6550 bcss 5b3f0 <== NOT EXECUTED { size_t len, off; if (!ptsize) 5b3a0: 4a87 tstl %d7 <== NOT EXECUTED 5b3a2: 6610 bnes 5b3b4 <== NOT EXECUTED { errno = ERANGE; 5b3a4: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5b3aa: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b3ac: 7022 moveq #34,%d0 <== NOT EXECUTED 5b3ae: 2080 movel %d0,%a0@ <== NOT EXECUTED 5b3b0: 6000 00c0 braw 5b472 <== NOT EXECUTED goto err; } off = bpt - pt; len = ept - bpt; if (!(pt = (char *) realloc (pt, ptsize *= 2))) 5b3b4: de87 addl %d7,%d7 <== NOT EXECUTED 5b3b6: 2f07 movel %d7,%sp@- <== NOT EXECUTED 5b3b8: 2f0c movel %a4,%sp@- <== NOT EXECUTED 5b3ba: 4eb9 0005 c6ac jsr 5c6ac <== NOT EXECUTED 5b3c0: 508f addql #8,%sp <== NOT EXECUTED 5b3c2: 2840 moveal %d0,%a4 <== NOT EXECUTED 5b3c4: 4a80 tstl %d0 <== NOT EXECUTED 5b3c6: 6700 00aa beqw 5b472 <== NOT EXECUTED { errno = ERANGE; goto err; } off = bpt - pt; len = ept - bpt; 5b3ca: 202e ffac movel %fp@(-84),%d0 <== NOT EXECUTED 5b3ce: 908d subl %a5,%d0 <== NOT EXECUTED { goto err; } bpt = pt + off; ept = pt + ptsize; (void) bcopy (bpt, ept - len, len); 5b3d0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b3d2: 4874 a800 pea %a4@(00000000,%a2:l) <== NOT EXECUTED if (!(pt = (char *) realloc (pt, ptsize *= 2))) { goto err; } bpt = pt + off; ept = pt + ptsize; 5b3d6: 41f4 7800 lea %a4@(00000000,%d7:l),%a0 <== NOT EXECUTED (void) bcopy (bpt, ept - len, len); 5b3da: 2a48 moveal %a0,%a5 <== NOT EXECUTED 5b3dc: 9bc0 subal %d0,%a5 <== NOT EXECUTED 5b3de: 2f0d movel %a5,%sp@- <== NOT EXECUTED if (!(pt = (char *) realloc (pt, ptsize *= 2))) { goto err; } bpt = pt + off; ept = pt + ptsize; 5b3e0: 2d48 ffac movel %a0,%fp@(-84) <== NOT EXECUTED (void) bcopy (bpt, ept - len, len); 5b3e4: 4eb9 0006 af5c jsr 6af5c <== NOT EXECUTED 5b3ea: dffc 0000 000c addal #12,%sp <== NOT EXECUTED bpt = ept - len; } if (!first) 5b3f0: 4aae ff98 tstl %fp@(-104) <== NOT EXECUTED 5b3f4: 6604 bnes 5b3fa <== NOT EXECUTED *--bpt = '/'; 5b3f6: 1b3c 002f moveb #47,%a5@- <== NOT EXECUTED bpt -= strlen (dp->d_name); 5b3fa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b3fc: 4eb9 0006 db20 jsr 6db20 <== NOT EXECUTED bcopy (dp->d_name, bpt, strlen (dp->d_name)); 5b402: 2e80 movel %d0,%sp@ <== NOT EXECUTED (void) bcopy (bpt, ept - len, len); bpt = ept - len; } if (!first) *--bpt = '/'; bpt -= strlen (dp->d_name); 5b404: 9bc0 subal %d0,%a5 <== NOT EXECUTED bcopy (dp->d_name, bpt, strlen (dp->d_name)); 5b406: 2f02 movel %d2,%sp@- <== NOT EXECUTED (void) _closedir (dir); dir = 0; /* Truncate any file name. */ *bup = '\0'; 5b408: 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)); 5b40c: 2f0d movel %a5,%sp@- <== NOT EXECUTED 5b40e: 4eb9 0006 af5c jsr 6af5c <== NOT EXECUTED (void) _closedir (dir); 5b414: 2f2e ff90 movel %fp@(-112),%sp@- <== NOT EXECUTED 5b418: 4eb9 0006 6518 jsr 66518 <== NOT EXECUTED dir = 0; /* Truncate any file name. */ *bup = '\0'; 5b41e: 2244 moveal %d4,%a1 <== NOT EXECUTED 5b420: 4211 clrb %a1@ <== NOT EXECUTED 5b422: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5b428: 6000 fda8 braw 5b1d2 <== NOT EXECUTED } 5b42c: 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) 5b42e: 45f9 0006 8a8c lea 68a8c <__errno>,%a2 <== NOT EXECUTED 5b434: 4e92 jsr %a2@ <== NOT EXECUTED 5b436: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b438: 4a90 tstl %a0@ <== NOT EXECUTED 5b43a: 6636 bnes 5b472 <== NOT EXECUTED errno = save_errno ? save_errno : ENOENT; 5b43c: 4e92 jsr %a2@ <== NOT EXECUTED 5b43e: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b440: 4a83 tstl %d3 <== NOT EXECUTED 5b442: 6604 bnes 5b448 <== NOT EXECUTED 5b444: 163c 0002 moveb #2,%d3 <== NOT EXECUTED 5b448: 2083 movel %d3,%a0@ <== NOT EXECUTED 5b44a: 6026 bras 5b472 <== NOT EXECUTED /* FALLTHROUGH */ err: if(dir) (void) _closedir (dir); if (ptsize) 5b44c: 4a87 tstl %d7 <== NOT EXECUTED 5b44e: 670a beqs 5b45a <== NOT EXECUTED free (pt); 5b450: 2f0c movel %a4,%sp@- <== NOT EXECUTED 5b452: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 5b458: 588f addql #4,%sp <== NOT EXECUTED free (up); 5b45a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b45c: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 5b462: 588f addql #4,%sp <== NOT EXECUTED 5b464: 99cc subal %a4,%a4 <== NOT EXECUTED return (char *) NULL; } 5b466: 200c movel %a4,%d0 <== NOT EXECUTED 5b468: 4cee 3cfc ff68 moveml %fp@(-152),%d2-%d7/%a2-%a5 <== NOT EXECUTED 5b46e: 4e5e unlk %fp <== NOT EXECUTED 5b470: 4e75 rts <== NOT EXECUTED errno = save_errno ? save_errno : ENOENT; /* FALLTHROUGH */ err: if(dir) (void) _closedir (dir); 5b472: 2f2e ff90 movel %fp@(-112),%sp@- <== NOT EXECUTED 5b476: 4eb9 0006 6518 jsr 66518 <== NOT EXECUTED 5b47c: 588f addql #4,%sp <== NOT EXECUTED 5b47e: 60cc bras 5b44c <== NOT EXECUTED 00066860 : int getdents( int dd_fd, char *dd_buf, int dd_len ) { 66860: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 66864: 2f0a movel %a2,%sp@- <== NOT EXECUTED 66866: 2f02 movel %d2,%sp@- <== NOT EXECUTED 66868: 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 ); 6686c: b4b9 0007 db68 cmpl 7db68 ,%d2 <== NOT EXECUTED 66872: 6504 bcss 66878 <== NOT EXECUTED 66874: 95ca subal %a2,%a2 <== NOT EXECUTED 66876: 6016 bras 6688e <== NOT EXECUTED 66878: 2202 movel %d2,%d1 <== NOT EXECUTED 6687a: 2002 movel %d2,%d0 <== NOT EXECUTED 6687c: e589 lsll #2,%d1 <== NOT EXECUTED 6687e: e988 lsll #4,%d0 <== NOT EXECUTED 66880: 9081 subl %d1,%d0 <== NOT EXECUTED 66882: 2479 0009 3738 moveal 93738 ,%a2 <== NOT EXECUTED 66888: d082 addl %d2,%d0 <== NOT EXECUTED 6688a: e588 lsll #2,%d0 <== NOT EXECUTED 6688c: d5c0 addal %d0,%a2 <== NOT EXECUTED /* * Make sure we are working on a directory */ loc = iop->pathinfo; 6688e: 4878 0010 pea 10 <== NOT EXECUTED 66892: 240e movel %fp,%d2 <== NOT EXECUTED 66894: 486a 0010 pea %a2@(16) <== NOT EXECUTED 66898: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 6689e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 668a0: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED if ( !loc.ops->node_type_h ) 668a6: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 668aa: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 668ae: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 668b4: 4a88 tstl %a0 <== NOT EXECUTED 668b6: 6728 beqs 668e0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) 668b8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 668ba: 4e90 jsr %a0@ <== NOT EXECUTED 668bc: 588f addql #4,%sp <== NOT EXECUTED 668be: 7201 moveq #1,%d1 <== NOT EXECUTED 668c0: b280 cmpl %d0,%d1 <== NOT EXECUTED 668c2: 6710 beqs 668d4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 668c4: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 668ca: 2040 moveal %d0,%a0 <== NOT EXECUTED 668cc: 7014 moveq #20,%d0 <== NOT EXECUTED 668ce: 2080 movel %d0,%a0@ <== NOT EXECUTED 668d0: 70ff moveq #-1,%d0 <== NOT EXECUTED 668d2: 602e bras 66902 <== NOT EXECUTED /* * Return the number of bytes that were actually transfered as a result * of the read attempt. */ if ( !iop->handlers->read_h ) 668d4: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 668d8: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED 668dc: 4a88 tstl %a0 <== NOT EXECUTED 668de: 6610 bnes 668f0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 668e0: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 668e6: 2040 moveal %d0,%a0 <== NOT EXECUTED 668e8: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 668ee: 60e0 bras 668d0 <== NOT EXECUTED return (*iop->handlers->read_h)( iop, dd_buf, dd_len ); 668f0: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 668f4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 668f8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 668fa: 4e90 jsr %a0@ <== NOT EXECUTED 668fc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 66902: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 66906: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 6690a: 4e5e unlk %fp <== NOT EXECUTED 6690c: 4e75 rts <== NOT EXECUTED ... 00048fe8 : * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ gid_t getegid( void ) { 48fe8: 2079 0005 6764 moveal 56764 ,%a0 <== NOT EXECUTED 48fee: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_types_Egid; } 48ff2: 4e5e unlk %fp <== NOT EXECUTED 48ff4: 3028 0030 movew %a0@(48),%d0 <== NOT EXECUTED 48ff8: 4e75 rts <== NOT EXECUTED ... 00048ffc : * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ uid_t geteuid( void ) { 48ffc: 2079 0005 6764 moveal 56764 ,%a0 <== NOT EXECUTED 49002: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_types_Euid; } 49006: 4e5e unlk %fp <== NOT EXECUTED 49008: 3028 002e movew %a0@(46),%d0 <== NOT EXECUTED 4900c: 4e75 rts <== NOT EXECUTED ... 0005b4a8 : * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ gid_t getgid( void ) { 5b4a8: 2079 0007 e600 moveal 7e600 ,%a0 <== NOT EXECUTED 5b4ae: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_types_Gid; } 5b4b2: 4e5e unlk %fp <== NOT EXECUTED 5b4b4: 3028 002c movew %a0@(44),%d0 <== NOT EXECUTED 5b4b8: 4e75 rts 0005b9ea : struct group *grp, char *buffer, size_t bufsize, struct group **result ) { 5b9ea: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 5b9ee: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 5b9f2: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 5b9f6: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED FILE *fp; int match; init_etc_passwd_group(); 5b9fa: 4eb9 0005 b8ca jsr 5b8ca <== NOT EXECUTED if ((fp = fopen("/etc/group", "r")) == NULL) { 5ba00: 4879 0007 9dcd pea 79dcd <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5ba06: 4879 0007 b4d9 pea 7b4d9 <== NOT EXECUTED 5ba0c: 4eb9 0006 93d4 jsr 693d4 <== NOT EXECUTED 5ba12: 508f addql #8,%sp <== NOT EXECUTED 5ba14: 2400 movel %d0,%d2 <== NOT EXECUTED 5ba16: 660e bnes 5ba26 <== NOT EXECUTED errno = EINVAL; 5ba18: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ba1e: 7216 moveq #22,%d1 <== NOT EXECUTED 5ba20: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ba22: 2081 movel %d1,%a0@ <== NOT EXECUTED 5ba24: 6038 bras 5ba5e <== NOT EXECUTED return -1; } for(;;) { if (!scangr(fp, grp, buffer, bufsize)) { 5ba26: 49fa fc24 lea %pc@(5b64c ),%a4 <== NOT EXECUTED errno = EINVAL; fclose(fp); return -1; } if (name) { match = (strcmp(grp->gr_name, name) == 0); 5ba2a: 47f9 0006 d528 lea 6d528 ,%a3 <== NOT EXECUTED if ((fp = fopen("/etc/group", "r")) == NULL) { errno = EINVAL; return -1; } for(;;) { if (!scangr(fp, grp, buffer, bufsize)) { 5ba30: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5ba34: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5ba38: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5ba3a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ba3c: 4e94 jsr %a4@ <== NOT EXECUTED 5ba3e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5ba44: 4a80 tstl %d0 <== NOT EXECUTED 5ba46: 661a bnes 5ba62 <== NOT EXECUTED errno = EINVAL; 5ba48: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ba4e: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ba50: 7016 moveq #22,%d0 <== NOT EXECUTED 5ba52: 2080 movel %d0,%a0@ <== NOT EXECUTED fclose(fp); 5ba54: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ba56: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED 5ba5c: 588f addql #4,%sp <== NOT EXECUTED 5ba5e: 70ff moveq #-1,%d0 <== NOT EXECUTED 5ba60: 6036 bras 5ba98 <== NOT EXECUTED return -1; } if (name) { 5ba62: 4a83 tstl %d3 <== NOT EXECUTED 5ba64: 670e beqs 5ba74 <== NOT EXECUTED match = (strcmp(grp->gr_name, name) == 0); 5ba66: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ba68: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 5ba6a: 4e93 jsr %a3@ <== NOT EXECUTED 5ba6c: 4a80 tstl %d0 <== NOT EXECUTED 5ba6e: 57c0 seq %d0 <== NOT EXECUTED 5ba70: 508f addql #8,%sp <== NOT EXECUTED 5ba72: 600c bras 5ba80 <== NOT EXECUTED } else { match = (grp->gr_gid == gid); 5ba74: 4280 clrl %d0 <== NOT EXECUTED 5ba76: 302a 0008 movew %a2@(8),%d0 <== NOT EXECUTED 5ba7a: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 5ba7e: 57c0 seq %d0 <== NOT EXECUTED 5ba80: 49c0 extbl %d0 <== NOT EXECUTED 5ba82: 4480 negl %d0 <== NOT EXECUTED } if (match) { 5ba84: 67aa beqs 5ba30 <== NOT EXECUTED fclose(fp); 5ba86: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ba88: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED *result = grp; 5ba8e: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 5ba92: 588f addql #4,%sp <== NOT EXECUTED 5ba94: 4280 clrl %d0 <== NOT EXECUTED 5ba96: 208a movel %a2,%a0@ <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 5ba98: 4cee 1c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a4 <== NOT EXECUTED 5ba9e: 4e5e unlk %fp <== NOT EXECUTED 5baa0: 4e75 rts 0005b75c : return p; } struct group *getgrent() { if (group_fp == NULL) 5b75c: 2039 0009 28ca movel 928ca ,%d0 <== NOT EXECUTED return NULL; return p; } struct group *getgrent() { 5b762: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (group_fp == NULL) 5b766: 4a80 tstl %d0 <== NOT EXECUTED 5b768: 6726 beqs 5b790 <== NOT EXECUTED return NULL; if (!scangr(group_fp, &grent, grbuf, sizeof grbuf)) 5b76a: 4878 00c8 pea c8 <== NOT EXECUTED 5b76e: 4879 0009 28ce pea 928ce <== NOT EXECUTED 5b774: 4879 0009 2996 pea 92996 <== NOT EXECUTED 5b77a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b77c: 4eba fece jsr %pc@(5b64c ) <== NOT EXECUTED 5b780: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5b786: 223c 0009 2996 movel #600470,%d1 <== NOT EXECUTED 5b78c: 4a80 tstl %d0 <== NOT EXECUTED 5b78e: 6602 bnes 5b792 <== NOT EXECUTED 5b790: 4281 clrl %d1 <== NOT EXECUTED return NULL; return &grent; } 5b792: 4e5e unlk %fp <== NOT EXECUTED 5b794: 2001 movel %d1,%d0 <== NOT EXECUTED 5b796: 4e75 rts 0005bac8 : struct group *getgrgid( gid_t gid ) { 5bac8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct group *p; if(getgrgid_r(gid, &grent, grbuf, sizeof grbuf, &p)) 5bacc: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5bad0: 4280 clrl %d0 <== NOT EXECUTED 5bad2: 4878 00c8 pea c8 <== NOT EXECUTED 5bad6: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 5bada: 4879 0009 28ce pea 928ce <== NOT EXECUTED 5bae0: 4879 0009 2996 pea 92996 <== NOT EXECUTED 5bae6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5bae8: 4eb9 0005 baa2 jsr 5baa2 <== NOT EXECUTED 5baee: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5baf4: 4a80 tstl %d0 <== NOT EXECUTED 5baf6: 6704 beqs 5bafc <== NOT EXECUTED 5baf8: 4280 clrl %d0 <== NOT EXECUTED 5bafa: 6004 bras 5bb00 <== NOT EXECUTED return NULL; return p; 5bafc: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 5bb00: 4e5e unlk %fp <== NOT EXECUTED 5bb02: 4e75 rts 0005baa2 : struct group *grp, char *buffer, size_t bufsize, struct group **result ) { 5baa2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getgr_r(NULL, gid, grp, buffer, bufsize, result); 5baa6: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5baaa: 4280 clrl %d0 <== NOT EXECUTED 5baac: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5bab0: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 5bab4: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5bab8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5babc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5babe: 42a7 clrl %sp@- <== NOT EXECUTED 5bac0: 4eba ff28 jsr %pc@(5b9ea ) <== NOT EXECUTED } 5bac4: 4e5e unlk %fp <== NOT EXECUTED 5bac6: 4e75 rts 0005bb26 : struct group *getgrnam( const char *name ) { 5bb26: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct group *p; if(getgrnam_r(name, &grent, grbuf, sizeof grbuf, &p)) 5bb2a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5bb2e: 4878 00c8 pea c8 <== NOT EXECUTED 5bb32: 4879 0009 28ce pea 928ce <== NOT EXECUTED 5bb38: 4879 0009 2996 pea 92996 <== NOT EXECUTED 5bb3e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5bb42: 4eb9 0005 bb04 jsr 5bb04 <== NOT EXECUTED 5bb48: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5bb4e: 4a80 tstl %d0 <== NOT EXECUTED 5bb50: 6704 beqs 5bb56 <== NOT EXECUTED 5bb52: 4280 clrl %d0 <== NOT EXECUTED 5bb54: 6004 bras 5bb5a <== NOT EXECUTED return NULL; return p; 5bb56: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 5bb5a: 4e5e unlk %fp <== NOT EXECUTED 5bb5c: 4e75 rts 0005bb04 : struct group *grp, char *buffer, size_t bufsize, struct group **result ) { 5bb04: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getgr_r(name, 0, grp, buffer, bufsize, result); 5bb08: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5bb0c: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5bb10: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5bb14: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5bb18: 42a7 clrl %sp@- <== NOT EXECUTED 5bb1a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5bb1e: 4eba feca jsr %pc@(5b9ea ) <== NOT EXECUTED } 5bb22: 4e5e unlk %fp <== NOT EXECUTED 5bb24: 4e75 rts 00053d68 : * * 4.1.1 Get Process and Parent Process IDs, P1003.1b-1993, p. 83 */ pid_t getpid( void ) { 53d68: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Local_node; } 53d6c: 4e5e unlk %fp <== NOT EXECUTED 53d6e: 7001 moveq #1,%d0 <== NOT EXECUTED 53d70: 4e75 rts 0005bb98 : struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result ) { 5bb98: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 5bb9c: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 5bba0: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 5bba4: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED FILE *fp; int match; init_etc_passwd_group(); 5bba8: 4eb9 0005 b8ca jsr 5b8ca <== NOT EXECUTED if ((fp = fopen("/etc/passwd", "r")) == NULL) { 5bbae: 4879 0007 9dcd pea 79dcd <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5bbb4: 4879 0007 b466 pea 7b466 <== NOT EXECUTED 5bbba: 4eb9 0006 93d4 jsr 693d4 <== NOT EXECUTED 5bbc0: 508f addql #8,%sp <== NOT EXECUTED 5bbc2: 2400 movel %d0,%d2 <== NOT EXECUTED 5bbc4: 660e bnes 5bbd4 <== NOT EXECUTED errno = EINVAL; 5bbc6: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5bbcc: 2040 moveal %d0,%a0 <== NOT EXECUTED 5bbce: 7016 moveq #22,%d0 <== NOT EXECUTED 5bbd0: 2080 movel %d0,%a0@ <== NOT EXECUTED 5bbd2: 6038 bras 5bc0c <== NOT EXECUTED return -1; } for(;;) { if (!scanpw(fp, pwd, buffer, bufsize)) { 5bbd4: 49fa fbc2 lea %pc@(5b798 ),%a4 <== NOT EXECUTED errno = EINVAL; fclose(fp); return -1; } if (name) { match = (strcmp(pwd->pw_name, name) == 0); 5bbd8: 47f9 0006 d528 lea 6d528 ,%a3 <== NOT EXECUTED if ((fp = fopen("/etc/passwd", "r")) == NULL) { errno = EINVAL; return -1; } for(;;) { if (!scanpw(fp, pwd, buffer, bufsize)) { 5bbde: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5bbe2: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5bbe6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5bbe8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5bbea: 4e94 jsr %a4@ <== NOT EXECUTED 5bbec: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5bbf2: 4a80 tstl %d0 <== NOT EXECUTED 5bbf4: 661a bnes 5bc10 <== NOT EXECUTED errno = EINVAL; 5bbf6: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5bbfc: 7616 moveq #22,%d3 <== NOT EXECUTED 5bbfe: 2040 moveal %d0,%a0 <== NOT EXECUTED 5bc00: 2083 movel %d3,%a0@ <== NOT EXECUTED fclose(fp); 5bc02: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5bc04: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED 5bc0a: 588f addql #4,%sp <== NOT EXECUTED 5bc0c: 70ff moveq #-1,%d0 <== NOT EXECUTED 5bc0e: 6036 bras 5bc46 <== NOT EXECUTED return -1; } if (name) { 5bc10: 4a83 tstl %d3 <== NOT EXECUTED 5bc12: 670e beqs 5bc22 <== NOT EXECUTED match = (strcmp(pwd->pw_name, name) == 0); 5bc14: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5bc16: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 5bc18: 4e93 jsr %a3@ <== NOT EXECUTED 5bc1a: 4a80 tstl %d0 <== NOT EXECUTED 5bc1c: 57c0 seq %d0 <== NOT EXECUTED 5bc1e: 508f addql #8,%sp <== NOT EXECUTED 5bc20: 600c bras 5bc2e <== NOT EXECUTED } else { match = (pwd->pw_uid == uid); 5bc22: 4280 clrl %d0 <== NOT EXECUTED 5bc24: 302a 0008 movew %a2@(8),%d0 <== NOT EXECUTED 5bc28: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 5bc2c: 57c0 seq %d0 <== NOT EXECUTED 5bc2e: 49c0 extbl %d0 <== NOT EXECUTED 5bc30: 4480 negl %d0 <== NOT EXECUTED } if (match) { 5bc32: 67aa beqs 5bbde <== NOT EXECUTED fclose(fp); 5bc34: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5bc36: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED *result = pwd; 5bc3c: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 5bc40: 588f addql #4,%sp <== NOT EXECUTED 5bc42: 4280 clrl %d0 <== NOT EXECUTED 5bc44: 208a movel %a2,%a0@ <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 5bc46: 4cee 1c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a4 <== NOT EXECUTED 5bc4c: 4e5e unlk %fp <== NOT EXECUTED 5bc4e: 4e75 rts 0005b88e : return p; } struct passwd *getpwent() { if (passwd_fp == NULL) 5b88e: 2039 0009 27e2 movel 927e2 ,%d0 <== NOT EXECUTED return NULL; return p; } struct passwd *getpwent() { 5b894: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (passwd_fp == NULL) 5b898: 4a80 tstl %d0 <== NOT EXECUTED 5b89a: 6726 beqs 5b8c2 <== NOT EXECUTED return NULL; if (!scanpw(passwd_fp, &pwent, pwbuf, sizeof pwbuf)) 5b89c: 4878 00c8 pea c8 <== NOT EXECUTED 5b8a0: 4879 0009 27e6 pea 927e6 <== NOT EXECUTED 5b8a6: 4879 0009 28ae pea 928ae <== NOT EXECUTED 5b8ac: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b8ae: 4eba fee8 jsr %pc@(5b798 ) <== NOT EXECUTED 5b8b2: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5b8b8: 223c 0009 28ae movel #600238,%d1 <== NOT EXECUTED 5b8be: 4a80 tstl %d0 <== NOT EXECUTED 5b8c0: 6602 bnes 5b8c4 <== NOT EXECUTED 5b8c2: 4281 clrl %d1 <== NOT EXECUTED return NULL; return &pwent; } 5b8c4: 4e5e unlk %fp <== NOT EXECUTED 5b8c6: 2001 movel %d1,%d0 <== NOT EXECUTED 5b8c8: 4e75 rts 0005bcd4 : struct passwd *getpwnam( const char *name ) { 5bcd4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct passwd *p; if(getpwnam_r(name, &pwent, pwbuf, sizeof pwbuf, &p)) 5bcd8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5bcdc: 4878 00c8 pea c8 <== NOT EXECUTED 5bce0: 4879 0009 27e6 pea 927e6 <== NOT EXECUTED 5bce6: 4879 0009 28ae pea 928ae <== NOT EXECUTED 5bcec: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5bcf0: 4eb9 0005 bcb2 jsr 5bcb2 <== NOT EXECUTED 5bcf6: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5bcfc: 4a80 tstl %d0 <== NOT EXECUTED 5bcfe: 6704 beqs 5bd04 <== NOT EXECUTED 5bd00: 4280 clrl %d0 <== NOT EXECUTED 5bd02: 6004 bras 5bd08 <== NOT EXECUTED return NULL; return p; 5bd04: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 5bd08: 4e5e unlk %fp <== NOT EXECUTED 5bd0a: 4e75 rts 0005bcb2 : struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result ) { 5bcb2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getpw_r(name, 0, pwd, buffer, bufsize, result); 5bcb6: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5bcba: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5bcbe: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5bcc2: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5bcc6: 42a7 clrl %sp@- <== NOT EXECUTED 5bcc8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5bccc: 4eba feca jsr %pc@(5bb98 ) <== NOT EXECUTED } 5bcd0: 4e5e unlk %fp <== NOT EXECUTED 5bcd2: 4e75 rts 0005bc76 : struct passwd *getpwuid( uid_t uid ) { 5bc76: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct passwd *p; if(getpwuid_r(uid, &pwent, pwbuf, sizeof pwbuf, &p)) 5bc7a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5bc7e: 4280 clrl %d0 <== NOT EXECUTED 5bc80: 4878 00c8 pea c8 <== NOT EXECUTED 5bc84: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 5bc88: 4879 0009 27e6 pea 927e6 <== NOT EXECUTED 5bc8e: 4879 0009 28ae pea 928ae <== NOT EXECUTED 5bc94: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5bc96: 4eb9 0005 bc50 jsr 5bc50 <== NOT EXECUTED 5bc9c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5bca2: 4a80 tstl %d0 <== NOT EXECUTED 5bca4: 6704 beqs 5bcaa <== NOT EXECUTED 5bca6: 4280 clrl %d0 <== NOT EXECUTED 5bca8: 6004 bras 5bcae <== NOT EXECUTED return NULL; return p; 5bcaa: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 5bcae: 4e5e unlk %fp <== NOT EXECUTED 5bcb0: 4e75 rts 0005bc50 : struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result ) { 5bc50: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getpw_r(NULL, uid, pwd, buffer, bufsize, result); 5bc54: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5bc58: 4280 clrl %d0 <== NOT EXECUTED 5bc5a: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5bc5e: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 5bc62: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5bc66: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5bc6a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5bc6c: 42a7 clrl %sp@- <== NOT EXECUTED 5bc6e: 4eba ff28 jsr %pc@(5bb98 ) <== NOT EXECUTED } 5bc72: 4e5e unlk %fp <== NOT EXECUTED 5bc74: 4e75 rts 00049010 : int gettimeofday( struct timeval *tp, void * __tz ) { 49010: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 49014: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49016: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4901a: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* struct timezone* tzp = (struct timezone*) __tz; */ if ( !tp ) { 4901c: 4a8a tstl %a2 <== NOT EXECUTED 4901e: 6610 bnes 49030 <== NOT EXECUTED errno = EFAULT; 49020: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 49026: 2040 moveal %d0,%a0 <== NOT EXECUTED 49028: 700e moveq #14,%d0 <== NOT EXECUTED 4902a: 2080 movel %d0,%a0@ <== NOT EXECUTED 4902c: 70ff moveq #-1,%d0 <== NOT EXECUTED 4902e: 6032 bras 49062 <== NOT EXECUTED ) { ISR_Level level; struct timespec now; _ISR_Disable(level); 49030: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 49036: 40c2 movew %sr,%d2 <== NOT EXECUTED 49038: 8082 orl %d2,%d0 <== NOT EXECUTED 4903a: 46c0 movew %d0,%sr <== NOT EXECUTED _TOD_Get( &now ); 4903c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 49040: 4eb9 0004 5d14 jsr 45d14 <_TOD_Get> <== NOT EXECUTED _ISR_Enable(level); 49046: 46c2 movew %d2,%sr <== NOT EXECUTED time->tv_sec = now.tv_sec; time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 49048: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 4904c: 243c 0000 03e8 movel #1000,%d2 <== NOT EXECUTED 49052: 4c42 1001 remul %d2,%d1,%d1 <== NOT EXECUTED 49056: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED 4905a: 588f addql #4,%sp <== NOT EXECUTED 4905c: 4280 clrl %d0 <== NOT EXECUTED _ISR_Disable(level); _TOD_Get( &now ); _ISR_Enable(level); time->tv_sec = now.tv_sec; 4905e: 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; } 49062: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 49066: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4906a: 4e5e unlk %fp <== NOT EXECUTED 4906c: 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 e600 moveal 7e600 ,%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 000661da : */ int imfs_dir_close( rtems_libio_t *iop ) { 661da: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED * and associated memory. At present the imfs_dir_close simply * returns a successful completion status. */ return 0; } 661de: 4e5e unlk %fp <== NOT EXECUTED 661e0: 4280 clrl %d0 <== NOT EXECUTED 661e2: 4e75 rts 000661e4 : int imfs_dir_fstat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 661e4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 661e8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 661ec: 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; 661f0: 2050 moveal %a0@,%a0 <== NOT EXECUTED buf->st_dev = 0ll; buf->st_ino = the_jnode->st_ino; 661f2: 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; 661f8: 4280 clrl %d0 <== NOT EXECUTED 661fa: 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; 661fc: 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; 66202: 42a9 003a clrl %a1@(58) <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) loc->node_access; buf->st_dev = 0ll; 66206: 2280 movel %d0,%a1@ <== NOT EXECUTED 66208: 2341 0004 movel %d1,%a1@(4) <== NOT EXECUTED 6620c: 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; 6620e: 42a9 003e clrl %a1@(62) <== NOT EXECUTED 66212: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED int imfs_dir_fstat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 66218: 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; 6621a: 3368 0038 0012 movew %a0@(56),%a1@(18) <== NOT EXECUTED buf->st_gid = the_jnode->st_gid; buf->st_rdev = 0ll; 66220: 4281 clrl %d1 <== NOT EXECUTED 66222: 4282 clrl %d2 <== NOT EXECUTED 66224: 2341 0016 movel %d1,%a1@(22) <== NOT EXECUTED 66228: 2342 001a movel %d2,%a1@(26) <== NOT EXECUTED buf->st_blksize = 0; buf->st_blocks = 0; buf->st_atime = the_jnode->stat_atime; 6622c: 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; 66232: 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; 66238: 2368 0040 002a movel %a0@(64),%a1@(42) <== NOT EXECUTED buf->st_ctime = the_jnode->stat_ctime; 6623e: 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; 66244: 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; 6624a: 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 ; 6624e: 2068 004c moveal %a0@(76),%a0 <== NOT EXECUTED 66252: 600c bras 66260 <== NOT EXECUTED !rtems_chain_is_tail( the_chain, the_node ) ; the_node = the_node->next ) { 66254: 2050 moveal %a0@,%a0 <== NOT EXECUTED buf->st_size = buf->st_size + sizeof( struct dirent ); 66256: 243c 0000 010c movel #268,%d2 <== NOT EXECUTED 6625c: 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 ) ; 66260: b088 cmpl %a0,%d0 <== NOT EXECUTED 66262: 66f0 bnes 66254 <== NOT EXECUTED buf->st_size = buf->st_size + sizeof( struct dirent ); } return 0; } 66264: 241f movel %sp@+,%d2 <== NOT EXECUTED 66266: 4e5e unlk %fp <== NOT EXECUTED 66268: 4280 clrl %d0 <== NOT EXECUTED 6626a: 4e75 rts 0006626c : off_t imfs_dir_lseek( rtems_libio_t *iop, off_t offset, int whence ) { 6626c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 66270: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 66274: 2f02 movel %d2,%sp@- <== NOT EXECUTED switch( whence ) { 66276: 7001 moveq #1,%d0 <== NOT EXECUTED 66278: b0ae 0010 cmpl %fp@(16),%d0 <== NOT EXECUTED 6627c: 6526 bcss 662a4 <== 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)) * 6627e: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED 66282: 243c 0000 010c movel #268,%d2 <== NOT EXECUTED 66288: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 6628c: 2200 movel %d0,%d1 <== NOT EXECUTED 6628e: ed89 lsll #6,%d1 <== NOT EXECUTED 66290: 2241 moveal %d1,%a1 <== NOT EXECUTED 66292: 43f1 0c00 lea %a1@(00000000,%d0:l:4),%a1 <== NOT EXECUTED 66296: 2209 movel %a1,%d1 <== NOT EXECUTED 66298: 9280 subl %d0,%d1 <== NOT EXECUTED 6629a: e589 lsll #2,%d1 <== NOT EXECUTED 6629c: 2141 0008 movel %d1,%a0@(8) <== NOT EXECUTED 662a0: 4280 clrl %d0 <== NOT EXECUTED 662a2: 600e bras 662b2 <== 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 ); 662a4: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 662aa: 2040 moveal %d0,%a0 <== NOT EXECUTED 662ac: 7216 moveq #22,%d1 <== NOT EXECUTED 662ae: 70ff moveq #-1,%d0 <== NOT EXECUTED 662b0: 2081 movel %d1,%a0@ <== NOT EXECUTED break; } return 0; } 662b2: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 662b6: 4e5e unlk %fp <== NOT EXECUTED 662b8: 4e75 rts 000661b8 : rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) { 661b8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 661bc: 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 ) 661c0: 2069 002c moveal %a1@(44),%a0 <== NOT EXECUTED 661c4: 7001 moveq #1,%d0 <== NOT EXECUTED 661c6: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 661ca: 6704 beqs 661d0 <== NOT EXECUTED 661cc: 70ff moveq #-1,%d0 <== NOT EXECUTED 661ce: 6006 bras 661d6 <== NOT EXECUTED return -1; /* It wasn't a directory --> return error */ iop->offset = 0; 661d0: 4280 clrl %d0 <== NOT EXECUTED 661d2: 42a9 0008 clrl %a1@(8) <== NOT EXECUTED return 0; } 661d6: 4e5e unlk %fp <== NOT EXECUTED 661d8: 4e75 rts 00066376 : ssize_t imfs_dir_read( rtems_libio_t *iop, void *buffer, size_t count ) { 66376: 4e56 fecc linkw %fp,#-308 <== NOT EXECUTED 6637a: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 6637e: 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; 66382: 206b 002c moveal %a3@(44),%a0 <== NOT EXECUTED ssize_t imfs_dir_read( rtems_libio_t *iop, void *buffer, size_t count ) { 66386: 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)); 6638a: 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; 6638e: 2a08 movel %a0,%d5 <== NOT EXECUTED 66390: 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 ) ) 66396: ba8a cmpl %a2,%d5 <== NOT EXECUTED 66398: 6606 bnes 663a0 <== NOT EXECUTED 6639a: 4284 clrl %d4 <== NOT EXECUTED 6639c: 6000 00a4 braw 66442 <== 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); 663a0: 243c 0000 010c movel #268,%d2 <== NOT EXECUTED 663a6: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 663aa: 2200 movel %d0,%d1 <== NOT EXECUTED 663ac: 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; 663ae: 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); 663b2: 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 ); 663b4: 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); 663b6: 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 ); 663ba: 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); 663c0: 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 ); 663c2: 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); 663c4: 4bf4 8c00 lea %a4@(00000000,%a0:l:4),%a5 <== NOT EXECUTED 663c8: 4284 clrl %d4 <== NOT EXECUTED 663ca: 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 ); 663cc: 0686 0000 000c addil #12,%d6 <== NOT EXECUTED 663d2: 606a bras 6643e <== 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 ) ){ 663d4: ba8a cmpl %a2,%d5 <== NOT EXECUTED 663d6: 676a beqs 66442 <== NOT EXECUTED /* entry in the read */ return bytes_transferred; /* Indicate that there are no more */ /* entries to return */ } if( current_entry >= first_entry ) { 663d8: b9c3 cmpal %d3,%a4 <== NOT EXECUTED 663da: 6e5a bgts 66436 <== NOT EXECUTED /* Move the entry to the return buffer */ tmp_dirent.d_off = current_entry; 663dc: 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 ); 663e0: 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; 663e2: 2d6a 0034 fef4 movel %a2@(52),%fp@(-268) <== NOT EXECUTED tmp_dirent.d_namlen = strlen( the_jnode->name ); 663e8: 0682 0000 000c addil #12,%d2 <== NOT EXECUTED 663ee: 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 ); 663f0: 303c 010c movew #268,%d0 <== NOT EXECUTED 663f4: 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 ); 663f8: 4eb9 0006 db20 jsr 6db20 <== NOT EXECUTED strcpy( tmp_dirent.d_name, the_jnode->name ); 663fe: 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 ); 66400: 3d40 fefe movew %d0,%fp@(-258) <== NOT EXECUTED strcpy( tmp_dirent.d_name, the_jnode->name ); 66404: 2f06 movel %d6,%sp@- <== NOT EXECUTED 66406: 4eb9 0006 d5ac jsr 6d5ac <== NOT EXECUTED memcpy( 6640c: 4878 010c pea 10c <== NOT EXECUTED 66410: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 66414: 2f07 movel %d7,%sp@- <== NOT EXECUTED 66416: 4870 4800 pea %a0@(00000000,%d4:l) <== NOT EXECUTED 6641a: 4eb9 0006 aeec jsr 6aeec <== 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 ); 66420: 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); 66426: 203c 0000 010c movel #268,%d0 <== NOT EXECUTED bytes_transferred = bytes_transferred + sizeof( struct dirent ); 6642c: 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); 66432: d1ab 0008 addl %d0,%a3@(8) <== NOT EXECUTED bytes_transferred = bytes_transferred + sizeof( struct dirent ); } the_node = the_node->next; 66436: 2452 moveal %a2@,%a2 <== NOT EXECUTED ssize_t imfs_dir_read( rtems_libio_t *iop, void *buffer, size_t count ) { 66438: 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; 6643e: bbc3 cmpal %d3,%a5 <== NOT EXECUTED 66440: 6e92 bgts 663d4 <== NOT EXECUTED the_node = the_node->next; } /* Success */ return bytes_transferred; } 66442: 2004 movel %d4,%d0 <== NOT EXECUTED 66444: 4cee 3cfc fecc moveml %fp@(-308),%d2-%d7/%a2-%a5 <== NOT EXECUTED 6644a: 4e5e unlk %fp <== NOT EXECUTED 6644c: 4e75 rts <== NOT EXECUTED ... 000662ba : */ int imfs_dir_rmnod( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 662ba: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 662be: 2f0b movel %a3,%sp@- <== NOT EXECUTED 662c0: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 662c4: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 662c6: 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 ) ) 662c8: 200a movel %a2,%d0 <== NOT EXECUTED 662ca: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED 662d0: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 662d4: 670e beqs 662e4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTEMPTY ); 662d6: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 662dc: 725a moveq #90,%d1 <== NOT EXECUTED 662de: 2040 moveal %d0,%a0 <== NOT EXECUTED 662e0: 2081 movel %d1,%a0@ <== NOT EXECUTED 662e2: 601c bras 66300 <== NOT EXECUTED /* * You cannot remove the file system root node. */ if ( pathloc->mt_entry->mt_fs_root.node_access == pathloc->node_access ) 662e4: 206b 000c moveal %a3@(12),%a0 <== NOT EXECUTED 662e8: b5e8 0018 cmpal %a0@(24),%a2 <== NOT EXECUTED 662ec: 6706 beqs 662f4 <== NOT EXECUTED /* * You cannot remove a mountpoint. */ if ( the_jnode->info.directory.mt_fs != NULL ) 662ee: 4aaa 0058 tstl %a2@(88) <== NOT EXECUTED 662f2: 6710 beqs 66304 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBUSY ); 662f4: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 662fa: 2040 moveal %d0,%a0 <== NOT EXECUTED 662fc: 7010 moveq #16,%d0 <== NOT EXECUTED 662fe: 2080 movel %d0,%a0@ <== NOT EXECUTED 66300: 70ff moveq #-1,%d0 <== NOT EXECUTED 66302: 6066 bras 6636a <== NOT EXECUTED /* * Take the node out of the parent's chain that contains this node */ if ( the_jnode->Parent != NULL ) { 66304: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 66308: 670e beqs 66318 <== NOT EXECUTED 6630a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6630c: 4eb9 0005 e134 jsr 5e134 <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( (rtems_chain_node *) the_jnode ); the_jnode->Parent = NULL; 66312: 588f addql #4,%sp <== NOT EXECUTED 66314: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED /* * Decrement the link counter and see if we can free the space. */ the_jnode->st_nlink--; 66318: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 6631c: 5380 subql #1,%d0 <== NOT EXECUTED 6631e: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( the_jnode ); 66322: 42a7 clrl %sp@- <== NOT EXECUTED 66324: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 66328: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 6632e: 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) ) { 66334: 2f0a movel %a2,%sp@- <== NOT EXECUTED 66336: 4eb9 0004 5576 jsr 45576 <== NOT EXECUTED 6633c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 66342: 4a80 tstl %d0 <== NOT EXECUTED 66344: 6622 bnes 66368 <== NOT EXECUTED 66346: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 6634a: 661c bnes 66368 <== NOT EXECUTED /* * Is the rtems_filesystem_current is this node? */ if ( rtems_filesystem_current.node_access == pathloc->node_access ) 6634c: 2079 0007 e600 moveal 7e600 ,%a0 <== NOT EXECUTED 66352: 2653 moveal %a3@,%a3 <== NOT EXECUTED 66354: b7e8 0004 cmpal %a0@(4),%a3 <== NOT EXECUTED 66358: 6604 bnes 6635e <== NOT EXECUTED rtems_filesystem_current.node_access = NULL; 6635a: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED /* * Free memory associated with a memory file. */ free( the_jnode ); 6635e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 66360: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 66366: 588f addql #4,%sp <== NOT EXECUTED 66368: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 6636a: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 6636e: 266e fff4 moveal %fp@(-12),%a3 <== NOT EXECUTED 66372: 4e5e unlk %fp <== NOT EXECUTED 66374: 4e75 rts 0005b8ca : /* * Initialize useable but dummy databases */ void init_etc_passwd_group(void) { 5b8ca: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5b8ce: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5b8d0: 2f02 movel %d2,%sp@- <== NOT EXECUTED FILE *fp; static char etc_passwd_initted = 0; if (etc_passwd_initted) 5b8d2: 4a39 0009 27e0 tstb 927e0 <== NOT EXECUTED 5b8d8: 6600 00ca bnew 5b9a4 <== NOT EXECUTED return; etc_passwd_initted = 1; mkdir("/etc", 0777); 5b8dc: 4878 01ff pea 1ff <== NOT EXECUTED FILE *fp; static char etc_passwd_initted = 0; if (etc_passwd_initted) return; etc_passwd_initted = 1; 5b8e0: 7001 moveq #1,%d0 <== NOT EXECUTED 5b8e2: 13c0 0009 27e0 moveb %d0,927e0 <== NOT EXECUTED mkdir("/etc", 0777); 5b8e8: 4879 0007 b461 pea 7b461 <== NOT EXECUTED 5b8ee: 4eb9 0004 5a5c jsr 45a5c <== NOT EXECUTED /* * Initialize /etc/passwd */ if ((fp = fopen("/etc/passwd", "r")) != NULL) { 5b8f4: 4879 0007 9dcd pea 79dcd <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5b8fa: 45f9 0006 93d4 lea 693d4 ,%a2 <== NOT EXECUTED 5b900: 4879 0007 b466 pea 7b466 <== NOT EXECUTED 5b906: 4e92 jsr %a2@ <== NOT EXECUTED 5b908: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5b90e: 4a80 tstl %d0 <== NOT EXECUTED 5b910: 670c beqs 5b91e <== NOT EXECUTED fclose(fp); 5b912: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b914: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED 5b91a: 588f addql #4,%sp <== NOT EXECUTED 5b91c: 6030 bras 5b94e <== NOT EXECUTED } else if ((fp = fopen("/etc/passwd", "w")) != NULL) { 5b91e: 4879 0007 9a79 pea 79a79 <_CPU_m68k_BFFFO_table+0x132> <== NOT EXECUTED 5b924: 4879 0007 b466 pea 7b466 <== NOT EXECUTED 5b92a: 4e92 jsr %a2@ <== NOT EXECUTED 5b92c: 508f addql #8,%sp <== NOT EXECUTED 5b92e: 2400 movel %d0,%d2 <== NOT EXECUTED 5b930: 671c beqs 5b94e <== NOT EXECUTED fprintf(fp, "root:*:0:0:root::/:/bin/sh\n" 5b932: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b934: 4879 0007 b472 pea 7b472 <== NOT EXECUTED 5b93a: 4eb9 0006 9552 jsr 69552 <== NOT EXECUTED "rtems:*:1:1:RTEMS Application::/:/bin/sh\n" "tty:!:2:2:tty owner::/:/bin/false\n" ); fclose(fp); 5b940: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b942: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED 5b948: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } /* * Initialize /etc/group */ if ((fp = fopen("/etc/group", "r")) != NULL) { 5b94e: 4879 0007 9dcd pea 79dcd <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5b954: 45f9 0006 93d4 lea 693d4 ,%a2 <== NOT EXECUTED 5b95a: 4879 0007 b4d9 pea 7b4d9 <== NOT EXECUTED 5b960: 4e92 jsr %a2@ <== NOT EXECUTED 5b962: 508f addql #8,%sp <== NOT EXECUTED 5b964: 4a80 tstl %d0 <== NOT EXECUTED 5b966: 670c beqs 5b974 <== NOT EXECUTED fclose(fp); 5b968: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b96a: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED 5b970: 588f addql #4,%sp <== NOT EXECUTED 5b972: 6030 bras 5b9a4 <== NOT EXECUTED } else if ((fp = fopen("/etc/group", "w")) != NULL) { 5b974: 4879 0007 9a79 pea 79a79 <_CPU_m68k_BFFFO_table+0x132> <== NOT EXECUTED 5b97a: 4879 0007 b4d9 pea 7b4d9 <== NOT EXECUTED 5b980: 4e92 jsr %a2@ <== NOT EXECUTED 5b982: 508f addql #8,%sp <== NOT EXECUTED 5b984: 2400 movel %d0,%d2 <== NOT EXECUTED 5b986: 671c beqs 5b9a4 <== NOT EXECUTED fprintf( fp, "root:x:0:root\n" 5b988: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b98a: 4879 0007 b4e4 pea 7b4e4 <== NOT EXECUTED 5b990: 4eb9 0006 9552 jsr 69552 <== NOT EXECUTED "rtems:x:1:rtems\n" "tty:x:2:tty\n" ); fclose(fp); 5b996: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b998: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED 5b99e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } } 5b9a4: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5b9a8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 5b9ac: 4e5e unlk %fp <== NOT EXECUTED 5b9ae: 4e75 rts 00049464 : * This routine will initialize the chain control element that manages the * mount table chain. */ int init_fs_mount_table(void) { 49464: 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); 49468: 41f9 0005 837a lea 5837a ,%a0 <== NOT EXECUTED rtems_chain_initialize_empty ( &rtems_filesystem_mount_table_control ); return 0; } 4946e: 4e5e unlk %fp <== NOT EXECUTED 49470: 4280 clrl %d0 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 49472: 23c8 0005 8382 movel %a0,58382 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 49478: 20bc 0005 837e movel #361342,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 4947e: 42b9 0005 837e clrl 5837e <== NOT EXECUTED 49484: 4e75 rts 00052370 : int ioctl( int fd, ioctl_command_t command, ... ) { 52370: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 52374: 2f02 movel %d2,%sp@- <== NOT EXECUTED 52376: 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 ); 5237a: b4b9 0006 0ed8 cmpl 60ed8 ,%d2 <== NOT EXECUTED 52380: 642e bccs 523b0 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 52382: 2002 movel %d2,%d0 <== NOT EXECUTED 52384: 2202 movel %d2,%d1 <== NOT EXECUTED 52386: e588 lsll #2,%d0 <== NOT EXECUTED 52388: e989 lsll #4,%d1 <== NOT EXECUTED 5238a: 9280 subl %d0,%d1 <== NOT EXECUTED 5238c: 2279 0006 3a70 moveal 63a70 ,%a1 <== NOT EXECUTED 52392: d282 addl %d2,%d1 <== NOT EXECUTED 52394: e589 lsll #2,%d1 <== NOT EXECUTED 52396: d3c1 addal %d1,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 52398: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 5239c: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 523a2: 670c beqs 523b0 <== NOT EXECUTED va_start(ap, command); buffer = va_arg(ap, void *); 523a4: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED /* * Now process the ioctl(). */ if ( !iop->handlers ) 523a8: 2069 0030 moveal %a1@(48),%a0 <== NOT EXECUTED 523ac: 4a88 tstl %a0 <== NOT EXECUTED 523ae: 660e bnes 523be <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 523b0: 4eb9 0005 2e00 jsr 52e00 <__errno> <== NOT EXECUTED 523b6: 2040 moveal %d0,%a0 <== NOT EXECUTED 523b8: 7009 moveq #9,%d0 <== NOT EXECUTED 523ba: 2080 movel %d0,%a0@ <== NOT EXECUTED 523bc: 6016 bras 523d4 <== NOT EXECUTED if ( !iop->handlers->ioctl_h ) 523be: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 523c2: 4a88 tstl %a0 <== NOT EXECUTED 523c4: 6612 bnes 523d8 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 523c6: 4eb9 0005 2e00 jsr 52e00 <__errno> <== NOT EXECUTED 523cc: 2040 moveal %d0,%a0 <== NOT EXECUTED 523ce: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 523d4: 70ff moveq #-1,%d0 <== NOT EXECUTED 523d6: 6010 bras 523e8 <== NOT EXECUTED rc = (*iop->handlers->ioctl_h)( iop, command, buffer ); 523d8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 523da: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 523de: 2f09 movel %a1,%sp@- <== NOT EXECUTED 523e0: 4e90 jsr %a0@ <== NOT EXECUTED 523e2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return rc; } 523e8: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 523ec: 4e5e unlk %fp <== NOT EXECUTED 523ee: 4e75 rts 000436dc : /* * Process a single input character */ static int iproc (unsigned char c, struct rtems_termios_tty *tty) { 436dc: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 436e0: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 436e4: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 436e8: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if (tty->termios.c_iflag & ISTRIP) 436ec: 262a 0030 movel %a2@(48),%d3 <== NOT EXECUTED /* * Process a single input character */ static int iproc (unsigned char c, struct rtems_termios_tty *tty) { 436f0: 1400 moveb %d0,%d2 <== NOT EXECUTED if (tty->termios.c_iflag & ISTRIP) 436f2: 0803 0005 btst #5,%d3 <== NOT EXECUTED 436f6: 6704 beqs 436fc <== NOT EXECUTED c &= 0x7f; 436f8: 747f moveq #127,%d2 <== NOT EXECUTED 436fa: c480 andl %d0,%d2 <== NOT EXECUTED if (tty->termios.c_iflag & IUCLC) 436fc: 0803 0009 btst #9,%d3 <== NOT EXECUTED 43700: 671e beqs 43720 <== NOT EXECUTED c = tolower (c); 43702: 2079 0005 6820 moveal 56820 <__ctype_ptr>,%a0 <== NOT EXECUTED 43708: 4281 clrl %d1 <== NOT EXECUTED 4370a: 1202 moveb %d2,%d1 <== NOT EXECUTED 4370c: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 43710: 49c0 extbl %d0 <== NOT EXECUTED 43712: 0800 0000 btst #0,%d0 <== NOT EXECUTED 43716: 6706 beqs 4371e <== NOT EXECUTED 43718: 0681 0000 0020 addil #32,%d1 <== NOT EXECUTED 4371e: 1401 moveb %d1,%d2 <== NOT EXECUTED if (c == '\r') { 43720: 4280 clrl %d0 <== NOT EXECUTED 43722: 1002 moveb %d2,%d0 <== NOT EXECUTED 43724: 720d moveq #13,%d1 <== NOT EXECUTED 43726: b280 cmpl %d0,%d1 <== NOT EXECUTED 43728: 6610 bnes 4373a <== NOT EXECUTED if (tty->termios.c_iflag & IGNCR) 4372a: 4a03 tstb %d3 <== NOT EXECUTED 4372c: 6d00 00fe bltw 4382c <== NOT EXECUTED return 0; if (tty->termios.c_iflag & ICRNL) 43730: 0803 0008 btst #8,%d3 <== NOT EXECUTED 43734: 671a beqs 43750 <== NOT EXECUTED 43736: 740a moveq #10,%d2 <== NOT EXECUTED 43738: 6016 bras 43750 <== NOT EXECUTED c = '\n'; } else if ((c == '\n') && (tty->termios.c_iflag & INLCR)) { 4373a: 720a moveq #10,%d1 <== NOT EXECUTED 4373c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4373e: 660a bnes 4374a <== NOT EXECUTED 43740: 0803 0006 btst #6,%d3 <== NOT EXECUTED 43744: 6600 00f2 bnew 43838 <== NOT EXECUTED 43748: 6006 bras 43750 <== NOT EXECUTED c = '\r'; } if ((c != '\0') && (tty->termios.c_lflag & ICANON)) { 4374a: 4a02 tstb %d2 <== NOT EXECUTED 4374c: 6700 00a8 beqw 437f6 <== NOT EXECUTED 43750: 262a 003c movel %a2@(60),%d3 <== NOT EXECUTED 43754: 0803 0001 btst #1,%d3 <== NOT EXECUTED 43758: 6700 009c beqw 437f6 <== NOT EXECUTED if (c == tty->termios.c_cc[VERASE]) { 4375c: 4280 clrl %d0 <== NOT EXECUTED 4375e: 102a 0043 moveb %a2@(67),%d0 <== NOT EXECUTED 43762: 4281 clrl %d1 <== NOT EXECUTED 43764: 1202 moveb %d2,%d1 <== NOT EXECUTED 43766: b081 cmpl %d1,%d0 <== NOT EXECUTED 43768: 6604 bnes 4376e <== NOT EXECUTED erase (tty, 0); 4376a: 42a7 clrl %sp@- <== NOT EXECUTED 4376c: 600e bras 4377c <== NOT EXECUTED return 0; } else if (c == tty->termios.c_cc[VKILL]) { 4376e: 4280 clrl %d0 <== NOT EXECUTED 43770: 102a 0044 moveb %a2@(68),%d0 <== NOT EXECUTED 43774: b081 cmpl %d1,%d0 <== NOT EXECUTED 43776: 6610 bnes 43788 <== NOT EXECUTED erase (tty, 1); 43778: 4878 0001 pea 1 <== NOT EXECUTED 4377c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4377e: 4eba fdba jsr %pc@(4353a ) <== NOT EXECUTED 43782: 508f addql #8,%sp <== NOT EXECUTED 43784: 6000 00a6 braw 4382c <== NOT EXECUTED return 0; } else if (c == tty->termios.c_cc[VEOF]) { 43788: 4280 clrl %d0 <== NOT EXECUTED 4378a: 102a 0045 moveb %a2@(69),%d0 <== NOT EXECUTED 4378e: b081 cmpl %d1,%d0 <== NOT EXECUTED 43790: 6760 beqs 437f2 <== NOT EXECUTED return 1; } else if (c == '\n') { 43792: 700a moveq #10,%d0 <== NOT EXECUTED 43794: b081 cmpl %d1,%d0 <== NOT EXECUTED 43796: 6622 bnes 437ba <== NOT EXECUTED if (tty->termios.c_lflag & (ECHO | ECHONL)) 43798: 7248 moveq #72,%d1 <== NOT EXECUTED 4379a: c681 andl %d1,%d3 <== NOT EXECUTED 4379c: 670c beqs 437aa <== NOT EXECUTED echo (c, tty); 4379e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 437a0: 4878 000a pea a <== NOT EXECUTED 437a4: 4eba fd0e jsr %pc@(434b4 ) <== NOT EXECUTED 437a8: 508f addql #8,%sp <== NOT EXECUTED tty->cbuf[tty->ccount++] = c; 437aa: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 437ae: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 437b2: 720a moveq #10,%d1 <== NOT EXECUTED 437b4: 1181 0800 moveb %d1,%a0@(00000000,%d0:l) <== NOT EXECUTED 437b8: 6032 bras 437ec <== NOT EXECUTED return 1; } else if ((c == tty->termios.c_cc[VEOL]) 437ba: 4280 clrl %d0 <== NOT EXECUTED 437bc: 102a 004c moveb %a2@(76),%d0 <== NOT EXECUTED 437c0: b081 cmpl %d1,%d0 <== NOT EXECUTED 437c2: 670a beqs 437ce <== NOT EXECUTED 437c4: 4280 clrl %d0 <== NOT EXECUTED 437c6: 102a 0051 moveb %a2@(81),%d0 <== NOT EXECUTED 437ca: b081 cmpl %d1,%d0 <== NOT EXECUTED 437cc: 6628 bnes 437f6 <== NOT EXECUTED || (c == tty->termios.c_cc[VEOL2])) { if (tty->termios.c_lflag & ECHO) 437ce: 44c3 movew %d3,%ccr <== NOT EXECUTED 437d0: 6a0e bpls 437e0 <== NOT EXECUTED echo (c, tty); 437d2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 437d4: 4280 clrl %d0 <== NOT EXECUTED 437d6: 1002 moveb %d2,%d0 <== NOT EXECUTED 437d8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 437da: 4eba fcd8 jsr %pc@(434b4 ) <== NOT EXECUTED 437de: 508f addql #8,%sp <== NOT EXECUTED tty->cbuf[tty->ccount++] = c; 437e0: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 437e4: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 437e8: 1182 0800 moveb %d2,%a0@(00000000,%d0:l) <== NOT EXECUTED 437ec: 5280 addql #1,%d0 <== NOT EXECUTED 437ee: 2540 0020 movel %d0,%a2@(32) <== NOT EXECUTED 437f2: 7001 moveq #1,%d0 <== NOT EXECUTED 437f4: 6038 bras 4382e <== NOT EXECUTED } /* * FIXME: Should do IMAXBEL handling somehow */ if (tty->ccount < (CBUFSIZE-1)) { 437f6: 2039 0005 6754 movel 56754 ,%d0 <== NOT EXECUTED 437fc: 5380 subql #1,%d0 <== NOT EXECUTED 437fe: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 43802: 6f28 bles 4382c <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) 43804: 7008 moveq #8,%d0 <== NOT EXECUTED 43806: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 4380a: 670e beqs 4381a <== NOT EXECUTED echo (c, tty); 4380c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4380e: 4280 clrl %d0 <== NOT EXECUTED 43810: 1002 moveb %d2,%d0 <== NOT EXECUTED 43812: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43814: 4eba fc9e jsr %pc@(434b4 ) <== NOT EXECUTED 43818: 508f addql #8,%sp <== NOT EXECUTED tty->cbuf[tty->ccount++] = c; 4381a: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 4381e: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 43822: 1182 0800 moveb %d2,%a0@(00000000,%d0:l) <== NOT EXECUTED 43826: 5280 addql #1,%d0 <== NOT EXECUTED 43828: 2540 0020 movel %d0,%a2@(32) <== NOT EXECUTED 4382c: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 4382e: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 43834: 4e5e unlk %fp <== NOT EXECUTED 43836: 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; 43838: 740d moveq #13,%d2 <== NOT EXECUTED 4383a: 6000 ff14 braw 43750 <== NOT EXECUTED 00053d7c : #include int isatty( int fd ) { 53d7c: 4e56 ffb4 linkw %fp,#-76 <== NOT EXECUTED struct stat buf; if (fstat (fd, &buf) < 0) 53d80: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 53d84: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 53d88: 4eb9 0005 3c94 jsr 53c94 <== NOT EXECUTED 53d8e: 508f addql #8,%sp <== NOT EXECUTED 53d90: 4a80 tstl %d0 <== NOT EXECUTED 53d92: 6c04 bges 53d98 <== NOT EXECUTED 53d94: 4280 clrl %d0 <== NOT EXECUTED 53d96: 6016 bras 53dae <== NOT EXECUTED 53d98: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 53d9c: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 53da2: 0c80 0000 2000 cmpil #8192,%d0 <== NOT EXECUTED 53da8: 57c0 seq %d0 <== NOT EXECUTED 53daa: 49c0 extbl %d0 <== NOT EXECUTED 53dac: 4480 negl %d0 <== NOT EXECUTED if (S_ISCHR (buf.st_mode)) return 1; return 0; } 53dae: 4e5e unlk %fp <== NOT EXECUTED 53db0: 4e75 rts <== NOT EXECUTED ... 00044f84 : int kill( pid_t pid, int sig ) { 44f84: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return killinfo( pid, sig, NULL ); 44f88: 42a7 clrl %sp@- <== NOT EXECUTED 44f8a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 44f8e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44f92: 4eb9 0004 ac10 jsr 4ac10 <== NOT EXECUTED } 44f98: 4e5e unlk %fp <== NOT EXECUTED 44f9a: 4e75 rts 00054178 : int killinfo( pid_t pid, int sig, const union sigval *value ) { 54178: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 5417c: 48d7 3c7c moveml %d2-%d6/%a2-%a5,%sp@ <== NOT EXECUTED 54180: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 54184: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED /* * Only supported for the "calling process" (i.e. this node). */ if ( pid != getpid() ) 54188: 4eb9 0005 3d68 jsr 53d68 <== NOT EXECUTED 5418e: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 54192: 670e beqs 541a2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ESRCH ); 54194: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 5419a: 7403 moveq #3,%d2 <== NOT EXECUTED 5419c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5419e: 2082 movel %d2,%a0@ <== NOT EXECUTED 541a0: 6010 bras 541b2 <== NOT EXECUTED /* * Validate the signal passed. */ if ( !sig ) 541a2: 4a83 tstl %d3 <== NOT EXECUTED 541a4: 6612 bnes 541b8 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 541a6: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 541ac: 7216 moveq #22,%d1 <== NOT EXECUTED 541ae: 2040 moveal %d0,%a0 <== NOT EXECUTED 541b0: 2081 movel %d1,%a0@ <== NOT EXECUTED 541b2: 70ff moveq #-1,%d0 <== NOT EXECUTED 541b4: 6000 01f0 braw 543a6 <== NOT EXECUTED if ( !is_valid_signo(sig) ) 541b8: 2403 movel %d3,%d2 <== NOT EXECUTED 541ba: 5382 subql #1,%d2 <== NOT EXECUTED 541bc: 701f moveq #31,%d0 <== NOT EXECUTED 541be: b082 cmpl %d2,%d0 <== NOT EXECUTED 541c0: 65e4 bcss 541a6 <== NOT EXECUTED /* * If the signal is being ignored, then we are out of here. */ if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) { 541c2: 2203 movel %d3,%d1 <== NOT EXECUTED 541c4: 2003 movel %d3,%d0 <== NOT EXECUTED 541c6: e589 lsll #2,%d1 <== NOT EXECUTED 541c8: e988 lsll #4,%d0 <== NOT EXECUTED 541ca: 9081 subl %d1,%d0 <== NOT EXECUTED 541cc: 0680 0005 838e addil #361358,%d0 <== NOT EXECUTED 541d2: 7201 moveq #1,%d1 <== NOT EXECUTED 541d4: 2040 moveal %d0,%a0 <== NOT EXECUTED 541d6: b290 cmpl %a0@,%d1 <== NOT EXECUTED 541d8: 6700 01ca beqw 543a4 <== NOT EXECUTED * P1003.1c/Draft 10, p. 33 says that certain signals should always * be directed to the executing thread such as those caused by hardware * faults. */ if ( (sig == SIGFPE) || (sig == SIGILL) || (sig == SIGSEGV ) ) 541dc: 7008 moveq #8,%d0 <== NOT EXECUTED 541de: b083 cmpl %d3,%d0 <== NOT EXECUTED 541e0: 670e beqs 541f0 <== NOT EXECUTED 541e2: 7204 moveq #4,%d1 <== NOT EXECUTED 541e4: b283 cmpl %d3,%d1 <== NOT EXECUTED 541e6: 6708 beqs 541f0 <== NOT EXECUTED 541e8: 103c 000b moveb #11,%d0 <== NOT EXECUTED 541ec: b083 cmpl %d3,%d0 <== NOT EXECUTED 541ee: 6616 bnes 54206 <== NOT EXECUTED return pthread_kill( pthread_self(), sig ); 541f0: 4eb9 0005 45a8 jsr 545a8 <== NOT EXECUTED 541f6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 541f8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 541fa: 4eb9 0005 44e4 jsr 544e4 <== NOT EXECUTED 54200: 508f addql #8,%sp <== NOT EXECUTED 54202: 6000 01a2 braw 543a6 <== NOT EXECUTED mask = signo_to_mask( sig ); 54206: 7801 moveq #1,%d4 <== NOT EXECUTED * Build up a siginfo structure */ siginfo = &siginfo_struct; siginfo->si_signo = sig; siginfo->si_code = SI_USER; 54208: 7201 moveq #1,%d1 <== NOT EXECUTED */ if ( (sig == SIGFPE) || (sig == SIGILL) || (sig == SIGSEGV ) ) return pthread_kill( pthread_self(), sig ); mask = signo_to_mask( sig ); 5420a: e5ac lsll %d2,%d4 <== NOT EXECUTED /* * Build up a siginfo structure */ siginfo = &siginfo_struct; siginfo->si_signo = sig; 5420c: 2d43 fff4 movel %d3,%fp@(-12) <== NOT EXECUTED siginfo->si_code = SI_USER; 54210: 2d41 fff8 movel %d1,%fp@(-8) <== NOT EXECUTED if ( !value ) { 54214: 4a8a tstl %a2 <== NOT EXECUTED 54216: 6606 bnes 5421e <== NOT EXECUTED siginfo->si_value.sival_int = 0; 54218: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED 5421c: 6004 bras 54222 <== NOT EXECUTED } else { siginfo->si_value = *value; 5421e: 2d52 fffc movel %a2@,%fp@(-4) <== NOT EXECUTED 54222: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 54228: 5280 addql #1,%d0 <== NOT EXECUTED 5422a: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Is the currently executing thread interested? If so then it will * get it an execute it as soon as the dispatcher executes. */ the_thread = _Thread_Executing; 54230: 2279 0005 7f3a moveal 57f3a <_Thread_Executing>,%a1 <== NOT EXECUTED api = the_thread->API_Extensions[ THREAD_API_POSIX ]; if ( _POSIX_signals_Is_interested( api, mask ) ) { 54236: 2069 0110 moveal %a1@(272),%a0 <== NOT EXECUTED 5423a: 2028 00c4 movel %a0@(196),%d0 <== NOT EXECUTED 5423e: 4680 notl %d0 <== NOT EXECUTED 54240: c084 andl %d4,%d0 <== NOT EXECUTED 54242: 6600 00d0 bnew 54314 <== NOT EXECUTED goto process_it; 54246: 223c 0005 8512 movel #361746,%d1 <== NOT EXECUTED index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; index++ ) { the_chain = &_POSIX_signals_Wait_queue.Queues.Priority[ index ]; for ( the_node = the_chain->first ; 5424c: 2441 moveal %d1,%a2 <== NOT EXECUTED 5424e: 205a moveal %a2@+,%a0 <== NOT EXECUTED 54250: 601c bras 5426e <== NOT EXECUTED !_Chain_Is_tail( the_chain, the_node ) ; the_node = the_node->next ) { the_thread = (Thread_Control *)the_node; api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 54252: 2668 0110 moveal %a0@(272),%a3 <== NOT EXECUTED if ((the_thread->Wait.option & mask) || (~api->signals_blocked & mask)) { 54256: 2004 movel %d4,%d0 <== NOT EXECUTED 54258: c0a8 0030 andl %a0@(48),%d0 <== NOT EXECUTED 5425c: 6600 00b6 bnew 54314 <== NOT EXECUTED 54260: 202b 00c4 movel %a3@(196),%d0 <== NOT EXECUTED 54264: 4680 notl %d0 <== NOT EXECUTED 54266: c084 andl %d4,%d0 <== NOT EXECUTED 54268: 6600 00aa bnew 54314 <== NOT EXECUTED the_chain = &_POSIX_signals_Wait_queue.Queues.Priority[ index ]; for ( the_node = the_chain->first ; !_Chain_Is_tail( the_chain, the_node ) ; the_node = the_node->next ) { 5426c: 2050 moveal %a0@,%a0 <== NOT EXECUTED the_thread = (Thread_Control *)the_node; 5426e: 2248 moveal %a0,%a1 <== NOT EXECUTED index++ ) { the_chain = &_POSIX_signals_Wait_queue.Queues.Priority[ index ]; for ( the_node = the_chain->first ; !_Chain_Is_tail( the_chain, the_node ) ; 54270: b5c8 cmpal %a0,%a2 <== NOT EXECUTED 54272: 66de bnes 54252 <== NOT EXECUTED 54274: 0681 0000 000c addil #12,%d1 <== NOT EXECUTED */ /* XXX violation of visibility -- need to define thread queue support */ for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; 5427a: 0c81 0005 8542 cmpil #361794,%d1 <== NOT EXECUTED 54280: 66ca bnes 5424c <== NOT EXECUTED * * + rtems internal threads do not receive signals. */ interested_thread = NULL; interested_priority = PRIORITY_MAXIMUM + 1; 54282: 4280 clrl %d0 <== NOT EXECUTED 54284: 1039 0005 62f2 moveb 562f2 ,%d0 <== NOT EXECUTED 5428a: 2440 moveal %d0,%a2 <== NOT EXECUTED 5428c: 528a addql #1,%a2 <== NOT EXECUTED 5428e: 4bf9 0005 7e3c lea 57e3c <_Objects_Information_table+0x8>,%a5 <== NOT EXECUTED 54294: 4285 clrl %d5 <== NOT EXECUTED the_api++ ) { /* * Thie can occur when no one is interested and ITRON is not configured. */ if ( !_Objects_Information_table[ the_api ] ) 54296: 2055 moveal %a5@,%a0 <== NOT EXECUTED 54298: 4a88 tstl %a0 <== NOT EXECUTED 5429a: 6768 beqs 54304 <== NOT EXECUTED continue; the_info = _Objects_Information_table[ the_api ][ 1 ]; 5429c: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED /* * This cannot happen in the current (as of Dec 2007) implementation * of initialization but at some point, the object information * structure for a particular manager may not be installed. */ if ( !the_info ) 542a0: 4a88 tstl %a0 <== NOT EXECUTED 542a2: 6760 beqs 54304 <== NOT EXECUTED continue; maximum = the_info->maximum; 542a4: 2868 001a moveal %a0@(26),%a4 <== NOT EXECUTED 542a8: 4286 clrl %d6 <== NOT EXECUTED 542aa: 588c addql #4,%a4 <== NOT EXECUTED 542ac: 3c28 000e movew %a0@(14),%d6 <== NOT EXECUTED 542b0: 367c 0001 moveaw #1,%a3 <== NOT EXECUTED 542b4: 604a bras 54300 <== NOT EXECUTED object_table = the_info->local_table; for ( index = 1 ; index <= maximum ; index++ ) { the_thread = (Thread_Control *) object_table[ index ]; 542b6: 2254 moveal %a4@,%a1 <== NOT EXECUTED if ( !the_thread ) 542b8: 4a89 tstl %a1 <== NOT EXECUTED 542ba: 6738 beqs 542f4 <== NOT EXECUTED /* * If this thread is of lower priority than the interested thread, * go on to the next thread. */ if ( the_thread->current_priority > interested_priority ) 542bc: 2429 0014 movel %a1@(20),%d2 <== NOT EXECUTED 542c0: b5c2 cmpal %d2,%a2 <== NOT EXECUTED 542c2: 6530 bcss 542f4 <== NOT EXECUTED /* * If this thread is not interested, then go on to the next thread. */ api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 542c4: 2069 0110 moveal %a1@(272),%a0 <== NOT EXECUTED if ( !api || !_POSIX_signals_Is_interested( api, mask ) ) 542c8: 4a88 tstl %a0 <== NOT EXECUTED 542ca: 6728 beqs 542f4 <== NOT EXECUTED 542cc: 2028 00c4 movel %a0@(196),%d0 <== NOT EXECUTED 542d0: 4680 notl %d0 <== NOT EXECUTED 542d2: c084 andl %d4,%d0 <== NOT EXECUTED 542d4: 671e beqs 542f4 <== NOT EXECUTED * Now we know the thread under connsideration is interested. * If the thread under consideration is of higher priority, then * it becomes the interested thread. */ if ( the_thread->current_priority < interested_priority ) { 542d6: b5c2 cmpal %d2,%a2 <== NOT EXECUTED 542d8: 621e bhis 542f8 <== NOT EXECUTED * Now the thread and the interested thread have the same priority. * If the interested thread is ready, then we don't need to send it * to a blocked thread. */ if ( _States_Is_ready( interested_thread->current_state ) ) 542da: 2045 moveal %d5,%a0 <== NOT EXECUTED 542dc: 2228 0010 movel %a0@(16),%d1 <== NOT EXECUTED 542e0: 6712 beqs 542f4 <== NOT EXECUTED * Now the interested thread is blocked. * If the thread we are considering is not, the it becomes the * interested thread. */ if ( _States_Is_ready( the_thread->current_state ) ) { 542e2: 2029 0010 movel %a1@(16),%d0 <== NOT EXECUTED 542e6: 6710 beqs 542f8 <== NOT EXECUTED * Now we know both threads are blocked. * If the interested thread is interruptible, then just use it. */ /* XXX need a new states macro */ if ( interested_thread->current_state & STATES_INTERRUPTIBLE_BY_SIGNAL ) 542e8: 0801 001c btst #28,%d1 <== NOT EXECUTED 542ec: 6606 bnes 542f4 <== NOT EXECUTED * If the thread under consideration is interruptible by a signal, * then it becomes the interested thread. */ /* XXX need a new states macro */ if ( the_thread->current_state & STATES_INTERRUPTIBLE_BY_SIGNAL ) { 542ee: 0800 001c btst #28,%d0 <== NOT EXECUTED 542f2: 6604 bnes 542f8 <== NOT EXECUTED 542f4: 240a movel %a2,%d2 <== NOT EXECUTED 542f6: 6002 bras 542fa <== NOT EXECUTED 542f8: 2a09 movel %a1,%d5 <== NOT EXECUTED continue; maximum = the_info->maximum; object_table = the_info->local_table; for ( index = 1 ; index <= maximum ; index++ ) { 542fa: 528b addql #1,%a3 <== NOT EXECUTED 542fc: 588c addql #4,%a4 <== NOT EXECUTED 542fe: 2442 moveal %d2,%a2 <== NOT EXECUTED 54300: bc8b cmpl %a3,%d6 <== NOT EXECUTED 54302: 64b2 bccs 542b6 <== NOT EXECUTED 54304: 588d addql #4,%a5 <== NOT EXECUTED interested_thread = NULL; interested_priority = PRIORITY_MAXIMUM + 1; for ( the_api = OBJECTS_CLASSIC_API; the_api <= OBJECTS_APIS_LAST; 54306: bbfc 0005 7e48 cmpal #360008,%a5 <== NOT EXECUTED 5430c: 6688 bnes 54296 <== NOT EXECUTED interested_priority = the_thread->current_priority; } } } if ( interested_thread ) { 5430e: 4a85 tstl %d5 <== NOT EXECUTED 54310: 6720 beqs 54332 <== NOT EXECUTED 54312: 2245 moveal %d5,%a1 <== NOT EXECUTED * evaluate the signals pending. */ process_it: the_thread->do_post_task_switch_extension = true; 54314: 7001 moveq #1,%d0 <== NOT EXECUTED 54316: 1340 0075 moveb %d0,%a1@(117) <== NOT EXECUTED /* * Returns TRUE if the signal was synchronously given to a thread * blocked waiting for the signal. */ if ( _POSIX_signals_Unblock_thread( the_thread, sig, siginfo ) ) { 5431a: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 5431e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 54320: 2f09 movel %a1,%sp@- <== NOT EXECUTED 54322: 4eb9 0005 43e0 jsr 543e0 <_POSIX_signals_Unblock_thread> <== NOT EXECUTED 54328: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5432e: 4a00 tstb %d0 <== NOT EXECUTED 54330: 666c bnes 5439e <== NOT EXECUTED /* * We may have woken up a thread but we definitely need to post the * signal to the process wide information set. */ _POSIX_signals_Set_process_signals( mask ); 54332: 2f04 movel %d4,%sp@- <== NOT EXECUTED if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) { 54334: 2403 movel %d3,%d2 <== NOT EXECUTED 54336: e98a lsll #4,%d2 <== NOT EXECUTED /* * We may have woken up a thread but we definitely need to post the * signal to the process wide information set. */ _POSIX_signals_Set_process_signals( mask ); 54338: 4eb9 0005 43b0 jsr 543b0 <_POSIX_signals_Set_process_signals> <== NOT EXECUTED if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) { 5433e: e58b lsll #2,%d3 <== NOT EXECUTED 54340: 9483 subl %d3,%d2 <== NOT EXECUTED 54342: 588f addql #4,%sp <== NOT EXECUTED 54344: 41f9 0005 8386 lea 58386 <_POSIX_signals_Vectors>,%a0 <== NOT EXECUTED 5434a: 7202 moveq #2,%d1 <== NOT EXECUTED 5434c: b2b0 2800 cmpl %a0@(00000000,%d2:l),%d1 <== NOT EXECUTED 54350: 664c bnes 5439e <== NOT EXECUTED psiginfo = (POSIX_signals_Siginfo_node *) 54352: 4879 0005 8506 pea 58506 <_POSIX_signals_Inactive_siginfo> <== NOT EXECUTED 54358: 4eb9 0004 a1ec jsr 4a1ec <_Chain_Get> <== NOT EXECUTED _Chain_Get( &_POSIX_signals_Inactive_siginfo ); if ( !psiginfo ) { 5435e: 588f addql #4,%sp <== NOT EXECUTED _POSIX_signals_Set_process_signals( mask ); if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) { psiginfo = (POSIX_signals_Siginfo_node *) 54360: 2440 moveal %d0,%a2 <== NOT EXECUTED _Chain_Get( &_POSIX_signals_Inactive_siginfo ); if ( !psiginfo ) { 54362: 4a80 tstl %d0 <== NOT EXECUTED 54364: 6610 bnes 54376 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EAGAIN ); 54366: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 5436c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5436e: 700b moveq #11,%d0 <== NOT EXECUTED 54370: 2080 movel %d0,%a0@ <== NOT EXECUTED 54372: 6000 fe3e braw 541b2 <== NOT EXECUTED } psiginfo->Info = *siginfo; 54376: 4878 000c pea c <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 5437a: 0682 0005 8556 addil #361814,%d2 <== NOT EXECUTED _Chain_Get( &_POSIX_signals_Inactive_siginfo ); if ( !psiginfo ) { rtems_set_errno_and_return_minus_one( EAGAIN ); } psiginfo->Info = *siginfo; 54380: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 54384: 486a 0008 pea %a2@(8) <== NOT EXECUTED 54388: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 5438e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 54390: 2f02 movel %d2,%sp@- <== NOT EXECUTED 54392: 4eb9 0004 5964 jsr 45964 <_Chain_Append> <== NOT EXECUTED 54398: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED } _Thread_Enable_dispatch(); 5439e: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 543a4: 4280 clrl %d0 <== NOT EXECUTED return 0; } 543a6: 4cee 3c7c ffd0 moveml %fp@(-48),%d2-%d6/%a2-%a5 <== NOT EXECUTED 543ac: 4e5e unlk %fp <== NOT EXECUTED 543ae: 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 7eac jsr 47eac <_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 bfbc lea 4bfbc ,%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 5067 movel #348263,%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 6824 movel 56824 <_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 6350 cmpil #353104,%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 beb2 jsr 4beb2 <_fwalk> <== NOT EXECUTED #if REENT_MALLOCED free(ptr); #else _Workspace_Free(ptr); 42546: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42548: 4eb9 0004 7e94 jsr 47e94 <_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 6824 clrl 56824 <_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 6350 movel #353104,%d0 <== NOT EXECUTED 424f8: 23c0 0005 6824 movel %d0,56824 <_impure_ptr> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Set_libc_reent ( struct _reent **libc_reent ) { _Thread_libc_reent = libc_reent; 424fe: 203c 0005 6824 movel #354340,%d0 <== NOT EXECUTED 42504: 23c0 0005 7f06 movel %d0,57f06 <_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 800e cmpl 5800e <_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 6350 movel #353104,%d0 <== NOT EXECUTED 42476: b0b9 0005 6824 cmpl 56824 <_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 c780 jsr 4c780 <_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 6350 movel #353104,%d0 <== NOT EXECUTED 4248e: 23c0 0005 6824 movel %d0,56824 <_impure_ptr> <== NOT EXECUTED * * Should this be changed to do *all* file streams? * _fwalk (_REENT, fclose); */ fclose (stdin); 42494: 2079 0005 6824 moveal 56824 <_impure_ptr>,%a0 <== NOT EXECUTED 4249a: 45f9 0004 b8e2 lea 4b8e2 ,%a2 <== NOT EXECUTED 424a0: 2f28 0004 movel %a0@(4),%sp@- <== NOT EXECUTED 424a4: 4e92 jsr %a2@ <== NOT EXECUTED fclose (stdout); 424a6: 2079 0005 6824 moveal 56824 <_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 6824 moveal 56824 <_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 0005bdc4 : int link( const char *existing, const char *new ) { 5bdc4: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 5bdc8: 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 ); 5bdcc: 4878 0001 pea 1 <== NOT EXECUTED int link( const char *existing, const char *new ) { 5bdd0: 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 ); 5bdd4: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5bdd8: 42a7 clrl %sp@- <== NOT EXECUTED 5bdda: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5bdde: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( result != 0 ) 5bde4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5bdea: 4a80 tstl %d0 <== NOT EXECUTED 5bdec: 6600 0092 bnew 5be80 <== NOT EXECUTED /* * Get the parent of the node we are creating. */ rtems_filesystem_get_start_loc( new, &i, &parent_loc ); 5bdf0: 1212 moveb %a2@,%d1 <== NOT EXECUTED 5bdf2: 1001 moveb %d1,%d0 <== NOT EXECUTED 5bdf4: 49c0 extbl %d0 <== NOT EXECUTED 5bdf6: 742f moveq #47,%d2 <== NOT EXECUTED 5bdf8: b480 cmpl %d0,%d2 <== NOT EXECUTED 5bdfa: 670c beqs 5be08 <== NOT EXECUTED 5bdfc: 143c 005c moveb #92,%d2 <== NOT EXECUTED 5be00: b480 cmpl %d0,%d2 <== NOT EXECUTED 5be02: 6704 beqs 5be08 <== NOT EXECUTED 5be04: 4a01 tstb %d1 <== NOT EXECUTED 5be06: 6626 bnes 5be2e <== NOT EXECUTED 5be08: 4878 0010 pea 10 <== NOT EXECUTED 5be0c: 2039 0007 e600 movel 7e600 ,%d0 <== NOT EXECUTED 5be12: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 5be18: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5be1a: 486e ffdc pea %fp@(-36) <== NOT EXECUTED 5be1e: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED 5be24: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5be2a: 7001 moveq #1,%d0 <== NOT EXECUTED 5be2c: 6020 bras 5be4e <== NOT EXECUTED 5be2e: 4878 0010 pea 10 <== NOT EXECUTED 5be32: 2439 0007 e600 movel 7e600 ,%d2 <== NOT EXECUTED 5be38: 5882 addql #4,%d2 <== NOT EXECUTED 5be3a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5be3c: 486e ffdc pea %fp@(-36) <== NOT EXECUTED 5be40: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED 5be46: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5be4c: 4280 clrl %d0 <== NOT EXECUTED if ( !parent_loc.ops->evalformake_h ) { 5be4e: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 5be52: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 5be56: 4a88 tstl %a0 <== NOT EXECUTED 5be58: 662c bnes 5be86 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5be5a: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5be5e: 4a88 tstl %a0 <== NOT EXECUTED 5be60: 6710 beqs 5be72 <== NOT EXECUTED 5be62: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5be66: 4a88 tstl %a0 <== NOT EXECUTED 5be68: 6708 beqs 5be72 <== NOT EXECUTED 5be6a: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5be6e: 4e90 jsr %a0@ <== NOT EXECUTED 5be70: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5be72: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5be78: 2040 moveal %d0,%a0 <== NOT EXECUTED 5be7a: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5be80: 74ff moveq #-1,%d2 <== NOT EXECUTED 5be82: 6000 0116 braw 5bf9a <== NOT EXECUTED } result = (*parent_loc.ops->evalformake_h)( &new[i], &parent_loc, &name_start ); 5be86: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5be8a: 280e movel %fp,%d4 <== NOT EXECUTED 5be8c: 0684 ffff ffdc addil #-36,%d4 <== NOT EXECUTED 5be92: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5be94: 4872 0800 pea %a2@(00000000,%d0:l) <== NOT EXECUTED 5be98: 4e90 jsr %a0@ <== NOT EXECUTED if ( result != 0 ) { 5be9a: 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 ); 5bea0: 2400 movel %d0,%d2 <== NOT EXECUTED if ( result != 0 ) { 5bea2: 6724 beqs 5bec8 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5bea4: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5bea8: 4a88 tstl %a0 <== NOT EXECUTED 5beaa: 6710 beqs 5bebc <== NOT EXECUTED 5beac: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5beb0: 4a88 tstl %a0 <== NOT EXECUTED 5beb2: 6708 beqs 5bebc <== NOT EXECUTED 5beb4: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5beb8: 4e90 jsr %a0@ <== NOT EXECUTED 5beba: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( result ); 5bebc: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5bec2: 2040 moveal %d0,%a0 <== NOT EXECUTED 5bec4: 2082 movel %d2,%a0@ <== NOT EXECUTED 5bec6: 60b8 bras 5be80 <== 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 ) { 5bec8: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 5becc: b0ae ffe8 cmpl %fp@(-24),%d0 <== NOT EXECUTED 5bed0: 6740 beqs 5bf12 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5bed2: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5bed6: 4a88 tstl %a0 <== NOT EXECUTED 5bed8: 6710 beqs 5beea <== NOT EXECUTED 5beda: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5bede: 4a88 tstl %a0 <== NOT EXECUTED 5bee0: 6708 beqs 5beea <== NOT EXECUTED 5bee2: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5bee6: 4e90 jsr %a0@ <== NOT EXECUTED 5bee8: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &parent_loc ); 5beea: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 5beee: 4a88 tstl %a0 <== NOT EXECUTED 5bef0: 6710 beqs 5bf02 <== NOT EXECUTED 5bef2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5bef6: 4a88 tstl %a0 <== NOT EXECUTED 5bef8: 6708 beqs 5bf02 <== NOT EXECUTED 5befa: 486e ffdc pea %fp@(-36) <== NOT EXECUTED 5befe: 4e90 jsr %a0@ <== NOT EXECUTED 5bf00: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EXDEV ); 5bf02: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5bf08: 2040 moveal %d0,%a0 <== NOT EXECUTED 5bf0a: 7012 moveq #18,%d0 <== NOT EXECUTED 5bf0c: 2080 movel %d0,%a0@ <== NOT EXECUTED 5bf0e: 6000 ff70 braw 5be80 <== NOT EXECUTED } if ( !parent_loc.ops->link_h ) { 5bf12: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 5bf16: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED 5bf1a: 4a88 tstl %a0 <== NOT EXECUTED 5bf1c: 6634 bnes 5bf52 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5bf1e: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5bf22: 4a88 tstl %a0 <== NOT EXECUTED 5bf24: 6710 beqs 5bf36 <== NOT EXECUTED 5bf26: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5bf2a: 4a88 tstl %a0 <== NOT EXECUTED 5bf2c: 6708 beqs 5bf36 <== NOT EXECUTED 5bf2e: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5bf32: 4e90 jsr %a0@ <== NOT EXECUTED 5bf34: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &parent_loc ); 5bf36: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 5bf3a: 4a88 tstl %a0 <== NOT EXECUTED 5bf3c: 6700 ff34 beqw 5be72 <== NOT EXECUTED 5bf40: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5bf44: 4a88 tstl %a0 <== NOT EXECUTED 5bf46: 6700 ff2a beqw 5be72 <== NOT EXECUTED 5bf4a: 486e ffdc pea %fp@(-36) <== NOT EXECUTED 5bf4e: 6000 ff1e braw 5be6e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*parent_loc.ops->link_h)( &existing_loc, &parent_loc, name_start ); 5bf52: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 5bf56: 260e movel %fp,%d3 <== NOT EXECUTED 5bf58: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5bf5a: 0683 ffff ffec addil #-20,%d3 <== NOT EXECUTED 5bf60: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5bf62: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5bf64: 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 ); 5bf68: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 5bf6a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5bf70: 4a88 tstl %a0 <== NOT EXECUTED 5bf72: 670e beqs 5bf82 <== NOT EXECUTED 5bf74: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5bf78: 4a88 tstl %a0 <== NOT EXECUTED 5bf7a: 6706 beqs 5bf82 <== NOT EXECUTED 5bf7c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5bf7e: 4e90 jsr %a0@ <== NOT EXECUTED 5bf80: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &parent_loc ); 5bf82: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 5bf86: 4a88 tstl %a0 <== NOT EXECUTED 5bf88: 6710 beqs 5bf9a <== NOT EXECUTED 5bf8a: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5bf8e: 4a88 tstl %a0 <== NOT EXECUTED 5bf90: 6708 beqs 5bf9a <== NOT EXECUTED 5bf92: 486e ffdc pea %fp@(-36) <== NOT EXECUTED 5bf96: 4e90 jsr %a0@ <== NOT EXECUTED 5bf98: 588f addql #4,%sp <== NOT EXECUTED return result; } 5bf9a: 2002 movel %d2,%d0 <== NOT EXECUTED 5bf9c: 4cee 041c ffcc moveml %fp@(-52),%d2-%d4/%a2 <== NOT EXECUTED 5bfa2: 4e5e unlk %fp <== NOT EXECUTED 5bfa4: 4e75 rts 00044eb4 : int mode, struct aiocb * const list[], int nent, struct sigevent *sig ) { 44eb4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44eb8: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44ebe: 2040 moveal %d0,%a0 <== NOT EXECUTED 44ec0: 7058 moveq #88,%d0 <== NOT EXECUTED 44ec2: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44ec4: 4e5e unlk %fp <== NOT EXECUTED 44ec6: 70ff moveq #-1,%d0 <== NOT EXECUTED 44ec8: 4e75 rts <== NOT EXECUTED ... 00053db4 : off_t lseek( int fd, off_t offset, int whence ) { 53db4: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 53db8: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 53dbc: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 53dc0: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 53dc4: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_libio_t *iop; off_t old_offset; off_t status; rtems_libio_check_fd( fd ); 53dc8: b4b9 0005 6248 cmpl 56248 ,%d2 <== NOT EXECUTED 53dce: 6422 bccs 53df2 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 53dd0: 2002 movel %d2,%d0 <== NOT EXECUTED 53dd2: 2202 movel %d2,%d1 <== NOT EXECUTED 53dd4: e588 lsll #2,%d0 <== NOT EXECUTED 53dd6: e989 lsll #4,%d1 <== NOT EXECUTED 53dd8: 9280 subl %d0,%d1 <== NOT EXECUTED 53dda: 2479 0005 7d14 moveal 57d14 ,%a2 <== NOT EXECUTED 53de0: d282 addl %d2,%d1 <== NOT EXECUTED 53de2: e589 lsll #2,%d1 <== NOT EXECUTED 53de4: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_is_open(iop); 53de6: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 53dea: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 53df0: 660e bnes 53e00 <== NOT EXECUTED 53df2: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 53df8: 7209 moveq #9,%d1 <== NOT EXECUTED 53dfa: 2040 moveal %d0,%a0 <== NOT EXECUTED 53dfc: 2081 movel %d1,%a0@ <== NOT EXECUTED 53dfe: 6056 bras 53e56 <== NOT EXECUTED /* * Check as many errors as possible before touching iop->offset. */ if ( !iop->handlers->lseek_h ) 53e00: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 53e04: 4aa8 0014 tstl %a0@(20) <== NOT EXECUTED 53e08: 6610 bnes 53e1a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 53e0a: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 53e10: 2040 moveal %d0,%a0 <== NOT EXECUTED 53e12: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 53e18: 603c bras 53e56 <== NOT EXECUTED /* * Now process the lseek(). */ old_offset = iop->offset; 53e1a: 242a 0008 movel %a2@(8),%d2 <== NOT EXECUTED switch ( whence ) { 53e1e: 7001 moveq #1,%d0 <== NOT EXECUTED 53e20: b089 cmpl %a1,%d0 <== NOT EXECUTED 53e22: 6710 beqs 53e34 <== NOT EXECUTED 53e24: 7202 moveq #2,%d1 <== NOT EXECUTED 53e26: b289 cmpl %a1,%d1 <== NOT EXECUTED 53e28: 6714 beqs 53e3e <== NOT EXECUTED 53e2a: 4a89 tstl %a1 <== NOT EXECUTED 53e2c: 661c bnes 53e4a <== NOT EXECUTED case SEEK_SET: iop->offset = offset; 53e2e: 2543 0008 movel %d3,%a2@(8) <== NOT EXECUTED 53e32: 6026 bras 53e5a <== NOT EXECUTED break; case SEEK_CUR: iop->offset += offset; 53e34: 2003 movel %d3,%d0 <== NOT EXECUTED 53e36: d082 addl %d2,%d0 <== NOT EXECUTED 53e38: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED 53e3c: 601c bras 53e5a <== NOT EXECUTED break; case SEEK_END: iop->offset = iop->size + offset; 53e3e: 2203 movel %d3,%d1 <== NOT EXECUTED 53e40: d2aa 0004 addl %a2@(4),%d1 <== NOT EXECUTED 53e44: 2541 0008 movel %d1,%a2@(8) <== NOT EXECUTED 53e48: 6010 bras 53e5a <== NOT EXECUTED break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 53e4a: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 53e50: 2040 moveal %d0,%a0 <== NOT EXECUTED 53e52: 7016 moveq #22,%d0 <== NOT EXECUTED 53e54: 2080 movel %d0,%a0@ <== NOT EXECUTED 53e56: 70ff moveq #-1,%d0 <== NOT EXECUTED 53e58: 6020 bras 53e7a <== NOT EXECUTED /* * At this time, handlers assume iop->offset has the desired * new offset. */ status = (*iop->handlers->lseek_h)( iop, offset, whence ); 53e5a: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 53e5e: 2f09 movel %a1,%sp@- <== NOT EXECUTED 53e60: 2f03 movel %d3,%sp@- <== NOT EXECUTED 53e62: 2f0a movel %a2,%sp@- <== NOT EXECUTED 53e64: 2068 0014 moveal %a0@(20),%a0 <== NOT EXECUTED 53e68: 4e90 jsr %a0@ <== NOT EXECUTED if ( status == (off_t) -1 ) 53e6a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 53e70: 72ff moveq #-1,%d1 <== NOT EXECUTED 53e72: b280 cmpl %d0,%d1 <== NOT EXECUTED 53e74: 6604 bnes 53e7a <== NOT EXECUTED iop->offset = old_offset; 53e76: 2542 0008 movel %d2,%a2@(8) <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 53e7a: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 53e80: 4e5e unlk %fp <== NOT EXECUTED 53e82: 4e75 rts 0005c0b4 : int _STAT_NAME( const char *path, struct stat *buf ) { 5c0b4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5c0b8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c0ba: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c0bc: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !buf ) 5c0c0: 660e bnes 5c0d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 5c0c2: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5c0c8: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c0ca: 700e moveq #14,%d0 <== NOT EXECUTED 5c0cc: 2080 movel %d0,%a0@ <== NOT EXECUTED 5c0ce: 6050 bras 5c120 <== NOT EXECUTED status = rtems_filesystem_evaluate_path( path, 0, &loc, _STAT_FOLLOW_LINKS ); 5c0d0: 42a7 clrl %sp@- <== NOT EXECUTED 5c0d2: 260e movel %fp,%d3 <== NOT EXECUTED 5c0d4: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 5c0da: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c0dc: 42a7 clrl %sp@- <== NOT EXECUTED 5c0de: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c0e2: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( status != 0 ) 5c0e8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5c0ee: 4a80 tstl %d0 <== NOT EXECUTED 5c0f0: 662e bnes 5c120 <== NOT EXECUTED return -1; if ( !loc.handlers->fstat_h ){ 5c0f2: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5c0f6: 4aa8 0018 tstl %a0@(24) <== NOT EXECUTED 5c0fa: 6628 bnes 5c124 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c0fc: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5c100: 4a88 tstl %a0 <== NOT EXECUTED 5c102: 670e beqs 5c112 <== NOT EXECUTED 5c104: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c108: 4a88 tstl %a0 <== NOT EXECUTED 5c10a: 6706 beqs 5c112 <== NOT EXECUTED 5c10c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c10e: 4e90 jsr %a0@ <== NOT EXECUTED 5c110: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5c112: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5c118: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c11a: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5c120: 74ff moveq #-1,%d2 <== NOT EXECUTED 5c122: 603a bras 5c15e <== NOT EXECUTED /* * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( buf, 0, sizeof(struct stat) ); 5c124: 4878 004a pea 4a <== NOT EXECUTED 5c128: 42a7 clrl %sp@- <== NOT EXECUTED 5c12a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c12c: 4eb9 0006 b05c jsr 6b05c <== NOT EXECUTED status = (*loc.handlers->fstat_h)( &loc, buf ); 5c132: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c134: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5c138: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c13a: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 5c13e: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c140: 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 ); 5c144: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c146: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5c14c: 4a88 tstl %a0 <== NOT EXECUTED 5c14e: 670e beqs 5c15e <== NOT EXECUTED 5c150: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c154: 4a88 tstl %a0 <== NOT EXECUTED 5c156: 6706 beqs 5c15e <== NOT EXECUTED 5c158: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c15a: 4e90 jsr %a0@ <== NOT EXECUTED 5c15c: 588f addql #4,%sp <== NOT EXECUTED return status; } 5c15e: 2002 movel %d2,%d0 <== NOT EXECUTED 5c160: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 5c164: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 5c168: 4e5e unlk %fp <== NOT EXECUTED 5c16a: 4e75 rts 000493a0 : size_t size ) { void *return_this; MSBUMP(malloc_calls, 1); 493a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 493a4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 493a6: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 493aa: 52b9 0005 7d7c addql #1,57d7c <== NOT EXECUTED 493b0: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * If some free's have been deferred, then do them now. */ malloc_deferred_frees_process(); 493b2: 4eb9 0004 936a jsr 4936a <== NOT EXECUTED /* * Validate the parameters */ if ( !size ) 493b8: 4a83 tstl %d3 <== NOT EXECUTED 493ba: 6778 beqs 49434 <== 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()) && 493bc: 7003 moveq #3,%d0 <== NOT EXECUTED 493be: b0b9 0005 800e cmpl 5800e <_System_state_Current>,%d0 <== NOT EXECUTED 493c4: 660a bnes 493d0 <== NOT EXECUTED 493c6: 4eb9 0004 9310 jsr 49310 <== NOT EXECUTED 493cc: 4a00 tstb %d0 <== NOT EXECUTED 493ce: 6764 beqs 49434 <== 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 ); 493d0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 493d2: 4879 0005 7d20 pea 57d20 <== NOT EXECUTED 493d8: 4eb9 0004 a5f4 jsr 4a5f4 <_Protected_heap_Allocate> <== NOT EXECUTED if ( !return_this ) { 493de: 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 ); 493e0: 2400 movel %d0,%d2 <== NOT EXECUTED if ( !return_this ) { 493e2: 6628 bnes 4940c <== NOT EXECUTED if (rtems_malloc_sbrk_helpers) 493e4: 2079 0005 6cc8 moveal 56cc8 ,%a0 <== NOT EXECUTED 493ea: 4a88 tstl %a0 <== NOT EXECUTED 493ec: 670e beqs 493fc <== NOT EXECUTED return_this = (*rtems_malloc_sbrk_helpers->extend)( size ); 493ee: 2f03 movel %d3,%sp@- <== NOT EXECUTED 493f0: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 493f4: 4e90 jsr %a0@ <== NOT EXECUTED if ( !return_this ) { 493f6: 588f addql #4,%sp <== NOT EXECUTED 493f8: 4a80 tstl %d0 <== NOT EXECUTED 493fa: 660e bnes 4940a <== NOT EXECUTED errno = ENOMEM; 493fc: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 49402: 2040 moveal %d0,%a0 <== NOT EXECUTED 49404: 700c moveq #12,%d0 <== NOT EXECUTED 49406: 2080 movel %d0,%a0@ <== NOT EXECUTED 49408: 602c bras 49436 <== NOT EXECUTED return (void *) 0; 4940a: 2400 movel %d0,%d2 <== NOT EXECUTED } /* * If the user wants us to dirty the allocated memory, then do it. */ if ( rtems_malloc_dirty_helper ) 4940c: 2079 0005 6ccc moveal 56ccc ,%a0 <== NOT EXECUTED 49412: 4a88 tstl %a0 <== NOT EXECUTED 49414: 6708 beqs 4941e <== NOT EXECUTED (*rtems_malloc_dirty_helper)( return_this, size ); 49416: 2f03 movel %d3,%sp@- <== NOT EXECUTED 49418: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4941a: 4e90 jsr %a0@ <== NOT EXECUTED 4941c: 508f addql #8,%sp <== NOT EXECUTED /* * If configured, update the statistics */ if ( rtems_malloc_statistics_helpers ) 4941e: 2079 0005 6cc4 moveal 56cc4 ,%a0 <== NOT EXECUTED 49424: 4a88 tstl %a0 <== NOT EXECUTED 49426: 670e beqs 49436 <== NOT EXECUTED (*rtems_malloc_statistics_helpers->at_malloc)(return_this); 49428: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4942a: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 4942e: 4e90 jsr %a0@ <== NOT EXECUTED 49430: 588f addql #4,%sp <== NOT EXECUTED 49432: 6002 bras 49436 <== NOT EXECUTED 49434: 4282 clrl %d2 <== NOT EXECUTED if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif return return_this; } 49436: 2002 movel %d2,%d0 <== NOT EXECUTED 49438: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4943c: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 49440: 4e5e unlk %fp <== NOT EXECUTED 49442: 4e75 rts 00049350 : } void malloc_deferred_free( void *pointer ) { 49350: 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 ); 49354: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49358: 4879 0005 836e pea 5836e <== NOT EXECUTED 4935e: 4eb9 0004 5964 jsr 45964 <_Chain_Append> <== NOT EXECUTED 49364: 508f addql #8,%sp <== NOT EXECUTED rtems_chain_append(&RTEMS_Malloc_GC_list, (rtems_chain_node *)pointer); } 49366: 4e5e unlk %fp <== NOT EXECUTED 49368: 4e75 rts 00049330 : void malloc_deferred_frees_initialize(void) { 49330: 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); 49334: 41f9 0005 836e lea 5836e ,%a0 <== NOT EXECUTED rtems_chain_initialize_empty(&RTEMS_Malloc_GC_list); } 4933a: 4e5e unlk %fp <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4933c: 23c8 0005 8376 movel %a0,58376 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 49342: 20bc 0005 8372 movel #361330,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 49348: 42b9 0005 8372 clrl 58372 <== NOT EXECUTED 4934e: 4e75 rts 0004936a : { rtems_chain_initialize_empty(&RTEMS_Malloc_GC_list); } void malloc_deferred_frees_process(void) { 4936a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4936e: 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 ); 49370: 47f9 0004 a1ec lea 4a1ec <_Chain_Get>,%a3 <== NOT EXECUTED 49376: 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); 49378: 45f9 0004 8e8c lea 48e8c ,%a2 <== NOT EXECUTED 4937e: 6006 bras 49386 <== NOT EXECUTED 49380: 2f00 movel %d0,%sp@- <== NOT EXECUTED 49382: 4e92 jsr %a2@ <== NOT EXECUTED 49384: 588f addql #4,%sp <== NOT EXECUTED 49386: 4879 0005 836e pea 5836e <== NOT EXECUTED 4938c: 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) 4938e: 588f addql #4,%sp <== NOT EXECUTED 49390: 4a80 tstl %d0 <== NOT EXECUTED 49392: 66ec bnes 49380 <== NOT EXECUTED free(to_be_freed); } 49394: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 49398: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4939c: 4e5e unlk %fp <== NOT EXECUTED 4939e: 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 3750 pea 93750 <== NOT EXECUTED 45842: 4eb9 0004 a514 jsr 4a514 <_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 0005c188 : */ int malloc_info( Heap_Information_block *the_info ) { 5c188: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5c18c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !the_info ) 5c190: 6604 bnes 5c196 <== NOT EXECUTED 5c192: 70ff moveq #-1,%d0 <== NOT EXECUTED 5c194: 6012 bras 5c1a8 <== NOT EXECUTED return -1; _Protected_heap_Get_information( &RTEMS_Malloc_Heap, the_info ); 5c196: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c198: 4879 0009 3750 pea 93750 <== NOT EXECUTED 5c19e: 4eb9 0005 e704 jsr 5e704 <_Protected_heap_Get_information> <== NOT EXECUTED 5c1a4: 508f addql #8,%sp <== NOT EXECUTED 5c1a6: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5c1a8: 4e5e unlk %fp <== NOT EXECUTED 5c1aa: 4e75 rts 00049310 : rtems_chain_control RTEMS_Malloc_GC_list; bool malloc_is_system_state_OK(void) { if ( _Thread_Dispatch_disable_level > 0 ) 49310: 2039 0005 7e7c movel 57e7c <_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) { 49316: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( _Thread_Dispatch_disable_level > 0 ) 4931a: 4a80 tstl %d0 <== NOT EXECUTED 4931c: 6704 beqs 49322 <== NOT EXECUTED 4931e: 4200 clrb %d0 <== NOT EXECUTED 49320: 600a bras 4932c <== NOT EXECUTED return false; if ( _ISR_Nest_level > 0 ) 49322: 2039 0005 7f1a movel 57f1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED 49328: 57c0 seq %d0 <== NOT EXECUTED 4932a: 4480 negl %d0 <== NOT EXECUTED return false; return true; } 4932c: 4e5e unlk %fp <== NOT EXECUTED 4932e: 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 524c pea 4524c <== 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 0005c1ac : void malloc_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 5c1ac: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5c1b0: 48d7 04fc moveml %d2-%d7/%a2,%sp@ <== NOT EXECUTED s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; (*print)( 5c1b4: 2c39 0009 37c0 movel 937c0 ,%d6 <== NOT EXECUTED 5c1ba: 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; 5c1bc: 2a39 0009 37c8 movel 937c8 ,%d5 <== NOT EXECUTED 5c1c2: 2639 0009 37cc movel 937cc ,%d3 <== NOT EXECUTED (*print)( 5c1c8: 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; 5c1ca: 2239 0009 37d0 movel 937d0 ,%d1 <== NOT EXECUTED (*print)( 5c1d0: 2240 moveal %d0,%a1 <== NOT EXECUTED 5c1d2: 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; 5c1d4: 2e05 movel %d5,%d7 <== NOT EXECUTED (*print)( 5c1d6: 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; 5c1d8: 9e81 subl %d1,%d7 <== NOT EXECUTED 5c1da: 2839 0009 37c4 movel 937c4 ,%d4 <== NOT EXECUTED (*print)( 5c1e0: 103c 000a moveb #10,%d0 <== NOT EXECUTED 5c1e4: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 5c1e6: 103c 0016 moveb #22,%d0 <== NOT EXECUTED 5c1ea: 8681 orl %d1,%d3 <== NOT EXECUTED 5c1ec: e1ac lsll %d0,%d4 <== NOT EXECUTED 5c1ee: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c1f0: 103c 000a moveb #10,%d0 <== NOT EXECUTED 5c1f4: e0ad lsrl %d0,%d5 <== NOT EXECUTED 5c1f6: 2439 0009 37a8 movel 937a8 ,%d2 <== NOT EXECUTED 5c1fc: 41f1 6c00 lea %a1@(00000000,%d6:l:4),%a0 <== NOT EXECUTED 5c200: 8885 orl %d5,%d4 <== NOT EXECUTED 5c202: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5c204: 41f0 8c00 lea %a0@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 5c208: 2008 movel %a0,%d0 <== NOT EXECUTED 5c20a: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 5c20e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c210: 700a moveq #10,%d0 <== NOT EXECUTED 5c212: e0ae lsrl %d0,%d6 <== NOT EXECUTED 5c214: 2007 movel %d7,%d0 <== NOT EXECUTED 5c216: e988 lsll #4,%d0 <== NOT EXECUTED 5c218: 2240 moveal %d0,%a1 <== NOT EXECUTED 5c21a: 41f1 7c00 lea %a1@(00000000,%d7:l:4),%a0 <== NOT EXECUTED 5c21e: 2f06 movel %d6,%sp@- <== NOT EXECUTED 5c220: 41f0 8c00 lea %a0@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 5c224: 2008 movel %a0,%d0 <== NOT EXECUTED 5c226: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 5c22a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c22c: 700a moveq #10,%d0 <== NOT EXECUTED 5c22e: e0af lsrl %d0,%d7 <== NOT EXECUTED 5c230: 2f07 movel %d7,%sp@- <== NOT EXECUTED 5c232: e0aa lsrl %d0,%d2 <== NOT EXECUTED void malloc_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 5c234: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; (*print)( 5c238: 2f02 movel %d2,%sp@- <== NOT EXECUTED void malloc_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 5c23a: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; (*print)( 5c23e: 4879 0007 b50f pea 7b50f <== NOT EXECUTED 5c244: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c246: 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)( 5c248: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 5c24e: 2eb9 0009 37bc movel 937bc ,%sp@ <== NOT EXECUTED 5c254: 2f39 0009 37b8 movel 937b8 ,%sp@- <== NOT EXECUTED 5c25a: 2f39 0009 37b4 movel 937b4 ,%sp@- <== NOT EXECUTED 5c260: 2f39 0009 37ac movel 937ac ,%sp@- <== NOT EXECUTED 5c266: 4879 0007 b571 pea 7b571 <== NOT EXECUTED 5c26c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c26e: 4e92 jsr %a2@ <== NOT EXECUTED 5c270: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED s->malloc_calls, s->free_calls, s->realloc_calls, s->calloc_calls ); } 5c276: 4cee 04fc ffe4 moveml %fp@(-28),%d2-%d7/%a2 <== NOT EXECUTED 5c27c: 4e5e unlk %fp <== NOT EXECUTED 5c27e: 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 b694 pea 5b694 <== NOT EXECUTED 448ee: 4eb9 0004 9884 jsr 49884 <_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 ... 00060af8 : */ int memfile_blocks_allocated = 0; void *memfile_alloc_block(void) { 60af8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED void *memory; memory = (void *)calloc(1, IMFS_MEMFILE_BYTES_PER_BLOCK); 60afc: 2f39 0008 0280 movel 80280 ,%sp@- <== NOT EXECUTED 60b02: 4878 0001 pea 1 <== NOT EXECUTED 60b06: 4eb9 0004 4e18 jsr 44e18 <== NOT EXECUTED if ( memory ) 60b0c: 508f addql #8,%sp <== NOT EXECUTED 60b0e: 4a80 tstl %d0 <== NOT EXECUTED 60b10: 6706 beqs 60b18 <== NOT EXECUTED memfile_blocks_allocated++; 60b12: 52b9 0009 29a4 addql #1,929a4 <== NOT EXECUTED return memory; } 60b18: 4e5e unlk %fp <== NOT EXECUTED 60b1a: 4e75 rts 00060e5a : return memfile_check_rmnod( the_jnode ); } int memfile_check_rmnod( IMFS_jnode_t *the_jnode ){ 60e5a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 60e5e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60e60: 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) ) { 60e64: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60e66: 4eb9 0004 5576 jsr 45576 <== NOT EXECUTED 60e6c: 588f addql #4,%sp <== NOT EXECUTED 60e6e: 4a80 tstl %d0 <== NOT EXECUTED 60e70: 6632 bnes 60ea4 <== NOT EXECUTED 60e72: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 60e76: 662c bnes 60ea4 <== NOT EXECUTED /* * Is the rtems_filesystem_current is this node? */ if ( rtems_filesystem_current.node_access == the_jnode ) 60e78: 2079 0007 e600 moveal 7e600 ,%a0 <== NOT EXECUTED 60e7e: b5e8 0004 cmpal %a0@(4),%a2 <== NOT EXECUTED 60e82: 6604 bnes 60e88 <== NOT EXECUTED rtems_filesystem_current.node_access = NULL; 60e84: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED /* * Free memory associated with a memory file. */ if (the_jnode->type != IMFS_LINEAR_FILE) 60e88: 7006 moveq #6,%d0 <== NOT EXECUTED 60e8a: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 60e8e: 670a beqs 60e9a <== NOT EXECUTED IMFS_memfile_remove( the_jnode ); 60e90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60e92: 4eb9 0006 0d40 jsr 60d40 <== NOT EXECUTED 60e98: 588f addql #4,%sp <== NOT EXECUTED free( the_jnode ); 60e9a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60e9c: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 60ea2: 588f addql #4,%sp <== NOT EXECUTED } return 0; } 60ea4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 60ea8: 4e5e unlk %fp <== NOT EXECUTED 60eaa: 4280 clrl %d0 <== NOT EXECUTED 60eac: 4e75 rts 00060efa : */ int memfile_close( rtems_libio_t *iop ) { 60efa: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 60efe: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; if (iop->flags & LIBIO_FLAGS_APPEND) 60f02: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED rtems_libio_t *iop ) { IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 60f06: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED if (iop->flags & LIBIO_FLAGS_APPEND) 60f0a: 0280 0000 0200 andil #512,%d0 <== NOT EXECUTED 60f10: 6706 beqs 60f18 <== NOT EXECUTED iop->offset = the_jnode->info.file.size; 60f12: 2169 004c 0008 movel %a1@(76),%a0@(8) <== NOT EXECUTED memfile_check_rmnod( the_jnode ); 60f18: 2f09 movel %a1,%sp@- <== NOT EXECUTED 60f1a: 4eb9 0006 0e5a jsr 60e5a <== NOT EXECUTED return 0; } 60f20: 4e5e unlk %fp <== NOT EXECUTED 60f22: 4280 clrl %d0 <== NOT EXECUTED 60f24: 4e75 rts 00060ade : */ void memfile_free_block( void *memory ) { 60ade: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if 0 fprintf(stdout, "(d %p) ", memory ); fflush(stdout); #endif free(memory); 60ae2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 60ae6: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED memfile_blocks_allocated--; 60aec: 588f addql #4,%sp <== NOT EXECUTED 60aee: 53b9 0009 29a4 subql #1,929a4 <== NOT EXECUTED } 60af4: 4e5e unlk %fp <== NOT EXECUTED 60af6: 4e75 rts 00060cdc : void memfile_free_blocks_in_table( block_p **block_table, int entries ) { 60cdc: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 60ce0: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 60ce4: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( block_table ); 60ce8: 4a8b tstl %a3 <== NOT EXECUTED 60cea: 661c bnes 60d08 <== NOT EXECUTED 60cec: 4879 0007 b94a pea 7b94a <_POSIX_Threads_Default_attributes+0x210> <== NOT EXECUTED 60cf2: 4879 0007 ba31 pea 7ba31 <__func__.5699> <== NOT EXECUTED 60cf8: 4878 01b1 pea 1b1 <== NOT EXECUTED 60cfc: 4879 0007 b8dd pea 7b8dd <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 60d02: 4eb9 0005 a898 jsr 5a898 <__assert_func> <== NOT EXECUTED 60d08: 2453 moveal %a3@,%a2 <== NOT EXECUTED 60d0a: 4282 clrl %d2 <== NOT EXECUTED b = *block_table; for ( i=0 ; i,%a4 <== NOT EXECUTED 60d12: 6010 bras 60d24 <== NOT EXECUTED */ b = *block_table; for ( i=0 ; i <== NOT EXECUTED memfile_free_block( b[i] ); 60d18: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60d1a: 4e94 jsr %a4@ <== NOT EXECUTED b[i] = 0; 60d1c: 588f addql #4,%sp <== NOT EXECUTED 60d1e: 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 ); 60d2a: 2f13 movel %a3@,%sp@- <== NOT EXECUTED 60d2c: 4eb9 0006 0ade jsr 60ade <== NOT EXECUTED *block_table = 0; 60d32: 4293 clrl %a3@ <== NOT EXECUTED 60d34: 588f addql #4,%sp <== NOT EXECUTED } 60d36: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 60d3c: 4e5e unlk %fp <== NOT EXECUTED 60d3e: 4e75 rts 0006108a : int memfile_ftruncate( rtems_libio_t *iop, off_t length ) { 6108a: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 6108e: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 61092: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61094: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 61098: 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 ) 6109c: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 610a0: 6f0e bles 610b0 <== NOT EXECUTED return IMFS_memfile_extend( the_jnode, length ); 610a2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 610a4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 610a6: 4eb9 0006 0fa4 jsr 60fa4 <== NOT EXECUTED 610ac: 508f addql #8,%sp <== NOT EXECUTED 610ae: 601e bras 610ce <== 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; 610b0: 2540 004c movel %d0,%a2@(76) <== NOT EXECUTED iop->size = the_jnode->info.file.size; IMFS_update_atime( the_jnode ); 610b4: 42a7 clrl %sp@- <== NOT EXECUTED 610b6: 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; 610ba: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED IMFS_update_atime( the_jnode ); 610be: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 610c4: 508f addql #8,%sp <== NOT EXECUTED 610c6: 4280 clrl %d0 <== NOT EXECUTED 610c8: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return 0; } 610ce: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 610d2: 4e5e unlk %fp <== NOT EXECUTED 610d4: 4e75 rts 00060ad4 : int memfile_ioctl( rtems_libio_t *iop, uint32_t command, void *buffer ) { 60ad4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; return 0; } 60ad8: 4e5e unlk %fp <== NOT EXECUTED 60ada: 4280 clrl %d0 <== NOT EXECUTED 60adc: 4e75 rts 000610d6 : off_t memfile_lseek( rtems_libio_t *iop, off_t offset, int whence ) { 610d6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 610da: 2f0b movel %a3,%sp@- <== NOT EXECUTED 610dc: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 610e0: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 610e2: 246b 002c moveal %a3@(44),%a2 <== NOT EXECUTED if (the_jnode->type == IMFS_LINEAR_FILE) { 610e6: 7006 moveq #6,%d0 <== NOT EXECUTED 610e8: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 610ec: 6610 bnes 610fe <== NOT EXECUTED if (iop->offset > the_jnode->info.linearfile.size) 610ee: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 610f2: b0ab 0008 cmpl %a3@(8),%d0 <== NOT EXECUTED 610f6: 6c2e bges 61126 <== NOT EXECUTED iop->offset = the_jnode->info.linearfile.size; 610f8: 2740 0008 movel %d0,%a3@(8) <== NOT EXECUTED 610fc: 6028 bras 61126 <== NOT EXECUTED } else { /* Must be a block file (IMFS_MEMORY_FILE). */ if (IMFS_memfile_extend( the_jnode, iop->offset )) 610fe: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 61102: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61104: 4eb9 0006 0fa4 jsr 60fa4 <== NOT EXECUTED 6110a: 508f addql #8,%sp <== NOT EXECUTED 6110c: 4a80 tstl %d0 <== NOT EXECUTED 6110e: 6710 beqs 61120 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 61110: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 61116: 2040 moveal %d0,%a0 <== NOT EXECUTED 61118: 701c moveq #28,%d0 <== NOT EXECUTED 6111a: 2080 movel %d0,%a0@ <== NOT EXECUTED 6111c: 70ff moveq #-1,%d0 <== NOT EXECUTED 6111e: 600a bras 6112a <== NOT EXECUTED iop->size = the_jnode->info.file.size; 61120: 276a 004c 0004 movel %a2@(76),%a3@(4) <== NOT EXECUTED } return iop->offset; 61126: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED } 6112a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 6112e: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 61132: 4e5e unlk %fp <== NOT EXECUTED 61134: 4e75 rts 0006134a : rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) { 6134a: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 6134e: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 61352: 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)) 61356: 202b 000c movel %a3@(12),%d0 <== NOT EXECUTED uint32_t mode ) { IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 6135a: 246b 002c moveal %a3@(44),%a2 <== NOT EXECUTED /* * Perform 'copy on write' for linear files */ if ((iop->flags & (LIBIO_FLAGS_WRITE | LIBIO_FLAGS_APPEND)) 6135e: 0280 0000 0204 andil #516,%d0 <== NOT EXECUTED 61364: 6748 beqs 613ae <== NOT EXECUTED 61366: 7006 moveq #6,%d0 <== NOT EXECUTED 61368: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 6136c: 6640 bnes 613ae <== NOT EXECUTED && (the_jnode->type == IMFS_LINEAR_FILE)) { uint32_t count = the_jnode->info.linearfile.size; 6136e: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED const unsigned char *buffer = the_jnode->info.linearfile.direct; 61372: 222a 0050 movel %a2@(80),%d1 <== NOT EXECUTED the_jnode->type = IMFS_MEMORY_FILE; 61376: 7405 moveq #5,%d2 <== NOT EXECUTED 61378: 2542 0048 movel %d2,%a2@(72) <== NOT EXECUTED the_jnode->info.file.size = 0; 6137c: 42aa 004c clrl %a2@(76) <== NOT EXECUTED the_jnode->info.file.indirect = 0; 61380: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_jnode->info.file.doubly_indirect = 0; 61384: 42aa 0054 clrl %a2@(84) <== NOT EXECUTED the_jnode->info.file.triply_indirect = 0; 61388: 42aa 0058 clrl %a2@(88) <== NOT EXECUTED if ((count != 0) 6138c: 4a80 tstl %d0 <== NOT EXECUTED 6138e: 671e beqs 613ae <== NOT EXECUTED 61390: 2f00 movel %d0,%sp@- <== NOT EXECUTED 61392: 2f01 movel %d1,%sp@- <== NOT EXECUTED 61394: 42a7 clrl %sp@- <== NOT EXECUTED 61396: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61398: 4eb9 0006 1136 jsr 61136 <== NOT EXECUTED 6139e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 613a4: 72ff moveq #-1,%d1 <== NOT EXECUTED 613a6: b280 cmpl %d0,%d1 <== NOT EXECUTED 613a8: 6604 bnes 613ae <== NOT EXECUTED 613aa: 70ff moveq #-1,%d0 <== NOT EXECUTED 613ac: 601a bras 613c8 <== NOT EXECUTED && (IMFS_memfile_write(the_jnode, 0, buffer, count) == -1)) return -1; } if (iop->flags & LIBIO_FLAGS_APPEND) 613ae: 202b 000c movel %a3@(12),%d0 <== NOT EXECUTED 613b2: 0280 0000 0200 andil #512,%d0 <== NOT EXECUTED 613b8: 6706 beqs 613c0 <== NOT EXECUTED iop->offset = the_jnode->info.file.size; 613ba: 276a 004c 0008 movel %a2@(76),%a3@(8) <== NOT EXECUTED iop->size = the_jnode->info.file.size; 613c0: 4280 clrl %d0 <== NOT EXECUTED 613c2: 276a 004c 0004 movel %a2@(76),%a3@(4) <== NOT EXECUTED return 0; } 613c8: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 613ce: 4e5e unlk %fp <== NOT EXECUTED 613d0: 4e75 rts 000615dc : ssize_t memfile_read( rtems_libio_t *iop, void *buffer, size_t count ) { 615dc: 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 ); 615e0: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED ssize_t memfile_read( rtems_libio_t *iop, void *buffer, size_t count ) { 615e4: 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 ); 615e8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 615ec: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 615f0: 2f28 002c movel %a0@(44),%sp@- <== NOT EXECUTED 615f4: 4eb9 0006 13d2 jsr 613d2 <== NOT EXECUTED } 615fa: 4e5e unlk %fp <== NOT EXECUTED 615fc: 4e75 rts <== NOT EXECUTED ... 00060eae : */ int memfile_rmnod( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 60eae: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 60eb2: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 60eb6: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 60eb8: 2450 moveal %a0@,%a2 <== NOT EXECUTED /* * Take the node out of the parent's chain that contains this node */ if ( the_jnode->Parent != NULL ) { 60eba: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 60ebe: 670e beqs 60ece <== NOT EXECUTED 60ec0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60ec2: 4eb9 0005 e134 jsr 5e134 <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( (rtems_chain_node *) the_jnode ); the_jnode->Parent = NULL; 60ec8: 588f addql #4,%sp <== NOT EXECUTED 60eca: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED /* * Decrement the link counter and see if we can free the space. */ the_jnode->st_nlink--; 60ece: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 60ed2: 5380 subql #1,%d0 <== NOT EXECUTED 60ed4: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( the_jnode ); 60ed8: 42a7 clrl %sp@- <== NOT EXECUTED 60eda: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 60ede: 4eb9 0004 53e0 jsr 453e0 <== NOT EXECUTED 60ee4: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return memfile_check_rmnod( the_jnode ); 60eea: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60eec: 4eb9 0006 0e5a jsr 60e5a <== NOT EXECUTED } 60ef2: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 60ef6: 4e5e unlk %fp <== NOT EXECUTED 60ef8: 4e75 rts 00061314 : ssize_t memfile_write( rtems_libio_t *iop, const void *buffer, size_t count ) { 61314: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 61318: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6131a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6131c: 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 ); 61320: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 61324: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED ) { IMFS_jnode_t *the_jnode; ssize_t status; the_jnode = iop->file_info; 61328: 266a 002c moveal %a2@(44),%a3 <== NOT EXECUTED status = IMFS_memfile_write( the_jnode, iop->offset, buffer, count ); 6132c: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 61330: 2f0b movel %a3,%sp@- <== NOT EXECUTED 61332: 4eb9 0006 1136 jsr 61136 <== NOT EXECUTED iop->size = the_jnode->info.file.size; 61338: 256b 004c 0004 movel %a3@(76),%a2@(4) <== NOT EXECUTED return status; } 6133e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 61342: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 61346: 4e5e unlk %fp <== NOT EXECUTED 61348: 4e75 rts 000480e8 : */ int miniIMFS_initialize( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 480e8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return IMFS_initialize_support( 480ec: 4879 0005 7634 pea 57634 <== NOT EXECUTED 480f2: 4879 0005 7634 pea 57634 <== NOT EXECUTED 480f8: 4879 0005 5262 pea 55262 <== NOT EXECUTED 480fe: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48102: 4eb9 0004 88e4 jsr 488e4 <== NOT EXECUTED temp_mt_entry, &miniIMFS_ops, &rtems_filesystem_null_handlers, /* for memfiles */ &rtems_filesystem_null_handlers /* for directories */ ); } 48108: 4e5e unlk %fp <== NOT EXECUTED 4810a: 4e75 rts 00049444 : int mkdir( const char *pathname, mode_t mode ) { 49444: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return mknod( pathname, mode | S_IFDIR, 0LL); 49448: 42a7 clrl %sp@- <== NOT EXECUTED 4944a: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4944e: 42a7 clrl %sp@- <== NOT EXECUTED 49450: 08c0 000e bset #14,%d0 <== NOT EXECUTED 49454: 2f00 movel %d0,%sp@- <== NOT EXECUTED 49456: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4945a: 4eb9 0004 2334 jsr 42334 <== NOT EXECUTED } 49460: 4e5e unlk %fp <== NOT EXECUTED 49462: 4e75 rts 0005c280 : int mkfifo( const char *path, mode_t mode ) { 5c280: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return mknod( path, mode | S_IFIFO, 0LL ); 5c284: 42a7 clrl %sp@- <== NOT EXECUTED 5c286: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 5c28a: 42a7 clrl %sp@- <== NOT EXECUTED 5c28c: 08c0 000c bset #12,%d0 <== NOT EXECUTED 5c290: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c292: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c296: 4eb9 0004 5a7c jsr 45a7c <== NOT EXECUTED } 5c29c: 4e5e unlk %fp <== NOT EXECUTED 5c29e: 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 b794 jsr 4b794 <__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 b794 jsr 4b794 <__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 6764 movel 56764 ,%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 bf4c jsr 4bf4c <== 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 6764 movel 56764 ,%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 bf4c jsr 4bf4c <== 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 ... 00049486 : const rtems_filesystem_operations_table *fs_ops, rtems_filesystem_options_t options, const char *device, const char *mount_point ) { 49486: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 4948a: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 4948e: 2a6e 0008 moveal %fp@(8),%a5 <== NOT EXECUTED 49492: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED 49496: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 4949a: 266e 0014 moveal %fp@(20),%a3 <== NOT EXECUTED 4949e: 262e 0018 movel %fp@(24),%d3 <== NOT EXECUTED /* * Is there a file system operations table? */ if ( fs_ops == NULL ) { 494a2: 4a8c tstl %a4 <== NOT EXECUTED 494a4: 6706 beqs 494ac <== NOT EXECUTED /* * Are the file system options valid? */ if ( options != RTEMS_FILESYSTEM_READ_ONLY && 494a6: 7001 moveq #1,%d0 <== NOT EXECUTED 494a8: b082 cmpl %d2,%d0 <== NOT EXECUTED 494aa: 6410 bccs 494bc <== NOT EXECUTED options != RTEMS_FILESYSTEM_READ_WRITE ) { errno = EINVAL; 494ac: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 494b2: 7616 moveq #22,%d3 <== NOT EXECUTED 494b4: 2040 moveal %d0,%a0 <== NOT EXECUTED 494b6: 2083 movel %d3,%a0@ <== NOT EXECUTED 494b8: 6000 01bc braw 49676 <== NOT EXECUTED return -1; } /* Do they support being mounted at all ? */ if ( !fs_ops->fsmount_me_h ) { 494bc: 4aac 0024 tstl %a4@(36) <== NOT EXECUTED 494c0: 6614 bnes 494d6 <== NOT EXECUTED errno = ENOTSUP; 494c2: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 494c8: 2040 moveal %d0,%a0 <== NOT EXECUTED 494ca: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 494d0: 4284 clrl %d4 <== NOT EXECUTED 494d2: 6000 017c braw 49650 <== NOT EXECUTED /* * Allocate a mount table entry */ size = sizeof(rtems_filesystem_mount_table_entry_t); if ( device ) 494d6: 4a8b tstl %a3 <== NOT EXECUTED 494d8: 6604 bnes 494de <== NOT EXECUTED 494da: 7064 moveq #100,%d0 <== NOT EXECUTED 494dc: 6010 bras 494ee <== NOT EXECUTED size += strlen( device ) + 1; 494de: 2f0b movel %a3,%sp@- <== NOT EXECUTED 494e0: 4eb9 0004 d124 jsr 4d124 <== NOT EXECUTED 494e6: 588f addql #4,%sp <== NOT EXECUTED 494e8: 0680 0000 0065 addil #101,%d0 <== NOT EXECUTED temp_mt_entry = malloc( size ); 494ee: 2f00 movel %d0,%sp@- <== NOT EXECUTED 494f0: 4eb9 0004 93a0 jsr 493a0 <== NOT EXECUTED if ( !temp_mt_entry ) { 494f6: 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 ); 494f8: 2440 moveal %d0,%a2 <== NOT EXECUTED 494fa: 2800 movel %d0,%d4 <== NOT EXECUTED if ( !temp_mt_entry ) { 494fc: 6610 bnes 4950e <== NOT EXECUTED errno = ENOMEM; 494fe: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 49504: 740c moveq #12,%d2 <== NOT EXECUTED 49506: 2040 moveal %d0,%a0 <== NOT EXECUTED 49508: 2082 movel %d2,%a0@ <== NOT EXECUTED 4950a: 6000 016a braw 49676 <== NOT EXECUTED return -1; } temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry; temp_mt_entry->options = options; 4950e: 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; 49512: 2540 0024 movel %d0,%a2@(36) <== NOT EXECUTED temp_mt_entry->options = options; if ( device ) { 49516: 4a8b tstl %a3 <== NOT EXECUTED 49518: 6718 beqs 49532 <== NOT EXECUTED temp_mt_entry->dev = (char *)temp_mt_entry + sizeof( rtems_filesystem_mount_table_entry_t ); strcpy( temp_mt_entry->dev, device ); 4951a: 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 = 4951c: 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 ); 49522: 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 = 49524: 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 ); 49528: 4eb9 0004 cc70 jsr 4cc70 <== NOT EXECUTED 4952e: 508f addql #8,%sp <== NOT EXECUTED 49530: 6004 bras 49536 <== NOT EXECUTED } else temp_mt_entry->dev = 0; 49532: 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 ) { 49536: 4a83 tstl %d3 <== NOT EXECUTED 49538: 6700 00bc beqw 495f6 <== NOT EXECUTED if ( rtems_filesystem_evaluate_path( 4953c: 4878 0001 pea 1 <== NOT EXECUTED 49540: 47ee fff0 lea %fp@(-16),%a3 <== NOT EXECUTED 49544: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49546: 4878 0007 pea 7 <== NOT EXECUTED 4954a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4954c: 4eb9 0004 20e2 jsr 420e2 <== NOT EXECUTED 49552: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 49558: 72ff moveq #-1,%d1 <== NOT EXECUTED 4955a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4955c: 6700 00f2 beqw 49650 <== NOT EXECUTED /* * Test for node_type_h */ if (!loc.ops->node_type_h) { 49560: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 49564: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 49568: 4a88 tstl %a0 <== NOT EXECUTED 4956a: 6612 bnes 4957e <== NOT EXECUTED errno = ENOTSUP; 4956c: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 49572: 2040 moveal %d0,%a0 <== NOT EXECUTED 49574: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 4957a: 6000 00d6 braw 49652 <== NOT EXECUTED /* * Test to see if it is a directory */ if ( loc.ops->node_type_h( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) { 4957e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49580: 4e90 jsr %a0@ <== NOT EXECUTED 49582: 588f addql #4,%sp <== NOT EXECUTED 49584: 7201 moveq #1,%d1 <== NOT EXECUTED 49586: b280 cmpl %d0,%d1 <== NOT EXECUTED 49588: 6710 beqs 4959a <== NOT EXECUTED errno = ENOTDIR; 4958a: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 49590: 7214 moveq #20,%d1 <== NOT EXECUTED 49592: 2040 moveal %d0,%a0 <== NOT EXECUTED 49594: 2081 movel %d1,%a0@ <== NOT EXECUTED 49596: 6000 00ba braw 49652 <== NOT EXECUTED /* * For each mount table entry */ for ( the_node = rtems_filesystem_mount_table_control.first; 4959a: 2079 0005 837a moveal 5837a ,%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 ) 495a0: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 495a4: 6008 bras 495ae <== NOT EXECUTED 495a6: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 495aa: 670e beqs 495ba <== 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 ) { 495ac: 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 ); 495ae: b1fc 0005 837e cmpal #361342,%a0 <== NOT EXECUTED 495b4: 66f0 bnes 495a6 <== NOT EXECUTED 495b6: 6000 00ca braw 49682 <== NOT EXECUTED /* * You can only mount one file system onto a single mount point. */ if ( Is_node_fs_root( &loc ) ){ errno = EBUSY; 495ba: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 495c0: 2040 moveal %d0,%a0 <== NOT EXECUTED 495c2: 7010 moveq #16,%d0 <== NOT EXECUTED 495c4: 2080 movel %d0,%a0@ <== NOT EXECUTED 495c6: 600e bras 495d6 <== 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; 495c8: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 495ce: 2040 moveal %d0,%a0 <== NOT EXECUTED 495d0: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 495d6: 47ee fff0 lea %fp@(-16),%a3 <== NOT EXECUTED 495da: 6076 bras 49652 <== NOT EXECUTED goto cleanup_and_bail; } if ( loc.ops->mount_h( temp_mt_entry ) ) { 495dc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 495de: 4e91 jsr %a1@ <== NOT EXECUTED 495e0: 220e movel %fp,%d1 <== NOT EXECUTED 495e2: 588f addql #4,%sp <== NOT EXECUTED 495e4: 0681 ffff fff0 addil #-16,%d1 <== NOT EXECUTED 495ea: 4a80 tstl %d0 <== NOT EXECUTED 495ec: 6704 beqs 495f2 <== NOT EXECUTED 495ee: 2641 moveal %d1,%a3 <== NOT EXECUTED 495f0: 6060 bras 49652 <== NOT EXECUTED 495f2: 2641 moveal %d1,%a3 <== NOT EXECUTED 495f4: 601e bras 49614 <== 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; 495f6: 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; 495f8: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED temp_mt_entry->mt_fs_root.handlers = NULL; 495fc: 42aa 001c clrl %a2@(28) <== NOT EXECUTED temp_mt_entry->mt_fs_root.ops = NULL; 49600: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED temp_mt_entry->mt_point_node.node_access = NULL; 49604: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED temp_mt_entry->mt_point_node.handlers = NULL; 49608: 42aa 000c clrl %a2@(12) <== NOT EXECUTED temp_mt_entry->mt_point_node.ops = NULL; 4960c: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED temp_mt_entry->mt_point_node.mt_entry = NULL; 49610: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED } if ( fs_ops->fsmount_me_h( temp_mt_entry ) ) { 49614: 206c 0024 moveal %a4@(36),%a0 <== NOT EXECUTED 49618: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4961a: 4e90 jsr %a0@ <== NOT EXECUTED 4961c: 588f addql #4,%sp <== NOT EXECUTED 4961e: 4a80 tstl %d0 <== NOT EXECUTED 49620: 6714 beqs 49636 <== NOT EXECUTED /* try to undo the mount operation */ if ( loc.ops->unmount_h ) { 49622: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 49626: 2068 0028 moveal %a0@(40),%a0 <== NOT EXECUTED 4962a: 4a88 tstl %a0 <== NOT EXECUTED 4962c: 6724 beqs 49652 <== NOT EXECUTED loc.ops->unmount_h( temp_mt_entry ); 4962e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49630: 4e90 jsr %a0@ <== NOT EXECUTED 49632: 588f addql #4,%sp <== NOT EXECUTED 49634: 601c bras 49652 <== 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 ); 49636: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49638: 4879 0005 837a pea 5837a <== NOT EXECUTED 4963e: 4eb9 0004 5964 jsr 45964 <_Chain_Append> <== NOT EXECUTED */ rtems_chain_append( &rtems_filesystem_mount_table_control, &temp_mt_entry->Node ); if ( mt_entry ) 49644: 508f addql #8,%sp <== NOT EXECUTED 49646: 4a8d tstl %a5 <== NOT EXECUTED 49648: 6702 beqs 4964c <== NOT EXECUTED *mt_entry = temp_mt_entry; 4964a: 2a8a movel %a2,%a5@ <== NOT EXECUTED 4964c: 4280 clrl %d0 <== NOT EXECUTED 4964e: 6028 bras 49678 <== NOT EXECUTED 49650: 97cb subal %a3,%a3 <== NOT EXECUTED return 0; cleanup_and_bail: free( temp_mt_entry ); 49652: 2f04 movel %d4,%sp@- <== NOT EXECUTED 49654: 4eb9 0004 8e8c jsr 48e8c <== NOT EXECUTED if ( loc_to_free ) 4965a: 588f addql #4,%sp <== NOT EXECUTED 4965c: 4a8b tstl %a3 <== NOT EXECUTED 4965e: 6716 beqs 49676 <== NOT EXECUTED rtems_filesystem_freenode( loc_to_free ); 49660: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED 49664: 4a88 tstl %a0 <== NOT EXECUTED 49666: 670e beqs 49676 <== NOT EXECUTED 49668: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 4966c: 4a88 tstl %a0 <== NOT EXECUTED 4966e: 6706 beqs 49676 <== NOT EXECUTED 49670: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49672: 4e90 jsr %a0@ <== NOT EXECUTED 49674: 588f addql #4,%sp <== NOT EXECUTED 49676: 70ff moveq #-1,%d0 <== NOT EXECUTED return -1; } 49678: 4cee 3c1c ffd4 moveml %fp@(-44),%d2-%d4/%a2-%a5 <== NOT EXECUTED 4967e: 4e5e unlk %fp <== NOT EXECUTED 49680: 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; 49682: 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 ){ 49686: 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; 4968a: 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; 49690: 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; 49696: 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; 4969a: 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 ){ 4969e: 4a89 tstl %a1 <== NOT EXECUTED 496a0: 6600 ff3a bnew 495dc <== NOT EXECUTED 496a4: 6000 ff22 braw 495c8 <== NOT EXECUTED 00044ecc : * As of gcc 4.2.2, the gcc SPARC backend doesn't appear to have a * way to call this for RTEMS anymore but it doesn't hurt to leave it. */ int mprotect(const void *addr, size_t len, int prot) { 44ecc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 44ed0: 4e5e unlk %fp <== NOT EXECUTED 44ed2: 4280 clrl %d0 <== NOT EXECUTED 44ed4: 4e75 rts <== NOT EXECUTED ... 00048800 : */ int mq_close( mqd_t mqdes ) { 48800: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 48804: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *_POSIX_Message_queue_Get_fd ( Objects_Id id, Objects_Locations *location ) { return (POSIX_Message_queue_Control_fd *) 48806: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4880a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4880e: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 48814: 4eb9 0004 bc50 jsr 4bc50 <_Objects_Get> <== NOT EXECUTED POSIX_Message_queue_Control *the_mq; POSIX_Message_queue_Control_fd *the_mq_fd; Objects_Locations location; the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); if ( location == OBJECTS_LOCAL ) { 4881a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48820: 2440 moveal %d0,%a2 <== NOT EXECUTED 48822: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48826: 663c bnes 48864 <== NOT EXECUTED * First update the actual message queue to reflect this descriptor * being disassociated. This may result in the queue being really * deleted. */ the_mq = the_mq_fd->Queue; 48828: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED the_mq->open_count -= 1; 4882c: 53a8 0016 subql #1,%a0@(22) <== NOT EXECUTED _POSIX_Message_queue_Delete( the_mq ); 48830: 2f08 movel %a0,%sp@- <== NOT EXECUTED 48832: 4eb9 0004 887c jsr 4887c <_POSIX_Message_queue_Delete> <== NOT EXECUTED /* * Now close this file descriptor. */ _Objects_Close( 48838: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4883a: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 48840: 4eb9 0004 b878 jsr 4b878 <_Objects_Close> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free_fd ( POSIX_Message_queue_Control_fd *the_mq_fd ) { _Objects_Free( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object ); 48846: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48848: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4884e: 4eb9 0004 baf0 jsr 4baf0 <_Objects_Free> <== NOT EXECUTED &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object ); _POSIX_Message_queue_Free_fd( the_mq_fd ); _Thread_Enable_dispatch(); 48854: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED 4885a: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 48860: 4280 clrl %d0 <== NOT EXECUTED 48862: 600e bras 48872 <== NOT EXECUTED /* * OBJECTS_REMOTE: * OBJECTS_ERROR: */ rtems_set_errno_and_return_minus_one( EBADF ); 48864: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 4886a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4886c: 7209 moveq #9,%d1 <== NOT EXECUTED 4886e: 70ff moveq #-1,%d0 <== NOT EXECUTED 48870: 2081 movel %d1,%a0@ <== NOT EXECUTED } 48872: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 48876: 4e5e unlk %fp <== NOT EXECUTED 48878: 4e75 rts <== NOT EXECUTED ... 000488dc : int mq_getattr( mqd_t mqdes, struct mq_attr *mqstat ) { 488dc: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 488e0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 488e2: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED POSIX_Message_queue_Control *the_mq; POSIX_Message_queue_Control_fd *the_mq_fd; Objects_Locations location; CORE_message_queue_Attributes *the_mq_attr; if ( !mqstat ) 488e6: 4a8a tstl %a2 <== NOT EXECUTED 488e8: 6610 bnes 488fa <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 488ea: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 488f0: 2040 moveal %d0,%a0 <== NOT EXECUTED 488f2: 7016 moveq #22,%d0 <== NOT EXECUTED 488f4: 2080 movel %d0,%a0@ <== NOT EXECUTED 488f6: 70ff moveq #-1,%d0 <== NOT EXECUTED 488f8: 6054 bras 4894e <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *_POSIX_Message_queue_Get_fd ( Objects_Id id, Objects_Locations *location ) { return (POSIX_Message_queue_Control_fd *) 488fa: 486e fffc pea %fp@(-4) <== NOT EXECUTED 488fe: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48902: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 48908: 4eb9 0004 bc50 jsr 4bc50 <_Objects_Get> <== NOT EXECUTED the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { 4890e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48914: 2040 moveal %d0,%a0 <== NOT EXECUTED 48916: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4891a: 6624 bnes 48940 <== NOT EXECUTED * Return the old values. */ the_mq_attr = &the_mq->Message_queue.Attributes; mqstat->mq_flags = the_mq_fd->oflag; 4891c: 24a8 0014 movel %a0@(20),%a2@ <== NOT EXECUTED the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { case OBJECTS_LOCAL: the_mq = the_mq_fd->Queue; 48920: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED */ the_mq_attr = &the_mq->Message_queue.Attributes; mqstat->mq_flags = the_mq_fd->oflag; mqstat->mq_msgsize = the_mq->Message_queue.maximum_message_size; 48924: 2568 0066 0008 movel %a0@(102),%a2@(8) <== NOT EXECUTED mqstat->mq_maxmsg = the_mq->Message_queue.maximum_pending_messages; 4892a: 2568 005e 0004 movel %a0@(94),%a2@(4) <== NOT EXECUTED mqstat->mq_curmsgs = the_mq->Message_queue.number_of_pending_messages; 48930: 2568 0062 000c movel %a0@(98),%a2@(12) <== NOT EXECUTED _Thread_Enable_dispatch(); 48936: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED 4893c: 4280 clrl %d0 <== NOT EXECUTED 4893e: 600e bras 4894e <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 48940: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48946: 2040 moveal %d0,%a0 <== NOT EXECUTED 48948: 7209 moveq #9,%d1 <== NOT EXECUTED 4894a: 70ff moveq #-1,%d0 <== NOT EXECUTED 4894c: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4894e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 48952: 4e5e unlk %fp <== NOT EXECUTED 48954: 4e75 rts <== NOT EXECUTED ... 00048958 : int mq_notify( mqd_t mqdes, const struct sigevent *notification ) { 48958: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4895c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4895e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48960: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 48964: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48968: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4896c: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 48972: 4eb9 0004 bc50 jsr 4bc50 <_Objects_Get> <== NOT EXECUTED POSIX_Message_queue_Control *the_mq; POSIX_Message_queue_Control_fd *the_mq_fd; Objects_Locations location; the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { 48978: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4897e: 2040 moveal %d0,%a0 <== NOT EXECUTED 48980: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48984: 6664 bnes 489ea <== NOT EXECUTED case OBJECTS_LOCAL: the_mq = the_mq_fd->Queue; 48986: 2468 0010 moveal %a0@(16),%a2 <== NOT EXECUTED if ( notification ) { 4898a: 4a82 tstl %d2 <== NOT EXECUTED 4898c: 674a beqs 489d8 <== NOT EXECUTED if ( _CORE_message_queue_Is_notify_enabled( &the_mq->Message_queue ) ) { 4898e: 4aaa 007a tstl %a2@(122) <== NOT EXECUTED 48992: 6716 beqs 489aa <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EBUSY ); 48994: 7410 moveq #16,%d2 <== NOT EXECUTED case OBJECTS_LOCAL: the_mq = the_mq_fd->Queue; if ( notification ) { if ( _CORE_message_queue_Is_notify_enabled( &the_mq->Message_queue ) ) { _Thread_Enable_dispatch(); 48996: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBUSY ); 4899c: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 489a2: 2040 moveal %d0,%a0 <== NOT EXECUTED 489a4: 2082 movel %d2,%a0@ <== NOT EXECUTED 489a6: 70ff moveq #-1,%d0 <== NOT EXECUTED 489a8: 604e bras 489f8 <== 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; 489aa: 42aa 007a clrl %a2@(122) <== NOT EXECUTED the_message_queue->notify_argument = the_argument; 489ae: 42aa 007e clrl %a2@(126) <== NOT EXECUTED } _CORE_message_queue_Set_notify( &the_mq->Message_queue, NULL, NULL ); the_mq->notification = *notification; 489b2: 4878 0014 pea 14 <== NOT EXECUTED 489b6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 489b8: 486a 008e pea %a2@(142) <== NOT EXECUTED 489bc: 4eb9 0005 1bd4 jsr 51bd4 <== 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; 489c2: 203c 0004 8a04 movel #297476,%d0 <== NOT EXECUTED the_message_queue->notify_argument = the_argument; 489c8: 254a 007e movel %a2,%a2@(126) <== NOT EXECUTED 489cc: dffc 0000 000c addal #12,%sp <== 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; 489d2: 2540 007a movel %d0,%a2@(122) <== NOT EXECUTED 489d6: 6008 bras 489e0 <== NOT EXECUTED the_message_queue->notify_argument = the_argument; 489d8: 42aa 007e clrl %a2@(126) <== 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; 489dc: 42aa 007a clrl %a2@(122) <== NOT EXECUTED _CORE_message_queue_Set_notify( &the_mq->Message_queue, NULL, NULL ); } _Thread_Enable_dispatch(); 489e0: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED 489e6: 4280 clrl %d0 <== NOT EXECUTED 489e8: 600e bras 489f8 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 489ea: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 489f0: 2040 moveal %d0,%a0 <== NOT EXECUTED 489f2: 7209 moveq #9,%d1 <== NOT EXECUTED 489f4: 70ff moveq #-1,%d0 <== NOT EXECUTED 489f6: 2081 movel %d1,%a0@ <== NOT EXECUTED } 489f8: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 489fc: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 48a00: 4e5e unlk %fp <== NOT EXECUTED 48a02: 4e75 rts 00048a3c : rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 48a3c: 2039 0006 0168 movel 60168 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED int oflag, ... /* mode_t mode, */ /* struct mq_attr attr */ ) { 48a42: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 48a46: 48d7 0c7c moveml %d2-%d6/%a2-%a3,%sp@ <== NOT EXECUTED 48a4a: 5280 addql #1,%d0 <== NOT EXECUTED 48a4c: 2c2e 0008 movel %fp@(8),%d6 <== NOT EXECUTED 48a50: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 48a54: 23c0 0006 0168 movel %d0,60168 <_Thread_Dispatch_disable_level> <== NOT EXECUTED POSIX_Message_queue_Control_fd *the_mq_fd; Objects_Locations location; _Thread_Disable_dispatch(); if ( oflag & O_CREAT ) { 48a5a: 2803 movel %d3,%d4 <== NOT EXECUTED 48a5c: 0284 0000 0200 andil #512,%d4 <== NOT EXECUTED 48a62: 6604 bnes 48a68 <== NOT EXECUTED 48a64: 4285 clrl %d5 <== NOT EXECUTED 48a66: 6004 bras 48a6c <== NOT EXECUTED va_start(arg, oflag); mode = (mode_t) va_arg( arg, unsigned int ); attr = (struct mq_attr *) va_arg( arg, struct mq_attr * ); 48a68: 2a2e 0014 movel %fp@(20),%d5 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd * _POSIX_Message_queue_Allocate_fd( void ) { return (POSIX_Message_queue_Control_fd *) 48a6c: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 48a72: 4eb9 0004 b7f0 jsr 4b7f0 <_Objects_Allocate> <== NOT EXECUTED va_end(arg); } the_mq_fd = _POSIX_Message_queue_Allocate_fd(); if ( !the_mq_fd ) { 48a78: 588f addql #4,%sp <== NOT EXECUTED 48a7a: 2440 moveal %d0,%a2 <== NOT EXECUTED 48a7c: 4a80 tstl %d0 <== NOT EXECUTED 48a7e: 6614 bnes 48a94 <== NOT EXECUTED _Thread_Enable_dispatch(); 48a80: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENFILE ); 48a86: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48a8c: 7217 moveq #23,%d1 <== NOT EXECUTED 48a8e: 2040 moveal %d0,%a0 <== NOT EXECUTED 48a90: 2081 movel %d1,%a0@ <== NOT EXECUTED 48a92: 6042 bras 48ad6 <== NOT EXECUTED } the_mq_fd->oflag = oflag; 48a94: 2543 0014 movel %d3,%a2@(20) <== NOT EXECUTED status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id ); 48a98: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48a9c: 2f06 movel %d6,%sp@- <== NOT EXECUTED 48a9e: 4eb9 0004 f130 jsr 4f130 <_POSIX_Message_queue_Name_to_id> <== NOT EXECUTED * and we can just return a pointer to the id. Otherwise we may * need to check to see if this is a "message queue does not exist" * or some other miscellaneous error on the name. */ if ( status ) { 48aa4: 508f addql #8,%sp <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENFILE ); } the_mq_fd->oflag = oflag; status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id ); 48aa6: 2400 movel %d0,%d2 <== NOT EXECUTED * and we can just return a pointer to the id. Otherwise we may * need to check to see if this is a "message queue does not exist" * or some other miscellaneous error on the name. */ if ( status ) { 48aa8: 6732 beqs 48adc <== NOT EXECUTED /* * Unless provided a valid name that did not already exist * and we are willing to create then it is an error. */ if ( !( status == ENOENT && (oflag & O_CREAT) ) ) { 48aaa: 7002 moveq #2,%d0 <== NOT EXECUTED 48aac: b082 cmpl %d2,%d0 <== NOT EXECUTED 48aae: 6606 bnes 48ab6 <== NOT EXECUTED 48ab0: 4a84 tstl %d4 <== NOT EXECUTED 48ab2: 6600 00a0 bnew 48b54 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free_fd ( POSIX_Message_queue_Control_fd *the_mq_fd ) { _Objects_Free( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object ); 48ab6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48ab8: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 48abe: 4eb9 0004 baf0 jsr 4baf0 <_Objects_Free> <== NOT EXECUTED _POSIX_Message_queue_Free_fd( the_mq_fd ); _Thread_Enable_dispatch(); 48ac4: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one_cast( status, mqd_t ); 48aca: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48ad0: 2040 moveal %d0,%a0 <== NOT EXECUTED 48ad2: 2082 movel %d2,%a0@ <== NOT EXECUTED 48ad4: 508f addql #8,%sp <== NOT EXECUTED 48ad6: 70ff moveq #-1,%d0 <== NOT EXECUTED 48ad8: 6000 00d2 braw 48bac <== NOT EXECUTED /* * Check for existence with creation. */ if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { 48adc: 0283 0000 0a00 andil #2560,%d3 <== NOT EXECUTED 48ae2: 47f9 0004 c48a lea 4c48a <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 48ae8: 0c83 0000 0a00 cmpil #2560,%d3 <== NOT EXECUTED 48aee: 661e bnes 48b0e <== NOT EXECUTED 48af0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48af2: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 48af8: 4eb9 0004 baf0 jsr 4baf0 <_Objects_Free> <== NOT EXECUTED _POSIX_Message_queue_Free_fd( the_mq_fd ); _Thread_Enable_dispatch(); 48afe: 4e93 jsr %a3@ <== NOT EXECUTED rtems_set_errno_and_return_minus_one_cast( EEXIST, mqd_t ); 48b00: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48b06: 2040 moveal %d0,%a0 <== NOT EXECUTED 48b08: 7011 moveq #17,%d0 <== NOT EXECUTED 48b0a: 2080 movel %d0,%a0@ <== NOT EXECUTED 48b0c: 60c6 bras 48ad4 <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (POSIX_Message_queue_Control *) 48b0e: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 48b12: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 48b16: 4879 0006 044a pea 6044a <_POSIX_Message_queue_Information> <== NOT EXECUTED 48b1c: 4eb9 0004 bc50 jsr 4bc50 <_Objects_Get> <== NOT EXECUTED 48b22: 2040 moveal %d0,%a0 <== NOT EXECUTED * In this case we need to do an ID->pointer conversion to * check the mode. */ the_mq = _POSIX_Message_queue_Get( the_mq_id, &location ); the_mq->open_count += 1; 48b24: 52a8 0016 addql #1,%a0@(22) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 48b28: 2279 0006 05cc moveal 605cc <_POSIX_Message_queue_Information_fds+0x1a>,%a1 <== NOT EXECUTED 48b2e: 4280 clrl %d0 <== NOT EXECUTED 48b30: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 48b34: 238a 0c00 movel %a2,%a1@(00000000,%d0:l:4) <== NOT EXECUTED /* * In this case we need to do an ID->pointer conversion to * check the mode. */ the_mq = _POSIX_Message_queue_Get( the_mq_id, &location ); 48b38: 2d48 fff8 movel %a0,%fp@(-8) <== NOT EXECUTED the_mq->open_count += 1; the_mq_fd->Queue = the_mq; 48b3c: 2548 0010 movel %a0,%a2@(16) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string */ the_object->name.name_p = name; 48b40: 42aa 000c clrl %a2@(12) <== NOT EXECUTED _Objects_Open_string( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object, NULL ); _Thread_Enable_dispatch(); 48b44: 4e93 jsr %a3@ <== NOT EXECUTED _Thread_Enable_dispatch(); 48b46: 4e93 jsr %a3@ <== NOT EXECUTED return (mqd_t)the_mq_fd->Object.id; 48b48: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED 48b4c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48b52: 6058 bras 48bac <== NOT EXECUTED /* * At this point, the message queue does not exist and everything has been * checked. We should go ahead and create a message queue. */ status = _POSIX_Message_queue_Create_support( 48b54: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 48b58: 47f9 0004 c48a lea 4c48a <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 48b5e: 2f05 movel %d5,%sp@- <== NOT EXECUTED 48b60: 4878 0001 pea 1 <== NOT EXECUTED 48b64: 2f06 movel %d6,%sp@- <== NOT EXECUTED 48b66: 4eb9 0004 efb4 jsr 4efb4 <_POSIX_Message_queue_Create_support> <== NOT EXECUTED /* * errno was set by Create_support, so don't set it again. */ if ( status == -1 ) { 48b6c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 48b72: 72ff moveq #-1,%d1 <== NOT EXECUTED 48b74: b280 cmpl %d0,%d1 <== NOT EXECUTED 48b76: 6614 bnes 48b8c <== NOT EXECUTED _Thread_Enable_dispatch(); 48b78: 4e93 jsr %a3@ <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free_fd ( POSIX_Message_queue_Control_fd *the_mq_fd ) { _Objects_Free( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object ); 48b7a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48b7c: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 48b82: 4eb9 0004 baf0 jsr 4baf0 <_Objects_Free> <== NOT EXECUTED 48b88: 6000 ff4a braw 48ad4 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 48b8c: 2079 0006 05cc moveal 605cc <_POSIX_Message_queue_Information_fds+0x1a>,%a0 <== NOT EXECUTED 48b92: 4280 clrl %d0 <== NOT EXECUTED 48b94: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 48b98: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED _POSIX_Message_queue_Free_fd( the_mq_fd ); return (mqd_t) -1; } the_mq_fd->Queue = the_mq; 48b9c: 256e fff8 0010 movel %fp@(-8),%a2@(16) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string */ the_object->name.name_p = name; 48ba2: 42aa 000c clrl %a2@(12) <== NOT EXECUTED &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object, NULL ); _Thread_Enable_dispatch(); 48ba6: 4e93 jsr %a3@ <== NOT EXECUTED return (mqd_t) the_mq_fd->Object.id; 48ba8: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED } 48bac: 4cee 0c7c ffd8 moveml %fp@(-40),%d2-%d6/%a2-%a3 <== NOT EXECUTED 48bb2: 4e5e unlk %fp <== NOT EXECUTED 48bb4: 4e75 rts <== NOT EXECUTED ... 00048bb8 : mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned int *msg_prio ) { 48bb8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Message_queue_Receive_support( 48bbc: 42a7 clrl %sp@- <== NOT EXECUTED 48bbe: 4878 0001 pea 1 <== NOT EXECUTED 48bc2: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 48bc6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 48bca: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48bce: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48bd2: 4eb9 0004 8bdc jsr 48bdc <_POSIX_Message_queue_Receive_support> <== NOT EXECUTED msg_len, msg_prio, TRUE, THREAD_QUEUE_WAIT_FOREVER ); } 48bd8: 4e5e unlk %fp <== NOT EXECUTED 48bda: 4e75 rts 00048cf8 : mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned int msg_prio ) { 48cf8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Message_queue_Send_support( 48cfc: 42a7 clrl %sp@- <== NOT EXECUTED 48cfe: 4878 0001 pea 1 <== NOT EXECUTED 48d02: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 48d06: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 48d0a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48d0e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48d12: 4eb9 0004 8d1c jsr 48d1c <_POSIX_Message_queue_Send_support> <== NOT EXECUTED msg_len, msg_prio, TRUE, THREAD_QUEUE_WAIT_FOREVER ); } 48d18: 4e5e unlk %fp <== NOT EXECUTED 48d1a: 4e75 rts 00048e18 : int mq_setattr( mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat ) { 48e18: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 48e1c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48e1e: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 48e22: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48e24: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED POSIX_Message_queue_Control_fd *the_mq_fd; CORE_message_queue_Control *the_core_mq; Objects_Locations location; if ( !mqstat ) 48e28: 4a8b tstl %a3 <== NOT EXECUTED 48e2a: 6610 bnes 48e3c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 48e2c: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48e32: 2040 moveal %d0,%a0 <== NOT EXECUTED 48e34: 7016 moveq #22,%d0 <== NOT EXECUTED 48e36: 2080 movel %d0,%a0@ <== NOT EXECUTED 48e38: 70ff moveq #-1,%d0 <== NOT EXECUTED 48e3a: 605c bras 48e98 <== NOT EXECUTED 48e3c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48e40: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48e44: 4879 0006 05b2 pea 605b2 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 48e4a: 4eb9 0004 bc50 jsr 4bc50 <_Objects_Get> <== NOT EXECUTED the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { 48e50: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48e56: 2240 moveal %d0,%a1 <== NOT EXECUTED 48e58: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48e5c: 662c bnes 48e8a <== NOT EXECUTED case OBJECTS_LOCAL: the_core_mq = &the_mq_fd->Queue->Message_queue; 48e5e: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED /* * Return the old values. */ if ( omqstat ) { 48e62: 4a8a tstl %a2 <== NOT EXECUTED 48e64: 6716 beqs 48e7c <== NOT EXECUTED omqstat->mq_flags = the_mq_fd->oflag; 48e66: 24a9 0014 movel %a1@(20),%a2@ <== NOT EXECUTED omqstat->mq_msgsize = the_core_mq->maximum_message_size; 48e6a: 2568 0066 0008 movel %a0@(102),%a2@(8) <== NOT EXECUTED omqstat->mq_maxmsg = the_core_mq->maximum_pending_messages; 48e70: 2568 005e 0004 movel %a0@(94),%a2@(4) <== NOT EXECUTED omqstat->mq_curmsgs = the_core_mq->number_of_pending_messages; 48e76: 2568 0062 000c movel %a0@(98),%a2@(12) <== NOT EXECUTED } the_mq_fd->oflag = mqstat->mq_flags; 48e7c: 2353 0014 movel %a3@,%a1@(20) <== NOT EXECUTED _Thread_Enable_dispatch(); 48e80: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED 48e86: 4280 clrl %d0 <== NOT EXECUTED 48e88: 600e bras 48e98 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 48e8a: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48e90: 2040 moveal %d0,%a0 <== NOT EXECUTED 48e92: 7209 moveq #9,%d1 <== NOT EXECUTED 48e94: 70ff moveq #-1,%d0 <== NOT EXECUTED 48e96: 2081 movel %d1,%a0@ <== NOT EXECUTED } 48e98: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 48e9c: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 48ea0: 4e5e unlk %fp <== NOT EXECUTED 48ea2: 4e75 rts 00048ea4 : char *msg_ptr, size_t msg_len, unsigned int *msg_prio, const struct timespec *abstime ) { 48ea4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED * So we check the abstime provided, and hold on to whether it * is valid or not. If it isn't correct and in the future, * then we do a polling operation and convert the UNSATISFIED * status into the appropriate error. */ switch ( _POSIX_Absolute_timeout_to_ticks( abstime, &ticks ) ) { 48ea8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48eac: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 48eb0: 4eb9 0004 8fd4 jsr 48fd4 <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED 48eb6: 508f addql #8,%sp <== NOT EXECUTED 48eb8: 7202 moveq #2,%d1 <== NOT EXECUTED default: /* only to silence warnings */ do_wait = TRUE; break; } return _POSIX_Message_queue_Receive_support( 48eba: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED * So we check the abstime provided, and hold on to whether it * is valid or not. If it isn't correct and in the future, * then we do a polling operation and convert the UNSATISFIED * status into the appropriate error. */ switch ( _POSIX_Absolute_timeout_to_ticks( abstime, &ticks ) ) { 48ebe: b280 cmpl %d0,%d1 <== NOT EXECUTED 48ec0: 55c0 scs %d0 <== NOT EXECUTED 48ec2: 4480 negl %d0 <== NOT EXECUTED default: /* only to silence warnings */ do_wait = TRUE; break; } return _POSIX_Message_queue_Receive_support( 48ec4: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 48eca: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48ecc: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 48ed0: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 48ed4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48ed8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48edc: 4eb9 0004 8bdc jsr 48bdc <_POSIX_Message_queue_Receive_support> <== NOT EXECUTED msg_len, msg_prio, do_wait, ticks ); } 48ee2: 4e5e unlk %fp <== NOT EXECUTED 48ee4: 4e75 rts <== NOT EXECUTED ... 00048ee8 : const char *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec *abstime ) { 48ee8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED * So we check the abstime provided, and hold on to whether it * is valid or not. If it isn't correct and in the future, * then we do a polling operation and convert the UNSATISFIED * status into the appropriate error. */ switch ( _POSIX_Absolute_timeout_to_ticks( abstime, &ticks ) ) { 48eec: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48ef0: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 48ef4: 4eb9 0004 8fd4 jsr 48fd4 <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED 48efa: 508f addql #8,%sp <== NOT EXECUTED 48efc: 7202 moveq #2,%d1 <== NOT EXECUTED default: /* only to silence warnings */ do_wait = TRUE; break; } return _POSIX_Message_queue_Send_support( 48efe: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED * So we check the abstime provided, and hold on to whether it * is valid or not. If it isn't correct and in the future, * then we do a polling operation and convert the UNSATISFIED * status into the appropriate error. */ switch ( _POSIX_Absolute_timeout_to_ticks( abstime, &ticks ) ) { 48f02: b280 cmpl %d0,%d1 <== NOT EXECUTED 48f04: 55c0 scs %d0 <== NOT EXECUTED 48f06: 4480 negl %d0 <== NOT EXECUTED default: /* only to silence warnings */ do_wait = TRUE; break; } return _POSIX_Message_queue_Send_support( 48f08: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 48f0e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48f10: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 48f14: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 48f18: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48f1c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48f20: 4eb9 0004 8d1c jsr 48d1c <_POSIX_Message_queue_Send_support> <== NOT EXECUTED msg_len, msg_prio, do_wait, ticks ); } 48f26: 4e5e unlk %fp <== NOT EXECUTED 48f28: 4e75 rts <== NOT EXECUTED ... 00048f44 : 48f44: 2039 0006 0168 movel 60168 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED */ int mq_unlink( const char *name ) { 48f4a: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 48f4e: 5280 addql #1,%d0 <== NOT EXECUTED 48f50: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48f52: 23c0 0006 0168 movel %d0,60168 <_Thread_Dispatch_disable_level> <== NOT EXECUTED register POSIX_Message_queue_Control *the_mq; Objects_Id the_mq_id; _Thread_Disable_dispatch(); status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id ); 48f58: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48f5c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48f60: 4eb9 0004 f130 jsr 4f130 <_POSIX_Message_queue_Name_to_id> <== NOT EXECUTED if ( status != 0 ) { 48f66: 508f addql #8,%sp <== NOT EXECUTED register POSIX_Message_queue_Control *the_mq; Objects_Id the_mq_id; _Thread_Disable_dispatch(); status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id ); 48f68: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( status != 0 ) { 48f6a: 4a80 tstl %d0 <== NOT EXECUTED 48f6c: 6714 beqs 48f82 <== NOT EXECUTED _Thread_Enable_dispatch(); 48f6e: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( status ); 48f74: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 48f7a: 2040 moveal %d0,%a0 <== NOT EXECUTED 48f7c: 208a movel %a2,%a0@ <== NOT EXECUTED 48f7e: 70ff moveq #-1,%d0 <== NOT EXECUTED 48f80: 604a bras 48fcc <== NOT EXECUTED RTEMS_INLINE_ROUTINE Objects_Control *_Objects_Get_local_object( Objects_Information *information, uint16_t index ) { if ( index > information->maximum ) 48f82: 4281 clrl %d1 <== NOT EXECUTED 48f84: 4280 clrl %d0 <== NOT EXECUTED 48f86: 322e fffe movew %fp@(-2),%d1 <== NOT EXECUTED 48f8a: 3039 0006 0458 movew 60458 <_POSIX_Message_queue_Information+0xe>,%d0 <== NOT EXECUTED 48f90: b081 cmpl %d1,%d0 <== NOT EXECUTED 48f92: 6404 bccs 48f98 <== NOT EXECUTED 48f94: 95ca subal %a2,%a2 <== NOT EXECUTED 48f96: 600a bras 48fa2 <== NOT EXECUTED return NULL; return information->local_table[ index ]; 48f98: 2079 0006 0464 moveal 60464 <_POSIX_Message_queue_Information+0x1a>,%a0 <== NOT EXECUTED 48f9e: 2470 1c00 moveal %a0@(00000000,%d1:l:4),%a2 <== NOT EXECUTED the_mq = (POSIX_Message_queue_Control *) _Objects_Get_local_object( &_POSIX_Message_queue_Information, _Objects_Get_index( the_mq_id ) ); the_mq->linked = FALSE; 48fa2: 4200 clrb %d0 <== NOT EXECUTED 48fa4: 1540 0015 moveb %d0,%a2@(21) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Namespace_remove ( POSIX_Message_queue_Control *the_mq ) { _Objects_Namespace_remove( 48fa8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48faa: 4879 0006 044a pea 6044a <_POSIX_Message_queue_Information> <== NOT EXECUTED 48fb0: 4eb9 0004 bd84 jsr 4bd84 <_Objects_Namespace_remove> <== NOT EXECUTED _POSIX_Message_queue_Namespace_remove( the_mq ); _POSIX_Message_queue_Delete( the_mq ); 48fb6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48fb8: 4eb9 0004 887c jsr 4887c <_POSIX_Message_queue_Delete> <== NOT EXECUTED _Thread_Enable_dispatch(); 48fbe: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED 48fc4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48fca: 4280 clrl %d0 <== NOT EXECUTED return 0; } 48fcc: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 48fd0: 4e5e unlk %fp <== NOT EXECUTED 48fd2: 4e75 rts 0004ee40 : int nanosleep( const struct timespec *rqtp, struct timespec *rmtp ) { 4ee40: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4ee44: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 4ee48: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4ee4c: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED Watchdog_Interval ticks; if ( !_Timespec_Is_valid( rqtp ) ) 4ee50: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ee52: 4eb9 0005 07c8 jsr 507c8 <_Timespec_Is_valid> <== NOT EXECUTED 4ee58: 588f addql #4,%sp <== NOT EXECUTED 4ee5a: 4a00 tstb %d0 <== NOT EXECUTED 4ee5c: 670a beqs 4ee68 <== NOT EXECUTED * Return EINVAL if the delay interval is negative. * * NOTE: This behavior is beyond the POSIX specification. * FSU and GNU/Linux pthreads shares this behavior. */ if ( rqtp->tv_sec < 0 || rqtp->tv_nsec < 0 ) 4ee5e: 4a92 tstl %a2@ <== NOT EXECUTED 4ee60: 6d06 blts 4ee68 <== NOT EXECUTED 4ee62: 4aaa 0004 tstl %a2@(4) <== NOT EXECUTED 4ee66: 6c10 bges 4ee78 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4ee68: 4eb9 0005 2e00 jsr 52e00 <__errno> <== NOT EXECUTED 4ee6e: 7216 moveq #22,%d1 <== NOT EXECUTED 4ee70: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ee72: 2081 movel %d1,%a0@ <== NOT EXECUTED 4ee74: 6000 00cc braw 4ef42 <== NOT EXECUTED ticks = _Timespec_To_ticks( rqtp ); 4ee78: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ee7a: 4eb9 0005 07f0 jsr 507f0 <_Timespec_To_ticks> <== NOT EXECUTED * A nanosleep for zero time is implemented as a yield. * This behavior is also beyond the POSIX specification but is * consistent with the RTEMS API and yields desirable behavior. */ if ( !ticks ) { 4ee80: 588f addql #4,%sp <== NOT EXECUTED * FSU and GNU/Linux pthreads shares this behavior. */ if ( rqtp->tv_sec < 0 || rqtp->tv_nsec < 0 ) rtems_set_errno_and_return_minus_one( EINVAL ); ticks = _Timespec_To_ticks( rqtp ); 4ee82: 2440 moveal %d0,%a2 <== NOT EXECUTED 4ee84: 49f9 0004 a936 lea 4a936 <_Thread_Enable_dispatch>,%a4 <== NOT EXECUTED * A nanosleep for zero time is implemented as a yield. * This behavior is also beyond the POSIX specification but is * consistent with the RTEMS API and yields desirable behavior. */ if ( !ticks ) { 4ee8a: 4a80 tstl %d0 <== NOT EXECUTED 4ee8c: 6628 bnes 4eeb6 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4ee8e: 2039 0006 3be4 movel 63be4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4ee94: 5280 addql #1,%d0 <== NOT EXECUTED 4ee96: 23c0 0006 3be4 movel %d0,63be4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); _Thread_Yield_processor(); 4ee9c: 4eb9 0004 b5a8 jsr 4b5a8 <_Thread_Yield_processor> <== NOT EXECUTED _Thread_Enable_dispatch(); 4eea2: 4e94 jsr %a4@ <== NOT EXECUTED if ( rmtp ) { 4eea4: 4a8b tstl %a3 <== NOT EXECUTED 4eea6: 6700 009e beqw 4ef46 <== NOT EXECUTED rmtp->tv_sec = 0; rmtp->tv_nsec = 0; 4eeaa: 42ab 0004 clrl %a3@(4) <== NOT EXECUTED 4eeae: 4280 clrl %d0 <== NOT EXECUTED if ( !ticks ) { _Thread_Disable_dispatch(); _Thread_Yield_processor(); _Thread_Enable_dispatch(); if ( rmtp ) { rmtp->tv_sec = 0; 4eeb0: 4293 clrl %a3@ <== NOT EXECUTED 4eeb2: 6000 0094 braw 4ef48 <== NOT EXECUTED 4eeb6: 2039 0006 3be4 movel 63be4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4eebc: 5280 addql #1,%d0 <== NOT EXECUTED 4eebe: 23c0 0006 3be4 movel %d0,63be4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Block for the desired amount of time */ _Thread_Disable_dispatch(); _Thread_Set_state( 4eec4: 2f3c 1000 0008 movel #268435464,%sp@- <== NOT EXECUTED 4eeca: 2f39 0006 3ca2 movel 63ca2 <_Thread_Executing>,%sp@- <== NOT EXECUTED 4eed0: 4eb9 0004 b1a8 jsr 4b1a8 <_Thread_Set_state> <== NOT EXECUTED _Thread_Executing, STATES_DELAYING | STATES_INTERRUPTIBLE_BY_SIGNAL ); _Watchdog_Initialize( 4eed6: 2079 0006 3ca2 moveal 63ca2 <_Thread_Executing>,%a0 <== NOT EXECUTED 4eedc: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 4eee0: 2140 0068 movel %d0,%a0@(104) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4eee4: 203c 0004 a7a8 movel #305064,%d0 <== NOT EXECUTED 4eeea: 2140 0064 movel %d0,%a0@(100) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4eeee: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 4eef2: 42a8 006c clrl %a0@(108) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4eef6: 214a 0054 movel %a2,%a0@(84) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4eefa: 4868 0048 pea %a0@(72) <== NOT EXECUTED 4eefe: 4879 0006 3cc0 pea 63cc0 <_Watchdog_Ticks_chain> <== NOT EXECUTED 4ef04: 4eb9 0004 b97c jsr 4b97c <_Watchdog_Insert> <== NOT EXECUTED _Thread_Delay_ended, _Thread_Executing->Object.id, NULL ); _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks ); _Thread_Enable_dispatch(); 4ef0a: 4e94 jsr %a4@ <== NOT EXECUTED /* calculate time remaining */ if ( rmtp ) { 4ef0c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4ef12: 4a8b tstl %a3 <== NOT EXECUTED 4ef14: 6730 beqs 4ef46 <== NOT EXECUTED ticks -= 4ef16: 2079 0006 3ca2 moveal 63ca2 <_Thread_Executing>,%a0 <== NOT EXECUTED 4ef1c: 2428 005c movel %a0@(92),%d2 <== NOT EXECUTED 4ef20: 94a8 0060 subl %a0@(96),%d2 <== NOT EXECUTED _Thread_Executing->Timer.stop_time - _Thread_Executing->Timer.start_time; _Timespec_From_ticks( ticks, rmtp ); 4ef24: 2f0b movel %a3,%sp@- <== NOT EXECUTED _Thread_Enable_dispatch(); /* calculate time remaining */ if ( rmtp ) { ticks -= 4ef26: d48a addl %a2,%d2 <== NOT EXECUTED _Thread_Executing->Timer.stop_time - _Thread_Executing->Timer.start_time; _Timespec_From_ticks( ticks, rmtp ); 4ef28: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ef2a: 4eb9 0005 0788 jsr 50788 <_Timespec_From_ticks> <== NOT EXECUTED /* * If there is time remaining, then we were interrupted by a signal. */ if ( ticks ) 4ef30: 508f addql #8,%sp <== NOT EXECUTED 4ef32: 4a82 tstl %d2 <== NOT EXECUTED 4ef34: 6710 beqs 4ef46 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINTR ); 4ef36: 4eb9 0005 2e00 jsr 52e00 <__errno> <== NOT EXECUTED 4ef3c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ef3e: 7004 moveq #4,%d0 <== NOT EXECUTED 4ef40: 2080 movel %d0,%a0@ <== NOT EXECUTED 4ef42: 70ff moveq #-1,%d0 <== NOT EXECUTED 4ef44: 6002 bras 4ef48 <== NOT EXECUTED 4ef46: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 4ef48: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 4ef4e: 4e5e unlk %fp <== NOT EXECUTED 4ef50: 4e75 rts <== 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 baac jsr 4baac <== 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 8e8c jsr 48e8c <== 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 b8e2 jsr 4b8e2 <== 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 9570 tstb 59570 <== 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 9570 moveb %d0,59570 <== NOT EXECUTED status = rtems_io_register_name( 4276a: 4879 0005 6ba4 pea 56ba4 <== 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 5f5c jsr 45f5c <== NOT EXECUTED NULL_major = major; 42788: 23c2 0005 9d7c movel %d2,59d7c <== 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 921e jsr 4921e <== 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 018a braw 42978 <== 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: 6664 bnes 4287a <== NOT EXECUTED if ( errno != ENOENT ) { 42816: 45f9 0004 b794 lea 4b794 <__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: 662c bnes 42852 <== 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: 6608 bnes 42834 <== NOT EXECUTED 4282c: 95ca subal %a2,%a2 <== NOT EXECUTED 4282e: 7402 moveq #2,%d2 <== NOT EXECUTED 42830: 6000 011e braw 42950 <== NOT EXECUTED rc = ENOENT; goto done; } /* Create the node for the new regular file */ rc = mknod( pathname, S_IFREG | mode, 0LL ); 42834: 42a7 clrl %sp@- <== NOT EXECUTED 42836: 2206 movel %d6,%d1 <== NOT EXECUTED 42838: 08c1 000f bset #15,%d1 <== NOT EXECUTED 4283c: 42a7 clrl %sp@- <== NOT EXECUTED 4283e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 42840: 2f05 movel %d5,%sp@- <== NOT EXECUTED 42842: 4eb9 0004 2334 jsr 42334 <== NOT EXECUTED if ( rc ) { 42848: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4284e: 4a80 tstl %d0 <== NOT EXECUTED 42850: 670a beqs 4285c <== NOT EXECUTED rc = errno; 42852: 4e92 jsr %a2@ <== NOT EXECUTED 42854: 2040 moveal %d0,%a0 <== NOT EXECUTED 42856: 2410 movel %a0@,%d2 <== NOT EXECUTED 42858: 6000 00f0 braw 4294a <== 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 ); 4285c: 4878 0001 pea 1 <== NOT EXECUTED 42860: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42862: 42a7 clrl %sp@- <== NOT EXECUTED 42864: 2f05 movel %d5,%sp@- <== NOT EXECUTED 42866: 4e94 jsr %a4@ <== NOT EXECUTED if ( status != 0 ) { /* The file did not exist */ 42868: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4286e: 4a80 tstl %d0 <== NOT EXECUTED 42870: 6720 beqs 42892 <== NOT EXECUTED 42872: 95ca subal %a2,%a2 <== NOT EXECUTED 42874: 740d moveq #13,%d2 <== NOT EXECUTED 42876: 6000 00d8 braw 42950 <== NOT EXECUTED rc = EACCES; goto done; } } else if ((flags & (O_EXCL|O_CREAT)) == (O_EXCL|O_CREAT)) { 4287a: 2004 movel %d4,%d0 <== NOT EXECUTED 4287c: 0280 0000 0a00 andil #2560,%d0 <== NOT EXECUTED 42882: 0c80 0000 0a00 cmpil #2560,%d0 <== NOT EXECUTED 42888: 6608 bnes 42892 <== NOT EXECUTED 4288a: 2443 moveal %d3,%a2 <== NOT EXECUTED 4288c: 7411 moveq #17,%d2 <== NOT EXECUTED 4288e: 6000 00c0 braw 42950 <== NOT EXECUTED * returned by successful path evaluation. */ iop->handlers = loc.handlers; iop->file_info = loc.node_access; iop->flags |= rtems_libio_fcntl_flags( flags ); 42892: 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; 42896: 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; 4289c: 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; 428a0: 276e fff0 002c movel %fp@(-16),%a3@(44) <== NOT EXECUTED iop->flags |= rtems_libio_fcntl_flags( flags ); 428a6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 428a8: 4eb9 0004 92ce jsr 492ce <== NOT EXECUTED 428ae: 8082 orl %d2,%d0 <== NOT EXECUTED 428b0: 2740 000c movel %d0,%a3@(12) <== NOT EXECUTED iop->pathinfo = loc; 428b4: 4878 0010 pea 10 <== NOT EXECUTED 428b8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 428ba: 486b 0010 pea %a3@(16) <== NOT EXECUTED 428be: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED if ( !iop->handlers->open_h ) { 428c4: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED 428c8: 2050 moveal %a0@,%a0 <== NOT EXECUTED 428ca: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 428d0: 4a88 tstl %a0 <== NOT EXECUTED 428d2: 6700 00d0 beqw 429a4 <== NOT EXECUTED rc = ENOTSUP; goto done; } rc = (*iop->handlers->open_h)( iop, pathname, flags, mode ); 428d6: 2f06 movel %d6,%sp@- <== NOT EXECUTED 428d8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 428da: 2f05 movel %d5,%sp@- <== NOT EXECUTED 428dc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 428de: 4e90 jsr %a0@ <== NOT EXECUTED if ( rc ) 428e0: 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 ); 428e6: 2400 movel %d0,%d2 <== NOT EXECUTED if ( rc ) 428e8: 6666 bnes 42950 <== NOT EXECUTED /* * Optionally truncate the file. */ if ( (flags & O_TRUNC) == O_TRUNC ) { 428ea: 0804 000a btst #10,%d4 <== NOT EXECUTED 428ee: 6700 0096 beqw 42986 <== NOT EXECUTED rc = ftruncate( iop - rtems_libio_iops, 0 ); 428f2: 200b movel %a3,%d0 <== NOT EXECUTED 428f4: 90b9 0005 7d14 subl 57d14 ,%d0 <== NOT EXECUTED 428fa: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 42900: e480 asrl #2,%d0 <== NOT EXECUTED 42902: 4c00 1800 mulsl %d0,%d1 <== NOT EXECUTED 42906: 42a7 clrl %sp@- <== NOT EXECUTED 42908: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4290a: 4eb9 0004 8f14 jsr 48f14 <== NOT EXECUTED if ( rc ) { 42910: 508f addql #8,%sp <== NOT EXECUTED /* * Optionally truncate the file. */ if ( (flags & O_TRUNC) == O_TRUNC ) { rc = ftruncate( iop - rtems_libio_iops, 0 ); 42912: 2400 movel %d0,%d2 <== NOT EXECUTED if ( rc ) { 42914: 6770 beqs 42986 <== NOT EXECUTED if(errno) rc = errno; 42916: 45f9 0004 b794 lea 4b794 <__errno>,%a2 <== NOT EXECUTED 4291c: 4e92 jsr %a2@ <== NOT EXECUTED 4291e: 2040 moveal %d0,%a0 <== NOT EXECUTED 42920: 4a90 tstl %a0@ <== NOT EXECUTED 42922: 6706 beqs 4292a <== NOT EXECUTED 42924: 4e92 jsr %a2@ <== NOT EXECUTED 42926: 2040 moveal %d0,%a0 <== NOT EXECUTED 42928: 2410 movel %a0@,%d2 <== NOT EXECUTED close( iop - rtems_libio_iops ); 4292a: 97f9 0005 7d14 subal 57d14 ,%a3 <== NOT EXECUTED 42930: 200b movel %a3,%d0 <== NOT EXECUTED 42932: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 42938: e480 asrl #2,%d0 <== NOT EXECUTED 4293a: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 4293e: 97cb subal %a3,%a3 <== NOT EXECUTED 42940: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42942: 4eb9 0004 8dec jsr 48dec <== NOT EXECUTED 42948: 588f addql #4,%sp <== NOT EXECUTED */ done: va_end(ap); if ( rc ) { 4294a: 4a82 tstl %d2 <== NOT EXECUTED 4294c: 6738 beqs 42986 <== NOT EXECUTED 4294e: 95ca subal %a2,%a2 <== NOT EXECUTED if ( iop ) 42950: 4a8b tstl %a3 <== NOT EXECUTED 42952: 670a beqs 4295e <== NOT EXECUTED rtems_libio_free( iop ); 42954: 2f0b movel %a3,%sp@- <== NOT EXECUTED 42956: 4eb9 0004 91be jsr 491be <== NOT EXECUTED 4295c: 588f addql #4,%sp <== NOT EXECUTED if ( loc_to_free ) 4295e: 4a8a tstl %a2 <== NOT EXECUTED 42960: 6716 beqs 42978 <== NOT EXECUTED rtems_filesystem_freenode( loc_to_free ); 42962: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 42966: 4a88 tstl %a0 <== NOT EXECUTED 42968: 670e beqs 42978 <== NOT EXECUTED 4296a: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 4296e: 4a88 tstl %a0 <== NOT EXECUTED 42970: 6706 beqs 42978 <== NOT EXECUTED 42972: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42974: 4e90 jsr %a0@ <== NOT EXECUTED 42976: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( rc ); 42978: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 4297e: 2040 moveal %d0,%a0 <== NOT EXECUTED 42980: 2082 movel %d2,%a0@ <== NOT EXECUTED 42982: 70ff moveq #-1,%d0 <== NOT EXECUTED 42984: 6014 bras 4299a <== NOT EXECUTED } return iop - rtems_libio_iops; 42986: 200b movel %a3,%d0 <== NOT EXECUTED 42988: 90b9 0005 7d14 subl 57d14 ,%d0 <== NOT EXECUTED 4298e: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 42994: e480 asrl #2,%d0 <== NOT EXECUTED 42996: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED } 4299a: 4cee 1c7c ffd0 moveml %fp@(-48),%d2-%d6/%a2-%a4 <== NOT EXECUTED 429a0: 4e5e unlk %fp <== NOT EXECUTED 429a2: 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; 429a4: 243c 0000 0086 movel #134,%d2 <== NOT EXECUTED 429aa: 60a4 bras 42950 <== 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 4b5a pea 54b5a <== 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 4b5a pea 54b5a <== 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 4b5a pea 54b5a <== 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 5580 jsr 45580 <== NOT EXECUTED } 427a8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 427ac: 4e5e unlk %fp <== NOT EXECUTED 427ae: 4e75 rts 0005c2a0 : * open a directory. */ DIR * opendir( const char *name ) { 5c2a0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 5c2a4: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED register DIR *dirp; register int fd; if ((fd = open(name, 0)) == -1) 5c2a8: 42a7 clrl %sp@- <== NOT EXECUTED 5c2aa: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c2ae: 4eb9 0004 613c jsr 4613c <== NOT EXECUTED 5c2b4: 2400 movel %d0,%d2 <== NOT EXECUTED 5c2b6: 508f addql #8,%sp <== NOT EXECUTED 5c2b8: 70ff moveq #-1,%d0 <== NOT EXECUTED 5c2ba: b082 cmpl %d2,%d0 <== NOT EXECUTED 5c2bc: 673a beqs 5c2f8 <== NOT EXECUTED return NULL; if (fcntl(fd, F_SETFD, 1) == -1 || 5c2be: 4878 0001 pea 1 <== NOT EXECUTED 5c2c2: 4878 0002 pea 2 <== NOT EXECUTED 5c2c6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c2c8: 4eb9 0006 66b4 jsr 666b4 <== NOT EXECUTED 5c2ce: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c2d4: 72ff moveq #-1,%d1 <== NOT EXECUTED 5c2d6: b280 cmpl %d0,%d1 <== NOT EXECUTED 5c2d8: 6714 beqs 5c2ee <== NOT EXECUTED 5c2da: 47f9 0004 58e4 lea 458e4 ,%a3 <== NOT EXECUTED 5c2e0: 4878 0018 pea 18 <== NOT EXECUTED 5c2e4: 4e93 jsr %a3@ <== NOT EXECUTED 5c2e6: 588f addql #4,%sp <== NOT EXECUTED 5c2e8: 2440 moveal %d0,%a2 <== NOT EXECUTED 5c2ea: 4a80 tstl %d0 <== NOT EXECUTED 5c2ec: 660e bnes 5c2fc <== NOT EXECUTED (dirp = (DIR *)malloc(sizeof(DIR))) == NULL) { close (fd); 5c2ee: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c2f0: 4eb9 0004 4f20 jsr 44f20 <== NOT EXECUTED 5c2f6: 588f addql #4,%sp <== NOT EXECUTED 5c2f8: 95ca subal %a2,%a2 <== NOT EXECUTED 5c2fa: 6024 bras 5c320 <== 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); 5c2fc: 4878 0200 pea 200 <== NOT EXECUTED 5c300: 4e93 jsr %a3@ <== NOT EXECUTED dirp->dd_len = 512; 5c302: 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); 5c308: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED dirp->dd_len = 512; if (dirp->dd_buf == NULL) { 5c30c: 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; 5c30e: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED if (dirp->dd_buf == NULL) { 5c312: 4a80 tstl %d0 <== NOT EXECUTED 5c314: 67d8 beqs 5c2ee <== NOT EXECUTED close (fd); return NULL; } dirp->dd_fd = fd; 5c316: 2482 movel %d2,%a2@ <== NOT EXECUTED dirp->dd_loc = 0; 5c318: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED dirp->dd_seek = 0; 5c31c: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED /* * Set up seek point for rewinddir. */ return dirp; } 5c320: 200a movel %a2,%d0 <== NOT EXECUTED 5c322: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 5c328: 4e5e unlk %fp <== NOT EXECUTED 5c32a: 4e75 rts 0004336e : /* * Handle output processing */ static void oproc (unsigned char c, struct rtems_termios_tty *tty) { 4336e: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 43372: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 43376: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4337a: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED int i; if (tty->termios.c_oflag & OPOST) { 4337e: 222a 0034 movel %a2@(52),%d1 <== NOT EXECUTED /* * Handle output processing */ static void oproc (unsigned char c, struct rtems_termios_tty *tty) { 43382: 1d40 fffe moveb %d0,%fp@(-2) <== NOT EXECUTED int i; if (tty->termios.c_oflag & OPOST) { 43386: 0801 0000 btst #0,%d1 <== NOT EXECUTED 4338a: 6700 0108 beqw 43494 <== NOT EXECUTED switch (c) { 4338e: 1400 moveb %d0,%d2 <== NOT EXECUTED 43390: 4280 clrl %d0 <== NOT EXECUTED 43392: 1002 moveb %d2,%d0 <== NOT EXECUTED 43394: 7609 moveq #9,%d3 <== NOT EXECUTED 43396: b680 cmpl %d0,%d3 <== NOT EXECUTED 43398: 6778 beqs 43412 <== NOT EXECUTED 4339a: 650e bcss 433aa <== NOT EXECUTED 4339c: 163c 0008 moveb #8,%d3 <== NOT EXECUTED 433a0: b680 cmpl %d0,%d3 <== NOT EXECUTED 433a2: 6600 00ae bnew 43452 <== NOT EXECUTED 433a6: 6000 009c braw 43444 <== NOT EXECUTED 433aa: 760a moveq #10,%d3 <== NOT EXECUTED 433ac: b680 cmpl %d0,%d3 <== NOT EXECUTED 433ae: 670c beqs 433bc <== NOT EXECUTED 433b0: 163c 000d moveb #13,%d3 <== NOT EXECUTED 433b4: b680 cmpl %d0,%d3 <== NOT EXECUTED 433b6: 6600 009a bnew 43452 <== NOT EXECUTED 433ba: 602e bras 433ea <== NOT EXECUTED case '\n': if (tty->termios.c_oflag & ONLRET) 433bc: 0801 0005 btst #5,%d1 <== NOT EXECUTED 433c0: 6704 beqs 433c6 <== NOT EXECUTED tty->column = 0; 433c2: 42aa 0028 clrl %a2@(40) <== NOT EXECUTED if (tty->termios.c_oflag & ONLCR) { 433c6: 7004 moveq #4,%d0 <== NOT EXECUTED 433c8: c0aa 0034 andl %a2@(52),%d0 <== NOT EXECUTED 433cc: 6700 00c6 beqw 43494 <== NOT EXECUTED rtems_termios_puts ("\r", 1, tty); 433d0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 433d2: 4878 0001 pea 1 <== NOT EXECUTED 433d6: 4879 0005 507a pea 5507a <== NOT EXECUTED 433dc: 4eb9 0004 326e jsr 4326e <== NOT EXECUTED tty->column = 0; 433e2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 433e8: 6020 bras 4340a <== NOT EXECUTED } break; case '\r': if ((tty->termios.c_oflag & ONOCR) && (tty->column == 0)) 433ea: 0801 0004 btst #4,%d1 <== NOT EXECUTED 433ee: 6708 beqs 433f8 <== NOT EXECUTED 433f0: 4aaa 0028 tstl %a2@(40) <== NOT EXECUTED 433f4: 6700 00b4 beqw 434aa <== NOT EXECUTED return; if (tty->termios.c_oflag & OCRNL) { 433f8: 44c1 movew %d1,%ccr <== NOT EXECUTED 433fa: 6a0e bpls 4340a <== NOT EXECUTED c = '\n'; 433fc: 700a moveq #10,%d0 <== NOT EXECUTED 433fe: 1d40 fffe moveb %d0,%fp@(-2) <== NOT EXECUTED if (tty->termios.c_oflag & ONLRET) 43402: 0801 0005 btst #5,%d1 <== NOT EXECUTED 43406: 6700 008c beqw 43494 <== NOT EXECUTED tty->column = 0; break; } tty->column = 0; 4340a: 42aa 0028 clrl %a2@(40) <== NOT EXECUTED 4340e: 6000 0084 braw 43494 <== NOT EXECUTED break; case '\t': i = 8 - (tty->column & 7); 43412: 242a 0028 movel %a2@(40),%d2 <== NOT EXECUTED 43416: 7007 moveq #7,%d0 <== NOT EXECUTED 43418: c082 andl %d2,%d0 <== NOT EXECUTED 4341a: 7608 moveq #8,%d3 <== NOT EXECUTED 4341c: 9680 subl %d0,%d3 <== NOT EXECUTED 4341e: 2003 movel %d3,%d0 <== NOT EXECUTED if ((tty->termios.c_oflag & TABDLY) == XTABS) { 43420: 0281 0000 1800 andil #6144,%d1 <== NOT EXECUTED 43426: 0c81 0000 1800 cmpil #6144,%d1 <== NOT EXECUTED 4342c: 6612 bnes 43440 <== NOT EXECUTED tty->column += i; rtems_termios_puts ( " ", i, tty); 4342e: 2f0a movel %a2,%sp@- <== NOT EXECUTED break; case '\t': i = 8 - (tty->column & 7); if ((tty->termios.c_oflag & TABDLY) == XTABS) { tty->column += i; 43430: d483 addl %d3,%d2 <== NOT EXECUTED 43432: 2542 0028 movel %d2,%a2@(40) <== NOT EXECUTED rtems_termios_puts ( " ", i, tty); 43436: 2f03 movel %d3,%sp@- <== NOT EXECUTED 43438: 4879 0005 507c pea 5507c <== NOT EXECUTED 4343e: 605e bras 4349e <== NOT EXECUTED return; } tty->column += i; 43440: d082 addl %d2,%d0 <== NOT EXECUTED 43442: 6008 bras 4344c <== NOT EXECUTED break; case '\b': if (tty->column > 0) 43444: 202a 0028 movel %a2@(40),%d0 <== NOT EXECUTED 43448: 6f4a bles 43494 <== NOT EXECUTED tty->column--; 4344a: 5380 subql #1,%d0 <== NOT EXECUTED 4344c: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 43450: 6042 bras 43494 <== NOT EXECUTED break; default: if (tty->termios.c_oflag & OLCUC) 43452: 0801 0001 btst #1,%d1 <== NOT EXECUTED 43456: 6720 beqs 43478 <== NOT EXECUTED c = toupper(c); 43458: 2079 0005 6820 moveal 56820 <__ctype_ptr>,%a0 <== NOT EXECUTED 4345e: 4281 clrl %d1 <== NOT EXECUTED 43460: 1202 moveb %d2,%d1 <== NOT EXECUTED 43462: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 43466: 49c0 extbl %d0 <== NOT EXECUTED 43468: 0800 0001 btst #1,%d0 <== NOT EXECUTED 4346c: 6706 beqs 43474 <== NOT EXECUTED 4346e: 0681 ffff ffe0 addil #-32,%d1 <== NOT EXECUTED 43474: 1d41 fffe moveb %d1,%fp@(-2) <== NOT EXECUTED if (!iscntrl(c)) 43478: 4280 clrl %d0 <== NOT EXECUTED 4347a: 102e fffe moveb %fp@(-2),%d0 <== NOT EXECUTED 4347e: 2079 0005 6820 moveal 56820 <__ctype_ptr>,%a0 <== NOT EXECUTED 43484: 1030 0800 moveb %a0@(00000000,%d0:l),%d0 <== NOT EXECUTED 43488: 49c0 extbl %d0 <== NOT EXECUTED 4348a: 0800 0005 btst #5,%d0 <== NOT EXECUTED 4348e: 6604 bnes 43494 <== NOT EXECUTED tty->column++; 43490: 52aa 0028 addql #1,%a2@(40) <== NOT EXECUTED break; } } rtems_termios_puts (&c, 1, tty); 43494: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43496: 4878 0001 pea 1 <== NOT EXECUTED 4349a: 486e fffe pea %fp@(-2) <== NOT EXECUTED 4349e: 4eb9 0004 326e jsr 4326e <== NOT EXECUTED 434a4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 434aa: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 434b0: 4e5e unlk %fp <== NOT EXECUTED 434b2: 4e75 rts 000441bc : long pathconf( const char *path, int name ) { 441bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 441c0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 441c2: 2f02 movel %d2,%sp@- <== NOT EXECUTED int status; int fd; fd = open( path, O_RDONLY ); 441c4: 42a7 clrl %sp@- <== NOT EXECUTED 441c6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 441ca: 4eb9 0004 3f9c jsr 43f9c <== NOT EXECUTED 441d0: 2400 movel %d0,%d2 <== NOT EXECUTED if ( fd == -1 ) 441d2: 508f addql #8,%sp <== NOT EXECUTED 441d4: 70ff moveq #-1,%d0 <== NOT EXECUTED 441d6: b082 cmpl %d2,%d0 <== NOT EXECUTED 441d8: 6604 bnes 441de <== NOT EXECUTED 441da: 76ff moveq #-1,%d3 <== NOT EXECUTED 441dc: 601c bras 441fa <== NOT EXECUTED return -1; status = fpathconf( fd, name ); 441de: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 441e2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 441e4: 4eb9 0004 31fc jsr 431fc <== NOT EXECUTED (void) close( fd ); 441ea: 2f02 movel %d2,%sp@- <== NOT EXECUTED fd = open( path, O_RDONLY ); if ( fd == -1 ) return -1; status = fpathconf( fd, name ); 441ec: 2600 movel %d0,%d3 <== NOT EXECUTED (void) close( fd ); 441ee: 4eb9 0004 2b20 jsr 42b20 <== NOT EXECUTED 441f4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return status; } 441fa: 2003 movel %d3,%d0 <== NOT EXECUTED 441fc: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44200: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 44204: 4e5e unlk %fp <== NOT EXECUTED 44206: 4e75 rts 000467f8 : /* * 3.4.2 Suspend Process Execution, P1003.1b-1993, p. 81 */ int pause( void ) { 467f8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 467fc: 2f02 movel %d2,%sp@- <== NOT EXECUTED sigset_t all_signals; int status; (void) sigfillset( &all_signals ); 467fe: 240e movel %fp,%d2 <== NOT EXECUTED 46800: 5982 subql #4,%d2 <== NOT EXECUTED 46802: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46804: 4eb9 0004 718c jsr 4718c <== NOT EXECUTED status = sigtimedwait( &all_signals, NULL, NULL ); 4680a: 42a7 clrl %sp@- <== NOT EXECUTED 4680c: 42a7 clrl %sp@- <== NOT EXECUTED 4680e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46810: 4eb9 0004 7308 jsr 47308 <== NOT EXECUTED return status; } 46816: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4681a: 4e5e unlk %fp <== NOT EXECUTED 4681c: 4e75 rts <== NOT EXECUTED ... 00044208 : #include int pipe( int filsdes[2] ) { 44208: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED errno = ENOSYS; 4420c: 4eb9 0004 d920 jsr 4d920 <__errno> <== NOT EXECUTED 44212: 2040 moveal %d0,%a0 <== NOT EXECUTED 44214: 7058 moveq #88,%d0 <== NOT EXECUTED 44216: 2080 movel %d0,%a0@ <== NOT EXECUTED return -1; } 44218: 4e5e unlk %fp <== NOT EXECUTED 4421a: 70ff moveq #-1,%d0 <== NOT EXECUTED 4421c: 4e75 rts <== NOT EXECUTED ... 00044f9c : int posix_memalign( void **pointer, size_t alignment, size_t size ) { 44f9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44fa0: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED /* * Update call statistics */ MSBUMP(memalign_calls, 1); 44fa4: 52b9 0005 b6f4 addql #1,5b6f4 <== NOT EXECUTED if (((alignment - 1) & alignment) != 0 || (alignment < sizeof(void *))) 44faa: 2001 movel %d1,%d0 <== NOT EXECUTED 44fac: 5380 subql #1,%d0 <== NOT EXECUTED 44fae: c081 andl %d1,%d0 <== NOT EXECUTED 44fb0: 6610 bnes 44fc2 <== NOT EXECUTED 44fb2: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 44fb6: b081 cmpl %d1,%d0 <== NOT EXECUTED 44fb8: 6408 bccs 44fc2 <== NOT EXECUTED /* * rtems_memalign does all of the error checking work EXCEPT * for adding restrictionso on the alignment. */ return rtems_memalign( pointer, alignment, size ); } 44fba: 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 ); 44fbc: 4ef9 0004 5350 jmp 45350 <== NOT EXECUTED } 44fc2: 4e5e unlk %fp <== NOT EXECUTED 44fc4: 7016 moveq #22,%d0 <== NOT EXECUTED 44fc6: 4e75 rts 00042c3a : * printk * * Kernel printf function requiring minimal infrastrure. */ void printk(const char *fmt, ...) { 42c3a: 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); 42c3e: 486e 000c pea %fp@(12) <== NOT EXECUTED 42c42: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42c46: 4eb9 0004 29d0 jsr 429d0 <== NOT EXECUTED 42c4c: 508f addql #8,%sp <== NOT EXECUTED va_end(ap); /* clean up when done */ } 42c4e: 4e5e unlk %fp <== NOT EXECUTED 42c50: 4e75 rts <== NOT EXECUTED ... 000438c8 : int printk_plugin( void *ignored, const char *format, ... ) { 438c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED va_list arg_pointer; va_start (arg_pointer, format); vprintk( format, arg_pointer ); 438cc: 486e 0010 pea %fp@(16) <== NOT EXECUTED 438d0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 438d4: 4eb9 0004 3644 jsr 43644 <== NOT EXECUTED va_end(arg_pointer); /* clean up when done */ return 0; } 438da: 4e5e unlk %fp <== NOT EXECUTED 438dc: 4280 clrl %d0 <== NOT EXECUTED 438de: 4e75 rts 00044ed8 : int pthread_atfork( void (*prepare)(void), void (*parent)(void), void (*child)(void) ) { 44ed8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44edc: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44ee2: 2040 moveal %d0,%a0 <== NOT EXECUTED 44ee4: 7058 moveq #88,%d0 <== NOT EXECUTED 44ee6: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44ee8: 4e5e unlk %fp <== NOT EXECUTED 44eea: 70ff moveq #-1,%d0 <== NOT EXECUTED 44eec: 4e75 rts <== NOT EXECUTED ... 00048628 : #include int pthread_attr_destroy( pthread_attr_t *attr ) { 48628: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4862c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 48630: 4a88 tstl %a0 <== NOT EXECUTED 48632: 670a beqs 4863e <== NOT EXECUTED 48634: 4a90 tstl %a0@ <== NOT EXECUTED 48636: 6706 beqs 4863e <== NOT EXECUTED return EINVAL; attr->is_initialized = FALSE; 48638: 4290 clrl %a0@ <== NOT EXECUTED 4863a: 4280 clrl %d0 <== NOT EXECUTED 4863c: 6002 bras 48640 <== NOT EXECUTED return 0; 4863e: 7016 moveq #22,%d0 <== NOT EXECUTED } 48640: 4e5e unlk %fp <== NOT EXECUTED 48642: 4e75 rts 00048bf0 : int pthread_attr_getcputime( pthread_attr_t *attr, int *clock_allowed ) { 48bf0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48bf4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48bf8: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !clock_allowed ) 48bfc: 4a88 tstl %a0 <== NOT EXECUTED 48bfe: 6710 beqs 48c10 <== NOT EXECUTED 48c00: 4a90 tstl %a0@ <== NOT EXECUTED 48c02: 670c beqs 48c10 <== NOT EXECUTED 48c04: 4a89 tstl %a1 <== NOT EXECUTED 48c06: 6708 beqs 48c10 <== NOT EXECUTED return EINVAL; *clock_allowed = attr->cputime_clock_allowed; 48c08: 22a8 0030 movel %a0@(48),%a1@ <== NOT EXECUTED 48c0c: 4280 clrl %d0 <== NOT EXECUTED 48c0e: 6002 bras 48c12 <== NOT EXECUTED return 0; 48c10: 7016 moveq #22,%d0 <== NOT EXECUTED } 48c12: 4e5e unlk %fp <== NOT EXECUTED 48c14: 4e75 rts <== NOT EXECUTED ... 00048644 : int pthread_attr_getdetachstate( const pthread_attr_t *attr, int *detachstate ) { 48644: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48648: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4864c: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !detachstate ) 48650: 4a88 tstl %a0 <== NOT EXECUTED 48652: 6710 beqs 48664 <== NOT EXECUTED 48654: 4a90 tstl %a0@ <== NOT EXECUTED 48656: 670c beqs 48664 <== NOT EXECUTED 48658: 4a89 tstl %a1 <== NOT EXECUTED 4865a: 6708 beqs 48664 <== NOT EXECUTED return EINVAL; *detachstate = attr->detachstate; 4865c: 22a8 0034 movel %a0@(52),%a1@ <== NOT EXECUTED 48660: 4280 clrl %d0 <== NOT EXECUTED 48662: 6002 bras 48666 <== NOT EXECUTED return 0; 48664: 7016 moveq #22,%d0 <== NOT EXECUTED } 48666: 4e5e unlk %fp <== NOT EXECUTED 48668: 4e75 rts <== NOT EXECUTED ... 0004866c : int pthread_attr_getinheritsched( const pthread_attr_t *attr, int *inheritsched ) { 4866c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48670: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48674: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !inheritsched ) 48678: 4a88 tstl %a0 <== NOT EXECUTED 4867a: 6710 beqs 4868c <== NOT EXECUTED 4867c: 4a90 tstl %a0@ <== NOT EXECUTED 4867e: 670c beqs 4868c <== NOT EXECUTED 48680: 4a89 tstl %a1 <== NOT EXECUTED 48682: 6708 beqs 4868c <== NOT EXECUTED return EINVAL; *inheritsched = attr->inheritsched; 48684: 22a8 0010 movel %a0@(16),%a1@ <== NOT EXECUTED 48688: 4280 clrl %d0 <== NOT EXECUTED 4868a: 6002 bras 4868e <== NOT EXECUTED return 0; 4868c: 7016 moveq #22,%d0 <== NOT EXECUTED } 4868e: 4e5e unlk %fp <== NOT EXECUTED 48690: 4e75 rts <== NOT EXECUTED ... 00048694 : int pthread_attr_getschedparam( const pthread_attr_t *attr, struct sched_param *param ) { 48694: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48698: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4869c: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !param ) 486a0: 4a88 tstl %a0 <== NOT EXECUTED 486a2: 6722 beqs 486c6 <== NOT EXECUTED 486a4: 4a90 tstl %a0@ <== NOT EXECUTED 486a6: 671e beqs 486c6 <== NOT EXECUTED 486a8: 4a80 tstl %d0 <== NOT EXECUTED 486aa: 671a beqs 486c6 <== NOT EXECUTED return EINVAL; *param = attr->schedparam; 486ac: 4878 0018 pea 18 <== NOT EXECUTED 486b0: 4868 0018 pea %a0@(24) <== NOT EXECUTED 486b4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 486b6: 4eb9 0005 0764 jsr 50764 <== NOT EXECUTED 486bc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 486c2: 4280 clrl %d0 <== NOT EXECUTED 486c4: 6002 bras 486c8 <== NOT EXECUTED return 0; 486c6: 7016 moveq #22,%d0 <== NOT EXECUTED } 486c8: 4e5e unlk %fp <== NOT EXECUTED 486ca: 4e75 rts 000486cc : int pthread_attr_getschedpolicy( const pthread_attr_t *attr, int *policy ) { 486cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 486d0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 486d4: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !policy ) 486d8: 4a88 tstl %a0 <== NOT EXECUTED 486da: 6710 beqs 486ec <== NOT EXECUTED 486dc: 4a90 tstl %a0@ <== NOT EXECUTED 486de: 670c beqs 486ec <== NOT EXECUTED 486e0: 4a89 tstl %a1 <== NOT EXECUTED 486e2: 6708 beqs 486ec <== NOT EXECUTED return EINVAL; *policy = attr->schedpolicy; 486e4: 22a8 0014 movel %a0@(20),%a1@ <== NOT EXECUTED 486e8: 4280 clrl %d0 <== NOT EXECUTED 486ea: 6002 bras 486ee <== NOT EXECUTED return 0; 486ec: 7016 moveq #22,%d0 <== NOT EXECUTED } 486ee: 4e5e unlk %fp <== NOT EXECUTED 486f0: 4e75 rts <== NOT EXECUTED ... 000486f4 : int pthread_attr_getscope( const pthread_attr_t *attr, int *contentionscope ) { 486f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 486f8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 486fc: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !contentionscope ) 48700: 4a88 tstl %a0 <== NOT EXECUTED 48702: 6710 beqs 48714 <== NOT EXECUTED 48704: 4a90 tstl %a0@ <== NOT EXECUTED 48706: 670c beqs 48714 <== NOT EXECUTED 48708: 4a89 tstl %a1 <== NOT EXECUTED 4870a: 6708 beqs 48714 <== NOT EXECUTED return EINVAL; *contentionscope = attr->contentionscope; 4870c: 22a8 000c movel %a0@(12),%a1@ <== NOT EXECUTED 48710: 4280 clrl %d0 <== NOT EXECUTED 48712: 6002 bras 48716 <== NOT EXECUTED return 0; 48714: 7016 moveq #22,%d0 <== NOT EXECUTED } 48716: 4e5e unlk %fp <== NOT EXECUTED 48718: 4e75 rts <== NOT EXECUTED ... 0004871c : int pthread_attr_getstackaddr( const pthread_attr_t *attr, void **stackaddr ) { 4871c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48720: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48724: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !stackaddr ) 48728: 4a88 tstl %a0 <== NOT EXECUTED 4872a: 6710 beqs 4873c <== NOT EXECUTED 4872c: 4a90 tstl %a0@ <== NOT EXECUTED 4872e: 670c beqs 4873c <== NOT EXECUTED 48730: 4a89 tstl %a1 <== NOT EXECUTED 48732: 6708 beqs 4873c <== NOT EXECUTED return EINVAL; *stackaddr = attr->stackaddr; 48734: 22a8 0004 movel %a0@(4),%a1@ <== NOT EXECUTED 48738: 4280 clrl %d0 <== NOT EXECUTED 4873a: 6002 bras 4873e <== NOT EXECUTED return 0; 4873c: 7016 moveq #22,%d0 <== NOT EXECUTED } 4873e: 4e5e unlk %fp <== NOT EXECUTED 48740: 4e75 rts <== NOT EXECUTED ... 00048744 : int pthread_attr_getstacksize( const pthread_attr_t *attr, size_t *stacksize ) { 48744: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48748: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4874c: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !stacksize ) 48750: 4a88 tstl %a0 <== NOT EXECUTED 48752: 6710 beqs 48764 <== NOT EXECUTED 48754: 4a90 tstl %a0@ <== NOT EXECUTED 48756: 670c beqs 48764 <== NOT EXECUTED 48758: 4a89 tstl %a1 <== NOT EXECUTED 4875a: 6708 beqs 48764 <== NOT EXECUTED return EINVAL; *stacksize = attr->stacksize; 4875c: 22a8 0008 movel %a0@(8),%a1@ <== NOT EXECUTED 48760: 4280 clrl %d0 <== NOT EXECUTED 48762: 6002 bras 48766 <== NOT EXECUTED return 0; 48764: 7016 moveq #22,%d0 <== NOT EXECUTED } 48766: 4e5e unlk %fp <== NOT EXECUTED 48768: 4e75 rts <== NOT EXECUTED ... 0004b734 : #include int pthread_attr_init( pthread_attr_t *attr ) { 4b734: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b738: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !attr ) 4b73c: 6606 bnes 4b744 <== NOT EXECUTED 4b73e: 103c 0016 moveb #22,%d0 <== NOT EXECUTED 4b742: 601a bras 4b75e <== NOT EXECUTED return EINVAL; *attr = _POSIX_Threads_Default_attributes; 4b744: 4878 0038 pea 38 <== NOT EXECUTED 4b748: 4879 0005 86f8 pea 586f8 <_POSIX_Threads_Default_attributes> <== NOT EXECUTED 4b74e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4b750: 4eb9 0004 d7bc jsr 4d7bc <== NOT EXECUTED 4b756: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4b75c: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4b75e: 4e5e unlk %fp <== NOT EXECUTED 4b760: 4e75 rts <== NOT EXECUTED ... 000490d4 : int pthread_attr_setcputime( pthread_attr_t *attr, int clock_allowed ) { 490d4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 490d8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 490dc: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 490e0: 4a88 tstl %a0 <== NOT EXECUTED 490e2: 6712 beqs 490f6 <== NOT EXECUTED 490e4: 4a90 tstl %a0@ <== NOT EXECUTED 490e6: 670e beqs 490f6 <== NOT EXECUTED return EINVAL; switch ( clock_allowed ) { 490e8: 7201 moveq #1,%d1 <== NOT EXECUTED 490ea: b280 cmpl %d0,%d1 <== NOT EXECUTED 490ec: 6508 bcss 490f6 <== NOT EXECUTED case CLOCK_ENABLED: case CLOCK_DISABLED: attr->cputime_clock_allowed = clock_allowed; 490ee: 2140 0030 movel %d0,%a0@(48) <== NOT EXECUTED 490f2: 4280 clrl %d0 <== NOT EXECUTED 490f4: 6002 bras 490f8 <== NOT EXECUTED return 0; 490f6: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 490f8: 4e5e unlk %fp <== NOT EXECUTED 490fa: 4e75 rts 0004879c : int pthread_attr_setdetachstate( pthread_attr_t *attr, int detachstate ) { 4879c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 487a0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 487a4: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 487a8: 4a88 tstl %a0 <== NOT EXECUTED 487aa: 6712 beqs 487be <== NOT EXECUTED 487ac: 4a90 tstl %a0@ <== NOT EXECUTED 487ae: 670e beqs 487be <== NOT EXECUTED return EINVAL; switch ( detachstate ) { 487b0: 7201 moveq #1,%d1 <== NOT EXECUTED 487b2: b280 cmpl %d0,%d1 <== NOT EXECUTED 487b4: 6508 bcss 487be <== NOT EXECUTED case PTHREAD_CREATE_DETACHED: case PTHREAD_CREATE_JOINABLE: attr->detachstate = detachstate; 487b6: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED 487ba: 4280 clrl %d0 <== NOT EXECUTED 487bc: 6002 bras 487c0 <== NOT EXECUTED return 0; 487be: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 487c0: 4e5e unlk %fp <== NOT EXECUTED 487c2: 4e75 rts 0004b764 : int pthread_attr_setinheritsched( pthread_attr_t *attr, int inheritsched ) { 4b764: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b768: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4b76c: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 4b770: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 4b772: 4a88 tstl %a0 <== NOT EXECUTED 4b774: 671c beqs 4b792 <== NOT EXECUTED 4b776: 4a90 tstl %a0@ <== NOT EXECUTED 4b778: 6718 beqs 4b792 <== NOT EXECUTED return EINVAL; switch ( inheritsched ) { 4b77a: 2009 movel %a1,%d0 <== NOT EXECUTED 4b77c: 5380 subql #1,%d0 <== NOT EXECUTED 4b77e: 223c 0000 0086 movel #134,%d1 <== NOT EXECUTED 4b784: 7401 moveq #1,%d2 <== NOT EXECUTED 4b786: b480 cmpl %d0,%d2 <== NOT EXECUTED 4b788: 650a bcss 4b794 <== NOT EXECUTED case PTHREAD_INHERIT_SCHED: case PTHREAD_EXPLICIT_SCHED: attr->inheritsched = inheritsched; 4b78a: 2149 0010 movel %a1,%a0@(16) <== NOT EXECUTED 4b78e: 4201 clrb %d1 <== NOT EXECUTED 4b790: 6002 bras 4b794 <== NOT EXECUTED return 0; 4b792: 7216 moveq #22,%d1 <== NOT EXECUTED default: return ENOTSUP; } } 4b794: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b796: 4e5e unlk %fp <== NOT EXECUTED 4b798: 2001 movel %d1,%d0 <== NOT EXECUTED 4b79a: 4e75 rts 000487fc : int pthread_attr_setschedparam( pthread_attr_t *attr, const struct sched_param *param ) { 487fc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48800: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48804: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !param ) 48808: 4a88 tstl %a0 <== NOT EXECUTED 4880a: 6722 beqs 4882e <== NOT EXECUTED 4880c: 4a90 tstl %a0@ <== NOT EXECUTED 4880e: 671e beqs 4882e <== NOT EXECUTED 48810: 4a80 tstl %d0 <== NOT EXECUTED 48812: 671a beqs 4882e <== NOT EXECUTED return EINVAL; attr->schedparam = *param; 48814: 4878 0018 pea 18 <== NOT EXECUTED 48818: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4881a: 4868 0018 pea %a0@(24) <== NOT EXECUTED 4881e: 4eb9 0005 0764 jsr 50764 <== NOT EXECUTED 48824: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4882a: 4280 clrl %d0 <== NOT EXECUTED 4882c: 6002 bras 48830 <== NOT EXECUTED return 0; 4882e: 7016 moveq #22,%d0 <== NOT EXECUTED } 48830: 4e5e unlk %fp <== NOT EXECUTED 48832: 4e75 rts 00048834 : int pthread_attr_setschedpolicy( pthread_attr_t *attr, int policy ) { 48834: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48838: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4883c: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 48840: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 48842: 4a88 tstl %a0 <== NOT EXECUTED 48844: 6718 beqs 4885e <== NOT EXECUTED 48846: 4a90 tstl %a0@ <== NOT EXECUTED 48848: 6714 beqs 4885e <== NOT EXECUTED return EINVAL; switch ( policy ) { 4884a: 203c 0000 0086 movel #134,%d0 <== NOT EXECUTED 48850: 7403 moveq #3,%d2 <== NOT EXECUTED 48852: b481 cmpl %d1,%d2 <== NOT EXECUTED 48854: 650a bcss 48860 <== NOT EXECUTED case SCHED_OTHER: case SCHED_FIFO: case SCHED_RR: case SCHED_SPORADIC: attr->schedpolicy = policy; 48856: 2141 0014 movel %d1,%a0@(20) <== NOT EXECUTED 4885a: 4200 clrb %d0 <== NOT EXECUTED 4885c: 6002 bras 48860 <== NOT EXECUTED return 0; 4885e: 7016 moveq #22,%d0 <== NOT EXECUTED default: return ENOTSUP; } } 48860: 241f movel %sp@+,%d2 <== NOT EXECUTED 48862: 4e5e unlk %fp <== NOT EXECUTED 48864: 4e75 rts <== NOT EXECUTED ... 00048868 : int pthread_attr_setscope( pthread_attr_t *attr, int contentionscope ) { 48868: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4886c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48870: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 48874: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 48876: 4a88 tstl %a0 <== NOT EXECUTED 48878: 671e beqs 48898 <== NOT EXECUTED 4887a: 4a90 tstl %a0@ <== NOT EXECUTED 4887c: 671a beqs 48898 <== NOT EXECUTED return EINVAL; switch ( contentionscope ) { 4887e: 4a81 tstl %d1 <== NOT EXECUTED 48880: 670e beqs 48890 <== NOT EXECUTED 48882: 203c 0000 0086 movel #134,%d0 <== NOT EXECUTED 48888: 7401 moveq #1,%d2 <== NOT EXECUTED 4888a: b481 cmpl %d1,%d2 <== NOT EXECUTED 4888c: 660a bnes 48898 <== NOT EXECUTED 4888e: 600a bras 4889a <== NOT EXECUTED case PTHREAD_SCOPE_PROCESS: attr->contentionscope = contentionscope; 48890: 42a8 000c clrl %a0@(12) <== NOT EXECUTED 48894: 4280 clrl %d0 <== NOT EXECUTED 48896: 6002 bras 4889a <== NOT EXECUTED return 0; 48898: 7016 moveq #22,%d0 <== NOT EXECUTED return ENOTSUP; default: return EINVAL; } } 4889a: 241f movel %sp@+,%d2 <== NOT EXECUTED 4889c: 4e5e unlk %fp <== NOT EXECUTED 4889e: 4e75 rts 000488a0 : int pthread_attr_setstackaddr( pthread_attr_t *attr, void *stackaddr ) { 488a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 488a4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 488a8: 4a88 tstl %a0 <== NOT EXECUTED 488aa: 670e beqs 488ba <== NOT EXECUTED 488ac: 4a90 tstl %a0@ <== NOT EXECUTED 488ae: 670a beqs 488ba <== NOT EXECUTED return EINVAL; attr->stackaddr = stackaddr; 488b0: 4280 clrl %d0 <== NOT EXECUTED 488b2: 216e 000c 0004 movel %fp@(12),%a0@(4) <== NOT EXECUTED 488b8: 6002 bras 488bc <== NOT EXECUTED return 0; 488ba: 7016 moveq #22,%d0 <== NOT EXECUTED } 488bc: 4e5e unlk %fp <== NOT EXECUTED 488be: 4e75 rts 0004b79c : int pthread_attr_setstacksize( pthread_attr_t *attr, size_t stacksize ) { 4b79c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b7a0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4b7a4: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 4b7a8: 4a88 tstl %a0 <== NOT EXECUTED 4b7aa: 671e beqs 4b7ca <== NOT EXECUTED 4b7ac: 4a90 tstl %a0@ <== NOT EXECUTED 4b7ae: 671a beqs 4b7ca <== NOT EXECUTED return EINVAL; if (stacksize < PTHREAD_MINIMUM_STACK_SIZE) 4b7b0: 2039 0005 9a0e movel 59a0e ,%d0 <== NOT EXECUTED 4b7b6: d080 addl %d0,%d0 <== NOT EXECUTED 4b7b8: b081 cmpl %d1,%d0 <== NOT EXECUTED 4b7ba: 6306 blss 4b7c2 <== NOT EXECUTED attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE; 4b7bc: 2140 0008 movel %d0,%a0@(8) <== NOT EXECUTED 4b7c0: 6004 bras 4b7c6 <== NOT EXECUTED else attr->stacksize = stacksize; 4b7c2: 2141 0008 movel %d1,%a0@(8) <== NOT EXECUTED 4b7c6: 4280 clrl %d0 <== NOT EXECUTED 4b7c8: 6002 bras 4b7cc <== NOT EXECUTED 4b7ca: 7016 moveq #22,%d0 <== NOT EXECUTED return 0; } 4b7cc: 4e5e unlk %fp <== NOT EXECUTED 4b7ce: 4e75 rts 00044e60 : */ int pthread_barrier_destroy( pthread_barrier_t *barrier ) { 44e60: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44e64: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44e66: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 44e6a: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_Barrier_Control *the_barrier = NULL; Objects_Locations location; if ( !barrier ) 44e6c: 4a88 tstl %a0 <== NOT EXECUTED 44e6e: 675a beqs 44eca <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get ( pthread_barrier_t *barrier, Objects_Locations *location ) { return (POSIX_Barrier_Control *) _Objects_Get( 44e70: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44e74: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 44e76: 4879 0005 965e pea 5965e <_POSIX_Barrier_Information> <== NOT EXECUTED 44e7c: 4eb9 0004 74f0 jsr 474f0 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_barrier = _POSIX_Barrier_Get( barrier, &location ); switch ( location ) { 44e82: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44e88: 2440 moveal %d0,%a2 <== NOT EXECUTED 44e8a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44e8e: 663a bnes 44eca <== NOT EXECUTED 44e90: 47f9 0004 7c62 lea 47c62 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED case OBJECTS_LOCAL: if ( the_barrier->Barrier.number_of_waiting_threads != 0 ) { 44e96: 4aaa 0058 tstl %a2@(88) <== NOT EXECUTED 44e9a: 6706 beqs 44ea2 <== NOT EXECUTED _Thread_Enable_dispatch(); 44e9c: 4e93 jsr %a3@ <== NOT EXECUTED 44e9e: 7010 moveq #16,%d0 <== NOT EXECUTED 44ea0: 602a bras 44ecc <== NOT EXECUTED return EBUSY; } _Objects_Close( &_POSIX_Barrier_Information, &the_barrier->Object ); 44ea2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44ea4: 4879 0005 965e pea 5965e <_POSIX_Barrier_Information> <== NOT EXECUTED 44eaa: 4eb9 0004 7118 jsr 47118 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _POSIX_Barrier_Free ( POSIX_Barrier_Control *the_barrier ) { _Objects_Free( &_POSIX_Barrier_Information, &the_barrier->Object ); 44eb0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44eb2: 4879 0005 965e pea 5965e <_POSIX_Barrier_Information> <== NOT EXECUTED 44eb8: 4eb9 0004 7390 jsr 47390 <_Objects_Free> <== NOT EXECUTED _POSIX_Barrier_Free( the_barrier ); _Thread_Enable_dispatch(); 44ebe: 4e93 jsr %a3@ <== NOT EXECUTED 44ec0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44ec6: 4280 clrl %d0 <== NOT EXECUTED 44ec8: 6002 bras 44ecc <== NOT EXECUTED return 0; 44eca: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 44ecc: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 44ed0: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 44ed4: 4e5e unlk %fp <== NOT EXECUTED 44ed6: 4e75 rts 00044ed8 : int pthread_barrier_init( pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count ) { 44ed8: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 44edc: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 44ee0: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 44ee4: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 44ee8: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED const pthread_barrierattr_t *the_attr; /* * Error check parameters */ if ( !barrier ) 44eec: 4a8c tstl %a4 <== NOT EXECUTED 44eee: 6700 0092 beqw 44f82 <== NOT EXECUTED return EINVAL; if ( count == 0 ) 44ef2: 4a8a tstl %a2 <== NOT EXECUTED 44ef4: 6700 008c beqw 44f82 <== NOT EXECUTED return EINVAL; /* * If the user passed in NULL, use the default attributes */ if ( attr ) { 44ef8: 4a82 tstl %d2 <== NOT EXECUTED 44efa: 6704 beqs 44f00 <== NOT EXECUTED 44efc: 2042 moveal %d2,%a0 <== NOT EXECUTED 44efe: 6014 bras 44f14 <== NOT EXECUTED the_attr = attr; } else { (void) pthread_barrierattr_init( &my_attr ); 44f00: 240e movel %fp,%d2 <== NOT EXECUTED 44f02: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 44f08: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44f0a: 4eb9 0004 4e18 jsr 44e18 <== NOT EXECUTED 44f10: 588f addql #4,%sp <== NOT EXECUTED 44f12: 2042 moveal %d2,%a0 <== NOT EXECUTED } /* * Now start error checking the attributes that we are going to use */ if ( !the_attr->is_initialized ) 44f14: 4a90 tstl %a0@ <== NOT EXECUTED 44f16: 676a beqs 44f82 <== NOT EXECUTED return EINVAL; switch ( the_attr->process_shared ) { 44f18: 4aa8 0004 tstl %a0@(4) <== NOT EXECUTED 44f1c: 6664 bnes 44f82 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 44f1e: 2039 0005 9304 movel 59304 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44f24: 5280 addql #1,%d0 <== NOT EXECUTED 44f26: 23c0 0005 9304 movel %d0,59304 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Convert from POSIX attributes to Core Barrier attributes */ the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE; the_attributes.maximum_count = count; 44f2c: 2d4a fffc movel %a2,%fp@(-4) <== NOT EXECUTED } /* * Convert from POSIX attributes to Core Barrier attributes */ the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE; 44f30: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED * This function allocates a barrier control block from * the inactive chain of free barrier control blocks. */ RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Allocate( void ) { return (POSIX_Barrier_Control *) 44f34: 4879 0005 965e pea 5965e <_POSIX_Barrier_Information> <== NOT EXECUTED 44f3a: 4eb9 0004 7090 jsr 47090 <_Objects_Allocate> <== NOT EXECUTED */ _Thread_Disable_dispatch(); /* prevents deletion */ the_barrier = _POSIX_Barrier_Allocate(); if ( !the_barrier ) { 44f40: 588f addql #4,%sp <== NOT EXECUTED 44f42: 2440 moveal %d0,%a2 <== NOT EXECUTED 44f44: 47f9 0004 7c62 lea 47c62 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 44f4a: 4a80 tstl %d0 <== NOT EXECUTED 44f4c: 6606 bnes 44f54 <== NOT EXECUTED _Thread_Enable_dispatch(); 44f4e: 4e93 jsr %a3@ <== NOT EXECUTED 44f50: 700b moveq #11,%d0 <== NOT EXECUTED 44f52: 6030 bras 44f84 <== NOT EXECUTED return EAGAIN; } _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 44f54: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 44f58: 486a 0010 pea %a2@(16) <== NOT EXECUTED 44f5c: 4eb9 0004 6894 jsr 46894 <_CORE_barrier_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 44f62: 2079 0005 9678 moveal 59678 <_POSIX_Barrier_Information+0x1a>,%a0 <== NOT EXECUTED 44f68: 4280 clrl %d0 <== NOT EXECUTED 44f6a: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 44f6e: 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; 44f72: 42aa 000c clrl %a2@(12) <== NOT EXECUTED ); /* * Exit the critical section and return the user an operational barrier */ *barrier = the_barrier->Object.id; 44f76: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED _Thread_Enable_dispatch(); 44f7a: 4e93 jsr %a3@ <== NOT EXECUTED 44f7c: 508f addql #8,%sp <== NOT EXECUTED 44f7e: 4280 clrl %d0 <== NOT EXECUTED 44f80: 6002 bras 44f84 <== NOT EXECUTED return 0; 44f82: 7016 moveq #22,%d0 <== NOT EXECUTED } 44f84: 4cee 1c04 ffe0 moveml %fp@(-32),%d2/%a2-%a4 <== NOT EXECUTED 44f8a: 4e5e unlk %fp <== NOT EXECUTED 44f8c: 4e75 rts <== NOT EXECUTED ... 00044f90 : */ int pthread_barrier_wait( pthread_barrier_t *barrier ) { 44f90: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44f94: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED POSIX_Barrier_Control *the_barrier = NULL; Objects_Locations location; if ( !barrier ) 44f98: 4a88 tstl %a0 <== NOT EXECUTED 44f9a: 6754 beqs 44ff0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get ( pthread_barrier_t *barrier, Objects_Locations *location ) { return (POSIX_Barrier_Control *) _Objects_Get( 44f9c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44fa0: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 44fa2: 4879 0005 965e pea 5965e <_POSIX_Barrier_Information> <== NOT EXECUTED 44fa8: 4eb9 0004 74f0 jsr 474f0 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_barrier = _POSIX_Barrier_Get( barrier, &location ); switch ( location ) { 44fae: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44fb4: 2040 moveal %d0,%a0 <== NOT EXECUTED 44fb6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44fba: 6634 bnes 44ff0 <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_barrier_Wait( 44fbc: 42a7 clrl %sp@- <== NOT EXECUTED 44fbe: 42a7 clrl %sp@- <== NOT EXECUTED 44fc0: 4878 0001 pea 1 <== NOT EXECUTED 44fc4: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44fc8: 4868 0010 pea %a0@(16) <== NOT EXECUTED 44fcc: 4eb9 0004 68d0 jsr 468d0 <_CORE_barrier_Wait> <== NOT EXECUTED the_barrier->Object.id, TRUE, 0, NULL ); _Thread_Enable_dispatch(); 44fd2: 4eb9 0004 7c62 jsr 47c62 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_Barrier_Translate_core_barrier_return_code( 44fd8: 2079 0005 93c2 moveal 593c2 <_Thread_Executing>,%a0 <== NOT EXECUTED 44fde: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 44fe2: 4eb9 0004 a968 jsr 4a968 <_POSIX_Barrier_Translate_core_barrier_return_code> <== NOT EXECUTED 44fe8: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 44fee: 6002 bras 44ff2 <== NOT EXECUTED 44ff0: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 44ff2: 4e5e unlk %fp <== NOT EXECUTED 44ff4: 4e75 rts <== NOT EXECUTED ... 00044dd8 : */ int pthread_barrierattr_destroy( pthread_barrierattr_t *attr ) { 44dd8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44ddc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || attr->is_initialized == FALSE ) 44de0: 4a88 tstl %a0 <== NOT EXECUTED 44de2: 670a beqs 44dee <== NOT EXECUTED 44de4: 4a90 tstl %a0@ <== NOT EXECUTED 44de6: 6706 beqs 44dee <== NOT EXECUTED return EINVAL; attr->is_initialized = FALSE; 44de8: 4290 clrl %a0@ <== NOT EXECUTED 44dea: 4280 clrl %d0 <== NOT EXECUTED 44dec: 6002 bras 44df0 <== NOT EXECUTED return 0; 44dee: 7016 moveq #22,%d0 <== NOT EXECUTED } 44df0: 4e5e unlk %fp <== NOT EXECUTED 44df2: 4e75 rts 00044df4 : int pthread_barrierattr_getpshared( const pthread_barrierattr_t *attr, int *pshared ) { 44df4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44df8: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED if ( !attr ) 44dfc: 4a89 tstl %a1 <== NOT EXECUTED 44dfe: 6710 beqs 44e10 <== NOT EXECUTED return EINVAL; if ( !attr->is_initialized ) 44e00: 4a91 tstl %a1@ <== NOT EXECUTED 44e02: 670c beqs 44e10 <== NOT EXECUTED return EINVAL; *pshared = attr->process_shared; 44e04: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 44e08: 20a9 0004 movel %a1@(4),%a0@ <== NOT EXECUTED 44e0c: 4280 clrl %d0 <== NOT EXECUTED 44e0e: 6002 bras 44e12 <== NOT EXECUTED return 0; 44e10: 7016 moveq #22,%d0 <== NOT EXECUTED } 44e12: 4e5e unlk %fp <== NOT EXECUTED 44e14: 4e75 rts <== NOT EXECUTED ... 00044e18 : */ int pthread_barrierattr_init( pthread_barrierattr_t *attr ) { 44e18: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44e1c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr ) 44e20: 4a88 tstl %a0 <== NOT EXECUTED 44e22: 6604 bnes 44e28 <== NOT EXECUTED 44e24: 7016 moveq #22,%d0 <== NOT EXECUTED 44e26: 600a bras 44e32 <== NOT EXECUTED return EINVAL; attr->is_initialized = TRUE; 44e28: 7201 moveq #1,%d1 <== NOT EXECUTED attr->process_shared = PTHREAD_PROCESS_PRIVATE; 44e2a: 4280 clrl %d0 <== NOT EXECUTED 44e2c: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED ) { if ( !attr ) return EINVAL; attr->is_initialized = TRUE; 44e30: 2081 movel %d1,%a0@ <== NOT EXECUTED attr->process_shared = PTHREAD_PROCESS_PRIVATE; return 0; } 44e32: 4e5e unlk %fp <== NOT EXECUTED 44e34: 4e75 rts <== NOT EXECUTED ... 00044e38 : int pthread_barrierattr_setpshared( pthread_barrierattr_t *attr, int pshared ) { 44e38: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44e3c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 44e40: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !attr ) 44e44: 4a88 tstl %a0 <== NOT EXECUTED 44e46: 6712 beqs 44e5a <== NOT EXECUTED return EINVAL; if ( !attr->is_initialized ) 44e48: 4a90 tstl %a0@ <== NOT EXECUTED 44e4a: 670e beqs 44e5a <== NOT EXECUTED return EINVAL; switch ( pshared ) { 44e4c: 7201 moveq #1,%d1 <== NOT EXECUTED 44e4e: b280 cmpl %d0,%d1 <== NOT EXECUTED 44e50: 6508 bcss 44e5a <== NOT EXECUTED case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 44e52: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED 44e56: 4280 clrl %d0 <== NOT EXECUTED 44e58: 6002 bras 44e5c <== NOT EXECUTED return 0; 44e5a: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 44e5c: 4e5e unlk %fp <== NOT EXECUTED 44e5e: 4e75 rts 00044748 : */ int pthread_cancel( pthread_t thread ) { 44748: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4474c: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * Don't even think about deleting a resource from an ISR. */ if ( _ISR_Is_in_progress() ) 4474e: 2039 0005 9916 movel 59916 <_ISR_Nest_level>,%d0 <== NOT EXECUTED */ int pthread_cancel( pthread_t thread ) { 44754: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Don't even think about deleting a resource from an ISR. */ if ( _ISR_Is_in_progress() ) 44756: 4a80 tstl %d0 <== NOT EXECUTED 44758: 6704 beqs 4475e <== NOT EXECUTED 4475a: 7047 moveq #71,%d0 <== NOT EXECUTED 4475c: 6060 bras 447be <== NOT EXECUTED RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Get ( pthread_t id, Objects_Locations *location ) { return (Thread_Control *) 4475e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44762: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44766: 4879 0005 9a6a pea 59a6a <_POSIX_Threads_Information> <== NOT EXECUTED 4476c: 4eb9 0004 6e90 jsr 46e90 <_Objects_Get> <== NOT EXECUTED return EPROTO; the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 44772: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44778: 2440 moveal %d0,%a2 <== NOT EXECUTED 4477a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4477e: 6704 beqs 44784 <== NOT EXECUTED 44780: 7016 moveq #22,%d0 <== NOT EXECUTED 44782: 603a bras 447be <== NOT EXECUTED case OBJECTS_LOCAL: thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ]; 44784: 206a 0110 moveal %a2@(272),%a0 <== NOT EXECUTED thread_support->cancelation_requested = 1; 44788: 7001 moveq #1,%d0 <== NOT EXECUTED 4478a: 2140 00d4 movel %d0,%a0@(212) <== NOT EXECUTED if (thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && 4478e: 4aa8 00cc tstl %a0@(204) <== NOT EXECUTED 44792: 6704 beqs 44798 <== NOT EXECUTED 44794: 4202 clrb %d2 <== NOT EXECUTED 44796: 600c bras 447a4 <== NOT EXECUTED 44798: 7001 moveq #1,%d0 <== NOT EXECUTED 4479a: b0a8 00d0 cmpl %a0@(208),%d0 <== NOT EXECUTED 4479e: 57c0 seq %d0 <== NOT EXECUTED 447a0: 2400 movel %d0,%d2 <== NOT EXECUTED 447a2: 4482 negl %d2 <== NOT EXECUTED thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS) cancel = true; _Thread_Enable_dispatch(); 447a4: 4eb9 0004 7602 jsr 47602 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( cancel ) 447aa: 4a02 tstb %d2 <== NOT EXECUTED 447ac: 670e beqs 447bc <== NOT EXECUTED _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED ); 447ae: 4878 ffff pea ffffffff <== NOT EXECUTED 447b2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 447b4: 4eb9 0004 4a3c jsr 44a3c <_POSIX_Thread_Exit> <== NOT EXECUTED 447ba: 508f addql #8,%sp <== NOT EXECUTED 447bc: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 447be: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 447c2: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 447c6: 4e5e unlk %fp <== NOT EXECUTED 447c8: 4e75 rts <== NOT EXECUTED ... 00044c20 : rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 44c20: 2039 0005 a4dc movel 5a4dc <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED POSIX_Cancel_Handler_control tmp_handler; Chain_Control *handler_stack; POSIX_API_Control *thread_support; ISR_Level level; thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 44c26: 2079 0005 a59a moveal 5a59a <_Thread_Executing>,%a0 <== NOT EXECUTED */ void pthread_cleanup_pop( int execute ) { 44c2c: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 44c30: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 44c34: 5280 addql #1,%d0 <== NOT EXECUTED POSIX_Cancel_Handler_control tmp_handler; Chain_Control *handler_stack; POSIX_API_Control *thread_support; ISR_Level level; thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 44c36: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED */ void pthread_cleanup_pop( int execute ) { 44c3a: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 44c3e: 23c0 0005 a4dc movel %d0,5a4dc <_Thread_Dispatch_disable_level> <== NOT EXECUTED * ensure that we do not get prempted and deleted while we are holding * memory that needs to be freed. */ _Thread_Disable_dispatch(); _ISR_Disable( level ); 44c44: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 44c4a: 40c2 movew %sr,%d2 <== NOT EXECUTED 44c4c: 8082 orl %d2,%d0 <== NOT EXECUTED 44c4e: 46c0 movew %d0,%sr <== NOT EXECUTED 44c50: 47f9 0004 7e3a lea 47e3a <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 44c56: 43e8 00dc lea %a0@(220),%a1 <== NOT EXECUTED if ( _Chain_Is_empty( handler_stack ) ) { 44c5a: b3e8 00d8 cmpal %a0@(216),%a1 <== NOT EXECUTED 44c5e: 6606 bnes 44c66 <== NOT EXECUTED _Thread_Enable_dispatch(); 44c60: 4e93 jsr %a3@ <== NOT EXECUTED _ISR_Enable( level ); 44c62: 46c2 movew %d2,%sr <== NOT EXECUTED 44c64: 604e bras 44cb4 <== NOT EXECUTED return; } handler = (POSIX_Cancel_Handler_control *) 44c66: 2469 0004 moveal %a1@(4),%a2 <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 44c6a: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 44c6c: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED next->previous = previous; previous->next = next; 44c70: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 44c72: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED _Chain_Tail( handler_stack )->previous; _Chain_Extract_unprotected( &handler->Node ); _ISR_Enable( level ); 44c76: 46c2 movew %d2,%sr <== NOT EXECUTED tmp_handler = *handler; 44c78: 4878 0010 pea 10 <== NOT EXECUTED 44c7c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44c7e: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 44c82: 4eb9 0004 d000 jsr 4d000 <== NOT EXECUTED 44c88: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 44c8c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED _Workspace_Free( handler ); 44c90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44c92: 4eb9 0004 905c jsr 4905c <_Workspace_Free> <== NOT EXECUTED _Thread_Enable_dispatch(); 44c98: 4e93 jsr %a3@ <== NOT EXECUTED if ( execute ) 44c9a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44ca0: 4a84 tstl %d4 <== NOT EXECUTED 44ca2: 6710 beqs 44cb4 <== NOT EXECUTED (*tmp_handler.routine)( tmp_handler.arg ); 44ca4: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED 44ca8: 2243 moveal %d3,%a1 <== NOT EXECUTED } 44caa: 4cee 0c1c ffdc moveml %fp@(-36),%d2-%d4/%a2-%a3 <== NOT EXECUTED 44cb0: 4e5e unlk %fp <== NOT EXECUTED _Workspace_Free( handler ); _Thread_Enable_dispatch(); if ( execute ) (*tmp_handler.routine)( tmp_handler.arg ); 44cb2: 4ed1 jmp %a1@ <== NOT EXECUTED } 44cb4: 4cee 0c1c ffdc moveml %fp@(-36),%d2-%d4/%a2-%a3 <== NOT EXECUTED 44cba: 4e5e unlk %fp <== NOT EXECUTED 44cbc: 4e75 rts <== NOT EXECUTED ... 00044cc0 : void pthread_cleanup_push( void (*routine)( void * ), void *arg ) { 44cc0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44cc4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44cc6: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 44cca: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44ccc: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED /* * The POSIX standard does not address what to do when the routine * is NULL. It also does not address what happens when we cannot * allocate memory or anything else bad happens. */ if ( !routine ) 44cd0: 6754 beqs 44d26 <== NOT EXECUTED 44cd2: 2039 0005 a4dc movel 5a4dc <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44cd8: 5280 addql #1,%d0 <== NOT EXECUTED 44cda: 23c0 0005 a4dc movel %d0,5a4dc <_Thread_Dispatch_disable_level> <== NOT EXECUTED return; _Thread_Disable_dispatch(); handler = _Workspace_Allocate( sizeof( POSIX_Cancel_Handler_control ) ); 44ce0: 4878 0010 pea 10 <== NOT EXECUTED 44ce4: 4eb9 0004 9074 jsr 49074 <_Workspace_Allocate> <== NOT EXECUTED if ( handler ) { 44cea: 588f addql #4,%sp <== NOT EXECUTED */ if ( !routine ) return; _Thread_Disable_dispatch(); handler = _Workspace_Allocate( sizeof( POSIX_Cancel_Handler_control ) ); 44cec: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( handler ) { 44cee: 4a80 tstl %d0 <== NOT EXECUTED 44cf0: 6724 beqs 44d16 <== NOT EXECUTED thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; handler_stack = &thread_support->Cancellation_Handlers; 44cf2: 2079 0005 a59a moveal 5a59a <_Thread_Executing>,%a0 <== NOT EXECUTED 44cf8: 2028 0110 movel %a0@(272),%d0 <== NOT EXECUTED handler->routine = routine; 44cfc: 2342 0008 movel %d2,%a1@(8) <== NOT EXECUTED handler = _Workspace_Allocate( sizeof( POSIX_Cancel_Handler_control ) ); if ( handler ) { thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; handler_stack = &thread_support->Cancellation_Handlers; 44d00: 0680 0000 00d8 addil #216,%d0 <== NOT EXECUTED handler->routine = routine; handler->arg = arg; 44d06: 2343 000c movel %d3,%a1@(12) <== NOT EXECUTED _Chain_Append( handler_stack, &handler->Node ); 44d0a: 2f09 movel %a1,%sp@- <== NOT EXECUTED 44d0c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44d0e: 4eb9 0004 6b04 jsr 46b04 <_Chain_Append> <== NOT EXECUTED 44d14: 508f addql #8,%sp <== NOT EXECUTED } _Thread_Enable_dispatch(); } 44d16: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44d1a: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 44d1e: 4e5e unlk %fp <== NOT EXECUTED handler->routine = routine; handler->arg = arg; _Chain_Append( handler_stack, &handler->Node ); } _Thread_Enable_dispatch(); 44d20: 4ef9 0004 7e3a jmp 47e3a <_Thread_Enable_dispatch> <== NOT EXECUTED } 44d26: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44d2a: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 44d2e: 4e5e unlk %fp <== NOT EXECUTED 44d30: 4e75 rts <== NOT EXECUTED ... 000457dc : */ int pthread_cond_broadcast( pthread_cond_t *cond ) { 457dc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Condition_variables_Signal_support( cond, TRUE ); 457e0: 4878 0001 pea 1 <== NOT EXECUTED 457e4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 457e8: 4eb9 0004 5974 jsr 45974 <_POSIX_Condition_variables_Signal_support> <== NOT EXECUTED } 457ee: 4e5e unlk %fp <== NOT EXECUTED 457f0: 4e75 rts <== NOT EXECUTED ... 000457f4 : */ int pthread_cond_destroy( pthread_cond_t *cond ) { 457f4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 457f8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 457fa: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_Condition_variables_Control *the_cond; Objects_Locations location; the_cond = _POSIX_Condition_variables_Get( cond, &location ); 457fc: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45800: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45804: 4eb9 0004 5868 jsr 45868 <_POSIX_Condition_variables_Get> <== NOT EXECUTED switch ( location ) { 4580a: 508f addql #8,%sp <== NOT EXECUTED ) { POSIX_Condition_variables_Control *the_cond; Objects_Locations location; the_cond = _POSIX_Condition_variables_Get( cond, &location ); 4580c: 2440 moveal %d0,%a2 <== NOT EXECUTED switch ( location ) { 4580e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45812: 6704 beqs 45818 <== NOT EXECUTED 45814: 7016 moveq #22,%d0 <== NOT EXECUTED 45816: 6042 bras 4585a <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Thread_queue_First( &the_cond->Wait_queue ) ) { 45818: 486a 0018 pea %a2@(24) <== NOT EXECUTED 4581c: 4eb9 0004 91f0 jsr 491f0 <_Thread_queue_First> <== NOT EXECUTED 45822: 588f addql #4,%sp <== NOT EXECUTED 45824: 47f9 0004 8b6a lea 48b6a <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 4582a: 4a80 tstl %d0 <== NOT EXECUTED 4582c: 6706 beqs 45834 <== NOT EXECUTED _Thread_Enable_dispatch(); 4582e: 4e93 jsr %a3@ <== NOT EXECUTED 45830: 7010 moveq #16,%d0 <== NOT EXECUTED 45832: 6026 bras 4585a <== NOT EXECUTED return EBUSY; } _Objects_Close( 45834: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45836: 4879 0005 b806 pea 5b806 <_POSIX_Condition_variables_Information> <== NOT EXECUTED 4583c: 4eb9 0004 8020 jsr 48020 <_Objects_Close> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Free ( POSIX_Condition_variables_Control *the_condition_variable ) { _Objects_Free( 45842: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45844: 4879 0005 b806 pea 5b806 <_POSIX_Condition_variables_Information> <== NOT EXECUTED 4584a: 4eb9 0004 8298 jsr 48298 <_Objects_Free> <== NOT EXECUTED &_POSIX_Condition_variables_Information, &the_cond->Object ); _POSIX_Condition_variables_Free( the_cond ); _Thread_Enable_dispatch(); 45850: 4e93 jsr %a3@ <== NOT EXECUTED 45852: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45858: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4585a: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4585e: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 45862: 4e5e unlk %fp <== NOT EXECUTED 45864: 4e75 rts <== NOT EXECUTED ... 000458bc : int pthread_cond_init( pthread_cond_t *cond, const pthread_condattr_t *attr ) { 458bc: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 458c0: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 458c4: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED POSIX_Condition_variables_Control *the_cond; const pthread_condattr_t *the_attr; if ( attr ) the_attr = attr; 458c8: 47f9 0005 8592 lea 58592 <_POSIX_Condition_variables_Default_attributes>,%a3 <== NOT EXECUTED 458ce: 4a80 tstl %d0 <== NOT EXECUTED 458d0: 6702 beqs 458d4 <== NOT EXECUTED 458d2: 2640 moveal %d0,%a3 <== NOT EXECUTED /* * Be careful about attributes when global!!! */ if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED ) 458d4: 7001 moveq #1,%d0 <== NOT EXECUTED 458d6: b0ab 0004 cmpl %a3@(4),%d0 <== NOT EXECUTED 458da: 6778 beqs 45954 <== NOT EXECUTED return EINVAL; if ( !the_attr->is_initialized ) 458dc: 4a93 tstl %a3@ <== NOT EXECUTED 458de: 6774 beqs 45954 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 458e0: 2039 0005 b430 movel 5b430 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 458e6: 5280 addql #1,%d0 <== NOT EXECUTED 458e8: 23c0 0005 b430 movel %d0,5b430 <_Thread_Dispatch_disable_level> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE POSIX_Condition_variables_Control *_POSIX_Condition_variables_Allocate( void ) { return (POSIX_Condition_variables_Control *) 458ee: 4879 0005 b806 pea 5b806 <_POSIX_Condition_variables_Information> <== NOT EXECUTED 458f4: 4eb9 0004 7f98 jsr 47f98 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); the_cond = _POSIX_Condition_variables_Allocate(); if ( !the_cond ) { 458fa: 588f addql #4,%sp <== NOT EXECUTED 458fc: 2440 moveal %d0,%a2 <== NOT EXECUTED 458fe: 49f9 0004 8b6a lea 48b6a <_Thread_Enable_dispatch>,%a4 <== NOT EXECUTED 45904: 4a80 tstl %d0 <== NOT EXECUTED 45906: 6606 bnes 4590e <== NOT EXECUTED _Thread_Enable_dispatch(); 45908: 4e94 jsr %a4@ <== NOT EXECUTED 4590a: 700c moveq #12,%d0 <== NOT EXECUTED 4590c: 6048 bras 45956 <== NOT EXECUTED return ENOMEM; } the_cond->process_shared = the_attr->process_shared; 4590e: 256b 0004 0010 movel %a3@(4),%a2@(16) <== NOT EXECUTED the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX; 45914: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED /* XXX some more initialization might need to go here */ _Thread_queue_Initialize( 45918: 4878 0074 pea 74 <== NOT EXECUTED 4591c: 4878 0800 pea 800 <== NOT EXECUTED 45920: 42a7 clrl %sp@- <== NOT EXECUTED 45922: 486a 0018 pea %a2@(24) <== NOT EXECUTED 45926: 4eb9 0004 927c jsr 4927c <_Thread_queue_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4592c: 2079 0005 b820 moveal 5b820 <_POSIX_Condition_variables_Information+0x1a>,%a0 <== NOT EXECUTED 45932: 4280 clrl %d0 <== NOT EXECUTED 45934: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 45938: 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; 4593c: 42aa 000c clrl %a2@(12) <== NOT EXECUTED &_POSIX_Condition_variables_Information, &the_cond->Object, 0 ); *cond = the_cond->Object.id; 45940: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45944: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 45948: 4e94 jsr %a4@ <== NOT EXECUTED 4594a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45950: 4280 clrl %d0 <== NOT EXECUTED 45952: 6002 bras 45956 <== NOT EXECUTED return 0; 45954: 7016 moveq #22,%d0 <== NOT EXECUTED } 45956: 4cee 1c00 fff4 moveml %fp@(-12),%a2-%a4 <== NOT EXECUTED 4595c: 4e5e unlk %fp <== NOT EXECUTED 4595e: 4e75 rts 00045960 : */ int pthread_cond_signal( pthread_cond_t *cond ) { 45960: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Condition_variables_Signal_support( cond, FALSE ); 45964: 42a7 clrl %sp@- <== NOT EXECUTED 45966: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4596a: 4eb9 0004 5974 jsr 45974 <_POSIX_Condition_variables_Signal_support> <== NOT EXECUTED } 45970: 4e5e unlk %fp <== NOT EXECUTED 45972: 4e75 rts 000459d4 : int pthread_cond_timedwait( pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime ) { 459d4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED * So we check the abstime provided, and hold on to whether it * is valid or not. If it isn't correct and in the future, * then we do a polling operation and convert the UNSATISFIED * status into the appropriate error. */ switch ( _POSIX_Absolute_timeout_to_ticks(abstime, &ticks) ) { 459d8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 459dc: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 459e0: 4eb9 0004 5e50 jsr 45e50 <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED 459e6: 508f addql #8,%sp <== NOT EXECUTED 459e8: 7202 moveq #2,%d1 <== NOT EXECUTED 459ea: b280 cmpl %d0,%d1 <== NOT EXECUTED 459ec: 650a bcss 459f8 <== NOT EXECUTED 459ee: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 459f2: b280 cmpl %d0,%d1 <== NOT EXECUTED 459f4: 630a blss 45a00 <== NOT EXECUTED 459f6: 6004 bras 459fc <== NOT EXECUTED 459f8: 4200 clrb %d0 <== NOT EXECUTED 459fa: 6006 bras 45a02 <== NOT EXECUTED 459fc: 7016 moveq #22,%d0 <== NOT EXECUTED 459fe: 6020 bras 45a20 <== NOT EXECUTED 45a00: 7001 moveq #1,%d0 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: already_timedout = FALSE; break; } return _POSIX_Condition_variables_Wait_support( 45a02: 7201 moveq #1,%d1 <== NOT EXECUTED 45a04: c280 andl %d0,%d1 <== NOT EXECUTED 45a06: 2f01 movel %d1,%sp@- <== NOT EXECUTED 45a08: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 45a0c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45a10: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45a14: 4eb9 0004 5a40 jsr 45a40 <_POSIX_Condition_variables_Wait_support> <== NOT EXECUTED 45a1a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED cond, mutex, ticks, already_timedout ); } 45a20: 4e5e unlk %fp <== NOT EXECUTED 45a22: 4e75 rts 00045a24 : int pthread_cond_wait( pthread_cond_t *cond, pthread_mutex_t *mutex ) { 45a24: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Condition_variables_Wait_support( 45a28: 42a7 clrl %sp@- <== NOT EXECUTED 45a2a: 42a7 clrl %sp@- <== NOT EXECUTED 45a2c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45a30: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45a34: 4eb9 0004 5a40 jsr 45a40 <_POSIX_Condition_variables_Wait_support> <== NOT EXECUTED cond, mutex, THREAD_QUEUE_WAIT_FOREVER, FALSE ); } 45a3a: 4e5e unlk %fp <== NOT EXECUTED 45a3c: 4e75 rts <== NOT EXECUTED ... 00045754 : */ int pthread_condattr_destroy( pthread_condattr_t *attr ) { 45754: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45758: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || attr->is_initialized == FALSE ) 4575c: 4a88 tstl %a0 <== NOT EXECUTED 4575e: 670a beqs 4576a <== NOT EXECUTED 45760: 4a90 tstl %a0@ <== NOT EXECUTED 45762: 6706 beqs 4576a <== NOT EXECUTED return EINVAL; attr->is_initialized = FALSE; 45764: 4290 clrl %a0@ <== NOT EXECUTED 45766: 4280 clrl %d0 <== NOT EXECUTED 45768: 6002 bras 4576c <== NOT EXECUTED return 0; 4576a: 7016 moveq #22,%d0 <== NOT EXECUTED } 4576c: 4e5e unlk %fp <== NOT EXECUTED 4576e: 4e75 rts 00045770 : int pthread_condattr_getpshared( const pthread_condattr_t *attr, int *pshared ) { 45770: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45774: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED if ( !attr ) 45778: 4a89 tstl %a1 <== NOT EXECUTED 4577a: 6604 bnes 45780 <== NOT EXECUTED 4577c: 7016 moveq #22,%d0 <== NOT EXECUTED 4577e: 600a bras 4578a <== NOT EXECUTED return EINVAL; *pshared = attr->process_shared; 45780: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 45784: 4280 clrl %d0 <== NOT EXECUTED 45786: 20a9 0004 movel %a1@(4),%a0@ <== NOT EXECUTED return 0; } 4578a: 4e5e unlk %fp <== NOT EXECUTED 4578c: 4e75 rts <== NOT EXECUTED ... 00045790 : */ int pthread_condattr_init( pthread_condattr_t *attr ) { 45790: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45794: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr ) 45798: 4a88 tstl %a0 <== NOT EXECUTED 4579a: 6604 bnes 457a0 <== NOT EXECUTED 4579c: 7016 moveq #22,%d0 <== NOT EXECUTED 4579e: 6014 bras 457b4 <== NOT EXECUTED return EINVAL; *attr = _POSIX_Condition_variables_Default_attributes; 457a0: 2039 0005 8592 movel 58592 <_POSIX_Condition_variables_Default_attributes>,%d0 <== NOT EXECUTED 457a6: 2239 0005 8596 movel 58596 <_POSIX_Condition_variables_Default_attributes+0x4>,%d1 <== NOT EXECUTED 457ac: 2080 movel %d0,%a0@ <== NOT EXECUTED 457ae: 2141 0004 movel %d1,%a0@(4) <== NOT EXECUTED 457b2: 4280 clrl %d0 <== NOT EXECUTED return 0; } 457b4: 4e5e unlk %fp <== NOT EXECUTED 457b6: 4e75 rts 000457b8 : int pthread_condattr_setpshared( pthread_condattr_t *attr, int pshared ) { 457b8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 457bc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 457c0: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !attr ) 457c4: 4a88 tstl %a0 <== NOT EXECUTED 457c6: 670e beqs 457d6 <== NOT EXECUTED return EINVAL; switch ( pshared ) { 457c8: 7201 moveq #1,%d1 <== NOT EXECUTED 457ca: b280 cmpl %d0,%d1 <== NOT EXECUTED 457cc: 6508 bcss 457d6 <== NOT EXECUTED case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 457ce: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED 457d2: 4280 clrl %d0 <== NOT EXECUTED 457d4: 6002 bras 457d8 <== NOT EXECUTED return 0; 457d6: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 457d8: 4e5e unlk %fp <== NOT EXECUTED 457da: 4e75 rts 00045850 : pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)( void * ), void *arg ) { 45850: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 45854: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== NOT EXECUTED 45858: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4585c: 2a2e 0010 movel %fp@(16),%d5 <== NOT EXECUTED POSIX_API_Control *api; int schedpolicy = SCHED_RR; struct sched_param schedparam; Objects_Name name; if ( !start_routine ) 45860: 6606 bnes 45868 <== NOT EXECUTED 45862: 700e moveq #14,%d0 <== NOT EXECUTED 45864: 6000 0250 braw 45ab6 <== NOT EXECUTED return EFAULT; the_attr = (attr) ? attr : &_POSIX_Threads_Default_attributes; 45868: 4bf9 0005 86f8 lea 586f8 <_POSIX_Threads_Default_attributes>,%a5 <== NOT EXECUTED 4586e: 4a80 tstl %d0 <== NOT EXECUTED 45870: 6702 beqs 45874 <== NOT EXECUTED 45872: 2a40 moveal %d0,%a5 <== NOT EXECUTED if ( !the_attr->is_initialized ) 45874: 4a95 tstl %a5@ <== NOT EXECUTED 45876: 6700 023c beqw 45ab4 <== NOT EXECUTED * stack space if it is allowed to allocate it itself. * * NOTE: If the user provides the stack we will let it drop below * twice the minimum. */ if ( the_attr->stackaddr && !_Stack_Is_enough(the_attr->stacksize) ) 4587a: 4aad 0004 tstl %a5@(4) <== NOT EXECUTED 4587e: 670e beqs 4588e <== NOT EXECUTED 45880: 2039 0005 9a0e movel 59a0e ,%d0 <== NOT EXECUTED 45886: b0ad 0008 cmpl %a5@(8),%d0 <== NOT EXECUTED 4588a: 6200 0228 bhiw 45ab4 <== NOT EXECUTED * inherits scheduling attributes from the creating thread. If it is * PTHREAD_EXPLICIT_SCHED, then scheduling parameters come from the * attributes structure. */ switch ( the_attr->inheritsched ) { 4588e: 202d 0010 movel %a5@(16),%d0 <== NOT EXECUTED 45892: 7201 moveq #1,%d1 <== NOT EXECUTED 45894: b280 cmpl %d0,%d1 <== NOT EXECUTED 45896: 670a beqs 458a2 <== NOT EXECUTED 45898: 7402 moveq #2,%d2 <== NOT EXECUTED 4589a: b480 cmpl %d0,%d2 <== NOT EXECUTED 4589c: 6600 0216 bnew 45ab4 <== NOT EXECUTED 458a0: 6018 bras 458ba <== NOT EXECUTED case PTHREAD_INHERIT_SCHED: api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 458a2: 2079 0005 b62e moveal 5b62e <_Thread_Executing>,%a0 <== NOT EXECUTED 458a8: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED schedpolicy = api->schedpolicy; 458ac: 2628 007c movel %a0@(124),%d3 <== NOT EXECUTED schedparam = api->schedparam; 458b0: 4878 0018 pea 18 <== NOT EXECUTED 458b4: 4868 0080 pea %a0@(128) <== NOT EXECUTED 458b8: 600c bras 458c6 <== NOT EXECUTED break; case PTHREAD_EXPLICIT_SCHED: schedpolicy = the_attr->schedpolicy; 458ba: 262d 0014 movel %a5@(20),%d3 <== NOT EXECUTED schedparam = the_attr->schedparam; 458be: 4878 0018 pea 18 <== NOT EXECUTED 458c2: 486d 0018 pea %a5@(24) <== NOT EXECUTED 458c6: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED 458ca: 4eb9 0004 d7bc jsr 4d7bc <== NOT EXECUTED 458d0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Check the contentionscope since rtems only supports PROCESS wide * contention (i.e. no system wide contention). */ if ( the_attr->contentionscope != PTHREAD_SCOPE_PROCESS ) 458d6: 203c 0000 0086 movel #134,%d0 <== NOT EXECUTED 458dc: 4aad 000c tstl %a5@(12) <== NOT EXECUTED 458e0: 6600 01d4 bnew 45ab6 <== NOT EXECUTED /* * Interpret the scheduling parameters. */ if ( !_POSIX_Priority_Is_valid( schedparam.sched_priority ) ) 458e4: 282e ffe8 movel %fp@(-24),%d4 <== NOT EXECUTED 458e8: 2004 movel %d4,%d0 <== NOT EXECUTED 458ea: 5380 subql #1,%d0 <== NOT EXECUTED 458ec: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 458f2: 6200 01c0 bhiw 45ab4 <== NOT EXECUTED */ budget_callout = NULL; budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; switch ( schedpolicy ) { 458f6: 7001 moveq #1,%d0 <== NOT EXECUTED 458f8: b083 cmpl %d3,%d0 <== NOT EXECUTED 458fa: 671a beqs 45916 <== NOT EXECUTED 458fc: 6d08 blts 45906 <== NOT EXECUTED 458fe: 4a83 tstl %d3 <== NOT EXECUTED 45900: 6718 beqs 4591a <== NOT EXECUTED 45902: 6000 01b0 braw 45ab4 <== NOT EXECUTED 45906: 7202 moveq #2,%d1 <== NOT EXECUTED 45908: b283 cmpl %d3,%d1 <== NOT EXECUTED 4590a: 6716 beqs 45922 <== NOT EXECUTED 4590c: 7403 moveq #3,%d2 <== NOT EXECUTED 4590e: b483 cmpl %d3,%d2 <== NOT EXECUTED 45910: 6600 01a2 bnew 45ab4 <== NOT EXECUTED 45914: 6012 bras 45928 <== NOT EXECUTED 45916: 95ca subal %a2,%a2 <== NOT EXECUTED 45918: 6004 bras 4591e <== NOT EXECUTED 4591a: 347c 0001 moveaw #1,%a2 <== NOT EXECUTED 4591e: 4282 clrl %d2 <== NOT EXECUTED 45920: 603c bras 4595e <== NOT EXECUTED 45922: 347c 0002 moveaw #2,%a2 <== NOT EXECUTED 45926: 60f6 bras 4591e <== NOT EXECUTED case SCHED_SPORADIC: budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT; budget_callout = _POSIX_Threads_Sporadic_budget_callout; if ( _Timespec_To_ticks( &schedparam.ss_replenish_period ) < 45928: 45f9 0004 9618 lea 49618 <_Timespec_To_ticks>,%a2 <== NOT EXECUTED 4592e: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 45932: 4e92 jsr %a2@ <== NOT EXECUTED 45934: 2400 movel %d0,%d2 <== NOT EXECUTED 45936: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4593a: 4e92 jsr %a2@ <== NOT EXECUTED 4593c: 508f addql #8,%sp <== NOT EXECUTED 4593e: b082 cmpl %d2,%d0 <== NOT EXECUTED 45940: 6200 0172 bhiw 45ab4 <== NOT EXECUTED _Timespec_To_ticks( &schedparam.ss_initial_budget ) ) return EINVAL; if ( !_POSIX_Priority_Is_valid( schedparam.ss_low_priority ) ) 45944: 202e ffec movel %fp@(-20),%d0 <== NOT EXECUTED 45948: 5380 subql #1,%d0 <== NOT EXECUTED 4594a: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 45950: 6200 0162 bhiw 45ab4 <== NOT EXECUTED 45954: 347c 0003 moveaw #3,%a2 <== NOT EXECUTED 45958: 243c 0004 5e18 movel #286232,%d2 <== NOT EXECUTED #endif /* * Lock the allocator mutex for protection */ _RTEMS_Lock_allocator(); 4595e: 2f39 0005 b626 movel 5b626 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45964: 4eb9 0004 73a0 jsr 473a0 <_API_Mutex_Lock> <== NOT EXECUTED * _POSIX_Threads_Allocate */ RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Allocate( void ) { return (Thread_Control *) _Objects_Allocate( &_POSIX_Threads_Information ); 4596a: 4879 0005 b762 pea 5b762 <_POSIX_Threads_Information> <== NOT EXECUTED 45970: 4eb9 0004 7c68 jsr 47c68 <_Objects_Allocate> <== NOT EXECUTED * NOTE: Global threads are not currently supported. */ the_thread = _POSIX_Threads_Allocate(); if ( !the_thread ) { 45976: 508f addql #8,%sp <== NOT EXECUTED 45978: 2840 moveal %d0,%a4 <== NOT EXECUTED 4597a: 4a80 tstl %d0 <== NOT EXECUTED 4597c: 6610 bnes 4598e <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4597e: 2f39 0005 b626 movel 5b626 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45984: 4eb9 0004 7404 jsr 47404 <_API_Mutex_Unlock> <== NOT EXECUTED 4598a: 588f addql #4,%sp <== NOT EXECUTED 4598c: 606a bras 459f8 <== NOT EXECUTED /* * Initialize the core thread for this task. */ name.name_p = NULL; /* posix threads don't have a name by default */ status = _Thread_Initialize( 4598e: 222d 0008 movel %a5@(8),%d1 <== NOT EXECUTED 45992: 42a7 clrl %sp@- <== NOT EXECUTED 45994: 2039 0005 9a0e movel 59a0e ,%d0 <== NOT EXECUTED 4599a: 42a7 clrl %sp@- <== NOT EXECUTED 4599c: d080 addl %d0,%d0 <== NOT EXECUTED 4599e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 459a0: 243c 0000 00ff movel #255,%d2 <== NOT EXECUTED 459a6: 9484 subl %d4,%d2 <== NOT EXECUTED 459a8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 459aa: 4878 0001 pea 1 <== NOT EXECUTED 459ae: 2f02 movel %d2,%sp@- <== NOT EXECUTED 459b0: 4878 0001 pea 1 <== NOT EXECUTED 459b4: b280 cmpl %d0,%d1 <== NOT EXECUTED 459b6: 6302 blss 459ba <== NOT EXECUTED 459b8: 2001 movel %d1,%d0 <== NOT EXECUTED 459ba: 2f00 movel %d0,%sp@- <== NOT EXECUTED 459bc: 2f2d 0004 movel %a5@(4),%sp@- <== NOT EXECUTED 459c0: 2f0c movel %a4,%sp@- <== NOT EXECUTED 459c2: 4879 0005 b762 pea 5b762 <_POSIX_Threads_Information> <== NOT EXECUTED 459c8: 4eb9 0004 8928 jsr 48928 <_Thread_Initialize> <== NOT EXECUTED budget_callout, 0, /* isr level */ name /* posix threads don't have a name */ ); if ( !status ) { 459ce: dffc 0000 002c addal #44,%sp <== NOT EXECUTED 459d4: 4a00 tstb %d0 <== NOT EXECUTED 459d6: 6626 bnes 459fe <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Threads_Free ( Thread_Control *the_pthread ) { _Objects_Free( &_POSIX_Threads_Information, &the_pthread->Object ); 459d8: 2f0c movel %a4,%sp@- <== NOT EXECUTED 459da: 4879 0005 b762 pea 5b762 <_POSIX_Threads_Information> <== NOT EXECUTED 459e0: 4eb9 0004 7f68 jsr 47f68 <_Objects_Free> <== NOT EXECUTED _POSIX_Threads_Free( the_thread ); _RTEMS_Unlock_allocator(); 459e6: 2f39 0005 b626 movel 5b626 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 459ec: 4eb9 0004 7404 jsr 47404 <_API_Mutex_Unlock> <== NOT EXECUTED 459f2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 459f8: 700b moveq #11,%d0 <== NOT EXECUTED 459fa: 6000 00ba braw 45ab6 <== NOT EXECUTED /* * finish initializing the per API structure */ api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 459fe: 266c 0110 moveal %a4@(272),%a3 <== NOT EXECUTED api->Attributes = *the_attr; 45a02: 4878 0038 pea 38 <== NOT EXECUTED 45a06: 45f9 0004 d7bc lea 4d7bc ,%a2 <== NOT EXECUTED 45a0c: 2f0d movel %a5,%sp@- <== NOT EXECUTED 45a0e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45a10: 4e92 jsr %a2@ <== NOT EXECUTED api->detachstate = the_attr->detachstate; 45a12: 276d 0034 0038 movel %a5@(52),%a3@(56) <== NOT EXECUTED api->schedpolicy = schedpolicy; 45a18: 2743 007c movel %d3,%a3@(124) <== NOT EXECUTED api->schedparam = schedparam; 45a1c: 4878 0018 pea 18 <== NOT EXECUTED 45a20: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED 45a24: 486b 0080 pea %a3@(128) <== NOT EXECUTED 45a28: 4e92 jsr %a2@ <== NOT EXECUTED * first run. * * NOTE: Since the thread starts with all unblocked, this is necessary. */ the_thread->do_post_task_switch_extension = true; 45a2a: 7001 moveq #1,%d0 <== NOT EXECUTED 45a2c: 1940 0075 moveb %d0,%a4@(117) <== NOT EXECUTED /* * POSIX threads are allocated and started in one operation. */ status = _Thread_Start( 45a30: 42a7 clrl %sp@- <== NOT EXECUTED 45a32: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 45a36: 2f05 movel %d5,%sp@- <== NOT EXECUTED 45a38: 4878 0001 pea 1 <== NOT EXECUTED 45a3c: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45a3e: 4eb9 0004 92f8 jsr 492f8 <_Thread_Start> <== NOT EXECUTED start_routine, arg, 0 /* unused */ ); if ( schedpolicy == SCHED_SPORADIC ) { 45a44: dffc 0000 002c addal #44,%sp <== NOT EXECUTED /* * POSIX threads are allocated and started in one operation. */ status = _Thread_Start( 45a4a: 1400 moveb %d0,%d2 <== NOT EXECUTED start_routine, arg, 0 /* unused */ ); if ( schedpolicy == SCHED_SPORADIC ) { 45a4c: 7203 moveq #3,%d1 <== NOT EXECUTED 45a4e: b283 cmpl %d3,%d1 <== NOT EXECUTED 45a50: 6624 bnes 45a76 <== NOT EXECUTED _Watchdog_Insert_ticks( 45a52: 486b 0088 pea %a3@(136) <== NOT EXECUTED 45a56: 4eb9 0004 9618 jsr 49618 <_Timespec_To_ticks> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45a5c: 2740 00a8 movel %d0,%a3@(168) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 45a60: 486b 009c pea %a3@(156) <== NOT EXECUTED 45a64: 4879 0005 b64c pea 5b64c <_Watchdog_Ticks_chain> <== NOT EXECUTED 45a6a: 4eb9 0004 9964 jsr 49964 <_Watchdog_Insert> <== NOT EXECUTED 45a70: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45a76: 45f9 0004 7404 lea 47404 <_API_Mutex_Unlock>,%a2 <== NOT EXECUTED * * NOTE: This can only happen if someone slips in and touches the * thread while we are creating it. */ if ( !status ) { 45a7c: 4a02 tstb %d2 <== NOT EXECUTED 45a7e: 661e bnes 45a9e <== NOT EXECUTED 45a80: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45a82: 4879 0005 b762 pea 5b762 <_POSIX_Threads_Information> <== NOT EXECUTED 45a88: 4eb9 0004 7f68 jsr 47f68 <_Objects_Free> <== NOT EXECUTED _POSIX_Threads_Free( the_thread ); _RTEMS_Unlock_allocator(); 45a8e: 2f39 0005 b626 movel 5b626 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45a94: 4e92 jsr %a2@ <== NOT EXECUTED 45a96: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45a9c: 6016 bras 45ab4 <== NOT EXECUTED /* * Return the id and indicate we successfully created the thread */ *thread = the_thread->Object.id; 45a9e: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45aa2: 20ac 0008 movel %a4@(8),%a0@ <== NOT EXECUTED _RTEMS_Unlock_allocator(); 45aa6: 2f39 0005 b626 movel 5b626 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45aac: 4e92 jsr %a2@ <== NOT EXECUTED 45aae: 588f addql #4,%sp <== NOT EXECUTED 45ab0: 4280 clrl %d0 <== NOT EXECUTED 45ab2: 6002 bras 45ab6 <== NOT EXECUTED return 0; 45ab4: 7016 moveq #22,%d0 <== NOT EXECUTED } 45ab6: 4cee 3c3c ffc8 moveml %fp@(-56),%d2-%d5/%a2-%a5 <== NOT EXECUTED 45abc: 4e5e unlk %fp <== NOT EXECUTED 45abe: 4e75 rts 00044f00 : #include int pthread_detach( pthread_t thread ) { 44f00: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Get ( pthread_t id, Objects_Locations *location ) { return (Thread_Control *) 44f04: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44f08: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44f0c: 4879 0005 a4fa pea 5a4fa <_POSIX_Threads_Information> <== NOT EXECUTED 44f12: 4eb9 0004 72a0 jsr 472a0 <_Objects_Get> <== NOT EXECUTED register Thread_Control *the_thread; POSIX_API_Control *api; Objects_Locations location; the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 44f18: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44f1e: 2040 moveal %d0,%a0 <== NOT EXECUTED 44f20: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44f24: 6704 beqs 44f2a <== NOT EXECUTED 44f26: 7003 moveq #3,%d0 <== NOT EXECUTED 44f28: 6010 bras 44f3a <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; api->detachstate = PTHREAD_CREATE_DETACHED; 44f2a: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED 44f2e: 42a8 0038 clrl %a0@(56) <== NOT EXECUTED _Thread_Enable_dispatch(); 44f32: 4eb9 0004 7a12 jsr 47a12 <_Thread_Enable_dispatch> <== NOT EXECUTED 44f38: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 44f3a: 4e5e unlk %fp <== NOT EXECUTED 44f3c: 4e75 rts <== NOT EXECUTED ... 00045ac0 : int pthread_equal( pthread_t t1, pthread_t t2 ) { 45ac0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45ac4: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 45ac8: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 45acc: 57c0 seq %d0 <== NOT EXECUTED 45ace: 49c0 extbl %d0 <== NOT EXECUTED break; } return status; #endif } 45ad0: 4e5e unlk %fp <== NOT EXECUTED 45ad2: 4480 negl %d0 <== NOT EXECUTED 45ad4: 4e75 rts <== NOT EXECUTED ... 0004b2c2 : } void pthread_exit( void *value_ptr ) { 4b2c2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _POSIX_Thread_Exit( _Thread_Executing, value_ptr ); 4b2c6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b2ca: 2f39 0005 7f3a movel 57f3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 4b2d0: 4eb9 0004 b250 jsr 4b250 <_POSIX_Thread_Exit> <== NOT EXECUTED 4b2d6: 508f addql #8,%sp <== NOT EXECUTED } 4b2d8: 4e5e unlk %fp <== NOT EXECUTED 4b2da: 4e75 rts 00044ef0 : int pthread_getcpuclockid( pthread_t pid, clockid_t *clock_id ) { 44ef0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44ef4: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44efa: 2040 moveal %d0,%a0 <== NOT EXECUTED 44efc: 7058 moveq #88,%d0 <== NOT EXECUTED 44efe: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44f00: 4e5e unlk %fp <== NOT EXECUTED 44f02: 70ff moveq #-1,%d0 <== NOT EXECUTED 44f04: 4e75 rts <== NOT EXECUTED ... 00046e0c : int pthread_getschedparam( pthread_t thread, int *policy, struct sched_param *param ) { 46e0c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 46e10: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED 46e14: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED 46e18: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED Objects_Locations location; POSIX_API_Control *api; register Thread_Control *the_thread; if ( !policy || !param ) 46e1c: 4a8c tstl %a4 <== NOT EXECUTED 46e1e: 675e beqs 46e7e <== NOT EXECUTED 46e20: 4a8b tstl %a3 <== NOT EXECUTED 46e22: 675a beqs 46e7e <== NOT EXECUTED RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Get ( pthread_t id, Objects_Locations *location ) { return (Thread_Control *) 46e24: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46e28: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46e2c: 4879 0005 d20a pea 5d20a <_POSIX_Threads_Information> <== NOT EXECUTED 46e32: 4eb9 0004 9224 jsr 49224 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 46e38: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46e3e: 2440 moveal %d0,%a2 <== NOT EXECUTED 46e40: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46e44: 6704 beqs 46e4a <== NOT EXECUTED 46e46: 7003 moveq #3,%d0 <== NOT EXECUTED 46e48: 6036 bras 46e80 <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 46e4a: 206a 0110 moveal %a2@(272),%a0 <== NOT EXECUTED if ( policy ) *policy = api->schedpolicy; 46e4e: 28a8 007c movel %a0@(124),%a4@ <== NOT EXECUTED if ( param ) { *param = api->schedparam; 46e52: 4878 0018 pea 18 <== NOT EXECUTED 46e56: 4868 0080 pea %a0@(128) <== NOT EXECUTED 46e5a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46e5c: 4eb9 0004 ea7c jsr 4ea7c <== NOT EXECUTED param->sched_priority = 46e62: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 46e68: 90aa 0014 subl %a2@(20),%d0 <== NOT EXECUTED 46e6c: 2680 movel %d0,%a3@ <== NOT EXECUTED _POSIX_Priority_From_core( the_thread->current_priority ); } _Thread_Enable_dispatch(); 46e6e: 4eb9 0004 9996 jsr 49996 <_Thread_Enable_dispatch> <== NOT EXECUTED 46e74: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46e7a: 4280 clrl %d0 <== NOT EXECUTED 46e7c: 6002 bras 46e80 <== NOT EXECUTED return 0; 46e7e: 7016 moveq #22,%d0 <== NOT EXECUTED break; } return ESRCH; } 46e80: 4cee 1c00 fff0 moveml %fp@(-16),%a2-%a4 <== NOT EXECUTED 46e86: 4e5e unlk %fp <== NOT EXECUTED 46e88: 4e75 rts <== NOT EXECUTED ... 00044e00 : */ void *pthread_getspecific( pthread_key_t key ) { 44e00: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44e04: 2f02 movel %d2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Get ( Objects_Id id, Objects_Locations *location ) { return (POSIX_Keys_Control *) 44e06: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44e0a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44e0e: 4879 0005 a772 pea 5a772 <_POSIX_Keys_Information> <== NOT EXECUTED 44e14: 4eb9 0004 73f8 jsr 473f8 <_Objects_Get> <== NOT EXECUTED uint32_t index; Objects_Locations location; void *key_data; the_key = _POSIX_Keys_Get( key, &location ); switch ( location ) { 44e1a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44e20: 2240 moveal %d0,%a1 <== NOT EXECUTED 44e22: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44e26: 6704 beqs 44e2c <== NOT EXECUTED 44e28: 4282 clrl %d2 <== NOT EXECUTED 44e2a: 602a bras 44e56 <== NOT EXECUTED case OBJECTS_LOCAL: api = _Objects_Get_API( _Thread_Executing->Object.id ); 44e2c: 2079 0005 a496 moveal 5a496 <_Thread_Executing>,%a0 <== NOT EXECUTED 44e32: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED index = _Objects_Get_index( _Thread_Executing->Object.id ); key_data = (void *) the_key->Values[ api ][ index ]; 44e36: 7418 moveq #24,%d2 <== NOT EXECUTED 44e38: 2001 movel %d1,%d0 <== NOT EXECUTED 44e3a: e4a8 lsrl %d2,%d0 <== NOT EXECUTED 44e3c: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 44e40: c082 andl %d2,%d0 <== NOT EXECUTED 44e42: 2071 0c16 moveal %a1@(00000016,%d0:l:4),%a0 <== NOT EXECUTED 44e46: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 44e4c: 2430 1c00 movel %a0@(00000000,%d1:l:4),%d2 <== NOT EXECUTED _Thread_Enable_dispatch(); 44e50: 4eb9 0004 7b6a jsr 47b6a <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return NULL; } 44e56: 2002 movel %d2,%d0 <== NOT EXECUTED 44e58: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44e5c: 4e5e unlk %fp <== NOT EXECUTED 44e5e: 4e75 rts 00048d2c : int pthread_join( pthread_t thread, void **value_ptr ) { 48d2c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 48d30: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED 48d34: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48d38: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED 48d3c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48d40: 4879 0005 fac2 pea 5fac2 <_POSIX_Threads_Information> <== NOT EXECUTED 48d46: 4eb9 0004 b0d0 jsr 4b0d0 <_Objects_Get> <== NOT EXECUTED POSIX_API_Control *api; Objects_Locations location; void *return_pointer; the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 48d4c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48d52: 2440 moveal %d0,%a2 <== NOT EXECUTED 48d54: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48d58: 6704 beqs 48d5e <== NOT EXECUTED 48d5a: 7003 moveq #3,%d0 <== NOT EXECUTED 48d5c: 6060 bras 48dbe <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 48d5e: 206a 0110 moveal %a2@(272),%a0 <== NOT EXECUTED if ( api->detachstate == PTHREAD_CREATE_DETACHED ) { 48d62: 4aa8 0038 tstl %a0@(56) <== NOT EXECUTED 48d66: 660a bnes 48d72 <== NOT EXECUTED _Thread_Enable_dispatch(); 48d68: 4eb9 0004 b842 jsr 4b842 <_Thread_Enable_dispatch> <== NOT EXECUTED 48d6e: 7016 moveq #22,%d0 <== NOT EXECUTED 48d70: 604c bras 48dbe <== NOT EXECUTED RTEMS_INLINE_ROUTINE bool _Thread_Is_executing ( const Thread_Control *the_thread ) { return ( the_thread == _Thread_Executing ); 48d72: 2279 0005 f98e moveal 5f98e <_Thread_Executing>,%a1 <== NOT EXECUTED 48d78: 47f9 0004 b842 lea 4b842 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED return EINVAL; } if ( _Thread_Is_executing( the_thread ) ) { 48d7e: b3c0 cmpal %d0,%a1 <== NOT EXECUTED 48d80: 6606 bnes 48d88 <== NOT EXECUTED _Thread_Enable_dispatch(); 48d82: 4e93 jsr %a3@ <== NOT EXECUTED 48d84: 702d moveq #45,%d0 <== NOT EXECUTED 48d86: 6036 bras 48dbe <== NOT EXECUTED /* * Put ourself on the threads join list */ _Thread_Executing->Wait.return_argument = &return_pointer; 48d88: 200e movel %fp,%d0 <== NOT EXECUTED 48d8a: 5180 subql #8,%d0 <== NOT EXECUTED 48d8c: 2340 0028 movel %d0,%a1@(40) <== 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; 48d90: 7001 moveq #1,%d0 <== NOT EXECUTED 48d92: 2140 006c movel %d0,%a0@(108) <== NOT EXECUTED _Thread_queue_Enter_critical_section( &api->Join_List ); _Thread_queue_Enqueue( &api->Join_List, WATCHDOG_NO_TIMEOUT ); 48d96: 4879 0004 bfe0 pea 4bfe0 <_Thread_queue_Timeout> <== NOT EXECUTED 48d9c: 42a7 clrl %sp@- <== NOT EXECUTED 48d9e: 4868 003c pea %a0@(60) <== NOT EXECUTED 48da2: 4eb9 0004 bca8 jsr 4bca8 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 48da8: 4e93 jsr %a3@ <== NOT EXECUTED if ( value_ptr ) 48daa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48db0: 4a8c tstl %a4 <== NOT EXECUTED 48db2: 6604 bnes 48db8 <== NOT EXECUTED 48db4: 4280 clrl %d0 <== NOT EXECUTED 48db6: 6006 bras 48dbe <== NOT EXECUTED *value_ptr = return_pointer; 48db8: 4280 clrl %d0 <== NOT EXECUTED 48dba: 28ae fff8 movel %fp@(-8),%a4@ <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 48dbe: 4cee 1c00 ffec moveml %fp@(-20),%a2-%a4 <== NOT EXECUTED 48dc4: 4e5e unlk %fp <== NOT EXECUTED 48dc6: 4e75 rts 00044c54 : 44c54: 2039 0005 a3d8 movel 5a3d8 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED int pthread_key_create( pthread_key_t *key, void (*destructor)( void * ) ) { 44c5a: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 44c5e: 5280 addql #1,%d0 <== NOT EXECUTED 44c60: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 44c64: 23c0 0005 a3d8 movel %d0,5a3d8 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * _POSIX_Keys_Allocate */ RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Allocate( void ) { return (POSIX_Keys_Control *) _Objects_Allocate( &_POSIX_Keys_Information ); 44c6a: 4879 0005 a772 pea 5a772 <_POSIX_Keys_Information> <== NOT EXECUTED 44c70: 4eb9 0004 6f98 jsr 46f98 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); the_key = _POSIX_Keys_Allocate(); if ( !the_key ) { 44c76: 588f addql #4,%sp <== NOT EXECUTED 44c78: 2640 moveal %d0,%a3 <== NOT EXECUTED 44c7a: 4a80 tstl %d0 <== NOT EXECUTED 44c7c: 660c bnes 44c8a <== NOT EXECUTED _Thread_Enable_dispatch(); 44c7e: 4eb9 0004 7b6a jsr 47b6a <_Thread_Enable_dispatch> <== NOT EXECUTED 44c84: 700b moveq #11,%d0 <== NOT EXECUTED 44c86: 6000 00c8 braw 44d50 <== NOT EXECUTED return EAGAIN; } the_key->destructor = destructor; 44c8a: 4bf9 0005 a394 lea 5a394 <_Objects_Information_table+0x4>,%a5 <== NOT EXECUTED 44c90: 49eb 001a lea %a3@(26),%a4 <== NOT EXECUTED 44c94: 347c 0001 moveaw #1,%a2 <== NOT EXECUTED INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY ); #endif bytes_to_allocate = sizeof( void * ) * (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1); table = _Workspace_Allocate( bytes_to_allocate ); 44c98: 283c 0004 8e28 movel #298536,%d4 <== NOT EXECUTED _Thread_Enable_dispatch(); return ENOMEM; } the_key->Values[ the_api ] = table; memset( table, '\0', bytes_to_allocate ); 44c9e: 263c 0004 cd14 movel #314644,%d3 <== NOT EXECUTED if ( !the_key ) { _Thread_Enable_dispatch(); return EAGAIN; } the_key->destructor = destructor; 44ca4: 276e 000c 0012 movel %fp@(12),%a3@(18) <== NOT EXECUTED for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) { if ( _Objects_Information_table[ the_api ] ) { 44caa: 2055 moveal %a5@,%a0 <== NOT EXECUTED 44cac: 4a88 tstl %a0 <== NOT EXECUTED 44cae: 6768 beqs 44d18 <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY ); #endif bytes_to_allocate = sizeof( void * ) * 44cb0: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 44cb4: 4280 clrl %d0 <== NOT EXECUTED 44cb6: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 44cba: 2400 movel %d0,%d2 <== NOT EXECUTED 44cbc: 5282 addql #1,%d2 <== NOT EXECUTED 44cbe: e58a lsll #2,%d2 <== NOT EXECUTED (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1); table = _Workspace_Allocate( bytes_to_allocate ); 44cc0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44cc2: 2044 moveal %d4,%a0 <== NOT EXECUTED 44cc4: 4e90 jsr %a0@ <== NOT EXECUTED if ( !table ) { 44cc6: 588f addql #4,%sp <== NOT EXECUTED 44cc8: 4a80 tstl %d0 <== NOT EXECUTED 44cca: 6638 bnes 44d04 <== NOT EXECUTED for ( --the_api; 44ccc: 240a movel %a2,%d2 <== NOT EXECUTED 44cce: 5382 subql #1,%d2 <== NOT EXECUTED 44cd0: 45f3 2c16 lea %a3@(00000016,%d2:l:4),%a2 <== NOT EXECUTED the_api >= 1; the_api-- ) _Workspace_Free( the_key->Values[ the_api ] ); 44cd4: 49f9 0004 8e10 lea 48e10 <_Workspace_Free>,%a4 <== NOT EXECUTED 44cda: 600a bras 44ce6 <== NOT EXECUTED 44cdc: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 44cde: 4e94 jsr %a4@ <== NOT EXECUTED (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1); table = _Workspace_Allocate( bytes_to_allocate ); if ( !table ) { for ( --the_api; the_api >= 1; the_api-- ) 44ce0: 5382 subql #1,%d2 <== NOT EXECUTED 44ce2: 598a subql #4,%a2 <== NOT EXECUTED 44ce4: 588f addql #4,%sp <== NOT EXECUTED bytes_to_allocate = sizeof( void * ) * (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1); table = _Workspace_Allocate( bytes_to_allocate ); if ( !table ) { for ( --the_api; the_api >= 1; 44ce6: 4a82 tstl %d2 <== NOT EXECUTED 44ce8: 66f2 bnes 44cdc <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free ( POSIX_Keys_Control *the_key ) { _Objects_Free( &_POSIX_Keys_Information, &the_key->Object ); 44cea: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44cec: 4879 0005 a772 pea 5a772 <_POSIX_Keys_Information> <== NOT EXECUTED 44cf2: 4eb9 0004 7298 jsr 47298 <_Objects_Free> <== NOT EXECUTED the_api-- ) _Workspace_Free( the_key->Values[ the_api ] ); _POSIX_Keys_Free( the_key ); _Thread_Enable_dispatch(); 44cf8: 4eb9 0004 7b6a jsr 47b6a <_Thread_Enable_dispatch> <== NOT EXECUTED 44cfe: 508f addql #8,%sp <== NOT EXECUTED 44d00: 700c moveq #12,%d0 <== NOT EXECUTED 44d02: 604c bras 44d50 <== NOT EXECUTED return ENOMEM; } the_key->Values[ the_api ] = table; 44d04: 2880 movel %d0,%a4@ <== NOT EXECUTED memset( table, '\0', bytes_to_allocate ); 44d06: 2043 moveal %d3,%a0 <== NOT EXECUTED 44d08: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44d0a: 42a7 clrl %sp@- <== NOT EXECUTED 44d0c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44d0e: 4e90 jsr %a0@ <== NOT EXECUTED 44d10: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44d16: 6002 bras 44d1a <== NOT EXECUTED } else { the_key->Values[ the_api ] = NULL; 44d18: 4294 clrl %a4@ <== NOT EXECUTED * for. [NOTE: Currently RTEMS Classic API tasks are always enabled.] */ for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) { 44d1a: 528a addql #1,%a2 <== NOT EXECUTED 44d1c: 588d addql #4,%a5 <== NOT EXECUTED 44d1e: 588c addql #4,%a4 <== NOT EXECUTED * APIs are optional. Thus there may be no ITRON tasks to have keys * for. [NOTE: Currently RTEMS Classic API tasks are always enabled.] */ for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; 44d20: 7005 moveq #5,%d0 <== NOT EXECUTED 44d22: b08a cmpl %a2,%d0 <== NOT EXECUTED 44d24: 6684 bnes 44caa <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 44d26: 2079 0005 a78c moveal 5a78c <_POSIX_Keys_Information+0x1a>,%a0 <== NOT EXECUTED 44d2c: 4280 clrl %d0 <== NOT EXECUTED 44d2e: 302b 000a movew %a3@(10),%d0 <== NOT EXECUTED 44d32: 218b 0c00 movel %a3,%a0@(00000000,%d0:l:4) <== NOT EXECUTED } } the_key->is_active = TRUE; 44d36: 7001 moveq #1,%d0 <== NOT EXECUTED 44d38: 1740 0010 moveb %d0,%a3@(16) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string == FALSE */ the_object->name.name_u32 = name; 44d3c: 42ab 000c clrl %a3@(12) <== NOT EXECUTED _Objects_Open_u32( &_POSIX_Keys_Information, &the_key->Object, 0 ); *key = the_key->Object.id; 44d40: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 44d44: 20ab 0008 movel %a3@(8),%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 44d48: 4eb9 0004 7b6a jsr 47b6a <_Thread_Enable_dispatch> <== NOT EXECUTED 44d4e: 4280 clrl %d0 <== NOT EXECUTED return 0; } 44d50: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 44d56: 4e5e unlk %fp <== NOT EXECUTED 44d58: 4e75 rts <== NOT EXECUTED ... 00044d5c : */ int pthread_key_delete( pthread_key_t key ) { 44d5c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44d60: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Get ( Objects_Id id, Objects_Locations *location ) { return (POSIX_Keys_Control *) 44d62: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44d66: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44d6a: 4879 0005 a772 pea 5a772 <_POSIX_Keys_Information> <== NOT EXECUTED 44d70: 4eb9 0004 73f8 jsr 473f8 <_Objects_Get> <== NOT EXECUTED register POSIX_Keys_Control *the_key; Objects_Locations location; uint32_t the_api; the_key = _POSIX_Keys_Get( key, &location ); switch ( location ) { 44d76: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44d7c: 2440 moveal %d0,%a2 <== NOT EXECUTED 44d7e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44d82: 6704 beqs 44d88 <== NOT EXECUTED 44d84: 7016 moveq #22,%d0 <== NOT EXECUTED 44d86: 6070 bras 44df8 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_POSIX_Keys_Information, &the_key->Object ); 44d88: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44d8a: 4879 0005 a772 pea 5a772 <_POSIX_Keys_Information> <== NOT EXECUTED 44d90: 4eb9 0004 7020 jsr 47020 <_Objects_Close> <== NOT EXECUTED the_key->is_active = FALSE; for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) if ( the_key->Values[ the_api ] ) 44d96: 202a 001a movel %a2@(26),%d0 <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: _Objects_Close( &_POSIX_Keys_Information, &the_key->Object ); the_key->is_active = FALSE; 44d9a: 4201 clrb %d1 <== NOT EXECUTED 44d9c: 1541 0010 moveb %d1,%a2@(16) <== NOT EXECUTED for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) if ( the_key->Values[ the_api ] ) 44da0: 508f addql #8,%sp <== NOT EXECUTED 44da2: 4a80 tstl %d0 <== NOT EXECUTED 44da4: 670a beqs 44db0 <== NOT EXECUTED _Workspace_Free( the_key->Values[ the_api ] ); 44da6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44da8: 4eb9 0004 8e10 jsr 48e10 <_Workspace_Free> <== NOT EXECUTED 44dae: 588f addql #4,%sp <== NOT EXECUTED the_key->is_active = FALSE; for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) if ( the_key->Values[ the_api ] ) 44db0: 202a 001e movel %a2@(30),%d0 <== NOT EXECUTED 44db4: 670a beqs 44dc0 <== NOT EXECUTED _Workspace_Free( the_key->Values[ the_api ] ); 44db6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44db8: 4eb9 0004 8e10 jsr 48e10 <_Workspace_Free> <== NOT EXECUTED 44dbe: 588f addql #4,%sp <== NOT EXECUTED the_key->is_active = FALSE; for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) if ( the_key->Values[ the_api ] ) 44dc0: 202a 0022 movel %a2@(34),%d0 <== NOT EXECUTED 44dc4: 670a beqs 44dd0 <== NOT EXECUTED _Workspace_Free( the_key->Values[ the_api ] ); 44dc6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44dc8: 4eb9 0004 8e10 jsr 48e10 <_Workspace_Free> <== NOT EXECUTED 44dce: 588f addql #4,%sp <== NOT EXECUTED the_key->is_active = FALSE; for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) if ( the_key->Values[ the_api ] ) 44dd0: 202a 0026 movel %a2@(38),%d0 <== NOT EXECUTED 44dd4: 670a beqs 44de0 <== NOT EXECUTED _Workspace_Free( the_key->Values[ the_api ] ); 44dd6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44dd8: 4eb9 0004 8e10 jsr 48e10 <_Workspace_Free> <== NOT EXECUTED 44dde: 588f addql #4,%sp <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free ( POSIX_Keys_Control *the_key ) { _Objects_Free( &_POSIX_Keys_Information, &the_key->Object ); 44de0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44de2: 4879 0005 a772 pea 5a772 <_POSIX_Keys_Information> <== NOT EXECUTED 44de8: 4eb9 0004 7298 jsr 47298 <_Objects_Free> <== NOT EXECUTED * NOTE: The destructor is not called and it is the responsibility * of the application to free the memory. */ _POSIX_Keys_Free( the_key ); _Thread_Enable_dispatch(); 44dee: 4eb9 0004 7b6a jsr 47b6a <_Thread_Enable_dispatch> <== NOT EXECUTED 44df4: 508f addql #8,%sp <== NOT EXECUTED 44df6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 44df8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 44dfc: 4e5e unlk %fp <== NOT EXECUTED 44dfe: 4e75 rts 000544e4 : int pthread_kill( pthread_t thread, int sig ) { 544e4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 544e8: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 544ec: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED POSIX_API_Control *api; Thread_Control *the_thread; Objects_Locations location; if ( !sig ) 544f0: 670a beqs 544fc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(sig) ) 544f2: 2602 movel %d2,%d3 <== NOT EXECUTED 544f4: 5383 subql #1,%d3 <== NOT EXECUTED 544f6: 701f moveq #31,%d0 <== NOT EXECUTED 544f8: b083 cmpl %d3,%d0 <== NOT EXECUTED 544fa: 6412 bccs 5450e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 544fc: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 54502: 7416 moveq #22,%d2 <== NOT EXECUTED 54504: 2040 moveal %d0,%a0 <== NOT EXECUTED 54506: 2082 movel %d2,%a0@ <== NOT EXECUTED 54508: 70ff moveq #-1,%d0 <== NOT EXECUTED 5450a: 6000 0090 braw 5459c <== NOT EXECUTED RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Get ( pthread_t id, Objects_Locations *location ) { return (Thread_Control *) 5450e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 54512: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 54516: 4879 0005 806e pea 5806e <_POSIX_Threads_Information> <== NOT EXECUTED 5451c: 4eb9 0004 6528 jsr 46528 <_Objects_Get> <== NOT EXECUTED the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 54522: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 54528: 2440 moveal %d0,%a2 <== NOT EXECUTED 5452a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5452e: 665e bnes 5458e <== NOT EXECUTED api = the_thread->API_Extensions[ THREAD_API_POSIX ]; if ( sig ) { if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) { 54530: 2202 movel %d2,%d1 <== NOT EXECUTED 54532: 2002 movel %d2,%d0 <== NOT EXECUTED 54534: e589 lsll #2,%d1 <== NOT EXECUTED 54536: e988 lsll #4,%d0 <== NOT EXECUTED 54538: 9081 subl %d1,%d0 <== NOT EXECUTED 5453a: 0680 0005 838e addil #361358,%d0 <== NOT EXECUTED case OBJECTS_LOCAL: /* * If sig == 0 then just validate arguments */ api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 54540: 206a 0110 moveal %a2@(272),%a0 <== NOT EXECUTED if ( sig ) { if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) { 54544: 7201 moveq #1,%d1 <== NOT EXECUTED 54546: 2240 moveal %d0,%a1 <== NOT EXECUTED 54548: b291 cmpl %a1@,%d1 <== NOT EXECUTED 5454a: 6738 beqs 54584 <== NOT EXECUTED return 0; } /* XXX critical section */ api->signals_pending |= signo_to_mask( sig ); 5454c: 7001 moveq #1,%d0 <== NOT EXECUTED 5454e: e7a8 lsll %d3,%d0 <== NOT EXECUTED 54550: 81a8 00c8 orl %d0,%a0@(200) <== NOT EXECUTED (void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL ); 54554: 42a7 clrl %sp@- <== NOT EXECUTED 54556: 2f02 movel %d2,%sp@- <== NOT EXECUTED 54558: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5455a: 4eb9 0005 43e0 jsr 543e0 <_POSIX_signals_Unblock_thread> <== NOT EXECUTED the_thread->do_post_task_switch_extension = true; if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) 54560: 2039 0005 7f1a movel 57f1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED api->signals_pending |= signo_to_mask( sig ); (void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL ); the_thread->do_post_task_switch_extension = true; 54566: 7201 moveq #1,%d1 <== NOT EXECUTED 54568: 1541 0075 moveb %d1,%a2@(117) <== NOT EXECUTED if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) 5456c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 54572: 4a80 tstl %d0 <== NOT EXECUTED 54574: 670e beqs 54584 <== NOT EXECUTED 54576: b5f9 0005 7f3a cmpal 57f3a <_Thread_Executing>,%a2 <== NOT EXECUTED 5457c: 6606 bnes 54584 <== NOT EXECUTED _ISR_Signals_to_thread_executing = TRUE; 5457e: 13c1 0005 7fc8 moveb %d1,57fc8 <_ISR_Signals_to_thread_executing> <== NOT EXECUTED } _Thread_Enable_dispatch(); 54584: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 5458a: 4280 clrl %d0 <== NOT EXECUTED 5458c: 600e bras 5459c <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( ESRCH ); 5458e: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 54594: 2040 moveal %d0,%a0 <== NOT EXECUTED 54596: 7203 moveq #3,%d1 <== NOT EXECUTED 54598: 70ff moveq #-1,%d0 <== NOT EXECUTED 5459a: 2081 movel %d1,%a0@ <== NOT EXECUTED } 5459c: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 545a2: 4e5e unlk %fp <== NOT EXECUTED 545a4: 4e75 rts <== NOT EXECUTED ... 00046638 : */ int pthread_mutex_destroy( pthread_mutex_t *mutex ) { 46638: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4663c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4663e: 2f0a movel %a2,%sp@- <== NOT EXECUTED register POSIX_Mutex_Control *the_mutex; Objects_Locations location; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 46640: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46644: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46648: 4eb9 0004 6708 jsr 46708 <_POSIX_Mutex_Get> <== NOT EXECUTED switch ( location ) { 4664e: 508f addql #8,%sp <== NOT EXECUTED ) { register POSIX_Mutex_Control *the_mutex; Objects_Locations location; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 46650: 2440 moveal %d0,%a2 <== NOT EXECUTED switch ( location ) { 46652: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46656: 6704 beqs 4665c <== NOT EXECUTED 46658: 7016 moveq #22,%d0 <== NOT EXECUTED 4665a: 6048 bras 466a4 <== NOT EXECUTED 4665c: 47f9 0004 9996 lea 49996 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED /* * XXX: There is an error for the mutex being locked * or being in use by a condition variable. */ if ( _CORE_mutex_Is_locked( &the_mutex->Mutex ) ) { 46662: 4aaa 0062 tstl %a2@(98) <== NOT EXECUTED 46666: 6606 bnes 4666e <== NOT EXECUTED _Thread_Enable_dispatch(); 46668: 4e93 jsr %a3@ <== NOT EXECUTED 4666a: 7010 moveq #16,%d0 <== NOT EXECUTED 4666c: 6036 bras 466a4 <== NOT EXECUTED return EBUSY; } _Objects_Close( &_POSIX_Mutex_Information, &the_mutex->Object ); 4666e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46670: 4879 0005 d336 pea 5d336 <_POSIX_Mutex_Information> <== NOT EXECUTED 46676: 4eb9 0004 8e4c jsr 48e4c <_Objects_Close> <== NOT EXECUTED _CORE_mutex_Flush( &the_mutex->Mutex, NULL, EINVAL ); 4667c: 4878 0016 pea 16 <== NOT EXECUTED 46680: 42a7 clrl %sp@- <== NOT EXECUTED 46682: 486a 0014 pea %a2@(20) <== NOT EXECUTED 46686: 4eb9 0004 862c jsr 4862c <_CORE_mutex_Flush> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Mutex_Free ( POSIX_Mutex_Control *the_mutex ) { _Objects_Free( &_POSIX_Mutex_Information, &the_mutex->Object ); 4668c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4668e: 4879 0005 d336 pea 5d336 <_POSIX_Mutex_Information> <== NOT EXECUTED 46694: 4eb9 0004 90c4 jsr 490c4 <_Objects_Free> <== NOT EXECUTED _POSIX_Mutex_Free( the_mutex ); _Thread_Enable_dispatch(); 4669a: 4e93 jsr %a3@ <== NOT EXECUTED 4669c: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 466a2: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 466a4: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 466a8: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 466ac: 4e5e unlk %fp <== NOT EXECUTED 466ae: 4e75 rts 0004675c : int pthread_mutex_getprioceiling( pthread_mutex_t *mutex, int *prioceiling ) { 4675c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 46760: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46762: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED register POSIX_Mutex_Control *the_mutex; Objects_Locations location; if ( !prioceiling ) 46766: 4a8a tstl %a2 <== NOT EXECUTED 46768: 672e beqs 46798 <== NOT EXECUTED return EINVAL; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 4676a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4676e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46772: 4eb9 0004 6708 jsr 46708 <_POSIX_Mutex_Get> <== NOT EXECUTED switch ( location ) { 46778: 508f addql #8,%sp <== NOT EXECUTED Objects_Locations location; if ( !prioceiling ) return EINVAL; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 4677a: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 4677c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46780: 6616 bnes 46798 <== NOT EXECUTED case OBJECTS_LOCAL: *prioceiling = _POSIX_Priority_From_core( 46782: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 46788: 90a8 005e subl %a0@(94),%d0 <== NOT EXECUTED 4678c: 2480 movel %d0,%a2@ <== NOT EXECUTED the_mutex->Mutex.Attributes.priority_ceiling ); _Thread_Enable_dispatch(); 4678e: 4eb9 0004 9996 jsr 49996 <_Thread_Enable_dispatch> <== NOT EXECUTED 46794: 4280 clrl %d0 <== NOT EXECUTED 46796: 6002 bras 4679a <== NOT EXECUTED return 0; 46798: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4679a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4679e: 4e5e unlk %fp <== NOT EXECUTED 467a0: 4e75 rts <== NOT EXECUTED ... 000467a4 : int pthread_mutex_init( pthread_mutex_t *mutex, const pthread_mutexattr_t *attr ) { 467a4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 467a8: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 467ac: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 467b0: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED #if 0 register POSIX_Mutex_Control *mutex_in_use; Objects_Locations location; #endif if ( attr ) the_attr = attr; 467b4: 47f9 0005 a11c lea 5a11c <_POSIX_Mutex_Default_attributes>,%a3 <== NOT EXECUTED 467ba: 6702 beqs 467be <== NOT EXECUTED 467bc: 2640 moveal %d0,%a3 <== NOT EXECUTED else the_attr = &_POSIX_Mutex_Default_attributes; /* Check for NULL mutex */ if ( !mutex ) 467be: 4a8c tstl %a4 <== NOT EXECUTED 467c0: 6700 00f0 beqw 468b2 <== NOT EXECUTED break; } } #endif if ( !the_attr->is_initialized ) 467c4: 4a93 tstl %a3@ <== NOT EXECUTED 467c6: 6700 00ea beqw 468b2 <== NOT EXECUTED /* * XXX: Be careful about attributes when global!!! */ assert( the_attr->process_shared == PTHREAD_PROCESS_PRIVATE ); 467ca: 4aab 0004 tstl %a3@(4) <== NOT EXECUTED 467ce: 671c beqs 467ec <== NOT EXECUTED 467d0: 4879 0005 a130 pea 5a130 <_POSIX_Mutex_Default_attributes+0x14> <== NOT EXECUTED 467d6: 4879 0005 a1aa pea 5a1aa <__func__.3812> <== NOT EXECUTED 467dc: 4878 0068 pea 68 <== NOT EXECUTED 467e0: 4879 0005 a164 pea 5a164 <_POSIX_Mutex_Default_attributes+0x48> <== NOT EXECUTED 467e6: 4eb9 0004 3bb8 jsr 43bb8 <__assert_func> <== NOT EXECUTED /* * Determine the discipline of the mutex */ switch ( the_attr->protocol ) { 467ec: 202b 000c movel %a3@(12),%d0 <== NOT EXECUTED 467f0: 7201 moveq #1,%d1 <== NOT EXECUTED 467f2: b280 cmpl %d0,%d1 <== NOT EXECUTED 467f4: 6710 beqs 46806 <== NOT EXECUTED 467f6: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 467fa: b280 cmpl %d0,%d1 <== NOT EXECUTED 467fc: 6710 beqs 4680e <== NOT EXECUTED 467fe: 4a80 tstl %d0 <== NOT EXECUTED 46800: 6708 beqs 4680a <== NOT EXECUTED 46802: 6000 00ae braw 468b2 <== NOT EXECUTED 46806: 7402 moveq #2,%d2 <== NOT EXECUTED 46808: 6006 bras 46810 <== NOT EXECUTED 4680a: 4282 clrl %d2 <== NOT EXECUTED 4680c: 6002 bras 46810 <== NOT EXECUTED 4680e: 7403 moveq #3,%d2 <== NOT EXECUTED break; default: return EINVAL; } if ( !_POSIX_Priority_Is_valid( the_attr->prio_ceiling ) ) 46810: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 46814: 5380 subql #1,%d0 <== NOT EXECUTED 46816: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 4681c: 6200 0094 bhiw 468b2 <== NOT EXECUTED 46820: 2039 0005 d018 movel 5d018 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46826: 5280 addql #1,%d0 <== NOT EXECUTED 46828: 23c0 0005 d018 movel %d0,5d018 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * _POSIX_Mutex_Allocate */ RTEMS_INLINE_ROUTINE POSIX_Mutex_Control *_POSIX_Mutex_Allocate( void ) { return (POSIX_Mutex_Control *) _Objects_Allocate( &_POSIX_Mutex_Information ); 4682e: 4879 0005 d336 pea 5d336 <_POSIX_Mutex_Information> <== NOT EXECUTED 46834: 4eb9 0004 8dc4 jsr 48dc4 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); the_mutex = _POSIX_Mutex_Allocate(); if ( !the_mutex ) { 4683a: 588f addql #4,%sp <== NOT EXECUTED 4683c: 2440 moveal %d0,%a2 <== NOT EXECUTED 4683e: 4a80 tstl %d0 <== NOT EXECUTED 46840: 660a bnes 4684c <== NOT EXECUTED _Thread_Enable_dispatch(); 46842: 4eb9 0004 9996 jsr 49996 <_Thread_Enable_dispatch> <== NOT EXECUTED 46848: 700b moveq #11,%d0 <== NOT EXECUTED 4684a: 6068 bras 468b4 <== NOT EXECUTED else the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_IS_ERROR; the_mutex_attr->only_owner_release = TRUE; the_mutex_attr->priority_ceiling = _POSIX_Priority_To_core( the_attr->prio_ceiling ); the_mutex_attr->discipline = the_discipline; 4684c: 2542 005a movel %d2,%a2@(90) <== NOT EXECUTED if ( the_attr->recursive ) the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; else the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_IS_ERROR; the_mutex_attr->only_owner_release = TRUE; 46850: 7201 moveq #1,%d1 <== NOT EXECUTED 46852: 1541 0058 moveb %d1,%a2@(88) <== NOT EXECUTED if ( !the_mutex ) { _Thread_Enable_dispatch(); return EAGAIN; } the_mutex->process_shared = the_attr->process_shared; 46856: 256b 0004 0010 movel %a3@(4),%a2@(16) <== NOT EXECUTED the_mutex_attr = &the_mutex->Mutex.Attributes; if ( the_attr->recursive ) the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; 4685c: 4aab 0010 tstl %a3@(16) <== NOT EXECUTED 46860: 57c0 seq %d0 <== NOT EXECUTED 46862: 49c0 extbl %d0 <== NOT EXECUTED 46864: 4480 negl %d0 <== NOT EXECUTED 46866: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED else the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_IS_ERROR; the_mutex_attr->only_owner_release = TRUE; the_mutex_attr->priority_ceiling = 4686a: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 46870: 90ab 0008 subl %a3@(8),%d0 <== NOT EXECUTED 46874: 2540 005e movel %d0,%a2@(94) <== NOT EXECUTED /* * Must be initialized to unlocked. */ _CORE_mutex_Initialize( 46878: 4878 0001 pea 1 <== NOT EXECUTED 4687c: 486a 0054 pea %a2@(84) <== NOT EXECUTED 46880: 486a 0014 pea %a2@(20) <== NOT EXECUTED 46884: 4eb9 0004 8638 jsr 48638 <_CORE_mutex_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4688a: 2079 0005 d350 moveal 5d350 <_POSIX_Mutex_Information+0x1a>,%a0 <== NOT EXECUTED 46890: 4280 clrl %d0 <== NOT EXECUTED 46892: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 46896: 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; 4689a: 42aa 000c clrl %a2@(12) <== NOT EXECUTED CORE_MUTEX_UNLOCKED ); _Objects_Open_u32( &_POSIX_Mutex_Information, &the_mutex->Object, 0 ); *mutex = the_mutex->Object.id; 4689e: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED _Thread_Enable_dispatch(); 468a2: 4eb9 0004 9996 jsr 49996 <_Thread_Enable_dispatch> <== NOT EXECUTED 468a8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 468ae: 4280 clrl %d0 <== NOT EXECUTED 468b0: 6002 bras 468b4 <== NOT EXECUTED return 0; 468b2: 7016 moveq #22,%d0 <== NOT EXECUTED } 468b4: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 468ba: 4e5e unlk %fp <== NOT EXECUTED 468bc: 4e75 rts <== NOT EXECUTED ... 000468c0 : */ int pthread_mutex_lock( pthread_mutex_t *mutex ) { 468c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Mutex_Lock_support( mutex, TRUE, THREAD_QUEUE_WAIT_FOREVER ); 468c4: 42a7 clrl %sp@- <== NOT EXECUTED 468c6: 4878 0001 pea 1 <== NOT EXECUTED 468ca: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 468ce: 4eb9 0004 68d8 jsr 468d8 <_POSIX_Mutex_Lock_support> <== NOT EXECUTED } 468d4: 4e5e unlk %fp <== NOT EXECUTED 468d6: 4e75 rts 00046940 : int pthread_mutex_setprioceiling( pthread_mutex_t *mutex, int prioceiling, int *old_ceiling ) { 46940: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 46944: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 46948: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4694c: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 46950: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED register POSIX_Mutex_Control *the_mutex; Objects_Locations location; Priority_Control the_priority; int status; if ( !old_ceiling ) 46954: 4a8a tstl %a2 <== NOT EXECUTED 46956: 6766 beqs 469be <== NOT EXECUTED return EINVAL; if ( !_POSIX_Priority_Is_valid( prioceiling ) ) 46958: 2004 movel %d4,%d0 <== NOT EXECUTED 4695a: 5380 subql #1,%d0 <== NOT EXECUTED 4695c: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 46962: 625a bhis 469be <== NOT EXECUTED /* * Must acquire the mutex before we can change it's ceiling */ status = pthread_mutex_lock( mutex ); 46964: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46966: 4eb9 0004 68c0 jsr 468c0 <== NOT EXECUTED if ( status ) 4696c: 588f addql #4,%sp <== NOT EXECUTED /* * Must acquire the mutex before we can change it's ceiling */ status = pthread_mutex_lock( mutex ); 4696e: 2400 movel %d0,%d2 <== NOT EXECUTED if ( status ) 46970: 664e bnes 469c0 <== NOT EXECUTED return status; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 46972: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46976: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46978: 4eb9 0004 6708 jsr 46708 <_POSIX_Mutex_Get> <== NOT EXECUTED switch ( location ) { 4697e: 508f addql #8,%sp <== NOT EXECUTED status = pthread_mutex_lock( mutex ); if ( status ) return status; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 46980: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 46982: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46986: 6636 bnes 469be <== NOT EXECUTED case OBJECTS_LOCAL: *old_ceiling = _POSIX_Priority_From_core( 46988: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 4698e: 90a8 005e subl %a0@(94),%d0 <== NOT EXECUTED 46992: 2480 movel %d0,%a2@ <== NOT EXECUTED the_mutex->Mutex.Attributes.priority_ceiling ); the_mutex->Mutex.Attributes.priority_ceiling = the_priority; 46994: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 4699a: 9084 subl %d4,%d0 <== NOT EXECUTED 4699c: 2140 005e movel %d0,%a0@(94) <== NOT EXECUTED _CORE_mutex_Surrender( 469a0: 42a7 clrl %sp@- <== NOT EXECUTED 469a2: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 469a6: 4868 0014 pea %a0@(20) <== NOT EXECUTED 469aa: 4eb9 0004 87f4 jsr 487f4 <_CORE_mutex_Surrender> <== NOT EXECUTED &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); 469b0: 4eb9 0004 9996 jsr 49996 <_Thread_Enable_dispatch> <== NOT EXECUTED 469b6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 469bc: 6002 bras 469c0 <== NOT EXECUTED return 0; 469be: 7416 moveq #22,%d2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 469c0: 2002 movel %d2,%d0 <== NOT EXECUTED 469c2: 4cee 041c ffec moveml %fp@(-20),%d2-%d4/%a2 <== NOT EXECUTED 469c8: 4e5e unlk %fp <== NOT EXECUTED 469ca: 4e75 rts 000469cc : int pthread_mutex_timedlock( pthread_mutex_t *mutex, const struct timespec *abstime ) { 469cc: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED * So we check the abstime provided, and hold on to whether it * is valid or not. If it isn't correct and in the future, * then we do a polling operation and convert the UNSATISFIED * status into the appropriate error. */ status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks ); 469d0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 469d4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 469d8: 4eb9 0004 6a90 jsr 46a90 <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED switch ( status ) { 469de: 508f addql #8,%sp <== NOT EXECUTED 469e0: 7202 moveq #2,%d1 <== NOT EXECUTED 469e2: b280 cmpl %d0,%d1 <== NOT EXECUTED 469e4: 640a bccs 469f0 <== NOT EXECUTED 469e6: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 469ea: b280 cmpl %d0,%d1 <== NOT EXECUTED 469ec: 6608 bnes 469f6 <== NOT EXECUTED 469ee: 6004 bras 469f4 <== NOT EXECUTED 469f0: 4200 clrb %d0 <== NOT EXECUTED 469f2: 6002 bras 469f6 <== NOT EXECUTED 469f4: 7001 moveq #1,%d0 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: do_wait = TRUE; break; } lock_status = _POSIX_Mutex_Lock_support( 469f6: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 469fa: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 46a00: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46a02: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46a06: 4eb9 0004 68d8 jsr 468d8 <_POSIX_Mutex_Lock_support> <== NOT EXECUTED break; } } return lock_status; } 46a0c: 4e5e unlk %fp <== NOT EXECUTED 46a0e: 4e75 rts 00046a28 : */ int pthread_mutex_trylock( pthread_mutex_t *mutex ) { 46a28: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Mutex_Lock_support( mutex, FALSE, THREAD_QUEUE_WAIT_FOREVER ); 46a2c: 42a7 clrl %sp@- <== NOT EXECUTED 46a2e: 42a7 clrl %sp@- <== NOT EXECUTED 46a30: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46a34: 4eb9 0004 68d8 jsr 468d8 <_POSIX_Mutex_Lock_support> <== NOT EXECUTED } 46a3a: 4e5e unlk %fp <== NOT EXECUTED 46a3c: 4e75 rts <== NOT EXECUTED ... 00046a40 : */ int pthread_mutex_unlock( pthread_mutex_t *mutex ) { 46a40: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 46a44: 2f02 movel %d2,%sp@- <== NOT EXECUTED register POSIX_Mutex_Control *the_mutex; Objects_Locations location; CORE_mutex_Status status; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 46a46: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46a4a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46a4e: 4eb9 0004 6708 jsr 46708 <_POSIX_Mutex_Get> <== NOT EXECUTED switch ( location ) { 46a54: 508f addql #8,%sp <== NOT EXECUTED { register POSIX_Mutex_Control *the_mutex; Objects_Locations location; CORE_mutex_Status status; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 46a56: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 46a58: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46a5c: 6704 beqs 46a62 <== NOT EXECUTED 46a5e: 7016 moveq #22,%d0 <== NOT EXECUTED 46a60: 6026 bras 46a88 <== NOT EXECUTED case OBJECTS_LOCAL: status = _CORE_mutex_Surrender( 46a62: 42a7 clrl %sp@- <== NOT EXECUTED 46a64: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 46a68: 4868 0014 pea %a0@(20) <== NOT EXECUTED 46a6c: 4eb9 0004 87f4 jsr 487f4 <_CORE_mutex_Surrender> <== NOT EXECUTED 46a72: 2400 movel %d0,%d2 <== NOT EXECUTED &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); 46a74: 4eb9 0004 9996 jsr 49996 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_Mutex_Translate_core_mutex_return_code( status ); 46a7a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46a7c: 4eb9 0004 6a10 jsr 46a10 <_POSIX_Mutex_Translate_core_mutex_return_code> <== NOT EXECUTED 46a82: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46a88: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46a8c: 4e5e unlk %fp <== NOT EXECUTED 46a8e: 4e75 rts 000464f4 : */ int pthread_mutexattr_destroy( pthread_mutexattr_t *attr ) { 464f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 464f8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 464fc: 4a88 tstl %a0 <== NOT EXECUTED 464fe: 670a beqs 4650a <== NOT EXECUTED 46500: 4a90 tstl %a0@ <== NOT EXECUTED 46502: 6706 beqs 4650a <== NOT EXECUTED return EINVAL; attr->is_initialized = FALSE; 46504: 4290 clrl %a0@ <== NOT EXECUTED 46506: 4280 clrl %d0 <== NOT EXECUTED 46508: 6002 bras 4650c <== NOT EXECUTED return 0; 4650a: 7016 moveq #22,%d0 <== NOT EXECUTED } 4650c: 4e5e unlk %fp <== NOT EXECUTED 4650e: 4e75 rts 00046510 : int pthread_mutexattr_getprioceiling( const pthread_mutexattr_t *attr, int *prioceiling ) { 46510: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46514: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46518: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !prioceiling ) 4651c: 4a88 tstl %a0 <== NOT EXECUTED 4651e: 6710 beqs 46530 <== NOT EXECUTED 46520: 4a90 tstl %a0@ <== NOT EXECUTED 46522: 670c beqs 46530 <== NOT EXECUTED 46524: 4a89 tstl %a1 <== NOT EXECUTED 46526: 6708 beqs 46530 <== NOT EXECUTED return EINVAL; *prioceiling = attr->prio_ceiling; 46528: 22a8 0008 movel %a0@(8),%a1@ <== NOT EXECUTED 4652c: 4280 clrl %d0 <== NOT EXECUTED 4652e: 6002 bras 46532 <== NOT EXECUTED return 0; 46530: 7016 moveq #22,%d0 <== NOT EXECUTED } 46532: 4e5e unlk %fp <== NOT EXECUTED 46534: 4e75 rts <== NOT EXECUTED ... 00046538 : int pthread_mutexattr_getprotocol( const pthread_mutexattr_t *attr, int *protocol ) { 46538: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4653c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46540: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !protocol ) 46544: 4a88 tstl %a0 <== NOT EXECUTED 46546: 6710 beqs 46558 <== NOT EXECUTED 46548: 4a90 tstl %a0@ <== NOT EXECUTED 4654a: 670c beqs 46558 <== NOT EXECUTED 4654c: 4a89 tstl %a1 <== NOT EXECUTED 4654e: 6708 beqs 46558 <== NOT EXECUTED return EINVAL; *protocol = attr->protocol; 46550: 22a8 000c movel %a0@(12),%a1@ <== NOT EXECUTED 46554: 4280 clrl %d0 <== NOT EXECUTED 46556: 6002 bras 4655a <== NOT EXECUTED return 0; 46558: 7016 moveq #22,%d0 <== NOT EXECUTED } 4655a: 4e5e unlk %fp <== NOT EXECUTED 4655c: 4e75 rts <== NOT EXECUTED ... 00046560 : int pthread_mutexattr_getpshared( const pthread_mutexattr_t *attr, int *pshared ) { 46560: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46564: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46568: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !pshared ) 4656c: 4a88 tstl %a0 <== NOT EXECUTED 4656e: 6710 beqs 46580 <== NOT EXECUTED 46570: 4a90 tstl %a0@ <== NOT EXECUTED 46572: 670c beqs 46580 <== NOT EXECUTED 46574: 4a89 tstl %a1 <== NOT EXECUTED 46576: 6708 beqs 46580 <== NOT EXECUTED return EINVAL; *pshared = attr->process_shared; 46578: 22a8 0004 movel %a0@(4),%a1@ <== NOT EXECUTED 4657c: 4280 clrl %d0 <== NOT EXECUTED 4657e: 6002 bras 46582 <== NOT EXECUTED return 0; 46580: 7016 moveq #22,%d0 <== NOT EXECUTED } 46582: 4e5e unlk %fp <== NOT EXECUTED 46584: 4e75 rts <== NOT EXECUTED ... 00046588 : */ int pthread_mutexattr_init( pthread_mutexattr_t *attr ) { 46588: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4658c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !attr ) 46590: 6606 bnes 46598 <== NOT EXECUTED 46592: 103c 0016 moveb #22,%d0 <== NOT EXECUTED 46596: 601a bras 465b2 <== NOT EXECUTED return EINVAL; *attr = _POSIX_Mutex_Default_attributes; 46598: 4878 0014 pea 14 <== NOT EXECUTED 4659c: 4879 0005 a11c pea 5a11c <_POSIX_Mutex_Default_attributes> <== NOT EXECUTED 465a2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 465a4: 4eb9 0004 ea7c jsr 4ea7c <== NOT EXECUTED 465aa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 465b0: 4280 clrl %d0 <== NOT EXECUTED return 0; } 465b2: 4e5e unlk %fp <== NOT EXECUTED 465b4: 4e75 rts <== NOT EXECUTED ... 000465b8 : int pthread_mutexattr_setprioceiling( pthread_mutexattr_t *attr, int prioceiling ) { 465b8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 465bc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 465c0: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 465c4: 4a88 tstl %a0 <== NOT EXECUTED 465c6: 6718 beqs 465e0 <== NOT EXECUTED 465c8: 4a90 tstl %a0@ <== NOT EXECUTED 465ca: 6714 beqs 465e0 <== NOT EXECUTED return EINVAL; if ( !_POSIX_Priority_Is_valid( prioceiling ) ) 465cc: 2001 movel %d1,%d0 <== NOT EXECUTED 465ce: 5380 subql #1,%d0 <== NOT EXECUTED 465d0: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 465d6: 6208 bhis 465e0 <== NOT EXECUTED return EINVAL; attr->prio_ceiling = prioceiling; 465d8: 2141 0008 movel %d1,%a0@(8) <== NOT EXECUTED 465dc: 4280 clrl %d0 <== NOT EXECUTED 465de: 6002 bras 465e2 <== NOT EXECUTED return 0; 465e0: 7016 moveq #22,%d0 <== NOT EXECUTED } 465e2: 4e5e unlk %fp <== NOT EXECUTED 465e4: 4e75 rts <== NOT EXECUTED ... 000465e8 : int pthread_mutexattr_setprotocol( pthread_mutexattr_t *attr, int protocol ) { 465e8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 465ec: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 465f0: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 465f4: 4a88 tstl %a0 <== NOT EXECUTED 465f6: 6712 beqs 4660a <== NOT EXECUTED 465f8: 4a90 tstl %a0@ <== NOT EXECUTED 465fa: 670e beqs 4660a <== NOT EXECUTED return EINVAL; switch ( protocol ) { 465fc: 7202 moveq #2,%d1 <== NOT EXECUTED 465fe: b280 cmpl %d0,%d1 <== NOT EXECUTED 46600: 6508 bcss 4660a <== NOT EXECUTED case PTHREAD_PRIO_NONE: case PTHREAD_PRIO_INHERIT: case PTHREAD_PRIO_PROTECT: attr->protocol = protocol; 46602: 2140 000c movel %d0,%a0@(12) <== NOT EXECUTED 46606: 4280 clrl %d0 <== NOT EXECUTED 46608: 6002 bras 4660c <== NOT EXECUTED return 0; 4660a: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 4660c: 4e5e unlk %fp <== NOT EXECUTED 4660e: 4e75 rts 00046610 : int pthread_mutexattr_setpshared( pthread_mutexattr_t *attr, int pshared ) { 46610: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46614: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46618: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 4661c: 4a88 tstl %a0 <== NOT EXECUTED 4661e: 6712 beqs 46632 <== NOT EXECUTED 46620: 4a90 tstl %a0@ <== NOT EXECUTED 46622: 670e beqs 46632 <== NOT EXECUTED return EINVAL; switch ( pshared ) { 46624: 7201 moveq #1,%d1 <== NOT EXECUTED 46626: b280 cmpl %d0,%d1 <== NOT EXECUTED 46628: 6508 bcss 46632 <== NOT EXECUTED case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 4662a: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED 4662e: 4280 clrl %d0 <== NOT EXECUTED 46630: 6002 bras 46634 <== NOT EXECUTED return 0; 46632: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 46634: 4e5e unlk %fp <== NOT EXECUTED 46636: 4e75 rts 00045ef0 : int pthread_once( pthread_once_t *once_control, void (*init_routine)(void) ) { 45ef0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45ef4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45ef6: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 45efa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45efc: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( !once_control || !init_routine ) 45f00: 4a8a tstl %a2 <== NOT EXECUTED 45f02: 674e beqs 45f52 <== NOT EXECUTED 45f04: 4a8b tstl %a3 <== NOT EXECUTED 45f06: 674a beqs 45f52 <== NOT EXECUTED return EINVAL; if ( !once_control->init_executed ) { 45f08: 4aaa 0004 tstl %a2@(4) <== NOT EXECUTED 45f0c: 6640 bnes 45f4e <== NOT EXECUTED rtems_mode saveMode; rtems_task_mode(RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &saveMode); 45f0e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45f12: 4878 0100 pea 100 <== NOT EXECUTED 45f16: 4878 0100 pea 100 <== NOT EXECUTED 45f1a: 4eb9 0004 6c58 jsr 46c58 <== NOT EXECUTED if ( !once_control->init_executed ) { 45f20: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45f26: 4aaa 0004 tstl %a2@(4) <== NOT EXECUTED 45f2a: 660a bnes 45f36 <== NOT EXECUTED once_control->is_initialized = TRUE; once_control->init_executed = TRUE; 45f2c: 7001 moveq #1,%d0 <== NOT EXECUTED 45f2e: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED if ( !once_control->init_executed ) { rtems_mode saveMode; rtems_task_mode(RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &saveMode); if ( !once_control->init_executed ) { once_control->is_initialized = TRUE; 45f32: 2480 movel %d0,%a2@ <== NOT EXECUTED once_control->init_executed = TRUE; (*init_routine)(); 45f34: 4e93 jsr %a3@ <== NOT EXECUTED } rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode); 45f36: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45f3a: 4878 0100 pea 100 <== NOT EXECUTED 45f3e: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 45f42: 4eb9 0004 6c58 jsr 46c58 <== NOT EXECUTED 45f48: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45f4e: 4280 clrl %d0 <== NOT EXECUTED 45f50: 6002 bras 45f54 <== NOT EXECUTED 45f52: 7016 moveq #22,%d0 <== NOT EXECUTED } return 0; } 45f54: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 45f58: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 45f5c: 4e5e unlk %fp <== NOT EXECUTED 45f5e: 4e75 rts 00045428 : */ int pthread_rwlock_destroy( pthread_rwlock_t *rwlock ) { 45428: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4542c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4542e: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45432: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock = NULL; Objects_Locations location; if ( !rwlock ) 45434: 4a88 tstl %a0 <== NOT EXECUTED 45436: 6764 beqs 4549c <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Get ( pthread_rwlock_t *RWLock, Objects_Locations *location ) { return (POSIX_RWLock_Control *) _Objects_Get( 45438: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4543c: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4543e: 4879 0005 a43a pea 5a43a <_POSIX_RWLock_Information> <== NOT EXECUTED 45444: 4eb9 0004 8058 jsr 48058 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 4544a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45450: 2440 moveal %d0,%a2 <== NOT EXECUTED 45452: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45456: 6644 bnes 4549c <== NOT EXECUTED case OBJECTS_LOCAL: /* * If there is at least one thread waiting, then do not delete it. */ if ( _Thread_queue_First( &the_rwlock->RWLock.Wait_queue ) != NULL ) { 45458: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4545c: 4eb9 0004 8f5c jsr 48f5c <_Thread_queue_First> <== NOT EXECUTED 45462: 588f addql #4,%sp <== NOT EXECUTED 45464: 47f9 0004 87ca lea 487ca <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 4546a: 4a80 tstl %d0 <== NOT EXECUTED 4546c: 6706 beqs 45474 <== NOT EXECUTED _Thread_Enable_dispatch(); 4546e: 4e93 jsr %a3@ <== NOT EXECUTED 45470: 7010 moveq #16,%d0 <== NOT EXECUTED 45472: 602a bras 4549e <== NOT EXECUTED /* * POSIX doesn't require behavior when it is locked. */ _Objects_Close( &_POSIX_RWLock_Information, &the_rwlock->Object ); 45474: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45476: 4879 0005 a43a pea 5a43a <_POSIX_RWLock_Information> <== NOT EXECUTED 4547c: 4eb9 0004 7c80 jsr 47c80 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _POSIX_RWLock_Free ( POSIX_RWLock_Control *the_RWLock ) { _Objects_Free( &_POSIX_RWLock_Information, &the_RWLock->Object ); 45482: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45484: 4879 0005 a43a pea 5a43a <_POSIX_RWLock_Information> <== NOT EXECUTED 4548a: 4eb9 0004 7ef8 jsr 47ef8 <_Objects_Free> <== NOT EXECUTED _POSIX_RWLock_Free( the_rwlock ); _Thread_Enable_dispatch(); 45490: 4e93 jsr %a3@ <== NOT EXECUTED 45492: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45498: 4280 clrl %d0 <== NOT EXECUTED 4549a: 6002 bras 4549e <== NOT EXECUTED return 0; 4549c: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4549e: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 454a2: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 454a6: 4e5e unlk %fp <== NOT EXECUTED 454a8: 4e75 rts <== NOT EXECUTED ... 000454ac : int pthread_rwlock_init( pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr ) { 454ac: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 454b0: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 454b4: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 454b8: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED const pthread_rwlockattr_t *the_attr; /* * Error check parameters */ if ( !rwlock ) 454bc: 4a8c tstl %a4 <== NOT EXECUTED 454be: 6700 0084 beqw 45544 <== NOT EXECUTED return EINVAL; /* * If the user passed in NULL, use the default attributes */ if ( attr ) { 454c2: 4a82 tstl %d2 <== NOT EXECUTED 454c4: 6704 beqs 454ca <== NOT EXECUTED 454c6: 2042 moveal %d2,%a0 <== NOT EXECUTED 454c8: 6014 bras 454de <== NOT EXECUTED the_attr = attr; } else { (void) pthread_rwlockattr_init( &default_attr ); 454ca: 240e movel %fp,%d2 <== NOT EXECUTED 454cc: 0682 ffff fff4 addil #-12,%d2 <== NOT EXECUTED 454d2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 454d4: 4eb9 0004 5e90 jsr 45e90 <== NOT EXECUTED 454da: 588f addql #4,%sp <== NOT EXECUTED 454dc: 2042 moveal %d2,%a0 <== NOT EXECUTED } /* * Now start error checking the attributes that we are going to use */ if ( !the_attr->is_initialized ) 454de: 4a90 tstl %a0@ <== NOT EXECUTED 454e0: 6762 beqs 45544 <== NOT EXECUTED return EINVAL; switch ( the_attr->process_shared ) { 454e2: 4aa8 0004 tstl %a0@(4) <== NOT EXECUTED 454e6: 665c bnes 45544 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 454e8: 2039 0005 a284 movel 5a284 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 454ee: 5280 addql #1,%d0 <== NOT EXECUTED 454f0: 23c0 0005 a284 movel %d0,5a284 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * This function allocates a RWLock control block from * the inactive chain of free RWLock control blocks. */ RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Allocate( void ) { return (POSIX_RWLock_Control *) 454f6: 4879 0005 a43a pea 5a43a <_POSIX_RWLock_Information> <== NOT EXECUTED 454fc: 4eb9 0004 7bf8 jsr 47bf8 <_Objects_Allocate> <== NOT EXECUTED */ _Thread_Disable_dispatch(); /* prevents deletion */ the_rwlock = _POSIX_RWLock_Allocate(); if ( !the_rwlock ) { 45502: 588f addql #4,%sp <== NOT EXECUTED 45504: 2440 moveal %d0,%a2 <== NOT EXECUTED 45506: 47f9 0004 87ca lea 487ca <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 4550c: 4a80 tstl %d0 <== NOT EXECUTED 4550e: 6606 bnes 45516 <== NOT EXECUTED _Thread_Enable_dispatch(); 45510: 4e93 jsr %a3@ <== NOT EXECUTED 45512: 700b moveq #11,%d0 <== NOT EXECUTED 45514: 6030 bras 45546 <== NOT EXECUTED return EAGAIN; } _CORE_RWLock_Initialize( &the_rwlock->RWLock, &the_attributes ); 45516: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4551a: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4551e: 4eb9 0004 74e0 jsr 474e0 <_CORE_RWLock_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 45524: 2079 0005 a454 moveal 5a454 <_POSIX_RWLock_Information+0x1a>,%a0 <== NOT EXECUTED 4552a: 4280 clrl %d0 <== NOT EXECUTED 4552c: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 45530: 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; 45534: 42aa 000c clrl %a2@(12) <== NOT EXECUTED &_POSIX_RWLock_Information, &the_rwlock->Object, 0 ); *rwlock = the_rwlock->Object.id; 45538: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4553c: 4e93 jsr %a3@ <== NOT EXECUTED 4553e: 508f addql #8,%sp <== NOT EXECUTED 45540: 4280 clrl %d0 <== NOT EXECUTED 45542: 6002 bras 45546 <== NOT EXECUTED return 0; 45544: 7016 moveq #22,%d0 <== NOT EXECUTED } 45546: 4cee 1c04 ffe4 moveml %fp@(-28),%d2/%a2-%a4 <== NOT EXECUTED 4554c: 4e5e unlk %fp <== NOT EXECUTED 4554e: 4e75 rts 00045550 : */ int pthread_rwlock_rdlock( pthread_rwlock_t *rwlock ) { 45550: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45554: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45556: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock; Objects_Locations location; if ( !rwlock ) 4555a: 4a8a tstl %a2 <== NOT EXECUTED 4555c: 6752 beqs 455b0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Get ( pthread_rwlock_t *RWLock, Objects_Locations *location ) { return (POSIX_RWLock_Control *) _Objects_Get( 4555e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45562: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45564: 4879 0005 a43a pea 5a43a <_POSIX_RWLock_Information> <== NOT EXECUTED 4556a: 4eb9 0004 8058 jsr 48058 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 45570: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45576: 2040 moveal %d0,%a0 <== NOT EXECUTED 45578: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4557c: 6632 bnes 455b0 <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_reading( 4557e: 42a7 clrl %sp@- <== NOT EXECUTED 45580: 42a7 clrl %sp@- <== NOT EXECUTED 45582: 4878 0001 pea 1 <== NOT EXECUTED 45586: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45588: 4868 0010 pea %a0@(16) <== NOT EXECUTED 4558c: 4eb9 0004 7518 jsr 47518 <_CORE_RWLock_Obtain_for_reading> <== NOT EXECUTED TRUE, /* we are willing to wait forever */ 0, NULL ); _Thread_Enable_dispatch(); 45592: 4eb9 0004 87ca jsr 487ca <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_RWLock_Translate_core_RWLock_return_code( 45598: 2079 0005 a342 moveal 5a342 <_Thread_Executing>,%a0 <== NOT EXECUTED 4559e: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 455a2: 4eb9 0004 573c jsr 4573c <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED 455a8: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 455ae: 6002 bras 455b2 <== NOT EXECUTED 455b0: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 455b2: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 455b6: 4e5e unlk %fp <== NOT EXECUTED 455b8: 4e75 rts <== NOT EXECUTED ... 000455bc : int pthread_rwlock_timedrdlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) { 455bc: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 455c0: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 455c4: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Objects_Locations location; Watchdog_Interval ticks; bool do_wait; POSIX_Absolute_timeout_conversion_results_t status; if ( !rwlock ) 455c8: 4a8a tstl %a2 <== NOT EXECUTED 455ca: 6700 00a2 beqw 4566e <== NOT EXECUTED * So we check the abstime provided, and hold on to whether it * is valid or not. If it isn't correct and in the future, * then we do a polling operation and convert the UNSATISFIED * status into the appropriate error. */ status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks ); 455ce: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 455d2: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 455d6: 4eb9 0004 b684 jsr 4b684 <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED 455dc: 2600 movel %d0,%d3 <== NOT EXECUTED switch (status) { 455de: 508f addql #8,%sp <== NOT EXECUTED 455e0: 7002 moveq #2,%d0 <== NOT EXECUTED 455e2: b083 cmpl %d3,%d0 <== NOT EXECUTED 455e4: 640a bccs 455f0 <== NOT EXECUTED 455e6: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 455ea: b083 cmpl %d3,%d0 <== NOT EXECUTED 455ec: 6608 bnes 455f6 <== NOT EXECUTED 455ee: 6004 bras 455f4 <== NOT EXECUTED 455f0: 4202 clrb %d2 <== NOT EXECUTED 455f2: 6002 bras 455f6 <== NOT EXECUTED 455f4: 7401 moveq #1,%d2 <== NOT EXECUTED 455f6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 455fa: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 455fc: 4879 0005 a43a pea 5a43a <_POSIX_RWLock_Information> <== NOT EXECUTED 45602: 4eb9 0004 8058 jsr 48058 <_Objects_Get> <== NOT EXECUTED do_wait = TRUE; break; } the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 45608: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4560e: 2040 moveal %d0,%a0 <== NOT EXECUTED 45610: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45614: 6658 bnes 4566e <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_reading( 45616: 42a7 clrl %sp@- <== NOT EXECUTED 45618: 4280 clrl %d0 <== NOT EXECUTED 4561a: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 4561e: 1002 moveb %d2,%d0 <== NOT EXECUTED 45620: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45622: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45624: 4868 0010 pea %a0@(16) <== NOT EXECUTED 45628: 4eb9 0004 7518 jsr 47518 <_CORE_RWLock_Obtain_for_reading> <== NOT EXECUTED do_wait, ticks, NULL ); _Thread_Enable_dispatch(); 4562e: 4eb9 0004 87ca jsr 487ca <_Thread_Enable_dispatch> <== NOT EXECUTED if ( !do_wait && 45634: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4563a: 4a02 tstb %d2 <== NOT EXECUTED 4563c: 661c bnes 4565a <== NOT EXECUTED 4563e: 2079 0005 a342 moveal 5a342 <_Thread_Executing>,%a0 <== NOT EXECUTED 45644: 7002 moveq #2,%d0 <== NOT EXECUTED 45646: b0a8 0034 cmpl %a0@(52),%d0 <== NOT EXECUTED 4564a: 660e bnes 4565a <== NOT EXECUTED (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) { switch (status) { 4564c: 4a83 tstl %d3 <== NOT EXECUTED 4564e: 671e beqs 4566e <== NOT EXECUTED 45650: b083 cmpl %d3,%d0 <== NOT EXECUTED 45652: 6506 bcss 4565a <== NOT EXECUTED 45654: 103c 0074 moveb #116,%d0 <== NOT EXECUTED 45658: 6016 bras 45670 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: break; } } return _POSIX_RWLock_Translate_core_RWLock_return_code( 4565a: 2079 0005 a342 moveal 5a342 <_Thread_Executing>,%a0 <== NOT EXECUTED 45660: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 45664: 4eb9 0004 573c jsr 4573c <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED 4566a: 588f addql #4,%sp <== NOT EXECUTED 4566c: 6002 bras 45670 <== NOT EXECUTED 4566e: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45670: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 45676: 4e5e unlk %fp <== NOT EXECUTED 45678: 4e75 rts <== NOT EXECUTED ... 0004567c : int pthread_rwlock_timedwrlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) { 4567c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 45680: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 45684: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Objects_Locations location; Watchdog_Interval ticks; bool do_wait; POSIX_Absolute_timeout_conversion_results_t status; if ( !rwlock ) 45688: 4a8a tstl %a2 <== NOT EXECUTED 4568a: 6700 00a2 beqw 4572e <== NOT EXECUTED * So we check the abstime provided, and hold on to whether it * is valid or not. If it isn't correct and in the future, * then we do a polling operation and convert the UNSATISFIED * status into the appropriate error. */ status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks ); 4568e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45692: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45696: 4eb9 0004 b684 jsr 4b684 <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED 4569c: 2600 movel %d0,%d3 <== NOT EXECUTED switch (status) { 4569e: 508f addql #8,%sp <== NOT EXECUTED 456a0: 7002 moveq #2,%d0 <== NOT EXECUTED 456a2: b083 cmpl %d3,%d0 <== NOT EXECUTED 456a4: 640a bccs 456b0 <== NOT EXECUTED 456a6: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 456aa: b083 cmpl %d3,%d0 <== NOT EXECUTED 456ac: 6608 bnes 456b6 <== NOT EXECUTED 456ae: 6004 bras 456b4 <== NOT EXECUTED 456b0: 4202 clrb %d2 <== NOT EXECUTED 456b2: 6002 bras 456b6 <== NOT EXECUTED 456b4: 7401 moveq #1,%d2 <== NOT EXECUTED 456b6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 456ba: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 456bc: 4879 0005 a43a pea 5a43a <_POSIX_RWLock_Information> <== NOT EXECUTED 456c2: 4eb9 0004 8058 jsr 48058 <_Objects_Get> <== NOT EXECUTED do_wait = TRUE; break; } the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 456c8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 456ce: 2040 moveal %d0,%a0 <== NOT EXECUTED 456d0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 456d4: 6658 bnes 4572e <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_writing( 456d6: 42a7 clrl %sp@- <== NOT EXECUTED 456d8: 4280 clrl %d0 <== NOT EXECUTED 456da: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 456de: 1002 moveb %d2,%d0 <== NOT EXECUTED 456e0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 456e2: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 456e4: 4868 0010 pea %a0@(16) <== NOT EXECUTED 456e8: 4eb9 0004 75c8 jsr 475c8 <_CORE_RWLock_Obtain_for_writing> <== NOT EXECUTED do_wait, ticks, NULL ); _Thread_Enable_dispatch(); 456ee: 4eb9 0004 87ca jsr 487ca <_Thread_Enable_dispatch> <== NOT EXECUTED if ( !do_wait && 456f4: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 456fa: 4a02 tstb %d2 <== NOT EXECUTED 456fc: 661c bnes 4571a <== NOT EXECUTED 456fe: 2079 0005 a342 moveal 5a342 <_Thread_Executing>,%a0 <== NOT EXECUTED 45704: 7002 moveq #2,%d0 <== NOT EXECUTED 45706: b0a8 0034 cmpl %a0@(52),%d0 <== NOT EXECUTED 4570a: 660e bnes 4571a <== NOT EXECUTED (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) { switch (status) { 4570c: 4a83 tstl %d3 <== NOT EXECUTED 4570e: 671e beqs 4572e <== NOT EXECUTED 45710: b083 cmpl %d3,%d0 <== NOT EXECUTED 45712: 6506 bcss 4571a <== NOT EXECUTED 45714: 103c 0074 moveb #116,%d0 <== NOT EXECUTED 45718: 6016 bras 45730 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: break; } } return _POSIX_RWLock_Translate_core_RWLock_return_code( 4571a: 2079 0005 a342 moveal 5a342 <_Thread_Executing>,%a0 <== NOT EXECUTED 45720: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 45724: 4eb9 0004 573c jsr 4573c <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED 4572a: 588f addql #4,%sp <== NOT EXECUTED 4572c: 6002 bras 45730 <== NOT EXECUTED 4572e: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45730: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 45736: 4e5e unlk %fp <== NOT EXECUTED 45738: 4e75 rts <== NOT EXECUTED ... 00045754 : */ int pthread_rwlock_tryrdlock( pthread_rwlock_t *rwlock ) { 45754: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45758: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4575a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock; Objects_Locations location; if ( !rwlock ) 4575e: 4a8a tstl %a2 <== NOT EXECUTED 45760: 6750 beqs 457b2 <== NOT EXECUTED 45762: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45766: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45768: 4879 0005 a43a pea 5a43a <_POSIX_RWLock_Information> <== NOT EXECUTED 4576e: 4eb9 0004 8058 jsr 48058 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 45774: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4577a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4577c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45780: 6630 bnes 457b2 <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_reading( 45782: 42a7 clrl %sp@- <== NOT EXECUTED 45784: 42a7 clrl %sp@- <== NOT EXECUTED 45786: 42a7 clrl %sp@- <== NOT EXECUTED 45788: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 4578a: 4868 0010 pea %a0@(16) <== NOT EXECUTED 4578e: 4eb9 0004 7518 jsr 47518 <_CORE_RWLock_Obtain_for_reading> <== NOT EXECUTED 0, NULL ); _Thread_Enable_dispatch(); 45794: 4eb9 0004 87ca jsr 487ca <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_RWLock_Translate_core_RWLock_return_code( 4579a: 2079 0005 a342 moveal 5a342 <_Thread_Executing>,%a0 <== NOT EXECUTED 457a0: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 457a4: 4eb9 0004 573c jsr 4573c <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED 457aa: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 457b0: 6002 bras 457b4 <== NOT EXECUTED 457b2: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 457b4: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 457b8: 4e5e unlk %fp <== NOT EXECUTED 457ba: 4e75 rts 000457bc : */ int pthread_rwlock_trywrlock( pthread_rwlock_t *rwlock ) { 457bc: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 457c0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 457c2: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock; Objects_Locations location; if ( !rwlock ) 457c6: 4a8a tstl %a2 <== NOT EXECUTED 457c8: 6750 beqs 4581a <== NOT EXECUTED 457ca: 486e fffc pea %fp@(-4) <== NOT EXECUTED 457ce: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 457d0: 4879 0005 a43a pea 5a43a <_POSIX_RWLock_Information> <== NOT EXECUTED 457d6: 4eb9 0004 8058 jsr 48058 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 457dc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 457e2: 2040 moveal %d0,%a0 <== NOT EXECUTED 457e4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 457e8: 6630 bnes 4581a <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_writing( 457ea: 42a7 clrl %sp@- <== NOT EXECUTED 457ec: 42a7 clrl %sp@- <== NOT EXECUTED 457ee: 42a7 clrl %sp@- <== NOT EXECUTED 457f0: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 457f2: 4868 0010 pea %a0@(16) <== NOT EXECUTED 457f6: 4eb9 0004 75c8 jsr 475c8 <_CORE_RWLock_Obtain_for_writing> <== NOT EXECUTED FALSE, /* we are not willing to wait */ 0, NULL ); _Thread_Enable_dispatch(); 457fc: 4eb9 0004 87ca jsr 487ca <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_RWLock_Translate_core_RWLock_return_code( 45802: 2079 0005 a342 moveal 5a342 <_Thread_Executing>,%a0 <== NOT EXECUTED 45808: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 4580c: 4eb9 0004 573c jsr 4573c <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED 45812: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 45818: 6002 bras 4581c <== NOT EXECUTED 4581a: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4581c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45820: 4e5e unlk %fp <== NOT EXECUTED 45822: 4e75 rts 00045824 : */ int pthread_rwlock_unlock( pthread_rwlock_t *rwlock ) { 45824: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45828: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4582c: 2f02 movel %d2,%sp@- <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock; Objects_Locations location; CORE_RWLock_Status status; if ( !rwlock ) 4582e: 4a88 tstl %a0 <== NOT EXECUTED 45830: 673e beqs 45870 <== NOT EXECUTED 45832: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45836: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 45838: 4879 0005 a43a pea 5a43a <_POSIX_RWLock_Information> <== NOT EXECUTED 4583e: 4eb9 0004 8058 jsr 48058 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 45844: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4584a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4584c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45850: 661e bnes 45870 <== NOT EXECUTED case OBJECTS_LOCAL: status = _CORE_RWLock_Release( &the_rwlock->RWLock ); 45852: 4868 0010 pea %a0@(16) <== NOT EXECUTED 45856: 4eb9 0004 7654 jsr 47654 <_CORE_RWLock_Release> <== NOT EXECUTED 4585c: 2400 movel %d0,%d2 <== NOT EXECUTED _Thread_Enable_dispatch(); 4585e: 4eb9 0004 87ca jsr 487ca <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_RWLock_Translate_core_RWLock_return_code( status ); 45864: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45866: 4eb9 0004 573c jsr 4573c <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED 4586c: 508f addql #8,%sp <== NOT EXECUTED 4586e: 6002 bras 45872 <== NOT EXECUTED 45870: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45872: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45876: 4e5e unlk %fp <== NOT EXECUTED 45878: 4e75 rts <== NOT EXECUTED ... 0004587c : */ int pthread_rwlock_wrlock( pthread_rwlock_t *rwlock ) { 4587c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45880: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45882: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock; Objects_Locations location; if ( !rwlock ) 45886: 4a8a tstl %a2 <== NOT EXECUTED 45888: 6752 beqs 458dc <== NOT EXECUTED 4588a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4588e: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45890: 4879 0005 a43a pea 5a43a <_POSIX_RWLock_Information> <== NOT EXECUTED 45896: 4eb9 0004 8058 jsr 48058 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 4589c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 458a2: 2040 moveal %d0,%a0 <== NOT EXECUTED 458a4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 458a8: 6632 bnes 458dc <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_writing( 458aa: 42a7 clrl %sp@- <== NOT EXECUTED 458ac: 42a7 clrl %sp@- <== NOT EXECUTED 458ae: 4878 0001 pea 1 <== NOT EXECUTED 458b2: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 458b4: 4868 0010 pea %a0@(16) <== NOT EXECUTED 458b8: 4eb9 0004 75c8 jsr 475c8 <_CORE_RWLock_Obtain_for_writing> <== NOT EXECUTED TRUE, /* do not timeout -- wait forever */ 0, NULL ); _Thread_Enable_dispatch(); 458be: 4eb9 0004 87ca jsr 487ca <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_RWLock_Translate_core_RWLock_return_code( 458c4: 2079 0005 a342 moveal 5a342 <_Thread_Executing>,%a0 <== NOT EXECUTED 458ca: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 458ce: 4eb9 0004 573c jsr 4573c <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED 458d4: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 458da: 6002 bras 458de <== NOT EXECUTED 458dc: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 458de: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 458e2: 4e5e unlk %fp <== NOT EXECUTED 458e4: 4e75 rts <== NOT EXECUTED ... 00045e50 : */ int pthread_rwlockattr_destroy( pthread_rwlockattr_t *attr ) { 45e50: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45e54: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || attr->is_initialized == FALSE ) 45e58: 4a88 tstl %a0 <== NOT EXECUTED 45e5a: 670a beqs 45e66 <== NOT EXECUTED 45e5c: 4a90 tstl %a0@ <== NOT EXECUTED 45e5e: 6706 beqs 45e66 <== NOT EXECUTED return EINVAL; attr->is_initialized = FALSE; 45e60: 4290 clrl %a0@ <== NOT EXECUTED 45e62: 4280 clrl %d0 <== NOT EXECUTED 45e64: 6002 bras 45e68 <== NOT EXECUTED return 0; 45e66: 7016 moveq #22,%d0 <== NOT EXECUTED } 45e68: 4e5e unlk %fp <== NOT EXECUTED 45e6a: 4e75 rts 00045e6c : int pthread_rwlockattr_getpshared( const pthread_rwlockattr_t *attr, int *pshared ) { 45e6c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45e70: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED if ( !attr ) 45e74: 4a89 tstl %a1 <== NOT EXECUTED 45e76: 6710 beqs 45e88 <== NOT EXECUTED return EINVAL; if ( !attr->is_initialized ) 45e78: 4a91 tstl %a1@ <== NOT EXECUTED 45e7a: 670c beqs 45e88 <== NOT EXECUTED return EINVAL; *pshared = attr->process_shared; 45e7c: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 45e80: 20a9 0004 movel %a1@(4),%a0@ <== NOT EXECUTED 45e84: 4280 clrl %d0 <== NOT EXECUTED 45e86: 6002 bras 45e8a <== NOT EXECUTED return 0; 45e88: 7016 moveq #22,%d0 <== NOT EXECUTED } 45e8a: 4e5e unlk %fp <== NOT EXECUTED 45e8c: 4e75 rts <== NOT EXECUTED ... 00045e90 : */ int pthread_rwlockattr_init( pthread_rwlockattr_t *attr ) { 45e90: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45e94: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr ) 45e98: 4a88 tstl %a0 <== NOT EXECUTED 45e9a: 6604 bnes 45ea0 <== NOT EXECUTED 45e9c: 7016 moveq #22,%d0 <== NOT EXECUTED 45e9e: 600a bras 45eaa <== NOT EXECUTED return EINVAL; attr->is_initialized = TRUE; 45ea0: 7201 moveq #1,%d1 <== NOT EXECUTED attr->process_shared = PTHREAD_PROCESS_PRIVATE; 45ea2: 4280 clrl %d0 <== NOT EXECUTED 45ea4: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED ) { if ( !attr ) return EINVAL; attr->is_initialized = TRUE; 45ea8: 2081 movel %d1,%a0@ <== NOT EXECUTED attr->process_shared = PTHREAD_PROCESS_PRIVATE; return 0; } 45eaa: 4e5e unlk %fp <== NOT EXECUTED 45eac: 4e75 rts <== NOT EXECUTED ... 00045eb0 : int pthread_rwlockattr_setpshared( pthread_rwlockattr_t *attr, int pshared ) { 45eb0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45eb4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45eb8: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !attr ) 45ebc: 4a88 tstl %a0 <== NOT EXECUTED 45ebe: 6712 beqs 45ed2 <== NOT EXECUTED return EINVAL; if ( !attr->is_initialized ) 45ec0: 4a90 tstl %a0@ <== NOT EXECUTED 45ec2: 670e beqs 45ed2 <== NOT EXECUTED return EINVAL; switch ( pshared ) { 45ec4: 7201 moveq #1,%d1 <== NOT EXECUTED 45ec6: b280 cmpl %d0,%d1 <== NOT EXECUTED 45ec8: 6508 bcss 45ed2 <== NOT EXECUTED case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 45eca: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED 45ece: 4280 clrl %d0 <== NOT EXECUTED 45ed0: 6002 bras 45ed4 <== NOT EXECUTED return 0; 45ed2: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 45ed4: 4e5e unlk %fp <== NOT EXECUTED 45ed6: 4e75 rts 000545a8 : #include #include pthread_t pthread_self( void ) { 545a8: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 545ae: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Thread_Executing->Object.id; } 545b2: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED 545b6: 4e5e unlk %fp <== NOT EXECUTED 545b8: 4e75 rts <== NOT EXECUTED ... 00044e5c : int pthread_setcancelstate( int state, int *oldstate ) { 44e5c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44e60: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 44e64: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED * Don't even think about deleting a resource from an ISR. * Besides this request is supposed to be for _Thread_Executing * and the ISR context is not a thread. */ if ( _ISR_Is_in_progress() ) 44e68: 2039 0005 9916 movel 59916 <_ISR_Nest_level>,%d0 <== NOT EXECUTED int pthread_setcancelstate( int state, int *oldstate ) { 44e6e: 2f02 movel %d2,%sp@- <== NOT EXECUTED * Don't even think about deleting a resource from an ISR. * Besides this request is supposed to be for _Thread_Executing * and the ISR context is not a thread. */ if ( _ISR_Is_in_progress() ) 44e70: 4a80 tstl %d0 <== NOT EXECUTED 44e72: 6704 beqs 44e78 <== NOT EXECUTED 44e74: 7047 moveq #71,%d0 <== NOT EXECUTED 44e76: 6064 bras 44edc <== NOT EXECUTED return EPROTO; if ( !oldstate ) 44e78: 4a89 tstl %a1 <== NOT EXECUTED 44e7a: 675e beqs 44eda <== NOT EXECUTED return EINVAL; if ( state != PTHREAD_CANCEL_ENABLE && state != PTHREAD_CANCEL_DISABLE ) 44e7c: 7001 moveq #1,%d0 <== NOT EXECUTED 44e7e: b081 cmpl %d1,%d0 <== NOT EXECUTED 44e80: 6558 bcss 44eda <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 44e82: 2039 0005 9878 movel 59878 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED return EINVAL; thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 44e88: 2079 0005 9936 moveal 59936 <_Thread_Executing>,%a0 <== NOT EXECUTED 44e8e: 5280 addql #1,%d0 <== NOT EXECUTED 44e90: 23c0 0005 9878 movel %d0,59878 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 44e96: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED _Thread_Disable_dispatch(); *oldstate = thread_support->cancelability_state; 44e9a: 22a8 00cc movel %a0@(204),%a1@ <== NOT EXECUTED thread_support->cancelability_state = state; 44e9e: 2141 00cc movel %d1,%a0@(204) <== NOT EXECUTED if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && 44ea2: 6614 bnes 44eb8 <== NOT EXECUTED 44ea4: 7001 moveq #1,%d0 <== NOT EXECUTED 44ea6: b0a8 00d0 cmpl %a0@(208),%d0 <== NOT EXECUTED 44eaa: 660c bnes 44eb8 <== NOT EXECUTED 44eac: 4aa8 00d4 tstl %a0@(212) <== NOT EXECUTED 44eb0: 56c0 sne %d0 <== NOT EXECUTED 44eb2: 2400 movel %d0,%d2 <== NOT EXECUTED 44eb4: 4482 negl %d2 <== NOT EXECUTED 44eb6: 6002 bras 44eba <== NOT EXECUTED 44eb8: 4202 clrb %d2 <== NOT EXECUTED thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 44eba: 4eb9 0004 7602 jsr 47602 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( cancel ) 44ec0: 4a02 tstb %d2 <== NOT EXECUTED 44ec2: 6712 beqs 44ed6 <== NOT EXECUTED _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); 44ec4: 4878 ffff pea ffffffff <== NOT EXECUTED 44ec8: 2f39 0005 9936 movel 59936 <_Thread_Executing>,%sp@- <== NOT EXECUTED 44ece: 4eb9 0004 4a3c jsr 44a3c <_POSIX_Thread_Exit> <== NOT EXECUTED 44ed4: 508f addql #8,%sp <== NOT EXECUTED 44ed6: 4280 clrl %d0 <== NOT EXECUTED 44ed8: 6002 bras 44edc <== NOT EXECUTED 44eda: 7016 moveq #22,%d0 <== NOT EXECUTED return 0; } 44edc: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 44ee0: 4e5e unlk %fp <== NOT EXECUTED 44ee2: 4e75 rts 00044ee4 : int pthread_setcanceltype( int type, int *oldtype ) { 44ee4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44ee8: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 44eec: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED * Don't even think about deleting a resource from an ISR. * Besides this request is supposed to be for _Thread_Executing * and the ISR context is not a thread. */ if ( _ISR_Is_in_progress() ) 44ef0: 2039 0005 9916 movel 59916 <_ISR_Nest_level>,%d0 <== NOT EXECUTED int pthread_setcanceltype( int type, int *oldtype ) { 44ef6: 2f02 movel %d2,%sp@- <== NOT EXECUTED * Don't even think about deleting a resource from an ISR. * Besides this request is supposed to be for _Thread_Executing * and the ISR context is not a thread. */ if ( _ISR_Is_in_progress() ) 44ef8: 4a80 tstl %d0 <== NOT EXECUTED 44efa: 6704 beqs 44f00 <== NOT EXECUTED 44efc: 7047 moveq #71,%d0 <== NOT EXECUTED 44efe: 6066 bras 44f66 <== NOT EXECUTED return EPROTO; if ( !oldtype ) 44f00: 4a89 tstl %a1 <== NOT EXECUTED 44f02: 6760 beqs 44f64 <== NOT EXECUTED return EINVAL; if ( type != PTHREAD_CANCEL_DEFERRED && type != PTHREAD_CANCEL_ASYNCHRONOUS ) 44f04: 7001 moveq #1,%d0 <== NOT EXECUTED 44f06: b081 cmpl %d1,%d0 <== NOT EXECUTED 44f08: 655a bcss 44f64 <== NOT EXECUTED 44f0a: 2039 0005 9878 movel 59878 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED return EINVAL; thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 44f10: 2079 0005 9936 moveal 59936 <_Thread_Executing>,%a0 <== NOT EXECUTED 44f16: 5280 addql #1,%d0 <== NOT EXECUTED 44f18: 23c0 0005 9878 movel %d0,59878 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 44f1e: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED _Thread_Disable_dispatch(); *oldtype = thread_support->cancelability_type; 44f22: 22a8 00d0 movel %a0@(208),%a1@ <== NOT EXECUTED thread_support->cancelability_type = type; 44f26: 2141 00d0 movel %d1,%a0@(208) <== NOT EXECUTED if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && 44f2a: 4aa8 00cc tstl %a0@(204) <== NOT EXECUTED 44f2e: 6612 bnes 44f42 <== NOT EXECUTED 44f30: 7001 moveq #1,%d0 <== NOT EXECUTED 44f32: b081 cmpl %d1,%d0 <== NOT EXECUTED 44f34: 660c bnes 44f42 <== NOT EXECUTED 44f36: 4aa8 00d4 tstl %a0@(212) <== NOT EXECUTED 44f3a: 56c0 sne %d0 <== NOT EXECUTED 44f3c: 2400 movel %d0,%d2 <== NOT EXECUTED 44f3e: 4482 negl %d2 <== NOT EXECUTED 44f40: 6002 bras 44f44 <== NOT EXECUTED 44f42: 4202 clrb %d2 <== NOT EXECUTED thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 44f44: 4eb9 0004 7602 jsr 47602 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( cancel ) 44f4a: 4a02 tstb %d2 <== NOT EXECUTED 44f4c: 6712 beqs 44f60 <== NOT EXECUTED _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); 44f4e: 4878 ffff pea ffffffff <== NOT EXECUTED 44f52: 2f39 0005 9936 movel 59936 <_Thread_Executing>,%sp@- <== NOT EXECUTED 44f58: 4eb9 0004 4a3c jsr 44a3c <_POSIX_Thread_Exit> <== NOT EXECUTED 44f5e: 508f addql #8,%sp <== NOT EXECUTED 44f60: 4280 clrl %d0 <== NOT EXECUTED 44f62: 6002 bras 44f66 <== NOT EXECUTED 44f64: 7016 moveq #22,%d0 <== NOT EXECUTED return 0; } 44f66: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 44f6a: 4e5e unlk %fp <== NOT EXECUTED 44f6c: 4e75 rts <== NOT EXECUTED ... 0004722c : int pthread_setschedparam( pthread_t thread, int policy, struct sched_param *param ) { 4722c: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 47230: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED 47234: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 47238: 286e 0010 moveal %fp@(16),%a4 <== NOT EXECUTED /* * Check all the parameters */ if ( !param ) 4723c: 4a8c tstl %a4 <== NOT EXECUTED 4723e: 6700 013e beqw 4737e <== NOT EXECUTED return EINVAL; if ( !_POSIX_Priority_Is_valid( param->sched_priority ) ) 47242: 2014 movel %a4@,%d0 <== NOT EXECUTED 47244: 5380 subql #1,%d0 <== NOT EXECUTED 47246: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 4724c: 6200 0130 bhiw 4737e <== NOT EXECUTED return EINVAL; budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; budget_callout = NULL; switch ( policy ) { 47250: 7001 moveq #1,%d0 <== NOT EXECUTED 47252: b084 cmpl %d4,%d0 <== NOT EXECUTED 47254: 671a beqs 47270 <== NOT EXECUTED 47256: 6d08 blts 47260 <== NOT EXECUTED 47258: 4a84 tstl %d4 <== NOT EXECUTED 4725a: 6718 beqs 47274 <== NOT EXECUTED 4725c: 6000 0120 braw 4737e <== NOT EXECUTED 47260: 7202 moveq #2,%d1 <== NOT EXECUTED 47262: b284 cmpl %d4,%d1 <== NOT EXECUTED 47264: 6714 beqs 4727a <== NOT EXECUTED 47266: 7003 moveq #3,%d0 <== NOT EXECUTED 47268: b084 cmpl %d4,%d0 <== NOT EXECUTED 4726a: 6600 0112 bnew 4737e <== NOT EXECUTED 4726e: 600e bras 4727e <== NOT EXECUTED 47270: 4283 clrl %d3 <== NOT EXECUTED 47272: 6002 bras 47276 <== NOT EXECUTED 47274: 7601 moveq #1,%d3 <== NOT EXECUTED 47276: 4282 clrl %d2 <== NOT EXECUTED 47278: 6038 bras 472b2 <== NOT EXECUTED 4727a: 7602 moveq #2,%d3 <== NOT EXECUTED 4727c: 60f8 bras 47276 <== NOT EXECUTED case SCHED_SPORADIC: budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT; budget_callout = _POSIX_Threads_Sporadic_budget_callout; if ( _Timespec_To_ticks( ¶m->ss_replenish_period ) < 4727e: 45f9 0004 a734 lea 4a734 <_Timespec_To_ticks>,%a2 <== NOT EXECUTED 47284: 486c 0008 pea %a4@(8) <== NOT EXECUTED 47288: 4e92 jsr %a2@ <== NOT EXECUTED 4728a: 2400 movel %d0,%d2 <== NOT EXECUTED 4728c: 486c 0010 pea %a4@(16) <== NOT EXECUTED 47290: 4e92 jsr %a2@ <== NOT EXECUTED 47292: 508f addql #8,%sp <== NOT EXECUTED 47294: b082 cmpl %d2,%d0 <== NOT EXECUTED 47296: 6200 00e6 bhiw 4737e <== NOT EXECUTED _Timespec_To_ticks( ¶m->ss_initial_budget ) ) return EINVAL; if ( !_POSIX_Priority_Is_valid( param->ss_low_priority ) ) 4729a: 202c 0004 movel %a4@(4),%d0 <== NOT EXECUTED 4729e: 5380 subql #1,%d0 <== NOT EXECUTED 472a0: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 472a6: 6200 00d6 bhiw 4737e <== NOT EXECUTED 472aa: 7603 moveq #3,%d3 <== NOT EXECUTED 472ac: 243c 0004 7140 movel #291136,%d2 <== NOT EXECUTED 472b2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 472b6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 472ba: 4879 0005 d20a pea 5d20a <_POSIX_Threads_Information> <== NOT EXECUTED 472c0: 4eb9 0004 9224 jsr 49224 <_Objects_Get> <== NOT EXECUTED /* * Actually change the scheduling policy and parameters */ the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 472c6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 472cc: 2640 moveal %d0,%a3 <== NOT EXECUTED 472ce: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 472d2: 6706 beqs 472da <== NOT EXECUTED 472d4: 7003 moveq #3,%d0 <== NOT EXECUTED 472d6: 6000 00a8 braw 47380 <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 472da: 246b 0110 moveal %a3@(272),%a2 <== NOT EXECUTED if ( api->schedpolicy == SCHED_SPORADIC ) 472de: 7203 moveq #3,%d1 <== NOT EXECUTED 472e0: b2aa 007c cmpl %a2@(124),%d1 <== NOT EXECUTED 472e4: 660c bnes 472f2 <== NOT EXECUTED (void) _Watchdog_Remove( &api->Sporadic_timer ); 472e6: 486a 009c pea %a2@(156) <== NOT EXECUTED 472ea: 4eb9 0004 ab9c jsr 4ab9c <_Watchdog_Remove> <== NOT EXECUTED 472f0: 588f addql #4,%sp <== NOT EXECUTED api->schedpolicy = policy; 472f2: 2544 007c movel %d4,%a2@(124) <== NOT EXECUTED api->schedparam = *param; 472f6: 4878 0018 pea 18 <== NOT EXECUTED 472fa: 2f0c movel %a4,%sp@- <== NOT EXECUTED 472fc: 486a 0080 pea %a2@(128) <== NOT EXECUTED 47300: 4eb9 0004 ea7c jsr 4ea7c <== NOT EXECUTED the_thread->budget_algorithm = budget_algorithm; the_thread->budget_callout = budget_callout; switch ( api->schedpolicy ) { 47306: 202a 007c movel %a2@(124),%d0 <== NOT EXECUTED if ( api->schedpolicy == SCHED_SPORADIC ) (void) _Watchdog_Remove( &api->Sporadic_timer ); api->schedpolicy = policy; api->schedparam = *param; the_thread->budget_algorithm = budget_algorithm; 4730a: 2743 007c movel %d3,%a3@(124) <== NOT EXECUTED the_thread->budget_callout = budget_callout; switch ( api->schedpolicy ) { 4730e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED (void) _Watchdog_Remove( &api->Sporadic_timer ); api->schedpolicy = policy; api->schedparam = *param; the_thread->budget_algorithm = budget_algorithm; the_thread->budget_callout = budget_callout; 47314: 2742 0080 movel %d2,%a3@(128) <== NOT EXECUTED switch ( api->schedpolicy ) { 47318: 4a80 tstl %d0 <== NOT EXECUTED 4731a: 6d58 blts 47374 <== NOT EXECUTED 4731c: 7202 moveq #2,%d1 <== NOT EXECUTED 4731e: b280 cmpl %d0,%d1 <== NOT EXECUTED 47320: 6c0a bges 4732c <== NOT EXECUTED 47322: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 47326: b280 cmpl %d0,%d1 <== NOT EXECUTED 47328: 664a bnes 47374 <== NOT EXECUTED 4732a: 6028 bras 47354 <== NOT EXECUTED case SCHED_OTHER: case SCHED_FIFO: case SCHED_RR: the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice; 4732c: 41f9 0005 cfc8 lea 5cfc8 <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED 47332: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 47338: 90aa 0080 subl %a2@(128),%d0 <== NOT EXECUTED 4733c: 2750 0078 movel %a0@,%a3@(120) <== NOT EXECUTED the_thread->real_priority = 47340: 2740 0018 movel %d0,%a3@(24) <== NOT EXECUTED _POSIX_Priority_To_core( api->schedparam.sched_priority ); _Thread_Change_priority( 47344: 4878 0001 pea 1 <== NOT EXECUTED 47348: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4734a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4734c: 4eb9 0004 9490 jsr 49490 <_Thread_Change_priority> <== NOT EXECUTED 47352: 601a bras 4736e <== NOT EXECUTED TRUE ); break; case SCHED_SPORADIC: api->ss_high_priority = api->schedparam.sched_priority; 47354: 256a 0080 0098 movel %a2@(128),%a2@(152) <== NOT EXECUTED _Watchdog_Remove( &api->Sporadic_timer ); 4735a: 486a 009c pea %a2@(156) <== NOT EXECUTED 4735e: 4eb9 0004 ab9c jsr 4ab9c <_Watchdog_Remove> <== NOT EXECUTED _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread ); 47364: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47366: 42a7 clrl %sp@- <== NOT EXECUTED 47368: 4eb9 0004 7184 jsr 47184 <_POSIX_Threads_Sporadic_budget_TSR> <== NOT EXECUTED 4736e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED break; } _Thread_Enable_dispatch(); 47374: 4eb9 0004 9996 jsr 49996 <_Thread_Enable_dispatch> <== NOT EXECUTED 4737a: 4280 clrl %d0 <== NOT EXECUTED 4737c: 6002 bras 47380 <== NOT EXECUTED return 0; 4737e: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 47380: 4cee 1c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a4 <== NOT EXECUTED 47386: 4e5e unlk %fp <== NOT EXECUTED 47388: 4e75 rts <== NOT EXECUTED ... 00044e60 : int pthread_setspecific( pthread_key_t key, const void *value ) { 44e60: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44e64: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44e66: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44e6a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44e6e: 4879 0005 a772 pea 5a772 <_POSIX_Keys_Information> <== NOT EXECUTED 44e74: 4eb9 0004 73f8 jsr 473f8 <_Objects_Get> <== NOT EXECUTED uint32_t api; uint32_t index; Objects_Locations location; the_key = _POSIX_Keys_Get( key, &location ); switch ( location ) { 44e7a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44e80: 2240 moveal %d0,%a1 <== NOT EXECUTED 44e82: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44e86: 6704 beqs 44e8c <== NOT EXECUTED 44e88: 7016 moveq #22,%d0 <== NOT EXECUTED 44e8a: 6030 bras 44ebc <== NOT EXECUTED case OBJECTS_LOCAL: api = _Objects_Get_API( _Thread_Executing->Object.id ); 44e8c: 2079 0005 a496 moveal 5a496 <_Thread_Executing>,%a0 <== NOT EXECUTED 44e92: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED index = _Objects_Get_index( _Thread_Executing->Object.id ); the_key->Values[ api ][ index ] = (void *) value; 44e96: 7418 moveq #24,%d2 <== NOT EXECUTED 44e98: 2001 movel %d1,%d0 <== NOT EXECUTED 44e9a: e4a8 lsrl %d2,%d0 <== NOT EXECUTED 44e9c: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 44ea0: c082 andl %d2,%d0 <== NOT EXECUTED 44ea2: 2071 0c16 moveal %a1@(00000016,%d0:l:4),%a0 <== NOT EXECUTED 44ea6: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 44eac: 43ee 000c lea %fp@(12),%a1 <== NOT EXECUTED 44eb0: 2191 1c00 movel %a1@,%a0@(00000000,%d1:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); 44eb4: 4eb9 0004 7b6a jsr 47b6a <_Thread_Enable_dispatch> <== NOT EXECUTED 44eba: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 44ebc: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44ec0: 4e5e unlk %fp <== NOT EXECUTED 44ec2: 4e75 rts 0004ad78 : int pthread_sigmask( int how, const sigset_t *set, sigset_t *oset ) { 4ad78: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ad7c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4ad7e: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4ad82: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ad84: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4ad88: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED POSIX_API_Control *api; if ( !set && !oset ) 4ad8c: 4a8a tstl %a2 <== NOT EXECUTED 4ad8e: 6604 bnes 4ad94 <== NOT EXECUTED 4ad90: 4a89 tstl %a1 <== NOT EXECUTED 4ad92: 6742 beqs 4add6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 4ad94: 2679 0005 a446 moveal 5a446 <_Thread_Executing>,%a3 <== NOT EXECUTED 4ad9a: 206b 0110 moveal %a3@(272),%a0 <== NOT EXECUTED if ( oset ) 4ad9e: 4a89 tstl %a1 <== NOT EXECUTED 4ada0: 6704 beqs 4ada6 <== NOT EXECUTED *oset = api->signals_blocked; 4ada2: 22a8 00c4 movel %a0@(196),%a1@ <== NOT EXECUTED if ( !set ) 4ada6: 4a8a tstl %a2 <== NOT EXECUTED 4ada8: 675c beqs 4ae06 <== NOT EXECUTED return 0; switch ( how ) { 4adaa: 7201 moveq #1,%d1 <== NOT EXECUTED 4adac: b280 cmpl %d0,%d1 <== NOT EXECUTED 4adae: 670e beqs 4adbe <== NOT EXECUTED 4adb0: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 4adb4: b280 cmpl %d0,%d1 <== NOT EXECUTED 4adb6: 670e beqs 4adc6 <== NOT EXECUTED 4adb8: 4a80 tstl %d0 <== NOT EXECUTED 4adba: 6714 beqs 4add0 <== NOT EXECUTED 4adbc: 6018 bras 4add6 <== NOT EXECUTED case SIG_BLOCK: api->signals_blocked |= *set; 4adbe: 2012 movel %a2@,%d0 <== NOT EXECUTED 4adc0: 81a8 00c4 orl %d0,%a0@(196) <== NOT EXECUTED 4adc4: 6020 bras 4ade6 <== NOT EXECUTED break; case SIG_UNBLOCK: api->signals_blocked &= ~*set; 4adc6: 2012 movel %a2@,%d0 <== NOT EXECUTED 4adc8: 4680 notl %d0 <== NOT EXECUTED 4adca: c1a8 00c4 andl %d0,%a0@(196) <== NOT EXECUTED 4adce: 6016 bras 4ade6 <== NOT EXECUTED break; case SIG_SETMASK: api->signals_blocked = *set; 4add0: 2152 00c4 movel %a2@,%a0@(196) <== NOT EXECUTED 4add4: 6010 bras 4ade6 <== NOT EXECUTED break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 4add6: 4eb9 0004 c648 jsr 4c648 <__errno> <== NOT EXECUTED 4addc: 2040 moveal %d0,%a0 <== NOT EXECUTED 4adde: 7016 moveq #22,%d0 <== NOT EXECUTED 4ade0: 2080 movel %d0,%a0@ <== NOT EXECUTED 4ade2: 70ff moveq #-1,%d0 <== NOT EXECUTED 4ade4: 6022 bras 4ae08 <== NOT EXECUTED /* XXX are there critical section problems here? */ /* XXX evaluate the new set */ if ( ~api->signals_blocked & 4ade6: 2228 00c4 movel %a0@(196),%d1 <== NOT EXECUTED 4adea: 2039 0005 aa5e movel 5aa5e <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4adf0: 4681 notl %d1 <== NOT EXECUTED 4adf2: 80a8 00c8 orl %a0@(200),%d0 <== NOT EXECUTED 4adf6: c081 andl %d1,%d0 <== NOT EXECUTED 4adf8: 670c beqs 4ae06 <== NOT EXECUTED (api->signals_pending | _POSIX_signals_Pending) ) { _Thread_Executing->do_post_task_switch_extension = true; 4adfa: 7201 moveq #1,%d1 <== NOT EXECUTED 4adfc: 1741 0075 moveb %d1,%a3@(117) <== NOT EXECUTED _Thread_Dispatch(); 4ae00: 4eb9 0004 7afc jsr 47afc <_Thread_Dispatch> <== NOT EXECUTED 4ae06: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 4ae08: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4ae0c: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4ae10: 4e5e unlk %fp <== NOT EXECUTED 4ae12: 4e75 rts 00044c24 : */ int pthread_spin_destroy( pthread_spinlock_t *spinlock ) { 44c24: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44c28: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44c2a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 44c2e: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_Spinlock_Control *the_spinlock = NULL; Objects_Locations location; if ( !spinlock ) 44c30: 4a88 tstl %a0 <== NOT EXECUTED 44c32: 675a beqs 44c8e <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Get ( pthread_spinlock_t *spinlock, Objects_Locations *location ) { return (POSIX_Spinlock_Control *) _Objects_Get( 44c34: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44c38: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 44c3a: 4879 0005 8f86 pea 58f86 <_POSIX_Spinlock_Information> <== NOT EXECUTED 44c40: 4eb9 0004 6e5c jsr 46e5c <_Objects_Get> <== NOT EXECUTED return EINVAL; the_spinlock = _POSIX_Spinlock_Get( spinlock, &location ); switch ( location ) { 44c46: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44c4c: 2440 moveal %d0,%a2 <== NOT EXECUTED 44c4e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44c52: 663a bnes 44c8e <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _CORE_spinlock_Is_busy( CORE_spinlock_Control *the_spinlock ) { return (the_spinlock->users != 0); 44c54: 202a 0018 movel %a2@(24),%d0 <== NOT EXECUTED 44c58: 47f9 0004 75ce lea 475ce <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED case OBJECTS_LOCAL: if ( _CORE_spinlock_Is_busy( &the_spinlock->Spinlock ) ) { 44c5e: 6706 beqs 44c66 <== NOT EXECUTED _Thread_Enable_dispatch(); 44c60: 4e93 jsr %a3@ <== NOT EXECUTED 44c62: 7010 moveq #16,%d0 <== NOT EXECUTED 44c64: 602a bras 44c90 <== NOT EXECUTED return EBUSY; } _Objects_Close( &_POSIX_Spinlock_Information, &the_spinlock->Object ); 44c66: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44c68: 4879 0005 8f86 pea 58f86 <_POSIX_Spinlock_Information> <== NOT EXECUTED 44c6e: 4eb9 0004 6a84 jsr 46a84 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _POSIX_Spinlock_Free ( POSIX_Spinlock_Control *the_spinlock ) { _Objects_Free( &_POSIX_Spinlock_Information, &the_spinlock->Object ); 44c74: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44c76: 4879 0005 8f86 pea 58f86 <_POSIX_Spinlock_Information> <== NOT EXECUTED 44c7c: 4eb9 0004 6cfc jsr 46cfc <_Objects_Free> <== NOT EXECUTED _POSIX_Spinlock_Free( the_spinlock ); _Thread_Enable_dispatch(); 44c82: 4e93 jsr %a3@ <== NOT EXECUTED 44c84: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44c8a: 4280 clrl %d0 <== NOT EXECUTED 44c8c: 6002 bras 44c90 <== NOT EXECUTED return 0; 44c8e: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 44c90: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 44c94: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 44c98: 4e5e unlk %fp <== NOT EXECUTED 44c9a: 4e75 rts 00044c9c : int pthread_spin_init( pthread_spinlock_t *spinlock, int pshared ) { 44c9c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 44ca0: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED 44ca4: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED POSIX_Spinlock_Control *the_spinlock; CORE_spinlock_Attributes attributes; if ( !spinlock ) 44ca8: 4a8c tstl %a4 <== NOT EXECUTED 44caa: 6762 beqs 44d0e <== NOT EXECUTED return EINVAL; switch ( pshared ) { 44cac: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 44cb0: 665c bnes 44d0e <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 44cb2: 2039 0005 8d58 movel 58d58 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44cb8: 5280 addql #1,%d0 <== NOT EXECUTED 44cba: 23c0 0005 8d58 movel %d0,58d58 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * This function allocates a spinlock control block from * the inactive chain of free spinlock control blocks. */ RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Allocate( void ) { return (POSIX_Spinlock_Control *) 44cc0: 4879 0005 8f86 pea 58f86 <_POSIX_Spinlock_Information> <== NOT EXECUTED 44cc6: 4eb9 0004 69fc jsr 469fc <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_spinlock = _POSIX_Spinlock_Allocate(); if ( !the_spinlock ) { 44ccc: 588f addql #4,%sp <== NOT EXECUTED 44cce: 2440 moveal %d0,%a2 <== NOT EXECUTED 44cd0: 47f9 0004 75ce lea 475ce <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 44cd6: 4a80 tstl %d0 <== NOT EXECUTED 44cd8: 6606 bnes 44ce0 <== NOT EXECUTED _Thread_Enable_dispatch(); 44cda: 4e93 jsr %a3@ <== NOT EXECUTED 44cdc: 700b moveq #11,%d0 <== NOT EXECUTED 44cde: 6030 bras 44d10 <== NOT EXECUTED return EAGAIN; } _CORE_spinlock_Initialize( &the_spinlock->Spinlock, &attributes ); 44ce0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44ce4: 486a 0010 pea %a2@(16) <== NOT EXECUTED 44ce8: 4eb9 0004 64f8 jsr 464f8 <_CORE_spinlock_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 44cee: 2079 0005 8fa0 moveal 58fa0 <_POSIX_Spinlock_Information+0x1a>,%a0 <== NOT EXECUTED 44cf4: 4280 clrl %d0 <== NOT EXECUTED 44cf6: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 44cfa: 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; 44cfe: 42aa 000c clrl %a2@(12) <== NOT EXECUTED _Objects_Open_u32( &_POSIX_Spinlock_Information, &the_spinlock->Object, 0 ); *spinlock = the_spinlock->Object.id; 44d02: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED _Thread_Enable_dispatch(); 44d06: 4e93 jsr %a3@ <== NOT EXECUTED 44d08: 508f addql #8,%sp <== NOT EXECUTED 44d0a: 4280 clrl %d0 <== NOT EXECUTED 44d0c: 6002 bras 44d10 <== NOT EXECUTED return 0; 44d0e: 7016 moveq #22,%d0 <== NOT EXECUTED } 44d10: 4cee 1c00 fff0 moveml %fp@(-16),%a2-%a4 <== NOT EXECUTED 44d16: 4e5e unlk %fp <== NOT EXECUTED 44d18: 4e75 rts <== NOT EXECUTED ... 00044d1c : */ int pthread_spin_lock( pthread_spinlock_t *spinlock ) { 44d1c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44d20: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 44d24: 2f02 movel %d2,%sp@- <== NOT EXECUTED POSIX_Spinlock_Control *the_spinlock = NULL; Objects_Locations location; CORE_spinlock_Status status; if ( !spinlock ) 44d26: 4a88 tstl %a0 <== NOT EXECUTED 44d28: 6748 beqs 44d72 <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Get ( pthread_spinlock_t *spinlock, Objects_Locations *location ) { return (POSIX_Spinlock_Control *) _Objects_Get( 44d2a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44d2e: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 44d30: 4879 0005 8f86 pea 58f86 <_POSIX_Spinlock_Information> <== NOT EXECUTED 44d36: 4eb9 0004 6e5c jsr 46e5c <_Objects_Get> <== NOT EXECUTED return EINVAL; the_spinlock = _POSIX_Spinlock_Get( spinlock, &location ); switch ( location ) { 44d3c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44d42: 2040 moveal %d0,%a0 <== NOT EXECUTED 44d44: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44d48: 6628 bnes 44d72 <== NOT EXECUTED case OBJECTS_LOCAL: status = _CORE_spinlock_Wait( &the_spinlock->Spinlock, TRUE, 0 ); 44d4a: 42a7 clrl %sp@- <== NOT EXECUTED 44d4c: 4878 0001 pea 1 <== NOT EXECUTED 44d50: 4868 0010 pea %a0@(16) <== NOT EXECUTED 44d54: 4eb9 0004 656c jsr 4656c <_CORE_spinlock_Wait> <== NOT EXECUTED 44d5a: 2400 movel %d0,%d2 <== NOT EXECUTED _Thread_Enable_dispatch(); 44d5c: 4eb9 0004 75ce jsr 475ce <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 44d62: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44d64: 4eb9 0004 4d7c jsr 44d7c <_POSIX_Spinlock_Translate_core_spinlock_return_code> <== NOT EXECUTED 44d6a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44d70: 6002 bras 44d74 <== NOT EXECUTED 44d72: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 44d74: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44d78: 4e5e unlk %fp <== NOT EXECUTED 44d7a: 4e75 rts 00044d94 : */ int pthread_spin_trylock( pthread_spinlock_t *spinlock ) { 44d94: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44d98: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 44d9c: 2f02 movel %d2,%sp@- <== NOT EXECUTED POSIX_Spinlock_Control *the_spinlock = NULL; Objects_Locations location; CORE_spinlock_Status status; if ( !spinlock ) 44d9e: 4a88 tstl %a0 <== NOT EXECUTED 44da0: 6746 beqs 44de8 <== NOT EXECUTED 44da2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44da6: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 44da8: 4879 0005 8f86 pea 58f86 <_POSIX_Spinlock_Information> <== NOT EXECUTED 44dae: 4eb9 0004 6e5c jsr 46e5c <_Objects_Get> <== NOT EXECUTED return EINVAL; the_spinlock = _POSIX_Spinlock_Get( spinlock, &location ); switch ( location ) { 44db4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44dba: 2040 moveal %d0,%a0 <== NOT EXECUTED 44dbc: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44dc0: 6626 bnes 44de8 <== NOT EXECUTED case OBJECTS_LOCAL: status = _CORE_spinlock_Wait( &the_spinlock->Spinlock, FALSE, 0 ); 44dc2: 42a7 clrl %sp@- <== NOT EXECUTED 44dc4: 42a7 clrl %sp@- <== NOT EXECUTED 44dc6: 4868 0010 pea %a0@(16) <== NOT EXECUTED 44dca: 4eb9 0004 656c jsr 4656c <_CORE_spinlock_Wait> <== NOT EXECUTED 44dd0: 2400 movel %d0,%d2 <== NOT EXECUTED _Thread_Enable_dispatch(); 44dd2: 4eb9 0004 75ce jsr 475ce <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 44dd8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44dda: 4eb9 0004 4d7c jsr 44d7c <_POSIX_Spinlock_Translate_core_spinlock_return_code> <== NOT EXECUTED 44de0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44de6: 6002 bras 44dea <== NOT EXECUTED 44de8: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 44dea: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44dee: 4e5e unlk %fp <== NOT EXECUTED 44df0: 4e75 rts <== NOT EXECUTED ... 00044df4 : */ int pthread_spin_unlock( pthread_spinlock_t *spinlock ) { 44df4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44df8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 44dfc: 2f02 movel %d2,%sp@- <== NOT EXECUTED POSIX_Spinlock_Control *the_spinlock = NULL; Objects_Locations location; CORE_spinlock_Status status; if ( !spinlock ) 44dfe: 4a88 tstl %a0 <== NOT EXECUTED 44e00: 673e beqs 44e40 <== NOT EXECUTED 44e02: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44e06: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 44e08: 4879 0005 8f86 pea 58f86 <_POSIX_Spinlock_Information> <== NOT EXECUTED 44e0e: 4eb9 0004 6e5c jsr 46e5c <_Objects_Get> <== NOT EXECUTED return EINVAL; the_spinlock = _POSIX_Spinlock_Get( spinlock, &location ); switch ( location ) { 44e14: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44e1a: 2040 moveal %d0,%a0 <== NOT EXECUTED 44e1c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44e20: 661e bnes 44e40 <== NOT EXECUTED case OBJECTS_LOCAL: status = _CORE_spinlock_Release( &the_spinlock->Spinlock ); 44e22: 4868 0010 pea %a0@(16) <== NOT EXECUTED 44e26: 4eb9 0004 6518 jsr 46518 <_CORE_spinlock_Release> <== NOT EXECUTED 44e2c: 2400 movel %d0,%d2 <== NOT EXECUTED _Thread_Enable_dispatch(); 44e2e: 4eb9 0004 75ce jsr 475ce <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 44e34: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44e36: 4eb9 0004 4d7c jsr 44d7c <_POSIX_Spinlock_Translate_core_spinlock_return_code> <== NOT EXECUTED 44e3c: 508f addql #8,%sp <== NOT EXECUTED 44e3e: 6002 bras 44e42 <== NOT EXECUTED 44e40: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 44e42: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44e46: 4e5e unlk %fp <== NOT EXECUTED 44e48: 4e75 rts <== NOT EXECUTED ... 00044f94 : * Don't even think about deleting a resource from an ISR. * Besides this request is supposed to be for _Thread_Executing * and the ISR context is not a thread. */ if ( _ISR_Is_in_progress() ) 44f94: 2039 0005 9916 movel 59916 <_ISR_Nest_level>,%d0 <== NOT EXECUTED * * 18.2.2 Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ void pthread_testcancel( void ) { 44f9a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44f9e: 2f02 movel %d2,%sp@- <== NOT EXECUTED * Don't even think about deleting a resource from an ISR. * Besides this request is supposed to be for _Thread_Executing * and the ISR context is not a thread. */ if ( _ISR_Is_in_progress() ) 44fa0: 4a80 tstl %d0 <== NOT EXECUTED 44fa2: 6648 bnes 44fec <== NOT EXECUTED return; thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 44fa4: 2079 0005 9936 moveal 59936 <_Thread_Executing>,%a0 <== NOT EXECUTED 44faa: 2039 0005 9878 movel 59878 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44fb0: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED 44fb4: 5280 addql #1,%d0 <== NOT EXECUTED 44fb6: 23c0 0005 9878 movel %d0,59878 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && 44fbc: 4aa8 00cc tstl %a0@(204) <== NOT EXECUTED 44fc0: 6704 beqs 44fc6 <== NOT EXECUTED 44fc2: 4202 clrb %d2 <== NOT EXECUTED 44fc4: 600a bras 44fd0 <== NOT EXECUTED 44fc6: 4aa8 00d4 tstl %a0@(212) <== NOT EXECUTED 44fca: 56c0 sne %d0 <== NOT EXECUTED 44fcc: 2400 movel %d0,%d2 <== NOT EXECUTED 44fce: 4482 negl %d2 <== NOT EXECUTED thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 44fd0: 4eb9 0004 7602 jsr 47602 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( cancel ) 44fd6: 4a02 tstb %d2 <== NOT EXECUTED 44fd8: 6712 beqs 44fec <== NOT EXECUTED _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); 44fda: 4878 ffff pea ffffffff <== NOT EXECUTED 44fde: 2f39 0005 9936 movel 59936 <_Thread_Executing>,%sp@- <== NOT EXECUTED 44fe4: 4eb9 0004 4a3c jsr 44a3c <_POSIX_Thread_Exit> <== NOT EXECUTED 44fea: 508f addql #8,%sp <== NOT EXECUTED } 44fec: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 44ff0: 4e5e unlk %fp <== NOT EXECUTED 44ff2: 4e75 rts 00053ebc : ssize_t read( int fd, void *buffer, size_t count ) { 53ebc: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 53ec0: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 53ec4: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 53ec8: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 53ecc: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); 53ed0: b4b9 0005 6248 cmpl 56248 ,%d2 <== NOT EXECUTED 53ed6: 6420 bccs 53ef8 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 53ed8: 2202 movel %d2,%d1 <== NOT EXECUTED 53eda: 2002 movel %d2,%d0 <== NOT EXECUTED 53edc: e589 lsll #2,%d1 <== NOT EXECUTED 53ede: e988 lsll #4,%d0 <== NOT EXECUTED 53ee0: 9081 subl %d1,%d0 <== NOT EXECUTED 53ee2: 2479 0005 7d14 moveal 57d14 ,%a2 <== NOT EXECUTED 53ee8: d082 addl %d2,%d0 <== NOT EXECUTED 53eea: e588 lsll #2,%d0 <== NOT EXECUTED 53eec: d5c0 addal %d0,%a2 <== NOT EXECUTED rtems_libio_check_is_open( iop ); 53eee: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 53ef2: 0800 0008 btst #8,%d0 <== NOT EXECUTED 53ef6: 660e bnes 53f06 <== NOT EXECUTED 53ef8: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 53efe: 7209 moveq #9,%d1 <== NOT EXECUTED 53f00: 2040 moveal %d0,%a0 <== NOT EXECUTED 53f02: 2081 movel %d1,%a0@ <== NOT EXECUTED 53f04: 603a bras 53f40 <== NOT EXECUTED rtems_libio_check_buffer( buffer ); 53f06: 4a83 tstl %d3 <== NOT EXECUTED 53f08: 670e beqs 53f18 <== NOT EXECUTED rtems_libio_check_count( count ); 53f0a: 4a89 tstl %a1 <== NOT EXECUTED 53f0c: 6604 bnes 53f12 <== NOT EXECUTED 53f0e: 4280 clrl %d0 <== NOT EXECUTED 53f10: 6048 bras 53f5a <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 53f12: 0800 0001 btst #1,%d0 <== NOT EXECUTED 53f16: 660e bnes 53f26 <== NOT EXECUTED 53f18: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 53f1e: 2040 moveal %d0,%a0 <== NOT EXECUTED 53f20: 7016 moveq #22,%d0 <== NOT EXECUTED 53f22: 2080 movel %d0,%a0@ <== NOT EXECUTED 53f24: 601a bras 53f40 <== NOT EXECUTED /* * Now process the read(). */ if ( !iop->handlers->read_h ) 53f26: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 53f2a: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED 53f2e: 4a88 tstl %a0 <== NOT EXECUTED 53f30: 6612 bnes 53f44 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 53f32: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 53f38: 2040 moveal %d0,%a0 <== NOT EXECUTED 53f3a: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 53f40: 70ff moveq #-1,%d0 <== NOT EXECUTED 53f42: 6016 bras 53f5a <== NOT EXECUTED rc = (*iop->handlers->read_h)( iop, buffer, count ); 53f44: 2f09 movel %a1,%sp@- <== NOT EXECUTED 53f46: 2f03 movel %d3,%sp@- <== NOT EXECUTED 53f48: 2f0a movel %a2,%sp@- <== NOT EXECUTED 53f4a: 4e90 jsr %a0@ <== NOT EXECUTED if ( rc > 0 ) 53f4c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 53f52: 4a80 tstl %d0 <== NOT EXECUTED 53f54: 6f04 bles 53f5a <== NOT EXECUTED iop->offset += rc; 53f56: d1aa 0008 addl %d0,%a2@(8) <== NOT EXECUTED return rc; } 53f5a: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 53f60: 4e5e unlk %fp <== NOT EXECUTED 53f62: 4e75 rts 0005c548 : /* * get next entry in a directory. */ struct dirent * readdir( DIR *dirp ) { 5c548: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 5c54c: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 5c550: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED register struct dirent *dp; if ( !dirp ) 5c554: 4a8a tstl %a2 <== NOT EXECUTED 5c556: 6764 beqs 5c5bc <== NOT EXECUTED return NULL; for (;;) { if (dirp->dd_loc == 0) { dirp->dd_size = getdents (dirp->dd_fd, 5c558: 47f9 0006 6860 lea 66860 ,%a3 <== NOT EXECUTED if ( !dirp ) return NULL; for (;;) { if (dirp->dd_loc == 0) { 5c55e: 4aaa 0004 tstl %a2@(4) <== NOT EXECUTED 5c562: 6618 bnes 5c57c <== NOT EXECUTED dirp->dd_size = getdents (dirp->dd_fd, 5c564: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 5c568: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 5c56c: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 5c56e: 4e93 jsr %a3@ <== NOT EXECUTED dirp->dd_buf, dirp->dd_len); if (dirp->dd_size <= 0) 5c570: 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, 5c576: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED dirp->dd_buf, dirp->dd_len); if (dirp->dd_size <= 0) 5c57a: 6f40 bles 5c5bc <== NOT EXECUTED return NULL; } if (dirp->dd_loc >= dirp->dd_size) { 5c57c: 222a 0004 movel %a2@(4),%d1 <== NOT EXECUTED 5c580: b2aa 0008 cmpl %a2@(8),%d1 <== NOT EXECUTED 5c584: 6d06 blts 5c58c <== NOT EXECUTED dirp->dd_loc = 0; 5c586: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED 5c58a: 60d2 bras 5c55e <== NOT EXECUTED continue; } dp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc); 5c58c: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED 5c590: d1c1 addal %d1,%a0 <== NOT EXECUTED if ((intptr_t)dp & 03) /* bogus pointer check */ 5c592: 2008 movel %a0,%d0 <== NOT EXECUTED 5c594: 7403 moveq #3,%d2 <== NOT EXECUTED 5c596: c082 andl %d2,%d0 <== NOT EXECUTED 5c598: 6622 bnes 5c5bc <== NOT EXECUTED return NULL; if (dp->d_reclen <= 0 || 5c59a: 3028 0008 movew %a0@(8),%d0 <== NOT EXECUTED 5c59e: 4282 clrl %d2 <== NOT EXECUTED 5c5a0: 3400 movew %d0,%d2 <== NOT EXECUTED 5c5a2: 6718 beqs 5c5bc <== NOT EXECUTED 5c5a4: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 5c5a8: 5280 addql #1,%d0 <== NOT EXECUTED 5c5aa: 9081 subl %d1,%d0 <== NOT EXECUTED 5c5ac: b082 cmpl %d2,%d0 <== NOT EXECUTED 5c5ae: 6d0c blts 5c5bc <== NOT EXECUTED dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) return NULL; dirp->dd_loc += dp->d_reclen; 5c5b0: d481 addl %d1,%d2 <== NOT EXECUTED 5c5b2: 2542 0004 movel %d2,%a2@(4) <== NOT EXECUTED if (dp->d_ino == 0) 5c5b6: 4a90 tstl %a0@ <== NOT EXECUTED 5c5b8: 67a4 beqs 5c55e <== NOT EXECUTED 5c5ba: 6002 bras 5c5be <== NOT EXECUTED 5c5bc: 91c8 subal %a0,%a0 <== NOT EXECUTED continue; return (dp); } } 5c5be: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 5c5c4: 4e5e unlk %fp <== NOT EXECUTED 5c5c6: 2008 movel %a0,%d0 <== NOT EXECUTED 5c5c8: 4e75 rts <== NOT EXECUTED ... 0005c5cc : ssize_t readlink( const char *pathname, char *buf, size_t bufsize ) { 5c5cc: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5c5d0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c5d2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c5d4: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED rtems_filesystem_location_info_t loc; int result; if (!buf) 5c5d8: 6610 bnes 5c5ea <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 5c5da: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5c5e0: 720e moveq #14,%d1 <== NOT EXECUTED 5c5e2: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c5e4: 2081 movel %d1,%a0@ <== NOT EXECUTED 5c5e6: 6000 008a braw 5c672 <== NOT EXECUTED result = rtems_filesystem_evaluate_path( pathname, 0, &loc, false ); 5c5ea: 42a7 clrl %sp@- <== NOT EXECUTED 5c5ec: 260e movel %fp,%d3 <== NOT EXECUTED 5c5ee: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 5c5f4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c5f6: 42a7 clrl %sp@- <== NOT EXECUTED 5c5f8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c5fc: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( result != 0 ) 5c602: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5c608: 4a80 tstl %d0 <== NOT EXECUTED 5c60a: 6666 bnes 5c672 <== NOT EXECUTED return -1; if ( !loc.ops->node_type_h ){ 5c60c: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED 5c610: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED 5c614: 4a88 tstl %a0 <== NOT EXECUTED 5c616: 6606 bnes 5c61e <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c618: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 5c61c: 603c bras 5c65a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_SYM_LINK ){ 5c61e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c620: 4e90 jsr %a0@ <== NOT EXECUTED 5c622: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5c626: 588f addql #4,%sp <== NOT EXECUTED 5c628: 7204 moveq #4,%d1 <== NOT EXECUTED 5c62a: b280 cmpl %d0,%d1 <== NOT EXECUTED 5c62c: 6720 beqs 5c64e <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c62e: 4a88 tstl %a0 <== NOT EXECUTED 5c630: 670e beqs 5c640 <== NOT EXECUTED 5c632: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c636: 4a88 tstl %a0 <== NOT EXECUTED 5c638: 6706 beqs 5c640 <== NOT EXECUTED 5c63a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c63c: 4e90 jsr %a0@ <== NOT EXECUTED 5c63e: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 5c640: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5c646: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c648: 7016 moveq #22,%d0 <== NOT EXECUTED 5c64a: 2080 movel %d0,%a0@ <== NOT EXECUTED 5c64c: 6024 bras 5c672 <== NOT EXECUTED } if ( !loc.ops->readlink_h ){ 5c64e: 2268 003c moveal %a0@(60),%a1 <== NOT EXECUTED 5c652: 4a89 tstl %a1 <== NOT EXECUTED 5c654: 6620 bnes 5c676 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c656: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c65a: 4a88 tstl %a0 <== NOT EXECUTED 5c65c: 6706 beqs 5c664 <== NOT EXECUTED 5c65e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c660: 4e90 jsr %a0@ <== NOT EXECUTED 5c662: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5c664: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5c66a: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c66c: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5c672: 74ff moveq #-1,%d2 <== NOT EXECUTED 5c674: 6028 bras 5c69e <== NOT EXECUTED } result = (*loc.ops->readlink_h)( &loc, buf, bufsize ); 5c676: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5c67a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c67c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c67e: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c680: 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 ); 5c684: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c686: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c68c: 4a88 tstl %a0 <== NOT EXECUTED 5c68e: 670e beqs 5c69e <== NOT EXECUTED 5c690: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c694: 4a88 tstl %a0 <== NOT EXECUTED 5c696: 6706 beqs 5c69e <== NOT EXECUTED 5c698: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c69a: 4e90 jsr %a0@ <== NOT EXECUTED 5c69c: 588f addql #4,%sp <== NOT EXECUTED return result; } 5c69e: 2002 movel %d2,%d0 <== NOT EXECUTED 5c6a0: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 5c6a4: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 5c6a8: 4e5e unlk %fp <== NOT EXECUTED 5c6aa: 4e75 rts 00053fe4 : { size_t old_size; char *new_area; size_t resize; MSBUMP(realloc_calls, 1); 53fe4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 53fe8: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 53fec: 52b9 0005 7d88 addql #1,57d88 <== NOT EXECUTED 53ff2: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 53ff6: 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())) { 53ffa: 7003 moveq #3,%d0 <== NOT EXECUTED 53ffc: b0b9 0005 800e cmpl 5800e <_System_state_Current>,%d0 <== NOT EXECUTED 54002: 6614 bnes 54018 <== NOT EXECUTED if (_Thread_Dispatch_disable_level > 0) 54004: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 5400a: 6600 00b4 bnew 540c0 <== NOT EXECUTED return (void *) 0; if (_ISR_Nest_level > 0) 5400e: 2039 0005 7f1a movel 57f1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED 54014: 6600 00aa bnew 540c0 <== NOT EXECUTED } /* * Continue with realloc(). */ if ( !ptr ) 54018: 4a82 tstl %d2 <== NOT EXECUTED 5401a: 6610 bnes 5402c <== NOT EXECUTED return malloc( size ); 5401c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5401e: 4eb9 0004 93a0 jsr 493a0 <== NOT EXECUTED 54024: 588f addql #4,%sp <== NOT EXECUTED 54026: 2400 movel %d0,%d2 <== NOT EXECUTED 54028: 6000 0098 braw 540c2 <== NOT EXECUTED if ( !size ) { 5402c: 4a84 tstl %d4 <== NOT EXECUTED 5402e: 660e bnes 5403e <== NOT EXECUTED free( ptr ); 54030: 2f02 movel %d2,%sp@- <== NOT EXECUTED 54032: 4eb9 0004 8e8c jsr 48e8c <== NOT EXECUTED 54038: 588f addql #4,%sp <== NOT EXECUTED 5403a: 6000 0084 braw 540c0 <== NOT EXECUTED return (void *) 0; } if ( !_Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, ptr, &old_size) ) { 5403e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 54042: 2f02 movel %d2,%sp@- <== NOT EXECUTED 54044: 4879 0005 7d20 pea 57d20 <== NOT EXECUTED 5404a: 4eb9 0005 45bc jsr 545bc <_Protected_heap_Get_block_size> <== NOT EXECUTED 54050: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 54056: 4a00 tstb %d0 <== NOT EXECUTED 54058: 660e bnes 54068 <== NOT EXECUTED errno = EINVAL; 5405a: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 54060: 2040 moveal %d0,%a0 <== NOT EXECUTED 54062: 7016 moveq #22,%d0 <== NOT EXECUTED 54064: 2080 movel %d0,%a0@ <== NOT EXECUTED 54066: 6058 bras 540c0 <== 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 ) ) { 54068: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5406a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5406c: 4879 0005 7d20 pea 57d20 <== NOT EXECUTED 54072: 4eb9 0005 45f8 jsr 545f8 <_Protected_heap_Resize_block> <== NOT EXECUTED 54078: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5407e: 4a00 tstb %d0 <== NOT EXECUTED 54080: 6640 bnes 540c2 <== 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 ); 54082: 2f04 movel %d4,%sp@- <== NOT EXECUTED 54084: 4eb9 0004 93a0 jsr 493a0 <== NOT EXECUTED MSBUMP(malloc_calls, -1); /* subtract off the malloc */ 5408a: 53b9 0005 7d7c subql #1,57d7c <== 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 ); 54090: 2600 movel %d0,%d3 <== NOT EXECUTED MSBUMP(malloc_calls, -1); /* subtract off the malloc */ if ( !new_area ) { 54092: 588f addql #4,%sp <== NOT EXECUTED 54094: 672a beqs 540c0 <== NOT EXECUTED return (void *) 0; } memcpy( new_area, ptr, (size < old_size) ? size : old_size ); 54096: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 5409a: 2004 movel %d4,%d0 <== NOT EXECUTED 5409c: b284 cmpl %d4,%d1 <== NOT EXECUTED 5409e: 6402 bccs 540a2 <== NOT EXECUTED 540a0: 2001 movel %d1,%d0 <== NOT EXECUTED 540a2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 540a4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 540a6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 540a8: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED free( ptr ); 540ae: 2f02 movel %d2,%sp@- <== NOT EXECUTED 540b0: 4eb9 0004 8e8c jsr 48e8c <== NOT EXECUTED 540b6: 2403 movel %d3,%d2 <== NOT EXECUTED 540b8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 540be: 6002 bras 540c2 <== NOT EXECUTED return new_area; 540c0: 4282 clrl %d2 <== NOT EXECUTED } 540c2: 2002 movel %d2,%d0 <== NOT EXECUTED 540c4: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 540ca: 4e5e unlk %fp <== NOT EXECUTED 540cc: 4e75 rts <== NOT EXECUTED ... 00044db0 : #include void rewinddir( DIR *dirp ) { 44db0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44db4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44db6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED off_t status; if ( !dirp ) 44dba: 4a8a tstl %a2 <== NOT EXECUTED 44dbc: 671c beqs 44dda <== NOT EXECUTED return; status = lseek( dirp->dd_fd, 0, SEEK_SET ); 44dbe: 42a7 clrl %sp@- <== NOT EXECUTED 44dc0: 42a7 clrl %sp@- <== NOT EXECUTED 44dc2: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 44dc4: 4eb9 0004 3e60 jsr 43e60 <== NOT EXECUTED if( status == -1 ) 44dca: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44dd0: 72ff moveq #-1,%d1 <== NOT EXECUTED 44dd2: b280 cmpl %d0,%d1 <== NOT EXECUTED 44dd4: 6704 beqs 44dda <== NOT EXECUTED return; dirp->dd_loc = 0; 44dd6: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED } 44dda: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 44dde: 4e5e unlk %fp <== NOT EXECUTED 44de0: 4e75 rts <== NOT EXECUTED ... 0005c798 : #include int rmdir( const char *pathname ) { 5c798: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5c79c: 2f03 movel %d3,%sp@- <== NOT EXECUTED /* * Get the node where we wish to go. */ result = rtems_filesystem_evaluate_path( pathname, 0, &loc, false ); 5c79e: 260e movel %fp,%d3 <== NOT EXECUTED 5c7a0: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED #include int rmdir( const char *pathname ) { 5c7a6: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Get the node where we wish to go. */ result = rtems_filesystem_evaluate_path( pathname, 0, &loc, false ); 5c7a8: 42a7 clrl %sp@- <== NOT EXECUTED 5c7aa: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c7ac: 42a7 clrl %sp@- <== NOT EXECUTED 5c7ae: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c7b2: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( result != 0 ) 5c7b8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5c7be: 4a80 tstl %d0 <== NOT EXECUTED 5c7c0: 6600 00bc bnew 5c87e <== NOT EXECUTED return -1; result = rtems_filesystem_evaluate_parent(RTEMS_LIBIO_PERMS_WRITE, &loc ); 5c7c4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c7c6: 4878 0002 pea 2 <== NOT EXECUTED 5c7ca: 4eb9 0004 51a8 jsr 451a8 <== NOT EXECUTED 5c7d0: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED if (result != 0) { 5c7d4: 508f addql #8,%sp <== NOT EXECUTED 5c7d6: 4a80 tstl %d0 <== NOT EXECUTED 5c7d8: 671a beqs 5c7f4 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c7da: 4a88 tstl %a0 <== NOT EXECUTED 5c7dc: 6700 00a0 beqw 5c87e <== NOT EXECUTED 5c7e0: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c7e4: 4a88 tstl %a0 <== NOT EXECUTED 5c7e6: 6700 0096 beqw 5c87e <== NOT EXECUTED 5c7ea: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c7ec: 4e90 jsr %a0@ <== NOT EXECUTED 5c7ee: 588f addql #4,%sp <== NOT EXECUTED 5c7f0: 6000 008c braw 5c87e <== NOT EXECUTED /* * Verify you can remove this node as a directory. */ if ( !loc.ops->node_type_h ){ 5c7f4: 2268 0010 moveal %a0@(16),%a1 <== NOT EXECUTED 5c7f8: 4a89 tstl %a1 <== NOT EXECUTED 5c7fa: 6744 beqs 5c840 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ){ 5c7fc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c7fe: 4e91 jsr %a1@ <== NOT EXECUTED 5c800: 588f addql #4,%sp <== NOT EXECUTED 5c802: 7201 moveq #1,%d1 <== NOT EXECUTED 5c804: b280 cmpl %d0,%d1 <== NOT EXECUTED 5c806: 6724 beqs 5c82c <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c808: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5c80c: 4a88 tstl %a0 <== NOT EXECUTED 5c80e: 670e beqs 5c81e <== NOT EXECUTED 5c810: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c814: 4a88 tstl %a0 <== NOT EXECUTED 5c816: 6706 beqs 5c81e <== NOT EXECUTED 5c818: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c81a: 4e90 jsr %a0@ <== NOT EXECUTED 5c81c: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 5c81e: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5c824: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c826: 7014 moveq #20,%d0 <== NOT EXECUTED 5c828: 2080 movel %d0,%a0@ <== NOT EXECUTED 5c82a: 6052 bras 5c87e <== NOT EXECUTED /* * Use the filesystems rmnod to remove the node. */ if ( !loc.handlers->rmnod_h ){ 5c82c: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5c830: 2068 0034 moveal %a0@(52),%a0 <== NOT EXECUTED 5c834: 4a88 tstl %a0 <== NOT EXECUTED 5c836: 6626 bnes 5c85e <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c838: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5c83c: 4a88 tstl %a0 <== NOT EXECUTED 5c83e: 670e beqs 5c84e <== NOT EXECUTED 5c840: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c844: 4a88 tstl %a0 <== NOT EXECUTED 5c846: 6706 beqs 5c84e <== NOT EXECUTED 5c848: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c84a: 4e90 jsr %a0@ <== NOT EXECUTED 5c84c: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5c84e: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5c854: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c856: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5c85c: 6020 bras 5c87e <== NOT EXECUTED } result = (*loc.handlers->rmnod_h)( &loc ); 5c85e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c860: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c862: 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 ); 5c866: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c868: 588f addql #4,%sp <== NOT EXECUTED 5c86a: 4a88 tstl %a0 <== NOT EXECUTED 5c86c: 6712 beqs 5c880 <== NOT EXECUTED 5c86e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c872: 4a88 tstl %a0 <== NOT EXECUTED 5c874: 670a beqs 5c880 <== NOT EXECUTED 5c876: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c878: 4e90 jsr %a0@ <== NOT EXECUTED 5c87a: 588f addql #4,%sp <== NOT EXECUTED 5c87c: 6002 bras 5c880 <== NOT EXECUTED 5c87e: 74ff moveq #-1,%d2 <== NOT EXECUTED return result; } 5c880: 2002 movel %d2,%d0 <== NOT EXECUTED 5c882: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 5c886: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 5c88a: 4e5e unlk %fp <== NOT EXECUTED 5c88c: 4e75 rts <== NOT EXECUTED ... 0004af18 : uint32_t rtems_assoc_local_by_remote( const rtems_assoc_t *ap, uint32_t remote_value ) { 4af18: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_remote(ap, remote_value); 4af1c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4af20: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4af24: 4eb9 0004 af50 jsr 4af50 <== NOT EXECUTED if (nap) 4af2a: 508f addql #8,%sp <== NOT EXECUTED uint32_t remote_value ) { const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_remote(ap, remote_value); 4af2c: 2040 moveal %d0,%a0 <== NOT EXECUTED if (nap) 4af2e: 4a80 tstl %d0 <== NOT EXECUTED 4af30: 6604 bnes 4af36 <== NOT EXECUTED 4af32: 4280 clrl %d0 <== NOT EXECUTED 4af34: 6004 bras 4af3a <== NOT EXECUTED return nap->local_value; 4af36: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED return 0; } 4af3a: 4e5e unlk %fp <== NOT EXECUTED 4af3c: 4e75 rts <== NOT EXECUTED ... 0004aed8 : uint32_t rtems_assoc_local_by_remote_bitfield( const rtems_assoc_t *ap, uint32_t remote_value ) { 4aed8: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4aedc: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 4aee0: 7401 moveq #1,%d2 <== NOT EXECUTED 4aee2: 4284 clrl %d4 <== NOT EXECUTED 4aee4: 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); 4aee6: 45f9 0004 af18 lea 4af18 ,%a2 <== NOT EXECUTED { uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { if (b & remote_value) 4aeec: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED ) { uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { 4aef0: 5283 addql #1,%d3 <== NOT EXECUTED if (b & remote_value) 4aef2: c082 andl %d2,%d0 <== NOT EXECUTED 4aef4: 670c beqs 4af02 <== NOT EXECUTED local_value |= rtems_assoc_local_by_remote(ap, b); 4aef6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4aef8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4aefc: 4e92 jsr %a2@ <== NOT EXECUTED 4aefe: 508f addql #8,%sp <== NOT EXECUTED 4af00: 8880 orl %d0,%d4 <== NOT EXECUTED ) { uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { 4af02: d482 addl %d2,%d2 <== NOT EXECUTED 4af04: 7020 moveq #32,%d0 <== NOT EXECUTED 4af06: b083 cmpl %d3,%d0 <== NOT EXECUTED 4af08: 66e2 bnes 4aeec <== NOT EXECUTED if (b & remote_value) local_value |= rtems_assoc_local_by_remote(ap, b); } return local_value; } 4af0a: 2004 movel %d4,%d0 <== NOT EXECUTED 4af0c: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 4af12: 4e5e unlk %fp <== NOT EXECUTED 4af14: 4e75 rts <== NOT EXECUTED ... 0004af40 : const char * rtems_assoc_name_bad( uint32_t bad_value ) { 4af40: 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; } 4af44: 4e5e unlk %fp <== NOT EXECUTED 4af46: 203c 0005 67f8 movel #354296,%d0 <== NOT EXECUTED 4af4c: 4e75 rts <== NOT EXECUTED ... 00048c04 : const char *rtems_assoc_name_by_local( const rtems_assoc_t *ap, uint32_t local_value ) { 48c04: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48c08: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48c0a: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 48c0e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48c10: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48c14: 4eb9 0004 8c3c jsr 48c3c <== NOT EXECUTED if (nap) 48c1a: 508f addql #8,%sp <== NOT EXECUTED uint32_t local_value ) { const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 48c1c: 2040 moveal %d0,%a0 <== NOT EXECUTED if (nap) 48c1e: 4a80 tstl %d0 <== NOT EXECUTED 48c20: 670a beqs 48c2c <== NOT EXECUTED return nap->name; return rtems_assoc_name_bad(local_value); } 48c22: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 48c26: 2010 movel %a0@,%d0 <== NOT EXECUTED 48c28: 4e5e unlk %fp <== NOT EXECUTED 48c2a: 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); 48c2c: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 48c30: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 48c34: 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); 48c36: 4ef9 0004 af40 jmp 4af40 <== NOT EXECUTED 00048c3c : const rtems_assoc_t *rtems_assoc_ptr_by_local( const rtems_assoc_t *ap, uint32_t local_value ) { 48c3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48c40: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48c42: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 48c46: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48c48: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) 48c4c: 2012 movel %a2@,%d0 <== NOT EXECUTED 48c4e: 6718 beqs 48c68 <== NOT EXECUTED 48c50: 4879 0005 53ba pea 553ba <== NOT EXECUTED 48c56: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48c58: 4eb9 0004 cbec jsr 4cbec <== NOT EXECUTED 48c5e: 508f addql #8,%sp <== NOT EXECUTED 48c60: 4a80 tstl %d0 <== NOT EXECUTED 48c62: 6604 bnes 48c68 <== NOT EXECUTED default_ap = ap++; 48c64: 200a movel %a2,%d0 <== NOT EXECUTED 48c66: 600a bras 48c72 <== NOT EXECUTED 48c68: 4280 clrl %d0 <== NOT EXECUTED 48c6a: 600c bras 48c78 <== NOT EXECUTED for ( ; ap->name; ap++) if (ap->local_value == local_value) 48c6c: b4aa 0004 cmpl %a2@(4),%d2 <== NOT EXECUTED 48c70: 670c beqs 48c7e <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) default_ap = ap++; for ( ; ap->name; ap++) 48c72: d5fc 0000 000c addal #12,%a2 <== NOT EXECUTED 48c78: 4a92 tstl %a2@ <== NOT EXECUTED 48c7a: 66f0 bnes 48c6c <== NOT EXECUTED 48c7c: 2440 moveal %d0,%a2 <== NOT EXECUTED if (ap->local_value == local_value) return ap; return default_ap; } 48c7e: 200a movel %a2,%d0 <== NOT EXECUTED 48c80: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48c84: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48c88: 4e5e unlk %fp <== NOT EXECUTED 48c8a: 4e75 rts 0004af50 : const rtems_assoc_t *rtems_assoc_ptr_by_remote( const rtems_assoc_t *ap, uint32_t remote_value ) { 4af50: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4af54: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4af56: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4af5a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4af5c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) 4af60: 2012 movel %a2@,%d0 <== NOT EXECUTED 4af62: 6718 beqs 4af7c <== NOT EXECUTED 4af64: 4879 0005 53ba pea 553ba <== NOT EXECUTED 4af6a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4af6c: 4eb9 0004 cbec jsr 4cbec <== NOT EXECUTED 4af72: 508f addql #8,%sp <== NOT EXECUTED 4af74: 4a80 tstl %d0 <== NOT EXECUTED 4af76: 6604 bnes 4af7c <== NOT EXECUTED default_ap = ap++; 4af78: 200a movel %a2,%d0 <== NOT EXECUTED 4af7a: 600a bras 4af86 <== NOT EXECUTED 4af7c: 4280 clrl %d0 <== NOT EXECUTED 4af7e: 600c bras 4af8c <== NOT EXECUTED for ( ; ap->name; ap++) if (ap->remote_value == remote_value) 4af80: b4aa 0008 cmpl %a2@(8),%d2 <== NOT EXECUTED 4af84: 670c beqs 4af92 <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) default_ap = ap++; for ( ; ap->name; ap++) 4af86: d5fc 0000 000c addal #12,%a2 <== NOT EXECUTED 4af8c: 4a92 tstl %a2@ <== NOT EXECUTED 4af8e: 66f0 bnes 4af80 <== NOT EXECUTED 4af90: 2440 moveal %d0,%a2 <== NOT EXECUTED if (ap->remote_value == remote_value) return ap; return default_ap; } 4af92: 200a movel %a2,%d0 <== NOT EXECUTED 4af94: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4af98: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4af9c: 4e5e unlk %fp <== NOT EXECUTED 4af9e: 4e75 rts 0004afa0 : uint32_t rtems_assoc_remote_by_local( const rtems_assoc_t *ap, uint32_t local_value ) { 4afa0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 4afa4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4afa8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4afac: 4eb9 0004 8c3c jsr 48c3c <== NOT EXECUTED if (nap) 4afb2: 508f addql #8,%sp <== NOT EXECUTED uint32_t local_value ) { const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 4afb4: 2040 moveal %d0,%a0 <== NOT EXECUTED if (nap) 4afb6: 4a80 tstl %d0 <== NOT EXECUTED 4afb8: 6604 bnes 4afbe <== NOT EXECUTED 4afba: 4280 clrl %d0 <== NOT EXECUTED 4afbc: 6004 bras 4afc2 <== NOT EXECUTED return nap->remote_value; 4afbe: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED return 0; } 4afc2: 4e5e unlk %fp <== NOT EXECUTED 4afc4: 4e75 rts <== NOT EXECUTED ... 000450d8 : rtems_name name, rtems_attribute attribute_set, uint32_t maximum_waiters, rtems_id *id ) { 450d8: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 450dc: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 450e0: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 450e4: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 450e8: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 450ec: 286e 0014 moveal %fp@(20),%a4 <== NOT EXECUTED Barrier_Control *the_barrier; CORE_barrier_Attributes the_attributes; if ( !rtems_is_name_valid( name ) ) 450f0: 4a83 tstl %d3 <== NOT EXECUTED 450f2: 6606 bnes 450fa <== NOT EXECUTED 450f4: 7003 moveq #3,%d0 <== NOT EXECUTED 450f6: 6000 0086 braw 4517e <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 450fa: 4a8c tstl %a4 <== NOT EXECUTED 450fc: 6604 bnes 45102 <== NOT EXECUTED 450fe: 7009 moveq #9,%d0 <== NOT EXECUTED 45100: 607c bras 4517e <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; /* Initialize core barrier attributes */ if ( _Attributes_Is_barrier_automatic( attribute_set ) ) { 45102: 0802 0004 btst #4,%d2 <== NOT EXECUTED 45106: 670e beqs 45116 <== NOT EXECUTED the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE; if ( maximum_waiters == 0 ) 45108: 4a81 tstl %d1 <== NOT EXECUTED 4510a: 6604 bnes 45110 <== NOT EXECUTED 4510c: 700a moveq #10,%d0 <== NOT EXECUTED 4510e: 606e bras 4517e <== 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; 45110: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED 45114: 6006 bras 4511c <== NOT EXECUTED if ( maximum_waiters == 0 ) return RTEMS_INVALID_NUMBER; } else the_attributes.discipline = CORE_BARRIER_MANUAL_RELEASE; 45116: 7001 moveq #1,%d0 <== NOT EXECUTED 45118: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4511c: 2039 0005 9fa4 movel 59fa4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45122: 5280 addql #1,%d0 <== NOT EXECUTED the_attributes.maximum_count = maximum_waiters; 45124: 2d41 fffc movel %d1,%fp@(-4) <== NOT EXECUTED 45128: 23c0 0005 9fa4 movel %d0,59fa4 <_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 ); 4512e: 4879 0005 9e9c pea 59e9c <_Barrier_Information> <== NOT EXECUTED 45134: 4eb9 0004 6e34 jsr 46e34 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_barrier = _Barrier_Allocate(); if ( !the_barrier ) { 4513a: 588f addql #4,%sp <== NOT EXECUTED 4513c: 2440 moveal %d0,%a2 <== NOT EXECUTED 4513e: 47f9 0004 7a76 lea 47a76 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 45144: 4a80 tstl %d0 <== NOT EXECUTED 45146: 6606 bnes 4514e <== NOT EXECUTED _Thread_Enable_dispatch(); 45148: 4e93 jsr %a3@ <== NOT EXECUTED 4514a: 7005 moveq #5,%d0 <== NOT EXECUTED 4514c: 6030 bras 4517e <== NOT EXECUTED return RTEMS_TOO_MANY; } the_barrier->attribute_set = attribute_set; 4514e: 2542 0010 movel %d2,%a2@(16) <== NOT EXECUTED _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 45152: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45156: 486a 0014 pea %a2@(20) <== NOT EXECUTED 4515a: 4eb9 0004 6604 jsr 46604 <_CORE_barrier_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 45160: 2079 0005 9eb6 moveal 59eb6 <_Barrier_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 45166: 2543 000c movel %d3,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4516a: 4280 clrl %d0 <== NOT EXECUTED 4516c: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED &_Barrier_Information, &the_barrier->Object, (Objects_Name) name ); *id = the_barrier->Object.id; 45170: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED 45174: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); 45178: 4e93 jsr %a3@ <== NOT EXECUTED 4517a: 508f addql #8,%sp <== NOT EXECUTED 4517c: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4517e: 4cee 1c0c ffe4 moveml %fp@(-28),%d2-%d3/%a2-%a4 <== NOT EXECUTED 45184: 4e5e unlk %fp <== NOT EXECUTED 45186: 4e75 rts 00045188 : */ rtems_status_code rtems_barrier_delete( rtems_id id ) { 45188: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4518c: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Get ( Objects_Id id, Objects_Locations *location ) { return (Barrier_Control *) 4518e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45192: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45196: 4879 0005 9e9c pea 59e9c <_Barrier_Information> <== NOT EXECUTED 4519c: 4eb9 0004 7294 jsr 47294 <_Objects_Get> <== NOT EXECUTED Barrier_Control *the_barrier; Objects_Locations location; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 451a2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 451a8: 2440 moveal %d0,%a2 <== NOT EXECUTED 451aa: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 451ae: 6704 beqs 451b4 <== NOT EXECUTED 451b0: 7004 moveq #4,%d0 <== NOT EXECUTED 451b2: 603a bras 451ee <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_barrier_Flush( 451b4: 4878 0002 pea 2 <== NOT EXECUTED 451b8: 42a7 clrl %sp@- <== NOT EXECUTED 451ba: 486a 0014 pea %a2@(20) <== NOT EXECUTED 451be: 4eb9 0004 80fc jsr 480fc <_Thread_queue_Flush> <== NOT EXECUTED &the_barrier->Barrier, NULL, CORE_BARRIER_WAS_DELETED ); _Objects_Close( &_Barrier_Information, &the_barrier->Object ); 451c4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 451c6: 4879 0005 9e9c pea 59e9c <_Barrier_Information> <== NOT EXECUTED 451cc: 4eb9 0004 6ebc jsr 46ebc <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Barrier_Free ( Barrier_Control *the_barrier ) { _Objects_Free( &_Barrier_Information, &the_barrier->Object ); 451d2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 451d4: 4879 0005 9e9c pea 59e9c <_Barrier_Information> <== NOT EXECUTED 451da: 4eb9 0004 7134 jsr 47134 <_Objects_Free> <== NOT EXECUTED _Barrier_Free( the_barrier ); _Thread_Enable_dispatch(); 451e0: 4eb9 0004 7a76 jsr 47a76 <_Thread_Enable_dispatch> <== NOT EXECUTED 451e6: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 451ec: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 451ee: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 451f2: 4e5e unlk %fp <== NOT EXECUTED 451f4: 4e75 rts <== NOT EXECUTED ... 000451f8 : rtems_status_code rtems_barrier_ident( rtems_name name, rtems_id *id ) { 451f8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 451fc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45200: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 45206: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4520a: 4879 0005 9e9c pea 59e9c <_Barrier_Information> <== NOT EXECUTED 45210: 4eb9 0004 73f8 jsr 473f8 <_Objects_Name_to_id_u32> <== NOT EXECUTED 45216: 41f9 0005 71f0 lea 571f0 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 4521c: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 45220: 4e5e unlk %fp <== NOT EXECUTED 45222: 4e75 rts 00045224 : rtems_status_code rtems_barrier_release( rtems_id id, uint32_t *released ) { 45224: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45228: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4522a: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4522e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45230: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED Barrier_Control *the_barrier; Objects_Locations location; if ( !released ) 45234: 4a8a tstl %a2 <== NOT EXECUTED 45236: 6604 bnes 4523c <== NOT EXECUTED 45238: 7009 moveq #9,%d0 <== NOT EXECUTED 4523a: 6042 bras 4527e <== NOT EXECUTED RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Get ( Objects_Id id, Objects_Locations *location ) { return (Barrier_Control *) 4523c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45240: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45242: 4879 0005 9e9c pea 59e9c <_Barrier_Information> <== NOT EXECUTED 45248: 4eb9 0004 7294 jsr 47294 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 4524e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45254: 2040 moveal %d0,%a0 <== NOT EXECUTED 45256: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4525a: 6704 beqs 45260 <== NOT EXECUTED 4525c: 7004 moveq #4,%d0 <== NOT EXECUTED 4525e: 601e bras 4527e <== NOT EXECUTED case OBJECTS_LOCAL: *released = _CORE_barrier_Release( &the_barrier->Barrier, id, NULL ); 45260: 42a7 clrl %sp@- <== NOT EXECUTED 45262: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45264: 4868 0014 pea %a0@(20) <== NOT EXECUTED 45268: 4eb9 0004 6640 jsr 46640 <_CORE_barrier_Release> <== NOT EXECUTED 4526e: 2480 movel %d0,%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 45270: 4eb9 0004 7a76 jsr 47a76 <_Thread_Enable_dispatch> <== NOT EXECUTED 45276: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4527c: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4527e: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 45282: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45286: 4e5e unlk %fp <== NOT EXECUTED 45288: 4e75 rts <== NOT EXECUTED ... 0004528c : rtems_status_code rtems_barrier_wait( rtems_id id, rtems_interval timeout ) { 4528c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45290: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45292: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 45296: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4529a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4529c: 4879 0005 9e9c pea 59e9c <_Barrier_Information> <== NOT EXECUTED 452a2: 4eb9 0004 7294 jsr 47294 <_Objects_Get> <== NOT EXECUTED Barrier_Control *the_barrier; Objects_Locations location; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 452a8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 452ae: 2040 moveal %d0,%a0 <== NOT EXECUTED 452b0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 452b4: 6704 beqs 452ba <== NOT EXECUTED 452b6: 7004 moveq #4,%d0 <== NOT EXECUTED 452b8: 6032 bras 452ec <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_barrier_Wait( 452ba: 42a7 clrl %sp@- <== NOT EXECUTED 452bc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 452c0: 4878 0001 pea 1 <== NOT EXECUTED 452c4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 452c6: 4868 0014 pea %a0@(20) <== NOT EXECUTED 452ca: 4eb9 0004 6674 jsr 46674 <_CORE_barrier_Wait> <== NOT EXECUTED id, TRUE, timeout, NULL ); _Thread_Enable_dispatch(); 452d0: 4eb9 0004 7a76 jsr 47a76 <_Thread_Enable_dispatch> <== NOT EXECUTED return _Barrier_Translate_core_barrier_return_code( 452d6: 2079 0005 a062 moveal 5a062 <_Thread_Executing>,%a0 <== NOT EXECUTED 452dc: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 452e0: 4eb9 0004 aae4 jsr 4aae4 <_Barrier_Translate_core_barrier_return_code> <== NOT EXECUTED 452e6: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 452ec: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 452f0: 4e5e unlk %fp <== NOT EXECUTED 452f2: 4e75 rts 00046090 : uint32_t api, uint32_t class, uint32_t node, uint32_t index ) { 46090: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46094: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46096: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4609a: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 4609e: 761b moveq #27,%d3 <== NOT EXECUTED 460a0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 460a2: e7a8 lsll %d3,%d0 <== NOT EXECUTED 460a4: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 460a8: 163c 0018 moveb #24,%d3 <== NOT EXECUTED 460ac: e7a9 lsll %d3,%d1 <== NOT EXECUTED 460ae: 8081 orl %d1,%d0 <== NOT EXECUTED 460b0: 80ae 0014 orl %fp@(20),%d0 <== NOT EXECUTED 460b4: 4842 swap %d2 <== NOT EXECUTED 460b6: 4242 clrw %d2 <== NOT EXECUTED return _Objects_Build_id( api, class, node, index ); } 460b8: 8082 orl %d2,%d0 <== NOT EXECUTED 460ba: 241f movel %sp@+,%d2 <== NOT EXECUTED 460bc: 261f movel %sp@+,%d3 <== NOT EXECUTED 460be: 4e5e unlk %fp <== NOT EXECUTED 460c0: 4e75 rts <== NOT EXECUTED ... 000460c4 : char C1, char C2, char C3, char C4 ) { 460c4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 460c8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 460ca: 142e 000b moveb %fp@(11),%d2 <== NOT EXECUTED 460ce: 7218 moveq #24,%d1 <== NOT EXECUTED 460d0: 102e 000f moveb %fp@(15),%d0 <== NOT EXECUTED 460d4: 49c2 extbl %d2 <== NOT EXECUTED 460d6: e3aa lsll %d1,%d2 <== NOT EXECUTED 460d8: 49c0 extbl %d0 <== NOT EXECUTED 460da: 122e 0013 moveb %fp@(19),%d1 <== NOT EXECUTED 460de: 4840 swap %d0 <== NOT EXECUTED 460e0: 4240 clrw %d0 <== NOT EXECUTED 460e2: 8082 orl %d2,%d0 <== NOT EXECUTED 460e4: 49c1 extbl %d1 <== NOT EXECUTED 460e6: e189 lsll #8,%d1 <== NOT EXECUTED return _Objects_Build_name( C1, C2, C3, C4 ); } 460e8: 241f movel %sp@+,%d2 <== NOT EXECUTED char C1, char C2, char C3, char C4 ) { 460ea: 8081 orl %d1,%d0 <== NOT EXECUTED 460ec: 122e 0017 moveb %fp@(23),%d1 <== NOT EXECUTED 460f0: 49c1 extbl %d1 <== NOT EXECUTED return _Objects_Build_name( C1, C2, C3, C4 ); } 460f2: 4e5e unlk %fp <== NOT EXECUTED 460f4: 8081 orl %d1,%d0 <== NOT EXECUTED 460f6: 4e75 rts 00044640 : rtems_status_code rtems_clock_get( rtems_clock_get_options option, void *time_buffer ) { 44640: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44644: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44646: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4464a: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED if ( !time_buffer ) 4464e: 4a8a tstl %a2 <== NOT EXECUTED 44650: 6604 bnes 44656 <== NOT EXECUTED 44652: 7009 moveq #9,%d0 <== NOT EXECUTED 44654: 6062 bras 446b8 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; switch ( option ) { 44656: 7204 moveq #4,%d1 <== NOT EXECUTED 44658: b280 cmpl %d0,%d1 <== NOT EXECUTED 4465a: 6514 bcss 44670 <== NOT EXECUTED 4465c: 303b 0a08 movew %pc@(44666 ,%d0:l:2),%d0 <== NOT EXECUTED 44660: 48c0 extl %d0 <== NOT EXECUTED 44662: 4efb 0802 jmp %pc@(44666 ,%d0:l) <== NOT EXECUTED 44666: 000e 016 <== NOT EXECUTED 44668: 001e 036 <== NOT EXECUTED 4466a: 002e 056 <== NOT EXECUTED 4466c: 0036 066 <== NOT EXECUTED 4466e: 0042 0102 <== NOT EXECUTED 44670: 700a moveq #10,%d0 <== NOT EXECUTED 44672: 6044 bras 446b8 <== NOT EXECUTED case RTEMS_CLOCK_GET_TOD: return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer ); 44674: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 44678: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4467c: 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 ); 4467e: 4ef9 0004 4710 jmp 44710 <== NOT EXECUTED case RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH: return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer); 44684: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 44688: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4468c: 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); 4468e: 4ef9 0004 46c0 jmp 446c0 <== NOT EXECUTED case RTEMS_CLOCK_GET_TICKS_SINCE_BOOT: { rtems_interval *interval = (rtems_interval *)time_buffer; *interval = rtems_clock_get_ticks_since_boot(); 44694: 4eb9 0004 4700 jsr 44700 <== NOT EXECUTED 4469a: 6006 bras 446a2 <== 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(); 4469c: 4eb9 0004 46e8 jsr 446e8 <== NOT EXECUTED 446a2: 2480 movel %d0,%a2@ <== NOT EXECUTED 446a4: 4280 clrl %d0 <== NOT EXECUTED 446a6: 6010 bras 446b8 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } case RTEMS_CLOCK_GET_TIME_VALUE: return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer ); 446a8: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 446ac: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 446b0: 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 ); 446b2: 4ef9 0004 47c8 jmp 447c8 <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 446b8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 446bc: 4e5e unlk %fp <== NOT EXECUTED 446be: 4e75 rts 000446c0 : #include rtems_status_code rtems_clock_get_seconds_since_epoch( rtems_interval *the_interval ) { 446c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 446c4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !the_interval ) 446c8: 4a88 tstl %a0 <== NOT EXECUTED 446ca: 6604 bnes 446d0 <== NOT EXECUTED 446cc: 7009 moveq #9,%d0 <== NOT EXECUTED 446ce: 6014 bras 446e4 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 446d0: 4a39 0005 7e90 tstb 57e90 <_TOD_Is_set> <== NOT EXECUTED 446d6: 6604 bnes 446dc <== NOT EXECUTED 446d8: 700b moveq #11,%d0 <== NOT EXECUTED 446da: 6008 bras 446e4 <== NOT EXECUTED return RTEMS_NOT_DEFINED; *the_interval = _TOD_Seconds_since_epoch; 446dc: 4280 clrl %d0 <== NOT EXECUTED 446de: 20b9 0005 7f0e movel 57f0e <_TOD_Now>,%a0@ <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 446e4: 4e5e unlk %fp <== NOT EXECUTED 446e6: 4e75 rts 000446e8 : #include #include #include rtems_interval rtems_clock_get_ticks_per_second(void) { 446e8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return TOD_MICROSECONDS_PER_SECOND / _TOD_Microseconds_per_tick; } 446ec: 41f9 0005 800a lea 5800a <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 446f2: 4e5e unlk %fp <== NOT EXECUTED 446f4: 203c 000f 4240 movel #1000000,%d0 <== NOT EXECUTED 446fa: 4c50 0000 remul %a0@,%d0,%d0 <== NOT EXECUTED 446fe: 4e75 rts 00044700 : #include #include #include rtems_interval rtems_clock_get_ticks_since_boot(void) { 44700: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Watchdog_Ticks_since_boot; 44704: 2039 0005 7fc4 movel 57fc4 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED } 4470a: 4e5e unlk %fp <== NOT EXECUTED 4470c: 4e75 rts <== NOT EXECUTED ... 00044710 : #include rtems_status_code rtems_clock_get_tod( rtems_time_of_day *time_buffer ) { 44710: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 44714: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44716: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4471a: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_time_of_day *tmbuf = time_buffer; struct tm time; struct timeval now; if ( !time_buffer ) 4471c: 4a8a tstl %a2 <== NOT EXECUTED 4471e: 6606 bnes 44726 <== NOT EXECUTED 44720: 7009 moveq #9,%d0 <== NOT EXECUTED 44722: 6000 0096 braw 447ba <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 44726: 4a39 0005 7e90 tstb 57e90 <_TOD_Is_set> <== NOT EXECUTED 4472c: 6606 bnes 44734 <== NOT EXECUTED 4472e: 700b moveq #11,%d0 <== NOT EXECUTED 44730: 6000 0088 braw 447ba <== NOT EXECUTED ) { ISR_Level level; struct timespec now; _ISR_Disable(level); 44734: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4473a: 40c2 movew %sr,%d2 <== NOT EXECUTED 4473c: 8082 orl %d2,%d0 <== NOT EXECUTED 4473e: 46c0 movew %d0,%sr <== NOT EXECUTED _TOD_Get( &now ); 44740: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 44744: 4eb9 0004 5d14 jsr 45d14 <_TOD_Get> <== NOT EXECUTED _ISR_Enable(level); 4474a: 46c2 movew %d2,%sr <== NOT EXECUTED time->tv_sec = now.tv_sec; time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 4474c: 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 ); 44750: 486e ffcc pea %fp@(-52) <== NOT EXECUTED 44754: 243c 0000 03e8 movel #1000,%d2 <== NOT EXECUTED 4475a: 4c42 1001 remul %d2,%d1,%d1 <== NOT EXECUTED 4475e: 2d41 fffc movel %d1,%fp@(-4) <== NOT EXECUTED _ISR_Disable(level); _TOD_Get( &now ); _ISR_Enable(level); time->tv_sec = now.tv_sec; 44762: 2d6e fff0 fff8 movel %fp@(-16),%fp@(-8) <== NOT EXECUTED 44768: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4476c: 4eb9 0004 bf30 jsr 4bf30 <== 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; 44772: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 44776: 41f9 0005 800a lea 5800a <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 4477c: 4c50 1001 remul %a0@,%d1,%d1 <== NOT EXECUTED 44780: 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; 44784: 222e ffe0 movel %fp@(-32),%d1 <== NOT EXECUTED tmbuf->month = time.tm_mon + 1; 44788: 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; 4478c: 0681 0000 076c addil #1900,%d1 <== NOT EXECUTED tmbuf->month = time.tm_mon + 1; 44792: 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; 44794: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4479a: 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; 4479c: 2481 movel %d1,%a2@ <== NOT EXECUTED tmbuf->month = time.tm_mon + 1; tmbuf->day = time.tm_mday; 4479e: 256e ffd8 0008 movel %fp@(-40),%a2@(8) <== NOT EXECUTED tmbuf->hour = time.tm_hour; 447a4: 256e ffd4 000c movel %fp@(-44),%a2@(12) <== NOT EXECUTED tmbuf->minute = time.tm_min; 447aa: 256e ffd0 0010 movel %fp@(-48),%a2@(16) <== NOT EXECUTED tmbuf->second = time.tm_sec; 447b0: 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; 447b6: 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; } 447ba: 242e ffc4 movel %fp@(-60),%d2 <== NOT EXECUTED 447be: 246e ffc8 moveal %fp@(-56),%a2 <== NOT EXECUTED 447c2: 4e5e unlk %fp <== NOT EXECUTED 447c4: 4e75 rts <== NOT EXECUTED ... 000447c8 : #include rtems_status_code rtems_clock_get_tod_timeval( struct timeval *time ) { 447c8: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 447cc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 447ce: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 447d2: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !time ) 447d4: 4a8a tstl %a2 <== NOT EXECUTED 447d6: 6604 bnes 447dc <== NOT EXECUTED 447d8: 7009 moveq #9,%d0 <== NOT EXECUTED 447da: 603e bras 4481a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 447dc: 4a39 0005 7e90 tstb 57e90 <_TOD_Is_set> <== NOT EXECUTED 447e2: 6604 bnes 447e8 <== NOT EXECUTED 447e4: 700b moveq #11,%d0 <== NOT EXECUTED 447e6: 6032 bras 4481a <== NOT EXECUTED ) { ISR_Level level; struct timespec now; _ISR_Disable(level); 447e8: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 447ee: 40c2 movew %sr,%d2 <== NOT EXECUTED 447f0: 8082 orl %d2,%d0 <== NOT EXECUTED 447f2: 46c0 movew %d0,%sr <== NOT EXECUTED _TOD_Get( &now ); 447f4: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 447f8: 4eb9 0004 5d14 jsr 45d14 <_TOD_Get> <== NOT EXECUTED _ISR_Enable(level); 447fe: 46c2 movew %d2,%sr <== NOT EXECUTED time->tv_sec = now.tv_sec; time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 44800: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 44804: 243c 0000 03e8 movel #1000,%d2 <== NOT EXECUTED 4480a: 4c42 1001 remul %d2,%d1,%d1 <== NOT EXECUTED 4480e: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED 44812: 588f addql #4,%sp <== NOT EXECUTED 44814: 4280 clrl %d0 <== NOT EXECUTED _ISR_Disable(level); _TOD_Get( &now ); _ISR_Enable(level); time->tv_sec = now.tv_sec; 44816: 24ae fff8 movel %fp@(-8),%a2@ <== NOT EXECUTED return RTEMS_NOT_DEFINED; _TOD_Get_timeval( time ); return RTEMS_SUCCESSFUL; } 4481a: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 4481e: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 44822: 4e5e unlk %fp <== NOT EXECUTED 44824: 4e75 rts <== NOT EXECUTED ... 00044a18 : * error code - if unsuccessful */ rtems_status_code rtems_clock_get_uptime( struct timespec *uptime ) { 44a18: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44a1c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !uptime ) 44a20: 6606 bnes 44a28 <== NOT EXECUTED 44a22: 103c 0009 moveb #9,%d0 <== NOT EXECUTED 44a26: 600c bras 44a34 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _TOD_Get_uptime( uptime ); 44a28: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44a2a: 4eb9 0004 60f0 jsr 460f0 <_TOD_Get_uptime> <== NOT EXECUTED 44a30: 588f addql #4,%sp <== NOT EXECUTED 44a32: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 44a34: 4e5e unlk %fp <== NOT EXECUTED 44a36: 4e75 rts 000454d0 : */ rtems_status_code rtems_clock_set( rtems_time_of_day *time_buffer ) { 454d0: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 454d4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 454d8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED struct timespec newtime; if ( !time_buffer ) 454dc: 4a8a tstl %a2 <== NOT EXECUTED 454de: 6604 bnes 454e4 <== NOT EXECUTED 454e0: 7009 moveq #9,%d0 <== NOT EXECUTED 454e2: 6060 bras 45544 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( _TOD_Validate( time_buffer ) ) { 454e4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 454e6: 4eb9 0004 5640 jsr 45640 <_TOD_Validate> <== NOT EXECUTED 454ec: 588f addql #4,%sp <== NOT EXECUTED 454ee: 4a00 tstb %d0 <== NOT EXECUTED 454f0: 6604 bnes 454f6 <== NOT EXECUTED 454f2: 7014 moveq #20,%d0 <== NOT EXECUTED 454f4: 604e bras 45544 <== NOT EXECUTED newtime.tv_sec = _TOD_To_seconds( time_buffer ); 454f6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 454f8: 4eb9 0004 558c jsr 4558c <_TOD_To_seconds> <== NOT EXECUTED newtime.tv_nsec = time_buffer->ticks * 454fe: 242a 0018 movel %a2@(24),%d2 <== NOT EXECUTED 45502: 41f9 0006 2322 lea 62322 <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 45508: 4c10 2800 mulsl %a0@,%d2 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4550c: 2079 0006 2194 moveal 62194 <_Thread_Dispatch_disable_level>,%a0 <== NOT EXECUTED 45512: 2602 movel %d2,%d3 <== NOT EXECUTED 45514: 2202 movel %d2,%d1 <== NOT EXECUTED 45516: e58b lsll #2,%d3 <== NOT EXECUTED 45518: ef89 lsll #7,%d1 <== NOT EXECUTED 4551a: 9283 subl %d3,%d1 <== NOT EXECUTED 4551c: d282 addl %d2,%d1 <== NOT EXECUTED 4551e: 5288 addql #1,%a0 <== NOT EXECUTED 45520: e789 lsll #3,%d1 <== NOT EXECUTED 45522: 2d41 fffc movel %d1,%fp@(-4) <== NOT EXECUTED 45526: 23c8 0006 2194 movel %a0,62194 <_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 ); 4552c: 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 ); 45530: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45534: 4eb9 0004 6e04 jsr 46e04 <_TOD_Set> <== NOT EXECUTED _Thread_Enable_dispatch(); 4553a: 4eb9 0004 7ea2 jsr 47ea2 <_Thread_Enable_dispatch> <== NOT EXECUTED 45540: 508f addql #8,%sp <== NOT EXECUTED 45542: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } return RTEMS_INVALID_CLOCK; } 45544: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 4554a: 4e5e unlk %fp <== NOT EXECUTED 4554c: 4e75 rts <== NOT EXECUTED ... 00044828 : * error code - if unsuccessful */ rtems_status_code rtems_clock_set_nanoseconds_extension( rtems_nanoseconds_extension_routine routine ) { 44828: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4482c: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED if ( !routine ) 44830: 6604 bnes 44836 <== NOT EXECUTED 44832: 7009 moveq #9,%d0 <== NOT EXECUTED 44834: 6008 bras 4483e <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _Watchdog_Nanoseconds_since_tick_handler = routine; 44836: 4280 clrl %d0 <== NOT EXECUTED 44838: 23c1 0005 8012 movel %d1,58012 <_Watchdog_Nanoseconds_since_tick_handler> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4483e: 4e5e unlk %fp <== NOT EXECUTED 44840: 4e75 rts <== NOT EXECUTED ... 00044844 : * * NOTE: This routine only works for leap-years through 2099. */ rtems_status_code rtems_clock_tick( void ) { 44844: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _TOD_Tickle_ticks(); 44848: 4eb9 0004 5dac jsr 45dac <_TOD_Tickle_ticks> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_ticks( void ) { _Watchdog_Tickle( &_Watchdog_Ticks_chain ); 4484e: 4879 0005 7f58 pea 57f58 <_Watchdog_Ticks_chain> <== NOT EXECUTED 44854: 4eb9 0004 7e18 jsr 47e18 <_Watchdog_Tickle> <== NOT EXECUTED _Watchdog_Tickle_ticks(); _Thread_Tickle_timeslice(); 4485a: 4eb9 0004 78dc jsr 478dc <_Thread_Tickle_timeslice> <== NOT EXECUTED if ( _Thread_Is_context_switch_necessary() && 44860: 588f addql #4,%sp <== NOT EXECUTED * otherwise. */ RTEMS_INLINE_ROUTINE bool _Thread_Is_context_switch_necessary( void ) { return ( _Context_Switch_necessary ); 44862: 1039 0005 7f4a moveb 57f4a <_Context_Switch_necessary>,%d0 <== NOT EXECUTED 44868: 670e beqs 44878 <== NOT EXECUTED * otherwise. */ RTEMS_INLINE_ROUTINE bool _Thread_Is_dispatching_enabled( void ) { return ( _Thread_Dispatch_disable_level == 0 ); 4486a: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44870: 6606 bnes 44878 <== NOT EXECUTED _Thread_Is_dispatching_enabled() ) _Thread_Dispatch(); 44872: 4eb9 0004 6bb8 jsr 46bb8 <_Thread_Dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 44878: 4e5e unlk %fp <== NOT EXECUTED 4487a: 4280 clrl %d0 <== NOT EXECUTED 4487c: 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 38c8 pea 438c8 <== 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 6d6c jsr 46d6c <_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 2150 lea 62150 <_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 2682 pea 62682 <== NOT EXECUTED 42842: 4eb9 0004 8dc8 jsr 48dc8 <_Timespec_Subtract> <== NOT EXECUTED } } } #endif (*print)( context, "CPU Usage by thread\n" 42848: 4879 0005 7030 pea 57030 <== 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 5a54 jsr 45a54 <== NOT EXECUTED (*print)( 428a2: 2f07 movel %d7,%sp@- <== NOT EXECUTED 428a4: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 428a8: 4879 0005 7075 pea 57075 <== 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 2252 moveal 62252 <_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 225a pea 6225a <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 428e2: 4eb9 0004 8dc8 jsr 48dc8 <_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 8c58 jsr 48c58 <_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 8c90 jsr 48c90 <_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 7088 pea 57088 <== 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 2160 cmpal #401760,%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 70a0 pea 570a0 <== 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 2682 pea 62682 <== NOT EXECUTED 429b6: 4eb9 0004 6d6c jsr 46d6c <_TOD_Get_uptime> <== NOT EXECUTED _Thread_Time_of_last_context_switch = CPU_usage_Uptime_at_last_reset; 429bc: 2039 0006 2682 movel 62682 ,%d0 <== NOT EXECUTED 429c2: 2239 0006 2686 movel 62686 ,%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 225a movel %d0,6225a <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 429d2: 23c1 0006 225e movel %d1,6225e <_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 718c jsr 4718c <== NOT EXECUTED 429de: 508f addql #8,%sp <== NOT EXECUTED } 429e0: 4e5e unlk %fp <== NOT EXECUTED 429e2: 4e75 rts 0004a148 : */ void rtems_debug_disable ( rtems_debug_control to_be_disabled ) { 4a148: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Debug_Level &= ~to_be_disabled; 4a14c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED } 4a150: 4e5e unlk %fp <== NOT EXECUTED void rtems_debug_disable ( rtems_debug_control to_be_disabled ) { _Debug_Level &= ~to_be_disabled; 4a152: 4680 notl %d0 <== NOT EXECUTED 4a154: c1b9 0005 7f3e andl %d0,57f3e <_Debug_Level> <== NOT EXECUTED } 4a15a: 4e75 rts 0004a136 : */ void rtems_debug_enable ( rtems_debug_control to_be_enabled ) { 4a136: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Debug_Level |= to_be_enabled; 4a13a: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED } 4a13e: 4e5e unlk %fp <== NOT EXECUTED void rtems_debug_enable ( rtems_debug_control to_be_enabled ) { _Debug_Level |= to_be_enabled; 4a140: 81b9 0005 7f3e orl %d0,57f3e <_Debug_Level> <== NOT EXECUTED } 4a146: 4e75 rts 0004ab5e : { 0, 0, 0 }, }; static int rtems_deviceio_errno(rtems_status_code code) { 4ab5e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ab62: 2f02 movel %d2,%sp@- <== NOT EXECUTED int rc; if ((rc = rtems_assoc_remote_by_local(errno_assoc, (uint32_t) code))) 4ab64: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ab68: 4879 0005 56ae pea 556ae <== NOT EXECUTED 4ab6e: 4eb9 0004 afa0 jsr 4afa0 <== NOT EXECUTED 4ab74: 508f addql #8,%sp <== NOT EXECUTED 4ab76: 2400 movel %d0,%d2 <== NOT EXECUTED 4ab78: 670a beqs 4ab84 <== NOT EXECUTED { errno = rc; 4ab7a: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 4ab80: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ab82: 2082 movel %d2,%a0@ <== NOT EXECUTED return -1; } return -1; } 4ab84: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4ab88: 4e5e unlk %fp <== NOT EXECUTED 4ab8a: 70ff moveq #-1,%d0 <== NOT EXECUTED 4ab8c: 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 ... 00044880 : rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 44880: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44884: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 44888: 226e 0014 moveal %fp@(20),%a1 <== NOT EXECUTED RTEMS_API_Control *api; if ( !event_out ) 4488c: 4a89 tstl %a1 <== NOT EXECUTED 4488e: 6604 bnes 44894 <== NOT EXECUTED 44890: 7009 moveq #9,%d0 <== NOT EXECUTED 44892: 604a bras 448de <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; 44894: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 4489a: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED if ( _Event_sets_Is_empty( event_in ) ) { 4489e: 4a81 tstl %d1 <== NOT EXECUTED 448a0: 6606 bnes 448a8 <== NOT EXECUTED *event_out = api->pending_events; 448a2: 2290 movel %a0@,%a1@ <== NOT EXECUTED 448a4: 4280 clrl %d0 <== NOT EXECUTED 448a6: 6036 bras 448de <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 448a8: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 448ae: 5280 addql #1,%d0 <== NOT EXECUTED 448b0: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Disable_dispatch(); _Event_Seize( event_in, option_set, ticks, event_out ); 448b6: 2f09 movel %a1,%sp@- <== NOT EXECUTED 448b8: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 448bc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 448c0: 2f01 movel %d1,%sp@- <== NOT EXECUTED 448c2: 4eb9 0004 48e4 jsr 448e4 <_Event_Seize> <== NOT EXECUTED _Thread_Enable_dispatch(); 448c8: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED return( _Thread_Executing->Wait.return_code ); 448ce: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 448d4: 2028 0034 movel %a0@(52),%d0 <== NOT EXECUTED 448d8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 448de: 4e5e unlk %fp <== NOT EXECUTED 448e0: 4e75 rts <== NOT EXECUTED ... 000449e8 : rtems_status_code rtems_event_send( Objects_Id id, rtems_event_set event_in ) { 449e8: 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 ); 449ec: 486e fffc pea %fp@(-4) <== NOT EXECUTED 449f0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 449f4: 4eb9 0004 6d34 jsr 46d34 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 449fa: 508f addql #8,%sp <== NOT EXECUTED { register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; the_thread = _Thread_Get( id, &location ); 449fc: 2240 moveal %d0,%a1 <== NOT EXECUTED switch ( location ) { 449fe: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44a02: 6704 beqs 44a08 <== NOT EXECUTED 44a04: 7004 moveq #4,%d0 <== NOT EXECUTED 44a06: 602a bras 44a32 <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; 44a08: 2069 010c moveal %a1@(268),%a0 <== NOT EXECUTED rtems_event_set *the_event_set ) { ISR_Level level; _ISR_Disable( level ); 44a0c: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 44a12: 40c0 movew %sr,%d0 <== NOT EXECUTED 44a14: 8280 orl %d0,%d1 <== NOT EXECUTED 44a16: 46c1 movew %d1,%sr <== NOT EXECUTED *the_event_set |= the_new_events; 44a18: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 44a1c: 8390 orl %d1,%a0@ <== NOT EXECUTED _ISR_Enable( level ); 44a1e: 46c0 movew %d0,%sr <== NOT EXECUTED _Event_sets_Post( event_in, &api->pending_events ); _Event_Surrender( the_thread ); 44a20: 2f09 movel %a1,%sp@- <== NOT EXECUTED 44a22: 4eb9 0004 4a38 jsr 44a38 <_Event_Surrender> <== NOT EXECUTED _Thread_Enable_dispatch(); 44a28: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 44a2e: 588f addql #4,%sp <== NOT EXECUTED 44a30: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 44a32: 4e5e unlk %fp <== NOT EXECUTED 44a34: 4e75 rts <== NOT EXECUTED ... 00048fec : rtems_status_code rtems_extension_create( rtems_name name, rtems_extensions_table *extension_table, Objects_Id *id ) { 48fec: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48ff0: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 48ff4: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 48ff8: 286e 0010 moveal %fp@(16),%a4 <== NOT EXECUTED Extension_Control *the_extension; if ( !id ) 48ffc: 4a8c tstl %a4 <== NOT EXECUTED 48ffe: 6604 bnes 49004 <== NOT EXECUTED 49000: 7009 moveq #9,%d0 <== NOT EXECUTED 49002: 6062 bras 49066 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !rtems_is_name_valid( name ) ) 49004: 4a82 tstl %d2 <== NOT EXECUTED 49006: 6604 bnes 4900c <== NOT EXECUTED 49008: 7003 moveq #3,%d0 <== NOT EXECUTED 4900a: 605a bras 49066 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4900c: 2039 0006 3be4 movel 63be4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 49012: 5280 addql #1,%d0 <== NOT EXECUTED 49014: 23c0 0006 3be4 movel %d0,63be4 <_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 ); 4901a: 4879 0006 3d9a pea 63d9a <_Extension_Information> <== NOT EXECUTED 49020: 4eb9 0004 9c84 jsr 49c84 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_extension = _Extension_Allocate(); if ( !the_extension ) { 49026: 588f addql #4,%sp <== NOT EXECUTED 49028: 2440 moveal %d0,%a2 <== NOT EXECUTED 4902a: 47f9 0004 a936 lea 4a936 <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 49030: 4a80 tstl %d0 <== NOT EXECUTED 49032: 6606 bnes 4903a <== NOT EXECUTED _Thread_Enable_dispatch(); 49034: 4e93 jsr %a3@ <== NOT EXECUTED 49036: 7005 moveq #5,%d0 <== NOT EXECUTED 49038: 602c bras 49066 <== NOT EXECUTED return RTEMS_TOO_MANY; } _User_extensions_Add_set( &the_extension->Extension, extension_table ); 4903a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4903e: 486a 0010 pea %a2@(16) <== NOT EXECUTED 49042: 4eb9 0004 b6ac jsr 4b6ac <_User_extensions_Add_set> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 49048: 4280 clrl %d0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4904a: 2542 000c movel %d2,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4904e: 2079 0006 3db4 moveal 63db4 <_Extension_Information+0x1a>,%a0 <== NOT EXECUTED 49054: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED &_Extension_Information, &the_extension->Object, (Objects_Name) name ); *id = the_extension->Object.id; 49058: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED 4905c: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); 49060: 4e93 jsr %a3@ <== NOT EXECUTED 49062: 508f addql #8,%sp <== NOT EXECUTED 49064: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 49066: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 4906c: 4e5e unlk %fp <== NOT EXECUTED 4906e: 4e75 rts 00049070 : */ rtems_status_code rtems_extension_delete( Objects_Id id ) { 49070: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 49074: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Extension_Control *_Extension_Get ( Objects_Id id, Objects_Locations *location ) { return (Extension_Control *) 49076: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4907a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4907e: 4879 0006 3d9a pea 63d9a <_Extension_Information> <== NOT EXECUTED 49084: 4eb9 0004 a0e4 jsr 4a0e4 <_Objects_Get> <== NOT EXECUTED Extension_Control *the_extension; Objects_Locations location; the_extension = _Extension_Get( id, &location ); switch ( location ) { 4908a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49090: 2440 moveal %d0,%a2 <== NOT EXECUTED 49092: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 49096: 6704 beqs 4909c <== NOT EXECUTED 49098: 7004 moveq #4,%d0 <== NOT EXECUTED 4909a: 6034 bras 490d0 <== NOT EXECUTED case OBJECTS_LOCAL: _User_extensions_Remove_set( &the_extension->Extension ); 4909c: 486a 0010 pea %a2@(16) <== NOT EXECUTED 490a0: 4eb9 0004 b7c0 jsr 4b7c0 <_User_extensions_Remove_set> <== NOT EXECUTED _Objects_Close( &_Extension_Information, &the_extension->Object ); 490a6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 490a8: 4879 0006 3d9a pea 63d9a <_Extension_Information> <== NOT EXECUTED 490ae: 4eb9 0004 9d0c jsr 49d0c <_Objects_Close> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Extension_Free ( Extension_Control *the_extension ) { _Objects_Free( &_Extension_Information, &the_extension->Object ); 490b4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 490b6: 4879 0006 3d9a pea 63d9a <_Extension_Information> <== NOT EXECUTED 490bc: 4eb9 0004 9f84 jsr 49f84 <_Objects_Free> <== NOT EXECUTED _Extension_Free( the_extension ); _Thread_Enable_dispatch(); 490c2: 4eb9 0004 a936 jsr 4a936 <_Thread_Enable_dispatch> <== NOT EXECUTED 490c8: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 490ce: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 490d0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 490d4: 4e5e unlk %fp <== NOT EXECUTED 490d6: 4e75 rts 00046cf0 : rtems_status_code rtems_extension_ident( rtems_name name, Objects_Id *id ) { 46cf0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 46cf4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 46cf8: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 46cfe: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46d02: 4879 0005 b722 pea 5b722 <_Extension_Information> <== NOT EXECUTED 46d08: 4eb9 0004 7e58 jsr 47e58 <_Objects_Name_to_id_u32> <== NOT EXECUTED 46d0e: 41f9 0005 85a8 lea 585a8 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 46d14: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 46d18: 4e5e unlk %fp <== NOT EXECUTED 46d1a: 4e75 rts 00045580 : */ void rtems_fatal_error_occurred( uint32_t the_error ) { 45580: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, FALSE, the_error ); 45584: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45588: 42a7 clrl %sp@- <== NOT EXECUTED 4558a: 4878 0001 pea 1 <== NOT EXECUTED 4558e: 4eb9 0004 5ffc jsr 45ffc <_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 b794 jsr 4b794 <__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 b794 jsr 4b794 <__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 bf4c jsr 4bf4c <== 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 5064 pea 55064 <== 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 b794 jsr 4b794 <__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 b794 jsr 4b794 <__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 6764 movel 56764 ,%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 bf4c jsr 4bf4c <== 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 6764 movel 56764 ,%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 bf4c jsr 4bf4c <== 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 b794 jsr 4b794 <__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 ... 00048c8c : /* * Set the default umask to "022". */ rtems_filesystem_umask = 022; 48c8c: 2079 0005 6764 moveal 56764 ,%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 ) { 48c92: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED /* * Set the default umask to "022". */ rtems_filesystem_umask = 022; 48c96: 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 ) { 48c98: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED /* * Set the default umask to "022". */ rtems_filesystem_umask = 022; 48c9c: 2140 0024 movel %d0,%a0@(36) <== NOT EXECUTED init_fs_mount_table(); 48ca0: 4eb9 0004 9464 jsr 49464 <== NOT EXECUTED /* * mount the first filesystem. */ if ( rtems_filesystem_mount_table_size == 0 ) 48ca6: 4ab9 0005 49b8 tstl 549b8 <== NOT EXECUTED 48cac: 6608 bnes 48cb6 <== NOT EXECUTED rtems_fatal_error_occurred( 0xABCD0001 ); 48cae: 2f3c abcd 0001 movel #-1412628479,%sp@- <== NOT EXECUTED 48cb4: 6030 bras 48ce6 <== NOT EXECUTED mt = &rtems_filesystem_mount_table[0]; 48cb6: 2079 0005 6250 moveal 56250 ,%a0 <== NOT EXECUTED status = mount( 48cbc: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 48cc0: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 48cc4: 2f28 0004 movel %a0@(4),%sp@- <== NOT EXECUTED 48cc8: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 48cca: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48cce: 4eb9 0004 9486 jsr 49486 <== NOT EXECUTED &entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point ); if ( status == -1 ) 48cd4: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 48cda: 72ff moveq #-1,%d1 <== NOT EXECUTED 48cdc: b280 cmpl %d0,%d1 <== NOT EXECUTED 48cde: 660c bnes 48cec <== NOT EXECUTED rtems_fatal_error_occurred( 0xABCD0002 ); 48ce0: 2f3c abcd 0002 movel #-1412628478,%sp@- <== NOT EXECUTED 48ce6: 4eb9 0004 5580 jsr 45580 <== NOT EXECUTED rtems_filesystem_link_counts = 0; 48cec: 2079 0005 6764 moveal 56764 ,%a0 <== NOT EXECUTED 48cf2: 4240 clrw %d0 <== NOT EXECUTED 48cf4: 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; 48cf8: 4878 0010 pea 10 <== NOT EXECUTED 48cfc: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 48d00: 0681 0000 0018 addil #24,%d1 <== NOT EXECUTED 48d06: 2f01 movel %d1,%sp@- <== NOT EXECUTED 48d08: 45f9 0004 bf4c lea 4bf4c ,%a2 <== NOT EXECUTED 48d0e: 4868 0014 pea %a0@(20) <== NOT EXECUTED 48d12: 4e92 jsr %a2@ <== NOT EXECUTED /* Clone the root pathloc */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); 48d14: 42a7 clrl %sp@- <== NOT EXECUTED 48d16: 240e movel %fp,%d2 <== NOT EXECUTED 48d18: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED 48d1e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48d20: 47f9 0004 20e2 lea 420e2 ,%a3 <== NOT EXECUTED 48d26: 42a7 clrl %sp@- <== NOT EXECUTED 48d28: 4879 0005 53c4 pea 553c4 <== NOT EXECUTED 48d2e: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_root = loc; 48d30: 4878 0010 pea 10 <== NOT EXECUTED 48d34: 2039 0005 6764 movel 56764 ,%d0 <== NOT EXECUTED 48d3a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48d3c: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 48d42: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48d44: 4e92 jsr %a2@ <== NOT EXECUTED /* One more clone for the current node */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); 48d46: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 48d4c: 4297 clrl %sp@ <== NOT EXECUTED 48d4e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48d50: 42a7 clrl %sp@- <== NOT EXECUTED 48d52: 4879 0005 53c4 pea 553c4 <== NOT EXECUTED 48d58: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_current = loc; 48d5a: 4878 0010 pea 10 <== NOT EXECUTED 48d5e: 2239 0005 6764 movel 56764 ,%d1 <== NOT EXECUTED 48d64: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48d66: 5881 addql #4,%d1 <== NOT EXECUTED 48d68: 2f01 movel %d1,%sp@- <== NOT EXECUTED 48d6a: 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); 48d6c: 4878 01ff pea 1ff <== NOT EXECUTED 48d70: 4879 0005 53c6 pea 553c6 <== NOT EXECUTED 48d76: 4eb9 0004 9444 jsr 49444 <== NOT EXECUTED if ( status != 0 ) 48d7c: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 48d82: 4a80 tstl %d0 <== NOT EXECUTED 48d84: 670a beqs 48d90 <== NOT EXECUTED rtems_fatal_error_occurred( 0xABCD0003 ); 48d86: 2f3c abcd 0003 movel #-1412628477,%sp@- <== NOT EXECUTED 48d8c: 6000 ff58 braw 48ce6 <== NOT EXECUTED * before device drivers are initialized. So we return via a base * filesystem image and nothing auto-mounted at this point. */ #endif } 48d90: 4cee 0c04 ffe0 moveml %fp@(-32),%d2/%a2-%a3 <== NOT EXECUTED 48d96: 4e5e unlk %fp <== NOT EXECUTED 48d98: 4e75 rts <== NOT EXECUTED ... 0005cc88 : ); bool rtems_filesystem_nodes_equal( const rtems_filesystem_location_info_t *loc1, const rtems_filesystem_location_info_t *loc2 ){ 5cc88: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5cc8c: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 5cc90: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 5cc94: 2050 moveal %a0@,%a0 <== NOT EXECUTED 5cc96: b1d1 cmpal %a1@,%a0 <== NOT EXECUTED 5cc98: 57c0 seq %d0 <== NOT EXECUTED return ( loc1->node_access == loc2->node_access ); } 5cc9a: 4e5e unlk %fp <== NOT EXECUTED 5cc9c: 4480 negl %d0 <== NOT EXECUTED 5cc9e: 4e75 rts 00046c78 : #endif #include const char *rtems_get_version_string(void) { 46c78: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _RTEMS_version; } 46c7c: 4e5e unlk %fp <== NOT EXECUTED 46c7e: 203c 0005 9698 movel #366232,%d0 <== NOT EXECUTED 46c84: 4e75 rts <== NOT EXECUTED ... 000453f6 : * Scheduling can properly occur now as long as we avoid dispatching. */ } void rtems_initialize_before_drivers(void) { 453f6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED * Run the API and BSPs predriver hook. */ _API_extensions_Run_predriver(); } 453fa: 4e5e unlk %fp <== NOT EXECUTED /* * Run the API and BSPs predriver hook. */ _API_extensions_Run_predriver(); 453fc: 4ef9 0004 57bc jmp 457bc <_API_extensions_Run_predriver> <== NOT EXECUTED 00045402 : Objects_Information *_Internal_Objects[ OBJECTS_INTERNAL_CLASSES_LAST + 1 ]; void rtems_initialize_data_structures( rtems_configuration_table *configuration_table ) { 45402: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45406: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45408: 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 ); 4540c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 45412: 40c1 movew %sr,%d1 <== NOT EXECUTED 45414: 8081 orl %d1,%d0 <== NOT EXECUTED 45416: 46c0 movew %d0,%sr <== NOT EXECUTED /* * Make sure the parameters were not NULL. */ if ( configuration_table == NULL ) 45418: 4a8a tstl %a2 <== NOT EXECUTED 4541a: 660e bnes 4542a <== NOT EXECUTED _Internal_error_Occurred( 4541c: 42a7 clrl %sp@- <== NOT EXECUTED 4541e: 4878 0001 pea 1 <== NOT EXECUTED 45422: 42a7 clrl %sp@- <== NOT EXECUTED 45424: 4eb9 0004 5ffc jsr 45ffc <_Internal_error_Occurred> <== NOT EXECUTED _Configuration_Table = configuration_table; /* * Initialize any target architecture specific support as early as possible */ _CPU_Initialize( _Thread_Dispatch ); 4542a: 4879 0004 6bb8 pea 46bb8 <_Thread_Dispatch> <== NOT EXECUTED ); /* * Provide pointers just for later convenience. */ _Configuration_Table = configuration_table; 45430: 23ca 0005 7f16 movel %a2,57f16 <_Configuration_Table> <== NOT EXECUTED /* * Initialize any target architecture specific support as early as possible */ _CPU_Initialize( _Thread_Dispatch ); 45436: 4eb9 0004 802c jsr 4802c <_CPU_Initialize> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Handler_initialization ( bool is_multiprocessing ) { _System_state_Current = SYSTEM_STATE_BEFORE_INITIALIZATION; 4543c: 42b9 0005 800e clrl 5800e <_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(); 45442: 4eb9 0004 a128 jsr 4a128 <_Debug_Manager_initialization> <== NOT EXECUTED _API_extensions_Initialization(); 45448: 4eb9 0004 579c jsr 4579c <_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( 4544e: 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; 45452: 7001 moveq #1,%d0 <== NOT EXECUTED 45454: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED 4545a: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 4545c: 4eb9 0004 7ef2 jsr 47ef2 <_Workspace_Handler_initialization> <== NOT EXECUTED (void *)configuration_table->work_space_start, configuration_table->work_space_size ); _User_extensions_Handler_initialization( 45462: 2f2a 003a movel %a2@(58),%sp@- <== NOT EXECUTED 45466: 2f2a 0036 movel %a2@(54),%sp@- <== NOT EXECUTED 4546a: 4eb9 0004 7a50 jsr 47a50 <_User_extensions_Handler_initialization> <== NOT EXECUTED configuration_table->number_of_initial_extensions, configuration_table->User_extension_table ); _ISR_Handler_initialization(); 45470: 4eb9 0004 6058 jsr 46058 <_ISR_Handler_initialization> <== NOT EXECUTED _Objects_Handler_initialization( 45476: 4eb9 0004 66fc jsr 466fc <_Objects_Handler_initialization> <== NOT EXECUTED _Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects; /* * Initialize the internal allocator Mutex */ _API_Mutex_Initialization( 1 ); 4547c: 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; 45480: 203c 0005 7e92 movel #360082,%d0 <== NOT EXECUTED 45486: 23c0 0005 7e38 movel %d0,57e38 <_Objects_Information_table+0x4> <== NOT EXECUTED /* * Initialize the internal allocator Mutex */ _API_Mutex_Initialization( 1 ); 4548c: 4eb9 0004 5900 jsr 45900 <_API_Mutex_Initialization> <== NOT EXECUTED _API_Mutex_Allocate( &_RTEMS_Allocator_Mutex ); 45492: 4879 0005 7f32 pea 57f32 <_RTEMS_Allocator_Mutex> <== NOT EXECUTED 45498: 4eb9 0004 585c jsr 4585c <_API_Mutex_Allocate> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Priority_Handler_initialization( void ) { size_t index; _Priority_Major_bit_map = 0; 4549e: 4240 clrw %d0 <== NOT EXECUTED 454a0: 33c0 0005 7f30 movew %d0,57f30 <_Priority_Major_bit_map> <== NOT EXECUTED 454a6: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 454ac: 41f9 0005 7fa0 lea 57fa0 <_Priority_Bit_map>,%a0 <== NOT EXECUTED for ( index=0 ; index <16 ; index++ ) _Priority_Bit_map[ index ] = 0; 454b2: 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++ ) 454b4: b1fc 0005 7fc0 cmpal #360384,%a0 <== NOT EXECUTED 454ba: 66f6 bnes 454b2 <== NOT EXECUTED _Priority_Handler_initialization(); _Watchdog_Handler_initialization(); 454bc: 4eb9 0004 7d50 jsr 47d50 <_Watchdog_Handler_initialization> <== NOT EXECUTED _TOD_Handler_initialization( configuration_table->microseconds_per_tick ); 454c2: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 454c6: 4eb9 0004 5d74 jsr 45d74 <_TOD_Handler_initialization> <== NOT EXECUTED _Thread_Handler_initialization( 454cc: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 454d0: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 454d4: 4eb9 0004 6f4c jsr 46f4c <_Thread_Handler_initialization> <== NOT EXECUTED ); #endif /* MANAGERS */ _RTEMS_API_Initialize( configuration_table ); 454da: 2f0a movel %a2,%sp@- <== NOT EXECUTED 454dc: 4eb9 0004 5708 jsr 45708 <_RTEMS_API_Initialize> <== NOT EXECUTED _Extension_Manager_initialization( configuration_table->maximum_extensions ); 454e2: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 454e6: 4eb9 0004 5550 jsr 45550 <_Extension_Manager_initialization> <== NOT EXECUTED _IO_Manager_initialization( 454ec: 2f2a 002a movel %a2@(42),%sp@- <== NOT EXECUTED 454f0: 2f2a 002e movel %a2@(46),%sp@- <== NOT EXECUTED 454f4: 2f2a 0032 movel %a2@(50),%sp@- <== NOT EXECUTED 454f8: 4eb9 0004 55ca jsr 455ca <_IO_Manager_initialization> <== NOT EXECUTED configuration_table->number_of_device_drivers, configuration_table->maximum_drivers ); #ifdef RTEMS_POSIX_API _POSIX_API_Initialize( configuration_table ); 454fe: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 45504: 2e8a movel %a2,%sp@ <== NOT EXECUTED 45506: 4eb9 0004 565c jsr 4565c <_POSIX_API_Initialize> <== 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(); 4550c: 588f addql #4,%sp <== NOT EXECUTED /* * Scheduling can properly occur now as long as we avoid dispatching. */ } 4550e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45512: 4e5e unlk %fp <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Set ( System_state_Codes state ) { _System_state_Current = state; 45514: 7001 moveq #1,%d0 <== NOT EXECUTED 45516: 23c0 0005 800e movel %d0,5800e <_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(); 4551c: 4ef9 0004 6ac8 jmp 46ac8 <_Thread_Create_idle> <== NOT EXECUTED ... 000453e4 : _API_extensions_Run_predriver(); } void rtems_initialize_device_drivers(void) { 453e4: 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(); 453e8: 4eb9 0004 5594 jsr 45594 <_IO_Initialize_all_drivers> <== NOT EXECUTED * * The API extensions are supposed to create user initialization tasks. */ _API_extensions_Run_postdriver(); } 453ee: 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(); 453f0: 4ef9 0004 57e6 jmp 457e6 <_API_extensions_Run_postdriver> <== NOT EXECUTED 000453d0 : _API_extensions_Run_postdriver(); } void rtems_initialize_start_multitasking(void) { 453d0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ****** APPLICATION RUNS HERE ****** ****** RETURNS WHEN SYSTEM IS SHUT DOWN ****** ******************************************************************* ******************************************************************* *******************************************************************/ } 453d4: 4e5e unlk %fp <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Set ( System_state_Codes state ) { _System_state_Current = state; 453d6: 7002 moveq #2,%d0 <== NOT EXECUTED 453d8: 23c0 0005 800e movel %d0,5800e <_System_state_Current> <== NOT EXECUTED void rtems_initialize_start_multitasking(void) { _System_state_Set( SYSTEM_STATE_BEGIN_MULTITASKING ); _Thread_Start_multitasking(); 453de: 4ef9 0004 7744 jmp 47744 <_Thread_Start_multitasking> <== NOT EXECUTED 00044bd0 : rtems_status_code rtems_interrupt_catch( rtems_isr_entry new_isr_handler, rtems_vector_number vector, rtems_isr_entry *old_isr_handler ) { 44bd0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44bd4: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 44bd8: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 44bdc: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED if ( !_ISR_Is_vector_number_valid( vector ) ) 44be0: b1fc 0000 00ff cmpal #255,%a0 <== NOT EXECUTED 44be6: 6304 blss 44bec <== NOT EXECUTED 44be8: 700a moveq #10,%d0 <== NOT EXECUTED 44bea: 6020 bras 44c0c <== NOT EXECUTED return RTEMS_INVALID_NUMBER; if ( !_ISR_Is_valid_user_handler( (void *) new_isr_handler ) ) 44bec: 4a81 tstl %d1 <== NOT EXECUTED 44bee: 671a beqs 44c0a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_ISR_Is_valid_user_handler( (void *) old_isr_handler ) ) 44bf0: 4a80 tstl %d0 <== NOT EXECUTED 44bf2: 6716 beqs 44c0a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _ISR_Install_vector( 44bf4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44bf6: 2f01 movel %d1,%sp@- <== NOT EXECUTED 44bf8: 2f08 movel %a0,%sp@- <== NOT EXECUTED 44bfa: 4eb9 0004 8066 jsr 48066 <_CPU_ISR_install_vector> <== NOT EXECUTED 44c00: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44c06: 4280 clrl %d0 <== NOT EXECUTED 44c08: 6002 bras 44c0c <== NOT EXECUTED vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler ); return RTEMS_SUCCESSFUL; 44c0a: 7009 moveq #9,%d0 <== NOT EXECUTED } 44c0c: 4e5e unlk %fp <== NOT EXECUTED 44c0e: 4e75 rts 00045610 : */ #undef rtems_interrupt_disable rtems_interrupt_level rtems_interrupt_disable( void ) { 45610: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_interrupt_level previous_level; _ISR_Disable( previous_level ); 45614: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 4561a: 40c0 movew %sr,%d0 <== NOT EXECUTED 4561c: 8280 orl %d0,%d1 <== NOT EXECUTED 4561e: 46c1 movew %d1,%sr <== NOT EXECUTED return previous_level; } 45620: 4e5e unlk %fp <== NOT EXECUTED 45622: 4e75 rts 00045624 : #undef rtems_interrupt_enable void rtems_interrupt_enable( rtems_interrupt_level previous_level ) { 45624: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _ISR_Enable( previous_level ); 45628: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4562c: 46c0 movew %d0,%sr <== NOT EXECUTED } 4562e: 4e5e unlk %fp <== NOT EXECUTED 45630: 4e75 rts 00045632 : #undef rtems_interrupt_flash void rtems_interrupt_flash( rtems_interrupt_level previous_level ) { 45632: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _ISR_Flash( previous_level ); 45636: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 4563c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 45640: 46c0 movew %d0,%sr <== NOT EXECUTED 45642: 8280 orl %d0,%d1 <== NOT EXECUTED 45644: 46c1 movew %d1,%sr <== NOT EXECUTED } 45646: 4e5e unlk %fp <== NOT EXECUTED 45648: 4e75 rts 0004564a : #undef rtems_interrupt_is_in_progress bool rtems_interrupt_is_in_progress( void ) { return _ISR_Is_in_progress(); 4564a: 2039 0005 9f1a movel 59f1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED */ #undef rtems_interrupt_is_in_progress bool rtems_interrupt_is_in_progress( void ) { 45650: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _ISR_Is_in_progress(); 45654: 4a80 tstl %d0 <== NOT EXECUTED 45656: 56c0 sne %d0 <== NOT EXECUTED } 45658: 4e5e unlk %fp <== NOT EXECUTED 4565a: 4480 negl %d0 <== NOT EXECUTED 4565c: 4e75 rts <== NOT EXECUTED ... 0004b3fc : rtems_status_code rtems_io_close( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4b3fc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b400: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4b402: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4b406: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b408: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4b40c: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4b410: b4b9 0005 8716 cmpl 58716 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4b416: 6504 bcss 4b41c <== NOT EXECUTED 4b418: 700a moveq #10,%d0 <== NOT EXECUTED 4b41a: 602c bras 4b448 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].close_entry; 4b41c: 2002 movel %d2,%d0 <== NOT EXECUTED 4b41e: 2202 movel %d2,%d1 <== NOT EXECUTED 4b420: 2079 0005 871a moveal 5871a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4b426: e788 lsll #3,%d0 <== NOT EXECUTED 4b428: eb89 lsll #5,%d1 <== NOT EXECUTED 4b42a: 9280 subl %d0,%d1 <== NOT EXECUTED 4b42c: 2030 1808 movel %a0@(00000008,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4b430: 6716 beqs 4b448 <== NOT EXECUTED 4b432: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4b436: 2240 moveal %d0,%a1 <== NOT EXECUTED 4b438: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4b43c: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4b440: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b442: 261f movel %sp@+,%d3 <== NOT EXECUTED 4b444: 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; 4b446: 4ed1 jmp %a1@ <== NOT EXECUTED } 4b448: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b44a: 261f movel %sp@+,%d3 <== NOT EXECUTED 4b44c: 4e5e unlk %fp <== NOT EXECUTED 4b44e: 4e75 rts 0004b450 : rtems_status_code rtems_io_control( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4b450: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b454: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4b456: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4b45a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b45c: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4b460: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4b464: b4b9 0005 8716 cmpl 58716 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4b46a: 6504 bcss 4b470 <== NOT EXECUTED 4b46c: 700a moveq #10,%d0 <== NOT EXECUTED 4b46e: 602c bras 4b49c <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].control_entry; 4b470: 2002 movel %d2,%d0 <== NOT EXECUTED 4b472: 2202 movel %d2,%d1 <== NOT EXECUTED 4b474: 2079 0005 871a moveal 5871a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4b47a: e788 lsll #3,%d0 <== NOT EXECUTED 4b47c: eb89 lsll #5,%d1 <== NOT EXECUTED 4b47e: 9280 subl %d0,%d1 <== NOT EXECUTED 4b480: 2030 1814 movel %a0@(00000014,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4b484: 6716 beqs 4b49c <== NOT EXECUTED 4b486: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4b48a: 2240 moveal %d0,%a1 <== NOT EXECUTED 4b48c: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4b490: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4b494: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b496: 261f movel %sp@+,%d3 <== NOT EXECUTED 4b498: 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; 4b49a: 4ed1 jmp %a1@ <== NOT EXECUTED } 4b49c: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b49e: 261f movel %sp@+,%d3 <== NOT EXECUTED 4b4a0: 4e5e unlk %fp <== NOT EXECUTED 4b4a2: 4e75 rts 0004a174 : rtems_status_code rtems_io_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4a174: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a178: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a17a: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 4a17e: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4a182: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4a186: b2b9 0005 8716 cmpl 58716 <_IO_Number_of_drivers>,%d1 <== NOT EXECUTED 4a18c: 6504 bcss 4a192 <== NOT EXECUTED 4a18e: 700a moveq #10,%d0 <== NOT EXECUTED 4a190: 602a bras 4a1bc <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].initialization_entry; 4a192: 2079 0005 871a moveal 5871a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4a198: 2001 movel %d1,%d0 <== NOT EXECUTED 4a19a: e788 lsll #3,%d0 <== NOT EXECUTED 4a19c: 91c0 subal %d0,%a0 <== NOT EXECUTED 4a19e: 2001 movel %d1,%d0 <== NOT EXECUTED 4a1a0: eb88 lsll #5,%d0 <== NOT EXECUTED 4a1a2: 2030 0800 movel %a0@(00000000,%d0:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4a1a6: 6714 beqs 4a1bc <== NOT EXECUTED 4a1a8: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4a1ac: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a1ae: 2d42 000c movel %d2,%fp@(12) <== NOT EXECUTED 4a1b2: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 4a1b6: 241f movel %sp@+,%d2 <== NOT EXECUTED 4a1b8: 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; 4a1ba: 4ed1 jmp %a1@ <== NOT EXECUTED } 4a1bc: 241f movel %sp@+,%d2 <== NOT EXECUTED 4a1be: 4e5e unlk %fp <== NOT EXECUTED 4a1c0: 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 b794 jsr 4b794 <__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 d124 jsr 4d124 <== 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 0004b4a4 : rtems_status_code rtems_io_open( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4b4a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b4a8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4b4aa: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4b4ae: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b4b0: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4b4b4: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4b4b8: b4b9 0005 8716 cmpl 58716 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4b4be: 6504 bcss 4b4c4 <== NOT EXECUTED 4b4c0: 700a moveq #10,%d0 <== NOT EXECUTED 4b4c2: 602c bras 4b4f0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].open_entry; 4b4c4: 2002 movel %d2,%d0 <== NOT EXECUTED 4b4c6: 2202 movel %d2,%d1 <== NOT EXECUTED 4b4c8: 2079 0005 871a moveal 5871a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4b4ce: e788 lsll #3,%d0 <== NOT EXECUTED 4b4d0: eb89 lsll #5,%d1 <== NOT EXECUTED 4b4d2: 9280 subl %d0,%d1 <== NOT EXECUTED 4b4d4: 2030 1804 movel %a0@(00000004,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4b4d8: 6716 beqs 4b4f0 <== NOT EXECUTED 4b4da: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4b4de: 2240 moveal %d0,%a1 <== NOT EXECUTED 4b4e0: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4b4e4: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4b4e8: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b4ea: 261f movel %sp@+,%d3 <== NOT EXECUTED 4b4ec: 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; 4b4ee: 4ed1 jmp %a1@ <== NOT EXECUTED } 4b4f0: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b4f2: 261f movel %sp@+,%d3 <== NOT EXECUTED 4b4f4: 4e5e unlk %fp <== NOT EXECUTED 4b4f6: 4e75 rts 0004b4f8 : rtems_status_code rtems_io_read( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4b4f8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b4fc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4b4fe: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4b502: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b504: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4b508: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4b50c: b4b9 0005 8716 cmpl 58716 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4b512: 6504 bcss 4b518 <== NOT EXECUTED 4b514: 700a moveq #10,%d0 <== NOT EXECUTED 4b516: 602c bras 4b544 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].read_entry; 4b518: 2002 movel %d2,%d0 <== NOT EXECUTED 4b51a: 2202 movel %d2,%d1 <== NOT EXECUTED 4b51c: 2079 0005 871a moveal 5871a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4b522: e788 lsll #3,%d0 <== NOT EXECUTED 4b524: eb89 lsll #5,%d1 <== NOT EXECUTED 4b526: 9280 subl %d0,%d1 <== NOT EXECUTED 4b528: 2030 180c movel %a0@(0000000c,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4b52c: 6716 beqs 4b544 <== NOT EXECUTED 4b52e: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4b532: 2240 moveal %d0,%a1 <== NOT EXECUTED 4b534: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4b538: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4b53c: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b53e: 261f movel %sp@+,%d3 <== NOT EXECUTED 4b540: 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; 4b542: 4ed1 jmp %a1@ <== NOT EXECUTED } 4b544: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b546: 261f movel %sp@+,%d3 <== NOT EXECUTED 4b548: 4e5e unlk %fp <== NOT EXECUTED 4b54a: 4e75 rts 000461d8 : 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 ) { 461d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 461dc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 461de: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 461e2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 461e4: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 461e8: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED /* * Validate the pointer data and contents passed in */ if ( !driver_table ) 461ec: 4a89 tstl %a1 <== NOT EXECUTED 461ee: 6700 00aa beqw 4629a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !registered_major ) 461f2: 4a8a tstl %a2 <== NOT EXECUTED 461f4: 6700 00a4 beqw 4629a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !driver_table->initialization_entry && !driver_table->open_entry ) 461f8: 4a91 tstl %a1@ <== NOT EXECUTED 461fa: 6608 bnes 46204 <== NOT EXECUTED 461fc: 4aa9 0004 tstl %a1@(4) <== NOT EXECUTED 46200: 6700 0098 beqw 4629a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; *registered_major = 0; 46204: 4292 clrl %a2@ <== NOT EXECUTED /* * The requested major number is higher than what is configured. */ if ( major >= _IO_Number_of_drivers ) 46206: 2239 0005 a0a2 movel 5a0a2 <_IO_Number_of_drivers>,%d1 <== NOT EXECUTED 4620c: b282 cmpl %d2,%d1 <== NOT EXECUTED 4620e: 6206 bhis 46216 <== NOT EXECUTED 46210: 700a moveq #10,%d0 <== NOT EXECUTED 46212: 6000 008c braw 462a0 <== NOT EXECUTED /* * Test for initialise/open being present to indicate the driver slot is * in use. */ if ( major == 0 ) { 46216: 4a82 tstl %d2 <== NOT EXECUTED 46218: 6632 bnes 4624c <== NOT EXECUTED bool found = false; for ( major = _IO_Number_of_drivers - 1 ; major ; major-- ) { 4621a: 2079 0005 a0a6 moveal 5a0a6 <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 46220: 2001 movel %d1,%d0 <== NOT EXECUTED 46222: 2401 movel %d1,%d2 <== NOT EXECUTED 46224: e789 lsll #3,%d1 <== NOT EXECUTED 46226: eb88 lsll #5,%d0 <== NOT EXECUTED 46228: 91c1 subal %d1,%a0 <== NOT EXECUTED 4622a: 5382 subql #1,%d2 <== NOT EXECUTED 4622c: 41f0 08e8 lea %a0@(ffffffe8,%d0:l),%a0 <== NOT EXECUTED 46230: 6012 bras 46244 <== NOT EXECUTED if ( !_IO_Driver_address_table[major].initialization_entry && 46232: 4a90 tstl %a0@ <== NOT EXECUTED 46234: 6606 bnes 4623c <== NOT EXECUTED 46236: 4aa8 0004 tstl %a0@(4) <== NOT EXECUTED 4623a: 6710 beqs 4624c <== NOT EXECUTED * in use. */ if ( major == 0 ) { bool found = false; for ( major = _IO_Number_of_drivers - 1 ; major ; major-- ) { 4623c: 5382 subql #1,%d2 <== NOT EXECUTED 4623e: d1fc ffff ffe8 addal #-24,%a0 <== NOT EXECUTED 46244: 4a82 tstl %d2 <== NOT EXECUTED 46246: 66ea bnes 46232 <== NOT EXECUTED 46248: 7005 moveq #5,%d0 <== NOT EXECUTED 4624a: 6054 bras 462a0 <== NOT EXECUTED if ( !found ) return RTEMS_TOO_MANY; } if ( _IO_Driver_address_table[major].initialization_entry || 4624c: 2202 movel %d2,%d1 <== NOT EXECUTED 4624e: 2002 movel %d2,%d0 <== NOT EXECUTED 46250: 2079 0005 a0a6 moveal 5a0a6 <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 46256: e789 lsll #3,%d1 <== NOT EXECUTED 46258: eb88 lsll #5,%d0 <== NOT EXECUTED 4625a: 9081 subl %d1,%d0 <== NOT EXECUTED 4625c: d1c0 addal %d0,%a0 <== NOT EXECUTED 4625e: 4a90 tstl %a0@ <== NOT EXECUTED 46260: 663c bnes 4629e <== NOT EXECUTED 46262: 4aa8 0004 tstl %a0@(4) <== NOT EXECUTED 46266: 6636 bnes 4629e <== NOT EXECUTED _IO_Driver_address_table[major].open_entry ) return RTEMS_RESOURCE_IN_USE; _IO_Driver_address_table[major] = *driver_table; 46268: 4878 0018 pea 18 <== NOT EXECUTED 4626c: 2f09 movel %a1,%sp@- <== NOT EXECUTED 4626e: 2f08 movel %a0,%sp@- <== NOT EXECUTED 46270: 4eb9 0004 ca08 jsr 4ca08 <== NOT EXECUTED *registered_major = major; 46276: 2482 movel %d2,%a2@ <== NOT EXECUTED return rtems_io_initialize( major, 0, NULL ); } 46278: 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 ); 4627c: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 46280: 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 ); 46284: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4628a: 42ae 0010 clrl %fp@(16) <== NOT EXECUTED 4628e: 42ae 000c clrl %fp@(12) <== NOT EXECUTED } 46292: 4e5e unlk %fp <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); 46294: 4ef9 0004 6018 jmp 46018 <== NOT EXECUTED 4629a: 7009 moveq #9,%d0 <== NOT EXECUTED 4629c: 6002 bras 462a0 <== NOT EXECUTED 4629e: 700c moveq #12,%d0 <== NOT EXECUTED } 462a0: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 462a4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 462a8: 4e5e unlk %fp <== NOT EXECUTED 462aa: 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 000462ac : */ rtems_status_code rtems_io_unregister_driver( rtems_device_major_number major ) { 462ac: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 462b0: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED if ( major < _IO_Number_of_drivers ) { 462b4: b2b9 0005 a0a2 cmpl 5a0a2 <_IO_Number_of_drivers>,%d1 <== NOT EXECUTED 462ba: 6504 bcss 462c0 <== NOT EXECUTED 462bc: 700d moveq #13,%d0 <== NOT EXECUTED 462be: 6024 bras 462e4 <== NOT EXECUTED memset( 462c0: 4878 0018 pea 18 <== NOT EXECUTED 462c4: 2001 movel %d1,%d0 <== NOT EXECUTED 462c6: e789 lsll #3,%d1 <== NOT EXECUTED 462c8: eb88 lsll #5,%d0 <== NOT EXECUTED 462ca: 9081 subl %d1,%d0 <== NOT EXECUTED 462cc: d0b9 0005 a0a6 addl 5a0a6 <_IO_Driver_address_table>,%d0 <== NOT EXECUTED 462d2: 42a7 clrl %sp@- <== NOT EXECUTED 462d4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 462d6: 4eb9 0004 ca78 jsr 4ca78 <== NOT EXECUTED 462dc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 462e2: 4280 clrl %d0 <== NOT EXECUTED sizeof( rtems_driver_address_table ) ); return RTEMS_SUCCESSFUL; } return RTEMS_UNSATISFIED; } 462e4: 4e5e unlk %fp <== NOT EXECUTED 462e6: 4e75 rts 0004b54c : rtems_status_code rtems_io_write( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4b54c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b550: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4b552: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4b556: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b558: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4b55c: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4b560: b4b9 0005 8716 cmpl 58716 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4b566: 6504 bcss 4b56c <== NOT EXECUTED 4b568: 700a moveq #10,%d0 <== NOT EXECUTED 4b56a: 602c bras 4b598 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].write_entry; 4b56c: 2002 movel %d2,%d0 <== NOT EXECUTED 4b56e: 2202 movel %d2,%d1 <== NOT EXECUTED 4b570: 2079 0005 871a moveal 5871a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4b576: e788 lsll #3,%d0 <== NOT EXECUTED 4b578: eb89 lsll #5,%d1 <== NOT EXECUTED 4b57a: 9280 subl %d0,%d1 <== NOT EXECUTED 4b57c: 2030 1810 movel %a0@(00000010,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4b580: 6716 beqs 4b598 <== NOT EXECUTED 4b582: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4b586: 2240 moveal %d0,%a1 <== NOT EXECUTED 4b588: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4b58c: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4b590: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b592: 261f movel %sp@+,%d3 <== NOT EXECUTED 4b594: 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; 4b596: 4ed1 jmp %a1@ <== NOT EXECUTED } 4b598: 241f movel %sp@+,%d2 <== NOT EXECUTED 4b59a: 261f movel %sp@+,%d3 <== NOT EXECUTED 4b59c: 4e5e unlk %fp <== NOT EXECUTED 4b59e: 4e75 rts 0004718c : #include #include void rtems_iterate_over_all_threads(rtems_per_thread_routine routine) { 4718c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 47190: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 47194: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED uint32_t i; uint32_t api_index; Thread_Control *the_thread; Objects_Information *information; if ( !routine ) 47198: 4a8c tstl %a4 <== NOT EXECUTED 4719a: 673e beqs 471da <== NOT EXECUTED return; 4719c: 47f9 0006 2150 lea 62150 <_Objects_Information_table+0x4>,%a3 <== NOT EXECUTED for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) { if ( !_Objects_Information_table[ api_index ] ) 471a2: 2053 moveal %a3@,%a0 <== NOT EXECUTED 471a4: 4a88 tstl %a0 <== NOT EXECUTED 471a6: 6728 beqs 471d0 <== NOT EXECUTED continue; information = _Objects_Information_table[ api_index ][ 1 ]; 471a8: 2468 0004 moveal %a0@(4),%a2 <== NOT EXECUTED if ( information ) { 471ac: 4a8a tstl %a2 <== NOT EXECUTED 471ae: 6720 beqs 471d0 <== NOT EXECUTED 471b0: 7401 moveq #1,%d2 <== NOT EXECUTED 471b2: 6012 bras 471c6 <== NOT EXECUTED for ( i=1 ; i <= information->maximum ; i++ ) { the_thread = (Thread_Control *)information->local_table[ i ]; 471b4: 206a 001a moveal %a2@(26),%a0 <== NOT EXECUTED 471b8: 2030 2c00 movel %a0@(00000000,%d2:l:4),%d0 <== NOT EXECUTED if ( !the_thread ) 471bc: 6706 beqs 471c4 <== NOT EXECUTED continue; (*routine)(the_thread); 471be: 2f00 movel %d0,%sp@- <== NOT EXECUTED 471c0: 4e94 jsr %a4@ <== NOT EXECUTED 471c2: 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++ ) { 471c4: 5282 addql #1,%d2 <== NOT EXECUTED 471c6: 4280 clrl %d0 <== NOT EXECUTED 471c8: 302a 000e movew %a2@(14),%d0 <== NOT EXECUTED 471cc: b082 cmpl %d2,%d0 <== NOT EXECUTED 471ce: 64e4 bccs 471b4 <== NOT EXECUTED 471d0: 588b addql #4,%a3 <== NOT EXECUTED if ( !routine ) return; for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; 471d2: b7fc 0006 2160 cmpal #401760,%a3 <== NOT EXECUTED 471d8: 66c8 bnes 471a2 <== NOT EXECUTED (*routine)(the_thread); } } } } 471da: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 471e0: 4e5e unlk %fp <== NOT EXECUTED 471e2: 4e75 rts 0004921e : * 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 ) { 4921e: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 49222: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49224: 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 ); 49226: 42a7 clrl %sp@- <== NOT EXECUTED 49228: 42a7 clrl %sp@- <== NOT EXECUTED 4922a: 2f39 0005 7d1c movel 57d1c ,%sp@- <== NOT EXECUTED 49230: 4eb9 0004 4e4c jsr 44e4c <== NOT EXECUTED if (rtems_libio_iop_freelist) { 49236: 2039 0005 7d18 movel 57d18 ,%d0 <== NOT EXECUTED 4923c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49242: 676e beqs 492b2 <== NOT EXECUTED rc = rtems_semaphore_create( 49244: 486e fffc pea %fp@(-4) <== NOT EXECUTED 49248: 90b9 0005 7d14 subl 57d14 ,%d0 <== NOT EXECUTED 4924e: 42a7 clrl %sp@- <== NOT EXECUTED 49250: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 49256: 4878 0054 pea 54 <== NOT EXECUTED 4925a: e480 asrl #2,%d0 <== NOT EXECUTED 4925c: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 49260: 4878 0001 pea 1 <== NOT EXECUTED 49264: 0080 4c42 4900 oril #1279412480,%d0 <== NOT EXECUTED 4926a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4926c: 4eb9 0004 4c10 jsr 44c10 <== NOT EXECUTED 1, RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY, RTEMS_NO_PRIORITY, &sema ); if (rc != RTEMS_SUCCESSFUL) 49272: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 49278: 4a80 tstl %d0 <== NOT EXECUTED 4927a: 6636 bnes 492b2 <== NOT EXECUTED goto failed; iop = rtems_libio_iop_freelist; 4927c: 2479 0005 7d18 moveal 57d18 ,%a2 <== NOT EXECUTED next = iop->data1; 49282: 242a 0028 movel %a2@(40),%d2 <== NOT EXECUTED (void) memset( iop, 0, sizeof(rtems_libio_t) ); 49286: 4878 0034 pea 34 <== NOT EXECUTED 4928a: 42a7 clrl %sp@- <== NOT EXECUTED 4928c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4928e: 4eb9 0004 bfbc jsr 4bfbc <== NOT EXECUTED iop->flags = LIBIO_FLAGS_OPEN; iop->sem = sema; 49294: 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; 4929a: 203c 0000 0100 movel #256,%d0 <== NOT EXECUTED iop->sem = sema; rtems_libio_iop_freelist = next; 492a0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 492a6: 23c2 0005 7d18 movel %d2,57d18 <== 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; 492ac: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED 492b0: 6002 bras 492b4 <== NOT EXECUTED } failed: iop = 0; done: 492b2: 95ca subal %a2,%a2 <== NOT EXECUTED rtems_semaphore_release( rtems_libio_semaphore ); 492b4: 2f39 0005 7d1c movel 57d1c ,%sp@- <== NOT EXECUTED 492ba: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED return iop; } 492c0: 200a movel %a2,%d0 <== NOT EXECUTED 492c2: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 492c6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 492ca: 4e5e unlk %fp <== NOT EXECUTED 492cc: 4e75 rts 000492ce : }; uint32_t rtems_libio_fcntl_flags( uint32_t fcntl_flags ) { 492ce: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 492d2: 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 ); 492d4: 7003 moveq #3,%d0 <== NOT EXECUTED }; uint32_t rtems_libio_fcntl_flags( uint32_t fcntl_flags ) { 492d6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 492d8: 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 ); 492dc: c082 andl %d2,%d0 <== NOT EXECUTED 492de: 2f00 movel %d0,%sp@- <== NOT EXECUTED 492e0: 4879 0005 542a pea 5542a <== NOT EXECUTED 492e6: 4eb9 0004 af18 jsr 4af18 <== NOT EXECUTED 492ec: 2600 movel %d0,%d3 <== NOT EXECUTED /* * Everything else is single bits */ flags |= 492ee: 70fc moveq #-4,%d0 <== NOT EXECUTED 492f0: c082 andl %d2,%d0 <== NOT EXECUTED 492f2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 492f4: 4879 0005 545a pea 5545a <== NOT EXECUTED 492fa: 4eb9 0004 aed8 jsr 4aed8 <== NOT EXECUTED rtems_assoc_local_by_remote_bitfield(status_flags_assoc, fcntl_flags); return flags; } 49300: 8083 orl %d3,%d0 <== NOT EXECUTED 49302: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 49306: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 4930a: 4e5e unlk %fp <== NOT EXECUTED 4930c: 4e75 rts <== NOT EXECUTED ... 000491be : */ void rtems_libio_free( rtems_libio_t *iop ) { 491be: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 491c2: 2f0a movel %a2,%sp@- <== NOT EXECUTED rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); 491c4: 42a7 clrl %sp@- <== NOT EXECUTED */ void rtems_libio_free( rtems_libio_t *iop ) { 491c6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); 491ca: 42a7 clrl %sp@- <== NOT EXECUTED 491cc: 2f39 0005 7d1c movel 57d1c ,%sp@- <== NOT EXECUTED 491d2: 4eb9 0004 4e4c jsr 44e4c <== NOT EXECUTED if (iop->sem) 491d8: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 491dc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 491e2: 670a beqs 491ee <== NOT EXECUTED rtems_semaphore_delete(iop->sem); 491e4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 491e6: 4eb9 0004 4dac jsr 44dac <== NOT EXECUTED 491ec: 588f addql #4,%sp <== NOT EXECUTED iop->flags &= ~LIBIO_FLAGS_OPEN; iop->data1 = rtems_libio_iop_freelist; 491ee: 41f9 0005 7d18 lea 57d18 ,%a0 <== NOT EXECUTED 491f4: 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; 491f8: 203c ffff feff movel #-257,%d0 <== NOT EXECUTED iop->data1 = rtems_libio_iop_freelist; rtems_libio_iop_freelist = iop; 491fe: 23ca 0005 7d18 movel %a2,57d18 <== NOT EXECUTED rtems_semaphore_release(rtems_libio_semaphore); 49204: 41f9 0005 7d1c lea 57d1c ,%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; 4920a: 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); } 4920e: 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); 49212: 2d50 0008 movel %a0@,%fp@(8) <== NOT EXECUTED } 49216: 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); 49218: 4ef9 0004 4f54 jmp 44f54 <== NOT EXECUTED 00042204 : { rtems_status_code rc; int i; rtems_libio_t *iop; if (rtems_libio_number_iops > 0) 42204: 2039 0005 6248 movel 56248 ,%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 8d9c jsr 48d9c <== 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 7d14 movel %d0,57d14 <== 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 7d18 movel %d0,57d18 <== NOT EXECUTED for (i = 0 ; i < (rtems_libio_number_iops - 1) ; i++, iop++) 42238: 2039 0005 6248 movel 56248 ,%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 7d1c pea 57d1c <== 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 4c10 jsr 44c10 <== 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 5580 jsr 45580 <== 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 8c8c jmp 48c8c <== NOT EXECUTED ... 000490e2 : */ int rtems_libio_is_file_open( void *node_access ) { 490e2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 490e6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 490e8: 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 ); 490ec: 42a7 clrl %sp@- <== NOT EXECUTED 490ee: 42a7 clrl %sp@- <== NOT EXECUTED 490f0: 2f39 0005 7d1c movel 57d1c ,%sp@- <== NOT EXECUTED 490f6: 4eb9 0004 4e4c jsr 44e4c <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 490fc: 2079 0005 7d14 moveal 57d14 ,%a0 <== NOT EXECUTED 49102: 2279 0005 6248 moveal 56248 ,%a1 <== NOT EXECUTED 49108: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4910e: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 49114: 4281 clrl %d1 <== NOT EXECUTED 49116: 601c bras 49134 <== NOT EXECUTED if ((iop->flags & LIBIO_FLAGS_OPEN) != 0) { 49118: 2010 movel %a0@,%d0 <== NOT EXECUTED 4911a: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 49120: 670a beqs 4912c <== NOT EXECUTED /* * Check if this node is under the file system that we * are trying to dismount. */ if ( iop->pathinfo.node_access == node_access ) { 49122: b4a8 0004 cmpl %a0@(4),%d2 <== NOT EXECUTED 49126: 6604 bnes 4912c <== NOT EXECUTED 49128: 7401 moveq #1,%d2 <== NOT EXECUTED 4912a: 600e bras 4913a <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4912c: 5281 addql #1,%d1 <== NOT EXECUTED 4912e: d1fc 0000 0034 addal #52,%a0 <== NOT EXECUTED 49134: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 49136: 62e0 bhis 49118 <== NOT EXECUTED 49138: 4282 clrl %d2 <== NOT EXECUTED break; } } } rtems_semaphore_release( rtems_libio_semaphore ); 4913a: 2f39 0005 7d1c movel 57d1c ,%sp@- <== NOT EXECUTED 49140: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED return result; } 49146: 2002 movel %d2,%d0 <== NOT EXECUTED 49148: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4914c: 4e5e unlk %fp <== NOT EXECUTED 4914e: 4e75 rts 00049150 : */ int rtems_libio_is_open_files_in_fs( rtems_filesystem_mount_table_entry_t * fs_mt_entry ) { 49150: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49154: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49156: 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 ); 4915a: 42a7 clrl %sp@- <== NOT EXECUTED 4915c: 42a7 clrl %sp@- <== NOT EXECUTED 4915e: 2f39 0005 7d1c movel 57d1c ,%sp@- <== NOT EXECUTED 49164: 4eb9 0004 4e4c jsr 44e4c <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4916a: 2079 0005 7d14 moveal 57d14 ,%a0 <== NOT EXECUTED 49170: 2279 0005 6248 moveal 56248 ,%a1 <== NOT EXECUTED 49176: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4917c: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 49182: 4281 clrl %d1 <== NOT EXECUTED 49184: 601c bras 491a2 <== NOT EXECUTED if ((iop->flags & LIBIO_FLAGS_OPEN) != 0) { 49186: 2010 movel %a0@,%d0 <== NOT EXECUTED 49188: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 4918e: 670a beqs 4919a <== 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 ) { 49190: b4a8 0010 cmpl %a0@(16),%d2 <== NOT EXECUTED 49194: 6604 bnes 4919a <== NOT EXECUTED 49196: 7401 moveq #1,%d2 <== NOT EXECUTED 49198: 600e bras 491a8 <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4919a: 5281 addql #1,%d1 <== NOT EXECUTED 4919c: d1fc 0000 0034 addal #52,%a0 <== NOT EXECUTED 491a2: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 491a4: 62e0 bhis 49186 <== NOT EXECUTED 491a6: 4282 clrl %d2 <== NOT EXECUTED break; } } } rtems_semaphore_release( rtems_libio_semaphore ); 491a8: 2f39 0005 7d1c movel 57d1c ,%sp@- <== NOT EXECUTED 491ae: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED return result; } 491b4: 2002 movel %d2,%d0 <== NOT EXECUTED 491b6: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 491ba: 4e5e unlk %fp <== NOT EXECUTED 491bc: 4e75 rts 0005c428 : rtems_filesystem_freenode( &env->root_directory); free(env); } } rtems_status_code rtems_libio_set_private_env(void) { 5c428: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 5c42c: 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); 5c430: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5c434: 42a7 clrl %sp@- <== NOT EXECUTED 5c436: 42a7 clrl %sp@- <== NOT EXECUTED 5c438: 4eb9 0005 db70 jsr 5db70 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 5c43e: 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); 5c444: 2600 movel %d0,%d3 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 5c446: 6600 00f4 bnew 5c53c <== NOT EXECUTED /* Only for the first time a malloc is necesary */ if (rtems_current_user_env==&rtems_global_user_env) { 5c44a: 203c 0009 3e9c movel #605852,%d0 <== NOT EXECUTED 5c450: b0b9 0007 e600 cmpl 7e600 ,%d0 <== NOT EXECUTED 5c456: 664c bnes 5c4a4 <== NOT EXECUTED rtems_user_env_t *tmp = malloc(sizeof(rtems_user_env_t)); 5c458: 4878 0040 pea 40 <== NOT EXECUTED 5c45c: 4eb9 0004 58e4 jsr 458e4 <== NOT EXECUTED if (!tmp) 5c462: 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)); 5c464: 2400 movel %d0,%d2 <== NOT EXECUTED if (!tmp) 5c466: 6608 bnes 5c470 <== NOT EXECUTED 5c468: 163c 001a moveb #26,%d3 <== NOT EXECUTED 5c46c: 6000 00ce braw 5c53c <== 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); 5c470: 487a feba pea %pc@(5c32c ) <== NOT EXECUTED 5c474: 4879 0007 e600 pea 7e600 <== NOT EXECUTED 5c47a: 42a7 clrl %sp@- <== NOT EXECUTED 5c47c: 4eb9 0005 dee0 jsr 5dee0 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 5c482: 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); 5c488: 2440 moveal %d0,%a2 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 5c48a: 4a80 tstl %d0 <== NOT EXECUTED 5c48c: 6710 beqs 5c49e <== NOT EXECUTED /* don't use free_user_env because the pathlocs are * not initialized yet */ free(tmp); 5c48e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c490: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 5c496: 260a movel %a2,%d3 <== NOT EXECUTED 5c498: 588f addql #4,%sp <== NOT EXECUTED 5c49a: 6000 00a0 braw 5c53c <== NOT EXECUTED return sc; } rtems_current_user_env = tmp; 5c49e: 23c2 0007 e600 movel %d2,7e600 <== NOT EXECUTED }; *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ 5c4a4: 4878 0040 pea 40 <== NOT EXECUTED 5c4a8: 45f9 0006 aeec lea 6aeec ,%a2 <== NOT EXECUTED 5c4ae: 4879 0009 3e9c pea 93e9c <== 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); 5c4b4: 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*/ 5c4b6: 2f39 0007 e600 movel 7e600 ,%sp@- <== NOT EXECUTED 5c4bc: 4e92 jsr %a2@ <== NOT EXECUTED rtems_current_user_env->task_id=task_id; /* mark the local values*/ 5c4be: 2079 0007 e600 moveal 7e600 ,%a0 <== NOT EXECUTED 5c4c4: 20ae fffc movel %fp@(-4),%a0@ <== NOT EXECUTED /* get a clean root */ rtems_filesystem_root = THE_ROOT_FS_LOC; 5c4c8: 2039 0009 37d4 movel 937d4 ,%d0 <== NOT EXECUTED 5c4ce: 4878 0010 pea 10 <== NOT EXECUTED 5c4d2: 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); 5c4d8: 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; 5c4de: 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); 5c4e0: 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; 5c4e6: 4868 0014 pea %a0@(20) <== NOT EXECUTED 5c4ea: 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); 5c4ec: 42a7 clrl %sp@- <== NOT EXECUTED 5c4ee: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c4f0: 42a7 clrl %sp@- <== NOT EXECUTED 5c4f2: 4879 0007 b5b8 pea 7b5b8 <== NOT EXECUTED 5c4f8: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_root = loc; 5c4fa: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED 5c500: 4878 0010 pea 10 <== NOT EXECUTED 5c504: 2039 0007 e600 movel 7e600 ,%d0 <== NOT EXECUTED 5c50a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c50c: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 5c512: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c514: 4e92 jsr %a2@ <== NOT EXECUTED rtems_filesystem_evaluate_path("/", 0, &loc, 0); 5c516: 42a7 clrl %sp@- <== NOT EXECUTED 5c518: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c51a: 42a7 clrl %sp@- <== NOT EXECUTED 5c51c: 4879 0007 b5b8 pea 7b5b8 <== NOT EXECUTED 5c522: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_current = loc; 5c524: 4878 0010 pea 10 <== NOT EXECUTED 5c528: 2039 0007 e600 movel 7e600 ,%d0 <== NOT EXECUTED 5c52e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c530: 5880 addql #4,%d0 <== NOT EXECUTED 5c532: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c534: 4e92 jsr %a2@ <== NOT EXECUTED 5c536: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 5c53c: 2003 movel %d3,%d0 <== NOT EXECUTED 5c53e: 4cee 0c0c ffdc moveml %fp@(-36),%d2-%d3/%a2-%a3 <== NOT EXECUTED 5c544: 4e5e unlk %fp <== NOT EXECUTED 5c546: 4e75 rts 0005c386 : * 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) { 5c386: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 5c38a: 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); 5c38c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 5c390: 42a7 clrl %sp@- <== NOT EXECUTED 5c392: 42a7 clrl %sp@- <== NOT EXECUTED 5c394: 4eb9 0005 db70 jsr 5db70 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 5c39a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c3a0: 4a80 tstl %d0 <== NOT EXECUTED 5c3a2: 667c bnes 5c420 <== NOT EXECUTED if (rtems_current_user_env->task_id==current_task_id) { 5c3a4: 2479 0007 e600 moveal 7e600 ,%a2 <== NOT EXECUTED 5c3aa: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 5c3ae: b092 cmpl %a2@,%d0 <== NOT EXECUTED 5c3b0: 661c bnes 5c3ce <== 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); 5c3b2: 4879 0007 e600 pea 7e600 <== NOT EXECUTED 5c3b8: 42a7 clrl %sp@- <== NOT EXECUTED 5c3ba: 4eb9 0005 df74 jsr 5df74 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 5c3c0: 508f addql #8,%sp <== NOT EXECUTED 5c3c2: 4a80 tstl %d0 <== NOT EXECUTED 5c3c4: 665a bnes 5c420 <== NOT EXECUTED free_user_env(tmp); 5c3c6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5c3c8: 4eba ff62 jsr %pc@(5c32c ) <== NOT EXECUTED 5c3cc: 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, 5c3ce: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5c3d2: 4879 0007 e600 pea 7e600 <== NOT EXECUTED 5c3d8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c3dc: 4eb9 0005 dfec jsr 5dfec <== NOT EXECUTED (void*)&shared_user_env ); if (sc != RTEMS_SUCCESSFUL) 5c3e2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c3e8: 4a80 tstl %d0 <== NOT EXECUTED 5c3ea: 6628 bnes 5c414 <== NOT EXECUTED goto bailout; sc = rtems_task_variable_add(RTEMS_SELF,(void*)&rtems_current_user_env,free_user_env); 5c3ec: 487a ff3e pea %pc@(5c32c ) <== NOT EXECUTED 5c3f0: 4879 0007 e600 pea 7e600 <== NOT EXECUTED 5c3f6: 42a7 clrl %sp@- <== NOT EXECUTED 5c3f8: 4eb9 0005 dee0 jsr 5dee0 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 5c3fe: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c404: 4a80 tstl %d0 <== NOT EXECUTED 5c406: 660c bnes 5c414 <== NOT EXECUTED goto bailout; /* the current_user_env is the same pointer that remote env */ rtems_current_user_env = shared_user_env; 5c408: 41ee fffc lea %fp@(-4),%a0 <== NOT EXECUTED 5c40c: 23d0 0007 e600 movel %a0@,7e600 <== NOT EXECUTED 5c412: 600c bras 5c420 <== NOT EXECUTED return RTEMS_SUCCESSFUL; bailout: /* fallback to the global env */ rtems_current_user_env = &rtems_global_user_env; 5c414: 223c 0009 3e9c movel #605852,%d1 <== NOT EXECUTED 5c41a: 23c1 0007 e600 movel %d1,7e600 <== NOT EXECUTED return sc; } 5c420: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 5c424: 4e5e unlk %fp <== NOT EXECUTED 5c426: 4e75 rts 00049094 : */ uint32_t rtems_libio_to_fcntl_flags( uint32_t flags ) { 49094: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49098: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 4909c: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t fcntl_flags = 0; if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) { 4909e: 7006 moveq #6,%d0 <== NOT EXECUTED 490a0: c081 andl %d1,%d0 <== NOT EXECUTED 490a2: 7406 moveq #6,%d2 <== NOT EXECUTED 490a4: b480 cmpl %d0,%d2 <== NOT EXECUTED 490a6: 6604 bnes 490ac <== NOT EXECUTED 490a8: 7002 moveq #2,%d0 <== NOT EXECUTED 490aa: 6012 bras 490be <== NOT EXECUTED fcntl_flags |= O_RDWR; } else if ( (flags & LIBIO_FLAGS_READ) == LIBIO_FLAGS_READ) { 490ac: 0801 0001 btst #1,%d1 <== NOT EXECUTED 490b0: 6704 beqs 490b6 <== NOT EXECUTED 490b2: 4280 clrl %d0 <== NOT EXECUTED 490b4: 6008 bras 490be <== NOT EXECUTED 490b6: 2001 movel %d1,%d0 <== NOT EXECUTED 490b8: e488 lsrl #2,%d0 <== NOT EXECUTED 490ba: 7401 moveq #1,%d2 <== NOT EXECUTED 490bc: 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 ) { 490be: 0801 0000 btst #0,%d1 <== NOT EXECUTED 490c2: 6704 beqs 490c8 <== NOT EXECUTED fcntl_flags |= O_NONBLOCK; 490c4: 08c0 000e bset #14,%d0 <== NOT EXECUTED } if ( (flags & LIBIO_FLAGS_APPEND) == LIBIO_FLAGS_APPEND ) { 490c8: 0801 0009 btst #9,%d1 <== NOT EXECUTED 490cc: 6704 beqs 490d2 <== NOT EXECUTED fcntl_flags |= O_APPEND; 490ce: 7408 moveq #8,%d2 <== NOT EXECUTED 490d0: 8082 orl %d2,%d0 <== NOT EXECUTED } if ( (flags & LIBIO_FLAGS_CREATE) == LIBIO_FLAGS_CREATE ) { 490d2: 0801 000a btst #10,%d1 <== NOT EXECUTED 490d6: 6704 beqs 490dc <== NOT EXECUTED fcntl_flags |= O_CREAT; 490d8: 08c0 0009 bset #9,%d0 <== NOT EXECUTED } return fcntl_flags; } 490dc: 241f movel %sp@+,%d2 <== NOT EXECUTED 490de: 4e5e unlk %fp <== NOT EXECUTED 490e0: 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 3750 pea 93750 <== NOT EXECUTED 4599c: 4eb9 0004 a4d8 jsr 4a4d8 <_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 37d0 addl %d1,937d0 <== NOT EXECUTED 459b8: 2439 0009 37cc movel 937cc ,%d2 <== NOT EXECUTED 459be: d580 addxl %d0,%d2 <== NOT EXECUTED 459c0: 23c2 0009 37cc movel %d2,937cc <== 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 3750 pea 93750 <== NOT EXECUTED 459ee: 4eb9 0004 a4d8 jsr 4a4d8 <_Protected_heap_Get_block_size> <== NOT EXECUTED MSBUMP(lifetime_allocated, actual_size); 459f4: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 459f8: 2039 0009 37c4 movel 937c4 ,%d0 <== NOT EXECUTED 459fe: d6b9 0009 37c8 addl 937c8 ,%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 37d0 subl 937d0 ,%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 37c4 movel %d2,937c4 <== NOT EXECUTED 45a14: 23c3 0009 37c8 movel %d3,937c8 <== 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 37c0 cmpl 937c0 ,%d0 <== NOT EXECUTED 45a26: 6306 blss 45a2e <== NOT EXECUTED s->max_depth = current_depth; 45a28: 23c0 0009 37c0 movel %d0,937c0 <== 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 37a8 pea 937a8 <== NOT EXECUTED 45a4a: 4eb9 0006 b05c jsr 6b05c <== NOT EXECUTED 45a50: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 45a56: 4e5e unlk %fp <== NOT EXECUTED 45a58: 4e75 rts <== NOT EXECUTED ... 00045350 : int rtems_memalign( void **pointer, size_t alignment, size_t size ) { 45350: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45354: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45356: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4535a: 2f02 movel %d2,%sp@- <== NOT EXECUTED void *return_this; /* * Parameter error checks */ if ( !pointer ) 4535c: 4a8a tstl %a2 <== NOT EXECUTED 4535e: 6758 beqs 453b8 <== NOT EXECUTED return EINVAL; *pointer = NULL; 45360: 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()) && 45362: 7003 moveq #3,%d0 <== NOT EXECUTED 45364: b0b9 0005 b982 cmpl 5b982 <_System_state_Current>,%d0 <== NOT EXECUTED 4536a: 660a bnes 45376 <== NOT EXECUTED 4536c: 4eb9 0004 45e0 jsr 445e0 <== NOT EXECUTED 45372: 4a00 tstb %d0 <== NOT EXECUTED 45374: 6742 beqs 453b8 <== NOT EXECUTED /* * * If some free's have been deferred, then do them now. */ malloc_deferred_frees_process(); 45376: 4eb9 0004 463a jsr 4463a <== NOT EXECUTED /* * Perform the aligned allocation requested */ return_this = _Protected_heap_Allocate_aligned( 4537c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45380: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 45384: 4879 0005 b694 pea 5b694 <== NOT EXECUTED 4538a: 4eb9 0004 9678 jsr 49678 <_Protected_heap_Allocate_aligned> <== NOT EXECUTED &RTEMS_Malloc_Heap, size, alignment ); if ( !return_this ) 45390: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Perform the aligned allocation requested */ return_this = _Protected_heap_Allocate_aligned( 45396: 2400 movel %d0,%d2 <== NOT EXECUTED &RTEMS_Malloc_Heap, size, alignment ); if ( !return_this ) 45398: 6604 bnes 4539e <== NOT EXECUTED 4539a: 700c moveq #12,%d0 <== NOT EXECUTED 4539c: 601c bras 453ba <== NOT EXECUTED return ENOMEM; /* * If configured, update the more involved statistics */ if ( rtems_malloc_statistics_helpers ) 4539e: 2079 0005 a1a4 moveal 5a1a4 ,%a0 <== NOT EXECUTED 453a4: 4a88 tstl %a0 <== NOT EXECUTED 453a6: 670a beqs 453b2 <== NOT EXECUTED (*rtems_malloc_statistics_helpers->at_malloc)(pointer); 453a8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 453aa: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 453ae: 4e90 jsr %a0@ <== NOT EXECUTED 453b0: 588f addql #4,%sp <== NOT EXECUTED */ if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif *pointer = return_this; 453b2: 2482 movel %d2,%a2@ <== NOT EXECUTED 453b4: 4280 clrl %d0 <== NOT EXECUTED 453b6: 6002 bras 453ba <== NOT EXECUTED return 0; 453b8: 7016 moveq #22,%d0 <== NOT EXECUTED } 453ba: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 453be: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 453c2: 4e5e unlk %fp <== NOT EXECUTED 453c4: 4e75 rts <== NOT EXECUTED ... 0004cfe8 : Objects_Id id, const void *buffer, size_t size, uint32_t *count ) { 4cfe8: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4cfec: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 4cff0: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4cff4: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4cff8: 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 ) 4cffc: 4a84 tstl %d4 <== NOT EXECUTED 4cffe: 6756 beqs 4d056 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !count ) 4d000: 4a82 tstl %d2 <== NOT EXECUTED 4d002: 6752 beqs 4d056 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (Message_queue_Control *) 4d004: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d008: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d00a: 4879 0006 e27e pea 6e27e <_Message_queue_Information> <== NOT EXECUTED 4d010: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4d016: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d01c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d01e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d022: 6704 beqs 4d028 <== NOT EXECUTED 4d024: 7004 moveq #4,%d0 <== NOT EXECUTED 4d026: 6030 bras 4d058 <== NOT EXECUTED case OBJECTS_LOCAL: core_status = _CORE_message_queue_Broadcast( 4d028: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d02a: 42a7 clrl %sp@- <== NOT EXECUTED 4d02c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d02e: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4d032: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d034: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4d038: 4eb9 0005 0174 jsr 50174 <_CORE_message_queue_Broadcast> <== NOT EXECUTED 4d03e: 2400 movel %d0,%d2 <== NOT EXECUTED NULL, #endif count ); _Thread_Enable_dispatch(); 4d040: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED return 4d046: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d048: 4eb9 0004 d384 jsr 4d384 <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 4d04e: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 4d054: 6002 bras 4d058 <== NOT EXECUTED 4d056: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d058: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 4d05e: 4e5e unlk %fp <== NOT EXECUTED 4d060: 4e75 rts <== NOT EXECUTED ... 0004d064 : uint32_t count, size_t max_message_size, rtems_attribute attribute_set, Objects_Id *id ) { 4d064: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 4d068: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 4d06c: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 4d070: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4d074: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4d078: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED 4d07c: 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 ) ) 4d080: 4a85 tstl %d5 <== NOT EXECUTED 4d082: 6606 bnes 4d08a <== NOT EXECUTED 4d084: 7003 moveq #3,%d0 <== NOT EXECUTED 4d086: 6000 00a6 braw 4d12e <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 4d08a: 4a8c tstl %a4 <== NOT EXECUTED 4d08c: 6606 bnes 4d094 <== NOT EXECUTED 4d08e: 7009 moveq #9,%d0 <== NOT EXECUTED 4d090: 6000 009c braw 4d12e <== NOT EXECUTED if ( (is_global = _Attributes_Is_global( attribute_set ) ) && !_System_state_Is_multiprocessing ) return RTEMS_MP_NOT_CONFIGURED; #endif if ( count == 0 ) 4d094: 4a84 tstl %d4 <== NOT EXECUTED 4d096: 6606 bnes 4d09e <== NOT EXECUTED 4d098: 700a moveq #10,%d0 <== NOT EXECUTED 4d09a: 6000 0092 braw 4d12e <== NOT EXECUTED return RTEMS_INVALID_NUMBER; if ( max_message_size == 0 ) 4d09e: 4a83 tstl %d3 <== NOT EXECUTED 4d0a0: 6606 bnes 4d0a8 <== NOT EXECUTED 4d0a2: 7008 moveq #8,%d0 <== NOT EXECUTED 4d0a4: 6000 0088 braw 4d12e <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4d0a8: 2039 0006 da18 movel 6da18 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4d0ae: 5280 addql #1,%d0 <== NOT EXECUTED 4d0b0: 23c0 0006 da18 movel %d0,6da18 <_Thread_Dispatch_disable_level> <== NOT EXECUTED #endif #endif _Thread_Disable_dispatch(); /* protects object pointer */ the_message_queue = _Message_queue_Allocate(); 4d0b6: 4eb9 0005 53a0 jsr 553a0 <_Message_queue_Allocate> <== NOT EXECUTED 4d0bc: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !the_message_queue ) { 4d0be: 4a80 tstl %d0 <== NOT EXECUTED 4d0c0: 660a bnes 4d0cc <== NOT EXECUTED _Thread_Enable_dispatch(); 4d0c2: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4d0c8: 7005 moveq #5,%d0 <== NOT EXECUTED 4d0ca: 6062 bras 4d12e <== 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; 4d0cc: 44c2 movew %d2,%ccr <== NOT EXECUTED 4d0ce: 56c0 sne %d0 <== NOT EXECUTED 4d0d0: 49c0 extbl %d0 <== NOT EXECUTED 4d0d2: 204e moveal %fp,%a0 <== NOT EXECUTED 4d0d4: 5280 addql #1,%d0 <== NOT EXECUTED 4d0d6: 2100 movel %d0,%a0@- <== NOT EXECUTED 4d0d8: 47f9 0005 1fae lea 51fae <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } #endif the_message_queue->attribute_set = attribute_set; 4d0de: 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( 4d0e2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d0e4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d0e6: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4d0e8: 486a 0014 pea %a2@(20) <== NOT EXECUTED 4d0ec: 4eb9 0005 02a8 jsr 502a8 <_CORE_message_queue_Initialize> <== NOT EXECUTED 4d0f2: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4d0f8: 4a00 tstb %d0 <== NOT EXECUTED 4d0fa: 6616 bnes 4d112 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Message_queue_Free ( Message_queue_Control *the_message_queue ) { _Objects_Free( &_Message_queue_Information, &the_message_queue->Object ); 4d0fc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d0fe: 4879 0006 e27e pea 6e27e <_Message_queue_Information> <== NOT EXECUTED 4d104: 4eb9 0005 1634 jsr 51634 <_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(); 4d10a: 4e93 jsr %a3@ <== NOT EXECUTED 4d10c: 508f addql #8,%sp <== NOT EXECUTED 4d10e: 700d moveq #13,%d0 <== NOT EXECUTED 4d110: 601c bras 4d12e <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4d112: 2545 000c movel %d5,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4d116: 2079 0006 e298 moveal 6e298 <_Message_queue_Information+0x1a>,%a0 <== NOT EXECUTED 4d11c: 4280 clrl %d0 <== NOT EXECUTED 4d11e: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED &_Message_queue_Information, &the_message_queue->Object, (Objects_Name) name ); *id = the_message_queue->Object.id; 4d122: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED 4d126: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED name, 0 ); #endif _Thread_Enable_dispatch(); 4d12a: 4e93 jsr %a3@ <== NOT EXECUTED 4d12c: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4d12e: 4cee 1c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4d134: 4e5e unlk %fp <== NOT EXECUTED 4d136: 4e75 rts 0004f5a0 : */ rtems_status_code rtems_message_queue_delete( Objects_Id id ) { 4f5a0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4f5a4: 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 *) 4f5a6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f5aa: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f5ae: 4879 0006 44aa pea 644aa <_Message_queue_Information> <== NOT EXECUTED 4f5b4: 4eb9 0004 a0e4 jsr 4a0e4 <_Objects_Get> <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4f5ba: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f5c0: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f5c2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f5c6: 6704 beqs 4f5cc <== NOT EXECUTED 4f5c8: 7004 moveq #4,%d0 <== NOT EXECUTED 4f5ca: 603a bras 4f606 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Message_queue_Information, 4f5cc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f5ce: 4879 0006 44aa pea 644aa <_Message_queue_Information> <== NOT EXECUTED 4f5d4: 4eb9 0004 9d0c jsr 49d0c <_Objects_Close> <== NOT EXECUTED &the_message_queue->Object ); _CORE_message_queue_Close( 4f5da: 4878 0005 pea 5 <== NOT EXECUTED 4f5de: 42a7 clrl %sp@- <== NOT EXECUTED 4f5e0: 486a 0014 pea %a2@(20) <== NOT EXECUTED 4f5e4: 4eb9 0004 fba4 jsr 4fba4 <_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 ); 4f5ea: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f5ec: 4879 0006 44aa pea 644aa <_Message_queue_Information> <== NOT EXECUTED 4f5f2: 4eb9 0004 9f84 jsr 49f84 <_Objects_Free> <== NOT EXECUTED 0, /* Not used */ 0 ); } #endif _Thread_Enable_dispatch(); 4f5f8: 4eb9 0004 a936 jsr 4a936 <_Thread_Enable_dispatch> <== NOT EXECUTED 4f5fe: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 4f604: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f606: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4f60a: 4e5e unlk %fp <== NOT EXECUTED 4f60c: 4e75 rts <== NOT EXECUTED ... 0004d1a8 : rtems_status_code rtems_message_queue_flush( Objects_Id id, uint32_t *count ) { 4d1a8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d1ac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d1ae: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; if ( !count ) 4d1b2: 4a8a tstl %a2 <== NOT EXECUTED 4d1b4: 6604 bnes 4d1ba <== NOT EXECUTED 4d1b6: 7009 moveq #9,%d0 <== NOT EXECUTED 4d1b8: 603c bras 4d1f6 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (Message_queue_Control *) 4d1ba: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d1be: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d1c2: 4879 0006 e27e pea 6e27e <_Message_queue_Information> <== NOT EXECUTED 4d1c8: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4d1ce: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d1d4: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d1d6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d1da: 6704 beqs 4d1e0 <== NOT EXECUTED 4d1dc: 7004 moveq #4,%d0 <== NOT EXECUTED 4d1de: 6016 bras 4d1f6 <== NOT EXECUTED case OBJECTS_LOCAL: *count = _CORE_message_queue_Flush( &the_message_queue->message_queue ); 4d1e0: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4d1e4: 4eb9 0005 022c jsr 5022c <_CORE_message_queue_Flush> <== NOT EXECUTED 4d1ea: 2480 movel %d0,%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4d1ec: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4d1f2: 588f addql #4,%sp <== NOT EXECUTED 4d1f4: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d1f6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4d1fa: 4e5e unlk %fp <== NOT EXECUTED 4d1fc: 4e75 rts <== NOT EXECUTED ... 0004d200 : rtems_status_code rtems_message_queue_get_number_pending( Objects_Id id, uint32_t *count ) { 4d200: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d204: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d206: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; if ( !count ) 4d20a: 4a8a tstl %a2 <== NOT EXECUTED 4d20c: 6604 bnes 4d212 <== NOT EXECUTED 4d20e: 7009 moveq #9,%d0 <== NOT EXECUTED 4d210: 6032 bras 4d244 <== NOT EXECUTED 4d212: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d216: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d21a: 4879 0006 e27e pea 6e27e <_Message_queue_Information> <== NOT EXECUTED 4d220: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4d226: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d22c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d22e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d232: 6704 beqs 4d238 <== NOT EXECUTED 4d234: 7004 moveq #4,%d0 <== NOT EXECUTED 4d236: 600c bras 4d244 <== NOT EXECUTED case OBJECTS_LOCAL: *count = the_message_queue->message_queue.number_of_pending_messages; 4d238: 24a8 005c movel %a0@(92),%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4d23c: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4d242: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d244: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4d248: 4e5e unlk %fp <== NOT EXECUTED 4d24a: 4e75 rts 0004f610 : rtems_status_code rtems_message_queue_ident( rtems_name name, uint32_t node, Objects_Id *id ) { 4f610: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 4f614: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4f618: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4f61c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f620: 4879 0006 44aa pea 644aa <_Message_queue_Information> <== NOT EXECUTED 4f626: 4eb9 0004 a248 jsr 4a248 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4f62c: 41f9 0005 ed88 lea 5ed88 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED node, id ); return _Status_Object_name_errors_to_status[ status ]; } 4f632: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4f636: 4e5e unlk %fp <== NOT EXECUTED 4f638: 4e75 rts <== NOT EXECUTED ... 0004f63c : void *buffer, size_t *size, rtems_option option_set, rtems_interval timeout ) { 4f63c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4f640: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 4f644: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4f648: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4f64c: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; bool wait; if ( !buffer ) 4f650: 4a84 tstl %d4 <== NOT EXECUTED 4f652: 6766 beqs 4f6ba <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !size ) 4f654: 4a83 tstl %d3 <== NOT EXECUTED 4f656: 6762 beqs 4f6ba <== NOT EXECUTED RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (Message_queue_Control *) 4f658: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f65c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f660: 4879 0006 44aa pea 644aa <_Message_queue_Information> <== NOT EXECUTED 4f666: 4eb9 0004 a0e4 jsr 4a0e4 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4f66c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f672: 2040 moveal %d0,%a0 <== NOT EXECUTED 4f674: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f678: 6704 beqs 4f67e <== NOT EXECUTED 4f67a: 7004 moveq #4,%d0 <== NOT EXECUTED 4f67c: 603e bras 4f6bc <== NOT EXECUTED if ( _Options_Is_no_wait( option_set ) ) wait = false; else wait = true; _CORE_message_queue_Seize( 4f67e: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 4f682: 7001 moveq #1,%d0 <== NOT EXECUTED 4f684: b182 eorl %d0,%d2 <== NOT EXECUTED 4f686: c082 andl %d2,%d0 <== NOT EXECUTED 4f688: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f68a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f68c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4f68e: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4f692: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4f696: 4eb9 0004 fc44 jsr 4fc44 <_CORE_message_queue_Seize> <== NOT EXECUTED buffer, size, wait, timeout ); _Thread_Enable_dispatch(); 4f69c: 4eb9 0004 a936 jsr 4a936 <_Thread_Enable_dispatch> <== NOT EXECUTED return _Message_queue_Translate_core_message_queue_return_code( 4f6a2: 2079 0006 3ca2 moveal 63ca2 <_Thread_Executing>,%a0 <== NOT EXECUTED 4f6a8: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 4f6ac: 4eb9 0004 f748 jsr 4f748 <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 4f6b2: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 4f6b8: 6002 bras 4f6bc <== NOT EXECUTED 4f6ba: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f6bc: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 4f6c2: 4e5e unlk %fp <== NOT EXECUTED 4f6c4: 4e75 rts <== NOT EXECUTED ... 0004f6c8 : rtems_status_code rtems_message_queue_send( Objects_Id id, const void *buffer, size_t size ) { 4f6c8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4f6cc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f6ce: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4f6d2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f6d4: 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 ) 4f6d8: 4a83 tstl %d3 <== NOT EXECUTED 4f6da: 6604 bnes 4f6e0 <== NOT EXECUTED 4f6dc: 7009 moveq #9,%d0 <== NOT EXECUTED 4f6de: 605a bras 4f73a <== NOT EXECUTED 4f6e0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f6e4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f6e6: 4879 0006 44aa pea 644aa <_Message_queue_Information> <== NOT EXECUTED 4f6ec: 4eb9 0004 a0e4 jsr 4a0e4 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4f6f2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f6f8: 2040 moveal %d0,%a0 <== NOT EXECUTED 4f6fa: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f6fe: 6704 beqs 4f704 <== NOT EXECUTED 4f700: 7004 moveq #4,%d0 <== NOT EXECUTED 4f702: 6036 bras 4f73a <== NOT EXECUTED CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, bool wait, Watchdog_Interval timeout ) { return _CORE_message_queue_Submit( 4f704: 42a7 clrl %sp@- <== NOT EXECUTED 4f706: 42a7 clrl %sp@- <== NOT EXECUTED 4f708: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 4f70e: 42a7 clrl %sp@- <== NOT EXECUTED 4f710: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f712: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4f716: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f718: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4f71c: 4eb9 0004 fd84 jsr 4fd84 <_CORE_message_queue_Submit> <== NOT EXECUTED MESSAGE_QUEUE_MP_HANDLER, FALSE, /* sender does not block */ 0 /* no timeout */ ); _Thread_Enable_dispatch(); 4f722: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 4f728: 2400 movel %d0,%d2 <== NOT EXECUTED 4f72a: 4eb9 0004 a936 jsr 4a936 <_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); 4f730: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f732: 4eb9 0004 f748 jsr 4f748 <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 4f738: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f73a: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4f73e: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 4f742: 4e5e unlk %fp <== NOT EXECUTED 4f744: 4e75 rts <== NOT EXECUTED ... 0004d39c : rtems_status_code rtems_message_queue_urgent( Objects_Id id, const void *buffer, size_t size ) { 4d39c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d3a0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d3a2: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4d3a6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d3a8: 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 ) 4d3ac: 4a83 tstl %d3 <== NOT EXECUTED 4d3ae: 6604 bnes 4d3b4 <== NOT EXECUTED 4d3b0: 7009 moveq #9,%d0 <== NOT EXECUTED 4d3b2: 605a bras 4d40e <== NOT EXECUTED 4d3b4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d3b8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d3ba: 4879 0006 e27e pea 6e27e <_Message_queue_Information> <== NOT EXECUTED 4d3c0: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 4d3c6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d3cc: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d3ce: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d3d2: 6704 beqs 4d3d8 <== NOT EXECUTED 4d3d4: 7004 moveq #4,%d0 <== NOT EXECUTED 4d3d6: 6036 bras 4d40e <== NOT EXECUTED CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, bool wait, Watchdog_Interval timeout ) { return _CORE_message_queue_Submit( 4d3d8: 42a7 clrl %sp@- <== NOT EXECUTED 4d3da: 42a7 clrl %sp@- <== NOT EXECUTED 4d3dc: 2f3c 8000 0000 movel #-2147483648,%sp@- <== NOT EXECUTED 4d3e2: 42a7 clrl %sp@- <== NOT EXECUTED 4d3e4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d3e6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4d3ea: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d3ec: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4d3f0: 4eb9 0005 04a4 jsr 504a4 <_CORE_message_queue_Submit> <== NOT EXECUTED id, MESSAGE_QUEUE_MP_HANDLER, FALSE, /* sender does not block */ 0 /* no timeout */ ); _Thread_Enable_dispatch(); 4d3f6: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 4d3fc: 2400 movel %d0,%d2 <== NOT EXECUTED 4d3fe: 4eb9 0005 1fae jsr 51fae <_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); 4d404: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d406: 4eb9 0004 d384 jsr 4d384 <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 4d40c: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d40e: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4d412: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 4d416: 4e5e unlk %fp <== NOT EXECUTED 4d418: 4e75 rts <== NOT EXECUTED ... 00044ea4 : #include int rtems_object_api_maximum_class( uint32_t api ) { 44ea4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_API_maximum_class(api); } 44ea8: 4e5e unlk %fp <== NOT EXECUTED int rtems_object_api_maximum_class( uint32_t api ) { return _Objects_API_maximum_class(api); 44eaa: 4ef9 0004 6430 jmp 46430 <_Objects_API_maximum_class> <== NOT EXECUTED 00044eb0 : #include uint32_t rtems_object_api_minimum_class( uint32_t api ) { 44eb0: 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 ) 44eb4: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 44eb8: 7203 moveq #3,%d1 <== NOT EXECUTED 44eba: 5380 subql #1,%d0 <== NOT EXECUTED 44ebc: b280 cmpl %d0,%d1 <== NOT EXECUTED 44ebe: 55c0 scs %d0 <== NOT EXECUTED 44ec0: 49c0 extbl %d0 <== NOT EXECUTED if ( _Objects_Is_api_valid( api ) ) return 1; return -1; } 44ec2: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 44ec6: 4e5e unlk %fp <== NOT EXECUTED 44ec8: 8081 orl %d1,%d0 <== NOT EXECUTED 44eca: 4e75 rts 00044ecc : const char *rtems_object_get_api_class_name( uint32_t the_api, uint32_t the_class ) { 44ecc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44ed0: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 44ed4: 2f02 movel %d2,%sp@- <== NOT EXECUTED const rtems_assoc_t *api_assoc; const rtems_assoc_t *class_assoc; if ( the_api == OBJECTS_INTERNAL_API ) 44ed6: 203c 0005 7fc4 movel #360388,%d0 <== NOT EXECUTED 44edc: 7401 moveq #1,%d2 <== NOT EXECUTED 44ede: b481 cmpl %d1,%d2 <== NOT EXECUTED 44ee0: 671e beqs 44f00 <== NOT EXECUTED api_assoc = rtems_object_api_internal_assoc; else if ( the_api == OBJECTS_CLASSIC_API ) 44ee2: 7402 moveq #2,%d2 <== NOT EXECUTED 44ee4: 203c 0005 7fdc movel #360412,%d0 <== NOT EXECUTED 44eea: b481 cmpl %d1,%d2 <== NOT EXECUTED 44eec: 6712 beqs 44f00 <== NOT EXECUTED api_assoc = rtems_object_api_classic_assoc; #ifdef RTEMS_POSIX_API else if ( the_api == OBJECTS_POSIX_API ) 44eee: 7403 moveq #3,%d2 <== NOT EXECUTED 44ef0: 203c 0005 67e1 movel #354273,%d0 <== NOT EXECUTED 44ef6: b481 cmpl %d1,%d2 <== NOT EXECUTED 44ef8: 6622 bnes 44f1c <== NOT EXECUTED 44efa: 203c 0005 8054 movel #360532,%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 ); 44f00: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 44f04: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44f06: 4eb9 0004 90c0 jsr 490c0 <== NOT EXECUTED 44f0c: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( class_assoc ) 44f0e: 508f addql #8,%sp <== NOT EXECUTED 44f10: 203c 0005 67e9 movel #354281,%d0 <== NOT EXECUTED 44f16: 4a88 tstl %a0 <== NOT EXECUTED 44f18: 6702 beqs 44f1c <== NOT EXECUTED return class_assoc->name; 44f1a: 2010 movel %a0@,%d0 <== NOT EXECUTED return "BAD CLASS"; } 44f1c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 44f20: 4e5e unlk %fp <== NOT EXECUTED 44f22: 4e75 rts 00044f24 : }; const char *rtems_object_get_api_name( uint32_t api ) { 44f24: 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 ); 44f28: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44f2c: 4879 0005 80e4 pea 580e4 <== NOT EXECUTED 44f32: 4eb9 0004 90c0 jsr 490c0 <== NOT EXECUTED 44f38: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( api_assoc ) 44f3a: 508f addql #8,%sp <== NOT EXECUTED 44f3c: 203c 0005 67e9 movel #354281,%d0 <== NOT EXECUTED 44f42: 4a88 tstl %a0 <== NOT EXECUTED 44f44: 6702 beqs 44f48 <== NOT EXECUTED return api_assoc->name; 44f46: 2010 movel %a0@,%d0 <== NOT EXECUTED return "BAD CLASS"; } 44f48: 4e5e unlk %fp <== NOT EXECUTED 44f4a: 4e75 rts 000461d8 : rtems_status_code rtems_object_get_class_information( uint32_t the_api, uint32_t the_class, rtems_object_api_class_information *info ) { 461d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 461dc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 461de: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 461e2: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t i; /* * Validate parameters and look up information structure. */ if ( !info ) 461e4: 4a8a tstl %a2 <== NOT EXECUTED 461e6: 6604 bnes 461ec <== NOT EXECUTED 461e8: 7009 moveq #9,%d0 <== NOT EXECUTED 461ea: 6052 bras 4623e <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; obj_info = _Objects_Get_information( the_api, the_class ); 461ec: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 461f0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 461f4: 4eb9 0004 7bac jsr 47bac <_Objects_Get_information> <== NOT EXECUTED if ( !obj_info ) 461fa: 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 ); 461fc: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !obj_info ) 461fe: 4a80 tstl %d0 <== NOT EXECUTED 46200: 6604 bnes 46206 <== NOT EXECUTED 46202: 700a moveq #10,%d0 <== NOT EXECUTED 46204: 6038 bras 4623e <== NOT EXECUTED return RTEMS_INVALID_NUMBER; /* * Return information about this object class to the user. */ info->minimum_id = obj_info->minimum_id; 46206: 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; 4620a: 4282 clrl %d2 <== NOT EXECUTED 4620c: 4281 clrl %d1 <== NOT EXECUTED 4620e: 3429 000e movew %a1@(14),%d2 <== NOT EXECUTED 46212: 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; 46214: 2569 000a 0004 movel %a1@(10),%a2@(4) <== NOT EXECUTED info->auto_extend = obj_info->auto_extend; info->maximum = obj_info->maximum; 4621a: 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; 4621e: 1569 0010 000c moveb %a1@(16),%a2@(12) <== NOT EXECUTED 46224: 600e bras 46234 <== NOT EXECUTED info->maximum = obj_info->maximum; for ( unallocated=0, i=1 ; i <= info->maximum ; i++ ) if ( !obj_info->local_table[i] ) 46226: 2069 001a moveal %a1@(26),%a0 <== NOT EXECUTED 4622a: 4ab0 0c00 tstl %a0@(00000000,%d0:l:4) <== NOT EXECUTED 4622e: 6602 bnes 46232 <== NOT EXECUTED unallocated++; 46230: 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++ ) 46232: 5280 addql #1,%d0 <== NOT EXECUTED 46234: b480 cmpl %d0,%d2 <== NOT EXECUTED 46236: 64ee bccs 46226 <== NOT EXECUTED if ( !obj_info->local_table[i] ) unallocated++; info->unallocated = unallocated; 46238: 4280 clrl %d0 <== NOT EXECUTED 4623a: 2541 000e movel %d1,%a2@(14) <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4623e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46242: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46246: 4e5e unlk %fp <== NOT EXECUTED 46248: 4e75 rts <== NOT EXECUTED ... 0004582c : rtems_status_code rtems_object_get_classic_name( rtems_id id, rtems_name *name ) { 4582c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45830: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45832: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; Objects_Name name_u; if ( !name ) 45836: 4a8a tstl %a2 <== NOT EXECUTED 45838: 6604 bnes 4583e <== NOT EXECUTED 4583a: 7009 moveq #9,%d0 <== NOT EXECUTED 4583c: 601e bras 4585c <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; status = _Objects_Id_to_name( id, &name_u ); 4583e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45842: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45846: 4eb9 0004 725c jsr 4725c <_Objects_Id_to_name> <== NOT EXECUTED *name = name_u.name_u32; return _Status_Object_name_errors_to_status[ status ]; 4584c: 41f9 0005 71d8 lea 571d8 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED 45852: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 45856: 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; 45858: 24ae fffc movel %fp@(-4),%a2@ <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; } 4585c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45860: 4e5e unlk %fp <== NOT EXECUTED 45862: 4e75 rts 0004f7f0 : char *rtems_object_get_name( Objects_Id id, size_t length, char *name ) { 4f7f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Get_name_as_string( id, length, name ); } 4f7f4: 4e5e unlk %fp <== NOT EXECUTED Objects_Id id, size_t length, char *name ) { return _Objects_Get_name_as_string( id, length, name ); 4f7f6: 4ef9 0005 0230 jmp 50230 <_Objects_Get_name_as_string> <== NOT EXECUTED 00046258 : #include #include #undef rtems_object_id_api_maximum uint32_t rtems_object_id_api_maximum(void) { 46258: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return OBJECTS_ITRON_API; } 4625c: 4e5e unlk %fp <== NOT EXECUTED 4625e: 7004 moveq #4,%d0 <== NOT EXECUTED 46260: 4e75 rts <== NOT EXECUTED ... 00046264 : #include #include #undef rtems_object_id_api_minimum uint32_t rtems_object_id_api_minimum(void) { 46264: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return OBJECTS_INTERNAL_API; } 46268: 4e5e unlk %fp <== NOT EXECUTED 4626a: 7001 moveq #1,%d0 <== NOT EXECUTED 4626c: 4e75 rts <== NOT EXECUTED ... 00046270 : #undef rtems_object_id_get_api uint32_t rtems_object_id_get_api( rtems_id id ) { 46270: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46274: 4280 clrl %d0 <== NOT EXECUTED 46276: 102e 0008 moveb %fp@(8),%d0 <== NOT EXECUTED return _Objects_Get_API( id ); } 4627a: 7207 moveq #7,%d1 <== NOT EXECUTED 4627c: 4e5e unlk %fp <== NOT EXECUTED 4627e: c081 andl %d1,%d0 <== NOT EXECUTED 46280: 4e75 rts <== NOT EXECUTED ... 00046284 : #undef rtems_object_id_get_class uint32_t rtems_object_id_get_class( rtems_id id ) { 46284: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46288: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED return _Objects_Get_class( id ); } 4628c: 721b moveq #27,%d1 <== NOT EXECUTED 4628e: 4e5e unlk %fp <== NOT EXECUTED 46290: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 46292: 4e75 rts 00046294 : #undef rtems_object_id_get_index uint32_t rtems_object_id_get_index( rtems_id id ) { 46294: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Get_index( id ); } 46298: 4280 clrl %d0 <== NOT EXECUTED 4629a: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 4629e: 4e5e unlk %fp <== NOT EXECUTED 462a0: 4e75 rts <== NOT EXECUTED ... 000462a4 : #undef rtems_object_id_get_node uint32_t rtems_object_id_get_node( rtems_id id ) { 462a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Get_node( id ); } 462a8: 4280 clrl %d0 <== NOT EXECUTED 462aa: 102e 0009 moveb %fp@(9),%d0 <== NOT EXECUTED 462ae: 4e5e unlk %fp <== NOT EXECUTED 462b0: 4e75 rts <== NOT EXECUTED ... 00044f58 : */ rtems_status_code rtems_object_set_name( rtems_id id, const char *name ) { 44f58: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 44f5c: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 44f60: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 44f64: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED Objects_Information *information; Objects_Locations location; Objects_Control *the_object; Objects_Id tmpId; if ( !name ) 44f68: 6604 bnes 44f6e <== NOT EXECUTED 44f6a: 7009 moveq #9,%d0 <== NOT EXECUTED 44f6c: 6058 bras 44fc6 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 44f6e: 4a80 tstl %d0 <== NOT EXECUTED 44f70: 6704 beqs 44f76 <== NOT EXECUTED 44f72: 2400 movel %d0,%d2 <== NOT EXECUTED 44f74: 600a bras 44f80 <== NOT EXECUTED 44f76: 2079 0005 98c6 moveal 598c6 <_Thread_Executing>,%a0 <== NOT EXECUTED 44f7c: 2428 0008 movel %a0@(8),%d2 <== NOT EXECUTED information = _Objects_Get_information_id( tmpId ); 44f80: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44f82: 4eb9 0004 676c jsr 4676c <_Objects_Get_information_id> <== NOT EXECUTED if ( !information ) 44f88: 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 ); 44f8a: 2600 movel %d0,%d3 <== NOT EXECUTED if ( !information ) 44f8c: 6736 beqs 44fc4 <== NOT EXECUTED return RTEMS_INVALID_ID; the_object = _Objects_Get( information, tmpId, &location ); 44f8e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44f92: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44f94: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44f96: 4eb9 0004 6934 jsr 46934 <_Objects_Get> <== NOT EXECUTED switch ( location ) { 44f9c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44fa2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44fa6: 661c bnes 44fc4 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Set_name( information, the_object, name ); 44fa8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 44faa: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44fac: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44fae: 4eb9 0004 6aa0 jsr 46aa0 <_Objects_Set_name> <== NOT EXECUTED _Thread_Enable_dispatch(); 44fb4: 4eb9 0004 718e jsr 4718e <_Thread_Enable_dispatch> <== NOT EXECUTED 44fba: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44fc0: 4280 clrl %d0 <== NOT EXECUTED 44fc2: 6002 bras 44fc6 <== NOT EXECUTED return RTEMS_SUCCESSFUL; 44fc4: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 44fc6: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 44fcc: 4e5e unlk %fp <== NOT EXECUTED 44fce: 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 0004d41c : uint32_t length, uint32_t buffer_size, rtems_attribute attribute_set, Objects_Id *id ) { 4d41c: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4d420: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 4d424: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 4d428: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4d42c: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 4d430: 262e 0014 movel %fp@(20),%d3 <== NOT EXECUTED 4d434: 286e 001c moveal %fp@(28),%a4 <== NOT EXECUTED register Partition_Control *the_partition; if ( !rtems_is_name_valid( name ) ) 4d438: 4a85 tstl %d5 <== NOT EXECUTED 4d43a: 6606 bnes 4d442 <== NOT EXECUTED 4d43c: 7003 moveq #3,%d0 <== NOT EXECUTED 4d43e: 6000 00b2 braw 4d4f2 <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !starting_address ) 4d442: 4a84 tstl %d4 <== NOT EXECUTED 4d444: 6700 00a6 beqw 4d4ec <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !id ) 4d448: 4a8c tstl %a4 <== NOT EXECUTED 4d44a: 6700 00a0 beqw 4d4ec <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( length == 0 || buffer_size == 0 || length < buffer_size || 4d44e: 4a82 tstl %d2 <== NOT EXECUTED 4d450: 6700 009e beqw 4d4f0 <== NOT EXECUTED 4d454: 4a83 tstl %d3 <== NOT EXECUTED 4d456: 6700 0098 beqw 4d4f0 <== NOT EXECUTED 4d45a: b682 cmpl %d2,%d3 <== NOT EXECUTED 4d45c: 6200 0092 bhiw 4d4f0 <== NOT EXECUTED 4d460: 7003 moveq #3,%d0 <== NOT EXECUTED 4d462: c083 andl %d3,%d0 <== NOT EXECUTED 4d464: 6600 008a bnew 4d4f0 <== NOT EXECUTED !_Partition_Is_buffer_size_aligned( buffer_size ) ) return RTEMS_INVALID_SIZE; if ( !_Addresses_Is_aligned( starting_address ) ) 4d468: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 4d46c: c084 andl %d4,%d0 <== NOT EXECUTED 4d46e: 667c bnes 4d4ec <== NOT EXECUTED 4d470: 2039 0006 da18 movel 6da18 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4d476: 5280 addql #1,%d0 <== NOT EXECUTED 4d478: 23c0 0006 da18 movel %d0,6da18 <_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 ); 4d47e: 4879 0006 d844 pea 6d844 <_Partition_Information> <== NOT EXECUTED 4d484: 4eb9 0005 1334 jsr 51334 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_partition = _Partition_Allocate(); if ( !the_partition ) { 4d48a: 588f addql #4,%sp <== NOT EXECUTED 4d48c: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d48e: 47f9 0005 1fae lea 51fae <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 4d494: 4a80 tstl %d0 <== NOT EXECUTED 4d496: 6606 bnes 4d49e <== NOT EXECUTED _Thread_Enable_dispatch(); 4d498: 4e93 jsr %a3@ <== NOT EXECUTED 4d49a: 7005 moveq #5,%d0 <== NOT EXECUTED 4d49c: 6054 bras 4d4f2 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } #endif the_partition->starting_address = starting_address; 4d49e: 2544 0010 movel %d4,%a2@(16) <== NOT EXECUTED the_partition->length = length; the_partition->buffer_size = buffer_size; the_partition->attribute_set = attribute_set; 4d4a2: 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; 4d4a8: 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, 4d4ac: 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; 4d4b0: 2543 0018 movel %d3,%a2@(24) <== NOT EXECUTED the_partition->attribute_set = attribute_set; the_partition->number_of_used_blocks = 0; 4d4b4: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED _Chain_Initialize( &the_partition->Memory, starting_address, 4d4b8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d4ba: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d4bc: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d4be: 486a 0024 pea %a2@(36) <== NOT EXECUTED 4d4c2: 4eb9 0005 0138 jsr 50138 <_Chain_Initialize> <== NOT EXECUTED 4d4c8: 2079 0006 d85e moveal 6d85e <_Partition_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4d4ce: 2545 000c movel %d5,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4d4d2: 4280 clrl %d0 <== NOT EXECUTED 4d4d4: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 4d4d8: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED &_Partition_Information, &the_partition->Object, (Objects_Name) name ); *id = the_partition->Object.id; 4d4dc: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED name, 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); 4d4e0: 4e93 jsr %a3@ <== NOT EXECUTED 4d4e2: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4d4e8: 4280 clrl %d0 <== NOT EXECUTED 4d4ea: 6006 bras 4d4f2 <== NOT EXECUTED return RTEMS_SUCCESSFUL; 4d4ec: 7009 moveq #9,%d0 <== NOT EXECUTED 4d4ee: 6002 bras 4d4f2 <== NOT EXECUTED 4d4f0: 7008 moveq #8,%d0 <== NOT EXECUTED } 4d4f2: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4d4f8: 4e5e unlk %fp <== NOT EXECUTED 4d4fa: 4e75 rts 0004d4fc : */ rtems_status_code rtems_partition_delete( Objects_Id id ) { 4d4fc: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d500: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4d502: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get ( Objects_Id id, Objects_Locations *location ) { return (Partition_Control *) 4d504: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d508: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d50c: 4879 0006 d844 pea 6d844 <_Partition_Information> <== NOT EXECUTED 4d512: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED register Partition_Control *the_partition; Objects_Locations location; the_partition = _Partition_Get( id, &location ); switch ( location ) { 4d518: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d51e: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d520: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d524: 6704 beqs 4d52a <== NOT EXECUTED 4d526: 7004 moveq #4,%d0 <== NOT EXECUTED 4d528: 6038 bras 4d562 <== NOT EXECUTED 4d52a: 47f9 0005 1fae lea 51fae <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED case OBJECTS_LOCAL: if ( the_partition->number_of_used_blocks == 0 ) { 4d530: 4aaa 0020 tstl %a2@(32) <== NOT EXECUTED 4d534: 6628 bnes 4d55e <== NOT EXECUTED _Objects_Close( &_Partition_Information, &the_partition->Object ); 4d536: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4d538: 4879 0006 d844 pea 6d844 <_Partition_Information> <== NOT EXECUTED 4d53e: 4eb9 0005 13bc jsr 513bc <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Partition_Free ( Partition_Control *the_partition ) { _Objects_Free( &_Partition_Information, &the_partition->Object ); 4d544: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d546: 4879 0006 d844 pea 6d844 <_Partition_Information> <== NOT EXECUTED 4d54c: 4eb9 0005 1634 jsr 51634 <_Objects_Free> <== NOT EXECUTED 0 /* Not used */ ); } #endif _Thread_Enable_dispatch(); 4d552: 4e93 jsr %a3@ <== NOT EXECUTED 4d554: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4d55a: 4280 clrl %d0 <== NOT EXECUTED 4d55c: 6004 bras 4d562 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 4d55e: 4e93 jsr %a3@ <== NOT EXECUTED 4d560: 700c moveq #12,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d562: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4d566: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 4d56a: 4e5e unlk %fp <== NOT EXECUTED 4d56c: 4e75 rts <== NOT EXECUTED ... 0004d570 : rtems_status_code rtems_partition_get_buffer( Objects_Id id, void **buffer ) { 4d570: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4d574: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4d578: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED register Partition_Control *the_partition; Objects_Locations location; void *the_buffer; if ( !buffer ) 4d57c: 4a8b tstl %a3 <== NOT EXECUTED 4d57e: 6604 bnes 4d584 <== NOT EXECUTED 4d580: 7009 moveq #9,%d0 <== NOT EXECUTED 4d582: 604c bras 4d5d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get ( Objects_Id id, Objects_Locations *location ) { return (Partition_Control *) 4d584: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d588: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d58c: 4879 0006 d844 pea 6d844 <_Partition_Information> <== NOT EXECUTED 4d592: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_partition = _Partition_Get( id, &location ); switch ( location ) { 4d598: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d59e: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d5a0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d5a4: 6704 beqs 4d5aa <== NOT EXECUTED 4d5a6: 7004 moveq #4,%d0 <== NOT EXECUTED 4d5a8: 6026 bras 4d5d0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void *_Partition_Allocate_buffer ( Partition_Control *the_partition ) { return _Chain_Get( &the_partition->Memory ); 4d5aa: 486a 0024 pea %a2@(36) <== NOT EXECUTED 4d5ae: 4eb9 0005 0104 jsr 50104 <_Chain_Get> <== NOT EXECUTED case OBJECTS_LOCAL: the_buffer = _Partition_Allocate_buffer( the_partition ); if ( the_buffer ) { 4d5b4: 588f addql #4,%sp <== NOT EXECUTED 4d5b6: 2400 movel %d0,%d2 <== NOT EXECUTED 4d5b8: 41f9 0005 1fae lea 51fae <_Thread_Enable_dispatch>,%a0 <== NOT EXECUTED 4d5be: 670c beqs 4d5cc <== NOT EXECUTED the_partition->number_of_used_blocks += 1; 4d5c0: 52aa 0020 addql #1,%a2@(32) <== NOT EXECUTED _Thread_Enable_dispatch(); 4d5c4: 4e90 jsr %a0@ <== NOT EXECUTED *buffer = the_buffer; 4d5c6: 4280 clrl %d0 <== NOT EXECUTED 4d5c8: 2682 movel %d2,%a3@ <== NOT EXECUTED 4d5ca: 6004 bras 4d5d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 4d5cc: 4e90 jsr %a0@ <== NOT EXECUTED 4d5ce: 700d moveq #13,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d5d0: 4cee 0c04 fff0 moveml %fp@(-16),%d2/%a2-%a3 <== NOT EXECUTED 4d5d6: 4e5e unlk %fp <== NOT EXECUTED 4d5d8: 4e75 rts <== NOT EXECUTED ... 0004d5dc : rtems_status_code rtems_partition_ident( rtems_name name, uint32_t node, Objects_Id *id ) { 4d5dc: 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 ); 4d5e0: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4d5e4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4d5e8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d5ec: 4879 0006 d844 pea 6d844 <_Partition_Information> <== NOT EXECUTED 4d5f2: 4eb9 0005 1930 jsr 51930 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4d5f8: 41f9 0006 6922 lea 66922 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; } 4d5fe: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4d602: 4e5e unlk %fp <== NOT EXECUTED 4d604: 4e75 rts <== NOT EXECUTED ... 0004d608 : rtems_status_code rtems_partition_return_buffer( Objects_Id id, void *buffer ) { 4d608: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4d60c: 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 *) 4d610: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d614: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4d618: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d61c: 4879 0006 d844 pea 6d844 <_Partition_Information> <== NOT EXECUTED 4d622: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED register Partition_Control *the_partition; Objects_Locations location; the_partition = _Partition_Get( id, &location ); switch ( location ) { 4d628: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d62e: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d630: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d634: 6704 beqs 4d63a <== NOT EXECUTED 4d636: 7004 moveq #4,%d0 <== NOT EXECUTED 4d638: 6044 bras 4d67e <== NOT EXECUTED ) { void *starting; void *ending; starting = the_partition->starting_address; 4d63a: 222a 0010 movel %a2@(16),%d1 <== NOT EXECUTED ending = _Addresses_Add_offset( starting, the_partition->length ); 4d63e: 202a 0014 movel %a2@(20),%d0 <== NOT EXECUTED void *address, void *base, void *limit ) { return (address >= base && address <= limit); 4d642: b282 cmpl %d2,%d1 <== NOT EXECUTED 4d644: 6242 bhis 4d688 <== NOT EXECUTED 4d646: d081 addl %d1,%d0 <== NOT EXECUTED 4d648: b082 cmpl %d2,%d0 <== NOT EXECUTED 4d64a: 54c0 scc %d0 <== NOT EXECUTED 4d64c: 49c0 extbl %d0 <== NOT EXECUTED 4d64e: 4480 negl %d0 <== NOT EXECUTED return ( 4d650: 4a00 tstb %d0 <== NOT EXECUTED 4d652: 6734 beqs 4d688 <== NOT EXECUTED 4d654: 2002 movel %d2,%d0 <== NOT EXECUTED 4d656: 9081 subl %d1,%d0 <== NOT EXECUTED 4d658: 2200 movel %d0,%d1 <== NOT EXECUTED 4d65a: 4c6a 1003 0018 remul %a2@(24),%d3,%d1 <== NOT EXECUTED 4d660: 4a83 tstl %d3 <== NOT EXECUTED 4d662: 6624 bnes 4d688 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Partition_Free_buffer ( Partition_Control *the_partition, Chain_Node *the_buffer ) { _Chain_Append( &the_partition->Memory, the_buffer ); 4d664: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d666: 486a 0024 pea %a2@(36) <== NOT EXECUTED 4d66a: 4eb9 0005 00cc jsr 500cc <_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; 4d670: 53aa 0020 subql #1,%a2@(32) <== NOT EXECUTED _Thread_Enable_dispatch(); 4d674: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4d67a: 508f addql #8,%sp <== NOT EXECUTED 4d67c: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d67e: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 4d684: 4e5e unlk %fp <== NOT EXECUTED 4d686: 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(); 4d688: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4d68e: 7009 moveq #9,%d0 <== NOT EXECUTED 4d690: 60ec bras 4d67e <== NOT EXECUTED ... 0004ca68 : void *internal_start, void *external_start, uint32_t length, Objects_Id *id ) { 4ca68: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4ca6c: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 4ca70: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4ca74: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4ca78: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED 4ca7c: 266e 0018 moveal %fp@(24),%a3 <== NOT EXECUTED register Dual_ported_memory_Control *the_port; if ( !rtems_is_name_valid( name) ) 4ca80: 4a82 tstl %d2 <== NOT EXECUTED 4ca82: 6604 bnes 4ca88 <== NOT EXECUTED 4ca84: 7003 moveq #3,%d0 <== NOT EXECUTED 4ca86: 606e bras 4caf6 <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 4ca88: 4a8b tstl %a3 <== NOT EXECUTED 4ca8a: 6768 beqs 4caf4 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_Addresses_Is_aligned( internal_start ) || 4ca8c: 2004 movel %d4,%d0 <== NOT EXECUTED 4ca8e: 8083 orl %d3,%d0 <== NOT EXECUTED 4ca90: 7203 moveq #3,%d1 <== NOT EXECUTED 4ca92: c081 andl %d1,%d0 <== NOT EXECUTED 4ca94: 665e bnes 4caf4 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4ca96: 2039 0006 da18 movel 6da18 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4ca9c: 5280 addql #1,%d0 <== NOT EXECUTED 4ca9e: 23c0 0006 da18 movel %d0,6da18 <_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 *) 4caa4: 4879 0006 d808 pea 6d808 <_Dual_ported_memory_Information> <== NOT EXECUTED 4caaa: 4eb9 0005 1334 jsr 51334 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_port = _Dual_ported_memory_Allocate(); if ( !the_port ) { 4cab0: 588f addql #4,%sp <== NOT EXECUTED 4cab2: 2240 moveal %d0,%a1 <== NOT EXECUTED 4cab4: 45f9 0005 1fae lea 51fae <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 4caba: 4a80 tstl %d0 <== NOT EXECUTED 4cabc: 6606 bnes 4cac4 <== NOT EXECUTED _Thread_Enable_dispatch(); 4cabe: 4e92 jsr %a2@ <== NOT EXECUTED 4cac0: 7005 moveq #5,%d0 <== NOT EXECUTED 4cac2: 6032 bras 4caf6 <== NOT EXECUTED return RTEMS_TOO_MANY; } the_port->internal_base = internal_start; the_port->external_base = external_start; the_port->length = length - 1; 4cac4: 202e 0014 movel %fp@(20),%d0 <== NOT EXECUTED 4cac8: 5380 subql #1,%d0 <== NOT EXECUTED 4caca: 2340 0018 movel %d0,%a1@(24) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4cace: 2079 0006 d822 moveal 6d822 <_Dual_ported_memory_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4cad4: 2342 000c movel %d2,%a1@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4cad8: 4280 clrl %d0 <== NOT EXECUTED 4cada: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED 4cade: 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; 4cae2: 26a9 0008 movel %a1@(8),%a3@ <== NOT EXECUTED if ( !the_port ) { _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } the_port->internal_base = internal_start; 4cae6: 2343 0010 movel %d3,%a1@(16) <== NOT EXECUTED the_port->external_base = external_start; 4caea: 2344 0014 movel %d4,%a1@(20) <== NOT EXECUTED &the_port->Object, (Objects_Name) name ); *id = the_port->Object.id; _Thread_Enable_dispatch(); 4caee: 4e92 jsr %a2@ <== NOT EXECUTED 4caf0: 4280 clrl %d0 <== NOT EXECUTED 4caf2: 6002 bras 4caf6 <== NOT EXECUTED return RTEMS_SUCCESSFUL; 4caf4: 7009 moveq #9,%d0 <== NOT EXECUTED } 4caf6: 4cee 0c1c ffec moveml %fp@(-20),%d2-%d4/%a2-%a3 <== NOT EXECUTED 4cafc: 4e5e unlk %fp <== NOT EXECUTED 4cafe: 4e75 rts 0004cb00 : */ rtems_status_code rtems_port_delete( Objects_Id id ) { 4cb00: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4cb04: 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 *) 4cb06: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4cb0a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4cb0e: 4879 0006 d808 pea 6d808 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cb14: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED register Dual_ported_memory_Control *the_port; Objects_Locations location; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 4cb1a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4cb20: 2400 movel %d0,%d2 <== NOT EXECUTED 4cb22: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4cb26: 6704 beqs 4cb2c <== NOT EXECUTED 4cb28: 7004 moveq #4,%d0 <== NOT EXECUTED 4cb2a: 602a bras 4cb56 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Dual_ported_memory_Information, &the_port->Object ); 4cb2c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4cb2e: 4879 0006 d808 pea 6d808 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cb34: 4eb9 0005 13bc jsr 513bc <_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 ); 4cb3a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cb3c: 4879 0006 d808 pea 6d808 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cb42: 4eb9 0005 1634 jsr 51634 <_Objects_Free> <== NOT EXECUTED _Dual_ported_memory_Free( the_port ); _Thread_Enable_dispatch(); 4cb48: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4cb4e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4cb54: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4cb56: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4cb5a: 4e5e unlk %fp <== NOT EXECUTED 4cb5c: 4e75 rts <== NOT EXECUTED ... 0004cb60 : rtems_status_code rtems_port_external_to_internal( Objects_Id id, void *external, void **internal ) { 4cb60: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4cb64: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4cb66: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 4cb6a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cb6c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED register Dual_ported_memory_Control *the_port; Objects_Locations location; uint32_t ending; if ( !internal ) 4cb70: 4a8a tstl %a2 <== NOT EXECUTED 4cb72: 6604 bnes 4cb78 <== NOT EXECUTED 4cb74: 7009 moveq #9,%d0 <== NOT EXECUTED 4cb76: 6044 bras 4cbbc <== NOT EXECUTED RTEMS_INLINE_ROUTINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( Objects_Id id, Objects_Locations *location ) { return (Dual_ported_memory_Control *) 4cb78: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4cb7c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4cb80: 4879 0006 d808 pea 6d808 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cb86: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 4cb8c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4cb92: 2040 moveal %d0,%a0 <== NOT EXECUTED 4cb94: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4cb98: 6704 beqs 4cb9e <== NOT EXECUTED 4cb9a: 7004 moveq #4,%d0 <== NOT EXECUTED 4cb9c: 601e bras 4cbbc <== NOT EXECUTED RTEMS_INLINE_ROUTINE uint32_t _Addresses_Subtract ( void *left, void *right ) { return ((char *) left - (char *) right); 4cb9e: 2002 movel %d2,%d0 <== NOT EXECUTED 4cba0: 90a8 0014 subl %a0@(20),%d0 <== NOT EXECUTED case OBJECTS_LOCAL: ending = _Addresses_Subtract( external, the_port->external_base ); if ( ending > the_port->length ) 4cba4: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 4cba8: 6304 blss 4cbae <== NOT EXECUTED *internal = external; 4cbaa: 2482 movel %d2,%a2@ <== NOT EXECUTED 4cbac: 6006 bras 4cbb4 <== NOT EXECUTED else *internal = _Addresses_Add_offset( the_port->internal_base, 4cbae: d0a8 0010 addl %a0@(16),%d0 <== NOT EXECUTED 4cbb2: 2480 movel %d0,%a2@ <== NOT EXECUTED ending ); _Thread_Enable_dispatch(); 4cbb4: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4cbba: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4cbbc: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4cbc0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4cbc4: 4e5e unlk %fp <== NOT EXECUTED 4cbc6: 4e75 rts 0004cbc8 : rtems_status_code rtems_port_ident( rtems_name name, Objects_Id *id ) { 4cbc8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 4cbcc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4cbd0: 42a7 clrl %sp@- <== NOT EXECUTED 4cbd2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4cbd6: 4879 0006 d808 pea 6d808 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cbdc: 4eb9 0005 1930 jsr 51930 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4cbe2: 41f9 0006 6922 lea 66922 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_ALL_NODES, id ); return _Status_Object_name_errors_to_status[ status ]; } 4cbe8: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4cbec: 4e5e unlk %fp <== NOT EXECUTED 4cbee: 4e75 rts 0004cbf0 : rtems_status_code rtems_port_internal_to_external( Objects_Id id, void *internal, void **external ) { 4cbf0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4cbf4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4cbf6: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 4cbfa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cbfc: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED register Dual_ported_memory_Control *the_port; Objects_Locations location; uint32_t ending; if ( !external ) 4cc00: 4a8a tstl %a2 <== NOT EXECUTED 4cc02: 6604 bnes 4cc08 <== NOT EXECUTED 4cc04: 7009 moveq #9,%d0 <== NOT EXECUTED 4cc06: 6044 bras 4cc4c <== NOT EXECUTED 4cc08: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4cc0c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4cc10: 4879 0006 d808 pea 6d808 <_Dual_ported_memory_Information> <== NOT EXECUTED 4cc16: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 4cc1c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4cc22: 2040 moveal %d0,%a0 <== NOT EXECUTED 4cc24: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4cc28: 6704 beqs 4cc2e <== NOT EXECUTED 4cc2a: 7004 moveq #4,%d0 <== NOT EXECUTED 4cc2c: 601e bras 4cc4c <== NOT EXECUTED 4cc2e: 2002 movel %d2,%d0 <== NOT EXECUTED 4cc30: 90a8 0010 subl %a0@(16),%d0 <== NOT EXECUTED case OBJECTS_LOCAL: ending = _Addresses_Subtract( internal, the_port->internal_base ); if ( ending > the_port->length ) 4cc34: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 4cc38: 6304 blss 4cc3e <== NOT EXECUTED *external = internal; 4cc3a: 2482 movel %d2,%a2@ <== NOT EXECUTED 4cc3c: 6006 bras 4cc44 <== NOT EXECUTED else *external = _Addresses_Add_offset( the_port->external_base, 4cc3e: d0a8 0014 addl %a0@(20),%d0 <== NOT EXECUTED 4cc42: 2480 movel %d0,%a2@ <== NOT EXECUTED ending ); _Thread_Enable_dispatch(); 4cc44: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4cc4a: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4cc4c: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4cc50: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4cc54: 4e5e unlk %fp <== NOT EXECUTED 4cc56: 4e75 rts 0004d694 : */ rtems_status_code rtems_rate_monotonic_cancel( Objects_Id id ) { 4d694: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d698: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4d69a: 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 *) 4d69c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d6a0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d6a4: 4879 0006 d880 pea 6d880 <_Rate_monotonic_Information> <== NOT EXECUTED 4d6aa: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED Rate_monotonic_Control *the_period; Objects_Locations location; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 4d6b0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d6b6: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d6b8: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d6bc: 6704 beqs 4d6c2 <== NOT EXECUTED 4d6be: 7004 moveq #4,%d0 <== NOT EXECUTED 4d6c0: 602c bras 4d6ee <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Thread_Is_executing( the_period->owner ) ) { 4d6c2: 2039 0006 dad6 movel 6dad6 <_Thread_Executing>,%d0 <== NOT EXECUTED 4d6c8: 47f9 0005 1fae lea 51fae <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 4d6ce: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4d6d2: 6706 beqs 4d6da <== NOT EXECUTED _Thread_Enable_dispatch(); 4d6d4: 4e93 jsr %a3@ <== NOT EXECUTED 4d6d6: 7017 moveq #23,%d0 <== NOT EXECUTED 4d6d8: 6014 bras 4d6ee <== NOT EXECUTED return RTEMS_NOT_OWNER_OF_RESOURCE; } (void) _Watchdog_Remove( &the_period->Timer ); 4d6da: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4d6de: 4eb9 0005 334c jsr 5334c <_Watchdog_Remove> <== NOT EXECUTED the_period->state = RATE_MONOTONIC_INACTIVE; 4d6e4: 42aa 0038 clrl %a2@(56) <== NOT EXECUTED _Thread_Enable_dispatch(); 4d6e8: 4e93 jsr %a3@ <== NOT EXECUTED 4d6ea: 588f addql #4,%sp <== NOT EXECUTED 4d6ec: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d6ee: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4d6f2: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 4d6f6: 4e5e unlk %fp <== NOT EXECUTED 4d6f8: 4e75 rts <== NOT EXECUTED ... 00045900 : rtems_status_code rtems_rate_monotonic_create( rtems_name name, Objects_Id *id ) { 45900: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 45904: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 45908: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4590c: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED Rate_monotonic_Control *the_period; if ( !rtems_is_name_valid( name ) ) 45910: 6606 bnes 45918 <== NOT EXECUTED 45912: 7003 moveq #3,%d0 <== NOT EXECUTED 45914: 6000 00a6 braw 459bc <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 45918: 4a8c tstl %a4 <== NOT EXECUTED 4591a: 6606 bnes 45922 <== NOT EXECUTED 4591c: 7009 moveq #9,%d0 <== NOT EXECUTED 4591e: 6000 009c braw 459bc <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 45922: 2039 0005 a988 movel 5a988 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45928: 5280 addql #1,%d0 <== NOT EXECUTED 4592a: 23c0 0005 a988 movel %d0,5a988 <_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 *) 45930: 4879 0005 a880 pea 5a880 <_Rate_monotonic_Information> <== NOT EXECUTED 45936: 4eb9 0004 765c jsr 4765c <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_period = _Rate_monotonic_Allocate(); if ( !the_period ) { 4593c: 588f addql #4,%sp <== NOT EXECUTED 4593e: 2440 moveal %d0,%a2 <== NOT EXECUTED 45940: 47f9 0004 838a lea 4838a <_Thread_Enable_dispatch>,%a3 <== NOT EXECUTED 45946: 4a80 tstl %d0 <== NOT EXECUTED 45948: 6606 bnes 45950 <== NOT EXECUTED _Thread_Enable_dispatch(); 4594a: 4e93 jsr %a3@ <== NOT EXECUTED 4594c: 7005 moveq #5,%d0 <== NOT EXECUTED 4594e: 606c bras 459bc <== NOT EXECUTED return RTEMS_TOO_MANY; } the_period->owner = _Thread_Executing; 45950: 41f9 0005 aa46 lea 5aa46 <_Thread_Executing>,%a0 <== NOT EXECUTED 45956: 2550 0050 movel %a0@,%a2@(80) <== NOT EXECUTED the_period->state = RATE_MONOTONIC_INACTIVE; 4595a: 42aa 0038 clrl %a2@(56) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4595e: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED the_watchdog->routine = routine; 45962: 42aa 002c clrl %a2@(44) <== NOT EXECUTED the_watchdog->id = id; 45966: 42aa 0030 clrl %a2@(48) <== NOT EXECUTED the_watchdog->user_data = user_data; 4596a: 42aa 0034 clrl %a2@(52) <== NOT EXECUTED _Watchdog_Initialize( &the_period->Timer, NULL, 0, NULL ); _Rate_monotonic_Reset_statistics( the_period ); 4596e: 4878 0038 pea 38 <== NOT EXECUTED 45972: 42a7 clrl %sp@- <== NOT EXECUTED 45974: 486a 0054 pea %a2@(84) <== NOT EXECUTED 45978: 4eb9 0004 d714 jsr 4d714 <== NOT EXECUTED 4597e: 203c 7fff ffff movel #2147483647,%d0 <== NOT EXECUTED 45984: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 45988: 2079 0005 a89a moveal 5a89a <_Rate_monotonic_Information+0x1a>,%a0 <== NOT EXECUTED 4598e: 4280 clrl %d0 <== NOT EXECUTED 45990: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 45994: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED 45998: 207c 7fff ffff moveal #2147483647,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4599e: 2542 000c movel %d2,%a2@(12) <== NOT EXECUTED 459a2: 2548 0060 movel %a0,%a2@(96) <== NOT EXECUTED 459a6: 2548 0074 movel %a0,%a2@(116) <== NOT EXECUTED 459aa: 2548 0078 movel %a0,%a2@(120) <== NOT EXECUTED &_Rate_monotonic_Information, &the_period->Object, (Objects_Name) name ); *id = the_period->Object.id; 459ae: 28aa 0008 movel %a2@(8),%a4@ <== NOT EXECUTED _Thread_Enable_dispatch(); 459b2: 4e93 jsr %a3@ <== NOT EXECUTED 459b4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 459ba: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 459bc: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 459c2: 4e5e unlk %fp <== NOT EXECUTED 459c4: 4e75 rts <== NOT EXECUTED ... 0004d7c4 : */ rtems_status_code rtems_rate_monotonic_delete( Objects_Id id ) { 4d7c4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4d7c8: 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 *) 4d7ca: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4d7ce: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d7d2: 4879 0006 d880 pea 6d880 <_Rate_monotonic_Information> <== NOT EXECUTED 4d7d8: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED Rate_monotonic_Control *the_period; Objects_Locations location; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 4d7de: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4d7e4: 2440 moveal %d0,%a2 <== NOT EXECUTED 4d7e6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4d7ea: 6704 beqs 4d7f0 <== NOT EXECUTED 4d7ec: 7004 moveq #4,%d0 <== NOT EXECUTED 4d7ee: 6038 bras 4d828 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Rate_monotonic_Information, &the_period->Object ); 4d7f0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4d7f2: 4879 0006 d880 pea 6d880 <_Rate_monotonic_Information> <== NOT EXECUTED 4d7f8: 4eb9 0005 13bc jsr 513bc <_Objects_Close> <== NOT EXECUTED (void) _Watchdog_Remove( &the_period->Timer ); 4d7fe: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4d802: 4eb9 0005 334c jsr 5334c <_Watchdog_Remove> <== NOT EXECUTED the_period->state = RATE_MONOTONIC_INACTIVE; 4d808: 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 ); 4d80c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d80e: 4879 0006 d880 pea 6d880 <_Rate_monotonic_Information> <== NOT EXECUTED 4d814: 4eb9 0005 1634 jsr 51634 <_Objects_Free> <== NOT EXECUTED _Rate_monotonic_Free( the_period ); _Thread_Enable_dispatch(); 4d81a: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4d820: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4d826: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4d828: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4d82c: 4e5e unlk %fp <== NOT EXECUTED 4d82e: 4e75 rts 00066de4 : rtems_status_code rtems_rate_monotonic_get_statistics( Objects_Id id, rtems_rate_monotonic_period_statistics *statistics ) { 66de4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 66de8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 66dea: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Objects_Locations location; Rate_monotonic_Control *the_period; if ( !statistics ) 66dee: 6604 bnes 66df4 <== NOT EXECUTED 66df0: 7009 moveq #9,%d0 <== NOT EXECUTED 66df2: 6044 bras 66e38 <== NOT EXECUTED 66df4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 66df8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 66dfc: 4879 0009 43a4 pea 943a4 <_Rate_monotonic_Information> <== NOT EXECUTED 66e02: 4eb9 0004 a24c jsr 4a24c <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 66e08: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 66e0e: 2040 moveal %d0,%a0 <== NOT EXECUTED 66e10: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 66e14: 6704 beqs 66e1a <== NOT EXECUTED 66e16: 7004 moveq #4,%d0 <== NOT EXECUTED 66e18: 601e bras 66e38 <== NOT EXECUTED case OBJECTS_LOCAL: *statistics = the_period->Statistics; 66e1a: 4878 0038 pea 38 <== NOT EXECUTED 66e1e: 4868 0054 pea %a0@(84) <== NOT EXECUTED 66e22: 2f02 movel %d2,%sp@- <== NOT EXECUTED 66e24: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED _Thread_Enable_dispatch(); 66e2a: 4eb9 0004 aa9a jsr 4aa9a <_Thread_Enable_dispatch> <== NOT EXECUTED 66e30: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 66e36: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 66e38: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 66e3c: 4e5e unlk %fp <== NOT EXECUTED 66e3e: 4e75 rts 00066e40 : rtems_status_code rtems_rate_monotonic_get_status( Objects_Id id, rtems_rate_monotonic_period_status *status ) { 66e40: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 66e44: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 66e48: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED Objects_Locations location; Rate_monotonic_Control *the_period; if ( !status ) 66e4c: 4a8b tstl %a3 <== NOT EXECUTED 66e4e: 6606 bnes 66e56 <== NOT EXECUTED 66e50: 7009 moveq #9,%d0 <== NOT EXECUTED 66e52: 6000 0094 braw 66ee8 <== NOT EXECUTED 66e56: 486e fffc pea %fp@(-4) <== NOT EXECUTED 66e5a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 66e5e: 4879 0009 43a4 pea 943a4 <_Rate_monotonic_Information> <== NOT EXECUTED 66e64: 4eb9 0004 a24c jsr 4a24c <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 66e6a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 66e70: 2840 moveal %d0,%a4 <== NOT EXECUTED 66e72: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 66e76: 6704 beqs 66e7c <== NOT EXECUTED 66e78: 7004 moveq #4,%d0 <== NOT EXECUTED 66e7a: 606c bras 66ee8 <== NOT EXECUTED case OBJECTS_LOCAL: status->owner = ((the_period->owner) ? the_period->owner->Object.id : 0); 66e7c: 206c 0050 moveal %a4@(80),%a0 <== NOT EXECUTED 66e80: 4a88 tstl %a0 <== NOT EXECUTED 66e82: 6604 bnes 66e88 <== NOT EXECUTED 66e84: 4281 clrl %d1 <== NOT EXECUTED 66e86: 6004 bras 66e8c <== NOT EXECUTED 66e88: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED status->state = the_period->state; 66e8c: 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); 66e90: 2681 movel %d1,%a3@ <== NOT EXECUTED status->state = the_period->state; 66e92: 2740 0004 movel %d0,%a3@(4) <== NOT EXECUTED if ( status->state == RATE_MONOTONIC_INACTIVE ) { 66e96: 6612 bnes 66eaa <== 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; 66e98: 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; 66e9c: 42ab 0008 clrl %a3@(8) <== NOT EXECUTED status->since_last_period.tv_nsec = 0; 66ea0: 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; 66ea4: 42ab 0010 clrl %a3@(16) <== NOT EXECUTED 66ea8: 6036 bras 66ee0 <== 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 ); 66eaa: 240e movel %fp,%d2 <== NOT EXECUTED 66eac: 0682 ffff fff4 addil #-12,%d2 <== NOT EXECUTED 66eb2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 66eb4: 4eb9 0005 e2bc jsr 5e2bc <_TOD_Get_uptime> <== NOT EXECUTED #endif #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS _Timespec_Subtract( 66eba: 486b 0008 pea %a3@(8) <== NOT EXECUTED 66ebe: 45f9 0004 b790 lea 4b790 <_Timespec_Subtract>,%a2 <== NOT EXECUTED 66ec4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 66ec6: 486c 0044 pea %a4@(68) <== NOT EXECUTED 66eca: 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( 66ecc: 486b 0010 pea %a3@(16) <== NOT EXECUTED 66ed0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 66ed2: 4879 0009 397e pea 9397e <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 66ed8: 4e92 jsr %a2@ <== NOT EXECUTED 66eda: dffc 0000 001c addal #28,%sp <== NOT EXECUTED the_period->owner->cpu_time_used - the_period->owner_executed_at_period; #endif } _Thread_Enable_dispatch(); 66ee0: 4eb9 0004 aa9a jsr 4aa9a <_Thread_Enable_dispatch> <== NOT EXECUTED 66ee6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 66ee8: 4cee 1c04 ffe4 moveml %fp@(-28),%d2/%a2-%a4 <== NOT EXECUTED 66eee: 4e5e unlk %fp <== NOT EXECUTED 66ef0: 4e75 rts <== NOT EXECUTED ... 000459c8 : rtems_status_code rtems_rate_monotonic_ident( rtems_name name, Objects_Id *id ) { 459c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 459cc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 459d0: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 459d6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 459da: 4879 0005 a880 pea 5a880 <_Rate_monotonic_Information> <== NOT EXECUTED 459e0: 4eb9 0004 7d0c jsr 47d0c <_Objects_Name_to_id_u32> <== NOT EXECUTED 459e6: 41f9 0005 7b38 lea 57b38 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 459ec: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 459f0: 4e5e unlk %fp <== NOT EXECUTED 459f2: 4e75 rts 00045bd0 : rtems_status_code rtems_rate_monotonic_period( Objects_Id id, rtems_interval length ) { 45bd0: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 45bd4: 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 *) 45bd8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45bdc: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 45be0: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 45be4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 45be6: 4879 0005 a880 pea 5a880 <_Rate_monotonic_Information> <== NOT EXECUTED 45bec: 4eb9 0004 7ba8 jsr 47ba8 <_Objects_Get> <== NOT EXECUTED rtems_rate_monotonic_period_states local_state; ISR_Level level; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 45bf2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45bf8: 2440 moveal %d0,%a2 <== NOT EXECUTED 45bfa: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45bfe: 6600 012e bnew 45d2e <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Thread_Is_executing( the_period->owner ) ) { 45c02: 2039 0005 aa46 movel 5aa46 <_Thread_Executing>,%d0 <== NOT EXECUTED 45c08: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 45c0c: 6706 beqs 45c14 <== NOT EXECUTED _Thread_Enable_dispatch(); 45c0e: 7417 moveq #23,%d2 <== NOT EXECUTED 45c10: 6000 00dc braw 45cee <== NOT EXECUTED return RTEMS_NOT_OWNER_OF_RESOURCE; } if ( length == RTEMS_PERIOD_STATUS ) { 45c14: 4a83 tstl %d3 <== NOT EXECUTED 45c16: 661c bnes 45c34 <== NOT EXECUTED switch ( the_period->state ) { 45c18: 202a 0038 movel %a2@(56),%d0 <== NOT EXECUTED 45c1c: 6710 beqs 45c2e <== NOT EXECUTED 45c1e: 5780 subql #3,%d0 <== NOT EXECUTED 45c20: 7201 moveq #1,%d1 <== NOT EXECUTED 45c22: b280 cmpl %d0,%d1 <== NOT EXECUTED 45c24: 6500 00c6 bcsw 45cec <== NOT EXECUTED 45c28: 7406 moveq #6,%d2 <== NOT EXECUTED 45c2a: 6000 00c2 braw 45cee <== NOT EXECUTED 45c2e: 740b moveq #11,%d2 <== NOT EXECUTED 45c30: 6000 00bc braw 45cee <== NOT EXECUTED } _Thread_Enable_dispatch(); return( return_value ); } _ISR_Disable( level ); 45c34: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 45c3a: 40c2 movew %sr,%d2 <== NOT EXECUTED 45c3c: 8082 orl %d2,%d0 <== NOT EXECUTED 45c3e: 46c0 movew %d0,%sr <== NOT EXECUTED switch ( the_period->state ) { 45c40: 202a 0038 movel %a2@(56),%d0 <== NOT EXECUTED 45c44: 7202 moveq #2,%d1 <== NOT EXECUTED 45c46: b280 cmpl %d0,%d1 <== NOT EXECUTED 45c48: 6740 beqs 45c8a <== NOT EXECUTED 45c4a: 123c 0004 moveb #4,%d1 <== NOT EXECUTED 45c4e: b280 cmpl %d0,%d1 <== NOT EXECUTED 45c50: 6700 00a4 beqw 45cf6 <== NOT EXECUTED 45c54: 4a80 tstl %d0 <== NOT EXECUTED 45c56: 6600 00d6 bnew 45d2e <== NOT EXECUTED case RATE_MONOTONIC_INACTIVE: { _ISR_Enable( level ); 45c5a: 46c2 movew %d2,%sr <== NOT EXECUTED /* * Baseline statistics information for the beginning of a period. */ _Rate_monotonic_Initiate_statistics( the_period ); 45c5c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45c5e: 4eb9 0004 59f4 jsr 459f4 <_Rate_monotonic_Initiate_statistics> <== NOT EXECUTED the_period->state = RATE_MONOTONIC_ACTIVE; 45c64: 7402 moveq #2,%d2 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 45c66: 203c 0004 5f98 movel #286616,%d0 <== NOT EXECUTED 45c6c: 2542 0038 movel %d2,%a2@(56) <== NOT EXECUTED ); the_period->next_length = length; _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); 45c70: 4202 clrb %d2 <== NOT EXECUTED the_watchdog->id = id; 45c72: 2544 0030 movel %d4,%a2@(48) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45c76: 2543 001c movel %d3,%a2@(28) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 45c7a: 2540 002c movel %d0,%a2@(44) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 45c7e: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 45c82: 42aa 0034 clrl %a2@(52) <== NOT EXECUTED 45c86: 6000 0084 braw 45d0c <== NOT EXECUTED case RATE_MONOTONIC_ACTIVE: /* * Update statistics from the concluding period. */ _Rate_monotonic_Update_statistics( the_period ); 45c8a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45c8c: 4eb9 0004 5a6c jsr 45a6c <_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; 45c92: 7201 moveq #1,%d1 <== NOT EXECUTED the_period->next_length = length; 45c94: 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; 45c98: 2541 0038 movel %d1,%a2@(56) <== NOT EXECUTED the_period->next_length = length; _ISR_Enable( level ); 45c9c: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_Executing->Wait.id = the_period->Object.id; 45c9e: 2079 0005 aa46 moveal 5aa46 <_Thread_Executing>,%a0 <== NOT EXECUTED 45ca4: 216a 0008 0020 movel %a2@(8),%a0@(32) <== NOT EXECUTED _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD ); 45caa: 4878 4000 pea 4000 <== NOT EXECUTED 45cae: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45cb0: 4eb9 0004 8bfc jsr 48bfc <_Thread_Set_state> <== NOT EXECUTED /* * Did the watchdog timer expire while we were actually blocking * on it? */ _ISR_Disable( level ); 45cb6: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 45cbc: 40c0 movew %sr,%d0 <== NOT EXECUTED 45cbe: 8280 orl %d0,%d1 <== NOT EXECUTED 45cc0: 46c1 movew %d1,%sr <== NOT EXECUTED local_state = the_period->state; 45cc2: 222a 0038 movel %a2@(56),%d1 <== NOT EXECUTED the_period->state = RATE_MONOTONIC_ACTIVE; 45cc6: 7402 moveq #2,%d2 <== NOT EXECUTED 45cc8: 2542 0038 movel %d2,%a2@(56) <== NOT EXECUTED _ISR_Enable( level ); 45ccc: 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 ) 45cce: 7003 moveq #3,%d0 <== NOT EXECUTED 45cd0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45cd6: b081 cmpl %d1,%d0 <== NOT EXECUTED 45cd8: 6612 bnes 45cec <== NOT EXECUTED _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD ); 45cda: 4878 4000 pea 4000 <== NOT EXECUTED 45cde: 2f39 0005 aa46 movel 5aa46 <_Thread_Executing>,%sp@- <== NOT EXECUTED 45ce4: 4eb9 0004 7fc8 jsr 47fc8 <_Thread_Clear_state> <== NOT EXECUTED 45cea: 508f addql #8,%sp <== NOT EXECUTED _Thread_Enable_dispatch(); 45cec: 4282 clrl %d2 <== NOT EXECUTED 45cee: 4eb9 0004 838a jsr 4838a <_Thread_Enable_dispatch> <== NOT EXECUTED 45cf4: 603a bras 45d30 <== NOT EXECUTED case RATE_MONOTONIC_EXPIRED: /* * Update statistics from the concluding period */ _Rate_monotonic_Update_statistics( the_period ); 45cf6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45cf8: 4eb9 0004 5a6c jsr 45a6c <_Rate_monotonic_Update_statistics> <== NOT EXECUTED _ISR_Enable( level ); 45cfe: 46c2 movew %d2,%sr <== NOT EXECUTED the_period->state = RATE_MONOTONIC_ACTIVE; 45d00: 7202 moveq #2,%d1 <== NOT EXECUTED the_period->next_length = length; _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); 45d02: 7406 moveq #6,%d2 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45d04: 2543 001c movel %d3,%a2@(28) <== NOT EXECUTED */ _Rate_monotonic_Update_statistics( the_period ); _ISR_Enable( level ); the_period->state = RATE_MONOTONIC_ACTIVE; 45d08: 2541 0038 movel %d1,%a2@(56) <== NOT EXECUTED the_period->next_length = length; 45d0c: 2543 004c movel %d3,%a2@(76) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 45d10: 486a 0010 pea %a2@(16) <== NOT EXECUTED 45d14: 4879 0005 aa64 pea 5aa64 <_Watchdog_Ticks_chain> <== NOT EXECUTED 45d1a: 4eb9 0004 9420 jsr 49420 <_Watchdog_Insert> <== NOT EXECUTED _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); 45d20: 4eb9 0004 838a jsr 4838a <_Thread_Enable_dispatch> <== NOT EXECUTED 45d26: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45d2c: 6002 bras 45d30 <== NOT EXECUTED return RTEMS_TIMEOUT; 45d2e: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45d30: 2002 movel %d2,%d0 <== NOT EXECUTED 45d32: 4cee 041c ffec moveml %fp@(-20),%d2-%d4/%a2 <== NOT EXECUTED 45d38: 4e5e unlk %fp <== NOT EXECUTED 45d3a: 4e75 rts 0005d99a : void rtems_rate_monotonic_report_statistics( void ) { 5d99a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_rate_monotonic_report_statistics_with_plugin( NULL, printk_plugin ); 5d99e: 4879 0004 65e0 pea 465e0 <== NOT EXECUTED 5d9a4: 42a7 clrl %sp@- <== NOT EXECUTED 5d9a6: 4eb9 0005 d804 jsr 5d804 <== NOT EXECUTED 5d9ac: 508f addql #8,%sp <== NOT EXECUTED } 5d9ae: 4e5e unlk %fp <== NOT EXECUTED 5d9b0: 4e75 rts <== NOT EXECUTED ... 0005d804 : */ void rtems_rate_monotonic_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 5d804: 4e56 ff78 linkw %fp,#-136 <== NOT EXECUTED 5d808: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 5d80c: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 5d810: 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 ) 5d814: 4a8a tstl %a2 <== NOT EXECUTED 5d816: 6700 0178 beqw 5d990 <== NOT EXECUTED return; (*print)( context, "Period information by period\n" ); 5d81a: 4879 0007 b772 pea 7b772 <_POSIX_Threads_Default_attributes+0x38> <== NOT EXECUTED /* * Print part of report line that is not dependent on granularity */ (*print)( context, 5d820: 2a0e movel %fp,%d5 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d822: 280e movel %fp,%d4 <== NOT EXECUTED char name[5]; if ( !print ) return; (*print)( context, "Period information by period\n" ); 5d824: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d826: 4e92 jsr %a2@ <== NOT EXECUTED #if defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) (*print)( context, "--- CPU times are in seconds ---\n" ); 5d828: 4879 0007 b790 pea 7b790 <_POSIX_Threads_Default_attributes+0x56> <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d82e: 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 ); 5d830: 4bf9 0006 6e40 lea 66e40 ,%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" ); 5d836: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d838: 4e92 jsr %a2@ <== NOT EXECUTED #endif #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) (*print)( context, "--- Wall times are in seconds ---\n" ); 5d83a: 4879 0007 b7b2 pea 7b7b2 <_POSIX_Threads_Default_attributes+0x78> <== NOT EXECUTED /* * Print part of report line that is not dependent on granularity */ (*print)( context, 5d840: 5b85 subql #5,%d5 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d842: 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" ); 5d848: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d84a: 4e92 jsr %a2@ <== NOT EXECUTED Be sure to test the various cases. (*print)( context,"\ 1234567890123456789012345678901234567890123456789012345678901234567890123456789\ \n"); */ (*print)( context, " ID OWNER COUNT MISSED " 5d84c: 4879 0007 b7d5 pea 7b7d5 <_POSIX_Threads_Default_attributes+0x9b> <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d852: 0687 ffff ffba addil #-70,%d7 <== NOT EXECUTED 5d858: 47f9 0005 ebbc lea 5ebbc <_Timespec_Divide_by_integer>,%a3 <== NOT EXECUTED Be sure to test the various cases. (*print)( context,"\ 1234567890123456789012345678901234567890123456789012345678901234567890123456789\ \n"); */ (*print)( context, " ID OWNER COUNT MISSED " 5d85e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d860: 4e92 jsr %a2@ <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS " " #endif " WALL TIME\n" ); (*print)( context, " " 5d862: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 5d868: 2ebc 0007 b820 movel #505888,%sp@ <== NOT EXECUTED #endif name[ 0 ] = '\0'; if ( the_status.owner ) { rtems_object_get_name( the_status.owner, sizeof(name), name ); 5d86e: 49f9 0004 87fc lea 487fc ,%a4 <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS " " #endif " WALL TIME\n" ); (*print)( context, " " 5d874: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d876: 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 ; 5d878: 2439 0009 43aa movel 943aa <_Rate_monotonic_Information+0x6>,%d2 <== NOT EXECUTED 5d87e: 508f addql #8,%sp <== NOT EXECUTED 5d880: 6000 0104 braw 5d986 <== NOT EXECUTED id <= _Rate_monotonic_Information.maximum_id ; id++ ) { status = rtems_rate_monotonic_get_statistics( id, &the_stats ); 5d884: 486e ffa2 pea %fp@(-94) <== NOT EXECUTED 5d888: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d88a: 4eb9 0006 6de4 jsr 66de4 <== NOT EXECUTED if ( status != RTEMS_SUCCESSFUL ) 5d890: 508f addql #8,%sp <== NOT EXECUTED 5d892: 4a80 tstl %d0 <== NOT EXECUTED 5d894: 6600 00ee bnew 5d984 <== NOT EXECUTED continue; /* If the above passed, so should this but check it anyway */ status = rtems_rate_monotonic_get_status( id, &the_status ); 5d898: 486e ffda pea %fp@(-38) <== NOT EXECUTED 5d89c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d89e: 4e95 jsr %a5@ <== NOT EXECUTED continue; #endif name[ 0 ] = '\0'; if ( the_status.owner ) { 5d8a0: 202e ffda movel %fp@(-38),%d0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( status != RTEMS_SUCCESSFUL ) continue; #endif name[ 0 ] = '\0'; 5d8a4: 4201 clrb %d1 <== NOT EXECUTED if ( the_status.owner ) { 5d8a6: 508f addql #8,%sp <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( status != RTEMS_SUCCESSFUL ) continue; #endif name[ 0 ] = '\0'; 5d8a8: 1d41 fffb moveb %d1,%fp@(-5) <== NOT EXECUTED if ( the_status.owner ) { 5d8ac: 4a80 tstl %d0 <== NOT EXECUTED 5d8ae: 6710 beqs 5d8c0 <== NOT EXECUTED rtems_object_get_name( the_status.owner, sizeof(name), name ); 5d8b0: 2f05 movel %d5,%sp@- <== NOT EXECUTED 5d8b2: 4878 0005 pea 5 <== NOT EXECUTED 5d8b6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5d8b8: 4e94 jsr %a4@ <== NOT EXECUTED 5d8ba: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Print part of report line that is not dependent on granularity */ (*print)( context, 5d8c0: 2f2e ffa6 movel %fp@(-90),%sp@- <== NOT EXECUTED 5d8c4: 2f2e ffa2 movel %fp@(-94),%sp@- <== NOT EXECUTED 5d8c8: 2f05 movel %d5,%sp@- <== NOT EXECUTED 5d8ca: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d8cc: 4879 0007 b86c pea 7b86c <_POSIX_Threads_Default_attributes+0x132> <== NOT EXECUTED 5d8d2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d8d4: 4e92 jsr %a2@ <== NOT EXECUTED /* * If the count is zero, don't print statistics */ if (the_stats.count == 0) { 5d8d6: 202e ffa2 movel %fp@(-94),%d0 <== NOT EXECUTED 5d8da: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 5d8e0: 6610 bnes 5d8f2 <== NOT EXECUTED (*print)( context, "\n" ); 5d8e2: 4879 0007 bb7c pea 7bb7c <__func__.5644+0x118> <== NOT EXECUTED 5d8e8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d8ea: 4e92 jsr %a2@ <== NOT EXECUTED 5d8ec: 508f addql #8,%sp <== NOT EXECUTED 5d8ee: 6000 0094 braw 5d984 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d8f2: 2f04 movel %d4,%sp@- <== NOT EXECUTED &the_stats.total_cpu_time, the_stats.count, &cpu_average ); (*print)( context, 5d8f4: 2c3c 0000 03e8 movel #1000,%d6 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 5d8fa: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5d8fc: 2f07 movel %d7,%sp@- <== NOT EXECUTED 5d8fe: 4e93 jsr %a3@ <== NOT EXECUTED &the_stats.total_cpu_time, the_stats.count, &cpu_average ); (*print)( context, 5d900: 202e fff6 movel %fp@(-10),%d0 <== NOT EXECUTED 5d904: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 5d908: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5d90a: 202e ffb6 movel %fp@(-74),%d0 <== NOT EXECUTED 5d90e: 2f2e fff2 movel %fp@(-14),%sp@- <== NOT EXECUTED 5d912: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 5d916: 2240 moveal %d0,%a1 <== NOT EXECUTED 5d918: 2f09 movel %a1,%sp@- <== NOT EXECUTED 5d91a: 222e ffae movel %fp@(-82),%d1 <== NOT EXECUTED 5d91e: 2f2e ffb2 movel %fp@(-78),%sp@- <== NOT EXECUTED 5d922: 4c46 1801 remsl %d6,%d1,%d1 <== NOT EXECUTED 5d926: 2f01 movel %d1,%sp@- <== NOT EXECUTED 5d928: 2f2e ffaa movel %fp@(-86),%sp@- <== NOT EXECUTED 5d92c: 4879 0007 b883 pea 7b883 <_POSIX_Threads_Default_attributes+0x149> <== NOT EXECUTED 5d932: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d934: 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( 5d936: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED 5d93c: 2e84 movel %d4,%sp@ <== NOT EXECUTED 5d93e: 2f2e ffa2 movel %fp@(-94),%sp@- <== NOT EXECUTED 5d942: 486e ffd2 pea %fp@(-46) <== NOT EXECUTED 5d946: 4e93 jsr %a3@ <== NOT EXECUTED &the_stats.total_wall_time, the_stats.count, &wall_average ); (*print)( context, 5d948: 202e fff6 movel %fp@(-10),%d0 <== NOT EXECUTED 5d94c: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 5d950: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5d952: 202e ffce movel %fp@(-50),%d0 <== NOT EXECUTED 5d956: 2f2e fff2 movel %fp@(-14),%sp@- <== NOT EXECUTED 5d95a: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 5d95e: 2240 moveal %d0,%a1 <== NOT EXECUTED 5d960: 2f09 movel %a1,%sp@- <== NOT EXECUTED 5d962: 222e ffc6 movel %fp@(-58),%d1 <== NOT EXECUTED 5d966: 2f2e ffca movel %fp@(-54),%sp@- <== NOT EXECUTED 5d96a: 4c46 1801 remsl %d6,%d1,%d1 <== NOT EXECUTED 5d96e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 5d970: 2f2e ffc2 movel %fp@(-62),%sp@- <== NOT EXECUTED 5d974: 4879 0007 b8a2 pea 7b8a2 <_POSIX_Threads_Default_attributes+0x168> <== NOT EXECUTED 5d97a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5d97c: 4e92 jsr %a2@ <== NOT EXECUTED 5d97e: 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++ ) { 5d984: 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 ; 5d986: b4b9 0009 43ae cmpl 943ae <_Rate_monotonic_Information+0xa>,%d2 <== NOT EXECUTED 5d98c: 6300 fef6 blsw 5d884 <== NOT EXECUTED the_stats.min_wall_time, the_stats.max_wall_time, ival_wall, fval_wall ); #endif } } } 5d990: 4cee 3cfc ff78 moveml %fp@(-136),%d2-%d7/%a2-%a5 <== NOT EXECUTED 5d996: 4e5e unlk %fp <== NOT EXECUTED 5d998: 4e75 rts 0005d9b4 : /* * rtems_rate_monotonic_reset_all_statistics */ void rtems_rate_monotonic_reset_all_statistics( void ) { 5d9b4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5d9b8: 2039 0009 38b8 movel 938b8 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 5d9be: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5d9c0: 5280 addql #1,%d0 <== NOT EXECUTED 5d9c2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d9c4: 23c0 0009 38b8 movel %d0,938b8 <_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 ; 5d9ca: 2439 0009 43aa movel 943aa <_Rate_monotonic_Information+0x6>,%d2 <== NOT EXECUTED id <= _Rate_monotonic_Information.maximum_id ; id++ ) { status = rtems_rate_monotonic_reset_statistics( id ); 5d9d0: 45f9 0005 d9f8 lea 5d9f8 ,%a2 <== NOT EXECUTED 5d9d6: 6008 bras 5d9e0 <== NOT EXECUTED 5d9d8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5d9da: 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++ ) { 5d9dc: 5282 addql #1,%d2 <== NOT EXECUTED 5d9de: 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 ; 5d9e0: b4b9 0009 43ae cmpl 943ae <_Rate_monotonic_Information+0xa>,%d2 <== NOT EXECUTED 5d9e6: 63f0 blss 5d9d8 <== NOT EXECUTED /* * Done so exit thread dispatching disabled critical section. */ _Thread_Enable_dispatch(); } 5d9e8: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5d9ec: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 5d9f0: 4e5e unlk %fp <== NOT EXECUTED } /* * Done so exit thread dispatching disabled critical section. */ _Thread_Enable_dispatch(); 5d9f2: 4ef9 0004 aa9a jmp 4aa9a <_Thread_Enable_dispatch> <== NOT EXECUTED 0005d9f8 : */ rtems_status_code rtems_rate_monotonic_reset_statistics( Objects_Id id ) { 5d9f8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 5d9fc: 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 *) 5d9fe: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5da02: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5da06: 4879 0009 43a4 pea 943a4 <_Rate_monotonic_Information> <== NOT EXECUTED 5da0c: 4eb9 0004 a24c jsr 4a24c <_Objects_Get> <== NOT EXECUTED Objects_Locations location; Rate_monotonic_Control *the_period; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 5da12: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5da18: 2440 moveal %d0,%a2 <== NOT EXECUTED 5da1a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5da1e: 6704 beqs 5da24 <== NOT EXECUTED 5da20: 7004 moveq #4,%d0 <== NOT EXECUTED 5da22: 6034 bras 5da58 <== NOT EXECUTED case OBJECTS_LOCAL: _Rate_monotonic_Reset_statistics( the_period ); 5da24: 4878 0038 pea 38 <== NOT EXECUTED 5da28: 42a7 clrl %sp@- <== NOT EXECUTED 5da2a: 486a 0054 pea %a2@(84) <== NOT EXECUTED 5da2e: 4eb9 0006 b05c jsr 6b05c <== NOT EXECUTED 5da34: 203c 7fff ffff movel #2147483647,%d0 <== NOT EXECUTED 5da3a: 2540 0078 movel %d0,%a2@(120) <== NOT EXECUTED 5da3e: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED 5da42: 2540 0060 movel %d0,%a2@(96) <== NOT EXECUTED 5da46: 2540 0074 movel %d0,%a2@(116) <== NOT EXECUTED _Thread_Enable_dispatch(); 5da4a: 4eb9 0004 aa9a jsr 4aa9a <_Thread_Enable_dispatch> <== NOT EXECUTED 5da50: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5da56: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5da58: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5da5c: 4e5e unlk %fp <== NOT EXECUTED 5da5e: 4e75 rts 0004dd24 : uint32_t length, uint32_t page_size, rtems_attribute attribute_set, Objects_Id *id ) { 4dd24: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4dd28: 48d7 0c7c moveml %d2-%d6/%a2-%a3,%sp@ <== NOT EXECUTED 4dd2c: 2c2e 0008 movel %fp@(8),%d6 <== NOT EXECUTED 4dd30: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4dd34: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED 4dd38: 2a2e 0014 movel %fp@(20),%d5 <== NOT EXECUTED 4dd3c: 262e 0018 movel %fp@(24),%d3 <== NOT EXECUTED 4dd40: 266e 001c moveal %fp@(28),%a3 <== NOT EXECUTED rtems_status_code return_status; Region_Control *the_region; if ( !rtems_is_name_valid( name ) ) 4dd44: 4a86 tstl %d6 <== NOT EXECUTED 4dd46: 6606 bnes 4dd4e <== NOT EXECUTED 4dd48: 7403 moveq #3,%d2 <== NOT EXECUTED 4dd4a: 6000 00ca braw 4de16 <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !starting_address ) 4dd4e: 4a82 tstl %d2 <== NOT EXECUTED 4dd50: 6700 00c2 beqw 4de14 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !id ) 4dd54: 4a8b tstl %a3 <== NOT EXECUTED 4dd56: 6700 00bc beqw 4de14 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_Addresses_Is_aligned( starting_address ) ) 4dd5a: 7003 moveq #3,%d0 <== NOT EXECUTED 4dd5c: c082 andl %d2,%d0 <== NOT EXECUTED 4dd5e: 6600 00b4 bnew 4de14 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); /* to prevent deletion */ 4dd62: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4dd68: 4eb9 0005 0034 jsr 50034 <_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 ); 4dd6e: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4dd74: 4eb9 0005 1334 jsr 51334 <_Objects_Allocate> <== NOT EXECUTED the_region = _Region_Allocate(); if ( !the_region ) 4dd7a: 508f addql #8,%sp <== NOT EXECUTED 4dd7c: 2440 moveal %d0,%a2 <== NOT EXECUTED 4dd7e: 4a80 tstl %d0 <== NOT EXECUTED 4dd80: 6604 bnes 4dd86 <== NOT EXECUTED 4dd82: 7405 moveq #5,%d2 <== NOT EXECUTED 4dd84: 607e bras 4de04 <== NOT EXECUTED return_status = RTEMS_TOO_MANY; else { the_region->maximum_segment_size = _Heap_Initialize( 4dd86: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4dd88: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4dd8a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4dd8c: 486a 0068 pea %a2@(104) <== NOT EXECUTED 4dd90: 4eb9 0005 0e68 jsr 50e68 <_Heap_Initialize> <== NOT EXECUTED &the_region->Memory, starting_address, length, page_size ); if ( !the_region->maximum_segment_size ) { 4dd96: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED if ( !the_region ) return_status = RTEMS_TOO_MANY; else { the_region->maximum_segment_size = _Heap_Initialize( 4dd9c: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED &the_region->Memory, starting_address, length, page_size ); if ( !the_region->maximum_segment_size ) { 4dda0: 6614 bnes 4ddb6 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Region_Free ( Region_Control *the_region ) { _Objects_Free( &_Region_Information, &the_region->Object ); 4dda2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4dda4: 7408 moveq #8,%d2 <== NOT EXECUTED 4dda6: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4ddac: 4eb9 0005 1634 jsr 51634 <_Objects_Free> <== NOT EXECUTED 4ddb2: 508f addql #8,%sp <== NOT EXECUTED 4ddb4: 604e bras 4de04 <== NOT EXECUTED return_status = RTEMS_INVALID_SIZE; } else { the_region->starting_address = starting_address; 4ddb6: 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( 4ddba: 7001 moveq #1,%d0 <== NOT EXECUTED &_Region_Information, &the_region->Object, (Objects_Name) name ); *id = the_region->Object.id; 4ddbc: 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; 4ddbe: 2543 0060 movel %d3,%a2@(96) <== NOT EXECUTED the_region->number_of_used_blocks = 0; _Thread_queue_Initialize( 4ddc2: e48b lsrl #2,%d3 <== NOT EXECUTED } else { the_region->starting_address = starting_address; the_region->length = length; 4ddc4: 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( 4ddc8: c083 andl %d3,%d0 <== NOT EXECUTED else { the_region->starting_address = starting_address; the_region->length = length; the_region->page_size = page_size; 4ddca: 2545 0058 movel %d5,%a2@(88) <== NOT EXECUTED the_region->attribute_set = attribute_set; the_region->number_of_used_blocks = 0; 4ddce: 42aa 0064 clrl %a2@(100) <== NOT EXECUTED _Thread_queue_Initialize( 4ddd2: 4878 0006 pea 6 <== NOT EXECUTED 4ddd6: 4878 0040 pea 40 <== NOT EXECUTED 4ddda: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4dddc: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4dde0: 4eb9 0005 2660 jsr 52660 <_Thread_queue_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4dde6: 2079 0006 d8d6 moveal 6d8d6 <_Region_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4ddec: 2546 000c movel %d6,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4ddf0: 4280 clrl %d0 <== NOT EXECUTED 4ddf2: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED &_Region_Information, &the_region->Object, (Objects_Name) name ); *id = the_region->Object.id; 4ddf6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4ddfc: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED 4de00: 26aa 0008 movel %a2@(8),%a3@ <== NOT EXECUTED return_status = RTEMS_SUCCESSFUL; } } _RTEMS_Unlock_allocator(); 4de04: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4de0a: 4eb9 0005 0098 jsr 50098 <_API_Mutex_Unlock> <== NOT EXECUTED 4de10: 588f addql #4,%sp <== NOT EXECUTED 4de12: 6002 bras 4de16 <== NOT EXECUTED return return_status; 4de14: 7409 moveq #9,%d2 <== NOT EXECUTED } 4de16: 2002 movel %d2,%d0 <== NOT EXECUTED 4de18: 4cee 0c7c ffe4 moveml %fp@(-28),%d2-%d6/%a2-%a3 <== NOT EXECUTED 4de1e: 4e5e unlk %fp <== NOT EXECUTED 4de20: 4e75 rts <== NOT EXECUTED ... 0004de24 : */ rtems_status_code rtems_region_delete( Objects_Id id ) { 4de24: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4de28: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4de2a: 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(); 4de2c: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4de32: 4eb9 0005 0034 jsr 50034 <_API_Mutex_Lock> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Region_Control *_Region_Get ( Objects_Id id, Objects_Locations *location ) { return (Region_Control *) 4de38: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4de3c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4de40: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4de46: 4eb9 0005 1794 jsr 51794 <_Objects_Get_no_protection> <== NOT EXECUTED 4de4c: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4de4e: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4de52: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4de58: 670e beqs 4de68 <== NOT EXECUTED 4de5a: 7201 moveq #1,%d1 <== NOT EXECUTED 4de5c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4de5e: 6604 bnes 4de64 <== NOT EXECUTED 4de60: 7404 moveq #4,%d2 <== NOT EXECUTED 4de62: 6032 bras 4de96 <== NOT EXECUTED 4de64: 7419 moveq #25,%d2 <== NOT EXECUTED 4de66: 602e bras 4de96 <== NOT EXECUTED case OBJECTS_LOCAL: _Region_Debug_Walk( the_region, 5 ); if ( the_region->number_of_used_blocks != 0 ) 4de68: 4aaa 0064 tstl %a2@(100) <== NOT EXECUTED 4de6c: 6704 beqs 4de72 <== NOT EXECUTED 4de6e: 740c moveq #12,%d2 <== NOT EXECUTED 4de70: 6024 bras 4de96 <== NOT EXECUTED return_status = RTEMS_RESOURCE_IN_USE; else { _Objects_Close( &_Region_Information, &the_region->Object ); 4de72: 2f0a movel %a2,%sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Region_Free ( Region_Control *the_region ) { _Objects_Free( &_Region_Information, &the_region->Object ); 4de74: 4282 clrl %d2 <== NOT EXECUTED 4de76: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4de7c: 4eb9 0005 13bc jsr 513bc <_Objects_Close> <== NOT EXECUTED 4de82: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4de84: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4de8a: 4eb9 0005 1634 jsr 51634 <_Objects_Free> <== NOT EXECUTED 4de90: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4de96: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4de9c: 4eb9 0005 0098 jsr 50098 <_API_Mutex_Unlock> <== NOT EXECUTED return return_status; } 4dea2: 2002 movel %d2,%d0 <== NOT EXECUTED 4dea4: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4dea8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4deac: 4e5e unlk %fp <== NOT EXECUTED 4deae: 4e75 rts 0004deb0 : rtems_status_code rtems_region_extend( Objects_Id id, void *starting_address, uint32_t length ) { 4deb0: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 4deb4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4deb6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4deb8: 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 ) 4debc: 6608 bnes 4dec6 <== NOT EXECUTED 4debe: 143c 0009 moveb #9,%d2 <== NOT EXECUTED 4dec2: 6000 008e braw 4df52 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); /* to prevent deletion */ 4dec6: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4decc: 4eb9 0005 0034 jsr 50034 <_API_Mutex_Lock> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Region_Control *_Region_Get ( Objects_Id id, Objects_Locations *location ) { return (Region_Control *) 4ded2: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4ded6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4deda: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4dee0: 4eb9 0005 1794 jsr 51794 <_Objects_Get_no_protection> <== NOT EXECUTED 4dee6: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4dee8: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 4deec: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4def2: 670a beqs 4defe <== NOT EXECUTED 4def4: 7201 moveq #1,%d1 <== NOT EXECUTED 4def6: b280 cmpl %d0,%d1 <== NOT EXECUTED 4def8: 6648 bnes 4df42 <== NOT EXECUTED 4defa: 7404 moveq #4,%d2 <== NOT EXECUTED 4defc: 6046 bras 4df44 <== NOT EXECUTED case OBJECTS_LOCAL: heap_status = _Heap_Extend( 4defe: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4df02: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4df06: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4df08: 486a 0068 pea %a2@(104) <== NOT EXECUTED 4df0c: 4eb9 0005 0b90 jsr 50b90 <_Heap_Extend> <== NOT EXECUTED starting_address, length, &amount_extended ); switch ( heap_status ) { 4df12: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4df18: 7201 moveq #1,%d1 <== NOT EXECUTED 4df1a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4df1c: 670c beqs 4df2a <== NOT EXECUTED 4df1e: 620e bhis 4df2e <== NOT EXECUTED 4df20: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 4df24: b280 cmpl %d0,%d1 <== NOT EXECUTED 4df26: 661a bnes 4df42 <== NOT EXECUTED 4df28: 6014 bras 4df3e <== NOT EXECUTED 4df2a: 7409 moveq #9,%d2 <== NOT EXECUTED 4df2c: 6016 bras 4df44 <== NOT EXECUTED case HEAP_EXTEND_SUCCESSFUL: the_region->length += amount_extended; 4df2e: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED the_region->maximum_segment_size += amount_extended; 4df32: d1aa 005c addl %d0,%a2@(92) <== NOT EXECUTED &amount_extended ); switch ( heap_status ) { case HEAP_EXTEND_SUCCESSFUL: the_region->length += amount_extended; 4df36: d1aa 0054 addl %d0,%a2@(84) <== NOT EXECUTED the_region->maximum_segment_size += amount_extended; 4df3a: 4282 clrl %d2 <== NOT EXECUTED 4df3c: 6006 bras 4df44 <== NOT EXECUTED return_status = RTEMS_SUCCESSFUL; break; 4df3e: 7418 moveq #24,%d2 <== NOT EXECUTED 4df40: 6002 bras 4df44 <== NOT EXECUTED 4df42: 7419 moveq #25,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4df44: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4df4a: 4eb9 0005 0098 jsr 50098 <_API_Mutex_Unlock> <== NOT EXECUTED 4df50: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 4df52: 2002 movel %d2,%d0 <== NOT EXECUTED 4df54: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 4df58: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4df5c: 4e5e unlk %fp <== NOT EXECUTED 4df5e: 4e75 rts 0004df60 : rtems_status_code rtems_region_get_free_information( Objects_Id id, Heap_Information_block *the_info ) { 4df60: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4df64: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4df66: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4df6a: 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 ) 4df6c: 4a8a tstl %a2 <== NOT EXECUTED 4df6e: 6604 bnes 4df74 <== NOT EXECUTED 4df70: 7409 moveq #9,%d2 <== NOT EXECUTED 4df72: 6066 bras 4dfda <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 4df74: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4df7a: 4eb9 0005 0034 jsr 50034 <_API_Mutex_Lock> <== NOT EXECUTED 4df80: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4df84: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4df88: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4df8e: 4eb9 0005 1794 jsr 51794 <_Objects_Get_no_protection> <== NOT EXECUTED 4df94: 2040 moveal %d0,%a0 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4df96: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4df9a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4dfa0: 670e beqs 4dfb0 <== NOT EXECUTED 4dfa2: 7201 moveq #1,%d1 <== NOT EXECUTED 4dfa4: b280 cmpl %d0,%d1 <== NOT EXECUTED 4dfa6: 6604 bnes 4dfac <== NOT EXECUTED 4dfa8: 7404 moveq #4,%d2 <== NOT EXECUTED 4dfaa: 6020 bras 4dfcc <== NOT EXECUTED 4dfac: 7419 moveq #25,%d2 <== NOT EXECUTED 4dfae: 601c bras 4dfcc <== 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 ); 4dfb0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4dfb2: 4282 clrl %d2 <== NOT EXECUTED 4dfb4: 4868 0068 pea %a0@(104) <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: the_info->Used.number = 0; 4dfb8: 42aa 000c clrl %a2@(12) <== NOT EXECUTED the_info->Used.total = 0; 4dfbc: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED the_info->Used.largest = 0; 4dfc0: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED _Heap_Get_free_information( &the_region->Memory, &the_info->Free ); 4dfc4: 4eb9 0005 0da8 jsr 50da8 <_Heap_Get_free_information> <== NOT EXECUTED 4dfca: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4dfcc: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4dfd2: 4eb9 0005 0098 jsr 50098 <_API_Mutex_Unlock> <== NOT EXECUTED 4dfd8: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 4dfda: 2002 movel %d2,%d0 <== NOT EXECUTED 4dfdc: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4dfe0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4dfe4: 4e5e unlk %fp <== NOT EXECUTED 4dfe6: 4e75 rts 0004dfe8 : rtems_status_code rtems_region_get_information( Objects_Id id, Heap_Information_block *the_info ) { 4dfe8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4dfec: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4dfee: 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 ) 4dff2: 6606 bnes 4dffa <== NOT EXECUTED 4dff4: 143c 0009 moveb #9,%d2 <== NOT EXECUTED 4dff8: 6062 bras 4e05c <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 4dffa: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e000: 4eb9 0005 0034 jsr 50034 <_API_Mutex_Lock> <== NOT EXECUTED 4e006: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4e00a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e00e: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4e014: 4eb9 0005 1794 jsr 51794 <_Objects_Get_no_protection> <== NOT EXECUTED 4e01a: 2040 moveal %d0,%a0 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4e01c: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4e020: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e026: 670e beqs 4e036 <== NOT EXECUTED 4e028: 7201 moveq #1,%d1 <== NOT EXECUTED 4e02a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4e02c: 6604 bnes 4e032 <== NOT EXECUTED 4e02e: 7404 moveq #4,%d2 <== NOT EXECUTED 4e030: 601c bras 4e04e <== NOT EXECUTED 4e032: 7419 moveq #25,%d2 <== NOT EXECUTED 4e034: 6018 bras 4e04e <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Heap_Get_information( &the_region->Memory, the_info ) != 4e036: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4e038: 4868 0068 pea %a0@(104) <== NOT EXECUTED 4e03c: 4eb9 0005 0dec jsr 50dec <_Heap_Get_information> <== NOT EXECUTED 4e042: 508f addql #8,%sp <== NOT EXECUTED 4e044: 4a80 tstl %d0 <== NOT EXECUTED 4e046: 6604 bnes 4e04c <== NOT EXECUTED 4e048: 4282 clrl %d2 <== NOT EXECUTED 4e04a: 6002 bras 4e04e <== NOT EXECUTED 4e04c: 7409 moveq #9,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e04e: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e054: 4eb9 0005 0098 jsr 50098 <_API_Mutex_Unlock> <== NOT EXECUTED 4e05a: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 4e05c: 2002 movel %d2,%d0 <== NOT EXECUTED 4e05e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4e062: 4e5e unlk %fp <== NOT EXECUTED 4e064: 4e75 rts <== NOT EXECUTED ... 0004e068 : uint32_t size, rtems_option option_set, rtems_interval timeout, void **segment ) { 4e068: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4e06c: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 4e070: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4e074: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4e078: 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 ) 4e07c: 4a8c tstl %a4 <== NOT EXECUTED 4e07e: 6606 bnes 4e086 <== NOT EXECUTED 4e080: 7409 moveq #9,%d2 <== NOT EXECUTED 4e082: 6000 00f2 braw 4e176 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; *segment = NULL; 4e086: 4294 clrl %a4@ <== NOT EXECUTED if ( size == 0 ) 4e088: 4a82 tstl %d2 <== NOT EXECUTED 4e08a: 6608 bnes 4e094 <== NOT EXECUTED 4e08c: 143c 0008 moveb #8,%d2 <== NOT EXECUTED 4e090: 6000 00e4 braw 4e176 <== NOT EXECUTED return RTEMS_INVALID_SIZE; _RTEMS_Lock_allocator(); 4e094: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e09a: 4eb9 0005 0034 jsr 50034 <_API_Mutex_Lock> <== NOT EXECUTED 4e0a0: 486e fffc pea %fp@(-4) <== NOT EXECUTED executing = _Thread_Executing; 4e0a4: 2679 0006 dad6 moveal 6dad6 <_Thread_Executing>,%a3 <== NOT EXECUTED 4e0aa: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4e0ac: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4e0b2: 4eb9 0005 1794 jsr 51794 <_Objects_Get_no_protection> <== NOT EXECUTED 4e0b8: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4e0ba: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4e0be: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e0c4: 670e beqs 4e0d4 <== NOT EXECUTED 4e0c6: 7201 moveq #1,%d1 <== NOT EXECUTED 4e0c8: b280 cmpl %d0,%d1 <== NOT EXECUTED 4e0ca: 6700 009a beqw 4e166 <== NOT EXECUTED 4e0ce: 7419 moveq #25,%d2 <== NOT EXECUTED 4e0d0: 6000 0096 braw 4e168 <== NOT EXECUTED case OBJECTS_LOCAL: if ( size > the_region->maximum_segment_size ) 4e0d4: b4aa 005c cmpl %a2@(92),%d2 <== NOT EXECUTED 4e0d8: 6306 blss 4e0e0 <== NOT EXECUTED 4e0da: 7408 moveq #8,%d2 <== NOT EXECUTED 4e0dc: 6000 008a braw 4e168 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void *_Region_Allocate_segment ( Region_Control *the_region, uint32_t size ) { return _Heap_Allocate( &the_region->Memory, size ); 4e0e0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4e0e2: 486a 0068 pea %a2@(104) <== NOT EXECUTED 4e0e6: 4eb9 0005 0b10 jsr 50b10 <_Heap_Allocate> <== NOT EXECUTED the_segment = _Region_Allocate_segment( the_region, size ); _Region_Debug_Walk( the_region, 2 ); if ( the_segment ) { 4e0ec: 508f addql #8,%sp <== NOT EXECUTED 4e0ee: 4a80 tstl %d0 <== NOT EXECUTED 4e0f0: 670a beqs 4e0fc <== NOT EXECUTED the_region->number_of_used_blocks += 1; 4e0f2: 52aa 0064 addql #1,%a2@(100) <== NOT EXECUTED *segment = the_segment; 4e0f6: 4282 clrl %d2 <== NOT EXECUTED 4e0f8: 2880 movel %d0,%a4@ <== NOT EXECUTED 4e0fa: 606c bras 4e168 <== NOT EXECUTED return_status = RTEMS_SUCCESSFUL; } else if ( _Options_Is_no_wait( option_set ) ) { 4e0fc: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 4e100: 0800 0000 btst #0,%d0 <== NOT EXECUTED 4e104: 6704 beqs 4e10a <== NOT EXECUTED 4e106: 740d moveq #13,%d2 <== NOT EXECUTED 4e108: 605e bras 4e168 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4e10a: 2039 0006 da18 movel 6da18 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4e110: 5280 addql #1,%d0 <== NOT EXECUTED 4e112: 23c0 0006 da18 movel %d0,6da18 <_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(); 4e118: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e11e: 4eb9 0005 0098 jsr 50098 <_API_Mutex_Unlock> <== NOT EXECUTED executing->Wait.queue = &the_region->Wait_queue; 4e124: 200a movel %a2,%d0 <== NOT EXECUTED 4e126: 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; 4e12c: 7201 moveq #1,%d1 <== NOT EXECUTED 4e12e: 2541 0040 movel %d1,%a2@(64) <== NOT EXECUTED executing->Wait.id = id; executing->Wait.count = size; 4e132: 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; 4e136: 2740 0044 movel %d0,%a3@(68) <== NOT EXECUTED executing->Wait.id = id; 4e13a: 2743 0020 movel %d3,%a3@(32) <== NOT EXECUTED executing->Wait.count = size; executing->Wait.return_argument = segment; 4e13e: 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 ); 4e142: 4879 0005 274c pea 5274c <_Thread_queue_Timeout> <== NOT EXECUTED 4e148: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4e14c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4e14e: 4eb9 0005 2414 jsr 52414 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 4e154: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED return (rtems_status_code) executing->Wait.return_code; 4e15a: 242b 0034 movel %a3@(52),%d2 <== NOT EXECUTED 4e15e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e164: 6010 bras 4e176 <== NOT EXECUTED 4e166: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e168: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e16e: 4eb9 0005 0098 jsr 50098 <_API_Mutex_Unlock> <== NOT EXECUTED 4e174: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 4e176: 2002 movel %d2,%d0 <== NOT EXECUTED 4e178: 4cee 1c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a4 <== NOT EXECUTED 4e17e: 4e5e unlk %fp <== NOT EXECUTED 4e180: 4e75 rts <== NOT EXECUTED ... 0004e184 : rtems_status_code rtems_region_get_segment_size( Objects_Id id, void *segment, size_t *size ) { 4e184: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4e188: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4e18a: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4e18e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4e190: 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 ) 4e194: 4a83 tstl %d3 <== NOT EXECUTED 4e196: 676e beqs 4e206 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !size ) 4e198: 4a82 tstl %d2 <== NOT EXECUTED 4e19a: 676a beqs 4e206 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 4e19c: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e1a2: 4eb9 0005 0034 jsr 50034 <_API_Mutex_Lock> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Region_Control *_Region_Get ( Objects_Id id, Objects_Locations *location ) { return (Region_Control *) 4e1a8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4e1ac: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e1b0: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4e1b6: 4eb9 0005 1794 jsr 51794 <_Objects_Get_no_protection> <== NOT EXECUTED 4e1bc: 2040 moveal %d0,%a0 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4e1be: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4e1c2: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e1c8: 670e beqs 4e1d8 <== NOT EXECUTED 4e1ca: 7201 moveq #1,%d1 <== NOT EXECUTED 4e1cc: b280 cmpl %d0,%d1 <== NOT EXECUTED 4e1ce: 6604 bnes 4e1d4 <== NOT EXECUTED 4e1d0: 7404 moveq #4,%d2 <== NOT EXECUTED 4e1d2: 6022 bras 4e1f6 <== NOT EXECUTED 4e1d4: 7419 moveq #25,%d2 <== NOT EXECUTED 4e1d6: 601e bras 4e1f6 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Heap_Size_of_user_area( &the_region->Memory, segment, size ) ) 4e1d8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4e1da: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4e1dc: 4868 0068 pea %a0@(104) <== NOT EXECUTED 4e1e0: 4eb9 0005 11e4 jsr 511e4 <_Heap_Size_of_user_area> <== NOT EXECUTED 4e1e6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4e1ec: 4a00 tstb %d0 <== NOT EXECUTED 4e1ee: 6704 beqs 4e1f4 <== NOT EXECUTED 4e1f0: 4282 clrl %d2 <== NOT EXECUTED 4e1f2: 6002 bras 4e1f6 <== NOT EXECUTED 4e1f4: 7409 moveq #9,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e1f6: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e1fc: 4eb9 0005 0098 jsr 50098 <_API_Mutex_Unlock> <== NOT EXECUTED 4e202: 588f addql #4,%sp <== NOT EXECUTED 4e204: 6002 bras 4e208 <== NOT EXECUTED return return_status; 4e206: 7409 moveq #9,%d2 <== NOT EXECUTED } 4e208: 2002 movel %d2,%d0 <== NOT EXECUTED 4e20a: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4e20e: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 4e212: 4e5e unlk %fp <== NOT EXECUTED 4e214: 4e75 rts <== NOT EXECUTED ... 0004e218 : rtems_status_code rtems_region_ident( rtems_name name, Objects_Id *id ) { 4e218: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 4e21c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4e220: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 4e226: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e22a: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4e230: 4eb9 0005 1930 jsr 51930 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4e236: 41f9 0006 6922 lea 66922 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 4e23c: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4e240: 4e5e unlk %fp <== NOT EXECUTED 4e242: 4e75 rts 0004e244 : Objects_Id id, void *segment, size_t size, size_t *old_size ) { 4e244: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4e248: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4e24c: 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 ) 4e250: 4a8b tstl %a3 <== NOT EXECUTED 4e252: 6700 00a0 beqw 4e2f4 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 4e256: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e25c: 4eb9 0005 0034 jsr 50034 <_API_Mutex_Lock> <== NOT EXECUTED 4e262: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4e266: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e26a: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4e270: 4eb9 0005 1794 jsr 51794 <_Objects_Get_no_protection> <== NOT EXECUTED 4e276: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4e278: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 4e27c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e282: 670a beqs 4e28e <== NOT EXECUTED 4e284: 7201 moveq #1,%d1 <== NOT EXECUTED 4e286: b280 cmpl %d0,%d1 <== NOT EXECUTED 4e288: 6758 beqs 4e2e2 <== NOT EXECUTED 4e28a: 7419 moveq #25,%d2 <== NOT EXECUTED 4e28c: 6056 bras 4e2e4 <== NOT EXECUTED case OBJECTS_LOCAL: _Region_Debug_Walk( the_region, 7 ); status = _Heap_Resize_block( 4e28e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4e292: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 4e296: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4e29a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4e29e: 486a 0068 pea %a2@(104) <== NOT EXECUTED 4e2a2: 4eb9 0005 103c jsr 5103c <_Heap_Resize_block> <== NOT EXECUTED segment, (uint32_t) size, &osize, &avail_size ); *old_size = (uint32_t) osize; 4e2a8: 26ae fff4 movel %fp@(-12),%a3@ <== NOT EXECUTED case OBJECTS_LOCAL: _Region_Debug_Walk( the_region, 7 ); status = _Heap_Resize_block( 4e2ac: 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 ) 4e2ae: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4e2b4: 6610 bnes 4e2c6 <== NOT EXECUTED 4e2b6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4e2ba: 670a beqs 4e2c6 <== NOT EXECUTED _Region_Process_queue( the_region ); /* unlocks allocator */ 4e2bc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4e2be: 4eb9 0005 5444 jsr 55444 <_Region_Process_queue> <== NOT EXECUTED 4e2c4: 602a bras 4e2f0 <== NOT EXECUTED else _RTEMS_Unlock_allocator(); 4e2c6: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e2cc: 4eb9 0005 0098 jsr 50098 <_API_Mutex_Unlock> <== NOT EXECUTED return 4e2d2: 588f addql #4,%sp <== NOT EXECUTED 4e2d4: 4a82 tstl %d2 <== NOT EXECUTED 4e2d6: 671e beqs 4e2f6 <== NOT EXECUTED 4e2d8: 7001 moveq #1,%d0 <== NOT EXECUTED 4e2da: b082 cmpl %d2,%d0 <== NOT EXECUTED 4e2dc: 6616 bnes 4e2f4 <== NOT EXECUTED 4e2de: 740d moveq #13,%d2 <== NOT EXECUTED 4e2e0: 6014 bras 4e2f6 <== NOT EXECUTED 4e2e2: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e2e4: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e2ea: 4eb9 0005 0098 jsr 50098 <_API_Mutex_Unlock> <== NOT EXECUTED 4e2f0: 588f addql #4,%sp <== NOT EXECUTED 4e2f2: 6002 bras 4e2f6 <== NOT EXECUTED return return_status; 4e2f4: 7409 moveq #9,%d2 <== NOT EXECUTED } 4e2f6: 2002 movel %d2,%d0 <== NOT EXECUTED 4e2f8: 4cee 0c04 ffe8 moveml %fp@(-24),%d2/%a2-%a3 <== NOT EXECUTED 4e2fe: 4e5e unlk %fp <== NOT EXECUTED 4e300: 4e75 rts <== NOT EXECUTED ... 0004e304 : rtems_status_code rtems_region_return_segment( Objects_Id id, void *segment ) { 4e304: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4e308: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4e30a: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t size; #endif int status; register Region_Control *the_region; _RTEMS_Lock_allocator(); 4e30c: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e312: 4eb9 0005 0034 jsr 50034 <_API_Mutex_Lock> <== NOT EXECUTED 4e318: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4e31c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e320: 4879 0006 d8bc pea 6d8bc <_Region_Information> <== NOT EXECUTED 4e326: 4eb9 0005 1794 jsr 51794 <_Objects_Get_no_protection> <== NOT EXECUTED 4e32c: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 4e32e: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 4e332: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4e338: 670e beqs 4e348 <== NOT EXECUTED 4e33a: 7201 moveq #1,%d1 <== NOT EXECUTED 4e33c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4e33e: 6604 bnes 4e344 <== NOT EXECUTED 4e340: 7404 moveq #4,%d2 <== NOT EXECUTED 4e342: 602a bras 4e36e <== NOT EXECUTED 4e344: 7419 moveq #25,%d2 <== NOT EXECUTED 4e346: 6026 bras 4e36e <== NOT EXECUTED RTEMS_INLINE_ROUTINE bool _Region_Free_segment ( Region_Control *the_region, void *the_segment ) { return _Heap_Free( &the_region->Memory, the_segment ); 4e348: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4e34c: 486a 0068 pea %a2@(104) <== NOT EXECUTED 4e350: 4eb9 0005 0c24 jsr 50c24 <_Heap_Free> <== NOT EXECUTED #endif status = _Region_Free_segment( the_region, segment ); _Region_Debug_Walk( the_region, 4 ); if ( !status ) 4e356: 508f addql #8,%sp <== NOT EXECUTED 4e358: 4a00 tstb %d0 <== NOT EXECUTED 4e35a: 6710 beqs 4e36c <== NOT EXECUTED return_status = RTEMS_INVALID_ADDRESS; else { the_region->number_of_used_blocks -= 1; 4e35c: 53aa 0064 subql #1,%a2@(100) <== NOT EXECUTED _Region_Process_queue(the_region); /* unlocks allocator */ 4e360: 4282 clrl %d2 <== NOT EXECUTED 4e362: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4e364: 4eb9 0005 5444 jsr 55444 <_Region_Process_queue> <== NOT EXECUTED 4e36a: 600e bras 4e37a <== NOT EXECUTED return RTEMS_SUCCESSFUL; 4e36c: 7409 moveq #9,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e36e: 2f39 0006 dace movel 6dace <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4e374: 4eb9 0005 0098 jsr 50098 <_API_Mutex_Unlock> <== NOT EXECUTED return return_status; } 4e37a: 2002 movel %d2,%d0 <== NOT EXECUTED 4e37c: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4e380: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 4e384: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 4e386: 4e5e unlk %fp <== NOT EXECUTED 4e388: 4e75 rts <== NOT EXECUTED ... 00044c10 : uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id ) { 44c10: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 44c14: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 44c18: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 44c1c: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 44c20: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 44c24: 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 ) ) 44c28: 4a85 tstl %d5 <== NOT EXECUTED 44c2a: 6606 bnes 44c32 <== NOT EXECUTED 44c2c: 7003 moveq #3,%d0 <== NOT EXECUTED 44c2e: 6000 0172 braw 44da2 <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 44c32: 4a8b tstl %a3 <== NOT EXECUTED 44c34: 6606 bnes 44c3c <== NOT EXECUTED 44c36: 7009 moveq #9,%d0 <== NOT EXECUTED 44c38: 6000 0168 braw 44da2 <== NOT EXECUTED uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id ) { 44c3c: 2202 movel %d2,%d1 <== NOT EXECUTED 44c3e: 0281 0000 00c0 andil #192,%d1 <== NOT EXECUTED return RTEMS_NOT_DEFINED; } else #endif if ( _Attributes_Is_inherit_priority( attribute_set ) || 44c44: 6724 beqs 44c6a <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Attributes_Is_binary_semaphore( rtems_attribute attribute_set ) { return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_BINARY_SEMAPHORE); 44c46: 7030 moveq #48,%d0 <== NOT EXECUTED 44c48: c082 andl %d2,%d0 <== NOT EXECUTED _Attributes_Is_priority_ceiling( attribute_set ) ) { if ( ! ( (_Attributes_Is_binary_semaphore( attribute_set ) || 44c4a: 7610 moveq #16,%d3 <== NOT EXECUTED 44c4c: b680 cmpl %d0,%d3 <== NOT EXECUTED 44c4e: 670a beqs 44c5a <== NOT EXECUTED 44c50: 163c 0020 moveb #32,%d3 <== NOT EXECUTED 44c54: b680 cmpl %d0,%d3 <== NOT EXECUTED 44c56: 6600 0148 bnew 44da0 <== NOT EXECUTED 44c5a: 44c2 movew %d2,%ccr <== NOT EXECUTED 44c5c: 6600 0142 bnew 44da0 <== NOT EXECUTED _Attributes_Is_priority( attribute_set ) ) ) return RTEMS_NOT_DEFINED; } if ( _Attributes_Is_inherit_priority( attribute_set ) && 44c60: 0c81 0000 00c0 cmpil #192,%d1 <== NOT EXECUTED 44c66: 6700 0138 beqw 44da0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Attributes_Is_counting_semaphore( rtems_attribute attribute_set ) { return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_COUNTING_SEMAPHORE); 44c6a: 7630 moveq #48,%d3 <== NOT EXECUTED 44c6c: 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 ) ) 44c6e: 670e beqs 44c7e <== NOT EXECUTED 44c70: 7001 moveq #1,%d0 <== NOT EXECUTED 44c72: b084 cmpl %d4,%d0 <== NOT EXECUTED 44c74: 6408 bccs 44c7e <== NOT EXECUTED 44c76: 103c 000a moveb #10,%d0 <== NOT EXECUTED 44c7a: 6000 0126 braw 44da2 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 44c7e: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44c84: 5280 addql #1,%d0 <== NOT EXECUTED 44c86: 23c0 0005 7e7c movel %d0,57e7c <_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 ); 44c8c: 4879 0005 7db0 pea 57db0 <_Semaphore_Information> <== NOT EXECUTED 44c92: 4eb9 0004 60c8 jsr 460c8 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_semaphore = _Semaphore_Allocate(); if ( !the_semaphore ) { 44c98: 588f addql #4,%sp <== NOT EXECUTED 44c9a: 2440 moveal %d0,%a2 <== NOT EXECUTED 44c9c: 4a80 tstl %d0 <== NOT EXECUTED 44c9e: 660c bnes 44cac <== NOT EXECUTED _Thread_Enable_dispatch(); 44ca0: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 44ca6: 7005 moveq #5,%d0 <== NOT EXECUTED 44ca8: 6000 00f8 braw 44da2 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } #endif the_semaphore->attribute_set = attribute_set; 44cac: 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 ) ) { 44cb0: 4a83 tstl %d3 <== NOT EXECUTED 44cb2: 6700 009a beqw 44d4e <== NOT EXECUTED CORE_mutex_Status mutex_status; if ( _Attributes_Is_inherit_priority( attribute_set ) ) 44cb6: 0802 0006 btst #6,%d2 <== NOT EXECUTED 44cba: 6708 beqs 44cc4 <== NOT EXECUTED the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT; 44cbc: 7202 moveq #2,%d1 <== NOT EXECUTED 44cbe: 2d41 fff0 movel %d1,%fp@(-16) <== NOT EXECUTED 44cc2: 6014 bras 44cd8 <== NOT EXECUTED else if ( _Attributes_Is_priority_ceiling( attribute_set ) ) 44cc4: 4a02 tstb %d2 <== NOT EXECUTED 44cc6: 6c04 bges 44ccc <== NOT EXECUTED the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING; 44cc8: 7003 moveq #3,%d0 <== NOT EXECUTED 44cca: 6008 bras 44cd4 <== NOT EXECUTED else if ( _Attributes_Is_priority( attribute_set ) ) the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY; 44ccc: 44c2 movew %d2,%ccr <== NOT EXECUTED 44cce: 56c0 sne %d0 <== NOT EXECUTED 44cd0: 49c0 extbl %d0 <== NOT EXECUTED 44cd2: 5280 addql #1,%d0 <== NOT EXECUTED 44cd4: 2d40 fff0 movel %d0,%fp@(-16) <== NOT EXECUTED else the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_FIFO; if ( _Attributes_Is_binary_semaphore( attribute_set ) ) { 44cd8: 7210 moveq #16,%d1 <== NOT EXECUTED 44cda: b283 cmpl %d3,%d1 <== NOT EXECUTED 44cdc: 661e bnes 44cfc <== NOT EXECUTED the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; switch ( the_mutex_attributes.discipline ) { 44cde: 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; 44ce2: 42ae ffea clrl %fp@(-22) <== NOT EXECUTED switch ( the_mutex_attributes.discipline ) { 44ce6: 7601 moveq #1,%d3 <== NOT EXECUTED 44ce8: b680 cmpl %d0,%d3 <== NOT EXECUTED 44cea: 6416 bccs 44d02 <== NOT EXECUTED 44cec: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 44cf0: b280 cmpl %d0,%d1 <== NOT EXECUTED 44cf2: 6514 bcss 44d08 <== 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; 44cf4: 7001 moveq #1,%d0 <== NOT EXECUTED 44cf6: 1d40 ffee moveb %d0,%fp@(-18) <== NOT EXECUTED 44cfa: 600c bras 44d08 <== NOT EXECUTED break; } } else { the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_BLOCKS; 44cfc: 7202 moveq #2,%d1 <== NOT EXECUTED 44cfe: 2d41 ffea movel %d1,%fp@(-22) <== NOT EXECUTED the_mutex_attributes.only_owner_release = FALSE; 44d02: 4203 clrb %d3 <== NOT EXECUTED 44d04: 1d43 ffee moveb %d3,%fp@(-18) <== NOT EXECUTED } the_mutex_attributes.priority_ceiling = priority_ceiling; mutex_status = _CORE_mutex_Initialize( 44d08: 7001 moveq #1,%d0 <== NOT EXECUTED 44d0a: b084 cmpl %d4,%d0 <== NOT EXECUTED 44d0c: 57c0 seq %d0 <== NOT EXECUTED 44d0e: 49c0 extbl %d0 <== NOT EXECUTED 44d10: 4480 negl %d0 <== NOT EXECUTED 44d12: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44d14: 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; 44d18: 2d6e 0014 fff4 movel %fp@(20),%fp@(-12) <== NOT EXECUTED mutex_status = _CORE_mutex_Initialize( 44d1e: 486a 0014 pea %a2@(20) <== NOT EXECUTED 44d22: 4eb9 0004 59a8 jsr 459a8 <_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 ) { 44d28: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44d2e: 7206 moveq #6,%d1 <== NOT EXECUTED 44d30: b280 cmpl %d0,%d1 <== NOT EXECUTED 44d32: 664a bnes 44d7e <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Semaphore_Free ( Semaphore_Control *the_semaphore ) { _Objects_Free( &_Semaphore_Information, &the_semaphore->Object ); 44d34: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44d36: 4879 0005 7db0 pea 57db0 <_Semaphore_Information> <== NOT EXECUTED 44d3c: 4eb9 0004 63c8 jsr 463c8 <_Objects_Free> <== NOT EXECUTED _Semaphore_Free( the_semaphore ); _Thread_Enable_dispatch(); 44d42: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 44d48: 508f addql #8,%sp <== NOT EXECUTED 44d4a: 7013 moveq #19,%d0 <== NOT EXECUTED 44d4c: 6054 bras 44da2 <== NOT EXECUTED */ the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM; _CORE_semaphore_Initialize( 44d4e: 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; 44d50: 44c2 movew %d2,%ccr <== NOT EXECUTED 44d52: 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( 44d54: 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; 44d58: 49c0 extbl %d0 <== NOT EXECUTED 44d5a: 5280 addql #1,%d0 <== NOT EXECUTED /* * This effectively disables limit checking. */ the_semaphore_attributes.maximum_count = 0xFFFFFFFF; 44d5c: 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( 44d5e: 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; 44d62: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED /* * This effectively disables limit checking. */ the_semaphore_attributes.maximum_count = 0xFFFFFFFF; 44d66: 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; 44d6a: 42ae ffea clrl %fp@(-22) <== NOT EXECUTED the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM; 44d6e: 42ae fff4 clrl %fp@(-12) <== NOT EXECUTED _CORE_semaphore_Initialize( 44d72: 4eb9 0004 5c7c jsr 45c7c <_CORE_semaphore_Initialize> <== NOT EXECUTED 44d78: dffc 0000 000c addal #12,%sp <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 44d7e: 2079 0005 7dca moveal 57dca <_Semaphore_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 44d84: 2545 000c movel %d5,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 44d88: 4280 clrl %d0 <== NOT EXECUTED 44d8a: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 44d8e: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED &_Semaphore_Information, &the_semaphore->Object, (Objects_Name) name ); *id = the_semaphore->Object.id; 44d92: 26aa 0008 movel %a2@(8),%a3@ <== NOT EXECUTED the_semaphore->Object.id, name, 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); 44d96: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 44d9c: 4280 clrl %d0 <== NOT EXECUTED 44d9e: 6002 bras 44da2 <== NOT EXECUTED return RTEMS_SUCCESSFUL; 44da0: 700b moveq #11,%d0 <== NOT EXECUTED } 44da2: 4cee 0c3c ffd0 moveml %fp@(-48),%d2-%d5/%a2-%a3 <== NOT EXECUTED 44da8: 4e5e unlk %fp <== NOT EXECUTED 44daa: 4e75 rts 00044dac : #endif rtems_status_code rtems_semaphore_delete( rtems_id id ) { 44dac: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44db0: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get ( Objects_Id id, Objects_Locations *location ) { return (Semaphore_Control *) 44db2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44db6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44dba: 4879 0005 7db0 pea 57db0 <_Semaphore_Information> <== NOT EXECUTED 44dc0: 4eb9 0004 6528 jsr 46528 <_Objects_Get> <== NOT EXECUTED register Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { 44dc6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44dcc: 2440 moveal %d0,%a2 <== NOT EXECUTED 44dce: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44dd2: 6704 beqs 44dd8 <== NOT EXECUTED 44dd4: 7004 moveq #4,%d0 <== NOT EXECUTED 44dd6: 606c bras 44e44 <== NOT EXECUTED 44dd8: 7030 moveq #48,%d0 <== NOT EXECUTED 44dda: c0aa 0010 andl %a2@(16),%d0 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 44dde: 6728 beqs 44e08 <== NOT EXECUTED if ( _CORE_mutex_Is_locked( &the_semaphore->Core_control.mutex ) && 44de0: 4aaa 0062 tstl %a2@(98) <== NOT EXECUTED 44de4: 6610 bnes 44df6 <== NOT EXECUTED 44de6: 7220 moveq #32,%d1 <== NOT EXECUTED 44de8: b280 cmpl %d0,%d1 <== NOT EXECUTED 44dea: 670a beqs 44df6 <== NOT EXECUTED !_Attributes_Is_simple_binary_semaphore( the_semaphore->attribute_set ) ) { _Thread_Enable_dispatch(); 44dec: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 44df2: 700c moveq #12,%d0 <== NOT EXECUTED 44df4: 604e bras 44e44 <== NOT EXECUTED return RTEMS_RESOURCE_IN_USE; } _CORE_mutex_Flush( 44df6: 4878 0004 pea 4 <== NOT EXECUTED 44dfa: 42a7 clrl %sp@- <== NOT EXECUTED 44dfc: 486a 0014 pea %a2@(20) <== NOT EXECUTED 44e00: 4eb9 0004 599c jsr 4599c <_CORE_mutex_Flush> <== NOT EXECUTED 44e06: 6010 bras 44e18 <== NOT EXECUTED &the_semaphore->Core_control.mutex, SEMAPHORE_MP_OBJECT_WAS_DELETED, CORE_MUTEX_WAS_DELETED ); } else { _CORE_semaphore_Flush( 44e08: 4878 0002 pea 2 <== NOT EXECUTED 44e0c: 42a7 clrl %sp@- <== NOT EXECUTED 44e0e: 486a 0014 pea %a2@(20) <== NOT EXECUTED 44e12: 4eb9 0004 5c70 jsr 45c70 <_CORE_semaphore_Flush> <== NOT EXECUTED SEMAPHORE_MP_OBJECT_WAS_DELETED, CORE_SEMAPHORE_WAS_DELETED ); } _Objects_Close( &_Semaphore_Information, &the_semaphore->Object ); 44e18: 508f addql #8,%sp <== NOT EXECUTED 44e1a: 2e8a movel %a2,%sp@ <== NOT EXECUTED 44e1c: 4879 0005 7db0 pea 57db0 <_Semaphore_Information> <== NOT EXECUTED 44e22: 4eb9 0004 6150 jsr 46150 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Semaphore_Free ( Semaphore_Control *the_semaphore ) { _Objects_Free( &_Semaphore_Information, &the_semaphore->Object ); 44e28: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44e2a: 4879 0005 7db0 pea 57db0 <_Semaphore_Information> <== NOT EXECUTED 44e30: 4eb9 0004 63c8 jsr 463c8 <_Objects_Free> <== NOT EXECUTED 0, /* Not used */ 0 /* Not used */ ); } #endif _Thread_Enable_dispatch(); 44e36: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 44e3c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44e42: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 44e44: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 44e48: 4e5e unlk %fp <== NOT EXECUTED 44e4a: 4e75 rts 0005dacc : #endif rtems_status_code rtems_semaphore_flush( rtems_id id ) { 5dacc: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 5dad0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5dad4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5dad8: 4879 0009 37ec pea 937ec <_Semaphore_Information> <== NOT EXECUTED 5dade: 4eb9 0004 a24c jsr 4a24c <_Objects_Get> <== NOT EXECUTED register Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { 5dae4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5daea: 2040 moveal %d0,%a0 <== NOT EXECUTED 5daec: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5daf0: 6704 beqs 5daf6 <== NOT EXECUTED 5daf2: 7004 moveq #4,%d0 <== NOT EXECUTED 5daf4: 603c bras 5db32 <== NOT EXECUTED 5daf6: 2200 movel %d0,%d1 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 5daf8: 7030 moveq #48,%d0 <== NOT EXECUTED 5dafa: 0681 0000 0014 addil #20,%d1 <== NOT EXECUTED 5db00: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 5db04: 6710 beqs 5db16 <== NOT EXECUTED _CORE_mutex_Flush( 5db06: 4878 0001 pea 1 <== NOT EXECUTED 5db0a: 42a7 clrl %sp@- <== NOT EXECUTED 5db0c: 2f01 movel %d1,%sp@- <== NOT EXECUTED 5db0e: 4eb9 0004 957c jsr 4957c <_CORE_mutex_Flush> <== NOT EXECUTED 5db14: 600e bras 5db24 <== NOT EXECUTED &the_semaphore->Core_control.mutex, SEND_OBJECT_WAS_DELETED, CORE_MUTEX_STATUS_UNSATISFIED_NOWAIT ); } else { _CORE_semaphore_Flush( 5db16: 4878 0001 pea 1 <== NOT EXECUTED 5db1a: 42a7 clrl %sp@- <== NOT EXECUTED 5db1c: 2f01 movel %d1,%sp@- <== NOT EXECUTED 5db1e: 4eb9 0004 9850 jsr 49850 <_CORE_semaphore_Flush> <== NOT EXECUTED 5db24: 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(); 5db2a: 4eb9 0004 aa9a jsr 4aa9a <_Thread_Enable_dispatch> <== NOT EXECUTED 5db30: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5db32: 4e5e unlk %fp <== NOT EXECUTED 5db34: 4e75 rts <== NOT EXECUTED ... 0004e634 : rtems_status_code rtems_semaphore_ident( rtems_name name, uint32_t node, rtems_id *id ) { 4e634: 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 ); 4e638: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4e63c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4e640: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e644: 4879 0006 d8f8 pea 6d8f8 <_Semaphore_Information> <== NOT EXECUTED 4e64a: 4eb9 0005 1930 jsr 51930 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4e650: 41f9 0006 6922 lea 66922 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; } 4e656: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4e65a: 4e5e unlk %fp <== NOT EXECUTED 4e65c: 4e75 rts <== NOT EXECUTED ... 00044e4c : rtems_status_code rtems_semaphore_obtain( rtems_id id, rtems_option option_set, rtems_interval timeout ) { 44e4c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 44e50: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED Objects_Id id, Objects_Locations *location, ISR_Level *level ) { return (Semaphore_Control *) 44e54: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 44e58: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 44e5c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44e60: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 44e64: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44e66: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED 44e6a: 4879 0005 7db0 pea 57db0 <_Semaphore_Information> <== NOT EXECUTED 44e70: 4eb9 0004 64d8 jsr 464d8 <_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 ) { 44e76: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44e7c: 2240 moveal %d0,%a1 <== NOT EXECUTED 44e7e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44e82: 6706 beqs 44e8a <== NOT EXECUTED 44e84: 7004 moveq #4,%d0 <== NOT EXECUTED 44e86: 6000 00c0 braw 44f48 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 44e8a: 7030 moveq #48,%d0 <== NOT EXECUTED 44e8c: c0a9 0010 andl %a1@(16),%d0 <== NOT EXECUTED 44e90: 6734 beqs 44ec6 <== NOT EXECUTED _CORE_mutex_Seize( 44e92: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 44e96: 7001 moveq #1,%d0 <== NOT EXECUTED 44e98: b182 eorl %d0,%d2 <== NOT EXECUTED 44e9a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 44e9c: c082 andl %d2,%d0 <== NOT EXECUTED 44e9e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44ea0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44ea2: 4869 0014 pea %a1@(20) <== NOT EXECUTED 44ea6: 4eb9 0004 5abc jsr 45abc <_CORE_mutex_Seize> <== NOT EXECUTED id, ((_Options_Is_no_wait( option_set )) ? FALSE : TRUE), timeout, level ); return _Semaphore_Translate_core_mutex_return_code( 44eac: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 44eb2: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 44eb6: 4eb9 0004 4fe0 jsr 44fe0 <_Semaphore_Translate_core_mutex_return_code> <== NOT EXECUTED 44ebc: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 44ec2: 6000 0084 braw 44f48 <== NOT EXECUTED Watchdog_Interval timeout, ISR_Level *level_p ) { Thread_Control *executing; ISR_Level level = *level_p; 44ec6: 222e fff8 movel %fp@(-8),%d1 <== NOT EXECUTED /* disabled when you get here */ executing = _Thread_Executing; 44eca: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL; 44ed0: 42a8 0034 clrl %a0@(52) <== NOT EXECUTED if ( the_semaphore->count != 0 ) { 44ed4: 2029 005c movel %a1@(92),%d0 <== NOT EXECUTED 44ed8: 670a beqs 44ee4 <== NOT EXECUTED the_semaphore->count -= 1; 44eda: 5380 subql #1,%d0 <== NOT EXECUTED 44edc: 2340 005c movel %d0,%a1@(92) <== NOT EXECUTED _ISR_Enable( level ); 44ee0: 46c1 movew %d1,%sr <== NOT EXECUTED 44ee2: 6052 bras 44f36 <== NOT EXECUTED return; } if ( !wait ) { 44ee4: 0802 0000 btst #0,%d2 <== NOT EXECUTED 44ee8: 670a beqs 44ef4 <== NOT EXECUTED _ISR_Enable( level ); 44eea: 46c1 movew %d1,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT; 44eec: 7001 moveq #1,%d0 <== NOT EXECUTED 44eee: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED 44ef2: 6042 bras 44f36 <== NOT EXECUTED 44ef4: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 44efa: 5280 addql #1,%d0 <== NOT EXECUTED 44efc: 23c0 0005 7e7c movel %d0,57e7c <_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; 44f02: 7001 moveq #1,%d0 <== NOT EXECUTED 44f04: 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; 44f08: 2009 movel %a1,%d0 <== NOT EXECUTED 44f0a: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED executing->Wait.id = id; 44f10: 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; 44f14: 2140 0044 movel %d0,%a0@(68) <== NOT EXECUTED executing->Wait.id = id; _ISR_Enable( level ); 44f18: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout ); 44f1a: 4879 0004 74a8 pea 474a8 <_Thread_queue_Timeout> <== NOT EXECUTED 44f20: 2f04 movel %d4,%sp@- <== NOT EXECUTED 44f22: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44f24: 4eb9 0004 7170 jsr 47170 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 44f2a: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 44f30: 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( 44f36: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 44f3c: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 44f40: 4eb9 0004 4ff6 jsr 44ff6 <_Semaphore_Translate_core_semaphore_return_code> <== NOT EXECUTED 44f46: 588f addql #4,%sp <== NOT EXECUTED break; } return RTEMS_INVALID_ID; } 44f48: 4cee 001c ffec moveml %fp@(-20),%d2-%d4 <== NOT EXECUTED 44f4e: 4e5e unlk %fp <== NOT EXECUTED 44f50: 4e75 rts <== NOT EXECUTED ... 00044f54 : #endif rtems_status_code rtems_semaphore_release( rtems_id id ) { 44f54: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44f58: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44f5a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44f5c: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get ( Objects_Id id, Objects_Locations *location ) { return (Semaphore_Control *) 44f60: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44f64: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44f66: 4879 0005 7db0 pea 57db0 <_Semaphore_Information> <== NOT EXECUTED 44f6c: 4eb9 0004 6528 jsr 46528 <_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 ) { 44f72: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44f78: 2040 moveal %d0,%a0 <== NOT EXECUTED 44f7a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44f7e: 6704 beqs 44f84 <== NOT EXECUTED 44f80: 7004 moveq #4,%d0 <== NOT EXECUTED 44f82: 604e bras 44fd2 <== NOT EXECUTED 44f84: 2200 movel %d0,%d1 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 44f86: 7030 moveq #48,%d0 <== NOT EXECUTED 44f88: 0681 0000 0014 addil #20,%d1 <== NOT EXECUTED 44f8e: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 44f92: 45f9 0004 6d0a lea 46d0a <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 44f98: 671a beqs 44fb4 <== NOT EXECUTED mutex_status = _CORE_mutex_Surrender( 44f9a: 42a7 clrl %sp@- <== NOT EXECUTED 44f9c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44f9e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 44fa0: 4eb9 0004 5b64 jsr 45b64 <_CORE_mutex_Surrender> <== NOT EXECUTED 44fa6: 2400 movel %d0,%d2 <== NOT EXECUTED &the_semaphore->Core_control.mutex, id, MUTEX_MP_SUPPORT ); _Thread_Enable_dispatch(); 44fa8: 4e92 jsr %a2@ <== NOT EXECUTED return _Semaphore_Translate_core_mutex_return_code( mutex_status ); 44faa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44fac: 4eb9 0004 4fe0 jsr 44fe0 <_Semaphore_Translate_core_mutex_return_code> <== NOT EXECUTED 44fb2: 6018 bras 44fcc <== NOT EXECUTED } else { semaphore_status = _CORE_semaphore_Surrender( 44fb4: 42a7 clrl %sp@- <== NOT EXECUTED 44fb6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44fb8: 2f01 movel %d1,%sp@- <== NOT EXECUTED 44fba: 4eb9 0004 5cc4 jsr 45cc4 <_CORE_semaphore_Surrender> <== NOT EXECUTED 44fc0: 2400 movel %d0,%d2 <== NOT EXECUTED &the_semaphore->Core_control.semaphore, id, MUTEX_MP_SUPPORT ); _Thread_Enable_dispatch(); 44fc2: 4e92 jsr %a2@ <== NOT EXECUTED return 44fc4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44fc6: 4eb9 0004 4ff6 jsr 44ff6 <_Semaphore_Translate_core_semaphore_return_code> <== NOT EXECUTED 44fcc: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 44fd2: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 44fd6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 44fda: 4e5e unlk %fp <== NOT EXECUTED 44fdc: 4e75 rts <== NOT EXECUTED ... 00045524 : */ void rtems_shutdown_executive( uint32_t result ) { 45524: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED if ( _System_state_Current != SYSTEM_STATE_SHUTDOWN ) { 45528: 7004 moveq #4,%d0 <== NOT EXECUTED 4552a: b0b9 0005 800e cmpl 5800e <_System_state_Current>,%d0 <== NOT EXECUTED 45530: 6718 beqs 4554a <== 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 ); 45532: 4879 0005 7e48 pea 57e48 <_Thread_BSP_context> <== NOT EXECUTED 45538: 486e ffcc pea %fp@(-52) <== NOT EXECUTED 4553c: 23c0 0005 800e movel %d0,5800e <_System_state_Current> <== NOT EXECUTED 45542: 4eb9 0004 7f68 jsr 47f68 <_CPU_Context_switch> <== NOT EXECUTED 45548: 508f addql #8,%sp <== NOT EXECUTED _System_state_Set( SYSTEM_STATE_SHUTDOWN ); _Thread_Stop_multitasking(); } } 4554a: 4e5e unlk %fp <== NOT EXECUTED 4554c: 4e75 rts <== NOT EXECUTED ... 00045adc : RTEMS_API_Control *api; ASR_Information *asr; /* XXX normalize mode */ executing = _Thread_Executing; api = (RTEMS_API_Control*)executing->API_Extensions[ THREAD_API_RTEMS ]; 45adc: 2079 0005 9ed2 moveal 59ed2 <_Thread_Executing>,%a0 <== NOT EXECUTED 45ae2: 2039 0005 9e14 movel 59e14 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED rtems_status_code rtems_signal_catch( rtems_asr_entry asr_handler, rtems_mode mode_set ) { 45ae8: 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 ]; 45aec: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED rtems_status_code rtems_signal_catch( rtems_asr_entry asr_handler, rtems_mode mode_set ) { 45af0: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 45af4: 5280 addql #1,%d0 <== NOT EXECUTED 45af6: 23c0 0005 9e14 movel %d0,59e14 <_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 ) ) { 45afc: 4a81 tstl %d1 <== NOT EXECUTED 45afe: 670c beqs 45b0c <== NOT EXECUTED asr->mode_set = mode_set; asr->handler = asr_handler; 45b00: 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; 45b04: 216e 000c 000e movel %fp@(12),%a0@(14) <== NOT EXECUTED 45b0a: 601a bras 45b26 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _ASR_Initialize ( ASR_Information *information ) { information->is_enabled = true; 45b0c: 7001 moveq #1,%d0 <== NOT EXECUTED 45b0e: 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; 45b12: 42a8 001a clrl %a0@(26) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _ASR_Initialize ( ASR_Information *information ) { information->is_enabled = true; information->handler = NULL; 45b16: 42a8 000a clrl %a0@(10) <== NOT EXECUTED information->mode_set = RTEMS_DEFAULT_MODES; 45b1a: 42a8 000e clrl %a0@(14) <== NOT EXECUTED information->signals_posted = 0; 45b1e: 42a8 0012 clrl %a0@(18) <== NOT EXECUTED information->signals_pending = 0; 45b22: 42a8 0016 clrl %a0@(22) <== NOT EXECUTED asr->handler = asr_handler; } else _ASR_Initialize( asr ); _Thread_Enable_dispatch(); 45b26: 4eb9 0004 7a72 jsr 47a72 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45b2c: 4e5e unlk %fp <== NOT EXECUTED 45b2e: 4280 clrl %d0 <== NOT EXECUTED 45b30: 4e75 rts <== NOT EXECUTED ... 0004e820 : rtems_status_code rtems_signal_send( Objects_Id id, rtems_signal_set signal_set ) { 4e820: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4e824: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4e826: 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 ) 4e82a: 6606 bnes 4e832 <== NOT EXECUTED 4e82c: 700a moveq #10,%d0 <== NOT EXECUTED 4e82e: 6000 0084 braw 4e8b4 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; the_thread = _Thread_Get( id, &location ); 4e832: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4e836: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4e83a: 4eb9 0005 1fd8 jsr 51fd8 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 4e840: 508f addql #8,%sp <== NOT EXECUTED ASR_Information *asr; if ( !signal_set ) return RTEMS_INVALID_NUMBER; the_thread = _Thread_Get( id, &location ); 4e842: 2240 moveal %d0,%a1 <== NOT EXECUTED switch ( location ) { 4e844: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4e848: 6704 beqs 4e84e <== NOT EXECUTED 4e84a: 7004 moveq #4,%d0 <== NOT EXECUTED 4e84c: 6066 bras 4e8b4 <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; 4e84e: 2069 010c moveal %a1@(268),%a0 <== NOT EXECUTED asr = &api->Signal; if ( ! _ASR_Is_null_handler( asr->handler ) ) { 4e852: 4aa8 000a tstl %a0@(10) <== NOT EXECUTED 4e856: 6754 beqs 4e8ac <== NOT EXECUTED if ( asr->is_enabled ) { 4e858: 4a28 0008 tstb %a0@(8) <== NOT EXECUTED 4e85c: 6732 beqs 4e890 <== NOT EXECUTED rtems_signal_set *signal_set ) { ISR_Level _level; _ISR_Disable( _level ); 4e85e: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 4e864: 40c0 movew %sr,%d0 <== NOT EXECUTED 4e866: 8280 orl %d0,%d1 <== NOT EXECUTED 4e868: 46c1 movew %d1,%sr <== NOT EXECUTED *signal_set |= signals; 4e86a: 85a8 0012 orl %d2,%a0@(18) <== NOT EXECUTED _ISR_Enable( _level ); 4e86e: 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 ) ) 4e870: 2039 0006 dab6 movel 6dab6 <_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; 4e876: 7201 moveq #1,%d1 <== NOT EXECUTED 4e878: 1341 0075 moveb %d1,%a1@(117) <== NOT EXECUTED if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) 4e87c: 4a80 tstl %d0 <== NOT EXECUTED 4e87e: 6722 beqs 4e8a2 <== NOT EXECUTED 4e880: b3f9 0006 dad6 cmpal 6dad6 <_Thread_Executing>,%a1 <== NOT EXECUTED 4e886: 661a bnes 4e8a2 <== NOT EXECUTED _ISR_Signals_to_thread_executing = TRUE; 4e888: 13c1 0006 db64 moveb %d1,6db64 <_ISR_Signals_to_thread_executing> <== NOT EXECUTED 4e88e: 6012 bras 4e8a2 <== NOT EXECUTED rtems_signal_set *signal_set ) { ISR_Level _level; _ISR_Disable( _level ); 4e890: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 4e896: 40c0 movew %sr,%d0 <== NOT EXECUTED 4e898: 8280 orl %d0,%d1 <== NOT EXECUTED 4e89a: 46c1 movew %d1,%sr <== NOT EXECUTED *signal_set |= signals; 4e89c: 85a8 0016 orl %d2,%a0@(22) <== NOT EXECUTED _ISR_Enable( _level ); 4e8a0: 46c0 movew %d0,%sr <== NOT EXECUTED } else { _ASR_Post_signals( signal_set, &asr->signals_pending ); } _Thread_Enable_dispatch(); 4e8a2: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4e8a8: 4280 clrl %d0 <== NOT EXECUTED 4e8aa: 6008 bras 4e8b4 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 4e8ac: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4e8b2: 700b moveq #11,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4e8b4: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4e8b8: 4e5e unlk %fp <== NOT EXECUTED 4e8ba: 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 371c pea 9371c <== 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 aeec jsr 6aeec <== 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 b05c jsr 6b05c <== 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 3976 moveal 93976 <_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 0008 0274 tstl 80274 <== 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 371c pea 9371c <== NOT EXECUTED 43ed2: 4869 0008 pea %a1@(8) <== NOT EXECUTED 43ed6: 4eb9 0006 ae74 jsr 6ae74 <== 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 3976 movel 93976 <_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 65e0 pea 465e0 <== 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 911c pea 7911c <== NOT EXECUTED void rtems_stack_checker_report_usage_with_plugin( void *context, rtems_printk_plugin_t print ) { print_context = context; 43dc2: 23c2 0008 0278 movel %d2,80278 <== 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 0008 027c movel %a2,8027c <== NOT EXECUTED (*print)( context, "Stack usage by thread\n"); 43dd0: 4e92 jsr %a2@ <== NOT EXECUTED (*print)( context, 43dd2: 4879 0007 9133 pea 79133 <== 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 9ca8 jsr 49ca8 <== 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 0008 0278 clrl 80278 <== NOT EXECUTED print_handler = NULL; 43e08: 42b9 0008 027c clrl 8027c <== 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 371c pea 9371c <== NOT EXECUTED 43f44: 4868 0008 pea %a0@(8) <== NOT EXECUTED 43f48: 4eb9 0006 ae74 jsr 6ae74 <== 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 4efc pea 54efc <== NOT EXECUTED 41e7a: 4eb9 0004 8c04 jsr 48c04 <== NOT EXECUTED } 41e80: 4e5e unlk %fp <== NOT EXECUTED 41e82: 4e75 rts 0004500c : size_t stack_size, rtems_mode initial_modes, rtems_attribute attribute_set, Objects_Id *id ) { 4500c: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 45010: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 45014: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 45018: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4501c: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED 45020: 282e 0018 movel %fp@(24),%d4 <== NOT EXECUTED 45024: 286e 001c moveal %fp@(28),%a4 <== NOT EXECUTED Priority_Control core_priority; RTEMS_API_Control *api; ASR_Information *asr; if ( !id ) 45028: 4a8c tstl %a4 <== NOT EXECUTED 4502a: 6606 bnes 45032 <== NOT EXECUTED 4502c: 7009 moveq #9,%d0 <== NOT EXECUTED 4502e: 6000 00fc braw 4512c <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !rtems_is_name_valid( name ) ) 45032: 4a8b tstl %a3 <== NOT EXECUTED 45034: 6606 bnes 4503c <== NOT EXECUTED 45036: 7003 moveq #3,%d0 <== NOT EXECUTED 45038: 6000 00f2 braw 4512c <== NOT EXECUTED /* * Validate the RTEMS API priority and convert it to the core priority range. */ if ( !_Attributes_Is_system_task( the_attribute_set ) ) { 4503c: 4a44 tstw %d4 <== NOT EXECUTED 4503e: 6d1e blts 4505e <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid ( rtems_task_priority the_priority ) { return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) && 45040: 4a83 tstl %d3 <== NOT EXECUTED 45042: 6714 beqs 45058 <== NOT EXECUTED 45044: 4280 clrl %d0 <== NOT EXECUTED 45046: 1039 0005 62f2 moveb 562f2 ,%d0 <== NOT EXECUTED 4504c: b083 cmpl %d3,%d0 <== NOT EXECUTED 4504e: 54c0 scc %d0 <== NOT EXECUTED 45050: 49c0 extbl %d0 <== NOT EXECUTED 45052: 4480 negl %d0 <== NOT EXECUTED if ( !_RTEMS_tasks_Priority_is_valid( initial_priority ) ) 45054: 4a00 tstb %d0 <== NOT EXECUTED 45056: 6606 bnes 4505e <== NOT EXECUTED 45058: 7013 moveq #19,%d0 <== NOT EXECUTED 4505a: 6000 00d0 braw 4512c <== NOT EXECUTED */ /* * Lock the allocator mutex for protection */ _RTEMS_Lock_allocator(); 4505e: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45064: 4eb9 0004 58cc jsr 458cc <_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 ); 4506a: 4879 0005 7dec pea 57dec <_RTEMS_tasks_Information> <== NOT EXECUTED 45070: 4eb9 0004 60c8 jsr 460c8 <_Objects_Allocate> <== NOT EXECUTED * the event of an error. */ the_thread = _RTEMS_tasks_Allocate(); if ( !the_thread ) { 45076: 508f addql #8,%sp <== NOT EXECUTED 45078: 2440 moveal %d0,%a2 <== NOT EXECUTED 4507a: 4a80 tstl %d0 <== NOT EXECUTED 4507c: 6614 bnes 45092 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4507e: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45084: 4eb9 0004 5930 jsr 45930 <_API_Mutex_Unlock> <== NOT EXECUTED 4508a: 588f addql #4,%sp <== NOT EXECUTED 4508c: 7005 moveq #5,%d0 <== NOT EXECUTED 4508e: 6000 009c braw 4512c <== NOT EXECUTED /* * Initialize the core thread for this task. */ status = _Thread_Initialize( 45092: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45094: 7007 moveq #7,%d0 <== NOT EXECUTED 45096: c082 andl %d2,%d0 <== NOT EXECUTED 45098: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4509a: 7a09 moveq #9,%d5 <== NOT EXECUTED 4509c: 2202 movel %d2,%d1 <== NOT EXECUTED 4509e: 42a7 clrl %sp@- <== NOT EXECUTED 450a0: eaa9 lsrl %d5,%d1 <== NOT EXECUTED 450a2: 1a3c 0001 moveb #1,%d5 <== NOT EXECUTED 450a6: ca81 andl %d1,%d5 <== NOT EXECUTED 450a8: 2002 movel %d2,%d0 <== NOT EXECUTED 450aa: 2f05 movel %d5,%sp@- <== NOT EXECUTED 450ac: 7201 moveq #1,%d1 <== NOT EXECUTED 450ae: e088 lsrl #8,%d0 <== NOT EXECUTED 450b0: b380 eorl %d1,%d0 <== NOT EXECUTED 450b2: 7a01 moveq #1,%d5 <== NOT EXECUTED 450b4: ca80 andl %d0,%d5 <== NOT EXECUTED 450b6: 2f05 movel %d5,%sp@- <== NOT EXECUTED 450b8: 7001 moveq #1,%d0 <== NOT EXECUTED 450ba: c084 andl %d4,%d0 <== NOT EXECUTED 450bc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 450be: 47f9 0004 5930 lea 45930 <_API_Mutex_Unlock>,%a3 <== NOT EXECUTED 450c4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 450c6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 450ca: 42a7 clrl %sp@- <== NOT EXECUTED 450cc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 450ce: 4879 0005 7dec pea 57dec <_RTEMS_tasks_Information> <== NOT EXECUTED 450d4: 4eb9 0004 6dc8 jsr 46dc8 <_Thread_Initialize> <== NOT EXECUTED NULL, /* no budget algorithm callout */ _Modes_Get_interrupt_level(initial_modes), (Objects_Name) name ); if ( !status ) { 450da: dffc 0000 002c addal #44,%sp <== NOT EXECUTED 450e0: 4a00 tstb %d0 <== NOT EXECUTED 450e2: 6626 bnes 4510a <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _RTEMS_tasks_Free ( Thread_Control *the_task ) { _Objects_Free( 450e4: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 450e8: 4eb9 0004 644c jsr 4644c <_Objects_Get_information_id> <== NOT EXECUTED 450ee: 2f0a movel %a2,%sp@- <== NOT EXECUTED 450f0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 450f2: 4eb9 0004 63c8 jsr 463c8 <_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(); 450f8: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 450fe: 4e93 jsr %a3@ <== NOT EXECUTED 45100: 700d moveq #13,%d0 <== NOT EXECUTED 45102: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45108: 6022 bras 4512c <== NOT EXECUTED } api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; asr = &api->Signal; asr->is_enabled = _Modes_Is_asr_disabled(initial_modes) ? false : true; 4510a: 720a moveq #10,%d1 <== NOT EXECUTED 4510c: 206a 010c moveal %a2@(268),%a0 <== NOT EXECUTED 45110: e2aa lsrl %d1,%d2 <== NOT EXECUTED 45112: 7a01 moveq #1,%d5 <== NOT EXECUTED *id = the_thread->Object.id; 45114: 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; 45118: bb82 eorl %d5,%d2 <== NOT EXECUTED 4511a: c485 andl %d5,%d2 <== NOT EXECUTED 4511c: 1142 0008 moveb %d2,%a0@(8) <== NOT EXECUTED ); } #endif _RTEMS_Unlock_allocator(); 45120: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45126: 4e93 jsr %a3@ <== NOT EXECUTED 45128: 588f addql #4,%sp <== NOT EXECUTED 4512a: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4512c: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 45132: 4e5e unlk %fp <== NOT EXECUTED 45134: 4e75 rts <== NOT EXECUTED ... 00045138 : */ rtems_status_code rtems_task_delete( Objects_Id id ) { 45138: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4513c: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; Objects_Information *the_information; _RTEMS_Lock_allocator(); 45140: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45146: 4eb9 0004 58cc jsr 458cc <_API_Mutex_Lock> <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); 4514c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45150: 49f9 0004 5930 lea 45930 <_API_Mutex_Unlock>,%a4 <== NOT EXECUTED 45156: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4515a: 4eb9 0004 6d34 jsr 46d34 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 45160: dffc 0000 000c addal #12,%sp <== NOT EXECUTED Objects_Locations location; Objects_Information *the_information; _RTEMS_Lock_allocator(); the_thread = _Thread_Get( id, &location ); 45166: 2640 moveal %d0,%a3 <== NOT EXECUTED switch ( location ) { 45168: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4516c: 663e bnes 451ac <== NOT EXECUTED case OBJECTS_LOCAL: the_information = _Objects_Get_information_id( the_thread->Object.id ); 4516e: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 45172: 45f9 0004 644c lea 4644c <_Objects_Get_information_id>,%a2 <== NOT EXECUTED 45178: 4e92 jsr %a2@ <== NOT EXECUTED 0 /* Not used */ ); } #endif _Thread_Close( the_information, the_thread ); 4517a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4517c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4517e: 4eb9 0004 69f4 jsr 469f4 <_Thread_Close> <== NOT EXECUTED 45184: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 45188: 4e92 jsr %a2@ <== NOT EXECUTED 4518a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4518c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4518e: 4eb9 0004 63c8 jsr 463c8 <_Objects_Free> <== NOT EXECUTED _RTEMS_tasks_Free( the_thread ); _RTEMS_Unlock_allocator(); 45194: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4519a: 4e94 jsr %a4@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4519c: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED 451a2: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 451a8: 4280 clrl %d0 <== NOT EXECUTED 451aa: 600c bras 451b8 <== NOT EXECUTED case OBJECTS_ERROR: break; } _RTEMS_Unlock_allocator(); 451ac: 2f39 0005 7f32 movel 57f32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 451b2: 4e94 jsr %a4@ <== NOT EXECUTED 451b4: 588f addql #4,%sp <== NOT EXECUTED 451b6: 7004 moveq #4,%d0 <== NOT EXECUTED return RTEMS_INVALID_ID; } 451b8: 4cee 1c00 fff0 moveml %fp@(-16),%a2-%a4 <== NOT EXECUTED 451be: 4e5e unlk %fp <== NOT EXECUTED 451c0: 4e75 rts <== NOT EXECUTED ... 000466c8 : rtems_status_code rtems_task_get_note( Objects_Id id, uint32_t notepad, uint32_t *note ) { 466c8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 466cc: 2f0a movel %a2,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 466ce: 2079 0005 b606 moveal 5b606 <_Configuration_Table>,%a0 <== NOT EXECUTED rtems_status_code rtems_task_get_note( Objects_Id id, uint32_t notepad, uint32_t *note ) { 466d4: 2f02 movel %d2,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 466d6: 2068 003e moveal %a0@(62),%a0 <== NOT EXECUTED rtems_status_code rtems_task_get_note( Objects_Id id, uint32_t notepad, uint32_t *note ) { 466da: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 466de: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 466e2: 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() ) 466e6: 4a28 0004 tstb %a0@(4) <== NOT EXECUTED 466ea: 6604 bnes 466f0 <== NOT EXECUTED 466ec: 7016 moveq #22,%d0 <== NOT EXECUTED 466ee: 605c bras 4674c <== NOT EXECUTED return RTEMS_NOT_CONFIGURED; if ( !note ) 466f0: 4a8a tstl %a2 <== NOT EXECUTED 466f2: 6604 bnes 466f8 <== NOT EXECUTED 466f4: 7009 moveq #9,%d0 <== NOT EXECUTED 466f6: 6054 bras 4674c <== 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 ) 466f8: 720f moveq #15,%d1 <== NOT EXECUTED 466fa: b282 cmpl %d2,%d1 <== NOT EXECUTED 466fc: 6404 bccs 46702 <== NOT EXECUTED 466fe: 700a moveq #10,%d0 <== NOT EXECUTED 46700: 604a bras 4674c <== NOT EXECUTED /* * Optimize the most likely case to avoid the Thread_Dispatch. */ if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || 46702: 4a80 tstl %d0 <== NOT EXECUTED 46704: 670c beqs 46712 <== NOT EXECUTED 46706: 2079 0005 b62a moveal 5b62a <_Thread_Executing>,%a0 <== NOT EXECUTED 4670c: b0a8 0008 cmpl %a0@(8),%d0 <== NOT EXECUTED 46710: 6610 bnes 46722 <== NOT EXECUTED _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; *note = api->Notepads[ notepad ]; 46712: 2079 0005 b62a moveal 5b62a <_Thread_Executing>,%a0 <== NOT EXECUTED 46718: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED 4671c: 24b0 2c1e movel %a0@(0000001e,%d2:l:4),%a2@ <== NOT EXECUTED 46720: 6028 bras 4674a <== NOT EXECUTED return RTEMS_SUCCESSFUL; } the_thread = _Thread_Get( id, &location ); 46722: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46726: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46728: 4eb9 0004 8500 jsr 48500 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 4672e: 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 ); 46730: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 46732: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46736: 6704 beqs 4673c <== NOT EXECUTED 46738: 7004 moveq #4,%d0 <== NOT EXECUTED 4673a: 6010 bras 4674c <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; *note = api->Notepads[ notepad ]; 4673c: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED 46740: 24b0 2c1e movel %a0@(0000001e,%d2:l:4),%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 46744: 4eb9 0004 84d6 jsr 484d6 <_Thread_Enable_dispatch> <== NOT EXECUTED 4674a: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4674c: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 46750: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46754: 4e5e unlk %fp <== NOT EXECUTED 46756: 4e75 rts 000451c4 : rtems_status_code rtems_task_ident( rtems_name name, uint32_t node, Objects_Id *id ) { 451c4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 451c8: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 451cc: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; if ( !id ) 451d0: 4a89 tstl %a1 <== NOT EXECUTED 451d2: 6604 bnes 451d8 <== NOT EXECUTED 451d4: 7009 moveq #9,%d0 <== NOT EXECUTED 451d6: 6034 bras 4520c <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( name == OBJECTS_ID_OF_SELF ) { 451d8: 4a80 tstl %d0 <== NOT EXECUTED 451da: 660c bnes 451e8 <== NOT EXECUTED *id = _Thread_Executing->Object.id; 451dc: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 451e2: 22a8 0008 movel %a0@(8),%a1@ <== NOT EXECUTED 451e6: 6024 bras 4520c <== NOT EXECUTED return RTEMS_SUCCESSFUL; } status = _Objects_Name_to_id_u32( &_RTEMS_tasks_Information, name, node, id ); 451e8: 2f09 movel %a1,%sp@- <== NOT EXECUTED 451ea: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 451ee: 2f00 movel %d0,%sp@- <== NOT EXECUTED 451f0: 4879 0005 7dec pea 57dec <_RTEMS_tasks_Information> <== NOT EXECUTED 451f6: 4eb9 0004 668c jsr 4668c <_Objects_Name_to_id_u32> <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; 451fc: 41f9 0005 513a lea 5513a <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED 45202: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 45206: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 4520c: 4e5e unlk %fp <== NOT EXECUTED 4520e: 4e75 rts 00045554 : */ rtems_status_code rtems_task_is_suspended( Objects_Id id ) { 45554: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 45558: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4555c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45560: 4eb9 0004 7000 jsr 47000 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 45566: 508f addql #8,%sp <== NOT EXECUTED ) { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 45568: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 4556a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4556e: 6704 beqs 45574 <== NOT EXECUTED 45570: 7004 moveq #4,%d0 <== NOT EXECUTED 45572: 6018 bras 4558c <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { 45574: 7002 moveq #2,%d0 <== NOT EXECUTED 45576: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 4557a: 41f9 0004 6fd6 lea 46fd6 <_Thread_Enable_dispatch>,%a0 <== NOT EXECUTED 45580: 6606 bnes 45588 <== NOT EXECUTED _Thread_Enable_dispatch(); 45582: 4e90 jsr %a0@ <== NOT EXECUTED 45584: 4280 clrl %d0 <== NOT EXECUTED 45586: 6004 bras 4558c <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 45588: 4e90 jsr %a0@ <== NOT EXECUTED 4558a: 700f moveq #15,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4558c: 4e5e unlk %fp <== NOT EXECUTED 4558e: 4e75 rts 0004b2dc : rtems_status_code rtems_task_mode( rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set ) { 4b2dc: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4b2e0: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 4b2e4: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 4b2e8: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4b2ec: 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 ) 4b2f0: 4a8c tstl %a4 <== NOT EXECUTED 4b2f2: 6606 bnes 4b2fa <== NOT EXECUTED 4b2f4: 7009 moveq #9,%d0 <== NOT EXECUTED 4b2f6: 6000 00fa braw 4b3f2 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; executing = _Thread_Executing; 4b2fa: 2679 0005 7f3a moveal 57f3a <_Thread_Executing>,%a3 <== NOT EXECUTED api = executing->API_Extensions[ THREAD_API_RTEMS ]; 4b300: 246b 010c moveal %a3@(268),%a2 <== NOT EXECUTED asr = &api->Signal; old_mode = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT; 4b304: 263c 0000 0100 movel #256,%d3 <== NOT EXECUTED 4b30a: 4a2b 0076 tstb %a3@(118) <== NOT EXECUTED 4b30e: 6702 beqs 4b312 <== NOT EXECUTED 4b310: 4283 clrl %d3 <== NOT EXECUTED if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE ) 4b312: 4aab 007c tstl %a3@(124) <== NOT EXECUTED 4b316: 6704 beqs 4b31c <== NOT EXECUTED old_mode |= RTEMS_NO_TIMESLICE; else old_mode |= RTEMS_TIMESLICE; 4b318: 08c3 0009 bset #9,%d3 <== NOT EXECUTED old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR; 4b31c: 243c 0000 0400 movel #1024,%d2 <== NOT EXECUTED 4b322: 4a2a 0008 tstb %a2@(8) <== NOT EXECUTED 4b326: 6702 beqs 4b32a <== NOT EXECUTED 4b328: 4282 clrl %d2 <== NOT EXECUTED old_mode |= _ISR_Get_level(); 4b32a: 4eb9 0004 8034 jsr 48034 <_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; 4b330: 8480 orl %d0,%d2 <== NOT EXECUTED old_mode |= _ISR_Get_level(); *previous_mode_set = old_mode; 4b332: 8483 orl %d3,%d2 <== NOT EXECUTED 4b334: 2882 movel %d2,%a4@ <== NOT EXECUTED /* * These are generic thread scheduling characteristics. */ if ( mask & RTEMS_PREEMPT_MASK ) 4b336: 0804 0008 btst #8,%d4 <== NOT EXECUTED 4b33a: 670e beqs 4b34a <== NOT EXECUTED executing->is_preemptible = _Modes_Is_preempt(mode_set) ? TRUE : FALSE; 4b33c: 2005 movel %d5,%d0 <== NOT EXECUTED 4b33e: 7201 moveq #1,%d1 <== NOT EXECUTED 4b340: e088 lsrl #8,%d0 <== NOT EXECUTED 4b342: b380 eorl %d1,%d0 <== NOT EXECUTED 4b344: c081 andl %d1,%d0 <== NOT EXECUTED 4b346: 1740 0076 moveb %d0,%a3@(118) <== NOT EXECUTED if ( mask & RTEMS_TIMESLICE_MASK ) { 4b34a: 0804 0009 btst #9,%d4 <== NOT EXECUTED 4b34e: 671c beqs 4b36c <== NOT EXECUTED if ( _Modes_Is_timeslice(mode_set) ) { 4b350: 0805 0009 btst #9,%d5 <== NOT EXECUTED 4b354: 6712 beqs 4b368 <== NOT EXECUTED executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE; executing->cpu_time_budget = _Thread_Ticks_per_timeslice; 4b356: 41f9 0005 7e2c lea 57e2c <_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; 4b35c: 7001 moveq #1,%d0 <== NOT EXECUTED executing->cpu_time_budget = _Thread_Ticks_per_timeslice; 4b35e: 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; 4b362: 2740 007c movel %d0,%a3@(124) <== NOT EXECUTED 4b366: 6004 bras 4b36c <== NOT EXECUTED executing->cpu_time_budget = _Thread_Ticks_per_timeslice; } else executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; 4b368: 42ab 007c clrl %a3@(124) <== NOT EXECUTED /* * Set the new interrupt level */ if ( mask & RTEMS_INTERRUPT_MASK ) 4b36c: 7007 moveq #7,%d0 <== NOT EXECUTED 4b36e: c084 andl %d4,%d0 <== NOT EXECUTED 4b370: 6712 beqs 4b384 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level ( Modes_Control mode_set ) { _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) ); 4b372: 40c1 movew %sr,%d1 <== NOT EXECUTED 4b374: 7007 moveq #7,%d0 <== NOT EXECUTED 4b376: c085 andl %d5,%d0 <== NOT EXECUTED 4b378: e188 lsll #8,%d0 <== NOT EXECUTED 4b37a: 0281 0000 f8ff andil #63743,%d1 <== NOT EXECUTED 4b380: 8280 orl %d0,%d1 <== NOT EXECUTED 4b382: 46c1 movew %d1,%sr <== NOT EXECUTED */ is_asr_enabled = FALSE; needs_asr_dispatching = FALSE; if ( mask & RTEMS_ASR_MASK ) { 4b384: 0804 000a btst #10,%d4 <== NOT EXECUTED 4b388: 6746 beqs 4b3d0 <== NOT EXECUTED 4b38a: 700a moveq #10,%d0 <== NOT EXECUTED 4b38c: 2205 movel %d5,%d1 <== NOT EXECUTED 4b38e: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 4b390: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 4b394: b181 eorl %d0,%d1 <== NOT EXECUTED 4b396: c280 andl %d0,%d1 <== NOT EXECUTED is_asr_enabled = _Modes_Is_asr_disabled( mode_set ) ? false : true; if ( is_asr_enabled != asr->is_enabled ) { 4b398: 4280 clrl %d0 <== NOT EXECUTED 4b39a: 102a 0008 moveb %a2@(8),%d0 <== NOT EXECUTED 4b39e: b081 cmpl %d1,%d0 <== NOT EXECUTED 4b3a0: 672e beqs 4b3d0 <== NOT EXECUTED asr->is_enabled = is_asr_enabled; 4b3a2: 1541 0008 moveb %d1,%a2@(8) <== NOT EXECUTED ) { rtems_signal_set _signals; ISR_Level _level; _ISR_Disable( _level ); 4b3a6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4b3ac: 40c1 movew %sr,%d1 <== NOT EXECUTED 4b3ae: 8081 orl %d1,%d0 <== NOT EXECUTED 4b3b0: 46c0 movew %d0,%sr <== NOT EXECUTED _signals = information->signals_pending; 4b3b2: 202a 0016 movel %a2@(22),%d0 <== NOT EXECUTED information->signals_pending = information->signals_posted; 4b3b6: 256a 0012 0016 movel %a2@(18),%a2@(22) <== NOT EXECUTED information->signals_posted = _signals; 4b3bc: 2540 0012 movel %d0,%a2@(18) <== NOT EXECUTED _ISR_Enable( _level ); 4b3c0: 46c1 movew %d1,%sr <== NOT EXECUTED _ASR_Swap_signals( asr ); if ( _ASR_Are_signals_pending( asr ) ) { 4b3c2: 4aaa 0012 tstl %a2@(18) <== NOT EXECUTED 4b3c6: 6708 beqs 4b3d0 <== NOT EXECUTED needs_asr_dispatching = true; executing->do_post_task_switch_extension = true; 4b3c8: 7401 moveq #1,%d2 <== NOT EXECUTED 4b3ca: 1742 0075 moveb %d2,%a3@(117) <== NOT EXECUTED 4b3ce: 6002 bras 4b3d2 <== NOT EXECUTED 4b3d0: 4202 clrb %d2 <== NOT EXECUTED } } } if ( _System_state_Is_up(_System_state_Current) ) 4b3d2: 7203 moveq #3,%d1 <== NOT EXECUTED 4b3d4: b2b9 0005 800e cmpl 5800e <_System_state_Current>,%d1 <== NOT EXECUTED 4b3da: 6614 bnes 4b3f0 <== NOT EXECUTED if ( _Thread_Evaluate_mode() || needs_asr_dispatching ) 4b3dc: 4eb9 0004 b5a0 jsr 4b5a0 <_Thread_Evaluate_mode> <== NOT EXECUTED 4b3e2: 4a00 tstb %d0 <== NOT EXECUTED 4b3e4: 6604 bnes 4b3ea <== NOT EXECUTED 4b3e6: 4a02 tstb %d2 <== NOT EXECUTED 4b3e8: 6706 beqs 4b3f0 <== NOT EXECUTED _Thread_Dispatch(); 4b3ea: 4eb9 0004 6bb8 jsr 46bb8 <_Thread_Dispatch> <== NOT EXECUTED 4b3f0: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4b3f2: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4b3f8: 4e5e unlk %fp <== NOT EXECUTED 4b3fa: 4e75 rts 000459ac : rtems_status_code rtems_task_restart( Objects_Id id, uint32_t argument ) { 459ac: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 459b0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 459b4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 459b8: 4eb9 0004 749c jsr 4749c <_Thread_Get> <== NOT EXECUTED switch ( location ) { 459be: 508f addql #8,%sp <== NOT EXECUTED 459c0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 459c4: 6704 beqs 459ca <== NOT EXECUTED 459c6: 7004 moveq #4,%d0 <== NOT EXECUTED 459c8: 6028 bras 459f2 <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Thread_Restart( the_thread, NULL, argument ) ) { 459ca: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 459ce: 42a7 clrl %sp@- <== NOT EXECUTED 459d0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 459d2: 4eb9 0004 7c48 jsr 47c48 <_Thread_Restart> <== NOT EXECUTED 459d8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 459de: 41f9 0004 7472 lea 47472 <_Thread_Enable_dispatch>,%a0 <== NOT EXECUTED 459e4: 4a00 tstb %d0 <== NOT EXECUTED 459e6: 6706 beqs 459ee <== NOT EXECUTED _Thread_Enable_dispatch(); 459e8: 4e90 jsr %a0@ <== NOT EXECUTED 459ea: 4280 clrl %d0 <== NOT EXECUTED 459ec: 6004 bras 459f2 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 459ee: 4e90 jsr %a0@ <== NOT EXECUTED 459f0: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 459f2: 4e5e unlk %fp <== NOT EXECUTED 459f4: 4e75 rts <== NOT EXECUTED ... 000461c8 : */ rtems_status_code rtems_task_resume( Objects_Id id ) { 461c8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 461cc: 2f0a movel %a2,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 461ce: 486e fffc pea %fp@(-4) <== NOT EXECUTED 461d2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 461d6: 4eb9 0004 7efc jsr 47efc <_Thread_Get> <== NOT EXECUTED switch ( location ) { 461dc: 508f addql #8,%sp <== NOT EXECUTED ) { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 461de: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 461e0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 461e4: 6704 beqs 461ea <== NOT EXECUTED 461e6: 7004 moveq #4,%d0 <== NOT EXECUTED 461e8: 6026 bras 46210 <== NOT EXECUTED case OBJECTS_LOCAL: if ( _States_Is_suspended( the_thread->current_state ) ) { 461ea: 7002 moveq #2,%d0 <== NOT EXECUTED 461ec: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 461f0: 45f9 0004 7ea2 lea 47ea2 <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 461f6: 6714 beqs 4620c <== NOT EXECUTED _Thread_Resume( the_thread, TRUE ); 461f8: 4878 0001 pea 1 <== NOT EXECUTED 461fc: 2f08 movel %a0,%sp@- <== NOT EXECUTED 461fe: 4eb9 0004 86a8 jsr 486a8 <_Thread_Resume> <== NOT EXECUTED _Thread_Enable_dispatch(); 46204: 4e92 jsr %a2@ <== NOT EXECUTED 46206: 508f addql #8,%sp <== NOT EXECUTED 46208: 4280 clrl %d0 <== NOT EXECUTED 4620a: 6004 bras 46210 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 4620c: 4e92 jsr %a2@ <== NOT EXECUTED 4620e: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46210: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46214: 4e5e unlk %fp <== NOT EXECUTED 46216: 4e75 rts 0005dcdc : #include #include rtems_id rtems_task_self(void) { 5dcdc: 2079 0009 3976 moveal 93976 <_Thread_Executing>,%a0 <== NOT EXECUTED 5dce2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Thread_Executing->Object.id; } 5dce6: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED 5dcea: 4e5e unlk %fp <== NOT EXECUTED 5dcec: 4e75 rts <== NOT EXECUTED ... 0004684c : rtems_status_code rtems_task_set_note( Objects_Id id, uint32_t notepad, uint32_t note ) { 4684c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 46850: 2f03 movel %d3,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 46852: 2079 0005 b606 moveal 5b606 <_Configuration_Table>,%a0 <== NOT EXECUTED rtems_status_code rtems_task_set_note( Objects_Id id, uint32_t notepad, uint32_t note ) { 46858: 2f02 movel %d2,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 4685a: 2068 003e moveal %a0@(62),%a0 <== NOT EXECUTED rtems_status_code rtems_task_set_note( Objects_Id id, uint32_t notepad, uint32_t note ) { 4685e: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 46862: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 46866: 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() ) 4686a: 4a28 0004 tstb %a0@(4) <== NOT EXECUTED 4686e: 6604 bnes 46874 <== NOT EXECUTED 46870: 7016 moveq #22,%d0 <== NOT EXECUTED 46872: 6054 bras 468c8 <== 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 ) 46874: 720f moveq #15,%d1 <== NOT EXECUTED 46876: b282 cmpl %d2,%d1 <== NOT EXECUTED 46878: 6404 bccs 4687e <== NOT EXECUTED 4687a: 700a moveq #10,%d0 <== NOT EXECUTED 4687c: 604a bras 468c8 <== NOT EXECUTED /* * Optimize the most likely case to avoid the Thread_Dispatch. */ if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || 4687e: 4a80 tstl %d0 <== NOT EXECUTED 46880: 670c beqs 4688e <== NOT EXECUTED 46882: 2079 0005 b62a moveal 5b62a <_Thread_Executing>,%a0 <== NOT EXECUTED 46888: b0a8 0008 cmpl %a0@(8),%d0 <== NOT EXECUTED 4688c: 6610 bnes 4689e <== NOT EXECUTED _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; api->Notepads[ notepad ] = note; 4688e: 2079 0005 b62a moveal 5b62a <_Thread_Executing>,%a0 <== NOT EXECUTED 46894: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED 46898: 2183 2c1e movel %d3,%a0@(0000001e,%d2:l:4) <== NOT EXECUTED 4689c: 6028 bras 468c6 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } the_thread = _Thread_Get( id, &location ); 4689e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 468a2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 468a4: 4eb9 0004 8500 jsr 48500 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 468aa: 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 ); 468ac: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 468ae: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 468b2: 6704 beqs 468b8 <== NOT EXECUTED 468b4: 7004 moveq #4,%d0 <== NOT EXECUTED 468b6: 6010 bras 468c8 <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; api->Notepads[ notepad ] = note; 468b8: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED 468bc: 2183 2c1e movel %d3,%a0@(0000001e,%d2:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); 468c0: 4eb9 0004 84d6 jsr 484d6 <_Thread_Enable_dispatch> <== NOT EXECUTED 468c6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 468c8: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 468cc: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 468d0: 4e5e unlk %fp <== NOT EXECUTED 468d2: 4e75 rts 00048cbc : rtems_status_code rtems_task_set_priority( Objects_Id id, rtems_task_priority new_priority, rtems_task_priority *old_priority ) { 48cbc: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 48cc0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48cc2: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 48cc6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48cc8: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; if ( new_priority != RTEMS_CURRENT_PRIORITY && 48ccc: 6710 beqs 48cde <== NOT EXECUTED 48cce: 4280 clrl %d0 <== NOT EXECUTED 48cd0: 1039 0006 0f82 moveb 60f82 ,%d0 <== NOT EXECUTED 48cd6: b082 cmpl %d2,%d0 <== NOT EXECUTED 48cd8: 6404 bccs 48cde <== NOT EXECUTED 48cda: 7013 moveq #19,%d0 <== NOT EXECUTED 48cdc: 6056 bras 48d34 <== NOT EXECUTED !_RTEMS_tasks_Priority_is_valid( new_priority ) ) return RTEMS_INVALID_PRIORITY; if ( !old_priority ) 48cde: 4a8a tstl %a2 <== NOT EXECUTED 48ce0: 6604 bnes 48ce6 <== NOT EXECUTED 48ce2: 7009 moveq #9,%d0 <== NOT EXECUTED 48ce4: 604e bras 48d34 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get( id, &location ); 48ce6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48cea: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48cee: 4eb9 0004 a990 jsr 4a990 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 48cf4: 508f addql #8,%sp <== NOT EXECUTED return RTEMS_INVALID_PRIORITY; if ( !old_priority ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get( id, &location ); 48cf6: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 48cf8: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48cfc: 6704 beqs 48d02 <== NOT EXECUTED 48cfe: 7004 moveq #4,%d0 <== NOT EXECUTED 48d00: 6032 bras 48d34 <== NOT EXECUTED case OBJECTS_LOCAL: /* XXX need helper to "convert" from core priority */ *old_priority = the_thread->current_priority; 48d02: 24a8 0014 movel %a0@(20),%a2@ <== NOT EXECUTED if ( new_priority != RTEMS_CURRENT_PRIORITY ) { 48d06: 4a82 tstl %d2 <== NOT EXECUTED 48d08: 6722 beqs 48d2c <== NOT EXECUTED the_thread->real_priority = new_priority; 48d0a: 2142 0018 movel %d2,%a0@(24) <== NOT EXECUTED if ( the_thread->resource_count == 0 || 48d0e: 4aa8 001c tstl %a0@(28) <== NOT EXECUTED 48d12: 6706 beqs 48d1a <== NOT EXECUTED 48d14: b4a8 0014 cmpl %a0@(20),%d2 <== NOT EXECUTED 48d18: 6412 bccs 48d2c <== NOT EXECUTED the_thread->current_priority > new_priority ) _Thread_Change_priority( the_thread, new_priority, FALSE ); 48d1a: 42a7 clrl %sp@- <== NOT EXECUTED 48d1c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48d1e: 2f08 movel %a0,%sp@- <== NOT EXECUTED 48d20: 4eb9 0004 a430 jsr 4a430 <_Thread_Change_priority> <== NOT EXECUTED 48d26: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } _Thread_Enable_dispatch(); 48d2c: 4eb9 0004 a936 jsr 4a936 <_Thread_Enable_dispatch> <== NOT EXECUTED 48d32: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 48d34: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 48d38: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 48d3c: 4e5e unlk %fp <== NOT EXECUTED 48d3e: 4e75 rts 000452a4 : rtems_status_code rtems_task_start( rtems_id id, rtems_task_entry entry_point, rtems_task_argument argument ) { 452a4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 452a8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 452aa: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; if ( entry_point == NULL ) 452ae: 6604 bnes 452b4 <== NOT EXECUTED 452b0: 7009 moveq #9,%d0 <== NOT EXECUTED 452b2: 6046 bras 452fa <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get( id, &location ); 452b4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 452b8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 452bc: 4eb9 0004 6d34 jsr 46d34 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 452c2: 508f addql #8,%sp <== NOT EXECUTED 452c4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 452c8: 6704 beqs 452ce <== NOT EXECUTED 452ca: 7004 moveq #4,%d0 <== NOT EXECUTED 452cc: 602c bras 452fa <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Thread_Start( 452ce: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 452d2: 42a7 clrl %sp@- <== NOT EXECUTED 452d4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 452d6: 42a7 clrl %sp@- <== NOT EXECUTED 452d8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 452da: 4eb9 0004 7798 jsr 47798 <_Thread_Start> <== NOT EXECUTED 452e0: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 452e6: 41f9 0004 6d0a lea 46d0a <_Thread_Enable_dispatch>,%a0 <== NOT EXECUTED 452ec: 4a00 tstb %d0 <== NOT EXECUTED 452ee: 6706 beqs 452f6 <== NOT EXECUTED the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) { _Thread_Enable_dispatch(); 452f0: 4e90 jsr %a0@ <== NOT EXECUTED 452f2: 4280 clrl %d0 <== NOT EXECUTED 452f4: 6004 bras 452fa <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 452f6: 4e90 jsr %a0@ <== NOT EXECUTED 452f8: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 452fa: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 452fe: 4e5e unlk %fp <== NOT EXECUTED 45300: 4e75 rts <== NOT EXECUTED ... 00045304 : */ rtems_status_code rtems_task_suspend( Objects_Id id ) { 45304: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45308: 2f0a movel %a2,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 4530a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4530e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45312: 4eb9 0004 6d34 jsr 46d34 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 45318: 508f addql #8,%sp <== NOT EXECUTED ) { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 4531a: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 4531c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45320: 6704 beqs 45326 <== NOT EXECUTED 45322: 7004 moveq #4,%d0 <== NOT EXECUTED 45324: 6022 bras 45348 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { 45326: 7002 moveq #2,%d0 <== NOT EXECUTED 45328: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 4532c: 45f9 0004 6d0a lea 46d0a <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 45332: 6610 bnes 45344 <== NOT EXECUTED _Thread_Suspend( the_thread ); 45334: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45336: 4eb9 0004 77ec jsr 477ec <_Thread_Suspend> <== NOT EXECUTED _Thread_Enable_dispatch(); 4533c: 4e92 jsr %a2@ <== NOT EXECUTED 4533e: 588f addql #4,%sp <== NOT EXECUTED 45340: 4280 clrl %d0 <== NOT EXECUTED 45342: 6004 bras 45348 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 45344: 4e92 jsr %a2@ <== NOT EXECUTED 45346: 700f moveq #15,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45348: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4534c: 4e5e unlk %fp <== NOT EXECUTED 4534e: 4e75 rts 0005dee0 : rtems_status_code rtems_task_variable_add( rtems_id tid, void **ptr, void (*dtor)(void *) ) { 5dee0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5dee4: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 5dee8: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 5deec: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; rtems_task_variable_t *tvp, *new; if ( !ptr ) 5def0: 4a8b tstl %a3 <== NOT EXECUTED 5def2: 6604 bnes 5def8 <== NOT EXECUTED 5def4: 7009 moveq #9,%d0 <== NOT EXECUTED 5def6: 6070 bras 5df68 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 5def8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5defc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5df00: 4eb9 0004 aac4 jsr 4aac4 <_Thread_Get> <== NOT EXECUTED switch (location) { 5df06: 508f addql #8,%sp <== NOT EXECUTED rtems_task_variable_t *tvp, *new; if ( !ptr ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 5df08: 2440 moveal %d0,%a2 <== NOT EXECUTED switch (location) { 5df0a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5df0e: 6704 beqs 5df14 <== NOT EXECUTED 5df10: 7004 moveq #4,%d0 <== NOT EXECUTED 5df12: 6054 bras 5df68 <== NOT EXECUTED case OBJECTS_LOCAL: /* * Figure out if the variable is already in this task's list. */ tvp = the_thread->task_variables; 5df14: 206a 011c moveal %a2@(284),%a0 <== NOT EXECUTED 5df18: 6014 bras 5df2e <== NOT EXECUTED while (tvp) { if (tvp->ptr == ptr) { 5df1a: b7e8 0004 cmpal %a0@(4),%a3 <== NOT EXECUTED 5df1e: 660c bnes 5df2c <== NOT EXECUTED tvp->dtor = dtor; 5df20: 2142 0010 movel %d2,%a0@(16) <== NOT EXECUTED _Thread_Enable_dispatch(); 5df24: 4eb9 0004 aa9a jsr 4aa9a <_Thread_Enable_dispatch> <== NOT EXECUTED 5df2a: 603a bras 5df66 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } tvp = (rtems_task_variable_t *)tvp->next; 5df2c: 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) { 5df2e: 4a88 tstl %a0 <== NOT EXECUTED 5df30: 66e8 bnes 5df1a <== NOT EXECUTED } /* * Now allocate memory for this task variable. */ new = (rtems_task_variable_t *) 5df32: 4878 0014 pea 14 <== NOT EXECUTED 5df36: 4eb9 0004 bc3c jsr 4bc3c <_Workspace_Allocate> <== NOT EXECUTED _Workspace_Allocate(sizeof(rtems_task_variable_t)); if (new == NULL) { 5df3c: 588f addql #4,%sp <== NOT EXECUTED } /* * Now allocate memory for this task variable. */ new = (rtems_task_variable_t *) 5df3e: 2040 moveal %d0,%a0 <== NOT EXECUTED 5df40: 43f9 0004 aa9a lea 4aa9a <_Thread_Enable_dispatch>,%a1 <== NOT EXECUTED _Workspace_Allocate(sizeof(rtems_task_variable_t)); if (new == NULL) { 5df46: 4a80 tstl %d0 <== NOT EXECUTED 5df48: 6606 bnes 5df50 <== NOT EXECUTED _Thread_Enable_dispatch(); 5df4a: 4e91 jsr %a1@ <== NOT EXECUTED 5df4c: 701a moveq #26,%d0 <== NOT EXECUTED 5df4e: 6018 bras 5df68 <== NOT EXECUTED } new->gval = *ptr; new->ptr = ptr; new->dtor = dtor; new->next = (struct rtems_task_variable_tt *)the_thread->task_variables; 5df50: 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; 5df54: 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; 5df58: 2540 011c movel %d0,%a2@(284) <== NOT EXECUTED if (new == NULL) { _Thread_Enable_dispatch(); return RTEMS_NO_MEMORY; } new->gval = *ptr; new->ptr = ptr; 5df5c: 214b 0004 movel %a3,%a0@(4) <== NOT EXECUTED new->dtor = dtor; 5df60: 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(); 5df64: 4e91 jsr %a1@ <== NOT EXECUTED 5df66: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5df68: 4cee 0c04 fff0 moveml %fp@(-16),%d2/%a2-%a3 <== NOT EXECUTED 5df6e: 4e5e unlk %fp <== NOT EXECUTED 5df70: 4e75 rts <== NOT EXECUTED ... 0005df74 : rtems_status_code rtems_task_variable_delete( rtems_id tid, void **ptr ) { 5df74: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 5df78: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5df7a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5df7c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; rtems_task_variable_t *tvp, *prev; if ( !ptr ) 5df80: 675a beqs 5dfdc <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; prev = NULL; the_thread = _Thread_Get (tid, &location); 5df82: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5df86: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5df8a: 4eb9 0004 aac4 jsr 4aac4 <_Thread_Get> <== NOT EXECUTED switch (location) { 5df90: 508f addql #8,%sp <== NOT EXECUTED if ( !ptr ) return RTEMS_INVALID_ADDRESS; prev = NULL; the_thread = _Thread_Get (tid, &location); 5df92: 2440 moveal %d0,%a2 <== NOT EXECUTED switch (location) { 5df94: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5df98: 6704 beqs 5df9e <== NOT EXECUTED 5df9a: 7004 moveq #4,%d0 <== NOT EXECUTED 5df9c: 6040 bras 5dfde <== NOT EXECUTED case OBJECTS_LOCAL: tvp = the_thread->task_variables; 5df9e: 206a 011c moveal %a2@(284),%a0 <== NOT EXECUTED 5dfa2: 93c9 subal %a1,%a1 <== NOT EXECUTED 5dfa4: 602c bras 5dfd2 <== NOT EXECUTED while (tvp) { if (tvp->ptr == ptr) { 5dfa6: b4a8 0004 cmpl %a0@(4),%d2 <== NOT EXECUTED 5dfaa: 6622 bnes 5dfce <== NOT EXECUTED if (prev) 5dfac: 4a89 tstl %a1 <== NOT EXECUTED 5dfae: 6704 beqs 5dfb4 <== NOT EXECUTED prev->next = tvp->next; 5dfb0: 2290 movel %a0@,%a1@ <== NOT EXECUTED 5dfb2: 6004 bras 5dfb8 <== NOT EXECUTED else the_thread->task_variables = (rtems_task_variable_t *)tvp->next; 5dfb4: 2550 011c movel %a0@,%a2@(284) <== NOT EXECUTED _RTEMS_Tasks_Invoke_task_variable_dtor( the_thread, tvp ); 5dfb8: 2f08 movel %a0,%sp@- <== NOT EXECUTED 5dfba: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5dfbc: 4eb9 0005 e054 jsr 5e054 <_RTEMS_Tasks_Invoke_task_variable_dtor> <== NOT EXECUTED _Thread_Enable_dispatch(); 5dfc2: 4eb9 0004 aa9a jsr 4aa9a <_Thread_Enable_dispatch> <== NOT EXECUTED 5dfc8: 508f addql #8,%sp <== NOT EXECUTED 5dfca: 4280 clrl %d0 <== NOT EXECUTED 5dfcc: 6010 bras 5dfde <== NOT EXECUTED return RTEMS_SUCCESSFUL; } prev = tvp; tvp = (rtems_task_variable_t *)tvp->next; 5dfce: 2248 moveal %a0,%a1 <== NOT EXECUTED 5dfd0: 2050 moveal %a0@,%a0 <== NOT EXECUTED the_thread = _Thread_Get (tid, &location); switch (location) { case OBJECTS_LOCAL: tvp = the_thread->task_variables; while (tvp) { 5dfd2: 4a88 tstl %a0 <== NOT EXECUTED 5dfd4: 66d0 bnes 5dfa6 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } prev = tvp; tvp = (rtems_task_variable_t *)tvp->next; } _Thread_Enable_dispatch(); 5dfd6: 4eb9 0004 aa9a jsr 4aa9a <_Thread_Enable_dispatch> <== NOT EXECUTED 5dfdc: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5dfde: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 5dfe2: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5dfe6: 4e5e unlk %fp <== NOT EXECUTED 5dfe8: 4e75 rts <== NOT EXECUTED ... 0005dfec : rtems_status_code rtems_task_variable_get( rtems_id tid, void **ptr, void **result ) { 5dfec: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 5dff0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5dff2: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 5dff6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5dff8: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; rtems_task_variable_t *tvp; if ( !ptr ) 5dffc: 6746 beqs 5e044 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !result ) 5dffe: 4a8a tstl %a2 <== NOT EXECUTED 5e000: 6742 beqs 5e044 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 5e002: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5e006: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5e00a: 4eb9 0004 aac4 jsr 4aac4 <_Thread_Get> <== NOT EXECUTED switch (location) { 5e010: 508f addql #8,%sp <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !result ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 5e012: 2040 moveal %d0,%a0 <== NOT EXECUTED switch (location) { 5e014: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5e018: 6704 beqs 5e01e <== NOT EXECUTED 5e01a: 7004 moveq #4,%d0 <== NOT EXECUTED 5e01c: 6028 bras 5e046 <== NOT EXECUTED case OBJECTS_LOCAL: /* * Figure out if the variable is in this task's list. */ tvp = the_thread->task_variables; 5e01e: 2068 011c moveal %a0@(284),%a0 <== NOT EXECUTED 5e022: 6016 bras 5e03a <== NOT EXECUTED while (tvp) { if (tvp->ptr == ptr) { 5e024: b4a8 0004 cmpl %a0@(4),%d2 <== NOT EXECUTED 5e028: 660e bnes 5e038 <== NOT EXECUTED /* * Should this return the current (i.e not the * saved) value if `tid' is the current task? */ *result = tvp->tval; 5e02a: 24a8 000c movel %a0@(12),%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 5e02e: 4eb9 0004 aa9a jsr 4aa9a <_Thread_Enable_dispatch> <== NOT EXECUTED 5e034: 4280 clrl %d0 <== NOT EXECUTED 5e036: 600e bras 5e046 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } tvp = (rtems_task_variable_t *)tvp->next; 5e038: 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) { 5e03a: 4a88 tstl %a0 <== NOT EXECUTED 5e03c: 66e6 bnes 5e024 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } tvp = (rtems_task_variable_t *)tvp->next; } _Thread_Enable_dispatch(); 5e03e: 4eb9 0004 aa9a jsr 4aa9a <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; 5e044: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5e046: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 5e04a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5e04e: 4e5e unlk %fp <== NOT EXECUTED 5e050: 4e75 rts <== NOT EXECUTED ... 00045350 : */ rtems_status_code rtems_task_wake_after( rtems_interval ticks ) { 45350: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45354: 2039 0005 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4535a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4535c: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 45360: 5280 addql #1,%d0 <== NOT EXECUTED 45362: 23c0 0005 7e7c movel %d0,57e7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); if ( ticks == 0 ) { 45368: 4a82 tstl %d2 <== NOT EXECUTED 4536a: 6608 bnes 45374 <== NOT EXECUTED _Thread_Yield_processor(); 4536c: 4eb9 0004 794c jsr 4794c <_Thread_Yield_processor> <== NOT EXECUTED 45372: 604a bras 453be <== NOT EXECUTED } else { _Thread_Set_state( _Thread_Executing, STATES_DELAYING ); 45374: 4878 0008 pea 8 <== NOT EXECUTED 45378: 2f39 0005 7f3a movel 57f3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 4537e: 4eb9 0004 754c jsr 4754c <_Thread_Set_state> <== NOT EXECUTED _Watchdog_Initialize( 45384: 2079 0005 7f3a moveal 57f3a <_Thread_Executing>,%a0 <== NOT EXECUTED 4538a: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4538e: 223c 0004 6b7c movel #289660,%d1 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45394: 2142 0054 movel %d2,%a0@(84) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 45398: 2141 0064 movel %d1,%a0@(100) <== NOT EXECUTED the_watchdog->id = id; 4539c: 2140 0068 movel %d0,%a0@(104) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 453a0: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 453a4: 42a8 006c clrl %a0@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 453a8: 4868 0048 pea %a0@(72) <== NOT EXECUTED 453ac: 4879 0005 7f58 pea 57f58 <_Watchdog_Ticks_chain> <== NOT EXECUTED 453b2: 4eb9 0004 7c80 jsr 47c80 <_Watchdog_Insert> <== NOT EXECUTED 453b8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED _Thread_Executing->Object.id, NULL ); _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks ); } _Thread_Enable_dispatch(); 453be: 4eb9 0004 6d0a jsr 46d0a <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 453c4: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 453c8: 4e5e unlk %fp <== NOT EXECUTED 453ca: 4280 clrl %d0 <== NOT EXECUTED 453cc: 4e75 rts <== NOT EXECUTED ... 00045e78 : */ rtems_status_code rtems_task_wake_when( rtems_time_of_day *time_buffer ) { 45e78: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45e7c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45e7e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Watchdog_Interval seconds; if ( !_TOD_Is_set ) 45e82: 4a39 0005 9ad0 tstb 59ad0 <_TOD_Is_set> <== NOT EXECUTED 45e88: 6606 bnes 45e90 <== NOT EXECUTED 45e8a: 700b moveq #11,%d0 <== NOT EXECUTED 45e8c: 6000 009c braw 45f2a <== NOT EXECUTED return RTEMS_NOT_DEFINED; if ( !time_buffer ) 45e90: 4a8a tstl %a2 <== NOT EXECUTED 45e92: 6606 bnes 45e9a <== NOT EXECUTED 45e94: 7009 moveq #9,%d0 <== NOT EXECUTED 45e96: 6000 0092 braw 45f2a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; time_buffer->ticks = 0; 45e9a: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED if ( !_TOD_Validate( time_buffer ) ) 45e9e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45ea0: 4eb9 0004 52f0 jsr 452f0 <_TOD_Validate> <== NOT EXECUTED 45ea6: 588f addql #4,%sp <== NOT EXECUTED 45ea8: 4a00 tstb %d0 <== NOT EXECUTED 45eaa: 677c beqs 45f28 <== NOT EXECUTED return RTEMS_INVALID_CLOCK; seconds = _TOD_To_seconds( time_buffer ); 45eac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45eae: 4eb9 0004 523c jsr 4523c <_TOD_To_seconds> <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 45eb4: 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 ); 45eb6: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 45eb8: b0b9 0005 9b4e cmpl 59b4e <_TOD_Now>,%d0 <== NOT EXECUTED 45ebe: 6368 blss 45f28 <== NOT EXECUTED 45ec0: 2039 0005 9abc movel 59abc <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45ec6: 5280 addql #1,%d0 <== NOT EXECUTED 45ec8: 23c0 0005 9abc movel %d0,59abc <_Thread_Dispatch_disable_level> <== NOT EXECUTED return RTEMS_INVALID_CLOCK; _Thread_Disable_dispatch(); _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME ); 45ece: 4878 0010 pea 10 <== NOT EXECUTED 45ed2: 2f39 0005 9b7a movel 59b7a <_Thread_Executing>,%sp@- <== NOT EXECUTED 45ed8: 4eb9 0004 80ac jsr 480ac <_Thread_Set_state> <== NOT EXECUTED _Watchdog_Initialize( 45ede: 2079 0005 9b7a moveal 59b7a <_Thread_Executing>,%a0 <== NOT EXECUTED 45ee4: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 45ee8: 2140 0068 movel %d0,%a0@(104) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45eec: 95f9 0005 9b4e subal 59b4e <_TOD_Now>,%a2 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 45ef2: 203c 0004 76dc movel #292572,%d0 <== NOT EXECUTED 45ef8: 2140 0064 movel %d0,%a0@(100) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45efc: 214a 0054 movel %a2,%a0@(84) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 45f00: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 45f04: 42a8 006c clrl %a0@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 45f08: 4868 0048 pea %a0@(72) <== NOT EXECUTED 45f0c: 4879 0005 9b8c pea 59b8c <_Watchdog_Seconds_chain> <== NOT EXECUTED 45f12: 4eb9 0004 8864 jsr 48864 <_Watchdog_Insert> <== NOT EXECUTED ); _Watchdog_Insert_seconds( &_Thread_Executing->Timer, seconds - _TOD_Seconds_since_epoch ); _Thread_Enable_dispatch(); 45f18: 4eb9 0004 786a jsr 4786a <_Thread_Enable_dispatch> <== NOT EXECUTED 45f1e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45f24: 4280 clrl %d0 <== NOT EXECUTED 45f26: 6002 bras 45f2a <== NOT EXECUTED return RTEMS_SUCCESSFUL; 45f28: 7014 moveq #20,%d0 <== NOT EXECUTED } 45f2a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45f2e: 4e5e unlk %fp <== NOT EXECUTED 45f30: 4e75 rts <== NOT EXECUTED ... 00042db8 : rtems_status_code rtems_termios_bufsize ( int cbufsize, int raw_input, int raw_output ) { 42db8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_termios_cbufsize = cbufsize; 42dbc: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED 42dc0: 23d0 0005 6754 movel %a0@,56754 <== NOT EXECUTED rtems_termios_raw_input_size = raw_input; 42dc6: 41ee 000c lea %fp@(12),%a0 <== NOT EXECUTED 42dca: 23d0 0005 6758 movel %a0@,56758 <== NOT EXECUTED rtems_termios_raw_output_size = raw_output; 42dd0: 41ee 0010 lea %fp@(16),%a0 <== NOT EXECUTED 42dd4: 23d0 0005 675c movel %a0@,5675c <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 42dda: 4e5e unlk %fp <== NOT EXECUTED 42ddc: 4280 clrl %d0 <== NOT EXECUTED 42dde: 4e75 rts 00044002 : } } rtems_status_code rtems_termios_close (void *arg) { 44002: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 44006: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED 4400a: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED rtems_libio_open_close_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 4400e: 2054 moveal %a4@,%a0 <== NOT EXECUTED 44010: 2668 0028 moveal %a0@(40),%a3 <== NOT EXECUTED rtems_status_code sc; sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 44014: 42a7 clrl %sp@- <== NOT EXECUTED 44016: 42a7 clrl %sp@- <== NOT EXECUTED 44018: 2f39 0005 7da4 movel 57da4 ,%sp@- <== NOT EXECUTED 4401e: 4eb9 0004 4e4c jsr 44e4c <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 44024: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4402a: 4a80 tstl %d0 <== NOT EXECUTED 4402c: 665e bnes 4408c <== NOT EXECUTED rtems_fatal_error_occurred (sc); if (--tty->refcount == 0) { 4402e: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 44032: 5380 subql #1,%d0 <== NOT EXECUTED 44034: 2740 0008 movel %d0,%a3@(8) <== NOT EXECUTED 44038: 6600 0104 bnew 4413e <== NOT EXECUTED if (rtems_termios_linesw[tty->t_line].l_close != NULL) { 4403c: 202b 00cc movel %a3@(204),%d0 <== NOT EXECUTED 44040: 41f9 0005 7528 lea 57528 ,%a0 <== NOT EXECUTED 44046: e788 lsll #3,%d0 <== NOT EXECUTED 44048: 2070 0c04 moveal %a0@(00000004,%d0:l:4),%a0 <== NOT EXECUTED 4404c: 4a88 tstl %a0 <== NOT EXECUTED 4404e: 6706 beqs 44056 <== NOT EXECUTED /* * call discipline-specific close */ sc = rtems_termios_linesw[tty->t_line].l_close(tty); 44050: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44052: 4e90 jsr %a0@ <== NOT EXECUTED 44054: 6006 bras 4405c <== NOT EXECUTED } else { /* * default: just flush output buffer */ drainOutput (tty); 44056: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44058: 4eba f906 jsr %pc@(43960 ) <== NOT EXECUTED 4405c: 588f addql #4,%sp <== NOT EXECUTED } if (tty->device.outputUsesInterrupts 4405e: 7002 moveq #2,%d0 <== NOT EXECUTED 44060: b0ab 00b4 cmpl %a3@(180),%d0 <== NOT EXECUTED 44064: 662e bnes 44094 <== NOT EXECUTED == TERMIOS_TASK_DRIVEN) { /* * send "terminate" to I/O tasks */ sc = rtems_event_send( 44066: 4878 0001 pea 1 <== NOT EXECUTED 4406a: 45f9 0004 49e8 lea 449e8 ,%a2 <== NOT EXECUTED 44070: 2f2b 00c4 movel %a3@(196),%sp@- <== NOT EXECUTED 44074: 4e92 jsr %a2@ <== NOT EXECUTED tty->rxTaskId, TERMIOS_RX_TERMINATE_EVENT); if (sc != RTEMS_SUCCESSFUL) 44076: 508f addql #8,%sp <== NOT EXECUTED 44078: 4a80 tstl %d0 <== NOT EXECUTED 4407a: 6610 bnes 4408c <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_event_send( 4407c: 4878 0001 pea 1 <== NOT EXECUTED 44080: 2f2b 00c8 movel %a3@(200),%sp@- <== NOT EXECUTED 44084: 4e92 jsr %a2@ <== NOT EXECUTED tty->txTaskId, TERMIOS_TX_TERMINATE_EVENT); if (sc != RTEMS_SUCCESSFUL) 44086: 508f addql #8,%sp <== NOT EXECUTED 44088: 4a80 tstl %d0 <== NOT EXECUTED 4408a: 6708 beqs 44094 <== NOT EXECUTED rtems_fatal_error_occurred (sc); 4408c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4408e: 4eb9 0004 5580 jsr 45580 <== NOT EXECUTED } if (tty->device.lastClose) 44094: 206b 009c moveal %a3@(156),%a0 <== NOT EXECUTED 44098: 4a88 tstl %a0 <== NOT EXECUTED 4409a: 6712 beqs 440ae <== NOT EXECUTED (*tty->device.lastClose)(tty->major, tty->minor, arg); 4409c: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4409e: 2f2b 0010 movel %a3@(16),%sp@- <== NOT EXECUTED 440a2: 2f2b 000c movel %a3@(12),%sp@- <== NOT EXECUTED 440a6: 4e90 jsr %a0@ <== NOT EXECUTED 440a8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED if (tty->forw == NULL) { 440ae: 2053 moveal %a3@,%a0 <== NOT EXECUTED 440b0: 4a88 tstl %a0 <== NOT EXECUTED 440b2: 6610 bnes 440c4 <== NOT EXECUTED rtems_termios_ttyTail = tty->back; 440b4: 206b 0004 moveal %a3@(4),%a0 <== NOT EXECUTED 440b8: 23c8 0005 7da8 movel %a0,57da8 <== NOT EXECUTED if ( rtems_termios_ttyTail != NULL ) { 440be: 670a beqs 440ca <== NOT EXECUTED rtems_termios_ttyTail->forw = NULL; 440c0: 4290 clrl %a0@ <== NOT EXECUTED 440c2: 6006 bras 440ca <== NOT EXECUTED } } else { tty->forw->back = tty->back; 440c4: 216b 0004 0004 movel %a3@(4),%a0@(4) <== NOT EXECUTED } if (tty->back == NULL) { 440ca: 206b 0004 moveal %a3@(4),%a0 <== NOT EXECUTED 440ce: 4a88 tstl %a0 <== NOT EXECUTED 440d0: 6610 bnes 440e2 <== NOT EXECUTED rtems_termios_ttyHead = tty->forw; 440d2: 2053 moveal %a3@,%a0 <== NOT EXECUTED 440d4: 23c8 0005 7dac movel %a0,57dac <== NOT EXECUTED if ( rtems_termios_ttyHead != NULL ) { 440da: 6708 beqs 440e4 <== NOT EXECUTED rtems_termios_ttyHead->back = NULL; 440dc: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED 440e0: 6002 bras 440e4 <== NOT EXECUTED } } else { tty->back->forw = tty->forw; 440e2: 2093 movel %a3@,%a0@ <== NOT EXECUTED } rtems_semaphore_delete (tty->isem); 440e4: 2f2b 0014 movel %a3@(20),%sp@- <== NOT EXECUTED 440e8: 45f9 0004 4dac lea 44dac ,%a2 <== NOT EXECUTED 440ee: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_delete (tty->osem); 440f0: 2f2b 0018 movel %a3@(24),%sp@- <== NOT EXECUTED 440f4: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_delete (tty->rawOutBuf.Semaphore); 440f6: 2f2b 008c movel %a3@(140),%sp@- <== NOT EXECUTED 440fa: 4e92 jsr %a2@ <== NOT EXECUTED if ((tty->device.pollRead == NULL) || 440fc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44102: 4aab 00a0 tstl %a3@(160) <== NOT EXECUTED 44106: 6708 beqs 44110 <== NOT EXECUTED 44108: 7002 moveq #2,%d0 <== NOT EXECUTED 4410a: b0ab 00b4 cmpl %a3@(180),%d0 <== NOT EXECUTED 4410e: 660c bnes 4411c <== NOT EXECUTED (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN)) rtems_semaphore_delete (tty->rawInBuf.Semaphore); 44110: 2f2b 0068 movel %a3@(104),%sp@- <== NOT EXECUTED 44114: 4eb9 0004 4dac jsr 44dac <== NOT EXECUTED 4411a: 588f addql #4,%sp <== NOT EXECUTED free (tty->rawInBuf.theBuf); 4411c: 2f2b 0058 movel %a3@(88),%sp@- <== NOT EXECUTED 44120: 45f9 0004 8e8c lea 48e8c ,%a2 <== NOT EXECUTED 44126: 4e92 jsr %a2@ <== NOT EXECUTED free (tty->rawOutBuf.theBuf); 44128: 2f2b 007c movel %a3@(124),%sp@- <== NOT EXECUTED 4412c: 4e92 jsr %a2@ <== NOT EXECUTED free (tty->cbuf); 4412e: 2f2b 001c movel %a3@(28),%sp@- <== NOT EXECUTED 44132: 4e92 jsr %a2@ <== NOT EXECUTED free (tty); 44134: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44136: 4e92 jsr %a2@ <== NOT EXECUTED 44138: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } rtems_semaphore_release (rtems_termios_ttyMutex); 4413e: 2f39 0005 7da4 movel 57da4 ,%sp@- <== NOT EXECUTED 44144: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4414a: 4cee 1c00 fff4 moveml %fp@(-12),%a2-%a4 <== NOT EXECUTED 44150: 4e5e unlk %fp <== NOT EXECUTED 44152: 4280 clrl %d0 <== NOT EXECUTED 44154: 4e75 rts 00042fb4 : * for each transmitted character. * It returns number of characters left to transmit */ int rtems_termios_dequeue_characters (void *ttyp, int len) { 42fb4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_status_code sc; /* * sum up character count already sent */ tty->t_dqlen += len; 42fb8: 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) { 42fbc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED rtems_status_code sc; /* * sum up character count already sent */ tty->t_dqlen += len; 42fc0: d1a8 0090 addl %d0,%a0@(144) <== NOT EXECUTED if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { 42fc4: 7002 moveq #2,%d0 <== NOT EXECUTED 42fc6: b0a8 00b4 cmpl %a0@(180),%d0 <== NOT EXECUTED 42fca: 661c bnes 42fe8 <== NOT EXECUTED /* * send wake up to transmitter task */ sc = rtems_event_send(tty->txTaskId, 42fcc: 4878 0002 pea 2 <== NOT EXECUTED 42fd0: 2f28 00c8 movel %a0@(200),%sp@- <== NOT EXECUTED 42fd4: 4eb9 0004 49e8 jsr 449e8 <== NOT EXECUTED TERMIOS_TX_START_EVENT); if (sc != RTEMS_SUCCESSFUL) 42fda: 508f addql #8,%sp <== NOT EXECUTED 42fdc: 4a80 tstl %d0 <== NOT EXECUTED 42fde: 672e beqs 4300e <== NOT EXECUTED rtems_fatal_error_occurred (sc); 42fe0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42fe2: 4eb9 0004 5580 jsr 45580 <== NOT EXECUTED return 0; /* nothing to output in IRQ... */ } else if (tty->t_line == PPPDISC ) { 42fe8: 7005 moveq #5,%d0 <== NOT EXECUTED 42fea: b0a8 00cc cmpl %a0@(204),%d0 <== NOT EXECUTED 42fee: 6612 bnes 43002 <== NOT EXECUTED /* * call any line discipline start function */ if (rtems_termios_linesw[tty->t_line].l_start != NULL) { 42ff0: 2279 0005 75dc moveal 575dc ,%a1 <== NOT EXECUTED 42ff6: 4a89 tstl %a1 <== NOT EXECUTED 42ff8: 6714 beqs 4300e <== NOT EXECUTED rtems_termios_linesw[tty->t_line].l_start(tty); 42ffa: 2f08 movel %a0,%sp@- <== NOT EXECUTED 42ffc: 4e91 jsr %a1@ <== NOT EXECUTED 42ffe: 588f addql #4,%sp <== NOT EXECUTED 43000: 600c bras 4300e <== NOT EXECUTED } return 0; /* nothing to output in IRQ... */ } else { return rtems_termios_refill_transmitter(tty); 43002: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } } 43006: 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); 43008: 4ef9 0004 2dfc jmp 42dfc <== NOT EXECUTED } } 4300e: 4e5e unlk %fp <== NOT EXECUTED 43010: 4280 clrl %d0 <== NOT EXECUTED 43012: 4e75 rts 00043014 : * 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) { 43014: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 43018: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 4301c: 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) { 43020: 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) { 43024: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED 43028: 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) { 4302c: eb88 lsll #5,%d0 <== NOT EXECUTED 4302e: 41f9 0005 7528 lea 57528 ,%a0 <== NOT EXECUTED 43034: 4ab0 0810 tstl %a0@(00000010,%d0:l) <== NOT EXECUTED 43038: 6628 bnes 43062 <== 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, 4303a: 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); 4303e: 47ea 0030 lea %a2@(48),%a3 <== NOT EXECUTED 43042: 4283 clrl %d3 <== NOT EXECUTED 43044: 4205 clrb %d5 <== NOT EXECUTED 43046: 6000 01fc braw 43244 <== 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); 4304a: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 4304e: eb88 lsll #5,%d0 <== NOT EXECUTED 43050: 2073 0810 moveal %a3@(00000010,%d0:l),%a0 <== NOT EXECUTED 43054: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43056: 101c moveb %a4@+,%d0 <== NOT EXECUTED 43058: 49c0 extbl %d0 <== NOT EXECUTED 4305a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4305c: 4e90 jsr %a0@ <== NOT EXECUTED 4305e: 508f addql #8,%sp <== NOT EXECUTED 43060: 6002 bras 43064 <== NOT EXECUTED 43062: 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--) { 43064: 5384 subql #1,%d4 <== NOT EXECUTED 43066: 72ff moveq #-1,%d1 <== NOT EXECUTED 43068: b284 cmpl %d4,%d1 <== NOT EXECUTED 4306a: 66de bnes 4304a <== NOT EXECUTED } /* * check to see if rcv wakeup callback was set */ if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) { 4306c: 4aaa 00e4 tstl %a2@(228) <== NOT EXECUTED 43070: 6600 01ee bnew 43260 <== NOT EXECUTED 43074: 206a 00dc moveal %a2@(220),%a0 <== NOT EXECUTED 43078: 4a88 tstl %a0 <== NOT EXECUTED 4307a: 6700 01e4 beqw 43260 <== NOT EXECUTED (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 4307e: 2f2a 00e0 movel %a2@(224),%sp@- <== NOT EXECUTED tty->tty_rcvwakeup = 1; 43082: 7c01 moveq #1,%d6 <== NOT EXECUTED 43084: 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); 43086: 486a 0030 pea %a2@(48) <== NOT EXECUTED 4308a: 4e90 jsr %a0@ <== NOT EXECUTED tty->tty_rcvwakeup = 1; 4308c: 508f addql #8,%sp <== NOT EXECUTED 4308e: 2546 00e4 movel %d6,%a2@(228) <== NOT EXECUTED 43092: 6000 01ce braw 43262 <== 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) { 43096: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED } return 0; } while (len--) { c = *buf++; 4309a: 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) { 4309e: 0800 0009 btst #9,%d0 <== NOT EXECUTED 430a2: 6740 beqs 430e4 <== NOT EXECUTED /* if received char is V_STOP and V_START (both are equal value) */ if (c == tty->termios.c_cc[VSTOP]) { 430a4: 4280 clrl %d0 <== NOT EXECUTED 430a6: 102a 004a moveb %a2@(74),%d0 <== NOT EXECUTED 430aa: 122e fffb moveb %fp@(-5),%d1 <== NOT EXECUTED 430ae: 4282 clrl %d2 <== NOT EXECUTED 430b0: 49c1 extbl %d1 <== NOT EXECUTED 430b2: 142a 0049 moveb %a2@(73),%d2 <== NOT EXECUTED 430b6: b081 cmpl %d1,%d0 <== NOT EXECUTED 430b8: 6618 bnes 430d2 <== NOT EXECUTED if (c == tty->termios.c_cc[VSTART]) { 430ba: b481 cmpl %d1,%d2 <== NOT EXECUTED 430bc: 660a bnes 430c8 <== NOT EXECUTED /* received VSTOP and VSTART==VSTOP? */ /* then toggle "stop output" status */ tty->flow_ctrl = tty->flow_ctrl ^ FL_ORCVXOF; 430be: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 430c2: 7e10 moveq #16,%d7 <== NOT EXECUTED 430c4: bf80 eorl %d7,%d0 <== NOT EXECUTED 430c6: 6016 bras 430de <== NOT EXECUTED } else { /* VSTOP received (other code than VSTART) */ /* stop output */ tty->flow_ctrl |= FL_ORCVXOF; 430c8: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 430cc: 7210 moveq #16,%d1 <== NOT EXECUTED 430ce: 8081 orl %d1,%d0 <== NOT EXECUTED 430d0: 600c bras 430de <== NOT EXECUTED } flow_rcv = true; } else if (c == tty->termios.c_cc[VSTART]) { 430d2: b481 cmpl %d1,%d2 <== NOT EXECUTED 430d4: 660e bnes 430e4 <== NOT EXECUTED /* VSTART received */ /* restart output */ tty->flow_ctrl &= ~FL_ORCVXOF; 430d6: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 430da: 7cef moveq #-17,%d6 <== NOT EXECUTED 430dc: c086 andl %d6,%d0 <== NOT EXECUTED 430de: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED 430e2: 6004 bras 430e8 <== NOT EXECUTED flow_rcv = true; } } if (flow_rcv) { 430e4: 4a05 tstb %d5 <== NOT EXECUTED 430e6: 6752 beqs 4313a <== NOT EXECUTED /* restart output according to FL_ORCVXOF flag */ if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) { 430e8: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 430ec: 7e30 moveq #48,%d7 <== NOT EXECUTED 430ee: c087 andl %d7,%d0 <== NOT EXECUTED 430f0: 7220 moveq #32,%d1 <== NOT EXECUTED 430f2: b280 cmpl %d0,%d1 <== NOT EXECUTED 430f4: 663e bnes 43134 <== NOT EXECUTED /* disable interrupts */ rtems_interrupt_disable(level); 430f6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 430fc: 40c2 movew %sr,%d2 <== NOT EXECUTED 430fe: 8082 orl %d2,%d0 <== NOT EXECUTED 43100: 46c0 movew %d0,%sr <== NOT EXECUTED tty->flow_ctrl &= ~FL_OSTOP; 43102: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43106: 7cdf moveq #-33,%d6 <== NOT EXECUTED 43108: c086 andl %d6,%d0 <== NOT EXECUTED 4310a: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* check for chars in output buffer (or rob_state?) */ if (tty->rawOutBufState != rob_idle) { 4310e: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 43112: 671e beqs 43132 <== NOT EXECUTED /* if chars available, call write function... */ (*tty->device.write)(tty->minor, 43114: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 43118: 4878 0001 pea 1 <== NOT EXECUTED 4311c: d0aa 007c addl %a2@(124),%d0 <== NOT EXECUTED 43120: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43122: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 43126: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 4312a: 4e90 jsr %a0@ <== NOT EXECUTED 4312c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail], 1); } /* reenable interrupts */ rtems_interrupt_enable(level); 43132: 46c2 movew %d2,%sr <== NOT EXECUTED 43134: 7a01 moveq #1,%d5 <== NOT EXECUTED 43136: 6000 010a braw 43242 <== NOT EXECUTED } } else { newTail = (tty->rawInBuf.Tail + 1) % tty->rawInBuf.Size; 4313a: 202a 0060 movel %a2@(96),%d0 <== NOT EXECUTED 4313e: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED 43142: 5280 addql #1,%d0 <== NOT EXECUTED 43144: 4c41 0002 remul %d1,%d2,%d0 <== NOT EXECUTED /* if chars_in_buffer > highwater */ rtems_interrupt_disable(level); 43148: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4314e: 40c7 movew %sr,%d7 <== NOT EXECUTED 43150: 8087 orl %d7,%d0 <== NOT EXECUTED 43152: 46c0 movew %d0,%sr <== NOT EXECUTED 43154: 2d47 fffc movel %d7,%fp@(-4) <== NOT EXECUTED if ((((newTail - tty->rawInBuf.Head + tty->rawInBuf.Size) 43158: 222a 005c movel %a2@(92),%d1 <== NOT EXECUTED 4315c: 202a 0064 movel %a2@(100),%d0 <== NOT EXECUTED 43160: 9081 subl %d1,%d0 <== NOT EXECUTED 43162: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED 43166: d082 addl %d2,%d0 <== NOT EXECUTED 43168: 2c00 movel %d0,%d6 <== NOT EXECUTED 4316a: 4c41 6007 remul %d1,%d7,%d6 <== NOT EXECUTED 4316e: beaa 00c0 cmpl %a2@(192),%d7 <== NOT EXECUTED 43172: 6300 008e blsw 43202 <== NOT EXECUTED 43176: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 4317a: 0800 0000 btst #0,%d0 <== NOT EXECUTED 4317e: 6600 0082 bnew 43202 <== NOT EXECUTED % tty->rawInBuf.Size) > tty->highwater) && !(tty->flow_ctrl & FL_IREQXOF)) { /* incoming data stream should be stopped */ tty->flow_ctrl |= FL_IREQXOF; 43182: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43186: 7201 moveq #1,%d1 <== NOT EXECUTED 43188: 8081 orl %d1,%d0 <== NOT EXECUTED 4318a: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED if ((tty->flow_ctrl & (FL_MDXOF | FL_ISNTXOF)) 4318e: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43192: 0280 0000 0402 andil #1026,%d0 <== NOT EXECUTED 43198: 0c80 0000 0400 cmpil #1024,%d0 <== NOT EXECUTED 4319e: 6634 bnes 431d4 <== NOT EXECUTED == (FL_MDXOF ) ){ if ((tty->flow_ctrl & FL_OSTOP) || 431a0: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 431a4: 0800 0005 btst #5,%d0 <== NOT EXECUTED 431a8: 6606 bnes 431b0 <== NOT EXECUTED 431aa: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 431ae: 6652 bnes 43202 <== 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, 431b0: 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; 431b4: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED (*tty->device.write)(tty->minor, 431b8: 2f0d movel %a5,%sp@- <== NOT EXECUTED 431ba: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 431be: 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; 431c2: 7c02 moveq #2,%d6 <== NOT EXECUTED 431c4: 8086 orl %d6,%d0 <== NOT EXECUTED 431c6: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED (*tty->device.write)(tty->minor, 431ca: 4e90 jsr %a0@ <== NOT EXECUTED 431cc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 431d2: 602e bras 43202 <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTOP]), 1); } } else if ((tty->flow_ctrl & (FL_MDRTS | FL_IRTSOFF)) 431d4: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 431d8: 0280 0000 0104 andil #260,%d0 <== NOT EXECUTED 431de: 0c80 0000 0100 cmpil #256,%d0 <== NOT EXECUTED 431e4: 661c bnes 43202 <== NOT EXECUTED == (FL_MDRTS ) ) { tty->flow_ctrl |= FL_IRTSOFF; 431e6: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 431ea: 7e04 moveq #4,%d7 <== NOT EXECUTED /* deactivate RTS line */ if (tty->device.stopRemoteTx != NULL) { 431ec: 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; 431f0: 8087 orl %d7,%d0 <== NOT EXECUTED 431f2: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* deactivate RTS line */ if (tty->device.stopRemoteTx != NULL) { 431f6: 4a88 tstl %a0 <== NOT EXECUTED 431f8: 6708 beqs 43202 <== NOT EXECUTED tty->device.stopRemoteTx(tty->minor); 431fa: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 431fe: 4e90 jsr %a0@ <== NOT EXECUTED 43200: 588f addql #4,%sp <== NOT EXECUTED } } } /* reenable interrupts */ rtems_interrupt_enable(level); 43202: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 43206: 46c0 movew %d0,%sr <== NOT EXECUTED if (newTail == tty->rawInBuf.Head) { 43208: 202a 005c movel %a2@(92),%d0 <== NOT EXECUTED 4320c: b082 cmpl %d2,%d0 <== NOT EXECUTED 4320e: 6604 bnes 43214 <== NOT EXECUTED dropped++; 43210: 5283 addql #1,%d3 <== NOT EXECUTED 43212: 602e bras 43242 <== NOT EXECUTED } else { tty->rawInBuf.theBuf[newTail] = c; 43214: 206a 0058 moveal %a2@(88),%a0 <== NOT EXECUTED 43218: 122e fffb moveb %fp@(-5),%d1 <== NOT EXECUTED 4321c: 1181 2800 moveb %d1,%a0@(00000000,%d2:l) <== NOT EXECUTED tty->rawInBuf.Tail = newTail; 43220: 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 )) { 43224: 4aaa 00e4 tstl %a2@(228) <== NOT EXECUTED 43228: 6618 bnes 43242 <== NOT EXECUTED 4322a: 206a 00dc moveal %a2@(220),%a0 <== NOT EXECUTED 4322e: 4a88 tstl %a0 <== NOT EXECUTED 43230: 6710 beqs 43242 <== NOT EXECUTED (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 43232: 2f2a 00e0 movel %a2@(224),%sp@- <== NOT EXECUTED tty->tty_rcvwakeup = 1; 43236: 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); 43238: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4323a: 4e90 jsr %a0@ <== NOT EXECUTED tty->tty_rcvwakeup = 1; 4323c: 508f addql #8,%sp <== NOT EXECUTED 4323e: 2546 00e4 movel %d6,%a2@(228) <== NOT EXECUTED } return 0; } while (len--) { c = *buf++; 43242: 528c addql #1,%a4 <== NOT EXECUTED tty->tty_rcvwakeup = 1; } return 0; } while (len--) { 43244: 5384 subql #1,%d4 <== NOT EXECUTED 43246: 7eff moveq #-1,%d7 <== NOT EXECUTED 43248: be84 cmpl %d4,%d7 <== NOT EXECUTED 4324a: 6600 fe4a bnew 43096 <== NOT EXECUTED tty->tty_rcvwakeup = 1; } } } } tty->rawInBufDropped += dropped; 4324e: d7aa 0078 addl %d3,%a2@(120) <== NOT EXECUTED rtems_semaphore_release (tty->rawInBuf.Semaphore); 43252: 2f2a 0068 movel %a2@(104),%sp@- <== NOT EXECUTED 43256: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 4325c: 588f addql #4,%sp <== NOT EXECUTED 4325e: 6002 bras 43262 <== NOT EXECUTED return dropped; 43260: 4283 clrl %d3 <== NOT EXECUTED } 43262: 2003 movel %d3,%d0 <== NOT EXECUTED 43264: 4cee 3cfc ffd0 moveml %fp@(-48),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4326a: 4e5e unlk %fp <== NOT EXECUTED 4326c: 4e75 rts 00042d78 : struct rtems_termios_tty *rtems_termios_ttyTail; rtems_id rtems_termios_ttyMutex; void rtems_termios_initialize (void) { 42d78: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_status_code sc; /* * Create the mutex semaphore for the tty list */ if (!rtems_termios_ttyMutex) { 42d7c: 4ab9 0005 7da4 tstl 57da4 <== NOT EXECUTED 42d82: 662e bnes 42db2 <== NOT EXECUTED sc = rtems_semaphore_create ( 42d84: 4879 0005 7da4 pea 57da4 <== NOT EXECUTED 42d8a: 42a7 clrl %sp@- <== NOT EXECUTED 42d8c: 4878 0054 pea 54 <== NOT EXECUTED 42d90: 4878 0001 pea 1 <== NOT EXECUTED 42d94: 2f3c 5452 6d69 movel #1414688105,%sp@- <== NOT EXECUTED 42d9a: 4eb9 0004 4c10 jsr 44c10 <== 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) 42da0: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 42da6: 4a80 tstl %d0 <== NOT EXECUTED 42da8: 6708 beqs 42db2 <== NOT EXECUTED rtems_fatal_error_occurred (sc); 42daa: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42dac: 4eb9 0004 5580 jsr 45580 <== NOT EXECUTED } } 42db2: 4e5e unlk %fp <== NOT EXECUTED 42db4: 4e75 rts <== NOT EXECUTED ... 00043cda : } } rtems_status_code rtems_termios_ioctl (void *arg) { 43cda: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 43cde: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 43ce2: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED rtems_libio_ioctl_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 43ce6: 2054 moveal %a4@,%a0 <== NOT EXECUTED 43ce8: 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); 43cec: 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; 43cee: 266c 0008 moveal %a4@(8),%a3 <== NOT EXECUTED rtems_status_code sc; args->ioctl_return = 0; 43cf2: 42ac 000c clrl %a4@(12) <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 43cf6: 42a7 clrl %sp@- <== NOT EXECUTED 43cf8: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 43cfc: 4eb9 0004 4e4c jsr 44e4c <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 43d02: 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); 43d08: 2400 movel %d0,%d2 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 43d0a: 6600 02e6 bnew 43ff2 <== NOT EXECUTED args->ioctl_return = sc; return sc; } switch (args->command) { 43d0e: 202c 0004 movel %a4@(4),%d0 <== NOT EXECUTED 43d12: 7204 moveq #4,%d1 <== NOT EXECUTED 43d14: b280 cmpl %d0,%d1 <== NOT EXECUTED 43d16: 6700 024e beqw 43f66 <== NOT EXECUTED 43d1a: 6514 bcss 43d30 <== NOT EXECUTED 43d1c: 7602 moveq #2,%d3 <== NOT EXECUTED 43d1e: b680 cmpl %d0,%d3 <== NOT EXECUTED 43d20: 677a beqs 43d9c <== NOT EXECUTED 43d22: 6500 022a bcsw 43f4e <== NOT EXECUTED 43d26: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 43d2a: b280 cmpl %d0,%d1 <== NOT EXECUTED 43d2c: 662c bnes 43d5a <== NOT EXECUTED 43d2e: 6050 bras 43d80 <== NOT EXECUTED 43d30: 0c80 4004 667f cmpil #1074030207,%d0 <== NOT EXECUTED 43d36: 6700 028c beqw 43fc4 <== NOT EXECUTED 43d3a: 620a bhis 43d46 <== NOT EXECUTED 43d3c: 7605 moveq #5,%d3 <== NOT EXECUTED 43d3e: b680 cmpl %d0,%d3 <== NOT EXECUTED 43d40: 6618 bnes 43d5a <== NOT EXECUTED 43d42: 6000 0212 braw 43f56 <== NOT EXECUTED 43d46: 0c80 4004 741a cmpil #1074033690,%d0 <== NOT EXECUTED 43d4c: 6700 026c beqw 43fba <== NOT EXECUTED 43d50: 0c80 8004 741b cmpil #-2147191781,%d0 <== NOT EXECUTED 43d56: 6700 021c beqw 43f74 <== NOT EXECUTED default: if (rtems_termios_linesw[tty->t_line].l_ioctl != NULL) { 43d5a: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 43d5e: eb88 lsll #5,%d0 <== NOT EXECUTED 43d60: 0680 0005 7540 addil #357696,%d0 <== NOT EXECUTED 43d66: 2240 moveal %d0,%a1 <== NOT EXECUTED 43d68: 2051 moveal %a1@,%a0 <== NOT EXECUTED 43d6a: 4a88 tstl %a0 <== NOT EXECUTED 43d6c: 6606 bnes 43d74 <== NOT EXECUTED 43d6e: 740a moveq #10,%d2 <== NOT EXECUTED 43d70: 6000 0274 braw 43fe6 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_ioctl(tty,args); 43d74: 2f0c movel %a4,%sp@- <== NOT EXECUTED 43d76: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43d78: 4e90 jsr %a0@ <== NOT EXECUTED 43d7a: 2400 movel %d0,%d2 <== NOT EXECUTED 43d7c: 6000 01ca braw 43f48 <== NOT EXECUTED sc = RTEMS_INVALID_NUMBER; } break; case RTEMS_IO_GET_ATTRIBUTES: *(struct termios *)args->buffer = tty->termios; 43d80: 4878 0024 pea 24 <== NOT EXECUTED 43d84: 486a 0030 pea %a2@(48) <== NOT EXECUTED 43d88: 2f2c 0008 movel %a4@(8),%sp@- <== NOT EXECUTED 43d8c: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED 43d92: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43d98: 6000 024c braw 43fe6 <== NOT EXECUTED break; case RTEMS_IO_SET_ATTRIBUTES: tty->termios = *(struct termios *)args->buffer; 43d9c: 4878 0024 pea 24 <== NOT EXECUTED 43da0: 2f2c 0008 movel %a4@(8),%sp@- <== NOT EXECUTED 43da4: 486a 0030 pea %a2@(48) <== NOT EXECUTED 43da8: 4eb9 0004 bf4c jsr 4bf4c <== 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) && 43dae: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43db2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43db8: 0800 0009 btst #9,%d0 <== NOT EXECUTED 43dbc: 6762 beqs 43e20 <== NOT EXECUTED 43dbe: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 43dc2: 0280 0000 0400 andil #1024,%d0 <== NOT EXECUTED 43dc8: 6656 bnes 43e20 <== NOT EXECUTED !(tty->termios.c_iflag & IXON)) { /* clear related flags in flow_ctrl */ tty->flow_ctrl &= ~(FL_MDXON | FL_ORCVXOF); 43dca: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43dce: 0280 ffff fdef andil #-529,%d0 <== NOT EXECUTED 43dd4: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* has output been stopped due to received XOFF? */ if (tty->flow_ctrl & FL_OSTOP) { 43dd8: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43ddc: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43de0: 673e beqs 43e20 <== NOT EXECUTED /* disable interrupts */ rtems_interrupt_disable(level); 43de2: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 43de8: 40c3 movew %sr,%d3 <== NOT EXECUTED 43dea: 8083 orl %d3,%d0 <== NOT EXECUTED 43dec: 46c0 movew %d0,%sr <== NOT EXECUTED tty->flow_ctrl &= ~FL_OSTOP; 43dee: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43df2: 72df moveq #-33,%d1 <== NOT EXECUTED 43df4: c081 andl %d1,%d0 <== NOT EXECUTED 43df6: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* check for chars in output buffer (or rob_state?) */ if (tty->rawOutBufState != rob_idle) { 43dfa: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 43dfe: 671e beqs 43e1e <== NOT EXECUTED /* if chars available, call write function... */ (*tty->device.write)(tty->minor, 43e00: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 43e04: 4878 0001 pea 1 <== NOT EXECUTED 43e08: d0aa 007c addl %a2@(124),%d0 <== NOT EXECUTED 43e0c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43e0e: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43e12: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 43e16: 4e90 jsr %a0@ <== NOT EXECUTED 43e18: dffc 0000 000c addal #12,%sp <== NOT EXECUTED &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1); } /* reenable interrupts */ rtems_interrupt_enable(level); 43e1e: 46c3 movew %d3,%sr <== NOT EXECUTED } } /* check for incoming XON/XOFF flow control switched off */ if (( tty->flow_ctrl & FL_MDXOF) && 43e20: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e24: 0800 000a btst #10,%d0 <== NOT EXECUTED 43e28: 6724 beqs 43e4e <== NOT EXECUTED 43e2a: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 43e2e: 0280 0000 1000 andil #4096,%d0 <== NOT EXECUTED 43e34: 6618 bnes 43e4e <== NOT EXECUTED !(tty->termios.c_iflag & IXOFF)) { /* clear related flags in flow_ctrl */ tty->flow_ctrl &= ~(FL_MDXOF); 43e36: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e3a: 0880 000a bclr #10,%d0 <== NOT EXECUTED 43e3e: 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); 43e42: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e46: 76fd moveq #-3,%d3 <== NOT EXECUTED 43e48: c083 andl %d3,%d0 <== NOT EXECUTED 43e4a: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED } /* check for incoming RTS/CTS flow control switched off */ if (( tty->flow_ctrl & FL_MDRTS) && 43e4e: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e52: 0800 0008 btst #8,%d0 <== NOT EXECUTED 43e56: 6736 beqs 43e8e <== NOT EXECUTED 43e58: 4aaa 0038 tstl %a2@(56) <== NOT EXECUTED 43e5c: 6d30 blts 43e8e <== NOT EXECUTED !(tty->termios.c_cflag & CRTSCTS)) { /* clear related flags in flow_ctrl */ tty->flow_ctrl &= ~(FL_MDRTS); 43e5e: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e62: 0880 0008 bclr #8,%d0 <== NOT EXECUTED 43e66: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* restart remote Tx, if it was stopped */ if ((tty->flow_ctrl & FL_IRTSOFF) && 43e6a: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e6e: 44c0 movew %d0,%ccr <== NOT EXECUTED 43e70: 6610 bnes 43e82 <== NOT EXECUTED 43e72: 206a 00b0 moveal %a2@(176),%a0 <== NOT EXECUTED 43e76: 4a88 tstl %a0 <== NOT EXECUTED 43e78: 6708 beqs 43e82 <== NOT EXECUTED (tty->device.startRemoteTx != NULL)) { tty->device.startRemoteTx(tty->minor); 43e7a: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43e7e: 4e90 jsr %a0@ <== NOT EXECUTED 43e80: 588f addql #4,%sp <== NOT EXECUTED } tty->flow_ctrl &= ~(FL_IRTSOFF); 43e82: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e86: 72fb moveq #-5,%d1 <== NOT EXECUTED 43e88: c081 andl %d1,%d0 <== NOT EXECUTED 43e8a: 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) { 43e8e: 4aaa 0038 tstl %a2@(56) <== NOT EXECUTED 43e92: 6c0c bges 43ea0 <== NOT EXECUTED tty->flow_ctrl |= FL_MDRTS; 43e94: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43e98: 08c0 0008 bset #8,%d0 <== NOT EXECUTED 43e9c: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED } /* check for incoming XON/XOF flow control switched on */ if (tty->termios.c_iflag & IXOFF) { 43ea0: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 43ea4: 0280 0000 1000 andil #4096,%d0 <== NOT EXECUTED 43eaa: 670c beqs 43eb8 <== NOT EXECUTED tty->flow_ctrl |= FL_MDXOF; 43eac: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43eb0: 08c0 000a bset #10,%d0 <== NOT EXECUTED 43eb4: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED } /* check for outgoing XON/XOF flow control switched on */ if (tty->termios.c_iflag & IXON) { 43eb8: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 43ebc: 0280 0000 0400 andil #1024,%d0 <== NOT EXECUTED 43ec2: 670c beqs 43ed0 <== NOT EXECUTED tty->flow_ctrl |= FL_MDXON; 43ec4: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43ec8: 08c0 0009 bset #9,%d0 <== NOT EXECUTED 43ecc: 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) { 43ed0: 7002 moveq #2,%d0 <== NOT EXECUTED 43ed2: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 43ed6: 6648 bnes 43f20 <== 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); 43ed8: 486e fffc pea %fp@(-4) <== NOT EXECUTED tty->vtimeTicks = tty->termios.c_cc[VTIME] * ticksPerSecond / 10; 43edc: 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); 43ede: 4878 0003 pea 3 <== NOT EXECUTED 43ee2: 4eb9 0004 4640 jsr 44640 <== NOT EXECUTED tty->vtimeTicks = tty->termios.c_cc[VTIME] * ticksPerSecond / 10; 43ee8: 4280 clrl %d0 <== NOT EXECUTED 43eea: 102a 0046 moveb %a2@(70),%d0 <== NOT EXECUTED 43eee: 41ee fffc lea %fp@(-4),%a0 <== NOT EXECUTED 43ef2: 4c10 0800 mulsl %a0@,%d0 <== NOT EXECUTED if (tty->termios.c_cc[VTIME]) { 43ef6: 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; 43ef8: 4c43 0000 remul %d3,%d0,%d0 <== NOT EXECUTED 43efc: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED if (tty->termios.c_cc[VTIME]) { 43f00: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 43f04: 6714 beqs 43f1a <== NOT EXECUTED tty->rawInBufSemaphoreOptions = RTEMS_WAIT; 43f06: 42aa 006c clrl %a2@(108) <== NOT EXECUTED tty->rawInBufSemaphoreTimeout = tty->vtimeTicks; 43f0a: 2540 0070 movel %d0,%a2@(112) <== NOT EXECUTED if (tty->termios.c_cc[VMIN]) 43f0e: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 43f12: 6614 bnes 43f28 <== NOT EXECUTED tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT; else tty->rawInBufSemaphoreFirstTimeout = tty->vtimeTicks; 43f14: 2540 0074 movel %d0,%a2@(116) <== NOT EXECUTED 43f18: 601a bras 43f34 <== NOT EXECUTED } else { if (tty->termios.c_cc[VMIN]) { 43f1a: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 43f1e: 670e beqs 43f2e <== NOT EXECUTED tty->rawInBufSemaphoreOptions = RTEMS_WAIT; 43f20: 42aa 006c clrl %a2@(108) <== NOT EXECUTED tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT; 43f24: 42aa 0070 clrl %a2@(112) <== NOT EXECUTED tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT; 43f28: 42aa 0074 clrl %a2@(116) <== NOT EXECUTED 43f2c: 6006 bras 43f34 <== NOT EXECUTED } else { tty->rawInBufSemaphoreOptions = RTEMS_NO_WAIT; 43f2e: 7001 moveq #1,%d0 <== NOT EXECUTED 43f30: 2540 006c movel %d0,%a2@(108) <== NOT EXECUTED } } } if (tty->device.setAttributes) 43f34: 206a 00a8 moveal %a2@(168),%a0 <== NOT EXECUTED 43f38: 4a88 tstl %a0 <== NOT EXECUTED 43f3a: 6700 00aa beqw 43fe6 <== NOT EXECUTED (*tty->device.setAttributes)(tty->minor, &tty->termios); 43f3e: 486a 0030 pea %a2@(48) <== NOT EXECUTED 43f42: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43f46: 4e90 jsr %a0@ <== NOT EXECUTED 43f48: 508f addql #8,%sp <== NOT EXECUTED 43f4a: 6000 009a braw 43fe6 <== NOT EXECUTED break; case RTEMS_IO_TCDRAIN: drainOutput (tty); 43f4e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43f50: 4eba fa0e jsr %pc@(43960 ) <== NOT EXECUTED 43f54: 6060 bras 43fb6 <== NOT EXECUTED break; case RTEMS_IO_SNDWAKEUP: tty->tty_snd = *wakeup; 43f56: 2013 movel %a3@,%d0 <== NOT EXECUTED 43f58: 256b 0004 00d8 movel %a3@(4),%a2@(216) <== NOT EXECUTED 43f5e: 2540 00d4 movel %d0,%a2@(212) <== NOT EXECUTED 43f62: 6000 0082 braw 43fe6 <== NOT EXECUTED break; case RTEMS_IO_RCVWAKEUP: tty->tty_rcv = *wakeup; 43f66: 2013 movel %a3@,%d0 <== NOT EXECUTED 43f68: 256b 0004 00e0 movel %a3@(4),%a2@(224) <== NOT EXECUTED 43f6e: 2540 00dc movel %d0,%a2@(220) <== NOT EXECUTED 43f72: 6072 bras 43fe6 <== NOT EXECUTED #if 1 /* FIXME */ case TIOCSETD: /* * close old line discipline */ if (rtems_termios_linesw[tty->t_line].l_close != NULL) { 43f74: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 43f78: 41f9 0005 7528 lea 57528 ,%a0 <== NOT EXECUTED 43f7e: e788 lsll #3,%d0 <== NOT EXECUTED 43f80: 2070 0c04 moveal %a0@(00000004,%d0:l:4),%a0 <== NOT EXECUTED 43f84: 4a88 tstl %a0 <== NOT EXECUTED 43f86: 6708 beqs 43f90 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_close(tty); 43f88: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43f8a: 4e90 jsr %a0@ <== NOT EXECUTED 43f8c: 588f addql #4,%sp <== NOT EXECUTED 43f8e: 2400 movel %d0,%d2 <== NOT EXECUTED } tty->t_line=*(int*)(args->buffer); 43f90: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 43f94: 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) { 43f98: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 43f9c: 41f9 0005 7528 lea 57528 ,%a0 <== NOT EXECUTED 43fa2: eb88 lsll #5,%d0 <== NOT EXECUTED 43fa4: 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 */ 43fa8: 42aa 00d0 clrl %a2@(208) <== NOT EXECUTED /* * open new line discipline */ if (rtems_termios_linesw[tty->t_line].l_open != NULL) { 43fac: 4a88 tstl %a0 <== NOT EXECUTED 43fae: 6736 beqs 43fe6 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_open(tty); 43fb0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43fb2: 4e90 jsr %a0@ <== NOT EXECUTED 43fb4: 2400 movel %d0,%d2 <== NOT EXECUTED 43fb6: 588f addql #4,%sp <== NOT EXECUTED 43fb8: 602c bras 43fe6 <== NOT EXECUTED } break; case TIOCGETD: *(int*)(args->buffer)=tty->t_line; 43fba: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 43fbe: 20aa 00cc movel %a2@(204),%a0@ <== NOT EXECUTED 43fc2: 6022 bras 43fe6 <== NOT EXECUTED break; #endif case FIONREAD: { int rawnc = tty->rawInBuf.Tail - tty->rawInBuf.Head; 43fc4: 222a 0060 movel %a2@(96),%d1 <== NOT EXECUTED 43fc8: 202a 005c movel %a2@(92),%d0 <== NOT EXECUTED 43fcc: 9280 subl %d0,%d1 <== NOT EXECUTED if ( rawnc < 0 ) 43fce: 6a06 bpls 43fd6 <== NOT EXECUTED rawnc += tty->rawInBuf.Size; 43fd0: 202a 0064 movel %a2@(100),%d0 <== NOT EXECUTED 43fd4: d280 addl %d0,%d1 <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; 43fd6: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 43fda: 90aa 0024 subl %a2@(36),%d0 <== NOT EXECUTED 43fde: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 43fe2: d081 addl %d1,%d0 <== NOT EXECUTED 43fe4: 2080 movel %d0,%a0@ <== NOT EXECUTED } break; } rtems_semaphore_release (tty->osem); 43fe6: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 43fea: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED args->ioctl_return = sc; 43ff0: 588f addql #4,%sp <== NOT EXECUTED return sc; } 43ff2: 2002 movel %d2,%d0 <== NOT EXECUTED *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); args->ioctl_return = sc; 43ff4: 2942 000c movel %d2,%a4@(12) <== NOT EXECUTED return sc; } 43ff8: 4cee 1c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a4 <== NOT EXECUTED 43ffe: 4e5e unlk %fp <== NOT EXECUTED 44000: 4e75 rts 00044156 : rtems_device_major_number major, rtems_device_minor_number minor, void *arg, const rtems_termios_callbacks *callbacks ) { 44156: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 4415a: 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, 4415e: 42a7 clrl %sp@- <== NOT EXECUTED rtems_device_major_number major, rtems_device_minor_number minor, void *arg, const rtems_termios_callbacks *callbacks ) { 44160: 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, 44164: 42a7 clrl %sp@- <== NOT EXECUTED rtems_device_major_number major, rtems_device_minor_number minor, void *arg, const rtems_termios_callbacks *callbacks ) { 44166: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4416a: 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, 4416e: 2f39 0005 7da4 movel 57da4 ,%sp@- <== NOT EXECUTED 44174: 4eb9 0004 4e4c jsr 44e4c <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 4417a: 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, 44180: 2400 movel %d0,%d2 <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 44182: 6600 03b0 bnew 44534 <== NOT EXECUTED return sc; for (tty = rtems_termios_ttyHead ; tty != NULL ; tty = tty->forw) { 44186: 2679 0005 7dac moveal 57dac ,%a3 <== NOT EXECUTED 4418c: 6010 bras 4419e <== NOT EXECUTED if ((tty->major == major) && (tty->minor == minor)) 4418e: b8ab 000c cmpl %a3@(12),%d4 <== NOT EXECUTED 44192: 6608 bnes 4419c <== NOT EXECUTED 44194: b6ab 0010 cmpl %a3@(16),%d3 <== NOT EXECUTED 44198: 6700 031e beqw 444b8 <== 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) { 4419c: 2653 moveal %a3@,%a3 <== NOT EXECUTED 4419e: 4a8b tstl %a3 <== NOT EXECUTED 441a0: 66ec bnes 4418e <== NOT EXECUTED 441a2: 6000 039c braw 44540 <== NOT EXECUTED /* * Create a new device */ tty = calloc (1, sizeof (struct rtems_termios_tty)); if (tty == NULL) { rtems_semaphore_release (rtems_termios_ttyMutex); 441a6: 2f39 0005 7da4 movel 57da4 ,%sp@- <== NOT EXECUTED 441ac: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 441b2: 588f addql #4,%sp <== NOT EXECUTED 441b4: 6036 bras 441ec <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate raw input buffer */ tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE; 441b6: 41f9 0005 6758 lea 56758 ,%a0 <== NOT EXECUTED 441bc: 2750 0064 movel %a0@,%a3@(100) <== NOT EXECUTED tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size); 441c0: 202b 0064 movel %a3@(100),%d0 <== NOT EXECUTED 441c4: 49f9 0004 93a0 lea 493a0 ,%a4 <== NOT EXECUTED 441ca: 2f00 movel %d0,%sp@- <== NOT EXECUTED 441cc: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->rawInBuf.theBuf == NULL) { 441ce: 588f addql #4,%sp <== NOT EXECUTED } /* * allocate raw input buffer */ tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE; tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size); 441d0: 2740 0058 movel %d0,%a3@(88) <== NOT EXECUTED if (tty->rawInBuf.theBuf == NULL) { 441d4: 661c bnes 441f2 <== NOT EXECUTED free(tty); 441d6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 441d8: 4eb9 0004 8e8c jsr 48e8c <== NOT EXECUTED rtems_semaphore_release (rtems_termios_ttyMutex); 441de: 2f39 0005 7da4 movel 57da4 ,%sp@- <== NOT EXECUTED 441e4: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 441ea: 508f addql #8,%sp <== NOT EXECUTED 441ec: 741a moveq #26,%d2 <== NOT EXECUTED 441ee: 6000 0344 braw 44534 <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate raw output buffer */ tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE; 441f2: 41f9 0005 675c lea 5675c ,%a0 <== NOT EXECUTED 441f8: 2750 0088 movel %a0@,%a3@(136) <== NOT EXECUTED tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size); 441fc: 202b 0088 movel %a3@(136),%d0 <== NOT EXECUTED 44200: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44202: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->rawOutBuf.theBuf == NULL) { 44204: 588f addql #4,%sp <== NOT EXECUTED } /* * allocate raw output buffer */ tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE; tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size); 44206: 2740 007c movel %d0,%a3@(124) <== NOT EXECUTED if (tty->rawOutBuf.theBuf == NULL) { 4420a: 6628 bnes 44234 <== NOT EXECUTED free((void *)(tty->rawInBuf.theBuf)); 4420c: 2f2b 0058 movel %a3@(88),%sp@- <== NOT EXECUTED 44210: 45f9 0004 8e8c lea 48e8c ,%a2 <== NOT EXECUTED 44216: 4e92 jsr %a2@ <== NOT EXECUTED free(tty); 44218: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4421a: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_release (rtems_termios_ttyMutex); 4421c: 741a moveq #26,%d2 <== NOT EXECUTED 4421e: 2f39 0005 7da4 movel 57da4 ,%sp@- <== NOT EXECUTED 44224: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 4422a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44230: 6000 0302 braw 44534 <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate cooked buffer */ tty->cbuf = malloc (CBUFSIZE); 44234: 2f39 0005 6754 movel 56754 ,%sp@- <== NOT EXECUTED 4423a: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->cbuf == NULL) { 4423c: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate cooked buffer */ tty->cbuf = malloc (CBUFSIZE); 4423e: 2740 001c movel %d0,%a3@(28) <== NOT EXECUTED if (tty->cbuf == NULL) { 44242: 662e bnes 44272 <== NOT EXECUTED free((void *)(tty->rawOutBuf.theBuf)); 44244: 2f2b 007c movel %a3@(124),%sp@- <== NOT EXECUTED 44248: 45f9 0004 8e8c lea 48e8c ,%a2 <== NOT EXECUTED 4424e: 4e92 jsr %a2@ <== NOT EXECUTED free((void *)(tty->rawInBuf.theBuf)); 44250: 2f2b 0058 movel %a3@(88),%sp@- <== NOT EXECUTED 44254: 4e92 jsr %a2@ <== NOT EXECUTED free(tty); 44256: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44258: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_release (rtems_termios_ttyMutex); 4425a: 741a moveq #26,%d2 <== NOT EXECUTED 4425c: 2f39 0005 7da4 movel 57da4 ,%sp@- <== NOT EXECUTED 44262: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 44268: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4426e: 6000 02c4 braw 44534 <== NOT EXECUTED tty->tty_rcvwakeup = 0; /* * link tty */ tty->forw = rtems_termios_ttyHead; 44272: 2079 0005 7dac moveal 57dac ,%a0 <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * Initialize wakeup callbacks */ tty->tty_snd.sw_pfn = NULL; 44278: 42ab 00d4 clrl %a3@(212) <== NOT EXECUTED tty->tty_snd.sw_arg = NULL; 4427c: 42ab 00d8 clrl %a3@(216) <== NOT EXECUTED tty->tty_rcv.sw_pfn = NULL; 44280: 42ab 00dc clrl %a3@(220) <== NOT EXECUTED tty->tty_rcv.sw_arg = NULL; 44284: 42ab 00e0 clrl %a3@(224) <== NOT EXECUTED tty->tty_rcvwakeup = 0; 44288: 42ab 00e4 clrl %a3@(228) <== NOT EXECUTED /* * link tty */ tty->forw = rtems_termios_ttyHead; 4428c: 2688 movel %a0,%a3@ <== NOT EXECUTED tty->back = NULL; 4428e: 42ab 0004 clrl %a3@(4) <== NOT EXECUTED if (rtems_termios_ttyHead != NULL) 44292: 4a88 tstl %a0 <== NOT EXECUTED 44294: 6704 beqs 4429a <== NOT EXECUTED rtems_termios_ttyHead->back = tty; 44296: 214b 0004 movel %a3,%a0@(4) <== NOT EXECUTED rtems_termios_ttyHead = tty; 4429a: 23ca 0005 7dac movel %a2,57dac <== NOT EXECUTED if (rtems_termios_ttyTail == NULL) 442a0: 4ab9 0005 7da8 tstl 57da8 <== NOT EXECUTED 442a6: 6606 bnes 442ae <== NOT EXECUTED rtems_termios_ttyTail = tty; 442a8: 23ca 0005 7da8 movel %a2,57da8 <== NOT EXECUTED tty->major = major; /* * Set up mutex semaphores */ sc = rtems_semaphore_create ( 442ae: 1039 0005 6760 moveb 56760 ,%d0 <== NOT EXECUTED rtems_termios_ttyHead->back = tty; rtems_termios_ttyHead = tty; if (rtems_termios_ttyTail == NULL) rtems_termios_ttyTail = tty; tty->minor = minor; 442b4: 2543 0010 movel %d3,%a2@(16) <== NOT EXECUTED tty->major = major; /* * Set up mutex semaphores */ sc = rtems_semaphore_create ( 442b8: 49c0 extbl %d0 <== NOT EXECUTED 442ba: 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; 442c0: 2544 000c movel %d4,%a2@(12) <== NOT EXECUTED /* * Set up mutex semaphores */ sc = rtems_semaphore_create ( 442c4: 49f9 0004 4c10 lea 44c10 ,%a4 <== NOT EXECUTED 442ca: 486a 0014 pea %a2@(20) <== NOT EXECUTED 442ce: 42a7 clrl %sp@- <== NOT EXECUTED 442d0: 4878 0054 pea 54 <== NOT EXECUTED 442d4: 4878 0001 pea 1 <== NOT EXECUTED 442d8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 442da: 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) 442dc: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 442e2: 4a80 tstl %d0 <== NOT EXECUTED 442e4: 6600 0238 bnew 4451e <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_semaphore_create ( 442e8: 486a 0018 pea %a2@(24) <== NOT EXECUTED 442ec: 1039 0005 6760 moveb 56760 ,%d0 <== NOT EXECUTED 442f2: 49c0 extbl %d0 <== NOT EXECUTED 442f4: 42a7 clrl %sp@- <== NOT EXECUTED 442f6: 0080 5452 6f00 oril #1414688512,%d0 <== NOT EXECUTED 442fc: 4878 0054 pea 54 <== NOT EXECUTED 44300: 4878 0001 pea 1 <== NOT EXECUTED 44304: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44306: 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) 44308: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4430e: 4a80 tstl %d0 <== NOT EXECUTED 44310: 6600 020c bnew 4451e <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_semaphore_create ( 44314: 486a 008c pea %a2@(140) <== NOT EXECUTED 44318: 1039 0005 6760 moveb 56760 ,%d0 <== NOT EXECUTED 4431e: 49c0 extbl %d0 <== NOT EXECUTED 44320: 42a7 clrl %sp@- <== NOT EXECUTED 44322: 0080 5452 7800 oril #1414690816,%d0 <== NOT EXECUTED 44328: 4878 0020 pea 20 <== NOT EXECUTED 4432c: 42a7 clrl %sp@- <== NOT EXECUTED 4432e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44330: 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) 44332: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 44338: 4a80 tstl %d0 <== NOT EXECUTED 4433a: 6600 01e2 bnew 4451e <== NOT EXECUTED rtems_fatal_error_occurred (sc); tty->rawOutBufState = rob_idle; 4433e: 42aa 0094 clrl %a2@(148) <== NOT EXECUTED /* * Set callbacks */ tty->device = *callbacks; 44342: 4878 0020 pea 20 <== NOT EXECUTED 44346: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4434a: 486a 0098 pea %a2@(152) <== NOT EXECUTED 4434e: 4eb9 0004 bf4c jsr 4bf4c <== NOT EXECUTED /* * Create I/O tasks */ if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { 44354: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4435a: 7002 moveq #2,%d0 <== NOT EXECUTED 4435c: b0aa 00b4 cmpl %a2@(180),%d0 <== NOT EXECUTED 44360: 6666 bnes 443c8 <== NOT EXECUTED sc = rtems_task_create ( 44362: 486a 00c8 pea %a2@(200) <== NOT EXECUTED 44366: 1039 0005 6760 moveb 56760 ,%d0 <== NOT EXECUTED 4436c: 49c0 extbl %d0 <== NOT EXECUTED 4436e: 42a7 clrl %sp@- <== NOT EXECUTED 44370: 0080 5478 5400 oril #1417171968,%d0 <== NOT EXECUTED 44376: 4878 0500 pea 500 <== NOT EXECUTED 4437a: 49f9 0004 500c lea 4500c ,%a4 <== NOT EXECUTED 44380: 4878 0400 pea 400 <== NOT EXECUTED 44384: 4878 000a pea a <== NOT EXECUTED 44388: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4438a: 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) 4438c: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 44392: 4a80 tstl %d0 <== NOT EXECUTED 44394: 6600 0188 bnew 4451e <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_task_create ( 44398: 486a 00c4 pea %a2@(196) <== NOT EXECUTED 4439c: 1039 0005 6760 moveb 56760 ,%d0 <== NOT EXECUTED 443a2: 49c0 extbl %d0 <== NOT EXECUTED 443a4: 42a7 clrl %sp@- <== NOT EXECUTED 443a6: 0080 5278 5400 oril #1383617536,%d0 <== NOT EXECUTED 443ac: 4878 0500 pea 500 <== NOT EXECUTED 443b0: 4878 0400 pea 400 <== NOT EXECUTED 443b4: 4878 0009 pea 9 <== NOT EXECUTED 443b8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 443ba: 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) 443bc: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 443c2: 4a80 tstl %d0 <== NOT EXECUTED 443c4: 6600 0158 bnew 4451e <== NOT EXECUTED rtems_fatal_error_occurred (sc); } if ((tty->device.pollRead == NULL) || 443c8: 4aaa 00a0 tstl %a2@(160) <== NOT EXECUTED 443cc: 6708 beqs 443d6 <== NOT EXECUTED 443ce: 7202 moveq #2,%d1 <== NOT EXECUTED 443d0: b2aa 00b4 cmpl %a2@(180),%d1 <== NOT EXECUTED 443d4: 662e bnes 44404 <== NOT EXECUTED (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN)){ sc = rtems_semaphore_create ( 443d6: 486a 0068 pea %a2@(104) <== NOT EXECUTED 443da: 1039 0005 6760 moveb 56760 ,%d0 <== NOT EXECUTED 443e0: 49c0 extbl %d0 <== NOT EXECUTED 443e2: 42a7 clrl %sp@- <== NOT EXECUTED 443e4: 0080 5452 7200 oril #1414689280,%d0 <== NOT EXECUTED 443ea: 4878 0024 pea 24 <== NOT EXECUTED 443ee: 42a7 clrl %sp@- <== NOT EXECUTED 443f0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 443f2: 4eb9 0004 4c10 jsr 44c10 <== 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) 443f8: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 443fe: 4a80 tstl %d0 <== NOT EXECUTED 44400: 6600 011c bnew 4451e <== 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; 44404: 42aa 00b8 clrl %a2@(184) <== NOT EXECUTED /* * set low/highwater mark for XON/XOFF support */ tty->lowwater = tty->rawInBuf.Size * 1/2; 44408: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED tty->highwater = tty->rawInBuf.Size * 3/4; 4440c: 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'; 44410: 701c moveq #28,%d0 <== NOT EXECUTED 44412: 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; 44416: 41f0 8a00 lea %a0@(00000000,%a0:l:2),%a0 <== NOT EXECUTED 4441a: 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'; 4441c: 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; 4441e: 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'; 44420: 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; 44424: 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'; 44428: 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; 4442a: 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'; 4442c: 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'; 4442e: 1545 0043 moveb %d5,%a2@(67) <== NOT EXECUTED tty->termios.c_cc[VKILL] = '\025'; 44432: 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; 44436: 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'; 4443a: 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'; 4443c: 7a04 moveq #4,%d5 <== NOT EXECUTED tty->termios.c_cc[VEOL] = '\000'; tty->termios.c_cc[VEOL2] = '\000'; tty->termios.c_cc[VSTART] = '\021'; 4443e: 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'; 44440: 1545 0045 moveb %d5,%a2@(69) <== NOT EXECUTED tty->termios.c_cc[VEOL] = '\000'; 44444: 1540 004c moveb %d0,%a2@(76) <== NOT EXECUTED tty->termios.c_cc[VEOL2] = '\000'; 44448: 1540 0051 moveb %d0,%a2@(81) <== NOT EXECUTED tty->termios.c_cc[VSTART] = '\021'; 4444c: 1541 0049 moveb %d1,%a2@(73) <== NOT EXECUTED tty->termios.c_cc[VSTOP] = '\023'; 44450: 7a13 moveq #19,%d5 <== NOT EXECUTED tty->termios.c_cc[VSUSP] = '\032'; 44452: 701a moveq #26,%d0 <== NOT EXECUTED tty->termios.c_cc[VREPRINT] = '\022'; 44454: 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'; 44456: 1545 004a moveb %d5,%a2@(74) <== NOT EXECUTED tty->termios.c_cc[VSUSP] = '\032'; 4445a: 1540 004b moveb %d0,%a2@(75) <== NOT EXECUTED tty->termios.c_cc[VREPRINT] = '\022'; 4445e: 1541 004d moveb %d1,%a2@(77) <== NOT EXECUTED tty->termios.c_cc[VDISCARD] = '\017'; 44462: 7a0f moveq #15,%d5 <== NOT EXECUTED tty->termios.c_cc[VWERASE] = '\027'; 44464: 7017 moveq #23,%d0 <== NOT EXECUTED tty->termios.c_cc[VLNEXT] = '\026'; 44466: 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'; 44468: 1545 004e moveb %d5,%a2@(78) <== NOT EXECUTED tty->termios.c_cc[VWERASE] = '\027'; tty->termios.c_cc[VLNEXT] = '\026'; 4446c: 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'; 44470: 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') 44474: 1039 0005 6760 moveb 56760 ,%d0 <== NOT EXECUTED } /* * Set default parameters */ tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; 4447a: 2a3c 0000 2502 movel #9474,%d5 <== NOT EXECUTED tty->termios.c_oflag = OPOST | ONLCR | XTABS; 44480: 307c 1805 moveaw #6149,%a0 <== NOT EXECUTED } /* * Set default parameters */ tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; 44484: 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') 44488: 49c0 extbl %d0 <== NOT EXECUTED 4448a: 2200 movel %d0,%d1 <== NOT EXECUTED /* * Set default parameters */ tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; tty->termios.c_oflag = OPOST | ONLCR | XTABS; 4448c: 2548 0034 movel %a0,%a2@(52) <== NOT EXECUTED tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL; 44490: 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') 44494: 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; 44496: 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; 4449c: 2545 0038 movel %d5,%a2@(56) <== NOT EXECUTED tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL; 444a0: 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') 444a4: 13c1 0005 6760 moveb %d1,56760 <== NOT EXECUTED 444aa: 727a moveq #122,%d1 <== NOT EXECUTED 444ac: b280 cmpl %d0,%d1 <== NOT EXECUTED 444ae: 6608 bnes 444b8 <== NOT EXECUTED c = 'a'; 444b0: 7a61 moveq #97,%d5 <== NOT EXECUTED 444b2: 13c5 0005 6760 moveb %d5,56760 <== NOT EXECUTED } args->iop->data1 = tty; if (!tty->refcount++) { 444b8: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED */ if (c++ == 'z') c = 'a'; } args->iop->data1 = tty; 444bc: 2055 moveal %a5@,%a0 <== NOT EXECUTED if (!tty->refcount++) { 444be: 2200 movel %d0,%d1 <== NOT EXECUTED 444c0: 5281 addql #1,%d1 <== NOT EXECUTED 444c2: 2741 0008 movel %d1,%a3@(8) <== NOT EXECUTED */ if (c++ == 'z') c = 'a'; } args->iop->data1 = tty; 444c6: 214b 0028 movel %a3,%a0@(40) <== NOT EXECUTED if (!tty->refcount++) { 444ca: 4a80 tstl %d0 <== NOT EXECUTED 444cc: 6658 bnes 44526 <== NOT EXECUTED if (tty->device.firstOpen) 444ce: 206b 0098 moveal %a3@(152),%a0 <== NOT EXECUTED 444d2: 4a88 tstl %a0 <== NOT EXECUTED 444d4: 670e beqs 444e4 <== NOT EXECUTED (*tty->device.firstOpen)(major, minor, arg); 444d6: 2f0d movel %a5,%sp@- <== NOT EXECUTED 444d8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 444da: 2f04 movel %d4,%sp@- <== NOT EXECUTED 444dc: 4e90 jsr %a0@ <== NOT EXECUTED 444de: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * start I/O tasks, if needed */ if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { 444e4: 7a02 moveq #2,%d5 <== NOT EXECUTED 444e6: baab 00b4 cmpl %a3@(180),%d5 <== NOT EXECUTED 444ea: 663a bnes 44526 <== NOT EXECUTED sc = rtems_task_start(tty->rxTaskId, 444ec: 2f0b movel %a3,%sp@- <== NOT EXECUTED 444ee: 45f9 0004 52a4 lea 452a4 ,%a2 <== NOT EXECUTED 444f4: 487a 00d2 pea %pc@(445c8 ) <== NOT EXECUTED 444f8: 2f2b 00c4 movel %a3@(196),%sp@- <== NOT EXECUTED 444fc: 4e92 jsr %a2@ <== NOT EXECUTED rtems_termios_rxdaemon, (rtems_task_argument)tty); if (sc != RTEMS_SUCCESSFUL) 444fe: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44504: 4a80 tstl %d0 <== NOT EXECUTED 44506: 6616 bnes 4451e <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_task_start(tty->txTaskId, 44508: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4450a: 487a 0052 pea %pc@(4455e ) <== NOT EXECUTED 4450e: 2f2b 00c8 movel %a3@(200),%sp@- <== NOT EXECUTED 44512: 4e92 jsr %a2@ <== NOT EXECUTED rtems_termios_txdaemon, (rtems_task_argument)tty); if (sc != RTEMS_SUCCESSFUL) 44514: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4451a: 4a80 tstl %d0 <== NOT EXECUTED 4451c: 6708 beqs 44526 <== NOT EXECUTED rtems_fatal_error_occurred (sc); 4451e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44520: 4eb9 0004 5580 jsr 45580 <== NOT EXECUTED } } rtems_semaphore_release (rtems_termios_ttyMutex); 44526: 2f39 0005 7da4 movel 57da4 ,%sp@- <== NOT EXECUTED 4452c: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 44532: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 44534: 2002 movel %d2,%d0 <== NOT EXECUTED 44536: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 4453c: 4e5e unlk %fp <== NOT EXECUTED 4453e: 4e75 rts <== NOT EXECUTED static char c = 'a'; /* * Create a new device */ tty = calloc (1, sizeof (struct rtems_termios_tty)); 44540: 4878 00e8 pea e8 <== NOT EXECUTED 44544: 4878 0001 pea 1 <== NOT EXECUTED 44548: 4eb9 0004 8d9c jsr 48d9c <== NOT EXECUTED if (tty == NULL) { 4454e: 508f addql #8,%sp <== NOT EXECUTED static char c = 'a'; /* * Create a new device */ tty = calloc (1, sizeof (struct rtems_termios_tty)); 44550: 2640 moveal %d0,%a3 <== NOT EXECUTED 44552: 2440 moveal %d0,%a2 <== NOT EXECUTED if (tty == NULL) { 44554: 4a80 tstl %d0 <== NOT EXECUTED 44556: 6600 fc5e bnew 441b6 <== NOT EXECUTED 4455a: 6000 fc4a braw 441a6 <== NOT EXECUTED 0004326e : * Send characters to device-specific code */ void rtems_termios_puts ( const void *_buf, int len, struct rtems_termios_tty *tty) { 4326e: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 43272: 48d7 1c7c moveml %d2-%d6/%a2-%a4,%sp@ <== NOT EXECUTED 43276: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4327a: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4327e: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED const unsigned char *buf = _buf; 43282: 2640 moveal %d0,%a3 <== NOT EXECUTED unsigned int newHead; rtems_interrupt_level level; rtems_status_code sc; if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) { 43284: 4aaa 00b4 tstl %a2@(180) <== NOT EXECUTED 43288: 661c bnes 432a6 <== NOT EXECUTED (*tty->device.write)(tty->minor, (void *)buf, len); 4328a: 226a 00a4 moveal %a2@(164),%a1 <== NOT EXECUTED 4328e: 2d6a 0010 0008 movel %a2@(16),%fp@(8) <== NOT EXECUTED 43294: 2d44 0010 movel %d4,%fp@(16) <== NOT EXECUTED tty->rawOutBufState = rob_busy; } rtems_interrupt_enable (level); len--; } } 43298: 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); 4329e: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED tty->rawOutBufState = rob_busy; } rtems_interrupt_enable (level); len--; } } 432a2: 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); 432a4: 4ed1 jmp %a1@ <== NOT EXECUTED return; } newHead = tty->rawOutBuf.Head; 432a6: 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); 432aa: 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, 432b0: 49f9 0004 4e4c lea 44e4c ,%a4 <== NOT EXECUTED 432b6: 6000 00a6 braw 4335e <== NOT EXECUTED * len -= ncopy * * To minimize latency, the memcpy should be done * with interrupts enabled. */ newHead = (newHead + 1) % tty->rawOutBuf.Size; 432ba: 222a 0088 movel %a2@(136),%d1 <== NOT EXECUTED 432be: 2005 movel %d5,%d0 <== NOT EXECUTED 432c0: 5280 addql #1,%d0 <== NOT EXECUTED 432c2: 4c41 0002 remul %d1,%d2,%d0 <== NOT EXECUTED 432c6: 2a02 movel %d2,%d5 <== NOT EXECUTED rtems_interrupt_disable (level); 432c8: 2006 movel %d6,%d0 <== NOT EXECUTED 432ca: 40c3 movew %sr,%d3 <== NOT EXECUTED 432cc: 8083 orl %d3,%d0 <== NOT EXECUTED 432ce: 46c0 movew %d0,%sr <== NOT EXECUTED 432d0: 602c bras 432fe <== NOT EXECUTED while (newHead == tty->rawOutBuf.Tail) { tty->rawOutBufState = rob_wait; 432d2: 7002 moveq #2,%d0 <== NOT EXECUTED 432d4: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED rtems_interrupt_enable (level); 432d8: 46c3 movew %d3,%sr <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore, 432da: 42a7 clrl %sp@- <== NOT EXECUTED 432dc: 42a7 clrl %sp@- <== NOT EXECUTED 432de: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 432e2: 4e94 jsr %a4@ <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 432e4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 432ea: 4a80 tstl %d0 <== NOT EXECUTED 432ec: 6708 beqs 432f6 <== NOT EXECUTED rtems_fatal_error_occurred (sc); 432ee: 2f00 movel %d0,%sp@- <== NOT EXECUTED 432f0: 4eb9 0004 5580 jsr 45580 <== NOT EXECUTED rtems_interrupt_disable (level); 432f6: 2006 movel %d6,%d0 <== NOT EXECUTED 432f8: 40c3 movew %sr,%d3 <== NOT EXECUTED 432fa: 8083 orl %d3,%d0 <== NOT EXECUTED 432fc: 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) { 432fe: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 43302: b082 cmpl %d2,%d0 <== NOT EXECUTED 43304: 67cc beqs 432d2 <== 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++; 43306: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 4330a: 206a 007c moveal %a2@(124),%a0 <== NOT EXECUTED 4330e: 1193 0800 moveb %a3@,%a0@(00000000,%d0:l) <== NOT EXECUTED tty->rawOutBuf.Head = newHead; 43312: 2542 0080 movel %d2,%a2@(128) <== NOT EXECUTED if (tty->rawOutBufState == rob_idle) { 43316: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 4331a: 663c bnes 43358 <== NOT EXECUTED /* check, whether XOFF has been received */ if (!(tty->flow_ctrl & FL_ORCVXOF)) { 4331c: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43320: 0800 0004 btst #4,%d0 <== NOT EXECUTED 43324: 6620 bnes 43346 <== NOT EXECUTED (*tty->device.write)(tty->minor, 43326: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 4332a: 4878 0001 pea 1 <== NOT EXECUTED 4332e: d0aa 007c addl %a2@(124),%d0 <== NOT EXECUTED 43332: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43334: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 43338: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 4333c: 4e90 jsr %a0@ <== NOT EXECUTED 4333e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43344: 600c bras 43352 <== 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; 43346: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 4334a: 7220 moveq #32,%d1 <== NOT EXECUTED 4334c: 8081 orl %d1,%d0 <== NOT EXECUTED 4334e: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED } tty->rawOutBufState = rob_busy; 43352: 7001 moveq #1,%d0 <== NOT EXECUTED 43354: 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++; 43358: 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); 4335a: 46c3 movew %d3,%sr <== NOT EXECUTED len--; 4335c: 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) { 4335e: 4a84 tstl %d4 <== NOT EXECUTED 43360: 6600 ff58 bnew 432ba <== NOT EXECUTED tty->rawOutBufState = rob_busy; } rtems_interrupt_enable (level); len--; } } 43364: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED 4336a: 4e5e unlk %fp <== NOT EXECUTED 4336c: 4e75 rts 000439ce : return RTEMS_SUCCESSFUL; } rtems_status_code rtems_termios_read (void *arg) { 439ce: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 439d2: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 439d6: 2a6e 0008 moveal %fp@(8),%a5 <== NOT EXECUTED rtems_libio_rw_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 439da: 2055 moveal %a5@,%a0 <== NOT EXECUTED 439dc: 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); 439e0: 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; 439e2: 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); 439e6: 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; 439e8: 2e2d 0008 movel %a5@(8),%d7 <== NOT EXECUTED rtems_status_code sc; sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 439ec: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 439f0: 4eb9 0004 4e4c jsr 44e4c <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 439f6: 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); 439fc: 2c00 movel %d0,%d6 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 439fe: 6600 02ce bnew 43cce <== NOT EXECUTED return sc; if (rtems_termios_linesw[tty->t_line].l_read != NULL) { 43a02: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 43a06: 41f9 0005 7528 lea 57528 ,%a0 <== NOT EXECUTED 43a0c: eb88 lsll #5,%d0 <== NOT EXECUTED 43a0e: 2070 0808 moveal %a0@(00000008,%d0:l),%a0 <== NOT EXECUTED 43a12: 4a88 tstl %a0 <== NOT EXECUTED 43a14: 6720 beqs 43a36 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_read(tty,args); 43a16: 2f0d movel %a5,%sp@- <== NOT EXECUTED 43a18: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43a1a: 4e90 jsr %a0@ <== NOT EXECUTED tty->tty_rcvwakeup = 0; 43a1c: 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); 43a20: 2c00 movel %d0,%d6 <== NOT EXECUTED tty->tty_rcvwakeup = 0; rtems_semaphore_release (tty->isem); 43a22: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 43a26: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 43a2c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43a32: 6000 029a braw 43cce <== NOT EXECUTED return sc; } if (tty->cindex == tty->ccount) { 43a36: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 43a3a: b0aa 0024 cmpl %a2@(36),%d0 <== NOT EXECUTED 43a3e: 6600 0266 bnew 43ca6 <== NOT EXECUTED tty->cindex = tty->ccount = 0; 43a42: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED tty->read_start_column = tty->column; 43a46: 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; 43a4c: 42aa 0024 clrl %a2@(36) <== NOT EXECUTED tty->read_start_column = tty->column; if (tty->device.pollRead != NULL 43a50: 4aaa 00a0 tstl %a2@(160) <== NOT EXECUTED 43a54: 6700 0108 beqw 43b5e <== NOT EXECUTED 43a58: 4aaa 00b4 tstl %a2@(180) <== NOT EXECUTED 43a5c: 6600 0100 bnew 43b5e <== NOT EXECUTED static rtems_status_code fillBufferPoll (struct rtems_termios_tty *tty) { int n; if (tty->termios.c_lflag & ICANON) { 43a60: 7002 moveq #2,%d0 <== NOT EXECUTED 43a62: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 43a66: 6738 beqs 43aa0 <== NOT EXECUTED n = (*tty->device.pollRead)(tty->minor); if (n < 0) { rtems_task_wake_after (1); } else { if (siproc (n, tty)) 43a68: 49fa fdd4 lea %pc@(4383e ),%a4 <== NOT EXECUTED if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); if (n < 0) { rtems_task_wake_after (1); 43a6c: 47f9 0004 5350 lea 45350 ,%a3 <== NOT EXECUTED { int n; if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); 43a72: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43a76: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED 43a7a: 4e90 jsr %a0@ <== NOT EXECUTED if (n < 0) { rtems_task_wake_after (1); } else { if (siproc (n, tty)) 43a7c: 4281 clrl %d1 <== NOT EXECUTED int n; if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); if (n < 0) { 43a7e: 588f addql #4,%sp <== NOT EXECUTED rtems_task_wake_after (1); } else { if (siproc (n, tty)) 43a80: 1200 moveb %d0,%d1 <== NOT EXECUTED int n; if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); if (n < 0) { 43a82: 4a80 tstl %d0 <== NOT EXECUTED 43a84: 6c0a bges 43a90 <== NOT EXECUTED rtems_task_wake_after (1); 43a86: 4878 0001 pea 1 <== NOT EXECUTED 43a8a: 4e93 jsr %a3@ <== NOT EXECUTED 43a8c: 588f addql #4,%sp <== NOT EXECUTED 43a8e: 60e2 bras 43a72 <== NOT EXECUTED } else { if (siproc (n, tty)) 43a90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43a92: 2f01 movel %d1,%sp@- <== NOT EXECUTED 43a94: 4e94 jsr %a4@ <== NOT EXECUTED 43a96: 508f addql #8,%sp <== NOT EXECUTED 43a98: 4a80 tstl %d0 <== NOT EXECUTED 43a9a: 67d6 beqs 43a72 <== NOT EXECUTED 43a9c: 6000 0208 braw 43ca6 <== NOT EXECUTED } } } else { rtems_interval then, now; if (!tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME]) 43aa0: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 43aa4: 6616 bnes 43abc <== NOT EXECUTED 43aa6: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 43aaa: 6710 beqs 43abc <== NOT EXECUTED rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then); 43aac: 486e fffc pea %fp@(-4) <== NOT EXECUTED 43ab0: 4878 0002 pea 2 <== NOT EXECUTED 43ab4: 4eb9 0004 4640 jsr 44640 <== NOT EXECUTED 43aba: 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); 43abc: 260e movel %fp,%d3 <== NOT EXECUTED } } else { if (!tty->termios.c_cc[VTIME]) break; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); 43abe: 240e movel %fp,%d2 <== NOT EXECUTED } } rtems_task_wake_after (1); } else { siproc (n, tty); 43ac0: 283c 0004 383e movel #276542,%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); 43ac6: 5983 subql #4,%d3 <== NOT EXECUTED 43ac8: 47f9 0004 4640 lea 44640 ,%a3 <== NOT EXECUTED rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); if ((now - then) > tty->vtimeTicks) { break; } } rtems_task_wake_after (1); 43ace: 49f9 0004 5350 lea 45350 ,%a4 <== NOT EXECUTED } } else { if (!tty->termios.c_cc[VTIME]) break; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); 43ad4: 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); 43ad6: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43ada: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED 43ade: 4e90 jsr %a0@ <== NOT EXECUTED if (n < 0) { 43ae0: 588f addql #4,%sp <== NOT EXECUTED 43ae2: 4a80 tstl %d0 <== NOT EXECUTED 43ae4: 6c40 bges 43b26 <== NOT EXECUTED if (tty->termios.c_cc[VMIN]) { 43ae6: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 43aea: 670e beqs 43afa <== NOT EXECUTED if (tty->termios.c_cc[VTIME] && tty->ccount) { 43aec: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 43af0: 672a beqs 43b1c <== NOT EXECUTED 43af2: 4aaa 0020 tstl %a2@(32) <== NOT EXECUTED 43af6: 6724 beqs 43b1c <== NOT EXECUTED 43af8: 6008 bras 43b02 <== NOT EXECUTED break; } } } else { if (!tty->termios.c_cc[VTIME]) 43afa: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 43afe: 6700 01a6 beqw 43ca6 <== NOT EXECUTED break; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); 43b02: 2f02 movel %d2,%sp@- <== NOT EXECUTED 43b04: 4878 0002 pea 2 <== NOT EXECUTED 43b08: 4e93 jsr %a3@ <== NOT EXECUTED if ((now - then) > tty->vtimeTicks) { 43b0a: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 43b0e: 90ae fffc subl %fp@(-4),%d0 <== NOT EXECUTED 43b12: 508f addql #8,%sp <== NOT EXECUTED 43b14: b0aa 0054 cmpl %a2@(84),%d0 <== NOT EXECUTED 43b18: 6200 018c bhiw 43ca6 <== NOT EXECUTED break; } } rtems_task_wake_after (1); 43b1c: 4878 0001 pea 1 <== NOT EXECUTED 43b20: 4e94 jsr %a4@ <== NOT EXECUTED 43b22: 588f addql #4,%sp <== NOT EXECUTED 43b24: 60b0 bras 43ad6 <== NOT EXECUTED } else { siproc (n, tty); 43b26: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43b28: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 43b2e: 2044 moveal %d4,%a0 <== NOT EXECUTED 43b30: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43b32: 4e90 jsr %a0@ <== NOT EXECUTED if (tty->ccount >= tty->termios.c_cc[VMIN]) 43b34: 122a 0047 moveb %a2@(71),%d1 <== NOT EXECUTED 43b38: 4280 clrl %d0 <== NOT EXECUTED 43b3a: 508f addql #8,%sp <== NOT EXECUTED 43b3c: 1001 moveb %d1,%d0 <== NOT EXECUTED 43b3e: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 43b42: 6f00 0162 blew 43ca6 <== NOT EXECUTED break; if (tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME]) 43b46: 4a01 tstb %d1 <== NOT EXECUTED 43b48: 678c beqs 43ad6 <== NOT EXECUTED 43b4a: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 43b4e: 6786 beqs 43ad6 <== NOT EXECUTED rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then); 43b50: 2f03 movel %d3,%sp@- <== NOT EXECUTED 43b52: 4878 0002 pea 2 <== NOT EXECUTED 43b56: 4e93 jsr %a3@ <== NOT EXECUTED 43b58: 508f addql #8,%sp <== NOT EXECUTED 43b5a: 6000 ff7a braw 43ad6 <== 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; 43b5e: 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, 43b62: 47ea 0049 lea %a2@(73),%a3 <== NOT EXECUTED 43b66: 7601 moveq #1,%d3 <== NOT EXECUTED 43b68: 49fa fcd4 lea %pc@(4383e ),%a4 <== NOT EXECUTED 43b6c: 6000 011e braw 43c8c <== 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; 43b70: 202a 005c movel %a2@(92),%d0 <== NOT EXECUTED 43b74: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED c = tty->rawInBuf.theBuf[newHead]; 43b78: 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; 43b7c: 5280 addql #1,%d0 <== NOT EXECUTED 43b7e: 4c41 0002 remul %d1,%d2,%d0 <== NOT EXECUTED c = tty->rawInBuf.theBuf[newHead]; 43b82: 1030 2800 moveb %a0@(00000000,%d2:l),%d0 <== NOT EXECUTED tty->rawInBuf.Head = newHead; 43b86: 2542 005c movel %d2,%a2@(92) <== NOT EXECUTED if(((tty->rawInBuf.Tail-newHead+tty->rawInBuf.Size) 43b8a: 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]; 43b8e: 1d40 fff7 moveb %d0,%fp@(-9) <== NOT EXECUTED tty->rawInBuf.Head = newHead; if(((tty->rawInBuf.Tail-newHead+tty->rawInBuf.Size) 43b92: 202a 0064 movel %a2@(100),%d0 <== NOT EXECUTED 43b96: d081 addl %d1,%d0 <== NOT EXECUTED 43b98: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED 43b9c: 9082 subl %d2,%d0 <== NOT EXECUTED 43b9e: 2400 movel %d0,%d2 <== NOT EXECUTED 43ba0: 4c41 2003 remul %d1,%d3,%d2 <== NOT EXECUTED 43ba4: b6aa 00bc cmpl %a2@(188),%d3 <== NOT EXECUTED 43ba8: 646c bccs 43c16 <== NOT EXECUTED % tty->rawInBuf.Size) < tty->lowwater) { tty->flow_ctrl &= ~FL_IREQXOF; 43baa: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43bae: 72fe moveq #-2,%d1 <== NOT EXECUTED 43bb0: c081 andl %d1,%d0 <== NOT EXECUTED 43bb2: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* if tx stopped and XON should be sent... */ if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF)) 43bb6: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43bba: 0280 0000 0202 andil #514,%d0 <== NOT EXECUTED 43bc0: 0c80 0000 0202 cmpil #514,%d0 <== NOT EXECUTED 43bc6: 6628 bnes 43bf0 <== NOT EXECUTED 43bc8: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 43bcc: 670a beqs 43bd8 <== NOT EXECUTED 43bce: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43bd2: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43bd6: 6718 beqs 43bf0 <== 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, 43bd8: 4878 0001 pea 1 <== NOT EXECUTED 43bdc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 43bde: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43be2: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 43be6: 4e90 jsr %a0@ <== NOT EXECUTED 43be8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43bee: 6026 bras 43c16 <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTART]), 1); } else if (tty->flow_ctrl & FL_MDRTS) { 43bf0: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43bf4: 0800 0008 btst #8,%d0 <== NOT EXECUTED 43bf8: 671c beqs 43c16 <== NOT EXECUTED tty->flow_ctrl &= ~FL_IRTSOFF; 43bfa: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43bfe: 74fb moveq #-5,%d2 <== NOT EXECUTED /* activate RTS line */ if (tty->device.startRemoteTx != NULL) { 43c00: 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; 43c04: c082 andl %d2,%d0 <== NOT EXECUTED 43c06: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* activate RTS line */ if (tty->device.startRemoteTx != NULL) { 43c0a: 4a88 tstl %a0 <== NOT EXECUTED 43c0c: 6708 beqs 43c16 <== NOT EXECUTED tty->device.startRemoteTx(tty->minor); 43c0e: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43c12: 4e90 jsr %a0@ <== NOT EXECUTED 43c14: 588f addql #4,%sp <== NOT EXECUTED 43c16: 4281 clrl %d1 <== NOT EXECUTED } } } /* continue processing new character */ if (tty->termios.c_lflag & ICANON) { 43c18: 7002 moveq #2,%d0 <== NOT EXECUTED 43c1a: 122e fff7 moveb %fp@(-9),%d1 <== NOT EXECUTED 43c1e: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 43c22: 670e beqs 43c32 <== NOT EXECUTED if (siproc (c, tty)) 43c24: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43c26: 2f01 movel %d1,%sp@- <== NOT EXECUTED 43c28: 4e94 jsr %a4@ <== NOT EXECUTED 43c2a: 508f addql #8,%sp <== NOT EXECUTED 43c2c: 4a80 tstl %d0 <== NOT EXECUTED 43c2e: 6616 bnes 43c46 <== NOT EXECUTED 43c30: 6016 bras 43c48 <== NOT EXECUTED wait = 0; } else { siproc (c, tty); 43c32: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43c34: 2f01 movel %d1,%sp@- <== NOT EXECUTED 43c36: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->ccount >= tty->termios.c_cc[VMIN]) 43c38: 4280 clrl %d0 <== NOT EXECUTED 43c3a: 102a 0047 moveb %a2@(71),%d0 <== NOT EXECUTED 43c3e: 508f addql #8,%sp <== NOT EXECUTED 43c40: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 43c44: 6e02 bgts 43c48 <== NOT EXECUTED 43c46: 4284 clrl %d4 <== NOT EXECUTED wait = 0; } timeout = tty->rawInBufSemaphoreTimeout; 43c48: 206a 0070 moveal %a2@(112),%a0 <== NOT EXECUTED while ( wait ) { /* * Process characters read from raw queue */ while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) && 43c4c: 222a 005c movel %a2@(92),%d1 <== NOT EXECUTED 43c50: 202a 0060 movel %a2@(96),%d0 <== NOT EXECUTED 43c54: b081 cmpl %d1,%d0 <== NOT EXECUTED 43c56: 6710 beqs 43c68 <== NOT EXECUTED 43c58: 2039 0005 6754 movel 56754 ,%d0 <== NOT EXECUTED 43c5e: 5380 subql #1,%d0 <== NOT EXECUTED 43c60: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 43c64: 6e00 ff0a bgtw 43b70 <== NOT EXECUTED 43c68: 2408 movel %a0,%d2 <== NOT EXECUTED 43c6a: 2604 movel %d4,%d3 <== NOT EXECUTED } /* * Wait for characters */ if ( wait ) { 43c6c: 671a beqs 43c88 <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->rawInBuf.Semaphore, 43c6e: 2f08 movel %a0,%sp@- <== NOT EXECUTED 43c70: 2f2a 006c movel %a2@(108),%sp@- <== NOT EXECUTED 43c74: 2f2a 0068 movel %a2@(104),%sp@- <== NOT EXECUTED 43c78: 4eb9 0004 4e4c jsr 44e4c <== NOT EXECUTED tty->rawInBufSemaphoreOptions, timeout); if (sc != RTEMS_SUCCESSFUL) 43c7e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43c84: 4a80 tstl %d0 <== NOT EXECUTED 43c86: 661e bnes 43ca6 <== NOT EXECUTED { rtems_interval timeout = tty->rawInBufSemaphoreFirstTimeout; rtems_status_code sc; int wait = (int)1; while ( wait ) { 43c88: 4a84 tstl %d4 <== NOT EXECUTED 43c8a: 671a beqs 43ca6 <== NOT EXECUTED 43c8c: 2803 movel %d3,%d4 <== NOT EXECUTED 43c8e: 2042 moveal %d2,%a0 <== NOT EXECUTED 43c90: 60ba bras 43c4c <== 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++]; 43c92: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 43c96: 2247 moveal %d7,%a1 <== NOT EXECUTED 43c98: 12f0 0800 moveb %a0@(00000000,%d0:l),%a1@+ <== NOT EXECUTED 43c9c: 5280 addql #1,%d0 <== NOT EXECUTED 43c9e: 5287 addql #1,%d7 <== NOT EXECUTED count--; 43ca0: 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++]; 43ca2: 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)) { 43ca6: 4a85 tstl %d5 <== NOT EXECUTED 43ca8: 670a beqs 43cb4 <== NOT EXECUTED 43caa: 202a 0024 movel %a2@(36),%d0 <== NOT EXECUTED 43cae: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 43cb2: 6dde blts 43c92 <== NOT EXECUTED *buffer++ = tty->cbuf[tty->cindex++]; count--; } args->bytes_moved = args->count - count; 43cb4: 202d 000c movel %a5@(12),%d0 <== NOT EXECUTED 43cb8: 9085 subl %d5,%d0 <== NOT EXECUTED 43cba: 2b40 0014 movel %d0,%a5@(20) <== NOT EXECUTED tty->tty_rcvwakeup = 0; 43cbe: 42aa 00e4 clrl %a2@(228) <== NOT EXECUTED rtems_semaphore_release (tty->isem); 43cc2: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 43cc6: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 43ccc: 588f addql #4,%sp <== NOT EXECUTED return sc; } 43cce: 2006 movel %d6,%d0 <== NOT EXECUTED 43cd0: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED 43cd6: 4e5e unlk %fp <== NOT EXECUTED 43cd8: 4e75 rts 00042dfc : * 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) { 42dfc: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 42e00: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 42e04: 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)) 42e08: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42e0c: 0280 0000 0403 andil #1027,%d0 <== NOT EXECUTED 42e12: 0c80 0000 0401 cmpil #1025,%d0 <== NOT EXECUTED 42e18: 663e bnes 42e58 <== NOT EXECUTED == (FL_MDXOF | FL_IREQXOF)) { /* XOFF should be sent now... */ (*tty->device.write)(tty->minor, 42e1a: 4878 0001 pea 1 <== NOT EXECUTED 42e1e: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 42e22: 486a 004a pea %a2@(74) <== NOT EXECUTED 42e26: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 42e2a: 4e90 jsr %a0@ <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTOP]), 1); rtems_interrupt_disable(level); 42e2c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 42e32: 40c1 movew %sr,%d1 <== NOT EXECUTED 42e34: 8081 orl %d1,%d0 <== NOT EXECUTED 42e36: 46c0 movew %d0,%sr <== NOT EXECUTED tty->t_dqlen--; tty->flow_ctrl |= FL_ISNTXOF; 42e38: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42e3c: 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--; 42e3e: 53aa 0090 subql #1,%a2@(144) <== NOT EXECUTED tty->flow_ctrl |= FL_ISNTXOF; 42e42: 8082 orl %d2,%d0 <== NOT EXECUTED 42e44: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED rtems_interrupt_enable(level); 42e48: 46c1 movew %d1,%sr <== NOT EXECUTED 42e4a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42e50: 143c 0001 moveb #1,%d2 <== NOT EXECUTED 42e54: 6000 0152 braw 42fa8 <== NOT EXECUTED nToSend = 1; } else if ((tty->flow_ctrl & (FL_IREQXOF | FL_ISNTXOF)) 42e58: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42e5c: 7203 moveq #3,%d1 <== NOT EXECUTED 42e5e: c081 andl %d1,%d0 <== NOT EXECUTED 42e60: 7402 moveq #2,%d2 <== NOT EXECUTED 42e62: b480 cmpl %d0,%d2 <== NOT EXECUTED 42e64: 663c bnes 42ea2 <== 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, 42e66: 4878 0001 pea 1 <== NOT EXECUTED 42e6a: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 42e6e: 486a 0049 pea %a2@(73) <== NOT EXECUTED 42e72: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 42e76: 4e90 jsr %a0@ <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTART]), 1); rtems_interrupt_disable(level); 42e78: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 42e7e: 40c1 movew %sr,%d1 <== NOT EXECUTED 42e80: 8081 orl %d1,%d0 <== NOT EXECUTED 42e82: 46c0 movew %d0,%sr <== NOT EXECUTED tty->t_dqlen--; tty->flow_ctrl &= ~FL_ISNTXOF; 42e84: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42e88: 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--; 42e8a: 53aa 0090 subql #1,%a2@(144) <== NOT EXECUTED tty->flow_ctrl &= ~FL_ISNTXOF; 42e8e: c082 andl %d2,%d0 <== NOT EXECUTED 42e90: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED rtems_interrupt_enable(level); 42e94: 46c1 movew %d1,%sr <== NOT EXECUTED 42e96: 7401 moveq #1,%d2 <== NOT EXECUTED 42e98: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42e9e: 6000 0108 braw 42fa8 <== NOT EXECUTED nToSend = 1; } else { if ( tty->rawOutBuf.Head == tty->rawOutBuf.Tail ) { 42ea2: 222a 0080 movel %a2@(128),%d1 <== NOT EXECUTED 42ea6: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 42eaa: b081 cmpl %d1,%d0 <== NOT EXECUTED 42eac: 661a bnes 42ec8 <== NOT EXECUTED /* * buffer was empty */ if (tty->rawOutBufState == rob_wait) { 42eae: 7002 moveq #2,%d0 <== NOT EXECUTED 42eb0: b0aa 0094 cmpl %a2@(148),%d0 <== NOT EXECUTED 42eb4: 660c bnes 42ec2 <== NOT EXECUTED /* * this should never happen... */ rtems_semaphore_release (tty->rawOutBuf.Semaphore); 42eb6: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 42eba: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 42ec0: 588f addql #4,%sp <== NOT EXECUTED 42ec2: 4282 clrl %d2 <== NOT EXECUTED 42ec4: 6000 00e2 braw 42fa8 <== NOT EXECUTED } return 0; } rtems_interrupt_disable(level); 42ec8: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 42ece: 40c0 movew %sr,%d0 <== NOT EXECUTED 42ed0: 8280 orl %d0,%d1 <== NOT EXECUTED 42ed2: 46c1 movew %d1,%sr <== NOT EXECUTED len = tty->t_dqlen; 42ed4: 222a 0090 movel %a2@(144),%d1 <== NOT EXECUTED tty->t_dqlen = 0; 42ed8: 42aa 0090 clrl %a2@(144) <== NOT EXECUTED rtems_interrupt_enable(level); 42edc: 46c0 movew %d0,%sr <== NOT EXECUTED newTail = (tty->rawOutBuf.Tail + len) % tty->rawOutBuf.Size; 42ede: 206a 0084 moveal %a2@(132),%a0 <== NOT EXECUTED 42ee2: 202a 0088 movel %a2@(136),%d0 <== NOT EXECUTED 42ee6: d288 addl %a0,%d1 <== NOT EXECUTED 42ee8: 4c40 1003 remul %d0,%d3,%d1 <== NOT EXECUTED tty->rawOutBuf.Tail = newTail; 42eec: 2543 0084 movel %d3,%a2@(132) <== NOT EXECUTED if (tty->rawOutBufState == rob_wait) { 42ef0: 7202 moveq #2,%d1 <== NOT EXECUTED 42ef2: b2aa 0094 cmpl %a2@(148),%d1 <== NOT EXECUTED 42ef6: 660c bnes 42f04 <== NOT EXECUTED /* * wake up any pending writer task */ rtems_semaphore_release (tty->rawOutBuf.Semaphore); 42ef8: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 42efc: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 42f02: 588f addql #4,%sp <== NOT EXECUTED } if (newTail == tty->rawOutBuf.Head) { 42f04: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 42f08: b083 cmpl %d3,%d0 <== NOT EXECUTED 42f0a: 6622 bnes 42f2e <== NOT EXECUTED nToSend = 0; /* * check to see if snd wakeup callback was set */ if ( tty->tty_snd.sw_pfn != NULL) { 42f0c: 206a 00d4 moveal %a2@(212),%a0 <== NOT EXECUTED } if (newTail == tty->rawOutBuf.Head) { /* * Buffer has become empty */ tty->rawOutBufState = rob_idle; 42f10: 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) { 42f14: 4a88 tstl %a0 <== NOT EXECUTED 42f16: 6606 bnes 42f1e <== NOT EXECUTED 42f18: 4282 clrl %d2 <== NOT EXECUTED 42f1a: 6000 0088 braw 42fa4 <== NOT EXECUTED (*tty->tty_snd.sw_pfn)(&tty->termios, tty->tty_snd.sw_arg); 42f1e: 2f2a 00d8 movel %a2@(216),%sp@- <== NOT EXECUTED 42f22: 4282 clrl %d2 <== NOT EXECUTED 42f24: 486a 0030 pea %a2@(48) <== NOT EXECUTED 42f28: 4e90 jsr %a0@ <== NOT EXECUTED 42f2a: 508f addql #8,%sp <== NOT EXECUTED 42f2c: 6076 bras 42fa4 <== NOT EXECUTED } } /* check, whether output should stop due to received XOFF */ else if ((tty->flow_ctrl & (FL_MDXON | FL_ORCVXOF)) 42f2e: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42f32: 0280 0000 0210 andil #528,%d0 <== NOT EXECUTED 42f38: 0c80 0000 0210 cmpil #528,%d0 <== NOT EXECUTED 42f3e: 6622 bnes 42f62 <== 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); 42f40: 303c 0700 movew #1792,%d0 <== NOT EXECUTED 42f44: 40c1 movew %sr,%d1 <== NOT EXECUTED 42f46: 8081 orl %d1,%d0 <== NOT EXECUTED 42f48: 46c0 movew %d0,%sr <== NOT EXECUTED tty->flow_ctrl |= FL_OSTOP; 42f4a: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 42f4e: 7420 moveq #32,%d2 <== NOT EXECUTED 42f50: 8082 orl %d2,%d0 <== NOT EXECUTED 42f52: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED tty->rawOutBufState = rob_busy; /*apm*/ 42f56: 7001 moveq #1,%d0 <== NOT EXECUTED 42f58: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED rtems_interrupt_enable(level); 42f5c: 46c1 movew %d1,%sr <== NOT EXECUTED 42f5e: 4202 clrb %d2 <== NOT EXECUTED 42f60: 6042 bras 42fa4 <== NOT EXECUTED } else { /* * Buffer not empty, start tranmitter */ if (newTail > tty->rawOutBuf.Head) 42f62: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 42f66: b083 cmpl %d3,%d0 <== NOT EXECUTED 42f68: 6406 bccs 42f70 <== NOT EXECUTED nToSend = tty->rawOutBuf.Size - newTail; 42f6a: 242a 0088 movel %a2@(136),%d2 <== NOT EXECUTED 42f6e: 6004 bras 42f74 <== NOT EXECUTED else nToSend = tty->rawOutBuf.Head - newTail; 42f70: 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)) { 42f74: 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; 42f78: 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)) { 42f7a: 0280 0000 0600 andil #1536,%d0 <== NOT EXECUTED 42f80: 6702 beqs 42f84 <== NOT EXECUTED 42f82: 7401 moveq #1,%d2 <== NOT EXECUTED nToSend = 1; } tty->rawOutBufState = rob_busy; /*apm*/ (*tty->device.write)(tty->minor, 42f84: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42f86: 222a 007c movel %a2@(124),%d1 <== NOT EXECUTED 42f8a: d283 addl %d3,%d1 <== NOT EXECUTED 42f8c: 2f01 movel %d1,%sp@- <== NOT EXECUTED 42f8e: 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*/ 42f92: 7001 moveq #1,%d0 <== NOT EXECUTED 42f94: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED (*tty->device.write)(tty->minor, 42f98: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 42f9c: 4e90 jsr %a0@ <== NOT EXECUTED 42f9e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED &tty->rawOutBuf.theBuf[newTail], nToSend); } tty->rawOutBuf.Tail = newTail; /*apm*/ 42fa4: 2543 0084 movel %d3,%a2@(132) <== NOT EXECUTED } return nToSend; } 42fa8: 2002 movel %d2,%d0 <== NOT EXECUTED 42faa: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 42fb0: 4e5e unlk %fp <== NOT EXECUTED 42fb2: 4e75 rts 000445c8 : /* * this task actually processes any receive events */ static rtems_task rtems_termios_rxdaemon(rtems_task_argument argument) { 445c8: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 445cc: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@ <== NOT EXECUTED 445d0: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED char c_buf; while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_RX_PROC_EVENT | 445d4: 260e movel %fp,%d3 <== NOT EXECUTED if (c != EOF) { /* * pollRead did call enqueue on its own */ c_buf = c; rtems_termios_enqueue_raw_characters ( 445d6: 240e movel %fp,%d2 <== NOT EXECUTED char c_buf; while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_RX_PROC_EVENT | 445d8: 5d83 subql #6,%d3 <== NOT EXECUTED 445da: 4bf9 0004 4880 lea 44880 ,%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); 445e0: 49f9 0004 5138 lea 45138 ,%a4 <== NOT EXECUTED if (c != EOF) { /* * pollRead did call enqueue on its own */ c_buf = c; rtems_termios_enqueue_raw_characters ( 445e6: 5382 subql #1,%d2 <== NOT EXECUTED 445e8: 47f9 0004 3014 lea 43014 ,%a3 <== NOT EXECUTED char c_buf; while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_RX_PROC_EVENT | 445ee: 2f03 movel %d3,%sp@- <== NOT EXECUTED 445f0: 42a7 clrl %sp@- <== NOT EXECUTED 445f2: 4878 0002 pea 2 <== NOT EXECUTED 445f6: 4878 0003 pea 3 <== NOT EXECUTED 445fa: 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) { 445fc: 7001 moveq #1,%d0 <== NOT EXECUTED 445fe: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44604: c0ae fffa andl %fp@(-6),%d0 <== NOT EXECUTED 44608: 670c beqs 44616 <== NOT EXECUTED tty->rxTaskId = 0; 4460a: 42aa 00c4 clrl %a2@(196) <== NOT EXECUTED rtems_task_delete(RTEMS_SELF); 4460e: 42a7 clrl %sp@- <== NOT EXECUTED 44610: 4e94 jsr %a4@ <== NOT EXECUTED 44612: 588f addql #4,%sp <== NOT EXECUTED 44614: 60d8 bras 445ee <== NOT EXECUTED } else { /* * do something */ c = tty->device.pollRead(tty->minor); 44616: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 4461a: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED 4461e: 4e90 jsr %a0@ <== NOT EXECUTED if (c != EOF) { 44620: 588f addql #4,%sp <== NOT EXECUTED 44622: 72ff moveq #-1,%d1 <== NOT EXECUTED 44624: b280 cmpl %d0,%d1 <== NOT EXECUTED 44626: 67c6 beqs 445ee <== NOT EXECUTED /* * pollRead did call enqueue on its own */ c_buf = c; rtems_termios_enqueue_raw_characters ( 44628: 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; 4462c: 1d40 ffff moveb %d0,%fp@(-1) <== NOT EXECUTED rtems_termios_enqueue_raw_characters ( 44630: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44632: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44634: 4e93 jsr %a3@ <== NOT EXECUTED 44636: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4463c: 60b0 bras 445ee <== NOT EXECUTED ... 00042de0 : * 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) { 42de0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * send event to rx daemon task */ rtems_event_send(tty->rxTaskId,TERMIOS_RX_PROC_EVENT); 42de4: 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) { 42de8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED /* * send event to rx daemon task */ rtems_event_send(tty->rxTaskId,TERMIOS_RX_PROC_EVENT); 42dec: 2f28 00c4 movel %a0@(196),%sp@- <== NOT EXECUTED 42df0: 4eb9 0004 49e8 jsr 449e8 <== NOT EXECUTED 42df6: 508f addql #8,%sp <== NOT EXECUTED } 42df8: 4e5e unlk %fp <== NOT EXECUTED 42dfa: 4e75 rts 0004455e : /* * this task actually processes any transmit events */ static rtems_task rtems_termios_txdaemon(rtems_task_argument argument) { 4455e: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 44562: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 44566: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_TX_START_EVENT | 4456a: 240e movel %fp,%d2 <== NOT EXECUTED 4456c: 5982 subql #4,%d2 <== NOT EXECUTED 4456e: 4bf9 0004 4880 lea 44880 ,%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); 44574: 49f9 0004 5138 lea 45138 ,%a4 <== NOT EXECUTED rtems_termios_linesw[tty->t_line].l_start(tty); } /* * try to push further characters to device */ rtems_termios_refill_transmitter(tty); 4457a: 47f9 0004 2dfc lea 42dfc ,%a3 <== NOT EXECUTED while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_TX_START_EVENT | 44580: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44582: 42a7 clrl %sp@- <== NOT EXECUTED 44584: 4878 0002 pea 2 <== NOT EXECUTED 44588: 4878 0003 pea 3 <== NOT EXECUTED 4458c: 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) { 4458e: 7001 moveq #1,%d0 <== NOT EXECUTED 44590: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44596: c0ae fffc andl %fp@(-4),%d0 <== NOT EXECUTED 4459a: 670a beqs 445a6 <== NOT EXECUTED tty->txTaskId = 0; 4459c: 42aa 00c8 clrl %a2@(200) <== NOT EXECUTED rtems_task_delete(RTEMS_SELF); 445a0: 42a7 clrl %sp@- <== NOT EXECUTED 445a2: 4e94 jsr %a4@ <== NOT EXECUTED 445a4: 601e bras 445c4 <== NOT EXECUTED } else { /* * call any line discipline start function */ if (rtems_termios_linesw[tty->t_line].l_start != NULL) { 445a6: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 445aa: eb88 lsll #5,%d0 <== NOT EXECUTED 445ac: 0680 0005 753c addil #357692,%d0 <== NOT EXECUTED 445b2: 2240 moveal %d0,%a1 <== NOT EXECUTED 445b4: 2051 moveal %a1@,%a0 <== NOT EXECUTED 445b6: 4a88 tstl %a0 <== NOT EXECUTED 445b8: 6706 beqs 445c0 <== NOT EXECUTED rtems_termios_linesw[tty->t_line].l_start(tty); 445ba: 2f0a movel %a2,%sp@- <== NOT EXECUTED 445bc: 4e90 jsr %a0@ <== NOT EXECUTED 445be: 588f addql #4,%sp <== NOT EXECUTED } /* * try to push further characters to device */ rtems_termios_refill_transmitter(tty); 445c0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 445c2: 4e93 jsr %a3@ <== NOT EXECUTED 445c4: 588f addql #4,%sp <== NOT EXECUTED 445c6: 60b8 bras 44580 <== NOT EXECUTED 000438a8 : rtems_termios_puts (&c, 1, tty); } rtems_status_code rtems_termios_write (void *arg) { 438a8: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 438ac: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@ <== NOT EXECUTED 438b0: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED rtems_libio_rw_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 438b4: 2053 moveal %a3@,%a0 <== NOT EXECUTED 438b6: 2468 0028 moveal %a0@(40),%a2 <== NOT EXECUTED rtems_status_code sc; sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 438ba: 42a7 clrl %sp@- <== NOT EXECUTED 438bc: 42a7 clrl %sp@- <== NOT EXECUTED 438be: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 438c2: 4eb9 0004 4e4c jsr 44e4c <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 438c8: 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); 438ce: 2600 movel %d0,%d3 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 438d0: 6600 0082 bnew 43954 <== NOT EXECUTED return sc; if (rtems_termios_linesw[tty->t_line].l_write != NULL) { 438d4: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 438d8: eb88 lsll #5,%d0 <== NOT EXECUTED 438da: 0680 0005 7534 addil #357684,%d0 <== NOT EXECUTED 438e0: 2240 moveal %d0,%a1 <== NOT EXECUTED 438e2: 2051 moveal %a1@,%a0 <== NOT EXECUTED 438e4: 4a88 tstl %a0 <== NOT EXECUTED 438e6: 671a beqs 43902 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_write(tty,args); 438e8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 438ea: 2f0a movel %a2,%sp@- <== NOT EXECUTED 438ec: 4e90 jsr %a0@ <== NOT EXECUTED rtems_semaphore_release (tty->osem); 438ee: 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); 438f2: 2600 movel %d0,%d3 <== NOT EXECUTED rtems_semaphore_release (tty->osem); 438f4: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 438fa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43900: 6052 bras 43954 <== NOT EXECUTED return sc; } if (tty->termios.c_oflag & OPOST) { 43902: 7001 moveq #1,%d0 <== NOT EXECUTED 43904: c0aa 0034 andl %a2@(52),%d0 <== NOT EXECUTED 43908: 6722 beqs 4392c <== NOT EXECUTED uint32_t count = args->count; 4390a: 242b 000c movel %a3@(12),%d2 <== NOT EXECUTED char *buffer = args->buffer; 4390e: 286b 0008 moveal %a3@(8),%a4 <== NOT EXECUTED while (count--) oproc (*buffer++, tty); 43912: 4bfa fa5a lea %pc@(4336e ),%a5 <== NOT EXECUTED 43916: 600e bras 43926 <== NOT EXECUTED 43918: 4280 clrl %d0 <== NOT EXECUTED 4391a: 101c moveb %a4@+,%d0 <== NOT EXECUTED 4391c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4391e: 5382 subql #1,%d2 <== NOT EXECUTED 43920: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43922: 4e95 jsr %a5@ <== NOT EXECUTED 43924: 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--) 43926: 4a82 tstl %d2 <== NOT EXECUTED 43928: 66ee bnes 43918 <== NOT EXECUTED 4392a: 6016 bras 43942 <== NOT EXECUTED oproc (*buffer++, tty); args->bytes_moved = args->count; } else { rtems_termios_puts (args->buffer, args->count, tty); 4392c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4392e: 2f2b 000c movel %a3@(12),%sp@- <== NOT EXECUTED 43932: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 43936: 4eb9 0004 326e jsr 4326e <== NOT EXECUTED args->bytes_moved = args->count; 4393c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43942: 276b 000c 0014 movel %a3@(12),%a3@(20) <== NOT EXECUTED } rtems_semaphore_release (tty->osem); 43948: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 4394c: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED 43952: 588f addql #4,%sp <== NOT EXECUTED return sc; } 43954: 2003 movel %d3,%d0 <== NOT EXECUTED 43956: 4cee 3c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a5 <== NOT EXECUTED 4395c: 4e5e unlk %fp <== NOT EXECUTED 4395e: 4e75 rts 0004ef74 : */ rtems_status_code rtems_timer_cancel( Objects_Id id ) { 4ef74: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get ( Objects_Id id, Objects_Locations *location ) { return (Timer_Control *) 4ef78: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4ef7c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ef80: 4879 0006 e2ba pea 6e2ba <_Timer_Information> <== NOT EXECUTED 4ef86: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4ef8c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ef92: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ef94: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4ef98: 6704 beqs 4ef9e <== NOT EXECUTED 4ef9a: 7004 moveq #4,%d0 <== NOT EXECUTED 4ef9c: 601c bras 4efba <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Timer_Is_dormant_class( the_timer->the_class ) ) 4ef9e: 7004 moveq #4,%d0 <== NOT EXECUTED 4efa0: b0a8 0038 cmpl %a0@(56),%d0 <== NOT EXECUTED 4efa4: 670c beqs 4efb2 <== NOT EXECUTED (void) _Watchdog_Remove( &the_timer->Ticker ); 4efa6: 4868 0010 pea %a0@(16) <== NOT EXECUTED 4efaa: 4eb9 0005 334c jsr 5334c <_Watchdog_Remove> <== NOT EXECUTED 4efb0: 588f addql #4,%sp <== NOT EXECUTED _Thread_Enable_dispatch(); 4efb2: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4efb8: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4efba: 4e5e unlk %fp <== NOT EXECUTED 4efbc: 4e75 rts <== NOT EXECUTED ... 00045ef8 : rtems_status_code rtems_timer_create( rtems_name name, Objects_Id *id ) { 45ef8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 45efc: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 45f00: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 45f04: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED Timer_Control *the_timer; if ( !rtems_is_name_valid( name ) ) 45f08: 6604 bnes 45f0e <== NOT EXECUTED 45f0a: 7003 moveq #3,%d0 <== NOT EXECUTED 45f0c: 6068 bras 45f76 <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 45f0e: 4a8b tstl %a3 <== NOT EXECUTED 45f10: 6604 bnes 45f16 <== NOT EXECUTED 45f12: 7009 moveq #9,%d0 <== NOT EXECUTED 45f14: 6060 bras 45f76 <== NOT EXECUTED 45f16: 2039 0005 a978 movel 5a978 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45f1c: 5280 addql #1,%d0 <== NOT EXECUTED 45f1e: 23c0 0005 a978 movel %d0,5a978 <_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 ); 45f24: 4879 0005 ae86 pea 5ae86 <_Timer_Information> <== NOT EXECUTED 45f2a: 4eb9 0004 6dd8 jsr 46dd8 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_timer = _Timer_Allocate(); if ( !the_timer ) { 45f30: 588f addql #4,%sp <== NOT EXECUTED 45f32: 2240 moveal %d0,%a1 <== NOT EXECUTED 45f34: 45f9 0004 79aa lea 479aa <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 45f3a: 4a80 tstl %d0 <== NOT EXECUTED 45f3c: 6606 bnes 45f44 <== NOT EXECUTED _Thread_Enable_dispatch(); 45f3e: 4e92 jsr %a2@ <== NOT EXECUTED 45f40: 7005 moveq #5,%d0 <== NOT EXECUTED 45f42: 6032 bras 45f76 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 45f44: 2342 000c movel %d2,%a1@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 45f48: 2079 0005 aea0 moveal 5aea0 <_Timer_Information+0x1a>,%a0 <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 45f4e: 42a9 0030 clrl %a1@(48) <== NOT EXECUTED 45f52: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_TOO_MANY; } the_timer->the_class = TIMER_DORMANT; 45f54: 7204 moveq #4,%d1 <== NOT EXECUTED 45f56: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED &_Timer_Information, &the_timer->Object, (Objects_Name) name ); *id = the_timer->Object.id; 45f5a: 26a9 0008 movel %a1@(8),%a3@ <== NOT EXECUTED 45f5e: 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; 45f62: 2341 0038 movel %d1,%a1@(56) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 45f66: 42a9 0018 clrl %a1@(24) <== NOT EXECUTED the_watchdog->routine = routine; 45f6a: 42a9 002c clrl %a1@(44) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 45f6e: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED &the_timer->Object, (Objects_Name) name ); *id = the_timer->Object.id; _Thread_Enable_dispatch(); 45f72: 4e92 jsr %a2@ <== NOT EXECUTED 45f74: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45f76: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 45f7c: 4e5e unlk %fp <== NOT EXECUTED 45f7e: 4e75 rts 0004f048 : */ rtems_status_code rtems_timer_delete( Objects_Id id ) { 4f048: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4f04c: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get ( Objects_Id id, Objects_Locations *location ) { return (Timer_Control *) 4f04e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f052: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f056: 4879 0006 e2ba pea 6e2ba <_Timer_Information> <== NOT EXECUTED 4f05c: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f062: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f068: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f06a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f06e: 6704 beqs 4f074 <== NOT EXECUTED 4f070: 7004 moveq #4,%d0 <== NOT EXECUTED 4f072: 6034 bras 4f0a8 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Timer_Information, &the_timer->Object ); 4f074: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f076: 4879 0006 e2ba pea 6e2ba <_Timer_Information> <== NOT EXECUTED 4f07c: 4eb9 0005 13bc jsr 513bc <_Objects_Close> <== NOT EXECUTED (void) _Watchdog_Remove( &the_timer->Ticker ); 4f082: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4f086: 4eb9 0005 334c jsr 5334c <_Watchdog_Remove> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Timer_Free ( Timer_Control *the_timer ) { _Objects_Free( &_Timer_Information, &the_timer->Object ); 4f08c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f08e: 4879 0006 e2ba pea 6e2ba <_Timer_Information> <== NOT EXECUTED 4f094: 4eb9 0005 1634 jsr 51634 <_Objects_Free> <== NOT EXECUTED _Timer_Free( the_timer ); _Thread_Enable_dispatch(); 4f09a: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4f0a0: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4f0a6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f0a8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4f0ac: 4e5e unlk %fp <== NOT EXECUTED 4f0ae: 4e75 rts 00045f80 : Objects_Id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) { 45f80: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 45f84: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 45f88: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 45f8c: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 45f90: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; ISR_Level level; if ( ticks == 0 ) 45f94: 4a85 tstl %d5 <== NOT EXECUTED 45f96: 6606 bnes 45f9e <== NOT EXECUTED 45f98: 700a moveq #10,%d0 <== NOT EXECUTED 45f9a: 6000 0090 braw 4602c <== NOT EXECUTED return RTEMS_INVALID_NUMBER; if ( !routine ) 45f9e: 4a83 tstl %d3 <== NOT EXECUTED 45fa0: 6606 bnes 45fa8 <== NOT EXECUTED 45fa2: 7009 moveq #9,%d0 <== NOT EXECUTED 45fa4: 6000 0086 braw 4602c <== NOT EXECUTED RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get ( Objects_Id id, Objects_Locations *location ) { return (Timer_Control *) 45fa8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45fac: 2f04 movel %d4,%sp@- <== NOT EXECUTED 45fae: 4879 0005 ae86 pea 5ae86 <_Timer_Information> <== NOT EXECUTED 45fb4: 4eb9 0004 7238 jsr 47238 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_timer = _Timer_Get( id, &location ); switch ( location ) { 45fba: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45fc0: 2440 moveal %d0,%a2 <== NOT EXECUTED 45fc2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45fc6: 6704 beqs 45fcc <== NOT EXECUTED 45fc8: 7004 moveq #4,%d0 <== NOT EXECUTED 45fca: 6060 bras 4602c <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 45fcc: 2400 movel %d0,%d2 <== NOT EXECUTED 45fce: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 45fd4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45fd6: 4eb9 0004 8ac0 jsr 48ac0 <_Watchdog_Remove> <== NOT EXECUTED _ISR_Disable( level ); 45fdc: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 45fe2: 40c1 movew %sr,%d1 <== NOT EXECUTED 45fe4: 8081 orl %d1,%d0 <== NOT EXECUTED 45fe6: 46c0 movew %d0,%sr <== NOT EXECUTED 45fe8: 47f9 0004 79aa lea 479aa <_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 ) { 45fee: 588f addql #4,%sp <== NOT EXECUTED 45ff0: 4aaa 0018 tstl %a2@(24) <== NOT EXECUTED 45ff4: 6706 beqs 45ffc <== NOT EXECUTED _ISR_Enable( level ); 45ff6: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_Enable_dispatch(); 45ff8: 4e93 jsr %a3@ <== NOT EXECUTED 45ffa: 602e bras 4602a <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 45ffc: 2543 002c movel %d3,%a2@(44) <== NOT EXECUTED the_watchdog->id = id; 46000: 2544 0030 movel %d4,%a2@(48) <== NOT EXECUTED the_watchdog->user_data = user_data; 46004: 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; 4600a: 42aa 0038 clrl %a2@(56) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4600e: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); _ISR_Enable( level ); 46012: 46c1 movew %d1,%sr <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 46014: 2545 001c movel %d5,%a2@(28) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 46018: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4601a: 4879 0005 aa54 pea 5aa54 <_Watchdog_Ticks_chain> <== NOT EXECUTED 46020: 4eb9 0004 89a4 jsr 489a4 <_Watchdog_Insert> <== NOT EXECUTED _Watchdog_Insert_ticks( &the_timer->Ticker, ticks ); _Thread_Enable_dispatch(); 46026: 4e93 jsr %a3@ <== NOT EXECUTED 46028: 508f addql #8,%sp <== NOT EXECUTED 4602a: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4602c: 4cee 0c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a3 <== NOT EXECUTED 46032: 4e5e unlk %fp <== NOT EXECUTED 46034: 4e75 rts <== NOT EXECUTED ... 0004f168 : Objects_Id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) { 4f168: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4f16c: 48d7 043c moveml %d2-%d5/%a2,%sp@ <== NOT EXECUTED 4f170: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 4f174: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4f178: 2a2e 0010 movel %fp@(16),%d5 <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; rtems_interval seconds; if ( !_TOD_Is_set ) 4f17c: 4a39 0006 da2c tstb 6da2c <_TOD_Is_set> <== NOT EXECUTED 4f182: 6606 bnes 4f18a <== NOT EXECUTED 4f184: 700b moveq #11,%d0 <== NOT EXECUTED 4f186: 6000 00a6 braw 4f22e <== NOT EXECUTED return RTEMS_NOT_DEFINED; if ( !_TOD_Validate( wall_time ) ) 4f18a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f18c: 4eb9 0004 c9e4 jsr 4c9e4 <_TOD_Validate> <== NOT EXECUTED 4f192: 588f addql #4,%sp <== NOT EXECUTED 4f194: 4a00 tstb %d0 <== NOT EXECUTED 4f196: 6700 0094 beqw 4f22c <== NOT EXECUTED return RTEMS_INVALID_CLOCK; if ( !routine ) 4f19a: 4a85 tstl %d5 <== NOT EXECUTED 4f19c: 6606 bnes 4f1a4 <== NOT EXECUTED 4f19e: 7009 moveq #9,%d0 <== NOT EXECUTED 4f1a0: 6000 008c braw 4f22e <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; seconds = _TOD_To_seconds( wall_time ); 4f1a4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f1a6: 4eb9 0004 c930 jsr 4c930 <_TOD_To_seconds> <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 4f1ac: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_INVALID_CLOCK; if ( !routine ) return RTEMS_INVALID_ADDRESS; seconds = _TOD_To_seconds( wall_time ); 4f1ae: 2600 movel %d0,%d3 <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 4f1b0: b0b9 0006 daaa cmpl 6daaa <_TOD_Now>,%d0 <== NOT EXECUTED 4f1b6: 6374 blss 4f22c <== NOT EXECUTED 4f1b8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f1bc: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4f1be: 4879 0006 e2ba pea 6e2ba <_Timer_Information> <== NOT EXECUTED 4f1c4: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_CLOCK; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f1ca: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f1d0: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f1d2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f1d6: 6704 beqs 4f1dc <== NOT EXECUTED 4f1d8: 7004 moveq #4,%d0 <== NOT EXECUTED 4f1da: 6052 bras 4f22e <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 4f1dc: 2400 movel %d0,%d2 <== NOT EXECUTED 4f1de: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 4f1e4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f1e6: 4eb9 0005 334c jsr 5334c <_Watchdog_Remove> <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 4f1ec: 2544 0030 movel %d4,%a2@(48) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4f1f0: 96b9 0006 daaa subl 6daaa <_TOD_Now>,%d3 <== NOT EXECUTED the_timer->the_class = TIMER_TIME_OF_DAY; 4f1f6: 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; 4f1f8: 256e 0014 0034 movel %fp@(20),%a2@(52) <== NOT EXECUTED 4f1fe: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4f202: 2543 001c movel %d3,%a2@(28) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4f206: 2545 002c movel %d5,%a2@(44) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f20a: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 4f20e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f210: 4879 0006 dae8 pea 6dae8 <_Watchdog_Seconds_chain> <== NOT EXECUTED 4f216: 4eb9 0005 3230 jsr 53230 <_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(); 4f21c: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4f222: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f228: 4280 clrl %d0 <== NOT EXECUTED 4f22a: 6002 bras 4f22e <== NOT EXECUTED return RTEMS_SUCCESSFUL; 4f22c: 7014 moveq #20,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f22e: 4cee 043c ffe8 moveml %fp@(-24),%d2-%d5/%a2 <== NOT EXECUTED 4f234: 4e5e unlk %fp <== NOT EXECUTED 4f236: 4e75 rts 0004f238 : rtems_status_code rtems_timer_get_information( Objects_Id id, rtems_timer_information *the_info ) { 4f238: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4f23c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f23e: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; if ( !the_info ) 4f242: 4a8a tstl %a2 <== NOT EXECUTED 4f244: 6604 bnes 4f24a <== NOT EXECUTED 4f246: 7009 moveq #9,%d0 <== NOT EXECUTED 4f248: 6044 bras 4f28e <== NOT EXECUTED 4f24a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f24e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f252: 4879 0006 e2ba pea 6e2ba <_Timer_Information> <== NOT EXECUTED 4f258: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f25e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f264: 2040 moveal %d0,%a0 <== NOT EXECUTED 4f266: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f26a: 6704 beqs 4f270 <== NOT EXECUTED 4f26c: 7004 moveq #4,%d0 <== NOT EXECUTED 4f26e: 601e bras 4f28e <== NOT EXECUTED case OBJECTS_LOCAL: the_info->the_class = the_timer->the_class; 4f270: 24a8 0038 movel %a0@(56),%a2@ <== NOT EXECUTED the_info->initial = the_timer->Ticker.initial; 4f274: 2568 001c 0004 movel %a0@(28),%a2@(4) <== NOT EXECUTED the_info->start_time = the_timer->Ticker.start_time; 4f27a: 2568 0024 0008 movel %a0@(36),%a2@(8) <== NOT EXECUTED the_info->stop_time = the_timer->Ticker.stop_time; 4f280: 2568 0028 000c movel %a0@(40),%a2@(12) <== NOT EXECUTED _Thread_Enable_dispatch(); 4f286: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4f28c: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f28e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4f292: 4e5e unlk %fp <== NOT EXECUTED 4f294: 4e75 rts <== NOT EXECUTED ... 0004f298 : rtems_status_code rtems_timer_ident( rtems_name name, Objects_Id *id ) { 4f298: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 4f29c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4f2a0: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 4f2a6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f2aa: 4879 0006 e2ba pea 6e2ba <_Timer_Information> <== NOT EXECUTED 4f2b0: 4eb9 0005 1930 jsr 51930 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4f2b6: 41f9 0006 6922 lea 66922 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 4f2bc: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4f2c0: 4e5e unlk %fp <== NOT EXECUTED 4f2c2: 4e75 rts 0004f504 : rtems_status_code rtems_timer_initiate_server( uint32_t priority, uint32_t stack_size, rtems_attribute attribute_set ) { 4f504: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4f508: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f50a: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 4f50e: 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 ) && 4f510: 4a81 tstl %d1 <== NOT EXECUTED 4f512: 671e beqs 4f532 <== NOT EXECUTED 4f514: 4280 clrl %d0 <== NOT EXECUTED 4f516: 1039 0006 7b42 moveb 67b42 ,%d0 <== NOT EXECUTED 4f51c: b081 cmpl %d1,%d0 <== NOT EXECUTED 4f51e: 54c0 scc %d0 <== NOT EXECUTED 4f520: 49c0 extbl %d0 <== NOT EXECUTED 4f522: 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 ) ) { 4f524: 4a00 tstb %d0 <== NOT EXECUTED 4f526: 6704 beqs 4f52c <== NOT EXECUTED 4f528: 2601 movel %d1,%d3 <== NOT EXECUTED 4f52a: 600e bras 4f53a <== NOT EXECUTED if ( priority != RTEMS_TIMER_SERVER_DEFAULT_PRIORITY ) 4f52c: 70ff moveq #-1,%d0 <== NOT EXECUTED 4f52e: b081 cmpl %d1,%d0 <== NOT EXECUTED 4f530: 6706 beqs 4f538 <== NOT EXECUTED 4f532: 7013 moveq #19,%d0 <== NOT EXECUTED 4f534: 6000 0144 braw 4f67a <== NOT EXECUTED 4f538: 4283 clrl %d3 <== NOT EXECUTED 4f53a: 2039 0006 da18 movel 6da18 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4f540: 5280 addql #1,%d0 <== NOT EXECUTED 4f542: 23c0 0006 da18 movel %d0,6da18 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Just to make sure this is only called once. */ _Thread_Disable_dispatch(); tmpInitialized = initialized; 4f548: 1439 0006 8e98 moveb 68e98 ,%d2 <== NOT EXECUTED initialized = true; 4f54e: 7201 moveq #1,%d1 <== NOT EXECUTED 4f550: 13c1 0006 8e98 moveb %d1,68e98 <== NOT EXECUTED _Thread_Enable_dispatch(); 4f556: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED if ( tmpInitialized ) 4f55c: 4a02 tstb %d2 <== NOT EXECUTED 4f55e: 6706 beqs 4f566 <== NOT EXECUTED 4f560: 700e moveq #14,%d0 <== NOT EXECUTED 4f562: 6000 0116 braw 4f67a <== 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( 4f566: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f56a: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 4f56e: 08c0 000f bset #15,%d0 <== NOT EXECUTED 4f572: 2f00 movel %d0,%sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f574: 223c 0006 d994 movel #448916,%d1 <== NOT EXECUTED 4f57a: 4878 0100 pea 100 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f57e: 203c 0006 d990 movel #448912,%d0 <== NOT EXECUTED 4f584: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4f588: 2f03 movel %d3,%sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f58a: 23c1 0006 d990 movel %d1,6d990 <_Timer_To_be_inserted> <== NOT EXECUTED 4f590: 2f3c 5449 4d45 movel #1414090053,%sp@- <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f596: 23c0 0006 d998 movel %d0,6d998 <_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; 4f59c: 42b9 0006 d994 clrl 6d994 <_Timer_To_be_inserted+0x4> <== NOT EXECUTED 4f5a2: 4eb9 0004 e8bc jsr 4e8bc <== 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) { 4f5a8: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 4f5ae: 4a80 tstl %d0 <== NOT EXECUTED 4f5b0: 6600 00c0 bnew 4f672 <== 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( 4f5b4: 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 ) 4f5b8: 4280 clrl %d0 <== NOT EXECUTED 4f5ba: 4281 clrl %d1 <== NOT EXECUTED 4f5bc: 3039 0006 d942 movew 6d942 <_RTEMS_tasks_Information+0xe>,%d0 <== NOT EXECUTED 4f5c2: 3209 movew %a1,%d1 <== NOT EXECUTED 4f5c4: b081 cmpl %d1,%d0 <== NOT EXECUTED 4f5c6: 6404 bccs 4f5cc <== NOT EXECUTED 4f5c8: 91c8 subal %a0,%a0 <== NOT EXECUTED 4f5ca: 600a bras 4f5d6 <== NOT EXECUTED return NULL; return information->local_table[ index ]; 4f5cc: 2079 0006 d94e moveal 6d94e <_RTEMS_tasks_Information+0x1a>,%a0 <== NOT EXECUTED 4f5d2: 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; 4f5d6: 42a8 006c clrl %a0@(108) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4f5da: 203c 0005 1e20 movel #335392,%d0 <== NOT EXECUTED 4f5e0: 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); 4f5e4: 223c 0006 d974 movel #448884,%d1 <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f5ea: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; 4f5ee: 2149 0068 movel %a1,%a0@(104) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f5f2: 203c 0006 d970 movel #448880,%d0 <== NOT EXECUTED _Timer_Server_schedule_operation = _Timer_Server_schedule_operation_method; /* * Start the timer server */ status = rtems_task_start( 4f5f8: 42a7 clrl %sp@- <== NOT EXECUTED 4f5fa: 4879 0004 f72a pea 4f72a <_Timer_Server_body> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f600: 23c1 0006 d970 movel %d1,6d970 <_Timer_Ticks_chain> <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f606: 223c 0006 d988 movel #448904,%d1 <== NOT EXECUTED 4f60c: 23c0 0006 d978 movel %d0,6d978 <_Timer_Ticks_chain+0x8> <== NOT EXECUTED 4f612: 203c 0006 d984 movel #448900,%d0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4f618: 23c1 0006 d984 movel %d1,6d984 <_Timer_Seconds_chain> <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4f61e: 223c 0005 1e20 movel #335392,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4f624: 23c0 0006 d98c movel %d0,6d98c <_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; 4f62a: 203c 0004 f686 movel #325254,%d0 <== NOT EXECUTED /* * Start the timer server */ status = rtems_task_start( 4f630: 2f09 movel %a1,%sp@- <== NOT EXECUTED 4f632: 23c1 0006 d9b8 movel %d1,6d9b8 <_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; 4f638: 23c0 0006 e2f6 movel %d0,6e2f6 <_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( 4f63e: 23c8 0006 e2fa movel %a0,6e2fa <_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; 4f644: 42b9 0006 d974 clrl 6d974 <_Timer_Ticks_chain+0x4> <== NOT EXECUTED 4f64a: 42b9 0006 d988 clrl 6d988 <_Timer_Seconds_chain+0x4> <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f650: 42b9 0006 d9a4 clrl 6d9a4 <_Timer_Seconds_timer+0x8> <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; 4f656: 23c9 0006 d9bc movel %a1,6d9bc <_Timer_Seconds_timer+0x20> <== NOT EXECUTED the_watchdog->user_data = user_data; 4f65c: 42b9 0006 d9c0 clrl 6d9c0 <_Timer_Seconds_timer+0x24> <== NOT EXECUTED _Timer_Server_schedule_operation = _Timer_Server_schedule_operation_method; /* * Start the timer server */ status = rtems_task_start( 4f662: 4eb9 0004 ed8c jsr 4ed8c <== 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) { 4f668: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f66e: 4a80 tstl %d0 <== NOT EXECUTED 4f670: 6708 beqs 4f67a <== 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; 4f672: 4201 clrb %d1 <== NOT EXECUTED 4f674: 13c1 0006 8e98 moveb %d1,68e98 <== NOT EXECUTED } return status; } 4f67a: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4f67e: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 4f682: 4e5e unlk %fp <== NOT EXECUTED 4f684: 4e75 rts 0004f2c4 : */ rtems_status_code rtems_timer_reset( Objects_Id id ) { 4f2c4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4f2c8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f2ca: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f2cc: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f2d0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4f2d4: 4879 0006 e2ba pea 6e2ba <_Timer_Information> <== NOT EXECUTED 4f2da: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f2e0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f2e6: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f2e8: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f2ec: 6704 beqs 4f2f2 <== NOT EXECUTED 4f2ee: 7004 moveq #4,%d0 <== NOT EXECUTED 4f2f0: 6078 bras 4f36a <== NOT EXECUTED case OBJECTS_LOCAL: switch ( the_timer->the_class ) { 4f2f2: 202a 0038 movel %a2@(56),%d0 <== NOT EXECUTED 4f2f6: 7201 moveq #1,%d1 <== NOT EXECUTED 4f2f8: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f2fa: 6732 beqs 4f32e <== NOT EXECUTED 4f2fc: 620a bhis 4f308 <== NOT EXECUTED 4f2fe: 123c 0004 moveb #4,%d1 <== NOT EXECUTED 4f302: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f304: 655c bcss 4f362 <== NOT EXECUTED 4f306: 6050 bras 4f358 <== NOT EXECUTED case TIMER_INTERVAL: _Watchdog_Remove( &the_timer->Ticker ); 4f308: 240a movel %a2,%d2 <== NOT EXECUTED 4f30a: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 4f310: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f312: 4eb9 0005 334c jsr 5334c <_Watchdog_Remove> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker ); 4f318: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f31a: 4879 0006 daf4 pea 6daf4 <_Watchdog_Ticks_chain> <== NOT EXECUTED 4f320: 4eb9 0005 3230 jsr 53230 <_Watchdog_Insert> <== NOT EXECUTED 4f326: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f32c: 6034 bras 4f362 <== NOT EXECUTED break; case TIMER_INTERVAL_ON_TASK: if ( !_Timer_Server_schedule_operation ) { 4f32e: 4ab9 0006 e2f6 tstl 6e2f6 <_Timer_Server_schedule_operation> <== NOT EXECUTED 4f334: 660a bnes 4f340 <== NOT EXECUTED _Thread_Enable_dispatch(); 4f336: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4f33c: 700e moveq #14,%d0 <== NOT EXECUTED 4f33e: 602a bras 4f36a <== NOT EXECUTED return RTEMS_INCORRECT_STATE; } _Watchdog_Remove( &the_timer->Ticker ); 4f340: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4f344: 4eb9 0005 334c jsr 5334c <_Watchdog_Remove> <== NOT EXECUTED (*_Timer_Server_schedule_operation)( the_timer ); 4f34a: 2079 0006 e2f6 moveal 6e2f6 <_Timer_Server_schedule_operation>,%a0 <== NOT EXECUTED 4f350: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f352: 4e90 jsr %a0@ <== NOT EXECUTED 4f354: 508f addql #8,%sp <== NOT EXECUTED 4f356: 600a bras 4f362 <== NOT EXECUTED break; case TIMER_TIME_OF_DAY: case TIMER_TIME_OF_DAY_ON_TASK: case TIMER_DORMANT: _Thread_Enable_dispatch(); 4f358: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4f35e: 700b moveq #11,%d0 <== NOT EXECUTED 4f360: 6008 bras 4f36a <== NOT EXECUTED return RTEMS_NOT_DEFINED; } _Thread_Enable_dispatch(); 4f362: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4f368: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f36a: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4f36e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4f372: 4e5e unlk %fp <== NOT EXECUTED 4f374: 4e75 rts <== NOT EXECUTED ... 0004f378 : Objects_Id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) { 4f378: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4f37c: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 4f380: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4f384: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4f388: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; ISR_Level level; if ( !_Timer_Server ) 4f38c: 4ab9 0006 e2fa tstl 6e2fa <_Timer_Server> <== NOT EXECUTED 4f392: 6606 bnes 4f39a <== NOT EXECUTED 4f394: 700e moveq #14,%d0 <== NOT EXECUTED 4f396: 6000 0090 braw 4f428 <== NOT EXECUTED return RTEMS_INCORRECT_STATE; if ( !routine ) 4f39a: 4a82 tstl %d2 <== NOT EXECUTED 4f39c: 6606 bnes 4f3a4 <== NOT EXECUTED 4f39e: 7009 moveq #9,%d0 <== NOT EXECUTED 4f3a0: 6000 0086 braw 4f428 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( ticks == 0 ) 4f3a4: 4a84 tstl %d4 <== NOT EXECUTED 4f3a6: 6604 bnes 4f3ac <== NOT EXECUTED 4f3a8: 700a moveq #10,%d0 <== NOT EXECUTED 4f3aa: 607c bras 4f428 <== NOT EXECUTED 4f3ac: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f3b0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f3b2: 4879 0006 e2ba pea 6e2ba <_Timer_Information> <== NOT EXECUTED 4f3b8: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_NUMBER; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f3be: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f3c4: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f3c6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f3ca: 6704 beqs 4f3d0 <== NOT EXECUTED 4f3cc: 7004 moveq #4,%d0 <== NOT EXECUTED 4f3ce: 6058 bras 4f428 <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 4f3d0: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4f3d4: 4eb9 0005 334c jsr 5334c <_Watchdog_Remove> <== NOT EXECUTED _ISR_Disable( level ); 4f3da: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4f3e0: 40c1 movew %sr,%d1 <== NOT EXECUTED 4f3e2: 8081 orl %d1,%d0 <== NOT EXECUTED 4f3e4: 46c0 movew %d0,%sr <== NOT EXECUTED 4f3e6: 47f9 0005 1fae lea 51fae <_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 ) { 4f3ec: 588f addql #4,%sp <== NOT EXECUTED 4f3ee: 4aaa 0018 tstl %a2@(24) <== NOT EXECUTED 4f3f2: 6706 beqs 4f3fa <== NOT EXECUTED _ISR_Enable( level ); 4f3f4: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_Enable_dispatch(); 4f3f6: 4e93 jsr %a3@ <== NOT EXECUTED 4f3f8: 602c bras 4f426 <== 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; 4f3fa: 7001 moveq #1,%d0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4f3fc: 2542 002c movel %d2,%a2@(44) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 4f400: 256e 0014 0034 movel %fp@(20),%a2@(52) <== NOT EXECUTED 4f406: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 4f40a: 2543 0030 movel %d3,%a2@(48) <== NOT EXECUTED _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); the_timer->Ticker.initial = ticks; 4f40e: 2544 001c movel %d4,%a2@(28) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f412: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED _ISR_Enable( level ); 4f416: 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 ); 4f418: 2079 0006 e2f6 moveal 6e2f6 <_Timer_Server_schedule_operation>,%a0 <== NOT EXECUTED 4f41e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f420: 4e90 jsr %a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4f422: 4e93 jsr %a3@ <== NOT EXECUTED 4f424: 588f addql #4,%sp <== NOT EXECUTED 4f426: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f428: 4cee 0c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a3 <== NOT EXECUTED 4f42e: 4e5e unlk %fp <== NOT EXECUTED 4f430: 4e75 rts <== NOT EXECUTED ... 0004f434 : Objects_Id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) { 4f434: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4f438: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 4f43c: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4f440: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4f444: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; rtems_interval seconds; if ( !_Timer_Server ) 4f448: 4ab9 0006 e2fa tstl 6e2fa <_Timer_Server> <== NOT EXECUTED 4f44e: 6606 bnes 4f456 <== NOT EXECUTED 4f450: 700e moveq #14,%d0 <== NOT EXECUTED 4f452: 6000 00a4 braw 4f4f8 <== NOT EXECUTED return RTEMS_INCORRECT_STATE; if ( !_TOD_Is_set ) 4f456: 4a39 0006 da2c tstb 6da2c <_TOD_Is_set> <== NOT EXECUTED 4f45c: 6606 bnes 4f464 <== NOT EXECUTED 4f45e: 700b moveq #11,%d0 <== NOT EXECUTED 4f460: 6000 0096 braw 4f4f8 <== NOT EXECUTED return RTEMS_NOT_DEFINED; if ( !routine ) 4f464: 4a84 tstl %d4 <== NOT EXECUTED 4f466: 6606 bnes 4f46e <== NOT EXECUTED 4f468: 7009 moveq #9,%d0 <== NOT EXECUTED 4f46a: 6000 008c braw 4f4f8 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Validate( wall_time ) ) 4f46e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f470: 4eb9 0004 c9e4 jsr 4c9e4 <_TOD_Validate> <== NOT EXECUTED 4f476: 588f addql #4,%sp <== NOT EXECUTED 4f478: 4a00 tstb %d0 <== NOT EXECUTED 4f47a: 677a beqs 4f4f6 <== NOT EXECUTED return RTEMS_INVALID_CLOCK; seconds = _TOD_To_seconds( wall_time ); 4f47c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4f47e: 4eb9 0004 c930 jsr 4c930 <_TOD_To_seconds> <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 4f484: 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 ); 4f486: 2400 movel %d0,%d2 <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 4f488: b0b9 0006 daaa cmpl 6daaa <_TOD_Now>,%d0 <== NOT EXECUTED 4f48e: 6366 blss 4f4f6 <== NOT EXECUTED 4f490: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4f494: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4f496: 4879 0006 e2ba pea 6e2ba <_Timer_Information> <== NOT EXECUTED 4f49c: 4eb9 0005 17cc jsr 517cc <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_CLOCK; the_timer = _Timer_Get( id, &location ); switch ( location ) { 4f4a2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4f4a8: 2440 moveal %d0,%a2 <== NOT EXECUTED 4f4aa: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4f4ae: 6704 beqs 4f4b4 <== NOT EXECUTED 4f4b0: 7004 moveq #4,%d0 <== NOT EXECUTED 4f4b2: 6044 bras 4f4f8 <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 4f4b4: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4f4b8: 4eb9 0005 334c jsr 5334c <_Watchdog_Remove> <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; 4f4be: 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; 4f4c2: 94b9 0006 daaa subl 6daaa <_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; 4f4c8: 7003 moveq #3,%d0 <== NOT EXECUTED the_watchdog->user_data = user_data; 4f4ca: 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 ); 4f4d0: 2079 0006 e2f6 moveal 6e2f6 <_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; 4f4d6: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4f4da: 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; 4f4de: 2542 001c movel %d2,%a2@(28) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4f4e2: 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 ); 4f4e6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f4e8: 4e90 jsr %a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4f4ea: 4eb9 0005 1fae jsr 51fae <_Thread_Enable_dispatch> <== NOT EXECUTED 4f4f0: 508f addql #8,%sp <== NOT EXECUTED 4f4f2: 4280 clrl %d0 <== NOT EXECUTED 4f4f4: 6002 bras 4f4f8 <== NOT EXECUTED return RTEMS_SUCCESSFUL; 4f4f6: 7014 moveq #20,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4f4f8: 4cee 041c ffec moveml %fp@(-20),%d2-%d4/%a2 <== NOT EXECUTED 4f4fe: 4e5e unlk %fp <== NOT EXECUTED 4f500: 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 7d10 movel 57d10 ,%d0 <== NOT EXECUTED 41ea0: 2200 movel %d0,%d1 <== NOT EXECUTED 41ea2: 5281 addql #1,%d1 <== NOT EXECUTED 41ea4: 23c1 0005 7d10 movel %d1,57d10 <== 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 7e7c movel 57e7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 41eb4: 5280 addql #1,%d0 <== NOT EXECUTED 41eb6: 23c0 0005 7e7c movel %d0,57e7c <_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 7d10 cmpl 57d10 ,%d0 <== NOT EXECUTED 41ec4: 6d00 0148 bltw 4200e <== NOT EXECUTED return 0; } (void) fflush(stdout); /* in case stdout/stderr same */ 41ec8: 2079 0005 6824 moveal 56824 <_impure_ptr>,%a0 <== NOT EXECUTED 41ece: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 41ed2: 4eb9 0004 ba76 jsr 4ba76 <== 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 b794 jsr 4b794 <__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 6824 moveal 56824 <_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 f3aa jsr 4f3aa <== 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 4efc pea 54efc <== NOT EXECUTED 41f22: 4eb9 0004 8c04 jsr 48c04 <== 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 6824 moveal 56824 <_impure_ptr>,%a0 <== NOT EXECUTED 41f30: 4879 0005 4bf0 pea 54bf0 <== NOT EXECUTED 41f36: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 41f3a: 4eb9 0004 bdf0 jsr 4bdf0 <== 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 cc8c lea 4cc8c ,%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 6824 moveal 56824 <_impure_ptr>,%a0 <== NOT EXECUTED 41f6c: 4879 0005 4bfe pea 54bfe <== NOT EXECUTED 41f72: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 41f76: 4eb9 0004 bdf0 jsr 4bdf0 <== 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 6824 moveal 56824 <_impure_ptr>,%a0 <== NOT EXECUTED 41f8e: 4879 0005 4c0b pea 54c0b <== NOT EXECUTED 41f94: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 41f98: 4eb9 0004 bdf0 jsr 4bdf0 <== 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 5401 pea 55401 <== NOT EXECUTED 41fac: 2079 0005 6824 moveal 56824 <_impure_ptr>,%a0 <== NOT EXECUTED 41fb2: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 41fb6: 4eb9 0004 bdf0 jsr 4bdf0 <== NOT EXECUTED (void) fflush(stderr); 41fbc: 2079 0005 6824 moveal 56824 <_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 ba76 jsr 4ba76 <== 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 4c1f pea 54c1f <== 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 4c34 pea 54c34 <== NOT EXECUTED 42004: 42a7 clrl %sp@- <== NOT EXECUTED 42006: 4e90 jsr %a0@ <== NOT EXECUTED abort(); 42008: 4eb9 0004 b764 jsr 4b764 <== 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 000459a0 : */ bool rtems_workspace_allocate( uintptr_t bytes, void **pointer ) { 459a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 459a4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 459a6: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 459aa: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED void *ptr; /* * check the arguments */ if ( !pointer ) 459ae: 4a8a tstl %a2 <== NOT EXECUTED 459b0: 671e beqs 459d0 <== NOT EXECUTED return false; if ( !bytes ) 459b2: 4a80 tstl %d0 <== NOT EXECUTED 459b4: 671a beqs 459d0 <== NOT EXECUTED return false; /* * Allocate the memory */ ptr = _Protected_heap_Allocate( &_Workspace_Area, (intptr_t) bytes ); 459b6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 459b8: 4879 0005 a666 pea 5a666 <_Workspace_Area> <== NOT EXECUTED 459be: 4eb9 0004 6dd8 jsr 46dd8 <_Protected_heap_Allocate> <== NOT EXECUTED if (!ptr) 459c4: 508f addql #8,%sp <== NOT EXECUTED 459c6: 4a80 tstl %d0 <== NOT EXECUTED 459c8: 6706 beqs 459d0 <== NOT EXECUTED return false; *pointer = ptr; 459ca: 2480 movel %d0,%a2@ <== NOT EXECUTED 459cc: 7001 moveq #1,%d0 <== NOT EXECUTED 459ce: 6002 bras 459d2 <== NOT EXECUTED return true; 459d0: 4200 clrb %d0 <== NOT EXECUTED } 459d2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 459d6: 4e5e unlk %fp <== NOT EXECUTED 459d8: 4e75 rts 00045988 : * _Workspace_Allocate */ bool rtems_workspace_free( void *pointer ) { 45988: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Protected_heap_Free( &_Workspace_Area, pointer ); 4598c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45990: 4879 0005 a666 pea 5a666 <_Workspace_Area> <== NOT EXECUTED 45996: 4eb9 0004 6e10 jsr 46e10 <_Protected_heap_Free> <== NOT EXECUTED } 4599c: 4e5e unlk %fp <== NOT EXECUTED 4599e: 4e75 rts 000459da : #include /* for memset */ bool rtems_workspace_get_information( Heap_Information_block *the_info ) { 459da: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 459de: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !the_info ) 459e2: 6710 beqs 459f4 <== NOT EXECUTED return false; return _Protected_heap_Get_information( &_Workspace_Area, the_info ); 459e4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 459e6: 4879 0005 a666 pea 5a666 <_Workspace_Area> <== NOT EXECUTED 459ec: 4eb9 0004 6e48 jsr 46e48 <_Protected_heap_Get_information> <== NOT EXECUTED 459f2: 508f addql #8,%sp <== NOT EXECUTED } 459f4: 4e5e unlk %fp <== NOT EXECUTED 459f6: 4e75 rts 0005b508 : /* * Extract an integer value from the database */ static int scanInt(FILE *fp, int *val) { 5b508: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5b50c: 48d7 0c7c moveml %d2-%d6/%a2-%a3,%sp@ <== NOT EXECUTED 5b510: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 5b514: 4282 clrl %d2 <== NOT EXECUTED 5b516: 2a3c 7fff ffff movel #2147483647,%d5 <== NOT EXECUTED 5b51c: 4283 clrl %d3 <== NOT EXECUTED unsigned int limit = INT_MAX; int sign = 0; int d; for (;;) { c = getc(fp); 5b51e: 47f9 0006 cc68 lea 6cc68 <__srget_r>,%a3 <== NOT EXECUTED 5b524: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 5b528: 5380 subql #1,%d0 <== NOT EXECUTED 5b52a: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 5b52e: 6c10 bges 5b540 <== NOT EXECUTED 5b530: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5b532: 2f39 0007 f4ac movel 7f4ac <_impure_ptr>,%sp@- <== NOT EXECUTED 5b538: 4e93 jsr %a3@ <== NOT EXECUTED 5b53a: 508f addql #8,%sp <== NOT EXECUTED 5b53c: 2200 movel %d0,%d1 <== NOT EXECUTED 5b53e: 600a bras 5b54a <== NOT EXECUTED 5b540: 2052 moveal %a2@,%a0 <== NOT EXECUTED 5b542: 4281 clrl %d1 <== NOT EXECUTED 5b544: 1210 moveb %a0@,%d1 <== NOT EXECUTED 5b546: 5288 addql #1,%a0 <== NOT EXECUTED 5b548: 2488 movel %a0,%a2@ <== NOT EXECUTED if (c == ':') 5b54a: 703a moveq #58,%d0 <== NOT EXECUTED 5b54c: b081 cmpl %d1,%d0 <== NOT EXECUTED 5b54e: 6750 beqs 5b5a0 <== NOT EXECUTED break; if (sign == 0) { 5b550: 4a83 tstl %d3 <== NOT EXECUTED 5b552: 660e bnes 5b562 <== NOT EXECUTED if (c == '-') { 5b554: 7c2d moveq #45,%d6 <== NOT EXECUTED 5b556: bc81 cmpl %d1,%d6 <== NOT EXECUTED 5b558: 6606 bnes 5b560 <== NOT EXECUTED sign = -1; limit++; 5b55a: 5285 addql #1,%d5 <== NOT EXECUTED 5b55c: 76ff moveq #-1,%d3 <== NOT EXECUTED 5b55e: 60c4 bras 5b524 <== NOT EXECUTED continue; 5b560: 7601 moveq #1,%d3 <== NOT EXECUTED } sign = 1; } if (!isdigit(c)) 5b562: 2079 0007 f4a0 moveal 7f4a0 <__ctype_ptr>,%a0 <== NOT EXECUTED 5b568: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 5b56c: 49c0 extbl %d0 <== NOT EXECUTED 5b56e: 44c0 movew %d0,%ccr <== NOT EXECUTED 5b570: 6640 bnes 5b5b2 <== NOT EXECUTED return 0; d = c - '0'; if ((i > (limit / 10)) 5b572: 2005 movel %d5,%d0 <== NOT EXECUTED 5b574: 7c0a moveq #10,%d6 <== NOT EXECUTED 5b576: 4c46 0004 remul %d6,%d4,%d0 <== NOT EXECUTED 5b57a: 4c46 0000 remul %d6,%d0,%d0 <== NOT EXECUTED 5b57e: b082 cmpl %d2,%d0 <== NOT EXECUTED 5b580: 6530 bcss 5b5b2 <== NOT EXECUTED } sign = 1; } if (!isdigit(c)) return 0; d = c - '0'; 5b582: 0681 ffff ffd0 addil #-48,%d1 <== NOT EXECUTED if ((i > (limit / 10)) 5b588: b082 cmpl %d2,%d0 <== NOT EXECUTED 5b58a: 6604 bnes 5b590 <== NOT EXECUTED 5b58c: b881 cmpl %d1,%d4 <== NOT EXECUTED 5b58e: 6522 bcss 5b5b2 <== NOT EXECUTED || ((i == (limit / 10)) && (d > (limit % 10)))) return 0; i = i * 10 + d; 5b590: 2002 movel %d2,%d0 <== NOT EXECUTED 5b592: e788 lsll #3,%d0 <== NOT EXECUTED 5b594: 2240 moveal %d0,%a1 <== NOT EXECUTED 5b596: 41f1 2a00 lea %a1@(00000000,%d2:l:2),%a0 <== NOT EXECUTED 5b59a: 2401 movel %d1,%d2 <== NOT EXECUTED 5b59c: d488 addl %a0,%d2 <== NOT EXECUTED 5b59e: 6084 bras 5b524 <== NOT EXECUTED } if (sign == 0) 5b5a0: 4a83 tstl %d3 <== NOT EXECUTED 5b5a2: 670e beqs 5b5b2 <== NOT EXECUTED return 0; *val = i * sign; 5b5a4: 4c02 3800 mulsl %d2,%d3 <== NOT EXECUTED 5b5a8: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 5b5ac: 2083 movel %d3,%a0@ <== NOT EXECUTED 5b5ae: 7001 moveq #1,%d0 <== NOT EXECUTED 5b5b0: 6002 bras 5b5b4 <== NOT EXECUTED return 1; 5b5b2: 4280 clrl %d0 <== NOT EXECUTED } 5b5b4: 4cee 0c7c ffe4 moveml %fp@(-28),%d2-%d6/%a2-%a3 <== NOT EXECUTED 5b5ba: 4e5e unlk %fp <== NOT EXECUTED 5b5bc: 4e75 rts 0005b5be : /* * Extract a string value from the database */ static int scanString(FILE *fp, char **name, char **bufp, size_t *nleft, int nlFlag) { 5b5be: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 5b5c2: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 5b5c6: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED int c; *name = *bufp; 5b5ca: 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) { 5b5ce: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 5b5d2: 286e 0014 moveal %fp@(20),%a4 <== NOT EXECUTED 5b5d6: 242e 0018 movel %fp@(24),%d2 <== NOT EXECUTED int c; *name = *bufp; for (;;) { c = getc(fp); 5b5da: 4bf9 0006 cc68 lea 6cc68 <__srget_r>,%a5 <== NOT EXECUTED static int scanString(FILE *fp, char **name, char **bufp, size_t *nleft, int nlFlag) { int c; *name = *bufp; 5b5e0: 2092 movel %a2@,%a0@ <== NOT EXECUTED for (;;) { c = getc(fp); 5b5e2: 202b 0004 movel %a3@(4),%d0 <== NOT EXECUTED 5b5e6: 5380 subql #1,%d0 <== NOT EXECUTED 5b5e8: 2740 0004 movel %d0,%a3@(4) <== NOT EXECUTED 5b5ec: 6c0e bges 5b5fc <== NOT EXECUTED 5b5ee: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b5f0: 2f39 0007 f4ac movel 7f4ac <_impure_ptr>,%sp@- <== NOT EXECUTED 5b5f6: 4e95 jsr %a5@ <== NOT EXECUTED 5b5f8: 508f addql #8,%sp <== NOT EXECUTED 5b5fa: 600a bras 5b606 <== NOT EXECUTED 5b5fc: 2053 moveal %a3@,%a0 <== NOT EXECUTED 5b5fe: 4280 clrl %d0 <== NOT EXECUTED 5b600: 1010 moveb %a0@,%d0 <== NOT EXECUTED 5b602: 5288 addql #1,%a0 <== NOT EXECUTED 5b604: 2688 movel %a0,%a3@ <== NOT EXECUTED if (c == ':') { 5b606: 723a moveq #58,%d1 <== NOT EXECUTED 5b608: b280 cmpl %d0,%d1 <== NOT EXECUTED 5b60a: 6606 bnes 5b612 <== NOT EXECUTED if (nlFlag) 5b60c: 4a82 tstl %d2 <== NOT EXECUTED 5b60e: 6724 beqs 5b634 <== NOT EXECUTED 5b610: 602e bras 5b640 <== NOT EXECUTED return 0; break; } if (c == '\n') { 5b612: 720a moveq #10,%d1 <== NOT EXECUTED 5b614: b280 cmpl %d0,%d1 <== NOT EXECUTED 5b616: 6606 bnes 5b61e <== NOT EXECUTED if (!nlFlag) 5b618: 4a82 tstl %d2 <== NOT EXECUTED 5b61a: 6618 bnes 5b634 <== NOT EXECUTED 5b61c: 6022 bras 5b640 <== NOT EXECUTED return 0; break; } if (c == EOF) 5b61e: 72ff moveq #-1,%d1 <== NOT EXECUTED 5b620: b280 cmpl %d0,%d1 <== NOT EXECUTED 5b622: 671c beqs 5b640 <== NOT EXECUTED return 0; if (*nleft < 2) 5b624: 7201 moveq #1,%d1 <== NOT EXECUTED 5b626: b294 cmpl %a4@,%d1 <== NOT EXECUTED 5b628: 6416 bccs 5b640 <== NOT EXECUTED return 0; **bufp = c; 5b62a: 2052 moveal %a2@,%a0 <== NOT EXECUTED 5b62c: 1080 moveb %d0,%a0@ <== NOT EXECUTED ++(*bufp); 5b62e: 5292 addql #1,%a2@ <== NOT EXECUTED --(*nleft); 5b630: 5394 subql #1,%a4@ <== NOT EXECUTED 5b632: 60ae bras 5b5e2 <== NOT EXECUTED } **bufp = '\0'; 5b634: 2052 moveal %a2@,%a0 <== NOT EXECUTED 5b636: 4210 clrb %a0@ <== NOT EXECUTED ++(*bufp); 5b638: 5292 addql #1,%a2@ <== NOT EXECUTED --(*nleft); 5b63a: 5394 subql #1,%a4@ <== NOT EXECUTED 5b63c: 7001 moveq #1,%d0 <== NOT EXECUTED 5b63e: 6002 bras 5b642 <== NOT EXECUTED return 1; 5b640: 4280 clrl %d0 <== NOT EXECUTED } 5b642: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 5b648: 4e5e unlk %fp <== NOT EXECUTED 5b64a: 4e75 rts 00044f08 : scandir( const char *dirname, struct dirent ***namelist, int (*select)(struct dirent *), int (*dcomp)(const struct dirent **, const struct dirent **)) { 44f08: 4e56 ff8c linkw %fp,#-116 <== NOT EXECUTED 44f0c: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 44f10: 2e2e 0010 movel %fp@(16),%d7 <== NOT EXECUTED struct stat stb; long arraysz; DIR *dirp = NULL; int i; if ((dirp = opendir(dirname)) == NULL) 44f14: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44f18: 4eb9 0004 47fc jsr 447fc <== NOT EXECUTED 44f1e: 588f addql #4,%sp <== NOT EXECUTED 44f20: 2a40 moveal %d0,%a5 <== NOT EXECUTED 44f22: 4a80 tstl %d0 <== NOT EXECUTED 44f24: 6700 016a beqw 45090 <== NOT EXECUTED return(-1); if (fstat(dirp->dd_fd, &stb) < 0) 44f28: 240e movel %fp,%d2 <== NOT EXECUTED 44f2a: 0682 ffff ffb6 addil #-74,%d2 <== NOT EXECUTED 44f30: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44f32: 47f9 0004 b444 lea 4b444 ,%a3 <== NOT EXECUTED 44f38: 2f15 movel %a5@,%sp@- <== NOT EXECUTED 44f3a: 4e93 jsr %a3@ <== NOT EXECUTED 44f3c: 508f addql #8,%sp <== NOT EXECUTED 44f3e: 4a80 tstl %d0 <== NOT EXECUTED 44f40: 6d00 011a bltw 4505c <== NOT EXECUTED /* * estimate the array size by taking the size of the directory file * and dividing it by a multiple of the minimum size entry. */ arraysz = (stb.st_size / 24); 44f44: 202e ffd4 movel %fp@(-44),%d0 <== NOT EXECUTED 44f48: 7618 moveq #24,%d3 <== NOT EXECUTED 44f4a: 4c43 0800 remsl %d3,%d0,%d0 <== NOT EXECUTED 44f4e: 2600 movel %d0,%d3 <== NOT EXECUTED names = (struct dirent **)malloc(arraysz * sizeof(struct dirent *)); 44f50: e588 lsll #2,%d0 <== NOT EXECUTED 44f52: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44f54: 45f9 0004 4078 lea 44078 ,%a2 <== NOT EXECUTED 44f5a: 4e92 jsr %a2@ <== NOT EXECUTED if (names == NULL) 44f5c: 588f addql #4,%sp <== NOT EXECUTED /* * estimate the array size by taking the size of the directory file * and dividing it by a multiple of the minimum size entry. */ arraysz = (stb.st_size / 24); names = (struct dirent **)malloc(arraysz * sizeof(struct dirent *)); 44f5e: 2840 moveal %d0,%a4 <== NOT EXECUTED if (names == NULL) 44f60: 4a80 tstl %d0 <== NOT EXECUTED 44f62: 6700 00fa beqw 4505e <== NOT EXECUTED 44f66: 4282 clrl %d2 <== NOT EXECUTED goto cleanup_and_bail; while ((d = readdir(dirp)) != NULL) { 44f68: 2c3c 0004 4d2c movel #281900,%d6 <== NOT EXECUTED if (p == NULL) goto cleanup_and_bail; p->d_ino = d->d_ino; p->d_reclen = d->d_reclen; p->d_namlen = d->d_namlen; strncpy(p->d_name, d->d_name, p->d_namlen + 1); 44f6e: 2a3c 0005 0898 movel #329880,%d5 <== NOT EXECUTED */ if (++nitems >= arraysz) { if (fstat(dirp->dd_fd, &stb) < 0) goto cleanup_and_bail; /* just might have grown */ arraysz = stb.st_size / 12; names = (struct dirent **)realloc((char *)names, 44f74: 283c 0004 b6c4 movel #308932,%d4 <== NOT EXECUTED 44f7a: 6000 009a braw 45016 <== NOT EXECUTED names = (struct dirent **)malloc(arraysz * sizeof(struct dirent *)); if (names == NULL) goto cleanup_and_bail; while ((d = readdir(dirp)) != NULL) { if (select != NULL && !(*select)(d)) 44f7e: 4a87 tstl %d7 <== NOT EXECUTED 44f80: 670e beqs 44f90 <== NOT EXECUTED 44f82: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44f84: 2047 moveal %d7,%a0 <== NOT EXECUTED 44f86: 4e90 jsr %a0@ <== NOT EXECUTED 44f88: 588f addql #4,%sp <== NOT EXECUTED 44f8a: 4a80 tstl %d0 <== NOT EXECUTED 44f8c: 6700 0088 beqw 45016 <== NOT EXECUTED continue; /* just selected names */ /* * Make a minimum size copy of the data */ p = (struct dirent *)malloc(DIRSIZ(d)); 44f90: 4280 clrl %d0 <== NOT EXECUTED 44f92: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 44f96: 72fc moveq #-4,%d1 <== NOT EXECUTED 44f98: 5880 addql #4,%d0 <== NOT EXECUTED 44f9a: c081 andl %d1,%d0 <== NOT EXECUTED 44f9c: 2040 moveal %d0,%a0 <== NOT EXECUTED 44f9e: 4868 000c pea %a0@(12) <== NOT EXECUTED 44fa2: 4eb9 0004 4078 jsr 44078 <== NOT EXECUTED if (p == NULL) 44fa8: 588f addql #4,%sp <== NOT EXECUTED if (select != NULL && !(*select)(d)) continue; /* just selected names */ /* * Make a minimum size copy of the data */ p = (struct dirent *)malloc(DIRSIZ(d)); 44faa: 2640 moveal %d0,%a3 <== NOT EXECUTED if (p == NULL) 44fac: 4a80 tstl %d0 <== NOT EXECUTED 44fae: 6700 00b0 beqw 45060 <== NOT EXECUTED goto cleanup_and_bail; p->d_ino = d->d_ino; 44fb2: 2692 movel %a2@,%a3@ <== NOT EXECUTED p->d_reclen = d->d_reclen; p->d_namlen = d->d_namlen; 44fb4: 4280 clrl %d0 <== NOT EXECUTED 44fb6: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 44fba: 3740 000a movew %d0,%a3@(10) <== NOT EXECUTED strncpy(p->d_name, d->d_name, p->d_namlen + 1); 44fbe: 2040 moveal %d0,%a0 <== NOT EXECUTED */ p = (struct dirent *)malloc(DIRSIZ(d)); if (p == NULL) goto cleanup_and_bail; p->d_ino = d->d_ino; p->d_reclen = d->d_reclen; 44fc0: 376a 0008 0008 movew %a2@(8),%a3@(8) <== NOT EXECUTED p->d_namlen = d->d_namlen; strncpy(p->d_name, d->d_name, p->d_namlen + 1); 44fc6: 4868 0001 pea %a0@(1) <== NOT EXECUTED 44fca: 2045 moveal %d5,%a0 <== NOT EXECUTED 44fcc: 486a 000c pea %a2@(12) <== NOT EXECUTED /* * Check to make sure the array has space left and * realloc the maximum size. */ if (++nitems >= arraysz) { 44fd0: 5282 addql #1,%d2 <== NOT EXECUTED if (p == NULL) goto cleanup_and_bail; p->d_ino = d->d_ino; p->d_reclen = d->d_reclen; p->d_namlen = d->d_namlen; strncpy(p->d_name, d->d_name, p->d_namlen + 1); 44fd2: 486b 000c pea %a3@(12) <== NOT EXECUTED 44fd6: 4e90 jsr %a0@ <== NOT EXECUTED /* * Check to make sure the array has space left and * realloc the maximum size. */ if (++nitems >= arraysz) { 44fd8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44fde: b682 cmpl %d2,%d3 <== NOT EXECUTED 44fe0: 6230 bhis 45012 <== NOT EXECUTED if (fstat(dirp->dd_fd, &stb) < 0) 44fe2: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 44fe6: 2f15 movel %a5@,%sp@- <== NOT EXECUTED 44fe8: 4eb9 0004 b444 jsr 4b444 <== NOT EXECUTED 44fee: 508f addql #8,%sp <== NOT EXECUTED 44ff0: 4a80 tstl %d0 <== NOT EXECUTED 44ff2: 6d6c blts 45060 <== NOT EXECUTED goto cleanup_and_bail; /* just might have grown */ arraysz = stb.st_size / 12; 44ff4: 262e ffd4 movel %fp@(-44),%d3 <== NOT EXECUTED 44ff8: 720c moveq #12,%d1 <== NOT EXECUTED 44ffa: 4c41 3803 remsl %d1,%d3,%d3 <== NOT EXECUTED names = (struct dirent **)realloc((char *)names, 44ffe: 2003 movel %d3,%d0 <== NOT EXECUTED 45000: e588 lsll #2,%d0 <== NOT EXECUTED 45002: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45004: 2044 moveal %d4,%a0 <== NOT EXECUTED 45006: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45008: 4e90 jsr %a0@ <== NOT EXECUTED arraysz * sizeof(struct dirent *)); if (names == NULL) 4500a: 508f addql #8,%sp <== NOT EXECUTED */ if (++nitems >= arraysz) { if (fstat(dirp->dd_fd, &stb) < 0) goto cleanup_and_bail; /* just might have grown */ arraysz = stb.st_size / 12; names = (struct dirent **)realloc((char *)names, 4500c: 2840 moveal %d0,%a4 <== NOT EXECUTED arraysz * sizeof(struct dirent *)); if (names == NULL) 4500e: 4a80 tstl %d0 <== NOT EXECUTED 45010: 674e beqs 45060 <== NOT EXECUTED goto cleanup_and_bail; } names[nitems-1] = p; 45012: 298b 2cfc movel %a3,%a4@(fffffffc,%d2:l:4) <== NOT EXECUTED arraysz = (stb.st_size / 24); names = (struct dirent **)malloc(arraysz * sizeof(struct dirent *)); if (names == NULL) goto cleanup_and_bail; while ((d = readdir(dirp)) != NULL) { 45016: 2f0d movel %a5,%sp@- <== NOT EXECUTED 45018: 2046 moveal %d6,%a0 <== NOT EXECUTED 4501a: 4e90 jsr %a0@ <== NOT EXECUTED 4501c: 588f addql #4,%sp <== NOT EXECUTED 4501e: 2440 moveal %d0,%a2 <== NOT EXECUTED 45020: 4a80 tstl %d0 <== NOT EXECUTED 45022: 6600 ff5a bnew 44f7e <== NOT EXECUTED if (names == NULL) goto cleanup_and_bail; } names[nitems-1] = p; } closedir(dirp); 45026: 2f0d movel %a5,%sp@- <== NOT EXECUTED 45028: 4eb9 0004 3400 jsr 43400 <== NOT EXECUTED if (nitems && dcomp != NULL){ 4502e: 588f addql #4,%sp <== NOT EXECUTED 45030: 4a82 tstl %d2 <== NOT EXECUTED 45032: 671e beqs 45052 <== NOT EXECUTED 45034: 4aae 0014 tstl %fp@(20) <== NOT EXECUTED 45038: 6718 beqs 45052 <== NOT EXECUTED qsort(names, nitems, sizeof(struct dirent *), 4503a: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4503e: 4878 0004 pea 4 <== NOT EXECUTED 45042: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45044: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45046: 4eb9 0004 f5a0 jsr 4f5a0 <== NOT EXECUTED 4504c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED (int (*)(const void *, const void *)) dcomp); } *namelist = names; 45052: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 45056: 208c movel %a4,%a0@ <== NOT EXECUTED return(nitems); 45058: 2002 movel %d2,%d0 <== NOT EXECUTED 4505a: 6036 bras 45092 <== NOT EXECUTED 4505c: 99cc subal %a4,%a4 <== NOT EXECUTED 4505e: 4282 clrl %d2 <== NOT EXECUTED cleanup_and_bail: if ( dirp ) closedir( dirp ); 45060: 2f0d movel %a5,%sp@- <== NOT EXECUTED 45062: 4eb9 0004 3400 jsr 43400 <== NOT EXECUTED if ( names ) { 45068: 588f addql #4,%sp <== NOT EXECUTED 4506a: 4a8c tstl %a4 <== NOT EXECUTED 4506c: 6722 beqs 45090 <== NOT EXECUTED 4506e: 264c moveal %a4,%a3 <== NOT EXECUTED 45070: 95ca subal %a2,%a2 <== NOT EXECUTED 45072: 4bf9 0004 3a3c lea 43a3c ,%a5 <== NOT EXECUTED 45078: 6008 bras 45082 <== NOT EXECUTED for (i=0; i < nitems; i++ ) free( names[i] ); 4507a: 2f1b movel %a3@+,%sp@- <== NOT EXECUTED 4507c: 4e95 jsr %a5@ <== NOT EXECUTED if ( dirp ) closedir( dirp ); if ( names ) { for (i=0; i < nitems; i++ ) 4507e: 528a addql #1,%a2 <== NOT EXECUTED 45080: 588f addql #4,%sp <== NOT EXECUTED 45082: b48a cmpl %a2,%d2 <== NOT EXECUTED 45084: 62f4 bhis 4507a <== NOT EXECUTED free( names[i] ); free( names ); 45086: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45088: 4eb9 0004 3a3c jsr 43a3c <== NOT EXECUTED 4508e: 588f addql #4,%sp <== NOT EXECUTED 45090: 70ff moveq #-1,%d0 <== NOT EXECUTED } return(-1); } 45092: 4cee 3cfc ff8c moveml %fp@(-116),%d2-%d7/%a2-%a5 <== NOT EXECUTED 45098: 4e5e unlk %fp <== NOT EXECUTED 4509a: 4e75 rts 0005b64c : FILE *fp, struct group *grp, char *buffer, size_t bufsize ) { 5b64c: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5b650: 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) 5b654: 42a7 clrl %sp@- <== NOT EXECUTED 5b656: 280e movel %fp,%d4 <== NOT EXECUTED 5b658: 0684 0000 0014 addil #20,%d4 <== NOT EXECUTED 5b65e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b660: 260e movel %fp,%d3 <== NOT EXECUTED 5b662: 0683 0000 0010 addil #16,%d3 <== NOT EXECUTED 5b668: 2f03 movel %d3,%sp@- <== NOT EXECUTED FILE *fp, struct group *grp, char *buffer, size_t bufsize ) { 5b66a: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 5b66e: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED int grgid; char *grmem, *cp; int memcount; if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0) 5b672: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5b674: 45fa ff48 lea %pc@(5b5be ),%a2 <== NOT EXECUTED 5b678: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b67a: 4e92 jsr %a2@ <== NOT EXECUTED 5b67c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b682: 4a80 tstl %d0 <== NOT EXECUTED 5b684: 6700 00ca beqw 5b750 <== NOT EXECUTED 5b688: 42a7 clrl %sp@- <== NOT EXECUTED 5b68a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b68c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b68e: 486b 0004 pea %a3@(4) <== NOT EXECUTED 5b692: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b694: 4e92 jsr %a2@ <== NOT EXECUTED 5b696: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b69c: 4a80 tstl %d0 <== NOT EXECUTED 5b69e: 6700 00b0 beqw 5b750 <== NOT EXECUTED 5b6a2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5b6a6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b6a8: 4eba fe5e jsr %pc@(5b508 ) <== NOT EXECUTED 5b6ac: 508f addql #8,%sp <== NOT EXECUTED 5b6ae: 4a80 tstl %d0 <== NOT EXECUTED 5b6b0: 6700 009e beqw 5b750 <== NOT EXECUTED 5b6b4: 4878 0001 pea 1 <== NOT EXECUTED 5b6b8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b6ba: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b6bc: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 5b6c0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b6c2: 4e92 jsr %a2@ <== NOT EXECUTED 5b6c4: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b6ca: 4a80 tstl %d0 <== NOT EXECUTED 5b6cc: 6700 0082 beqw 5b750 <== NOT EXECUTED grp->gr_gid = grgid; /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b6d0: 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; 5b6d4: 376e fffe 0008 movew %fp@(-2),%a3@(8) <== NOT EXECUTED /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b6da: 2049 moveal %a1,%a0 <== NOT EXECUTED 5b6dc: 7201 moveq #1,%d1 <== NOT EXECUTED 5b6de: 600a bras 5b6ea <== NOT EXECUTED if(*cp == ',') 5b6e0: 702c moveq #44,%d0 <== NOT EXECUTED 5b6e2: b082 cmpl %d2,%d0 <== NOT EXECUTED 5b6e4: 6602 bnes 5b6e8 <== NOT EXECUTED memcount++; 5b6e6: 5281 addql #1,%d1 <== NOT EXECUTED grp->gr_gid = grgid; /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b6e8: 5288 addql #1,%a0 <== NOT EXECUTED 5b6ea: 1010 moveb %a0@,%d0 <== NOT EXECUTED if(*cp == ',') 5b6ec: 1400 moveb %d0,%d2 <== NOT EXECUTED 5b6ee: 49c2 extbl %d2 <== NOT EXECUTED grp->gr_gid = grgid; /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b6f0: 4a00 tstb %d0 <== NOT EXECUTED 5b6f2: 66ec bnes 5b6e0 <== NOT EXECUTED } /* * Hack to produce (hopefully) a suitably-aligned array of pointers */ if (bufsize < (((memcount+1)*sizeof(char *)) + 15)) 5b6f4: e589 lsll #2,%d1 <== NOT EXECUTED 5b6f6: 2001 movel %d1,%d0 <== NOT EXECUTED 5b6f8: 0680 0000 0013 addil #19,%d0 <== NOT EXECUTED 5b6fe: b0ae 0014 cmpl %fp@(20),%d0 <== NOT EXECUTED 5b702: 624c bhis 5b750 <== NOT EXECUTED return 0; grp->gr_mem = (char **)(((uintptr_t)buffer + 15) & ~15); 5b704: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 5b708: 72f0 moveq #-16,%d1 <== NOT EXECUTED 5b70a: 0680 0000 000f addil #15,%d0 <== NOT EXECUTED 5b710: c081 andl %d1,%d0 <== NOT EXECUTED /* * Fill in pointer array */ grp->gr_mem[0] = grmem; 5b712: 2040 moveal %d0,%a0 <== NOT EXECUTED 5b714: 2089 movel %a1,%a0@ <== NOT EXECUTED for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b716: 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); 5b71a: 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++) { 5b71e: 7201 moveq #1,%d1 <== NOT EXECUTED 5b720: 6018 bras 5b73a <== NOT EXECUTED if(*cp == ',') { 5b722: 702c moveq #44,%d0 <== NOT EXECUTED 5b724: b082 cmpl %d2,%d0 <== NOT EXECUTED 5b726: 6610 bnes 5b738 <== NOT EXECUTED *cp = '\0'; 5b728: 4211 clrb %a1@ <== NOT EXECUTED grp->gr_mem[memcount++] = cp + 1; 5b72a: 206b 000a moveal %a3@(10),%a0 <== NOT EXECUTED 5b72e: 2009 movel %a1,%d0 <== NOT EXECUTED 5b730: 5280 addql #1,%d0 <== NOT EXECUTED 5b732: 2180 1c00 movel %d0,%a0@(00000000,%d1:l:4) <== NOT EXECUTED 5b736: 5281 addql #1,%d1 <== NOT EXECUTED /* * Fill in pointer array */ grp->gr_mem[0] = grmem; for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b738: 5289 addql #1,%a1 <== NOT EXECUTED 5b73a: 1011 moveb %a1@,%d0 <== NOT EXECUTED if(*cp == ',') { 5b73c: 1400 moveb %d0,%d2 <== NOT EXECUTED 5b73e: 49c2 extbl %d2 <== NOT EXECUTED /* * Fill in pointer array */ grp->gr_mem[0] = grmem; for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 5b740: 4a00 tstb %d0 <== NOT EXECUTED 5b742: 66de bnes 5b722 <== NOT EXECUTED if(*cp == ',') { *cp = '\0'; grp->gr_mem[memcount++] = cp + 1; } } grp->gr_mem[memcount] = NULL; 5b744: 206b 000a moveal %a3@(10),%a0 <== NOT EXECUTED 5b748: 42b0 1c00 clrl %a0@(00000000,%d1:l:4) <== NOT EXECUTED 5b74c: 7001 moveq #1,%d0 <== NOT EXECUTED 5b74e: 6002 bras 5b752 <== NOT EXECUTED return 1; 5b750: 4280 clrl %d0 <== NOT EXECUTED } 5b752: 4cee 0c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a3 <== NOT EXECUTED 5b758: 4e5e unlk %fp <== NOT EXECUTED 5b75a: 4e75 rts 0005b798 : FILE *fp, struct passwd *pwd, char *buffer, size_t bufsize ) { 5b798: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 5b79c: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED int pwuid, pwgid; if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0) 5b7a0: 42a7 clrl %sp@- <== NOT EXECUTED 5b7a2: 280e movel %fp,%d4 <== NOT EXECUTED 5b7a4: 0684 0000 0014 addil #20,%d4 <== NOT EXECUTED 5b7aa: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b7ac: 260e movel %fp,%d3 <== NOT EXECUTED 5b7ae: 0683 0000 0010 addil #16,%d3 <== NOT EXECUTED 5b7b4: 2f03 movel %d3,%sp@- <== NOT EXECUTED FILE *fp, struct passwd *pwd, char *buffer, size_t bufsize ) { 5b7b6: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 5b7ba: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED int pwuid, pwgid; if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0) 5b7be: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5b7c0: 49fa fdfc lea %pc@(5b5be ),%a4 <== NOT EXECUTED 5b7c4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b7c6: 4e94 jsr %a4@ <== NOT EXECUTED 5b7c8: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b7ce: 4a80 tstl %d0 <== NOT EXECUTED 5b7d0: 6700 00b0 beqw 5b882 <== NOT EXECUTED 5b7d4: 42a7 clrl %sp@- <== NOT EXECUTED 5b7d6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b7d8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b7da: 486a 0004 pea %a2@(4) <== NOT EXECUTED 5b7de: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b7e0: 4e94 jsr %a4@ <== NOT EXECUTED 5b7e2: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b7e8: 4a80 tstl %d0 <== NOT EXECUTED 5b7ea: 6700 0096 beqw 5b882 <== NOT EXECUTED 5b7ee: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5b7f2: 47fa fd14 lea %pc@(5b508 ),%a3 <== NOT EXECUTED 5b7f6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b7f8: 4e93 jsr %a3@ <== NOT EXECUTED 5b7fa: 508f addql #8,%sp <== NOT EXECUTED 5b7fc: 4a80 tstl %d0 <== NOT EXECUTED 5b7fe: 6700 0082 beqw 5b882 <== NOT EXECUTED 5b802: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 5b806: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b808: 4e93 jsr %a3@ <== NOT EXECUTED 5b80a: 508f addql #8,%sp <== NOT EXECUTED 5b80c: 4a80 tstl %d0 <== NOT EXECUTED 5b80e: 6772 beqs 5b882 <== NOT EXECUTED 5b810: 42a7 clrl %sp@- <== NOT EXECUTED 5b812: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b814: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b816: 486a 000c pea %a2@(12) <== NOT EXECUTED 5b81a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b81c: 4e94 jsr %a4@ <== NOT EXECUTED 5b81e: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b824: 4a80 tstl %d0 <== NOT EXECUTED 5b826: 675a beqs 5b882 <== NOT EXECUTED 5b828: 42a7 clrl %sp@- <== NOT EXECUTED 5b82a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b82c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b82e: 486a 0010 pea %a2@(16) <== NOT EXECUTED 5b832: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b834: 4e94 jsr %a4@ <== NOT EXECUTED 5b836: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b83c: 4a80 tstl %d0 <== NOT EXECUTED 5b83e: 6742 beqs 5b882 <== NOT EXECUTED 5b840: 42a7 clrl %sp@- <== NOT EXECUTED 5b842: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b844: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b846: 486a 0014 pea %a2@(20) <== NOT EXECUTED 5b84a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b84c: 4e94 jsr %a4@ <== NOT EXECUTED 5b84e: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b854: 4a80 tstl %d0 <== NOT EXECUTED 5b856: 672a beqs 5b882 <== NOT EXECUTED 5b858: 4878 0001 pea 1 <== NOT EXECUTED 5b85c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5b85e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5b860: 486a 0018 pea %a2@(24) <== NOT EXECUTED 5b864: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5b866: 4e94 jsr %a4@ <== NOT EXECUTED 5b868: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 5b86e: 4a80 tstl %d0 <== NOT EXECUTED 5b870: 6710 beqs 5b882 <== 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; 5b872: 7001 moveq #1,%d0 <== NOT EXECUTED 5b874: 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; 5b87a: 356e fffe 0008 movew %fp@(-2),%a2@(8) <== NOT EXECUTED 5b880: 6002 bras 5b884 <== NOT EXECUTED pwd->pw_gid = pwgid; return 1; 5b882: 4280 clrl %d0 <== NOT EXECUTED } 5b884: 4cee 1c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a4 <== NOT EXECUTED 5b88a: 4e5e unlk %fp <== NOT EXECUTED 5b88c: 4e75 rts 00045f74 : #include int sched_get_priority_max( int policy ) { 45f74: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED switch ( policy ) { 45f78: 203c 0000 00fe movel #254,%d0 <== NOT EXECUTED 45f7e: 7203 moveq #3,%d1 <== NOT EXECUTED 45f80: b2ae 0008 cmpl %fp@(8),%d1 <== NOT EXECUTED 45f84: 640e bccs 45f94 <== NOT EXECUTED case SCHED_RR: case SCHED_SPORADIC: break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 45f86: 4eb9 0004 cf8c jsr 4cf8c <__errno> <== NOT EXECUTED 45f8c: 2040 moveal %d0,%a0 <== NOT EXECUTED 45f8e: 7216 moveq #22,%d1 <== NOT EXECUTED 45f90: 70ff moveq #-1,%d0 <== NOT EXECUTED 45f92: 2081 movel %d1,%a0@ <== NOT EXECUTED } return POSIX_SCHEDULER_MAXIMUM_PRIORITY; } 45f94: 4e5e unlk %fp <== NOT EXECUTED 45f96: 4e75 rts 00045f98 : #include int sched_get_priority_min( int policy ) { 45f98: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED switch ( policy ) { 45f9c: 7003 moveq #3,%d0 <== NOT EXECUTED 45f9e: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 45fa2: 6506 bcss 45faa <== NOT EXECUTED 45fa4: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 45fa8: 600e bras 45fb8 <== NOT EXECUTED case SCHED_RR: case SCHED_SPORADIC: break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 45faa: 4eb9 0004 cf8c jsr 4cf8c <__errno> <== NOT EXECUTED 45fb0: 2040 moveal %d0,%a0 <== NOT EXECUTED 45fb2: 7216 moveq #22,%d1 <== NOT EXECUTED 45fb4: 70ff moveq #-1,%d0 <== NOT EXECUTED 45fb6: 2081 movel %d1,%a0@ <== NOT EXECUTED } return POSIX_SCHEDULER_MINIMUM_PRIORITY; } 45fb8: 4e5e unlk %fp <== NOT EXECUTED 45fba: 4e75 rts 00044f9c : int sched_getparam( pid_t pid, const struct sched_param *param ) { 44f9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44fa0: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44fa6: 2040 moveal %d0,%a0 <== NOT EXECUTED 44fa8: 7058 moveq #88,%d0 <== NOT EXECUTED 44faa: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44fac: 4e5e unlk %fp <== NOT EXECUTED 44fae: 70ff moveq #-1,%d0 <== NOT EXECUTED 44fb0: 4e75 rts <== NOT EXECUTED ... 00044fb4 : #include int sched_getscheduler( pid_t pid ) { 44fb4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44fb8: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44fbe: 2040 moveal %d0,%a0 <== NOT EXECUTED 44fc0: 7058 moveq #88,%d0 <== NOT EXECUTED 44fc2: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44fc4: 4e5e unlk %fp <== NOT EXECUTED 44fc6: 70ff moveq #-1,%d0 <== NOT EXECUTED 44fc8: 4e75 rts <== NOT EXECUTED ... 00045fbc : int sched_rr_get_interval( pid_t pid, struct timespec *interval ) { 45fbc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45fc0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45fc2: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 45fc6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45fc8: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED /* * Only supported for the "calling process" (i.e. this node). */ if ( pid && pid != getpid() ) 45fcc: 6718 beqs 45fe6 <== NOT EXECUTED 45fce: 4eb9 0004 30f4 jsr 430f4 <== NOT EXECUTED 45fd4: b082 cmpl %d2,%d0 <== NOT EXECUTED 45fd6: 670e beqs 45fe6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ESRCH ); 45fd8: 4eb9 0004 cf8c jsr 4cf8c <__errno> <== NOT EXECUTED 45fde: 7203 moveq #3,%d1 <== NOT EXECUTED 45fe0: 2040 moveal %d0,%a0 <== NOT EXECUTED 45fe2: 2081 movel %d1,%a0@ <== NOT EXECUTED 45fe4: 6010 bras 45ff6 <== NOT EXECUTED if ( !interval ) 45fe6: 4a83 tstl %d3 <== NOT EXECUTED 45fe8: 6610 bnes 45ffa <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 45fea: 4eb9 0004 cf8c jsr 4cf8c <__errno> <== NOT EXECUTED 45ff0: 2040 moveal %d0,%a0 <== NOT EXECUTED 45ff2: 7016 moveq #22,%d0 <== NOT EXECUTED 45ff4: 2080 movel %d0,%a0@ <== NOT EXECUTED 45ff6: 70ff moveq #-1,%d0 <== NOT EXECUTED 45ff8: 6012 bras 4600c <== NOT EXECUTED _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval ); 45ffa: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45ffc: 2f39 0005 b520 movel 5b520 <_Thread_Ticks_per_timeslice>,%sp@- <== NOT EXECUTED 46002: 4eb9 0004 9560 jsr 49560 <_Timespec_From_ticks> <== NOT EXECUTED 46008: 508f addql #8,%sp <== NOT EXECUTED 4600a: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4600c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46010: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 46014: 4e5e unlk %fp <== NOT EXECUTED 46016: 4e75 rts 00044fcc : int sched_setparam( pid_t pid, const struct sched_param *param ) { 44fcc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44fd0: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44fd6: 2040 moveal %d0,%a0 <== NOT EXECUTED 44fd8: 7058 moveq #88,%d0 <== NOT EXECUTED 44fda: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44fdc: 4e5e unlk %fp <== NOT EXECUTED 44fde: 70ff moveq #-1,%d0 <== NOT EXECUTED 44fe0: 4e75 rts <== NOT EXECUTED ... 00044fe4 : int sched_setscheduler( pid_t pid, int policy, const struct sched_param *param ) { 44fe4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 44fe8: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 44fee: 2040 moveal %d0,%a0 <== NOT EXECUTED 44ff0: 7058 moveq #88,%d0 <== NOT EXECUTED 44ff2: 2080 movel %d0,%a0@ <== NOT EXECUTED } 44ff4: 4e5e unlk %fp <== NOT EXECUTED 44ff6: 70ff moveq #-1,%d0 <== NOT EXECUTED 44ff8: 4e75 rts <== NOT EXECUTED ... 00046018 : 46018: 2039 0005 b570 movel 5b570 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4601e: 5280 addql #1,%d0 <== NOT EXECUTED #include #include #include int sched_yield( void ) { 46020: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46024: 23c0 0005 b570 movel %d0,5b570 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); _Thread_Yield_processor(); 4602a: 4eb9 0004 94ac jsr 494ac <_Thread_Yield_processor> <== NOT EXECUTED _Thread_Enable_dispatch(); 46030: 4eb9 0004 883a jsr 4883a <_Thread_Enable_dispatch> <== NOT EXECUTED return 0; } 46036: 4e5e unlk %fp <== NOT EXECUTED 46038: 4280 clrl %d0 <== NOT EXECUTED 4603a: 4e75 rts 0004509c : void seekdir( DIR *dirp, long loc ) { 4509c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 450a0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 450a2: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED off_t status; if ( !dirp ) 450a6: 4a8a tstl %a2 <== NOT EXECUTED 450a8: 671e beqs 450c8 <== NOT EXECUTED return; status = lseek( dirp->dd_fd, loc, SEEK_SET ); 450aa: 42a7 clrl %sp@- <== NOT EXECUTED 450ac: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 450b0: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 450b2: 4eb9 0004 3e60 jsr 43e60 <== NOT EXECUTED /* * This is not a nice way to error out, but we have no choice here. */ if ( status == -1 ) 450b8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 450be: 72ff moveq #-1,%d1 <== NOT EXECUTED 450c0: b280 cmpl %d0,%d1 <== NOT EXECUTED 450c2: 6704 beqs 450c8 <== NOT EXECUTED return; dirp->dd_loc = 0; 450c4: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED } 450c8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 450cc: 4e5e unlk %fp <== NOT EXECUTED 450ce: 4e75 rts 000472e8 : */ int sem_close( sem_t *sem ) { 472e8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Get ( sem_t *id, Objects_Locations *location ) { return (POSIX_Semaphore_Control *) 472ec: 486e fffc pea %fp@(-4) <== NOT EXECUTED 472f0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 472f4: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 472f6: 4879 0005 d05a pea 5d05a <_POSIX_Semaphore_Information> <== NOT EXECUTED 472fc: 4eb9 0004 9488 jsr 49488 <_Objects_Get> <== NOT EXECUTED register POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { 47302: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 47308: 2040 moveal %d0,%a0 <== NOT EXECUTED 4730a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4730e: 6618 bnes 47328 <== NOT EXECUTED case OBJECTS_LOCAL: the_semaphore->open_count -= 1; 47310: 53a8 0016 subql #1,%a0@(22) <== NOT EXECUTED _POSIX_Semaphore_Delete( the_semaphore ); 47314: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47316: 4eb9 0004 d004 jsr 4d004 <_POSIX_Semaphore_Delete> <== NOT EXECUTED _Thread_Enable_dispatch(); 4731c: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED 47322: 588f addql #4,%sp <== NOT EXECUTED 47324: 4280 clrl %d0 <== NOT EXECUTED 47326: 600e bras 47336 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 47328: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 4732e: 2040 moveal %d0,%a0 <== NOT EXECUTED 47330: 7216 moveq #22,%d1 <== NOT EXECUTED 47332: 70ff moveq #-1,%d0 <== NOT EXECUTED 47334: 2081 movel %d1,%a0@ <== NOT EXECUTED } 47336: 4e5e unlk %fp <== NOT EXECUTED 47338: 4e75 rts <== NOT EXECUTED ... 0004733c : */ int sem_destroy( sem_t *sem ) { 4733c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 47340: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47342: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 47346: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4734a: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4734c: 4879 0005 d05a pea 5d05a <_POSIX_Semaphore_Information> <== NOT EXECUTED 47352: 4eb9 0004 9488 jsr 49488 <_Objects_Get> <== NOT EXECUTED register POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { 47358: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4735e: 2040 moveal %d0,%a0 <== NOT EXECUTED 47360: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47364: 662e bnes 47394 <== NOT EXECUTED 47366: 45f9 0004 9bfa lea 49bfa <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED case OBJECTS_LOCAL: /* * Undefined operation on a named semaphore. */ if ( the_semaphore->named == TRUE ) { 4736c: 4a28 0014 tstb %a0@(20) <== NOT EXECUTED 47370: 6712 beqs 47384 <== NOT EXECUTED _Thread_Enable_dispatch(); 47372: 4e92 jsr %a2@ <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 47374: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 4737a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4737c: 7016 moveq #22,%d0 <== NOT EXECUTED 4737e: 2080 movel %d0,%a0@ <== NOT EXECUTED 47380: 70ff moveq #-1,%d0 <== NOT EXECUTED 47382: 601e bras 473a2 <== NOT EXECUTED } _POSIX_Semaphore_Delete( the_semaphore ); 47384: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47386: 4eb9 0004 d004 jsr 4d004 <_POSIX_Semaphore_Delete> <== NOT EXECUTED _Thread_Enable_dispatch(); 4738c: 4e92 jsr %a2@ <== NOT EXECUTED 4738e: 588f addql #4,%sp <== NOT EXECUTED 47390: 4280 clrl %d0 <== NOT EXECUTED 47392: 600e bras 473a2 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 47394: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 4739a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4739c: 7216 moveq #22,%d1 <== NOT EXECUTED 4739e: 70ff moveq #-1,%d0 <== NOT EXECUTED 473a0: 2081 movel %d1,%a0@ <== NOT EXECUTED } 473a2: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 473a6: 4e5e unlk %fp <== NOT EXECUTED 473a8: 4e75 rts <== NOT EXECUTED ... 000473ac : int sem_getvalue( sem_t *sem, int *sval ) { 473ac: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 473b0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 473b4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 473b8: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 473ba: 4879 0005 d05a pea 5d05a <_POSIX_Semaphore_Information> <== NOT EXECUTED 473c0: 4eb9 0004 9488 jsr 49488 <_Objects_Get> <== NOT EXECUTED register POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { 473c6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 473cc: 2240 moveal %d0,%a1 <== NOT EXECUTED 473ce: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 473d2: 6612 bnes 473e6 <== NOT EXECUTED case OBJECTS_LOCAL: *sval = _CORE_semaphore_Get_count( &the_semaphore->Semaphore ); 473d4: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 473d8: 20a9 0062 movel %a1@(98),%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 473dc: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED 473e2: 4280 clrl %d0 <== NOT EXECUTED 473e4: 600e bras 473f4 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 473e6: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 473ec: 2040 moveal %d0,%a0 <== NOT EXECUTED 473ee: 7216 moveq #22,%d1 <== NOT EXECUTED 473f0: 70ff moveq #-1,%d0 <== NOT EXECUTED 473f2: 2081 movel %d1,%a0@ <== NOT EXECUTED } 473f4: 4e5e unlk %fp <== NOT EXECUTED 473f6: 4e75 rts 000473f8 : int sem_init( sem_t *sem, int pshared, unsigned int value ) { 473f8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 473fc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 473fe: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED int status; POSIX_Semaphore_Control *the_semaphore; if ( !sem ) 47402: 4a8a tstl %a2 <== NOT EXECUTED 47404: 6610 bnes 47416 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 47406: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 4740c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4740e: 7016 moveq #22,%d0 <== NOT EXECUTED 47410: 2080 movel %d0,%a0@ <== NOT EXECUTED 47412: 70ff moveq #-1,%d0 <== NOT EXECUTED 47414: 6028 bras 4743e <== NOT EXECUTED status = _POSIX_Semaphore_Create_support( 47416: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4741a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4741e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 47422: 42a7 clrl %sp@- <== NOT EXECUTED 47424: 4eb9 0004 cf0c jsr 4cf0c <_POSIX_Semaphore_Create_support> <== NOT EXECUTED pshared, value, &the_semaphore ); if ( status != -1 ) 4742a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 47430: 72ff moveq #-1,%d1 <== NOT EXECUTED 47432: b280 cmpl %d0,%d1 <== NOT EXECUTED 47434: 6708 beqs 4743e <== NOT EXECUTED *sem = the_semaphore->Object.id; 47436: 206e fffc moveal %fp@(-4),%a0 <== NOT EXECUTED 4743a: 24a8 0008 movel %a0@(8),%a2@ <== NOT EXECUTED return status; } 4743e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 47442: 4e5e unlk %fp <== NOT EXECUTED 47444: 4e75 rts <== NOT EXECUTED ... 00047448 : rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 47448: 2039 0005 cdf0 movel 5cdf0 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED int oflag, ... /* mode_t mode, */ /* unsigned int value */ ) { 4744e: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 47452: 48d7 043c moveml %d2-%d5/%a2,%sp@ <== NOT EXECUTED 47456: 5280 addql #1,%d0 <== NOT EXECUTED 47458: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 4745c: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 47460: 23c0 0005 cdf0 movel %d0,5cdf0 <_Thread_Dispatch_disable_level> <== NOT EXECUTED POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; _Thread_Disable_dispatch(); if ( oflag & O_CREAT ) { 47466: 2803 movel %d3,%d4 <== NOT EXECUTED 47468: 0284 0000 0200 andil #512,%d4 <== NOT EXECUTED 4746e: 6604 bnes 47474 <== NOT EXECUTED 47470: 95ca subal %a2,%a2 <== NOT EXECUTED 47472: 6004 bras 47478 <== NOT EXECUTED va_start(arg, oflag); mode = (mode_t) va_arg( arg, unsigned int ); value = va_arg( arg, unsigned int ); 47474: 246e 0014 moveal %fp@(20),%a2 <== NOT EXECUTED va_end(arg); } status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id ); 47478: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4747c: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4747e: 4eb9 0004 d054 jsr 4d054 <_POSIX_Semaphore_Name_to_id> <== NOT EXECUTED * and we can just return a pointer to the id. Otherwise we may * need to check to see if this is a "semaphore does not exist" * or some other miscellaneous error on the name. */ if ( status ) { 47484: 508f addql #8,%sp <== NOT EXECUTED mode = (mode_t) va_arg( arg, unsigned int ); value = va_arg( arg, unsigned int ); va_end(arg); } status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id ); 47486: 2400 movel %d0,%d2 <== NOT EXECUTED * and we can just return a pointer to the id. Otherwise we may * need to check to see if this is a "semaphore does not exist" * or some other miscellaneous error on the name. */ if ( status ) { 47488: 671c beqs 474a6 <== NOT EXECUTED /* * Unless provided a valid name that did not already exist * and we are willing to create then it is an error. */ if ( !( status == ENOENT && (oflag & O_CREAT) ) ) { 4748a: 7002 moveq #2,%d0 <== NOT EXECUTED 4748c: b082 cmpl %d2,%d0 <== NOT EXECUTED 4748e: 6604 bnes 47494 <== NOT EXECUTED 47490: 4a84 tstl %d4 <== NOT EXECUTED 47492: 6662 bnes 474f6 <== NOT EXECUTED _Thread_Enable_dispatch(); 47494: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one_cast( status, sem_t * ); 4749a: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 474a0: 2040 moveal %d0,%a0 <== NOT EXECUTED 474a2: 2082 movel %d2,%a0@ <== NOT EXECUTED 474a4: 6022 bras 474c8 <== NOT EXECUTED /* * Check for existence with creation. */ if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { 474a6: 0283 0000 0a00 andil #2560,%d3 <== NOT EXECUTED 474ac: 45f9 0004 9bfa lea 49bfa <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 474b2: 0c83 0000 0a00 cmpil #2560,%d3 <== NOT EXECUTED 474b8: 6612 bnes 474cc <== NOT EXECUTED _Thread_Enable_dispatch(); 474ba: 4e92 jsr %a2@ <== NOT EXECUTED rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * ); 474bc: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 474c2: 2040 moveal %d0,%a0 <== NOT EXECUTED 474c4: 7011 moveq #17,%d0 <== NOT EXECUTED 474c6: 2080 movel %d0,%a0@ <== NOT EXECUTED 474c8: 70ff moveq #-1,%d0 <== NOT EXECUTED 474ca: 6054 bras 47520 <== NOT EXECUTED 474cc: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 474d0: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 474d4: 4879 0005 d05a pea 5d05a <_POSIX_Semaphore_Information> <== NOT EXECUTED 474da: 4eb9 0004 9488 jsr 49488 <_Objects_Get> <== NOT EXECUTED 474e0: 2040 moveal %d0,%a0 <== NOT EXECUTED } the_semaphore = _POSIX_Semaphore_Get( &the_semaphore_id, &location ); the_semaphore->open_count += 1; 474e2: 52a8 0016 addql #1,%a0@(22) <== NOT EXECUTED if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * ); } the_semaphore = _POSIX_Semaphore_Get( &the_semaphore_id, &location ); 474e6: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED the_semaphore->open_count += 1; _Thread_Enable_dispatch(); 474ea: 4e92 jsr %a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 474ec: 4e92 jsr %a2@ <== NOT EXECUTED id = &the_semaphore->Object.id; return (sem_t *)id; 474ee: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 474f4: 6024 bras 4751a <== NOT EXECUTED /* * At this point, the semaphore does not exist and everything has been * checked. We should go ahead and create a semaphore. */ status =_POSIX_Semaphore_Create_support( 474f6: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 474fa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 474fc: 42a7 clrl %sp@- <== NOT EXECUTED 474fe: 2f05 movel %d5,%sp@- <== NOT EXECUTED 47500: 4eb9 0004 cf0c jsr 4cf0c <_POSIX_Semaphore_Create_support> <== NOT EXECUTED 47506: 2400 movel %d0,%d2 <== NOT EXECUTED /* * errno was set by Create_support, so don't set it again. */ _Thread_Enable_dispatch(); 47508: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED if ( status == -1 ) 4750e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 47514: 70ff moveq #-1,%d0 <== NOT EXECUTED 47516: b082 cmpl %d2,%d0 <== NOT EXECUTED 47518: 6706 beqs 47520 <== NOT EXECUTED return SEM_FAILED; id = &the_semaphore->Object.id; return (sem_t *)id; 4751a: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 4751e: 5080 addql #8,%d0 <== NOT EXECUTED } 47520: 4cee 043c ffe0 moveml %fp@(-32),%d2-%d5/%a2 <== NOT EXECUTED 47526: 4e5e unlk %fp <== NOT EXECUTED 47528: 4e75 rts <== NOT EXECUTED ... 0004752c : */ int sem_post( sem_t *sem ) { 4752c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 47530: 486e fffc pea %fp@(-4) <== NOT EXECUTED 47534: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 47538: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4753a: 4879 0005 d05a pea 5d05a <_POSIX_Semaphore_Information> <== NOT EXECUTED 47540: 4eb9 0004 9488 jsr 49488 <_Objects_Get> <== NOT EXECUTED register POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { 47546: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4754c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4754e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47552: 6620 bnes 47574 <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_semaphore_Surrender( 47554: 42a7 clrl %sp@- <== NOT EXECUTED 47556: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4755a: 4868 001a pea %a0@(26) <== NOT EXECUTED 4755e: 4eb9 0004 8c24 jsr 48c24 <_CORE_semaphore_Surrender> <== NOT EXECUTED NULL /* XXX need to define a routine to handle this case */ #else NULL #endif ); _Thread_Enable_dispatch(); 47564: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED 4756a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 47570: 4280 clrl %d0 <== NOT EXECUTED 47572: 600e bras 47582 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 47574: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 4757a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4757c: 7216 moveq #22,%d1 <== NOT EXECUTED 4757e: 70ff moveq #-1,%d0 <== NOT EXECUTED 47580: 2081 movel %d1,%a0@ <== NOT EXECUTED } 47582: 4e5e unlk %fp <== NOT EXECUTED 47584: 4e75 rts <== NOT EXECUTED ... 00047588 : int sem_timedwait( sem_t *sem, const struct timespec *abstime ) { 47588: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED * So we check the abstime provided, and hold on to whether it * is valid or not. If it isn't correct and in the future, * then we do a polling operation and convert the UNSATISFIED * status into the appropriate error. */ status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks ); 4758c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 47590: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 47594: 4eb9 0004 c668 jsr 4c668 <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED switch ( status ) { 4759a: 508f addql #8,%sp <== NOT EXECUTED 4759c: 7202 moveq #2,%d1 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: do_wait = true; break; } lock_status = _POSIX_Semaphore_Wait_support( sem, do_wait, ticks ); 4759e: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED * is valid or not. If it isn't correct and in the future, * then we do a polling operation and convert the UNSATISFIED * status into the appropriate error. */ status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks ); switch ( status ) { 475a2: b280 cmpl %d0,%d1 <== NOT EXECUTED 475a4: 55c0 scs %d0 <== NOT EXECUTED 475a6: 4480 negl %d0 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: do_wait = true; break; } lock_status = _POSIX_Semaphore_Wait_support( sem, do_wait, ticks ); 475a8: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 475ae: 2f00 movel %d0,%sp@- <== NOT EXECUTED 475b0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 475b4: 4eb9 0004 d0c4 jsr 4d0c4 <_POSIX_Semaphore_Wait_support> <== NOT EXECUTED break; } } return lock_status; } 475ba: 4e5e unlk %fp <== NOT EXECUTED 475bc: 4e75 rts <== NOT EXECUTED ... 000475c0 : */ int sem_trywait( sem_t *sem ) { 475c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Semaphore_Wait_support(sem, FALSE, THREAD_QUEUE_WAIT_FOREVER); 475c4: 42a7 clrl %sp@- <== NOT EXECUTED 475c6: 42a7 clrl %sp@- <== NOT EXECUTED 475c8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 475cc: 4eb9 0004 d0c4 jsr 4d0c4 <_POSIX_Semaphore_Wait_support> <== NOT EXECUTED } 475d2: 4e5e unlk %fp <== NOT EXECUTED 475d4: 4e75 rts <== NOT EXECUTED ... 000475d8 : 475d8: 2039 0005 cdf0 movel 5cdf0 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED */ int sem_unlink( const char *name ) { 475de: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 475e2: 5280 addql #1,%d0 <== NOT EXECUTED 475e4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 475e6: 23c0 0005 cdf0 movel %d0,5cdf0 <_Thread_Dispatch_disable_level> <== NOT EXECUTED register POSIX_Semaphore_Control *the_semaphore; sem_t the_semaphore_id; _Thread_Disable_dispatch(); status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id ); 475ec: 486e fffc pea %fp@(-4) <== NOT EXECUTED 475f0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 475f4: 4eb9 0004 d054 jsr 4d054 <_POSIX_Semaphore_Name_to_id> <== NOT EXECUTED if ( status != 0 ) { 475fa: 508f addql #8,%sp <== NOT EXECUTED register POSIX_Semaphore_Control *the_semaphore; sem_t the_semaphore_id; _Thread_Disable_dispatch(); status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id ); 475fc: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( status != 0 ) { 475fe: 4a80 tstl %d0 <== NOT EXECUTED 47600: 6714 beqs 47616 <== NOT EXECUTED _Thread_Enable_dispatch(); 47602: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( status ); 47608: 4eb9 0004 ed40 jsr 4ed40 <__errno> <== NOT EXECUTED 4760e: 2040 moveal %d0,%a0 <== NOT EXECUTED 47610: 208a movel %a2,%a0@ <== NOT EXECUTED 47612: 70ff moveq #-1,%d0 <== NOT EXECUTED 47614: 604a bras 47660 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Objects_Control *_Objects_Get_local_object( Objects_Information *information, uint16_t index ) { if ( index > information->maximum ) 47616: 4281 clrl %d1 <== NOT EXECUTED 47618: 4280 clrl %d0 <== NOT EXECUTED 4761a: 322e fffe movew %fp@(-2),%d1 <== NOT EXECUTED 4761e: 3039 0005 d068 movew 5d068 <_POSIX_Semaphore_Information+0xe>,%d0 <== NOT EXECUTED 47624: b081 cmpl %d1,%d0 <== NOT EXECUTED 47626: 6404 bccs 4762c <== NOT EXECUTED 47628: 95ca subal %a2,%a2 <== NOT EXECUTED 4762a: 600a bras 47636 <== NOT EXECUTED return NULL; return information->local_table[ index ]; 4762c: 2079 0005 d074 moveal 5d074 <_POSIX_Semaphore_Information+0x1a>,%a0 <== NOT EXECUTED 47632: 2470 1c00 moveal %a0@(00000000,%d1:l:4),%a2 <== NOT EXECUTED the_semaphore = (POSIX_Semaphore_Control *) _Objects_Get_local_object( &_POSIX_Semaphore_Information, _Objects_Get_index( the_semaphore_id ) ); the_semaphore->linked = FALSE; 47636: 4200 clrb %d0 <== NOT EXECUTED 47638: 1540 0015 moveb %d0,%a2@(21) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Namespace_remove ( POSIX_Semaphore_Control *the_semaphore ) { _Objects_Namespace_remove( 4763c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4763e: 4879 0005 d05a pea 5d05a <_POSIX_Semaphore_Information> <== NOT EXECUTED 47644: 4eb9 0004 95bc jsr 495bc <_Objects_Namespace_remove> <== NOT EXECUTED _POSIX_Semaphore_Namespace_remove( the_semaphore ); _POSIX_Semaphore_Delete( the_semaphore ); 4764a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4764c: 4eb9 0004 d004 jsr 4d004 <_POSIX_Semaphore_Delete> <== NOT EXECUTED _Thread_Enable_dispatch(); 47652: 4eb9 0004 9bfa jsr 49bfa <_Thread_Enable_dispatch> <== NOT EXECUTED 47658: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4765e: 4280 clrl %d0 <== NOT EXECUTED return 0; } 47660: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 47664: 4e5e unlk %fp <== NOT EXECUTED 47666: 4e75 rts 00047668 : */ int sem_wait( sem_t *sem ) { 47668: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Semaphore_Wait_support( sem, TRUE, THREAD_QUEUE_WAIT_FOREVER ); 4766c: 42a7 clrl %sp@- <== NOT EXECUTED 4766e: 4878 0001 pea 1 <== NOT EXECUTED 47672: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47676: 4eb9 0004 d0c4 jsr 4d0c4 <_POSIX_Semaphore_Wait_support> <== NOT EXECUTED } 4767c: 4e5e unlk %fp <== NOT EXECUTED 4767e: 4e75 rts 0005b4ba : int setgid( gid_t gid ) { _POSIX_types_Gid = gid; 5b4ba: 2079 0007 e600 moveal 7e600 ,%a0 <== NOT EXECUTED */ int setgid( gid_t gid ) { 5b4c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _POSIX_types_Gid = gid; 5b4c4: 316e 000a 002c movew %fp@(10),%a0@(44) <== NOT EXECUTED return 0; } 5b4ca: 4e5e unlk %fp <== NOT EXECUTED 5b4cc: 4280 clrl %d0 <== NOT EXECUTED 5b4ce: 4e75 rts 0005b9b0 : return NULL; return &grent; } void setgrent(void) { 5b9b0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED init_etc_passwd_group(); 5b9b4: 4eb9 0005 b8ca jsr 5b8ca <== NOT EXECUTED if (group_fp != NULL) 5b9ba: 2039 0009 28ca movel 928ca ,%d0 <== NOT EXECUTED 5b9c0: 670a beqs 5b9cc <== NOT EXECUTED fclose(group_fp); 5b9c2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5b9c4: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED 5b9ca: 588f addql #4,%sp <== NOT EXECUTED group_fp = fopen("/etc/group", "r"); 5b9cc: 4879 0007 9dcd pea 79dcd <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5b9d2: 4879 0007 b4d9 pea 7b4d9 <== NOT EXECUTED 5b9d8: 4eb9 0006 93d4 jsr 693d4 <== NOT EXECUTED 5b9de: 508f addql #8,%sp <== NOT EXECUTED } 5b9e0: 4e5e unlk %fp <== NOT EXECUTED { init_etc_passwd_group(); if (group_fp != NULL) fclose(group_fp); group_fp = fopen("/etc/group", "r"); 5b9e2: 23c0 0009 28ca movel %d0,928ca <== NOT EXECUTED } 5b9e8: 4e75 rts 0005bb5e : return NULL; return &pwent; } void setpwent(void) { 5bb5e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED init_etc_passwd_group(); 5bb62: 4eb9 0005 b8ca jsr 5b8ca <== NOT EXECUTED if (passwd_fp != NULL) 5bb68: 2039 0009 27e2 movel 927e2 ,%d0 <== NOT EXECUTED 5bb6e: 670a beqs 5bb7a <== NOT EXECUTED fclose(passwd_fp); 5bb70: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5bb72: 4eb9 0006 8bda jsr 68bda <== NOT EXECUTED 5bb78: 588f addql #4,%sp <== NOT EXECUTED passwd_fp = fopen("/etc/passwd", "r"); 5bb7a: 4879 0007 9dcd pea 79dcd <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 5bb80: 4879 0007 b466 pea 7b466 <== NOT EXECUTED 5bb86: 4eb9 0006 93d4 jsr 693d4 <== NOT EXECUTED 5bb8c: 508f addql #8,%sp <== NOT EXECUTED } 5bb8e: 4e5e unlk %fp <== NOT EXECUTED { init_etc_passwd_group(); if (passwd_fp != NULL) fclose(passwd_fp); passwd_fp = fopen("/etc/passwd", "r"); 5bb90: 23c0 0009 27e2 movel %d0,927e2 <== NOT EXECUTED } 5bb96: 4e75 rts 00045476 : int setuid( uid_t uid ) { _POSIX_types_Uid = uid; 45476: 2079 0007 e600 moveal 7e600 ,%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 0004546c : int sigaction( int sig, const struct sigaction *act, struct sigaction *oact ) { 4546c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 45470: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 45474: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 45478: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4547c: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED ISR_Level level; if ( oact ) 45480: 4a88 tstl %a0 <== NOT EXECUTED 45482: 6724 beqs 454a8 <== NOT EXECUTED *oact = _POSIX_signals_Vectors[ sig ]; 45484: 4878 000c pea c <== NOT EXECUTED 45488: 2202 movel %d2,%d1 <== NOT EXECUTED 4548a: 2002 movel %d2,%d0 <== NOT EXECUTED 4548c: e589 lsll #2,%d1 <== NOT EXECUTED 4548e: e988 lsll #4,%d0 <== NOT EXECUTED 45490: 9081 subl %d1,%d0 <== NOT EXECUTED 45492: 0680 0005 a892 addil #370834,%d0 <== NOT EXECUTED 45498: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4549a: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4549c: 4eb9 0004 ce58 jsr 4ce58 <== NOT EXECUTED 454a2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED if ( !sig ) 454a8: 4a82 tstl %d2 <== NOT EXECUTED 454aa: 6710 beqs 454bc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(sig) ) 454ac: 2202 movel %d2,%d1 <== NOT EXECUTED 454ae: 5381 subql #1,%d1 <== NOT EXECUTED 454b0: 701f moveq #31,%d0 <== NOT EXECUTED 454b2: b081 cmpl %d1,%d0 <== NOT EXECUTED 454b4: 6506 bcss 454bc <== NOT EXECUTED * * NOTE: Solaris documentation claims to "silently enforce" this which * contradicts the POSIX specification. */ if ( sig == SIGKILL ) 454b6: 7009 moveq #9,%d0 <== NOT EXECUTED 454b8: b082 cmpl %d2,%d0 <== NOT EXECUTED 454ba: 6610 bnes 454cc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 454bc: 4eb9 0004 c648 jsr 4c648 <__errno> <== NOT EXECUTED 454c2: 2040 moveal %d0,%a0 <== NOT EXECUTED 454c4: 7016 moveq #22,%d0 <== NOT EXECUTED 454c6: 2080 movel %d0,%a0@ <== NOT EXECUTED 454c8: 70ff moveq #-1,%d0 <== NOT EXECUTED 454ca: 6068 bras 45534 <== NOT EXECUTED /* * Evaluate the new action structure and set the global signal vector * appropriately. */ if ( act ) { 454cc: 4a8a tstl %a2 <== NOT EXECUTED 454ce: 6762 beqs 45532 <== NOT EXECUTED /* * Unless the user is installing the default signal actions, then * we can just copy the provided sigaction structure into the vectors. */ _ISR_Disable( level ); 454d0: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 454d6: 40c3 movew %sr,%d3 <== NOT EXECUTED 454d8: 8083 orl %d3,%d0 <== NOT EXECUTED 454da: 46c0 movew %d0,%sr <== NOT EXECUTED 454dc: 700c moveq #12,%d0 <== NOT EXECUTED 454de: 47f9 0004 ce58 lea 4ce58 ,%a3 <== NOT EXECUTED 454e4: 4c00 2800 mulsl %d0,%d2 <== NOT EXECUTED if ( act->sa_handler == SIG_DFL ) { 454e8: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 454ec: 6620 bnes 4550e <== NOT EXECUTED _POSIX_signals_Vectors[ sig ] = _POSIX_signals_Default_vectors[ sig ]; 454ee: 4878 000c pea c <== NOT EXECUTED 454f2: 2002 movel %d2,%d0 <== NOT EXECUTED 454f4: 0680 0005 78f8 addil #358648,%d0 <== NOT EXECUTED 454fa: 2f00 movel %d0,%sp@- <== NOT EXECUTED 454fc: 0682 0005 a892 addil #370834,%d2 <== NOT EXECUTED 45502: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45504: 4e93 jsr %a3@ <== NOT EXECUTED 45506: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4550c: 6022 bras 45530 <== NOT EXECUTED } else { _POSIX_signals_Clear_process_signals( signo_to_mask(sig) ); 4550e: 7001 moveq #1,%d0 <== NOT EXECUTED 45510: e3a8 lsll %d1,%d0 <== NOT EXECUTED 45512: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45514: 4eb9 0004 a960 jsr 4a960 <_POSIX_signals_Clear_process_signals> <== NOT EXECUTED _POSIX_signals_Vectors[ sig ] = *act; 4551a: 4878 000c pea c <== NOT EXECUTED 4551e: 0682 0005 a892 addil #370834,%d2 <== NOT EXECUTED 45524: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45526: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45528: 4e93 jsr %a3@ <== NOT EXECUTED 4552a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } _ISR_Enable( level ); 45530: 46c3 movew %d3,%sr <== NOT EXECUTED 45532: 4280 clrl %d0 <== NOT EXECUTED * + If we are now ignoring a signal that was previously pending, * we clear the pending signal indicator. */ return 0; } 45534: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 4553a: 4e5e unlk %fp <== NOT EXECUTED 4553c: 4e75 rts <== NOT EXECUTED ... 00045540 : int sigaddset( sigset_t *set, int signo ) { 45540: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45544: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45548: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !set ) 4554c: 4a88 tstl %a0 <== NOT EXECUTED 4554e: 670e beqs 4555e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !signo ) 45550: 4a80 tstl %d0 <== NOT EXECUTED 45552: 670a beqs 4555e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(signo) ) 45554: 2200 movel %d0,%d1 <== NOT EXECUTED 45556: 5381 subql #1,%d1 <== NOT EXECUTED 45558: 701f moveq #31,%d0 <== NOT EXECUTED 4555a: b081 cmpl %d1,%d0 <== NOT EXECUTED 4555c: 6410 bccs 4556e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4555e: 4eb9 0004 c648 jsr 4c648 <__errno> <== NOT EXECUTED 45564: 2040 moveal %d0,%a0 <== NOT EXECUTED 45566: 7016 moveq #22,%d0 <== NOT EXECUTED 45568: 2080 movel %d0,%a0@ <== NOT EXECUTED 4556a: 70ff moveq #-1,%d0 <== NOT EXECUTED 4556c: 6008 bras 45576 <== NOT EXECUTED *set |= signo_to_mask(signo); 4556e: 7001 moveq #1,%d0 <== NOT EXECUTED 45570: e3a8 lsll %d1,%d0 <== NOT EXECUTED 45572: 8190 orl %d0,%a0@ <== NOT EXECUTED 45574: 4280 clrl %d0 <== NOT EXECUTED return 0; } 45576: 4e5e unlk %fp <== NOT EXECUTED 45578: 4e75 rts <== NOT EXECUTED ... 0004712c : int sigdelset( sigset_t *set, int signo ) { 4712c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47130: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 47134: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !set ) 47138: 4a88 tstl %a0 <== NOT EXECUTED 4713a: 670e beqs 4714a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !signo ) 4713c: 4a80 tstl %d0 <== NOT EXECUTED 4713e: 6724 beqs 47164 <== NOT EXECUTED return 0; if ( !is_valid_signo(signo) ) 47140: 2200 movel %d0,%d1 <== NOT EXECUTED 47142: 5381 subql #1,%d1 <== NOT EXECUTED 47144: 701f moveq #31,%d0 <== NOT EXECUTED 47146: b081 cmpl %d1,%d0 <== NOT EXECUTED 47148: 6410 bccs 4715a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4714a: 4eb9 0004 e75c jsr 4e75c <__errno> <== NOT EXECUTED 47150: 2040 moveal %d0,%a0 <== NOT EXECUTED 47152: 7016 moveq #22,%d0 <== NOT EXECUTED 47154: 2080 movel %d0,%a0@ <== NOT EXECUTED 47156: 70ff moveq #-1,%d0 <== NOT EXECUTED 47158: 600a bras 47164 <== NOT EXECUTED *set &= ~signo_to_mask(signo); 4715a: 7001 moveq #1,%d0 <== NOT EXECUTED 4715c: e3a8 lsll %d1,%d0 <== NOT EXECUTED 4715e: 4680 notl %d0 <== NOT EXECUTED 47160: c190 andl %d0,%a0@ <== NOT EXECUTED 47162: 4280 clrl %d0 <== NOT EXECUTED return 0; } 47164: 4e5e unlk %fp <== NOT EXECUTED 47166: 4e75 rts 00049d24 : #include int sigemptyset( sigset_t *set ) { 49d24: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49d28: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !set ) 49d2c: 4a88 tstl %a0 <== NOT EXECUTED 49d2e: 6610 bnes 49d40 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 49d30: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 49d36: 2040 moveal %d0,%a0 <== NOT EXECUTED 49d38: 7016 moveq #22,%d0 <== NOT EXECUTED 49d3a: 2080 movel %d0,%a0@ <== NOT EXECUTED 49d3c: 70ff moveq #-1,%d0 <== NOT EXECUTED 49d3e: 6004 bras 49d44 <== NOT EXECUTED *set = 0; 49d40: 4280 clrl %d0 <== NOT EXECUTED 49d42: 4290 clrl %a0@ <== NOT EXECUTED return 0; } 49d44: 4e5e unlk %fp <== NOT EXECUTED 49d46: 4e75 rts 0004718c : #include int sigfillset( sigset_t *set ) { 4718c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47190: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !set ) 47194: 4a88 tstl %a0 <== NOT EXECUTED 47196: 6610 bnes 471a8 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 47198: 4eb9 0004 e75c jsr 4e75c <__errno> <== NOT EXECUTED 4719e: 2040 moveal %d0,%a0 <== NOT EXECUTED 471a0: 7016 moveq #22,%d0 <== NOT EXECUTED 471a2: 2080 movel %d0,%a0@ <== NOT EXECUTED 471a4: 70ff moveq #-1,%d0 <== NOT EXECUTED 471a6: 6006 bras 471ae <== NOT EXECUTED *set = SIGNAL_ALL_MASK; 471a8: 72ff moveq #-1,%d1 <== NOT EXECUTED 471aa: 4280 clrl %d0 <== NOT EXECUTED 471ac: 2081 movel %d1,%a0@ <== NOT EXECUTED return 0; } 471ae: 4e5e unlk %fp <== NOT EXECUTED 471b0: 4e75 rts <== NOT EXECUTED ... 000471b4 : int sigismember( const sigset_t *set, int signo ) { 471b4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 471b8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 471bc: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !set ) 471c0: 4a88 tstl %a0 <== NOT EXECUTED 471c2: 670e beqs 471d2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !signo ) 471c4: 4a80 tstl %d0 <== NOT EXECUTED 471c6: 6726 beqs 471ee <== NOT EXECUTED return 0; if ( !is_valid_signo(signo) ) 471c8: 2200 movel %d0,%d1 <== NOT EXECUTED 471ca: 5381 subql #1,%d1 <== NOT EXECUTED 471cc: 701f moveq #31,%d0 <== NOT EXECUTED 471ce: b081 cmpl %d1,%d0 <== NOT EXECUTED 471d0: 6410 bccs 471e2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 471d2: 4eb9 0004 e75c jsr 4e75c <__errno> <== NOT EXECUTED 471d8: 2040 moveal %d0,%a0 <== NOT EXECUTED 471da: 7016 moveq #22,%d0 <== NOT EXECUTED 471dc: 2080 movel %d0,%a0@ <== NOT EXECUTED 471de: 70ff moveq #-1,%d0 <== NOT EXECUTED 471e0: 600c bras 471ee <== NOT EXECUTED 471e2: 7001 moveq #1,%d0 <== NOT EXECUTED 471e4: e3a8 lsll %d1,%d0 <== NOT EXECUTED 471e6: c090 andl %a0@,%d0 <== NOT EXECUTED 471e8: 56c0 sne %d0 <== NOT EXECUTED 471ea: 49c0 extbl %d0 <== NOT EXECUTED 471ec: 4480 negl %d0 <== NOT EXECUTED if ( *set & signo_to_mask(signo) ) return 1; return 0; } 471ee: 4e5e unlk %fp <== NOT EXECUTED 471f0: 4e75 rts <== NOT EXECUTED ... 000451e4 : sighandler_t signal( int signum, sighandler_t handler ) { 451e4: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED struct sigaction s; struct sigaction old; s.sa_handler = handler ; sigemptyset(&s.sa_mask); 451e8: 486e fff8 pea %fp@(-8) <== NOT EXECUTED ) { struct sigaction s; struct sigaction old; s.sa_handler = handler ; 451ec: 2d6e 000c fffc movel %fp@(12),%fp@(-4) <== NOT EXECUTED sigemptyset(&s.sa_mask); 451f2: 4eb9 0004 51c0 jsr 451c0 <== NOT EXECUTED s.sa_flags = SA_RESTART; #else s.sa_flags = 0; #endif sigaction( signum, &s, &old ); 451f8: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED 451fc: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 45200: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED s.sa_flags = SA_RESTART | SA_INTERRUPT | SA_NOMASK; s.sa_restorer= NULL ; #elif defined(signal_like_SVR4) s.sa_flags = SA_RESTART; #else s.sa_flags = 0; 45204: 42ae fff4 clrl %fp@(-12) <== NOT EXECUTED #endif sigaction( signum, &s, &old ); 45208: 4eb9 0004 50b0 jsr 450b0 <== NOT EXECUTED return (sighandler_t) old.sa_handler; } 4520e: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 45212: 4e5e unlk %fp <== NOT EXECUTED 45214: 4e75 rts <== NOT EXECUTED ... 000455a0 : #include int sigpending( sigset_t *set ) { 455a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 455a4: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED POSIX_API_Control *api; if ( !set ) 455a8: 4a89 tstl %a1 <== NOT EXECUTED 455aa: 6610 bnes 455bc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 455ac: 4eb9 0004 c648 jsr 4c648 <__errno> <== NOT EXECUTED 455b2: 2040 moveal %d0,%a0 <== NOT EXECUTED 455b4: 7016 moveq #22,%d0 <== NOT EXECUTED 455b6: 2080 movel %d0,%a0@ <== NOT EXECUTED 455b8: 70ff moveq #-1,%d0 <== NOT EXECUTED 455ba: 6018 bras 455d4 <== NOT EXECUTED api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; *set = api->signals_pending | _POSIX_signals_Pending; 455bc: 2079 0005 a446 moveal 5a446 <_Thread_Executing>,%a0 <== NOT EXECUTED 455c2: 2039 0005 aa5e movel 5aa5e <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 455c8: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED 455cc: 80a8 00c8 orl %a0@(200),%d0 <== NOT EXECUTED 455d0: 2280 movel %d0,%a1@ <== NOT EXECUTED 455d2: 4280 clrl %d0 <== NOT EXECUTED return 0; } 455d4: 4e5e unlk %fp <== NOT EXECUTED 455d6: 4e75 rts 000455d8 : int sigprocmask( int how, const sigset_t *set, sigset_t *oset ) { 455d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * P1003.1c/Draft 10, p. 38 maps sigprocmask to pthread_sigmask. */ return pthread_sigmask( how, set, oset ); } 455dc: 4e5e unlk %fp <== NOT EXECUTED { /* * P1003.1c/Draft 10, p. 38 maps sigprocmask to pthread_sigmask. */ return pthread_sigmask( how, set, oset ); 455de: 4ef9 0004 ad78 jmp 4ad78 <== NOT EXECUTED 00047238 : int sigqueue( pid_t pid, int signo, const union sigval value ) { 47238: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return killinfo( pid, signo, &value ); 4723c: 486e 0010 pea %fp@(16) <== NOT EXECUTED 47240: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 47244: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47248: 4eb9 0004 c6a8 jsr 4c6a8 <== NOT EXECUTED } 4724e: 4e5e unlk %fp <== NOT EXECUTED 47250: 4e75 rts <== NOT EXECUTED ... 00047254 : #include int sigsuspend( const sigset_t *sigmask ) { 47254: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 47258: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED int status; POSIX_API_Control *api; api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; status = sigprocmask( SIG_BLOCK, sigmask, &saved_signals_blocked ); 4725c: 260e movel %fp,%d3 <== NOT EXECUTED 4725e: 5983 subql #4,%d3 <== NOT EXECUTED 47260: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47262: 45f9 0004 722c lea 4722c ,%a2 <== NOT EXECUTED 47268: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED (void) sigfillset( &all_signals ); 4726c: 240e movel %fp,%d2 <== NOT EXECUTED int status; POSIX_API_Control *api; api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; status = sigprocmask( SIG_BLOCK, sigmask, &saved_signals_blocked ); 4726e: 4878 0001 pea 1 <== NOT EXECUTED 47272: 4e92 jsr %a2@ <== NOT EXECUTED (void) sigfillset( &all_signals ); 47274: 5182 subql #8,%d2 <== NOT EXECUTED 47276: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47278: 4eb9 0004 718c jsr 4718c <== NOT EXECUTED status = sigtimedwait( &all_signals, NULL, NULL ); 4727e: 42a7 clrl %sp@- <== NOT EXECUTED 47280: 42a7 clrl %sp@- <== NOT EXECUTED 47282: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47284: 4eb9 0004 7308 jsr 47308 <== NOT EXECUTED (void) sigprocmask( SIG_SETMASK, &saved_signals_blocked, NULL ); 4728a: 42a7 clrl %sp@- <== NOT EXECUTED status = sigprocmask( SIG_BLOCK, sigmask, &saved_signals_blocked ); (void) sigfillset( &all_signals ); status = sigtimedwait( &all_signals, NULL, NULL ); 4728c: 2400 movel %d0,%d2 <== NOT EXECUTED (void) sigprocmask( SIG_SETMASK, &saved_signals_blocked, NULL ); 4728e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47290: 42a7 clrl %sp@- <== NOT EXECUTED 47292: 4e92 jsr %a2@ <== NOT EXECUTED /* * sigtimedwait() returns the signal number while sigsuspend() * is supposed to return -1 and EINTR when a signal is caught. */ if ( status != -1 ) 47294: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED 4729a: 70ff moveq #-1,%d0 <== NOT EXECUTED 4729c: b082 cmpl %d2,%d0 <== NOT EXECUTED 4729e: 670c beqs 472ac <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINTR ); 472a0: 4eb9 0004 e75c jsr 4e75c <__errno> <== NOT EXECUTED 472a6: 2040 moveal %d0,%a0 <== NOT EXECUTED 472a8: 7004 moveq #4,%d0 <== NOT EXECUTED 472aa: 2080 movel %d0,%a0@ <== NOT EXECUTED return status; } 472ac: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 472b2: 4e5e unlk %fp <== NOT EXECUTED 472b4: 70ff moveq #-1,%d0 <== NOT EXECUTED 472b6: 4e75 rts 0004588c : int sigtimedwait( const sigset_t *set, siginfo_t *info, const struct timespec *timeout ) { 4588c: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 45890: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@ <== NOT EXECUTED 45894: 2a6e 0008 moveal %fp@(8),%a5 <== NOT EXECUTED 45898: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4589c: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED * NOTE: This is very specifically a RELATIVE not ABSOLUTE time * in the Open Group specification. */ interval = 0; if ( timeout ) { 458a0: 6730 beqs 458d2 <== NOT EXECUTED if ( !_Timespec_Is_valid( timeout ) ) 458a2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 458a4: 4eb9 0004 8d30 jsr 48d30 <_Timespec_Is_valid> <== NOT EXECUTED 458aa: 588f addql #4,%sp <== NOT EXECUTED 458ac: 4a00 tstb %d0 <== NOT EXECUTED 458ae: 6710 beqs 458c0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); interval = _Timespec_To_ticks( timeout ); 458b0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 458b2: 4eb9 0004 8da8 jsr 48da8 <_Timespec_To_ticks> <== NOT EXECUTED if ( !interval ) 458b8: 588f addql #4,%sp <== NOT EXECUTED if ( timeout ) { if ( !_Timespec_Is_valid( timeout ) ) rtems_set_errno_and_return_minus_one( EINVAL ); interval = _Timespec_To_ticks( timeout ); 458ba: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !interval ) 458bc: 4a80 tstl %d0 <== NOT EXECUTED 458be: 6614 bnes 458d4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 458c0: 4eb9 0004 cbd0 jsr 4cbd0 <__errno> <== NOT EXECUTED 458c6: 7216 moveq #22,%d1 <== NOT EXECUTED 458c8: 2040 moveal %d0,%a0 <== NOT EXECUTED 458ca: 2081 movel %d1,%a0@ <== NOT EXECUTED 458cc: 74ff moveq #-1,%d2 <== NOT EXECUTED 458ce: 6000 0116 braw 459e6 <== NOT EXECUTED 458d2: 93c9 subal %a1,%a1 <== NOT EXECUTED /* * Initialize local variables. */ the_info = ( info ) ? info : &signal_information; 458d4: 4a83 tstl %d3 <== NOT EXECUTED 458d6: 6704 beqs 458dc <== NOT EXECUTED 458d8: 2443 moveal %d3,%a2 <== NOT EXECUTED 458da: 6004 bras 458e0 <== NOT EXECUTED 458dc: 45ee fff4 lea %fp@(-12),%a2 <== NOT EXECUTED the_thread = _Thread_Executing; 458e0: 2079 0005 a826 moveal 5a826 <_Thread_Executing>,%a0 <== NOT EXECUTED * What if they are already pending? */ /* API signals pending? */ _ISR_Disable( level ); 458e6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED the_info = ( info ) ? info : &signal_information; the_thread = _Thread_Executing; api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 458ec: 2668 0110 moveal %a0@(272),%a3 <== NOT EXECUTED * What if they are already pending? */ /* API signals pending? */ _ISR_Disable( level ); 458f0: 40c3 movew %sr,%d3 <== NOT EXECUTED 458f2: 8083 orl %d3,%d0 <== NOT EXECUTED 458f4: 46c0 movew %d0,%sr <== NOT EXECUTED if ( *set & api->signals_pending ) { 458f6: 2215 movel %a5@,%d1 <== NOT EXECUTED 458f8: 242b 00c8 movel %a3@(200),%d2 <== NOT EXECUTED 458fc: 2001 movel %d1,%d0 <== NOT EXECUTED 458fe: c082 andl %d2,%d0 <== NOT EXECUTED 45900: 6732 beqs 45934 <== NOT EXECUTED /* XXX real info later */ the_info->si_signo = _POSIX_signals_Get_highest( api->signals_pending ); 45902: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45904: 4eb9 0004 583c jsr 4583c <_POSIX_signals_Get_highest> <== NOT EXECUTED 4590a: 2480 movel %d0,%a2@ <== NOT EXECUTED _POSIX_signals_Clear_signals( 4590c: 42a7 clrl %sp@- <== NOT EXECUTED 4590e: 42a7 clrl %sp@- <== NOT EXECUTED 45910: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45912: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45914: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45916: 4eb9 0004 af78 jsr 4af78 <_POSIX_signals_Clear_signals> <== NOT EXECUTED the_info->si_signo, the_info, false, false ); _ISR_Enable( level ); 4591c: 46c3 movew %d3,%sr <== NOT EXECUTED the_info->si_code = SI_USER; 4591e: 7001 moveq #1,%d0 <== NOT EXECUTED the_info->si_value.sival_int = 0; 45920: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED return the_info->si_signo; 45924: 2412 movel %a2@,%d2 <== NOT EXECUTED false, false ); _ISR_Enable( level ); the_info->si_code = SI_USER; 45926: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED the_info->si_value.sival_int = 0; return the_info->si_signo; 4592a: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 45930: 6000 00b4 braw 459e6 <== NOT EXECUTED } /* Process pending signals? */ if ( *set & _POSIX_signals_Pending ) { 45934: 2039 0005 ae3e movel 5ae3e <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4593a: 49f9 0004 af78 lea 4af78 <_POSIX_signals_Clear_signals>,%a4 <== NOT EXECUTED 45940: c280 andl %d0,%d1 <== NOT EXECUTED 45942: 672e beqs 45972 <== NOT EXECUTED signo = _POSIX_signals_Get_highest( _POSIX_signals_Pending ); 45944: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45946: 4eb9 0004 583c jsr 4583c <_POSIX_signals_Get_highest> <== NOT EXECUTED _POSIX_signals_Clear_signals( api, signo, the_info, true, false ); 4594c: 42a7 clrl %sp@- <== NOT EXECUTED } /* Process pending signals? */ if ( *set & _POSIX_signals_Pending ) { signo = _POSIX_signals_Get_highest( _POSIX_signals_Pending ); 4594e: 2400 movel %d0,%d2 <== NOT EXECUTED _POSIX_signals_Clear_signals( api, signo, the_info, true, false ); 45950: 4878 0001 pea 1 <== NOT EXECUTED 45954: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45956: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45958: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4595a: 4e94 jsr %a4@ <== NOT EXECUTED _ISR_Enable( level ); 4595c: 46c3 movew %d3,%sr <== NOT EXECUTED the_info->si_signo = signo; the_info->si_code = SI_USER; 4595e: 7001 moveq #1,%d0 <== NOT EXECUTED the_info->si_value.sival_int = 0; 45960: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED 45964: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED signo = _POSIX_signals_Get_highest( _POSIX_signals_Pending ); _POSIX_signals_Clear_signals( api, signo, the_info, true, false ); _ISR_Enable( level ); the_info->si_signo = signo; the_info->si_code = SI_USER; 4596a: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED if ( *set & _POSIX_signals_Pending ) { signo = _POSIX_signals_Get_highest( _POSIX_signals_Pending ); _POSIX_signals_Clear_signals( api, signo, the_info, true, false ); _ISR_Enable( level ); the_info->si_signo = signo; 4596e: 2482 movel %d2,%a2@ <== NOT EXECUTED 45970: 6074 bras 459e6 <== NOT EXECUTED 45972: 2039 0005 a768 movel 5a768 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45978: 5280 addql #1,%d0 <== NOT EXECUTED 4597a: 23c0 0005 a768 movel %d0,5a768 <_Thread_Dispatch_disable_level> <== NOT EXECUTED the_info->si_code = SI_USER; the_info->si_value.sival_int = 0; return signo; } the_info->si_signo = -1; 45980: 70ff moveq #-1,%d0 <== NOT EXECUTED 45982: 2480 movel %d0,%a2@ <== NOT EXECUTED _Thread_Disable_dispatch(); the_thread->Wait.queue = &_POSIX_signals_Wait_queue; the_thread->Wait.return_code = EINTR; 45984: 7004 moveq #4,%d0 <== NOT EXECUTED 45986: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED } the_info->si_signo = -1; _Thread_Disable_dispatch(); the_thread->Wait.queue = &_POSIX_signals_Wait_queue; 4598a: 203c 0005 adfe movel #372222,%d0 <== NOT EXECUTED 45990: 2140 0044 movel %d0,%a0@(68) <== 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; 45994: 7001 moveq #1,%d0 <== NOT EXECUTED the_thread->Wait.return_code = EINTR; the_thread->Wait.option = *set; 45996: 2155 0030 movel %a5@,%a0@(48) <== NOT EXECUTED 4599a: 23c0 0005 ae2e movel %d0,5ae2e <_POSIX_signals_Wait_queue+0x30> <== NOT EXECUTED the_thread->Wait.return_argument = the_info; 459a0: 214a 0028 movel %a2,%a0@(40) <== NOT EXECUTED _Thread_queue_Enter_critical_section( &_POSIX_signals_Wait_queue ); _ISR_Enable( level ); 459a4: 46c3 movew %d3,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &_POSIX_signals_Wait_queue, interval ); 459a6: 4879 0004 87d8 pea 487d8 <_Thread_queue_Timeout> <== NOT EXECUTED 459ac: 2f09 movel %a1,%sp@- <== NOT EXECUTED 459ae: 4879 0005 adfe pea 5adfe <_POSIX_signals_Wait_queue> <== NOT EXECUTED 459b4: 4eb9 0004 84a0 jsr 484a0 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 459ba: 4eb9 0004 803a jsr 4803a <_Thread_Enable_dispatch> <== NOT EXECUTED /* * When the thread is set free by a signal, it is need to eliminate * the signal. */ _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, false, false ); 459c0: 42a7 clrl %sp@- <== NOT EXECUTED 459c2: 42a7 clrl %sp@- <== NOT EXECUTED 459c4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 459c6: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 459c8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 459ca: 4e94 jsr %a4@ <== NOT EXECUTED errno = _Thread_Executing->Wait.return_code; 459cc: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 459d2: 4eb9 0004 cbd0 jsr 4cbd0 <__errno> <== NOT EXECUTED 459d8: 2079 0005 a826 moveal 5a826 <_Thread_Executing>,%a0 <== NOT EXECUTED 459de: 2240 moveal %d0,%a1 <== NOT EXECUTED 459e0: 22a8 0034 movel %a0@(52),%a1@ <== NOT EXECUTED return the_info->si_signo; 459e4: 2412 movel %a2@,%d2 <== NOT EXECUTED } 459e6: 2002 movel %d2,%d0 <== NOT EXECUTED 459e8: 4cee 3c0c ffdc moveml %fp@(-36),%d2-%d3/%a2-%a5 <== NOT EXECUTED 459ee: 4e5e unlk %fp <== NOT EXECUTED 459f0: 4e75 rts <== NOT EXECUTED ... 00047488 : int sigwait( const sigset_t *set, int *sig ) { 47488: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4748c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4748e: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED int status; status = sigtimedwait( set, NULL, NULL ); 47492: 42a7 clrl %sp@- <== NOT EXECUTED 47494: 42a7 clrl %sp@- <== NOT EXECUTED 47496: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4749a: 4eb9 0004 7308 jsr 47308 <== NOT EXECUTED if ( status != -1 ) { 474a0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 474a6: 72ff moveq #-1,%d1 <== NOT EXECUTED 474a8: b280 cmpl %d0,%d1 <== NOT EXECUTED 474aa: 670a beqs 474b6 <== NOT EXECUTED if ( sig ) 474ac: 4a8a tstl %a2 <== NOT EXECUTED 474ae: 6702 beqs 474b2 <== NOT EXECUTED *sig = status; 474b0: 2480 movel %d0,%a2@ <== NOT EXECUTED 474b2: 4280 clrl %d0 <== NOT EXECUTED 474b4: 600a bras 474c0 <== NOT EXECUTED return 0; } return errno; 474b6: 4eb9 0004 e75c jsr 4e75c <__errno> <== NOT EXECUTED 474bc: 2040 moveal %d0,%a0 <== NOT EXECUTED 474be: 2010 movel %a0@,%d0 <== NOT EXECUTED } 474c0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 474c4: 4e5e unlk %fp <== NOT EXECUTED 474c6: 4e75 rts 00047470 : int sigwaitinfo( const sigset_t *set, siginfo_t *info ) { 47470: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return sigtimedwait( set, info, NULL ); 47474: 42a7 clrl %sp@- <== NOT EXECUTED 47476: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4747a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4747e: 4eb9 0004 7308 jsr 47308 <== NOT EXECUTED } 47484: 4e5e unlk %fp <== NOT EXECUTED 47486: 4e75 rts 0004383e : /* * Process input character, with semaphore. */ static int siproc (unsigned char c, struct rtems_termios_tty *tty) { 4383e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43842: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43844: 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)) { 43848: 202a 003c movel %a2@(60),%d0 <== NOT EXECUTED /* * Process input character, with semaphore. */ static int siproc (unsigned char c, struct rtems_termios_tty *tty) { 4384c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4384e: 4282 clrl %d2 <== NOT EXECUTED 43850: 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)) { 43854: 0280 0000 0e78 andil #3704,%d0 <== NOT EXECUTED 4385a: 6736 beqs 43892 <== NOT EXECUTED rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 4385c: 42a7 clrl %sp@- <== NOT EXECUTED 4385e: 42a7 clrl %sp@- <== NOT EXECUTED 43860: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 43864: 4eb9 0004 4e4c jsr 44e4c <== NOT EXECUTED i = iproc (c, tty); 4386a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4386c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4386e: 4eba fe6c jsr %pc@(436dc ) <== NOT EXECUTED rtems_semaphore_release (tty->osem); 43872: 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); 43876: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_semaphore_release (tty->osem); 43878: 4eb9 0004 4f54 jsr 44f54 <== NOT EXECUTED } else { i = iproc (c, tty); } return i; } 4387e: 2002 movel %d2,%d0 <== NOT EXECUTED 43880: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 43884: 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); 43888: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED } else { i = iproc (c, tty); } return i; } 4388e: 4e5e unlk %fp <== NOT EXECUTED 43890: 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); 43892: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED } return i; } 43896: 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); 4389a: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } return i; } 4389e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 438a2: 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); 438a4: 6000 fe36 braw 436dc <== NOT EXECUTED 0004480c : unsigned int sleep( unsigned int seconds ) { 4480c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED struct timespec tm; tp.tv_sec = seconds; tp.tv_nsec = 0; nanosleep( &tp, &tm ); 44810: 486e fff0 pea %fp@(-16) <== NOT EXECUTED ) { struct timespec tp; struct timespec tm; tp.tv_sec = seconds; 44814: 2d6e 0008 fff8 movel %fp@(8),%fp@(-8) <== NOT EXECUTED tp.tv_nsec = 0; nanosleep( &tp, &tm ); 4481a: 486e fff8 pea %fp@(-8) <== NOT EXECUTED { struct timespec tp; struct timespec tm; tp.tv_sec = seconds; tp.tv_nsec = 0; 4481e: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED nanosleep( &tp, &tm ); 44822: 4eb9 0004 9c00 jsr 49c00 <== NOT EXECUTED return tm.tv_sec; /* seconds remaining */ } 44828: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 4482c: 4e5e unlk %fp <== NOT EXECUTED 4482e: 4e75 rts 000466c4 : int _STAT_NAME( const char *path, struct stat *buf ) { 466c4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 466c8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 466ca: 2f02 movel %d2,%sp@- <== NOT EXECUTED 466cc: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !buf ) 466d0: 660e bnes 466e0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 466d2: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 466d8: 2040 moveal %d0,%a0 <== NOT EXECUTED 466da: 700e moveq #14,%d0 <== NOT EXECUTED 466dc: 2080 movel %d0,%a0@ <== NOT EXECUTED 466de: 6052 bras 46732 <== NOT EXECUTED status = rtems_filesystem_evaluate_path( path, 0, &loc, _STAT_FOLLOW_LINKS ); 466e0: 4878 0001 pea 1 <== NOT EXECUTED 466e4: 260e movel %fp,%d3 <== NOT EXECUTED 466e6: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 466ec: 2f03 movel %d3,%sp@- <== NOT EXECUTED 466ee: 42a7 clrl %sp@- <== NOT EXECUTED 466f0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 466f4: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( status != 0 ) 466fa: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 46700: 4a80 tstl %d0 <== NOT EXECUTED 46702: 662e bnes 46732 <== NOT EXECUTED return -1; if ( !loc.handlers->fstat_h ){ 46704: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 46708: 4aa8 0018 tstl %a0@(24) <== NOT EXECUTED 4670c: 6628 bnes 46736 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 4670e: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 46712: 4a88 tstl %a0 <== NOT EXECUTED 46714: 670e beqs 46724 <== NOT EXECUTED 46716: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 4671a: 4a88 tstl %a0 <== NOT EXECUTED 4671c: 6706 beqs 46724 <== NOT EXECUTED 4671e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46720: 4e90 jsr %a0@ <== NOT EXECUTED 46722: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 46724: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 4672a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4672c: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 46732: 74ff moveq #-1,%d2 <== NOT EXECUTED 46734: 603a bras 46770 <== NOT EXECUTED /* * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( buf, 0, sizeof(struct stat) ); 46736: 4878 004a pea 4a <== NOT EXECUTED 4673a: 42a7 clrl %sp@- <== NOT EXECUTED 4673c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4673e: 4eb9 0006 b05c jsr 6b05c <== NOT EXECUTED status = (*loc.handlers->fstat_h)( &loc, buf ); 46744: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46746: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 4674a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4674c: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 46750: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 46752: 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 ); 46756: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 46758: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4675e: 4a88 tstl %a0 <== NOT EXECUTED 46760: 670e beqs 46770 <== NOT EXECUTED 46762: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 46766: 4a88 tstl %a0 <== NOT EXECUTED 46768: 6706 beqs 46770 <== NOT EXECUTED 4676a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4676c: 4e90 jsr %a0@ <== NOT EXECUTED 4676e: 588f addql #4,%sp <== NOT EXECUTED return status; } 46770: 2002 movel %d2,%d0 <== NOT EXECUTED 46772: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 46776: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 4677a: 4e5e unlk %fp <== NOT EXECUTED 4677c: 4e75 rts 0005c890 : int symlink( const char *actualpath, const char *sympath ) { 5c890: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 5c894: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 5c898: 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 ); 5c89c: 1212 moveb %a2@,%d1 <== NOT EXECUTED 5c89e: 1001 moveb %d1,%d0 <== NOT EXECUTED 5c8a0: 49c0 extbl %d0 <== NOT EXECUTED 5c8a2: 742f moveq #47,%d2 <== NOT EXECUTED 5c8a4: b480 cmpl %d0,%d2 <== NOT EXECUTED 5c8a6: 670c beqs 5c8b4 <== NOT EXECUTED 5c8a8: 143c 005c moveb #92,%d2 <== NOT EXECUTED 5c8ac: b480 cmpl %d0,%d2 <== NOT EXECUTED 5c8ae: 6704 beqs 5c8b4 <== NOT EXECUTED 5c8b0: 4a01 tstb %d1 <== NOT EXECUTED 5c8b2: 6626 bnes 5c8da <== NOT EXECUTED 5c8b4: 4878 0010 pea 10 <== NOT EXECUTED 5c8b8: 2039 0007 e600 movel 7e600 ,%d0 <== NOT EXECUTED 5c8be: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED 5c8c4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5c8c6: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5c8ca: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED 5c8d0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c8d6: 7001 moveq #1,%d0 <== NOT EXECUTED 5c8d8: 6020 bras 5c8fa <== NOT EXECUTED 5c8da: 4878 0010 pea 10 <== NOT EXECUTED 5c8de: 2439 0007 e600 movel 7e600 ,%d2 <== NOT EXECUTED 5c8e4: 5882 addql #4,%d2 <== NOT EXECUTED 5c8e6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5c8e8: 486e ffec pea %fp@(-20) <== NOT EXECUTED 5c8ec: 4eb9 0006 aeec jsr 6aeec <== NOT EXECUTED 5c8f2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c8f8: 4280 clrl %d0 <== NOT EXECUTED result = (*loc.ops->evalformake_h)( &sympath[i], &loc, &name_start ); 5c8fa: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5c8fe: 260e movel %fp,%d3 <== NOT EXECUTED 5c900: 0683 ffff ffec addil #-20,%d3 <== NOT EXECUTED 5c906: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c908: 4872 0800 pea %a2@(00000000,%d0:l) <== NOT EXECUTED 5c90c: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5c910: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 5c914: 4e90 jsr %a0@ <== NOT EXECUTED if ( result != 0 ) 5c916: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c91c: 4a80 tstl %d0 <== NOT EXECUTED 5c91e: 6628 bnes 5c948 <== NOT EXECUTED return -1; if ( !loc.ops->symlink_h ) { 5c920: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 5c924: 2268 0038 moveal %a0@(56),%a1 <== NOT EXECUTED 5c928: 4a89 tstl %a1 <== NOT EXECUTED 5c92a: 6620 bnes 5c94c <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c92c: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c930: 4a88 tstl %a0 <== NOT EXECUTED 5c932: 6706 beqs 5c93a <== NOT EXECUTED 5c934: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c936: 4e90 jsr %a0@ <== NOT EXECUTED 5c938: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5c93a: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5c940: 2040 moveal %d0,%a0 <== NOT EXECUTED 5c942: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5c948: 74ff moveq #-1,%d2 <== NOT EXECUTED 5c94a: 602a bras 5c976 <== NOT EXECUTED } result = (*loc.ops->symlink_h)( &loc, actualpath, name_start); 5c94c: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 5c950: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c954: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c956: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c958: 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); 5c95c: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5c95e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5c964: 4a88 tstl %a0 <== NOT EXECUTED 5c966: 670e beqs 5c976 <== NOT EXECUTED 5c968: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5c96c: 4a88 tstl %a0 <== NOT EXECUTED 5c96e: 6706 beqs 5c976 <== NOT EXECUTED 5c970: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5c972: 4e90 jsr %a0@ <== NOT EXECUTED 5c974: 588f addql #4,%sp <== NOT EXECUTED return result; } 5c976: 2002 movel %d2,%d0 <== NOT EXECUTED 5c978: 4cee 040c ffe0 moveml %fp@(-32),%d2-%d3/%a2 <== NOT EXECUTED 5c97e: 4e5e unlk %fp <== NOT EXECUTED 5c980: 4e75 rts <== NOT EXECUTED ... 000445ba : * We have to extern it here. */ extern struct _reent libc_global_reent; void sync(void) { 445ba: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * Walk the one used initially by RTEMS. */ _fwalk(&libc_global_reent, sync_wrapper); 445be: 487a 0022 pea %pc@(445e2 ) <== NOT EXECUTED 445c2: 4879 0005 a1c0 pea 5a1c0 <== NOT EXECUTED 445c8: 4eb9 0004 e692 jsr 4e692 <_fwalk> <== NOT EXECUTED */ /* * Now walk all the per-thread reentrancy structures. */ rtems_iterate_over_all_threads(sync_per_thread); 445ce: 487a ffa8 pea %pc@(44578 ) <== NOT EXECUTED 445d2: 4eb9 0004 7b14 jsr 47b14 <== NOT EXECUTED 445d8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 445de: 4e5e unlk %fp <== NOT EXECUTED 445e0: 4e75 rts 00044578 : fdatasync(fn); } /* iterate over all FILE *'s for this thread */ static void sync_per_thread(Thread_Control *t) { 44578: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4457c: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED /* * The sync_wrapper() function will operate on the current thread's * reent structure so we will temporarily use that. */ this_reent = t->libc_reent; 44580: 2029 0108 movel %a1@(264),%d0 <== NOT EXECUTED fdatasync(fn); } /* iterate over all FILE *'s for this thread */ static void sync_per_thread(Thread_Control *t) { 44584: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * The sync_wrapper() function will operate on the current thread's * reent structure so we will temporarily use that. */ this_reent = t->libc_reent; if ( this_reent ) { 44586: 4a80 tstl %d0 <== NOT EXECUTED 44588: 6728 beqs 445b2 <== NOT EXECUTED current_reent = _Thread_Executing->libc_reent; 4458a: 2079 0005 bd82 moveal 5bd82 <_Thread_Executing>,%a0 <== NOT EXECUTED 44590: 2428 0108 movel %a0@(264),%d2 <== NOT EXECUTED _Thread_Executing->libc_reent = this_reent; 44594: 2140 0108 movel %d0,%a0@(264) <== NOT EXECUTED _fwalk (t->libc_reent, sync_wrapper); 44598: 487a 0048 pea %pc@(445e2 ) <== NOT EXECUTED 4459c: 2f29 0108 movel %a1@(264),%sp@- <== NOT EXECUTED 445a0: 4eb9 0004 e692 jsr 4e692 <_fwalk> <== NOT EXECUTED _Thread_Executing->libc_reent = current_reent; 445a6: 2079 0005 bd82 moveal 5bd82 <_Thread_Executing>,%a0 <== NOT EXECUTED 445ac: 508f addql #8,%sp <== NOT EXECUTED 445ae: 2142 0108 movel %d2,%a0@(264) <== NOT EXECUTED } } 445b2: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 445b6: 4e5e unlk %fp <== NOT EXECUTED 445b8: 4e75 rts 000445e2 : /* XXX check standards -- Linux version appears to be void */ void _fwalk(struct _reent *, void *); static void sync_wrapper(FILE *f) { 445e2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 445e6: 2f02 movel %d2,%sp@- <== NOT EXECUTED int fn = fileno(f); 445e8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 445ec: 4eb9 0004 dc38 jsr 4dc38 <== NOT EXECUTED 445f2: 2400 movel %d0,%d2 <== NOT EXECUTED fsync(fn); 445f4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 445f6: 4eb9 0004 3440 jsr 43440 <== NOT EXECUTED fdatasync(fn); 445fc: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 44600: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED static void sync_wrapper(FILE *f) { int fn = fileno(f); fsync(fn); fdatasync(fn); 44604: 508f addql #8,%sp <== NOT EXECUTED } 44606: 4e5e unlk %fp <== NOT EXECUTED static void sync_wrapper(FILE *f) { int fn = fileno(f); fsync(fn); fdatasync(fn); 44608: 4ef9 0004 3178 jmp 43178 <== NOT EXECUTED ... 00044860 : */ long sysconf( int name ) { 44860: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44864: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 44868: 2f02 movel %d2,%sp@- <== NOT EXECUTED switch (name) { 4486a: 7004 moveq #4,%d0 <== NOT EXECUTED 4486c: b081 cmpl %d1,%d0 <== NOT EXECUTED 4486e: 6736 beqs 448a6 <== NOT EXECUTED 44870: 6d08 blts 4487a <== NOT EXECUTED 44872: 7402 moveq #2,%d2 <== NOT EXECUTED 44874: b481 cmpl %d1,%d2 <== NOT EXECUTED 44876: 6636 bnes 448ae <== NOT EXECUTED 44878: 601a bras 44894 <== NOT EXECUTED 4487a: 203c 0000 1000 movel #4096,%d0 <== NOT EXECUTED 44880: 7408 moveq #8,%d2 <== NOT EXECUTED 44882: b481 cmpl %d1,%d2 <== NOT EXECUTED 44884: 6736 beqs 448bc <== NOT EXECUTED 44886: 303c 0400 movew #1024,%d0 <== NOT EXECUTED 4488a: 143c 0033 moveb #51,%d2 <== NOT EXECUTED 4488e: b481 cmpl %d1,%d2 <== NOT EXECUTED 44890: 661c bnes 448ae <== NOT EXECUTED 44892: 6028 bras 448bc <== NOT EXECUTED case _SC_CLK_TCK: return (TOD_MICROSECONDS_PER_SECOND / _TOD_Microseconds_per_tick); 44894: 41f9 0005 93b6 lea 593b6 <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 4489a: 203c 000f 4240 movel #1000000,%d0 <== NOT EXECUTED 448a0: 4c50 0000 remul %a0@,%d0,%d0 <== NOT EXECUTED 448a4: 6016 bras 448bc <== NOT EXECUTED case _SC_OPEN_MAX: { return rtems_libio_number_iops; 448a6: 2039 0005 7608 movel 57608 ,%d0 <== NOT EXECUTED 448ac: 600e bras 448bc <== NOT EXECUTED default: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 448ae: 4eb9 0004 bbd4 jsr 4bbd4 <__errno> <== NOT EXECUTED 448b4: 2040 moveal %d0,%a0 <== NOT EXECUTED 448b6: 7216 moveq #22,%d1 <== NOT EXECUTED 448b8: 70ff moveq #-1,%d0 <== NOT EXECUTED 448ba: 2081 movel %d1,%a0@ <== NOT EXECUTED } 448bc: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 448c0: 4e5e unlk %fp <== NOT EXECUTED 448c2: 4e75 rts 0005c984 : #include int tcdrain( int fd ) { 5c984: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return ioctl( fd, RTEMS_IO_TCDRAIN, 0 ); 5c988: 42a7 clrl %sp@- <== NOT EXECUTED 5c98a: 4878 0003 pea 3 <== NOT EXECUTED 5c98e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5c992: 4eb9 0005 bd0c jsr 5bd0c <== NOT EXECUTED } 5c998: 4e5e unlk %fp <== NOT EXECUTED 5c99a: 4e75 rts 0004ecb4 : int tcgetattr( int fd, struct termios *tp ) { 4ecb4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return ioctl( fd, RTEMS_IO_GET_ATTRIBUTES, tp ); 4ecb8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4ecbc: 4878 0001 pea 1 <== NOT EXECUTED 4ecc0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ecc4: 4eb9 0005 2370 jsr 52370 <== NOT EXECUTED } 4ecca: 4e5e unlk %fp <== NOT EXECUTED 4eccc: 4e75 rts <== NOT EXECUTED ... 0004ecd0 : int tcsetattr( int fd, int opt, struct termios *tp ) { 4ecd0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ecd4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4ecd6: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4ecda: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ecdc: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4ece0: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED switch (opt) { 4ece4: 4a80 tstl %d0 <== NOT EXECUTED 4ece6: 672e beqs 4ed16 <== NOT EXECUTED 4ece8: 7201 moveq #1,%d1 <== NOT EXECUTED 4ecea: b280 cmpl %d0,%d1 <== NOT EXECUTED 4ecec: 6710 beqs 4ecfe <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 4ecee: 4eb9 0005 2e00 jsr 52e00 <__errno> <== NOT EXECUTED 4ecf4: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ecf6: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 4ecfc: 6036 bras 4ed34 <== NOT EXECUTED case TCSADRAIN: if (ioctl( fd, RTEMS_IO_TCDRAIN, NULL ) < 0) 4ecfe: 42a7 clrl %sp@- <== NOT EXECUTED 4ed00: 4878 0003 pea 3 <== NOT EXECUTED 4ed04: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ed06: 4eb9 0005 2370 jsr 52370 <== NOT EXECUTED 4ed0c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ed12: 4a80 tstl %d0 <== NOT EXECUTED 4ed14: 6d1e blts 4ed34 <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 4ed16: 2d43 0010 movel %d3,%fp@(16) <== NOT EXECUTED } } 4ed1a: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 4ed1e: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } } 4ed22: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 4ed26: 7002 moveq #2,%d0 <== NOT EXECUTED 4ed28: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED } } 4ed2c: 4e5e unlk %fp <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 4ed2e: 4ef9 0005 2370 jmp 52370 <== NOT EXECUTED } } 4ed34: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4ed38: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 4ed3c: 4e5e unlk %fp <== NOT EXECUTED 4ed3e: 70ff moveq #-1,%d0 <== NOT EXECUTED 4ed40: 4e75 rts <== NOT EXECUTED ... 000451a4 : #include long telldir( DIR *dirp ) { 451a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 451a8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 451ac: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_libio_t *iop; if ( !dirp ) 451ae: 4a88 tstl %a0 <== NOT EXECUTED 451b0: 6610 bnes 451c2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 451b2: 4eb9 0004 e684 jsr 4e684 <__errno> <== NOT EXECUTED 451b8: 2040 moveal %d0,%a0 <== NOT EXECUTED 451ba: 7009 moveq #9,%d0 <== NOT EXECUTED 451bc: 2080 movel %d0,%a0@ <== NOT EXECUTED 451be: 70ff moveq #-1,%d0 <== NOT EXECUTED 451c0: 6044 bras 45206 <== NOT EXECUTED /* * Get the file control block structure associated with the * file descriptor */ iop = rtems_libio_iop( dirp->dd_fd ); 451c2: 2410 movel %a0@,%d2 <== NOT EXECUTED 451c4: b4b9 0005 af98 cmpl 5af98 ,%d2 <== NOT EXECUTED 451ca: 641a bccs 451e6 <== NOT EXECUTED 451cc: 2202 movel %d2,%d1 <== NOT EXECUTED 451ce: 2002 movel %d2,%d0 <== NOT EXECUTED 451d0: e589 lsll #2,%d1 <== NOT EXECUTED 451d2: e988 lsll #4,%d0 <== NOT EXECUTED 451d4: 9081 subl %d1,%d0 <== NOT EXECUTED 451d6: 2079 0005 cb10 moveal 5cb10 ,%a0 <== NOT EXECUTED 451dc: d082 addl %d2,%d0 <== NOT EXECUTED 451de: e588 lsll #2,%d0 <== NOT EXECUTED 451e0: d1c0 addal %d0,%a0 <== NOT EXECUTED if (iop == NULL) 451e2: 4a88 tstl %a0 <== NOT EXECUTED 451e4: 661c bnes 45202 <== NOT EXECUTED assert(0); 451e6: 4879 0005 8c33 pea 58c33 <== NOT EXECUTED 451ec: 4879 0005 9cd5 pea 59cd5 <__func__.5318> <== NOT EXECUTED 451f2: 4878 002c pea 2c <== NOT EXECUTED 451f6: 4879 0005 9c8b pea 59c8b <== NOT EXECUTED 451fc: 4eb9 0004 3280 jsr 43280 <__assert_func> <== NOT EXECUTED return (long)( iop->offset ); 45202: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED } 45206: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4520a: 4e5e unlk %fp <== NOT EXECUTED 4520c: 4e75 rts <== NOT EXECUTED ... 00042c54 : #include int termios_baud_to_number( int termios_baud ) { 42c54: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42c58: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 42c5c: 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; 42c5e: 203c 0000 04b0 movel #1200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42c64: 7409 moveq #9,%d2 <== NOT EXECUTED 42c66: b481 cmpl %d1,%d2 <== NOT EXECUTED 42c68: 6700 0108 beqw 42d72 <== NOT EXECUTED 42c6c: 6d6c blts 42cda <== NOT EXECUTED case B0: baud = 0; break; case B50: baud = 50; break; case B75: baud = 75; break; case B110: baud = 110; break; 42c6e: 303c 0087 movew #135,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42c72: 143c 0004 moveb #4,%d2 <== NOT EXECUTED 42c76: b481 cmpl %d1,%d2 <== NOT EXECUTED 42c78: 6700 00f8 beqw 42d72 <== NOT EXECUTED 42c7c: 6d2a blts 42ca8 <== NOT EXECUTED 42c7e: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 42c82: b081 cmpl %d1,%d0 <== NOT EXECUTED 42c84: 6700 00da beqw 42d60 <== NOT EXECUTED 42c88: 6d0a blts 42c94 <== NOT EXECUTED 42c8a: 4a81 tstl %d1 <== NOT EXECUTED 42c8c: 6700 00d6 beqw 42d64 <== NOT EXECUTED 42c90: 6000 00de braw 42d70 <== NOT EXECUTED 42c94: 7402 moveq #2,%d2 <== NOT EXECUTED 42c96: b481 cmpl %d1,%d2 <== NOT EXECUTED 42c98: 6700 00ce beqw 42d68 <== NOT EXECUTED 42c9c: 7003 moveq #3,%d0 <== NOT EXECUTED 42c9e: b081 cmpl %d1,%d0 <== NOT EXECUTED 42ca0: 6600 00ce bnew 42d70 <== NOT EXECUTED 42ca4: 6000 00c6 braw 42d6c <== 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; 42ca8: 203c 0000 00c8 movel #200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cae: 7406 moveq #6,%d2 <== NOT EXECUTED 42cb0: b481 cmpl %d1,%d2 <== NOT EXECUTED 42cb2: 6700 00be beqw 42d72 <== 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; 42cb6: 0680 ffff ffce addil #-50,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cbc: b481 cmpl %d1,%d2 <== NOT EXECUTED 42cbe: 6e00 00b2 bgtw 42d72 <== 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; 42cc2: 303c 012c movew #300,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cc6: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 42cca: b481 cmpl %d1,%d2 <== NOT EXECUTED 42ccc: 6700 00a4 beqw 42d72 <== 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; 42cd0: 303c 0258 movew #600,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cd4: 143c 0008 moveb #8,%d2 <== NOT EXECUTED 42cd8: 6038 bras 42d12 <== 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; 42cda: 203c 0000 4b00 movel #19200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42ce0: 740e moveq #14,%d2 <== NOT EXECUTED 42ce2: b481 cmpl %d1,%d2 <== NOT EXECUTED 42ce4: 6700 008c beqw 42d72 <== NOT EXECUTED 42ce8: 6d2e blts 42d18 <== 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; 42cea: 303c 0960 movew #2400,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cee: 143c 000b moveb #11,%d2 <== NOT EXECUTED 42cf2: b481 cmpl %d1,%d2 <== NOT EXECUTED 42cf4: 677c beqs 42d72 <== 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; 42cf6: 303c 0708 movew #1800,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42cfa: b481 cmpl %d1,%d2 <== NOT EXECUTED 42cfc: 6e74 bgts 42d72 <== 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; 42cfe: 303c 12c0 movew #4800,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d02: 143c 000c moveb #12,%d2 <== NOT EXECUTED 42d06: b481 cmpl %d1,%d2 <== NOT EXECUTED 42d08: 6768 beqs 42d72 <== 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; 42d0a: 303c 2580 movew #9600,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d0e: 143c 000d moveb #13,%d2 <== NOT EXECUTED 42d12: b481 cmpl %d1,%d2 <== NOT EXECUTED 42d14: 665a bnes 42d70 <== NOT EXECUTED 42d16: 605a bras 42d72 <== 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; 42d18: 203c 0001 c200 movel #115200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d1e: 0c81 0000 1002 cmpil #4098,%d1 <== NOT EXECUTED 42d24: 674c beqs 42d72 <== NOT EXECUTED 42d26: 6e1a bgts 42d42 <== NOT EXECUTED 42d28: 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; 42d2a: 203c 0000 9600 movel #38400,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d30: b481 cmpl %d1,%d2 <== NOT EXECUTED 42d32: 673e beqs 42d72 <== 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; 42d34: 303c e100 movew #-7936,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d38: 0c81 0000 1001 cmpil #4097,%d1 <== NOT EXECUTED 42d3e: 6630 bnes 42d70 <== NOT EXECUTED 42d40: 6030 bras 42d72 <== 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; 42d42: 203c 0003 8400 movel #230400,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d48: 0c81 0000 1003 cmpil #4099,%d1 <== NOT EXECUTED 42d4e: 6722 beqs 42d72 <== 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; 42d50: 203c 0007 0800 movel #460800,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 42d56: 0c81 0000 1004 cmpil #4100,%d1 <== NOT EXECUTED 42d5c: 6612 bnes 42d70 <== NOT EXECUTED 42d5e: 6012 bras 42d72 <== NOT EXECUTED 42d60: 7032 moveq #50,%d0 <== NOT EXECUTED 42d62: 600e bras 42d72 <== NOT EXECUTED 42d64: 4280 clrl %d0 <== NOT EXECUTED 42d66: 600a bras 42d72 <== NOT EXECUTED 42d68: 704b moveq #75,%d0 <== NOT EXECUTED 42d6a: 6006 bras 42d72 <== NOT EXECUTED case B0: baud = 0; break; case B50: baud = 50; break; case B75: baud = 75; break; 42d6c: 706e moveq #110,%d0 <== NOT EXECUTED 42d6e: 6002 bras 42d72 <== 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; 42d70: 70ff moveq #-1,%d0 <== NOT EXECUTED default: baud = -1; break; } return baud; } 42d72: 241f movel %sp@+,%d2 <== NOT EXECUTED 42d74: 4e5e unlk %fp <== NOT EXECUTED 42d76: 4e75 rts 00049990 : int timer_create( clockid_t clock_id, struct sigevent *evp, timer_t *timerid ) { 49990: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49994: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49996: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 4999a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4999c: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED POSIX_Timer_Control *ptimer; if ( clock_id != CLOCK_REALTIME ) 499a0: 7001 moveq #1,%d0 <== NOT EXECUTED 499a2: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 499a6: 6620 bnes 499c8 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !timerid ) 499a8: 4a8b tstl %a3 <== NOT EXECUTED 499aa: 671c beqs 499c8 <== NOT EXECUTED /* * The data of the structure evp are checked in order to verify if they * are coherent. */ if (evp != NULL) { 499ac: 4a8a tstl %a2 <== NOT EXECUTED 499ae: 6726 beqs 499d6 <== NOT EXECUTED /* The structure has data */ if ( ( evp->sigev_notify != SIGEV_NONE ) && 499b0: 2012 movel %a2@,%d0 <== NOT EXECUTED 499b2: 7201 moveq #1,%d1 <== NOT EXECUTED 499b4: 5380 subql #1,%d0 <== NOT EXECUTED 499b6: b280 cmpl %d0,%d1 <== NOT EXECUTED 499b8: 650e bcss 499c8 <== NOT EXECUTED ( evp->sigev_notify != SIGEV_SIGNAL ) ) { /* The value of the field sigev_notify is not valid */ rtems_set_errno_and_return_minus_one( EINVAL ); } if ( !evp->sigev_signo ) 499ba: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 499be: 6708 beqs 499c8 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(evp->sigev_signo) ) 499c0: 5380 subql #1,%d0 <== NOT EXECUTED 499c2: 721f moveq #31,%d1 <== NOT EXECUTED 499c4: b280 cmpl %d0,%d1 <== NOT EXECUTED 499c6: 640e bccs 499d6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 499c8: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 499ce: 7216 moveq #22,%d1 <== NOT EXECUTED 499d0: 2040 moveal %d0,%a0 <== NOT EXECUTED 499d2: 2081 movel %d1,%a0@ <== NOT EXECUTED 499d4: 6034 bras 49a0a <== NOT EXECUTED 499d6: 2039 0006 0168 movel 60168 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 499dc: 5280 addql #1,%d0 <== NOT EXECUTED 499de: 23c0 0006 0168 movel %d0,60168 <_Thread_Dispatch_disable_level> <== NOT EXECUTED * the inactive chain of free timer control blocks. */ RTEMS_INLINE_ROUTINE POSIX_Timer_Control *_POSIX_Timer_Allocate( void ) { return (POSIX_Timer_Control *) _Objects_Allocate( &_POSIX_Timer_Information ); 499e4: 4879 0006 040e pea 6040e <_POSIX_Timer_Information> <== NOT EXECUTED 499ea: 4eb9 0004 b7f0 jsr 4b7f0 <_Objects_Allocate> <== NOT EXECUTED /* * Allocate a timer */ ptimer = _POSIX_Timer_Allocate(); if ( !ptimer ) { 499f0: 588f addql #4,%sp <== NOT EXECUTED 499f2: 2240 moveal %d0,%a1 <== NOT EXECUTED 499f4: 4a80 tstl %d0 <== NOT EXECUTED 499f6: 6616 bnes 49a0e <== NOT EXECUTED _Thread_Enable_dispatch(); 499f8: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EAGAIN ); 499fe: 4eb9 0005 13c4 jsr 513c4 <__errno> <== NOT EXECUTED 49a04: 2040 moveal %d0,%a0 <== NOT EXECUTED 49a06: 700b moveq #11,%d0 <== NOT EXECUTED 49a08: 2080 movel %d0,%a0@ <== NOT EXECUTED 49a0a: 70ff moveq #-1,%d0 <== NOT EXECUTED 49a0c: 606a bras 49a78 <== NOT EXECUTED } /* The data of the created timer are stored to use them later */ ptimer->state = POSIX_TIMER_STATE_CREATE_NEW; 49a0e: 7002 moveq #2,%d0 <== NOT EXECUTED 49a10: 1340 003c moveb %d0,%a1@(60) <== NOT EXECUTED ptimer->thread_id = _Thread_Executing->Object.id; 49a14: 2079 0006 0226 moveal 60226 <_Thread_Executing>,%a0 <== NOT EXECUTED 49a1a: 2368 0008 0038 movel %a0@(8),%a1@(56) <== NOT EXECUTED if ( evp != NULL ) { 49a20: 4a8a tstl %a2 <== NOT EXECUTED 49a22: 6710 beqs 49a34 <== NOT EXECUTED ptimer->inf.sigev_notify = evp->sigev_notify; 49a24: 2352 003e movel %a2@,%a1@(62) <== NOT EXECUTED ptimer->inf.sigev_signo = evp->sigev_signo; ptimer->inf.sigev_value = evp->sigev_value; 49a28: 236a 0008 0046 movel %a2@(8),%a1@(70) <== NOT EXECUTED ptimer->state = POSIX_TIMER_STATE_CREATE_NEW; ptimer->thread_id = _Thread_Executing->Object.id; if ( evp != NULL ) { ptimer->inf.sigev_notify = evp->sigev_notify; ptimer->inf.sigev_signo = evp->sigev_signo; 49a2e: 236a 0004 0042 movel %a2@(4),%a1@(66) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 49a34: 2079 0006 0428 moveal 60428 <_POSIX_Timer_Information+0x1a>,%a0 <== NOT EXECUTED 49a3a: 4280 clrl %d0 <== NOT EXECUTED 49a3c: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED 49a40: 2189 0c00 movel %a1,%a0@(00000000,%d0:l:4) <== NOT EXECUTED ptimer->inf.sigev_value = evp->sigev_value; } ptimer->overrun = 0; 49a44: 42a9 0066 clrl %a1@(102) <== NOT EXECUTED ptimer->timer_data.it_value.tv_sec = 0; 49a48: 42a9 005a clrl %a1@(90) <== NOT EXECUTED ptimer->timer_data.it_value.tv_nsec = 0; 49a4c: 42a9 005e clrl %a1@(94) <== NOT EXECUTED ptimer->timer_data.it_interval.tv_sec = 0; 49a50: 42a9 0052 clrl %a1@(82) <== NOT EXECUTED ptimer->timer_data.it_interval.tv_nsec = 0; 49a54: 42a9 0056 clrl %a1@(86) <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 49a58: 42a9 0030 clrl %a1@(48) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string == FALSE */ the_object->name.name_u32 = name; 49a5c: 42a9 000c clrl %a1@(12) <== NOT EXECUTED _Watchdog_Initialize( &ptimer->Timer, NULL, 0, NULL ); _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0); *timerid = ptimer->Object.id; 49a60: 26a9 0008 movel %a1@(8),%a3@ <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 49a64: 42a9 0018 clrl %a1@(24) <== NOT EXECUTED the_watchdog->routine = routine; 49a68: 42a9 002c clrl %a1@(44) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 49a6c: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED _Thread_Enable_dispatch(); 49a70: 4eb9 0004 c48a jsr 4c48a <_Thread_Enable_dispatch> <== NOT EXECUTED 49a76: 4280 clrl %d0 <== NOT EXECUTED return 0; } 49a78: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 49a7c: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 49a80: 4e5e unlk %fp <== NOT EXECUTED 49a82: 4e75 rts 00044fd8 : int timer_delete( timer_t timerid ) { 44fd8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 44fdc: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Timer_Control *_POSIX_Timer_Get ( Objects_Id id, Objects_Locations *location ) { return (POSIX_Timer_Control *) 44fde: 486e fffc pea %fp@(-4) <== NOT EXECUTED 44fe2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44fe6: 4879 0005 a28e pea 5a28e <_POSIX_Timer_Information> <== NOT EXECUTED 44fec: 4eb9 0004 7174 jsr 47174 <_Objects_Get> <== NOT EXECUTED */ POSIX_Timer_Control *ptimer; Objects_Locations location; ptimer = _POSIX_Timer_Get( timerid, &location ); switch ( location ) { 44ff2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44ff8: 2440 moveal %d0,%a2 <== NOT EXECUTED 44ffa: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 44ffe: 663c bnes 4503c <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_POSIX_Timer_Information, &ptimer->Object ); 45000: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45002: 4879 0005 a28e pea 5a28e <_POSIX_Timer_Information> <== NOT EXECUTED 45008: 4eb9 0004 6d9c jsr 46d9c <_Objects_Close> <== NOT EXECUTED ptimer->state = POSIX_TIMER_STATE_FREE; 4500e: 7001 moveq #1,%d0 <== NOT EXECUTED 45010: 1540 003c moveb %d0,%a2@(60) <== NOT EXECUTED (void) _Watchdog_Remove( &ptimer->Timer ); 45014: 486a 0010 pea %a2@(16) <== NOT EXECUTED 45018: 4eb9 0004 8a3c jsr 48a3c <_Watchdog_Remove> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Timer_Free ( POSIX_Timer_Control *the_timer ) { _Objects_Free( &_POSIX_Timer_Information, &the_timer->Object ); 4501e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45020: 4879 0005 a28e pea 5a28e <_POSIX_Timer_Information> <== NOT EXECUTED 45026: 4eb9 0004 7014 jsr 47014 <_Objects_Free> <== NOT EXECUTED _POSIX_Timer_Free( ptimer ); _Thread_Enable_dispatch(); 4502c: 4eb9 0004 78e6 jsr 478e6 <_Thread_Enable_dispatch> <== NOT EXECUTED 45032: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 45038: 4280 clrl %d0 <== NOT EXECUTED 4503a: 600e bras 4504a <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 4503c: 4eb9 0004 c920 jsr 4c920 <__errno> <== NOT EXECUTED 45042: 2040 moveal %d0,%a0 <== NOT EXECUTED 45044: 7216 moveq #22,%d1 <== NOT EXECUTED 45046: 70ff moveq #-1,%d0 <== NOT EXECUTED 45048: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4504a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4504e: 4e5e unlk %fp <== NOT EXECUTED 45050: 4e75 rts <== NOT EXECUTED ... 00045e0c : * its execution, _POSIX_Timer_TSR will have to set this counter to 0. */ int timer_getoverrun( timer_t timerid ) { 45e0c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45e10: 2f02 movel %d2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Timer_Control *_POSIX_Timer_Get ( Objects_Id id, Objects_Locations *location ) { return (POSIX_Timer_Control *) 45e12: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45e16: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45e1a: 4879 0005 b45a pea 5b45a <_POSIX_Timer_Information> <== NOT EXECUTED 45e20: 4eb9 0004 7f2c jsr 47f2c <_Objects_Get> <== NOT EXECUTED int overrun; POSIX_Timer_Control *ptimer; Objects_Locations location; ptimer = _POSIX_Timer_Get( timerid, &location ); switch ( location ) { 45e26: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45e2c: 2040 moveal %d0,%a0 <== NOT EXECUTED 45e2e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45e32: 6610 bnes 45e44 <== NOT EXECUTED case OBJECTS_LOCAL: overrun = ptimer->overrun; 45e34: 2428 0066 movel %a0@(102),%d2 <== NOT EXECUTED ptimer->overrun = 0; 45e38: 42a8 0066 clrl %a0@(102) <== NOT EXECUTED _Thread_Enable_dispatch(); 45e3c: 4eb9 0004 869e jsr 4869e <_Thread_Enable_dispatch> <== NOT EXECUTED 45e42: 600e bras 45e52 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 45e44: 4eb9 0004 d3bc jsr 4d3bc <__errno> <== NOT EXECUTED 45e4a: 2040 moveal %d0,%a0 <== NOT EXECUTED 45e4c: 7016 moveq #22,%d0 <== NOT EXECUTED 45e4e: 74ff moveq #-1,%d2 <== NOT EXECUTED 45e50: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45e52: 2002 movel %d2,%d0 <== NOT EXECUTED 45e54: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45e58: 4e5e unlk %fp <== NOT EXECUTED 45e5a: 4e75 rts 00045e5c : int timer_gettime( timer_t timerid, struct itimerspec *value ) { 45e5c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 45e60: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45e62: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 45e66: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_Timer_Control *ptimer; Objects_Locations location; struct timespec current_time; Watchdog_Interval left; if ( !value ) 45e68: 4a8b tstl %a3 <== NOT EXECUTED 45e6a: 6610 bnes 45e7c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 45e6c: 4eb9 0004 d3bc jsr 4d3bc <__errno> <== NOT EXECUTED 45e72: 2040 moveal %d0,%a0 <== NOT EXECUTED 45e74: 7016 moveq #22,%d0 <== NOT EXECUTED 45e76: 2080 movel %d0,%a0@ <== NOT EXECUTED 45e78: 70ff moveq #-1,%d0 <== NOT EXECUTED 45e7a: 606e bras 45eea <== NOT EXECUTED /* Reads the current time */ _TOD_Get( ¤t_time ); 45e7c: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 45e80: 4eb9 0004 7718 jsr 47718 <_TOD_Get> <== NOT EXECUTED 45e86: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45e8a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45e8e: 4879 0005 b45a pea 5b45a <_POSIX_Timer_Information> <== NOT EXECUTED 45e94: 4eb9 0004 7f2c jsr 47f2c <_Objects_Get> <== NOT EXECUTED ptimer = _POSIX_Timer_Get( timerid, &location ); switch ( location ) { 45e9a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45ea0: 2440 moveal %d0,%a2 <== NOT EXECUTED 45ea2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45ea6: 6634 bnes 45edc <== NOT EXECUTED left = (ptimer->Timer.start_time + ptimer->Timer.initial) - /* expire */ _Watchdog_Ticks_since_boot; /* now */ _Timespec_From_ticks( left, &value->it_value ); 45ea8: 486b 0008 pea %a3@(8) <== NOT EXECUTED 45eac: 202a 001c movel %a2@(28),%d0 <== NOT EXECUTED 45eb0: d0aa 0024 addl %a2@(36),%d0 <== NOT EXECUTED case OBJECTS_LOCAL: /* Calculates the time left before the timer finishes */ left = 45eb4: 2239 0005 b2fc movel 5b2fc <_Watchdog_Ticks_since_boot>,%d1 <== NOT EXECUTED (ptimer->Timer.start_time + ptimer->Timer.initial) - /* expire */ _Watchdog_Ticks_since_boot; /* now */ _Timespec_From_ticks( left, &value->it_value ); 45eba: 9081 subl %d1,%d0 <== NOT EXECUTED 45ebc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45ebe: 4eb9 0004 9394 jsr 49394 <_Timespec_From_ticks> <== NOT EXECUTED value->it_interval = ptimer->timer_data.it_interval; 45ec4: 202a 0052 movel %a2@(82),%d0 <== NOT EXECUTED 45ec8: 276a 0056 0004 movel %a2@(86),%a3@(4) <== NOT EXECUTED 45ece: 2680 movel %d0,%a3@ <== NOT EXECUTED _Thread_Enable_dispatch(); 45ed0: 4eb9 0004 869e jsr 4869e <_Thread_Enable_dispatch> <== NOT EXECUTED 45ed6: 508f addql #8,%sp <== NOT EXECUTED 45ed8: 4280 clrl %d0 <== NOT EXECUTED 45eda: 600e bras 45eea <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 45edc: 4eb9 0004 d3bc jsr 4d3bc <__errno> <== NOT EXECUTED 45ee2: 2040 moveal %d0,%a0 <== NOT EXECUTED 45ee4: 7216 moveq #22,%d1 <== NOT EXECUTED 45ee6: 70ff moveq #-1,%d0 <== NOT EXECUTED 45ee8: 2081 movel %d1,%a0@ <== NOT EXECUTED } 45eea: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 45eee: 266e fff0 moveal %fp@(-16),%a3 <== NOT EXECUTED 45ef2: 4e5e unlk %fp <== NOT EXECUTED 45ef4: 4e75 rts <== NOT EXECUTED ... 00045ef8 : timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue ) { 45ef8: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 45efc: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 45f00: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 45f04: 286e 0010 moveal %fp@(16),%a4 <== NOT EXECUTED 45f08: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED Objects_Locations location; bool activated; uint32_t initial_period; struct itimerspec normalize; if ( !value ) 45f0c: 4a8c tstl %a4 <== NOT EXECUTED 45f0e: 675a beqs 45f6a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); /* First, it verifies if the structure "value" is correct */ if ( ( value->it_value.tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) || 45f10: 203c 3b9a c9ff movel #999999999,%d0 <== NOT EXECUTED 45f16: b0ac 000c cmpl %a4@(12),%d0 <== NOT EXECUTED 45f1a: 654e bcss 45f6a <== NOT EXECUTED 45f1c: 202c 0004 movel %a4@(4),%d0 <== NOT EXECUTED 45f20: 0c80 3b9a c9ff cmpil #999999999,%d0 <== NOT EXECUTED 45f26: 6242 bhis 45f6a <== NOT EXECUTED 45f28: 4a80 tstl %d0 <== NOT EXECUTED 45f2a: 6d3e blts 45f6a <== NOT EXECUTED ( value->it_interval.tv_nsec < 0 )) { /* The number of nanoseconds is not correct */ rtems_set_errno_and_return_minus_one( EINVAL ); } if ( flags != TIMER_ABSTIME && flags != POSIX_TIMER_RELATIVE ) { 45f2c: 7004 moveq #4,%d0 <== NOT EXECUTED 45f2e: b08a cmpl %a2,%d0 <== NOT EXECUTED 45f30: 6704 beqs 45f36 <== NOT EXECUTED 45f32: 4a8a tstl %a2 <== NOT EXECUTED 45f34: 6634 bnes 45f6a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); } normalize = *value; 45f36: 4878 0010 pea 10 <== NOT EXECUTED 45f3a: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45f3c: 486e ffec pea %fp@(-20) <== NOT EXECUTED 45f40: 4eb9 0004 dbec jsr 4dbec <== NOT EXECUTED /* Convert absolute to relative time */ if (flags == TIMER_ABSTIME) { 45f46: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45f4c: 7004 moveq #4,%d0 <== NOT EXECUTED 45f4e: b08a cmpl %a2,%d0 <== NOT EXECUTED 45f50: 6640 bnes 45f92 <== NOT EXECUTED /* Check for seconds in the past */ if ( _Timespec_Greater_than( &_TOD_Now, &normalize.it_value ) ) 45f52: 45ee fff4 lea %fp@(-12),%a2 <== NOT EXECUTED 45f56: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45f58: 4879 0005 b246 pea 5b246 <_TOD_Now> <== NOT EXECUTED 45f5e: 4eb9 0004 93d4 jsr 493d4 <_Timespec_Greater_than> <== NOT EXECUTED 45f64: 508f addql #8,%sp <== NOT EXECUTED 45f66: 4a00 tstb %d0 <== NOT EXECUTED 45f68: 6712 beqs 45f7c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 45f6a: 4eb9 0004 d3bc jsr 4d3bc <__errno> <== NOT EXECUTED 45f70: 7416 moveq #22,%d2 <== NOT EXECUTED 45f72: 2040 moveal %d0,%a0 <== NOT EXECUTED 45f74: 2082 movel %d2,%a0@ <== NOT EXECUTED 45f76: 70ff moveq #-1,%d0 <== NOT EXECUTED 45f78: 6000 012e braw 460a8 <== NOT EXECUTED _Timespec_Subtract( &_TOD_Now, &normalize.it_value, &normalize.it_value ); 45f7c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45f7e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45f80: 4879 0005 b246 pea 5b246 <_TOD_Now> <== NOT EXECUTED 45f86: 4eb9 0004 9404 jsr 49404 <_Timespec_Subtract> <== NOT EXECUTED 45f8c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45f92: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45f96: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45f9a: 4879 0005 b45a pea 5b45a <_POSIX_Timer_Information> <== NOT EXECUTED 45fa0: 4eb9 0004 7f2c jsr 47f2c <_Objects_Get> <== NOT EXECUTED * something with the structure of times of the timer: to stop, start * or start it again */ ptimer = _POSIX_Timer_Get( timerid, &location ); switch ( location ) { 45fa6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45fac: 2640 moveal %d0,%a3 <== NOT EXECUTED 45fae: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45fb2: 6600 00e6 bnew 4609a <== NOT EXECUTED case OBJECTS_LOCAL: /* First, it verifies if the timer must be stopped */ if ( normalize.it_value.tv_sec == 0 && normalize.it_value.tv_nsec == 0 ) { 45fb6: 4aae fff4 tstl %fp@(-12) <== NOT EXECUTED 45fba: 6654 bnes 46010 <== NOT EXECUTED 45fbc: 4aae fff8 tstl %fp@(-8) <== NOT EXECUTED 45fc0: 664e bnes 46010 <== NOT EXECUTED /* Stop the timer */ (void) _Watchdog_Remove( &ptimer->Timer ); 45fc2: 486b 0010 pea %a3@(16) <== NOT EXECUTED 45fc6: 4eb9 0004 9838 jsr 49838 <_Watchdog_Remove> <== NOT EXECUTED /* The old data of the timer are returned */ if ( ovalue ) 45fcc: 588f addql #4,%sp <== NOT EXECUTED 45fce: 4a82 tstl %d2 <== NOT EXECUTED 45fd0: 6716 beqs 45fe8 <== NOT EXECUTED *ovalue = ptimer->timer_data; 45fd2: 4878 0010 pea 10 <== NOT EXECUTED 45fd6: 486b 0052 pea %a3@(82) <== NOT EXECUTED 45fda: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45fdc: 4eb9 0004 dbec jsr 4dbec <== NOT EXECUTED 45fe2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* The new data are set */ ptimer->timer_data = normalize; 45fe8: 4878 0010 pea 10 <== NOT EXECUTED 45fec: 486e ffec pea %fp@(-20) <== NOT EXECUTED 45ff0: 486b 0052 pea %a3@(82) <== NOT EXECUTED 45ff4: 4eb9 0004 dbec jsr 4dbec <== NOT EXECUTED /* Indicates that the timer is created and stopped */ ptimer->state = POSIX_TIMER_STATE_CREATE_STOP; 45ffa: 7004 moveq #4,%d0 <== NOT EXECUTED 45ffc: 1740 003c moveb %d0,%a3@(60) <== NOT EXECUTED /* Returns with success */ _Thread_Enable_dispatch(); 46000: 4eb9 0004 869e jsr 4869e <_Thread_Enable_dispatch> <== NOT EXECUTED 46006: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4600c: 6000 0088 braw 46096 <== NOT EXECUTED return 0; } /* Convert from seconds and nanoseconds to ticks */ ptimer->ticks = _Timespec_To_ticks( &value->it_interval ); 46010: 2f0c movel %a4,%sp@- <== NOT EXECUTED 46012: 45f9 0004 9454 lea 49454 <_Timespec_To_ticks>,%a2 <== NOT EXECUTED 46018: 4e92 jsr %a2@ <== NOT EXECUTED 4601a: 2740 0062 movel %d0,%a3@(98) <== NOT EXECUTED initial_period = _Timespec_To_ticks( &normalize.it_value ); 4601e: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 46022: 4e92 jsr %a2@ <== NOT EXECUTED activated = _POSIX_Timer_Insert_helper( 46024: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46026: 4879 0004 60b4 pea 460b4 <_POSIX_Timer_TSR> <== NOT EXECUTED 4602c: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 46030: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46032: 486b 0010 pea %a3@(16) <== NOT EXECUTED 46036: 4eb9 0004 b9cc jsr 4b9cc <_POSIX_Timer_Insert_helper> <== NOT EXECUTED initial_period, ptimer->Object.id, _POSIX_Timer_TSR, ptimer ); if ( !activated ) { 4603c: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 46042: 4a00 tstb %d0 <== NOT EXECUTED 46044: 6608 bnes 4604e <== NOT EXECUTED _Thread_Enable_dispatch(); 46046: 4eb9 0004 869e jsr 4869e <_Thread_Enable_dispatch> <== NOT EXECUTED 4604c: 6048 bras 46096 <== NOT EXECUTED /* * The timer has been started and is running. So we return the * old ones in "ovalue" */ if ( ovalue ) 4604e: 4a82 tstl %d2 <== NOT EXECUTED 46050: 6716 beqs 46068 <== NOT EXECUTED *ovalue = ptimer->timer_data; 46052: 4878 0010 pea 10 <== NOT EXECUTED 46056: 486b 0052 pea %a3@(82) <== NOT EXECUTED 4605a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4605c: 4eb9 0004 dbec jsr 4dbec <== NOT EXECUTED 46062: dffc 0000 000c addal #12,%sp <== NOT EXECUTED ptimer->timer_data = normalize; 46068: 4878 0010 pea 10 <== NOT EXECUTED 4606c: 486e ffec pea %fp@(-20) <== NOT EXECUTED 46070: 486b 0052 pea %a3@(82) <== NOT EXECUTED 46074: 4eb9 0004 dbec jsr 4dbec <== NOT EXECUTED /* Indicate that the time is running */ ptimer->state = POSIX_TIMER_STATE_CREATE_RUN; 4607a: 7003 moveq #3,%d0 <== NOT EXECUTED 4607c: 1740 003c moveb %d0,%a3@(60) <== NOT EXECUTED _TOD_Get( &ptimer->time ); 46080: 486b 006a pea %a3@(106) <== NOT EXECUTED 46084: 4eb9 0004 7718 jsr 47718 <_TOD_Get> <== NOT EXECUTED _Thread_Enable_dispatch(); 4608a: 4eb9 0004 869e jsr 4869e <_Thread_Enable_dispatch> <== NOT EXECUTED 46090: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 46096: 4280 clrl %d0 <== NOT EXECUTED 46098: 600e bras 460a8 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 4609a: 4eb9 0004 d3bc jsr 4d3bc <__errno> <== NOT EXECUTED 460a0: 2040 moveal %d0,%a0 <== NOT EXECUTED 460a2: 7216 moveq #22,%d1 <== NOT EXECUTED 460a4: 70ff moveq #-1,%d0 <== NOT EXECUTED 460a6: 2081 movel %d1,%a0@ <== NOT EXECUTED } 460a8: 4cee 1c04 ffdc moveml %fp@(-36),%d2/%a2-%a4 <== NOT EXECUTED 460ae: 4e5e unlk %fp <== NOT EXECUTED 460b0: 4e75 rts <== NOT EXECUTED ... 0004738c : int truncate( const char *path, off_t length ) { 4738c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47390: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47392: 2f02 movel %d2,%sp@- <== NOT EXECUTED int status; int fd; fd = open( path, O_WRONLY ); 47394: 4878 0001 pea 1 <== NOT EXECUTED 47398: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4739c: 4eb9 0004 524c jsr 4524c <== NOT EXECUTED 473a2: 2400 movel %d0,%d2 <== NOT EXECUTED if ( fd == -1 ) 473a4: 508f addql #8,%sp <== NOT EXECUTED 473a6: 70ff moveq #-1,%d0 <== NOT EXECUTED 473a8: b082 cmpl %d2,%d0 <== NOT EXECUTED 473aa: 6604 bnes 473b0 <== NOT EXECUTED 473ac: 76ff moveq #-1,%d3 <== NOT EXECUTED 473ae: 601c bras 473cc <== NOT EXECUTED return -1; status = ftruncate( fd, length ); 473b0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 473b4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 473b6: 4eb9 0004 bf8c jsr 4bf8c <== NOT EXECUTED (void) close( fd ); 473bc: 2f02 movel %d2,%sp@- <== NOT EXECUTED fd = open( path, O_WRONLY ); if ( fd == -1 ) return -1; status = ftruncate( fd, length ); 473be: 2600 movel %d0,%d3 <== NOT EXECUTED (void) close( fd ); 473c0: 4eb9 0004 4034 jsr 44034 <== NOT EXECUTED 473c6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return status; } 473cc: 2003 movel %d3,%d0 <== NOT EXECUTED 473ce: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 473d2: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 473d6: 4e5e unlk %fp <== NOT EXECUTED 473d8: 4e75 rts <== NOT EXECUTED ... 0005cb16 : */ char *ttyname( int fd ) { 5cb16: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( !ttyname_r( fd, ttyname_buf, sizeof(ttyname_buf) ) ) 5cb1a: 4878 0406 pea 406 <== NOT EXECUTED 5cb1e: 4879 0007 e604 pea 7e604 <== NOT EXECUTED 5cb24: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5cb28: 4eb9 0005 ca2c jsr 5ca2c <== NOT EXECUTED 5cb2e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5cb34: 223c 0007 e604 movel #517636,%d1 <== NOT EXECUTED 5cb3a: 4a80 tstl %d0 <== NOT EXECUTED 5cb3c: 6702 beqs 5cb40 <== NOT EXECUTED 5cb3e: 4281 clrl %d1 <== NOT EXECUTED return ttyname_buf; return NULL; } 5cb40: 4e5e unlk %fp <== NOT EXECUTED 5cb42: 2001 movel %d1,%d0 <== NOT EXECUTED 5cb44: 4e75 rts <== NOT EXECUTED ... 0005ca2c : int ttyname_r( int fd, char *name, size_t namesize ) { 5ca2c: 4e56 ff24 linkw %fp,#-220 <== NOT EXECUTED 5ca30: 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) 5ca34: 486e ffdc pea %fp@(-36) <== NOT EXECUTED int ttyname_r( int fd, char *name, size_t namesize ) { 5ca38: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 5ca3c: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED DIR *dp; struct stat dsb; char *rval; /* Must be a terminal. */ if (tcgetattr (fd, &tty) < 0) 5ca40: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ca42: 4eb9 0005 c99c jsr 5c99c <== NOT EXECUTED 5ca48: 508f addql #8,%sp <== NOT EXECUTED 5ca4a: 4a80 tstl %d0 <== NOT EXECUTED 5ca4c: 6d36 blts 5ca84 <== NOT EXECUTED rtems_set_errno_and_return_minus_one(EBADF); /* Must be a character device. */ if (fstat (fd, &sb) || !S_ISCHR (sb.st_mode)) 5ca4e: 486e ff92 pea %fp@(-110) <== NOT EXECUTED 5ca52: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5ca54: 4eb9 0005 aecc jsr 5aecc <== NOT EXECUTED 5ca5a: 508f addql #8,%sp <== NOT EXECUTED 5ca5c: 4a80 tstl %d0 <== NOT EXECUTED 5ca5e: 6624 bnes 5ca84 <== NOT EXECUTED 5ca60: 202e ff9e movel %fp@(-98),%d0 <== NOT EXECUTED 5ca64: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 5ca6a: 0c80 0000 2000 cmpil #8192,%d0 <== NOT EXECUTED 5ca70: 6612 bnes 5ca84 <== NOT EXECUTED rtems_set_errno_and_return_minus_one(EBADF); if ((dp = opendir (_PATH_DEV)) == NULL) 5ca72: 4879 0007 b5b4 pea 7b5b4 <== NOT EXECUTED 5ca78: 4eb9 0005 c2a0 jsr 5c2a0 <== NOT EXECUTED 5ca7e: 588f addql #4,%sp <== NOT EXECUTED 5ca80: 2400 movel %d0,%d2 <== NOT EXECUTED 5ca82: 6652 bnes 5cad6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one(EBADF); 5ca84: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ca8a: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ca8c: 7009 moveq #9,%d0 <== NOT EXECUTED 5ca8e: 2080 movel %d0,%a0@ <== NOT EXECUTED 5ca90: 70ff moveq #-1,%d0 <== NOT EXECUTED 5ca92: 6078 bras 5cb0c <== NOT EXECUTED for (rval = NULL; (dirp = readdir (dp)) != NULL ;) { if (dirp->d_ino != sb.st_ino) 5ca94: 202e ff9a movel %fp@(-102),%d0 <== NOT EXECUTED 5ca98: b090 cmpl %a0@,%d0 <== NOT EXECUTED 5ca9a: 6658 bnes 5caf4 <== NOT EXECUTED continue; strcpy (name + sizeof (_PATH_DEV) - 1, dirp->d_name); 5ca9c: 4868 000c pea %a0@(12) <== NOT EXECUTED 5caa0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5caa2: 4e93 jsr %a3@ <== NOT EXECUTED if (stat (name, &dsb) || sb.st_dev != dsb.st_dev || 5caa4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5caa6: 2f05 movel %d5,%sp@- <== NOT EXECUTED 5caa8: 4e92 jsr %a2@ <== NOT EXECUTED 5caaa: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5cab0: 4a80 tstl %d0 <== NOT EXECUTED 5cab2: 6640 bnes 5caf4 <== NOT EXECUTED 5cab4: 202e ff92 movel %fp@(-110),%d0 <== NOT EXECUTED 5cab8: 222e ff96 movel %fp@(-106),%d1 <== NOT EXECUTED 5cabc: 2c2e ff48 movel %fp@(-184),%d6 <== NOT EXECUTED 5cac0: 2e2e ff4c movel %fp@(-180),%d7 <== NOT EXECUTED 5cac4: 9287 subl %d7,%d1 <== NOT EXECUTED 5cac6: 9186 subxl %d6,%d0 <== NOT EXECUTED 5cac8: 662a bnes 5caf4 <== NOT EXECUTED 5caca: 2e2e ff50 movel %fp@(-176),%d7 <== NOT EXECUTED 5cace: beae ff9a cmpl %fp@(-102),%d7 <== NOT EXECUTED 5cad2: 6620 bnes 5caf4 <== NOT EXECUTED 5cad4: 602a bras 5cb00 <== 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); 5cad6: 2605 movel %d5,%d3 <== NOT EXECUTED if (stat (name, &dsb) || sb.st_dev != dsb.st_dev || 5cad8: 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 ;) 5cada: 49f9 0005 c548 lea 5c548 ,%a4 <== NOT EXECUTED { if (dirp->d_ino != sb.st_ino) continue; strcpy (name + sizeof (_PATH_DEV) - 1, dirp->d_name); 5cae0: 5a83 addql #5,%d3 <== NOT EXECUTED 5cae2: 47f9 0006 d5ac lea 6d5ac ,%a3 <== NOT EXECUTED if (stat (name, &dsb) || sb.st_dev != dsb.st_dev || 5cae8: 0684 ffff ff48 addil #-184,%d4 <== NOT EXECUTED 5caee: 45f9 0004 66c4 lea 466c4 ,%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 ;) 5caf4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5caf6: 4e94 jsr %a4@ <== NOT EXECUTED 5caf8: 588f addql #4,%sp <== NOT EXECUTED 5cafa: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cafc: 4a80 tstl %d0 <== NOT EXECUTED 5cafe: 6694 bnes 5ca94 <== NOT EXECUTED sb.st_ino != dsb.st_ino) continue; rval = name; break; } (void) closedir (dp); 5cb00: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5cb02: 4eb9 0006 6518 jsr 66518 <== NOT EXECUTED 5cb08: 588f addql #4,%sp <== NOT EXECUTED 5cb0a: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5cb0c: 4cee 1cfc ff24 moveml %fp@(-220),%d2-%d7/%a2-%a4 <== NOT EXECUTED 5cb12: 4e5e unlk %fp <== NOT EXECUTED 5cb14: 4e75 rts 00044b3c : useconds_t ualarm( useconds_t useconds, useconds_t interval ) { 44b3c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 44b40: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 44b44: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED /* * Initialize the timer used to implement alarm(). */ if ( !the_timer->routine ) { 44b48: 4ab9 0005 9dd8 tstl 59dd8 <_POSIX_signals_Ualarm_timer+0x1c> <== NOT EXECUTED 44b4e: 6622 bnes 44b72 <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 44b50: 42b9 0005 9dc4 clrl 59dc4 <_POSIX_signals_Ualarm_timer+0x8> <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 44b56: 4283 clrl %d3 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 44b58: 203c 0004 4c3a movel #281658,%d0 <== NOT EXECUTED 44b5e: 23c0 0005 9dd8 movel %d0,59dd8 <_POSIX_signals_Ualarm_timer+0x1c> <== NOT EXECUTED the_watchdog->id = id; 44b64: 42b9 0005 9ddc clrl 59ddc <_POSIX_signals_Ualarm_timer+0x20> <== NOT EXECUTED the_watchdog->user_data = user_data; 44b6a: 42b9 0005 9de0 clrl 59de0 <_POSIX_signals_Ualarm_timer+0x24> <== NOT EXECUTED 44b70: 6064 bras 44bd6 <== NOT EXECUTED _Watchdog_Initialize( the_timer, _POSIX_signals_Ualarm_TSR, 0, NULL ); } else { switch ( _Watchdog_Remove( the_timer ) ) { 44b72: 4879 0005 9dbc pea 59dbc <_POSIX_signals_Ualarm_timer> <== NOT EXECUTED 44b78: 4eb9 0004 8410 jsr 48410 <_Watchdog_Remove> <== NOT EXECUTED 44b7e: 588f addql #4,%sp <== NOT EXECUTED 44b80: 5580 subql #2,%d0 <== NOT EXECUTED 44b82: 7201 moveq #1,%d1 <== NOT EXECUTED 44b84: b280 cmpl %d0,%d1 <== NOT EXECUTED 44b86: 6404 bccs 44b8c <== NOT EXECUTED 44b88: 4283 clrl %d3 <== NOT EXECUTED 44b8a: 604a bras 44bd6 <== NOT EXECUTED * boot. Since alarm() is dealing in seconds, we must account for * this. */ ticks = the_timer->initial; ticks -= (the_timer->stop_time - the_timer->start_time); 44b8c: 2039 0005 9dd0 movel 59dd0 <_POSIX_signals_Ualarm_timer+0x14>,%d0 <== NOT EXECUTED 44b92: d0b9 0005 9dc8 addl 59dc8 <_POSIX_signals_Ualarm_timer+0xc>,%d0 <== NOT EXECUTED /* remaining is now in ticks */ _Timespec_From_ticks( ticks, &tp ); 44b98: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 44b9c: 90b9 0005 9dd4 subl 59dd4 <_POSIX_signals_Ualarm_timer+0x18>,%d0 <== NOT EXECUTED 44ba2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44ba4: 4eb9 0004 7f5c jsr 47f5c <_Timespec_From_ticks> <== NOT EXECUTED remaining = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND; 44baa: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44bae: 2002 movel %d2,%d0 <== NOT EXECUTED 44bb0: 2202 movel %d2,%d1 <== NOT EXECUTED 44bb2: e788 lsll #3,%d0 <== NOT EXECUTED 44bb4: e189 lsll #8,%d1 <== NOT EXECUTED 44bb6: 9280 subl %d0,%d1 <== NOT EXECUTED 44bb8: 2001 movel %d1,%d0 <== NOT EXECUTED 44bba: ed88 lsll #6,%d0 <== NOT EXECUTED 44bbc: 9081 subl %d1,%d0 <== NOT EXECUTED remaining += tp.tv_nsec / 1000; 44bbe: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED ticks = the_timer->initial; ticks -= (the_timer->stop_time - the_timer->start_time); /* remaining is now in ticks */ _Timespec_From_ticks( ticks, &tp ); remaining = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND; 44bc2: d082 addl %d2,%d0 <== NOT EXECUTED remaining += tp.tv_nsec / 1000; 44bc4: 263c 0000 03e8 movel #1000,%d3 <== NOT EXECUTED 44bca: 4c43 1801 remsl %d3,%d1,%d1 <== NOT EXECUTED ticks = the_timer->initial; ticks -= (the_timer->stop_time - the_timer->start_time); /* remaining is now in ticks */ _Timespec_From_ticks( ticks, &tp ); remaining = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND; 44bce: ed88 lsll #6,%d0 <== NOT EXECUTED remaining += tp.tv_nsec / 1000; 44bd0: 2601 movel %d1,%d3 <== NOT EXECUTED 44bd2: d680 addl %d0,%d3 <== NOT EXECUTED 44bd4: 508f addql #8,%sp <== NOT EXECUTED /* * If useconds is non-zero, then the caller wants to schedule * the alarm repeatedly at that interval. If the interval is * less than a single clock tick, then fudge it to a clock tick. */ if ( useconds ) { 44bd6: 4a84 tstl %d4 <== NOT EXECUTED 44bd8: 6754 beqs 44c2e <== NOT EXECUTED Watchdog_Interval ticks; tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; ticks = _Timespec_To_ticks( &tp ); 44bda: 45f9 0004 7fec lea 47fec <_Timespec_To_ticks>,%a2 <== NOT EXECUTED * less than a single clock tick, then fudge it to a clock tick. */ if ( useconds ) { Watchdog_Interval ticks; tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; 44be0: 203c 000f 4240 movel #1000000,%d0 <== NOT EXECUTED 44be6: 4c40 4001 remul %d0,%d1,%d4 <== NOT EXECUTED 44bea: 4c40 4004 remul %d0,%d4,%d4 <== NOT EXECUTED tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; 44bee: 2401 movel %d1,%d2 <== NOT EXECUTED 44bf0: 2001 movel %d1,%d0 <== NOT EXECUTED 44bf2: e58a lsll #2,%d2 <== NOT EXECUTED 44bf4: ef88 lsll #7,%d0 <== NOT EXECUTED 44bf6: 9082 subl %d2,%d0 <== NOT EXECUTED ticks = _Timespec_To_ticks( &tp ); 44bf8: 240e movel %fp,%d2 <== NOT EXECUTED */ if ( useconds ) { Watchdog_Interval ticks; tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; 44bfa: d081 addl %d1,%d0 <== NOT EXECUTED ticks = _Timespec_To_ticks( &tp ); 44bfc: 5182 subql #8,%d2 <== NOT EXECUTED 44bfe: 2f02 movel %d2,%sp@- <== NOT EXECUTED */ if ( useconds ) { Watchdog_Interval ticks; tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; 44c00: e788 lsll #3,%d0 <== NOT EXECUTED * less than a single clock tick, then fudge it to a clock tick. */ if ( useconds ) { Watchdog_Interval ticks; tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; 44c02: 2d44 fff8 movel %d4,%fp@(-8) <== NOT EXECUTED tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; 44c06: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED ticks = _Timespec_To_ticks( &tp ); 44c0a: 4e92 jsr %a2@ <== NOT EXECUTED if ( ticks == 0 ) ticks = 1; _Watchdog_Insert_ticks( the_timer, _Timespec_To_ticks( &tp ) ); 44c0c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44c0e: 4e92 jsr %a2@ <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 44c10: 4879 0005 9dbc pea 59dbc <_POSIX_signals_Ualarm_timer> <== NOT EXECUTED 44c16: 4879 0005 9f8c pea 59f8c <_Watchdog_Ticks_chain> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 44c1c: 23c0 0005 9dc8 movel %d0,59dc8 <_POSIX_signals_Ualarm_timer+0xc> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 44c22: 4eb9 0004 82f4 jsr 482f4 <_Watchdog_Insert> <== NOT EXECUTED 44c28: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } return remaining; } 44c2e: 2003 movel %d3,%d0 <== NOT EXECUTED 44c30: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED 44c36: 4e5e unlk %fp <== NOT EXECUTED 44c38: 4e75 rts 0005cb48 : mode_t cmask ) { mode_t old_mask; old_mask = rtems_filesystem_umask; 5cb48: 2079 0007 e600 moveal 7e600 ,%a0 <== NOT EXECUTED 5cb4e: 2028 0024 movel %a0@(36),%d0 <== NOT EXECUTED #include mode_t umask( mode_t cmask ) { 5cb52: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED mode_t old_mask; old_mask = rtems_filesystem_umask; rtems_filesystem_umask = cmask; 5cb56: 216e 0008 0024 movel %fp@(8),%a0@(36) <== NOT EXECUTED return old_mask; } 5cb5c: 4e5e unlk %fp <== NOT EXECUTED 5cb5e: 4e75 rts 00045544 : */ int uname( struct utsname *name ) { 45544: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 45548: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED 4554c: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED release = 5.3 version = Generic_101318-12 machine = sun4m */ if ( !name ) 45550: 4a8c tstl %a4 <== NOT EXECUTED 45552: 6610 bnes 45564 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 45554: 4eb9 0004 cf8c jsr 4cf8c <__errno> <== NOT EXECUTED 4555a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4555c: 700e moveq #14,%d0 <== NOT EXECUTED 4555e: 2080 movel %d0,%a0@ <== NOT EXECUTED 45560: 70ff moveq #-1,%d0 <== NOT EXECUTED 45562: 6064 bras 455c8 <== NOT EXECUTED strcpy( name->sysname, "RTEMS" ); 45564: 4879 0005 8034 pea 58034 <__func__.7316+0x11> <== NOT EXECUTED 4556a: 45f9 0004 ea8c lea 4ea8c ,%a2 <== NOT EXECUTED sprintf( name->nodename, "Node %" PRId16, _Objects_Local_node ); 45570: 47f9 0004 e810 lea 4e810 ,%a3 <== NOT EXECUTED */ if ( !name ) rtems_set_errno_and_return_minus_one( EFAULT ); strcpy( name->sysname, "RTEMS" ); 45576: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45578: 4e92 jsr %a2@ <== NOT EXECUTED sprintf( name->nodename, "Node %" PRId16, _Objects_Local_node ); 4557a: 4878 0001 pea 1 <== NOT EXECUTED 4557e: 4879 0005 86c5 pea 586c5 <== NOT EXECUTED 45584: 486c 0020 pea %a4@(32) <== NOT EXECUTED 45588: 4e93 jsr %a3@ <== NOT EXECUTED strcpy( name->release, RTEMS_VERSION ); 4558a: 4879 0005 86cd pea 586cd <== NOT EXECUTED 45590: 486c 0040 pea %a4@(64) <== NOT EXECUTED 45594: 4e92 jsr %a2@ <== NOT EXECUTED strcpy( name->version, "" ); 45596: 4879 0005 86c4 pea 586c4 <== NOT EXECUTED 4559c: 486c 0060 pea %a4@(96) <== NOT EXECUTED 455a0: 4e92 jsr %a2@ <== NOT EXECUTED sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME ); 455a2: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 455a8: 2ebc 0005 86d3 movel #362195,%sp@ <== NOT EXECUTED 455ae: 4879 0005 86df pea 586df <== NOT EXECUTED 455b4: 4879 0005 86f1 pea 586f1 <== NOT EXECUTED 455ba: 486c 0080 pea %a4@(128) <== NOT EXECUTED 455be: 4e93 jsr %a3@ <== NOT EXECUTED 455c0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 455c6: 4280 clrl %d0 <== NOT EXECUTED return 0; } 455c8: 4cee 1c00 fff4 moveml %fp@(-12),%a2-%a4 <== NOT EXECUTED 455ce: 4e5e unlk %fp <== NOT EXECUTED 455d0: 4e75 rts <== NOT EXECUTED ... 0005cb60 : #include int unlink( const char *path ) { 5cb60: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5cb64: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cb66: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Get the node to be unlinked. */ result = rtems_filesystem_evaluate_path( path, 0, &loc, false ); 5cb68: 240e movel %fp,%d2 <== NOT EXECUTED 5cb6a: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 5cb70: 42a7 clrl %sp@- <== NOT EXECUTED 5cb72: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5cb74: 42a7 clrl %sp@- <== NOT EXECUTED 5cb76: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5cb7a: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED if ( result != 0 ) 5cb80: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5cb86: 4a80 tstl %d0 <== NOT EXECUTED 5cb88: 6600 00dc bnew 5cc66 <== NOT EXECUTED return -1; result = rtems_filesystem_evaluate_parent(RTEMS_LIBIO_PERMS_WRITE, &loc ); 5cb8c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5cb8e: 4878 0002 pea 2 <== NOT EXECUTED 5cb92: 4eb9 0004 51a8 jsr 451a8 <== NOT EXECUTED if (result != 0 && errno != ENOTSUP) { 5cb98: 508f addql #8,%sp <== NOT EXECUTED 5cb9a: 4a80 tstl %d0 <== NOT EXECUTED 5cb9c: 6730 beqs 5cbce <== NOT EXECUTED 5cb9e: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5cba4: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cba6: 203c 0000 0086 movel #134,%d0 <== NOT EXECUTED 5cbac: b090 cmpl %a0@,%d0 <== NOT EXECUTED 5cbae: 671e beqs 5cbce <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cbb0: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5cbb4: 4a88 tstl %a0 <== NOT EXECUTED 5cbb6: 6700 00ae beqw 5cc66 <== NOT EXECUTED 5cbba: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cbbe: 4a88 tstl %a0 <== NOT EXECUTED 5cbc0: 6700 00a4 beqw 5cc66 <== NOT EXECUTED 5cbc4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5cbc6: 4e90 jsr %a0@ <== NOT EXECUTED 5cbc8: 588f addql #4,%sp <== NOT EXECUTED 5cbca: 6000 009a braw 5cc66 <== NOT EXECUTED return -1; } if ( !loc.ops->node_type_h ) { 5cbce: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5cbd2: 2268 0010 moveal %a0@(16),%a1 <== NOT EXECUTED 5cbd6: 4a89 tstl %a1 <== NOT EXECUTED 5cbd8: 660e bnes 5cbe8 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cbda: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cbde: 4a88 tstl %a0 <== NOT EXECUTED 5cbe0: 6754 beqs 5cc36 <== NOT EXECUTED 5cbe2: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 5cbe6: 604a bras 5cc32 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) { 5cbe8: 260e movel %fp,%d3 <== NOT EXECUTED 5cbea: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 5cbf0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cbf2: 4e91 jsr %a1@ <== NOT EXECUTED 5cbf4: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5cbf8: 588f addql #4,%sp <== NOT EXECUTED 5cbfa: 7201 moveq #1,%d1 <== NOT EXECUTED 5cbfc: b280 cmpl %d0,%d1 <== NOT EXECUTED 5cbfe: 6620 bnes 5cc20 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cc00: 4a88 tstl %a0 <== NOT EXECUTED 5cc02: 670e beqs 5cc12 <== NOT EXECUTED 5cc04: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cc08: 4a88 tstl %a0 <== NOT EXECUTED 5cc0a: 6706 beqs 5cc12 <== NOT EXECUTED 5cc0c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cc0e: 4e90 jsr %a0@ <== NOT EXECUTED 5cc10: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EISDIR ); 5cc12: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5cc18: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cc1a: 7015 moveq #21,%d0 <== NOT EXECUTED 5cc1c: 2080 movel %d0,%a0@ <== NOT EXECUTED 5cc1e: 6046 bras 5cc66 <== NOT EXECUTED } if ( !loc.ops->unlink_h ) { 5cc20: 2268 000c moveal %a0@(12),%a1 <== NOT EXECUTED 5cc24: 4a89 tstl %a1 <== NOT EXECUTED 5cc26: 661e bnes 5cc46 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cc28: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cc2c: 4a88 tstl %a0 <== NOT EXECUTED 5cc2e: 6706 beqs 5cc36 <== NOT EXECUTED 5cc30: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cc32: 4e90 jsr %a0@ <== NOT EXECUTED 5cc34: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5cc36: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5cc3c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cc3e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5cc44: 6020 bras 5cc66 <== NOT EXECUTED } result = (*loc.ops->unlink_h)( &loc ); 5cc46: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cc48: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cc4a: 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 ); 5cc4e: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cc50: 588f addql #4,%sp <== NOT EXECUTED 5cc52: 4a88 tstl %a0 <== NOT EXECUTED 5cc54: 6712 beqs 5cc68 <== NOT EXECUTED 5cc56: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cc5a: 4a88 tstl %a0 <== NOT EXECUTED 5cc5c: 670a beqs 5cc68 <== NOT EXECUTED 5cc5e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5cc60: 4e90 jsr %a0@ <== NOT EXECUTED 5cc62: 588f addql #4,%sp <== NOT EXECUTED 5cc64: 6002 bras 5cc68 <== NOT EXECUTED 5cc66: 74ff moveq #-1,%d2 <== NOT EXECUTED return result; } 5cc68: 2002 movel %d2,%d0 <== NOT EXECUTED 5cc6a: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 5cc6e: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 5cc72: 4e5e unlk %fp <== NOT EXECUTED 5cc74: 4e75 rts 0005ccce : */ int unmount( const char *path ) { 5ccce: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5ccd2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5ccd4: 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 ) ) 5ccd6: 240e movel %fp,%d2 <== NOT EXECUTED 5ccd8: 4878 0001 pea 1 <== NOT EXECUTED 5ccdc: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 5cce2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5cce4: 42a7 clrl %sp@- <== NOT EXECUTED 5cce6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5ccea: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED 5ccf0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5ccf6: 4a80 tstl %d0 <== NOT EXECUTED 5ccf8: 6600 0116 bnew 5ce10 <== NOT EXECUTED return -1; mt_entry = loc.mt_entry; 5ccfc: 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) ){ 5cd00: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 5cd04: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5cd08: b0aa 0018 cmpl %a2@(24),%d0 <== NOT EXECUTED 5cd0c: 6722 beqs 5cd30 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5cd0e: 4a88 tstl %a0 <== NOT EXECUTED 5cd10: 670e beqs 5cd20 <== NOT EXECUTED 5cd12: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cd16: 4a88 tstl %a0 <== NOT EXECUTED 5cd18: 6706 beqs 5cd20 <== NOT EXECUTED 5cd1a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5cd1c: 4e90 jsr %a0@ <== NOT EXECUTED 5cd1e: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 5cd20: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5cd26: 720d moveq #13,%d1 <== NOT EXECUTED 5cd28: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cd2a: 2081 movel %d1,%a0@ <== NOT EXECUTED 5cd2c: 6000 00e2 braw 5ce10 <== NOT EXECUTED /* * Free the loc node and just use the nodes from the mt_entry . */ rtems_filesystem_freenode( &loc ); 5cd30: 4a88 tstl %a0 <== NOT EXECUTED 5cd32: 670e beqs 5cd42 <== NOT EXECUTED 5cd34: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cd38: 4a88 tstl %a0 <== NOT EXECUTED 5cd3a: 6706 beqs 5cd42 <== NOT EXECUTED 5cd3c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5cd3e: 4e90 jsr %a0@ <== NOT EXECUTED 5cd40: 588f addql #4,%sp <== NOT EXECUTED /* * Verify Unmount is supported by both filesystems. */ if ( !fs_mount_loc->ops->unmount_h ) 5cd42: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 5cd46: 4aa8 0028 tstl %a0@(40) <== NOT EXECUTED 5cd4a: 670a beqs 5cd56 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( !fs_root_loc->ops->fsunmount_me_h ) 5cd4c: 206a 0020 moveal %a2@(32),%a0 <== NOT EXECUTED 5cd50: 4aa8 002c tstl %a0@(44) <== NOT EXECUTED 5cd54: 6612 bnes 5cd68 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5cd56: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5cd5c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cd5e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5cd64: 6000 00aa braw 5ce10 <== 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 ) 5cd68: 2079 0007 e600 moveal 7e600 ,%a0 <== NOT EXECUTED 5cd6e: b5e8 0010 cmpal %a0@(16),%a2 <== NOT EXECUTED 5cd72: 6720 beqs 5cd94 <== NOT EXECUTED /* * Search the mount table for any mount entries referencing this * mount entry. */ for ( the_node = rtems_filesystem_mount_table_control.first; 5cd74: 2079 0009 37d4 moveal 937d4 ,%a0 <== NOT EXECUTED 5cd7a: 600c bras 5cd88 <== 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 ) { 5cd7c: 222a 0024 movel %a2@(36),%d1 <== NOT EXECUTED 5cd80: b2a8 0014 cmpl %a0@(20),%d1 <== NOT EXECUTED 5cd84: 670e beqs 5cd94 <== 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 ) { 5cd86: 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 ); 5cd88: b1fc 0009 37d8 cmpal #604120,%a0 <== NOT EXECUTED 5cd8e: 66ec bnes 5cd7c <== NOT EXECUTED 5cd90: 6000 008c braw 5ce1e <== 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 ); 5cd94: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5cd9a: 2040 moveal %d0,%a0 <== NOT EXECUTED 5cd9c: 7010 moveq #16,%d0 <== NOT EXECUTED 5cd9e: 2080 movel %d0,%a0@ <== NOT EXECUTED 5cda0: 606e bras 5ce10 <== 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 ) 5cda2: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 5cda6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5cda8: 2068 0028 moveal %a0@(40),%a0 <== NOT EXECUTED 5cdac: 4e90 jsr %a0@ <== NOT EXECUTED 5cdae: 588f addql #4,%sp <== NOT EXECUTED 5cdb0: 4a80 tstl %d0 <== NOT EXECUTED 5cdb2: 665c bnes 5ce10 <== 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){ 5cdb4: 206a 0020 moveal %a2@(32),%a0 <== NOT EXECUTED 5cdb8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5cdba: 2068 002c moveal %a0@(44),%a0 <== NOT EXECUTED 5cdbe: 4e90 jsr %a0@ <== NOT EXECUTED 5cdc0: 588f addql #4,%sp <== NOT EXECUTED 5cdc2: 4a80 tstl %d0 <== NOT EXECUTED 5cdc4: 671a beqs 5cde0 <== NOT EXECUTED if (( fs_mount_loc->ops->mount_h )( mt_entry ) != 0 ) 5cdc6: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 5cdca: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5cdcc: 2068 0020 moveal %a0@(32),%a0 <== NOT EXECUTED 5cdd0: 4e90 jsr %a0@ <== NOT EXECUTED 5cdd2: 588f addql #4,%sp <== NOT EXECUTED 5cdd4: 4a80 tstl %d0 <== NOT EXECUTED 5cdd6: 6738 beqs 5ce10 <== NOT EXECUTED rtems_fatal_error_occurred( 0 ); 5cdd8: 42a7 clrl %sp@- <== NOT EXECUTED 5cdda: 4eb9 0004 912c jsr 4912c <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void rtems_chain_extract( rtems_chain_node *the_node ) { _Chain_Extract( the_node ); 5cde0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5cde2: 4eb9 0005 e134 jsr 5e134 <_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 ); 5cde8: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 5cdec: 588f addql #4,%sp <== NOT EXECUTED 5cdee: 4a88 tstl %a0 <== NOT EXECUTED 5cdf0: 6710 beqs 5ce02 <== NOT EXECUTED 5cdf2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5cdf6: 4a88 tstl %a0 <== NOT EXECUTED 5cdf8: 6708 beqs 5ce02 <== NOT EXECUTED 5cdfa: 486a 0008 pea %a2@(8) <== NOT EXECUTED 5cdfe: 4e90 jsr %a0@ <== NOT EXECUTED 5ce00: 588f addql #4,%sp <== NOT EXECUTED free( mt_entry ); 5ce02: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5ce04: 4eb9 0004 5358 jsr 45358 <== NOT EXECUTED 5ce0a: 588f addql #4,%sp <== NOT EXECUTED 5ce0c: 4280 clrl %d0 <== NOT EXECUTED 5ce0e: 6002 bras 5ce12 <== NOT EXECUTED return 0; 5ce10: 70ff moveq #-1,%d0 <== NOT EXECUTED } 5ce12: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 5ce16: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 5ce1a: 4e5e unlk %fp <== NOT EXECUTED 5ce1c: 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 ) 5ce1e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5ce20: 4eb9 0004 55e4 jsr 455e4 <== NOT EXECUTED 5ce26: 588f addql #4,%sp <== NOT EXECUTED 5ce28: 7201 moveq #1,%d1 <== NOT EXECUTED 5ce2a: b280 cmpl %d0,%d1 <== NOT EXECUTED 5ce2c: 6600 ff74 bnew 5cda2 <== NOT EXECUTED 5ce30: 6000 ff62 braw 5cd94 <== NOT EXECUTED 00047ec4 : int usleep( useconds_t useconds ) { 47ec4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 47ec8: 2f03 movel %d3,%sp@- <== NOT EXECUTED struct timespec tp; struct timespec tm; unsigned remaining; tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; 47eca: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED int usleep( useconds_t useconds ) { 47ece: 2f02 movel %d2,%sp@- <== NOT EXECUTED struct timespec tp; struct timespec tm; unsigned remaining; tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; 47ed0: 243c 000f 4240 movel #1000000,%d2 <== NOT EXECUTED 47ed6: 4c42 0001 remul %d2,%d1,%d0 <== NOT EXECUTED 47eda: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 47ede: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; 47ee2: 2401 movel %d1,%d2 <== NOT EXECUTED 47ee4: 2001 movel %d1,%d0 <== NOT EXECUTED 47ee6: e58a lsll #2,%d2 <== NOT EXECUTED 47ee8: ef88 lsll #7,%d0 <== NOT EXECUTED 47eea: 9082 subl %d2,%d0 <== NOT EXECUTED nanosleep( &tp, &tm ); 47eec: 486e fff0 pea %fp@(-16) <== NOT EXECUTED struct timespec tp; struct timespec tm; unsigned remaining; tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; 47ef0: d081 addl %d1,%d0 <== NOT EXECUTED 47ef2: e788 lsll #3,%d0 <== NOT EXECUTED 47ef4: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED nanosleep( &tp, &tm ); remaining = tm.tv_sec * TOD_MICROSECONDS_PER_SECOND; 47ef8: 263c 0000 03e8 movel #1000,%d3 <== NOT EXECUTED unsigned remaining; tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; nanosleep( &tp, &tm ); 47efe: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 47f02: 4eb9 0004 ee40 jsr 4ee40 <== NOT EXECUTED remaining = tm.tv_sec * TOD_MICROSECONDS_PER_SECOND; 47f08: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 47f0c: 2002 movel %d2,%d0 <== NOT EXECUTED 47f0e: 2202 movel %d2,%d1 <== NOT EXECUTED 47f10: e788 lsll #3,%d0 <== NOT EXECUTED 47f12: e189 lsll #8,%d1 <== NOT EXECUTED 47f14: 9280 subl %d0,%d1 <== NOT EXECUTED 47f16: 2001 movel %d1,%d0 <== NOT EXECUTED 47f18: ed88 lsll #6,%d0 <== NOT EXECUTED 47f1a: 9081 subl %d1,%d0 <== NOT EXECUTED 47f1c: 222e fff4 movel %fp@(-12),%d1 <== NOT EXECUTED 47f20: d082 addl %d2,%d0 <== NOT EXECUTED 47f22: 4c43 1801 remsl %d3,%d1,%d1 <== NOT EXECUTED remaining += tm.tv_nsec / 1000; return remaining; /* seconds remaining */ } 47f26: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 47f2a: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; nanosleep( &tp, &tm ); remaining = tm.tv_sec * TOD_MICROSECONDS_PER_SECOND; 47f2e: ed88 lsll #6,%d0 <== NOT EXECUTED remaining += tm.tv_nsec / 1000; return remaining; /* seconds remaining */ } 47f30: 4e5e unlk %fp <== NOT EXECUTED 47f32: d081 addl %d1,%d0 <== NOT EXECUTED 47f34: 4e75 rts <== NOT EXECUTED ... 0005ce34 : int utime( const char *path, const struct utimbuf *times ) { 5ce34: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5ce38: 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 ) ) 5ce3c: 4878 0001 pea 1 <== NOT EXECUTED 5ce40: 260e movel %fp,%d3 <== NOT EXECUTED 5ce42: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 5ce48: 2f03 movel %d3,%sp@- <== NOT EXECUTED int utime( const char *path, const struct utimbuf *times ) { 5ce4a: 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 ) ) 5ce4e: 42a7 clrl %sp@- <== NOT EXECUTED 5ce50: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5ce54: 4eb9 0004 5236 jsr 45236 <== NOT EXECUTED 5ce5a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5ce60: 4a80 tstl %d0 <== NOT EXECUTED 5ce62: 6628 bnes 5ce8c <== NOT EXECUTED return -1; if ( !temp_loc.ops->utime_h ){ 5ce64: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5ce68: 2268 0030 moveal %a0@(48),%a1 <== NOT EXECUTED 5ce6c: 4a89 tstl %a1 <== NOT EXECUTED 5ce6e: 6620 bnes 5ce90 <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 5ce70: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5ce74: 4a88 tstl %a0 <== NOT EXECUTED 5ce76: 6706 beqs 5ce7e <== NOT EXECUTED 5ce78: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ce7a: 4e90 jsr %a0@ <== NOT EXECUTED 5ce7c: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5ce7e: 4eb9 0006 8a8c jsr 68a8c <__errno> <== NOT EXECUTED 5ce84: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ce86: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5ce8c: 74ff moveq #-1,%d2 <== NOT EXECUTED 5ce8e: 6028 bras 5ceb8 <== NOT EXECUTED } result = (*temp_loc.ops->utime_h)( &temp_loc, times->actime, times->modtime ); 5ce90: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED 5ce94: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 5ce96: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ce98: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 5ce9a: 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 ); 5ce9e: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 5cea0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5cea6: 4a88 tstl %a0 <== NOT EXECUTED 5cea8: 670e beqs 5ceb8 <== NOT EXECUTED 5ceaa: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5ceae: 4a88 tstl %a0 <== NOT EXECUTED 5ceb0: 6706 beqs 5ceb8 <== NOT EXECUTED 5ceb2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5ceb4: 4e90 jsr %a0@ <== NOT EXECUTED 5ceb6: 588f addql #4,%sp <== NOT EXECUTED return result; } 5ceb8: 2002 movel %d2,%d0 <== NOT EXECUTED 5ceba: 4cee 040c ffe4 moveml %fp@(-28),%d2-%d3/%a2 <== NOT EXECUTED 5cec0: 4e5e unlk %fp <== NOT EXECUTED 5cec2: 4e75 rts 000429d0 : */ void vprintk( const char *fmt, va_list ap ) { 429d0: 4e56 ffc4 linkw %fp,#-60 <== NOT EXECUTED 429d4: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 429d8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 429dc: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { toPrint[count++] = (num - (n*base)); 429e0: 2e0e movel %fp,%d7 <== NOT EXECUTED 429e2: 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)])]); 429e8: 4bf9 0005 5069 lea 55069 ,%a5 <== NOT EXECUTED 429ee: 6000 023a braw 42c2a <== NOT EXECUTED base = 0; sign = 0; width = 0; minus = 0; lead = ' '; if (*fmt == '%') { 429f2: 49c0 extbl %d0 <== NOT EXECUTED 429f4: 7225 moveq #37,%d1 <== NOT EXECUTED 429f6: b280 cmpl %d0,%d1 <== NOT EXECUTED 429f8: 6600 0222 bnew 42c1c <== NOT EXECUTED fmt++; 429fc: 528a addql #1,%a2 <== NOT EXECUTED if (*fmt == '0' ) { 429fe: 1012 moveb %a2@,%d0 <== NOT EXECUTED 42a00: 49c0 extbl %d0 <== NOT EXECUTED 42a02: 7630 moveq #48,%d3 <== NOT EXECUTED 42a04: b680 cmpl %d0,%d3 <== NOT EXECUTED 42a06: 6704 beqs 42a0c <== NOT EXECUTED 42a08: 7c20 moveq #32,%d6 <== NOT EXECUTED 42a0a: 6004 bras 42a10 <== NOT EXECUTED lead = '0'; fmt++; 42a0c: 528a addql #1,%a2 <== NOT EXECUTED 42a0e: 7c30 moveq #48,%d6 <== NOT EXECUTED } if (*fmt == '-' ) { 42a10: 1012 moveb %a2@,%d0 <== NOT EXECUTED 42a12: 49c0 extbl %d0 <== NOT EXECUTED 42a14: 722d moveq #45,%d1 <== NOT EXECUTED 42a16: b280 cmpl %d0,%d1 <== NOT EXECUTED 42a18: 6704 beqs 42a1e <== NOT EXECUTED 42a1a: 4285 clrl %d5 <== NOT EXECUTED 42a1c: 6004 bras 42a22 <== NOT EXECUTED minus = 1; fmt++; 42a1e: 528a addql #1,%a2 <== NOT EXECUTED 42a20: 7a01 moveq #1,%d5 <== NOT EXECUTED 42a22: 4284 clrl %d4 <== NOT EXECUTED 42a24: 6012 bras 42a38 <== NOT EXECUTED } while (*fmt >= '0' && *fmt <= '9' ) { width *= 10; 42a26: 2004 movel %d4,%d0 <== NOT EXECUTED 42a28: e788 lsll #3,%d0 <== NOT EXECUTED 42a2a: 2240 moveal %d0,%a1 <== NOT EXECUTED 42a2c: 41f1 4a00 lea %a1@(00000000,%d4:l:2),%a0 <== NOT EXECUTED width += (*fmt - '0'); 42a30: 41f0 18d0 lea %a0@(ffffffd0,%d1:l),%a0 <== NOT EXECUTED 42a34: 2808 movel %a0,%d4 <== NOT EXECUTED fmt++; 42a36: 528a addql #1,%a2 <== NOT EXECUTED } if (*fmt == '-' ) { minus = 1; fmt++; } while (*fmt >= '0' && *fmt <= '9' ) { 42a38: 1412 moveb %a2@,%d2 <== NOT EXECUTED 42a3a: 2002 movel %d2,%d0 <== NOT EXECUTED 42a3c: 0680 ffff ffd0 addil #-48,%d0 <== NOT EXECUTED 42a42: 1202 moveb %d2,%d1 <== NOT EXECUTED 42a44: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 42a4a: 49c1 extbl %d1 <== NOT EXECUTED 42a4c: 7609 moveq #9,%d3 <== NOT EXECUTED 42a4e: b680 cmpl %d0,%d3 <== NOT EXECUTED 42a50: 64d4 bccs 42a26 <== NOT EXECUTED 42a52: 2644 moveal %d4,%a3 <== NOT EXECUTED width *= 10; width += (*fmt - '0'); fmt++; } if ((c = *fmt) == 'l') { 42a54: 706c moveq #108,%d0 <== NOT EXECUTED 42a56: b081 cmpl %d1,%d0 <== NOT EXECUTED 42a58: 6604 bnes 42a5e <== NOT EXECUTED lflag = 1; c = *++fmt; 42a5a: 528a addql #1,%a2 <== NOT EXECUTED 42a5c: 1412 moveb %a2@,%d2 <== NOT EXECUTED } switch (c) { 42a5e: 1002 moveb %d2,%d0 <== NOT EXECUTED 42a60: 49c0 extbl %d0 <== NOT EXECUTED 42a62: 7264 moveq #100,%d1 <== NOT EXECUTED 42a64: b280 cmpl %d0,%d1 <== NOT EXECUTED 42a66: 6774 beqs 42adc <== NOT EXECUTED 42a68: 6d3a blts 42aa4 <== NOT EXECUTED 42a6a: 764f moveq #79,%d3 <== NOT EXECUTED 42a6c: b680 cmpl %d0,%d3 <== NOT EXECUTED 42a6e: 6700 0108 beqw 42b78 <== NOT EXECUTED 42a72: 6d14 blts 42a88 <== NOT EXECUTED 42a74: 123c 0044 moveb #68,%d1 <== NOT EXECUTED 42a78: b280 cmpl %d0,%d1 <== NOT EXECUTED 42a7a: 6760 beqs 42adc <== NOT EXECUTED 42a7c: 163c 0049 moveb #73,%d3 <== NOT EXECUTED 42a80: b680 cmpl %d0,%d3 <== NOT EXECUTED 42a82: 6600 00ec bnew 42b70 <== NOT EXECUTED 42a86: 6054 bras 42adc <== NOT EXECUTED 42a88: 7258 moveq #88,%d1 <== NOT EXECUTED 42a8a: b280 cmpl %d0,%d1 <== NOT EXECUTED 42a8c: 6700 00ee beqw 42b7c <== NOT EXECUTED 42a90: 7663 moveq #99,%d3 <== NOT EXECUTED 42a92: b680 cmpl %d0,%d3 <== NOT EXECUTED 42a94: 6700 00c2 beqw 42b58 <== NOT EXECUTED 42a98: 123c 0055 moveb #85,%d1 <== NOT EXECUTED 42a9c: b280 cmpl %d0,%d1 <== NOT EXECUTED 42a9e: 6600 00d0 bnew 42b70 <== NOT EXECUTED 42aa2: 6040 bras 42ae4 <== NOT EXECUTED 42aa4: 7670 moveq #112,%d3 <== NOT EXECUTED 42aa6: b680 cmpl %d0,%d3 <== NOT EXECUTED 42aa8: 6700 00d2 beqw 42b7c <== NOT EXECUTED 42aac: 6d14 blts 42ac2 <== NOT EXECUTED 42aae: 7269 moveq #105,%d1 <== NOT EXECUTED 42ab0: b280 cmpl %d0,%d1 <== NOT EXECUTED 42ab2: 6728 beqs 42adc <== NOT EXECUTED 42ab4: 163c 006f moveb #111,%d3 <== NOT EXECUTED 42ab8: b680 cmpl %d0,%d3 <== NOT EXECUTED 42aba: 6600 00b4 bnew 42b70 <== NOT EXECUTED 42abe: 6000 00b8 braw 42b78 <== NOT EXECUTED 42ac2: 7275 moveq #117,%d1 <== NOT EXECUTED 42ac4: b280 cmpl %d0,%d1 <== NOT EXECUTED 42ac6: 671c beqs 42ae4 <== NOT EXECUTED 42ac8: 7678 moveq #120,%d3 <== NOT EXECUTED 42aca: b680 cmpl %d0,%d3 <== NOT EXECUTED 42acc: 6700 00ae beqw 42b7c <== NOT EXECUTED 42ad0: 123c 0073 moveb #115,%d1 <== NOT EXECUTED 42ad4: b280 cmpl %d0,%d1 <== NOT EXECUTED 42ad6: 6600 0098 bnew 42b70 <== NOT EXECUTED 42ada: 600e bras 42aea <== NOT EXECUTED 42adc: 7a0a moveq #10,%d5 <== NOT EXECUTED 42ade: 7001 moveq #1,%d0 <== NOT EXECUTED 42ae0: 6000 009e braw 42b80 <== NOT EXECUTED 42ae4: 7a0a moveq #10,%d5 <== NOT EXECUTED 42ae6: 6000 0096 braw 42b7e <== NOT EXECUTED case 'p': base = 16; sign = 0; break; case 's': { int i, len; char *s; str = va_arg(ap, char *); 42aea: 2654 moveal %a4@,%a3 <== NOT EXECUTED 42aec: 4283 clrl %d3 <== NOT EXECUTED 42aee: 588c addql #4,%a4 <== NOT EXECUTED 42af0: 6002 bras 42af4 <== NOT EXECUTED /* calculate length of string */ for ( len=0, s=str ; *s ; len++, s++ ) 42af2: 5283 addql #1,%d3 <== NOT EXECUTED 42af4: 4a33 3800 tstb %a3@(00000000,%d3:l) <== NOT EXECUTED 42af8: 66f8 bnes 42af2 <== NOT EXECUTED ; /* leading spaces */ if ( !minus ) 42afa: 4a85 tstl %d5 <== NOT EXECUTED 42afc: 6618 bnes 42b16 <== NOT EXECUTED 42afe: 2403 movel %d3,%d2 <== NOT EXECUTED 42b00: 6010 bras 42b12 <== NOT EXECUTED for ( i=len ; i,%a0 <== NOT EXECUTED 42b08: 4878 0020 pea 20 <== NOT EXECUTED 42b0c: 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) { 42b16: 4a84 tstl %d4 <== NOT EXECUTED 42b18: 6602 bnes 42b1c <== NOT EXECUTED 42b1a: 2803 movel %d3,%d4 <== NOT EXECUTED width = len; } /* output the string */ for ( i=0 ; i <== NOT EXECUTED 42b20: 6010 bras 42b32 <== NOT EXECUTED BSP_output_char(*str); 42b22: 2079 0005 634c moveal 5634c ,%a0 <== NOT EXECUTED 42b28: 49c0 extbl %d0 <== NOT EXECUTED 42b2a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42b2c: 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 ) 42b36: 4a85 tstl %d5 <== NOT EXECUTED 42b38: 6700 00ee beqw 42c28 <== NOT EXECUTED 42b3c: 2403 movel %d3,%d2 <== NOT EXECUTED 42b3e: 6010 bras 42b50 <== NOT EXECUTED for ( i=len ; i,%a0 <== NOT EXECUTED 42b46: 4878 0020 pea 20 <== NOT EXECUTED 42b4a: 4e90 jsr %a0@ <== NOT EXECUTED for ( i=0 ; i <== NOT EXECUTED 42b54: 6000 00d2 braw 42c28 <== NOT EXECUTED BSP_output_char(' '); } break; case 'c': BSP_output_char(va_arg(ap, int)); 42b58: 2014 movel %a4@,%d0 <== NOT EXECUTED 42b5a: 2079 0005 634c moveal 5634c ,%a0 <== NOT EXECUTED 42b60: 49c0 extbl %d0 <== NOT EXECUTED 42b62: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42b64: 4e90 jsr %a0@ <== NOT EXECUTED 42b66: 200c movel %a4,%d0 <== NOT EXECUTED 42b68: 5880 addql #4,%d0 <== NOT EXECUTED 42b6a: 2840 moveal %d0,%a4 <== NOT EXECUTED 42b6c: 6000 00b8 braw 42c26 <== NOT EXECUTED break; default: BSP_output_char(c); 42b70: 49c2 extbl %d2 <== NOT EXECUTED 42b72: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42b74: 6000 00a8 braw 42c1e <== NOT EXECUTED 42b78: 7a08 moveq #8,%d5 <== NOT EXECUTED 42b7a: 6002 bras 42b7e <== NOT EXECUTED 42b7c: 7a10 moveq #16,%d5 <== NOT EXECUTED 42b7e: 4280 clrl %d0 <== NOT EXECUTED break; } /* switch*/ if (base) printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int), 42b80: 2414 movel %a4@,%d2 <== NOT EXECUTED 42b82: 220c movel %a4,%d1 <== NOT EXECUTED 42b84: 5881 addql #4,%d1 <== NOT EXECUTED 42b86: 2841 moveal %d1,%a4 <== NOT EXECUTED { long unsigned int n; int count; char toPrint[20]; if ( (sign == 1) && ((long)num < 0) ) { 42b88: 7601 moveq #1,%d3 <== NOT EXECUTED 42b8a: b680 cmpl %d0,%d3 <== NOT EXECUTED 42b8c: 661e bnes 42bac <== NOT EXECUTED 42b8e: 4a82 tstl %d2 <== NOT EXECUTED 42b90: 6c1a bges 42bac <== NOT EXECUTED BSP_output_char('-'); 42b92: 2079 0005 634c moveal 5634c ,%a0 <== NOT EXECUTED 42b98: 4878 002d pea 2d <== NOT EXECUTED 42b9c: 4e90 jsr %a0@ <== NOT EXECUTED num = -num; 42b9e: 4482 negl %d2 <== NOT EXECUTED if (maxwidth) maxwidth--; 42ba0: 588f addql #4,%sp <== NOT EXECUTED 42ba2: 4a84 tstl %d4 <== NOT EXECUTED 42ba4: 6708 beqs 42bae <== NOT EXECUTED 42ba6: 2644 moveal %d4,%a3 <== NOT EXECUTED 42ba8: 538b subql #1,%a3 <== NOT EXECUTED 42baa: 6002 bras 42bae <== NOT EXECUTED 42bac: 2644 moveal %d4,%a3 <== NOT EXECUTED 42bae: 4281 clrl %d1 <== NOT EXECUTED 42bb0: 600c bras 42bbe <== NOT EXECUTED } count = 0; while ((n = num / base) > 0) { toPrint[count++] = (num - (n*base)); 42bb2: 9483 subl %d3,%d2 <== NOT EXECUTED 42bb4: 2047 moveal %d7,%a0 <== NOT EXECUTED 42bb6: 1182 1800 moveb %d2,%a0@(00000000,%d1:l) <== NOT EXECUTED 42bba: 2204 movel %d4,%d1 <== NOT EXECUTED 42bbc: 2400 movel %d0,%d2 <== NOT EXECUTED num = -num; if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { 42bbe: 2002 movel %d2,%d0 <== NOT EXECUTED 42bc0: 4c45 0000 remul %d5,%d0,%d0 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); 42bc4: 2600 movel %d0,%d3 <== NOT EXECUTED 42bc6: 2801 movel %d1,%d4 <== NOT EXECUTED 42bc8: 4c05 3800 mulsl %d5,%d3 <== NOT EXECUTED 42bcc: 5284 addql #1,%d4 <== NOT EXECUTED num = -num; if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { 42bce: 4a80 tstl %d0 <== NOT EXECUTED 42bd0: 66e0 bnes 42bb2 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); num = n; } toPrint[count++] = num; 42bd2: 1d82 18ec moveb %d2,%fp@(ffffffec,%d1:l) <== NOT EXECUTED for (n=maxwidth ; n > count; n-- ) BSP_output_char(lead); 42bd6: 1606 moveb %d6,%d3 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); num = n; } toPrint[count++] = num; for (n=maxwidth ; n > count; n-- ) 42bd8: 240b movel %a3,%d2 <== NOT EXECUTED BSP_output_char(lead); 42bda: 49c3 extbl %d3 <== NOT EXECUTED 42bdc: 600e bras 42bec <== NOT EXECUTED 42bde: 2079 0005 634c moveal 5634c ,%a0 <== NOT EXECUTED 42be4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42be6: 4e90 jsr %a0@ <== NOT EXECUTED toPrint[count++] = (num - (n*base)); num = n; } toPrint[count++] = num; for (n=maxwidth ; n > count; n-- ) 42be8: 5382 subql #1,%d2 <== NOT EXECUTED 42bea: 588f addql #4,%sp <== NOT EXECUTED 42bec: b882 cmpl %d2,%d4 <== NOT EXECUTED 42bee: 65ee bcss 42bde <== NOT EXECUTED 42bf0: 4282 clrl %d2 <== NOT EXECUTED BSP_output_char(lead); for (n = 0; n < count; n++) { BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); 42bf2: 47f6 4800 lea %fp@(00000000,%d4:l),%a3 <== NOT EXECUTED 42bf6: 601a bras 42c12 <== NOT EXECUTED 42bf8: 1033 08ec moveb %a3@(ffffffec,%d0:l),%d0 <== NOT EXECUTED 42bfc: 49c0 extbl %d0 <== NOT EXECUTED 42bfe: 1035 0800 moveb %a5@(00000000,%d0:l),%d0 <== NOT EXECUTED 42c02: 2079 0005 634c moveal 5634c ,%a0 <== NOT EXECUTED 42c08: 49c0 extbl %d0 <== NOT EXECUTED 42c0a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42c0c: 4e90 jsr %a0@ <== NOT EXECUTED toPrint[count++] = num; for (n=maxwidth ; n > count; n-- ) BSP_output_char(lead); for (n = 0; n < count; n++) { 42c0e: 5282 addql #1,%d2 <== NOT EXECUTED 42c10: 588f addql #4,%sp <== NOT EXECUTED BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); 42c12: 2002 movel %d2,%d0 <== NOT EXECUTED 42c14: 4680 notl %d0 <== NOT EXECUTED toPrint[count++] = num; for (n=maxwidth ; n > count; n-- ) BSP_output_char(lead); for (n = 0; n < count; n++) { 42c16: b882 cmpl %d2,%d4 <== NOT EXECUTED 42c18: 62de bhis 42bf8 <== NOT EXECUTED 42c1a: 600c bras 42c28 <== 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); 42c1c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42c1e: 2079 0005 634c moveal 5634c ,%a0 <== NOT EXECUTED 42c24: 4e90 jsr %a0@ <== NOT EXECUTED 42c26: 588f addql #4,%sp <== NOT EXECUTED ) { char c, *str; int lflag, base, sign, width, lead, minus; for (; *fmt != '\0'; fmt++) { 42c28: 528a addql #1,%a2 <== NOT EXECUTED 42c2a: 1012 moveb %a2@,%d0 <== NOT EXECUTED 42c2c: 6600 fdc4 bnew 429f2 <== NOT EXECUTED base, sign, width, lead); } else { BSP_output_char(*fmt); } } } 42c30: 4cee 3cfc ffc4 moveml %fp@(-60),%d2-%d7/%a2-%a5 <== NOT EXECUTED 42c36: 4e5e unlk %fp <== NOT EXECUTED 42c38: 4e75 rts 00044ffc : #include int wait( int *stat_loc ) { 44ffc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45000: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 45006: 2040 moveal %d0,%a0 <== NOT EXECUTED 45008: 7058 moveq #88,%d0 <== NOT EXECUTED 4500a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 4500c: 4e5e unlk %fp <== NOT EXECUTED 4500e: 70ff moveq #-1,%d0 <== NOT EXECUTED 45010: 4e75 rts <== NOT EXECUTED ... 00045014 : int waitpid( pid_t pid, int *stat_loc, int options ) { 45014: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45018: 4eb9 0004 c42c jsr 4c42c <__errno> <== NOT EXECUTED 4501e: 2040 moveal %d0,%a0 <== NOT EXECUTED 45020: 7058 moveq #88,%d0 <== NOT EXECUTED 45022: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45024: 4e5e unlk %fp <== NOT EXECUTED 45026: 70ff moveq #-1,%d0 <== NOT EXECUTED 45028: 4e75 rts <== NOT EXECUTED ... 000540d0 : ssize_t write( int fd, const void *buffer, size_t count ) { 540d0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 540d4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 540d8: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 540dc: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 540e0: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); 540e4: b4b9 0005 6248 cmpl 56248 ,%d2 <== NOT EXECUTED 540ea: 6420 bccs 5410c <== NOT EXECUTED iop = rtems_libio_iop( fd ); 540ec: 2202 movel %d2,%d1 <== NOT EXECUTED 540ee: 2002 movel %d2,%d0 <== NOT EXECUTED 540f0: e589 lsll #2,%d1 <== NOT EXECUTED 540f2: e988 lsll #4,%d0 <== NOT EXECUTED 540f4: 9081 subl %d1,%d0 <== NOT EXECUTED 540f6: 2479 0005 7d14 moveal 57d14 ,%a2 <== NOT EXECUTED 540fc: d082 addl %d2,%d0 <== NOT EXECUTED 540fe: e588 lsll #2,%d0 <== NOT EXECUTED 54100: d5c0 addal %d0,%a2 <== NOT EXECUTED rtems_libio_check_is_open( iop ); 54102: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 54106: 0800 0008 btst #8,%d0 <== NOT EXECUTED 5410a: 660e bnes 5411a <== NOT EXECUTED 5410c: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 54112: 7209 moveq #9,%d1 <== NOT EXECUTED 54114: 2040 moveal %d0,%a0 <== NOT EXECUTED 54116: 2081 movel %d1,%a0@ <== NOT EXECUTED 54118: 6038 bras 54152 <== NOT EXECUTED rtems_libio_check_buffer( buffer ); 5411a: 4a83 tstl %d3 <== NOT EXECUTED 5411c: 670c beqs 5412a <== NOT EXECUTED rtems_libio_check_count( count ); 5411e: 4a89 tstl %a1 <== NOT EXECUTED 54120: 6604 bnes 54126 <== NOT EXECUTED 54122: 4280 clrl %d0 <== NOT EXECUTED 54124: 6046 bras 5416c <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 54126: 44c0 movew %d0,%ccr <== NOT EXECUTED 54128: 670e beqs 54138 <== NOT EXECUTED 5412a: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 54130: 2040 moveal %d0,%a0 <== NOT EXECUTED 54132: 7016 moveq #22,%d0 <== NOT EXECUTED 54134: 2080 movel %d0,%a0@ <== NOT EXECUTED 54136: 601a bras 54152 <== NOT EXECUTED /* * Now process the write() request. */ if ( !iop->handlers->write_h ) 54138: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 5413c: 2068 000c moveal %a0@(12),%a0 <== NOT EXECUTED 54140: 4a88 tstl %a0 <== NOT EXECUTED 54142: 6612 bnes 54156 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 54144: 4eb9 0004 b794 jsr 4b794 <__errno> <== NOT EXECUTED 5414a: 2040 moveal %d0,%a0 <== NOT EXECUTED 5414c: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 54152: 70ff moveq #-1,%d0 <== NOT EXECUTED 54154: 6016 bras 5416c <== NOT EXECUTED rc = (*iop->handlers->write_h)( iop, buffer, count ); 54156: 2f09 movel %a1,%sp@- <== NOT EXECUTED 54158: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5415a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5415c: 4e90 jsr %a0@ <== NOT EXECUTED if ( rc > 0 ) 5415e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 54164: 4a80 tstl %d0 <== NOT EXECUTED 54166: 6f04 bles 5416c <== NOT EXECUTED iop->offset += rc; 54168: d1aa 0008 addl %d0,%a2@(8) <== NOT EXECUTED return rc; } 5416c: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 54172: 4e5e unlk %fp <== NOT EXECUTED 54174: 4e75 rts <== NOT EXECUTED ...