00043014 : #include static void CPU_usage_Per_thread_handler( Thread_Control *the_thread ) { 43014: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43018: 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 } 4301c: 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; 4301e: 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; 43022: 42a8 0084 clrl %a0@(132) <== NOT EXECUTED the_thread->cpu_time_used.tv_nsec = 0; #else the_thread->cpu_time_used = 0; #endif } 43026: 4e75 rts 00049538 : #define MAXSYMLINK 5 int IMFS_Set_handlers( rtems_filesystem_location_info_t *loc ) { 49538: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4953c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4953e: 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; 49542: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED switch( node->type ) { 49546: 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; 49548: 2068 002c moveal %a0@(44),%a0 <== NOT EXECUTED switch( node->type ) { 4954c: 7006 moveq #6,%d0 <== NOT EXECUTED 4954e: b0a9 0048 cmpl %a1@(72),%d0 <== NOT EXECUTED 49552: 6524 bcss 49578 <== NOT EXECUTED 49554: 2029 0048 movel %a1@(72),%d0 <== NOT EXECUTED 49558: d080 addl %d0,%d0 <== NOT EXECUTED 4955a: 323b 0808 movew %pc@(49564 ,%d0:l),%d1 <== NOT EXECUTED 4955e: 48c1 extl %d1 <== NOT EXECUTED 49560: 4efb 1802 jmp %pc@(49564 ,%d1:l) <== NOT EXECUTED 49564: 0014 024 <== NOT EXECUTED 49566: 000e 016 <== NOT EXECUTED 49568: 003c 074 <== NOT EXECUTED 4956a: 002a 052 <== NOT EXECUTED 4956c: 002a 052 <== NOT EXECUTED 4956e: 001c 034 <== NOT EXECUTED 49570: 001c 034 <== NOT EXECUTED case IMFS_DIRECTORY: loc->handlers = fs_info->directory_handlers; 49572: 2568 0008 0004 movel %a0@(8),%a2@(4) <== NOT EXECUTED loc->handlers = fs_info->memfile_handlers; break; } return 0; } 49578: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4957a: 4e5e unlk %fp <== NOT EXECUTED 4957c: 4280 clrl %d0 <== NOT EXECUTED 4957e: 4e75 rts <== NOT EXECUTED 49580: 4280 clrl %d0 <== NOT EXECUTED break; case IMFS_LINEAR_FILE: loc->handlers = fs_info->memfile_handlers; break; case IMFS_MEMORY_FILE: loc->handlers = fs_info->memfile_handlers; 49582: 2568 0004 0004 movel %a0@(4),%a2@(4) <== NOT EXECUTED break; } return 0; } 49588: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4958a: 4e5e unlk %fp <== NOT EXECUTED 4958c: 4e75 rts <== NOT EXECUTED case IMFS_DEVICE: loc->handlers = &IMFS_device_handlers; break; case IMFS_SYM_LINK: case IMFS_HARD_LINK: loc->handlers = &IMFS_link_handlers; 4958e: 203c 0005 7148 movel #356680,%d0 <== NOT EXECUTED 49594: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED loc->handlers = fs_info->memfile_handlers; break; } return 0; } 49598: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4959a: 4e5e unlk %fp <== NOT EXECUTED 4959c: 4280 clrl %d0 <== NOT EXECUTED 4959e: 4e75 rts <== NOT EXECUTED switch( node->type ) { case IMFS_DIRECTORY: loc->handlers = fs_info->directory_handlers; break; case IMFS_DEVICE: loc->handlers = &IMFS_device_handlers; 495a0: 203c 0005 7110 movel #356624,%d0 <== NOT EXECUTED 495a6: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED loc->handlers = fs_info->memfile_handlers; break; } return 0; } 495aa: 245f moveal %sp@+,%a2 <== NOT EXECUTED 495ac: 4e5e unlk %fp <== NOT EXECUTED 495ae: 4280 clrl %d0 <== NOT EXECUTED 495b0: 4e75 rts 0005ed9c : int IMFS_chown( rtems_filesystem_location_info_t *pathloc, /* IN */ uid_t owner, /* IN */ gid_t group /* IN */ ) { 5ed9c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 5eda0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 5eda4: 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; 5eda8: 2450 moveal %a0@,%a2 <== NOT EXECUTED int IMFS_chown( rtems_filesystem_location_info_t *pathloc, /* IN */ uid_t owner, /* IN */ gid_t group /* IN */ ) { 5edaa: 362e 000e movew %fp@(14),%d3 <== NOT EXECUTED 5edae: 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(); 5edb2: 4eb9 0006 08a4 jsr 608a4 <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 5edb8: 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(); 5edba: 3400 movew %d0,%d2 <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 5edbc: 3200 movew %d0,%d1 <== NOT EXECUTED 5edbe: 4280 clrl %d0 <== NOT EXECUTED 5edc0: 302a 0038 movew %a2@(56),%d0 <== NOT EXECUTED 5edc4: b081 cmpl %d1,%d0 <== NOT EXECUTED 5edc6: 6704 beqs 5edcc <== NOT EXECUTED 5edc8: 4a42 tstw %d2 <== NOT EXECUTED 5edca: 6628 bnes 5edf4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EPERM ); #endif jnode->st_uid = owner; 5edcc: 3543 0038 movew %d3,%a2@(56) <== NOT EXECUTED jnode->st_gid = group; 5edd0: 3544 003a movew %d4,%a2@(58) <== NOT EXECUTED IMFS_update_ctime( jnode ); 5edd4: 42a7 clrl %sp@- <== NOT EXECUTED 5edd6: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 5edda: 4eb9 0004 6274 jsr 46274 <== NOT EXECUTED 5ede0: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED 5ede6: 508f addql #8,%sp <== NOT EXECUTED return 0; } 5ede8: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED 5edee: 4e5e unlk %fp <== NOT EXECUTED #endif jnode->st_uid = owner; jnode->st_gid = group; IMFS_update_ctime( jnode ); 5edf0: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5edf2: 4e75 rts <== NOT EXECUTED #if defined(RTEMS_POSIX_API) st_uid = geteuid(); if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) rtems_set_errno_and_return_minus_one( EPERM ); 5edf4: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 5edfa: 2040 moveal %d0,%a0 <== NOT EXECUTED 5edfc: 7001 moveq #1,%d0 <== NOT EXECUTED jnode->st_gid = group; IMFS_update_ctime( jnode ); return 0; } 5edfe: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED #if defined(RTEMS_POSIX_API) st_uid = geteuid(); if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) rtems_set_errno_and_return_minus_one( EPERM ); 5ee04: 2080 movel %d0,%a0@ <== NOT EXECUTED jnode->st_gid = group; IMFS_update_ctime( jnode ); return 0; } 5ee06: 4e5e unlk %fp <== NOT EXECUTED #if defined(RTEMS_POSIX_API) st_uid = geteuid(); if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) rtems_set_errno_and_return_minus_one( EPERM ); 5ee08: 70ff moveq #-1,%d0 <== NOT EXECUTED jnode->st_gid = group; IMFS_update_ctime( jnode ); return 0; } 5ee0a: 4e75 rts 0004c7d0 : IMFS_jnode_types_t type, const char *name, mode_t mode, const IMFS_types_union *info ) { 4c7d0: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4c7d4: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 4c7d8: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 4c7dc: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED IMFS_jnode_t *node; struct timeval tv; IMFS_jnode_t *parent = NULL; IMFS_fs_info_t *fs_info; if ( parent_loc != NULL ) 4c7e0: 4a8c tstl %a4 <== NOT EXECUTED 4c7e2: 6700 013a beqw 4c91e <== NOT EXECUTED parent = parent_loc->node_access; 4c7e6: 2654 moveal %a4@,%a3 <== NOT EXECUTED /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 4c7e8: 4878 005c pea 5c <== NOT EXECUTED 4c7ec: 4878 0001 pea 1 <== NOT EXECUTED 4c7f0: 4eb9 0004 a500 jsr 4a500 <== NOT EXECUTED if ( !node ) 4c7f6: 508f addql #8,%sp <== NOT EXECUTED /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 4c7f8: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !node ) 4c7fa: 4a80 tstl %d0 <== NOT EXECUTED 4c7fc: 6700 00c0 beqw 4c8be <== NOT EXECUTED * Fill in the basic information */ node->st_nlink = 1; node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 4c800: 4878 0020 pea 20 <== NOT EXECUTED /* * Fill in the basic information */ node->st_nlink = 1; 4c804: 7001 moveq #1,%d0 <== NOT EXECUTED node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 4c806: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED /* * Fill in the basic information */ node->st_nlink = 1; 4c80a: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED node->type = type; 4c80e: 2542 0048 movel %d2,%a2@(72) <== NOT EXECUTED strncpy( node->name, name, IMFS_NAME_MAX ); 4c812: 486a 000c pea %a2@(12) <== NOT EXECUTED 4c816: 4eb9 0004 ed68 jsr 4ed68 <== NOT EXECUTED /* * Fill in the mode and permission information for the jnode structure. */ node->st_mode = mode & ~rtems_filesystem_umask; 4c81c: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED 4c822: 2028 0024 movel %a0@(36),%d0 <== NOT EXECUTED 4c826: 4680 notl %d0 <== NOT EXECUTED 4c828: c0ae 0014 andl %fp@(20),%d0 <== NOT EXECUTED 4c82c: 2540 002e movel %d0,%a2@(46) <== NOT EXECUTED #if defined(RTEMS_POSIX_API) node->st_uid = geteuid(); 4c830: 4eb9 0004 a79c jsr 4a79c <== NOT EXECUTED 4c836: 3540 0038 movew %d0,%a2@(56) <== NOT EXECUTED node->st_gid = getegid(); 4c83a: 4eb9 0004 a788 jsr 4a788 <== NOT EXECUTED /* * Now set all the times. */ gettimeofday( &tv, 0 ); 4c840: 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(); 4c842: 3540 003a movew %d0,%a2@(58) <== NOT EXECUTED /* * Now set all the times. */ gettimeofday( &tv, 0 ); 4c846: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4c84a: 4eb9 0004 a7b0 jsr 4a7b0 <== NOT EXECUTED node->stat_atime = (time_t) tv.tv_sec; 4c850: 222e fff8 movel %fp@(-8),%d1 <== NOT EXECUTED /* * Set the type specific information */ switch (type) { 4c854: dffc 0000 0014 addal #20,%sp <== 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; 4c85a: 2541 0044 movel %d1,%a2@(68) <== NOT EXECUTED /* * Set the type specific information */ switch (type) { 4c85e: 7006 moveq #6,%d0 <== NOT EXECUTED * Now set all the times. */ gettimeofday( &tv, 0 ); node->stat_atime = (time_t) tv.tv_sec; 4c860: 2541 003c movel %d1,%a2@(60) <== NOT EXECUTED node->stat_mtime = (time_t) tv.tv_sec; 4c864: 2541 0040 movel %d1,%a2@(64) <== NOT EXECUTED /* * Set the type specific information */ switch (type) { 4c868: b082 cmpl %d2,%d0 <== NOT EXECUTED 4c86a: 645e bccs 4c8ca <== NOT EXECUTED node->info.file.doubly_indirect = 0; node->info.file.triply_indirect = 0; break; default: assert(0); 4c86c: 4879 0005 7564 pea 57564 <== NOT EXECUTED 4c872: 4879 0005 75b2 pea 575b2 <__func__.5543> <== NOT EXECUTED 4c878: 4878 0074 pea 74 <== NOT EXECUTED 4c87c: 4879 0005 7566 pea 57566 <== NOT EXECUTED 4c882: 4eb9 0004 a2c0 jsr 4a2c0 <__assert_func> <== NOT EXECUTED case IMFS_SYM_LINK: node->info.sym_link.name = info->sym_link.name; break; case IMFS_DEVICE: node->info.device.major = info->device.major; 4c888: 206e 0018 moveal %fp@(24),%a0 <== NOT EXECUTED 4c88c: 2550 004c movel %a0@,%a2@(76) <== NOT EXECUTED node->info.device.minor = info->device.minor; 4c890: 5888 addql #4,%a0 <== NOT EXECUTED 4c892: 2550 0050 movel %a0@,%a2@(80) <== NOT EXECUTED /* * If this node has a parent, then put it in that directory list. */ if ( parent ) { 4c896: 4a8b tstl %a3 <== NOT EXECUTED 4c898: 6724 beqs 4c8be <== 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 ); 4c89a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4c89c: 486b 004c pea %a3@(76) <== NOT EXECUTED 4c8a0: 4eb9 0004 6824 jsr 46824 <_Chain_Append> <== NOT EXECUTED rtems_chain_append( &parent->info.directory.Entries, &node->Node ); node->Parent = parent; fs_info = parent_loc->mt_entry->fs_info; 4c8a6: 206c 000c moveal %a4@(12),%a0 <== NOT EXECUTED 4c8aa: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED node->st_ino = ++fs_info->ino_count; 4c8ae: 2011 movel %a1@,%d0 <== NOT EXECUTED 4c8b0: 5280 addql #1,%d0 <== NOT EXECUTED 4c8b2: 2280 movel %d0,%a1@ <== NOT EXECUTED 4c8b4: 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; 4c8b6: 254b 0008 movel %a3,%a2@(8) <== NOT EXECUTED fs_info = parent_loc->mt_entry->fs_info; node->st_ino = ++fs_info->ino_count; 4c8ba: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED } return node; } 4c8be: 200a movel %a2,%d0 <== NOT EXECUTED 4c8c0: 4cee 1c04 ffe8 moveml %fp@(-24),%d2/%a2-%a4 <== NOT EXECUTED 4c8c6: 4e5e unlk %fp <== NOT EXECUTED 4c8c8: 4e75 rts <== NOT EXECUTED /* * Set the type specific information */ switch (type) { 4c8ca: 303b 2a08 movew %pc@(4c8d4 ,%d2:l:2),%d0 <== NOT EXECUTED 4c8ce: 48c0 extl %d0 <== NOT EXECUTED 4c8d0: 4efb 0802 jmp %pc@(4c8d4 ,%d0:l) <== NOT EXECUTED 4c8d4: ff98 0032 cp1stl %d0,%a0@+,#1,#50 <== NOT EXECUTED 4c8d8: ffb4 0177664 <== NOT EXECUTED 4c8da: 000e 016 <== NOT EXECUTED 4c8dc: 000e 016 <== NOT EXECUTED 4c8de: 0020 040 <== NOT EXECUTED 4c8e0: 0018 030 <== 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; 4c8e2: 206e 0018 moveal %fp@(24),%a0 <== NOT EXECUTED 4c8e6: 2550 004c movel %a0@,%a2@(76) <== NOT EXECUTED 4c8ea: 60aa bras 4c896 <== NOT EXECUTED node->info.device.major = info->device.major; node->info.device.minor = info->device.minor; break; case IMFS_LINEAR_FILE: node->info.linearfile.size = 0; 4c8ec: 42aa 004c clrl %a2@(76) <== NOT EXECUTED node->info.linearfile.direct = 0; 4c8f0: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED case IMFS_MEMORY_FILE: node->info.file.size = 0; 4c8f4: 42aa 004c clrl %a2@(76) <== NOT EXECUTED node->info.file.indirect = 0; 4c8f8: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED node->info.file.doubly_indirect = 0; 4c8fc: 42aa 0054 clrl %a2@(84) <== NOT EXECUTED node->info.file.triply_indirect = 0; 4c900: 42aa 0058 clrl %a2@(88) <== NOT EXECUTED 4c904: 6090 bras 4c896 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4c906: 41ea 0050 lea %a2@(80),%a0 <== NOT EXECUTED 4c90a: 2548 004c movel %a0,%a2@(76) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4c90e: 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; 4c912: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 4c916: 2548 0054 movel %a0,%a2@(84) <== NOT EXECUTED 4c91a: 6000 ff7a braw 4c896 <== NOT EXECUTED IMFS_jnode_t *node; struct timeval tv; IMFS_jnode_t *parent = NULL; IMFS_fs_info_t *fs_info; if ( parent_loc != NULL ) 4c91e: 97cb subal %a3,%a3 <== NOT EXECUTED 4c920: 6000 fec6 braw 4c7e8 <== NOT EXECUTED 0004405a : * NOTE: Assuming the "/" directory is bad. * Not checking that the starting directory is in an IMFS is bad. */ void IMFS_dump( void ) { 4405a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED fprintf(stdout, "*************** Dump of Entire IMFS ***************\n" ); 4405e: 2079 0005 ee30 moveal 5ee30 <_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 ) { 44064: 2f0a movel %a2,%sp@- <== NOT EXECUTED fprintf(stdout, "*************** Dump of Entire IMFS ***************\n" ); 44066: 45f9 0005 2684 lea 52684 ,%a2 <== NOT EXECUTED 4406c: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44070: 4878 0034 pea 34 <== NOT EXECUTED 44074: 4878 0001 pea 1 <== NOT EXECUTED 44078: 4879 0005 ce58 pea 5ce58 <== NOT EXECUTED 4407e: 4e92 jsr %a2@ <== NOT EXECUTED fprintf(stdout, "/\n" ); 44080: 2079 0005 ee30 moveal 5ee30 <_impure_ptr>,%a0 <== NOT EXECUTED 44086: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4408a: 4878 0002 pea 2 <== NOT EXECUTED 4408e: 4878 0001 pea 1 <== NOT EXECUTED 44092: 4879 0005 ce8d pea 5ce8d <== NOT EXECUTED 44098: 4e92 jsr %a2@ <== NOT EXECUTED IMFS_dump_directory( rtems_filesystem_root.node_access, 0 ); 4409a: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 440a0: 2079 0005 e95c moveal 5e95c ,%a0 <== NOT EXECUTED 440a6: 4297 clrl %sp@ <== NOT EXECUTED 440a8: 2f28 0014 movel %a0@(20),%sp@- <== NOT EXECUTED 440ac: 4eb9 0004 3f64 jsr 43f64 <== NOT EXECUTED fprintf(stdout, "*************** End of Dump ***************\n" ); 440b2: 2079 0005 ee30 moveal 5ee30 <_impure_ptr>,%a0 <== NOT EXECUTED 440b8: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 440bc: 4878 0039 pea 39 <== NOT EXECUTED 440c0: 4878 0001 pea 1 <== NOT EXECUTED 440c4: 4879 0005 ce90 pea 5ce90 <== NOT EXECUTED 440ca: 4e92 jsr %a2@ <== NOT EXECUTED } 440cc: 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" ); 440d0: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED } 440d6: 4e5e unlk %fp <== NOT EXECUTED 440d8: 4e75 rts <== NOT EXECUTED ... 00043f64 : void IMFS_dump_directory( IMFS_jnode_t *the_directory, int level ) { 43f64: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 43f68: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== NOT EXECUTED 43f6c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 43f70: 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 ); 43f74: 4a88 tstl %a0 <== NOT EXECUTED 43f76: 6700 008e beqw 44006 <== NOT EXECUTED assert( level >= 0 ); 43f7a: 4a83 tstl %d3 <== NOT EXECUTED 43f7c: 6d00 00c0 bltw 4403e <== NOT EXECUTED assert( the_directory->type == IMFS_DIRECTORY ); 43f80: 7001 moveq #1,%d0 <== NOT EXECUTED 43f82: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 43f86: 6600 009a bnew 44022 <== NOT EXECUTED the_chain = &the_directory->info.directory.Entries; for ( the_node = the_chain->first; 43f8a: 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; 43f8e: 2808 movel %a0,%d4 <== NOT EXECUTED 43f90: 0684 0000 0050 addil #80,%d4 <== NOT EXECUTED !rtems_chain_is_tail( the_chain, the_node ); 43f96: b88a cmpl %a2,%d4 <== NOT EXECUTED 43f98: 6752 beqs 43fec <== 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 ); 43f9a: 2a03 movel %d3,%d5 <== NOT EXECUTED 43f9c: 47f9 0005 2684 lea 52684 ,%a3 <== NOT EXECUTED 43fa2: 49f9 0004 3d82 lea 43d82 ,%a4 <== NOT EXECUTED 43fa8: 5285 addql #1,%d5 <== NOT EXECUTED 43faa: 4bf9 0004 3f64 lea 43f64 ,%a5 <== 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; 43fb0: 4282 clrl %d2 <== NOT EXECUTED for ( i=0 ; i<=level ; i++ ) fprintf(stdout, "...." ); 43fb2: 2079 0005 ee30 moveal 5ee30 <_impure_ptr>,%a0 <== NOT EXECUTED 43fb8: 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++ ) 43fbc: 5282 addql #1,%d2 <== NOT EXECUTED fprintf(stdout, "...." ); 43fbe: 4878 0004 pea 4 <== NOT EXECUTED 43fc2: 4878 0001 pea 1 <== NOT EXECUTED 43fc6: 4879 0005 ce53 pea 5ce53 <== NOT EXECUTED 43fcc: 4e93 jsr %a3@ <== 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++ ) 43fce: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 43fd4: b483 cmpl %d3,%d2 <== NOT EXECUTED 43fd6: 6fda bles 43fb2 <== NOT EXECUTED fprintf(stdout, "...." ); IMFS_print_jnode( the_jnode ); 43fd8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43fda: 4e94 jsr %a4@ <== NOT EXECUTED if ( the_jnode->type == IMFS_DIRECTORY ) 43fdc: 588f addql #4,%sp <== NOT EXECUTED 43fde: 7001 moveq #1,%d0 <== NOT EXECUTED 43fe0: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 43fe4: 6710 beqs 43ff6 <== 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 ) { 43fe6: 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 ); 43fe8: b88a cmpl %a2,%d4 <== NOT EXECUTED 43fea: 66c4 bnes 43fb0 <== NOT EXECUTED fprintf(stdout, "...." ); IMFS_print_jnode( the_jnode ); if ( the_jnode->type == IMFS_DIRECTORY ) IMFS_dump_directory( the_jnode, level + 1 ); } } 43fec: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 43ff2: 4e5e unlk %fp <== NOT EXECUTED 43ff4: 4e75 rts <== NOT EXECUTED for ( i=0 ; i<=level ; i++ ) fprintf(stdout, "...." ); IMFS_print_jnode( the_jnode ); if ( the_jnode->type == IMFS_DIRECTORY ) IMFS_dump_directory( the_jnode, level + 1 ); 43ff6: 2f05 movel %d5,%sp@- <== NOT EXECUTED 43ff8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43ffa: 4e95 jsr %a5@ <== 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 ) { 43ffc: 2452 moveal %a2@,%a2 <== 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 ); 43ffe: 508f addql #8,%sp <== 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 ); 44000: b88a cmpl %a2,%d4 <== NOT EXECUTED 44002: 66ac bnes 43fb0 <== NOT EXECUTED 44004: 60e6 bras 43fec <== NOT EXECUTED rtems_chain_node *the_node; rtems_chain_control *the_chain; IMFS_jnode_t *the_jnode; int i; assert( the_directory ); 44006: 4879 0005 ce14 pea 5ce14 <== NOT EXECUTED 4400c: 4879 0005 cee2 pea 5cee2 <__func__.6243> <== NOT EXECUTED 44012: 4878 007f pea 7f <== NOT EXECUTED 44016: 4879 0005 cd78 pea 5cd78 <== NOT EXECUTED 4401c: 4eb9 0004 476c jsr 4476c <__assert_func> <== NOT EXECUTED assert( level >= 0 ); assert( the_directory->type == IMFS_DIRECTORY ); 44022: 4879 0005 ce2d pea 5ce2d <== NOT EXECUTED 44028: 4879 0005 cee2 pea 5cee2 <__func__.6243> <== NOT EXECUTED 4402e: 4878 0083 pea 83 <== NOT EXECUTED 44032: 4879 0005 cd78 pea 5cd78 <== NOT EXECUTED 44038: 4eb9 0004 476c jsr 4476c <__assert_func> <== NOT EXECUTED IMFS_jnode_t *the_jnode; int i; assert( the_directory ); assert( level >= 0 ); 4403e: 4879 0005 ce22 pea 5ce22 <== NOT EXECUTED 44044: 4879 0005 cee2 pea 5cee2 <__func__.6243> <== NOT EXECUTED 4404a: 4878 0081 pea 81 <== NOT EXECUTED 4404e: 4879 0005 cd78 pea 5cd78 <== NOT EXECUTED 44054: 4eb9 0004 476c jsr 4476c <__assert_func> <== NOT EXECUTED 000497a4 : int IMFS_eval_path( const char *pathname, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 497a4: 4e56 ffb0 linkw %fp,#-80 <== NOT EXECUTED 497a8: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 497ac: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 497b0: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 497b4: 2453 moveal %a3@,%a2 <== NOT EXECUTED 497b6: 2a0e movel %fp,%d5 <== NOT EXECUTED 497b8: 280e movel %fp,%d4 <== NOT EXECUTED 497ba: 4283 clrl %d3 <== NOT EXECUTED 497bc: 5985 subql #4,%d5 <== NOT EXECUTED 497be: 0684 ffff ffdb addil #-37,%d4 <== NOT EXECUTED 497c4: 4bf9 0004 9dfc lea 49dfc ,%a5 <== NOT EXECUTED /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) if ( node->type == IMFS_DIRECTORY ) if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) 497ca: 2e3c 0004 95b2 movel #300466,%d7 <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 497d0: 2c3c 0004 9d48 movel #302408,%d6 <== 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 ); 497d6: 2f05 movel %d5,%sp@- <== NOT EXECUTED 497d8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 497da: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 497de: 4e95 jsr %a5@ <== NOT EXECUTED 497e0: 2400 movel %d0,%d2 <== NOT EXECUTED i += len; 497e2: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED if ( !pathloc->node_access ) 497e6: 2253 moveal %a3@,%a1 <== NOT EXECUTED 497e8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 497ee: 4a89 tstl %a1 <== NOT EXECUTED 497f0: 6700 00ea beqw 498dc <== NOT EXECUTED */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], token, &len ); i += len; 497f4: d680 addl %d0,%d3 <== 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 ) 497f6: 4a82 tstl %d2 <== NOT EXECUTED 497f8: 6656 bnes 49850 <== 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 ) { 497fa: 7201 moveq #1,%d1 <== NOT EXECUTED 497fc: b2a9 0048 cmpl %a1@(72),%d1 <== NOT EXECUTED 49800: 6600 0126 bnew 49928 <== NOT EXECUTED if ( node->info.directory.mt_fs != NULL ) { 49804: 2069 0058 moveal %a1@(88),%a0 <== NOT EXECUTED 49808: 4a88 tstl %a0 <== NOT EXECUTED 4980a: 6700 011c beqw 49928 <== NOT EXECUTED newloc = node->info.directory.mt_fs->mt_fs_root; 4980e: 2268 0020 moveal %a0@(32),%a1 <== NOT EXECUTED *pathloc = newloc; 49812: 2768 0024 000c movel %a0@(36),%a3@(12) <== NOT EXECUTED * NOTE: The behavior of stat() on a mount point appears to be questionable. */ if ( node->type == IMFS_DIRECTORY ) { if ( node->info.directory.mt_fs != NULL ) { newloc = node->info.directory.mt_fs->mt_fs_root; 49818: 2028 001c movel %a0@(28),%d0 <== NOT EXECUTED 4981c: 2228 0018 movel %a0@(24),%d1 <== NOT EXECUTED *pathloc = newloc; return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc ); 49820: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49822: 96ae fffc subl %fp@(-4),%d3 <== NOT EXECUTED 49826: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4982a: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 4982e: 2051 moveal %a1@,%a0 <== NOT EXECUTED */ if ( node->type == IMFS_DIRECTORY ) { if ( node->info.directory.mt_fs != NULL ) { newloc = node->info.directory.mt_fs->mt_fs_root; *pathloc = newloc; 49830: 2740 0004 movel %d0,%a3@(4) <== NOT EXECUTED 49834: 2681 movel %d1,%a3@ <== NOT EXECUTED 49836: 2749 0008 movel %a1,%a3@(8) <== NOT EXECUTED return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc ); 4983a: 4e90 jsr %a0@ <== NOT EXECUTED 4983c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49842: 2400 movel %d0,%d2 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49844: 2002 movel %d2,%d0 <== NOT EXECUTED 49846: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4984c: 4e5e unlk %fp <== NOT EXECUTED 4984e: 4e75 rts <== NOT EXECUTED /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) if ( node->type == IMFS_DIRECTORY ) 49850: 7001 moveq #1,%d0 <== NOT EXECUTED 49852: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 49856: 6700 00b8 beqw 49910 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; 4985a: 2449 moveal %a1,%a2 <== NOT EXECUTED switch( type ) { 4985c: 7003 moveq #3,%d0 <== NOT EXECUTED 4985e: b082 cmpl %d2,%d0 <== NOT EXECUTED 49860: 671c beqs 4987e <== NOT EXECUTED 49862: 7204 moveq #4,%d1 <== NOT EXECUTED 49864: b282 cmpl %d2,%d1 <== NOT EXECUTED 49866: 6700 008e beqw 498f6 <== NOT EXECUTED 4986a: 103c 0002 moveb #2,%d0 <== NOT EXECUTED 4986e: b082 cmpl %d2,%d0 <== NOT EXECUTED 49870: 6748 beqs 498ba <== NOT EXECUTED /* * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { 49872: 7004 moveq #4,%d0 <== NOT EXECUTED 49874: b082 cmpl %d2,%d0 <== NOT EXECUTED 49876: 6600 ff5e bnew 497d6 <== NOT EXECUTED 4987a: 6000 ff7e braw 497fa <== NOT EXECUTED case IMFS_NAME: /* * If we are at a link follow it. */ if ( node->type == IMFS_HARD_LINK ) { 4987e: 2029 0048 movel %a1@(72),%d0 <== NOT EXECUTED 49882: 7203 moveq #3,%d1 <== NOT EXECUTED 49884: b280 cmpl %d0,%d1 <== NOT EXECUTED 49886: 6700 00d8 beqw 49960 <== NOT EXECUTED node = pathloc->node_access; if ( !node ) rtems_set_errno_and_return_minus_one( ENOTDIR ); } else if ( node->type == IMFS_SYM_LINK ) { 4988a: 7204 moveq #4,%d1 <== NOT EXECUTED 4988c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4988e: 6700 00ea beqw 4997a <== NOT EXECUTED /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 49892: 7201 moveq #1,%d1 <== NOT EXECUTED 49894: b280 cmpl %d0,%d1 <== NOT EXECUTED 49896: 6600 0104 bnew 4999c <== 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 ) { 4989a: 206a 0058 moveal %a2@(88),%a0 <== NOT EXECUTED 4989e: 4a88 tstl %a0 <== NOT EXECUTED 498a0: 6600 ff6c bnew 4980e <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 498a4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 498a6: 2046 moveal %d6,%a0 <== NOT EXECUTED 498a8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 498aa: 4e90 jsr %a0@ <== NOT EXECUTED if ( !node ) 498ac: 508f addql #8,%sp <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 498ae: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !node ) 498b0: 4a80 tstl %d0 <== NOT EXECUTED 498b2: 6728 beqs 498dc <== NOT EXECUTED /* * Set the node access to the point we have found. */ pathloc->node_access = node; 498b4: 268a movel %a2,%a3@ <== NOT EXECUTED 498b6: 6000 ff1e braw 497d6 <== 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 ) 498ba: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED 498c0: b3e8 0014 cmpal %a0@(20),%a1 <== NOT EXECUTED 498c4: 6700 ff10 beqw 497d6 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == 498c8: 206b 000c moveal %a3@(12),%a0 <== NOT EXECUTED 498cc: b3e8 0018 cmpal %a0@(24),%a1 <== NOT EXECUTED 498d0: 6700 00fe beqw 499d0 <== NOT EXECUTED *pathloc = newloc; return (*pathloc->ops->evalpath_h)(&(pathname[i-len]),flags,pathloc); } } else { if ( !node->Parent ) 498d4: 2469 0008 moveal %a1@(8),%a2 <== NOT EXECUTED 498d8: 4a8a tstl %a2 <== NOT EXECUTED 498da: 66d8 bnes 498b4 <== NOT EXECUTED * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); if ( !node ) rtems_set_errno_and_return_minus_one( ENOENT ); 498dc: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 498e2: 7c02 moveq #2,%d6 <== NOT EXECUTED 498e4: 2040 moveal %d0,%a0 <== NOT EXECUTED 498e6: 74ff moveq #-1,%d2 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 498e8: 2002 movel %d2,%d0 <== NOT EXECUTED * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); if ( !node ) rtems_set_errno_and_return_minus_one( ENOENT ); 498ea: 2086 movel %d6,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 498ec: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 498f2: 4e5e unlk %fp <== NOT EXECUTED 498f4: 4e75 rts <== NOT EXECUTED case IMFS_NO_MORE_PATH: case IMFS_CURRENT_DIR: break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 498f6: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 498fc: 7a5b moveq #91,%d5 <== NOT EXECUTED 498fe: 2040 moveal %d0,%a0 <== NOT EXECUTED 49900: 74ff moveq #-1,%d2 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49902: 2002 movel %d2,%d0 <== NOT EXECUTED case IMFS_NO_MORE_PATH: case IMFS_CURRENT_DIR: break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 49904: 2085 movel %d5,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49906: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4990c: 4e5e unlk %fp <== NOT EXECUTED 4990e: 4e75 rts <== NOT EXECUTED /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) if ( node->type == IMFS_DIRECTORY ) if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) 49910: 4878 0001 pea 1 <== NOT EXECUTED 49914: 2047 moveal %d7,%a0 <== NOT EXECUTED 49916: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49918: 4e90 jsr %a0@ <== NOT EXECUTED 4991a: 508f addql #8,%sp <== NOT EXECUTED 4991c: 4a80 tstl %d0 <== NOT EXECUTED 4991e: 6700 0096 beqw 499b6 <== NOT EXECUTED 49922: 2253 moveal %a3@,%a1 <== NOT EXECUTED 49924: 6000 ff34 braw 4985a <== NOT EXECUTED return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc ); } else { result = IMFS_Set_handlers( pathloc ); } } else { result = IMFS_Set_handlers( pathloc ); 49928: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4992a: 4eb9 0004 9538 jsr 49538 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( pathloc, flags ) ) 49930: 2eae 000c movel %fp@(12),%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 ); 49934: 2400 movel %d0,%d2 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( pathloc, flags ) ) 49936: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49938: 4eb9 0004 95b2 jsr 495b2 <== NOT EXECUTED 4993e: 508f addql #8,%sp <== NOT EXECUTED 49940: 4a80 tstl %d0 <== NOT EXECUTED 49942: 6600 ff00 bnew 49844 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 49946: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4994c: 74ff moveq #-1,%d2 <== NOT EXECUTED 4994e: 2040 moveal %d0,%a0 <== NOT EXECUTED 49950: 780d moveq #13,%d4 <== NOT EXECUTED return result; } 49952: 2002 movel %d2,%d0 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); 49954: 2084 movel %d4,%a0@ <== NOT EXECUTED return result; } 49956: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4995c: 4e5e unlk %fp <== NOT EXECUTED 4995e: 4e75 rts <== NOT EXECUTED * If we are at a link follow it. */ if ( node->type == IMFS_HARD_LINK ) { IMFS_evaluate_hard_link( pathloc, 0 ); 49960: 42a7 clrl %sp@- <== NOT EXECUTED 49962: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49964: 4eb9 0004 964e jsr 4964e <== NOT EXECUTED node = pathloc->node_access; 4996a: 2453 moveal %a3@,%a2 <== NOT EXECUTED if ( !node ) 4996c: 508f addql #8,%sp <== NOT EXECUTED 4996e: 4a8a tstl %a2 <== NOT EXECUTED 49970: 672a beqs 4999c <== NOT EXECUTED } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_sym_link( pathloc, 0 ); node = pathloc->node_access; 49972: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 49976: 6000 ff1a braw 49892 <== 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 ); 4997a: 42a7 clrl %sp@- <== NOT EXECUTED 4997c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4997e: 4eb9 0004 96b0 jsr 496b0 <== NOT EXECUTED 49984: 2400 movel %d0,%d2 <== NOT EXECUTED node = pathloc->node_access; 49986: 2013 movel %a3@,%d0 <== NOT EXECUTED if ( result == -1 ) 49988: 508f addql #8,%sp <== NOT EXECUTED 4998a: 72ff moveq #-1,%d1 <== NOT EXECUTED 4998c: b282 cmpl %d2,%d1 <== NOT EXECUTED 4998e: 6700 feb4 beqw 49844 <== NOT EXECUTED } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_sym_link( pathloc, 0 ); node = pathloc->node_access; 49992: 2440 moveal %d0,%a2 <== NOT EXECUTED 49994: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 49998: 6000 fef8 braw 49892 <== NOT EXECUTED /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 4999c: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 499a2: 7e14 moveq #20,%d7 <== NOT EXECUTED 499a4: 2040 moveal %d0,%a0 <== NOT EXECUTED 499a6: 74ff moveq #-1,%d2 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 499a8: 2002 movel %d2,%d0 <== NOT EXECUTED /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 499aa: 2087 movel %d7,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 499ac: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 499b2: 4e5e unlk %fp <== NOT EXECUTED 499b4: 4e75 rts <== NOT EXECUTED * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) if ( node->type == IMFS_DIRECTORY ) if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) rtems_set_errno_and_return_minus_one( EACCES ); 499b6: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 499bc: 2040 moveal %d0,%a0 <== NOT EXECUTED 499be: 700d moveq #13,%d0 <== NOT EXECUTED 499c0: 74ff moveq #-1,%d2 <== NOT EXECUTED 499c2: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 499c4: 2002 movel %d2,%d0 <== NOT EXECUTED 499c6: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 499cc: 4e5e unlk %fp <== NOT EXECUTED 499ce: 4e75 rts <== 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; 499d0: 2268 0010 moveal %a0@(16),%a1 <== NOT EXECUTED *pathloc = newloc; 499d4: 2768 0014 000c movel %a0@(20),%a3@(12) <== 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; 499da: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED 499de: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED if ( node->type == IMFS_DIRECTORY ) { if ( node->info.directory.mt_fs != NULL ) { newloc = node->info.directory.mt_fs->mt_fs_root; *pathloc = newloc; return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc ); 499e2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 499e4: 96ae fffc subl %fp@(-4),%d3 <== NOT EXECUTED 499e8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 499ec: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 499f0: 2051 moveal %a1@,%a0 <== NOT EXECUTED */ if ( node->type == IMFS_DIRECTORY ) { if ( node->info.directory.mt_fs != NULL ) { newloc = node->info.directory.mt_fs->mt_fs_root; *pathloc = newloc; 499f2: 2740 0004 movel %d0,%a3@(4) <== NOT EXECUTED 499f6: 2681 movel %d1,%a3@ <== NOT EXECUTED 499f8: 2749 0008 movel %a1,%a3@(8) <== NOT EXECUTED return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc ); 499fc: 4e90 jsr %a0@ <== NOT EXECUTED 499fe: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49a04: 2400 movel %d0,%d2 <== NOT EXECUTED 49a06: 6000 fe3c braw 49844 <== NOT EXECUTED 00049ac6 : int IMFS_evaluate_for_make( const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) { 49ac6: 4e56 ffb0 linkw %fp,#-80 <== NOT EXECUTED 49aca: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 49ace: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 49ad2: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 49ad6: 2453 moveal %a3@,%a2 <== NOT EXECUTED 49ad8: 2c0e movel %fp,%d6 <== NOT EXECUTED 49ada: 2a0e movel %fp,%d5 <== NOT EXECUTED 49adc: 4284 clrl %d4 <== NOT EXECUTED 49ade: 5986 subql #4,%d6 <== NOT EXECUTED 49ae0: 0685 ffff ffdb addil #-37,%d5 <== NOT EXECUTED 49ae6: 4bf9 0004 9dfc lea 49dfc ,%a5 <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 49aec: 2e3c 0004 9d48 movel #302408,%d7 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], token, &len ); 49af2: 2f06 movel %d6,%sp@- <== NOT EXECUTED 49af4: 2f05 movel %d5,%sp@- <== NOT EXECUTED 49af6: 4874 4800 pea %a4@(00000000,%d4:l) <== NOT EXECUTED 49afa: 4e95 jsr %a5@ <== NOT EXECUTED i += len; 49afc: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED if ( !pathloc->node_access ) 49b00: 2253 moveal %a3@,%a1 <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], token, &len ); 49b02: 2400 movel %d0,%d2 <== NOT EXECUTED i += len; if ( !pathloc->node_access ) 49b04: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49b0a: 4a89 tstl %a1 <== NOT EXECUTED 49b0c: 6700 00c8 beqw 49bd6 <== NOT EXECUTED /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) 49b10: 4a80 tstl %d0 <== NOT EXECUTED 49b12: 6742 beqs 49b56 <== NOT EXECUTED if ( node->type == IMFS_DIRECTORY ) 49b14: 7001 moveq #1,%d0 <== NOT EXECUTED 49b16: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 49b1a: 6700 00d4 beqw 49bf0 <== NOT EXECUTED */ while( !done ) { type = IMFS_get_token( &path[i], token, &len ); i += len; 49b1e: d883 addl %d3,%d4 <== NOT EXECUTED if ( type != IMFS_NO_MORE_PATH ) if ( node->type == IMFS_DIRECTORY ) if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; 49b20: 2449 moveal %a1,%a2 <== NOT EXECUTED switch( type ) { 49b22: 7202 moveq #2,%d1 <== NOT EXECUTED 49b24: b282 cmpl %d2,%d1 <== NOT EXECUTED 49b26: 6700 008c beqw 49bb4 <== NOT EXECUTED 49b2a: 6426 bccs 49b52 <== NOT EXECUTED 49b2c: 7003 moveq #3,%d0 <== NOT EXECUTED 49b2e: b082 cmpl %d2,%d0 <== NOT EXECUTED 49b30: 673e beqs 49b70 <== NOT EXECUTED 49b32: 7204 moveq #4,%d1 <== NOT EXECUTED 49b34: b282 cmpl %d2,%d1 <== NOT EXECUTED 49b36: 66ba bnes 49af2 <== NOT EXECUTED case IMFS_NO_MORE_PATH: rtems_set_errno_and_return_minus_one( EEXIST ); break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 49b38: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 49b3e: 7c5b moveq #91,%d6 <== NOT EXECUTED 49b40: 2040 moveal %d0,%a0 <== NOT EXECUTED 49b42: 74ff moveq #-1,%d2 <== NOT EXECUTED 49b44: 2086 movel %d6,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49b46: 2002 movel %d2,%d0 <== NOT EXECUTED 49b48: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 49b4e: 4e5e unlk %fp <== NOT EXECUTED 49b50: 4e75 rts <== 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 ) { 49b52: 4a82 tstl %d2 <== NOT EXECUTED 49b54: 669c bnes 49af2 <== NOT EXECUTED pathloc->node_access = node; break; case IMFS_NO_MORE_PATH: rtems_set_errno_and_return_minus_one( EEXIST ); 49b56: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 49b5c: 7e11 moveq #17,%d7 <== NOT EXECUTED 49b5e: 2040 moveal %d0,%a0 <== NOT EXECUTED 49b60: 74ff moveq #-1,%d2 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49b62: 2002 movel %d2,%d0 <== NOT EXECUTED pathloc->node_access = node; break; case IMFS_NO_MORE_PATH: rtems_set_errno_and_return_minus_one( EEXIST ); 49b64: 2087 movel %d7,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49b66: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 49b6c: 4e5e unlk %fp <== NOT EXECUTED 49b6e: 4e75 rts <== NOT EXECUTED pathloc->node_access = node; break; case IMFS_NAME: if ( node->type == IMFS_HARD_LINK ) { 49b70: 2029 0048 movel %a1@(72),%d0 <== NOT EXECUTED 49b74: 7203 moveq #3,%d1 <== NOT EXECUTED 49b76: b280 cmpl %d0,%d1 <== NOT EXECUTED 49b78: 6700 0100 beqw 49c7a <== NOT EXECUTED result = IMFS_evaluate_link( pathloc, 0 ); if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { 49b7c: 7204 moveq #4,%d1 <== NOT EXECUTED 49b7e: b280 cmpl %d0,%d1 <== NOT EXECUTED 49b80: 6700 00f8 beqw 49c7a <== NOT EXECUTED if ( result == -1 ) return -1; } node = pathloc->node_access; if ( !node ) 49b84: 4a8a tstl %a2 <== NOT EXECUTED 49b86: 6700 010e beqw 49c96 <== NOT EXECUTED /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 49b8a: 7201 moveq #1,%d1 <== NOT EXECUTED 49b8c: b2aa 0048 cmpl %a2@(72),%d1 <== NOT EXECUTED 49b90: 6600 0104 bnew 49c96 <== 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 ) { 49b94: 206a 0058 moveal %a2@(88),%a0 <== NOT EXECUTED 49b98: 4a88 tstl %a0 <== NOT EXECUTED 49b9a: 6600 0114 bnew 49cb0 <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 49b9e: 2f05 movel %d5,%sp@- <== NOT EXECUTED 49ba0: 2047 moveal %d7,%a0 <== NOT EXECUTED 49ba2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49ba4: 4e90 jsr %a0@ <== NOT EXECUTED /* * If there is no node we have found the name of the node we * wish to create. */ if ( ! node ) 49ba6: 508f addql #8,%sp <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 49ba8: 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 ) 49baa: 4a80 tstl %d0 <== NOT EXECUTED 49bac: 675c beqs 49c0a <== NOT EXECUTED done = true; else pathloc->node_access = node; 49bae: 268a movel %a2,%a3@ <== NOT EXECUTED 49bb0: 6000 ff40 braw 49af2 <== 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 ) 49bb4: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED 49bba: b3e8 0014 cmpal %a0@(20),%a1 <== NOT EXECUTED 49bbe: 6700 ff32 beqw 49af2 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access){ 49bc2: 206b 000c moveal %a3@(12),%a0 <== NOT EXECUTED 49bc6: b3e8 0018 cmpal %a0@(24),%a1 <== NOT EXECUTED 49bca: 6700 0142 beqw 49d0e <== NOT EXECUTED *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); } } else { if ( !node->Parent ) 49bce: 2469 0008 moveal %a1@(8),%a2 <== NOT EXECUTED 49bd2: 4a8a tstl %a2 <== NOT EXECUTED 49bd4: 66d8 bnes 49bae <== NOT EXECUTED * Verify there is not any invalid stuff at the end of the name. */ for( ; path[i] != '\0'; i++) { if ( !IMFS_is_separator( path[ i ] ) ) rtems_set_errno_and_return_minus_one( ENOENT ); 49bd6: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 49bdc: 7a02 moveq #2,%d5 <== NOT EXECUTED 49bde: 2040 moveal %d0,%a0 <== NOT EXECUTED 49be0: 74ff moveq #-1,%d2 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49be2: 2002 movel %d2,%d0 <== NOT EXECUTED * Verify there is not any invalid stuff at the end of the name. */ for( ; path[i] != '\0'; i++) { if ( !IMFS_is_separator( path[ i ] ) ) rtems_set_errno_and_return_minus_one( ENOENT ); 49be4: 2085 movel %d5,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49be6: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 49bec: 4e5e unlk %fp <== NOT EXECUTED 49bee: 4e75 rts <== NOT EXECUTED * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) if ( node->type == IMFS_DIRECTORY ) if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) 49bf0: 4878 0001 pea 1 <== NOT EXECUTED 49bf4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49bf6: 4eb9 0004 95b2 jsr 495b2 <== NOT EXECUTED 49bfc: 508f addql #8,%sp <== NOT EXECUTED 49bfe: 4a80 tstl %d0 <== NOT EXECUTED 49c00: 6700 00f2 beqw 49cf4 <== NOT EXECUTED 49c04: 2253 moveal %a3@,%a1 <== NOT EXECUTED 49c06: 6000 ff16 braw 49b1e <== NOT EXECUTED case IMFS_CURRENT_DIR: break; } } *name = &path[ i - len ]; 49c0a: 2004 movel %d4,%d0 <== NOT EXECUTED 49c0c: 90ae fffc subl %fp@(-4),%d0 <== NOT EXECUTED 49c10: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 49c14: d08c addl %a4,%d0 <== NOT EXECUTED 49c16: 2080 movel %d0,%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++) { 49c18: 1034 4800 moveb %a4@(00000000,%d4:l),%d0 <== NOT EXECUTED 49c1c: 6718 beqs 49c36 <== NOT EXECUTED 49c1e: 41f4 4801 lea %a4@(00000001,%d4:l),%a0 <== NOT EXECUTED if ( !IMFS_is_separator( path[ i ] ) ) 49c22: 49c0 extbl %d0 <== NOT EXECUTED 49c24: 722f moveq #47,%d1 <== NOT EXECUTED 49c26: b280 cmpl %d0,%d1 <== NOT EXECUTED 49c28: 6708 beqs 49c32 <== NOT EXECUTED 49c2a: 123c 005c moveb #92,%d1 <== NOT EXECUTED 49c2e: b280 cmpl %d0,%d1 <== NOT EXECUTED 49c30: 66a4 bnes 49bd6 <== 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++) { 49c32: 1018 moveb %a0@+,%d0 <== NOT EXECUTED 49c34: 66ec bnes 49c22 <== NOT EXECUTED /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 49c36: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49c38: 4eb9 0004 9538 jsr 49538 <== NOT EXECUTED /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) 49c3e: 2053 moveal %a3@,%a0 <== NOT EXECUTED /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 49c40: 2400 movel %d0,%d2 <== NOT EXECUTED /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) 49c42: 588f addql #4,%sp <== NOT EXECUTED 49c44: 7001 moveq #1,%d0 <== NOT EXECUTED 49c46: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 49c4a: 664a bnes 49c96 <== NOT EXECUTED /* * We must have Write and execute permission on the returned node. */ if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) 49c4c: 4878 0003 pea 3 <== NOT EXECUTED 49c50: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49c52: 4eb9 0004 95b2 jsr 495b2 <== NOT EXECUTED 49c58: 508f addql #8,%sp <== NOT EXECUTED 49c5a: 4a80 tstl %d0 <== NOT EXECUTED 49c5c: 6600 fee8 bnew 49b46 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 49c60: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 49c66: 74ff moveq #-1,%d2 <== NOT EXECUTED 49c68: 2040 moveal %d0,%a0 <== NOT EXECUTED 49c6a: 760d moveq #13,%d3 <== NOT EXECUTED return result; } 49c6c: 2002 movel %d2,%d0 <== NOT EXECUTED /* * We must have Write and execute permission on the returned node. */ if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); 49c6e: 2083 movel %d3,%a0@ <== NOT EXECUTED return result; } 49c70: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 49c76: 4e5e unlk %fp <== NOT EXECUTED 49c78: 4e75 rts <== NOT EXECUTED if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_link( pathloc, 0 ); 49c7a: 42a7 clrl %sp@- <== NOT EXECUTED 49c7c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49c7e: 4eb9 0004 9a0a jsr 49a0a <== NOT EXECUTED 49c84: 2400 movel %d0,%d2 <== NOT EXECUTED if ( result == -1 ) 49c86: 508f addql #8,%sp <== NOT EXECUTED 49c88: 70ff moveq #-1,%d0 <== NOT EXECUTED 49c8a: b082 cmpl %d2,%d0 <== NOT EXECUTED 49c8c: 6700 feb8 beqw 49b46 <== NOT EXECUTED 49c90: 2453 moveal %a3@,%a2 <== NOT EXECUTED 49c92: 6000 fef0 braw 49b84 <== NOT EXECUTED /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 49c96: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 49c9c: 7814 moveq #20,%d4 <== NOT EXECUTED 49c9e: 2040 moveal %d0,%a0 <== NOT EXECUTED 49ca0: 74ff moveq #-1,%d2 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49ca2: 2002 movel %d2,%d0 <== NOT EXECUTED /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 49ca4: 2084 movel %d4,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49ca6: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 49cac: 4e5e unlk %fp <== NOT EXECUTED 49cae: 4e75 rts <== NOT EXECUTED * If we are at a node that is a mount point. Set loc to the * new fs root node and let them finish evaluating the path. */ if ( node->info.directory.mt_fs != NULL ) { newloc = node->info.directory.mt_fs->mt_fs_root; 49cb0: 2268 0020 moveal %a0@(32),%a1 <== NOT EXECUTED 49cb4: 2028 001c movel %a0@(28),%d0 <== NOT EXECUTED 49cb8: 2228 0018 movel %a0@(24),%d1 <== NOT EXECUTED *pathloc = newloc; 49cbc: 2768 0024 000c movel %a0@(36),%a3@(12) <== NOT EXECUTED return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 49cc2: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 49cc6: 98ae fffc subl %fp@(-4),%d4 <== NOT EXECUTED 49cca: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49ccc: 4874 4800 pea %a4@(00000000,%d4:l) <== NOT EXECUTED 49cd0: 2069 0004 moveal %a1@(4),%a0 <== NOT EXECUTED * new fs root node and let them finish evaluating the path. */ if ( node->info.directory.mt_fs != NULL ) { newloc = node->info.directory.mt_fs->mt_fs_root; *pathloc = newloc; 49cd4: 2740 0004 movel %d0,%a3@(4) <== NOT EXECUTED 49cd8: 2681 movel %d1,%a3@ <== NOT EXECUTED 49cda: 2749 0008 movel %a1,%a3@(8) <== NOT EXECUTED return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 49cde: 4e90 jsr %a0@ <== NOT EXECUTED 49ce0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49ce6: 2400 movel %d0,%d2 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49ce8: 2002 movel %d2,%d0 <== NOT EXECUTED 49cea: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 49cf0: 4e5e unlk %fp <== NOT EXECUTED 49cf2: 4e75 rts <== NOT EXECUTED */ if ( type != IMFS_NO_MORE_PATH ) if ( node->type == IMFS_DIRECTORY ) if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) rtems_set_errno_and_return_minus_one( EACCES ); 49cf4: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 49cfa: 2040 moveal %d0,%a0 <== NOT EXECUTED 49cfc: 700d moveq #13,%d0 <== NOT EXECUTED 49cfe: 74ff moveq #-1,%d2 <== NOT EXECUTED 49d00: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49d02: 2002 movel %d2,%d0 <== NOT EXECUTED 49d04: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 49d0a: 4e5e unlk %fp <== NOT EXECUTED 49d0c: 4e75 rts <== NOT EXECUTED if ( pathloc->node_access == rtems_filesystem_root.node_access ) { break; } else { newloc = pathloc->mt_entry->mt_point_node; 49d0e: 2268 0010 moveal %a0@(16),%a1 <== NOT EXECUTED 49d12: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED 49d16: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED *pathloc = newloc; 49d1a: 2768 0014 000c movel %a0@(20),%a3@(12) <== NOT EXECUTED */ if ( node->info.directory.mt_fs != NULL ) { newloc = node->info.directory.mt_fs->mt_fs_root; *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 49d20: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 49d24: 98ae fffc subl %fp@(-4),%d4 <== NOT EXECUTED 49d28: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49d2a: 4874 4800 pea %a4@(00000000,%d4:l) <== NOT EXECUTED 49d2e: 2069 0004 moveal %a1@(4),%a0 <== NOT EXECUTED * new fs root node and let them finish evaluating the path. */ if ( node->info.directory.mt_fs != NULL ) { newloc = node->info.directory.mt_fs->mt_fs_root; *pathloc = newloc; 49d32: 2740 0004 movel %d0,%a3@(4) <== NOT EXECUTED 49d36: 2681 movel %d1,%a3@ <== NOT EXECUTED 49d38: 2749 0008 movel %a1,%a3@(8) <== NOT EXECUTED return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 49d3c: 4e90 jsr %a0@ <== NOT EXECUTED 49d3e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49d44: 2400 movel %d0,%d2 <== NOT EXECUTED 49d46: 60a0 bras 49ce8 <== NOT EXECUTED 0004964e : int IMFS_evaluate_hard_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 4964e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49652: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49654: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_jnode_t *jnode = node->node_access; 49658: 2052 moveal %a2@,%a0 <== NOT EXECUTED /* * Check for things that should never happen. */ if ( jnode->type != IMFS_HARD_LINK ) 4965a: 7003 moveq #3,%d0 <== NOT EXECUTED 4965c: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 49660: 6642 bnes 496a4 <== NOT EXECUTED /* * Set the hard link value and the handlers. */ node->node_access = jnode->info.hard_link.link_node; 49662: 24a8 004c movel %a0@(76),%a2@ <== NOT EXECUTED IMFS_Set_handlers( node ); 49666: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49668: 4eb9 0004 9538 jsr 49538 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 4966e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 49672: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49674: 4eb9 0004 95b2 jsr 495b2 <== NOT EXECUTED 4967a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49680: 4a80 tstl %d0 <== NOT EXECUTED 49682: 670a beqs 4968e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49684: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 49688: 4e5e unlk %fp <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 4968a: 4280 clrl %d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4968c: 4e75 rts <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); 4968e: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED return result; } 49694: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); 49698: 2040 moveal %d0,%a0 <== NOT EXECUTED 4969a: 720d moveq #13,%d1 <== NOT EXECUTED return result; } 4969c: 4e5e unlk %fp <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); 4969e: 70ff moveq #-1,%d0 <== NOT EXECUTED 496a0: 2081 movel %d1,%a0@ <== NOT EXECUTED return result; } 496a2: 4e75 rts <== NOT EXECUTED /* * Check for things that should never happen. */ if ( jnode->type != IMFS_HARD_LINK ) rtems_fatal_error_occurred (0xABCD0000); 496a4: 2f3c abcd 0000 movel #-1412628480,%sp@- <== NOT EXECUTED 496aa: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED 00049a0a : int IMFS_evaluate_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 49a0a: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 49a0e: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 49a12: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 49a16: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 49a1a: 2079 0005 8564 moveal 58564 ,%a0 <== 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 ); 49a20: 4bf9 0004 96b0 lea 496b0 ,%a5 <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) result = IMFS_evaluate_hard_link( node, flags ); 49a26: 49f9 0004 964e lea 4964e ,%a4 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 49a2c: 3028 0028 movew %a0@(40),%d0 <== NOT EXECUTED 49a30: 5280 addql #1,%d0 <== NOT EXECUTED { IMFS_jnode_t *jnode; int result = 0; do { jnode = node->node_access; 49a32: 2453 moveal %a3@,%a2 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 49a34: 3140 0028 movew %d0,%a0@(40) <== NOT EXECUTED if ( rtems_filesystem_link_counts > MAXSYMLINK ) { 49a38: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 49a3e: 7205 moveq #5,%d1 <== NOT EXECUTED 49a40: b280 cmpl %d0,%d1 <== NOT EXECUTED 49a42: 6564 bcss 49aa8 <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) 49a44: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 49a48: 7203 moveq #3,%d1 <== NOT EXECUTED 49a4a: b280 cmpl %d0,%d1 <== NOT EXECUTED 49a4c: 6740 beqs 49a8e <== NOT EXECUTED result = IMFS_evaluate_hard_link( node, flags ); else if (jnode->type == IMFS_SYM_LINK ) 49a4e: 7204 moveq #4,%d1 <== NOT EXECUTED 49a50: b280 cmpl %d0,%d1 <== NOT EXECUTED 49a52: 671a beqs 49a6e <== NOT EXECUTED result = IMFS_evaluate_sym_link( node, flags ); } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || ( jnode->type == IMFS_HARD_LINK ) ) ); 49a54: 5780 subql #3,%d0 <== NOT EXECUTED 49a56: 7201 moveq #1,%d1 <== NOT EXECUTED 49a58: b280 cmpl %d0,%d1 <== NOT EXECUTED 49a5a: 64d0 bccs 49a2c <== NOT EXECUTED /* * Clear link counter. */ rtems_filesystem_link_counts = 0; 49a5c: 4241 clrw %d1 <== NOT EXECUTED else if (jnode->type == IMFS_SYM_LINK ) result = IMFS_evaluate_sym_link( node, flags ); } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || ( jnode->type == IMFS_HARD_LINK ) ) ); 49a5e: 4280 clrl %d0 <== NOT EXECUTED /* * Clear link counter. */ rtems_filesystem_link_counts = 0; 49a60: 3141 0028 movew %d1,%a0@(40) <== NOT EXECUTED return result; } 49a64: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 49a6a: 4e5e unlk %fp <== NOT EXECUTED 49a6c: 4e75 rts <== NOT EXECUTED if ( jnode->type == IMFS_HARD_LINK ) result = IMFS_evaluate_hard_link( node, flags ); else if (jnode->type == IMFS_SYM_LINK ) result = IMFS_evaluate_sym_link( node, flags ); 49a6e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49a70: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49a72: 4e95 jsr %a5@ <== NOT EXECUTED 49a74: 508f addql #8,%sp <== NOT EXECUTED } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || ( jnode->type == IMFS_HARD_LINK ) ) ); 49a76: 4a80 tstl %d0 <== NOT EXECUTED 49a78: 6620 bnes 49a9a <== NOT EXECUTED 49a7a: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 49a7e: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED 49a84: 5780 subql #3,%d0 <== NOT EXECUTED 49a86: 7201 moveq #1,%d1 <== NOT EXECUTED 49a88: b280 cmpl %d0,%d1 <== NOT EXECUTED 49a8a: 64a0 bccs 49a2c <== NOT EXECUTED 49a8c: 60ce bras 49a5c <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) result = IMFS_evaluate_hard_link( node, flags ); 49a8e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49a90: 2f0b movel %a3,%sp@- <== NOT EXECUTED 49a92: 4e94 jsr %a4@ <== NOT EXECUTED 49a94: 508f addql #8,%sp <== NOT EXECUTED else if (jnode->type == IMFS_SYM_LINK ) result = IMFS_evaluate_sym_link( node, flags ); } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || ( jnode->type == IMFS_HARD_LINK ) ) ); 49a96: 4a80 tstl %d0 <== NOT EXECUTED 49a98: 67e0 beqs 49a7a <== NOT EXECUTED 49a9a: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED /* * Clear link counter. */ rtems_filesystem_link_counts = 0; 49aa0: 4241 clrw %d1 <== NOT EXECUTED 49aa2: 3141 0028 movew %d1,%a0@(40) <== NOT EXECUTED 49aa6: 60bc bras 49a64 <== NOT EXECUTED * Increment and check the link counter. */ rtems_filesystem_link_counts ++; if ( rtems_filesystem_link_counts > MAXSYMLINK ) { rtems_filesystem_link_counts = 0; 49aa8: 4240 clrw %d0 <== NOT EXECUTED 49aaa: 3140 0028 movew %d0,%a0@(40) <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ELOOP ); 49aae: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED */ rtems_filesystem_link_counts = 0; return result; } 49ab4: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED */ rtems_filesystem_link_counts ++; if ( rtems_filesystem_link_counts > MAXSYMLINK ) { rtems_filesystem_link_counts = 0; rtems_set_errno_and_return_minus_one( ELOOP ); 49aba: 2040 moveal %d0,%a0 <== NOT EXECUTED 49abc: 725c moveq #92,%d1 <== NOT EXECUTED */ rtems_filesystem_link_counts = 0; return result; } 49abe: 4e5e unlk %fp <== NOT EXECUTED */ rtems_filesystem_link_counts ++; if ( rtems_filesystem_link_counts > MAXSYMLINK ) { rtems_filesystem_link_counts = 0; rtems_set_errno_and_return_minus_one( ELOOP ); 49ac0: 70ff moveq #-1,%d0 <== NOT EXECUTED 49ac2: 2081 movel %d1,%a0@ <== NOT EXECUTED */ rtems_filesystem_link_counts = 0; return result; } 49ac4: 4e75 rts 000495b2 : int IMFS_evaluate_permission( rtems_filesystem_location_info_t *node, int flags ) { 495b2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 495b6: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 495ba: 2f0a movel %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; 495bc: 2450 moveal %a0@,%a2 <== NOT EXECUTED int IMFS_evaluate_permission( rtems_filesystem_location_info_t *node, int flags ) { 495be: 2f02 movel %d2,%sp@- <== NOT EXECUTED } jnode = node->node_access; #if defined(RTEMS_POSIX_API) st_uid = geteuid(); 495c0: 4eb9 0004 a79c jsr 4a79c <== NOT EXECUTED 495c6: 3400 movew %d0,%d2 <== NOT EXECUTED st_gid = getegid(); 495c8: 4eb9 0004 a788 jsr 4a788 <== NOT EXECUTED 495ce: 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 ) 495d0: 4280 clrl %d0 <== NOT EXECUTED 495d2: 0282 0000 ffff andil #65535,%d2 <== NOT EXECUTED 495d8: 302a 0038 movew %a2@(56),%d0 <== NOT EXECUTED 495dc: b082 cmpl %d2,%d0 <== NOT EXECUTED 495de: 674e beqs 4962e <== NOT EXECUTED flags_to_test <<= 6; else if ( st_gid == jnode->st_gid ) 495e0: 4280 clrl %d0 <== NOT EXECUTED 495e2: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 495e8: 302a 003a movew %a2@(58),%d0 <== NOT EXECUTED 495ec: b081 cmpl %d1,%d0 <== NOT EXECUTED 495ee: 671e beqs 4960e <== NOT EXECUTED 495f0: 222e 000c movel %fp@(12),%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 ) 495f4: 2001 movel %d1,%d0 <== NOT EXECUTED 495f6: c0aa 002e andl %a2@(46),%d0 <== NOT EXECUTED return 1; return 0; } 495fa: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 495fe: 246e fffc moveal %fp@(-4),%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 ) 49602: b081 cmpl %d1,%d0 <== NOT EXECUTED 49604: 57c0 seq %d0 <== NOT EXECUTED 49606: 49c0 extbl %d0 <== NOT EXECUTED return 1; return 0; } 49608: 4e5e unlk %fp <== NOT EXECUTED 4960a: 4480 negl %d0 <== NOT EXECUTED 4960c: 4e75 rts <== NOT EXECUTED flags_to_test = flags; if ( st_uid == jnode->st_uid ) flags_to_test <<= 6; else if ( st_gid == jnode->st_gid ) flags_to_test <<= 3; 4960e: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 49612: 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 ) 49614: 2001 movel %d1,%d0 <== NOT EXECUTED 49616: c0aa 002e andl %a2@(46),%d0 <== NOT EXECUTED return 1; return 0; } 4961a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4961e: 246e fffc moveal %fp@(-4),%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 ) 49622: b081 cmpl %d1,%d0 <== NOT EXECUTED 49624: 57c0 seq %d0 <== NOT EXECUTED 49626: 49c0 extbl %d0 <== NOT EXECUTED return 1; return 0; } 49628: 4e5e unlk %fp <== NOT EXECUTED 4962a: 4480 negl %d0 <== NOT EXECUTED 4962c: 4e75 rts <== NOT EXECUTED */ flags_to_test = flags; if ( st_uid == jnode->st_uid ) flags_to_test <<= 6; 4962e: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 49632: ed89 lsll #6,%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 ) 49634: 2001 movel %d1,%d0 <== NOT EXECUTED 49636: c0aa 002e andl %a2@(46),%d0 <== NOT EXECUTED return 1; return 0; } 4963a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4963e: 246e fffc moveal %fp@(-4),%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 ) 49642: b081 cmpl %d1,%d0 <== NOT EXECUTED 49644: 57c0 seq %d0 <== NOT EXECUTED 49646: 49c0 extbl %d0 <== NOT EXECUTED return 1; return 0; } 49648: 4e5e unlk %fp <== NOT EXECUTED 4964a: 4480 negl %d0 <== NOT EXECUTED 4964c: 4e75 rts 000496b0 : int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 496b0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 496b4: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 496b8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_jnode_t *jnode = node->node_access; 496bc: 2052 moveal %a2@,%a0 <== NOT EXECUTED int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 496be: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * Check for things that should never happen. */ if ( jnode->type != IMFS_SYM_LINK ) 496c2: 7004 moveq #4,%d0 <== NOT EXECUTED 496c4: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 496c8: 6600 00c2 bnew 4978c <== NOT EXECUTED rtems_fatal_error_occurred (0xABCD0000); if ( !jnode->Parent ) 496cc: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED 496d0: 6700 00c6 beqw 49798 <== 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; 496d4: 2480 movel %d0,%a2@ <== NOT EXECUTED rtems_filesystem_get_sym_start_loc( 496d6: 2668 004c moveal %a0@(76),%a3 <== NOT EXECUTED 496da: 1213 moveb %a3@,%d1 <== NOT EXECUTED 496dc: 1001 moveb %d1,%d0 <== NOT EXECUTED 496de: 49c0 extbl %d0 <== NOT EXECUTED 496e0: 742f moveq #47,%d2 <== NOT EXECUTED 496e2: b480 cmpl %d0,%d2 <== NOT EXECUTED 496e4: 6746 beqs 4972c <== NOT EXECUTED 496e6: 143c 005c moveb #92,%d2 <== NOT EXECUTED 496ea: b480 cmpl %d0,%d2 <== NOT EXECUTED 496ec: 673e beqs 4972c <== NOT EXECUTED 496ee: 4a01 tstb %d1 <== NOT EXECUTED 496f0: 673a beqs 4972c <== NOT EXECUTED /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 496f2: 2f0a movel %a2,%sp@- <== NOT EXECUTED * root depending on the symbolic links path. */ node->node_access = jnode->Parent; rtems_filesystem_get_sym_start_loc( 496f4: 4280 clrl %d0 <== NOT EXECUTED /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 496f6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 496f8: 4873 0800 pea %a3@(00000000,%d0:l) <== NOT EXECUTED 496fc: 4eb9 0004 97a4 jsr 497a4 <== NOT EXECUTED &jnode->info.sym_link.name[i], flags, node ); IMFS_Set_handlers( node ); 49702: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 49704: 2400 movel %d0,%d2 <== NOT EXECUTED &jnode->info.sym_link.name[i], flags, node ); IMFS_Set_handlers( node ); 49706: 4eb9 0004 9538 jsr 49538 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 4970c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4970e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49710: 4eb9 0004 95b2 jsr 495b2 <== NOT EXECUTED 49716: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 4971c: 4a80 tstl %d0 <== NOT EXECUTED 4971e: 6752 beqs 49772 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); return result; } 49720: 2002 movel %d2,%d0 <== NOT EXECUTED 49722: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 49728: 4e5e unlk %fp <== NOT EXECUTED 4972a: 4e75 rts <== NOT EXECUTED * root depending on the symbolic links path. */ node->node_access = jnode->Parent; rtems_filesystem_get_sym_start_loc( 4972c: 2279 0005 8564 moveal 58564 ,%a1 <== NOT EXECUTED 49732: 204a moveal %a2,%a0 <== NOT EXECUTED 49734: 20e9 0014 movel %a1@(20),%a0@+ <== NOT EXECUTED 49738: 7001 moveq #1,%d0 <== NOT EXECUTED 4973a: 20e9 0018 movel %a1@(24),%a0@+ <== NOT EXECUTED 4973e: 20e9 001c movel %a1@(28),%a0@+ <== NOT EXECUTED 49742: 20a9 0020 movel %a1@(32),%a0@ <== NOT EXECUTED /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 49746: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49748: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4974a: 4873 0800 pea %a3@(00000000,%d0:l) <== NOT EXECUTED 4974e: 4eb9 0004 97a4 jsr 497a4 <== NOT EXECUTED &jnode->info.sym_link.name[i], flags, node ); IMFS_Set_handlers( node ); 49754: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 49756: 2400 movel %d0,%d2 <== NOT EXECUTED &jnode->info.sym_link.name[i], flags, node ); IMFS_Set_handlers( node ); 49758: 4eb9 0004 9538 jsr 49538 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 4975e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 49760: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49762: 4eb9 0004 95b2 jsr 495b2 <== NOT EXECUTED 49768: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 4976e: 4a80 tstl %d0 <== NOT EXECUTED 49770: 66ae bnes 49720 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 49772: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 49778: 74ff moveq #-1,%d2 <== NOT EXECUTED 4977a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4977c: 760d moveq #13,%d3 <== NOT EXECUTED return result; } 4977e: 2002 movel %d2,%d0 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); 49780: 2083 movel %d3,%a0@ <== NOT EXECUTED return result; } 49782: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 49788: 4e5e unlk %fp <== NOT EXECUTED 4978a: 4e75 rts <== NOT EXECUTED /* * Check for things that should never happen. */ if ( jnode->type != IMFS_SYM_LINK ) rtems_fatal_error_occurred (0xABCD0000); 4978c: 2f3c abcd 0000 movel #-1412628480,%sp@- <== NOT EXECUTED 49792: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED if ( !jnode->Parent ) rtems_fatal_error_occurred( 0xBAD00000 ); 49798: 2f3c bad0 0000 movel #-1160773632,%sp@- <== NOT EXECUTED 4979e: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED 0004c924 : int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4c924: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4c928: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4c92c: 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; 4c930: 2450 moveal %a0@,%a2 <== NOT EXECUTED int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4c932: 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(); 4c936: 4eb9 0004 a79c jsr 4a79c <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 4c93c: 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(); 4c93e: 3400 movew %d0,%d2 <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 4c940: 3200 movew %d0,%d1 <== NOT EXECUTED 4c942: 4280 clrl %d0 <== NOT EXECUTED 4c944: 302a 0038 movew %a2@(56),%d0 <== NOT EXECUTED 4c948: b081 cmpl %d1,%d0 <== NOT EXECUTED 4c94a: 6704 beqs 4c950 <== NOT EXECUTED 4c94c: 4a42 tstw %d2 <== NOT EXECUTED 4c94e: 663a bnes 4c98a <== NOT EXECUTED #endif /* * Change only the RWX permissions on the jnode to mode. */ if ( mode & (~ (S_IRWXU | S_IRWXG | S_IRWXO ) ) ) 4c950: 2003 movel %d3,%d0 <== NOT EXECUTED 4c952: 0280 ffff fe00 andil #-512,%d0 <== NOT EXECUTED 4c958: 6630 bnes 4c98a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EPERM ); jnode->st_mode &= ~(S_IRWXU | S_IRWXG | S_IRWXO); jnode->st_mode |= mode; 4c95a: 202a 002e movel %a2@(46),%d0 <== NOT EXECUTED 4c95e: 0280 ffff fe00 andil #-512,%d0 <== NOT EXECUTED 4c964: 8680 orl %d0,%d3 <== NOT EXECUTED 4c966: 2543 002e movel %d3,%a2@(46) <== NOT EXECUTED IMFS_update_ctime( jnode ); 4c96a: 42a7 clrl %sp@- <== NOT EXECUTED 4c96c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4c970: 4eb9 0004 a7b0 jsr 4a7b0 <== NOT EXECUTED 4c976: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED 4c97c: 508f addql #8,%sp <== NOT EXECUTED return 0; } 4c97e: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 4c984: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EPERM ); jnode->st_mode &= ~(S_IRWXU | S_IRWXG | S_IRWXO); jnode->st_mode |= mode; IMFS_update_ctime( jnode ); 4c986: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4c988: 4e75 rts <== NOT EXECUTED /* * Change only the RWX permissions on the jnode to mode. */ if ( mode & (~ (S_IRWXU | S_IRWXG | S_IRWXO ) ) ) rtems_set_errno_and_return_minus_one( EPERM ); 4c98a: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4c990: 2040 moveal %d0,%a0 <== NOT EXECUTED 4c992: 7001 moveq #1,%d0 <== NOT EXECUTED jnode->st_mode |= mode; IMFS_update_ctime( jnode ); return 0; } 4c994: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED /* * Change only the RWX permissions on the jnode to mode. */ if ( mode & (~ (S_IRWXU | S_IRWXG | S_IRWXO ) ) ) rtems_set_errno_and_return_minus_one( EPERM ); 4c99a: 2080 movel %d0,%a0@ <== NOT EXECUTED jnode->st_mode |= mode; IMFS_update_ctime( jnode ); return 0; } 4c99c: 4e5e unlk %fp <== NOT EXECUTED /* * Change only the RWX permissions on the jnode to mode. */ if ( mode & (~ (S_IRWXU | S_IRWXG | S_IRWXO ) ) ) rtems_set_errno_and_return_minus_one( EPERM ); 4c99e: 70ff moveq #-1,%d0 <== NOT EXECUTED jnode->st_mode |= mode; IMFS_update_ctime( jnode ); return 0; } 4c9a0: 4e75 rts <== NOT EXECUTED ... 0006d9f4 : int IMFS_fcntl( int cmd, rtems_libio_t *iop ) { 6d9f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 6d9f8: 4e5e unlk %fp <== NOT EXECUTED 6d9fa: 4280 clrl %d0 <== NOT EXECUTED 6d9fc: 4e75 rts <== NOT EXECUTED ... 0006da00 : #include "imfs.h" int IMFS_fdatasync( rtems_libio_t *iop ) { 6da00: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 6da04: 4e5e unlk %fp <== NOT EXECUTED 6da06: 4280 clrl %d0 <== NOT EXECUTED 6da08: 4e75 rts <== NOT EXECUTED ... 00049d48 : IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 49d48: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 49d4c: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 49d50: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 49d54: 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 ); 49d58: 4a8a tstl %a2 <== NOT EXECUTED 49d5a: 6776 beqs 49dd2 <== NOT EXECUTED if ( !name ) 49d5c: 4a82 tstl %d2 <== NOT EXECUTED 49d5e: 6764 beqs 49dc4 <== NOT EXECUTED /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 49d60: 4879 0005 70f3 pea 570f3 <== NOT EXECUTED 49d66: 47f9 0004 e818 lea 4e818 ,%a3 <== NOT EXECUTED 49d6c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49d6e: 4e93 jsr %a3@ <== NOT EXECUTED 49d70: 508f addql #8,%sp <== NOT EXECUTED 49d72: 4a80 tstl %d0 <== NOT EXECUTED 49d74: 660c bnes 49d82 <== NOT EXECUTED if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; } 49d76: 200a movel %a2,%d0 <== NOT EXECUTED 49d78: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 49d7e: 4e5e unlk %fp <== NOT EXECUTED 49d80: 4e75 rts <== NOT EXECUTED */ if ( !strcmp( name, dotname ) ) return directory; if ( !strcmp( name, dotdotname ) ) 49d82: 4879 0005 70f5 pea 570f5 <== NOT EXECUTED 49d88: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49d8a: 4e93 jsr %a3@ <== NOT EXECUTED 49d8c: 508f addql #8,%sp <== NOT EXECUTED 49d8e: 4a80 tstl %d0 <== NOT EXECUTED 49d90: 6610 bnes 49da2 <== NOT EXECUTED return directory->Parent; 49d92: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; } 49d96: 200a movel %a2,%d0 <== NOT EXECUTED 49d98: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 49d9e: 4e5e unlk %fp <== NOT EXECUTED 49da0: 4e75 rts <== NOT EXECUTED if ( !strcmp( name, dotdotname ) ) return directory->Parent; the_chain = &directory->info.directory.Entries; for ( the_node = the_chain->first; 49da2: 286a 004c moveal %a2@(76),%a4 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 49da6: d5fc 0000 0050 addal #80,%a2 <== NOT EXECUTED !rtems_chain_is_tail( the_chain, the_node ); 49dac: b5cc cmpal %a4,%a2 <== NOT EXECUTED 49dae: 6714 beqs 49dc4 <== NOT EXECUTED the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; if ( !strcmp( name, the_jnode->name ) ) 49db0: 486c 000c pea %a4@(12) <== NOT EXECUTED 49db4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49db6: 4e93 jsr %a3@ <== NOT EXECUTED 49db8: 508f addql #8,%sp <== NOT EXECUTED 49dba: 4a80 tstl %d0 <== NOT EXECUTED 49dbc: 6730 beqs 49dee <== 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 ) { 49dbe: 2854 moveal %a4@,%a4 <== 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 ); 49dc0: b5cc cmpal %a4,%a2 <== NOT EXECUTED 49dc2: 66ec bnes 49db0 <== NOT EXECUTED 49dc4: 95ca subal %a2,%a2 <== NOT EXECUTED if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; } 49dc6: 200a movel %a2,%d0 <== NOT EXECUTED 49dc8: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 49dce: 4e5e unlk %fp <== NOT EXECUTED 49dd0: 4e75 rts <== NOT EXECUTED /* * Check for fatal errors. A NULL directory show a problem in the * the IMFS code. */ assert( directory ); 49dd2: 4879 0005 78f3 pea 578f3 <== NOT EXECUTED 49dd8: 4879 0005 70f8 pea 570f8 <__func__.5126> <== NOT EXECUTED 49dde: 4878 002a pea 2a <== NOT EXECUTED 49de2: 4879 0005 70a4 pea 570a4 <== NOT EXECUTED 49de8: 4eb9 0004 a2c0 jsr 4a2c0 <__assert_func> <== 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 ) ) 49dee: 244c moveal %a4,%a2 <== NOT EXECUTED return the_jnode; } return 0; } 49df0: 200a movel %a2,%d0 <== NOT EXECUTED 49df2: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 49df8: 4e5e unlk %fp <== NOT EXECUTED 49dfa: 4e75 rts 0005f770 : */ int IMFS_freenodinfo( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 5f770: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 5f774: 4e5e unlk %fp <== NOT EXECUTED 5f776: 4280 clrl %d0 <== NOT EXECUTED 5f778: 4e75 rts <== NOT EXECUTED ... 0005f77c : ((IMFS_jnode_t *)( rtems_chain_head( jnode_get_control( jnode ) )->next)) int IMFS_fsunmount( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 5f77c: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 5f780: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 5f784: 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; 5f788: 47ee fff0 lea %fp@(-16),%a3 <== NOT EXECUTED 5f78c: 26a8 0018 movel %a0@(24),%a3@ <== NOT EXECUTED /* * Traverse tree that starts at the mt_fs_root and deallocate memory * associated memory space */ jnode = (IMFS_jnode_t *)temp_mt_entry->mt_fs_root.node_access; 5f790: 2468 0018 moveal %a0@(24),%a2 <== NOT EXECUTED /* * Set this to null to indicate that it is being unmounted. */ temp_mt_entry->mt_fs_root.node_access = NULL; 5f794: 42a8 0018 clrl %a0@(24) <== NOT EXECUTED 5f798: 49f9 0005 ef60 lea 5ef60 ,%a4 <== NOT EXECUTED * Traverse tree that starts at the mt_fs_root and deallocate memory * associated memory space */ jnode = (IMFS_jnode_t *)temp_mt_entry->mt_fs_root.node_access; loc = temp_mt_entry->mt_fs_root; 5f79e: 2d68 001c fff4 movel %a0@(28),%fp@(-12) <== NOT EXECUTED next = jnode->Parent; loc.node_access = (void *)jnode; IMFS_Set_handlers( &loc ); if ( jnode->type != IMFS_DIRECTORY ) { result = IMFS_unlink( &loc ); 5f7a4: 4bf9 0004 5990 lea 45990 ,%a5 <== NOT EXECUTED * Traverse tree that starts at the mt_fs_root and deallocate memory * associated memory space */ jnode = (IMFS_jnode_t *)temp_mt_entry->mt_fs_root.node_access; loc = temp_mt_entry->mt_fs_root; 5f7aa: 2d68 0020 fff8 movel %a0@(32),%fp@(-8) <== NOT EXECUTED 5f7b0: 2d68 0024 fffc movel %a0@(36),%fp@(-4) <== NOT EXECUTED */ temp_mt_entry->mt_fs_root.node_access = NULL; do { next = jnode->Parent; 5f7b6: 242a 0008 movel %a2@(8),%d2 <== NOT EXECUTED loc.node_access = (void *)jnode; 5f7ba: 2d4a fff0 movel %a2,%fp@(-16) <== NOT EXECUTED IMFS_Set_handlers( &loc ); 5f7be: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5f7c0: 4e94 jsr %a4@ <== 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 ) ) { 5f7c2: 200a movel %a2,%d0 <== NOT EXECUTED do { next = jnode->Parent; loc.node_access = (void *)jnode; IMFS_Set_handlers( &loc ); if ( jnode->type != IMFS_DIRECTORY ) { 5f7c4: 588f addql #4,%sp <== NOT EXECUTED result = IMFS_unlink( &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { 5f7c6: 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 ) { 5f7cc: 7201 moveq #1,%d1 <== NOT EXECUTED 5f7ce: b2aa 0048 cmpl %a2@(72),%d1 <== NOT EXECUTED 5f7d2: 6634 bnes 5f808 <== NOT EXECUTED result = IMFS_unlink( &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { 5f7d4: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 5f7d8: 672e beqs 5f808 <== NOT EXECUTED result = IMFS_unlink( &loc ); if (result != 0) return -1; jnode = next; } if ( jnode != NULL ) { 5f7da: 4a8a tstl %a2 <== NOT EXECUTED 5f7dc: 671e beqs 5f7fc <== NOT EXECUTED if ( jnode->type == IMFS_DIRECTORY ) { 5f7de: 7001 moveq #1,%d0 <== NOT EXECUTED 5f7e0: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 5f7e4: 66d0 bnes 5f7b6 <== NOT EXECUTED if ( jnode_has_children( jnode ) ) 5f7e6: 200a movel %a2,%d0 <== NOT EXECUTED 5f7e8: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED 5f7ee: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 5f7f2: 67c2 beqs 5f7b6 <== NOT EXECUTED jnode = jnode_get_first_child( jnode ); 5f7f4: 246a 004c moveal %a2@(76),%a2 <== NOT EXECUTED } } } while (jnode != NULL); 5f7f8: 4a8a tstl %a2 <== NOT EXECUTED 5f7fa: 66ba bnes 5f7b6 <== NOT EXECUTED return 0; } 5f7fc: 4cee 3c04 ffdc moveml %fp@(-36),%d2/%a2-%a5 <== NOT EXECUTED 5f802: 4e5e unlk %fp <== NOT EXECUTED if ( jnode->type == IMFS_DIRECTORY ) { if ( jnode_has_children( jnode ) ) jnode = jnode_get_first_child( jnode ); } } } while (jnode != NULL); 5f804: 4280 clrl %d0 <== NOT EXECUTED return 0; } 5f806: 4e75 rts <== NOT EXECUTED result = IMFS_unlink( &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { result = IMFS_unlink( &loc ); 5f808: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5f80a: 4e95 jsr %a5@ <== NOT EXECUTED if (result != 0) 5f80c: 588f addql #4,%sp <== NOT EXECUTED 5f80e: 4a80 tstl %d0 <== NOT EXECUTED 5f810: 6604 bnes 5f816 <== NOT EXECUTED 5f812: 2442 moveal %d2,%a2 <== NOT EXECUTED 5f814: 60c4 bras 5f7da <== NOT EXECUTED } } } while (jnode != NULL); return 0; } 5f816: 4cee 3c04 ffdc moveml %fp@(-36),%d2/%a2-%a5 <== NOT EXECUTED 5f81c: 4e5e unlk %fp <== NOT EXECUTED if ( jnode->type == IMFS_DIRECTORY ) { if ( jnode_has_children( jnode ) ) jnode = jnode_get_first_child( jnode ); } } } while (jnode != NULL); 5f81e: 70ff moveq #-1,%d0 <== NOT EXECUTED return 0; } 5f820: 4e75 rts <== NOT EXECUTED ... 00049dfc : IMFS_token_types IMFS_get_token( const char *path, char *token, int *token_len ) { 49dfc: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 49e00: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 49e04: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 49e08: 1010 moveb %a0@,%d0 <== NOT EXECUTED IMFS_token_types IMFS_get_token( const char *path, char *token, int *token_len ) { 49e0a: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; while ( (!IMFS_is_separator(c)) && (i <= IMFS_NAME_MAX) ) { 49e0e: 1200 moveb %d0,%d1 <== NOT EXECUTED 49e10: 49c1 extbl %d1 <== NOT EXECUTED 49e12: 742f moveq #47,%d2 <== NOT EXECUTED 49e14: b481 cmpl %d1,%d2 <== NOT EXECUTED 49e16: 6700 00bc beqw 49ed4 <== NOT EXECUTED 49e1a: 765c moveq #92,%d3 <== NOT EXECUTED 49e1c: b681 cmpl %d1,%d3 <== NOT EXECUTED 49e1e: 6700 00b4 beqw 49ed4 <== NOT EXECUTED 49e22: 4a00 tstb %d0 <== NOT EXECUTED 49e24: 6700 00d0 beqw 49ef6 <== NOT EXECUTED token[i] = c; 49e28: 1480 moveb %d0,%a2@ <== NOT EXECUTED 49e2a: 4280 clrl %d0 <== NOT EXECUTED return IMFS_INVALID_TOKEN; if ( !IMFS_is_valid_name_char(c) ) type = IMFS_INVALID_TOKEN; c = path [++i]; 49e2c: 5280 addql #1,%d0 <== NOT EXECUTED 49e2e: 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) ) { 49e32: 1202 moveb %d2,%d1 <== NOT EXECUTED 49e34: 49c1 extbl %d1 <== NOT EXECUTED 49e36: 762f moveq #47,%d3 <== NOT EXECUTED 49e38: b681 cmpl %d1,%d3 <== NOT EXECUTED 49e3a: 6728 beqs 49e64 <== NOT EXECUTED 49e3c: 163c 005c moveb #92,%d3 <== NOT EXECUTED 49e40: b681 cmpl %d1,%d3 <== NOT EXECUTED 49e42: 6720 beqs 49e64 <== NOT EXECUTED 49e44: 4a02 tstb %d2 <== NOT EXECUTED 49e46: 671c beqs 49e64 <== NOT EXECUTED 49e48: 7220 moveq #32,%d1 <== NOT EXECUTED 49e4a: b280 cmpl %d0,%d1 <== NOT EXECUTED 49e4c: 6d16 blts 49e64 <== NOT EXECUTED token[i] = c; 49e4e: 1582 0800 moveb %d2,%a2@(00000000,%d0:l) <== NOT EXECUTED if ( i == IMFS_NAME_MAX ) 49e52: 7220 moveq #32,%d1 <== NOT EXECUTED 49e54: b280 cmpl %d0,%d1 <== NOT EXECUTED 49e56: 66d4 bnes 49e2c <== NOT EXECUTED else if ( strcmp( token, "." ) == 0 ) type = IMFS_CURRENT_DIR; } return type; } 49e58: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 49e5e: 4e5e unlk %fp <== NOT EXECUTED c = path[i]; while ( (!IMFS_is_separator(c)) && (i <= IMFS_NAME_MAX) ) { token[i] = c; if ( i == IMFS_NAME_MAX ) 49e60: 7004 moveq #4,%d0 <== NOT EXECUTED else if ( strcmp( token, "." ) == 0 ) type = IMFS_CURRENT_DIR; } return type; } 49e62: 4e75 rts <== NOT EXECUTED i++; type = IMFS_CURRENT_DIR; } else { type = IMFS_NO_MORE_PATH; } } else if (token[ i-1 ] != '\0') { 49e64: 4a32 08ff tstb %a2@(ffffffff,%d0:l) <== NOT EXECUTED 49e68: 662a bnes 49e94 <== NOT EXECUTED * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) 49e6a: 4879 0005 6e74 pea 56e74 <== NOT EXECUTED /* * Set token_len to the number of characters copied. */ *token_len = i; 49e70: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 49e74: 2080 movel %d0,%a0@ <== NOT EXECUTED * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) 49e76: 47f9 0004 e818 lea 4e818 ,%a3 <== NOT EXECUTED 49e7c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49e7e: 4e93 jsr %a3@ <== NOT EXECUTED 49e80: 508f addql #8,%sp <== NOT EXECUTED 49e82: 4a80 tstl %d0 <== NOT EXECUTED 49e84: 6630 bnes 49eb6 <== NOT EXECUTED else if ( strcmp( token, "." ) == 0 ) type = IMFS_CURRENT_DIR; } return type; } 49e86: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 49e8c: 4e5e unlk %fp <== NOT EXECUTED * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) 49e8e: 103c 0002 moveb #2,%d0 <== NOT EXECUTED else if ( strcmp( token, "." ) == 0 ) type = IMFS_CURRENT_DIR; } return type; } 49e92: 4e75 rts <== NOT EXECUTED type = IMFS_CURRENT_DIR; } else { type = IMFS_NO_MORE_PATH; } } else if (token[ i-1 ] != '\0') { token[i] = '\0'; 49e94: 4202 clrb %d2 <== NOT EXECUTED 49e96: 1582 0800 moveb %d2,%a2@(00000000,%d0:l) <== NOT EXECUTED * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) 49e9a: 4879 0005 6e74 pea 56e74 <== NOT EXECUTED /* * Set token_len to the number of characters copied. */ *token_len = i; 49ea0: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 49ea4: 2080 movel %d0,%a0@ <== NOT EXECUTED * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) 49ea6: 47f9 0004 e818 lea 4e818 ,%a3 <== NOT EXECUTED 49eac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49eae: 4e93 jsr %a3@ <== NOT EXECUTED 49eb0: 508f addql #8,%sp <== NOT EXECUTED 49eb2: 4a80 tstl %d0 <== NOT EXECUTED 49eb4: 67d0 beqs 49e86 <== NOT EXECUTED type = IMFS_UP_DIR; else if ( strcmp( token, "." ) == 0 ) 49eb6: 4879 0005 6e75 pea 56e75 <== NOT EXECUTED 49ebc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49ebe: 4e93 jsr %a3@ <== NOT EXECUTED 49ec0: 508f addql #8,%sp <== NOT EXECUTED 49ec2: 4a80 tstl %d0 <== NOT EXECUTED 49ec4: 6624 bnes 49eea <== NOT EXECUTED type = IMFS_CURRENT_DIR; } return type; } 49ec6: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 49ecc: 4e5e unlk %fp <== NOT EXECUTED */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) type = IMFS_UP_DIR; else if ( strcmp( token, "." ) == 0 ) 49ece: 103c 0001 moveb #1,%d0 <== NOT EXECUTED type = IMFS_CURRENT_DIR; } return type; } 49ed2: 4e75 rts <== NOT EXECUTED /* * Copy a seperator into token. */ if ( i == 0 ) { token[i] = c; 49ed4: 1480 moveb %d0,%a2@ <== NOT EXECUTED /* * Set token_len to the number of characters copied. */ *token_len = i; 49ed6: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED /* * Copy a seperator into token. */ if ( i == 0 ) { token[i] = c; 49eda: 7201 moveq #1,%d1 <== NOT EXECUTED 49edc: 7001 moveq #1,%d0 <== NOT EXECUTED /* * Set token_len to the number of characters copied. */ *token_len = i; 49ede: 2081 movel %d1,%a0@ <== NOT EXECUTED else if ( strcmp( token, "." ) == 0 ) type = IMFS_CURRENT_DIR; } return type; } 49ee0: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 49ee6: 4e5e unlk %fp <== NOT EXECUTED 49ee8: 4e75 rts <== NOT EXECUTED 49eea: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 49ef0: 4e5e unlk %fp <== NOT EXECUTED */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) type = IMFS_UP_DIR; else if ( strcmp( token, "." ) == 0 ) 49ef2: 7003 moveq #3,%d0 <== NOT EXECUTED type = IMFS_CURRENT_DIR; } return type; } 49ef4: 4e75 rts <== NOT EXECUTED /* * Copy a seperator into token. */ if ( i == 0 ) { token[i] = c; 49ef6: 4212 clrb %a2@ <== NOT EXECUTED /* * Set token_len to the number of characters copied. */ *token_len = i; 49ef8: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED /* * Copy a seperator into token. */ if ( i == 0 ) { token[i] = c; 49efc: 4281 clrl %d1 <== NOT EXECUTED /* * Set token_len to the number of characters copied. */ *token_len = i; 49efe: 2081 movel %d1,%a0@ <== NOT EXECUTED /* * Copy a seperator into token. */ if ( i == 0 ) { token[i] = c; 49f00: 4280 clrl %d0 <== NOT EXECUTED 49f02: 60dc bras 49ee0 <== NOT EXECUTED 00045560 : */ int IMFS_initialize( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 45560: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return IMFS_initialize_support( 45564: 4879 0008 2f10 pea 82f10 <== NOT EXECUTED 4556a: 4879 0008 2f80 pea 82f80 <== NOT EXECUTED 45570: 4879 0008 0eb0 pea 80eb0 <== NOT EXECUTED 45576: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4557a: 4eb9 0004 5584 jsr 45584 <== NOT EXECUTED temp_mt_entry, &IMFS_ops, &IMFS_memfile_handlers, &IMFS_directory_handlers ); } 45580: 4e5e unlk %fp <== NOT EXECUTED 45582: 4e75 rts 00049f04 : 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 ) { 49f04: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 49f08: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 49f0c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 49f10: 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, 49f14: 2079 0005 804c moveal 5804c ,%a0 <== NOT EXECUTED * check, whether requested bytes per block is valid */ for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) { if (bit_mask == requested_bytes_per_block) { 49f1a: 7010 moveq #16,%d0 <== NOT EXECUTED 49f1c: b088 cmpl %a0,%d0 <== NOT EXECUTED 49f1e: 6716 beqs 49f36 <== NOT EXECUTED 49f20: 7220 moveq #32,%d1 <== NOT EXECUTED 49f22: 4200 clrb %d0 <== NOT EXECUTED /* * check, whether requested bytes per block is valid */ for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) { 49f24: 5280 addql #1,%d0 <== NOT EXECUTED if (bit_mask == requested_bytes_per_block) { 49f26: b288 cmpl %a0,%d1 <== NOT EXECUTED 49f28: 670c beqs 49f36 <== NOT EXECUTED /* * check, whether requested bytes per block is valid */ for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) { 49f2a: 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); 49f2c: 7605 moveq #5,%d3 <== NOT EXECUTED 49f2e: b680 cmpl %d0,%d3 <== NOT EXECUTED 49f30: 66f2 bnes 49f24 <== NOT EXECUTED 49f32: 307c 0080 moveaw #128,%a0 <== 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( 49f36: 42a7 clrl %sp@- <== NOT EXECUTED 49f38: 4878 41ed pea 41ed <== NOT EXECUTED 49f3c: 4879 0005 6e98 pea 56e98 <== NOT EXECUTED 49f42: 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) 49f46: 23c8 0005 9430 movel %a0,59430 <== 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( 49f4c: 42a7 clrl %sp@- <== NOT EXECUTED 49f4e: 4eb9 0004 c7d0 jsr 4c7d0 <== 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 ) ); 49f54: 4878 000c pea c <== 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; 49f58: 41f9 0005 7534 lea 57534 ,%a0 <== NOT EXECUTED 49f5e: 2550 0030 movel %a0@,%a2@(48) <== NOT EXECUTED 49f62: 41f9 0005 7538 lea 57538 ,%a0 <== NOT EXECUTED 49f68: 2550 0034 movel %a0@,%a2@(52) <== NOT EXECUTED 49f6c: 41f9 0005 753c lea 5753c ,%a0 <== NOT EXECUTED 49f72: 2550 0038 movel %a0@,%a2@(56) <== NOT EXECUTED 49f76: 41f9 0005 7540 lea 57540 ,%a0 <== NOT EXECUTED 49f7c: 2550 003c movel %a0@,%a2@(60) <== NOT EXECUTED 49f80: 41f9 0005 7544 lea 57544 ,%a0 <== NOT EXECUTED /* * Create custom file system data. */ fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); 49f86: 4878 0001 pea 1 <== 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; 49f8a: 2550 0040 movel %a0@,%a2@(64) <== NOT EXECUTED 49f8e: 41f9 0005 7548 lea 57548 ,%a0 <== NOT EXECUTED 49f94: 2550 0044 movel %a0@,%a2@(68) <== NOT EXECUTED 49f98: 41f9 0005 754c lea 5754c ,%a0 <== NOT EXECUTED 49f9e: 2550 0048 movel %a0@,%a2@(72) <== NOT EXECUTED 49fa2: 41f9 0005 7550 lea 57550 ,%a0 <== NOT EXECUTED 49fa8: 2550 004c movel %a0@,%a2@(76) <== NOT EXECUTED 49fac: 41f9 0005 7554 lea 57554 ,%a0 <== NOT EXECUTED 49fb2: 2550 0050 movel %a0@,%a2@(80) <== NOT EXECUTED 49fb6: 41f9 0005 7558 lea 57558 ,%a0 <== NOT EXECUTED 49fbc: 2550 0054 movel %a0@,%a2@(84) <== NOT EXECUTED 49fc0: 41f9 0005 755c lea 5755c ,%a0 <== NOT EXECUTED 49fc6: 2550 0058 movel %a0@,%a2@(88) <== NOT EXECUTED 49fca: 41f9 0005 7560 lea 57560 ,%a0 <== 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( 49fd0: 2540 0018 movel %d0,%a2@(24) <== 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; 49fd4: 2550 005c movel %a0@,%a2@(92) <== NOT EXECUTED ( S_IFDIR | 0755 ), NULL ); temp_mt_entry->mt_fs_root.handlers = directory_handlers; temp_mt_entry->mt_fs_root.ops = op_table; 49fd8: 256e 000c 0020 movel %fp@(12),%a2@(32) <== NOT EXECUTED "", ( S_IFDIR | 0755 ), NULL ); temp_mt_entry->mt_fs_root.handlers = directory_handlers; 49fde: 2542 001c movel %d2,%a2@(28) <== 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 ) ); 49fe2: 4eb9 0004 a500 jsr 4a500 <== NOT EXECUTED if ( !fs_info ){ 49fe8: dffc 0000 001c addal #28,%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 ) ); 49fee: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !fs_info ){ 49ff0: 4a80 tstl %d0 <== NOT EXECUTED 49ff2: 6728 beqs 4a01c <== NOT EXECUTED fs_info->ino_count = 1; 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; 49ff4: 206a 0018 moveal %a2@(24),%a0 <== NOT EXECUTED /* * Set st_ino for the root to 1. */ fs_info->ino_count = 1; 49ff8: 7001 moveq #1,%d0 <== NOT EXECUTED 49ffa: 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; 49ffc: 7001 moveq #1,%d0 <== NOT EXECUTED /* * Set st_ino for the root to 1. */ fs_info->ino_count = 1; fs_info->memfile_handlers = memfile_handlers; 49ffe: 236e 0010 0004 movel %fp@(16),%a1@(4) <== NOT EXECUTED fs_info->directory_handlers = directory_handlers; 4a004: 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; 4a008: 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; } 4a00c: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4a012: 4e5e unlk %fp <== NOT EXECUTED fs_info->ino_count = 1; 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; 4a014: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED 4a018: 4200 clrb %d0 <== NOT EXECUTED return 0; } 4a01a: 4e75 rts <== NOT EXECUTED /* * Create custom file system data. */ fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); if ( !fs_info ){ free(temp_mt_entry->mt_fs_root.node_access); 4a01c: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 4a020: 4eb9 0004 a5fc jsr 4a5fc <== NOT EXECUTED rtems_set_errno_and_return_minus_one(ENOMEM); 4a026: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4a02c: 588f addql #4,%sp <== NOT EXECUTED jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; return 0; } 4a02e: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED * Create custom file system data. */ fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); if ( !fs_info ){ free(temp_mt_entry->mt_fs_root.node_access); rtems_set_errno_and_return_minus_one(ENOMEM); 4a034: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a036: 720c moveq #12,%d1 <== NOT EXECUTED jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; return 0; } 4a038: 4e5e unlk %fp <== NOT EXECUTED * Create custom file system data. */ fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); if ( !fs_info ){ free(temp_mt_entry->mt_fs_root.node_access); rtems_set_errno_and_return_minus_one(ENOMEM); 4a03a: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a03c: 2081 movel %d1,%a0@ <== NOT EXECUTED jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; return 0; } 4a03e: 4e75 rts 000456c0 : int IMFS_link( rtems_filesystem_location_info_t *to_loc, /* IN */ rtems_filesystem_location_info_t *parent_loc, /* IN */ const char *token /* IN */ ) { 456c0: 4e56 ffc0 linkw %fp,#-64 <== NOT EXECUTED 456c4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 456c8: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; 456ca: 2250 moveal %a0@,%a1 <== NOT EXECUTED if ( info.hard_link.link_node->st_nlink >= LINK_MAX ) 456cc: 4280 clrl %d0 <== NOT EXECUTED /* * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; 456ce: 2d49 ffe4 movel %a1,%fp@(-28) <== NOT EXECUTED if ( info.hard_link.link_node->st_nlink >= LINK_MAX ) 456d2: 3029 0032 movew %a1@(50),%d0 <== NOT EXECUTED 456d6: 7207 moveq #7,%d1 <== NOT EXECUTED 456d8: b280 cmpl %d0,%d1 <== NOT EXECUTED 456da: 656c bcss 45748 <== NOT EXECUTED /* * Remove any separators at the end of the string. */ IMFS_get_token( token, new_name, &i ); 456dc: 486e fffc pea %fp@(-4) <== NOT EXECUTED 456e0: 240e movel %fp,%d2 <== NOT EXECUTED 456e2: 0682 ffff ffc3 addil #-61,%d2 <== NOT EXECUTED 456e8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 456ea: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 456ee: 4eb9 0004 5458 jsr 45458 <== NOT EXECUTED /* * Create a new link node. */ new_node = IMFS_create_node( 456f4: 486e ffe4 pea %fp@(-28) <== NOT EXECUTED 456f8: 2f3c 0000 a1ff movel #41471,%sp@- <== NOT EXECUTED 456fe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45700: 4878 0003 pea 3 <== NOT EXECUTED 45704: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45708: 4eb9 0005 ee0c jsr 5ee0c <== NOT EXECUTED new_name, ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if ( !new_node ) 4570e: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 45714: 4a80 tstl %d0 <== NOT EXECUTED 45716: 6746 beqs 4575e <== NOT EXECUTED /* * Increment the link count of the node being pointed to. */ info.hard_link.link_node->st_nlink++; 45718: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 4571c: 3028 0032 movew %a0@(50),%d0 <== NOT EXECUTED 45720: 5280 addql #1,%d0 <== NOT EXECUTED 45722: 3140 0032 movew %d0,%a0@(50) <== NOT EXECUTED IMFS_update_ctime( info.hard_link.link_node ); 45726: 42a7 clrl %sp@- <== NOT EXECUTED 45728: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 4572c: 4eb9 0004 6274 jsr 46274 <== NOT EXECUTED 45732: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED return 0; } 45736: 242e ffbc movel %fp@(-68),%d2 <== NOT EXECUTED /* * Increment the link count of the node being pointed to. */ info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); 4573a: 216e fff4 0044 movel %fp@(-12),%a0@(68) <== NOT EXECUTED 45740: 508f addql #8,%sp <== NOT EXECUTED return 0; } 45742: 4e5e unlk %fp <== NOT EXECUTED /* * Increment the link count of the node being pointed to. */ info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); 45744: 4280 clrl %d0 <== NOT EXECUTED return 0; } 45746: 4e75 rts <== NOT EXECUTED * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; if ( info.hard_link.link_node->st_nlink >= LINK_MAX ) rtems_set_errno_and_return_minus_one( EMLINK ); 45748: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); return 0; } 4574e: 242e ffbc movel %fp@(-68),%d2 <== NOT EXECUTED * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; if ( info.hard_link.link_node->st_nlink >= LINK_MAX ) rtems_set_errno_and_return_minus_one( EMLINK ); 45752: 2040 moveal %d0,%a0 <== NOT EXECUTED 45754: 721f moveq #31,%d1 <== NOT EXECUTED info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); return 0; } 45756: 4e5e unlk %fp <== NOT EXECUTED * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; if ( info.hard_link.link_node->st_nlink >= LINK_MAX ) rtems_set_errno_and_return_minus_one( EMLINK ); 45758: 70ff moveq #-1,%d0 <== NOT EXECUTED 4575a: 2081 movel %d1,%a0@ <== NOT EXECUTED info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); return 0; } 4575c: 4e75 rts <== NOT EXECUTED ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); 4575e: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); return 0; } 45764: 242e ffbc movel %fp@(-68),%d2 <== NOT EXECUTED ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); 45768: 2040 moveal %d0,%a0 <== NOT EXECUTED 4576a: 700c moveq #12,%d0 <== NOT EXECUTED 4576c: 2080 movel %d0,%a0@ <== NOT EXECUTED info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); return 0; } 4576e: 4e5e unlk %fp <== NOT EXECUTED ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); 45770: 70ff moveq #-1,%d0 <== NOT EXECUTED info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); return 0; } 45772: 4e75 rts 00067186 : MEMFILE_STATIC int IMFS_memfile_addblock( IMFS_jnode_t *the_jnode, unsigned int block ) { 67186: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 6718a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 6718e: 2f0a movel %a2,%sp@- <== NOT EXECUTED block_p memory; block_p *block_entry_ptr; assert( the_jnode ); 67190: 4a88 tstl %a0 <== NOT EXECUTED 67192: 674e beqs 671e2 <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 67194: 7005 moveq #5,%d0 <== NOT EXECUTED 67196: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 6719a: 6662 bnes 671fe <== 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 ); 6719c: 4878 0001 pea 1 <== NOT EXECUTED 671a0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 671a4: 2f08 movel %a0,%sp@- <== NOT EXECUTED 671a6: 4eb9 0006 6cec jsr 66cec <== NOT EXECUTED if ( *block_entry_ptr ) 671ac: 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 ); 671b2: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( *block_entry_ptr ) 671b4: 4a92 tstl %a2@ <== NOT EXECUTED 671b6: 670a beqs 671c2 <== NOT EXECUTED if ( !memory ) return 1; *block_entry_ptr = memory; return 0; } 671b8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 671bc: 4e5e unlk %fp <== 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 ); if ( *block_entry_ptr ) 671be: 4280 clrl %d0 <== NOT EXECUTED if ( !memory ) return 1; *block_entry_ptr = memory; return 0; } 671c0: 4e75 rts <== NOT EXECUTED #if 0 fprintf(stdout, "%d %p", block, block_entry_ptr ); fflush(stdout); #endif memory = memfile_alloc_block(); 671c2: 4eb9 0006 6cc8 jsr 66cc8 <== NOT EXECUTED 671c8: 2200 movel %d0,%d1 <== NOT EXECUTED if ( !memory ) 671ca: 670c beqs 671d8 <== NOT EXECUTED return 1; *block_entry_ptr = memory; 671cc: 2481 movel %d1,%a2@ <== NOT EXECUTED return 0; } 671ce: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 671d2: 4e5e unlk %fp <== NOT EXECUTED #endif memory = memfile_alloc_block(); if ( !memory ) return 1; *block_entry_ptr = memory; 671d4: 4280 clrl %d0 <== NOT EXECUTED return 0; } 671d6: 4e75 rts <== NOT EXECUTED 671d8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 671dc: 4e5e unlk %fp <== NOT EXECUTED fprintf(stdout, "%d %p", block, block_entry_ptr ); fflush(stdout); #endif memory = memfile_alloc_block(); if ( !memory ) 671de: 7001 moveq #1,%d0 <== NOT EXECUTED return 1; *block_entry_ptr = memory; return 0; } 671e0: 4e75 rts <== NOT EXECUTED ) { block_p memory; block_p *block_entry_ptr; assert( the_jnode ); 671e2: 4879 0008 3475 pea 83475 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 671e8: 4879 0008 35c7 pea 835c7 <__func__.5677> <== NOT EXECUTED 671ee: 4878 0169 pea 169 <== NOT EXECUTED 671f2: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 671f8: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 671fe: 4879 0008 34c8 pea 834c8 <_POSIX_Threads_Default_attributes+0x1ec> <== NOT EXECUTED 67204: 4879 0008 35c7 pea 835c7 <__func__.5677> <== NOT EXECUTED 6720a: 4878 016d pea 16d <== NOT EXECUTED 6720e: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 67214: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED 0006721a : MEMFILE_STATIC int IMFS_memfile_extend( IMFS_jnode_t *the_jnode, off_t new_length ) { 6721a: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 6721e: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 67222: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 67226: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 6722a: 4a8b tstl %a3 <== NOT EXECUTED 6722c: 6700 00c4 beqw 672f2 <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 67230: 7005 moveq #5,%d0 <== NOT EXECUTED 67232: b0ab 0048 cmpl %a3@(72),%d0 <== NOT EXECUTED 67236: 6600 00d6 bnew 6730e <== NOT EXECUTED if ( the_jnode->type != IMFS_MEMORY_FILE ) rtems_set_errno_and_return_minus_one( EIO ); if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) 6723a: 2439 0008 7e00 movel 87e00 ,%d2 <== NOT EXECUTED 67240: 2202 movel %d2,%d1 <== NOT EXECUTED 67242: e489 lsrl #2,%d1 <== NOT EXECUTED 67244: 2001 movel %d1,%d0 <== NOT EXECUTED 67246: 5280 addql #1,%d0 <== NOT EXECUTED 67248: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 6724c: 5280 addql #1,%d0 <== NOT EXECUTED 6724e: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 67252: 5380 subql #1,%d0 <== NOT EXECUTED 67254: 4c02 0800 mulsl %d2,%d0 <== NOT EXECUTED 67258: b085 cmpl %d5,%d0 <== NOT EXECUTED 6725a: 637e blss 672da <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( new_length <= the_jnode->info.file.size ) 6725c: 202b 004c movel %a3@(76),%d0 <== NOT EXECUTED 67260: b085 cmpl %d5,%d0 <== NOT EXECUTED 67262: 6c3a bges 6729e <== 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; 67264: 2800 movel %d0,%d4 <== NOT EXECUTED /* * Calculate the number of range of blocks to allocate */ new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK; 67266: 2605 movel %d5,%d3 <== NOT EXECUTED old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK; 67268: 4c42 4804 remsl %d2,%d4,%d4 <== NOT EXECUTED /* * Calculate the number of range of blocks to allocate */ new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK; 6726c: 4c42 3803 remsl %d2,%d3,%d3 <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { 67270: b883 cmpl %d3,%d4 <== NOT EXECUTED 67272: 621a bhis 6728e <== NOT EXECUTED 67274: 2404 movel %d4,%d2 <== NOT EXECUTED 67276: 45f9 0006 7186 lea 67186 ,%a2 <== NOT EXECUTED if ( IMFS_memfile_addblock( the_jnode, block ) ) { 6727c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6727e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 67280: 4e92 jsr %a2@ <== NOT EXECUTED 67282: 508f addql #8,%sp <== NOT EXECUTED 67284: 4a80 tstl %d0 <== NOT EXECUTED 67286: 6622 bnes 672aa <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { 67288: 5282 addql #1,%d2 <== NOT EXECUTED 6728a: b483 cmpl %d3,%d2 <== NOT EXECUTED 6728c: 63ee blss 6727c <== NOT EXECUTED /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; 6728e: 2745 004c movel %d5,%a3@(76) <== NOT EXECUTED return 0; } 67292: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 67298: 4e5e unlk %fp <== NOT EXECUTED /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; 6729a: 4280 clrl %d0 <== NOT EXECUTED return 0; } 6729c: 4e75 rts <== NOT EXECUTED 6729e: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 672a4: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EIO ); if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( new_length <= the_jnode->info.file.size ) 672a6: 4280 clrl %d0 <== NOT EXECUTED * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 672a8: 4e75 rts <== NOT EXECUTED * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { if ( IMFS_memfile_addblock( the_jnode, block ) ) { for ( ; block>=old_blocks ; block-- ) { 672aa: b484 cmpl %d4,%d2 <== NOT EXECUTED 672ac: 6514 bcss 672c2 <== NOT EXECUTED 672ae: 45f9 0006 6eb8 lea 66eb8 ,%a2 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 672b4: 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-- ) { 672b6: 5382 subql #1,%d2 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 672b8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 672ba: 4e92 jsr %a2@ <== 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-- ) { 672bc: 508f addql #8,%sp <== NOT EXECUTED 672be: b484 cmpl %d4,%d2 <== NOT EXECUTED 672c0: 64f2 bccs 672b4 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); } rtems_set_errno_and_return_minus_one( ENOSPC ); 672c2: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 672c8: 2040 moveal %d0,%a0 <== NOT EXECUTED 672ca: 701c moveq #28,%d0 <== NOT EXECUTED * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 672cc: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED for ( block=old_blocks ; block<=new_blocks ; block++ ) { if ( IMFS_memfile_addblock( the_jnode, block ) ) { for ( ; block>=old_blocks ; block-- ) { IMFS_memfile_remove_block( the_jnode, block ); } rtems_set_errno_and_return_minus_one( ENOSPC ); 672d2: 2080 movel %d0,%a0@ <== NOT EXECUTED * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 672d4: 4e5e unlk %fp <== NOT EXECUTED for ( block=old_blocks ; block<=new_blocks ; block++ ) { if ( IMFS_memfile_addblock( the_jnode, block ) ) { for ( ; block>=old_blocks ; block-- ) { IMFS_memfile_remove_block( the_jnode, block ); } rtems_set_errno_and_return_minus_one( ENOSPC ); 672d6: 70ff moveq #-1,%d0 <== NOT EXECUTED * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 672d8: 4e75 rts <== NOT EXECUTED assert( the_jnode->type == IMFS_MEMORY_FILE ); if ( the_jnode->type != IMFS_MEMORY_FILE ) rtems_set_errno_and_return_minus_one( EIO ); if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) rtems_set_errno_and_return_minus_one( EINVAL ); 672da: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 672e0: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED assert( the_jnode->type == IMFS_MEMORY_FILE ); if ( the_jnode->type != IMFS_MEMORY_FILE ) rtems_set_errno_and_return_minus_one( EIO ); if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) rtems_set_errno_and_return_minus_one( EINVAL ); 672e6: 2040 moveal %d0,%a0 <== NOT EXECUTED 672e8: 7216 moveq #22,%d1 <== NOT EXECUTED * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 672ea: 4e5e unlk %fp <== NOT EXECUTED assert( the_jnode->type == IMFS_MEMORY_FILE ); if ( the_jnode->type != IMFS_MEMORY_FILE ) rtems_set_errno_and_return_minus_one( EIO ); if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) rtems_set_errno_and_return_minus_one( EINVAL ); 672ec: 70ff moveq #-1,%d0 <== NOT EXECUTED 672ee: 2081 movel %d1,%a0@ <== NOT EXECUTED * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 672f0: 4e75 rts <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 672f2: 4879 0008 3475 pea 83475 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 672f8: 4879 0008 35dd pea 835dd <__func__.5644> <== NOT EXECUTED 672fe: 4878 0131 pea 131 <== NOT EXECUTED 67302: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 67308: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 6730e: 4879 0008 34c8 pea 834c8 <_POSIX_Threads_Default_attributes+0x1ec> <== NOT EXECUTED 67314: 4879 0008 35dd pea 835dd <__func__.5644> <== NOT EXECUTED 6731a: 4878 0135 pea 135 <== NOT EXECUTED 6731e: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 67324: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED 00066cec : #endif IMFS_jnode_t *the_jnode, unsigned int block, int malloc_it ) { 66cec: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 66cf0: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 66cf4: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 66cf8: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 66cfc: 4a8a tstl %a2 <== NOT EXECUTED 66cfe: 6700 0154 beqw 66e54 <== NOT EXECUTED if ( !the_jnode ) return NULL; assert( the_jnode->type == IMFS_MEMORY_FILE ); 66d02: 7005 moveq #5,%d0 <== NOT EXECUTED 66d04: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 66d08: 6600 0166 bnew 66e70 <== NOT EXECUTED /* * Is the block number in the simple indirect portion? */ if ( my_block <= LAST_INDIRECT ) { 66d0c: 2239 0008 7e00 movel 87e00 ,%d1 <== NOT EXECUTED 66d12: e489 lsrl #2,%d1 <== NOT EXECUTED 66d14: 2001 movel %d1,%d0 <== NOT EXECUTED 66d16: 5380 subql #1,%d0 <== NOT EXECUTED 66d18: b082 cmpl %d2,%d0 <== NOT EXECUTED 66d1a: 6448 bccs 66d64 <== NOT EXECUTED /* * Is the block number in the doubly indirect portion? */ if ( my_block <= LAST_DOUBLY_INDIRECT ) { 66d1c: 2601 movel %d1,%d3 <== NOT EXECUTED 66d1e: 5283 addql #1,%d3 <== NOT EXECUTED 66d20: 4c01 3800 mulsl %d1,%d3 <== NOT EXECUTED 66d24: 2003 movel %d3,%d0 <== NOT EXECUTED 66d26: 5380 subql #1,%d0 <== NOT EXECUTED 66d28: b082 cmpl %d2,%d0 <== NOT EXECUTED 66d2a: 6500 008e bcsw 66dba <== 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; 66d2e: 206a 0054 moveal %a2@(84),%a0 <== NOT EXECUTED #if 0 fprintf(stdout, "(d %d) ", block ); fflush(stdout); #endif my_block -= FIRST_DOUBLY_INDIRECT; 66d32: 9481 subl %d1,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 66d34: 4c41 2003 remul %d1,%d3,%d2 <== NOT EXECUTED 66d38: 4c41 2002 remul %d1,%d2,%d2 <== NOT EXECUTED doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; p = info->doubly_indirect; if ( malloc_it ) { 66d3c: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 66d40: 6700 00f6 beqw 66e38 <== NOT EXECUTED if ( !p ) { 66d44: 4a88 tstl %a0 <== NOT EXECUTED 66d46: 6754 beqs 66d9c <== NOT EXECUTED if ( !p ) return 0; info->doubly_indirect = p; } p1 = (block_p *)p[ doubly ]; 66d48: 45f0 2c00 lea %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 66d4c: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p1 ) { 66d4e: 4a88 tstl %a0 <== NOT EXECUTED 66d50: 6700 00d0 beqw 66e22 <== NOT EXECUTED p2 = memfile_alloc_block(); if ( !p2 ) return 0; p1[ doubly ] = (block_p) p2; } return (block_p *)&p2[ singly ]; 66d54: 41f0 3c00 lea %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 66d58: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 66d5e: 4e5e unlk %fp <== NOT EXECUTED 66d60: 2008 movel %a0,%d0 <== NOT EXECUTED 66d62: 4e75 rts <== NOT EXECUTED if ( my_block <= LAST_INDIRECT ) { #if 0 fprintf(stdout, "(s %d) ", block ); fflush(stdout); #endif p = info->indirect; 66d64: 206a 0050 moveal %a2@(80),%a0 <== NOT EXECUTED if ( malloc_it ) { 66d68: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 66d6c: 6700 011e beqw 66e8c <== NOT EXECUTED if ( !p ) { 66d70: 4a88 tstl %a0 <== NOT EXECUTED 66d72: 6710 beqs 66d84 <== NOT EXECUTED } if ( !p ) return 0; return &info->indirect[ my_block ]; 66d74: 41f0 2c00 lea %a0@(00000000,%d2:l:4),%a0 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 66d78: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 66d7e: 4e5e unlk %fp <== NOT EXECUTED 66d80: 2008 movel %a0,%d0 <== NOT EXECUTED 66d82: 4e75 rts <== NOT EXECUTED p = info->indirect; if ( malloc_it ) { if ( !p ) { p = memfile_alloc_block(); 66d84: 4eb9 0006 6cc8 jsr 66cc8 <== NOT EXECUTED 66d8a: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p ) 66d8c: 4a80 tstl %d0 <== NOT EXECUTED 66d8e: 6700 00b6 beqw 66e46 <== NOT EXECUTED return 0; info->indirect = p; 66d92: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED } if ( !p ) return 0; return &info->indirect[ my_block ]; 66d96: 41f0 2c00 lea %a0@(00000000,%d2:l:4),%a0 <== NOT EXECUTED 66d9a: 60dc bras 66d78 <== NOT EXECUTED p = info->doubly_indirect; if ( malloc_it ) { if ( !p ) { p = memfile_alloc_block(); 66d9c: 4eb9 0006 6cc8 jsr 66cc8 <== NOT EXECUTED 66da2: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p ) 66da4: 4a80 tstl %d0 <== NOT EXECUTED 66da6: 6700 009e beqw 66e46 <== NOT EXECUTED return 0; info->doubly_indirect = p; 66daa: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED } p1 = (block_p *)p[ doubly ]; 66dae: 45f0 2c00 lea %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 66db2: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p1 ) { 66db4: 4a88 tstl %a0 <== NOT EXECUTED 66db6: 669c bnes 66d54 <== NOT EXECUTED 66db8: 6068 bras 66e22 <== NOT EXECUTED #endif /* * Is the block number in the triply indirect portion? */ if ( my_block <= LAST_TRIPLY_INDIRECT ) { 66dba: 2003 movel %d3,%d0 <== NOT EXECUTED 66dbc: 5280 addql #1,%d0 <== NOT EXECUTED 66dbe: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 66dc2: 5380 subql #1,%d0 <== NOT EXECUTED 66dc4: b082 cmpl %d2,%d0 <== NOT EXECUTED 66dc6: 657e bcss 66e46 <== NOT EXECUTED my_block -= FIRST_TRIPLY_INDIRECT; 66dc8: 9483 subl %d3,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 66dca: 2002 movel %d2,%d0 <== NOT EXECUTED 66dcc: 4c41 0003 remul %d1,%d3,%d0 <== NOT EXECUTED 66dd0: 4c41 0000 remul %d1,%d0,%d0 <== NOT EXECUTED doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; triply = doubly / IMFS_MEMFILE_BLOCK_SLOTS; doubly %= IMFS_MEMFILE_BLOCK_SLOTS; p = info->triply_indirect; 66dd4: 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; 66dd8: 2400 movel %d0,%d2 <== NOT EXECUTED 66dda: 4c41 2004 remul %d1,%d4,%d2 <== NOT EXECUTED 66dde: 4c41 2002 remul %d1,%d2,%d2 <== NOT EXECUTED doubly %= IMFS_MEMFILE_BLOCK_SLOTS; p = info->triply_indirect; if ( malloc_it ) { 66de2: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 66de6: 6700 00b0 beqw 66e98 <== NOT EXECUTED if ( !p ) { 66dea: 4a88 tstl %a0 <== NOT EXECUTED 66dec: 6610 bnes 66dfe <== NOT EXECUTED p = memfile_alloc_block(); 66dee: 4eb9 0006 6cc8 jsr 66cc8 <== NOT EXECUTED 66df4: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p ) 66df6: 4a80 tstl %d0 <== NOT EXECUTED 66df8: 674c beqs 66e46 <== NOT EXECUTED return 0; info->triply_indirect = p; 66dfa: 2540 0058 movel %d0,%a2@(88) <== NOT EXECUTED } p1 = (block_p *) p[ triply ]; 66dfe: 45f0 2c00 lea %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 66e02: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p1 ) { 66e04: 4a88 tstl %a0 <== NOT EXECUTED 66e06: 660e bnes 66e16 <== NOT EXECUTED p1 = memfile_alloc_block(); 66e08: 4eb9 0006 6cc8 jsr 66cc8 <== NOT EXECUTED 66e0e: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p1 ) 66e10: 4a80 tstl %d0 <== NOT EXECUTED 66e12: 6732 beqs 66e46 <== NOT EXECUTED return 0; p[ triply ] = (block_p) p1; 66e14: 2480 movel %d0,%a2@ <== NOT EXECUTED } p2 = (block_p *)p1[ doubly ]; 66e16: 45f0 4c00 lea %a0@(00000000,%d4:l:4),%a2 <== NOT EXECUTED 66e1a: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p2 ) { 66e1c: 4a88 tstl %a0 <== NOT EXECUTED 66e1e: 6600 ff34 bnew 66d54 <== NOT EXECUTED p2 = memfile_alloc_block(); 66e22: 4eb9 0006 6cc8 jsr 66cc8 <== NOT EXECUTED 66e28: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p2 ) 66e2a: 4a80 tstl %d0 <== NOT EXECUTED 66e2c: 6718 beqs 66e46 <== NOT EXECUTED return 0; p1[ doubly ] = (block_p) p2; 66e2e: 2480 movel %d0,%a2@ <== NOT EXECUTED } return (block_p *)&p2[ singly ]; 66e30: 41f0 3c00 lea %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED 66e34: 6000 ff22 braw 66d58 <== NOT EXECUTED } return (block_p *)&p1[ singly ]; } if ( !p ) 66e38: 4a88 tstl %a0 <== NOT EXECUTED 66e3a: 670a beqs 66e46 <== NOT EXECUTED return 0; p = (block_p *)p[ doubly ]; 66e3c: 2070 2c00 moveal %a0@(00000000,%d2:l:4),%a0 <== NOT EXECUTED if ( !p ) 66e40: 4a88 tstl %a0 <== NOT EXECUTED 66e42: 6600 ff10 bnew 66d54 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 66e46: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED p2 = (block_p *)p1[ doubly ]; if ( !p ) return 0; return (block_p *)&p2[ singly ]; 66e4c: 91c8 subal %a0,%a0 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 66e4e: 4e5e unlk %fp <== NOT EXECUTED 66e50: 2008 movel %a0,%d0 <== NOT EXECUTED 66e52: 4e75 rts <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 66e54: 4879 0008 3475 pea 83475 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 66e5a: 4879 0008 3552 pea 83552 <__func__.5864> <== NOT EXECUTED 66e60: 4878 0386 pea 386 <== NOT EXECUTED 66e64: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 66e6a: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED if ( !the_jnode ) return NULL; assert( the_jnode->type == IMFS_MEMORY_FILE ); 66e70: 4879 0008 34c8 pea 834c8 <_POSIX_Threads_Default_attributes+0x1ec> <== NOT EXECUTED 66e76: 4879 0008 3552 pea 83552 <__func__.5864> <== NOT EXECUTED 66e7c: 4878 038a pea 38a <== NOT EXECUTED 66e80: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 66e86: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED info->indirect = p; } return &info->indirect[ my_block ]; } if ( !p ) 66e8c: 4a88 tstl %a0 <== NOT EXECUTED 66e8e: 67b6 beqs 66e46 <== NOT EXECUTED return 0; return &info->indirect[ my_block ]; 66e90: 41f0 2c00 lea %a0@(00000000,%d2:l:4),%a0 <== NOT EXECUTED 66e94: 6000 fee2 braw 66d78 <== NOT EXECUTED p1[ doubly ] = (block_p) p2; } return (block_p *)&p2[ singly ]; } if ( !p ) 66e98: 4a88 tstl %a0 <== NOT EXECUTED 66e9a: 67aa beqs 66e46 <== 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 ]; 66e9c: 2070 2c00 moveal %a0@(00000000,%d2:l:4),%a0 <== NOT EXECUTED if ( !p1 ) 66ea0: 4a88 tstl %a0 <== NOT EXECUTED 66ea2: 67a2 beqs 66e46 <== NOT EXECUTED p2 = (block_p *)p1[ doubly ]; if ( !p ) return 0; return (block_p *)&p2[ singly ]; 66ea4: 2070 4c00 moveal %a0@(00000000,%d4:l:4),%a0 <== NOT EXECUTED 66ea8: e58b lsll #2,%d3 <== NOT EXECUTED 66eaa: d1c3 addal %d3,%a0 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 66eac: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 66eb2: 4e5e unlk %fp <== NOT EXECUTED 66eb4: 2008 movel %a0,%d0 <== NOT EXECUTED 66eb6: 4e75 rts 00043d58 : * using the IMFS memory file type. * */ int IMFS_memfile_maximum_size( void ) { 43d58: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43d5c: 2f02 movel %d2,%sp@- <== NOT EXECUTED return IMFS_MEMFILE_MAXIMUM_SIZE; 43d5e: 2439 0005 fb38 movel 5fb38 ,%d2 <== NOT EXECUTED 43d64: 2202 movel %d2,%d1 <== NOT EXECUTED 43d66: e489 lsrl #2,%d1 <== NOT EXECUTED 43d68: 2001 movel %d1,%d0 <== NOT EXECUTED 43d6a: 5280 addql #1,%d0 <== NOT EXECUTED 43d6c: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 43d70: 5280 addql #1,%d0 <== NOT EXECUTED 43d72: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 43d76: 5380 subql #1,%d0 <== NOT EXECUTED } 43d78: 4c02 0800 mulsl %d2,%d0 <== NOT EXECUTED 43d7c: 241f movel %sp@+,%d2 <== NOT EXECUTED 43d7e: 4e5e unlk %fp <== NOT EXECUTED 43d80: 4e75 rts 0006771c : IMFS_jnode_t *the_jnode, off_t start, unsigned char *destination, unsigned int length ) { 6771c: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 67720: 48d7 1cfc moveml %d2-%d7/%a2-%a4,%sp@ <== NOT EXECUTED 67724: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 67728: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 6772c: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 67730: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 67734: 4a8c tstl %a4 <== NOT EXECUTED 67736: 6700 021e beqw 67956 <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE || 6773a: 222c 0048 movel %a4@(72),%d1 <== NOT EXECUTED 6773e: 2001 movel %d1,%d0 <== NOT EXECUTED 67740: 5b80 subql #5,%d0 <== NOT EXECUTED 67742: 7401 moveq #1,%d2 <== NOT EXECUTED 67744: b480 cmpl %d0,%d2 <== NOT EXECUTED 67746: 6500 022a bcsw 67972 <== NOT EXECUTED /* * Error checks on arguments */ assert( dest ); 6774a: 4a8a tstl %a2 <== NOT EXECUTED 6774c: 6700 0240 beqw 6798e <== NOT EXECUTED /* * If there is nothing to read, then quick exit. */ my_length = length; if ( !my_length ) 67750: 4a88 tstl %a0 <== NOT EXECUTED 67752: 6700 01ea beqw 6793e <== NOT EXECUTED /* * Linear files (as created from a tar file are easier to handle * than block files). */ if (the_jnode->type == IMFS_LINEAR_FILE) { 67756: 7006 moveq #6,%d0 <== NOT EXECUTED 67758: b081 cmpl %d1,%d0 <== NOT EXECUTED 6775a: 6700 0130 beqw 6788c <== 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 ) 6775e: 222c 004c movel %a4@(76),%d1 <== NOT EXECUTED 67762: 2008 movel %a0,%d0 <== NOT EXECUTED 67764: d083 addl %d3,%d0 <== NOT EXECUTED 67766: b280 cmpl %d0,%d1 <== NOT EXECUTED 67768: 6400 00ba bccw 67824 <== NOT EXECUTED /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 6776c: 2439 0008 7e00 movel 87e00 ,%d2 <== NOT EXECUTED 67772: 2e03 movel %d3,%d7 <== NOT EXECUTED * in memory file, then shorten the length to read. */ last_byte = start + length; if ( last_byte > the_jnode->info.file.size ) my_length = the_jnode->info.file.size - start; 67774: 2a01 movel %d1,%d5 <== NOT EXECUTED 67776: 9a83 subl %d3,%d5 <== NOT EXECUTED /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 67778: 4c42 7806 remsl %d2,%d6,%d7 <== NOT EXECUTED 6777c: 4c42 7807 remsl %d2,%d7,%d7 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 67780: 2607 movel %d7,%d3 <== NOT EXECUTED if ( start_offset ) { 67782: 4a86 tstl %d6 <== NOT EXECUTED 67784: 6600 00b8 bnew 6783e <== NOT EXECUTED 67788: 2c0a movel %a2,%d6 <== NOT EXECUTED 6778a: 4284 clrl %d4 <== 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 ) { 6778c: b485 cmpl %d5,%d2 <== NOT EXECUTED 6778e: 6240 bhis 677d0 <== NOT EXECUTED 67790: 47f9 0006 6cec lea 66cec ,%a3 <== NOT EXECUTED 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 ); 67796: 45f9 0007 29e0 lea 729e0 ,%a2 <== 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 ); 6779c: 42a7 clrl %sp@- <== NOT EXECUTED 6779e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 677a0: 2f0c movel %a4,%sp@- <== NOT EXECUTED 677a2: 4e93 jsr %a3@ <== NOT EXECUTED assert( block_ptr ); 677a4: 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 ); 677aa: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 677ac: 4a80 tstl %d0 <== NOT EXECUTED 677ae: 6700 0172 beqw 67922 <== NOT EXECUTED if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 677b2: 2f02 movel %d2,%sp@- <== NOT EXECUTED dest += to_copy; block++; 677b4: 5283 addql #1,%d3 <== 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 ); 677b6: 2f10 movel %a0@,%sp@- <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; 677b8: 9a82 subl %d2,%d5 <== NOT EXECUTED copied += to_copy; 677ba: 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 ); 677bc: 2f06 movel %d6,%sp@- <== NOT EXECUTED 677be: 4e92 jsr %a2@ <== NOT EXECUTED dest += to_copy; 677c0: dc82 addl %d2,%d6 <== 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 ) { 677c2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 677c8: bab9 0008 7e00 cmpl 87e00 ,%d5 <== NOT EXECUTED 677ce: 64cc bccs 6779c <== NOT EXECUTED 677d0: 2404 movel %d4,%d2 <== NOT EXECUTED * Phase 3: possibly the first part of one block */ assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); if ( my_length ) { 677d2: 4a85 tstl %d5 <== NOT EXECUTED 677d4: 672e beqs 67804 <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 677d6: 42a7 clrl %sp@- <== NOT EXECUTED 677d8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 677da: 2f0c movel %a4,%sp@- <== NOT EXECUTED 677dc: 4eb9 0006 6cec jsr 66cec <== NOT EXECUTED assert( block_ptr ); 677e2: 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 ); 677e8: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 677ea: 4a80 tstl %d0 <== NOT EXECUTED 677ec: 6700 01d8 beqw 679c6 <== NOT EXECUTED if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], my_length ); 677f0: 2f05 movel %d5,%sp@- <== NOT EXECUTED copied += my_length; 677f2: d485 addl %d5,%d2 <== 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 ); 677f4: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 677f6: 2f06 movel %d6,%sp@- <== NOT EXECUTED 677f8: 4eb9 0007 29e0 jsr 729e0 <== NOT EXECUTED copied += my_length; 677fe: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } IMFS_update_atime( the_jnode ); 67804: 42a7 clrl %sp@- <== NOT EXECUTED 67806: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 6780a: 4eb9 0004 6274 jsr 46274 <== NOT EXECUTED 67810: 296e fff8 003c movel %fp@(-8),%a4@(60) <== NOT EXECUTED return copied; 67816: 2002 movel %d2,%d0 <== NOT EXECUTED 67818: 508f addql #8,%sp <== NOT EXECUTED } 6781a: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 67820: 4e5e unlk %fp <== NOT EXECUTED 67822: 4e75 rts <== NOT EXECUTED /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 67824: 2439 0008 7e00 movel 87e00 ,%d2 <== NOT EXECUTED 6782a: 2e03 movel %d3,%d7 <== NOT EXECUTED 6782c: 4c42 7806 remsl %d2,%d6,%d7 <== NOT EXECUTED 67830: 4c42 7807 remsl %d2,%d7,%d7 <== 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 ) 67834: 2a08 movel %a0,%d5 <== NOT EXECUTED /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 67836: 2607 movel %d7,%d3 <== NOT EXECUTED if ( start_offset ) { 67838: 4a86 tstl %d6 <== NOT EXECUTED 6783a: 6700 ff4c beqw 67788 <== 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 ); 6783e: 42a7 clrl %sp@- <== NOT EXECUTED 67840: 2f07 movel %d7,%sp@- <== NOT EXECUTED 67842: 2f0c movel %a4,%sp@- <== NOT EXECUTED 67844: 4eb9 0006 6cec jsr 66cec <== NOT EXECUTED assert( block_ptr ); 6784a: 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 ); 67850: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 67852: 4a80 tstl %d0 <== NOT EXECUTED 67854: 6700 0154 beqw 679aa <== 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; 67858: 2002 movel %d2,%d0 <== NOT EXECUTED 6785a: 9086 subl %d6,%d0 <== NOT EXECUTED 6785c: 2805 movel %d5,%d4 <== NOT EXECUTED 6785e: b085 cmpl %d5,%d0 <== NOT EXECUTED 67860: 6500 0096 bcsw 678f8 <== 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 ); 67864: 2f04 movel %d4,%sp@- <== NOT EXECUTED 67866: dc90 addl %a0@,%d6 <== NOT EXECUTED 67868: 2f06 movel %d6,%sp@- <== NOT EXECUTED dest += to_copy; 6786a: 2c0a movel %a2,%d6 <== NOT EXECUTED block++; 6786c: 2607 movel %d7,%d3 <== 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 ); 6786e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 67870: 4eb9 0007 29e0 jsr 729e0 <== NOT EXECUTED 67876: 2439 0008 7e00 movel 87e00 ,%d2 <== NOT EXECUTED dest += to_copy; 6787c: dc84 addl %d4,%d6 <== NOT EXECUTED block++; 6787e: 5283 addql #1,%d3 <== NOT EXECUTED my_length -= to_copy; 67880: 9a84 subl %d4,%d5 <== NOT EXECUTED 67882: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 67888: 6000 ff02 braw 6778c <== NOT EXECUTED if (the_jnode->type == IMFS_LINEAR_FILE) { unsigned char *file_ptr; file_ptr = (unsigned char *)the_jnode->info.linearfile.direct; if (my_length > (the_jnode->info.linearfile.size - start)) 6788c: 242c 004c movel %a4@(76),%d2 <== NOT EXECUTED 67890: 9483 subl %d3,%d2 <== NOT EXECUTED 67892: b1c2 cmpal %d2,%a0 <== NOT EXECUTED 67894: 6534 bcss 678ca <== NOT EXECUTED my_length = the_jnode->info.linearfile.size - start; memcpy(dest, &file_ptr[start], my_length); 67896: 2f02 movel %d2,%sp@- <== NOT EXECUTED 67898: d6ac 0050 addl %a4@(80),%d3 <== NOT EXECUTED 6789c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6789e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 678a0: 4eb9 0007 29e0 jsr 729e0 <== NOT EXECUTED IMFS_update_atime( the_jnode ); 678a6: 42a7 clrl %sp@- <== NOT EXECUTED 678a8: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 678ac: 4eb9 0004 6274 jsr 46274 <== NOT EXECUTED return my_length; 678b2: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 678b8: 2002 movel %d2,%d0 <== NOT EXECUTED if (my_length > (the_jnode->info.linearfile.size - start)) my_length = the_jnode->info.linearfile.size - start; memcpy(dest, &file_ptr[start], my_length); IMFS_update_atime( the_jnode ); 678ba: 296e fff8 003c movel %fp@(-8),%a4@(60) <== NOT EXECUTED } IMFS_update_atime( the_jnode ); return copied; } 678c0: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 678c6: 4e5e unlk %fp <== NOT EXECUTED 678c8: 4e75 rts <== NOT EXECUTED if (the_jnode->type == IMFS_LINEAR_FILE) { unsigned char *file_ptr; file_ptr = (unsigned char *)the_jnode->info.linearfile.direct; if (my_length > (the_jnode->info.linearfile.size - start)) 678ca: 2408 movel %a0,%d2 <== NOT EXECUTED my_length = the_jnode->info.linearfile.size - start; memcpy(dest, &file_ptr[start], my_length); 678cc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 678ce: d6ac 0050 addl %a4@(80),%d3 <== NOT EXECUTED 678d2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 678d4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 678d6: 4eb9 0007 29e0 jsr 729e0 <== NOT EXECUTED IMFS_update_atime( the_jnode ); 678dc: 42a7 clrl %sp@- <== NOT EXECUTED 678de: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 678e2: 4eb9 0004 6274 jsr 46274 <== NOT EXECUTED 678e8: 296e fff8 003c movel %fp@(-8),%a4@(60) <== NOT EXECUTED return my_length; 678ee: 2002 movel %d2,%d0 <== NOT EXECUTED 678f0: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 678f6: 60c8 bras 678c0 <== 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; 678f8: 2800 movel %d0,%d4 <== 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 ); 678fa: 2f04 movel %d4,%sp@- <== NOT EXECUTED 678fc: dc90 addl %a0@,%d6 <== NOT EXECUTED 678fe: 2f06 movel %d6,%sp@- <== NOT EXECUTED dest += to_copy; 67900: 2c0a movel %a2,%d6 <== NOT EXECUTED block++; 67902: 2607 movel %d7,%d3 <== 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 ); 67904: 2f0a movel %a2,%sp@- <== NOT EXECUTED 67906: 4eb9 0007 29e0 jsr 729e0 <== NOT EXECUTED 6790c: 2439 0008 7e00 movel 87e00 ,%d2 <== NOT EXECUTED dest += to_copy; 67912: dc84 addl %d4,%d6 <== NOT EXECUTED block++; 67914: 5283 addql #1,%d3 <== NOT EXECUTED my_length -= to_copy; 67916: 9a84 subl %d4,%d5 <== NOT EXECUTED 67918: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 6791e: 6000 fe6c braw 6778c <== NOT EXECUTED */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); assert( block_ptr ); 67922: 4879 0008 34f8 pea 834f8 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 67928: 4879 0008 3584 pea 83584 <__func__.5772> <== NOT EXECUTED 6792e: 4878 02a5 pea 2a5 <== NOT EXECUTED 67932: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 67938: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED * If there is nothing to read, then quick exit. */ my_length = length; if ( !my_length ) rtems_set_errno_and_return_minus_one( EINVAL ); 6793e: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 67944: 7616 moveq #22,%d3 <== NOT EXECUTED 67946: 2040 moveal %d0,%a0 <== NOT EXECUTED 67948: 2083 movel %d3,%a0@ <== NOT EXECUTED } IMFS_update_atime( the_jnode ); return copied; } 6794a: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 67950: 4e5e unlk %fp <== NOT EXECUTED * If there is nothing to read, then quick exit. */ my_length = length; if ( !my_length ) rtems_set_errno_and_return_minus_one( EINVAL ); 67952: 70ff moveq #-1,%d0 <== NOT EXECUTED } IMFS_update_atime( the_jnode ); return copied; } 67954: 4e75 rts <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 67956: 4879 0008 3475 pea 83475 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 6795c: 4879 0008 3584 pea 83584 <__func__.5772> <== NOT EXECUTED 67962: 4878 024a pea 24a <== NOT EXECUTED 67966: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 6796c: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE || 67972: 4879 0008 3502 pea 83502 <_POSIX_Threads_Default_attributes+0x226> <== NOT EXECUTED 67978: 4879 0008 3584 pea 83584 <__func__.5772> <== NOT EXECUTED 6797e: 4878 024f pea 24f <== NOT EXECUTED 67982: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 67988: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED /* * Error checks on arguments */ assert( dest ); 6798e: 4879 0008 354d pea 8354d <_POSIX_Threads_Default_attributes+0x271> <== NOT EXECUTED 67994: 4879 0008 3584 pea 83584 <__func__.5772> <== NOT EXECUTED 6799a: 4878 0258 pea 258 <== NOT EXECUTED 6799e: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 679a4: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED 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 ); assert( block_ptr ); 679aa: 4879 0008 34f8 pea 834f8 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 679b0: 4879 0008 3584 pea 83584 <__func__.5772> <== NOT EXECUTED 679b6: 4878 0294 pea 294 <== NOT EXECUTED 679ba: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 679c0: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); if ( my_length ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); assert( block_ptr ); 679c6: 4879 0008 34f8 pea 834f8 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 679cc: 4879 0008 3584 pea 83584 <__func__.5772> <== NOT EXECUTED 679d2: 4878 02b7 pea 2b7 <== NOT EXECUTED 679d6: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 679dc: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED 00066f48 : */ int IMFS_memfile_remove( IMFS_jnode_t *the_jnode ) { 66f48: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 66f4c: 48d7 1c7c moveml %d2-%d6/%a2-%a4,%sp@ <== NOT EXECUTED 66f50: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 66f54: 4a8c tstl %a4 <== NOT EXECUTED 66f56: 6700 0120 beqw 67078 <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 66f5a: 7005 moveq #5,%d0 <== NOT EXECUTED 66f5c: b0ac 0048 cmpl %a4@(72),%d0 <== NOT EXECUTED 66f60: 6600 0132 bnew 67094 <== 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; 66f64: 2839 0008 7e00 movel 87e00 ,%d4 <== NOT EXECUTED 66f6a: e48c lsrl #2,%d4 <== NOT EXECUTED * + triply indirect */ info = &the_jnode->info.file; if ( info->indirect ) { 66f6c: 4aac 0050 tstl %a4@(80) <== NOT EXECUTED 66f70: 670e beqs 66f80 <== NOT EXECUTED memfile_free_blocks_in_table( &info->indirect, to_free ); 66f72: 2f04 movel %d4,%sp@- <== NOT EXECUTED 66f74: 486c 0050 pea %a4@(80) <== NOT EXECUTED 66f78: 4eb9 0006 6ee0 jsr 66ee0 <== NOT EXECUTED 66f7e: 508f addql #8,%sp <== NOT EXECUTED } if ( info->doubly_indirect ) { 66f80: 206c 0054 moveal %a4@(84),%a0 <== NOT EXECUTED 66f84: 4a88 tstl %a0 <== NOT EXECUTED 66f86: 674e beqs 66fd6 <== NOT EXECUTED for ( i=0 ; i,%d3 <== NOT EXECUTED 66f8e: 2003 movel %d3,%d0 <== NOT EXECUTED 66f90: 47f9 0006 6ee0 lea 66ee0 ,%a3 <== NOT EXECUTED 66f96: e488 lsrl #2,%d0 <== NOT EXECUTED 66f98: 4a80 tstl %d0 <== NOT EXECUTED 66f9a: 6730 beqs 66fcc <== NOT EXECUTED 66f9c: 4282 clrl %d2 <== NOT EXECUTED 66f9e: 4281 clrl %d1 <== NOT EXECUTED if ( info->doubly_indirect[i] ) { 66fa0: 2001 movel %d1,%d0 <== NOT EXECUTED 66fa2: e588 lsll #2,%d0 <== NOT EXECUTED 66fa4: 4ab0 0800 tstl %a0@(00000000,%d0:l) <== NOT EXECUTED 66fa8: 6710 beqs 66fba <== NOT EXECUTED memfile_free_blocks_in_table( 66faa: 2f04 movel %d4,%sp@- <== NOT EXECUTED 66fac: 4870 0800 pea %a0@(00000000,%d0:l) <== NOT EXECUTED 66fb0: 4e93 jsr %a3@ <== NOT EXECUTED 66fb2: 2639 0008 7e00 movel 87e00 ,%d3 <== NOT EXECUTED 66fb8: 508f addql #8,%sp <== NOT EXECUTED memfile_free_blocks_in_table( &info->indirect, to_free ); } if ( info->doubly_indirect ) { for ( i=0 ; i <== NOT EXECUTED 66fc6: 206c 0054 moveal %a4@(84),%a0 <== NOT EXECUTED 66fca: 60d4 bras 66fa0 <== 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 ); 66fcc: 2f04 movel %d4,%sp@- <== NOT EXECUTED 66fce: 486c 0054 pea %a4@(84) <== NOT EXECUTED 66fd2: 4e93 jsr %a3@ <== NOT EXECUTED 66fd4: 508f addql #8,%sp <== NOT EXECUTED } if ( info->triply_indirect ) { 66fd6: 206c 0058 moveal %a4@(88),%a0 <== NOT EXECUTED 66fda: 4a88 tstl %a0 <== NOT EXECUTED 66fdc: 6700 008e beqw 6706c <== NOT EXECUTED for ( i=0 ; i,%d3 <== NOT EXECUTED 66fe6: 2003 movel %d3,%d0 <== NOT EXECUTED 66fe8: 47f9 0006 6ee0 lea 66ee0 ,%a3 <== NOT EXECUTED 66fee: e488 lsrl #2,%d0 <== NOT EXECUTED 66ff0: 4a80 tstl %d0 <== NOT EXECUTED 66ff2: 676e beqs 67062 <== NOT EXECUTED p = (block_p *) info->triply_indirect[i]; 66ff4: 2450 moveal %a0@,%a2 <== NOT EXECUTED 66ff6: 47f9 0006 6ee0 lea 66ee0 ,%a3 <== NOT EXECUTED if ( !p ) /* ensure we have a valid pointer */ 66ffc: 4a8a tstl %a2 <== NOT EXECUTED 66ffe: 6762 beqs 67062 <== NOT EXECUTED 67000: 4286 clrl %d6 <== NOT EXECUTED 67002: 4285 clrl %d5 <== NOT EXECUTED break; for ( j=0 ; j <== NOT EXECUTED 6700c: 4282 clrl %d2 <== NOT EXECUTED 6700e: 4281 clrl %d1 <== NOT EXECUTED if ( p[j] ) { 67010: 2001 movel %d1,%d0 <== NOT EXECUTED 67012: e588 lsll #2,%d0 <== NOT EXECUTED 67014: 4ab2 0800 tstl %a2@(00000000,%d0:l) <== NOT EXECUTED 67018: 6710 beqs 6702a <== NOT EXECUTED memfile_free_blocks_in_table( (block_p **)&p[j], to_free); 6701a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 6701c: 4872 0800 pea %a2@(00000000,%d0:l) <== NOT EXECUTED 67020: 4e93 jsr %a3@ <== NOT EXECUTED 67022: 2639 0008 7e00 movel 87e00 ,%d3 <== NOT EXECUTED 67028: 508f addql #8,%sp <== NOT EXECUTED if ( info->triply_indirect ) { for ( i=0 ; itriply_indirect[i]; if ( !p ) /* ensure we have a valid pointer */ break; for ( j=0 ; j <== NOT EXECUTED if ( p[j] ) { memfile_free_blocks_in_table( (block_p **)&p[j], to_free); } } memfile_free_blocks_in_table( 67036: 2f04 movel %d4,%sp@- <== NOT EXECUTED 67038: daac 0058 addl %a4@(88),%d5 <== NOT EXECUTED 6703c: 2f05 movel %d5,%sp@- <== NOT EXECUTED 6703e: 4e93 jsr %a3@ <== NOT EXECUTED memfile_free_blocks_in_table( &info->doubly_indirect, to_free ); } if ( info->triply_indirect ) { for ( i=0 ; i,%d3 <== NOT EXECUTED 67046: 2003 movel %d3,%d0 <== NOT EXECUTED 67048: 5286 addql #1,%d6 <== NOT EXECUTED 6704a: 508f addql #8,%sp <== NOT EXECUTED 6704c: e488 lsrl #2,%d0 <== NOT EXECUTED 6704e: bc80 cmpl %d0,%d6 <== NOT EXECUTED 67050: 6410 bccs 67062 <== NOT EXECUTED p = (block_p *) info->triply_indirect[i]; 67052: 206c 0058 moveal %a4@(88),%a0 <== NOT EXECUTED if ( !p ) /* ensure we have a valid pointer */ 67056: 2a06 movel %d6,%d5 <== NOT EXECUTED 67058: e58d lsll #2,%d5 <== NOT EXECUTED } if ( info->triply_indirect ) { for ( i=0 ; itriply_indirect[i]; 6705a: 2470 5800 moveal %a0@(00000000,%d5:l),%a2 <== NOT EXECUTED if ( !p ) /* ensure we have a valid pointer */ 6705e: 4a8a tstl %a2 <== NOT EXECUTED 67060: 66a2 bnes 67004 <== NOT EXECUTED } } memfile_free_blocks_in_table( (block_p **)&info->triply_indirect[i], to_free ); } memfile_free_blocks_in_table( 67062: 2f04 movel %d4,%sp@- <== NOT EXECUTED 67064: 486c 0058 pea %a4@(88) <== NOT EXECUTED 67068: 4e93 jsr %a3@ <== NOT EXECUTED 6706a: 508f addql #8,%sp <== NOT EXECUTED (block_p **)&info->triply_indirect, to_free ); } return 0; } 6706c: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED 67072: 4e5e unlk %fp <== NOT EXECUTED 67074: 4280 clrl %d0 <== NOT EXECUTED 67076: 4e75 rts <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 67078: 4879 0008 3475 pea 83475 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 6707e: 4879 0008 3596 pea 83596 <__func__.5716> <== NOT EXECUTED 67084: 4878 01ec pea 1ec <== NOT EXECUTED 67088: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 6708e: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 67094: 4879 0008 34c8 pea 834c8 <_POSIX_Threads_Default_attributes+0x1ec> <== NOT EXECUTED 6709a: 4879 0008 3596 pea 83596 <__func__.5716> <== NOT EXECUTED 670a0: 4878 01f0 pea 1f0 <== NOT EXECUTED 670a4: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 670aa: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED 00066eb8 : MEMFILE_STATIC int IMFS_memfile_remove_block( IMFS_jnode_t *the_jnode, unsigned int block ) { 66eb8: 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 ); 66ebc: 42a7 clrl %sp@- <== NOT EXECUTED 66ebe: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 66ec2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 66ec6: 4eb9 0006 6cec jsr 66cec <== NOT EXECUTED 66ecc: 2040 moveal %d0,%a0 <== NOT EXECUTED ptr = *block_entry_ptr; 66ece: 2010 movel %a0@,%d0 <== NOT EXECUTED *block_entry_ptr = 0; 66ed0: 4290 clrl %a0@ <== NOT EXECUTED memfile_free_block( ptr ); 66ed2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 66ed4: 4eb9 0006 6cae jsr 66cae <== NOT EXECUTED return 1; } 66eda: 4e5e unlk %fp <== NOT EXECUTED 66edc: 7001 moveq #1,%d0 <== NOT EXECUTED 66ede: 4e75 rts 000673ea : IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 673ea: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 673ee: 48d7 1cfc moveml %d2-%d7/%a2-%a4,%sp@ <== NOT EXECUTED 673f2: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 673f6: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 673fa: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 673fe: 246e 0014 moveal %fp@(20),%a2 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 67402: 4a8c tstl %a4 <== NOT EXECUTED 67404: 6700 01d8 beqw 675de <== NOT EXECUTED if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 67408: 7005 moveq #5,%d0 <== NOT EXECUTED 6740a: b0ac 0048 cmpl %a4@(72),%d0 <== NOT EXECUTED 6740e: 6600 01b2 bnew 675c2 <== NOT EXECUTED /* * Error check arguments */ assert( source ); 67412: 4a8b tstl %a3 <== NOT EXECUTED 67414: 6700 01e4 beqw 675fa <== NOT EXECUTED /* * If there is nothing to write, then quick exit. */ my_length = length; if ( !my_length ) 67418: 4a8a tstl %a2 <== NOT EXECUTED 6741a: 6700 018c beqw 675a8 <== 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; 6741e: 200a movel %a2,%d0 <== NOT EXECUTED 67420: d083 addl %d3,%d0 <== NOT EXECUTED if ( last_byte > the_jnode->info.file.size ) { 67422: b0ac 004c cmpl %a4@(76),%d0 <== NOT EXECUTED 67426: 6200 010c bhiw 67534 <== NOT EXECUTED /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 6742a: 2439 0008 7e00 movel 87e00 ,%d2 <== NOT EXECUTED 67430: 2e03 movel %d3,%d7 <== NOT EXECUTED 67432: 4c42 7800 remsl %d2,%d0,%d7 <== NOT EXECUTED 67436: 4c42 7807 remsl %d2,%d7,%d7 <== NOT EXECUTED 6743a: 2600 movel %d0,%d3 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 6743c: 2807 movel %d7,%d4 <== NOT EXECUTED if ( start_offset ) { 6743e: 4a80 tstl %d0 <== NOT EXECUTED 67440: 6700 00e8 beqw 6752a <== 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 ); 67444: 42a7 clrl %sp@- <== NOT EXECUTED 67446: 2f07 movel %d7,%sp@- <== NOT EXECUTED 67448: 2f0c movel %a4,%sp@- <== NOT EXECUTED 6744a: 4eb9 0006 6cec jsr 66cec <== NOT EXECUTED assert( block_ptr ); 67450: 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 ); 67456: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 67458: 4a80 tstl %d0 <== NOT EXECUTED 6745a: 6700 01ba beqw 67616 <== 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; 6745e: 2c02 movel %d2,%d6 <== NOT EXECUTED 67460: 9c83 subl %d3,%d6 <== NOT EXECUTED 67462: b5c6 cmpal %d6,%a2 <== NOT EXECUTED 67464: 6500 00fa bcsw 67560 <== 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 ); 67468: 2f06 movel %d6,%sp@- <== NOT EXECUTED src += to_copy; 6746a: 2a0b movel %a3,%d5 <== NOT EXECUTED block++; 6746c: 2807 movel %d7,%d4 <== 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 ); 6746e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 67470: d690 addl %a0@,%d3 <== NOT EXECUTED 67472: 2f03 movel %d3,%sp@- <== NOT EXECUTED 67474: 4eb9 0007 29e0 jsr 729e0 <== NOT EXECUTED 6747a: 2439 0008 7e00 movel 87e00 ,%d2 <== NOT EXECUTED src += to_copy; block++; my_length -= to_copy; 67480: 260a movel %a2,%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; 67482: da86 addl %d6,%d5 <== NOT EXECUTED block++; 67484: 5284 addql #1,%d4 <== NOT EXECUTED my_length -= to_copy; 67486: 9686 subl %d6,%d3 <== NOT EXECUTED copied += to_copy; 67488: 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 ) { 6748e: b483 cmpl %d3,%d2 <== NOT EXECUTED 67490: 6240 bhis 674d2 <== NOT EXECUTED 67492: 47f9 0006 6cec lea 66cec ,%a3 <== NOT EXECUTED if ( !block_ptr ) return copied; #if 0 fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ 0 ], src, to_copy ); 67498: 45f9 0007 29e0 lea 729e0 ,%a2 <== 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 ); 6749e: 42a7 clrl %sp@- <== NOT EXECUTED 674a0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 674a2: 2f0c movel %a4,%sp@- <== NOT EXECUTED 674a4: 4e93 jsr %a3@ <== NOT EXECUTED assert( block_ptr ); 674a6: 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 ); 674ac: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 674ae: 4a80 tstl %d0 <== NOT EXECUTED 674b0: 6700 00da beqw 6758c <== 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 ); 674b4: 2f02 movel %d2,%sp@- <== NOT EXECUTED src += to_copy; block++; 674b6: 5284 addql #1,%d4 <== NOT EXECUTED my_length -= to_copy; 674b8: 9682 subl %d2,%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 ); 674ba: 2f05 movel %d5,%sp@- <== NOT EXECUTED src += to_copy; 674bc: da82 addl %d2,%d5 <== 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 ); 674be: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 674c0: 4e92 jsr %a2@ <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 674c2: dc82 addl %d2,%d6 <== 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 ) { 674c4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 674ca: b6b9 0008 7e00 cmpl 87e00 ,%d3 <== NOT EXECUTED 674d0: 64cc bccs 6749e <== NOT EXECUTED */ assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); to_copy = my_length; if ( my_length ) { 674d2: 4a83 tstl %d3 <== NOT EXECUTED 674d4: 672e beqs 67504 <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 674d6: 42a7 clrl %sp@- <== NOT EXECUTED 674d8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 674da: 2f0c movel %a4,%sp@- <== NOT EXECUTED 674dc: 4eb9 0006 6cec jsr 66cec <== NOT EXECUTED assert( block_ptr ); 674e2: 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 ); 674e8: 2040 moveal %d0,%a0 <== NOT EXECUTED assert( block_ptr ); 674ea: 4a80 tstl %d0 <== NOT EXECUTED 674ec: 6700 0144 beqw 67632 <== 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 ); 674f0: 2f03 movel %d3,%sp@- <== NOT EXECUTED my_length = 0; copied += to_copy; 674f2: dc83 addl %d3,%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, my_length ); 674f4: 2f05 movel %d5,%sp@- <== NOT EXECUTED 674f6: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 674f8: 4eb9 0007 29e0 jsr 729e0 <== NOT EXECUTED my_length = 0; copied += to_copy; 674fe: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } IMFS_atime_mtime_update( the_jnode ); 67504: 42a7 clrl %sp@- <== NOT EXECUTED 67506: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 6750a: 4eb9 0004 6274 jsr 46274 <== NOT EXECUTED 67510: 222e fff8 movel %fp@(-8),%d1 <== NOT EXECUTED return copied; } 67514: 2006 movel %d6,%d0 <== NOT EXECUTED memcpy( &(*block_ptr)[ 0 ], src, my_length ); my_length = 0; copied += to_copy; } IMFS_atime_mtime_update( the_jnode ); 67516: 2941 003c movel %d1,%a4@(60) <== NOT EXECUTED 6751a: 508f addql #8,%sp <== NOT EXECUTED 6751c: 2941 0040 movel %d1,%a4@(64) <== NOT EXECUTED return copied; } 67520: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 67526: 4e5e unlk %fp <== NOT EXECUTED 67528: 4e75 rts <== NOT EXECUTED * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; if ( start_offset ) { 6752a: 260a movel %a2,%d3 <== NOT EXECUTED 6752c: 2a0b movel %a3,%d5 <== NOT EXECUTED 6752e: 4286 clrl %d6 <== NOT EXECUTED 67530: 6000 ff5c braw 6748e <== NOT EXECUTED * in memory file, then extend the length. */ last_byte = start + length; if ( last_byte > the_jnode->info.file.size ) { status = IMFS_memfile_extend( the_jnode, last_byte ); 67534: 2f00 movel %d0,%sp@- <== NOT EXECUTED 67536: 2f0c movel %a4,%sp@- <== NOT EXECUTED 67538: 4eb9 0006 721a jsr 6721a <== NOT EXECUTED if ( status ) 6753e: 508f addql #8,%sp <== NOT EXECUTED 67540: 4a80 tstl %d0 <== NOT EXECUTED 67542: 6700 fee6 beqw 6742a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 67546: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6754c: 7cff moveq #-1,%d6 <== NOT EXECUTED 6754e: 2040 moveal %d0,%a0 <== NOT EXECUTED } IMFS_atime_mtime_update( the_jnode ); return copied; } 67550: 2006 movel %d6,%d0 <== NOT EXECUTED 67552: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED last_byte = start + length; if ( last_byte > the_jnode->info.file.size ) { status = IMFS_memfile_extend( the_jnode, last_byte ); if ( status ) rtems_set_errno_and_return_minus_one( ENOSPC ); 67558: 721c moveq #28,%d1 <== NOT EXECUTED } IMFS_atime_mtime_update( the_jnode ); return copied; } 6755a: 4e5e unlk %fp <== NOT EXECUTED last_byte = start + length; if ( last_byte > the_jnode->info.file.size ) { status = IMFS_memfile_extend( the_jnode, last_byte ); if ( status ) rtems_set_errno_and_return_minus_one( ENOSPC ); 6755c: 2081 movel %d1,%a0@ <== NOT EXECUTED } IMFS_atime_mtime_update( the_jnode ); return copied; } 6755e: 4e75 rts <== 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; 67560: 2c0a movel %a2,%d6 <== 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 ); 67562: 2f06 movel %d6,%sp@- <== NOT EXECUTED src += to_copy; 67564: 2a0b movel %a3,%d5 <== NOT EXECUTED block++; 67566: 2807 movel %d7,%d4 <== 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 ); 67568: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6756a: d690 addl %a0@,%d3 <== NOT EXECUTED 6756c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6756e: 4eb9 0007 29e0 jsr 729e0 <== NOT EXECUTED 67574: 2439 0008 7e00 movel 87e00 ,%d2 <== NOT EXECUTED src += to_copy; block++; my_length -= to_copy; 6757a: 260a movel %a2,%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; 6757c: da86 addl %d6,%d5 <== NOT EXECUTED block++; 6757e: 5284 addql #1,%d4 <== NOT EXECUTED my_length -= to_copy; 67580: 9686 subl %d6,%d3 <== NOT EXECUTED copied += to_copy; 67582: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 67588: 6000 ff04 braw 6748e <== NOT EXECUTED */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); assert( block_ptr ); 6758c: 4879 0008 34f8 pea 834f8 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 67592: 4879 0008 3571 pea 83571 <__func__.5822> <== NOT EXECUTED 67598: 4878 032e pea 32e <== NOT EXECUTED 6759c: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 675a2: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED * If there is nothing to write, then quick exit. */ my_length = length; if ( !my_length ) rtems_set_errno_and_return_minus_one( EINVAL ); 675a8: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 675ae: 7416 moveq #22,%d2 <== NOT EXECUTED 675b0: 2040 moveal %d0,%a0 <== NOT EXECUTED 675b2: 7cff moveq #-1,%d6 <== NOT EXECUTED } IMFS_atime_mtime_update( the_jnode ); return copied; } 675b4: 2006 movel %d6,%d0 <== NOT EXECUTED * If there is nothing to write, then quick exit. */ my_length = length; if ( !my_length ) rtems_set_errno_and_return_minus_one( EINVAL ); 675b6: 2082 movel %d2,%a0@ <== NOT EXECUTED } IMFS_atime_mtime_update( the_jnode ); return copied; } 675b8: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 675be: 4e5e unlk %fp <== NOT EXECUTED 675c0: 4e75 rts <== NOT EXECUTED assert( the_jnode ); if ( !the_jnode ) rtems_set_errno_and_return_minus_one( EIO ); assert( the_jnode->type == IMFS_MEMORY_FILE ); 675c2: 4879 0008 34c8 pea 834c8 <_POSIX_Threads_Default_attributes+0x1ec> <== NOT EXECUTED 675c8: 4879 0008 3571 pea 83571 <__func__.5822> <== NOT EXECUTED 675ce: 4878 02e5 pea 2e5 <== NOT EXECUTED 675d2: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 675d8: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED /* * Perform internal consistency checks */ assert( the_jnode ); 675de: 4879 0008 3475 pea 83475 <_POSIX_Threads_Default_attributes+0x199> <== NOT EXECUTED 675e4: 4879 0008 3571 pea 83571 <__func__.5822> <== NOT EXECUTED 675ea: 4878 02e1 pea 2e1 <== NOT EXECUTED 675ee: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 675f4: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED /* * Error check arguments */ assert( source ); 675fa: 4879 0008 1174 pea 81174 <== NOT EXECUTED 67600: 4879 0008 3571 pea 83571 <__func__.5822> <== NOT EXECUTED 67606: 4878 02ed pea 2ed <== NOT EXECUTED 6760a: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 67610: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED 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 ); assert( block_ptr ); 67616: 4879 0008 34f8 pea 834f8 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 6761c: 4879 0008 3571 pea 83571 <__func__.5822> <== NOT EXECUTED 67622: 4878 031a pea 31a <== NOT EXECUTED 67626: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 6762c: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== 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 ); assert( block_ptr ); 67632: 4879 0008 34f8 pea 834f8 <_POSIX_Threads_Default_attributes+0x21c> <== NOT EXECUTED 67638: 4879 0008 3571 pea 83571 <__func__.5822> <== NOT EXECUTED 6763e: 4878 0344 pea 344 <== NOT EXECUTED 67642: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 67648: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED 0004a040 : const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 4a040: 4e56 ffb8 linkw %fp,#-72 <== NOT EXECUTED 4a044: 48d7 003c moveml %d2-%d5,%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 ); 4a048: 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 */ ) { 4a04c: 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 ); 4a050: 2a0e movel %fp,%d5 <== NOT EXECUTED 4a052: 0685 ffff ffcb addil #-53,%d5 <== NOT EXECUTED 4a058: 2f05 movel %d5,%sp@- <== NOT EXECUTED const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 4a05a: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 4a05e: 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 ); 4a062: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a066: 4eb9 0004 9dfc jsr 49dfc <== NOT EXECUTED /* * Figure out what type of IMFS node this is. */ if ( S_ISDIR(mode) ) 4a06c: 2004 movel %d4,%d0 <== NOT EXECUTED 4a06e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a074: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 4a07a: 0c80 0000 4000 cmpil #16384,%d0 <== NOT EXECUTED 4a080: 6752 beqs 4a0d4 <== NOT EXECUTED type = IMFS_DIRECTORY; else if ( S_ISREG(mode) ) 4a082: 0c80 0000 8000 cmpil #32768,%d0 <== NOT EXECUTED 4a088: 6744 beqs 4a0ce <== NOT EXECUTED type = IMFS_MEMORY_FILE; else if ( S_ISBLK(mode) || S_ISCHR(mode) ) { 4a08a: 0c80 0000 6000 cmpil #24576,%d0 <== NOT EXECUTED 4a090: 6708 beqs 4a09a <== NOT EXECUTED 4a092: 0c80 0000 2000 cmpil #8192,%d0 <== NOT EXECUTED 4a098: 663e bnes 4a0d8 <== NOT EXECUTED type = IMFS_DEVICE; rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor ); 4a09a: 7002 moveq #2,%d0 <== NOT EXECUTED 4a09c: 2d42 ffec movel %d2,%fp@(-20) <== NOT EXECUTED 4a0a0: 2d43 fff0 movel %d3,%fp@(-16) <== NOT EXECUTED /* * Allocate and fill in an IMFS jnode */ new_node = IMFS_create_node( 4a0a4: 486e ffec pea %fp@(-20) <== NOT EXECUTED 4a0a8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4a0aa: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4a0ac: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a0ae: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 4a0b2: 4eb9 0004 c7d0 jsr 4c7d0 <== NOT EXECUTED new_name, mode, &info ); if ( !new_node ) 4a0b8: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4a0be: 4a80 tstl %d0 <== NOT EXECUTED 4a0c0: 672e beqs 4a0f0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM ); return 0; } 4a0c2: 4cee 003c ffb8 moveml %fp@(-72),%d2-%d5 <== NOT EXECUTED 4a0c8: 4e5e unlk %fp <== NOT EXECUTED new_name, mode, &info ); if ( !new_node ) 4a0ca: 4280 clrl %d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM ); return 0; } 4a0cc: 4e75 rts <== NOT EXECUTED * Figure out what type of IMFS node this is. */ if ( S_ISDIR(mode) ) type = IMFS_DIRECTORY; else if ( S_ISREG(mode) ) 4a0ce: 303c 0005 movew #5,%d0 <== NOT EXECUTED 4a0d2: 60d0 bras 4a0a4 <== NOT EXECUTED type = IMFS_MEMORY_FILE; else if ( S_ISBLK(mode) || S_ISCHR(mode) ) { type = IMFS_DEVICE; rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor ); } else { rtems_set_errno_and_return_minus_one( EINVAL ); 4a0d4: 7001 moveq #1,%d0 <== NOT EXECUTED 4a0d6: 60cc bras 4a0a4 <== NOT EXECUTED 4a0d8: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4a0de: 7416 moveq #22,%d2 <== NOT EXECUTED 4a0e0: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a0e2: 2082 movel %d2,%a0@ <== NOT EXECUTED if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); return 0; } 4a0e4: 4cee 003c ffb8 moveml %fp@(-72),%d2-%d5 <== NOT EXECUTED 4a0ea: 4e5e unlk %fp <== NOT EXECUTED type = IMFS_MEMORY_FILE; else if ( S_ISBLK(mode) || S_ISCHR(mode) ) { type = IMFS_DEVICE; rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor ); } else { rtems_set_errno_and_return_minus_one( EINVAL ); 4a0ec: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); return 0; } 4a0ee: 4e75 rts <== NOT EXECUTED mode, &info ); if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); 4a0f0: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED return 0; } 4a0f6: 4cee 003c ffb8 moveml %fp@(-72),%d2-%d5 <== NOT EXECUTED mode, &info ); if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); 4a0fc: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a0fe: 720c moveq #12,%d1 <== NOT EXECUTED return 0; } 4a100: 4e5e unlk %fp <== NOT EXECUTED mode, &info ); if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); 4a102: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a104: 2081 movel %d1,%a0@ <== NOT EXECUTED return 0; } 4a106: 4e75 rts 0004583c : #include int IMFS_mount( rtems_filesystem_mount_table_entry_t *mt_entry ) { 4583c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45840: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED IMFS_jnode_t *node; node = mt_entry->mt_point_node.node_access; 45844: 2069 0008 moveal %a1@(8),%a0 <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 45848: 7001 moveq #1,%d0 <== NOT EXECUTED 4584a: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 4584e: 660a bnes 4585a <== 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; 45850: 2149 0058 movel %a1,%a0@(88) <== NOT EXECUTED return 0; } 45854: 4e5e unlk %fp <== 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; 45856: 4280 clrl %d0 <== NOT EXECUTED return 0; } 45858: 4e75 rts <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 4585a: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 45860: 2040 moveal %d0,%a0 <== NOT EXECUTED 45862: 7014 moveq #20,%d0 <== NOT EXECUTED 45864: 2080 movel %d0,%a0@ <== NOT EXECUTED * the mounted file system. */ node->info.directory.mt_fs = mt_entry; return 0; } 45866: 4e5e unlk %fp <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 45868: 70ff moveq #-1,%d0 <== NOT EXECUTED * the mounted file system. */ node->info.directory.mt_fs = mt_entry; return 0; } 4586a: 4e75 rts 0004a108 : #include "imfs.h" rtems_filesystem_node_types_t IMFS_node_type( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 4a108: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a10c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4a110: 2250 moveal %a0@,%a1 <== NOT EXECUTED IMFS_jnode_t *node; node = pathloc->node_access; return node->type; } 4a112: 4e5e unlk %fp <== NOT EXECUTED 4a114: 2029 0048 movel %a1@(72),%d0 <== NOT EXECUTED 4a118: 4e75 rts <== NOT EXECUTED ... 00043d82 : */ void IMFS_print_jnode( IMFS_jnode_t *the_jnode ) { 43d82: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43d86: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43d88: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED assert( the_jnode ); 43d8c: 4a8a tstl %a2 <== NOT EXECUTED 43d8e: 6700 01b8 beqw 43f48 <== NOT EXECUTED fprintf(stdout, "%s", the_jnode->name ); 43d92: 2079 0005 ee30 moveal 5ee30 <_impure_ptr>,%a0 <== NOT EXECUTED 43d98: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 43d9c: 486a 000c pea %a2@(12) <== NOT EXECUTED 43da0: 4eb9 0005 1cc2 jsr 51cc2 <== NOT EXECUTED switch( the_jnode->type ) { 43da6: 222a 0048 movel %a2@(72),%d1 <== NOT EXECUTED 43daa: 508f addql #8,%sp <== NOT EXECUTED 43dac: 7006 moveq #6,%d0 <== NOT EXECUTED 43dae: b081 cmpl %d1,%d0 <== NOT EXECUTED 43db0: 6434 bccs 43de6 <== NOT EXECUTED fprintf(stdout, " links not printed\n" ); assert(0); break; default: fprintf(stdout, " bad type %d\n", the_jnode->type ); 43db2: 2f01 movel %d1,%sp@- <== NOT EXECUTED 43db4: 4879 0005 ce06 pea 5ce06 <== NOT EXECUTED 43dba: 2079 0005 ee30 moveal 5ee30 <_impure_ptr>,%a0 <== NOT EXECUTED 43dc0: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 43dc4: 4eb9 0005 1b60 jsr 51b60 <== NOT EXECUTED assert(0); 43dca: 4879 0005 c5c8 pea 5c5c8 <== NOT EXECUTED 43dd0: 4879 0005 cef6 pea 5cef6 <__func__.6215> <== NOT EXECUTED 43dd6: 4878 0067 pea 67 <== NOT EXECUTED 43dda: 4879 0005 cd78 pea 5cd78 <== NOT EXECUTED 43de0: 4eb9 0004 476c jsr 4476c <__assert_func> <== NOT EXECUTED ) { assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); switch( the_jnode->type ) { 43de6: 303b 1a08 movew %pc@(43df0 ,%d1:l:2),%d0 <== NOT EXECUTED 43dea: 48c0 extl %d0 <== NOT EXECUTED 43dec: 4efb 0802 jmp %pc@(43df0 ,%d0:l) <== NOT EXECUTED 43df0: ffc2 0177702 <== NOT EXECUTED 43df2: 012c 00f2 btst %d0,%a4@(242) <== NOT EXECUTED 43df6: 00b8 007e 0048 oril #8257608,%d0 <== NOT EXECUTED 43dfc: 000e 016 <== NOT EXECUTED fprintf(stdout, " (device %" PRId32 ", %" PRId32 ")", the_jnode->info.device.major, the_jnode->info.device.minor ); break; case IMFS_LINEAR_FILE: fprintf(stdout, " (file %" PRId32 " %p)", 43dfe: 2f2a 0050 movel %a2@(80),%sp@- <== NOT EXECUTED 43e02: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 43e06: 4879 0005 cdd7 pea 5cdd7 <== NOT EXECUTED 43e0c: 2079 0005 ee30 moveal 5ee30 <_impure_ptr>,%a0 <== NOT EXECUTED 43e12: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 43e16: 4eb9 0005 1b60 jsr 51b60 <== NOT EXECUTED fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); } 43e1c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43e20: 203c 0005 d4d9 movel #382169,%d0 <== NOT EXECUTED fprintf(stdout, " (device %" PRId32 ", %" PRId32 ")", the_jnode->info.device.major, the_jnode->info.device.minor ); break; case IMFS_LINEAR_FILE: fprintf(stdout, " (file %" PRId32 " %p)", 43e26: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43e2c: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 43e30: 4e5e unlk %fp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43e32: 4ef9 0005 33e4 jmp 533e4 <== NOT EXECUTED the_jnode->info.file.indirect, the_jnode->info.file.doubly_indirect, the_jnode->info.file.triply_indirect ); #else fprintf(stdout, " (file %" PRId32 ")", 43e38: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 43e3c: 4879 0005 cde6 pea 5cde6 <== NOT EXECUTED 43e42: 2079 0005 ee30 moveal 5ee30 <_impure_ptr>,%a0 <== NOT EXECUTED 43e48: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 43e4c: 4eb9 0005 1b60 jsr 51b60 <== NOT EXECUTED fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); } 43e52: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43e56: 203c 0005 d4d9 movel #382169,%d0 <== NOT EXECUTED the_jnode->info.file.indirect, the_jnode->info.file.doubly_indirect, the_jnode->info.file.triply_indirect ); #else fprintf(stdout, " (file %" PRId32 ")", 43e5c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43e62: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 43e66: 4e5e unlk %fp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43e68: 4ef9 0005 33e4 jmp 533e4 <== NOT EXECUTED fprintf(stdout, " links not printed\n" ); assert(0); break; case IMFS_SYM_LINK: fprintf(stdout, " links not printed\n" ); 43e6e: 2079 0005 ee30 moveal 5ee30 <_impure_ptr>,%a0 <== NOT EXECUTED 43e74: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 43e78: 4878 0013 pea 13 <== NOT EXECUTED 43e7c: 4878 0001 pea 1 <== NOT EXECUTED 43e80: 4879 0005 cdf2 pea 5cdf2 <== NOT EXECUTED 43e86: 4eb9 0005 2684 jsr 52684 <== NOT EXECUTED assert(0); 43e8c: 4879 0005 c5c8 pea 5c5c8 <== NOT EXECUTED 43e92: 4879 0005 cef6 pea 5cef6 <__func__.6215> <== NOT EXECUTED 43e98: 4878 0062 pea 62 <== NOT EXECUTED 43e9c: 4879 0005 cd78 pea 5cd78 <== NOT EXECUTED 43ea2: 4eb9 0004 476c jsr 4476c <__assert_func> <== NOT EXECUTED (uint32_t)the_jnode->info.file.size ); #endif break; case IMFS_HARD_LINK: fprintf(stdout, " links not printed\n" ); 43ea8: 2079 0005 ee30 moveal 5ee30 <_impure_ptr>,%a0 <== NOT EXECUTED 43eae: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 43eb2: 4878 0013 pea 13 <== NOT EXECUTED 43eb6: 4878 0001 pea 1 <== NOT EXECUTED 43eba: 4879 0005 cdf2 pea 5cdf2 <== NOT EXECUTED 43ec0: 4eb9 0005 2684 jsr 52684 <== NOT EXECUTED assert(0); 43ec6: 4879 0005 c5c8 pea 5c5c8 <== NOT EXECUTED 43ecc: 4879 0005 cef6 pea 5cef6 <__func__.6215> <== NOT EXECUTED 43ed2: 4878 005d pea 5d <== NOT EXECUTED 43ed6: 4879 0005 cd78 pea 5cd78 <== NOT EXECUTED 43edc: 4eb9 0004 476c jsr 4476c <__assert_func> <== NOT EXECUTED case IMFS_DIRECTORY: fprintf(stdout, "/" ); break; case IMFS_DEVICE: fprintf(stdout, " (device %" PRId32 ", %" PRId32 ")", 43ee2: 2f2a 0050 movel %a2@(80),%sp@- <== NOT EXECUTED 43ee6: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 43eea: 4879 0005 cdc4 pea 5cdc4 <== NOT EXECUTED 43ef0: 2079 0005 ee30 moveal 5ee30 <_impure_ptr>,%a0 <== NOT EXECUTED 43ef6: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 43efa: 4eb9 0005 1b60 jsr 51b60 <== NOT EXECUTED fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); } 43f00: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43f04: 203c 0005 d4d9 movel #382169,%d0 <== NOT EXECUTED case IMFS_DIRECTORY: fprintf(stdout, "/" ); break; case IMFS_DEVICE: fprintf(stdout, " (device %" PRId32 ", %" PRId32 ")", 43f0a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43f10: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 43f14: 4e5e unlk %fp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43f16: 4ef9 0005 33e4 jmp 533e4 <== NOT EXECUTED assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); switch( the_jnode->type ) { case IMFS_DIRECTORY: fprintf(stdout, "/" ); 43f1c: 2079 0005 ee30 moveal 5ee30 <_impure_ptr>,%a0 <== NOT EXECUTED 43f22: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 43f26: 4878 002f pea 2f <== NOT EXECUTED 43f2a: 4eb9 0005 1ba0 jsr 51ba0 <== NOT EXECUTED fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); } 43f30: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43f34: 203c 0005 d4d9 movel #382169,%d0 <== NOT EXECUTED assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); switch( the_jnode->type ) { case IMFS_DIRECTORY: fprintf(stdout, "/" ); 43f3a: 508f addql #8,%sp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43f3c: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 43f40: 4e5e unlk %fp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); assert(0); break; } puts(""); 43f42: 4ef9 0005 33e4 jmp 533e4 <== NOT EXECUTED void IMFS_print_jnode( IMFS_jnode_t *the_jnode ) { assert( the_jnode ); 43f48: 4879 0005 cd6e pea 5cd6e <== NOT EXECUTED 43f4e: 4879 0005 cef6 pea 5cef6 <__func__.6215> <== NOT EXECUTED 43f54: 4878 0038 pea 38 <== NOT EXECUTED 43f58: 4879 0005 cd78 pea 5cd78 <== NOT EXECUTED 43f5e: 4eb9 0004 476c jsr 4476c <__assert_func> <== NOT EXECUTED 00045880 : int IMFS_readlink( rtems_filesystem_location_info_t *loc, char *buf, /* OUT */ size_t bufsize ) { 45880: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 45884: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45888: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED IMFS_jnode_t *node; int i; node = loc->node_access; 4588c: 2450 moveal %a0@,%a2 <== NOT EXECUTED int IMFS_readlink( rtems_filesystem_location_info_t *loc, char *buf, /* OUT */ size_t bufsize ) { 4588e: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 45892: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED IMFS_jnode_t *node; int i; node = loc->node_access; if ( node->type != IMFS_SYM_LINK ) 45896: 7004 moveq #4,%d0 <== NOT EXECUTED 45898: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 4589c: 663c bnes 458da <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) 4589e: 4a82 tstl %d2 <== NOT EXECUTED 458a0: 672c beqs 458ce <== NOT EXECUTED 458a2: 206a 004c moveal %a2@(76),%a0 <== NOT EXECUTED 458a6: 1210 moveb %a0@,%d1 <== NOT EXECUTED 458a8: 6724 beqs 458ce <== NOT EXECUTED int i; node = loc->node_access; if ( node->type != IMFS_SYM_LINK ) rtems_set_errno_and_return_minus_one( EINVAL ); 458aa: 4280 clrl %d0 <== NOT EXECUTED 458ac: 93c9 subal %a1,%a1 <== NOT EXECUTED for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) buf[i] = node->info.sym_link.name[i]; 458ae: 1781 9800 moveb %d1,%a3@(00000000,%a1: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++ ) 458b2: 5280 addql #1,%d0 <== NOT EXECUTED 458b4: 2240 moveal %d0,%a1 <== NOT EXECUTED 458b6: b082 cmpl %d2,%d0 <== NOT EXECUTED 458b8: 640a bccs 458c4 <== NOT EXECUTED 458ba: 206a 004c moveal %a2@(76),%a0 <== NOT EXECUTED 458be: 1230 0800 moveb %a0@(00000000,%d0:l),%d1 <== NOT EXECUTED 458c2: 66ea bnes 458ae <== NOT EXECUTED buf[i] = node->info.sym_link.name[i]; return i; } 458c4: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 458ca: 4e5e unlk %fp <== NOT EXECUTED 458cc: 4e75 rts <== NOT EXECUTED 458ce: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 458d4: 4e5e unlk %fp <== 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++ ) 458d6: 4280 clrl %d0 <== NOT EXECUTED buf[i] = node->info.sym_link.name[i]; return i; } 458d8: 4e75 rts <== NOT EXECUTED int i; node = loc->node_access; if ( node->type != IMFS_SYM_LINK ) rtems_set_errno_and_return_minus_one( EINVAL ); 458da: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 458e0: 2040 moveal %d0,%a0 <== NOT EXECUTED 458e2: 7016 moveq #22,%d0 <== NOT EXECUTED for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) buf[i] = node->info.sym_link.name[i]; return i; } 458e4: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED int i; node = loc->node_access; if ( node->type != IMFS_SYM_LINK ) rtems_set_errno_and_return_minus_one( EINVAL ); 458ea: 2080 movel %d0,%a0@ <== NOT EXECUTED for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) buf[i] = node->info.sym_link.name[i]; return i; } 458ec: 4e5e unlk %fp <== NOT EXECUTED int i; node = loc->node_access; if ( node->type != IMFS_SYM_LINK ) rtems_set_errno_and_return_minus_one( EINVAL ); 458ee: 70ff moveq #-1,%d0 <== NOT EXECUTED for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) buf[i] = node->info.sym_link.name[i]; return i; } 458f0: 4e75 rts <== NOT EXECUTED ... 0004a11c : */ int IMFS_rmnod( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 4a11c: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 4a120: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a122: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4a126: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 4a128: 2453 moveal %a3@,%a2 <== NOT EXECUTED /* * Take the node out of the parent's chain that contains this node */ if ( the_jnode->Parent != NULL ) { 4a12a: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 4a12e: 670e beqs 4a13e <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void rtems_chain_extract( rtems_chain_node *the_node ) { _Chain_Extract( the_node ); 4a130: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a132: 4eb9 0004 bb70 jsr 4bb70 <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( (rtems_chain_node *) the_jnode ); the_jnode->Parent = NULL; 4a138: 588f addql #4,%sp <== NOT EXECUTED 4a13a: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED /* * Decrement the link counter and see if we can free the space. */ the_jnode->st_nlink--; 4a13e: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 4a142: 5380 subql #1,%d0 <== NOT EXECUTED 4a144: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( the_jnode ); 4a148: 42a7 clrl %sp@- <== NOT EXECUTED 4a14a: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4a14e: 4eb9 0004 a7b0 jsr 4a7b0 <== NOT EXECUTED 4a154: 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) ) { 4a15a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a15c: 4eb9 0004 a88e jsr 4a88e <== NOT EXECUTED 4a162: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a168: 4a80 tstl %d0 <== NOT EXECUTED 4a16a: 6628 bnes 4a194 <== NOT EXECUTED 4a16c: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 4a170: 6622 bnes 4a194 <== NOT EXECUTED /* * Is rtems_filesystem_current this node? */ if ( rtems_filesystem_current.node_access == pathloc->node_access ) 4a172: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED 4a178: 2653 moveal %a3@,%a3 <== NOT EXECUTED 4a17a: b7e8 0004 cmpal %a0@(4),%a3 <== NOT EXECUTED 4a17e: 6736 beqs 4a1b6 <== NOT EXECUTED 4a180: 47f9 0004 a5fc lea 4a5fc ,%a3 <== NOT EXECUTED /* * Free memory associated with a memory file. */ if ( the_jnode->type == IMFS_SYM_LINK ) { 4a186: 7004 moveq #4,%d0 <== NOT EXECUTED 4a188: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 4a18c: 6714 beqs 4a1a2 <== NOT EXECUTED if ( the_jnode->info.sym_link.name ) free( (void*) the_jnode->info.sym_link.name ); } free( the_jnode ); 4a18e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a190: 4e93 jsr %a3@ <== NOT EXECUTED 4a192: 588f addql #4,%sp <== NOT EXECUTED } return 0; } 4a194: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 4a198: 266e fff4 moveal %fp@(-12),%a3 <== NOT EXECUTED 4a19c: 4e5e unlk %fp <== NOT EXECUTED 4a19e: 4280 clrl %d0 <== NOT EXECUTED 4a1a0: 4e75 rts <== NOT EXECUTED /* * Free memory associated with a memory file. */ if ( the_jnode->type == IMFS_SYM_LINK ) { if ( the_jnode->info.sym_link.name ) 4a1a2: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 4a1a6: 67e6 beqs 4a18e <== NOT EXECUTED free( (void*) the_jnode->info.sym_link.name ); 4a1a8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a1aa: 4e93 jsr %a3@ <== NOT EXECUTED 4a1ac: 588f addql #4,%sp <== NOT EXECUTED } free( the_jnode ); 4a1ae: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a1b0: 4e93 jsr %a3@ <== NOT EXECUTED 4a1b2: 588f addql #4,%sp <== NOT EXECUTED 4a1b4: 60de bras 4a194 <== NOT EXECUTED /* * Is rtems_filesystem_current this node? */ if ( rtems_filesystem_current.node_access == pathloc->node_access ) rtems_filesystem_current.node_access = NULL; 4a1b6: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED 4a1ba: 47f9 0004 a5fc lea 4a5fc ,%a3 <== NOT EXECUTED /* * Free memory associated with a memory file. */ if ( the_jnode->type == IMFS_SYM_LINK ) { 4a1c0: 7004 moveq #4,%d0 <== NOT EXECUTED 4a1c2: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 4a1c6: 66c6 bnes 4a18e <== NOT EXECUTED 4a1c8: 60d8 bras 4a1a2 <== NOT EXECUTED ... 0004a1cc : int IMFS_stat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 4a1cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a1d0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; IMFS_device_t *io; the_jnode = loc->node_access; 4a1d4: 2050 moveal %a0@,%a0 <== NOT EXECUTED int IMFS_stat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 4a1d6: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED IMFS_device_t *io; the_jnode = loc->node_access; switch ( the_jnode->type ) { 4a1da: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED 4a1de: 7204 moveq #4,%d1 <== NOT EXECUTED 4a1e0: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a1e2: 6700 00a2 beqw 4a286 <== NOT EXECUTED 4a1e6: 6c1a bges 4a202 <== NOT EXECUTED 4a1e8: 7206 moveq #6,%d1 <== NOT EXECUTED 4a1ea: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a1ec: 6c5e bges 4a24c <== NOT EXECUTED case IMFS_SYM_LINK: buf->st_size = 0; break; default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 4a1ee: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; return 0; } 4a1f4: 4e5e unlk %fp <== NOT EXECUTED case IMFS_SYM_LINK: buf->st_size = 0; break; default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 4a1f6: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a1f8: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a1fa: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; return 0; } 4a200: 4e75 rts <== NOT EXECUTED IMFS_device_t *io; the_jnode = loc->node_access; switch ( the_jnode->type ) { 4a202: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 4a206: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a208: 66e4 bnes 4a1ee <== NOT EXECUTED case IMFS_DEVICE: io = &the_jnode->info.device; buf->st_dev = rtems_filesystem_make_dev_t( io->major, io->minor ); 4a20a: 2028 0050 movel %a0@(80),%d0 <== NOT EXECUTED 4a20e: 22a8 004c movel %a0@(76),%a1@ <== 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; 4a212: 3368 0032 0010 movew %a0@(50),%a1@(16) <== NOT EXECUTED buf->st_ino = the_jnode->st_ino; 4a218: 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; 4a21e: 2368 003c 0022 movel %a0@(60),%a1@(34) <== 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; 4a224: 3368 0038 0012 movew %a0@(56),%a1@(18) <== NOT EXECUTED switch ( the_jnode->type ) { case IMFS_DEVICE: io = &the_jnode->info.device; buf->st_dev = rtems_filesystem_make_dev_t( io->major, io->minor ); 4a22a: 2340 0004 movel %d0,%a1@(4) <== 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; 4a22e: 4280 clrl %d0 <== 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; 4a230: 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; buf->st_gid = the_jnode->st_gid; 4a236: 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; 4a23c: 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; 4a242: 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; } 4a248: 4e5e unlk %fp <== NOT EXECUTED 4a24a: 4e75 rts <== 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; 4a24c: 4280 clrl %d0 <== NOT EXECUTED buf->st_dev = rtems_filesystem_make_dev_t( io->major, io->minor ); break; case IMFS_LINEAR_FILE: case IMFS_MEMORY_FILE: buf->st_size = the_jnode->info.file.size; 4a24e: 2368 004c 001e movel %a0@(76),%a1@(30) <== NOT EXECUTED break; } buf->st_mode = the_jnode->st_mode; buf->st_nlink = the_jnode->st_nlink; buf->st_ino = the_jnode->st_ino; 4a254: 2368 0034 0008 movel %a0@(52),%a1@(8) <== 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; 4a25a: 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; 4a260: 2368 003c 0022 movel %a0@(60),%a1@(34) <== 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; 4a266: 3368 0038 0012 movew %a0@(56),%a1@(18) <== NOT EXECUTED buf->st_gid = the_jnode->st_gid; buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; 4a26c: 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; buf->st_gid = the_jnode->st_gid; 4a272: 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; 4a278: 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; 4a27e: 2368 002e 000c movel %a0@(46),%a1@(12) <== NOT EXECUTED 4a284: 60c2 bras 4a248 <== NOT EXECUTED case IMFS_MEMORY_FILE: buf->st_size = the_jnode->info.file.size; break; case IMFS_SYM_LINK: buf->st_size = 0; 4a286: 42a9 001e clrl %a1@(30) <== 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; 4a28a: 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; 4a28c: 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; 4a292: 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; 4a298: 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; 4a29e: 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; 4a2a4: 3368 0038 0012 movew %a0@(56),%a1@(18) <== NOT EXECUTED 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; 4a2aa: 2368 0044 0032 movel %a0@(68),%a1@(50) <== 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; buf->st_gid = the_jnode->st_gid; 4a2b0: 3368 003a 0014 movew %a0@(58),%a1@(20) <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( ENOTSUP ); break; } buf->st_mode = the_jnode->st_mode; 4a2b6: 2368 002e 000c movel %a0@(46),%a1@(12) <== NOT EXECUTED 4a2bc: 608a bras 4a248 <== NOT EXECUTED ... 000458f4 : int IMFS_symlink( rtems_filesystem_location_info_t *parent_loc, const char *link_name, const char *node_name ) { 458f4: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 458f8: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Remove any separators at the end of the string. */ IMFS_get_token( node_name, new_name, &i ); 458fa: 240e movel %fp,%d2 <== NOT EXECUTED 458fc: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45900: 0682 ffff ffcb addil #-53,%d2 <== NOT EXECUTED 45906: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45908: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4590c: 4eb9 0004 5458 jsr 45458 <== NOT EXECUTED /* * Duplicate link name */ info.sym_link.name = strdup( link_name); 45912: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45916: 4eb9 0007 50bc jsr 750bc <== NOT EXECUTED if (info.sym_link.name == NULL) { 4591c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED /* * Duplicate link name */ info.sym_link.name = strdup( link_name); 45922: 2d40 ffec movel %d0,%fp@(-20) <== NOT EXECUTED if (info.sym_link.name == NULL) { 45926: 672e beqs 45956 <== NOT EXECUTED /* * Create a new link node. */ new_node = IMFS_create_node( 45928: 486e ffec pea %fp@(-20) <== NOT EXECUTED 4592c: 2f3c 0000 a1ff movel #41471,%sp@- <== NOT EXECUTED 45932: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45934: 4878 0004 pea 4 <== NOT EXECUTED 45938: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4593c: 4eb9 0005 ee0c jsr 5ee0c <== NOT EXECUTED new_name, ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if (new_node == NULL) { 45942: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 45948: 4a80 tstl %d0 <== NOT EXECUTED 4594a: 6720 beqs 4596c <== NOT EXECUTED free( info.sym_link.name); rtems_set_errno_and_return_minus_one( ENOMEM); } return 0; } 4594c: 242e ffc4 movel %fp@(-60),%d2 <== NOT EXECUTED 45950: 4e5e unlk %fp <== NOT EXECUTED new_name, ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if (new_node == NULL) { 45952: 4280 clrl %d0 <== NOT EXECUTED free( info.sym_link.name); rtems_set_errno_and_return_minus_one( ENOMEM); } return 0; } 45954: 4e75 rts <== NOT EXECUTED * Duplicate link name */ info.sym_link.name = strdup( link_name); if (info.sym_link.name == NULL) { rtems_set_errno_and_return_minus_one( ENOMEM); 45956: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 4595c: 740c moveq #12,%d2 <== NOT EXECUTED 4595e: 2040 moveal %d0,%a0 <== NOT EXECUTED 45960: 2082 movel %d2,%a0@ <== NOT EXECUTED free( info.sym_link.name); rtems_set_errno_and_return_minus_one( ENOMEM); } return 0; } 45962: 242e ffc4 movel %fp@(-60),%d2 <== NOT EXECUTED 45966: 4e5e unlk %fp <== NOT EXECUTED * Duplicate link name */ info.sym_link.name = strdup( link_name); if (info.sym_link.name == NULL) { rtems_set_errno_and_return_minus_one( ENOMEM); 45968: 70ff moveq #-1,%d0 <== NOT EXECUTED free( info.sym_link.name); rtems_set_errno_and_return_minus_one( ENOMEM); } return 0; } 4596a: 4e75 rts <== NOT EXECUTED ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if (new_node == NULL) { free( info.sym_link.name); 4596c: 2f2e ffec movel %fp@(-20),%sp@- <== NOT EXECUTED 45970: 4eb9 0004 61e4 jsr 461e4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM); 45976: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED } return 0; } 4597c: 242e ffc4 movel %fp@(-60),%d2 <== NOT EXECUTED &info ); if (new_node == NULL) { free( info.sym_link.name); rtems_set_errno_and_return_minus_one( ENOMEM); 45980: 588f addql #4,%sp <== NOT EXECUTED 45982: 2040 moveal %d0,%a0 <== NOT EXECUTED 45984: 720c moveq #12,%d1 <== NOT EXECUTED } return 0; } 45986: 4e5e unlk %fp <== NOT EXECUTED &info ); if (new_node == NULL) { free( info.sym_link.name); rtems_set_errno_and_return_minus_one( ENOMEM); 45988: 70ff moveq #-1,%d0 <== NOT EXECUTED 4598a: 2081 movel %d1,%a0@ <== NOT EXECUTED } return 0; } 4598c: 4e75 rts <== NOT EXECUTED ... 00045990 : #include int IMFS_unlink( rtems_filesystem_location_info_t *loc /* IN */ ) { 45990: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 45994: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 45998: 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; 4599c: 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 ) { 4599e: 7003 moveq #3,%d0 <== NOT EXECUTED 459a0: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 459a4: 6662 bnes 45a08 <== NOT EXECUTED if ( !node->info.hard_link.link_node ) 459a6: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 459aa: 6774 beqs 45a20 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); the_link = *loc; 459ac: 41eb 0004 lea %a3@(4),%a0 <== NOT EXECUTED 459b0: 2d58 ffec movel %a0@+,%fp@(-20) <== NOT EXECUTED the_link.node_access = node->info.hard_link.link_node; IMFS_Set_handlers( &the_link ); 459b4: 240e movel %fp,%d2 <== 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) 459b6: 7601 moveq #1,%d3 <== NOT EXECUTED if ( node->type == IMFS_HARD_LINK ) { if ( !node->info.hard_link.link_node ) rtems_set_errno_and_return_minus_one( EINVAL ); the_link = *loc; 459b8: 2d4a ffe8 movel %a2,%fp@(-24) <== NOT EXECUTED the_link.node_access = node->info.hard_link.link_node; IMFS_Set_handlers( &the_link ); 459bc: 0682 ffff ffe8 addil #-24,%d2 <== NOT EXECUTED if ( node->type == IMFS_HARD_LINK ) { if ( !node->info.hard_link.link_node ) rtems_set_errno_and_return_minus_one( EINVAL ); the_link = *loc; 459c2: 2d58 fff0 movel %a0@+,%fp@(-16) <== NOT EXECUTED 459c6: 2d50 fff4 movel %a0@,%fp@(-12) <== NOT EXECUTED the_link.node_access = node->info.hard_link.link_node; 459ca: 2d40 ffe8 movel %d0,%fp@(-24) <== NOT EXECUTED IMFS_Set_handlers( &the_link ); 459ce: 2f02 movel %d2,%sp@- <== NOT EXECUTED 459d0: 4eb9 0005 ef60 jsr 5ef60 <== 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) 459d6: 206a 004c moveal %a2@(76),%a0 <== NOT EXECUTED 459da: 4280 clrl %d0 <== NOT EXECUTED 459dc: 3228 0032 movew %a0@(50),%d1 <== NOT EXECUTED 459e0: 588f addql #4,%sp <== NOT EXECUTED 459e2: 3001 movew %d1,%d0 <== NOT EXECUTED 459e4: b680 cmpl %d0,%d3 <== NOT EXECUTED 459e6: 6750 beqs 45a38 <== NOT EXECUTED if ( result != 0 ) return -1; } else { node->info.hard_link.link_node->st_nlink --; 459e8: 2001 movel %d1,%d0 <== NOT EXECUTED 459ea: 5380 subql #1,%d0 <== NOT EXECUTED 459ec: 3140 0032 movew %d0,%a0@(50) <== NOT EXECUTED IMFS_update_ctime( node->info.hard_link.link_node ); 459f0: 42a7 clrl %sp@- <== NOT EXECUTED 459f2: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 459f6: 4eb9 0004 6274 jsr 46274 <== NOT EXECUTED 459fc: 206a 004c moveal %a2@(76),%a0 <== NOT EXECUTED 45a00: 508f addql #8,%sp <== NOT EXECUTED 45a02: 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 ); 45a08: 226b 0004 moveal %a3@(4),%a1 <== NOT EXECUTED 45a0c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45a0e: 2069 0034 moveal %a1@(52),%a0 <== NOT EXECUTED 45a12: 4e90 jsr %a0@ <== NOT EXECUTED 45a14: 588f addql #4,%sp <== NOT EXECUTED return result; } 45a16: 4cee 0c0c ffd8 moveml %fp@(-40),%d2-%d3/%a2-%a3 <== NOT EXECUTED 45a1c: 4e5e unlk %fp <== NOT EXECUTED 45a1e: 4e75 rts <== NOT EXECUTED */ if ( node->type == IMFS_HARD_LINK ) { if ( !node->info.hard_link.link_node ) rtems_set_errno_and_return_minus_one( EINVAL ); 45a20: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 45a26: 2040 moveal %d0,%a0 <== NOT EXECUTED 45a28: 7016 moveq #22,%d0 <== NOT EXECUTED */ result = (*loc->handlers->rmnod_h)( loc ); return result; } 45a2a: 4cee 0c0c ffd8 moveml %fp@(-40),%d2-%d3/%a2-%a3 <== NOT EXECUTED */ if ( node->type == IMFS_HARD_LINK ) { if ( !node->info.hard_link.link_node ) rtems_set_errno_and_return_minus_one( EINVAL ); 45a30: 2080 movel %d0,%a0@ <== NOT EXECUTED */ result = (*loc->handlers->rmnod_h)( loc ); return result; } 45a32: 4e5e unlk %fp <== NOT EXECUTED */ if ( node->type == IMFS_HARD_LINK ) { if ( !node->info.hard_link.link_node ) rtems_set_errno_and_return_minus_one( EINVAL ); 45a34: 70ff moveq #-1,%d0 <== NOT EXECUTED */ result = (*loc->handlers->rmnod_h)( loc ); return result; } 45a36: 4e75 rts <== NOT EXECUTED * to remove the node that is a link and the node itself. */ if ( node->info.hard_link.link_node->st_nlink == 1) { result = (*the_link.handlers->rmnod_h)( &the_link ); 45a38: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45a3a: 206e ffec moveal %fp@(-20),%a0 <== NOT EXECUTED 45a3e: 2268 0034 moveal %a0@(52),%a1 <== NOT EXECUTED 45a42: 4e91 jsr %a1@ <== NOT EXECUTED if ( result != 0 ) 45a44: 588f addql #4,%sp <== NOT EXECUTED 45a46: 4a80 tstl %d0 <== NOT EXECUTED 45a48: 67be beqs 45a08 <== NOT EXECUTED */ result = (*loc->handlers->rmnod_h)( loc ); return result; } 45a4a: 4cee 0c0c ffd8 moveml %fp@(-40),%d2-%d3/%a2-%a3 <== NOT EXECUTED 45a50: 4e5e unlk %fp <== NOT EXECUTED */ if ( node->info.hard_link.link_node->st_nlink == 1) { result = (*the_link.handlers->rmnod_h)( &the_link ); if ( result != 0 ) 45a52: 70ff moveq #-1,%d0 <== NOT EXECUTED */ result = (*loc->handlers->rmnod_h)( loc ); return result; } 45a54: 4e75 rts <== NOT EXECUTED ... 00045a58 : #include int IMFS_unmount( rtems_filesystem_mount_table_entry_t *mt_entry ) { 45a58: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45a5c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *node; node = mt_entry->mt_point_node.node_access; 45a60: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 45a64: 7001 moveq #1,%d0 <== NOT EXECUTED 45a66: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 45a6a: 6610 bnes 45a7c <== NOT EXECUTED /* * Did the node indicate that there was a directory mounted here? */ if ( node->info.directory.mt_fs == NULL ) 45a6c: 4aa8 0058 tstl %a0@(88) <== NOT EXECUTED 45a70: 671c beqs 45a8e <== 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; 45a72: 42a8 0058 clrl %a0@(88) <== NOT EXECUTED return 0; } 45a76: 4e5e unlk %fp <== 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; 45a78: 4280 clrl %d0 <== NOT EXECUTED return 0; } 45a7a: 4e75 rts <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 45a7c: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 45a82: 7214 moveq #20,%d1 <== NOT EXECUTED 45a84: 2040 moveal %d0,%a0 <== NOT EXECUTED */ node->info.directory.mt_fs = NULL; return 0; } 45a86: 4e5e unlk %fp <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 45a88: 70ff moveq #-1,%d0 <== NOT EXECUTED 45a8a: 2081 movel %d1,%a0@ <== NOT EXECUTED */ node->info.directory.mt_fs = NULL; return 0; } 45a8c: 4e75 rts <== NOT EXECUTED /* * Did the node indicate that there was a directory mounted here? */ if ( node->info.directory.mt_fs == NULL ) rtems_set_errno_and_return_minus_one( EINVAL ); /* XXX */ 45a8e: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 45a94: 2040 moveal %d0,%a0 <== NOT EXECUTED 45a96: 7016 moveq #22,%d0 <== NOT EXECUTED 45a98: 2080 movel %d0,%a0@ <== NOT EXECUTED */ node->info.directory.mt_fs = NULL; return 0; } 45a9a: 4e5e unlk %fp <== NOT EXECUTED /* * Did the node indicate that there was a directory mounted here? */ if ( node->info.directory.mt_fs == NULL ) rtems_set_errno_and_return_minus_one( EINVAL ); /* XXX */ 45a9c: 70ff moveq #-1,%d0 <== NOT EXECUTED */ node->info.directory.mt_fs = NULL; return 0; } 45a9e: 4e75 rts 00045aa0 : int IMFS_utime( rtems_filesystem_location_info_t *pathloc, /* IN */ time_t actime, /* IN */ time_t modtime /* IN */ ) { 45aa0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45aa4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 45aa8: 2250 moveal %a0@,%a1 <== NOT EXECUTED the_jnode->stat_atime = actime; 45aaa: 236e 000c 003c movel %fp@(12),%a1@(60) <== NOT EXECUTED the_jnode->stat_mtime = modtime; return 0; } 45ab0: 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; 45ab2: 236e 0010 0040 movel %fp@(16),%a1@(64) <== NOT EXECUTED return 0; } 45ab8: 4e5e unlk %fp <== NOT EXECUTED 45aba: 4e75 rts 000427fc : void RTEMS_Malloc_Initialize( void *start, size_t length, size_t sbrk_amount ) { 427fc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42800: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42802: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED #endif /* * If configured, initialize the statistics support */ if ( rtems_malloc_statistics_helpers ) 42806: 2079 0005 8ac4 moveal 58ac4 ,%a0 <== NOT EXECUTED void RTEMS_Malloc_Initialize( void *start, size_t length, size_t sbrk_amount ) { 4280c: 2f02 movel %d2,%sp@- <== NOT EXECUTED #endif /* * If configured, initialize the statistics support */ if ( rtems_malloc_statistics_helpers ) 4280e: 4a88 tstl %a0 <== NOT EXECUTED 42810: 6704 beqs 42816 <== NOT EXECUTED (*rtems_malloc_statistics_helpers->initialize)(); 42812: 2050 moveal %a0@,%a0 <== NOT EXECUTED 42814: 4e90 jsr %a0@ <== NOT EXECUTED /* * Initialize the garbage collection list to start with nothing on it. */ malloc_deferred_frees_initialize(); 42816: 4eb9 0004 ab54 jsr 4ab54 <== NOT EXECUTED starting_address = start; /* * Initialize the optional sbrk support for extending the heap */ if (rtems_malloc_sbrk_helpers) { 4281c: 2079 0005 8ac8 moveal 58ac8 ,%a0 <== NOT EXECUTED 42822: 4a88 tstl %a0 <== NOT EXECUTED 42824: 6760 beqs 42886 <== NOT EXECUTED starting_address = (*rtems_malloc_sbrk_helpers->initialize)( 42826: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4282a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4282e: 2050 moveal %a0@,%a0 <== NOT EXECUTED 42830: 4e90 jsr %a0@ <== 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() ) 42832: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED /* * Initialize the optional sbrk support for extending the heap */ if (rtems_malloc_sbrk_helpers) { starting_address = (*rtems_malloc_sbrk_helpers->initialize)( 42838: 2400 movel %d0,%d2 <== NOT EXECUTED 4283a: 508f addql #8,%sp <== 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() ) 4283c: 4a28 0028 tstb %a0@(40) <== NOT EXECUTED 42840: 6630 bnes 42872 <== NOT EXECUTED void *starting_address, size_t size, uint32_t page_size ) { return _Heap_Initialize( the_heap, starting_address, size, page_size ); 42842: 4878 0004 pea 4 <== NOT EXECUTED 42846: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42848: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4284a: 4879 0005 9b20 pea 59b20 <== NOT EXECUTED 42850: 4eb9 0004 6d94 jsr 46d94 <_Heap_Initialize> <== NOT EXECUTED &RTEMS_Malloc_Heap, starting_address, length, CPU_HEAP_ALIGNMENT ); if ( !status ) 42856: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4285c: 4a80 tstl %d0 <== NOT EXECUTED 4285e: 6738 beqs 42898 <== NOT EXECUTED rtems_print_buffer( (start + length) - 48, 48 ); rtems_fatal_error_occurred( RTEMS_NO_MEMORY ); } #endif MSBUMP(space_available, length); 42860: d7b9 0005 9b78 addl %d3,59b78 <== NOT EXECUTED } 42866: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4286a: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 4286e: 4e5e unlk %fp <== NOT EXECUTED 42870: 4e75 rts <== NOT EXECUTED * 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() ) memset( starting_address, 0, length ); 42872: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42874: 42a7 clrl %sp@- <== NOT EXECUTED 42876: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42878: 4eb9 0004 dbe8 jsr 4dbe8 <== NOT EXECUTED 4287e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42884: 60bc bras 42842 <== 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() ) 42886: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED starting_address = start; /* * Initialize the optional sbrk support for extending the heap */ if (rtems_malloc_sbrk_helpers) { 4288c: 242e 0008 movel %fp@(8),%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() ) 42890: 4a28 0028 tstb %a0@(40) <== NOT EXECUTED 42894: 67ac beqs 42842 <== NOT EXECUTED 42896: 60da bras 42872 <== NOT EXECUTED starting_address, length, CPU_HEAP_ALIGNMENT ); if ( !status ) rtems_fatal_error_occurred( status ); 42898: 42a7 clrl %sp@- <== NOT EXECUTED 4289a: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED 000447b0 : static rtems_printk_plugin_t print_handler; void Stack_check_Dump_threads_usage( Thread_Control *the_thread ) { 447b0: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 447b4: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED 447b8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED void *high_water_mark; void *current; Stack_Control *stack; char name[5]; if ( !the_thread ) 447bc: 4a8a tstl %a2 <== NOT EXECUTED 447be: 6700 00c8 beqw 44888 <== NOT EXECUTED return; if ( !print_handler ) 447c2: 2879 0008 7dfc moveal 87dfc ,%a4 <== NOT EXECUTED 447c8: 4a8c tstl %a4 <== NOT EXECUTED 447ca: 6700 00bc beqw 44888 <== NOT EXECUTED /* * Obtain interrupt stack information */ if (the_thread == (Thread_Control *) -1) { 447ce: 70ff moveq #-1,%d0 <== NOT EXECUTED 447d0: b08a cmpl %a2,%d0 <== NOT EXECUTED 447d2: 6700 00de beqw 448b2 <== NOT EXECUTED current = 0; } else return; } else { stack = &the_thread->Start.Initial_stack; 447d6: 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); 447da: 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); 447dc: 242b 0004 movel %a3@(4),%d2 <== NOT EXECUTED } else return; } else { stack = &the_thread->Start.Initial_stack; current = (void *)_CPU_Context_Get_SP( &the_thread->Registers ); 447e0: 282a 0100 movel %a2@(256),%d4 <== NOT EXECUTED } low = Stack_check_usable_stack_start(stack); size = Stack_check_usable_stack_size(stack); 447e4: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED high_water_mark = Stack_check_find_high_water_mark(low, size); 447ea: 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); 447ec: 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); 447f2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 447f4: 4eb9 0004 477a jsr 4477a <== NOT EXECUTED if ( high_water_mark ) 447fa: 508f addql #8,%sp <== NOT EXECUTED 447fc: 4a80 tstl %d0 <== NOT EXECUTED 447fe: 6700 00e8 beqw 448e8 <== NOT EXECUTED used = Stack_check_Calculate_used( low, size, high_water_mark ); 44802: d483 addl %d3,%d2 <== NOT EXECUTED 44804: 9480 subl %d0,%d2 <== NOT EXECUTED else used = 0; if ( the_thread ) { 44806: 4a8a tstl %a2 <== NOT EXECUTED 44808: 6700 00e6 beqw 448f0 <== NOT EXECUTED (*print_handler)( 4480c: 486e fffb pea %fp@(-5) <== NOT EXECUTED 44810: 4878 0005 pea 5 <== NOT EXECUTED 44814: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 44818: 4eb9 0004 a008 jsr 4a008 <== NOT EXECUTED 4481e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44820: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 44824: 4879 0008 0c9c pea 80c9c <== NOT EXECUTED 4482a: 2f39 0008 7df8 movel 87df8 ,%sp@- <== NOT EXECUTED 44830: 4e94 jsr %a4@ <== NOT EXECUTED ); } else { (*print_handler)( print_context, "0x%08" PRIx32 " INTR", ~0 ); } (*print_handler)( 44832: 206b 0004 moveal %a3@(4),%a0 <== NOT EXECUTED used = Stack_check_Calculate_used( low, size, high_water_mark ); else used = 0; if ( the_thread ) { (*print_handler)( 44836: dffc 0000 001c addal #28,%sp <== NOT EXECUTED ); } else { (*print_handler)( print_context, "0x%08" PRIx32 " INTR", ~0 ); } (*print_handler)( 4483c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4483e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 44840: 2013 movel %a3@,%d0 <== NOT EXECUTED 44842: 5380 subql #1,%d0 <== NOT EXECUTED 44844: 4870 0800 pea %a0@(00000000,%d0:l) <== NOT EXECUTED 44848: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4484a: 4879 0008 0cb7 pea 80cb7 <== NOT EXECUTED 44850: 2f39 0008 7df8 movel 87df8 ,%sp@- <== NOT EXECUTED 44856: 2079 0008 7dfc moveal 87dfc ,%a0 <== NOT EXECUTED 4485c: 4e90 jsr %a0@ <== NOT EXECUTED stack->area + stack->size - 1, current, size ); if (Stack_check_Initialized == 0) { 4485e: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 44864: 4ab9 0008 7df4 tstl 87df4 <== NOT EXECUTED 4486a: 6726 beqs 44892 <== NOT EXECUTED (*print_handler)( print_context, "Unavailable\n" ); } else { (*print_handler)( print_context, "%8" PRId32 "\n", used ); 4486c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4486e: 4879 0008 0ce2 pea 80ce2 <== NOT EXECUTED 44874: 2f39 0008 7df8 movel 87df8 ,%sp@- <== NOT EXECUTED 4487a: 2079 0008 7dfc moveal 87dfc ,%a0 <== NOT EXECUTED 44880: 4e90 jsr %a0@ <== NOT EXECUTED 44882: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } } 44888: 4cee 1c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a4 <== NOT EXECUTED 4488e: 4e5e unlk %fp <== NOT EXECUTED 44890: 4e75 rts <== NOT EXECUTED current, size ); if (Stack_check_Initialized == 0) { (*print_handler)( print_context, "Unavailable\n" ); 44892: 4879 0008 0cd5 pea 80cd5 <== NOT EXECUTED 44898: 2f39 0008 7df8 movel 87df8 ,%sp@- <== NOT EXECUTED 4489e: 2079 0008 7dfc moveal 87dfc ,%a0 <== NOT EXECUTED 448a4: 4e90 jsr %a0@ <== NOT EXECUTED 448a6: 508f addql #8,%sp <== NOT EXECUTED } else { (*print_handler)( print_context, "%8" PRId32 "\n", used ); } } 448a8: 4cee 1c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a4 <== NOT EXECUTED 448ae: 4e5e unlk %fp <== NOT EXECUTED 448b0: 4e75 rts <== NOT EXECUTED /* * Obtain interrupt stack information */ if (the_thread == (Thread_Control *) -1) { if (Stack_check_Interrupt_stack.area) { 448b2: 4ab9 0009 b2b0 tstl 9b2b0 <== NOT EXECUTED 448b8: 67ce beqs 44888 <== NOT EXECUTED stack = &Stack_check_Interrupt_stack; the_thread = 0; current = 0; } else return; 448ba: 47f9 0009 b2ac lea 9b2ac ,%a3 <== NOT EXECUTED stack = &the_thread->Start.Initial_stack; current = (void *)_CPU_Context_Get_SP( &the_thread->Registers ); } low = Stack_check_usable_stack_start(stack); size = Stack_check_usable_stack_size(stack); 448c0: 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); 448c2: 242b 0004 movel %a3@(4),%d2 <== NOT EXECUTED size = Stack_check_usable_stack_size(stack); 448c6: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED high_water_mark = Stack_check_find_high_water_mark(low, size); 448cc: 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); 448ce: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED stack = &Stack_check_Interrupt_stack; the_thread = 0; current = 0; } else return; 448d4: 95ca subal %a2,%a2 <== NOT EXECUTED } low = Stack_check_usable_stack_start(stack); size = Stack_check_usable_stack_size(stack); high_water_mark = Stack_check_find_high_water_mark(low, size); 448d6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 448d8: 4eb9 0004 477a jsr 4477a <== NOT EXECUTED stack = &Stack_check_Interrupt_stack; the_thread = 0; current = 0; } else return; 448de: 4284 clrl %d4 <== NOT EXECUTED low = Stack_check_usable_stack_start(stack); size = Stack_check_usable_stack_size(stack); high_water_mark = Stack_check_find_high_water_mark(low, size); if ( high_water_mark ) 448e0: 508f addql #8,%sp <== NOT EXECUTED 448e2: 4a80 tstl %d0 <== NOT EXECUTED 448e4: 6600 ff1c bnew 44802 <== NOT EXECUTED 448e8: 4282 clrl %d2 <== NOT EXECUTED used = Stack_check_Calculate_used( low, size, high_water_mark ); else used = 0; if ( the_thread ) { 448ea: 4a8a tstl %a2 <== NOT EXECUTED 448ec: 6600 ff1e bnew 4480c <== 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 ); 448f0: 4878 ffff pea ffffffff <== NOT EXECUTED 448f4: 4879 0008 0ca9 pea 80ca9 <== NOT EXECUTED 448fa: 2f39 0008 7df8 movel 87df8 ,%sp@- <== NOT EXECUTED 44900: 4e94 jsr %a4@ <== NOT EXECUTED } (*print_handler)( 44902: 206b 0004 moveal %a3@(4),%a0 <== 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 ); 44906: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } (*print_handler)( 4490c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4490e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 44910: 2013 movel %a3@,%d0 <== NOT EXECUTED 44912: 5380 subql #1,%d0 <== NOT EXECUTED 44914: 4870 0800 pea %a0@(00000000,%d0:l) <== NOT EXECUTED 44918: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4491a: 4879 0008 0cb7 pea 80cb7 <== NOT EXECUTED 44920: 2f39 0008 7df8 movel 87df8 ,%sp@- <== NOT EXECUTED 44926: 2079 0008 7dfc moveal 87dfc ,%a0 <== NOT EXECUTED 4492c: 4e90 jsr %a0@ <== NOT EXECUTED stack->area + stack->size - 1, current, size ); if (Stack_check_Initialized == 0) { 4492e: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 44934: 4ab9 0008 7df4 tstl 87df4 <== NOT EXECUTED 4493a: 6600 ff30 bnew 4486c <== NOT EXECUTED 4493e: 6000 ff52 braw 44892 <== NOT EXECUTED 00044b56 : /* * Stack_check_Initialize */ void Stack_check_Initialize( void ) { 44b56: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED uint32_t *p; if (Stack_check_Initialized) 44b5a: 4ab9 0008 7df4 tstl 87df4 <== NOT EXECUTED 44b60: 666c bnes 44bce <== 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) { 44b62: 2239 0009 b448 movel 9b448 <_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 */ 44b68: 203c feed f00d movel #-17960947,%d0 <== NOT EXECUTED 44b6e: 23c0 0009 b29c movel %d0,9b29c <== NOT EXECUTED p[1] = 0x0BAD0D06; 44b74: 203c 0bad 0d06 movel #195890438,%d0 <== NOT EXECUTED 44b7a: 23c0 0009 b2a0 movel %d0,9b2a0 <== NOT EXECUTED p[2] = 0xDEADF00D; /* DEAD FOOD GOOD DOG */ 44b80: 203c dead f00d movel #-559026163,%d0 <== NOT EXECUTED 44b86: 23c0 0009 b2a4 movel %d0,9b2a4 <== NOT EXECUTED p[3] = 0x600D0D06; 44b8c: 203c 600d 0d06 movel #1611468038,%d0 <== NOT EXECUTED 44b92: 23c0 0009 b2a8 movel %d0,9b2a8 <== 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) { 44b98: 4a81 tstl %d1 <== NOT EXECUTED 44b9a: 672a beqs 44bc6 <== NOT EXECUTED 44b9c: 2039 0009 b3ec movel 9b3ec <_CPU_Interrupt_stack_high>,%d0 <== NOT EXECUTED 44ba2: 6722 beqs 44bc6 <== NOT EXECUTED Stack_check_Interrupt_stack.area = _CPU_Interrupt_stack_low; Stack_check_Interrupt_stack.size = (char *) _CPU_Interrupt_stack_high - 44ba4: 9081 subl %d1,%d0 <== NOT EXECUTED (char *) _CPU_Interrupt_stack_low; Stack_check_Dope_stack(&Stack_check_Interrupt_stack); 44ba6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44ba8: 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; 44bac: 23c1 0009 b2b0 movel %d1,9b2b0 <== 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); 44bb2: 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 - 44bb4: 23c0 0009 b2ac movel %d0,9b2ac <== NOT EXECUTED (char *) _CPU_Interrupt_stack_low; Stack_check_Dope_stack(&Stack_check_Interrupt_stack); 44bba: 4eb9 0007 2b50 jsr 72b50 <== NOT EXECUTED 44bc0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } #endif Stack_check_Initialized = 1; 44bc6: 7001 moveq #1,%d0 <== NOT EXECUTED 44bc8: 23c0 0008 7df4 movel %d0,87df4 <== NOT EXECUTED } 44bce: 4e5e unlk %fp <== NOT EXECUTED 44bd0: 4e75 rts 0004477a : */ void *Stack_check_find_high_water_mark( const void *s, size_t n ) { 4477a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * start at lower memory and find first word that does not * match pattern */ base += PATTERN_SIZE_WORDS; 4477e: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED for (ebase = base + length; base < ebase; base++) 44782: 70fc moveq #-4,%d0 <== NOT EXECUTED /* * start at lower memory and find first word that does not * match pattern */ base += PATTERN_SIZE_WORDS; 44784: d1fc 0000 0010 addal #16,%a0 <== NOT EXECUTED for (ebase = base + length; base < ebase; base++) 4478a: c0ae 000c andl %fp@(12),%d0 <== NOT EXECUTED 4478e: d088 addl %a0,%d0 <== NOT EXECUTED 44790: b088 cmpl %a0,%d0 <== NOT EXECUTED 44792: 6310 blss 447a4 <== NOT EXECUTED if (*base != U32_PATTERN) 44794: 223c a5a5 a5a5 movel #-1515870811,%d1 <== NOT EXECUTED 4479a: b290 cmpl %a0@,%d1 <== NOT EXECUTED 4479c: 660c bnes 447aa <== 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++) 4479e: 5888 addql #4,%a0 <== NOT EXECUTED 447a0: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 447a2: 65f0 bcss 44794 <== NOT EXECUTED if (*base != U32_PATTERN) return (void *) base; #endif return (void *)0; } 447a4: 4e5e unlk %fp <== 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++) 447a6: 4280 clrl %d0 <== NOT EXECUTED if (*base != U32_PATTERN) return (void *) base; #endif return (void *)0; } 447a8: 4e75 rts <== NOT EXECUTED 447aa: 4e5e unlk %fp <== NOT EXECUTED */ base += PATTERN_SIZE_WORDS; for (ebase = base + length; base < ebase; base++) if (*base != U32_PATTERN) return (void *) base; 447ac: 2008 movel %a0,%d0 <== NOT EXECUTED #endif return (void *)0; } 447ae: 4e75 rts 000449be : */ void Stack_check_report_blown_task( Thread_Control *running, bool pattern_ok ) { 449be: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 449c2: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 449c6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Stack_Control *stack = &running->Start.Initial_stack; printk( 449ca: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED */ void Stack_check_report_blown_task( Thread_Control *running, bool pattern_ok ) { 449ce: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Stack_Control *stack = &running->Start.Initial_stack; printk( 449d2: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 449d6: 47f9 0004 77c2 lea 477c2 ,%a3 <== NOT EXECUTED 449dc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 449de: 4879 0008 0d49 pea 80d49 <== NOT EXECUTED 449e4: 4e93 jsr %a3@ <== NOT EXECUTED rtems_configuration_get_user_multiprocessing_table()->node ); } #endif printk( 449e6: 202a 00c0 movel %a2@(192),%d0 <== NOT EXECUTED 449ea: 206a 00c4 moveal %a2@(196),%a0 <== NOT EXECUTED 449ee: 2f00 movel %d0,%sp@- <== NOT EXECUTED 449f0: 4870 08ff pea %a0@(ffffffff,%d0:l) <== NOT EXECUTED 449f4: 2f08 movel %a0,%sp@- <== NOT EXECUTED 449f6: 4879 0008 0d87 pea 80d87 <== NOT EXECUTED 449fc: 4e93 jsr %a3@ <== NOT EXECUTED stack->area, stack->area + stack->size - 1, stack->size ); if ( !pattern_ok ) { 449fe: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 44a04: 4a02 tstb %d2 <== NOT EXECUTED 44a06: 670a beqs 44a12 <== 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 ); 44a08: 4878 0081 pea 81 <== NOT EXECUTED 44a0c: 4eb9 0004 aa30 jsr 4aa30 <== NOT EXECUTED stack->area + stack->size - 1, stack->size ); if ( !pattern_ok ) { printk( 44a12: 4878 0010 pea 10 <== NOT EXECUTED 44a16: 246a 00c4 moveal %a2@(196),%a2 <== NOT EXECUTED 44a1a: 508a addql #8,%a2 <== NOT EXECUTED 44a1c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44a1e: 4879 0008 0db5 pea 80db5 <== NOT EXECUTED 44a24: 4e93 jsr %a3@ <== NOT EXECUTED 44a26: 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 ); 44a2c: 4878 0081 pea 81 <== NOT EXECUTED 44a30: 4eb9 0004 aa30 jsr 4aa30 <== NOT EXECUTED 00046724 <_API_Mutex_Allocate>: #include void _API_Mutex_Allocate( API_Mutex_Control **the_mutex ) { 46724: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED CORE_mutex_Attributes attr = { CORE_MUTEX_NESTING_IS_ERROR, FALSE, CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT, 0 }; 46728: 7001 moveq #1,%d0 <== NOT EXECUTED 4672a: 2d40 fff2 movel %d0,%fp@(-14) <== NOT EXECUTED 4672e: 4200 clrb %d0 <== NOT EXECUTED 46730: 1d40 fff6 moveb %d0,%fp@(-10) <== NOT EXECUTED #include void _API_Mutex_Allocate( API_Mutex_Control **the_mutex ) { 46734: 2f0a movel %a2,%sp@- <== NOT EXECUTED CORE_mutex_Attributes attr = { CORE_MUTEX_NESTING_IS_ERROR, FALSE, CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT, 0 }; 46736: 7002 moveq #2,%d0 <== NOT EXECUTED mutex = (API_Mutex_Control *) _Objects_Allocate( &_API_Mutex_Information ); 46738: 4879 0005 9d64 pea 59d64 <_API_Mutex_Information> <== NOT EXECUTED CORE_mutex_Attributes attr = { CORE_MUTEX_NESTING_IS_ERROR, FALSE, CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT, 0 }; 4673e: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED 46742: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED mutex = (API_Mutex_Control *) _Objects_Allocate( &_API_Mutex_Information ); 46746: 4eb9 0004 7058 jsr 47058 <_Objects_Allocate> <== NOT EXECUTED _CORE_mutex_Initialize( &mutex->Mutex, &attr, CORE_MUTEX_UNLOCKED ); 4674c: 4878 0001 pea 1 <== NOT EXECUTED FALSE, CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT, 0 }; mutex = (API_Mutex_Control *) _Objects_Allocate( &_API_Mutex_Information ); 46750: 2440 moveal %d0,%a2 <== NOT EXECUTED _CORE_mutex_Initialize( &mutex->Mutex, &attr, CORE_MUTEX_UNLOCKED ); 46752: 486e fff2 pea %fp@(-14) <== NOT EXECUTED 46756: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4675a: 4eb9 0004 6868 jsr 46868 <_CORE_mutex_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 46760: 2079 0005 9d7e moveal 59d7e <_API_Mutex_Information+0x1a>,%a0 <== NOT EXECUTED 46766: 4281 clrl %d1 <== NOT EXECUTED 46768: 322a 000a movew %a2@(10),%d1 <== NOT EXECUTED 4676c: 218a 1c00 movel %a2,%a0@(00000000,%d1:l:4) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string == FALSE */ the_object->name.name_u32 = name; 46770: 7001 moveq #1,%d0 <== NOT EXECUTED _Objects_Open_u32( &_API_Mutex_Information, &mutex->Object, 1 ); *the_mutex = mutex; 46772: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 46778: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED 4677c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46780: 208a movel %a2,%a0@ <== NOT EXECUTED } 46782: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 46786: 4e5e unlk %fp <== NOT EXECUTED 46788: 4e75 rts <== NOT EXECUTED ... 000467c0 <_API_Mutex_Initialization>: #include void _API_Mutex_Initialization( uint32_t maximum_mutexes ) { 467c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 467c4: 42a7 clrl %sp@- <== NOT EXECUTED 467c6: 42a7 clrl %sp@- <== NOT EXECUTED 467c8: 4878 0072 pea 72 <== NOT EXECUTED 467cc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 467d0: 4878 0002 pea 2 <== NOT EXECUTED 467d4: 4878 0001 pea 1 <== NOT EXECUTED 467d8: 4879 0005 9d64 pea 59d64 <_API_Mutex_Information> <== NOT EXECUTED 467de: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 467e4: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , TRUE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 467ea: 4e5e unlk %fp <== NOT EXECUTED 467ec: 4e75 rts <== NOT EXECUTED ... 0004678c <_API_Mutex_Lock>: #include void _API_Mutex_Lock( API_Mutex_Control *the_mutex ) { 4678c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 46790: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED #include void _API_Mutex_Lock( API_Mutex_Control *the_mutex ) { 46796: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4679a: 40c0 movew %sr,%d0 <== NOT EXECUTED 4679c: 8280 orl %d0,%d1 <== NOT EXECUTED 4679e: 46c1 movew %d1,%sr <== NOT EXECUTED _CORE_mutex_Seize( 467a0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 467a2: 42a7 clrl %sp@- <== NOT EXECUTED 467a4: 4878 0001 pea 1 <== NOT EXECUTED 467a8: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 467ac: 4868 0010 pea %a0@(16) <== NOT EXECUTED 467b0: 4eb9 0004 69f2 jsr 469f2 <_CORE_mutex_Seize> <== NOT EXECUTED 467b6: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED the_mutex->Object.id, TRUE, 0, level ); } 467bc: 4e5e unlk %fp <== NOT EXECUTED 467be: 4e75 rts 000467f0 <_API_Mutex_Unlock>: rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 467f0: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED #include void _API_Mutex_Unlock( API_Mutex_Control *the_mutex ) { 467f6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 467fa: 5280 addql #1,%d0 <== NOT EXECUTED 467fc: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED 46802: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED _Thread_Disable_dispatch(); _CORE_mutex_Surrender( 46806: 42a7 clrl %sp@- <== NOT EXECUTED 46808: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4680c: 4868 0010 pea %a0@(16) <== NOT EXECUTED 46810: 4eb9 0004 6aa4 jsr 46aa4 <_CORE_mutex_Surrender> <== NOT EXECUTED &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); 46816: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 4681c: 4e5e unlk %fp <== NOT EXECUTED _CORE_mutex_Surrender( &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); 4681e: 4ef9 0004 7e08 jmp 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 00046708 <_API_extensions_Add>: */ void _API_extensions_Add( API_extensions_Control *the_extension ) { 46708: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Chain_Append( &_API_extensions_List, &the_extension->Node ); 4670c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46710: 4879 0005 9e26 pea 59e26 <_API_extensions_List> <== NOT EXECUTED 46716: 4eb9 0004 6824 jsr 46824 <_Chain_Append> <== NOT EXECUTED 4671c: 508f addql #8,%sp <== NOT EXECUTED } 4671e: 4e5e unlk %fp <== NOT EXECUTED 46720: 4e75 rts <== NOT EXECUTED ... 00046650 <_API_extensions_Initialization>: * * _API_extensions_Initialization */ void _API_extensions_Initialization( void ) { 46650: 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); 46654: 41f9 0005 9e26 lea 59e26 <_API_extensions_List>,%a0 <== NOT EXECUTED _Chain_Initialize_empty( &_API_extensions_List ); } 4665a: 4e5e unlk %fp <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4665c: 23c8 0005 9e2e movel %a0,59e2e <_API_extensions_List+0x8> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 46662: 20bc 0005 9e2a movel #368170,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 46668: 42b9 0005 9e2a clrl 59e2a <_API_extensions_List+0x4> <== NOT EXECUTED 4666e: 4e75 rts 000466a0 <_API_extensions_Run_postdriver>: * * _API_extensions_Run_postdriver */ void _API_extensions_Run_postdriver( void ) { 466a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 466a4: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; 466a6: 2479 0005 9e26 moveal 59e26 <_API_extensions_List>,%a2 <== NOT EXECUTED !_Chain_Is_tail( &_API_extensions_List, the_node ) ; 466ac: b5fc 0005 9e2a cmpal #368170,%a2 <== NOT EXECUTED 466b2: 6714 beqs 466c8 <_API_extensions_Run_postdriver+0x28> <== NOT EXECUTED the_node = the_node->next ) { the_extension = (API_extensions_Control *) the_node; if ( the_extension->postdriver_hook ) 466b4: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED 466b8: 4a88 tstl %a0 <== NOT EXECUTED 466ba: 6702 beqs 466be <_API_extensions_Run_postdriver+0x1e> <== NOT EXECUTED (*the_extension->postdriver_hook)(); 466bc: 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 ) { 466be: 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 ) ; 466c0: b5fc 0005 9e2a cmpal #368170,%a2 <== NOT EXECUTED 466c6: 66ec bnes 466b4 <_API_extensions_Run_postdriver+0x14> <== NOT EXECUTED the_extension = (API_extensions_Control *) the_node; if ( the_extension->postdriver_hook ) (*the_extension->postdriver_hook)(); } } 466c8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 466cc: 4e5e unlk %fp <== NOT EXECUTED 466ce: 4e75 rts 000466d0 <_API_extensions_Run_postswitch>: * * _API_extensions_Run_postswitch */ void _API_extensions_Run_postswitch( void ) { 466d0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 466d4: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; 466d6: 2479 0005 9e26 moveal 59e26 <_API_extensions_List>,%a2 <== NOT EXECUTED !_Chain_Is_tail( &_API_extensions_List, the_node ) ; 466dc: b5fc 0005 9e2a cmpal #368170,%a2 <== NOT EXECUTED 466e2: 671c beqs 46700 <_API_extensions_Run_postswitch+0x30> <== NOT EXECUTED the_node = the_node->next ) { the_extension = (API_extensions_Control *) the_node; if ( the_extension->postswitch_hook ) 466e4: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 466e8: 4a88 tstl %a0 <== NOT EXECUTED 466ea: 670a beqs 466f6 <_API_extensions_Run_postswitch+0x26> <== NOT EXECUTED (*the_extension->postswitch_hook)( _Thread_Executing ); 466ec: 2f39 0005 9d3a movel 59d3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 466f2: 4e90 jsr %a0@ <== NOT EXECUTED 466f4: 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 ) { 466f6: 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 ) ; 466f8: b5fc 0005 9e2a cmpal #368170,%a2 <== NOT EXECUTED 466fe: 66e4 bnes 466e4 <_API_extensions_Run_postswitch+0x14> <== NOT EXECUTED the_extension = (API_extensions_Control *) the_node; if ( the_extension->postswitch_hook ) (*the_extension->postswitch_hook)( _Thread_Executing ); } } 46700: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46704: 4e5e unlk %fp <== NOT EXECUTED 46706: 4e75 rts 00046670 <_API_extensions_Run_predriver>: * * _API_extensions_Run_predriver */ void _API_extensions_Run_predriver( void ) { 46670: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46674: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; API_extensions_Control *the_extension; for ( the_node = _API_extensions_List.first ; 46676: 2479 0005 9e26 moveal 59e26 <_API_extensions_List>,%a2 <== NOT EXECUTED !_Chain_Is_tail( &_API_extensions_List, the_node ) ; 4667c: b5fc 0005 9e2a cmpal #368170,%a2 <== NOT EXECUTED 46682: 6714 beqs 46698 <_API_extensions_Run_predriver+0x28> <== NOT EXECUTED the_node = the_node->next ) { the_extension = (API_extensions_Control *) the_node; if ( the_extension->predriver_hook ) 46684: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 46688: 4a88 tstl %a0 <== NOT EXECUTED 4668a: 6702 beqs 4668e <_API_extensions_Run_predriver+0x1e> <== NOT EXECUTED (*the_extension->predriver_hook)(); 4668c: 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 ) { 4668e: 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 ) ; 46690: b5fc 0005 9e2a cmpal #368170,%a2 <== NOT EXECUTED 46696: 66ec bnes 46684 <_API_extensions_Run_predriver+0x14> <== NOT EXECUTED the_extension = (API_extensions_Control *) the_node; if ( the_extension->predriver_hook ) (*the_extension->predriver_hook)(); } } 46698: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4669c: 4e5e unlk %fp <== NOT EXECUTED 4669e: 4e75 rts 0004b6c0 <_Barrier_Manager_initialization>: */ void _Barrier_Manager_initialization( uint32_t maximum_barriers ) { 4b6c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b6c4: 4878 0004 pea 4 <== NOT EXECUTED 4b6c8: 42a7 clrl %sp@- <== NOT EXECUTED 4b6ca: 4878 0060 pea 60 <== NOT EXECUTED 4b6ce: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b6d2: 4878 000a pea a <== NOT EXECUTED 4b6d6: 4878 0002 pea 2 <== NOT EXECUTED 4b6da: 4879 0005 a51e pea 5a51e <_Barrier_Information> <== NOT EXECUTED 4b6e0: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b6e6: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4b6ec: 4e5e unlk %fp <== NOT EXECUTED 4b6ee: 4e75 rts 0004c764 <_Barrier_Translate_core_barrier_return_code>: }; rtems_status_code _Barrier_Translate_core_barrier_return_code ( CORE_barrier_Status the_barrier_status ) { 4c764: 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]; } 4c768: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED }; rtems_status_code _Barrier_Translate_core_barrier_return_code ( CORE_barrier_Status the_barrier_status ) { 4c76c: 41f9 0005 a990 lea 5a990 <_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]; } 4c772: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 4c776: 4e5e unlk %fp <== NOT EXECUTED 4c778: 4e75 rts <== NOT EXECUTED ... 00048884 <_CORE_RWLock_Initialize>: void _CORE_RWLock_Initialize( CORE_RWLock_Control *the_rwlock, CORE_RWLock_Attributes *the_rwlock_attributes ) { 48884: 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( 48888: 4878 0003 pea 3 <== NOT EXECUTED void _CORE_RWLock_Initialize( CORE_RWLock_Control *the_rwlock, CORE_RWLock_Attributes *the_rwlock_attributes ) { 4888c: 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( 48890: 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; 48896: 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( 4889a: 42a7 clrl %sp@- <== NOT EXECUTED CORE_RWLock_Control *the_rwlock, CORE_RWLock_Attributes *the_rwlock_attributes ) { the_rwlock->Attributes = *the_rwlock_attributes; 4889c: 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( 488a0: 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; 488a2: 42a9 0048 clrl %a1@(72) <== NOT EXECUTED the_rwlock->current_state = CORE_RWLOCK_UNLOCKED; 488a6: 42a9 0044 clrl %a1@(68) <== NOT EXECUTED _Thread_queue_Initialize( 488aa: 4eb9 0004 a6e0 jsr 4a6e0 <_Thread_queue_Initialize> <== NOT EXECUTED 488b0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED &the_rwlock->Wait_queue, THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_RWLOCK, CORE_RWLOCK_TIMEOUT ); } 488b6: 4e5e unlk %fp <== NOT EXECUTED 488b8: 4e75 rts <== NOT EXECUTED ... 000488bc <_CORE_RWLock_Obtain_for_reading>: Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_RWLock_API_mp_support_callout api_rwlock_mp_support ) { 488bc: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 488c0: 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 ); 488c4: 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 ) { 488ca: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 488ce: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 488d2: 2a2e 0014 movel %fp@(20),%d5 <== NOT EXECUTED 488d6: 162e 0013 moveb %fp@(19),%d3 <== NOT EXECUTED ISR_Level level; Thread_Control *executing = _Thread_Executing; 488da: 2679 0005 c542 moveal 5c542 <_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 ); 488e0: 40c2 movew %sr,%d2 <== NOT EXECUTED 488e2: 8082 orl %d2,%d0 <== NOT EXECUTED 488e4: 46c0 movew %d0,%sr <== NOT EXECUTED switch ( the_rwlock->current_state ) { 488e6: 202a 0044 movel %a2@(68),%d0 <== NOT EXECUTED 488ea: 661a bnes 48906 <_CORE_RWLock_Obtain_for_reading+0x4a> <== NOT EXECUTED case CORE_RWLOCK_UNLOCKED: the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING; 488ec: 7001 moveq #1,%d0 <== NOT EXECUTED the_rwlock->number_of_readers += 1; 488ee: 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; 488f2: 2540 0044 movel %d0,%a2@(68) <== NOT EXECUTED the_rwlock->number_of_readers += 1; _ISR_Enable( level ); 488f6: 46c2 movew %d2,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; 488f8: 42ab 0034 clrl %a3@(52) <== NOT EXECUTED timeout, _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 488fc: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 48902: 4e5e unlk %fp <== NOT EXECUTED 48904: 4e75 rts <== NOT EXECUTED * If locked for reading and no waiters, then OK to read. * If any thread is waiting, then we wait. */ _ISR_Disable( level ); switch ( the_rwlock->current_state ) { 48906: 7201 moveq #1,%d1 <== NOT EXECUTED 48908: b280 cmpl %d0,%d1 <== NOT EXECUTED 4890a: 674e beqs 4895a <_CORE_RWLock_Obtain_for_reading+0x9e> <== NOT EXECUTED /* * If the thread is not willing to wait, then return immediately. */ if ( !wait ) { 4890c: 4a03 tstb %d3 <== NOT EXECUTED 4890e: 6612 bnes 48922 <_CORE_RWLock_Obtain_for_reading+0x66> <== NOT EXECUTED _ISR_Enable( level ); 48910: 46c2 movew %d2,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE; 48912: 7202 moveq #2,%d1 <== NOT EXECUTED 48914: 2741 0034 movel %d1,%a3@(52) <== NOT EXECUTED timeout, _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 48918: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 4891e: 4e5e unlk %fp <== NOT EXECUTED 48920: 4e75 rts <== NOT EXECUTED 48922: 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; 48924: 2744 0020 movel %d4,%a3@(32) <== NOT EXECUTED 48928: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED executing->Wait.option = CORE_RWLOCK_THREAD_WAITING_FOR_READ; executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; 4892c: 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; 48930: 274a 0044 movel %a2,%a3@(68) <== NOT EXECUTED executing->Wait.id = id; executing->Wait.option = CORE_RWLOCK_THREAD_WAITING_FOR_READ; 48934: 42ab 0030 clrl %a3@(48) <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; _ISR_Enable( level ); 48938: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_queue_Enqueue_with_handler( 4893a: 2d45 000c movel %d5,%fp@(12) <== NOT EXECUTED 4893e: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED 48942: 223c 0004 8aec movel #297708,%d1 <== NOT EXECUTED timeout, _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 48948: 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( 4894e: 2d41 0010 movel %d1,%fp@(16) <== NOT EXECUTED timeout, _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 48952: 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( 48954: 4ef9 0004 a29c jmp 4a29c <_Thread_queue_Enqueue_with_handler> <== 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 ); 4895a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4895c: 4eb9 0004 a644 jsr 4a644 <_Thread_queue_First> <== NOT EXECUTED if ( !waiter ) { 48962: 588f addql #4,%sp <== NOT EXECUTED 48964: 4a80 tstl %d0 <== NOT EXECUTED 48966: 66a4 bnes 4890c <_CORE_RWLock_Obtain_for_reading+0x50> <== NOT EXECUTED the_rwlock->number_of_readers += 1; 48968: 52aa 0048 addql #1,%a2@(72) <== NOT EXECUTED _ISR_Enable( level ); 4896c: 46c2 movew %d2,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; 4896e: 42ab 0034 clrl %a3@(52) <== NOT EXECUTED timeout, _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 48972: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 48978: 4e5e unlk %fp <== NOT EXECUTED 4897a: 4e75 rts 0004897c <_CORE_RWLock_Obtain_for_writing>: Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_RWLock_API_mp_support_callout api_rwlock_mp_support ) { 4897c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 48980: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 48984: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48988: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4898c: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 48990: 282e 0014 movel %fp@(20),%d4 <== NOT EXECUTED ISR_Level level; Thread_Control *executing = _Thread_Executing; 48994: 2279 0005 c542 moveal 5c542 <_Thread_Executing>,%a1 <== 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 ); 4899a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 489a0: 40c1 movew %sr,%d1 <== NOT EXECUTED 489a2: 8081 orl %d1,%d0 <== NOT EXECUTED 489a4: 46c0 movew %d0,%sr <== NOT EXECUTED switch ( the_rwlock->current_state ) { 489a6: 4aa8 0044 tstl %a0@(68) <== NOT EXECUTED 489aa: 6614 bnes 489c0 <_CORE_RWLock_Obtain_for_writing+0x44> <== NOT EXECUTED case CORE_RWLOCK_UNLOCKED: the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_WRITING; 489ac: 7002 moveq #2,%d0 <== NOT EXECUTED 489ae: 2140 0044 movel %d0,%a0@(68) <== NOT EXECUTED _ISR_Enable( level ); 489b2: 46c1 movew %d1,%sr <== NOT EXECUTED _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 489b4: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 489b8: 4e5e unlk %fp <== NOT EXECUTED _ISR_Disable( level ); switch ( the_rwlock->current_state ) { case CORE_RWLOCK_UNLOCKED: the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_WRITING; _ISR_Enable( level ); executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; 489ba: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 489be: 4e75 rts <== NOT EXECUTED /* * If the thread is not willing to wait, then return immediately. */ if ( !wait ) { 489c0: 4a02 tstb %d2 <== NOT EXECUTED 489c2: 6610 bnes 489d4 <_CORE_RWLock_Obtain_for_writing+0x58> <== NOT EXECUTED _ISR_Enable( level ); 489c4: 46c1 movew %d1,%sr <== NOT EXECUTED _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 489c6: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED * If the thread is not willing to wait, then return immediately. */ if ( !wait ) { _ISR_Enable( level ); executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE; 489ca: 7002 moveq #2,%d0 <== NOT EXECUTED _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 489cc: 4e5e unlk %fp <== NOT EXECUTED * If the thread is not willing to wait, then return immediately. */ if ( !wait ) { _ISR_Enable( level ); executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE; 489ce: 2340 0034 movel %d0,%a1@(52) <== NOT EXECUTED _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 489d2: 4e75 rts <== NOT EXECUTED 489d4: 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; 489d6: 2343 0020 movel %d3,%a1@(32) <== NOT EXECUTED 489da: 2140 0030 movel %d0,%a0@(48) <== NOT EXECUTED executing->Wait.option = CORE_RWLOCK_THREAD_WAITING_FOR_WRITE; 489de: 2340 0030 movel %d0,%a1@(48) <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; 489e2: 42a9 0034 clrl %a1@(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; 489e6: 2348 0044 movel %a0,%a1@(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 ); 489ea: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue_with_handler( 489ec: 2d44 000c movel %d4,%fp@(12) <== NOT EXECUTED 489f0: 203c 0004 8aec movel #297708,%d0 <== NOT EXECUTED 489f6: 2d40 0010 movel %d0,%fp@(16) <== NOT EXECUTED 489fa: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED _CORE_RWLock_Timeout ); /* return to API level so it can dispatch and we block */ } 489fe: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 48a02: 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( 48a04: 4ef9 0004 a29c jmp 4a29c <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED ... 00048a0c <_CORE_RWLock_Release>: */ CORE_RWLock_Status _CORE_RWLock_Release( CORE_RWLock_Control *the_rwlock ) { 48a0c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48a10: 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 ); 48a14: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ CORE_RWLock_Status _CORE_RWLock_Release( CORE_RWLock_Control *the_rwlock ) { 48a1a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; Thread_Control *executing = _Thread_Executing; 48a1e: 2079 0005 c542 moveal 5c542 <_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 ); 48a24: 40c1 movew %sr,%d1 <== NOT EXECUTED 48a26: 8081 orl %d1,%d0 <== NOT EXECUTED 48a28: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_rwlock->current_state == CORE_RWLOCK_UNLOCKED){ 48a2a: 202a 0044 movel %a2@(68),%d0 <== NOT EXECUTED 48a2e: 6700 0092 beqw 48ac2 <_CORE_RWLock_Release+0xb6> <== NOT EXECUTED _ISR_Enable( level ); executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE; return CORE_RWLOCK_SUCCESSFUL; } if ( the_rwlock->current_state == CORE_RWLOCK_LOCKED_FOR_READING ) { 48a32: 7401 moveq #1,%d2 <== NOT EXECUTED 48a34: b480 cmpl %d0,%d2 <== NOT EXECUTED 48a36: 6770 beqs 48aa8 <_CORE_RWLock_Release+0x9c> <== NOT EXECUTED return CORE_RWLOCK_SUCCESSFUL; } } /* CORE_RWLOCK_LOCKED_FOR_WRITING or READING with readers */ executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL; 48a38: 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; 48a3c: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED _ISR_Enable( level ); 48a40: 46c1 movew %d1,%sr <== NOT EXECUTED next = _Thread_queue_Dequeue( &the_rwlock->Wait_queue ); 48a42: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48a44: 4eb9 0004 a134 jsr 4a134 <_Thread_queue_Dequeue> <== NOT EXECUTED if ( next ) { 48a4a: 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 ); 48a4c: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( next ) { 48a4e: 4a80 tstl %d0 <== NOT EXECUTED 48a50: 674a beqs 48a9c <_CORE_RWLock_Release+0x90> <== NOT EXECUTED if ( next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) { 48a52: 7001 moveq #1,%d0 <== NOT EXECUTED 48a54: b0a8 0030 cmpl %a0@(48),%d0 <== NOT EXECUTED 48a58: 677e beqs 48ad8 <_CORE_RWLock_Release+0xcc> <== NOT EXECUTED } /* * Must be CORE_RWLOCK_THREAD_WAITING_FOR_READING */ the_rwlock->number_of_readers += 1; 48a5a: 52aa 0048 addql #1,%a2@(72) <== NOT EXECUTED the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING; 48a5e: 7001 moveq #1,%d0 <== NOT EXECUTED 48a60: 47f9 0004 a644 lea 4a644 <_Thread_queue_First>,%a3 <== NOT EXECUTED 48a66: 2540 0044 movel %d0,%a2@(68) <== NOT EXECUTED 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; _Thread_queue_Extract( &the_rwlock->Wait_queue, next ); 48a6a: 49f9 0004 a4f0 lea 4a4f0 <_Thread_queue_Extract>,%a4 <== NOT EXECUTED /* * Now see if more readers can be let go. */ while ( 1 ) { next = _Thread_queue_First( &the_rwlock->Wait_queue ); 48a70: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48a72: 4e93 jsr %a3@ <== NOT EXECUTED if ( !next || 48a74: 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 ); 48a76: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !next || 48a78: 4a80 tstl %d0 <== NOT EXECUTED 48a7a: 6720 beqs 48a9c <_CORE_RWLock_Release+0x90> <== NOT EXECUTED 48a7c: 7401 moveq #1,%d2 <== NOT EXECUTED 48a7e: b4a8 0030 cmpl %a0@(48),%d2 <== NOT EXECUTED 48a82: 6718 beqs 48a9c <_CORE_RWLock_Release+0x90> <== 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 ); 48a84: 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; 48a86: 52aa 0048 addql #1,%a2@(72) <== NOT EXECUTED _Thread_queue_Extract( &the_rwlock->Wait_queue, next ); 48a8a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48a8c: 4e94 jsr %a4@ <== NOT EXECUTED 48a8e: 508f addql #8,%sp <== NOT EXECUTED /* * Now see if more readers can be let go. */ while ( 1 ) { next = _Thread_queue_First( &the_rwlock->Wait_queue ); 48a90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48a92: 4e93 jsr %a3@ <== NOT EXECUTED if ( !next || 48a94: 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 ); 48a96: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !next || 48a98: 4a80 tstl %d0 <== NOT EXECUTED 48a9a: 66e0 bnes 48a7c <_CORE_RWLock_Release+0x70> <== NOT EXECUTED } /* indentation is to match _ISR_Disable at top */ return CORE_RWLOCK_SUCCESSFUL; } 48a9c: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 48aa2: 4e5e unlk %fp <== NOT EXECUTED 48aa4: 4280 clrl %d0 <== NOT EXECUTED 48aa6: 4e75 rts <== NOT EXECUTED _ISR_Enable( level ); executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE; return CORE_RWLOCK_SUCCESSFUL; } if ( the_rwlock->current_state == CORE_RWLOCK_LOCKED_FOR_READING ) { the_rwlock->number_of_readers -= 1; 48aa8: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 48aac: 5380 subql #1,%d0 <== NOT EXECUTED 48aae: 2540 0048 movel %d0,%a2@(72) <== NOT EXECUTED if ( the_rwlock->number_of_readers != 0 ) { 48ab2: 6784 beqs 48a38 <_CORE_RWLock_Release+0x2c> <== NOT EXECUTED /* must be unlocked again */ _ISR_Enable( level ); 48ab4: 46c1 movew %d1,%sr <== NOT EXECUTED } /* indentation is to match _ISR_Disable at top */ return CORE_RWLOCK_SUCCESSFUL; } 48ab6: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 48abc: 4e5e unlk %fp <== NOT EXECUTED 48abe: 4280 clrl %d0 <== NOT EXECUTED 48ac0: 4e75 rts <== NOT EXECUTED * If any thread is waiting, then we wait. */ _ISR_Disable( level ); if ( the_rwlock->current_state == CORE_RWLOCK_UNLOCKED){ _ISR_Enable( level ); 48ac2: 46c1 movew %d1,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE; 48ac4: 103c 0002 moveb #2,%d0 <== NOT EXECUTED } /* indentation is to match _ISR_Disable at top */ return CORE_RWLOCK_SUCCESSFUL; } 48ac8: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED */ _ISR_Disable( level ); if ( the_rwlock->current_state == CORE_RWLOCK_UNLOCKED){ _ISR_Enable( level ); executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE; 48ace: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED } /* indentation is to match _ISR_Disable at top */ return CORE_RWLOCK_SUCCESSFUL; } 48ad2: 4e5e unlk %fp <== NOT EXECUTED 48ad4: 4280 clrl %d0 <== NOT EXECUTED 48ad6: 4e75 rts <== NOT EXECUTED next = _Thread_queue_Dequeue( &the_rwlock->Wait_queue ); if ( next ) { if ( next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) { the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_WRITING; 48ad8: 7402 moveq #2,%d2 <== NOT EXECUTED 48ada: 2542 0044 movel %d2,%a2@(68) <== NOT EXECUTED } /* indentation is to match _ISR_Disable at top */ return CORE_RWLOCK_SUCCESSFUL; } 48ade: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 48ae4: 4e5e unlk %fp <== NOT EXECUTED 48ae6: 4280 clrl %d0 <== NOT EXECUTED 48ae8: 4e75 rts <== NOT EXECUTED ... 00048aec <_CORE_RWLock_Timeout>: void _CORE_RWLock_Timeout( Objects_Id id, void *ignored ) { 48aec: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 48af0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48af4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48af8: 4eb9 0004 9d60 jsr 49d60 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 48afe: 508f addql #8,%sp <== NOT EXECUTED 48b00: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48b04: 6618 bnes 48b1e <_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 ); 48b06: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48b08: 4eb9 0004 a768 jsr 4a768 <_Thread_queue_Process_timeout> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 48b0e: 2039 0005 c484 movel 5c484 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 48b14: 588f addql #4,%sp <== NOT EXECUTED 48b16: 5380 subql #1,%d0 <== NOT EXECUTED 48b18: 23c0 0005 c484 movel %d0,5c484 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Unnest_dispatch(); break; } } 48b1e: 4e5e unlk %fp <== NOT EXECUTED 48b20: 4e75 rts <== NOT EXECUTED ... 00047a4c <_CORE_barrier_Initialize>: void _CORE_barrier_Initialize( CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes ) { 47a4c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED the_barrier->Attributes = *the_barrier_attributes; the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 47a50: 4878 0003 pea 3 <== NOT EXECUTED void _CORE_barrier_Initialize( CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes ) { 47a54: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 47a58: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED the_barrier->Attributes = *the_barrier_attributes; the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 47a5c: 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; 47a62: 2011 movel %a1@,%d0 <== NOT EXECUTED 47a64: 2169 0004 0044 movel %a1@(4),%a0@(68) <== NOT EXECUTED the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 47a6a: 42a7 clrl %sp@- <== NOT EXECUTED CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes ) { the_barrier->Attributes = *the_barrier_attributes; 47a6c: 2140 0040 movel %d0,%a0@(64) <== NOT EXECUTED the_barrier->number_of_waiting_threads = 0; _Thread_queue_Initialize( 47a70: 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; 47a72: 42a8 0048 clrl %a0@(72) <== NOT EXECUTED _Thread_queue_Initialize( 47a76: 4eb9 0004 9864 jsr 49864 <_Thread_queue_Initialize> <== NOT EXECUTED 47a7c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED &the_barrier->Wait_queue, THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_BARRIER, CORE_BARRIER_TIMEOUT ); } 47a82: 4e5e unlk %fp <== NOT EXECUTED 47a84: 4e75 rts <== NOT EXECUTED ... 0004cdd4 <_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 ) { 4cdd4: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4cdd8: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4cddc: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4cde0: 45f9 0004 9440 lea 49440 <_Thread_queue_Dequeue>,%a2 <== NOT EXECUTED Thread_Control *the_thread; uint32_t count; count = 0; while ( (the_thread = _Thread_queue_Dequeue(&the_barrier->Wait_queue)) ) { 4cde6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4cde8: 4e92 jsr %a2@ <== NOT EXECUTED 4cdea: 4282 clrl %d2 <== NOT EXECUTED 4cdec: 588f addql #4,%sp <== NOT EXECUTED 4cdee: 4a80 tstl %d0 <== NOT EXECUTED 4cdf0: 670c beqs 4cdfe <_CORE_barrier_Release+0x2a> <== NOT EXECUTED 4cdf2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4cdf4: 4e92 jsr %a2@ <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( !_Objects_Is_local_id( the_thread->Object.id ) ) (*api_barrier_mp_support) ( the_thread, id ); #endif count++; 4cdf6: 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)) ) { 4cdf8: 588f addql #4,%sp <== NOT EXECUTED 4cdfa: 4a80 tstl %d0 <== NOT EXECUTED 4cdfc: 66f4 bnes 4cdf2 <_CORE_barrier_Release+0x1e> <== NOT EXECUTED #endif count++; } the_barrier->number_of_waiting_threads = 0; return count; } 4cdfe: 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; 4ce00: 42ab 0048 clrl %a3@(72) <== NOT EXECUTED return count; } 4ce04: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4ce0a: 4e5e unlk %fp <== NOT EXECUTED 4ce0c: 4e75 rts <== NOT EXECUTED ... 00047a88 <_CORE_barrier_Wait>: Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_barrier_API_mp_support_callout api_barrier_mp_support ) { 47a88: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 47a8c: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 47a90: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 47a94: 262e 0014 movel %fp@(20),%d3 <== NOT EXECUTED Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; 47a98: 2279 0005 b412 moveal 5b412 <_Thread_Executing>,%a1 <== NOT EXECUTED executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL; _ISR_Disable( level ); 47a9e: 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; 47aa4: 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 ) { 47aa8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 47aac: 282e 0018 movel %fp@(24),%d4 <== NOT EXECUTED Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL; _ISR_Disable( level ); 47ab0: 40c1 movew %sr,%d1 <== NOT EXECUTED 47ab2: 8081 orl %d1,%d0 <== NOT EXECUTED 47ab4: 46c0 movew %d0,%sr <== NOT EXECUTED the_barrier->number_of_waiting_threads++; 47ab6: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED 47aba: 5280 addql #1,%d0 <== NOT EXECUTED 47abc: 2140 0048 movel %d0,%a0@(72) <== NOT EXECUTED if ( the_barrier->number_of_waiting_threads == 47ac0: b0a8 0044 cmpl %a0@(68),%d0 <== NOT EXECUTED 47ac4: 6606 bnes 47acc <_CORE_barrier_Wait+0x44> <== NOT EXECUTED the_barrier->Attributes.maximum_count) { if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) { 47ac6: 4aa8 0040 tstl %a0@(64) <== NOT EXECUTED 47aca: 672e beqs 47afa <_CORE_barrier_Wait+0x72> <== 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; 47acc: 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; 47ace: 2342 0020 movel %d2,%a1@(32) <== NOT EXECUTED 47ad2: 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; 47ad6: 2348 0044 movel %a0,%a1@(68) <== NOT EXECUTED executing->Wait.id = id; _ISR_Enable( level ); 47ada: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout ); 47adc: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 47ae0: 203c 0004 9968 movel #301416,%d0 <== NOT EXECUTED 47ae6: 2d40 0010 movel %d0,%fp@(16) <== NOT EXECUTED 47aea: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 47aee: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 47af2: 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 ); 47af4: 4ef9 0004 95a8 jmp 495a8 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _ISR_Disable( level ); the_barrier->number_of_waiting_threads++; 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; 47afa: 7001 moveq #1,%d0 <== NOT EXECUTED 47afc: 2340 0034 movel %d0,%a1@(52) <== NOT EXECUTED _ISR_Enable( level ); 47b00: 46c1 movew %d1,%sr <== NOT EXECUTED _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support ); 47b02: 2d44 0010 movel %d4,%fp@(16) <== NOT EXECUTED 47b06: 2d42 000c movel %d2,%fp@(12) <== NOT EXECUTED 47b0a: 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 ); } 47b0e: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 47b12: 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 ); 47b14: 4ef9 0004 cdd4 jmp 4cdd4 <_CORE_barrier_Release> <== NOT EXECUTED ... 00054254 <_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 ) { 54254: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 54258: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 5425c: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 54260: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 54264: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED Thread_Control *the_thread; uint32_t number_broadcasted; Thread_Wait_information *waitp; if ( size > the_message_queue->maximum_message_size ) { 54268: b6ab 004c cmpl %a3@(76),%d3 <== NOT EXECUTED 5426c: 6268 bhis 542d6 <_CORE_message_queue_Broadcast+0x82> <== 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 ) { 5426e: 4aab 0048 tstl %a3@(72) <== NOT EXECUTED 54272: 6650 bnes 542c4 <_CORE_message_queue_Broadcast+0x70> <== 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))) { 54274: 2f0b movel %a3,%sp@- <== NOT EXECUTED 54276: 49f9 0005 67ec lea 567ec <_Thread_queue_Dequeue>,%a4 <== NOT EXECUTED 5427c: 4e94 jsr %a4@ <== NOT EXECUTED 5427e: 4282 clrl %d2 <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 54280: 4bf9 0005 c270 lea 5c270 ,%a5 <== NOT EXECUTED 54286: 2440 moveal %d0,%a2 <== NOT EXECUTED 54288: 588f addql #4,%sp <== NOT EXECUTED 5428a: 4a80 tstl %d0 <== NOT EXECUTED 5428c: 6724 beqs 542b2 <_CORE_message_queue_Broadcast+0x5e> <== NOT EXECUTED 5428e: 2f03 movel %d3,%sp@- <== NOT EXECUTED waitp = &the_thread->Wait; number_broadcasted += 1; 54290: 5282 addql #1,%d2 <== NOT EXECUTED 54292: 2f04 movel %d4,%sp@- <== NOT EXECUTED 54294: 2f2a 002c movel %a2@(44),%sp@- <== NOT EXECUTED 54298: 4e95 jsr %a5@ <== NOT EXECUTED buffer, waitp->return_argument_second.mutable_object, size ); *(size_t *) the_thread->Wait.return_argument = size; 5429a: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED 5429e: 2083 movel %d3,%a0@ <== NOT EXECUTED 542a0: dffc 0000 000c addal #12,%sp <== 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))) { 542a6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 542a8: 4e94 jsr %a4@ <== NOT EXECUTED 542aa: 588f addql #4,%sp <== NOT EXECUTED 542ac: 2440 moveal %d0,%a2 <== NOT EXECUTED 542ae: 4a80 tstl %d0 <== NOT EXECUTED 542b0: 66dc bnes 5428e <_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; 542b2: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 542b6: 2082 movel %d2,%a0@ <== NOT EXECUTED return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; } 542b8: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 542be: 4e5e unlk %fp <== NOT EXECUTED if ( !_Objects_Is_local_id( the_thread->Object.id ) ) (*api_message_queue_mp_support) ( the_thread, id ); #endif } *count = number_broadcasted; 542c0: 4280 clrl %d0 <== NOT EXECUTED return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; } 542c2: 4e75 rts <== 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; 542c4: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED #endif } *count = number_broadcasted; return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; } 542c8: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 542ce: 4e5e unlk %fp <== 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; 542d0: 4280 clrl %d0 <== NOT EXECUTED 542d2: 4290 clrl %a0@ <== NOT EXECUTED #endif } *count = number_broadcasted; return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; } 542d4: 4e75 rts <== NOT EXECUTED 542d6: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 542dc: 4e5e unlk %fp <== NOT EXECUTED { Thread_Control *the_thread; uint32_t number_broadcasted; Thread_Wait_information *waitp; if ( size > the_message_queue->maximum_message_size ) { 542de: 7001 moveq #1,%d0 <== NOT EXECUTED #endif } *count = number_broadcasted; return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; } 542e0: 4e75 rts <== NOT EXECUTED ... 000536f4 <_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 ) { 536f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 536f8: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * This will flush blocked threads whether they were blocked on * a send or receive. */ _Thread_queue_Flush( 536fa: 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 ) { 536fe: 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( 53702: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 53706: 2f0a movel %a2,%sp@- <== NOT EXECUTED 53708: 4eb9 0004 df1c jsr 4df1c <_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 ) 5370e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 53714: 4aaa 0048 tstl %a2@(72) <== NOT EXECUTED 53718: 6612 bnes 5372c <_CORE_message_queue_Close+0x38> <== NOT EXECUTED (void) _CORE_message_queue_Flush_support( the_message_queue ); (void) _Workspace_Free( the_message_queue->message_buffers ); 5371a: 2d6a 005c 0008 movel %a2@(92),%fp@(8) <== NOT EXECUTED } 53720: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 53724: 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 ); 53726: 4ef9 0004 ec6c jmp 4ec6c <_Workspace_Free> <== NOT EXECUTED * 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 ) (void) _CORE_message_queue_Flush_support( the_message_queue ); 5372c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5372e: 4eb9 0005 3748 jsr 53748 <_CORE_message_queue_Flush_support> <== NOT EXECUTED (void) _Workspace_Free( the_message_queue->message_buffers ); 53734: 2d6a 005c 0008 movel %a2@(92),%fp@(8) <== NOT EXECUTED } 5373a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED * 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 ) (void) _CORE_message_queue_Flush_support( the_message_queue ); 5373e: 588f addql #4,%sp <== NOT EXECUTED (void) _Workspace_Free( the_message_queue->message_buffers ); } 53740: 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 ); 53742: 4ef9 0004 ec6c jmp 4ec6c <_Workspace_Free> <== NOT EXECUTED 00054338 <_CORE_message_queue_Flush>: */ uint32_t _CORE_message_queue_Flush( CORE_message_queue_Control *the_message_queue ) { 54338: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5433c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( the_message_queue->number_of_pending_messages != 0 ) 54340: 4aa8 0048 tstl %a0@(72) <== NOT EXECUTED 54344: 6606 bnes 5434c <_CORE_message_queue_Flush+0x14> <== NOT EXECUTED return _CORE_message_queue_Flush_support( the_message_queue ); else return 0; } 54346: 4e5e unlk %fp <== NOT EXECUTED 54348: 4280 clrl %d0 <== NOT EXECUTED 5434a: 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 ); 5434c: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED else return 0; } 54350: 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 ); 54352: 4ef9 0005 4358 jmp 54358 <_CORE_message_queue_Flush_support> <== NOT EXECUTED 00053748 <_CORE_message_queue_Flush_support>: */ uint32_t _CORE_message_queue_Flush_support( CORE_message_queue_Control *the_message_queue ) { 53748: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 5374c: 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 ); 53750: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ uint32_t _CORE_message_queue_Flush_support( CORE_message_queue_Control *the_message_queue ) { 53756: 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 ); 5375a: 40c1 movew %sr,%d1 <== NOT EXECUTED 5375c: 8081 orl %d1,%d0 <== NOT EXECUTED 5375e: 46c0 movew %d0,%sr <== NOT EXECUTED inactive_first = the_message_queue->Inactive_messages.first; message_queue_first = the_message_queue->Pending_messages.first; 53760: 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; 53764: 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; 53768: 2268 0058 moveal %a0@(88),%a1 <== NOT EXECUTED the_message_queue->Inactive_messages.first = message_queue_first; 5376c: 214a 0068 movel %a2,%a0@(104) <== NOT EXECUTED message_queue_last->next = inactive_first; inactive_first->previous = message_queue_last; message_queue_first->previous = 53770: 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; 53774: 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; 53778: 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; 5377c: 228b movel %a3,%a1@ <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 5377e: 43e8 0054 lea %a0@(84),%a1 <== NOT EXECUTED inactive_first->previous = message_queue_last; message_queue_first->previous = 53782: 254c 0004 movel %a4,%a2@(4) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 53786: 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); 5378a: 2149 0050 movel %a1,%a0@(80) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 5378e: 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; 53792: 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; 53796: 42a8 0054 clrl %a0@(84) <== NOT EXECUTED _ISR_Enable( level ); 5379a: 46c1 movew %d1,%sr <== NOT EXECUTED return count; } 5379c: 4cd7 1c00 moveml %sp@,%a2-%a4 <== NOT EXECUTED 537a0: 4e5e unlk %fp <== NOT EXECUTED 537a2: 4e75 rts 00052800 <_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 ) { 52800: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 52804: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 52808: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 5280c: 222e 0014 movel %fp@(20),%d1 <== NOT EXECUTED 52810: 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)) { 52814: 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; 52816: 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)) { 5281a: 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; 5281c: 42aa 0048 clrl %a2@(72) <== NOT EXECUTED the_message_queue->maximum_message_size = maximum_message_size; 52820: 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; 52824: 42aa 0060 clrl %a2@(96) <== NOT EXECUTED the_message_queue->notify_argument = the_argument; 52828: 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)) { 5282c: 4a80 tstl %d0 <== NOT EXECUTED 5282e: 6620 bnes 52850 <_CORE_message_queue_Initialize+0x50> <== NOT EXECUTED 52830: 2001 movel %d1,%d0 <== 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 * 52832: 2400 movel %d0,%d2 <== NOT EXECUTED 52834: 0682 0000 0014 addil #20,%d2 <== NOT EXECUTED 5283a: 2202 movel %d2,%d1 <== NOT EXECUTED 5283c: 4c03 1800 mulsl %d3,%d1 <== NOT EXECUTED (allocated_message_size + sizeof(CORE_message_queue_Buffer_control)); if (message_buffering_required < allocated_message_size) 52840: b081 cmpl %d1,%d0 <== NOT EXECUTED 52842: 631c blss 52860 <_CORE_message_queue_Initialize+0x60> <== NOT EXECUTED THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_MESSAGE, CORE_MESSAGE_QUEUE_STATUS_TIMEOUT ); return true; 52844: 4200 clrb %d0 <== NOT EXECUTED } 52846: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 5284c: 4e5e unlk %fp <== NOT EXECUTED 5284e: 4e75 rts <== NOT EXECUTED * check for overflow on adding overhead to each message. */ allocated_message_size = maximum_message_size; if (allocated_message_size & (sizeof(uint32_t) - 1)) { allocated_message_size += sizeof(uint32_t); 52850: 2001 movel %d1,%d0 <== NOT EXECUTED 52852: 5880 addql #4,%d0 <== NOT EXECUTED allocated_message_size &= ~(sizeof(uint32_t) - 1); 52854: 74fc moveq #-4,%d2 <== NOT EXECUTED 52856: c082 andl %d2,%d0 <== NOT EXECUTED } if (allocated_message_size < maximum_message_size) 52858: b081 cmpl %d1,%d0 <== NOT EXECUTED 5285a: 64d6 bccs 52832 <_CORE_message_queue_Initialize+0x32> <== NOT EXECUTED THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_MESSAGE, CORE_MESSAGE_QUEUE_STATUS_TIMEOUT ); return true; 5285c: 4200 clrb %d0 <== NOT EXECUTED 5285e: 60e6 bras 52846 <_CORE_message_queue_Initialize+0x46> <== NOT EXECUTED return false; /* * Attempt to allocate the message memory */ the_message_queue->message_buffers = (CORE_message_queue_Buffer *) 52860: 2f01 movel %d1,%sp@- <== NOT EXECUTED 52862: 4eb9 0004 fce0 jsr 4fce0 <_Workspace_Allocate> <== NOT EXECUTED _Workspace_Allocate( message_buffering_required ); if (the_message_queue->message_buffers == 0) 52868: 588f addql #4,%sp <== NOT EXECUTED return false; /* * Attempt to allocate the message memory */ the_message_queue->message_buffers = (CORE_message_queue_Buffer *) 5286a: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED _Workspace_Allocate( message_buffering_required ); if (the_message_queue->message_buffers == 0) 5286e: 67d4 beqs 52844 <_CORE_message_queue_Initialize+0x44> <== NOT EXECUTED /* * Initialize the pool of inactive messages, pending messages, * and set of waiting threads. */ _Chain_Initialize ( 52870: 2f02 movel %d2,%sp@- <== NOT EXECUTED 52872: 2f03 movel %d3,%sp@- <== NOT EXECUTED 52874: 2f00 movel %d0,%sp@- <== NOT EXECUTED 52876: 486a 0068 pea %a2@(104) <== NOT EXECUTED 5287a: 4eb9 0005 2694 jsr 52694 <_Chain_Initialize> <== NOT EXECUTED allocated_message_size + sizeof( CORE_message_queue_Buffer_control ) ); _Chain_Initialize_empty( &the_message_queue->Pending_messages ); _Thread_queue_Initialize( 52880: 4878 0006 pea 6 <== NOT EXECUTED 52884: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 52888: 7001 moveq #1,%d0 <== NOT EXECUTED 5288a: b090 cmpl %a0@,%d0 <== NOT EXECUTED 5288c: 57c0 seq %d0 <== NOT EXECUTED 5288e: 4878 0080 pea 80 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 52892: 41ea 0054 lea %a2@(84),%a0 <== NOT EXECUTED 52896: 49c0 extbl %d0 <== NOT EXECUTED 52898: 2548 0050 movel %a0,%a2@(80) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 5289c: 41ea 0050 lea %a2@(80),%a0 <== NOT EXECUTED 528a0: 4480 negl %d0 <== NOT EXECUTED 528a2: 2548 0058 movel %a0,%a2@(88) <== NOT EXECUTED 528a6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 528a8: 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; 528aa: 42aa 0054 clrl %a2@(84) <== NOT EXECUTED 528ae: 4eb9 0004 ef68 jsr 4ef68 <_Thread_queue_Initialize> <== NOT EXECUTED 528b4: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED STATES_WAITING_FOR_MESSAGE, CORE_MESSAGE_QUEUE_STATUS_TIMEOUT ); return true; } 528ba: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 528c0: 4e5e unlk %fp <== NOT EXECUTED allocated_message_size + sizeof( CORE_message_queue_Buffer_control ) ); _Chain_Initialize_empty( &the_message_queue->Pending_messages ); _Thread_queue_Initialize( 528c2: 7001 moveq #1,%d0 <== NOT EXECUTED STATES_WAITING_FOR_MESSAGE, CORE_MESSAGE_QUEUE_STATUS_TIMEOUT ); return true; } 528c4: 4e75 rts <== NOT EXECUTED ... 00056b64 <_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 ) { 56b64: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 56b68: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 56b6c: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 56b70: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 56b74: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED ISR_Level level; bool notify = false; the_message->priority = submit_type; 56b78: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED switch ( submit_type ) { 56b7c: 0c80 8000 0000 cmpil #-2147483648,%d0 <== NOT EXECUTED 56b82: 6700 00b4 beqw 56c38 <_CORE_message_queue_Insert_message+0xd4> <== NOT EXECUTED 56b86: 0c80 7fff ffff cmpil #2147483647,%d0 <== NOT EXECUTED 56b8c: 6768 beqs 56bf6 <_CORE_message_queue_Insert_message+0x92> <== 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; 56b8e: 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; 56b92: 220b movel %a3,%d1 <== NOT EXECUTED 56b94: 0681 0000 0054 addil #84,%d1 <== NOT EXECUTED while ( !_Chain_Is_tail( the_header, the_node ) ) { 56b9a: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 56b9c: 670c beqs 56baa <_CORE_message_queue_Insert_message+0x46> <== NOT EXECUTED this_message = (CORE_message_queue_Buffer_control *) the_node; if ( this_message->priority <= the_message->priority ) { 56b9e: b0a8 0008 cmpl %a0@(8),%d0 <== NOT EXECUTED 56ba2: 6d08 blts 56bac <_CORE_message_queue_Insert_message+0x48> <== NOT EXECUTED the_node = the_node->next; 56ba4: 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 ) ) { 56ba6: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 56ba8: 66f4 bnes 56b9e <_CORE_message_queue_Insert_message+0x3a> <== NOT EXECUTED 56baa: 2041 moveal %d1,%a0 <== NOT EXECUTED continue; } break; } _ISR_Disable( level ); 56bac: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 56bb2: 40c2 movew %sr,%d2 <== NOT EXECUTED 56bb4: 8082 orl %d2,%d0 <== NOT EXECUTED 56bb6: 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 ); 56bb8: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 56bbc: 2250 moveal %a0@,%a1 <== NOT EXECUTED } break; } _ISR_Disable( level ); if ( the_message_queue->number_of_pending_messages++ == 0 ) 56bbe: 222b 0048 movel %a3@(72),%d1 <== NOT EXECUTED after_node->next = the_node; 56bc2: 208a movel %a2,%a0@ <== NOT EXECUTED 56bc4: 4a81 tstl %d1 <== NOT EXECUTED 56bc6: 57c0 seq %d0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 56bc8: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 56bcc: 5281 addql #1,%d1 <== NOT EXECUTED 56bce: 4480 negl %d0 <== NOT EXECUTED 56bd0: 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; 56bd4: 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; 56bd8: 2489 movel %a1,%a2@ <== NOT EXECUTED notify = true; _Chain_Insert_unprotected( the_node->previous, &the_message->Node ); _ISR_Enable( level ); 56bda: 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 ) 56bdc: 4a00 tstb %d0 <== NOT EXECUTED 56bde: 6750 beqs 56c30 <_CORE_message_queue_Insert_message+0xcc> <== NOT EXECUTED 56be0: 202b 0060 movel %a3@(96),%d0 <== NOT EXECUTED 56be4: 674a beqs 56c30 <_CORE_message_queue_Insert_message+0xcc> <== NOT EXECUTED (*the_message_queue->notify_handler)( the_message_queue->notify_argument ); 56be6: 2240 moveal %d0,%a1 <== NOT EXECUTED 56be8: 2d6b 0064 0008 movel %a3@(100),%fp@(8) <== NOT EXECUTED } 56bee: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 56bf2: 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 ); 56bf4: 4ed1 jmp %a1@ <== NOT EXECUTED the_message->priority = submit_type; switch ( submit_type ) { case CORE_MESSAGE_QUEUE_SEND_REQUEST: _ISR_Disable( level ); 56bf6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 56bfc: 40c2 movew %sr,%d2 <== NOT EXECUTED 56bfe: 8082 orl %d2,%d0 <== NOT EXECUTED 56c00: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_message_queue->number_of_pending_messages++ == 0 ) 56c02: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 56c06: 41eb 0054 lea %a3@(84),%a0 <== NOT EXECUTED 56c0a: 2488 movel %a0,%a2@ <== NOT EXECUTED old_last_node = the_chain->last; 56c0c: 206b 0058 moveal %a3@(88),%a0 <== NOT EXECUTED 56c10: 2200 movel %d0,%d1 <== NOT EXECUTED 56c12: 5281 addql #1,%d1 <== NOT EXECUTED 56c14: 2741 0048 movel %d1,%a3@(72) <== NOT EXECUTED 56c18: 4a80 tstl %d0 <== NOT EXECUTED 56c1a: 57c1 seq %d1 <== NOT EXECUTED the_chain->last = the_node; 56c1c: 274a 0058 movel %a2,%a3@(88) <== NOT EXECUTED 56c20: 2001 movel %d1,%d0 <== NOT EXECUTED 56c22: 4480 negl %d0 <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 56c24: 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; 56c28: 208a movel %a2,%a0@ <== NOT EXECUTED notify = true; _CORE_message_queue_Append_unprotected(the_message_queue, the_message); _ISR_Enable( level ); 56c2a: 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 ) 56c2c: 4a00 tstb %d0 <== NOT EXECUTED 56c2e: 66b0 bnes 56be0 <_CORE_message_queue_Insert_message+0x7c> <== NOT EXECUTED (*the_message_queue->notify_handler)( the_message_queue->notify_argument ); } 56c30: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 56c34: 4e5e unlk %fp <== NOT EXECUTED 56c36: 4e75 rts <== NOT EXECUTED notify = true; _CORE_message_queue_Append_unprotected(the_message_queue, the_message); _ISR_Enable( level ); break; case CORE_MESSAGE_QUEUE_URGENT_REQUEST: _ISR_Disable( level ); 56c38: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 56c3e: 40c2 movew %sr,%d2 <== NOT EXECUTED 56c40: 8082 orl %d2,%d0 <== NOT EXECUTED 56c42: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_message_queue->number_of_pending_messages++ == 0 ) 56c44: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Head( Chain_Control *the_chain ) { return (Chain_Node *) the_chain; 56c48: 41eb 0050 lea %a3@(80),%a0 <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 56c4c: 2250 moveal %a0@,%a1 <== NOT EXECUTED 56c4e: 2200 movel %d0,%d1 <== NOT EXECUTED after_node->next = the_node; 56c50: 208a movel %a2,%a0@ <== NOT EXECUTED 56c52: 5281 addql #1,%d1 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 56c54: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 56c58: 2741 0048 movel %d1,%a3@(72) <== NOT EXECUTED 56c5c: 4a80 tstl %d0 <== NOT EXECUTED 56c5e: 57c1 seq %d1 <== NOT EXECUTED before_node = after_node->next; after_node->next = the_node; the_node->next = before_node; before_node->previous = the_node; 56c60: 234a 0004 movel %a2,%a1@(4) <== NOT EXECUTED 56c64: 2001 movel %d1,%d0 <== NOT EXECUTED 56c66: 4480 negl %d0 <== 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; 56c68: 2489 movel %a1,%a2@ <== NOT EXECUTED notify = true; _CORE_message_queue_Prepend_unprotected(the_message_queue, the_message); _ISR_Enable( level ); 56c6a: 46c2 movew %d2,%sr <== NOT EXECUTED 56c6c: 6000 ff6e braw 56bdc <_CORE_message_queue_Insert_message+0x78> <== NOT EXECUTED 000537a4 <_CORE_message_queue_Seize>: void *buffer, size_t *size_p, bool wait, Watchdog_Interval timeout ) { 537a4: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 537a8: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED 537ac: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED 537b0: 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; 537b4: 2079 0006 8242 moveal 68242 <_Thread_Executing>,%a0 <== NOT EXECUTED executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; _ISR_Disable( level ); 537ba: 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; 537c0: 42a8 0034 clrl %a0@(52) <== NOT EXECUTED void *buffer, size_t *size_p, bool wait, Watchdog_Interval timeout ) { 537c4: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 537c8: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 537cc: 226e 0014 moveal %fp@(20),%a1 <== NOT EXECUTED 537d0: 242e 0018 movel %fp@(24),%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 ); 537d4: 40c1 movew %sr,%d1 <== NOT EXECUTED 537d6: 8081 orl %d1,%d0 <== NOT EXECUTED 537d8: 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)); 537da: 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)) 537de: 200b movel %a3,%d0 <== NOT EXECUTED 537e0: 0680 0000 0054 addil #84,%d0 <== NOT EXECUTED 537e6: b08a cmpl %a2,%d0 <== NOT EXECUTED 537e8: 6700 008c beqw 53876 <_CORE_message_queue_Seize+0xd2> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 537ec: 2052 moveal %a2@,%a0 <== NOT EXECUTED the_chain->first = new_first; 537ee: 2748 0050 movel %a0,%a3@(80) <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 537f2: 49eb 0050 lea %a3@(80),%a4 <== 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; 537f6: 53ab 0048 subql #1,%a3@(72) <== NOT EXECUTED 537fa: 214c 0004 movel %a4,%a0@(4) <== NOT EXECUTED _ISR_Enable( level ); 537fe: 46c1 movew %d1,%sr <== NOT EXECUTED *size_p = the_message->Contents.size; _Thread_Executing->Wait.count = the_message->priority; 53800: 2079 0006 8242 moveal 68242 <_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; 53806: 22aa 000c movel %a2@(12),%a1@ <== NOT EXECUTED _Thread_Executing->Wait.count = the_message->priority; _CORE_message_queue_Copy_buffer(the_message->Contents.buffer,buffer,*size_p); 5380a: 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; 5380c: 216a 0008 0024 movel %a2@(8),%a0@(36) <== NOT EXECUTED _CORE_message_queue_Copy_buffer(the_message->Contents.buffer,buffer,*size_p); 53812: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 53818: 2f11 movel %a1@,%sp@- <== NOT EXECUTED 5381a: 49f9 0005 88c4 lea 588c4 ,%a4 <== NOT EXECUTED 53820: 2f02 movel %d2,%sp@- <== NOT EXECUTED 53822: 2f03 movel %d3,%sp@- <== NOT EXECUTED 53824: 4e94 jsr %a4@ <== 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 ); 53826: 2f0b movel %a3,%sp@- <== NOT EXECUTED 53828: 4eb9 0004 db34 jsr 4db34 <_Thread_queue_Dequeue> <== NOT EXECUTED if ( !the_thread ) { 5382e: 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 ); 53834: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !the_thread ) { 53836: 4a80 tstl %d0 <== NOT EXECUTED 53838: 6700 008a beqw 538c4 <_CORE_message_queue_Seize+0x120> <== 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; 5383c: 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; 53840: 2568 0024 0008 movel %a0@(36),%a2@(8) <== NOT EXECUTED the_message->Contents.size = (size_t) the_thread->Wait.option; 53846: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED 5384a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 5384c: 2f28 002c movel %a0@(44),%sp@- <== NOT EXECUTED 53850: 2f02 movel %d2,%sp@- <== NOT EXECUTED 53852: 4e94 jsr %a4@ <== NOT EXECUTED the_thread->Wait.return_argument_second.immutable_object, the_message->Contents.buffer, the_message->Contents.size ); _CORE_message_queue_Insert_message( 53854: 2d6a 0008 0010 movel %a2@(8),%fp@(16) <== NOT EXECUTED 5385a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 53860: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 53864: 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 ); } 53868: 4cee 1c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a4 <== NOT EXECUTED 5386e: 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( 53870: 4ef9 0005 6b64 jmp 56b64 <_CORE_message_queue_Insert_message> <== NOT EXECUTED the_message->priority ); return; } if ( !wait ) { 53876: 4a02 tstb %d2 <== NOT EXECUTED 53878: 6612 bnes 5388c <_CORE_message_queue_Seize+0xe8> <== NOT EXECUTED _ISR_Enable( level ); 5387a: 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 ); } 5387c: 4cee 1c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a4 <== NOT EXECUTED return; } if ( !wait ) { _ISR_Enable( level ); executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT; 53882: 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 ); } 53884: 4e5e unlk %fp <== NOT EXECUTED return; } if ( !wait ) { _ISR_Enable( level ); executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT; 53886: 2140 0034 movel %d0,%a0@(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 ); } 5388a: 4e75 rts <== NOT EXECUTED 5388c: 7001 moveq #1,%d0 <== NOT EXECUTED 5388e: 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; 53892: 2149 0028 movel %a1,%a0@(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; 53896: 214c 0020 movel %a4,%a0@(32) <== NOT EXECUTED executing->Wait.return_argument_second.mutable_object = buffer; 5389a: 2143 002c movel %d3,%a0@(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; 5389e: 214b 0044 movel %a3,%a0@(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 ); 538a2: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); 538a4: 49f9 0004 e05c lea 4e05c <_Thread_queue_Timeout>,%a4 <== NOT EXECUTED 538aa: 2d44 000c movel %d4,%fp@(12) <== NOT EXECUTED 538ae: 2d4c 0010 movel %a4,%fp@(16) <== NOT EXECUTED 538b2: 2d4b 0008 movel %a3,%fp@(8) <== NOT EXECUTED } 538b6: 4cee 1c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a4 <== NOT EXECUTED 538bc: 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 ); 538be: 4ef9 0004 dc9c jmp 4dc9c <_Thread_queue_Enqueue_with_handler> <== 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 ); 538c4: d7fc 0000 0068 addal #104,%a3 <== NOT EXECUTED 538ca: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 538ce: 2d4b 0008 movel %a3,%fp@(8) <== NOT EXECUTED } 538d2: 4cee 1c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a4 <== NOT EXECUTED 538d8: 4e5e unlk %fp <== NOT EXECUTED 538da: 4ef9 0004 c078 jmp 4c078 <_Chain_Append> <== NOT EXECUTED 000538e0 <_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 ) { 538e0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 538e4: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 538e8: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 538ec: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 538f0: 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 ) { 538f4: b6ab 004c cmpl %a3@(76),%d3 <== NOT EXECUTED 538f8: 627c bhis 53976 <_CORE_message_queue_Submit+0x96> <== NOT EXECUTED /* * Is there a thread currently waiting on this message queue? */ if ( the_message_queue->number_of_pending_messages == 0 ) { 538fa: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 538fe: 6700 0082 beqw 53982 <_CORE_message_queue_Submit+0xa2> <== 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 < 53902: b0ab 0044 cmpl %a3@(68),%d0 <== NOT EXECUTED 53906: 6500 00d4 bcsw 539dc <_CORE_message_queue_Submit+0xfc> <== 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 ) { 5390a: 4a02 tstb %d2 <== NOT EXECUTED 5390c: 6700 00b6 beqw 539c4 <_CORE_message_queue_Submit+0xe4> <== 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() ) { 53910: 2039 0006 8222 movel 68222 <_ISR_Nest_level>,%d0 <== NOT EXECUTED 53916: 6600 00b8 bnew 539d0 <_CORE_message_queue_Submit+0xf0> <== NOT EXECUTED */ { Thread_Control *executing = _Thread_Executing; _ISR_Disable( level ); 5391a: 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; 53920: 2079 0006 8242 moveal 68242 <_Thread_Executing>,%a0 <== NOT EXECUTED _ISR_Disable( level ); 53926: 40c0 movew %sr,%d0 <== NOT EXECUTED 53928: 8280 orl %d0,%d1 <== NOT EXECUTED 5392a: 46c1 movew %d1,%sr <== NOT EXECUTED 5392c: 7201 moveq #1,%d1 <== NOT EXECUTED 5392e: 2741 0030 movel %d1,%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.immutable_object = buffer; executing->Wait.option = (uint32_t) size; executing->Wait.count = submit_type; 53932: 222e 001c movel %fp@(28),%d1 <== 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; executing->Wait.id = id; 53936: 216e 0014 0020 movel %fp@(20),%a0@(32) <== NOT EXECUTED executing->Wait.return_argument_second.immutable_object = buffer; executing->Wait.option = (uint32_t) size; executing->Wait.count = submit_type; 5393c: 2141 0024 movel %d1,%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; 53940: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED executing->Wait.option = (uint32_t) size; 53944: 2143 0030 movel %d3,%a0@(48) <== 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; 53948: 2141 002c movel %d1,%a0@(44) <== 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; 5394c: 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 ); 53950: 46c0 movew %d0,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); 53952: 4879 0004 e05c pea 4e05c <_Thread_queue_Timeout> <== NOT EXECUTED 53958: 2f2e 0024 movel %fp@(36),%sp@- <== NOT EXECUTED 5395c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 5395e: 4eb9 0004 dc9c jsr 4dc9c <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED 53964: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT; } 5396a: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 53970: 4e5e unlk %fp <== NOT EXECUTED executing->Wait.return_argument_second.immutable_object = buffer; executing->Wait.option = (uint32_t) size; executing->Wait.count = submit_type; _ISR_Enable( level ); _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); 53972: 7007 moveq #7,%d0 <== NOT EXECUTED } return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT; } 53974: 4e75 rts <== NOT EXECUTED 53976: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 5397c: 4e5e unlk %fp <== NOT EXECUTED { ISR_Level level; CORE_message_queue_Buffer_control *the_message; Thread_Control *the_thread; if ( size > the_message_queue->maximum_message_size ) { 5397e: 7001 moveq #1,%d0 <== NOT EXECUTED _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); } return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT; } 53980: 4e75 rts <== 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 ); 53982: 2f0b movel %a3,%sp@- <== NOT EXECUTED 53984: 4eb9 0004 db34 jsr 4db34 <_Thread_queue_Dequeue> <== NOT EXECUTED if ( the_thread ) { 5398a: 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 ); 5398c: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( the_thread ) { 5398e: 4a80 tstl %d0 <== NOT EXECUTED 53990: 6700 0096 beqw 53a28 <_CORE_message_queue_Submit+0x148> <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 53994: 2f03 movel %d3,%sp@- <== NOT EXECUTED 53996: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5399a: 2f2a 002c movel %a2@(44),%sp@- <== NOT EXECUTED 5399e: 4eb9 0005 88c4 jsr 588c4 <== 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; 539a4: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED the_thread->Wait.count = submit_type; 539a8: 222e 001c movel %fp@(28),%d1 <== 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; 539ac: 2083 movel %d3,%a0@ <== NOT EXECUTED the_thread->Wait.count = submit_type; 539ae: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 539b4: 4280 clrl %d0 <== NOT EXECUTED 539b6: 2541 0024 movel %d1,%a2@(36) <== NOT EXECUTED _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); } return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT; } 539ba: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 539c0: 4e5e unlk %fp <== NOT EXECUTED 539c2: 4e75 rts <== NOT EXECUTED 539c4: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 539ca: 4e5e unlk %fp <== 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 ) { 539cc: 7002 moveq #2,%d0 <== NOT EXECUTED _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); } return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT; } 539ce: 4e75 rts <== NOT EXECUTED 539d0: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 539d6: 4e5e unlk %fp <== NOT EXECUTED _ISR_Enable( level ); _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); } return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT; 539d8: 7003 moveq #3,%d0 <== NOT EXECUTED } 539da: 4e75 rts <== 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 *) 539dc: 486b 0068 pea %a3@(104) <== NOT EXECUTED 539e0: 4eb9 0004 c0b0 jsr 4c0b0 <_Chain_Get> <== NOT EXECUTED /* * NOTE: If the system is consistent, this error should never occur. */ if ( !the_message ) { 539e6: 588f addql #4,%sp <== NOT EXECUTED 539e8: 2440 moveal %d0,%a2 <== NOT EXECUTED 539ea: 4a80 tstl %d0 <== NOT EXECUTED 539ec: 67e2 beqs 539d0 <_CORE_message_queue_Submit+0xf0> <== NOT EXECUTED const void *source, void *destination, size_t size ) { memcpy(destination, source, size); 539ee: 2f03 movel %d3,%sp@- <== NOT EXECUTED 539f0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 539f4: 486a 0010 pea %a2@(16) <== NOT EXECUTED 539f8: 4eb9 0005 88c4 jsr 588c4 <== NOT EXECUTED buffer, the_message->Contents.buffer, size ); the_message->Contents.size = size; the_message->priority = submit_type; 539fe: 202e 001c movel %fp@(28),%d0 <== NOT EXECUTED _CORE_message_queue_Copy_buffer( buffer, the_message->Contents.buffer, size ); the_message->Contents.size = size; 53a02: 2543 000c movel %d3,%a2@(12) <== NOT EXECUTED the_message->priority = submit_type; 53a06: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED _CORE_message_queue_Insert_message( 53a0a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 53a0c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 53a0e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 53a10: 4eb9 0005 6b64 jsr 56b64 <_CORE_message_queue_Insert_message> <== NOT EXECUTED 53a16: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); } return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT; } 53a1c: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 53a22: 4e5e unlk %fp <== NOT EXECUTED size ); the_message->Contents.size = size; the_message->priority = submit_type; _CORE_message_queue_Insert_message( 53a24: 4280 clrl %d0 <== NOT EXECUTED _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); } return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT; } 53a26: 4e75 rts <== 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 ); if ( the_thread ) { 53a28: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 53a2c: 6000 fed4 braw 53902 <_CORE_message_queue_Submit+0x22> <== NOT EXECUTED 0004685c <_CORE_mutex_Flush>: void _CORE_mutex_Flush( CORE_mutex_Control *the_mutex, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { 4685c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Thread_queue_Flush( &the_mutex->Wait_queue, remote_extract_callout, status ); } 46860: 4e5e unlk %fp <== NOT EXECUTED CORE_mutex_Control *the_mutex, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { _Thread_queue_Flush( 46862: 4ef9 0004 85ec jmp 485ec <_Thread_queue_Flush> <== NOT EXECUTED 00046868 <_CORE_mutex_Initialize>: CORE_mutex_Status _CORE_mutex_Initialize( CORE_mutex_Control *the_mutex, CORE_mutex_Attributes *the_mutex_attributes, uint32_t initial_lock ) { 46868: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4686c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4686e: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 46872: 226e 0008 moveal %fp@(8),%a1 <== 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; 46876: 204a moveal %a2,%a0 <== NOT EXECUTED 46878: 2358 0040 movel %a0@+,%a1@(64) <== NOT EXECUTED CORE_mutex_Status _CORE_mutex_Initialize( CORE_mutex_Control *the_mutex, CORE_mutex_Attributes *the_mutex_attributes, uint32_t initial_lock ) { 4687c: 202e 0010 movel %fp@(16),%d0 <== 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; 46880: 2358 0044 movel %a0@+,%a1@(68) <== NOT EXECUTED 46884: 2358 0048 movel %a0@+,%a1@(72) <== NOT EXECUTED 46888: 3350 004c movew %a0@,%a1@(76) <== NOT EXECUTED the_mutex->lock = initial_lock; 4688c: 2340 004e movel %d0,%a1@(78) <== NOT EXECUTED the_mutex->blocked_count = 0; 46890: 42a9 0056 clrl %a1@(86) <== NOT EXECUTED if ( initial_lock == CORE_MUTEX_LOCKED ) { 46894: 4a80 tstl %d0 <== NOT EXECUTED 46896: 6656 bnes 468ee <_CORE_mutex_Initialize+0x86> <== NOT EXECUTED the_mutex->nest_count = 1; the_mutex->holder = _Thread_Executing; 46898: 2079 0005 9d3a moveal 59d3a <_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; 4689e: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 468a2: 2340 0052 movel %d0,%a1@(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; 468a6: 2029 0046 movel %a1@(70),%d0 <== NOT EXECUTED the_mutex->holder = _Thread_Executing; the_mutex->holder_id = _Thread_Executing->Object.id; 468aa: 2368 0008 005e movel %a0@(8),%a1@(94) <== NOT EXECUTED if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 468b0: 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; 468b2: 2348 005a movel %a0,%a1@(90) <== NOT EXECUTED the_mutex->holder_id = _Thread_Executing->Object.id; if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 468b6: b280 cmpl %d0,%d1 <== NOT EXECUTED 468b8: 6766 beqs 46920 <_CORE_mutex_Initialize+0xb8> <== NOT EXECUTED 468ba: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 468be: b280 cmpl %d0,%d1 <== NOT EXECUTED 468c0: 675e beqs 46920 <_CORE_mutex_Initialize+0xb8> <== NOT EXECUTED the_mutex->nest_count = 0; the_mutex->holder = NULL; the_mutex->holder_id = 0; } _Thread_queue_Initialize( 468c2: 4878 0005 pea 5 <== NOT EXECUTED 468c6: 4aaa 0006 tstl %a2@(6) <== NOT EXECUTED 468ca: 56c0 sne %d0 <== NOT EXECUTED 468cc: 4878 0400 pea 400 <== NOT EXECUTED 468d0: 49c0 extbl %d0 <== NOT EXECUTED 468d2: 4480 negl %d0 <== NOT EXECUTED 468d4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 468d6: 2f09 movel %a1,%sp@- <== NOT EXECUTED 468d8: 4eb9 0004 8628 jsr 48628 <_Thread_queue_Initialize> <== NOT EXECUTED 468de: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 468e4: 4280 clrl %d0 <== NOT EXECUTED STATES_WAITING_FOR_MUTEX, CORE_MUTEX_TIMEOUT ); return CORE_MUTEX_STATUS_SUCCESSFUL; } 468e6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 468ea: 4e5e unlk %fp <== NOT EXECUTED 468ec: 4e75 rts <== NOT EXECUTED #endif _Thread_Executing->resource_count++; } } else { the_mutex->nest_count = 0; 468ee: 42a9 0052 clrl %a1@(82) <== NOT EXECUTED the_mutex->holder = NULL; 468f2: 42a9 005a clrl %a1@(90) <== NOT EXECUTED the_mutex->holder_id = 0; 468f6: 42a9 005e clrl %a1@(94) <== NOT EXECUTED } _Thread_queue_Initialize( 468fa: 4878 0005 pea 5 <== NOT EXECUTED 468fe: 4aaa 0006 tstl %a2@(6) <== NOT EXECUTED 46902: 56c0 sne %d0 <== NOT EXECUTED 46904: 4878 0400 pea 400 <== NOT EXECUTED 46908: 49c0 extbl %d0 <== NOT EXECUTED 4690a: 4480 negl %d0 <== NOT EXECUTED 4690c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4690e: 2f09 movel %a1,%sp@- <== NOT EXECUTED 46910: 4eb9 0004 8628 jsr 48628 <_Thread_queue_Initialize> <== NOT EXECUTED 46916: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4691c: 4280 clrl %d0 <== NOT EXECUTED 4691e: 60c6 bras 468e6 <_CORE_mutex_Initialize+0x7e> <== NOT EXECUTED the_mutex->holder = _Thread_Executing; the_mutex->holder_id = _Thread_Executing->Object.id; if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) { if ( _Thread_Executing->current_priority < 46920: 2029 004a movel %a1@(74),%d0 <== NOT EXECUTED 46924: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 46928: 622a bhis 46954 <_CORE_mutex_Initialize+0xec> <== 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++; 4692a: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED the_mutex->nest_count = 0; the_mutex->holder = NULL; the_mutex->holder_id = 0; } _Thread_queue_Initialize( 4692e: 4878 0005 pea 5 <== NOT EXECUTED 46932: 4aaa 0006 tstl %a2@(6) <== NOT EXECUTED 46936: 56c0 sne %d0 <== NOT EXECUTED 46938: 4878 0400 pea 400 <== NOT EXECUTED 4693c: 49c0 extbl %d0 <== NOT EXECUTED 4693e: 4480 negl %d0 <== NOT EXECUTED 46940: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46942: 2f09 movel %a1,%sp@- <== NOT EXECUTED 46944: 4eb9 0004 8628 jsr 48628 <_Thread_queue_Initialize> <== NOT EXECUTED 4694a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 46950: 4280 clrl %d0 <== NOT EXECUTED 46952: 6092 bras 468e6 <_CORE_mutex_Initialize+0x7e> <== NOT EXECUTED STATES_WAITING_FOR_MUTEX, CORE_MUTEX_TIMEOUT ); return CORE_MUTEX_STATUS_SUCCESSFUL; } 46954: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46958: 4e5e unlk %fp <== NOT EXECUTED the_mutex->holder = _Thread_Executing; the_mutex->holder_id = _Thread_Executing->Object.id; if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) { if ( _Thread_Executing->current_priority < 4695a: 7006 moveq #6,%d0 <== NOT EXECUTED STATES_WAITING_FOR_MUTEX, CORE_MUTEX_TIMEOUT ); return CORE_MUTEX_STATUS_SUCCESSFUL; } 4695c: 4e75 rts <== NOT EXECUTED ... 000469f2 <_CORE_mutex_Seize>: Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) { 469f2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 469f6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 469f8: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 469fc: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 46a00: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) { 46a06: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46a08: 1401 moveb %d1,%d2 <== NOT EXECUTED _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 46a0a: 4a80 tstl %d0 <== NOT EXECUTED 46a0c: 6704 beqs 46a12 <_CORE_mutex_Seize+0x20> <== NOT EXECUTED 46a0e: 4a01 tstb %d1 <== NOT EXECUTED 46a10: 6634 bnes 46a46 <_CORE_mutex_Seize+0x54> <== NOT EXECUTED 46a12: 486e 0018 pea %fp@(24) <== NOT EXECUTED 46a16: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46a18: 4eb9 0004 bc38 jsr 4bc38 <_CORE_mutex_Seize_interrupt_trylock> <== NOT EXECUTED 46a1e: 508f addql #8,%sp <== NOT EXECUTED 46a20: 4a80 tstl %d0 <== NOT EXECUTED 46a22: 6716 beqs 46a3a <_CORE_mutex_Seize+0x48> <== NOT EXECUTED 46a24: 4a02 tstb %d2 <== NOT EXECUTED 46a26: 6636 bnes 46a5e <_CORE_mutex_Seize+0x6c> <== NOT EXECUTED 46a28: 202e 0018 movel %fp@(24),%d0 <== NOT EXECUTED 46a2c: 46c0 movew %d0,%sr <== NOT EXECUTED 46a2e: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 46a34: 7201 moveq #1,%d1 <== NOT EXECUTED 46a36: 2141 0034 movel %d1,%a0@(52) <== NOT EXECUTED } 46a3a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46a3e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46a42: 4e5e unlk %fp <== NOT EXECUTED 46a44: 4e75 rts <== NOT EXECUTED bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) { _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 46a46: 7001 moveq #1,%d0 <== NOT EXECUTED 46a48: b0b9 0005 9e0e cmpl 59e0e <_System_state_Current>,%d0 <== NOT EXECUTED 46a4e: 64c2 bccs 46a12 <_CORE_mutex_Seize+0x20> <== NOT EXECUTED 46a50: 4878 0013 pea 13 <== NOT EXECUTED 46a54: 42a7 clrl %sp@- <== NOT EXECUTED 46a56: 42a7 clrl %sp@- <== NOT EXECUTED 46a58: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED 46a5e: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46a64: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 46a6a: 216e 000c 0020 movel %fp@(12),%a0@(32) <== NOT EXECUTED 46a70: 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; 46a72: 7201 moveq #1,%d1 <== NOT EXECUTED 46a74: 2541 0030 movel %d1,%a2@(48) <== NOT EXECUTED 46a78: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED 46a7e: 214a 0044 movel %a2,%a0@(68) <== NOT EXECUTED 46a82: 202e 0018 movel %fp@(24),%d0 <== NOT EXECUTED 46a86: 46c0 movew %d0,%sr <== NOT EXECUTED 46a88: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 46a8c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46a8e: 4eb9 0004 6960 jsr 46960 <_CORE_mutex_Seize_interrupt_blocking> <== NOT EXECUTED } 46a94: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46a98: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) { _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 46a9c: 508f addql #8,%sp <== NOT EXECUTED } 46a9e: 4e5e unlk %fp <== NOT EXECUTED 46aa0: 4e75 rts <== NOT EXECUTED ... 00046960 <_CORE_mutex_Seize_interrupt_blocking>: void _CORE_mutex_Seize_interrupt_blocking( CORE_mutex_Control *the_mutex, Watchdog_Interval timeout ) { 46960: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46964: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46966: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4696a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4696c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Thread_Control *executing; executing = _Thread_Executing; 46970: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ) { 46976: 7002 moveq #2,%d0 <== NOT EXECUTED 46978: b0aa 0046 cmpl %a2@(70),%d0 <== NOT EXECUTED 4697c: 672a beqs 469a8 <_CORE_mutex_Seize_interrupt_blocking+0x48> <== NOT EXECUTED ); } } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); 4697e: 4879 0004 872c pea 4872c <_Thread_queue_Timeout> <== NOT EXECUTED FALSE ); } } the_mutex->blocked_count++; 46984: 52aa 0056 addql #1,%a2@(86) <== NOT EXECUTED _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); 46988: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4698a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4698c: 4eb9 0004 836c jsr 4836c <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); } 46992: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46996: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); _Thread_Enable_dispatch(); 4699a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 469a0: 4e5e unlk %fp <== NOT EXECUTED } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); _Thread_Enable_dispatch(); 469a2: 4ef9 0004 7e08 jmp 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED { Thread_Control *executing; executing = _Thread_Executing; if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ) { if ( the_mutex->holder->current_priority > executing->current_priority ) { 469a8: 2028 0014 movel %a0@(20),%d0 <== NOT EXECUTED 469ac: 206a 005a moveal %a2@(90),%a0 <== NOT EXECUTED 469b0: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 469b4: 64c8 bccs 4697e <_CORE_mutex_Seize_interrupt_blocking+0x1e> <== NOT EXECUTED _Thread_Change_priority( 469b6: 42a7 clrl %sp@- <== NOT EXECUTED 469b8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 469ba: 2f08 movel %a0,%sp@- <== NOT EXECUTED 469bc: 4eb9 0004 78e0 jsr 478e0 <_Thread_Change_priority> <== NOT EXECUTED 469c2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED ); } } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); 469c8: 4879 0004 872c pea 4872c <_Thread_queue_Timeout> <== NOT EXECUTED FALSE ); } } the_mutex->blocked_count++; 469ce: 52aa 0056 addql #1,%a2@(86) <== NOT EXECUTED _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); 469d2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 469d4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 469d6: 4eb9 0004 836c jsr 4836c <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); } 469dc: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 469e0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); _Thread_Enable_dispatch(); 469e4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 469ea: 4e5e unlk %fp <== NOT EXECUTED } the_mutex->blocked_count++; _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout ); _Thread_Enable_dispatch(); 469ec: 4ef9 0004 7e08 jmp 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 0004bc38 <_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 ) { 4bc38: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4bc3c: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 4bc40: 2f02 movel %d2,%sp@- <== NOT EXECUTED CORE_mutex_Control *the_mutex, ISR_Level *level_p ) { Thread_Control *executing; ISR_Level level = *level_p; 4bc42: 2410 movel %a0@,%d2 <== NOT EXECUTED /* disabled when you get here */ executing = _Thread_Executing; 4bc44: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 4bc4a: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL; 4bc4e: 42a8 0034 clrl %a0@(52) <== NOT EXECUTED if ( !_CORE_mutex_Is_locked( the_mutex ) ) { 4bc52: 4aa9 004e tstl %a1@(78) <== NOT EXECUTED 4bc56: 6734 beqs 4bc8c <_CORE_mutex_Seize_interrupt_trylock+0x54> <== NOT EXECUTED the_mutex->lock = CORE_MUTEX_LOCKED; 4bc58: 42a9 004e clrl %a1@(78) <== NOT EXECUTED the_mutex->holder = executing; the_mutex->holder_id = executing->Object.id; the_mutex->nest_count = 1; 4bc5c: 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; 4bc5e: 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; 4bc64: 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; 4bc68: 2341 0052 movel %d1,%a1@(82) <== NOT EXECUTED if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 4bc6c: 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; 4bc70: 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 ) || 4bc74: b280 cmpl %d0,%d1 <== NOT EXECUTED 4bc76: 6724 beqs 4bc9c <_CORE_mutex_Seize_interrupt_trylock+0x64> <== NOT EXECUTED 4bc78: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 4bc7c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4bc7e: 671c beqs 4bc9c <_CORE_mutex_Seize_interrupt_trylock+0x64> <== NOT EXECUTED executing->resource_count++; } if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) { _ISR_Enable( level ); 4bc80: 46c2 movew %d2,%sr <== NOT EXECUTED return _CORE_mutex_Seize_interrupt_trylock_body( the_mutex, level_p ); } 4bc82: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4bc86: 4e5e unlk %fp <== NOT EXECUTED 4bc88: 4280 clrl %d0 <== NOT EXECUTED 4bc8a: 4e75 rts <== 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 ) ) { 4bc8c: b1e9 005a cmpal %a1@(90),%a0 <== NOT EXECUTED 4bc90: 6744 beqs 4bcd6 <_CORE_mutex_Seize_interrupt_trylock+0x9e> <== NOT EXECUTED 4bc92: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4bc96: 4e5e unlk %fp <== NOT EXECUTED the_mutex->nest_count++; _ISR_Enable( level ); return 0; case CORE_MUTEX_NESTING_IS_ERROR: executing->Wait.return_code = CORE_MUTEX_STATUS_NESTING_NOT_ALLOWED; _ISR_Enable( level ); 4bc98: 7001 moveq #1,%d0 <== NOT EXECUTED 4bc9a: 4e75 rts <== 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++; 4bc9c: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED } if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) { 4bca0: 7003 moveq #3,%d0 <== NOT EXECUTED 4bca2: b0a9 0046 cmpl %a1@(70),%d0 <== NOT EXECUTED 4bca6: 66d8 bnes 4bc80 <_CORE_mutex_Seize_interrupt_trylock+0x48> <== NOT EXECUTED */ { Priority_Control ceiling; Priority_Control current; ceiling = the_mutex->Attributes.priority_ceiling; 4bca8: 2229 004a movel %a1@(74),%d1 <== NOT EXECUTED current = executing->current_priority; 4bcac: 2028 0014 movel %a0@(20),%d0 <== NOT EXECUTED if ( current == ceiling ) { 4bcb0: b081 cmpl %d1,%d0 <== NOT EXECUTED 4bcb2: 6750 beqs 4bd04 <_CORE_mutex_Seize_interrupt_trylock+0xcc> <== NOT EXECUTED _ISR_Enable( level ); return 0; } if ( current > ceiling ) { 4bcb4: 625a bhis 4bd10 <_CORE_mutex_Seize_interrupt_trylock+0xd8> <== NOT EXECUTED ); _Thread_Enable_dispatch(); return 0; } /* if ( current < ceiling ) */ { executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED; 4bcb6: 7206 moveq #6,%d1 <== NOT EXECUTED 4bcb8: 2141 0034 movel %d1,%a0@(52) <== NOT EXECUTED the_mutex->lock = CORE_MUTEX_UNLOCKED; 4bcbc: 7001 moveq #1,%d0 <== NOT EXECUTED the_mutex->nest_count = 0; /* undo locking above */ 4bcbe: 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; 4bcc2: 2340 004e movel %d0,%a1@(78) <== NOT EXECUTED the_mutex->nest_count = 0; /* undo locking above */ executing->resource_count--; /* undo locking above */ 4bcc6: 53a8 001c subql #1,%a0@(28) <== NOT EXECUTED _ISR_Enable( level ); 4bcca: 46c2 movew %d2,%sr <== NOT EXECUTED 4bccc: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4bcd0: 4e5e unlk %fp <== NOT EXECUTED 4bcd2: 4200 clrb %d0 <== NOT EXECUTED 4bcd4: 4e75 rts <== 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 ) ) { switch ( the_mutex->Attributes.lock_nesting_behavior ) { 4bcd6: 2029 0040 movel %a1@(64),%d0 <== NOT EXECUTED 4bcda: 6718 beqs 4bcf4 <_CORE_mutex_Seize_interrupt_trylock+0xbc> <== NOT EXECUTED 4bcdc: 7201 moveq #1,%d1 <== NOT EXECUTED 4bcde: b280 cmpl %d0,%d1 <== NOT EXECUTED 4bce0: 66b0 bnes 4bc92 <_CORE_mutex_Seize_interrupt_trylock+0x5a> <== NOT EXECUTED case CORE_MUTEX_NESTING_ACQUIRES: the_mutex->nest_count++; _ISR_Enable( level ); return 0; case CORE_MUTEX_NESTING_IS_ERROR: executing->Wait.return_code = CORE_MUTEX_STATUS_NESTING_NOT_ALLOWED; 4bce2: 7002 moveq #2,%d0 <== NOT EXECUTED 4bce4: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED _ISR_Enable( level ); 4bce8: 46c2 movew %d2,%sr <== NOT EXECUTED 4bcea: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4bcee: 4e5e unlk %fp <== NOT EXECUTED 4bcf0: 4200 clrb %d0 <== NOT EXECUTED 4bcf2: 4e75 rts <== NOT EXECUTED * to nest access. */ if ( _Thread_Is_executing( the_mutex->holder ) ) { switch ( the_mutex->Attributes.lock_nesting_behavior ) { case CORE_MUTEX_NESTING_ACQUIRES: the_mutex->nest_count++; 4bcf4: 52a9 0052 addql #1,%a1@(82) <== NOT EXECUTED _ISR_Enable( level ); 4bcf8: 46c2 movew %d2,%sr <== NOT EXECUTED 4bcfa: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4bcfe: 4e5e unlk %fp <== NOT EXECUTED 4bd00: 4280 clrl %d0 <== NOT EXECUTED 4bd02: 4e75 rts <== NOT EXECUTED Priority_Control current; ceiling = the_mutex->Attributes.priority_ceiling; current = executing->current_priority; if ( current == ceiling ) { _ISR_Enable( level ); 4bd04: 46c2 movew %d2,%sr <== NOT EXECUTED 4bd06: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4bd0a: 4e5e unlk %fp <== NOT EXECUTED 4bd0c: 4280 clrl %d0 <== NOT EXECUTED 4bd0e: 4e75 rts <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4bd10: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4bd16: 5280 addql #1,%d0 <== NOT EXECUTED 4bd18: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED return 0; } if ( current > ceiling ) { _Thread_Disable_dispatch(); _ISR_Enable( level ); 4bd1e: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_Change_priority( 4bd20: 42a7 clrl %sp@- <== NOT EXECUTED 4bd22: 2f29 004a movel %a1@(74),%sp@- <== NOT EXECUTED 4bd26: 2f29 005a movel %a1@(90),%sp@- <== NOT EXECUTED 4bd2a: 4eb9 0004 78e0 jsr 478e0 <_Thread_Change_priority> <== NOT EXECUTED the_mutex->holder, the_mutex->Attributes.priority_ceiling, FALSE ); _Thread_Enable_dispatch(); 4bd30: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 4bd36: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4bd3a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4bd40: 4e5e unlk %fp <== NOT EXECUTED 4bd42: 4280 clrl %d0 <== NOT EXECUTED 4bd44: 4e75 rts <== NOT EXECUTED ... 00046aa4 <_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 ) { 46aa4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46aa8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46aaa: 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; 46aae: 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 ) { 46ab2: 4a2a 0044 tstb %a2@(68) <== NOT EXECUTED 46ab6: 6712 beqs 46aca <_CORE_mutex_Surrender+0x26> <== NOT EXECUTED if ( !_Thread_Is_executing( holder ) ) 46ab8: b1f9 0005 9d3a cmpal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 46abe: 670a beqs 46aca <_CORE_mutex_Surrender+0x26> <== NOT EXECUTED } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; return CORE_MUTEX_STATUS_SUCCESSFUL; } 46ac0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46ac4: 4e5e unlk %fp <== NOT EXECUTED * discipline. But Priority Ceiling or Priority Inheritance mutexes * must be released by the thread which acquired them. */ if ( the_mutex->Attributes.only_owner_release ) { if ( !_Thread_Is_executing( holder ) ) 46ac6: 7003 moveq #3,%d0 <== NOT EXECUTED } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; return CORE_MUTEX_STATUS_SUCCESSFUL; } 46ac8: 4e75 rts <== NOT EXECUTED return CORE_MUTEX_STATUS_NOT_OWNER_OF_RESOURCE; } /* XXX already unlocked -- not right status */ if ( !the_mutex->nest_count ) 46aca: 202a 0052 movel %a2@(82),%d0 <== NOT EXECUTED 46ace: 6776 beqs 46b46 <_CORE_mutex_Surrender+0xa2> <== NOT EXECUTED return CORE_MUTEX_STATUS_SUCCESSFUL; the_mutex->nest_count--; 46ad0: 5380 subql #1,%d0 <== NOT EXECUTED 46ad2: 2540 0052 movel %d0,%a2@(82) <== NOT EXECUTED if ( the_mutex->nest_count != 0 ) { 46ad6: 670e beqs 46ae6 <_CORE_mutex_Surrender+0x42> <== NOT EXECUTED switch ( the_mutex->Attributes.lock_nesting_behavior ) { 46ad8: 202a 0040 movel %a2@(64),%d0 <== NOT EXECUTED 46adc: 6768 beqs 46b46 <_CORE_mutex_Surrender+0xa2> <== NOT EXECUTED 46ade: 7201 moveq #1,%d1 <== NOT EXECUTED 46ae0: b280 cmpl %d0,%d1 <== NOT EXECUTED 46ae2: 6700 00c4 beqw 46ba8 <_CORE_mutex_Surrender+0x104> <== NOT EXECUTED 46ae6: 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 ) || 46aea: 7202 moveq #2,%d1 <== NOT EXECUTED 46aec: b280 cmpl %d0,%d1 <== NOT EXECUTED 46aee: 6700 0086 beqw 46b76 <_CORE_mutex_Surrender+0xd2> <== NOT EXECUTED 46af2: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 46af6: b280 cmpl %d0,%d1 <== NOT EXECUTED 46af8: 677c beqs 46b76 <_CORE_mutex_Surrender+0xd2> <== NOT EXECUTED } first_node = _Chain_Get_first_unprotected(&holder->lock_mutex); #endif holder->resource_count--; } the_mutex->holder = NULL; 46afa: 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 ) || 46afe: 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; 46b00: 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 ) || 46b04: b280 cmpl %d0,%d1 <== NOT EXECUTED 46b06: 6748 beqs 46b50 <_CORE_mutex_Surrender+0xac> <== NOT EXECUTED 46b08: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 46b0c: b280 cmpl %d0,%d1 <== NOT EXECUTED 46b0e: 6740 beqs 46b50 <_CORE_mutex_Surrender+0xac> <== 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 ) ) ) { 46b10: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46b12: 4eb9 0004 8204 jsr 48204 <_Thread_queue_Dequeue> <== NOT EXECUTED 46b18: 588f addql #4,%sp <== NOT EXECUTED 46b1a: 2040 moveal %d0,%a0 <== NOT EXECUTED 46b1c: 4a80 tstl %d0 <== NOT EXECUTED 46b1e: 6700 00a0 beqw 46bc0 <_CORE_mutex_Surrender+0x11c> <== NOT EXECUTED #endif { the_mutex->holder = the_thread; the_mutex->holder_id = the_thread->Object.id; the_mutex->nest_count = 1; 46b22: 7201 moveq #1,%d1 <== NOT EXECUTED } else #endif { the_mutex->holder = the_thread; the_mutex->holder_id = the_thread->Object.id; 46b24: 2568 0008 005e movel %a0@(8),%a2@(94) <== NOT EXECUTED the_mutex->nest_count = 1; switch ( the_mutex->Attributes.discipline ) { 46b2a: 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; 46b2e: 2541 0052 movel %d1,%a2@(82) <== NOT EXECUTED switch ( the_mutex->Attributes.discipline ) { 46b32: 123c 0002 moveb #2,%d1 <== NOT EXECUTED } else #endif { the_mutex->holder = the_thread; 46b36: 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 ) { 46b3a: b280 cmpl %d0,%d1 <== NOT EXECUTED 46b3c: 6774 beqs 46bb2 <_CORE_mutex_Surrender+0x10e> <== NOT EXECUTED 46b3e: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 46b42: b280 cmpl %d0,%d1 <== NOT EXECUTED 46b44: 6738 beqs 46b7e <_CORE_mutex_Surrender+0xda> <== NOT EXECUTED } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; return CORE_MUTEX_STATUS_SUCCESSFUL; } 46b46: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46b4a: 4e5e unlk %fp <== NOT EXECUTED } break; } } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; 46b4c: 4280 clrl %d0 <== NOT EXECUTED return CORE_MUTEX_STATUS_SUCCESSFUL; } 46b4e: 4e75 rts <== 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 && 46b50: 4aa8 001c tstl %a0@(28) <== NOT EXECUTED 46b54: 66ba bnes 46b10 <_CORE_mutex_Surrender+0x6c> <== NOT EXECUTED 46b56: 2028 0018 movel %a0@(24),%d0 <== NOT EXECUTED 46b5a: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 46b5e: 67b0 beqs 46b10 <_CORE_mutex_Surrender+0x6c> <== NOT EXECUTED holder->real_priority != holder->current_priority ) { _Thread_Change_priority( holder, holder->real_priority, TRUE ); 46b60: 4878 0001 pea 1 <== NOT EXECUTED 46b64: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46b66: 2f08 movel %a0,%sp@- <== NOT EXECUTED 46b68: 4eb9 0004 78e0 jsr 478e0 <_Thread_Change_priority> <== NOT EXECUTED 46b6e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46b74: 609a bras 46b10 <_CORE_mutex_Surrender+0x6c> <== 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--; 46b76: 53a8 001c subql #1,%a0@(28) <== NOT EXECUTED 46b7a: 6000 ff7e braw 46afa <_CORE_mutex_Surrender+0x56> <== 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++; 46b7e: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED if (the_mutex->Attributes.priority_ceiling < 46b82: 202a 004a movel %a2@(74),%d0 <== NOT EXECUTED 46b86: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 46b8a: 64ba bccs 46b46 <_CORE_mutex_Surrender+0xa2> <== NOT EXECUTED the_thread->current_priority){ _Thread_Change_priority( 46b8c: 42a7 clrl %sp@- <== NOT EXECUTED 46b8e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46b90: 2f08 movel %a0,%sp@- <== NOT EXECUTED 46b92: 4eb9 0004 78e0 jsr 478e0 <_Thread_Change_priority> <== NOT EXECUTED } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; return CORE_MUTEX_STATUS_SUCCESSFUL; } 46b98: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED the_mutex->queue.priority_before = the_thread->current_priority; #endif the_thread->resource_count++; if (the_mutex->Attributes.priority_ceiling < the_thread->current_priority){ _Thread_Change_priority( 46b9c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; return CORE_MUTEX_STATUS_SUCCESSFUL; } 46ba2: 4e5e unlk %fp <== NOT EXECUTED the_mutex->queue.priority_before = the_thread->current_priority; #endif the_thread->resource_count++; if (the_mutex->Attributes.priority_ceiling < the_thread->current_priority){ _Thread_Change_priority( 46ba4: 4280 clrl %d0 <== NOT EXECUTED } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; return CORE_MUTEX_STATUS_SUCCESSFUL; } 46ba6: 4e75 rts <== NOT EXECUTED 46ba8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46bac: 4e5e unlk %fp <== NOT EXECUTED return CORE_MUTEX_STATUS_SUCCESSFUL; the_mutex->nest_count--; if ( the_mutex->nest_count != 0 ) { switch ( the_mutex->Attributes.lock_nesting_behavior ) { 46bae: 7002 moveq #2,%d0 <== NOT EXECUTED } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; return CORE_MUTEX_STATUS_SUCCESSFUL; } 46bb0: 4e75 rts <== NOT EXECUTED 46bb2: 246e fffc moveal %fp@(-4),%a2 <== 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++; 46bb6: 52a8 001c addql #1,%a0@(28) <== NOT EXECUTED } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; return CORE_MUTEX_STATUS_SUCCESSFUL; } 46bba: 4e5e unlk %fp <== 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++; 46bbc: 4280 clrl %d0 <== NOT EXECUTED } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; return CORE_MUTEX_STATUS_SUCCESSFUL; } 46bbe: 4e75 rts <== NOT EXECUTED } break; } } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; 46bc0: 7001 moveq #1,%d0 <== NOT EXECUTED 46bc2: 2540 004e movel %d0,%a2@(78) <== NOT EXECUTED return CORE_MUTEX_STATUS_SUCCESSFUL; } 46bc6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46bca: 4e5e unlk %fp <== NOT EXECUTED } break; } } } else the_mutex->lock = CORE_MUTEX_UNLOCKED; 46bcc: 4200 clrb %d0 <== NOT EXECUTED return CORE_MUTEX_STATUS_SUCCESSFUL; } 46bce: 4e75 rts 00046bd0 <_CORE_semaphore_Flush>: void _CORE_semaphore_Flush( CORE_semaphore_Control *the_semaphore, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { 46bd0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED &the_semaphore->Wait_queue, remote_extract_callout, status ); } 46bd4: 4e5e unlk %fp <== NOT EXECUTED Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { _Thread_queue_Flush( 46bd6: 4ef9 0004 85ec jmp 485ec <_Thread_queue_Flush> <== NOT EXECUTED 00046bdc <_CORE_semaphore_Initialize>: void _CORE_semaphore_Initialize( CORE_semaphore_Control *the_semaphore, CORE_semaphore_Attributes *the_semaphore_attributes, uint32_t initial_value ) { 46bdc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED the_semaphore->Attributes = *the_semaphore_attributes; the_semaphore->count = initial_value; _Thread_queue_Initialize( 46be0: 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 ) { 46be4: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 46be8: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED the_semaphore->Attributes = *the_semaphore_attributes; 46bec: 2368 0004 0044 movel %a0@(4),%a1@(68) <== NOT EXECUTED the_semaphore->count = initial_value; _Thread_queue_Initialize( 46bf2: 7001 moveq #1,%d0 <== NOT EXECUTED 46bf4: b0a8 0004 cmpl %a0@(4),%d0 <== NOT EXECUTED 46bf8: 57c0 seq %d0 <== NOT EXECUTED CORE_semaphore_Attributes *the_semaphore_attributes, uint32_t initial_value ) { the_semaphore->Attributes = *the_semaphore_attributes; 46bfa: 2210 movel %a0@,%d1 <== NOT EXECUTED the_semaphore->count = initial_value; _Thread_queue_Initialize( 46bfc: 4878 0200 pea 200 <== NOT EXECUTED 46c00: 49c0 extbl %d0 <== NOT EXECUTED 46c02: 4480 negl %d0 <== NOT EXECUTED 46c04: 2f00 movel %d0,%sp@- <== NOT EXECUTED uint32_t initial_value ) { the_semaphore->Attributes = *the_semaphore_attributes; the_semaphore->count = initial_value; 46c06: 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; 46c0c: 2341 0040 movel %d1,%a1@(64) <== NOT EXECUTED the_semaphore->count = initial_value; _Thread_queue_Initialize( 46c10: 2f09 movel %a1,%sp@- <== NOT EXECUTED 46c12: 4eb9 0004 8628 jsr 48628 <_Thread_queue_Initialize> <== NOT EXECUTED 46c18: 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 ); } 46c1e: 4e5e unlk %fp <== NOT EXECUTED 46c20: 4e75 rts <== NOT EXECUTED ... 0004f514 <_CORE_semaphore_Seize>: CORE_semaphore_Control *the_semaphore, Objects_Id id, bool wait, Watchdog_Interval timeout ) { 4f514: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4f518: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 4f51c: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4f520: 282e 0014 movel %fp@(20),%d4 <== NOT EXECUTED Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; 4f524: 2279 0005 f04e moveal 5f04e <_Thread_Executing>,%a1 <== NOT EXECUTED executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL; _ISR_Disable( level ); 4f52a: 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; 4f530: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED CORE_semaphore_Control *the_semaphore, Objects_Id id, bool wait, Watchdog_Interval timeout ) { 4f534: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4f538: 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 ); 4f53c: 40c1 movew %sr,%d1 <== NOT EXECUTED 4f53e: 8081 orl %d1,%d0 <== NOT EXECUTED 4f540: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_semaphore->count != 0 ) { 4f542: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED 4f546: 6614 bnes 4f55c <_CORE_semaphore_Seize+0x48> <== 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 ) { 4f548: 4a02 tstb %d2 <== NOT EXECUTED 4f54a: 6620 bnes 4f56c <_CORE_semaphore_Seize+0x58> <== NOT EXECUTED _ISR_Enable( level ); 4f54c: 46c1 movew %d1,%sr <== 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 ); } 4f54e: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED * to block, then return immediately with a status indicating that * the semaphore was not available and the caller never blocked. */ if ( !wait ) { _ISR_Enable( level ); executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT; 4f552: 7001 moveq #1,%d0 <== 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 ); } 4f554: 4e5e unlk %fp <== NOT EXECUTED * to block, then return immediately with a status indicating that * the semaphore was not available and the caller never blocked. */ if ( !wait ) { _ISR_Enable( level ); executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT; 4f556: 2340 0034 movel %d0,%a1@(52) <== 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 ); } 4f55a: 4e75 rts <== NOT EXECUTED executing = _Thread_Executing; executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL; _ISR_Disable( level ); if ( the_semaphore->count != 0 ) { the_semaphore->count -= 1; 4f55c: 5380 subql #1,%d0 <== NOT EXECUTED 4f55e: 2140 0048 movel %d0,%a0@(72) <== NOT EXECUTED _ISR_Enable( level ); 4f562: 46c1 movew %d1,%sr <== 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 ); } 4f564: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 4f568: 4e5e unlk %fp <== NOT EXECUTED 4f56a: 4e75 rts <== NOT EXECUTED 4f56c: 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; 4f56e: 2343 0020 movel %d3,%a1@(32) <== NOT EXECUTED 4f572: 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; 4f576: 2348 0044 movel %a0,%a1@(68) <== NOT EXECUTED executing->Wait.id = id; _ISR_Enable( level ); 4f57a: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout ); 4f57c: 2d44 000c movel %d4,%fp@(12) <== NOT EXECUTED 4f580: 203c 0004 b808 movel #309256,%d0 <== NOT EXECUTED 4f586: 2d40 0010 movel %d0,%fp@(16) <== NOT EXECUTED 4f58a: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 4f58e: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 4f592: 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 ); 4f594: 4ef9 0004 b448 jmp 4b448 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED ... 00046c24 <_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 ) { 46c24: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46c28: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46c2a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 46c2e: 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)) ) { 46c30: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46c32: 4eb9 0004 8204 jsr 48204 <_Thread_queue_Dequeue> <== NOT EXECUTED 46c38: 588f addql #4,%sp <== NOT EXECUTED 46c3a: 4a80 tstl %d0 <== NOT EXECUTED 46c3c: 670e beqs 46c4c <_CORE_semaphore_Surrender+0x28> <== NOT EXECUTED status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED; _ISR_Enable( level ); } return status; } 46c3e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46c42: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46c46: 4e5e unlk %fp <== NOT EXECUTED ISR_Level level; CORE_semaphore_Status status; status = CORE_SEMAPHORE_STATUS_SUCCESSFUL; if ( (the_thread = _Thread_queue_Dequeue(&the_semaphore->Wait_queue)) ) { 46c48: 4280 clrl %d0 <== NOT EXECUTED status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED; _ISR_Enable( level ); } return status; } 46c4a: 4e75 rts <== NOT EXECUTED if ( !_Objects_Is_local_id( the_thread->Object.id ) ) (*api_semaphore_mp_support) ( the_thread, id ); #endif } else { _ISR_Disable( level ); 46c4c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 46c52: 40c2 movew %sr,%d2 <== NOT EXECUTED 46c54: 8082 orl %d2,%d0 <== NOT EXECUTED 46c56: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_semaphore->count < the_semaphore->Attributes.maximum_count ) 46c58: 222a 0048 movel %a2@(72),%d1 <== NOT EXECUTED 46c5c: b2aa 0040 cmpl %a2@(64),%d1 <== NOT EXECUTED 46c60: 6510 bcss 46c72 <_CORE_semaphore_Surrender+0x4e> <== NOT EXECUTED 46c62: 7004 moveq #4,%d0 <== NOT EXECUTED the_semaphore->count += 1; else status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED; _ISR_Enable( level ); 46c64: 46c2 movew %d2,%sr <== NOT EXECUTED } return status; } 46c66: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46c6a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46c6e: 4e5e unlk %fp <== NOT EXECUTED 46c70: 4e75 rts <== NOT EXECUTED #endif } else { _ISR_Disable( level ); if ( the_semaphore->count < the_semaphore->Attributes.maximum_count ) the_semaphore->count += 1; 46c72: 5281 addql #1,%d1 <== NOT EXECUTED 46c74: 2541 0048 movel %d1,%a2@(72) <== NOT EXECUTED 46c78: 4280 clrl %d0 <== NOT EXECUTED else status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED; _ISR_Enable( level ); 46c7a: 46c2 movew %d2,%sr <== NOT EXECUTED 46c7c: 60e8 bras 46c66 <_CORE_semaphore_Surrender+0x42> <== NOT EXECUTED ... 000475d4 <_CORE_spinlock_Initialize>: void _CORE_spinlock_Initialize( CORE_spinlock_Control *the_spinlock, CORE_spinlock_Attributes *the_spinlock_attributes ) { 475d4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 475d8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 475dc: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED the_spinlock->Attributes = *the_spinlock_attributes; 475e0: 2091 movel %a1@,%a0@ <== NOT EXECUTED the_spinlock->lock = 0; the_spinlock->users = 0; the_spinlock->holder = 0; } 475e2: 4e5e unlk %fp <== NOT EXECUTED ) { the_spinlock->Attributes = *the_spinlock_attributes; the_spinlock->lock = 0; 475e4: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED the_spinlock->users = 0; 475e8: 42a8 0008 clrl %a0@(8) <== NOT EXECUTED the_spinlock->holder = 0; 475ec: 42a8 000c clrl %a0@(12) <== NOT EXECUTED } 475f0: 4e75 rts <== NOT EXECUTED ... 000475f4 <_CORE_spinlock_Release>: */ CORE_spinlock_Status _CORE_spinlock_Release( CORE_spinlock_Control *the_spinlock ) { 475f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 475f8: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ CORE_spinlock_Status _CORE_spinlock_Release( CORE_spinlock_Control *the_spinlock ) { 475fe: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 47602: 40c1 movew %sr,%d1 <== NOT EXECUTED 47604: 8081 orl %d1,%d0 <== NOT EXECUTED 47606: 46c0 movew %d0,%sr <== NOT EXECUTED /* * It must locked before it can be unlocked. */ if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) { 47608: 2029 0004 movel %a1@(4),%d0 <== NOT EXECUTED 4760c: 660a bnes 47618 <_CORE_spinlock_Release+0x24> <== NOT EXECUTED _ISR_Enable( level ); 4760e: 46c1 movew %d1,%sr <== NOT EXECUTED the_spinlock->lock = CORE_SPINLOCK_UNLOCKED; the_spinlock->holder = 0; _ISR_Enable( level ); return CORE_SPINLOCK_SUCCESSFUL; } 47610: 4e5e unlk %fp <== NOT EXECUTED /* * It must locked before it can be unlocked. */ if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) { _ISR_Enable( level ); 47612: 103c 0006 moveb #6,%d0 <== NOT EXECUTED the_spinlock->lock = CORE_SPINLOCK_UNLOCKED; the_spinlock->holder = 0; _ISR_Enable( level ); return CORE_SPINLOCK_SUCCESSFUL; } 47616: 4e75 rts <== NOT EXECUTED } /* * It must locked by the current thread before it can be unlocked. */ if ( the_spinlock->holder != _Thread_Executing->Object.id ) { 47618: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 4761c: 2079 0005 ad86 moveal 5ad86 <_Thread_Executing>,%a0 <== NOT EXECUTED 47622: b0a8 0008 cmpl %a0@(8),%d0 <== NOT EXECUTED 47626: 6708 beqs 47630 <_CORE_spinlock_Release+0x3c> <== NOT EXECUTED _ISR_Enable( level ); 47628: 46c1 movew %d1,%sr <== NOT EXECUTED the_spinlock->lock = CORE_SPINLOCK_UNLOCKED; the_spinlock->holder = 0; _ISR_Enable( level ); return CORE_SPINLOCK_SUCCESSFUL; } 4762a: 4e5e unlk %fp <== NOT EXECUTED /* * It must locked by the current thread before it can be unlocked. */ if ( the_spinlock->holder != _Thread_Executing->Object.id ) { _ISR_Enable( level ); 4762c: 7002 moveq #2,%d0 <== NOT EXECUTED the_spinlock->lock = CORE_SPINLOCK_UNLOCKED; the_spinlock->holder = 0; _ISR_Enable( level ); return CORE_SPINLOCK_SUCCESSFUL; } 4762e: 4e75 rts <== NOT EXECUTED } /* * Let it be unlocked. */ the_spinlock->users -= 1; 47630: 2029 0008 movel %a1@(8),%d0 <== NOT EXECUTED 47634: 5380 subql #1,%d0 <== NOT EXECUTED 47636: 2340 0008 movel %d0,%a1@(8) <== NOT EXECUTED the_spinlock->lock = CORE_SPINLOCK_UNLOCKED; 4763a: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED the_spinlock->holder = 0; 4763e: 42a9 000c clrl %a1@(12) <== NOT EXECUTED _ISR_Enable( level ); 47642: 46c1 movew %d1,%sr <== NOT EXECUTED return CORE_SPINLOCK_SUCCESSFUL; } 47644: 4e5e unlk %fp <== NOT EXECUTED */ the_spinlock->users -= 1; the_spinlock->lock = CORE_SPINLOCK_UNLOCKED; the_spinlock->holder = 0; _ISR_Enable( level ); 47646: 4280 clrl %d0 <== NOT EXECUTED return CORE_SPINLOCK_SUCCESSFUL; } 47648: 4e75 rts <== NOT EXECUTED ... 0004764c <_CORE_spinlock_Wait>: CORE_spinlock_Status _CORE_spinlock_Wait( CORE_spinlock_Control *the_spinlock, bool wait, Watchdog_Interval timeout ) { 4764c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 47650: 48d7 0c3c moveml %d2-%d5/%a2-%a3,%sp@ <== NOT EXECUTED 47654: 2a2e 0010 movel %fp@(16),%d5 <== NOT EXECUTED ISR_Level level; Watchdog_Interval limit = _Watchdog_Ticks_since_boot + timeout; 47658: 2039 0005 ae10 movel 5ae10 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED 4765e: 2805 movel %d5,%d4 <== NOT EXECUTED 47660: d880 addl %d0,%d4 <== NOT EXECUTED _ISR_Disable( level ); 47662: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED CORE_spinlock_Status _CORE_spinlock_Wait( CORE_spinlock_Control *the_spinlock, bool wait, Watchdog_Interval timeout ) { 47668: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4766c: 162e 000f moveb %fp@(15),%d3 <== NOT EXECUTED ISR_Level level; Watchdog_Interval limit = _Watchdog_Ticks_since_boot + timeout; _ISR_Disable( level ); 47670: 40c2 movew %sr,%d2 <== NOT EXECUTED 47672: 8082 orl %d2,%d0 <== NOT EXECUTED 47674: 46c0 movew %d0,%sr <== NOT EXECUTED if ( (the_spinlock->lock == CORE_SPINLOCK_LOCKED) && 47676: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 4767a: 7201 moveq #1,%d1 <== NOT EXECUTED 4767c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4767e: 6772 beqs 476f2 <_CORE_spinlock_Wait+0xa6> <== NOT EXECUTED (the_spinlock->holder == _Thread_Executing->Object.id) ) { _ISR_Enable( level ); return CORE_SPINLOCK_HOLDER_RELOCKING; } the_spinlock->users += 1; 47680: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED 47684: 5280 addql #1,%d0 <== NOT EXECUTED 47686: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED for ( ;; ) { if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) { 4768a: 222a 0004 movel %a2@(4),%d1 <== NOT EXECUTED 4768e: 6740 beqs 476d0 <_CORE_spinlock_Wait+0x84> <== NOT EXECUTED } /* * Spinlock is unavailable. If not willing to wait, return. */ if ( !wait ) { 47690: 4a03 tstb %d3 <== NOT EXECUTED 47692: 6700 0096 beqw 4772a <_CORE_spinlock_Wait+0xde> <== NOT EXECUTED */ _ISR_Enable( level ); /* An ISR could occur here */ _Thread_Enable_dispatch(); 47696: 47f9 0004 8848 lea 48848 <_Thread_Enable_dispatch>,%a3 <== 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 ); 4769c: 263c 0000 0700 movel #1792,%d3 <== NOT EXECUTED } /* * They are willing to wait but there could be a timeout. */ if ( timeout && (limit <= _Watchdog_Ticks_since_boot) ) { 476a2: 4a85 tstl %d5 <== NOT EXECUTED 476a4: 670a beqs 476b0 <_CORE_spinlock_Wait+0x64> <== NOT EXECUTED 476a6: 2039 0005 ae10 movel 5ae10 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED 476ac: b084 cmpl %d4,%d0 <== NOT EXECUTED 476ae: 6462 bccs 47712 <_CORE_spinlock_Wait+0xc6> <== NOT EXECUTED * * A spinlock cannot be deleted while it is being used so we are * safe from deletion. */ _ISR_Enable( level ); 476b0: 46c2 movew %d2,%sr <== NOT EXECUTED /* An ISR could occur here */ _Thread_Enable_dispatch(); 476b2: 4e93 jsr %a3@ <== NOT EXECUTED 476b4: 2039 0005 acc8 movel 5acc8 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 476ba: 5280 addql #1,%d0 <== NOT EXECUTED 476bc: 23c0 0005 acc8 movel %d0,5acc8 <_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 ); 476c2: 2003 movel %d3,%d0 <== NOT EXECUTED 476c4: 40c2 movew %sr,%d2 <== NOT EXECUTED 476c6: 8082 orl %d2,%d0 <== NOT EXECUTED 476c8: 46c0 movew %d0,%sr <== NOT EXECUTED _ISR_Enable( level ); return CORE_SPINLOCK_HOLDER_RELOCKING; } the_spinlock->users += 1; for ( ;; ) { if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) { 476ca: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 476ce: 66d2 bnes 476a2 <_CORE_spinlock_Wait+0x56> <== NOT EXECUTED the_spinlock->lock = CORE_SPINLOCK_LOCKED; the_spinlock->holder = _Thread_Executing->Object.id; 476d0: 2079 0005 ad86 moveal 5ad86 <_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; 476d6: 7001 moveq #1,%d0 <== NOT EXECUTED 476d8: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED the_spinlock->holder = _Thread_Executing->Object.id; 476dc: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED 476e0: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED _ISR_Enable( level ); 476e4: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_Disable_dispatch(); _ISR_Disable( level ); } } 476e6: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 476ec: 4e5e unlk %fp <== NOT EXECUTED the_spinlock->users += 1; for ( ;; ) { if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) { the_spinlock->lock = CORE_SPINLOCK_LOCKED; the_spinlock->holder = _Thread_Executing->Object.id; _ISR_Enable( level ); 476ee: 4280 clrl %d0 <== NOT EXECUTED _Thread_Disable_dispatch(); _ISR_Disable( level ); } } 476f0: 4e75 rts <== NOT EXECUTED { ISR_Level level; Watchdog_Interval limit = _Watchdog_Ticks_since_boot + timeout; _ISR_Disable( level ); if ( (the_spinlock->lock == CORE_SPINLOCK_LOCKED) && 476f2: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 476f6: 2079 0005 ad86 moveal 5ad86 <_Thread_Executing>,%a0 <== NOT EXECUTED 476fc: b0a8 0008 cmpl %a0@(8),%d0 <== NOT EXECUTED 47700: 6600 ff7e bnew 47680 <_CORE_spinlock_Wait+0x34> <== NOT EXECUTED (the_spinlock->holder == _Thread_Executing->Object.id) ) { _ISR_Enable( level ); 47704: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_Disable_dispatch(); _ISR_Disable( level ); } } 47706: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 4770c: 4e5e unlk %fp <== NOT EXECUTED Watchdog_Interval limit = _Watchdog_Ticks_since_boot + timeout; _ISR_Disable( level ); if ( (the_spinlock->lock == CORE_SPINLOCK_LOCKED) && (the_spinlock->holder == _Thread_Executing->Object.id) ) { _ISR_Enable( level ); 4770e: 7001 moveq #1,%d0 <== NOT EXECUTED _Thread_Disable_dispatch(); _ISR_Disable( level ); } } 47710: 4e75 rts <== NOT EXECUTED /* * They are willing to wait but there could be a timeout. */ if ( timeout && (limit <= _Watchdog_Ticks_since_boot) ) { the_spinlock->users -= 1; 47712: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED 47716: 5380 subql #1,%d0 <== NOT EXECUTED 47718: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED _ISR_Enable( level ); 4771c: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_Disable_dispatch(); _ISR_Disable( level ); } } 4771e: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 47724: 4e5e unlk %fp <== NOT EXECUTED /* * They are willing to wait but there could be a timeout. */ if ( timeout && (limit <= _Watchdog_Ticks_since_boot) ) { the_spinlock->users -= 1; _ISR_Enable( level ); 47726: 7003 moveq #3,%d0 <== NOT EXECUTED _Thread_Disable_dispatch(); _ISR_Disable( level ); } } 47728: 4e75 rts <== NOT EXECUTED /* * Spinlock is unavailable. If not willing to wait, return. */ if ( !wait ) { the_spinlock->users -= 1; 4772a: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED 4772e: 5380 subql #1,%d0 <== NOT EXECUTED 47730: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED _ISR_Enable( level ); 47734: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_Disable_dispatch(); _ISR_Disable( level ); } } 47736: 4cee 0c3c ffe8 moveml %fp@(-24),%d2-%d5/%a2-%a3 <== NOT EXECUTED 4773c: 4e5e unlk %fp <== NOT EXECUTED /* * Spinlock is unavailable. If not willing to wait, return. */ if ( !wait ) { the_spinlock->users -= 1; _ISR_Enable( level ); 4773e: 7005 moveq #5,%d0 <== NOT EXECUTED _Thread_Disable_dispatch(); _ISR_Disable( level ); } } 47740: 4e75 rts <== NOT EXECUTED ... 00046824 <_Chain_Append>: void _Chain_Append( Chain_Control *the_chain, Chain_Node *node ) { 46824: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46828: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4682a: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED void _Chain_Append( Chain_Control *the_chain, Chain_Node *node ) { 46830: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 46834: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 46838: 40c0 movew %sr,%d0 <== NOT EXECUTED 4683a: 8280 orl %d0,%d1 <== NOT EXECUTED 4683c: 46c1 movew %d1,%sr <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4683e: 2209 movel %a1,%d1 <== NOT EXECUTED 46840: 5881 addql #4,%d1 <== NOT EXECUTED 46842: 2081 movel %d1,%a0@ <== NOT EXECUTED old_last_node = the_chain->last; 46844: 2469 0008 moveal %a1@(8),%a2 <== NOT EXECUTED the_chain->last = the_node; 46848: 2348 0008 movel %a0,%a1@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4684c: 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; 46850: 2488 movel %a0,%a2@ <== NOT EXECUTED _Chain_Append_unprotected( the_chain, node ); _ISR_Enable( level ); 46852: 46c0 movew %d0,%sr <== NOT EXECUTED } 46854: 245f moveal %sp@+,%a2 <== NOT EXECUTED 46856: 4e5e unlk %fp <== NOT EXECUTED 46858: 4e75 rts <== NOT EXECUTED ... 0004bb70 <_Chain_Extract>: */ void _Chain_Extract( Chain_Node *node ) { 4bb70: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4bb74: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4bb76: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED */ void _Chain_Extract( Chain_Node *node ) { 4bb7c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4bb80: 40c0 movew %sr,%d0 <== NOT EXECUTED 4bb82: 8280 orl %d0,%d1 <== NOT EXECUTED 4bb84: 46c1 movew %d1,%sr <== NOT EXECUTED { Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; 4bb86: 226a 0004 moveal %a2@(4),%a1 <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 4bb8a: 2052 moveal %a2@,%a0 <== NOT EXECUTED previous = the_node->previous; next->previous = previous; previous->next = next; 4bb8c: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4bb8e: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED _Chain_Extract_unprotected( node ); _ISR_Enable( level ); 4bb92: 46c0 movew %d0,%sr <== NOT EXECUTED } 4bb94: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4bb96: 4e5e unlk %fp <== NOT EXECUTED 4bb98: 4e75 rts <== NOT EXECUTED ... 0004bb9c <_Chain_Get>: */ Chain_Node *_Chain_Get( Chain_Control *the_chain ) { 4bb9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4bba0: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; Chain_Node *return_node; return_node = NULL; _ISR_Disable( level ); 4bba2: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Chain_Node *_Chain_Get( Chain_Control *the_chain ) { 4bba8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; Chain_Node *return_node; return_node = NULL; _ISR_Disable( level ); 4bbac: 40c1 movew %sr,%d1 <== NOT EXECUTED 4bbae: 8081 orl %d1,%d0 <== NOT EXECUTED 4bbb0: 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)); 4bbb2: 204a moveal %a2,%a0 <== NOT EXECUTED 4bbb4: 2258 moveal %a0@+,%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( the_chain ) ) 4bbb6: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 4bbb8: 6712 beqs 4bbcc <_Chain_Get+0x30> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 4bbba: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_chain->first = new_first; 4bbbc: 2488 movel %a0,%a2@ <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 4bbbe: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED return_node = _Chain_Get_first_unprotected( the_chain ); _ISR_Enable( level ); 4bbc2: 46c1 movew %d1,%sr <== NOT EXECUTED return return_node; } 4bbc4: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4bbc6: 4e5e unlk %fp <== NOT EXECUTED 4bbc8: 2009 movel %a1,%d0 <== NOT EXECUTED 4bbca: 4e75 rts <== NOT EXECUTED ISR_Level level; Chain_Node *return_node; return_node = NULL; _ISR_Disable( level ); if ( !_Chain_Is_empty( the_chain ) ) 4bbcc: 93c9 subal %a1,%a1 <== NOT EXECUTED return_node = _Chain_Get_first_unprotected( the_chain ); _ISR_Enable( level ); 4bbce: 46c1 movew %d1,%sr <== NOT EXECUTED return return_node; } 4bbd0: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4bbd2: 4e5e unlk %fp <== NOT EXECUTED 4bbd4: 2009 movel %a1,%d0 <== NOT EXECUTED 4bbd6: 4e75 rts 0004bbd8 <_Chain_Initialize>: Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size ) { 4bbd8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4bbdc: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4bbe0: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4bbe4: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4bbe8: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 4bbec: 222e 0014 movel %fp@(20),%d1 <== NOT EXECUTED Chain_Node *current; Chain_Node *next; count = number_nodes; current = _Chain_Head( the_chain ); the_chain->permanent_null = NULL; 4bbf0: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Head( Chain_Control *the_chain ) { return (Chain_Node *) the_chain; 4bbf4: 224a moveal %a2,%a1 <== NOT EXECUTED next = starting_address; while ( count-- ) { 4bbf6: 4a80 tstl %d0 <== NOT EXECUTED 4bbf8: 672c beqs 4bc26 <_Chain_Initialize+0x4e> <== NOT EXECUTED 4bbfa: 2043 moveal %d3,%a0 <== NOT EXECUTED current->next = next; next->previous = current; 4bbfc: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED count = number_nodes; current = _Chain_Head( the_chain ); the_chain->permanent_null = NULL; next = starting_address; while ( count-- ) { 4bc00: 5380 subql #1,%d0 <== NOT EXECUTED 4bc02: 2400 movel %d0,%d2 <== NOT EXECUTED current->next = next; 4bc04: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size ) { 4bc06: 2248 moveal %a0,%a1 <== NOT EXECUTED 4bc08: d1c1 addal %d1,%a0 <== NOT EXECUTED count = number_nodes; current = _Chain_Head( the_chain ); the_chain->permanent_null = NULL; next = starting_address; while ( count-- ) { 4bc0a: 4a80 tstl %d0 <== NOT EXECUTED 4bc0c: 6710 beqs 4bc1e <_Chain_Initialize+0x46> <== NOT EXECUTED current->next = next; next->previous = current; 4bc0e: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED 4bc12: 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; 4bc14: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size ) { 4bc16: 2248 moveal %a0,%a1 <== NOT EXECUTED 4bc18: d1c1 addal %d1,%a0 <== NOT EXECUTED count = number_nodes; current = _Chain_Head( the_chain ); the_chain->permanent_null = NULL; next = starting_address; while ( count-- ) { 4bc1a: 4a80 tstl %d0 <== NOT EXECUTED 4bc1c: 66f0 bnes 4bc0e <_Chain_Initialize+0x36> <== NOT EXECUTED 4bc1e: 4c02 1800 mulsl %d2,%d1 <== NOT EXECUTED 4bc22: 2243 moveal %d3,%a1 <== NOT EXECUTED 4bc24: d3c1 addal %d1,%a1 <== NOT EXECUTED next->previous = current; current = next; next = (Chain_Node *) _Addresses_Add_offset( (void *) next, node_size ); } current->next = _Chain_Tail( the_chain ); 4bc26: 200a movel %a2,%d0 <== NOT EXECUTED 4bc28: 5880 addql #4,%d0 <== NOT EXECUTED 4bc2a: 2280 movel %d0,%a1@ <== NOT EXECUTED the_chain->last = current; 4bc2c: 2549 0008 movel %a1,%a2@(8) <== NOT EXECUTED } 4bc30: 4cd7 040c moveml %sp@,%d2-%d3/%a2 <== NOT EXECUTED 4bc34: 4e5e unlk %fp <== NOT EXECUTED 4bc36: 4e75 rts 00063b9c <_Chain_Insert>: void _Chain_Insert( Chain_Node *after_node, Chain_Node *node ) { 63b9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 63ba0: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 63ba2: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED void _Chain_Insert( Chain_Node *after_node, Chain_Node *node ) { 63ba8: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 63bac: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 63bb0: 40c0 movew %sr,%d0 <== NOT EXECUTED 63bb2: 8280 orl %d0,%d1 <== NOT EXECUTED 63bb4: 46c1 movew %d1,%sr <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 63bb6: 2451 moveal %a1@,%a2 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 63bb8: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED before_node = after_node->next; after_node->next = the_node; 63bbc: 2288 movel %a0,%a1@ <== NOT EXECUTED the_node->next = before_node; before_node->previous = the_node; 63bbe: 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; 63bc2: 208a movel %a2,%a0@ <== NOT EXECUTED _Chain_Insert_unprotected( after_node, node ); _ISR_Enable( level ); 63bc4: 46c0 movew %d0,%sr <== NOT EXECUTED } 63bc6: 245f moveal %sp@+,%a2 <== NOT EXECUTED 63bc8: 4e5e unlk %fp <== NOT EXECUTED 63bca: 4e75 rts 0004bb04 <_Debug_Is_enabled>: */ bool _Debug_Is_enabled( rtems_debug_control level ) { 4bb04: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4bb08: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4bb0c: c0b9 0005 9d3e andl 59d3e <_Debug_Level>,%d0 <== NOT EXECUTED 4bb12: 56c0 sne %d0 <== NOT EXECUTED return (_Debug_Level & level) ? true : false; } 4bb14: 4e5e unlk %fp <== NOT EXECUTED 4bb16: 4480 negl %d0 <== NOT EXECUTED 4bb18: 4e75 rts <== NOT EXECUTED ... 0004bad0 <_Debug_Manager_initialization>: * * _Debug_Manager_initialization */ void _Debug_Manager_initialization( void ) { 4bad0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_debug_disable( RTEMS_DEBUG_ALL_MASK ); } 4bad4: 4e5e unlk %fp <== NOT EXECUTED void rtems_debug_disable ( rtems_debug_control to_be_disabled ) { _Debug_Level &= ~to_be_disabled; 4bad6: 42b9 0005 9d3e clrl 59d3e <_Debug_Level> <== NOT EXECUTED */ void _Debug_Manager_initialization( void ) { rtems_debug_disable( RTEMS_DEBUG_ALL_MASK ); } 4badc: 4e75 rts 0004b6f0 <_Dual_ported_memory_Manager_initialization>: */ void _Dual_ported_memory_Manager_initialization( uint32_t maximum_ports ) { 4b6f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b6f4: 4878 0004 pea 4 <== NOT EXECUTED 4b6f8: 42a7 clrl %sp@- <== NOT EXECUTED 4b6fa: 4878 001c pea 1c <== NOT EXECUTED 4b6fe: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b702: 4878 0007 pea 7 <== NOT EXECUTED 4b706: 4878 0002 pea 2 <== NOT EXECUTED 4b70a: 4879 0005 a55a pea 5a55a <_Dual_ported_memory_Information> <== NOT EXECUTED 4b710: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b716: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4b71c: 4e5e unlk %fp <== NOT EXECUTED 4b71e: 4e75 rts 0004b720 <_Event_Manager_initialization>: * * This routine performs the initialization necessary for this manager. */ void _Event_Manager_initialization( void ) { 4b720: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED */ #if defined(RTEMS_MULTIPROCESSING) _MPCI_Register_packet_processor( MP_PACKET_EVENT, _Event_MP_Process_packet ); #endif } 4b724: 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; 4b726: 42b9 0005 a4d6 clrl 5a4d6 <_Event_Sync_state> <== NOT EXECUTED */ #if defined(RTEMS_MULTIPROCESSING) _MPCI_Register_packet_processor( MP_PACKET_EVENT, _Event_MP_Process_packet ); #endif } 4b72c: 4e75 rts <== NOT EXECUTED ... 0004555c <_Event_Seize>: rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 4555c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 45560: 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; 45564: 2479 0005 9d3a moveal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 4556a: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4556e: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 45572: 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 ); 45576: 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; 4557c: 42aa 0034 clrl %a2@(52) <== NOT EXECUTED rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 45580: 226e 0014 moveal %fp@(20),%a1 <== NOT EXECUTED Thread_blocking_operation_States sync_state; executing = _Thread_Executing; executing->Wait.return_code = RTEMS_SUCCESSFUL; api = executing->API_Extensions[ THREAD_API_RTEMS ]; 45584: 206a 010c moveal %a2@(268),%a0 <== NOT EXECUTED _ISR_Disable( level ); 45588: 40c5 movew %sr,%d5 <== NOT EXECUTED 4558a: 8085 orl %d5,%d0 <== NOT EXECUTED 4558c: 46c0 movew %d0,%sr <== NOT EXECUTED pending_events = api->pending_events; 4558e: 2810 movel %a0@,%d4 <== 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 ); 45590: 2202 movel %d2,%d1 <== NOT EXECUTED 45592: c284 andl %d4,%d1 <== NOT EXECUTED seized_events = _Event_sets_Get( pending_events, event_in ); if ( !_Event_sets_Is_empty( seized_events ) && 45594: 670c beqs 455a2 <_Event_Seize+0x46> <== NOT EXECUTED 45596: b282 cmpl %d2,%d1 <== NOT EXECUTED 45598: 6700 0084 beqw 4561e <_Event_Seize+0xc2> <== NOT EXECUTED 4559c: 0803 0001 btst #1,%d3 <== NOT EXECUTED 455a0: 667c bnes 4561e <_Event_Seize+0xc2> <== NOT EXECUTED _ISR_Enable( level ); *event_out = seized_events; return; } if ( _Options_Is_no_wait( option_set ) ) { 455a2: 0803 0000 btst #0,%d3 <== NOT EXECUTED 455a6: 6662 bnes 4560a <_Event_Seize+0xae> <== NOT EXECUTED executing->Wait.return_code = RTEMS_UNSATISFIED; *event_out = seized_events; return; } _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; 455a8: 7201 moveq #1,%d1 <== NOT EXECUTED executing->Wait.option = (uint32_t) option_set; 455aa: 2543 0030 movel %d3,%a2@(48) <== NOT EXECUTED executing->Wait.return_code = RTEMS_UNSATISFIED; *event_out = seized_events; return; } _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; 455ae: 23c1 0005 a4d6 movel %d1,5a4d6 <_Event_Sync_state> <== NOT EXECUTED executing->Wait.option = (uint32_t) option_set; executing->Wait.count = (uint32_t) event_in; 455b4: 2542 0024 movel %d2,%a2@(36) <== NOT EXECUTED executing->Wait.return_argument = event_out; 455b8: 2549 0028 movel %a1,%a2@(40) <== NOT EXECUTED _ISR_Enable( level ); 455bc: 46c5 movew %d5,%sr <== NOT EXECUTED if ( ticks ) { 455be: 4a86 tstl %d6 <== NOT EXECUTED 455c0: 6672 bnes 45634 <_Event_Seize+0xd8> <== NOT EXECUTED NULL ); _Watchdog_Insert_ticks( &executing->Timer, ticks ); } _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT ); 455c2: 4878 0100 pea 100 <== NOT EXECUTED 455c6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 455c8: 4eb9 0004 87cc jsr 487cc <_Thread_Set_state> <== NOT EXECUTED _ISR_Disable( level ); 455ce: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 455d4: 40c1 movew %sr,%d1 <== NOT EXECUTED 455d6: 8081 orl %d1,%d0 <== NOT EXECUTED 455d8: 46c0 movew %d0,%sr <== NOT EXECUTED sync_state = _Event_Sync_state; 455da: 2039 0005 a4d6 movel 5a4d6 <_Event_Sync_state>,%d0 <== NOT EXECUTED _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) { 455e0: 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; 455e2: 42b9 0005 a4d6 clrl 5a4d6 <_Event_Sync_state> <== NOT EXECUTED if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) { 455e8: 7401 moveq #1,%d2 <== NOT EXECUTED 455ea: b480 cmpl %d0,%d2 <== NOT EXECUTED 455ec: 6700 00a4 beqw 45692 <_Event_Seize+0x136> <== 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 ); 455f0: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED } 455f4: 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 ); 455fa: 2d41 0010 movel %d1,%fp@(16) <== NOT EXECUTED 455fe: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 45602: 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 ); 45604: 4ef9 0004 7878 jmp 47878 <_Thread_blocking_operation_Cancel> <== NOT EXECUTED *event_out = seized_events; return; } if ( _Options_Is_no_wait( option_set ) ) { _ISR_Enable( level ); 4560a: 46c5 movew %d5,%sr <== NOT EXECUTED executing->Wait.return_code = RTEMS_UNSATISFIED; 4560c: 700d moveq #13,%d0 <== NOT EXECUTED 4560e: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED * The blocking thread was satisfied by an ISR or timed out. * * WARNING! Returning with interrupts disabled! */ _Thread_blocking_operation_Cancel( sync_state, executing, level ); } 45612: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 45618: 4e5e unlk %fp <== NOT EXECUTED } if ( _Options_Is_no_wait( option_set ) ) { _ISR_Enable( level ); executing->Wait.return_code = RTEMS_UNSATISFIED; *event_out = seized_events; 4561a: 2281 movel %d1,%a1@ <== NOT EXECUTED * The blocking thread was satisfied by an ISR or timed out. * * WARNING! Returning with interrupts disabled! */ _Thread_blocking_operation_Cancel( sync_state, executing, level ); } 4561c: 4e75 rts <== NOT EXECUTED pending_events = api->pending_events; seized_events = _Event_sets_Get( pending_events, event_in ); if ( !_Event_sets_Is_empty( seized_events ) && (seized_events == event_in || _Options_Is_any( option_set )) ) { api->pending_events = 4561e: 2001 movel %d1,%d0 <== NOT EXECUTED 45620: 4680 notl %d0 <== NOT EXECUTED 45622: c084 andl %d4,%d0 <== NOT EXECUTED 45624: 2080 movel %d0,%a0@ <== NOT EXECUTED _Event_sets_Clear( pending_events, seized_events ); _ISR_Enable( level ); 45626: 46c5 movew %d5,%sr <== NOT EXECUTED * The blocking thread was satisfied by an ISR or timed out. * * WARNING! Returning with interrupts disabled! */ _Thread_blocking_operation_Cancel( sync_state, executing, level ); } 45628: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 4562e: 4e5e unlk %fp <== NOT EXECUTED if ( !_Event_sets_Is_empty( seized_events ) && (seized_events == event_in || _Options_Is_any( option_set )) ) { api->pending_events = _Event_sets_Clear( pending_events, seized_events ); _ISR_Enable( level ); *event_out = seized_events; 45630: 2281 movel %d1,%a1@ <== NOT EXECUTED * The blocking thread was satisfied by an ISR or timed out. * * WARNING! Returning with interrupts disabled! */ _Thread_blocking_operation_Cancel( sync_state, executing, level ); } 45632: 4e75 rts <== NOT EXECUTED executing->Wait.return_argument = event_out; _ISR_Enable( level ); if ( ticks ) { _Watchdog_Initialize( 45634: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 45638: 243c 0004 581c movel #284700,%d2 <== NOT EXECUTED the_watchdog->id = id; 4563e: 2540 0068 movel %d0,%a2@(104) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45642: 2546 0054 movel %d6,%a2@(84) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 45646: 2542 0064 movel %d2,%a2@(100) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4564a: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 4564e: 42aa 006c clrl %a2@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 45652: 486a 0048 pea %a2@(72) <== NOT EXECUTED 45656: 4879 0005 9d58 pea 59d58 <_Watchdog_Ticks_chain> <== NOT EXECUTED 4565c: 4eb9 0004 9020 jsr 49020 <_Watchdog_Insert> <== NOT EXECUTED 45662: 508f addql #8,%sp <== NOT EXECUTED NULL ); _Watchdog_Insert_ticks( &executing->Timer, ticks ); } _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT ); 45664: 4878 0100 pea 100 <== NOT EXECUTED 45668: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4566a: 4eb9 0004 87cc jsr 487cc <_Thread_Set_state> <== NOT EXECUTED _ISR_Disable( level ); 45670: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 45676: 40c1 movew %sr,%d1 <== NOT EXECUTED 45678: 8081 orl %d1,%d0 <== NOT EXECUTED 4567a: 46c0 movew %d0,%sr <== NOT EXECUTED sync_state = _Event_Sync_state; 4567c: 2039 0005 a4d6 movel 5a4d6 <_Event_Sync_state>,%d0 <== NOT EXECUTED _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) { 45682: 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; 45684: 42b9 0005 a4d6 clrl 5a4d6 <_Event_Sync_state> <== NOT EXECUTED if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) { 4568a: 7401 moveq #1,%d2 <== NOT EXECUTED 4568c: b480 cmpl %d0,%d2 <== NOT EXECUTED 4568e: 6600 ff60 bnew 455f0 <_Event_Seize+0x94> <== NOT EXECUTED _ISR_Enable( level ); 45692: 46c1 movew %d1,%sr <== NOT EXECUTED * The blocking thread was satisfied by an ISR or timed out. * * WARNING! Returning with interrupts disabled! */ _Thread_blocking_operation_Cancel( sync_state, executing, level ); } 45694: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 4569a: 4e5e unlk %fp <== NOT EXECUTED 4569c: 4e75 rts <== NOT EXECUTED ... 000456f0 <_Event_Surrender>: */ void _Event_Surrender( Thread_Control *the_thread ) { 456f0: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 456f4: 48d7 047c moveml %d2-%d6/%a2,%sp@ <== NOT EXECUTED 456f8: 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 ); 456fc: 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 ]; 45702: 206a 010c moveal %a2@(268),%a0 <== NOT EXECUTED option_set = (rtems_option) the_thread->Wait.option; 45706: 2a2a 0030 movel %a2@(48),%d5 <== NOT EXECUTED _ISR_Disable( level ); 4570a: 40c4 movew %sr,%d4 <== NOT EXECUTED 4570c: 8084 orl %d4,%d0 <== NOT EXECUTED 4570e: 46c0 movew %d0,%sr <== NOT EXECUTED pending_events = api->pending_events; event_condition = (rtems_event_set) the_thread->Wait.count; 45710: 222a 0024 movel %a2@(36),%d1 <== 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; 45714: 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 ); 45716: 2401 movel %d1,%d2 <== NOT EXECUTED 45718: c483 andl %d3,%d2 <== 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 ) ) { 4571a: 6776 beqs 45792 <_Event_Surrender+0xa2> <== 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() && 4571c: 2039 0005 9d1a movel 59d1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED 45722: 670a beqs 4572e <_Event_Surrender+0x3e> <== NOT EXECUTED 45724: b5f9 0005 9d3a cmpal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED 4572a: 6700 00a2 beqw 457ce <_Event_Surrender+0xde> <== NOT EXECUTED } /* * Otherwise, this is a normal send to another thread */ if ( _States_Is_waiting_for_event( the_thread->current_state ) ) { 4572e: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 45732: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 45738: 674c beqs 45786 <_Event_Surrender+0x96> <== NOT EXECUTED if ( seized_events == event_condition || _Options_Is_any( option_set ) ) { 4573a: b481 cmpl %d1,%d2 <== NOT EXECUTED 4573c: 6706 beqs 45744 <_Event_Surrender+0x54> <== NOT EXECUTED 4573e: 0805 0001 btst #1,%d5 <== NOT EXECUTED 45742: 6742 beqs 45786 <_Event_Surrender+0x96> <== NOT EXECUTED api->pending_events = _Event_sets_Clear( pending_events, seized_events ); 45744: 2002 movel %d2,%d0 <== NOT EXECUTED 45746: 4680 notl %d0 <== NOT EXECUTED 45748: c083 andl %d3,%d0 <== NOT EXECUTED 4574a: 2080 movel %d0,%a0@ <== NOT EXECUTED the_thread->Wait.count = 0; *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; 4574c: 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; 45750: 42aa 0024 clrl %a2@(36) <== NOT EXECUTED *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; 45754: 2082 movel %d2,%a0@ <== NOT EXECUTED _ISR_Flash( level ); 45756: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4575c: 46c4 movew %d4,%sr <== NOT EXECUTED 4575e: 8084 orl %d4,%d0 <== NOT EXECUTED 45760: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 45762: 7c02 moveq #2,%d6 <== NOT EXECUTED 45764: bcaa 0050 cmpl %a2@(80),%d6 <== NOT EXECUTED 45768: 6734 beqs 4579e <_Event_Surrender+0xae> <== NOT EXECUTED _ISR_Enable( level ); 4576a: 46c4 movew %d4,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 4576c: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 45772: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45774: 4eb9 0004 7a30 jsr 47a30 <_Thread_Clear_state> <== NOT EXECUTED 4577a: 508f addql #8,%sp <== NOT EXECUTED } return; } } _ISR_Enable( level ); } 4577c: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 45782: 4e5e unlk %fp <== NOT EXECUTED 45784: 4e75 rts <== NOT EXECUTED _Thread_Unblock( the_thread ); } return; } } _ISR_Enable( level ); 45786: 46c4 movew %d4,%sr <== NOT EXECUTED } 45788: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 4578e: 4e5e unlk %fp <== NOT EXECUTED 45790: 4e75 rts <== NOT EXECUTED /* * No events were seized in this operation */ if ( _Event_sets_Is_empty( seized_events ) ) { _ISR_Enable( level ); 45792: 46c4 movew %d4,%sr <== NOT EXECUTED } return; } } _ISR_Enable( level ); } 45794: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 4579a: 4e5e unlk %fp <== NOT EXECUTED 4579c: 4e75 rts <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 4579e: 7003 moveq #3,%d0 <== NOT EXECUTED 457a0: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { _ISR_Enable( level ); _Thread_Unblock( the_thread ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 457a4: 46c4 movew %d4,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 457a6: 486a 0048 pea %a2@(72) <== NOT EXECUTED 457aa: 4eb9 0004 9168 jsr 49168 <_Watchdog_Remove> <== NOT EXECUTED 457b0: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 457b6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 457b8: 4eb9 0004 7a30 jsr 47a30 <_Thread_Clear_state> <== NOT EXECUTED 457be: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } return; } } _ISR_Enable( level ); } 457c4: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 457ca: 4e5e unlk %fp <== NOT EXECUTED 457cc: 4e75 rts <== 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() && 457ce: 2039 0005 a4d6 movel 5a4d6 <_Event_Sync_state>,%d0 <== NOT EXECUTED 457d4: 7c01 moveq #1,%d6 <== NOT EXECUTED 457d6: bc80 cmpl %d0,%d6 <== NOT EXECUTED 457d8: 6710 beqs 457ea <_Event_Surrender+0xfa> <== NOT EXECUTED 457da: 2039 0005 a4d6 movel 5a4d6 <_Event_Sync_state>,%d0 <== NOT EXECUTED 457e0: 1c3c 0002 moveb #2,%d6 <== NOT EXECUTED 457e4: bc80 cmpl %d0,%d6 <== NOT EXECUTED 457e6: 6600 ff46 bnew 4572e <_Event_Surrender+0x3e> <== 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) ) { 457ea: b481 cmpl %d1,%d2 <== NOT EXECUTED 457ec: 6706 beqs 457f4 <_Event_Surrender+0x104> <== NOT EXECUTED 457ee: 0805 0001 btst #1,%d5 <== NOT EXECUTED 457f2: 671a beqs 4580e <_Event_Surrender+0x11e> <== NOT EXECUTED api->pending_events = _Event_sets_Clear( pending_events,seized_events ); 457f4: 2002 movel %d2,%d0 <== NOT EXECUTED 457f6: 4680 notl %d0 <== NOT EXECUTED 457f8: c083 andl %d3,%d0 <== NOT EXECUTED 457fa: 2080 movel %d0,%a0@ <== NOT EXECUTED the_thread->Wait.count = 0; *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; 457fc: 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; 45800: 42aa 0024 clrl %a2@(36) <== NOT EXECUTED *(rtems_event_set *)the_thread->Wait.return_argument = seized_events; _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED; 45804: 7003 moveq #3,%d0 <== NOT EXECUTED 45806: 23c0 0005 a4d6 movel %d0,5a4d6 <_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; 4580c: 2082 movel %d2,%a0@ <== NOT EXECUTED _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED; } _ISR_Enable( level ); 4580e: 46c4 movew %d4,%sr <== NOT EXECUTED } return; } } _ISR_Enable( level ); } 45810: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 45816: 4e5e unlk %fp <== NOT EXECUTED 45818: 4e75 rts <== NOT EXECUTED ... 0004581c <_Event_Timeout>: void _Event_Timeout( Objects_Id id, void *ignored ) { 4581c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45820: 2f02 movel %d2,%sp@- <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; ISR_Level level; the_thread = _Thread_Get( id, &location ); 45822: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45826: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4582a: 4eb9 0004 7e30 jsr 47e30 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 45830: 508f addql #8,%sp <== NOT EXECUTED { Thread_Control *the_thread; Objects_Locations location; ISR_Level level; the_thread = _Thread_Get( id, &location ); 45832: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 45834: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45838: 6644 bnes 4587e <_Event_Timeout+0x62> <== NOT EXECUTED * this is the "timeout" transition. After a request is satisfied, * a timeout is not allowed to occur. */ _ISR_Disable( level ); 4583a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 45840: 40c1 movew %sr,%d1 <== NOT EXECUTED 45842: 8081 orl %d1,%d0 <== NOT EXECUTED 45844: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !the_thread->Wait.count ) { /* verify thread is waiting */ 45846: 4aa8 0024 tstl %a0@(36) <== NOT EXECUTED 4584a: 673a beqs 45886 <_Event_Timeout+0x6a> <== NOT EXECUTED _Thread_Unnest_dispatch(); _ISR_Enable( level ); return; } the_thread->Wait.count = 0; 4584c: 42a8 0024 clrl %a0@(36) <== NOT EXECUTED if ( _Thread_Is_executing( the_thread ) ) { 45850: b1f9 0005 9d3a cmpal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 45856: 6746 beqs 4589e <_Event_Timeout+0x82> <== NOT EXECUTED (sync == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ) { _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT; } } the_thread->Wait.return_code = RTEMS_TIMEOUT; 45858: 7406 moveq #6,%d2 <== NOT EXECUTED 4585a: 2142 0034 movel %d2,%a0@(52) <== NOT EXECUTED _ISR_Enable( level ); 4585e: 46c1 movew %d1,%sr <== NOT EXECUTED 45860: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 45866: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45868: 4eb9 0004 7a30 jsr 47a30 <_Thread_Clear_state> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 4586e: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45874: 508f addql #8,%sp <== NOT EXECUTED 45876: 5380 subql #1,%d0 <== NOT EXECUTED 45878: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED case OBJECTS_REMOTE: /* impossible */ #endif case OBJECTS_ERROR: break; } } 4587e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45882: 4e5e unlk %fp <== NOT EXECUTED 45884: 4e75 rts <== NOT EXECUTED 45886: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4588c: 5380 subql #1,%d0 <== NOT EXECUTED 4588e: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _ISR_Disable( level ); if ( !the_thread->Wait.count ) { /* verify thread is waiting */ _Thread_Unnest_dispatch(); _ISR_Enable( level ); 45894: 46c1 movew %d1,%sr <== NOT EXECUTED case OBJECTS_REMOTE: /* impossible */ #endif case OBJECTS_ERROR: break; } } 45896: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4589a: 4e5e unlk %fp <== NOT EXECUTED 4589c: 4e75 rts <== NOT EXECUTED return; } the_thread->Wait.count = 0; if ( _Thread_Is_executing( the_thread ) ) { Thread_blocking_operation_States sync = _Event_Sync_state; 4589e: 2039 0005 a4d6 movel 5a4d6 <_Event_Sync_state>,%d0 <== NOT EXECUTED if ( (sync == THREAD_BLOCKING_OPERATION_SYNCHRONIZED) || 458a4: 7401 moveq #1,%d2 <== NOT EXECUTED 458a6: b480 cmpl %d0,%d2 <== NOT EXECUTED 458a8: 65ae bcss 45858 <_Event_Timeout+0x3c> <== NOT EXECUTED (sync == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ) { _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT; 458aa: 7002 moveq #2,%d0 <== NOT EXECUTED } } the_thread->Wait.return_code = RTEMS_TIMEOUT; 458ac: 7406 moveq #6,%d2 <== NOT EXECUTED the_thread->Wait.count = 0; if ( _Thread_Is_executing( the_thread ) ) { Thread_blocking_operation_States sync = _Event_Sync_state; if ( (sync == THREAD_BLOCKING_OPERATION_SYNCHRONIZED) || (sync == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ) { _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT; 458ae: 23c0 0005 a4d6 movel %d0,5a4d6 <_Event_Sync_state> <== NOT EXECUTED } } the_thread->Wait.return_code = RTEMS_TIMEOUT; 458b4: 2142 0034 movel %d2,%a0@(52) <== NOT EXECUTED _ISR_Enable( level ); 458b8: 46c1 movew %d1,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 458ba: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 458c0: 2f08 movel %a0,%sp@- <== NOT EXECUTED 458c2: 4eb9 0004 7a30 jsr 47a30 <_Thread_Clear_state> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 458c8: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 458ce: 5380 subql #1,%d0 <== NOT EXECUTED 458d0: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED 458d6: 508f addql #8,%sp <== NOT EXECUTED 458d8: 60a4 bras 4587e <_Event_Timeout+0x62> <== NOT EXECUTED ... 00046360 <_Extension_Manager_initialization>: */ void _Extension_Manager_initialization( uint32_t maximum_extensions ) { 46360: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 46364: 4878 0004 pea 4 <== NOT EXECUTED 46368: 42a7 clrl %sp@- <== NOT EXECUTED 4636a: 4878 0044 pea 44 <== NOT EXECUTED 4636e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46372: 4878 0009 pea 9 <== NOT EXECUTED 46376: 4878 0002 pea 2 <== NOT EXECUTED 4637a: 4879 0005 a4da pea 5a4da <_Extension_Information> <== NOT EXECUTED 46380: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 46386: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , false, /* true if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4638c: 4e5e unlk %fp <== NOT EXECUTED 4638e: 4e75 rts 0004bda8 <_Heap_Allocate>: void *_Heap_Allocate( Heap_Control *the_heap, size_t size ) { 4bda8: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4bdac: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 4bdb0: 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 = 4bdb4: 2f2b 0014 movel %a3@(20),%sp@- <== NOT EXECUTED 4bdb8: 2f2b 0010 movel %a3@(16),%sp@- <== NOT EXECUTED 4bdbc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4bdc0: 4eb9 0004 6eba jsr 46eba <_Heap_Calc_block_size> <== NOT EXECUTED _Heap_Calc_block_size(size, the_heap->page_size, the_heap->min_block_size); if(the_size == 0) 4bdc6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4bdcc: 4a80 tstl %d0 <== NOT EXECUTED 4bdce: 675c beqs 4be2c <_Heap_Allocate+0x84> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 4bdd0: 246b 0008 moveal %a3@(8),%a2 <== NOT EXECUTED return NULL; /* Find large enough free block. */ for(the_block = _Heap_First(the_heap), search_count = 0; the_block != tail; 4bdd4: b5cb cmpal %a3,%a2 <== NOT EXECUTED 4bdd6: 6754 beqs 4be2c <_Heap_Allocate+0x84> <== 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) { 4bdd8: b0aa 0004 cmpl %a2@(4),%d0 <== NOT EXECUTED 4bddc: 6360 blss 4be3e <_Heap_Allocate+0x96> <== NOT EXECUTED stats->allocs += 1; stats->searches += search_count + 1; _HAssert(_Heap_Is_aligned_ptr(ptr, the_heap->page_size)); break; 4bdde: 4282 clrl %d2 <== 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) 4bde0: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 4bde4: 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; 4bde6: b5cb cmpal %a3,%a2 <== NOT EXECUTED 4bde8: 674e beqs 4be38 <_Heap_Allocate+0x90> <== 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) { 4bdea: b0aa 0004 cmpl %a2@(4),%d0 <== NOT EXECUTED 4bdee: 62f0 bhis 4bde0 <_Heap_Allocate+0x38> <== NOT EXECUTED (void)_Heap_Block_allocate(the_heap, the_block, the_size ); 4bdf0: 2f00 movel %d0,%sp@- <== 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) { 4bdf2: 2602 movel %d2,%d3 <== NOT EXECUTED (void)_Heap_Block_allocate(the_heap, the_block, the_size ); 4bdf4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4bdf6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4bdf8: 4eb9 0004 6ef6 jsr 46ef6 <_Heap_Block_allocate> <== NOT EXECUTED ptr = _Heap_User_area(the_block); stats->allocs += 1; stats->searches += search_count + 1; 4bdfe: 222b 004c movel %a3@(76),%d1 <== NOT EXECUTED 4be02: 200a movel %a2,%d0 <== NOT EXECUTED 4be04: 5281 addql #1,%d1 <== NOT EXECUTED 4be06: d282 addl %d2,%d1 <== NOT EXECUTED 4be08: 5080 addql #8,%d0 <== NOT EXECUTED 4be0a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4be10: 2741 004c movel %d1,%a3@(76) <== 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; 4be14: 52ab 0048 addql #1,%a3@(72) <== NOT EXECUTED _HAssert(_Heap_Is_aligned_ptr(ptr, the_heap->page_size)); break; } } if(stats->max_search < search_count) 4be18: b6ab 0044 cmpl %a3@(68),%d3 <== NOT EXECUTED 4be1c: 6304 blss 4be22 <_Heap_Allocate+0x7a> <== NOT EXECUTED stats->max_search = search_count; 4be1e: 2743 0044 movel %d3,%a3@(68) <== NOT EXECUTED return ptr; } 4be22: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 4be28: 4e5e unlk %fp <== NOT EXECUTED 4be2a: 4e75 rts <== NOT EXECUTED 4be2c: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 4be32: 4e5e unlk %fp <== NOT EXECUTED break; } } if(stats->max_search < search_count) stats->max_search = search_count; 4be34: 4280 clrl %d0 <== NOT EXECUTED return ptr; } 4be36: 4e75 rts <== 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; 4be38: 2602 movel %d2,%d3 <== NOT EXECUTED 4be3a: 4280 clrl %d0 <== NOT EXECUTED 4be3c: 60da bras 4be18 <_Heap_Allocate+0x70> <== NOT EXECUTED _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) { (void)_Heap_Block_allocate(the_heap, the_block, the_size ); 4be3e: 2f00 movel %d0,%sp@- <== 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) { 4be40: 4282 clrl %d2 <== NOT EXECUTED 4be42: 4283 clrl %d3 <== NOT EXECUTED (void)_Heap_Block_allocate(the_heap, the_block, the_size ); 4be44: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4be46: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4be48: 4eb9 0004 6ef6 jsr 46ef6 <_Heap_Block_allocate> <== NOT EXECUTED ptr = _Heap_User_area(the_block); stats->allocs += 1; stats->searches += search_count + 1; 4be4e: 222b 004c movel %a3@(76),%d1 <== 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; 4be52: 52ab 0048 addql #1,%a3@(72) <== NOT EXECUTED stats->searches += search_count + 1; 4be56: 5281 addql #1,%d1 <== NOT EXECUTED 4be58: d282 addl %d2,%d1 <== NOT EXECUTED 4be5a: 2741 004c movel %d1,%a3@(76) <== NOT EXECUTED 4be5e: 200a movel %a2,%d0 <== NOT EXECUTED 4be60: 5080 addql #8,%d0 <== NOT EXECUTED 4be62: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4be68: 60ae bras 4be18 <_Heap_Allocate+0x70> <== NOT EXECUTED ... 00049d8c <_Heap_Allocate_aligned>: void *_Heap_Allocate_aligned( Heap_Control *the_heap, size_t size, uint32_t alignment ) { 49d8c: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 49d90: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 49d94: 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); 49d98: 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; 49d9c: 2e2b 0010 movel %a3@(16),%d7 <== 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); 49da0: 2f07 movel %d7,%sp@- <== NOT EXECUTED void *_Heap_Allocate_aligned( Heap_Control *the_heap, size_t size, uint32_t alignment ) { 49da2: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 49da6: 2a2e 0010 movel %fp@(16),%d5 <== 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); 49daa: 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; 49dac: 5980 subql #4,%d0 <== NOT EXECUTED 49dae: 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); 49db2: 4eb9 0004 a256 jsr 4a256 <_Heap_Calc_block_size> <== NOT EXECUTED if(the_size == 0) 49db8: 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); 49dbe: 2840 moveal %d0,%a4 <== NOT EXECUTED if(the_size == 0) 49dc0: 4a80 tstl %d0 <== NOT EXECUTED 49dc2: 6700 00ac beqw 49e70 <_Heap_Allocate_aligned+0xe4> <== NOT EXECUTED return NULL; if(alignment == 0) 49dc6: 4a85 tstl %d5 <== NOT EXECUTED 49dc8: 6700 009e beqw 49e68 <_Heap_Allocate_aligned+0xdc> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 49dcc: 246b 0008 moveal %a3@(8),%a2 <== 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; 49dd0: b5cb cmpal %a3,%a2 <== NOT EXECUTED 49dd2: 6700 009c beqw 49e70 <_Heap_Allocate_aligned+0xe4> <== NOT EXECUTED 49dd6: 4286 clrl %d6 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 49dd8: 78fe moveq #-2,%d4 <== NOT EXECUTED 49dda: c8aa 0004 andl %a2@(4),%d4 <== 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. */ 49dde: b88c cmpl %a4,%d4 <== NOT EXECUTED 49de0: 6540 bcss 49e22 <_Heap_Allocate_aligned+0x96> <== 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; 49de2: 43f2 4800 lea %a2@(00000000,%d4:l),%a1 <== NOT EXECUTED aligned_user_addr = block_end - end_to_user_offs; 49de6: 2009 movel %a1,%d0 <== NOT EXECUTED 49de8: 90ae fffc subl %fp@(-4),%d0 <== NOT EXECUTED _H_uptr_t *value, uint32_t alignment ) { _H_uptr_t v = *value; *value = v - (v % alignment); 49dec: 2400 movel %d0,%d2 <== NOT EXECUTED 49dee: 4c45 2001 remul %d5,%d1,%d2 <== NOT EXECUTED 49df2: 2600 movel %d0,%d3 <== NOT EXECUTED 49df4: 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)); 49df6: 2003 movel %d3,%d0 <== NOT EXECUTED 49df8: 4c47 0002 remul %d7,%d2,%d0 <== NOT EXECUTED 49dfc: 2003 movel %d3,%d0 <== NOT EXECUTED 49dfe: 9082 subl %d2,%d0 <== NOT EXECUTED 49e00: 220a movel %a2,%d1 <== NOT EXECUTED 49e02: 2400 movel %d0,%d2 <== NOT EXECUTED 49e04: 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) { 49e06: b081 cmpl %d1,%d0 <== NOT EXECUTED 49e08: 6518 bcss 49e22 <_Heap_Allocate_aligned+0x96> <== 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) { 49e0a: 2a6b 0014 moveal %a3@(20),%a5 <== NOT EXECUTED 49e0e: 9081 subl %d1,%d0 <== NOT EXECUTED 49e10: bbc0 cmpal %d0,%a5 <== NOT EXECUTED 49e12: 630a blss 49e1e <_Heap_Allocate_aligned+0x92> <== 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) { 49e14: 2003 movel %d3,%d0 <== NOT EXECUTED 49e16: 9081 subl %d1,%d0 <== NOT EXECUTED 49e18: b087 cmpl %d7,%d0 <== NOT EXECUTED 49e1a: 6426 bccs 49e42 <_Heap_Allocate_aligned+0xb6> <== NOT EXECUTED 49e1c: 2401 movel %d1,%d2 <== NOT EXECUTED aligned_user_addr = 0; } } } if(aligned_user_addr) { 49e1e: 4a83 tstl %d3 <== NOT EXECUTED 49e20: 665a bnes 49e7c <_Heap_Allocate_aligned+0xf0> <== 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) 49e22: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 49e26: 5286 addql #1,%d6 <== 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; 49e28: b5cb cmpal %a3,%a2 <== NOT EXECUTED 49e2a: 66ac bnes 49dd8 <_Heap_Allocate_aligned+0x4c> <== NOT EXECUTED 49e2c: 4280 clrl %d0 <== NOT EXECUTED } } } } if(stats->max_search < search_count) 49e2e: bcab 0044 cmpl %a3@(68),%d6 <== NOT EXECUTED 49e32: 6304 blss 49e38 <_Heap_Allocate_aligned+0xac> <== NOT EXECUTED stats->max_search = search_count; 49e34: 2746 0044 movel %d6,%a3@(68) <== NOT EXECUTED return user_ptr; } 49e38: 4cee 3cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a5 <== NOT EXECUTED 49e3e: 4e5e unlk %fp <== NOT EXECUTED 49e40: 4e75 rts <== NOT EXECUTED uint32_t alignment ) { _H_uptr_t v = *value; uint32_t a = alignment; _H_uptr_t r = v % a; 49e42: 2001 movel %d1,%d0 <== NOT EXECUTED 49e44: 4c45 0002 remul %d5,%d2,%d0 <== NOT EXECUTED *value = r ? v - r + a : v; 49e48: 4a82 tstl %d2 <== NOT EXECUTED 49e4a: 6716 beqs 49e62 <_Heap_Allocate_aligned+0xd6> <== NOT EXECUTED 49e4c: 2001 movel %d1,%d0 <== NOT EXECUTED 49e4e: d085 addl %d5,%d0 <== NOT EXECUTED 49e50: 9082 subl %d2,%d0 <== NOT EXECUTED 49e52: 2040 moveal %d0,%a0 <== NOT EXECUTED 49e54: 91c1 subal %d1,%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) { 49e56: b1c7 cmpal %d7,%a0 <== NOT EXECUTED 49e58: 64c8 bccs 49e22 <_Heap_Allocate_aligned+0x96> <== NOT EXECUTED 49e5a: 2401 movel %d1,%d2 <== NOT EXECUTED 49e5c: 2600 movel %d0,%d3 <== NOT EXECUTED aligned_user_addr = 0; } } } if(aligned_user_addr) { 49e5e: 67c2 beqs 49e22 <_Heap_Allocate_aligned+0x96> <== NOT EXECUTED 49e60: 601a bras 49e7c <_Heap_Allocate_aligned+0xf0> <== NOT EXECUTED 49e62: 2001 movel %d1,%d0 <== NOT EXECUTED 49e64: 91c8 subal %a0,%a0 <== NOT EXECUTED 49e66: 60ee bras 49e56 <_Heap_Allocate_aligned+0xca> <== NOT EXECUTED _Heap_Calc_block_size(size, page_size, the_heap->min_block_size); if(the_size == 0) return NULL; if(alignment == 0) 49e68: 1a3c 0004 moveb #4,%d5 <== NOT EXECUTED 49e6c: 6000 ff5e braw 49dcc <_Heap_Allocate_aligned+0x40> <== NOT EXECUTED if(stats->max_search < search_count) stats->max_search = search_count; return user_ptr; } 49e70: 4cee 3cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a5 <== NOT EXECUTED 49e76: 4e5e unlk %fp <== NOT EXECUTED } } } if(stats->max_search < search_count) stats->max_search = search_count; 49e78: 4280 clrl %d0 <== NOT EXECUTED return user_ptr; } 49e7a: 4e75 rts <== NOT EXECUTED if(aligned_user_addr) { /* 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; 49e7c: 2009 movel %a1,%d0 <== NOT EXECUTED 49e7e: 5080 addql #8,%d0 <== NOT EXECUTED 49e80: 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; 49e82: 2204 movel %d4,%d1 <== NOT EXECUTED 49e84: 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) { 49e86: bbc1 cmpal %d1,%a5 <== NOT EXECUTED 49e88: 6244 bhis 49ece <_Heap_Allocate_aligned+0x142> <== 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; 49e8a: 7401 moveq #1,%d2 <== NOT EXECUTED 49e8c: 8481 orl %d1,%d2 <== NOT EXECUTED 49e8e: 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); 49e92: d5c1 addal %d1,%a2 <== NOT EXECUTED the_block = _Heap_Block_at(the_block, the_rest); the_block->prev_size = the_rest; 49e94: 2481 movel %d1,%a2@ <== NOT EXECUTED the_block->size = alloc_size; 49e96: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED _Heap_Block_remove(the_block); alloc_size = block_size; stats->free_blocks -= 1; } /* Mark the block as used (in the next block). */ _Heap_Block_at(the_block, alloc_size)->size |= HEAP_PREV_USED; 49e9a: 7201 moveq #1,%d1 <== NOT EXECUTED 49e9c: 83b2 0804 orl %d1,%a2@(00000004,%d0:l) <== NOT EXECUTED /* Update statistics */ stats->free_size -= alloc_size; 49ea0: 242b 0030 movel %a3@(48),%d2 <== NOT EXECUTED 49ea4: 9480 subl %d0,%d2 <== NOT EXECUTED 49ea6: 2742 0030 movel %d2,%a3@(48) <== NOT EXECUTED if(stats->min_free_size > stats->free_size) 49eaa: b4ab 0034 cmpl %a3@(52),%d2 <== NOT EXECUTED 49eae: 6404 bccs 49eb4 <_Heap_Allocate_aligned+0x128> <== NOT EXECUTED stats->min_free_size = stats->free_size; 49eb0: 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; 49eb4: 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; 49eb8: 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; 49ebc: 5280 addql #1,%d0 <== NOT EXECUTED stats->allocs += 1; 49ebe: 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; 49ec2: d086 addl %d6,%d0 <== NOT EXECUTED 49ec4: 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; 49ec8: 2003 movel %d3,%d0 <== NOT EXECUTED 49eca: 6000 ff62 braw 49e2e <_Heap_Allocate_aligned+0xa2> <== NOT EXECUTED Heap_Block *the_block ) { Heap_Block *block = the_block; Heap_Block *next = block->next; 49ece: 226a 0008 moveal %a2@(8),%a1 <== NOT EXECUTED Heap_Block *prev = block->prev; 49ed2: 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; 49ed6: 53ab 0038 subql #1,%a3@(56) <== NOT EXECUTED 49eda: 2004 movel %d4,%d0 <== NOT EXECUTED prev->next = next; next->prev = prev; 49edc: 2348 000c movel %a0,%a1@(12) <== NOT EXECUTED { Heap_Block *block = the_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; prev->next = next; 49ee0: 2149 0008 movel %a1,%a0@(8) <== NOT EXECUTED 49ee4: 60b4 bras 49e9a <_Heap_Allocate_aligned+0x10e> <== NOT EXECUTED ... 00046ef6 <_Heap_Block_allocate>: uint32_t _Heap_Block_allocate( Heap_Control* the_heap, Heap_Block* the_block, uint32_t alloc_size ) { 46ef6: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 46efa: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 46efe: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 46f02: 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); 46f06: 72fe moveq #-2,%d1 <== NOT EXECUTED 46f08: c2ab 0004 andl %a3@(4),%d1 <== NOT EXECUTED 46f0c: 286e 0008 moveal %fp@(8),%a4 <== 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; 46f10: 2001 movel %d1,%d0 <== NOT EXECUTED 46f12: 9082 subl %d2,%d0 <== 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) { 46f14: b0ac 0014 cmpl %a4@(20),%d0 <== NOT EXECUTED 46f18: 6552 bcss 46f6c <_Heap_Block_allocate+0x76> <== NOT EXECUTED Heap_Block *old_block, Heap_Block *new_block ) { Heap_Block *block = old_block; Heap_Block *next = block->next; 46f1a: 246b 0008 moveal %a3@(8),%a2 <== NOT EXECUTED Heap_Block *prev = block->prev; 46f1e: 226b 000c moveal %a3@(12),%a1 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 46f22: 41f3 2800 lea %a3@(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; 46f26: 7201 moveq #1,%d1 <== NOT EXECUTED 46f28: 8282 orl %d2,%d1 <== NOT EXECUTED 46f2a: 2741 0004 movel %d1,%a3@(4) <== NOT EXECUTED next_block->size = the_rest | HEAP_PREV_USED; 46f2e: 7201 moveq #1,%d1 <== NOT EXECUTED 46f30: 8280 orl %d0,%d1 <== NOT EXECUTED Heap_Block *block = old_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; block = new_block; block->next = next; 46f32: 214a 0008 movel %a2,%a0@(8) <== NOT EXECUTED _Heap_Block_at(next_block, the_rest)->prev_size = the_rest; 46f36: 2180 0800 movel %d0,%a0@(00000000,%d0:l) <== NOT EXECUTED block->prev = prev; 46f3a: 2149 000c movel %a1,%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; 46f3e: 2141 0004 movel %d1,%a0@(4) <== NOT EXECUTED next->prev = prev->next = block; 46f42: 2348 0008 movel %a0,%a1@(8) <== NOT EXECUTED 46f46: 2548 000c movel %a0,%a2@(12) <== NOT EXECUTED alloc_size = block_size; _Heap_Block_at(the_block, alloc_size)->size |= HEAP_PREV_USED; stats->free_blocks -= 1; } /* Update statistics */ stats->free_size -= alloc_size; 46f4a: 222c 0030 movel %a4@(48),%d1 <== NOT EXECUTED 46f4e: 9282 subl %d2,%d1 <== NOT EXECUTED 46f50: 2941 0030 movel %d1,%a4@(48) <== NOT EXECUTED if(stats->min_free_size > stats->free_size) 46f54: b2ac 0034 cmpl %a4@(52),%d1 <== NOT EXECUTED 46f58: 6404 bccs 46f5e <_Heap_Block_allocate+0x68> <== NOT EXECUTED stats->min_free_size = stats->free_size; 46f5a: 2941 0034 movel %d1,%a4@(52) <== NOT EXECUTED stats->used_blocks += 1; 46f5e: 52ac 0040 addql #1,%a4@(64) <== NOT EXECUTED return alloc_size; } 46f62: 2002 movel %d2,%d0 <== NOT EXECUTED 46f64: 4cd7 1c04 moveml %sp@,%d2/%a2-%a4 <== NOT EXECUTED 46f68: 4e5e unlk %fp <== NOT EXECUTED 46f6a: 4e75 rts <== 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; 46f6c: 7001 moveq #1,%d0 <== NOT EXECUTED Heap_Block *the_block ) { Heap_Block *block = the_block; Heap_Block *next = block->next; 46f6e: 226b 0008 moveal %a3@(8),%a1 <== NOT EXECUTED Heap_Block *prev = block->prev; 46f72: 206b 000c moveal %a3@(12),%a0 <== NOT EXECUTED 46f76: 81b3 1804 orl %d0,%a3@(00000004,%d1:l) <== NOT EXECUTED stats->free_blocks -= 1; 46f7a: 53ac 0038 subql #1,%a4@(56) <== NOT EXECUTED 46f7e: 2401 movel %d1,%d2 <== NOT EXECUTED prev->next = next; next->prev = prev; 46f80: 2348 000c movel %a0,%a1@(12) <== NOT EXECUTED { Heap_Block *block = the_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; prev->next = next; 46f84: 2149 0008 movel %a1,%a0@(8) <== NOT EXECUTED 46f88: 60c0 bras 46f4a <_Heap_Block_allocate+0x54> <== NOT EXECUTED ... 00046eba <_Heap_Calc_block_size>: */ size_t _Heap_Calc_block_size( size_t size, uint32_t page_size, uint32_t min_size) { 46eba: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46ebe: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 46ec2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46ec4: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED uint32_t block_size = size + HEAP_BLOCK_USED_OVERHEAD; 46ec8: 2009 movel %a1,%d0 <== NOT EXECUTED 46eca: 5880 addql #4,%d0 <== NOT EXECUTED */ size_t _Heap_Calc_block_size( size_t size, uint32_t page_size, uint32_t min_size) { 46ecc: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 46ed0: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t alignment ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; 46ed2: 2600 movel %d0,%d3 <== NOT EXECUTED 46ed4: 4c41 3002 remul %d1,%d2,%d3 <== NOT EXECUTED *value = r ? v - r + a : v; 46ed8: 4a82 tstl %d2 <== NOT EXECUTED 46eda: 6704 beqs 46ee0 <_Heap_Calc_block_size+0x26> <== NOT EXECUTED 46edc: d081 addl %d1,%d0 <== NOT EXECUTED 46ede: 9082 subl %d2,%d0 <== NOT EXECUTED 46ee0: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 46ee2: 6302 blss 46ee6 <_Heap_Calc_block_size+0x2c> <== NOT EXECUTED 46ee4: 2008 movel %a0,%d0 <== 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; } 46ee6: 241f movel %sp@+,%d2 <== NOT EXECUTED 46ee8: 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; 46eea: b089 cmpl %a1,%d0 <== NOT EXECUTED 46eec: 52c1 shi %d1 <== NOT EXECUTED 46eee: 49c1 extbl %d1 <== NOT EXECUTED } 46ef0: 4e5e unlk %fp <== NOT EXECUTED 46ef2: c081 andl %d1,%d0 <== NOT EXECUTED 46ef4: 4e75 rts 0004f3f8 <_Heap_Extend>: Heap_Control *the_heap, void *starting_address, size_t size, uint32_t *amount_extended ) { 4f3f8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4f3fc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4f3fe: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 4f402: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4f406: 2f02 movel %d2,%sp@- <== NOT EXECUTED * 5. non-contiguous higher address (NOT SUPPORTED) * * As noted, this code only supports (4). */ if ( starting_address >= the_heap->begin && /* case 3 */ 4f408: b0a9 0018 cmpl %a1@(24),%d0 <== NOT EXECUTED 4f40c: 6416 bccs 4f424 <_Heap_Extend+0x2c> <== NOT EXECUTED 4f40e: 2229 001c movel %a1@(28),%d1 <== NOT EXECUTED starting_address < the_heap->end ) return HEAP_EXTEND_ERROR; if ( starting_address != the_heap->end ) 4f412: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f414: 6724 beqs 4f43a <_Heap_Extend+0x42> <== NOT EXECUTED stats->frees -= 1; /* Don't count subsequent call as actual free() */ _Heap_Free( the_heap, _Heap_User_area( old_final ) ); return HEAP_EXTEND_SUCCESSFUL; } 4f416: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4f41a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4f41e: 4e5e unlk %fp <== NOT EXECUTED if ( starting_address >= the_heap->begin && /* case 3 */ starting_address < the_heap->end ) return HEAP_EXTEND_ERROR; if ( starting_address != the_heap->end ) 4f420: 7002 moveq #2,%d0 <== NOT EXECUTED stats->frees -= 1; /* Don't count subsequent call as actual free() */ _Heap_Free( the_heap, _Heap_User_area( old_final ) ); return HEAP_EXTEND_SUCCESSFUL; } 4f422: 4e75 rts <== NOT EXECUTED * 5. non-contiguous higher address (NOT SUPPORTED) * * As noted, this code only supports (4). */ if ( starting_address >= the_heap->begin && /* case 3 */ 4f424: 2229 001c movel %a1@(28),%d1 <== NOT EXECUTED 4f428: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f42a: 63e6 blss 4f412 <_Heap_Extend+0x1a> <== NOT EXECUTED stats->frees -= 1; /* Don't count subsequent call as actual free() */ _Heap_Free( the_heap, _Heap_User_area( old_final ) ); return HEAP_EXTEND_SUCCESSFUL; } 4f42c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4f430: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4f434: 4e5e unlk %fp <== NOT EXECUTED * 5. non-contiguous higher address (NOT SUPPORTED) * * As noted, this code only supports (4). */ if ( starting_address >= the_heap->begin && /* case 3 */ 4f436: 7001 moveq #1,%d0 <== NOT EXECUTED stats->frees -= 1; /* Don't count subsequent call as actual free() */ _Heap_Free( the_heap, _Heap_User_area( old_final ) ); return HEAP_EXTEND_SUCCESSFUL; } 4f438: 4e75 rts <== NOT EXECUTED 4f43a: d0ae 0010 addl %fp@(16),%d0 <== 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; 4f43e: 2469 0024 moveal %a1@(36),%a2 <== NOT EXECUTED the_heap->end = _Addresses_Add_offset( the_heap->end, size ); 4f442: 2340 001c movel %d0,%a1@(28) <== NOT EXECUTED the_size = _Addresses_Subtract( the_heap->end, old_final ) - HEAP_OVERHEAD; 4f446: 908a subl %a2,%d0 <== NOT EXECUTED 4f448: 5180 subql #8,%d0 <== NOT EXECUTED _Heap_Align_down( &the_size, the_heap->page_size ); *amount_extended = size; 4f44a: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED uint32_t *value, uint32_t alignment ) { uint32_t v = *value; *value = v - (v % alignment); 4f44e: 2400 movel %d0,%d2 <== NOT EXECUTED 4f450: 4c69 2001 0010 remul %a1@(16),%d1,%d2 <== NOT EXECUTED 4f456: 9081 subl %d1,%d0 <== NOT EXECUTED 4f458: 20ae 0010 movel %fp@(16),%a0@ <== NOT EXECUTED 4f45c: 2200 movel %d0,%d1 <== NOT EXECUTED if( the_size < the_heap->min_block_size ) 4f45e: b0a9 0014 cmpl %a1@(20),%d0 <== NOT EXECUTED 4f462: 640e bccs 4f472 <_Heap_Extend+0x7a> <== 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 ) ); 4f464: 4280 clrl %d0 <== NOT EXECUTED return HEAP_EXTEND_SUCCESSFUL; } 4f466: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4f46a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4f46e: 4e5e unlk %fp <== NOT EXECUTED 4f470: 4e75 rts <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 4f472: 41f2 0800 lea %a2@(00000000,%d0:l),%a0 <== NOT EXECUTED *amount_extended = size; if( the_size < the_heap->min_block_size ) return HEAP_EXTEND_SUCCESSFUL; old_final->size = the_size | (old_final->size & HEAP_PREV_USED); 4f476: 7001 moveq #1,%d0 <== NOT EXECUTED 4f478: c0aa 0004 andl %a2@(4),%d0 <== NOT EXECUTED 4f47c: 8280 orl %d0,%d1 <== NOT EXECUTED 4f47e: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED new_final = _Heap_Block_at( old_final, the_size ); new_final->size = HEAP_PREV_USED; 4f482: 7001 moveq #1,%d0 <== NOT EXECUTED 4f484: 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 ) ); 4f488: 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; 4f48c: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED stats->used_blocks += 1; 4f490: 52a9 0040 addql #1,%a1@(64) <== 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; 4f494: d3a9 002c addl %d1,%a1@(44) <== NOT EXECUTED stats->used_blocks += 1; stats->frees -= 1; /* Don't count subsequent call as actual free() */ 4f498: 53a9 0050 subql #1,%a1@(80) <== NOT EXECUTED _Heap_Free( the_heap, _Heap_User_area( old_final ) ); 4f49c: 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; 4f49e: 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 ) ); 4f4a2: 4eb9 0004 9fac jsr 49fac <_Heap_Free> <== NOT EXECUTED 4f4a8: 508f addql #8,%sp <== NOT EXECUTED 4f4aa: 4280 clrl %d0 <== NOT EXECUTED 4f4ac: 60b8 bras 4f466 <_Heap_Extend+0x6e> <== NOT EXECUTED ... 0004be6c <_Heap_Free>: bool _Heap_Free( Heap_Control *the_heap, void *starting_address ) { 4be6c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4be70: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED 4be74: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4be78: 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( 4be7c: 226b 0024 moveal %a3@(36),%a1 <== NOT EXECUTED 4be80: 206b 0020 moveal %a3@(32),%a0 <== NOT EXECUTED void *address, void *base, void *limit ) { return (address >= base && address <= limit); 4be84: b288 cmpl %a0,%d1 <== NOT EXECUTED 4be86: 6504 bcss 4be8c <_Heap_Free+0x20> <== NOT EXECUTED 4be88: b289 cmpl %a1,%d1 <== NOT EXECUTED 4be8a: 630a blss 4be96 <_Heap_Free+0x2a> <== NOT EXECUTED stats->used_blocks -= 1; stats->free_size += the_size; stats->frees += 1; return( TRUE ); } 4be8c: 4cd7 1c1c moveml %sp@,%d2-%d4/%a2-%a4 <== NOT EXECUTED 4be90: 4e5e unlk %fp <== NOT EXECUTED stats->used_blocks -= 1; stats->free_size += the_size; stats->frees += 1; return( TRUE ); 4be92: 4200 clrb %d0 <== NOT EXECUTED } 4be94: 4e75 rts <== 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); 4be96: 2401 movel %d1,%d2 <== NOT EXECUTED 4be98: 2441 moveal %d1,%a2 <== NOT EXECUTED 4be9a: 4c6b 2000 0010 remul %a3@(16),%d0,%d2 <== NOT EXECUTED 4bea0: 518a subql #8,%a2 <== NOT EXECUTED 4bea2: 95c0 subal %d0,%a2 <== NOT EXECUTED 4bea4: b5c8 cmpal %a0,%a2 <== NOT EXECUTED 4bea6: 65e4 bcss 4be8c <_Heap_Free+0x20> <== NOT EXECUTED 4bea8: b5c9 cmpal %a1,%a2 <== NOT EXECUTED 4beaa: 62e0 bhis 4be8c <_Heap_Free+0x20> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 4beac: 222a 0004 movel %a2@(4),%d1 <== NOT EXECUTED 4beb0: 76fe moveq #-2,%d3 <== NOT EXECUTED 4beb2: 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 ); 4beb4: 49f2 3800 lea %a2@(00000000,%d3:l),%a4 <== NOT EXECUTED 4beb8: b9c8 cmpal %a0,%a4 <== NOT EXECUTED 4beba: 65d0 bcss 4be8c <_Heap_Free+0x20> <== NOT EXECUTED 4bebc: b9c9 cmpal %a1,%a4 <== NOT EXECUTED 4bebe: 62cc bhis 4be8c <_Heap_Free+0x20> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used ( Heap_Block *the_block ) { return (the_block->size & HEAP_PREV_USED); 4bec0: 242c 0004 movel %a4@(4),%d2 <== NOT EXECUTED if ( !_Heap_Is_block_in( the_heap, next_block ) ) { _HAssert( FALSE ); return( FALSE ); } if ( !_Heap_Is_prev_used( next_block ) ) { 4bec4: 7001 moveq #1,%d0 <== NOT EXECUTED 4bec6: c082 andl %d2,%d0 <== NOT EXECUTED 4bec8: 4a00 tstb %d0 <== NOT EXECUTED 4beca: 67c0 beqs 4be8c <_Heap_Free+0x20> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 4becc: 78fe moveq #-2,%d4 <== NOT EXECUTED 4bece: c882 andl %d2,%d4 <== NOT EXECUTED _HAssert( FALSE ); return( FALSE ); } next_size = _Heap_Block_size( next_block ); next_is_free = next_block < the_heap->final && 4bed0: b9c9 cmpal %a1,%a4 <== NOT EXECUTED 4bed2: 6560 bcss 4bf34 <_Heap_Free+0xc8> <== NOT EXECUTED 4bed4: 4202 clrb %d2 <== NOT EXECUTED !_Heap_Is_prev_used(_Heap_Block_at(next_block, next_size)); if ( !_Heap_Is_prev_used( the_block ) ) { 4bed6: 7001 moveq #1,%d0 <== NOT EXECUTED 4bed8: c280 andl %d0,%d1 <== NOT EXECUTED 4beda: 4a01 tstb %d1 <== NOT EXECUTED 4bedc: 6662 bnes 4bf40 <_Heap_Free+0xd4> <== NOT EXECUTED uint32_t const prev_size = the_block->prev_size; 4bede: 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 ); 4bee0: 95c1 subal %d1,%a2 <== NOT EXECUTED 4bee2: b5c8 cmpal %a0,%a2 <== NOT EXECUTED 4bee4: 65a6 bcss 4be8c <_Heap_Free+0x20> <== NOT EXECUTED 4bee6: b5c9 cmpal %a1,%a2 <== NOT EXECUTED 4bee8: 62a2 bhis 4be8c <_Heap_Free+0x20> <== 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) ) { 4beea: c0aa 0004 andl %a2@(4),%d0 <== NOT EXECUTED 4beee: 4a00 tstb %d0 <== NOT EXECUTED 4bef0: 679a beqs 4be8c <_Heap_Free+0x20> <== NOT EXECUTED _HAssert( FALSE ); return( FALSE ); } if ( next_is_free ) { /* coalesce both */ 4bef2: 4a02 tstb %d2 <== NOT EXECUTED 4bef4: 6700 00d2 beqw 4bfc8 <_Heap_Free+0x15c> <== NOT EXECUTED uint32_t const size = the_size + prev_size + next_size; _Heap_Block_remove( next_block ); stats->free_blocks -= 1; 4bef8: 53ab 0038 subql #1,%a3@(56) <== NOT EXECUTED _HAssert( FALSE ); return( FALSE ); } if ( next_is_free ) { /* coalesce both */ uint32_t const size = the_size + prev_size + next_size; 4befc: 2003 movel %d3,%d0 <== NOT EXECUTED 4befe: d084 addl %d4,%d0 <== NOT EXECUTED 4bf00: d081 addl %d1,%d0 <== NOT EXECUTED ) { Heap_Block *block = the_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; 4bf02: 226c 000c moveal %a4@(12),%a1 <== NOT EXECUTED Heap_Block *the_block ) { Heap_Block *block = the_block; Heap_Block *next = block->next; 4bf06: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED _Heap_Block_remove( next_block ); stats->free_blocks -= 1; prev_block->size = size | HEAP_PREV_USED; 4bf0a: 7201 moveq #1,%d1 <== NOT EXECUTED 4bf0c: 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; 4bf0e: 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; 4bf12: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED Heap_Block *prev = block->prev; prev->next = next; next->prev = prev; 4bf16: 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; 4bf1a: 2348 0008 movel %a0,%a1@(8) <== NOT EXECUTED stats->max_free_blocks = stats->free_blocks; } stats->used_blocks -= 1; stats->free_size += the_size; stats->frees += 1; 4bf1e: 7001 moveq #1,%d0 <== NOT EXECUTED if ( stats->max_free_blocks < stats->free_blocks ) stats->max_free_blocks = stats->free_blocks; } stats->used_blocks -= 1; stats->free_size += the_size; 4bf20: d7ab 0030 addl %d3,%a3@(48) <== NOT EXECUTED stats->frees += 1; 4bf24: 52ab 0050 addql #1,%a3@(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; 4bf28: 53ab 0040 subql #1,%a3@(64) <== NOT EXECUTED stats->free_size += the_size; stats->frees += 1; return( TRUE ); } 4bf2c: 4cd7 1c1c moveml %sp@,%d2-%d4/%a2-%a4 <== NOT EXECUTED 4bf30: 4e5e unlk %fp <== NOT EXECUTED 4bf32: 4e75 rts <== NOT EXECUTED _HAssert( FALSE ); return( FALSE ); } next_size = _Heap_Block_size( next_block ); next_is_free = next_block < the_heap->final && 4bf34: 2034 4804 movel %a4@(00000004,%d4:l),%d0 <== NOT EXECUTED 4bf38: 7401 moveq #1,%d2 <== NOT EXECUTED 4bf3a: b580 eorl %d2,%d0 <== NOT EXECUTED 4bf3c: c480 andl %d0,%d2 <== NOT EXECUTED 4bf3e: 6096 bras 4bed6 <_Heap_Free+0x6a> <== NOT EXECUTED prev_block->size = size | HEAP_PREV_USED; next_block->size &= ~HEAP_PREV_USED; next_block->prev_size = size; } } else if ( next_is_free ) { /* coalesce next */ 4bf40: 4a02 tstb %d2 <== NOT EXECUTED 4bf42: 6738 beqs 4bf7c <_Heap_Free+0x110> <== NOT EXECUTED Heap_Block *new_block ) { Heap_Block *block = old_block; Heap_Block *next = block->next; Heap_Block *prev = block->prev; 4bf44: 206c 000c moveal %a4@(12),%a0 <== NOT EXECUTED Heap_Block *old_block, Heap_Block *new_block ) { Heap_Block *block = old_block; Heap_Block *next = block->next; 4bf48: 226c 0008 moveal %a4@(8),%a1 <== NOT EXECUTED uint32_t const size = the_size + next_size; 4bf4c: 2004 movel %d4,%d0 <== NOT EXECUTED 4bf4e: d083 addl %d3,%d0 <== NOT EXECUTED _Heap_Block_replace( next_block, the_block ); the_block->size = size | HEAP_PREV_USED; 4bf50: 7201 moveq #1,%d1 <== NOT EXECUTED next_block = _Heap_Block_at( the_block, size ); next_block->prev_size = size; 4bf52: 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; 4bf56: 8280 orl %d0,%d1 <== NOT EXECUTED stats->max_free_blocks = stats->free_blocks; } stats->used_blocks -= 1; stats->free_size += the_size; stats->frees += 1; 4bf58: 7001 moveq #1,%d0 <== 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; 4bf5a: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED if ( stats->max_free_blocks < stats->free_blocks ) stats->max_free_blocks = stats->free_blocks; } stats->used_blocks -= 1; stats->free_size += the_size; 4bf5e: d7ab 0030 addl %d3,%a3@(48) <== NOT EXECUTED stats->frees += 1; 4bf62: 52ab 0050 addql #1,%a3@(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; 4bf66: 53ab 0040 subql #1,%a3@(64) <== NOT EXECUTED Heap_Block *prev = block->prev; block = new_block; block->next = next; 4bf6a: 2549 0008 movel %a1,%a2@(8) <== NOT EXECUTED block->prev = prev; 4bf6e: 2548 000c movel %a0,%a2@(12) <== NOT EXECUTED next->prev = prev->next = block; 4bf72: 214a 0008 movel %a2,%a0@(8) <== NOT EXECUTED 4bf76: 234a 000c movel %a2,%a1@(12) <== NOT EXECUTED 4bf7a: 60b0 bras 4bf2c <_Heap_Free+0xc0> <== 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; 4bf7c: 7401 moveq #1,%d2 <== NOT EXECUTED 4bf7e: 8483 orl %d3,%d2 <== NOT EXECUTED ) { Heap_Block *prev = prev_block; Heap_Block *block = the_block; Heap_Block *next = prev->next; 4bf80: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED 4bf84: 2542 0004 movel %d2,%a2@(4) <== NOT EXECUTED next_block->size &= ~HEAP_PREV_USED; 4bf88: 70fe moveq #-2,%d0 <== NOT EXECUTED 4bf8a: c1ac 0004 andl %d0,%a4@(4) <== NOT EXECUTED next_block->prev_size = the_size; 4bf8e: 2883 movel %d3,%a4@ <== NOT EXECUTED stats->free_blocks += 1; 4bf90: 202b 0038 movel %a3@(56),%d0 <== NOT EXECUTED block->next = next; 4bf94: 2548 0008 movel %a0,%a2@(8) <== NOT EXECUTED 4bf98: 5280 addql #1,%d0 <== NOT EXECUTED block->prev = prev; 4bf9a: 254b 000c movel %a3,%a2@(12) <== NOT EXECUTED next->prev = prev->next = block; 4bf9e: 274a 0008 movel %a2,%a3@(8) <== NOT EXECUTED 4bfa2: 214a 000c movel %a2,%a0@(12) <== NOT EXECUTED 4bfa6: 2740 0038 movel %d0,%a3@(56) <== NOT EXECUTED if ( stats->max_free_blocks < stats->free_blocks ) 4bfaa: b0ab 003c cmpl %a3@(60),%d0 <== NOT EXECUTED 4bfae: 6300 ff6e blsw 4bf1e <_Heap_Free+0xb2> <== NOT EXECUTED stats->max_free_blocks = stats->free_blocks; } stats->used_blocks -= 1; stats->free_size += the_size; 4bfb2: d7ab 0030 addl %d3,%a3@(48) <== NOT EXECUTED stats->frees += 1; 4bfb6: 52ab 0050 addql #1,%a3@(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; 4bfba: 53ab 0040 subql #1,%a3@(64) <== NOT EXECUTED next_block->size &= ~HEAP_PREV_USED; next_block->prev_size = the_size; stats->free_blocks += 1; if ( stats->max_free_blocks < stats->free_blocks ) stats->max_free_blocks = stats->free_blocks; 4bfbe: 2740 003c movel %d0,%a3@(60) <== NOT EXECUTED } stats->used_blocks -= 1; stats->free_size += the_size; stats->frees += 1; 4bfc2: 7001 moveq #1,%d0 <== NOT EXECUTED 4bfc4: 6000 ff66 braw 4bf2c <_Heap_Free+0xc0> <== 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; 4bfc8: 2003 movel %d3,%d0 <== NOT EXECUTED 4bfca: d081 addl %d1,%d0 <== NOT EXECUTED prev_block->size = size | HEAP_PREV_USED; 4bfcc: 7401 moveq #1,%d2 <== NOT EXECUTED next_block->size &= ~HEAP_PREV_USED; next_block->prev_size = size; 4bfce: 2880 movel %d0,%a4@ <== 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; 4bfd0: 8480 orl %d0,%d2 <== NOT EXECUTED next_block->size &= ~HEAP_PREV_USED; 4bfd2: 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; 4bfd4: 2542 0004 movel %d2,%a2@(4) <== NOT EXECUTED next_block->size &= ~HEAP_PREV_USED; 4bfd8: c1ac 0004 andl %d0,%a4@(4) <== NOT EXECUTED if ( stats->max_free_blocks < stats->free_blocks ) stats->max_free_blocks = stats->free_blocks; } stats->used_blocks -= 1; stats->free_size += the_size; 4bfdc: d7ab 0030 addl %d3,%a3@(48) <== NOT EXECUTED stats->frees += 1; 4bfe0: 52ab 0050 addql #1,%a3@(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; 4bfe4: 53ab 0040 subql #1,%a3@(64) <== NOT EXECUTED stats->free_size += the_size; stats->frees += 1; 4bfe8: 7001 moveq #1,%d0 <== NOT EXECUTED 4bfea: 6000 ff40 braw 4bf2c <_Heap_Free+0xc0> <== NOT EXECUTED ... 00064084 <_Heap_Get_free_information>: void _Heap_Get_free_information( Heap_Control *the_heap, Heap_Information *info ) { 64084: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 64088: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6408a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 6408e: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 64092: 226a 0008 moveal %a2@(8),%a1 <== NOT EXECUTED Heap_Block *the_block; Heap_Block *const tail = _Heap_Tail(the_heap); info->number = 0; 64096: 4290 clrl %a0@ <== NOT EXECUTED info->largest = 0; 64098: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED info->total = 0; 6409c: 42a8 0008 clrl %a0@(8) <== NOT EXECUTED for(the_block = _Heap_First(the_heap); the_block != tail; 640a0: b3ca cmpal %a2,%a1 <== NOT EXECUTED 640a2: 671e beqs 640c2 <_Heap_Get_free_information+0x3e> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 640a4: 70fe moveq #-2,%d0 <== NOT EXECUTED 640a6: 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++; 640aa: 5290 addql #1,%a0@ <== NOT EXECUTED info->total += the_size; 640ac: d1a8 0008 addl %d0,%a0@(8) <== NOT EXECUTED if ( info->largest < the_size ) 640b0: b0a8 0004 cmpl %a0@(4),%d0 <== NOT EXECUTED 640b4: 6304 blss 640ba <_Heap_Get_free_information+0x36> <== NOT EXECUTED info->largest = the_size; 640b6: 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) 640ba: 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; 640be: b3ca cmpal %a2,%a1 <== NOT EXECUTED 640c0: 66e2 bnes 640a4 <_Heap_Get_free_information+0x20> <== NOT EXECUTED info->number++; info->total += the_size; if ( info->largest < the_size ) info->largest = the_size; } } 640c2: 245f moveal %sp@+,%a2 <== NOT EXECUTED 640c4: 4e5e unlk %fp <== NOT EXECUTED 640c6: 4e75 rts 0006eabc <_Heap_Get_information>: Heap_Get_information_status _Heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) { 6eabc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 6eac0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 6eac4: 2f02 movel %d2,%sp@- <== NOT EXECUTED Heap_Block *the_block = the_heap->start; Heap_Block *const end = the_heap->final; 6eac6: 2428 0024 movel %a0@(36),%d2 <== NOT EXECUTED Heap_Get_information_status _Heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) { 6eaca: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED Heap_Block *the_block = the_heap->start; 6eace: 2068 0020 moveal %a0@(32),%a0 <== NOT EXECUTED Heap_Block *const end = the_heap->final; _HAssert(the_block->prev_size == HEAP_PREV_USED); _HAssert(_Heap_Is_prev_used(the_block)); the_info->Free.number = 0; 6ead2: 4291 clrl %a1@ <== NOT EXECUTED the_info->Free.total = 0; 6ead4: 42a9 0008 clrl %a1@(8) <== NOT EXECUTED the_info->Free.largest = 0; 6ead8: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED the_info->Used.number = 0; 6eadc: 42a9 000c clrl %a1@(12) <== NOT EXECUTED the_info->Used.total = 0; 6eae0: 42a9 0014 clrl %a1@(20) <== NOT EXECUTED the_info->Used.largest = 0; 6eae4: 42a9 0010 clrl %a1@(16) <== NOT EXECUTED while ( the_block != end ) { 6eae8: b488 cmpl %a0,%d2 <== NOT EXECUTED 6eaea: 672a beqs 6eb16 <_Heap_Get_information+0x5a> <== NOT EXECUTED 6eaec: 2228 0004 movel %a0@(4),%d1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 6eaf0: 70fe moveq #-2,%d0 <== NOT EXECUTED 6eaf2: c081 andl %d1,%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 6eaf4: d1c0 addal %d0,%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used ( Heap_Block *the_block ) { return (the_block->size & HEAP_PREV_USED); 6eaf6: 2228 0004 movel %a0@(4),%d1 <== NOT EXECUTED 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) ) { 6eafa: 0801 0000 btst #0,%d1 <== NOT EXECUTED 6eafe: 6722 beqs 6eb22 <_Heap_Get_information+0x66> <== NOT EXECUTED the_info->Used.number++; 6eb00: 52a9 000c addql #1,%a1@(12) <== NOT EXECUTED the_info->Used.total += the_size; 6eb04: d1a9 0014 addl %d0,%a1@(20) <== NOT EXECUTED if ( the_info->Used.largest < the_size ) 6eb08: b0a9 0010 cmpl %a1@(16),%d0 <== NOT EXECUTED 6eb0c: 6304 blss 6eb12 <_Heap_Get_information+0x56> <== NOT EXECUTED the_info->Used.largest = the_size; 6eb0e: 2340 0010 movel %d0,%a1@(16) <== 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 ) { 6eb12: b1c2 cmpal %d2,%a0 <== NOT EXECUTED 6eb14: 66da bnes 6eaf0 <_Heap_Get_information+0x34> <== NOT EXECUTED "used" as client never allocated it. Make 'Used.total' contain this blocks' overhead though. */ the_info->Used.total += HEAP_OVERHEAD; return HEAP_GET_INFORMATION_SUCCESSFUL; } 6eb16: 241f movel %sp@+,%d2 <== 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; 6eb18: 50a9 0014 addql #8,%a1@(20) <== NOT EXECUTED return HEAP_GET_INFORMATION_SUCCESSFUL; } 6eb1c: 4e5e unlk %fp <== 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; 6eb1e: 4280 clrl %d0 <== NOT EXECUTED return HEAP_GET_INFORMATION_SUCCESSFUL; } 6eb20: 4e75 rts <== NOT EXECUTED the_info->Used.number++; the_info->Used.total += the_size; if ( the_info->Used.largest < the_size ) the_info->Used.largest = the_size; } else { the_info->Free.number++; 6eb22: 5291 addql #1,%a1@ <== NOT EXECUTED the_info->Free.total += the_size; 6eb24: d1a9 0008 addl %d0,%a1@(8) <== NOT EXECUTED if ( the_info->Free.largest < the_size ) 6eb28: b0a9 0004 cmpl %a1@(4),%d0 <== NOT EXECUTED 6eb2c: 6304 blss 6eb32 <_Heap_Get_information+0x76> <== NOT EXECUTED the_info->Free.largest = the_size; 6eb2e: 2340 0004 movel %d0,%a1@(4) <== NOT EXECUTED if ( the_size != next_block->prev_size ) 6eb32: b090 cmpl %a0@,%d0 <== NOT EXECUTED 6eb34: 67dc beqs 6eb12 <_Heap_Get_information+0x56> <== NOT EXECUTED "used" as client never allocated it. Make 'Used.total' contain this blocks' overhead though. */ the_info->Used.total += HEAP_OVERHEAD; return HEAP_GET_INFORMATION_SUCCESSFUL; } 6eb36: 241f movel %sp@+,%d2 <== NOT EXECUTED 6eb38: 4e5e unlk %fp <== NOT EXECUTED } else { the_info->Free.number++; the_info->Free.total += the_size; if ( the_info->Free.largest < the_size ) the_info->Free.largest = the_size; if ( the_size != next_block->prev_size ) 6eb3a: 7001 moveq #1,%d0 <== NOT EXECUTED "used" as client never allocated it. Make 'Used.total' contain this blocks' overhead though. */ the_info->Used.total += HEAP_OVERHEAD; return HEAP_GET_INFORMATION_SUCCESSFUL; } 6eb3c: 4e75 rts <== NOT EXECUTED ... 00046d94 <_Heap_Initialize>: Heap_Control *the_heap, void *starting_address, size_t size, uint32_t page_size ) { 46d94: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 46d98: 48d7 047c moveml %d2-%d6/%a2,%sp@ <== NOT EXECUTED 46d9c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 46da0: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 46da4: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED 46da8: 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) 46dac: 6600 00ec bnew 46e9a <_Heap_Initialize+0x106> <== NOT EXECUTED 46db0: 143c 0004 moveb #4,%d2 <== NOT EXECUTED 46db4: 4283 clrl %d3 <== 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; 46db6: 2005 movel %d5,%d0 <== NOT EXECUTED 46db8: 5080 addql #8,%d0 <== NOT EXECUTED uint32_t alignment ) { _H_uptr_t v = *value; uint32_t a = alignment; _H_uptr_t r = v % a; 46dba: 2c00 movel %d0,%d6 <== NOT EXECUTED 46dbc: 4c42 6001 remul %d2,%d1,%d6 <== NOT EXECUTED *value = r ? v - r + a : v; 46dc0: 4a81 tstl %d1 <== NOT EXECUTED 46dc2: 6704 beqs 46dc8 <_Heap_Initialize+0x34> <== NOT EXECUTED 46dc4: d082 addl %d2,%d0 <== NOT EXECUTED 46dc6: 9081 subl %d1,%d0 <== NOT EXECUTED _Heap_Align_up_uptr ( &aligned_start, page_size ); aligned_start -= HEAP_BLOCK_USER_OFFSET; 46dc8: 2240 moveal %d0,%a1 <== NOT EXECUTED 46dca: 5189 subql #8,%a1 <== NOT EXECUTED ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; *value = r ? v - r + a : v; 46dcc: 4a83 tstl %d3 <== NOT EXECUTED 46dce: 6600 00bc bnew 46e8c <_Heap_Initialize+0xf8> <== NOT EXECUTED 46dd2: 7210 moveq #16,%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); 46dd4: 7008 moveq #8,%d0 <== NOT EXECUTED 46dd6: 9085 subl %d5,%d0 <== NOT EXECUTED 46dd8: d089 addl %a1,%d0 <== NOT EXECUTED 46dda: 2541 0014 movel %d1,%a2@(20) <== NOT EXECUTED if ( size < overhead ) 46dde: b880 cmpl %d0,%d4 <== NOT EXECUTED 46de0: 6500 009e bcsw 46e80 <_Heap_Initialize+0xec> <== NOT EXECUTED return 0; /* Too small area for the heap */ the_size = size - overhead; 46de4: 2204 movel %d4,%d1 <== NOT EXECUTED 46de6: 9280 subl %d0,%d1 <== NOT EXECUTED 46de8: 2001 movel %d1,%d0 <== NOT EXECUTED uint32_t *value, uint32_t alignment ) { uint32_t v = *value; *value = v - (v % alignment); 46dea: 2601 movel %d1,%d3 <== NOT EXECUTED 46dec: 4c42 3001 remul %d2,%d1,%d3 <== NOT EXECUTED 46df0: 9081 subl %d1,%d0 <== NOT EXECUTED 46df2: 2200 movel %d0,%d1 <== NOT EXECUTED _Heap_Align_down ( &the_size, page_size ); if ( the_size == 0 ) 46df4: 6700 008a beqw 46e80 <_Heap_Initialize+0xec> <== NOT EXECUTED return 0; /* Too small area for the heap */ the_heap->page_size = page_size; 46df8: 2542 0010 movel %d2,%a2@(16) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset ( void *base, uint32_t offset ) { return (void *)((char *)base + offset); 46dfc: 41f1 0800 lea %a1@(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; 46e00: 7001 moveq #1,%d0 <== NOT EXECUTED 46e02: 8081 orl %d1,%d0 <== NOT EXECUTED 46e04: 2340 0004 movel %d0,%a1@(4) <== NOT EXECUTED stats->max_search = 0; stats->allocs = 0; stats->searches = 0; stats->frees = 0; stats->resizes = 0; stats->instance = instance++; 46e08: 2039 0005 9428 movel 59428 ,%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; 46e0e: 2282 movel %d2,%a1@ <== 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; 46e10: 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; 46e14: 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 */ 46e16: 2081 movel %d1,%a0@ <== 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; 46e18: 2542 0038 movel %d2,%a2@(56) <== NOT EXECUTED stats->max_free_blocks = 1; 46e1c: 2542 003c movel %d2,%a2@(60) <== NOT EXECUTED stats->searches = 0; stats->frees = 0; stats->resizes = 0; stats->instance = instance++; return ( the_size - HEAP_BLOCK_USED_OVERHEAD ); 46e20: 2401 movel %d1,%d2 <== NOT EXECUTED 46e22: 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; 46e24: 2544 002c movel %d4,%a2@(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; 46e28: d885 addl %d5,%d4 <== NOT EXECUTED stats->max_search = 0; stats->allocs = 0; stats->searches = 0; stats->frees = 0; stats->resizes = 0; stats->instance = instance++; 46e2a: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 46e2e: 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; 46e30: 2541 0030 movel %d1,%a2@(48) <== NOT EXECUTED stats->min_free_size = the_size; 46e34: 2541 0034 movel %d1,%a2@(52) <== NOT EXECUTED stats->free_blocks = 1; stats->max_free_blocks = 1; stats->used_blocks = 0; 46e38: 42aa 0040 clrl %a2@(64) <== NOT EXECUTED stats->max_search = 0; 46e3c: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED stats->allocs = 0; 46e40: 42aa 0048 clrl %a2@(72) <== NOT EXECUTED stats->searches = 0; 46e44: 42aa 004c clrl %a2@(76) <== NOT EXECUTED stats->frees = 0; 46e48: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED stats->resizes = 0; 46e4c: 42aa 0054 clrl %a2@(84) <== 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 ); 46e50: 234a 0008 movel %a2,%a1@(8) <== NOT EXECUTED the_block->prev = _Heap_Head( the_heap ); 46e54: 234a 000c movel %a2,%a1@(12) <== NOT EXECUTED stats->max_search = 0; stats->allocs = 0; stats->searches = 0; stats->frees = 0; stats->resizes = 0; stats->instance = instance++; 46e58: 23c0 0005 9428 movel %d0,59428 <== NOT EXECUTED return ( the_size - HEAP_BLOCK_USED_OVERHEAD ); } 46e5e: 2002 movel %d2,%d0 <== 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; 46e60: 2544 001c movel %d4,%a2@(28) <== 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; 46e64: 2545 0018 movel %d5,%a2@(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; 46e68: 2549 0008 movel %a1,%a2@(8) <== NOT EXECUTED _Heap_Tail(the_heap)->prev = the_block; 46e6c: 2549 000c movel %a1,%a2@(12) <== NOT EXECUTED the_heap->start = the_block; 46e70: 2549 0020 movel %a1,%a2@(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 */ 46e74: 2548 0024 movel %a0,%a2@(36) <== NOT EXECUTED stats->frees = 0; stats->resizes = 0; stats->instance = instance++; return ( the_size - HEAP_BLOCK_USED_OVERHEAD ); } 46e78: 4cd7 047c moveml %sp@,%d2-%d6/%a2 <== NOT EXECUTED 46e7c: 4e5e unlk %fp <== NOT EXECUTED 46e7e: 4e75 rts <== NOT EXECUTED stats->searches = 0; stats->frees = 0; stats->resizes = 0; stats->instance = instance++; return ( the_size - HEAP_BLOCK_USED_OVERHEAD ); 46e80: 4282 clrl %d2 <== NOT EXECUTED } 46e82: 2002 movel %d2,%d0 <== NOT EXECUTED 46e84: 4cd7 047c moveml %sp@,%d2-%d6/%a2 <== NOT EXECUTED 46e88: 4e5e unlk %fp <== NOT EXECUTED 46e8a: 4e75 rts <== NOT EXECUTED ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; *value = r ? v - r + a : v; 46e8c: 2202 movel %d2,%d1 <== NOT EXECUTED 46e8e: 0681 0000 0010 addil #16,%d1 <== NOT EXECUTED 46e94: 9283 subl %d3,%d1 <== NOT EXECUTED 46e96: 6000 ff3c braw 46dd4 <_Heap_Initialize+0x40> <== NOT EXECUTED uint32_t alignment ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; 46e9a: 7003 moveq #3,%d0 <== NOT EXECUTED 46e9c: c082 andl %d2,%d0 <== NOT EXECUTED *value = r ? v - r + a : v; 46e9e: 670e beqs 46eae <_Heap_Initialize+0x11a> <== NOT EXECUTED 46ea0: 5882 addql #4,%d2 <== NOT EXECUTED 46ea2: 9480 subl %d0,%d2 <== NOT EXECUTED 46ea4: 7010 moveq #16,%d0 <== NOT EXECUTED 46ea6: 4c42 0003 remul %d2,%d3,%d0 <== NOT EXECUTED 46eaa: 6000 ff0a braw 46db6 <_Heap_Initialize+0x22> <== NOT EXECUTED 46eae: 103c 0010 moveb #16,%d0 <== NOT EXECUTED 46eb2: 4c42 0003 remul %d2,%d3,%d0 <== NOT EXECUTED 46eb6: 6000 fefe braw 46db6 <_Heap_Initialize+0x22> <== NOT EXECUTED 00056450 <_Heap_Resize_block>: void *starting_address, size_t size, uint32_t *old_mem_size, uint32_t *avail_mem_size ) { 56450: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 56454: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 56458: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 5645c: 286e 0014 moveal %fp@(20),%a4 <== 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; 56460: 282b 0014 movel %a3@(20),%d4 <== NOT EXECUTED uint32_t const page_size = the_heap->page_size; 56464: 262b 0010 movel %a3@(16),%d3 <== NOT EXECUTED void *starting_address, size_t size, uint32_t *old_mem_size, uint32_t *avail_mem_size ) { 56468: 242e 000c movel %fp@(12),%d2 <== 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; 5646c: 4294 clrl %a4@ <== NOT EXECUTED void *starting_address, size_t size, uint32_t *old_mem_size, uint32_t *avail_mem_size ) { 5646e: 2a6e 0018 moveal %fp@(24),%a5 <== 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); 56472: 2442 moveal %d2,%a2 <== 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; 56474: 4295 clrl %a5@ <== NOT EXECUTED 56476: 2a02 movel %d2,%d5 <== 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 ); 56478: 206b 0024 moveal %a3@(36),%a0 <== NOT EXECUTED 5647c: 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); 56480: 518a subql #8,%a2 <== NOT EXECUTED 56482: 4c6b 5000 0010 remul %a3@(16),%d0,%d5 <== NOT EXECUTED 56488: 95c0 subal %d0,%a2 <== NOT EXECUTED 5648a: b28a cmpl %a2,%d1 <== NOT EXECUTED 5648c: 6204 bhis 56492 <_Heap_Resize_block+0x42> <== NOT EXECUTED 5648e: b1ca cmpal %a2,%a0 <== NOT EXECUTED 56490: 640c bccs 5649e <_Heap_Resize_block+0x4e> <== NOT EXECUTED } } ++stats->resizes; return HEAP_RESIZE_SUCCESSFUL; } 56492: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED 56498: 4e5e unlk %fp <== NOT EXECUTED } } } ++stats->resizes; return HEAP_RESIZE_SUCCESSFUL; 5649a: 7002 moveq #2,%d0 <== NOT EXECUTED } 5649c: 4e75 rts <== 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; 5649e: 2c2a 0004 movel %a2@(4),%d6 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 564a2: 70fe moveq #-2,%d0 <== NOT EXECUTED 564a4: c086 andl %d6,%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 564a6: 2240 moveal %d0,%a1 <== NOT EXECUTED 564a8: d3ca addal %a2,%a1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 564aa: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 564ae: 2d49 fff4 movel %a1,%fp@(-12) <== NOT EXECUTED 564b2: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 564b4: 65dc bcss 56492 <_Heap_Resize_block+0x42> <== NOT EXECUTED 564b6: b3c8 cmpal %a0,%a1 <== NOT EXECUTED 564b8: 62d8 bhis 56492 <_Heap_Resize_block+0x42> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used ( Heap_Block *the_block ) { return (the_block->size & HEAP_PREV_USED); 564ba: 2229 0004 movel %a1@(4),%d1 <== 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) || 564be: 7001 moveq #1,%d0 <== NOT EXECUTED 564c0: c081 andl %d1,%d0 <== NOT EXECUTED 564c2: 4a00 tstb %d0 <== NOT EXECUTED 564c4: 67cc beqs 56492 <_Heap_Resize_block+0x42> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 564c6: 7efe moveq #-2,%d7 <== NOT EXECUTED 564c8: ce81 andl %d1,%d7 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 564ca: d3c7 addal %d7,%a1 <== NOT EXECUTED 564cc: 2d49 fff8 movel %a1,%fp@(-8) <== 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) || 564d0: b1ee fff4 cmpal %fp@(-12),%a0 <== NOT EXECUTED 564d4: 6700 0100 beqw 565d6 <_Heap_Resize_block+0x186> <== NOT EXECUTED 564d8: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 564dc: 7a01 moveq #1,%d5 <== NOT EXECUTED 564de: caa8 0004 andl %a0@(4),%d5 <== 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) 564e2: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 564e6: 91c2 subal %d2,%a0 <== NOT EXECUTED 564e8: 2008 movel %a0,%d0 <== NOT EXECUTED 564ea: 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; 564ec: 7201 moveq #1,%d1 <== 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; 564ee: 2880 movel %d0,%a4@ <== 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; 564f0: cc81 andl %d1,%d6 <== 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) { 564f2: b0ae 0010 cmpl %fp@(16),%d0 <== NOT EXECUTED 564f6: 6432 bccs 5652a <_Heap_Resize_block+0xda> <== 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 */ 564f8: 4a05 tstb %d5 <== NOT EXECUTED 564fa: 6622 bnes 5651e <_Heap_Resize_block+0xce> <== NOT EXECUTED return HEAP_RESIZE_UNSATISFIED; else { uint32_t add_block_size = size - old_user_size; 564fc: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 56500: 9280 subl %d0,%d1 <== NOT EXECUTED 56502: 2001 movel %d1,%d0 <== NOT EXECUTED uint32_t alignment ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; 56504: 2401 movel %d1,%d2 <== NOT EXECUTED 56506: 4c43 2001 remul %d3,%d1,%d2 <== NOT EXECUTED *value = r ? v - r + a : v; 5650a: 4a81 tstl %d1 <== NOT EXECUTED 5650c: 6704 beqs 56512 <_Heap_Resize_block+0xc2> <== NOT EXECUTED 5650e: d083 addl %d3,%d0 <== NOT EXECUTED 56510: 9081 subl %d1,%d0 <== NOT EXECUTED 56512: b880 cmpl %d0,%d4 <== NOT EXECUTED 56514: 6200 008e bhiw 565a4 <_Heap_Resize_block+0x154> <== 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) 56518: b087 cmpl %d7,%d0 <== NOT EXECUTED 5651a: 6300 0090 blsw 565ac <_Heap_Resize_block+0x15c> <== NOT EXECUTED } } ++stats->resizes; return HEAP_RESIZE_SUCCESSFUL; } 5651e: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED 56524: 4e5e unlk %fp <== NOT EXECUTED } } } ++stats->resizes; return HEAP_RESIZE_SUCCESSFUL; 56526: 7001 moveq #1,%d0 <== NOT EXECUTED } 56528: 4e75 rts <== NOT EXECUTED --stats->used_blocks; } } else { /* Calculate how much memory we could free */ uint32_t free_block_size = old_user_size - size; 5652a: 90ae 0010 subl %fp@(16),%d0 <== NOT EXECUTED uint32_t *value, uint32_t alignment ) { uint32_t v = *value; *value = v - (v % alignment); 5652e: 2400 movel %d0,%d2 <== NOT EXECUTED 56530: 4c43 2001 remul %d3,%d1,%d2 <== NOT EXECUTED 56534: 2400 movel %d0,%d2 <== NOT EXECUTED 56536: 9481 subl %d1,%d2 <== NOT EXECUTED _Heap_Align_down(&free_block_size, page_size); if (free_block_size > 0) { 56538: 675a beqs 56594 <_Heap_Resize_block+0x144> <== 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; 5653a: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 5653e: 9282 subl %d2,%d1 <== NOT EXECUTED if (new_block_size < min_block_size) { 56540: b284 cmpl %d4,%d1 <== NOT EXECUTED 56542: 640a bccs 5654e <_Heap_Resize_block+0xfe> <== NOT EXECUTED uint32_t delta = min_block_size - new_block_size; 56544: 2004 movel %d4,%d0 <== NOT EXECUTED 56546: 9081 subl %d1,%d0 <== NOT EXECUTED _HAssert(free_block_size >= delta); free_block_size -= delta; 56548: 9480 subl %d0,%d2 <== NOT EXECUTED if (free_block_size == 0) { 5654a: 6748 beqs 56594 <_Heap_Resize_block+0x144> <== NOT EXECUTED ++stats->resizes; return HEAP_RESIZE_SUCCESSFUL; } new_block_size += delta; 5654c: 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) { 5654e: 4a05 tstb %d5 <== NOT EXECUTED 56550: 6600 008a bnew 565dc <_Heap_Resize_block+0x18c> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 56554: 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; 56558: 8286 orl %d6,%d1 <== NOT EXECUTED new_next_block->size = new_next_block_size | HEAP_PREV_USED; next_next_block->prev_size = new_next_block_size; 5655a: 226e fff8 moveal %fp@(-8),%a1 <== 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; 5655e: 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; 56562: 286e fff4 moveal %fp@(-12),%a4 <== 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; 56566: 2002 movel %d2,%d0 <== NOT EXECUTED 56568: d087 addl %d7,%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; 5656a: 7201 moveq #1,%d1 <== NOT EXECUTED next_next_block->prev_size = new_next_block_size; 5656c: 2280 movel %d0,%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; 5656e: 8280 orl %d0,%d1 <== NOT EXECUTED 56570: 246c 000c moveal %a4@(12),%a2 <== NOT EXECUTED Heap_Block *old_block, Heap_Block *new_block ) { Heap_Block *block = old_block; Heap_Block *next = block->next; 56574: 226c 0008 moveal %a4@(8),%a1 <== NOT EXECUTED 56578: 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; 5657c: d5ab 0030 addl %d2,%a3@(48) <== NOT EXECUTED *avail_mem_size = new_next_block_size - HEAP_BLOCK_USED_OVERHEAD; 56580: 5980 subql #4,%d0 <== NOT EXECUTED Heap_Block *prev = block->prev; block = new_block; block->next = next; 56582: 2149 0008 movel %a1,%a0@(8) <== NOT EXECUTED block->prev = prev; 56586: 214a 000c movel %a2,%a0@(12) <== NOT EXECUTED 5658a: 2a80 movel %d0,%a5@ <== NOT EXECUTED next->prev = prev->next = block; 5658c: 2348 000c movel %a0,%a1@(12) <== NOT EXECUTED 56590: 2548 0008 movel %a0,%a2@(8) <== NOT EXECUTED *avail_mem_size = free_block_size - HEAP_BLOCK_USED_OVERHEAD; } } } ++stats->resizes; 56594: 4280 clrl %d0 <== NOT EXECUTED 56596: 52ab 0054 addql #1,%a3@(84) <== NOT EXECUTED return HEAP_RESIZE_SUCCESSFUL; } 5659a: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED 565a0: 4e5e unlk %fp <== NOT EXECUTED 565a2: 4e75 rts <== NOT EXECUTED ) { uint32_t v = *value; uint32_t a = alignment; uint32_t r = v % a; *value = r ? v - r + a : v; 565a4: 2004 movel %d4,%d0 <== NOT EXECUTED else { uint32_t add_block_size = size - old_user_size; _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) 565a6: b087 cmpl %d7,%d0 <== NOT EXECUTED 565a8: 6200 ff74 bhiw 5651e <_Heap_Resize_block+0xce> <== NOT EXECUTED return HEAP_RESIZE_UNSATISFIED; /* Next block is too small or none. */ add_block_size = 565ac: 2f00 movel %d0,%sp@- <== NOT EXECUTED 565ae: 2f2e fff4 movel %fp@(-12),%sp@- <== NOT EXECUTED 565b2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 565b4: 4eb9 0004 6ef6 jsr 46ef6 <_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; 565ba: d0ae fffc addl %fp@(-4),%d0 <== NOT EXECUTED 565be: 8086 orl %d6,%d0 <== NOT EXECUTED 565c0: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED --stats->used_blocks; 565c4: 53ab 0040 subql #1,%a3@(64) <== NOT EXECUTED *avail_mem_size = free_block_size - HEAP_BLOCK_USED_OVERHEAD; } } } ++stats->resizes; 565c8: 52ab 0054 addql #1,%a3@(84) <== NOT EXECUTED return HEAP_RESIZE_UNSATISFIED; /* Next block is too small or none. */ add_block_size = _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; --stats->used_blocks; 565cc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED *avail_mem_size = free_block_size - HEAP_BLOCK_USED_OVERHEAD; } } } ++stats->resizes; 565d2: 4280 clrl %d0 <== NOT EXECUTED 565d4: 60c4 bras 5659a <_Heap_Resize_block+0x14a> <== 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) || 565d6: 7a01 moveq #1,%d5 <== NOT EXECUTED 565d8: 6000 ff08 braw 564e2 <_Heap_Resize_block+0x92> <== 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; *avail_mem_size = new_next_block_size - HEAP_BLOCK_USED_OVERHEAD; } else if (free_block_size >= min_block_size) { 565dc: b484 cmpl %d4,%d2 <== NOT EXECUTED 565de: 65b4 bcss 56594 <_Heap_Resize_block+0x144> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 565e0: 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; 565e4: 8286 orl %d6,%d1 <== NOT EXECUTED 565e6: 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; 565ea: 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)); 565ec: 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; 565f0: 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; 565f2: 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; 565f4: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED ++stats->used_blocks; /* We have created used block */ 565f8: 52ab 0040 addql #1,%a3@(64) <== NOT EXECUTED --stats->frees; /* Don't count next call in stats */ 565fc: 53ab 0050 subql #1,%a3@(80) <== NOT EXECUTED _Heap_Free(the_heap, _Heap_User_area(next_block)); 56600: 2f0b movel %a3,%sp@- <== NOT EXECUTED 56602: 4eb9 0004 be6c jsr 4be6c <_Heap_Free> <== NOT EXECUTED *avail_mem_size = free_block_size - HEAP_BLOCK_USED_OVERHEAD; 56608: 2a82 movel %d2,%a5@ <== NOT EXECUTED } } } ++stats->resizes; 5660a: 52ab 0054 addql #1,%a3@(84) <== NOT EXECUTED next_block = _Heap_Block_at(the_block, new_block_size); next_block->size = free_block_size | HEAP_PREV_USED; ++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; 5660e: 508f addql #8,%sp <== NOT EXECUTED } } } ++stats->resizes; 56610: 4280 clrl %d0 <== NOT EXECUTED 56612: 6086 bras 5659a <_Heap_Resize_block+0x14a> <== NOT EXECUTED 00056614 <_Heap_Size_of_user_area>: bool _Heap_Size_of_user_area( Heap_Control *the_heap, void *starting_address, size_t *size ) { 56614: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 56618: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5661a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 5661e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 56620: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Heap_Block *the_block; Heap_Block *next_block; uint32_t the_size; if ( !_Addresses_Is_in_range( 56624: 2268 0024 moveal %a0@(36),%a1 <== NOT EXECUTED 56628: 2228 0020 movel %a0@(32),%d1 <== NOT EXECUTED 5662c: b481 cmpl %d1,%d2 <== NOT EXECUTED 5662e: 6504 bcss 56634 <_Heap_Size_of_user_area+0x20> <== NOT EXECUTED 56630: b489 cmpl %a1,%d2 <== NOT EXECUTED 56632: 630a blss 5663e <_Heap_Size_of_user_area+0x2a> <== NOT EXECUTED *size = _Addresses_Subtract ( next_block, starting_address ) + HEAP_BLOCK_HEADER_OFFSET; return( TRUE ); } 56634: 241f movel %sp@+,%d2 <== NOT EXECUTED 56636: 261f movel %sp@+,%d3 <== NOT EXECUTED 56638: 4e5e unlk %fp <== NOT EXECUTED area of 'the_block'. */ *size = _Addresses_Subtract ( next_block, starting_address ) + HEAP_BLOCK_HEADER_OFFSET; return( TRUE ); 5663a: 4200 clrb %d0 <== NOT EXECUTED } 5663c: 4e75 rts <== 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); 5663e: 2602 movel %d2,%d3 <== NOT EXECUTED 56640: 4c68 3000 0010 remul %a0@(16),%d0,%d3 <== NOT EXECUTED 56646: 2042 moveal %d2,%a0 <== NOT EXECUTED 56648: 5188 subql #8,%a0 <== NOT EXECUTED 5664a: 91c0 subal %d0,%a0 <== NOT EXECUTED 5664c: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 5664e: 65e4 bcss 56634 <_Heap_Size_of_user_area+0x20> <== NOT EXECUTED 56650: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 56652: 62e0 bhis 56634 <_Heap_Size_of_user_area+0x20> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 56654: 70fe moveq #-2,%d0 <== NOT EXECUTED 56656: c0a8 0004 andl %a0@(4),%d0 <== NOT EXECUTED 5665a: d1c0 addal %d0,%a0 <== NOT EXECUTED 5665c: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 5665e: 65d4 bcss 56634 <_Heap_Size_of_user_area+0x20> <== NOT EXECUTED 56660: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 56662: 62d0 bhis 56634 <_Heap_Size_of_user_area+0x20> <== 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 ( 56664: 7001 moveq #1,%d0 <== NOT EXECUTED 56666: c0a8 0004 andl %a0@(4),%d0 <== NOT EXECUTED 5666a: 4a00 tstb %d0 <== NOT EXECUTED 5666c: 67c6 beqs 56634 <_Heap_Size_of_user_area+0x20> <== 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 ) 5666e: 91c2 subal %d2,%a0 <== NOT EXECUTED + HEAP_BLOCK_HEADER_OFFSET; return( TRUE ); } 56670: 241f movel %sp@+,%d2 <== 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 ) 56672: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED + HEAP_BLOCK_HEADER_OFFSET; return( TRUE ); } 56676: 261f movel %sp@+,%d3 <== 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 ) 56678: 5888 addql #4,%a0 <== NOT EXECUTED + HEAP_BLOCK_HEADER_OFFSET; return( TRUE ); } 5667a: 4e5e unlk %fp <== 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 ) 5667c: 7001 moveq #1,%d0 <== NOT EXECUTED 5667e: 2288 movel %a0,%a1@ <== NOT EXECUTED + HEAP_BLOCK_HEADER_OFFSET; return( TRUE ); } 56680: 4e75 rts <== NOT EXECUTED ... 0004f5e8 <_Heap_Walk>: bool _Heap_Walk( Heap_Control *the_heap, int source, bool do_dump ) { 4f5e8: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 4f5ec: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 4f5f0: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4f5f4: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED Heap_Block *the_block = the_heap->start; 4f5f8: 286a 0020 moveal %a2@(32),%a4 <== NOT EXECUTED Heap_Block *const end = the_heap->final; 4f5fc: 2c2a 0024 movel %a2@(36),%d6 <== NOT EXECUTED /* if ( !_System_state_Is_up( _System_state_Get() ) ) return TRUE; */ if (source < 0) 4f600: 4a85 tstl %d5 <== NOT EXECUTED 4f602: 6d00 016c bltw 4f770 <_Heap_Walk+0x188> <== NOT EXECUTED /* * Handle the 1st block */ if (!_Heap_Is_prev_used(the_block)) { 4f606: 7001 moveq #1,%d0 <== NOT EXECUTED 4f608: c0ac 0004 andl %a4@(4),%d0 <== NOT EXECUTED 4f60c: 4a00 tstb %d0 <== NOT EXECUTED 4f60e: 6700 0170 beqw 4f780 <_Heap_Walk+0x198> <== NOT EXECUTED 4f612: 4284 clrl %d4 <== NOT EXECUTED printk("PASS: %d !HEAP_PREV_USED flag of 1st block isn't set\n", source); error = 1; } if (the_block->prev_size != the_heap->page_size) { 4f614: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4f618: b094 cmpl %a4@,%d0 <== NOT EXECUTED 4f61a: 6712 beqs 4f62e <_Heap_Walk+0x46> <== NOT EXECUTED printk("PASS: %d !prev_size of 1st block isn't page_size\n", source); 4f61c: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f61e: 7801 moveq #1,%d4 <== NOT EXECUTED 4f620: 4879 0005 ae62 pea 5ae62 <_POSIX_Threads_Default_attributes+0x6e> <== NOT EXECUTED 4f626: 4eb9 0004 5e9e jsr 45e9e <== NOT EXECUTED 4f62c: 508f addql #8,%sp <== NOT EXECUTED error = 1; } while ( the_block != end ) { 4f62e: bc8c cmpl %a4,%d6 <== NOT EXECUTED 4f630: 6700 020e beqw 4f840 <_Heap_Walk+0x258> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 4f634: 222c 0004 movel %a4@(4),%d1 <== NOT EXECUTED 4f638: 74fe moveq #-2,%d2 <== NOT EXECUTED 4f63a: c481 andl %d1,%d2 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at( void *base, uint32_t offset ) { return (Heap_Block *) _Addresses_Add_offset( base, offset ); 4f63c: 47f4 2800 lea %a4@(00000000,%d2: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 ); 4f640: 202a 0024 movel %a2@(36),%d0 <== NOT EXECUTED 4f644: b7ea 0020 cmpal %a2@(32),%a3 <== NOT EXECUTED 4f648: 6500 00a6 bcsw 4f6f0 <_Heap_Walk+0x108> <== NOT EXECUTED 4f64c: b08b cmpl %a3,%d0 <== NOT EXECUTED 4f64e: 6500 00a0 bcsw 4f6f0 <_Heap_Walk+0x108> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used ( Heap_Block *the_block ) { return (the_block->size & HEAP_PREV_USED); 4f652: 7601 moveq #1,%d3 <== NOT EXECUTED 4f654: c681 andl %d1,%d3 <== NOT EXECUTED 4f656: 2e3c 0004 5e9e movel #286366,%d7 <== NOT EXECUTED printk("PASS: %d !block %p is out of heap\n", source, next_block); error = 1; break; } if (!_Heap_Is_prev_used(next_block)) { 4f65c: 7001 moveq #1,%d0 <== NOT EXECUTED 4f65e: c0ab 0004 andl %a3@(4),%d0 <== NOT EXECUTED 4f662: 4a00 tstb %d0 <== NOT EXECUTED 4f664: 6648 bnes 4f6ae <_Heap_Walk+0xc6> <== 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) { 4f666: b493 cmpl %a3@,%d2 <== NOT EXECUTED 4f668: 6710 beqs 4f67a <_Heap_Walk+0x92> <== NOT EXECUTED if (do_dump) printk("\n"); printk("PASS: %d !front and back sizes don't match", source); 4f66a: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f66c: 2047 moveal %d7,%a0 <== NOT EXECUTED 4f66e: 4879 0005 aeb7 pea 5aeb7 <_POSIX_Threads_Default_attributes+0xc3> <== NOT EXECUTED 4f674: 4e90 jsr %a0@ <== NOT EXECUTED 4f676: 7801 moveq #1,%d4 <== NOT EXECUTED 4f678: 508f addql #8,%sp <== NOT EXECUTED error = 1; } if (!prev_used) { 4f67a: 4a03 tstb %d3 <== NOT EXECUTED 4f67c: 661a bnes 4f698 <_Heap_Walk+0xb0> <== NOT EXECUTED 4f67e: 4bf9 0004 5e9e lea 45e9e ,%a5 <== NOT EXECUTED if (do_dump || error) printk("\n"); 4f684: 4a84 tstl %d4 <== NOT EXECUTED 4f686: 6600 00ca bnew 4f752 <_Heap_Walk+0x16a> <== NOT EXECUTED printk("PASS: %d !two consecutive blocks are free", source); 4f68a: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f68c: 7801 moveq #1,%d4 <== NOT EXECUTED 4f68e: 4879 0005 aee2 pea 5aee2 <_POSIX_Threads_Default_attributes+0xee> <== NOT EXECUTED 4f694: 4e95 jsr %a5@ <== NOT EXECUTED 4f696: 508f addql #8,%sp <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First ( Heap_Control *the_heap ) { return _Heap_Head(the_heap)->next; 4f698: 206a 0008 moveal %a2@(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) 4f69c: b1cc cmpal %a4,%a0 <== NOT EXECUTED 4f69e: 670e beqs 4f6ae <_Heap_Walk+0xc6> <== NOT EXECUTED 4f6a0: b1ca cmpal %a2,%a0 <== NOT EXECUTED 4f6a2: 6700 0130 beqw 4f7d4 <_Heap_Walk+0x1ec> <== NOT EXECUTED block = block->next; 4f6a6: 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) 4f6aa: b9c8 cmpal %a0,%a4 <== NOT EXECUTED 4f6ac: 66f2 bnes 4f6a0 <_Heap_Walk+0xb8> <== NOT EXECUTED error = 1; } } } if (do_dump || error) printk("\n"); 4f6ae: 4a84 tstl %d4 <== NOT EXECUTED 4f6b0: 6600 0194 bnew 4f846 <_Heap_Walk+0x25e> <== NOT EXECUTED if (the_size < the_heap->min_block_size) { 4f6b4: b4aa 0014 cmpl %a2@(20),%d2 <== NOT EXECUTED 4f6b8: 6500 0144 bcsw 4f7fe <_Heap_Walk+0x216> <== NOT EXECUTED printk("PASS: %d !block size is too small\n", source); error = 1; break; } if (!_Heap_Is_aligned( the_size, the_heap->page_size)) { 4f6bc: 4c6a 2000 0010 remul %a2@(16),%d0,%d2 <== NOT EXECUTED 4f6c2: 4a80 tstl %d0 <== NOT EXECUTED 4f6c4: 6600 00e2 bnew 4f7a8 <_Heap_Walk+0x1c0> <== NOT EXECUTED printk("PASS: %d !block size is misaligned\n", source); error = 1; } if (++passes > (do_dump ? 10 : 0) && error) 4f6c8: 4a84 tstl %d4 <== NOT EXECUTED 4f6ca: 6600 018c bnew 4f858 <_Heap_Walk+0x270> <== 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 ) { 4f6ce: b7c6 cmpal %d6,%a3 <== NOT EXECUTED 4f6d0: 6700 016e beqw 4f840 <_Heap_Walk+0x258> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 4f6d4: 262b 0004 movel %a3@(4),%d3 <== NOT EXECUTED 4f6d8: 74fe moveq #-2,%d2 <== NOT EXECUTED 4f6da: c483 andl %d3,%d2 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset ( void *base, uint32_t offset ) { return (void *)((char *)base + offset); 4f6dc: 200b movel %a3,%d0 <== 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 ); 4f6de: 222a 0024 movel %a2@(36),%d1 <== NOT EXECUTED 4f6e2: d082 addl %d2,%d0 <== NOT EXECUTED void *address, void *base, void *limit ) { return (address >= base && address <= limit); 4f6e4: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 4f6e8: 6400 00ac bccw 4f796 <_Heap_Walk+0x1ae> <== NOT EXECUTED printk("PASS: %d !block %p is out of heap\n", source, next_block); error = 1; break; } if (!_Heap_Is_prev_used(next_block)) { 4f6ec: 284b moveal %a3,%a4 <== NOT EXECUTED 4f6ee: 2640 moveal %d0,%a3 <== NOT EXECUTED printk(" (prev_size) %d", the_block->prev_size); } if (!_Heap_Is_block_in(the_heap, next_block)) { if (do_dump) printk("\n"); printk("PASS: %d !block %p is out of heap\n", source, next_block); 4f6f0: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4f6f2: 4bf9 0004 5e9e lea 45e9e ,%a5 <== NOT EXECUTED 4f6f8: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f6fa: 4879 0005 ae94 pea 5ae94 <_POSIX_Threads_Default_attributes+0xa0> <== NOT EXECUTED 4f700: 4e95 jsr %a5@ <== NOT EXECUTED 4f702: dffc 0000 000c addal #12,%sp <== NOT EXECUTED the_block = next_block; } if (the_block != end) { printk("PASS: %d !last block address isn't equal to 'final' %p %p\n", 4f708: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4f70a: 7801 moveq #1,%d4 <== NOT EXECUTED 4f70c: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4f70e: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f710: 4879 0005 af7c pea 5af7c <_POSIX_Threads_Default_attributes+0x188> <== NOT EXECUTED 4f716: 4e95 jsr %a5@ <== NOT EXECUTED 4f718: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED source, the_block, end); error = 1; } if (_Heap_Block_size(the_block) != the_heap->page_size) { 4f71e: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size ( Heap_Block *the_block ) { return (the_block->size & ~HEAP_PREV_USED); 4f722: 72fe moveq #-2,%d1 <== NOT EXECUTED 4f724: c2ac 0004 andl %a4@(4),%d1 <== NOT EXECUTED 4f728: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f72a: 6700 0104 beqw 4f830 <_Heap_Walk+0x248> <== NOT EXECUTED printk("PASS: %d !last block's size isn't page_size (%d != %d)\n", source, 4f72e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4f730: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4f732: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f734: 4879 0005 afb7 pea 5afb7 <_POSIX_Threads_Default_attributes+0x1c3> <== NOT EXECUTED 4f73a: 4eb9 0004 5e9e jsr 45e9e <== NOT EXECUTED 4f740: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED if(do_dump && error) _Internal_error_Occurred( INTERNAL_ERROR_CORE, TRUE, 0xffff0000 ); return error; } 4f746: 4cee 3cfc ffd8 moveml %fp@(-40),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4f74c: 4e5e unlk %fp <== NOT EXECUTED source, the_block, end); error = 1; } if (_Heap_Block_size(the_block) != the_heap->page_size) { printk("PASS: %d !last block's size isn't page_size (%d != %d)\n", source, 4f74e: 7001 moveq #1,%d0 <== NOT EXECUTED if(do_dump && error) _Internal_error_Occurred( INTERNAL_ERROR_CORE, TRUE, 0xffff0000 ); return error; } 4f750: 4e75 rts <== NOT EXECUTED if (do_dump) printk("\n"); printk("PASS: %d !front and back sizes don't match", source); error = 1; } if (!prev_used) { if (do_dump || error) printk("\n"); 4f752: 4879 0005 a74d pea 5a74d <== NOT EXECUTED 4f758: 2047 moveal %d7,%a0 <== NOT EXECUTED 4f75a: 4e90 jsr %a0@ <== NOT EXECUTED 4f75c: 588f addql #4,%sp <== NOT EXECUTED printk("PASS: %d !two consecutive blocks are free", source); 4f75e: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f760: 7801 moveq #1,%d4 <== NOT EXECUTED 4f762: 4879 0005 aee2 pea 5aee2 <_POSIX_Threads_Default_attributes+0xee> <== NOT EXECUTED 4f768: 4e95 jsr %a5@ <== NOT EXECUTED 4f76a: 508f addql #8,%sp <== NOT EXECUTED 4f76c: 6000 ff2a braw 4f698 <_Heap_Walk+0xb0> <== NOT EXECUTED if ( !_System_state_Is_up( _System_state_Get() ) ) return TRUE; */ if (source < 0) source = the_heap->stats.instance; 4f770: 2a2a 0028 movel %a2@(40),%d5 <== NOT EXECUTED /* * Handle the 1st block */ if (!_Heap_Is_prev_used(the_block)) { 4f774: 7001 moveq #1,%d0 <== NOT EXECUTED 4f776: c0ac 0004 andl %a4@(4),%d0 <== NOT EXECUTED 4f77a: 4a00 tstb %d0 <== NOT EXECUTED 4f77c: 6600 fe94 bnew 4f612 <_Heap_Walk+0x2a> <== NOT EXECUTED printk("PASS: %d !HEAP_PREV_USED flag of 1st block isn't set\n", source); 4f780: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f782: 7801 moveq #1,%d4 <== NOT EXECUTED 4f784: 4879 0005 ae2c pea 5ae2c <_POSIX_Threads_Default_attributes+0x38> <== NOT EXECUTED 4f78a: 4eb9 0004 5e9e jsr 45e9e <== NOT EXECUTED 4f790: 508f addql #8,%sp <== NOT EXECUTED 4f792: 6000 fe80 braw 4f614 <_Heap_Walk+0x2c> <== NOT EXECUTED 4f796: b280 cmpl %d0,%d1 <== NOT EXECUTED 4f798: 6500 ff52 bcsw 4f6ec <_Heap_Walk+0x104> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used ( Heap_Block *the_block ) { return (the_block->size & HEAP_PREV_USED); 4f79c: 284b moveal %a3,%a4 <== NOT EXECUTED 4f79e: 7201 moveq #1,%d1 <== NOT EXECUTED 4f7a0: c681 andl %d1,%d3 <== NOT EXECUTED 4f7a2: 2640 moveal %d0,%a3 <== NOT EXECUTED 4f7a4: 6000 feb6 braw 4f65c <_Heap_Walk+0x74> <== NOT EXECUTED printk("PASS: %d !block size is too small\n", source); error = 1; break; } if (!_Heap_Is_aligned( the_size, the_heap->page_size)) { printk("PASS: %d !block size is misaligned\n", source); 4f7a8: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f7aa: 4bf9 0004 5e9e lea 45e9e ,%a5 <== NOT EXECUTED the_block = next_block; } if (the_block != end) { printk("PASS: %d !last block address isn't equal to 'final' %p %p\n", 4f7b0: 7801 moveq #1,%d4 <== NOT EXECUTED printk("PASS: %d !block size is too small\n", source); error = 1; break; } if (!_Heap_Is_aligned( the_size, the_heap->page_size)) { printk("PASS: %d !block size is misaligned\n", source); 4f7b2: 4879 0005 af58 pea 5af58 <_POSIX_Threads_Default_attributes+0x164> <== NOT EXECUTED 4f7b8: 4e95 jsr %a5@ <== NOT EXECUTED 4f7ba: 508f addql #8,%sp <== NOT EXECUTED the_block = next_block; } if (the_block != end) { printk("PASS: %d !last block address isn't equal to 'final' %p %p\n", 4f7bc: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4f7be: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4f7c0: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f7c2: 4879 0005 af7c pea 5af7c <_POSIX_Threads_Default_attributes+0x188> <== NOT EXECUTED 4f7c8: 4e95 jsr %a5@ <== NOT EXECUTED 4f7ca: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4f7d0: 6000 ff4c braw 4f71e <_Heap_Walk+0x136> <== NOT EXECUTED 4f7d4: 4bf9 0004 5e9e lea 45e9e ,%a5 <== 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; if(block != the_block) { if (do_dump || error) printk("\n"); 4f7da: 4a84 tstl %d4 <== NOT EXECUTED 4f7dc: 6636 bnes 4f814 <_Heap_Walk+0x22c> <== NOT EXECUTED printk("PASS: %d !the_block not in the free list", source); 4f7de: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f7e0: 7801 moveq #1,%d4 <== NOT EXECUTED 4f7e2: 4879 0005 af0c pea 5af0c <_POSIX_Threads_Default_attributes+0x118> <== NOT EXECUTED 4f7e8: 4e95 jsr %a5@ <== NOT EXECUTED 4f7ea: 508f addql #8,%sp <== NOT EXECUTED error = 1; } } } if (do_dump || error) printk("\n"); 4f7ec: 4879 0005 a74d pea 5a74d <== NOT EXECUTED 4f7f2: 4e95 jsr %a5@ <== NOT EXECUTED 4f7f4: 588f addql #4,%sp <== NOT EXECUTED if (the_size < the_heap->min_block_size) { 4f7f6: b4aa 0014 cmpl %a2@(20),%d2 <== NOT EXECUTED 4f7fa: 6400 fec0 bccw 4f6bc <_Heap_Walk+0xd4> <== NOT EXECUTED printk("PASS: %d !block size is too small\n", source); 4f7fe: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f800: 4bf9 0004 5e9e lea 45e9e ,%a5 <== NOT EXECUTED 4f806: 4879 0005 af35 pea 5af35 <_POSIX_Threads_Default_attributes+0x141> <== NOT EXECUTED 4f80c: 4e95 jsr %a5@ <== NOT EXECUTED 4f80e: 508f addql #8,%sp <== NOT EXECUTED 4f810: 6000 fef6 braw 4f708 <_Heap_Walk+0x120> <== 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; if(block != the_block) { if (do_dump || error) printk("\n"); 4f814: 4879 0005 a74d pea 5a74d <== NOT EXECUTED 4f81a: 2047 moveal %d7,%a0 <== NOT EXECUTED 4f81c: 4e90 jsr %a0@ <== NOT EXECUTED 4f81e: 588f addql #4,%sp <== NOT EXECUTED printk("PASS: %d !the_block not in the free list", source); 4f820: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4f822: 7801 moveq #1,%d4 <== NOT EXECUTED 4f824: 4879 0005 af0c pea 5af0c <_POSIX_Threads_Default_attributes+0x118> <== NOT EXECUTED 4f82a: 4e95 jsr %a5@ <== NOT EXECUTED 4f82c: 508f addql #8,%sp <== NOT EXECUTED 4f82e: 60bc bras 4f7ec <_Heap_Walk+0x204> <== NOT EXECUTED printk("PASS: %d !last block address isn't equal to 'final' %p %p\n", source, the_block, end); error = 1; } if (_Heap_Block_size(the_block) != the_heap->page_size) { 4f830: 4a84 tstl %d4 <== NOT EXECUTED 4f832: 56c0 sne %d0 <== NOT EXECUTED if(do_dump && error) _Internal_error_Occurred( INTERNAL_ERROR_CORE, TRUE, 0xffff0000 ); return error; } 4f834: 4cee 3cfc ffd8 moveml %fp@(-40),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4f83a: 4e5e unlk %fp <== NOT EXECUTED printk("PASS: %d !last block address isn't equal to 'final' %p %p\n", source, the_block, end); error = 1; } if (_Heap_Block_size(the_block) != the_heap->page_size) { 4f83c: 4480 negl %d0 <== NOT EXECUTED if(do_dump && error) _Internal_error_Occurred( INTERNAL_ERROR_CORE, TRUE, 0xffff0000 ); return error; } 4f83e: 4e75 rts <== NOT EXECUTED source, the_block, end); error = 1; } if (_Heap_Block_size(the_block) != the_heap->page_size) { printk("PASS: %d !last block's size isn't page_size (%d != %d)\n", source, 4f840: 2846 moveal %d6,%a4 <== NOT EXECUTED 4f842: 6000 feda braw 4f71e <_Heap_Walk+0x136> <== NOT EXECUTED error = 1; } } } if (do_dump || error) printk("\n"); 4f846: 4879 0005 a74d pea 5a74d <== NOT EXECUTED 4f84c: 4bf9 0004 5e9e lea 45e9e ,%a5 <== NOT EXECUTED 4f852: 4e95 jsr %a5@ <== NOT EXECUTED 4f854: 588f addql #4,%sp <== NOT EXECUTED 4f856: 609e bras 4f7f6 <_Heap_Walk+0x20e> <== NOT EXECUTED 4f858: 4bf9 0004 5e9e lea 45e9e ,%a5 <== NOT EXECUTED 4f85e: 6000 fea8 braw 4f708 <_Heap_Walk+0x120> <== NOT EXECUTED ... 000463a4 <_IO_Initialize_all_drivers>: * * Output Parameters: NONE */ void _IO_Initialize_all_drivers( void ) { 463a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 463a8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 463aa: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_device_major_number major; for ( major=0 ; major < _IO_Number_of_drivers ; major ++ ) 463ac: 4ab9 0005 a516 tstl 5a516 <_IO_Number_of_drivers> <== NOT EXECUTED 463b2: 6720 beqs 463d4 <_IO_Initialize_all_drivers+0x30> <== NOT EXECUTED 463b4: 4282 clrl %d2 <== NOT EXECUTED 463b6: 45f9 0004 bb1c lea 4bb1c ,%a2 <== NOT EXECUTED (void) rtems_io_initialize( major, 0, NULL ); 463bc: 42a7 clrl %sp@- <== NOT EXECUTED 463be: 42a7 clrl %sp@- <== NOT EXECUTED 463c0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 463c2: 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 ++ ) 463c4: 5282 addql #1,%d2 <== NOT EXECUTED 463c6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 463cc: b4b9 0005 a516 cmpl 5a516 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 463d2: 65e8 bcss 463bc <_IO_Initialize_all_drivers+0x18> <== NOT EXECUTED (void) rtems_io_initialize( major, 0, NULL ); } 463d4: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 463d8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 463dc: 4e5e unlk %fp <== NOT EXECUTED 463de: 4e75 rts 000463e0 <_IO_Manager_initialization>: void _IO_Manager_initialization( rtems_driver_address_table *driver_table, uint32_t drivers_in_table, uint32_t number_of_drivers ) { 463e0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 463e4: 48d7 003c moveml %d2-%d5,%sp@ <== NOT EXECUTED 463e8: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 463ec: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 463f0: 262e 0010 movel %fp@(16),%d3 <== 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 ) 463f4: b883 cmpl %d3,%d4 <== NOT EXECUTED 463f6: 6468 bccs 46460 <_IO_Manager_initialization+0x80> <== 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 *) 463f8: 2003 movel %d3,%d0 <== NOT EXECUTED 463fa: 2403 movel %d3,%d2 <== NOT EXECUTED 463fc: e788 lsll #3,%d0 <== NOT EXECUTED 463fe: eb8a lsll #5,%d2 <== NOT EXECUTED 46400: 9480 subl %d0,%d2 <== NOT EXECUTED 46402: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46404: 4eb9 0004 92bc jsr 492bc <_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( 4640a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4640c: 42a7 clrl %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; 4640e: 23c3 0005 a516 movel %d3,5a516 <_IO_Number_of_drivers> <== NOT EXECUTED memset( 46414: 2f00 movel %d0,%sp@- <== 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 *) 46416: 23c0 0005 a51a movel %d0,5a51a <_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( 4641c: 4eb9 0004 dbe8 jsr 4dbe8 <== NOT EXECUTED _IO_Driver_address_table, 0, sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); for ( index = 0 ; index < drivers_in_table ; index++ ) 46422: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 46428: 4a84 tstl %d4 <== NOT EXECUTED 4642a: 672a beqs 46456 <_IO_Manager_initialization+0x76> <== NOT EXECUTED _IO_Driver_address_table[index] = driver_table[index]; 4642c: 2439 0005 a51a movel 5a51a <_IO_Driver_address_table>,%d2 <== NOT EXECUTED 46432: 4281 clrl %d1 <== NOT EXECUTED 46434: 4280 clrl %d0 <== NOT EXECUTED 46436: 2245 moveal %d5,%a1 <== NOT EXECUTED 46438: 2042 moveal %d2,%a0 <== NOT EXECUTED 4643a: d3c0 addal %d0,%a1 <== NOT EXECUTED 4643c: d1c0 addal %d0,%a0 <== NOT EXECUTED 4643e: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED memset( _IO_Driver_address_table, 0, sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); for ( index = 0 ; index < drivers_in_table ; index++ ) 46440: 5281 addql #1,%d1 <== NOT EXECUTED _IO_Driver_address_table[index] = driver_table[index]; 46442: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED memset( _IO_Driver_address_table, 0, sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); for ( index = 0 ; index < drivers_in_table ; index++ ) 46444: 0680 0000 0018 addil #24,%d0 <== NOT EXECUTED _IO_Driver_address_table[index] = driver_table[index]; 4644a: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 4644c: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 4644e: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 46450: 2091 movel %a1@,%a0@ <== NOT EXECUTED memset( _IO_Driver_address_table, 0, sizeof( rtems_driver_address_table ) * ( number_of_drivers ) ); for ( index = 0 ; index < drivers_in_table ; index++ ) 46452: b284 cmpl %d4,%d1 <== NOT EXECUTED 46454: 65e0 bcss 46436 <_IO_Manager_initialization+0x56> <== NOT EXECUTED _IO_Driver_address_table[index] = driver_table[index]; number_of_drivers = drivers_in_table; } 46456: 4cee 003c fff0 moveml %fp@(-16),%d2-%d5 <== NOT EXECUTED 4645c: 4e5e unlk %fp <== NOT EXECUTED 4645e: 4e75 rts <== 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; 46460: 23c5 0005 a51a movel %d5,5a51a <_IO_Driver_address_table> <== NOT EXECUTED _IO_Number_of_drivers = number_of_drivers; 46466: 23c4 0005 a516 movel %d4,5a516 <_IO_Number_of_drivers> <== NOT EXECUTED ); for ( index = 0 ; index < drivers_in_table ; index++ ) _IO_Driver_address_table[index] = driver_table[index]; number_of_drivers = drivers_in_table; } 4646c: 4cee 003c fff0 moveml %fp@(-16),%d2-%d5 <== NOT EXECUTED 46472: 4e5e unlk %fp <== NOT EXECUTED 46474: 4e75 rts <== NOT EXECUTED ... 00046fe8 <_ISR_Handler_initialization>: * * Output parameters: NONE */ void _ISR_Handler_initialization( void ) { 46fe8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46fec: 2f0a movel %a2,%sp@- <== NOT EXECUTED _ISR_Signals_to_thread_executing = FALSE; 46fee: 4200 clrb %d0 <== NOT EXECUTED _ISR_Nest_level = 0; 46ff0: 42b9 0005 9d1a clrl 59d1a <_ISR_Nest_level> <== NOT EXECUTED #if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE) _ISR_Vector_table = _Workspace_Allocate_or_fatal_error( 46ff6: 45f9 0004 92bc lea 492bc <_Workspace_Allocate_or_fatal_error>,%a2 <== NOT EXECUTED * Output parameters: NONE */ void _ISR_Handler_initialization( void ) { _ISR_Signals_to_thread_executing = FALSE; 46ffc: 13c0 0005 9dc8 moveb %d0,59dc8 <_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( 47002: 4878 0400 pea 400 <== NOT EXECUTED 47006: 4e92 jsr %a2@ <== NOT EXECUTED _CPU_Initialize_vectors(); #if ( CPU_ALLOCATE_INTERRUPT_STACK == TRUE ) if ( !_Stack_Is_enough(_Configuration_Table->interrupt_stack_size) ) 47008: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED 4700e: 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( 47012: 23c0 0005 9cf6 movel %d0,59cf6 <_ISR_Vector_table> <== NOT EXECUTED _CPU_Initialize_vectors(); #if ( CPU_ALLOCATE_INTERRUPT_STACK == TRUE ) if ( !_Stack_Is_enough(_Configuration_Table->interrupt_stack_size) ) 47018: 588f addql #4,%sp <== NOT EXECUTED 4701a: b2b9 0005 80ee cmpl 580ee ,%d1 <== NOT EXECUTED 47020: 6526 bcss 47048 <_ISR_Handler_initialization+0x60> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_INTERRUPT_STACK_TOO_SMALL ); _CPU_Interrupt_stack_low = _Workspace_Allocate_or_fatal_error( 47022: 2f01 movel %d1,%sp@- <== NOT EXECUTED 47024: 4e92 jsr %a2@ <== NOT EXECUTED _Configuration_Table->interrupt_stack_size ); _CPU_Interrupt_stack_high = _Addresses_Add_offset( 47026: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED 4702c: 2200 movel %d0,%d1 <== NOT EXECUTED 4702e: d2a8 001c addl %a0@(28),%d1 <== NOT EXECUTED #if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE ) _CPU_Install_interrupt_stack(); #endif } 47032: 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( 47036: 588f addql #4,%sp <== NOT EXECUTED #if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE ) _CPU_Install_interrupt_stack(); #endif } 47038: 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( 4703a: 23c1 0005 9c30 movel %d1,59c30 <_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( 47040: 23c0 0005 9c8c movel %d0,59c8c <_CPU_Interrupt_stack_low> <== NOT EXECUTED #if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE ) _CPU_Install_interrupt_stack(); #endif } 47046: 4e75 rts <== NOT EXECUTED _CPU_Initialize_vectors(); #if ( CPU_ALLOCATE_INTERRUPT_STACK == TRUE ) if ( !_Stack_Is_enough(_Configuration_Table->interrupt_stack_size) ) _Internal_error_Occurred( 47048: 4878 0005 pea 5 <== NOT EXECUTED 4704c: 4878 0001 pea 1 <== NOT EXECUTED 47050: 42a7 clrl %sp@- <== NOT EXECUTED 47052: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED 00046f8c <_Internal_error_Occurred>: void _Internal_error_Occurred( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 46f8c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46f90: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46f92: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 46f96: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46f98: 222e 000c movel %fp@(12),%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 ); 46f9c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46f9e: 4280 clrl %d0 <== NOT EXECUTED 46fa0: 1001 moveb %d1,%d0 <== NOT EXECUTED void _Internal_error_Occurred( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 46fa2: 206e 0008 moveal %fp@(8),%a0 <== 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 ); 46fa6: 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; 46fa8: 13c1 0005 9d2a moveb %d1,59d2a <_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 ); 46fae: 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 ); 46fb4: 2f08 movel %a0,%sp@- <== NOT EXECUTED bool is_internal, uint32_t the_error ) { _Internal_errors_What_happened.the_source = the_source; 46fb6: 23c8 0005 9d26 movel %a0,59d26 <_Internal_errors_What_happened> <== NOT EXECUTED _Internal_errors_What_happened.is_internal = is_internal; _Internal_errors_What_happened.the_error = the_error; 46fbc: 23c3 0005 9d2c movel %d3,59d2c <_Internal_errors_What_happened+0x6> <== NOT EXECUTED _User_extensions_Fatal( the_source, is_internal, the_error ); 46fc2: 4eb9 0004 8eb6 jsr 48eb6 <_User_extensions_Fatal> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Set ( System_state_Codes state ) { _System_state_Current = state; 46fc8: 7005 moveq #5,%d0 <== NOT EXECUTED 46fca: 23c0 0005 9e0e movel %d0,59e0e <_System_state_Current> <== NOT EXECUTED _System_state_Set( SYSTEM_STATE_FAILED ); _CPU_Fatal_halt( the_error ); 46fd0: 40c0 movew %sr,%d0 <== NOT EXECUTED 46fd2: 8082 orl %d2,%d0 <== NOT EXECUTED 46fd4: 46c0 movew %d0,%sr <== NOT EXECUTED 46fd6: 2003 movel %d3,%d0 <== NOT EXECUTED 46fd8: 223c dead beef movel #-559038737,%d1 <== NOT EXECUTED 46fde: 4ac8 halt <== NOT EXECUTED 46fe0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46fe6: 60fe bras 46fe6 <_Internal_error_Occurred+0x5a> <== NOT EXECUTED 0004b730 <_Interrupt_Manager_initialization>: * * Output parameters: NONE */ void _Interrupt_Manager_initialization( void ) { 4b730: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED } 4b734: 4e5e unlk %fp <== NOT EXECUTED 4b736: 4e75 rts 0005a0a4 <_Message_queue_Allocate>: * Output parameters: * the_message_queue - set if successful, NULL otherwise */ Message_queue_Control *_Message_queue_Allocate(void) { 5a0a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return (Message_queue_Control *) 5a0a8: 4879 0007 33ae pea 733ae <_Message_queue_Information> <== NOT EXECUTED 5a0ae: 4eb9 0005 5600 jsr 55600 <_Objects_Allocate> <== NOT EXECUTED _Objects_Allocate(&_Message_queue_Information); } 5a0b4: 4e5e unlk %fp <== NOT EXECUTED 5a0b6: 4e75 rts 0004b738 <_Message_queue_Manager_initialization>: */ void _Message_queue_Manager_initialization( uint32_t maximum_message_queues ) { 4b738: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b73c: 4878 0004 pea 4 <== NOT EXECUTED 4b740: 42a7 clrl %sp@- <== NOT EXECUTED 4b742: 4878 0088 pea 88 <== NOT EXECUTED 4b746: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b74a: 4878 0004 pea 4 <== NOT EXECUTED 4b74e: 4878 0002 pea 2 <== NOT EXECUTED 4b752: 4879 0005 a596 pea 5a596 <_Message_queue_Information> <== NOT EXECUTED 4b758: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b75e: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_MESSAGE_QUEUE, _Message_queue_MP_Process_packet ); #endif } 4b764: 4e5e unlk %fp <== NOT EXECUTED 4b766: 4e75 rts 0005323c <_Message_queue_Translate_core_message_queue_return_code>: }; rtems_status_code _Message_queue_Translate_core_message_queue_return_code ( uint32_t status ) { 5323c: 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]; } 53240: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED }; rtems_status_code _Message_queue_Translate_core_message_queue_return_code ( uint32_t status ) { 53244: 41f9 0006 6218 lea 66218 <_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]; } 5324a: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 5324e: 4e5e unlk %fp <== NOT EXECUTED 53250: 4e75 rts <== NOT EXECUTED ... 0004bff0 <_Objects_API_maximum_class>: #include int _Objects_API_maximum_class( uint32_t api ) { 4bff0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4bff4: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED switch (api) { 4bff8: 7202 moveq #2,%d1 <== NOT EXECUTED 4bffa: b280 cmpl %d0,%d1 <== NOT EXECUTED 4bffc: 672a beqs 4c028 <_Objects_API_maximum_class+0x38> <== NOT EXECUTED 4bffe: 6414 bccs 4c014 <_Objects_API_maximum_class+0x24> <== NOT EXECUTED 4c000: 7203 moveq #3,%d1 <== NOT EXECUTED 4c002: b280 cmpl %d0,%d1 <== NOT EXECUTED 4c004: 6728 beqs 4c02e <_Objects_API_maximum_class+0x3e> <== NOT EXECUTED 4c006: 123c 0004 moveb #4,%d1 <== NOT EXECUTED 4c00a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4c00c: 6714 beqs 4c022 <_Objects_API_maximum_class+0x32> <== NOT EXECUTED case OBJECTS_NO_API: default: break; } return -1; } 4c00e: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_CLASSIC_API: return OBJECTS_RTEMS_CLASSES_LAST; case OBJECTS_POSIX_API: return OBJECTS_POSIX_CLASSES_LAST; case OBJECTS_ITRON_API: return OBJECTS_ITRON_CLASSES_LAST; 4c010: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_NO_API: default: break; } return -1; } 4c012: 4e75 rts <== NOT EXECUTED int _Objects_API_maximum_class( uint32_t api ) { switch (api) { 4c014: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 4c018: b280 cmpl %d0,%d1 <== NOT EXECUTED 4c01a: 66f2 bnes 4c00e <_Objects_API_maximum_class+0x1e> <== NOT EXECUTED case OBJECTS_NO_API: default: break; } return -1; } 4c01c: 4e5e unlk %fp <== NOT EXECUTED int _Objects_API_maximum_class( uint32_t api ) { switch (api) { 4c01e: 7002 moveq #2,%d0 <== NOT EXECUTED case OBJECTS_NO_API: default: break; } return -1; } 4c020: 4e75 rts <== NOT EXECUTED 4c022: 4e5e unlk %fp <== 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; 4c024: 7008 moveq #8,%d0 <== NOT EXECUTED case OBJECTS_NO_API: default: break; } return -1; } 4c026: 4e75 rts <== NOT EXECUTED 4c028: 4e5e unlk %fp <== NOT EXECUTED int _Objects_API_maximum_class( uint32_t api ) { switch (api) { 4c02a: 700a moveq #10,%d0 <== NOT EXECUTED case OBJECTS_NO_API: default: break; } return -1; } 4c02c: 4e75 rts <== NOT EXECUTED 4c02e: 4e5e unlk %fp <== NOT EXECUTED int _Objects_API_maximum_class( uint32_t api ) { switch (api) { 4c030: 700c moveq #12,%d0 <== NOT EXECUTED case OBJECTS_NO_API: default: break; } return -1; } 4c032: 4e75 rts 00047058 <_Objects_Allocate>: */ Objects_Control *_Objects_Allocate( Objects_Information *information ) { 47058: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4705c: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 47060: 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 ) 47064: 4aaa 0016 tstl %a2@(22) <== NOT EXECUTED 47068: 660e bnes 47078 <_Objects_Allocate+0x20> <== NOT EXECUTED 4706a: 93c9 subal %a1,%a1 <== NOT EXECUTED information->inactive--; } } return the_object; } 4706c: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 47072: 4e5e unlk %fp <== NOT EXECUTED 47074: 2009 movel %a1,%d0 <== NOT EXECUTED 47076: 4e75 rts <== 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 ); 47078: 240a movel %a2,%d2 <== NOT EXECUTED 4707a: 0682 0000 001e addil #30,%d2 <== NOT EXECUTED 47080: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47082: 47f9 0004 bb9c lea 4bb9c <_Chain_Get>,%a3 <== NOT EXECUTED 47088: 4e93 jsr %a3@ <== NOT EXECUTED if ( information->auto_extend ) { 4708a: 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 ); 4708c: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( information->auto_extend ) { 4708e: 4a2a 0010 tstb %a2@(16) <== NOT EXECUTED 47092: 67d8 beqs 4706c <_Objects_Allocate+0x14> <== NOT EXECUTED /* * If the list is empty then we are out of objects and need to * extend information base. */ if ( !the_object ) { 47094: 4a80 tstl %d0 <== NOT EXECUTED 47096: 673c beqs 470d4 <_Objects_Allocate+0x7c> <== NOT EXECUTED } if ( the_object ) { uint32_t block; block = _Objects_Get_index( the_object->id ) - 47098: 222a 0006 movel %a2@(6),%d1 <== NOT EXECUTED 4709c: 2029 0008 movel %a1@(8),%d0 <== NOT EXECUTED 470a0: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 470a6: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 470ac: 9081 subl %d1,%d0 <== NOT EXECUTED _Objects_Get_index( information->minimum_id ); block /= information->allocation_size; information->inactive_per_block[ block ]--; 470ae: 4c6a 0000 0012 remul %a2@(18),%d0,%d0 <== NOT EXECUTED 470b4: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED information->inactive--; 470b8: 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 ]--; 470bc: e588 lsll #2,%d0 <== NOT EXECUTED information->inactive--; 470be: 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 ]--; 470c0: d1c0 addal %d0,%a0 <== NOT EXECUTED information->inactive--; 470c2: 3541 002a movew %d1,%a2@(42) <== NOT EXECUTED } } return the_object; } 470c6: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED block = _Objects_Get_index( the_object->id ) - _Objects_Get_index( information->minimum_id ); block /= information->allocation_size; information->inactive_per_block[ block ]--; 470cc: 5390 subql #1,%a0@ <== NOT EXECUTED information->inactive--; } } return the_object; } 470ce: 4e5e unlk %fp <== NOT EXECUTED 470d0: 2009 movel %a1,%d0 <== NOT EXECUTED 470d2: 4e75 rts <== NOT EXECUTED * If the list is empty then we are out of objects and need to * extend information base. */ if ( !the_object ) { _Objects_Extend_information( information ); 470d4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 470d6: 4eb9 0004 7120 jsr 47120 <_Objects_Extend_information> <== NOT EXECUTED the_object = (Objects_Control *) _Chain_Get( &information->Inactive ); 470dc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 470de: 4e93 jsr %a3@ <== NOT EXECUTED } if ( the_object ) { 470e0: 508f addql #8,%sp <== NOT EXECUTED * extend information base. */ if ( !the_object ) { _Objects_Extend_information( information ); the_object = (Objects_Control *) _Chain_Get( &information->Inactive ); 470e2: 2240 moveal %d0,%a1 <== NOT EXECUTED } if ( the_object ) { 470e4: 4a80 tstl %d0 <== NOT EXECUTED 470e6: 66b0 bnes 47098 <_Objects_Allocate+0x40> <== NOT EXECUTED information->inactive--; } } return the_object; } 470e8: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 470ee: 4e5e unlk %fp <== NOT EXECUTED 470f0: 2009 movel %a1,%d0 <== NOT EXECUTED 470f2: 4e75 rts 000470f4 <_Objects_Close>: void _Objects_Close( Objects_Information *information, Objects_Control *the_object ) { 470f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 470f8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 470fa: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 470fe: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 47102: 206a 001a moveal %a2@(26),%a0 <== NOT EXECUTED 47106: 4280 clrl %d0 <== NOT EXECUTED 47108: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED 4710c: 42b0 0c00 clrl %a0@(00000000,%d0:l:4) <== NOT EXECUTED _Objects_Invalidate_Id( information, the_object ); _Objects_Namespace_remove( information, the_object ); 47110: 2d49 000c movel %a1,%fp@(12) <== NOT EXECUTED } 47114: 245f moveal %sp@+,%a2 <== NOT EXECUTED 47116: 4e5e unlk %fp <== NOT EXECUTED Objects_Control *the_object ) { _Objects_Invalidate_Id( information, the_object ); _Objects_Namespace_remove( information, the_object ); 47118: 4ef9 0004 76ec jmp 476ec <_Objects_Namespace_remove> <== NOT EXECUTED ... 00047120 <_Objects_Extend_information>: */ void _Objects_Extend_information( Objects_Information *information ) { 47120: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 47124: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 47128: 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; 4712c: 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 ) 47130: 4280 clrl %d0 <== NOT EXECUTED 47132: 0283 0000 ffff andil #65535,%d3 <== NOT EXECUTED 47138: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 4713c: b680 cmpl %d0,%d3 <== NOT EXECUTED 4713e: 6300 01a4 blsw 472e4 <_Objects_Extend_information+0x1c4> <== NOT EXECUTED 47142: 242b 0012 movel %a3@(18),%d2 <== NOT EXECUTED * Up the block count and maximum */ block_count++; maximum = information->maximum + information->allocation_size; 47146: 2e02 movel %d2,%d7 <== NOT EXECUTED minimum_index = _Objects_Get_index( information->minimum_id ); index_base = minimum_index; block = 0; if ( information->maximum < minimum_index ) 47148: 2a03 movel %d3,%d5 <== NOT EXECUTED 4714a: 95ca subal %a2,%a2 <== NOT EXECUTED 4714c: 4284 clrl %d4 <== NOT EXECUTED 4714e: 7c01 moveq #1,%d6 <== NOT EXECUTED 47150: 307c 0003 moveaw #3,%a0 <== NOT EXECUTED * Up the block count and maximum */ block_count++; maximum = information->maximum + information->allocation_size; 47154: de80 addl %d0,%d7 <== NOT EXECUTED /* * Allocate the tables and break it up. */ if ( information->auto_extend ) { 47156: 4a2b 0010 tstb %a3@(16) <== NOT EXECUTED 4715a: 6700 01d0 beqw 4732c <_Objects_Extend_information+0x20c> <== NOT EXECUTED object_blocks = (void**) 4715e: 2008 movel %a0,%d0 <== NOT EXECUTED 47160: d083 addl %d3,%d0 <== NOT EXECUTED 47162: d087 addl %d7,%d0 <== NOT EXECUTED 47164: e588 lsll #2,%d0 <== NOT EXECUTED 47166: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47168: 4eb9 0004 92a4 jsr 492a4 <_Workspace_Allocate> <== NOT EXECUTED block_count * (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) + ((maximum + minimum_index) * sizeof(Objects_Control *)) ); if ( !object_blocks ) 4716e: 588f addql #4,%sp <== NOT EXECUTED /* * Allocate the tables and break it up. */ if ( information->auto_extend ) { object_blocks = (void**) 47170: 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 ) 47172: 4a80 tstl %d0 <== NOT EXECUTED 47174: 6700 0164 beqw 472da <_Objects_Extend_information+0x1ba> <== NOT EXECUTED /* * Break the block into the various sections. * */ inactive_per_block = (uint32_t *) _Addresses_Add_offset( 47178: 2206 movel %d6,%d1 <== NOT EXECUTED 4717a: e589 lsll #2,%d1 <== NOT EXECUTED 4717c: 4bf4 1800 lea %a4@(00000000,%d1:l),%a5 <== NOT EXECUTED * in the copies. */ block_count--; if ( information->maximum > minimum_index ) { 47180: 4280 clrl %d0 <== NOT EXECUTED 47182: 43f5 1800 lea %a5@(00000000,%d1:l),%a1 <== NOT EXECUTED 47186: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 4718a: b680 cmpl %d0,%d3 <== NOT EXECUTED 4718c: 6500 01ca bcsw 47358 <_Objects_Extend_information+0x238> <== NOT EXECUTED else { /* * Deal with the special case of the 0 to minimum_index */ for ( index = 0; index < minimum_index; index++ ) { 47190: 4a83 tstl %d3 <== NOT EXECUTED 47192: 670c beqs 471a0 <_Objects_Extend_information+0x80> <== NOT EXECUTED information->object_blocks, block_count * sizeof(void*) ); memcpy( inactive_per_block, information->inactive_per_block, block_count * sizeof(uint32_t) ); memcpy( local_table, 47194: 2049 moveal %a1,%a0 <== NOT EXECUTED 47196: 4280 clrl %d0 <== NOT EXECUTED /* * Deal with the special case of the 0 to minimum_index */ for ( index = 0; index < minimum_index; index++ ) { local_table[ index ] = NULL; 47198: 4298 clrl %a0@+ <== NOT EXECUTED else { /* * Deal with the special case of the 0 to minimum_index */ for ( index = 0; index < minimum_index; index++ ) { 4719a: 5280 addql #1,%d0 <== NOT EXECUTED 4719c: b680 cmpl %d0,%d3 <== NOT EXECUTED 4719e: 62f8 bhis 47198 <_Objects_Extend_information+0x78> <== NOT EXECUTED 471a0: 240a movel %a2,%d2 <== NOT EXECUTED 471a2: e58a lsll #2,%d2 <== NOT EXECUTED /* * Initialise the new entries in the table. */ object_blocks[block_count] = NULL; inactive_per_block[block_count] = 0; 471a4: 42b5 2800 clrl %a5@(00000000,%d2:l) <== NOT EXECUTED for ( index=index_base ; index < ( information->allocation_size + index_base ); 471a8: 2205 movel %d5,%d1 <== NOT EXECUTED 471aa: d2ab 0012 addl %a3@(18),%d1 <== NOT EXECUTED /* * Initialise the new entries in the table. */ object_blocks[block_count] = NULL; 471ae: 42b4 2800 clrl %a4@(00000000,%d2:l) <== NOT EXECUTED inactive_per_block[block_count] = 0; for ( index=index_base ; index < ( information->allocation_size + index_base ); 471b2: b285 cmpl %d5,%d1 <== NOT EXECUTED 471b4: 630e blss 471c4 <_Objects_Extend_information+0xa4> <== NOT EXECUTED 471b6: 41f1 5c00 lea %a1@(00000000,%d5:l:4),%a0 <== NOT EXECUTED 471ba: 2005 movel %d5,%d0 <== NOT EXECUTED index++ ) { local_table[ index ] = NULL; 471bc: 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 ); index++ ) { 471be: 5280 addql #1,%d0 <== NOT EXECUTED object_blocks[block_count] = NULL; inactive_per_block[block_count] = 0; for ( index=index_base ; index < ( information->allocation_size + index_base ); 471c0: b280 cmpl %d0,%d1 <== NOT EXECUTED 471c2: 62f8 bhis 471bc <_Objects_Extend_information+0x9c> <== NOT EXECUTED index++ ) { local_table[ index ] = NULL; } _ISR_Disable( level ); 471c4: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 471ca: 40c3 movew %sr,%d3 <== NOT EXECUTED 471cc: 8083 orl %d3,%d0 <== NOT EXECUTED 471ce: 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( 471d0: 2013 movel %a3@,%d0 <== NOT EXECUTED 471d2: 7218 moveq #24,%d1 <== NOT EXECUTED 471d4: e3a8 lsll %d1,%d0 <== NOT EXECUTED 471d6: 4281 clrl %d1 <== NOT EXECUTED 471d8: 322b 0004 movew %a3@(4),%d1 <== NOT EXECUTED 471dc: 741b moveq #27,%d2 <== NOT EXECUTED 471de: e5a9 lsll %d2,%d1 <== NOT EXECUTED local_table[ index ] = NULL; } _ISR_Disable( level ); old_tables = information->object_blocks; 471e0: 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( 471e4: 08c0 0010 bset #16,%d0 <== NOT EXECUTED 471e8: 4282 clrl %d2 <== NOT EXECUTED 471ea: 8081 orl %d1,%d0 <== NOT EXECUTED 471ec: 3407 movew %d7,%d2 <== NOT EXECUTED 471ee: 8082 orl %d2,%d0 <== NOT EXECUTED 471f0: 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; 471f4: 3747 000e movew %d7,%a3@(14) <== NOT EXECUTED _ISR_Disable( level ); old_tables = information->object_blocks; information->object_blocks = object_blocks; 471f8: 274c 0030 movel %a4,%a3@(48) <== NOT EXECUTED information->inactive_per_block = inactive_per_block; 471fc: 274d 002c movel %a5,%a3@(44) <== NOT EXECUTED information->local_table = local_table; 47200: 2749 001a movel %a1,%a3@(26) <== NOT EXECUTED information->the_class, _Objects_Local_node, information->maximum ); _ISR_Enable( level ); 47204: 46c3 movew %d3,%sr <== NOT EXECUTED if ( old_tables ) 47206: 4a88 tstl %a0 <== NOT EXECUTED 47208: 6700 01f6 beqw 47400 <_Objects_Extend_information+0x2e0> <== NOT EXECUTED _Workspace_Free( old_tables ); 4720c: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4720e: 4eb9 0004 928c jsr 4928c <_Workspace_Free> <== NOT EXECUTED 47214: 242b 0012 movel %a3@(18),%d2 <== NOT EXECUTED 47218: 588f addql #4,%sp <== NOT EXECUTED /* * Allocate the name table, and the objects */ if ( information->auto_extend ) { 4721a: 4a2b 0010 tstb %a3@(16) <== NOT EXECUTED 4721e: 6700 0180 beqw 473a0 <_Objects_Extend_information+0x280> <== NOT EXECUTED information->object_blocks[ block ] = 47222: 202b 0016 movel %a3@(22),%d0 <== NOT EXECUTED 47226: 4c02 0800 mulsl %d2,%d0 <== NOT EXECUTED 4722a: 2c04 movel %d4,%d6 <== NOT EXECUTED 4722c: e58e lsll #2,%d6 <== NOT EXECUTED 4722e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47230: 246b 0030 moveal %a3@(48),%a2 <== NOT EXECUTED 47234: 4eb9 0004 92a4 jsr 492a4 <_Workspace_Allocate> <== NOT EXECUTED _Workspace_Allocate( (information->allocation_size * information->size) ); if ( !information->object_blocks[ block ] ) 4723a: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED /* * Allocate the name table, and the objects */ if ( information->auto_extend ) { information->object_blocks[ block ] = 4723e: d5c6 addal %d6,%a2 <== NOT EXECUTED 47240: 2480 movel %d0,%a2@ <== NOT EXECUTED _Workspace_Allocate( (information->allocation_size * information->size) ); if ( !information->object_blocks[ block ] ) 47242: 2030 6800 movel %a0@(00000000,%d6:l),%d0 <== NOT EXECUTED 47246: 588f addql #4,%sp <== NOT EXECUTED 47248: 6700 0090 beqw 472da <_Objects_Extend_information+0x1ba> <== NOT EXECUTED /* * Initialize objects .. add to a local chain first. */ _Chain_Initialize( 4724c: 2f2b 0016 movel %a3@(22),%sp@- <== NOT EXECUTED 47250: 280e movel %fp,%d4 <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 47252: 260b movel %a3,%d3 <== NOT EXECUTED /* * Initialize objects .. add to a local chain first. */ _Chain_Initialize( 47254: 2f2b 0012 movel %a3@(18),%sp@- <== NOT EXECUTED 47258: 0684 ffff fff4 addil #-12,%d4 <== NOT EXECUTED 4725e: 2f00 movel %d0,%sp@- <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 47260: 2405 movel %d5,%d2 <== NOT EXECUTED 47262: 0683 0000 001e addil #30,%d3 <== NOT EXECUTED /* * Initialize objects .. add to a local chain first. */ _Chain_Initialize( 47268: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4726a: 4eb9 0004 bbd8 jsr 4bbd8 <_Chain_Initialize> <== NOT EXECUTED 47270: 49f9 0004 bb9c lea 4bb9c <_Chain_Get>,%a4 <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 47276: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4727c: 45f9 0004 6824 lea 46824 <_Chain_Append>,%a2 <== 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 ) { 47282: 2f04 movel %d4,%sp@- <== NOT EXECUTED 47284: 4e94 jsr %a4@ <== NOT EXECUTED 47286: 588f addql #4,%sp <== NOT EXECUTED 47288: 2040 moveal %d0,%a0 <== NOT EXECUTED 4728a: 4a80 tstl %d0 <== NOT EXECUTED 4728c: 6734 beqs 472c2 <_Objects_Extend_information+0x1a2> <== NOT EXECUTED the_object->id = _Objects_Build_id( 4728e: 2013 movel %a3@,%d0 <== NOT EXECUTED 47290: 7a18 moveq #24,%d5 <== NOT EXECUTED 47292: eba8 lsll %d5,%d0 <== NOT EXECUTED 47294: 4281 clrl %d1 <== NOT EXECUTED 47296: 322b 0004 movew %a3@(4),%d1 <== NOT EXECUTED 4729a: 1a3c 001b moveb #27,%d5 <== NOT EXECUTED 4729e: eba9 lsll %d5,%d1 <== NOT EXECUTED 472a0: 08c0 0010 bset #16,%d0 <== NOT EXECUTED 472a4: 8081 orl %d1,%d0 <== NOT EXECUTED 472a6: 8082 orl %d2,%d0 <== NOT EXECUTED 472a8: 2140 0008 movel %d0,%a0@(8) <== NOT EXECUTED index ); _Chain_Append( &information->Inactive, &the_object->Node ); index++; 472ac: 5282 addql #1,%d2 <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 472ae: 2f08 movel %a0,%sp@- <== NOT EXECUTED 472b0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 472b2: 4e92 jsr %a2@ <== NOT EXECUTED index++; 472b4: 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 ) { 472b6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 472b8: 4e94 jsr %a4@ <== NOT EXECUTED 472ba: 588f addql #4,%sp <== NOT EXECUTED 472bc: 2040 moveal %d0,%a0 <== NOT EXECUTED 472be: 4a80 tstl %d0 <== NOT EXECUTED 472c0: 66cc bnes 4728e <_Objects_Extend_information+0x16e> <== NOT EXECUTED _Chain_Append( &information->Inactive, &the_object->Node ); index++; } information->inactive_per_block[ block ] = information->allocation_size; 472c2: 206b 002c moveal %a3@(44),%a0 <== NOT EXECUTED 472c6: 43eb 0012 lea %a3@(18),%a1 <== NOT EXECUTED 472ca: 2191 6800 movel %a1@,%a0@(00000000,%d6:l) <== NOT EXECUTED information->inactive += information->allocation_size; 472ce: 302b 002a movew %a3@(42),%d0 <== NOT EXECUTED 472d2: d0ab 0012 addl %a3@(18),%d0 <== NOT EXECUTED 472d6: 3740 002a movew %d0,%a3@(42) <== NOT EXECUTED } 472da: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 472e0: 4e5e unlk %fp <== NOT EXECUTED 472e2: 4e75 rts <== NOT EXECUTED block = 0; if ( information->maximum < minimum_index ) block_count = 0; else { block_count = information->maximum / information->allocation_size; 472e4: 242b 0012 movel %a3@(18),%d2 <== NOT EXECUTED 472e8: 2200 movel %d0,%d1 <== NOT EXECUTED 472ea: 4c42 1001 remul %d2,%d1,%d1 <== NOT EXECUTED 472ee: 2441 moveal %d1,%a2 <== NOT EXECUTED for ( ; block < block_count; block++ ) { 472f0: 6700 0116 beqw 47408 <_Objects_Extend_information+0x2e8> <== NOT EXECUTED if ( information->object_blocks[ block ] == NULL ) 472f4: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED 472f8: 4a90 tstl %a0@ <== NOT EXECUTED 472fa: 6700 010c beqw 47408 <_Objects_Extend_information+0x2e8> <== NOT EXECUTED 472fe: 5888 addql #4,%a0 <== NOT EXECUTED 47300: 2a03 movel %d3,%d5 <== NOT EXECUTED 47302: 4284 clrl %d4 <== NOT EXECUTED break; else index_base += information->allocation_size; 47304: da82 addl %d2,%d5 <== NOT EXECUTED if ( information->maximum < minimum_index ) block_count = 0; else { block_count = information->maximum / information->allocation_size; for ( ; block < block_count; block++ ) { 47306: 5284 addql #1,%d4 <== NOT EXECUTED 47308: b881 cmpl %d1,%d4 <== NOT EXECUTED 4730a: 6404 bccs 47310 <_Objects_Extend_information+0x1f0> <== NOT EXECUTED if ( information->object_blocks[ block ] == NULL ) 4730c: 4a98 tstl %a0@+ <== NOT EXECUTED 4730e: 66f4 bnes 47304 <_Objects_Extend_information+0x1e4> <== NOT EXECUTED /* * If the index_base is the maximum we need to grow the tables. */ if (index_base >= information->maximum ) { 47310: b085 cmpl %d5,%d0 <== NOT EXECUTED 47312: 6200 ff06 bhiw 4721a <_Objects_Extend_information+0xfa> <== NOT EXECUTED 47316: 2c01 movel %d1,%d6 <== NOT EXECUTED 47318: 5286 addql #1,%d6 <== NOT EXECUTED 4731a: 2246 moveal %d6,%a1 <== NOT EXECUTED * Up the block count and maximum */ block_count++; maximum = information->maximum + information->allocation_size; 4731c: 2e02 movel %d2,%d7 <== NOT EXECUTED /* * If the index_base is the maximum we need to grow the tables. */ if (index_base >= information->maximum ) { 4731e: 41f1 6a00 lea %a1@(00000000,%d6:l:2),%a0 <== NOT EXECUTED * Up the block count and maximum */ block_count++; maximum = information->maximum + information->allocation_size; 47322: de80 addl %d0,%d7 <== NOT EXECUTED /* * Allocate the tables and break it up. */ if ( information->auto_extend ) { 47324: 4a2b 0010 tstb %a3@(16) <== NOT EXECUTED 47328: 6600 fe34 bnew 4715e <_Objects_Extend_information+0x3e> <== NOT EXECUTED if ( !object_blocks ) return; } else { object_blocks = (void**) 4732c: 2008 movel %a0,%d0 <== NOT EXECUTED 4732e: d083 addl %d3,%d0 <== NOT EXECUTED 47330: d087 addl %d7,%d0 <== NOT EXECUTED 47332: e588 lsll #2,%d0 <== NOT EXECUTED 47334: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47336: 4eb9 0004 92bc jsr 492bc <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED /* * Break the block into the various sections. * */ inactive_per_block = (uint32_t *) _Addresses_Add_offset( 4733c: 2206 movel %d6,%d1 <== NOT EXECUTED if ( !object_blocks ) return; } else { object_blocks = (void**) 4733e: 2840 moveal %d0,%a4 <== NOT EXECUTED /* * Break the block into the various sections. * */ inactive_per_block = (uint32_t *) _Addresses_Add_offset( 47340: e589 lsll #2,%d1 <== NOT EXECUTED 47342: 4bf4 1800 lea %a4@(00000000,%d1:l),%a5 <== NOT EXECUTED * in the copies. */ block_count--; if ( information->maximum > minimum_index ) { 47346: 4280 clrl %d0 <== NOT EXECUTED if ( !object_blocks ) return; } else { object_blocks = (void**) 47348: 588f addql #4,%sp <== NOT EXECUTED 4734a: 43f5 1800 lea %a5@(00000000,%d1:l),%a1 <== NOT EXECUTED * in the copies. */ block_count--; if ( information->maximum > minimum_index ) { 4734e: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 47352: b680 cmpl %d0,%d3 <== NOT EXECUTED 47354: 6400 fe3a bccw 47190 <_Objects_Extend_information+0x70> <== 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, 47358: 240a movel %a2,%d2 <== NOT EXECUTED 4735a: e58a lsll #2,%d2 <== NOT EXECUTED 4735c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4735e: 45f9 0004 db78 lea 4db78 ,%a2 <== NOT EXECUTED 47364: 2f2b 0030 movel %a3@(48),%sp@- <== NOT EXECUTED 47368: 2d49 fff0 movel %a1,%fp@(-16) <== NOT EXECUTED 4736c: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4736e: 4e92 jsr %a2@ <== NOT EXECUTED information->object_blocks, block_count * sizeof(void*) ); memcpy( inactive_per_block, 47370: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47372: 2f2b 002c movel %a3@(44),%sp@- <== NOT EXECUTED 47376: 2f0d movel %a5,%sp@- <== NOT EXECUTED 47378: 4e92 jsr %a2@ <== NOT EXECUTED information->inactive_per_block, block_count * sizeof(uint32_t) ); memcpy( local_table, 4737a: 4281 clrl %d1 <== NOT EXECUTED 4737c: 322b 000e movew %a3@(14),%d1 <== NOT EXECUTED 47380: d283 addl %d3,%d1 <== NOT EXECUTED 47382: e589 lsll #2,%d1 <== NOT EXECUTED 47384: 2f01 movel %d1,%sp@- <== NOT EXECUTED 47386: 226e fff0 moveal %fp@(-16),%a1 <== NOT EXECUTED 4738a: 2f2b 001a movel %a3@(26),%sp@- <== NOT EXECUTED 4738e: 2f09 movel %a1,%sp@- <== NOT EXECUTED 47390: 4e92 jsr %a2@ <== NOT EXECUTED 47392: 226e fff0 moveal %fp@(-16),%a1 <== NOT EXECUTED 47396: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 4739c: 6000 fe06 braw 471a4 <_Objects_Extend_information+0x84> <== NOT EXECUTED if ( !information->object_blocks[ block ] ) return; } else { information->object_blocks[ block ] = 473a0: 222b 0016 movel %a3@(22),%d1 <== NOT EXECUTED 473a4: 4c02 1800 mulsl %d2,%d1 <== NOT EXECUTED 473a8: 2c04 movel %d4,%d6 <== NOT EXECUTED 473aa: e58e lsll #2,%d6 <== NOT EXECUTED 473ac: 2f01 movel %d1,%sp@- <== NOT EXECUTED 473ae: 246b 0030 moveal %a3@(48),%a2 <== NOT EXECUTED 473b2: 4eb9 0004 92bc jsr 492bc <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED 473b8: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED 473bc: d5c6 addal %d6,%a2 <== NOT EXECUTED 473be: 2480 movel %d0,%a2@ <== NOT EXECUTED 473c0: 2030 6800 movel %a0@(00000000,%d6:l),%d0 <== NOT EXECUTED 473c4: 588f addql #4,%sp <== NOT EXECUTED /* * Initialize objects .. add to a local chain first. */ _Chain_Initialize( 473c6: 2f2b 0016 movel %a3@(22),%sp@- <== NOT EXECUTED 473ca: 280e movel %fp,%d4 <== NOT EXECUTED 473cc: 2f2b 0012 movel %a3@(18),%sp@- <== NOT EXECUTED 473d0: 0684 ffff fff4 addil #-12,%d4 <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 473d6: 260b movel %a3,%d3 <== NOT EXECUTED /* * Initialize objects .. add to a local chain first. */ _Chain_Initialize( 473d8: 2f00 movel %d0,%sp@- <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 473da: 2405 movel %d5,%d2 <== NOT EXECUTED 473dc: 0683 0000 001e addil #30,%d3 <== NOT EXECUTED /* * Initialize objects .. add to a local chain first. */ _Chain_Initialize( 473e2: 2f04 movel %d4,%sp@- <== NOT EXECUTED 473e4: 4eb9 0004 bbd8 jsr 4bbd8 <_Chain_Initialize> <== NOT EXECUTED 473ea: 49f9 0004 bb9c lea 4bb9c <_Chain_Get>,%a4 <== NOT EXECUTED information->the_class, _Objects_Local_node, index ); _Chain_Append( &information->Inactive, &the_object->Node ); 473f0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 473f6: 45f9 0004 6824 lea 46824 <_Chain_Append>,%a2 <== NOT EXECUTED 473fc: 6000 fe84 braw 47282 <_Objects_Extend_information+0x162> <== NOT EXECUTED information->maximum ); _ISR_Enable( level ); if ( old_tables ) 47400: 242b 0012 movel %a3@(18),%d2 <== NOT EXECUTED 47404: 6000 fe14 braw 4721a <_Objects_Extend_information+0xfa> <== NOT EXECUTED if ( information->maximum < minimum_index ) block_count = 0; else { block_count = information->maximum / information->allocation_size; for ( ; block < block_count; block++ ) { 47408: 2a03 movel %d3,%d5 <== NOT EXECUTED 4740a: 4284 clrl %d4 <== NOT EXECUTED /* * If the index_base is the maximum we need to grow the tables. */ if (index_base >= information->maximum ) { 4740c: b085 cmpl %d5,%d0 <== NOT EXECUTED 4740e: 6200 fe0a bhiw 4721a <_Objects_Extend_information+0xfa> <== NOT EXECUTED 47412: 6000 ff02 braw 47316 <_Objects_Extend_information+0x1f6> <== NOT EXECUTED ... 00047418 <_Objects_Free>: void _Objects_Free( Objects_Information *information, Objects_Control *the_object ) { 47418: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4741c: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 47420: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 47424: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED uint32_t allocation_size = information->allocation_size; _Chain_Append( &information->Inactive, &the_object->Node ); 47428: 2f0b movel %a3,%sp@- <== NOT EXECUTED void _Objects_Free( Objects_Information *information, Objects_Control *the_object ) { uint32_t allocation_size = information->allocation_size; 4742a: 242a 0012 movel %a2@(18),%d2 <== NOT EXECUTED _Chain_Append( &information->Inactive, &the_object->Node ); 4742e: 486a 001e pea %a2@(30) <== NOT EXECUTED 47432: 4eb9 0004 6824 jsr 46824 <_Chain_Append> <== NOT EXECUTED if ( information->auto_extend ) { 47438: 508f addql #8,%sp <== NOT EXECUTED 4743a: 4a2a 0010 tstb %a2@(16) <== NOT EXECUTED 4743e: 6740 beqs 47480 <_Objects_Free+0x68> <== NOT EXECUTED uint32_t block; block = 47440: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 47444: 222a 0006 movel %a2@(6),%d1 <== NOT EXECUTED 47448: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 4744e: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 47454: 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 ]++; 47456: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED 4745a: 4c6a 0000 0012 remul %a2@(18),%d0,%d0 <== NOT EXECUTED 47460: e588 lsll #2,%d0 <== NOT EXECUTED 47462: d1c0 addal %d0,%a0 <== NOT EXECUTED information->inactive++; 47464: 302a 002a movew %a2@(42),%d0 <== NOT EXECUTED 47468: 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 ) ) ) { 4746a: 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 ]++; 4746c: 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 ) ) ) { 4746e: 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++; 47470: 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 ) ) ) { 47474: d282 addl %d2,%d1 <== NOT EXECUTED 47476: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 4747c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4747e: 650a bcss 4748a <_Objects_Free+0x72> <== NOT EXECUTED _Objects_Shrink_information( information ); } } } 47480: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 47486: 4e5e unlk %fp <== NOT EXECUTED 47488: 4e75 rts <== 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 ); 4748a: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } } 4748e: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 47494: 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 ); 47496: 4ef9 0004 77a8 jmp 477a8 <_Objects_Shrink_information> <== NOT EXECUTED 00047584 <_Objects_Get>: Objects_Control *_Objects_Get( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 47584: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47588: 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; 4758c: 7201 moveq #1,%d1 <== NOT EXECUTED 4758e: 92a8 0006 subl %a0@(6),%d1 <== NOT EXECUTED 47592: d2ae 000c addl %fp@(12),%d1 <== 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 ) { 47596: 4280 clrl %d0 <== NOT EXECUTED Objects_Control *_Objects_Get( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 47598: 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 ) { 4759a: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 4759e: b081 cmpl %d1,%d0 <== NOT EXECUTED 475a0: 6528 bcss 475ca <_Objects_Get+0x46> <== NOT EXECUTED 475a2: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 475a8: 5280 addql #1,%d0 <== NOT EXECUTED 475aa: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); if ( (the_object = information->local_table[ index ]) != NULL ) { 475b0: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 475b4: 2430 1c00 movel %a0@(00000000,%d1:l:4),%d2 <== NOT EXECUTED 475b8: 6724 beqs 475de <_Objects_Get+0x5a> <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 475ba: 2002 movel %d2,%d0 <== NOT EXECUTED * index into the local_table array. */ if ( index <= information->maximum ) { _Thread_Disable_dispatch(); if ( (the_object = information->local_table[ index ]) != NULL ) { *location = OBJECTS_LOCAL; 475bc: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 475c0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 475c4: 4e5e unlk %fp <== NOT EXECUTED * index into the local_table array. */ if ( index <= information->maximum ) { _Thread_Disable_dispatch(); if ( (the_object = information->local_table[ index ]) != NULL ) { *location = OBJECTS_LOCAL; 475c6: 4290 clrl %a0@ <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 475c8: 4e75 rts <== 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; 475ca: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 475ce: 7001 moveq #1,%d0 <== NOT EXECUTED 475d0: 4282 clrl %d2 <== NOT EXECUTED 475d2: 2080 movel %d0,%a0@ <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 475d4: 2002 movel %d2,%d0 <== NOT EXECUTED 475d6: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 475da: 4e5e unlk %fp <== NOT EXECUTED 475dc: 4e75 rts <== NOT EXECUTED /* * Valid Id for this API, Class and Node but the object has not * been allocated yet. */ _Thread_Enable_dispatch(); 475de: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 475e4: 2002 movel %d2,%d0 <== NOT EXECUTED /* * Valid Id for this API, Class and Node but the object has not * been allocated yet. */ _Thread_Enable_dispatch(); *location = OBJECTS_ERROR; 475e6: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 475ea: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED /* * Valid Id for this API, Class and Node but the object has not * been allocated yet. */ _Thread_Enable_dispatch(); *location = OBJECTS_ERROR; 475ee: 7201 moveq #1,%d1 <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 475f0: 4e5e unlk %fp <== NOT EXECUTED /* * Valid Id for this API, Class and Node but the object has not * been allocated yet. */ _Thread_Enable_dispatch(); *location = OBJECTS_ERROR; 475f2: 2081 movel %d1,%a0@ <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 475f4: 4e75 rts <== NOT EXECUTED ... 000474c8 <_Objects_Get_information>: Objects_Information *_Objects_Get_information( Objects_APIs the_api, uint32_t the_class ) { 474c8: 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 ) 474cc: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 474d0: 7203 moveq #3,%d1 <== NOT EXECUTED 474d2: 5380 subql #1,%d0 <== NOT EXECUTED 474d4: b280 cmpl %d0,%d1 <== NOT EXECUTED 474d6: 6506 bcss 474de <_Objects_Get_information+0x16> <== NOT EXECUTED int the_class_api_maximum; if ( !_Objects_Is_api_valid( the_api ) ) return NULL; if ( !the_class ) 474d8: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 474dc: 6608 bnes 474e6 <_Objects_Get_information+0x1e> <== 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 ) 474de: 91c8 subal %a0,%a0 <== NOT EXECUTED return NULL; #endif return info; } 474e0: 4e5e unlk %fp <== NOT EXECUTED 474e2: 2008 movel %a0,%d0 <== NOT EXECUTED 474e4: 4e75 rts <== NOT EXECUTED return NULL; if ( !the_class ) return NULL; the_class_api_maximum = _Objects_API_maximum_class( the_api ); 474e6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 474ea: 4eb9 0004 bff0 jsr 4bff0 <_Objects_API_maximum_class> <== NOT EXECUTED if ( the_class_api_maximum < 0 || 474f0: 588f addql #4,%sp <== NOT EXECUTED 474f2: 4a80 tstl %d0 <== NOT EXECUTED 474f4: 6de8 blts 474de <_Objects_Get_information+0x16> <== NOT EXECUTED 474f6: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 474fa: 65e2 bcss 474de <_Objects_Get_information+0x16> <== NOT EXECUTED the_class > (uint32_t) the_class_api_maximum ) return NULL; if ( !_Objects_Information_table[ the_api ] ) 474fc: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 47500: 41f9 0005 9c34 lea 59c34 <_Objects_Information_table>,%a0 <== NOT EXECUTED 47506: 2070 0c00 moveal %a0@(00000000,%d0:l:4),%a0 <== NOT EXECUTED 4750a: 4a88 tstl %a0 <== NOT EXECUTED 4750c: 67d0 beqs 474de <_Objects_Get_information+0x16> <== NOT EXECUTED return NULL; info = _Objects_Information_table[ the_api ][ the_class ]; 4750e: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 47512: 2070 1c00 moveal %a0@(00000000,%d1:l:4),%a0 <== NOT EXECUTED if ( !info ) 47516: 4a88 tstl %a0 <== NOT EXECUTED 47518: 67c6 beqs 474e0 <_Objects_Get_information+0x18> <== 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 ) 4751a: 4a68 000e tstw %a0@(14) <== NOT EXECUTED 4751e: 67be beqs 474de <_Objects_Get_information+0x16> <== NOT EXECUTED return NULL; #endif return info; } 47520: 4e5e unlk %fp <== NOT EXECUTED 47522: 2008 movel %a0,%d0 <== NOT EXECUTED 47524: 4e75 rts <== NOT EXECUTED ... 0004749c <_Objects_Get_information_id>: #include Objects_Information *_Objects_Get_information_id( Objects_Id id ) { 4749c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 474a0: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 474a4: 2f02 movel %d2,%sp@- <== NOT EXECUTED return _Objects_Get_information( 474a6: 2200 movel %d0,%d1 <== NOT EXECUTED 474a8: 741b moveq #27,%d2 <== NOT EXECUTED 474aa: e4a9 lsrl %d2,%d1 <== NOT EXECUTED 474ac: 2f01 movel %d1,%sp@- <== NOT EXECUTED 474ae: 7218 moveq #24,%d1 <== NOT EXECUTED 474b0: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 474b2: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 474b6: c480 andl %d0,%d2 <== NOT EXECUTED 474b8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 474ba: 4eb9 0004 74c8 jsr 474c8 <_Objects_Get_information> <== NOT EXECUTED _Objects_Get_API( id ), _Objects_Get_class( id ) ); } 474c0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 474c4: 4e5e unlk %fp <== NOT EXECUTED 474c6: 4e75 rts 00047528 <_Objects_Get_isr_disable>: Objects_Information *information, Objects_Id id, Objects_Locations *location, ISR_Level *level_p ) { 47528: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4752c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 47530: 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; 47534: 4281 clrl %d1 <== NOT EXECUTED Objects_Information *information, Objects_Id id, Objects_Locations *location, ISR_Level *level_p ) { 47536: 2f02 movel %d2,%sp@- <== NOT EXECUTED index = id & 0x0000ffff; /* This should work but doesn't always :( */ /* index = (uint16_t ) id; */ #endif _ISR_Disable( level ); 47538: 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; 4753e: 322e 000e movew %fp@(14),%d1 <== NOT EXECUTED /* This should work but doesn't always :( */ /* index = (uint16_t ) id; */ #endif _ISR_Disable( level ); 47542: 40c2 movew %sr,%d2 <== NOT EXECUTED 47544: 8082 orl %d2,%d0 <== NOT EXECUTED 47546: 46c0 movew %d0,%sr <== NOT EXECUTED if ( information->maximum >= index ) { 47548: 4280 clrl %d0 <== NOT EXECUTED 4754a: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 4754e: b081 cmpl %d1,%d0 <== NOT EXECUTED 47550: 6518 bcss 4756a <_Objects_Get_isr_disable+0x42> <== NOT EXECUTED if ( (the_object = information->local_table[ index ]) != NULL ) { 47552: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 47556: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 4755a: 671c beqs 47578 <_Objects_Get_isr_disable+0x50> <== NOT EXECUTED *location = OBJECTS_LOCAL; *level_p = level; 4755c: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 47560: 2082 movel %d2,%a0@ <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 47562: 241f movel %sp@+,%d2 <== NOT EXECUTED 47564: 4e5e unlk %fp <== NOT EXECUTED #endif _ISR_Disable( level ); if ( information->maximum >= index ) { if ( (the_object = information->local_table[ index ]) != NULL ) { *location = OBJECTS_LOCAL; 47566: 4291 clrl %a1@ <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 47568: 4e75 rts <== NOT EXECUTED } _ISR_Enable( level ); *location = OBJECTS_ERROR; return NULL; } _ISR_Enable( level ); 4756a: 46c2 movew %d2,%sr <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 4756c: 241f movel %sp@+,%d2 <== NOT EXECUTED _ISR_Enable( level ); *location = OBJECTS_ERROR; return NULL; } _ISR_Enable( level ); *location = OBJECTS_ERROR; 4756e: 7201 moveq #1,%d1 <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 47570: 4e5e unlk %fp <== NOT EXECUTED _ISR_Enable( level ); *location = OBJECTS_ERROR; return NULL; } _ISR_Enable( level ); *location = OBJECTS_ERROR; 47572: 4280 clrl %d0 <== NOT EXECUTED 47574: 2281 movel %d1,%a1@ <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 47576: 4e75 rts <== NOT EXECUTED if ( (the_object = information->local_table[ index ]) != NULL ) { *location = OBJECTS_LOCAL; *level_p = level; return the_object; } _ISR_Enable( level ); 47578: 46c2 movew %d2,%sr <== NOT EXECUTED *location = OBJECTS_ERROR; 4757a: 7401 moveq #1,%d2 <== NOT EXECUTED 4757c: 2282 movel %d2,%a1@ <== NOT EXECUTED _Objects_MP_Is_remote( information, id, location, &the_object ); return the_object; #else return NULL; #endif } 4757e: 241f movel %sp@+,%d2 <== NOT EXECUTED 47580: 4e5e unlk %fp <== NOT EXECUTED 47582: 4e75 rts 00053e2c <_Objects_Get_name_as_string>: char *_Objects_Get_name_as_string( Objects_Id id, size_t length, char *name ) { 53e2c: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 53e30: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 53e34: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED char lname[5]; Objects_Control *the_object; Objects_Locations location; Objects_Id tmpId; if ( length == 0 ) 53e38: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 53e3c: 660e bnes 53e4c <_Objects_Get_name_as_string+0x20> <== NOT EXECUTED } } *d = '\0'; _Thread_Enable_dispatch(); return name; 53e3e: 4284 clrl %d4 <== NOT EXECUTED } return NULL; /* unreachable path */ } 53e40: 2004 movel %d4,%d0 <== NOT EXECUTED 53e42: 4cee 0c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a3 <== NOT EXECUTED 53e48: 4e5e unlk %fp <== NOT EXECUTED 53e4a: 4e75 rts <== NOT EXECUTED Objects_Id tmpId; if ( length == 0 ) return NULL; if ( name == NULL ) 53e4c: 4a84 tstl %d4 <== NOT EXECUTED 53e4e: 67f0 beqs 53e40 <_Objects_Get_name_as_string+0x14> <== NOT EXECUTED return NULL; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 53e50: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 53e54: 6700 0098 beqw 53eee <_Objects_Get_name_as_string+0xc2> <== NOT EXECUTED 53e58: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED information = _Objects_Get_information_id( tmpId ); 53e5c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 53e5e: 4eb9 0004 cd2c jsr 4cd2c <_Objects_Get_information_id> <== NOT EXECUTED if ( !information ) 53e64: 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 ); 53e66: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !information ) 53e68: 4a80 tstl %d0 <== NOT EXECUTED 53e6a: 67d2 beqs 53e3e <_Objects_Get_name_as_string+0x12> <== NOT EXECUTED return NULL; the_object = _Objects_Get( information, tmpId, &location ); 53e6c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 53e70: 2f02 movel %d2,%sp@- <== NOT EXECUTED 53e72: 2f00 movel %d0,%sp@- <== NOT EXECUTED 53e74: 4eb9 0004 ce14 jsr 4ce14 <_Objects_Get> <== NOT EXECUTED switch ( location ) { 53e7a: 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 ); 53e80: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 53e82: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 53e86: 66b6 bnes 53e3e <_Objects_Get_name_as_string+0x12> <== NOT EXECUTED case OBJECTS_ERROR: return NULL; case OBJECTS_LOCAL: if ( information->is_string ) { 53e88: 4a2a 0034 tstb %a2@(52) <== NOT EXECUTED 53e8c: 676e beqs 53efc <_Objects_Get_name_as_string+0xd0> <== NOT EXECUTED s = the_object->name.name_p; 53e8e: 2668 000c moveal %a0@(12),%a3 <== NOT EXECUTED lname[ 4 ] = '\0'; s = lname; } d = name; if ( s ) { 53e92: 4a8b tstl %a3 <== NOT EXECUTED 53e94: 674c beqs 53ee2 <_Objects_Get_name_as_string+0xb6> <== NOT EXECUTED for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) { 53e96: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 53e9a: 5383 subql #1,%d3 <== NOT EXECUTED 53e9c: 6744 beqs 53ee2 <_Objects_Get_name_as_string+0xb6> <== NOT EXECUTED 53e9e: 1413 moveb %a3@,%d2 <== NOT EXECUTED 53ea0: 6740 beqs 53ee2 <_Objects_Get_name_as_string+0xb6> <== NOT EXECUTED 53ea2: 2444 moveal %d4,%a2 <== NOT EXECUTED 53ea4: 93c9 subal %a1,%a1 <== NOT EXECUTED *d = (isprint(*s)) ? *s : '*'; 53ea6: 2079 0006 6418 moveal 66418 <__ctype_ptr>,%a0 <== NOT EXECUTED 53eac: 1202 moveb %d2,%d1 <== NOT EXECUTED 53eae: 49c1 extbl %d1 <== NOT EXECUTED 53eb0: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 53eb4: 49c0 extbl %d0 <== NOT EXECUTED 53eb6: 0280 0000 0097 andil #151,%d0 <== NOT EXECUTED s = lname; } d = name; if ( s ) { for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) { 53ebc: 5289 addql #1,%a1 <== NOT EXECUTED *d = (isprint(*s)) ? *s : '*'; 53ebe: 6602 bnes 53ec2 <_Objects_Get_name_as_string+0x96> <== NOT EXECUTED 53ec0: 742a moveq #42,%d2 <== NOT EXECUTED 53ec2: 14c2 moveb %d2,%a2@+ <== NOT EXECUTED s = lname; } d = name; if ( s ) { for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) { 53ec4: b689 cmpl %a1,%d3 <== NOT EXECUTED 53ec6: 6306 blss 53ece <_Objects_Get_name_as_string+0xa2> <== NOT EXECUTED 53ec8: 1433 9800 moveb %a3@(00000000,%a1:l),%d2 <== NOT EXECUTED 53ecc: 66d8 bnes 53ea6 <_Objects_Get_name_as_string+0x7a> <== NOT EXECUTED *d = (isprint(*s)) ? *s : '*'; } } *d = '\0'; 53ece: 4212 clrb %a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 53ed0: 4eb9 0004 d708 jsr 4d708 <_Thread_Enable_dispatch> <== NOT EXECUTED return name; } return NULL; /* unreachable path */ } 53ed6: 2004 movel %d4,%d0 <== NOT EXECUTED 53ed8: 4cee 0c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a3 <== NOT EXECUTED 53ede: 4e5e unlk %fp <== NOT EXECUTED 53ee0: 4e75 rts <== NOT EXECUTED s = lname; } d = name; if ( s ) { for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) { 53ee2: 2444 moveal %d4,%a2 <== NOT EXECUTED *d = (isprint(*s)) ? *s : '*'; } } *d = '\0'; 53ee4: 4212 clrb %a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 53ee6: 4eb9 0004 d708 jsr 4d708 <_Thread_Enable_dispatch> <== NOT EXECUTED 53eec: 60e8 bras 53ed6 <_Objects_Get_name_as_string+0xaa> <== NOT EXECUTED return NULL; if ( name == NULL ) return NULL; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 53eee: 2079 0006 8242 moveal 68242 <_Thread_Executing>,%a0 <== NOT EXECUTED 53ef4: 2428 0008 movel %a0@(8),%d2 <== NOT EXECUTED 53ef8: 6000 ff62 braw 53e5c <_Objects_Get_name_as_string+0x30> <== 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; 53efc: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED lname[ 0 ] = (u32_name >> 24) & 0xff; 53f00: 7418 moveq #24,%d2 <== NOT EXECUTED 53f02: 2200 movel %d0,%d1 <== NOT EXECUTED 53f04: e4a9 lsrl %d2,%d1 <== NOT EXECUTED lname[ 1 ] = (u32_name >> 16) & 0xff; 53f06: 2400 movel %d0,%d2 <== NOT EXECUTED lname[ 2 ] = (u32_name >> 8) & 0xff; 53f08: 2600 movel %d0,%d3 <== NOT EXECUTED lname[ 3 ] = (u32_name >> 0) & 0xff; 53f0a: 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; 53f0e: 4242 clrw %d2 <== NOT EXECUTED 53f10: 4842 swap %d2 <== NOT EXECUTED lname[ 2 ] = (u32_name >> 8) & 0xff; 53f12: e08b lsrl #8,%d3 <== NOT EXECUTED lname[ 3 ] = (u32_name >> 0) & 0xff; lname[ 4 ] = '\0'; 53f14: 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; 53f16: 1d41 fff7 moveb %d1,%fp@(-9) <== NOT EXECUTED lname[ 1 ] = (u32_name >> 16) & 0xff; 53f1a: 1d42 fff8 moveb %d2,%fp@(-8) <== NOT EXECUTED lname[ 2 ] = (u32_name >> 8) & 0xff; 53f1e: 1d43 fff9 moveb %d3,%fp@(-7) <== NOT EXECUTED lname[ 3 ] = (u32_name >> 0) & 0xff; lname[ 4 ] = '\0'; 53f22: 1d40 fffb moveb %d0,%fp@(-5) <== NOT EXECUTED 53f26: 47ee fff7 lea %fp@(-9),%a3 <== NOT EXECUTED 53f2a: 6000 ff6a braw 53e96 <_Objects_Get_name_as_string+0x6a> <== NOT EXECUTED ... 00056ea4 <_Objects_Get_next>: Objects_Information *information, Objects_Id id, Objects_Locations *location_p, Objects_Id *next_id_p ) { 56ea4: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 56ea8: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 56eac: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 56eb0: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 56eb4: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 56eb8: 2a6e 0014 moveal %fp@(20),%a5 <== NOT EXECUTED Objects_Control *object; Objects_Id next_id; if (_Objects_Get_index(id) == OBJECTS_ID_INITIAL_INDEX) 56ebc: 4a40 tstw %d0 <== NOT EXECUTED 56ebe: 673a beqs 56efa <_Objects_Get_next+0x56> <== NOT EXECUTED 56ec0: 2400 movel %d0,%d2 <== NOT EXECUTED *location_p = OBJECTS_ERROR; goto final; } /* try to grab one */ object = _Objects_Get(information, next_id, location_p); 56ec2: 49f9 0004 ce14 lea 4ce14 <_Objects_Get>,%a4 <== NOT EXECUTED else next_id = id; do { /* walked off end of list? */ if (_Objects_Get_index(next_id) > information->maximum) 56ec8: 4281 clrl %d1 <== NOT EXECUTED 56eca: 2002 movel %d2,%d0 <== NOT EXECUTED 56ecc: 322b 000e movew %a3@(14),%d1 <== NOT EXECUTED 56ed0: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 56ed6: b081 cmpl %d1,%d0 <== NOT EXECUTED 56ed8: 622c bhis 56f06 <_Objects_Get_next+0x62> <== NOT EXECUTED *location_p = OBJECTS_ERROR; goto final; } /* try to grab one */ object = _Objects_Get(information, next_id, location_p); 56eda: 2f0a movel %a2,%sp@- <== NOT EXECUTED 56edc: 2f02 movel %d2,%sp@- <== NOT EXECUTED next_id++; 56ede: 5282 addql #1,%d2 <== NOT EXECUTED *location_p = OBJECTS_ERROR; goto final; } /* try to grab one */ object = _Objects_Get(information, next_id, location_p); 56ee0: 2f0b movel %a3,%sp@- <== NOT EXECUTED 56ee2: 4e94 jsr %a4@ <== NOT EXECUTED next_id++; } while (*location_p != OBJECTS_LOCAL); 56ee4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 56eea: 4a92 tstl %a2@ <== NOT EXECUTED 56eec: 66da bnes 56ec8 <_Objects_Get_next+0x24> <== NOT EXECUTED *next_id_p = next_id; 56eee: 2a82 movel %d2,%a5@ <== NOT EXECUTED return object; final: *next_id_p = OBJECTS_ID_FINAL; return 0; } 56ef0: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 56ef6: 4e5e unlk %fp <== NOT EXECUTED 56ef8: 4e75 rts <== NOT EXECUTED { Objects_Control *object; Objects_Id next_id; if (_Objects_Get_index(id) == OBJECTS_ID_INITIAL_INDEX) next_id = information->minimum_id; 56efa: 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); 56efe: 49f9 0004 ce14 lea 4ce14 <_Objects_Get>,%a4 <== NOT EXECUTED 56f04: 60c2 bras 56ec8 <_Objects_Get_next+0x24> <== NOT EXECUTED do { /* walked off end of list? */ if (_Objects_Get_index(next_id) > information->maximum) { *location_p = OBJECTS_ERROR; 56f06: 7401 moveq #1,%d2 <== NOT EXECUTED *next_id_p = next_id; return object; final: *next_id_p = OBJECTS_ID_FINAL; 56f08: 72ff moveq #-1,%d1 <== NOT EXECUTED do { /* walked off end of list? */ if (_Objects_Get_index(next_id) > information->maximum) { *location_p = OBJECTS_ERROR; 56f0a: 2482 movel %d2,%a2@ <== NOT EXECUTED *next_id_p = next_id; return object; final: *next_id_p = OBJECTS_ID_FINAL; 56f0c: 4280 clrl %d0 <== NOT EXECUTED 56f0e: 2a81 movel %d1,%a5@ <== NOT EXECUTED return 0; } 56f10: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 56f16: 4e5e unlk %fp <== NOT EXECUTED 56f18: 4e75 rts <== NOT EXECUTED ... 00055b2c <_Objects_Get_no_protection>: Objects_Control *_Objects_Get_no_protection( Objects_Information *information, Objects_Id id, Objects_Locations *location ) { 55b2c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 55b30: 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; 55b34: 7201 moveq #1,%d1 <== NOT EXECUTED 55b36: 92a8 0006 subl %a0@(6),%d1 <== NOT EXECUTED 55b3a: d2ae 000c addl %fp@(12),%d1 <== NOT EXECUTED if ( information->maximum >= index ) { 55b3e: 4280 clrl %d0 <== NOT EXECUTED 55b40: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 55b44: b081 cmpl %d1,%d0 <== NOT EXECUTED 55b46: 6514 bcss 55b5c <_Objects_Get_no_protection+0x30> <== NOT EXECUTED if ( (the_object = information->local_table[ index ]) != NULL ) { 55b48: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 55b4c: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 55b50: 670a beqs 55b5c <_Objects_Get_no_protection+0x30> <== NOT EXECUTED *location = OBJECTS_LOCAL; 55b52: 206e 0010 moveal %fp@(16),%a0 <== 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; return NULL; } 55b56: 4e5e unlk %fp <== NOT EXECUTED */ index = id - information->minimum_id + 1; if ( information->maximum >= index ) { if ( (the_object = information->local_table[ index ]) != NULL ) { *location = OBJECTS_LOCAL; 55b58: 4290 clrl %a0@ <== 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; return NULL; } 55b5a: 4e75 rts <== 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; 55b5c: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 55b60: 7201 moveq #1,%d1 <== NOT EXECUTED return NULL; } 55b62: 4e5e unlk %fp <== 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; 55b64: 4280 clrl %d0 <== NOT EXECUTED 55b66: 2081 movel %d1,%a0@ <== NOT EXECUTED return NULL; } 55b68: 4e75 rts <== NOT EXECUTED ... 000477a0 <_Objects_Handler_initialization>: uint32_t maximum_nodes, uint32_t maximum_global_objects ) #else void _Objects_Handler_initialization(void) #endif { 477a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED node, maximum_nodes, maximum_global_objects ); #endif } 477a4: 4e5e unlk %fp <== NOT EXECUTED 477a6: 4e75 rts 00048650 <_Objects_Id_to_name>: Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( Objects_Id id, Objects_Name *name ) { 48650: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 48654: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48656: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4865a: 2f02 movel %d2,%sp@- <== NOT EXECUTED Objects_Id tmpId; Objects_Information *information; Objects_Control *the_object = (Objects_Control *) 0; Objects_Locations ignored_location; if ( !name ) 4865c: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 48660: 6700 00a4 beqw 48706 <_Objects_Id_to_name+0xb6> <== NOT EXECUTED return OBJECTS_INVALID_NAME; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 48664: 4a80 tstl %d0 <== NOT EXECUTED 48666: 6678 bnes 486e0 <_Objects_Id_to_name+0x90> <== NOT EXECUTED 48668: 2079 0005 c1d2 moveal 5c1d2 <_Thread_Executing>,%a0 <== NOT EXECUTED 4866e: 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); 48672: 7018 moveq #24,%d0 <== NOT EXECUTED 48674: 2202 movel %d2,%d1 <== NOT EXECUTED 48676: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 48678: 7607 moveq #7,%d3 <== NOT EXECUTED 4867a: 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 ) 4867c: 2001 movel %d1,%d0 <== NOT EXECUTED 4867e: 5380 subql #1,%d0 <== NOT EXECUTED 48680: 163c 0003 moveb #3,%d3 <== NOT EXECUTED 48684: b680 cmpl %d0,%d3 <== NOT EXECUTED 48686: 6570 bcss 486f8 <_Objects_Id_to_name+0xa8> <== 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 ] ) 48688: 41f9 0005 c0cc lea 5c0cc <_Objects_Information_table>,%a0 <== NOT EXECUTED 4868e: 2070 1c00 moveal %a0@(00000000,%d1:l:4),%a0 <== NOT EXECUTED 48692: 4a88 tstl %a0 <== NOT EXECUTED 48694: 6762 beqs 486f8 <_Objects_Id_to_name+0xa8> <== NOT EXECUTED return OBJECTS_INVALID_ID; the_class = _Objects_Get_class( tmpId ); information = _Objects_Information_table[ the_api ][ the_class ]; 48696: 2002 movel %d2,%d0 <== NOT EXECUTED 48698: 721b moveq #27,%d1 <== NOT EXECUTED 4869a: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 4869c: 2070 0c00 moveal %a0@(00000000,%d0:l:4),%a0 <== NOT EXECUTED if ( !information ) 486a0: 4a88 tstl %a0 <== NOT EXECUTED 486a2: 6754 beqs 486f8 <_Objects_Id_to_name+0xa8> <== NOT EXECUTED return OBJECTS_INVALID_ID; if ( information->is_string ) 486a4: 4a28 0034 tstb %a0@(52) <== NOT EXECUTED 486a8: 664e bnes 486f8 <_Objects_Id_to_name+0xa8> <== NOT EXECUTED return OBJECTS_INVALID_ID; the_object = _Objects_Get( information, tmpId, &ignored_location ); 486aa: 486e fffc pea %fp@(-4) <== NOT EXECUTED 486ae: 2f02 movel %d2,%sp@- <== NOT EXECUTED 486b0: 2f08 movel %a0,%sp@- <== NOT EXECUTED 486b2: 4eb9 0004 85dc jsr 485dc <_Objects_Get> <== NOT EXECUTED if ( !the_object ) 486b8: 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 ); 486be: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !the_object ) 486c0: 4a80 tstl %d0 <== NOT EXECUTED 486c2: 6734 beqs 486f8 <_Objects_Id_to_name+0xa8> <== NOT EXECUTED return OBJECTS_INVALID_ID; *name = the_object->name; 486c4: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 486c8: 22a8 000c movel %a0@(12),%a1@ <== NOT EXECUTED _Thread_Enable_dispatch(); 486cc: 4eb9 0004 8f24 jsr 48f24 <_Thread_Enable_dispatch> <== NOT EXECUTED 486d2: 4280 clrl %d0 <== NOT EXECUTED return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL; } 486d4: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 486d8: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 486dc: 4e5e unlk %fp <== NOT EXECUTED 486de: 4e75 rts <== NOT EXECUTED Objects_Locations ignored_location; if ( !name ) return OBJECTS_INVALID_NAME; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 486e0: 2400 movel %d0,%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); 486e2: 7018 moveq #24,%d0 <== NOT EXECUTED 486e4: 2202 movel %d2,%d1 <== NOT EXECUTED 486e6: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 486e8: 7607 moveq #7,%d3 <== NOT EXECUTED 486ea: 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 ) 486ec: 2001 movel %d1,%d0 <== NOT EXECUTED 486ee: 5380 subql #1,%d0 <== NOT EXECUTED 486f0: 163c 0003 moveb #3,%d3 <== NOT EXECUTED 486f4: b680 cmpl %d0,%d3 <== NOT EXECUTED 486f6: 6490 bccs 48688 <_Objects_Id_to_name+0x38> <== NOT EXECUTED return OBJECTS_INVALID_ID; *name = the_object->name; _Thread_Enable_dispatch(); return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL; } 486f8: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 486fc: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 48700: 4e5e unlk %fp <== NOT EXECUTED if ( !the_object ) return OBJECTS_INVALID_ID; *name = the_object->name; _Thread_Enable_dispatch(); return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL; 48702: 7003 moveq #3,%d0 <== NOT EXECUTED } 48704: 4e75 rts <== NOT EXECUTED 48706: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4870a: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 4870e: 4e5e unlk %fp <== NOT EXECUTED Objects_Id tmpId; Objects_Information *information; Objects_Control *the_object = (Objects_Control *) 0; Objects_Locations ignored_location; if ( !name ) 48710: 7001 moveq #1,%d0 <== NOT EXECUTED return OBJECTS_INVALID_ID; *name = the_object->name; _Thread_Enable_dispatch(); return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL; } 48712: 4e75 rts 000475f8 <_Objects_Initialize_information>: , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 475f8: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 475fc: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED /* * Set the entry in the object information table. */ _Objects_Information_table[ the_api ][ the_class ] = information; 47600: 41f9 0005 9c34 lea 59c34 <_Objects_Information_table>,%a0 <== NOT EXECUTED 47606: 2270 0c00 moveal %a0@(00000000,%d0:l:4),%a1 <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 4760a: 48d7 007c moveml %d2-%d6,%sp@ <== NOT EXECUTED 4760e: 282e 0014 movel %fp@(20),%d4 <== NOT EXECUTED 47612: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 47616: 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; 4761a: 2c04 movel %d4,%d6 <== NOT EXECUTED 4761c: 0886 001f bclr #31,%d6 <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 47620: 7218 moveq #24,%d1 <== NOT EXECUTED uint32_t name_length; #if defined(RTEMS_MULTIPROCESSING) uint32_t index; #endif information->the_api = the_api; 47622: 2080 movel %d0,%a0@ <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 47624: e3a8 lsll %d1,%d0 <== NOT EXECUTED 47626: 4a86 tstl %d6 <== NOT EXECUTED 47628: 56c3 sne %d3 <== NOT EXECUTED 4762a: 123c 001b moveb #27,%d1 <== NOT EXECUTED /* * Set the entry in the object information table. */ _Objects_Information_table[ the_api ][ the_class ] = information; 4762e: 2388 2c00 movel %a0,%a1@(00000000,%d2:l:4) <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) uint32_t index; #endif information->the_api = the_api; information->the_class = the_class; 47632: 3142 0004 movew %d2,%a0@(4) <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 47636: 2a2e 0020 movel %fp@(32),%d5 <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 4763a: e3aa lsll %d1,%d2 <== NOT EXECUTED 4763c: 08c0 0010 bset #16,%d0 <== NOT EXECUTED 47640: 49c3 extbl %d3 <== NOT EXECUTED 47642: 8082 orl %d2,%d0 <== NOT EXECUTED 47644: 4483 negl %d3 <== NOT EXECUTED 47646: 8083 orl %d3,%d0 <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 47648: 4281 clrl %d1 <== NOT EXECUTED */ if ( maximum == 0 ) minimum_index = 0; else minimum_index = 1; information->minimum_id = 4764a: 2140 0006 movel %d0,%a0@(6) <== NOT EXECUTED , bool supports_global, Objects_Thread_queue_Extract_callout extract #endif ) { 4764e: 322e 001a movew %fp@(26),%d1 <== NOT EXECUTED information->local_table = 0; information->inactive_per_block = 0; information->object_blocks = 0; information->inactive = 0; 47652: 4240 clrw %d0 <== NOT EXECUTED /* * Set the size of the object */ information->size = size; 47654: 2141 0016 movel %d1,%a0@(22) <== NOT EXECUTED information->local_table = 0; information->inactive_per_block = 0; information->object_blocks = 0; information->inactive = 0; 47658: 3140 002a movew %d0,%a0@(42) <== NOT EXECUTED /* * Are we operating in unlimited, or auto-extend mode */ information->auto_extend = 4765c: d884 addl %d4,%d4 <== NOT EXECUTED 4765e: 9984 subxl %d4,%d4 <== NOT EXECUTED 47660: 4484 negl %d4 <== NOT EXECUTED uint32_t index; #endif information->the_api = the_api; information->the_class = the_class; information->is_string = is_string; 47662: 116e 001f 0034 moveb %fp@(31),%a0@(52) <== NOT EXECUTED * Calculate the maximum name length */ name_length = maximum_name_length; if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) ) 47668: 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; 4766a: 223c 0005 942c movel #365612,%d1 <== NOT EXECUTED /* * Are we operating in unlimited, or auto-extend mode */ information->auto_extend = 47670: 1144 0010 moveb %d4,%a0@(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; 47674: 42a8 002c clrl %a0@(44) <== NOT EXECUTED * Calculate the maximum name length */ name_length = maximum_name_length; if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) ) 47678: 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; 4767a: 2141 001a movel %d1,%a0@(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; 4767e: 42a8 0030 clrl %a0@(48) <== NOT EXECUTED /* * The allocation unit is the maximum value */ information->allocation_size = maximum; 47682: 2146 0012 movel %d6,%a0@(18) <== NOT EXECUTED * Calculate the maximum name length */ name_length = maximum_name_length; if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) ) 47686: 4a80 tstl %d0 <== NOT EXECUTED 47688: 6626 bnes 476b0 <_Objects_Initialize_information+0xb8> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4768a: 43e8 0022 lea %a0@(34),%a1 <== NOT EXECUTED 4768e: 2149 001e movel %a1,%a0@(30) <== NOT EXECUTED 47692: 2005 movel %d5,%d0 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 47694: 43e8 001e lea %a0@(30),%a1 <== NOT EXECUTED name_length = (name_length + OBJECTS_NAME_ALIGNMENT) & ~(OBJECTS_NAME_ALIGNMENT-1); information->name_length = name_length; 47698: 3140 0036 movew %d0,%a0@(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; 4769c: 42a8 0022 clrl %a0@(34) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 476a0: 2149 0026 movel %a1,%a0@(38) <== NOT EXECUTED /* * Initialize objects .. if there are any */ if ( maximum ) { 476a4: 4a86 tstl %d6 <== NOT EXECUTED 476a6: 662c bnes 476d4 <_Objects_Initialize_information+0xdc> <== NOT EXECUTED _Chain_Initialize_empty( &information->global_table[ index ] ); } else information->global_table = NULL; #endif } 476a8: 4cd7 007c moveml %sp@,%d2-%d6 <== NOT EXECUTED 476ac: 4e5e unlk %fp <== NOT EXECUTED 476ae: 4e75 rts <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 476b0: 43e8 0022 lea %a0@(34),%a1 <== NOT EXECUTED */ name_length = maximum_name_length; if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) ) name_length = (name_length + OBJECTS_NAME_ALIGNMENT) & 476b4: 2005 movel %d5,%d0 <== NOT EXECUTED 476b6: 5880 addql #4,%d0 <== NOT EXECUTED 476b8: 72fc moveq #-4,%d1 <== NOT EXECUTED 476ba: 2149 001e movel %a1,%a0@(30) <== NOT EXECUTED 476be: c081 andl %d1,%d0 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 476c0: 43e8 001e lea %a0@(30),%a1 <== NOT EXECUTED ~(OBJECTS_NAME_ALIGNMENT-1); information->name_length = name_length; 476c4: 3140 0036 movew %d0,%a0@(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; 476c8: 42a8 0022 clrl %a0@(34) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 476cc: 2149 0026 movel %a1,%a0@(38) <== NOT EXECUTED /* * Initialize objects .. if there are any */ if ( maximum ) { 476d0: 4a86 tstl %d6 <== NOT EXECUTED 476d2: 67d4 beqs 476a8 <_Objects_Initialize_information+0xb0> <== 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 ); 476d4: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED _Chain_Initialize_empty( &information->global_table[ index ] ); } else information->global_table = NULL; #endif } 476d8: 4cd7 007c moveml %sp@,%d2-%d6 <== NOT EXECUTED 476dc: 4e5e unlk %fp <== NOT EXECUTED /* * Reset the maximum value. It will be updated when the information is * extended. */ information->maximum = 0; 476de: 4240 clrw %d0 <== NOT EXECUTED 476e0: 3140 000e movew %d0,%a0@(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 ); 476e4: 4ef9 0004 7120 jmp 47120 <_Objects_Extend_information> <== NOT EXECUTED ... 00052ce8 <_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 ) { 52ce8: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 52cec: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 52cf0: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 52cf4: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED uint32_t index; uint32_t name_length; /* ASSERT: information->is_string == TRUE */ if ( !id ) 52cf8: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 52cfc: 676a beqs 52d68 <_Objects_Name_to_id_string+0x80> <== NOT EXECUTED return OBJECTS_INVALID_ADDRESS; if ( !name ) 52cfe: 4a84 tstl %d4 <== NOT EXECUTED 52d00: 6748 beqs 52d4a <_Objects_Name_to_id_string+0x62> <== NOT EXECUTED return OBJECTS_INVALID_NAME; if ( information->maximum != 0 ) { 52d02: 302c 000e movew %a4@(14),%d0 <== NOT EXECUTED 52d06: 6742 beqs 52d4a <_Objects_Name_to_id_string+0x62> <== NOT EXECUTED name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 52d08: 4283 clrl %d3 <== NOT EXECUTED 52d0a: 3600 movew %d0,%d3 <== NOT EXECUTED 52d0c: 4a83 tstl %d3 <== NOT EXECUTED 52d0e: 673a beqs 52d4a <_Objects_Name_to_id_string+0x62> <== NOT EXECUTED 52d10: 266c 001a moveal %a4@(26),%a3 <== NOT EXECUTED 52d14: 7401 moveq #1,%d2 <== NOT EXECUTED 52d16: 588b addql #4,%a3 <== NOT EXECUTED continue; if ( !the_object->name.name_p ) continue; if (!strncmp( name, the_object->name.name_p, information->name_length)) { 52d18: 4bf9 0005 5cf0 lea 55cf0 ,%a5 <== NOT EXECUTED if ( information->maximum != 0 ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { the_object = information->local_table[ index ]; 52d1e: 2453 moveal %a3@,%a2 <== NOT EXECUTED return OBJECTS_INVALID_NAME; if ( information->maximum != 0 ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 52d20: 5282 addql #1,%d2 <== NOT EXECUTED 52d22: 588b addql #4,%a3 <== NOT EXECUTED the_object = information->local_table[ index ]; if ( !the_object ) 52d24: 4a8a tstl %a2 <== NOT EXECUTED 52d26: 671e beqs 52d46 <_Objects_Name_to_id_string+0x5e> <== NOT EXECUTED continue; if ( !the_object->name.name_p ) 52d28: 222a 000c movel %a2@(12),%d1 <== NOT EXECUTED 52d2c: 6718 beqs 52d46 <_Objects_Name_to_id_string+0x5e> <== NOT EXECUTED continue; if (!strncmp( name, the_object->name.name_p, information->name_length)) { 52d2e: 4280 clrl %d0 <== NOT EXECUTED 52d30: 302c 0036 movew %a4@(54),%d0 <== NOT EXECUTED 52d34: 2f00 movel %d0,%sp@- <== NOT EXECUTED 52d36: 2f01 movel %d1,%sp@- <== NOT EXECUTED 52d38: 2f04 movel %d4,%sp@- <== NOT EXECUTED 52d3a: 4e95 jsr %a5@ <== NOT EXECUTED 52d3c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 52d42: 4a80 tstl %d0 <== NOT EXECUTED 52d44: 6710 beqs 52d56 <_Objects_Name_to_id_string+0x6e> <== NOT EXECUTED return OBJECTS_INVALID_NAME; if ( information->maximum != 0 ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 52d46: b682 cmpl %d2,%d3 <== NOT EXECUTED 52d48: 64d4 bccs 52d1e <_Objects_Name_to_id_string+0x36> <== NOT EXECUTED } } } return OBJECTS_INVALID_NAME; } 52d4a: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 52d50: 4e5e unlk %fp <== NOT EXECUTED return OBJECTS_INVALID_NAME; if ( information->maximum != 0 ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 52d52: 7001 moveq #1,%d0 <== NOT EXECUTED } } } return OBJECTS_INVALID_NAME; } 52d54: 4e75 rts <== NOT EXECUTED if ( !the_object->name.name_p ) continue; if (!strncmp( name, the_object->name.name_p, information->name_length)) { *id = the_object->id; 52d56: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 52d5a: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED } } } return OBJECTS_INVALID_NAME; } 52d5e: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 52d64: 4e5e unlk %fp <== NOT EXECUTED 52d66: 4e75 rts <== NOT EXECUTED 52d68: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 52d6e: 4e5e unlk %fp <== NOT EXECUTED uint32_t index; uint32_t name_length; /* ASSERT: information->is_string == TRUE */ if ( !id ) 52d70: 7002 moveq #2,%d0 <== NOT EXECUTED } } } return OBJECTS_INVALID_NAME; } 52d72: 4e75 rts 0004771c <_Objects_Name_to_id_u32>: Objects_Information *information, uint32_t name, uint32_t node, Objects_Id *id ) { 4771c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47720: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47722: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Objects_Name name_for_mp; #endif /* ASSERT: information->is_string == FALSE */ if ( !id ) 47726: 4aae 0014 tstl %fp@(20) <== NOT EXECUTED 4772a: 676a beqs 47796 <_Objects_Name_to_id_u32+0x7a> <== NOT EXECUTED return OBJECTS_INVALID_ADDRESS; if ( name == 0 ) 4772c: 4a82 tstl %d2 <== NOT EXECUTED 4772e: 6738 beqs 47768 <_Objects_Name_to_id_u32+0x4c> <== NOT EXECUTED return OBJECTS_INVALID_NAME; search_local_node = FALSE; if ( information->maximum != 0 && 47730: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 47734: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 47738: 672e beqs 47768 <_Objects_Name_to_id_u32+0x4c> <== NOT EXECUTED 4773a: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 4773e: 6630 bnes 47770 <_Objects_Name_to_id_u32+0x54> <== NOT EXECUTED search_local_node = TRUE; if ( search_local_node ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 47740: 4281 clrl %d1 <== NOT EXECUTED 47742: 3200 movew %d0,%d1 <== NOT EXECUTED 47744: 4a81 tstl %d1 <== NOT EXECUTED 47746: 6720 beqs 47768 <_Objects_Name_to_id_u32+0x4c> <== NOT EXECUTED if ( name == 0 ) return OBJECTS_INVALID_NAME; search_local_node = FALSE; if ( information->maximum != 0 && 47748: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4774c: 2268 001a moveal %a0@(26),%a1 <== NOT EXECUTED 47750: 7001 moveq #1,%d0 <== NOT EXECUTED 47752: 5889 addql #4,%a1 <== NOT EXECUTED if ( search_local_node ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { the_object = information->local_table[ index ]; 47754: 2051 moveal %a1@,%a0 <== NOT EXECUTED search_local_node = TRUE; if ( search_local_node ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 47756: 5280 addql #1,%d0 <== NOT EXECUTED 47758: 5889 addql #4,%a1 <== NOT EXECUTED the_object = information->local_table[ index ]; if ( !the_object ) 4775a: 4a88 tstl %a0 <== NOT EXECUTED 4775c: 6706 beqs 47764 <_Objects_Name_to_id_u32+0x48> <== NOT EXECUTED continue; if ( name == the_object->name.name_u32 ) { 4775e: b4a8 000c cmpl %a0@(12),%d2 <== NOT EXECUTED 47762: 6722 beqs 47786 <_Objects_Name_to_id_u32+0x6a> <== NOT EXECUTED search_local_node = TRUE; if ( search_local_node ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 47764: b280 cmpl %d0,%d1 <== NOT EXECUTED 47766: 64ec bccs 47754 <_Objects_Name_to_id_u32+0x38> <== NOT EXECUTED 47768: 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 } 4776a: 241f movel %sp@+,%d2 <== NOT EXECUTED 4776c: 4e5e unlk %fp <== NOT EXECUTED 4776e: 4e75 rts <== NOT EXECUTED if ( name == 0 ) return OBJECTS_INVALID_NAME; search_local_node = FALSE; if ( information->maximum != 0 && 47770: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED 47774: b3fc 7fff ffff cmpal #2147483647,%a1 <== NOT EXECUTED 4777a: 67c4 beqs 47740 <_Objects_Name_to_id_u32+0x24> <== NOT EXECUTED 4777c: 7201 moveq #1,%d1 <== NOT EXECUTED 4777e: b289 cmpl %a1,%d1 <== NOT EXECUTED 47780: 67be beqs 47740 <_Objects_Name_to_id_u32+0x24> <== NOT EXECUTED search_local_node = TRUE; if ( search_local_node ) { name_length = information->name_length; for ( index = 1; index <= information->maximum; index++ ) { 47782: 7001 moveq #1,%d0 <== NOT EXECUTED 47784: 60e4 bras 4776a <_Objects_Name_to_id_u32+0x4e> <== NOT EXECUTED the_object = information->local_table[ index ]; if ( !the_object ) continue; if ( name == the_object->name.name_u32 ) { *id = the_object->id; 47786: 226e 0014 moveal %fp@(20),%a1 <== 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 } 4778a: 241f movel %sp@+,%d2 <== NOT EXECUTED the_object = information->local_table[ index ]; if ( !the_object ) continue; if ( name == the_object->name.name_u32 ) { *id = the_object->id; 4778c: 22a8 0008 movel %a0@(8),%a1@ <== 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 } 47790: 4e5e unlk %fp <== NOT EXECUTED the_object = information->local_table[ index ]; if ( !the_object ) continue; if ( name == the_object->name.name_u32 ) { *id = the_object->id; 47792: 4280 clrl %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 } 47794: 4e75 rts <== NOT EXECUTED 47796: 241f movel %sp@+,%d2 <== NOT EXECUTED 47798: 4e5e unlk %fp <== NOT EXECUTED Objects_Name name_for_mp; #endif /* ASSERT: information->is_string == FALSE */ if ( !id ) 4779a: 7002 moveq #2,%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 } 4779c: 4e75 rts <== NOT EXECUTED ... 000476ec <_Objects_Namespace_remove>: void _Objects_Namespace_remove( Objects_Information *information, Objects_Control *the_object ) { 476ec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 476f0: 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 ) 476f2: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED void _Objects_Namespace_remove( Objects_Information *information, Objects_Control *the_object ) { 476f6: 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 ) 476fa: 4a28 0034 tstb %a0@(52) <== NOT EXECUTED 476fe: 6710 beqs 47710 <_Objects_Namespace_remove+0x24> <== NOT EXECUTED 47700: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 47704: 670a beqs 47710 <_Objects_Namespace_remove+0x24> <== NOT EXECUTED _Workspace_Free( (void *)the_object->name.name_p ); 47706: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47708: 4eb9 0004 928c jsr 4928c <_Workspace_Free> <== NOT EXECUTED 4770e: 588f addql #4,%sp <== NOT EXECUTED /* * Clear out either format. */ the_object->name.name_p = NULL; the_object->name.name_u32 = 0; 47710: 42aa 000c clrl %a2@(12) <== NOT EXECUTED } 47714: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47718: 4e5e unlk %fp <== NOT EXECUTED 4771a: 4e75 rts 00047b28 <_Objects_Set_name>: bool _Objects_Set_name( Objects_Information *information, Objects_Control *the_object, const char *name ) { 47b28: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 47b2c: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 47b30: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED size_t length; const char *s; s = name; length = strnlen( name, information->name_length ) + 1; 47b34: 4280 clrl %d0 <== NOT EXECUTED 47b36: 302a 0036 movew %a2@(54),%d0 <== NOT EXECUTED 47b3a: 2f00 movel %d0,%sp@- <== NOT EXECUTED bool _Objects_Set_name( Objects_Information *information, Objects_Control *the_object, const char *name ) { 47b3c: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 47b40: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED size_t length; const char *s; s = name; length = strnlen( name, information->name_length ) + 1; 47b44: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47b46: 4eb9 0004 f5d4 jsr 4f5d4 <== NOT EXECUTED 47b4c: 2400 movel %d0,%d2 <== NOT EXECUTED if ( information->is_string ) { 47b4e: 508f addql #8,%sp <== NOT EXECUTED { size_t length; const char *s; s = name; length = strnlen( name, information->name_length ) + 1; 47b50: 5282 addql #1,%d2 <== NOT EXECUTED if ( information->is_string ) { 47b52: 4a2a 0034 tstb %a2@(52) <== NOT EXECUTED 47b56: 6656 bnes 47bae <_Objects_Set_name+0x86> <== NOT EXECUTED strncpy( d, name, length ); d[ length ] = '\0'; the_object->name.name_p = d; } else { the_object->name.name_u32 = _Objects_Build_name( 47b58: 223c 2020 2020 movel #538976288,%d1 <== NOT EXECUTED 47b5e: 4a82 tstl %d2 <== NOT EXECUTED 47b60: 673c beqs 47b9e <_Objects_Set_name+0x76> <== NOT EXECUTED 47b62: 1013 moveb %a3@,%d0 <== NOT EXECUTED 47b64: 7218 moveq #24,%d1 <== NOT EXECUTED 47b66: 49c0 extbl %d0 <== NOT EXECUTED 47b68: e3a8 lsll %d1,%d0 <== NOT EXECUTED 47b6a: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 47b6e: b282 cmpl %d2,%d1 <== NOT EXECUTED 47b70: 6700 00b0 beqw 47c22 <_Objects_Set_name+0xfa> <== NOT EXECUTED 47b74: 122b 0001 moveb %a3@(1),%d1 <== NOT EXECUTED 47b78: 49c1 extbl %d1 <== NOT EXECUTED 47b7a: 4841 swap %d1 <== NOT EXECUTED 47b7c: 4241 clrw %d1 <== NOT EXECUTED 47b7e: 8280 orl %d0,%d1 <== NOT EXECUTED 47b80: 7002 moveq #2,%d0 <== NOT EXECUTED 47b82: b082 cmpl %d2,%d0 <== NOT EXECUTED 47b84: 6774 beqs 47bfa <_Objects_Set_name+0xd2> <== NOT EXECUTED 47b86: 102b 0002 moveb %a3@(2),%d0 <== NOT EXECUTED 47b8a: 49c0 extbl %d0 <== NOT EXECUTED 47b8c: e188 lsll #8,%d0 <== NOT EXECUTED 47b8e: 8280 orl %d0,%d1 <== NOT EXECUTED 47b90: 7003 moveq #3,%d0 <== NOT EXECUTED 47b92: b082 cmpl %d2,%d0 <== NOT EXECUTED 47b94: 677e beqs 47c14 <_Objects_Set_name+0xec> <== NOT EXECUTED 47b96: 102b 0003 moveb %a3@(3),%d0 <== NOT EXECUTED 47b9a: 49c0 extbl %d0 <== NOT EXECUTED 47b9c: 8280 orl %d0,%d1 <== NOT EXECUTED 47b9e: 7001 moveq #1,%d0 <== NOT EXECUTED 47ba0: 2941 000c movel %d1,%a4@(12) <== NOT EXECUTED ); } return TRUE; } 47ba4: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 47baa: 4e5e unlk %fp <== NOT EXECUTED 47bac: 4e75 rts <== NOT EXECUTED length = strnlen( name, information->name_length ) + 1; if ( information->is_string ) { char *d; d = _Workspace_Allocate( length ); 47bae: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47bb0: 4eb9 0004 9730 jsr 49730 <_Workspace_Allocate> <== NOT EXECUTED if ( !d ) 47bb6: 588f addql #4,%sp <== NOT EXECUTED length = strnlen( name, information->name_length ) + 1; if ( information->is_string ) { char *d; d = _Workspace_Allocate( length ); 47bb8: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !d ) 47bba: 4a80 tstl %d0 <== NOT EXECUTED 47bbc: 674a beqs 47c08 <_Objects_Set_name+0xe0> <== NOT EXECUTED return FALSE; if ( the_object->name.name_p ) { 47bbe: 202c 000c movel %a4@(12),%d0 <== NOT EXECUTED 47bc2: 670e beqs 47bd2 <_Objects_Set_name+0xaa> <== NOT EXECUTED _Workspace_Free( (void *)the_object->name.name_p ); 47bc4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47bc6: 4eb9 0004 9718 jsr 49718 <_Workspace_Free> <== NOT EXECUTED the_object->name.name_p = NULL; 47bcc: 588f addql #4,%sp <== NOT EXECUTED 47bce: 42ac 000c clrl %a4@(12) <== NOT EXECUTED } strncpy( d, name, length ); 47bd2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47bd4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47bd6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47bd8: 4eb9 0004 f548 jsr 4f548 <== NOT EXECUTED d[ length ] = '\0'; 47bde: 4200 clrb %d0 <== NOT EXECUTED 47be0: 1580 2800 moveb %d0,%a2@(00000000,%d2:l) <== NOT EXECUTED the_object->name.name_p = d; 47be4: 294a 000c movel %a2,%a4@(12) <== NOT EXECUTED 47be8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED ); } return TRUE; } 47bee: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 47bf4: 4e5e unlk %fp <== NOT EXECUTED the_object->name.name_p = NULL; } strncpy( d, name, length ); d[ length ] = '\0'; the_object->name.name_p = d; 47bf6: 7001 moveq #1,%d0 <== NOT EXECUTED ); } return TRUE; } 47bf8: 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( 47bfa: 0081 0000 2020 oril #8224,%d1 <== NOT EXECUTED 47c00: 2941 000c movel %d1,%a4@(12) <== NOT EXECUTED 47c04: 7001 moveq #1,%d0 <== NOT EXECUTED 47c06: 609c bras 47ba4 <_Objects_Set_name+0x7c> <== NOT EXECUTED ); } return TRUE; } 47c08: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 47c0e: 4e5e unlk %fp <== NOT EXECUTED if ( information->is_string ) { char *d; d = _Workspace_Allocate( length ); if ( !d ) 47c10: 4200 clrb %d0 <== NOT EXECUTED ); } return TRUE; } 47c12: 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( 47c14: 103c 0020 moveb #32,%d0 <== NOT EXECUTED 47c18: 8280 orl %d0,%d1 <== NOT EXECUTED 47c1a: 2941 000c movel %d1,%a4@(12) <== NOT EXECUTED 47c1e: 7001 moveq #1,%d0 <== NOT EXECUTED 47c20: 6082 bras 47ba4 <_Objects_Set_name+0x7c> <== NOT EXECUTED 47c22: 2200 movel %d0,%d1 <== NOT EXECUTED 47c24: 0081 0020 2020 oril #2105376,%d1 <== NOT EXECUTED 47c2a: 2941 000c movel %d1,%a4@(12) <== NOT EXECUTED 47c2e: 7001 moveq #1,%d0 <== NOT EXECUTED 47c30: 6000 ff72 braw 47ba4 <_Objects_Set_name+0x7c> <== NOT EXECUTED 000477a8 <_Objects_Shrink_information>: */ void _Objects_Shrink_information( Objects_Information *information ) { 477a8: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 477ac: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 477b0: 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; 477b4: 2a2b 0006 movel %a3@(6),%d5 <== 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; 477b8: 282b 0012 movel %a3@(18),%d4 <== NOT EXECUTED 477bc: 4282 clrl %d2 <== NOT EXECUTED 477be: 0285 0000 ffff andil #65535,%d5 <== NOT EXECUTED 477c4: 342b 000e movew %a3@(14),%d2 <== NOT EXECUTED 477c8: 9485 subl %d5,%d2 <== NOT EXECUTED 477ca: 4c44 2002 remul %d4,%d2,%d2 <== NOT EXECUTED for ( block = 0; block < block_count; block++ ) { 477ce: 672c beqs 477fc <_Objects_Shrink_information+0x54> <== NOT EXECUTED if ( information->inactive_per_block[ block ] == information->allocation_size ) { 477d0: 206b 002c moveal %a3@(44),%a0 <== NOT EXECUTED 477d4: b890 cmpl %a0@,%d4 <== NOT EXECUTED 477d6: 672e beqs 47806 <_Objects_Shrink_information+0x5e> <== NOT EXECUTED information->object_blocks[ block ] = NULL; information->inactive_per_block[ block ] = 0; information->inactive -= information->allocation_size; return; 477d8: 7604 moveq #4,%d3 <== NOT EXECUTED 477da: 4280 clrl %d0 <== NOT EXECUTED } index_base += information->allocation_size; 477dc: 2203 movel %d3,%d1 <== NOT EXECUTED 477de: da84 addl %d4,%d5 <== NOT EXECUTED 477e0: 5881 addql #4,%d1 <== 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++ ) { 477e2: 5280 addql #1,%d0 <== NOT EXECUTED 477e4: b082 cmpl %d2,%d0 <== NOT EXECUTED 477e6: 6414 bccs 477fc <_Objects_Shrink_information+0x54> <== NOT EXECUTED if ( information->inactive_per_block[ block ] == information->allocation_size ) { 477e8: b8b0 3800 cmpl %a0@(00000000,%d3:l),%d4 <== NOT EXECUTED 477ec: 671a beqs 47808 <_Objects_Shrink_information+0x60> <== NOT EXECUTED 477ee: 2601 movel %d1,%d3 <== NOT EXECUTED information->inactive -= information->allocation_size; return; } index_base += information->allocation_size; 477f0: 2203 movel %d3,%d1 <== NOT EXECUTED 477f2: da84 addl %d4,%d5 <== NOT EXECUTED 477f4: 5881 addql #4,%d1 <== 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++ ) { 477f6: 5280 addql #1,%d0 <== NOT EXECUTED 477f8: b082 cmpl %d2,%d0 <== NOT EXECUTED 477fa: 65ec bcss 477e8 <_Objects_Shrink_information+0x40> <== NOT EXECUTED return; } index_base += information->allocation_size; } } 477fc: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 47802: 4e5e unlk %fp <== NOT EXECUTED 47804: 4e75 rts <== 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++ ) { if ( information->inactive_per_block[ block ] == information->allocation_size ) { 47806: 4283 clrl %d3 <== 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; 47808: 206b 001e moveal %a3@(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 ); 4780c: 49f9 0004 bb70 lea 4bb70 <_Chain_Extract>,%a4 <== NOT EXECUTED 47812: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED 47816: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED */ do { index = _Objects_Get_index( the_object->id ); if ((index >= index_base) && 4781c: ba81 cmpl %d1,%d5 <== NOT EXECUTED 4781e: 6252 bhis 47872 <_Objects_Shrink_information+0xca> <== NOT EXECUTED 47820: 2005 movel %d5,%d0 <== NOT EXECUTED 47822: d0ab 0012 addl %a3@(18),%d0 <== NOT EXECUTED 47826: b280 cmpl %d0,%d1 <== NOT EXECUTED 47828: 6448 bccs 47872 <_Objects_Shrink_information+0xca> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_last( const Chain_Node *the_node ) { return (the_node->next == NULL); 4782a: 2450 moveal %a0@,%a2 <== 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 ); 4782c: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4782e: 4e94 jsr %a4@ <== NOT EXECUTED 47830: 588f addql #4,%sp <== NOT EXECUTED } else { the_object = (Objects_Control *) the_object->Node.next; } } while ( the_object && !_Chain_Is_last( &the_object->Node ) ); 47832: 204a moveal %a2,%a0 <== NOT EXECUTED 47834: 4a8a tstl %a2 <== NOT EXECUTED 47836: 6704 beqs 4783c <_Objects_Shrink_information+0x94> <== NOT EXECUTED 47838: 4a92 tstl %a2@ <== NOT EXECUTED 4783a: 66d6 bnes 47812 <_Objects_Shrink_information+0x6a> <== NOT EXECUTED /* * Free the memory and reset the structures in the object' information */ _Workspace_Free( information->object_blocks[ block ] ); 4783c: 206b 0030 moveal %a3@(48),%a0 <== NOT EXECUTED 47840: 2f30 3800 movel %a0@(00000000,%d3:l),%sp@- <== NOT EXECUTED 47844: 4eb9 0004 928c jsr 4928c <_Workspace_Free> <== NOT EXECUTED information->object_blocks[ block ] = NULL; information->inactive_per_block[ block ] = 0; 4784a: 206b 002c moveal %a3@(44),%a0 <== NOT EXECUTED 4784e: 42b0 3800 clrl %a0@(00000000,%d3:l) <== NOT EXECUTED information->inactive -= information->allocation_size; 47852: 302b 002a movew %a3@(42),%d0 <== NOT EXECUTED 47856: 90ab 0012 subl %a3@(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; 4785a: 226b 0030 moveal %a3@(48),%a1 <== NOT EXECUTED information->inactive_per_block[ block ] = 0; information->inactive -= information->allocation_size; 4785e: 3740 002a movew %d0,%a3@(42) <== NOT EXECUTED /* * Free the memory and reset the structures in the object' information */ _Workspace_Free( information->object_blocks[ block ] ); information->object_blocks[ block ] = NULL; 47862: 42b1 3800 clrl %a1@(00000000,%d3:l) <== NOT EXECUTED information->inactive_per_block[ block ] = 0; information->inactive -= information->allocation_size; 47866: 588f addql #4,%sp <== NOT EXECUTED return; } index_base += information->allocation_size; } } 47868: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4786e: 4e5e unlk %fp <== NOT EXECUTED 47870: 4e75 rts <== NOT EXECUTED the_object = NULL; _Chain_Extract( &extract_me->Node ); } else { the_object = (Objects_Control *) the_object->Node.next; 47872: 2450 moveal %a0@,%a2 <== NOT EXECUTED 47874: 60bc bras 47832 <_Objects_Shrink_information+0x8a> <== NOT EXECUTED ... 00046478 <_POSIX_API_Initialize>: void _POSIX_API_Initialize( rtems_configuration_table *configuration_table ) { 46478: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4647c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46480: 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; 46482: 2468 0042 moveal %a0@(66),%a2 <== NOT EXECUTED if ( !api_configuration ) 46486: 4a8a tstl %a2 <== NOT EXECUTED 46488: 6700 0096 beqw 46520 <_POSIX_API_Initialize+0xa8> <== NOT EXECUTED api_configuration = &_POSIX_Default_configuration; _Objects_Information_table[OBJECTS_POSIX_API] = _POSIX_Objects; _POSIX_signals_Manager_Initialization( 4648c: 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; 46490: 203c 0005 a08e movel #368782,%d0 <== NOT EXECUTED 46496: 23c0 0005 9c40 movel %d0,59c40 <_Objects_Information_table+0xc> <== NOT EXECUTED _POSIX_signals_Manager_Initialization( 4649c: 4eb9 0004 b0d4 jsr 4b0d4 <_POSIX_signals_Manager_Initialization> <== NOT EXECUTED api_configuration->maximum_queued_signals ); _POSIX_Threads_Manager_initialization( 464a2: 2f2a 0030 movel %a2@(48),%sp@- <== NOT EXECUTED 464a6: 2f2a 002c movel %a2@(44),%sp@- <== NOT EXECUTED 464aa: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 464ac: 4eb9 0004 b2c0 jsr 4b2c0 <_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( 464b2: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 464b6: 4eb9 0004 af70 jsr 4af70 <_POSIX_Condition_variables_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_condition_variables ); _POSIX_Key_Manager_initialization( api_configuration->maximum_keys ); 464bc: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 464c0: 4eb9 0004 afa4 jsr 4afa4 <_POSIX_Key_Manager_initialization> <== NOT EXECUTED _POSIX_Mutex_Manager_initialization( 464c6: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED 464ca: 4eb9 0004 b038 jsr 4b038 <_POSIX_Mutex_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_mutexes ); _POSIX_Message_queue_Manager_initialization( 464d0: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 464d4: 4eb9 0004 afd8 jsr 4afd8 <_POSIX_Message_queue_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_message_queues ); _POSIX_Semaphore_Manager_initialization( 464da: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 464e0: 2eaa 001c movel %a2@(28),%sp@ <== NOT EXECUTED 464e4: 4eb9 0004 b664 jsr 4b664 <_POSIX_Semaphore_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_semaphores ); _POSIX_Timer_Manager_initialization( api_configuration->maximum_timers ); 464ea: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 464ee: 4eb9 0004 b630 jsr 4b630 <_POSIX_Timer_Manager_initialization> <== NOT EXECUTED _POSIX_Barrier_Manager_initialization( api_configuration->maximum_barriers ); 464f4: 2f2a 0020 movel %a2@(32),%sp@- <== NOT EXECUTED 464f8: 4eb9 0004 b06c jsr 4b06c <_POSIX_Barrier_Manager_initialization> <== NOT EXECUTED _POSIX_RWLock_Manager_initialization( api_configuration->maximum_rwlocks ); 464fe: 2f2a 0024 movel %a2@(36),%sp@- <== NOT EXECUTED 46502: 4eb9 0004 b0a0 jsr 4b0a0 <_POSIX_RWLock_Manager_initialization> <== NOT EXECUTED _POSIX_Spinlock_Manager_initialization(api_configuration->maximum_spinlocks); 46508: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4650e: 2d6a 0028 0008 movel %a2@(40),%fp@(8) <== NOT EXECUTED } 46514: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46518: 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); 4651a: 4ef9 0004 b274 jmp 4b274 <_POSIX_Spinlock_Manager_initialization> <== 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; if ( !api_configuration ) 46520: 45f9 0005 6f16 lea 56f16 <_POSIX_Default_configuration>,%a2 <== NOT EXECUTED api_configuration = &_POSIX_Default_configuration; _Objects_Information_table[OBJECTS_POSIX_API] = _POSIX_Objects; _POSIX_signals_Manager_Initialization( 46526: 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; 4652a: 203c 0005 a08e movel #368782,%d0 <== NOT EXECUTED 46530: 23c0 0005 9c40 movel %d0,59c40 <_Objects_Information_table+0xc> <== NOT EXECUTED _POSIX_signals_Manager_Initialization( 46536: 4eb9 0004 b0d4 jsr 4b0d4 <_POSIX_signals_Manager_Initialization> <== NOT EXECUTED api_configuration->maximum_queued_signals ); _POSIX_Threads_Manager_initialization( 4653c: 2f2a 0030 movel %a2@(48),%sp@- <== NOT EXECUTED 46540: 2f2a 002c movel %a2@(44),%sp@- <== NOT EXECUTED 46544: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 46546: 4eb9 0004 b2c0 jsr 4b2c0 <_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( 4654c: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 46550: 4eb9 0004 af70 jsr 4af70 <_POSIX_Condition_variables_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_condition_variables ); _POSIX_Key_Manager_initialization( api_configuration->maximum_keys ); 46556: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 4655a: 4eb9 0004 afa4 jsr 4afa4 <_POSIX_Key_Manager_initialization> <== NOT EXECUTED _POSIX_Mutex_Manager_initialization( 46560: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED 46564: 4eb9 0004 b038 jsr 4b038 <_POSIX_Mutex_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_mutexes ); _POSIX_Message_queue_Manager_initialization( 4656a: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 4656e: 4eb9 0004 afd8 jsr 4afd8 <_POSIX_Message_queue_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_message_queues ); _POSIX_Semaphore_Manager_initialization( 46574: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 4657a: 2eaa 001c movel %a2@(28),%sp@ <== NOT EXECUTED 4657e: 4eb9 0004 b664 jsr 4b664 <_POSIX_Semaphore_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_semaphores ); _POSIX_Timer_Manager_initialization( api_configuration->maximum_timers ); 46584: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 46588: 4eb9 0004 b630 jsr 4b630 <_POSIX_Timer_Manager_initialization> <== NOT EXECUTED _POSIX_Barrier_Manager_initialization( api_configuration->maximum_barriers ); 4658e: 2f2a 0020 movel %a2@(32),%sp@- <== NOT EXECUTED 46592: 4eb9 0004 b06c jsr 4b06c <_POSIX_Barrier_Manager_initialization> <== NOT EXECUTED _POSIX_RWLock_Manager_initialization( api_configuration->maximum_rwlocks ); 46598: 2f2a 0024 movel %a2@(36),%sp@- <== NOT EXECUTED 4659c: 4eb9 0004 b0a0 jsr 4b0a0 <_POSIX_RWLock_Manager_initialization> <== NOT EXECUTED _POSIX_Spinlock_Manager_initialization(api_configuration->maximum_spinlocks); 465a2: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 465a8: 2d6a 0028 0008 movel %a2@(40),%fp@(8) <== NOT EXECUTED } 465ae: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 465b2: 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); 465b4: 4ef9 0004 b274 jmp 4b274 <_POSIX_Spinlock_Manager_initialization> <== NOT EXECUTED ... 00047b8c <_POSIX_Absolute_timeout_to_ticks>: */ POSIX_Absolute_timeout_conversion_results_t _POSIX_Absolute_timeout_to_ticks( const struct timespec *abstime, Watchdog_Interval *ticks_out ) { 47b8c: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 47b90: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 47b94: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 47b98: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED *ticks_out = 0; /* * Is the absolute time even valid? */ if ( !_Timespec_Is_valid(abstime) ) 47b9c: 2f03 movel %d3,%sp@- <== NOT EXECUTED /* * Make sure there is always a value returned. */ *ticks_out = 0; 47b9e: 4292 clrl %a2@ <== NOT EXECUTED /* * Is the absolute time even valid? */ if ( !_Timespec_Is_valid(abstime) ) 47ba0: 4eb9 0004 c054 jsr 4c054 <_Timespec_Is_valid> <== NOT EXECUTED 47ba6: 588f addql #4,%sp <== NOT EXECUTED 47ba8: 4a00 tstb %d0 <== NOT EXECUTED 47baa: 660e bnes 47bba <_POSIX_Absolute_timeout_to_ticks+0x2e> <== NOT EXECUTED /* * This is the case we were expecting and it took this long to * get here. */ return POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE; } 47bac: 4cee 041c ffe0 moveml %fp@(-32),%d2-%d4/%a2 <== NOT EXECUTED *ticks_out = 0; /* * Is the absolute time even valid? */ if ( !_Timespec_Is_valid(abstime) ) 47bb2: 4281 clrl %d1 <== NOT EXECUTED /* * This is the case we were expecting and it took this long to * get here. */ return POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE; } 47bb4: 4e5e unlk %fp <== NOT EXECUTED 47bb6: 2001 movel %d1,%d0 <== NOT EXECUTED 47bb8: 4e75 rts <== NOT EXECUTED return POSIX_ABSOLUTE_TIMEOUT_INVALID; /* * Is the absolute time in the past? */ _TOD_Get( ¤t_time ); 47bba: 280e movel %fp,%d4 <== NOT EXECUTED 47bbc: 5184 subql #8,%d4 <== NOT EXECUTED 47bbe: 2f04 movel %d4,%sp@- <== NOT EXECUTED 47bc0: 4eb9 0004 9f80 jsr 49f80 <_TOD_Get> <== NOT EXECUTED if ( _Timespec_Less_than( abstime, ¤t_time ) ) 47bc6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 47bc8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47bca: 4eb9 0004 c080 jsr 4c080 <_Timespec_Less_than> <== NOT EXECUTED 47bd0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 47bd6: 4a00 tstb %d0 <== NOT EXECUTED 47bd8: 670e beqs 47be8 <_POSIX_Absolute_timeout_to_ticks+0x5c> <== NOT EXECUTED /* * This is the case we were expecting and it took this long to * get here. */ return POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE; } 47bda: 4cee 041c ffe0 moveml %fp@(-32),%d2-%d4/%a2 <== NOT EXECUTED /* * Is the absolute time in the past? */ _TOD_Get( ¤t_time ); if ( _Timespec_Less_than( abstime, ¤t_time ) ) 47be0: 7201 moveq #1,%d1 <== NOT EXECUTED /* * This is the case we were expecting and it took this long to * get here. */ return POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE; } 47be2: 4e5e unlk %fp <== NOT EXECUTED 47be4: 2001 movel %d1,%d0 <== NOT EXECUTED 47be6: 4e75 rts <== NOT EXECUTED return POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST; /* * How long until the requested absolute time? */ _Timespec_Subtract( ¤t_time, abstime, &difference ); 47be8: 240e movel %fp,%d2 <== NOT EXECUTED 47bea: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 47bf0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47bf2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47bf4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 47bf6: 4eb9 0004 c0b4 jsr 4c0b4 <_Timespec_Subtract> <== NOT EXECUTED /* * Internally the SuperCore uses ticks, so convert to them. */ *ticks_out = _Timespec_To_ticks( &difference ); 47bfc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47bfe: 4eb9 0004 c108 jsr 4c108 <_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 ) 47c04: 4a80 tstl %d0 <== NOT EXECUTED 47c06: 57c1 seq %d1 <== NOT EXECUTED _Timespec_Subtract( ¤t_time, abstime, &difference ); /* * Internally the SuperCore uses ticks, so convert to them. */ *ticks_out = _Timespec_To_ticks( &difference ); 47c08: 2480 movel %d0,%a2@ <== NOT EXECUTED /* * If the difference was 0, then the future is now. It is so bright * we better wear shades. */ if ( !*ticks_out ) 47c0a: 49c1 extbl %d1 <== NOT EXECUTED 47c0c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED /* * This is the case we were expecting and it took this long to * get here. */ return POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE; } 47c12: 4cee 041c ffe0 moveml %fp@(-32),%d2-%d4/%a2 <== NOT EXECUTED /* * If the difference was 0, then the future is now. It is so bright * we better wear shades. */ if ( !*ticks_out ) 47c18: 5681 addql #3,%d1 <== NOT EXECUTED /* * This is the case we were expecting and it took this long to * get here. */ return POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE; } 47c1a: 4e5e unlk %fp <== NOT EXECUTED 47c1c: 2001 movel %d1,%d0 <== NOT EXECUTED 47c1e: 4e75 rts 0004b06c <_POSIX_Barrier_Manager_initialization>: */ void _POSIX_Barrier_Manager_initialization( uint32_t maximum_barriers ) { 4b06c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b070: 4878 00ff pea ff <== NOT EXECUTED 4b074: 4878 0001 pea 1 <== NOT EXECUTED 4b078: 4878 005c pea 5c <== NOT EXECUTED 4b07c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b080: 4878 000a pea a <== NOT EXECUTED 4b084: 4878 0003 pea 3 <== NOT EXECUTED 4b088: 4879 0005 9fd6 pea 59fd6 <_POSIX_Barrier_Information> <== NOT EXECUTED 4b08e: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b094: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4b09a: 4e5e unlk %fp <== NOT EXECUTED 4b09c: 4e75 rts <== NOT EXECUTED ... 0004c520 <_POSIX_Barrier_Translate_core_barrier_return_code>: int _POSIX_Barrier_Translate_core_barrier_return_code( CORE_barrier_Status the_barrier_status ) { 4c520: 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]; } 4c524: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED int _POSIX_Barrier_Translate_core_barrier_return_code( CORE_barrier_Status the_barrier_status ) { 4c528: 41f9 0005 8990 lea 58990 <_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]; } 4c52e: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 4c532: 4e5e unlk %fp <== NOT EXECUTED 4c534: 4e75 rts <== NOT EXECUTED ... 00046754 <_POSIX_Condition_variables_Get>: POSIX_Condition_variables_Control *_POSIX_Condition_variables_Get ( pthread_cond_t *cond, Objects_Locations *location ) { 46754: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46758: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4675a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Objects_Id *id = (Objects_Id *)cond; int status; if ( !id ) { 4675e: 4a8a tstl %a2 <== NOT EXECUTED 46760: 6754 beqs 467b6 <_POSIX_Condition_variables_Get+0x62> <== NOT EXECUTED *location = OBJECTS_ERROR; return (POSIX_Condition_variables_Control *) 0; } if ( *id == PTHREAD_COND_INITIALIZER ) { 46762: 2012 movel %a2@,%d0 <== NOT EXECUTED 46764: 72ff moveq #-1,%d1 <== NOT EXECUTED 46766: b280 cmpl %d0,%d1 <== NOT EXECUTED 46768: 6720 beqs 4678a <_POSIX_Condition_variables_Get+0x36> <== NOT EXECUTED /* * Now call Objects_Get() */ return (POSIX_Condition_variables_Control *) 4676a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4676e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46770: 4879 0005 dac6 pea 5dac6 <_POSIX_Condition_variables_Information> <== NOT EXECUTED 46776: 4eb9 0004 995c jsr 4995c <_Objects_Get> <== NOT EXECUTED 4677c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED _Objects_Get( &_POSIX_Condition_variables_Information, *id, location ); } 46782: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46786: 4e5e unlk %fp <== NOT EXECUTED 46788: 4e75 rts <== NOT EXECUTED if ( *id == PTHREAD_COND_INITIALIZER ) { /* * Do an "auto-create" here. */ status = pthread_cond_init( (pthread_cond_t *)id, 0 ); 4678a: 42a7 clrl %sp@- <== NOT EXECUTED 4678c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4678e: 4eb9 0004 67c8 jsr 467c8 <== NOT EXECUTED if ( status ) { 46794: 508f addql #8,%sp <== NOT EXECUTED 46796: 4a80 tstl %d0 <== NOT EXECUTED 46798: 661c bnes 467b6 <_POSIX_Condition_variables_Get+0x62> <== NOT EXECUTED 4679a: 2012 movel %a2@,%d0 <== NOT EXECUTED /* * Now call Objects_Get() */ return (POSIX_Condition_variables_Control *) 4679c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 467a0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 467a2: 4879 0005 dac6 pea 5dac6 <_POSIX_Condition_variables_Information> <== NOT EXECUTED 467a8: 4eb9 0004 995c jsr 4995c <_Objects_Get> <== NOT EXECUTED 467ae: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 467b4: 60cc bras 46782 <_POSIX_Condition_variables_Get+0x2e> <== NOT EXECUTED * Do an "auto-create" here. */ status = pthread_cond_init( (pthread_cond_t *)id, 0 ); if ( status ) { *location = OBJECTS_ERROR; 467b6: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED * Now call Objects_Get() */ return (POSIX_Condition_variables_Control *) _Objects_Get( &_POSIX_Condition_variables_Information, *id, location ); } 467ba: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED * Do an "auto-create" here. */ status = pthread_cond_init( (pthread_cond_t *)id, 0 ); if ( status ) { *location = OBJECTS_ERROR; 467be: 7001 moveq #1,%d0 <== NOT EXECUTED 467c0: 2080 movel %d0,%a0@ <== NOT EXECUTED * Now call Objects_Get() */ return (POSIX_Condition_variables_Control *) _Objects_Get( &_POSIX_Condition_variables_Information, *id, location ); } 467c2: 4e5e unlk %fp <== NOT EXECUTED * Do an "auto-create" here. */ status = pthread_cond_init( (pthread_cond_t *)id, 0 ); if ( status ) { *location = OBJECTS_ERROR; 467c4: 4280 clrl %d0 <== NOT EXECUTED * Now call Objects_Get() */ return (POSIX_Condition_variables_Control *) _Objects_Get( &_POSIX_Condition_variables_Information, *id, location ); } 467c6: 4e75 rts 0004af70 <_POSIX_Condition_variables_Manager_initialization>: */ void _POSIX_Condition_variables_Manager_initialization( uint32_t maximum_condition_variables ) { 4af70: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4af74: 4878 00ff pea ff <== NOT EXECUTED 4af78: 4878 0001 pea 1 <== NOT EXECUTED 4af7c: 4878 0058 pea 58 <== NOT EXECUTED 4af80: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4af84: 4878 0008 pea 8 <== NOT EXECUTED 4af88: 4878 0003 pea 3 <== NOT EXECUTED 4af8c: 4879 0005 a052 pea 5a052 <_POSIX_Condition_variables_Information> <== NOT EXECUTED 4af92: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4af98: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4af9e: 4e5e unlk %fp <== NOT EXECUTED 4afa0: 4e75 rts <== NOT EXECUTED ... 00046898 <_POSIX_Condition_variables_Signal_support>: int _POSIX_Condition_variables_Signal_support( pthread_cond_t *cond, bool is_broadcast ) { 46898: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4689c: 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 ); 468a0: 486e fffc pea %fp@(-4) <== NOT EXECUTED int _POSIX_Condition_variables_Signal_support( pthread_cond_t *cond, bool is_broadcast ) { 468a4: 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 ); 468a8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 468ac: 4eb9 0004 6754 jsr 46754 <_POSIX_Condition_variables_Get> <== NOT EXECUTED switch ( location ) { 468b2: 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 ); 468b4: 2640 moveal %d0,%a3 <== NOT EXECUTED switch ( location ) { 468b6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 468ba: 670c beqs 468c8 <_POSIX_Condition_variables_Signal_support+0x30> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 468bc: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 468c2: 4e5e unlk %fp <== NOT EXECUTED register POSIX_Condition_variables_Control *the_cond; Objects_Locations location; Thread_Control *the_thread; the_cond = _POSIX_Condition_variables_Get( cond, &location ); switch ( location ) { 468c4: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 468c6: 4e75 rts <== NOT EXECUTED the_cond = _POSIX_Condition_variables_Get( cond, &location ); switch ( location ) { case OBJECTS_LOCAL: do { the_thread = _Thread_queue_Dequeue( &the_cond->Wait_queue ); 468c8: 2400 movel %d0,%d2 <== NOT EXECUTED 468ca: 0682 0000 0018 addil #24,%d2 <== NOT EXECUTED 468d0: 45f9 0004 a558 lea 4a558 <_Thread_queue_Dequeue>,%a2 <== NOT EXECUTED 468d6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 468d8: 4e92 jsr %a2@ <== NOT EXECUTED if ( !the_thread ) 468da: 588f addql #4,%sp <== NOT EXECUTED 468dc: 4a80 tstl %d0 <== NOT EXECUTED 468de: 671a beqs 468fa <_POSIX_Condition_variables_Signal_support+0x62> <== NOT EXECUTED the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX; } while ( is_broadcast && the_thread ); 468e0: 4a03 tstb %d3 <== NOT EXECUTED 468e2: 6704 beqs 468e8 <_POSIX_Condition_variables_Signal_support+0x50> <== NOT EXECUTED 468e4: 4a80 tstl %d0 <== NOT EXECUTED 468e6: 66ee bnes 468d6 <_POSIX_Condition_variables_Signal_support+0x3e> <== NOT EXECUTED _Thread_Enable_dispatch(); 468e8: 4eb9 0004 a15c jsr 4a15c <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 468ee: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 468f4: 4e5e unlk %fp <== NOT EXECUTED the_thread = _Thread_queue_Dequeue( &the_cond->Wait_queue ); if ( !the_thread ) the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX; } while ( is_broadcast && the_thread ); _Thread_Enable_dispatch(); 468f6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 468f8: 4e75 rts <== NOT EXECUTED case OBJECTS_LOCAL: do { the_thread = _Thread_queue_Dequeue( &the_cond->Wait_queue ); if ( !the_thread ) the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX; 468fa: 42ab 0014 clrl %a3@(20) <== NOT EXECUTED 468fe: 60e0 bras 468e0 <_POSIX_Condition_variables_Signal_support+0x48> <== NOT EXECUTED 0004698c <_POSIX_Condition_variables_Wait_support>: pthread_cond_t *cond, pthread_mutex_t *mutex, Watchdog_Interval timeout, bool already_timedout ) { 4698c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 46990: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED register POSIX_Condition_variables_Control *the_cond; Objects_Locations location; int status; int mutex_status; if ( !_POSIX_Mutex_Get( mutex, &location ) ) { 46994: 240e movel %fp,%d2 <== NOT EXECUTED 46996: 5982 subql #4,%d2 <== NOT EXECUTED 46998: 2f02 movel %d2,%sp@- <== NOT EXECUTED pthread_cond_t *cond, pthread_mutex_t *mutex, Watchdog_Interval timeout, bool already_timedout ) { 4699a: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED register POSIX_Condition_variables_Control *the_cond; Objects_Locations location; int status; int mutex_status; if ( !_POSIX_Mutex_Get( mutex, &location ) ) { 4699e: 2f0b movel %a3,%sp@- <== NOT EXECUTED pthread_cond_t *cond, pthread_mutex_t *mutex, Watchdog_Interval timeout, bool already_timedout ) { 469a0: 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 ) ) { 469a4: 4eb9 0004 6b84 jsr 46b84 <_POSIX_Mutex_Get> <== NOT EXECUTED 469aa: 508f addql #8,%sp <== NOT EXECUTED 469ac: 4a80 tstl %d0 <== NOT EXECUTED 469ae: 6766 beqs 46a16 <_POSIX_Condition_variables_Wait_support+0x8a> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 469b0: 2039 0005 d6f0 movel 5d6f0 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED return EINVAL; } _Thread_Unnest_dispatch(); the_cond = _POSIX_Condition_variables_Get( cond, &location ); 469b6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 469b8: 5380 subql #1,%d0 <== NOT EXECUTED 469ba: 23c0 0005 d6f0 movel %d0,5d6f0 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 469c0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 469c4: 4eb9 0004 6754 jsr 46754 <_POSIX_Condition_variables_Get> <== NOT EXECUTED switch ( location ) { 469ca: 508f addql #8,%sp <== NOT EXECUTED return EINVAL; } _Thread_Unnest_dispatch(); the_cond = _POSIX_Condition_variables_Get( cond, &location ); 469cc: 2440 moveal %d0,%a2 <== NOT EXECUTED switch ( location ) { 469ce: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 469d2: 6642 bnes 46a16 <_POSIX_Condition_variables_Wait_support+0x8a> <== NOT EXECUTED case OBJECTS_LOCAL: if ( the_cond->Mutex && ( the_cond->Mutex != *mutex ) ) { 469d4: 202a 0014 movel %a2@(20),%d0 <== NOT EXECUTED 469d8: 6718 beqs 469f2 <_POSIX_Condition_variables_Wait_support+0x66> <== NOT EXECUTED 469da: b093 cmpl %a3@,%d0 <== NOT EXECUTED 469dc: 6714 beqs 469f2 <_POSIX_Condition_variables_Wait_support+0x66> <== NOT EXECUTED _Thread_Enable_dispatch(); 469de: 7416 moveq #22,%d2 <== NOT EXECUTED 469e0: 4eb9 0004 a15c jsr 4a15c <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 469e6: 2002 movel %d2,%d0 <== NOT EXECUTED 469e8: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 469ee: 4e5e unlk %fp <== NOT EXECUTED 469f0: 4e75 rts <== NOT EXECUTED if ( the_cond->Mutex && ( the_cond->Mutex != *mutex ) ) { _Thread_Enable_dispatch(); return EINVAL; } (void) pthread_mutex_unlock( mutex ); 469f2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 469f4: 4eb9 0004 6dd0 jsr 46dd0 <== NOT EXECUTED _Thread_Enable_dispatch(); return EINVAL; } */ if ( !already_timedout ) { 469fa: 588f addql #4,%sp <== NOT EXECUTED 469fc: 4a03 tstb %d3 <== NOT EXECUTED 469fe: 6724 beqs 46a24 <_POSIX_Condition_variables_Wait_support+0x98> <== NOT EXECUTED status = _Thread_Executing->Wait.return_code; if ( status && status != ETIMEDOUT ) return status; } else { _Thread_Enable_dispatch(); 46a00: 7474 moveq #116,%d2 <== NOT EXECUTED 46a02: 4eb9 0004 a15c jsr 4a15c <_Thread_Enable_dispatch> <== NOT EXECUTED /* * When we get here the dispatch disable level is 0. */ mutex_status = pthread_mutex_lock( mutex ); 46a08: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46a0a: 4eb9 0004 6d30 jsr 46d30 <== NOT EXECUTED if ( mutex_status ) 46a10: 588f addql #4,%sp <== NOT EXECUTED 46a12: 4a80 tstl %d0 <== NOT EXECUTED 46a14: 67d0 beqs 469e6 <_POSIX_Condition_variables_Wait_support+0x5a> <== NOT EXECUTED 46a16: 7416 moveq #22,%d2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46a18: 2002 movel %d2,%d0 <== NOT EXECUTED 46a1a: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 46a20: 4e5e unlk %fp <== NOT EXECUTED 46a22: 4e75 rts <== NOT EXECUTED if ( !already_timedout ) { the_cond->Mutex = *mutex; _Thread_queue_Enter_critical_section( &the_cond->Wait_queue ); _Thread_Executing->Wait.return_code = 0; 46a24: 2079 0005 d7ae moveal 5d7ae <_Thread_Executing>,%a0 <== NOT EXECUTED _Thread_Executing->Wait.queue = &the_cond->Wait_queue; _Thread_Executing->Wait.id = *cond; 46a2a: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED return EINVAL; } */ if ( !already_timedout ) { the_cond->Mutex = *mutex; 46a2e: 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; 46a32: 200a movel %a2,%d0 <== NOT EXECUTED _Thread_Executing->Wait.id = *cond; 46a34: 2151 0020 movel %a1@,%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; 46a38: 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; 46a3e: 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; 46a40: 42a8 0034 clrl %a0@(52) <== NOT EXECUTED _Thread_Executing->Wait.queue = &the_cond->Wait_queue; 46a44: 2140 0044 movel %d0,%a0@(68) <== NOT EXECUTED 46a48: 2541 0048 movel %d1,%a2@(72) <== NOT EXECUTED _Thread_Executing->Wait.id = *cond; _Thread_queue_Enqueue( &the_cond->Wait_queue, timeout ); 46a4c: 4879 0004 aae0 pea 4aae0 <_Thread_queue_Timeout> <== NOT EXECUTED 46a52: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 46a56: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46a58: 4eb9 0004 a6c0 jsr 4a6c0 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 46a5e: 4eb9 0004 a15c jsr 4a15c <_Thread_Enable_dispatch> <== NOT EXECUTED /* * Switch ourself out because we blocked as a result of the * _Thread_queue_Enqueue. */ status = _Thread_Executing->Wait.return_code; 46a64: 2079 0005 d7ae moveal 5d7ae <_Thread_Executing>,%a0 <== NOT EXECUTED 46a6a: 2428 0034 movel %a0@(52),%d2 <== NOT EXECUTED if ( status && status != ETIMEDOUT ) 46a6e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46a74: 6792 beqs 46a08 <_POSIX_Condition_variables_Wait_support+0x7c> <== NOT EXECUTED 46a76: 7074 moveq #116,%d0 <== NOT EXECUTED 46a78: b082 cmpl %d2,%d0 <== NOT EXECUTED 46a7a: 678c beqs 46a08 <_POSIX_Condition_variables_Wait_support+0x7c> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46a7c: 2002 movel %d2,%d0 <== NOT EXECUTED 46a7e: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 46a84: 4e5e unlk %fp <== NOT EXECUTED 46a86: 4e75 rts 0004afa4 <_POSIX_Key_Manager_initialization>: */ void _POSIX_Key_Manager_initialization( uint32_t maximum_keys ) { 4afa4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4afa8: 4878 00ff pea ff <== NOT EXECUTED 4afac: 4878 0001 pea 1 <== NOT EXECUTED 4afb0: 4878 002a pea 2a <== NOT EXECUTED 4afb4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4afb8: 4878 0002 pea 2 <== NOT EXECUTED 4afbc: 4878 0003 pea 3 <== NOT EXECUTED 4afc0: 4879 0005 a016 pea 5a016 <_POSIX_Keys_Information> <== NOT EXECUTED 4afc6: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4afcc: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4afd2: 4e5e unlk %fp <== NOT EXECUTED 4afd4: 4e75 rts <== NOT EXECUTED ... 0004cb20 <_POSIX_Keys_Run_destructors>: */ void _POSIX_Keys_Run_destructors( Thread_Control *thread ) { 4cb20: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4cb24: 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 ); 4cb28: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED */ void _POSIX_Keys_Run_destructors( Thread_Control *thread ) { 4cb2c: 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 ]; 4cb30: 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); 4cb32: 2800 movel %d0,%d4 <== NOT EXECUTED 4cb34: 7218 moveq #24,%d1 <== NOT EXECUTED 4cb36: e2ac lsrl %d1,%d4 <== NOT EXECUTED 4cb38: 0285 0000 ffff andil #65535,%d5 <== NOT EXECUTED 4cb3e: 7007 moveq #7,%d0 <== NOT EXECUTED 4cb40: c880 andl %d0,%d4 <== NOT EXECUTED 4cb42: e58d lsll #2,%d5 <== NOT EXECUTED 4cb44: 3239 0005 a024 movew 5a024 <_POSIX_Keys_Information+0xe>,%d1 <== NOT EXECUTED 4cb4a: 4286 clrl %d6 <== NOT EXECUTED for ( ; ; ) { are_all_null = TRUE; for ( index=1 ; index <= _POSIX_Keys_Information.maximum ; index++ ) { 4cb4c: 4a41 tstw %d1 <== NOT EXECUTED 4cb4e: 6758 beqs 4cba8 <_POSIX_Keys_Run_destructors+0x88> <== NOT EXECUTED 4cb50: 7401 moveq #1,%d2 <== NOT EXECUTED 4cb52: 7601 moveq #1,%d3 <== NOT EXECUTED the_key = (POSIX_Keys_Control *) 4cb54: 2079 0005 a030 moveal 5a030 <_POSIX_Keys_Information+0x1a>,%a0 <== NOT EXECUTED 4cb5a: 2470 2c00 moveal %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED for ( ; ; ) { are_all_null = TRUE; for ( index=1 ; index <= _POSIX_Keys_Information.maximum ; index++ ) { 4cb5e: 5282 addql #1,%d2 <== NOT EXECUTED the_key = (POSIX_Keys_Control *) _POSIX_Keys_Information.local_table[ index ]; if ( the_key && the_key->is_active && the_key->destructor ) { 4cb60: 4a8a tstl %a2 <== NOT EXECUTED 4cb62: 672a beqs 4cb8e <_POSIX_Keys_Run_destructors+0x6e> <== NOT EXECUTED 4cb64: 4a2a 0010 tstb %a2@(16) <== NOT EXECUTED 4cb68: 6724 beqs 4cb8e <_POSIX_Keys_Run_destructors+0x6e> <== NOT EXECUTED 4cb6a: 226a 0012 moveal %a2@(18),%a1 <== NOT EXECUTED 4cb6e: 4a89 tstl %a1 <== NOT EXECUTED 4cb70: 671c beqs 4cb8e <_POSIX_Keys_Run_destructors+0x6e> <== NOT EXECUTED value = the_key->Values[ thread_api ][ thread_index ]; 4cb72: 2072 4c16 moveal %a2@(00000016,%d4:l:4),%a0 <== NOT EXECUTED 4cb76: 2030 5800 movel %a0@(00000000,%d5:l),%d0 <== NOT EXECUTED if ( value ) { 4cb7a: 6712 beqs 4cb8e <_POSIX_Keys_Run_destructors+0x6e> <== NOT EXECUTED (*the_key->destructor)( value ); 4cb7c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4cb7e: 4e91 jsr %a1@ <== NOT EXECUTED if ( the_key->Values[ thread_api ][ thread_index ] ) 4cb80: 588f addql #4,%sp <== NOT EXECUTED 4cb82: 2072 4c16 moveal %a2@(00000016,%d4:l:4),%a0 <== NOT EXECUTED 4cb86: 4ab0 5800 tstl %a0@(00000000,%d5:l) <== NOT EXECUTED 4cb8a: 57c0 seq %d0 <== NOT EXECUTED 4cb8c: c680 andl %d0,%d3 <== NOT EXECUTED for ( ; ; ) { are_all_null = TRUE; for ( index=1 ; index <= _POSIX_Keys_Information.maximum ; index++ ) { 4cb8e: 3239 0005 a024 movew 5a024 <_POSIX_Keys_Information+0xe>,%d1 <== NOT EXECUTED 4cb94: 4280 clrl %d0 <== NOT EXECUTED 4cb96: 3001 movew %d1,%d0 <== NOT EXECUTED 4cb98: b480 cmpl %d0,%d2 <== NOT EXECUTED 4cb9a: 63b8 blss 4cb54 <_POSIX_Keys_Run_destructors+0x34> <== NOT EXECUTED are_all_null = FALSE; } } } if ( are_all_null == TRUE ) 4cb9c: 4a03 tstb %d3 <== NOT EXECUTED 4cb9e: 6608 bnes 4cba8 <_POSIX_Keys_Run_destructors+0x88> <== NOT EXECUTED return; iterations++; 4cba0: 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 ) 4cba2: 7004 moveq #4,%d0 <== NOT EXECUTED 4cba4: b086 cmpl %d6,%d0 <== NOT EXECUTED 4cba6: 66a4 bnes 4cb4c <_POSIX_Keys_Run_destructors+0x2c> <== NOT EXECUTED return; } } 4cba8: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 4cbae: 4e5e unlk %fp <== NOT EXECUTED 4cbb0: 4e75 rts <== NOT EXECUTED ... 00051a28 <_POSIX_Message_queue_Create_support>: const char *name_arg, int pshared, struct mq_attr *attr_ptr, POSIX_Message_queue_Control **message_queue ) { 51a28: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 51a2c: 48d7 043c moveml %d2-%d5/%a2,%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 ); 51a30: 4878 00ff pea ff <== NOT EXECUTED const char *name_arg, int pshared, struct mq_attr *attr_ptr, POSIX_Message_queue_Control **message_queue ) { 51a34: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 51a38: 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 ); 51a3c: 2f05 movel %d5,%sp@- <== NOT EXECUTED 51a3e: 4eb9 0005 5e58 jsr 55e58 <== NOT EXECUTED if ( n > NAME_MAX ) 51a44: 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 ); 51a46: 2400 movel %d0,%d2 <== NOT EXECUTED if ( n > NAME_MAX ) 51a48: 0c80 0000 00ff cmpil #255,%d0 <== NOT EXECUTED 51a4e: 6200 00b6 bhiw 51b06 <_POSIX_Message_queue_Create_support+0xde> <== NOT EXECUTED 51a52: 2039 0006 3118 movel 63118 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 51a58: 5280 addql #1,%d0 <== NOT EXECUTED 51a5a: 23c0 0006 3118 movel %d0,63118 <_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 ) { 51a60: 4a8a tstl %a2 <== NOT EXECUTED 51a62: 6700 00ae beqw 51b12 <_POSIX_Message_queue_Create_support+0xea> <== NOT EXECUTED attr.mq_maxmsg = 10; attr.mq_msgsize = 16; } else { if ( attr_ptr->mq_maxmsg <= 0 ){ 51a66: 282a 0004 movel %a2@(4),%d4 <== NOT EXECUTED 51a6a: 6f00 00ae blew 51b1a <_POSIX_Message_queue_Create_support+0xf2> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EINVAL ); } if ( attr_ptr->mq_msgsize <= 0 ){ 51a6e: 262a 0008 movel %a2@(8),%d3 <== NOT EXECUTED 51a72: 6f00 00a6 blew 51b1a <_POSIX_Message_queue_Create_support+0xf2> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Allocate( void ) { return (POSIX_Message_queue_Control *) 51a76: 4879 0006 33fa pea 633fa <_POSIX_Message_queue_Information> <== NOT EXECUTED 51a7c: 4eb9 0004 d948 jsr 4d948 <_Objects_Allocate> <== NOT EXECUTED attr = *attr_ptr; } the_mq = _POSIX_Message_queue_Allocate(); if ( !the_mq ) { 51a82: 588f addql #4,%sp <== NOT EXECUTED 51a84: 2440 moveal %d0,%a2 <== NOT EXECUTED 51a86: 4a80 tstl %d0 <== NOT EXECUTED 51a88: 6700 0116 beqw 51ba0 <_POSIX_Message_queue_Create_support+0x178> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENFILE ); } the_mq->process_shared = pshared; the_mq->named = TRUE; the_mq->open_count = 1; 51a8c: 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; 51a8e: 256e 000c 0010 movel %fp@(12),%a2@(16) <== NOT EXECUTED the_mq->named = TRUE; 51a94: 1540 0014 moveb %d0,%a2@(20) <== NOT EXECUTED the_mq->open_count = 1; 51a98: 2540 0016 movel %d0,%a2@(22) <== NOT EXECUTED the_mq->linked = TRUE; 51a9c: 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); 51aa0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 51aa2: 4eb9 0004 fce0 jsr 4fce0 <_Workspace_Allocate> <== NOT EXECUTED if (!name) { 51aa8: 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); 51aaa: 2400 movel %d0,%d2 <== NOT EXECUTED if (!name) { 51aac: 6700 00c4 beqw 51b72 <_POSIX_Message_queue_Create_support+0x14a> <== NOT EXECUTED _POSIX_Message_queue_Free( the_mq ); _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOMEM ); } strcpy( name, name_arg ); 51ab0: 2f05 movel %d5,%sp@- <== NOT EXECUTED 51ab2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 51ab4: 4eb9 0005 5824 jsr 55824 <== 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; 51aba: 42aa 005a clrl %a2@(90) <== NOT EXECUTED if ( ! _CORE_message_queue_Initialize( 51abe: 2f03 movel %d3,%sp@- <== NOT EXECUTED 51ac0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 51ac2: 486a 005a pea %a2@(90) <== NOT EXECUTED 51ac6: 486a 001a pea %a2@(26) <== NOT EXECUTED 51aca: 4eb9 0005 2800 jsr 52800 <_CORE_message_queue_Initialize> <== NOT EXECUTED 51ad0: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 51ad6: 4a00 tstb %d0 <== NOT EXECUTED 51ad8: 675e beqs 51b38 <_POSIX_Message_queue_Create_support+0x110> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 51ada: 2079 0006 3414 moveal 63414 <_POSIX_Message_queue_Information+0x1a>,%a0 <== NOT EXECUTED 51ae0: 4280 clrl %d0 <== NOT EXECUTED 51ae2: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 51ae6: 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; 51aea: 2542 000c movel %d2,%a2@(12) <== NOT EXECUTED &_POSIX_Message_queue_Information, &the_mq->Object, name ); *message_queue = the_mq; 51aee: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 51af2: 208a movel %a2,%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 51af4: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED return 0; } 51afa: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED 51b00: 4e5e unlk %fp <== NOT EXECUTED name ); *message_queue = the_mq; _Thread_Enable_dispatch(); 51b02: 4280 clrl %d0 <== NOT EXECUTED return 0; } 51b04: 4e75 rts <== NOT EXECUTED 51b06: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED 51b0c: 4e5e unlk %fp <== NOT EXECUTED struct mq_attr attr; char *name; size_t n; n = strnlen( name_arg, NAME_MAX ); if ( n > NAME_MAX ) 51b0e: 705b moveq #91,%d0 <== NOT EXECUTED *message_queue = the_mq; _Thread_Enable_dispatch(); return 0; } 51b10: 4e75 rts <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); } if ( attr_ptr->mq_msgsize <= 0 ){ _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EINVAL ); 51b12: 7610 moveq #16,%d3 <== NOT EXECUTED 51b14: 780a moveq #10,%d4 <== NOT EXECUTED 51b16: 6000 ff5e braw 51a76 <_POSIX_Message_queue_Create_support+0x4e> <== NOT EXECUTED 51b1a: 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(); 51b1c: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 51b22: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 51b28: 2040 moveal %d0,%a0 <== NOT EXECUTED 51b2a: 2083 movel %d3,%a0@ <== NOT EXECUTED *message_queue = the_mq; _Thread_Enable_dispatch(); return 0; } 51b2c: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED 51b32: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); } if ( attr_ptr->mq_msgsize <= 0 ){ _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EINVAL ); 51b34: 70ff moveq #-1,%d0 <== NOT EXECUTED *message_queue = the_mq; _Thread_Enable_dispatch(); return 0; } 51b36: 4e75 rts <== 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 ); 51b38: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51b3a: 4879 0006 33fa pea 633fa <_POSIX_Message_queue_Information> <== NOT EXECUTED 51b40: 4eb9 0004 dd08 jsr 4dd08 <_Objects_Free> <== NOT EXECUTED attr.mq_maxmsg, attr.mq_msgsize ) ) { _POSIX_Message_queue_Free( the_mq ); _Workspace_Free(name); 51b46: 2f02 movel %d2,%sp@- <== NOT EXECUTED 51b48: 4eb9 0004 fcc8 jsr 4fcc8 <_Workspace_Free> <== NOT EXECUTED _Thread_Enable_dispatch(); 51b4e: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 51b54: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 51b5a: 2040 moveal %d0,%a0 <== NOT EXECUTED 51b5c: 701c moveq #28,%d0 <== NOT EXECUTED 51b5e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED *message_queue = the_mq; _Thread_Enable_dispatch(); return 0; } 51b64: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED ) ) { _POSIX_Message_queue_Free( the_mq ); _Workspace_Free(name); _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOSPC ); 51b6a: 2080 movel %d0,%a0@ <== NOT EXECUTED *message_queue = the_mq; _Thread_Enable_dispatch(); return 0; } 51b6c: 4e5e unlk %fp <== NOT EXECUTED ) ) { _POSIX_Message_queue_Free( the_mq ); _Workspace_Free(name); _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOSPC ); 51b6e: 70ff moveq #-1,%d0 <== NOT EXECUTED *message_queue = the_mq; _Thread_Enable_dispatch(); return 0; } 51b70: 4e75 rts <== NOT EXECUTED 51b72: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51b74: 4879 0006 33fa pea 633fa <_POSIX_Message_queue_Information> <== NOT EXECUTED 51b7a: 4eb9 0004 dd08 jsr 4dd08 <_Objects_Free> <== NOT EXECUTED */ name = _Workspace_Allocate(n); if (!name) { _POSIX_Message_queue_Free( the_mq ); _Thread_Enable_dispatch(); 51b80: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM ); 51b86: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 51b8c: 508f addql #8,%sp <== NOT EXECUTED *message_queue = the_mq; _Thread_Enable_dispatch(); return 0; } 51b8e: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED name = _Workspace_Allocate(n); if (!name) { _POSIX_Message_queue_Free( the_mq ); _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOMEM ); 51b94: 2040 moveal %d0,%a0 <== NOT EXECUTED 51b96: 720c moveq #12,%d1 <== NOT EXECUTED *message_queue = the_mq; _Thread_Enable_dispatch(); return 0; } 51b98: 4e5e unlk %fp <== NOT EXECUTED name = _Workspace_Allocate(n); if (!name) { _POSIX_Message_queue_Free( the_mq ); _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOMEM ); 51b9a: 70ff moveq #-1,%d0 <== NOT EXECUTED 51b9c: 2081 movel %d1,%a0@ <== NOT EXECUTED *message_queue = the_mq; _Thread_Enable_dispatch(); return 0; } 51b9e: 4e75 rts <== NOT EXECUTED } the_mq = _POSIX_Message_queue_Allocate(); if ( !the_mq ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENFILE ); 51ba0: 7417 moveq #23,%d2 <== NOT EXECUTED attr = *attr_ptr; } the_mq = _POSIX_Message_queue_Allocate(); if ( !the_mq ) { _Thread_Enable_dispatch(); 51ba2: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENFILE ); 51ba8: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 51bae: 2040 moveal %d0,%a0 <== NOT EXECUTED 51bb0: 2082 movel %d2,%a0@ <== NOT EXECUTED *message_queue = the_mq; _Thread_Enable_dispatch(); return 0; } 51bb2: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED 51bb8: 4e5e unlk %fp <== NOT EXECUTED } the_mq = _POSIX_Message_queue_Allocate(); if ( !the_mq ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENFILE ); 51bba: 70ff moveq #-1,%d0 <== NOT EXECUTED *message_queue = the_mq; _Thread_Enable_dispatch(); return 0; } 51bbc: 4e75 rts <== NOT EXECUTED ... 0004a2a8 <_POSIX_Message_queue_Delete>: */ void _POSIX_Message_queue_Delete( POSIX_Message_queue_Control *the_mq ) { 4a2a8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a2ac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a2ae: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( !the_mq->linked && !the_mq->open_count ) { 4a2b2: 4a2a 0015 tstb %a2@(21) <== NOT EXECUTED 4a2b6: 6648 bnes 4a300 <_POSIX_Message_queue_Delete+0x58> <== NOT EXECUTED 4a2b8: 4aaa 0016 tstl %a2@(22) <== NOT EXECUTED 4a2bc: 6642 bnes 4a300 <_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 ) 4a2be: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 4a2c2: 670a beqs 4a2ce <_POSIX_Message_queue_Delete+0x26> <== NOT EXECUTED _Workspace_Free( (void *)the_object->name.name_p ); 4a2c4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a2c6: 4eb9 0004 fcc8 jsr 4fcc8 <_Workspace_Free> <== NOT EXECUTED 4a2cc: 588f addql #4,%sp <== NOT EXECUTED _Objects_Close( &_POSIX_Message_queue_Information, the_object ); 4a2ce: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a2d0: 4879 0006 33fa pea 633fa <_POSIX_Message_queue_Information> <== NOT EXECUTED 4a2d6: 4eb9 0004 d9e4 jsr 4d9e4 <_Objects_Close> <== NOT EXECUTED _CORE_message_queue_Close( 4a2dc: 4878 0005 pea 5 <== NOT EXECUTED 4a2e0: 42a7 clrl %sp@- <== NOT EXECUTED 4a2e2: 486a 001a pea %a2@(26) <== NOT EXECUTED 4a2e6: 4eb9 0004 cdb0 jsr 4cdb0 <_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 ); 4a2ec: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a2ee: 4879 0006 33fa pea 633fa <_POSIX_Message_queue_Information> <== NOT EXECUTED 4a2f4: 4eb9 0004 dd08 jsr 4dd08 <_Objects_Free> <== NOT EXECUTED 4a2fa: dffc 0000 001c addal #28,%sp <== NOT EXECUTED ); _POSIX_Message_queue_Free( the_mq ); } } 4a300: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4a304: 4e5e unlk %fp <== NOT EXECUTED 4a306: 4e75 rts 0004afd8 <_POSIX_Message_queue_Manager_initialization>: */ void _POSIX_Message_queue_Manager_initialization( uint32_t maximum_message_queues ) { 4afd8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4afdc: 2f0a movel %a2,%sp@- <== NOT EXECUTED _Objects_Initialize_information( 4afde: 45f9 0004 75f8 lea 475f8 <_Objects_Initialize_information>,%a2 <== NOT EXECUTED */ void _POSIX_Message_queue_Manager_initialization( uint32_t maximum_message_queues ) { 4afe4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4afe6: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED _Objects_Initialize_information( 4afea: 4878 00ff pea ff <== NOT EXECUTED 4afee: 4878 0001 pea 1 <== NOT EXECUTED 4aff2: 4878 00a2 pea a2 <== NOT EXECUTED 4aff6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4aff8: 4878 0005 pea 5 <== NOT EXECUTED 4affc: 4878 0003 pea 3 <== NOT EXECUTED 4b000: 4879 0005 9f5e pea 59f5e <_POSIX_Message_queue_Information> <== NOT EXECUTED 4b006: 4e92 jsr %a2@ <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); _Objects_Initialize_information( 4b008: 4878 00ff pea ff <== NOT EXECUTED 4b00c: 4878 0001 pea 1 <== NOT EXECUTED 4b010: 4878 0018 pea 18 <== NOT EXECUTED 4b014: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b016: 4878 0004 pea 4 <== NOT EXECUTED 4b01a: 4878 0003 pea 3 <== NOT EXECUTED 4b01e: 4879 0005 a0c6 pea 5a0c6 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4b024: 4e92 jsr %a2@ <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4b026: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4b02a: 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( 4b02e: dffc 0000 0038 addal #56,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4b034: 4e5e unlk %fp <== NOT EXECUTED 4b036: 4e75 rts 00051bc0 <_POSIX_Message_queue_Name_to_id>: int _POSIX_Message_queue_Name_to_id( const char *name, Objects_Id *id ) { 51bc0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 51bc4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51bc6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; if ( !name ) 51bca: 4a8a tstl %a2 <== NOT EXECUTED 51bcc: 6704 beqs 51bd2 <_POSIX_Message_queue_Name_to_id+0x12> <== NOT EXECUTED return EINVAL; if ( !name[0] ) 51bce: 4a12 tstb %a2@ <== NOT EXECUTED 51bd0: 660a bnes 51bdc <_POSIX_Message_queue_Name_to_id+0x1c> <== NOT EXECUTED if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) return 0; return ENOENT; } 51bd2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 51bd6: 4e5e unlk %fp <== NOT EXECUTED return ENAMETOOLONG; status = _Objects_Name_to_id_string( &_POSIX_Message_queue_Information, name, id ); if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) 51bd8: 7016 moveq #22,%d0 <== NOT EXECUTED return 0; return ENOENT; } 51bda: 4e75 rts <== NOT EXECUTED return EINVAL; if ( !name[0] ) return EINVAL; if( strlen(name) > PATH_MAX ) 51bdc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51bde: 4eb9 0005 5cd8 jsr 55cd8 <== NOT EXECUTED 51be4: 588f addql #4,%sp <== NOT EXECUTED 51be6: 0c80 0000 00ff cmpil #255,%d0 <== NOT EXECUTED 51bec: 630a blss 51bf8 <_POSIX_Message_queue_Name_to_id+0x38> <== NOT EXECUTED if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) return 0; return ENOENT; } 51bee: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 51bf2: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; if ( !name[0] ) return EINVAL; if( strlen(name) > PATH_MAX ) 51bf4: 705b moveq #91,%d0 <== NOT EXECUTED if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) return 0; return ENOENT; } 51bf6: 4e75 rts <== NOT EXECUTED return EINVAL; if( strlen(name) > PATH_MAX ) return ENAMETOOLONG; status = _Objects_Name_to_id_string( 51bf8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 51bfc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51bfe: 4879 0006 33fa pea 633fa <_POSIX_Message_queue_Information> <== NOT EXECUTED 51c04: 4eb9 0005 2ce8 jsr 52ce8 <_Objects_Name_to_id_string> <== NOT EXECUTED &_POSIX_Message_queue_Information, name, id ); if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) 51c0a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 51c10: 4a80 tstl %d0 <== NOT EXECUTED 51c12: 670a beqs 51c1e <_POSIX_Message_queue_Name_to_id+0x5e> <== NOT EXECUTED return 0; return ENOENT; } 51c14: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 51c18: 4e5e unlk %fp <== NOT EXECUTED return ENAMETOOLONG; status = _Objects_Name_to_id_string( &_POSIX_Message_queue_Information, name, id ); if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) 51c1a: 7002 moveq #2,%d0 <== NOT EXECUTED return 0; return ENOENT; } 51c1c: 4e75 rts <== NOT EXECUTED 51c1e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 51c22: 4e5e unlk %fp <== NOT EXECUTED return ENAMETOOLONG; status = _Objects_Name_to_id_string( &_POSIX_Message_queue_Information, name, id ); if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) 51c24: 4280 clrl %d0 <== NOT EXECUTED return 0; return ENOENT; } 51c26: 4e75 rts 0004a44e <_POSIX_Message_queue_Notify_handler>: */ void _POSIX_Message_queue_Notify_handler( void *user_data ) { 4a44e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a452: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a454: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4a458: 2f02 movel %d2,%sp@- <== NOT EXECUTED POSIX_Message_queue_Control *the_mq; the_mq = user_data; kill( getpid(), the_mq->notification.sigev_signo ); 4a45a: 242a 0092 movel %a2@(146),%d2 <== NOT EXECUTED 4a45e: 4eb9 0005 1168 jsr 51168 <== NOT EXECUTED 4a464: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a466: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a468: 4eb9 0005 1a10 jsr 51a10 <== NOT EXECUTED the_message_queue->notify_argument = the_argument; 4a46e: 42aa 007e clrl %a2@(126) <== NOT EXECUTED _CORE_message_queue_Set_notify( &the_mq->Message_queue, NULL, NULL ); } 4a472: 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; 4a476: 42aa 007a clrl %a2@(122) <== NOT EXECUTED 4a47a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED the_message_queue->notify_argument = the_argument; 4a47e: 508f addql #8,%sp <== NOT EXECUTED 4a480: 4e5e unlk %fp <== NOT EXECUTED 4a482: 4e75 rts 0004a674 <_POSIX_Message_queue_Receive_support>: size_t msg_len, unsigned int *msg_prio, bool wait, Watchdog_Interval timeout ) { 4a674: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4a678: 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 *) 4a67c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4a680: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4a684: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a686: 246e 0014 moveal %fp@(20),%a2 <== NOT EXECUTED 4a68a: 242e 0018 movel %fp@(24),%d2 <== NOT EXECUTED 4a68e: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a694: 4eb9 0004 de74 jsr 4de74 <_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 ) { 4a69a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a6a0: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a6a2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4a6a6: 6718 beqs 4a6c0 <_POSIX_Message_queue_Receive_support+0x4c> <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a6a8: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED } 4a6ae: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a6b4: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a6b6: 7209 moveq #9,%d1 <== NOT EXECUTED } 4a6b8: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a6ba: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a6bc: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4a6be: 4e75 rts <== 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 ) { 4a6c0: 2228 0014 movel %a0@(20),%d1 <== NOT EXECUTED 4a6c4: 7003 moveq #3,%d0 <== NOT EXECUTED 4a6c6: c081 andl %d1,%d0 <== NOT EXECUTED 4a6c8: 7801 moveq #1,%d4 <== NOT EXECUTED 4a6ca: b880 cmpl %d0,%d4 <== NOT EXECUTED 4a6cc: 6700 00f0 beqw 4a7be <_POSIX_Message_queue_Receive_support+0x14a> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EBADF ); } the_mq = the_mq_fd->Queue; 4a6d0: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED if ( msg_len < the_mq->Message_queue.maximum_message_size ) { 4a6d4: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 4a6d8: b0a8 0066 cmpl %a0@(102),%d0 <== NOT EXECUTED 4a6dc: 6500 009a bcsw 4a778 <_POSIX_Message_queue_Receive_support+0x104> <== NOT EXECUTED length_out = -1; /* * A timed receive with a bad time will do a poll regardless. */ if ( wait ) 4a6e0: 4a02 tstb %d2 <== NOT EXECUTED 4a6e2: 6758 beqs 4a73c <_POSIX_Message_queue_Receive_support+0xc8> <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ _CORE_message_queue_Seize( 4a6e4: 2f2e 001c movel %fp@(28),%sp@- <== NOT EXECUTED length_out = -1; /* * A timed receive with a bad time will do a poll regardless. */ if ( wait ) 4a6e8: 2001 movel %d1,%d0 <== NOT EXECUTED /* * Now if something goes wrong, we return a "length" of -1 * to indicate an error. */ length_out = -1; 4a6ea: 72ff moveq #-1,%d1 <== NOT EXECUTED /* * A timed receive with a bad time will do a poll regardless. */ if ( wait ) 4a6ec: 740e moveq #14,%d2 <== NOT EXECUTED /* * Now if something goes wrong, we return a "length" of -1 * to indicate an error. */ length_out = -1; 4a6ee: 2d41 fff8 movel %d1,%fp@(-8) <== NOT EXECUTED /* * A timed receive with a bad time will do a poll regardless. */ if ( wait ) 4a6f2: 7801 moveq #1,%d4 <== NOT EXECUTED 4a6f4: e4a8 lsrl %d2,%d0 <== NOT EXECUTED 4a6f6: b980 eorl %d4,%d0 <== NOT EXECUTED 4a6f8: c084 andl %d4,%d0 <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ _CORE_message_queue_Seize( 4a6fa: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a6fc: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4a700: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a704: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a706: 4868 001a pea %a0@(26) <== NOT EXECUTED 4a70a: 4eb9 0004 ce60 jsr 4ce60 <_CORE_message_queue_Seize> <== NOT EXECUTED &length_out, do_wait, timeout ); _Thread_Enable_dispatch(); 4a710: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED *msg_prio = 4a716: 2079 0006 31d6 moveal 631d6 <_Thread_Executing>,%a0 <== NOT EXECUTED 4a71c: 24a8 0024 movel %a0@(36),%a2@ <== NOT EXECUTED 4a720: 6d4e blts 4a770 <_POSIX_Message_queue_Receive_support+0xfc> <== NOT EXECUTED _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count); if ( !_Thread_Executing->Wait.return_code ) 4a722: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 4a728: 4aa8 0034 tstl %a0@(52) <== NOT EXECUTED 4a72c: 6668 bnes 4a796 <_POSIX_Message_queue_Receive_support+0x122> <== NOT EXECUTED return length_out; 4a72e: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a732: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED 4a738: 4e5e unlk %fp <== NOT EXECUTED 4a73a: 4e75 rts <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ _CORE_message_queue_Seize( 4a73c: 2f2e 001c movel %fp@(28),%sp@- <== NOT EXECUTED /* * Now if something goes wrong, we return a "length" of -1 * to indicate an error. */ length_out = -1; 4a740: 72ff moveq #-1,%d1 <== NOT EXECUTED /* * A timed receive with a bad time will do a poll regardless. */ if ( wait ) 4a742: 4280 clrl %d0 <== NOT EXECUTED /* * Now if something goes wrong, we return a "length" of -1 * to indicate an error. */ length_out = -1; 4a744: 2d41 fff8 movel %d1,%fp@(-8) <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ _CORE_message_queue_Seize( 4a748: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a74a: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4a74e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a752: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a754: 4868 001a pea %a0@(26) <== NOT EXECUTED 4a758: 4eb9 0004 ce60 jsr 4ce60 <_CORE_message_queue_Seize> <== NOT EXECUTED &length_out, do_wait, timeout ); _Thread_Enable_dispatch(); 4a75e: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED *msg_prio = 4a764: 2079 0006 31d6 moveal 631d6 <_Thread_Executing>,%a0 <== NOT EXECUTED 4a76a: 24a8 0024 movel %a0@(36),%a2@ <== NOT EXECUTED 4a76e: 6cb2 bges 4a722 <_POSIX_Message_queue_Receive_support+0xae> <== NOT EXECUTED 4a770: 2412 movel %a2@,%d2 <== NOT EXECUTED 4a772: 4482 negl %d2 <== NOT EXECUTED 4a774: 2482 movel %d2,%a2@ <== NOT EXECUTED 4a776: 60aa bras 4a722 <_POSIX_Message_queue_Receive_support+0xae> <== NOT EXECUTED the_mq = the_mq_fd->Queue; if ( msg_len < the_mq->Message_queue.maximum_message_size ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EMSGSIZE ); 4a778: 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(); 4a77a: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EMSGSIZE ); 4a780: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 4a786: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a788: 2082 movel %d2,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a78a: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED 4a790: 4e5e unlk %fp <== NOT EXECUTED the_mq = the_mq_fd->Queue; if ( msg_len < the_mq->Message_queue.maximum_message_size ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EMSGSIZE ); 4a792: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a794: 4e75 rts <== NOT EXECUTED _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count); if ( !_Thread_Executing->Wait.return_code ) return length_out; rtems_set_errno_and_return_minus_one( 4a796: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 4a79c: 2079 0006 31d6 moveal 631d6 <_Thread_Executing>,%a0 <== NOT EXECUTED 4a7a2: 2440 moveal %d0,%a2 <== NOT EXECUTED 4a7a4: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 4a7a8: 4eb9 0004 aa74 jsr 4aa74 <_POSIX_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 4a7ae: 2480 movel %d0,%a2@ <== NOT EXECUTED 4a7b0: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a7b2: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED 4a7b8: 4e5e unlk %fp <== NOT EXECUTED _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count); if ( !_Thread_Executing->Wait.return_code ) return length_out; rtems_set_errno_and_return_minus_one( 4a7ba: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a7bc: 4e75 rts <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: if ( (the_mq_fd->oflag & O_ACCMODE) == O_WRONLY ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EBADF ); 4a7be: 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(); 4a7c0: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 4a7c6: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 4a7cc: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a7ce: 2083 movel %d3,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a7d0: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED 4a7d6: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: if ( (the_mq_fd->oflag & O_ACCMODE) == O_WRONLY ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EBADF ); 4a7d8: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a7da: 4e75 rts 0004a800 <_POSIX_Message_queue_Send_support>: size_t msg_len, uint32_t msg_prio, bool wait, Watchdog_Interval timeout ) { 4a800: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4a804: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4a808: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4a80c: 262e 0014 movel %fp@(20),%d3 <== NOT EXECUTED 4a810: 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 ) 4a814: 7020 moveq #32,%d0 <== NOT EXECUTED 4a816: b083 cmpl %d3,%d0 <== NOT EXECUTED 4a818: 6500 00e4 bcsw 4a8fe <_POSIX_Message_queue_Send_support+0xfe> <== NOT EXECUTED 4a81c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4a820: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a822: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a828: 4eb9 0004 de74 jsr 4de74 <_Objects_Get> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { 4a82e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a834: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a836: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4a83a: 6600 00aa bnew 4a8e6 <_POSIX_Message_queue_Send_support+0xe6> <== NOT EXECUTED case OBJECTS_LOCAL: if ( (the_mq_fd->oflag & O_ACCMODE) == O_RDONLY ) { 4a83e: 2228 0014 movel %a0@(20),%d1 <== NOT EXECUTED 4a842: 7003 moveq #3,%d0 <== NOT EXECUTED 4a844: c081 andl %d1,%d0 <== NOT EXECUTED 4a846: 6700 00ce beqw 4a916 <_POSIX_Message_queue_Send_support+0x116> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EBADF ); } the_mq = the_mq_fd->Queue; 4a84a: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED /* * A timed receive with a bad time will do a poll regardless. */ if ( wait ) 4a84e: 4a02 tstb %d2 <== NOT EXECUTED 4a850: 6752 beqs 4a8a4 <_POSIX_Message_queue_Send_support+0xa4> <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ msg_status = _CORE_message_queue_Submit( 4a852: 2f2e 001c movel %fp@(28),%sp@- <== NOT EXECUTED the_mq = the_mq_fd->Queue; /* * A timed receive with a bad time will do a poll regardless. */ if ( wait ) 4a856: 2001 movel %d1,%d0 <== NOT EXECUTED 4a858: 740e moveq #14,%d2 <== NOT EXECUTED 4a85a: 7201 moveq #1,%d1 <== NOT EXECUTED 4a85c: e4a8 lsrl %d2,%d0 <== NOT EXECUTED 4a85e: b380 eorl %d1,%d0 <== NOT EXECUTED 4a860: c081 andl %d1,%d0 <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ msg_status = _CORE_message_queue_Submit( 4a862: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a864: 4483 negl %d3 <== NOT EXECUTED 4a866: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a868: 42a7 clrl %sp@- <== NOT EXECUTED 4a86a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a86c: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4a870: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a874: 4868 001a pea %a0@(26) <== NOT EXECUTED 4a878: 4eb9 0004 cf9c jsr 4cf9c <_CORE_message_queue_Submit> <== NOT EXECUTED _POSIX_Message_queue_Priority_to_core( msg_prio ), do_wait, timeout /* no timeout */ ); _Thread_Enable_dispatch(); 4a87e: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ msg_status = _CORE_message_queue_Submit( 4a884: 2400 movel %d0,%d2 <== NOT EXECUTED _POSIX_Message_queue_Priority_to_core( msg_prio ), do_wait, timeout /* no timeout */ ); _Thread_Enable_dispatch(); 4a886: 4eb9 0004 e748 jsr 4e748 <_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 ) 4a88c: 7007 moveq #7,%d0 <== NOT EXECUTED 4a88e: b082 cmpl %d2,%d0 <== NOT EXECUTED 4a890: 6748 beqs 4a8da <_POSIX_Message_queue_Send_support+0xda> <== NOT EXECUTED msg_status = _Thread_Executing->Wait.return_code; if ( !msg_status ) 4a892: 4a82 tstl %d2 <== NOT EXECUTED 4a894: 6600 009e bnew 4a934 <_POSIX_Message_queue_Send_support+0x134> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a898: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 4a89e: 4e5e unlk %fp <== NOT EXECUTED */ if ( msg_status == CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT ) msg_status = _Thread_Executing->Wait.return_code; if ( !msg_status ) 4a8a0: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a8a2: 4e75 rts <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ msg_status = _CORE_message_queue_Submit( 4a8a4: 2f2e 001c movel %fp@(28),%sp@- <== NOT EXECUTED the_mq = the_mq_fd->Queue; /* * A timed receive with a bad time will do a poll regardless. */ if ( wait ) 4a8a8: 4280 clrl %d0 <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ msg_status = _CORE_message_queue_Submit( 4a8aa: 4483 negl %d3 <== NOT EXECUTED 4a8ac: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a8ae: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a8b0: 42a7 clrl %sp@- <== NOT EXECUTED 4a8b2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a8b4: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4a8b8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a8bc: 4868 001a pea %a0@(26) <== NOT EXECUTED 4a8c0: 4eb9 0004 cf9c jsr 4cf9c <_CORE_message_queue_Submit> <== NOT EXECUTED _POSIX_Message_queue_Priority_to_core( msg_prio ), do_wait, timeout /* no timeout */ ); _Thread_Enable_dispatch(); 4a8c6: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED do_wait = wait; /* * Now perform the actual message receive */ msg_status = _CORE_message_queue_Submit( 4a8cc: 2400 movel %d0,%d2 <== NOT EXECUTED _POSIX_Message_queue_Priority_to_core( msg_prio ), do_wait, timeout /* no timeout */ ); _Thread_Enable_dispatch(); 4a8ce: 4eb9 0004 e748 jsr 4e748 <_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 ) 4a8d4: 7007 moveq #7,%d0 <== NOT EXECUTED 4a8d6: b082 cmpl %d2,%d0 <== NOT EXECUTED 4a8d8: 66b8 bnes 4a892 <_POSIX_Message_queue_Send_support+0x92> <== NOT EXECUTED msg_status = _Thread_Executing->Wait.return_code; 4a8da: 2079 0006 31d6 moveal 631d6 <_Thread_Executing>,%a0 <== NOT EXECUTED 4a8e0: 2428 0034 movel %a0@(52),%d2 <== NOT EXECUTED 4a8e4: 60ac bras 4a892 <_POSIX_Message_queue_Send_support+0x92> <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a8e6: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED } 4a8ec: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a8f2: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a8f4: 7209 moveq #9,%d1 <== NOT EXECUTED } 4a8f6: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a8f8: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a8fa: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4a8fc: 4e75 rts <== NOT EXECUTED * Validate the priority. * XXX - Do not validate msg_prio is not less than 0. */ if ( msg_prio > MQ_PRIO_MAX ) rtems_set_errno_and_return_minus_one( EINVAL ); 4a8fe: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 4a904: 7616 moveq #22,%d3 <== NOT EXECUTED 4a906: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a908: 2083 movel %d3,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a90a: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 4a910: 4e5e unlk %fp <== NOT EXECUTED * Validate the priority. * XXX - Do not validate msg_prio is not less than 0. */ if ( msg_prio > MQ_PRIO_MAX ) rtems_set_errno_and_return_minus_one( EINVAL ); 4a912: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a914: 4e75 rts <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: if ( (the_mq_fd->oflag & O_ACCMODE) == O_RDONLY ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EBADF ); 4a916: 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(); 4a918: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 4a91e: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 4a924: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a926: 2082 movel %d2,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a928: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 4a92e: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: if ( (the_mq_fd->oflag & O_ACCMODE) == O_RDONLY ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EBADF ); 4a930: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a932: 4e75 rts <== NOT EXECUTED msg_status = _Thread_Executing->Wait.return_code; if ( !msg_status ) return msg_status; rtems_set_errno_and_return_minus_one( 4a934: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 4a93a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a93c: 2440 moveal %d0,%a2 <== NOT EXECUTED 4a93e: 4eb9 0004 aa74 jsr 4aa74 <_POSIX_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 4a944: 2480 movel %d0,%a2@ <== NOT EXECUTED 4a946: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a948: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 4a94e: 4e5e unlk %fp <== NOT EXECUTED msg_status = _Thread_Executing->Wait.return_code; if ( !msg_status ) return msg_status; rtems_set_errno_and_return_minus_one( 4a950: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a952: 4e75 rts 0004aa74 <_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 ) { 4aa74: 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]; } 4aa78: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED int _POSIX_Message_queue_Translate_core_message_queue_return_code( uint32_t the_message_queue_status ) { 4aa7c: 41f9 0005 fde6 lea 5fde6 <_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]; } 4aa82: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 4aa86: 4e5e unlk %fp <== NOT EXECUTED 4aa88: 4e75 rts <== NOT EXECUTED ... 00047798 <_POSIX_Mutex_Get>: POSIX_Mutex_Control *_POSIX_Mutex_Get ( pthread_mutex_t *mutex, Objects_Locations *location ) { 47798: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4779c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4779e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 477a2: 4a8a tstl %a2 <== NOT EXECUTED 477a4: 6754 beqs 477fa <_POSIX_Mutex_Get+0x62> <== NOT EXECUTED 477a6: 2012 movel %a2@,%d0 <== NOT EXECUTED 477a8: 72ff moveq #-1,%d1 <== NOT EXECUTED 477aa: b280 cmpl %d0,%d1 <== NOT EXECUTED 477ac: 6720 beqs 477ce <_POSIX_Mutex_Get+0x36> <== NOT EXECUTED return (POSIX_Mutex_Control *) 477ae: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 477b2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 477b4: 4879 0005 f786 pea 5f786 <_POSIX_Mutex_Information> <== NOT EXECUTED 477ba: 4eb9 0004 a924 jsr 4a924 <_Objects_Get> <== NOT EXECUTED 477c0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED _Objects_Get( &_POSIX_Mutex_Information, *id, location ); } 477c6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 477ca: 4e5e unlk %fp <== NOT EXECUTED 477cc: 4e75 rts <== NOT EXECUTED Objects_Locations *location ) { Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 477ce: 42a7 clrl %sp@- <== NOT EXECUTED 477d0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 477d2: 4eb9 0004 7858 jsr 47858 <== NOT EXECUTED 477d8: 508f addql #8,%sp <== NOT EXECUTED 477da: 4a80 tstl %d0 <== NOT EXECUTED 477dc: 661c bnes 477fa <_POSIX_Mutex_Get+0x62> <== NOT EXECUTED 477de: 2012 movel %a2@,%d0 <== NOT EXECUTED return (POSIX_Mutex_Control *) 477e0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 477e4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 477e6: 4879 0005 f786 pea 5f786 <_POSIX_Mutex_Information> <== NOT EXECUTED 477ec: 4eb9 0004 a924 jsr 4a924 <_Objects_Get> <== NOT EXECUTED 477f2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 477f8: 60cc bras 477c6 <_POSIX_Mutex_Get+0x2e> <== NOT EXECUTED Objects_Locations *location ) { Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 477fa: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED return (POSIX_Mutex_Control *) _Objects_Get( &_POSIX_Mutex_Information, *id, location ); } 477fe: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED Objects_Locations *location ) { Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 47802: 7201 moveq #1,%d1 <== NOT EXECUTED return (POSIX_Mutex_Control *) _Objects_Get( &_POSIX_Mutex_Information, *id, location ); } 47804: 4e5e unlk %fp <== NOT EXECUTED Objects_Locations *location ) { Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 47806: 4280 clrl %d0 <== NOT EXECUTED 47808: 2081 movel %d1,%a0@ <== NOT EXECUTED return (POSIX_Mutex_Control *) _Objects_Get( &_POSIX_Mutex_Information, *id, location ); } 4780a: 4e75 rts 0004771c <_POSIX_Mutex_Get_interrupt_disable>: POSIX_Mutex_Control *_POSIX_Mutex_Get_interrupt_disable ( pthread_mutex_t *mutex, Objects_Locations *location, ISR_Level *level ) { 4771c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47720: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47722: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 47726: 4a8a tstl %a2 <== NOT EXECUTED 47728: 675c beqs 47786 <_POSIX_Mutex_Get_interrupt_disable+0x6a> <== NOT EXECUTED 4772a: 2012 movel %a2@,%d0 <== NOT EXECUTED 4772c: 72ff moveq #-1,%d1 <== NOT EXECUTED 4772e: b280 cmpl %d0,%d1 <== NOT EXECUTED 47730: 6724 beqs 47756 <_POSIX_Mutex_Get_interrupt_disable+0x3a> <== NOT EXECUTED return (POSIX_Mutex_Control *) 47732: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 47736: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4773a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4773c: 4879 0005 f786 pea 5f786 <_POSIX_Mutex_Information> <== NOT EXECUTED 47742: 4eb9 0004 a8c8 jsr 4a8c8 <_Objects_Get_isr_disable> <== NOT EXECUTED 47748: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED _Objects_Get_isr_disable( &_POSIX_Mutex_Information, *id, location, level ); } 4774e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47752: 4e5e unlk %fp <== NOT EXECUTED 47754: 4e75 rts <== NOT EXECUTED ISR_Level *level ) { Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 47756: 42a7 clrl %sp@- <== NOT EXECUTED 47758: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4775a: 4eb9 0004 7858 jsr 47858 <== NOT EXECUTED 47760: 508f addql #8,%sp <== NOT EXECUTED 47762: 4a80 tstl %d0 <== NOT EXECUTED 47764: 6620 bnes 47786 <_POSIX_Mutex_Get_interrupt_disable+0x6a> <== NOT EXECUTED 47766: 2012 movel %a2@,%d0 <== NOT EXECUTED return (POSIX_Mutex_Control *) 47768: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4776c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 47770: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47772: 4879 0005 f786 pea 5f786 <_POSIX_Mutex_Information> <== NOT EXECUTED 47778: 4eb9 0004 a8c8 jsr 4a8c8 <_Objects_Get_isr_disable> <== NOT EXECUTED 4777e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 47784: 60c8 bras 4774e <_POSIX_Mutex_Get_interrupt_disable+0x32> <== NOT EXECUTED ISR_Level *level ) { Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 47786: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED return (POSIX_Mutex_Control *) _Objects_Get_isr_disable( &_POSIX_Mutex_Information, *id, location, level ); } 4778a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED ISR_Level *level ) { Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 4778e: 7001 moveq #1,%d0 <== NOT EXECUTED 47790: 2080 movel %d0,%a0@ <== NOT EXECUTED return (POSIX_Mutex_Control *) _Objects_Get_isr_disable( &_POSIX_Mutex_Information, *id, location, level ); } 47792: 4e5e unlk %fp <== NOT EXECUTED ISR_Level *level ) { Objects_Id *id = (Objects_Id *)mutex; ___POSIX_Mutex_Get_support( id, location ); 47794: 4280 clrl %d0 <== NOT EXECUTED return (POSIX_Mutex_Control *) _Objects_Get_isr_disable( &_POSIX_Mutex_Information, *id, location, level ); } 47796: 4e75 rts 000479a8 <_POSIX_Mutex_Lock_support>: int _POSIX_Mutex_Lock_support( pthread_mutex_t *mutex, bool blocking, Watchdog_Interval timeout ) { 479a8: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 479ac: 2f02 movel %d2,%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 ); 479ae: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 479b2: 486e fffc pea %fp@(-4) <== NOT EXECUTED int _POSIX_Mutex_Lock_support( pthread_mutex_t *mutex, bool blocking, Watchdog_Interval timeout ) { 479b6: 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 ); 479ba: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 479be: 4eb9 0004 771c jsr 4771c <_POSIX_Mutex_Get_interrupt_disable> <== NOT EXECUTED switch ( location ) { 479c4: 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 ); 479ca: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 479cc: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 479d0: 663a bnes 47a0c <_POSIX_Mutex_Lock_support+0x64> <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_mutex_Seize( 479d2: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 479d6: 4280 clrl %d0 <== NOT EXECUTED 479d8: 1002 moveb %d2,%d0 <== NOT EXECUTED 479da: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 479de: 2f00 movel %d0,%sp@- <== NOT EXECUTED 479e0: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 479e4: 4868 0014 pea %a0@(20) <== NOT EXECUTED 479e8: 4eb9 0004 9cf2 jsr 49cf2 <_CORE_mutex_Seize> <== NOT EXECUTED the_mutex->Object.id, blocking, timeout, level ); return _POSIX_Mutex_Translate_core_mutex_return_code( 479ee: 2079 0005 f526 moveal 5f526 <_Thread_Executing>,%a0 <== NOT EXECUTED 479f4: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 479f8: 4eb9 0004 7b04 jsr 47b04 <_POSIX_Mutex_Translate_core_mutex_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 479fe: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED the_mutex->Object.id, blocking, timeout, level ); return _POSIX_Mutex_Translate_core_mutex_return_code( 47a02: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 47a08: 4e5e unlk %fp <== NOT EXECUTED 47a0a: 4e75 rts <== NOT EXECUTED 47a0c: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 47a10: 4e5e unlk %fp <== NOT EXECUTED register POSIX_Mutex_Control *the_mutex; Objects_Locations location; ISR_Level level; the_mutex = _POSIX_Mutex_Get_interrupt_disable( mutex, &location, &level ); switch ( location ) { 47a12: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 47a14: 4e75 rts <== NOT EXECUTED ... 0004b038 <_POSIX_Mutex_Manager_initialization>: */ void _POSIX_Mutex_Manager_initialization( uint32_t maximum_mutexes ) { 4b038: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b03c: 4878 00ff pea ff <== NOT EXECUTED 4b040: 4878 0001 pea 1 <== NOT EXECUTED 4b044: 4878 0076 pea 76 <== NOT EXECUTED 4b048: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b04c: 4878 0006 pea 6 <== NOT EXECUTED 4b050: 4878 0003 pea 3 <== NOT EXECUTED 4b054: 4879 0005 9f9a pea 59f9a <_POSIX_Mutex_Information> <== NOT EXECUTED 4b05a: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b060: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4b066: 4e5e unlk %fp <== NOT EXECUTED 4b068: 4e75 rts <== NOT EXECUTED ... 00047b04 <_POSIX_Mutex_Translate_core_mutex_return_code>: int _POSIX_Mutex_Translate_core_mutex_return_code( CORE_mutex_Status the_mutex_status ) { 47b04: 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]; } 47b08: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED int _POSIX_Mutex_Translate_core_mutex_return_code( CORE_mutex_Status the_mutex_status ) { 47b0c: 41f9 0005 c61e lea 5c61e <_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]; } 47b12: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 47b16: 4e5e unlk %fp <== NOT EXECUTED 47b18: 4e75 rts <== NOT EXECUTED ... 0004b0a0 <_POSIX_RWLock_Manager_initialization>: */ void _POSIX_RWLock_Manager_initialization( uint32_t maximum_rwlocks ) { 4b0a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b0a4: 4878 00ff pea ff <== NOT EXECUTED 4b0a8: 4878 0001 pea 1 <== NOT EXECUTED 4b0ac: 4878 005c pea 5c <== NOT EXECUTED 4b0b0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b0b4: 4878 000b pea b <== NOT EXECUTED 4b0b8: 4878 0003 pea 3 <== NOT EXECUTED 4b0bc: 4879 0005 9e32 pea 59e32 <_POSIX_RWLock_Information> <== NOT EXECUTED 4b0c2: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b0c8: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4b0ce: 4e5e unlk %fp <== NOT EXECUTED 4b0d0: 4e75 rts <== NOT EXECUTED ... 00046640 <_POSIX_RWLock_Translate_core_RWLock_return_code>: int _POSIX_RWLock_Translate_core_RWLock_return_code( CORE_RWLock_Status the_rwlock_status ) { 46640: 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]; } 46644: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED int _POSIX_RWLock_Translate_core_RWLock_return_code( CORE_RWLock_Status the_rwlock_status ) { 46648: 41f9 0005 96cc lea 596cc <_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]; } 4664e: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 46652: 4e5e unlk %fp <== NOT EXECUTED 46654: 4e75 rts <== NOT EXECUTED ... 0004eb78 <_POSIX_Semaphore_Create_support>: const char *name, int pshared, unsigned int value, POSIX_Semaphore_Control **the_sem ) { 4eb78: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4eb7c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4eb7e: 2039 0005 ef90 movel 5ef90 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4eb84: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4eb86: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4eb8a: 5280 addql #1,%d0 <== NOT EXECUTED 4eb8c: 23c0 0005 ef90 movel %d0,5ef90 <_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) { 4eb92: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 4eb96: 6600 010a bnew 4eca2 <_POSIX_Semaphore_Create_support+0x12a> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOSYS ); } if ( name ) { 4eb9a: 4a82 tstl %d2 <== NOT EXECUTED 4eb9c: 6714 beqs 4ebb2 <_POSIX_Semaphore_Create_support+0x3a> <== NOT EXECUTED if( strlen(name) > PATH_MAX ) { 4eb9e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4eba0: 4eb9 0005 26b4 jsr 526b4 <== NOT EXECUTED 4eba6: 588f addql #4,%sp <== NOT EXECUTED 4eba8: 0c80 0000 00ff cmpil #255,%d0 <== NOT EXECUTED 4ebae: 6200 00d2 bhiw 4ec82 <_POSIX_Semaphore_Create_support+0x10a> <== NOT EXECUTED * _POSIX_Semaphore_Allocate */ RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Allocate( void ) { return (POSIX_Semaphore_Control *) 4ebb2: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 4ebb8: 4eb9 0004 a1b8 jsr 4a1b8 <_Objects_Allocate> <== NOT EXECUTED } } the_semaphore = _POSIX_Semaphore_Allocate(); if ( !the_semaphore ) { 4ebbe: 588f addql #4,%sp <== NOT EXECUTED 4ebc0: 2440 moveal %d0,%a2 <== NOT EXECUTED 4ebc2: 4a80 tstl %d0 <== NOT EXECUTED 4ebc4: 6700 00fc beqw 4ecc2 <_POSIX_Semaphore_Create_support+0x14a> <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOSPC ); } the_semaphore->process_shared = pshared; 4ebc8: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED if ( name ) { 4ebcc: 4a82 tstl %d2 <== NOT EXECUTED 4ebce: 675e beqs 4ec2e <_POSIX_Semaphore_Create_support+0xb6> <== NOT EXECUTED the_semaphore->named = TRUE; the_semaphore->open_count = 1; 4ebd0: 7001 moveq #1,%d0 <== NOT EXECUTED 4ebd2: 2540 0016 movel %d0,%a2@(22) <== NOT EXECUTED } the_semaphore->process_shared = pshared; if ( name ) { the_semaphore->named = TRUE; 4ebd6: 1540 0014 moveb %d0,%a2@(20) <== NOT EXECUTED the_semaphore->open_count = 1; the_semaphore->linked = TRUE; 4ebda: 1540 0015 moveb %d0,%a2@(21) <== NOT EXECUTED /* * This effectively disables limit checking. */ the_sem_attr->maximum_count = 0xFFFFFFFF; 4ebde: 70ff moveq #-1,%d0 <== NOT EXECUTED 4ebe0: 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; 4ebe4: 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 ); 4ebe8: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4ebec: 486a 005a pea %a2@(90) <== NOT EXECUTED 4ebf0: 486a 001a pea %a2@(26) <== NOT EXECUTED 4ebf4: 4eb9 0004 9d3c jsr 49d3c <_CORE_semaphore_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4ebfa: 2079 0005 f214 moveal 5f214 <_POSIX_Semaphore_Information+0x1a>,%a0 <== NOT EXECUTED 4ec00: 4280 clrl %d0 <== NOT EXECUTED 4ec02: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 4ec06: 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; 4ec0a: 2542 000c movel %d2,%a2@(12) <== NOT EXECUTED &_POSIX_Semaphore_Information, &the_semaphore->Object, name_p ); *the_sem = the_semaphore; 4ec0e: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 4ec12: 208a movel %a2,%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4ec14: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED 4ec1a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ec20: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4ec22: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4ec26: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4ec2a: 4e5e unlk %fp <== NOT EXECUTED 4ec2c: 4e75 rts <== NOT EXECUTED if ( name ) { the_semaphore->named = TRUE; the_semaphore->open_count = 1; the_semaphore->linked = TRUE; } else { the_semaphore->named = FALSE; 4ec2e: 4200 clrb %d0 <== NOT EXECUTED 4ec30: 1540 0014 moveb %d0,%a2@(20) <== NOT EXECUTED the_semaphore->open_count = 0; the_semaphore->linked = FALSE; 4ec34: 1540 0015 moveb %d0,%a2@(21) <== NOT EXECUTED /* * This effectively disables limit checking. */ the_sem_attr->maximum_count = 0xFFFFFFFF; 4ec38: 70ff moveq #-1,%d0 <== NOT EXECUTED 4ec3a: 2540 005a movel %d0,%a2@(90) <== NOT EXECUTED the_semaphore->named = TRUE; the_semaphore->open_count = 1; the_semaphore->linked = TRUE; } else { the_semaphore->named = FALSE; the_semaphore->open_count = 0; 4ec3e: 42aa 0016 clrl %a2@(22) <== 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; 4ec42: 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 ); 4ec46: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4ec4a: 486a 005a pea %a2@(90) <== NOT EXECUTED 4ec4e: 486a 001a pea %a2@(26) <== NOT EXECUTED 4ec52: 4eb9 0004 9d3c jsr 49d3c <_CORE_semaphore_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4ec58: 2079 0005 f214 moveal 5f214 <_POSIX_Semaphore_Information+0x1a>,%a0 <== NOT EXECUTED 4ec5e: 4280 clrl %d0 <== NOT EXECUTED 4ec60: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 4ec64: 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; 4ec68: 2542 000c movel %d2,%a2@(12) <== NOT EXECUTED &_POSIX_Semaphore_Information, &the_semaphore->Object, name_p ); *the_sem = the_semaphore; 4ec6c: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 4ec70: 208a movel %a2,%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4ec72: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED 4ec78: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ec7e: 4280 clrl %d0 <== NOT EXECUTED 4ec80: 60a0 bras 4ec22 <_POSIX_Semaphore_Create_support+0xaa> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); } if ( name ) { if( strlen(name) > PATH_MAX ) { _Thread_Enable_dispatch(); 4ec82: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 4ec88: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED *the_sem = the_semaphore; _Thread_Enable_dispatch(); return 0; } 4ec8e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4ec92: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED } if ( name ) { if( strlen(name) > PATH_MAX ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 4ec96: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ec98: 725b moveq #91,%d1 <== NOT EXECUTED *the_sem = the_semaphore; _Thread_Enable_dispatch(); return 0; } 4ec9a: 4e5e unlk %fp <== NOT EXECUTED } if ( name ) { if( strlen(name) > PATH_MAX ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 4ec9c: 70ff moveq #-1,%d0 <== NOT EXECUTED 4ec9e: 2081 movel %d1,%a0@ <== NOT EXECUTED *the_sem = the_semaphore; _Thread_Enable_dispatch(); return 0; } 4eca0: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); /* Sharing semaphores among processes is not currently supported */ if (pshared != 0) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOSYS ); 4eca2: 7458 moveq #88,%d2 <== NOT EXECUTED _Thread_Disable_dispatch(); /* Sharing semaphores among processes is not currently supported */ if (pshared != 0) { _Thread_Enable_dispatch(); 4eca4: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 4ecaa: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED 4ecb0: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ecb2: 2082 movel %d2,%a0@ <== NOT EXECUTED *the_sem = the_semaphore; _Thread_Enable_dispatch(); return 0; } 4ecb4: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4ecb8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4ecbc: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* Sharing semaphores among processes is not currently supported */ if (pshared != 0) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOSYS ); 4ecbe: 70ff moveq #-1,%d0 <== NOT EXECUTED *the_sem = the_semaphore; _Thread_Enable_dispatch(); return 0; } 4ecc0: 4e75 rts <== NOT EXECUTED } the_semaphore = _POSIX_Semaphore_Allocate(); if ( !the_semaphore ) { _Thread_Enable_dispatch(); 4ecc2: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 4ecc8: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED *the_sem = the_semaphore; _Thread_Enable_dispatch(); return 0; } 4ecce: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4ecd2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED the_semaphore = _POSIX_Semaphore_Allocate(); if ( !the_semaphore ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOSPC ); 4ecd6: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ecd8: 701c moveq #28,%d0 <== NOT EXECUTED 4ecda: 2080 movel %d0,%a0@ <== NOT EXECUTED *the_sem = the_semaphore; _Thread_Enable_dispatch(); return 0; } 4ecdc: 4e5e unlk %fp <== NOT EXECUTED the_semaphore = _POSIX_Semaphore_Allocate(); if ( !the_semaphore ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENOSPC ); 4ecde: 70ff moveq #-1,%d0 <== NOT EXECUTED *the_sem = the_semaphore; _Thread_Enable_dispatch(); return 0; } 4ece0: 4e75 rts <== NOT EXECUTED ... 0004ece4 <_POSIX_Semaphore_Delete>: */ void _POSIX_Semaphore_Delete( POSIX_Semaphore_Control *the_semaphore ) { 4ece4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ece8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ecea: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( !the_semaphore->linked && !the_semaphore->open_count ) { 4ecee: 4a2a 0015 tstb %a2@(21) <== NOT EXECUTED 4ecf2: 6606 bnes 4ecfa <_POSIX_Semaphore_Delete+0x16> <== NOT EXECUTED 4ecf4: 4aaa 0016 tstl %a2@(22) <== NOT EXECUTED 4ecf8: 6708 beqs 4ed02 <_POSIX_Semaphore_Delete+0x1e> <== NOT EXECUTED -1 ); _POSIX_Semaphore_Free( the_semaphore ); } } 4ecfa: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4ecfe: 4e5e unlk %fp <== NOT EXECUTED 4ed00: 4e75 rts <== NOT EXECUTED void _POSIX_Semaphore_Delete( POSIX_Semaphore_Control *the_semaphore ) { if ( !the_semaphore->linked && !the_semaphore->open_count ) { _Objects_Close( &_POSIX_Semaphore_Information, &the_semaphore->Object ); 4ed02: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ed04: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 4ed0a: 4eb9 0004 a254 jsr 4a254 <_Objects_Close> <== NOT EXECUTED _CORE_semaphore_Flush( 4ed10: 4878 ffff pea ffffffff <== NOT EXECUTED 4ed14: 42a7 clrl %sp@- <== NOT EXECUTED 4ed16: 486a 001a pea %a2@(26) <== NOT EXECUTED 4ed1a: 4eb9 0004 9d30 jsr 49d30 <_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 ); 4ed20: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ed22: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 4ed28: 4eb9 0004 a578 jsr 4a578 <_Objects_Free> <== NOT EXECUTED -1 ); _POSIX_Semaphore_Free( the_semaphore ); } } 4ed2e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4ed32: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 4ed38: 4e5e unlk %fp <== NOT EXECUTED 4ed3a: 4e75 rts 0004b664 <_POSIX_Semaphore_Manager_initialization>: */ void _POSIX_Semaphore_Manager_initialization( uint32_t maximum_semaphores ) { 4b664: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b668: 4878 00ff pea ff <== NOT EXECUTED 4b66c: 4878 0001 pea 1 <== NOT EXECUTED 4b670: 4878 0066 pea 66 <== NOT EXECUTED 4b674: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b678: 4878 0007 pea 7 <== NOT EXECUTED 4b67c: 4878 0003 pea 3 <== NOT EXECUTED 4b680: 4879 0005 9ee6 pea 59ee6 <_POSIX_Semaphore_Information> <== NOT EXECUTED 4b686: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b68c: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4b692: 4e5e unlk %fp <== NOT EXECUTED 4b694: 4e75 rts <== NOT EXECUTED ... 0004ed3c <_POSIX_Semaphore_Name_to_id>: int _POSIX_Semaphore_Name_to_id( const char *name, sem_t *id ) { 4ed3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ed40: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; if ( !name ) 4ed44: 4a88 tstl %a0 <== NOT EXECUTED 4ed46: 6704 beqs 4ed4c <_POSIX_Semaphore_Name_to_id+0x10> <== NOT EXECUTED return EINVAL; if ( !name[0] ) 4ed48: 4a10 tstb %a0@ <== NOT EXECUTED 4ed4a: 6606 bnes 4ed52 <_POSIX_Semaphore_Name_to_id+0x16> <== NOT EXECUTED if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) return 0; return ENOENT; } 4ed4c: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; status = _Objects_Name_to_id_string( &_POSIX_Semaphore_Information, name, (Objects_Id*)id ); if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) 4ed4e: 7016 moveq #22,%d0 <== NOT EXECUTED return 0; return ENOENT; } 4ed50: 4e75 rts <== NOT EXECUTED return EINVAL; if ( !name[0] ) return EINVAL; status = _Objects_Name_to_id_string( 4ed52: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4ed56: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4ed58: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 4ed5e: 4eb9 0004 f888 jsr 4f888 <_Objects_Name_to_id_string> <== NOT EXECUTED &_POSIX_Semaphore_Information, name, (Objects_Id*)id ); if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) 4ed64: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ed6a: 4a80 tstl %d0 <== NOT EXECUTED 4ed6c: 6706 beqs 4ed74 <_POSIX_Semaphore_Name_to_id+0x38> <== NOT EXECUTED return 0; return ENOENT; } 4ed6e: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; status = _Objects_Name_to_id_string( &_POSIX_Semaphore_Information, name, (Objects_Id*)id ); if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) 4ed70: 7002 moveq #2,%d0 <== NOT EXECUTED return 0; return ENOENT; } 4ed72: 4e75 rts <== NOT EXECUTED 4ed74: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; status = _Objects_Name_to_id_string( &_POSIX_Semaphore_Information, name, (Objects_Id*)id ); if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL ) 4ed76: 4280 clrl %d0 <== NOT EXECUTED return 0; return ENOENT; } 4ed78: 4e75 rts <== NOT EXECUTED ... 00050760 <_POSIX_Semaphore_Translate_core_semaphore_return_code>: int _POSIX_Semaphore_Translate_core_semaphore_return_code( CORE_semaphore_Status the_semaphore_status ) { 50760: 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]; } 50764: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED int _POSIX_Semaphore_Translate_core_semaphore_return_code( CORE_semaphore_Status the_semaphore_status ) { 50768: 41f9 0005 c8ae lea 5c8ae <_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]; } 5076e: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 50772: 4e5e unlk %fp <== NOT EXECUTED 50774: 4e75 rts <== NOT EXECUTED ... 0004edb0 <_POSIX_Semaphore_Wait_support>: int _POSIX_Semaphore_Wait_support( sem_t *sem, bool blocking, Watchdog_Interval timeout ) { 4edb0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4edb4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4edb6: 2f02 movel %d2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Get ( sem_t *id, Objects_Locations *location ) { return (POSIX_Semaphore_Control *) 4edb8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4edbc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4edc0: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4edc2: 142e 000f moveb %fp@(15),%d2 <== NOT EXECUTED 4edc6: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 4edcc: 4eb9 0004 a6e4 jsr 4a6e4 <_Objects_Get> <== NOT EXECUTED POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { 4edd2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4edd8: 2040 moveal %d0,%a0 <== NOT EXECUTED 4edda: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4edde: 671a beqs 4edfa <_POSIX_Semaphore_Wait_support+0x4a> <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 4ede0: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED } 4ede6: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4edea: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 4edee: 2040 moveal %d0,%a0 <== NOT EXECUTED 4edf0: 7216 moveq #22,%d1 <== NOT EXECUTED } 4edf2: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 4edf4: 70ff moveq #-1,%d0 <== NOT EXECUTED 4edf6: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4edf8: 4e75 rts <== NOT EXECUTED the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { case OBJECTS_LOCAL: _CORE_semaphore_Seize( 4edfa: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4edfe: 4280 clrl %d0 <== NOT EXECUTED 4ee00: 1002 moveb %d2,%d0 <== NOT EXECUTED 4ee02: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ee04: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4ee08: 4868 001a pea %a0@(26) <== NOT EXECUTED 4ee0c: 4eb9 0004 f514 jsr 4f514 <_CORE_semaphore_Seize> <== NOT EXECUTED &the_semaphore->Semaphore, the_semaphore->Object.id, blocking, timeout ); _Thread_Enable_dispatch(); 4ee12: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( !_Thread_Executing->Wait.return_code ) 4ee18: 2079 0005 f04e moveal 5f04e <_Thread_Executing>,%a0 <== NOT EXECUTED 4ee1e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4ee24: 4aa8 0034 tstl %a0@(52) <== NOT EXECUTED 4ee28: 660e bnes 4ee38 <_POSIX_Semaphore_Wait_support+0x88> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 4ee2a: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4ee2e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4ee32: 4e5e unlk %fp <== NOT EXECUTED blocking, timeout ); _Thread_Enable_dispatch(); if ( !_Thread_Executing->Wait.return_code ) 4ee34: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 4ee36: 4e75 rts <== NOT EXECUTED _Thread_Enable_dispatch(); if ( !_Thread_Executing->Wait.return_code ) return 0; rtems_set_errno_and_return_minus_one( 4ee38: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED 4ee3e: 2079 0005 f04e moveal 5f04e <_Thread_Executing>,%a0 <== NOT EXECUTED 4ee44: 2440 moveal %d0,%a2 <== NOT EXECUTED 4ee46: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 4ee4a: 4eb9 0005 0760 jsr 50760 <_POSIX_Semaphore_Translate_core_semaphore_return_code> <== NOT EXECUTED 4ee50: 2480 movel %d0,%a2@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 4ee52: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4ee56: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED _Thread_Enable_dispatch(); if ( !_Thread_Executing->Wait.return_code ) return 0; rtems_set_errno_and_return_minus_one( 4ee5a: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 4ee5c: 4e5e unlk %fp <== NOT EXECUTED _Thread_Enable_dispatch(); if ( !_Thread_Executing->Wait.return_code ) return 0; rtems_set_errno_and_return_minus_one( 4ee5e: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 4ee60: 4e75 rts <== NOT EXECUTED ... 0004b274 <_POSIX_Spinlock_Manager_initialization>: */ void _POSIX_Spinlock_Manager_initialization( uint32_t maximum_spinlocks ) { 4b274: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b278: 4878 00ff pea ff <== NOT EXECUTED 4b27c: 4878 0001 pea 1 <== NOT EXECUTED 4b280: 4878 0020 pea 20 <== NOT EXECUTED 4b284: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b288: 4878 000b pea b <== NOT EXECUTED 4b28c: 4878 0003 pea 3 <== NOT EXECUTED 4b290: 4879 0005 9eaa pea 59eaa <_POSIX_Spinlock_Information> <== NOT EXECUTED 4b296: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b29c: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4b2a2: 4e5e unlk %fp <== NOT EXECUTED 4b2a4: 4e75 rts <== NOT EXECUTED ... 00045b20 <_POSIX_Spinlock_Translate_core_spinlock_return_code>: int _POSIX_Spinlock_Translate_core_spinlock_return_code( CORE_spinlock_Status the_spinlock_status ) { 45b20: 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]; } 45b24: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED int _POSIX_Spinlock_Translate_core_spinlock_return_code( CORE_spinlock_Status the_spinlock_status ) { 45b28: 41f9 0005 7f0e lea 57f0e <_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]; } 45b2e: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 45b32: 4e5e unlk %fp <== NOT EXECUTED 45b34: 4e75 rts <== NOT EXECUTED ... 0004cd94 <_POSIX_Thread_Exit>: void _POSIX_Thread_Exit( Thread_Control *the_thread, void *value_ptr ) { 4cd94: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4cd98: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4cd9c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4cda0: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED Objects_Information *the_information; the_information = _Objects_Get_information_id( the_thread->Object.id ); 4cda4: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 4cda8: 4eb9 0004 749c jsr 4749c <_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(); 4cdae: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED void *value_ptr ) { Objects_Information *the_information; the_information = _Objects_Get_information_id( the_thread->Object.id ); 4cdb4: 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(); 4cdb6: 4eb9 0004 678c jsr 4678c <_API_Mutex_Lock> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4cdbc: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4cdc2: 5280 addql #1,%d0 <== NOT EXECUTED 4cdc4: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); the_thread->Wait.return_argument = value_ptr; _Thread_Close( the_information, the_thread ); 4cdca: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4cdcc: 2f02 movel %d2,%sp@- <== NOT EXECUTED */ _RTEMS_Lock_allocator(); _Thread_Disable_dispatch(); the_thread->Wait.return_argument = value_ptr; 4cdce: 2543 0028 movel %d3,%a2@(40) <== NOT EXECUTED _Thread_Close( the_information, the_thread ); 4cdd2: 4eb9 0004 7adc jsr 47adc <_Thread_Close> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Threads_Free ( Thread_Control *the_pthread ) { _Objects_Free( &_POSIX_Threads_Information, &the_pthread->Object ); 4cdd8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4cdda: 4879 0005 9e6e pea 59e6e <_POSIX_Threads_Information> <== NOT EXECUTED 4cde0: 4eb9 0004 7418 jsr 47418 <_Objects_Free> <== NOT EXECUTED _POSIX_Threads_Free( the_thread ); _RTEMS_Unlock_allocator(); 4cde6: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4cdec: 4eb9 0004 67f0 jsr 467f0 <_API_Mutex_Unlock> <== NOT EXECUTED _Thread_Enable_dispatch(); 4cdf2: dffc 0000 001c addal #28,%sp <== NOT EXECUTED } 4cdf8: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4cdfe: 4e5e unlk %fp <== NOT EXECUTED _Thread_Close( the_information, the_thread ); _POSIX_Threads_Free( the_thread ); _RTEMS_Unlock_allocator(); _Thread_Enable_dispatch(); 4ce00: 4ef9 0004 7e08 jmp 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 0004b3de <_POSIX_Threads_Create_extension>: bool _POSIX_Threads_Create_extension( Thread_Control *executing, Thread_Control *created ) { 4b3de: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4b3e2: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4b3e6: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED POSIX_API_Control *api; POSIX_API_Control *executing_api; api = _Workspace_Allocate( sizeof( POSIX_API_Control ) ); 4b3ea: 4878 00e4 pea e4 <== NOT EXECUTED 4b3ee: 4eb9 0004 92a4 jsr 492a4 <_Workspace_Allocate> <== NOT EXECUTED if ( !api ) 4b3f4: 588f addql #4,%sp <== NOT EXECUTED ) { POSIX_API_Control *api; POSIX_API_Control *executing_api; api = _Workspace_Allocate( sizeof( POSIX_API_Control ) ); 4b3f6: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !api ) 4b3f8: 4a80 tstl %d0 <== NOT EXECUTED 4b3fa: 6700 0152 beqw 4b54e <_POSIX_Threads_Create_extension+0x170> <== 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; 4b3fe: 41ea 0080 lea %a2@(128),%a0 <== NOT EXECUTED 4b402: 20f9 0005 7424 movel 57424 <_POSIX_Threads_Default_attributes+0x18>,%a0@+ <== NOT EXECUTED api->schedparam.sched_priority = 4b408: 243c 0000 00ff movel #255,%d2 <== 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; 4b40e: 20f9 0005 7428 movel 57428 <_POSIX_Threads_Default_attributes+0x1c>,%a0@+ <== NOT EXECUTED return false; created->API_Extensions[ THREAD_API_POSIX ] = api; /* XXX check all fields are touched */ api->Attributes = _POSIX_Threads_Default_attributes; 4b414: 7001 moveq #1,%d0 <== NOT EXECUTED 4b416: 7202 moveq #2,%d1 <== NOT EXECUTED api->detachstate = _POSIX_Threads_Default_attributes.detachstate; api->schedpolicy = _POSIX_Threads_Default_attributes.schedpolicy; api->schedparam = _POSIX_Threads_Default_attributes.schedparam; 4b418: 20f9 0005 742c movel 5742c <_POSIX_Threads_Default_attributes+0x20>,%a0@+ <== NOT EXECUTED 4b41e: 20f9 0005 7430 movel 57430 <_POSIX_Threads_Default_attributes+0x24>,%a0@+ <== NOT EXECUTED 4b424: 20f9 0005 7434 movel 57434 <_POSIX_Threads_Default_attributes+0x28>,%a0@+ <== NOT EXECUTED 4b42a: 20b9 0005 7438 movel 57438 <_POSIX_Threads_Default_attributes+0x2c>,%a0@ <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4b430: 41ea 00dc lea %a2@(220),%a0 <== NOT EXECUTED return false; created->API_Extensions[ THREAD_API_POSIX ] = api; /* XXX check all fields are touched */ api->Attributes = _POSIX_Threads_Default_attributes; 4b434: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED 4b438: 42aa 0024 clrl %a2@(36) <== NOT EXECUTED 4b43c: 42aa 0028 clrl %a2@(40) <== NOT EXECUTED 4b440: 42aa 002c clrl %a2@(44) <== NOT EXECUTED 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 = 4b444: 94ab 0014 subl %a3@(20),%d2 <== NOT EXECUTED api = _Workspace_Allocate( sizeof( POSIX_API_Control ) ); if ( !api ) return false; created->API_Extensions[ THREAD_API_POSIX ] = api; 4b448: 274a 0110 movel %a2,%a3@(272) <== NOT EXECUTED /* XXX check all fields are touched */ api->Attributes = _POSIX_Threads_Default_attributes; 4b44c: 2540 0010 movel %d0,%a2@(16) <== NOT EXECUTED 4b450: 2540 0014 movel %d0,%a2@(20) <== NOT EXECUTED 4b454: 2541 0018 movel %d1,%a2@(24) <== NOT EXECUTED 4b458: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED 4b45c: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED api->detachstate = _POSIX_Threads_Default_attributes.detachstate; 4b460: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED api->schedpolicy = _POSIX_Threads_Default_attributes.schedpolicy; 4b464: 2540 007c movel %d0,%a2@(124) <== NOT EXECUTED api->schedparam = _POSIX_Threads_Default_attributes.schedparam; api->schedparam.sched_priority = 4b468: 2542 0080 movel %d2,%a2@(128) <== NOT EXECUTED * by default. */ /* XXX use signal constants */ api->signals_pending = 0; if ( _Objects_Get_API( created->Object.id ) == OBJECTS_POSIX_API && 4b46c: 7418 moveq #24,%d2 <== NOT EXECUTED return false; created->API_Extensions[ THREAD_API_POSIX ] = api; /* XXX check all fields are touched */ api->Attributes = _POSIX_Threads_Default_attributes; 4b46e: 2480 movel %d0,%a2@ <== NOT EXECUTED 4b470: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED 4b474: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED 4b478: 42aa 000c clrl %a2@(12) <== NOT EXECUTED 4b47c: 42aa 001c clrl %a2@(28) <== NOT EXECUTED _POSIX_Priority_From_core( created->current_priority ); /* * POSIX 1003.1 1996, 18.2.2.2 */ api->cancelation_requested = 0; 4b480: 42aa 00d4 clrl %a2@(212) <== NOT EXECUTED api->cancelability_state = PTHREAD_CANCEL_ENABLE; 4b484: 42aa 00cc clrl %a2@(204) <== NOT EXECUTED api->cancelability_type = PTHREAD_CANCEL_DEFERRED; 4b488: 42aa 00d0 clrl %a2@(208) <== 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; 4b48c: 42aa 00c8 clrl %a2@(200) <== NOT EXECUTED if ( _Objects_Get_API( created->Object.id ) == OBJECTS_POSIX_API && 4b490: 222b 0008 movel %a3@(8),%d1 <== NOT EXECUTED 4b494: 2001 movel %d1,%d0 <== NOT EXECUTED 4b496: e4a8 lsrl %d2,%d0 <== NOT EXECUTED 4b498: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 4b49c: 2548 00d8 movel %a0,%a2@(216) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4b4a0: 41ea 00d8 lea %a2@(216),%a0 <== NOT EXECUTED 4b4a4: c082 andl %d2,%d0 <== NOT EXECUTED 4b4a6: 2548 00e0 movel %a0,%a2@(224) <== NOT EXECUTED 4b4aa: 143c 0003 moveb #3,%d2 <== 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; 4b4ae: 42aa 00dc clrl %a2@(220) <== NOT EXECUTED 4b4b2: b480 cmpl %d0,%d2 <== NOT EXECUTED 4b4b4: 6746 beqs 4b4fc <_POSIX_Threads_Create_extension+0x11e> <== 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; } else { api->signals_blocked = 0xffffffff; 4b4b6: 70ff moveq #-1,%d0 <== NOT EXECUTED 4b4b8: 2540 00c4 movel %d0,%a2@(196) <== NOT EXECUTED } _Thread_queue_Initialize( 4b4bc: 42a7 clrl %sp@- <== NOT EXECUTED 4b4be: 4878 1000 pea 1000 <== NOT EXECUTED 4b4c2: 42a7 clrl %sp@- <== NOT EXECUTED 4b4c4: 486a 003c pea %a2@(60) <== NOT EXECUTED 4b4c8: 4eb9 0004 8628 jsr 48628 <_Thread_queue_Initialize> <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4b4ce: 223c 0004 b5a0 movel #308640,%d1 <== NOT EXECUTED THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_JOIN_AT_EXIT, 0 ); _Watchdog_Initialize( 4b4d4: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 4b4d8: 2541 00b8 movel %d1,%a2@(184) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 4b4dc: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4b4e2: 7201 moveq #1,%d1 <== NOT EXECUTED 4b4e4: 254b 00c0 movel %a3,%a2@(192) <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 4b4e8: 2540 00bc movel %d0,%a2@(188) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4b4ec: 42aa 00a4 clrl %a2@(164) <== NOT EXECUTED created->Object.id, created ); return true; } 4b4f0: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4b4f6: 4e5e unlk %fp <== NOT EXECUTED 4b4f8: 1001 moveb %d1,%d0 <== NOT EXECUTED 4b4fa: 4e75 rts <== NOT EXECUTED * by default. */ /* XXX use signal constants */ api->signals_pending = 0; if ( _Objects_Get_API( created->Object.id ) == OBJECTS_POSIX_API && 4b4fc: 701b moveq #27,%d0 <== NOT EXECUTED 4b4fe: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 4b500: 143c 0001 moveb #1,%d2 <== NOT EXECUTED 4b504: b481 cmpl %d1,%d2 <== NOT EXECUTED 4b506: 66ae bnes 4b4b6 <_POSIX_Threads_Create_extension+0xd8> <== 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; 4b508: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 4b50e: 2268 0110 moveal %a0@(272),%a1 <== NOT EXECUTED 4b512: 2569 00c4 00c4 movel %a1@(196),%a2@(196) <== NOT EXECUTED } else { api->signals_blocked = 0xffffffff; } _Thread_queue_Initialize( 4b518: 42a7 clrl %sp@- <== NOT EXECUTED 4b51a: 4878 1000 pea 1000 <== NOT EXECUTED 4b51e: 42a7 clrl %sp@- <== NOT EXECUTED 4b520: 486a 003c pea %a2@(60) <== NOT EXECUTED 4b524: 4eb9 0004 8628 jsr 48628 <_Thread_queue_Initialize> <== NOT EXECUTED THREAD_QUEUE_DISCIPLINE_FIFO, STATES_WAITING_FOR_JOIN_AT_EXIT, 0 ); _Watchdog_Initialize( 4b52a: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED the_watchdog->routine = routine; 4b52e: 223c 0004 b5a0 movel #308640,%d1 <== NOT EXECUTED 4b534: 2541 00b8 movel %d1,%a2@(184) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 4b538: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4b53e: 7201 moveq #1,%d1 <== NOT EXECUTED 4b540: 254b 00c0 movel %a3,%a2@(192) <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 4b544: 2540 00bc movel %d0,%a2@(188) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4b548: 42aa 00a4 clrl %a2@(164) <== NOT EXECUTED 4b54c: 60a2 bras 4b4f0 <_POSIX_Threads_Create_extension+0x112> <== NOT EXECUTED created->Object.id, created ); return true; } 4b54e: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED POSIX_API_Control *api; POSIX_API_Control *executing_api; api = _Workspace_Allocate( sizeof( POSIX_API_Control ) ); if ( !api ) 4b554: 4201 clrb %d1 <== NOT EXECUTED created->Object.id, created ); return true; } 4b556: 4e5e unlk %fp <== NOT EXECUTED 4b558: 1001 moveb %d1,%d0 <== NOT EXECUTED 4b55a: 4e75 rts 0004b34c <_POSIX_Threads_Delete_extension>: User_extensions_routine _POSIX_Threads_Delete_extension( Thread_Control *executing, Thread_Control *deleted ) { 4b34c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4b350: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 4b354: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED Thread_Control *the_thread; POSIX_API_Control *api; void **value_ptr; api = deleted->API_Extensions[ THREAD_API_POSIX ]; 4b358: 286b 0110 moveal %a3@(272),%a4 <== NOT EXECUTED /* * Run the POSIX cancellation handlers */ _POSIX_Threads_cancel_run( deleted ); 4b35c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4b35e: 4eb9 0004 cab8 jsr 4cab8 <_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 )) ) 4b364: 260c movel %a4,%d3 <== NOT EXECUTED _POSIX_Threads_cancel_run( deleted ); /* * Run all the key destructors */ _POSIX_Keys_Run_destructors( deleted ); 4b366: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4b368: 4eb9 0004 cb20 jsr 4cb20 <_POSIX_Keys_Run_destructors> <== NOT EXECUTED /* * Wakeup all the tasks which joined with this one */ value_ptr = (void **) deleted->Wait.return_argument; 4b36e: 242b 0028 movel %a3@(40),%d2 <== NOT EXECUTED while ( (the_thread = _Thread_queue_Dequeue( &api->Join_List )) ) 4b372: 508f addql #8,%sp <== NOT EXECUTED 4b374: 0683 0000 003c addil #60,%d3 <== NOT EXECUTED 4b37a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4b37c: 45f9 0004 8204 lea 48204 <_Thread_queue_Dequeue>,%a2 <== NOT EXECUTED 4b382: 4e92 jsr %a2@ <== NOT EXECUTED 4b384: 588f addql #4,%sp <== NOT EXECUTED 4b386: 2040 moveal %d0,%a0 <== NOT EXECUTED 4b388: 4a80 tstl %d0 <== NOT EXECUTED 4b38a: 6712 beqs 4b39e <_POSIX_Threads_Delete_extension+0x52> <== NOT EXECUTED *(void **)the_thread->Wait.return_argument = value_ptr; 4b38c: 2068 0028 moveal %a0@(40),%a0 <== NOT EXECUTED 4b390: 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 )) ) 4b392: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4b394: 4e92 jsr %a2@ <== NOT EXECUTED 4b396: 588f addql #4,%sp <== NOT EXECUTED 4b398: 2040 moveal %d0,%a0 <== NOT EXECUTED 4b39a: 4a80 tstl %d0 <== NOT EXECUTED 4b39c: 66ee bnes 4b38c <_POSIX_Threads_Delete_extension+0x40> <== NOT EXECUTED *(void **)the_thread->Wait.return_argument = value_ptr; if ( api->schedpolicy == SCHED_SPORADIC ) 4b39e: 7003 moveq #3,%d0 <== NOT EXECUTED 4b3a0: b0ac 007c cmpl %a4@(124),%d0 <== NOT EXECUTED 4b3a4: 6716 beqs 4b3bc <_POSIX_Threads_Delete_extension+0x70> <== NOT EXECUTED (void) _Watchdog_Remove( &api->Sporadic_timer ); deleted->API_Extensions[ THREAD_API_POSIX ] = NULL; 4b3a6: 42ab 0110 clrl %a3@(272) <== NOT EXECUTED (void) _Workspace_Free( api ); 4b3aa: 2d4c 0008 movel %a4,%fp@(8) <== NOT EXECUTED } 4b3ae: 4cee 1c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a4 <== NOT EXECUTED 4b3b4: 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 ); 4b3b6: 4ef9 0004 928c jmp 4928c <_Workspace_Free> <== NOT EXECUTED while ( (the_thread = _Thread_queue_Dequeue( &api->Join_List )) ) *(void **)the_thread->Wait.return_argument = value_ptr; if ( api->schedpolicy == SCHED_SPORADIC ) (void) _Watchdog_Remove( &api->Sporadic_timer ); 4b3bc: 486c 009c pea %a4@(156) <== NOT EXECUTED 4b3c0: 4eb9 0004 9168 jsr 49168 <_Watchdog_Remove> <== NOT EXECUTED deleted->API_Extensions[ THREAD_API_POSIX ] = NULL; 4b3c6: 42ab 0110 clrl %a3@(272) <== NOT EXECUTED while ( (the_thread = _Thread_queue_Dequeue( &api->Join_List )) ) *(void **)the_thread->Wait.return_argument = value_ptr; if ( api->schedpolicy == SCHED_SPORADIC ) (void) _Watchdog_Remove( &api->Sporadic_timer ); 4b3ca: 588f addql #4,%sp <== NOT EXECUTED deleted->API_Extensions[ THREAD_API_POSIX ] = NULL; (void) _Workspace_Free( api ); 4b3cc: 2d4c 0008 movel %a4,%fp@(8) <== NOT EXECUTED } 4b3d0: 4cee 1c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a4 <== NOT EXECUTED 4b3d6: 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 ); 4b3d8: 4ef9 0004 928c jmp 4928c <_Workspace_Free> <== NOT EXECUTED 0004b320 <_POSIX_Threads_Exitted_extension>: */ User_extensions_routine _POSIX_Threads_Exitted_extension( Thread_Control *executing ) { 4b320: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b324: 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 ) 4b328: 4280 clrl %d0 <== NOT EXECUTED 4b32a: 1028 0008 moveb %a0@(8),%d0 <== NOT EXECUTED 4b32e: 7207 moveq #7,%d1 <== NOT EXECUTED 4b330: c081 andl %d1,%d0 <== NOT EXECUTED 4b332: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 4b336: b280 cmpl %d0,%d1 <== NOT EXECUTED 4b338: 6704 beqs 4b33e <_POSIX_Threads_Exitted_extension+0x1e> <== NOT EXECUTED pthread_exit( executing->Wait.return_argument ); } 4b33a: 4e5e unlk %fp <== NOT EXECUTED 4b33c: 4e75 rts <== 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 ); 4b33e: 2d68 0028 0008 movel %a0@(40),%fp@(8) <== NOT EXECUTED } 4b344: 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 ); 4b346: 4ef9 0004 ce06 jmp 4ce06 <== NOT EXECUTED 0004b2a8 <_POSIX_Threads_Initialize_user_threads>: * Output parameters: NONE */ void _POSIX_Threads_Initialize_user_threads( void ) { if ( _POSIX_Threads_Initialize_user_threads_p ) 4b2a8: 2039 0005 8b04 movel 58b04 <_POSIX_Threads_Initialize_user_threads_p>,%d0 <== NOT EXECUTED * * Output parameters: NONE */ void _POSIX_Threads_Initialize_user_threads( void ) { 4b2ae: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( _POSIX_Threads_Initialize_user_threads_p ) 4b2b2: 4a80 tstl %d0 <== NOT EXECUTED 4b2b4: 6706 beqs 4b2bc <_POSIX_Threads_Initialize_user_threads+0x14> <== NOT EXECUTED (*_POSIX_Threads_Initialize_user_threads_p)(); } 4b2b6: 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)(); 4b2b8: 2240 moveal %d0,%a1 <== NOT EXECUTED 4b2ba: 4ed1 jmp %a1@ <== NOT EXECUTED } 4b2bc: 4e5e unlk %fp <== NOT EXECUTED 4b2be: 4e75 rts 00046e68 <_POSIX_Threads_Initialize_user_threads_body>: * * Output parameters: NONE */ void _POSIX_Threads_Initialize_user_threads_body( void ) { 46e68: 4e56 ffa0 linkw %fp,#-96 <== NOT EXECUTED 46e6c: 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; 46e70: 2039 0005 de66 movel 5de66 <_POSIX_Threads_User_initialization_threads>,%d0 <== NOT EXECUTED maximum = _POSIX_Threads_Number_of_initialization_threads; 46e76: 2839 0005 df16 movel 5df16 <_POSIX_Threads_Number_of_initialization_threads>,%d4 <== NOT EXECUTED if ( !user_threads || maximum == 0 ) 46e7c: 4a80 tstl %d0 <== NOT EXECUTED 46e7e: 675e beqs 46ede <_POSIX_Threads_Initialize_user_threads_body+0x76> <== NOT EXECUTED 46e80: 4a84 tstl %d4 <== NOT EXECUTED 46e82: 675a beqs 46ede <_POSIX_Threads_Initialize_user_threads_body+0x76> <== NOT EXECUTED 46e84: 260e movel %fp,%d3 <== NOT EXECUTED 46e86: 2a0e movel %fp,%d5 <== NOT EXECUTED 46e88: 2440 moveal %d0,%a2 <== NOT EXECUTED 46e8a: 4282 clrl %d2 <== NOT EXECUTED 46e8c: 0683 ffff ffc4 addil #-60,%d3 <== NOT EXECUTED 46e92: 2c3c 0004 d820 movel #317472,%d6 <== NOT EXECUTED 46e98: 4bf9 0004 d890 lea 4d890 ,%a5 <== NOT EXECUTED 46e9e: 49f9 0004 d8d8 lea 4d8d8 ,%a4 <== NOT EXECUTED 46ea4: 5985 subql #4,%d5 <== NOT EXECUTED 46ea6: 47f9 0004 6a88 lea 46a88 ,%a3 <== 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 ); 46eac: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46eae: 2046 moveal %d6,%a0 <== NOT EXECUTED 46eb0: 4e90 jsr %a0@ <== NOT EXECUTED (void) pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED ); 46eb2: 4878 0002 pea 2 <== NOT EXECUTED 46eb6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46eb8: 4e95 jsr %a5@ <== NOT EXECUTED (void) pthread_attr_setstacksize(&attr, user_threads[ index ].stack_size); 46eba: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED 46ebe: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46ec0: 4e94 jsr %a4@ <== NOT EXECUTED status = pthread_create( 46ec2: 42a7 clrl %sp@- <== NOT EXECUTED 46ec4: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 46ec6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46ec8: 2f05 movel %d5,%sp@- <== NOT EXECUTED 46eca: 4e93 jsr %a3@ <== NOT EXECUTED &thread_id, &attr, user_threads[ index ].thread_entry, NULL ); if ( status ) 46ecc: dffc 0000 0024 addal #36,%sp <== NOT EXECUTED 46ed2: 4a80 tstl %d0 <== NOT EXECUTED 46ed4: 6612 bnes 46ee8 <_POSIX_Threads_Initialize_user_threads_body+0x80> <== 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++ ) { 46ed6: 5282 addql #1,%d2 <== NOT EXECUTED 46ed8: 508a addql #8,%a2 <== NOT EXECUTED 46eda: b484 cmpl %d4,%d2 <== NOT EXECUTED 46edc: 65ce bcss 46eac <_POSIX_Threads_Initialize_user_threads_body+0x44> <== NOT EXECUTED NULL ); if ( status ) _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, TRUE, status ); } } 46ede: 4cee 3c7c ffa0 moveml %fp@(-96),%d2-%d6/%a2-%a5 <== NOT EXECUTED 46ee4: 4e5e unlk %fp <== NOT EXECUTED 46ee6: 4e75 rts <== NOT EXECUTED &attr, user_threads[ index ].thread_entry, NULL ); if ( status ) _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, TRUE, status ); 46ee8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46eea: 4878 0001 pea 1 <== NOT EXECUTED 46eee: 4878 0002 pea 2 <== NOT EXECUTED 46ef2: 4eb9 0004 9344 jsr 49344 <_Internal_error_Occurred> <== NOT EXECUTED 0004b2c0 <_POSIX_Threads_Manager_initialization>: uint32_t maximum_pthreads, uint32_t number_of_initialization_threads, posix_initialization_threads_table *user_threads ) { 4b2c0: 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( 4b2c4: 4878 00ff pea ff <== NOT EXECUTED uint32_t number_of_initialization_threads, posix_initialization_threads_table *user_threads ) { _POSIX_Threads_Number_of_initialization_threads = 4b2c8: 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( 4b2cc: 4878 0001 pea 1 <== NOT EXECUTED 4b2d0: 4878 0120 pea 120 <== NOT EXECUTED uint32_t number_of_initialization_threads, posix_initialization_threads_table *user_threads ) { _POSIX_Threads_Number_of_initialization_threads = 4b2d4: 23d0 0005 a0c2 movel %a0@,5a0c2 <_POSIX_Threads_Number_of_initialization_threads> <== NOT EXECUTED number_of_initialization_threads; _POSIX_Threads_User_initialization_threads = user_threads; 4b2da: 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( 4b2de: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b2e2: 4878 0001 pea 1 <== NOT EXECUTED 4b2e6: 4878 0003 pea 3 <== NOT EXECUTED 4b2ea: 4879 0005 9e6e pea 59e6e <_POSIX_Threads_Information> <== NOT EXECUTED ) { _POSIX_Threads_Number_of_initialization_threads = number_of_initialization_threads; _POSIX_Threads_User_initialization_threads = user_threads; 4b2f0: 23d0 0005 a012 movel %a0@,5a012 <_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( 4b2f6: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED /* * Add all the extensions for this API */ _User_extensions_Add_API_set( &_POSIX_Threads_User_extensions ); 4b2fc: 4879 0005 857c pea 5857c <_POSIX_Threads_User_extensions> <== NOT EXECUTED 4b302: 4eb9 0004 c530 jsr 4c530 <_User_extensions_Add_API_set> <== NOT EXECUTED _API_extensions_Add( &_POSIX_Threads_API_extensions ); 4b308: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 4b30e: 203c 0005 8568 movel #361832,%d0 <== NOT EXECUTED 4b314: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED /* * If we supported MP, then here we would ... * Register the MP Process Packet routine. */ } 4b318: 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 ); 4b31a: 4ef9 0004 6708 jmp 46708 <_API_extensions_Add> <== NOT EXECUTED 0004b5a0 <_POSIX_Threads_Sporadic_budget_TSR>: void _POSIX_Threads_Sporadic_budget_TSR( Objects_Id id, void *argument ) { 4b5a0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4b5a4: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED 4b5a8: 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 ]; 4b5ac: 266a 0110 moveal %a2@(272),%a3 <== NOT EXECUTED ticks = _Timespec_To_ticks( &api->schedparam.ss_initial_budget ); 4b5b0: 49f9 0004 c4d8 lea 4c4d8 <_Timespec_To_ticks>,%a4 <== NOT EXECUTED 4b5b6: 486b 0090 pea %a3@(144) <== NOT EXECUTED 4b5ba: 4e94 jsr %a4@ <== NOT EXECUTED if ( !ticks ) 4b5bc: 588f addql #4,%sp <== NOT EXECUTED 4b5be: 4a80 tstl %d0 <== NOT EXECUTED 4b5c0: 6604 bnes 4b5c6 <_POSIX_Threads_Sporadic_budget_TSR+0x26> <== NOT EXECUTED 4b5c2: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 4b5c6: 223c 0000 00ff movel #255,%d1 <== NOT EXECUTED 4b5cc: 92ab 0098 subl %a3@(152),%d1 <== NOT EXECUTED ticks = 1; the_thread->cpu_time_budget = ticks; 4b5d0: 2540 0078 movel %d0,%a2@(120) <== NOT EXECUTED new_priority = _POSIX_Priority_To_core( api->ss_high_priority ); the_thread->real_priority = new_priority; 4b5d4: 2541 0018 movel %d1,%a2@(24) <== NOT EXECUTED if ( the_thread->resource_count == 0 || 4b5d8: 4aaa 001c tstl %a2@(28) <== NOT EXECUTED 4b5dc: 673c beqs 4b61a <_POSIX_Threads_Sporadic_budget_TSR+0x7a> <== NOT EXECUTED 4b5de: b2aa 0014 cmpl %a2@(20),%d1 <== NOT EXECUTED 4b5e2: 6536 bcss 4b61a <_POSIX_Threads_Sporadic_budget_TSR+0x7a> <== NOT EXECUTED the_thread->current_priority > new_priority ) _Thread_Change_priority( the_thread, new_priority, TRUE ); ticks = _Timespec_To_ticks( &api->schedparam.ss_replenish_period ); 4b5e4: 486b 0088 pea %a3@(136) <== NOT EXECUTED 4b5e8: 4e94 jsr %a4@ <== NOT EXECUTED if ( !ticks ) 4b5ea: 588f addql #4,%sp <== NOT EXECUTED 4b5ec: 4a80 tstl %d0 <== NOT EXECUTED 4b5ee: 6604 bnes 4b5f4 <_POSIX_Threads_Sporadic_budget_TSR+0x54> <== NOT EXECUTED 4b5f0: 103c 0001 moveb #1,%d0 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4b5f4: 2740 00a8 movel %d0,%a3@(168) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4b5f8: d7fc 0000 009c addal #156,%a3 <== NOT EXECUTED 4b5fe: 2d4b 000c movel %a3,%fp@(12) <== NOT EXECUTED ticks = 1; _Watchdog_Insert_ticks( &api->Sporadic_timer, ticks ); } 4b602: 4cee 1c00 fff4 moveml %fp@(-12),%a2-%a4 <== NOT EXECUTED 4b608: 203c 0005 9d58 movel #367960,%d0 <== NOT EXECUTED 4b60e: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED 4b612: 4e5e unlk %fp <== NOT EXECUTED 4b614: 4ef9 0004 9020 jmp 49020 <_Watchdog_Insert> <== NOT EXECUTED new_priority = _POSIX_Priority_To_core( api->ss_high_priority ); the_thread->real_priority = new_priority; if ( the_thread->resource_count == 0 || the_thread->current_priority > new_priority ) _Thread_Change_priority( the_thread, new_priority, TRUE ); 4b61a: 4878 0001 pea 1 <== NOT EXECUTED 4b61e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4b620: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b622: 4eb9 0004 78e0 jsr 478e0 <_Thread_Change_priority> <== NOT EXECUTED 4b628: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4b62e: 60b4 bras 4b5e4 <_POSIX_Threads_Sporadic_budget_TSR+0x44> <== NOT EXECUTED 0004b55c <_POSIX_Threads_Sporadic_budget_callout>: */ void _POSIX_Threads_Sporadic_budget_callout( Thread_Control *the_thread ) { 4b55c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b560: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED POSIX_API_Control *api; uint32_t new_priority; api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 4b564: 2069 0110 moveal %a1@(272),%a0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Priority_Control _POSIX_Priority_To_core( int priority ) { return (Priority_Control) (255 - priority); 4b568: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 4b56e: 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 */ 4b572: 72ff moveq #-1,%d1 <== NOT EXECUTED 4b574: 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; 4b578: 2340 0018 movel %d0,%a1@(24) <== NOT EXECUTED if ( the_thread->resource_count == 0 || 4b57c: 4aa9 001c tstl %a1@(28) <== NOT EXECUTED 4b580: 6706 beqs 4b588 <_POSIX_Threads_Sporadic_budget_callout+0x2c> <== NOT EXECUTED 4b582: b0a9 0014 cmpl %a1@(20),%d0 <== NOT EXECUTED 4b586: 6414 bccs 4b59c <_POSIX_Threads_Sporadic_budget_callout+0x40> <== NOT EXECUTED the_thread->current_priority > new_priority ) _Thread_Change_priority( the_thread, new_priority, TRUE ); 4b588: 4878 0001 pea 1 <== NOT EXECUTED 4b58c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4b58e: 2f09 movel %a1,%sp@- <== NOT EXECUTED 4b590: 4eb9 0004 78e0 jsr 478e0 <_Thread_Change_priority> <== NOT EXECUTED 4b596: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 4b59c: 4e5e unlk %fp <== NOT EXECUTED 4b59e: 4e75 rts 0004cab8 <_POSIX_Threads_cancel_run>: #include void _POSIX_Threads_cancel_run( Thread_Control *the_thread ) { 4cab8: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4cabc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4cac0: 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 ]; 4cac4: 2868 0110 moveal %a0@(272),%a4 <== NOT EXECUTED handler_stack = &thread_support->Cancellation_Handlers; thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE; 4cac8: 7001 moveq #1,%d0 <== NOT EXECUTED 4caca: 2940 00cc movel %d0,%a4@(204) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 4cace: 47ec 00dc lea %a4@(220),%a3 <== NOT EXECUTED while ( !_Chain_Is_empty( handler_stack ) ) { 4cad2: b7ec 00d8 cmpal %a4@(216),%a3 <== NOT EXECUTED 4cad6: 673c beqs 4cb14 <_POSIX_Threads_cancel_run+0x5c> <== NOT EXECUTED 4cad8: 4bf9 0004 928c lea 4928c <_Workspace_Free>,%a5 <== NOT EXECUTED _ISR_Disable( level ); 4cade: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED 4cae4: 2202 movel %d2,%d1 <== NOT EXECUTED 4cae6: 40c0 movew %sr,%d0 <== NOT EXECUTED 4cae8: 8280 orl %d0,%d1 <== NOT EXECUTED 4caea: 46c1 movew %d1,%sr <== NOT EXECUTED handler = (POSIX_Cancel_Handler_control *) 4caec: 246b 0004 moveal %a3@(4),%a2 <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 4caf0: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 4caf2: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED next->previous = previous; previous->next = next; 4caf6: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4caf8: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED _Chain_Tail( handler_stack )->previous; _Chain_Extract_unprotected( &handler->Node ); _ISR_Enable( level ); 4cafc: 46c0 movew %d0,%sr <== NOT EXECUTED (*handler->routine)( handler->arg ); 4cafe: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 4cb02: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 4cb06: 4e90 jsr %a0@ <== NOT EXECUTED _Workspace_Free( handler ); 4cb08: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4cb0a: 4e95 jsr %a5@ <== NOT EXECUTED handler_stack = &thread_support->Cancellation_Handlers; thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE; while ( !_Chain_Is_empty( handler_stack ) ) { 4cb0c: 508f addql #8,%sp <== NOT EXECUTED 4cb0e: b7ec 00d8 cmpal %a4@(216),%a3 <== NOT EXECUTED 4cb12: 66d0 bnes 4cae4 <_POSIX_Threads_cancel_run+0x2c> <== NOT EXECUTED (*handler->routine)( handler->arg ); _Workspace_Free( handler ); } } 4cb14: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4cb1a: 4e5e unlk %fp <== NOT EXECUTED 4cb1c: 4e75 rts <== NOT EXECUTED ... 0004daa0 <_POSIX_Timer_Insert_helper>: Watchdog_Interval ticks, Objects_Id id, Watchdog_Service_routine_entry TSR, void *arg ) { 4daa0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4daa4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4daa6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4daaa: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; (void) _Watchdog_Remove( timer ); 4daac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4daae: 4eb9 0004 b33c jsr 4b33c <_Watchdog_Remove> <== NOT EXECUTED _ISR_Disable( level ); 4dab4: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4daba: 40c2 movew %sr,%d2 <== NOT EXECUTED 4dabc: 8082 orl %d2,%d0 <== NOT EXECUTED 4dabe: 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 ) { 4dac0: 588f addql #4,%sp <== NOT EXECUTED 4dac2: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 4dac6: 6710 beqs 4dad8 <_POSIX_Timer_Insert_helper+0x38> <== NOT EXECUTED _ISR_Enable( level ); 4dac8: 46c2 movew %d2,%sr <== NOT EXECUTED */ _Watchdog_Initialize( timer, TSR, id, arg ); _Watchdog_Insert_ticks( timer, ticks ); _ISR_Enable( level ); return true; } 4daca: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4dace: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4dad2: 4e5e unlk %fp <== 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 ) { _ISR_Enable( level ); 4dad4: 4200 clrb %d0 <== NOT EXECUTED */ _Watchdog_Initialize( timer, TSR, id, arg ); _Watchdog_Insert_ticks( timer, ticks ); _ISR_Enable( level ); return true; } 4dad6: 4e75 rts <== NOT EXECUTED 4dad8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4dada: 4879 0005 d7d0 pea 5d7d0 <_Watchdog_Ticks_chain> <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 4dae0: 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; 4dae6: 256e 0014 001c movel %fp@(20),%a2@(28) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 4daec: 256e 0018 0024 movel %fp@(24),%a2@(36) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4daf2: 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; 4daf8: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 4dafc: 4eb9 0004 b1f4 jsr 4b1f4 <_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 ); 4db02: 46c2 movew %d2,%sr <== NOT EXECUTED return true; } 4db04: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4db08: 246e fffc moveal %fp@(-4),%a2 <== 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 ); 4db0c: 508f addql #8,%sp <== NOT EXECUTED return true; } 4db0e: 4e5e unlk %fp <== 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 ); 4db10: 7001 moveq #1,%d0 <== NOT EXECUTED return true; } 4db12: 4e75 rts 0004b630 <_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 ) { 4b630: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b634: 4878 00ff pea ff <== NOT EXECUTED 4b638: 4878 0001 pea 1 <== NOT EXECUTED 4b63c: 4878 0072 pea 72 <== NOT EXECUTED 4b640: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b644: 4878 0009 pea 9 <== NOT EXECUTED 4b648: 4878 0003 pea 3 <== NOT EXECUTED 4b64c: 4879 0005 9f22 pea 59f22 <_POSIX_Timer_Information> <== NOT EXECUTED 4b652: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b658: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4b65e: 4e5e unlk %fp <== NOT EXECUTED 4b660: 4e75 rts <== NOT EXECUTED ... 00047414 <_POSIX_Timer_TSR>: /* * This is the operation that is run when a timer expires */ void _POSIX_Timer_TSR(Objects_Id timer, void *data) { 47414: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47418: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4741a: 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; 4741e: 52aa 0066 addql #1,%a2@(102) <== NOT EXECUTED /* The timer must be reprogrammed */ if ( ( ptimer->timer_data.it_interval.tv_sec != 0 ) || 47422: 4aaa 0052 tstl %a2@(82) <== NOT EXECUTED 47426: 6606 bnes 4742e <_POSIX_Timer_TSR+0x1a> <== NOT EXECUTED 47428: 4aaa 0056 tstl %a2@(86) <== NOT EXECUTED 4742c: 672c beqs 4745a <_POSIX_Timer_TSR+0x46> <== NOT EXECUTED ( ptimer->timer_data.it_interval.tv_nsec != 0 ) ) { activated = _POSIX_Timer_Insert_helper( 4742e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47430: 4879 0004 7414 pea 47414 <_POSIX_Timer_TSR> <== NOT EXECUTED 47436: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 4743a: 2f2a 0062 movel %a2@(98),%sp@- <== NOT EXECUTED 4743e: 486a 0010 pea %a2@(16) <== NOT EXECUTED 47442: 4eb9 0004 daa0 jsr 4daa0 <_POSIX_Timer_Insert_helper> <== NOT EXECUTED ptimer->ticks, ptimer->Object.id, _POSIX_Timer_TSR, ptimer ); if ( !activated ) 47448: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4744e: 4a00 tstb %d0 <== NOT EXECUTED 47450: 662a bnes 4747c <_POSIX_Timer_TSR+0x68> <== NOT EXECUTED /* After the signal handler returns, the count of expirations of the * timer must be set to 0. */ ptimer->overrun = 0; } 47452: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47456: 4e5e unlk %fp <== NOT EXECUTED 47458: 4e75 rts <== NOT EXECUTED /* The state really did not change but just to be safe */ ptimer->state = POSIX_TIMER_STATE_CREATE_RUN; } else { /* Indicates that the timer is stopped */ ptimer->state = POSIX_TIMER_STATE_CREATE_STOP; 4745a: 7004 moveq #4,%d0 <== NOT EXECUTED 4745c: 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 ) ) { 47460: 2f2a 0042 movel %a2@(66),%sp@- <== NOT EXECUTED 47464: 2f2a 0038 movel %a2@(56),%sp@- <== NOT EXECUTED 47468: 4eb9 0004 d750 jsr 4d750 <== NOT EXECUTED } /* After the signal handler returns, the count of expirations of the * timer must be set to 0. */ ptimer->overrun = 0; 4746e: 508f addql #8,%sp <== NOT EXECUTED 47470: 42aa 0066 clrl %a2@(102) <== NOT EXECUTED } 47474: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47478: 4e5e unlk %fp <== NOT EXECUTED 4747a: 4e75 rts <== NOT EXECUTED ); if ( !activated ) return; /* Store the time when the timer was started again */ _TOD_Get( &ptimer->time ); 4747c: 486a 006a pea %a2@(106) <== NOT EXECUTED 47480: 4eb9 0004 8dc8 jsr 48dc8 <_TOD_Get> <== NOT EXECUTED /* The state really did not change but just to be safe */ ptimer->state = POSIX_TIMER_STATE_CREATE_RUN; 47486: 588f addql #4,%sp <== NOT EXECUTED 47488: 7003 moveq #3,%d0 <== NOT EXECUTED 4748a: 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 ) ) { 4748e: 2f2a 0042 movel %a2@(66),%sp@- <== NOT EXECUTED 47492: 2f2a 0038 movel %a2@(56),%sp@- <== NOT EXECUTED 47496: 4eb9 0004 d750 jsr 4d750 <== NOT EXECUTED } /* After the signal handler returns, the count of expirations of the * timer must be set to 0. */ ptimer->overrun = 0; 4749c: 42aa 0066 clrl %a2@(102) <== NOT EXECUTED 474a0: 508f addql #8,%sp <== NOT EXECUTED 474a2: 60d0 bras 47474 <_POSIX_Timer_TSR+0x60> <== NOT EXECUTED 0004b266 <_POSIX_signals_Abnormal_termination_handler>: /*** PROCESS WIDE STUFF ****/ sigset_t _POSIX_signals_Pending; void _POSIX_signals_Abnormal_termination_handler( int signo ) { 4b266: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED exit( 1 ); 4b26a: 4878 0001 pea 1 <== NOT EXECUTED 4b26e: 4eb9 0004 d3d0 jsr 4d3d0 <== NOT EXECUTED 0004772a <_POSIX_signals_Alarm_TSR>: void _POSIX_signals_Alarm_TSR( Objects_Id id, void *argument ) { 4772a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED int status; status = kill( getpid(), SIGALRM ); 4772e: 4eb9 0004 4b10 jsr 44b10 <== NOT EXECUTED 47734: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED 47738: 700e moveq #14,%d0 <== NOT EXECUTED 4773a: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED /* XXX can't print from an ISR, should this be fatal? */ } 4773e: 4e5e unlk %fp <== NOT EXECUTED void *argument ) { int status; status = kill( getpid(), SIGALRM ); 47740: 4ef9 0004 77d0 jmp 477d0 <== NOT EXECUTED ... 0004cbb4 <_POSIX_signals_Check_signal>: bool _POSIX_signals_Check_signal( POSIX_API_Control *api, int signo, bool is_global ) { 4cbb4: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 4cbb8: 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, 4cbbc: 4878 0001 pea 1 <== NOT EXECUTED 4cbc0: 4280 clrl %d0 <== NOT EXECUTED 4cbc2: 102e 0013 moveb %fp@(19),%d0 <== NOT EXECUTED 4cbc6: 2f00 movel %d0,%sp@- <== NOT EXECUTED bool _POSIX_signals_Check_signal( POSIX_API_Control *api, int signo, bool is_global ) { 4cbc8: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED siginfo_t siginfo_struct; sigset_t saved_signals_blocked; if ( ! _POSIX_signals_Clear_signals( api, signo, &siginfo_struct, 4cbcc: 280e movel %fp,%d4 <== NOT EXECUTED 4cbce: 0684 ffff fff4 addil #-12,%d4 <== NOT EXECUTED 4cbd4: 2f04 movel %d4,%sp@- <== NOT EXECUTED bool _POSIX_signals_Check_signal( POSIX_API_Control *api, int signo, bool is_global ) { 4cbd6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED siginfo_t siginfo_struct; sigset_t saved_signals_blocked; if ( ! _POSIX_signals_Clear_signals( api, signo, &siginfo_struct, 4cbda: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cbdc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4cbde: 4eb9 0004 cc64 jsr 4cc64 <_POSIX_signals_Clear_signals> <== NOT EXECUTED 4cbe4: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4cbea: 4a00 tstb %d0 <== NOT EXECUTED 4cbec: 6752 beqs 4cc40 <_POSIX_signals_Check_signal+0x8c> <== NOT EXECUTED #endif /* * Just to prevent sending a signal which is currently being ignored. */ if ( _POSIX_signals_Vectors[ signo ].sa_handler == SIG_IGN ) 4cbee: 2002 movel %d2,%d0 <== NOT EXECUTED 4cbf0: 2202 movel %d2,%d1 <== NOT EXECUTED 4cbf2: e588 lsll #2,%d0 <== NOT EXECUTED 4cbf4: e989 lsll #4,%d1 <== NOT EXECUTED 4cbf6: 9280 subl %d0,%d1 <== NOT EXECUTED 4cbf8: 2641 moveal %d1,%a3 <== NOT EXECUTED 4cbfa: d7fc 0005 a18e addal #369038,%a3 <== NOT EXECUTED 4cc00: 2253 moveal %a3@,%a1 <== NOT EXECUTED 4cc02: 49f9 0005 a186 lea 5a186 <_POSIX_signals_Vectors>,%a4 <== NOT EXECUTED 4cc08: 7001 moveq #1,%d0 <== NOT EXECUTED 4cc0a: b089 cmpl %a1,%d0 <== NOT EXECUTED 4cc0c: 6732 beqs 4cc40 <_POSIX_signals_Check_signal+0x8c> <== NOT EXECUTED /* * Block the signals requested in sa_mask */ saved_signals_blocked = api->signals_blocked; api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask; 4cc0e: 2a42 moveal %d2,%a5 <== NOT EXECUTED 4cc10: 41f5 2a01 lea %a5@(00000001,%d2:l:2),%a0 <== NOT EXECUTED 4cc14: 2034 8c00 movel %a4@(00000000,%a0:l:4),%d0 <== NOT EXECUTED return false; /* * Block the signals requested in sa_mask */ saved_signals_blocked = api->signals_blocked; 4cc18: 262a 00c4 movel %a2@(196),%d3 <== NOT EXECUTED api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask; 4cc1c: 8083 orl %d3,%d0 <== NOT EXECUTED 4cc1e: 2540 00c4 movel %d0,%a2@(196) <== NOT EXECUTED /* * Here, the signal handler function executes */ switch ( _POSIX_signals_Vectors[ signo ].sa_flags ) { 4cc22: 7002 moveq #2,%d0 <== NOT EXECUTED 4cc24: b0b4 1800 cmpl %a4@(00000000,%d1:l),%d0 <== NOT EXECUTED 4cc28: 6722 beqs 4cc4c <_POSIX_signals_Check_signal+0x98> <== NOT EXECUTED &siginfo_struct, NULL /* context is undefined per 1003.1b-1993, p. 66 */ ); break; default: (*_POSIX_signals_Vectors[ signo ].sa_handler)( signo ); 4cc2a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cc2c: 4e91 jsr %a1@ <== NOT EXECUTED 4cc2e: 588f addql #4,%sp <== NOT EXECUTED } /* * Restore the previous set of blocked signals */ api->signals_blocked = saved_signals_blocked; 4cc30: 7001 moveq #1,%d0 <== NOT EXECUTED 4cc32: 2543 00c4 movel %d3,%a2@(196) <== NOT EXECUTED return true; } 4cc36: 4cee 3c1c ffd8 moveml %fp@(-40),%d2-%d4/%a2-%a5 <== NOT EXECUTED 4cc3c: 4e5e unlk %fp <== NOT EXECUTED 4cc3e: 4e75 rts <== NOT EXECUTED 4cc40: 4cee 3c1c ffd8 moveml %fp@(-40),%d2-%d4/%a2-%a5 <== NOT EXECUTED 4cc46: 4e5e unlk %fp <== NOT EXECUTED /* * Restore the previous set of blocked signals */ api->signals_blocked = saved_signals_blocked; return true; 4cc48: 4200 clrb %d0 <== NOT EXECUTED } 4cc4a: 4e75 rts <== NOT EXECUTED /* * Here, the signal handler function executes */ switch ( _POSIX_signals_Vectors[ signo ].sa_flags ) { case SA_SIGINFO: (*_POSIX_signals_Vectors[ signo ].sa_sigaction)( 4cc4c: 42a7 clrl %sp@- <== NOT EXECUTED 4cc4e: 2053 moveal %a3@,%a0 <== NOT EXECUTED 4cc50: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4cc52: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cc54: 4e90 jsr %a0@ <== NOT EXECUTED 4cc56: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } /* * Restore the previous set of blocked signals */ api->signals_blocked = saved_signals_blocked; 4cc5c: 2543 00c4 movel %d3,%a2@(196) <== NOT EXECUTED 4cc60: 7001 moveq #1,%d0 <== NOT EXECUTED 4cc62: 60d2 bras 4cc36 <_POSIX_signals_Check_signal+0x82> <== NOT EXECUTED 0004d35c <_POSIX_signals_Clear_process_signals>: */ void _POSIX_signals_Clear_process_signals( sigset_t mask ) { 4d35c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d360: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4d362: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED */ void _POSIX_signals_Clear_process_signals( sigset_t mask ) { 4d368: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4d36c: 40c2 movew %sr,%d2 <== NOT EXECUTED 4d36e: 8282 orl %d2,%d1 <== NOT EXECUTED 4d370: 46c1 movew %d1,%sr <== NOT EXECUTED _POSIX_signals_Pending &= ~mask; 4d372: 4680 notl %d0 <== NOT EXECUTED 4d374: c0b9 0005 a352 andl 5a352 <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4d37a: 23c0 0005 a352 movel %d0,5a352 <_POSIX_signals_Pending> <== NOT EXECUTED if ( !_POSIX_signals_Pending ) 4d380: 6606 bnes 4d388 <_POSIX_signals_Clear_process_signals+0x2c> <== NOT EXECUTED _Thread_Do_post_task_switch_extension--; 4d382: 53b9 0005 9d22 subql #1,59d22 <_Thread_Do_post_task_switch_extension> <== NOT EXECUTED _ISR_Enable( level ); 4d388: 46c2 movew %d2,%sr <== NOT EXECUTED } 4d38a: 241f movel %sp@+,%d2 <== NOT EXECUTED 4d38c: 4e5e unlk %fp <== NOT EXECUTED 4d38e: 4e75 rts 0004cc64 <_POSIX_signals_Clear_signals>: int signo, siginfo_t *info, bool is_global, bool check_blocked ) { 4cc64: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4cc68: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 4cc6c: 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 ); 4cc70: 2003 movel %d3,%d0 <== NOT EXECUTED 4cc72: 7401 moveq #1,%d2 <== NOT EXECUTED 4cc74: 5380 subql #1,%d0 <== NOT EXECUTED int signo, siginfo_t *info, bool is_global, bool check_blocked ) { 4cc76: 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 ); 4cc7a: e1aa lsll %d0,%d2 <== NOT EXECUTED int signo, siginfo_t *info, bool is_global, bool check_blocked ) { 4cc7c: 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 ) 4cc80: 4a2e 001b tstb %fp@(27) <== NOT EXECUTED 4cc84: 6600 009a bnew 4cd20 <_POSIX_signals_Clear_signals+0xbc> <== NOT EXECUTED 4cc88: 72ff moveq #-1,%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 ); 4cc8a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4cc90: 40c5 movew %sr,%d5 <== NOT EXECUTED 4cc92: 8085 orl %d5,%d0 <== NOT EXECUTED 4cc94: 46c0 movew %d0,%sr <== NOT EXECUTED if ( is_global ) { 4cc96: 4a04 tstb %d4 <== NOT EXECUTED 4cc98: 6700 009e beqw 4cd38 <_POSIX_signals_Clear_signals+0xd4> <== NOT EXECUTED if ( mask & (_POSIX_signals_Pending & signals_blocked) ) { 4cc9c: 2002 movel %d2,%d0 <== NOT EXECUTED 4cc9e: c0b9 0005 a352 andl 5a352 <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4cca4: c081 andl %d1,%d0 <== NOT EXECUTED 4cca6: 6700 00b4 beqw 4cd5c <_POSIX_signals_Clear_signals+0xf8> <== NOT EXECUTED if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) { 4ccaa: 2003 movel %d3,%d0 <== NOT EXECUTED 4ccac: e988 lsll #4,%d0 <== NOT EXECUTED 4ccae: e58b lsll #2,%d3 <== NOT EXECUTED 4ccb0: 9083 subl %d3,%d0 <== NOT EXECUTED 4ccb2: 41f9 0005 a186 lea 5a186 <_POSIX_signals_Vectors>,%a0 <== NOT EXECUTED 4ccb8: 7202 moveq #2,%d1 <== NOT EXECUTED 4ccba: b2b0 0800 cmpl %a0@(00000000,%d0:l),%d1 <== NOT EXECUTED 4ccbe: 6600 00aa bnew 4cd6a <_POSIX_signals_Clear_signals+0x106> <== NOT EXECUTED psiginfo = (POSIX_signals_Siginfo_node *) 4ccc2: 2640 moveal %d0,%a3 <== NOT EXECUTED 4ccc4: d7fc 0005 a356 addal #369494,%a3 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 4ccca: 284b moveal %a3,%a4 <== NOT EXECUTED 4cccc: 225c moveal %a4@+,%a1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected( Chain_Control *the_chain ) { if ( !_Chain_Is_empty(the_chain)) 4ccce: b9c9 cmpal %a1,%a4 <== NOT EXECUTED 4ccd0: 6700 00b0 beqw 4cd82 <_POSIX_signals_Clear_signals+0x11e> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 4ccd4: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_chain->first = new_first; 4ccd6: 2688 movel %a0,%a3@ <== NOT EXECUTED 4ccd8: 2449 moveal %a1,%a2 <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 4ccda: 214b 0004 movel %a3,%a0@(4) <== NOT EXECUTED _Chain_Get_unprotected( &_POSIX_signals_Siginfo[ signo ] ); if ( _Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) ) 4ccde: b1cc cmpal %a4,%a0 <== NOT EXECUTED 4cce0: 6700 00a2 beqw 4cd84 <_POSIX_signals_Clear_signals+0x120> <== NOT EXECUTED _POSIX_signals_Clear_process_signals( mask ); if ( psiginfo ) { 4cce4: 4a8a tstl %a2 <== NOT EXECUTED 4cce6: 6700 008c beqw 4cd74 <_POSIX_signals_Clear_signals+0x110> <== NOT EXECUTED *info = psiginfo->Info; 4ccea: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4ccee: 24bc 0005 a30a movel #369418,%a2@ <== NOT EXECUTED old_last_node = the_chain->last; 4ccf4: 2279 0005 a30e moveal 5a30e <_POSIX_signals_Inactive_siginfo+0x8>,%a1 <== NOT EXECUTED 4ccfa: 20ea 0008 movel %a2@(8),%a0@+ <== NOT EXECUTED the_chain->last = the_node; old_last_node->next = the_node; the_node->previous = old_last_node; 4ccfe: 7001 moveq #1,%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; 4cd00: 23ca 0005 a30e movel %a2,5a30e <_POSIX_signals_Inactive_siginfo+0x8> <== NOT EXECUTED 4cd06: 20ea 000c movel %a2@(12),%a0@+ <== NOT EXECUTED 4cd0a: 20aa 0010 movel %a2@(16),%a0@ <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4cd0e: 2549 0004 movel %a1,%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; 4cd12: 228a movel %a2,%a1@ <== NOT EXECUTED if ( mask & (api->signals_pending & signals_blocked) ) { api->signals_pending &= ~mask; do_callout = true; } } _ISR_Enable( level ); 4cd14: 46c5 movew %d5,%sr <== NOT EXECUTED return do_callout; } 4cd16: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4cd1c: 4e5e unlk %fp <== NOT EXECUTED 4cd1e: 4e75 rts <== 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 ) signals_blocked = ~api->signals_blocked; 4cd20: 2228 00c4 movel %a0@(196),%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 ); 4cd24: 203c 0000 0700 movel #1792,%d0 <== 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 ) signals_blocked = ~api->signals_blocked; 4cd2a: 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 ); 4cd2c: 40c5 movew %sr,%d5 <== NOT EXECUTED 4cd2e: 8085 orl %d5,%d0 <== NOT EXECUTED 4cd30: 46c0 movew %d0,%sr <== NOT EXECUTED if ( is_global ) { 4cd32: 4a04 tstb %d4 <== NOT EXECUTED 4cd34: 6600 ff66 bnew 4cc9c <_POSIX_signals_Clear_signals+0x38> <== NOT EXECUTED } else _POSIX_signals_Clear_process_signals( mask ); do_callout = true; } } else { if ( mask & (api->signals_pending & signals_blocked) ) { 4cd38: 2628 00c8 movel %a0@(200),%d3 <== NOT EXECUTED 4cd3c: 2002 movel %d2,%d0 <== NOT EXECUTED 4cd3e: c083 andl %d3,%d0 <== NOT EXECUTED 4cd40: c081 andl %d1,%d0 <== NOT EXECUTED 4cd42: 6718 beqs 4cd5c <_POSIX_signals_Clear_signals+0xf8> <== NOT EXECUTED api->signals_pending &= ~mask; 4cd44: 2002 movel %d2,%d0 <== NOT EXECUTED 4cd46: 4680 notl %d0 <== NOT EXECUTED 4cd48: c083 andl %d3,%d0 <== NOT EXECUTED 4cd4a: 2140 00c8 movel %d0,%a0@(200) <== NOT EXECUTED 4cd4e: 7001 moveq #1,%d0 <== NOT EXECUTED do_callout = true; } } _ISR_Enable( level ); 4cd50: 46c5 movew %d5,%sr <== NOT EXECUTED return do_callout; } 4cd52: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4cd58: 4e5e unlk %fp <== NOT EXECUTED 4cd5a: 4e75 rts <== NOT EXECUTED _POSIX_signals_Clear_process_signals( mask ); do_callout = true; } } else { if ( mask & (api->signals_pending & signals_blocked) ) { api->signals_pending &= ~mask; 4cd5c: 4200 clrb %d0 <== NOT EXECUTED do_callout = true; } } _ISR_Enable( level ); 4cd5e: 46c5 movew %d5,%sr <== NOT EXECUTED return do_callout; } 4cd60: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4cd66: 4e5e unlk %fp <== NOT EXECUTED 4cd68: 4e75 rts <== NOT EXECUTED &psiginfo->Node ); } else do_callout = false; } else _POSIX_signals_Clear_process_signals( mask ); 4cd6a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cd6c: 4eb9 0004 d35c jsr 4d35c <_POSIX_signals_Clear_process_signals> <== NOT EXECUTED 4cd72: 588f addql #4,%sp <== NOT EXECUTED 4cd74: 7001 moveq #1,%d0 <== NOT EXECUTED if ( mask & (api->signals_pending & signals_blocked) ) { api->signals_pending &= ~mask; do_callout = true; } } _ISR_Enable( level ); 4cd76: 46c5 movew %d5,%sr <== NOT EXECUTED return do_callout; } 4cd78: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4cd7e: 4e5e unlk %fp <== NOT EXECUTED 4cd80: 4e75 rts <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected( Chain_Control *the_chain ) { if ( !_Chain_Is_empty(the_chain)) 4cd82: 95ca subal %a2,%a2 <== NOT EXECUTED if ( mask & (_POSIX_signals_Pending & signals_blocked) ) { if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) { psiginfo = (POSIX_signals_Siginfo_node *) _Chain_Get_unprotected( &_POSIX_signals_Siginfo[ signo ] ); if ( _Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) ) _POSIX_signals_Clear_process_signals( mask ); 4cd84: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cd86: 4eb9 0004 d35c jsr 4d35c <_POSIX_signals_Clear_process_signals> <== NOT EXECUTED 4cd8c: 588f addql #4,%sp <== NOT EXECUTED 4cd8e: 6000 ff54 braw 4cce4 <_POSIX_signals_Clear_signals+0x80> <== NOT EXECUTED ... 00046750 <_POSIX_signals_Get_highest>: #include int _POSIX_signals_Get_highest( sigset_t set ) { 46750: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46754: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46756: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 4675a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4675c: 307c 001b moveaw #27,%a0 <== NOT EXECUTED int signo; for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { if ( set & signo_to_mask( signo ) ) 46760: 7401 moveq #1,%d2 <== NOT EXECUTED 46762: 2208 movel %a0,%d1 <== NOT EXECUTED 46764: 5381 subql #1,%d1 <== NOT EXECUTED 46766: 2002 movel %d2,%d0 <== NOT EXECUTED 46768: e3a8 lsll %d1,%d0 <== NOT EXECUTED 4676a: c083 andl %d3,%d0 <== NOT EXECUTED 4676c: 6628 bnes 46796 <_POSIX_signals_Get_highest+0x46> <== NOT EXECUTED sigset_t set ) { int signo; for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { 4676e: 5288 addql #1,%a0 <== NOT EXECUTED 46770: 103c 0020 moveb #32,%d0 <== NOT EXECUTED 46774: b088 cmpl %a0,%d0 <== NOT EXECUTED 46776: 66ea bnes 46762 <_POSIX_signals_Get_highest+0x12> <== NOT EXECUTED 46778: 307c 0001 moveaw #1,%a0 <== 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 ) ) 4677c: 7401 moveq #1,%d2 <== NOT EXECUTED 4677e: 2208 movel %a0,%d1 <== NOT EXECUTED 46780: 5381 subql #1,%d1 <== NOT EXECUTED 46782: 2002 movel %d2,%d0 <== NOT EXECUTED 46784: e3a8 lsll %d1,%d0 <== NOT EXECUTED 46786: c083 andl %d3,%d0 <== NOT EXECUTED 46788: 660c bnes 46796 <_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++ ) { 4678a: 5288 addql #1,%a0 <== NOT EXECUTED 4678c: 103c 001b moveb #27,%d0 <== NOT EXECUTED 46790: b088 cmpl %a0,%d0 <== NOT EXECUTED 46792: 66ea bnes 4677e <_POSIX_signals_Get_highest+0x2e> <== NOT EXECUTED 46794: 91c8 subal %a0,%a0 <== NOT EXECUTED if ( set & signo_to_mask( signo ) ) return signo; } return 0; } 46796: 241f movel %sp@+,%d2 <== NOT EXECUTED 46798: 261f movel %sp@+,%d3 <== NOT EXECUTED 4679a: 4e5e unlk %fp <== NOT EXECUTED 4679c: 2008 movel %a0,%d0 <== NOT EXECUTED 4679e: 4e75 rts 0004b0d4 <_POSIX_signals_Manager_Initialization>: */ void _POSIX_signals_Manager_Initialization( int maximum_queued_signals ) { 4b0d4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b0d8: 2f02 movel %d2,%sp@- <== NOT EXECUTED assert( sizeof(_POSIX_signals_Vectors) == sizeof(_POSIX_signals_Default_vectors) ); memcpy( 4b0da: 4878 0180 pea 180 <== NOT EXECUTED */ void _POSIX_signals_Manager_Initialization( int maximum_queued_signals ) { 4b0de: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED assert( sizeof(_POSIX_signals_Vectors) == sizeof(_POSIX_signals_Default_vectors) ); memcpy( 4b0e2: 4879 0005 728c pea 5728c <_POSIX_signals_Default_vectors> <== NOT EXECUTED 4b0e8: 4879 0005 a186 pea 5a186 <_POSIX_signals_Vectors> <== NOT EXECUTED 4b0ee: 4eb9 0004 db78 jsr 4db78 <== NOT EXECUTED /* * Initialize the set of pending signals for the entire process */ sigemptyset( &_POSIX_signals_Pending ); 4b0f4: 4879 0005 a352 pea 5a352 <_POSIX_signals_Pending> <== NOT EXECUTED 4b0fa: 4eb9 0004 b698 jsr 4b698 <== NOT EXECUTED /* * Initialize the queue we use to block for signals */ _Thread_queue_Initialize( 4b100: 4878 000b pea b <== NOT EXECUTED 4b104: 2f3c 1000 8000 movel #268468224,%sp@- <== NOT EXECUTED 4b10a: 4878 0001 pea 1 <== NOT EXECUTED 4b10e: 4879 0005 a312 pea 5a312 <_POSIX_signals_Wait_queue> <== NOT EXECUTED 4b114: 4eb9 0004 8628 jsr 48628 <_Thread_queue_Initialize> <== NOT EXECUTED 4b11a: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 4b120: 41f9 0005 a362 lea 5a362 <_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); 4b126: 2008 movel %a0,%d0 <== NOT EXECUTED 4b128: 5880 addql #4,%d0 <== NOT EXECUTED 4b12a: 2080 movel %d0,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 4b12c: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 4b130: 2148 0008 movel %a0,%a0@(8) <== NOT EXECUTED 4b134: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED /* * Allocate the siginfo pools. */ for ( signo=1 ; signo<= SIGRTMAX ; signo++ ) 4b13a: b1fc 0005 a4d6 cmpal #369878,%a0 <== NOT EXECUTED 4b140: 66e4 bnes 4b126 <_POSIX_signals_Manager_Initialization+0x52> <== NOT EXECUTED _Chain_Initialize_empty( &_POSIX_signals_Siginfo[ signo ] ); if ( maximum_queued_signals ) { 4b142: 4a82 tstl %d2 <== NOT EXECUTED 4b144: 6626 bnes 4b16c <_POSIX_signals_Manager_Initialization+0x98> <== NOT EXECUTED sizeof( POSIX_signals_Siginfo_node ) ); } else { _Chain_Initialize_empty( &_POSIX_signals_Inactive_siginfo ); } } 4b146: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4b14a: 203c 0005 a30a movel #369418,%d0 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4b150: 41f9 0005 a306 lea 5a306 <_POSIX_signals_Inactive_siginfo>,%a0 <== NOT EXECUTED 4b156: 4e5e unlk %fp <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4b158: 23c0 0005 a306 movel %d0,5a306 <_POSIX_signals_Inactive_siginfo> <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4b15e: 23c8 0005 a30e movel %a0,5a30e <_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); the_chain->permanent_null = NULL; 4b164: 42b9 0005 a30a clrl 5a30a <_POSIX_signals_Inactive_siginfo+0x4> <== NOT EXECUTED 4b16a: 4e75 rts <== NOT EXECUTED for ( signo=1 ; signo<= SIGRTMAX ; signo++ ) _Chain_Initialize_empty( &_POSIX_signals_Siginfo[ signo ] ); if ( maximum_queued_signals ) { _Chain_Initialize( 4b16c: 2002 movel %d2,%d0 <== NOT EXECUTED 4b16e: e988 lsll #4,%d0 <== NOT EXECUTED 4b170: 2040 moveal %d0,%a0 <== NOT EXECUTED 4b172: 4870 2c00 pea %a0@(00000000,%d2:l:4) <== NOT EXECUTED 4b176: 4eb9 0004 92bc jsr 492bc <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED 4b17c: 4878 0014 pea 14 <== NOT EXECUTED 4b180: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b182: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4b184: 4879 0005 a306 pea 5a306 <_POSIX_signals_Inactive_siginfo> <== NOT EXECUTED 4b18a: 4eb9 0004 bbd8 jsr 4bbd8 <_Chain_Initialize> <== NOT EXECUTED sizeof( POSIX_signals_Siginfo_node ) ); } else { _Chain_Initialize_empty( &_POSIX_signals_Inactive_siginfo ); } } 4b190: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED for ( signo=1 ; signo<= SIGRTMAX ; signo++ ) _Chain_Initialize_empty( &_POSIX_signals_Siginfo[ signo ] ); if ( maximum_queued_signals ) { _Chain_Initialize( 4b194: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED sizeof( POSIX_signals_Siginfo_node ) ); } else { _Chain_Initialize_empty( &_POSIX_signals_Inactive_siginfo ); } } 4b19a: 4e5e unlk %fp <== NOT EXECUTED 4b19c: 4e75 rts 0004b19e <_POSIX_signals_Post_switch_extension>: */ void _POSIX_signals_Post_switch_extension( Thread_Control *the_thread ) { 4b19e: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4b1a2: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4b1a6: 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 ]; 4b1aa: 2468 0110 moveal %a0@(272),%a2 <== NOT EXECUTED if ( !api ) 4b1ae: 4a8a tstl %a2 <== NOT EXECUTED 4b1b0: 6700 00aa beqw 4b25c <_POSIX_signals_Post_switch_extension+0xbe> <== 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 ); 4b1b4: 263c 0000 0700 movel #1792,%d3 <== NOT EXECUTED 4b1ba: 47f9 0004 cbb4 lea 4cbb4 <_POSIX_signals_Check_signal>,%a3 <== NOT EXECUTED 4b1c0: 2003 movel %d3,%d0 <== NOT EXECUTED 4b1c2: 40c2 movew %sr,%d2 <== NOT EXECUTED 4b1c4: 8082 orl %d2,%d0 <== NOT EXECUTED 4b1c6: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !(~api->signals_blocked & 4b1c8: 2039 0005 a352 movel 5a352 <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4b1ce: 222a 00c4 movel %a2@(196),%d1 <== NOT EXECUTED 4b1d2: 80aa 00c8 orl %a2@(200),%d0 <== NOT EXECUTED 4b1d6: 4681 notl %d1 <== NOT EXECUTED 4b1d8: c081 andl %d1,%d0 <== NOT EXECUTED 4b1da: 677e beqs 4b25a <_POSIX_signals_Post_switch_extension+0xbc> <== NOT EXECUTED (api->signals_pending | _POSIX_signals_Pending)) ) { _ISR_Enable( level ); break; } _ISR_Enable( level ); 4b1dc: 46c2 movew %d2,%sr <== NOT EXECUTED 4b1de: 741b moveq #27,%d2 <== NOT EXECUTED for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { if ( _POSIX_signals_Check_signal( api, signo, false ) ) 4b1e0: 42a7 clrl %sp@- <== NOT EXECUTED 4b1e2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b1e4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b1e6: 4e93 jsr %a3@ <== NOT EXECUTED 4b1e8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4b1ee: 4a00 tstb %d0 <== NOT EXECUTED 4b1f0: 66ce bnes 4b1c0 <_POSIX_signals_Post_switch_extension+0x22> <== NOT EXECUTED goto restart; if ( _POSIX_signals_Check_signal( api, signo, true ) ) 4b1f2: 4878 0001 pea 1 <== NOT EXECUTED 4b1f6: 2f02 movel %d2,%sp@- <== NOT EXECUTED _ISR_Enable( level ); break; } _ISR_Enable( level ); for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { 4b1f8: 5282 addql #1,%d2 <== NOT EXECUTED if ( _POSIX_signals_Check_signal( api, signo, false ) ) goto restart; if ( _POSIX_signals_Check_signal( api, signo, true ) ) 4b1fa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b1fc: 4e93 jsr %a3@ <== NOT EXECUTED 4b1fe: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4b204: 4a00 tstb %d0 <== NOT EXECUTED 4b206: 66b8 bnes 4b1c0 <_POSIX_signals_Post_switch_extension+0x22> <== NOT EXECUTED _ISR_Enable( level ); break; } _ISR_Enable( level ); for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { 4b208: 7020 moveq #32,%d0 <== NOT EXECUTED 4b20a: b082 cmpl %d2,%d0 <== NOT EXECUTED 4b20c: 66d2 bnes 4b1e0 <_POSIX_signals_Post_switch_extension+0x42> <== NOT EXECUTED 4b20e: 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 ) ) 4b210: 42a7 clrl %sp@- <== NOT EXECUTED 4b212: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b214: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b216: 4e93 jsr %a3@ <== NOT EXECUTED 4b218: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4b21e: 4a00 tstb %d0 <== NOT EXECUTED 4b220: 669e bnes 4b1c0 <_POSIX_signals_Post_switch_extension+0x22> <== NOT EXECUTED goto restart; if ( _POSIX_signals_Check_signal( api, signo, true ) ) 4b222: 4878 0001 pea 1 <== NOT EXECUTED 4b226: 2f02 movel %d2,%sp@- <== NOT EXECUTED } /* XXX - add __SIGFIRSTNOTRT or something like that to newlib signal .h */ for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) { 4b228: 5282 addql #1,%d2 <== NOT EXECUTED if ( _POSIX_signals_Check_signal( api, signo, false ) ) goto restart; if ( _POSIX_signals_Check_signal( api, signo, true ) ) 4b22a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b22c: 4e93 jsr %a3@ <== NOT EXECUTED 4b22e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4b234: 4a00 tstb %d0 <== NOT EXECUTED 4b236: 6688 bnes 4b1c0 <_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++ ) { 4b238: 701b moveq #27,%d0 <== NOT EXECUTED 4b23a: b082 cmpl %d2,%d0 <== NOT EXECUTED 4b23c: 66d2 bnes 4b210 <_POSIX_signals_Post_switch_extension+0x72> <== 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 ); 4b23e: 2003 movel %d3,%d0 <== NOT EXECUTED 4b240: 40c2 movew %sr,%d2 <== NOT EXECUTED 4b242: 8082 orl %d2,%d0 <== NOT EXECUTED 4b244: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !(~api->signals_blocked & 4b246: 2039 0005 a352 movel 5a352 <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4b24c: 222a 00c4 movel %a2@(196),%d1 <== NOT EXECUTED 4b250: 80aa 00c8 orl %a2@(200),%d0 <== NOT EXECUTED 4b254: 4681 notl %d1 <== NOT EXECUTED 4b256: c081 andl %d1,%d0 <== NOT EXECUTED 4b258: 6682 bnes 4b1dc <_POSIX_signals_Post_switch_extension+0x3e> <== NOT EXECUTED (api->signals_pending | _POSIX_signals_Pending)) ) { _ISR_Enable( level ); 4b25a: 46c2 movew %d2,%sr <== NOT EXECUTED goto restart; } } return; } 4b25c: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 4b262: 4e5e unlk %fp <== NOT EXECUTED 4b264: 4e75 rts 0005615c <_POSIX_signals_Set_process_signals>: */ void _POSIX_signals_Set_process_signals( sigset_t mask ) { 5615c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 56160: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 56166: 40c1 movew %sr,%d1 <== NOT EXECUTED 56168: 8081 orl %d1,%d0 <== NOT EXECUTED 5616a: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_POSIX_signals_Pending ) 5616c: 2039 0005 a352 movel 5a352 <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 56172: 6606 bnes 5617a <_POSIX_signals_Set_process_signals+0x1e> <== NOT EXECUTED _Thread_Do_post_task_switch_extension++; 56174: 52b9 0005 9d22 addql #1,59d22 <_Thread_Do_post_task_switch_extension> <== NOT EXECUTED _POSIX_signals_Pending |= mask; 5617a: 80ae 0008 orl %fp@(8),%d0 <== NOT EXECUTED 5617e: 23c0 0005 a352 movel %d0,5a352 <_POSIX_signals_Pending> <== NOT EXECUTED _ISR_Enable( level ); 56184: 46c1 movew %d1,%sr <== NOT EXECUTED } 56186: 4e5e unlk %fp <== NOT EXECUTED 56188: 4e75 rts <== NOT EXECUTED ... 000458da <_POSIX_signals_Ualarm_TSR>: void _POSIX_signals_Ualarm_TSR( Objects_Id id, void *argument ) { 458da: 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 ); 458de: 4eb9 0004 29ec jsr 429ec <== NOT EXECUTED 458e4: 4878 000e pea e <== NOT EXECUTED 458e8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 458ea: 4eb9 0004 55ac jsr 455ac <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Reset( Watchdog_Control *the_watchdog ) { (void) _Watchdog_Remove( the_watchdog ); 458f0: 4879 0005 bdbc pea 5bdbc <_POSIX_signals_Ualarm_timer> <== NOT EXECUTED 458f6: 4eb9 0004 9874 jsr 49874 <_Watchdog_Remove> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 458fc: 203c 0005 bdbc movel #376252,%d0 <== NOT EXECUTED 45902: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 45906: 203c 0005 bf8c movel #376716,%d0 <== NOT EXECUTED 4590c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45912: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED /* * If the reset interval is non-zero, reschedule ourselves. */ _Watchdog_Reset( &_POSIX_signals_Ualarm_timer ); } 45916: 4e5e unlk %fp <== NOT EXECUTED 45918: 4ef9 0004 972c jmp 4972c <_Watchdog_Insert> <== NOT EXECUTED ... 0005618c <_POSIX_signals_Unblock_thread>: bool _POSIX_signals_Unblock_thread( Thread_Control *the_thread, int signo, siginfo_t *info ) { 5618c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 56190: 2f0a movel %a2,%sp@- <== NOT EXECUTED 56192: 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 ); 56196: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED /* * Is the thread is specifically waiting for a signal? */ if ( _States_Is_interruptible_signal( the_thread->current_state ) ) { 5619a: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED bool _POSIX_signals_Unblock_thread( Thread_Control *the_thread, int signo, siginfo_t *info ) { 5619e: 2f02 movel %d2,%sp@- <== NOT EXECUTED POSIX_API_Control *api; sigset_t mask; siginfo_t *the_info = NULL; api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 561a0: 206a 0110 moveal %a2@(272),%a0 <== NOT EXECUTED mask = signo_to_mask( signo ); 561a4: 5381 subql #1,%d1 <== NOT EXECUTED 561a6: 7401 moveq #1,%d2 <== NOT EXECUTED 561a8: e3aa lsll %d1,%d2 <== NOT EXECUTED /* * Is the thread is specifically waiting for a signal? */ if ( _States_Is_interruptible_signal( the_thread->current_state ) ) { 561aa: 0280 1000 8000 andil #268468224,%d0 <== NOT EXECUTED 561b0: 0c80 1000 8000 cmpil #268468224,%d0 <== NOT EXECUTED 561b6: 6740 beqs 561f8 <_POSIX_signals_Unblock_thread+0x6c> <== NOT EXECUTED } /* * Thread is not waiting due to a sigwait. */ if ( ~api->signals_blocked & mask ) { 561b8: 2228 00c4 movel %a0@(196),%d1 <== NOT EXECUTED 561bc: 2002 movel %d2,%d0 <== NOT EXECUTED 561be: 4681 notl %d1 <== NOT EXECUTED 561c0: c081 andl %d1,%d0 <== NOT EXECUTED 561c2: 6726 beqs 561ea <_POSIX_signals_Unblock_thread+0x5e> <== NOT EXECUTED * + Any other combination, do nothing. */ the_thread->do_post_task_switch_extension = true; if ( the_thread->current_state & STATES_INTERRUPTIBLE_BY_SIGNAL ) { 561c4: 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; 561c8: 7201 moveq #1,%d1 <== NOT EXECUTED 561ca: 1541 0075 moveb %d1,%a2@(117) <== NOT EXECUTED if ( the_thread->current_state & STATES_INTERRUPTIBLE_BY_SIGNAL ) { 561ce: 0800 001c btst #28,%d0 <== NOT EXECUTED 561d2: 6660 bnes 56234 <_POSIX_signals_Unblock_thread+0xa8> <== NOT EXECUTED if ( _States_Is_delaying(the_thread->current_state) ){ if ( _Watchdog_Is_active( &the_thread->Timer ) ) (void) _Watchdog_Remove( &the_thread->Timer ); _Thread_Unblock( the_thread ); } } else if ( the_thread->current_state == STATES_READY ) { 561d4: 4a80 tstl %d0 <== NOT EXECUTED 561d6: 6612 bnes 561ea <_POSIX_signals_Unblock_thread+0x5e> <== NOT EXECUTED if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) 561d8: 2039 0005 9d1a movel 59d1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED 561de: 670a beqs 561ea <_POSIX_signals_Unblock_thread+0x5e> <== NOT EXECUTED 561e0: b5f9 0005 9d3a cmpal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED 561e6: 6700 00b4 beqw 5629c <_POSIX_signals_Unblock_thread+0x110> <== NOT EXECUTED _ISR_Signals_to_thread_executing = TRUE; 561ea: 4200 clrb %d0 <== NOT EXECUTED } } return false; } 561ec: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 561f0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 561f4: 4e5e unlk %fp <== NOT EXECUTED 561f6: 4e75 rts <== NOT EXECUTED * Is the thread is specifically waiting for a signal? */ if ( _States_Is_interruptible_signal( the_thread->current_state ) ) { if ( (the_thread->Wait.option & mask) || (~api->signals_blocked & mask) ) { 561f8: 2002 movel %d2,%d0 <== NOT EXECUTED 561fa: c0aa 0030 andl %a2@(48),%d0 <== NOT EXECUTED 561fe: 676a beqs 5626a <_POSIX_signals_Unblock_thread+0xde> <== NOT EXECUTED the_thread->Wait.return_code = EINTR; the_info = (siginfo_t *) the_thread->Wait.return_argument; 56200: 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; 56204: 7004 moveq #4,%d0 <== NOT EXECUTED 56206: 2540 0034 movel %d0,%a2@(52) <== NOT EXECUTED the_info = (siginfo_t *) the_thread->Wait.return_argument; if ( !info ) { 5620a: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 5620e: 6700 00a2 beqw 562b2 <_POSIX_signals_Unblock_thread+0x126> <== NOT EXECUTED the_info->si_signo = signo; the_info->si_code = SI_USER; the_info->si_value.sival_int = 0; } else { *the_info = *info; 56212: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED 56216: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 56218: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 5621a: 2091 movel %a1@,%a0@ <== NOT EXECUTED } _Thread_queue_Extract_with_proxy( the_thread ); 5621c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5621e: 4eb9 0004 85c0 jsr 485c0 <_Thread_queue_Extract_with_proxy> <== NOT EXECUTED 56224: 588f addql #4,%sp <== NOT EXECUTED 56226: 7001 moveq #1,%d0 <== NOT EXECUTED if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) _ISR_Signals_to_thread_executing = TRUE; } } return false; } 56228: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5622c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 56230: 4e5e unlk %fp <== NOT EXECUTED 56232: 4e75 rts <== NOT EXECUTED */ the_thread->do_post_task_switch_extension = true; if ( the_thread->current_state & STATES_INTERRUPTIBLE_BY_SIGNAL ) { the_thread->Wait.return_code = EINTR; 56234: 7004 moveq #4,%d0 <== NOT EXECUTED 56236: 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) ){ 5623a: 103c 0008 moveb #8,%d0 <== NOT EXECUTED 5623e: c0aa 0010 andl %a2@(16),%d0 <== NOT EXECUTED 56242: 67a6 beqs 561ea <_POSIX_signals_Unblock_thread+0x5e> <== NOT EXECUTED if ( _Watchdog_Is_active( &the_thread->Timer ) ) 56244: 7202 moveq #2,%d1 <== NOT EXECUTED 56246: b2aa 0050 cmpl %a2@(80),%d1 <== NOT EXECUTED 5624a: 6730 beqs 5627c <_POSIX_signals_Unblock_thread+0xf0> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 5624c: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 56252: 2f0a movel %a2,%sp@- <== NOT EXECUTED 56254: 4eb9 0004 7a30 jsr 47a30 <_Thread_Clear_state> <== NOT EXECUTED 5625a: 508f addql #8,%sp <== NOT EXECUTED 5625c: 4200 clrb %d0 <== NOT EXECUTED if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) _ISR_Signals_to_thread_executing = TRUE; } } return false; } 5625e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 56262: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 56266: 4e5e unlk %fp <== NOT EXECUTED 56268: 4e75 rts <== NOT EXECUTED * Is the thread is specifically waiting for a signal? */ if ( _States_Is_interruptible_signal( the_thread->current_state ) ) { if ( (the_thread->Wait.option & mask) || (~api->signals_blocked & mask) ) { 5626a: 2228 00c4 movel %a0@(196),%d1 <== NOT EXECUTED 5626e: 2002 movel %d2,%d0 <== NOT EXECUTED 56270: 4681 notl %d1 <== NOT EXECUTED 56272: c081 andl %d1,%d0 <== NOT EXECUTED 56274: 668a bnes 56200 <_POSIX_signals_Unblock_thread+0x74> <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); _Thread_Unblock( the_thread ); } } else if ( the_thread->current_state == STATES_READY ) { if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) _ISR_Signals_to_thread_executing = TRUE; 56276: 4200 clrb %d0 <== NOT EXECUTED 56278: 6000 ff72 braw 561ec <_POSIX_signals_Unblock_thread+0x60> <== NOT EXECUTED _Thread_queue_Extract_with_proxy( the_thread ); else #endif if ( _States_Is_delaying(the_thread->current_state) ){ if ( _Watchdog_Is_active( &the_thread->Timer ) ) (void) _Watchdog_Remove( &the_thread->Timer ); 5627c: 486a 0048 pea %a2@(72) <== NOT EXECUTED 56280: 4eb9 0004 9168 jsr 49168 <_Watchdog_Remove> <== NOT EXECUTED 56286: 588f addql #4,%sp <== NOT EXECUTED 56288: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 5628e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 56290: 4eb9 0004 7a30 jsr 47a30 <_Thread_Clear_state> <== NOT EXECUTED 56296: 508f addql #8,%sp <== NOT EXECUTED 56298: 4200 clrb %d0 <== NOT EXECUTED 5629a: 60c2 bras 5625e <_POSIX_signals_Unblock_thread+0xd2> <== NOT EXECUTED if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) _ISR_Signals_to_thread_executing = TRUE; } } return false; } 5629c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 562a0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); _Thread_Unblock( the_thread ); } } else if ( the_thread->current_state == STATES_READY ) { if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) _ISR_Signals_to_thread_executing = TRUE; 562a4: 7201 moveq #1,%d1 <== NOT EXECUTED } } return false; } 562a6: 4e5e unlk %fp <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); _Thread_Unblock( the_thread ); } } else if ( the_thread->current_state == STATES_READY ) { if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) _ISR_Signals_to_thread_executing = TRUE; 562a8: 4200 clrb %d0 <== NOT EXECUTED 562aa: 13c1 0005 9dc8 moveb %d1,59dc8 <_ISR_Signals_to_thread_executing> <== NOT EXECUTED } } return false; } 562b0: 4e75 rts <== NOT EXECUTED the_thread->Wait.return_code = EINTR; the_info = (siginfo_t *) the_thread->Wait.return_argument; if ( !info ) { the_info->si_signo = signo; 562b2: 20ae 000c movel %fp@(12),%a0@ <== NOT EXECUTED the_info->si_code = SI_USER; 562b6: 7201 moveq #1,%d1 <== NOT EXECUTED 562b8: 2141 0004 movel %d1,%a0@(4) <== NOT EXECUTED the_info->si_value.sival_int = 0; 562bc: 42a8 0008 clrl %a0@(8) <== NOT EXECUTED } else { *the_info = *info; } _Thread_queue_Extract_with_proxy( the_thread ); 562c0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 562c2: 4eb9 0004 85c0 jsr 485c0 <_Thread_queue_Extract_with_proxy> <== NOT EXECUTED 562c8: 588f addql #4,%sp <== NOT EXECUTED 562ca: 7001 moveq #1,%d0 <== NOT EXECUTED 562cc: 6000 ff5a braw 56228 <_POSIX_signals_Unblock_thread+0x9c> <== NOT EXECUTED 0004b768 <_Partition_Manager_initialization>: */ void _Partition_Manager_initialization( uint32_t maximum_partitions ) { 4b768: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b76c: 4878 0004 pea 4 <== NOT EXECUTED 4b770: 42a7 clrl %sp@- <== NOT EXECUTED 4b772: 4878 0030 pea 30 <== NOT EXECUTED 4b776: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b77a: 4878 0005 pea 5 <== NOT EXECUTED 4b77e: 4878 0002 pea 2 <== NOT EXECUTED 4b782: 4879 0005 a5d2 pea 5a5d2 <_Partition_Information> <== NOT EXECUTED 4b788: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b78e: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_PARTITION, _Partition_MP_Process_packet ); #endif } 4b794: 4e5e unlk %fp <== NOT EXECUTED 4b796: 4e75 rts 0004c034 <_Protected_heap_Allocate>: void *_Protected_heap_Allocate( Heap_Control *the_heap, size_t size ) { 4c034: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c038: 2f02 movel %d2,%sp@- <== NOT EXECUTED void *p; _RTEMS_Lock_allocator(); 4c03a: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4c040: 4eb9 0004 678c jsr 4678c <_API_Mutex_Lock> <== NOT EXECUTED p = _Heap_Allocate( the_heap, size ); 4c046: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4c04a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4c04e: 4eb9 0004 bda8 jsr 4bda8 <_Heap_Allocate> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4c054: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { void *p; _RTEMS_Lock_allocator(); p = _Heap_Allocate( the_heap, size ); 4c05a: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4c05c: 4eb9 0004 67f0 jsr 467f0 <_API_Mutex_Unlock> <== NOT EXECUTED return p; } 4c062: 2002 movel %d2,%d0 <== NOT EXECUTED 4c064: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4c068: 4e5e unlk %fp <== NOT EXECUTED 4c06a: 4e75 rts 0004add8 <_Protected_heap_Allocate_aligned>: void *_Protected_heap_Allocate_aligned( Heap_Control *the_heap, size_t size, uint32_t alignment ) { 4add8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4addc: 2f02 movel %d2,%sp@- <== NOT EXECUTED void *p; _RTEMS_Lock_allocator(); 4adde: 2f39 0005 dd86 movel 5dd86 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4ade4: 4eb9 0004 96a8 jsr 496a8 <_API_Mutex_Lock> <== NOT EXECUTED p = _Heap_Allocate_aligned( the_heap, size, alignment ); 4adea: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4adee: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4adf2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4adf6: 4eb9 0004 9d8c jsr 49d8c <_Heap_Allocate_aligned> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4adfc: 2f39 0005 dd86 movel 5dd86 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { void *p; _RTEMS_Lock_allocator(); p = _Heap_Allocate_aligned( the_heap, size, alignment ); 4ae02: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4ae04: 4eb9 0004 970c jsr 4970c <_API_Mutex_Unlock> <== NOT EXECUTED return p; } 4ae0a: 2002 movel %d2,%d0 <== NOT EXECUTED 4ae0c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4ae10: 4e5e unlk %fp <== NOT EXECUTED 4ae12: 4e75 rts 0004ae4c <_Protected_heap_Extend>: bool _Protected_heap_Extend( Heap_Control *the_heap, void *starting_address, size_t size ) { 4ae4c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4ae50: 2f02 movel %d2,%sp@- <== NOT EXECUTED Heap_Extend_status status; uint32_t amount_extended; _RTEMS_Lock_allocator(); 4ae52: 2f39 0005 dd86 movel 5dd86 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4ae58: 4eb9 0004 96a8 jsr 496a8 <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Extend(the_heap, starting_address, size, &amount_extended); 4ae5e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4ae62: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4ae66: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4ae6a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ae6e: 4eb9 0004 f3f8 jsr 4f3f8 <_Heap_Extend> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4ae74: 2f39 0005 dd86 movel 5dd86 <_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); 4ae7a: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4ae7c: 4eb9 0004 970c jsr 4970c <_API_Mutex_Unlock> <== NOT EXECUTED 4ae82: 4a82 tstl %d2 <== NOT EXECUTED 4ae84: 57c0 seq %d0 <== NOT EXECUTED return (status == HEAP_EXTEND_SUCCESSFUL); } 4ae86: 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(); 4ae8a: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED return (status == HEAP_EXTEND_SUCCESSFUL); } 4ae90: 4e5e unlk %fp <== NOT EXECUTED 4ae92: 4480 negl %d0 <== NOT EXECUTED 4ae94: 4e75 rts <== NOT EXECUTED ... 0004c06c <_Protected_heap_Free>: bool _Protected_heap_Free( Heap_Control *the_heap, void *start_address ) { 4c06c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c070: 2f02 movel %d2,%sp@- <== NOT EXECUTED bool status; _RTEMS_Lock_allocator(); 4c072: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4c078: 4eb9 0004 678c jsr 4678c <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Free( the_heap, start_address ); 4c07e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4c082: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4c086: 4eb9 0004 be6c jsr 4be6c <_Heap_Free> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4c08c: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { bool status; _RTEMS_Lock_allocator(); status = _Heap_Free( the_heap, start_address ); 4c092: 1400 moveb %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4c094: 4eb9 0004 67f0 jsr 467f0 <_API_Mutex_Unlock> <== NOT EXECUTED return status; } 4c09a: 1002 moveb %d2,%d0 <== NOT EXECUTED 4c09c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4c0a0: 4e5e unlk %fp <== NOT EXECUTED 4c0a2: 4e75 rts 000563c4 <_Protected_heap_Get_block_size>: bool _Protected_heap_Get_block_size( Heap_Control *the_heap, void *starting_address, size_t *size ) { 563c4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 563c8: 2f02 movel %d2,%sp@- <== NOT EXECUTED bool status; _RTEMS_Lock_allocator(); 563ca: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 563d0: 4eb9 0004 678c jsr 4678c <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Size_of_user_area( the_heap, starting_address, size ); 563d6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 563da: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 563de: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 563e2: 4eb9 0005 6614 jsr 56614 <_Heap_Size_of_user_area> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 563e8: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED ) { bool status; _RTEMS_Lock_allocator(); status = _Heap_Size_of_user_area( the_heap, starting_address, size ); 563ee: 1400 moveb %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 563f0: 4eb9 0004 67f0 jsr 467f0 <_API_Mutex_Unlock> <== NOT EXECUTED return status; } 563f6: 1002 moveb %d2,%d0 <== NOT EXECUTED 563f8: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 563fc: 4e5e unlk %fp <== NOT EXECUTED 563fe: 4e75 rts 0004c0e0 <_Protected_heap_Get_free_information>: bool _Protected_heap_Get_free_information( Heap_Control *the_heap, Heap_Information *info ) { 4c0e0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * TBD: _Heap_Get_free_information does not error check or return status. */ _RTEMS_Lock_allocator(); 4c0e4: 2f39 0009 b4ee movel 9b4ee <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4c0ea: 4eb9 0004 ae2c jsr 4ae2c <_API_Mutex_Lock> <== NOT EXECUTED _Heap_Get_free_information( the_heap, info ); 4c0f0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4c0f4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4c0f8: 4eb9 0006 4084 jsr 64084 <_Heap_Get_free_information> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4c0fe: 2f39 0009 b4ee movel 9b4ee <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4c104: 4eb9 0004 ae90 jsr 4ae90 <_API_Mutex_Unlock> <== NOT EXECUTED return true; } 4c10a: 4e5e unlk %fp <== NOT EXECUTED 4c10c: 7001 moveq #1,%d0 <== NOT EXECUTED 4c10e: 4e75 rts 00064200 <_Protected_heap_Get_information>: bool _Protected_heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) { 64200: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 64204: 2f03 movel %d3,%sp@- <== NOT EXECUTED 64206: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 6420a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6420c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Heap_Get_information_status status; if ( !the_heap ) 64210: 4a83 tstl %d3 <== NOT EXECUTED 64212: 6740 beqs 64254 <_Protected_heap_Get_information+0x54> <== NOT EXECUTED return false; if ( !the_info ) 64214: 4a82 tstl %d2 <== NOT EXECUTED 64216: 673c beqs 64254 <_Protected_heap_Get_information+0x54> <== NOT EXECUTED return false; _RTEMS_Lock_allocator(); 64218: 2f39 0009 b4ee movel 9b4ee <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 6421e: 4eb9 0004 ae2c jsr 4ae2c <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Get_information( the_heap, the_info ); 64224: 2f02 movel %d2,%sp@- <== NOT EXECUTED 64226: 2f03 movel %d3,%sp@- <== NOT EXECUTED 64228: 4eb9 0006 eabc jsr 6eabc <_Heap_Get_information> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 6422e: 2f39 0009 b4ee movel 9b4ee <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED if ( !the_info ) return false; _RTEMS_Lock_allocator(); status = _Heap_Get_information( the_heap, the_info ); 64234: 2400 movel %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 64236: 4eb9 0004 ae90 jsr 4ae90 <_API_Mutex_Unlock> <== NOT EXECUTED if ( status == HEAP_GET_INFORMATION_SUCCESSFUL ) 6423c: 4a82 tstl %d2 <== NOT EXECUTED 6423e: 57c0 seq %d0 <== NOT EXECUTED return true; return false; } 64240: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 64244: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED _RTEMS_Lock_allocator(); status = _Heap_Get_information( the_heap, the_info ); _RTEMS_Unlock_allocator(); if ( status == HEAP_GET_INFORMATION_SUCCESSFUL ) 64248: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED return true; return false; } 6424e: 4e5e unlk %fp <== NOT EXECUTED _RTEMS_Lock_allocator(); status = _Heap_Get_information( the_heap, the_info ); _RTEMS_Unlock_allocator(); if ( status == HEAP_GET_INFORMATION_SUCCESSFUL ) 64250: 4480 negl %d0 <== NOT EXECUTED return true; return false; } 64252: 4e75 rts <== NOT EXECUTED 64254: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 64258: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 6425c: 4e5e unlk %fp <== NOT EXECUTED _RTEMS_Lock_allocator(); status = _Heap_Get_information( the_heap, the_info ); _RTEMS_Unlock_allocator(); if ( status == HEAP_GET_INFORMATION_SUCCESSFUL ) 6425e: 4200 clrb %d0 <== NOT EXECUTED return true; return false; } 64260: 4e75 rts <== NOT EXECUTED ... 00056400 <_Protected_heap_Resize_block>: bool _Protected_heap_Resize_block( Heap_Control *the_heap, void *starting_address, size_t size ) { 56400: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 56404: 2f02 movel %d2,%sp@- <== NOT EXECUTED Heap_Resize_status status; uint32_t old_mem_size; uint32_t avail_mem_size; _RTEMS_Lock_allocator(); 56406: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 5640c: 4eb9 0004 678c jsr 4678c <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Resize_block( 56412: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 56416: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5641a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5641e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 56422: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 56426: 4eb9 0005 6450 jsr 56450 <_Heap_Resize_block> <== NOT EXECUTED the_heap, starting_address, size, &old_mem_size, &avail_mem_size ); _RTEMS_Unlock_allocator(); 5642c: 2f39 0005 9d32 movel 59d32 <_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( 56432: 2400 movel %d0,%d2 <== NOT EXECUTED the_heap, starting_address, size, &old_mem_size, &avail_mem_size ); _RTEMS_Unlock_allocator(); 56434: 4eb9 0004 67f0 jsr 467f0 <_API_Mutex_Unlock> <== NOT EXECUTED 5643a: 4a82 tstl %d2 <== NOT EXECUTED 5643c: 57c0 seq %d0 <== NOT EXECUTED return (status == HEAP_RESIZE_SUCCESSFUL); } 5643e: 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(); 56442: dffc 0000 001c addal #28,%sp <== NOT EXECUTED return (status == HEAP_RESIZE_SUCCESSFUL); } 56448: 4e5e unlk %fp <== NOT EXECUTED 5644a: 4480 negl %d0 <== NOT EXECUTED 5644c: 4e75 rts <== NOT EXECUTED ... 0004aff0 <_Protected_heap_Walk>: bool _Protected_heap_Walk( Heap_Control *the_heap, int source, bool do_dump ) { 4aff0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4aff4: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 4aff8: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 4affc: 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 ) { 4b000: 2039 0005 dcd0 movel 5dcd0 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED bool _Protected_heap_Walk( Heap_Control *the_heap, int source, bool do_dump ) { 4b006: 142e 0013 moveb %fp@(19),%d2 <== 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 ) { 4b00a: 4a80 tstl %d0 <== NOT EXECUTED 4b00c: 671e beqs 4b02c <_Protected_heap_Walk+0x3c> <== NOT EXECUTED _RTEMS_Lock_allocator(); status = _Heap_Walk( the_heap, source, do_dump ); _RTEMS_Unlock_allocator(); } else { status = _Heap_Walk( the_heap, source, do_dump ); 4b00e: 4280 clrl %d0 <== NOT EXECUTED 4b010: 1002 moveb %d2,%d0 <== NOT EXECUTED 4b012: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4b016: 2d44 0008 movel %d4,%fp@(8) <== NOT EXECUTED } return status; } 4b01a: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== 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 ); 4b020: 2d40 0010 movel %d0,%fp@(16) <== NOT EXECUTED } return status; } 4b024: 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 ); 4b026: 4ef9 0004 f5e8 jmp 4f5e8 <_Heap_Walk> <== NOT EXECUTED * a critical section, it should be safe to walk it unlocked. * * NOTE: Dispatching is also disabled during initialization. */ if ( !_Thread_Dispatch_disable_level ) { _RTEMS_Lock_allocator(); 4b02c: 2f39 0005 dd86 movel 5dd86 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 4b032: 4eb9 0004 96a8 jsr 496a8 <_API_Mutex_Lock> <== NOT EXECUTED status = _Heap_Walk( the_heap, source, do_dump ); 4b038: 4280 clrl %d0 <== NOT EXECUTED 4b03a: 1002 moveb %d2,%d0 <== NOT EXECUTED 4b03c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4b03e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4b040: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4b042: 4eb9 0004 f5e8 jsr 4f5e8 <_Heap_Walk> <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4b048: 2f39 0005 dd86 movel 5dd86 <_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 ); 4b04e: 1400 moveb %d0,%d2 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4b050: 4eb9 0004 970c jsr 4970c <_API_Mutex_Unlock> <== NOT EXECUTED } else { status = _Heap_Walk( the_heap, source, do_dump ); } return status; } 4b056: 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(); 4b058: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED } else { status = _Heap_Walk( the_heap, source, do_dump ); } return status; } 4b05e: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED 4b064: 4e5e unlk %fp <== NOT EXECUTED 4b066: 4e75 rts 000465bc <_RTEMS_API_Initialize>: */ void _RTEMS_API_Initialize( rtems_configuration_table *configuration_table ) { 465bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 465c0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 465c4: 2f0a movel %a2,%sp@- <== NOT EXECUTED rtems_api_configuration_table *api_configuration; api_configuration = configuration_table->RTEMS_api_configuration; 465c6: 2468 003e moveal %a0@(62),%a2 <== NOT EXECUTED _Objects_Information_table[OBJECTS_CLASSIC_API] = _RTEMS_Objects; 465ca: 203c 0005 a102 movel #368898,%d0 <== NOT EXECUTED 465d0: 23c0 0005 9c3c movel %d0,59c3c <_Objects_Information_table+0x8> <== NOT EXECUTED _Attributes_Handler_initialization(); _Interrupt_Manager_initialization(); 465d6: 4eb9 0004 b730 jsr 4b730 <_Interrupt_Manager_initialization> <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) _Multiprocessing_Manager_initialization(); #endif _RTEMS_tasks_Manager_initialization( api_configuration->maximum_tasks ); 465dc: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 465de: 4eb9 0004 b8da jsr 4b8da <_RTEMS_tasks_Manager_initialization> <== NOT EXECUTED _Timer_Manager_initialization( api_configuration->maximum_timers ); 465e4: 2f2a 0006 movel %a2@(6),%sp@- <== NOT EXECUTED 465e8: 4eb9 0004 b7f8 jsr 4b7f8 <_Timer_Manager_initialization> <== NOT EXECUTED _Signal_Manager_initialization(); 465ee: 4eb9 0004 b864 jsr 4b864 <_Signal_Manager_initialization> <== NOT EXECUTED _Event_Manager_initialization(); 465f4: 4eb9 0004 b720 jsr 4b720 <_Event_Manager_initialization> <== NOT EXECUTED _Message_queue_Manager_initialization( 465fa: 2f2a 000e movel %a2@(14),%sp@- <== NOT EXECUTED 465fe: 4eb9 0004 b738 jsr 4b738 <_Message_queue_Manager_initialization> <== NOT EXECUTED api_configuration->maximum_message_queues ); _Semaphore_Manager_initialization( api_configuration->maximum_semaphores ); 46604: 2f2a 000a movel %a2@(10),%sp@- <== NOT EXECUTED 46608: 4eb9 0004 b834 jsr 4b834 <_Semaphore_Manager_initialization> <== NOT EXECUTED _Partition_Manager_initialization( api_configuration->maximum_partitions ); 4660e: 2f2a 0012 movel %a2@(18),%sp@- <== NOT EXECUTED 46612: 4eb9 0004 b768 jsr 4b768 <_Partition_Manager_initialization> <== NOT EXECUTED _Region_Manager_initialization( api_configuration->maximum_regions ); 46618: 2f2a 0016 movel %a2@(22),%sp@- <== NOT EXECUTED 4661c: 4eb9 0004 b7c8 jsr 4b7c8 <_Region_Manager_initialization> <== NOT EXECUTED _Dual_ported_memory_Manager_initialization( api_configuration->maximum_ports); 46622: 2f2a 001a movel %a2@(26),%sp@- <== NOT EXECUTED 46626: 4eb9 0004 b6f0 jsr 4b6f0 <_Dual_ported_memory_Manager_initialization> <== NOT EXECUTED _Rate_monotonic_Manager_initialization( api_configuration->maximum_periods ); 4662c: 2f2a 001e movel %a2@(30),%sp@- <== NOT EXECUTED 46630: 4eb9 0004 b798 jsr 4b798 <_Rate_monotonic_Manager_initialization> <== NOT EXECUTED _Barrier_Manager_initialization( api_configuration->maximum_barriers ); 46636: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 4663c: 2d6a 0022 0008 movel %a2@(34),%fp@(8) <== NOT EXECUTED } 46642: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46646: 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 ); 46648: 4ef9 0004 b6c0 jmp 4b6c0 <_Barrier_Manager_initialization> <== NOT EXECUTED ... 0004ba8c <_RTEMS_Tasks_Invoke_task_variable_dtor>: void _RTEMS_Tasks_Invoke_task_variable_dtor( Thread_Control *the_thread, rtems_task_variable_t *tvp ) { 4ba8c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ba90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ba92: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED void (*dtor)(void *); void *value; dtor = tvp->dtor; if (_Thread_Is_executing(the_thread)) { 4ba96: 2039 0005 9d3a movel 59d3a <_Thread_Executing>,%d0 <== NOT EXECUTED ) { void (*dtor)(void *); void *value; dtor = tvp->dtor; 4ba9c: 226a 0010 moveal %a2@(16),%a1 <== NOT EXECUTED if (_Thread_Is_executing(the_thread)) { 4baa0: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 4baa4: 671e beqs 4bac4 <_RTEMS_Tasks_Invoke_task_variable_dtor+0x38> <== NOT EXECUTED value = *tvp->ptr; *tvp->ptr = tvp->gval; } else { value = tvp->tval; 4baa6: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED } if ( dtor ) 4baaa: 4a89 tstl %a1 <== NOT EXECUTED 4baac: 6706 beqs 4bab4 <_RTEMS_Tasks_Invoke_task_variable_dtor+0x28> <== NOT EXECUTED (*dtor)(value); 4baae: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4bab0: 4e91 jsr %a1@ <== NOT EXECUTED 4bab2: 588f addql #4,%sp <== NOT EXECUTED _Workspace_Free(tvp); 4bab4: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } 4bab8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4babc: 4e5e unlk %fp <== NOT EXECUTED } if ( dtor ) (*dtor)(value); _Workspace_Free(tvp); 4babe: 4ef9 0004 928c jmp 4928c <_Workspace_Free> <== NOT EXECUTED void (*dtor)(void *); void *value; dtor = tvp->dtor; if (_Thread_Is_executing(the_thread)) { value = *tvp->ptr; 4bac4: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED 4bac8: 2010 movel %a0@,%d0 <== NOT EXECUTED *tvp->ptr = tvp->gval; 4baca: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED 4bace: 60da bras 4baaa <_RTEMS_Tasks_Invoke_task_variable_dtor+0x1e> <== NOT EXECUTED 0004b9ea <_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() ) 4b9ea: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED bool _RTEMS_tasks_Create_extension( Thread_Control *executing, Thread_Control *created ) { 4b9f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b9f4: 2f0b movel %a3,%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() ) 4b9f6: 2268 003e moveal %a0@(62),%a1 <== NOT EXECUTED bool _RTEMS_tasks_Create_extension( Thread_Control *executing, Thread_Control *created ) { 4b9fa: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 4b9fe: 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() ) 4ba00: 4a29 0004 tstb %a1@(4) <== NOT EXECUTED 4ba04: 6664 bnes 4ba6a <_RTEMS_tasks_Create_extension+0x80> <== NOT EXECUTED 4ba06: 701e moveq #30,%d0 <== NOT EXECUTED to_allocate -= (RTEMS_NUMBER_NOTEPADS * sizeof(uint32_t)); api = _Workspace_Allocate( to_allocate ); 4ba08: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ba0a: 4eb9 0004 92a4 jsr 492a4 <_Workspace_Allocate> <== NOT EXECUTED if ( !api ) 4ba10: 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 ); 4ba12: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !api ) 4ba14: 4a80 tstl %d0 <== NOT EXECUTED 4ba16: 6764 beqs 4ba7c <_RTEMS_tasks_Create_extension+0x92> <== NOT EXECUTED api->pending_events = EVENT_SETS_NONE_PENDING; _ASR_Initialize( &api->Signal ); created->task_variables = NULL; if ( rtems_configuration_get_notepads_enabled() ) { 4ba18: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED 4ba1e: 2268 003e moveal %a0@(62),%a1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _ASR_Initialize ( ASR_Information *information ) { information->is_enabled = true; 4ba22: 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; 4ba24: 42ab 011c clrl %a3@(284) <== NOT EXECUTED 4ba28: 1540 0008 moveb %d0,%a2@(8) <== NOT EXECUTED api = _Workspace_Allocate( to_allocate ); if ( !api ) return false; created->API_Extensions[ THREAD_API_RTEMS ] = api; 4ba2c: 274a 010c movel %a2,%a3@(268) <== NOT EXECUTED api->pending_events = EVENT_SETS_NONE_PENDING; 4ba30: 4292 clrl %a2@ <== NOT EXECUTED information->handler = NULL; 4ba32: 42aa 000a clrl %a2@(10) <== NOT EXECUTED information->mode_set = RTEMS_DEFAULT_MODES; 4ba36: 42aa 000e clrl %a2@(14) <== NOT EXECUTED information->signals_posted = 0; 4ba3a: 42aa 0012 clrl %a2@(18) <== NOT EXECUTED information->signals_pending = 0; 4ba3e: 42aa 0016 clrl %a2@(22) <== NOT EXECUTED information->nest_level = 0; 4ba42: 42aa 001a clrl %a2@(26) <== NOT EXECUTED _ASR_Initialize( &api->Signal ); created->task_variables = NULL; if ( rtems_configuration_get_notepads_enabled() ) { 4ba46: 4a29 0004 tstb %a1@(4) <== NOT EXECUTED 4ba4a: 6710 beqs 4ba5c <_RTEMS_tasks_Create_extension+0x72> <== NOT EXECUTED 4ba4c: 41ea 001e lea %a2@(30),%a0 <== NOT EXECUTED 4ba50: 4280 clrl %d0 <== NOT EXECUTED for (i=0; i < RTEMS_NUMBER_NOTEPADS; i++) api->Notepads[i] = 0; 4ba52: 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++) 4ba54: 5280 addql #1,%d0 <== NOT EXECUTED 4ba56: 7210 moveq #16,%d1 <== NOT EXECUTED 4ba58: b280 cmpl %d0,%d1 <== NOT EXECUTED 4ba5a: 66f6 bnes 4ba52 <_RTEMS_tasks_Create_extension+0x68> <== NOT EXECUTED api->Notepads[i] = 0; } return true; } 4ba5c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4ba60: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4ba64: 4e5e unlk %fp <== 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++) 4ba66: 7001 moveq #1,%d0 <== NOT EXECUTED api->Notepads[i] = 0; } return true; } 4ba68: 4e75 rts <== 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() ) 4ba6a: 705e moveq #94,%d0 <== NOT EXECUTED to_allocate -= (RTEMS_NUMBER_NOTEPADS * sizeof(uint32_t)); api = _Workspace_Allocate( to_allocate ); 4ba6c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ba6e: 4eb9 0004 92a4 jsr 492a4 <_Workspace_Allocate> <== NOT EXECUTED if ( !api ) 4ba74: 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 ); 4ba76: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !api ) 4ba78: 4a80 tstl %d0 <== NOT EXECUTED 4ba7a: 669c bnes 4ba18 <_RTEMS_tasks_Create_extension+0x2e> <== NOT EXECUTED for (i=0; i < RTEMS_NUMBER_NOTEPADS; i++) api->Notepads[i] = 0; } return true; } 4ba7c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4ba80: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4ba84: 4e5e unlk %fp <== NOT EXECUTED if ( !rtems_configuration_get_notepads_enabled() ) to_allocate -= (RTEMS_NUMBER_NOTEPADS * sizeof(uint32_t)); api = _Workspace_Allocate( to_allocate ); if ( !api ) 4ba86: 4200 clrb %d0 <== NOT EXECUTED for (i=0; i < RTEMS_NUMBER_NOTEPADS; i++) api->Notepads[i] = 0; } return true; } 4ba88: 4e75 rts <== NOT EXECUTED ... 0004b9a2 <_RTEMS_tasks_Delete_extension>: User_extensions_routine _RTEMS_tasks_Delete_extension( Thread_Control *executing, Thread_Control *deleted ) { 4b9a2: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4b9a6: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 4b9aa: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED /* * Free per task variable memory */ tvp = deleted->task_variables; 4b9ae: 206a 011c moveal %a2@(284),%a0 <== NOT EXECUTED deleted->task_variables = NULL; 4b9b2: 42aa 011c clrl %a2@(284) <== NOT EXECUTED while (tvp) { 4b9b6: 4a88 tstl %a0 <== NOT EXECUTED 4b9b8: 6716 beqs 4b9d0 <_RTEMS_tasks_Delete_extension+0x2e> <== NOT EXECUTED 4b9ba: 47f9 0004 ba8c lea 4ba8c <_RTEMS_Tasks_Invoke_task_variable_dtor>,%a3 <== NOT EXECUTED next = (rtems_task_variable_t *)tvp->next; 4b9c0: 2410 movel %a0@,%d2 <== NOT EXECUTED _RTEMS_Tasks_Invoke_task_variable_dtor( deleted, tvp ); 4b9c2: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4b9c4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b9c6: 4e93 jsr %a3@ <== NOT EXECUTED 4b9c8: 2042 moveal %d2,%a0 <== NOT EXECUTED * Free per task variable memory */ tvp = deleted->task_variables; deleted->task_variables = NULL; while (tvp) { 4b9ca: 508f addql #8,%sp <== NOT EXECUTED 4b9cc: 4a82 tstl %d2 <== NOT EXECUTED 4b9ce: 66f0 bnes 4b9c0 <_RTEMS_tasks_Delete_extension+0x1e> <== NOT EXECUTED /* * Free API specific memory */ (void) _Workspace_Free( deleted->API_Extensions[ THREAD_API_RTEMS ] ); 4b9d0: 2f2a 010c movel %a2@(268),%sp@- <== NOT EXECUTED 4b9d4: 4eb9 0004 928c jsr 4928c <_Workspace_Free> <== NOT EXECUTED deleted->API_Extensions[ THREAD_API_RTEMS ] = NULL; 4b9da: 42aa 010c clrl %a2@(268) <== NOT EXECUTED 4b9de: 588f addql #4,%sp <== NOT EXECUTED } 4b9e0: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4b9e6: 4e5e unlk %fp <== NOT EXECUTED 4b9e8: 4e75 rts 0004b8c2 <_RTEMS_tasks_Initialize_user_tasks>: * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks( void ) { if ( _RTEMS_tasks_Initialize_user_tasks_p ) 4b8c2: 2039 0005 813e movel 5813e <_RTEMS_tasks_Initialize_user_tasks_p>,%d0 <== NOT EXECUTED * * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks( void ) { 4b8c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( _RTEMS_tasks_Initialize_user_tasks_p ) 4b8cc: 4a80 tstl %d0 <== NOT EXECUTED 4b8ce: 6706 beqs 4b8d6 <_RTEMS_tasks_Initialize_user_tasks+0x14> <== NOT EXECUTED (*_RTEMS_tasks_Initialize_user_tasks_p)(); } 4b8d0: 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)(); 4b8d2: 2240 moveal %d0,%a1 <== NOT EXECUTED 4b8d4: 4ed1 jmp %a1@ <== NOT EXECUTED } 4b8d6: 4e5e unlk %fp <== NOT EXECUTED 4b8d8: 4e75 rts 00046010 <_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; 46010: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED 46016: 2268 003e moveal %a0@(62),%a1 <== NOT EXECUTED * * Output parameters: NONE */ void _RTEMS_tasks_Initialize_user_tasks_body( void ) { 4601a: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4601e: 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; 46022: 2629 0026 movel %a1@(38),%d3 <== NOT EXECUTED /* * NOTE: This is slightly different from the Ada implementation. */ user_tasks = api_configuration->User_initialization_tasks_table; 46026: 2029 002a movel %a1@(42),%d0 <== NOT EXECUTED maximum = api_configuration->number_of_initialization_tasks; if ( !user_tasks || maximum == 0 ) 4602a: 675c beqs 46088 <_RTEMS_tasks_Initialize_user_tasks_body+0x78> <== NOT EXECUTED 4602c: 4a83 tstl %d3 <== NOT EXECUTED 4602e: 6758 beqs 46088 <_RTEMS_tasks_Initialize_user_tasks_body+0x78> <== NOT EXECUTED 46030: 280e movel %fp,%d4 <== NOT EXECUTED 46032: 2440 moveal %d0,%a2 <== NOT EXECUTED 46034: 4282 clrl %d2 <== NOT EXECUTED 46036: 5984 subql #4,%d4 <== NOT EXECUTED 46038: 49f9 0004 5dd0 lea 45dd0 ,%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( 4603e: 47f9 0004 60a4 lea 460a4 ,%a3 <== NOT EXECUTED if ( !user_tasks || maximum == 0 ) return; for ( index=0 ; index < maximum ; index++ ) { return_value = rtems_task_create( 46044: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46046: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 4604a: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 4604e: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED 46052: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 46056: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 46058: 4e94 jsr %a4@ <== NOT EXECUTED user_tasks[ index ].mode_set, user_tasks[ index ].attribute_set, &id ); if ( !rtems_is_status_successful( return_value ) ) 4605a: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 46060: 4a80 tstl %d0 <== NOT EXECUTED 46062: 662e bnes 46092 <_RTEMS_tasks_Initialize_user_tasks_body+0x82> <== NOT EXECUTED _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value ); return_value = rtems_task_start( 46064: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 46068: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 4606c: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 46070: 4e93 jsr %a3@ <== NOT EXECUTED id, user_tasks[ index ].entry_point, user_tasks[ index ].argument ); if ( !rtems_is_status_successful( return_value ) ) 46072: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46078: 4a80 tstl %d0 <== NOT EXECUTED 4607a: 6616 bnes 46092 <_RTEMS_tasks_Initialize_user_tasks_body+0x82> <== NOT EXECUTED maximum = api_configuration->number_of_initialization_tasks; if ( !user_tasks || maximum == 0 ) return; for ( index=0 ; index < maximum ; index++ ) { 4607c: 5282 addql #1,%d2 <== NOT EXECUTED 4607e: d5fc 0000 001c addal #28,%a2 <== NOT EXECUTED 46084: b483 cmpl %d3,%d2 <== NOT EXECUTED 46086: 65bc bcss 46044 <_RTEMS_tasks_Initialize_user_tasks_body+0x34> <== NOT EXECUTED ); if ( !rtems_is_status_successful( return_value ) ) _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value ); } } 46088: 4cee 1c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a4 <== NOT EXECUTED 4608e: 4e5e unlk %fp <== NOT EXECUTED 46090: 4e75 rts <== NOT EXECUTED user_tasks[ index ].entry_point, user_tasks[ index ].argument ); if ( !rtems_is_status_successful( return_value ) ) _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value ); 46092: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46094: 4878 0001 pea 1 <== NOT EXECUTED 46098: 4878 0001 pea 1 <== NOT EXECUTED 4609c: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED ... 0004b8da <_RTEMS_tasks_Manager_initialization>: */ void _RTEMS_tasks_Manager_initialization( uint32_t maximum_tasks ) { 4b8da: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b8de: 4878 0004 pea 4 <== NOT EXECUTED 4b8e2: 42a7 clrl %sp@- <== NOT EXECUTED 4b8e4: 4878 0120 pea 120 <== NOT EXECUTED 4b8e8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b8ec: 4878 0001 pea 1 <== NOT EXECUTED 4b8f0: 4878 0002 pea 2 <== NOT EXECUTED 4b8f4: 4879 0005 9bec pea 59bec <_RTEMS_tasks_Information> <== NOT EXECUTED 4b8fa: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED /* * Add all the extensions for this API */ _User_extensions_Add_API_set( &_RTEMS_tasks_User_extensions ); 4b900: 4879 0005 85c4 pea 585c4 <_RTEMS_tasks_User_extensions> <== NOT EXECUTED 4b906: 4eb9 0004 c530 jsr 4c530 <_User_extensions_Add_API_set> <== NOT EXECUTED _API_extensions_Add( &_RTEMS_tasks_API_extensions ); 4b90c: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 4b912: 203c 0005 85b0 movel #361904,%d0 <== NOT EXECUTED 4b918: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED MP_PACKET_TASKS, _RTEMS_tasks_MP_Process_packet ); #endif } 4b91c: 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 ); 4b91e: 4ef9 0004 6708 jmp 46708 <_API_extensions_Add> <== NOT EXECUTED 0004b924 <_RTEMS_tasks_Post_switch_extension>: */ void _RTEMS_tasks_Post_switch_extension( Thread_Control *executing ) { 4b924: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4b928: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4b92c: 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 ]; 4b930: 2668 010c moveal %a0@(268),%a3 <== NOT EXECUTED if ( !api ) 4b934: 4a8b tstl %a3 <== NOT EXECUTED 4b936: 671a beqs 4b952 <_RTEMS_tasks_Post_switch_extension+0x2e> <== NOT EXECUTED * Signal Processing */ asr = &api->Signal; _ISR_Disable( level ); 4b938: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 4b93e: 40c0 movew %sr,%d0 <== NOT EXECUTED 4b940: 8280 orl %d0,%d1 <== NOT EXECUTED 4b942: 46c1 movew %d1,%sr <== NOT EXECUTED signal_set = asr->signals_posted; 4b944: 262b 0012 movel %a3@(18),%d3 <== NOT EXECUTED asr->signals_posted = 0; 4b948: 42ab 0012 clrl %a3@(18) <== NOT EXECUTED _ISR_Enable( level ); 4b94c: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !signal_set ) /* similar to _ASR_Are_signals_pending( asr ) */ 4b94e: 4a83 tstl %d3 <== NOT EXECUTED 4b950: 660a bnes 4b95c <_RTEMS_tasks_Post_switch_extension+0x38> <== NOT EXECUTED (*asr->handler)( signal_set ); asr->nest_level -= 1; rtems_task_mode( prev_mode, RTEMS_ALL_MODE_MASKS, &prev_mode ); } 4b952: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 4b958: 4e5e unlk %fp <== NOT EXECUTED 4b95a: 4e75 rts <== NOT EXECUTED if ( !signal_set ) /* similar to _ASR_Are_signals_pending( asr ) */ return; asr->nest_level += 1; 4b95c: 52ab 001a addql #1,%a3@(26) <== NOT EXECUTED rtems_task_mode( asr->mode_set, RTEMS_ALL_MODE_MASKS, &prev_mode ); 4b960: 240e movel %fp,%d2 <== NOT EXECUTED 4b962: 5982 subql #4,%d2 <== NOT EXECUTED 4b964: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b966: 45f9 0004 ce20 lea 4ce20 ,%a2 <== NOT EXECUTED 4b96c: 2f3c 0000 ffff movel #65535,%sp@- <== NOT EXECUTED 4b972: 2f2b 000e movel %a3@(14),%sp@- <== NOT EXECUTED 4b976: 4e92 jsr %a2@ <== NOT EXECUTED (*asr->handler)( signal_set ); 4b978: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4b97a: 206b 000a moveal %a3@(10),%a0 <== NOT EXECUTED 4b97e: 4e90 jsr %a0@ <== NOT EXECUTED asr->nest_level -= 1; 4b980: 53ab 001a subql #1,%a3@(26) <== NOT EXECUTED rtems_task_mode( prev_mode, RTEMS_ALL_MODE_MASKS, &prev_mode ); 4b984: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b986: 2f3c 0000 ffff movel #65535,%sp@- <== NOT EXECUTED 4b98c: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 4b990: 4e92 jsr %a2@ <== NOT EXECUTED 4b992: dffc 0000 001c addal #28,%sp <== NOT EXECUTED } 4b998: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 4b99e: 4e5e unlk %fp <== NOT EXECUTED 4b9a0: 4e75 rts 0004b86c <_RTEMS_tasks_Start_extension>: User_extensions_routine _RTEMS_tasks_Start_extension( Thread_Control *executing, Thread_Control *started ) { 4b86c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b870: 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; 4b874: 2268 010c moveal %a0@(268),%a1 <== NOT EXECUTED } 4b878: 4e5e unlk %fp <== NOT EXECUTED { RTEMS_API_Control *api; api = started->API_Extensions[ THREAD_API_RTEMS ]; api->pending_events = EVENT_SETS_NONE_PENDING; 4b87a: 4291 clrl %a1@ <== NOT EXECUTED } 4b87c: 4e75 rts 0004b87e <_RTEMS_tasks_Switch_extension>: void _RTEMS_tasks_Switch_extension( Thread_Control *executing, Thread_Control *heir ) { 4b87e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b882: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED /* * Per Task Variables */ tvp = executing->task_variables; 4b886: 2268 011c moveal %a0@(284),%a1 <== NOT EXECUTED while (tvp) { 4b88a: 4a89 tstl %a1 <== NOT EXECUTED 4b88c: 6712 beqs 4b8a0 <_RTEMS_tasks_Switch_extension+0x22> <== NOT EXECUTED tvp->tval = *tvp->ptr; 4b88e: 2069 0004 moveal %a1@(4),%a0 <== NOT EXECUTED 4b892: 2350 000c movel %a0@,%a1@(12) <== NOT EXECUTED *tvp->ptr = tvp->gval; 4b896: 20a9 0008 movel %a1@(8),%a0@ <== NOT EXECUTED tvp = (rtems_task_variable_t *)tvp->next; 4b89a: 2251 moveal %a1@,%a1 <== NOT EXECUTED /* * Per Task Variables */ tvp = executing->task_variables; while (tvp) { 4b89c: 4a89 tstl %a1 <== NOT EXECUTED 4b89e: 66ee bnes 4b88e <_RTEMS_tasks_Switch_extension+0x10> <== NOT EXECUTED tvp->tval = *tvp->ptr; *tvp->ptr = tvp->gval; tvp = (rtems_task_variable_t *)tvp->next; } tvp = heir->task_variables; 4b8a0: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 4b8a4: 2268 011c moveal %a0@(284),%a1 <== NOT EXECUTED while (tvp) { 4b8a8: 4a89 tstl %a1 <== NOT EXECUTED 4b8aa: 6712 beqs 4b8be <_RTEMS_tasks_Switch_extension+0x40> <== NOT EXECUTED tvp->gval = *tvp->ptr; 4b8ac: 2069 0004 moveal %a1@(4),%a0 <== NOT EXECUTED 4b8b0: 2350 0008 movel %a0@,%a1@(8) <== NOT EXECUTED *tvp->ptr = tvp->tval; 4b8b4: 20a9 000c movel %a1@(12),%a0@ <== NOT EXECUTED tvp = (rtems_task_variable_t *)tvp->next; 4b8b8: 2251 moveal %a1@,%a1 <== NOT EXECUTED *tvp->ptr = tvp->gval; tvp = (rtems_task_variable_t *)tvp->next; } tvp = heir->task_variables; while (tvp) { 4b8ba: 4a89 tstl %a1 <== NOT EXECUTED 4b8bc: 66ee bnes 4b8ac <_RTEMS_tasks_Switch_extension+0x2e> <== NOT EXECUTED tvp->gval = *tvp->ptr; *tvp->ptr = tvp->tval; tvp = (rtems_task_variable_t *)tvp->next; } } 4b8be: 4e5e unlk %fp <== NOT EXECUTED 4b8c0: 4e75 rts 000469ac <_Rate_monotonic_Initiate_statistics>: #endif void _Rate_monotonic_Initiate_statistics( Rate_monotonic_Control *the_period ) { 469ac: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 469b0: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 469b4: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED Thread_Control *owning_thread = the_period->owner; 469b8: 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 ); 469bc: 260e movel %fp,%d3 <== NOT EXECUTED 469be: 5183 subql #8,%d3 <== NOT EXECUTED 469c0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 469c2: 4eb9 0004 8664 jsr 48664 <_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; 469c8: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 469cc: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 469d0: 2740 0044 movel %d0,%a3@(68) <== NOT EXECUTED 469d4: 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; 469d8: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 469dc: 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) { 469e2: 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; 469e4: 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) { 469e8: b5f9 0005 cca6 cmpal 5cca6 <_Thread_Executing>,%a2 <== NOT EXECUTED 469ee: 670a beqs 469fa <_Rate_monotonic_Initiate_statistics+0x4e> <== NOT EXECUTED ); _Timespec_Add_to( &the_period->owner_executed_at_period, &ran ); } #endif } 469f0: 4cee 0c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a3 <== NOT EXECUTED 469f6: 4e5e unlk %fp <== NOT EXECUTED 469f8: 4e75 rts <== NOT EXECUTED /* * Adjust the CPU time used to account for the time since last * context switch. */ _Timespec_Subtract( 469fa: 240e movel %fp,%d2 <== NOT EXECUTED 469fc: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 46a02: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46a04: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46a06: 4879 0005 ccae pea 5ccae <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 46a0c: 4eb9 0004 a948 jsr 4a948 <_Timespec_Subtract> <== NOT EXECUTED &_Thread_Time_of_last_context_switch, &uptime, &ran ); _Timespec_Add_to( &the_period->owner_executed_at_period, &ran ); 46a12: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46a14: 486b 003c pea %a3@(60) <== NOT EXECUTED 46a18: 4eb9 0004 a804 jsr 4a804 <_Timespec_Add_to> <== NOT EXECUTED 46a1e: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED } #endif } 46a24: 4cee 0c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a3 <== NOT EXECUTED 46a2a: 4e5e unlk %fp <== NOT EXECUTED 46a2c: 4e75 rts 0004b798 <_Rate_monotonic_Manager_initialization>: */ void _Rate_monotonic_Manager_initialization( uint32_t maximum_periods ) { 4b798: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b79c: 4878 0004 pea 4 <== NOT EXECUTED 4b7a0: 42a7 clrl %sp@- <== NOT EXECUTED 4b7a2: 4878 008c pea 8c <== NOT EXECUTED 4b7a6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b7aa: 4878 0008 pea 8 <== NOT EXECUTED 4b7ae: 4878 0002 pea 2 <== NOT EXECUTED 4b7b2: 4879 0005 a60e pea 5a60e <_Rate_monotonic_Information> <== NOT EXECUTED 4b7b8: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b7be: dffc 0000 001c addal #28,%sp <== NOT EXECUTED , FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 4b7c4: 4e5e unlk %fp <== NOT EXECUTED 4b7c6: 4e75 rts 00047084 <_Rate_monotonic_Timeout>: void _Rate_monotonic_Timeout( Objects_Id id, void *ignored ) { 47084: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 47088: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4708a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4708e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47092: 4879 0005 cae0 pea 5cae0 <_Rate_monotonic_Information> <== NOT EXECUTED 47098: 4eb9 0004 906c jsr 4906c <_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 ) { 4709e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 470a4: 2440 moveal %d0,%a2 <== NOT EXECUTED 470a6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 470aa: 662c bnes 470d8 <_Rate_monotonic_Timeout+0x54> <== NOT EXECUTED case OBJECTS_LOCAL: the_thread = the_period->owner; 470ac: 206a 0050 moveal %a2@(80),%a0 <== NOT EXECUTED if ( _States_Is_waiting_for_period( the_thread->current_state ) && 470b0: 2028 0010 movel %a0@(16),%d0 <== NOT EXECUTED 470b4: 0280 0000 4000 andil #16384,%d0 <== NOT EXECUTED 470ba: 6624 bnes 470e0 <_Rate_monotonic_Timeout+0x5c> <== NOT EXECUTED _Thread_Unblock( the_thread ); _Rate_monotonic_Initiate_statistics( the_period ); _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length ); } else if ( the_period->state == RATE_MONOTONIC_OWNER_IS_BLOCKING ) { 470bc: 7001 moveq #1,%d0 <== NOT EXECUTED 470be: b0aa 0038 cmpl %a2@(56),%d0 <== NOT EXECUTED 470c2: 6768 beqs 4712c <_Rate_monotonic_Timeout+0xa8> <== NOT EXECUTED _Rate_monotonic_Initiate_statistics( the_period ); _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length ); } else the_period->state = RATE_MONOTONIC_EXPIRED; 470c4: 7004 moveq #4,%d0 <== NOT EXECUTED 470c6: 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; 470ca: 2039 0005 cbe8 movel 5cbe8 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 470d0: 5380 subql #1,%d0 <== NOT EXECUTED 470d2: 23c0 0005 cbe8 movel %d0,5cbe8 <_Thread_Dispatch_disable_level> <== NOT EXECUTED case OBJECTS_REMOTE: /* impossible */ #endif case OBJECTS_ERROR: break; } } 470d8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 470dc: 4e5e unlk %fp <== NOT EXECUTED 470de: 4e75 rts <== NOT EXECUTED the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: the_thread = the_period->owner; if ( _States_Is_waiting_for_period( the_thread->current_state ) && 470e0: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED 470e4: b0a8 0020 cmpl %a0@(32),%d0 <== NOT EXECUTED 470e8: 66d2 bnes 470bc <_Rate_monotonic_Timeout+0x38> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 470ea: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 470f0: 2f08 movel %a0,%sp@- <== NOT EXECUTED 470f2: 4eb9 0004 9518 jsr 49518 <_Thread_Clear_state> <== NOT EXECUTED the_thread->Wait.id == the_period->Object.id ) { _Thread_Unblock( the_thread ); _Rate_monotonic_Initiate_statistics( the_period ); 470f8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 470fa: 4eb9 0004 69ac jsr 469ac <_Rate_monotonic_Initiate_statistics> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 47100: 256a 004c 001c movel %a2@(76),%a2@(28) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 47106: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4710a: 4879 0005 ccc4 pea 5ccc4 <_Watchdog_Ticks_chain> <== NOT EXECUTED 47110: 4eb9 0004 ac30 jsr 4ac30 <_Watchdog_Insert> <== NOT EXECUTED 47116: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 4711c: 2039 0005 cbe8 movel 5cbe8 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 47122: 5380 subql #1,%d0 <== NOT EXECUTED 47124: 23c0 0005 cbe8 movel %d0,5cbe8 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 4712a: 60ac bras 470d8 <_Rate_monotonic_Timeout+0x54> <== NOT EXECUTED _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length ); } else if ( the_period->state == RATE_MONOTONIC_OWNER_IS_BLOCKING ) { the_period->state = RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING; 4712c: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 47130: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED _Rate_monotonic_Initiate_statistics( the_period ); 47134: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47136: 4eb9 0004 69ac jsr 469ac <_Rate_monotonic_Initiate_statistics> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4713c: 256a 004c 001c movel %a2@(76),%a2@(28) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 47142: 486a 0010 pea %a2@(16) <== NOT EXECUTED 47146: 4879 0005 ccc4 pea 5ccc4 <_Watchdog_Ticks_chain> <== NOT EXECUTED 4714c: 4eb9 0004 ac30 jsr 4ac30 <_Watchdog_Insert> <== NOT EXECUTED 47152: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 47158: 2039 0005 cbe8 movel 5cbe8 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4715e: 5380 subql #1,%d0 <== NOT EXECUTED 47160: 23c0 0005 cbe8 movel %d0,5cbe8 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 47166: 6000 ff70 braw 470d8 <_Rate_monotonic_Timeout+0x54> <== NOT EXECUTED ... 00046a2e <_Rate_monotonic_Update_statistics>: void _Rate_monotonic_Update_statistics( Rate_monotonic_Control *the_period ) { 46a2e: 4e56 ffb8 linkw %fp,#-72 <== NOT EXECUTED 46a32: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== NOT EXECUTED 46a36: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED struct timespec uptime; /* * Obtain the current time since boot */ _TOD_Get_uptime( &uptime ); 46a3a: 260e movel %fp,%d3 <== NOT EXECUTED 46a3c: 0683 ffff ffe8 addil #-24,%d3 <== NOT EXECUTED 46a42: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46a44: 4eb9 0004 8664 jsr 48664 <_TOD_Get_uptime> <== NOT EXECUTED /* * Update the counts. */ stats = &the_period->Statistics; stats->count++; 46a4a: 52aa 0054 addql #1,%a2@(84) <== NOT EXECUTED if ( the_period->state == RATE_MONOTONIC_EXPIRED ) 46a4e: 588f addql #4,%sp <== NOT EXECUTED 46a50: 7004 moveq #4,%d0 <== NOT EXECUTED 46a52: b0aa 0038 cmpl %a2@(56),%d0 <== NOT EXECUTED 46a56: 6700 0130 beqw 46b88 <_Rate_monotonic_Update_statistics+0x15a> <== NOT EXECUTED /* * Grab basic information for time statistics. */ #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS _Timespec_Subtract( 46a5a: 2a0e movel %fp,%d5 <== NOT EXECUTED 46a5c: 0685 ffff fff0 addil #-16,%d5 <== NOT EXECUTED 46a62: 2f05 movel %d5,%sp@- <== NOT EXECUTED 46a64: 47f9 0004 a948 lea 4a948 <_Timespec_Subtract>,%a3 <== 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); 46a6a: 240e movel %fp,%d2 <== NOT EXECUTED /* * Grab basic information for time statistics. */ #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS _Timespec_Subtract( 46a6c: 2f03 movel %d3,%sp@- <== 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); 46a6e: 0682 ffff ffe0 addil #-32,%d2 <== NOT EXECUTED /* * Grab basic information for time statistics. */ #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS _Timespec_Subtract( 46a74: 486a 0044 pea %a2@(68) <== NOT EXECUTED 46a78: 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; 46a7a: 2079 0005 cca6 moveal 5cca6 <_Thread_Executing>,%a0 <== NOT EXECUTED 46a80: 2d68 0088 ffdc movel %a0@(136),%fp@(-36) <== NOT EXECUTED 46a86: 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); 46a8a: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); 46a8c: 280e movel %fp,%d4 <== NOT EXECUTED 46a8e: 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); 46a94: 2f03 movel %d3,%sp@- <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); 46a96: 4bf9 0004 a804 lea 4a804 <_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); 46a9c: 4879 0005 ccae pea 5ccae <_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)) 46aa2: 260a movel %a2,%d3 <== NOT EXECUTED 46aa4: 0683 0000 003c addil #60,%d3 <== 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; 46aaa: 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); 46aae: 4e93 jsr %a3@ <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); 46ab0: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* partial period, cpu usage info reset while executing. Throw away */ if (_Timespec_Less_than( &used, &the_period->owner_executed_at_period)) 46ab2: 49f9 0004 a914 lea 4a914 <_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 ); 46ab8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46aba: 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)) 46abc: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 46ac2: 2e83 movel %d3,%sp@ <== NOT EXECUTED 46ac4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46ac6: 4e94 jsr %a4@ <== NOT EXECUTED 46ac8: 508f addql #8,%sp <== NOT EXECUTED 46aca: 4a00 tstb %d0 <== NOT EXECUTED 46acc: 670a beqs 46ad8 <_Rate_monotonic_Update_statistics+0xaa> <== NOT EXECUTED stats->min_wall_time = since_last_period; if ( _Timespec_Greater_than( &since_last_period, &stats->max_wall_time ) ) stats->max_wall_time = since_last_period; #endif } 46ace: 4cee 3c3c ffb8 moveml %fp@(-72),%d2-%d5/%a2-%a5 <== NOT EXECUTED 46ad4: 4e5e unlk %fp <== NOT EXECUTED 46ad6: 4e75 rts <== NOT EXECUTED /* partial period, cpu usage info reset while executing. Throw away */ if (_Timespec_Less_than( &used, &the_period->owner_executed_at_period)) return; /* executed = current cpu usage - value at start of period */ _Timespec_Subtract( 46ad8: 0682 0000 0018 addil #24,%d2 <== NOT EXECUTED 46ade: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46ae0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46ae2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 46ae4: 4e93 jsr %a3@ <== NOT EXECUTED /* * Update CPU time */ #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS _Timespec_Add_to( &stats->total_cpu_time, &executed ); 46ae6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46ae8: 486a 006c pea %a2@(108) <== NOT EXECUTED 46aec: 4e95 jsr %a5@ <== NOT EXECUTED if ( _Timespec_Less_than( &executed, &stats->min_cpu_time ) ) 46aee: 486a 005c pea %a2@(92) <== NOT EXECUTED 46af2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46af4: 4e94 jsr %a4@ <== NOT EXECUTED 46af6: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 46afc: 4a00 tstb %d0 <== NOT EXECUTED 46afe: 6710 beqs 46b10 <_Rate_monotonic_Update_statistics+0xe2> <== NOT EXECUTED stats->min_cpu_time = executed; 46b00: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 46b04: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 46b08: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED 46b0c: 2541 0060 movel %d1,%a2@(96) <== NOT EXECUTED if ( _Timespec_Greater_than( &executed, &stats->max_cpu_time ) ) 46b10: 486a 0064 pea %a2@(100) <== NOT EXECUTED 46b14: 47f9 0004 a8e0 lea 4a8e0 <_Timespec_Greater_than>,%a3 <== NOT EXECUTED 46b1a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46b1c: 4e93 jsr %a3@ <== NOT EXECUTED 46b1e: 508f addql #8,%sp <== NOT EXECUTED 46b20: 4a00 tstb %d0 <== NOT EXECUTED 46b22: 6710 beqs 46b34 <_Rate_monotonic_Update_statistics+0x106> <== NOT EXECUTED stats->max_cpu_time = executed; 46b24: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 46b28: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 46b2c: 2540 0064 movel %d0,%a2@(100) <== NOT EXECUTED 46b30: 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 ); 46b34: 2f05 movel %d5,%sp@- <== NOT EXECUTED 46b36: 486a 0084 pea %a2@(132) <== NOT EXECUTED 46b3a: 4e95 jsr %a5@ <== NOT EXECUTED if ( _Timespec_Less_than( &since_last_period, &stats->min_wall_time ) ) 46b3c: 486a 0074 pea %a2@(116) <== NOT EXECUTED 46b40: 2f05 movel %d5,%sp@- <== NOT EXECUTED 46b42: 4e94 jsr %a4@ <== NOT EXECUTED 46b44: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 46b4a: 4a00 tstb %d0 <== NOT EXECUTED 46b4c: 6710 beqs 46b5e <_Rate_monotonic_Update_statistics+0x130> <== NOT EXECUTED stats->min_wall_time = since_last_period; 46b4e: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 46b52: 222e fff4 movel %fp@(-12),%d1 <== NOT EXECUTED 46b56: 2540 0074 movel %d0,%a2@(116) <== NOT EXECUTED 46b5a: 2541 0078 movel %d1,%a2@(120) <== NOT EXECUTED if ( _Timespec_Greater_than( &since_last_period, &stats->max_wall_time ) ) 46b5e: 486a 007c pea %a2@(124) <== NOT EXECUTED 46b62: 2f05 movel %d5,%sp@- <== NOT EXECUTED 46b64: 4e93 jsr %a3@ <== NOT EXECUTED 46b66: 508f addql #8,%sp <== NOT EXECUTED 46b68: 4a00 tstb %d0 <== NOT EXECUTED 46b6a: 6700 ff62 beqw 46ace <_Rate_monotonic_Update_statistics+0xa0> <== NOT EXECUTED stats->max_wall_time = since_last_period; 46b6e: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 46b72: 222e fff4 movel %fp@(-12),%d1 <== NOT EXECUTED 46b76: 2540 007c movel %d0,%a2@(124) <== NOT EXECUTED 46b7a: 2541 0080 movel %d1,%a2@(128) <== NOT EXECUTED #endif } 46b7e: 4cee 3c3c ffb8 moveml %fp@(-72),%d2-%d5/%a2-%a5 <== NOT EXECUTED 46b84: 4e5e unlk %fp <== NOT EXECUTED 46b86: 4e75 rts <== NOT EXECUTED */ stats = &the_period->Statistics; stats->count++; if ( the_period->state == RATE_MONOTONIC_EXPIRED ) stats->missed_count++; 46b88: 52aa 0058 addql #1,%a2@(88) <== NOT EXECUTED /* * Grab basic information for time statistics. */ #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS _Timespec_Subtract( 46b8c: 2a0e movel %fp,%d5 <== NOT EXECUTED 46b8e: 0685 ffff fff0 addil #-16,%d5 <== NOT EXECUTED 46b94: 2f05 movel %d5,%sp@- <== NOT EXECUTED 46b96: 47f9 0004 a948 lea 4a948 <_Timespec_Subtract>,%a3 <== 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); 46b9c: 240e movel %fp,%d2 <== NOT EXECUTED /* * Grab basic information for time statistics. */ #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS _Timespec_Subtract( 46b9e: 2f03 movel %d3,%sp@- <== 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); 46ba0: 0682 ffff ffe0 addil #-32,%d2 <== NOT EXECUTED /* * Grab basic information for time statistics. */ #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS _Timespec_Subtract( 46ba6: 486a 0044 pea %a2@(68) <== NOT EXECUTED 46baa: 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; 46bac: 2079 0005 cca6 moveal 5cca6 <_Thread_Executing>,%a0 <== NOT EXECUTED 46bb2: 2d68 0088 ffdc movel %a0@(136),%fp@(-36) <== NOT EXECUTED 46bb8: 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); 46bbc: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); 46bbe: 280e movel %fp,%d4 <== NOT EXECUTED 46bc0: 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); 46bc6: 2f03 movel %d3,%sp@- <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); 46bc8: 4bf9 0004 a804 lea 4a804 <_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); 46bce: 4879 0005 ccae pea 5ccae <_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)) 46bd4: 260a movel %a2,%d3 <== NOT EXECUTED 46bd6: 0683 0000 003c addil #60,%d3 <== 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; 46bdc: 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); 46be0: 4e93 jsr %a3@ <== NOT EXECUTED /* executed += ran */ _Timespec_Add_to( &used, &ran ); 46be2: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* partial period, cpu usage info reset while executing. Throw away */ if (_Timespec_Less_than( &used, &the_period->owner_executed_at_period)) 46be4: 49f9 0004 a914 lea 4a914 <_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 ); 46bea: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46bec: 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)) 46bee: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 46bf4: 2e83 movel %d3,%sp@ <== NOT EXECUTED 46bf6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46bf8: 4e94 jsr %a4@ <== NOT EXECUTED 46bfa: 508f addql #8,%sp <== NOT EXECUTED 46bfc: 4a00 tstb %d0 <== NOT EXECUTED 46bfe: 6600 fece bnew 46ace <_Rate_monotonic_Update_statistics+0xa0> <== NOT EXECUTED 46c02: 6000 fed4 braw 46ad8 <_Rate_monotonic_Update_statistics+0xaa> <== NOT EXECUTED 0004b7c8 <_Region_Manager_initialization>: */ void _Region_Manager_initialization( uint32_t maximum_regions ) { 4b7c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b7cc: 4878 0004 pea 4 <== NOT EXECUTED 4b7d0: 42a7 clrl %sp@- <== NOT EXECUTED 4b7d2: 4878 00c0 pea c0 <== NOT EXECUTED 4b7d6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b7da: 4878 0006 pea 6 <== NOT EXECUTED 4b7de: 4878 0002 pea 2 <== NOT EXECUTED 4b7e2: 4879 0005 a64a pea 5a64a <_Region_Information> <== NOT EXECUTED 4b7e8: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b7ee: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_REGION, 0 /* XXX _Region_MP_Process_packet */ ); #endif } 4b7f4: 4e5e unlk %fp <== NOT EXECUTED 4b7f6: 4e75 rts 0005a148 <_Region_Process_queue>: 5a148: 2039 0007 2b48 movel 72b48 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED */ void _Region_Process_queue( Region_Control *the_region ) { 5a14e: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5a152: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 5a156: 5280 addql #1,%d0 <== NOT EXECUTED 5a158: 23c0 0007 2b48 movel %d0,72b48 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 5a15e: 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(); 5a162: 2f39 0007 2bfe movel 72bfe <_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 ); 5a168: 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 ); 5a16a: 260b movel %a3,%d3 <== NOT EXECUTED 5a16c: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 5a172: 49f9 0005 aa58 lea 5aa58 <_Thread_queue_First>,%a4 <== NOT EXECUTED 5a178: 0683 0000 0068 addil #104,%d3 <== NOT EXECUTED 5a17e: 4bf9 0005 4d40 lea 54d40 <_Heap_Allocate>,%a5 <== 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(); 5a184: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 5a18a: 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 ); 5a18c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5a18e: 4e94 jsr %a4@ <== 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 ); 5a190: 283c 0005 a930 movel #370992,%d4 <== 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 ); 5a196: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( the_thread == NULL ) 5a198: 588f addql #4,%sp <== NOT EXECUTED 5a19a: 4a80 tstl %d0 <== NOT EXECUTED 5a19c: 6732 beqs 5a1d0 <_Region_Process_queue+0x88> <== NOT EXECUTED 5a19e: 2f2a 0024 movel %a2@(36),%sp@- <== NOT EXECUTED 5a1a2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 5a1a4: 4e95 jsr %a5@ <== NOT EXECUTED the_segment = (void **) _Region_Allocate_segment( the_region, the_thread->Wait.count ); if ( the_segment == NULL ) 5a1a6: 508f addql #8,%sp <== NOT EXECUTED 5a1a8: 4a80 tstl %d0 <== NOT EXECUTED 5a1aa: 6724 beqs 5a1d0 <_Region_Process_queue+0x88> <== NOT EXECUTED break; *(void **)the_thread->Wait.return_argument = the_segment; 5a1ac: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED the_region->number_of_used_blocks += 1; 5a1b0: 52ab 0064 addql #1,%a3@(100) <== NOT EXECUTED ); if ( the_segment == NULL ) break; *(void **)the_thread->Wait.return_argument = the_segment; 5a1b4: 2080 movel %d0,%a0@ <== NOT EXECUTED the_region->number_of_used_blocks += 1; _Thread_queue_Extract( &the_region->Wait_queue, the_thread ); 5a1b6: 2044 moveal %d4,%a0 <== NOT EXECUTED 5a1b8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5a1ba: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5a1bc: 4e90 jsr %a0@ <== NOT EXECUTED the_thread->Wait.return_code = RTEMS_SUCCESSFUL; 5a1be: 508f addql #8,%sp <== NOT EXECUTED 5a1c0: 42aa 0034 clrl %a2@(52) <== 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 ); 5a1c4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5a1c6: 4e94 jsr %a4@ <== NOT EXECUTED if ( the_thread == NULL ) 5a1c8: 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 ); 5a1ca: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( the_thread == NULL ) 5a1cc: 4a80 tstl %d0 <== NOT EXECUTED 5a1ce: 66ce bnes 5a19e <_Region_Process_queue+0x56> <== NOT EXECUTED 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(); } 5a1d0: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 5a1d6: 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(); 5a1d8: 4ef9 0005 63f0 jmp 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED ... 0004b834 <_Semaphore_Manager_initialization>: */ void _Semaphore_Manager_initialization( uint32_t maximum_semaphores ) { 4b834: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b838: 4878 0004 pea 4 <== NOT EXECUTED 4b83c: 42a7 clrl %sp@- <== NOT EXECUTED 4b83e: 4878 0076 pea 76 <== NOT EXECUTED 4b842: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b846: 4878 0003 pea 3 <== NOT EXECUTED 4b84a: 4878 0002 pea 2 <== NOT EXECUTED 4b84e: 4879 0005 9bb0 pea 59bb0 <_Semaphore_Information> <== NOT EXECUTED 4b854: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED 4b85a: dffc 0000 001c addal #28,%sp <== NOT EXECUTED MP_PACKET_SEMAPHORE, _Semaphore_MP_Process_packet ); #endif } 4b860: 4e5e unlk %fp <== NOT EXECUTED 4b862: 4e75 rts 00045da4 <_Semaphore_Translate_core_mutex_return_code>: }; rtems_status_code _Semaphore_Translate_core_mutex_return_code ( uint32_t status ) { 45da4: 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]; } 45da8: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED }; rtems_status_code _Semaphore_Translate_core_mutex_return_code ( uint32_t status ) { 45dac: 41f9 0005 6e9a lea 56e9a <_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]; } 45db2: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 45db6: 4e5e unlk %fp <== NOT EXECUTED 45db8: 4e75 rts 00045dba <_Semaphore_Translate_core_semaphore_return_code>: }; rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( uint32_t status ) { 45dba: 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]; } 45dbe: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED }; rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( uint32_t status ) { 45dc2: 41f9 0005 6eb6 lea 56eb6 <_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]; } 45dc8: 2030 1c00 movel %a0@(00000000,%d1:l:4),%d0 <== NOT EXECUTED 45dcc: 4e5e unlk %fp <== NOT EXECUTED 45dce: 4e75 rts 0004b864 <_Signal_Manager_initialization>: * * Output parameters: NONE */ void _Signal_Manager_initialization( void ) { 4b864: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _MPCI_Register_packet_processor( MP_PACKET_SIGNAL, _Signal_MP_Process_packet ); #endif } 4b868: 4e5e unlk %fp <== NOT EXECUTED 4b86a: 4e75 rts 00046c80 <_TOD_Get>: */ void _TOD_Get( struct timespec *time ) { 46c80: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 46c84: 2f0a movel %a2,%sp@- <== NOT EXECUTED offset.tv_sec = 0; offset.tv_nsec = 0; /* _TOD_Now is a proper POSIX time */ _ISR_Disable( level ); 46c86: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ void _TOD_Get( struct timespec *time ) { 46c8c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46c8e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; struct timespec offset; /* assume time checked by caller */ offset.tv_sec = 0; 46c92: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED offset.tv_nsec = 0; 46c96: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED /* _TOD_Now is a proper POSIX time */ _ISR_Disable( level ); 46c9a: 40c2 movew %sr,%d2 <== NOT EXECUTED 46c9c: 8082 orl %d2,%d0 <== NOT EXECUTED 46c9e: 46c0 movew %d0,%sr <== NOT EXECUTED *time = _TOD_Now; if ( _Watchdog_Nanoseconds_since_tick_handler ) 46ca0: 2079 0005 9e12 moveal 59e12 <_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; 46ca6: 2039 0005 9d0e movel 59d0e <_TOD_Now>,%d0 <== NOT EXECUTED 46cac: 2239 0005 9d12 movel 59d12 <_TOD_Now+0x4>,%d1 <== NOT EXECUTED 46cb2: 2480 movel %d0,%a2@ <== NOT EXECUTED 46cb4: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED if ( _Watchdog_Nanoseconds_since_tick_handler ) 46cb8: 4a88 tstl %a0 <== NOT EXECUTED 46cba: 6706 beqs 46cc2 <_TOD_Get+0x42> <== NOT EXECUTED offset.tv_nsec = (*_Watchdog_Nanoseconds_since_tick_handler)(); 46cbc: 4e90 jsr %a0@ <== NOT EXECUTED 46cbe: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED _ISR_Enable( level ); 46cc2: 46c2 movew %d2,%sr <== NOT EXECUTED _Timespec_Add_to( time, &offset ); 46cc4: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 46cc8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46cca: 4eb9 0004 8cec jsr 48cec <_Timespec_Add_to> <== NOT EXECUTED } 46cd0: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 46cd4: 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 ); 46cd8: 508f addql #8,%sp <== NOT EXECUTED } 46cda: 4e5e unlk %fp <== NOT EXECUTED 46cdc: 4e75 rts <== NOT EXECUTED ... 0004bd48 <_TOD_Get_uptime>: */ void _TOD_Get_uptime( struct timespec *uptime ) { 4bd48: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 4bd4c: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* assume uptime checked by caller */ offset.tv_sec = 0; offset.tv_nsec = 0; _ISR_Disable( level ); 4bd4e: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ void _TOD_Get_uptime( struct timespec *uptime ) { 4bd54: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4bd56: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; struct timespec offset; /* assume uptime checked by caller */ offset.tv_sec = 0; 4bd5a: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED offset.tv_nsec = 0; 4bd5e: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED _ISR_Disable( level ); 4bd62: 40c2 movew %sr,%d2 <== NOT EXECUTED 4bd64: 8082 orl %d2,%d0 <== NOT EXECUTED 4bd66: 46c0 movew %d0,%sr <== NOT EXECUTED *uptime = _TOD_Uptime; if ( _Watchdog_Nanoseconds_since_tick_handler ) 4bd68: 2079 0005 9e12 moveal 59e12 <_Watchdog_Nanoseconds_since_tick_handler>,%a0 <== NOT EXECUTED offset.tv_sec = 0; offset.tv_nsec = 0; _ISR_Disable( level ); *uptime = _TOD_Uptime; 4bd6e: 2039 0005 9cfa movel 59cfa <_TOD_Uptime>,%d0 <== NOT EXECUTED 4bd74: 2239 0005 9cfe movel 59cfe <_TOD_Uptime+0x4>,%d1 <== NOT EXECUTED 4bd7a: 2480 movel %d0,%a2@ <== NOT EXECUTED 4bd7c: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED if ( _Watchdog_Nanoseconds_since_tick_handler ) 4bd80: 4a88 tstl %a0 <== NOT EXECUTED 4bd82: 6706 beqs 4bd8a <_TOD_Get_uptime+0x42> <== NOT EXECUTED offset.tv_nsec = (*_Watchdog_Nanoseconds_since_tick_handler)(); 4bd84: 4e90 jsr %a0@ <== NOT EXECUTED 4bd86: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED _ISR_Enable( level ); 4bd8a: 46c2 movew %d2,%sr <== NOT EXECUTED _Timespec_Add_to( uptime, &offset ); 4bd8c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4bd90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4bd92: 4eb9 0004 8cec jsr 48cec <_Timespec_Add_to> <== NOT EXECUTED } 4bd98: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 4bd9c: 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 ); 4bda0: 508f addql #8,%sp <== NOT EXECUTED } 4bda2: 4e5e unlk %fp <== NOT EXECUTED 4bda4: 4e75 rts <== NOT EXECUTED ... 00046ce0 <_TOD_Handler_initialization>: */ void _TOD_Handler_initialization( uint32_t microseconds_per_tick ) { 46ce0: 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; 46ce4: 4200 clrb %d0 <== NOT EXECUTED void _TOD_Handler_initialization( uint32_t microseconds_per_tick ) { _TOD_Microseconds_per_tick = microseconds_per_tick; 46ce6: 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; 46cea: 13c0 0005 9c90 moveb %d0,59c90 <_TOD_Is_set> <== NOT EXECUTED void _TOD_Handler_initialization( uint32_t microseconds_per_tick ) { _TOD_Microseconds_per_tick = microseconds_per_tick; 46cf0: 23d0 0005 9e0a movel %a0@,59e0a <_TOD_Microseconds_per_tick> <== NOT EXECUTED _TOD_Uptime.tv_nsec = 0; /* TOD has not been set */ _TOD_Is_set = FALSE; _TOD_Activate(); } 46cf6: 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; 46cf8: 203c 21da e500 movel #567993600,%d0 <== NOT EXECUTED _TOD_Now.tv_nsec = 0; 46cfe: 42b9 0005 9d12 clrl 59d12 <_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; 46d04: 23c0 0005 9d0e movel %d0,59d0e <_TOD_Now> <== NOT EXECUTED _TOD_Now.tv_nsec = 0; /* Uptime (timespec) */ _TOD_Uptime.tv_sec = 0; 46d0a: 42b9 0005 9cfa clrl 59cfa <_TOD_Uptime> <== NOT EXECUTED _TOD_Uptime.tv_nsec = 0; 46d10: 42b9 0005 9cfe clrl 59cfe <_TOD_Uptime+0x4> <== NOT EXECUTED /* TOD has not been set */ _TOD_Is_set = FALSE; _TOD_Activate(); } 46d16: 4e75 rts 00048070 <_TOD_Set>: 48070: 2039 0006 42a4 movel 642a4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED */ void _TOD_Set( const struct timespec *time ) { 48076: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4807a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4807c: 5280 addql #1,%d0 <== NOT EXECUTED 4807e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 48082: 23c0 0006 42a4 movel %d0,642a4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); _TOD_Deactivate(); if ( time->tv_sec < _TOD_Seconds_since_epoch ) 48088: 2239 0006 4336 movel 64336 <_TOD_Now>,%d1 <== NOT EXECUTED 4808e: 2012 movel %a2@,%d0 <== NOT EXECUTED 48090: b280 cmpl %d0,%d1 <== NOT EXECUTED 48092: 6e3c bgts 480d0 <_TOD_Set+0x60> <== NOT EXECUTED Watchdog_Adjust_directions direction, Watchdog_Interval units ) { _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units ); 48094: 9081 subl %d1,%d0 <== NOT EXECUTED 48096: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48098: 42a7 clrl %sp@- <== NOT EXECUTED 4809a: 4879 0006 4374 pea 64374 <_Watchdog_Seconds_chain> <== NOT EXECUTED 480a0: 4eb9 0004 a7bc jsr 4a7bc <_Watchdog_Adjust> <== NOT EXECUTED else _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, time->tv_sec - _TOD_Seconds_since_epoch ); /* POSIX format TOD (timespec) */ _TOD_Now = *time; 480a6: 2012 movel %a2@,%d0 <== NOT EXECUTED 480a8: 588a addql #4,%a2 <== NOT EXECUTED 480aa: 23d2 0006 433a movel %a2@,6433a <_TOD_Now+0x4> <== NOT EXECUTED _TOD_Is_set = TRUE; _TOD_Activate(); _Thread_Enable_dispatch(); } 480b0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 480b4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 480ba: 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; 480bc: 7201 moveq #1,%d1 <== NOT EXECUTED 480be: 13c1 0006 42b8 moveb %d1,642b8 <_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; 480c4: 23c0 0006 4336 movel %d0,64336 <_TOD_Now> <== NOT EXECUTED _TOD_Is_set = TRUE; _TOD_Activate(); _Thread_Enable_dispatch(); 480ca: 4ef9 0004 92e0 jmp 492e0 <_Thread_Enable_dispatch> <== NOT EXECUTED 480d0: 9280 subl %d0,%d1 <== NOT EXECUTED 480d2: 2f01 movel %d1,%sp@- <== NOT EXECUTED 480d4: 4878 0001 pea 1 <== NOT EXECUTED 480d8: 4879 0006 4374 pea 64374 <_Watchdog_Seconds_chain> <== NOT EXECUTED 480de: 4eb9 0004 a7bc jsr 4a7bc <_Watchdog_Adjust> <== NOT EXECUTED else _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, time->tv_sec - _TOD_Seconds_since_epoch ); /* POSIX format TOD (timespec) */ _TOD_Now = *time; 480e4: 2012 movel %a2@,%d0 <== NOT EXECUTED 480e6: 588a addql #4,%a2 <== NOT EXECUTED 480e8: 23d2 0006 433a movel %a2@,6433a <_TOD_Now+0x4> <== NOT EXECUTED _TOD_Is_set = TRUE; _TOD_Activate(); _Thread_Enable_dispatch(); } 480ee: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 480f2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 480f8: 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; 480fa: 7201 moveq #1,%d1 <== NOT EXECUTED 480fc: 13c1 0006 42b8 moveb %d1,642b8 <_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; 48102: 23c0 0006 4336 movel %d0,64336 <_TOD_Now> <== NOT EXECUTED _TOD_Is_set = TRUE; _TOD_Activate(); _Thread_Enable_dispatch(); 48108: 4ef9 0004 92e0 jmp 492e0 <_Thread_Enable_dispatch> <== NOT EXECUTED ... 00046d18 <_TOD_Tickle_ticks>: * * Output parameters: NONE */ void _TOD_Tickle_ticks( void ) { 46d18: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 46d1c: 2f0a movel %a2,%sp@- <== NOT EXECUTED struct timespec tick; uint32_t seconds; /* Convert the tick quantum to a timespec */ tick.tv_nsec = _TOD_Microseconds_per_tick * 1000; 46d1e: 2239 0005 9e0a movel 59e0a <_TOD_Microseconds_per_tick>,%d1 <== NOT EXECUTED * * Output parameters: NONE */ void _TOD_Tickle_ticks( void ) { 46d24: 2f02 movel %d2,%sp@- <== NOT EXECUTED struct timespec tick; uint32_t seconds; /* Convert the tick quantum to a timespec */ tick.tv_nsec = _TOD_Microseconds_per_tick * 1000; 46d26: 2401 movel %d1,%d2 <== NOT EXECUTED 46d28: 2001 movel %d1,%d0 <== NOT EXECUTED 46d2a: e58a lsll #2,%d2 <== NOT EXECUTED 46d2c: ef88 lsll #7,%d0 <== NOT EXECUTED tick.tv_sec = 0; /* Update the counter of ticks since boot */ _Watchdog_Ticks_since_boot += 1; 46d2e: 2079 0005 9dc4 moveal 59dc4 <_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; 46d34: 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 ); 46d36: 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; 46d38: 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 ); 46d3a: 5182 subql #8,%d2 <== NOT EXECUTED 46d3c: 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; 46d3e: 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; 46d40: 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 ); 46d42: 45f9 0004 8cec lea 48cec <_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; 46d48: 23c8 0005 9dc4 movel %a0,59dc4 <_Watchdog_Ticks_since_boot> <== NOT EXECUTED /* Update the timespec format uptime */ (void) _Timespec_Add_to( &_TOD_Uptime, &tick ); 46d4e: 4879 0005 9cfa pea 59cfa <_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; 46d54: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED tick.tv_sec = 0; 46d58: 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 ); 46d5c: 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 ); 46d5e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46d60: 4879 0005 9d0e pea 59d0e <_TOD_Now> <== NOT EXECUTED 46d66: 4e92 jsr %a2@ <== NOT EXECUTED while ( seconds ) { 46d68: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED /* Update the timespec format uptime */ (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 ); 46d6e: 2400 movel %d0,%d2 <== NOT EXECUTED while ( seconds ) { 46d70: 6714 beqs 46d86 <_TOD_Tickle_ticks+0x6e> <== NOT EXECUTED 46d72: 45f9 0004 920c lea 4920c <_Watchdog_Tickle>,%a2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_seconds( void ) { _Watchdog_Tickle( &_Watchdog_Seconds_chain ); 46d78: 4879 0005 9d4c pea 59d4c <_Watchdog_Seconds_chain> <== NOT EXECUTED 46d7e: 4e92 jsr %a2@ <== NOT EXECUTED _Watchdog_Tickle_seconds(); seconds--; 46d80: 5382 subql #1,%d2 <== 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 ) { 46d82: 588f addql #4,%sp <== NOT EXECUTED 46d84: 66f2 bnes 46d78 <_TOD_Tickle_ticks+0x60> <== NOT EXECUTED _Watchdog_Tickle_seconds(); seconds--; } } 46d86: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 46d8a: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 46d8e: 4e5e unlk %fp <== NOT EXECUTED 46d90: 4e75 rts <== NOT EXECUTED ... 00046404 <_TOD_To_seconds>: */ uint32_t _TOD_To_seconds( rtems_time_of_day *the_tod ) { 46404: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 46408: 48d7 043c moveml %d2-%d5/%a2,%sp@ <== NOT EXECUTED 4640c: 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; 46410: 2412 movel %a2@,%d2 <== NOT EXECUTED ) { uint32_t time; uint32_t year_mod_4; time = the_tod->day - 1; 46412: 226a 0008 moveal %a2@(8),%a1 <== NOT EXECUTED year_mod_4 = the_tod->year & 3; 46416: 7803 moveq #3,%d4 <== NOT EXECUTED ) { uint32_t time; uint32_t year_mod_4; time = the_tod->day - 1; 46418: 5389 subql #1,%a1 <== NOT EXECUTED year_mod_4 = the_tod->year & 3; 4641a: c882 andl %d2,%d4 <== NOT EXECUTED if ( year_mod_4 == 0 ) 4641c: 6700 008a beqw 464a8 <_TOD_To_seconds+0xa4> <== NOT EXECUTED time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; else time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; 46420: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 46424: 41f9 0005 968e lea 5968e <_TOD_Days_to_date>,%a0 <== NOT EXECUTED 4642a: 4281 clrl %d1 <== NOT EXECUTED 4642c: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 46430: 0682 ffff f83c addil #-1988,%d2 <== NOT EXECUTED 46436: 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 ]; 46438: 2a01 movel %d1,%d5 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 4643a: 2002 movel %d2,%d0 <== NOT EXECUTED 4643c: 2202 movel %d2,%d1 <== NOT EXECUTED 4643e: ed89 lsll #6,%d1 <== NOT EXECUTED 46440: e788 lsll #3,%d0 <== NOT EXECUTED 46442: d081 addl %d1,%d0 <== 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 ]; 46444: da89 addl %a1,%d5 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 46446: 2040 moveal %d0,%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; 46448: 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 ) * 4644c: 43f9 0005 96c2 lea 596c2 <_TOD_Days_since_last_leap_year>,%a1 <== NOT EXECUTED 46452: 4280 clrl %d0 <== NOT EXECUTED 46454: 3031 4a00 movew %a1@(00000000,%d4:l:2),%d0 <== NOT EXECUTED 46458: d1c2 addal %d2,%a0 <== NOT EXECUTED 4645a: 2242 moveal %d2,%a1 <== NOT EXECUTED 4645c: 41f0 8c00 lea %a0@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 46460: 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; 46464: 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 ) * 46466: d088 addl %a0,%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; 46468: e58b lsll #2,%d3 <== NOT EXECUTED 4646a: ed89 lsll #6,%d1 <== NOT EXECUTED time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * ( (TOD_DAYS_PER_YEAR * 4) + 1); time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; 4646c: d085 addl %d5,%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; 4646e: 9283 subl %d3,%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; 46470: 2400 movel %d0,%d2 <== NOT EXECUTED 46472: 7609 moveq #9,%d3 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 46474: 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; 46478: e7aa lsll %d3,%d2 <== NOT EXECUTED 4647a: ef88 lsll #7,%d0 <== NOT EXECUTED 4647c: 9480 subl %d0,%d2 <== NOT EXECUTED 4647e: 2602 movel %d2,%d3 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) 46480: 206a 0014 moveal %a2@(20),%a0 <== 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; 46484: e98b lsll #4,%d3 <== NOT EXECUTED 46486: 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; 46488: 2801 movel %d1,%d4 <== 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; 4648a: 2003 movel %d3,%d0 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 4648c: ed8c lsll #6,%d4 <== NOT EXECUTED 4648e: e589 lsll #2,%d1 <== NOT EXECUTED 46490: 9881 subl %d1,%d4 <== 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) 46492: d1fc 21da e500 addal #567993600,%a0 <== 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; 46498: e988 lsll #4,%d0 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 4649a: d1c4 addal %d4,%a0 <== 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; 4649c: 9083 subl %d3,%d0 <== NOT EXECUTED time += the_tod->second; time += TOD_SECONDS_1970_THROUGH_1988; return( time ); } 4649e: 4cd7 043c moveml %sp@,%d2-%d5/%a2 <== NOT EXECUTED 464a2: 4e5e unlk %fp <== NOT EXECUTED 464a4: d088 addl %a0,%d0 <== NOT EXECUTED 464a6: 4e75 rts <== NOT EXECUTED time = the_tod->day - 1; year_mod_4 = the_tod->year & 3; if ( year_mod_4 == 0 ) time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; 464a8: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED else time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; 464ac: 41f9 0005 968e lea 5968e <_TOD_Days_to_date>,%a0 <== NOT EXECUTED time = the_tod->day - 1; year_mod_4 = the_tod->year & 3; if ( year_mod_4 == 0 ) time += _TOD_Days_to_date[ 1 ][ the_tod->month ]; 464b2: 0680 0000 000d addil #13,%d0 <== NOT EXECUTED else time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; 464b8: 4281 clrl %d1 <== NOT EXECUTED 464ba: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 464be: 0682 ffff f83c addil #-1988,%d2 <== NOT EXECUTED 464c4: 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 ]; 464c6: 2a01 movel %d1,%d5 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 464c8: 2002 movel %d2,%d0 <== NOT EXECUTED 464ca: 2202 movel %d2,%d1 <== NOT EXECUTED 464cc: ed89 lsll #6,%d1 <== NOT EXECUTED 464ce: e788 lsll #3,%d0 <== NOT EXECUTED 464d0: d081 addl %d1,%d0 <== 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 ]; 464d2: da89 addl %a1,%d5 <== NOT EXECUTED time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * 464d4: 2040 moveal %d0,%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; 464d6: 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 ) * 464da: 43f9 0005 96c2 lea 596c2 <_TOD_Days_since_last_leap_year>,%a1 <== NOT EXECUTED 464e0: 4280 clrl %d0 <== NOT EXECUTED 464e2: 3031 4a00 movew %a1@(00000000,%d4:l:2),%d0 <== NOT EXECUTED 464e6: d1c2 addal %d2,%a0 <== NOT EXECUTED 464e8: 2242 moveal %d2,%a1 <== NOT EXECUTED 464ea: 41f0 8c00 lea %a0@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 464ee: 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; 464f2: 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 ) * 464f4: d088 addl %a0,%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; 464f6: e58b lsll #2,%d3 <== NOT EXECUTED 464f8: ed89 lsll #6,%d1 <== NOT EXECUTED time += _TOD_Days_to_date[ 0 ][ the_tod->month ]; time += ( (the_tod->year - TOD_BASE_YEAR) / 4 ) * ( (TOD_DAYS_PER_YEAR * 4) + 1); time += _TOD_Days_since_last_leap_year[ year_mod_4 ]; 464fa: d085 addl %d5,%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; 464fc: 9283 subl %d3,%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; 464fe: 2400 movel %d0,%d2 <== NOT EXECUTED 46500: 7609 moveq #9,%d3 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 46502: 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; 46506: e7aa lsll %d3,%d2 <== NOT EXECUTED 46508: ef88 lsll #7,%d0 <== NOT EXECUTED 4650a: 9480 subl %d0,%d2 <== NOT EXECUTED 4650c: 2602 movel %d2,%d3 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) 4650e: 206a 0014 moveal %a2@(20),%a0 <== 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; 46512: e98b lsll #4,%d3 <== NOT EXECUTED 46514: 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; 46516: 2801 movel %d1,%d4 <== 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; 46518: 2003 movel %d3,%d0 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 4651a: ed8c lsll #6,%d4 <== NOT EXECUTED 4651c: e589 lsll #2,%d1 <== NOT EXECUTED 4651e: 9881 subl %d1,%d4 <== 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) 46520: d1fc 21da e500 addal #567993600,%a0 <== 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; 46526: e988 lsll #4,%d0 <== NOT EXECUTED time += ((the_tod->hour * TOD_MINUTES_PER_HOUR) + the_tod->minute) * TOD_SECONDS_PER_MINUTE; time += the_tod->second; 46528: d1c4 addal %d4,%a0 <== 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; 4652a: 9083 subl %d3,%d0 <== NOT EXECUTED time += the_tod->second; time += TOD_SECONDS_1970_THROUGH_1988; return( time ); } 4652c: 4cd7 043c moveml %sp@,%d2-%d5/%a2 <== NOT EXECUTED 46530: 4e5e unlk %fp <== NOT EXECUTED 46532: d088 addl %a0,%d0 <== NOT EXECUTED 46534: 4e75 rts <== NOT EXECUTED ... 00046538 <_TOD_Validate>: */ bool _TOD_Validate( rtems_time_of_day *the_tod ) { 46538: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4653c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46540: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t days_in_month; if ((!the_tod) || 46542: 4a88 tstl %a0 <== NOT EXECUTED 46544: 6768 beqs 465ae <_TOD_Validate+0x76> <== NOT EXECUTED 46546: 43f9 0006 4432 lea 64432 <_TOD_Microseconds_per_tick>,%a1 <== NOT EXECUTED 4654c: 203c 000f 4240 movel #1000000,%d0 <== NOT EXECUTED 46552: 4c51 0000 remul %a1@,%d0,%d0 <== NOT EXECUTED 46556: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 4655a: 6352 blss 465ae <_TOD_Validate+0x76> <== NOT EXECUTED 4655c: 703b moveq #59,%d0 <== NOT EXECUTED 4655e: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 46562: 654a bcss 465ae <_TOD_Validate+0x76> <== NOT EXECUTED 46564: b0a8 0010 cmpl %a0@(16),%d0 <== NOT EXECUTED 46568: 6544 bcss 465ae <_TOD_Validate+0x76> <== NOT EXECUTED 4656a: 7217 moveq #23,%d1 <== NOT EXECUTED 4656c: b2a8 000c cmpl %a0@(12),%d1 <== NOT EXECUTED 46570: 653c bcss 465ae <_TOD_Validate+0x76> <== NOT EXECUTED 46572: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED 46576: 6736 beqs 465ae <_TOD_Validate+0x76> <== NOT EXECUTED 46578: 740c moveq #12,%d2 <== NOT EXECUTED 4657a: b480 cmpl %d0,%d2 <== NOT EXECUTED 4657c: 6530 bcss 465ae <_TOD_Validate+0x76> <== NOT EXECUTED 4657e: 2210 movel %a0@,%d1 <== NOT EXECUTED 46580: 0c81 0000 07c3 cmpil #1987,%d1 <== NOT EXECUTED 46586: 6326 blss 465ae <_TOD_Validate+0x76> <== NOT EXECUTED 46588: 2268 0008 moveal %a0@(8),%a1 <== NOT EXECUTED 4658c: 4a89 tstl %a1 <== NOT EXECUTED 4658e: 671e beqs 465ae <_TOD_Validate+0x76> <== 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 ) 46590: 143c 0003 moveb #3,%d2 <== NOT EXECUTED 46594: c282 andl %d2,%d1 <== NOT EXECUTED 46596: 661e bnes 465b6 <_TOD_Validate+0x7e> <== NOT EXECUTED days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ]; 46598: 41f9 0005 96ca lea 596ca <_TOD_Days_per_month>,%a0 <== NOT EXECUTED 4659e: 2030 0c34 movel %a0@(00000034,%d0:l:4),%d0 <== NOT EXECUTED else days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ]; 465a2: b3c0 cmpal %d0,%a1 <== NOT EXECUTED 465a4: 53c0 sls %d0 <== NOT EXECUTED 465a6: 4480 negl %d0 <== NOT EXECUTED if ( the_tod->day > days_in_month ) return false; return true; } 465a8: 241f movel %sp@+,%d2 <== NOT EXECUTED 465aa: 4e5e unlk %fp <== NOT EXECUTED 465ac: 4e75 rts <== NOT EXECUTED 465ae: 241f movel %sp@+,%d2 <== NOT EXECUTED 465b0: 4e5e unlk %fp <== NOT EXECUTED return false; if ( (the_tod->year % 4) == 0 ) days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ]; else days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ]; 465b2: 4200 clrb %d0 <== NOT EXECUTED if ( the_tod->day > days_in_month ) return false; return true; } 465b4: 4e75 rts <== NOT EXECUTED return false; if ( (the_tod->year % 4) == 0 ) days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ]; else days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ]; 465b6: 41f9 0005 96ca lea 596ca <_TOD_Days_per_month>,%a0 <== NOT EXECUTED 465bc: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 465c0: b3c0 cmpal %d0,%a1 <== NOT EXECUTED 465c2: 53c0 sls %d0 <== NOT EXECUTED 465c4: 4480 negl %d0 <== NOT EXECUTED 465c6: 60e0 bras 465a8 <_TOD_Validate+0x70> <== NOT EXECUTED 000478e0 <_Thread_Change_priority>: void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) { 478e0: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 478e4: 48d7 043c moveml %d2-%d5/%a2,%sp@ <== NOT EXECUTED 478e8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 478ec: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED */ /* * Save original state */ original_state = the_thread->current_state; 478f0: 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 ); 478f4: 2f0a movel %a2,%sp@- <== NOT EXECUTED void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) { 478f6: 1a2e 0013 moveb %fp@(19),%d5 <== 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 ); 478fa: 4eb9 0004 88e8 jsr 488e8 <_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 ) 47900: 588f addql #4,%sp <== NOT EXECUTED 47902: b4aa 0014 cmpl %a2@(20),%d2 <== NOT EXECUTED 47906: 670c beqs 47914 <_Thread_Change_priority+0x34> <== NOT EXECUTED _Thread_Set_priority( the_thread, new_priority ); 47908: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4790a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4790c: 4eb9 0004 8764 jsr 48764 <_Thread_Set_priority> <== NOT EXECUTED 47912: 508f addql #8,%sp <== NOT EXECUTED _ISR_Disable( level ); 47914: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4791a: 40c4 movew %sr,%d4 <== NOT EXECUTED 4791c: 8084 orl %d4,%d0 <== NOT EXECUTED 4791e: 46c0 movew %d0,%sr <== 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; 47920: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED if ( state != STATES_TRANSIENT ) { 47924: 7204 moveq #4,%d1 <== NOT EXECUTED 47926: b280 cmpl %d0,%d1 <== NOT EXECUTED 47928: 6738 beqs 47962 <_Thread_Change_priority+0x82> <== NOT EXECUTED /* Only clear the transient state if it wasn't set already */ if ( ! _States_Is_transient( original_state ) ) 4792a: 44c3 movew %d3,%ccr <== NOT EXECUTED 4792c: 6708 beqs 47936 <_Thread_Change_priority+0x56> <== NOT EXECUTED the_thread->current_state = _States_Clear( STATES_TRANSIENT, state ); 4792e: 72fb moveq #-5,%d1 <== NOT EXECUTED 47930: c280 andl %d0,%d1 <== NOT EXECUTED 47932: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED _ISR_Enable( level ); 47936: 46c4 movew %d4,%sr <== NOT EXECUTED if ( _States_Is_waiting_on_thread_queue( state ) ) { 47938: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 4793e: 660a bnes 4794a <_Thread_Change_priority+0x6a> <== NOT EXECUTED if ( !_Thread_Is_executing_also_the_heir() && _Thread_Executing->is_preemptible ) _Context_Switch_necessary = TRUE; _ISR_Enable( level ); } 47940: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED 47946: 4e5e unlk %fp <== NOT EXECUTED 47948: 4e75 rts <== 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 ); 4794a: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 4794e: 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 ); } 47954: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED 4795a: 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 ); 4795c: 4ef9 0004 86b0 jmp 486b0 <_Thread_queue_Requeue> <== NOT EXECUTED } return; } /* Only clear the transient state if it wasn't set already */ if ( ! _States_Is_transient( original_state ) ) { 47962: 44c3 movew %d3,%ccr <== NOT EXECUTED 47964: 673c beqs 479a2 <_Thread_Change_priority+0xc2> <== 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; 47966: 206a 0090 moveal %a2@(144),%a0 <== NOT EXECUTED 4796a: 322a 0096 movew %a2@(150),%d1 <== NOT EXECUTED 4796e: 3010 movew %a0@,%d0 <== NOT EXECUTED 47970: 8081 orl %d1,%d0 <== NOT EXECUTED 47972: 3080 movew %d0,%a0@ <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 47974: 3239 0005 9d30 movew 59d30 <_Priority_Major_bit_map>,%d1 <== NOT EXECUTED 4797a: 302a 0094 movew %a2@(148),%d0 <== NOT EXECUTED 4797e: 8280 orl %d0,%d1 <== NOT EXECUTED 47980: 33c1 0005 9d30 movew %d1,59d30 <_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 ); 47986: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED _Priority_Add_to_bit_map( &the_thread->Priority_map ); if ( prepend_it ) 4798a: 4a05 tstb %d5 <== NOT EXECUTED 4798c: 6700 0084 beqw 47a12 <_Thread_Change_priority+0x132> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Head( Chain_Control *the_chain ) { return (Chain_Node *) the_chain; 47990: 206a 008c moveal %a2@(140),%a0 <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 47994: 2250 moveal %a0@,%a1 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 47996: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED before_node = after_node->next; after_node->next = the_node; 4799a: 208a movel %a2,%a0@ <== NOT EXECUTED the_node->next = before_node; before_node->previous = the_node; 4799c: 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; 479a0: 2489 movel %a1,%a2@ <== 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 ); 479a2: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 479a8: 46c4 movew %d4,%sr <== NOT EXECUTED 479aa: 8084 orl %d4,%d0 <== NOT EXECUTED 479ac: 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 ); 479ae: 3039 0005 9d30 movew 59d30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 479b4: 4840 swap %d0 <== NOT EXECUTED 479b6: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 479b8: 41f9 0005 9da0 lea 59da0 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 479be: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 479c4: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 479c8: 4841 swap %d1 <== NOT EXECUTED 479ca: 04c1 ff1 %d1 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 479cc: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 479d2: e988 lsll #4,%d0 <== NOT EXECUTED 479d4: d081 addl %d1,%d0 <== NOT EXECUTED 479d6: 2079 0005 9c28 moveal 59c28 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 479dc: 2400 movel %d0,%d2 <== NOT EXECUTED 479de: e588 lsll #2,%d0 <== NOT EXECUTED 479e0: 91c0 subal %d0,%a0 <== NOT EXECUTED 479e2: e98a lsll #4,%d2 <== NOT EXECUTED 479e4: 2230 2800 movel %a0@(00000000,%d2:l),%d1 <== 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 ); 479e8: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 479ee: 23c1 0005 9d0a movel %d1,59d0a <_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() && 479f4: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 479f6: 670e beqs 47a06 <_Thread_Change_priority+0x126> <== NOT EXECUTED 479f8: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 479fc: 6708 beqs 47a06 <_Thread_Change_priority+0x126> <== NOT EXECUTED _Thread_Executing->is_preemptible ) _Context_Switch_necessary = TRUE; 479fe: 7201 moveq #1,%d1 <== NOT EXECUTED 47a00: 13c1 0005 9d4a moveb %d1,59d4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 47a06: 46c4 movew %d4,%sr <== NOT EXECUTED } 47a08: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED 47a0e: 4e5e unlk %fp <== NOT EXECUTED 47a10: 4e75 rts <== NOT EXECUTED _Priority_Add_to_bit_map( &the_thread->Priority_map ); if ( prepend_it ) _Chain_Prepend_unprotected( the_thread->ready, &the_thread->Object.Node ); else _Chain_Append_unprotected( the_thread->ready, &the_thread->Object.Node ); 47a12: 206a 008c moveal %a2@(140),%a0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 47a16: 2008 movel %a0,%d0 <== NOT EXECUTED 47a18: 5880 addql #4,%d0 <== NOT EXECUTED 47a1a: 2480 movel %d0,%a2@ <== NOT EXECUTED old_last_node = the_chain->last; 47a1c: 2268 0008 moveal %a0@(8),%a1 <== NOT EXECUTED the_chain->last = the_node; 47a20: 214a 0008 movel %a2,%a0@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 47a24: 2549 0004 movel %a1,%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; 47a28: 228a movel %a2,%a1@ <== NOT EXECUTED 47a2a: 6000 ff76 braw 479a2 <_Thread_Change_priority+0xc2> <== NOT EXECUTED ... 00047a30 <_Thread_Clear_state>: void _Thread_Clear_state( Thread_Control *the_thread, States_Control state ) { 47a30: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 47a34: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED ISR_Level level; States_Control current_state; _ISR_Disable( level ); 47a38: 283c 0000 0700 movel #1792,%d4 <== NOT EXECUTED void _Thread_Clear_state( Thread_Control *the_thread, States_Control state ) { 47a3e: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 47a42: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED ISR_Level level; States_Control current_state; _ISR_Disable( level ); 47a46: 2004 movel %d4,%d0 <== NOT EXECUTED 47a48: 40c3 movew %sr,%d3 <== NOT EXECUTED 47a4a: 8083 orl %d3,%d0 <== NOT EXECUTED 47a4c: 46c0 movew %d0,%sr <== NOT EXECUTED current_state = the_thread->current_state; 47a4e: 222b 0010 movel %a3@(16),%d1 <== NOT EXECUTED if ( current_state & state ) { 47a52: 2002 movel %d2,%d0 <== NOT EXECUTED 47a54: c081 andl %d1,%d0 <== NOT EXECUTED 47a56: 677a beqs 47ad2 <_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); 47a58: 2002 movel %d2,%d0 <== NOT EXECUTED 47a5a: 4680 notl %d0 <== NOT EXECUTED 47a5c: c081 andl %d1,%d0 <== NOT EXECUTED current_state = 47a5e: 2740 0010 movel %d0,%a3@(16) <== NOT EXECUTED the_thread->current_state = _States_Clear( state, current_state ); if ( _States_Is_ready( current_state ) ) { 47a62: 666e bnes 47ad2 <_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); 47a64: 206b 008c moveal %a3@(140),%a0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 47a68: 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; 47a6a: 226b 0090 moveal %a3@(144),%a1 <== NOT EXECUTED 47a6e: 5880 addql #4,%d0 <== NOT EXECUTED 47a70: 2680 movel %d0,%a3@ <== NOT EXECUTED old_last_node = the_chain->last; 47a72: 2468 0008 moveal %a0@(8),%a2 <== NOT EXECUTED 47a76: 322b 0096 movew %a3@(150),%d1 <== NOT EXECUTED 47a7a: 3011 movew %a1@,%d0 <== NOT EXECUTED 47a7c: 8081 orl %d1,%d0 <== NOT EXECUTED 47a7e: 3280 movew %d0,%a1@ <== NOT EXECUTED the_chain->last = the_node; 47a80: 214b 0008 movel %a3,%a0@(8) <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 47a84: 3039 0005 9d30 movew 59d30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 47a8a: 322b 0094 movew %a3@(148),%d1 <== NOT EXECUTED 47a8e: 8081 orl %d1,%d0 <== NOT EXECUTED 47a90: 33c0 0005 9d30 movew %d0,59d30 <_Priority_Major_bit_map> <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 47a96: 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; 47a9a: 248b movel %a3,%a2@ <== NOT EXECUTED _ISR_Flash( level ); 47a9c: 2004 movel %d4,%d0 <== NOT EXECUTED 47a9e: 46c3 movew %d3,%sr <== NOT EXECUTED 47aa0: 8083 orl %d3,%d0 <== NOT EXECUTED 47aa2: 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 ) { 47aa4: 2079 0005 9d0a moveal 59d0a <_Thread_Heir>,%a0 <== NOT EXECUTED 47aaa: 202b 0014 movel %a3@(20),%d0 <== NOT EXECUTED 47aae: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 47ab2: 641e bccs 47ad2 <_Thread_Clear_state+0xa2> <== NOT EXECUTED _Thread_Heir = the_thread; if ( _Thread_Executing->is_preemptible || 47ab4: 2079 0005 9d3a moveal 59d3a <_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; 47aba: 23cb 0005 9d0a movel %a3,59d0a <_Thread_Heir> <== NOT EXECUTED if ( _Thread_Executing->is_preemptible || 47ac0: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 47ac4: 6604 bnes 47aca <_Thread_Clear_state+0x9a> <== NOT EXECUTED 47ac6: 4a80 tstl %d0 <== NOT EXECUTED 47ac8: 6608 bnes 47ad2 <_Thread_Clear_state+0xa2> <== NOT EXECUTED the_thread->current_priority == 0 ) _Context_Switch_necessary = TRUE; 47aca: 7001 moveq #1,%d0 <== NOT EXECUTED 47acc: 13c0 0005 9d4a moveb %d0,59d4a <_Context_Switch_necessary> <== NOT EXECUTED } } } _ISR_Enable( level ); 47ad2: 46c3 movew %d3,%sr <== NOT EXECUTED } 47ad4: 4cd7 0c1c moveml %sp@,%d2-%d4/%a2-%a3 <== NOT EXECUTED 47ad8: 4e5e unlk %fp <== NOT EXECUTED 47ada: 4e75 rts 00047adc <_Thread_Close>: void _Thread_Close( Objects_Information *information, Thread_Control *the_thread ) { 47adc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47ae0: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47ae2: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 47ae6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47ae8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 47aec: 206a 001a moveal %a2@(26),%a0 <== NOT EXECUTED 47af0: 4280 clrl %d0 <== NOT EXECUTED 47af2: 302b 000a movew %a3@(10),%d0 <== NOT EXECUTED 47af6: 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; 47afa: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 47b00: 5380 subql #1,%d0 <== NOT EXECUTED 47b02: 23c0 0005 9c7c movel %d0,59c7c <_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 ); 47b08: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47b0a: 4eb9 0004 8f54 jsr 48f54 <_User_extensions_Thread_delete> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 47b10: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 47b16: 5280 addql #1,%d0 <== NOT EXECUTED 47b18: 23c0 0005 9c7c movel %d0,59c7c <_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 ); 47b1e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47b20: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47b22: 4eb9 0004 70f4 jsr 470f4 <_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 ); 47b28: 4878 0001 pea 1 <== NOT EXECUTED 47b2c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47b2e: 4eb9 0004 87cc jsr 487cc <_Thread_Set_state> <== NOT EXECUTED if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) { 47b34: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47b36: 4eb9 0004 85c0 jsr 485c0 <_Thread_queue_Extract_with_proxy> <== NOT EXECUTED 47b3c: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 47b42: 4a00 tstb %d0 <== NOT EXECUTED 47b44: 6608 bnes 47b4e <_Thread_Close+0x72> <== NOT EXECUTED if ( _Watchdog_Is_active( &the_thread->Timer ) ) 47b46: 7002 moveq #2,%d0 <== NOT EXECUTED 47b48: b0ab 0050 cmpl %a3@(80),%d0 <== NOT EXECUTED 47b4c: 6756 beqs 47ba4 <_Thread_Close+0xc8> <== 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 ) ) 47b4e: b7f9 0005 9d02 cmpal 59d02 <_Thread_Allocated_fp>,%a3 <== NOT EXECUTED 47b54: 6746 beqs 47b9c <_Thread_Close+0xc0> <== NOT EXECUTED _Thread_Deallocate_fp(); #endif the_thread->fp_context = NULL; if ( the_thread->Start.fp_context ) 47b56: 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; 47b5a: 42ab 0104 clrl %a3@(260) <== NOT EXECUTED if ( the_thread->Start.fp_context ) 47b5e: 4a80 tstl %d0 <== NOT EXECUTED 47b60: 670a beqs 47b6c <_Thread_Close+0x90> <== NOT EXECUTED (void) _Workspace_Free( the_thread->Start.fp_context ); 47b62: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47b64: 4eb9 0004 928c jsr 4928c <_Workspace_Free> <== NOT EXECUTED 47b6a: 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 ); 47b6c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47b6e: 4eb9 0004 89d8 jsr 489d8 <_Thread_Stack_Free> <== NOT EXECUTED the_thread->Start.stack = NULL; if ( the_thread->extensions ) 47b74: 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; 47b78: 42ab 00cc clrl %a3@(204) <== NOT EXECUTED if ( the_thread->extensions ) 47b7c: 588f addql #4,%sp <== NOT EXECUTED 47b7e: 4a80 tstl %d0 <== NOT EXECUTED 47b80: 670a beqs 47b8c <_Thread_Close+0xb0> <== NOT EXECUTED (void) _Workspace_Free( the_thread->extensions ); 47b82: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47b84: 4eb9 0004 928c jsr 4928c <_Workspace_Free> <== NOT EXECUTED 47b8a: 588f addql #4,%sp <== NOT EXECUTED the_thread->extensions = NULL; 47b8c: 42ab 0118 clrl %a3@(280) <== NOT EXECUTED } 47b90: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 47b94: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 47b98: 4e5e unlk %fp <== NOT EXECUTED 47b9a: 4e75 rts <== NOT EXECUTED */ #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) RTEMS_INLINE_ROUTINE void _Thread_Deallocate_fp( void ) { _Thread_Allocated_fp = NULL; 47b9c: 42b9 0005 9d02 clrl 59d02 <_Thread_Allocated_fp> <== NOT EXECUTED 47ba2: 60b2 bras 47b56 <_Thread_Close+0x7a> <== NOT EXECUTED */ _Thread_Set_state( the_thread, STATES_DORMANT ); if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) { if ( _Watchdog_Is_active( &the_thread->Timer ) ) (void) _Watchdog_Remove( &the_thread->Timer ); 47ba4: 486b 0048 pea %a3@(72) <== NOT EXECUTED 47ba8: 4eb9 0004 9168 jsr 49168 <_Watchdog_Remove> <== NOT EXECUTED 47bae: 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 ) ) 47bb0: b7f9 0005 9d02 cmpal 59d02 <_Thread_Allocated_fp>,%a3 <== NOT EXECUTED 47bb6: 669e bnes 47b56 <_Thread_Close+0x7a> <== NOT EXECUTED 47bb8: 60e2 bras 47b9c <_Thread_Close+0xc0> <== NOT EXECUTED ... 00047bbc <_Thread_Create_idle>: * * _Thread_Create_idle */ void _Thread_Create_idle( void ) { 47bbc: 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 ); 47bc0: 4879 0005 9dce pea 59dce <_Thread_Internal_information> <== NOT EXECUTED 47bc6: 4eb9 0004 7058 jsr 47058 <_Objects_Allocate> <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 47bcc: 2239 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d1 <== NOT EXECUTED 47bd2: 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(); 47bd4: 23c0 0005 9e16 movel %d0,59e16 <_Thread_Idle> <== NOT EXECUTED 47bda: 23c1 0005 9c7c movel %d1,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED * that when _Thread_Initialize unnests dispatch that we do not * do anything stupid. */ _Thread_Disable_dispatch(); _Thread_Initialize( 47be0: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED 47be6: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 47bea: 4879 0005 6f5e pea 56f5e <_Status_Object_name_errors_to_status+0x14> <== NOT EXECUTED 47bf0: 4280 clrl %d0 <== NOT EXECUTED 47bf2: 1039 0005 80f2 moveb 580f2 ,%d0 <== NOT EXECUTED 47bf8: 42a7 clrl %sp@- <== NOT EXECUTED 47bfa: 2239 0005 80ee movel 580ee ,%d1 <== NOT EXECUTED 47c00: 42a7 clrl %sp@- <== NOT EXECUTED 47c02: 42a7 clrl %sp@- <== NOT EXECUTED 47c04: 4878 0001 pea 1 <== NOT EXECUTED 47c08: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47c0a: 42a7 clrl %sp@- <== NOT EXECUTED 47c0c: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 47c0e: 6302 blss 47c12 <_Thread_Create_idle+0x56> <== NOT EXECUTED 47c10: 2208 movel %a0,%d1 <== NOT EXECUTED 47c12: 2f01 movel %d1,%sp@- <== NOT EXECUTED 47c14: 42a7 clrl %sp@- <== NOT EXECUTED 47c16: 2f39 0005 9e16 movel 59e16 <_Thread_Idle>,%sp@- <== NOT EXECUTED 47c1c: 4879 0005 9dce pea 59dce <_Thread_Internal_information> <== NOT EXECUTED 47c22: 4eb9 0004 7edc jsr 47edc <_Thread_Initialize> <== NOT EXECUTED * MUST be done before _Thread_Start is invoked. */ _Thread_Heir = _Thread_Executing = _Thread_Idle; _Thread_Start( 47c28: dffc 0000 002c addal #44,%sp <== NOT EXECUTED 47c2e: 4297 clrl %sp@ <== NOT EXECUTED 47c30: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED 47c36: 42a7 clrl %sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 47c38: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 47c3e: 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 = 47c42: 2239 0005 9e16 movel 59e16 <_Thread_Idle>,%d1 <== NOT EXECUTED _Thread_Executing = _Thread_Idle; _Thread_Start( 47c48: 42a7 clrl %sp@- <== NOT EXECUTED 47c4a: 5380 subql #1,%d0 <== NOT EXECUTED 47c4c: 2f01 movel %d1,%sp@- <== NOT EXECUTED 47c4e: 23c0 0005 9c7c movel %d0,59c7c <_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 = 47c54: 23c1 0005 9d3a movel %d1,59d3a <_Thread_Executing> <== NOT EXECUTED 47c5a: 23c1 0005 9d0a movel %d1,59d0a <_Thread_Heir> <== NOT EXECUTED _Thread_Executing = _Thread_Idle; _Thread_Start( 47c60: 4eb9 0004 8a6c jsr 48a6c <_Thread_Start> <== NOT EXECUTED 47c66: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED _Configuration_Table->idle_task, NULL, 0 ); } 47c6c: 4e5e unlk %fp <== NOT EXECUTED 47c6e: 4e75 rts 00047c70 <_Thread_Delay_ended>: void _Thread_Delay_ended( Objects_Id id, void *ignored ) { 47c70: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 47c74: 486e fffc pea %fp@(-4) <== NOT EXECUTED 47c78: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47c7c: 4eb9 0004 7e30 jsr 47e30 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 47c82: 508f addql #8,%sp <== NOT EXECUTED 47c84: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47c88: 661e bnes 47ca8 <_Thread_Delay_ended+0x38> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 47c8a: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 47c90: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47c92: 4eb9 0004 7a30 jsr 47a30 <_Thread_Clear_state> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 47c98: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 47c9e: 508f addql #8,%sp <== NOT EXECUTED 47ca0: 5380 subql #1,%d0 <== NOT EXECUTED 47ca2: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED case OBJECTS_LOCAL: _Thread_Unblock( the_thread ); _Thread_Unnest_dispatch(); break; } } 47ca8: 4e5e unlk %fp <== NOT EXECUTED 47caa: 4e75 rts 00047cac <_Thread_Dispatch>: * dispatch thread * no dispatch thread */ void _Thread_Dispatch( void ) { 47cac: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 47cb0: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED Thread_Control *executing; Thread_Control *heir; ISR_Level level; executing = _Thread_Executing; 47cb4: 2679 0005 9d3a moveal 59d3a <_Thread_Executing>,%a3 <== NOT EXECUTED _ISR_Disable( level ); 47cba: 307c 0700 moveaw #1792,%a0 <== NOT EXECUTED 47cbe: 2008 movel %a0,%d0 <== NOT EXECUTED 47cc0: 40c1 movew %sr,%d1 <== NOT EXECUTED 47cc2: 8081 orl %d1,%d0 <== NOT EXECUTED 47cc4: 46c0 movew %d0,%sr <== NOT EXECUTED while ( _Context_Switch_necessary == TRUE ) { 47cc6: 1039 0005 9d4a moveb 59d4a <_Context_Switch_necessary>,%d0 <== NOT EXECUTED 47ccc: 6700 0100 beqw 47dce <_Thread_Dispatch+0x122> <== NOT EXECUTED 47cd0: 260e movel %fp,%d3 <== NOT EXECUTED 47cd2: 240e movel %fp,%d2 <== NOT EXECUTED #endif #endif executing = _Thread_Executing; _ISR_Disable( level ); 47cd4: 2e08 movel %a0,%d7 <== NOT EXECUTED 47cd6: 5183 subql #8,%d3 <== NOT EXECUTED 47cd8: 2c3c 0004 bd48 movel #310600,%d6 <== NOT EXECUTED 47cde: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 47ce4: 2a3c 0004 8d38 movel #298296,%d5 <== NOT EXECUTED 47cea: 283c 0004 8cec movel #298220,%d4 <== NOT EXECUTED 47cf0: 4bf9 0004 8fe0 lea 48fe0 <_User_extensions_Thread_switch>,%a5 <== NOT EXECUTED 47cf6: 49f9 0004 9368 lea 49368 <_CPU_Context_switch>,%a4 <== NOT EXECUTED executing = _Thread_Executing; _ISR_Disable( level ); while ( _Context_Switch_necessary == TRUE ) { heir = _Thread_Heir; _Thread_Dispatch_disable_level = 1; 47cfc: 7001 moveq #1,%d0 <== NOT EXECUTED 47cfe: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED ISR_Level level; executing = _Thread_Executing; _ISR_Disable( level ); while ( _Context_Switch_necessary == TRUE ) { heir = _Thread_Heir; 47d04: 2479 0005 9d0a moveal 59d0a <_Thread_Heir>,%a2 <== NOT EXECUTED _Thread_Dispatch_disable_level = 1; _Context_Switch_necessary = FALSE; 47d0a: 4200 clrb %d0 <== NOT EXECUTED 47d0c: 13c0 0005 9d4a moveb %d0,59d4a <_Context_Switch_necessary> <== NOT EXECUTED _Thread_Executing = heir; 47d12: 23ca 0005 9d3a movel %a2,59d3a <_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 ) 47d18: 7001 moveq #1,%d0 <== NOT EXECUTED 47d1a: b0aa 007c cmpl %a2@(124),%d0 <== NOT EXECUTED 47d1e: 6700 00da beqw 47dfa <_Thread_Dispatch+0x14e> <== NOT EXECUTED heir->cpu_time_budget = _Thread_Ticks_per_timeslice; _ISR_Enable( level ); 47d22: 46c1 movew %d1,%sr <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS { struct timespec uptime, ran; _TOD_Get_uptime( &uptime ); 47d24: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47d26: 2046 moveal %d6,%a0 <== NOT EXECUTED 47d28: 4e90 jsr %a0@ <== NOT EXECUTED _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); 47d2a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47d2c: 2045 moveal %d5,%a0 <== NOT EXECUTED 47d2e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47d30: 4879 0005 9d42 pea 59d42 <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 47d36: 4e90 jsr %a0@ <== NOT EXECUTED _Timespec_Add_to( &executing->cpu_time_used, &ran ); 47d38: 2044 moveal %d4,%a0 <== NOT EXECUTED 47d3a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47d3c: 486b 0084 pea %a3@(132) <== NOT EXECUTED 47d40: 4e90 jsr %a0@ <== NOT EXECUTED #endif /* * Switch libc's task specific data. */ if ( _Thread_libc_reent ) { 47d42: 2079 0005 9d06 moveal 59d06 <_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; 47d48: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 47d4c: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED #endif /* * Switch libc's task specific data. */ if ( _Thread_libc_reent ) { 47d50: dffc 0000 0018 addal #24,%sp <== 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; 47d56: 23c0 0005 9d42 movel %d0,59d42 <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 47d5c: 23c1 0005 9d46 movel %d1,59d46 <_Thread_Time_of_last_context_switch+0x4> <== NOT EXECUTED #endif /* * Switch libc's task specific data. */ if ( _Thread_libc_reent ) { 47d62: 4a88 tstl %a0 <== NOT EXECUTED 47d64: 6708 beqs 47d6e <_Thread_Dispatch+0xc2> <== NOT EXECUTED executing->libc_reent = *_Thread_libc_reent; 47d66: 2750 0108 movel %a0@,%a3@(264) <== NOT EXECUTED *_Thread_libc_reent = heir->libc_reent; 47d6a: 20aa 0108 movel %a2@(264),%a0@ <== NOT EXECUTED } _User_extensions_Thread_switch( executing, heir ); 47d6e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47d70: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47d72: 4e95 jsr %a5@ <== NOT EXECUTED if ( executing->fp_context != NULL ) _Context_Save_fp( &executing->fp_context ); #endif #endif _Context_Switch( &executing->Registers, &heir->Registers ); 47d74: 486a 00d0 pea %a2@(208) <== NOT EXECUTED 47d78: 486b 00d0 pea %a3@(208) <== NOT EXECUTED 47d7c: 4e94 jsr %a4@ <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE ) if ( (executing->fp_context != NULL) && 47d7e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 47d84: 4aab 0104 tstl %a3@(260) <== NOT EXECUTED 47d88: 672c beqs 47db6 <_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 ); 47d8a: 2079 0005 9d02 moveal 59d02 <_Thread_Allocated_fp>,%a0 <== NOT EXECUTED 47d90: b1cb cmpal %a3,%a0 <== NOT EXECUTED 47d92: 6722 beqs 47db6 <_Thread_Dispatch+0x10a> <== NOT EXECUTED !_Thread_Is_allocated_fp( executing ) ) { if ( _Thread_Allocated_fp != NULL ) 47d94: 4a88 tstl %a0 <== NOT EXECUTED 47d96: 670c beqs 47da4 <_Thread_Dispatch+0xf8> <== NOT EXECUTED _Context_Save_fp( &_Thread_Allocated_fp->fp_context ); 47d98: 4868 0104 pea %a0@(260) <== NOT EXECUTED 47d9c: 4eb9 0004 9380 jsr 49380 <_CPU_Context_save_fp> <== NOT EXECUTED 47da2: 588f addql #4,%sp <== NOT EXECUTED _Context_Restore_fp( &executing->fp_context ); 47da4: 486b 0104 pea %a3@(260) <== NOT EXECUTED 47da8: 4eb9 0004 9384 jsr 49384 <_CPU_Context_restore_fp> <== NOT EXECUTED _Thread_Allocated_fp = executing; 47dae: 588f addql #4,%sp <== NOT EXECUTED 47db0: 23cb 0005 9d02 movel %a3,59d02 <_Thread_Allocated_fp> <== NOT EXECUTED if ( executing->fp_context != NULL ) _Context_Restore_fp( &executing->fp_context ); #endif #endif executing = _Thread_Executing; 47db6: 2679 0005 9d3a moveal 59d3a <_Thread_Executing>,%a3 <== NOT EXECUTED _ISR_Disable( level ); 47dbc: 2007 movel %d7,%d0 <== NOT EXECUTED 47dbe: 40c1 movew %sr,%d1 <== NOT EXECUTED 47dc0: 8081 orl %d1,%d0 <== NOT EXECUTED 47dc2: 46c0 movew %d0,%sr <== NOT EXECUTED Thread_Control *heir; ISR_Level level; executing = _Thread_Executing; _ISR_Disable( level ); while ( _Context_Switch_necessary == TRUE ) { 47dc4: 1039 0005 9d4a moveb 59d4a <_Context_Switch_necessary>,%d0 <== NOT EXECUTED 47dca: 6600 ff30 bnew 47cfc <_Thread_Dispatch+0x50> <== NOT EXECUTED executing = _Thread_Executing; _ISR_Disable( level ); } _Thread_Dispatch_disable_level = 0; 47dce: 42b9 0005 9c7c clrl 59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _ISR_Enable( level ); 47dd4: 46c1 movew %d1,%sr <== NOT EXECUTED if ( _Thread_Do_post_task_switch_extension || 47dd6: 4ab9 0005 9d22 tstl 59d22 <_Thread_Do_post_task_switch_extension> <== NOT EXECUTED 47ddc: 6606 bnes 47de4 <_Thread_Dispatch+0x138> <== NOT EXECUTED 47dde: 4a2b 0075 tstb %a3@(117) <== NOT EXECUTED 47de2: 670c beqs 47df0 <_Thread_Dispatch+0x144> <== NOT EXECUTED executing->do_post_task_switch_extension ) { executing->do_post_task_switch_extension = false; 47de4: 4201 clrb %d1 <== NOT EXECUTED 47de6: 1741 0075 moveb %d1,%a3@(117) <== NOT EXECUTED _API_extensions_Run_postswitch(); 47dea: 4eb9 0004 66d0 jsr 466d0 <_API_extensions_Run_postswitch> <== NOT EXECUTED } } 47df0: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 47df6: 4e5e unlk %fp <== NOT EXECUTED 47df8: 4e75 rts <== 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 ) heir->cpu_time_budget = _Thread_Ticks_per_timeslice; 47dfa: 41f9 0005 9c2c lea 59c2c <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED 47e00: 2550 0078 movel %a0@,%a2@(120) <== NOT EXECUTED 47e04: 6000 ff1c braw 47d22 <_Thread_Dispatch+0x76> <== NOT EXECUTED 00047e08 <_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 ) 47e08: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 47e0e: 5380 subql #1,%d0 <== NOT EXECUTED 47e10: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED 47e16: 2239 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d1 <== NOT EXECUTED */ #if ( (CPU_INLINE_ENABLE_DISPATCH == FALSE) || \ (__RTEMS_DO_NOT_INLINE_THREAD_ENABLE_DISPATCH__ == 1) ) void _Thread_Enable_dispatch( void ) { 47e1c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( --_Thread_Dispatch_disable_level ) 47e20: 4a81 tstl %d1 <== NOT EXECUTED 47e22: 6704 beqs 47e28 <_Thread_Enable_dispatch+0x20> <== NOT EXECUTED return; _Thread_Dispatch(); } 47e24: 4e5e unlk %fp <== NOT EXECUTED 47e26: 4e75 rts <== NOT EXECUTED 47e28: 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(); 47e2a: 4ef9 0004 7cac jmp 47cac <_Thread_Dispatch> <== NOT EXECUTED 0004d144 <_Thread_Evaluate_mode>: bool _Thread_Evaluate_mode( void ) { Thread_Control *executing; executing = _Thread_Executing; 4d144: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED * * XXX */ bool _Thread_Evaluate_mode( void ) { 4d14a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Thread_Control *executing; executing = _Thread_Executing; if ( !_States_Is_ready( executing->current_state ) || 4d14e: 4aa8 0010 tstl %a0@(16) <== NOT EXECUTED 4d152: 660e bnes 4d162 <_Thread_Evaluate_mode+0x1e> <== NOT EXECUTED 4d154: b1f9 0005 9d0a cmpal 59d0a <_Thread_Heir>,%a0 <== NOT EXECUTED 4d15a: 6712 beqs 4d16e <_Thread_Evaluate_mode+0x2a> <== NOT EXECUTED 4d15c: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 4d160: 670c beqs 4d16e <_Thread_Evaluate_mode+0x2a> <== NOT EXECUTED ( !_Thread_Is_heir( executing ) && executing->is_preemptible ) ) { _Context_Switch_necessary = TRUE; 4d162: 7001 moveq #1,%d0 <== NOT EXECUTED return TRUE; } return FALSE; } 4d164: 4e5e unlk %fp <== NOT EXECUTED executing = _Thread_Executing; if ( !_States_Is_ready( executing->current_state ) || ( !_Thread_Is_heir( executing ) && executing->is_preemptible ) ) { _Context_Switch_necessary = TRUE; 4d166: 13c0 0005 9d4a moveb %d0,59d4a <_Context_Switch_necessary> <== NOT EXECUTED return TRUE; } return FALSE; } 4d16c: 4e75 rts <== NOT EXECUTED 4d16e: 4e5e unlk %fp <== NOT EXECUTED executing = _Thread_Executing; if ( !_States_Is_ready( executing->current_state ) || ( !_Thread_Is_heir( executing ) && executing->is_preemptible ) ) { _Context_Switch_necessary = TRUE; return TRUE; 4d170: 4200 clrb %d0 <== NOT EXECUTED } return FALSE; } 4d172: 4e75 rts 00047e30 <_Thread_Get>: Thread_Control *_Thread_Get ( Objects_Id id, Objects_Locations *location ) { 47e30: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47e34: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47e36: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 47e3a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47e3c: 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 ) ) { 47e40: 6768 beqs 47eaa <_Thread_Get+0x7a> <== 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); 47e42: 7018 moveq #24,%d0 <== NOT EXECUTED 47e44: 2202 movel %d2,%d1 <== NOT EXECUTED 47e46: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 47e48: 7607 moveq #7,%d3 <== NOT EXECUTED 47e4a: 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 ) 47e4c: 2001 movel %d1,%d0 <== NOT EXECUTED 47e4e: 5380 subql #1,%d0 <== NOT EXECUTED 47e50: 163c 0003 moveb #3,%d3 <== NOT EXECUTED 47e54: b680 cmpl %d0,%d3 <== NOT EXECUTED 47e56: 6540 bcss 47e98 <_Thread_Get+0x68> <== NOT EXECUTED *location = OBJECTS_ERROR; goto done; } the_class = _Objects_Get_class( id ); if ( the_class != 1 ) { /* threads are always first class :) */ 47e58: 761b moveq #27,%d3 <== NOT EXECUTED 47e5a: 2002 movel %d2,%d0 <== NOT EXECUTED 47e5c: e6a8 lsrl %d3,%d0 <== NOT EXECUTED 47e5e: 163c 0001 moveb #1,%d3 <== NOT EXECUTED 47e62: b680 cmpl %d0,%d3 <== NOT EXECUTED 47e64: 6632 bnes 47e98 <_Thread_Get+0x68> <== NOT EXECUTED *location = OBJECTS_ERROR; goto done; } api_information = _Objects_Information_table[ the_api ]; 47e66: 41f9 0005 9c34 lea 59c34 <_Objects_Information_table>,%a0 <== NOT EXECUTED 47e6c: 2070 1c00 moveal %a0@(00000000,%d1:l:4),%a0 <== NOT EXECUTED if ( !api_information ) { 47e70: 4a88 tstl %a0 <== NOT EXECUTED 47e72: 6724 beqs 47e98 <_Thread_Get+0x68> <== NOT EXECUTED *location = OBJECTS_ERROR; goto done; } information = api_information[ the_class ]; 47e74: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED if ( !information ) { 47e78: 6752 beqs 47ecc <_Thread_Get+0x9c> <== NOT EXECUTED *location = OBJECTS_ERROR; goto done; } tp = (Thread_Control *) _Objects_Get( information, id, location ); 47e7a: 2f09 movel %a1,%sp@- <== NOT EXECUTED 47e7c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47e7e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 47e80: 4eb9 0004 7584 jsr 47584 <_Objects_Get> <== NOT EXECUTED done: return tp; } 47e86: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47e8a: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED if ( !information ) { *location = OBJECTS_ERROR; goto done; } tp = (Thread_Control *) _Objects_Get( information, id, location ); 47e8e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED done: return tp; } 47e94: 4e5e unlk %fp <== NOT EXECUTED 47e96: 4e75 rts <== NOT EXECUTED goto done; } api_information = _Objects_Information_table[ the_api ]; if ( !api_information ) { *location = OBJECTS_ERROR; 47e98: 7401 moveq #1,%d2 <== NOT EXECUTED 47e9a: 2282 movel %d2,%a1@ <== NOT EXECUTED tp = (Thread_Control *) _Objects_Get( information, id, location ); done: return tp; } 47e9c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47ea0: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 47ea4: 4e5e unlk %fp <== NOT EXECUTED goto done; } api_information = _Objects_Information_table[ the_api ]; if ( !api_information ) { *location = OBJECTS_ERROR; 47ea6: 4280 clrl %d0 <== NOT EXECUTED tp = (Thread_Control *) _Objects_Get( information, id, location ); done: return tp; } 47ea8: 4e75 rts <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 47eaa: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 47eb0: 5280 addql #1,%d0 <== NOT EXECUTED 47eb2: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED 47eb8: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47ebc: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED Thread_Control *tp = (Thread_Control *) 0; if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ) { _Thread_Disable_dispatch(); *location = OBJECTS_LOCAL; tp = _Thread_Executing; 47ec0: 2039 0005 9d3a movel 59d3a <_Thread_Executing>,%d0 <== NOT EXECUTED tp = (Thread_Control *) _Objects_Get( information, id, location ); done: return tp; } 47ec6: 4e5e unlk %fp <== 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; 47ec8: 4291 clrl %a1@ <== NOT EXECUTED tp = (Thread_Control *) _Objects_Get( information, id, location ); done: return tp; } 47eca: 4e75 rts <== NOT EXECUTED 47ecc: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47ed0: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED goto done; } information = api_information[ the_class ]; if ( !information ) { *location = OBJECTS_ERROR; 47ed4: 7201 moveq #1,%d1 <== NOT EXECUTED tp = (Thread_Control *) _Objects_Get( information, id, location ); done: return tp; } 47ed6: 4e5e unlk %fp <== NOT EXECUTED goto done; } information = api_information[ the_class ]; if ( !information ) { *location = OBJECTS_ERROR; 47ed8: 2281 movel %d1,%a1@ <== NOT EXECUTED tp = (Thread_Control *) _Objects_Get( information, id, location ); done: return tp; } 47eda: 4e75 rts 0004d174 <_Thread_Handler>: * * Output parameters: NONE */ void _Thread_Handler( void ) { 4d174: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d178: 2f0a movel %a2,%sp@- <== NOT EXECUTED #if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__) static char doneConstructors; char doneCons; #endif executing = _Thread_Executing; 4d17a: 2479 0005 9d3a moveal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED * * Output parameters: NONE */ void _Thread_Handler( void ) { 4d180: 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; 4d182: 222a 00b6 movel %a2@(182),%d1 <== NOT EXECUTED _ISR_Set_level(level); 4d186: 40c0 movew %sr,%d0 <== NOT EXECUTED 4d188: e189 lsll #8,%d1 <== NOT EXECUTED 4d18a: 0280 0000 f8ff andil #63743,%d0 <== NOT EXECUTED 4d190: 8081 orl %d1,%d0 <== NOT EXECUTED 4d192: 46c0 movew %d0,%sr <== NOT EXECUTED #if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__) doneCons = doneConstructors; 4d194: 1439 0005 946c moveb 5946c ,%d2 <== NOT EXECUTED doneConstructors = 1; 4d19a: 7001 moveq #1,%d0 <== NOT EXECUTED 4d19c: 13c0 0005 946c moveb %d0,5946c <== 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 ) ) { 4d1a2: 4aaa 0104 tstl %a2@(260) <== NOT EXECUTED 4d1a6: 6720 beqs 4d1c8 <_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 ); 4d1a8: 2079 0005 9d02 moveal 59d02 <_Thread_Allocated_fp>,%a0 <== NOT EXECUTED 4d1ae: b1ca cmpal %a2,%a0 <== NOT EXECUTED 4d1b0: 6716 beqs 4d1c8 <_Thread_Handler+0x54> <== NOT EXECUTED if ( _Thread_Allocated_fp != NULL ) 4d1b2: 4a88 tstl %a0 <== NOT EXECUTED 4d1b4: 670c beqs 4d1c2 <_Thread_Handler+0x4e> <== NOT EXECUTED _Context_Save_fp( &_Thread_Allocated_fp->fp_context ); 4d1b6: 4868 0104 pea %a0@(260) <== NOT EXECUTED 4d1ba: 4eb9 0004 9380 jsr 49380 <_CPU_Context_save_fp> <== NOT EXECUTED 4d1c0: 588f addql #4,%sp <== NOT EXECUTED _Thread_Allocated_fp = executing; 4d1c2: 23ca 0005 9d02 movel %a2,59d02 <_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 ); 4d1c8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d1ca: 4eb9 0004 8e38 jsr 48e38 <_User_extensions_Thread_begin> <== NOT EXECUTED /* * At this point, the dispatch disable level BETTER be 1. */ _Thread_Enable_dispatch(); 4d1d0: 4eb9 0004 7e08 jsr 47e08 <_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) */ 4d1d6: 588f addql #4,%sp <== NOT EXECUTED 4d1d8: 4a02 tstb %d2 <== NOT EXECUTED 4d1da: 6760 beqs 4d23c <_Thread_Handler+0xc8> <== NOT EXECUTED #if defined(__USE__MAIN__) if (!doneCons && _main) __main (); #endif switch ( executing->Start.prototype ) { 4d1dc: 202a 00a0 movel %a2@(160),%d0 <== NOT EXECUTED 4d1e0: 7201 moveq #1,%d1 <== NOT EXECUTED 4d1e2: b280 cmpl %d0,%d1 <== NOT EXECUTED 4d1e4: 6766 beqs 4d24c <_Thread_Handler+0xd8> <== NOT EXECUTED 4d1e6: b280 cmpl %d0,%d1 <== NOT EXECUTED 4d1e8: 622a bhis 4d214 <_Thread_Handler+0xa0> <== NOT EXECUTED 4d1ea: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 4d1ee: b280 cmpl %d0,%d1 <== NOT EXECUTED 4d1f0: 6700 00ae beqw 4d2a0 <_Thread_Handler+0x12c> <== NOT EXECUTED 4d1f4: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 4d1f8: b280 cmpl %d0,%d1 <== NOT EXECUTED 4d1fa: 6778 beqs 4d274 <_Thread_Handler+0x100> <== 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 ); 4d1fc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d1fe: 4eb9 0004 8e76 jsr 48e76 <_User_extensions_Thread_exitted> <== NOT EXECUTED _Internal_error_Occurred( 4d204: 4878 0006 pea 6 <== NOT EXECUTED 4d208: 4878 0001 pea 1 <== NOT EXECUTED 4d20c: 42a7 clrl %sp@- <== NOT EXECUTED 4d20e: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED __main (); #endif switch ( executing->Start.prototype ) { case THREAD_START_NUMERIC: executing->Wait.return_argument = 4d214: 2f2a 00a8 movel %a2@(168),%sp@- <== NOT EXECUTED 4d218: 206a 009c moveal %a2@(156),%a0 <== NOT EXECUTED 4d21c: 4e90 jsr %a0@ <== NOT EXECUTED 4d21e: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 4d222: 588f addql #4,%sp <== 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 ); 4d224: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d226: 4eb9 0004 8e76 jsr 48e76 <_User_extensions_Thread_exitted> <== NOT EXECUTED _Internal_error_Occurred( 4d22c: 4878 0006 pea 6 <== NOT EXECUTED 4d230: 4878 0001 pea 1 <== NOT EXECUTED 4d234: 42a7 clrl %sp@- <== NOT EXECUTED 4d236: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED * 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) */ { _init (); 4d23c: 4eb9 0005 66b8 jsr 566b8 <_init> <== NOT EXECUTED #if defined(__USE__MAIN__) if (!doneCons && _main) __main (); #endif switch ( executing->Start.prototype ) { 4d242: 202a 00a0 movel %a2@(160),%d0 <== NOT EXECUTED 4d246: 7201 moveq #1,%d1 <== NOT EXECUTED 4d248: b280 cmpl %d0,%d1 <== NOT EXECUTED 4d24a: 669a bnes 4d1e6 <_Thread_Handler+0x72> <== NOT EXECUTED (*(Thread_Entry_numeric) executing->Start.entry_point)( executing->Start.numeric_argument ); break; case THREAD_START_POINTER: executing->Wait.return_argument = 4d24c: 2f2a 00a4 movel %a2@(164),%sp@- <== NOT EXECUTED 4d250: 206a 009c moveal %a2@(156),%a0 <== NOT EXECUTED 4d254: 4e90 jsr %a0@ <== NOT EXECUTED 4d256: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 4d25a: 588f addql #4,%sp <== 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 ); 4d25c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d25e: 4eb9 0004 8e76 jsr 48e76 <_User_extensions_Thread_exitted> <== NOT EXECUTED _Internal_error_Occurred( 4d264: 4878 0006 pea 6 <== NOT EXECUTED 4d268: 4878 0001 pea 1 <== NOT EXECUTED 4d26c: 42a7 clrl %sp@- <== NOT EXECUTED 4d26e: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED executing->Start.pointer_argument, executing->Start.numeric_argument ); break; case THREAD_START_BOTH_NUMERIC_FIRST: executing->Wait.return_argument = 4d274: 2f2a 00a4 movel %a2@(164),%sp@- <== NOT EXECUTED 4d278: 2f2a 00a8 movel %a2@(168),%sp@- <== NOT EXECUTED 4d27c: 206a 009c moveal %a2@(156),%a0 <== NOT EXECUTED 4d280: 4e90 jsr %a0@ <== NOT EXECUTED 4d282: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 4d286: 508f addql #8,%sp <== 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 ); 4d288: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d28a: 4eb9 0004 8e76 jsr 48e76 <_User_extensions_Thread_exitted> <== NOT EXECUTED _Internal_error_Occurred( 4d290: 4878 0006 pea 6 <== NOT EXECUTED 4d294: 4878 0001 pea 1 <== NOT EXECUTED 4d298: 42a7 clrl %sp@- <== NOT EXECUTED 4d29a: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED (*(Thread_Entry_pointer) executing->Start.entry_point)( executing->Start.pointer_argument ); break; case THREAD_START_BOTH_POINTER_FIRST: executing->Wait.return_argument = 4d2a0: 2f2a 00a8 movel %a2@(168),%sp@- <== NOT EXECUTED 4d2a4: 2f2a 00a4 movel %a2@(164),%sp@- <== NOT EXECUTED 4d2a8: 206a 009c moveal %a2@(156),%a0 <== NOT EXECUTED 4d2ac: 4e90 jsr %a0@ <== NOT EXECUTED 4d2ae: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 4d2b2: 508f addql #8,%sp <== 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 ); 4d2b4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d2b6: 4eb9 0004 8e76 jsr 48e76 <_User_extensions_Thread_exitted> <== NOT EXECUTED _Internal_error_Occurred( 4d2bc: 4878 0006 pea 6 <== NOT EXECUTED 4d2c0: 4878 0001 pea 1 <== NOT EXECUTED 4d2c4: 42a7 clrl %sp@- <== NOT EXECUTED 4d2c6: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED 00048120 <_Thread_Handler_initialization>: /* * BOTH stacks hooks must be set or both must be NULL. * Do not allow mixture. */ if ( !( (!_Configuration_Table->stack_allocate_hook) 48120: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED 48126: 4aa8 0024 tstl %a0@(36) <== NOT EXECUTED 4812a: 57c1 seq %d1 <== NOT EXECUTED 4812c: 4aa8 0020 tstl %a0@(32) <== NOT EXECUTED 48130: 57c0 seq %d0 <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) , uint32_t maximum_proxies #endif ) { 48132: 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) 48136: 4480 negl %d0 <== NOT EXECUTED 48138: 4481 negl %d1 <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) , uint32_t maximum_proxies #endif ) { 4813a: 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) 4813c: b380 eorl %d1,%d0 <== NOT EXECUTED 4813e: 4a00 tstb %d0 <== NOT EXECUTED 48140: 6600 00b0 bnew 481f2 <_Thread_Handler_initialization+0xd2> <== NOT EXECUTED _Thread_Maximum_extensions = maximum_extensions; _Thread_Ticks_per_timeslice = ticks_per_timeslice; _Thread_Ready_chain = (Chain_Control *) _Workspace_Allocate_or_fatal_error( 48144: 4280 clrl %d0 <== NOT EXECUTED 48146: 1039 0005 80f2 moveb 580f2 ,%d0 <== NOT EXECUTED 4814c: 5280 addql #1,%d0 <== NOT EXECUTED 4814e: 2200 movel %d0,%d1 <== NOT EXECUTED 48150: e588 lsll #2,%d0 <== NOT EXECUTED 48152: e989 lsll #4,%d1 <== NOT EXECUTED 48154: 9280 subl %d0,%d1 <== NOT EXECUTED 48156: 2f01 movel %d1,%sp@- <== NOT EXECUTED _Thread_Allocated_fp = NULL; #endif _Thread_Do_post_task_switch_extension = 0; _Thread_Maximum_extensions = maximum_extensions; 48158: 41ee 000c lea %fp@(12),%a0 <== NOT EXECUTED 4815c: 23d0 0005 9d1e movel %a0@,59d1e <_Thread_Maximum_extensions> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_BAD_STACK_HOOK ); _Context_Switch_necessary = FALSE; 48162: 4200 clrb %d0 <== NOT EXECUTED _Thread_Do_post_task_switch_extension = 0; _Thread_Maximum_extensions = maximum_extensions; _Thread_Ticks_per_timeslice = ticks_per_timeslice; 48164: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED 48168: 23d0 0005 9c2c movel %a0@,59c2c <_Thread_Ticks_per_timeslice> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_BAD_STACK_HOOK ); _Context_Switch_necessary = FALSE; 4816e: 13c0 0005 9d4a moveb %d0,59d4a <_Context_Switch_necessary> <== NOT EXECUTED _Thread_Executing = NULL; 48174: 42b9 0005 9d3a clrl 59d3a <_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++ ) 4817a: 4282 clrl %d2 <== NOT EXECUTED INTERNAL_ERROR_BAD_STACK_HOOK ); _Context_Switch_necessary = FALSE; _Thread_Executing = NULL; _Thread_Heir = NULL; 4817c: 42b9 0005 9d0a clrl 59d0a <_Thread_Heir> <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) _Thread_Allocated_fp = NULL; 48182: 42b9 0005 9d02 clrl 59d02 <_Thread_Allocated_fp> <== NOT EXECUTED #endif _Thread_Do_post_task_switch_extension = 0; 48188: 42b9 0005 9d22 clrl 59d22 <_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( 4818e: 4eb9 0004 92bc jsr 492bc <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED (PRIORITY_MAXIMUM + 1) * sizeof(Chain_Control) ); for ( index=0; index <= PRIORITY_MAXIMUM ; index++ ) 48194: 1439 0005 80f2 moveb 580f2 ,%d2 <== NOT EXECUTED 4819a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4819c: 588f addql #4,%sp <== NOT EXECUTED 4819e: 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( 481a0: 23c0 0005 9c28 movel %d0,59c28 <_Thread_Ready_chain> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 481a6: 2008 movel %a0,%d0 <== NOT EXECUTED 481a8: 5880 addql #4,%d0 <== NOT EXECUTED 481aa: 2080 movel %d0,%a0@ <== NOT EXECUTED (PRIORITY_MAXIMUM + 1) * sizeof(Chain_Control) ); for ( index=0; index <= PRIORITY_MAXIMUM ; index++ ) 481ac: 5281 addql #1,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; 481ae: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 481b2: 2148 0008 movel %a0,%a0@(8) <== NOT EXECUTED 481b6: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 481bc: b481 cmpl %d1,%d2 <== NOT EXECUTED 481be: 64e6 bccs 481a6 <_Thread_Handler_initialization+0x86> <== NOT EXECUTED /* * Initialize this class of objects. */ _Objects_Initialize_information( 481c0: 4878 0008 pea 8 <== NOT EXECUTED 481c4: 4878 0001 pea 1 <== NOT EXECUTED 481c8: 4878 0120 pea 120 <== NOT EXECUTED 481cc: 4878 0001 pea 1 <== NOT EXECUTED 481d0: 4878 0001 pea 1 <== NOT EXECUTED 481d4: 4878 0001 pea 1 <== NOT EXECUTED 481d8: 4879 0005 9dce pea 59dce <_Thread_Internal_information> <== NOT EXECUTED 481de: 4eb9 0004 75f8 jsr 475f8 <_Objects_Initialize_information> <== NOT EXECUTED FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 481e4: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED /* * Initialize this class of objects. */ _Objects_Initialize_information( 481e8: dffc 0000 001c addal #28,%sp <== NOT EXECUTED FALSE, /* TRUE if this is a global object class */ NULL /* Proxy extraction support callout */ #endif ); } 481ee: 4e5e unlk %fp <== NOT EXECUTED 481f0: 4e75 rts <== NOT EXECUTED * BOTH stacks hooks must be set or both must be NULL. * Do not allow mixture. */ if ( !( (!_Configuration_Table->stack_allocate_hook) == (!_Configuration_Table->stack_free_hook) ) ) _Internal_error_Occurred( 481f2: 4878 000f pea f <== NOT EXECUTED 481f6: 4878 0001 pea 1 <== NOT EXECUTED 481fa: 42a7 clrl %sp@- <== NOT EXECUTED 481fc: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED ... 00047edc <_Thread_Initialize>: Thread_CPU_budget_algorithms budget_algorithm, Thread_CPU_budget_algorithm_callout budget_callout, uint32_t isr_level, Objects_Name name ) { 47edc: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 47ee0: 48d7 047c moveml %d2-%d6/%a2,%sp@ <== NOT EXECUTED 47ee4: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 47ee8: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 47eec: 282e 001c movel %fp@(28),%d4 <== NOT EXECUTED 47ef0: 2c2e 0024 movel %fp@(36),%d6 <== NOT EXECUTED 47ef4: 142e 001b moveb %fp@(27),%d2 <== NOT EXECUTED 47ef8: 1a2e 0023 moveb %fp@(35),%d5 <== NOT EXECUTED /* * Allocate and Initialize the stack for this thread. */ if ( !stack_area ) { 47efc: 4a81 tstl %d1 <== NOT EXECUTED 47efe: 6700 01ec beqw 480ec <_Thread_Initialize+0x210> <== NOT EXECUTED stack = the_thread->Start.stack; the_thread->Start.core_allocated_stack = TRUE; } else { stack = stack_area; actual_stack_size = stack_size; the_thread->Start.core_allocated_stack = FALSE; 47f02: 202e 0014 movel %fp@(20),%d0 <== NOT EXECUTED 47f06: 4203 clrb %d3 <== NOT EXECUTED 47f08: 1543 00be moveb %d3,%a2@(190) <== NOT EXECUTED Stack_Control *the_stack, void *starting_address, size_t size ) { the_stack->area = starting_address; 47f0c: 2541 00c4 movel %d1,%a2@(196) <== NOT EXECUTED the_stack->size = size; 47f10: 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 ) { 47f14: 4a02 tstb %d2 <== NOT EXECUTED 47f16: 6600 014e bnew 48066 <_Thread_Initialize+0x18a> <== NOT EXECUTED /* * Allocate the extensions area for this thread */ if ( _Thread_Maximum_extensions ) { 47f1a: 2239 0005 9d1e movel 59d1e <_Thread_Maximum_extensions>,%d1 <== NOT EXECUTED if ( is_fp ) { fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE ); if ( !fp_area ) { _Thread_Stack_Free( the_thread ); return FALSE; 47f20: 4280 clrl %d0 <== NOT EXECUTED 47f22: 4283 clrl %d3 <== NOT EXECUTED } else fp_area = NULL; the_thread->fp_context = fp_area; the_thread->Start.fp_context = fp_area; 47f24: 2540 00c8 movel %d0,%a2@(200) <== NOT EXECUTED fp_area = _Context_Fp_start( fp_area, 0 ); } else fp_area = NULL; the_thread->fp_context = fp_area; 47f28: 2540 0104 movel %d0,%a2@(260) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 47f2c: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_watchdog->routine = routine; 47f30: 42aa 0064 clrl %a2@(100) <== NOT EXECUTED the_watchdog->id = id; 47f34: 42aa 0068 clrl %a2@(104) <== NOT EXECUTED the_watchdog->user_data = user_data; 47f38: 42aa 006c clrl %a2@(108) <== NOT EXECUTED /* * Clear the libc reent hook. */ the_thread->libc_reent = NULL; 47f3c: 42aa 0108 clrl %a2@(264) <== NOT EXECUTED /* * Allocate the extensions area for this thread */ if ( _Thread_Maximum_extensions ) { 47f40: 4a81 tstl %d1 <== NOT EXECUTED 47f42: 6600 015c bnew 480a0 <_Thread_Initialize+0x1c4> <== NOT EXECUTED return FALSE; } } else extensions_area = NULL; the_thread->extensions = (void **) extensions_area; 47f46: 4282 clrl %d2 <== NOT EXECUTED 47f48: 42aa 0118 clrl %a2@(280) <== NOT EXECUTED /* * General initialization */ the_thread->Start.is_preemptible = is_preemptible; 47f4c: 1545 00ac moveb %d5,%a2@(172) <== NOT EXECUTED the_thread->Start.budget_algorithm = budget_algorithm; 47f50: 2546 00ae movel %d6,%a2@(174) <== NOT EXECUTED the_thread->Start.budget_callout = budget_callout; switch ( budget_algorithm ) { 47f54: 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; 47f56: 256e 0028 00b2 movel %fp@(40),%a2@(178) <== NOT EXECUTED switch ( budget_algorithm ) { 47f5c: b086 cmpl %d6,%d0 <== NOT EXECUTED 47f5e: 6700 009c beqw 47ffc <_Thread_Initialize+0x120> <== 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 ); 47f62: 2f04 movel %d4,%sp@- <== NOT EXECUTED break; } the_thread->Start.isr_level = isr_level; the_thread->current_state = STATES_DORMANT; 47f64: 7001 moveq #1,%d0 <== NOT EXECUTED break; case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT: break; } the_thread->Start.isr_level = isr_level; 47f66: 256e 002c 00b6 movel %fp@(44),%a2@(182) <== NOT EXECUTED the_thread->current_state = STATES_DORMANT; 47f6c: 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 ); 47f70: 2f0a movel %a2,%sp@- <== NOT EXECUTED } the_thread->Start.isr_level = isr_level; the_thread->current_state = STATES_DORMANT; the_thread->Wait.queue = NULL; 47f72: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED the_thread->resource_count = 0; 47f76: 42aa 001c clrl %a2@(28) <== NOT EXECUTED the_thread->suspend_count = 0; 47f7a: 42aa 0070 clrl %a2@(112) <== NOT EXECUTED the_thread->real_priority = priority; 47f7e: 2544 0018 movel %d4,%a2@(24) <== NOT EXECUTED the_thread->Start.initial_priority = priority; 47f82: 2544 00ba movel %d4,%a2@(186) <== NOT EXECUTED _Thread_Set_priority( the_thread, priority ); 47f86: 4eb9 0004 8764 jsr 48764 <_Thread_Set_priority> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 47f8c: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 47f90: 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; 47f96: 2069 001a moveal %a1@(26),%a0 <== NOT EXECUTED 47f9a: 4280 clrl %d0 <== NOT EXECUTED 47f9c: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 47fa0: 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; 47fa4: 42aa 0084 clrl %a2@(132) <== NOT EXECUTED the_thread->cpu_time_used.tv_nsec = 0; 47fa8: 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 ); 47fac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47fae: 4eb9 0004 8f08 jsr 48f08 <_User_extensions_Thread_create> <== NOT EXECUTED if ( !extension_status ) { 47fb4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 47fba: 4a00 tstb %d0 <== NOT EXECUTED 47fbc: 6632 bnes 47ff0 <_Thread_Initialize+0x114> <== NOT EXECUTED if ( extensions_area ) 47fbe: 4a82 tstl %d2 <== NOT EXECUTED 47fc0: 670a beqs 47fcc <_Thread_Initialize+0xf0> <== NOT EXECUTED (void) _Workspace_Free( extensions_area ); 47fc2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47fc4: 4eb9 0004 928c jsr 4928c <_Workspace_Free> <== NOT EXECUTED 47fca: 588f addql #4,%sp <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) if ( fp_area ) 47fcc: 4a83 tstl %d3 <== NOT EXECUTED 47fce: 670a beqs 47fda <_Thread_Initialize+0xfe> <== NOT EXECUTED (void) _Workspace_Free( fp_area ); 47fd0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47fd2: 4eb9 0004 928c jsr 4928c <_Workspace_Free> <== NOT EXECUTED 47fd8: 588f addql #4,%sp <== NOT EXECUTED #endif _Thread_Stack_Free( the_thread ); 47fda: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47fdc: 4eb9 0004 89d8 jsr 489d8 <_Thread_Stack_Free> <== NOT EXECUTED 47fe2: 588f addql #4,%sp <== NOT EXECUTED return FALSE; } return TRUE; } 47fe4: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 47fea: 4e5e unlk %fp <== NOT EXECUTED #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) if ( fp_area ) (void) _Workspace_Free( fp_area ); #endif _Thread_Stack_Free( the_thread ); 47fec: 4200 clrb %d0 <== NOT EXECUTED return FALSE; } return TRUE; } 47fee: 4e75 rts <== NOT EXECUTED 47ff0: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 47ff6: 4e5e unlk %fp <== NOT EXECUTED * Mutex provides sufficient protection to let the user extensions * run safely. */ extension_status = _User_extensions_Thread_create( the_thread ); if ( !extension_status ) { 47ff8: 7001 moveq #1,%d0 <== NOT EXECUTED return FALSE; } return TRUE; } 47ffa: 4e75 rts <== NOT EXECUTED switch ( budget_algorithm ) { 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; 47ffc: 41f9 0005 9c2c lea 59c2c <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED 48002: 2550 0078 movel %a0@,%a2@(120) <== NOT EXECUTED break; } the_thread->Start.isr_level = isr_level; the_thread->current_state = STATES_DORMANT; 48006: 7001 moveq #1,%d0 <== 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 ); 48008: 2f04 movel %d4,%sp@- <== NOT EXECUTED break; case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT: break; } the_thread->Start.isr_level = isr_level; 4800a: 256e 002c 00b6 movel %fp@(44),%a2@(182) <== NOT EXECUTED the_thread->current_state = STATES_DORMANT; 48010: 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 ); 48014: 2f0a movel %a2,%sp@- <== NOT EXECUTED } the_thread->Start.isr_level = isr_level; the_thread->current_state = STATES_DORMANT; the_thread->Wait.queue = NULL; 48016: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED the_thread->resource_count = 0; 4801a: 42aa 001c clrl %a2@(28) <== NOT EXECUTED the_thread->suspend_count = 0; 4801e: 42aa 0070 clrl %a2@(112) <== NOT EXECUTED the_thread->real_priority = priority; 48022: 2544 0018 movel %d4,%a2@(24) <== NOT EXECUTED the_thread->Start.initial_priority = priority; 48026: 2544 00ba movel %d4,%a2@(186) <== NOT EXECUTED _Thread_Set_priority( the_thread, priority ); 4802a: 4eb9 0004 8764 jsr 48764 <_Thread_Set_priority> <== NOT EXECUTED 48030: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 48034: 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; 4803a: 2069 001a moveal %a1@(26),%a0 <== NOT EXECUTED 4803e: 4280 clrl %d0 <== NOT EXECUTED 48040: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 48044: 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; 48048: 42aa 0084 clrl %a2@(132) <== NOT EXECUTED the_thread->cpu_time_used.tv_nsec = 0; 4804c: 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 ); 48050: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48052: 4eb9 0004 8f08 jsr 48f08 <_User_extensions_Thread_create> <== NOT EXECUTED if ( !extension_status ) { 48058: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4805e: 4a00 tstb %d0 <== NOT EXECUTED 48060: 6700 ff5c beqw 47fbe <_Thread_Initialize+0xe2> <== NOT EXECUTED 48064: 608a bras 47ff0 <_Thread_Initialize+0x114> <== NOT EXECUTED */ #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) if ( is_fp ) { fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE ); 48066: 4878 001c pea 1c <== NOT EXECUTED 4806a: 4eb9 0004 92a4 jsr 492a4 <_Workspace_Allocate> <== NOT EXECUTED if ( !fp_area ) { 48070: 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 ); 48072: 2600 movel %d0,%d3 <== NOT EXECUTED if ( !fp_area ) { 48074: 6700 ff64 beqw 47fda <_Thread_Initialize+0xfe> <== NOT EXECUTED /* * Allocate the extensions area for this thread */ if ( _Thread_Maximum_extensions ) { 48078: 2239 0005 9d1e movel 59d1e <_Thread_Maximum_extensions>,%d1 <== NOT EXECUTED } else fp_area = NULL; the_thread->fp_context = fp_area; the_thread->Start.fp_context = fp_area; 4807e: 2540 00c8 movel %d0,%a2@(200) <== NOT EXECUTED fp_area = _Context_Fp_start( fp_area, 0 ); } else fp_area = NULL; the_thread->fp_context = fp_area; 48082: 2540 0104 movel %d0,%a2@(260) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 48086: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_watchdog->routine = routine; 4808a: 42aa 0064 clrl %a2@(100) <== NOT EXECUTED the_watchdog->id = id; 4808e: 42aa 0068 clrl %a2@(104) <== NOT EXECUTED the_watchdog->user_data = user_data; 48092: 42aa 006c clrl %a2@(108) <== NOT EXECUTED /* * Clear the libc reent hook. */ the_thread->libc_reent = NULL; 48096: 42aa 0108 clrl %a2@(264) <== NOT EXECUTED /* * Allocate the extensions area for this thread */ if ( _Thread_Maximum_extensions ) { 4809a: 4a81 tstl %d1 <== NOT EXECUTED 4809c: 6700 fea8 beqw 47f46 <_Thread_Initialize+0x6a> <== NOT EXECUTED extensions_area = _Workspace_Allocate( 480a0: e589 lsll #2,%d1 <== NOT EXECUTED 480a2: 2041 moveal %d1,%a0 <== NOT EXECUTED 480a4: 4868 0004 pea %a0@(4) <== NOT EXECUTED 480a8: 4eb9 0004 92a4 jsr 492a4 <_Workspace_Allocate> <== NOT EXECUTED (_Thread_Maximum_extensions + 1) * sizeof( void * ) ); if ( !extensions_area ) { 480ae: 588f addql #4,%sp <== NOT EXECUTED /* * Allocate the extensions area for this thread */ if ( _Thread_Maximum_extensions ) { extensions_area = _Workspace_Allocate( 480b0: 2400 movel %d0,%d2 <== NOT EXECUTED (_Thread_Maximum_extensions + 1) * sizeof( void * ) ); if ( !extensions_area ) { 480b2: 6700 ff18 beqw 47fcc <_Thread_Initialize+0xf0> <== NOT EXECUTED return FALSE; } } else extensions_area = NULL; the_thread->extensions = (void **) extensions_area; 480b6: 2540 0118 movel %d0,%a2@(280) <== NOT EXECUTED * call. */ if ( the_thread->extensions ) { uint32_t i; for ( i = 0; i < (_Thread_Maximum_extensions + 1); i++ ) 480ba: 70ff moveq #-1,%d0 <== NOT EXECUTED 480bc: b0b9 0005 9d1e cmpl 59d1e <_Thread_Maximum_extensions>,%d0 <== NOT EXECUTED 480c2: 6700 fe88 beqw 47f4c <_Thread_Initialize+0x70> <== NOT EXECUTED 480c6: 2239 0005 9d1e movel 59d1e <_Thread_Maximum_extensions>,%d1 <== NOT EXECUTED 480cc: 4280 clrl %d0 <== NOT EXECUTED 480ce: 2042 moveal %d2,%a0 <== NOT EXECUTED 480d0: 5281 addql #1,%d1 <== NOT EXECUTED the_thread->extensions[i] = NULL; 480d2: 42b0 0c00 clrl %a0@(00000000,%d0:l:4) <== NOT EXECUTED * call. */ if ( the_thread->extensions ) { uint32_t i; for ( i = 0; i < (_Thread_Maximum_extensions + 1); i++ ) 480d6: 5280 addql #1,%d0 <== NOT EXECUTED 480d8: b081 cmpl %d1,%d0 <== NOT EXECUTED 480da: 6400 fe70 bccw 47f4c <_Thread_Initialize+0x70> <== NOT EXECUTED the_thread->extensions[i] = NULL; 480de: 42b0 0c00 clrl %a0@(00000000,%d0:l:4) <== NOT EXECUTED * call. */ if ( the_thread->extensions ) { uint32_t i; for ( i = 0; i < (_Thread_Maximum_extensions + 1); i++ ) 480e2: 5280 addql #1,%d0 <== NOT EXECUTED 480e4: b081 cmpl %d1,%d0 <== NOT EXECUTED 480e6: 65ea bcss 480d2 <_Thread_Initialize+0x1f6> <== NOT EXECUTED 480e8: 6000 fe62 braw 47f4c <_Thread_Initialize+0x70> <== NOT EXECUTED */ if ( !stack_area ) { actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size ); 480ec: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 480f0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 480f2: 4eb9 0004 8970 jsr 48970 <_Thread_Stack_Allocate> <== NOT EXECUTED if ( !actual_stack_size || actual_stack_size < stack_size ) 480f8: 508f addql #8,%sp <== NOT EXECUTED 480fa: 4a80 tstl %d0 <== NOT EXECUTED 480fc: 6714 beqs 48112 <_Thread_Initialize+0x236> <== NOT EXECUTED 480fe: b0ae 0014 cmpl %fp@(20),%d0 <== NOT EXECUTED 48102: 650e bcss 48112 <_Thread_Initialize+0x236> <== NOT EXECUTED return FALSE; /* stack allocation failed */ stack = the_thread->Start.stack; 48104: 222a 00cc movel %a2@(204),%d1 <== NOT EXECUTED the_thread->Start.core_allocated_stack = TRUE; 48108: 7601 moveq #1,%d3 <== NOT EXECUTED 4810a: 1543 00be moveb %d3,%a2@(190) <== NOT EXECUTED 4810e: 6000 fdfc braw 47f0c <_Thread_Initialize+0x30> <== NOT EXECUTED return FALSE; } return TRUE; } 48112: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 48118: 4e5e unlk %fp <== NOT EXECUTED (void) _Workspace_Free( fp_area ); #endif _Thread_Stack_Free( the_thread ); return FALSE; 4811a: 4200 clrb %d0 <== NOT EXECUTED } return TRUE; } 4811c: 4e75 rts <== NOT EXECUTED ... 0004c0a4 <_Thread_Load_environment>: */ void _Thread_Load_environment( Thread_Control *the_thread ) { 4c0a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c0a8: 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 ) { 4c0ac: 2069 00c8 moveal %a1@(200),%a0 <== NOT EXECUTED 4c0b0: 4a88 tstl %a0 <== NOT EXECUTED 4c0b2: 6734 beqs 4c0e8 <_Thread_Load_environment+0x44> <== NOT EXECUTED the_thread->fp_context = the_thread->Start.fp_context; 4c0b4: 2348 0104 movel %a0,%a1@(260) <== NOT EXECUTED _Context_Initialize_fp( &the_thread->fp_context ); 4c0b8: 4281 clrl %d1 <== NOT EXECUTED 4c0ba: 4280 clrl %d0 <== NOT EXECUTED 4c0bc: 2141 0018 movel %d1,%a0@(24) <== NOT EXECUTED 4c0c0: 4241 clrw %d1 <== NOT EXECUTED 4c0c2: 2140 0014 movel %d0,%a0@(20) <== NOT EXECUTED 4c0c6: 3141 0002 movew %d1,%a0@(2) <== NOT EXECUTED 4c0ca: 3141 0004 movew %d1,%a0@(4) <== NOT EXECUTED 4c0ce: 3141 0006 movew %d1,%a0@(6) <== NOT EXECUTED 4c0d2: 3141 0008 movew %d1,%a0@(8) <== NOT EXECUTED 4c0d6: 3141 000a movew %d1,%a0@(10) <== NOT EXECUTED 4c0da: 4280 clrl %d0 <== NOT EXECUTED 4c0dc: 4281 clrl %d1 <== NOT EXECUTED 4c0de: 4250 clrw %a0@ <== NOT EXECUTED 4c0e0: 2140 000c movel %d0,%a0@(12) <== NOT EXECUTED 4c0e4: 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( 4c0e8: 2069 00c0 moveal %a1@(192),%a0 <== NOT EXECUTED 4c0ec: 5988 subql #4,%a0 <== NOT EXECUTED 4c0ee: d1e9 00c4 addal %a1@(196),%a0 <== NOT EXECUTED 4c0f2: 2029 00b6 movel %a1@(182),%d0 <== NOT EXECUTED 4c0f6: 2348 0100 movel %a0,%a1@(256) <== NOT EXECUTED 4c0fa: e188 lsll #8,%d0 <== NOT EXECUTED 4c0fc: 0080 0000 3000 oril #12288,%d0 <== NOT EXECUTED } else #endif is_fp = false; the_thread->do_post_task_switch_extension = false; 4c102: 4201 clrb %d1 <== NOT EXECUTED the_thread->is_preemptible = the_thread->Start.is_preemptible; the_thread->budget_algorithm = the_thread->Start.budget_algorithm; 4c104: 2369 00ae 007c movel %a1@(174),%a1@(124) <== NOT EXECUTED the_thread->Start.isr_level, _Thread_Handler, is_fp ); } 4c10a: 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; 4c10c: 2369 00b2 0080 movel %a1@(178),%a1@(128) <== NOT EXECUTED } else #endif is_fp = false; the_thread->do_post_task_switch_extension = false; 4c112: 1341 0075 moveb %d1,%a1@(117) <== NOT EXECUTED the_thread->is_preemptible = the_thread->Start.is_preemptible; 4c116: 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( 4c11c: 2340 00d0 movel %d0,%a1@(208) <== NOT EXECUTED 4c120: 20bc 0004 d174 movel #315764,%a0@ <== NOT EXECUTED the_thread->Start.isr_level, _Thread_Handler, is_fp ); } 4c126: 4e75 rts 0004c390 <_Thread_Ready>: */ void _Thread_Ready( Thread_Control *the_thread ) { 4c390: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4c394: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED ISR_Level level; Thread_Control *heir; _ISR_Disable( level ); 4c398: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED */ void _Thread_Ready( Thread_Control *the_thread ) { 4c39e: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED ISR_Level level; Thread_Control *heir; _ISR_Disable( level ); 4c3a2: 2002 movel %d2,%d0 <== NOT EXECUTED 4c3a4: 40c3 movew %sr,%d3 <== NOT EXECUTED 4c3a6: 8083 orl %d3,%d0 <== NOT EXECUTED 4c3a8: 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 ); 4c3aa: 2268 008c moveal %a0@(140),%a1 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4c3ae: 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; 4c3b0: 2468 0090 moveal %a0@(144),%a2 <== NOT EXECUTED 4c3b4: 5880 addql #4,%d0 <== NOT EXECUTED 4c3b6: 2080 movel %d0,%a0@ <== NOT EXECUTED old_last_node = the_chain->last; 4c3b8: 2669 0008 moveal %a1@(8),%a3 <== NOT EXECUTED 4c3bc: 3228 0096 movew %a0@(150),%d1 <== NOT EXECUTED 4c3c0: 3012 movew %a2@,%d0 <== NOT EXECUTED 4c3c2: 8081 orl %d1,%d0 <== NOT EXECUTED 4c3c4: 3480 movew %d0,%a2@ <== NOT EXECUTED the_chain->last = the_node; 4c3c6: 2348 0008 movel %a0,%a1@(8) <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 4c3ca: 3039 0005 9d30 movew 59d30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 4c3d0: 3228 0094 movew %a0@(148),%d1 <== NOT EXECUTED 4c3d4: 8081 orl %d1,%d0 <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4c3d6: 214b 0004 movel %a3,%a0@(4) <== NOT EXECUTED 4c3da: 33c0 0005 9d30 movew %d0,59d30 <_Priority_Major_bit_map> <== NOT EXECUTED ISR_Level level; Thread_Control *heir; _ISR_Disable( level ); the_thread->current_state = STATES_READY; 4c3e0: 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; 4c3e4: 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 ); 4c3e6: 46c3 movew %d3,%sr <== NOT EXECUTED 4c3e8: 8483 orl %d3,%d2 <== NOT EXECUTED 4c3ea: 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 ); 4c3ec: 3039 0005 9d30 movew 59d30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 4c3f2: 4840 swap %d0 <== NOT EXECUTED 4c3f4: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 4c3f6: 41f9 0005 9da0 lea 59da0 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 4c3fc: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 4c402: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 4c406: 4841 swap %d1 <== NOT EXECUTED 4c408: 04c1 ff1 %d1 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 4c40a: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 4c410: e988 lsll #4,%d0 <== NOT EXECUTED 4c412: d081 addl %d1,%d0 <== NOT EXECUTED 4c414: 2079 0005 9c28 moveal 59c28 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 4c41a: 2400 movel %d0,%d2 <== NOT EXECUTED 4c41c: e588 lsll #2,%d0 <== NOT EXECUTED 4c41e: 91c0 subal %d0,%a0 <== NOT EXECUTED 4c420: e98a lsll #4,%d2 <== NOT EXECUTED 4c422: 2230 2800 movel %a0@(00000000,%d2:l),%d1 <== NOT EXECUTED RTEMS_INLINE_ROUTINE bool _Thread_Is_executing ( const Thread_Control *the_thread ) { return ( the_thread == _Thread_Executing ); 4c426: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 4c42c: 23c1 0005 9d0a movel %d1,59d0a <_Thread_Heir> <== NOT EXECUTED _Thread_Calculate_heir(); heir = _Thread_Heir; if ( !_Thread_Is_executing( heir ) && _Thread_Executing->is_preemptible ) 4c432: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 4c434: 670e beqs 4c444 <_Thread_Ready+0xb4> <== NOT EXECUTED 4c436: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 4c43a: 6708 beqs 4c444 <_Thread_Ready+0xb4> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 4c43c: 7001 moveq #1,%d0 <== NOT EXECUTED 4c43e: 13c0 0005 9d4a moveb %d0,59d4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 4c444: 46c3 movew %d3,%sr <== NOT EXECUTED } 4c446: 4cd7 0c0c moveml %sp@,%d2-%d3/%a2-%a3 <== NOT EXECUTED 4c44a: 4e5e unlk %fp <== NOT EXECUTED 4c44c: 4e75 rts <== NOT EXECUTED ... 0004ce8c <_Thread_Reset>: void _Thread_Reset( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 4ce8c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ce90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ce92: 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; 4ce96: 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; 4ce9c: 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; 4cea2: 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; 4cea8: 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; 4ceac: 256a 00ae 007c movel %a2@(174),%a2@(124) <== NOT EXECUTED the_thread->budget_callout = the_thread->Start.budget_callout; 4ceb2: 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; 4ceb8: 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 ) ) { 4cebc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4cebe: 4eb9 0004 8f04 jsr 48f04 <_Thread_queue_Extract_with_proxy> <== NOT EXECUTED 4cec4: 588f addql #4,%sp <== NOT EXECUTED 4cec6: 4a00 tstb %d0 <== NOT EXECUTED 4cec8: 6608 bnes 4ced2 <_Thread_Reset+0x46> <== NOT EXECUTED if ( _Watchdog_Is_active( &the_thread->Timer ) ) 4ceca: 7002 moveq #2,%d0 <== NOT EXECUTED 4cecc: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4ced0: 672a beqs 4cefc <_Thread_Reset+0x70> <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); } if ( the_thread->current_priority != the_thread->Start.initial_priority ) { 4ced2: 202a 00ba movel %a2@(186),%d0 <== NOT EXECUTED 4ced6: b0aa 0014 cmpl %a2@(20),%d0 <== NOT EXECUTED 4ceda: 6718 beqs 4cef4 <_Thread_Reset+0x68> <== NOT EXECUTED the_thread->real_priority = the_thread->Start.initial_priority; _Thread_Set_priority( the_thread, the_thread->Start.initial_priority ); 4cedc: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED 4cee0: 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; 4cee4: 2540 0018 movel %d0,%a2@(24) <== NOT EXECUTED _Thread_Set_priority( the_thread, the_thread->Start.initial_priority ); } } 4cee8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4ceec: 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 ); 4ceee: 4ef9 0004 915c jmp 4915c <_Thread_Set_priority> <== NOT EXECUTED } } 4cef4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4cef8: 4e5e unlk %fp <== NOT EXECUTED 4cefa: 4e75 rts <== NOT EXECUTED the_thread->Start.numeric_argument = numeric_argument; if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) { if ( _Watchdog_Is_active( &the_thread->Timer ) ) (void) _Watchdog_Remove( &the_thread->Timer ); 4cefc: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4cf00: 4eb9 0004 9ba4 jsr 49ba4 <_Watchdog_Remove> <== NOT EXECUTED 4cf06: 588f addql #4,%sp <== NOT EXECUTED 4cf08: 60c8 bras 4ced2 <_Thread_Reset+0x46> <== NOT EXECUTED ... 0004c450 <_Thread_Reset_timeslice>: * ready chain * select heir */ void _Thread_Reset_timeslice( void ) { 4c450: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4c454: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; 4c458: 2679 0005 9d3a moveal 59d3a <_Thread_Executing>,%a3 <== NOT EXECUTED ready = executing->ready; _ISR_Disable( level ); 4c45e: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; ready = executing->ready; 4c464: 286b 008c moveal %a3@(140),%a4 <== NOT EXECUTED _ISR_Disable( level ); 4c468: 2002 movel %d2,%d0 <== NOT EXECUTED 4c46a: 40c1 movew %sr,%d1 <== NOT EXECUTED 4c46c: 8081 orl %d1,%d0 <== NOT EXECUTED 4c46e: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 4c470: 202c 0008 movel %a4@(8),%d0 <== NOT EXECUTED 4c474: b094 cmpl %a4@,%d0 <== NOT EXECUTED 4c476: 6754 beqs 4c4cc <_Thread_Reset_timeslice+0x7c> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 4c478: 2053 moveal %a3@,%a0 <== NOT EXECUTED previous = the_node->previous; 4c47a: 226b 0004 moveal %a3@(4),%a1 <== NOT EXECUTED next->previous = previous; previous->next = next; 4c47e: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4c480: 200c movel %a4,%d0 <== NOT EXECUTED 4c482: 5880 addql #4,%d0 <== NOT EXECUTED 4c484: 2680 movel %d0,%a3@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4c486: 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; 4c48a: 246c 0008 moveal %a4@(8),%a2 <== NOT EXECUTED the_chain->last = the_node; 4c48e: 294b 0008 movel %a3,%a4@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4c492: 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; 4c496: 248b movel %a3,%a2@ <== NOT EXECUTED return; } _Chain_Extract_unprotected( &executing->Object.Node ); _Chain_Append_unprotected( ready, &executing->Object.Node ); _ISR_Flash( level ); 4c498: 2002 movel %d2,%d0 <== NOT EXECUTED 4c49a: 46c1 movew %d1,%sr <== NOT EXECUTED 4c49c: 8081 orl %d1,%d0 <== NOT EXECUTED 4c49e: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( executing ) ) 4c4a0: b7f9 0005 9d0a cmpal 59d0a <_Thread_Heir>,%a3 <== NOT EXECUTED 4c4a6: 6712 beqs 4c4ba <_Thread_Reset_timeslice+0x6a> <== NOT EXECUTED _Thread_Heir = (Thread_Control *) ready->first; _Context_Switch_necessary = TRUE; 4c4a8: 7001 moveq #1,%d0 <== NOT EXECUTED 4c4aa: 13c0 0005 9d4a moveb %d0,59d4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 4c4b0: 46c1 movew %d1,%sr <== NOT EXECUTED } 4c4b2: 4cd7 1c04 moveml %sp@,%d2/%a2-%a4 <== NOT EXECUTED 4c4b6: 4e5e unlk %fp <== NOT EXECUTED 4c4b8: 4e75 rts <== NOT EXECUTED _Chain_Append_unprotected( ready, &executing->Object.Node ); _ISR_Flash( level ); if ( _Thread_Is_heir( executing ) ) _Thread_Heir = (Thread_Control *) ready->first; 4c4ba: 23d4 0005 9d0a movel %a4@,59d0a <_Thread_Heir> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 4c4c0: 7001 moveq #1,%d0 <== NOT EXECUTED 4c4c2: 13c0 0005 9d4a moveb %d0,59d4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 4c4c8: 46c1 movew %d1,%sr <== NOT EXECUTED 4c4ca: 60e6 bras 4c4b2 <_Thread_Reset_timeslice+0x62> <== NOT EXECUTED executing = _Thread_Executing; ready = executing->ready; _ISR_Disable( level ); if ( _Chain_Has_only_one_node( ready ) ) { _ISR_Enable( level ); 4c4cc: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_Heir = (Thread_Control *) ready->first; _Context_Switch_necessary = TRUE; _ISR_Enable( level ); } 4c4ce: 4cd7 1c04 moveml %sp@,%d2/%a2-%a4 <== NOT EXECUTED 4c4d2: 4e5e unlk %fp <== NOT EXECUTED 4c4d4: 4e75 rts <== NOT EXECUTED ... 000490a8 <_Thread_Restart>: bool _Thread_Restart( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 490a8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 490ac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 490ae: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( !_States_Is_dormant( the_thread->current_state ) ) { 490b2: 7001 moveq #1,%d0 <== NOT EXECUTED bool _Thread_Restart( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 490b4: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !_States_Is_dormant( the_thread->current_state ) ) { 490b6: c0aa 0010 andl %a2@(16),%d0 <== NOT EXECUTED 490ba: 4a00 tstb %d0 <== NOT EXECUTED 490bc: 6710 beqs 490ce <_Thread_Restart+0x26> <== NOT EXECUTED 490be: 4202 clrb %d2 <== NOT EXECUTED return TRUE; } return FALSE; } 490c0: 1002 moveb %d2,%d0 <== NOT EXECUTED 490c2: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 490c6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 490ca: 4e5e unlk %fp <== NOT EXECUTED 490cc: 4e75 rts <== NOT EXECUTED Thread_Entry_numeric_type numeric_argument ) { if ( !_States_Is_dormant( the_thread->current_state ) ) { _Thread_Set_transient( the_thread ); 490ce: 2f0a movel %a2,%sp@- <== NOT EXECUTED 490d0: 4eb9 0004 92e0 jsr 492e0 <_Thread_Set_transient> <== NOT EXECUTED _Thread_Reset( the_thread, pointer_argument, numeric_argument ); 490d6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 490da: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 490de: 2f0a movel %a2,%sp@- <== NOT EXECUTED 490e0: 4eb9 0004 ce8c jsr 4ce8c <_Thread_Reset> <== NOT EXECUTED _Thread_Load_environment( the_thread ); 490e6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 490e8: 4eb9 0004 cae0 jsr 4cae0 <_Thread_Load_environment> <== NOT EXECUTED _Thread_Ready( the_thread ); 490ee: 2f0a movel %a2,%sp@- <== NOT EXECUTED 490f0: 4eb9 0004 cdcc jsr 4cdcc <_Thread_Ready> <== NOT EXECUTED _User_extensions_Thread_restart( the_thread ); 490f6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 490f8: 4eb9 0004 9994 jsr 49994 <_User_extensions_Thread_restart> <== NOT EXECUTED if ( _Thread_Is_executing ( the_thread ) ) 490fe: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 49104: b5f9 0005 b882 cmpal 5b882 <_Thread_Executing>,%a2 <== NOT EXECUTED 4910a: 6710 beqs 4911c <_Thread_Restart+0x74> <== NOT EXECUTED 4910c: 7401 moveq #1,%d2 <== NOT EXECUTED return TRUE; } return FALSE; } 4910e: 1002 moveb %d2,%d0 <== NOT EXECUTED 49110: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 49114: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 49118: 4e5e unlk %fp <== NOT EXECUTED 4911a: 4e75 rts <== 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 ) 4911c: 4aaa 0104 tstl %a2@(260) <== NOT EXECUTED 49120: 670c beqs 4912e <_Thread_Restart+0x86> <== NOT EXECUTED _Context_Restore_fp( &_Thread_Executing->fp_context ); 49122: 486a 0104 pea %a2@(260) <== NOT EXECUTED 49126: 4eb9 0004 9dc0 jsr 49dc0 <_CPU_Context_restore_fp> <== NOT EXECUTED 4912c: 588f addql #4,%sp <== NOT EXECUTED #endif _CPU_Context_Restart_self( &_Thread_Executing->Registers ); 4912e: 2079 0005 b882 moveal 5b882 <_Thread_Executing>,%a0 <== NOT EXECUTED 49134: 2228 00d0 movel %a0@(208),%d1 <== NOT EXECUTED 49138: 2028 0100 movel %a0@(256),%d0 <== NOT EXECUTED 4913c: 46c1 movew %d1,%sr <== NOT EXECUTED 4913e: 2e40 moveal %d0,%sp <== NOT EXECUTED 49140: 4e75 rts <== NOT EXECUTED 49142: 7401 moveq #1,%d2 <== NOT EXECUTED 49144: 2140 0100 movel %d0,%a0@(256) <== NOT EXECUTED 49148: 1002 moveb %d2,%d0 <== NOT EXECUTED 4914a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4914e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 49152: 4e5e unlk %fp <== NOT EXECUTED 49154: 2141 00d0 movel %d1,%a0@(208) <== NOT EXECUTED 49158: 4e75 rts <== NOT EXECUTED ... 00049c6c <_Thread_Resume>: void _Thread_Resume( Thread_Control *the_thread, bool force ) { 49c6c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 49c70: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 49c74: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 49c78: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED ISR_Level level; States_Control current_state; _ISR_Disable( level ); 49c7c: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 49c82: 40c2 movew %sr,%d2 <== NOT EXECUTED 49c84: 8282 orl %d2,%d1 <== NOT EXECUTED 49c86: 46c1 movew %d1,%sr <== NOT EXECUTED if ( force == TRUE ) 49c88: 4a00 tstb %d0 <== NOT EXECUTED 49c8a: 6700 0092 beqw 49d1e <_Thread_Resume+0xb2> <== NOT EXECUTED the_thread->suspend_count = 0; 49c8e: 42ab 0070 clrl %a3@(112) <== NOT EXECUTED if ( the_thread->suspend_count > 0 ) { _ISR_Enable( level ); return; } current_state = the_thread->current_state; 49c92: 202b 0010 movel %a3@(16),%d0 <== NOT EXECUTED if ( current_state & STATES_SUSPENDED ) { 49c96: 0800 0001 btst #1,%d0 <== NOT EXECUTED 49c9a: 6778 beqs 49d14 <_Thread_Resume+0xa8> <== NOT EXECUTED 49c9c: 72fd moveq #-3,%d1 <== NOT EXECUTED 49c9e: c081 andl %d1,%d0 <== NOT EXECUTED current_state = 49ca0: 2740 0010 movel %d0,%a3@(16) <== NOT EXECUTED the_thread->current_state = _States_Clear(STATES_SUSPENDED, current_state); if ( _States_Is_ready( current_state ) ) { 49ca4: 666e bnes 49d14 <_Thread_Resume+0xa8> <== NOT EXECUTED _Priority_Add_to_bit_map( &the_thread->Priority_map ); _Chain_Append_unprotected(the_thread->ready, &the_thread->Object.Node); 49ca6: 206b 008c moveal %a3@(140),%a0 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 49caa: 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; 49cac: 226b 0090 moveal %a3@(144),%a1 <== NOT EXECUTED 49cb0: 5880 addql #4,%d0 <== NOT EXECUTED 49cb2: 2680 movel %d0,%a3@ <== NOT EXECUTED old_last_node = the_chain->last; 49cb4: 2468 0008 moveal %a0@(8),%a2 <== NOT EXECUTED 49cb8: 322b 0096 movew %a3@(150),%d1 <== NOT EXECUTED 49cbc: 3011 movew %a1@,%d0 <== NOT EXECUTED 49cbe: 8081 orl %d1,%d0 <== NOT EXECUTED 49cc0: 3280 movew %d0,%a1@ <== NOT EXECUTED the_chain->last = the_node; 49cc2: 214b 0008 movel %a3,%a0@(8) <== NOT EXECUTED _Priority_Major_bit_map |= the_priority_map->ready_major; 49cc6: 3039 0006 4358 movew 64358 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 49ccc: 322b 0094 movew %a3@(148),%d1 <== NOT EXECUTED 49cd0: 8081 orl %d1,%d0 <== NOT EXECUTED 49cd2: 33c0 0006 4358 movew %d0,64358 <_Priority_Major_bit_map> <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 49cd8: 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; 49cdc: 248b movel %a3,%a2@ <== NOT EXECUTED _ISR_Flash( level ); 49cde: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 49ce4: 46c2 movew %d2,%sr <== NOT EXECUTED 49ce6: 8082 orl %d2,%d0 <== NOT EXECUTED 49ce8: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_thread->current_priority < _Thread_Heir->current_priority ) { 49cea: 2079 0006 4332 moveal 64332 <_Thread_Heir>,%a0 <== NOT EXECUTED 49cf0: 202b 0014 movel %a3@(20),%d0 <== NOT EXECUTED 49cf4: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 49cf8: 641a bccs 49d14 <_Thread_Resume+0xa8> <== NOT EXECUTED _Thread_Heir = the_thread; if ( _Thread_Executing->is_preemptible || 49cfa: 2079 0006 4362 moveal 64362 <_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; 49d00: 23cb 0006 4332 movel %a3,64332 <_Thread_Heir> <== NOT EXECUTED if ( _Thread_Executing->is_preemptible || 49d06: 4a28 0076 tstb %a0@(118) <== NOT EXECUTED 49d0a: 672a beqs 49d36 <_Thread_Resume+0xca> <== NOT EXECUTED the_thread->current_priority == 0 ) _Context_Switch_necessary = TRUE; 49d0c: 7201 moveq #1,%d1 <== NOT EXECUTED 49d0e: 13c1 0006 4372 moveb %d1,64372 <_Context_Switch_necessary> <== NOT EXECUTED } } } _ISR_Enable( level ); 49d14: 46c2 movew %d2,%sr <== NOT EXECUTED } 49d16: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 49d1a: 4e5e unlk %fp <== NOT EXECUTED 49d1c: 4e75 rts <== NOT EXECUTED _ISR_Disable( level ); if ( force == TRUE ) the_thread->suspend_count = 0; else the_thread->suspend_count--; 49d1e: 202b 0070 movel %a3@(112),%d0 <== NOT EXECUTED 49d22: 5380 subql #1,%d0 <== NOT EXECUTED 49d24: 2740 0070 movel %d0,%a3@(112) <== NOT EXECUTED if ( the_thread->suspend_count > 0 ) { 49d28: 6700 ff68 beqw 49c92 <_Thread_Resume+0x26> <== NOT EXECUTED _ISR_Enable( level ); 49d2c: 46c2 movew %d2,%sr <== NOT EXECUTED } } } _ISR_Enable( level ); } 49d2e: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 49d32: 4e5e unlk %fp <== NOT EXECUTED 49d34: 4e75 rts <== NOT EXECUTED _ISR_Flash( level ); if ( the_thread->current_priority < _Thread_Heir->current_priority ) { _Thread_Heir = the_thread; if ( _Thread_Executing->is_preemptible || 49d36: 4a80 tstl %d0 <== NOT EXECUTED 49d38: 66da bnes 49d14 <_Thread_Resume+0xa8> <== NOT EXECUTED the_thread->current_priority == 0 ) _Context_Switch_necessary = TRUE; 49d3a: 7201 moveq #1,%d1 <== NOT EXECUTED 49d3c: 13c1 0006 4372 moveb %d1,64372 <_Context_Switch_necessary> <== NOT EXECUTED 49d42: 60d0 bras 49d14 <_Thread_Resume+0xa8> <== NOT EXECUTED 00048764 <_Thread_Set_priority>: void _Thread_Set_priority( Thread_Control *the_thread, Priority_Control new_priority ) { 48764: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48768: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4876c: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 48770: 48d7 003c moveml %d2-%d5,%sp@ <== NOT EXECUTED the_thread->current_priority = new_priority; the_thread->ready = &_Thread_Ready_chain[ new_priority ]; 48774: 2a00 movel %d0,%d5 <== NOT EXECUTED 48776: 2800 movel %d0,%d4 <== NOT EXECUTED { Priority_Bit_map_control major; Priority_Bit_map_control minor; Priority_Bit_map_control mask; major = _Priority_Major( new_priority ); 48778: 2600 movel %d0,%d3 <== NOT EXECUTED mask = _Priority_Mask( major ); the_priority_map->ready_major = mask; the_priority_map->block_major = ~mask; mask = _Priority_Mask( minor ); 4877a: 720f moveq #15,%d1 <== NOT EXECUTED void _Thread_Set_priority( Thread_Control *the_thread, Priority_Control new_priority ) { the_thread->current_priority = new_priority; 4877c: 2140 0014 movel %d0,%a0@(20) <== NOT EXECUTED the_thread->ready = &_Thread_Ready_chain[ new_priority ]; 48780: e58d lsll #2,%d5 <== NOT EXECUTED 48782: c081 andl %d1,%d0 <== NOT EXECUTED 48784: e98c lsll #4,%d4 <== NOT EXECUTED minor = _Priority_Minor( new_priority ); the_priority_map->minor = &_Priority_Bit_map[ _Priority_Bits_index(major) ]; mask = _Priority_Mask( major ); 48786: 323c 8000 movew #-32768,%d1 <== NOT EXECUTED 4878a: 9885 subl %d5,%d4 <== NOT EXECUTED { Priority_Bit_map_control major; Priority_Bit_map_control minor; Priority_Bit_map_control mask; major = _Priority_Major( new_priority ); 4878c: e88b lsrl #4,%d3 <== NOT EXECUTED minor = _Priority_Minor( new_priority ); the_priority_map->minor = 4878e: 0283 0000 ffff andil #65535,%d3 <== NOT EXECUTED mask = _Priority_Mask( major ); the_priority_map->ready_major = mask; the_priority_map->block_major = ~mask; mask = _Priority_Mask( minor ); 48794: 2401 movel %d1,%d2 <== NOT EXECUTED 48796: d8b9 0005 9c28 addl 59c28 <_Thread_Ready_chain>,%d4 <== NOT EXECUTED minor = _Priority_Minor( new_priority ); the_priority_map->minor = &_Priority_Bit_map[ _Priority_Bits_index(major) ]; mask = _Priority_Mask( major ); 4879c: e6a1 asrl %d3,%d1 <== NOT EXECUTED the_priority_map->ready_major = mask; the_priority_map->block_major = ~mask; mask = _Priority_Mask( minor ); 4879e: e0a2 asrl %d0,%d2 <== NOT EXECUTED the_priority_map->ready_minor = mask; 487a0: 3142 0096 movew %d2,%a0@(150) <== NOT EXECUTED Priority_Bit_map_control mask; major = _Priority_Major( new_priority ); minor = _Priority_Minor( new_priority ); the_priority_map->minor = 487a4: d683 addl %d3,%d3 <== 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; 487a6: 4682 notl %d2 <== NOT EXECUTED Priority_Bit_map_control mask; major = _Priority_Major( new_priority ); minor = _Priority_Minor( new_priority ); the_priority_map->minor = 487a8: 0683 0005 9da0 addil #368032,%d3 <== 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; 487ae: 3142 009a movew %d2,%a0@(154) <== NOT EXECUTED 487b2: 2144 008c movel %d4,%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; 487b6: 3141 0094 movew %d1,%a0@(148) <== NOT EXECUTED the_priority_map->block_major = ~mask; 487ba: 4681 notl %d1 <== NOT EXECUTED Priority_Bit_map_control mask; major = _Priority_Major( new_priority ); minor = _Priority_Minor( new_priority ); the_priority_map->minor = 487bc: 2143 0090 movel %d3,%a0@(144) <== NOT EXECUTED _Priority_Initialize_information( &the_thread->Priority_map, new_priority ); } 487c0: 4cd7 003c moveml %sp@,%d2-%d5 <== NOT EXECUTED 487c4: 4e5e unlk %fp <== NOT EXECUTED &_Priority_Bit_map[ _Priority_Bits_index(major) ]; mask = _Priority_Mask( major ); the_priority_map->ready_major = mask; the_priority_map->block_major = ~mask; 487c6: 3141 0098 movew %d1,%a0@(152) <== NOT EXECUTED 487ca: 4e75 rts 000487cc <_Thread_Set_state>: void _Thread_Set_state( Thread_Control *the_thread, States_Control state ) { 487cc: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 487d0: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 487d4: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; Chain_Control *ready; ready = the_thread->ready; _ISR_Disable( level ); 487d8: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED ) { ISR_Level level; Chain_Control *ready; ready = the_thread->ready; 487de: 226a 008c moveal %a2@(140),%a1 <== NOT EXECUTED _ISR_Disable( level ); 487e2: 40c3 movew %sr,%d3 <== NOT EXECUTED 487e4: 8083 orl %d3,%d0 <== NOT EXECUTED 487e6: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Is_ready( the_thread->current_state ) ) { 487e8: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 487ec: 6644 bnes 48832 <_Thread_Set_state+0x66> <== NOT EXECUTED _States_Set( state, the_thread->current_state ); _ISR_Enable( level ); return; } the_thread->current_state = state; 487ee: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 487f2: 2229 0008 movel %a1@(8),%d1 <== NOT EXECUTED _States_Set( state, the_thread->current_state ); _ISR_Enable( level ); return; } the_thread->current_state = state; 487f6: 2540 0010 movel %d0,%a2@(16) <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 487fa: b291 cmpl %a1@,%d1 <== NOT EXECUTED 487fc: 6700 009a beqw 48898 <_Thread_Set_state+0xcc> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 48800: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 48802: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED next->previous = previous; previous->next = next; 48806: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 48808: 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 ); 4880c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 48812: 46c3 movew %d3,%sr <== NOT EXECUTED 48814: 8083 orl %d3,%d0 <== NOT EXECUTED 48816: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( the_thread ) ) 48818: b5f9 0005 9d0a cmpal 59d0a <_Thread_Heir>,%a2 <== NOT EXECUTED 4881e: 6730 beqs 48850 <_Thread_Set_state+0x84> <== NOT EXECUTED _Thread_Calculate_heir(); if ( _Thread_Is_executing( the_thread ) ) 48820: b5f9 0005 9d3a cmpal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED 48826: 671c beqs 48844 <_Thread_Set_state+0x78> <== NOT EXECUTED _Context_Switch_necessary = TRUE; _ISR_Enable( level ); 48828: 46c3 movew %d3,%sr <== NOT EXECUTED } 4882a: 4cd7 040c moveml %sp@,%d2-%d3/%a2 <== NOT EXECUTED 4882e: 4e5e unlk %fp <== NOT EXECUTED 48830: 4e75 rts <== NOT EXECUTED Chain_Control *ready; ready = the_thread->ready; _ISR_Disable( level ); if ( !_States_Is_ready( the_thread->current_state ) ) { the_thread->current_state = 48832: 80ae 000c orl %fp@(12),%d0 <== NOT EXECUTED 48836: 2540 0010 movel %d0,%a2@(16) <== NOT EXECUTED _States_Set( state, the_thread->current_state ); _ISR_Enable( level ); 4883a: 46c3 movew %d3,%sr <== NOT EXECUTED if ( _Thread_Is_executing( the_thread ) ) _Context_Switch_necessary = TRUE; _ISR_Enable( level ); } 4883c: 4cd7 040c moveml %sp@,%d2-%d3/%a2 <== NOT EXECUTED 48840: 4e5e unlk %fp <== NOT EXECUTED 48842: 4e75 rts <== NOT EXECUTED if ( _Thread_Is_heir( the_thread ) ) _Thread_Calculate_heir(); if ( _Thread_Is_executing( the_thread ) ) _Context_Switch_necessary = TRUE; 48844: 7201 moveq #1,%d1 <== NOT EXECUTED 48846: 13c1 0005 9d4a moveb %d1,59d4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 4884c: 46c3 movew %d3,%sr <== NOT EXECUTED 4884e: 60da bras 4882a <_Thread_Set_state+0x5e> <== 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 ); 48850: 3039 0005 9d30 movew 59d30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 48856: 4840 swap %d0 <== NOT EXECUTED 48858: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 4885a: 41f9 0005 9da0 lea 59da0 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 48860: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 48866: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 4886a: 4841 swap %d1 <== NOT EXECUTED 4886c: 04c1 ff1 %d1 <== NOT EXECUTED * ready thread. */ RTEMS_INLINE_ROUTINE void _Thread_Calculate_heir( void ) { _Thread_Heir = (Thread_Control *) 4886e: e988 lsll #4,%d0 <== NOT EXECUTED 48870: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 48876: d081 addl %d1,%d0 <== NOT EXECUTED 48878: 2079 0005 9c28 moveal 59c28 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 4887e: 2400 movel %d0,%d2 <== NOT EXECUTED 48880: e588 lsll #2,%d0 <== NOT EXECUTED 48882: e98a lsll #4,%d2 <== NOT EXECUTED 48884: 91c0 subal %d0,%a0 <== NOT EXECUTED 48886: d1c2 addal %d2,%a0 <== NOT EXECUTED 48888: 23d0 0005 9d0a movel %a0@,59d0a <_Thread_Heir> <== NOT EXECUTED _ISR_Flash( level ); if ( _Thread_Is_heir( the_thread ) ) _Thread_Calculate_heir(); if ( _Thread_Is_executing( the_thread ) ) 4888e: b5f9 0005 9d3a cmpal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED 48894: 6692 bnes 48828 <_Thread_Set_state+0x5c> <== NOT EXECUTED 48896: 60ac bras 48844 <_Thread_Set_state+0x78> <== 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; 48898: 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); 4889c: 2009 movel %a1,%d0 <== NOT EXECUTED 4889e: 5880 addql #4,%d0 <== NOT EXECUTED 488a0: 2280 movel %d0,%a1@ <== NOT EXECUTED 488a2: 3210 movew %a0@,%d1 <== NOT EXECUTED 488a4: 302a 009a movew %a2@(154),%d0 <== NOT EXECUTED 488a8: c280 andl %d0,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 488aa: 2349 0008 movel %a1,%a1@(8) <== NOT EXECUTED 488ae: 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; 488b0: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED if ( *the_priority_map->minor == 0 ) 488b4: 4a41 tstw %d1 <== NOT EXECUTED 488b6: 6600 ff54 bnew 4880c <_Thread_Set_state+0x40> <== NOT EXECUTED _Priority_Major_bit_map &= the_priority_map->block_major; 488ba: 3039 0005 9d30 movew 59d30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 488c0: 322a 0098 movew %a2@(152),%d1 <== NOT EXECUTED 488c4: c081 andl %d1,%d0 <== NOT EXECUTED 488c6: 33c0 0005 9d30 movew %d0,59d30 <_Priority_Major_bit_map> <== NOT EXECUTED _Priority_Remove_from_bit_map( &the_thread->Priority_map ); } else _Chain_Extract_unprotected( &the_thread->Object.Node ); _ISR_Flash( level ); 488cc: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 488d2: 46c3 movew %d3,%sr <== NOT EXECUTED 488d4: 8083 orl %d3,%d0 <== NOT EXECUTED 488d6: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( the_thread ) ) 488d8: b5f9 0005 9d0a cmpal 59d0a <_Thread_Heir>,%a2 <== NOT EXECUTED 488de: 6600 ff40 bnew 48820 <_Thread_Set_state+0x54> <== NOT EXECUTED 488e2: 6000 ff6c braw 48850 <_Thread_Set_state+0x84> <== NOT EXECUTED ... 000488e8 <_Thread_Set_transient>: */ void _Thread_Set_transient( Thread_Control *the_thread ) { 488e8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 488ec: 2f0a movel %a2,%sp@- <== NOT EXECUTED 488ee: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 488f2: 2f02 movel %d2,%sp@- <== NOT EXECUTED ISR_Level level; uint32_t old_state; Chain_Control *ready; ready = the_thread->ready; _ISR_Disable( level ); 488f4: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED { ISR_Level level; uint32_t old_state; Chain_Control *ready; ready = the_thread->ready; 488fa: 226a 008c moveal %a2@(140),%a1 <== NOT EXECUTED _ISR_Disable( level ); 488fe: 40c2 movew %sr,%d2 <== NOT EXECUTED 48900: 8082 orl %d2,%d0 <== NOT EXECUTED 48902: 46c0 movew %d0,%sr <== NOT EXECUTED old_state = the_thread->current_state; 48904: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED the_thread->current_state = _States_Set( STATES_TRANSIENT, old_state ); 48908: 7204 moveq #4,%d1 <== NOT EXECUTED 4890a: 8280 orl %d0,%d1 <== NOT EXECUTED 4890c: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED if ( _States_Is_ready( old_state ) ) { 48910: 4a80 tstl %d0 <== NOT EXECUTED 48912: 6614 bnes 48928 <_Thread_Set_transient+0x40> <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 48914: 2029 0008 movel %a1@(8),%d0 <== NOT EXECUTED 48918: b091 cmpl %a1@,%d0 <== NOT EXECUTED 4891a: 6716 beqs 48932 <_Thread_Set_transient+0x4a> <== NOT EXECUTED { Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; 4891c: 226a 0004 moveal %a2@(4),%a1 <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 48920: 2052 moveal %a2@,%a0 <== NOT EXECUTED previous = the_node->previous; next->previous = previous; previous->next = next; 48922: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 48924: 2149 0004 movel %a1,%a0@(4) <== NOT EXECUTED } else _Chain_Extract_unprotected( &the_thread->Object.Node ); } _ISR_Enable( level ); 48928: 46c2 movew %d2,%sr <== NOT EXECUTED } 4892a: 241f movel %sp@+,%d2 <== NOT EXECUTED 4892c: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4892e: 4e5e unlk %fp <== NOT EXECUTED 48930: 4e75 rts <== 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; 48932: 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); 48936: 2209 movel %a1,%d1 <== NOT EXECUTED 48938: 5881 addql #4,%d1 <== NOT EXECUTED 4893a: 2281 movel %d1,%a1@ <== NOT EXECUTED 4893c: 3210 movew %a0@,%d1 <== NOT EXECUTED 4893e: 302a 009a movew %a2@(154),%d0 <== NOT EXECUTED 48942: c280 andl %d0,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 48944: 2349 0008 movel %a1,%a1@(8) <== NOT EXECUTED 48948: 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; 4894a: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED if ( *the_priority_map->minor == 0 ) 4894e: 4a41 tstw %d1 <== NOT EXECUTED 48950: 66d6 bnes 48928 <_Thread_Set_transient+0x40> <== NOT EXECUTED _Priority_Major_bit_map &= the_priority_map->block_major; 48952: 322a 0098 movew %a2@(152),%d1 <== NOT EXECUTED 48956: 3039 0005 9d30 movew 59d30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 4895c: c081 andl %d1,%d0 <== NOT EXECUTED 4895e: 33c0 0005 9d30 movew %d0,59d30 <_Priority_Major_bit_map> <== NOT EXECUTED } else _Chain_Extract_unprotected( &the_thread->Object.Node ); } _ISR_Enable( level ); 48964: 46c2 movew %d2,%sr <== NOT EXECUTED } 48966: 241f movel %sp@+,%d2 <== NOT EXECUTED 48968: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4896a: 4e5e unlk %fp <== NOT EXECUTED 4896c: 4e75 rts <== NOT EXECUTED ... 00048970 <_Thread_Stack_Allocate>: size_t _Thread_Stack_Allocate( Thread_Control *the_thread, size_t stack_size ) { 48970: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48974: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48976: 2039 0005 80ee movel 580ee ,%d0 <== NOT EXECUTED 4897c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 48980: b082 cmpl %d2,%d0 <== NOT EXECUTED 48982: 6302 blss 48986 <_Thread_Stack_Allocate+0x16> <== NOT EXECUTED 48984: 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 ) { 48986: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED 4898c: 2068 0020 moveal %a0@(32),%a0 <== NOT EXECUTED 48990: 4a88 tstl %a0 <== NOT EXECUTED 48992: 6720 beqs 489b4 <_Thread_Stack_Allocate+0x44> <== NOT EXECUTED stack_addr = (*_Configuration_Table->stack_allocate_hook)( the_stack_size ); 48994: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48996: 4e90 jsr %a0@ <== NOT EXECUTED } if ( !stack_addr ) the_stack_size = 0; the_thread->Start.stack = stack_addr; 48998: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED the_stack_size = _Stack_Adjust_size( the_stack_size ); stack_addr = _Workspace_Allocate( the_stack_size ); } if ( !stack_addr ) 4899c: 4a80 tstl %d0 <== NOT EXECUTED 4899e: 56c1 sne %d1 <== NOT EXECUTED the_stack_size = 0; the_thread->Start.stack = stack_addr; 489a0: 2140 00cc movel %d0,%a0@(204) <== NOT EXECUTED return the_stack_size; } 489a4: 2002 movel %d2,%d0 <== NOT EXECUTED 489a6: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED * the RTEMS workspace allocate. This is so the stack free * routine can call the correct deallocation routine. */ if ( _Configuration_Table->stack_allocate_hook ) { stack_addr = (*_Configuration_Table->stack_allocate_hook)( the_stack_size ); 489aa: 588f addql #4,%sp <== NOT EXECUTED the_stack_size = _Stack_Adjust_size( the_stack_size ); stack_addr = _Workspace_Allocate( the_stack_size ); } if ( !stack_addr ) 489ac: 49c1 extbl %d1 <== NOT EXECUTED the_stack_size = 0; the_thread->Start.stack = stack_addr; return the_stack_size; } 489ae: 4e5e unlk %fp <== NOT EXECUTED 489b0: c081 andl %d1,%d0 <== NOT EXECUTED 489b2: 4e75 rts <== 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 ); 489b4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 489b6: 4eb9 0004 92a4 jsr 492a4 <_Workspace_Allocate> <== NOT EXECUTED } if ( !stack_addr ) the_stack_size = 0; the_thread->Start.stack = stack_addr; 489bc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED the_stack_size = _Stack_Adjust_size( the_stack_size ); stack_addr = _Workspace_Allocate( the_stack_size ); } if ( !stack_addr ) 489c0: 4a80 tstl %d0 <== NOT EXECUTED 489c2: 56c1 sne %d1 <== NOT EXECUTED the_stack_size = 0; the_thread->Start.stack = stack_addr; 489c4: 2140 00cc movel %d0,%a0@(204) <== NOT EXECUTED return the_stack_size; } 489c8: 2002 movel %d2,%d0 <== NOT EXECUTED 489ca: 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 ); 489ce: 588f addql #4,%sp <== NOT EXECUTED } if ( !stack_addr ) 489d0: 49c1 extbl %d1 <== NOT EXECUTED the_stack_size = 0; the_thread->Start.stack = stack_addr; return the_stack_size; } 489d2: 4e5e unlk %fp <== NOT EXECUTED 489d4: c081 andl %d1,%d0 <== NOT EXECUTED 489d6: 4e75 rts 000489d8 <_Thread_Stack_Free>: */ void _Thread_Stack_Free( Thread_Control *the_thread ) { 489d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 489dc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 489de: 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 ) 489e2: 4a2a 00be tstb %a2@(190) <== NOT EXECUTED 489e6: 671a beqs 48a02 <_Thread_Stack_Free+0x2a> <== 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 ) 489e8: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED 489ee: 2028 0024 movel %a0@(36),%d0 <== NOT EXECUTED 489f2: 6714 beqs 48a08 <_Thread_Stack_Free+0x30> <== NOT EXECUTED (*_Configuration_Table->stack_free_hook)( 489f4: 2240 moveal %d0,%a1 <== NOT EXECUTED 489f6: 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 ); } 489fc: 245f moveal %sp@+,%a2 <== NOT EXECUTED 489fe: 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)( 48a00: 4ed1 jmp %a1@ <== NOT EXECUTED the_thread->Start.Initial_stack.area ); else _Workspace_Free( the_thread->Start.Initial_stack.area ); } 48a02: 245f moveal %sp@+,%a2 <== NOT EXECUTED 48a04: 4e5e unlk %fp <== NOT EXECUTED 48a06: 4e75 rts <== 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 ); 48a08: 2d6a 00c4 0008 movel %a2@(196),%fp@(8) <== NOT EXECUTED } 48a0e: 245f moveal %sp@+,%a2 <== NOT EXECUTED 48a10: 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 ); 48a12: 4ef9 0004 928c jmp 4928c <_Workspace_Free> <== NOT EXECUTED 00048a6c <_Thread_Start>: Thread_Start_types the_prototype, void *entry_point, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { 48a6c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48a70: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48a72: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( _States_Is_dormant( the_thread->current_state ) ) { 48a76: 7001 moveq #1,%d0 <== NOT EXECUTED 48a78: c0aa 0010 andl %a2@(16),%d0 <== NOT EXECUTED 48a7c: 6608 bnes 48a86 <_Thread_Start+0x1a> <== NOT EXECUTED return true; } return false; } 48a7e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48a82: 4e5e unlk %fp <== NOT EXECUTED 48a84: 4e75 rts <== 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 ); 48a86: 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; 48a88: 256e 0010 009c movel %fp@(16),%a2@(156) <== NOT EXECUTED the_thread->Start.prototype = the_prototype; 48a8e: 256e 000c 00a0 movel %fp@(12),%a2@(160) <== NOT EXECUTED the_thread->Start.pointer_argument = pointer_argument; 48a94: 256e 0014 00a4 movel %fp@(20),%a2@(164) <== NOT EXECUTED the_thread->Start.numeric_argument = numeric_argument; 48a9a: 256e 0018 00a8 movel %fp@(24),%a2@(168) <== NOT EXECUTED _Thread_Load_environment( the_thread ); 48aa0: 4eb9 0004 c0a4 jsr 4c0a4 <_Thread_Load_environment> <== NOT EXECUTED _Thread_Ready( the_thread ); 48aa6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48aa8: 4eb9 0004 c390 jsr 4c390 <_Thread_Ready> <== NOT EXECUTED _User_extensions_Thread_start( the_thread ); 48aae: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48ab0: 4eb9 0004 8f9c jsr 48f9c <_User_extensions_Thread_start> <== NOT EXECUTED return true; } return false; } 48ab6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED _Thread_Load_environment( the_thread ); _Thread_Ready( the_thread ); _User_extensions_Thread_start( the_thread ); 48aba: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return true; } return false; } 48ac0: 4e5e unlk %fp <== NOT EXECUTED _Thread_Load_environment( the_thread ); _Thread_Ready( the_thread ); _User_extensions_Thread_start( the_thread ); 48ac2: 7001 moveq #1,%d0 <== NOT EXECUTED return true; } return false; } 48ac4: 4e75 rts <== NOT EXECUTED ... 00048a18 <_Thread_Start_multitasking>: 48a18: 7003 moveq #3,%d0 <== NOT EXECUTED _System_state_Set( SYSTEM_STATE_UP ); _Context_Switch_necessary = FALSE; _Thread_Executing = _Thread_Heir; 48a1a: 2079 0005 9d0a moveal 59d0a <_Thread_Heir>,%a0 <== NOT EXECUTED 48a20: 23c0 0005 9e0e movel %d0,59e0e <_System_state_Current> <== NOT EXECUTED * the system is shut down. */ _System_state_Set( SYSTEM_STATE_UP ); _Context_Switch_necessary = FALSE; 48a26: 4200 clrb %d0 <== NOT EXECUTED * ready chain * select heir */ void _Thread_Start_multitasking( void ) { 48a28: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED * the system is shut down. */ _System_state_Set( SYSTEM_STATE_UP ); _Context_Switch_necessary = FALSE; 48a2c: 13c0 0005 9d4a moveb %d0,59d4a <_Context_Switch_necessary> <== NOT EXECUTED _Thread_Executing = _Thread_Heir; 48a32: 23c8 0005 9d3a movel %a0,59d3a <_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 ) 48a38: 4aa8 0104 tstl %a0@(260) <== NOT EXECUTED 48a3c: 670c beqs 48a4a <_Thread_Start_multitasking+0x32> <== NOT EXECUTED _Context_Restore_fp( &_Thread_Heir->fp_context ); 48a3e: 4868 0104 pea %a0@(260) <== NOT EXECUTED 48a42: 4eb9 0004 9384 jsr 49384 <_CPU_Context_restore_fp> <== NOT EXECUTED 48a48: 588f addql #4,%sp <== NOT EXECUTED #endif _Context_Switch( &_Thread_BSP_context, &_Thread_Heir->Registers ); 48a4a: 2039 0005 9d0a movel 59d0a <_Thread_Heir>,%d0 <== NOT EXECUTED 48a50: 0680 0000 00d0 addil #208,%d0 <== NOT EXECUTED 48a56: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48a58: 4879 0005 9c48 pea 59c48 <_Thread_BSP_context> <== NOT EXECUTED 48a5e: 4eb9 0004 9368 jsr 49368 <_CPU_Context_switch> <== NOT EXECUTED 48a64: 508f addql #8,%sp <== NOT EXECUTED } 48a66: 4e5e unlk %fp <== NOT EXECUTED 48a68: 4e75 rts <== NOT EXECUTED ... 00048ac8 <_Thread_Suspend>: */ void _Thread_Suspend( Thread_Control *the_thread ) { 48ac8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 48acc: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 48ad0: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; Chain_Control *ready; ready = the_thread->ready; _ISR_Disable( level ); 48ad4: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED ) { ISR_Level level; Chain_Control *ready; ready = the_thread->ready; 48ada: 226a 008c moveal %a2@(140),%a1 <== NOT EXECUTED _ISR_Disable( level ); 48ade: 40c3 movew %sr,%d3 <== NOT EXECUTED 48ae0: 8083 orl %d3,%d0 <== NOT EXECUTED 48ae2: 46c0 movew %d0,%sr <== NOT EXECUTED the_thread->suspend_count++; 48ae4: 52aa 0070 addql #1,%a2@(112) <== NOT EXECUTED if ( !_States_Is_ready( the_thread->current_state ) ) { 48ae8: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 48aec: 6642 bnes 48b30 <_Thread_Suspend+0x68> <== NOT EXECUTED return; } the_thread->current_state = STATES_SUSPENDED; if ( _Chain_Has_only_one_node( ready ) ) { 48aee: 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; 48af2: 7002 moveq #2,%d0 <== NOT EXECUTED 48af4: 2540 0010 movel %d0,%a2@(16) <== NOT EXECUTED if ( _Chain_Has_only_one_node( ready ) ) { 48af8: b291 cmpl %a1@,%d1 <== NOT EXECUTED 48afa: 6700 009a beqw 48b96 <_Thread_Suspend+0xce> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 48afe: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 48b00: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED next->previous = previous; previous->next = next; 48b04: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 48b06: 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 ); 48b0a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 48b10: 46c3 movew %d3,%sr <== NOT EXECUTED 48b12: 8083 orl %d3,%d0 <== NOT EXECUTED 48b14: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( the_thread ) ) 48b16: b5f9 0005 9d0a cmpal 59d0a <_Thread_Heir>,%a2 <== NOT EXECUTED 48b1c: 6730 beqs 48b4e <_Thread_Suspend+0x86> <== NOT EXECUTED _Thread_Calculate_heir(); if ( _Thread_Is_executing( the_thread ) ) 48b1e: b5f9 0005 9d3a cmpal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED 48b24: 671c beqs 48b42 <_Thread_Suspend+0x7a> <== NOT EXECUTED _Context_Switch_necessary = TRUE; _ISR_Enable( level ); 48b26: 46c3 movew %d3,%sr <== NOT EXECUTED } 48b28: 4cd7 040c moveml %sp@,%d2-%d3/%a2 <== NOT EXECUTED 48b2c: 4e5e unlk %fp <== NOT EXECUTED 48b2e: 4e75 rts <== NOT EXECUTED ready = the_thread->ready; _ISR_Disable( level ); the_thread->suspend_count++; if ( !_States_Is_ready( the_thread->current_state ) ) { the_thread->current_state = 48b30: 7202 moveq #2,%d1 <== NOT EXECUTED 48b32: 8280 orl %d0,%d1 <== NOT EXECUTED 48b34: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED _States_Set( STATES_SUSPENDED, the_thread->current_state ); _ISR_Enable( level ); 48b38: 46c3 movew %d3,%sr <== NOT EXECUTED if ( _Thread_Is_executing( the_thread ) ) _Context_Switch_necessary = TRUE; _ISR_Enable( level ); } 48b3a: 4cd7 040c moveml %sp@,%d2-%d3/%a2 <== NOT EXECUTED 48b3e: 4e5e unlk %fp <== NOT EXECUTED 48b40: 4e75 rts <== NOT EXECUTED if ( _Thread_Is_heir( the_thread ) ) _Thread_Calculate_heir(); if ( _Thread_Is_executing( the_thread ) ) _Context_Switch_necessary = TRUE; 48b42: 7201 moveq #1,%d1 <== NOT EXECUTED 48b44: 13c1 0005 9d4a moveb %d1,59d4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 48b4a: 46c3 movew %d3,%sr <== NOT EXECUTED 48b4c: 60da bras 48b28 <_Thread_Suspend+0x60> <== 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 ); 48b4e: 3039 0005 9d30 movew 59d30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 48b54: 4840 swap %d0 <== NOT EXECUTED 48b56: 04c0 ff1 %d0 <== NOT EXECUTED _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor ); 48b58: 41f9 0005 9da0 lea 59da0 <_Priority_Bit_map>,%a0 <== NOT EXECUTED 48b5e: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 48b64: 3230 0a00 movew %a0@(00000000,%d0:l:2),%d1 <== NOT EXECUTED 48b68: 4841 swap %d1 <== NOT EXECUTED 48b6a: 04c1 ff1 %d1 <== NOT EXECUTED 48b6c: e988 lsll #4,%d0 <== NOT EXECUTED 48b6e: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 48b74: d081 addl %d1,%d0 <== NOT EXECUTED 48b76: 2079 0005 9c28 moveal 59c28 <_Thread_Ready_chain>,%a0 <== NOT EXECUTED 48b7c: 2400 movel %d0,%d2 <== NOT EXECUTED 48b7e: e588 lsll #2,%d0 <== NOT EXECUTED 48b80: e98a lsll #4,%d2 <== NOT EXECUTED 48b82: 91c0 subal %d0,%a0 <== NOT EXECUTED 48b84: d1c2 addal %d2,%a0 <== NOT EXECUTED 48b86: 23d0 0005 9d0a movel %a0@,59d0a <_Thread_Heir> <== NOT EXECUTED _ISR_Flash( level ); if ( _Thread_Is_heir( the_thread ) ) _Thread_Calculate_heir(); if ( _Thread_Is_executing( the_thread ) ) 48b8c: b5f9 0005 9d3a cmpal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED 48b92: 6692 bnes 48b26 <_Thread_Suspend+0x5e> <== NOT EXECUTED 48b94: 60ac bras 48b42 <_Thread_Suspend+0x7a> <== 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; 48b96: 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); 48b9a: 2009 movel %a1,%d0 <== NOT EXECUTED 48b9c: 5880 addql #4,%d0 <== NOT EXECUTED 48b9e: 2280 movel %d0,%a1@ <== NOT EXECUTED 48ba0: 3210 movew %a0@,%d1 <== NOT EXECUTED 48ba2: 302a 009a movew %a2@(154),%d0 <== NOT EXECUTED 48ba6: c280 andl %d0,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 48ba8: 2349 0008 movel %a1,%a1@(8) <== NOT EXECUTED 48bac: 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; 48bae: 42a9 0004 clrl %a1@(4) <== NOT EXECUTED if ( *the_priority_map->minor == 0 ) 48bb2: 4a41 tstw %d1 <== NOT EXECUTED 48bb4: 6600 ff54 bnew 48b0a <_Thread_Suspend+0x42> <== NOT EXECUTED _Priority_Major_bit_map &= the_priority_map->block_major; 48bb8: 3039 0005 9d30 movew 59d30 <_Priority_Major_bit_map>,%d0 <== NOT EXECUTED 48bbe: 322a 0098 movew %a2@(152),%d1 <== NOT EXECUTED 48bc2: c081 andl %d1,%d0 <== NOT EXECUTED 48bc4: 33c0 0005 9d30 movew %d0,59d30 <_Priority_Major_bit_map> <== NOT EXECUTED _Priority_Remove_from_bit_map( &the_thread->Priority_map ); } else _Chain_Extract_unprotected( &the_thread->Object.Node ); _ISR_Flash( level ); 48bca: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 48bd0: 46c3 movew %d3,%sr <== NOT EXECUTED 48bd2: 8083 orl %d3,%d0 <== NOT EXECUTED 48bd4: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( the_thread ) ) 48bd6: b5f9 0005 9d0a cmpal 59d0a <_Thread_Heir>,%a2 <== NOT EXECUTED 48bdc: 6600 ff40 bnew 48b1e <_Thread_Suspend+0x56> <== NOT EXECUTED 48be0: 6000 ff6c braw 48b4e <_Thread_Suspend+0x86> <== NOT EXECUTED 00048be4 <_Thread_Tickle_timeslice>: * * Output parameters: NONE */ void _Thread_Tickle_timeslice( void ) { 48be4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48be8: 2f0a movel %a2,%sp@- <== NOT EXECUTED Thread_Control *executing; executing = _Thread_Executing; 48bea: 2479 0005 9d3a moveal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED /* * If the thread is not preemptible or is not ready, then * just return. */ if ( !executing->is_preemptible ) 48bf0: 4a2a 0076 tstb %a2@(118) <== NOT EXECUTED 48bf4: 6720 beqs 48c16 <_Thread_Tickle_timeslice+0x32> <== NOT EXECUTED return; if ( !_States_Is_ready( executing->current_state ) ) 48bf6: 4aaa 0010 tstl %a2@(16) <== NOT EXECUTED 48bfa: 661a bnes 48c16 <_Thread_Tickle_timeslice+0x32> <== NOT EXECUTED /* * The cpu budget algorithm determines what happens next. */ switch ( executing->budget_algorithm ) { 48bfc: 202a 007c movel %a2@(124),%d0 <== NOT EXECUTED 48c00: 7201 moveq #1,%d1 <== NOT EXECUTED 48c02: b280 cmpl %d0,%d1 <== NOT EXECUTED 48c04: 6210 bhis 48c16 <_Thread_Tickle_timeslice+0x32> <== NOT EXECUTED 48c06: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 48c0a: b280 cmpl %d0,%d1 <== NOT EXECUTED 48c0c: 642e bccs 48c3c <_Thread_Tickle_timeslice+0x58> <== NOT EXECUTED 48c0e: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 48c12: b280 cmpl %d0,%d1 <== NOT EXECUTED 48c14: 6708 beqs 48c1e <_Thread_Tickle_timeslice+0x3a> <== NOT EXECUTED case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT: if ( --executing->cpu_time_budget == 0 ) (*executing->budget_callout)( executing ); break; } } 48c16: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48c1a: 4e5e unlk %fp <== NOT EXECUTED 48c1c: 4e75 rts <== NOT EXECUTED executing->cpu_time_budget = _Thread_Ticks_per_timeslice; } break; case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT: if ( --executing->cpu_time_budget == 0 ) 48c1e: 202a 0078 movel %a2@(120),%d0 <== NOT EXECUTED 48c22: 5380 subql #1,%d0 <== NOT EXECUTED 48c24: 2540 0078 movel %d0,%a2@(120) <== NOT EXECUTED 48c28: 66ec bnes 48c16 <_Thread_Tickle_timeslice+0x32> <== NOT EXECUTED (*executing->budget_callout)( executing ); 48c2a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48c2c: 206a 0080 moveal %a2@(128),%a0 <== NOT EXECUTED 48c30: 4e90 jsr %a0@ <== NOT EXECUTED break; } } 48c32: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED } break; case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT: if ( --executing->cpu_time_budget == 0 ) (*executing->budget_callout)( executing ); 48c36: 588f addql #4,%sp <== NOT EXECUTED break; } } 48c38: 4e5e unlk %fp <== NOT EXECUTED 48c3a: 4e75 rts <== 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 ) { 48c3c: 202a 0078 movel %a2@(120),%d0 <== NOT EXECUTED 48c40: 5380 subql #1,%d0 <== NOT EXECUTED 48c42: 2540 0078 movel %d0,%a2@(120) <== NOT EXECUTED 48c46: 6ece bgts 48c16 <_Thread_Tickle_timeslice+0x32> <== NOT EXECUTED _Thread_Reset_timeslice(); 48c48: 4eb9 0004 c450 jsr 4c450 <_Thread_Reset_timeslice> <== NOT EXECUTED executing->cpu_time_budget = _Thread_Ticks_per_timeslice; 48c4e: 41f9 0005 9c2c lea 59c2c <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED 48c54: 2550 0078 movel %a0@,%a2@(120) <== NOT EXECUTED case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT: if ( --executing->cpu_time_budget == 0 ) (*executing->budget_callout)( executing ); break; } } 48c58: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48c5c: 4e5e unlk %fp <== NOT EXECUTED 48c5e: 4e75 rts 00048c60 <_Thread_Yield_processor>: * ready chain * select heir */ void _Thread_Yield_processor( void ) { 48c60: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48c64: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; 48c68: 2679 0005 9d3a moveal 59d3a <_Thread_Executing>,%a3 <== NOT EXECUTED ready = executing->ready; _ISR_Disable( level ); 48c6e: 243c 0000 0700 movel #1792,%d2 <== NOT EXECUTED ISR_Level level; Thread_Control *executing; Chain_Control *ready; executing = _Thread_Executing; ready = executing->ready; 48c74: 286b 008c moveal %a3@(140),%a4 <== NOT EXECUTED _ISR_Disable( level ); 48c78: 2002 movel %d2,%d0 <== NOT EXECUTED 48c7a: 40c1 movew %sr,%d1 <== NOT EXECUTED 48c7c: 8081 orl %d1,%d0 <== NOT EXECUTED 48c7e: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_Chain_Has_only_one_node( ready ) ) { 48c80: 202c 0008 movel %a4@(8),%d0 <== NOT EXECUTED 48c84: b094 cmpl %a4@,%d0 <== NOT EXECUTED 48c86: 6752 beqs 48cda <_Thread_Yield_processor+0x7a> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 48c88: 2053 moveal %a3@,%a0 <== NOT EXECUTED previous = the_node->previous; 48c8a: 226b 0004 moveal %a3@(4),%a1 <== NOT EXECUTED next->previous = previous; previous->next = next; 48c8e: 2288 movel %a0,%a1@ <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 48c90: 200c movel %a4,%d0 <== NOT EXECUTED 48c92: 5880 addql #4,%d0 <== NOT EXECUTED 48c94: 2680 movel %d0,%a3@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 48c96: 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; 48c9a: 246c 0008 moveal %a4@(8),%a2 <== NOT EXECUTED the_chain->last = the_node; 48c9e: 294b 0008 movel %a3,%a4@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 48ca2: 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; 48ca6: 248b movel %a3,%a2@ <== NOT EXECUTED _Chain_Extract_unprotected( &executing->Object.Node ); _Chain_Append_unprotected( ready, &executing->Object.Node ); _ISR_Flash( level ); 48ca8: 2002 movel %d2,%d0 <== NOT EXECUTED 48caa: 46c1 movew %d1,%sr <== NOT EXECUTED 48cac: 8081 orl %d1,%d0 <== NOT EXECUTED 48cae: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _Thread_Is_heir( executing ) ) 48cb0: b7f9 0005 9d0a cmpal 59d0a <_Thread_Heir>,%a3 <== NOT EXECUTED 48cb6: 6712 beqs 48cca <_Thread_Yield_processor+0x6a> <== NOT EXECUTED _Thread_Heir = (Thread_Control *) ready->first; _Context_Switch_necessary = TRUE; } else if ( !_Thread_Is_heir( executing ) ) _Context_Switch_necessary = TRUE; 48cb8: 7001 moveq #1,%d0 <== NOT EXECUTED 48cba: 13c0 0005 9d4a moveb %d0,59d4a <_Context_Switch_necessary> <== NOT EXECUTED _ISR_Enable( level ); 48cc0: 46c1 movew %d1,%sr <== NOT EXECUTED } 48cc2: 4cd7 1c04 moveml %sp@,%d2/%a2-%a4 <== NOT EXECUTED 48cc6: 4e5e unlk %fp <== NOT EXECUTED 48cc8: 4e75 rts <== NOT EXECUTED _Chain_Append_unprotected( ready, &executing->Object.Node ); _ISR_Flash( level ); if ( _Thread_Is_heir( executing ) ) _Thread_Heir = (Thread_Control *) ready->first; 48cca: 23d4 0005 9d0a movel %a4@,59d0a <_Thread_Heir> <== NOT EXECUTED _Context_Switch_necessary = TRUE; } else if ( !_Thread_Is_heir( executing ) ) _Context_Switch_necessary = TRUE; 48cd0: 7001 moveq #1,%d0 <== NOT EXECUTED 48cd2: 13c0 0005 9d4a moveb %d0,59d4a <_Context_Switch_necessary> <== NOT EXECUTED 48cd8: 60e6 bras 48cc0 <_Thread_Yield_processor+0x60> <== NOT EXECUTED if ( _Thread_Is_heir( executing ) ) _Thread_Heir = (Thread_Control *) ready->first; _Context_Switch_necessary = TRUE; } else if ( !_Thread_Is_heir( executing ) ) 48cda: b7f9 0005 9d0a cmpal 59d0a <_Thread_Heir>,%a3 <== NOT EXECUTED 48ce0: 67de beqs 48cc0 <_Thread_Yield_processor+0x60> <== NOT EXECUTED _Context_Switch_necessary = TRUE; 48ce2: 7001 moveq #1,%d0 <== NOT EXECUTED 48ce4: 13c0 0005 9d4a moveb %d0,59d4a <_Context_Switch_necessary> <== NOT EXECUTED 48cea: 60d4 bras 48cc0 <_Thread_Yield_processor+0x60> <== NOT EXECUTED 00047878 <_Thread_blocking_operation_Cancel>: void _Thread_blocking_operation_Cancel( Thread_blocking_operation_States sync_state, Thread_Control *the_thread, ISR_Level level ) { 47878: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4787c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4787e: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 47882: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED #endif /* * The thread is not waiting on anything after this completes. */ the_thread->Wait.queue = NULL; 47886: 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 ) ) { 4788a: 7202 moveq #2,%d1 <== NOT EXECUTED 4788c: b2aa 0050 cmpl %a2@(80),%d1 <== NOT EXECUTED 47890: 671c beqs 478ae <_Thread_blocking_operation_Cancel+0x36> <== NOT EXECUTED _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); (void) _Watchdog_Remove( &the_thread->Timer ); } else _ISR_Enable( level ); 47892: 46c0 movew %d0,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 47894: 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 } 47898: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4789c: 203c 1003 fff8 movel #268697592,%d0 <== NOT EXECUTED 478a2: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 478a6: 4e5e unlk %fp <== NOT EXECUTED 478a8: 4ef9 0004 7a30 jmp 47a30 <_Thread_Clear_state> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 478ae: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 478b2: 2541 0050 movel %d1,%a2@(80) <== 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 ) ) { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 478b6: 46c0 movew %d0,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 478b8: 486a 0048 pea %a2@(72) <== NOT EXECUTED 478bc: 4eb9 0004 9168 jsr 49168 <_Watchdog_Remove> <== NOT EXECUTED 478c2: 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 } 478c6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 478ca: 203c 1003 fff8 movel #268697592,%d0 <== NOT EXECUTED * But better safe than sorry when it comes to critical sections. */ if ( _Watchdog_Is_active( &the_thread->Timer ) ) { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); (void) _Watchdog_Remove( &the_thread->Timer ); 478d0: 588f addql #4,%sp <== NOT EXECUTED 478d2: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( !_Objects_Is_local_id( the_thread->Object.id ) ) _Thread_MP_Free_proxy( the_thread ); #endif } 478d6: 4e5e unlk %fp <== NOT EXECUTED 478d8: 4ef9 0004 7a30 jmp 47a30 <_Thread_Clear_state> <== NOT EXECUTED ... 00048204 <_Thread_queue_Dequeue>: */ Thread_Control *_Thread_queue_Dequeue( Thread_queue_Control *the_thread_queue ) { 48204: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 48208: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4820c: 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 ) 48210: 41f9 0004 8270 lea 48270 <_Thread_queue_Dequeue_priority>,%a0 <== NOT EXECUTED 48216: 7001 moveq #1,%d0 <== NOT EXECUTED 48218: b0aa 0034 cmpl %a2@(52),%d0 <== NOT EXECUTED 4821c: 6706 beqs 48224 <_Thread_queue_Dequeue+0x20> <== NOT EXECUTED 4821e: 41f9 0004 c128 lea 4c128 <_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 ); 48224: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48226: 4e90 jsr %a0@ <== NOT EXECUTED 48228: 2200 movel %d0,%d1 <== NOT EXECUTED _ISR_Disable( level ); 4822a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 48230: 40c2 movew %sr,%d2 <== NOT EXECUTED 48232: 8082 orl %d2,%d0 <== NOT EXECUTED 48234: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !the_thread ) { 48236: 588f addql #4,%sp <== NOT EXECUTED 48238: 4a81 tstl %d1 <== NOT EXECUTED 4823a: 670e beqs 4824a <_Thread_queue_Dequeue+0x46> <== NOT EXECUTED (sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ) { the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SATISFIED; the_thread = _Thread_Executing; } } _ISR_Enable( level ); 4823c: 46c2 movew %d2,%sr <== NOT EXECUTED return the_thread; } 4823e: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 48244: 4e5e unlk %fp <== NOT EXECUTED 48246: 2001 movel %d1,%d0 <== NOT EXECUTED 48248: 4e75 rts <== NOT EXECUTED the_thread = (*dequeue_p)( the_thread_queue ); _ISR_Disable( level ); if ( !the_thread ) { sync_state = the_thread_queue->sync_state; if ( (sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) || 4824a: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 4824e: 7601 moveq #1,%d3 <== NOT EXECUTED 48250: 5380 subql #1,%d0 <== NOT EXECUTED 48252: b680 cmpl %d0,%d3 <== NOT EXECUTED 48254: 65e6 bcss 4823c <_Thread_queue_Dequeue+0x38> <== NOT EXECUTED (sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ) { the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SATISFIED; 48256: 7003 moveq #3,%d0 <== NOT EXECUTED the_thread = _Thread_Executing; 48258: 2239 0005 9d3a movel 59d3a <_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; 4825e: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED the_thread = _Thread_Executing; } } _ISR_Enable( level ); 48262: 46c2 movew %d2,%sr <== NOT EXECUTED return the_thread; } 48264: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4826a: 4e5e unlk %fp <== NOT EXECUTED 4826c: 2001 movel %d1,%d0 <== NOT EXECUTED 4826e: 4e75 rts 0004c128 <_Thread_queue_Dequeue_fifo>: */ Thread_Control *_Thread_queue_Dequeue_fifo( Thread_queue_Control *the_thread_queue ) { 4c128: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c12c: 2f0b movel %a3,%sp@- <== NOT EXECUTED ISR_Level level; Thread_Control *the_thread; _ISR_Disable( level ); 4c12e: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Thread_Control *_Thread_queue_Dequeue_fifo( Thread_queue_Control *the_thread_queue ) { 4c134: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4c136: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED ISR_Level level; Thread_Control *the_thread; _ISR_Disable( level ); 4c13a: 40c1 movew %sr,%d1 <== NOT EXECUTED 4c13c: 8081 orl %d1,%d0 <== NOT EXECUTED 4c13e: 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)); 4c140: 2049 moveal %a1,%a0 <== NOT EXECUTED 4c142: 2458 moveal %a0@+,%a2 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) { 4c144: b1ca cmpal %a2,%a0 <== NOT EXECUTED 4c146: 676a beqs 4c1b2 <_Thread_queue_Dequeue_fifo+0x8a> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 4c148: 2052 moveal %a2@,%a0 <== NOT EXECUTED the_chain->first = new_first; 4c14a: 2288 movel %a0,%a1@ <== NOT EXECUTED the_thread = (Thread_Control *) 4c14c: 264a moveal %a2,%a3 <== NOT EXECUTED _Chain_Get_first_unprotected( &the_thread_queue->Queues.Fifo ); the_thread->Wait.queue = NULL; if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4c14e: 7002 moveq #2,%d0 <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 4c150: 2149 0004 movel %a1,%a0@(4) <== 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; 4c154: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4c158: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4c15c: 6720 beqs 4c17e <_Thread_queue_Dequeue_fifo+0x56> <== NOT EXECUTED _ISR_Enable( level ); 4c15e: 46c1 movew %d1,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 4c160: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 4c166: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4c168: 4eb9 0004 7a30 jsr 47a30 <_Thread_Clear_state> <== NOT EXECUTED return the_thread; } _ISR_Enable( level ); return NULL; } 4c16e: 200b movel %a3,%d0 <== NOT EXECUTED 4c170: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4c174: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4c178: 508f addql #8,%sp <== NOT EXECUTED 4c17a: 4e5e unlk %fp <== NOT EXECUTED 4c17c: 4e75 rts <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 4c17e: 7003 moveq #3,%d0 <== NOT EXECUTED 4c180: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { _ISR_Enable( level ); _Thread_Unblock( the_thread ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 4c184: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4c186: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4c18a: 4eb9 0004 9168 jsr 49168 <_Watchdog_Remove> <== NOT EXECUTED 4c190: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 4c196: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4c198: 4eb9 0004 7a30 jsr 47a30 <_Thread_Clear_state> <== NOT EXECUTED return the_thread; } _ISR_Enable( level ); return NULL; } 4c19e: 200b movel %a3,%d0 <== NOT EXECUTED 4c1a0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4c1a4: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4c1a8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4c1ae: 4e5e unlk %fp <== NOT EXECUTED 4c1b0: 4e75 rts <== NOT EXECUTED #endif return the_thread; } _ISR_Enable( level ); 4c1b2: 46c1 movew %d1,%sr <== NOT EXECUTED 4c1b4: 97cb subal %a3,%a3 <== NOT EXECUTED return NULL; } 4c1b6: 200b movel %a3,%d0 <== NOT EXECUTED 4c1b8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4c1bc: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4c1c0: 4e5e unlk %fp <== NOT EXECUTED 4c1c2: 4e75 rts 00048270 <_Thread_queue_Dequeue_priority>: */ Thread_Control *_Thread_queue_Dequeue_priority( Thread_queue_Control *the_thread_queue ) { 48270: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48274: 48d7 3c00 moveml %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 ); 48278: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Thread_Control *_Thread_queue_Dequeue_priority( Thread_queue_Control *the_thread_queue ) { 4827e: 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 ); 48282: 40c1 movew %sr,%d1 <== NOT EXECUTED 48284: 8081 orl %d1,%d0 <== NOT EXECUTED 48286: 46c0 movew %d0,%sr <== NOT EXECUTED 48288: 93c9 subal %a1,%a1 <== NOT EXECUTED 4828a: 244c moveal %a4,%a2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 4828c: 2652 moveal %a2@,%a3 <== NOT EXECUTED for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; index++ ) { if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) { 4828e: 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++ ) { 48292: d5fc 0000 000c addal #12,%a2 <== NOT EXECUTED 48298: 5289 addql #1,%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) { 4829a: 41f4 8c00 lea %a4@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 4829e: b1cb cmpal %a3,%a0 <== NOT EXECUTED 482a0: 6616 bnes 482b8 <_Thread_queue_Dequeue_priority+0x48> <== NOT EXECUTED Chain_Node *next_node; Chain_Node *previous_node; _ISR_Disable( level ); for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; 482a2: 7004 moveq #4,%d0 <== NOT EXECUTED 482a4: b089 cmpl %a1,%d0 <== NOT EXECUTED 482a6: 66e4 bnes 4828c <_Thread_queue_Dequeue_priority+0x1c> <== NOT EXECUTED } /* * We did not find a thread to unblock. */ _ISR_Enable( level ); 482a8: 46c1 movew %d1,%sr <== NOT EXECUTED 482aa: 99cc subal %a4,%a4 <== 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 ); } 482ac: 200c movel %a4,%d0 <== NOT EXECUTED 482ae: 4cee 3c00 fff0 moveml %fp@(-16),%a2-%a5 <== NOT EXECUTED 482b4: 4e5e unlk %fp <== NOT EXECUTED 482b6: 4e75 rts <== NOT EXECUTED _ISR_Enable( level ); return NULL; dequeue: the_thread->Wait.queue = NULL; new_first_node = the_thread->Wait.Block2n.first; 482b8: 206b 0038 moveal %a3@(56),%a0 <== NOT EXECUTED new_first_thread = (Thread_Control *) new_first_node; next_node = the_thread->Object.Node.next; 482bc: 2453 moveal %a3@,%a2 <== NOT EXECUTED previous_node = the_thread->Object.Node.previous; 482be: 226b 0004 moveal %a3@(4),%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { 482c2: 200b movel %a3,%d0 <== NOT EXECUTED */ _ISR_Enable( level ); return NULL; dequeue: the_thread->Wait.queue = NULL; 482c4: 42ab 0044 clrl %a3@(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 *) 482c8: 284b moveal %a3,%a4 <== 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 ) ) { 482ca: 0680 0000 003c addil #60,%d0 <== NOT EXECUTED 482d0: b088 cmpl %a0,%d0 <== NOT EXECUTED 482d2: 6700 0090 beqw 48364 <_Thread_queue_Dequeue_priority+0xf4> <== NOT EXECUTED last_node = the_thread->Wait.Block2n.last; 482d6: 202b 0040 movel %a3@(64),%d0 <== NOT EXECUTED new_second_node = new_first_node->next; 482da: 2a50 moveal %a0@,%a5 <== NOT EXECUTED previous_node->next = new_first_node; next_node->previous = new_first_node; 482dc: 2548 0004 movel %a0,%a2@(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; 482e0: 2288 movel %a0,%a1@ <== NOT EXECUTED next_node->previous = new_first_node; new_first_node->next = next_node; new_first_node->previous = previous_node; 482e2: 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; 482e6: 208a movel %a2,%a0@ <== NOT EXECUTED new_first_node->previous = previous_node; if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) { 482e8: 226b 0040 moveal %a3@(64),%a1 <== NOT EXECUTED 482ec: b3eb 0038 cmpal %a3@(56),%a1 <== NOT EXECUTED 482f0: 671a beqs 4830c <_Thread_queue_Dequeue_priority+0x9c> <== NOT EXECUTED /* > two threads on 2-n */ new_second_node->previous = 482f2: 43e8 0038 lea %a0@(56),%a1 <== NOT EXECUTED 482f6: 2b49 0004 movel %a1,%a5@(4) <== NOT EXECUTED _Chain_Head( &new_first_thread->Wait.Block2n ); new_first_thread->Wait.Block2n.first = new_second_node; new_first_thread->Wait.Block2n.last = last_node; last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); 482fa: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) { /* > two threads on 2-n */ new_second_node->previous = _Chain_Head( &new_first_thread->Wait.Block2n ); new_first_thread->Wait.Block2n.first = new_second_node; 482fc: 214d 0038 movel %a5,%a0@(56) <== NOT EXECUTED new_first_thread->Wait.Block2n.last = last_node; 48300: 2140 0040 movel %d0,%a0@(64) <== NOT EXECUTED last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); 48304: d1fc 0000 003c addal #60,%a0 <== NOT EXECUTED 4830a: 2288 movel %a0,%a1@ <== NOT EXECUTED } else { previous_node->next = next_node; next_node->previous = previous_node; } if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4830c: 7002 moveq #2,%d0 <== NOT EXECUTED 4830e: b0ab 0050 cmpl %a3@(80),%d0 <== NOT EXECUTED 48312: 671e beqs 48332 <_Thread_queue_Dequeue_priority+0xc2> <== NOT EXECUTED _ISR_Enable( level ); 48314: 46c1 movew %d1,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 48316: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 4831c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4831e: 4eb9 0004 7a30 jsr 47a30 <_Thread_Clear_state> <== 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 ); } 48324: 200c movel %a4,%d0 <== NOT EXECUTED 48326: 508f addql #8,%sp <== NOT EXECUTED 48328: 4cee 3c00 fff0 moveml %fp@(-16),%a2-%a5 <== NOT EXECUTED 4832e: 4e5e unlk %fp <== NOT EXECUTED 48330: 4e75 rts <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; 48332: 7003 moveq #3,%d0 <== NOT EXECUTED 48334: 2740 0050 movel %d0,%a3@(80) <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { _ISR_Enable( level ); _Thread_Unblock( the_thread ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 48338: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4833a: 486b 0048 pea %a3@(72) <== NOT EXECUTED 4833e: 4eb9 0004 9168 jsr 49168 <_Watchdog_Remove> <== NOT EXECUTED 48344: 2f3c 1003 fff8 movel #268697592,%sp@- <== NOT EXECUTED 4834a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4834c: 4eb9 0004 7a30 jsr 47a30 <_Thread_Clear_state> <== 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 ); } 48352: 200c movel %a4,%d0 <== NOT EXECUTED 48354: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4835a: 4cee 3c00 fff0 moveml %fp@(-16),%a2-%a5 <== NOT EXECUTED 48360: 4e5e unlk %fp <== NOT EXECUTED 48362: 4e75 rts <== NOT EXECUTED last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); } } else { previous_node->next = next_node; next_node->previous = previous_node; 48364: 2549 0004 movel %a1,%a2@(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; 48368: 228a movel %a2,%a1@ <== NOT EXECUTED 4836a: 60a0 bras 4830c <_Thread_queue_Dequeue_priority+0x9c> <== NOT EXECUTED 0004c1c4 <_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 ) { 4c1c4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c1c8: 2f0a movel %a2,%sp@- <== NOT EXECUTED Thread_blocking_operation_States sync_state; ISR_Level level; _ISR_Disable( level ); 4c1ca: 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 ) { 4c1d0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4c1d2: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 4c1d6: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Thread_blocking_operation_States sync_state; ISR_Level level; _ISR_Disable( level ); 4c1da: 40c1 movew %sr,%d1 <== NOT EXECUTED 4c1dc: 8081 orl %d1,%d0 <== NOT EXECUTED 4c1de: 46c0 movew %d0,%sr <== NOT EXECUTED sync_state = the_thread_queue->sync_state; 4c1e0: 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) { 4c1e4: 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; 4c1e6: 42a9 0030 clrl %a1@(48) <== NOT EXECUTED if (sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) { 4c1ea: b480 cmpl %d0,%d2 <== NOT EXECUTED 4c1ec: 670e beqs 4c1fc <_Thread_queue_Enqueue_fifo+0x38> <== NOT EXECUTED * * WARNING! Returning with interrupts disabled! */ *level_p = level; return sync_state; } 4c1ee: 241f movel %sp@+,%d2 <== 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; 4c1f0: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED return sync_state; } 4c1f4: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4c1f6: 4e5e unlk %fp <== 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; 4c1f8: 2081 movel %d1,%a0@ <== NOT EXECUTED return sync_state; } 4c1fa: 4e75 rts <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 4c1fc: 2049 moveal %a1,%a0 <== NOT EXECUTED 4c1fe: 5888 addql #4,%a0 <== NOT EXECUTED 4c200: 2488 movel %a0,%a2@ <== NOT EXECUTED old_last_node = the_chain->last; 4c202: 2069 0008 moveal %a1@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 4c206: 234a 0008 movel %a2,%a1@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 4c20a: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED if (sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) { _Chain_Append_unprotected( &the_thread_queue->Queues.Fifo, &the_thread->Object.Node ); the_thread->Wait.queue = the_thread_queue; 4c20e: 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; 4c212: 208a movel %a2,%a0@ <== NOT EXECUTED the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; _ISR_Enable( level ); 4c214: 46c1 movew %d1,%sr <== NOT EXECUTED * * WARNING! Returning with interrupts disabled! */ *level_p = level; return sync_state; } 4c216: 241f movel %sp@+,%d2 <== NOT EXECUTED 4c218: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4c21a: 4e5e unlk %fp <== NOT EXECUTED 4c21c: 4e75 rts <== NOT EXECUTED ... 00048410 <_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 ) { 48410: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 48414: 48d7 1c7c moveml %d2-%d6/%a2-%a4,%sp@ <== NOT EXECUTED 48418: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4841c: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED Priority_Control priority; States_Control block_state; _Chain_Initialize_empty( &the_thread->Wait.Block2n ); priority = the_thread->current_priority; 48420: 242a 0014 movel %a2@(20),%d2 <== NOT EXECUTED header_index = _Thread_queue_Header_number( priority ); header = &the_thread_queue->Queues.Priority[ header_index ]; block_state = the_thread_queue->state; 48424: 282b 0038 movel %a3@(56),%d4 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 48428: 41ea 003c lea %a2@(60),%a0 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4842c: 43ea 0038 lea %a2@(56),%a1 <== NOT EXECUTED RTEMS_INLINE_ROUTINE uint32_t _Thread_queue_Header_number ( Priority_Control the_priority ) { return (the_priority / TASK_QUEUE_DATA_PRIORITIES_PER_HEADER); 48430: 2202 movel %d2,%d1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 48432: 2548 0038 movel %a0,%a2@(56) <== NOT EXECUTED 48436: ec89 lsrl #6,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 48438: 2549 0040 movel %a1,%a2@(64) <== 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; 4843c: 42aa 003c clrl %a2@(60) <== NOT EXECUTED if ( _Thread_queue_Is_reverse_search( priority ) ) 48440: 0802 0005 btst #5,%d2 <== NOT EXECUTED 48444: 6666 bnes 484ac <_Thread_queue_Enqueue_priority+0x9c> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 48446: 2241 moveal %d1,%a1 <== NOT EXECUTED 48448: 41f1 1a01 lea %a1@(00000001,%d1:l:2),%a0 <== NOT EXECUTED goto restart_reverse_search; restart_forward_search: search_priority = PRIORITY_MINIMUM - 1; _ISR_Disable( level ); 4844c: 2a3c 0000 0700 movel #1792,%d5 <== NOT EXECUTED 48452: 7c0c moveq #12,%d6 <== NOT EXECUTED 48454: 4c01 6800 mulsl %d1,%d6 <== NOT EXECUTED 48458: 41f3 8c00 lea %a3@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 4845c: 2005 movel %d5,%d0 <== NOT EXECUTED 4845e: 40c3 movew %sr,%d3 <== NOT EXECUTED 48460: 8083 orl %d3,%d0 <== NOT EXECUTED 48462: 46c0 movew %d0,%sr <== NOT EXECUTED search_thread = (Thread_Control *) header->first; 48464: 2273 6800 moveal %a3@(00000000,%d6:l),%a1 <== NOT EXECUTED while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) { 48468: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 4846a: 6700 0144 beqw 485b0 <_Thread_queue_Enqueue_priority+0x1a0> <== NOT EXECUTED search_priority = search_thread->current_priority; 4846e: 2229 0014 movel %a1@(20),%d1 <== NOT EXECUTED if ( priority <= search_priority ) 48472: b282 cmpl %d2,%d1 <== NOT EXECUTED 48474: 6418 bccs 4848e <_Thread_queue_Enqueue_priority+0x7e> <== NOT EXECUTED break; search_priority = search_thread->current_priority; if ( priority <= search_priority ) break; #endif _ISR_Flash( level ); 48476: 2005 movel %d5,%d0 <== NOT EXECUTED 48478: 46c3 movew %d3,%sr <== NOT EXECUTED 4847a: 8083 orl %d3,%d0 <== NOT EXECUTED 4847c: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Are_set( search_thread->current_state, block_state) ) { 4847e: 2004 movel %d4,%d0 <== NOT EXECUTED 48480: c0a9 0010 andl %a1@(16),%d0 <== NOT EXECUTED 48484: 6700 00c4 beqw 4854a <_Thread_queue_Enqueue_priority+0x13a> <== NOT EXECUTED _ISR_Enable( level ); goto restart_forward_search; } search_thread = 48488: 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 ) ) { 4848a: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 4848c: 66e0 bnes 4846e <_Thread_queue_Enqueue_priority+0x5e> <== NOT EXECUTED 4848e: 2009 movel %a1,%d0 <== NOT EXECUTED } search_thread = (Thread_Control *)search_thread->Object.Node.next; } if ( the_thread_queue->sync_state != 48490: 7801 moveq #1,%d4 <== NOT EXECUTED 48492: b8ab 0030 cmpl %a3@(48),%d4 <== NOT EXECUTED 48496: 6700 00c8 beqw 48560 <_Thread_queue_Enqueue_priority+0x150> <== 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; 4849a: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED return the_thread_queue->sync_state; 4849e: 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; 484a2: 2083 movel %d3,%a0@ <== NOT EXECUTED return the_thread_queue->sync_state; } 484a4: 4cd7 1c7c moveml %sp@,%d2-%d6/%a2-%a4 <== NOT EXECUTED 484a8: 4e5e unlk %fp <== NOT EXECUTED 484aa: 4e75 rts <== NOT EXECUTED the_node->previous = previous_node; previous_node->next = the_node; search_node->previous = the_node; the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED; 484ac: 2001 movel %d1,%d0 <== NOT EXECUTED 484ae: e589 lsll #2,%d1 <== NOT EXECUTED 484b0: e988 lsll #4,%d0 <== NOT EXECUTED 484b2: 9081 subl %d1,%d0 <== NOT EXECUTED 484b4: 41f3 0800 lea %a3@(00000000,%d0:l),%a0 <== NOT EXECUTED restart_reverse_search: search_priority = PRIORITY_MAXIMUM + 1; 484b8: 4280 clrl %d0 <== NOT EXECUTED 484ba: 1039 0005 80f2 moveb 580f2 ,%d0 <== NOT EXECUTED _ISR_Disable( level ); 484c0: 2a3c 0000 0700 movel #1792,%d5 <== 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; 484c6: 2200 movel %d0,%d1 <== NOT EXECUTED _ISR_Disable( level ); search_thread = (Thread_Control *) header->last; 484c8: 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; 484cc: 5281 addql #1,%d1 <== NOT EXECUTED _ISR_Disable( level ); 484ce: 2005 movel %d5,%d0 <== NOT EXECUTED 484d0: 40c3 movew %sr,%d3 <== NOT EXECUTED 484d2: 8083 orl %d3,%d0 <== NOT EXECUTED 484d4: 46c0 movew %d0,%sr <== NOT EXECUTED search_thread = (Thread_Control *) header->last; 484d6: 2254 moveal %a4@,%a1 <== NOT EXECUTED while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) { 484d8: b3c8 cmpal %a0,%a1 <== NOT EXECUTED 484da: 6720 beqs 484fc <_Thread_queue_Enqueue_priority+0xec> <== NOT EXECUTED search_priority = search_thread->current_priority; 484dc: 2229 0014 movel %a1@(20),%d1 <== NOT EXECUTED if ( priority >= search_priority ) 484e0: b282 cmpl %d2,%d1 <== NOT EXECUTED 484e2: 6318 blss 484fc <_Thread_queue_Enqueue_priority+0xec> <== NOT EXECUTED break; search_priority = search_thread->current_priority; if ( priority >= search_priority ) break; #endif _ISR_Flash( level ); 484e4: 2005 movel %d5,%d0 <== NOT EXECUTED 484e6: 46c3 movew %d3,%sr <== NOT EXECUTED 484e8: 8083 orl %d3,%d0 <== NOT EXECUTED 484ea: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Are_set( search_thread->current_state, block_state) ) { 484ec: 2004 movel %d4,%d0 <== NOT EXECUTED 484ee: c0a9 0010 andl %a1@(16),%d0 <== NOT EXECUTED 484f2: 6738 beqs 4852c <_Thread_queue_Enqueue_priority+0x11c> <== NOT EXECUTED _ISR_Enable( level ); goto restart_reverse_search; } search_thread = (Thread_Control *) 484f4: 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 ) ) { 484f8: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 484fa: 66e0 bnes 484dc <_Thread_queue_Enqueue_priority+0xcc> <== NOT EXECUTED 484fc: 2009 movel %a1,%d0 <== NOT EXECUTED } search_thread = (Thread_Control *) search_thread->Object.Node.previous; } if ( the_thread_queue->sync_state != 484fe: 7801 moveq #1,%d4 <== NOT EXECUTED 48500: b8ab 0030 cmpl %a3@(48),%d4 <== NOT EXECUTED 48504: 6694 bnes 4849a <_Thread_queue_Enqueue_priority+0x8a> <== NOT EXECUTED THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) goto synchronize; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 48506: 42ab 0030 clrl %a3@(48) <== NOT EXECUTED if ( priority == search_priority ) 4850a: b282 cmpl %d2,%d1 <== NOT EXECUTED 4850c: 677a beqs 48588 <_Thread_queue_Enqueue_priority+0x178> <== NOT EXECUTED goto equal_priority; search_node = (Chain_Node *) search_thread; next_node = search_node->next; 4850e: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_node = (Chain_Node *) the_thread; the_node->next = next_node; the_node->previous = search_node; 48510: 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; 48514: 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; 48516: 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; 4851a: 228a movel %a2,%a1@ <== NOT EXECUTED next_node->previous = the_node; 4851c: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 48520: 46c3 movew %d3,%sr <== NOT EXECUTED * * WARNING! Returning with interrupts disabled! */ *level_p = level; return the_thread_queue->sync_state; } 48522: 4cd7 1c7c moveml %sp@,%d2-%d6/%a2-%a4 <== NOT EXECUTED 48526: 4e5e unlk %fp <== NOT EXECUTED the_node->next = next_node; the_node->previous = search_node; search_node->next = the_node; next_node->previous = the_node; the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 48528: 7001 moveq #1,%d0 <== NOT EXECUTED * * WARNING! Returning with interrupts disabled! */ *level_p = level; return the_thread_queue->sync_state; } 4852a: 4e75 rts <== NOT EXECUTED if ( priority >= search_priority ) break; #endif _ISR_Flash( level ); if ( !_States_Are_set( search_thread->current_state, block_state) ) { _ISR_Enable( level ); 4852c: 46c3 movew %d3,%sr <== 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; 4852e: 4280 clrl %d0 <== NOT EXECUTED 48530: 1039 0005 80f2 moveb 580f2 ,%d0 <== NOT EXECUTED 48536: 2200 movel %d0,%d1 <== NOT EXECUTED 48538: 5281 addql #1,%d1 <== NOT EXECUTED _ISR_Disable( level ); 4853a: 2005 movel %d5,%d0 <== NOT EXECUTED 4853c: 40c3 movew %sr,%d3 <== NOT EXECUTED 4853e: 8083 orl %d3,%d0 <== NOT EXECUTED 48540: 46c0 movew %d0,%sr <== NOT EXECUTED search_thread = (Thread_Control *) header->last; 48542: 2254 moveal %a4@,%a1 <== NOT EXECUTED while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) { 48544: b3c8 cmpal %a0,%a1 <== NOT EXECUTED 48546: 6694 bnes 484dc <_Thread_queue_Enqueue_priority+0xcc> <== NOT EXECUTED 48548: 60b2 bras 484fc <_Thread_queue_Enqueue_priority+0xec> <== NOT EXECUTED if ( priority <= search_priority ) break; #endif _ISR_Flash( level ); if ( !_States_Are_set( search_thread->current_state, block_state) ) { _ISR_Enable( level ); 4854a: 46c3 movew %d3,%sr <== NOT EXECUTED if ( _Thread_queue_Is_reverse_search( priority ) ) goto restart_reverse_search; restart_forward_search: search_priority = PRIORITY_MINIMUM - 1; _ISR_Disable( level ); 4854c: 2005 movel %d5,%d0 <== NOT EXECUTED 4854e: 40c3 movew %sr,%d3 <== NOT EXECUTED 48550: 8083 orl %d3,%d0 <== NOT EXECUTED 48552: 46c0 movew %d0,%sr <== NOT EXECUTED search_thread = (Thread_Control *) header->first; 48554: 2273 6800 moveal %a3@(00000000,%d6:l),%a1 <== NOT EXECUTED while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) { 48558: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 4855a: 6600 ff12 bnew 4846e <_Thread_queue_Enqueue_priority+0x5e> <== NOT EXECUTED 4855e: 6050 bras 485b0 <_Thread_queue_Enqueue_priority+0x1a0> <== NOT EXECUTED if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) goto synchronize; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 48560: 42ab 0030 clrl %a3@(48) <== NOT EXECUTED if ( priority == search_priority ) 48564: b282 cmpl %d2,%d1 <== NOT EXECUTED 48566: 6720 beqs 48588 <_Thread_queue_Enqueue_priority+0x178> <== NOT EXECUTED goto equal_priority; search_node = (Chain_Node *) search_thread; previous_node = search_node->previous; 48568: 2069 0004 moveal %a1@(4),%a0 <== NOT EXECUTED the_node = (Chain_Node *) the_thread; the_node->next = search_node; 4856c: 2489 movel %a1,%a2@ <== NOT EXECUTED the_node->previous = previous_node; 4856e: 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; 48572: 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; 48576: 208a movel %a2,%a0@ <== NOT EXECUTED search_node->previous = the_node; 48578: 234a 0004 movel %a2,%a1@(4) <== NOT EXECUTED the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 4857c: 46c3 movew %d3,%sr <== NOT EXECUTED * * WARNING! Returning with interrupts disabled! */ *level_p = level; return the_thread_queue->sync_state; } 4857e: 4cd7 1c7c moveml %sp@,%d2-%d6/%a2-%a4 <== NOT EXECUTED 48582: 4e5e unlk %fp <== NOT EXECUTED the_node->next = search_node; the_node->previous = previous_node; previous_node->next = the_node; search_node->previous = the_node; the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 48584: 7001 moveq #1,%d0 <== NOT EXECUTED * * WARNING! Returning with interrupts disabled! */ *level_p = level; return the_thread_queue->sync_state; } 48586: 4e75 rts <== NOT EXECUTED 48588: 2040 moveal %d0,%a0 <== NOT EXECUTED 4858a: d1fc 0000 003c addal #60,%a0 <== NOT EXECUTED _ISR_Enable( level ); 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; 48590: 2268 0004 moveal %a0@(4),%a1 <== NOT EXECUTED the_node = (Chain_Node *) the_thread; the_node->next = search_node; 48594: 2488 movel %a0,%a2@ <== NOT EXECUTED the_node->previous = previous_node; 48596: 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; 4859a: 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; 4859e: 228a movel %a2,%a1@ <== NOT EXECUTED search_node->previous = the_node; 485a0: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 485a4: 46c3 movew %d3,%sr <== NOT EXECUTED * * WARNING! Returning with interrupts disabled! */ *level_p = level; return the_thread_queue->sync_state; } 485a6: 4cd7 1c7c moveml %sp@,%d2-%d6/%a2-%a4 <== NOT EXECUTED 485aa: 4e5e unlk %fp <== NOT EXECUTED the_node->next = search_node; the_node->previous = previous_node; previous_node->next = the_node; search_node->previous = the_node; the_thread->Wait.queue = the_thread_queue; _ISR_Enable( level ); 485ac: 7001 moveq #1,%d0 <== NOT EXECUTED * * WARNING! Returning with interrupts disabled! */ *level_p = level; return the_thread_queue->sync_state; } 485ae: 4e75 rts <== 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 ) ) { 485b0: 2008 movel %a0,%d0 <== NOT EXECUTED 485b2: 72ff moveq #-1,%d1 <== NOT EXECUTED } search_thread = (Thread_Control *)search_thread->Object.Node.next; } if ( the_thread_queue->sync_state != 485b4: 7801 moveq #1,%d4 <== NOT EXECUTED 485b6: b8ab 0030 cmpl %a3@(48),%d4 <== NOT EXECUTED 485ba: 6600 fede bnew 4849a <_Thread_queue_Enqueue_priority+0x8a> <== NOT EXECUTED 485be: 60a0 bras 48560 <_Thread_queue_Enqueue_priority+0x150> <== NOT EXECUTED 0004836c <_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 ) { 4836c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 48370: 2f0b movel %a3,%sp@- <== NOT EXECUTED 48372: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 48376: 2f0a movel %a2,%sp@- <== NOT EXECUTED Thread_queue_Control *, Thread_Control *, ISR_Level * ); the_thread = _Thread_Executing; 48378: 2479 0005 9d3a moveal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED else #endif /* * Set the blocking state for this thread queue in the thread. */ _Thread_Set_state( the_thread, the_thread_queue->state ); 4837e: 2f2b 0038 movel %a3@(56),%sp@- <== NOT EXECUTED 48382: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48384: 4eb9 0004 87cc jsr 487cc <_Thread_Set_state> <== NOT EXECUTED /* * If the thread wants to timeout, then schedule its timer. */ if ( timeout ) { 4838a: 508f addql #8,%sp <== NOT EXECUTED 4838c: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 48390: 664a bnes 483dc <_Thread_queue_Enqueue_with_handler+0x70> <== NOT EXECUTED } /* * Now enqueue the thread per the discipline for this thread queue. */ if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) 48392: 41f9 0004 8410 lea 48410 <_Thread_queue_Enqueue_priority>,%a0 <== NOT EXECUTED 48398: 7201 moveq #1,%d1 <== NOT EXECUTED 4839a: b2ab 0034 cmpl %a3@(52),%d1 <== NOT EXECUTED 4839e: 6706 beqs 483a6 <_Thread_queue_Enqueue_with_handler+0x3a> <== NOT EXECUTED 483a0: 41f9 0004 c1c4 lea 4c1c4 <_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 ); 483a6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 483aa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 483ac: 2f0b movel %a3,%sp@- <== NOT EXECUTED 483ae: 4e90 jsr %a0@ <== NOT EXECUTED if ( sync_state != THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) 483b0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 483b6: 7201 moveq #1,%d1 <== NOT EXECUTED 483b8: b280 cmpl %d0,%d1 <== NOT EXECUTED 483ba: 6714 beqs 483d0 <_Thread_queue_Enqueue_with_handler+0x64> <== NOT EXECUTED _Thread_blocking_operation_Cancel( sync_state, the_thread, level ); 483bc: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 483c0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 483c2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 483c4: 4eb9 0004 7878 jsr 47878 <_Thread_blocking_operation_Cancel> <== NOT EXECUTED 483ca: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 483d0: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 483d4: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 483d8: 4e5e unlk %fp <== NOT EXECUTED 483da: 4e75 rts <== NOT EXECUTED /* * If the thread wants to timeout, then schedule its timer. */ if ( timeout ) { _Watchdog_Initialize( 483dc: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 483e0: 2540 0068 movel %d0,%a2@(104) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 483e4: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 483e8: 256e 0010 0064 movel %fp@(16),%a2@(100) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 483ee: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 483f2: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 483f6: 42aa 006c clrl %a2@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 483fa: 486a 0048 pea %a2@(72) <== NOT EXECUTED 483fe: 4879 0005 9d58 pea 59d58 <_Watchdog_Ticks_chain> <== NOT EXECUTED 48404: 4eb9 0004 9020 jsr 49020 <_Watchdog_Insert> <== NOT EXECUTED 4840a: 508f addql #8,%sp <== NOT EXECUTED 4840c: 6084 bras 48392 <_Thread_queue_Enqueue_with_handler+0x26> <== NOT EXECUTED ... 0004c220 <_Thread_queue_Extract>: void _Thread_queue_Extract( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) { 4c220: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c224: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4c228: 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 ) 4c22c: 7201 moveq #1,%d1 <== NOT EXECUTED 4c22e: b2a8 0034 cmpl %a0@(52),%d1 <== NOT EXECUTED 4c232: 6710 beqs 4c244 <_Thread_queue_Extract+0x24> <== NOT EXECUTED _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 ); 4c234: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 4c238: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 4c23c: 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 ); 4c23e: 4ef9 0004 d2cc jmp 4d2cc <_Thread_queue_Extract_fifo> <== 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 ) _Thread_queue_Extract_priority( the_thread_queue, the_thread ); 4c244: 42a7 clrl %sp@- <== NOT EXECUTED 4c246: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4c248: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4c24a: 4eb9 0004 c25c jsr 4c25c <_Thread_queue_Extract_priority_helper> <== NOT EXECUTED 4c250: dffc 0000 000c addal #12,%sp <== NOT EXECUTED else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */ _Thread_queue_Extract_fifo( the_thread_queue, the_thread ); } 4c256: 4e5e unlk %fp <== NOT EXECUTED 4c258: 4e75 rts <== NOT EXECUTED ... 0004d2cc <_Thread_queue_Extract_fifo>: void _Thread_queue_Extract_fifo( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) { 4d2cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d2d0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d2d2: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4d2d6: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4d2dc: 40c1 movew %sr,%d1 <== NOT EXECUTED 4d2de: 8081 orl %d1,%d0 <== NOT EXECUTED 4d2e0: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { 4d2e2: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4d2e6: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 4d2ec: 6734 beqs 4d322 <_Thread_queue_Extract_fifo+0x56> <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 4d2ee: 2252 moveal %a2@,%a1 <== NOT EXECUTED previous = the_node->previous; 4d2f0: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED return; } _Chain_Extract_unprotected( &the_thread->Object.Node ); the_thread->Wait.queue = NULL; 4d2f4: 42aa 0044 clrl %a2@(68) <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4d2f8: 7002 moveq #2,%d0 <== NOT EXECUTED next->previous = previous; previous->next = next; 4d2fa: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 4d2fc: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED 4d300: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4d304: 6726 beqs 4d32c <_Thread_queue_Extract_fifo+0x60> <== NOT EXECUTED _ISR_Enable( level ); 4d306: 46c1 movew %d1,%sr <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Unblock ( Thread_Control *the_thread ) { _Thread_Clear_state( the_thread, STATES_BLOCKED ); 4d308: 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 } 4d30c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4d310: 203c 1003 fff8 movel #268697592,%d0 <== NOT EXECUTED 4d316: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 4d31a: 4e5e unlk %fp <== NOT EXECUTED 4d31c: 4ef9 0004 7a30 jmp 47a30 <_Thread_Clear_state> <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { _ISR_Enable( level ); 4d322: 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 } 4d324: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4d328: 4e5e unlk %fp <== NOT EXECUTED 4d32a: 4e75 rts <== NOT EXECUTED 4d32c: 7003 moveq #3,%d0 <== NOT EXECUTED 4d32e: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { _ISR_Enable( level ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 4d332: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4d334: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4d338: 4eb9 0004 9168 jsr 49168 <_Watchdog_Remove> <== NOT EXECUTED 4d33e: 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 } 4d342: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4d346: 203c 1003 fff8 movel #268697592,%d0 <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { _ISR_Enable( level ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); (void) _Watchdog_Remove( &the_thread->Timer ); 4d34c: 588f addql #4,%sp <== NOT EXECUTED 4d34e: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( !_Objects_Is_local_id( the_thread->Object.id ) ) _Thread_MP_Free_proxy( the_thread ); #endif } 4d352: 4e5e unlk %fp <== NOT EXECUTED 4d354: 4ef9 0004 7a30 jmp 47a30 <_Thread_Clear_state> <== NOT EXECUTED ... 0004c25c <_Thread_queue_Extract_priority_helper>: void _Thread_queue_Extract_priority_helper( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, bool requeuing ) { 4c25c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4c260: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 4c264: 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 ); 4c268: 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 ) { 4c26e: 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 ); 4c272: 40c1 movew %sr,%d1 <== NOT EXECUTED 4c274: 8081 orl %d1,%d0 <== NOT EXECUTED 4c276: 46c0 movew %d0,%sr <== NOT EXECUTED if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { 4c278: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4c27c: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 4c282: 6774 beqs 4c2f8 <_Thread_queue_Extract_priority_helper+0x9c> <== NOT EXECUTED /* * The thread was actually waiting on a thread queue so let's remove it. */ next_node = the_node->next; 4c284: 2652 moveal %a2@,%a3 <== NOT EXECUTED previous_node = the_node->previous; 4c286: 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)); 4c28a: 206a 0038 moveal %a2@(56),%a0 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) { 4c28e: 200a movel %a2,%d0 <== NOT EXECUTED 4c290: 0680 0000 003c addil #60,%d0 <== NOT EXECUTED 4c296: b088 cmpl %a0,%d0 <== NOT EXECUTED 4c298: 6776 beqs 4c310 <_Thread_queue_Extract_priority_helper+0xb4> <== 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; 4c29a: 2a6a 0040 moveal %a2@(64),%a5 <== NOT EXECUTED new_second_node = new_first_node->next; 4c29e: 2850 moveal %a0@,%a4 <== NOT EXECUTED previous_node->next = new_first_node; next_node->previous = new_first_node; 4c2a0: 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; 4c2a4: 2288 movel %a0,%a1@ <== NOT EXECUTED next_node->previous = new_first_node; new_first_node->next = next_node; new_first_node->previous = previous_node; 4c2a6: 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; 4c2aa: 208b movel %a3,%a0@ <== NOT EXECUTED new_first_node->previous = previous_node; if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) { 4c2ac: 202a 0040 movel %a2@(64),%d0 <== NOT EXECUTED 4c2b0: b0aa 0038 cmpl %a2@(56),%d0 <== NOT EXECUTED 4c2b4: 6718 beqs 4c2ce <_Thread_queue_Extract_priority_helper+0x72> <== NOT EXECUTED /* > two threads on 2-n */ new_second_node->previous = 4c2b6: 43e8 0038 lea %a0@(56),%a1 <== NOT EXECUTED 4c2ba: 2949 0004 movel %a1,%a4@(4) <== NOT EXECUTED _Chain_Head( &new_first_thread->Wait.Block2n ); new_first_thread->Wait.Block2n.first = new_second_node; 4c2be: 214c 0038 movel %a4,%a0@(56) <== NOT EXECUTED new_first_thread->Wait.Block2n.last = last_node; 4c2c2: 214d 0040 movel %a5,%a0@(64) <== NOT EXECUTED last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n ); 4c2c6: d1fc 0000 003c addal #60,%a0 <== NOT EXECUTED 4c2cc: 2a88 movel %a0,%a5@ <== NOT EXECUTED /* * If we are not supposed to touch timers or the thread's state, return. */ if ( requeuing ) { 4c2ce: 4a02 tstb %d2 <== NOT EXECUTED 4c2d0: 6632 bnes 4c304 <_Thread_queue_Extract_priority_helper+0xa8> <== NOT EXECUTED _ISR_Enable( level ); return; } if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { 4c2d2: 7002 moveq #2,%d0 <== NOT EXECUTED 4c2d4: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 4c2d8: 673e beqs 4c318 <_Thread_queue_Extract_priority_helper+0xbc> <== NOT EXECUTED _ISR_Enable( level ); 4c2da: 46c1 movew %d1,%sr <== NOT EXECUTED 4c2dc: 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 } 4c2e0: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4c2e6: 227c 1003 fff8 moveal #268697592,%a1 <== NOT EXECUTED 4c2ec: 2d49 000c movel %a1,%fp@(12) <== NOT EXECUTED 4c2f0: 4e5e unlk %fp <== NOT EXECUTED 4c2f2: 4ef9 0004 7a30 jmp 47a30 <_Thread_Clear_state> <== NOT EXECUTED Chain_Node *last_node; the_node = (Chain_Node *) the_thread; _ISR_Disable( level ); if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { _ISR_Enable( level ); 4c2f8: 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 } 4c2fa: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4c300: 4e5e unlk %fp <== NOT EXECUTED 4c302: 4e75 rts <== NOT EXECUTED /* * If we are not supposed to touch timers or the thread's state, return. */ if ( requeuing ) { _ISR_Enable( level ); 4c304: 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 } 4c306: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4c30c: 4e5e unlk %fp <== NOT EXECUTED 4c30e: 4e75 rts <== 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; next_node->previous = previous_node; 4c310: 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; 4c314: 228b movel %a3,%a1@ <== NOT EXECUTED 4c316: 60b6 bras 4c2ce <_Thread_queue_Extract_priority_helper+0x72> <== NOT EXECUTED 4c318: 7003 moveq #3,%d0 <== NOT EXECUTED 4c31a: 2540 0050 movel %d0,%a2@(80) <== NOT EXECUTED if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { _ISR_Enable( level ); } else { _Watchdog_Deactivate( &the_thread->Timer ); _ISR_Enable( level ); 4c31e: 46c1 movew %d1,%sr <== NOT EXECUTED (void) _Watchdog_Remove( &the_thread->Timer ); 4c320: 486a 0048 pea %a2@(72) <== NOT EXECUTED 4c324: 4eb9 0004 9168 jsr 49168 <_Watchdog_Remove> <== NOT EXECUTED 4c32a: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED 4c32e: 227c 1003 fff8 moveal #268697592,%a1 <== NOT EXECUTED 4c334: 588f addql #4,%sp <== NOT EXECUTED 4c336: 2d49 000c movel %a1,%fp@(12) <== NOT EXECUTED #if defined(RTEMS_MULTIPROCESSING) if ( !_Objects_Is_local_id( the_thread->Object.id ) ) _Thread_MP_Free_proxy( the_thread ); #endif } 4c33a: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4c340: 4e5e unlk %fp <== NOT EXECUTED 4c342: 4ef9 0004 7a30 jmp 47a30 <_Thread_Clear_state> <== NOT EXECUTED 000485c0 <_Thread_queue_Extract_with_proxy>: */ bool _Thread_queue_Extract_with_proxy( Thread_Control *the_thread ) { 485c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 485c4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED States_Control state; state = the_thread->current_state; if ( _States_Is_waiting_on_thread_queue( state ) ) { 485c8: 2028 0010 movel %a0@(16),%d0 <== NOT EXECUTED 485cc: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 485d2: 6604 bnes 485d8 <_Thread_queue_Extract_with_proxy+0x18> <== NOT EXECUTED _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); return TRUE; } return FALSE; } 485d4: 4e5e unlk %fp <== NOT EXECUTED 485d6: 4e75 rts <== NOT EXECUTED if ( proxy_extract_callout ) (*proxy_extract_callout)( the_thread ); } #endif _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); 485d8: 2f08 movel %a0,%sp@- <== NOT EXECUTED 485da: 2f28 0044 movel %a0@(68),%sp@- <== NOT EXECUTED 485de: 4eb9 0004 c220 jsr 4c220 <_Thread_queue_Extract> <== NOT EXECUTED 485e4: 508f addql #8,%sp <== NOT EXECUTED return TRUE; } return FALSE; } 485e6: 4e5e unlk %fp <== NOT EXECUTED if ( proxy_extract_callout ) (*proxy_extract_callout)( the_thread ); } #endif _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); 485e8: 7001 moveq #1,%d0 <== NOT EXECUTED return TRUE; } return FALSE; } 485ea: 4e75 rts 0004a940 <_Thread_queue_First>: */ Thread_Control *_Thread_queue_First( Thread_queue_Control *the_thread_queue ) { 4a940: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a944: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED Thread_Control * (*first_p)(Thread_queue_Control *); if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) 4a948: 203c 0004 a968 movel #305512,%d0 <== NOT EXECUTED 4a94e: 7201 moveq #1,%d1 <== NOT EXECUTED 4a950: b2a8 0034 cmpl %a0@(52),%d1 <== NOT EXECUTED 4a954: 6706 beqs 4a95c <_Thread_queue_First+0x1c> <== NOT EXECUTED 4a956: 203c 0004 e6a4 movel #321188,%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 ); 4a95c: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 4a960: 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 ); 4a962: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a964: 4ed1 jmp %a1@ <== NOT EXECUTED ... 0004e6a4 <_Thread_queue_First_fifo>: */ Thread_Control *_Thread_queue_First_fifo( Thread_queue_Control *the_thread_queue ) { 4e6a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4e6a8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4e6ac: 2018 movel %a0@+,%d0 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) 4e6ae: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 4e6b0: 6704 beqs 4e6b6 <_Thread_queue_First_fifo+0x12> <== NOT EXECUTED return (Thread_Control *) the_thread_queue->Queues.Fifo.first; return NULL; } 4e6b2: 4e5e unlk %fp <== NOT EXECUTED 4e6b4: 4e75 rts <== NOT EXECUTED 4e6b6: 4e5e unlk %fp <== NOT EXECUTED Thread_Control *_Thread_queue_First_fifo( Thread_queue_Control *the_thread_queue ) { if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) 4e6b8: 4280 clrl %d0 <== NOT EXECUTED return (Thread_Control *) the_thread_queue->Queues.Fifo.first; return NULL; } 4e6ba: 4e75 rts 0004a968 <_Thread_queue_First_priority>: */ Thread_Control *_Thread_queue_First_priority ( Thread_queue_Control *the_thread_queue ) { 4a968: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a96c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a96e: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4a972: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a974: 93c9 subal %a1,%a1 <== NOT EXECUTED 4a976: 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)); 4a978: 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 ] ) ) 4a97a: 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++ ) { 4a97e: d5fc 0000 000c addal #12,%a2 <== NOT EXECUTED 4a984: 5289 addql #1,%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) 4a986: 41f3 8c00 lea %a3@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 4a98a: b1c0 cmpal %d0,%a0 <== NOT EXECUTED 4a98c: 6608 bnes 4a996 <_Thread_queue_First_priority+0x2e> <== NOT EXECUTED ) { uint32_t index; for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; 4a98e: 7004 moveq #4,%d0 <== NOT EXECUTED 4a990: b089 cmpl %a1,%d0 <== NOT EXECUTED 4a992: 66e4 bnes 4a978 <_Thread_queue_First_priority+0x10> <== NOT EXECUTED 4a994: 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; } 4a996: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4a998: 265f moveal %sp@+,%a3 <== NOT EXECUTED 4a99a: 4e5e unlk %fp <== NOT EXECUTED 4a99c: 4e75 rts <== NOT EXECUTED ... 000485ec <_Thread_queue_Flush>: void _Thread_queue_Flush( Thread_queue_Control *the_thread_queue, Thread_queue_Flush_callout remote_extract_callout, uint32_t status ) { 485ec: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 485f0: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 485f4: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 485f8: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED Thread_Control *the_thread; while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) { 485fc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 485fe: 45f9 0004 8204 lea 48204 <_Thread_queue_Dequeue>,%a2 <== NOT EXECUTED 48604: 4e92 jsr %a2@ <== NOT EXECUTED 48606: 588f addql #4,%sp <== NOT EXECUTED 48608: 2040 moveal %d0,%a0 <== NOT EXECUTED 4860a: 4a80 tstl %d0 <== NOT EXECUTED 4860c: 6710 beqs 4861e <_Thread_queue_Flush+0x32> <== 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; 4860e: 2142 0034 movel %d2,%a0@(52) <== NOT EXECUTED uint32_t status ) { Thread_Control *the_thread; while ( (the_thread = _Thread_queue_Dequeue( the_thread_queue )) ) { 48612: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48614: 4e92 jsr %a2@ <== NOT EXECUTED 48616: 588f addql #4,%sp <== NOT EXECUTED 48618: 2040 moveal %d0,%a0 <== NOT EXECUTED 4861a: 4a80 tstl %d0 <== NOT EXECUTED 4861c: 66f0 bnes 4860e <_Thread_queue_Flush+0x22> <== NOT EXECUTED ( *remote_extract_callout )( the_thread ); else #endif the_thread->Wait.return_code = status; } } 4861e: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 48624: 4e5e unlk %fp <== NOT EXECUTED 48626: 4e75 rts 00048628 <_Thread_queue_Initialize>: Thread_queue_Control *the_thread_queue, Thread_queue_Disciplines the_discipline, States_Control state, uint32_t timeout_status ) { 48628: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4862c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED the_thread_queue->state = state; 48630: 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 ) { 48636: 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; 4863a: 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 ) { 48640: 7201 moveq #1,%d1 <== NOT EXECUTED States_Control state, uint32_t timeout_status ) { the_thread_queue->state = state; the_thread_queue->discipline = the_discipline; 48642: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED the_thread_queue->timeout_status = timeout_status; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED; 48646: 42a8 0030 clrl %a0@(48) <== NOT EXECUTED if ( the_discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) { 4864a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4864c: 6712 beqs 48660 <_Thread_queue_Initialize+0x38> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4864e: 2008 movel %a0,%d0 <== NOT EXECUTED 48650: 5880 addql #4,%d0 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 48652: 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); 48656: 2080 movel %d0,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 48658: 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 ); } } 4865c: 4e5e unlk %fp <== NOT EXECUTED 4865e: 4e75 rts <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 48660: 2248 moveal %a0,%a1 <== NOT EXECUTED 48662: 5889 addql #4,%a1 <== NOT EXECUTED 48664: 2089 movel %a1,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 48666: 43e8 0024 lea %a0@(36),%a1 <== NOT EXECUTED 4866a: 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); 4866e: 43e8 0010 lea %a0@(16),%a1 <== NOT EXECUTED 48672: 2149 000c movel %a1,%a0@(12) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 48676: 43e8 000c lea %a0@(12),%a1 <== NOT EXECUTED 4867a: 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); 4867e: 43e8 001c lea %a0@(28),%a1 <== NOT EXECUTED 48682: 2149 0018 movel %a1,%a0@(24) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 48686: 43e8 0018 lea %a0@(24),%a1 <== NOT EXECUTED 4868a: 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); 4868e: 43e8 0028 lea %a0@(40),%a1 <== NOT EXECUTED 48692: 2149 0024 movel %a1,%a0@(36) <== NOT EXECUTED the_chain->permanent_null = NULL; 48696: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 4869a: 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; 4869e: 42a8 0010 clrl %a0@(16) <== NOT EXECUTED 486a2: 42a8 001c clrl %a0@(28) <== NOT EXECUTED 486a6: 42a8 0028 clrl %a0@(40) <== NOT EXECUTED 486aa: 4e5e unlk %fp <== NOT EXECUTED 486ac: 4e75 rts <== NOT EXECUTED ... 0004c348 <_Thread_queue_Process_timeout>: #include void _Thread_queue_Process_timeout( Thread_Control *the_thread ) { 4c348: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c34c: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED Thread_queue_Control *the_thread_queue = the_thread->Wait.queue; 4c350: 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 && 4c354: 2028 0030 movel %a0@(48),%d0 <== NOT EXECUTED 4c358: 6708 beqs 4c362 <_Thread_queue_Process_timeout+0x1a> <== NOT EXECUTED 4c35a: b3f9 0005 9d3a cmpal 59d3a <_Thread_Executing>,%a1 <== NOT EXECUTED 4c360: 6718 beqs 4c37a <_Thread_queue_Process_timeout+0x32> <== NOT EXECUTED if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) { the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT; } } else { the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status; 4c362: 2368 003c 0034 movel %a0@(60),%a1@(52) <== NOT EXECUTED _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); 4c368: 2f09 movel %a1,%sp@- <== NOT EXECUTED 4c36a: 2f29 0044 movel %a1@(68),%sp@- <== NOT EXECUTED 4c36e: 4eb9 0004 c220 jsr 4c220 <_Thread_queue_Extract> <== NOT EXECUTED 4c374: 508f addql #8,%sp <== NOT EXECUTED } } 4c376: 4e5e unlk %fp <== NOT EXECUTED 4c378: 4e75 rts <== NOT EXECUTED * a timeout is not allowed to occur. */ 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 ) { 4c37a: 7203 moveq #3,%d1 <== NOT EXECUTED 4c37c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4c37e: 67f6 beqs 4c376 <_Thread_queue_Process_timeout+0x2e> <== NOT EXECUTED the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT; 4c380: 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; 4c382: 2368 003c 0034 movel %a0@(60),%a1@(52) <== NOT EXECUTED } } else { the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status; _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); } } 4c388: 4e5e unlk %fp <== 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; the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT; 4c38a: 2140 0030 movel %d0,%a0@(48) <== NOT EXECUTED } } else { the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status; _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); } } 4c38e: 4e75 rts 000486b0 <_Thread_queue_Requeue>: void _Thread_queue_Requeue( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) { 486b0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 486b4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 486b6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 486ba: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Just in case the thread really wasn't blocked on a thread queue * when we get here. */ if ( !the_thread_queue ) 486bc: 4a8a tstl %a2 <== NOT EXECUTED 486be: 6708 beqs 486c8 <_Thread_queue_Requeue+0x18> <== 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 ) { 486c0: 7001 moveq #1,%d0 <== NOT EXECUTED 486c2: b0aa 0034 cmpl %a2@(52),%d0 <== NOT EXECUTED 486c6: 670c beqs 486d4 <_Thread_queue_Requeue+0x24> <== NOT EXECUTED _Thread_queue_Extract_priority_helper( tq, the_thread, TRUE ); (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored ); } _ISR_Enable( level ); } } 486c8: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 486cc: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 486d0: 4e5e unlk %fp <== NOT EXECUTED 486d2: 4e75 rts <== NOT EXECUTED if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) { Thread_queue_Control *tq = the_thread_queue; ISR_Level level; ISR_Level level_ignored; _ISR_Disable( level ); 486d4: 303c 0700 movew #1792,%d0 <== NOT EXECUTED 486d8: 40c2 movew %sr,%d2 <== NOT EXECUTED 486da: 8082 orl %d2,%d0 <== NOT EXECUTED 486dc: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { 486de: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 486e2: 2028 0010 movel %a0@(16),%d0 <== NOT EXECUTED 486e6: 0280 0003 bee0 andil #245472,%d0 <== NOT EXECUTED 486ec: 660e bnes 486fc <_Thread_queue_Requeue+0x4c> <== NOT EXECUTED _Thread_queue_Enter_critical_section( tq ); _Thread_queue_Extract_priority_helper( tq, the_thread, TRUE ); (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored ); } _ISR_Enable( level ); 486ee: 46c2 movew %d2,%sr <== NOT EXECUTED } } 486f0: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 486f4: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 486f8: 4e5e unlk %fp <== NOT EXECUTED 486fa: 4e75 rts <== NOT EXECUTED ISR_Level level_ignored; _ISR_Disable( level ); if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { _Thread_queue_Enter_critical_section( tq ); _Thread_queue_Extract_priority_helper( tq, the_thread, TRUE ); 486fc: 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; 48700: 7001 moveq #1,%d0 <== NOT EXECUTED 48702: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED 48706: 2f08 movel %a0,%sp@- <== NOT EXECUTED 48708: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4870a: 4eb9 0004 c25c jsr 4c25c <_Thread_queue_Extract_priority_helper> <== NOT EXECUTED (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored ); 48710: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48714: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48718: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4871a: 4eb9 0004 8410 jsr 48410 <_Thread_queue_Enqueue_priority> <== NOT EXECUTED 48720: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED } _ISR_Enable( level ); 48726: 46c2 movew %d2,%sr <== NOT EXECUTED 48728: 60c6 bras 486f0 <_Thread_queue_Requeue+0x40> <== NOT EXECUTED ... 0004872c <_Thread_queue_Timeout>: void _Thread_queue_Timeout( Objects_Id id, void *ignored ) { 4872c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 48730: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48734: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48738: 4eb9 0004 7e30 jsr 47e30 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 4873e: 508f addql #8,%sp <== NOT EXECUTED 48740: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48744: 6618 bnes 4875e <_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 ); 48746: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48748: 4eb9 0004 c348 jsr 4c348 <_Thread_queue_Process_timeout> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void ) { RTEMS_COMPILER_MEMORY_BARRIER(); _Thread_Dispatch_disable_level -= 1; 4874e: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 48754: 588f addql #4,%sp <== NOT EXECUTED 48756: 5380 subql #1,%d0 <== NOT EXECUTED 48758: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Unnest_dispatch(); break; } } 4875e: 4e5e unlk %fp <== NOT EXECUTED 48760: 4e75 rts <== NOT EXECUTED ... 0004b7f8 <_Timer_Manager_initialization>: */ void _Timer_Manager_initialization( uint32_t maximum_timers ) { 4b7f8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Objects_Initialize_information( 4b7fc: 4878 0004 pea 4 <== NOT EXECUTED 4b800: 42a7 clrl %sp@- <== NOT EXECUTED 4b802: 4878 003c pea 3c <== NOT EXECUTED 4b806: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b80a: 4878 0002 pea 2 <== NOT EXECUTED 4b80e: 4878 0002 pea 2 <== NOT EXECUTED 4b812: 4879 0005 a686 pea 5a686 <_Timer_Information> <== NOT EXECUTED 4b818: 4eb9 0004 75f8 jsr 475f8 <_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; 4b81e: dffc 0000 001c addal #28,%sp <== NOT EXECUTED } 4b824: 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; 4b826: 42b9 0005 a6c6 clrl 5a6c6 <_Timer_Server> <== NOT EXECUTED _Timer_Server_schedule_operation = NULL; 4b82c: 42b9 0005 a6c2 clrl 5a6c2 <_Timer_Server_schedule_operation> <== NOT EXECUTED } 4b832: 4e75 rts 000536ae <_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; 536ae: 2239 0007 2c90 movel 72c90 <_Watchdog_Ticks_since_boot>,%d1 <== NOT EXECUTED * @param[in] ignored is the the task argument that is ignored */ Thread _Timer_Server_body( uint32_t ignored ) { 536b4: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 536b8: 2039 0007 2b48 movel 72b48 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 536be: 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; 536c2: 280e movel %fp,%d4 <== NOT EXECUTED 536c4: 260e movel %fp,%d3 <== NOT EXECUTED 536c6: 5280 addql #1,%d0 <== NOT EXECUTED 536c8: 0684 ffff fff4 addil #-12,%d4 <== NOT EXECUTED 536ce: 5183 subql #8,%d3 <== 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; 536d0: 41f9 0007 2bda lea 72bda <_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; 536d6: 23c1 0007 2ab0 movel %d1,72ab0 <_Timer_Server_ticks_last_time> <== NOT EXECUTED _Timer_Server_seconds_last_time = _TOD_Seconds_since_epoch; 536dc: 23d0 0007 2aac movel %a0@,72aac <_Timer_Server_seconds_last_time> <== NOT EXECUTED 536e2: 23c0 0007 2b48 movel %d0,72b48 <_Thread_Dispatch_disable_level> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 536e8: 2d43 fff4 movel %d3,%fp@(-12) <== NOT EXECUTED the_chain->permanent_null = NULL; 536ec: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 536f0: 2d44 fffc movel %d4,%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(); 536f4: 45f9 0005 63f0 lea 563f0 <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 536fa: 4bf9 0005 6f40 lea 56f40 <_Thread_Set_state>,%a5 <== NOT EXECUTED 53700: 49f9 0005 795c lea 5795c <_Watchdog_Insert>,%a4 <== NOT EXECUTED 53706: 47f9 0005 7aa4 lea 57aa4 <_Watchdog_Remove>,%a3 <== NOT EXECUTED */ while (1) { Watchdog_Control *watch; ISR_Level level; _ISR_Disable( level ); 5370c: 2a3c 0000 0700 movel #1792,%d5 <== 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(); 53712: 2e3c 0005 3636 movel #341558,%d7 <== NOT EXECUTED 53718: 2047 moveal %d7,%a0 <== NOT EXECUTED 5371a: 4e90 jsr %a0@ <== NOT EXECUTED 5371c: 2c3c 0005 78d4 movel #358612,%d6 <== NOT EXECUTED _Thread_Enable_dispatch(); 53722: 4e92 jsr %a2@ <== NOT EXECUTED 53724: 2039 0007 2b48 movel 72b48 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 5372a: 5280 addql #1,%d0 <== NOT EXECUTED 5372c: 23c0 0007 2b48 movel %d0,72b48 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Block until there is something to do. */ _Thread_Disable_dispatch(); _Thread_Set_state( _Timer_Server, STATES_DELAYING ); 53732: 4878 0008 pea 8 <== NOT EXECUTED 53736: 2f39 0007 342a movel 7342a <_Timer_Server>,%sp@- <== NOT EXECUTED 5373c: 4e95 jsr %a5@ <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 5373e: 2279 0007 2aa0 moveal 72aa0 <_Timer_Ticks_chain>,%a1 <== NOT EXECUTED _Timer_Server_reset_ticks_timer(); 53744: 508f addql #8,%sp <== NOT EXECUTED 53746: b3fc 0007 2aa4 cmpal #469668,%a1 <== NOT EXECUTED 5374c: 671a beqs 53768 <_Timer_Server_body+0xba> <== NOT EXECUTED 5374e: 2079 0007 342a moveal 7342a <_Timer_Server>,%a0 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 53754: 2169 0010 0054 movel %a1@(16),%a0@(84) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 5375a: 4868 0048 pea %a0@(72) <== NOT EXECUTED 5375e: 4879 0007 2c24 pea 72c24 <_Watchdog_Ticks_chain> <== NOT EXECUTED 53764: 4e94 jsr %a4@ <== NOT EXECUTED 53766: 508f addql #8,%sp <== NOT EXECUTED 53768: 2079 0007 2ab4 moveal 72ab4 <_Timer_Seconds_chain>,%a0 <== NOT EXECUTED _Timer_Server_reset_seconds_timer(); 5376e: b1fc 0007 2ab8 cmpal #469688,%a0 <== NOT EXECUTED 53774: 671c beqs 53792 <_Timer_Server_body+0xe4> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 53776: d1fc 0000 0010 addal #16,%a0 <== NOT EXECUTED 5377c: 23d0 0007 2ad8 movel %a0@,72ad8 <_Timer_Seconds_timer+0xc> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 53782: 4879 0007 2acc pea 72acc <_Timer_Seconds_timer> <== NOT EXECUTED 53788: 4879 0007 2c18 pea 72c18 <_Watchdog_Seconds_chain> <== NOT EXECUTED 5378e: 4e94 jsr %a4@ <== NOT EXECUTED 53790: 508f addql #8,%sp <== NOT EXECUTED _Thread_Enable_dispatch(); 53792: 4e92 jsr %a2@ <== NOT EXECUTED 53794: 2039 0007 2b48 movel 72b48 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 5379a: 5280 addql #1,%d0 <== NOT EXECUTED 5379c: 23c0 0007 2b48 movel %d0,72b48 <_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(); 537a2: 2039 0007 342a movel 7342a <_Timer_Server>,%d0 <== NOT EXECUTED 537a8: 0680 0000 0048 addil #72,%d0 <== NOT EXECUTED 537ae: 2f00 movel %d0,%sp@- <== NOT EXECUTED 537b0: 4e93 jsr %a3@ <== NOT EXECUTED _Timer_Server_stop_seconds_timer(); 537b2: 4879 0007 2acc pea 72acc <_Timer_Seconds_timer> <== NOT EXECUTED 537b8: 4e93 jsr %a3@ <== NOT EXECUTED ) { Watchdog_Interval snapshot; Watchdog_Interval ticks; snapshot = _Watchdog_Ticks_since_boot; 537ba: 2239 0007 2c90 movel 72c90 <_Watchdog_Ticks_since_boot>,%d1 <== NOT EXECUTED if ( snapshot >= _Timer_Server_ticks_last_time ) 537c0: 2039 0007 2ab0 movel 72ab0 <_Timer_Server_ticks_last_time>,%d0 <== NOT EXECUTED 537c6: 508f addql #8,%sp <== NOT EXECUTED 537c8: b081 cmpl %d1,%d0 <== NOT EXECUTED 537ca: 6200 00de bhiw 538aa <_Timer_Server_body+0x1fc> <== 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 ); 537ce: 2f04 movel %d4,%sp@- <== NOT EXECUTED Watchdog_Interval snapshot; Watchdog_Interval ticks; snapshot = _Watchdog_Ticks_since_boot; if ( snapshot >= _Timer_Server_ticks_last_time ) ticks = snapshot - _Timer_Server_ticks_last_time; 537d0: 2401 movel %d1,%d2 <== NOT EXECUTED 537d2: 9480 subl %d0,%d2 <== NOT EXECUTED 537d4: 2002 movel %d2,%d0 <== NOT EXECUTED 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 ); 537d6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 537d8: 2046 moveal %d6,%a0 <== NOT EXECUTED 537da: 4879 0007 2aa0 pea 72aa0 <_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; 537e0: 23c1 0007 2ab0 movel %d1,72ab0 <_Timer_Server_ticks_last_time> <== NOT EXECUTED _Watchdog_Adjust_to_chain( &_Timer_Ticks_chain, ticks, to_fire ); 537e6: 4e90 jsr %a0@ <== 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; 537e8: 2439 0007 2bda movel 72bda <_TOD_Now>,%d2 <== NOT EXECUTED if ( snapshot > _Timer_Server_seconds_last_time ) { 537ee: 2039 0007 2aac movel 72aac <_Timer_Server_seconds_last_time>,%d0 <== NOT EXECUTED 537f4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 537fa: b082 cmpl %d2,%d0 <== NOT EXECUTED 537fc: 6500 00dc bcsw 538da <_Timer_Server_body+0x22c> <== NOT EXECUTED * TOD has been set forward. */ ticks = snapshot - _Timer_Server_seconds_last_time; _Watchdog_Adjust_to_chain( &_Timer_Seconds_chain, ticks, to_fire ); } else if ( snapshot < _Timer_Server_seconds_last_time ) { 53800: b082 cmpl %d2,%d0 <== NOT EXECUTED 53802: 6200 0088 bhiw 5388c <_Timer_Server_body+0x1de> <== NOT EXECUTED _Timer_Server_process_seconds_chain( &to_fire ); /* * Insert the timers that have been requested to be inserted. */ _Timer_Server_process_insertions(); 53806: 2047 moveal %d7,%a0 <== NOT EXECUTED * TOD has been set backwards. */ ticks = _Timer_Server_seconds_last_time - snapshot; _Watchdog_Adjust( &_Timer_Seconds_chain, WATCHDOG_BACKWARD, ticks ); } _Timer_Server_seconds_last_time = snapshot; 53808: 23c2 0007 2aac movel %d2,72aac <_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(); 5380e: 4e90 jsr %a0@ <== NOT EXECUTED /* * Enable dispatching to process the set that are ready "to fire." */ _Thread_Enable_dispatch(); 53810: 4e92 jsr %a2@ <== NOT EXECUTED */ while (1) { Watchdog_Control *watch; ISR_Level level; _ISR_Disable( level ); 53812: 2005 movel %d5,%d0 <== NOT EXECUTED 53814: 40c1 movew %sr,%d1 <== NOT EXECUTED 53816: 8081 orl %d1,%d0 <== NOT EXECUTED 53818: 46c0 movew %d0,%sr <== NOT EXECUTED 5381a: 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)) 5381e: b3c3 cmpal %d3,%a1 <== NOT EXECUTED 53820: 6764 beqs 53886 <_Timer_Server_body+0x1d8> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 53822: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_chain->first = new_first; 53824: 2d48 fff4 movel %a0,%fp@(-12) <== NOT EXECUTED if ( watch == NULL ) { _ISR_Enable( level ); break; } watch->state = WATCHDOG_INACTIVE; 53828: 42a9 0008 clrl %a1@(8) <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 5382c: 2144 0004 movel %d4,%a0@(4) <== NOT EXECUTED _ISR_Enable( level ); 53830: 46c1 movew %d1,%sr <== NOT EXECUTED (*watch->routine)( watch->id, watch->user_data ); 53832: 2f29 0024 movel %a1@(36),%sp@- <== NOT EXECUTED 53836: 2f29 0020 movel %a1@(32),%sp@- <== NOT EXECUTED 5383a: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 5383e: 4e90 jsr %a0@ <== NOT EXECUTED */ while (1) { Watchdog_Control *watch; ISR_Level level; _ISR_Disable( level ); 53840: 2005 movel %d5,%d0 <== NOT EXECUTED 53842: 40c1 movew %sr,%d1 <== NOT EXECUTED 53844: 8081 orl %d1,%d0 <== NOT EXECUTED 53846: 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)); 53848: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected( Chain_Control *the_chain ) { if ( !_Chain_Is_empty(the_chain)) 5384c: 508f addql #8,%sp <== NOT EXECUTED watch = (Watchdog_Control *) _Chain_Get_unprotected( &to_fire ); 5384e: 2248 moveal %a0,%a1 <== NOT EXECUTED 53850: b1c3 cmpal %d3,%a0 <== NOT EXECUTED 53852: 6732 beqs 53886 <_Timer_Server_body+0x1d8> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 53854: 2050 moveal %a0@,%a0 <== NOT EXECUTED the_chain->first = new_first; 53856: 2d48 fff4 movel %a0,%fp@(-12) <== NOT EXECUTED if ( watch == NULL ) { _ISR_Enable( level ); break; } watch->state = WATCHDOG_INACTIVE; 5385a: 42a9 0008 clrl %a1@(8) <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 5385e: 2144 0004 movel %d4,%a0@(4) <== NOT EXECUTED _ISR_Enable( level ); 53862: 46c1 movew %d1,%sr <== NOT EXECUTED (*watch->routine)( watch->id, watch->user_data ); 53864: 2f29 0024 movel %a1@(36),%sp@- <== NOT EXECUTED 53868: 2f29 0020 movel %a1@(32),%sp@- <== NOT EXECUTED 5386c: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 53870: 4e90 jsr %a0@ <== NOT EXECUTED */ while (1) { Watchdog_Control *watch; ISR_Level level; _ISR_Disable( level ); 53872: 2005 movel %d5,%d0 <== NOT EXECUTED 53874: 40c1 movew %sr,%d1 <== NOT EXECUTED 53876: 8081 orl %d1,%d0 <== NOT EXECUTED 53878: 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)); 5387a: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected( Chain_Control *the_chain ) { if ( !_Chain_Is_empty(the_chain)) 5387e: 508f addql #8,%sp <== NOT EXECUTED watch = (Watchdog_Control *) _Chain_Get_unprotected( &to_fire ); 53880: 2248 moveal %a0,%a1 <== NOT EXECUTED 53882: b1c3 cmpal %d3,%a0 <== NOT EXECUTED 53884: 66ce bnes 53854 <_Timer_Server_body+0x1a6> <== NOT EXECUTED if ( watch == NULL ) { _ISR_Enable( level ); 53886: 46c1 movew %d1,%sr <== NOT EXECUTED 53888: 6000 fe9a braw 53724 <_Timer_Server_body+0x76> <== 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 ); 5388c: 9082 subl %d2,%d0 <== NOT EXECUTED 5388e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 53890: 4878 0001 pea 1 <== NOT EXECUTED 53894: 4879 0007 2ab4 pea 72ab4 <_Timer_Seconds_chain> <== NOT EXECUTED 5389a: 4eb9 0005 7840 jsr 57840 <_Watchdog_Adjust> <== NOT EXECUTED 538a0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 538a6: 6000 ff5e braw 53806 <_Timer_Server_body+0x158> <== 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 ); 538aa: 2f04 movel %d4,%sp@- <== NOT EXECUTED snapshot = _Watchdog_Ticks_since_boot; if ( snapshot >= _Timer_Server_ticks_last_time ) ticks = snapshot - _Timer_Server_ticks_last_time; else ticks = (0xFFFFFFFF - _Timer_Server_ticks_last_time) + snapshot; 538ac: 4680 notl %d0 <== NOT EXECUTED 538ae: d081 addl %d1,%d0 <== NOT EXECUTED _Timer_Server_ticks_last_time = snapshot; _Watchdog_Adjust_to_chain( &_Timer_Ticks_chain, ticks, to_fire ); 538b0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 538b2: 2046 moveal %d6,%a0 <== NOT EXECUTED 538b4: 4879 0007 2aa0 pea 72aa0 <_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; 538ba: 23c1 0007 2ab0 movel %d1,72ab0 <_Timer_Server_ticks_last_time> <== NOT EXECUTED _Watchdog_Adjust_to_chain( &_Timer_Ticks_chain, ticks, to_fire ); 538c0: 4e90 jsr %a0@ <== 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; 538c2: 2439 0007 2bda movel 72bda <_TOD_Now>,%d2 <== NOT EXECUTED if ( snapshot > _Timer_Server_seconds_last_time ) { 538c8: 2039 0007 2aac movel 72aac <_Timer_Server_seconds_last_time>,%d0 <== NOT EXECUTED 538ce: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 538d4: b082 cmpl %d2,%d0 <== NOT EXECUTED 538d6: 6400 ff28 bccw 53800 <_Timer_Server_body+0x152> <== 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 ); 538da: 2f04 movel %d4,%sp@- <== NOT EXECUTED 538dc: 2202 movel %d2,%d1 <== NOT EXECUTED 538de: 9280 subl %d0,%d1 <== NOT EXECUTED 538e0: 2f01 movel %d1,%sp@- <== NOT EXECUTED 538e2: 4879 0007 2ab4 pea 72ab4 <_Timer_Seconds_chain> <== NOT EXECUTED 538e8: 4eb9 0005 78d4 jsr 578d4 <_Watchdog_Adjust_to_chain> <== NOT EXECUTED 538ee: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 538f4: 6000 ff10 braw 53806 <_Timer_Server_body+0x158> <== NOT EXECUTED 00053636 <_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) { 53636: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 5363a: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED 5363e: 45f9 0005 41b8 lea 541b8 <_Chain_Get>,%a2 <== NOT EXECUTED Timer_Control *the_timer; while ( 1 ) { the_timer = (Timer_Control *) _Chain_Get( &_Timer_To_be_inserted ); 53644: 4879 0007 2ac0 pea 72ac0 <_Timer_To_be_inserted> <== NOT EXECUTED 5364a: 4e92 jsr %a2@ <== 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 ); 5364c: 49f9 0005 795c lea 5795c <_Watchdog_Insert>,%a4 <== NOT EXECUTED } /* * Insert the timers that have been requested to be inserted. */ _Timer_Server_process_insertions(); 53652: 47fa ffe2 lea %pc@(53636 <_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 ); 53656: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( the_timer == NULL ) 53658: 588f addql #4,%sp <== NOT EXECUTED 5365a: 4a80 tstl %d0 <== NOT EXECUTED 5365c: 6722 beqs 53680 <_Timer_Server_process_insertions+0x4a> <== NOT EXECUTED break; if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) { 5365e: 2028 0038 movel %a0@(56),%d0 <== NOT EXECUTED 53662: 7201 moveq #1,%d1 <== NOT EXECUTED 53664: b280 cmpl %d0,%d1 <== NOT EXECUTED 53666: 6734 beqs 5369c <_Timer_Server_process_insertions+0x66> <== NOT EXECUTED _Watchdog_Insert( &_Timer_Ticks_chain, &the_timer->Ticker ); } else if ( the_timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) { 53668: 7203 moveq #3,%d1 <== NOT EXECUTED 5366a: b280 cmpl %d0,%d1 <== NOT EXECUTED 5366c: 671c beqs 5368a <_Timer_Server_process_insertions+0x54> <== NOT EXECUTED } /* * Insert the timers that have been requested to be inserted. */ _Timer_Server_process_insertions(); 5366e: 4e93 jsr %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 ); 53670: 4879 0007 2ac0 pea 72ac0 <_Timer_To_be_inserted> <== NOT EXECUTED 53676: 4e92 jsr %a2@ <== NOT EXECUTED if ( the_timer == NULL ) 53678: 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 ); 5367a: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( the_timer == NULL ) 5367c: 4a80 tstl %d0 <== NOT EXECUTED 5367e: 66de bnes 5365e <_Timer_Server_process_insertions+0x28> <== NOT EXECUTED * Insert the timers that have been requested to be inserted. */ _Timer_Server_process_insertions(); } } 53680: 4cee 1c00 fff4 moveml %fp@(-12),%a2-%a4 <== NOT EXECUTED 53686: 4e5e unlk %fp <== NOT EXECUTED 53688: 4e75 rts <== 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 ); 5368a: 4868 0010 pea %a0@(16) <== NOT EXECUTED 5368e: 4879 0007 2ab4 pea 72ab4 <_Timer_Seconds_chain> <== NOT EXECUTED 53694: 4e94 jsr %a4@ <== NOT EXECUTED 53696: 508f addql #8,%sp <== NOT EXECUTED } /* * Insert the timers that have been requested to be inserted. */ _Timer_Server_process_insertions(); 53698: 4e93 jsr %a3@ <== NOT EXECUTED 5369a: 60d4 bras 53670 <_Timer_Server_process_insertions+0x3a> <== NOT EXECUTED the_timer = (Timer_Control *) _Chain_Get( &_Timer_To_be_inserted ); if ( the_timer == NULL ) break; if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) { _Watchdog_Insert( &_Timer_Ticks_chain, &the_timer->Ticker ); 5369c: 4868 0010 pea %a0@(16) <== NOT EXECUTED 536a0: 4879 0007 2aa0 pea 72aa0 <_Timer_Ticks_chain> <== NOT EXECUTED 536a6: 4e94 jsr %a4@ <== NOT EXECUTED 536a8: 508f addql #8,%sp <== NOT EXECUTED } /* * Insert the timers that have been requested to be inserted. */ _Timer_Server_process_insertions(); 536aa: 4e93 jsr %a3@ <== NOT EXECUTED 536ac: 60c2 bras 53670 <_Timer_Server_process_insertions+0x3a> <== NOT EXECUTED 000535f2 <_Timer_Server_schedule_operation_method>: * the directive invoking this is executed. */ static void _Timer_Server_schedule_operation_method( Timer_Control *the_timer ) { 535f2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Chain_Append( &_Timer_To_be_inserted, &the_timer->Object.Node ); 535f6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 535fa: 4879 0007 2ac0 pea 72ac0 <_Timer_To_be_inserted> <== NOT EXECUTED 53600: 4eb9 0005 4180 jsr 54180 <_Chain_Append> <== NOT EXECUTED _Watchdog_Remove( &_Timer_Server->Timer ); 53606: 2039 0007 342a movel 7342a <_Timer_Server>,%d0 <== NOT EXECUTED 5360c: 0680 0000 0048 addil #72,%d0 <== NOT EXECUTED 53612: 2f00 movel %d0,%sp@- <== NOT EXECUTED 53614: 4eb9 0005 7aa4 jsr 57aa4 <_Watchdog_Remove> <== NOT EXECUTED _Thread_Delay_ended( _Timer_Server->Object.id, NULL ); 5361a: 2079 0007 342a moveal 7342a <_Timer_Server>,%a0 <== NOT EXECUTED 53620: 42a7 clrl %sp@- <== NOT EXECUTED 53622: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 53626: 4eb9 0005 6258 jsr 56258 <_Thread_Delay_ended> <== NOT EXECUTED 5362c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED } 53632: 4e5e unlk %fp <== NOT EXECUTED 53634: 4e75 rts 00048cec <_Timespec_Add_to>: uint32_t _Timespec_Add_to( struct timespec *time, const struct timespec *add ) { 48cec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48cf0: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 48cf4: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED uint32_t seconds = add->tv_sec; /* Add the basics */ time->tv_sec += add->tv_sec; time->tv_nsec += add->tv_nsec; 48cf8: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED uint32_t _Timespec_Add_to( struct timespec *time, const struct timespec *add ) { 48cfc: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t seconds = add->tv_sec; 48cfe: 2410 movel %a0@,%d2 <== NOT EXECUTED /* Add the basics */ time->tv_sec += add->tv_sec; time->tv_nsec += add->tv_nsec; 48d00: d0a9 0004 addl %a1@(4),%d0 <== NOT EXECUTED ) { uint32_t seconds = add->tv_sec; /* Add the basics */ time->tv_sec += add->tv_sec; 48d04: d591 addl %d2,%a1@ <== NOT EXECUTED time->tv_nsec += add->tv_nsec; /* Now adjust it so nanoseconds is in range */ while ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) { 48d06: 2200 movel %d0,%d1 <== NOT EXECUTED { uint32_t seconds = add->tv_sec; /* Add the basics */ time->tv_sec += add->tv_sec; time->tv_nsec += add->tv_nsec; 48d08: 2340 0004 movel %d0,%a1@(4) <== NOT EXECUTED /* Now adjust it so nanoseconds is in range */ while ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) { 48d0c: 0c80 3b9a c9ff cmpil #999999999,%d0 <== NOT EXECUTED 48d12: 631a blss 48d2e <_Timespec_Add_to+0x42> <== NOT EXECUTED time->tv_nsec -= TOD_NANOSECONDS_PER_SECOND; 48d14: 2001 movel %d1,%d0 <== NOT EXECUTED time->tv_sec++; 48d16: 5291 addql #1,%a1@ <== 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; 48d18: 0680 c465 3600 addil #-1000000000,%d0 <== NOT EXECUTED time->tv_sec++; seconds++; 48d1e: 5282 addql #1,%d2 <== 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; 48d20: 2340 0004 movel %d0,%a1@(4) <== 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 ) { 48d24: 2200 movel %d0,%d1 <== NOT EXECUTED 48d26: 0c80 3b9a c9ff cmpil #999999999,%d0 <== NOT EXECUTED 48d2c: 62e6 bhis 48d14 <_Timespec_Add_to+0x28> <== NOT EXECUTED time->tv_sec++; seconds++; } return seconds; } 48d2e: 2002 movel %d2,%d0 <== NOT EXECUTED 48d30: 241f movel %sp@+,%d2 <== NOT EXECUTED 48d32: 4e5e unlk %fp <== NOT EXECUTED 48d34: 4e75 rts <== NOT EXECUTED ... 0004a318 <_Timespec_Divide>: const struct timespec *lhs, const struct timespec *rhs, uint32_t *ival_percentage, uint32_t *fval_percentage ) { 4a318: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 4a31c: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 4a320: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4a324: 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; right = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; 4a328: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED 4a32e: 4bf9 0005 70a4 lea 570a4 <__muldi3>,%a5 <== NOT EXECUTED 4a334: 42a7 clrl %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; 4a336: 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; 4a33a: 2810 movel %a0@,%d4 <== NOT EXECUTED left += lhs->tv_nsec; right = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; 4a33c: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 4a33e: 5bc0 smi %d0 <== NOT EXECUTED 4a340: 49c0 extbl %d0 <== NOT EXECUTED 4a342: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a344: 4e95 jsr %a5@ <== NOT EXECUTED right += rhs->tv_nsec; 4a346: 262a 0004 movel %a2@(4),%d3 <== NOT EXECUTED 4a34a: 5bc2 smi %d2 <== NOT EXECUTED 4a34c: 49c2 extbl %d2 <== NOT EXECUTED 4a34e: d283 addl %d3,%d1 <== NOT EXECUTED 4a350: 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; 4a352: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED right += rhs->tv_nsec; 4a358: 2640 moveal %d0,%a3 <== NOT EXECUTED 4a35a: 2841 moveal %d1,%a4 <== NOT EXECUTED if ( right == 0 ) { 4a35c: 4a8b tstl %a3 <== NOT EXECUTED 4a35e: 661a bnes 4a37a <_Timespec_Divide+0x62> <== NOT EXECUTED 4a360: 4a8c tstl %a4 <== NOT EXECUTED 4a362: 6616 bnes 4a37a <_Timespec_Divide+0x62> <== NOT EXECUTED *ival_percentage = 0; 4a364: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 4a368: 4290 clrl %a0@ <== NOT EXECUTED *fval_percentage = 0; 4a36a: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED answer = (left * 100000) / right; *ival_percentage = answer / 1000; *fval_percentage = answer % 1000; } 4a36e: 4cee 3cfc ffd8 moveml %fp@(-40),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a374: 4e5e unlk %fp <== NOT EXECUTED right = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND; right += rhs->tv_nsec; if ( right == 0 ) { *ival_percentage = 0; *fval_percentage = 0; 4a376: 4290 clrl %a0@ <== NOT EXECUTED answer = (left * 100000) / right; *ival_percentage = answer / 1000; *fval_percentage = answer % 1000; } 4a378: 4e75 rts <== NOT EXECUTED * Put it back in the timespec result. * * TODO: Rounding on the last digit of the fval. */ answer = (left * 100000) / right; 4a37a: 2605 movel %d5,%d3 <== NOT EXECUTED 4a37c: 5bc2 smi %d2 <== NOT EXECUTED 4a37e: 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; 4a380: 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; 4a386: 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; 4a388: 42a7 clrl %sp@- <== NOT EXECUTED 4a38a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4a38c: 5bc0 smi %d0 <== NOT EXECUTED 4a38e: 49c0 extbl %d0 <== NOT EXECUTED 4a390: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a392: 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; 4a394: d283 addl %d3,%d1 <== NOT EXECUTED 4a396: d182 addxl %d2,%d0 <== NOT EXECUTED 4a398: 2801 movel %d1,%d4 <== NOT EXECUTED 4a39a: 741e moveq #30,%d2 <== NOT EXECUTED 4a39c: e4ac lsrl %d2,%d4 <== NOT EXECUTED 4a39e: 2400 movel %d0,%d2 <== NOT EXECUTED 4a3a0: 2601 movel %d1,%d3 <== NOT EXECUTED 4a3a2: e58a lsll #2,%d2 <== NOT EXECUTED 4a3a4: 8484 orl %d4,%d2 <== NOT EXECUTED 4a3a6: e58b lsll #2,%d3 <== NOT EXECUTED 4a3a8: 2803 movel %d3,%d4 <== NOT EXECUTED 4a3aa: 2c02 movel %d2,%d6 <== NOT EXECUTED 4a3ac: eaac lsrl %d5,%d4 <== NOT EXECUTED 4a3ae: 2e03 movel %d3,%d7 <== NOT EXECUTED 4a3b0: eb8e lsll #5,%d6 <== NOT EXECUTED 4a3b2: 8c84 orl %d4,%d6 <== NOT EXECUTED 4a3b4: eb8f lsll #5,%d7 <== NOT EXECUTED 4a3b6: 2806 movel %d6,%d4 <== NOT EXECUTED 4a3b8: 2a07 movel %d7,%d5 <== NOT EXECUTED 4a3ba: 9a83 subl %d3,%d5 <== NOT EXECUTED 4a3bc: 9982 subxl %d2,%d4 <== NOT EXECUTED 4a3be: da81 addl %d1,%d5 <== NOT EXECUTED 4a3c0: d980 addxl %d0,%d4 <== NOT EXECUTED 4a3c2: 721e moveq #30,%d1 <== NOT EXECUTED 4a3c4: 2005 movel %d5,%d0 <== NOT EXECUTED 4a3c6: 2404 movel %d4,%d2 <== NOT EXECUTED 4a3c8: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 4a3ca: 2605 movel %d5,%d3 <== NOT EXECUTED 4a3cc: e58a lsll #2,%d2 <== NOT EXECUTED 4a3ce: 8480 orl %d0,%d2 <== NOT EXECUTED 4a3d0: 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; 4a3d2: 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; 4a3d8: da83 addl %d3,%d5 <== NOT EXECUTED 4a3da: d982 addxl %d2,%d4 <== NOT EXECUTED 4a3dc: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4a3de: 2005 movel %d5,%d0 <== NOT EXECUTED 4a3e0: 2404 movel %d4,%d2 <== NOT EXECUTED 4a3e2: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 4a3e4: 2605 movel %d5,%d3 <== NOT EXECUTED 4a3e6: e58a lsll #2,%d2 <== NOT EXECUTED 4a3e8: 8480 orl %d0,%d2 <== NOT EXECUTED 4a3ea: e58b lsll #2,%d3 <== NOT EXECUTED 4a3ec: da83 addl %d3,%d5 <== NOT EXECUTED 4a3ee: d982 addxl %d2,%d4 <== NOT EXECUTED 4a3f0: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a3f2: 2005 movel %d5,%d0 <== NOT EXECUTED 4a3f4: 741b moveq #27,%d2 <== NOT EXECUTED 4a3f6: 2605 movel %d5,%d3 <== NOT EXECUTED 4a3f8: e4a8 lsrl %d2,%d0 <== NOT EXECUTED 4a3fa: eb8b lsll #5,%d3 <== NOT EXECUTED 4a3fc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a3fe: 2404 movel %d4,%d2 <== NOT EXECUTED 4a400: eb8a lsll #5,%d2 <== NOT EXECUTED 4a402: 8480 orl %d0,%d2 <== NOT EXECUTED 4a404: 45f9 0005 710c lea 5710c <__udivdi3>,%a2 <== NOT EXECUTED 4a40a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a40c: 4e92 jsr %a2@ <== NOT EXECUTED 4a40e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED *ival_percentage = answer / 1000; 4a414: 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; 4a418: 2400 movel %d0,%d2 <== NOT EXECUTED 4a41a: 2601 movel %d1,%d3 <== NOT EXECUTED *ival_percentage = answer / 1000; 4a41c: 42a7 clrl %sp@- <== NOT EXECUTED 4a41e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a420: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a422: 4e92 jsr %a2@ <== NOT EXECUTED 4a424: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED *fval_percentage = answer % 1000; 4a42a: 4878 03e8 pea 3e8 <== NOT EXECUTED 4a42e: 42a7 clrl %sp@- <== NOT EXECUTED * TODO: Rounding on the last digit of the fval. */ answer = (left * 100000) / right; *ival_percentage = answer / 1000; 4a430: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 4a434: 2081 movel %d1,%a0@ <== NOT EXECUTED *fval_percentage = answer % 1000; 4a436: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a438: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a43a: 4eb9 0005 74c0 jsr 574c0 <__umoddi3> <== NOT EXECUTED 4a440: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 4a444: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 4a44a: 4cee 3cfc ffd8 moveml %fp@(-40),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a450: 4e5e unlk %fp <== NOT EXECUTED */ answer = (left * 100000) / right; *ival_percentage = answer / 1000; *fval_percentage = answer % 1000; 4a452: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4a454: 4e75 rts <== NOT EXECUTED ... 00064718 <_Timespec_Divide_by_integer>: void _Timespec_Divide_by_integer( const struct timespec *time, uint32_t iterations, struct timespec *result ) { 64718: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 6471c: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%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; 64720: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED void _Timespec_Divide_by_integer( const struct timespec *time, uint32_t iterations, struct timespec *result ) { 64726: 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; 6472a: 42a7 clrl %sp@- <== NOT EXECUTED 6472c: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 6472e: 5bc0 smi %d0 <== NOT EXECUTED 64730: 49c0 extbl %d0 <== NOT EXECUTED 64732: 2f00 movel %d0,%sp@- <== NOT EXECUTED 64734: 4eb9 0007 f25c jsr 7f25c <__muldi3> <== NOT EXECUTED /* * Divide to get nanoseconds per iteration */ t /= iterations; 6473a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 64740: 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; 64744: 262a 0004 movel %a2@(4),%d3 <== NOT EXECUTED 64748: 5bc2 smi %d2 <== NOT EXECUTED 6474a: 49c2 extbl %d2 <== NOT EXECUTED /* * Divide to get nanoseconds per iteration */ t /= iterations; 6474c: d283 addl %d3,%d1 <== NOT EXECUTED 6474e: d182 addxl %d2,%d0 <== NOT EXECUTED 64750: 42a7 clrl %sp@- <== NOT EXECUTED 64752: 47f9 0007 f340 lea 7f340 <__udivdi3>,%a3 <== NOT EXECUTED 64758: 2f01 movel %d1,%sp@- <== NOT EXECUTED 6475a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 6475c: 4e93 jsr %a3@ <== NOT EXECUTED 6475e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED /* * Put it back in the timespec result */ result->tv_sec = t / TOD_NANOSECONDS_PER_SECOND; 64764: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED /* * Divide to get nanoseconds per iteration */ t /= iterations; 6476a: 2400 movel %d0,%d2 <== NOT EXECUTED 6476c: 2601 movel %d1,%d3 <== NOT EXECUTED /* * Put it back in the timespec result */ result->tv_sec = t / TOD_NANOSECONDS_PER_SECOND; 6476e: 42a7 clrl %sp@- <== NOT EXECUTED 64770: 2f03 movel %d3,%sp@- <== NOT EXECUTED 64772: 2f00 movel %d0,%sp@- <== NOT EXECUTED 64774: 4e93 jsr %a3@ <== NOT EXECUTED 64776: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED result->tv_nsec = t % TOD_NANOSECONDS_PER_SECOND; 6477c: 2f3c 3b9a ca00 movel #1000000000,%sp@- <== NOT EXECUTED void _Timespec_Divide_by_integer( const struct timespec *time, uint32_t iterations, struct timespec *result ) { 64782: 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; 64786: 42a7 clrl %sp@- <== NOT EXECUTED /* * Put it back in the timespec result */ result->tv_sec = t / TOD_NANOSECONDS_PER_SECOND; 64788: 2481 movel %d1,%a2@ <== NOT EXECUTED result->tv_nsec = t % TOD_NANOSECONDS_PER_SECOND; 6478a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6478c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6478e: 4eb9 0007 f6f4 jsr 7f6f4 <__umoddi3> <== NOT EXECUTED 64794: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED 64798: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 6479e: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 647a4: 4e5e unlk %fp <== NOT EXECUTED 647a6: 4e75 rts 000543f0 <_Timespec_From_ticks>: void _Timespec_From_ticks( uint32_t ticks, struct timespec *time ) { 543f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED uint32_t usecs; usecs = ticks * _TOD_Microseconds_per_tick; 543f4: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 543f8: 43f9 0006 8312 lea 68312 <_TOD_Microseconds_per_tick>,%a1 <== NOT EXECUTED 543fe: 4c11 0800 mulsl %a1@,%d0 <== NOT EXECUTED void _Timespec_From_ticks( uint32_t ticks, struct timespec *time ) { 54402: 2f02 movel %d2,%sp@- <== NOT EXECUTED 54404: 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; 54408: 243c 000f 4240 movel #1000000,%d2 <== NOT EXECUTED 5440e: 4c42 0001 remul %d2,%d1,%d0 <== NOT EXECUTED 54412: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 54416: 2080 movel %d0,%a0@ <== NOT EXECUTED time->tv_nsec = (usecs % TOD_MICROSECONDS_PER_SECOND) * 54418: 2401 movel %d1,%d2 <== NOT EXECUTED 5441a: 2001 movel %d1,%d0 <== NOT EXECUTED 5441c: e58a lsll #2,%d2 <== NOT EXECUTED 5441e: ef88 lsll #7,%d0 <== NOT EXECUTED 54420: 9082 subl %d2,%d0 <== NOT EXECUTED TOD_NANOSECONDS_PER_MICROSECOND; } 54422: 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) * 54424: d081 addl %d1,%d0 <== NOT EXECUTED 54426: e788 lsll #3,%d0 <== NOT EXECUTED TOD_NANOSECONDS_PER_MICROSECOND; } 54428: 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) * 5442a: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED TOD_NANOSECONDS_PER_MICROSECOND; } 5442e: 4e75 rts 0004ae3c <_Timespec_Greater_than>: bool _Timespec_Greater_than( const struct timespec *lhs, const struct timespec *rhs ) { 4ae3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ae40: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 4ae44: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED if ( lhs->tv_sec > rhs->tv_sec ) 4ae48: 2211 movel %a1@,%d1 <== NOT EXECUTED 4ae4a: 2010 movel %a0@,%d0 <== NOT EXECUTED 4ae4c: b081 cmpl %d1,%d0 <== NOT EXECUTED 4ae4e: 6d18 blts 4ae68 <_Timespec_Greater_than+0x2c> <== NOT EXECUTED return TRUE; if ( lhs->tv_sec < rhs->tv_sec ) 4ae50: 6e10 bgts 4ae62 <_Timespec_Greater_than+0x26> <== NOT EXECUTED return FALSE; /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec > rhs->tv_nsec ) 4ae52: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 4ae56: b1e9 0004 cmpal %a1@(4),%a0 <== NOT EXECUTED 4ae5a: 5dc0 slt %d0 <== NOT EXECUTED return TRUE; return FALSE; } 4ae5c: 4e5e unlk %fp <== NOT EXECUTED if ( lhs->tv_sec < rhs->tv_sec ) return FALSE; /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec > rhs->tv_nsec ) 4ae5e: 4480 negl %d0 <== NOT EXECUTED return TRUE; return FALSE; } 4ae60: 4e75 rts <== NOT EXECUTED 4ae62: 4e5e unlk %fp <== NOT EXECUTED ) { if ( lhs->tv_sec > rhs->tv_sec ) return TRUE; if ( lhs->tv_sec < rhs->tv_sec ) 4ae64: 4200 clrb %d0 <== NOT EXECUTED /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec > rhs->tv_nsec ) return TRUE; return FALSE; } 4ae66: 4e75 rts <== NOT EXECUTED 4ae68: 4e5e unlk %fp <== NOT EXECUTED bool _Timespec_Greater_than( const struct timespec *lhs, const struct timespec *rhs ) { if ( lhs->tv_sec > rhs->tv_sec ) 4ae6a: 7001 moveq #1,%d0 <== NOT EXECUTED /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec > rhs->tv_nsec ) return TRUE; return FALSE; } 4ae6c: 4e75 rts <== NOT EXECUTED ... 00054430 <_Timespec_Is_valid>: #include bool _Timespec_Is_valid( const struct timespec *time ) { 54430: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 54434: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !time ) 54438: 4a88 tstl %a0 <== NOT EXECUTED 5443a: 6718 beqs 54454 <_Timespec_Is_valid+0x24> <== NOT EXECUTED return FALSE; if ( time->tv_sec < 0 ) 5443c: 4a90 tstl %a0@ <== NOT EXECUTED 5443e: 6d14 blts 54454 <_Timespec_Is_valid+0x24> <== NOT EXECUTED return FALSE; if ( time->tv_nsec < 0 ) 54440: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED 54444: 6d0e blts 54454 <_Timespec_Is_valid+0x24> <== NOT EXECUTED if ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) return FALSE; return TRUE; } 54446: 4e5e unlk %fp <== NOT EXECUTED return FALSE; if ( time->tv_sec < 0 ) return FALSE; if ( time->tv_nsec < 0 ) 54448: 0c80 3b9a c9ff cmpil #999999999,%d0 <== NOT EXECUTED 5444e: 53c0 sls %d0 <== NOT EXECUTED 54450: 4480 negl %d0 <== NOT EXECUTED if ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) return FALSE; return TRUE; } 54452: 4e75 rts <== NOT EXECUTED 54454: 4e5e unlk %fp <== NOT EXECUTED return FALSE; if ( time->tv_sec < 0 ) return FALSE; if ( time->tv_nsec < 0 ) 54456: 4200 clrb %d0 <== NOT EXECUTED if ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) return FALSE; return TRUE; } 54458: 4e75 rts <== NOT EXECUTED ... 0004c080 <_Timespec_Less_than>: bool _Timespec_Less_than( const struct timespec *lhs, const struct timespec *rhs ) { 4c080: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c084: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 4c088: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED if ( lhs->tv_sec < rhs->tv_sec ) 4c08c: 2211 movel %a1@,%d1 <== NOT EXECUTED 4c08e: 2010 movel %a0@,%d0 <== NOT EXECUTED 4c090: b081 cmpl %d1,%d0 <== NOT EXECUTED 4c092: 6e18 bgts 4c0ac <_Timespec_Less_than+0x2c> <== NOT EXECUTED return TRUE; if ( lhs->tv_sec > rhs->tv_sec ) 4c094: 6d10 blts 4c0a6 <_Timespec_Less_than+0x26> <== NOT EXECUTED return FALSE; /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec < rhs->tv_nsec ) 4c096: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 4c09a: b1e9 0004 cmpal %a1@(4),%a0 <== NOT EXECUTED 4c09e: 5ec0 sgt %d0 <== NOT EXECUTED return TRUE; return FALSE; } 4c0a0: 4e5e unlk %fp <== NOT EXECUTED if ( lhs->tv_sec > rhs->tv_sec ) return FALSE; /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec < rhs->tv_nsec ) 4c0a2: 4480 negl %d0 <== NOT EXECUTED return TRUE; return FALSE; } 4c0a4: 4e75 rts <== NOT EXECUTED 4c0a6: 4e5e unlk %fp <== NOT EXECUTED ) { if ( lhs->tv_sec < rhs->tv_sec ) return TRUE; if ( lhs->tv_sec > rhs->tv_sec ) 4c0a8: 4200 clrb %d0 <== NOT EXECUTED /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec < rhs->tv_nsec ) return TRUE; return FALSE; } 4c0aa: 4e75 rts <== NOT EXECUTED 4c0ac: 4e5e unlk %fp <== NOT EXECUTED bool _Timespec_Less_than( const struct timespec *lhs, const struct timespec *rhs ) { if ( lhs->tv_sec < rhs->tv_sec ) 4c0ae: 7001 moveq #1,%d0 <== NOT EXECUTED /* ASSERT: lhs->tv_sec == rhs->tv_sec */ if ( lhs->tv_nsec < rhs->tv_nsec ) return TRUE; return FALSE; } 4c0b0: 4e75 rts <== NOT EXECUTED ... 00048d38 <_Timespec_Subtract>: void _Timespec_Subtract( const struct timespec *start, const struct timespec *end, struct timespec *result ) { 48d38: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48d3c: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 48d40: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48d42: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED if (end->tv_nsec < start->tv_nsec) { 48d46: 2029 0004 movel %a1@(4),%d0 <== NOT EXECUTED void _Timespec_Subtract( const struct timespec *start, const struct timespec *end, struct timespec *result ) { 48d4a: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED if (end->tv_nsec < start->tv_nsec) { 48d4e: b0a8 0004 cmpl %a0@(4),%d0 <== NOT EXECUTED 48d52: 6e18 bgts 48d6c <_Timespec_Subtract+0x34> <== NOT EXECUTED result->tv_sec = end->tv_sec - start->tv_sec - 1; result->tv_nsec = (TOD_NANOSECONDS_PER_SECOND - start->tv_nsec) + end->tv_nsec; } else { result->tv_sec = end->tv_sec - start->tv_sec; 48d54: 2010 movel %a0@,%d0 <== NOT EXECUTED 48d56: 9091 subl %a1@,%d0 <== NOT EXECUTED 48d58: 2480 movel %d0,%a2@ <== NOT EXECUTED result->tv_nsec = end->tv_nsec - start->tv_nsec; 48d5a: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED 48d5e: 90a9 0004 subl %a1@(4),%d0 <== NOT EXECUTED 48d62: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED } } 48d66: 245f moveal %sp@+,%a2 <== NOT EXECUTED 48d68: 4e5e unlk %fp <== NOT EXECUTED 48d6a: 4e75 rts <== NOT EXECUTED struct timespec *result ) { if (end->tv_nsec < start->tv_nsec) { result->tv_sec = end->tv_sec - start->tv_sec - 1; 48d6c: 2010 movel %a0@,%d0 <== NOT EXECUTED result->tv_nsec = 48d6e: 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; 48d72: 5380 subql #1,%d0 <== NOT EXECUTED result->tv_nsec = 48d74: 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; 48d7a: 9091 subl %a1@,%d0 <== NOT EXECUTED result->tv_nsec = 48d7c: 92a9 0004 subl %a1@(4),%d1 <== NOT EXECUTED struct timespec *result ) { if (end->tv_nsec < start->tv_nsec) { result->tv_sec = end->tv_sec - start->tv_sec - 1; 48d80: 2480 movel %d0,%a2@ <== NOT EXECUTED result->tv_nsec = 48d82: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED (TOD_NANOSECONDS_PER_SECOND - start->tv_nsec) + end->tv_nsec; } else { result->tv_sec = end->tv_sec - start->tv_sec; result->tv_nsec = end->tv_nsec - start->tv_nsec; } } 48d86: 245f moveal %sp@+,%a2 <== NOT EXECUTED 48d88: 4e5e unlk %fp <== NOT EXECUTED 48d8a: 4e75 rts 0004c4d8 <_Timespec_To_ticks>: */ uint32_t _Timespec_To_ticks( const struct timespec *time ) { 4c4d8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4c4dc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4c4e0: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED uint32_t ticks; if ( (time->tv_sec == 0) && (time->tv_nsec == 0) ) 4c4e4: 2610 movel %a0@,%d3 <== NOT EXECUTED 4c4e6: 6738 beqs 4c520 <_Timespec_To_ticks+0x48> <== NOT EXECUTED 4c4e8: 2428 0004 movel %a0@(4),%d2 <== NOT EXECUTED return 0; ticks = time->tv_sec * TOD_TICKS_PER_SECOND; 4c4ec: 2039 0005 9e0a movel 59e0a <_TOD_Microseconds_per_tick>,%d0 <== NOT EXECUTED 4c4f2: 223c 000f 4240 movel #1000000,%d1 <== NOT EXECUTED 4c4f8: 4c40 1001 remul %d0,%d1,%d1 <== NOT EXECUTED 4c4fc: 4c03 1800 mulsl %d3,%d1 <== NOT EXECUTED ticks += (time->tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND) / 4c500: 283c 0000 03e8 movel #1000,%d4 <== NOT EXECUTED 4c506: 4c44 2002 remul %d4,%d2,%d2 <== NOT EXECUTED 4c50a: 4c40 2002 remul %d0,%d2,%d2 <== NOT EXECUTED 4c50e: 2002 movel %d2,%d0 <== NOT EXECUTED 4c510: d081 addl %d1,%d0 <== NOT EXECUTED _TOD_Microseconds_per_tick; if (ticks) 4c512: 6604 bnes 4c518 <_Timespec_To_ticks+0x40> <== NOT EXECUTED 4c514: 103c 0001 moveb #1,%d0 <== NOT EXECUTED return ticks; return 1; } 4c518: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 4c51c: 4e5e unlk %fp <== NOT EXECUTED 4c51e: 4e75 rts <== NOT EXECUTED const struct timespec *time ) { uint32_t ticks; if ( (time->tv_sec == 0) && (time->tv_nsec == 0) ) 4c520: 2428 0004 movel %a0@(4),%d2 <== NOT EXECUTED 4c524: 66c6 bnes 4c4ec <_Timespec_To_ticks+0x14> <== NOT EXECUTED if (ticks) return ticks; return 1; } 4c526: 4cd7 001c moveml %sp@,%d2-%d4 <== NOT EXECUTED 4c52a: 4e5e unlk %fp <== NOT EXECUTED const struct timespec *time ) { uint32_t ticks; if ( (time->tv_sec == 0) && (time->tv_nsec == 0) ) 4c52c: 4280 clrl %d0 <== NOT EXECUTED if (ticks) return ticks; return 1; } 4c52e: 4e75 rts 0004c530 <_User_extensions_Add_API_set>: */ void _User_extensions_Add_API_set ( User_extensions_Control *the_extension ) { 4c530: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c534: 2f0b movel %a3,%sp@- <== NOT EXECUTED _Chain_Append( &_User_extensions_List, &the_extension->Node ); 4c536: 47f9 0004 6824 lea 46824 <_Chain_Append>,%a3 <== NOT EXECUTED */ void _User_extensions_Add_API_set ( User_extensions_Control *the_extension ) { 4c53c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4c53e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED _Chain_Append( &_User_extensions_List, &the_extension->Node ); 4c542: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4c544: 4879 0005 9e1a pea 59e1a <_User_extensions_List> <== NOT EXECUTED 4c54a: 4e93 jsr %a3@ <== NOT EXECUTED /* * If a switch handler is present, append it to the switch chain. */ if ( the_extension->Callouts.thread_switch != NULL ) { 4c54c: 202a 0024 movel %a2@(36),%d0 <== NOT EXECUTED 4c550: 508f addql #8,%sp <== NOT EXECUTED 4c552: 6712 beqs 4c566 <_User_extensions_Add_API_set+0x36> <== NOT EXECUTED the_extension->Switch.thread_switch = the_extension->Callouts.thread_switch; _Chain_Append( 4c554: 486a 0008 pea %a2@(8) <== NOT EXECUTED 4c558: 4879 0005 9c80 pea 59c80 <_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; 4c55e: 2540 0010 movel %d0,%a2@(16) <== NOT EXECUTED _Chain_Append( 4c562: 4e93 jsr %a3@ <== NOT EXECUTED 4c564: 508f addql #8,%sp <== NOT EXECUTED &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4c566: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4c56a: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4c56e: 4e5e unlk %fp <== NOT EXECUTED 4c570: 4e75 rts <== NOT EXECUTED ... 0004c574 <_User_extensions_Add_set>: void _User_extensions_Add_set ( User_extensions_Control *the_extension, User_extensions_Table *extension_table ) { 4c574: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c578: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4c57a: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4c57e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4c580: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED the_extension->Callouts = *extension_table; 4c584: 204a moveal %a2,%a0 <== NOT EXECUTED 4c586: 2758 0014 movel %a0@+,%a3@(20) <== NOT EXECUTED 4c58a: 2758 0018 movel %a0@+,%a3@(24) <== NOT EXECUTED 4c58e: 2758 001c movel %a0@+,%a3@(28) <== NOT EXECUTED 4c592: 2758 0020 movel %a0@+,%a3@(32) <== NOT EXECUTED 4c596: 2758 0024 movel %a0@+,%a3@(36) <== NOT EXECUTED 4c59a: 2758 0028 movel %a0@+,%a3@(40) <== NOT EXECUTED 4c59e: 2758 002c movel %a0@+,%a3@(44) <== NOT EXECUTED 4c5a2: 2750 0030 movel %a0@,%a3@(48) <== NOT EXECUTED _Chain_Append( &_User_extensions_List, &the_extension->Node ); 4c5a6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4c5a8: 4879 0005 9e1a pea 59e1a <_User_extensions_List> <== NOT EXECUTED 4c5ae: 4eb9 0004 6824 jsr 46824 <_Chain_Append> <== NOT EXECUTED /* * If a switch handler is present, append it to the switch chain. */ if ( extension_table->thread_switch != NULL ) { 4c5b4: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 4c5b8: 508f addql #8,%sp <== NOT EXECUTED 4c5ba: 6726 beqs 4c5e2 <_User_extensions_Add_set+0x6e> <== NOT EXECUTED the_extension->Switch.thread_switch = extension_table->thread_switch; _Chain_Append( 4c5bc: 220b movel %a3,%d1 <== NOT EXECUTED 4c5be: 5081 addql #8,%d1 <== NOT EXECUTED 4c5c0: 2d41 000c movel %d1,%fp@(12) <== NOT EXECUTED 4c5c4: 223c 0005 9c80 movel #367744,%d1 <== NOT EXECUTED 4c5ca: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4c5ce: 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; 4c5d2: 2740 0010 movel %d0,%a3@(16) <== NOT EXECUTED _Chain_Append( &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4c5d6: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4c5da: 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( 4c5dc: 4ef9 0004 6824 jmp 46824 <_Chain_Append> <== NOT EXECUTED &_User_extensions_Switches_list, &the_extension->Switch.Node ); } } 4c5e2: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4c5e6: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4c5ea: 4e5e unlk %fp <== NOT EXECUTED 4c5ec: 4e75 rts <== NOT EXECUTED ... 00048eb6 <_User_extensions_Fatal>: void _User_extensions_Fatal ( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 48eb6: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48eba: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 48ebe: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 48ec2: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; 48ec6: 2479 0005 9e22 moveal 59e22 <_User_extensions_List+0x8>,%a2 <== NOT EXECUTED void _User_extensions_Fatal ( Internal_errors_Source the_source, bool is_internal, uint32_t the_error ) { 48ecc: 102e 000f moveb %fp@(15),%d0 <== 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 ) ; 48ed0: b5fc 0005 9e1a cmpal #368154,%a2 <== NOT EXECUTED 48ed6: 6726 beqs 48efe <_User_extensions_Fatal+0x48> <== 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 ); 48ed8: 4282 clrl %d2 <== NOT EXECUTED 48eda: 1400 moveb %d0,%d2 <== 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 ) 48edc: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 48ee0: 4a88 tstl %a0 <== NOT EXECUTED 48ee2: 670e beqs 48ef2 <_User_extensions_Fatal+0x3c> <== NOT EXECUTED (*the_extension->Callouts.fatal)( the_source, is_internal, the_error ); 48ee4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48ee6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48ee8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 48eea: 4e90 jsr %a0@ <== NOT EXECUTED 48eec: 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 ) { 48ef2: 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 ) ; 48ef6: b5fc 0005 9e1a cmpal #368154,%a2 <== NOT EXECUTED 48efc: 66de bnes 48edc <_User_extensions_Fatal+0x26> <== 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 ); } } 48efe: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 48f04: 4e5e unlk %fp <== NOT EXECUTED 48f06: 4e75 rts 00048d8c <_User_extensions_Handler_initialization>: void _User_extensions_Handler_initialization ( uint32_t number_of_extensions, User_extensions_Table *initial_extensions ) { 48d8c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 48d90: 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); 48d94: 203c 0005 9e1e movel #368158,%d0 <== NOT EXECUTED 48d9a: 23c0 0005 9e1a movel %d0,59e1a <_User_extensions_List> <== NOT EXECUTED 48da0: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 48da4: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 48da8: 203c 0005 9e1a movel #368154,%d0 <== NOT EXECUTED 48dae: 23c0 0005 9e22 movel %d0,59e22 <_User_extensions_List+0x8> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 48db4: 203c 0005 9c84 movel #367748,%d0 <== NOT EXECUTED 48dba: 23c0 0005 9c80 movel %d0,59c80 <_User_extensions_Switches_list> <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 48dc0: 203c 0005 9c80 movel #367744,%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; 48dc6: 42b9 0005 9e1e clrl 59e1e <_User_extensions_List+0x4> <== NOT EXECUTED 48dcc: 42b9 0005 9c84 clrl 59c84 <_User_extensions_Switches_list+0x4> <== NOT EXECUTED the_chain->last = _Chain_Head(the_chain); 48dd2: 23c0 0005 9c88 movel %d0,59c88 <_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 ) { 48dd8: 4a83 tstl %d3 <== NOT EXECUTED 48dda: 6750 beqs 48e2c <_User_extensions_Handler_initialization+0xa0> <== NOT EXECUTED extension = (User_extensions_Control *) 48ddc: 2005 movel %d5,%d0 <== NOT EXECUTED 48dde: 2405 movel %d5,%d2 <== NOT EXECUTED 48de0: e588 lsll #2,%d0 <== NOT EXECUTED 48de2: e98a lsll #4,%d2 <== NOT EXECUTED 48de4: 9480 subl %d0,%d2 <== NOT EXECUTED 48de6: d485 addl %d5,%d2 <== NOT EXECUTED 48de8: e58a lsll #2,%d2 <== NOT EXECUTED 48dea: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48dec: 4eb9 0004 92bc jsr 492bc <_Workspace_Allocate_or_fatal_error> <== NOT EXECUTED _Workspace_Allocate_or_fatal_error( number_of_extensions * sizeof( User_extensions_Control ) ); memset ( 48df2: 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 *) 48df4: 2800 movel %d0,%d4 <== NOT EXECUTED _Workspace_Allocate_or_fatal_error( number_of_extensions * sizeof( User_extensions_Control ) ); memset ( 48df6: 42a7 clrl %sp@- <== NOT EXECUTED 48df8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48dfa: 4eb9 0004 dbe8 jsr 4dbe8 <== NOT EXECUTED extension, 0, number_of_extensions * sizeof( User_extensions_Control ) ); for ( i = 0 ; i < number_of_extensions ; i++ ) { 48e00: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 48e06: 4a85 tstl %d5 <== NOT EXECUTED 48e08: 6722 beqs 48e2c <_User_extensions_Handler_initialization+0xa0> <== NOT EXECUTED 48e0a: 4282 clrl %d2 <== NOT EXECUTED 48e0c: 45f9 0004 c574 lea 4c574 <_User_extensions_Add_set>,%a2 <== NOT EXECUTED _User_extensions_Add_set (extension, &initial_extensions[i]); 48e12: 2f03 movel %d3,%sp@- <== NOT EXECUTED extension, 0, number_of_extensions * sizeof( User_extensions_Control ) ); for ( i = 0 ; i < number_of_extensions ; i++ ) { 48e14: 5282 addql #1,%d2 <== NOT EXECUTED 48e16: 0683 0000 0020 addil #32,%d3 <== NOT EXECUTED _User_extensions_Add_set (extension, &initial_extensions[i]); 48e1c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 48e1e: 4e92 jsr %a2@ <== NOT EXECUTED extension, 0, number_of_extensions * sizeof( User_extensions_Control ) ); for ( i = 0 ; i < number_of_extensions ; i++ ) { 48e20: 508f addql #8,%sp <== NOT EXECUTED _User_extensions_Add_set (extension, &initial_extensions[i]); extension++; 48e22: 0684 0000 0034 addil #52,%d4 <== NOT EXECUTED extension, 0, number_of_extensions * sizeof( User_extensions_Control ) ); for ( i = 0 ; i < number_of_extensions ; i++ ) { 48e28: b485 cmpl %d5,%d2 <== NOT EXECUTED 48e2a: 65e6 bcss 48e12 <_User_extensions_Handler_initialization+0x86> <== NOT EXECUTED _User_extensions_Add_set (extension, &initial_extensions[i]); extension++; } } } 48e2c: 4cee 043c ffec moveml %fp@(-20),%d2-%d5/%a2 <== NOT EXECUTED 48e32: 4e5e unlk %fp <== NOT EXECUTED 48e34: 4e75 rts <== NOT EXECUTED ... 0004e7e4 <_User_extensions_Remove_set>: */ void _User_extensions_Remove_set ( User_extensions_Control *the_extension ) { 4e7e4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4e7e8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4e7ea: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED _Chain_Extract( &the_extension->Node ); 4e7ee: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4e7f0: 4eb9 0005 3668 jsr 53668 <_Chain_Extract> <== NOT EXECUTED /* * If a switch handler is present, remove it. */ if ( the_extension->Callouts.thread_switch != NULL ) 4e7f6: 588f addql #4,%sp <== NOT EXECUTED 4e7f8: 4aaa 0024 tstl %a2@(36) <== NOT EXECUTED 4e7fc: 6712 beqs 4e810 <_User_extensions_Remove_set+0x2c> <== NOT EXECUTED _Chain_Extract( &the_extension->Switch.Node ); 4e7fe: 508a addql #8,%a2 <== NOT EXECUTED 4e800: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } 4e804: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4e808: 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 ); 4e80a: 4ef9 0005 3668 jmp 53668 <_Chain_Extract> <== NOT EXECUTED } 4e810: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4e814: 4e5e unlk %fp <== NOT EXECUTED 4e816: 4e75 rts 00048e38 <_User_extensions_Thread_begin>: */ void _User_extensions_Thread_begin ( Thread_Control *executing ) { 48e38: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48e3c: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; 48e3e: 2479 0005 9e1a moveal 59e1a <_User_extensions_List>,%a2 <== NOT EXECUTED */ void _User_extensions_Thread_begin ( Thread_Control *executing ) { 48e44: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e46: 242e 0008 movel %fp@(8),%d2 <== 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 ) ; 48e4a: b5fc 0005 9e1e cmpal #368158,%a2 <== NOT EXECUTED 48e50: 6718 beqs 48e6a <_User_extensions_Thread_begin+0x32> <== NOT EXECUTED the_node = the_node->next ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_begin != NULL ) 48e52: 206a 0028 moveal %a2@(40),%a0 <== NOT EXECUTED 48e56: 4a88 tstl %a0 <== NOT EXECUTED 48e58: 6706 beqs 48e60 <_User_extensions_Thread_begin+0x28> <== NOT EXECUTED (*the_extension->Callouts.thread_begin)( executing ); 48e5a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e5c: 4e90 jsr %a0@ <== NOT EXECUTED 48e5e: 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 ) { 48e60: 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 ) ; 48e62: b5fc 0005 9e1e cmpal #368158,%a2 <== NOT EXECUTED 48e68: 66e8 bnes 48e52 <_User_extensions_Thread_begin+0x1a> <== NOT EXECUTED the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_begin != NULL ) (*the_extension->Callouts.thread_begin)( executing ); } } 48e6a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48e6e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48e72: 4e5e unlk %fp <== NOT EXECUTED 48e74: 4e75 rts 00048f08 <_User_extensions_Thread_create>: */ bool _User_extensions_Thread_create ( Thread_Control *the_thread ) { 48f08: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48f0c: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; bool status; for ( the_node = _User_extensions_List.first ; 48f0e: 2479 0005 9e1a moveal 59e1a <_User_extensions_List>,%a2 <== NOT EXECUTED */ bool _User_extensions_Thread_create ( Thread_Control *the_thread ) { 48f14: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48f16: 242e 0008 movel %fp@(8),%d2 <== 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 ) ; 48f1a: b5fc 0005 9e1e cmpal #368158,%a2 <== NOT EXECUTED 48f20: 6722 beqs 48f44 <_User_extensions_Thread_create+0x3c> <== NOT EXECUTED the_node = the_node->next ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_create != NULL ) { 48f22: 206a 0014 moveal %a2@(20),%a0 <== NOT EXECUTED 48f26: 4a88 tstl %a0 <== NOT EXECUTED 48f28: 6710 beqs 48f3a <_User_extensions_Thread_create+0x32> <== NOT EXECUTED status = (*the_extension->Callouts.thread_create)( 48f2a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48f2c: 2f39 0005 9d3a movel 59d3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 48f32: 4e90 jsr %a0@ <== NOT EXECUTED _Thread_Executing, the_thread ); if ( !status ) 48f34: 508f addql #8,%sp <== NOT EXECUTED 48f36: 4a00 tstb %d0 <== NOT EXECUTED 48f38: 670c beqs 48f46 <_User_extensions_Thread_create+0x3e> <== 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 ) { 48f3a: 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 ) ; 48f3c: b5fc 0005 9e1e cmpal #368158,%a2 <== NOT EXECUTED 48f42: 66de bnes 48f22 <_User_extensions_Thread_create+0x1a> <== NOT EXECUTED 48f44: 7001 moveq #1,%d0 <== NOT EXECUTED return FALSE; } } return TRUE; } 48f46: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48f4a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48f4e: 4e5e unlk %fp <== NOT EXECUTED 48f50: 4e75 rts <== NOT EXECUTED ... 00048f54 <_User_extensions_Thread_delete>: */ void _User_extensions_Thread_delete ( Thread_Control *the_thread ) { 48f54: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48f58: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; 48f5a: 2479 0005 9e22 moveal 59e22 <_User_extensions_List+0x8>,%a2 <== NOT EXECUTED */ void _User_extensions_Thread_delete ( Thread_Control *the_thread ) { 48f60: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48f62: 242e 0008 movel %fp@(8),%d2 <== 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 ) ; 48f66: b5fc 0005 9e1a cmpal #368154,%a2 <== NOT EXECUTED 48f6c: 6720 beqs 48f8e <_User_extensions_Thread_delete+0x3a> <== NOT EXECUTED the_node = the_node->previous ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_delete != NULL ) 48f6e: 206a 0020 moveal %a2@(32),%a0 <== NOT EXECUTED 48f72: 4a88 tstl %a0 <== NOT EXECUTED 48f74: 670c beqs 48f82 <_User_extensions_Thread_delete+0x2e> <== NOT EXECUTED (*the_extension->Callouts.thread_delete)( 48f76: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48f78: 2f39 0005 9d3a movel 59d3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 48f7e: 4e90 jsr %a0@ <== NOT EXECUTED 48f80: 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 ) { 48f82: 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 ) ; 48f86: b5fc 0005 9e1a cmpal #368154,%a2 <== NOT EXECUTED 48f8c: 66e0 bnes 48f6e <_User_extensions_Thread_delete+0x1a> <== NOT EXECUTED (*the_extension->Callouts.thread_delete)( _Thread_Executing, the_thread ); } } 48f8e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48f92: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48f96: 4e5e unlk %fp <== NOT EXECUTED 48f98: 4e75 rts <== NOT EXECUTED ... 00048e76 <_User_extensions_Thread_exitted>: */ void _User_extensions_Thread_exitted ( Thread_Control *executing ) { 48e76: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48e7a: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ; 48e7c: 2479 0005 9e22 moveal 59e22 <_User_extensions_List+0x8>,%a2 <== NOT EXECUTED */ void _User_extensions_Thread_exitted ( Thread_Control *executing ) { 48e82: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e84: 242e 0008 movel %fp@(8),%d2 <== 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 ) ; 48e88: b5fc 0005 9e1a cmpal #368154,%a2 <== NOT EXECUTED 48e8e: 671a beqs 48eaa <_User_extensions_Thread_exitted+0x34> <== NOT EXECUTED the_node = the_node->previous ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_exitted != NULL ) 48e90: 206a 002c moveal %a2@(44),%a0 <== NOT EXECUTED 48e94: 4a88 tstl %a0 <== NOT EXECUTED 48e96: 6706 beqs 48e9e <_User_extensions_Thread_exitted+0x28> <== NOT EXECUTED (*the_extension->Callouts.thread_exitted)( executing ); 48e98: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e9a: 4e90 jsr %a0@ <== NOT EXECUTED 48e9c: 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 ) { 48e9e: 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 ) ; 48ea2: b5fc 0005 9e1a cmpal #368154,%a2 <== NOT EXECUTED 48ea8: 66e6 bnes 48e90 <_User_extensions_Thread_exitted+0x1a> <== NOT EXECUTED the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_exitted != NULL ) (*the_extension->Callouts.thread_exitted)( executing ); } } 48eaa: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48eae: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48eb2: 4e5e unlk %fp <== NOT EXECUTED 48eb4: 4e75 rts 00049994 <_User_extensions_Thread_restart>: */ void _User_extensions_Thread_restart ( Thread_Control *the_thread ) { 49994: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49998: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; 4999a: 2479 0005 b962 moveal 5b962 <_User_extensions_List>,%a2 <== NOT EXECUTED */ void _User_extensions_Thread_restart ( Thread_Control *the_thread ) { 499a0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 499a2: 242e 0008 movel %fp@(8),%d2 <== 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 ) ; 499a6: b5fc 0005 b966 cmpal #375142,%a2 <== NOT EXECUTED 499ac: 671e beqs 499cc <_User_extensions_Thread_restart+0x38> <== NOT EXECUTED the_node = the_node->next ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_restart != NULL ) 499ae: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 499b2: 4a88 tstl %a0 <== NOT EXECUTED 499b4: 670c beqs 499c2 <_User_extensions_Thread_restart+0x2e> <== NOT EXECUTED (*the_extension->Callouts.thread_restart)( 499b6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 499b8: 2f39 0005 b882 movel 5b882 <_Thread_Executing>,%sp@- <== NOT EXECUTED 499be: 4e90 jsr %a0@ <== NOT EXECUTED 499c0: 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 ) { 499c2: 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 ) ; 499c4: b5fc 0005 b966 cmpal #375142,%a2 <== NOT EXECUTED 499ca: 66e2 bnes 499ae <_User_extensions_Thread_restart+0x1a> <== NOT EXECUTED (*the_extension->Callouts.thread_restart)( _Thread_Executing, the_thread ); } } 499cc: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 499d0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 499d4: 4e5e unlk %fp <== NOT EXECUTED 499d6: 4e75 rts 00048f9c <_User_extensions_Thread_start>: */ void _User_extensions_Thread_start ( Thread_Control *the_thread ) { 48f9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48fa0: 2f0a movel %a2,%sp@- <== NOT EXECUTED Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.first ; 48fa2: 2479 0005 9e1a moveal 59e1a <_User_extensions_List>,%a2 <== NOT EXECUTED */ void _User_extensions_Thread_start ( Thread_Control *the_thread ) { 48fa8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48faa: 242e 0008 movel %fp@(8),%d2 <== 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 ) ; 48fae: b5fc 0005 9e1e cmpal #368158,%a2 <== NOT EXECUTED 48fb4: 671e beqs 48fd4 <_User_extensions_Thread_start+0x38> <== NOT EXECUTED the_node = the_node->next ) { the_extension = (User_extensions_Control *) the_node; if ( the_extension->Callouts.thread_start != NULL ) 48fb6: 206a 0018 moveal %a2@(24),%a0 <== NOT EXECUTED 48fba: 4a88 tstl %a0 <== NOT EXECUTED 48fbc: 670c beqs 48fca <_User_extensions_Thread_start+0x2e> <== NOT EXECUTED (*the_extension->Callouts.thread_start)( 48fbe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48fc0: 2f39 0005 9d3a movel 59d3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 48fc6: 4e90 jsr %a0@ <== NOT EXECUTED 48fc8: 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 ) { 48fca: 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 ) ; 48fcc: b5fc 0005 9e1e cmpal #368158,%a2 <== NOT EXECUTED 48fd2: 66e2 bnes 48fb6 <_User_extensions_Thread_start+0x1a> <== NOT EXECUTED (*the_extension->Callouts.thread_start)( _Thread_Executing, the_thread ); } } 48fd4: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48fd8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48fdc: 4e5e unlk %fp <== NOT EXECUTED 48fde: 4e75 rts 00048fe0 <_User_extensions_Thread_switch>: */ void _User_extensions_Thread_switch ( Thread_Control *executing, Thread_Control *heir ) { 48fe0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 48fe4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 48fe8: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 48fec: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Chain_Node *the_node; User_extensions_Switch_control *the_extension_switch; for ( the_node = _User_extensions_Switches_list.first ; 48ff0: 2479 0005 9c80 moveal 59c80 <_User_extensions_Switches_list>,%a2 <== NOT EXECUTED !_Chain_Is_tail( &_User_extensions_Switches_list, the_node ) ; 48ff6: b5fc 0005 9c84 cmpal #367748,%a2 <== NOT EXECUTED 48ffc: 6716 beqs 49014 <_User_extensions_Thread_switch+0x34> <== NOT EXECUTED the_node = the_node->next ) { the_extension_switch = (User_extensions_Switch_control *) the_node; (*the_extension_switch->thread_switch)( executing, heir ); 48ffe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49000: 2f03 movel %d3,%sp@- <== NOT EXECUTED 49002: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 49006: 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 ) { 49008: 2452 moveal %a2@,%a2 <== 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 ) ; 4900a: 508f addql #8,%sp <== NOT EXECUTED 4900c: b5fc 0005 9c84 cmpal #367748,%a2 <== NOT EXECUTED 49012: 66ea bnes 48ffe <_User_extensions_Thread_switch+0x1e> <== NOT EXECUTED the_extension_switch = (User_extensions_Switch_control *) the_node; (*the_extension_switch->thread_switch)( executing, heir ); } } 49014: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4901a: 4e5e unlk %fp <== NOT EXECUTED 4901c: 4e75 rts <== NOT EXECUTED ... 0004a7bc <_Watchdog_Adjust>: void _Watchdog_Adjust( Chain_Control *header, Watchdog_Adjust_directions direction, Watchdog_Interval units ) { 4a7bc: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4a7c0: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4a7c4: 327c 0700 moveaw #1792,%a1 <== NOT EXECUTED void _Watchdog_Adjust( Chain_Control *header, Watchdog_Adjust_directions direction, Watchdog_Interval units ) { 4a7c8: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4a7cc: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED ISR_Level level; _ISR_Disable( level ); 4a7d0: 2009 movel %a1,%d0 <== NOT EXECUTED 4a7d2: 40c1 movew %sr,%d1 <== NOT EXECUTED 4a7d4: 8081 orl %d1,%d0 <== NOT EXECUTED 4a7d6: 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)); 4a7d8: 244b moveal %a3,%a2 <== NOT EXECUTED 4a7da: 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 ) ) { 4a7dc: b5c8 cmpal %a0,%a2 <== NOT EXECUTED 4a7de: 674c beqs 4a82c <_Watchdog_Adjust+0x70> <== NOT EXECUTED switch ( direction ) { 4a7e0: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 4a7e4: 6652 bnes 4a838 <_Watchdog_Adjust+0x7c> <== NOT EXECUTED case WATCHDOG_BACKWARD: _Watchdog_First( header )->delta_interval += units; break; case WATCHDOG_FORWARD: while ( units ) { 4a7e6: 4a82 tstl %d2 <== NOT EXECUTED 4a7e8: 6742 beqs 4a82c <_Watchdog_Adjust+0x70> <== NOT EXECUTED if ( units < _Watchdog_First( header )->delta_interval ) { 4a7ea: 2628 0010 movel %a0@(16),%d3 <== NOT EXECUTED 4a7ee: b682 cmpl %d2,%d3 <== NOT EXECUTED 4a7f0: 6234 bhis 4a826 <_Watchdog_Adjust+0x6a> <== NOT EXECUTED _ISR_Enable( level ); _Watchdog_Tickle( header ); _ISR_Disable( level ); 4a7f2: 2809 movel %a1,%d4 <== NOT EXECUTED 4a7f4: 49f9 0004 aa3c lea 4aa3c <_Watchdog_Tickle>,%a4 <== NOT EXECUTED if ( units < _Watchdog_First( header )->delta_interval ) { _Watchdog_First( header )->delta_interval -= units; break; } else { units -= _Watchdog_First( header )->delta_interval; _Watchdog_First( header )->delta_interval = 1; 4a7fa: 7001 moveq #1,%d0 <== NOT EXECUTED 4a7fc: 2140 0010 movel %d0,%a0@(16) <== NOT EXECUTED _ISR_Enable( level ); 4a800: 46c1 movew %d1,%sr <== NOT EXECUTED _Watchdog_Tickle( header ); 4a802: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a804: 4e94 jsr %a4@ <== NOT EXECUTED _ISR_Disable( level ); 4a806: 2004 movel %d4,%d0 <== NOT EXECUTED 4a808: 40c1 movew %sr,%d1 <== NOT EXECUTED 4a80a: 8081 orl %d1,%d0 <== NOT EXECUTED 4a80c: 46c0 movew %d0,%sr <== NOT EXECUTED 4a80e: 2013 movel %a3@,%d0 <== 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; 4a810: 9483 subl %d3,%d2 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First( Chain_Control *header ) { return ( (Watchdog_Control *) header->first ); 4a812: 2040 moveal %d0,%a0 <== NOT EXECUTED _Watchdog_Tickle( header ); _ISR_Disable( level ); if ( _Chain_Is_empty( header ) ) 4a814: 588f addql #4,%sp <== NOT EXECUTED 4a816: b08a cmpl %a2,%d0 <== NOT EXECUTED 4a818: 6712 beqs 4a82c <_Watchdog_Adjust+0x70> <== NOT EXECUTED switch ( direction ) { case WATCHDOG_BACKWARD: _Watchdog_First( header )->delta_interval += units; break; case WATCHDOG_FORWARD: while ( units ) { 4a81a: 4a82 tstl %d2 <== NOT EXECUTED 4a81c: 670e beqs 4a82c <_Watchdog_Adjust+0x70> <== NOT EXECUTED if ( units < _Watchdog_First( header )->delta_interval ) { 4a81e: 2628 0010 movel %a0@(16),%d3 <== NOT EXECUTED 4a822: b483 cmpl %d3,%d2 <== NOT EXECUTED 4a824: 64d4 bccs 4a7fa <_Watchdog_Adjust+0x3e> <== NOT EXECUTED _Watchdog_First( header )->delta_interval -= units; 4a826: 9682 subl %d2,%d3 <== NOT EXECUTED 4a828: 2143 0010 movel %d3,%a0@(16) <== NOT EXECUTED } break; } } _ISR_Enable( level ); 4a82c: 46c1 movew %d1,%sr <== NOT EXECUTED } 4a82e: 4cee 1c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a4 <== NOT EXECUTED 4a834: 4e5e unlk %fp <== NOT EXECUTED 4a836: 4e75 rts <== NOT EXECUTED * unmodified across that call. * * Till Straumann, 7/2003 */ if ( !_Chain_Is_empty( header ) ) { switch ( direction ) { 4a838: 7001 moveq #1,%d0 <== NOT EXECUTED 4a83a: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 4a83e: 66ec bnes 4a82c <_Watchdog_Adjust+0x70> <== NOT EXECUTED case WATCHDOG_BACKWARD: _Watchdog_First( header )->delta_interval += units; 4a840: d5a8 0010 addl %d2,%a0@(16) <== NOT EXECUTED } break; } } _ISR_Enable( level ); 4a844: 46c1 movew %d1,%sr <== NOT EXECUTED } 4a846: 4cee 1c1c ffe8 moveml %fp@(-24),%d2-%d4/%a2-%a4 <== NOT EXECUTED 4a84c: 4e5e unlk %fp <== NOT EXECUTED 4a84e: 4e75 rts 000578d4 <_Watchdog_Adjust_to_chain>: Chain_Control *header, Watchdog_Interval units_arg, Chain_Control *to_fire ) { 578d4: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 578d8: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 578dc: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 578e0: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 578e4: 286e 0010 moveal %fp@(16),%a4 <== NOT EXECUTED Watchdog_Interval units = units_arg; ISR_Level level; Chain_Node *node; if ( !units ) { 578e8: 6766 beqs 57950 <_Watchdog_Adjust_to_chain+0x7c> <== NOT EXECUTED return; } _ISR_Disable( level ); 578ea: 307c 0700 moveaw #1792,%a0 <== NOT EXECUTED 578ee: 2008 movel %a0,%d0 <== NOT EXECUTED 578f0: 40c4 movew %sr,%d4 <== NOT EXECUTED 578f2: 8084 orl %d4,%d0 <== NOT EXECUTED 578f4: 46c0 movew %d0,%sr <== NOT EXECUTED 578f6: 244b moveal %a3,%a2 <== NOT EXECUTED 578f8: 225a moveal %a2@+,%a1 <== NOT EXECUTED if ( !_Chain_Is_empty( header ) ) { 578fa: b5c9 cmpal %a1,%a2 <== NOT EXECUTED 578fc: 6750 beqs 5794e <_Watchdog_Adjust_to_chain+0x7a> <== NOT EXECUTED 578fe: 2629 0010 movel %a1@(16),%d3 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 57902: 240c movel %a4,%d2 <== NOT EXECUTED do { node = _Chain_Get_unprotected( header ); _Chain_Append_unprotected( to_fire, node ); _ISR_Flash( level ); 57904: 2a08 movel %a0,%d5 <== NOT EXECUTED 57906: 5882 addql #4,%d2 <== NOT EXECUTED } _ISR_Disable( level ); if ( !_Chain_Is_empty( header ) ) { while ( units ) { if ( units < _Watchdog_First( header )->delta_interval ) { 57908: b283 cmpl %d3,%d1 <== NOT EXECUTED 5790a: 653c bcss 57948 <_Watchdog_Adjust_to_chain+0x74> <== NOT EXECUTED _Watchdog_First( header )->delta_interval -= units; break; } else { units -= _Watchdog_First( header )->delta_interval; _Watchdog_First( header )->delta_interval = 0; 5790c: 42a9 0010 clrl %a1@(16) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected( Chain_Control *the_chain ) { if ( !_Chain_Is_empty(the_chain)) 57910: b3ca cmpal %a2,%a1 <== NOT EXECUTED 57912: 6744 beqs 57958 <_Watchdog_Adjust_to_chain+0x84> <== NOT EXECUTED { Chain_Node *return_node; Chain_Node *new_first; return_node = the_chain->first; new_first = return_node->next; 57914: 2051 moveal %a1@,%a0 <== NOT EXECUTED the_chain->first = new_first; 57916: 2688 movel %a0,%a3@ <== NOT EXECUTED new_first->previous = _Chain_Head(the_chain); 57918: 214b 0004 movel %a3,%a0@(4) <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *old_last_node; the_node->next = _Chain_Tail(the_chain); 5791c: 2282 movel %d2,%a1@ <== NOT EXECUTED old_last_node = the_chain->last; 5791e: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED the_chain->last = the_node; 57922: 2949 0008 movel %a1,%a4@(8) <== NOT EXECUTED old_last_node->next = the_node; the_node->previous = old_last_node; 57926: 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; 5792a: 2089 movel %a1,%a0@ <== NOT EXECUTED do { node = _Chain_Get_unprotected( header ); _Chain_Append_unprotected( to_fire, node ); _ISR_Flash( level ); 5792c: 2005 movel %d5,%d0 <== NOT EXECUTED 5792e: 46c4 movew %d4,%sr <== NOT EXECUTED 57930: 8084 orl %d4,%d0 <== NOT EXECUTED 57932: 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)); 57934: 2253 moveal %a3@,%a1 <== NOT EXECUTED } while ( !_Chain_Is_empty( header ) && _Watchdog_First( header )->delta_interval == 0 ); 57936: b3ca cmpal %a2,%a1 <== NOT EXECUTED 57938: 6714 beqs 5794e <_Watchdog_Adjust_to_chain+0x7a> <== NOT EXECUTED 5793a: 2029 0010 movel %a1@(16),%d0 <== NOT EXECUTED 5793e: 67d0 beqs 57910 <_Watchdog_Adjust_to_chain+0x3c> <== 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; 57940: 9283 subl %d3,%d1 <== NOT EXECUTED return; } _ISR_Disable( level ); if ( !_Chain_Is_empty( header ) ) { while ( units ) { 57942: 670a beqs 5794e <_Watchdog_Adjust_to_chain+0x7a> <== NOT EXECUTED 57944: 2600 movel %d0,%d3 <== NOT EXECUTED 57946: 60c0 bras 57908 <_Watchdog_Adjust_to_chain+0x34> <== NOT EXECUTED if ( units < _Watchdog_First( header )->delta_interval ) { _Watchdog_First( header )->delta_interval -= units; 57948: 9681 subl %d1,%d3 <== NOT EXECUTED 5794a: 2343 0010 movel %d3,%a1@(16) <== NOT EXECUTED break; } } } _ISR_Enable( level ); 5794e: 46c4 movew %d4,%sr <== NOT EXECUTED } 57950: 4cd7 1c3c moveml %sp@,%d2-%d5/%a2-%a4 <== NOT EXECUTED 57954: 4e5e unlk %fp <== NOT EXECUTED 57956: 4e75 rts <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected( Chain_Control *the_chain ) { if ( !_Chain_Is_empty(the_chain)) 57958: 93c9 subal %a1,%a1 <== NOT EXECUTED 5795a: 60c0 bras 5791c <_Watchdog_Adjust_to_chain+0x48> <== NOT EXECUTED 0004911c <_Watchdog_Handler_initialization>: * Output parameters: NONE */ void _Watchdog_Handler_initialization( void ) { _Watchdog_Sync_count = 0; 4911c: 42b9 0005 9dc0 clrl 59dc0 <_Watchdog_Sync_count> <== NOT EXECUTED * * Output parameters: NONE */ void _Watchdog_Handler_initialization( void ) { 49122: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Watchdog_Sync_count = 0; _Watchdog_Sync_level = 0; 49126: 42b9 0005 9d36 clrl 59d36 <_Watchdog_Sync_level> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4912c: 41f9 0005 9d58 lea 59d58 <_Watchdog_Ticks_chain>,%a0 <== NOT EXECUTED _Watchdog_Ticks_since_boot = 0; _Chain_Initialize_empty( &_Watchdog_Ticks_chain ); _Chain_Initialize_empty( &_Watchdog_Seconds_chain ); } 49132: 43f9 0005 9d4c lea 59d4c <_Watchdog_Seconds_chain>,%a1 <== NOT EXECUTED 49138: 4e5e unlk %fp <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4913a: 23c8 0005 9d60 movel %a0,59d60 <_Watchdog_Ticks_chain+0x8> <== NOT EXECUTED 49140: 23c9 0005 9d54 movel %a1,59d54 <_Watchdog_Seconds_chain+0x8> <== NOT EXECUTED void _Watchdog_Handler_initialization( void ) { _Watchdog_Sync_count = 0; _Watchdog_Sync_level = 0; _Watchdog_Ticks_since_boot = 0; 49146: 42b9 0005 9dc4 clrl 59dc4 <_Watchdog_Ticks_since_boot> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4914c: 20bc 0005 9d5c movel #367964,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 49152: 42b9 0005 9d5c clrl 59d5c <_Watchdog_Ticks_chain+0x4> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 49158: 22bc 0005 9d50 movel #367952,%a1@ <== NOT EXECUTED the_chain->permanent_null = NULL; 4915e: 42b9 0005 9d50 clrl 59d50 <_Watchdog_Seconds_chain+0x4> <== NOT EXECUTED _Chain_Initialize_empty( &_Watchdog_Ticks_chain ); _Chain_Initialize_empty( &_Watchdog_Seconds_chain ); } 49164: 4e75 rts <== NOT EXECUTED ... 00049020 <_Watchdog_Insert>: void _Watchdog_Insert( Chain_Control *header, Watchdog_Control *the_watchdog ) { 49020: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 49024: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 49028: 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; 4902c: 2639 0005 9d1a movel 59d1a <_ISR_Nest_level>,%d3 <== NOT EXECUTED _ISR_Disable( level ); 49032: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 49038: 2001 movel %d1,%d0 <== NOT EXECUTED 4903a: 40c4 movew %sr,%d4 <== NOT EXECUTED 4903c: 8084 orl %d4,%d0 <== NOT EXECUTED 4903e: 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 ) { 49040: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 49044: 6600 00cc bnew 49112 <_Watchdog_Insert+0xf2> <== NOT EXECUTED _ISR_Enable( level ); return; } the_watchdog->state = WATCHDOG_BEING_INSERTED; _Watchdog_Sync_count++; 49048: 2039 0005 9dc0 movel 59dc0 <_Watchdog_Sync_count>,%d0 <== NOT EXECUTED if ( the_watchdog->state != WATCHDOG_INACTIVE ) { _ISR_Enable( level ); return; } the_watchdog->state = WATCHDOG_BEING_INSERTED; 4904e: 7401 moveq #1,%d2 <== NOT EXECUTED _Watchdog_Sync_count++; 49050: 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 ); 49052: 2241 moveal %d1,%a1 <== NOT EXECUTED if ( the_watchdog->state != WATCHDOG_INACTIVE ) { _ISR_Enable( level ); return; } the_watchdog->state = WATCHDOG_BEING_INSERTED; 49054: 2542 0008 movel %d2,%a2@(8) <== NOT EXECUTED _Watchdog_Sync_count++; 49058: 23c0 0005 9dc0 movel %d0,59dc0 <_Watchdog_Sync_count> <== NOT EXECUTED * cache *header!! * * Till Straumann, 7/2003 (gcc-3.2.2 -O4 on powerpc) * */ for ( after = (Watchdog_Control *) ((volatile Chain_Control *)header)->first ; 4905e: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED the_watchdog->state = WATCHDOG_BEING_INSERTED; _Watchdog_Sync_count++; restart: delta_interval = the_watchdog->initial; 49062: 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 ; 49066: 2053 moveal %a3@,%a0 <== NOT EXECUTED ; after = _Watchdog_Next( after ) ) { if ( delta_interval == 0 || !_Watchdog_Next( after ) ) 49068: 6764 beqs 490ce <_Watchdog_Insert+0xae> <== NOT EXECUTED 4906a: 4a90 tstl %a0@ <== NOT EXECUTED 4906c: 6760 beqs 490ce <_Watchdog_Insert+0xae> <== NOT EXECUTED break; if ( delta_interval < after->delta_interval ) { 4906e: 2228 0010 movel %a0@(16),%d1 <== NOT EXECUTED 49072: b282 cmpl %d2,%d1 <== NOT EXECUTED 49074: 6252 bhis 490c8 <_Watchdog_Insert+0xa8> <== 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 ); 49076: 2009 movel %a1,%d0 <== NOT EXECUTED 49078: 46c4 movew %d4,%sr <== NOT EXECUTED 4907a: 8084 orl %d4,%d0 <== NOT EXECUTED 4907c: 46c0 movew %d0,%sr <== NOT EXECUTED if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) { 4907e: 7001 moveq #1,%d0 <== NOT EXECUTED 49080: b0aa 0008 cmpl %a2@(8),%d0 <== NOT EXECUTED 49084: 666e bnes 490f4 <_Watchdog_Insert+0xd4> <== NOT EXECUTED goto exit_insert; } if ( _Watchdog_Sync_level > insert_isr_nest_level ) { 49086: 2039 0005 9d36 movel 59d36 <_Watchdog_Sync_level>,%d0 <== NOT EXECUTED 4908c: b083 cmpl %d3,%d0 <== NOT EXECUTED 4908e: 6230 bhis 490c0 <_Watchdog_Insert+0xa0> <== NOT EXECUTED if ( delta_interval < after->delta_interval ) { after->delta_interval -= delta_interval; break; } delta_interval -= after->delta_interval; 49090: 9481 subl %d1,%d2 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next( Watchdog_Control *the_watchdog ) { return ( (Watchdog_Control *) the_watchdog->Node.next ); 49092: 2050 moveal %a0@,%a0 <== NOT EXECUTED */ for ( after = (Watchdog_Control *) ((volatile Chain_Control *)header)->first ; ; after = _Watchdog_Next( after ) ) { if ( delta_interval == 0 || !_Watchdog_Next( after ) ) 49094: 4a82 tstl %d2 <== NOT EXECUTED 49096: 6736 beqs 490ce <_Watchdog_Insert+0xae> <== NOT EXECUTED 49098: 4a90 tstl %a0@ <== NOT EXECUTED 4909a: 6732 beqs 490ce <_Watchdog_Insert+0xae> <== NOT EXECUTED break; if ( delta_interval < after->delta_interval ) { 4909c: 2228 0010 movel %a0@(16),%d1 <== NOT EXECUTED 490a0: b481 cmpl %d1,%d2 <== NOT EXECUTED 490a2: 6524 bcss 490c8 <_Watchdog_Insert+0xa8> <== 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 ); 490a4: 2009 movel %a1,%d0 <== NOT EXECUTED 490a6: 46c4 movew %d4,%sr <== NOT EXECUTED 490a8: 8084 orl %d4,%d0 <== NOT EXECUTED 490aa: 46c0 movew %d0,%sr <== NOT EXECUTED if ( delta_interval < after->delta_interval ) { after->delta_interval -= delta_interval; break; } delta_interval -= after->delta_interval; 490ac: 9481 subl %d1,%d2 <== NOT EXECUTED * mechanism used here WAS redesigned to address this. */ _ISR_Flash( level ); if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) { 490ae: 7201 moveq #1,%d1 <== NOT EXECUTED 490b0: b2aa 0008 cmpl %a2@(8),%d1 <== NOT EXECUTED 490b4: 663e bnes 490f4 <_Watchdog_Insert+0xd4> <== NOT EXECUTED goto exit_insert; } if ( _Watchdog_Sync_level > insert_isr_nest_level ) { 490b6: 2039 0005 9d36 movel 59d36 <_Watchdog_Sync_level>,%d0 <== NOT EXECUTED 490bc: b083 cmpl %d3,%d0 <== NOT EXECUTED 490be: 63d2 blss 49092 <_Watchdog_Insert+0x72> <== NOT EXECUTED _Watchdog_Sync_level = insert_isr_nest_level; 490c0: 23c3 0005 9d36 movel %d3,59d36 <_Watchdog_Sync_level> <== NOT EXECUTED 490c6: 6096 bras 4905e <_Watchdog_Insert+0x3e> <== NOT EXECUTED if ( delta_interval == 0 || !_Watchdog_Next( after ) ) break; if ( delta_interval < after->delta_interval ) { after->delta_interval -= delta_interval; 490c8: 9282 subl %d2,%d1 <== NOT EXECUTED 490ca: 2141 0010 movel %d1,%a0@(16) <== NOT EXECUTED _Watchdog_Activate( the_watchdog ); the_watchdog->delta_interval = delta_interval; _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node ); 490ce: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED ) { Chain_Node *before_node; the_node->previous = after_node; before_node = after_node->next; 490d2: 2250 moveal %a0@,%a1 <== NOT EXECUTED the_watchdog->start_time = _Watchdog_Ticks_since_boot; 490d4: 2039 0005 9dc4 movel 59dc4 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED after_node->next = the_node; 490da: 208a movel %a2,%a0@ <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Watchdog_Activate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_ACTIVE; 490dc: 7202 moveq #2,%d1 <== NOT EXECUTED Chain_Node *the_node ) { Chain_Node *before_node; the_node->previous = after_node; 490de: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 490e2: 2541 0008 movel %d1,%a2@(8) <== NOT EXECUTED 490e6: 2540 0014 movel %d0,%a2@(20) <== NOT EXECUTED } } _Watchdog_Activate( the_watchdog ); the_watchdog->delta_interval = delta_interval; 490ea: 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; 490ee: 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; 490f2: 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; 490f4: 23c3 0005 9d36 movel %d3,59d36 <_Watchdog_Sync_level> <== NOT EXECUTED _Watchdog_Sync_count--; 490fa: 2039 0005 9dc0 movel 59dc0 <_Watchdog_Sync_count>,%d0 <== NOT EXECUTED 49100: 5380 subql #1,%d0 <== NOT EXECUTED 49102: 23c0 0005 9dc0 movel %d0,59dc0 <_Watchdog_Sync_count> <== NOT EXECUTED _ISR_Enable( level ); 49108: 46c4 movew %d4,%sr <== NOT EXECUTED } 4910a: 4cd7 0c1c moveml %sp@,%d2-%d4/%a2-%a3 <== NOT EXECUTED 4910e: 4e5e unlk %fp <== NOT EXECUTED 49110: 4e75 rts <== 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 ) { _ISR_Enable( level ); 49112: 46c4 movew %d4,%sr <== NOT EXECUTED exit_insert: _Watchdog_Sync_level = insert_isr_nest_level; _Watchdog_Sync_count--; _ISR_Enable( level ); } 49114: 4cd7 0c1c moveml %sp@,%d2-%d4/%a2-%a3 <== NOT EXECUTED 49118: 4e5e unlk %fp <== NOT EXECUTED 4911a: 4e75 rts 00049168 <_Watchdog_Remove>: */ Watchdog_States _Watchdog_Remove( Watchdog_Control *the_watchdog ) { 49168: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4916c: 2f0a movel %a2,%sp@- <== NOT EXECUTED ISR_Level level; Watchdog_States previous_state; Watchdog_Control *next_watchdog; _ISR_Disable( level ); 4916e: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ Watchdog_States _Watchdog_Remove( Watchdog_Control *the_watchdog ) { 49174: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49176: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ISR_Level level; Watchdog_States previous_state; Watchdog_Control *next_watchdog; _ISR_Disable( level ); 4917a: 40c2 movew %sr,%d2 <== NOT EXECUTED 4917c: 8082 orl %d2,%d0 <== NOT EXECUTED 4917e: 46c0 movew %d0,%sr <== NOT EXECUTED previous_state = the_watchdog->state; 49180: 222a 0008 movel %a2@(8),%d1 <== NOT EXECUTED switch ( previous_state ) { 49184: 7001 moveq #1,%d0 <== NOT EXECUTED 49186: b081 cmpl %d1,%d0 <== NOT EXECUTED 49188: 6766 beqs 491f0 <_Watchdog_Remove+0x88> <== NOT EXECUTED 4918a: 6316 blss 491a2 <_Watchdog_Remove+0x3a> <== NOT EXECUTED _Watchdog_Sync_level = _ISR_Nest_level; _Chain_Extract_unprotected( &the_watchdog->Node ); break; } the_watchdog->stop_time = _Watchdog_Ticks_since_boot; 4918c: 2039 0005 9dc4 movel 59dc4 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED 49192: 2540 0018 movel %d0,%a2@(24) <== NOT EXECUTED _ISR_Enable( level ); 49196: 46c2 movew %d2,%sr <== NOT EXECUTED return( previous_state ); } 49198: 241f movel %sp@+,%d2 <== NOT EXECUTED 4919a: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4919c: 4e5e unlk %fp <== NOT EXECUTED 4919e: 2001 movel %d1,%d0 <== NOT EXECUTED 491a0: 4e75 rts <== NOT EXECUTED Watchdog_States previous_state; Watchdog_Control *next_watchdog; _ISR_Disable( level ); previous_state = the_watchdog->state; switch ( previous_state ) { 491a2: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 491a6: b081 cmpl %d1,%d0 <== NOT EXECUTED 491a8: 65e2 bcss 4918c <_Watchdog_Remove+0x24> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next( Watchdog_Control *the_watchdog ) { return ( (Watchdog_Control *) the_watchdog->Node.next ); 491aa: 2252 moveal %a2@,%a1 <== NOT EXECUTED break; case WATCHDOG_ACTIVE: case WATCHDOG_REMOVE_IT: the_watchdog->state = WATCHDOG_INACTIVE; 491ac: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED next_watchdog = _Watchdog_Next( the_watchdog ); if ( _Watchdog_Next(next_watchdog) ) 491b0: 4a91 tstl %a1@ <== NOT EXECUTED 491b2: 6708 beqs 491bc <_Watchdog_Remove+0x54> <== NOT EXECUTED next_watchdog->delta_interval += the_watchdog->delta_interval; 491b4: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 491b8: d1a9 0010 addl %d0,%a1@(16) <== NOT EXECUTED if ( _Watchdog_Sync_count ) 491bc: 2039 0005 9dc0 movel 59dc0 <_Watchdog_Sync_count>,%d0 <== NOT EXECUTED 491c2: 670c beqs 491d0 <_Watchdog_Remove+0x68> <== NOT EXECUTED _Watchdog_Sync_level = _ISR_Nest_level; 491c4: 2039 0005 9d1a movel 59d1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED 491ca: 23c0 0005 9d36 movel %d0,59d36 <_Watchdog_Sync_level> <== NOT EXECUTED { Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; 491d0: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED _Chain_Extract_unprotected( &the_watchdog->Node ); break; } the_watchdog->stop_time = _Watchdog_Ticks_since_boot; 491d4: 2039 0005 9dc4 movel 59dc4 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED next->previous = previous; previous->next = next; 491da: 2089 movel %a1,%a0@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 491dc: 2348 0004 movel %a0,%a1@(4) <== NOT EXECUTED 491e0: 2540 0018 movel %d0,%a2@(24) <== NOT EXECUTED _ISR_Enable( level ); 491e4: 46c2 movew %d2,%sr <== NOT EXECUTED return( previous_state ); } 491e6: 241f movel %sp@+,%d2 <== NOT EXECUTED 491e8: 245f moveal %sp@+,%a2 <== NOT EXECUTED 491ea: 4e5e unlk %fp <== NOT EXECUTED 491ec: 2001 movel %d1,%d0 <== NOT EXECUTED 491ee: 4e75 rts <== NOT EXECUTED _Watchdog_Sync_level = _ISR_Nest_level; _Chain_Extract_unprotected( &the_watchdog->Node ); break; } the_watchdog->stop_time = _Watchdog_Ticks_since_boot; 491f0: 2039 0005 9dc4 movel 59dc4 <_Watchdog_Ticks_since_boot>,%d0 <== 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; 491f6: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED _Watchdog_Sync_level = _ISR_Nest_level; _Chain_Extract_unprotected( &the_watchdog->Node ); break; } the_watchdog->stop_time = _Watchdog_Ticks_since_boot; 491fa: 2540 0018 movel %d0,%a2@(24) <== NOT EXECUTED _ISR_Enable( level ); 491fe: 46c2 movew %d2,%sr <== NOT EXECUTED return( previous_state ); } 49200: 241f movel %sp@+,%d2 <== NOT EXECUTED 49202: 245f moveal %sp@+,%a2 <== NOT EXECUTED 49204: 4e5e unlk %fp <== NOT EXECUTED 49206: 2001 movel %d1,%d0 <== NOT EXECUTED 49208: 4e75 rts <== NOT EXECUTED ... 0004920c <_Watchdog_Tickle>: */ void _Watchdog_Tickle( Chain_Control *header ) { 4920c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 49210: 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 ); 49214: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED */ void _Watchdog_Tickle( Chain_Control *header ) { 4921a: 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 ); 4921e: 40c2 movew %sr,%d2 <== NOT EXECUTED 49220: 8082 orl %d2,%d0 <== NOT EXECUTED 49222: 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)); 49224: 264d moveal %a5,%a3 <== NOT EXECUTED 49226: 205b moveal %a3@+,%a0 <== NOT EXECUTED if ( _Chain_Is_empty( header ) ) 49228: b7c8 cmpal %a0,%a3 <== NOT EXECUTED 4922a: 6740 beqs 4926c <_Watchdog_Tickle+0x60> <== 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) { 4922c: 2028 0010 movel %a0@(16),%d0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First( Chain_Control *header ) { return ( (Watchdog_Control *) header->first ); 49230: 2448 moveal %a0,%a2 <== NOT EXECUTED 49232: 49f9 0004 9168 lea 49168 <_Watchdog_Remove>,%a4 <== NOT EXECUTED 49238: 6708 beqs 49242 <_Watchdog_Tickle+0x36> <== NOT EXECUTED the_watchdog->delta_interval--; 4923a: 5380 subql #1,%d0 <== NOT EXECUTED 4923c: 2140 0010 movel %d0,%a0@(16) <== NOT EXECUTED if ( the_watchdog->delta_interval != 0 ) 49240: 662a bnes 4926c <_Watchdog_Tickle+0x60> <== NOT EXECUTED case WATCHDOG_REMOVE_IT: break; } _ISR_Disable( level ); 49242: 263c 0000 0700 movel #1792,%d3 <== NOT EXECUTED if ( the_watchdog->delta_interval != 0 ) goto leave; } do { watchdog_state = _Watchdog_Remove( the_watchdog ); 49248: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4924a: 4e94 jsr %a4@ <== NOT EXECUTED _ISR_Enable( level ); 4924c: 46c2 movew %d2,%sr <== NOT EXECUTED switch( watchdog_state ) { 4924e: 7202 moveq #2,%d1 <== NOT EXECUTED 49250: 588f addql #4,%sp <== NOT EXECUTED 49252: b280 cmpl %d0,%d1 <== NOT EXECUTED 49254: 6722 beqs 49278 <_Watchdog_Tickle+0x6c> <== NOT EXECUTED case WATCHDOG_REMOVE_IT: break; } _ISR_Disable( level ); 49256: 2003 movel %d3,%d0 <== NOT EXECUTED 49258: 40c2 movew %sr,%d2 <== NOT EXECUTED 4925a: 8082 orl %d2,%d0 <== NOT EXECUTED 4925c: 46c0 movew %d0,%sr <== NOT EXECUTED 4925e: 2015 movel %a5@,%d0 <== NOT EXECUTED 49260: 2440 moveal %d0,%a2 <== NOT EXECUTED the_watchdog = _Watchdog_First( header ); } while ( !_Chain_Is_empty( header ) && (the_watchdog->delta_interval == 0) ); 49262: b08b cmpl %a3,%d0 <== NOT EXECUTED 49264: 6706 beqs 4926c <_Watchdog_Tickle+0x60> <== NOT EXECUTED 49266: 4aaa 0010 tstl %a2@(16) <== NOT EXECUTED 4926a: 67dc beqs 49248 <_Watchdog_Tickle+0x3c> <== NOT EXECUTED leave: _ISR_Enable(level); 4926c: 46c2 movew %d2,%sr <== NOT EXECUTED } 4926e: 4cee 3c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a5 <== NOT EXECUTED 49274: 4e5e unlk %fp <== NOT EXECUTED 49276: 4e75 rts <== NOT EXECUTED _ISR_Enable( level ); switch( watchdog_state ) { case WATCHDOG_ACTIVE: (*the_watchdog->routine)( 49278: 2f2a 0024 movel %a2@(36),%sp@- <== NOT EXECUTED 4927c: 2f2a 0020 movel %a2@(32),%sp@- <== NOT EXECUTED 49280: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 49284: 4e90 jsr %a0@ <== NOT EXECUTED 49286: 508f addql #8,%sp <== NOT EXECUTED 49288: 60cc bras 49256 <_Watchdog_Tickle+0x4a> <== NOT EXECUTED ... 000492a4 <_Workspace_Allocate>: * _Workspace_Allocate */ void *_Workspace_Allocate( size_t size ) { 492a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Heap_Allocate( &_Workspace_Area, size ); 492a8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 492ac: 4879 0005 9c9e pea 59c9e <_Workspace_Area> <== NOT EXECUTED 492b2: 4eb9 0004 bda8 jsr 4bda8 <_Heap_Allocate> <== NOT EXECUTED } 492b8: 4e5e unlk %fp <== NOT EXECUTED 492ba: 4e75 rts 000492bc <_Workspace_Allocate_or_fatal_error>: * _Workspace_Allocate_or_fatal_error */ void *_Workspace_Allocate_or_fatal_error( size_t size ) { 492bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED */ void *_Workspace_Allocate( size_t size ) { return _Heap_Allocate( &_Workspace_Area, size ); 492c0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 492c4: 4879 0005 9c9e pea 59c9e <_Workspace_Area> <== NOT EXECUTED 492ca: 4eb9 0004 bda8 jsr 4bda8 <_Heap_Allocate> <== NOT EXECUTED { void *memory; memory = _Workspace_Allocate( size ); if ( memory == NULL ) 492d0: 508f addql #8,%sp <== NOT EXECUTED 492d2: 4a80 tstl %d0 <== NOT EXECUTED 492d4: 6704 beqs 492da <_Workspace_Allocate_or_fatal_error+0x1e> <== NOT EXECUTED TRUE, INTERNAL_ERROR_WORKSPACE_ALLOCATION ); return memory; } 492d6: 4e5e unlk %fp <== NOT EXECUTED 492d8: 4e75 rts <== NOT EXECUTED void *memory; memory = _Workspace_Allocate( size ); if ( memory == NULL ) _Internal_error_Occurred( 492da: 4878 0004 pea 4 <== NOT EXECUTED 492de: 4878 0001 pea 1 <== NOT EXECUTED 492e2: 42a7 clrl %sp@- <== NOT EXECUTED 492e4: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED 0004928c <_Workspace_Free>: * _Workspace_Free */ bool _Workspace_Free( void *block ) { 4928c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Heap_Free( &_Workspace_Area, block ); 49290: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49294: 4879 0005 9c9e pea 59c9e <_Workspace_Area> <== NOT EXECUTED 4929a: 4eb9 0004 be6c jsr 4be6c <_Heap_Free> <== NOT EXECUTED } 492a0: 4e5e unlk %fp <== NOT EXECUTED 492a2: 4e75 rts 000492ea <_Workspace_Handler_initialization>: */ void _Workspace_Handler_initialization( void *starting_address, size_t size ) { 492ea: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 492ee: 2f02 movel %d2,%sp@- <== NOT EXECUTED 492f0: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED uint32_t memory_available; if ( !starting_address || !_Addresses_Is_aligned( starting_address ) ) 492f4: 6706 beqs 492fc <_Workspace_Handler_initialization+0x12> <== NOT EXECUTED 492f6: 7003 moveq #3,%d0 <== NOT EXECUTED 492f8: c082 andl %d2,%d0 <== NOT EXECUTED 492fa: 6710 beqs 4930c <_Workspace_Handler_initialization+0x22> <== NOT EXECUTED _Internal_error_Occurred( 492fc: 4878 0002 pea 2 <== NOT EXECUTED 49300: 4878 0001 pea 1 <== NOT EXECUTED 49304: 42a7 clrl %sp@- <== NOT EXECUTED 49306: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_INVALID_WORKSPACE_ADDRESS ); if ( _Configuration_Table->do_zero_of_workspace ) 4930c: 2079 0005 9d16 moveal 59d16 <_Configuration_Table>,%a0 <== NOT EXECUTED 49312: 4a28 0028 tstb %a0@(40) <== NOT EXECUTED 49316: 6628 bnes 49340 <_Workspace_Handler_initialization+0x56> <== NOT EXECUTED memset( starting_address, 0, size ); memory_available = _Heap_Initialize( 49318: 4878 0004 pea 4 <== NOT EXECUTED 4931c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 49320: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49322: 4879 0005 9c9e pea 59c9e <_Workspace_Area> <== NOT EXECUTED 49328: 4eb9 0004 6d94 jsr 46d94 <_Heap_Initialize> <== NOT EXECUTED starting_address, size, CPU_HEAP_ALIGNMENT ); if ( memory_available == 0 ) 4932e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 49334: 4a80 tstl %d0 <== NOT EXECUTED 49336: 671e beqs 49356 <_Workspace_Handler_initialization+0x6c> <== NOT EXECUTED _Internal_error_Occurred( INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_TOO_LITTLE_WORKSPACE ); } 49338: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4933c: 4e5e unlk %fp <== NOT EXECUTED 4933e: 4e75 rts <== NOT EXECUTED TRUE, INTERNAL_ERROR_INVALID_WORKSPACE_ADDRESS ); if ( _Configuration_Table->do_zero_of_workspace ) memset( starting_address, 0, size ); 49340: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 49344: 42a7 clrl %sp@- <== NOT EXECUTED 49346: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49348: 4eb9 0004 dbe8 jsr 4dbe8 <== NOT EXECUTED 4934e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49354: 60c2 bras 49318 <_Workspace_Handler_initialization+0x2e> <== NOT EXECUTED size, CPU_HEAP_ALIGNMENT ); if ( memory_available == 0 ) _Internal_error_Occurred( 49356: 4878 0003 pea 3 <== NOT EXECUTED 4935a: 4878 0001 pea 1 <== NOT EXECUTED 4935e: 42a7 clrl %sp@- <== NOT EXECUTED 49360: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED ... 0004a322 <__assert>: void __assert( const char *file, int line, const char *failedexpr ) { 4a322: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED __assert_func (file, line, NULL, failedexpr); 4a326: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4a32a: 42a7 clrl %sp@- <== NOT EXECUTED 4a32c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a330: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a334: 4eb9 0004 a2c0 jsr 4a2c0 <__assert_func> <== NOT EXECUTED 4a33a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 4a340: 4e5e unlk %fp <== NOT EXECUTED 4a342: 4e75 rts 0004a2c0 <__assert_func>: const char *file, int line, const char *func, const char *failedexpr ) { 4a2c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a2c4: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED printk("assertion \"%s\" failed: file \"%s\", line %d%s%s\n", 4a2c8: 223c 0005 7180 movel #356736,%d1 <== NOT EXECUTED 4a2ce: 4a80 tstl %d0 <== NOT EXECUTED 4a2d0: 6724 beqs 4a2f6 <__assert_func+0x36> <== NOT EXECUTED 4a2d2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a2d4: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4a2d6: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a2da: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a2de: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4a2e2: 4879 0005 718d pea 5718d <== NOT EXECUTED 4a2e8: 4eb9 0004 339e jsr 4339e <== NOT EXECUTED file, line, (func) ? ", function: " : "", (func) ? func : "" ); rtems_fatal_error_occurred(0); 4a2ee: 42a7 clrl %sp@- <== NOT EXECUTED 4a2f0: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED int line, const char *func, const char *failedexpr ) { printk("assertion \"%s\" failed: file \"%s\", line %d%s%s\n", 4a2f6: 223c 0005 6e98 movel #355992,%d1 <== NOT EXECUTED 4a2fc: 2001 movel %d1,%d0 <== NOT EXECUTED 4a2fe: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a300: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4a302: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a306: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a30a: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4a30e: 4879 0005 718d pea 5718d <== NOT EXECUTED 4a314: 4eb9 0004 339e jsr 4339e <== NOT EXECUTED file, line, (func) ? ", function: " : "", (func) ? func : "" ); rtems_fatal_error_occurred(0); 4a31a: 42a7 clrl %sp@- <== NOT EXECUTED 4a31c: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED 0005ea60 <__env_lock>: 5ea60: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5ea64: 4e5e unlk %fp <== NOT EXECUTED 5ea66: 4e75 rts 0005ea68 <__env_unlock>: 5ea68: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5ea6c: 4e5e unlk %fp <== NOT EXECUTED 5ea6e: 4e75 rts 00055890 <_calloc_r>: void *_calloc_r( struct _reent *ignored, size_t elements, size_t size ) { 55890: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 55894: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return calloc( elements, size ); 55898: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 5589e: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 558a2: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ignored, size_t elements, size_t size ) { return calloc( elements, size ); 558a4: 4ef9 0004 a500 jmp 4a500 <== NOT EXECUTED ... 0004a5ea <_close_r>: int _close_r( struct _reent *ptr, int fd ) { 4a5ea: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return close( fd ); 4a5ee: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 4a5f4: 4e5e unlk %fp <== NOT EXECUTED int _close_r( struct _reent *ptr, int fd ) { return close( fd ); 4a5f6: 4ef9 0004 a550 jmp 4a550 <== NOT EXECUTED 00042a68 <_exit>: /* * If the toolset uses init/fini sections, then we need to * run the global destructors now. */ #if defined(__USE_INIT_FINI__) _fini(); 42a68: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42a6c: 4eb9 0005 66cc jsr 566cc <_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(); 42a72: 4eb9 0004 29f4 jsr 429f4 <== NOT EXECUTED rtems_shutdown_executive(status); 42a78: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42a7c: 4eb9 0004 6334 jsr 46334 <== NOT EXECUTED 42a82: 588f addql #4,%sp <== NOT EXECUTED 42a84: 60fe bras 42a84 <_exit+0x1c> <== NOT EXECUTED ... 0006de62 <_fcntl_r>: struct _reent *ptr, int fd, int cmd, int arg ) { 6de62: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 6de66: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 6de6a: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return fcntl( fd, cmd, arg ); 6de6e: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 6de74: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 6de78: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 6de7c: 4e5e unlk %fp <== NOT EXECUTED int fd, int cmd, int arg ) { return fcntl( fd, cmd, arg ); 6de7e: 4ef9 0006 dc1c jmp 6dc1c <== NOT EXECUTED 000558ac <_free_r>: void _free_r( struct _reent *ignored, void *ptr ) { 558ac: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED free( ptr ); 558b0: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 558b6: 4e5e unlk %fp <== NOT EXECUTED void _free_r( struct _reent *ignored, void *ptr ) { free( ptr ); 558b8: 4ef9 0004 a5fc jmp 4a5fc <== NOT EXECUTED ... 0005598a <_fstat_r>: int _fstat_r( struct _reent *ptr, int fd, struct stat *buf ) { 5598a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5598e: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return fstat( fd, buf ); 55992: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 55998: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 5599c: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, int fd, struct stat *buf ) { return fstat( fd, buf ); 5599e: 4ef9 0005 58c0 jmp 558c0 <== NOT EXECUTED 000559ae <_getpid_r>: #include pid_t _getpid_r( struct _reent *ptr ) { 559ae: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getpid(); } 559b2: 4e5e unlk %fp <== NOT EXECUTED 559b4: 7001 moveq #1,%d0 <== NOT EXECUTED 559b6: 4e75 rts 0004a818 <_gettimeofday>: int _gettimeofday( struct timeval *tp, struct timezone *tzp ) { 4a818: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return gettimeofday( tp, tzp ); } 4a81c: 4e5e unlk %fp <== NOT EXECUTED int _gettimeofday( struct timeval *tp, struct timezone *tzp ) { return gettimeofday( tp, tzp ); 4a81e: 4ef9 0004 a7b0 jmp 4a7b0 <== NOT EXECUTED 0004a824 <_gettimeofday_r>: int _gettimeofday_r( struct _reent *ignored_reentrancy_stuff, struct timeval *tp, struct timezone *tzp ) { 4a824: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a828: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return gettimeofday( tp, tzp ); 4a82c: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 4a832: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 4a836: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ignored_reentrancy_stuff, struct timeval *tp, struct timezone *tzp ) { return gettimeofday( tp, tzp ); 4a838: 4ef9 0004 a7b0 jmp 4a7b0 <== NOT EXECUTED ... 00055c80 <_kill_r>: int _kill_r( struct _reent *ptr, pid_t pid, int sig ) { 55c80: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return killinfo( pid, sig, NULL ); 55c84: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED 55c8a: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 55c90: 42ae 0010 clrl %fp@(16) <== NOT EXECUTED } 55c94: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, pid_t pid, int sig ) { return killinfo( pid, sig, NULL ); 55c96: 4ef9 0005 5e8c jmp 55e8c <== NOT EXECUTED 000614b4 <_link_r>: int _link_r( struct _reent *ptr, const char *existing, const char *new ) { 614b4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 614b8: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return link( existing, new ); 614bc: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 614c2: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 614c6: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, const char *existing, const char *new ) { return link( existing, new ); 614c8: 4ef9 0006 12b0 jmp 612b0 <== NOT EXECUTED ... 00055b1a <_lseek_r>: struct _reent *ptr, int fd, off_t offset, int whence ) { 55b1a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 55b1e: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 55b22: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return lseek( fd, offset, whence ); 55b26: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 55b2c: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 55b30: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 55b34: 4e5e unlk %fp <== NOT EXECUTED int fd, off_t offset, int whence ) { return lseek( fd, offset, whence ); 55b36: 4ef9 0005 59f4 jmp 559f4 <== NOT EXECUTED 000616ec <_lstat_r>: int _STAT_R_NAME( struct _reent *ptr, const char *path, struct stat *buf ) { 616ec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 616f0: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return _STAT_NAME( path, buf ); 616f4: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 616fa: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 616fe: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, const char *path, struct stat *buf ) { return _STAT_NAME( path, buf ); 61700: 4ef9 0006 1618 jmp 61618 <== NOT EXECUTED ... 00055b3c <_malloc_r>: void *_malloc_r( struct _reent *ignored, size_t size ) { 55b3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return malloc( size ); 55b40: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 55b46: 4e5e unlk %fp <== NOT EXECUTED void *_malloc_r( struct _reent *ignored, size_t size ) { return malloc( size ); 55b48: 4ef9 0004 abd0 jmp 4abd0 <== NOT EXECUTED ... 00042fd2 <_open_r>: struct _reent *ptr, const char *buf, int flags, int mode ) { 42fd2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42fd6: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 42fda: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return open( buf, flags, mode ); 42fde: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 42fe4: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 42fe8: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 42fec: 4e5e unlk %fp <== NOT EXECUTED const char *buf, int flags, int mode ) { return open( buf, flags, mode ); 42fee: 4ef9 0004 2d80 jmp 42d80 <== NOT EXECUTED 00055c1c <_read_r>: struct _reent *ptr, int fd, void *buf, size_t nbytes ) { 55c1c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 55c20: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 55c24: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return read( fd, buf, nbytes ); 55c28: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 55c2e: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 55c32: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 55c36: 4e5e unlk %fp <== NOT EXECUTED int fd, void *buf, size_t nbytes ) { return read( fd, buf, nbytes ); 55c38: 4ef9 0005 5b50 jmp 55b50 <== NOT EXECUTED ... 00055c40 <_realloc_r>: void *_realloc_r( struct _reent *ignored, void *ptr, size_t size ) { 55c40: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 55c44: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return realloc( ptr, size ); 55c48: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 55c4e: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 55c52: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ignored, void *ptr, size_t size ) { return realloc( ptr, size ); 55c54: 4ef9 0005 5c9c jmp 55c9c <== NOT EXECUTED ... 0007fb08 <_rename_r>: int _rename_r( struct _reent *ptr, const char *old, const char *new ) { 7fb08: 4e56 ffb4 linkw %fp,#-76 <== NOT EXECUTED 7fb0c: 2f02 movel %d2,%sp@- <== NOT EXECUTED struct stat sb; int s; s = stat( old, &sb); 7fb0e: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED int _rename_r( struct _reent *ptr, const char *old, const char *new ) { 7fb12: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED struct stat sb; int s; s = stat( old, &sb); 7fb16: 2f02 movel %d2,%sp@- <== NOT EXECUTED 7fb18: 4eb9 0004 78e4 jsr 478e4 <== NOT EXECUTED if ( s < 0 ) 7fb1e: 508f addql #8,%sp <== NOT EXECUTED 7fb20: 4a80 tstl %d0 <== NOT EXECUTED 7fb22: 6d2e blts 7fb52 <_rename_r+0x4a> <== NOT EXECUTED return s; s = link( old, new ); 7fb24: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 7fb28: 2f02 movel %d2,%sp@- <== NOT EXECUTED 7fb2a: 4eb9 0006 12b0 jsr 612b0 <== NOT EXECUTED if ( s < 0 ) 7fb30: 508f addql #8,%sp <== NOT EXECUTED 7fb32: 4a80 tstl %d0 <== NOT EXECUTED 7fb34: 6d1c blts 7fb52 <_rename_r+0x4a> <== NOT EXECUTED return s; return S_ISDIR(sb.st_mode) ? rmdir( old ) : unlink( old ); 7fb36: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 7fb3a: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 7fb40: 0c80 0000 4000 cmpil #16384,%d0 <== NOT EXECUTED 7fb46: 6712 beqs 7fb5a <_rename_r+0x52> <== NOT EXECUTED 7fb48: 2f02 movel %d2,%sp@- <== NOT EXECUTED 7fb4a: 4eb9 0006 230c jsr 6230c <== NOT EXECUTED 7fb50: 588f addql #4,%sp <== NOT EXECUTED } 7fb52: 242e ffb0 movel %fp@(-80),%d2 <== NOT EXECUTED 7fb56: 4e5e unlk %fp <== NOT EXECUTED 7fb58: 4e75 rts <== NOT EXECUTED if ( s < 0 ) return s; s = link( old, new ); if ( s < 0 ) return s; return S_ISDIR(sb.st_mode) ? rmdir( old ) : unlink( old ); 7fb5a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 7fb5c: 4eb9 0006 1ec4 jsr 61ec4 <== NOT EXECUTED } 7fb62: 242e ffb0 movel %fp@(-80),%d2 <== NOT EXECUTED if ( s < 0 ) return s; s = link( old, new ); if ( s < 0 ) return s; return S_ISDIR(sb.st_mode) ? rmdir( old ) : unlink( old ); 7fb66: 588f addql #4,%sp <== NOT EXECUTED } 7fb68: 4e5e unlk %fp <== NOT EXECUTED 7fb6a: 4e75 rts 000479ba <_stat_r>: int _STAT_R_NAME( struct _reent *ptr, const char *path, struct stat *buf ) { 479ba: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 479be: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return _STAT_NAME( path, buf ); 479c2: 2d6e 0010 000c movel %fp@(16),%fp@(12) <== NOT EXECUTED 479c8: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 479cc: 4e5e unlk %fp <== NOT EXECUTED struct _reent *ptr, const char *path, struct stat *buf ) { return _STAT_NAME( path, buf ); 479ce: 4ef9 0004 78e4 jmp 478e4 <== NOT EXECUTED 00062446 <_unlink_r>: int _unlink_r( struct _reent *ptr, const char *path ) { 62446: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return unlink( path ); 6244a: 2d6e 000c 0008 movel %fp@(12),%fp@(8) <== NOT EXECUTED } 62450: 4e5e unlk %fp <== NOT EXECUTED int _unlink_r( struct _reent *ptr, const char *path ) { return unlink( path ); 62452: 4ef9 0006 230c jmp 6230c <== NOT EXECUTED 00055c5c <_write_r>: struct _reent *ptr, int fd, const void *buf, size_t nbytes ) { 55c5c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 55c60: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 55c64: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED return write( fd, buf, nbytes ); 55c68: 2d6e 0014 0010 movel %fp@(20),%fp@(16) <== NOT EXECUTED 55c6e: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED 55c72: 2d41 0008 movel %d1,%fp@(8) <== NOT EXECUTED } 55c76: 4e5e unlk %fp <== NOT EXECUTED int fd, const void *buf, size_t nbytes ) { return write( fd, buf, nbytes ); 55c78: 4ef9 0005 5dc0 jmp 55dc0 <== NOT EXECUTED ... 0005fa7c : int access( const char *path, int amode ) { 5fa7c: 4e56 ffb4 linkw %fp,#-76 <== NOT EXECUTED 5fa80: 2f02 movel %d2,%sp@- <== NOT EXECUTED struct stat statbuf; if ( stat(path, &statbuf) ) 5fa82: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED int access( const char *path, int amode ) { 5fa86: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED struct stat statbuf; if ( stat(path, &statbuf) ) 5fa8a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5fa8e: 4eb9 0004 78e4 jsr 478e4 <== NOT EXECUTED 5fa94: 508f addql #8,%sp <== NOT EXECUTED 5fa96: 4a80 tstl %d0 <== NOT EXECUTED 5fa98: 6626 bnes 5fac0 <== NOT EXECUTED return -1; if ( amode & R_OK ) { 5fa9a: 44c2 movew %d2,%ccr <== NOT EXECUTED 5fa9c: 6716 beqs 5fab4 <== NOT EXECUTED if (!( statbuf.st_mode & S_IREAD )) return -1; } if ( amode & W_OK ) { 5fa9e: 0802 0001 btst #1,%d2 <== NOT EXECUTED 5faa2: 6626 bnes 5faca <== NOT EXECUTED if ( !( statbuf.st_mode & S_IWRITE ) ) return -1; } if ( amode & X_OK ) { 5faa4: 0802 0000 btst #0,%d2 <== NOT EXECUTED 5faa8: 6632 bnes 5fadc <== NOT EXECUTED if ( !( statbuf.st_mode & S_IEXEC ) ) 5faaa: 4280 clrl %d0 <== NOT EXECUTED return -1; } return 0; } 5faac: 242e ffb0 movel %fp@(-80),%d2 <== NOT EXECUTED 5fab0: 4e5e unlk %fp <== NOT EXECUTED 5fab2: 4e75 rts <== NOT EXECUTED if ( stat(path, &statbuf) ) return -1; if ( amode & R_OK ) { if (!( statbuf.st_mode & S_IREAD )) 5fab4: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 5fab8: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 5fabe: 66de bnes 5fa9e <== NOT EXECUTED if ( !( statbuf.st_mode & S_IEXEC ) ) return -1; } return 0; } 5fac0: 242e ffb0 movel %fp@(-80),%d2 <== NOT EXECUTED 5fac4: 4e5e unlk %fp <== NOT EXECUTED if ( !( statbuf.st_mode & S_IWRITE ) ) return -1; } if ( amode & X_OK ) { if ( !( statbuf.st_mode & S_IEXEC ) ) 5fac6: 70ff moveq #-1,%d0 <== NOT EXECUTED return -1; } return 0; } 5fac8: 4e75 rts <== NOT EXECUTED if (!( statbuf.st_mode & S_IREAD )) return -1; } if ( amode & W_OK ) { if ( !( statbuf.st_mode & S_IWRITE ) ) 5faca: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 5face: 0280 0000 0080 andil #128,%d0 <== NOT EXECUTED 5fad4: 67ea beqs 5fac0 <== NOT EXECUTED return -1; } if ( amode & X_OK ) { 5fad6: 0802 0000 btst #0,%d2 <== NOT EXECUTED 5fada: 67ce beqs 5faaa <== NOT EXECUTED if ( !( statbuf.st_mode & S_IEXEC ) ) 5fadc: 7040 moveq #64,%d0 <== NOT EXECUTED 5fade: c0ae ffc2 andl %fp@(-62),%d0 <== NOT EXECUTED 5fae2: 67dc beqs 5fac0 <== NOT EXECUTED 5fae4: 4280 clrl %d0 <== NOT EXECUTED 5fae6: 60c4 bras 5faac <== NOT EXECUTED 00045848 : int adjtime( struct timeval *delta, struct timeval *olddelta ) { 45848: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4584c: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 45850: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 45854: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED long adjustment; /* * Simple validations */ if ( !delta ) 45858: 4a8a tstl %a2 <== NOT EXECUTED 4585a: 6700 0116 beqw 45972 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( delta->tv_usec >= TOD_MICROSECONDS_PER_SECOND ) 4585e: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED 45862: b1fc 000f 423f cmpal #999999,%a0 <== NOT EXECUTED 45868: 6200 0108 bhiw 45972 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( olddelta ) { 4586c: 4a8b tstl %a3 <== NOT EXECUTED 4586e: 670a beqs 4587a <== NOT EXECUTED olddelta->tv_sec = 0; olddelta->tv_usec = 0; 45870: 42ab 0004 clrl %a3@(4) <== NOT EXECUTED 45874: 206a 0004 moveal %a2@(4),%a0 <== NOT EXECUTED if ( delta->tv_usec >= TOD_MICROSECONDS_PER_SECOND ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( olddelta ) { olddelta->tv_sec = 0; 45878: 4293 clrl %a3@ <== NOT EXECUTED olddelta->tv_usec = 0; } /* convert delta to microseconds */ adjustment = (delta->tv_sec * TOD_MICROSECONDS_PER_SECOND); 4587a: 2412 movel %a2@,%d2 <== NOT EXECUTED 4587c: 2602 movel %d2,%d3 <== NOT EXECUTED 4587e: 2202 movel %d2,%d1 <== NOT EXECUTED 45880: e78b lsll #3,%d3 <== NOT EXECUTED 45882: e189 lsll #8,%d1 <== NOT EXECUTED 45884: 9283 subl %d3,%d1 <== NOT EXECUTED 45886: 2001 movel %d1,%d0 <== NOT EXECUTED 45888: ed88 lsll #6,%d0 <== NOT EXECUTED 4588a: 9081 subl %d1,%d0 <== NOT EXECUTED 4588c: d082 addl %d2,%d0 <== NOT EXECUTED 4588e: ed88 lsll #6,%d0 <== NOT EXECUTED adjustment += delta->tv_usec; /* too small to account for */ if ( adjustment < _TOD_Microseconds_per_tick ) 45890: d088 addl %a0,%d0 <== NOT EXECUTED 45892: b0b9 0005 bada cmpl 5bada <_TOD_Microseconds_per_tick>,%d0 <== NOT EXECUTED 45898: 640e bccs 458a8 <== NOT EXECUTED /* set the user's output */ if ( olddelta ) *olddelta = *delta; return 0; } 4589a: 4cee 0c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a3 <== NOT EXECUTED _Thread_Enable_dispatch(); /* set the user's output */ if ( olddelta ) *olddelta = *delta; 458a0: 4281 clrl %d1 <== NOT EXECUTED return 0; } 458a2: 4e5e unlk %fp <== NOT EXECUTED 458a4: 2001 movel %d1,%d0 <== NOT EXECUTED 458a6: 4e75 rts <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 458a8: 2039 0005 b94c movel 5b94c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 458ae: 5280 addql #1,%d0 <== NOT EXECUTED 458b0: 23c0 0005 b94c movel %d0,5b94c <_Thread_Dispatch_disable_level> <== NOT EXECUTED * This prevents context switches while we are adjusting the TOD */ _Thread_Disable_dispatch(); _TOD_Get( &ts ); 458b6: 260e movel %fp,%d3 <== NOT EXECUTED 458b8: 5183 subql #8,%d3 <== NOT EXECUTED 458ba: 2f03 movel %d3,%sp@- <== NOT EXECUTED 458bc: 4eb9 0004 7598 jsr 47598 <_TOD_Get> <== NOT EXECUTED ts.tv_sec += delta->tv_sec; ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND; 458c2: 222a 0004 movel %a2@(4),%d1 <== NOT EXECUTED 458c6: 2401 movel %d1,%d2 <== NOT EXECUTED 458c8: 2001 movel %d1,%d0 <== NOT EXECUTED 458ca: e58a lsll #2,%d2 <== NOT EXECUTED 458cc: ef88 lsll #7,%d0 <== NOT EXECUTED _Thread_Disable_dispatch(); _TOD_Get( &ts ); ts.tv_sec += delta->tv_sec; 458ce: 2052 moveal %a2@,%a0 <== NOT EXECUTED ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND; 458d0: 9082 subl %d2,%d0 <== NOT EXECUTED 458d2: d081 addl %d1,%d0 <== NOT EXECUTED 458d4: e788 lsll #3,%d0 <== NOT EXECUTED _Thread_Disable_dispatch(); _TOD_Get( &ts ); ts.tv_sec += delta->tv_sec; 458d6: d1ee fff8 addal %fp@(-8),%a0 <== NOT EXECUTED ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND; 458da: d0ae fffc addl %fp@(-4),%d0 <== NOT EXECUTED _Thread_Disable_dispatch(); _TOD_Get( &ts ); ts.tv_sec += delta->tv_sec; 458de: 2d48 fff8 movel %a0,%fp@(-8) <== NOT EXECUTED ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND; /* if adjustment is too much positive */ while ( ts.tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) { 458e2: 588f addql #4,%sp <== NOT EXECUTED _Thread_Disable_dispatch(); _TOD_Get( &ts ); ts.tv_sec += delta->tv_sec; ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND; 458e4: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED /* if adjustment is too much positive */ while ( ts.tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) { 458e8: 0c80 3b9a c9ff cmpil #999999999,%d0 <== NOT EXECUTED 458ee: 632c blss 4591c <== NOT EXECUTED ts.tv_nsec -= TOD_NANOSECONDS_PER_SECOND; 458f0: 2200 movel %d0,%d1 <== NOT EXECUTED 458f2: 0681 c465 3600 addil #-1000000000,%d1 <== NOT EXECUTED int adjtime( struct timeval *delta, struct timeval *olddelta ) { 458f8: 2001 movel %d1,%d0 <== NOT EXECUTED 458fa: 283c 3b9a ca00 movel #1000000000,%d4 <== NOT EXECUTED 45900: 4c44 0000 remul %d4,%d0,%d0 <== NOT EXECUTED 45904: 41f0 0801 lea %a0@(00000001,%d0:l),%a0 <== NOT EXECUTED 45908: 243c c465 3600 movel #-1000000000,%d2 <== NOT EXECUTED 4590e: 4c02 0800 mulsl %d2,%d0 <== NOT EXECUTED 45912: 2d48 fff8 movel %a0,%fp@(-8) <== NOT EXECUTED 45916: d280 addl %d0,%d1 <== NOT EXECUTED 45918: 2d41 fffc movel %d1,%fp@(-4) <== 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) ) { 4591c: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 45920: 0c81 c465 3600 cmpil #-1000000000,%d1 <== NOT EXECUTED 45926: 621c bhis 45944 <== NOT EXECUTED 45928: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED int adjtime( struct timeval *delta, struct timeval *olddelta ) { 4592c: 5380 subql #1,%d0 <== NOT EXECUTED ts.tv_sec++; } /* if adjustment is too much negative */ while ( ts.tv_nsec <= (-1 * TOD_NANOSECONDS_PER_SECOND) ) { ts.tv_nsec += TOD_NANOSECONDS_PER_SECOND; 4592e: 0681 3b9a ca00 addil #1000000000,%d1 <== 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) ) { 45934: 0c81 c465 3600 cmpil #-1000000000,%d1 <== NOT EXECUTED 4593a: 63f0 blss 4592c <== NOT EXECUTED 4593c: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED 45940: 2d41 fffc movel %d1,%fp@(-4) <== NOT EXECUTED ts.tv_nsec += TOD_NANOSECONDS_PER_SECOND; ts.tv_sec--; } _TOD_Set( &ts ); 45944: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45946: 4eb9 0004 7630 jsr 47630 <_TOD_Set> <== NOT EXECUTED _Thread_Enable_dispatch(); 4594c: 4eb9 0004 873c jsr 4873c <_Thread_Enable_dispatch> <== NOT EXECUTED /* set the user's output */ if ( olddelta ) 45952: 588f addql #4,%sp <== NOT EXECUTED 45954: 4a8b tstl %a3 <== NOT EXECUTED 45956: 6700 ff42 beqw 4589a <== NOT EXECUTED *olddelta = *delta; 4595a: 2012 movel %a2@,%d0 <== NOT EXECUTED 4595c: 276a 0004 0004 movel %a2@(4),%a3@(4) <== NOT EXECUTED 45962: 4281 clrl %d1 <== NOT EXECUTED 45964: 2680 movel %d0,%a3@ <== NOT EXECUTED return 0; } 45966: 4cee 0c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a3 <== NOT EXECUTED 4596c: 4e5e unlk %fp <== NOT EXECUTED 4596e: 2001 movel %d1,%d0 <== NOT EXECUTED 45970: 4e75 rts <== NOT EXECUTED */ if ( !delta ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( delta->tv_usec >= TOD_MICROSECONDS_PER_SECOND ) rtems_set_errno_and_return_minus_one( EINVAL ); 45972: 4eb9 0004 dd18 jsr 4dd18 <__errno> <== NOT EXECUTED 45978: 2040 moveal %d0,%a0 <== NOT EXECUTED 4597a: 7016 moveq #22,%d0 <== NOT EXECUTED /* set the user's output */ if ( olddelta ) *olddelta = *delta; return 0; } 4597c: 4cee 0c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a3 <== NOT EXECUTED */ if ( !delta ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( delta->tv_usec >= TOD_MICROSECONDS_PER_SECOND ) rtems_set_errno_and_return_minus_one( EINVAL ); 45982: 2080 movel %d0,%a0@ <== NOT EXECUTED 45984: 72ff moveq #-1,%d1 <== NOT EXECUTED /* set the user's output */ if ( olddelta ) *olddelta = *delta; return 0; } 45986: 4e5e unlk %fp <== NOT EXECUTED 45988: 2001 movel %d1,%d0 <== NOT EXECUTED 4598a: 4e75 rts 00045844 : int aio_cancel( int filedes, struct aiocb *aiocbp ) { 45844: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45848: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 4584e: 2040 moveal %d0,%a0 <== NOT EXECUTED 45850: 7058 moveq #88,%d0 <== NOT EXECUTED 45852: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45854: 4e5e unlk %fp <== NOT EXECUTED 45856: 70ff moveq #-1,%d0 <== NOT EXECUTED 45858: 4e75 rts <== NOT EXECUTED ... 0004585c : #include int aio_error( const struct aiocb *aiocbp ) { 4585c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45860: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45866: 2040 moveal %d0,%a0 <== NOT EXECUTED 45868: 7058 moveq #88,%d0 <== NOT EXECUTED 4586a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 4586c: 4e5e unlk %fp <== NOT EXECUTED 4586e: 70ff moveq #-1,%d0 <== NOT EXECUTED 45870: 4e75 rts <== NOT EXECUTED ... 00045874 : int aio_fsync( int op, struct aiocb *aiocbp ) { 45874: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45878: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 4587e: 2040 moveal %d0,%a0 <== NOT EXECUTED 45880: 7058 moveq #88,%d0 <== NOT EXECUTED 45882: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45884: 4e5e unlk %fp <== NOT EXECUTED 45886: 70ff moveq #-1,%d0 <== NOT EXECUTED 45888: 4e75 rts <== NOT EXECUTED ... 0004588c : #include int aio_read( struct aiocb *aiocbp ) { 4588c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45890: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45896: 2040 moveal %d0,%a0 <== NOT EXECUTED 45898: 7058 moveq #88,%d0 <== NOT EXECUTED 4589a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 4589c: 4e5e unlk %fp <== NOT EXECUTED 4589e: 70ff moveq #-1,%d0 <== NOT EXECUTED 458a0: 4e75 rts <== NOT EXECUTED ... 000458a4 : #include int aio_return( const struct aiocb *aiocbp ) { 458a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 458a8: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 458ae: 2040 moveal %d0,%a0 <== NOT EXECUTED 458b0: 7058 moveq #88,%d0 <== NOT EXECUTED 458b2: 2080 movel %d0,%a0@ <== NOT EXECUTED } 458b4: 4e5e unlk %fp <== NOT EXECUTED 458b6: 70ff moveq #-1,%d0 <== NOT EXECUTED 458b8: 4e75 rts <== NOT EXECUTED ... 000458bc : int aio_suspend( const struct aiocb * const list[], int nent, const struct timespec *timeout ) { 458bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 458c0: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 458c6: 2040 moveal %d0,%a0 <== NOT EXECUTED 458c8: 7058 moveq #88,%d0 <== NOT EXECUTED 458ca: 2080 movel %d0,%a0@ <== NOT EXECUTED } 458cc: 4e5e unlk %fp <== NOT EXECUTED 458ce: 70ff moveq #-1,%d0 <== NOT EXECUTED 458d0: 4e75 rts <== NOT EXECUTED ... 000458d4 : #include int aio_write( struct aiocb *aiocbp ) { 458d4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 458d8: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 458de: 2040 moveal %d0,%a0 <== NOT EXECUTED 458e0: 7058 moveq #88,%d0 <== NOT EXECUTED 458e2: 2080 movel %d0,%a0@ <== NOT EXECUTED } 458e4: 4e5e unlk %fp <== NOT EXECUTED 458e6: 70ff moveq #-1,%d0 <== NOT EXECUTED 458e8: 4e75 rts <== NOT EXECUTED ... 00047648 : } unsigned int alarm( unsigned int seconds ) { 47648: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4764c: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Initialize the timer used to implement alarm(). */ if ( !the_timer->routine ) { 4764e: 4ab9 0005 ee40 tstl 5ee40 <_POSIX_signals_Alarm_timer+0x1c> <== NOT EXECUTED 47654: 6700 008e beqw 476e4 <== NOT EXECUTED _Watchdog_Initialize( the_timer, _POSIX_signals_Alarm_TSR, 0, NULL ); } else { switch ( _Watchdog_Remove( the_timer ) ) { 47658: 4879 0005 ee24 pea 5ee24 <_POSIX_signals_Alarm_timer> <== NOT EXECUTED 4765e: 4eb9 0004 c69c jsr 4c69c <_Watchdog_Remove> <== NOT EXECUTED 47664: 588f addql #4,%sp <== NOT EXECUTED 47666: 5580 subql #2,%d0 <== NOT EXECUTED 47668: 7201 moveq #1,%d1 <== NOT EXECUTED 4766a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4766c: 6428 bccs 47696 <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 4766e: 4879 0005 ee24 pea 5ee24 <_POSIX_signals_Alarm_timer> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 47674: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 47678: 4879 0005 efe8 pea 5efe8 <_Watchdog_Seconds_chain> <== NOT EXECUTED 4767e: 4282 clrl %d2 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 47680: 23d0 0005 ee30 movel %a0@,5ee30 <_POSIX_signals_Alarm_timer+0xc> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 47686: 4eb9 0004 c554 jsr 4c554 <_Watchdog_Insert> <== NOT EXECUTED } _Watchdog_Insert_seconds( the_timer, seconds ); return remaining; } 4768c: 2002 movel %d2,%d0 <== NOT EXECUTED 4768e: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 47692: 4e5e unlk %fp <== NOT EXECUTED 47694: 4e75 rts <== 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 - 47696: 2039 0005 ee3c movel 5ee3c <_POSIX_signals_Alarm_timer+0x18>,%d0 <== NOT EXECUTED 4769c: 90b9 0005 ee38 subl 5ee38 <_POSIX_signals_Alarm_timer+0x14>,%d0 <== NOT EXECUTED 476a2: 41f9 0005 f0a6 lea 5f0a6 <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 476a8: 223c 000f 4240 movel #1000000,%d1 <== NOT EXECUTED 476ae: 4c50 1001 remul %a0@,%d1,%d1 <== NOT EXECUTED 476b2: 4c41 0000 remul %d1,%d0,%d0 <== NOT EXECUTED 476b6: 2439 0005 ee30 movel 5ee30 <_POSIX_signals_Alarm_timer+0xc>,%d2 <== NOT EXECUTED 476bc: 4879 0005 ee24 pea 5ee24 <_POSIX_signals_Alarm_timer> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 476c2: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 476c6: 4879 0005 efe8 pea 5efe8 <_Watchdog_Seconds_chain> <== NOT EXECUTED 476cc: 9480 subl %d0,%d2 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 476ce: 23d0 0005 ee30 movel %a0@,5ee30 <_POSIX_signals_Alarm_timer+0xc> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 476d4: 4eb9 0004 c554 jsr 4c554 <_Watchdog_Insert> <== NOT EXECUTED } _Watchdog_Insert_seconds( the_timer, seconds ); return remaining; } 476da: 2002 movel %d2,%d0 <== NOT EXECUTED 476dc: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 476e0: 4e5e unlk %fp <== NOT EXECUTED 476e2: 4e75 rts <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 476e4: 42b9 0005 ee2c clrl 5ee2c <_POSIX_signals_Alarm_timer+0x8> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 476ea: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 476ee: 42b9 0005 ee44 clrl 5ee44 <_POSIX_signals_Alarm_timer+0x20> <== NOT EXECUTED the_watchdog->user_data = user_data; 476f4: 4282 clrl %d2 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 476f6: 203c 0004 772a movel #292650,%d0 <== NOT EXECUTED 476fc: 23c0 0005 ee40 movel %d0,5ee40 <_POSIX_signals_Alarm_timer+0x1c> <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 47702: 42b9 0005 ee48 clrl 5ee48 <_POSIX_signals_Alarm_timer+0x24> <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 47708: 4879 0005 ee24 pea 5ee24 <_POSIX_signals_Alarm_timer> <== NOT EXECUTED 4770e: 4879 0005 efe8 pea 5efe8 <_Watchdog_Seconds_chain> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 47714: 23d0 0005 ee30 movel %a0@,5ee30 <_POSIX_signals_Alarm_timer+0xc> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 4771a: 4eb9 0004 c554 jsr 4c554 <_Watchdog_Insert> <== NOT EXECUTED 47720: 2002 movel %d2,%d0 <== NOT EXECUTED 47722: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 47726: 4e5e unlk %fp <== NOT EXECUTED 47728: 4e75 rts 00045b64 : */ int alphasort( const void *d1, const void *d2 ) { 45b64: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45b68: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED return(strcmp((*(struct dirent **)d1)->d_name, 45b6c: 2050 moveal %a0@,%a0 <== NOT EXECUTED 45b6e: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 45b72: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 45b78: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED 45b7c: 2251 moveal %a1@,%a1 <== NOT EXECUTED 45b7e: d3fc 0000 000c addal #12,%a1 <== NOT EXECUTED 45b84: 2d49 000c movel %a1,%fp@(12) <== NOT EXECUTED (*(struct dirent **)d2)->d_name)); } 45b88: 4e5e unlk %fp <== NOT EXECUTED int alphasort( const void *d1, const void *d2 ) { return(strcmp((*(struct dirent **)d1)->d_name, 45b8a: 4ef9 0005 255c jmp 5255c <== NOT EXECUTED 0004a500 : ) { register char *cptr; int length; MSBUMP(calloc_calls, 1); 4a500: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a504: 2f03 movel %d3,%sp@- <== NOT EXECUTED length = nelem * elsize; 4a506: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4a50a: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED 4a50e: 4c10 3800 mulsl %a0@,%d3 <== NOT EXECUTED ) { register char *cptr; int length; MSBUMP(calloc_calls, 1); 4a512: 52b9 0005 9b8c addql #1,59b8c <== NOT EXECUTED 4a518: 2f02 movel %d2,%sp@- <== NOT EXECUTED length = nelem * elsize; cptr = malloc( length ); 4a51a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a51c: 4eb9 0004 abd0 jsr 4abd0 <== NOT EXECUTED if ( cptr ) 4a522: 588f addql #4,%sp <== NOT EXECUTED int length; MSBUMP(calloc_calls, 1); length = nelem * elsize; cptr = malloc( length ); 4a524: 2400 movel %d0,%d2 <== NOT EXECUTED if ( cptr ) 4a526: 6712 beqs 4a53a <== NOT EXECUTED memset( cptr, '\0', length ); 4a528: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a52a: 42a7 clrl %sp@- <== NOT EXECUTED 4a52c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a52e: 4eb9 0004 dbe8 jsr 4dbe8 <== NOT EXECUTED 4a534: dffc 0000 000c addal #12,%sp <== NOT EXECUTED MSBUMP(malloc_calls, -1); /* subtract off the malloc */ return cptr; } 4a53a: 2002 movel %d2,%d0 <== NOT EXECUTED 4a53c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4a540: 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 */ 4a544: 53b9 0005 9b7c subql #1,59b7c <== NOT EXECUTED return cptr; } 4a54a: 4e5e unlk %fp <== NOT EXECUTED 4a54c: 4e75 rts <== NOT EXECUTED ... 0005fe04 : #include int chdir( const char *pathname ) { 5fe04: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5fe08: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * Get the node where we wish to go. */ result = rtems_filesystem_evaluate_path( 5fe0a: 45ee fff0 lea %fp@(-16),%a2 <== NOT EXECUTED 5fe0e: 4878 0001 pea 1 <== NOT EXECUTED 5fe12: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5fe14: 4878 0001 pea 1 <== NOT EXECUTED 5fe18: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5fe1c: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED pathname, RTEMS_LIBIO_PERMS_SEARCH, &loc, true ); if ( result != 0 ) 5fe22: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5fe28: 4a80 tstl %d0 <== NOT EXECUTED 5fe2a: 6672 bnes 5fe9e <== NOT EXECUTED /* * Verify you can change directory into this node. */ if ( !loc.ops->node_type_h ) { 5fe2c: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED 5fe30: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED 5fe34: 4a88 tstl %a0 <== NOT EXECUTED 5fe36: 674a beqs 5fe82 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) { 5fe38: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5fe3a: 4e90 jsr %a0@ <== NOT EXECUTED 5fe3c: 588f addql #4,%sp <== NOT EXECUTED 5fe3e: 7201 moveq #1,%d1 <== NOT EXECUTED 5fe40: b280 cmpl %d0,%d1 <== NOT EXECUTED 5fe42: 6664 bnes 5fea8 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTDIR ); } rtems_filesystem_freenode( &rtems_filesystem_current ); 5fe44: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 5fe4a: 2268 000c moveal %a0@(12),%a1 <== NOT EXECUTED 5fe4e: 4a89 tstl %a1 <== NOT EXECUTED 5fe50: 6716 beqs 5fe68 <== NOT EXECUTED 5fe52: 2269 001c moveal %a1@(28),%a1 <== NOT EXECUTED 5fe56: 4a89 tstl %a1 <== NOT EXECUTED 5fe58: 670e beqs 5fe68 <== NOT EXECUTED 5fe5a: 4868 0004 pea %a0@(4) <== NOT EXECUTED 5fe5e: 4e91 jsr %a1@ <== NOT EXECUTED 5fe60: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 5fe66: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_current = loc; 5fe68: 5888 addql #4,%a0 <== NOT EXECUTED 5fe6a: 20d2 movel %a2@,%a0@+ <== NOT EXECUTED return 0; } 5fe6c: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); } rtems_filesystem_freenode( &rtems_filesystem_current ); rtems_filesystem_current = loc; 5fe70: 20ee fff4 movel %fp@(-12),%a0@+ <== NOT EXECUTED 5fe74: 4280 clrl %d0 <== NOT EXECUTED 5fe76: 20ee fff8 movel %fp@(-8),%a0@+ <== NOT EXECUTED 5fe7a: 20ae fffc movel %fp@(-4),%a0@ <== NOT EXECUTED return 0; } 5fe7e: 4e5e unlk %fp <== NOT EXECUTED 5fe80: 4e75 rts <== NOT EXECUTED /* * Verify you can change directory into this node. */ if ( !loc.ops->node_type_h ) { rtems_filesystem_freenode( &loc ); 5fe82: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 5fe86: 4a88 tstl %a0 <== NOT EXECUTED 5fe88: 6706 beqs 5fe90 <== NOT EXECUTED 5fe8a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5fe8c: 4e90 jsr %a0@ <== NOT EXECUTED 5fe8e: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5fe90: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 5fe96: 2040 moveal %d0,%a0 <== NOT EXECUTED 5fe98: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( &rtems_filesystem_current ); rtems_filesystem_current = loc; return 0; } 5fe9e: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 5fea2: 4e5e unlk %fp <== NOT EXECUTED * Verify you can change directory into this node. */ if ( !loc.ops->node_type_h ) { rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); 5fea4: 70ff moveq #-1,%d0 <== NOT EXECUTED rtems_filesystem_freenode( &rtems_filesystem_current ); rtems_filesystem_current = loc; return 0; } 5fea6: 4e75 rts <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) { rtems_filesystem_freenode( &loc ); 5fea8: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5feac: 4a88 tstl %a0 <== NOT EXECUTED 5feae: 670e beqs 5febe <== NOT EXECUTED 5feb0: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5feb4: 4a88 tstl %a0 <== NOT EXECUTED 5feb6: 6706 beqs 5febe <== NOT EXECUTED 5feb8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5feba: 4e90 jsr %a0@ <== NOT EXECUTED 5febc: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 5febe: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED rtems_filesystem_freenode( &rtems_filesystem_current ); rtems_filesystem_current = loc; return 0; } 5fec4: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) { rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTDIR ); 5fec8: 2040 moveal %d0,%a0 <== NOT EXECUTED 5feca: 7014 moveq #20,%d0 <== NOT EXECUTED 5fecc: 2080 movel %d0,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( &rtems_filesystem_current ); rtems_filesystem_current = loc; return 0; } 5fece: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) { rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTDIR ); 5fed0: 70ff moveq #-1,%d0 <== NOT EXECUTED rtems_filesystem_freenode( &rtems_filesystem_current ); rtems_filesystem_current = loc; return 0; } 5fed2: 4e75 rts 00045c40 : int chmod( const char *path, mode_t mode ) { 45c40: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 45c44: 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 ); 45c46: 260e movel %fp,%d3 <== NOT EXECUTED 45c48: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED int chmod( const char *path, mode_t mode ) { 45c4e: 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 ); 45c50: 4878 0001 pea 1 <== NOT EXECUTED 45c54: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45c56: 42a7 clrl %sp@- <== NOT EXECUTED 45c58: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45c5c: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED if ( status != 0 ) 45c62: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45c68: 4a80 tstl %d0 <== NOT EXECUTED 45c6a: 6662 bnes 45cce <== NOT EXECUTED return -1; if ( !loc.handlers ){ 45c6c: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 45c70: 4a88 tstl %a0 <== NOT EXECUTED 45c72: 6738 beqs 45cac <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( EBADF ); } if ( !loc.handlers->fchmod_h ){ 45c74: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 45c78: 4a88 tstl %a0 <== NOT EXECUTED 45c7a: 6762 beqs 45cde <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.handlers->fchmod_h)( &loc, mode ); 45c7c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45c80: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45c82: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 45c84: 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 ); 45c88: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 45c8a: 508f addql #8,%sp <== NOT EXECUTED 45c8c: 4a88 tstl %a0 <== NOT EXECUTED 45c8e: 670e beqs 45c9e <== NOT EXECUTED 45c90: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 45c94: 4a88 tstl %a0 <== NOT EXECUTED 45c96: 6706 beqs 45c9e <== NOT EXECUTED 45c98: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45c9a: 4e90 jsr %a0@ <== NOT EXECUTED 45c9c: 588f addql #4,%sp <== NOT EXECUTED return result; } 45c9e: 2002 movel %d2,%d0 <== NOT EXECUTED 45ca0: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 45ca4: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 45ca8: 4e5e unlk %fp <== NOT EXECUTED 45caa: 4e75 rts <== NOT EXECUTED status = rtems_filesystem_evaluate_path( path, 0, &loc, true ); if ( status != 0 ) return -1; if ( !loc.handlers ){ rtems_filesystem_freenode( &loc ); 45cac: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 45cb0: 4a88 tstl %a0 <== NOT EXECUTED 45cb2: 670e beqs 45cc2 <== NOT EXECUTED 45cb4: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 45cb8: 4a88 tstl %a0 <== NOT EXECUTED 45cba: 6706 beqs 45cc2 <== NOT EXECUTED 45cbc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45cbe: 4e90 jsr %a0@ <== NOT EXECUTED 45cc0: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 45cc2: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 45cc8: 2040 moveal %d0,%a0 <== NOT EXECUTED 45cca: 7009 moveq #9,%d0 <== NOT EXECUTED 45ccc: 2080 movel %d0,%a0@ <== NOT EXECUTED 45cce: 74ff moveq #-1,%d2 <== NOT EXECUTED result = (*loc.handlers->fchmod_h)( &loc, mode ); rtems_filesystem_freenode( &loc ); return result; } 45cd0: 2002 movel %d2,%d0 <== NOT EXECUTED 45cd2: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 45cd6: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 45cda: 4e5e unlk %fp <== NOT EXECUTED 45cdc: 4e75 rts <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( EBADF ); } if ( !loc.handlers->fchmod_h ){ rtems_filesystem_freenode( &loc ); 45cde: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 45ce2: 4a88 tstl %a0 <== NOT EXECUTED 45ce4: 670e beqs 45cf4 <== NOT EXECUTED 45ce6: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 45cea: 4a88 tstl %a0 <== NOT EXECUTED 45cec: 6706 beqs 45cf4 <== NOT EXECUTED 45cee: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45cf0: 4e90 jsr %a0@ <== NOT EXECUTED 45cf2: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 45cf4: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 45cfa: 74ff moveq #-1,%d2 <== NOT EXECUTED 45cfc: 2040 moveal %d0,%a0 <== NOT EXECUTED result = (*loc.handlers->fchmod_h)( &loc, mode ); rtems_filesystem_freenode( &loc ); return result; } 45cfe: 2002 movel %d2,%d0 <== NOT EXECUTED 45d00: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 45d04: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 45d08: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); } if ( !loc.handlers->fchmod_h ){ rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); 45d0a: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED result = (*loc.handlers->fchmod_h)( &loc, mode ); rtems_filesystem_freenode( &loc ); return result; } 45d10: 4e75 rts <== NOT EXECUTED ... 0005fed4 : int chown( const char *path, uid_t owner, gid_t group ) { 5fed4: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 5fed8: 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 ) ) 5fedc: 4878 0001 pea 1 <== NOT EXECUTED 5fee0: 280e movel %fp,%d4 <== NOT EXECUTED int chown( const char *path, uid_t owner, gid_t group ) { 5fee2: 362e 000e movew %fp@(14),%d3 <== NOT EXECUTED rtems_filesystem_location_info_t loc; int result; if ( rtems_filesystem_evaluate_path( path, 0x00, &loc, true ) ) 5fee6: 0684 ffff fff0 addil #-16,%d4 <== NOT EXECUTED 5feec: 2f04 movel %d4,%sp@- <== NOT EXECUTED int chown( const char *path, uid_t owner, gid_t group ) { 5feee: 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 ) ) 5fef2: 42a7 clrl %sp@- <== NOT EXECUTED 5fef4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5fef8: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED 5fefe: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5ff04: 4a80 tstl %d0 <== NOT EXECUTED 5ff06: 665e bnes 5ff66 <== NOT EXECUTED return -1; if ( !loc.ops->chown_h ) { 5ff08: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 5ff0c: 2268 0018 moveal %a0@(24),%a1 <== NOT EXECUTED 5ff10: 4a89 tstl %a1 <== NOT EXECUTED 5ff12: 6736 beqs 5ff4a <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.ops->chown_h)( &loc, owner, group ); 5ff14: 3f02 movew %d2,%sp@- <== NOT EXECUTED 5ff16: 4267 clrw %sp@- <== NOT EXECUTED 5ff18: 3f03 movew %d3,%sp@- <== NOT EXECUTED 5ff1a: 4267 clrw %sp@- <== NOT EXECUTED 5ff1c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5ff1e: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5ff20: 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 ); 5ff24: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 5ff26: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5ff2c: 4a88 tstl %a0 <== NOT EXECUTED 5ff2e: 670e beqs 5ff3e <== NOT EXECUTED 5ff30: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5ff34: 4a88 tstl %a0 <== NOT EXECUTED 5ff36: 6706 beqs 5ff3e <== NOT EXECUTED 5ff38: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5ff3a: 4e90 jsr %a0@ <== NOT EXECUTED 5ff3c: 588f addql #4,%sp <== NOT EXECUTED return result; } 5ff3e: 2002 movel %d2,%d0 <== NOT EXECUTED 5ff40: 4cee 001c ffe4 moveml %fp@(-28),%d2-%d4 <== NOT EXECUTED 5ff46: 4e5e unlk %fp <== NOT EXECUTED 5ff48: 4e75 rts <== NOT EXECUTED if ( rtems_filesystem_evaluate_path( path, 0x00, &loc, true ) ) return -1; if ( !loc.ops->chown_h ) { rtems_filesystem_freenode( &loc ); 5ff4a: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 5ff4e: 4a88 tstl %a0 <== NOT EXECUTED 5ff50: 6706 beqs 5ff58 <== NOT EXECUTED 5ff52: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5ff54: 4e90 jsr %a0@ <== NOT EXECUTED 5ff56: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 5ff58: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 5ff5e: 2040 moveal %d0,%a0 <== NOT EXECUTED 5ff60: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 5ff66: 74ff moveq #-1,%d2 <== NOT EXECUTED result = (*loc.ops->chown_h)( &loc, owner, group ); rtems_filesystem_freenode( &loc ); return result; } 5ff68: 2002 movel %d2,%d0 <== NOT EXECUTED 5ff6a: 4cee 001c ffe4 moveml %fp@(-28),%d2-%d4 <== NOT EXECUTED 5ff70: 4e5e unlk %fp <== NOT EXECUTED 5ff72: 4e75 rts 0005ff74 : #include int chroot( const char *pathname ) { 5ff74: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 5ff78: 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) { 5ff7a: 203c 0009 ba1c movel #637468,%d0 <== NOT EXECUTED #include int chroot( const char *pathname ) { 5ff80: 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) { 5ff82: b0b9 0008 6180 cmpl 86180 ,%d0 <== NOT EXECUTED 5ff88: 677a beqs 60004 <== NOT EXECUTED rtems_libio_set_private_env(); /* try to set a new private env*/ if (rtems_current_user_env == &rtems_global_user_env) /* not ok */ rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = chdir(pathname); 5ff8a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5ff8e: 4eb9 0005 fe04 jsr 5fe04 <== NOT EXECUTED if (result) { 5ff94: 588f addql #4,%sp <== NOT EXECUTED 5ff96: 4a80 tstl %d0 <== NOT EXECUTED 5ff98: 6600 009c bnew 60036 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( errno ); } /* clone the new root location */ if (rtems_filesystem_evaluate_path(".", 0, &loc, 0)) { 5ff9c: 42a7 clrl %sp@- <== NOT EXECUTED 5ff9e: 45ee fff0 lea %fp@(-16),%a2 <== NOT EXECUTED 5ffa2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5ffa4: 42a7 clrl %sp@- <== NOT EXECUTED 5ffa6: 4879 0008 18dc pea 818dc <_CPU_m68k_BFFFO_table+0x3d7> <== NOT EXECUTED 5ffac: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED 5ffb2: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 5ffb8: 4a80 tstl %d0 <== NOT EXECUTED 5ffba: 667a bnes 60036 <== 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); 5ffbc: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 5ffc2: 2268 001c moveal %a0@(28),%a1 <== NOT EXECUTED 5ffc6: 4a89 tstl %a1 <== NOT EXECUTED 5ffc8: 6716 beqs 5ffe0 <== NOT EXECUTED 5ffca: 2269 001c moveal %a1@(28),%a1 <== NOT EXECUTED 5ffce: 4a89 tstl %a1 <== NOT EXECUTED 5ffd0: 670e beqs 5ffe0 <== NOT EXECUTED 5ffd2: 4868 0014 pea %a0@(20) <== NOT EXECUTED 5ffd6: 4e91 jsr %a1@ <== NOT EXECUTED 5ffd8: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 5ffde: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_root = loc; 5ffe0: 2152 0014 movel %a2@,%a0@(20) <== NOT EXECUTED return 0; } 5ffe4: 266e ffec moveal %fp@(-20),%a3 <== NOT EXECUTED 5ffe8: 246e ffe8 moveal %fp@(-24),%a2 <== NOT EXECUTED if (rtems_filesystem_evaluate_path(".", 0, &loc, 0)) { /* 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); rtems_filesystem_root = loc; 5ffec: 216e fff4 0018 movel %fp@(-12),%a0@(24) <== NOT EXECUTED 5fff2: 4280 clrl %d0 <== NOT EXECUTED 5fff4: 216e fff8 001c movel %fp@(-8),%a0@(28) <== NOT EXECUTED 5fffa: 216e fffc 0020 movel %fp@(-4),%a0@(32) <== NOT EXECUTED return 0; } 60000: 4e5e unlk %fp <== NOT EXECUTED 60002: 4e75 rts <== 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) { rtems_libio_set_private_env(); /* try to set a new private env*/ 60004: 4eb9 0006 19f4 jsr 619f4 <== NOT EXECUTED if (rtems_current_user_env == &rtems_global_user_env) /* not ok */ 6000a: 203c 0009 ba1c movel #637468,%d0 <== NOT EXECUTED 60010: b0b9 0008 6180 cmpl 86180 ,%d0 <== NOT EXECUTED 60016: 6600 ff72 bnew 5ff8a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 6001a: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED } rtems_filesystem_freenode(&rtems_filesystem_root); rtems_filesystem_root = loc; return 0; } 60020: 246e ffe8 moveal %fp@(-24),%a2 <== NOT EXECUTED 60024: 266e ffec moveal %fp@(-20),%a3 <== NOT EXECUTED /* an automatic call to new private env the first time */ if (rtems_current_user_env == &rtems_global_user_env) { rtems_libio_set_private_env(); /* try to set a new private env*/ if (rtems_current_user_env == &rtems_global_user_env) /* not ok */ rtems_set_errno_and_return_minus_one( ENOTSUP ); 60028: 2040 moveal %d0,%a0 <== NOT EXECUTED } rtems_filesystem_freenode(&rtems_filesystem_root); rtems_filesystem_root = loc; return 0; } 6002a: 4e5e unlk %fp <== NOT EXECUTED /* an automatic call to new private env the first time */ if (rtems_current_user_env == &rtems_global_user_env) { rtems_libio_set_private_env(); /* try to set a new private env*/ if (rtems_current_user_env == &rtems_global_user_env) /* not ok */ rtems_set_errno_and_return_minus_one( ENOTSUP ); 6002c: 70ff moveq #-1,%d0 <== NOT EXECUTED 6002e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED } rtems_filesystem_freenode(&rtems_filesystem_root); rtems_filesystem_root = loc; return 0; } 60034: 4e75 rts <== NOT EXECUTED } /* clone the new root location */ if (rtems_filesystem_evaluate_path(".", 0, &loc, 0)) { /* our cwd has changed, though - but there is no easy way of return :-( */ rtems_set_errno_and_return_minus_one( errno ); 60036: 45f9 0007 0580 lea 70580 <__errno>,%a2 <== NOT EXECUTED 6003c: 4e92 jsr %a2@ <== NOT EXECUTED 6003e: 2640 moveal %d0,%a3 <== NOT EXECUTED 60040: 4e92 jsr %a2@ <== NOT EXECUTED 60042: 2040 moveal %d0,%a0 <== NOT EXECUTED 60044: 2690 movel %a0@,%a3@ <== NOT EXECUTED } rtems_filesystem_freenode(&rtems_filesystem_root); rtems_filesystem_root = loc; return 0; } 60046: 246e ffe8 moveal %fp@(-24),%a2 <== NOT EXECUTED 6004a: 266e ffec moveal %fp@(-20),%a3 <== NOT EXECUTED 6004e: 4e5e unlk %fp <== NOT EXECUTED } /* clone the new root location */ if (rtems_filesystem_evaluate_path(".", 0, &loc, 0)) { /* our cwd has changed, though - but there is no easy way of return :-( */ rtems_set_errno_and_return_minus_one( errno ); 60050: 70ff moveq #-1,%d0 <== NOT EXECUTED } rtems_filesystem_freenode(&rtems_filesystem_root); rtems_filesystem_root = loc; return 0; } 60052: 4e75 rts 000458ec : int clock_getcpuclockid( pid_t pid, clockid_t *clock_id ) { 458ec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 458f0: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 458f6: 2040 moveal %d0,%a0 <== NOT EXECUTED 458f8: 7058 moveq #88,%d0 <== NOT EXECUTED 458fa: 2080 movel %d0,%a0@ <== NOT EXECUTED } 458fc: 4e5e unlk %fp <== NOT EXECUTED 458fe: 70ff moveq #-1,%d0 <== NOT EXECUTED 45900: 4e75 rts <== NOT EXECUTED ... 00045904 : int clock_getenable_attr( clockid_t clock_id, int *attr ) { 45904: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45908: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 4590e: 2040 moveal %d0,%a0 <== NOT EXECUTED 45910: 7058 moveq #88,%d0 <== NOT EXECUTED 45912: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45914: 4e5e unlk %fp <== NOT EXECUTED 45916: 70ff moveq #-1,%d0 <== NOT EXECUTED 45918: 4e75 rts <== NOT EXECUTED ... 000467b8 : int clock_getres( clockid_t clock_id, struct timespec *res ) { 467b8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 467bc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 467be: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 467c2: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !res ) 467c4: 4a88 tstl %a0 <== NOT EXECUTED 467c6: 675a beqs 46822 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); switch ( clock_id ) { 467c8: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 467cc: 7202 moveq #2,%d1 <== NOT EXECUTED 467ce: 5380 subql #1,%d0 <== NOT EXECUTED 467d0: b280 cmpl %d0,%d1 <== NOT EXECUTED 467d2: 641a bccs 467ee <== NOT EXECUTED /* _TOD_From_ticks( _TOD_Microseconds_per_tick, res ); */ } break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 467d4: 4eb9 0004 f30c jsr 4f30c <__errno> <== NOT EXECUTED } return 0; } 467da: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 467de: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED /* _TOD_From_ticks( _TOD_Microseconds_per_tick, res ); */ } break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 467e2: 2040 moveal %d0,%a0 <== NOT EXECUTED 467e4: 7216 moveq #22,%d1 <== NOT EXECUTED } return 0; } 467e6: 4e5e unlk %fp <== NOT EXECUTED /* _TOD_From_ticks( _TOD_Microseconds_per_tick, res ); */ } break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 467e8: 70ff moveq #-1,%d0 <== NOT EXECUTED 467ea: 2081 movel %d1,%a0@ <== NOT EXECUTED } return 0; } 467ec: 4e75 rts <== NOT EXECUTED case CLOCK_REALTIME: case CLOCK_PROCESS_CPUTIME: case CLOCK_THREAD_CPUTIME: if ( res ) { res->tv_sec = _TOD_Microseconds_per_tick / 1000000; 467ee: 2039 0005 dc5e movel 5dc5e <_TOD_Microseconds_per_tick>,%d0 <== NOT EXECUTED res->tv_nsec = _TOD_Microseconds_per_tick * 1000; 467f4: 2400 movel %d0,%d2 <== NOT EXECUTED 467f6: 2200 movel %d0,%d1 <== NOT EXECUTED 467f8: e58a lsll #2,%d2 <== NOT EXECUTED 467fa: ef89 lsll #7,%d1 <== NOT EXECUTED 467fc: 9282 subl %d2,%d1 <== NOT EXECUTED 467fe: d280 addl %d0,%d1 <== NOT EXECUTED 46800: 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; 46802: 2400 movel %d0,%d2 <== NOT EXECUTED 46804: 263c 000f 4240 movel #1000000,%d3 <== NOT EXECUTED res->tv_nsec = _TOD_Microseconds_per_tick * 1000; 4680a: 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; 4680e: 4c43 2002 remul %d3,%d2,%d2 <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( EINVAL ); } return 0; } 46812: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED case CLOCK_REALTIME: case CLOCK_PROCESS_CPUTIME: case CLOCK_THREAD_CPUTIME: if ( res ) { res->tv_sec = _TOD_Microseconds_per_tick / 1000000; 46816: 2082 movel %d2,%a0@ <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( EINVAL ); } return 0; } 46818: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4681c: 4e5e unlk %fp <== NOT EXECUTED case CLOCK_REALTIME: case CLOCK_PROCESS_CPUTIME: case CLOCK_THREAD_CPUTIME: if ( res ) { res->tv_sec = _TOD_Microseconds_per_tick / 1000000; res->tv_nsec = _TOD_Microseconds_per_tick * 1000; 4681e: 4280 clrl %d0 <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( EINVAL ); } return 0; } 46820: 4e75 rts <== NOT EXECUTED clockid_t clock_id, struct timespec *res ) { if ( !res ) rtems_set_errno_and_return_minus_one( EINVAL ); 46822: 4eb9 0004 f30c jsr 4f30c <__errno> <== NOT EXECUTED 46828: 7416 moveq #22,%d2 <== NOT EXECUTED 4682a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4682c: 2082 movel %d2,%a0@ <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( EINVAL ); } return 0; } 4682e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46832: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 46836: 4e5e unlk %fp <== NOT EXECUTED clockid_t clock_id, struct timespec *res ) { if ( !res ) rtems_set_errno_and_return_minus_one( EINVAL ); 46838: 70ff moveq #-1,%d0 <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( EINVAL ); } return 0; } 4683a: 4e75 rts 0004683c : int clock_gettime( clockid_t clock_id, struct timespec *tp ) { 4683c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46840: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 46844: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 46848: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !tp ) 4684a: 4a81 tstl %d1 <== NOT EXECUTED 4684c: 676c beqs 468ba <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( clock_id == CLOCK_REALTIME ) 4684e: 7401 moveq #1,%d2 <== NOT EXECUTED 46850: b480 cmpl %d0,%d2 <== NOT EXECUTED 46852: 6752 beqs 468a6 <== NOT EXECUTED _TOD_Get(tp); #ifdef CLOCK_MONOTONIC else if ( clock_id == CLOCK_MONOTONIC ) 46854: 7404 moveq #4,%d2 <== NOT EXECUTED 46856: b480 cmpl %d0,%d2 <== NOT EXECUTED 46858: 6722 beqs 4687c <== NOT EXECUTED _TOD_Get_uptime(tp); #endif #ifdef _POSIX_CPUTIME else if ( clock_id == CLOCK_PROCESS_CPUTIME ) 4685a: 7402 moveq #2,%d2 <== NOT EXECUTED 4685c: b480 cmpl %d0,%d2 <== NOT EXECUTED 4685e: 671c beqs 4687c <== NOT EXECUTED _TOD_Get_uptime(tp); #endif #ifdef _POSIX_THREAD_CPUTIME else if ( clock_id == CLOCK_THREAD_CPUTIME ) 46860: 7203 moveq #3,%d1 <== NOT EXECUTED 46862: b280 cmpl %d0,%d1 <== NOT EXECUTED 46864: 672a beqs 46890 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); #endif else rtems_set_errno_and_return_minus_one( EINVAL ); 46866: 4eb9 0004 f30c jsr 4f30c <__errno> <== NOT EXECUTED return 0; } 4686c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED #ifdef _POSIX_THREAD_CPUTIME else if ( clock_id == CLOCK_THREAD_CPUTIME ) rtems_set_errno_and_return_minus_one( ENOSYS ); #endif else rtems_set_errno_and_return_minus_one( EINVAL ); 46870: 2040 moveal %d0,%a0 <== NOT EXECUTED 46872: 7216 moveq #22,%d1 <== NOT EXECUTED return 0; } 46874: 4e5e unlk %fp <== NOT EXECUTED #ifdef _POSIX_THREAD_CPUTIME else if ( clock_id == CLOCK_THREAD_CPUTIME ) rtems_set_errno_and_return_minus_one( ENOSYS ); #endif else rtems_set_errno_and_return_minus_one( EINVAL ); 46876: 70ff moveq #-1,%d0 <== NOT EXECUTED 46878: 2081 movel %d1,%a0@ <== NOT EXECUTED return 0; } 4687a: 4e75 rts <== NOT EXECUTED else if ( clock_id == CLOCK_MONOTONIC ) _TOD_Get_uptime(tp); #endif #ifdef _POSIX_CPUTIME else if ( clock_id == CLOCK_PROCESS_CPUTIME ) _TOD_Get_uptime(tp); 4687c: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4687e: 4eb9 0004 8f98 jsr 48f98 <_TOD_Get_uptime> <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 46884: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED else if ( clock_id == CLOCK_MONOTONIC ) _TOD_Get_uptime(tp); #endif #ifdef _POSIX_CPUTIME else if ( clock_id == CLOCK_PROCESS_CPUTIME ) _TOD_Get_uptime(tp); 46888: 588f addql #4,%sp <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 4688a: 4e5e unlk %fp <== NOT EXECUTED else if ( clock_id == CLOCK_MONOTONIC ) _TOD_Get_uptime(tp); #endif #ifdef _POSIX_CPUTIME else if ( clock_id == CLOCK_PROCESS_CPUTIME ) _TOD_Get_uptime(tp); 4688c: 4280 clrl %d0 <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 4688e: 4e75 rts <== NOT EXECUTED else if ( clock_id == CLOCK_PROCESS_CPUTIME ) _TOD_Get_uptime(tp); #endif #ifdef _POSIX_THREAD_CPUTIME else if ( clock_id == CLOCK_THREAD_CPUTIME ) rtems_set_errno_and_return_minus_one( ENOSYS ); 46890: 4eb9 0004 f30c jsr 4f30c <__errno> <== NOT EXECUTED 46896: 7458 moveq #88,%d2 <== NOT EXECUTED 46898: 2040 moveal %d0,%a0 <== NOT EXECUTED 4689a: 2082 movel %d2,%a0@ <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 4689c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 468a0: 4e5e unlk %fp <== NOT EXECUTED else if ( clock_id == CLOCK_PROCESS_CPUTIME ) _TOD_Get_uptime(tp); #endif #ifdef _POSIX_THREAD_CPUTIME else if ( clock_id == CLOCK_THREAD_CPUTIME ) rtems_set_errno_and_return_minus_one( ENOSYS ); 468a2: 70ff moveq #-1,%d0 <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 468a4: 4e75 rts <== NOT EXECUTED { if ( !tp ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( clock_id == CLOCK_REALTIME ) _TOD_Get(tp); 468a6: 2f01 movel %d1,%sp@- <== NOT EXECUTED 468a8: 4eb9 0004 8f38 jsr 48f38 <_TOD_Get> <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 468ae: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED { if ( !tp ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( clock_id == CLOCK_REALTIME ) _TOD_Get(tp); 468b2: 588f addql #4,%sp <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 468b4: 4e5e unlk %fp <== NOT EXECUTED { if ( !tp ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( clock_id == CLOCK_REALTIME ) _TOD_Get(tp); 468b6: 4280 clrl %d0 <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 468b8: 4e75 rts <== NOT EXECUTED clockid_t clock_id, struct timespec *tp ) { if ( !tp ) rtems_set_errno_and_return_minus_one( EINVAL ); 468ba: 4eb9 0004 f30c jsr 4f30c <__errno> <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 468c0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED clockid_t clock_id, struct timespec *tp ) { if ( !tp ) rtems_set_errno_and_return_minus_one( EINVAL ); 468c4: 2040 moveal %d0,%a0 <== NOT EXECUTED 468c6: 7016 moveq #22,%d0 <== NOT EXECUTED 468c8: 2080 movel %d0,%a0@ <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 468ca: 4e5e unlk %fp <== NOT EXECUTED clockid_t clock_id, struct timespec *tp ) { if ( !tp ) rtems_set_errno_and_return_minus_one( EINVAL ); 468cc: 70ff moveq #-1,%d0 <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 468ce: 4e75 rts 000459b0 : int clock_setenable_attr( clockid_t clock_id, int attr ) { 459b0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 459b4: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 459ba: 2040 moveal %d0,%a0 <== NOT EXECUTED 459bc: 7058 moveq #88,%d0 <== NOT EXECUTED 459be: 2080 movel %d0,%a0@ <== NOT EXECUTED } 459c0: 4e5e unlk %fp <== NOT EXECUTED 459c2: 70ff moveq #-1,%d0 <== NOT EXECUTED 459c4: 4e75 rts <== NOT EXECUTED ... 000626e4 : int clock_settime( clockid_t clock_id, const struct timespec *tp ) { 626e4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 626e8: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 626ec: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED if ( !tp ) 626f0: 4a88 tstl %a0 <== NOT EXECUTED 626f2: 6764 beqs 62758 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( clock_id == CLOCK_REALTIME ) { 626f4: 7201 moveq #1,%d1 <== NOT EXECUTED 626f6: b280 cmpl %d0,%d1 <== NOT EXECUTED 626f8: 6730 beqs 6272a <== NOT EXECUTED _Thread_Disable_dispatch(); _TOD_Set( tp ); _Thread_Enable_dispatch(); } #ifdef _POSIX_CPUTIME else if ( clock_id == CLOCK_PROCESS_CPUTIME ) 626fa: 7202 moveq #2,%d1 <== NOT EXECUTED 626fc: b280 cmpl %d0,%d1 <== NOT EXECUTED 626fe: 6718 beqs 62718 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); #endif #ifdef _POSIX_THREAD_CPUTIME else if ( clock_id == CLOCK_THREAD_CPUTIME ) 62700: 7203 moveq #3,%d1 <== NOT EXECUTED 62702: b280 cmpl %d0,%d1 <== NOT EXECUTED 62704: 6712 beqs 62718 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); #endif else rtems_set_errno_and_return_minus_one( EINVAL ); 62706: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6270c: 7216 moveq #22,%d1 <== NOT EXECUTED 6270e: 2040 moveal %d0,%a0 <== NOT EXECUTED return 0; } 62710: 4e5e unlk %fp <== NOT EXECUTED #ifdef _POSIX_THREAD_CPUTIME else if ( clock_id == CLOCK_THREAD_CPUTIME ) rtems_set_errno_and_return_minus_one( ENOSYS ); #endif else rtems_set_errno_and_return_minus_one( EINVAL ); 62712: 70ff moveq #-1,%d0 <== NOT EXECUTED 62714: 2081 movel %d1,%a0@ <== NOT EXECUTED return 0; } 62716: 4e75 rts <== NOT EXECUTED else if ( clock_id == CLOCK_PROCESS_CPUTIME ) rtems_set_errno_and_return_minus_one( ENOSYS ); #endif #ifdef _POSIX_THREAD_CPUTIME else if ( clock_id == CLOCK_THREAD_CPUTIME ) rtems_set_errno_and_return_minus_one( ENOSYS ); 62718: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6271e: 2040 moveal %d0,%a0 <== NOT EXECUTED 62720: 7058 moveq #88,%d0 <== NOT EXECUTED 62722: 2080 movel %d0,%a0@ <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 62724: 4e5e unlk %fp <== NOT EXECUTED else if ( clock_id == CLOCK_PROCESS_CPUTIME ) rtems_set_errno_and_return_minus_one( ENOSYS ); #endif #ifdef _POSIX_THREAD_CPUTIME else if ( clock_id == CLOCK_THREAD_CPUTIME ) rtems_set_errno_and_return_minus_one( ENOSYS ); 62726: 70ff moveq #-1,%d0 <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 62728: 4e75 rts <== NOT EXECUTED { if ( !tp ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( clock_id == CLOCK_REALTIME ) { if ( tp->tv_sec < TOD_SECONDS_1970_THROUGH_1988 ) 6272a: 203c 21da e4ff movel #567993599,%d0 <== NOT EXECUTED 62730: b090 cmpl %a0@,%d0 <== NOT EXECUTED 62732: 6424 bccs 62758 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 62734: 2039 0009 b438 movel 9b438 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 6273a: 5280 addql #1,%d0 <== NOT EXECUTED 6273c: 23c0 0009 b438 movel %d0,9b438 <_Thread_Dispatch_disable_level> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); _Thread_Disable_dispatch(); _TOD_Set( tp ); 62742: 2f08 movel %a0,%sp@- <== NOT EXECUTED 62744: 4eb9 0006 3d9c jsr 63d9c <_TOD_Set> <== NOT EXECUTED _Thread_Enable_dispatch(); 6274a: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED 62750: 588f addql #4,%sp <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 62752: 4e5e unlk %fp <== NOT EXECUTED if ( tp->tv_sec < TOD_SECONDS_1970_THROUGH_1988 ) rtems_set_errno_and_return_minus_one( EINVAL ); _Thread_Disable_dispatch(); _TOD_Set( tp ); _Thread_Enable_dispatch(); 62754: 4280 clrl %d0 <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 62756: 4e75 rts <== NOT EXECUTED if ( !tp ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( clock_id == CLOCK_REALTIME ) { if ( tp->tv_sec < TOD_SECONDS_1970_THROUGH_1988 ) rtems_set_errno_and_return_minus_one( EINVAL ); 62758: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6275e: 7216 moveq #22,%d1 <== NOT EXECUTED 62760: 2040 moveal %d0,%a0 <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 62762: 4e5e unlk %fp <== NOT EXECUTED if ( !tp ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( clock_id == CLOCK_REALTIME ) { if ( tp->tv_sec < TOD_SECONDS_1970_THROUGH_1988 ) rtems_set_errno_and_return_minus_one( EINVAL ); 62764: 70ff moveq #-1,%d0 <== NOT EXECUTED 62766: 2081 movel %d1,%a0@ <== NOT EXECUTED #endif else rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } 62768: 4e75 rts <== NOT EXECUTED ... 0004a550 : #include int close( int fd ) { 4a550: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a554: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a556: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a558: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_status_code rc; rtems_libio_check_fd(fd); 4a55c: b4b9 0005 8048 cmpl 58048 ,%d2 <== NOT EXECUTED 4a562: 646a bccs 4a5ce <== NOT EXECUTED iop = rtems_libio_iop(fd); 4a564: 2002 movel %d2,%d0 <== NOT EXECUTED 4a566: 2202 movel %d2,%d1 <== NOT EXECUTED 4a568: e588 lsll #2,%d0 <== NOT EXECUTED 4a56a: e989 lsll #4,%d1 <== NOT EXECUTED 4a56c: 9280 subl %d0,%d1 <== NOT EXECUTED 4a56e: 2479 0005 9b14 moveal 59b14 ,%a2 <== NOT EXECUTED 4a574: d282 addl %d2,%d1 <== NOT EXECUTED 4a576: e589 lsll #2,%d1 <== NOT EXECUTED 4a578: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_is_open(iop); 4a57a: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 4a57e: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 4a584: 6748 beqs 4a5ce <== NOT EXECUTED rc = RTEMS_SUCCESSFUL; if ( iop->handlers->close_h ) 4a586: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 4a58a: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 4a58e: 4a88 tstl %a0 <== NOT EXECUTED 4a590: 6738 beqs 4a5ca <== NOT EXECUTED rc = (*iop->handlers->close_h)( iop ); 4a592: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a594: 4e90 jsr %a0@ <== NOT EXECUTED 4a596: 588f addql #4,%sp <== NOT EXECUTED 4a598: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &iop->pathinfo ); 4a59a: 206a 0018 moveal %a2@(24),%a0 <== NOT EXECUTED 4a59e: 4a88 tstl %a0 <== NOT EXECUTED 4a5a0: 6710 beqs 4a5b2 <== NOT EXECUTED 4a5a2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 4a5a6: 4a88 tstl %a0 <== NOT EXECUTED 4a5a8: 6708 beqs 4a5b2 <== NOT EXECUTED 4a5aa: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4a5ae: 4e90 jsr %a0@ <== NOT EXECUTED 4a5b0: 588f addql #4,%sp <== NOT EXECUTED rtems_libio_free( iop ); 4a5b2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a5b4: 4eb9 0004 a99a jsr 4a99a <== NOT EXECUTED return rc; } 4a5ba: 2002 movel %d2,%d0 <== NOT EXECUTED 4a5bc: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4a5c0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED rc = RTEMS_SUCCESSFUL; if ( iop->handlers->close_h ) rc = (*iop->handlers->close_h)( iop ); rtems_filesystem_freenode( &iop->pathinfo ); rtems_libio_free( iop ); 4a5c4: 588f addql #4,%sp <== NOT EXECUTED return rc; } 4a5c6: 4e5e unlk %fp <== NOT EXECUTED 4a5c8: 4e75 rts <== NOT EXECUTED rtems_libio_check_fd(fd); iop = rtems_libio_iop(fd); rtems_libio_check_is_open(iop); rc = RTEMS_SUCCESSFUL; if ( iop->handlers->close_h ) 4a5ca: 4282 clrl %d2 <== NOT EXECUTED 4a5cc: 60cc bras 4a59a <== NOT EXECUTED rtems_libio_t *iop; rtems_status_code rc; rtems_libio_check_fd(fd); iop = rtems_libio_iop(fd); rtems_libio_check_is_open(iop); 4a5ce: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4a5d4: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a5d6: 7009 moveq #9,%d0 <== NOT EXECUTED 4a5d8: 74ff moveq #-1,%d2 <== NOT EXECUTED 4a5da: 2080 movel %d0,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( &iop->pathinfo ); rtems_libio_free( iop ); return rc; } 4a5dc: 2002 movel %d2,%d0 <== NOT EXECUTED 4a5de: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4a5e2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4a5e6: 4e5e unlk %fp <== NOT EXECUTED 4a5e8: 4e75 rts 0006da44 : * close a directory. */ int closedir( DIR *dirp ) { 6da44: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 6da48: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 6da4c: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED int fd; if ( !dirp ) 6da50: 4a8b tstl %a3 <== NOT EXECUTED 6da52: 672e beqs 6da82 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); fd = dirp->dd_fd; 6da54: 2413 movel %a3@,%d2 <== NOT EXECUTED dirp->dd_fd = -1; dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); 6da56: 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; 6da5a: 70ff moveq #-1,%d0 <== NOT EXECUTED dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); 6da5c: 45f9 0004 61e4 lea 461e4 ,%a2 <== NOT EXECUTED if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); fd = dirp->dd_fd; dirp->dd_fd = -1; 6da62: 2680 movel %d0,%a3@ <== NOT EXECUTED dirp->dd_loc = 0; 6da64: 42ab 0004 clrl %a3@(4) <== NOT EXECUTED (void)free((void *)dirp->dd_buf); 6da68: 4e92 jsr %a2@ <== NOT EXECUTED (void)free((void *)dirp); 6da6a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6da6c: 4e92 jsr %a2@ <== NOT EXECUTED return(close(fd)); 6da6e: 508f addql #8,%sp <== NOT EXECUTED 6da70: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 6da74: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 6da7a: 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)); 6da7c: 4ef9 0004 5d14 jmp 45d14 <== NOT EXECUTED DIR *dirp ) { int fd; if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); 6da82: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED dirp->dd_fd = -1; dirp->dd_loc = 0; (void)free((void *)dirp->dd_buf); (void)free((void *)dirp); return(close(fd)); } 6da88: 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 ); 6da8e: 2040 moveal %d0,%a0 <== NOT EXECUTED 6da90: 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)); } 6da92: 4e5e unlk %fp <== NOT EXECUTED 6da94: 70ff moveq #-1,%d0 <== NOT EXECUTED DIR *dirp ) { int fd; if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); 6da96: 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)); } 6da98: 4e75 rts <== NOT EXECUTED ... 00045a50 : int filedes, void *dev_data_ptr, size_t nbyte, int *dev_info_ptr ) { 45a50: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45a54: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45a5a: 2040 moveal %d0,%a0 <== NOT EXECUTED 45a5c: 7058 moveq #88,%d0 <== NOT EXECUTED 45a5e: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45a60: 4e5e unlk %fp <== NOT EXECUTED 45a62: 70ff moveq #-1,%d0 <== NOT EXECUTED 45a64: 4e75 rts <== NOT EXECUTED ... 0004c744 : */ int device_close( rtems_libio_t *iop ) { 4c744: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4c748: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED args.iop = iop; args.flags = 0; args.mode = 0; status = rtems_io_close( 4c74c: 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; 4c750: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; 4c754: 2d48 fff4 movel %a0,%fp@(-12) <== NOT EXECUTED args.flags = 0; 4c758: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED args.mode = 0; 4c75c: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED status = rtems_io_close( 4c760: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4c764: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4c768: 4eb9 0004 cfa0 jsr 4cfa0 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) { 4c76e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4c774: 4a80 tstl %d0 <== NOT EXECUTED 4c776: 6604 bnes 4c77c <== NOT EXECUTED return rtems_deviceio_errno(status); } return 0; } 4c778: 4e5e unlk %fp <== NOT EXECUTED 4c77a: 4e75 rts <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) { return rtems_deviceio_errno(status); 4c77c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4c77e: 4eba fe86 jsr %pc@(4c606 ) <== NOT EXECUTED 4c782: 588f addql #4,%sp <== NOT EXECUTED } return 0; } 4c784: 4e5e unlk %fp <== NOT EXECUTED 4c786: 4e75 rts 0004c5fc : int device_ftruncate( rtems_libio_t *iop, off_t length ) { 4c5fc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 4c600: 4e5e unlk %fp <== NOT EXECUTED 4c602: 4280 clrl %d0 <== NOT EXECUTED 4c604: 4e75 rts 0004c640 : int device_ioctl( rtems_libio_t *iop, uint32_t command, void *buffer ) { 4c640: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4c644: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED args.iop = iop; args.command = command; args.buffer = buffer; the_jnode = iop->file_info; 4c648: 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; 4c64c: 2d6e 000c fff4 movel %fp@(12),%fp@(-12) <== NOT EXECUTED args.buffer = buffer; 4c652: 2d6e 0010 fff8 movel %fp@(16),%fp@(-8) <== NOT EXECUTED the_jnode = iop->file_info; status = rtems_io_control( 4c658: 486e fff0 pea %fp@(-16) <== NOT EXECUTED { rtems_libio_ioctl_args_t args; rtems_status_code status; IMFS_jnode_t *the_jnode; args.iop = iop; 4c65c: 2d48 fff0 movel %a0,%fp@(-16) <== NOT EXECUTED args.command = command; args.buffer = buffer; the_jnode = iop->file_info; status = rtems_io_control( 4c660: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4c664: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4c668: 4eb9 0004 cff4 jsr 4cff4 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4c66e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4c674: 4a80 tstl %d0 <== NOT EXECUTED 4c676: 6608 bnes 4c680 <== NOT EXECUTED return rtems_deviceio_errno(status); return args.ioctl_return; 4c678: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 4c67c: 4e5e unlk %fp <== NOT EXECUTED 4c67e: 4e75 rts <== NOT EXECUTED the_jnode->info.device.minor, (void *) &args ); if ( status ) return rtems_deviceio_errno(status); 4c680: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4c682: 4eba ff82 jsr %pc@(4c606 ) <== NOT EXECUTED 4c686: 588f addql #4,%sp <== NOT EXECUTED return args.ioctl_return; } 4c688: 4e5e unlk %fp <== NOT EXECUTED 4c68a: 4e75 rts 0004c5f0 : off_t device_lseek( rtems_libio_t *iop, off_t offset, int whence ) { 4c5f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return offset; } 4c5f4: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4c5f8: 4e5e unlk %fp <== NOT EXECUTED 4c5fa: 4e75 rts 0004c788 : rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) { 4c788: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4c78c: 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; 4c790: 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; 4c796: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; args.flags = iop->flags; args.mode = mode; 4c79a: 2d6e 0014 fffc movel %fp@(20),%fp@(-4) <== NOT EXECUTED status = rtems_io_open( 4c7a0: 486e fff4 pea %fp@(-12) <== NOT EXECUTED rtems_status_code status; IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; args.iop = iop; 4c7a4: 2d48 fff4 movel %a0,%fp@(-12) <== NOT EXECUTED args.flags = iop->flags; args.mode = mode; status = rtems_io_open( 4c7a8: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4c7ac: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4c7b0: 4eb9 0004 d048 jsr 4d048 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4c7b6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4c7bc: 4a80 tstl %d0 <== NOT EXECUTED 4c7be: 6604 bnes 4c7c4 <== NOT EXECUTED return rtems_deviceio_errno(status); return 0; } 4c7c0: 4e5e unlk %fp <== NOT EXECUTED 4c7c2: 4e75 rts <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) return rtems_deviceio_errno(status); 4c7c4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4c7c6: 4eba fe3e jsr %pc@(4c606 ) <== NOT EXECUTED 4c7ca: 588f addql #4,%sp <== NOT EXECUTED return 0; } 4c7cc: 4e5e unlk %fp <== NOT EXECUTED 4c7ce: 4e75 rts 0004c6e8 : ssize_t device_read( rtems_libio_t *iop, void *buffer, size_t count ) { 4c6e8: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4c6ec: 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; 4c6f0: 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; 4c6f6: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; args.offset = iop->offset; 4c6fa: 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( 4c700: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED the_jnode = iop->file_info; args.iop = iop; args.offset = iop->offset; args.buffer = buffer; 4c704: 2d6e 000c fff0 movel %fp@(12),%fp@(-16) <== NOT EXECUTED args.count = count; 4c70a: 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; 4c710: 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; 4c714: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED status = rtems_io_read( 4c718: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4c71c: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4c720: 4eb9 0004 d09c jsr 4d09c <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4c726: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4c72c: 4a80 tstl %d0 <== NOT EXECUTED 4c72e: 6608 bnes 4c738 <== NOT EXECUTED return rtems_deviceio_errno(status); return (ssize_t) args.bytes_moved; 4c730: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 4c734: 4e5e unlk %fp <== NOT EXECUTED 4c736: 4e75 rts <== NOT EXECUTED the_jnode->info.device.minor, (void *) &args ); if ( status ) return rtems_deviceio_errno(status); 4c738: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4c73a: 4eba feca jsr %pc@(4c606 ) <== NOT EXECUTED 4c73e: 588f addql #4,%sp <== NOT EXECUTED return (ssize_t) args.bytes_moved; } 4c740: 4e5e unlk %fp <== NOT EXECUTED 4c742: 4e75 rts 0004c68c : ssize_t device_write( rtems_libio_t *iop, const void *buffer, size_t count ) { 4c68c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4c690: 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; 4c694: 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; 4c69a: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED args.iop = iop; args.offset = iop->offset; 4c69e: 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( 4c6a4: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED the_jnode = iop->file_info; args.iop = iop; args.offset = iop->offset; args.buffer = (void *) buffer; 4c6a8: 2d6e 000c fff0 movel %fp@(12),%fp@(-16) <== NOT EXECUTED args.count = count; 4c6ae: 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; 4c6b4: 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; 4c6b8: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED status = rtems_io_write( 4c6bc: 2f29 0050 movel %a1@(80),%sp@- <== NOT EXECUTED 4c6c0: 2f29 004c movel %a1@(76),%sp@- <== NOT EXECUTED 4c6c4: 4eb9 0004 d0f0 jsr 4d0f0 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor, (void *) &args ); if ( status ) 4c6ca: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4c6d0: 4a80 tstl %d0 <== NOT EXECUTED 4c6d2: 6608 bnes 4c6dc <== NOT EXECUTED return rtems_deviceio_errno(status); return (ssize_t) args.bytes_moved; 4c6d4: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 4c6d8: 4e5e unlk %fp <== NOT EXECUTED 4c6da: 4e75 rts <== NOT EXECUTED the_jnode->info.device.minor, (void *) &args ); if ( status ) return rtems_deviceio_errno(status); 4c6dc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4c6de: 4eba ff26 jsr %pc@(4c606 ) <== NOT EXECUTED 4c6e2: 588f addql #4,%sp <== NOT EXECUTED return (ssize_t) args.bytes_moved; } 4c6e4: 4e5e unlk %fp <== NOT EXECUTED 4c6e6: 4e75 rts 00044388 : /* * Drain output queue */ static void drainOutput (struct rtems_termios_tty *tty) { 44388: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4438c: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 44390: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED rtems_interrupt_level level; rtems_status_code sc; if (tty->device.outputUsesInterrupts != TERMIOS_POLLED) { 44394: 4aaa 00b4 tstl %a2@(180) <== NOT EXECUTED 44398: 6752 beqs 443ec <== NOT EXECUTED rtems_interrupt_disable (level); 4439a: 307c 0700 moveaw #1792,%a0 <== NOT EXECUTED 4439e: 2008 movel %a0,%d0 <== NOT EXECUTED 443a0: 40c2 movew %sr,%d2 <== NOT EXECUTED 443a2: 8082 orl %d2,%d0 <== NOT EXECUTED 443a4: 46c0 movew %d0,%sr <== NOT EXECUTED while (tty->rawOutBuf.Tail != tty->rawOutBuf.Head) { 443a6: 222a 0084 movel %a2@(132),%d1 <== NOT EXECUTED 443aa: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 443ae: b081 cmpl %d1,%d0 <== NOT EXECUTED 443b0: 6738 beqs 443ea <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); rtems_interrupt_disable (level); 443b2: 2608 movel %a0,%d3 <== NOT EXECUTED 443b4: 47f9 0004 5be8 lea 45be8 ,%a3 <== 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; 443ba: 7002 moveq #2,%d0 <== NOT EXECUTED 443bc: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED rtems_interrupt_enable (level); 443c0: 46c2 movew %d2,%sr <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore, 443c2: 42a7 clrl %sp@- <== NOT EXECUTED 443c4: 42a7 clrl %sp@- <== NOT EXECUTED 443c6: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 443ca: 4e93 jsr %a3@ <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 443cc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 443d2: 4a80 tstl %d0 <== NOT EXECUTED 443d4: 6620 bnes 443f6 <== NOT EXECUTED rtems_fatal_error_occurred (sc); rtems_interrupt_disable (level); 443d6: 2003 movel %d3,%d0 <== NOT EXECUTED 443d8: 40c2 movew %sr,%d2 <== NOT EXECUTED 443da: 8082 orl %d2,%d0 <== NOT EXECUTED 443dc: 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) { 443de: 222a 0084 movel %a2@(132),%d1 <== NOT EXECUTED 443e2: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 443e6: b081 cmpl %d1,%d0 <== NOT EXECUTED 443e8: 66d0 bnes 443ba <== NOT EXECUTED RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); rtems_interrupt_disable (level); } rtems_interrupt_enable (level); 443ea: 46c2 movew %d2,%sr <== NOT EXECUTED } } 443ec: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 443f2: 4e5e unlk %fp <== NOT EXECUTED 443f4: 4e75 rts <== NOT EXECUTED rtems_interrupt_enable (level); sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); 443f6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 443f8: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED 00043320 : #include int dup( int fildes ) { 43320: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return fcntl( fildes, F_DUPFD, 0 ); 43324: 42a7 clrl %sp@- <== NOT EXECUTED 43326: 42a7 clrl %sp@- <== NOT EXECUTED 43328: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4332c: 4eb9 0004 375c jsr 4375c <== NOT EXECUTED } 43332: 4e5e unlk %fp <== NOT EXECUTED 43334: 4e75 rts <== NOT EXECUTED ... 000432b8 : int dup2( int fildes, int fildes2 ) { 432b8: 4e56 ffb4 linkw %fp,#-76 <== NOT EXECUTED 432bc: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * If fildes is not valid, then fildes2 should not be closed. */ status = fstat( fildes, &buf ); 432be: 45f9 0004 3c28 lea 43c28 ,%a2 <== NOT EXECUTED int dup2( int fildes, int fildes2 ) { 432c4: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * If fildes is not valid, then fildes2 should not be closed. */ status = fstat( fildes, &buf ); 432c6: 240e movel %fp,%d2 <== NOT EXECUTED 432c8: 0682 ffff ffb6 addil #-74,%d2 <== NOT EXECUTED 432ce: 2f02 movel %d2,%sp@- <== NOT EXECUTED 432d0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 432d4: 4e92 jsr %a2@ <== NOT EXECUTED if ( status == -1 ) 432d6: 508f addql #8,%sp <== NOT EXECUTED 432d8: 72ff moveq #-1,%d1 <== NOT EXECUTED 432da: b280 cmpl %d0,%d1 <== NOT EXECUTED 432dc: 660e bnes 432ec <== NOT EXECUTED /* * This fcntl handles everything else. */ return fcntl( fildes, F_DUPFD, fildes2 ); } 432de: 242e ffac movel %fp@(-84),%d2 <== NOT EXECUTED 432e2: 246e ffb0 moveal %fp@(-80),%a2 <== NOT EXECUTED 432e6: 4e5e unlk %fp <== NOT EXECUTED /* * This fcntl handles everything else. */ return fcntl( fildes, F_DUPFD, fildes2 ); 432e8: 70ff moveq #-1,%d0 <== NOT EXECUTED } 432ea: 4e75 rts <== NOT EXECUTED /* * If fildes2 is not valid, then we should not do anything either. */ status = fstat( fildes2, &buf ); 432ec: 2f02 movel %d2,%sp@- <== NOT EXECUTED 432ee: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 432f2: 4e92 jsr %a2@ <== NOT EXECUTED if ( status == -1 ) 432f4: 508f addql #8,%sp <== NOT EXECUTED 432f6: 72ff moveq #-1,%d1 <== NOT EXECUTED 432f8: b280 cmpl %d0,%d1 <== NOT EXECUTED 432fa: 67e2 beqs 432de <== NOT EXECUTED /* * This fcntl handles everything else. */ return fcntl( fildes, F_DUPFD, fildes2 ); 432fc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 43300: 42a7 clrl %sp@- <== NOT EXECUTED 43302: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 43306: 4eb9 0004 375c jsr 4375c <== NOT EXECUTED } 4330c: 242e ffac movel %fp@(-84),%d2 <== NOT EXECUTED 43310: 246e ffb0 moveal %fp@(-80),%a2 <== NOT EXECUTED /* * This fcntl handles everything else. */ return fcntl( fildes, F_DUPFD, fildes2 ); 43314: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 4331a: 4e5e unlk %fp <== NOT EXECUTED 4331c: 4e75 rts <== NOT EXECUTED ... 00043db2 : /* * Echo a typed character */ static void echo (unsigned char c, struct rtems_termios_tty *tty) { 43db2: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 43db6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43db8: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 43dbc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 43dbe: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { 43dc2: 202a 003c movel %a2@(60),%d0 <== NOT EXECUTED /* * Echo a typed character */ static void echo (unsigned char c, struct rtems_termios_tty *tty) { 43dc6: 1202 moveb %d2,%d1 <== NOT EXECUTED if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { 43dc8: 0280 0000 0200 andil #512,%d0 <== NOT EXECUTED 43dce: 673c beqs 43e0c <== NOT EXECUTED 43dd0: 2079 0005 8620 moveal 58620 <__ctype_ptr>,%a0 <== NOT EXECUTED 43dd6: 0281 0000 00ff andil #255,%d1 <== NOT EXECUTED 43ddc: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 43de0: 49c0 extbl %d0 <== NOT EXECUTED 43de2: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43de6: 670e beqs 43df6 <== NOT EXECUTED 43de8: 7009 moveq #9,%d0 <== NOT EXECUTED 43dea: b081 cmpl %d1,%d0 <== NOT EXECUTED 43dec: 6708 beqs 43df6 <== NOT EXECUTED 43dee: 103c 000a moveb #10,%d0 <== NOT EXECUTED 43df2: b081 cmpl %d1,%d0 <== NOT EXECUTED 43df4: 6628 bnes 43e1e <== NOT EXECUTED echobuf[1] = c ^ 0x40; rtems_termios_puts (echobuf, 2, tty); tty->column += 2; } else { oproc (c, tty); 43df6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43df8: 2f01 movel %d1,%sp@- <== NOT EXECUTED 43dfa: 4eba fdd4 jsr %pc@(43bd0 ) <== NOT EXECUTED 43dfe: 508f addql #8,%sp <== NOT EXECUTED } } 43e00: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 43e04: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 43e08: 4e5e unlk %fp <== NOT EXECUTED 43e0a: 4e75 rts <== NOT EXECUTED echobuf[1] = c ^ 0x40; rtems_termios_puts (echobuf, 2, tty); tty->column += 2; } else { oproc (c, tty); 43e0c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43e0e: 0281 0000 00ff andil #255,%d1 <== NOT EXECUTED 43e14: 2f01 movel %d1,%sp@- <== NOT EXECUTED 43e16: 4eba fdb8 jsr %pc@(43bd0 ) <== NOT EXECUTED 43e1a: 508f addql #8,%sp <== NOT EXECUTED 43e1c: 60e2 bras 43e00 <== NOT EXECUTED if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { char echobuf[2]; echobuf[0] = '^'; echobuf[1] = c ^ 0x40; rtems_termios_puts (echobuf, 2, tty); 43e1e: 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; 43e20: 103c 0040 moveb #64,%d0 <== NOT EXECUTED 43e24: b182 eorl %d0,%d2 <== NOT EXECUTED rtems_termios_puts (echobuf, 2, tty); 43e26: 4878 0002 pea 2 <== NOT EXECUTED { if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) { char echobuf[2]; echobuf[0] = '^'; echobuf[1] = c ^ 0x40; 43e2a: 1d42 ffff moveb %d2,%fp@(-1) <== NOT EXECUTED rtems_termios_puts (echobuf, 2, tty); 43e2e: 486e fffe pea %fp@(-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] = '^'; 43e32: 705e moveq #94,%d0 <== NOT EXECUTED 43e34: 1d40 fffe moveb %d0,%fp@(-2) <== NOT EXECUTED echobuf[1] = c ^ 0x40; rtems_termios_puts (echobuf, 2, tty); 43e38: 4eb9 0004 3aa2 jsr 43aa2 <== NOT EXECUTED tty->column += 2; 43e3e: 54aa 0028 addql #2,%a2@(40) <== NOT EXECUTED } else { oproc (c, tty); } } 43e42: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 43e46: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED char echobuf[2]; echobuf[0] = '^'; echobuf[1] = c ^ 0x40; rtems_termios_puts (echobuf, 2, tty); tty->column += 2; 43e4a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } else { oproc (c, tty); } } 43e50: 4e5e unlk %fp <== NOT EXECUTED 43e52: 4e75 rts 000608e0 : group_fp = fopen("/etc/group", "r"); } void endgrent(void) { if (group_fp != NULL) 608e0: 2039 0009 a44a movel 9a44a ,%d0 <== NOT EXECUTED fclose(group_fp); group_fp = fopen("/etc/group", "r"); } void endgrent(void) { 608e6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (group_fp != NULL) 608ea: 4a80 tstl %d0 <== NOT EXECUTED 608ec: 670a beqs 608f8 <== NOT EXECUTED fclose(group_fp); 608ee: 2f00 movel %d0,%sp@- <== NOT EXECUTED 608f0: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED 608f6: 588f addql #4,%sp <== NOT EXECUTED } 608f8: 4e5e unlk %fp <== NOT EXECUTED 608fa: 4e75 rts 000608fc : passwd_fp = fopen("/etc/passwd", "r"); } void endpwent(void) { if (passwd_fp != NULL) 608fc: 2039 0009 a362 movel 9a362 ,%d0 <== NOT EXECUTED fclose(passwd_fp); passwd_fp = fopen("/etc/passwd", "r"); } void endpwent(void) { 60902: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (passwd_fp != NULL) 60906: 4a80 tstl %d0 <== NOT EXECUTED 60908: 670a beqs 60914 <== NOT EXECUTED fclose(passwd_fp); 6090a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 6090c: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED 60912: 588f addql #4,%sp <== NOT EXECUTED } 60914: 4e5e unlk %fp <== NOT EXECUTED 60916: 4e75 rts 00043e54 : * 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) { 43e54: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 43e58: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 43e5c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 43e60: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED if (tty->ccount == 0) 43e64: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 43e68: 6772 beqs 43edc <== NOT EXECUTED return; if (lineFlag) { 43e6a: 4a83 tstl %d3 <== NOT EXECUTED 43e6c: 6778 beqs 43ee6 <== NOT EXECUTED if (!(tty->termios.c_lflag & ECHO)) { 43e6e: 222a 003c movel %a2@(60),%d1 <== NOT EXECUTED 43e72: 44c1 movew %d1,%ccr <== NOT EXECUTED 43e74: 6a62 bpls 43ed8 <== NOT EXECUTED tty->ccount = 0; return; } if (!(tty->termios.c_lflag & ECHOE)) { 43e76: 0801 0004 btst #4,%d1 <== NOT EXECUTED 43e7a: 6700 019e beqw 4401a <== NOT EXECUTED 43e7e: 49f9 0004 3aa2 lea 43aa2 ,%a4 <== NOT EXECUTED echo ('\n', tty); return; } } while (tty->ccount) { unsigned char c = tty->cbuf[--tty->ccount]; 43e84: 2040 moveal %d0,%a0 <== NOT EXECUTED 43e86: 226a 001c moveal %a2@(28),%a1 <== NOT EXECUTED 43e8a: 5388 subql #1,%a0 <== NOT EXECUTED 43e8c: 2548 0020 movel %a0,%a2@(32) <== NOT EXECUTED 43e90: 1031 8800 moveb %a1@(00000000,%a0:l),%d0 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) { 43e94: 44c1 movew %d1,%ccr <== NOT EXECUTED 43e96: 6a30 bpls 43ec8 <== NOT EXECUTED if (!lineFlag && !(tty->termios.c_lflag & ECHOE)) { 43e98: 4a83 tstl %d3 <== NOT EXECUTED 43e9a: 6608 bnes 43ea4 <== NOT EXECUTED 43e9c: 0801 0004 btst #4,%d1 <== NOT EXECUTED 43ea0: 6700 015e beqw 44000 <== NOT EXECUTED echo (tty->termios.c_cc[VERASE], tty); } else if (c == '\t') { 43ea4: 4282 clrl %d2 <== NOT EXECUTED 43ea6: 1400 moveb %d0,%d2 <== NOT EXECUTED 43ea8: 7a09 moveq #9,%d5 <== NOT EXECUTED 43eaa: ba82 cmpl %d2,%d5 <== NOT EXECUTED 43eac: 6700 00ac beqw 43f5a <== NOT EXECUTED rtems_termios_puts ("\b", 1, tty); tty->column--; } } else { if (iscntrl (c) && (tty->termios.c_lflag & ECHOCTL)) { 43eb0: 2079 0005 8620 moveal 58620 <__ctype_ptr>,%a0 <== NOT EXECUTED 43eb6: 1030 2800 moveb %a0@(00000000,%d2:l),%d0 <== NOT EXECUTED 43eba: 49c0 extbl %d0 <== NOT EXECUTED 43ebc: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43ec0: 676e beqs 43f30 <== NOT EXECUTED 43ec2: 0801 0009 btst #9,%d1 <== NOT EXECUTED 43ec6: 662a bnes 43ef2 <== NOT EXECUTED if (tty->column) tty->column--; } } } if (!lineFlag) 43ec8: 4a83 tstl %d3 <== NOT EXECUTED 43eca: 6710 beqs 43edc <== NOT EXECUTED if (tty->termios.c_lflag & ECHOK) echo ('\n', tty); return; } } while (tty->ccount) { 43ecc: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 43ed0: 670a beqs 43edc <== NOT EXECUTED 43ed2: 222a 003c movel %a2@(60),%d1 <== NOT EXECUTED 43ed6: 60ac bras 43e84 <== NOT EXECUTED { if (tty->ccount == 0) return; if (lineFlag) { if (!(tty->termios.c_lflag & ECHO)) { tty->ccount = 0; 43ed8: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED } } if (!lineFlag) break; } } 43edc: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 43ee2: 4e5e unlk %fp <== NOT EXECUTED 43ee4: 4e75 rts <== NOT EXECUTED 43ee6: 222a 003c movel %a2@(60),%d1 <== NOT EXECUTED 43eea: 49f9 0004 3aa2 lea 43aa2 ,%a4 <== NOT EXECUTED 43ef0: 6092 bras 43e84 <== NOT EXECUTED tty->column--; } } else { if (iscntrl (c) && (tty->termios.c_lflag & ECHOCTL)) { rtems_termios_puts ("\b \b", 3, tty); 43ef2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43ef4: 4878 0003 pea 3 <== NOT EXECUTED 43ef8: 4879 0005 6e95 pea 56e95 <== NOT EXECUTED 43efe: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->column) 43f00: 202a 0028 movel %a2@(40),%d0 <== NOT EXECUTED 43f04: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43f0a: 6706 beqs 43f12 <== NOT EXECUTED tty->column--; 43f0c: 5380 subql #1,%d0 <== NOT EXECUTED 43f0e: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED } if (!iscntrl (c) || (tty->termios.c_lflag & ECHOCTL)) { 43f12: 2079 0005 8620 moveal 58620 <__ctype_ptr>,%a0 <== NOT EXECUTED 43f18: 1030 2800 moveb %a0@(00000000,%d2:l),%d0 <== NOT EXECUTED 43f1c: 49c0 extbl %d0 <== NOT EXECUTED 43f1e: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43f22: 670c beqs 43f30 <== NOT EXECUTED 43f24: 202a 003c movel %a2@(60),%d0 <== NOT EXECUTED 43f28: 0280 0000 0200 andil #512,%d0 <== NOT EXECUTED 43f2e: 6798 beqs 43ec8 <== NOT EXECUTED rtems_termios_puts ("\b \b", 3, tty); 43f30: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43f32: 4878 0003 pea 3 <== NOT EXECUTED 43f36: 4879 0005 6e95 pea 56e95 <== NOT EXECUTED 43f3c: 4eb9 0004 3aa2 jsr 43aa2 <== NOT EXECUTED if (tty->column) 43f42: 202a 0028 movel %a2@(40),%d0 <== NOT EXECUTED 43f46: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43f4c: 6700 ff7a beqw 43ec8 <== NOT EXECUTED tty->column--; 43f50: 5380 subql #1,%d0 <== NOT EXECUTED 43f52: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED 43f56: 6000 ff70 braw 43ec8 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) { if (!lineFlag && !(tty->termios.c_lflag & ECHOE)) { echo (tty->termios.c_cc[VERASE], tty); } else if (c == '\t') { int col = tty->read_start_column; 43f5a: 242a 002c movel %a2@(44),%d2 <== NOT EXECUTED int i = 0; /* * Find the character before the tab */ while (i != tty->ccount) { 43f5e: 4a88 tstl %a0 <== NOT EXECUTED 43f60: 6734 beqs 43f96 <== NOT EXECUTED c = tty->cbuf[i++]; if (c == '\t') { col = (col | 7) + 1; } else if (iscntrl (c)) { 43f62: 2679 0005 8620 moveal 58620 <__ctype_ptr>,%a3 <== NOT EXECUTED if (tty->termios.c_lflag & ECHOCTL) 43f68: 2801 movel %d1,%d4 <== NOT EXECUTED 43f6a: 0284 0000 0200 andil #512,%d4 <== NOT EXECUTED while (i != tty->ccount) { c = tty->cbuf[i++]; if (c == '\t') { col = (col | 7) + 1; } else if (iscntrl (c)) { 43f70: 4281 clrl %d1 <== NOT EXECUTED /* * Find the character before the tab */ while (i != tty->ccount) { c = tty->cbuf[i++]; 43f72: 4280 clrl %d0 <== NOT EXECUTED 43f74: 1031 1800 moveb %a1@(00000000,%d1:l),%d0 <== NOT EXECUTED if (c == '\t') { 43f78: 7a09 moveq #9,%d5 <== NOT EXECUTED /* * Find the character before the tab */ while (i != tty->ccount) { c = tty->cbuf[i++]; 43f7a: 5281 addql #1,%d1 <== NOT EXECUTED if (c == '\t') { 43f7c: ba80 cmpl %d0,%d5 <== NOT EXECUTED 43f7e: 6770 beqs 43ff0 <== NOT EXECUTED col = (col | 7) + 1; } else if (iscntrl (c)) { 43f80: 1033 0800 moveb %a3@(00000000,%d0:l),%d0 <== NOT EXECUTED 43f84: 49c0 extbl %d0 <== NOT EXECUTED 43f86: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43f8a: 675c beqs 43fe8 <== NOT EXECUTED if (tty->termios.c_lflag & ECHOCTL) 43f8c: 4a84 tstl %d4 <== NOT EXECUTED 43f8e: 6702 beqs 43f92 <== NOT EXECUTED col += 2; 43f90: 5482 addql #2,%d2 <== NOT EXECUTED int i = 0; /* * Find the character before the tab */ while (i != tty->ccount) { 43f92: b288 cmpl %a0,%d1 <== NOT EXECUTED 43f94: 66dc bnes 43f72 <== NOT EXECUTED } /* * Back up over the tab */ while (tty->column > col) { 43f96: b4aa 0028 cmpl %a2@(40),%d2 <== NOT EXECUTED 43f9a: 6c00 ff2c bgew 43ec8 <== NOT EXECUTED rtems_termios_puts ("\b", 1, tty); 43f9e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43fa0: 4878 0001 pea 1 <== NOT EXECUTED 43fa4: 4879 0005 6e97 pea 56e97 <== NOT EXECUTED 43faa: 4e94 jsr %a4@ <== NOT EXECUTED tty->column--; 43fac: 202a 0028 movel %a2@(40),%d0 <== NOT EXECUTED 43fb0: 5380 subql #1,%d0 <== NOT EXECUTED 43fb2: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED } /* * Back up over the tab */ while (tty->column > col) { 43fb6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43fbc: b480 cmpl %d0,%d2 <== NOT EXECUTED 43fbe: 6c00 ff08 bgew 43ec8 <== NOT EXECUTED rtems_termios_puts ("\b", 1, tty); 43fc2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43fc4: 4878 0001 pea 1 <== NOT EXECUTED 43fc8: 4879 0005 6e97 pea 56e97 <== NOT EXECUTED 43fce: 4e94 jsr %a4@ <== NOT EXECUTED tty->column--; 43fd0: 202a 0028 movel %a2@(40),%d0 <== NOT EXECUTED 43fd4: 5380 subql #1,%d0 <== NOT EXECUTED 43fd6: 2540 0028 movel %d0,%a2@(40) <== NOT EXECUTED } /* * Back up over the tab */ while (tty->column > col) { 43fda: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43fe0: b480 cmpl %d0,%d2 <== NOT EXECUTED 43fe2: 6dba blts 43f9e <== NOT EXECUTED 43fe4: 6000 fee2 braw 43ec8 <== NOT EXECUTED else if (iscntrl (c)) { if (tty->termios.c_lflag & ECHOCTL) col += 2; } else { col++; 43fe8: 5282 addql #1,%d2 <== NOT EXECUTED int i = 0; /* * Find the character before the tab */ while (i != tty->ccount) { 43fea: b288 cmpl %a0,%d1 <== NOT EXECUTED 43fec: 6684 bnes 43f72 <== NOT EXECUTED 43fee: 60a6 bras 43f96 <== NOT EXECUTED c = tty->cbuf[i++]; if (c == '\t') { col = (col | 7) + 1; 43ff0: 7007 moveq #7,%d0 <== NOT EXECUTED 43ff2: 8082 orl %d2,%d0 <== NOT EXECUTED 43ff4: 2400 movel %d0,%d2 <== NOT EXECUTED 43ff6: 5282 addql #1,%d2 <== NOT EXECUTED int i = 0; /* * Find the character before the tab */ while (i != tty->ccount) { 43ff8: b288 cmpl %a0,%d1 <== NOT EXECUTED 43ffa: 6600 ff76 bnew 43f72 <== NOT EXECUTED 43ffe: 6096 bras 43f96 <== 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); 44000: 4280 clrl %d0 <== NOT EXECUTED 44002: 102a 0043 moveb %a2@(67),%d0 <== NOT EXECUTED 44006: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED } } if (!lineFlag) break; } } 4400a: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== 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); 44010: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } } if (!lineFlag) break; } } 44014: 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); 44016: 6000 fd9a braw 43db2 <== NOT EXECUTED tty->ccount = 0; return; } if (!(tty->termios.c_lflag & ECHOE)) { tty->ccount = 0; echo (tty->termios.c_cc[VKILL], tty); 4401a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4401c: 4280 clrl %d0 <== NOT EXECUTED 4401e: 102a 0044 moveb %a2@(68),%d0 <== NOT EXECUTED 44022: 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; 44024: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED echo (tty->termios.c_cc[VKILL], tty); 44028: 4eba fd88 jsr %pc@(43db2 ) <== NOT EXECUTED if (tty->termios.c_lflag & ECHOK) 4402c: 7020 moveq #32,%d0 <== NOT EXECUTED 4402e: 508f addql #8,%sp <== NOT EXECUTED 44030: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 44034: 6700 fea6 beqw 43edc <== NOT EXECUTED echo ('\n', tty); 44038: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED 4403c: 700a moveq #10,%d0 <== NOT EXECUTED } } if (!lineFlag) break; } } 4403e: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED } if (!(tty->termios.c_lflag & ECHOE)) { tty->ccount = 0; echo (tty->termios.c_cc[VKILL], tty); if (tty->termios.c_lflag & ECHOK) echo ('\n', tty); 44044: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } } if (!lineFlag) break; } } 44048: 4e5e unlk %fp <== NOT EXECUTED } if (!(tty->termios.c_lflag & ECHOE)) { tty->ccount = 0; echo (tty->termios.c_cc[VKILL], tty); if (tty->termios.c_lflag & ECHOK) echo ('\n', tty); 4404a: 6000 fd66 braw 43db2 <== NOT EXECUTED 00045a80 : const char *path, const char *arg, ... ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 45a80: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45a84: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45a8a: 2040 moveal %d0,%a0 <== NOT EXECUTED 45a8c: 7058 moveq #88,%d0 <== NOT EXECUTED 45a8e: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45a90: 4e5e unlk %fp <== NOT EXECUTED 45a92: 70ff moveq #-1,%d0 <== NOT EXECUTED 45a94: 4e75 rts <== NOT EXECUTED ... 00045a68 : const char *path, char const *arg, ... ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 45a68: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45a6c: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45a72: 2040 moveal %d0,%a0 <== NOT EXECUTED 45a74: 7058 moveq #88,%d0 <== NOT EXECUTED 45a76: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45a78: 4e5e unlk %fp <== NOT EXECUTED 45a7a: 70ff moveq #-1,%d0 <== NOT EXECUTED 45a7c: 4e75 rts <== NOT EXECUTED ... 00045a98 : const char *file, const char *arg, ... ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 45a98: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45a9c: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45aa2: 2040 moveal %d0,%a0 <== NOT EXECUTED 45aa4: 7058 moveq #88,%d0 <== NOT EXECUTED 45aa6: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45aa8: 4e5e unlk %fp <== NOT EXECUTED 45aaa: 70ff moveq #-1,%d0 <== NOT EXECUTED 45aac: 4e75 rts <== NOT EXECUTED ... 00045ac8 : int execv( const char *file, char *const argv[] ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 45ac8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45acc: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45ad2: 2040 moveal %d0,%a0 <== NOT EXECUTED 45ad4: 7058 moveq #88,%d0 <== NOT EXECUTED 45ad6: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45ad8: 4e5e unlk %fp <== NOT EXECUTED 45ada: 70ff moveq #-1,%d0 <== NOT EXECUTED 45adc: 4e75 rts <== NOT EXECUTED ... 00045ab0 : const char *path, char *const argv[], char *const envp[] ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 45ab0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45ab4: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45aba: 2040 moveal %d0,%a0 <== NOT EXECUTED 45abc: 7058 moveq #88,%d0 <== NOT EXECUTED 45abe: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45ac0: 4e5e unlk %fp <== NOT EXECUTED 45ac2: 70ff moveq #-1,%d0 <== NOT EXECUTED 45ac4: 4e75 rts <== NOT EXECUTED ... 00045ae0 : int execvp( const char *path, char *const argv[] ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 45ae0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45ae4: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45aea: 2040 moveal %d0,%a0 <== NOT EXECUTED 45aec: 7058 moveq #88,%d0 <== NOT EXECUTED 45aee: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45af0: 4e5e unlk %fp <== NOT EXECUTED 45af2: 70ff moveq #-1,%d0 <== NOT EXECUTED 45af4: 4e75 rts <== NOT EXECUTED ... 0006da9c : #include int fchdir( int fd ) { 6da9c: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 6daa0: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@ <== NOT EXECUTED 6daa4: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_location_info_t loc, saved; rtems_libio_check_fd( fd ); 6daa8: b4b9 0008 56e8 cmpl 856e8 ,%d2 <== NOT EXECUTED 6daae: 6400 0100 bccw 6dbb0 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 6dab2: 2202 movel %d2,%d1 <== NOT EXECUTED 6dab4: 2002 movel %d2,%d0 <== NOT EXECUTED 6dab6: e589 lsll #2,%d1 <== NOT EXECUTED 6dab8: e988 lsll #4,%d0 <== NOT EXECUTED 6daba: 9081 subl %d1,%d0 <== NOT EXECUTED 6dabc: 2479 0009 b2b8 moveal 9b2b8 ,%a2 <== NOT EXECUTED 6dac2: d082 addl %d2,%d0 <== NOT EXECUTED 6dac4: e588 lsll #2,%d0 <== NOT EXECUTED 6dac6: d5c0 addal %d0,%a2 <== NOT EXECUTED rtems_libio_check_is_open(iop); 6dac8: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 6dacc: 0800 0008 btst #8,%d0 <== NOT EXECUTED 6dad0: 6700 00de beqw 6dbb0 <== NOT EXECUTED /* * Now process the fchmod(). */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 6dad4: 0800 0001 btst #1,%d0 <== NOT EXECUTED 6dad8: 6700 010e beqw 6dbe8 <== NOT EXECUTED /* * Verify you can change directory into this node. */ if ( !iop->pathinfo.ops ) { 6dadc: 206a 0018 moveal %a2@(24),%a0 <== NOT EXECUTED 6dae0: 4a88 tstl %a0 <== NOT EXECUTED 6dae2: 6700 011c beqw 6dc00 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( !iop->pathinfo.ops->node_type_h ) { 6dae6: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 6daea: 4a88 tstl %a0 <== NOT EXECUTED 6daec: 6700 0112 beqw 6dc00 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*iop->pathinfo.ops->node_type_h)( &iop->pathinfo ) != 6daf0: 47ea 0010 lea %a2@(16),%a3 <== NOT EXECUTED 6daf4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6daf6: 4e90 jsr %a0@ <== NOT EXECUTED 6daf8: 588f addql #4,%sp <== NOT EXECUTED 6dafa: 7201 moveq #1,%d1 <== NOT EXECUTED 6dafc: b280 cmpl %d0,%d1 <== NOT EXECUTED 6dafe: 6600 0098 bnew 6db98 <== NOT EXECUTED * but note the race condition. Threads who * share their rtems_filesystem_current better * be synchronized! */ saved = rtems_filesystem_current; 6db02: 2279 0008 6180 moveal 86180 ,%a1 <== NOT EXECUTED 6db08: 49ee ffe0 lea %fp@(-32),%a4 <== NOT EXECUTED 6db0c: 41e9 0004 lea %a1@(4),%a0 <== NOT EXECUTED 6db10: 2898 movel %a0@+,%a4@ <== NOT EXECUTED 6db12: 260e movel %fp,%d3 <== NOT EXECUTED 6db14: 0683 ffff ffe4 addil #-28,%d3 <== NOT EXECUTED 6db1a: 2a43 moveal %d3,%a5 <== NOT EXECUTED 6db1c: 2a98 movel %a0@+,%a5@ <== NOT EXECUTED 6db1e: 240e movel %fp,%d2 <== NOT EXECUTED 6db20: 0682 ffff ffe8 addil #-24,%d2 <== NOT EXECUTED 6db26: 2a42 moveal %d2,%a5 <== NOT EXECUTED 6db28: 2a98 movel %a0@+,%a5@ <== NOT EXECUTED 6db2a: 4bee ffec lea %fp@(-20),%a5 <== NOT EXECUTED 6db2e: 2a90 movel %a0@,%a5@ <== NOT EXECUTED rtems_filesystem_current = iop->pathinfo; 6db30: 5889 addql #4,%a1 <== NOT EXECUTED 6db32: 22d3 movel %a3@,%a1@+ <== NOT EXECUTED /* clone the current node */ if (rtems_filesystem_evaluate_path(".", 0, &loc, 0)) { 6db34: 47ee fff0 lea %fp@(-16),%a3 <== NOT EXECUTED * share their rtems_filesystem_current better * be synchronized! */ saved = rtems_filesystem_current; rtems_filesystem_current = iop->pathinfo; 6db38: 22ea 0014 movel %a2@(20),%a1@+ <== NOT EXECUTED 6db3c: 22aa 0018 movel %a2@(24),%a1@ <== NOT EXECUTED 6db40: 20aa 001c movel %a2@(28),%a0@ <== NOT EXECUTED /* clone the current node */ if (rtems_filesystem_evaluate_path(".", 0, &loc, 0)) { 6db44: 42a7 clrl %sp@- <== NOT EXECUTED 6db46: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6db48: 42a7 clrl %sp@- <== NOT EXECUTED 6db4a: 4879 0008 18dc pea 818dc <_CPU_m68k_BFFFO_table+0x3d7> <== NOT EXECUTED 6db50: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED 6db56: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 6db5c: 4a80 tstl %d0 <== NOT EXECUTED 6db5e: 6668 bnes 6dbc8 <== NOT EXECUTED /* cloning failed; restore original and bail out */ rtems_filesystem_current = saved; return -1; } /* release the old one */ rtems_filesystem_freenode( &saved ); 6db60: 206e ffe8 moveal %fp@(-24),%a0 <== NOT EXECUTED 6db64: 4a88 tstl %a0 <== NOT EXECUTED 6db66: 670e beqs 6db76 <== NOT EXECUTED 6db68: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 6db6c: 4a88 tstl %a0 <== NOT EXECUTED 6db6e: 6706 beqs 6db76 <== NOT EXECUTED 6db70: 2f0c movel %a4,%sp@- <== NOT EXECUTED 6db72: 4e90 jsr %a0@ <== NOT EXECUTED 6db74: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_current = loc; 6db76: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 6db7c: 5888 addql #4,%a0 <== NOT EXECUTED 6db7e: 20d3 movel %a3@,%a0@+ <== NOT EXECUTED return 0; } 6db80: 4cee 3c0c ffc8 moveml %fp@(-56),%d2-%d3/%a2-%a5 <== NOT EXECUTED return -1; } /* release the old one */ rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; 6db86: 20ee fff4 movel %fp@(-12),%a0@+ <== NOT EXECUTED 6db8a: 4280 clrl %d0 <== NOT EXECUTED 6db8c: 20ee fff8 movel %fp@(-8),%a0@+ <== NOT EXECUTED 6db90: 20ae fffc movel %fp@(-4),%a0@ <== NOT EXECUTED return 0; } 6db94: 4e5e unlk %fp <== NOT EXECUTED 6db96: 4e75 rts <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*iop->pathinfo.ops->node_type_h)( &iop->pathinfo ) != RTEMS_FILESYSTEM_DIRECTORY ) { rtems_set_errno_and_return_minus_one( ENOTDIR ); 6db98: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6db9e: 2040 moveal %d0,%a0 <== NOT EXECUTED 6dba0: 7014 moveq #20,%d0 <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dba2: 4cee 3c0c ffc8 moveml %fp@(-56),%d2-%d3/%a2-%a5 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*iop->pathinfo.ops->node_type_h)( &iop->pathinfo ) != RTEMS_FILESYSTEM_DIRECTORY ) { rtems_set_errno_and_return_minus_one( ENOTDIR ); 6dba8: 2080 movel %d0,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dbaa: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*iop->pathinfo.ops->node_type_h)( &iop->pathinfo ) != RTEMS_FILESYSTEM_DIRECTORY ) { rtems_set_errno_and_return_minus_one( ENOTDIR ); 6dbac: 70ff moveq #-1,%d0 <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dbae: 4e75 rts <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_location_info_t loc, saved; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 6dbb0: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6dbb6: 7409 moveq #9,%d2 <== NOT EXECUTED 6dbb8: 2040 moveal %d0,%a0 <== NOT EXECUTED 6dbba: 2082 movel %d2,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dbbc: 4cee 3c0c ffc8 moveml %fp@(-56),%d2-%d3/%a2-%a5 <== NOT EXECUTED 6dbc2: 4e5e unlk %fp <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_location_info_t loc, saved; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 6dbc4: 70ff moveq #-1,%d0 <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dbc6: 4e75 rts <== NOT EXECUTED rtems_filesystem_current = iop->pathinfo; /* clone the current node */ if (rtems_filesystem_evaluate_path(".", 0, &loc, 0)) { /* cloning failed; restore original and bail out */ rtems_filesystem_current = saved; 6dbc8: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 6dbce: 5888 addql #4,%a0 <== NOT EXECUTED 6dbd0: 20d4 movel %a4@,%a0@+ <== NOT EXECUTED 6dbd2: 2243 moveal %d3,%a1 <== NOT EXECUTED 6dbd4: 20d1 movel %a1@,%a0@+ <== NOT EXECUTED 6dbd6: 2242 moveal %d2,%a1 <== NOT EXECUTED 6dbd8: 20d1 movel %a1@,%a0@+ <== NOT EXECUTED 6dbda: 70ff moveq #-1,%d0 <== NOT EXECUTED 6dbdc: 2095 movel %a5@,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dbde: 4cee 3c0c ffc8 moveml %fp@(-56),%d2-%d3/%a2-%a5 <== NOT EXECUTED 6dbe4: 4e5e unlk %fp <== NOT EXECUTED 6dbe6: 4e75 rts <== NOT EXECUTED /* * Now process the fchmod(). */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 6dbe8: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dbee: 4cee 3c0c ffc8 moveml %fp@(-56),%d2-%d3/%a2-%a5 <== NOT EXECUTED /* * Now process the fchmod(). */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 6dbf4: 2040 moveal %d0,%a0 <== NOT EXECUTED 6dbf6: 7216 moveq #22,%d1 <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dbf8: 4e5e unlk %fp <== NOT EXECUTED /* * Now process the fchmod(). */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 6dbfa: 70ff moveq #-1,%d0 <== NOT EXECUTED 6dbfc: 2081 movel %d1,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dbfe: 4e75 rts <== NOT EXECUTED if ( !iop->pathinfo.ops ) { rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( !iop->pathinfo.ops->node_type_h ) { rtems_set_errno_and_return_minus_one( ENOTSUP ); 6dc00: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dc06: 4cee 3c0c ffc8 moveml %fp@(-56),%d2-%d3/%a2-%a5 <== NOT EXECUTED if ( !iop->pathinfo.ops ) { rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( !iop->pathinfo.ops->node_type_h ) { rtems_set_errno_and_return_minus_one( ENOTSUP ); 6dc0c: 2040 moveal %d0,%a0 <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dc0e: 4e5e unlk %fp <== NOT EXECUTED if ( !iop->pathinfo.ops ) { rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( !iop->pathinfo.ops->node_type_h ) { rtems_set_errno_and_return_minus_one( ENOTSUP ); 6dc10: 70ff moveq #-1,%d0 <== NOT EXECUTED 6dc12: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( &saved ); rtems_filesystem_current = loc; return 0; } 6dc18: 4e75 rts <== NOT EXECUTED ... 00060054 : int fchmod( int fd, mode_t mode ) { 60054: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 60058: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6005a: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 6005e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60060: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); 60064: b4b9 0008 56e8 cmpl 856e8 ,%d2 <== NOT EXECUTED 6006a: 6450 bccs 600bc <== NOT EXECUTED iop = rtems_libio_iop( fd ); 6006c: 2202 movel %d2,%d1 <== NOT EXECUTED 6006e: 2002 movel %d2,%d0 <== NOT EXECUTED 60070: e589 lsll #2,%d1 <== NOT EXECUTED 60072: e988 lsll #4,%d0 <== NOT EXECUTED 60074: 9081 subl %d1,%d0 <== NOT EXECUTED 60076: 2279 0009 b2b8 moveal 9b2b8 ,%a1 <== NOT EXECUTED 6007c: d082 addl %d2,%d0 <== NOT EXECUTED 6007e: e588 lsll #2,%d0 <== NOT EXECUTED 60080: d3c0 addal %d0,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 60082: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 60086: 0800 0008 btst #8,%d0 <== NOT EXECUTED 6008a: 6730 beqs 600bc <== NOT EXECUTED /* * Now process the fchmod(). */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 6008c: 44c0 movew %d0,%ccr <== NOT EXECUTED 6008e: 6646 bnes 600d6 <== NOT EXECUTED if ( !iop->handlers->fchmod_h ) 60090: 2069 0030 moveal %a1@(48),%a0 <== NOT EXECUTED 60094: 4aa8 001c tstl %a0@(28) <== NOT EXECUTED 60098: 6756 beqs 600f0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); 6009a: 2069 0014 moveal %a1@(20),%a0 <== NOT EXECUTED 6009e: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED } 600a2: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 600a6: 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 ); 600aa: d3fc 0000 0010 addal #16,%a1 <== NOT EXECUTED 600b0: 2d49 0008 movel %a1,%fp@(8) <== NOT EXECUTED 600b4: 2268 001c moveal %a0@(28),%a1 <== NOT EXECUTED } 600b8: 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 ); 600ba: 4ed1 jmp %a1@ <== NOT EXECUTED { rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 600bc: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED if ( !iop->handlers->fchmod_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); } 600c2: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 600c6: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED { rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 600ca: 2040 moveal %d0,%a0 <== NOT EXECUTED 600cc: 7209 moveq #9,%d1 <== NOT EXECUTED if ( !iop->handlers->fchmod_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); } 600ce: 4e5e unlk %fp <== NOT EXECUTED 600d0: 70ff moveq #-1,%d0 <== NOT EXECUTED { rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 600d2: 2081 movel %d1,%a0@ <== NOT EXECUTED if ( !iop->handlers->fchmod_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); } 600d4: 4e75 rts <== NOT EXECUTED /* * Now process the fchmod(). */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 600d6: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED if ( !iop->handlers->fchmod_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); } 600dc: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 600e0: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED /* * Now process the fchmod(). */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 600e4: 2040 moveal %d0,%a0 <== NOT EXECUTED 600e6: 7016 moveq #22,%d0 <== NOT EXECUTED 600e8: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( !iop->handlers->fchmod_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); } 600ea: 4e5e unlk %fp <== NOT EXECUTED 600ec: 70ff moveq #-1,%d0 <== NOT EXECUTED 600ee: 4e75 rts <== NOT EXECUTED */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->handlers->fchmod_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 600f0: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); } 600f6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 600fa: 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 ); 600fe: 2040 moveal %d0,%a0 <== NOT EXECUTED return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); } 60100: 4e5e unlk %fp <== NOT EXECUTED 60102: 70ff moveq #-1,%d0 <== NOT EXECUTED */ rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->handlers->fchmod_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 60104: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED return (*iop->pathinfo.handlers->fchmod_h)( &iop->pathinfo, mode ); } 6010a: 4e75 rts 0006010c : int fchown( int fd, uid_t owner, gid_t group ) { 6010c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 60110: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 60114: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 60118: 382e 000e movew %fp@(14),%d4 <== NOT EXECUTED 6011c: 362e 0012 movew %fp@(18),%d3 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); 60120: b4b9 0008 56e8 cmpl 856e8 ,%d2 <== NOT EXECUTED 60126: 6456 bccs 6017e <== NOT EXECUTED iop = rtems_libio_iop( fd ); 60128: 2202 movel %d2,%d1 <== NOT EXECUTED 6012a: 2002 movel %d2,%d0 <== NOT EXECUTED 6012c: e589 lsll #2,%d1 <== NOT EXECUTED 6012e: e988 lsll #4,%d0 <== NOT EXECUTED 60130: 9081 subl %d1,%d0 <== NOT EXECUTED 60132: 2279 0009 b2b8 moveal 9b2b8 ,%a1 <== NOT EXECUTED 60138: d082 addl %d2,%d0 <== NOT EXECUTED 6013a: e588 lsll #2,%d0 <== NOT EXECUTED 6013c: d3c0 addal %d0,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 6013e: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 60142: 0800 0008 btst #8,%d0 <== NOT EXECUTED 60146: 6736 beqs 6017e <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 60148: 44c0 movew %d0,%ccr <== NOT EXECUTED 6014a: 664a bnes 60196 <== NOT EXECUTED if ( !iop->pathinfo.ops->chown_h ) 6014c: 2069 0018 moveal %a1@(24),%a0 <== NOT EXECUTED 60150: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 60154: 4a88 tstl %a0 <== NOT EXECUTED 60156: 6756 beqs 601ae <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); 60158: 4281 clrl %d1 <== NOT EXECUTED 6015a: 4280 clrl %d0 <== NOT EXECUTED 6015c: 3203 movew %d3,%d1 <== NOT EXECUTED 6015e: d3fc 0000 0010 addal #16,%a1 <== NOT EXECUTED 60164: 3004 movew %d4,%d0 <== NOT EXECUTED 60166: 2d49 0008 movel %a1,%fp@(8) <== NOT EXECUTED } 6016a: 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 ); 60170: 2248 moveal %a0,%a1 <== NOT EXECUTED 60172: 2d41 0010 movel %d1,%fp@(16) <== NOT EXECUTED 60176: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED } 6017a: 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 ); 6017c: 4ed1 jmp %a1@ <== NOT EXECUTED { rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 6017e: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED if ( !iop->pathinfo.ops->chown_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); } 60184: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED { rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 6018a: 2040 moveal %d0,%a0 <== NOT EXECUTED 6018c: 7209 moveq #9,%d1 <== NOT EXECUTED if ( !iop->pathinfo.ops->chown_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); } 6018e: 4e5e unlk %fp <== NOT EXECUTED 60190: 70ff moveq #-1,%d0 <== NOT EXECUTED { rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 60192: 2081 movel %d1,%a0@ <== NOT EXECUTED if ( !iop->pathinfo.ops->chown_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); } 60194: 4e75 rts <== NOT EXECUTED rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 60196: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6019c: 2040 moveal %d0,%a0 <== NOT EXECUTED 6019e: 7016 moveq #22,%d0 <== NOT EXECUTED if ( !iop->pathinfo.ops->chown_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); } 601a0: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 601a6: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( !iop->pathinfo.ops->chown_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); } 601a8: 4e5e unlk %fp <== NOT EXECUTED 601aa: 70ff moveq #-1,%d0 <== NOT EXECUTED 601ac: 4e75 rts <== NOT EXECUTED rtems_libio_check_is_open(iop); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->pathinfo.ops->chown_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 601ae: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); } 601b4: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED rtems_libio_check_is_open(iop); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->pathinfo.ops->chown_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 601ba: 2040 moveal %d0,%a0 <== NOT EXECUTED return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); } 601bc: 4e5e unlk %fp <== NOT EXECUTED 601be: 70ff moveq #-1,%d0 <== NOT EXECUTED rtems_libio_check_is_open(iop); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->pathinfo.ops->chown_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 601c0: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED return (*iop->pathinfo.ops->chown_h)( &iop->pathinfo, owner, group ); } 601c6: 4e75 rts 0006dc1c : int fcntl( int fd, int cmd, ... ) { 6dc1c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 6dc20: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 6dc24: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 6dc28: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED int fd2; int flags; int mask; int ret = 0; rtems_libio_check_fd( fd ); 6dc2c: 2079 0008 56e8 moveal 856e8 ,%a0 <== NOT EXECUTED int fcntl( int fd, int cmd, ... ) { 6dc32: 43ee 0010 lea %fp@(16),%a1 <== NOT EXECUTED int fd2; int flags; int mask; int ret = 0; rtems_libio_check_fd( fd ); 6dc36: b1c2 cmpal %d2,%a0 <== NOT EXECUTED 6dc38: 6300 01be blsw 6ddf8 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 6dc3c: 2202 movel %d2,%d1 <== NOT EXECUTED 6dc3e: 2002 movel %d2,%d0 <== NOT EXECUTED 6dc40: e589 lsll #2,%d1 <== NOT EXECUTED 6dc42: e988 lsll #4,%d0 <== NOT EXECUTED 6dc44: 2679 0009 b2b8 moveal 9b2b8 ,%a3 <== NOT EXECUTED 6dc4a: 9081 subl %d1,%d0 <== NOT EXECUTED 6dc4c: d082 addl %d2,%d0 <== NOT EXECUTED 6dc4e: 45f3 0c00 lea %a3@(00000000,%d0:l:4),%a2 <== NOT EXECUTED rtems_libio_check_is_open(iop); 6dc52: 222a 000c movel %a2@(12),%d1 <== NOT EXECUTED 6dc56: 0801 0008 btst #8,%d1 <== NOT EXECUTED 6dc5a: 6700 019c beqw 6ddf8 <== NOT EXECUTED /* * This switch should contain all the cases from POSIX. */ switch ( cmd ) { 6dc5e: 7009 moveq #9,%d0 <== NOT EXECUTED 6dc60: b083 cmpl %d3,%d0 <== NOT EXECUTED 6dc62: 641a bccs 6dc7e <== NOT EXECUTED errno = ENOTSUP; ret = -1; break; default: errno = EINVAL; 6dc64: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6dc6a: 2040 moveal %d0,%a0 <== NOT EXECUTED 6dc6c: 7016 moveq #22,%d0 <== NOT EXECUTED 6dc6e: 2080 movel %d0,%a0@ <== NOT EXECUTED 6dc70: 74ff moveq #-1,%d2 <== NOT EXECUTED va_list ap; va_start( ap, cmd ); ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 6dc72: 2002 movel %d2,%d0 <== NOT EXECUTED 6dc74: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 6dc7a: 4e5e unlk %fp <== NOT EXECUTED 6dc7c: 4e75 rts <== NOT EXECUTED /* * This switch should contain all the cases from POSIX. */ switch ( cmd ) { 6dc7e: 303b 3a08 movew %pc@(6dc88 ,%d3:l:2),%d0 <== NOT EXECUTED 6dc82: 48c0 extl %d0 <== NOT EXECUTED 6dc84: 4efb 0802 jmp %pc@(6dc88 ,%d0:l) <== NOT EXECUTED 6dc88: 00ba 00ac 009c oril #11272348,%d2 <== NOT EXECUTED 6dc8e: 0082 0030 0014 oril #3145748,%d2 <== NOT EXECUTED 6dc94: 0014 024 <== NOT EXECUTED 6dc96: 0014 024 <== NOT EXECUTED 6dc98: 0014 024 <== NOT EXECUTED 6dc9a: 0014 024 <== NOT EXECUTED errno = ENOTSUP; ret = -1; break; case F_GETOWN: /* for sockets. */ errno = ENOTSUP; 6dc9c: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6dca2: 74ff moveq #-1,%d2 <== NOT EXECUTED 6dca4: 2040 moveal %d0,%a0 <== NOT EXECUTED va_list ap; va_start( ap, cmd ); ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 6dca6: 2002 movel %d2,%d0 <== NOT EXECUTED 6dca8: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 6dcae: 4e5e unlk %fp <== NOT EXECUTED errno = ENOTSUP; ret = -1; break; case F_GETOWN: /* for sockets. */ errno = ENOTSUP; 6dcb0: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED va_list ap; va_start( ap, cmd ); ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 6dcb6: 4e75 rts <== NOT EXECUTED case F_GETFL: /* more flags (cloexec) */ ret = rtems_libio_to_fcntl_flags( iop->flags ); break; case F_SETFL: flags = rtems_libio_fcntl_flags( va_arg( ap, int ) ); 6dcb8: 2f11 movel %a1@,%sp@- <== NOT EXECUTED 6dcba: 4eb9 0004 6688 jsr 46688 <== NOT EXECUTED /* * XXX If we are turning on append, should we seek to the end? */ iop->flags = (iop->flags & ~mask) | (flags & mask); 6dcc0: 222a 000c movel %a2@(12),%d1 <== NOT EXECUTED 6dcc4: 0280 0000 0201 andil #513,%d0 <== NOT EXECUTED 6dcca: 0281 ffff fdfe andil #-514,%d1 <== NOT EXECUTED 6dcd0: 8081 orl %d1,%d0 <== NOT EXECUTED 6dcd2: 588f addql #4,%sp <== NOT EXECUTED 6dcd4: 4282 clrl %d2 <== NOT EXECUTED 6dcd6: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED * If we got this far successfully, then we give the optional * filesystem specific handler a chance to process this. */ if (ret >= 0) { if (iop->handlers->fcntl_h) { 6dcda: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 6dcde: 2068 0030 moveal %a0@(48),%a0 <== NOT EXECUTED 6dce2: 4a88 tstl %a0 <== NOT EXECUTED 6dce4: 678c beqs 6dc72 <== NOT EXECUTED int err = (*iop->handlers->fcntl_h)( cmd, iop ); 6dce6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6dce8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6dcea: 4e90 jsr %a0@ <== NOT EXECUTED if (err) { 6dcec: 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 ); 6dcee: 2600 movel %d0,%d3 <== NOT EXECUTED if (err) { 6dcf0: 6780 beqs 6dc72 <== NOT EXECUTED errno = err; 6dcf2: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6dcf8: 74ff moveq #-1,%d2 <== NOT EXECUTED 6dcfa: 2040 moveal %d0,%a0 <== NOT EXECUTED va_list ap; va_start( ap, cmd ); ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 6dcfc: 2002 movel %d2,%d0 <== NOT EXECUTED if (ret >= 0) { if (iop->handlers->fcntl_h) { int err = (*iop->handlers->fcntl_h)( cmd, iop ); if (err) { errno = err; 6dcfe: 2083 movel %d3,%a0@ <== NOT EXECUTED va_list ap; va_start( ap, cmd ); ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 6dd00: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 6dd06: 4e5e unlk %fp <== NOT EXECUTED 6dd08: 4e75 rts <== NOT EXECUTED else iop->flags &= ~LIBIO_FLAGS_CLOSE_ON_EXEC; break; case F_GETFL: /* more flags (cloexec) */ ret = rtems_libio_to_fcntl_flags( iop->flags ); 6dd0a: 2f01 movel %d1,%sp@- <== NOT EXECUTED 6dd0c: 4eb9 0004 63d8 jsr 463d8 <== NOT EXECUTED 6dd12: 588f addql #4,%sp <== NOT EXECUTED 6dd14: 2400 movel %d0,%d2 <== NOT EXECUTED /* * If we got this far successfully, then we give the optional * filesystem specific handler a chance to process this. */ if (ret >= 0) { 6dd16: 6cc2 bges 6dcda <== NOT EXECUTED va_list ap; va_start( ap, cmd ); ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 6dd18: 2002 movel %d2,%d0 <== NOT EXECUTED 6dd1a: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED 6dd20: 4e5e unlk %fp <== NOT EXECUTED 6dd22: 4e75 rts <== 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 ) ) 6dd24: 4a91 tstl %a1@ <== NOT EXECUTED 6dd26: 677e beqs 6dda6 <== NOT EXECUTED iop->flags |= LIBIO_FLAGS_CLOSE_ON_EXEC; 6dd28: 08c1 000b bset #11,%d1 <== NOT EXECUTED 6dd2c: 2541 000c movel %d1,%a2@(12) <== NOT EXECUTED 6dd30: 4282 clrl %d2 <== NOT EXECUTED 6dd32: 60a6 bras 6dcda <== NOT EXECUTED diop->pathinfo = iop->pathinfo; ret = (int) (diop - rtems_libio_iops); break; case F_GETFD: /* get f_flags */ ret = ((iop->flags & LIBIO_FLAGS_CLOSE_ON_EXEC) != 0); 6dd34: 700b moveq #11,%d0 <== NOT EXECUTED 6dd36: 2401 movel %d1,%d2 <== NOT EXECUTED 6dd38: e0aa lsrl %d0,%d2 <== NOT EXECUTED 6dd3a: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 6dd3e: c480 andl %d0,%d2 <== NOT EXECUTED 6dd40: 6098 bras 6dcda <== NOT EXECUTED * This switch should contain all the cases from POSIX. */ switch ( cmd ) { case F_DUPFD: /* dup */ fd2 = va_arg( ap, int ); 6dd42: 2411 movel %a1@,%d2 <== NOT EXECUTED if ( fd2 ) 6dd44: 6700 00cc beqw 6de12 <== NOT EXECUTED diop = rtems_libio_iop( fd2 ); 6dd48: b488 cmpl %a0,%d2 <== NOT EXECUTED 6dd4a: 6468 bccs 6ddb4 <== NOT EXECUTED 6dd4c: 2202 movel %d2,%d1 <== NOT EXECUTED 6dd4e: 2002 movel %d2,%d0 <== NOT EXECUTED 6dd50: e589 lsll #2,%d1 <== NOT EXECUTED 6dd52: e988 lsll #4,%d0 <== NOT EXECUTED 6dd54: 9081 subl %d1,%d0 <== NOT EXECUTED 6dd56: d082 addl %d2,%d0 <== NOT EXECUTED 6dd58: 41f3 0c00 lea %a3@(00000000,%d0:l:4),%a0 <== NOT EXECUTED 6dd5c: 2008 movel %a0,%d0 <== 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); 6dd5e: 2400 movel %d0,%d2 <== NOT EXECUTED } diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6dd60: 216a 0010 0010 movel %a2@(16),%a0@(16) <== NOT EXECUTED ret = (int) (diop - rtems_libio_iops); 6dd66: 94b9 0009 b2b8 subl 9b2b8 ,%d2 <== NOT EXECUTED } diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6dd6c: 216a 0014 0014 movel %a2@(20),%a0@(20) <== NOT EXECUTED ret = (int) (diop - rtems_libio_iops); 6dd72: e482 asrl #2,%d2 <== NOT EXECUTED 6dd74: 203c c4ec 4ec5 movel #-991146299,%d0 <== NOT EXECUTED 6dd7a: 4c00 2800 mulsl %d0,%d2 <== NOT EXECUTED } diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6dd7e: 216a 0018 0018 movel %a2@(24),%a0@(24) <== NOT EXECUTED ret = -1; break; } } diop->handlers = iop->handlers; 6dd84: 216a 0030 0030 movel %a2@(48),%a0@(48) <== NOT EXECUTED diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6dd8a: 216a 001c 001c movel %a2@(28),%a0@(28) <== NOT EXECUTED break; } } diop->handlers = iop->handlers; diop->file_info = iop->file_info; 6dd90: 216a 002c 002c movel %a2@(44),%a0@(44) <== NOT EXECUTED diop->flags = iop->flags; 6dd96: 216a 000c 000c movel %a2@(12),%a0@(12) <== NOT EXECUTED /* * If we got this far successfully, then we give the optional * filesystem specific handler a chance to process this. */ if (ret >= 0) { 6dd9c: 4a82 tstl %d2 <== NOT EXECUTED 6dd9e: 6c00 ff3a bgew 6dcda <== NOT EXECUTED 6dda2: 6000 ff74 braw 6dd18 <== NOT EXECUTED */ if ( va_arg( ap, int ) ) iop->flags |= LIBIO_FLAGS_CLOSE_ON_EXEC; else iop->flags &= ~LIBIO_FLAGS_CLOSE_ON_EXEC; 6dda6: 0881 000b bclr #11,%d1 <== NOT EXECUTED 6ddaa: 2541 000c movel %d1,%a2@(12) <== NOT EXECUTED 6ddae: 4282 clrl %d2 <== NOT EXECUTED 6ddb0: 6000 ff28 braw 6dcda <== NOT EXECUTED switch ( cmd ) { case F_DUPFD: /* dup */ fd2 = va_arg( ap, int ); if ( fd2 ) diop = rtems_libio_iop( fd2 ); 6ddb4: 91c8 subal %a0,%a0 <== NOT EXECUTED } diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6ddb6: 216a 0010 0010 movel %a2@(16),%a0@(16) <== NOT EXECUTED switch ( cmd ) { case F_DUPFD: /* dup */ fd2 = va_arg( ap, int ); if ( fd2 ) diop = rtems_libio_iop( fd2 ); 6ddbc: 4280 clrl %d0 <== 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); 6ddbe: 2400 movel %d0,%d2 <== NOT EXECUTED 6ddc0: 94b9 0009 b2b8 subl 9b2b8 ,%d2 <== NOT EXECUTED } diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6ddc6: 216a 0014 0014 movel %a2@(20),%a0@(20) <== NOT EXECUTED ret = (int) (diop - rtems_libio_iops); 6ddcc: e482 asrl #2,%d2 <== NOT EXECUTED } diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6ddce: 216a 0018 0018 movel %a2@(24),%a0@(24) <== NOT EXECUTED ret = -1; break; } } diop->handlers = iop->handlers; 6ddd4: 216a 0030 0030 movel %a2@(48),%a0@(48) <== NOT EXECUTED diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; ret = (int) (diop - rtems_libio_iops); 6ddda: 203c c4ec 4ec5 movel #-991146299,%d0 <== NOT EXECUTED 6dde0: 4c00 2800 mulsl %d0,%d2 <== NOT EXECUTED } diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6dde4: 216a 001c 001c movel %a2@(28),%a0@(28) <== NOT EXECUTED break; } } diop->handlers = iop->handlers; diop->file_info = iop->file_info; 6ddea: 216a 002c 002c movel %a2@(44),%a0@(44) <== NOT EXECUTED diop->flags = iop->flags; 6ddf0: 216a 000c 000c movel %a2@(12),%a0@(12) <== NOT EXECUTED 6ddf6: 60a4 bras 6dd9c <== NOT EXECUTED int mask; int ret = 0; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 6ddf8: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6ddfe: 74ff moveq #-1,%d2 <== NOT EXECUTED 6de00: 2040 moveal %d0,%a0 <== NOT EXECUTED va_list ap; va_start( ap, cmd ); ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 6de02: 2002 movel %d2,%d0 <== NOT EXECUTED 6de04: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 <== NOT EXECUTED int mask; int ret = 0; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 6de0a: 7209 moveq #9,%d1 <== NOT EXECUTED va_list ap; va_start( ap, cmd ); ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 6de0c: 4e5e unlk %fp <== NOT EXECUTED int mask; int ret = 0; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 6de0e: 2081 movel %d1,%a0@ <== NOT EXECUTED va_list ap; va_start( ap, cmd ); ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 6de10: 4e75 rts <== NOT EXECUTED fd2 = va_arg( ap, int ); if ( fd2 ) diop = rtems_libio_iop( fd2 ); else { /* allocate a file control block */ diop = rtems_libio_allocate(); 6de12: 4eb9 0004 65c2 jsr 465c2 <== NOT EXECUTED 6de18: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( diop == 0 ) { 6de1a: 4a80 tstl %d0 <== NOT EXECUTED 6de1c: 6700 fe52 beqw 6dc70 <== 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); 6de20: 2400 movel %d0,%d2 <== NOT EXECUTED } diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6de22: 216a 0010 0010 movel %a2@(16),%a0@(16) <== NOT EXECUTED ret = (int) (diop - rtems_libio_iops); 6de28: 94b9 0009 b2b8 subl 9b2b8 ,%d2 <== NOT EXECUTED } diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6de2e: 216a 0014 0014 movel %a2@(20),%a0@(20) <== NOT EXECUTED ret = (int) (diop - rtems_libio_iops); 6de34: e482 asrl #2,%d2 <== NOT EXECUTED } diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6de36: 216a 0018 0018 movel %a2@(24),%a0@(24) <== NOT EXECUTED ret = -1; break; } } diop->handlers = iop->handlers; 6de3c: 216a 0030 0030 movel %a2@(48),%a0@(48) <== NOT EXECUTED diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; ret = (int) (diop - rtems_libio_iops); 6de42: 203c c4ec 4ec5 movel #-991146299,%d0 <== NOT EXECUTED 6de48: 4c00 2800 mulsl %d0,%d2 <== NOT EXECUTED } diop->handlers = iop->handlers; diop->file_info = iop->file_info; diop->flags = iop->flags; diop->pathinfo = iop->pathinfo; 6de4c: 216a 001c 001c movel %a2@(28),%a0@(28) <== NOT EXECUTED break; } } diop->handlers = iop->handlers; diop->file_info = iop->file_info; 6de52: 216a 002c 002c movel %a2@(44),%a0@(44) <== NOT EXECUTED diop->flags = iop->flags; 6de58: 216a 000c 000c movel %a2@(12),%a0@(12) <== NOT EXECUTED 6de5e: 6000 ff3c braw 6dd9c <== NOT EXECUTED 000439c4 : #include int fdatasync( int fd ) { 439c4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 439c8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 439ca: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); 439ce: b4b9 0005 c418 cmpl 5c418 ,%d2 <== NOT EXECUTED 439d4: 643c bccs 43a12 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 439d6: 2202 movel %d2,%d1 <== NOT EXECUTED 439d8: 2002 movel %d2,%d0 <== NOT EXECUTED 439da: e589 lsll #2,%d1 <== NOT EXECUTED 439dc: e988 lsll #4,%d0 <== NOT EXECUTED 439de: 9081 subl %d1,%d0 <== NOT EXECUTED 439e0: 2279 0005 deb0 moveal 5deb0 ,%a1 <== NOT EXECUTED 439e6: d082 addl %d2,%d0 <== NOT EXECUTED 439e8: e588 lsll #2,%d0 <== NOT EXECUTED 439ea: d3c0 addal %d0,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 439ec: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 439f0: 0800 0008 btst #8,%d0 <== NOT EXECUTED 439f4: 671c beqs 43a12 <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 439f6: 44c0 movew %d0,%ccr <== NOT EXECUTED 439f8: 662e bnes 43a28 <== NOT EXECUTED /* * Now process the fdatasync(). */ if ( !iop->handlers->fdatasync_h ) 439fa: 2069 0030 moveal %a1@(48),%a0 <== NOT EXECUTED 439fe: 2028 002c movel %a0@(44),%d0 <== NOT EXECUTED 43a02: 673a beqs 43a3e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fdatasync_h)( iop ); } 43a04: 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 ); 43a08: 2d49 0008 movel %a1,%fp@(8) <== NOT EXECUTED } 43a0c: 4e5e unlk %fp <== NOT EXECUTED */ if ( !iop->handlers->fdatasync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fdatasync_h)( iop ); 43a0e: 2240 moveal %d0,%a1 <== NOT EXECUTED 43a10: 4ed1 jmp %a1@ <== NOT EXECUTED { rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 43a12: 4eb9 0004 fb4c jsr 4fb4c <__errno> <== NOT EXECUTED if ( !iop->handlers->fdatasync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fdatasync_h)( iop ); } 43a18: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED { rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 43a1c: 2040 moveal %d0,%a0 <== NOT EXECUTED 43a1e: 7209 moveq #9,%d1 <== NOT EXECUTED if ( !iop->handlers->fdatasync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fdatasync_h)( iop ); } 43a20: 4e5e unlk %fp <== NOT EXECUTED 43a22: 70ff moveq #-1,%d0 <== NOT EXECUTED { rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 43a24: 2081 movel %d1,%a0@ <== NOT EXECUTED if ( !iop->handlers->fdatasync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fdatasync_h)( iop ); } 43a26: 4e75 rts <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 43a28: 4eb9 0004 fb4c jsr 4fb4c <__errno> <== NOT EXECUTED if ( !iop->handlers->fdatasync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fdatasync_h)( iop ); } 43a2e: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 43a32: 2040 moveal %d0,%a0 <== NOT EXECUTED 43a34: 7016 moveq #22,%d0 <== NOT EXECUTED 43a36: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( !iop->handlers->fdatasync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fdatasync_h)( iop ); } 43a38: 4e5e unlk %fp <== NOT EXECUTED 43a3a: 70ff moveq #-1,%d0 <== NOT EXECUTED 43a3c: 4e75 rts <== NOT EXECUTED /* * Now process the fdatasync(). */ if ( !iop->handlers->fdatasync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 43a3e: 4eb9 0004 fb4c jsr 4fb4c <__errno> <== NOT EXECUTED return (*iop->handlers->fdatasync_h)( iop ); } 43a44: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED /* * Now process the fdatasync(). */ if ( !iop->handlers->fdatasync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 43a48: 2040 moveal %d0,%a0 <== NOT EXECUTED return (*iop->handlers->fdatasync_h)( iop ); } 43a4a: 4e5e unlk %fp <== NOT EXECUTED 43a4c: 70ff moveq #-1,%d0 <== NOT EXECUTED /* * Now process the fdatasync(). */ if ( !iop->handlers->fdatasync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 43a4e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED return (*iop->handlers->fdatasync_h)( iop ); } 43a54: 4e75 rts <== NOT EXECUTED ... 00062470 : /* * Search the mount table for any mount entries referencing this * mount entry. */ for ( the_node = rtems_filesystem_mount_table_control.first; 62470: 2079 0009 b354 moveal 9b354 ,%a0 <== NOT EXECUTED 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 ) { 62476: 4e56 0000 linkw %fp,#0 <== 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 ); 6247a: b1fc 0009 b358 cmpal #635736,%a0 <== NOT EXECUTED 62480: 6724 beqs 624a6 <== NOT EXECUTED 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 ) { 62482: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 62486: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 6248a: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 6248e: 6710 beqs 624a0 <== 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 ) { 62490: 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 ); 62492: b1fc 0009 b358 cmpal #635736,%a0 <== NOT EXECUTED 62498: 670c beqs 624a6 <== NOT EXECUTED 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 ) { 6249a: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 6249e: 66f0 bnes 62490 <== NOT EXECUTED return true; } } return false; } 624a0: 4e5e unlk %fp <== 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 ); 624a2: 7001 moveq #1,%d0 <== NOT EXECUTED return true; } } return false; } 624a4: 4e75 rts <== NOT EXECUTED 624a6: 4e5e unlk %fp <== 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 ); 624a8: 4200 clrb %d0 <== NOT EXECUTED return true; } } return false; } 624aa: 4e75 rts 00045af8 : #include #include int fork( void ) { rtems_set_errno_and_return_minus_one( ENOSYS ); 45af8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45afc: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45b02: 2040 moveal %d0,%a0 <== NOT EXECUTED 45b04: 7058 moveq #88,%d0 <== NOT EXECUTED 45b06: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45b08: 4e5e unlk %fp <== NOT EXECUTED 45b0a: 70ff moveq #-1,%d0 <== NOT EXECUTED 45b0c: 4e75 rts <== NOT EXECUTED ... 00043a58 : long fpathconf( int fd, int name ) { 43a58: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43a5c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 43a5e: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 43a62: 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); 43a66: b4b9 0005 c418 cmpl 5c418 ,%d2 <== NOT EXECUTED 43a6c: 6400 00fe bccw 43b6c <== NOT EXECUTED iop = rtems_libio_iop(fd); 43a70: 2202 movel %d2,%d1 <== NOT EXECUTED 43a72: 2002 movel %d2,%d0 <== NOT EXECUTED 43a74: e589 lsll #2,%d1 <== NOT EXECUTED 43a76: e988 lsll #4,%d0 <== NOT EXECUTED 43a78: 9081 subl %d1,%d0 <== NOT EXECUTED 43a7a: 2079 0005 deb0 moveal 5deb0 ,%a0 <== NOT EXECUTED 43a80: d082 addl %d2,%d0 <== NOT EXECUTED 43a82: e588 lsll #2,%d0 <== NOT EXECUTED 43a84: d1c0 addal %d0,%a0 <== NOT EXECUTED rtems_libio_check_is_open(iop); 43a86: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED 43a8a: 0800 0008 btst #8,%d0 <== NOT EXECUTED 43a8e: 6700 00dc beqw 43b6c <== NOT EXECUTED rtems_libio_check_permissions(iop, LIBIO_FLAGS_READ); 43a92: 0800 0001 btst #1,%d0 <== NOT EXECUTED 43a96: 6700 00ea beqw 43b82 <== NOT EXECUTED /* * Now process the information request. */ the_limits = &iop->pathinfo.mt_entry->pathconf_limits_and_options; 43a9a: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED switch ( name ) { 43a9e: 700b moveq #11,%d0 <== NOT EXECUTED 43aa0: b089 cmpl %a1,%d0 <== NOT EXECUTED 43aa2: 6416 bccs 43aba <== NOT EXECUTED break; case _PC_SYNC_IO: return_value = the_limits->posix_sync_io; break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 43aa4: 4eb9 0004 fb4c jsr 4fb4c <__errno> <== NOT EXECUTED break; } return return_value; } 43aaa: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED break; case _PC_SYNC_IO: return_value = the_limits->posix_sync_io; break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 43aae: 2040 moveal %d0,%a0 <== NOT EXECUTED 43ab0: 7216 moveq #22,%d1 <== NOT EXECUTED break; } return return_value; } 43ab2: 4e5e unlk %fp <== NOT EXECUTED break; case _PC_SYNC_IO: return_value = the_limits->posix_sync_io; break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 43ab4: 70ff moveq #-1,%d0 <== NOT EXECUTED 43ab6: 2081 movel %d1,%a0@ <== NOT EXECUTED break; } return return_value; } 43ab8: 4e75 rts <== NOT EXECUTED * Now process the information request. */ the_limits = &iop->pathinfo.mt_entry->pathconf_limits_and_options; switch ( name ) { 43aba: 303b 9a08 movew %pc@(43ac4 ,%a1:l:2),%d0 <== NOT EXECUTED 43abe: 48c0 extl %d0 <== NOT EXECUTED 43ac0: 4efb 0802 jmp %pc@(43ac4 ,%d0:l) <== NOT EXECUTED 43ac4: 009c 0090 0084 oril #9437316,%d4 <== NOT EXECUTED 43aca: 0078 0170 <== NOT EXECUTED 43acc: 006c 0154 <== NOT EXECUTED 43ace: 0060 0140 <== NOT EXECUTED 43ad0: 0054 0124 <== NOT EXECUTED 43ad2: 0048 0110 <== NOT EXECUTED 43ad4: 003c 074 <== NOT EXECUTED 43ad6: 0030 060 <== NOT EXECUTED 43ad8: 0024 044 <== NOT EXECUTED 43ada: 0018 030 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43adc: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED break; case _PC_PRIO_IO: return_value = the_limits->posix_prio_io; break; case _PC_SYNC_IO: return_value = the_limits->posix_sync_io; 43ae0: 2028 0058 movel %a0@(88),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43ae4: 4e5e unlk %fp <== NOT EXECUTED 43ae6: 4e75 rts <== NOT EXECUTED 43ae8: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED break; case _PC_ASYNC_IO: return_value = the_limits->posix_async_io; break; case _PC_PRIO_IO: return_value = the_limits->posix_prio_io; 43aec: 2028 0054 movel %a0@(84),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43af0: 4e5e unlk %fp <== NOT EXECUTED 43af2: 4e75 rts <== NOT EXECUTED 43af4: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED break; case _PC_VDISABLE: return_value = the_limits->posix_vdisable; break; case _PC_ASYNC_IO: return_value = the_limits->posix_async_io; 43af8: 2028 0048 movel %a0@(72),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43afc: 4e5e unlk %fp <== NOT EXECUTED 43afe: 4e75 rts <== NOT EXECUTED 43b00: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED break; case _PC_NO_TRUNC: return_value = the_limits->posix_no_trunc; break; case _PC_VDISABLE: return_value = the_limits->posix_vdisable; 43b04: 2028 005c movel %a0@(92),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b08: 4e5e unlk %fp <== NOT EXECUTED 43b0a: 4e75 rts <== NOT EXECUTED 43b0c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED break; case _PC_CHOWN_RESTRICTED: return_value = the_limits->posix_chown_restrictions; break; case _PC_NO_TRUNC: return_value = the_limits->posix_no_trunc; 43b10: 2028 0050 movel %a0@(80),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b14: 4e5e unlk %fp <== NOT EXECUTED 43b16: 4e75 rts <== NOT EXECUTED 43b18: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED break; case _PC_PIPE_BUF: return_value = the_limits->pipe_buf; break; case _PC_CHOWN_RESTRICTED: return_value = the_limits->posix_chown_restrictions; 43b1c: 2028 004c movel %a0@(76),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b20: 4e5e unlk %fp <== NOT EXECUTED 43b22: 4e75 rts <== NOT EXECUTED 43b24: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED break; case _PC_PATH_MAX: return_value = the_limits->path_max; break; case _PC_PIPE_BUF: return_value = the_limits->pipe_buf; 43b28: 2028 0044 movel %a0@(68),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b2c: 4e5e unlk %fp <== NOT EXECUTED 43b2e: 4e75 rts <== NOT EXECUTED 43b30: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED break; case _PC_NAME_MAX: return_value = the_limits->name_max; break; case _PC_PATH_MAX: return_value = the_limits->path_max; 43b34: 2028 0040 movel %a0@(64),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b38: 4e5e unlk %fp <== NOT EXECUTED 43b3a: 4e75 rts <== NOT EXECUTED 43b3c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED break; case _PC_MAX_INPUT: return_value = the_limits->max_input; break; case _PC_NAME_MAX: return_value = the_limits->name_max; 43b40: 2028 003c movel %a0@(60),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b44: 4e5e unlk %fp <== NOT EXECUTED 43b46: 4e75 rts <== NOT EXECUTED 43b48: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED break; case _PC_MAX_CANON: return_value = the_limits->max_canon; break; case _PC_MAX_INPUT: return_value = the_limits->max_input; 43b4c: 2028 0038 movel %a0@(56),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b50: 4e5e unlk %fp <== NOT EXECUTED 43b52: 4e75 rts <== NOT EXECUTED 43b54: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED switch ( name ) { case _PC_LINK_MAX: return_value = the_limits->link_max; break; case _PC_MAX_CANON: return_value = the_limits->max_canon; 43b58: 2028 0034 movel %a0@(52),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b5c: 4e5e unlk %fp <== NOT EXECUTED 43b5e: 4e75 rts <== NOT EXECUTED 43b60: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED the_limits = &iop->pathinfo.mt_entry->pathconf_limits_and_options; switch ( name ) { case _PC_LINK_MAX: return_value = the_limits->link_max; 43b64: 2028 0030 movel %a0@(48),%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b68: 4e5e unlk %fp <== NOT EXECUTED 43b6a: 4e75 rts <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_limits_and_options_t *the_limits; rtems_libio_check_fd(fd); iop = rtems_libio_iop(fd); rtems_libio_check_is_open(iop); 43b6c: 4eb9 0004 fb4c jsr 4fb4c <__errno> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b72: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_limits_and_options_t *the_limits; rtems_libio_check_fd(fd); iop = rtems_libio_iop(fd); rtems_libio_check_is_open(iop); 43b76: 2040 moveal %d0,%a0 <== NOT EXECUTED 43b78: 7009 moveq #9,%d0 <== NOT EXECUTED 43b7a: 2080 movel %d0,%a0@ <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b7c: 4e5e unlk %fp <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_limits_and_options_t *the_limits; rtems_libio_check_fd(fd); iop = rtems_libio_iop(fd); rtems_libio_check_is_open(iop); 43b7e: 70ff moveq #-1,%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b80: 4e75 rts <== NOT EXECUTED rtems_filesystem_limits_and_options_t *the_limits; rtems_libio_check_fd(fd); iop = rtems_libio_iop(fd); rtems_libio_check_is_open(iop); rtems_libio_check_permissions(iop, LIBIO_FLAGS_READ); 43b82: 4eb9 0004 fb4c jsr 4fb4c <__errno> <== NOT EXECUTED 43b88: 7416 moveq #22,%d2 <== NOT EXECUTED 43b8a: 2040 moveal %d0,%a0 <== NOT EXECUTED 43b8c: 2082 movel %d2,%a0@ <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b8e: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 43b92: 4e5e unlk %fp <== NOT EXECUTED rtems_filesystem_limits_and_options_t *the_limits; rtems_libio_check_fd(fd); iop = rtems_libio_iop(fd); rtems_libio_check_is_open(iop); rtems_libio_check_permissions(iop, LIBIO_FLAGS_READ); 43b94: 70ff moveq #-1,%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return return_value; } 43b96: 4e75 rts 0004a5fc : void free( void *ptr ) { MSBUMP(free_calls, 1); 4a5fc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a600: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a602: 52b9 0005 9b84 addql #1,59b84 <== NOT EXECUTED 4a608: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED if ( !ptr ) 4a60c: 6732 beqs 4a640 <== NOT EXECUTED /* * Do not attempt to free memory if in a critical section or ISR. */ if ( _System_state_Is_up(_System_state_Get()) && 4a60e: 7003 moveq #3,%d0 <== NOT EXECUTED 4a610: b0b9 0005 9e0e cmpl 59e0e <_System_state_Current>,%d0 <== NOT EXECUTED 4a616: 6758 beqs 4a670 <== NOT EXECUTED #endif /* * If configured, update the statistics */ if ( rtems_malloc_statistics_helpers ) 4a618: 2079 0005 8ac4 moveal 58ac4 ,%a0 <== NOT EXECUTED 4a61e: 4a88 tstl %a0 <== NOT EXECUTED 4a620: 670a beqs 4a62c <== NOT EXECUTED (*rtems_malloc_statistics_helpers->at_free)(ptr); 4a622: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a624: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED 4a628: 4e90 jsr %a0@ <== NOT EXECUTED 4a62a: 588f addql #4,%sp <== NOT EXECUTED if ( !_Protected_heap_Free( &RTEMS_Malloc_Heap, ptr ) ) { 4a62c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a62e: 4879 0005 9b20 pea 59b20 <== NOT EXECUTED 4a634: 4eb9 0004 c06c jsr 4c06c <_Protected_heap_Free> <== NOT EXECUTED 4a63a: 508f addql #8,%sp <== NOT EXECUTED 4a63c: 4a00 tstb %d0 <== NOT EXECUTED 4a63e: 6708 beqs 4a648 <== NOT EXECUTED RTEMS_Malloc_Heap.begin, RTEMS_Malloc_Heap.end ); } } 4a640: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4a644: 4e5e unlk %fp <== NOT EXECUTED 4a646: 4e75 rts <== NOT EXECUTED */ if ( rtems_malloc_statistics_helpers ) (*rtems_malloc_statistics_helpers->at_free)(ptr); if ( !_Protected_heap_Free( &RTEMS_Malloc_Heap, ptr ) ) { printk( "Program heap: free of bad pointer %p -- range %p - %p \n", 4a648: 2f39 0005 9b3c movel 59b3c ,%sp@- <== NOT EXECUTED 4a64e: 2f39 0005 9b38 movel 59b38 ,%sp@- <== NOT EXECUTED 4a654: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a656: 4879 0005 71cd pea 571cd <== NOT EXECUTED 4a65c: 4eb9 0004 339e jsr 4339e <== NOT EXECUTED RTEMS_Malloc_Heap.begin, RTEMS_Malloc_Heap.end ); } } 4a662: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED */ if ( rtems_malloc_statistics_helpers ) (*rtems_malloc_statistics_helpers->at_free)(ptr); if ( !_Protected_heap_Free( &RTEMS_Malloc_Heap, ptr ) ) { printk( "Program heap: free of bad pointer %p -- range %p - %p \n", 4a666: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED RTEMS_Malloc_Heap.begin, RTEMS_Malloc_Heap.end ); } } 4a66c: 4e5e unlk %fp <== NOT EXECUTED 4a66e: 4e75 rts <== NOT EXECUTED /* * Do not attempt to free memory if in a critical section or ISR. */ if ( _System_state_Is_up(_System_state_Get()) && 4a670: 4eb9 0004 ab30 jsr 4ab30 <== NOT EXECUTED 4a676: 4a00 tstb %d0 <== NOT EXECUTED 4a678: 669e bnes 4a618 <== NOT EXECUTED !malloc_is_system_state_OK() ) { malloc_deferred_free(ptr); 4a67a: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED RTEMS_Malloc_Heap.begin, RTEMS_Malloc_Heap.end ); } } 4a67e: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4a682: 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); 4a684: 4ef9 0004 ab74 jmp 4ab74 <== NOT EXECUTED ... 000618d4 : * NOTE: this must be called with * thread dispatching disabled! */ static void free_user_env(void *venv) { 618d4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 618d8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 618da: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED rtems_user_env_t *env = (rtems_user_env_t*) venv ; if (env != &rtems_global_user_env 618de: b5fc 0009 ba1c cmpal #637468,%a2 <== NOT EXECUTED 618e4: 6740 beqs 61926 <== NOT EXECUTED #ifdef HAVE_USERENV_REFCNT && --env->refcnt <= 0 #endif ) { rtems_filesystem_freenode( &env->current_directory); 618e6: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED 618ea: 4a88 tstl %a0 <== NOT EXECUTED 618ec: 6710 beqs 618fe <== NOT EXECUTED 618ee: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 618f2: 4a88 tstl %a0 <== NOT EXECUTED 618f4: 6708 beqs 618fe <== NOT EXECUTED 618f6: 486a 0004 pea %a2@(4) <== NOT EXECUTED 618fa: 4e90 jsr %a0@ <== NOT EXECUTED 618fc: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &env->root_directory); 618fe: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 61902: 4a88 tstl %a0 <== NOT EXECUTED 61904: 6710 beqs 61916 <== NOT EXECUTED 61906: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 6190a: 4a88 tstl %a0 <== NOT EXECUTED 6190c: 6708 beqs 61916 <== NOT EXECUTED 6190e: 486a 0014 pea %a2@(20) <== NOT EXECUTED 61912: 4e90 jsr %a0@ <== NOT EXECUTED 61914: 588f addql #4,%sp <== NOT EXECUTED free(env); 61916: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } 6191a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 6191e: 4e5e unlk %fp <== NOT EXECUTED && --env->refcnt <= 0 #endif ) { rtems_filesystem_freenode( &env->current_directory); rtems_filesystem_freenode( &env->root_directory); free(env); 61920: 4ef9 0004 61e4 jmp 461e4 <== NOT EXECUTED } } 61926: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 6192a: 4e5e unlk %fp <== NOT EXECUTED 6192c: 4e75 rts 000558c0 : int fstat( int fd, struct stat *sbuf ) { 558c0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 558c4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 558c8: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 558cc: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !sbuf ) 558d0: 6700 00a0 beqw 55972 <== NOT EXECUTED /* * Now process the stat() request. */ iop = rtems_libio_iop( fd ); 558d4: b4b9 0005 8048 cmpl 58048 ,%d2 <== NOT EXECUTED 558da: 6464 bccs 55940 <== NOT EXECUTED 558dc: 2002 movel %d2,%d0 <== NOT EXECUTED 558de: 2202 movel %d2,%d1 <== NOT EXECUTED 558e0: e588 lsll #2,%d0 <== NOT EXECUTED 558e2: e989 lsll #4,%d1 <== NOT EXECUTED 558e4: 9280 subl %d0,%d1 <== NOT EXECUTED 558e6: 2479 0005 9b14 moveal 59b14 ,%a2 <== NOT EXECUTED 558ec: d282 addl %d2,%d1 <== NOT EXECUTED 558ee: e589 lsll #2,%d1 <== NOT EXECUTED 558f0: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_fd( fd ); rtems_libio_check_is_open(iop); 558f2: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 558f6: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 558fc: 6742 beqs 55940 <== NOT EXECUTED if ( !iop->handlers ) 558fe: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 55902: 4a88 tstl %a0 <== NOT EXECUTED 55904: 673a beqs 55940 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fstat_h ) 55906: 4aa8 0018 tstl %a0@(24) <== NOT EXECUTED 5590a: 674c beqs 55958 <== NOT EXECUTED /* * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); 5590c: 4878 004a pea 4a <== NOT EXECUTED 55910: 42a7 clrl %sp@- <== NOT EXECUTED 55912: 2f03 movel %d3,%sp@- <== NOT EXECUTED 55914: 4eb9 0004 dbe8 jsr 4dbe8 <== NOT EXECUTED return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); 5591a: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 5591e: d5fc 0000 0010 addal #16,%a2 <== NOT EXECUTED 55924: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 55928: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5592e: 2268 0018 moveal %a0@(24),%a1 <== NOT EXECUTED 55932: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } 55936: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 5593c: 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 ); 5593e: 4ed1 jmp %a1@ <== NOT EXECUTED iop = rtems_libio_iop( fd ); rtems_libio_check_fd( fd ); rtems_libio_check_is_open(iop); if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); 55940: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 55946: 2040 moveal %d0,%a0 <== NOT EXECUTED 55948: 7009 moveq #9,%d0 <== NOT EXECUTED * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); } 5594a: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED iop = rtems_libio_iop( fd ); rtems_libio_check_fd( fd ); rtems_libio_check_is_open(iop); if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); 55950: 2080 movel %d0,%a0@ <== NOT EXECUTED * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); } 55952: 4e5e unlk %fp <== NOT EXECUTED 55954: 70ff moveq #-1,%d0 <== NOT EXECUTED 55956: 4e75 rts <== NOT EXECUTED if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fstat_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 55958: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); } 5595e: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fstat_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 55964: 2040 moveal %d0,%a0 <== NOT EXECUTED * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); } 55966: 4e5e unlk %fp <== NOT EXECUTED 55968: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fstat_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 5596a: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); } 55970: 4e75 rts <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !sbuf ) rtems_set_errno_and_return_minus_one( EFAULT ); 55972: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); } 55978: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !sbuf ) rtems_set_errno_and_return_minus_one( EFAULT ); 5597e: 2040 moveal %d0,%a0 <== NOT EXECUTED 55980: 720e moveq #14,%d1 <== NOT EXECUTED * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); } 55982: 4e5e unlk %fp <== NOT EXECUTED 55984: 70ff moveq #-1,%d0 <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !sbuf ) rtems_set_errno_and_return_minus_one( EFAULT ); 55986: 2081 movel %d1,%a0@ <== NOT EXECUTED * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf ); } 55988: 4e75 rts 000602ac : #include int fsync( int fd ) { 602ac: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 602b0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 602b2: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); 602b6: b4b9 0008 56e8 cmpl 856e8 ,%d2 <== NOT EXECUTED 602bc: 6440 bccs 602fe <== NOT EXECUTED iop = rtems_libio_iop( fd ); 602be: 2202 movel %d2,%d1 <== NOT EXECUTED 602c0: 2002 movel %d2,%d0 <== NOT EXECUTED 602c2: e589 lsll #2,%d1 <== NOT EXECUTED 602c4: e988 lsll #4,%d0 <== NOT EXECUTED 602c6: 9081 subl %d1,%d0 <== NOT EXECUTED 602c8: 2079 0009 b2b8 moveal 9b2b8 ,%a0 <== NOT EXECUTED 602ce: d082 addl %d2,%d0 <== NOT EXECUTED 602d0: e588 lsll #2,%d0 <== NOT EXECUTED 602d2: d1c0 addal %d0,%a0 <== NOT EXECUTED rtems_libio_check_is_open(iop); 602d4: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED 602d8: 0800 0008 btst #8,%d0 <== NOT EXECUTED 602dc: 6720 beqs 602fe <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 602de: 44c0 movew %d0,%ccr <== NOT EXECUTED 602e0: 6632 bnes 60314 <== NOT EXECUTED /* * Now process the fsync(). */ if ( !iop->handlers ) 602e2: 2268 0030 moveal %a0@(48),%a1 <== NOT EXECUTED 602e6: 4a89 tstl %a1 <== NOT EXECUTED 602e8: 6714 beqs 602fe <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fsync_h ) 602ea: 2029 0028 movel %a1@(40),%d0 <== NOT EXECUTED 602ee: 673a beqs 6032a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fsync_h)( iop ); } 602f0: 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 ); 602f4: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } 602f8: 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 ); 602fa: 2240 moveal %d0,%a1 <== NOT EXECUTED 602fc: 4ed1 jmp %a1@ <== NOT EXECUTED /* * Now process the fsync(). */ if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); 602fe: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED if ( !iop->handlers->fsync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fsync_h)( iop ); } 60304: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED /* * Now process the fsync(). */ if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); 60308: 2040 moveal %d0,%a0 <== NOT EXECUTED 6030a: 7009 moveq #9,%d0 <== NOT EXECUTED 6030c: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( !iop->handlers->fsync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fsync_h)( iop ); } 6030e: 4e5e unlk %fp <== NOT EXECUTED 60310: 70ff moveq #-1,%d0 <== NOT EXECUTED 60312: 4e75 rts <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 60314: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED if ( !iop->handlers->fsync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fsync_h)( iop ); } 6031a: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 6031e: 2040 moveal %d0,%a0 <== NOT EXECUTED 60320: 7216 moveq #22,%d1 <== NOT EXECUTED if ( !iop->handlers->fsync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fsync_h)( iop ); } 60322: 4e5e unlk %fp <== NOT EXECUTED 60324: 70ff moveq #-1,%d0 <== NOT EXECUTED rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 60326: 2081 movel %d1,%a0@ <== NOT EXECUTED if ( !iop->handlers->fsync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->fsync_h)( iop ); } 60328: 4e75 rts <== NOT EXECUTED if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fsync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 6032a: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED return (*iop->handlers->fsync_h)( iop ); } 60330: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fsync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 60334: 2040 moveal %d0,%a0 <== NOT EXECUTED return (*iop->handlers->fsync_h)( iop ); } 60336: 4e5e unlk %fp <== NOT EXECUTED 60338: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->fsync_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 6033a: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED return (*iop->handlers->fsync_h)( iop ); } 60340: 4e75 rts <== NOT EXECUTED ... 0004a68c : int ftruncate( int fd, off_t length ) { 4a68c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4a690: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a692: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a694: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_location_info_t loc; rtems_libio_check_fd( fd ); 4a698: b4b9 0005 8048 cmpl 58048 ,%d2 <== NOT EXECUTED 4a69e: 647e bccs 4a71e <== NOT EXECUTED iop = rtems_libio_iop( fd ); 4a6a0: 2002 movel %d2,%d0 <== NOT EXECUTED 4a6a2: 2202 movel %d2,%d1 <== NOT EXECUTED 4a6a4: e588 lsll #2,%d0 <== NOT EXECUTED 4a6a6: e989 lsll #4,%d1 <== NOT EXECUTED 4a6a8: 9280 subl %d0,%d1 <== NOT EXECUTED 4a6aa: 2479 0005 9b14 moveal 59b14 ,%a2 <== NOT EXECUTED 4a6b0: d282 addl %d2,%d1 <== NOT EXECUTED 4a6b2: e589 lsll #2,%d1 <== NOT EXECUTED 4a6b4: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_is_open(iop); 4a6b6: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 4a6ba: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 4a6c0: 675c beqs 4a71e <== NOT EXECUTED /* * Make sure we are not working on a directory */ loc = iop->pathinfo; 4a6c2: 43ee fff0 lea %fp@(-16),%a1 <== NOT EXECUTED 4a6c6: 22aa 0010 movel %a2@(16),%a1@ <== NOT EXECUTED 4a6ca: 2d6a 0014 fff4 movel %a2@(20),%fp@(-12) <== NOT EXECUTED 4a6d0: 2d6a 0018 fff8 movel %a2@(24),%fp@(-8) <== NOT EXECUTED if ( !loc.ops->node_type_h ) 4a6d6: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 4a6da: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED /* * Make sure we are not working on a directory */ loc = iop->pathinfo; 4a6de: 2d6a 001c fffc movel %a2@(28),%fp@(-4) <== NOT EXECUTED if ( !loc.ops->node_type_h ) 4a6e4: 4a88 tstl %a0 <== NOT EXECUTED 4a6e6: 676a beqs 4a752 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) 4a6e8: 2f09 movel %a1,%sp@- <== NOT EXECUTED 4a6ea: 4e90 jsr %a0@ <== NOT EXECUTED 4a6ec: 588f addql #4,%sp <== NOT EXECUTED 4a6ee: 7201 moveq #1,%d1 <== NOT EXECUTED 4a6f0: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a6f2: 677a beqs 4a76e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EISDIR ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 4a6f4: 7004 moveq #4,%d0 <== NOT EXECUTED 4a6f6: c0aa 000c andl %a2@(12),%d0 <== NOT EXECUTED 4a6fa: 673c beqs 4a738 <== NOT EXECUTED if ( !iop->handlers->ftruncate_h ) 4a6fc: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 4a700: 2068 0020 moveal %a0@(32),%a0 <== NOT EXECUTED 4a704: 4a88 tstl %a0 <== NOT EXECUTED 4a706: 674a beqs 4a752 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->ftruncate_h)( iop, length ); 4a708: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a70c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a70e: 4e90 jsr %a0@ <== NOT EXECUTED } 4a710: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 4a714: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->ftruncate_h)( iop, length ); 4a718: 508f addql #8,%sp <== NOT EXECUTED } 4a71a: 4e5e unlk %fp <== NOT EXECUTED 4a71c: 4e75 rts <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_location_info_t loc; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 4a71e: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4a724: 7409 moveq #9,%d2 <== NOT EXECUTED 4a726: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a728: 2082 movel %d2,%a0@ <== NOT EXECUTED if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->ftruncate_h)( iop, length ); } 4a72a: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 4a72e: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 4a732: 4e5e unlk %fp <== NOT EXECUTED rtems_libio_t *iop; rtems_filesystem_location_info_t loc; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 4a734: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->ftruncate_h)( iop, length ); } 4a736: 4e75 rts <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) rtems_set_errno_and_return_minus_one( EISDIR ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 4a738: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->ftruncate_h)( iop, length ); } 4a73e: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 4a742: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) rtems_set_errno_and_return_minus_one( EISDIR ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 4a746: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a748: 7016 moveq #22,%d0 <== NOT EXECUTED 4a74a: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->ftruncate_h)( iop, length ); } 4a74c: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) rtems_set_errno_and_return_minus_one( EISDIR ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 4a74e: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->ftruncate_h)( iop, length ); } 4a750: 4e75 rts <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EISDIR ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 4a752: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED return (*iop->handlers->ftruncate_h)( iop, length ); } 4a758: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 4a75c: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EISDIR ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 4a760: 2040 moveal %d0,%a0 <== NOT EXECUTED return (*iop->handlers->ftruncate_h)( iop, length ); } 4a762: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EISDIR ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 4a764: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a766: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED return (*iop->handlers->ftruncate_h)( iop, length ); } 4a76c: 4e75 rts <== NOT EXECUTED loc = iop->pathinfo; if ( !loc.ops->node_type_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) rtems_set_errno_and_return_minus_one( EISDIR ); 4a76e: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->ftruncate_h)( iop, length ); } 4a774: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 4a778: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED loc = iop->pathinfo; if ( !loc.ops->node_type_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) rtems_set_errno_and_return_minus_one( EISDIR ); 4a77c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a77e: 7215 moveq #21,%d1 <== NOT EXECUTED if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->ftruncate_h)( iop, length ); } 4a780: 4e5e unlk %fp <== NOT EXECUTED loc = iop->pathinfo; if ( !loc.ops->node_type_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) rtems_set_errno_and_return_minus_one( EISDIR ); 4a782: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a784: 2081 movel %d1,%a0@ <== NOT EXECUTED if ( !iop->handlers->ftruncate_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->ftruncate_h)( iop, length ); } 4a786: 4e75 rts 00060440 : char * getcwd ( char *pt, size_t size) { 60440: 4e56 ff64 linkw %fp,#-156 <== NOT EXECUTED 60444: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 60448: 2c2e 0008 movel %fp@(8),%d6 <== NOT EXECUTED 6044c: 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) 60450: 4a86 tstl %d6 <== NOT EXECUTED 60452: 6700 03f4 beqw 60848 <== NOT EXECUTED { ptsize = 0; if (!size) 60456: 4a80 tstl %d0 <== NOT EXECUTED 60458: 6700 03d4 beqw 6082e <== NOT EXECUTED { errno = EINVAL; return (char *) NULL; } ept = pt + size; 6045c: 2046 moveal %d6,%a0 <== NOT EXECUTED 6045e: d1c0 addal %d0,%a0 <== NOT EXECUTED 60460: 45f9 0004 6828 lea 46828 ,%a2 <== NOT EXECUTED 60466: 2d48 ffac movel %a0,%fp@(-84) <== NOT EXECUTED 6046a: 42ae ffa4 clrl %fp@(-92) <== NOT EXECUTED { return (char *) NULL; } ept = pt + ptsize; } bpt = ept - 1; 6046e: 2e2e ffac movel %fp@(-84),%d7 <== NOT EXECUTED *bpt = '\0'; 60472: 5387 subql #1,%d7 <== NOT EXECUTED 60474: 2047 moveal %d7,%a0 <== NOT EXECUTED 60476: 4210 clrb %a0@ <== 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))) 60478: 4878 03fc pea 3fc <== NOT EXECUTED 6047c: 4e92 jsr %a2@ <== NOT EXECUTED 6047e: 588f addql #4,%sp <== NOT EXECUTED 60480: 2640 moveal %d0,%a3 <== NOT EXECUTED 60482: 4a80 tstl %d0 <== NOT EXECUTED 60484: 6720 beqs 604a6 <== NOT EXECUTED goto err; } eup = up + MAXPATHLEN; bup = up; up[0] = '.'; up[1] = '\0'; 60486: 4200 clrb %d0 <== NOT EXECUTED { goto err; } eup = up + MAXPATHLEN; bup = up; up[0] = '.'; 60488: 16bc 002e moveb #46,%a3@ <== NOT EXECUTED up[1] = '\0'; 6048c: 1740 0001 moveb %d0,%a3@(1) <== NOT EXECUTED /* Save root values, so know when to stop. */ if (stat ("/", &s)) 60490: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 60494: 4879 0008 315a pea 8315a <== NOT EXECUTED 6049a: 4eb9 0004 78e4 jsr 478e4 <== NOT EXECUTED 604a0: 508f addql #8,%sp <== NOT EXECUTED 604a2: 4a80 tstl %d0 <== NOT EXECUTED 604a4: 6730 beqs 604d6 <== NOT EXECUTED 604a6: 45f9 0004 61e4 lea 461e4 ,%a2 <== NOT EXECUTED /* FALLTHROUGH */ err: if(dir) (void) _closedir (dir); if (ptsize) 604ac: 4aae ffa4 tstl %fp@(-92) <== NOT EXECUTED 604b0: 6614 bnes 604c6 <== NOT EXECUTED free (pt); free (up); 604b2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 604b4: 4e92 jsr %a2@ <== NOT EXECUTED 604b6: 588f addql #4,%sp <== NOT EXECUTED 604b8: 4286 clrl %d6 <== NOT EXECUTED return (char *) NULL; } 604ba: 2006 movel %d6,%d0 <== NOT EXECUTED 604bc: 4cee 3cfc ff64 moveml %fp@(-156),%d2-%d7/%a2-%a5 <== NOT EXECUTED 604c2: 4e5e unlk %fp <== NOT EXECUTED 604c4: 4e75 rts <== NOT EXECUTED err: if(dir) (void) _closedir (dir); if (ptsize) free (pt); 604c6: 2f06 movel %d6,%sp@- <== NOT EXECUTED 604c8: 4e92 jsr %a2@ <== NOT EXECUTED 604ca: 588f addql #4,%sp <== NOT EXECUTED free (up); 604cc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 604ce: 4e92 jsr %a2@ <== NOT EXECUTED 604d0: 588f addql #4,%sp <== NOT EXECUTED 604d2: 4286 clrl %d6 <== NOT EXECUTED 604d4: 60e4 bras 604ba <== NOT EXECUTED /* Save root values, so know when to stop. */ if (stat ("/", &s)) goto err; root_dev = s.st_dev; root_ino = s.st_ino; 604d6: 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; 604da: 206e ffb6 moveal %fp@(-74),%a0 <== NOT EXECUTED 604de: 226e ffba moveal %fp@(-70),%a1 <== NOT EXECUTED 604e2: 2d48 ff98 movel %a0,%fp@(-104) <== NOT EXECUTED 604e6: 2d49 ff9c movel %a1,%fp@(-100) <== NOT EXECUTED root_ino = s.st_ino; 604ea: 2d41 ffa0 movel %d1,%fp@(-96) <== NOT EXECUTED errno = 0; /* XXX readdir has no error return. */ 604ee: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 604f4: 2040 moveal %d0,%a0 <== NOT EXECUTED if (!(up = (char *) malloc (upsize = 1024 - 4))) { goto err; } eup = up + MAXPATHLEN; 604f6: 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. */ 604fa: 7001 moveq #1,%d0 <== NOT EXECUTED 604fc: 223c 0000 03fc movel #1020,%d1 <== NOT EXECUTED 60502: 284b moveal %a3,%a4 <== NOT EXECUTED if (!(up = (char *) malloc (upsize = 1024 - 4))) { goto err; } eup = up + MAXPATHLEN; 60504: 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. */ 60508: 2d40 ff94 movel %d0,%fp@(-108) <== NOT EXECUTED 6050c: 2d41 ffa8 movel %d1,%fp@(-88) <== NOT EXECUTED 60510: 4290 clrl %a0@ <== NOT EXECUTED for (first = 1;; first = 0) { /* Stat the current level. */ if (_stat (up, &s)) 60512: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 60516: 2f0b movel %a3,%sp@- <== NOT EXECUTED 60518: 4eb9 0004 78e4 jsr 478e4 <== NOT EXECUTED 6051e: 508f addql #8,%sp <== NOT EXECUTED 60520: 4a80 tstl %d0 <== NOT EXECUTED 60522: 6682 bnes 604a6 <== NOT EXECUTED goto err; /* Save current node values. */ ino = s.st_ino; 60524: 206e ffbe moveal %fp@(-66),%a0 <== NOT EXECUTED dev = s.st_dev; 60528: 262e ffb6 movel %fp@(-74),%d3 <== NOT EXECUTED 6052c: 282e ffba movel %fp@(-70),%d4 <== NOT EXECUTED /* Stat the current level. */ if (_stat (up, &s)) goto err; /* Save current node values. */ ino = s.st_ino; 60530: 2d48 ff90 movel %a0,%fp@(-112) <== NOT EXECUTED dev = s.st_dev; /* Check for reaching root. */ if (root_dev == dev && root_ino == ino) 60534: 202e ff98 movel %fp@(-104),%d0 <== NOT EXECUTED 60538: 222e ff9c movel %fp@(-100),%d1 <== NOT EXECUTED 6053c: 9284 subl %d4,%d1 <== NOT EXECUTED 6053e: 9183 subxl %d3,%d0 <== NOT EXECUTED 60540: 6700 027c beqw 607be <== 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) 60544: 200c movel %a4,%d0 <== NOT EXECUTED 60546: 0680 0000 0404 addil #1028,%d0 <== NOT EXECUTED 6054c: b0ae ffb0 cmpl %fp@(-80),%d0 <== NOT EXECUTED 60550: 652a bcss 6057c <== NOT EXECUTED { if (!(up = (char *) realloc (up, upsize *= 2))) 60552: 202e ffa8 movel %fp@(-88),%d0 <== NOT EXECUTED 60556: d080 addl %d0,%d0 <== NOT EXECUTED 60558: 2d40 ffa8 movel %d0,%fp@(-88) <== NOT EXECUTED 6055c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 6055e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 60560: 4eb9 0006 1da0 jsr 61da0 <== NOT EXECUTED 60566: 508f addql #8,%sp <== NOT EXECUTED 60568: 2640 moveal %d0,%a3 <== NOT EXECUTED 6056a: 4a80 tstl %d0 <== NOT EXECUTED 6056c: 6700 ff38 beqw 604a6 <== NOT EXECUTED { goto err; } bup = up; eup = up + upsize; 60570: 222e ffa8 movel %fp@(-88),%d1 <== NOT EXECUTED 60574: 2840 moveal %d0,%a4 <== NOT EXECUTED 60576: d280 addl %d0,%d1 <== NOT EXECUTED 60578: 2d41 ffb0 movel %d1,%fp@(-80) <== NOT EXECUTED } *bup++ = '.'; 6057c: 204c moveal %a4,%a0 <== NOT EXECUTED 6057e: 10fc 002e moveb #46,%a0@+ <== NOT EXECUTED *bup++ = '.'; 60582: 2448 moveal %a0,%a2 <== NOT EXECUTED 60584: 14fc 002e moveb #46,%a2@+ <== NOT EXECUTED *bup = '\0'; 60588: 4212 clrb %a2@ <== NOT EXECUTED /* Open and stat parent directory. */ if (!(dir = _opendir (up)) || _fstat (__dirfd (dir), &s)) 6058a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6058c: 4eb9 0006 1824 jsr 61824 <== NOT EXECUTED 60592: 588f addql #4,%sp <== NOT EXECUTED 60594: 2a40 moveal %d0,%a5 <== NOT EXECUTED 60596: 4a80 tstl %d0 <== NOT EXECUTED 60598: 6700 ff0c beqw 604a6 <== NOT EXECUTED 6059c: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 605a0: 2f15 movel %a5@,%sp@- <== NOT EXECUTED 605a2: 4eb9 0006 01c8 jsr 601c8 <== NOT EXECUTED 605a8: 508f addql #8,%sp <== NOT EXECUTED 605aa: 4a80 tstl %d0 <== NOT EXECUTED 605ac: 6600 00ac bnew 6065a <== NOT EXECUTED goto err; /* Add trailing slash for next directory. */ *bup++ = '/'; 605b0: 284a moveal %a2,%a4 <== NOT EXECUTED 605b2: 18fc 002f moveb #47,%a4@+ <== 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) 605b6: 202e ffb6 movel %fp@(-74),%d0 <== NOT EXECUTED 605ba: 222e ffba movel %fp@(-70),%d1 <== NOT EXECUTED 605be: 9284 subl %d4,%d1 <== NOT EXECUTED 605c0: 9183 subxl %d3,%d0 <== NOT EXECUTED 605c2: 6700 00c8 beqw 6068c <== NOT EXECUTED 605c6: 4285 clrl %d5 <== NOT EXECUTED } } else for (;;) { if (!(dp = _readdir (dir))) 605c8: 2f0d movel %a5,%sp@- <== NOT EXECUTED 605ca: 4eb9 0006 1bd0 jsr 61bd0 <== NOT EXECUTED 605d0: 588f addql #4,%sp <== NOT EXECUTED 605d2: 2040 moveal %d0,%a0 <== NOT EXECUTED 605d4: 4a80 tstl %d0 <== NOT EXECUTED 605d6: 6774 beqs 6064c <== NOT EXECUTED goto notfound; if (ISDOT (dp)) 605d8: 1028 000c moveb %a0@(12),%d0 <== NOT EXECUTED 605dc: 49c0 extbl %d0 <== NOT EXECUTED 605de: 722e moveq #46,%d1 <== NOT EXECUTED 605e0: b280 cmpl %d0,%d1 <== NOT EXECUTED 605e2: 660e bnes 605f2 <== NOT EXECUTED 605e4: 1028 000d moveb %a0@(13),%d0 <== NOT EXECUTED 605e8: 67de beqs 605c8 <== NOT EXECUTED 605ea: 49c0 extbl %d0 <== NOT EXECUTED 605ec: b280 cmpl %d0,%d1 <== NOT EXECUTED 605ee: 6700 016a beqw 6075a <== NOT EXECUTED continue; bcopy (dp->d_name, bup, strlen (dp->d_name) + 1); 605f2: 2408 movel %a0,%d2 <== NOT EXECUTED 605f4: 0682 0000 000c addil #12,%d2 <== NOT EXECUTED 605fa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 605fc: 4eb9 0007 5614 jsr 75614 <== NOT EXECUTED 60602: 5280 addql #1,%d0 <== NOT EXECUTED 60604: 2e80 movel %d0,%sp@ <== NOT EXECUTED 60606: 45f9 0007 5614 lea 75614 ,%a2 <== NOT EXECUTED 6060c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6060e: 2f0c movel %a4,%sp@- <== NOT EXECUTED 60610: 4eb9 0007 2a50 jsr 72a50 <== NOT EXECUTED /* Save the first error for later. */ if (stat (up, &s)) 60616: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 6061a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6061c: 4eb9 0004 78e4 jsr 478e4 <== NOT EXECUTED 60622: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60628: 4a80 tstl %d0 <== NOT EXECUTED 6062a: 6700 0172 beqw 6079e <== NOT EXECUTED { if (!save_errno) 6062e: 4a85 tstl %d5 <== NOT EXECUTED 60630: 6744 beqs 60676 <== NOT EXECUTED save_errno = errno; errno = 0; 60632: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 60638: 2040 moveal %d0,%a0 <== NOT EXECUTED 6063a: 4290 clrl %a0@ <== NOT EXECUTED } } else for (;;) { if (!(dp = _readdir (dir))) 6063c: 2f0d movel %a5,%sp@- <== NOT EXECUTED 6063e: 4eb9 0006 1bd0 jsr 61bd0 <== NOT EXECUTED 60644: 588f addql #4,%sp <== NOT EXECUTED 60646: 2040 moveal %d0,%a0 <== NOT EXECUTED 60648: 4a80 tstl %d0 <== NOT EXECUTED 6064a: 668c bnes 605d8 <== 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) 6064c: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 60652: 2040 moveal %d0,%a0 <== NOT EXECUTED 60654: 4a90 tstl %a0@ <== NOT EXECUTED 60656: 6700 01a0 beqw 607f8 <== NOT EXECUTED errno = save_errno ? save_errno : ENOENT; /* FALLTHROUGH */ err: if(dir) (void) _closedir (dir); 6065a: 2f0d movel %a5,%sp@- <== NOT EXECUTED 6065c: 4eb9 0006 da44 jsr 6da44 <== NOT EXECUTED 60662: 588f addql #4,%sp <== NOT EXECUTED 60664: 45f9 0004 61e4 lea 461e4 ,%a2 <== NOT EXECUTED if (ptsize) 6066a: 4aae ffa4 tstl %fp@(-92) <== NOT EXECUTED 6066e: 6700 fe42 beqw 604b2 <== NOT EXECUTED 60672: 6000 fe52 braw 604c6 <== NOT EXECUTED /* Save the first error for later. */ if (stat (up, &s)) { if (!save_errno) save_errno = errno; 60676: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6067c: 2040 moveal %d0,%a0 <== NOT EXECUTED 6067e: 2a10 movel %a0@,%d5 <== NOT EXECUTED errno = 0; 60680: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 60686: 2040 moveal %d0,%a0 <== NOT EXECUTED 60688: 4290 clrl %a0@ <== NOT EXECUTED 6068a: 60b0 bras 6063c <== NOT EXECUTED save_errno = 0; if (s.st_dev == dev) { for (;;) { if (!(dp = _readdir (dir))) 6068c: 2f0d movel %a5,%sp@- <== NOT EXECUTED 6068e: 4eb9 0006 1bd0 jsr 61bd0 <== NOT EXECUTED 60694: 588f addql #4,%sp <== NOT EXECUTED 60696: 2040 moveal %d0,%a0 <== NOT EXECUTED 60698: 4a80 tstl %d0 <== NOT EXECUTED 6069a: 6700 0180 beqw 6081c <== NOT EXECUTED goto notfound; if (dp->d_ino == ino) 6069e: 226e ff90 moveal %fp@(-112),%a1 <== NOT EXECUTED 606a2: b3d0 cmpal %a0@,%a1 <== NOT EXECUTED 606a4: 66e6 bnes 6068c <== NOT EXECUTED 606a6: 2400 movel %d0,%d2 <== NOT EXECUTED 606a8: 0682 0000 000c addil #12,%d2 <== NOT EXECUTED 606ae: 45f9 0007 5614 lea 75614 ,%a2 <== NOT EXECUTED /* * Check for length of the current name, preceding slash, * leading slash. */ if (bpt - pt <= strlen (dp->d_name) + (first ? 1 : 2)) 606b4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 606b6: 4e92 jsr %a2@ <== NOT EXECUTED 606b8: 222e ff94 movel %fp@(-108),%d1 <== NOT EXECUTED 606bc: 2240 moveal %d0,%a1 <== NOT EXECUTED 606be: 4481 negl %d1 <== NOT EXECUTED 606c0: 41f1 1802 lea %a1@(00000002,%d1:l),%a0 <== NOT EXECUTED 606c4: 2247 moveal %d7,%a1 <== NOT EXECUTED 606c6: 588f addql #4,%sp <== NOT EXECUTED 606c8: 93c6 subal %d6,%a1 <== NOT EXECUTED 606ca: b1c9 cmpal %a1,%a0 <== NOT EXECUTED 606cc: 6554 bcss 60722 <== NOT EXECUTED { size_t len, off; if (!ptsize) 606ce: 4aae ffa4 tstl %fp@(-92) <== NOT EXECUTED 606d2: 6700 01a2 beqw 60876 <== NOT EXECUTED errno = ERANGE; goto err; } off = bpt - pt; len = ept - bpt; if (!(pt = (char *) realloc (pt, ptsize *= 2))) 606d6: 202e ffa4 movel %fp@(-92),%d0 <== NOT EXECUTED 606da: d080 addl %d0,%d0 <== NOT EXECUTED 606dc: 2d40 ffa4 movel %d0,%fp@(-92) <== NOT EXECUTED 606e0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 606e2: 2f06 movel %d6,%sp@- <== NOT EXECUTED 606e4: 2d49 ff8c movel %a1,%fp@(-116) <== NOT EXECUTED 606e8: 4eb9 0006 1da0 jsr 61da0 <== NOT EXECUTED 606ee: 226e ff8c moveal %fp@(-116),%a1 <== NOT EXECUTED 606f2: 2c00 movel %d0,%d6 <== NOT EXECUTED 606f4: 508f addql #8,%sp <== NOT EXECUTED 606f6: 6700 ff62 beqw 6065a <== NOT EXECUTED { errno = ERANGE; goto err; } off = bpt - pt; len = ept - bpt; 606fa: 202e ffac movel %fp@(-84),%d0 <== NOT EXECUTED 606fe: 9087 subl %d7,%d0 <== NOT EXECUTED { goto err; } bpt = pt + off; ept = pt + ptsize; (void) bcopy (bpt, ept - len, len); 60700: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60702: 4871 6800 pea %a1@(00000000,%d6:l) <== NOT EXECUTED if (!(pt = (char *) realloc (pt, ptsize *= 2))) { goto err; } bpt = pt + off; ept = pt + ptsize; 60706: 2046 moveal %d6,%a0 <== NOT EXECUTED 60708: d1ee ffa4 addal %fp@(-92),%a0 <== NOT EXECUTED 6070c: 2d48 ffac movel %a0,%fp@(-84) <== NOT EXECUTED (void) bcopy (bpt, ept - len, len); 60710: 2e08 movel %a0,%d7 <== NOT EXECUTED 60712: 9e80 subl %d0,%d7 <== NOT EXECUTED 60714: 2f07 movel %d7,%sp@- <== NOT EXECUTED 60716: 4eb9 0007 2a50 jsr 72a50 <== NOT EXECUTED 6071c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED bpt = ept - len; } if (!first) 60722: 4aae ff94 tstl %fp@(-108) <== NOT EXECUTED 60726: 6608 bnes 60730 <== NOT EXECUTED *--bpt = '/'; 60728: 5387 subql #1,%d7 <== NOT EXECUTED 6072a: 2247 moveal %d7,%a1 <== NOT EXECUTED 6072c: 12bc 002f moveb #47,%a1@ <== NOT EXECUTED bpt -= strlen (dp->d_name); 60730: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60732: 4e92 jsr %a2@ <== NOT EXECUTED bcopy (dp->d_name, bpt, strlen (dp->d_name)); 60734: 2e80 movel %d0,%sp@ <== NOT EXECUTED (void) bcopy (bpt, ept - len, len); bpt = ept - len; } if (!first) *--bpt = '/'; bpt -= strlen (dp->d_name); 60736: 9e80 subl %d0,%d7 <== NOT EXECUTED bcopy (dp->d_name, bpt, strlen (dp->d_name)); (void) _closedir (dir); dir = 0; /* Truncate any file name. */ *bup = '\0'; 60738: 42ae ff94 clrl %fp@(-108) <== NOT EXECUTED bpt = ept - len; } if (!first) *--bpt = '/'; bpt -= strlen (dp->d_name); bcopy (dp->d_name, bpt, strlen (dp->d_name)); 6073c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6073e: 2f07 movel %d7,%sp@- <== NOT EXECUTED 60740: 4eb9 0007 2a50 jsr 72a50 <== NOT EXECUTED (void) _closedir (dir); 60746: 2f0d movel %a5,%sp@- <== NOT EXECUTED 60748: 4eb9 0006 da44 jsr 6da44 <== NOT EXECUTED dir = 0; /* Truncate any file name. */ *bup = '\0'; 6074e: 4214 clrb %a4@ <== NOT EXECUTED 60750: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 60756: 6000 fdba braw 60512 <== NOT EXECUTED else for (;;) { if (!(dp = _readdir (dir))) goto notfound; if (ISDOT (dp)) 6075a: 4a28 000e tstb %a0@(14) <== NOT EXECUTED 6075e: 6700 fe68 beqw 605c8 <== NOT EXECUTED continue; bcopy (dp->d_name, bup, strlen (dp->d_name) + 1); 60762: 2408 movel %a0,%d2 <== NOT EXECUTED 60764: 0682 0000 000c addil #12,%d2 <== NOT EXECUTED 6076a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6076c: 4eb9 0007 5614 jsr 75614 <== NOT EXECUTED 60772: 5280 addql #1,%d0 <== NOT EXECUTED 60774: 2e80 movel %d0,%sp@ <== NOT EXECUTED 60776: 45f9 0007 5614 lea 75614 ,%a2 <== NOT EXECUTED 6077c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6077e: 2f0c movel %a4,%sp@- <== NOT EXECUTED 60780: 4eb9 0007 2a50 jsr 72a50 <== NOT EXECUTED /* Save the first error for later. */ if (stat (up, &s)) 60786: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 6078a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6078c: 4eb9 0004 78e4 jsr 478e4 <== NOT EXECUTED 60792: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60798: 4a80 tstl %d0 <== NOT EXECUTED 6079a: 6600 fe92 bnew 6062e <== NOT EXECUTED if (!save_errno) save_errno = errno; errno = 0; continue; } if (s.st_dev == dev && s.st_ino == ino) 6079e: 202e ffb6 movel %fp@(-74),%d0 <== NOT EXECUTED 607a2: 222e ffba movel %fp@(-70),%d1 <== NOT EXECUTED 607a6: 9284 subl %d4,%d1 <== NOT EXECUTED 607a8: 9183 subxl %d3,%d0 <== NOT EXECUTED 607aa: 6600 fe1c bnew 605c8 <== NOT EXECUTED 607ae: 206e ff90 moveal %fp@(-112),%a0 <== NOT EXECUTED 607b2: b1ee ffbe cmpal %fp@(-66),%a0 <== NOT EXECUTED 607b6: 6600 fe10 bnew 605c8 <== NOT EXECUTED 607ba: 6000 fef8 braw 606b4 <== NOT EXECUTED /* Save current node values. */ ino = s.st_ino; dev = s.st_dev; /* Check for reaching root. */ if (root_dev == dev && root_ino == ino) 607be: b1ee ffa0 cmpal %fp@(-96),%a0 <== NOT EXECUTED 607c2: 6600 fd80 bnew 60544 <== NOT EXECUTED { *--bpt = '/'; 607c6: 2047 moveal %d7,%a0 <== NOT EXECUTED 607c8: 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); 607cc: 226e ffac moveal %fp@(-84),%a1 <== NOT EXECUTED 607d0: 93c8 subal %a0,%a1 <== NOT EXECUTED 607d2: 2f09 movel %a1,%sp@- <== NOT EXECUTED 607d4: 2f08 movel %a0,%sp@- <== NOT EXECUTED 607d6: 2f06 movel %d6,%sp@- <== NOT EXECUTED 607d8: 4eb9 0007 2a50 jsr 72a50 <== NOT EXECUTED free (up); 607de: 2f0b movel %a3,%sp@- <== NOT EXECUTED 607e0: 4eb9 0004 61e4 jsr 461e4 <== NOT EXECUTED (void) _closedir (dir); if (ptsize) free (pt); free (up); return (char *) NULL; } 607e6: 2006 movel %d6,%d0 <== 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); free (up); 607e8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED (void) _closedir (dir); if (ptsize) free (pt); free (up); return (char *) NULL; } 607ee: 4cee 3cfc ff64 moveml %fp@(-156),%d2-%d7/%a2-%a5 <== NOT EXECUTED 607f4: 4e5e unlk %fp <== NOT EXECUTED 607f6: 4e75 rts <== NOT EXECUTED * didn't find the current directory in its parent directory, set * errno to ENOENT. */ if (!errno) errno = save_errno ? save_errno : ENOENT; 607f8: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 607fe: 2040 moveal %d0,%a0 <== NOT EXECUTED 60800: 4a85 tstl %d5 <== NOT EXECUTED 60802: 6710 beqs 60814 <== NOT EXECUTED 60804: 2085 movel %d5,%a0@ <== NOT EXECUTED /* FALLTHROUGH */ err: if(dir) (void) _closedir (dir); 60806: 2f0d movel %a5,%sp@- <== NOT EXECUTED 60808: 4eb9 0006 da44 jsr 6da44 <== NOT EXECUTED 6080e: 588f addql #4,%sp <== NOT EXECUTED 60810: 6000 fe52 braw 60664 <== NOT EXECUTED * didn't find the current directory in its parent directory, set * errno to ENOENT. */ if (!errno) errno = save_errno ? save_errno : ENOENT; 60814: 1a3c 0002 moveb #2,%d5 <== NOT EXECUTED 60818: 2085 movel %d5,%a0@ <== NOT EXECUTED 6081a: 60ea bras 60806 <== 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) 6081c: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED (void) _closedir (dir); dir = 0; /* Truncate any file name. */ *bup = '\0'; } 60822: 4285 clrl %d5 <== 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) 60824: 2040 moveal %d0,%a0 <== NOT EXECUTED 60826: 4a90 tstl %a0@ <== NOT EXECUTED 60828: 6600 fe30 bnew 6065a <== NOT EXECUTED 6082c: 60ca bras 607f8 <== NOT EXECUTED if (pt) { ptsize = 0; if (!size) { errno = EINVAL; 6082e: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 60834: 4286 clrl %d6 <== NOT EXECUTED 60836: 2040 moveal %d0,%a0 <== NOT EXECUTED (void) _closedir (dir); if (ptsize) free (pt); free (up); return (char *) NULL; } 60838: 2006 movel %d6,%d0 <== NOT EXECUTED 6083a: 4cee 3cfc ff64 moveml %fp@(-156),%d2-%d7/%a2-%a5 <== NOT EXECUTED if (pt) { ptsize = 0; if (!size) { errno = EINVAL; 60840: 7216 moveq #22,%d1 <== NOT EXECUTED (void) _closedir (dir); if (ptsize) free (pt); free (up); return (char *) NULL; } 60842: 4e5e unlk %fp <== NOT EXECUTED if (pt) { ptsize = 0; if (!size) { errno = EINVAL; 60844: 2081 movel %d1,%a0@ <== NOT EXECUTED (void) _closedir (dir); if (ptsize) free (pt); free (up); return (char *) NULL; } 60846: 4e75 rts <== NOT EXECUTED } ept = pt + size; } else { if (!(pt = (char *) malloc (ptsize = 1024 - 4))) 60848: 45f9 0004 6828 lea 46828 ,%a2 <== NOT EXECUTED 6084e: 4878 03fc pea 3fc <== NOT EXECUTED 60852: 4e92 jsr %a2@ <== NOT EXECUTED 60854: 588f addql #4,%sp <== NOT EXECUTED 60856: 2c00 movel %d0,%d6 <== NOT EXECUTED 60858: 6700 fc60 beqw 604ba <== NOT EXECUTED { return (char *) NULL; } ept = pt + ptsize; 6085c: 2240 moveal %d0,%a1 <== NOT EXECUTED 6085e: d3fc 0000 03fc addal #1020,%a1 <== NOT EXECUTED 60864: 203c 0000 03fc movel #1020,%d0 <== NOT EXECUTED 6086a: 2d49 ffac movel %a1,%fp@(-84) <== NOT EXECUTED 6086e: 2d40 ffa4 movel %d0,%fp@(-92) <== NOT EXECUTED 60872: 6000 fbfa braw 6046e <== NOT EXECUTED { size_t len, off; if (!ptsize) { errno = ERANGE; 60876: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6087c: 2040 moveal %d0,%a0 <== NOT EXECUTED 6087e: 7022 moveq #34,%d0 <== NOT EXECUTED 60880: 2080 movel %d0,%a0@ <== NOT EXECUTED errno = save_errno ? save_errno : ENOENT; /* FALLTHROUGH */ err: if(dir) (void) _closedir (dir); 60882: 2f0d movel %a5,%sp@- <== NOT EXECUTED 60884: 4eb9 0006 da44 jsr 6da44 <== NOT EXECUTED 6088a: 588f addql #4,%sp <== NOT EXECUTED 6088c: 6000 fdd6 braw 60664 <== NOT EXECUTED 0006de84 : int getdents( int dd_fd, char *dd_buf, int dd_len ) { 6de84: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 6de88: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6de8a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6de8c: 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 ); 6de90: b4b9 0008 56e8 cmpl 856e8 ,%d2 <== NOT EXECUTED 6de96: 655e bcss 6def6 <== NOT EXECUTED 6de98: 95ca subal %a2,%a2 <== NOT EXECUTED /* * Make sure we are working on a directory */ loc = iop->pathinfo; 6de9a: 43ee fff0 lea %fp@(-16),%a1 <== NOT EXECUTED 6de9e: 22aa 0010 movel %a2@(16),%a1@ <== NOT EXECUTED 6dea2: 2d6a 0014 fff4 movel %a2@(20),%fp@(-12) <== NOT EXECUTED 6dea8: 2d6a 0018 fff8 movel %a2@(24),%fp@(-8) <== NOT EXECUTED if ( !loc.ops->node_type_h ) 6deae: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 6deb2: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED iop = rtems_libio_iop( dd_fd ); /* * Make sure we are working on a directory */ loc = iop->pathinfo; 6deb6: 2d6a 001c fffc movel %a2@(28),%fp@(-4) <== NOT EXECUTED if ( !loc.ops->node_type_h ) 6debc: 4a88 tstl %a0 <== NOT EXECUTED 6debe: 6768 beqs 6df28 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) 6dec0: 2f09 movel %a1,%sp@- <== NOT EXECUTED 6dec2: 4e90 jsr %a0@ <== NOT EXECUTED 6dec4: 588f addql #4,%sp <== NOT EXECUTED 6dec6: 7201 moveq #1,%d1 <== NOT EXECUTED 6dec8: b280 cmpl %d0,%d1 <== NOT EXECUTED 6deca: 6642 bnes 6df0e <== NOT EXECUTED /* * Return the number of bytes that were actually transfered as a result * of the read attempt. */ if ( !iop->handlers->read_h ) 6decc: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 6ded0: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED 6ded4: 4a88 tstl %a0 <== NOT EXECUTED 6ded6: 6750 beqs 6df28 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->read_h)( iop, dd_buf, dd_len ); 6ded8: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 6dedc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 6dee0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6dee2: 4e90 jsr %a0@ <== NOT EXECUTED } 6dee4: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 6dee8: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED */ if ( !iop->handlers->read_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->read_h)( iop, dd_buf, dd_len ); 6deec: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 6def2: 4e5e unlk %fp <== NOT EXECUTED 6def4: 4e75 rts <== NOT EXECUTED /* * Get the file control block structure associated with the file descriptor */ iop = rtems_libio_iop( dd_fd ); 6def6: 2202 movel %d2,%d1 <== NOT EXECUTED 6def8: 2002 movel %d2,%d0 <== NOT EXECUTED 6defa: e589 lsll #2,%d1 <== NOT EXECUTED 6defc: e988 lsll #4,%d0 <== NOT EXECUTED 6defe: 9081 subl %d1,%d0 <== NOT EXECUTED 6df00: 2479 0009 b2b8 moveal 9b2b8 ,%a2 <== NOT EXECUTED 6df06: d082 addl %d2,%d0 <== NOT EXECUTED 6df08: e588 lsll #2,%d0 <== NOT EXECUTED 6df0a: d5c0 addal %d0,%a2 <== NOT EXECUTED 6df0c: 608c bras 6de9a <== NOT EXECUTED loc = iop->pathinfo; if ( !loc.ops->node_type_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 6df0e: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED if ( !iop->handlers->read_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->read_h)( iop, dd_buf, dd_len ); } 6df14: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 6df18: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED loc = iop->pathinfo; if ( !loc.ops->node_type_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 6df1c: 2040 moveal %d0,%a0 <== NOT EXECUTED 6df1e: 7014 moveq #20,%d0 <== NOT EXECUTED 6df20: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( !iop->handlers->read_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->read_h)( iop, dd_buf, dd_len ); } 6df22: 4e5e unlk %fp <== NOT EXECUTED loc = iop->pathinfo; if ( !loc.ops->node_type_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 6df24: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( !iop->handlers->read_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); return (*iop->handlers->read_h)( iop, dd_buf, dd_len ); } 6df26: 4e75 rts <== NOT EXECUTED * Return the number of bytes that were actually transfered as a result * of the read attempt. */ if ( !iop->handlers->read_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 6df28: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED return (*iop->handlers->read_h)( iop, dd_buf, dd_len ); } 6df2e: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 6df32: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED * Return the number of bytes that were actually transfered as a result * of the read attempt. */ if ( !iop->handlers->read_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 6df36: 2040 moveal %d0,%a0 <== NOT EXECUTED return (*iop->handlers->read_h)( iop, dd_buf, dd_len ); } 6df38: 4e5e unlk %fp <== NOT EXECUTED * Return the number of bytes that were actually transfered as a result * of the read attempt. */ if ( !iop->handlers->read_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 6df3a: 70ff moveq #-1,%d0 <== NOT EXECUTED 6df3c: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED return (*iop->handlers->read_h)( iop, dd_buf, dd_len ); } 6df42: 4e75 rts 0004a788 : * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ gid_t getegid( void ) { 4a788: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED 4a78e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_types_Egid; } 4a792: 4e5e unlk %fp <== NOT EXECUTED 4a794: 3028 0030 movew %a0@(48),%d0 <== NOT EXECUTED 4a798: 4e75 rts <== NOT EXECUTED ... 0004a79c : * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ uid_t geteuid( void ) { 4a79c: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED 4a7a2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_types_Euid; } 4a7a6: 4e5e unlk %fp <== NOT EXECUTED 4a7a8: 3028 002e movew %a0@(46),%d0 <== NOT EXECUTED 4a7ac: 4e75 rts <== NOT EXECUTED ... 000608b8 : * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ gid_t getgid( void ) { 608b8: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 608be: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_types_Gid; } 608c2: 4e5e unlk %fp <== NOT EXECUTED 608c4: 3028 002c movew %a0@(44),%d0 <== NOT EXECUTED 608c8: 4e75 rts 00060e7a : struct group *grp, char *buffer, size_t bufsize, struct group **result ) { 60e7a: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 60e7e: 48d7 1c7c moveml %d2-%d6/%a2-%a4,%sp@ <== NOT EXECUTED 60e82: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 60e86: 2c2e 000c movel %fp@(12),%d6 <== NOT EXECUTED 60e8a: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 60e8e: 2a2e 0014 movel %fp@(20),%d5 <== NOT EXECUTED 60e92: 282e 0018 movel %fp@(24),%d4 <== NOT EXECUTED FILE *fp; int match; init_etc_passwd_group(); 60e96: 4eb9 0006 0d32 jsr 60d32 <== NOT EXECUTED if ((fp = fopen("/etc/group", "r")) == NULL) { 60e9c: 4879 0008 198b pea 8198b <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 60ea2: 47fa fbe4 lea %pc@(60a88 ),%a3 <== NOT EXECUTED 60ea6: 4879 0008 307b pea 8307b <== NOT EXECUTED 60eac: 4eb9 0007 0ec8 jsr 70ec8 <== NOT EXECUTED 60eb2: 508f addql #8,%sp <== NOT EXECUTED 60eb4: 2400 movel %d0,%d2 <== NOT EXECUTED errno = EINVAL; fclose(fp); return -1; } if (name) { match = (strcmp(grp->gr_name, name) == 0); 60eb6: 49f9 0007 501c lea 7501c ,%a4 <== NOT EXECUTED FILE *fp; int match; init_etc_passwd_group(); if ((fp = fopen("/etc/group", "r")) == NULL) { 60ebc: 677c beqs 60f3a <== NOT EXECUTED errno = EINVAL; return -1; } for(;;) { if (!scangr(fp, grp, buffer, bufsize)) { 60ebe: 2f04 movel %d4,%sp@- <== NOT EXECUTED 60ec0: 2f05 movel %d5,%sp@- <== NOT EXECUTED 60ec2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60ec4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60ec6: 4e93 jsr %a3@ <== NOT EXECUTED 60ec8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 60ece: 4a80 tstl %d0 <== NOT EXECUTED 60ed0: 6746 beqs 60f18 <== NOT EXECUTED errno = EINVAL; fclose(fp); return -1; } if (name) { 60ed2: 4a83 tstl %d3 <== NOT EXECUTED 60ed4: 672e beqs 60f04 <== NOT EXECUTED match = (strcmp(grp->gr_name, name) == 0); 60ed6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60ed8: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 60eda: 4e94 jsr %a4@ <== NOT EXECUTED 60edc: 4a80 tstl %d0 <== NOT EXECUTED 60ede: 57c0 seq %d0 <== NOT EXECUTED 60ee0: 49c0 extbl %d0 <== NOT EXECUTED 60ee2: 508f addql #8,%sp <== NOT EXECUTED 60ee4: 4480 negl %d0 <== NOT EXECUTED } else { match = (grp->gr_gid == gid); } if (match) { 60ee6: 67d6 beqs 60ebe <== NOT EXECUTED fclose(fp); 60ee8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60eea: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED *result = grp; 60ef0: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 60ef4: 208a movel %a2,%a0@ <== NOT EXECUTED 60ef6: 588f addql #4,%sp <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 60ef8: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED 60efe: 4e5e unlk %fp <== NOT EXECUTED else { match = (grp->gr_gid == gid); } if (match) { fclose(fp); *result = grp; 60f00: 4280 clrl %d0 <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 60f02: 4e75 rts <== NOT EXECUTED } if (name) { match = (strcmp(grp->gr_name, name) == 0); } else { match = (grp->gr_gid == gid); 60f04: 4280 clrl %d0 <== NOT EXECUTED 60f06: 302a 0008 movew %a2@(8),%d0 <== NOT EXECUTED 60f0a: bc80 cmpl %d0,%d6 <== NOT EXECUTED 60f0c: 57c1 seq %d1 <== NOT EXECUTED 60f0e: 1001 moveb %d1,%d0 <== NOT EXECUTED 60f10: 49c0 extbl %d0 <== NOT EXECUTED 60f12: 4480 negl %d0 <== NOT EXECUTED } if (match) { 60f14: 67a8 beqs 60ebe <== NOT EXECUTED 60f16: 60d0 bras 60ee8 <== NOT EXECUTED errno = EINVAL; return -1; } for(;;) { if (!scangr(fp, grp, buffer, bufsize)) { errno = EINVAL; 60f18: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 60f1e: 2040 moveal %d0,%a0 <== NOT EXECUTED 60f20: 7016 moveq #22,%d0 <== NOT EXECUTED 60f22: 2080 movel %d0,%a0@ <== NOT EXECUTED fclose(fp); 60f24: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60f26: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED 60f2c: 588f addql #4,%sp <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 60f2e: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED 60f34: 4e5e unlk %fp <== NOT EXECUTED return -1; } for(;;) { if (!scangr(fp, grp, buffer, bufsize)) { errno = EINVAL; fclose(fp); 60f36: 70ff moveq #-1,%d0 <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 60f38: 4e75 rts <== NOT EXECUTED int match; init_etc_passwd_group(); if ((fp = fopen("/etc/group", "r")) == NULL) { errno = EINVAL; 60f3a: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 60f40: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED int match; init_etc_passwd_group(); if ((fp = fopen("/etc/group", "r")) == NULL) { errno = EINVAL; 60f46: 2040 moveal %d0,%a0 <== NOT EXECUTED 60f48: 7216 moveq #22,%d1 <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 60f4a: 4e5e unlk %fp <== NOT EXECUTED int match; init_etc_passwd_group(); if ((fp = fopen("/etc/group", "r")) == NULL) { errno = EINVAL; 60f4c: 70ff moveq #-1,%d0 <== NOT EXECUTED 60f4e: 2081 movel %d1,%a0@ <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 60f50: 4e75 rts 00060bb2 : return p; } struct group *getgrent() { if (group_fp == NULL) 60bb2: 2039 0009 a44a movel 9a44a ,%d0 <== NOT EXECUTED return NULL; return p; } struct group *getgrent() { 60bb8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (group_fp == NULL) 60bbc: 4a80 tstl %d0 <== NOT EXECUTED 60bbe: 672c beqs 60bec <== NOT EXECUTED return NULL; if (!scangr(group_fp, &grent, grbuf, sizeof grbuf)) 60bc0: 4878 00c8 pea c8 <== NOT EXECUTED 60bc4: 4879 0009 a44e pea 9a44e <== NOT EXECUTED 60bca: 4879 0009 a516 pea 9a516 <== NOT EXECUTED 60bd0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60bd2: 4eba feb4 jsr %pc@(60a88 ) <== NOT EXECUTED 60bd6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 60bdc: 223c 0009 a516 movel #632086,%d1 <== NOT EXECUTED 60be2: 4a80 tstl %d0 <== NOT EXECUTED 60be4: 6706 beqs 60bec <== NOT EXECUTED return NULL; return &grent; } 60be6: 4e5e unlk %fp <== NOT EXECUTED 60be8: 2001 movel %d1,%d0 <== NOT EXECUTED 60bea: 4e75 rts <== NOT EXECUTED struct group *getgrent() { if (group_fp == NULL) return NULL; if (!scangr(group_fp, &grent, grbuf, sizeof grbuf)) 60bec: 4281 clrl %d1 <== NOT EXECUTED return NULL; return &grent; } 60bee: 4e5e unlk %fp <== NOT EXECUTED 60bf0: 2001 movel %d1,%d0 <== NOT EXECUTED 60bf2: 4e75 rts 00060f78 : struct group *getgrgid( gid_t gid ) { 60f78: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct group *p; if(getgrgid_r(gid, &grent, grbuf, sizeof grbuf, &p)) 60f7c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 60f80: 4280 clrl %d0 <== NOT EXECUTED 60f82: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 60f86: 4878 00c8 pea c8 <== NOT EXECUTED 60f8a: 4879 0009 a44e pea 9a44e <== NOT EXECUTED 60f90: 4879 0009 a516 pea 9a516 <== NOT EXECUTED 60f96: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60f98: 4eb9 0006 0f52 jsr 60f52 <== NOT EXECUTED 60f9e: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60fa4: 4a80 tstl %d0 <== NOT EXECUTED 60fa6: 6608 bnes 60fb0 <== NOT EXECUTED return NULL; return p; 60fa8: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 60fac: 4e5e unlk %fp <== NOT EXECUTED 60fae: 4e75 rts <== NOT EXECUTED 60fb0: 4e5e unlk %fp <== NOT EXECUTED gid_t gid ) { struct group *p; if(getgrgid_r(gid, &grent, grbuf, sizeof grbuf, &p)) 60fb2: 4280 clrl %d0 <== NOT EXECUTED return NULL; return p; } 60fb4: 4e75 rts 00060f52 : struct group *grp, char *buffer, size_t bufsize, struct group **result ) { 60f52: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getgr_r(NULL, gid, grp, buffer, bufsize, result); 60f56: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 60f5a: 4280 clrl %d0 <== NOT EXECUTED 60f5c: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 60f60: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 60f64: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 60f68: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 60f6c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60f6e: 42a7 clrl %sp@- <== NOT EXECUTED 60f70: 4eba ff08 jsr %pc@(60e7a ) <== NOT EXECUTED } 60f74: 4e5e unlk %fp <== NOT EXECUTED 60f76: 4e75 rts 00060fd8 : struct group *getgrnam( const char *name ) { 60fd8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct group *p; if(getgrnam_r(name, &grent, grbuf, sizeof grbuf, &p)) 60fdc: 486e fffc pea %fp@(-4) <== NOT EXECUTED 60fe0: 4878 00c8 pea c8 <== NOT EXECUTED 60fe4: 4879 0009 a44e pea 9a44e <== NOT EXECUTED 60fea: 4879 0009 a516 pea 9a516 <== NOT EXECUTED 60ff0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 60ff4: 4eb9 0006 0fb6 jsr 60fb6 <== NOT EXECUTED 60ffa: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 61000: 4a80 tstl %d0 <== NOT EXECUTED 61002: 6608 bnes 6100c <== NOT EXECUTED return NULL; return p; 61004: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 61008: 4e5e unlk %fp <== NOT EXECUTED 6100a: 4e75 rts <== NOT EXECUTED 6100c: 4e5e unlk %fp <== NOT EXECUTED const char *name ) { struct group *p; if(getgrnam_r(name, &grent, grbuf, sizeof grbuf, &p)) 6100e: 4280 clrl %d0 <== NOT EXECUTED return NULL; return p; } 61010: 4e75 rts 00060fb6 : struct group *grp, char *buffer, size_t bufsize, struct group **result ) { 60fb6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getgr_r(name, 0, grp, buffer, bufsize, result); 60fba: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 60fbe: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 60fc2: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 60fc6: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 60fca: 42a7 clrl %sp@- <== NOT EXECUTED 60fcc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 60fd0: 4eba fea8 jsr %pc@(60e7a ) <== NOT EXECUTED } 60fd4: 4e5e unlk %fp <== NOT EXECUTED 60fd6: 4e75 rts 000559a4 : * * 4.1.1 Get Process and Parent Process IDs, P1003.1b-1993, p. 83 */ pid_t getpid( void ) { 559a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Local_node; } 559a8: 4e5e unlk %fp <== NOT EXECUTED 559aa: 7001 moveq #1,%d0 <== NOT EXECUTED 559ac: 4e75 rts 0006104c : struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result ) { 6104c: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 61050: 48d7 1c7c moveml %d2-%d6/%a2-%a4,%sp@ <== NOT EXECUTED 61054: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 61058: 2c2e 000c movel %fp@(12),%d6 <== NOT EXECUTED 6105c: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 61060: 2a2e 0014 movel %fp@(20),%d5 <== NOT EXECUTED 61064: 282e 0018 movel %fp@(24),%d4 <== NOT EXECUTED FILE *fp; int match; init_etc_passwd_group(); 61068: 4eb9 0006 0d32 jsr 60d32 <== NOT EXECUTED if ((fp = fopen("/etc/passwd", "r")) == NULL) { 6106e: 4879 0008 198b pea 8198b <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 61074: 47fa fb7e lea %pc@(60bf4 ),%a3 <== NOT EXECUTED 61078: 4879 0008 3008 pea 83008 <== NOT EXECUTED 6107e: 4eb9 0007 0ec8 jsr 70ec8 <== NOT EXECUTED 61084: 508f addql #8,%sp <== NOT EXECUTED 61086: 2400 movel %d0,%d2 <== NOT EXECUTED errno = EINVAL; fclose(fp); return -1; } if (name) { match = (strcmp(pwd->pw_name, name) == 0); 61088: 49f9 0007 501c lea 7501c ,%a4 <== NOT EXECUTED FILE *fp; int match; init_etc_passwd_group(); if ((fp = fopen("/etc/passwd", "r")) == NULL) { 6108e: 677c beqs 6110c <== NOT EXECUTED errno = EINVAL; return -1; } for(;;) { if (!scanpw(fp, pwd, buffer, bufsize)) { 61090: 2f04 movel %d4,%sp@- <== NOT EXECUTED 61092: 2f05 movel %d5,%sp@- <== NOT EXECUTED 61094: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61096: 2f02 movel %d2,%sp@- <== NOT EXECUTED 61098: 4e93 jsr %a3@ <== NOT EXECUTED 6109a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 610a0: 4a80 tstl %d0 <== NOT EXECUTED 610a2: 6746 beqs 610ea <== NOT EXECUTED errno = EINVAL; fclose(fp); return -1; } if (name) { 610a4: 4a83 tstl %d3 <== NOT EXECUTED 610a6: 672e beqs 610d6 <== NOT EXECUTED match = (strcmp(pwd->pw_name, name) == 0); 610a8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 610aa: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 610ac: 4e94 jsr %a4@ <== NOT EXECUTED 610ae: 4a80 tstl %d0 <== NOT EXECUTED 610b0: 57c0 seq %d0 <== NOT EXECUTED 610b2: 49c0 extbl %d0 <== NOT EXECUTED 610b4: 508f addql #8,%sp <== NOT EXECUTED 610b6: 4480 negl %d0 <== NOT EXECUTED } else { match = (pwd->pw_uid == uid); } if (match) { 610b8: 67d6 beqs 61090 <== NOT EXECUTED fclose(fp); 610ba: 2f02 movel %d2,%sp@- <== NOT EXECUTED 610bc: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED *result = pwd; 610c2: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 610c6: 208a movel %a2,%a0@ <== NOT EXECUTED 610c8: 588f addql #4,%sp <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 610ca: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED 610d0: 4e5e unlk %fp <== NOT EXECUTED else { match = (pwd->pw_uid == uid); } if (match) { fclose(fp); *result = pwd; 610d2: 4280 clrl %d0 <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 610d4: 4e75 rts <== NOT EXECUTED } if (name) { match = (strcmp(pwd->pw_name, name) == 0); } else { match = (pwd->pw_uid == uid); 610d6: 4280 clrl %d0 <== NOT EXECUTED 610d8: 302a 0008 movew %a2@(8),%d0 <== NOT EXECUTED 610dc: bc80 cmpl %d0,%d6 <== NOT EXECUTED 610de: 57c1 seq %d1 <== NOT EXECUTED 610e0: 1001 moveb %d1,%d0 <== NOT EXECUTED 610e2: 49c0 extbl %d0 <== NOT EXECUTED 610e4: 4480 negl %d0 <== NOT EXECUTED } if (match) { 610e6: 67a8 beqs 61090 <== NOT EXECUTED 610e8: 60d0 bras 610ba <== NOT EXECUTED errno = EINVAL; return -1; } for(;;) { if (!scanpw(fp, pwd, buffer, bufsize)) { errno = EINVAL; 610ea: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 610f0: 7616 moveq #22,%d3 <== NOT EXECUTED 610f2: 2040 moveal %d0,%a0 <== NOT EXECUTED 610f4: 2083 movel %d3,%a0@ <== NOT EXECUTED fclose(fp); 610f6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 610f8: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED 610fe: 588f addql #4,%sp <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 61100: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED 61106: 4e5e unlk %fp <== NOT EXECUTED return -1; } for(;;) { if (!scanpw(fp, pwd, buffer, bufsize)) { errno = EINVAL; fclose(fp); 61108: 70ff moveq #-1,%d0 <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 6110a: 4e75 rts <== NOT EXECUTED int match; init_etc_passwd_group(); if ((fp = fopen("/etc/passwd", "r")) == NULL) { errno = EINVAL; 6110c: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 61112: 7816 moveq #22,%d4 <== NOT EXECUTED 61114: 2040 moveal %d0,%a0 <== NOT EXECUTED 61116: 2084 movel %d4,%a0@ <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 61118: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED 6111e: 4e5e unlk %fp <== NOT EXECUTED int match; init_etc_passwd_group(); if ((fp = fopen("/etc/passwd", "r")) == NULL) { errno = EINVAL; 61120: 70ff moveq #-1,%d0 <== NOT EXECUTED } } fclose(fp); errno = EINVAL; return -1; } 61122: 4e75 rts 00060cf0 : return p; } struct passwd *getpwent() { if (passwd_fp == NULL) 60cf0: 2039 0009 a362 movel 9a362 ,%d0 <== NOT EXECUTED return NULL; return p; } struct passwd *getpwent() { 60cf6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if (passwd_fp == NULL) 60cfa: 4a80 tstl %d0 <== NOT EXECUTED 60cfc: 672c beqs 60d2a <== NOT EXECUTED return NULL; if (!scanpw(passwd_fp, &pwent, pwbuf, sizeof pwbuf)) 60cfe: 4878 00c8 pea c8 <== NOT EXECUTED 60d02: 4879 0009 a366 pea 9a366 <== NOT EXECUTED 60d08: 4879 0009 a42e pea 9a42e <== NOT EXECUTED 60d0e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60d10: 4eba fee2 jsr %pc@(60bf4 ) <== NOT EXECUTED 60d14: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 60d1a: 223c 0009 a42e movel #631854,%d1 <== NOT EXECUTED 60d20: 4a80 tstl %d0 <== NOT EXECUTED 60d22: 6706 beqs 60d2a <== NOT EXECUTED return NULL; return &pwent; } 60d24: 4e5e unlk %fp <== NOT EXECUTED 60d26: 2001 movel %d1,%d0 <== NOT EXECUTED 60d28: 4e75 rts <== NOT EXECUTED struct passwd *getpwent() { if (passwd_fp == NULL) return NULL; if (!scanpw(passwd_fp, &pwent, pwbuf, sizeof pwbuf)) 60d2a: 4281 clrl %d1 <== NOT EXECUTED return NULL; return &pwent; } 60d2c: 4e5e unlk %fp <== NOT EXECUTED 60d2e: 2001 movel %d1,%d0 <== NOT EXECUTED 60d30: 4e75 rts 000611aa : struct passwd *getpwnam( const char *name ) { 611aa: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct passwd *p; if(getpwnam_r(name, &pwent, pwbuf, sizeof pwbuf, &p)) 611ae: 486e fffc pea %fp@(-4) <== NOT EXECUTED 611b2: 4878 00c8 pea c8 <== NOT EXECUTED 611b6: 4879 0009 a366 pea 9a366 <== NOT EXECUTED 611bc: 4879 0009 a42e pea 9a42e <== NOT EXECUTED 611c2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 611c6: 4eb9 0006 1188 jsr 61188 <== NOT EXECUTED 611cc: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 611d2: 4a80 tstl %d0 <== NOT EXECUTED 611d4: 6608 bnes 611de <== NOT EXECUTED return NULL; return p; 611d6: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 611da: 4e5e unlk %fp <== NOT EXECUTED 611dc: 4e75 rts <== NOT EXECUTED 611de: 4e5e unlk %fp <== NOT EXECUTED const char *name ) { struct passwd *p; if(getpwnam_r(name, &pwent, pwbuf, sizeof pwbuf, &p)) 611e0: 4280 clrl %d0 <== NOT EXECUTED return NULL; return p; } 611e2: 4e75 rts 00061188 : struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result ) { 61188: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getpw_r(name, 0, pwd, buffer, bufsize, result); 6118c: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 61190: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 61194: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 61198: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 6119c: 42a7 clrl %sp@- <== NOT EXECUTED 6119e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 611a2: 4eba fea8 jsr %pc@(6104c ) <== NOT EXECUTED } 611a6: 4e5e unlk %fp <== NOT EXECUTED 611a8: 4e75 rts 0006114a : struct passwd *getpwuid( uid_t uid ) { 6114a: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED struct passwd *p; if(getpwuid_r(uid, &pwent, pwbuf, sizeof pwbuf, &p)) 6114e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 61152: 4280 clrl %d0 <== NOT EXECUTED 61154: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 61158: 4878 00c8 pea c8 <== NOT EXECUTED 6115c: 4879 0009 a366 pea 9a366 <== NOT EXECUTED 61162: 4879 0009 a42e pea 9a42e <== NOT EXECUTED 61168: 2f00 movel %d0,%sp@- <== NOT EXECUTED 6116a: 4eb9 0006 1124 jsr 61124 <== NOT EXECUTED 61170: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 61176: 4a80 tstl %d0 <== NOT EXECUTED 61178: 6608 bnes 61182 <== NOT EXECUTED return NULL; return p; 6117a: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED } 6117e: 4e5e unlk %fp <== NOT EXECUTED 61180: 4e75 rts <== NOT EXECUTED 61182: 4e5e unlk %fp <== NOT EXECUTED uid_t uid ) { struct passwd *p; if(getpwuid_r(uid, &pwent, pwbuf, sizeof pwbuf, &p)) 61184: 4280 clrl %d0 <== NOT EXECUTED return NULL; return p; } 61186: 4e75 rts 00061124 : struct passwd *pwd, char *buffer, size_t bufsize, struct passwd **result ) { 61124: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return getpw_r(NULL, uid, pwd, buffer, bufsize, result); 61128: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 6112c: 4280 clrl %d0 <== NOT EXECUTED 6112e: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 61132: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 61136: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 6113a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 6113e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 61140: 42a7 clrl %sp@- <== NOT EXECUTED 61142: 4eba ff08 jsr %pc@(6104c ) <== NOT EXECUTED } 61146: 4e5e unlk %fp <== NOT EXECUTED 61148: 4e75 rts 0004a7b0 : int gettimeofday( struct timeval *tp, void * __tz ) { 4a7b0: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 4a7b4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a7b6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4a7ba: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* struct timezone* tzp = (struct timezone*) __tz; */ if ( !tp ) { 4a7bc: 4a8a tstl %a2 <== NOT EXECUTED 4a7be: 673e beqs 4a7fe <== NOT EXECUTED ) { ISR_Level level; struct timespec now; _ISR_Disable(level); 4a7c0: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4a7c6: 40c2 movew %sr,%d2 <== NOT EXECUTED 4a7c8: 8082 orl %d2,%d0 <== NOT EXECUTED 4a7ca: 46c0 movew %d0,%sr <== NOT EXECUTED _TOD_Get( &now ); 4a7cc: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4a7d0: 4eb9 0004 6c80 jsr 46c80 <_TOD_Get> <== NOT EXECUTED _ISR_Enable(level); 4a7d6: 46c2 movew %d2,%sr <== NOT EXECUTED time->tv_sec = now.tv_sec; time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 4a7d8: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 4a7dc: 243c 0000 03e8 movel #1000,%d2 <== NOT EXECUTED 4a7e2: 4c42 1001 remul %d2,%d1,%d1 <== NOT EXECUTED 4a7e6: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED * with Eric Norum, this is how GNU/Linux, Solaris, and MacOS X * do it. This puts us in good company. */ return 0; } 4a7ea: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED _ISR_Disable(level); _TOD_Get( &now ); _ISR_Enable(level); time->tv_sec = now.tv_sec; 4a7ee: 24ae fff8 movel %fp@(-8),%a2@ <== NOT EXECUTED 4a7f2: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 4a7f6: 588f addql #4,%sp <== NOT EXECUTED 4a7f8: 4e5e unlk %fp <== NOT EXECUTED 4a7fa: 4280 clrl %d0 <== NOT EXECUTED 4a7fc: 4e75 rts <== NOT EXECUTED void * __tz ) { /* struct timezone* tzp = (struct timezone*) __tz; */ if ( !tp ) { errno = EFAULT; 4a7fe: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED * with Eric Norum, this is how GNU/Linux, Solaris, and MacOS X * do it. This puts us in good company. */ return 0; } 4a804: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 4a808: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED void * __tz ) { /* struct timezone* tzp = (struct timezone*) __tz; */ if ( !tp ) { errno = EFAULT; 4a80c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a80e: 700e moveq #14,%d0 <== NOT EXECUTED 4a810: 2080 movel %d0,%a0@ <== NOT EXECUTED * with Eric Norum, this is how GNU/Linux, Solaris, and MacOS X * do it. This puts us in good company. */ return 0; } 4a812: 4e5e unlk %fp <== NOT EXECUTED void * __tz ) { /* struct timezone* tzp = (struct timezone*) __tz; */ if ( !tp ) { errno = EFAULT; 4a814: 70ff moveq #-1,%d0 <== NOT EXECUTED * with Eric Norum, this is how GNU/Linux, Solaris, and MacOS X * do it. This puts us in good company. */ return 0; } 4a816: 4e75 rts 00046304 : * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ uid_t getuid( void ) { 46304: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 4630a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_types_Uid; } 4630e: 4e5e unlk %fp <== NOT EXECUTED 46310: 3028 002a movew %a0@(42),%d0 <== NOT EXECUTED 46314: 4e75 rts 0006d6b0 : */ int imfs_dir_close( rtems_libio_t *iop ) { 6d6b0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED * and associated memory. At present the imfs_dir_close simply * returns a successful completion status. */ return 0; } 6d6b4: 4e5e unlk %fp <== NOT EXECUTED 6d6b6: 4280 clrl %d0 <== NOT EXECUTED 6d6b8: 4e75 rts 0006d6ba : int imfs_dir_fstat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 6d6ba: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 6d6be: 226e 0008 moveal %fp@(8),%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; 6d6c2: 2051 moveal %a1@,%a0 <== NOT EXECUTED int imfs_dir_fstat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 6d6c4: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED the_jnode = (IMFS_jnode_t *) loc->node_access; buf->st_dev = 0ll; buf->st_ino = the_jnode->st_ino; 6d6c8: 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; 6d6ce: 4280 clrl %d0 <== NOT EXECUTED 6d6d0: 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; 6d6d2: 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; 6d6d8: 42a9 003a clrl %a1@(58) <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) loc->node_access; buf->st_dev = 0ll; 6d6dc: 2280 movel %d0,%a1@ <== NOT EXECUTED 6d6de: 2341 0004 movel %d1,%a1@(4) <== NOT EXECUTED 6d6e2: 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; 6d6e4: 42a9 003e clrl %a1@(62) <== NOT EXECUTED 6d6e8: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED int imfs_dir_fstat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 6d6ee: 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; 6d6f0: 3368 0038 0012 movew %a0@(56),%a1@(18) <== NOT EXECUTED buf->st_gid = the_jnode->st_gid; buf->st_rdev = 0ll; 6d6f6: 4281 clrl %d1 <== NOT EXECUTED 6d6f8: 4282 clrl %d2 <== NOT EXECUTED 6d6fa: 2341 0016 movel %d1,%a1@(22) <== NOT EXECUTED 6d6fe: 2342 001a movel %d2,%a1@(26) <== NOT EXECUTED buf->st_blksize = 0; buf->st_blocks = 0; buf->st_atime = the_jnode->stat_atime; 6d702: 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; 6d708: 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; 6d70e: 2368 0040 002a movel %a0@(64),%a1@(42) <== NOT EXECUTED buf->st_ctime = the_jnode->stat_ctime; 6d714: 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; 6d71a: 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; 6d720: 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 ; 6d724: 2068 004c moveal %a0@(76),%a0 <== NOT EXECUTED !rtems_chain_is_tail( the_chain, the_node ) ; 6d728: b088 cmpl %a0,%d0 <== NOT EXECUTED 6d72a: 6710 beqs 6d73c <== NOT EXECUTED the_node = the_node->next ) { buf->st_size = buf->st_size + sizeof( struct dirent ); 6d72c: 243c 0000 010c movel #268,%d2 <== NOT EXECUTED /* 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 ) ; the_node = the_node->next ) { 6d732: 2050 moveal %a0@,%a0 <== NOT EXECUTED buf->st_size = buf->st_size + sizeof( struct dirent ); 6d734: 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 ) ; 6d738: b088 cmpl %a0,%d0 <== NOT EXECUTED 6d73a: 66f0 bnes 6d72c <== NOT EXECUTED buf->st_size = buf->st_size + sizeof( struct dirent ); } return 0; } 6d73c: 241f movel %sp@+,%d2 <== NOT EXECUTED 6d73e: 4e5e unlk %fp <== NOT EXECUTED 6d740: 4280 clrl %d0 <== NOT EXECUTED 6d742: 4e75 rts 0006d744 : off_t imfs_dir_lseek( rtems_libio_t *iop, off_t offset, int whence ) { 6d744: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 6d748: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 6d74c: 2f02 movel %d2,%sp@- <== NOT EXECUTED switch( whence ) { 6d74e: 7001 moveq #1,%d0 <== NOT EXECUTED 6d750: b0ae 0010 cmpl %fp@(16),%d0 <== NOT EXECUTED 6d754: 6416 bccs 6d76c <== 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 ); 6d756: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED break; } return 0; } 6d75c: 242e fffc movel %fp@(-4),%d2 <== 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 ); 6d760: 2040 moveal %d0,%a0 <== NOT EXECUTED 6d762: 7216 moveq #22,%d1 <== NOT EXECUTED break; } return 0; } 6d764: 4e5e unlk %fp <== 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 ); 6d766: 70ff moveq #-1,%d0 <== NOT EXECUTED 6d768: 2081 movel %d1,%a0@ <== NOT EXECUTED break; } return 0; } 6d76a: 4e75 rts <== NOT EXECUTED ) { switch( whence ) { case SEEK_SET: /* absolute move from the start of the file */ case SEEK_CUR: /* relative move */ iop->offset = (iop->offset/sizeof(struct dirent)) * 6d76c: 2029 0008 movel %a1@(8),%d0 <== NOT EXECUTED 6d770: 243c 0000 010c movel #268,%d2 <== NOT EXECUTED 6d776: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 6d77a: 2200 movel %d0,%d1 <== NOT EXECUTED 6d77c: ed89 lsll #6,%d1 <== NOT EXECUTED 6d77e: 2041 moveal %d1,%a0 <== NOT EXECUTED 6d780: 41f0 0c00 lea %a0@(00000000,%d0:l:4),%a0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return 0; } 6d784: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED ) { switch( whence ) { case SEEK_SET: /* absolute move from the start of the file */ case SEEK_CUR: /* relative move */ iop->offset = (iop->offset/sizeof(struct dirent)) * 6d788: 2208 movel %a0,%d1 <== NOT EXECUTED 6d78a: 9280 subl %d0,%d1 <== NOT EXECUTED 6d78c: e589 lsll #2,%d1 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return 0; } 6d78e: 4e5e unlk %fp <== NOT EXECUTED ) { switch( whence ) { case SEEK_SET: /* absolute move from the start of the file */ case SEEK_CUR: /* relative move */ iop->offset = (iop->offset/sizeof(struct dirent)) * 6d790: 4280 clrl %d0 <== NOT EXECUTED 6d792: 2341 0008 movel %d1,%a1@(8) <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); break; } return 0; } 6d796: 4e75 rts 0006d68c : rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) { 6d68c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 6d690: 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 ) 6d694: 2069 002c moveal %a1@(44),%a0 <== NOT EXECUTED 6d698: 7001 moveq #1,%d0 <== NOT EXECUTED 6d69a: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 6d69e: 6706 beqs 6d6a6 <== NOT EXECUTED return -1; /* It wasn't a directory --> return error */ iop->offset = 0; return 0; } 6d6a0: 4e5e unlk %fp <== 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 ) 6d6a2: 70ff moveq #-1,%d0 <== NOT EXECUTED return -1; /* It wasn't a directory --> return error */ iop->offset = 0; return 0; } 6d6a4: 4e75 rts <== NOT EXECUTED 6d6a6: 4e5e unlk %fp <== NOT EXECUTED the_jnode = (IMFS_jnode_t *) iop->file_info; if ( the_jnode->type != IMFS_DIRECTORY ) return -1; /* It wasn't a directory --> return error */ iop->offset = 0; 6d6a8: 4280 clrl %d0 <== NOT EXECUTED 6d6aa: 42a9 0008 clrl %a1@(8) <== NOT EXECUTED return 0; } 6d6ae: 4e75 rts 0006d88c : ssize_t imfs_dir_read( rtems_libio_t *iop, void *buffer, size_t count ) { 6d88c: 4e56 fecc linkw %fp,#-308 <== NOT EXECUTED 6d890: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 6d894: 2a6e 0008 moveal %fp@(8),%a5 <== NOT EXECUTED int current_entry; int first_entry; int last_entry; struct dirent tmp_dirent; the_jnode = (IMFS_jnode_t *)iop->file_info; 6d898: 206d 002c moveal %a5@(44),%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( Chain_Control *the_chain ) { return (the_chain->first == _Chain_Tail(the_chain)); 6d89c: 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; 6d8a0: 2a08 movel %a0,%d5 <== NOT EXECUTED 6d8a2: 0685 0000 0050 addil #80,%d5 <== NOT EXECUTED the_chain = &the_jnode->info.directory.Entries; if ( rtems_chain_is_empty( the_chain ) ) 6d8a8: ba8a cmpl %a2,%d5 <== NOT EXECUTED 6d8aa: 6700 00ba beqw 6d966 <== 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); 6d8ae: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 6d8b2: 243c 0000 010c movel #268,%d2 <== NOT EXECUTED 6d8b8: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 6d8bc: 2200 movel %d0,%d1 <== NOT EXECUTED 6d8be: 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; 6d8c0: 286d 0008 moveal %a5@(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); 6d8c4: 2241 moveal %d1,%a1 <== NOT EXECUTED 6d8c6: 41f1 0c00 lea %a1@(00000000,%d0:l:4),%a0 <== NOT EXECUTED 6d8ca: 91c0 subal %d0,%a0 <== NOT EXECUTED 6d8cc: 47f4 8c00 lea %a4@(00000000,%a0:l:4),%a3 <== NOT EXECUTED /* The directory was not empty so try to move to the desired entry in chain*/ for ( current_entry = 0; current_entry < last_entry; 6d8d0: 4a8b tstl %a3 <== NOT EXECUTED 6d8d2: 6f00 0092 blew 6d966 <== 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 ); 6d8d6: 2e0e movel %fp,%d7 <== NOT EXECUTED 6d8d8: 0687 ffff fef4 addil #-268,%d7 <== NOT EXECUTED 6d8de: 2c07 movel %d7,%d6 <== 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; 6d8e0: 4284 clrl %d4 <== NOT EXECUTED 6d8e2: 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 ); 6d8e4: 0686 0000 000c addil #12,%d6 <== NOT EXECUTED /* entry in the read */ return bytes_transferred; /* Indicate that there are no more */ /* entries to return */ } if( current_entry >= first_entry ) { 6d8ea: b68c cmpl %a4,%d3 <== NOT EXECUTED 6d8ec: 6c1c bges 6d90a <== NOT EXECUTED ); iop->offset = iop->offset + sizeof(struct dirent); bytes_transferred = bytes_transferred + sizeof( struct dirent ); } the_node = the_node->next; 6d8ee: 2452 moveal %a2@,%a2 <== NOT EXECUTED ssize_t imfs_dir_read( rtems_libio_t *iop, void *buffer, size_t count ) { 6d8f0: 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; 6d8f6: b68b cmpl %a3,%d3 <== NOT EXECUTED 6d8f8: 6c04 bges 6d8fe <== NOT EXECUTED current_entry = current_entry + sizeof(struct dirent) ){ if ( rtems_chain_is_tail( the_chain, the_node ) ){ 6d8fa: ba8a cmpl %a2,%d5 <== NOT EXECUTED 6d8fc: 66ec bnes 6d8ea <== NOT EXECUTED the_node = the_node->next; } /* Success */ return bytes_transferred; } 6d8fe: 2004 movel %d4,%d0 <== NOT EXECUTED 6d900: 4cee 3cfc fecc moveml %fp@(-308),%d2-%d7/%a2-%a5 <== NOT EXECUTED 6d906: 4e5e unlk %fp <== NOT EXECUTED 6d908: 4e75 rts <== NOT EXECUTED /* entries to return */ } if( current_entry >= first_entry ) { /* Move the entry to the return buffer */ tmp_dirent.d_off = current_entry; 6d90a: 2d43 fef8 movel %d3,%fp@(-264) <== NOT EXECUTED tmp_dirent.d_reclen = sizeof( struct dirent ); 6d90e: 303c 010c movew #268,%d0 <== 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 ); 6d912: 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; 6d914: 2d6a 0034 fef4 movel %a2@(52),%fp@(-268) <== NOT EXECUTED tmp_dirent.d_namlen = strlen( the_jnode->name ); 6d91a: 0682 0000 000c addil #12,%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 ); 6d920: 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 ); 6d924: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6d926: 4eb9 0007 5614 jsr 75614 <== NOT EXECUTED strcpy( tmp_dirent.d_name, the_jnode->name ); 6d92c: 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 ); 6d92e: 3d40 fefe movew %d0,%fp@(-258) <== NOT EXECUTED strcpy( tmp_dirent.d_name, the_jnode->name ); 6d932: 2f06 movel %d6,%sp@- <== NOT EXECUTED 6d934: 4eb9 0007 50a0 jsr 750a0 <== NOT EXECUTED memcpy( 6d93a: 4878 010c pea 10c <== NOT EXECUTED 6d93e: 2f07 movel %d7,%sp@- <== NOT EXECUTED 6d940: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 6d944: 4870 4800 pea %a0@(00000000,%d4:l) <== NOT EXECUTED 6d948: 4eb9 0007 29e0 jsr 729e0 <== NOT EXECUTED buffer + bytes_transferred, (void *)&tmp_dirent, sizeof( struct dirent ) ); iop->offset = iop->offset + sizeof(struct dirent); 6d94e: 203c 0000 010c movel #268,%d0 <== NOT EXECUTED 6d954: d1ad 0008 addl %d0,%a5@(8) <== NOT EXECUTED bytes_transferred = bytes_transferred + sizeof( struct dirent ); 6d958: 0684 0000 010c addil #268,%d4 <== NOT EXECUTED 6d95e: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 6d964: 6088 bras 6d8ee <== 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; 6d966: 4284 clrl %d4 <== NOT EXECUTED the_node = the_node->next; } /* Success */ return bytes_transferred; } 6d968: 2004 movel %d4,%d0 <== NOT EXECUTED 6d96a: 4cee 3cfc fecc moveml %fp@(-308),%d2-%d7/%a2-%a5 <== NOT EXECUTED 6d970: 4e5e unlk %fp <== NOT EXECUTED 6d972: 4e75 rts 0006d798 : */ int imfs_dir_rmnod( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 6d798: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 6d79c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6d79e: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 6d7a2: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 6d7a4: 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 ) ) 6d7a6: 200a movel %a2,%d0 <== NOT EXECUTED 6d7a8: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED 6d7ae: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 6d7b2: 6600 0092 bnew 6d846 <== NOT EXECUTED /* * You cannot remove the file system root node. */ if ( pathloc->mt_entry->mt_fs_root.node_access == pathloc->node_access ) 6d7b6: 206b 000c moveal %a3@(12),%a0 <== NOT EXECUTED 6d7ba: b5e8 0018 cmpal %a0@(24),%a2 <== NOT EXECUTED 6d7be: 6700 00a0 beqw 6d860 <== NOT EXECUTED /* * You cannot remove a mountpoint. */ if ( the_jnode->info.directory.mt_fs != NULL ) 6d7c2: 4aaa 0058 tstl %a2@(88) <== NOT EXECUTED 6d7c6: 6600 0098 bnew 6d860 <== NOT EXECUTED /* * Take the node out of the parent's chain that contains this node */ if ( the_jnode->Parent != NULL ) { 6d7ca: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 6d7ce: 670e beqs 6d7de <== NOT EXECUTED 6d7d0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6d7d2: 4eb9 0006 3b70 jsr 63b70 <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( (rtems_chain_node *) the_jnode ); the_jnode->Parent = NULL; 6d7d8: 588f addql #4,%sp <== NOT EXECUTED 6d7da: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED /* * Decrement the link counter and see if we can free the space. */ the_jnode->st_nlink--; 6d7de: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 6d7e2: 5380 subql #1,%d0 <== NOT EXECUTED 6d7e4: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( the_jnode ); 6d7e8: 42a7 clrl %sp@- <== NOT EXECUTED 6d7ea: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 6d7ee: 4eb9 0004 6274 jsr 46274 <== NOT EXECUTED 6d7f4: 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) ) { 6d7fa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6d7fc: 4eb9 0004 6426 jsr 46426 <== NOT EXECUTED 6d802: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 6d808: 4a80 tstl %d0 <== NOT EXECUTED 6d80a: 662c bnes 6d838 <== NOT EXECUTED 6d80c: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 6d810: 6626 bnes 6d838 <== NOT EXECUTED /* * Is the rtems_filesystem_current is this node? */ if ( rtems_filesystem_current.node_access == pathloc->node_access ) 6d812: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 6d818: 2653 moveal %a3@,%a3 <== NOT EXECUTED 6d81a: b7e8 0004 cmpal %a0@(4),%a3 <== NOT EXECUTED 6d81e: 675a beqs 6d87a <== NOT EXECUTED /* * Free memory associated with a memory file. */ free( the_jnode ); 6d820: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6d822: 4eb9 0004 61e4 jsr 461e4 <== NOT EXECUTED 6d828: 588f addql #4,%sp <== NOT EXECUTED 6d82a: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 6d82c: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 6d830: 266e fff4 moveal %fp@(-12),%a3 <== NOT EXECUTED 6d834: 4e5e unlk %fp <== NOT EXECUTED 6d836: 4e75 rts <== NOT EXECUTED 6d838: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 6d83c: 266e fff4 moveal %fp@(-12),%a3 <== NOT EXECUTED 6d840: 4e5e unlk %fp <== NOT EXECUTED /* * Free memory associated with a memory file. */ free( the_jnode ); 6d842: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 6d844: 4e75 rts <== NOT EXECUTED /* * You cannot remove a node that still has children */ if ( ! rtems_chain_is_empty( &the_jnode->info.directory.Entries ) ) rtems_set_errno_and_return_minus_one( ENOTEMPTY ); 6d846: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED free( the_jnode ); } return 0; } 6d84c: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 6d850: 266e fff4 moveal %fp@(-12),%a3 <== NOT EXECUTED /* * You cannot remove a node that still has children */ if ( ! rtems_chain_is_empty( &the_jnode->info.directory.Entries ) ) rtems_set_errno_and_return_minus_one( ENOTEMPTY ); 6d854: 2040 moveal %d0,%a0 <== NOT EXECUTED 6d856: 725a moveq #90,%d1 <== NOT EXECUTED free( the_jnode ); } return 0; } 6d858: 4e5e unlk %fp <== NOT EXECUTED /* * You cannot remove a node that still has children */ if ( ! rtems_chain_is_empty( &the_jnode->info.directory.Entries ) ) rtems_set_errno_and_return_minus_one( ENOTEMPTY ); 6d85a: 70ff moveq #-1,%d0 <== NOT EXECUTED 6d85c: 2081 movel %d1,%a0@ <== NOT EXECUTED free( the_jnode ); } return 0; } 6d85e: 4e75 rts <== NOT EXECUTED /* * You cannot remove a mountpoint. */ if ( the_jnode->info.directory.mt_fs != NULL ) rtems_set_errno_and_return_minus_one( EBUSY ); 6d860: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED free( the_jnode ); } return 0; } 6d866: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 6d86a: 266e fff4 moveal %fp@(-12),%a3 <== NOT EXECUTED /* * You cannot remove a mountpoint. */ if ( the_jnode->info.directory.mt_fs != NULL ) rtems_set_errno_and_return_minus_one( EBUSY ); 6d86e: 2040 moveal %d0,%a0 <== NOT EXECUTED 6d870: 7010 moveq #16,%d0 <== NOT EXECUTED 6d872: 2080 movel %d0,%a0@ <== NOT EXECUTED free( the_jnode ); } return 0; } 6d874: 4e5e unlk %fp <== NOT EXECUTED /* * You cannot remove a mountpoint. */ if ( the_jnode->info.directory.mt_fs != NULL ) rtems_set_errno_and_return_minus_one( EBUSY ); 6d876: 70ff moveq #-1,%d0 <== NOT EXECUTED free( the_jnode ); } return 0; } 6d878: 4e75 rts <== NOT EXECUTED /* * Is the rtems_filesystem_current is this node? */ if ( rtems_filesystem_current.node_access == pathloc->node_access ) rtems_filesystem_current.node_access = NULL; 6d87a: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED /* * Free memory associated with a memory file. */ free( the_jnode ); 6d87e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6d880: 4eb9 0004 61e4 jsr 461e4 <== NOT EXECUTED 6d886: 588f addql #4,%sp <== NOT EXECUTED 6d888: 4280 clrl %d0 <== NOT EXECUTED 6d88a: 60a0 bras 6d82c <== NOT EXECUTED 00060d32 : /* * Initialize useable but dummy databases */ void init_etc_passwd_group(void) { 60d32: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 60d36: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60d38: 2f02 movel %d2,%sp@- <== NOT EXECUTED FILE *fp; static char etc_passwd_initted = 0; if (etc_passwd_initted) 60d3a: 4a39 0009 a360 tstb 9a360 <== NOT EXECUTED 60d40: 670c beqs 60d4e <== NOT EXECUTED fprintf( fp, "root:x:0:root\n" "rtems:x:1:rtems\n" "tty:x:2:tty\n" ); fclose(fp); } } 60d42: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 60d46: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 60d4a: 4e5e unlk %fp <== NOT EXECUTED 60d4c: 4e75 rts <== NOT EXECUTED static char etc_passwd_initted = 0; if (etc_passwd_initted) return; etc_passwd_initted = 1; mkdir("/etc", 0777); 60d4e: 4878 01ff pea 1ff <== NOT EXECUTED FILE *fp; static char etc_passwd_initted = 0; if (etc_passwd_initted) return; etc_passwd_initted = 1; 60d52: 7001 moveq #1,%d0 <== NOT EXECUTED 60d54: 13c0 0009 a360 moveb %d0,9a360 <== NOT EXECUTED mkdir("/etc", 0777); 60d5a: 4879 0008 3003 pea 83003 <== NOT EXECUTED 60d60: 4eb9 0004 69ec jsr 469ec <== NOT EXECUTED /* * Initialize /etc/passwd */ if ((fp = fopen("/etc/passwd", "r")) != NULL) { 60d66: 4879 0008 198b pea 8198b <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 60d6c: 45f9 0007 0ec8 lea 70ec8 ,%a2 <== NOT EXECUTED 60d72: 4879 0008 3008 pea 83008 <== NOT EXECUTED 60d78: 4e92 jsr %a2@ <== NOT EXECUTED 60d7a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 60d80: 4a80 tstl %d0 <== NOT EXECUTED 60d82: 677e beqs 60e02 <== NOT EXECUTED fclose(fp); 60d84: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60d86: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED 60d8c: 588f addql #4,%sp <== NOT EXECUTED } /* * Initialize /etc/group */ if ((fp = fopen("/etc/group", "r")) != NULL) { 60d8e: 4879 0008 198b pea 8198b <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 60d94: 4879 0008 307b pea 8307b <== NOT EXECUTED 60d9a: 4e92 jsr %a2@ <== NOT EXECUTED 60d9c: 508f addql #8,%sp <== NOT EXECUTED 60d9e: 4a80 tstl %d0 <== NOT EXECUTED 60da0: 6716 beqs 60db8 <== NOT EXECUTED fclose(fp); 60da2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60da4: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED fprintf( fp, "root:x:0:root\n" "rtems:x:1:rtems\n" "tty:x:2:tty\n" ); fclose(fp); } } 60daa: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 60dae: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED /* * Initialize /etc/group */ if ((fp = fopen("/etc/group", "r")) != NULL) { fclose(fp); 60db2: 588f addql #4,%sp <== NOT EXECUTED fprintf( fp, "root:x:0:root\n" "rtems:x:1:rtems\n" "tty:x:2:tty\n" ); fclose(fp); } } 60db4: 4e5e unlk %fp <== NOT EXECUTED 60db6: 4e75 rts <== NOT EXECUTED * Initialize /etc/group */ if ((fp = fopen("/etc/group", "r")) != NULL) { fclose(fp); } else if ((fp = fopen("/etc/group", "w")) != NULL) { 60db8: 4879 0008 1637 pea 81637 <_CPU_m68k_BFFFO_table+0x132> <== NOT EXECUTED 60dbe: 4879 0008 307b pea 8307b <== NOT EXECUTED 60dc4: 4eb9 0007 0ec8 jsr 70ec8 <== NOT EXECUTED 60dca: 508f addql #8,%sp <== NOT EXECUTED 60dcc: 2400 movel %d0,%d2 <== NOT EXECUTED 60dce: 6700 ff72 beqw 60d42 <== NOT EXECUTED fprintf( fp, "root:x:0:root\n" 60dd2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60dd4: 4878 002a pea 2a <== NOT EXECUTED 60dd8: 4878 0001 pea 1 <== NOT EXECUTED 60ddc: 4879 0008 3086 pea 83086 <== NOT EXECUTED 60de2: 4eb9 0007 1a08 jsr 71a08 <== NOT EXECUTED "rtems:x:1:rtems\n" "tty:x:2:tty\n" ); fclose(fp); 60de8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60dea: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED } } 60df0: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 60df4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED } else if ((fp = fopen("/etc/group", "w")) != NULL) { fprintf( fp, "root:x:0:root\n" "rtems:x:1:rtems\n" "tty:x:2:tty\n" ); fclose(fp); 60df8: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED } } 60dfe: 4e5e unlk %fp <== NOT EXECUTED 60e00: 4e75 rts <== NOT EXECUTED * Initialize /etc/passwd */ if ((fp = fopen("/etc/passwd", "r")) != NULL) { fclose(fp); } else if ((fp = fopen("/etc/passwd", "w")) != NULL) { 60e02: 4879 0008 1637 pea 81637 <_CPU_m68k_BFFFO_table+0x132> <== NOT EXECUTED 60e08: 4879 0008 3008 pea 83008 <== NOT EXECUTED 60e0e: 4e92 jsr %a2@ <== NOT EXECUTED 60e10: 508f addql #8,%sp <== NOT EXECUTED 60e12: 2400 movel %d0,%d2 <== NOT EXECUTED 60e14: 6700 ff78 beqw 60d8e <== NOT EXECUTED fprintf(fp, "root:*:0:0:root::/:/bin/sh\n" 60e18: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60e1a: 4878 0066 pea 66 <== NOT EXECUTED 60e1e: 4878 0001 pea 1 <== NOT EXECUTED 60e22: 4879 0008 3014 pea 83014 <== NOT EXECUTED 60e28: 4eb9 0007 1a08 jsr 71a08 <== NOT EXECUTED "rtems:*:1:1:RTEMS Application::/:/bin/sh\n" "tty:!:2:2:tty owner::/:/bin/false\n" ); fclose(fp); 60e2e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60e30: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED 60e36: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60e3c: 6000 ff50 braw 60d8e <== NOT EXECUTED 0004acb8 : * This routine will initialize the chain control element that manages the * mount table chain. */ int init_fs_mount_table(void) { 4acb8: 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); 4acbc: 41f9 0005 a17a lea 5a17a ,%a0 <== NOT EXECUTED rtems_chain_initialize_empty ( &rtems_filesystem_mount_table_control ); return 0; } 4acc2: 4e5e unlk %fp <== NOT EXECUTED 4acc4: 4280 clrl %d0 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4acc6: 23c8 0005 a182 movel %a0,5a182 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4accc: 20bc 0005 a17e movel #369022,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 4acd2: 42b9 0005 a17e clrl 5a17e <== NOT EXECUTED 4acd8: 4e75 rts 000565c8 : int ioctl( int fd, ioctl_command_t command, ... ) { 565c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 565cc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 565ce: 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 ); 565d2: b4b9 0006 5478 cmpl 65478 ,%d2 <== NOT EXECUTED 565d8: 644e bccs 56628 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 565da: 2002 movel %d2,%d0 <== NOT EXECUTED 565dc: 2202 movel %d2,%d1 <== NOT EXECUTED 565de: e588 lsll #2,%d0 <== NOT EXECUTED 565e0: e989 lsll #4,%d1 <== NOT EXECUTED 565e2: 9280 subl %d0,%d1 <== NOT EXECUTED 565e4: 2279 0006 8010 moveal 68010 ,%a1 <== NOT EXECUTED 565ea: d282 addl %d2,%d1 <== NOT EXECUTED 565ec: e589 lsll #2,%d1 <== NOT EXECUTED 565ee: d3c1 addal %d1,%a1 <== NOT EXECUTED rtems_libio_check_is_open(iop); 565f0: 2029 000c movel %a1@(12),%d0 <== NOT EXECUTED 565f4: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 565fa: 672c beqs 56628 <== NOT EXECUTED va_start(ap, command); buffer = va_arg(ap, void *); 565fc: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED /* * Now process the ioctl(). */ if ( !iop->handlers ) 56600: 2069 0030 moveal %a1@(48),%a0 <== NOT EXECUTED 56604: 4a88 tstl %a0 <== NOT EXECUTED 56606: 6720 beqs 56628 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->ioctl_h ) 56608: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 5660c: 4a88 tstl %a0 <== NOT EXECUTED 5660e: 672e beqs 5663e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); rc = (*iop->handlers->ioctl_h)( iop, command, buffer ); 56610: 2f00 movel %d0,%sp@- <== NOT EXECUTED 56612: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 56616: 2f09 movel %a1,%sp@- <== NOT EXECUTED 56618: 4e90 jsr %a0@ <== NOT EXECUTED return rc; } 5661a: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->ioctl_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); rc = (*iop->handlers->ioctl_h)( iop, command, buffer ); 5661e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return rc; } 56624: 4e5e unlk %fp <== NOT EXECUTED 56626: 4e75 rts <== NOT EXECUTED /* * Now process the ioctl(). */ if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); 56628: 4eb9 0005 7168 jsr 57168 <__errno> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); rc = (*iop->handlers->ioctl_h)( iop, command, buffer ); return rc; } 5662e: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED /* * Now process the ioctl(). */ if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); 56632: 2040 moveal %d0,%a0 <== NOT EXECUTED 56634: 7009 moveq #9,%d0 <== NOT EXECUTED 56636: 2080 movel %d0,%a0@ <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); rc = (*iop->handlers->ioctl_h)( iop, command, buffer ); return rc; } 56638: 4e5e unlk %fp <== NOT EXECUTED /* * Now process the ioctl(). */ if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); 5663a: 70ff moveq #-1,%d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); rc = (*iop->handlers->ioctl_h)( iop, command, buffer ); return rc; } 5663c: 4e75 rts <== NOT EXECUTED if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->ioctl_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 5663e: 4eb9 0005 7168 jsr 57168 <__errno> <== NOT EXECUTED rc = (*iop->handlers->ioctl_h)( iop, command, buffer ); return rc; } 56644: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->ioctl_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 56648: 2040 moveal %d0,%a0 <== NOT EXECUTED rc = (*iop->handlers->ioctl_h)( iop, command, buffer ); return rc; } 5664a: 4e5e unlk %fp <== NOT EXECUTED if ( !iop->handlers ) rtems_set_errno_and_return_minus_one( EBADF ); if ( !iop->handlers->ioctl_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 5664c: 70ff moveq #-1,%d0 <== NOT EXECUTED 5664e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED rc = (*iop->handlers->ioctl_h)( iop, command, buffer ); return rc; } 56654: 4e75 rts <== NOT EXECUTED ... 0004404e : /* * Process a single input character */ static int iproc (unsigned char c, struct rtems_termios_tty *tty) { 4404e: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 44052: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 44056: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4405a: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if (tty->termios.c_iflag & ISTRIP) 4405e: 242a 0030 movel %a2@(48),%d2 <== NOT EXECUTED /* * Process a single input character */ static int iproc (unsigned char c, struct rtems_termios_tty *tty) { 44062: 1600 moveb %d0,%d3 <== NOT EXECUTED if (tty->termios.c_iflag & ISTRIP) 44064: 0802 0005 btst #5,%d2 <== NOT EXECUTED 44068: 6704 beqs 4406e <== NOT EXECUTED c &= 0x7f; 4406a: 767f moveq #127,%d3 <== NOT EXECUTED 4406c: c680 andl %d0,%d3 <== NOT EXECUTED if (tty->termios.c_iflag & IUCLC) 4406e: 0802 0009 btst #9,%d2 <== NOT EXECUTED 44072: 671e beqs 44092 <== NOT EXECUTED c = tolower (c); 44074: 2079 0005 8620 moveal 58620 <__ctype_ptr>,%a0 <== NOT EXECUTED 4407a: 4281 clrl %d1 <== NOT EXECUTED 4407c: 1203 moveb %d3,%d1 <== NOT EXECUTED 4407e: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 44082: 49c0 extbl %d0 <== NOT EXECUTED 44084: 0800 0000 btst #0,%d0 <== NOT EXECUTED 44088: 6706 beqs 44090 <== NOT EXECUTED 4408a: 0681 0000 0020 addil #32,%d1 <== NOT EXECUTED 44090: 1601 moveb %d1,%d3 <== NOT EXECUTED if (c == '\r') { 44092: 4280 clrl %d0 <== NOT EXECUTED 44094: 1003 moveb %d3,%d0 <== NOT EXECUTED 44096: 720d moveq #13,%d1 <== NOT EXECUTED 44098: b280 cmpl %d0,%d1 <== NOT EXECUTED 4409a: 6700 00ba beqw 44156 <== NOT EXECUTED if (tty->termios.c_iflag & IGNCR) return 0; if (tty->termios.c_iflag & ICRNL) c = '\n'; } else if ((c == '\n') && (tty->termios.c_iflag & INLCR)) { 4409e: 720a moveq #10,%d1 <== NOT EXECUTED 440a0: b280 cmpl %d0,%d1 <== NOT EXECUTED 440a2: 673a beqs 440de <== NOT EXECUTED c = '\r'; } if ((c != '\0') && (tty->termios.c_lflag & ICANON)) { 440a4: 4a03 tstb %d3 <== NOT EXECUTED 440a6: 663e bnes 440e6 <== NOT EXECUTED } /* * FIXME: Should do IMAXBEL handling somehow */ if (tty->ccount < (CBUFSIZE-1)) { 440a8: 2039 0005 8554 movel 58554 ,%d0 <== NOT EXECUTED 440ae: 222a 0020 movel %a2@(32),%d1 <== NOT EXECUTED 440b2: 5380 subql #1,%d0 <== NOT EXECUTED 440b4: b081 cmpl %d1,%d0 <== NOT EXECUTED 440b6: 6f00 00a2 blew 4415a <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) 440ba: 7008 moveq #8,%d0 <== NOT EXECUTED 440bc: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 440c0: 6600 00b2 bnew 44174 <== NOT EXECUTED echo (c, tty); tty->cbuf[tty->ccount++] = c; 440c4: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 440c8: 1183 1800 moveb %d3,%a0@(00000000,%d1:l) <== NOT EXECUTED 440cc: 5281 addql #1,%d1 <== NOT EXECUTED 440ce: 4280 clrl %d0 <== NOT EXECUTED 440d0: 2541 0020 movel %d1,%a2@(32) <== NOT EXECUTED } return 0; } 440d4: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 440da: 4e5e unlk %fp <== NOT EXECUTED 440dc: 4e75 rts <== NOT EXECUTED if (tty->termios.c_iflag & IGNCR) return 0; if (tty->termios.c_iflag & ICRNL) c = '\n'; } else if ((c == '\n') && (tty->termios.c_iflag & INLCR)) { 440de: 0802 0006 btst #6,%d2 <== NOT EXECUTED 440e2: 6600 00b6 bnew 4419a <== NOT EXECUTED c = '\r'; } if ((c != '\0') && (tty->termios.c_lflag & ICANON)) { 440e6: 242a 003c movel %a2@(60),%d2 <== NOT EXECUTED 440ea: 0802 0001 btst #1,%d2 <== NOT EXECUTED 440ee: 67b8 beqs 440a8 <== NOT EXECUTED if (c == tty->termios.c_cc[VERASE]) { 440f0: 4280 clrl %d0 <== NOT EXECUTED 440f2: 102a 0043 moveb %a2@(67),%d0 <== NOT EXECUTED 440f6: 4281 clrl %d1 <== NOT EXECUTED 440f8: 1203 moveb %d3,%d1 <== NOT EXECUTED 440fa: b280 cmpl %d0,%d1 <== NOT EXECUTED 440fc: 6700 00a2 beqw 441a0 <== NOT EXECUTED erase (tty, 0); return 0; } else if (c == tty->termios.c_cc[VKILL]) { 44100: 4280 clrl %d0 <== NOT EXECUTED 44102: 102a 0044 moveb %a2@(68),%d0 <== NOT EXECUTED 44106: b280 cmpl %d0,%d1 <== NOT EXECUTED 44108: 6700 0116 beqw 44220 <== NOT EXECUTED erase (tty, 1); return 0; } else if (c == tty->termios.c_cc[VEOF]) { 4410c: 4280 clrl %d0 <== NOT EXECUTED 4410e: 102a 0045 moveb %a2@(69),%d0 <== NOT EXECUTED 44112: b280 cmpl %d0,%d1 <== NOT EXECUTED 44114: 6734 beqs 4414a <== NOT EXECUTED return 1; } else if (c == '\n') { 44116: 700a moveq #10,%d0 <== NOT EXECUTED 44118: b081 cmpl %d1,%d0 <== NOT EXECUTED 4411a: 6700 00ba beqw 441d6 <== NOT EXECUTED if (tty->termios.c_lflag & (ECHO | ECHONL)) echo (c, tty); tty->cbuf[tty->ccount++] = c; return 1; } else if ((c == tty->termios.c_cc[VEOL]) 4411e: 4280 clrl %d0 <== NOT EXECUTED 44120: 102a 004c moveb %a2@(76),%d0 <== NOT EXECUTED 44124: b280 cmpl %d0,%d1 <== NOT EXECUTED 44126: 670c beqs 44134 <== NOT EXECUTED 44128: 4280 clrl %d0 <== NOT EXECUTED 4412a: 102a 0051 moveb %a2@(81),%d0 <== NOT EXECUTED 4412e: b280 cmpl %d0,%d1 <== NOT EXECUTED 44130: 6600 ff76 bnew 440a8 <== NOT EXECUTED || (c == tty->termios.c_cc[VEOL2])) { if (tty->termios.c_lflag & ECHO) 44134: 44c2 movew %d2,%ccr <== NOT EXECUTED 44136: 6b7e bmis 441b6 <== NOT EXECUTED echo (c, tty); tty->cbuf[tty->ccount++] = c; 44138: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 4413c: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 44140: 1183 0800 moveb %d3,%a0@(00000000,%d0:l) <== NOT EXECUTED 44144: 5280 addql #1,%d0 <== NOT EXECUTED 44146: 2540 0020 movel %d0,%a2@(32) <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) echo (c, tty); tty->cbuf[tty->ccount++] = c; } return 0; } 4414a: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 44150: 4e5e unlk %fp <== NOT EXECUTED } else if ((c == tty->termios.c_cc[VEOL]) || (c == tty->termios.c_cc[VEOL2])) { if (tty->termios.c_lflag & ECHO) echo (c, tty); tty->cbuf[tty->ccount++] = c; 44152: 7001 moveq #1,%d0 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) echo (c, tty); tty->cbuf[tty->ccount++] = c; } return 0; } 44154: 4e75 rts <== NOT EXECUTED if (tty->termios.c_iflag & ISTRIP) c &= 0x7f; if (tty->termios.c_iflag & IUCLC) c = tolower (c); if (c == '\r') { if (tty->termios.c_iflag & IGNCR) 44156: 4a02 tstb %d2 <== NOT EXECUTED 44158: 6c0c bges 44166 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) echo (c, tty); tty->cbuf[tty->ccount++] = c; } return 0; } 4415a: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 44160: 4e5e unlk %fp <== 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; 44162: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 44164: 4e75 rts <== NOT EXECUTED if (tty->termios.c_iflag & IUCLC) c = tolower (c); if (c == '\r') { if (tty->termios.c_iflag & IGNCR) return 0; if (tty->termios.c_iflag & ICRNL) 44166: 0802 0008 btst #8,%d2 <== NOT EXECUTED 4416a: 6700 ff7a beqw 440e6 <== NOT EXECUTED 4416e: 760a moveq #10,%d3 <== NOT EXECUTED 44170: 6000 ff74 braw 440e6 <== NOT EXECUTED /* * FIXME: Should do IMAXBEL handling somehow */ if (tty->ccount < (CBUFSIZE-1)) { if (tty->termios.c_lflag & ECHO) echo (c, tty); 44174: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44176: 4280 clrl %d0 <== NOT EXECUTED 44178: 1003 moveb %d3,%d0 <== NOT EXECUTED 4417a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4417c: 4eba fc34 jsr %pc@(43db2 ) <== NOT EXECUTED 44180: 508f addql #8,%sp <== NOT EXECUTED 44182: 222a 0020 movel %a2@(32),%d1 <== NOT EXECUTED tty->cbuf[tty->ccount++] = c; 44186: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 4418a: 1183 1800 moveb %d3,%a0@(00000000,%d1:l) <== NOT EXECUTED 4418e: 5281 addql #1,%d1 <== NOT EXECUTED 44190: 2541 0020 movel %d1,%a2@(32) <== NOT EXECUTED 44194: 4280 clrl %d0 <== NOT EXECUTED 44196: 6000 ff3c braw 440d4 <== NOT EXECUTED 4419a: 760d moveq #13,%d3 <== NOT EXECUTED 4419c: 6000 ff48 braw 440e6 <== NOT EXECUTED else if ((c == '\n') && (tty->termios.c_iflag & INLCR)) { c = '\r'; } if ((c != '\0') && (tty->termios.c_lflag & ICANON)) { if (c == tty->termios.c_cc[VERASE]) { erase (tty, 0); 441a0: 42a7 clrl %sp@- <== NOT EXECUTED 441a2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 441a4: 4eba fcae jsr %pc@(43e54 ) <== NOT EXECUTED 441a8: 508f addql #8,%sp <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) echo (c, tty); tty->cbuf[tty->ccount++] = c; } return 0; } 441aa: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 441b0: 4e5e unlk %fp <== NOT EXECUTED else if ((c == '\n') && (tty->termios.c_iflag & INLCR)) { c = '\r'; } if ((c != '\0') && (tty->termios.c_lflag & ICANON)) { if (c == tty->termios.c_cc[VERASE]) { erase (tty, 0); 441b2: 4280 clrl %d0 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) echo (c, tty); tty->cbuf[tty->ccount++] = c; } return 0; } 441b4: 4e75 rts <== NOT EXECUTED return 1; } else if ((c == tty->termios.c_cc[VEOL]) || (c == tty->termios.c_cc[VEOL2])) { if (tty->termios.c_lflag & ECHO) echo (c, tty); 441b6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 441b8: 2f01 movel %d1,%sp@- <== NOT EXECUTED 441ba: 4eba fbf6 jsr %pc@(43db2 ) <== NOT EXECUTED tty->cbuf[tty->ccount++] = c; 441be: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 441c2: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 441c6: 1183 0800 moveb %d3,%a0@(00000000,%d0:l) <== NOT EXECUTED 441ca: 5280 addql #1,%d0 <== NOT EXECUTED 441cc: 2540 0020 movel %d0,%a2@(32) <== NOT EXECUTED return 1; } else if ((c == tty->termios.c_cc[VEOL]) || (c == tty->termios.c_cc[VEOL2])) { if (tty->termios.c_lflag & ECHO) echo (c, tty); 441d0: 508f addql #8,%sp <== NOT EXECUTED 441d2: 6000 ff76 braw 4414a <== NOT EXECUTED } else if (c == tty->termios.c_cc[VEOF]) { return 1; } else if (c == '\n') { if (tty->termios.c_lflag & (ECHO | ECHONL)) 441d6: 7248 moveq #72,%d1 <== NOT EXECUTED 441d8: c481 andl %d1,%d2 <== NOT EXECUTED 441da: 6620 bnes 441fc <== NOT EXECUTED echo (c, tty); tty->cbuf[tty->ccount++] = c; 441dc: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 441e0: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 441e4: 720a moveq #10,%d1 <== NOT EXECUTED 441e6: 1181 0800 moveb %d1,%a0@(00000000,%d0:l) <== NOT EXECUTED 441ea: 5280 addql #1,%d0 <== NOT EXECUTED 441ec: 2540 0020 movel %d0,%a2@(32) <== NOT EXECUTED 441f0: 7001 moveq #1,%d0 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) echo (c, tty); tty->cbuf[tty->ccount++] = c; } return 0; } 441f2: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 441f8: 4e5e unlk %fp <== NOT EXECUTED 441fa: 4e75 rts <== NOT EXECUTED else if (c == tty->termios.c_cc[VEOF]) { return 1; } else if (c == '\n') { if (tty->termios.c_lflag & (ECHO | ECHONL)) echo (c, tty); 441fc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 441fe: 4878 000a pea a <== NOT EXECUTED 44202: 4eba fbae jsr %pc@(43db2 ) <== NOT EXECUTED tty->cbuf[tty->ccount++] = c; 44206: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 4420a: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 4420e: 720a moveq #10,%d1 <== NOT EXECUTED 44210: 1181 0800 moveb %d1,%a0@(00000000,%d0:l) <== NOT EXECUTED 44214: 5280 addql #1,%d0 <== NOT EXECUTED 44216: 2540 0020 movel %d0,%a2@(32) <== NOT EXECUTED else if (c == tty->termios.c_cc[VEOF]) { return 1; } else if (c == '\n') { if (tty->termios.c_lflag & (ECHO | ECHONL)) echo (c, tty); 4421a: 508f addql #8,%sp <== NOT EXECUTED tty->cbuf[tty->ccount++] = c; 4421c: 7001 moveq #1,%d0 <== NOT EXECUTED 4421e: 60d2 bras 441f2 <== NOT EXECUTED if (c == tty->termios.c_cc[VERASE]) { erase (tty, 0); return 0; } else if (c == tty->termios.c_cc[VKILL]) { erase (tty, 1); 44220: 4878 0001 pea 1 <== NOT EXECUTED 44224: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44226: 4eba fc2c jsr %pc@(43e54 ) <== NOT EXECUTED 4422a: 508f addql #8,%sp <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) echo (c, tty); tty->cbuf[tty->ccount++] = c; } return 0; } 4422c: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 44232: 4e5e unlk %fp <== NOT EXECUTED if (c == tty->termios.c_cc[VERASE]) { erase (tty, 0); return 0; } else if (c == tty->termios.c_cc[VKILL]) { erase (tty, 1); 44234: 4280 clrl %d0 <== NOT EXECUTED if (tty->termios.c_lflag & ECHO) echo (c, tty); tty->cbuf[tty->ccount++] = c; } return 0; } 44236: 4e75 rts 000559b8 : #include int isatty( int fd ) { 559b8: 4e56 ffb4 linkw %fp,#-76 <== NOT EXECUTED struct stat buf; if (fstat (fd, &buf) < 0) 559bc: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 559c0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 559c4: 4eb9 0005 58c0 jsr 558c0 <== NOT EXECUTED 559ca: 508f addql #8,%sp <== NOT EXECUTED 559cc: 4a80 tstl %d0 <== NOT EXECUTED 559ce: 6d1c blts 559ec <== NOT EXECUTED 559d0: 202e ffc2 movel %fp@(-62),%d0 <== NOT EXECUTED 559d4: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 559da: 0c80 0000 2000 cmpil #8192,%d0 <== NOT EXECUTED 559e0: 57c1 seq %d1 <== NOT EXECUTED 559e2: 1001 moveb %d1,%d0 <== NOT EXECUTED 559e4: 49c0 extbl %d0 <== NOT EXECUTED if (S_ISCHR (buf.st_mode)) return 1; return 0; } 559e6: 4e5e unlk %fp <== NOT EXECUTED int fd ) { struct stat buf; if (fstat (fd, &buf) < 0) 559e8: 4480 negl %d0 <== NOT EXECUTED if (S_ISCHR (buf.st_mode)) return 1; return 0; } 559ea: 4e75 rts <== NOT EXECUTED 559ec: 4e5e unlk %fp <== NOT EXECUTED int fd ) { struct stat buf; if (fstat (fd, &buf) < 0) 559ee: 4280 clrl %d0 <== NOT EXECUTED if (S_ISCHR (buf.st_mode)) return 1; return 0; } 559f0: 4e75 rts <== NOT EXECUTED ... 00045d2c : int kill( pid_t pid, int sig ) { 45d2c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return killinfo( pid, sig, NULL ); 45d30: 42a7 clrl %sp@- <== NOT EXECUTED 45d32: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45d36: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45d3a: 4eb9 0004 c824 jsr 4c824 <== NOT EXECUTED } 45d40: 4e5e unlk %fp <== NOT EXECUTED 45d42: 4e75 rts 00055e8c : int killinfo( pid_t pid, int sig, const union sigval *value ) { 55e8c: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 55e90: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 55e94: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED /* * Only supported for the "calling process" (i.e. this node). */ if ( pid != getpid() ) 55e98: 4eb9 0005 59a4 jsr 559a4 <== NOT EXECUTED 55e9e: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 55ea2: 6600 026e bnew 56112 <== NOT EXECUTED /* * Validate the signal passed. */ if ( !sig ) 55ea6: 4a85 tstl %d5 <== NOT EXECUTED 55ea8: 6700 0280 beqw 5612a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(sig) ) 55eac: 2205 movel %d5,%d1 <== NOT EXECUTED 55eae: 5381 subql #1,%d1 <== NOT EXECUTED 55eb0: 701f moveq #31,%d0 <== NOT EXECUTED 55eb2: b081 cmpl %d1,%d0 <== NOT EXECUTED 55eb4: 6500 0274 bcsw 5612a <== NOT EXECUTED /* * If the signal is being ignored, then we are out of here. */ if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) { 55eb8: 2005 movel %d5,%d0 <== NOT EXECUTED 55eba: 2c05 movel %d5,%d6 <== NOT EXECUTED 55ebc: e588 lsll #2,%d0 <== NOT EXECUTED 55ebe: e98e lsll #4,%d6 <== NOT EXECUTED 55ec0: 9c80 subl %d0,%d6 <== NOT EXECUTED 55ec2: 2046 moveal %d6,%a0 <== NOT EXECUTED 55ec4: d1fc 0005 a18e addal #369038,%a0 <== NOT EXECUTED 55eca: 7001 moveq #1,%d0 <== NOT EXECUTED 55ecc: b090 cmpl %a0@,%d0 <== NOT EXECUTED 55ece: 6700 0148 beqw 56018 <== 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 ) ) 55ed2: 7008 moveq #8,%d0 <== NOT EXECUTED 55ed4: b085 cmpl %d5,%d0 <== NOT EXECUTED 55ed6: 6700 00e0 beqw 55fb8 <== NOT EXECUTED 55eda: 103c 0004 moveb #4,%d0 <== NOT EXECUTED 55ede: b085 cmpl %d5,%d0 <== NOT EXECUTED 55ee0: 6700 00d6 beqw 55fb8 <== NOT EXECUTED 55ee4: 103c 000b moveb #11,%d0 <== NOT EXECUTED 55ee8: b085 cmpl %d5,%d0 <== NOT EXECUTED 55eea: 6700 00cc beqw 55fb8 <== NOT EXECUTED return pthread_kill( pthread_self(), sig ); mask = signo_to_mask( sig ); 55eee: 7601 moveq #1,%d3 <== NOT EXECUTED * Build up a siginfo structure */ siginfo = &siginfo_struct; siginfo->si_signo = sig; siginfo->si_code = SI_USER; 55ef0: 7001 moveq #1,%d0 <== NOT EXECUTED */ if ( (sig == SIGFPE) || (sig == SIGILL) || (sig == SIGSEGV ) ) return pthread_kill( pthread_self(), sig ); mask = signo_to_mask( sig ); 55ef2: e3ab lsll %d1,%d3 <== NOT EXECUTED /* * Build up a siginfo structure */ siginfo = &siginfo_struct; siginfo->si_signo = sig; 55ef4: 2d45 fff4 movel %d5,%fp@(-12) <== NOT EXECUTED siginfo->si_code = SI_USER; 55ef8: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED if ( !value ) { 55efc: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 55f00: 6700 0208 beqw 5610a <== NOT EXECUTED siginfo->si_value.sival_int = 0; } else { siginfo->si_value = *value; 55f04: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 55f08: 2d50 fffc movel %a0@,%fp@(-4) <== NOT EXECUTED 55f0c: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 55f12: 5280 addql #1,%d0 <== NOT EXECUTED 55f14: 23c0 0005 9c7c movel %d0,59c7c <_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; 55f1a: 2679 0005 9d3a moveal 59d3a <_Thread_Executing>,%a3 <== NOT EXECUTED api = the_thread->API_Extensions[ THREAD_API_POSIX ]; if ( _POSIX_signals_Is_interested( api, mask ) ) { 55f20: 206b 0110 moveal %a3@(272),%a0 <== NOT EXECUTED 55f24: 2028 00c4 movel %a0@(196),%d0 <== NOT EXECUTED 55f28: 2203 movel %d3,%d1 <== NOT EXECUTED 55f2a: 4680 notl %d0 <== NOT EXECUTED 55f2c: c280 andl %d0,%d1 <== NOT EXECUTED 55f2e: 6640 bnes 55f70 <== NOT EXECUTED goto process_it; 55f30: 243c 0005 a312 movel #369426,%d2 <== 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 ; 55f36: 2442 moveal %d2,%a2 <== NOT EXECUTED 55f38: 205a moveal %a2@+,%a0 <== NOT EXECUTED !_Chain_Is_tail( the_chain, the_node ) ; 55f3a: b5c8 cmpal %a0,%a2 <== NOT EXECUTED 55f3c: 6700 00e6 beqw 56024 <== NOT EXECUTED the_node = the_node->next ) { the_thread = (Thread_Control *)the_node; api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 55f40: 2268 0110 moveal %a0@(272),%a1 <== NOT EXECUTED if ((the_thread->Wait.option & mask) || (~api->signals_blocked & mask)) { 55f44: 2003 movel %d3,%d0 <== NOT EXECUTED for ( the_node = the_chain->first ; !_Chain_Is_tail( the_chain, the_node ) ; the_node = the_node->next ) { the_thread = (Thread_Control *)the_node; 55f46: 2648 moveal %a0,%a3 <== NOT EXECUTED api = the_thread->API_Extensions[ THREAD_API_POSIX ]; if ((the_thread->Wait.option & mask) || (~api->signals_blocked & mask)) { 55f48: c0a8 0030 andl %a0@(48),%d0 <== NOT EXECUTED 55f4c: 6622 bnes 55f70 <== NOT EXECUTED 55f4e: 2029 00c4 movel %a1@(196),%d0 <== NOT EXECUTED 55f52: 2203 movel %d3,%d1 <== NOT EXECUTED 55f54: 4680 notl %d0 <== NOT EXECUTED 55f56: c280 andl %d0,%d1 <== NOT EXECUTED 55f58: 6616 bnes 55f70 <== 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 ) { 55f5a: 2050 moveal %a0@,%a0 <== NOT EXECUTED the_thread = (Thread_Control *)the_node; 55f5c: 2648 moveal %a0,%a3 <== 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 ) ; 55f5e: b5c8 cmpal %a0,%a2 <== NOT EXECUTED 55f60: 6700 00c2 beqw 56024 <== NOT EXECUTED the_node = the_node->next ) { the_thread = (Thread_Control *)the_node; api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 55f64: 2268 0110 moveal %a0@(272),%a1 <== NOT EXECUTED if ((the_thread->Wait.option & mask) || (~api->signals_blocked & mask)) { 55f68: 2003 movel %d3,%d0 <== NOT EXECUTED 55f6a: c0a8 0030 andl %a0@(48),%d0 <== NOT EXECUTED 55f6e: 67de beqs 55f4e <== NOT EXECUTED * evaluate the signals pending. */ process_it: the_thread->do_post_task_switch_extension = true; 55f70: 7001 moveq #1,%d0 <== NOT EXECUTED 55f72: 1740 0075 moveb %d0,%a3@(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 ) ) { 55f76: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 55f7a: 2f05 movel %d5,%sp@- <== NOT EXECUTED 55f7c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 55f7e: 4eb9 0005 618c jsr 5618c <_POSIX_signals_Unblock_thread> <== NOT EXECUTED 55f84: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 55f8a: 4a00 tstb %d0 <== NOT EXECUTED 55f8c: 6618 bnes 55fa6 <== 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 ); 55f8e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 55f90: 4eb9 0005 615c jsr 5615c <_POSIX_signals_Set_process_signals> <== NOT EXECUTED if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) { 55f96: 588f addql #4,%sp <== NOT EXECUTED 55f98: 41f9 0005 a186 lea 5a186 <_POSIX_signals_Vectors>,%a0 <== NOT EXECUTED 55f9e: 7002 moveq #2,%d0 <== NOT EXECUTED 55fa0: b0b0 6800 cmpl %a0@(00000000,%d6:l),%d0 <== NOT EXECUTED 55fa4: 672e beqs 55fd4 <== NOT EXECUTED psiginfo->Info = *siginfo; _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); } _Thread_Enable_dispatch(); 55fa6: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 55fac: 4280 clrl %d0 <== NOT EXECUTED return 0; } 55fae: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED 55fb4: 4e5e unlk %fp <== NOT EXECUTED 55fb6: 4e75 rts <== NOT EXECUTED * be directed to the executing thread such as those caused by hardware * faults. */ if ( (sig == SIGFPE) || (sig == SIGILL) || (sig == SIGSEGV ) ) return pthread_kill( pthread_self(), sig ); 55fb8: 4eb9 0005 63b0 jsr 563b0 <== NOT EXECUTED 55fbe: 2f05 movel %d5,%sp@- <== NOT EXECUTED 55fc0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 55fc2: 4eb9 0005 62d0 jsr 562d0 <== NOT EXECUTED 55fc8: 508f addql #8,%sp <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); } _Thread_Enable_dispatch(); return 0; } 55fca: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED 55fd0: 4e5e unlk %fp <== NOT EXECUTED 55fd2: 4e75 rts <== NOT EXECUTED _POSIX_signals_Set_process_signals( mask ); if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) { psiginfo = (POSIX_signals_Siginfo_node *) 55fd4: 4879 0005 a306 pea 5a306 <_POSIX_signals_Inactive_siginfo> <== NOT EXECUTED 55fda: 4eb9 0004 bb9c jsr 4bb9c <_Chain_Get> <== NOT EXECUTED _Chain_Get( &_POSIX_signals_Inactive_siginfo ); if ( !psiginfo ) { 55fe0: 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 *) 55fe2: 2040 moveal %d0,%a0 <== NOT EXECUTED _Chain_Get( &_POSIX_signals_Inactive_siginfo ); if ( !psiginfo ) { 55fe4: 4a80 tstl %d0 <== NOT EXECUTED 55fe6: 6700 015a beqw 56142 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EAGAIN ); } psiginfo->Info = *siginfo; 55fea: 216e fff4 0008 movel %fp@(-12),%a0@(8) <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 55ff0: 0686 0005 a356 addil #369494,%d6 <== NOT EXECUTED _Chain_Get( &_POSIX_signals_Inactive_siginfo ); if ( !psiginfo ) { rtems_set_errno_and_return_minus_one( EAGAIN ); } psiginfo->Info = *siginfo; 55ff6: 216e fff8 000c movel %fp@(-8),%a0@(12) <== NOT EXECUTED 55ffc: 216e fffc 0010 movel %fp@(-4),%a0@(16) <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 56002: 2f00 movel %d0,%sp@- <== NOT EXECUTED 56004: 2f06 movel %d6,%sp@- <== NOT EXECUTED 56006: 4eb9 0004 6824 jsr 46824 <_Chain_Append> <== NOT EXECUTED 5600c: 508f addql #8,%sp <== NOT EXECUTED } _Thread_Enable_dispatch(); 5600e: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 56014: 4280 clrl %d0 <== NOT EXECUTED 56016: 6096 bras 55fae <== NOT EXECUTED return 0; } 56018: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED 5601e: 4e5e unlk %fp <== NOT EXECUTED /* * If the signal is being ignored, then we are out of here. */ if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) { 56020: 4200 clrb %d0 <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); } _Thread_Enable_dispatch(); return 0; } 56022: 4e75 rts <== 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 ) ; 56024: 0682 0000 000c addil #12,%d2 <== NOT EXECUTED */ /* XXX violation of visibility -- need to define thread queue support */ for( index=0 ; index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ; 5602a: 0c82 0005 a342 cmpil #369474,%d2 <== NOT EXECUTED 56030: 6600 ff04 bnew 55f36 <== NOT EXECUTED * * + rtems internal threads do not receive signals. */ interested_thread = NULL; interested_priority = PRIORITY_MAXIMUM + 1; 56034: 4280 clrl %d0 <== NOT EXECUTED 56036: 1039 0005 80f2 moveb 580f2 ,%d0 <== NOT EXECUTED 5603c: 2800 movel %d0,%d4 <== NOT EXECUTED 5603e: 5284 addql #1,%d4 <== NOT EXECUTED 56040: 49f9 0005 9c3c lea 59c3c <_Objects_Information_table+0x8>,%a4 <== NOT EXECUTED 56046: 9bcd subal %a5,%a5 <== NOT EXECUTED the_api++ ) { /* * Thie can occur when no one is interested and ITRON is not configured. */ if ( !_Objects_Information_table[ the_api ] ) 56048: 2054 moveal %a4@,%a0 <== NOT EXECUTED 5604a: 4a88 tstl %a0 <== NOT EXECUTED 5604c: 6700 008c beqw 560da <== NOT EXECUTED continue; the_info = _Objects_Information_table[ the_api ][ 1 ]; 56050: 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 ) 56054: 4a88 tstl %a0 <== NOT EXECUTED 56056: 6700 0082 beqw 560da <== NOT EXECUTED continue; maximum = the_info->maximum; object_table = the_info->local_table; 5605a: 2028 001a movel %a0@(26),%d0 <== NOT EXECUTED * structure for a particular manager may not be installed. */ if ( !the_info ) continue; maximum = the_info->maximum; 5605e: 4287 clrl %d7 <== NOT EXECUTED 56060: 3e28 000e movew %a0@(14),%d7 <== NOT EXECUTED object_table = the_info->local_table; for ( index = 1 ; index <= maximum ; index++ ) { 56064: 4a87 tstl %d7 <== NOT EXECUTED 56066: 6772 beqs 560da <== NOT EXECUTED 56068: 2640 moveal %d0,%a3 <== NOT EXECUTED 5606a: 588b addql #4,%a3 <== NOT EXECUTED the_thread = (Thread_Control *) object_table[ index ]; 5606c: 2253 moveal %a3@,%a1 <== NOT EXECUTED continue; maximum = the_info->maximum; object_table = the_info->local_table; for ( index = 1 ; index <= maximum ; index++ ) { 5606e: 347c 0001 moveaw #1,%a2 <== NOT EXECUTED the_thread = (Thread_Control *) object_table[ index ]; if ( !the_thread ) 56072: 4a89 tstl %a1 <== NOT EXECUTED 56074: 674a beqs 560c0 <== 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 ) 56076: 2429 0014 movel %a1@(20),%d2 <== NOT EXECUTED 5607a: b882 cmpl %d2,%d4 <== NOT EXECUTED 5607c: 6542 bcss 560c0 <== NOT EXECUTED /* * If this thread is not interested, then go on to the next thread. */ api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 5607e: 2069 0110 moveal %a1@(272),%a0 <== NOT EXECUTED if ( !api || !_POSIX_signals_Is_interested( api, mask ) ) 56082: 4a88 tstl %a0 <== NOT EXECUTED 56084: 673a beqs 560c0 <== NOT EXECUTED 56086: 2028 00c4 movel %a0@(196),%d0 <== NOT EXECUTED 5608a: 2203 movel %d3,%d1 <== NOT EXECUTED 5608c: 4680 notl %d0 <== NOT EXECUTED 5608e: c280 andl %d0,%d1 <== NOT EXECUTED 56090: 672e beqs 560c0 <== 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 ) { 56092: b882 cmpl %d2,%d4 <== NOT EXECUTED 56094: 6218 bhis 560ae <== 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 ) ) 56096: 202d 0010 movel %a5@(16),%d0 <== NOT EXECUTED 5609a: 6724 beqs 560c0 <== 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 ) ) { 5609c: 2229 0010 movel %a1@(16),%d1 <== NOT EXECUTED 560a0: 670c beqs 560ae <== 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 ) 560a2: 0800 001c btst #28,%d0 <== NOT EXECUTED 560a6: 6618 bnes 560c0 <== 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 ) { 560a8: 0801 001c btst #28,%d1 <== NOT EXECUTED 560ac: 6712 beqs 560c0 <== NOT EXECUTED 560ae: 2a49 moveal %a1,%a5 <== NOT EXECUTED continue; maximum = the_info->maximum; object_table = the_info->local_table; for ( index = 1 ; index <= maximum ; index++ ) { 560b0: 528a addql #1,%a2 <== NOT EXECUTED 560b2: 588b addql #4,%a3 <== NOT EXECUTED 560b4: b5c7 cmpal %d7,%a2 <== NOT EXECUTED 560b6: 6212 bhis 560ca <== NOT EXECUTED the_thread = (Thread_Control *) object_table[ index ]; 560b8: 2253 moveal %a3@,%a1 <== NOT EXECUTED continue; maximum = the_info->maximum; object_table = the_info->local_table; for ( index = 1 ; index <= maximum ; index++ ) { 560ba: 2802 movel %d2,%d4 <== NOT EXECUTED the_thread = (Thread_Control *) object_table[ index ]; if ( !the_thread ) 560bc: 4a89 tstl %a1 <== NOT EXECUTED 560be: 66b6 bnes 56076 <== 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 ) { 560c0: 2404 movel %d4,%d2 <== NOT EXECUTED continue; maximum = the_info->maximum; object_table = the_info->local_table; for ( index = 1 ; index <= maximum ; index++ ) { 560c2: 528a addql #1,%a2 <== NOT EXECUTED 560c4: 588b addql #4,%a3 <== NOT EXECUTED 560c6: b5c7 cmpal %d7,%a2 <== NOT EXECUTED 560c8: 63ee blss 560b8 <== NOT EXECUTED 560ca: 588c addql #4,%a4 <== NOT EXECUTED interested_thread = NULL; interested_priority = PRIORITY_MAXIMUM + 1; for ( the_api = OBJECTS_CLASSIC_API; the_api <= OBJECTS_APIS_LAST; 560cc: b9fc 0005 9c48 cmpal #367688,%a4 <== NOT EXECUTED 560d2: 670a beqs 560de <== NOT EXECUTED 560d4: 2802 movel %d2,%d4 <== NOT EXECUTED 560d6: 6000 ff70 braw 56048 <== NOT EXECUTED continue; maximum = the_info->maximum; object_table = the_info->local_table; for ( index = 1 ; index <= maximum ; index++ ) { 560da: 2404 movel %d4,%d2 <== NOT EXECUTED 560dc: 60ec bras 560ca <== NOT EXECUTED interested_priority = the_thread->current_priority; } } } if ( interested_thread ) { 560de: 4a8d tstl %a5 <== NOT EXECUTED 560e0: 6700 feac beqw 55f8e <== NOT EXECUTED 560e4: 264d moveal %a5,%a3 <== NOT EXECUTED * evaluate the signals pending. */ process_it: the_thread->do_post_task_switch_extension = true; 560e6: 7001 moveq #1,%d0 <== NOT EXECUTED 560e8: 1740 0075 moveb %d0,%a3@(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 ) ) { 560ec: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 560f0: 2f05 movel %d5,%sp@- <== NOT EXECUTED 560f2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 560f4: 4eb9 0005 618c jsr 5618c <_POSIX_signals_Unblock_thread> <== NOT EXECUTED 560fa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 56100: 4a00 tstb %d0 <== NOT EXECUTED 56102: 6700 fe8a beqw 55f8e <== NOT EXECUTED 56106: 6000 fe9e braw 55fa6 <== NOT EXECUTED siginfo = &siginfo_struct; siginfo->si_signo = sig; siginfo->si_code = SI_USER; if ( !value ) { siginfo->si_value.sival_int = 0; 5610a: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED 5610e: 6000 fdfc braw 55f0c <== NOT EXECUTED /* * Only supported for the "calling process" (i.e. this node). */ if ( pid != getpid() ) rtems_set_errno_and_return_minus_one( ESRCH ); 56112: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 56118: 7403 moveq #3,%d2 <== NOT EXECUTED 5611a: 2040 moveal %d0,%a0 <== NOT EXECUTED 5611c: 2082 movel %d2,%a0@ <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); } _Thread_Enable_dispatch(); return 0; } 5611e: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED 56124: 4e5e unlk %fp <== NOT EXECUTED /* * Only supported for the "calling process" (i.e. this node). */ if ( pid != getpid() ) rtems_set_errno_and_return_minus_one( ESRCH ); 56126: 70ff moveq #-1,%d0 <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); } _Thread_Enable_dispatch(); return 0; } 56128: 4e75 rts <== NOT EXECUTED if ( !sig ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(sig) ) rtems_set_errno_and_return_minus_one( EINVAL ); 5612a: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); } _Thread_Enable_dispatch(); return 0; } 56130: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED if ( !sig ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(sig) ) rtems_set_errno_and_return_minus_one( EINVAL ); 56136: 2040 moveal %d0,%a0 <== NOT EXECUTED 56138: 7216 moveq #22,%d1 <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); } _Thread_Enable_dispatch(); return 0; } 5613a: 4e5e unlk %fp <== NOT EXECUTED if ( !sig ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(sig) ) rtems_set_errno_and_return_minus_one( EINVAL ); 5613c: 70ff moveq #-1,%d0 <== NOT EXECUTED 5613e: 2081 movel %d1,%a0@ <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); } _Thread_Enable_dispatch(); return 0; } 56140: 4e75 rts <== NOT EXECUTED if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) { psiginfo = (POSIX_signals_Siginfo_node *) _Chain_Get( &_POSIX_signals_Inactive_siginfo ); if ( !psiginfo ) { rtems_set_errno_and_return_minus_one( EAGAIN ); 56142: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 56148: 2040 moveal %d0,%a0 <== NOT EXECUTED 5614a: 700b moveq #11,%d0 <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); } _Thread_Enable_dispatch(); return 0; } 5614c: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) { psiginfo = (POSIX_signals_Siginfo_node *) _Chain_Get( &_POSIX_signals_Inactive_siginfo ); if ( !psiginfo ) { rtems_set_errno_and_return_minus_one( EAGAIN ); 56152: 2080 movel %d0,%a0@ <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); } _Thread_Enable_dispatch(); return 0; } 56154: 4e5e unlk %fp <== NOT EXECUTED if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) { psiginfo = (POSIX_signals_Siginfo_node *) _Chain_Get( &_POSIX_signals_Inactive_siginfo ); if ( !psiginfo ) { rtems_set_errno_and_return_minus_one( EAGAIN ); 56156: 70ff moveq #-1,%d0 <== NOT EXECUTED _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); } _Thread_Enable_dispatch(); return 0; } 56158: 4e75 rts <== NOT EXECUTED ... 00042b72 : */ bool libc_create_hook( rtems_tcb *current_task, rtems_tcb *creating_task ) { 42b72: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42b76: 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)); 42b78: 4878 03fe pea 3fe <== NOT EXECUTED 42b7c: 4eb9 0004 92a4 jsr 492a4 <_Workspace_Allocate> <== NOT EXECUTED #endif if (ptr) { 42b82: 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)); 42b84: 2440 moveal %d0,%a2 <== NOT EXECUTED #endif if (ptr) { 42b86: 4a80 tstl %d0 <== NOT EXECUTED 42b88: 6700 0172 beqw 42cfc <== NOT EXECUTED _REENT_INIT_PTR((ptr)); /* GCC extension: structure constants */ 42b8c: 43f9 0005 6e77 lea 56e77 ,%a1 <== NOT EXECUTED 42b92: 2549 0032 movel %a1,%a2@(50) <== NOT EXECUTED 42b96: 43ea 0346 lea %a2@(838),%a1 <== NOT EXECUTED 42b9a: 2549 0008 movel %a1,%a2@(8) <== NOT EXECUTED 42b9e: 41ea 02ea lea %a2@(746),%a0 <== NOT EXECUTED 42ba2: 43ea 03a2 lea %a2@(930),%a1 <== NOT EXECUTED 42ba6: 2548 0004 movel %a0,%a2@(4) <== NOT EXECUTED 42baa: 4200 clrb %d0 <== NOT EXECUTED 42bac: 2549 000c movel %a1,%a2@(12) <== NOT EXECUTED 42bb0: 41ea 007c lea %a2@(124),%a0 <== NOT EXECUTED 42bb4: 4292 clrl %a2@ <== NOT EXECUTED 42bb6: 1540 002c moveb %d0,%a2@(44) <== NOT EXECUTED 42bba: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED 42bbe: 1540 005e moveb %d0,%a2@(94) <== NOT EXECUTED 42bc2: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED 42bc6: 4280 clrl %d0 <== NOT EXECUTED 42bc8: 7201 moveq #1,%d1 <== NOT EXECUTED 42bca: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED 42bce: 327c 1234 moveaw #4660,%a1 <== NOT EXECUTED 42bd2: 42aa 001c clrl %a2@(28) <== NOT EXECUTED 42bd6: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED 42bda: 42aa 0024 clrl %a2@(36) <== NOT EXECUTED 42bde: 42aa 0028 clrl %a2@(40) <== NOT EXECUTED 42be2: 42aa 002e clrl %a2@(46) <== NOT EXECUTED 42be6: 42aa 0036 clrl %a2@(54) <== NOT EXECUTED 42bea: 42aa 003a clrl %a2@(58) <== NOT EXECUTED 42bee: 42aa 003e clrl %a2@(62) <== NOT EXECUTED 42bf2: 42aa 0042 clrl %a2@(66) <== NOT EXECUTED 42bf6: 42aa 0046 clrl %a2@(70) <== NOT EXECUTED 42bfa: 42aa 004a clrl %a2@(74) <== NOT EXECUTED 42bfe: 42aa 004e clrl %a2@(78) <== NOT EXECUTED 42c02: 42aa 0052 clrl %a2@(82) <== NOT EXECUTED 42c06: 42aa 0056 clrl %a2@(86) <== NOT EXECUTED 42c0a: 42aa 005a clrl %a2@(90) <== NOT EXECUTED 42c0e: 42aa 0078 clrl %a2@(120) <== NOT EXECUTED 42c12: 4298 clrl %a0@+ <== NOT EXECUTED 42c14: 4298 clrl %a0@+ <== NOT EXECUTED 42c16: 4298 clrl %a0@+ <== NOT EXECUTED 42c18: 4298 clrl %a0@+ <== NOT EXECUTED 42c1a: 4298 clrl %a0@+ <== NOT EXECUTED 42c1c: 4298 clrl %a0@+ <== NOT EXECUTED 42c1e: 4298 clrl %a0@+ <== NOT EXECUTED 42c20: 4290 clrl %a0@ <== NOT EXECUTED 42c22: 2540 00a0 movel %d0,%a2@(160) <== NOT EXECUTED 42c26: 2541 00a4 movel %d1,%a2@(164) <== NOT EXECUTED 42c2a: 323c 330e movew #13070,%d1 <== NOT EXECUTED 42c2e: 303c e66d movew #-6547,%d0 <== NOT EXECUTED 42c32: 3541 00a8 movew %d1,%a2@(168) <== NOT EXECUTED 42c36: 3540 00ae movew %d0,%a2@(174) <== NOT EXECUTED 42c3a: 323c deec movew #-8468,%d1 <== NOT EXECUTED 42c3e: 7005 moveq #5,%d0 <== NOT EXECUTED 42c40: 3541 00b0 movew %d1,%a2@(176) <== NOT EXECUTED 42c44: 3540 00b2 movew %d0,%a2@(178) <== NOT EXECUTED 42c48: 42aa 009c clrl %a2@(156) <== NOT EXECUTED 42c4c: 307c abcd moveaw #-21555,%a0 <== NOT EXECUTED 42c50: 4200 clrb %d0 <== NOT EXECUTED 42c52: 42aa 00b6 clrl %a2@(182) <== NOT EXECUTED 42c56: 720b moveq #11,%d1 <== NOT EXECUTED 42c58: 42aa 00ba clrl %a2@(186) <== NOT EXECUTED 42c5c: 3548 00aa movew %a0,%a2@(170) <== NOT EXECUTED 42c60: 42aa 00be clrl %a2@(190) <== NOT EXECUTED 42c64: 3549 00ac movew %a1,%a2@(172) <== NOT EXECUTED 42c68: 42aa 00c2 clrl %a2@(194) <== NOT EXECUTED 42c6c: 3541 00b4 movew %d1,%a2@(180) <== NOT EXECUTED 42c70: 42aa 00c6 clrl %a2@(198) <== NOT EXECUTED 42c74: 1540 00ce moveb %d0,%a2@(206) <== NOT EXECUTED 42c78: 42aa 00ca clrl %a2@(202) <== NOT EXECUTED 42c7c: 1540 00d6 moveb %d0,%a2@(214) <== NOT EXECUTED 42c80: 42aa 00f2 clrl %a2@(242) <== NOT EXECUTED 42c84: 42aa 00f6 clrl %a2@(246) <== NOT EXECUTED 42c88: 42aa 00fa clrl %a2@(250) <== NOT EXECUTED 42c8c: 42aa 00fe clrl %a2@(254) <== NOT EXECUTED 42c90: 42aa 0102 clrl %a2@(258) <== NOT EXECUTED 42c94: 42aa 0106 clrl %a2@(262) <== NOT EXECUTED 42c98: 42aa 010a clrl %a2@(266) <== NOT EXECUTED 42c9c: 42aa 010e clrl %a2@(270) <== NOT EXECUTED 42ca0: 42aa 0112 clrl %a2@(274) <== NOT EXECUTED 42ca4: 42aa 0116 clrl %a2@(278) <== NOT EXECUTED 42ca8: 42aa 00ee clrl %a2@(238) <== NOT EXECUTED 42cac: 42aa 0146 clrl %a2@(326) <== NOT EXECUTED 42cb0: 42aa 014a clrl %a2@(330) <== NOT EXECUTED 42cb4: 42aa 014e clrl %a2@(334) <== NOT EXECUTED 42cb8: 42aa 0152 clrl %a2@(338) <== NOT EXECUTED 42cbc: 42aa 02d2 clrl %a2@(722) <== NOT EXECUTED 42cc0: 42aa 01d2 clrl %a2@(466) <== NOT EXECUTED 42cc4: 42aa 02da clrl %a2@(730) <== NOT EXECUTED 42cc8: 42aa 02de clrl %a2@(734) <== NOT EXECUTED 42ccc: 42aa 02e2 clrl %a2@(738) <== NOT EXECUTED 42cd0: 42aa 02e6 clrl %a2@(742) <== NOT EXECUTED 42cd4: 4878 0114 pea 114 <== NOT EXECUTED 42cd8: 42a7 clrl %sp@- <== NOT EXECUTED 42cda: 486a 02ea pea %a2@(746) <== NOT EXECUTED 42cde: 4eb9 0004 dbe8 jsr 4dbe8 <== NOT EXECUTED creating_task->libc_reent = ptr; 42ce4: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 42ce8: 214a 0108 movel %a2,%a0@(264) <== NOT EXECUTED return true; } else return false; } 42cec: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED #endif if (ptr) { _REENT_INIT_PTR((ptr)); /* GCC extension: structure constants */ creating_task->libc_reent = ptr; 42cf0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return true; } else return false; } 42cf6: 4e5e unlk %fp <== NOT EXECUTED #endif if (ptr) { _REENT_INIT_PTR((ptr)); /* GCC extension: structure constants */ creating_task->libc_reent = ptr; 42cf8: 7001 moveq #1,%d0 <== NOT EXECUTED return true; } else return false; } 42cfa: 4e75 rts <== NOT EXECUTED 42cfc: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 42d00: 4e5e unlk %fp <== NOT EXECUTED * hooks run with thread dispatching disabled. */ ptr = (struct _reent *) _Workspace_Allocate(sizeof(struct _reent)); #endif if (ptr) { 42d02: 4200 clrb %d0 <== NOT EXECUTED creating_task->libc_reent = ptr; return true; } else return false; } 42d04: 4e75 rts <== NOT EXECUTED ... 00042aa8 : rtems_extension libc_delete_hook( rtems_tcb *current_task, rtems_tcb *deleted_task ) { 42aa8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 42aac: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 42ab0: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 42ab4: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED /* * The reentrancy structure was allocated by newlib using malloc() */ if (current_task == deleted_task) { 42ab8: b5c3 cmpal %d3,%a2 <== NOT EXECUTED 42aba: 674e beqs 42b0a <== NOT EXECUTED ptr = _REENT; } else { ptr = deleted_task->libc_reent; 42abc: 242a 0108 movel %a2@(264),%d2 <== NOT EXECUTED } if (ptr && ptr != &libc_global_reent) { 42ac0: 4a82 tstl %d2 <== NOT EXECUTED 42ac2: 6724 beqs 42ae8 <== NOT EXECUTED 42ac4: 0c82 0005 8150 cmpil #360784,%d2 <== NOT EXECUTED 42aca: 671c beqs 42ae8 <== NOT EXECUTED _reclaim_reent(ptr); */ /* * Just in case there are some buffers lying around. */ _fwalk(ptr, newlib_free_buffers); 42acc: 4879 0004 2b12 pea 42b12 <== NOT EXECUTED 42ad2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42ad4: 4eb9 0004 dade jsr 4dade <_fwalk> <== NOT EXECUTED #if REENT_MALLOCED free(ptr); #else _Workspace_Free(ptr); 42ada: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42adc: 4eb9 0004 928c jsr 4928c <_Workspace_Free> <== NOT EXECUTED 42ae2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED #endif } deleted_task->libc_reent = NULL; 42ae8: 42aa 0108 clrl %a2@(264) <== NOT EXECUTED /* * Require the switch back to another task to install its own */ if ( current_task == deleted_task ) { 42aec: b5c3 cmpal %d3,%a2 <== NOT EXECUTED 42aee: 670a beqs 42afa <== NOT EXECUTED _REENT = 0; } } 42af0: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 42af6: 4e5e unlk %fp <== NOT EXECUTED 42af8: 4e75 rts <== NOT EXECUTED 42afa: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 42b00: 4e5e unlk %fp <== NOT EXECUTED /* * Require the switch back to another task to install its own */ if ( current_task == deleted_task ) { _REENT = 0; 42b02: 42b9 0005 8624 clrl 58624 <_impure_ptr> <== NOT EXECUTED } } 42b08: 4e75 rts <== NOT EXECUTED /* * The reentrancy structure was allocated by newlib using malloc() */ if (current_task == deleted_task) { ptr = _REENT; 42b0a: 2439 0005 8624 movel 58624 <_impure_ptr>,%d2 <== NOT EXECUTED 42b10: 60ae bras 42ac0 <== NOT EXECUTED 00042a88 : struct _reent libc_global_reent __ATTRIBUTE_IMPURE_PTR__ = _REENT_INIT(libc_global_reent); void libc_init(void) { 42a88: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _REENT = &libc_global_reent; _Thread_Set_libc_reent (&_REENT); } 42a8c: 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; 42a8e: 203c 0005 8150 movel #360784,%d0 <== NOT EXECUTED 42a94: 23c0 0005 8624 movel %d0,58624 <_impure_ptr> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Thread_Set_libc_reent ( struct _reent **libc_reent ) { _Thread_libc_reent = libc_reent; 42a9a: 203c 0005 8624 movel #362020,%d0 <== NOT EXECUTED 42aa0: 23c0 0005 9d06 movel %d0,59d06 <_Thread_libc_reent> <== NOT EXECUTED _Thread_Set_libc_reent (&_REENT); } 42aa6: 4e75 rts 000429f4 : extern void _wrapup_reent(struct _reent *); extern void _reclaim_reent(struct _reent *); void libc_wrapup(void) { 429f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 429f8: 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())) 429fa: 7003 moveq #3,%d0 <== NOT EXECUTED 429fc: b0b9 0005 9e0e cmpl 59e0e <_System_state_Current>,%d0 <== NOT EXECUTED 42a02: 6708 beqs 42a0c <== NOT EXECUTED */ fclose (stdin); fclose (stdout); fclose (stderr); } 42a04: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 42a08: 4e5e unlk %fp <== NOT EXECUTED 42a0a: 4e75 rts <== NOT EXECUTED /* * This was already done if the user called exit() directly . _wrapup_reent(0); */ if (_REENT != &libc_global_reent) { 42a0c: 203c 0005 8150 movel #360784,%d0 <== NOT EXECUTED 42a12: b0b9 0005 8624 cmpl 58624 <_impure_ptr>,%d0 <== NOT EXECUTED 42a18: 6716 beqs 42a30 <== NOT EXECUTED _wrapup_reent(&libc_global_reent); 42a1a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42a1c: 4eb9 0004 e3ac jsr 4e3ac <_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; 42a22: 588f addql #4,%sp <== NOT EXECUTED 42a24: 203c 0005 8150 movel #360784,%d0 <== NOT EXECUTED 42a2a: 23c0 0005 8624 movel %d0,58624 <_impure_ptr> <== NOT EXECUTED * * Should this be changed to do *all* file streams? * _fwalk (_REENT, fclose); */ fclose (stdin); 42a30: 2079 0005 8624 moveal 58624 <_impure_ptr>,%a0 <== NOT EXECUTED 42a36: 45f9 0004 d50e lea 4d50e ,%a2 <== NOT EXECUTED 42a3c: 2f28 0004 movel %a0@(4),%sp@- <== NOT EXECUTED 42a40: 4e92 jsr %a2@ <== NOT EXECUTED fclose (stdout); 42a42: 2079 0005 8624 moveal 58624 <_impure_ptr>,%a0 <== NOT EXECUTED 42a48: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 42a4c: 4e92 jsr %a2@ <== NOT EXECUTED fclose (stderr); 42a4e: 2079 0005 8624 moveal 58624 <_impure_ptr>,%a0 <== NOT EXECUTED 42a54: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 42a58: 4e92 jsr %a2@ <== NOT EXECUTED } 42a5a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED * _fwalk (_REENT, fclose); */ fclose (stdin); fclose (stdout); fclose (stderr); 42a5e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 42a64: 4e5e unlk %fp <== NOT EXECUTED 42a66: 4e75 rts 000612b0 : int link( const char *existing, const char *new ) { 612b0: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 612b4: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED /* * Get the node we are linking to. */ result = rtems_filesystem_evaluate_path( existing, 0, &existing_loc, true ); 612b8: 4878 0001 pea 1 <== NOT EXECUTED int link( const char *existing, const char *new ) { 612bc: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED /* * Get the node we are linking to. */ result = rtems_filesystem_evaluate_path( existing, 0, &existing_loc, true ); 612c0: 260e movel %fp,%d3 <== NOT EXECUTED 612c2: 0683 ffff ffec addil #-20,%d3 <== NOT EXECUTED 612c8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 612ca: 42a7 clrl %sp@- <== NOT EXECUTED 612cc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 612d0: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED if ( result != 0 ) 612d6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 612dc: 4a80 tstl %d0 <== NOT EXECUTED 612de: 6600 00ea bnew 613ca <== NOT EXECUTED /* * Get the parent of the node we are creating. */ rtems_filesystem_get_start_loc( new, &i, &parent_loc ); 612e2: 1213 moveb %a3@,%d1 <== NOT EXECUTED 612e4: 1001 moveb %d1,%d0 <== NOT EXECUTED 612e6: 49c0 extbl %d0 <== NOT EXECUTED 612e8: 742f moveq #47,%d2 <== NOT EXECUTED 612ea: b480 cmpl %d0,%d2 <== NOT EXECUTED 612ec: 670e beqs 612fc <== NOT EXECUTED 612ee: 143c 005c moveb #92,%d2 <== NOT EXECUTED 612f2: b480 cmpl %d0,%d2 <== NOT EXECUTED 612f4: 6706 beqs 612fc <== NOT EXECUTED 612f6: 4a01 tstb %d1 <== NOT EXECUTED 612f8: 6600 00de bnew 613d8 <== NOT EXECUTED 612fc: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 61302: 45ee ffdc lea %fp@(-36),%a2 <== NOT EXECUTED 61306: 24a8 0014 movel %a0@(20),%a2@ <== NOT EXECUTED 6130a: 7001 moveq #1,%d0 <== NOT EXECUTED 6130c: 2d68 0018 ffe0 movel %a0@(24),%fp@(-32) <== NOT EXECUTED 61312: 2d68 001c ffe4 movel %a0@(28),%fp@(-28) <== NOT EXECUTED 61318: 2d68 0020 ffe8 movel %a0@(32),%fp@(-24) <== NOT EXECUTED if ( !parent_loc.ops->evalformake_h ) { 6131e: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 61322: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 61326: 4a88 tstl %a0 <== NOT EXECUTED 61328: 677c beqs 613a6 <== NOT EXECUTED 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 ); 6132a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 6132e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61330: 4873 0800 pea %a3@(00000000,%d0:l) <== NOT EXECUTED 61334: 4e90 jsr %a0@ <== NOT EXECUTED if ( result != 0 ) { 61336: 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 ); 6133c: 2400 movel %d0,%d2 <== NOT EXECUTED if ( result != 0 ) { 6133e: 6600 00fe bnew 6143e <== 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 ) { 61342: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 61346: b0ae ffe8 cmpl %fp@(-24),%d0 <== NOT EXECUTED 6134a: 6600 00ac bnew 613f8 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); rtems_filesystem_freenode( &parent_loc ); rtems_set_errno_and_return_minus_one( EXDEV ); } if ( !parent_loc.ops->link_h ) { 6134e: 226e ffe4 moveal %fp@(-28),%a1 <== NOT EXECUTED 61352: 2069 0008 moveal %a1@(8),%a0 <== NOT EXECUTED 61356: 4a88 tstl %a0 <== NOT EXECUTED 61358: 6700 0112 beqw 6146c <== 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 ); 6135c: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 61360: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61362: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61364: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 61366: 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 ); 6136a: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); 6136c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 61372: 4a88 tstl %a0 <== NOT EXECUTED 61374: 670e beqs 61384 <== NOT EXECUTED 61376: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 6137a: 4a88 tstl %a0 <== NOT EXECUTED 6137c: 6706 beqs 61384 <== NOT EXECUTED 6137e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61380: 4e90 jsr %a0@ <== NOT EXECUTED 61382: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &parent_loc ); 61384: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 61388: 4a88 tstl %a0 <== NOT EXECUTED 6138a: 670e beqs 6139a <== NOT EXECUTED 6138c: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 61390: 4a88 tstl %a0 <== NOT EXECUTED 61392: 6706 beqs 6139a <== NOT EXECUTED 61394: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61396: 4e90 jsr %a0@ <== NOT EXECUTED 61398: 588f addql #4,%sp <== NOT EXECUTED return result; } 6139a: 2002 movel %d2,%d0 <== NOT EXECUTED 6139c: 4cee 0c0c ffcc moveml %fp@(-52),%d2-%d3/%a2-%a3 <== NOT EXECUTED 613a2: 4e5e unlk %fp <== NOT EXECUTED 613a4: 4e75 rts <== NOT EXECUTED */ rtems_filesystem_get_start_loc( new, &i, &parent_loc ); if ( !parent_loc.ops->evalformake_h ) { rtems_filesystem_freenode( &existing_loc ); 613a6: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 613aa: 4a88 tstl %a0 <== NOT EXECUTED 613ac: 670e beqs 613bc <== NOT EXECUTED 613ae: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 613b2: 4a88 tstl %a0 <== NOT EXECUTED 613b4: 6706 beqs 613bc <== NOT EXECUTED 613b6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 613b8: 4e90 jsr %a0@ <== NOT EXECUTED 613ba: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 613bc: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 613c2: 2040 moveal %d0,%a0 <== NOT EXECUTED 613c4: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 613ca: 74ff moveq #-1,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); rtems_filesystem_freenode( &parent_loc ); return result; } 613cc: 2002 movel %d2,%d0 <== NOT EXECUTED 613ce: 4cee 0c0c ffcc moveml %fp@(-52),%d2-%d3/%a2-%a3 <== NOT EXECUTED 613d4: 4e5e unlk %fp <== NOT EXECUTED 613d6: 4e75 rts <== NOT EXECUTED /* * Get the parent of the node we are creating. */ rtems_filesystem_get_start_loc( new, &i, &parent_loc ); 613d8: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 613de: 45ee ffdc lea %fp@(-36),%a2 <== NOT EXECUTED 613e2: 5888 addql #4,%a0 <== NOT EXECUTED 613e4: 2498 movel %a0@+,%a2@ <== NOT EXECUTED 613e6: 4280 clrl %d0 <== NOT EXECUTED 613e8: 2d58 ffe0 movel %a0@+,%fp@(-32) <== NOT EXECUTED 613ec: 2d58 ffe4 movel %a0@+,%fp@(-28) <== NOT EXECUTED 613f0: 2d50 ffe8 movel %a0@,%fp@(-24) <== NOT EXECUTED 613f4: 6000 ff28 braw 6131e <== 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 ) { rtems_filesystem_freenode( &existing_loc ); 613f8: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 613fc: 4a88 tstl %a0 <== NOT EXECUTED 613fe: 670e beqs 6140e <== NOT EXECUTED 61400: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 61404: 4a88 tstl %a0 <== NOT EXECUTED 61406: 6706 beqs 6140e <== NOT EXECUTED 61408: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6140a: 4e90 jsr %a0@ <== NOT EXECUTED 6140c: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &parent_loc ); 6140e: 206e ffe4 moveal %fp@(-28),%a0 <== NOT EXECUTED 61412: 4a88 tstl %a0 <== NOT EXECUTED 61414: 670e beqs 61424 <== NOT EXECUTED 61416: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 6141a: 4a88 tstl %a0 <== NOT EXECUTED 6141c: 6706 beqs 61424 <== NOT EXECUTED 6141e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61420: 4e90 jsr %a0@ <== NOT EXECUTED 61422: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EXDEV ); 61424: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6142a: 2040 moveal %d0,%a0 <== NOT EXECUTED 6142c: 7012 moveq #18,%d0 <== NOT EXECUTED 6142e: 74ff moveq #-1,%d2 <== NOT EXECUTED 61430: 2080 movel %d0,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); rtems_filesystem_freenode( &parent_loc ); return result; } 61432: 2002 movel %d2,%d0 <== NOT EXECUTED 61434: 4cee 0c0c ffcc moveml %fp@(-52),%d2-%d3/%a2-%a3 <== NOT EXECUTED 6143a: 4e5e unlk %fp <== NOT EXECUTED 6143c: 4e75 rts <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*parent_loc.ops->evalformake_h)( &new[i], &parent_loc, &name_start ); if ( result != 0 ) { rtems_filesystem_freenode( &existing_loc ); 6143e: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 61442: 4a88 tstl %a0 <== NOT EXECUTED 61444: 670e beqs 61454 <== NOT EXECUTED 61446: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 6144a: 4a88 tstl %a0 <== NOT EXECUTED 6144c: 6706 beqs 61454 <== NOT EXECUTED 6144e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61450: 4e90 jsr %a0@ <== NOT EXECUTED 61452: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( result ); 61454: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6145a: 2040 moveal %d0,%a0 <== NOT EXECUTED 6145c: 2082 movel %d2,%a0@ <== NOT EXECUTED 6145e: 74ff moveq #-1,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); rtems_filesystem_freenode( &parent_loc ); return result; } 61460: 2002 movel %d2,%d0 <== NOT EXECUTED 61462: 4cee 0c0c ffcc moveml %fp@(-52),%d2-%d3/%a2-%a3 <== NOT EXECUTED 61468: 4e5e unlk %fp <== NOT EXECUTED 6146a: 4e75 rts <== NOT EXECUTED rtems_filesystem_freenode( &parent_loc ); rtems_set_errno_and_return_minus_one( EXDEV ); } if ( !parent_loc.ops->link_h ) { rtems_filesystem_freenode( &existing_loc ); 6146c: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 61470: 4a88 tstl %a0 <== NOT EXECUTED 61472: 6712 beqs 61486 <== NOT EXECUTED 61474: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 61478: 4a88 tstl %a0 <== NOT EXECUTED 6147a: 670a beqs 61486 <== NOT EXECUTED 6147c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6147e: 4e90 jsr %a0@ <== NOT EXECUTED 61480: 226e ffe4 moveal %fp@(-28),%a1 <== NOT EXECUTED 61484: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &parent_loc ); 61486: 4a89 tstl %a1 <== NOT EXECUTED 61488: 670e beqs 61498 <== NOT EXECUTED 6148a: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 6148e: 4a88 tstl %a0 <== NOT EXECUTED 61490: 6706 beqs 61498 <== NOT EXECUTED 61492: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61494: 4e90 jsr %a0@ <== NOT EXECUTED 61496: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 61498: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6149e: 74ff moveq #-1,%d2 <== NOT EXECUTED 614a0: 2040 moveal %d0,%a0 <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); rtems_filesystem_freenode( &parent_loc ); return result; } 614a2: 2002 movel %d2,%d0 <== NOT EXECUTED 614a4: 4cee 0c0c ffcc moveml %fp@(-52),%d2-%d3/%a2-%a3 <== NOT EXECUTED 614aa: 4e5e unlk %fp <== NOT EXECUTED } if ( !parent_loc.ops->link_h ) { rtems_filesystem_freenode( &existing_loc ); rtems_filesystem_freenode( &parent_loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); 614ac: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( &existing_loc ); rtems_filesystem_freenode( &parent_loc ); return result; } 614b2: 4e75 rts 00045b10 : int mode, struct aiocb * const list[], int nent, struct sigevent *sig ) { 45b10: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45b14: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45b1a: 2040 moveal %d0,%a0 <== NOT EXECUTED 45b1c: 7058 moveq #88,%d0 <== NOT EXECUTED 45b1e: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45b20: 4e5e unlk %fp <== NOT EXECUTED 45b22: 70ff moveq #-1,%d0 <== NOT EXECUTED 45b24: 4e75 rts <== NOT EXECUTED ... 000559f4 : off_t lseek( int fd, off_t offset, int whence ) { 559f4: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 559f8: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 559fc: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 55a00: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 55a04: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED rtems_libio_t *iop; off_t old_offset; off_t status; rtems_libio_check_fd( fd ); 55a08: b4b9 0005 8048 cmpl 58048 ,%d2 <== NOT EXECUTED 55a0e: 6400 00d8 bccw 55ae8 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 55a12: 2002 movel %d2,%d0 <== NOT EXECUTED 55a14: 2202 movel %d2,%d1 <== NOT EXECUTED 55a16: e588 lsll #2,%d0 <== NOT EXECUTED 55a18: e989 lsll #4,%d1 <== NOT EXECUTED 55a1a: 9280 subl %d0,%d1 <== NOT EXECUTED 55a1c: 2479 0005 9b14 moveal 59b14 ,%a2 <== NOT EXECUTED 55a22: d282 addl %d2,%d1 <== NOT EXECUTED 55a24: e589 lsll #2,%d1 <== NOT EXECUTED 55a26: d5c1 addal %d1,%a2 <== NOT EXECUTED rtems_libio_check_is_open(iop); 55a28: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 55a2c: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 55a32: 6700 00b4 beqw 55ae8 <== NOT EXECUTED /* * Check as many errors as possible before touching iop->offset. */ if ( !iop->handlers->lseek_h ) 55a36: 226a 0030 moveal %a2@(48),%a1 <== NOT EXECUTED 55a3a: 4aa9 0014 tstl %a1@(20) <== NOT EXECUTED 55a3e: 6700 00c0 beqw 55b00 <== NOT EXECUTED /* * Now process the lseek(). */ old_offset = iop->offset; 55a42: 242a 0008 movel %a2@(8),%d2 <== NOT EXECUTED switch ( whence ) { 55a46: 7001 moveq #1,%d0 <== NOT EXECUTED 55a48: b088 cmpl %a0,%d0 <== NOT EXECUTED 55a4a: 677a beqs 55ac6 <== NOT EXECUTED 55a4c: 7202 moveq #2,%d1 <== NOT EXECUTED 55a4e: b288 cmpl %a0,%d1 <== NOT EXECUTED 55a50: 6738 beqs 55a8a <== NOT EXECUTED 55a52: 4a88 tstl %a0 <== NOT EXECUTED 55a54: 6658 bnes 55aae <== NOT EXECUTED case SEEK_SET: iop->offset = offset; 55a56: 2543 0008 movel %d3,%a2@(8) <== NOT EXECUTED /* * At this time, handlers assume iop->offset has the desired * new offset. */ status = (*iop->handlers->lseek_h)( iop, offset, whence ); 55a5a: 2f08 movel %a0,%sp@- <== NOT EXECUTED 55a5c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 55a5e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 55a60: 2069 0014 moveal %a1@(20),%a0 <== NOT EXECUTED 55a64: 4e90 jsr %a0@ <== NOT EXECUTED if ( status == (off_t) -1 ) 55a66: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 55a6c: 72ff moveq #-1,%d1 <== NOT EXECUTED 55a6e: b280 cmpl %d0,%d1 <== NOT EXECUTED 55a70: 670a beqs 55a7c <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 55a72: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 55a78: 4e5e unlk %fp <== NOT EXECUTED 55a7a: 4e75 rts <== NOT EXECUTED * new offset. */ status = (*iop->handlers->lseek_h)( iop, offset, whence ); if ( status == (off_t) -1 ) iop->offset = old_offset; 55a7c: 2542 0008 movel %d2,%a2@(8) <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 55a80: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 55a86: 4e5e unlk %fp <== NOT EXECUTED 55a88: 4e75 rts <== NOT EXECUTED case SEEK_CUR: iop->offset += offset; break; case SEEK_END: iop->offset = iop->size + offset; 55a8a: 2203 movel %d3,%d1 <== NOT EXECUTED 55a8c: d2aa 0004 addl %a2@(4),%d1 <== NOT EXECUTED 55a90: 2541 0008 movel %d1,%a2@(8) <== NOT EXECUTED /* * At this time, handlers assume iop->offset has the desired * new offset. */ status = (*iop->handlers->lseek_h)( iop, offset, whence ); 55a94: 2f08 movel %a0,%sp@- <== NOT EXECUTED 55a96: 2f03 movel %d3,%sp@- <== NOT EXECUTED 55a98: 2f0a movel %a2,%sp@- <== NOT EXECUTED 55a9a: 2069 0014 moveal %a1@(20),%a0 <== NOT EXECUTED 55a9e: 4e90 jsr %a0@ <== NOT EXECUTED if ( status == (off_t) -1 ) 55aa0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 55aa6: 72ff moveq #-1,%d1 <== NOT EXECUTED 55aa8: b280 cmpl %d0,%d1 <== NOT EXECUTED 55aaa: 66c6 bnes 55a72 <== NOT EXECUTED 55aac: 60ce bras 55a7c <== NOT EXECUTED case SEEK_END: iop->offset = iop->size + offset; break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 55aae: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 55ab4: 2040 moveal %d0,%a0 <== NOT EXECUTED 55ab6: 7016 moveq #22,%d0 <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 55ab8: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED case SEEK_END: iop->offset = iop->size + offset; break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 55abe: 2080 movel %d0,%a0@ <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 55ac0: 4e5e unlk %fp <== NOT EXECUTED case SEEK_END: iop->offset = iop->size + offset; break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 55ac2: 70ff moveq #-1,%d0 <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 55ac4: 4e75 rts <== NOT EXECUTED case SEEK_SET: iop->offset = offset; break; case SEEK_CUR: iop->offset += offset; 55ac6: 2003 movel %d3,%d0 <== NOT EXECUTED 55ac8: d082 addl %d2,%d0 <== NOT EXECUTED 55aca: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED /* * At this time, handlers assume iop->offset has the desired * new offset. */ status = (*iop->handlers->lseek_h)( iop, offset, whence ); 55ace: 2f08 movel %a0,%sp@- <== NOT EXECUTED 55ad0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 55ad2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 55ad4: 2069 0014 moveal %a1@(20),%a0 <== NOT EXECUTED 55ad8: 4e90 jsr %a0@ <== NOT EXECUTED if ( status == (off_t) -1 ) 55ada: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 55ae0: 72ff moveq #-1,%d1 <== NOT EXECUTED 55ae2: b280 cmpl %d0,%d1 <== NOT EXECUTED 55ae4: 668c bnes 55a72 <== NOT EXECUTED 55ae6: 6094 bras 55a7c <== NOT EXECUTED off_t old_offset; off_t status; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 55ae8: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 55aee: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED off_t old_offset; off_t status; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 55af4: 2040 moveal %d0,%a0 <== NOT EXECUTED 55af6: 7209 moveq #9,%d1 <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 55af8: 4e5e unlk %fp <== NOT EXECUTED off_t old_offset; off_t status; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); 55afa: 70ff moveq #-1,%d0 <== NOT EXECUTED 55afc: 2081 movel %d1,%a0@ <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 55afe: 4e75 rts <== NOT EXECUTED /* * Check as many errors as possible before touching iop->offset. */ if ( !iop->handlers->lseek_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 55b00: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 55b06: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED /* * Check as many errors as possible before touching iop->offset. */ if ( !iop->handlers->lseek_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 55b0c: 2040 moveal %d0,%a0 <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 55b0e: 4e5e unlk %fp <== NOT EXECUTED /* * Check as many errors as possible before touching iop->offset. */ if ( !iop->handlers->lseek_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 55b10: 70ff moveq #-1,%d0 <== NOT EXECUTED 55b12: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED /* * So if the operation failed, we have to restore iop->offset. */ return status; } 55b18: 4e75 rts 00061618 : int _STAT_NAME( const char *path, struct stat *buf ) { 61618: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 6161c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6161e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 61620: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !buf ) 61624: 6700 00aa beqw 616d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); status = rtems_filesystem_evaluate_path( path, 0, &loc, _STAT_FOLLOW_LINKS ); 61628: 42a7 clrl %sp@- <== NOT EXECUTED 6162a: 260e movel %fp,%d3 <== NOT EXECUTED 6162c: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 61632: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61634: 42a7 clrl %sp@- <== NOT EXECUTED 61636: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 6163a: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED if ( status != 0 ) 61640: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 61646: 4a80 tstl %d0 <== NOT EXECUTED 61648: 6676 bnes 616c0 <== NOT EXECUTED return -1; if ( !loc.handlers->fstat_h ){ 6164a: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 6164e: 4aa8 0018 tstl %a0@(24) <== NOT EXECUTED 61652: 6748 beqs 6169c <== NOT EXECUTED /* * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( buf, 0, sizeof(struct stat) ); 61654: 4878 004a pea 4a <== NOT EXECUTED 61658: 42a7 clrl %sp@- <== NOT EXECUTED 6165a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6165c: 4eb9 0007 2b50 jsr 72b50 <== NOT EXECUTED status = (*loc.handlers->fstat_h)( &loc, buf ); 61662: 2f02 movel %d2,%sp@- <== NOT EXECUTED 61664: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61666: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 6166a: 2268 0018 moveal %a0@(24),%a1 <== NOT EXECUTED 6166e: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 61670: 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 ); 61674: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 61676: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 6167c: 4a88 tstl %a0 <== NOT EXECUTED 6167e: 670e beqs 6168e <== NOT EXECUTED 61680: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 61684: 4a88 tstl %a0 <== NOT EXECUTED 61686: 6706 beqs 6168e <== NOT EXECUTED 61688: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6168a: 4e90 jsr %a0@ <== NOT EXECUTED 6168c: 588f addql #4,%sp <== NOT EXECUTED return status; } 6168e: 2002 movel %d2,%d0 <== NOT EXECUTED 61690: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 61694: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 61698: 4e5e unlk %fp <== NOT EXECUTED 6169a: 4e75 rts <== NOT EXECUTED status = rtems_filesystem_evaluate_path( path, 0, &loc, _STAT_FOLLOW_LINKS ); if ( status != 0 ) return -1; if ( !loc.handlers->fstat_h ){ rtems_filesystem_freenode( &loc ); 6169c: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 616a0: 4a88 tstl %a0 <== NOT EXECUTED 616a2: 670e beqs 616b2 <== NOT EXECUTED 616a4: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 616a8: 4a88 tstl %a0 <== NOT EXECUTED 616aa: 6706 beqs 616b2 <== NOT EXECUTED 616ac: 2f03 movel %d3,%sp@- <== NOT EXECUTED 616ae: 4e90 jsr %a0@ <== NOT EXECUTED 616b0: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 616b2: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 616b8: 2040 moveal %d0,%a0 <== NOT EXECUTED 616ba: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 616c0: 74ff moveq #-1,%d2 <== NOT EXECUTED status = (*loc.handlers->fstat_h)( &loc, buf ); rtems_filesystem_freenode( &loc ); return status; } 616c2: 2002 movel %d2,%d0 <== NOT EXECUTED 616c4: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 616c8: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 616cc: 4e5e unlk %fp <== NOT EXECUTED 616ce: 4e75 rts <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !buf ) rtems_set_errno_and_return_minus_one( EFAULT ); 616d0: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 616d6: 2040 moveal %d0,%a0 <== NOT EXECUTED 616d8: 700e moveq #14,%d0 <== NOT EXECUTED 616da: 74ff moveq #-1,%d2 <== NOT EXECUTED 616dc: 2080 movel %d0,%a0@ <== NOT EXECUTED status = (*loc.handlers->fstat_h)( &loc, buf ); rtems_filesystem_freenode( &loc ); return status; } 616de: 2002 movel %d2,%d0 <== NOT EXECUTED 616e0: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 616e4: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 616e8: 4e5e unlk %fp <== NOT EXECUTED 616ea: 4e75 rts 0004abd0 : size_t size ) { void *return_this; MSBUMP(malloc_calls, 1); 4abd0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4abd4: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 4abd8: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED 4abdc: 52b9 0005 9b7c addql #1,59b7c <== NOT EXECUTED /* * If some free's have been deferred, then do them now. */ malloc_deferred_frees_process(); 4abe2: 4eb9 0004 ab8e jsr 4ab8e <== NOT EXECUTED /* * Validate the parameters */ if ( !size ) 4abe8: 4a84 tstl %d4 <== NOT EXECUTED 4abea: 675e beqs 4ac4a <== 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()) && 4abec: 7003 moveq #3,%d0 <== NOT EXECUTED 4abee: b0b9 0005 9e0e cmpl 59e0e <_System_state_Current>,%d0 <== NOT EXECUTED 4abf4: 674a beqs 4ac40 <== 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 ); 4abf6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4abf8: 4879 0005 9b20 pea 59b20 <== NOT EXECUTED 4abfe: 4eb9 0004 c034 jsr 4c034 <_Protected_heap_Allocate> <== NOT EXECUTED if ( !return_this ) { 4ac04: 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 ); 4ac06: 2400 movel %d0,%d2 <== NOT EXECUTED if ( !return_this ) { 4ac08: 674e beqs 4ac58 <== NOT EXECUTED if (rtems_malloc_sbrk_helpers) return_this = (*rtems_malloc_sbrk_helpers->extend)( size ); if ( !return_this ) { errno = ENOMEM; return (void *) 0; 4ac0a: 2600 movel %d0,%d3 <== NOT EXECUTED } /* * If the user wants us to dirty the allocated memory, then do it. */ if ( rtems_malloc_dirty_helper ) 4ac0c: 2079 0005 8acc moveal 58acc ,%a0 <== NOT EXECUTED 4ac12: 4a88 tstl %a0 <== NOT EXECUTED 4ac14: 6708 beqs 4ac1e <== NOT EXECUTED (*rtems_malloc_dirty_helper)( return_this, size ); 4ac16: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ac18: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4ac1a: 4e90 jsr %a0@ <== NOT EXECUTED 4ac1c: 508f addql #8,%sp <== NOT EXECUTED /* * If configured, update the statistics */ if ( rtems_malloc_statistics_helpers ) 4ac1e: 2079 0005 8ac4 moveal 58ac4 ,%a0 <== NOT EXECUTED 4ac24: 4a88 tstl %a0 <== NOT EXECUTED 4ac26: 6760 beqs 4ac88 <== NOT EXECUTED (*rtems_malloc_statistics_helpers->at_malloc)(return_this); 4ac28: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4ac2a: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 4ac2e: 2403 movel %d3,%d2 <== NOT EXECUTED 4ac30: 4e90 jsr %a0@ <== NOT EXECUTED if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif return return_this; } 4ac32: 2002 movel %d2,%d0 <== NOT EXECUTED /* * If configured, update the statistics */ if ( rtems_malloc_statistics_helpers ) (*rtems_malloc_statistics_helpers->at_malloc)(return_this); 4ac34: 588f addql #4,%sp <== NOT EXECUTED if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif return return_this; } 4ac36: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED 4ac3c: 4e5e unlk %fp <== NOT EXECUTED 4ac3e: 4e75 rts <== 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()) && 4ac40: 4eb9 0004 ab30 jsr 4ab30 <== NOT EXECUTED 4ac46: 4a00 tstb %d0 <== NOT EXECUTED 4ac48: 66ac bnes 4abf6 <== NOT EXECUTED /* * If configured, update the statistics */ if ( rtems_malloc_statistics_helpers ) (*rtems_malloc_statistics_helpers->at_malloc)(return_this); 4ac4a: 4282 clrl %d2 <== NOT EXECUTED if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif return return_this; } 4ac4c: 2002 movel %d2,%d0 <== NOT EXECUTED 4ac4e: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED 4ac54: 4e5e unlk %fp <== NOT EXECUTED 4ac56: 4e75 rts <== NOT EXECUTED */ return_this = _Protected_heap_Allocate( &RTEMS_Malloc_Heap, size ); if ( !return_this ) { if (rtems_malloc_sbrk_helpers) 4ac58: 2079 0005 8ac8 moveal 58ac8 ,%a0 <== NOT EXECUTED 4ac5e: 4a88 tstl %a0 <== NOT EXECUTED 4ac60: 670e beqs 4ac70 <== NOT EXECUTED return_this = (*rtems_malloc_sbrk_helpers->extend)( size ); 4ac62: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ac64: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 4ac68: 4e90 jsr %a0@ <== NOT EXECUTED if ( !return_this ) { 4ac6a: 588f addql #4,%sp <== NOT EXECUTED return_this = _Protected_heap_Allocate( &RTEMS_Malloc_Heap, size ); if ( !return_this ) { if (rtems_malloc_sbrk_helpers) return_this = (*rtems_malloc_sbrk_helpers->extend)( size ); 4ac6c: 2600 movel %d0,%d3 <== NOT EXECUTED if ( !return_this ) { 4ac6e: 669c bnes 4ac0c <== NOT EXECUTED errno = ENOMEM; 4ac70: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4ac76: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ac78: 700c moveq #12,%d0 <== NOT EXECUTED 4ac7a: 2080 movel %d0,%a0@ <== NOT EXECUTED if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif return return_this; } 4ac7c: 2002 movel %d2,%d0 <== NOT EXECUTED 4ac7e: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED 4ac84: 4e5e unlk %fp <== NOT EXECUTED 4ac86: 4e75 rts <== NOT EXECUTED (*rtems_malloc_dirty_helper)( return_this, size ); /* * If configured, update the statistics */ if ( rtems_malloc_statistics_helpers ) 4ac88: 2403 movel %d3,%d2 <== NOT EXECUTED if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif return return_this; } 4ac8a: 2002 movel %d2,%d0 <== NOT EXECUTED 4ac8c: 4cee 001c fff4 moveml %fp@(-12),%d2-%d4 <== NOT EXECUTED 4ac92: 4e5e unlk %fp <== NOT EXECUTED 4ac94: 4e75 rts <== NOT EXECUTED ... 0004ab74 : } void malloc_deferred_free( void *pointer ) { 4ab74: 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 ); 4ab78: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ab7c: 4879 0005 a16e pea 5a16e <== NOT EXECUTED 4ab82: 4eb9 0004 6824 jsr 46824 <_Chain_Append> <== NOT EXECUTED 4ab88: 508f addql #8,%sp <== NOT EXECUTED rtems_chain_append(&RTEMS_Malloc_GC_list, (rtems_chain_node *)pointer); } 4ab8a: 4e5e unlk %fp <== NOT EXECUTED 4ab8c: 4e75 rts 0004ab54 : void malloc_deferred_frees_initialize(void) { 4ab54: 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); 4ab58: 41f9 0005 a16e lea 5a16e ,%a0 <== NOT EXECUTED rtems_chain_initialize_empty(&RTEMS_Malloc_GC_list); } 4ab5e: 4e5e unlk %fp <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 4ab60: 23c8 0005 a176 movel %a0,5a176 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 4ab66: 20bc 0005 a172 movel #369010,%a0@ <== NOT EXECUTED the_chain->permanent_null = NULL; 4ab6c: 42b9 0005 a172 clrl 5a172 <== NOT EXECUTED 4ab72: 4e75 rts 0004ab8e : { rtems_chain_initialize_empty(&RTEMS_Malloc_GC_list); } void malloc_deferred_frees_process(void) { 4ab8e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ab92: 2f0b movel %a3,%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); 4ab94: 47f9 0004 a5fc lea 4a5fc ,%a3 <== NOT EXECUTED { rtems_chain_initialize_empty(&RTEMS_Malloc_GC_list); } void malloc_deferred_frees_process(void) { 4ab9a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ab9c: 45f9 0004 bb9c lea 4bb9c <_Chain_Get>,%a2 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get( rtems_chain_control *the_chain ) { return _Chain_Get( the_chain ); 4aba2: 4879 0005 a16e pea 5a16e <== NOT EXECUTED 4aba8: 4e92 jsr %a2@ <== 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) 4abaa: 588f addql #4,%sp <== NOT EXECUTED 4abac: 4a80 tstl %d0 <== NOT EXECUTED 4abae: 6714 beqs 4abc4 <== NOT EXECUTED free(to_be_freed); 4abb0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4abb2: 4e93 jsr %a3@ <== NOT EXECUTED 4abb4: 588f addql #4,%sp <== NOT EXECUTED 4abb6: 4879 0005 a16e pea 5a16e <== NOT EXECUTED 4abbc: 4e92 jsr %a2@ <== 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) 4abbe: 588f addql #4,%sp <== NOT EXECUTED 4abc0: 4a80 tstl %d0 <== NOT EXECUTED 4abc2: 66ec bnes 4abb0 <== NOT EXECUTED free(to_be_freed); } 4abc4: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4abc8: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4abcc: 4e5e unlk %fp <== NOT EXECUTED 4abce: 4e75 rts 00046768 : /* * Find amount of free heap remaining */ size_t malloc_free_space( void ) { 46768: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED Heap_Information info; _Protected_heap_Get_free_information( &RTEMS_Malloc_Heap, &info ); 4676c: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 46770: 4879 0009 b2d0 pea 9b2d0 <== NOT EXECUTED 46776: 4eb9 0004 c0e0 jsr 4c0e0 <_Protected_heap_Get_free_information> <== NOT EXECUTED return (size_t) info.largest; } 4677c: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 46780: 4e5e unlk %fp <== NOT EXECUTED 46782: 4e75 rts 00061708 : */ int malloc_info( Heap_Information_block *the_info ) { 61708: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 6170c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !the_info ) 61710: 6716 beqs 61728 <== NOT EXECUTED return -1; _Protected_heap_Get_information( &RTEMS_Malloc_Heap, the_info ); 61712: 2f00 movel %d0,%sp@- <== NOT EXECUTED 61714: 4879 0009 b2d0 pea 9b2d0 <== NOT EXECUTED 6171a: 4eb9 0006 4200 jsr 64200 <_Protected_heap_Get_information> <== NOT EXECUTED 61720: 508f addql #8,%sp <== NOT EXECUTED return 0; } 61722: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !the_info ) return -1; _Protected_heap_Get_information( &RTEMS_Malloc_Heap, the_info ); 61724: 4280 clrl %d0 <== NOT EXECUTED return 0; } 61726: 4e75 rts <== NOT EXECUTED 61728: 4e5e unlk %fp <== NOT EXECUTED int malloc_info( Heap_Information_block *the_info ) { if ( !the_info ) 6172a: 70ff moveq #-1,%d0 <== NOT EXECUTED return -1; _Protected_heap_Get_information( &RTEMS_Malloc_Heap, the_info ); return 0; } 6172c: 4e75 rts <== NOT EXECUTED ... 0004ab30 : rtems_chain_control RTEMS_Malloc_GC_list; bool malloc_is_system_state_OK(void) { if ( _Thread_Dispatch_disable_level > 0 ) 4ab30: 2039 0005 9c7c movel 59c7c <_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) { 4ab36: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( _Thread_Dispatch_disable_level > 0 ) 4ab3a: 4a80 tstl %d0 <== NOT EXECUTED 4ab3c: 6610 bnes 4ab4e <== NOT EXECUTED return false; if ( _ISR_Nest_level > 0 ) 4ab3e: 2039 0005 9d1a movel 59d1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED 4ab44: 57c1 seq %d1 <== NOT EXECUTED 4ab46: 2001 movel %d1,%d0 <== NOT EXECUTED return false; return true; } 4ab48: 4e5e unlk %fp <== NOT EXECUTED bool malloc_is_system_state_OK(void) { if ( _Thread_Dispatch_disable_level > 0 ) return false; if ( _ISR_Nest_level > 0 ) 4ab4a: 4480 negl %d0 <== NOT EXECUTED return false; return true; } 4ab4c: 4e75 rts <== NOT EXECUTED 4ab4e: 4e5e unlk %fp <== NOT EXECUTED rtems_chain_control RTEMS_Malloc_GC_list; bool malloc_is_system_state_OK(void) { if ( _Thread_Dispatch_disable_level > 0 ) 4ab50: 4200 clrb %d0 <== NOT EXECUTED if ( _ISR_Nest_level > 0 ) return false; return true; } 4ab52: 4e75 rts 0004525c : #ifdef RTEMS_NEWLIB #include "malloc_p.h" void malloc_report_statistics(void) { 4525c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED malloc_report_statistics_with_plugin( NULL, printk_plugin ); 45260: 4879 0004 5eb8 pea 45eb8 <== NOT EXECUTED 45266: 42a7 clrl %sp@- <== NOT EXECUTED 45268: 4eb9 0004 5274 jsr 45274 <== NOT EXECUTED 4526e: 508f addql #8,%sp <== NOT EXECUTED } 45270: 4e5e unlk %fp <== NOT EXECUTED 45272: 4e75 rts 00061730 : void malloc_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 61730: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 61734: 48d7 04fc moveml %d2-%d7/%a2,%sp@ <== NOT EXECUTED s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; (*print)( 61738: 2c39 0009 b340 movel 9b340 ,%d6 <== NOT EXECUTED 6173e: 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; 61740: 2a39 0009 b348 movel 9b348 ,%d5 <== NOT EXECUTED 61746: 2639 0009 b34c movel 9b34c ,%d3 <== NOT EXECUTED (*print)( 6174c: 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; 6174e: 2239 0009 b350 movel 9b350 ,%d1 <== NOT EXECUTED (*print)( 61754: 2240 moveal %d0,%a1 <== NOT EXECUTED 61756: 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; 61758: 2e05 movel %d5,%d7 <== NOT EXECUTED (*print)( 6175a: 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; 6175c: 9e81 subl %d1,%d7 <== NOT EXECUTED 6175e: 2839 0009 b344 movel 9b344 ,%d4 <== NOT EXECUTED (*print)( 61764: 103c 000a moveb #10,%d0 <== NOT EXECUTED 61768: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 6176a: 103c 0016 moveb #22,%d0 <== NOT EXECUTED 6176e: 8681 orl %d1,%d3 <== NOT EXECUTED 61770: e1ac lsll %d0,%d4 <== NOT EXECUTED 61772: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61774: 103c 000a moveb #10,%d0 <== NOT EXECUTED 61778: 2439 0009 b328 movel 9b328 ,%d2 <== NOT EXECUTED 6177e: 41f1 6c00 lea %a1@(00000000,%d6:l:4),%a0 <== NOT EXECUTED 61782: e0ad lsrl %d0,%d5 <== NOT EXECUTED 61784: 41f0 8c00 lea %a0@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 61788: 8885 orl %d5,%d4 <== NOT EXECUTED 6178a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 6178c: 2008 movel %a0,%d0 <== NOT EXECUTED 6178e: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 61792: 2207 movel %d7,%d1 <== NOT EXECUTED 61794: 2f00 movel %d0,%sp@- <== NOT EXECUTED 61796: e989 lsll #4,%d1 <== NOT EXECUTED 61798: 2241 moveal %d1,%a1 <== NOT EXECUTED 6179a: 700a moveq #10,%d0 <== NOT EXECUTED 6179c: 41f1 7c00 lea %a1@(00000000,%d7:l:4),%a0 <== NOT EXECUTED 617a0: e0ae lsrl %d0,%d6 <== NOT EXECUTED 617a2: 2f06 movel %d6,%sp@- <== NOT EXECUTED 617a4: 41f0 8c00 lea %a0@(00000000,%a0:l:4),%a0 <== NOT EXECUTED 617a8: 2008 movel %a0,%d0 <== NOT EXECUTED 617aa: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 617ae: 2f00 movel %d0,%sp@- <== NOT EXECUTED 617b0: 700a moveq #10,%d0 <== NOT EXECUTED 617b2: e0af lsrl %d0,%d7 <== NOT EXECUTED 617b4: 2f07 movel %d7,%sp@- <== NOT EXECUTED 617b6: e0aa lsrl %d0,%d2 <== NOT EXECUTED void malloc_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 617b8: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; (*print)( 617bc: 2f02 movel %d2,%sp@- <== NOT EXECUTED void malloc_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 617be: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED s = &rtems_malloc_statistics; allocated = s->lifetime_allocated - s->lifetime_freed; (*print)( 617c2: 4879 0008 30b1 pea 830b1 <== NOT EXECUTED 617c8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 617ca: 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)( 617cc: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 617d2: 2eb9 0009 b33c movel 9b33c ,%sp@ <== NOT EXECUTED 617d8: 2f39 0009 b338 movel 9b338 ,%sp@- <== NOT EXECUTED 617de: 2f39 0009 b334 movel 9b334 ,%sp@- <== NOT EXECUTED 617e4: 2f39 0009 b32c movel 9b32c ,%sp@- <== NOT EXECUTED 617ea: 4879 0008 3113 pea 83113 <== NOT EXECUTED 617f0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 617f2: 4e92 jsr %a2@ <== NOT EXECUTED 617f4: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED s->malloc_calls, s->free_calls, s->realloc_calls, s->calloc_calls ); } 617fa: 4cee 04fc ffe4 moveml %fp@(-28),%d2-%d7/%a2 <== NOT EXECUTED 61800: 4e5e unlk %fp <== NOT EXECUTED 61802: 4e75 rts 00045348 : #include "malloc_p.h" #include void malloc_walk(size_t source, size_t printf_enabled) { 45348: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Protected_heap_Walk( &RTEMS_Malloc_Heap, source, printf_enabled ); 4534c: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 45350: 56c0 sne %d0 <== NOT EXECUTED 45352: 49c0 extbl %d0 <== NOT EXECUTED 45354: 4480 negl %d0 <== NOT EXECUTED 45356: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45358: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4535c: 4879 0005 db74 pea 5db74 <== NOT EXECUTED 45362: 4eb9 0004 aff0 jsr 4aff0 <_Protected_heap_Walk> <== NOT EXECUTED 45368: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 4536e: 4e5e unlk %fp <== NOT EXECUTED 45370: 4e75 rts <== NOT EXECUTED ... 00066cc8 : */ int memfile_blocks_allocated = 0; void *memfile_alloc_block(void) { 66cc8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED void *memory; memory = (void *)calloc(1, IMFS_MEMFILE_BYTES_PER_BLOCK); 66ccc: 2f39 0008 7e00 movel 87e00 ,%sp@- <== NOT EXECUTED 66cd2: 4878 0001 pea 1 <== NOT EXECUTED 66cd6: 4eb9 0004 5bf0 jsr 45bf0 <== NOT EXECUTED if ( memory ) 66cdc: 508f addql #8,%sp <== NOT EXECUTED 66cde: 4a80 tstl %d0 <== NOT EXECUTED 66ce0: 6706 beqs 66ce8 <== NOT EXECUTED memfile_blocks_allocated++; 66ce2: 52b9 0009 a524 addql #1,9a524 <== NOT EXECUTED return memory; } 66ce8: 4e5e unlk %fp <== NOT EXECUTED 66cea: 4e75 rts 000670b0 : return memfile_check_rmnod( the_jnode ); } int memfile_check_rmnod( IMFS_jnode_t *the_jnode ){ 670b0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 670b4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 670b6: 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) ) { 670ba: 2f0a movel %a2,%sp@- <== NOT EXECUTED 670bc: 4eb9 0004 6426 jsr 46426 <== NOT EXECUTED 670c2: 588f addql #4,%sp <== NOT EXECUTED 670c4: 4a80 tstl %d0 <== NOT EXECUTED 670c6: 662e bnes 670f6 <== NOT EXECUTED 670c8: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 670cc: 6628 bnes 670f6 <== NOT EXECUTED /* * Is the rtems_filesystem_current is this node? */ if ( rtems_filesystem_current.node_access == the_jnode ) 670ce: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 670d4: b5e8 0004 cmpal %a0@(4),%a2 <== NOT EXECUTED 670d8: 6726 beqs 67100 <== NOT EXECUTED rtems_filesystem_current.node_access = NULL; /* * Free memory associated with a memory file. */ if (the_jnode->type != IMFS_LINEAR_FILE) 670da: 7006 moveq #6,%d0 <== NOT EXECUTED 670dc: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 670e0: 670a beqs 670ec <== NOT EXECUTED IMFS_memfile_remove( the_jnode ); 670e2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 670e4: 4eb9 0006 6f48 jsr 66f48 <== NOT EXECUTED 670ea: 588f addql #4,%sp <== NOT EXECUTED free( the_jnode ); 670ec: 2f0a movel %a2,%sp@- <== NOT EXECUTED 670ee: 4eb9 0004 61e4 jsr 461e4 <== NOT EXECUTED 670f4: 588f addql #4,%sp <== NOT EXECUTED } return 0; } 670f6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 670fa: 4e5e unlk %fp <== NOT EXECUTED 670fc: 4280 clrl %d0 <== NOT EXECUTED 670fe: 4e75 rts <== NOT EXECUTED /* * Is the rtems_filesystem_current is this node? */ if ( rtems_filesystem_current.node_access == the_jnode ) rtems_filesystem_current.node_access = NULL; 67100: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED /* * Free memory associated with a memory file. */ if (the_jnode->type != IMFS_LINEAR_FILE) 67104: 7006 moveq #6,%d0 <== NOT EXECUTED 67106: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 6710a: 67e0 beqs 670ec <== NOT EXECUTED 6710c: 60d4 bras 670e2 <== NOT EXECUTED 0006715a : */ int memfile_close( rtems_libio_t *iop ) { 6715a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 6715e: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; if (iop->flags & LIBIO_FLAGS_APPEND) 67162: 2028 000c movel %a0@(12),%d0 <== NOT EXECUTED rtems_libio_t *iop ) { IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 67166: 2268 002c moveal %a0@(44),%a1 <== NOT EXECUTED if (iop->flags & LIBIO_FLAGS_APPEND) 6716a: 0280 0000 0200 andil #512,%d0 <== NOT EXECUTED 67170: 6706 beqs 67178 <== NOT EXECUTED iop->offset = the_jnode->info.file.size; 67172: 2169 004c 0008 movel %a1@(76),%a0@(8) <== NOT EXECUTED memfile_check_rmnod( the_jnode ); 67178: 2f09 movel %a1,%sp@- <== NOT EXECUTED 6717a: 4eb9 0006 70b0 jsr 670b0 <== NOT EXECUTED return 0; } 67180: 4e5e unlk %fp <== NOT EXECUTED 67182: 4280 clrl %d0 <== NOT EXECUTED 67184: 4e75 rts 00066cae : */ void memfile_free_block( void *memory ) { 66cae: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #if 0 fprintf(stdout, "(d %p) ", memory ); fflush(stdout); #endif free(memory); 66cb2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 66cb6: 4eb9 0004 61e4 jsr 461e4 <== NOT EXECUTED memfile_blocks_allocated--; 66cbc: 588f addql #4,%sp <== NOT EXECUTED 66cbe: 53b9 0009 a524 subql #1,9a524 <== NOT EXECUTED } 66cc4: 4e5e unlk %fp <== NOT EXECUTED 66cc6: 4e75 rts 00066ee0 : void memfile_free_blocks_in_table( block_p **block_table, int entries ) { 66ee0: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 66ee4: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 66ee8: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 66eec: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * Perform internal consistency checks */ assert( block_table ); 66ef0: 4a8c tstl %a4 <== NOT EXECUTED 66ef2: 6738 beqs 66f2c <== NOT EXECUTED /* * Now go through all the slots in the table and free the memory. */ b = *block_table; 66ef4: 2014 movel %a4@,%d0 <== NOT EXECUTED 66ef6: 47f9 0006 6cae lea 66cae ,%a3 <== NOT EXECUTED for ( i=0 ; i <== NOT EXECUTED 66f00: 2440 moveal %d0,%a2 <== NOT EXECUTED 66f02: 4282 clrl %d2 <== NOT EXECUTED if ( b[i] ) { 66f04: 2012 movel %a2@,%d0 <== NOT EXECUTED 66f06: 6708 beqs 66f10 <== NOT EXECUTED memfile_free_block( b[i] ); 66f08: 2f00 movel %d0,%sp@- <== NOT EXECUTED 66f0a: 4e93 jsr %a3@ <== NOT EXECUTED b[i] = 0; 66f0c: 588f addql #4,%sp <== NOT EXECUTED 66f0e: 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 66f18: 2014 movel %a4@,%d0 <== 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 ); 66f1a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 66f1c: 4e93 jsr %a3@ <== NOT EXECUTED *block_table = 0; 66f1e: 588f addql #4,%sp <== NOT EXECUTED 66f20: 4294 clrl %a4@ <== NOT EXECUTED } 66f22: 4cee 1c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a4 <== NOT EXECUTED 66f28: 4e5e unlk %fp <== NOT EXECUTED 66f2a: 4e75 rts <== NOT EXECUTED /* * Perform internal consistency checks */ assert( block_table ); 66f2c: 4879 0008 34ec pea 834ec <_POSIX_Threads_Default_attributes+0x210> <== NOT EXECUTED 66f32: 4879 0008 35aa pea 835aa <__func__.5699> <== NOT EXECUTED 66f38: 4878 01b1 pea 1b1 <== NOT EXECUTED 66f3c: 4879 0008 347f pea 8347f <_POSIX_Threads_Default_attributes+0x1a3> <== NOT EXECUTED 66f42: 4eb9 0005 fae8 jsr 5fae8 <__assert_func> <== NOT EXECUTED 0006732a : int memfile_ftruncate( rtems_libio_t *iop, off_t length ) { 6732a: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 6732e: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 67332: 2f0a movel %a2,%sp@- <== NOT EXECUTED 67334: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 67338: 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 ) 6733c: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 67340: 6e26 bgts 67368 <== 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; 67342: 2540 004c movel %d0,%a2@(76) <== NOT EXECUTED iop->size = the_jnode->info.file.size; IMFS_update_atime( the_jnode ); 67346: 42a7 clrl %sp@- <== NOT EXECUTED 67348: 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; 6734c: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED IMFS_update_atime( the_jnode ); 67350: 4eb9 0004 6274 jsr 46274 <== NOT EXECUTED 67356: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return 0; } 6735c: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED */ the_jnode->info.file.size = length; iop->size = the_jnode->info.file.size; IMFS_update_atime( the_jnode ); 67360: 508f addql #8,%sp <== NOT EXECUTED return 0; } 67362: 4e5e unlk %fp <== NOT EXECUTED */ the_jnode->info.file.size = length; iop->size = the_jnode->info.file.size; IMFS_update_atime( the_jnode ); 67364: 4280 clrl %d0 <== NOT EXECUTED return 0; } 67366: 4e75 rts <== NOT EXECUTED * and the new length is greater than the current size. We treat this * as an extend operation. */ if ( length > the_jnode->info.file.size ) return IMFS_memfile_extend( the_jnode, length ); 67368: 2f00 movel %d0,%sp@- <== NOT EXECUTED 6736a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6736c: 4eb9 0006 721a jsr 6721a <== NOT EXECUTED iop->size = the_jnode->info.file.size; IMFS_update_atime( the_jnode ); return 0; } 67372: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED * and the new length is greater than the current size. We treat this * as an extend operation. */ if ( length > the_jnode->info.file.size ) return IMFS_memfile_extend( the_jnode, length ); 67376: 508f addql #8,%sp <== NOT EXECUTED iop->size = the_jnode->info.file.size; IMFS_update_atime( the_jnode ); return 0; } 67378: 4e5e unlk %fp <== NOT EXECUTED 6737a: 4e75 rts 00066ca4 : int memfile_ioctl( rtems_libio_t *iop, uint32_t command, void *buffer ) { 66ca4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; return 0; } 66ca8: 4e5e unlk %fp <== NOT EXECUTED 66caa: 4280 clrl %d0 <== NOT EXECUTED 66cac: 4e75 rts 0006737c : off_t memfile_lseek( rtems_libio_t *iop, off_t offset, int whence ) { 6737c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 67380: 2f0b movel %a3,%sp@- <== NOT EXECUTED 67382: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 67386: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 67388: 246b 002c moveal %a3@(44),%a2 <== NOT EXECUTED if (the_jnode->type == IMFS_LINEAR_FILE) { 6738c: 7006 moveq #6,%d0 <== NOT EXECUTED 6738e: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 67392: 661e bnes 673b2 <== NOT EXECUTED if (iop->offset > the_jnode->info.linearfile.size) 67394: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 67398: b0ab 0008 cmpl %a3@(8),%d0 <== NOT EXECUTED 6739c: 6c04 bges 673a2 <== NOT EXECUTED iop->offset = the_jnode->info.linearfile.size; 6739e: 2740 0008 movel %d0,%a3@(8) <== NOT EXECUTED if (IMFS_memfile_extend( the_jnode, iop->offset )) rtems_set_errno_and_return_minus_one( ENOSPC ); iop->size = the_jnode->info.file.size; } return iop->offset; 673a2: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED } 673a6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 673aa: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 673ae: 4e5e unlk %fp <== NOT EXECUTED 673b0: 4e75 rts <== NOT EXECUTED if (the_jnode->type == IMFS_LINEAR_FILE) { if (iop->offset > the_jnode->info.linearfile.size) iop->offset = the_jnode->info.linearfile.size; } else { /* Must be a block file (IMFS_MEMORY_FILE). */ if (IMFS_memfile_extend( the_jnode, iop->offset )) 673b2: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 673b6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 673b8: 4eb9 0006 721a jsr 6721a <== NOT EXECUTED 673be: 508f addql #8,%sp <== NOT EXECUTED 673c0: 4a80 tstl %d0 <== NOT EXECUTED 673c2: 660c bnes 673d0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); iop->size = the_jnode->info.file.size; } return iop->offset; 673c4: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED } else { /* Must be a block file (IMFS_MEMORY_FILE). */ if (IMFS_memfile_extend( the_jnode, iop->offset )) rtems_set_errno_and_return_minus_one( ENOSPC ); iop->size = the_jnode->info.file.size; 673c8: 276a 004c 0004 movel %a2@(76),%a3@(4) <== NOT EXECUTED 673ce: 60d6 bras 673a6 <== NOT EXECUTED if (iop->offset > the_jnode->info.linearfile.size) iop->offset = the_jnode->info.linearfile.size; } else { /* Must be a block file (IMFS_MEMORY_FILE). */ if (IMFS_memfile_extend( the_jnode, iop->offset )) rtems_set_errno_and_return_minus_one( ENOSPC ); 673d0: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED iop->size = the_jnode->info.file.size; } return iop->offset; } 673d6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 673da: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED if (iop->offset > the_jnode->info.linearfile.size) iop->offset = the_jnode->info.linearfile.size; } else { /* Must be a block file (IMFS_MEMORY_FILE). */ if (IMFS_memfile_extend( the_jnode, iop->offset )) rtems_set_errno_and_return_minus_one( ENOSPC ); 673de: 2040 moveal %d0,%a0 <== NOT EXECUTED 673e0: 701c moveq #28,%d0 <== NOT EXECUTED 673e2: 2080 movel %d0,%a0@ <== NOT EXECUTED iop->size = the_jnode->info.file.size; } return iop->offset; } 673e4: 4e5e unlk %fp <== NOT EXECUTED if (iop->offset > the_jnode->info.linearfile.size) iop->offset = the_jnode->info.linearfile.size; } else { /* Must be a block file (IMFS_MEMORY_FILE). */ if (IMFS_memfile_extend( the_jnode, iop->offset )) rtems_set_errno_and_return_minus_one( ENOSPC ); 673e6: 70ff moveq #-1,%d0 <== NOT EXECUTED iop->size = the_jnode->info.file.size; } return iop->offset; } 673e8: 4e75 rts 00067684 : rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) { 67684: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 67688: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 6768c: 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)) 67690: 222b 000c movel %a3@(12),%d1 <== NOT EXECUTED uint32_t mode ) { IMFS_jnode_t *the_jnode; the_jnode = iop->file_info; 67694: 246b 002c moveal %a3@(44),%a2 <== NOT EXECUTED /* * Perform 'copy on write' for linear files */ if ((iop->flags & (LIBIO_FLAGS_WRITE | LIBIO_FLAGS_APPEND)) 67698: 2001 movel %d1,%d0 <== NOT EXECUTED 6769a: 0280 0000 0204 andil #516,%d0 <== NOT EXECUTED 676a0: 6708 beqs 676aa <== NOT EXECUTED 676a2: 7006 moveq #6,%d0 <== NOT EXECUTED 676a4: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 676a8: 671e beqs 676c8 <== NOT EXECUTED the_jnode->info.file.triply_indirect = 0; if ((count != 0) && (IMFS_memfile_write(the_jnode, 0, buffer, count) == -1)) return -1; } if (iop->flags & LIBIO_FLAGS_APPEND) 676aa: 0801 0009 btst #9,%d1 <== NOT EXECUTED 676ae: 6706 beqs 676b6 <== NOT EXECUTED iop->offset = the_jnode->info.file.size; 676b0: 276a 004c 0008 movel %a2@(76),%a3@(8) <== NOT EXECUTED iop->size = the_jnode->info.file.size; 676b6: 4280 clrl %d0 <== NOT EXECUTED 676b8: 276a 004c 0004 movel %a2@(76),%a3@(4) <== NOT EXECUTED return 0; } 676be: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 676c4: 4e5e unlk %fp <== NOT EXECUTED 676c6: 4e75 rts <== NOT EXECUTED /* * Perform 'copy on write' for linear files */ if ((iop->flags & (LIBIO_FLAGS_WRITE | LIBIO_FLAGS_APPEND)) && (the_jnode->type == IMFS_LINEAR_FILE)) { uint32_t count = the_jnode->info.linearfile.size; 676c8: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED const unsigned char *buffer = the_jnode->info.linearfile.direct; 676cc: 222a 0050 movel %a2@(80),%d1 <== NOT EXECUTED the_jnode->type = IMFS_MEMORY_FILE; 676d0: 7405 moveq #5,%d2 <== NOT EXECUTED 676d2: 2542 0048 movel %d2,%a2@(72) <== NOT EXECUTED the_jnode->info.file.size = 0; 676d6: 42aa 004c clrl %a2@(76) <== NOT EXECUTED the_jnode->info.file.indirect = 0; 676da: 42aa 0050 clrl %a2@(80) <== NOT EXECUTED the_jnode->info.file.doubly_indirect = 0; 676de: 42aa 0054 clrl %a2@(84) <== NOT EXECUTED the_jnode->info.file.triply_indirect = 0; 676e2: 42aa 0058 clrl %a2@(88) <== NOT EXECUTED if ((count != 0) 676e6: 4a80 tstl %d0 <== NOT EXECUTED 676e8: 660c bnes 676f6 <== NOT EXECUTED 676ea: 222b 000c movel %a3@(12),%d1 <== NOT EXECUTED && (IMFS_memfile_write(the_jnode, 0, buffer, count) == -1)) return -1; } if (iop->flags & LIBIO_FLAGS_APPEND) 676ee: 0801 0009 btst #9,%d1 <== NOT EXECUTED 676f2: 67c2 beqs 676b6 <== NOT EXECUTED 676f4: 60ba bras 676b0 <== NOT EXECUTED the_jnode->type = IMFS_MEMORY_FILE; the_jnode->info.file.size = 0; the_jnode->info.file.indirect = 0; the_jnode->info.file.doubly_indirect = 0; the_jnode->info.file.triply_indirect = 0; if ((count != 0) 676f6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 676f8: 2f01 movel %d1,%sp@- <== NOT EXECUTED 676fa: 42a7 clrl %sp@- <== NOT EXECUTED 676fc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 676fe: 4eb9 0006 73ea jsr 673ea <== NOT EXECUTED 67704: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 6770a: 72ff moveq #-1,%d1 <== NOT EXECUTED 6770c: b280 cmpl %d0,%d1 <== NOT EXECUTED 6770e: 66da bnes 676ea <== NOT EXECUTED if (iop->flags & LIBIO_FLAGS_APPEND) iop->offset = the_jnode->info.file.size; iop->size = the_jnode->info.file.size; return 0; } 67710: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 67716: 4e5e unlk %fp <== NOT EXECUTED the_jnode->type = IMFS_MEMORY_FILE; the_jnode->info.file.size = 0; the_jnode->info.file.indirect = 0; the_jnode->info.file.doubly_indirect = 0; the_jnode->info.file.triply_indirect = 0; if ((count != 0) 67718: 70ff moveq #-1,%d0 <== NOT EXECUTED if (iop->flags & LIBIO_FLAGS_APPEND) iop->offset = the_jnode->info.file.size; iop->size = the_jnode->info.file.size; return 0; } 6771a: 4e75 rts 000679e2 : ssize_t memfile_read( rtems_libio_t *iop, void *buffer, size_t count ) { 679e2: 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 ); 679e6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED ssize_t memfile_read( rtems_libio_t *iop, void *buffer, size_t count ) { 679ea: 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 ); 679ee: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 679f2: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 679f6: 2f28 002c movel %a0@(44),%sp@- <== NOT EXECUTED 679fa: 4eb9 0006 771c jsr 6771c <== NOT EXECUTED } 67a00: 4e5e unlk %fp <== NOT EXECUTED 67a02: 4e75 rts 0006710e : */ int memfile_rmnod( rtems_filesystem_location_info_t *pathloc /* IN */ ) { 6710e: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 67112: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 67116: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 67118: 2450 moveal %a0@,%a2 <== NOT EXECUTED /* * Take the node out of the parent's chain that contains this node */ if ( the_jnode->Parent != NULL ) { 6711a: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 6711e: 670e beqs 6712e <== NOT EXECUTED 67120: 2f0a movel %a2,%sp@- <== NOT EXECUTED 67122: 4eb9 0006 3b70 jsr 63b70 <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( (rtems_chain_node *) the_jnode ); the_jnode->Parent = NULL; 67128: 588f addql #4,%sp <== NOT EXECUTED 6712a: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED /* * Decrement the link counter and see if we can free the space. */ the_jnode->st_nlink--; 6712e: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 67132: 5380 subql #1,%d0 <== NOT EXECUTED 67134: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( the_jnode ); 67138: 42a7 clrl %sp@- <== NOT EXECUTED 6713a: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 6713e: 4eb9 0004 6274 jsr 46274 <== NOT EXECUTED 67144: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return memfile_check_rmnod( the_jnode ); 6714a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6714c: 4eb9 0006 70b0 jsr 670b0 <== NOT EXECUTED } 67152: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 67156: 4e5e unlk %fp <== NOT EXECUTED 67158: 4e75 rts 0006764e : ssize_t memfile_write( rtems_libio_t *iop, const void *buffer, size_t count ) { 6764e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 67652: 2f0b movel %a3,%sp@- <== NOT EXECUTED 67654: 2f0a movel %a2,%sp@- <== NOT EXECUTED 67656: 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 ); 6765a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 6765e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED ) { IMFS_jnode_t *the_jnode; ssize_t status; the_jnode = iop->file_info; 67662: 266a 002c moveal %a2@(44),%a3 <== NOT EXECUTED status = IMFS_memfile_write( the_jnode, iop->offset, buffer, count ); 67666: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 6766a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 6766c: 4eb9 0006 73ea jsr 673ea <== NOT EXECUTED iop->size = the_jnode->info.file.size; 67672: 256b 004c 0004 movel %a3@(76),%a2@(4) <== NOT EXECUTED return status; } 67678: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 6767c: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 67680: 4e5e unlk %fp <== NOT EXECUTED 67682: 4e75 rts 00049514 : */ int miniIMFS_initialize( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 49514: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return IMFS_initialize_support( 49518: 4879 0005 9434 pea 59434 <== NOT EXECUTED 4951e: 4879 0005 9434 pea 59434 <== NOT EXECUTED 49524: 4879 0005 7064 pea 57064 <== NOT EXECUTED 4952a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4952e: 4eb9 0004 9f04 jsr 49f04 <== NOT EXECUTED temp_mt_entry, &miniIMFS_ops, &rtems_filesystem_null_handlers, /* for memfiles */ &rtems_filesystem_null_handlers /* for directories */ ); } 49534: 4e5e unlk %fp <== NOT EXECUTED 49536: 4e75 rts 0004ac98 : int mkdir( const char *pathname, mode_t mode ) { 4ac98: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return mknod( pathname, mode | S_IFDIR, 0LL); 4ac9c: 42a7 clrl %sp@- <== NOT EXECUTED 4ac9e: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4aca2: 42a7 clrl %sp@- <== NOT EXECUTED 4aca4: 08c0 000e bset #14,%d0 <== NOT EXECUTED 4aca8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4acaa: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4acae: 4eb9 0004 28a0 jsr 428a0 <== NOT EXECUTED } 4acb4: 4e5e unlk %fp <== NOT EXECUTED 4acb6: 4e75 rts 00061804 : int mkfifo( const char *path, mode_t mode ) { 61804: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return mknod( path, mode | S_IFIFO, 0LL ); 61808: 42a7 clrl %sp@- <== NOT EXECUTED 6180a: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 6180e: 42a7 clrl %sp@- <== NOT EXECUTED 61810: 08c0 000c bset #12,%d0 <== NOT EXECUTED 61814: 2f00 movel %d0,%sp@- <== NOT EXECUTED 61816: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 6181a: 4eb9 0004 6a0c jsr 46a0c <== NOT EXECUTED } 61820: 4e5e unlk %fp <== NOT EXECUTED 61822: 4e75 rts 000428a0 : int mknod( const char *pathname, mode_t mode, dev_t dev ) { 428a0: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 428a4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 428a8: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 428ac: 226e 0008 moveal %fp@(8),%a1 <== 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) ) ) 428b0: 2002 movel %d2,%d0 <== NOT EXECUTED 428b2: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 428b8: 6700 0102 beqw 429bc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( S_ISFIFO(mode) ) 428bc: 0c80 0000 1000 cmpil #4096,%d0 <== NOT EXECUTED 428c2: 6700 00dc beqw 429a0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); rtems_filesystem_get_start_loc( pathname, &i, &temp_loc ); 428c6: 1211 moveb %a1@,%d1 <== NOT EXECUTED 428c8: 1001 moveb %d1,%d0 <== NOT EXECUTED 428ca: 49c0 extbl %d0 <== NOT EXECUTED 428cc: 762f moveq #47,%d3 <== NOT EXECUTED 428ce: b680 cmpl %d0,%d3 <== NOT EXECUTED 428d0: 6700 009e beqw 42970 <== NOT EXECUTED 428d4: 163c 005c moveb #92,%d3 <== NOT EXECUTED 428d8: b680 cmpl %d0,%d3 <== NOT EXECUTED 428da: 6700 0094 beqw 42970 <== NOT EXECUTED 428de: 4a01 tstb %d1 <== NOT EXECUTED 428e0: 6700 008e beqw 42970 <== NOT EXECUTED 428e4: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED 428ea: 45ee ffec lea %fp@(-20),%a2 <== NOT EXECUTED 428ee: 5888 addql #4,%a0 <== NOT EXECUTED 428f0: 2498 movel %a0@+,%a2@ <== NOT EXECUTED 428f2: 4280 clrl %d0 <== NOT EXECUTED 428f4: 2d58 fff0 movel %a0@+,%fp@(-16) <== NOT EXECUTED 428f8: 2d58 fff4 movel %a0@+,%fp@(-12) <== NOT EXECUTED 428fc: 2d50 fff8 movel %a0@,%fp@(-8) <== NOT EXECUTED if ( !temp_loc.ops->evalformake_h ) { 42900: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 42904: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 42908: 4a88 tstl %a0 <== NOT EXECUTED 4290a: 6700 0094 beqw 429a0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*temp_loc.ops->evalformake_h)( 4290e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 42912: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42914: 4871 0800 pea %a1@(00000000,%d0:l) <== NOT EXECUTED 42918: 4e90 jsr %a0@ <== NOT EXECUTED &pathname[i], &temp_loc, &name_start ); if ( result != 0 ) 4291a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42920: 4a80 tstl %d0 <== NOT EXECUTED 42922: 6600 008a bnew 429ae <== NOT EXECUTED return -1; if ( !temp_loc.ops->mknod_h ) { 42926: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 4292a: 2268 0014 moveal %a0@(20),%a1 <== NOT EXECUTED 4292e: 4a89 tstl %a1 <== NOT EXECUTED 42930: 6700 00a4 beqw 429d6 <== NOT EXECUTED 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 ); 42934: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42936: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4293a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4293e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42940: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 42944: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 42946: 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 ); 4294a: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 4294c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 42952: 4a88 tstl %a0 <== NOT EXECUTED 42954: 670e beqs 42964 <== NOT EXECUTED 42956: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 4295a: 4a88 tstl %a0 <== NOT EXECUTED 4295c: 6706 beqs 42964 <== NOT EXECUTED 4295e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42960: 4e90 jsr %a0@ <== NOT EXECUTED 42962: 588f addql #4,%sp <== NOT EXECUTED return result; } 42964: 2002 movel %d2,%d0 <== NOT EXECUTED 42966: 4cee 040c ffe0 moveml %fp@(-32),%d2-%d3/%a2 <== NOT EXECUTED 4296c: 4e5e unlk %fp <== NOT EXECUTED 4296e: 4e75 rts <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( S_ISFIFO(mode) ) rtems_set_errno_and_return_minus_one( ENOTSUP ); rtems_filesystem_get_start_loc( pathname, &i, &temp_loc ); 42970: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED 42976: 45ee ffec lea %fp@(-20),%a2 <== NOT EXECUTED 4297a: 24a8 0014 movel %a0@(20),%a2@ <== NOT EXECUTED 4297e: 7001 moveq #1,%d0 <== NOT EXECUTED 42980: 2d68 0018 fff0 movel %a0@(24),%fp@(-16) <== NOT EXECUTED 42986: 2d68 001c fff4 movel %a0@(28),%fp@(-12) <== NOT EXECUTED 4298c: 2d68 0020 fff8 movel %a0@(32),%fp@(-8) <== NOT EXECUTED if ( !temp_loc.ops->evalformake_h ) { 42992: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 42996: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 4299a: 4a88 tstl %a0 <== NOT EXECUTED 4299c: 6600 ff70 bnew 4290e <== NOT EXECUTED if ( result != 0 ) return -1; if ( !temp_loc.ops->mknod_h ) { rtems_filesystem_freenode( &temp_loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); 429a0: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 429a6: 2040 moveal %d0,%a0 <== NOT EXECUTED 429a8: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 429ae: 74ff moveq #-1,%d2 <== NOT EXECUTED result = (*temp_loc.ops->mknod_h)( name_start, mode, dev, &temp_loc ); rtems_filesystem_freenode( &temp_loc ); return result; } 429b0: 2002 movel %d2,%d0 <== NOT EXECUTED 429b2: 4cee 040c ffe0 moveml %fp@(-32),%d2-%d3/%a2 <== NOT EXECUTED 429b8: 4e5e unlk %fp <== NOT EXECUTED 429ba: 4e75 rts <== NOT EXECUTED int i; const char *name_start; int result; if ( !(mode & (S_IFREG|S_IFCHR|S_IFBLK|S_IFIFO) ) ) rtems_set_errno_and_return_minus_one( EINVAL ); 429bc: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 429c2: 2040 moveal %d0,%a0 <== NOT EXECUTED 429c4: 7016 moveq #22,%d0 <== NOT EXECUTED 429c6: 74ff moveq #-1,%d2 <== NOT EXECUTED 429c8: 2080 movel %d0,%a0@ <== NOT EXECUTED result = (*temp_loc.ops->mknod_h)( name_start, mode, dev, &temp_loc ); rtems_filesystem_freenode( &temp_loc ); return result; } 429ca: 2002 movel %d2,%d0 <== NOT EXECUTED 429cc: 4cee 040c ffe0 moveml %fp@(-32),%d2-%d3/%a2 <== NOT EXECUTED 429d2: 4e5e unlk %fp <== NOT EXECUTED 429d4: 4e75 rts <== NOT EXECUTED ); if ( result != 0 ) return -1; if ( !temp_loc.ops->mknod_h ) { rtems_filesystem_freenode( &temp_loc ); 429d6: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 429da: 4a88 tstl %a0 <== NOT EXECUTED 429dc: 67c2 beqs 429a0 <== NOT EXECUTED 429de: 2f0a movel %a2,%sp@- <== NOT EXECUTED 429e0: 4e90 jsr %a0@ <== NOT EXECUTED 429e2: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 429e4: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 429ea: 2040 moveal %d0,%a0 <== NOT EXECUTED 429ec: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 429f2: 60ba bras 429ae <== NOT EXECUTED 0004acda : const rtems_filesystem_operations_table *fs_ops, rtems_filesystem_options_t options, const char *device, const char *mount_point ) { 4acda: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 4acde: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED 4ace2: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED 4ace6: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4acea: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED 4acee: 282e 0018 movel %fp@(24),%d4 <== NOT EXECUTED /* * Is there a file system operations table? */ if ( fs_ops == NULL ) { 4acf2: 4a8c tstl %a4 <== NOT EXECUTED 4acf4: 6700 0248 beqw 4af3e <== NOT EXECUTED /* * Are the file system options valid? */ if ( options != RTEMS_FILESYSTEM_READ_ONLY && 4acf8: 7001 moveq #1,%d0 <== NOT EXECUTED 4acfa: b083 cmpl %d3,%d0 <== NOT EXECUTED 4acfc: 6500 0240 bcsw 4af3e <== NOT EXECUTED errno = EINVAL; return -1; } /* Do they support being mounted at all ? */ if ( !fs_ops->fsmount_me_h ) { 4ad00: 4aac 0024 tstl %a4@(36) <== NOT EXECUTED 4ad04: 6700 00c6 beqw 4adcc <== NOT EXECUTED /* * Allocate a mount table entry */ size = sizeof(rtems_filesystem_mount_table_entry_t); if ( device ) 4ad08: 4a82 tstl %d2 <== NOT EXECUTED 4ad0a: 6700 00e6 beqw 4adf2 <== NOT EXECUTED size += strlen( device ) + 1; 4ad0e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ad10: 4eb9 0004 ed50 jsr 4ed50 <== NOT EXECUTED 4ad16: 588f addql #4,%sp <== NOT EXECUTED 4ad18: 0680 0000 0065 addil #101,%d0 <== NOT EXECUTED temp_mt_entry = malloc( size ); 4ad1e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ad20: 4eb9 0004 abd0 jsr 4abd0 <== NOT EXECUTED if ( !temp_mt_entry ) { 4ad26: 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 ); 4ad28: 2440 moveal %d0,%a2 <== NOT EXECUTED 4ad2a: 2640 moveal %d0,%a3 <== NOT EXECUTED if ( !temp_mt_entry ) { 4ad2c: 4a80 tstl %d0 <== NOT EXECUTED 4ad2e: 6700 0226 beqw 4af56 <== NOT EXECUTED errno = ENOMEM; return -1; } temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry; temp_mt_entry->options = options; 4ad32: 2543 0028 movel %d3,%a2@(40) <== NOT EXECUTED if ( !temp_mt_entry ) { errno = ENOMEM; return -1; } temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry; 4ad36: 2540 0024 movel %d0,%a2@(36) <== NOT EXECUTED temp_mt_entry->options = options; if ( device ) { 4ad3a: 4a82 tstl %d2 <== NOT EXECUTED 4ad3c: 6700 0110 beqw 4ae4e <== NOT EXECUTED temp_mt_entry->dev = (char *)temp_mt_entry + sizeof( rtems_filesystem_mount_table_entry_t ); strcpy( temp_mt_entry->dev, device ); 4ad40: 2f02 movel %d2,%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 = 4ad42: 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 ); 4ad48: 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 = 4ad4a: 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 ); 4ad4e: 4eb9 0004 e89c jsr 4e89c <== NOT EXECUTED 4ad54: 508f addql #8,%sp <== NOT EXECUTED /* * The mount_point should be a directory with read/write/execute * permissions in the existing tree. */ if ( mount_point ) { 4ad56: 4a84 tstl %d4 <== NOT EXECUTED 4ad58: 6700 009e beqw 4adf8 <== NOT EXECUTED if ( rtems_filesystem_evaluate_path( 4ad5c: 4878 0001 pea 1 <== NOT EXECUTED 4ad60: 240e movel %fp,%d2 <== NOT EXECUTED 4ad62: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 4ad68: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ad6a: 4878 0007 pea 7 <== NOT EXECUTED 4ad6e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ad70: 4eb9 0004 260c jsr 4260c <== NOT EXECUTED 4ad76: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4ad7c: 72ff moveq #-1,%d1 <== NOT EXECUTED 4ad7e: b280 cmpl %d0,%d1 <== NOT EXECUTED 4ad80: 675a beqs 4addc <== NOT EXECUTED /* * Test for node_type_h */ if (!loc.ops->node_type_h) { 4ad82: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 4ad86: 2068 0010 moveal %a0@(16),%a0 <== NOT EXECUTED 4ad8a: 4a88 tstl %a0 <== NOT EXECUTED 4ad8c: 6700 0176 beqw 4af04 <== NOT EXECUTED /* * Test to see if it is a directory */ if ( loc.ops->node_type_h( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) { 4ad90: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ad92: 4e90 jsr %a0@ <== NOT EXECUTED 4ad94: 588f addql #4,%sp <== NOT EXECUTED 4ad96: 7201 moveq #1,%d1 <== NOT EXECUTED 4ad98: b280 cmpl %d0,%d1 <== NOT EXECUTED 4ad9a: 6700 00ba beqw 4ae56 <== NOT EXECUTED errno = ENOTDIR; 4ad9e: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4ada4: 7214 moveq #20,%d1 <== NOT EXECUTED 4ada6: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ada8: 2081 movel %d1,%a0@ <== NOT EXECUTED return 0; cleanup_and_bail: free( temp_mt_entry ); 4adaa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4adac: 4eb9 0004 a5fc jsr 4a5fc <== NOT EXECUTED 4adb2: 2642 moveal %d2,%a3 <== NOT EXECUTED 4adb4: 588f addql #4,%sp <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); 4adb6: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED 4adba: 4a88 tstl %a0 <== NOT EXECUTED 4adbc: 6600 0164 bnew 4af22 <== NOT EXECUTED 4adc0: 70ff moveq #-1,%d0 <== NOT EXECUTED return -1; } 4adc2: 4cee 1c1c ffd8 moveml %fp@(-40),%d2-%d4/%a2-%a4 <== NOT EXECUTED 4adc8: 4e5e unlk %fp <== NOT EXECUTED 4adca: 4e75 rts <== NOT EXECUTED return -1; } /* Do they support being mounted at all ? */ if ( !fs_ops->fsmount_me_h ) { errno = ENOTSUP; 4adcc: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4add2: 97cb subal %a3,%a3 <== NOT EXECUTED 4add4: 2040 moveal %d0,%a0 <== NOT EXECUTED 4add6: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED return 0; cleanup_and_bail: free( temp_mt_entry ); 4addc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4adde: 4eb9 0004 a5fc jsr 4a5fc <== NOT EXECUTED 4ade4: 588f addql #4,%sp <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); return -1; } 4ade6: 4cee 1c1c ffd8 moveml %fp@(-40),%d2-%d4/%a2-%a4 <== NOT EXECUTED 4adec: 4e5e unlk %fp <== NOT EXECUTED return 0; cleanup_and_bail: free( temp_mt_entry ); 4adee: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); return -1; } 4adf0: 4e75 rts <== NOT EXECUTED /* * Allocate a mount table entry */ size = sizeof(rtems_filesystem_mount_table_entry_t); if ( device ) 4adf2: 7064 moveq #100,%d0 <== NOT EXECUTED 4adf4: 6000 ff28 braw 4ad1e <== 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; 4adf8: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED 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; } if ( fs_ops->fsmount_me_h( temp_mt_entry ) ) { 4adfc: 206c 0024 moveal %a4@(36),%a0 <== NOT EXECUTED * 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; temp_mt_entry->mt_fs_root.handlers = NULL; 4ae00: 42aa 001c clrl %a2@(28) <== 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; 4ae04: 97cb subal %a3,%a3 <== NOT EXECUTED * is the root of the entire file system. */ temp_mt_entry->mt_fs_root.node_access = NULL; temp_mt_entry->mt_fs_root.handlers = NULL; temp_mt_entry->mt_fs_root.ops = NULL; 4ae06: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED temp_mt_entry->mt_point_node.node_access = NULL; 4ae0a: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED temp_mt_entry->mt_point_node.handlers = NULL; 4ae0e: 42aa 000c clrl %a2@(12) <== NOT EXECUTED temp_mt_entry->mt_point_node.ops = NULL; 4ae12: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED temp_mt_entry->mt_point_node.mt_entry = NULL; 4ae16: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED } if ( fs_ops->fsmount_me_h( temp_mt_entry ) ) { 4ae1a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ae1c: 4e90 jsr %a0@ <== NOT EXECUTED 4ae1e: 588f addql #4,%sp <== NOT EXECUTED 4ae20: 4a80 tstl %d0 <== NOT EXECUTED 4ae22: 6700 00b8 beqw 4aedc <== NOT EXECUTED /* try to undo the mount operation */ if ( loc.ops->unmount_h ) { 4ae26: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 4ae2a: 2068 0028 moveal %a0@(40),%a0 <== NOT EXECUTED 4ae2e: 4a88 tstl %a0 <== NOT EXECUTED 4ae30: 6706 beqs 4ae38 <== NOT EXECUTED loc.ops->unmount_h( temp_mt_entry ); 4ae32: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ae34: 4e90 jsr %a0@ <== NOT EXECUTED 4ae36: 588f addql #4,%sp <== NOT EXECUTED return 0; cleanup_and_bail: free( temp_mt_entry ); 4ae38: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ae3a: 4eb9 0004 a5fc jsr 4a5fc <== NOT EXECUTED if ( loc_to_free ) 4ae40: 588f addql #4,%sp <== NOT EXECUTED 4ae42: 4a8b tstl %a3 <== NOT EXECUTED 4ae44: 6600 ff70 bnew 4adb6 <== NOT EXECUTED rtems_filesystem_freenode( loc_to_free ); 4ae48: 70ff moveq #-1,%d0 <== NOT EXECUTED 4ae4a: 6000 ff76 braw 4adc2 <== NOT EXECUTED if ( device ) { temp_mt_entry->dev = (char *)temp_mt_entry + sizeof( rtems_filesystem_mount_table_entry_t ); strcpy( temp_mt_entry->dev, device ); } else temp_mt_entry->dev = 0; 4ae4e: 42aa 0060 clrl %a2@(96) <== NOT EXECUTED 4ae52: 6000 ff02 braw 4ad56 <== NOT EXECUTED /* * For each mount table entry */ for ( the_node = rtems_filesystem_mount_table_control.first; 4ae56: 2079 0005 a17a moveal 5a17a ,%a0 <== NOT EXECUTED !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node ); 4ae5c: b1fc 0005 a17e cmpal #369022,%a0 <== NOT EXECUTED 4ae62: 6736 beqs 4ae9a <== NOT EXECUTED 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 ) 4ae64: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 4ae68: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 4ae6c: 6710 beqs 4ae7e <== 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 ) { 4ae6e: 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 ); 4ae70: b1fc 0005 a17e cmpal #369022,%a0 <== NOT EXECUTED 4ae76: 6726 beqs 4ae9e <== NOT EXECUTED 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 ) 4ae78: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 4ae7c: 66f0 bnes 4ae6e <== NOT EXECUTED /* * You can only mount one file system onto a single mount point. */ if ( Is_node_fs_root( &loc ) ){ errno = EBUSY; 4ae7e: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4ae84: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ae86: 7010 moveq #16,%d0 <== NOT EXECUTED 4ae88: 2080 movel %d0,%a0@ <== NOT EXECUTED return 0; cleanup_and_bail: free( temp_mt_entry ); 4ae8a: 2642 moveal %d2,%a3 <== NOT EXECUTED 4ae8c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ae8e: 4eb9 0004 a5fc jsr 4a5fc <== NOT EXECUTED 4ae94: 588f addql #4,%sp <== NOT EXECUTED 4ae96: 6000 ff1e braw 4adb6 <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); 4ae9a: 202e fff0 movel %fp@(-16),%d0 <== 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; 4ae9e: 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 ){ 4aea2: 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; 4aea6: 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; 4aeac: 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; 4aeb2: 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; 4aeb6: 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 ){ 4aeba: 4a89 tstl %a1 <== NOT EXECUTED 4aebc: 6746 beqs 4af04 <== NOT EXECUTED errno = ENOTSUP; goto cleanup_and_bail; } if ( loc.ops->mount_h( temp_mt_entry ) ) { 4aebe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aec0: 4e91 jsr %a1@ <== NOT EXECUTED 4aec2: 588f addql #4,%sp <== NOT EXECUTED 4aec4: 4a80 tstl %d0 <== NOT EXECUTED 4aec6: 6600 fee2 bnew 4adaa <== NOT EXECUTED 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; } if ( fs_ops->fsmount_me_h( temp_mt_entry ) ) { 4aeca: 206c 0024 moveal %a4@(36),%a0 <== NOT EXECUTED 4aece: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aed0: 4e90 jsr %a0@ <== NOT EXECUTED errno = ENOTSUP; goto cleanup_and_bail; } if ( loc.ops->mount_h( temp_mt_entry ) ) { goto cleanup_and_bail; 4aed2: 2642 moveal %d2,%a3 <== NOT EXECUTED 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; } if ( fs_ops->fsmount_me_h( temp_mt_entry ) ) { 4aed4: 588f addql #4,%sp <== NOT EXECUTED 4aed6: 4a80 tstl %d0 <== NOT EXECUTED 4aed8: 6600 ff4c bnew 4ae26 <== 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 ); 4aedc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aede: 4879 0005 a17a pea 5a17a <== NOT EXECUTED 4aee4: 4eb9 0004 6824 jsr 46824 <_Chain_Append> <== NOT EXECUTED */ rtems_chain_append( &rtems_filesystem_mount_table_control, &temp_mt_entry->Node ); if ( mt_entry ) 4aeea: 508f addql #8,%sp <== NOT EXECUTED 4aeec: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 4aef0: 6706 beqs 4aef8 <== NOT EXECUTED *mt_entry = temp_mt_entry; 4aef2: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4aef6: 208a movel %a2,%a0@ <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); return -1; } 4aef8: 4cee 1c1c ffd8 moveml %fp@(-40),%d2-%d4/%a2-%a4 <== NOT EXECUTED 4aefe: 4e5e unlk %fp <== NOT EXECUTED rtems_chain_append( &rtems_filesystem_mount_table_control, &temp_mt_entry->Node ); if ( mt_entry ) *mt_entry = temp_mt_entry; 4af00: 4280 clrl %d0 <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); return -1; } 4af02: 4e75 rts <== 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; 4af04: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4af0a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4af0c: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED return 0; cleanup_and_bail: free( temp_mt_entry ); 4af12: 2642 moveal %d2,%a3 <== NOT EXECUTED 4af14: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4af16: 4eb9 0004 a5fc jsr 4a5fc <== NOT EXECUTED 4af1c: 588f addql #4,%sp <== NOT EXECUTED 4af1e: 6000 fe96 braw 4adb6 <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); 4af22: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 4af26: 4a88 tstl %a0 <== NOT EXECUTED 4af28: 6700 fe96 beqw 4adc0 <== NOT EXECUTED 4af2c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4af2e: 4e90 jsr %a0@ <== NOT EXECUTED 4af30: 588f addql #4,%sp <== NOT EXECUTED return -1; } 4af32: 4cee 1c1c ffd8 moveml %fp@(-40),%d2-%d4/%a2-%a4 <== NOT EXECUTED 4af38: 4e5e unlk %fp <== NOT EXECUTED cleanup_and_bail: free( temp_mt_entry ); if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); 4af3a: 70ff moveq #-1,%d0 <== NOT EXECUTED return -1; } 4af3c: 4e75 rts <== NOT EXECUTED * Are the file system options valid? */ if ( options != RTEMS_FILESYSTEM_READ_ONLY && options != RTEMS_FILESYSTEM_READ_WRITE ) { errno = EINVAL; 4af3e: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4af44: 7616 moveq #22,%d3 <== NOT EXECUTED 4af46: 2040 moveal %d0,%a0 <== NOT EXECUTED 4af48: 2083 movel %d3,%a0@ <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); return -1; } 4af4a: 4cee 1c1c ffd8 moveml %fp@(-40),%d2-%d4/%a2-%a4 <== NOT EXECUTED 4af50: 4e5e unlk %fp <== NOT EXECUTED * Are the file system options valid? */ if ( options != RTEMS_FILESYSTEM_READ_ONLY && options != RTEMS_FILESYSTEM_READ_WRITE ) { errno = EINVAL; 4af52: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); return -1; } 4af54: 4e75 rts <== NOT EXECUTED if ( device ) size += strlen( device ) + 1; temp_mt_entry = malloc( size ); if ( !temp_mt_entry ) { errno = ENOMEM; 4af56: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4af5c: 740c moveq #12,%d2 <== NOT EXECUTED 4af5e: 2040 moveal %d0,%a0 <== NOT EXECUTED 4af60: 2082 movel %d2,%a0@ <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); return -1; } 4af62: 4cee 1c1c ffd8 moveml %fp@(-40),%d2-%d4/%a2-%a4 <== NOT EXECUTED 4af68: 4e5e unlk %fp <== NOT EXECUTED if ( device ) size += strlen( device ) + 1; temp_mt_entry = malloc( size ); if ( !temp_mt_entry ) { errno = ENOMEM; 4af6a: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); return -1; } 4af6c: 4e75 rts <== NOT EXECUTED ... 00045b28 : * 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) { 45b28: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 45b2c: 4e5e unlk %fp <== NOT EXECUTED 45b2e: 4280 clrl %d0 <== NOT EXECUTED 45b30: 4e75 rts <== NOT EXECUTED ... 0004a228 : */ int mq_close( mqd_t mqdes ) { 4a228: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4a22c: 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 *) 4a22e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4a232: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a236: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a23c: 4eb9 0004 de74 jsr 4de74 <_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 ) { 4a242: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a248: 2440 moveal %d0,%a2 <== NOT EXECUTED 4a24a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4a24e: 6642 bnes 4a292 <== 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; 4a250: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED the_mq->open_count -= 1; 4a254: 53a8 0016 subql #1,%a0@(22) <== NOT EXECUTED _POSIX_Message_queue_Delete( the_mq ); 4a258: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4a25a: 4eb9 0004 a2a8 jsr 4a2a8 <_POSIX_Message_queue_Delete> <== NOT EXECUTED /* * Now close this file descriptor. */ _Objects_Close( 4a260: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a262: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a268: 4eb9 0004 d9e4 jsr 4d9e4 <_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 ); 4a26e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a270: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a276: 4eb9 0004 dd08 jsr 4dd08 <_Objects_Free> <== NOT EXECUTED &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object ); _POSIX_Message_queue_Free_fd( the_mq_fd ); _Thread_Enable_dispatch(); 4a27c: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED /* * OBJECTS_REMOTE: * OBJECTS_ERROR: */ rtems_set_errno_and_return_minus_one( EBADF ); } 4a282: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED _Objects_Close( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object ); _POSIX_Message_queue_Free_fd( the_mq_fd ); _Thread_Enable_dispatch(); 4a286: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED /* * OBJECTS_REMOTE: * OBJECTS_ERROR: */ rtems_set_errno_and_return_minus_one( EBADF ); } 4a28c: 4e5e unlk %fp <== NOT EXECUTED _Objects_Close( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object ); _POSIX_Message_queue_Free_fd( the_mq_fd ); _Thread_Enable_dispatch(); 4a28e: 4280 clrl %d0 <== NOT EXECUTED /* * OBJECTS_REMOTE: * OBJECTS_ERROR: */ rtems_set_errno_and_return_minus_one( EBADF ); } 4a290: 4e75 rts <== NOT EXECUTED /* * OBJECTS_REMOTE: * OBJECTS_ERROR: */ rtems_set_errno_and_return_minus_one( EBADF ); 4a292: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED } 4a298: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED /* * OBJECTS_REMOTE: * OBJECTS_ERROR: */ rtems_set_errno_and_return_minus_one( EBADF ); 4a29c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a29e: 7209 moveq #9,%d1 <== NOT EXECUTED } 4a2a0: 4e5e unlk %fp <== NOT EXECUTED /* * OBJECTS_REMOTE: * OBJECTS_ERROR: */ rtems_set_errno_and_return_minus_one( EBADF ); 4a2a2: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a2a4: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4a2a6: 4e75 rts 0004a308 : int mq_getattr( mqd_t mqdes, struct mq_attr *mqstat ) { 4a308: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4a30c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a30e: 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 ) 4a312: 4a8a tstl %a2 <== NOT EXECUTED 4a314: 6762 beqs 4a378 <== 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 *) 4a316: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4a31a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a31e: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a324: 4eb9 0004 de74 jsr 4de74 <_Objects_Get> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { 4a32a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a330: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a332: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4a336: 662a bnes 4a362 <== NOT EXECUTED * Return the old values. */ the_mq_attr = &the_mq->Message_queue.Attributes; mqstat->mq_flags = the_mq_fd->oflag; 4a338: 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; 4a33c: 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; 4a340: 2568 0066 0008 movel %a0@(102),%a2@(8) <== NOT EXECUTED mqstat->mq_maxmsg = the_mq->Message_queue.maximum_pending_messages; 4a346: 2568 005e 0004 movel %a0@(94),%a2@(4) <== NOT EXECUTED mqstat->mq_curmsgs = the_mq->Message_queue.number_of_pending_messages; 4a34c: 2568 0062 000c movel %a0@(98),%a2@(12) <== NOT EXECUTED _Thread_Enable_dispatch(); 4a352: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a358: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4a35c: 4e5e unlk %fp <== NOT EXECUTED mqstat->mq_flags = the_mq_fd->oflag; mqstat->mq_msgsize = the_mq->Message_queue.maximum_message_size; mqstat->mq_maxmsg = the_mq->Message_queue.maximum_pending_messages; mqstat->mq_curmsgs = the_mq->Message_queue.number_of_pending_messages; _Thread_Enable_dispatch(); 4a35e: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a360: 4e75 rts <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a362: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED } 4a368: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a36c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a36e: 7209 moveq #9,%d1 <== NOT EXECUTED } 4a370: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a372: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a374: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4a376: 4e75 rts <== NOT EXECUTED POSIX_Message_queue_Control_fd *the_mq_fd; Objects_Locations location; CORE_message_queue_Attributes *the_mq_attr; if ( !mqstat ) rtems_set_errno_and_return_minus_one( EINVAL ); 4a378: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a37e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED POSIX_Message_queue_Control_fd *the_mq_fd; Objects_Locations location; CORE_message_queue_Attributes *the_mq_attr; if ( !mqstat ) rtems_set_errno_and_return_minus_one( EINVAL ); 4a382: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a384: 7016 moveq #22,%d0 <== NOT EXECUTED 4a386: 2080 movel %d0,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a388: 4e5e unlk %fp <== NOT EXECUTED POSIX_Message_queue_Control_fd *the_mq_fd; Objects_Locations location; CORE_message_queue_Attributes *the_mq_attr; if ( !mqstat ) rtems_set_errno_and_return_minus_one( EINVAL ); 4a38a: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a38c: 4e75 rts <== NOT EXECUTED ... 0004a390 : int mq_notify( mqd_t mqdes, const struct sigevent *notification ) { 4a390: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4a394: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a396: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a398: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4a39c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4a3a0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a3a4: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a3aa: 4eb9 0004 de74 jsr 4de74 <_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 ) { 4a3b0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a3b6: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a3b8: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4a3bc: 671a beqs 4a3d8 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a3be: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED } 4a3c4: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4a3c8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a3cc: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a3ce: 7209 moveq #9,%d1 <== NOT EXECUTED } 4a3d0: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a3d2: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a3d4: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4a3d6: 4e75 rts <== NOT EXECUTED the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { case OBJECTS_LOCAL: the_mq = the_mq_fd->Queue; 4a3d8: 2468 0010 moveal %a0@(16),%a2 <== NOT EXECUTED if ( notification ) { 4a3dc: 4a82 tstl %d2 <== NOT EXECUTED 4a3de: 673c beqs 4a41c <== NOT EXECUTED if ( _CORE_message_queue_Is_notify_enabled( &the_mq->Message_queue ) ) { 4a3e0: 4aaa 007a tstl %a2@(122) <== NOT EXECUTED 4a3e4: 6648 bnes 4a42e <== NOT EXECUTED CORE_message_queue_Notify_Handler the_handler, void *the_argument ) { the_message_queue->notify_handler = the_handler; the_message_queue->notify_argument = the_argument; 4a3e6: 42aa 007e clrl %a2@(126) <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBUSY ); } _CORE_message_queue_Set_notify( &the_mq->Message_queue, NULL, NULL ); the_mq->notification = *notification; 4a3ea: 2242 moveal %d2,%a1 <== NOT EXECUTED 4a3ec: 41ea 008e lea %a2@(142),%a0 <== NOT EXECUTED 4a3f0: 20d9 movel %a1@+,%a0@+ <== 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; 4a3f2: 203c 0004 a44e movel #304206,%d0 <== NOT EXECUTED 4a3f8: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 4a3fa: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 4a3fc: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 4a3fe: 2091 movel %a1@,%a0@ <== NOT EXECUTED 4a400: 2540 007a movel %d0,%a2@(122) <== NOT EXECUTED the_message_queue->notify_argument = the_argument; 4a404: 254a 007e movel %a2,%a2@(126) <== NOT EXECUTED _CORE_message_queue_Set_notify( &the_mq->Message_queue, NULL, NULL ); } _Thread_Enable_dispatch(); 4a408: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED 4a40e: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a410: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4a414: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4a418: 4e5e unlk %fp <== NOT EXECUTED 4a41a: 4e75 rts <== NOT EXECUTED 4a41c: 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; 4a420: 42aa 007a clrl %a2@(122) <== NOT EXECUTED _CORE_message_queue_Set_notify( &the_mq->Message_queue, NULL, NULL ); } _Thread_Enable_dispatch(); 4a424: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED 4a42a: 4280 clrl %d0 <== NOT EXECUTED 4a42c: 60e2 bras 4a410 <== NOT EXECUTED the_mq = the_mq_fd->Queue; if ( notification ) { if ( _CORE_message_queue_Is_notify_enabled( &the_mq->Message_queue ) ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EBUSY ); 4a42e: 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(); 4a430: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBUSY ); 4a436: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 4a43c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a43e: 2082 movel %d2,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a440: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4a444: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4a448: 4e5e unlk %fp <== NOT EXECUTED the_mq = the_mq_fd->Queue; if ( notification ) { if ( _CORE_message_queue_Is_notify_enabled( &the_mq->Message_queue ) ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EBUSY ); 4a44a: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a44c: 4e75 rts 0004a484 : rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4a484: 2039 0006 3118 movel 63118 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED int oflag, ... /* mode_t mode, */ /* struct mq_attr attr */ ) { 4a48a: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 4a48e: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 4a492: 5280 addql #1,%d0 <== NOT EXECUTED 4a494: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4a498: 23c0 0006 3118 movel %d0,63118 <_Thread_Dispatch_disable_level> <== NOT EXECUTED POSIX_Message_queue_Control_fd *the_mq_fd; Objects_Locations location; _Thread_Disable_dispatch(); if ( oflag & O_CREAT ) { 4a49e: 2602 movel %d2,%d3 <== NOT EXECUTED 4a4a0: 0283 0000 0200 andil #512,%d3 <== NOT EXECUTED 4a4a6: 6600 00cc bnew 4a574 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd * _POSIX_Message_queue_Allocate_fd( void ) { return (POSIX_Message_queue_Control_fd *) 4a4aa: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a4b0: 4eb9 0004 d948 jsr 4d948 <_Objects_Allocate> <== NOT EXECUTED 4a4b6: 4284 clrl %d4 <== NOT EXECUTED 4a4b8: 2640 moveal %d0,%a3 <== NOT EXECUTED attr = (struct mq_attr *) va_arg( arg, struct mq_attr * ); va_end(arg); } the_mq_fd = _POSIX_Message_queue_Allocate_fd(); if ( !the_mq_fd ) { 4a4ba: 588f addql #4,%sp <== NOT EXECUTED 4a4bc: 4a80 tstl %d0 <== NOT EXECUTED 4a4be: 6700 00ce beqw 4a58e <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENFILE ); } the_mq_fd->oflag = oflag; 4a4c2: 2742 0014 movel %d2,%a3@(20) <== NOT EXECUTED status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id ); 4a4c6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4a4ca: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a4ce: 4eb9 0005 1bc0 jsr 51bc0 <_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 ) { 4a4d4: 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 ); 4a4d6: 2440 moveal %d0,%a2 <== 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 ) { 4a4d8: 4a80 tstl %d0 <== NOT EXECUTED 4a4da: 6734 beqs 4a510 <== 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) ) ) { 4a4dc: 7002 moveq #2,%d0 <== NOT EXECUTED 4a4de: b08a cmpl %a2,%d0 <== NOT EXECUTED 4a4e0: 6700 00f8 beqw 4a5da <== 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 ); 4a4e4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a4e6: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a4ec: 4eb9 0004 dd08 jsr 4dd08 <_Objects_Free> <== NOT EXECUTED _POSIX_Message_queue_Free_fd( the_mq_fd ); _Thread_Enable_dispatch(); 4a4f2: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one_cast( status, mqd_t ); 4a4f8: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 4a4fe: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a500: 208a movel %a2,%a0@ <== NOT EXECUTED 4a502: 508f addql #8,%sp <== NOT EXECUTED ); _Thread_Enable_dispatch(); return (mqd_t) the_mq_fd->Object.id; } 4a504: 4cee 0c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a3 <== NOT EXECUTED 4a50a: 4e5e unlk %fp <== NOT EXECUTED */ if ( !( status == ENOENT && (oflag & O_CREAT) ) ) { _POSIX_Message_queue_Free_fd( the_mq_fd ); _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one_cast( status, mqd_t ); 4a50c: 70ff moveq #-1,%d0 <== NOT EXECUTED ); _Thread_Enable_dispatch(); return (mqd_t) the_mq_fd->Object.id; } 4a50e: 4e75 rts <== NOT EXECUTED /* * Check for existence with creation. */ if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { 4a510: 0282 0000 0a00 andil #2560,%d2 <== NOT EXECUTED 4a516: 0c82 0000 0a00 cmpil #2560,%d2 <== NOT EXECUTED 4a51c: 6700 008e beqw 4a5ac <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (POSIX_Message_queue_Control *) 4a520: 486e fff4 pea %fp@(-12) <== NOT EXECUTED _Objects_Open_string( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object, NULL ); _Thread_Enable_dispatch(); 4a524: 45f9 0004 e748 lea 4e748 <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 4a52a: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 4a52e: 4879 0006 33fa pea 633fa <_POSIX_Message_queue_Information> <== NOT EXECUTED 4a534: 4eb9 0004 de74 jsr 4de74 <_Objects_Get> <== NOT EXECUTED 4a53a: 2240 moveal %d0,%a1 <== 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; 4a53c: 52a9 0016 addql #1,%a1@(22) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4a540: 2079 0006 357c moveal 6357c <_POSIX_Message_queue_Information_fds+0x1a>,%a0 <== NOT EXECUTED 4a546: 4280 clrl %d0 <== NOT EXECUTED 4a548: 302b 000a movew %a3@(10),%d0 <== NOT EXECUTED 4a54c: 218b 0c00 movel %a3,%a0@(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 ); 4a550: 2d49 fff8 movel %a1,%fp@(-8) <== NOT EXECUTED the_mq->open_count += 1; the_mq_fd->Queue = the_mq; 4a554: 2749 0010 movel %a1,%a3@(16) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string */ the_object->name.name_p = name; 4a558: 42ab 000c clrl %a3@(12) <== NOT EXECUTED _Objects_Open_string( &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object, NULL ); _Thread_Enable_dispatch(); 4a55c: 4e92 jsr %a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4a55e: 4e92 jsr %a2@ <== NOT EXECUTED return (mqd_t)the_mq_fd->Object.id; 4a560: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 4a564: dffc 0000 000c addal #12,%sp <== NOT EXECUTED ); _Thread_Enable_dispatch(); return (mqd_t) the_mq_fd->Object.id; } 4a56a: 4cee 0c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a3 <== NOT EXECUTED 4a570: 4e5e unlk %fp <== NOT EXECUTED 4a572: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); if ( oflag & O_CREAT ) { va_start(arg, oflag); mode = (mode_t) va_arg( arg, unsigned int ); attr = (struct mq_attr *) va_arg( arg, struct mq_attr * ); 4a574: 282e 0014 movel %fp@(20),%d4 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd * _POSIX_Message_queue_Allocate_fd( void ) { return (POSIX_Message_queue_Control_fd *) 4a578: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a57e: 4eb9 0004 d948 jsr 4d948 <_Objects_Allocate> <== NOT EXECUTED va_end(arg); } the_mq_fd = _POSIX_Message_queue_Allocate_fd(); if ( !the_mq_fd ) { 4a584: 588f addql #4,%sp <== NOT EXECUTED 4a586: 2640 moveal %d0,%a3 <== NOT EXECUTED 4a588: 4a80 tstl %d0 <== NOT EXECUTED 4a58a: 6600 ff36 bnew 4a4c2 <== NOT EXECUTED _Thread_Enable_dispatch(); 4a58e: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENFILE ); 4a594: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED ); _Thread_Enable_dispatch(); return (mqd_t) the_mq_fd->Object.id; } 4a59a: 4cee 0c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a3 <== NOT EXECUTED } the_mq_fd = _POSIX_Message_queue_Allocate_fd(); if ( !the_mq_fd ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENFILE ); 4a5a0: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a5a2: 7217 moveq #23,%d1 <== NOT EXECUTED ); _Thread_Enable_dispatch(); return (mqd_t) the_mq_fd->Object.id; } 4a5a4: 4e5e unlk %fp <== NOT EXECUTED } the_mq_fd = _POSIX_Message_queue_Allocate_fd(); if ( !the_mq_fd ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( ENFILE ); 4a5a6: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a5a8: 2081 movel %d1,%a0@ <== NOT EXECUTED ); _Thread_Enable_dispatch(); return (mqd_t) the_mq_fd->Object.id; } 4a5aa: 4e75 rts <== 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 ); 4a5ac: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a5ae: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a5b4: 4eb9 0004 dd08 jsr 4dd08 <_Objects_Free> <== NOT EXECUTED * Check for existence with creation. */ if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { _POSIX_Message_queue_Free_fd( the_mq_fd ); _Thread_Enable_dispatch(); 4a5ba: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one_cast( EEXIST, mqd_t ); 4a5c0: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 4a5c6: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a5c8: 7011 moveq #17,%d0 <== NOT EXECUTED 4a5ca: 508f addql #8,%sp <== NOT EXECUTED ); _Thread_Enable_dispatch(); return (mqd_t) the_mq_fd->Object.id; } 4a5cc: 4cee 0c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a3 <== NOT EXECUTED */ if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { _POSIX_Message_queue_Free_fd( the_mq_fd ); _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one_cast( EEXIST, mqd_t ); 4a5d2: 2080 movel %d0,%a0@ <== NOT EXECUTED ); _Thread_Enable_dispatch(); return (mqd_t) the_mq_fd->Object.id; } 4a5d4: 4e5e unlk %fp <== NOT EXECUTED */ if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { _POSIX_Message_queue_Free_fd( the_mq_fd ); _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one_cast( EEXIST, mqd_t ); 4a5d6: 70ff moveq #-1,%d0 <== NOT EXECUTED ); _Thread_Enable_dispatch(); return (mqd_t) the_mq_fd->Object.id; } 4a5d8: 4e75 rts <== 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) ) ) { 4a5da: 4a83 tstl %d3 <== NOT EXECUTED 4a5dc: 6700 ff06 beqw 4a4e4 <== 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( 4a5e0: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4a5e4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4a5e6: 4878 0001 pea 1 <== NOT EXECUTED 4a5ea: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a5ee: 4eb9 0005 1a28 jsr 51a28 <_POSIX_Message_queue_Create_support> <== NOT EXECUTED /* * errno was set by Create_support, so don't set it again. */ if ( status == -1 ) { 4a5f4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4a5fa: 72ff moveq #-1,%d1 <== NOT EXECUTED 4a5fc: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a5fe: 6622 bnes 4a622 <== NOT EXECUTED _Thread_Enable_dispatch(); 4a600: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED 4a606: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a608: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a60e: 4eb9 0004 dd08 jsr 4dd08 <_Objects_Free> <== NOT EXECUTED 4a614: 508f addql #8,%sp <== NOT EXECUTED ); _Thread_Enable_dispatch(); return (mqd_t) the_mq_fd->Object.id; } 4a616: 4cee 0c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a3 <== NOT EXECUTED 4a61c: 4e5e unlk %fp <== NOT EXECUTED 4a61e: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a620: 4e75 rts <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4a622: 2079 0006 357c moveal 6357c <_POSIX_Message_queue_Information_fds+0x1a>,%a0 <== NOT EXECUTED 4a628: 4280 clrl %d0 <== NOT EXECUTED 4a62a: 302b 000a movew %a3@(10),%d0 <== NOT EXECUTED 4a62e: 218b 0c00 movel %a3,%a0@(00000000,%d0:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); _POSIX_Message_queue_Free_fd( the_mq_fd ); return (mqd_t) -1; } the_mq_fd->Queue = the_mq; 4a632: 276e fff8 0010 movel %fp@(-8),%a3@(16) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string */ the_object->name.name_p = name; 4a638: 42ab 000c clrl %a3@(12) <== NOT EXECUTED &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object, NULL ); _Thread_Enable_dispatch(); 4a63c: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED return (mqd_t) the_mq_fd->Object.id; 4a642: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED } 4a646: 4cee 0c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a3 <== NOT EXECUTED 4a64c: 4e5e unlk %fp <== NOT EXECUTED 4a64e: 4e75 rts 0004a650 : mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned int *msg_prio ) { 4a650: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Message_queue_Receive_support( 4a654: 42a7 clrl %sp@- <== NOT EXECUTED 4a656: 4878 0001 pea 1 <== NOT EXECUTED 4a65a: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4a65e: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4a662: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a666: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a66a: 4eb9 0004 a674 jsr 4a674 <_POSIX_Message_queue_Receive_support> <== NOT EXECUTED msg_len, msg_prio, TRUE, THREAD_QUEUE_WAIT_FOREVER ); } 4a670: 4e5e unlk %fp <== NOT EXECUTED 4a672: 4e75 rts 0004a7dc : mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned int msg_prio ) { 4a7dc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Message_queue_Send_support( 4a7e0: 42a7 clrl %sp@- <== NOT EXECUTED 4a7e2: 4878 0001 pea 1 <== NOT EXECUTED 4a7e6: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4a7ea: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4a7ee: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a7f2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a7f6: 4eb9 0004 a800 jsr 4a800 <_POSIX_Message_queue_Send_support> <== NOT EXECUTED msg_len, msg_prio, TRUE, THREAD_QUEUE_WAIT_FOREVER ); } 4a7fc: 4e5e unlk %fp <== NOT EXECUTED 4a7fe: 4e75 rts 0004a954 : int mq_setattr( mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat ) { 4a954: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4a958: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a95a: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 4a95e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a960: 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 ) 4a964: 4a8b tstl %a3 <== NOT EXECUTED 4a966: 6772 beqs 4a9da <== NOT EXECUTED 4a968: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4a96c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a970: 4879 0006 3562 pea 63562 <_POSIX_Message_queue_Information_fds> <== NOT EXECUTED 4a976: 4eb9 0004 de74 jsr 4de74 <_Objects_Get> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location ); switch ( location ) { 4a97c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a982: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a984: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4a988: 6636 bnes 4a9c0 <== NOT EXECUTED case OBJECTS_LOCAL: the_core_mq = &the_mq_fd->Queue->Message_queue; 4a98a: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED /* * Return the old values. */ if ( omqstat ) { 4a98e: 4a8a tstl %a2 <== NOT EXECUTED 4a990: 6716 beqs 4a9a8 <== NOT EXECUTED omqstat->mq_flags = the_mq_fd->oflag; 4a992: 24a9 0014 movel %a1@(20),%a2@ <== NOT EXECUTED omqstat->mq_msgsize = the_core_mq->maximum_message_size; 4a996: 2568 0066 0008 movel %a0@(102),%a2@(8) <== NOT EXECUTED omqstat->mq_maxmsg = the_core_mq->maximum_pending_messages; 4a99c: 2568 005e 0004 movel %a0@(94),%a2@(4) <== NOT EXECUTED omqstat->mq_curmsgs = the_core_mq->number_of_pending_messages; 4a9a2: 2568 0062 000c movel %a0@(98),%a2@(12) <== NOT EXECUTED } the_mq_fd->oflag = mqstat->mq_flags; 4a9a8: 2353 0014 movel %a3@,%a1@(20) <== NOT EXECUTED _Thread_Enable_dispatch(); 4a9ac: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a9b2: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4a9b6: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 4a9ba: 4e5e unlk %fp <== NOT EXECUTED omqstat->mq_maxmsg = the_core_mq->maximum_pending_messages; omqstat->mq_curmsgs = the_core_mq->number_of_pending_messages; } the_mq_fd->oflag = mqstat->mq_flags; _Thread_Enable_dispatch(); 4a9bc: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a9be: 4e75 rts <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a9c0: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED } 4a9c6: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4a9ca: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a9ce: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a9d0: 7209 moveq #9,%d1 <== NOT EXECUTED } 4a9d2: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); 4a9d4: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a9d6: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4a9d8: 4e75 rts <== NOT EXECUTED POSIX_Message_queue_Control_fd *the_mq_fd; CORE_message_queue_Control *the_core_mq; Objects_Locations location; if ( !mqstat ) rtems_set_errno_and_return_minus_one( EINVAL ); 4a9da: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a9e0: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4a9e4: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED POSIX_Message_queue_Control_fd *the_mq_fd; CORE_message_queue_Control *the_core_mq; Objects_Locations location; if ( !mqstat ) rtems_set_errno_and_return_minus_one( EINVAL ); 4a9e8: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a9ea: 7016 moveq #22,%d0 <== NOT EXECUTED 4a9ec: 2080 movel %d0,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a9ee: 4e5e unlk %fp <== NOT EXECUTED POSIX_Message_queue_Control_fd *the_mq_fd; CORE_message_queue_Control *the_core_mq; Objects_Locations location; if ( !mqstat ) rtems_set_errno_and_return_minus_one( EINVAL ); 4a9f0: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EBADF ); } 4a9f2: 4e75 rts 0004a9f4 : char *msg_ptr, size_t msg_len, unsigned int *msg_prio, const struct timespec *abstime ) { 4a9f4: 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 ) ) { 4a9f8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4a9fc: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 4aa00: 4eb9 0004 ab4c jsr 4ab4c <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED 4aa06: 508f addql #8,%sp <== NOT EXECUTED 4aa08: 7202 moveq #2,%d1 <== NOT EXECUTED default: /* only to silence warnings */ do_wait = TRUE; break; } return _POSIX_Message_queue_Receive_support( 4aa0a: 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 ) ) { 4aa0e: b280 cmpl %d0,%d1 <== NOT EXECUTED 4aa10: 55c0 scs %d0 <== NOT EXECUTED 4aa12: 49c0 extbl %d0 <== NOT EXECUTED default: /* only to silence warnings */ do_wait = TRUE; break; } return _POSIX_Message_queue_Receive_support( 4aa14: 4480 negl %d0 <== NOT EXECUTED 4aa16: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4aa18: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4aa1c: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4aa20: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4aa24: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4aa28: 4eb9 0004 a674 jsr 4a674 <_POSIX_Message_queue_Receive_support> <== NOT EXECUTED msg_len, msg_prio, do_wait, ticks ); } 4aa2e: 4e5e unlk %fp <== NOT EXECUTED 4aa30: 4e75 rts <== NOT EXECUTED ... 0004aa34 : const char *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec *abstime ) { 4aa34: 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 ) ) { 4aa38: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4aa3c: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 4aa40: 4eb9 0004 ab4c jsr 4ab4c <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED 4aa46: 508f addql #8,%sp <== NOT EXECUTED 4aa48: 7202 moveq #2,%d1 <== NOT EXECUTED default: /* only to silence warnings */ do_wait = TRUE; break; } return _POSIX_Message_queue_Send_support( 4aa4a: 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 ) ) { 4aa4e: b280 cmpl %d0,%d1 <== NOT EXECUTED 4aa50: 55c0 scs %d0 <== NOT EXECUTED 4aa52: 49c0 extbl %d0 <== NOT EXECUTED default: /* only to silence warnings */ do_wait = TRUE; break; } return _POSIX_Message_queue_Send_support( 4aa54: 4480 negl %d0 <== NOT EXECUTED 4aa56: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4aa58: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4aa5c: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4aa60: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4aa64: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4aa68: 4eb9 0004 a800 jsr 4a800 <_POSIX_Message_queue_Send_support> <== NOT EXECUTED msg_len, msg_prio, do_wait, ticks ); } 4aa6e: 4e5e unlk %fp <== NOT EXECUTED 4aa70: 4e75 rts <== NOT EXECUTED ... 0004aa8c : 4aa8c: 2039 0006 3118 movel 63118 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED */ int mq_unlink( const char *name ) { 4aa92: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4aa96: 5280 addql #1,%d0 <== NOT EXECUTED 4aa98: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aa9a: 23c0 0006 3118 movel %d0,63118 <_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 ); 4aaa0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4aaa4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4aaa8: 4eb9 0005 1bc0 jsr 51bc0 <_POSIX_Message_queue_Name_to_id> <== NOT EXECUTED if ( status != 0 ) { 4aaae: 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 ); 4aab0: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( status != 0 ) { 4aab2: 4a80 tstl %d0 <== NOT EXECUTED 4aab4: 667c bnes 4ab32 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Objects_Control *_Objects_Get_local_object( Objects_Information *information, uint16_t index ) { if ( index > information->maximum ) 4aab6: 4281 clrl %d1 <== NOT EXECUTED 4aab8: 4280 clrl %d0 <== NOT EXECUTED 4aaba: 322e fffe movew %fp@(-2),%d1 <== NOT EXECUTED 4aabe: 3039 0006 3408 movew 63408 <_POSIX_Message_queue_Information+0xe>,%d0 <== NOT EXECUTED 4aac4: b081 cmpl %d1,%d0 <== NOT EXECUTED 4aac6: 6434 bccs 4aafc <== 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; 4aac8: 4200 clrb %d0 <== NOT EXECUTED 4aaca: 95ca subal %a2,%a2 <== NOT EXECUTED 4aacc: 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( 4aad0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aad2: 4879 0006 33fa pea 633fa <_POSIX_Message_queue_Information> <== NOT EXECUTED 4aad8: 4eb9 0004 dfdc jsr 4dfdc <_Objects_Namespace_remove> <== NOT EXECUTED _POSIX_Message_queue_Namespace_remove( the_mq ); _POSIX_Message_queue_Delete( the_mq ); 4aade: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aae0: 4eb9 0004 a2a8 jsr 4a2a8 <_POSIX_Message_queue_Delete> <== NOT EXECUTED _Thread_Enable_dispatch(); 4aae6: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED 4aaec: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4aaf2: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4aaf4: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4aaf8: 4e5e unlk %fp <== NOT EXECUTED 4aafa: 4e75 rts <== NOT EXECUTED 4aafc: 2079 0006 3414 moveal 63414 <_POSIX_Message_queue_Information+0x1a>,%a0 <== NOT EXECUTED 4ab02: 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; 4ab06: 4200 clrb %d0 <== NOT EXECUTED 4ab08: 1540 0015 moveb %d0,%a2@(21) <== NOT EXECUTED 4ab0c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ab0e: 4879 0006 33fa pea 633fa <_POSIX_Message_queue_Information> <== NOT EXECUTED 4ab14: 4eb9 0004 dfdc jsr 4dfdc <_Objects_Namespace_remove> <== NOT EXECUTED _POSIX_Message_queue_Namespace_remove( the_mq ); _POSIX_Message_queue_Delete( the_mq ); 4ab1a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ab1c: 4eb9 0004 a2a8 jsr 4a2a8 <_POSIX_Message_queue_Delete> <== NOT EXECUTED _Thread_Enable_dispatch(); 4ab22: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED 4ab28: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4ab2e: 4280 clrl %d0 <== NOT EXECUTED 4ab30: 60c2 bras 4aaf4 <== NOT EXECUTED _Thread_Disable_dispatch(); status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id ); if ( status != 0 ) { _Thread_Enable_dispatch(); 4ab32: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( status ); 4ab38: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED 4ab3e: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ab40: 208a movel %a2,%a0@ <== NOT EXECUTED _POSIX_Message_queue_Namespace_remove( the_mq ); _POSIX_Message_queue_Delete( the_mq ); _Thread_Enable_dispatch(); return 0; } 4ab42: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4ab46: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id ); if ( status != 0 ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( status ); 4ab48: 70ff moveq #-1,%d0 <== NOT EXECUTED _POSIX_Message_queue_Namespace_remove( the_mq ); _POSIX_Message_queue_Delete( the_mq ); _Thread_Enable_dispatch(); return 0; } 4ab4a: 4e75 rts 00052850 : int nanosleep( const struct timespec *rqtp, struct timespec *rmtp ) { 52850: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 52854: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 52858: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 5285c: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED Watchdog_Interval ticks; if ( !_Timespec_Is_valid( rqtp ) ) 52860: 2f0a movel %a2,%sp@- <== NOT EXECUTED 52862: 4eb9 0005 4430 jsr 54430 <_Timespec_Is_valid> <== NOT EXECUTED 52868: 588f addql #4,%sp <== NOT EXECUTED 5286a: 4a00 tstb %d0 <== NOT EXECUTED 5286c: 6700 00e2 beqw 52950 <== 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 ) 52870: 4a92 tstl %a2@ <== NOT EXECUTED 52872: 6d00 00dc bltw 52950 <== NOT EXECUTED 52876: 4aaa 0004 tstl %a2@(4) <== NOT EXECUTED 5287a: 6d00 00d4 bltw 52950 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); ticks = _Timespec_To_ticks( rqtp ); 5287e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 52880: 4eb9 0005 445c jsr 5445c <_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 ) { 52886: 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 ); 52888: 2440 moveal %d0,%a2 <== 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 ) { 5288a: 4a80 tstl %d0 <== NOT EXECUTED 5288c: 6632 bnes 528c0 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 5288e: 2039 0006 8184 movel 68184 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 52894: 5280 addql #1,%d0 <== NOT EXECUTED 52896: 23c0 0006 8184 movel %d0,68184 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); _Thread_Yield_processor(); 5289c: 4eb9 0004 e590 jsr 4e590 <_Thread_Yield_processor> <== NOT EXECUTED _Thread_Enable_dispatch(); 528a2: 4eb9 0004 d708 jsr 4d708 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( rmtp ) { 528a8: 4a8b tstl %a3 <== NOT EXECUTED 528aa: 6700 0098 beqw 52944 <== NOT EXECUTED rmtp->tv_sec = 0; rmtp->tv_nsec = 0; 528ae: 42ab 0004 clrl %a3@(4) <== NOT EXECUTED 528b2: 4280 clrl %d0 <== NOT EXECUTED if ( !ticks ) { _Thread_Disable_dispatch(); _Thread_Yield_processor(); _Thread_Enable_dispatch(); if ( rmtp ) { rmtp->tv_sec = 0; 528b4: 4293 clrl %a3@ <== NOT EXECUTED if ( ticks ) rtems_set_errno_and_return_minus_one( EINTR ); } return 0; } 528b6: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 528bc: 4e5e unlk %fp <== NOT EXECUTED 528be: 4e75 rts <== NOT EXECUTED 528c0: 2039 0006 8184 movel 68184 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 528c6: 5280 addql #1,%d0 <== NOT EXECUTED 528c8: 23c0 0006 8184 movel %d0,68184 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Block for the desired amount of time */ _Thread_Disable_dispatch(); _Thread_Set_state( 528ce: 2f3c 1000 0008 movel #268435464,%sp@- <== NOT EXECUTED 528d4: 2f39 0006 8242 movel 68242 <_Thread_Executing>,%sp@- <== NOT EXECUTED 528da: 4eb9 0004 e0fc jsr 4e0fc <_Thread_Set_state> <== NOT EXECUTED _Thread_Executing, STATES_DELAYING | STATES_INTERRUPTIBLE_BY_SIGNAL ); _Watchdog_Initialize( 528e0: 2079 0006 8242 moveal 68242 <_Thread_Executing>,%a0 <== NOT EXECUTED 528e6: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 528ea: 2140 0068 movel %d0,%a0@(104) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 528ee: 203c 0004 d570 movel #316784,%d0 <== NOT EXECUTED 528f4: 2140 0064 movel %d0,%a0@(100) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 528f8: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 528fc: 42a8 006c clrl %a0@(108) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 52900: 214a 0054 movel %a2,%a0@(84) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 52904: 4868 0048 pea %a0@(72) <== NOT EXECUTED 52908: 4879 0006 8260 pea 68260 <_Watchdog_Ticks_chain> <== NOT EXECUTED 5290e: 4eb9 0004 ea00 jsr 4ea00 <_Watchdog_Insert> <== NOT EXECUTED _Thread_Delay_ended, _Thread_Executing->Object.id, NULL ); _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks ); _Thread_Enable_dispatch(); 52914: 4eb9 0004 d708 jsr 4d708 <_Thread_Enable_dispatch> <== NOT EXECUTED /* calculate time remaining */ if ( rmtp ) { 5291a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 52920: 4a8b tstl %a3 <== NOT EXECUTED 52922: 6720 beqs 52944 <== NOT EXECUTED ticks -= 52924: 2079 0006 8242 moveal 68242 <_Thread_Executing>,%a0 <== NOT EXECUTED 5292a: 2428 005c movel %a0@(92),%d2 <== NOT EXECUTED 5292e: 94a8 0060 subl %a0@(96),%d2 <== NOT EXECUTED _Thread_Executing->Timer.stop_time - _Thread_Executing->Timer.start_time; _Timespec_From_ticks( ticks, rmtp ); 52932: 2f0b movel %a3,%sp@- <== NOT EXECUTED _Thread_Enable_dispatch(); /* calculate time remaining */ if ( rmtp ) { ticks -= 52934: d48a addl %a2,%d2 <== NOT EXECUTED _Thread_Executing->Timer.stop_time - _Thread_Executing->Timer.start_time; _Timespec_From_ticks( ticks, rmtp ); 52936: 2f02 movel %d2,%sp@- <== NOT EXECUTED 52938: 4eb9 0005 43f0 jsr 543f0 <_Timespec_From_ticks> <== NOT EXECUTED /* * If there is time remaining, then we were interrupted by a signal. */ if ( ticks ) 5293e: 508f addql #8,%sp <== NOT EXECUTED 52940: 4a82 tstl %d2 <== NOT EXECUTED 52942: 6624 bnes 52968 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINTR ); } return 0; } 52944: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 5294a: 4e5e unlk %fp <== NOT EXECUTED /* * If there is time remaining, then we were interrupted by a signal. */ if ( ticks ) rtems_set_errno_and_return_minus_one( EINTR ); 5294c: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 5294e: 4e75 rts <== NOT EXECUTED * * 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 ) rtems_set_errno_and_return_minus_one( EINVAL ); 52950: 4eb9 0005 7168 jsr 57168 <__errno> <== NOT EXECUTED if ( ticks ) rtems_set_errno_and_return_minus_one( EINTR ); } return 0; } 52956: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED * * 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 ) rtems_set_errno_and_return_minus_one( EINVAL ); 5295c: 2040 moveal %d0,%a0 <== NOT EXECUTED 5295e: 7216 moveq #22,%d1 <== NOT EXECUTED if ( ticks ) rtems_set_errno_and_return_minus_one( EINTR ); } return 0; } 52960: 4e5e unlk %fp <== NOT EXECUTED * * 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 ) rtems_set_errno_and_return_minus_one( EINVAL ); 52962: 70ff moveq #-1,%d0 <== NOT EXECUTED 52964: 2081 movel %d1,%a0@ <== NOT EXECUTED if ( ticks ) rtems_set_errno_and_return_minus_one( EINTR ); } return 0; } 52966: 4e75 rts <== NOT EXECUTED /* * If there is time remaining, then we were interrupted by a signal. */ if ( ticks ) rtems_set_errno_and_return_minus_one( EINTR ); 52968: 4eb9 0005 7168 jsr 57168 <__errno> <== NOT EXECUTED 5296e: 2040 moveal %d0,%a0 <== NOT EXECUTED 52970: 7004 moveq #4,%d0 <== NOT EXECUTED } return 0; } 52972: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED /* * If there is time remaining, then we were interrupted by a signal. */ if ( ticks ) rtems_set_errno_and_return_minus_one( EINTR ); 52978: 2080 movel %d0,%a0@ <== NOT EXECUTED } return 0; } 5297a: 4e5e unlk %fp <== NOT EXECUTED /* * If there is time remaining, then we were interrupted by a signal. */ if ( ticks ) rtems_set_errno_and_return_minus_one( EINTR ); 5297c: 70ff moveq #-1,%d0 <== NOT EXECUTED } return 0; } 5297e: 4e75 rts 00042b12 : */ int newlib_free_buffers( FILE *fp ) { 42b12: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42b16: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42b18: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED switch ( fileno(fp) ) { 42b1c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42b1e: 4eb9 0004 d6d8 jsr 4d6d8 <== NOT EXECUTED 42b24: 588f addql #4,%sp <== NOT EXECUTED 42b26: 7202 moveq #2,%d1 <== NOT EXECUTED 42b28: b280 cmpl %d0,%d1 <== NOT EXECUTED 42b2a: 6414 bccs 42b40 <== NOT EXECUTED fp->_flags &= ~__SMBF; fp->_bf._base = fp->_p = (unsigned char *) NULL; } break; default: fclose(fp); 42b2c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42b2e: 4eb9 0004 d50e jsr 4d50e <== NOT EXECUTED 42b34: 588f addql #4,%sp <== NOT EXECUTED } return 0; } 42b36: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 42b3a: 4e5e unlk %fp <== NOT EXECUTED 42b3c: 4280 clrl %d0 <== NOT EXECUTED 42b3e: 4e75 rts <== NOT EXECUTED { switch ( fileno(fp) ) { case 0: case 1: case 2: if (fp->_flags & __SMBF) { 42b40: 302a 000c movew %a2@(12),%d0 <== NOT EXECUTED 42b44: 48c0 extl %d0 <== NOT EXECUTED 42b46: 4a00 tstb %d0 <== NOT EXECUTED 42b48: 6cec bges 42b36 <== NOT EXECUTED free( fp->_bf._base ); 42b4a: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 42b4e: 4eb9 0004 a5fc jsr 4a5fc <== NOT EXECUTED fp->_flags &= ~__SMBF; 42b54: 302a 000c movew %a2@(12),%d0 <== NOT EXECUTED 42b58: 0880 0007 bclr #7,%d0 <== NOT EXECUTED 42b5c: 3540 000c movew %d0,%a2@(12) <== NOT EXECUTED fp->_bf._base = fp->_p = (unsigned char *) NULL; 42b60: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED 42b64: 588f addql #4,%sp <== NOT EXECUTED break; default: fclose(fp); } return 0; } 42b66: 4280 clrl %d0 <== NOT EXECUTED case 1: case 2: if (fp->_flags & __SMBF) { free( fp->_bf._base ); fp->_flags &= ~__SMBF; fp->_bf._base = fp->_p = (unsigned char *) NULL; 42b68: 4292 clrl %a2@ <== NOT EXECUTED break; default: fclose(fp); } return 0; } 42b6a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 42b6e: 4e5e unlk %fp <== NOT EXECUTED 42b70: 4e75 rts 00042eaa : rtems_device_driver null_close( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 42eaa: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return NULL_SUCCESSFUL; } 42eae: 4e5e unlk %fp <== NOT EXECUTED 42eb0: 4280 clrl %d0 <== NOT EXECUTED 42eb2: 4e75 rts 00042ed6 : rtems_device_driver null_control( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 42ed6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return NULL_SUCCESSFUL; } 42eda: 4e5e unlk %fp <== NOT EXECUTED 42edc: 4280 clrl %d0 <== NOT EXECUTED 42ede: 4e75 rts 00042ee0 : rtems_device_driver null_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 42ee0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_device_driver status; if ( !initialized ) { 42ee4: 4a39 0005 b660 tstb 5b660 <== NOT EXECUTED 42eea: 6706 beqs 42ef2 <== NOT EXECUTED NULL_major = major; } return RTEMS_SUCCESSFUL; } 42eec: 4e5e unlk %fp <== NOT EXECUTED 42eee: 4280 clrl %d0 <== NOT EXECUTED 42ef0: 4e75 rts <== NOT EXECUTED rtems_device_driver status; if ( !initialized ) { initialized = 1; status = rtems_io_register_name( 42ef2: 42a7 clrl %sp@- <== NOT EXECUTED ) { rtems_device_driver status; if ( !initialized ) { initialized = 1; 42ef4: 7001 moveq #1,%d0 <== NOT EXECUTED 42ef6: 13c0 0005 b660 moveb %d0,5b660 <== NOT EXECUTED status = rtems_io_register_name( 42efc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42f00: 4879 0005 8ca4 pea 58ca4 <== NOT EXECUTED 42f06: 4eb9 0004 3030 jsr 43030 <== NOT EXECUTED "/dev/null", major, (rtems_device_minor_number) 0 ); if (status != RTEMS_SUCCESSFUL) 42f0c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42f12: 4a80 tstl %d0 <== NOT EXECUTED 42f14: 6610 bnes 42f26 <== NOT EXECUTED rtems_fatal_error_occurred(status); NULL_major = major; 42f16: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED } return RTEMS_SUCCESSFUL; } 42f1a: 4e5e unlk %fp <== NOT EXECUTED ); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred(status); NULL_major = major; 42f1c: 23c0 0005 be6c movel %d0,5be6c <== NOT EXECUTED } return RTEMS_SUCCESSFUL; } 42f22: 4280 clrl %d0 <== NOT EXECUTED 42f24: 4e75 rts <== NOT EXECUTED major, (rtems_device_minor_number) 0 ); if (status != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred(status); 42f26: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42f28: 4eb9 0004 7074 jsr 47074 <== NOT EXECUTED ... 00042ea0 : rtems_device_driver null_open( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 42ea0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return NULL_SUCCESSFUL; } 42ea4: 4e5e unlk %fp <== NOT EXECUTED 42ea6: 4280 clrl %d0 <== NOT EXECUTED 42ea8: 4e75 rts 00042eb4 : rtems_device_driver null_read( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 42eb4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return NULL_SUCCESSFUL; } 42eb8: 4e5e unlk %fp <== NOT EXECUTED 42eba: 4280 clrl %d0 <== NOT EXECUTED 42ebc: 4e75 rts 00042ebe : rtems_device_driver null_write( rtems_device_major_number major, rtems_device_minor_number minor, void *pargp ) { 42ebe: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42ec2: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED rtems_libio_rw_args_t *rw_args = (rtems_libio_rw_args_t *) pargp; if ( rw_args ) 42ec6: 4a88 tstl %a0 <== NOT EXECUTED 42ec8: 6706 beqs 42ed0 <== NOT EXECUTED rw_args->bytes_moved = rw_args->count; 42eca: 2168 000c 0014 movel %a0@(12),%a0@(20) <== NOT EXECUTED return NULL_SUCCESSFUL; } 42ed0: 4e5e unlk %fp <== NOT EXECUTED 42ed2: 4280 clrl %d0 <== NOT EXECUTED 42ed4: 4e75 rts 00042d80 : int open( const char *pathname, int flags, ... ) { 42d80: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 42d84: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 42d88: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * Set the Evaluation flags */ eval_flags = 0; status = flags + 1; 42d8c: 2003 movel %d3,%d0 <== NOT EXECUTED 42d8e: 5280 addql #1,%d0 <== NOT EXECUTED if ( ( status & _FREAD ) == _FREAD ) 42d90: 0800 0000 btst #0,%d0 <== NOT EXECUTED 42d94: 6600 00de bnew 42e74 <== NOT EXECUTED 42d98: 4282 clrl %d2 <== NOT EXECUTED eval_flags |= RTEMS_LIBIO_PERMS_READ; if ( ( status & _FWRITE ) == _FWRITE ) 42d9a: 0800 0001 btst #1,%d0 <== NOT EXECUTED 42d9e: 6704 beqs 42da4 <== NOT EXECUTED eval_flags |= RTEMS_LIBIO_PERMS_WRITE; 42da0: 7002 moveq #2,%d0 <== NOT EXECUTED 42da2: 8480 orl %d0,%d2 <== NOT EXECUTED va_start(ap, flags); mode = va_arg( ap, int ); 42da4: 282e 0010 movel %fp@(16),%d4 <== 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(); 42da8: 4eb9 0004 aa2a jsr 4aa2a <== NOT EXECUTED 42dae: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( iop == 0 ) { 42db0: 4a80 tstl %d0 <== NOT EXECUTED 42db2: 6700 00c6 beqw 42e7a <== NOT EXECUTED /* * See if the file exists. */ status = rtems_filesystem_evaluate_path( 42db6: 4878 0001 pea 1 <== NOT EXECUTED 42dba: 47ee fff0 lea %fp@(-16),%a3 <== NOT EXECUTED 42dbe: 4bf9 0004 260c lea 4260c ,%a5 <== NOT EXECUTED 42dc4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 42dc6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42dc8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42dcc: 4e95 jsr %a5@ <== NOT EXECUTED pathname, eval_flags, &loc, true ); if ( status == -1 ) { 42dce: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 42dd4: 72ff moveq #-1,%d1 <== NOT EXECUTED 42dd6: b280 cmpl %d0,%d1 <== NOT EXECUTED 42dd8: 6700 00ea beqw 42ec4 <== NOT EXECUTED if ( status != 0 ) { /* The file did not exist */ rc = EACCES; goto done; } } else if ((flags & (O_EXCL|O_CREAT)) == (O_EXCL|O_CREAT)) { 42ddc: 2003 movel %d3,%d0 <== NOT EXECUTED 42dde: 0280 0000 0a00 andil #2560,%d0 <== NOT EXECUTED 42de4: 0c80 0000 0a00 cmpil #2560,%d0 <== NOT EXECUTED 42dea: 6700 00a8 beqw 42e94 <== NOT EXECUTED * returned by successful path evaluation. */ iop->handlers = loc.handlers; iop->file_info = loc.node_access; iop->flags |= rtems_libio_fcntl_flags( flags ); 42dee: 242a 000c movel %a2@(12),%d2 <== NOT EXECUTED /* * Fill in the file control block based on the loc structure * returned by successful path evaluation. */ iop->handlers = loc.handlers; 42df2: 256e fff4 0030 movel %fp@(-12),%a2@(48) <== NOT EXECUTED iop->file_info = loc.node_access; 42df8: 256e fff0 002c movel %fp@(-16),%a2@(44) <== NOT EXECUTED iop->flags |= rtems_libio_fcntl_flags( flags ); 42dfe: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42e00: 4eb9 0004 aaf0 jsr 4aaf0 <== NOT EXECUTED iop->pathinfo = loc; 42e06: 2553 0010 movel %a3@,%a2@(16) <== NOT EXECUTED if ( !iop->handlers->open_h ) { 42e0a: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED */ iop->handlers = loc.handlers; iop->file_info = loc.node_access; iop->flags |= rtems_libio_fcntl_flags( flags ); iop->pathinfo = loc; 42e0e: 256e fff4 0014 movel %fp@(-12),%a2@(20) <== NOT EXECUTED if ( !iop->handlers->open_h ) { 42e14: 2050 moveal %a0@,%a0 <== NOT EXECUTED */ iop->handlers = loc.handlers; iop->file_info = loc.node_access; iop->flags |= rtems_libio_fcntl_flags( flags ); iop->pathinfo = loc; 42e16: 256e fff8 0018 movel %fp@(-8),%a2@(24) <== NOT EXECUTED * returned by successful path evaluation. */ iop->handlers = loc.handlers; iop->file_info = loc.node_access; iop->flags |= rtems_libio_fcntl_flags( flags ); 42e1c: 8082 orl %d2,%d0 <== NOT EXECUTED iop->pathinfo = loc; 42e1e: 256e fffc 001c movel %fp@(-4),%a2@(28) <== NOT EXECUTED if ( !iop->handlers->open_h ) { 42e24: 588f addql #4,%sp <== NOT EXECUTED * returned by successful path evaluation. */ iop->handlers = loc.handlers; iop->file_info = loc.node_access; iop->flags |= rtems_libio_fcntl_flags( flags ); 42e26: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED iop->pathinfo = loc; if ( !iop->handlers->open_h ) { 42e2a: 4a88 tstl %a0 <== NOT EXECUTED 42e2c: 6700 00b4 beqw 42ee2 <== NOT EXECUTED rc = ENOTSUP; goto done; } rc = (*iop->handlers->open_h)( iop, pathname, flags, mode ); 42e30: 2f04 movel %d4,%sp@- <== NOT EXECUTED 42e32: 49f9 0004 d3c0 lea 4d3c0 <__errno>,%a4 <== NOT EXECUTED 42e38: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42e3a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42e3e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42e40: 4e90 jsr %a0@ <== NOT EXECUTED if ( rc ) 42e42: 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 ); 42e48: 2400 movel %d0,%d2 <== NOT EXECUTED if ( rc ) 42e4a: 6600 00b2 bnew 42efe <== NOT EXECUTED /* * Optionally truncate the file. */ if ( (flags & O_TRUNC) == O_TRUNC ) { 42e4e: 0803 000a btst #10,%d3 <== NOT EXECUTED 42e52: 6600 00b6 bnew 42f0a <== 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; 42e56: 200a movel %a2,%d0 <== NOT EXECUTED 42e58: 90b9 0005 9b14 subl 59b14 ,%d0 <== NOT EXECUTED 42e5e: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 42e64: e480 asrl #2,%d0 <== NOT EXECUTED } 42e66: 4cee 3c1c ffd4 moveml %fp@(-44),%d2-%d4/%a2-%a5 <== 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; 42e6c: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED } 42e70: 4e5e unlk %fp <== NOT EXECUTED 42e72: 4e75 rts <== NOT EXECUTED * Set the Evaluation flags */ eval_flags = 0; status = flags + 1; if ( ( status & _FREAD ) == _FREAD ) 42e74: 7404 moveq #4,%d2 <== NOT EXECUTED 42e76: 6000 ff22 braw 42d9a <== NOT EXECUTED * descriptors are obtained using socket(), not open(). */ /* allocate a file control block */ iop = rtems_libio_allocate(); if ( iop == 0 ) { 42e7a: 7417 moveq #23,%d2 <== NOT EXECUTED 42e7c: 49f9 0004 d3c0 lea 4d3c0 <__errno>,%a4 <== NOT EXECUTED if ( rc ) { if ( iop ) rtems_libio_free( iop ); if ( loc_to_free ) rtems_filesystem_freenode( loc_to_free ); rtems_set_errno_and_return_minus_one( rc ); 42e82: 4e94 jsr %a4@ <== NOT EXECUTED 42e84: 2040 moveal %d0,%a0 <== NOT EXECUTED 42e86: 70ff moveq #-1,%d0 <== NOT EXECUTED 42e88: 2082 movel %d2,%a0@ <== NOT EXECUTED } return iop - rtems_libio_iops; } 42e8a: 4cee 3c1c ffd4 moveml %fp@(-44),%d2-%d4/%a2-%a5 <== NOT EXECUTED 42e90: 4e5e unlk %fp <== NOT EXECUTED 42e92: 4e75 rts <== NOT EXECUTED if ( status != 0 ) { /* The file did not exist */ rc = EACCES; goto done; } } else if ((flags & (O_EXCL|O_CREAT)) == (O_EXCL|O_CREAT)) { 42e94: 7411 moveq #17,%d2 <== NOT EXECUTED 42e96: 49f9 0004 d3c0 lea 4d3c0 <__errno>,%a4 <== NOT EXECUTED done: va_end(ap); if ( rc ) { if ( iop ) 42e9c: 4a8a tstl %a2 <== NOT EXECUTED 42e9e: 665e bnes 42efe <== NOT EXECUTED rtems_libio_free( iop ); if ( loc_to_free ) 42ea0: 4a8b tstl %a3 <== NOT EXECUTED 42ea2: 67de beqs 42e82 <== NOT EXECUTED rtems_filesystem_freenode( loc_to_free ); 42ea4: 206b 0008 moveal %a3@(8),%a0 <== NOT EXECUTED 42ea8: 4a88 tstl %a0 <== NOT EXECUTED 42eaa: 67d6 beqs 42e82 <== NOT EXECUTED 42eac: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 42eb0: 4a88 tstl %a0 <== NOT EXECUTED 42eb2: 67ce beqs 42e82 <== NOT EXECUTED 42eb4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 42eb6: 4e90 jsr %a0@ <== NOT EXECUTED 42eb8: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( rc ); 42eba: 4e94 jsr %a4@ <== NOT EXECUTED 42ebc: 2040 moveal %d0,%a0 <== NOT EXECUTED 42ebe: 2082 movel %d2,%a0@ <== NOT EXECUTED 42ec0: 70ff moveq #-1,%d0 <== NOT EXECUTED 42ec2: 60c6 bras 42e8a <== NOT EXECUTED status = rtems_filesystem_evaluate_path( pathname, eval_flags, &loc, true ); if ( status == -1 ) { if ( errno != ENOENT ) { 42ec4: 49f9 0004 d3c0 lea 4d3c0 <__errno>,%a4 <== NOT EXECUTED 42eca: 4e94 jsr %a4@ <== NOT EXECUTED 42ecc: 2040 moveal %d0,%a0 <== NOT EXECUTED 42ece: 7002 moveq #2,%d0 <== NOT EXECUTED 42ed0: b090 cmpl %a0@,%d0 <== NOT EXECUTED 42ed2: 661c bnes 42ef0 <== 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) ) { 42ed4: 0803 0009 btst #9,%d3 <== NOT EXECUTED 42ed8: 6600 008c bnew 42f66 <== NOT EXECUTED 42edc: 97cb subal %a3,%a3 <== NOT EXECUTED 42ede: 7402 moveq #2,%d2 <== NOT EXECUTED 42ee0: 60ba bras 42e9c <== 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; 42ee2: 243c 0000 0086 movel #134,%d2 <== NOT EXECUTED 42ee8: 49f9 0004 d3c0 lea 4d3c0 <__errno>,%a4 <== NOT EXECUTED 42eee: 60ac bras 42e9c <== NOT EXECUTED } /* Create the node for the new regular file */ rc = mknod( pathname, S_IFREG | mode, 0LL ); if ( rc ) { rc = errno; 42ef0: 4e94 jsr %a4@ <== NOT EXECUTED 42ef2: 2040 moveal %d0,%a0 <== NOT EXECUTED 42ef4: 2410 movel %a0@,%d2 <== NOT EXECUTED */ done: va_end(ap); if ( rc ) { 42ef6: 6700 ff5e beqw 42e56 <== NOT EXECUTED 42efa: 97cb subal %a3,%a3 <== NOT EXECUTED 42efc: 609e bras 42e9c <== NOT EXECUTED if ( iop ) rtems_libio_free( iop ); 42efe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42f00: 4eb9 0004 a99a jsr 4a99a <== NOT EXECUTED 42f06: 588f addql #4,%sp <== NOT EXECUTED 42f08: 6096 bras 42ea0 <== NOT EXECUTED /* * Optionally truncate the file. */ if ( (flags & O_TRUNC) == O_TRUNC ) { rc = ftruncate( iop - rtems_libio_iops, 0 ); 42f0a: 200a movel %a2,%d0 <== NOT EXECUTED 42f0c: 90b9 0005 9b14 subl 59b14 ,%d0 <== NOT EXECUTED 42f12: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 42f18: e480 asrl #2,%d0 <== NOT EXECUTED 42f1a: 4c00 1800 mulsl %d0,%d1 <== NOT EXECUTED 42f1e: 42a7 clrl %sp@- <== NOT EXECUTED 42f20: 2f01 movel %d1,%sp@- <== NOT EXECUTED 42f22: 4eb9 0004 a68c jsr 4a68c <== NOT EXECUTED if ( rc ) { 42f28: 508f addql #8,%sp <== NOT EXECUTED /* * Optionally truncate the file. */ if ( (flags & O_TRUNC) == O_TRUNC ) { rc = ftruncate( iop - rtems_libio_iops, 0 ); 42f2a: 2400 movel %d0,%d2 <== NOT EXECUTED if ( rc ) { 42f2c: 6700 ff28 beqw 42e56 <== NOT EXECUTED if(errno) rc = errno; 42f30: 49f9 0004 d3c0 lea 4d3c0 <__errno>,%a4 <== NOT EXECUTED 42f36: 4e94 jsr %a4@ <== NOT EXECUTED 42f38: 2040 moveal %d0,%a0 <== NOT EXECUTED 42f3a: 4a90 tstl %a0@ <== NOT EXECUTED 42f3c: 666c bnes 42faa <== NOT EXECUTED close( iop - rtems_libio_iops ); 42f3e: 95f9 0005 9b14 subal 59b14 ,%a2 <== NOT EXECUTED 42f44: 200a movel %a2,%d0 <== NOT EXECUTED 42f46: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 42f4c: e480 asrl #2,%d0 <== NOT EXECUTED 42f4e: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 42f52: 95ca subal %a2,%a2 <== NOT EXECUTED 42f54: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42f56: 4eb9 0004 a550 jsr 4a550 <== NOT EXECUTED 42f5c: 588f addql #4,%sp <== NOT EXECUTED */ done: va_end(ap); if ( rc ) { 42f5e: 4a82 tstl %d2 <== NOT EXECUTED 42f60: 6700 fef4 beqw 42e56 <== NOT EXECUTED 42f64: 6094 bras 42efa <== NOT EXECUTED rc = ENOENT; goto done; } /* Create the node for the new regular file */ rc = mknod( pathname, S_IFREG | mode, 0LL ); 42f66: 42a7 clrl %sp@- <== NOT EXECUTED 42f68: 2204 movel %d4,%d1 <== NOT EXECUTED 42f6a: 08c1 000f bset #15,%d1 <== NOT EXECUTED 42f6e: 42a7 clrl %sp@- <== NOT EXECUTED 42f70: 2f01 movel %d1,%sp@- <== NOT EXECUTED 42f72: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42f76: 4eb9 0004 28a0 jsr 428a0 <== NOT EXECUTED if ( rc ) { 42f7c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 42f82: 4a80 tstl %d0 <== NOT EXECUTED 42f84: 6600 ff6a bnew 42ef0 <== NOT EXECUTED rc = errno; goto done; } /* Sanity check to see if the file name exists after the mknod() */ status = rtems_filesystem_evaluate_path( pathname, 0x0, &loc, true ); 42f88: 4878 0001 pea 1 <== NOT EXECUTED 42f8c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 42f8e: 42a7 clrl %sp@- <== NOT EXECUTED 42f90: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42f94: 4e95 jsr %a5@ <== NOT EXECUTED if ( status != 0 ) { /* The file did not exist */ 42f96: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 42f9c: 4a80 tstl %d0 <== NOT EXECUTED 42f9e: 6700 fe4e beqw 42dee <== NOT EXECUTED 42fa2: 97cb subal %a3,%a3 <== NOT EXECUTED 42fa4: 740d moveq #13,%d2 <== NOT EXECUTED 42fa6: 6000 fef4 braw 42e9c <== NOT EXECUTED */ if ( (flags & O_TRUNC) == O_TRUNC ) { rc = ftruncate( iop - rtems_libio_iops, 0 ); if ( rc ) { if(errno) rc = errno; 42faa: 4e94 jsr %a4@ <== NOT EXECUTED close( iop - rtems_libio_iops ); 42fac: 95f9 0005 9b14 subal 59b14 ,%a2 <== NOT EXECUTED */ if ( (flags & O_TRUNC) == O_TRUNC ) { rc = ftruncate( iop - rtems_libio_iops, 0 ); if ( rc ) { if(errno) rc = errno; 42fb2: 2040 moveal %d0,%a0 <== NOT EXECUTED close( iop - rtems_libio_iops ); 42fb4: 200a movel %a2,%d0 <== NOT EXECUTED 42fb6: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 42fbc: e480 asrl #2,%d0 <== NOT EXECUTED 42fbe: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED */ if ( (flags & O_TRUNC) == O_TRUNC ) { rc = ftruncate( iop - rtems_libio_iops, 0 ); if ( rc ) { if(errno) rc = errno; 42fc2: 2410 movel %a0@,%d2 <== NOT EXECUTED close( iop - rtems_libio_iops ); 42fc4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42fc6: 4eb9 0004 a550 jsr 4a550 <== NOT EXECUTED 42fcc: 95ca subal %a2,%a2 <== NOT EXECUTED 42fce: 588f addql #4,%sp <== NOT EXECUTED 42fd0: 608c bras 42f5e <== NOT EXECUTED 00042d08 : /* * This is a replaceable stub */ void open_dev_console(void) { 42d08: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42d0c: 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) { 42d0e: 45f9 0004 2d80 lea 42d80 ,%a2 <== NOT EXECUTED 42d14: 42a7 clrl %sp@- <== NOT EXECUTED 42d16: 42a7 clrl %sp@- <== NOT EXECUTED 42d18: 4879 0005 696a pea 5696a <== NOT EXECUTED 42d1e: 4e92 jsr %a2@ <== NOT EXECUTED 42d20: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42d26: 72ff moveq #-1,%d1 <== NOT EXECUTED 42d28: b280 cmpl %d0,%d1 <== NOT EXECUTED 42d2a: 6734 beqs 42d60 <== 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) 42d2c: 42a7 clrl %sp@- <== NOT EXECUTED 42d2e: 4878 0001 pea 1 <== NOT EXECUTED 42d32: 4879 0005 696a pea 5696a <== NOT EXECUTED 42d38: 4e92 jsr %a2@ <== NOT EXECUTED 42d3a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42d40: 72ff moveq #-1,%d1 <== NOT EXECUTED 42d42: b280 cmpl %d0,%d1 <== NOT EXECUTED 42d44: 672e beqs 42d74 <== NOT EXECUTED rtems_fatal_error_occurred( error_code | '1' ); if ((stderr_fd = open("/dev/console", O_WRONLY, 0)) == -1) 42d46: 42a7 clrl %sp@- <== NOT EXECUTED 42d48: 4878 0001 pea 1 <== NOT EXECUTED 42d4c: 4879 0005 696a pea 5696a <== NOT EXECUTED 42d52: 4e92 jsr %a2@ <== NOT EXECUTED 42d54: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 42d5a: 72ff moveq #-1,%d1 <== NOT EXECUTED 42d5c: b280 cmpl %d0,%d1 <== NOT EXECUTED 42d5e: 6708 beqs 42d68 <== NOT EXECUTED rtems_fatal_error_occurred( error_code | '2' ); } 42d60: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 42d64: 4e5e unlk %fp <== NOT EXECUTED 42d66: 4e75 rts <== NOT EXECUTED */ if ((stdout_fd = open("/dev/console", O_WRONLY, 0)) == -1) rtems_fatal_error_occurred( error_code | '1' ); if ((stderr_fd = open("/dev/console", O_WRONLY, 0)) == -1) rtems_fatal_error_occurred( error_code | '2' ); 42d68: 2f3c 5354 4432 movel #1398031410,%sp@- <== NOT EXECUTED 42d6e: 4eb9 0004 6390 jsr 46390 <== 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) rtems_fatal_error_occurred( error_code | '1' ); 42d74: 2f3c 5354 4431 movel #1398031409,%sp@- <== NOT EXECUTED 42d7a: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED 00061824 : * open a directory. */ DIR * opendir( const char *name ) { 61824: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 61828: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED register DIR *dirp; register int fd; if ((fd = open(name, 0)) == -1) 6182c: 42a7 clrl %sp@- <== NOT EXECUTED 6182e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 61832: 4eb9 0004 71a4 jsr 471a4 <== NOT EXECUTED 61838: 2400 movel %d0,%d2 <== NOT EXECUTED 6183a: 508f addql #8,%sp <== NOT EXECUTED 6183c: 70ff moveq #-1,%d0 <== NOT EXECUTED 6183e: b082 cmpl %d2,%d0 <== NOT EXECUTED 61840: 676a beqs 618ac <== NOT EXECUTED return NULL; if (fcntl(fd, F_SETFD, 1) == -1 || 61842: 4878 0001 pea 1 <== NOT EXECUTED 61846: 4878 0002 pea 2 <== NOT EXECUTED 6184a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6184c: 4eb9 0006 dc1c jsr 6dc1c <== NOT EXECUTED 61852: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 61858: 72ff moveq #-1,%d1 <== NOT EXECUTED 6185a: b280 cmpl %d0,%d1 <== NOT EXECUTED 6185c: 6744 beqs 618a2 <== NOT EXECUTED 6185e: 47f9 0004 6828 lea 46828 ,%a3 <== NOT EXECUTED 61864: 4878 0018 pea 18 <== NOT EXECUTED 61868: 4e93 jsr %a3@ <== NOT EXECUTED 6186a: 588f addql #4,%sp <== NOT EXECUTED 6186c: 2440 moveal %d0,%a2 <== NOT EXECUTED 6186e: 4a80 tstl %d0 <== NOT EXECUTED 61870: 6730 beqs 618a2 <== 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); 61872: 4878 0200 pea 200 <== NOT EXECUTED 61876: 4e93 jsr %a3@ <== NOT EXECUTED dirp->dd_len = 512; 61878: 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); 6187e: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED dirp->dd_len = 512; if (dirp->dd_buf == NULL) { 61882: 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; 61884: 2541 0010 movel %d1,%a2@(16) <== NOT EXECUTED if (dirp->dd_buf == NULL) { 61888: 4a80 tstl %d0 <== NOT EXECUTED 6188a: 672e beqs 618ba <== NOT EXECUTED dirp->dd_seek = 0; /* * Set up seek point for rewinddir. */ return dirp; } 6188c: 200a movel %a2,%d0 <== NOT EXECUTED if (dirp->dd_buf == NULL) { close (fd); return NULL; } dirp->dd_fd = fd; 6188e: 2482 movel %d2,%a2@ <== NOT EXECUTED dirp->dd_loc = 0; 61890: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED dirp->dd_seek = 0; 61894: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED /* * Set up seek point for rewinddir. */ return dirp; } 61898: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 6189e: 4e5e unlk %fp <== NOT EXECUTED 618a0: 4e75 rts <== NOT EXECUTED if ((fd = open(name, 0)) == -1) return NULL; if (fcntl(fd, F_SETFD, 1) == -1 || (dirp = (DIR *)malloc(sizeof(DIR))) == NULL) { close (fd); 618a2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 618a4: 4eb9 0004 5d14 jsr 45d14 <== NOT EXECUTED 618aa: 588f addql #4,%sp <== NOT EXECUTED 618ac: 95ca subal %a2,%a2 <== NOT EXECUTED dirp->dd_seek = 0; /* * Set up seek point for rewinddir. */ return dirp; } 618ae: 200a movel %a2,%d0 <== NOT EXECUTED 618b0: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 618b6: 4e5e unlk %fp <== NOT EXECUTED 618b8: 4e75 rts <== NOT EXECUTED */ dirp->dd_buf = malloc (512); dirp->dd_len = 512; if (dirp->dd_buf == NULL) { close (fd); 618ba: 2f02 movel %d2,%sp@- <== NOT EXECUTED 618bc: 4eb9 0004 5d14 jsr 45d14 <== NOT EXECUTED 618c2: 95ca subal %a2,%a2 <== NOT EXECUTED dirp->dd_seek = 0; /* * Set up seek point for rewinddir. */ return dirp; } 618c4: 200a movel %a2,%d0 <== NOT EXECUTED */ dirp->dd_buf = malloc (512); dirp->dd_len = 512; if (dirp->dd_buf == NULL) { close (fd); 618c6: 588f addql #4,%sp <== NOT EXECUTED dirp->dd_seek = 0; /* * Set up seek point for rewinddir. */ return dirp; } 618c8: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 618ce: 4e5e unlk %fp <== NOT EXECUTED 618d0: 4e75 rts <== NOT EXECUTED ... 00043bd0 : /* * Handle output processing */ static void oproc (unsigned char c, struct rtems_termios_tty *tty) { 43bd0: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 43bd4: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 43bd8: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 43bdc: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED int i; if (tty->termios.c_oflag & OPOST) { 43be0: 222b 0034 movel %a3@(52),%d1 <== NOT EXECUTED 43be4: 45f9 0004 3aa2 lea 43aa2 ,%a2 <== NOT EXECUTED /* * Handle output processing */ static void oproc (unsigned char c, struct rtems_termios_tty *tty) { 43bea: 1d40 fffe moveb %d0,%fp@(-2) <== NOT EXECUTED int i; if (tty->termios.c_oflag & OPOST) { 43bee: 0801 0000 btst #0,%d1 <== NOT EXECUTED 43bf2: 6742 beqs 43c36 <== NOT EXECUTED switch (c) { 43bf4: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 43bfa: 7409 moveq #9,%d2 <== NOT EXECUTED 43bfc: b480 cmpl %d0,%d2 <== NOT EXECUTED 43bfe: 6700 009c beqw 43c9c <== NOT EXECUTED 43c02: 654e bcss 43c52 <== NOT EXECUTED 43c04: 7608 moveq #8,%d3 <== NOT EXECUTED 43c06: b680 cmpl %d0,%d3 <== NOT EXECUTED 43c08: 6700 0116 beqw 43d20 <== NOT EXECUTED if (tty->column > 0) tty->column--; break; default: if (tty->termios.c_oflag & OLCUC) 43c0c: 0801 0001 btst #1,%d1 <== NOT EXECUTED 43c10: 6600 0138 bnew 43d4a <== NOT EXECUTED 43c14: 2079 0005 8620 moveal 58620 <__ctype_ptr>,%a0 <== NOT EXECUTED c = toupper(c); if (!iscntrl(c)) 43c1a: 4280 clrl %d0 <== NOT EXECUTED 43c1c: 102e fffe moveb %fp@(-2),%d0 <== NOT EXECUTED 43c20: 1230 0800 moveb %a0@(00000000,%d0:l),%d1 <== NOT EXECUTED 43c24: 49c1 extbl %d1 <== NOT EXECUTED 43c26: 45f9 0004 3aa2 lea 43aa2 ,%a2 <== NOT EXECUTED 43c2c: 0801 0005 btst #5,%d1 <== NOT EXECUTED 43c30: 6604 bnes 43c36 <== NOT EXECUTED tty->column++; 43c32: 52ab 0028 addql #1,%a3@(40) <== NOT EXECUTED break; } } rtems_termios_puts (&c, 1, tty); 43c36: 2f0b movel %a3,%sp@- <== NOT EXECUTED 43c38: 4878 0001 pea 1 <== NOT EXECUTED 43c3c: 486e fffe pea %fp@(-2) <== NOT EXECUTED 43c40: 4e92 jsr %a2@ <== NOT EXECUTED 43c42: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 43c48: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 43c4e: 4e5e unlk %fp <== NOT EXECUTED 43c50: 4e75 rts <== NOT EXECUTED oproc (unsigned char c, struct rtems_termios_tty *tty) { int i; if (tty->termios.c_oflag & OPOST) { switch (c) { 43c52: 740a moveq #10,%d2 <== NOT EXECUTED 43c54: b480 cmpl %d0,%d2 <== NOT EXECUTED 43c56: 6700 0084 beqw 43cdc <== NOT EXECUTED 43c5a: 760d moveq #13,%d3 <== NOT EXECUTED 43c5c: b680 cmpl %d0,%d3 <== NOT EXECUTED 43c5e: 66ac bnes 43c0c <== NOT EXECUTED tty->column = 0; } break; case '\r': if ((tty->termios.c_oflag & ONOCR) && (tty->column == 0)) 43c60: 0801 0004 btst #4,%d1 <== NOT EXECUTED 43c64: 6706 beqs 43c6c <== NOT EXECUTED 43c66: 4aab 0028 tstl %a3@(40) <== NOT EXECUTED 43c6a: 67dc beqs 43c48 <== NOT EXECUTED return; if (tty->termios.c_oflag & OCRNL) { 43c6c: 44c1 movew %d1,%ccr <== NOT EXECUTED 43c6e: 6a00 00fc bplw 43d6c <== NOT EXECUTED c = '\n'; 43c72: 700a moveq #10,%d0 <== NOT EXECUTED 43c74: 45f9 0004 3aa2 lea 43aa2 ,%a2 <== NOT EXECUTED 43c7a: 1d40 fffe moveb %d0,%fp@(-2) <== NOT EXECUTED if (tty->termios.c_oflag & ONLRET) 43c7e: 0801 0005 btst #5,%d1 <== NOT EXECUTED 43c82: 67b2 beqs 43c36 <== NOT EXECUTED tty->column = 0; 43c84: 42ab 0028 clrl %a3@(40) <== NOT EXECUTED if (!iscntrl(c)) tty->column++; break; } } rtems_termios_puts (&c, 1, tty); 43c88: 2f0b movel %a3,%sp@- <== NOT EXECUTED 43c8a: 4878 0001 pea 1 <== NOT EXECUTED 43c8e: 486e fffe pea %fp@(-2) <== NOT EXECUTED 43c92: 4e92 jsr %a2@ <== NOT EXECUTED 43c94: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43c9a: 60ac bras 43c48 <== NOT EXECUTED } tty->column = 0; break; case '\t': i = 8 - (tty->column & 7); 43c9c: 242b 0028 movel %a3@(40),%d2 <== NOT EXECUTED 43ca0: 7007 moveq #7,%d0 <== NOT EXECUTED 43ca2: c082 andl %d2,%d0 <== NOT EXECUTED 43ca4: 7608 moveq #8,%d3 <== NOT EXECUTED 43ca6: 9680 subl %d0,%d3 <== NOT EXECUTED 43ca8: 2003 movel %d3,%d0 <== NOT EXECUTED if ((tty->termios.c_oflag & TABDLY) == XTABS) { 43caa: 0281 0000 1800 andil #6144,%d1 <== NOT EXECUTED 43cb0: 0c81 0000 1800 cmpil #6144,%d1 <== NOT EXECUTED 43cb6: 6700 00d4 beqw 43d8c <== NOT EXECUTED tty->column += i; rtems_termios_puts ( " ", i, tty); return; } tty->column += i; 43cba: d082 addl %d2,%d0 <== NOT EXECUTED 43cbc: 2740 0028 movel %d0,%a3@(40) <== NOT EXECUTED 43cc0: 45f9 0004 3aa2 lea 43aa2 ,%a2 <== NOT EXECUTED if (!iscntrl(c)) tty->column++; break; } } rtems_termios_puts (&c, 1, tty); 43cc6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 43cc8: 4878 0001 pea 1 <== NOT EXECUTED 43ccc: 486e fffe pea %fp@(-2) <== NOT EXECUTED 43cd0: 4e92 jsr %a2@ <== NOT EXECUTED 43cd2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43cd8: 6000 ff6e braw 43c48 <== NOT EXECUTED int i; if (tty->termios.c_oflag & OPOST) { switch (c) { case '\n': if (tty->termios.c_oflag & ONLRET) 43cdc: 0801 0005 btst #5,%d1 <== NOT EXECUTED 43ce0: 6704 beqs 43ce6 <== NOT EXECUTED tty->column = 0; 43ce2: 42ab 0028 clrl %a3@(40) <== NOT EXECUTED 43ce6: 45f9 0004 3aa2 lea 43aa2 ,%a2 <== NOT EXECUTED if (tty->termios.c_oflag & ONLCR) { 43cec: 44c1 movew %d1,%ccr <== NOT EXECUTED 43cee: 6600 ff46 bnew 43c36 <== NOT EXECUTED rtems_termios_puts ("\r", 1, tty); 43cf2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 43cf4: 4878 0001 pea 1 <== NOT EXECUTED 43cf8: 4879 0005 6e8a pea 56e8a <== NOT EXECUTED 43cfe: 4e92 jsr %a2@ <== NOT EXECUTED tty->column = 0; 43d00: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43d06: 42ab 0028 clrl %a3@(40) <== NOT EXECUTED if (!iscntrl(c)) tty->column++; break; } } rtems_termios_puts (&c, 1, tty); 43d0a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 43d0c: 4878 0001 pea 1 <== NOT EXECUTED 43d10: 486e fffe pea %fp@(-2) <== NOT EXECUTED 43d14: 4e92 jsr %a2@ <== NOT EXECUTED 43d16: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43d1c: 6000 ff2a braw 43c48 <== NOT EXECUTED } tty->column += i; break; case '\b': if (tty->column > 0) 43d20: 202b 0028 movel %a3@(40),%d0 <== NOT EXECUTED 43d24: 45f9 0004 3aa2 lea 43aa2 ,%a2 <== NOT EXECUTED 43d2a: 6f00 ff0a blew 43c36 <== NOT EXECUTED tty->column--; 43d2e: 5380 subql #1,%d0 <== NOT EXECUTED 43d30: 2740 0028 movel %d0,%a3@(40) <== NOT EXECUTED if (!iscntrl(c)) tty->column++; break; } } rtems_termios_puts (&c, 1, tty); 43d34: 2f0b movel %a3,%sp@- <== NOT EXECUTED 43d36: 4878 0001 pea 1 <== NOT EXECUTED 43d3a: 486e fffe pea %fp@(-2) <== NOT EXECUTED 43d3e: 4e92 jsr %a2@ <== NOT EXECUTED 43d40: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43d46: 6000 ff00 braw 43c48 <== NOT EXECUTED tty->column--; break; default: if (tty->termios.c_oflag & OLCUC) c = toupper(c); 43d4a: 2079 0005 8620 moveal 58620 <__ctype_ptr>,%a0 <== NOT EXECUTED 43d50: 2200 movel %d0,%d1 <== NOT EXECUTED 43d52: 1030 0800 moveb %a0@(00000000,%d0:l),%d0 <== NOT EXECUTED 43d56: 49c0 extbl %d0 <== NOT EXECUTED 43d58: 0800 0001 btst #1,%d0 <== NOT EXECUTED 43d5c: 6706 beqs 43d64 <== NOT EXECUTED 43d5e: 0681 ffff ffe0 addil #-32,%d1 <== NOT EXECUTED 43d64: 1d41 fffe moveb %d1,%fp@(-2) <== NOT EXECUTED 43d68: 6000 feb0 braw 43c1a <== NOT EXECUTED c = '\n'; if (tty->termios.c_oflag & ONLRET) tty->column = 0; break; } tty->column = 0; 43d6c: 42ab 0028 clrl %a3@(40) <== NOT EXECUTED 43d70: 45f9 0004 3aa2 lea 43aa2 ,%a2 <== NOT EXECUTED if (!iscntrl(c)) tty->column++; break; } } rtems_termios_puts (&c, 1, tty); 43d76: 2f0b movel %a3,%sp@- <== NOT EXECUTED 43d78: 4878 0001 pea 1 <== NOT EXECUTED 43d7c: 486e fffe pea %fp@(-2) <== NOT EXECUTED 43d80: 4e92 jsr %a2@ <== NOT EXECUTED 43d82: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43d88: 6000 febe braw 43c48 <== NOT EXECUTED case '\t': i = 8 - (tty->column & 7); if ((tty->termios.c_oflag & TABDLY) == XTABS) { tty->column += i; rtems_termios_puts ( " ", i, tty); 43d8c: 2f0b movel %a3,%sp@- <== NOT EXECUTED break; case '\t': i = 8 - (tty->column & 7); if ((tty->termios.c_oflag & TABDLY) == XTABS) { tty->column += i; 43d8e: d483 addl %d3,%d2 <== NOT EXECUTED 43d90: 2742 0028 movel %d2,%a3@(40) <== NOT EXECUTED rtems_termios_puts ( " ", i, tty); 43d94: 2f03 movel %d3,%sp@- <== NOT EXECUTED 43d96: 4879 0005 6e8c pea 56e8c <== NOT EXECUTED 43d9c: 4eb9 0004 3aa2 jsr 43aa2 <== NOT EXECUTED 43da2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED tty->column++; break; } } rtems_termios_puts (&c, 1, tty); } 43da8: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 43dae: 4e5e unlk %fp <== NOT EXECUTED 43db0: 4e75 rts 00044c78 : long pathconf( const char *path, int name ) { 44c78: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44c7c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 44c7e: 2f02 movel %d2,%sp@- <== NOT EXECUTED int status; int fd; fd = open( path, O_RDONLY ); 44c80: 42a7 clrl %sp@- <== NOT EXECUTED 44c82: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 44c86: 4eb9 0004 4a04 jsr 44a04 <== NOT EXECUTED 44c8c: 2400 movel %d0,%d2 <== NOT EXECUTED if ( fd == -1 ) 44c8e: 508f addql #8,%sp <== NOT EXECUTED 44c90: 70ff moveq #-1,%d0 <== NOT EXECUTED 44c92: b082 cmpl %d2,%d0 <== NOT EXECUTED 44c94: 672a beqs 44cc0 <== NOT EXECUTED return -1; status = fpathconf( fd, name ); 44c96: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 44c9a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44c9c: 4eb9 0004 3a58 jsr 43a58 <== NOT EXECUTED (void) close( fd ); 44ca2: 2f02 movel %d2,%sp@- <== NOT EXECUTED fd = open( path, O_RDONLY ); if ( fd == -1 ) return -1; status = fpathconf( fd, name ); 44ca4: 2600 movel %d0,%d3 <== NOT EXECUTED (void) close( fd ); 44ca6: 4eb9 0004 320c jsr 4320c <== NOT EXECUTED return status; } 44cac: 2003 movel %d3,%d0 <== NOT EXECUTED 44cae: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44cb2: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED if ( fd == -1 ) return -1; status = fpathconf( fd, name ); (void) close( fd ); 44cb6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return status; } 44cbc: 4e5e unlk %fp <== NOT EXECUTED 44cbe: 4e75 rts <== NOT EXECUTED { int status; int fd; fd = open( path, O_RDONLY ); if ( fd == -1 ) 44cc0: 76ff moveq #-1,%d3 <== NOT EXECUTED status = fpathconf( fd, name ); (void) close( fd ); return status; } 44cc2: 2003 movel %d3,%d0 <== NOT EXECUTED 44cc4: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44cc8: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 44ccc: 4e5e unlk %fp <== NOT EXECUTED 44cce: 4e75 rts 000477e8 : /* * 3.4.2 Suspend Process Execution, P1003.1b-1993, p. 81 */ int pause( void ) { 477e8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 477ec: 2f02 movel %d2,%sp@- <== NOT EXECUTED sigset_t all_signals; int status; (void) sigfillset( &all_signals ); 477ee: 240e movel %fp,%d2 <== NOT EXECUTED 477f0: 5982 subql #4,%d2 <== NOT EXECUTED 477f2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 477f4: 4eb9 0004 8344 jsr 48344 <== NOT EXECUTED status = sigtimedwait( &all_signals, NULL, NULL ); 477fa: 42a7 clrl %sp@- <== NOT EXECUTED 477fc: 42a7 clrl %sp@- <== NOT EXECUTED 477fe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47800: 4eb9 0004 84dc jsr 484dc <== NOT EXECUTED return status; } 47806: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4780a: 4e5e unlk %fp <== NOT EXECUTED 4780c: 4e75 rts <== NOT EXECUTED ... 00044cd0 : #include int pipe( int filsdes[2] ) { 44cd0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED errno = ENOSYS; 44cd4: 4eb9 0004 fb4c jsr 4fb4c <__errno> <== NOT EXECUTED 44cda: 2040 moveal %d0,%a0 <== NOT EXECUTED 44cdc: 7058 moveq #88,%d0 <== NOT EXECUTED 44cde: 2080 movel %d0,%a0@ <== NOT EXECUTED return -1; } 44ce0: 4e5e unlk %fp <== NOT EXECUTED 44ce2: 70ff moveq #-1,%d0 <== NOT EXECUTED 44ce4: 4e75 rts <== NOT EXECUTED ... 00045ac8 : int posix_memalign( void **pointer, size_t alignment, size_t size ) { 45ac8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45acc: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED /* * Update call statistics */ MSBUMP(memalign_calls, 1); 45ad0: 52b9 0005 dbd4 addql #1,5dbd4 <== NOT EXECUTED if (((alignment - 1) & alignment) != 0 || (alignment < sizeof(void *))) 45ad6: 2001 movel %d1,%d0 <== NOT EXECUTED 45ad8: 5380 subql #1,%d0 <== NOT EXECUTED 45ada: c081 andl %d1,%d0 <== NOT EXECUTED 45adc: 6608 bnes 45ae6 <== NOT EXECUTED 45ade: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 45ae2: b081 cmpl %d1,%d0 <== NOT EXECUTED 45ae4: 6506 bcss 45aec <== NOT EXECUTED /* * rtems_memalign does all of the error checking work EXCEPT * for adding restrictionso on the alignment. */ return rtems_memalign( pointer, alignment, size ); } 45ae6: 4e5e unlk %fp <== NOT EXECUTED 45ae8: 7016 moveq #22,%d0 <== NOT EXECUTED 45aea: 4e75 rts <== NOT EXECUTED 45aec: 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 ); 45aee: 4ef9 0004 5ff4 jmp 45ff4 <== NOT EXECUTED 0004339e : * printk * * Kernel printf function requiring minimal infrastrure. */ void printk(const char *fmt, ...) { 4339e: 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); 433a2: 486e 000c pea %fp@(12) <== NOT EXECUTED 433a6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 433aa: 4eb9 0004 2ff4 jsr 42ff4 <== NOT EXECUTED 433b0: 508f addql #8,%sp <== NOT EXECUTED va_end(ap); /* clean up when done */ } 433b2: 4e5e unlk %fp <== NOT EXECUTED 433b4: 4e75 rts <== NOT EXECUTED ... 00044220 : int printk_plugin( void *ignored, const char *format, ... ) { 44220: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED va_list arg_pointer; va_start (arg_pointer, format); vprintk( format, arg_pointer ); 44224: 486e 0010 pea %fp@(16) <== NOT EXECUTED 44228: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4422c: 4eb9 0004 3e5c jsr 43e5c <== NOT EXECUTED va_end(arg_pointer); /* clean up when done */ return 0; } 44232: 4e5e unlk %fp <== NOT EXECUTED 44234: 4280 clrl %d0 <== NOT EXECUTED 44236: 4e75 rts 00045b34 : int pthread_atfork( void (*prepare)(void), void (*parent)(void), void (*child)(void) ) { 45b34: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45b38: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45b3e: 2040 moveal %d0,%a0 <== NOT EXECUTED 45b40: 7058 moveq #88,%d0 <== NOT EXECUTED 45b42: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45b44: 4e5e unlk %fp <== NOT EXECUTED 45b46: 70ff moveq #-1,%d0 <== NOT EXECUTED 45b48: 4e75 rts <== NOT EXECUTED ... 00049330 : #include int pthread_attr_destroy( pthread_attr_t *attr ) { 49330: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49334: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 49338: 4a88 tstl %a0 <== NOT EXECUTED 4933a: 670c beqs 49348 <== NOT EXECUTED 4933c: 4a90 tstl %a0@ <== NOT EXECUTED 4933e: 6708 beqs 49348 <== NOT EXECUTED return EINVAL; attr->is_initialized = FALSE; return 0; } 49340: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized ) return EINVAL; attr->is_initialized = FALSE; 49342: 4280 clrl %d0 <== NOT EXECUTED 49344: 4290 clrl %a0@ <== NOT EXECUTED return 0; } 49346: 4e75 rts <== NOT EXECUTED 49348: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized ) return EINVAL; attr->is_initialized = FALSE; return 0; 4934a: 7016 moveq #22,%d0 <== NOT EXECUTED } 4934c: 4e75 rts <== NOT EXECUTED ... 00049a48 : int pthread_attr_getcputime( pthread_attr_t *attr, int *clock_allowed ) { 49a48: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49a4c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !clock_allowed ) 49a50: 4a88 tstl %a0 <== NOT EXECUTED 49a52: 6718 beqs 49a6c <== NOT EXECUTED 49a54: 4a90 tstl %a0@ <== NOT EXECUTED 49a56: 6714 beqs 49a6c <== NOT EXECUTED 49a58: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 49a5c: 670e beqs 49a6c <== NOT EXECUTED return EINVAL; *clock_allowed = attr->cputime_clock_allowed; 49a5e: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 49a62: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !clock_allowed ) return EINVAL; *clock_allowed = attr->cputime_clock_allowed; 49a64: 22a8 0030 movel %a0@(48),%a1@ <== NOT EXECUTED 49a68: 4280 clrl %d0 <== NOT EXECUTED return 0; } 49a6a: 4e75 rts <== NOT EXECUTED 49a6c: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !clock_allowed ) return EINVAL; *clock_allowed = attr->cputime_clock_allowed; return 0; 49a6e: 7016 moveq #22,%d0 <== NOT EXECUTED } 49a70: 4e75 rts <== NOT EXECUTED ... 00049350 : int pthread_attr_getdetachstate( const pthread_attr_t *attr, int *detachstate ) { 49350: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49354: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !detachstate ) 49358: 4a88 tstl %a0 <== NOT EXECUTED 4935a: 6718 beqs 49374 <== NOT EXECUTED 4935c: 4a90 tstl %a0@ <== NOT EXECUTED 4935e: 6714 beqs 49374 <== NOT EXECUTED 49360: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 49364: 670e beqs 49374 <== NOT EXECUTED return EINVAL; *detachstate = attr->detachstate; 49366: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 4936a: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !detachstate ) return EINVAL; *detachstate = attr->detachstate; 4936c: 22a8 0034 movel %a0@(52),%a1@ <== NOT EXECUTED 49370: 4280 clrl %d0 <== NOT EXECUTED return 0; } 49372: 4e75 rts <== NOT EXECUTED 49374: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !detachstate ) return EINVAL; *detachstate = attr->detachstate; return 0; 49376: 7016 moveq #22,%d0 <== NOT EXECUTED } 49378: 4e75 rts <== NOT EXECUTED ... 0004937c : int pthread_attr_getinheritsched( const pthread_attr_t *attr, int *inheritsched ) { 4937c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49380: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !inheritsched ) 49384: 4a88 tstl %a0 <== NOT EXECUTED 49386: 6718 beqs 493a0 <== NOT EXECUTED 49388: 4a90 tstl %a0@ <== NOT EXECUTED 4938a: 6714 beqs 493a0 <== NOT EXECUTED 4938c: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 49390: 670e beqs 493a0 <== NOT EXECUTED return EINVAL; *inheritsched = attr->inheritsched; 49392: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 49396: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !inheritsched ) return EINVAL; *inheritsched = attr->inheritsched; 49398: 22a8 0010 movel %a0@(16),%a1@ <== NOT EXECUTED 4939c: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4939e: 4e75 rts <== NOT EXECUTED 493a0: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !inheritsched ) return EINVAL; *inheritsched = attr->inheritsched; return 0; 493a2: 7016 moveq #22,%d0 <== NOT EXECUTED } 493a4: 4e75 rts <== NOT EXECUTED ... 000493a8 : int pthread_attr_getschedparam( const pthread_attr_t *attr, struct sched_param *param ) { 493a8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 493ac: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !param ) 493b0: 4a89 tstl %a1 <== NOT EXECUTED 493b2: 672c beqs 493e0 <== NOT EXECUTED 493b4: 4a91 tstl %a1@ <== NOT EXECUTED 493b6: 6728 beqs 493e0 <== NOT EXECUTED 493b8: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 493bc: 6722 beqs 493e0 <== NOT EXECUTED return EINVAL; *param = attr->schedparam; 493be: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 493c2: 20e9 0018 movel %a1@(24),%a0@+ <== NOT EXECUTED return 0; } 493c6: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !param ) return EINVAL; *param = attr->schedparam; 493c8: 20e9 001c movel %a1@(28),%a0@+ <== NOT EXECUTED 493cc: 4280 clrl %d0 <== NOT EXECUTED 493ce: 20e9 0020 movel %a1@(32),%a0@+ <== NOT EXECUTED 493d2: 20e9 0024 movel %a1@(36),%a0@+ <== NOT EXECUTED 493d6: 20e9 0028 movel %a1@(40),%a0@+ <== NOT EXECUTED 493da: 20a9 002c movel %a1@(44),%a0@ <== NOT EXECUTED return 0; } 493de: 4e75 rts <== NOT EXECUTED 493e0: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !param ) return EINVAL; *param = attr->schedparam; return 0; 493e2: 7016 moveq #22,%d0 <== NOT EXECUTED } 493e4: 4e75 rts <== NOT EXECUTED ... 000493e8 : int pthread_attr_getschedpolicy( const pthread_attr_t *attr, int *policy ) { 493e8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 493ec: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !policy ) 493f0: 4a88 tstl %a0 <== NOT EXECUTED 493f2: 6718 beqs 4940c <== NOT EXECUTED 493f4: 4a90 tstl %a0@ <== NOT EXECUTED 493f6: 6714 beqs 4940c <== NOT EXECUTED 493f8: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 493fc: 670e beqs 4940c <== NOT EXECUTED return EINVAL; *policy = attr->schedpolicy; 493fe: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 49402: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !policy ) return EINVAL; *policy = attr->schedpolicy; 49404: 22a8 0014 movel %a0@(20),%a1@ <== NOT EXECUTED 49408: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4940a: 4e75 rts <== NOT EXECUTED 4940c: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !policy ) return EINVAL; *policy = attr->schedpolicy; return 0; 4940e: 7016 moveq #22,%d0 <== NOT EXECUTED } 49410: 4e75 rts <== NOT EXECUTED ... 00049414 : int pthread_attr_getscope( const pthread_attr_t *attr, int *contentionscope ) { 49414: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49418: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !contentionscope ) 4941c: 4a88 tstl %a0 <== NOT EXECUTED 4941e: 6718 beqs 49438 <== NOT EXECUTED 49420: 4a90 tstl %a0@ <== NOT EXECUTED 49422: 6714 beqs 49438 <== NOT EXECUTED 49424: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 49428: 670e beqs 49438 <== NOT EXECUTED return EINVAL; *contentionscope = attr->contentionscope; 4942a: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 4942e: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !contentionscope ) return EINVAL; *contentionscope = attr->contentionscope; 49430: 22a8 000c movel %a0@(12),%a1@ <== NOT EXECUTED 49434: 4280 clrl %d0 <== NOT EXECUTED return 0; } 49436: 4e75 rts <== NOT EXECUTED 49438: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !contentionscope ) return EINVAL; *contentionscope = attr->contentionscope; return 0; 4943a: 7016 moveq #22,%d0 <== NOT EXECUTED } 4943c: 4e75 rts <== NOT EXECUTED ... 00049440 : int pthread_attr_getstackaddr( const pthread_attr_t *attr, void **stackaddr ) { 49440: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49444: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !stackaddr ) 49448: 4a88 tstl %a0 <== NOT EXECUTED 4944a: 6718 beqs 49464 <== NOT EXECUTED 4944c: 4a90 tstl %a0@ <== NOT EXECUTED 4944e: 6714 beqs 49464 <== NOT EXECUTED 49450: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 49454: 670e beqs 49464 <== NOT EXECUTED return EINVAL; *stackaddr = attr->stackaddr; 49456: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 4945a: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !stackaddr ) return EINVAL; *stackaddr = attr->stackaddr; 4945c: 22a8 0004 movel %a0@(4),%a1@ <== NOT EXECUTED 49460: 4280 clrl %d0 <== NOT EXECUTED return 0; } 49462: 4e75 rts <== NOT EXECUTED 49464: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !stackaddr ) return EINVAL; *stackaddr = attr->stackaddr; return 0; 49466: 7016 moveq #22,%d0 <== NOT EXECUTED } 49468: 4e75 rts <== NOT EXECUTED ... 0004946c : int pthread_attr_getstacksize( const pthread_attr_t *attr, size_t *stacksize ) { 4946c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49470: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !stacksize ) 49474: 4a88 tstl %a0 <== NOT EXECUTED 49476: 6718 beqs 49490 <== NOT EXECUTED 49478: 4a90 tstl %a0@ <== NOT EXECUTED 4947a: 6714 beqs 49490 <== NOT EXECUTED 4947c: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 49480: 670e beqs 49490 <== NOT EXECUTED return EINVAL; *stacksize = attr->stacksize; 49482: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 49486: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !stacksize ) return EINVAL; *stacksize = attr->stacksize; 49488: 22a8 0008 movel %a0@(8),%a1@ <== NOT EXECUTED 4948c: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4948e: 4e75 rts <== NOT EXECUTED 49490: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !stacksize ) return EINVAL; *stacksize = attr->stacksize; return 0; 49492: 7016 moveq #22,%d0 <== NOT EXECUTED } 49494: 4e75 rts <== NOT EXECUTED ... 0004d820 : #include int pthread_attr_init( pthread_attr_t *attr ) { 4d820: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d824: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !attr ) 4d828: 675c beqs 4d886 <== NOT EXECUTED return EINVAL; *attr = _POSIX_Threads_Default_attributes; 4d82a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d82c: 20f9 0005 ac62 movel 5ac62 <_POSIX_Threads_Default_attributes>,%a0@+ <== NOT EXECUTED return 0; } 4d832: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr ) return EINVAL; *attr = _POSIX_Threads_Default_attributes; 4d834: 20f9 0005 ac66 movel 5ac66 <_POSIX_Threads_Default_attributes+0x4>,%a0@+ <== NOT EXECUTED 4d83a: 4280 clrl %d0 <== NOT EXECUTED 4d83c: 20f9 0005 ac6a movel 5ac6a <_POSIX_Threads_Default_attributes+0x8>,%a0@+ <== NOT EXECUTED 4d842: 20f9 0005 ac6e movel 5ac6e <_POSIX_Threads_Default_attributes+0xc>,%a0@+ <== NOT EXECUTED 4d848: 20f9 0005 ac72 movel 5ac72 <_POSIX_Threads_Default_attributes+0x10>,%a0@+ <== NOT EXECUTED 4d84e: 20f9 0005 ac76 movel 5ac76 <_POSIX_Threads_Default_attributes+0x14>,%a0@+ <== NOT EXECUTED 4d854: 20f9 0005 ac7a movel 5ac7a <_POSIX_Threads_Default_attributes+0x18>,%a0@+ <== NOT EXECUTED 4d85a: 20f9 0005 ac7e movel 5ac7e <_POSIX_Threads_Default_attributes+0x1c>,%a0@+ <== NOT EXECUTED 4d860: 20f9 0005 ac82 movel 5ac82 <_POSIX_Threads_Default_attributes+0x20>,%a0@+ <== NOT EXECUTED 4d866: 20f9 0005 ac86 movel 5ac86 <_POSIX_Threads_Default_attributes+0x24>,%a0@+ <== NOT EXECUTED 4d86c: 20f9 0005 ac8a movel 5ac8a <_POSIX_Threads_Default_attributes+0x28>,%a0@+ <== NOT EXECUTED 4d872: 20f9 0005 ac8e movel 5ac8e <_POSIX_Threads_Default_attributes+0x2c>,%a0@+ <== NOT EXECUTED 4d878: 20f9 0005 ac92 movel 5ac92 <_POSIX_Threads_Default_attributes+0x30>,%a0@+ <== NOT EXECUTED 4d87e: 20b9 0005 ac96 movel 5ac96 <_POSIX_Threads_Default_attributes+0x34>,%a0@ <== NOT EXECUTED return 0; } 4d884: 4e75 rts <== NOT EXECUTED 4d886: 4e5e unlk %fp <== NOT EXECUTED int pthread_attr_init( pthread_attr_t *attr ) { if ( !attr ) 4d888: 103c 0016 moveb #22,%d0 <== NOT EXECUTED return EINVAL; *attr = _POSIX_Threads_Default_attributes; return 0; } 4d88c: 4e75 rts <== NOT EXECUTED ... 00049fe0 : int pthread_attr_setcputime( pthread_attr_t *attr, int clock_allowed ) { 49fe0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49fe4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 49fe8: 4a88 tstl %a0 <== NOT EXECUTED 49fea: 670c beqs 49ff8 <== NOT EXECUTED 49fec: 4a90 tstl %a0@ <== NOT EXECUTED 49fee: 6708 beqs 49ff8 <== NOT EXECUTED return EINVAL; switch ( clock_allowed ) { 49ff0: 7001 moveq #1,%d0 <== NOT EXECUTED 49ff2: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 49ff6: 6406 bccs 49ffe <== NOT EXECUTED return 0; default: return EINVAL; } } 49ff8: 4e5e unlk %fp <== NOT EXECUTED switch ( clock_allowed ) { case CLOCK_ENABLED: case CLOCK_DISABLED: attr->cputime_clock_allowed = clock_allowed; return 0; 49ffa: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 49ffc: 4e75 rts <== NOT EXECUTED return EINVAL; switch ( clock_allowed ) { case CLOCK_ENABLED: case CLOCK_DISABLED: attr->cputime_clock_allowed = clock_allowed; 49ffe: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 4a002: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; switch ( clock_allowed ) { case CLOCK_ENABLED: case CLOCK_DISABLED: attr->cputime_clock_allowed = clock_allowed; 4a004: 2140 0030 movel %d0,%a0@(48) <== NOT EXECUTED 4a008: 4280 clrl %d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 4a00a: 4e75 rts 00049508 : int pthread_attr_setdetachstate( pthread_attr_t *attr, int detachstate ) { 49508: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4950c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 49510: 4a88 tstl %a0 <== NOT EXECUTED 49512: 670c beqs 49520 <== NOT EXECUTED 49514: 4a90 tstl %a0@ <== NOT EXECUTED 49516: 6708 beqs 49520 <== NOT EXECUTED return EINVAL; switch ( detachstate ) { 49518: 7001 moveq #1,%d0 <== NOT EXECUTED 4951a: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 4951e: 6406 bccs 49526 <== NOT EXECUTED return 0; default: return EINVAL; } } 49520: 4e5e unlk %fp <== NOT EXECUTED switch ( detachstate ) { case PTHREAD_CREATE_DETACHED: case PTHREAD_CREATE_JOINABLE: attr->detachstate = detachstate; return 0; 49522: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 49524: 4e75 rts <== NOT EXECUTED return EINVAL; switch ( detachstate ) { case PTHREAD_CREATE_DETACHED: case PTHREAD_CREATE_JOINABLE: attr->detachstate = detachstate; 49526: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 4952a: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; switch ( detachstate ) { case PTHREAD_CREATE_DETACHED: case PTHREAD_CREATE_JOINABLE: attr->detachstate = detachstate; 4952c: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED 49530: 4280 clrl %d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 49532: 4e75 rts 0004d890 : int pthread_attr_setinheritsched( pthread_attr_t *attr, int inheritsched ) { 4d890: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d894: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4d898: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 4d89a: 4a88 tstl %a0 <== NOT EXECUTED 4d89c: 6730 beqs 4d8ce <== NOT EXECUTED 4d89e: 4a90 tstl %a0@ <== NOT EXECUTED 4d8a0: 672c beqs 4d8ce <== NOT EXECUTED return EINVAL; switch ( inheritsched ) { 4d8a2: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4d8a6: 223c 0000 0086 movel #134,%d1 <== NOT EXECUTED 4d8ac: 5380 subql #1,%d0 <== NOT EXECUTED 4d8ae: 7401 moveq #1,%d2 <== NOT EXECUTED 4d8b0: b480 cmpl %d0,%d2 <== NOT EXECUTED 4d8b2: 6408 bccs 4d8bc <== NOT EXECUTED return 0; default: return ENOTSUP; } } 4d8b4: 241f movel %sp@+,%d2 <== NOT EXECUTED 4d8b6: 4e5e unlk %fp <== NOT EXECUTED 4d8b8: 2001 movel %d1,%d0 <== NOT EXECUTED 4d8ba: 4e75 rts <== NOT EXECUTED return EINVAL; switch ( inheritsched ) { case PTHREAD_INHERIT_SCHED: case PTHREAD_EXPLICIT_SCHED: attr->inheritsched = inheritsched; 4d8bc: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return 0; default: return ENOTSUP; } } 4d8c0: 241f movel %sp@+,%d2 <== NOT EXECUTED return EINVAL; switch ( inheritsched ) { case PTHREAD_INHERIT_SCHED: case PTHREAD_EXPLICIT_SCHED: attr->inheritsched = inheritsched; 4d8c2: 2140 0010 movel %d0,%a0@(16) <== NOT EXECUTED 4d8c6: 4201 clrb %d1 <== NOT EXECUTED return 0; default: return ENOTSUP; } } 4d8c8: 4e5e unlk %fp <== NOT EXECUTED 4d8ca: 2001 movel %d1,%d0 <== NOT EXECUTED 4d8cc: 4e75 rts <== NOT EXECUTED 4d8ce: 241f movel %sp@+,%d2 <== NOT EXECUTED switch ( inheritsched ) { case PTHREAD_INHERIT_SCHED: case PTHREAD_EXPLICIT_SCHED: attr->inheritsched = inheritsched; return 0; 4d8d0: 7216 moveq #22,%d1 <== NOT EXECUTED default: return ENOTSUP; } } 4d8d2: 4e5e unlk %fp <== NOT EXECUTED 4d8d4: 2001 movel %d1,%d0 <== NOT EXECUTED 4d8d6: 4e75 rts 0004957c : int pthread_attr_setschedparam( pthread_attr_t *attr, const struct sched_param *param ) { 4957c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 49580: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !param ) 49584: 4a89 tstl %a1 <== NOT EXECUTED 49586: 672c beqs 495b4 <== NOT EXECUTED 49588: 4a91 tstl %a1@ <== NOT EXECUTED 4958a: 6728 beqs 495b4 <== NOT EXECUTED 4958c: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 49590: 6722 beqs 495b4 <== NOT EXECUTED return EINVAL; attr->schedparam = *param; 49592: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 49596: 2358 0018 movel %a0@+,%a1@(24) <== NOT EXECUTED return 0; } 4959a: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !param ) return EINVAL; attr->schedparam = *param; 4959c: 2358 001c movel %a0@+,%a1@(28) <== NOT EXECUTED 495a0: 4280 clrl %d0 <== NOT EXECUTED 495a2: 2358 0020 movel %a0@+,%a1@(32) <== NOT EXECUTED 495a6: 2358 0024 movel %a0@+,%a1@(36) <== NOT EXECUTED 495aa: 2358 0028 movel %a0@+,%a1@(40) <== NOT EXECUTED 495ae: 2350 002c movel %a0@,%a1@(44) <== NOT EXECUTED return 0; } 495b2: 4e75 rts <== NOT EXECUTED 495b4: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !param ) return EINVAL; attr->schedparam = *param; return 0; 495b6: 7016 moveq #22,%d0 <== NOT EXECUTED } 495b8: 4e75 rts <== NOT EXECUTED ... 000495bc : int pthread_attr_setschedpolicy( pthread_attr_t *attr, int policy ) { 495bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 495c0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 495c4: 4a88 tstl %a0 <== NOT EXECUTED 495c6: 6724 beqs 495ec <== NOT EXECUTED 495c8: 4a90 tstl %a0@ <== NOT EXECUTED 495ca: 6720 beqs 495ec <== NOT EXECUTED return EINVAL; switch ( policy ) { 495cc: 203c 0000 0086 movel #134,%d0 <== NOT EXECUTED 495d2: 7203 moveq #3,%d1 <== NOT EXECUTED 495d4: b2ae 000c cmpl %fp@(12),%d1 <== NOT EXECUTED 495d8: 6404 bccs 495de <== NOT EXECUTED return 0; default: return ENOTSUP; } } 495da: 4e5e unlk %fp <== NOT EXECUTED 495dc: 4e75 rts <== NOT EXECUTED switch ( policy ) { case SCHED_OTHER: case SCHED_FIFO: case SCHED_RR: case SCHED_SPORADIC: attr->schedpolicy = policy; 495de: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return 0; default: return ENOTSUP; } } 495e2: 4e5e unlk %fp <== NOT EXECUTED switch ( policy ) { case SCHED_OTHER: case SCHED_FIFO: case SCHED_RR: case SCHED_SPORADIC: attr->schedpolicy = policy; 495e4: 2140 0014 movel %d0,%a0@(20) <== NOT EXECUTED 495e8: 4280 clrl %d0 <== NOT EXECUTED return 0; default: return ENOTSUP; } } 495ea: 4e75 rts <== NOT EXECUTED 495ec: 4e5e unlk %fp <== NOT EXECUTED case SCHED_OTHER: case SCHED_FIFO: case SCHED_RR: case SCHED_SPORADIC: attr->schedpolicy = policy; return 0; 495ee: 7016 moveq #22,%d0 <== NOT EXECUTED default: return ENOTSUP; } } 495f0: 4e75 rts <== NOT EXECUTED ... 000495f4 : int pthread_attr_setscope( pthread_attr_t *attr, int contentionscope ) { 495f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 495f8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 495fc: 4a88 tstl %a0 <== NOT EXECUTED 495fe: 6722 beqs 49622 <== NOT EXECUTED 49600: 4a90 tstl %a0@ <== NOT EXECUTED 49602: 671e beqs 49622 <== NOT EXECUTED return EINVAL; switch ( contentionscope ) { 49604: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 49608: 660a bnes 49614 <== NOT EXECUTED case PTHREAD_SCOPE_PROCESS: attr->contentionscope = contentionscope; 4960a: 4280 clrl %d0 <== NOT EXECUTED 4960c: 42a8 000c clrl %a0@(12) <== NOT EXECUTED return ENOTSUP; default: return EINVAL; } } 49610: 4e5e unlk %fp <== NOT EXECUTED 49612: 4e75 rts <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized ) return EINVAL; switch ( contentionscope ) { 49614: 203c 0000 0086 movel #134,%d0 <== NOT EXECUTED 4961a: 7201 moveq #1,%d1 <== NOT EXECUTED 4961c: b2ae 000c cmpl %fp@(12),%d1 <== NOT EXECUTED 49620: 67ee beqs 49610 <== NOT EXECUTED return ENOTSUP; default: return EINVAL; } } 49622: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; switch ( contentionscope ) { case PTHREAD_SCOPE_PROCESS: attr->contentionscope = contentionscope; return 0; 49624: 7016 moveq #22,%d0 <== NOT EXECUTED return ENOTSUP; default: return EINVAL; } } 49626: 4e75 rts 00049628 : int pthread_attr_setstackaddr( pthread_attr_t *attr, void *stackaddr ) { 49628: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4962c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 49630: 4a88 tstl %a0 <== NOT EXECUTED 49632: 6710 beqs 49644 <== NOT EXECUTED 49634: 4a90 tstl %a0@ <== NOT EXECUTED 49636: 670c beqs 49644 <== NOT EXECUTED return EINVAL; attr->stackaddr = stackaddr; 49638: 4280 clrl %d0 <== NOT EXECUTED 4963a: 216e 000c 0004 movel %fp@(12),%a0@(4) <== NOT EXECUTED return 0; } 49640: 4e5e unlk %fp <== NOT EXECUTED 49642: 4e75 rts <== NOT EXECUTED 49644: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized ) return EINVAL; attr->stackaddr = stackaddr; return 0; 49646: 7016 moveq #22,%d0 <== NOT EXECUTED } 49648: 4e75 rts <== NOT EXECUTED ... 0004d8d8 : int pthread_attr_setstacksize( pthread_attr_t *attr, size_t stacksize ) { 4d8d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d8dc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 4d8e0: 4a88 tstl %a0 <== NOT EXECUTED 4d8e2: 6720 beqs 4d904 <== NOT EXECUTED 4d8e4: 4a90 tstl %a0@ <== NOT EXECUTED 4d8e6: 671c beqs 4d904 <== NOT EXECUTED return EINVAL; if (stacksize < PTHREAD_MINIMUM_STACK_SIZE) 4d8e8: 2039 0005 bf6e movel 5bf6e ,%d0 <== NOT EXECUTED 4d8ee: d080 addl %d0,%d0 <== NOT EXECUTED 4d8f0: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 4d8f4: 6204 bhis 4d8fa <== NOT EXECUTED attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE; else attr->stacksize = stacksize; 4d8f6: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4d8fa: 2140 0008 movel %d0,%a0@(8) <== NOT EXECUTED return 0; } 4d8fe: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; if (stacksize < PTHREAD_MINIMUM_STACK_SIZE) attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE; else attr->stacksize = stacksize; 4d900: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4d902: 4e75 rts <== NOT EXECUTED 4d904: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; if (stacksize < PTHREAD_MINIMUM_STACK_SIZE) attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE; else attr->stacksize = stacksize; 4d906: 7016 moveq #22,%d0 <== NOT EXECUTED return 0; } 4d908: 4e75 rts <== NOT EXECUTED ... 00045c0c : */ int pthread_barrier_destroy( pthread_barrier_t *barrier ) { 45c0c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45c10: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45c14: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_Barrier_Control *the_barrier = NULL; Objects_Locations location; if ( !barrier ) 45c16: 4a88 tstl %a0 <== NOT EXECUTED 45c18: 6736 beqs 45c50 <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get ( pthread_barrier_t *barrier, Objects_Locations *location ) { return (POSIX_Barrier_Control *) _Objects_Get( 45c1a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45c1e: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 45c20: 4879 0005 b6ae pea 5b6ae <_POSIX_Barrier_Information> <== NOT EXECUTED 45c26: 4eb9 0004 8844 jsr 48844 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_barrier = _POSIX_Barrier_Get( barrier, &location ); switch ( location ) { 45c2c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45c32: 2440 moveal %d0,%a2 <== NOT EXECUTED 45c34: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45c38: 6616 bnes 45c50 <== NOT EXECUTED case OBJECTS_LOCAL: if ( the_barrier->Barrier.number_of_waiting_threads != 0 ) { 45c3a: 4aaa 0058 tstl %a2@(88) <== NOT EXECUTED 45c3e: 671a beqs 45c5a <== NOT EXECUTED _Thread_Enable_dispatch(); 45c40: 4eb9 0004 9044 jsr 49044 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45c46: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45c4a: 4e5e unlk %fp <== NOT EXECUTED the_barrier = _POSIX_Barrier_Get( barrier, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( the_barrier->Barrier.number_of_waiting_threads != 0 ) { _Thread_Enable_dispatch(); 45c4c: 7010 moveq #16,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45c4e: 4e75 rts <== NOT EXECUTED 45c50: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45c54: 4e5e unlk %fp <== NOT EXECUTED _Objects_Close( &_POSIX_Barrier_Information, &the_barrier->Object ); _POSIX_Barrier_Free( the_barrier ); _Thread_Enable_dispatch(); return 0; 45c56: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45c58: 4e75 rts <== NOT EXECUTED if ( the_barrier->Barrier.number_of_waiting_threads != 0 ) { _Thread_Enable_dispatch(); return EBUSY; } _Objects_Close( &_POSIX_Barrier_Information, &the_barrier->Object ); 45c5a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45c5c: 4879 0005 b6ae pea 5b6ae <_POSIX_Barrier_Information> <== NOT EXECUTED 45c62: 4eb9 0004 83b4 jsr 483b4 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _POSIX_Barrier_Free ( POSIX_Barrier_Control *the_barrier ) { _Objects_Free( &_POSIX_Barrier_Information, &the_barrier->Object ); 45c68: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45c6a: 4879 0005 b6ae pea 5b6ae <_POSIX_Barrier_Information> <== NOT EXECUTED 45c70: 4eb9 0004 86d8 jsr 486d8 <_Objects_Free> <== NOT EXECUTED _POSIX_Barrier_Free( the_barrier ); _Thread_Enable_dispatch(); 45c76: 4eb9 0004 9044 jsr 49044 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45c7c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED _Objects_Close( &_POSIX_Barrier_Information, &the_barrier->Object ); _POSIX_Barrier_Free( the_barrier ); _Thread_Enable_dispatch(); 45c80: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45c86: 4e5e unlk %fp <== NOT EXECUTED _Objects_Close( &_POSIX_Barrier_Information, &the_barrier->Object ); _POSIX_Barrier_Free( the_barrier ); _Thread_Enable_dispatch(); 45c88: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45c8a: 4e75 rts 00045c8c : int pthread_barrier_init( pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count ) { 45c8c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 45c90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45c92: 2f02 movel %d2,%sp@- <== NOT EXECUTED const pthread_barrierattr_t *the_attr; /* * Error check parameters */ if ( !barrier ) 45c94: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 45c98: 6700 008e beqw 45d28 <== NOT EXECUTED return EINVAL; if ( count == 0 ) 45c9c: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 45ca0: 6700 0086 beqw 45d28 <== NOT EXECUTED return EINVAL; /* * If the user passed in NULL, use the default attributes */ if ( attr ) { 45ca4: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 45ca8: 6700 00a0 beqw 45d4a <== NOT EXECUTED 45cac: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED } /* * Now start error checking the attributes that we are going to use */ if ( !the_attr->is_initialized ) 45cb0: 4a90 tstl %a0@ <== NOT EXECUTED 45cb2: 6774 beqs 45d28 <== NOT EXECUTED return EINVAL; switch ( the_attr->process_shared ) { 45cb4: 4aa8 0004 tstl %a0@(4) <== NOT EXECUTED 45cb8: 666e bnes 45d28 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 45cba: 2039 0005 b354 movel 5b354 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45cc0: 5280 addql #1,%d0 <== NOT EXECUTED 45cc2: 23c0 0005 b354 movel %d0,5b354 <_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; 45cc8: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED } /* * Convert from POSIX attributes to Core Barrier attributes */ the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE; 45ccc: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED the_attributes.maximum_count = count; 45cd0: 2d40 fffc movel %d0,%fp@(-4) <== 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 *) 45cd4: 4879 0005 b6ae pea 5b6ae <_POSIX_Barrier_Information> <== NOT EXECUTED 45cda: 4eb9 0004 8318 jsr 48318 <_Objects_Allocate> <== NOT EXECUTED */ _Thread_Disable_dispatch(); /* prevents deletion */ the_barrier = _POSIX_Barrier_Allocate(); if ( !the_barrier ) { 45ce0: 588f addql #4,%sp <== NOT EXECUTED 45ce2: 2440 moveal %d0,%a2 <== NOT EXECUTED 45ce4: 4a80 tstl %d0 <== NOT EXECUTED 45ce6: 674e beqs 45d36 <== NOT EXECUTED _Thread_Enable_dispatch(); return EAGAIN; } _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 45ce8: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45cec: 486a 0010 pea %a2@(16) <== NOT EXECUTED 45cf0: 4eb9 0004 7a4c jsr 47a4c <_CORE_barrier_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 45cf6: 2079 0005 b6c8 moveal 5b6c8 <_POSIX_Barrier_Information+0x1a>,%a0 <== NOT EXECUTED 45cfc: 4280 clrl %d0 <== NOT EXECUTED 45cfe: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 45d02: 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; 45d06: 42aa 000c clrl %a2@(12) <== NOT EXECUTED ); /* * Exit the critical section and return the user an operational barrier */ *barrier = the_barrier->Object.id; 45d0a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45d0e: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 45d12: 4eb9 0004 9044 jsr 49044 <_Thread_Enable_dispatch> <== NOT EXECUTED return 0; } 45d18: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 45d1c: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED /* * Exit the critical section and return the user an operational barrier */ *barrier = the_barrier->Object.id; _Thread_Enable_dispatch(); 45d20: 508f addql #8,%sp <== NOT EXECUTED return 0; } 45d22: 4e5e unlk %fp <== NOT EXECUTED /* * Exit the critical section and return the user an operational barrier */ *barrier = the_barrier->Object.id; _Thread_Enable_dispatch(); 45d24: 4280 clrl %d0 <== NOT EXECUTED return 0; } 45d26: 4e75 rts <== NOT EXECUTED 45d28: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 45d2c: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 45d30: 4e5e unlk %fp <== NOT EXECUTED /* * Exit the critical section and return the user an operational barrier */ *barrier = the_barrier->Object.id; _Thread_Enable_dispatch(); return 0; 45d32: 7016 moveq #22,%d0 <== NOT EXECUTED } 45d34: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_barrier = _POSIX_Barrier_Allocate(); if ( !the_barrier ) { _Thread_Enable_dispatch(); 45d36: 4eb9 0004 9044 jsr 49044 <_Thread_Enable_dispatch> <== NOT EXECUTED * Exit the critical section and return the user an operational barrier */ *barrier = the_barrier->Object.id; _Thread_Enable_dispatch(); return 0; } 45d3c: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 45d40: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 45d44: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_barrier = _POSIX_Barrier_Allocate(); if ( !the_barrier ) { _Thread_Enable_dispatch(); 45d46: 700b moveq #11,%d0 <== NOT EXECUTED * Exit the critical section and return the user an operational barrier */ *barrier = the_barrier->Object.id; _Thread_Enable_dispatch(); return 0; } 45d48: 4e75 rts <== NOT EXECUTED * If the user passed in NULL, use the default attributes */ if ( attr ) { the_attr = attr; } else { (void) pthread_barrierattr_init( &my_attr ); 45d4a: 240e movel %fp,%d2 <== NOT EXECUTED 45d4c: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 45d52: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45d54: 4eb9 0004 5bc0 jsr 45bc0 <== NOT EXECUTED 45d5a: 588f addql #4,%sp <== NOT EXECUTED 45d5c: 2042 moveal %d2,%a0 <== NOT EXECUTED } /* * Now start error checking the attributes that we are going to use */ if ( !the_attr->is_initialized ) 45d5e: 4a90 tstl %a0@ <== NOT EXECUTED 45d60: 6600 ff52 bnew 45cb4 <== NOT EXECUTED 45d64: 60c2 bras 45d28 <== NOT EXECUTED ... 00045d68 : */ int pthread_barrier_wait( pthread_barrier_t *barrier ) { 45d68: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45d6c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED POSIX_Barrier_Control *the_barrier = NULL; Objects_Locations location; if ( !barrier ) 45d70: 4a88 tstl %a0 <== NOT EXECUTED 45d72: 6756 beqs 45dca <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get ( pthread_barrier_t *barrier, Objects_Locations *location ) { return (POSIX_Barrier_Control *) _Objects_Get( 45d74: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45d78: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 45d7a: 4879 0005 b6ae pea 5b6ae <_POSIX_Barrier_Information> <== NOT EXECUTED 45d80: 4eb9 0004 8844 jsr 48844 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_barrier = _POSIX_Barrier_Get( barrier, &location ); switch ( location ) { 45d86: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45d8c: 2040 moveal %d0,%a0 <== NOT EXECUTED 45d8e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45d92: 6636 bnes 45dca <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_barrier_Wait( 45d94: 42a7 clrl %sp@- <== NOT EXECUTED 45d96: 42a7 clrl %sp@- <== NOT EXECUTED 45d98: 4878 0001 pea 1 <== NOT EXECUTED 45d9c: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 45da0: 4868 0010 pea %a0@(16) <== NOT EXECUTED 45da4: 4eb9 0004 7a88 jsr 47a88 <_CORE_barrier_Wait> <== NOT EXECUTED the_barrier->Object.id, TRUE, 0, NULL ); _Thread_Enable_dispatch(); 45daa: 4eb9 0004 9044 jsr 49044 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_Barrier_Translate_core_barrier_return_code( 45db0: 2079 0005 b412 moveal 5b412 <_Thread_Executing>,%a0 <== NOT EXECUTED 45db6: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 45dba: 4eb9 0004 c520 jsr 4c520 <_POSIX_Barrier_Translate_core_barrier_return_code> <== NOT EXECUTED 45dc0: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45dc6: 4e5e unlk %fp <== NOT EXECUTED 45dc8: 4e75 rts <== NOT EXECUTED 45dca: 4e5e unlk %fp <== NOT EXECUTED TRUE, 0, NULL ); _Thread_Enable_dispatch(); return _POSIX_Barrier_Translate_core_barrier_return_code( 45dcc: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45dce: 4e75 rts 00045b7c : */ int pthread_barrierattr_destroy( pthread_barrierattr_t *attr ) { 45b7c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45b80: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || attr->is_initialized == FALSE ) 45b84: 4a88 tstl %a0 <== NOT EXECUTED 45b86: 670c beqs 45b94 <== NOT EXECUTED 45b88: 4a90 tstl %a0@ <== NOT EXECUTED 45b8a: 6708 beqs 45b94 <== NOT EXECUTED return EINVAL; attr->is_initialized = FALSE; return 0; } 45b8c: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || attr->is_initialized == FALSE ) return EINVAL; attr->is_initialized = FALSE; 45b8e: 4280 clrl %d0 <== NOT EXECUTED 45b90: 4290 clrl %a0@ <== NOT EXECUTED return 0; } 45b92: 4e75 rts <== NOT EXECUTED 45b94: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || attr->is_initialized == FALSE ) return EINVAL; attr->is_initialized = FALSE; return 0; 45b96: 7016 moveq #22,%d0 <== NOT EXECUTED } 45b98: 4e75 rts <== NOT EXECUTED ... 00045b9c : int pthread_barrierattr_getpshared( const pthread_barrierattr_t *attr, int *pshared ) { 45b9c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45ba0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr ) 45ba4: 4a88 tstl %a0 <== NOT EXECUTED 45ba6: 6712 beqs 45bba <== NOT EXECUTED return EINVAL; if ( !attr->is_initialized ) 45ba8: 4a90 tstl %a0@ <== NOT EXECUTED 45baa: 670e beqs 45bba <== NOT EXECUTED return EINVAL; *pshared = attr->process_shared; 45bac: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 45bb0: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; if ( !attr->is_initialized ) return EINVAL; *pshared = attr->process_shared; 45bb2: 22a8 0004 movel %a0@(4),%a1@ <== NOT EXECUTED 45bb6: 4280 clrl %d0 <== NOT EXECUTED return 0; } 45bb8: 4e75 rts <== NOT EXECUTED 45bba: 4e5e unlk %fp <== NOT EXECUTED if ( !attr->is_initialized ) return EINVAL; *pshared = attr->process_shared; return 0; 45bbc: 7016 moveq #22,%d0 <== NOT EXECUTED } 45bbe: 4e75 rts 00045bc0 : */ int pthread_barrierattr_init( pthread_barrierattr_t *attr ) { 45bc0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45bc4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr ) 45bc8: 4a88 tstl %a0 <== NOT EXECUTED 45bca: 670e beqs 45bda <== NOT EXECUTED return EINVAL; attr->is_initialized = TRUE; 45bcc: 7201 moveq #1,%d1 <== NOT EXECUTED attr->process_shared = PTHREAD_PROCESS_PRIVATE; return 0; } 45bce: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr ) return EINVAL; attr->is_initialized = TRUE; attr->process_shared = PTHREAD_PROCESS_PRIVATE; 45bd0: 4280 clrl %d0 <== NOT EXECUTED 45bd2: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED ) { if ( !attr ) return EINVAL; attr->is_initialized = TRUE; 45bd6: 2081 movel %d1,%a0@ <== NOT EXECUTED attr->process_shared = PTHREAD_PROCESS_PRIVATE; return 0; } 45bd8: 4e75 rts <== NOT EXECUTED 45bda: 4e5e unlk %fp <== NOT EXECUTED int pthread_barrierattr_init( pthread_barrierattr_t *attr ) { if ( !attr ) 45bdc: 7016 moveq #22,%d0 <== NOT EXECUTED return EINVAL; attr->is_initialized = TRUE; attr->process_shared = PTHREAD_PROCESS_PRIVATE; return 0; } 45bde: 4e75 rts 00045be0 : int pthread_barrierattr_setpshared( pthread_barrierattr_t *attr, int pshared ) { 45be0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45be4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr ) 45be8: 4a88 tstl %a0 <== NOT EXECUTED 45bea: 670c beqs 45bf8 <== NOT EXECUTED return EINVAL; if ( !attr->is_initialized ) 45bec: 4a90 tstl %a0@ <== NOT EXECUTED 45bee: 6708 beqs 45bf8 <== NOT EXECUTED return EINVAL; switch ( pshared ) { 45bf0: 7001 moveq #1,%d0 <== NOT EXECUTED 45bf2: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 45bf6: 6406 bccs 45bfe <== NOT EXECUTED return 0; default: return EINVAL; } } 45bf8: 4e5e unlk %fp <== NOT EXECUTED switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; return 0; 45bfa: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 45bfc: 4e75 rts <== NOT EXECUTED return EINVAL; switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 45bfe: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 45c02: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 45c04: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED 45c08: 4280 clrl %d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 45c0a: 4e75 rts 000453ac : /* * Don't even think about deleting a resource from an ISR. */ if ( _ISR_Is_in_progress() ) 453ac: 2039 0005 b836 movel 5b836 <_ISR_Nest_level>,%d0 <== NOT EXECUTED */ int pthread_cancel( pthread_t thread ) { 453b2: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 453b6: 2f0a movel %a2,%sp@- <== NOT EXECUTED /* * Don't even think about deleting a resource from an ISR. */ if ( _ISR_Is_in_progress() ) 453b8: 4a80 tstl %d0 <== NOT EXECUTED 453ba: 670a beqs 453c6 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 453bc: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 453c0: 4e5e unlk %fp <== NOT EXECUTED /* * Don't even think about deleting a resource from an ISR. */ if ( _ISR_Is_in_progress() ) 453c2: 7047 moveq #71,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 453c4: 4e75 rts <== NOT EXECUTED RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Get ( pthread_t id, Objects_Locations *location ) { return (Thread_Control *) 453c6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 453ca: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 453ce: 4879 0005 b98a pea 5b98a <_POSIX_Threads_Information> <== NOT EXECUTED 453d4: 4eb9 0004 8090 jsr 48090 <_Objects_Get> <== NOT EXECUTED if ( _ISR_Is_in_progress() ) return EPROTO; the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 453da: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 453e0: 2440 moveal %d0,%a2 <== NOT EXECUTED 453e2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 453e6: 670a beqs 453f2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 453e8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 453ec: 4e5e unlk %fp <== NOT EXECUTED if ( _ISR_Is_in_progress() ) return EPROTO; the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 453ee: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 453f0: 4e75 rts <== NOT EXECUTED the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { case OBJECTS_LOCAL: thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ]; 453f2: 206a 0110 moveal %a2@(272),%a0 <== NOT EXECUTED thread_support->cancelation_requested = 1; 453f6: 7001 moveq #1,%d0 <== NOT EXECUTED 453f8: 2140 00d4 movel %d0,%a0@(212) <== NOT EXECUTED if (thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && 453fc: 4aa8 00cc tstl %a0@(204) <== NOT EXECUTED 45400: 6606 bnes 45408 <== NOT EXECUTED 45402: b0a8 00d0 cmpl %a0@(208),%d0 <== NOT EXECUTED 45406: 6710 beqs 45418 <== NOT EXECUTED thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS) cancel = true; _Thread_Enable_dispatch(); 45408: 4eb9 0004 8890 jsr 48890 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4540e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45412: 4e5e unlk %fp <== NOT EXECUTED if (thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS) cancel = true; _Thread_Enable_dispatch(); 45414: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45416: 4e75 rts <== NOT EXECUTED if (thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS) cancel = true; _Thread_Enable_dispatch(); 45418: 4eb9 0004 8890 jsr 48890 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( cancel ) _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED ); 4541e: 4878 ffff pea ffffffff <== NOT EXECUTED 45422: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45424: 4eb9 0004 5774 jsr 45774 <_POSIX_Thread_Exit> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4542a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS) cancel = true; _Thread_Enable_dispatch(); if ( cancel ) _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED ); 4542e: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45430: 4e5e unlk %fp <== NOT EXECUTED thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS) cancel = true; _Thread_Enable_dispatch(); if ( cancel ) _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED ); 45432: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45434: 4e75 rts <== NOT EXECUTED ... 000458dc : rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 458dc: 2039 0005 c53c movel 5c53c <_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 ]; 458e2: 2079 0005 c5fa moveal 5c5fa <_Thread_Executing>,%a0 <== NOT EXECUTED */ void pthread_cleanup_pop( int execute ) { 458e8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 458ec: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 458f0: 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 ]; 458f2: 2268 0110 moveal %a0@(272),%a1 <== NOT EXECUTED */ void pthread_cleanup_pop( int execute ) { 458f6: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 458fa: 23c0 0005 c53c movel %d0,5c53c <_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 ); 45900: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 45906: 40c2 movew %sr,%d2 <== NOT EXECUTED 45908: 8082 orl %d2,%d0 <== NOT EXECUTED 4590a: 46c0 movew %d0,%sr <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 4590c: 41e9 00dc lea %a1@(220),%a0 <== NOT EXECUTED if ( _Chain_Is_empty( handler_stack ) ) { 45910: b1e9 00d8 cmpal %a1@(216),%a0 <== NOT EXECUTED 45914: 6748 beqs 4595e <== NOT EXECUTED _Thread_Enable_dispatch(); _ISR_Enable( level ); return; } handler = (POSIX_Cancel_Handler_control *) 45916: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED ) { Chain_Node *next; Chain_Node *previous; next = the_node->next; 4591a: 2450 moveal %a0@,%a2 <== NOT EXECUTED previous = the_node->previous; 4591c: 2268 0004 moveal %a0@(4),%a1 <== NOT EXECUTED next->previous = previous; previous->next = next; 45920: 228a movel %a2,%a1@ <== NOT EXECUTED Chain_Node *next; Chain_Node *previous; next = the_node->next; previous = the_node->previous; next->previous = previous; 45922: 2549 0004 movel %a1,%a2@(4) <== NOT EXECUTED _Chain_Tail( handler_stack )->previous; _Chain_Extract_unprotected( &handler->Node ); _ISR_Enable( level ); 45926: 46c2 movew %d2,%sr <== NOT EXECUTED tmp_handler = *handler; 45928: 2468 000c moveal %a0@(12),%a2 <== NOT EXECUTED 4592c: 2428 0008 movel %a0@(8),%d2 <== NOT EXECUTED _Workspace_Free( handler ); 45930: 2f08 movel %a0,%sp@- <== NOT EXECUTED 45932: 4eb9 0004 a700 jsr 4a700 <_Workspace_Free> <== NOT EXECUTED _Thread_Enable_dispatch(); 45938: 4eb9 0004 91e0 jsr 491e0 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( execute ) 4593e: 588f addql #4,%sp <== NOT EXECUTED 45940: 4a83 tstl %d3 <== NOT EXECUTED 45942: 660a bnes 4594e <== NOT EXECUTED (*tmp_handler.routine)( tmp_handler.arg ); } 45944: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4594a: 4e5e unlk %fp <== NOT EXECUTED 4594c: 4e75 rts <== NOT EXECUTED _Workspace_Free( handler ); _Thread_Enable_dispatch(); if ( execute ) (*tmp_handler.routine)( tmp_handler.arg ); 4594e: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED 45952: 2242 moveal %d2,%a1 <== NOT EXECUTED } 45954: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4595a: 4e5e unlk %fp <== NOT EXECUTED _Workspace_Free( handler ); _Thread_Enable_dispatch(); if ( execute ) (*tmp_handler.routine)( tmp_handler.arg ); 4595c: 4ed1 jmp %a1@ <== NOT EXECUTED _Thread_Disable_dispatch(); _ISR_Disable( level ); if ( _Chain_Is_empty( handler_stack ) ) { _Thread_Enable_dispatch(); 4595e: 4eb9 0004 91e0 jsr 491e0 <_Thread_Enable_dispatch> <== NOT EXECUTED _ISR_Enable( level ); 45964: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_Enable_dispatch(); if ( execute ) (*tmp_handler.routine)( tmp_handler.arg ); } 45966: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4596c: 4e5e unlk %fp <== NOT EXECUTED 4596e: 4e75 rts 00045970 : void pthread_cleanup_push( void (*routine)( void * ), void *arg ) { 45970: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45974: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45976: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4597a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4597c: 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 ) 45980: 6754 beqs 459d6 <== NOT EXECUTED 45982: 2039 0005 c53c movel 5c53c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45988: 5280 addql #1,%d0 <== NOT EXECUTED 4598a: 23c0 0005 c53c movel %d0,5c53c <_Thread_Dispatch_disable_level> <== NOT EXECUTED return; _Thread_Disable_dispatch(); handler = _Workspace_Allocate( sizeof( POSIX_Cancel_Handler_control ) ); 45990: 4878 0010 pea 10 <== NOT EXECUTED 45994: 4eb9 0004 a718 jsr 4a718 <_Workspace_Allocate> <== NOT EXECUTED if ( handler ) { 4599a: 588f addql #4,%sp <== NOT EXECUTED */ if ( !routine ) return; _Thread_Disable_dispatch(); handler = _Workspace_Allocate( sizeof( POSIX_Cancel_Handler_control ) ); 4599c: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( handler ) { 4599e: 4a80 tstl %d0 <== NOT EXECUTED 459a0: 6724 beqs 459c6 <== NOT EXECUTED thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; handler_stack = &thread_support->Cancellation_Handlers; 459a2: 2079 0005 c5fa moveal 5c5fa <_Thread_Executing>,%a0 <== NOT EXECUTED 459a8: 2028 0110 movel %a0@(272),%d0 <== NOT EXECUTED handler->routine = routine; 459ac: 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; 459b0: 0680 0000 00d8 addil #216,%d0 <== NOT EXECUTED handler->routine = routine; handler->arg = arg; 459b6: 2343 000c movel %d3,%a1@(12) <== NOT EXECUTED _Chain_Append( handler_stack, &handler->Node ); 459ba: 2f09 movel %a1,%sp@- <== NOT EXECUTED 459bc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 459be: 4eb9 0004 7c80 jsr 47c80 <_Chain_Append> <== NOT EXECUTED 459c4: 508f addql #8,%sp <== NOT EXECUTED } _Thread_Enable_dispatch(); } 459c6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 459ca: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 459ce: 4e5e unlk %fp <== NOT EXECUTED handler->routine = routine; handler->arg = arg; _Chain_Append( handler_stack, &handler->Node ); } _Thread_Enable_dispatch(); 459d0: 4ef9 0004 91e0 jmp 491e0 <_Thread_Enable_dispatch> <== NOT EXECUTED } 459d6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 459da: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 459de: 4e5e unlk %fp <== NOT EXECUTED 459e0: 4e75 rts <== NOT EXECUTED ... 000466c0 : */ int pthread_cond_broadcast( pthread_cond_t *cond ) { 466c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Condition_variables_Signal_support( cond, TRUE ); 466c4: 4878 0001 pea 1 <== NOT EXECUTED 466c8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 466cc: 4eb9 0004 6898 jsr 46898 <_POSIX_Condition_variables_Signal_support> <== NOT EXECUTED } 466d2: 4e5e unlk %fp <== NOT EXECUTED 466d4: 4e75 rts <== NOT EXECUTED ... 000466d8 : */ int pthread_cond_destroy( pthread_cond_t *cond ) { 466d8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 466dc: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_Condition_variables_Control *the_cond; Objects_Locations location; the_cond = _POSIX_Condition_variables_Get( cond, &location ); 466de: 486e fffc pea %fp@(-4) <== NOT EXECUTED 466e2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 466e6: 4eb9 0004 6754 jsr 46754 <_POSIX_Condition_variables_Get> <== NOT EXECUTED switch ( location ) { 466ec: 508f addql #8,%sp <== NOT EXECUTED ) { POSIX_Condition_variables_Control *the_cond; Objects_Locations location; the_cond = _POSIX_Condition_variables_Get( cond, &location ); 466ee: 2440 moveal %d0,%a2 <== NOT EXECUTED switch ( location ) { 466f0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 466f4: 6620 bnes 46716 <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Thread_queue_First( &the_cond->Wait_queue ) ) { 466f6: 486a 0018 pea %a2@(24) <== NOT EXECUTED 466fa: 4eb9 0004 a940 jsr 4a940 <_Thread_queue_First> <== NOT EXECUTED 46700: 588f addql #4,%sp <== NOT EXECUTED 46702: 4a80 tstl %d0 <== NOT EXECUTED 46704: 671a beqs 46720 <== NOT EXECUTED _Thread_Enable_dispatch(); 46706: 4eb9 0004 a15c jsr 4a15c <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4670c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46710: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: if ( _Thread_queue_First( &the_cond->Wait_queue ) ) { _Thread_Enable_dispatch(); 46712: 7010 moveq #16,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46714: 4e75 rts <== NOT EXECUTED 46716: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4671a: 4e5e unlk %fp <== NOT EXECUTED { POSIX_Condition_variables_Control *the_cond; Objects_Locations location; the_cond = _POSIX_Condition_variables_Get( cond, &location ); switch ( location ) { 4671c: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4671e: 4e75 rts <== NOT EXECUTED if ( _Thread_queue_First( &the_cond->Wait_queue ) ) { _Thread_Enable_dispatch(); return EBUSY; } _Objects_Close( 46720: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46722: 4879 0005 dac6 pea 5dac6 <_POSIX_Condition_variables_Information> <== NOT EXECUTED 46728: 4eb9 0004 94cc jsr 494cc <_Objects_Close> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Free ( POSIX_Condition_variables_Control *the_condition_variable ) { _Objects_Free( 4672e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46730: 4879 0005 dac6 pea 5dac6 <_POSIX_Condition_variables_Information> <== NOT EXECUTED 46736: 4eb9 0004 97f0 jsr 497f0 <_Objects_Free> <== NOT EXECUTED &_POSIX_Condition_variables_Information, &the_cond->Object ); _POSIX_Condition_variables_Free( the_cond ); _Thread_Enable_dispatch(); 4673c: 4eb9 0004 a15c jsr 4a15c <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46742: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED &_POSIX_Condition_variables_Information, &the_cond->Object ); _POSIX_Condition_variables_Free( the_cond ); _Thread_Enable_dispatch(); 46746: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4674c: 4e5e unlk %fp <== NOT EXECUTED &_POSIX_Condition_variables_Information, &the_cond->Object ); _POSIX_Condition_variables_Free( the_cond ); _Thread_Enable_dispatch(); 4674e: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46750: 4e75 rts <== NOT EXECUTED ... 000467c8 : int pthread_cond_init( pthread_cond_t *cond, const pthread_condattr_t *attr ) { 467c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 467cc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 467ce: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 467d2: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_Condition_variables_Control *the_cond; const pthread_condattr_t *the_attr; if ( attr ) the_attr = attr; 467d4: 45f9 0005 a862 lea 5a862 <_POSIX_Condition_variables_Default_attributes>,%a2 <== NOT EXECUTED 467da: 4a80 tstl %d0 <== NOT EXECUTED 467dc: 6702 beqs 467e0 <== NOT EXECUTED 467de: 2440 moveal %d0,%a2 <== NOT EXECUTED /* * Be careful about attributes when global!!! */ if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED ) 467e0: 7001 moveq #1,%d0 <== NOT EXECUTED 467e2: b0aa 0004 cmpl %a2@(4),%d0 <== NOT EXECUTED 467e6: 6704 beqs 467ec <== NOT EXECUTED return EINVAL; if ( !the_attr->is_initialized ) 467e8: 4a92 tstl %a2@ <== NOT EXECUTED 467ea: 660e bnes 467fa <== NOT EXECUTED *cond = the_cond->Object.id; _Thread_Enable_dispatch(); return 0; } 467ec: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 467f0: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 467f4: 4e5e unlk %fp <== NOT EXECUTED *cond = the_cond->Object.id; _Thread_Enable_dispatch(); return 0; 467f6: 7016 moveq #22,%d0 <== NOT EXECUTED } 467f8: 4e75 rts <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 467fa: 2039 0005 d6f0 movel 5d6f0 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46800: 5280 addql #1,%d0 <== NOT EXECUTED 46802: 23c0 0005 d6f0 movel %d0,5d6f0 <_Thread_Dispatch_disable_level> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE POSIX_Condition_variables_Control *_POSIX_Condition_variables_Allocate( void ) { return (POSIX_Condition_variables_Control *) 46808: 4879 0005 dac6 pea 5dac6 <_POSIX_Condition_variables_Information> <== NOT EXECUTED 4680e: 4eb9 0004 9430 jsr 49430 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); the_cond = _POSIX_Condition_variables_Allocate(); if ( !the_cond ) { 46814: 588f addql #4,%sp <== NOT EXECUTED 46816: 2640 moveal %d0,%a3 <== NOT EXECUTED 46818: 4a80 tstl %d0 <== NOT EXECUTED 4681a: 6754 beqs 46870 <== NOT EXECUTED _Thread_Enable_dispatch(); return ENOMEM; } the_cond->process_shared = the_attr->process_shared; 4681c: 276a 0004 0010 movel %a2@(4),%a3@(16) <== NOT EXECUTED the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX; 46822: 42ab 0014 clrl %a3@(20) <== NOT EXECUTED /* XXX some more initialization might need to go here */ _Thread_queue_Initialize( 46826: 4878 0074 pea 74 <== NOT EXECUTED 4682a: 4878 0800 pea 800 <== NOT EXECUTED 4682e: 42a7 clrl %sp@- <== NOT EXECUTED 46830: 486b 0018 pea %a3@(24) <== NOT EXECUTED 46834: 4eb9 0004 a9dc jsr 4a9dc <_Thread_queue_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4683a: 2079 0005 dae0 moveal 5dae0 <_POSIX_Condition_variables_Information+0x1a>,%a0 <== NOT EXECUTED 46840: 4280 clrl %d0 <== NOT EXECUTED 46842: 302b 000a movew %a3@(10),%d0 <== NOT EXECUTED 46846: 218b 0c00 movel %a3,%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; 4684a: 42ab 000c clrl %a3@(12) <== NOT EXECUTED &_POSIX_Condition_variables_Information, &the_cond->Object, 0 ); *cond = the_cond->Object.id; 4684e: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46852: 20ab 0008 movel %a3@(8),%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 46856: 4eb9 0004 a15c jsr 4a15c <_Thread_Enable_dispatch> <== NOT EXECUTED return 0; } 4685c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46860: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 0 ); *cond = the_cond->Object.id; _Thread_Enable_dispatch(); 46864: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED return 0; } 4686a: 4e5e unlk %fp <== NOT EXECUTED 0 ); *cond = the_cond->Object.id; _Thread_Enable_dispatch(); 4686c: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4686e: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); the_cond = _POSIX_Condition_variables_Allocate(); if ( !the_cond ) { _Thread_Enable_dispatch(); 46870: 4eb9 0004 a15c jsr 4a15c <_Thread_Enable_dispatch> <== NOT EXECUTED *cond = the_cond->Object.id; _Thread_Enable_dispatch(); return 0; } 46876: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4687a: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4687e: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); the_cond = _POSIX_Condition_variables_Allocate(); if ( !the_cond ) { _Thread_Enable_dispatch(); 46880: 700c moveq #12,%d0 <== NOT EXECUTED *cond = the_cond->Object.id; _Thread_Enable_dispatch(); return 0; } 46882: 4e75 rts 00046884 : */ int pthread_cond_signal( pthread_cond_t *cond ) { 46884: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Condition_variables_Signal_support( cond, FALSE ); 46888: 42a7 clrl %sp@- <== NOT EXECUTED 4688a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4688e: 4eb9 0004 6898 jsr 46898 <_POSIX_Condition_variables_Signal_support> <== NOT EXECUTED } 46894: 4e5e unlk %fp <== NOT EXECUTED 46896: 4e75 rts 00046900 : int pthread_cond_timedwait( pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime ) { 46900: 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) ) { 46904: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46908: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4690c: 4eb9 0004 6e28 jsr 46e28 <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED 46912: 508f addql #8,%sp <== NOT EXECUTED 46914: 7202 moveq #2,%d1 <== NOT EXECUTED 46916: b280 cmpl %d0,%d1 <== NOT EXECUTED 46918: 652c bcss 46946 <== NOT EXECUTED 4691a: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 4691e: b280 cmpl %d0,%d1 <== NOT EXECUTED 46920: 6246 bhis 46968 <== NOT EXECUTED 46922: 7001 moveq #1,%d0 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: already_timedout = FALSE; break; } return _POSIX_Condition_variables_Wait_support( 46924: 7201 moveq #1,%d1 <== NOT EXECUTED 46926: c280 andl %d0,%d1 <== NOT EXECUTED 46928: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4692a: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 4692e: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 46932: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46936: 4eb9 0004 698c jsr 4698c <_POSIX_Condition_variables_Wait_support> <== NOT EXECUTED 4693c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED cond, mutex, ticks, already_timedout ); } 46942: 4e5e unlk %fp <== NOT EXECUTED 46944: 4e75 rts <== 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) ) { 46946: 4200 clrb %d0 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: already_timedout = FALSE; break; } return _POSIX_Condition_variables_Wait_support( 46948: 7201 moveq #1,%d1 <== NOT EXECUTED 4694a: c280 andl %d0,%d1 <== NOT EXECUTED 4694c: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4694e: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 46952: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 46956: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4695a: 4eb9 0004 698c jsr 4698c <_POSIX_Condition_variables_Wait_support> <== NOT EXECUTED 46960: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 46966: 60da bras 46942 <== NOT EXECUTED cond, mutex, ticks, already_timedout ); } 46968: 4e5e unlk %fp <== 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) ) { 4696a: 7016 moveq #22,%d0 <== NOT EXECUTED cond, mutex, ticks, already_timedout ); } 4696c: 4e75 rts <== NOT EXECUTED ... 00046970 : int pthread_cond_wait( pthread_cond_t *cond, pthread_mutex_t *mutex ) { 46970: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Condition_variables_Wait_support( 46974: 42a7 clrl %sp@- <== NOT EXECUTED 46976: 42a7 clrl %sp@- <== NOT EXECUTED 46978: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4697c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46980: 4eb9 0004 698c jsr 4698c <_POSIX_Condition_variables_Wait_support> <== NOT EXECUTED cond, mutex, THREAD_QUEUE_WAIT_FOREVER, FALSE ); } 46986: 4e5e unlk %fp <== NOT EXECUTED 46988: 4e75 rts <== NOT EXECUTED ... 0004662c : */ int pthread_condattr_destroy( pthread_condattr_t *attr ) { 4662c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46630: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || attr->is_initialized == FALSE ) 46634: 4a88 tstl %a0 <== NOT EXECUTED 46636: 670c beqs 46644 <== NOT EXECUTED 46638: 4a90 tstl %a0@ <== NOT EXECUTED 4663a: 6708 beqs 46644 <== NOT EXECUTED return EINVAL; attr->is_initialized = FALSE; return 0; } 4663c: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || attr->is_initialized == FALSE ) return EINVAL; attr->is_initialized = FALSE; 4663e: 4280 clrl %d0 <== NOT EXECUTED 46640: 4290 clrl %a0@ <== NOT EXECUTED return 0; } 46642: 4e75 rts <== NOT EXECUTED 46644: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || attr->is_initialized == FALSE ) return EINVAL; attr->is_initialized = FALSE; return 0; 46646: 7016 moveq #22,%d0 <== NOT EXECUTED } 46648: 4e75 rts <== NOT EXECUTED ... 0004664c : int pthread_condattr_getpshared( const pthread_condattr_t *attr, int *pshared ) { 4664c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46650: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr ) 46654: 4a88 tstl %a0 <== NOT EXECUTED 46656: 670e beqs 46666 <== NOT EXECUTED return EINVAL; *pshared = attr->process_shared; 46658: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 4665c: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr ) return EINVAL; *pshared = attr->process_shared; 4665e: 22a8 0004 movel %a0@(4),%a1@ <== NOT EXECUTED 46662: 4280 clrl %d0 <== NOT EXECUTED return 0; } 46664: 4e75 rts <== NOT EXECUTED 46666: 4e5e unlk %fp <== NOT EXECUTED int pthread_condattr_getpshared( const pthread_condattr_t *attr, int *pshared ) { if ( !attr ) 46668: 7016 moveq #22,%d0 <== NOT EXECUTED return EINVAL; *pshared = attr->process_shared; return 0; } 4666a: 4e75 rts 0004666c : */ int pthread_condattr_init( pthread_condattr_t *attr ) { 4666c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46670: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr ) 46674: 4a88 tstl %a0 <== NOT EXECUTED 46676: 6718 beqs 46690 <== NOT EXECUTED return EINVAL; *attr = _POSIX_Condition_variables_Default_attributes; 46678: 2039 0005 a862 movel 5a862 <_POSIX_Condition_variables_Default_attributes>,%d0 <== NOT EXECUTED 4667e: 2239 0005 a866 movel 5a866 <_POSIX_Condition_variables_Default_attributes+0x4>,%d1 <== NOT EXECUTED 46684: 2080 movel %d0,%a0@ <== NOT EXECUTED 46686: 2141 0004 movel %d1,%a0@(4) <== NOT EXECUTED return 0; } 4668a: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr ) return EINVAL; *attr = _POSIX_Condition_variables_Default_attributes; 4668c: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4668e: 4e75 rts <== NOT EXECUTED 46690: 4e5e unlk %fp <== NOT EXECUTED int pthread_condattr_init( pthread_condattr_t *attr ) { if ( !attr ) 46692: 7016 moveq #22,%d0 <== NOT EXECUTED return EINVAL; *attr = _POSIX_Condition_variables_Default_attributes; return 0; } 46694: 4e75 rts <== NOT EXECUTED ... 00046698 : int pthread_condattr_setpshared( pthread_condattr_t *attr, int pshared ) { 46698: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4669c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 466a0: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !attr ) 466a4: 4a88 tstl %a0 <== NOT EXECUTED 466a6: 6706 beqs 466ae <== NOT EXECUTED return EINVAL; switch ( pshared ) { 466a8: 7201 moveq #1,%d1 <== NOT EXECUTED 466aa: b280 cmpl %d0,%d1 <== NOT EXECUTED 466ac: 6406 bccs 466b4 <== NOT EXECUTED return 0; default: return EINVAL; } } 466ae: 4e5e unlk %fp <== NOT EXECUTED switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; return 0; 466b0: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 466b2: 4e75 rts <== NOT EXECUTED return EINVAL; switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 466b4: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED return 0; default: return EINVAL; } } 466b8: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 466ba: 4280 clrl %d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 466bc: 4e75 rts <== NOT EXECUTED ... 00046a88 : pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)( void * ), void *arg ) { 46a88: 4e56 ffb8 linkw %fp,#-72 <== NOT EXECUTED 46a8c: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 46a90: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED POSIX_API_Control *api; int schedpolicy = SCHED_RR; struct sched_param schedparam; Objects_Name name; if ( !start_routine ) 46a94: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 46a98: 6700 01e6 beqw 46c80 <== NOT EXECUTED return EFAULT; the_attr = (attr) ? attr : &_POSIX_Threads_Default_attributes; 46a9c: 47f9 0005 ac62 lea 5ac62 <_POSIX_Threads_Default_attributes>,%a3 <== NOT EXECUTED 46aa2: 4a80 tstl %d0 <== NOT EXECUTED 46aa4: 6702 beqs 46aa8 <== NOT EXECUTED 46aa6: 2640 moveal %d0,%a3 <== NOT EXECUTED if ( !the_attr->is_initialized ) 46aa8: 4a93 tstl %a3@ <== NOT EXECUTED 46aaa: 6724 beqs 46ad0 <== 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) ) 46aac: 4aab 0004 tstl %a3@(4) <== NOT EXECUTED 46ab0: 670c beqs 46abe <== NOT EXECUTED 46ab2: 2039 0005 bf6e movel 5bf6e ,%d0 <== NOT EXECUTED 46ab8: b0ab 0008 cmpl %a3@(8),%d0 <== NOT EXECUTED 46abc: 6212 bhis 46ad0 <== 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 ) { 46abe: 202b 0010 movel %a3@(16),%d0 <== NOT EXECUTED 46ac2: 7201 moveq #1,%d1 <== NOT EXECUTED 46ac4: b280 cmpl %d0,%d1 <== NOT EXECUTED 46ac6: 6700 0166 beqw 46c2e <== NOT EXECUTED 46aca: 7402 moveq #2,%d2 <== NOT EXECUTED 46acc: b480 cmpl %d0,%d2 <== NOT EXECUTED 46ace: 670c beqs 46adc <== NOT EXECUTED */ *thread = the_thread->Object.id; _RTEMS_Unlock_allocator(); return 0; 46ad0: 7016 moveq #22,%d0 <== NOT EXECUTED } 46ad2: 4cee 3cfc ffb8 moveml %fp@(-72),%d2-%d7/%a2-%a5 <== NOT EXECUTED 46ad8: 4e5e unlk %fp <== NOT EXECUTED 46ada: 4e75 rts <== NOT EXECUTED schedpolicy = api->schedpolicy; schedparam = api->schedparam; break; case PTHREAD_EXPLICIT_SCHED: schedpolicy = the_attr->schedpolicy; 46adc: 262b 0014 movel %a3@(20),%d3 <== NOT EXECUTED schedparam = the_attr->schedparam; 46ae0: 41ee ffe8 lea %fp@(-24),%a0 <== NOT EXECUTED 46ae4: 20ab 0018 movel %a3@(24),%a0@ <== NOT EXECUTED 46ae8: 2e0e movel %fp,%d7 <== NOT EXECUTED 46aea: 0687 ffff ffec addil #-20,%d7 <== NOT EXECUTED 46af0: 2247 moveal %d7,%a1 <== NOT EXECUTED 46af2: 22ab 001c movel %a3@(28),%a1@ <== NOT EXECUTED 46af6: 2a0e movel %fp,%d5 <== NOT EXECUTED 46af8: 0685 ffff fff0 addil #-16,%d5 <== NOT EXECUTED 46afe: 2d48 ffe0 movel %a0,%fp@(-32) <== NOT EXECUTED 46b02: 2045 moveal %d5,%a0 <== NOT EXECUTED 46b04: 20ab 0020 movel %a3@(32),%a0@ <== NOT EXECUTED 46b08: 2c0e movel %fp,%d6 <== NOT EXECUTED 46b0a: 280e movel %fp,%d4 <== NOT EXECUTED 46b0c: 0686 ffff fff4 addil #-12,%d6 <== NOT EXECUTED 46b12: 2246 moveal %d6,%a1 <== NOT EXECUTED 46b14: 22ab 0024 movel %a3@(36),%a1@ <== NOT EXECUTED 46b18: 5184 subql #8,%d4 <== NOT EXECUTED 46b1a: 2044 moveal %d4,%a0 <== NOT EXECUTED 46b1c: 20ab 0028 movel %a3@(40),%a0@ <== NOT EXECUTED 46b20: 284e moveal %fp,%a4 <== NOT EXECUTED 46b22: 292b 002c movel %a3@(44),%a4@- <== 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 ) 46b26: 203c 0000 0086 movel #134,%d0 <== NOT EXECUTED 46b2c: 4aab 000c tstl %a3@(12) <== NOT EXECUTED 46b30: 66a0 bnes 46ad2 <== NOT EXECUTED /* * Interpret the scheduling parameters. */ if ( !_POSIX_Priority_Is_valid( schedparam.sched_priority ) ) 46b32: 202e ffe8 movel %fp@(-24),%d0 <== NOT EXECUTED 46b36: 2d40 ffe4 movel %d0,%fp@(-28) <== NOT EXECUTED 46b3a: 5380 subql #1,%d0 <== NOT EXECUTED 46b3c: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 46b42: 628c bhis 46ad0 <== NOT EXECUTED */ budget_callout = NULL; budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; switch ( schedpolicy ) { 46b44: 7201 moveq #1,%d1 <== NOT EXECUTED 46b46: b283 cmpl %d3,%d1 <== NOT EXECUTED 46b48: 6700 014c beqw 46c96 <== NOT EXECUTED 46b4c: 6c00 022a bgew 46d78 <== NOT EXECUTED 46b50: 7402 moveq #2,%d2 <== NOT EXECUTED 46b52: b483 cmpl %d3,%d2 <== NOT EXECUTED 46b54: 6700 0136 beqw 46c8c <== NOT EXECUTED 46b58: 7003 moveq #3,%d0 <== NOT EXECUTED 46b5a: b083 cmpl %d3,%d0 <== NOT EXECUTED 46b5c: 6600 ff72 bnew 46ad0 <== 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 ) < 46b60: 2f05 movel %d5,%sp@- <== NOT EXECUTED 46b62: 45f9 0004 b15c lea 4b15c <_Timespec_To_ticks>,%a2 <== NOT EXECUTED 46b68: 4e92 jsr %a2@ <== NOT EXECUTED 46b6a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 46b6c: 2400 movel %d0,%d2 <== NOT EXECUTED 46b6e: 4e92 jsr %a2@ <== NOT EXECUTED 46b70: 508f addql #8,%sp <== NOT EXECUTED 46b72: b082 cmpl %d2,%d0 <== NOT EXECUTED 46b74: 6200 ff5a bhiw 46ad0 <== NOT EXECUTED _Timespec_To_ticks( &schedparam.ss_initial_budget ) ) return EINVAL; if ( !_POSIX_Priority_Is_valid( schedparam.ss_low_priority ) ) 46b78: 202e ffec movel %fp@(-20),%d0 <== NOT EXECUTED 46b7c: 5380 subql #1,%d0 <== NOT EXECUTED 46b7e: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 46b84: 6200 ff4a bhiw 46ad0 <== NOT EXECUTED 46b88: 347c 0003 moveaw #3,%a2 <== NOT EXECUTED 46b8c: 243c 0004 71ac movel #291244,%d2 <== NOT EXECUTED #endif /* * Lock the allocator mutex for protection */ _RTEMS_Lock_allocator(); 46b92: 2f39 0005 db86 movel 5db86 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 46b98: 4eb9 0004 8a44 jsr 48a44 <_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 ); 46b9e: 4879 0005 dcc2 pea 5dcc2 <_POSIX_Threads_Information> <== NOT EXECUTED 46ba4: 4eb9 0004 9410 jsr 49410 <_Objects_Allocate> <== NOT EXECUTED * NOTE: Global threads are not currently supported. */ the_thread = _POSIX_Threads_Allocate(); if ( !the_thread ) { 46baa: 508f addql #8,%sp <== NOT EXECUTED 46bac: 2a40 moveal %d0,%a5 <== NOT EXECUTED 46bae: 4a80 tstl %d0 <== NOT EXECUTED 46bb0: 6700 01d6 beqw 46d88 <== 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( 46bb4: 222b 0008 movel %a3@(8),%d1 <== NOT EXECUTED 46bb8: 42a7 clrl %sp@- <== NOT EXECUTED 46bba: 2039 0005 bf6e movel 5bf6e ,%d0 <== NOT EXECUTED 46bc0: 42a7 clrl %sp@- <== NOT EXECUTED 46bc2: d080 addl %d0,%d0 <== NOT EXECUTED 46bc4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46bc6: 243c 0000 00ff movel #255,%d2 <== NOT EXECUTED 46bcc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46bce: 4878 0001 pea 1 <== NOT EXECUTED 46bd2: 94ae ffe4 subl %fp@(-28),%d2 <== NOT EXECUTED 46bd6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46bd8: 4878 0001 pea 1 <== NOT EXECUTED 46bdc: b280 cmpl %d0,%d1 <== NOT EXECUTED 46bde: 6302 blss 46be2 <== NOT EXECUTED 46be0: 2001 movel %d1,%d0 <== NOT EXECUTED 46be2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46be4: 2f2b 0004 movel %a3@(4),%sp@- <== NOT EXECUTED 46be8: 2f0d movel %a5,%sp@- <== NOT EXECUTED 46bea: 4879 0005 dcc2 pea 5dcc2 <_POSIX_Threads_Information> <== NOT EXECUTED 46bf0: 4eb9 0004 a240 jsr 4a240 <_Thread_Initialize> <== NOT EXECUTED budget_callout, 0, /* isr level */ name /* posix threads don't have a name */ ); if ( !status ) { 46bf6: dffc 0000 002c addal #44,%sp <== NOT EXECUTED 46bfc: 4a00 tstb %d0 <== NOT EXECUTED 46bfe: 6600 009e bnew 46c9e <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Threads_Free ( Thread_Control *the_pthread ) { _Objects_Free( &_POSIX_Threads_Information, &the_pthread->Object ); 46c02: 2f0d movel %a5,%sp@- <== NOT EXECUTED 46c04: 4879 0005 dcc2 pea 5dcc2 <_POSIX_Threads_Information> <== NOT EXECUTED 46c0a: 4eb9 0004 97d0 jsr 497d0 <_Objects_Free> <== NOT EXECUTED _POSIX_Threads_Free( the_thread ); _RTEMS_Unlock_allocator(); 46c10: 2f39 0005 db86 movel 5db86 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 46c16: 4eb9 0004 8aa8 jsr 48aa8 <_API_Mutex_Unlock> <== NOT EXECUTED 46c1c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED *thread = the_thread->Object.id; _RTEMS_Unlock_allocator(); return 0; } 46c22: 4cee 3cfc ffb8 moveml %fp@(-72),%d2-%d7/%a2-%a5 <== NOT EXECUTED 46c28: 4e5e unlk %fp <== NOT EXECUTED name /* posix threads don't have a name */ ); if ( !status ) { _POSIX_Threads_Free( the_thread ); _RTEMS_Unlock_allocator(); 46c2a: 700b moveq #11,%d0 <== NOT EXECUTED *thread = the_thread->Object.id; _RTEMS_Unlock_allocator(); return 0; } 46c2c: 4e75 rts <== NOT EXECUTED * attributes structure. */ switch ( the_attr->inheritsched ) { case PTHREAD_INHERIT_SCHED: api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 46c2e: 2279 0005 db8e moveal 5db8e <_Thread_Executing>,%a1 <== NOT EXECUTED 46c34: 2069 0110 moveal %a1@(272),%a0 <== NOT EXECUTED schedpolicy = api->schedpolicy; 46c38: 2628 007c movel %a0@(124),%d3 <== NOT EXECUTED schedparam = api->schedparam; 46c3c: 43ee ffe8 lea %fp@(-24),%a1 <== NOT EXECUTED 46c40: d1fc 0000 0080 addal #128,%a0 <== NOT EXECUTED 46c46: 2298 movel %a0@+,%a1@ <== NOT EXECUTED 46c48: 2e0e movel %fp,%d7 <== NOT EXECUTED 46c4a: 0687 ffff ffec addil #-20,%d7 <== NOT EXECUTED 46c50: 2d49 ffe0 movel %a1,%fp@(-32) <== NOT EXECUTED 46c54: 2247 moveal %d7,%a1 <== NOT EXECUTED 46c56: 2298 movel %a0@+,%a1@ <== NOT EXECUTED 46c58: 2a0e movel %fp,%d5 <== NOT EXECUTED 46c5a: 0685 ffff fff0 addil #-16,%d5 <== NOT EXECUTED 46c60: 2245 moveal %d5,%a1 <== NOT EXECUTED 46c62: 2298 movel %a0@+,%a1@ <== NOT EXECUTED 46c64: 2c0e movel %fp,%d6 <== NOT EXECUTED 46c66: 0686 ffff fff4 addil #-12,%d6 <== NOT EXECUTED 46c6c: 2246 moveal %d6,%a1 <== NOT EXECUTED 46c6e: 2298 movel %a0@+,%a1@ <== NOT EXECUTED 46c70: 280e movel %fp,%d4 <== NOT EXECUTED 46c72: 5184 subql #8,%d4 <== NOT EXECUTED 46c74: 2244 moveal %d4,%a1 <== NOT EXECUTED 46c76: 2298 movel %a0@+,%a1@ <== NOT EXECUTED 46c78: 284e moveal %fp,%a4 <== NOT EXECUTED 46c7a: 2910 movel %a0@,%a4@- <== NOT EXECUTED 46c7c: 6000 fea8 braw 46b26 <== NOT EXECUTED *thread = the_thread->Object.id; _RTEMS_Unlock_allocator(); return 0; } 46c80: 4cee 3cfc ffb8 moveml %fp@(-72),%d2-%d7/%a2-%a5 <== NOT EXECUTED 46c86: 4e5e unlk %fp <== NOT EXECUTED POSIX_API_Control *api; int schedpolicy = SCHED_RR; struct sched_param schedparam; Objects_Name name; if ( !start_routine ) 46c88: 700e moveq #14,%d0 <== NOT EXECUTED *thread = the_thread->Object.id; _RTEMS_Unlock_allocator(); return 0; } 46c8a: 4e75 rts <== NOT EXECUTED */ budget_callout = NULL; budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; switch ( schedpolicy ) { 46c8c: 347c 0002 moveaw #2,%a2 <== NOT EXECUTED 46c90: 4282 clrl %d2 <== NOT EXECUTED 46c92: 6000 fefe braw 46b92 <== NOT EXECUTED 46c96: 95ca subal %a2,%a2 <== NOT EXECUTED 46c98: 4282 clrl %d2 <== NOT EXECUTED 46c9a: 6000 fef6 braw 46b92 <== NOT EXECUTED /* * finish initializing the per API structure */ api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 46c9e: 242d 0110 movel %a5@(272),%d2 <== NOT EXECUTED api->Attributes = *the_attr; 46ca2: 204b moveal %a3,%a0 <== NOT EXECUTED 46ca4: 2242 moveal %d2,%a1 <== NOT EXECUTED 46ca6: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED api->detachstate = the_attr->detachstate; 46ca8: d7fc 0000 0034 addal #52,%a3 <== NOT EXECUTED */ api = the_thread->API_Extensions[ THREAD_API_POSIX ]; api->Attributes = *the_attr; 46cae: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED api->detachstate = the_attr->detachstate; api->schedpolicy = schedpolicy; api->schedparam = schedparam; 46cb0: 2442 moveal %d2,%a2 <== NOT EXECUTED */ api = the_thread->API_Extensions[ THREAD_API_POSIX ]; api->Attributes = *the_attr; 46cb2: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED api->detachstate = the_attr->detachstate; api->schedpolicy = schedpolicy; api->schedparam = schedparam; 46cb4: d5fc 0000 0080 addal #128,%a2 <== NOT EXECUTED */ api = the_thread->API_Extensions[ THREAD_API_POSIX ]; api->Attributes = *the_attr; 46cba: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED * first run. * * NOTE: Since the thread starts with all unblocked, this is necessary. */ the_thread->do_post_task_switch_extension = true; 46cbc: 7001 moveq #1,%d0 <== NOT EXECUTED */ api = the_thread->API_Extensions[ THREAD_API_POSIX ]; api->Attributes = *the_attr; 46cbe: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 46cc0: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 46cc2: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 46cc4: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 46cc6: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 46cc8: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 46cca: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 46ccc: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 46cce: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 46cd0: 2290 movel %a0@,%a1@ <== NOT EXECUTED api->detachstate = the_attr->detachstate; 46cd2: 2042 moveal %d2,%a0 <== NOT EXECUTED 46cd4: 2153 0038 movel %a3@,%a0@(56) <== NOT EXECUTED api->schedpolicy = schedpolicy; api->schedparam = schedparam; 46cd8: 226e ffe0 moveal %fp@(-32),%a1 <== NOT EXECUTED api = the_thread->API_Extensions[ THREAD_API_POSIX ]; api->Attributes = *the_attr; api->detachstate = the_attr->detachstate; api->schedpolicy = schedpolicy; 46cdc: 2143 007c movel %d3,%a0@(124) <== NOT EXECUTED api->schedparam = schedparam; 46ce0: 2047 moveal %d7,%a0 <== NOT EXECUTED 46ce2: 24d1 movel %a1@,%a2@+ <== NOT EXECUTED 46ce4: 2246 moveal %d6,%a1 <== NOT EXECUTED 46ce6: 24d0 movel %a0@,%a2@+ <== NOT EXECUTED 46ce8: 2045 moveal %d5,%a0 <== NOT EXECUTED 46cea: 24d0 movel %a0@,%a2@+ <== NOT EXECUTED 46cec: 2044 moveal %d4,%a0 <== NOT EXECUTED 46cee: 24d1 movel %a1@,%a2@+ <== NOT EXECUTED * first run. * * NOTE: Since the thread starts with all unblocked, this is necessary. */ the_thread->do_post_task_switch_extension = true; 46cf0: 1b40 0075 moveb %d0,%a5@(117) <== NOT EXECUTED api = the_thread->API_Extensions[ THREAD_API_POSIX ]; api->Attributes = *the_attr; api->detachstate = the_attr->detachstate; api->schedpolicy = schedpolicy; api->schedparam = schedparam; 46cf4: 24d0 movel %a0@,%a2@+ <== NOT EXECUTED 46cf6: 2494 movel %a4@,%a2@ <== NOT EXECUTED /* * POSIX threads are allocated and started in one operation. */ status = _Thread_Start( 46cf8: 42a7 clrl %sp@- <== NOT EXECUTED 46cfa: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 46cfe: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 46d02: 4878 0001 pea 1 <== NOT EXECUTED 46d06: 2f0d movel %a5,%sp@- <== NOT EXECUTED 46d08: 4eb9 0004 add0 jsr 4add0 <_Thread_Start> <== NOT EXECUTED 46d0e: 1800 moveb %d0,%d4 <== NOT EXECUTED start_routine, arg, 0 /* unused */ ); if ( schedpolicy == SCHED_SPORADIC ) { 46d10: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 46d16: 7003 moveq #3,%d0 <== NOT EXECUTED 46d18: b083 cmpl %d3,%d0 <== NOT EXECUTED 46d1a: 6732 beqs 46d4e <== NOT EXECUTED * * NOTE: This can only happen if someone slips in and touches the * thread while we are creating it. */ if ( !status ) { 46d1c: 4a04 tstb %d4 <== NOT EXECUTED 46d1e: 6600 0082 bnew 46da2 <== NOT EXECUTED 46d22: 2f0d movel %a5,%sp@- <== NOT EXECUTED 46d24: 4879 0005 dcc2 pea 5dcc2 <_POSIX_Threads_Information> <== NOT EXECUTED 46d2a: 4eb9 0004 97d0 jsr 497d0 <_Objects_Free> <== NOT EXECUTED _POSIX_Threads_Free( the_thread ); _RTEMS_Unlock_allocator(); 46d30: 2f39 0005 db86 movel 5db86 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 46d36: 4eb9 0004 8aa8 jsr 48aa8 <_API_Mutex_Unlock> <== NOT EXECUTED 46d3c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED *thread = the_thread->Object.id; _RTEMS_Unlock_allocator(); return 0; } 46d42: 4cee 3cfc ffb8 moveml %fp@(-72),%d2-%d7/%a2-%a5 <== NOT EXECUTED 46d48: 4e5e unlk %fp <== NOT EXECUTED * thread while we are creating it. */ if ( !status ) { _POSIX_Threads_Free( the_thread ); _RTEMS_Unlock_allocator(); 46d4a: 7016 moveq #22,%d0 <== NOT EXECUTED *thread = the_thread->Object.id; _RTEMS_Unlock_allocator(); return 0; } 46d4c: 4e75 rts <== NOT EXECUTED arg, 0 /* unused */ ); if ( schedpolicy == SCHED_SPORADIC ) { _Watchdog_Insert_ticks( 46d4e: 2042 moveal %d2,%a0 <== NOT EXECUTED 46d50: 4868 0088 pea %a0@(136) <== NOT EXECUTED 46d54: 4eb9 0004 b15c jsr 4b15c <_Timespec_To_ticks> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 46d5a: 2242 moveal %d2,%a1 <== NOT EXECUTED 46d5c: 2340 00a8 movel %d0,%a1@(168) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 46d60: 4869 009c pea %a1@(156) <== NOT EXECUTED 46d64: 4879 0005 dbac pea 5dbac <_Watchdog_Ticks_chain> <== NOT EXECUTED 46d6a: 4eb9 0004 b520 jsr 4b520 <_Watchdog_Insert> <== NOT EXECUTED 46d70: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46d76: 60a4 bras 46d1c <== NOT EXECUTED */ budget_callout = NULL; budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; switch ( schedpolicy ) { 46d78: 4a83 tstl %d3 <== NOT EXECUTED 46d7a: 6600 fd54 bnew 46ad0 <== NOT EXECUTED 46d7e: 347c 0001 moveaw #1,%a2 <== NOT EXECUTED 46d82: 4282 clrl %d2 <== NOT EXECUTED 46d84: 6000 fe0c braw 46b92 <== NOT EXECUTED */ the_thread = _POSIX_Threads_Allocate(); if ( !the_thread ) { _RTEMS_Unlock_allocator(); 46d88: 2f39 0005 db86 movel 5db86 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 46d8e: 4eb9 0004 8aa8 jsr 48aa8 <_API_Mutex_Unlock> <== NOT EXECUTED 46d94: 588f addql #4,%sp <== NOT EXECUTED *thread = the_thread->Object.id; _RTEMS_Unlock_allocator(); return 0; } 46d96: 4cee 3cfc ffb8 moveml %fp@(-72),%d2-%d7/%a2-%a5 <== NOT EXECUTED 46d9c: 4e5e unlk %fp <== NOT EXECUTED */ the_thread = _POSIX_Threads_Allocate(); if ( !the_thread ) { _RTEMS_Unlock_allocator(); 46d9e: 700b moveq #11,%d0 <== NOT EXECUTED *thread = the_thread->Object.id; _RTEMS_Unlock_allocator(); return 0; } 46da0: 4e75 rts <== NOT EXECUTED /* * Return the id and indicate we successfully created the thread */ *thread = the_thread->Object.id; 46da2: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46da6: 20ad 0008 movel %a5@(8),%a0@ <== NOT EXECUTED _RTEMS_Unlock_allocator(); 46daa: 2f39 0005 db86 movel 5db86 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 46db0: 4eb9 0004 8aa8 jsr 48aa8 <_API_Mutex_Unlock> <== NOT EXECUTED 46db6: 588f addql #4,%sp <== NOT EXECUTED return 0; } 46db8: 4cee 3cfc ffb8 moveml %fp@(-72),%d2-%d7/%a2-%a5 <== NOT EXECUTED 46dbe: 4e5e unlk %fp <== NOT EXECUTED * Return the id and indicate we successfully created the thread */ *thread = the_thread->Object.id; _RTEMS_Unlock_allocator(); 46dc0: 4280 clrl %d0 <== NOT EXECUTED return 0; } 46dc2: 4e75 rts 00045cf4 : #include int pthread_detach( pthread_t thread ) { 45cf4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Get ( pthread_t id, Objects_Locations *location ) { return (Thread_Control *) 45cf8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45cfc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45d00: 4879 0005 c53a pea 5c53a <_POSIX_Threads_Information> <== NOT EXECUTED 45d06: 4eb9 0004 858c jsr 4858c <_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 ) { 45d0c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45d12: 2040 moveal %d0,%a0 <== NOT EXECUTED 45d14: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45d18: 6614 bnes 45d2e <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; api->detachstate = PTHREAD_CREATE_DETACHED; 45d1a: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED 45d1e: 42a8 0038 clrl %a0@(56) <== NOT EXECUTED _Thread_Enable_dispatch(); 45d22: 4eb9 0004 8d8c jsr 48d8c <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 45d28: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; api->detachstate = PTHREAD_CREATE_DETACHED; _Thread_Enable_dispatch(); 45d2a: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 45d2c: 4e75 rts <== NOT EXECUTED 45d2e: 4e5e unlk %fp <== NOT EXECUTED register Thread_Control *the_thread; POSIX_API_Control *api; Objects_Locations location; the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 45d30: 7003 moveq #3,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 45d32: 4e75 rts 00046dc4 : int pthread_equal( pthread_t t1, pthread_t t2 ) { 46dc4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46dc8: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 46dcc: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 46dd0: 57c0 seq %d0 <== NOT EXECUTED 46dd2: 49c0 extbl %d0 <== NOT EXECUTED break; } return status; #endif } 46dd4: 4e5e unlk %fp <== NOT EXECUTED 46dd6: 4480 negl %d0 <== NOT EXECUTED 46dd8: 4e75 rts <== NOT EXECUTED ... 0004ce06 : } void pthread_exit( void *value_ptr ) { 4ce06: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _POSIX_Thread_Exit( _Thread_Executing, value_ptr ); 4ce0a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ce0e: 2f39 0005 9d3a movel 59d3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 4ce14: 4eb9 0004 cd94 jsr 4cd94 <_POSIX_Thread_Exit> <== NOT EXECUTED 4ce1a: 508f addql #8,%sp <== NOT EXECUTED } 4ce1c: 4e5e unlk %fp <== NOT EXECUTED 4ce1e: 4e75 rts 00045b4c : int pthread_getcpuclockid( pthread_t pid, clockid_t *clock_id ) { 45b4c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45b50: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45b56: 2040 moveal %d0,%a0 <== NOT EXECUTED 45b58: 7058 moveq #88,%d0 <== NOT EXECUTED 45b5a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45b5c: 4e5e unlk %fp <== NOT EXECUTED 45b5e: 70ff moveq #-1,%d0 <== NOT EXECUTED 45b60: 4e75 rts <== NOT EXECUTED ... 00047fe8 : int pthread_getschedparam( pthread_t thread, int *policy, struct sched_param *param ) { 47fe8: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 47fec: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED 47ff0: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED 47ff4: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED Objects_Locations location; POSIX_API_Control *api; register Thread_Control *the_thread; if ( !policy || !param ) 47ff8: 4a8c tstl %a4 <== NOT EXECUTED 47ffa: 676c beqs 48068 <== NOT EXECUTED 47ffc: 4a8a tstl %a2 <== NOT EXECUTED 47ffe: 6768 beqs 48068 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Get ( pthread_t id, Objects_Locations *location ) { return (Thread_Control *) 48000: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48004: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48008: 4879 0005 f65a pea 5f65a <_POSIX_Threads_Information> <== NOT EXECUTED 4800e: 4eb9 0004 a924 jsr 4a924 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 48014: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4801a: 2640 moveal %d0,%a3 <== NOT EXECUTED 4801c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48020: 663a bnes 4805c <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 48022: 226b 0110 moveal %a3@(272),%a1 <== NOT EXECUTED if ( policy ) *policy = api->schedpolicy; 48026: 28a9 007c movel %a1@(124),%a4@ <== NOT EXECUTED if ( param ) { *param = api->schedparam; 4802a: 204a moveal %a2,%a0 <== NOT EXECUTED 4802c: d3fc 0000 0080 addal #128,%a1 <== NOT EXECUTED 48032: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED param->sched_priority = 48034: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; if ( policy ) *policy = api->schedpolicy; if ( param ) { *param = api->schedparam; 4803a: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 4803c: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 4803e: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 48040: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 48042: 2091 movel %a1@,%a0@ <== NOT EXECUTED param->sched_priority = 48044: 90ab 0014 subl %a3@(20),%d0 <== NOT EXECUTED 48048: 2480 movel %d0,%a2@ <== NOT EXECUTED _POSIX_Priority_From_core( the_thread->current_priority ); } _Thread_Enable_dispatch(); 4804a: 4eb9 0004 b124 jsr 4b124 <_Thread_Enable_dispatch> <== NOT EXECUTED break; } return ESRCH; } 48050: 4cee 1c00 fff0 moveml %fp@(-16),%a2-%a4 <== NOT EXECUTED 48056: 4e5e unlk %fp <== NOT EXECUTED if ( param ) { *param = api->schedparam; param->sched_priority = _POSIX_Priority_From_core( the_thread->current_priority ); } _Thread_Enable_dispatch(); 48058: 4280 clrl %d0 <== NOT EXECUTED break; } return ESRCH; } 4805a: 4e75 rts <== NOT EXECUTED 4805c: 4cee 1c00 fff0 moveml %fp@(-16),%a2-%a4 <== NOT EXECUTED 48062: 4e5e unlk %fp <== NOT EXECUTED if ( !policy || !param ) return EINVAL; the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 48064: 7003 moveq #3,%d0 <== NOT EXECUTED break; } return ESRCH; } 48066: 4e75 rts <== NOT EXECUTED 48068: 4cee 1c00 fff0 moveml %fp@(-16),%a2-%a4 <== NOT EXECUTED 4806e: 4e5e unlk %fp <== NOT EXECUTED *param = api->schedparam; param->sched_priority = _POSIX_Priority_From_core( the_thread->current_priority ); } _Thread_Enable_dispatch(); return 0; 48070: 7016 moveq #22,%d0 <== NOT EXECUTED break; } return ESRCH; } 48072: 4e75 rts 00045b08 : */ void *pthread_getspecific( pthread_key_t key ) { 45b08: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45b0c: 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 *) 45b0e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45b12: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45b16: 4879 0005 c792 pea 5c792 <_POSIX_Keys_Information> <== NOT EXECUTED 45b1c: 4eb9 0004 86bc jsr 486bc <_Objects_Get> <== NOT EXECUTED uint32_t index; Objects_Locations location; void *key_data; the_key = _POSIX_Keys_Get( key, &location ); switch ( location ) { 45b22: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45b28: 2240 moveal %d0,%a1 <== NOT EXECUTED 45b2a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45b2e: 6634 bnes 45b64 <== NOT EXECUTED case OBJECTS_LOCAL: api = _Objects_Get_API( _Thread_Executing->Object.id ); 45b30: 2079 0005 c4b6 moveal 5c4b6 <_Thread_Executing>,%a0 <== NOT EXECUTED 45b36: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED index = _Objects_Get_index( _Thread_Executing->Object.id ); key_data = (void *) the_key->Values[ api ][ index ]; 45b3a: 7418 moveq #24,%d2 <== NOT EXECUTED 45b3c: 2001 movel %d1,%d0 <== NOT EXECUTED 45b3e: e4a8 lsrl %d2,%d0 <== NOT EXECUTED 45b40: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 45b44: c082 andl %d2,%d0 <== NOT EXECUTED 45b46: 2071 0c16 moveal %a1@(00000016,%d0:l:4),%a0 <== NOT EXECUTED 45b4a: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 45b50: 2430 1c00 movel %a0@(00000000,%d1:l:4),%d2 <== NOT EXECUTED _Thread_Enable_dispatch(); 45b54: 4eb9 0004 8ebc jsr 48ebc <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return NULL; } 45b5a: 2002 movel %d2,%d0 <== NOT EXECUTED 45b5c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45b60: 4e5e unlk %fp <== NOT EXECUTED 45b62: 4e75 rts <== NOT EXECUTED uint32_t index; Objects_Locations location; void *key_data; the_key = _POSIX_Keys_Get( key, &location ); switch ( location ) { 45b64: 4282 clrl %d2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return NULL; } 45b66: 2002 movel %d2,%d0 <== NOT EXECUTED 45b68: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45b6c: 4e5e unlk %fp <== NOT EXECUTED 45b6e: 4e75 rts 00049b90 : int pthread_join( pthread_t thread, void **value_ptr ) { 49b90: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 49b94: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49b96: 486e fffc pea %fp@(-4) <== NOT EXECUTED 49b9a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 49b9e: 4879 0006 1b52 pea 61b52 <_POSIX_Threads_Information> <== NOT EXECUTED 49ba4: 4eb9 0004 c46c jsr 4c46c <_Objects_Get> <== NOT EXECUTED POSIX_API_Control *api; Objects_Locations location; void *return_pointer; the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 49baa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49bb0: 2240 moveal %d0,%a1 <== NOT EXECUTED 49bb2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 49bb6: 670a beqs 49bc2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 49bb8: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 49bbc: 4e5e unlk %fp <== NOT EXECUTED POSIX_API_Control *api; Objects_Locations location; void *return_pointer; the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 49bbe: 7003 moveq #3,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 49bc0: 4e75 rts <== NOT EXECUTED the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 49bc2: 2069 0110 moveal %a1@(272),%a0 <== NOT EXECUTED if ( api->detachstate == PTHREAD_CREATE_DETACHED ) { 49bc6: 4aa8 0038 tstl %a0@(56) <== NOT EXECUTED 49bca: 674e beqs 49c1a <== NOT EXECUTED RTEMS_INLINE_ROUTINE bool _Thread_Is_executing ( const Thread_Control *the_thread ) { return ( the_thread == _Thread_Executing ); 49bcc: 2479 0006 1a1e moveal 61a1e <_Thread_Executing>,%a2 <== NOT EXECUTED _Thread_Enable_dispatch(); return EINVAL; } if ( _Thread_Is_executing( the_thread ) ) { 49bd2: b5c0 cmpal %d0,%a2 <== NOT EXECUTED 49bd4: 6754 beqs 49c2a <== NOT EXECUTED /* * Put ourself on the threads join list */ _Thread_Executing->Wait.return_argument = &return_pointer; 49bd6: 200e movel %fp,%d0 <== NOT EXECUTED 49bd8: 5180 subql #8,%d0 <== NOT EXECUTED 49bda: 2540 0028 movel %d0,%a2@(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; 49bde: 7001 moveq #1,%d0 <== NOT EXECUTED 49be0: 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 ); 49be4: 4879 0004 d590 pea 4d590 <_Thread_queue_Timeout> <== NOT EXECUTED 49bea: 42a7 clrl %sp@- <== NOT EXECUTED 49bec: 4868 003c pea %a0@(60) <== NOT EXECUTED 49bf0: 4eb9 0004 d1d0 jsr 4d1d0 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 49bf6: 4eb9 0004 cc6c jsr 4cc6c <_Thread_Enable_dispatch> <== NOT EXECUTED if ( value_ptr ) 49bfc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 49c02: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 49c06: 6732 beqs 49c3a <== NOT EXECUTED *value_ptr = return_pointer; 49c08: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 49c0c: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED _Thread_queue_Enqueue( &api->Join_List, WATCHDOG_NO_TIMEOUT ); _Thread_Enable_dispatch(); if ( value_ptr ) *value_ptr = return_pointer; 49c10: 20ae fff8 movel %fp@(-8),%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 49c14: 4e5e unlk %fp <== NOT EXECUTED _Thread_queue_Enqueue( &api->Join_List, WATCHDOG_NO_TIMEOUT ); _Thread_Enable_dispatch(); if ( value_ptr ) *value_ptr = return_pointer; 49c16: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 49c18: 4e75 rts <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; if ( api->detachstate == PTHREAD_CREATE_DETACHED ) { _Thread_Enable_dispatch(); 49c1a: 4eb9 0004 cc6c jsr 4cc6c <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 49c20: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 49c24: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; if ( api->detachstate == PTHREAD_CREATE_DETACHED ) { _Thread_Enable_dispatch(); 49c26: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 49c28: 4e75 rts <== NOT EXECUTED _Thread_Enable_dispatch(); return EINVAL; } if ( _Thread_Is_executing( the_thread ) ) { _Thread_Enable_dispatch(); 49c2a: 4eb9 0004 cc6c jsr 4cc6c <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 49c30: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 49c34: 4e5e unlk %fp <== NOT EXECUTED _Thread_Enable_dispatch(); return EINVAL; } if ( _Thread_Is_executing( the_thread ) ) { _Thread_Enable_dispatch(); 49c36: 702d moveq #45,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 49c38: 4e75 rts <== NOT EXECUTED 49c3a: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 49c3e: 4e5e unlk %fp <== NOT EXECUTED _Thread_queue_Enqueue( &api->Join_List, WATCHDOG_NO_TIMEOUT ); _Thread_Enable_dispatch(); if ( value_ptr ) 49c40: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 49c42: 4e75 rts 00045938 : 45938: 2039 0005 c3f8 movel 5c3f8 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED int pthread_key_create( pthread_key_t *key, void (*destructor)( void * ) ) { 4593e: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 45942: 5280 addql #1,%d0 <== NOT EXECUTED 45944: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 45948: 23c0 0005 c3f8 movel %d0,5c3f8 <_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 ); 4594e: 4879 0005 c792 pea 5c792 <_POSIX_Keys_Information> <== NOT EXECUTED 45954: 4eb9 0004 8190 jsr 48190 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); the_key = _POSIX_Keys_Allocate(); if ( !the_key ) { 4595a: 588f addql #4,%sp <== NOT EXECUTED 4595c: 2a40 moveal %d0,%a5 <== NOT EXECUTED 4595e: 4a80 tstl %d0 <== NOT EXECUTED 45960: 6700 00a8 beqw 45a0a <== NOT EXECUTED _Thread_Enable_dispatch(); return EAGAIN; } the_key->destructor = destructor; 45964: 49f9 0005 c3b4 lea 5c3b4 <_Objects_Information_table+0x4>,%a4 <== NOT EXECUTED 4596a: 47ed 001a lea %a5@(26),%a3 <== NOT EXECUTED 4596e: 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 ); 45972: 283c 0004 a488 movel #304264,%d4 <== NOT EXECUTED _Thread_Enable_dispatch(); return ENOMEM; } the_key->Values[ the_api ] = table; memset( table, '\0', bytes_to_allocate ); 45978: 263c 0004 eb60 movel #322400,%d3 <== NOT EXECUTED if ( !the_key ) { _Thread_Enable_dispatch(); return EAGAIN; } the_key->destructor = destructor; 4597e: 2b6e 000c 0012 movel %fp@(12),%a5@(18) <== NOT EXECUTED for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) { if ( _Objects_Information_table[ the_api ] ) { 45984: 2054 moveal %a4@,%a0 <== NOT EXECUTED 45986: 4a88 tstl %a0 <== NOT EXECUTED 45988: 676e beqs 459f8 <== NOT EXECUTED INTERNAL_ERROR_CORE, TRUE, INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY ); #endif bytes_to_allocate = sizeof( void * ) * 4598a: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 4598e: 4280 clrl %d0 <== NOT EXECUTED 45990: 3028 000e movew %a0@(14),%d0 <== NOT EXECUTED 45994: 2400 movel %d0,%d2 <== NOT EXECUTED 45996: 5282 addql #1,%d2 <== NOT EXECUTED 45998: e58a lsll #2,%d2 <== NOT EXECUTED (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1); table = _Workspace_Allocate( bytes_to_allocate ); 4599a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4599c: 2044 moveal %d4,%a0 <== NOT EXECUTED 4599e: 4e90 jsr %a0@ <== NOT EXECUTED if ( !table ) { 459a0: 588f addql #4,%sp <== NOT EXECUTED 459a2: 4a80 tstl %d0 <== NOT EXECUTED 459a4: 6776 beqs 45a1c <== NOT EXECUTED _POSIX_Keys_Free( the_key ); _Thread_Enable_dispatch(); return ENOMEM; } the_key->Values[ the_api ] = table; 459a6: 2680 movel %d0,%a3@ <== NOT EXECUTED memset( table, '\0', bytes_to_allocate ); 459a8: 2043 moveal %d3,%a0 <== NOT EXECUTED * for. [NOTE: Currently RTEMS Classic API tasks are always enabled.] */ for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) { 459aa: 528a addql #1,%a2 <== NOT EXECUTED _Thread_Enable_dispatch(); return ENOMEM; } the_key->Values[ the_api ] = table; memset( table, '\0', bytes_to_allocate ); 459ac: 2f02 movel %d2,%sp@- <== NOT EXECUTED * for. [NOTE: Currently RTEMS Classic API tasks are always enabled.] */ for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) { 459ae: 588c addql #4,%a4 <== NOT EXECUTED 459b0: 588b addql #4,%a3 <== NOT EXECUTED _Thread_Enable_dispatch(); return ENOMEM; } the_key->Values[ the_api ] = table; memset( table, '\0', bytes_to_allocate ); 459b2: 42a7 clrl %sp@- <== NOT EXECUTED 459b4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 459b6: 4e90 jsr %a0@ <== NOT EXECUTED 459b8: dffc 0000 000c addal #12,%sp <== 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; 459be: 7005 moveq #5,%d0 <== NOT EXECUTED 459c0: b08a cmpl %a2,%d0 <== NOT EXECUTED 459c2: 66c0 bnes 45984 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 459c4: 2079 0005 c7ac moveal 5c7ac <_POSIX_Keys_Information+0x1a>,%a0 <== NOT EXECUTED 459ca: 4280 clrl %d0 <== NOT EXECUTED 459cc: 302d 000a movew %a5@(10),%d0 <== NOT EXECUTED 459d0: 218d 0c00 movel %a5,%a0@(00000000,%d0:l:4) <== NOT EXECUTED } } the_key->is_active = TRUE; 459d4: 7001 moveq #1,%d0 <== NOT EXECUTED 459d6: 1b40 0010 moveb %d0,%a5@(16) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string == FALSE */ the_object->name.name_u32 = name; 459da: 42ad 000c clrl %a5@(12) <== NOT EXECUTED _Objects_Open_u32( &_POSIX_Keys_Information, &the_key->Object, 0 ); *key = the_key->Object.id; 459de: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 459e2: 20ad 0008 movel %a5@(8),%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 459e6: 4eb9 0004 8ebc jsr 48ebc <_Thread_Enable_dispatch> <== NOT EXECUTED return 0; } 459ec: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 459f2: 4e5e unlk %fp <== NOT EXECUTED _Objects_Open_u32( &_POSIX_Keys_Information, &the_key->Object, 0 ); *key = the_key->Object.id; _Thread_Enable_dispatch(); 459f4: 4280 clrl %d0 <== NOT EXECUTED return 0; } 459f6: 4e75 rts <== NOT EXECUTED } the_key->Values[ the_api ] = table; memset( table, '\0', bytes_to_allocate ); } else { the_key->Values[ the_api ] = NULL; 459f8: 4293 clrl %a3@ <== NOT EXECUTED * for. [NOTE: Currently RTEMS Classic API tasks are always enabled.] */ for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) { 459fa: 528a addql #1,%a2 <== NOT EXECUTED 459fc: 588c addql #4,%a4 <== NOT EXECUTED 459fe: 588b addql #4,%a3 <== 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; 45a00: 7005 moveq #5,%d0 <== NOT EXECUTED 45a02: b08a cmpl %a2,%d0 <== NOT EXECUTED 45a04: 6600 ff7e bnew 45984 <== NOT EXECUTED 45a08: 60ba bras 459c4 <== NOT EXECUTED _Thread_Disable_dispatch(); the_key = _POSIX_Keys_Allocate(); if ( !the_key ) { _Thread_Enable_dispatch(); 45a0a: 4eb9 0004 8ebc jsr 48ebc <_Thread_Enable_dispatch> <== NOT EXECUTED *key = the_key->Object.id; _Thread_Enable_dispatch(); return 0; } 45a10: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 45a16: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); the_key = _POSIX_Keys_Allocate(); if ( !the_key ) { _Thread_Enable_dispatch(); 45a18: 700b moveq #11,%d0 <== NOT EXECUTED *key = the_key->Object.id; _Thread_Enable_dispatch(); return 0; } 45a1a: 4e75 rts <== NOT EXECUTED #endif bytes_to_allocate = sizeof( void * ) * (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1); table = _Workspace_Allocate( bytes_to_allocate ); if ( !table ) { for ( --the_api; 45a1c: 240a movel %a2,%d2 <== NOT EXECUTED 45a1e: 5382 subql #1,%d2 <== NOT EXECUTED the_api >= 1; 45a20: 6716 beqs 45a38 <== NOT EXECUTED 45a22: 45f5 2c16 lea %a5@(00000016,%d2:l:4),%a2 <== NOT EXECUTED 45a26: 47f9 0004 a470 lea 4a470 <_Workspace_Free>,%a3 <== NOT EXECUTED the_api-- ) _Workspace_Free( the_key->Values[ the_api ] ); 45a2c: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45a2e: 4e93 jsr %a3@ <== 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-- ) 45a30: 5382 subql #1,%d2 <== NOT EXECUTED 45a32: 598a subql #4,%a2 <== 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; 45a34: 588f addql #4,%sp <== NOT EXECUTED 45a36: 66f4 bnes 45a2c <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free ( POSIX_Keys_Control *the_key ) { _Objects_Free( &_POSIX_Keys_Information, &the_key->Object ); 45a38: 2f0d movel %a5,%sp@- <== NOT EXECUTED 45a3a: 4879 0005 c792 pea 5c792 <_POSIX_Keys_Information> <== NOT EXECUTED 45a40: 4eb9 0004 8550 jsr 48550 <_Objects_Free> <== NOT EXECUTED the_api-- ) _Workspace_Free( the_key->Values[ the_api ] ); _POSIX_Keys_Free( the_key ); _Thread_Enable_dispatch(); 45a46: 4eb9 0004 8ebc jsr 48ebc <_Thread_Enable_dispatch> <== NOT EXECUTED 45a4c: 508f addql #8,%sp <== NOT EXECUTED *key = the_key->Object.id; _Thread_Enable_dispatch(); return 0; } 45a4e: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 45a54: 4e5e unlk %fp <== NOT EXECUTED the_api >= 1; the_api-- ) _Workspace_Free( the_key->Values[ the_api ] ); _POSIX_Keys_Free( the_key ); _Thread_Enable_dispatch(); 45a56: 700c moveq #12,%d0 <== NOT EXECUTED *key = the_key->Object.id; _Thread_Enable_dispatch(); return 0; } 45a58: 4e75 rts <== NOT EXECUTED ... 00045a5c : */ int pthread_key_delete( pthread_key_t key ) { 45a5c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45a60: 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 *) 45a62: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45a66: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45a6a: 4879 0005 c792 pea 5c792 <_POSIX_Keys_Information> <== NOT EXECUTED 45a70: 4eb9 0004 86bc jsr 486bc <_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 ) { 45a76: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45a7c: 2440 moveal %d0,%a2 <== NOT EXECUTED 45a7e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45a82: 6678 bnes 45afc <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_POSIX_Keys_Information, &the_key->Object ); 45a84: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45a86: 4879 0005 c792 pea 5c792 <_POSIX_Keys_Information> <== NOT EXECUTED 45a8c: 4eb9 0004 822c jsr 4822c <_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 ] ) 45a92: 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; 45a96: 4201 clrb %d1 <== NOT EXECUTED 45a98: 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 ] ) 45a9c: 508f addql #8,%sp <== NOT EXECUTED 45a9e: 4a80 tstl %d0 <== NOT EXECUTED 45aa0: 670a beqs 45aac <== NOT EXECUTED _Workspace_Free( the_key->Values[ the_api ] ); 45aa2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45aa4: 4eb9 0004 a470 jsr 4a470 <_Workspace_Free> <== NOT EXECUTED 45aaa: 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 ] ) 45aac: 202a 001e movel %a2@(30),%d0 <== NOT EXECUTED 45ab0: 670a beqs 45abc <== NOT EXECUTED _Workspace_Free( the_key->Values[ the_api ] ); 45ab2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45ab4: 4eb9 0004 a470 jsr 4a470 <_Workspace_Free> <== NOT EXECUTED 45aba: 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 ] ) 45abc: 202a 0022 movel %a2@(34),%d0 <== NOT EXECUTED 45ac0: 670a beqs 45acc <== NOT EXECUTED _Workspace_Free( the_key->Values[ the_api ] ); 45ac2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45ac4: 4eb9 0004 a470 jsr 4a470 <_Workspace_Free> <== NOT EXECUTED 45aca: 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 ] ) 45acc: 202a 0026 movel %a2@(38),%d0 <== NOT EXECUTED 45ad0: 670a beqs 45adc <== NOT EXECUTED _Workspace_Free( the_key->Values[ the_api ] ); 45ad2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45ad4: 4eb9 0004 a470 jsr 4a470 <_Workspace_Free> <== NOT EXECUTED 45ada: 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 ); 45adc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45ade: 4879 0005 c792 pea 5c792 <_POSIX_Keys_Information> <== NOT EXECUTED 45ae4: 4eb9 0004 8550 jsr 48550 <_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(); 45aea: 4eb9 0004 8ebc jsr 48ebc <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45af0: 246e fff8 moveal %fp@(-8),%a2 <== 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(); 45af4: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45af6: 4e5e unlk %fp <== 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(); 45af8: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45afa: 4e75 rts <== NOT EXECUTED 45afc: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45b00: 4e5e unlk %fp <== NOT EXECUTED register POSIX_Keys_Control *the_key; Objects_Locations location; uint32_t the_api; the_key = _POSIX_Keys_Get( key, &location ); switch ( location ) { 45b02: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45b04: 4e75 rts <== NOT EXECUTED ... 000562d0 : int pthread_kill( pthread_t thread, int sig ) { 562d0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 562d4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 562d8: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED POSIX_API_Control *api; Thread_Control *the_thread; Objects_Locations location; if ( !sig ) 562dc: 6700 00a2 beqw 56380 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(sig) ) 562e0: 2602 movel %d2,%d3 <== NOT EXECUTED 562e2: 5383 subql #1,%d3 <== NOT EXECUTED 562e4: 701f moveq #31,%d0 <== NOT EXECUTED 562e6: b083 cmpl %d3,%d0 <== NOT EXECUTED 562e8: 6500 0096 bcsw 56380 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Get ( pthread_t id, Objects_Locations *location ) { return (Thread_Control *) 562ec: 486e fffc pea %fp@(-4) <== NOT EXECUTED 562f0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 562f4: 4879 0005 9e6e pea 59e6e <_POSIX_Threads_Information> <== NOT EXECUTED 562fa: 4eb9 0004 7584 jsr 47584 <_Objects_Get> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 56300: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 56306: 2440 moveal %d0,%a2 <== NOT EXECUTED 56308: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5630c: 6600 008a bnew 56398 <== NOT EXECUTED api = the_thread->API_Extensions[ THREAD_API_POSIX ]; if ( sig ) { if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) { 56310: 2202 movel %d2,%d1 <== NOT EXECUTED 56312: 2002 movel %d2,%d0 <== NOT EXECUTED 56314: e589 lsll #2,%d1 <== NOT EXECUTED 56316: e988 lsll #4,%d0 <== NOT EXECUTED 56318: 9081 subl %d1,%d0 <== NOT EXECUTED 5631a: 0680 0005 a18e addil #369038,%d0 <== NOT EXECUTED case OBJECTS_LOCAL: /* * If sig == 0 then just validate arguments */ api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 56320: 206a 0110 moveal %a2@(272),%a0 <== NOT EXECUTED if ( sig ) { if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) { 56324: 7201 moveq #1,%d1 <== NOT EXECUTED 56326: 2240 moveal %d0,%a1 <== NOT EXECUTED 56328: b291 cmpl %a1@,%d1 <== NOT EXECUTED 5632a: 6732 beqs 5635e <== NOT EXECUTED return 0; } /* XXX critical section */ api->signals_pending |= signo_to_mask( sig ); 5632c: 7001 moveq #1,%d0 <== NOT EXECUTED 5632e: e7a8 lsll %d3,%d0 <== NOT EXECUTED 56330: 81a8 00c8 orl %d0,%a0@(200) <== NOT EXECUTED (void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL ); 56334: 42a7 clrl %sp@- <== NOT EXECUTED 56336: 2f02 movel %d2,%sp@- <== NOT EXECUTED 56338: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5633a: 4eb9 0005 618c jsr 5618c <_POSIX_signals_Unblock_thread> <== NOT EXECUTED the_thread->do_post_task_switch_extension = true; if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) 56340: 2239 0005 9d1a movel 59d1a <_ISR_Nest_level>,%d1 <== 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; 56346: 7001 moveq #1,%d0 <== NOT EXECUTED 56348: 1540 0075 moveb %d0,%a2@(117) <== NOT EXECUTED if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) 5634c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 56352: 4a81 tstl %d1 <== NOT EXECUTED 56354: 6708 beqs 5635e <== NOT EXECUTED 56356: b5f9 0005 9d3a cmpal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED 5635c: 6712 beqs 56370 <== NOT EXECUTED _ISR_Signals_to_thread_executing = TRUE; } _Thread_Enable_dispatch(); 5635e: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 56364: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( ESRCH ); } 56366: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 5636c: 4e5e unlk %fp <== NOT EXECUTED 5636e: 4e75 rts <== NOT EXECUTED (void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL ); the_thread->do_post_task_switch_extension = true; if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) _ISR_Signals_to_thread_executing = TRUE; 56370: 13c0 0005 9dc8 moveb %d0,59dc8 <_ISR_Signals_to_thread_executing> <== NOT EXECUTED } _Thread_Enable_dispatch(); 56376: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 5637c: 4280 clrl %d0 <== NOT EXECUTED 5637e: 60e6 bras 56366 <== NOT EXECUTED if ( !sig ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(sig) ) rtems_set_errno_and_return_minus_one( EINVAL ); 56380: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 56386: 7416 moveq #22,%d2 <== NOT EXECUTED 56388: 2040 moveal %d0,%a0 <== NOT EXECUTED 5638a: 2082 movel %d2,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( ESRCH ); } 5638c: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 56392: 4e5e unlk %fp <== NOT EXECUTED if ( !sig ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(sig) ) rtems_set_errno_and_return_minus_one( EINVAL ); 56394: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( ESRCH ); } 56396: 4e75 rts <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( ESRCH ); 56398: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED } 5639e: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( ESRCH ); 563a4: 2040 moveal %d0,%a0 <== NOT EXECUTED 563a6: 7203 moveq #3,%d1 <== NOT EXECUTED } 563a8: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( ESRCH ); 563aa: 70ff moveq #-1,%d0 <== NOT EXECUTED 563ac: 2081 movel %d1,%a0@ <== NOT EXECUTED } 563ae: 4e75 rts 0004769c : */ int pthread_mutex_destroy( pthread_mutex_t *mutex ) { 4769c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 476a0: 2f0a movel %a2,%sp@- <== NOT EXECUTED register POSIX_Mutex_Control *the_mutex; Objects_Locations location; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 476a2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 476a6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 476aa: 4eb9 0004 7798 jsr 47798 <_POSIX_Mutex_Get> <== NOT EXECUTED switch ( location ) { 476b0: 508f addql #8,%sp <== NOT EXECUTED ) { register POSIX_Mutex_Control *the_mutex; Objects_Locations location; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 476b2: 2440 moveal %d0,%a2 <== NOT EXECUTED switch ( location ) { 476b4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 476b8: 670a beqs 476c4 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 476ba: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 476be: 4e5e unlk %fp <== NOT EXECUTED { register POSIX_Mutex_Control *the_mutex; Objects_Locations location; the_mutex = _POSIX_Mutex_Get( mutex, &location ); switch ( location ) { 476c0: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 476c2: 4e75 rts <== 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 ) ) { 476c4: 4aaa 0062 tstl %a2@(98) <== NOT EXECUTED 476c8: 6610 bnes 476da <== NOT EXECUTED _Thread_Enable_dispatch(); 476ca: 4eb9 0004 b124 jsr 4b124 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 476d0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 476d4: 4e5e unlk %fp <== 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 ) ) { _Thread_Enable_dispatch(); 476d6: 7010 moveq #16,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 476d8: 4e75 rts <== NOT EXECUTED if ( _CORE_mutex_Is_locked( &the_mutex->Mutex ) ) { _Thread_Enable_dispatch(); return EBUSY; } _Objects_Close( &_POSIX_Mutex_Information, &the_mutex->Object ); 476da: 2f00 movel %d0,%sp@- <== NOT EXECUTED 476dc: 4879 0005 f786 pea 5f786 <_POSIX_Mutex_Information> <== NOT EXECUTED 476e2: 4eb9 0004 a494 jsr 4a494 <_Objects_Close> <== NOT EXECUTED _CORE_mutex_Flush( &the_mutex->Mutex, NULL, EINVAL ); 476e8: 4878 0016 pea 16 <== NOT EXECUTED 476ec: 42a7 clrl %sp@- <== NOT EXECUTED 476ee: 486a 0014 pea %a2@(20) <== NOT EXECUTED 476f2: 4eb9 0004 9b5c jsr 49b5c <_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 ); 476f8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 476fa: 4879 0005 f786 pea 5f786 <_POSIX_Mutex_Information> <== NOT EXECUTED 47700: 4eb9 0004 a7b8 jsr 4a7b8 <_Objects_Free> <== NOT EXECUTED _POSIX_Mutex_Free( the_mutex ); _Thread_Enable_dispatch(); 47706: 4eb9 0004 b124 jsr 4b124 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4770c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED _Objects_Close( &_POSIX_Mutex_Information, &the_mutex->Object ); _CORE_mutex_Flush( &the_mutex->Mutex, NULL, EINVAL ); _POSIX_Mutex_Free( the_mutex ); _Thread_Enable_dispatch(); 47710: dffc 0000 001c addal #28,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 47716: 4e5e unlk %fp <== NOT EXECUTED _Objects_Close( &_POSIX_Mutex_Information, &the_mutex->Object ); _CORE_mutex_Flush( &the_mutex->Mutex, NULL, EINVAL ); _POSIX_Mutex_Free( the_mutex ); _Thread_Enable_dispatch(); 47718: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4771a: 4e75 rts 0004780c : int pthread_mutex_getprioceiling( pthread_mutex_t *mutex, int *prioceiling ) { 4780c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 47810: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47812: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED register POSIX_Mutex_Control *the_mutex; Objects_Locations location; if ( !prioceiling ) 47816: 4a8a tstl %a2 <== NOT EXECUTED 47818: 6734 beqs 4784e <== NOT EXECUTED return EINVAL; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 4781a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4781e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47822: 4eb9 0004 7798 jsr 47798 <_POSIX_Mutex_Get> <== NOT EXECUTED switch ( location ) { 47828: 508f addql #8,%sp <== NOT EXECUTED Objects_Locations location; if ( !prioceiling ) return EINVAL; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 4782a: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 4782c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47830: 661c bnes 4784e <== NOT EXECUTED case OBJECTS_LOCAL: *prioceiling = _POSIX_Priority_From_core( 47832: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 47838: 90a8 005e subl %a0@(94),%d0 <== NOT EXECUTED 4783c: 2480 movel %d0,%a2@ <== NOT EXECUTED the_mutex->Mutex.Attributes.priority_ceiling ); _Thread_Enable_dispatch(); 4783e: 4eb9 0004 b124 jsr 4b124 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 47844: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 47848: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: *prioceiling = _POSIX_Priority_From_core( the_mutex->Mutex.Attributes.priority_ceiling ); _Thread_Enable_dispatch(); 4784a: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4784c: 4e75 rts <== NOT EXECUTED 4784e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 47852: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: *prioceiling = _POSIX_Priority_From_core( the_mutex->Mutex.Attributes.priority_ceiling ); _Thread_Enable_dispatch(); return 0; 47854: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 47856: 4e75 rts 00047858 : int pthread_mutex_init( pthread_mutex_t *mutex, const pthread_mutexattr_t *attr ) { 47858: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 4785c: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 47860: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED #if 0 register POSIX_Mutex_Control *mutex_in_use; Objects_Locations location; #endif if ( attr ) the_attr = attr; 47864: 45f9 0005 c57c lea 5c57c <_POSIX_Mutex_Default_attributes>,%a2 <== NOT EXECUTED 4786a: 4a80 tstl %d0 <== NOT EXECUTED 4786c: 6702 beqs 47870 <== NOT EXECUTED 4786e: 2440 moveal %d0,%a2 <== NOT EXECUTED else the_attr = &_POSIX_Mutex_Default_attributes; /* Check for NULL mutex */ if ( !mutex ) 47870: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 47874: 6700 00d4 beqw 4794a <== NOT EXECUTED break; } } #endif if ( !the_attr->is_initialized ) 47878: 4a92 tstl %a2@ <== NOT EXECUTED 4787a: 6700 00ce beqw 4794a <== NOT EXECUTED /* * XXX: Be careful about attributes when global!!! */ assert( the_attr->process_shared == PTHREAD_PROCESS_PRIVATE ); 4787e: 4aaa 0004 tstl %a2@(4) <== NOT EXECUTED 47882: 6600 00f0 bnew 47974 <== NOT EXECUTED /* * Determine the discipline of the mutex */ switch ( the_attr->protocol ) { 47886: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 4788a: 7201 moveq #1,%d1 <== NOT EXECUTED 4788c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4788e: 6700 00c6 beqw 47956 <== NOT EXECUTED 47892: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 47896: b280 cmpl %d0,%d1 <== NOT EXECUTED 47898: 6700 00c2 beqw 4795c <== NOT EXECUTED 4789c: 4a80 tstl %d0 <== NOT EXECUTED 4789e: 6600 00aa bnew 4794a <== NOT EXECUTED 478a2: 4282 clrl %d2 <== NOT EXECUTED break; default: return EINVAL; } if ( !_POSIX_Priority_Is_valid( the_attr->prio_ceiling ) ) 478a4: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED 478a8: 5380 subql #1,%d0 <== NOT EXECUTED 478aa: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 478b0: 6200 0098 bhiw 4794a <== NOT EXECUTED 478b4: 2039 0005 f468 movel 5f468 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 478ba: 5280 addql #1,%d0 <== NOT EXECUTED 478bc: 23c0 0005 f468 movel %d0,5f468 <_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 ); 478c2: 4879 0005 f786 pea 5f786 <_POSIX_Mutex_Information> <== NOT EXECUTED 478c8: 4eb9 0004 a3f8 jsr 4a3f8 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); the_mutex = _POSIX_Mutex_Allocate(); if ( !the_mutex ) { 478ce: 588f addql #4,%sp <== NOT EXECUTED 478d0: 2640 moveal %d0,%a3 <== NOT EXECUTED 478d2: 4a80 tstl %d0 <== NOT EXECUTED 478d4: 6700 008c beqw 47962 <== 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; 478d8: 2742 005a movel %d2,%a3@(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; 478dc: 7201 moveq #1,%d1 <== NOT EXECUTED 478de: 1741 0058 moveb %d1,%a3@(88) <== NOT EXECUTED if ( !the_mutex ) { _Thread_Enable_dispatch(); return EAGAIN; } the_mutex->process_shared = the_attr->process_shared; 478e2: 276a 0004 0010 movel %a2@(4),%a3@(16) <== NOT EXECUTED the_mutex_attr = &the_mutex->Mutex.Attributes; if ( the_attr->recursive ) the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; 478e8: 4aaa 0010 tstl %a2@(16) <== NOT EXECUTED 478ec: 57c0 seq %d0 <== NOT EXECUTED 478ee: 49c0 extbl %d0 <== NOT EXECUTED 478f0: 4480 negl %d0 <== NOT EXECUTED 478f2: 2740 0054 movel %d0,%a3@(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 = 478f6: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 478fc: 90aa 0008 subl %a2@(8),%d0 <== NOT EXECUTED 47900: 2740 005e movel %d0,%a3@(94) <== NOT EXECUTED /* * Must be initialized to unlocked. */ _CORE_mutex_Initialize( 47904: 4878 0001 pea 1 <== NOT EXECUTED 47908: 486b 0054 pea %a3@(84) <== NOT EXECUTED 4790c: 486b 0014 pea %a3@(20) <== NOT EXECUTED 47910: 4eb9 0004 9b68 jsr 49b68 <_CORE_mutex_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 47916: 2079 0005 f7a0 moveal 5f7a0 <_POSIX_Mutex_Information+0x1a>,%a0 <== NOT EXECUTED 4791c: 4281 clrl %d1 <== NOT EXECUTED 4791e: 322b 000a movew %a3@(10),%d1 <== NOT EXECUTED 47922: 218b 1c00 movel %a3,%a0@(00000000,%d1:l:4) <== NOT EXECUTED _Objects_Get_index( the_object->id ), the_object ); /* ASSERT: information->is_string == FALSE */ the_object->name.name_u32 = name; 47926: 42ab 000c clrl %a3@(12) <== NOT EXECUTED CORE_MUTEX_UNLOCKED ); _Objects_Open_u32( &_POSIX_Mutex_Information, &the_mutex->Object, 0 ); *mutex = the_mutex->Object.id; 4792a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4792e: 20ab 0008 movel %a3@(8),%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 47932: 4eb9 0004 b124 jsr 4b124 <_Thread_Enable_dispatch> <== NOT EXECUTED 47938: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return 0; } 4793e: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 47944: 4e5e unlk %fp <== NOT EXECUTED _Objects_Open_u32( &_POSIX_Mutex_Information, &the_mutex->Object, 0 ); *mutex = the_mutex->Object.id; _Thread_Enable_dispatch(); 47946: 4280 clrl %d0 <== NOT EXECUTED return 0; } 47948: 4e75 rts <== NOT EXECUTED 4794a: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 47950: 4e5e unlk %fp <== NOT EXECUTED _Objects_Open_u32( &_POSIX_Mutex_Information, &the_mutex->Object, 0 ); *mutex = the_mutex->Object.id; _Thread_Enable_dispatch(); return 0; 47952: 7016 moveq #22,%d0 <== NOT EXECUTED } 47954: 4e75 rts <== NOT EXECUTED /* * Determine the discipline of the mutex */ switch ( the_attr->protocol ) { 47956: 7402 moveq #2,%d2 <== NOT EXECUTED 47958: 6000 ff4a braw 478a4 <== NOT EXECUTED 4795c: 7403 moveq #3,%d2 <== NOT EXECUTED 4795e: 6000 ff44 braw 478a4 <== NOT EXECUTED _Thread_Disable_dispatch(); the_mutex = _POSIX_Mutex_Allocate(); if ( !the_mutex ) { _Thread_Enable_dispatch(); 47962: 4eb9 0004 b124 jsr 4b124 <_Thread_Enable_dispatch> <== NOT EXECUTED *mutex = the_mutex->Object.id; _Thread_Enable_dispatch(); return 0; } 47968: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 4796e: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); the_mutex = _POSIX_Mutex_Allocate(); if ( !the_mutex ) { _Thread_Enable_dispatch(); 47970: 700b moveq #11,%d0 <== NOT EXECUTED *mutex = the_mutex->Object.id; _Thread_Enable_dispatch(); return 0; } 47972: 4e75 rts <== NOT EXECUTED /* * XXX: Be careful about attributes when global!!! */ assert( the_attr->process_shared == PTHREAD_PROCESS_PRIVATE ); 47974: 4879 0005 c590 pea 5c590 <_POSIX_Mutex_Default_attributes+0x14> <== NOT EXECUTED 4797a: 4879 0005 c60a pea 5c60a <__func__.3812> <== NOT EXECUTED 47980: 4878 0068 pea 68 <== NOT EXECUTED 47984: 4879 0005 c5c4 pea 5c5c4 <_POSIX_Mutex_Default_attributes+0x48> <== NOT EXECUTED 4798a: 4eb9 0004 4450 jsr 44450 <__assert_func> <== NOT EXECUTED 00047990 : */ int pthread_mutex_lock( pthread_mutex_t *mutex ) { 47990: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Mutex_Lock_support( mutex, TRUE, THREAD_QUEUE_WAIT_FOREVER ); 47994: 42a7 clrl %sp@- <== NOT EXECUTED 47996: 4878 0001 pea 1 <== NOT EXECUTED 4799a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4799e: 4eb9 0004 79a8 jsr 479a8 <_POSIX_Mutex_Lock_support> <== NOT EXECUTED } 479a4: 4e5e unlk %fp <== NOT EXECUTED 479a6: 4e75 rts 00047a18 : int pthread_mutex_setprioceiling( pthread_mutex_t *mutex, int prioceiling, int *old_ceiling ) { 47a18: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 47a1c: 2f02 movel %d2,%sp@- <== NOT EXECUTED register POSIX_Mutex_Control *the_mutex; Objects_Locations location; Priority_Control the_priority; int status; if ( !old_ceiling ) 47a1e: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 47a22: 670e beqs 47a32 <== NOT EXECUTED return EINVAL; if ( !_POSIX_Priority_Is_valid( prioceiling ) ) 47a24: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 47a28: 5380 subql #1,%d0 <== NOT EXECUTED 47a2a: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 47a30: 630c blss 47a3e <== NOT EXECUTED &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); return 0; 47a32: 7416 moveq #22,%d2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 47a34: 2002 movel %d2,%d0 <== NOT EXECUTED 47a36: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47a3a: 4e5e unlk %fp <== NOT EXECUTED 47a3c: 4e75 rts <== NOT EXECUTED /* * Must acquire the mutex before we can change it's ceiling */ status = pthread_mutex_lock( mutex ); 47a3e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47a42: 4eb9 0004 7990 jsr 47990 <== NOT EXECUTED if ( status ) 47a48: 588f addql #4,%sp <== NOT EXECUTED /* * Must acquire the mutex before we can change it's ceiling */ status = pthread_mutex_lock( mutex ); 47a4a: 2400 movel %d0,%d2 <== NOT EXECUTED if ( status ) 47a4c: 66e6 bnes 47a34 <== NOT EXECUTED return status; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 47a4e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 47a52: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47a56: 4eb9 0004 7798 jsr 47798 <_POSIX_Mutex_Get> <== NOT EXECUTED switch ( location ) { 47a5c: 508f addql #8,%sp <== NOT EXECUTED status = pthread_mutex_lock( mutex ); if ( status ) return status; the_mutex = _POSIX_Mutex_Get( mutex, &location ); 47a5e: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 47a60: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47a64: 66cc bnes 47a32 <== NOT EXECUTED case OBJECTS_LOCAL: *old_ceiling = _POSIX_Priority_From_core( 47a66: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 47a6c: 90a8 005e subl %a0@(94),%d0 <== NOT EXECUTED 47a70: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED 47a74: 2280 movel %d0,%a1@ <== NOT EXECUTED the_mutex->Mutex.Attributes.priority_ceiling ); the_mutex->Mutex.Attributes.priority_ceiling = the_priority; 47a76: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 47a7c: 90ae 000c subl %fp@(12),%d0 <== NOT EXECUTED 47a80: 2140 005e movel %d0,%a0@(94) <== NOT EXECUTED _CORE_mutex_Surrender( 47a84: 42a7 clrl %sp@- <== NOT EXECUTED 47a86: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 47a8a: 4868 0014 pea %a0@(20) <== NOT EXECUTED 47a8e: 4eb9 0004 9da4 jsr 49da4 <_CORE_mutex_Surrender> <== NOT EXECUTED &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); 47a94: 4eb9 0004 b124 jsr 4b124 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 47a9a: 2002 movel %d2,%d0 <== NOT EXECUTED 47a9c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED _CORE_mutex_Surrender( &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); 47aa0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 47aa6: 4e5e unlk %fp <== NOT EXECUTED 47aa8: 4e75 rts <== NOT EXECUTED ... 00047aac : int pthread_mutex_timedlock( pthread_mutex_t *mutex, const struct timespec *abstime ) { 47aac: 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 ); 47ab0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 47ab4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 47ab8: 4eb9 0004 7b8c jsr 47b8c <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED switch ( status ) { 47abe: 508f addql #8,%sp <== NOT EXECUTED 47ac0: 7202 moveq #2,%d1 <== NOT EXECUTED 47ac2: b280 cmpl %d0,%d1 <== NOT EXECUTED 47ac4: 6408 bccs 47ace <== NOT EXECUTED 47ac6: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 47aca: b280 cmpl %d0,%d1 <== NOT EXECUTED 47acc: 671a beqs 47ae8 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: do_wait = TRUE; break; } lock_status = _POSIX_Mutex_Lock_support( 47ace: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 47ad2: 42a7 clrl %sp@- <== NOT EXECUTED 47ad4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47ad8: 4eb9 0004 79a8 jsr 479a8 <_POSIX_Mutex_Lock_support> <== NOT EXECUTED 47ade: dffc 0000 000c addal #12,%sp <== NOT EXECUTED break; } } return lock_status; } 47ae4: 4e5e unlk %fp <== NOT EXECUTED 47ae6: 4e75 rts <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: do_wait = TRUE; break; } lock_status = _POSIX_Mutex_Lock_support( 47ae8: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 47aec: 4878 0001 pea 1 <== NOT EXECUTED 47af0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47af4: 4eb9 0004 79a8 jsr 479a8 <_POSIX_Mutex_Lock_support> <== NOT EXECUTED 47afa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED break; } } return lock_status; } 47b00: 4e5e unlk %fp <== NOT EXECUTED 47b02: 4e75 rts 00047b1c : */ int pthread_mutex_trylock( pthread_mutex_t *mutex ) { 47b1c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Mutex_Lock_support( mutex, FALSE, THREAD_QUEUE_WAIT_FOREVER ); 47b20: 42a7 clrl %sp@- <== NOT EXECUTED 47b22: 42a7 clrl %sp@- <== NOT EXECUTED 47b24: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47b28: 4eb9 0004 79a8 jsr 479a8 <_POSIX_Mutex_Lock_support> <== NOT EXECUTED } 47b2e: 4e5e unlk %fp <== NOT EXECUTED 47b30: 4e75 rts <== NOT EXECUTED ... 00047b34 : */ int pthread_mutex_unlock( pthread_mutex_t *mutex ) { 47b34: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 47b38: 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 ); 47b3a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 47b3e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47b42: 4eb9 0004 7798 jsr 47798 <_POSIX_Mutex_Get> <== NOT EXECUTED switch ( location ) { 47b48: 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 ); 47b4a: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 47b4c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47b50: 662e bnes 47b80 <== NOT EXECUTED case OBJECTS_LOCAL: status = _CORE_mutex_Surrender( 47b52: 42a7 clrl %sp@- <== NOT EXECUTED 47b54: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 47b58: 4868 0014 pea %a0@(20) <== NOT EXECUTED 47b5c: 4eb9 0004 9da4 jsr 49da4 <_CORE_mutex_Surrender> <== NOT EXECUTED 47b62: 2400 movel %d0,%d2 <== NOT EXECUTED &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); 47b64: 4eb9 0004 b124 jsr 4b124 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_Mutex_Translate_core_mutex_return_code( status ); 47b6a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47b6c: 4eb9 0004 7b04 jsr 47b04 <_POSIX_Mutex_Translate_core_mutex_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 47b72: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED &the_mutex->Mutex, the_mutex->Object.id, NULL ); _Thread_Enable_dispatch(); return _POSIX_Mutex_Translate_core_mutex_return_code( status ); 47b76: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 47b7c: 4e5e unlk %fp <== NOT EXECUTED 47b7e: 4e75 rts <== NOT EXECUTED 47b80: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 47b84: 4e5e unlk %fp <== NOT EXECUTED register POSIX_Mutex_Control *the_mutex; Objects_Locations location; CORE_mutex_Status status; the_mutex = _POSIX_Mutex_Get( mutex, &location ); switch ( location ) { 47b86: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 47b88: 4e75 rts <== NOT EXECUTED ... 00047534 : */ int pthread_mutexattr_destroy( pthread_mutexattr_t *attr ) { 47534: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47538: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 4753c: 4a88 tstl %a0 <== NOT EXECUTED 4753e: 670c beqs 4754c <== NOT EXECUTED 47540: 4a90 tstl %a0@ <== NOT EXECUTED 47542: 6708 beqs 4754c <== NOT EXECUTED return EINVAL; attr->is_initialized = FALSE; return 0; } 47544: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized ) return EINVAL; attr->is_initialized = FALSE; 47546: 4280 clrl %d0 <== NOT EXECUTED 47548: 4290 clrl %a0@ <== NOT EXECUTED return 0; } 4754a: 4e75 rts <== NOT EXECUTED 4754c: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized ) return EINVAL; attr->is_initialized = FALSE; return 0; 4754e: 7016 moveq #22,%d0 <== NOT EXECUTED } 47550: 4e75 rts <== NOT EXECUTED ... 00047554 : int pthread_mutexattr_getprioceiling( const pthread_mutexattr_t *attr, int *prioceiling ) { 47554: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47558: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !prioceiling ) 4755c: 4a88 tstl %a0 <== NOT EXECUTED 4755e: 6718 beqs 47578 <== NOT EXECUTED 47560: 4a90 tstl %a0@ <== NOT EXECUTED 47562: 6714 beqs 47578 <== NOT EXECUTED 47564: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 47568: 670e beqs 47578 <== NOT EXECUTED return EINVAL; *prioceiling = attr->prio_ceiling; 4756a: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 4756e: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !prioceiling ) return EINVAL; *prioceiling = attr->prio_ceiling; 47570: 22a8 0008 movel %a0@(8),%a1@ <== NOT EXECUTED 47574: 4280 clrl %d0 <== NOT EXECUTED return 0; } 47576: 4e75 rts <== NOT EXECUTED 47578: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !prioceiling ) return EINVAL; *prioceiling = attr->prio_ceiling; return 0; 4757a: 7016 moveq #22,%d0 <== NOT EXECUTED } 4757c: 4e75 rts <== NOT EXECUTED ... 00047580 : int pthread_mutexattr_getprotocol( const pthread_mutexattr_t *attr, int *protocol ) { 47580: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47584: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !protocol ) 47588: 4a88 tstl %a0 <== NOT EXECUTED 4758a: 6718 beqs 475a4 <== NOT EXECUTED 4758c: 4a90 tstl %a0@ <== NOT EXECUTED 4758e: 6714 beqs 475a4 <== NOT EXECUTED 47590: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 47594: 670e beqs 475a4 <== NOT EXECUTED return EINVAL; *protocol = attr->protocol; 47596: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 4759a: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !protocol ) return EINVAL; *protocol = attr->protocol; 4759c: 22a8 000c movel %a0@(12),%a1@ <== NOT EXECUTED 475a0: 4280 clrl %d0 <== NOT EXECUTED return 0; } 475a2: 4e75 rts <== NOT EXECUTED 475a4: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !protocol ) return EINVAL; *protocol = attr->protocol; return 0; 475a6: 7016 moveq #22,%d0 <== NOT EXECUTED } 475a8: 4e75 rts <== NOT EXECUTED ... 000475ac : int pthread_mutexattr_getpshared( const pthread_mutexattr_t *attr, int *pshared ) { 475ac: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 475b0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized || !pshared ) 475b4: 4a88 tstl %a0 <== NOT EXECUTED 475b6: 6718 beqs 475d0 <== NOT EXECUTED 475b8: 4a90 tstl %a0@ <== NOT EXECUTED 475ba: 6714 beqs 475d0 <== NOT EXECUTED 475bc: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 475c0: 670e beqs 475d0 <== NOT EXECUTED return EINVAL; *pshared = attr->process_shared; 475c2: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 475c6: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || !attr->is_initialized || !pshared ) return EINVAL; *pshared = attr->process_shared; 475c8: 22a8 0004 movel %a0@(4),%a1@ <== NOT EXECUTED 475cc: 4280 clrl %d0 <== NOT EXECUTED return 0; } 475ce: 4e75 rts <== NOT EXECUTED 475d0: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || !attr->is_initialized || !pshared ) return EINVAL; *pshared = attr->process_shared; return 0; 475d2: 7016 moveq #22,%d0 <== NOT EXECUTED } 475d4: 4e75 rts <== NOT EXECUTED ... 000475d8 : */ int pthread_mutexattr_init( pthread_mutexattr_t *attr ) { 475d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 475dc: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !attr ) 475e0: 6726 beqs 47608 <== NOT EXECUTED return EINVAL; *attr = _POSIX_Mutex_Default_attributes; 475e2: 2040 moveal %d0,%a0 <== NOT EXECUTED 475e4: 20f9 0005 c57c movel 5c57c <_POSIX_Mutex_Default_attributes>,%a0@+ <== NOT EXECUTED return 0; } 475ea: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr ) return EINVAL; *attr = _POSIX_Mutex_Default_attributes; 475ec: 20f9 0005 c580 movel 5c580 <_POSIX_Mutex_Default_attributes+0x4>,%a0@+ <== NOT EXECUTED 475f2: 4280 clrl %d0 <== NOT EXECUTED 475f4: 20f9 0005 c584 movel 5c584 <_POSIX_Mutex_Default_attributes+0x8>,%a0@+ <== NOT EXECUTED 475fa: 20f9 0005 c588 movel 5c588 <_POSIX_Mutex_Default_attributes+0xc>,%a0@+ <== NOT EXECUTED 47600: 20b9 0005 c58c movel 5c58c <_POSIX_Mutex_Default_attributes+0x10>,%a0@ <== NOT EXECUTED return 0; } 47606: 4e75 rts <== NOT EXECUTED 47608: 4e5e unlk %fp <== NOT EXECUTED int pthread_mutexattr_init( pthread_mutexattr_t *attr ) { if ( !attr ) 4760a: 103c 0016 moveb #22,%d0 <== NOT EXECUTED return EINVAL; *attr = _POSIX_Mutex_Default_attributes; return 0; } 4760e: 4e75 rts 00047610 : int pthread_mutexattr_setprioceiling( pthread_mutexattr_t *attr, int prioceiling ) { 47610: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47614: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 47618: 4a88 tstl %a0 <== NOT EXECUTED 4761a: 6720 beqs 4763c <== NOT EXECUTED 4761c: 4a90 tstl %a0@ <== NOT EXECUTED 4761e: 671c beqs 4763c <== NOT EXECUTED return EINVAL; if ( !_POSIX_Priority_Is_valid( prioceiling ) ) 47620: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 47624: 5380 subql #1,%d0 <== NOT EXECUTED 47626: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 4762c: 620e bhis 4763c <== NOT EXECUTED return EINVAL; attr->prio_ceiling = prioceiling; 4762e: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return 0; } 47632: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; if ( !_POSIX_Priority_Is_valid( prioceiling ) ) return EINVAL; attr->prio_ceiling = prioceiling; 47634: 2140 0008 movel %d0,%a0@(8) <== NOT EXECUTED 47638: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4763a: 4e75 rts <== NOT EXECUTED 4763c: 4e5e unlk %fp <== NOT EXECUTED if ( !_POSIX_Priority_Is_valid( prioceiling ) ) return EINVAL; attr->prio_ceiling = prioceiling; return 0; 4763e: 7016 moveq #22,%d0 <== NOT EXECUTED } 47640: 4e75 rts <== NOT EXECUTED ... 00047644 : int pthread_mutexattr_setprotocol( pthread_mutexattr_t *attr, int protocol ) { 47644: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47648: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 4764c: 4a88 tstl %a0 <== NOT EXECUTED 4764e: 670c beqs 4765c <== NOT EXECUTED 47650: 4a90 tstl %a0@ <== NOT EXECUTED 47652: 6708 beqs 4765c <== NOT EXECUTED return EINVAL; switch ( protocol ) { 47654: 7002 moveq #2,%d0 <== NOT EXECUTED 47656: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 4765a: 6406 bccs 47662 <== NOT EXECUTED return 0; default: return EINVAL; } } 4765c: 4e5e unlk %fp <== NOT EXECUTED switch ( protocol ) { case PTHREAD_PRIO_NONE: case PTHREAD_PRIO_INHERIT: case PTHREAD_PRIO_PROTECT: attr->protocol = protocol; return 0; 4765e: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 47660: 4e75 rts <== NOT EXECUTED switch ( protocol ) { case PTHREAD_PRIO_NONE: case PTHREAD_PRIO_INHERIT: case PTHREAD_PRIO_PROTECT: attr->protocol = protocol; 47662: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 47666: 4e5e unlk %fp <== NOT EXECUTED switch ( protocol ) { case PTHREAD_PRIO_NONE: case PTHREAD_PRIO_INHERIT: case PTHREAD_PRIO_PROTECT: attr->protocol = protocol; 47668: 2140 000c movel %d0,%a0@(12) <== NOT EXECUTED 4766c: 4280 clrl %d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 4766e: 4e75 rts 00047670 : int pthread_mutexattr_setpshared( pthread_mutexattr_t *attr, int pshared ) { 47670: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47674: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || !attr->is_initialized ) 47678: 4a88 tstl %a0 <== NOT EXECUTED 4767a: 670c beqs 47688 <== NOT EXECUTED 4767c: 4a90 tstl %a0@ <== NOT EXECUTED 4767e: 6708 beqs 47688 <== NOT EXECUTED return EINVAL; switch ( pshared ) { 47680: 7001 moveq #1,%d0 <== NOT EXECUTED 47682: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 47686: 6406 bccs 4768e <== NOT EXECUTED return 0; default: return EINVAL; } } 47688: 4e5e unlk %fp <== NOT EXECUTED switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; return 0; 4768a: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 4768c: 4e75 rts <== NOT EXECUTED return EINVAL; switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 4768e: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 47692: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 47694: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED 47698: 4280 clrl %d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 4769a: 4e75 rts 00047280 : int pthread_once( pthread_once_t *once_control, void (*init_routine)(void) ) { 47280: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 47284: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 47288: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( !once_control || !init_routine ) 4728c: 4a8a tstl %a2 <== NOT EXECUTED 4728e: 6750 beqs 472e0 <== NOT EXECUTED 47290: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 47294: 674a beqs 472e0 <== NOT EXECUTED return EINVAL; if ( !once_control->init_executed ) { 47296: 4aaa 0004 tstl %a2@(4) <== NOT EXECUTED 4729a: 670c beqs 472a8 <== NOT EXECUTED if ( !once_control->init_executed ) { once_control->is_initialized = TRUE; once_control->init_executed = TRUE; (*init_routine)(); } rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode); 4729c: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 4729e: 4cee 0c04 fff0 moveml %fp@(-16),%d2/%a2-%a3 <== NOT EXECUTED 472a4: 4e5e unlk %fp <== NOT EXECUTED 472a6: 4e75 rts <== NOT EXECUTED if ( !once_control || !init_routine ) return EINVAL; if ( !once_control->init_executed ) { rtems_mode saveMode; rtems_task_mode(RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &saveMode); 472a8: 240e movel %fp,%d2 <== NOT EXECUTED 472aa: 5982 subql #4,%d2 <== NOT EXECUTED 472ac: 2f02 movel %d2,%sp@- <== NOT EXECUTED 472ae: 47f9 0004 81dc lea 481dc ,%a3 <== NOT EXECUTED 472b4: 4878 0100 pea 100 <== NOT EXECUTED 472b8: 4878 0100 pea 100 <== NOT EXECUTED 472bc: 4e93 jsr %a3@ <== NOT EXECUTED if ( !once_control->init_executed ) { 472be: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 472c4: 4aaa 0004 tstl %a2@(4) <== NOT EXECUTED 472c8: 6722 beqs 472ec <== NOT EXECUTED once_control->is_initialized = TRUE; once_control->init_executed = TRUE; (*init_routine)(); } rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode); 472ca: 2f02 movel %d2,%sp@- <== NOT EXECUTED 472cc: 4878 0100 pea 100 <== NOT EXECUTED 472d0: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 472d4: 4e93 jsr %a3@ <== NOT EXECUTED 472d6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 472dc: 4280 clrl %d0 <== NOT EXECUTED 472de: 60be bras 4729e <== NOT EXECUTED } return 0; } 472e0: 4cee 0c04 fff0 moveml %fp@(-16),%d2/%a2-%a3 <== NOT EXECUTED 472e6: 4e5e unlk %fp <== NOT EXECUTED if ( !once_control->init_executed ) { once_control->is_initialized = TRUE; once_control->init_executed = TRUE; (*init_routine)(); } rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode); 472e8: 7016 moveq #22,%d0 <== NOT EXECUTED } return 0; } 472ea: 4e75 rts <== NOT EXECUTED rtems_mode saveMode; rtems_task_mode(RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &saveMode); if ( !once_control->init_executed ) { once_control->is_initialized = TRUE; once_control->init_executed = TRUE; (*init_routine)(); 472ec: 206e 000c moveal %fp@(12),%a0 <== 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; once_control->init_executed = TRUE; 472f0: 7001 moveq #1,%d0 <== NOT EXECUTED 472f2: 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; 472f6: 2480 movel %d0,%a2@ <== NOT EXECUTED once_control->init_executed = TRUE; (*init_routine)(); 472f8: 4e90 jsr %a0@ <== NOT EXECUTED } rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode); 472fa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 472fc: 4878 0100 pea 100 <== NOT EXECUTED 47300: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 47304: 4e93 jsr %a3@ <== NOT EXECUTED 47306: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4730c: 60ce bras 472dc <== NOT EXECUTED ... 000462e4 : */ int pthread_rwlock_destroy( pthread_rwlock_t *rwlock ) { 462e4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 462e8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 462ec: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock = NULL; Objects_Locations location; if ( !rwlock ) 462ee: 4a88 tstl %a0 <== NOT EXECUTED 462f0: 6740 beqs 46332 <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Get ( pthread_rwlock_t *RWLock, Objects_Locations *location ) { return (POSIX_RWLock_Control *) _Objects_Get( 462f2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 462f6: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 462f8: 4879 0005 c63a pea 5c63a <_POSIX_RWLock_Information> <== NOT EXECUTED 462fe: 4eb9 0004 9538 jsr 49538 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 46304: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4630a: 2440 moveal %d0,%a2 <== NOT EXECUTED 4630c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46310: 6620 bnes 46332 <== 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 ) { 46312: 486a 0010 pea %a2@(16) <== NOT EXECUTED 46316: 4eb9 0004 a644 jsr 4a644 <_Thread_queue_First> <== NOT EXECUTED 4631c: 588f addql #4,%sp <== NOT EXECUTED 4631e: 4a80 tstl %d0 <== NOT EXECUTED 46320: 671a beqs 4633c <== NOT EXECUTED _Thread_Enable_dispatch(); 46322: 4eb9 0004 9d38 jsr 49d38 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46328: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4632c: 4e5e unlk %fp <== 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 ) { _Thread_Enable_dispatch(); 4632e: 7010 moveq #16,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46330: 4e75 rts <== NOT EXECUTED 46332: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46336: 4e5e unlk %fp <== NOT EXECUTED _Objects_Close( &_POSIX_RWLock_Information, &the_rwlock->Object ); _POSIX_RWLock_Free( the_rwlock ); _Thread_Enable_dispatch(); return 0; 46338: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4633a: 4e75 rts <== NOT EXECUTED /* * POSIX doesn't require behavior when it is locked. */ _Objects_Close( &_POSIX_RWLock_Information, &the_rwlock->Object ); 4633c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4633e: 4879 0005 c63a pea 5c63a <_POSIX_RWLock_Information> <== NOT EXECUTED 46344: 4eb9 0004 90a8 jsr 490a8 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _POSIX_RWLock_Free ( POSIX_RWLock_Control *the_RWLock ) { _Objects_Free( &_POSIX_RWLock_Information, &the_RWLock->Object ); 4634a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4634c: 4879 0005 c63a pea 5c63a <_POSIX_RWLock_Information> <== NOT EXECUTED 46352: 4eb9 0004 93cc jsr 493cc <_Objects_Free> <== NOT EXECUTED _POSIX_RWLock_Free( the_rwlock ); _Thread_Enable_dispatch(); 46358: 4eb9 0004 9d38 jsr 49d38 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4635e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED _Objects_Close( &_POSIX_RWLock_Information, &the_rwlock->Object ); _POSIX_RWLock_Free( the_rwlock ); _Thread_Enable_dispatch(); 46362: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46368: 4e5e unlk %fp <== NOT EXECUTED _Objects_Close( &_POSIX_RWLock_Information, &the_rwlock->Object ); _POSIX_RWLock_Free( the_rwlock ); _Thread_Enable_dispatch(); 4636a: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4636c: 4e75 rts <== NOT EXECUTED ... 00046370 : int pthread_rwlock_init( pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr ) { 46370: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 46374: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46376: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46378: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED const pthread_rwlockattr_t *the_attr; /* * Error check parameters */ if ( !rwlock ) 4637c: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 46380: 6774 beqs 463f6 <== NOT EXECUTED return EINVAL; /* * If the user passed in NULL, use the default attributes */ if ( attr ) { 46382: 4a82 tstl %d2 <== NOT EXECUTED 46384: 6700 0092 beqw 46418 <== NOT EXECUTED 46388: 2042 moveal %d2,%a0 <== NOT EXECUTED } /* * Now start error checking the attributes that we are going to use */ if ( !the_attr->is_initialized ) 4638a: 4a90 tstl %a0@ <== NOT EXECUTED 4638c: 6768 beqs 463f6 <== NOT EXECUTED return EINVAL; switch ( the_attr->process_shared ) { 4638e: 4aa8 0004 tstl %a0@(4) <== NOT EXECUTED 46392: 6662 bnes 463f6 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 46394: 2039 0005 c484 movel 5c484 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4639a: 5280 addql #1,%d0 <== NOT EXECUTED 4639c: 23c0 0005 c484 movel %d0,5c484 <_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 *) 463a2: 4879 0005 c63a pea 5c63a <_POSIX_RWLock_Information> <== NOT EXECUTED 463a8: 4eb9 0004 900c jsr 4900c <_Objects_Allocate> <== NOT EXECUTED */ _Thread_Disable_dispatch(); /* prevents deletion */ the_rwlock = _POSIX_RWLock_Allocate(); if ( !the_rwlock ) { 463ae: 588f addql #4,%sp <== NOT EXECUTED 463b0: 2440 moveal %d0,%a2 <== NOT EXECUTED 463b2: 4a80 tstl %d0 <== NOT EXECUTED 463b4: 674e beqs 46404 <== NOT EXECUTED _Thread_Enable_dispatch(); return EAGAIN; } _CORE_RWLock_Initialize( &the_rwlock->RWLock, &the_attributes ); 463b6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 463ba: 486a 0010 pea %a2@(16) <== NOT EXECUTED 463be: 4eb9 0004 8884 jsr 48884 <_CORE_RWLock_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 463c4: 2079 0005 c654 moveal 5c654 <_POSIX_RWLock_Information+0x1a>,%a0 <== NOT EXECUTED 463ca: 4280 clrl %d0 <== NOT EXECUTED 463cc: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 463d0: 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; 463d4: 42aa 000c clrl %a2@(12) <== NOT EXECUTED &_POSIX_RWLock_Information, &the_rwlock->Object, 0 ); *rwlock = the_rwlock->Object.id; 463d8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 463dc: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 463e0: 4eb9 0004 9d38 jsr 49d38 <_Thread_Enable_dispatch> <== NOT EXECUTED return 0; } 463e6: 242e ffec movel %fp@(-20),%d2 <== NOT EXECUTED 463ea: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 0 ); *rwlock = the_rwlock->Object.id; _Thread_Enable_dispatch(); 463ee: 508f addql #8,%sp <== NOT EXECUTED return 0; } 463f0: 4e5e unlk %fp <== NOT EXECUTED 0 ); *rwlock = the_rwlock->Object.id; _Thread_Enable_dispatch(); 463f2: 4280 clrl %d0 <== NOT EXECUTED return 0; } 463f4: 4e75 rts <== NOT EXECUTED 463f6: 242e ffec movel %fp@(-20),%d2 <== NOT EXECUTED 463fa: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 463fe: 4e5e unlk %fp <== NOT EXECUTED ); *rwlock = the_rwlock->Object.id; _Thread_Enable_dispatch(); return 0; 46400: 7016 moveq #22,%d0 <== NOT EXECUTED } 46402: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_rwlock = _POSIX_RWLock_Allocate(); if ( !the_rwlock ) { _Thread_Enable_dispatch(); 46404: 4eb9 0004 9d38 jsr 49d38 <_Thread_Enable_dispatch> <== NOT EXECUTED *rwlock = the_rwlock->Object.id; _Thread_Enable_dispatch(); return 0; } 4640a: 242e ffec movel %fp@(-20),%d2 <== NOT EXECUTED 4640e: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 46412: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_rwlock = _POSIX_RWLock_Allocate(); if ( !the_rwlock ) { _Thread_Enable_dispatch(); 46414: 700b moveq #11,%d0 <== NOT EXECUTED *rwlock = the_rwlock->Object.id; _Thread_Enable_dispatch(); return 0; } 46416: 4e75 rts <== NOT EXECUTED * If the user passed in NULL, use the default attributes */ if ( attr ) { the_attr = attr; } else { (void) pthread_rwlockattr_init( &default_attr ); 46418: 240e movel %fp,%d2 <== NOT EXECUTED 4641a: 0682 ffff fff4 addil #-12,%d2 <== NOT EXECUTED 46420: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46422: 4eb9 0004 6f0c jsr 46f0c <== NOT EXECUTED 46428: 588f addql #4,%sp <== NOT EXECUTED 4642a: 2042 moveal %d2,%a0 <== NOT EXECUTED 4642c: 6000 ff5c braw 4638a <== NOT EXECUTED 00046430 : */ int pthread_rwlock_rdlock( pthread_rwlock_t *rwlock ) { 46430: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 46434: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46436: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock; Objects_Locations location; if ( !rwlock ) 4643a: 4a8a tstl %a2 <== NOT EXECUTED 4643c: 6758 beqs 46496 <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Get ( pthread_rwlock_t *RWLock, Objects_Locations *location ) { return (POSIX_RWLock_Control *) _Objects_Get( 4643e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46442: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 46444: 4879 0005 c63a pea 5c63a <_POSIX_RWLock_Information> <== NOT EXECUTED 4644a: 4eb9 0004 9538 jsr 49538 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 46450: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46456: 2040 moveal %d0,%a0 <== NOT EXECUTED 46458: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4645c: 6638 bnes 46496 <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_reading( 4645e: 42a7 clrl %sp@- <== NOT EXECUTED 46460: 42a7 clrl %sp@- <== NOT EXECUTED 46462: 4878 0001 pea 1 <== NOT EXECUTED 46466: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 46468: 4868 0010 pea %a0@(16) <== NOT EXECUTED 4646c: 4eb9 0004 88bc jsr 488bc <_CORE_RWLock_Obtain_for_reading> <== NOT EXECUTED TRUE, /* we are willing to wait forever */ 0, NULL ); _Thread_Enable_dispatch(); 46472: 4eb9 0004 9d38 jsr 49d38 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_RWLock_Translate_core_RWLock_return_code( 46478: 2079 0005 c542 moveal 5c542 <_Thread_Executing>,%a0 <== NOT EXECUTED 4647e: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 46482: 4eb9 0004 6640 jsr 46640 <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46488: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 0, NULL ); _Thread_Enable_dispatch(); return _POSIX_RWLock_Translate_core_RWLock_return_code( 4648c: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46492: 4e5e unlk %fp <== NOT EXECUTED 46494: 4e75 rts <== NOT EXECUTED 46496: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4649a: 4e5e unlk %fp <== NOT EXECUTED 0, NULL ); _Thread_Enable_dispatch(); return _POSIX_RWLock_Translate_core_RWLock_return_code( 4649c: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4649e: 4e75 rts 000464a0 : int pthread_rwlock_timedrdlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) { 464a0: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 464a4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 464a8: 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 ) 464ac: 4a8a tstl %a2 <== NOT EXECUTED 464ae: 6700 0088 beqw 46538 <== 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 ); 464b2: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 464b6: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 464ba: 4eb9 0004 d3e4 jsr 4d3e4 <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED 464c0: 2400 movel %d0,%d2 <== NOT EXECUTED switch (status) { 464c2: 508f addql #8,%sp <== NOT EXECUTED 464c4: 7002 moveq #2,%d0 <== NOT EXECUTED 464c6: b082 cmpl %d2,%d0 <== NOT EXECUTED 464c8: 657a bcss 46544 <== NOT EXECUTED 464ca: 4203 clrb %d3 <== NOT EXECUTED 464cc: 486e fffc pea %fp@(-4) <== NOT EXECUTED 464d0: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 464d2: 4879 0005 c63a pea 5c63a <_POSIX_RWLock_Information> <== NOT EXECUTED 464d8: 4eb9 0004 9538 jsr 49538 <_Objects_Get> <== NOT EXECUTED do_wait = TRUE; break; } the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 464de: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 464e4: 2040 moveal %d0,%a0 <== NOT EXECUTED 464e6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 464ea: 664c bnes 46538 <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_reading( 464ec: 42a7 clrl %sp@- <== NOT EXECUTED 464ee: 4280 clrl %d0 <== NOT EXECUTED 464f0: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 464f4: 1003 moveb %d3,%d0 <== NOT EXECUTED 464f6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 464f8: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 464fa: 4868 0010 pea %a0@(16) <== NOT EXECUTED 464fe: 4eb9 0004 88bc jsr 488bc <_CORE_RWLock_Obtain_for_reading> <== NOT EXECUTED do_wait, ticks, NULL ); _Thread_Enable_dispatch(); 46504: 4eb9 0004 9d38 jsr 49d38 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( !do_wait && 4650a: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 46510: 4a03 tstb %d3 <== NOT EXECUTED 46512: 663e bnes 46552 <== NOT EXECUTED 46514: 2079 0005 c542 moveal 5c542 <_Thread_Executing>,%a0 <== NOT EXECUTED 4651a: 7002 moveq #2,%d0 <== NOT EXECUTED 4651c: b0a8 0034 cmpl %a0@(52),%d0 <== NOT EXECUTED 46520: 6636 bnes 46558 <== NOT EXECUTED (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) { switch (status) { 46522: 4a82 tstl %d2 <== NOT EXECUTED 46524: 6712 beqs 46538 <== NOT EXECUTED 46526: b082 cmpl %d2,%d0 <== NOT EXECUTED 46528: 652e bcss 46558 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4652a: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 46530: 4e5e unlk %fp <== NOT EXECUTED ); _Thread_Enable_dispatch(); if ( !do_wait && (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) { switch (status) { 46532: 103c 0074 moveb #116,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46536: 4e75 rts <== NOT EXECUTED 46538: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 4653e: 4e5e unlk %fp <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: break; } } return _POSIX_RWLock_Translate_core_RWLock_return_code( 46540: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46542: 4e75 rts <== 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) { 46544: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 46548: b082 cmpl %d2,%d0 <== NOT EXECUTED 4654a: 6680 bnes 464cc <== NOT EXECUTED 4654c: 7601 moveq #1,%d3 <== NOT EXECUTED 4654e: 6000 ff7c braw 464cc <== NOT EXECUTED 46552: 2079 0005 c542 moveal 5c542 <_Thread_Executing>,%a0 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: break; } } return _POSIX_RWLock_Translate_core_RWLock_return_code( 46558: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 4655c: 4eb9 0004 6640 jsr 46640 <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED 46562: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46564: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 4656a: 4e5e unlk %fp <== NOT EXECUTED 4656c: 4e75 rts <== NOT EXECUTED ... 00046570 : int pthread_rwlock_timedwrlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) { 46570: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 46574: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 46578: 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 ) 4657c: 4a8a tstl %a2 <== NOT EXECUTED 4657e: 6700 0088 beqw 46608 <== 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 ); 46582: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 46586: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4658a: 4eb9 0004 d3e4 jsr 4d3e4 <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED 46590: 2400 movel %d0,%d2 <== NOT EXECUTED switch (status) { 46592: 508f addql #8,%sp <== NOT EXECUTED 46594: 7002 moveq #2,%d0 <== NOT EXECUTED 46596: b082 cmpl %d2,%d0 <== NOT EXECUTED 46598: 657a bcss 46614 <== NOT EXECUTED 4659a: 4203 clrb %d3 <== NOT EXECUTED 4659c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 465a0: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 465a2: 4879 0005 c63a pea 5c63a <_POSIX_RWLock_Information> <== NOT EXECUTED 465a8: 4eb9 0004 9538 jsr 49538 <_Objects_Get> <== NOT EXECUTED do_wait = TRUE; break; } the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 465ae: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 465b4: 2040 moveal %d0,%a0 <== NOT EXECUTED 465b6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 465ba: 664c bnes 46608 <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_writing( 465bc: 42a7 clrl %sp@- <== NOT EXECUTED 465be: 4280 clrl %d0 <== NOT EXECUTED 465c0: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 465c4: 1003 moveb %d3,%d0 <== NOT EXECUTED 465c6: 2f00 movel %d0,%sp@- <== NOT EXECUTED 465c8: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 465ca: 4868 0010 pea %a0@(16) <== NOT EXECUTED 465ce: 4eb9 0004 897c jsr 4897c <_CORE_RWLock_Obtain_for_writing> <== NOT EXECUTED do_wait, ticks, NULL ); _Thread_Enable_dispatch(); 465d4: 4eb9 0004 9d38 jsr 49d38 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( !do_wait && 465da: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 465e0: 4a03 tstb %d3 <== NOT EXECUTED 465e2: 663e bnes 46622 <== NOT EXECUTED 465e4: 2079 0005 c542 moveal 5c542 <_Thread_Executing>,%a0 <== NOT EXECUTED 465ea: 7002 moveq #2,%d0 <== NOT EXECUTED 465ec: b0a8 0034 cmpl %a0@(52),%d0 <== NOT EXECUTED 465f0: 6636 bnes 46628 <== NOT EXECUTED (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) { switch (status) { 465f2: 4a82 tstl %d2 <== NOT EXECUTED 465f4: 6712 beqs 46608 <== NOT EXECUTED 465f6: b082 cmpl %d2,%d0 <== NOT EXECUTED 465f8: 652e bcss 46628 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 465fa: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 46600: 4e5e unlk %fp <== NOT EXECUTED ); _Thread_Enable_dispatch(); if ( !do_wait && (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) { switch (status) { 46602: 103c 0074 moveb #116,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46606: 4e75 rts <== NOT EXECUTED 46608: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 4660e: 4e5e unlk %fp <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: break; } } return _POSIX_RWLock_Translate_core_RWLock_return_code( 46610: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46612: 4e75 rts <== 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) { 46614: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 46618: b082 cmpl %d2,%d0 <== NOT EXECUTED 4661a: 6680 bnes 4659c <== NOT EXECUTED 4661c: 7601 moveq #1,%d3 <== NOT EXECUTED 4661e: 6000 ff7c braw 4659c <== NOT EXECUTED 46622: 2079 0005 c542 moveal 5c542 <_Thread_Executing>,%a0 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: break; } } return _POSIX_RWLock_Translate_core_RWLock_return_code( 46628: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 4662c: 4eb9 0004 6640 jsr 46640 <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED 46632: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46634: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 4663a: 4e5e unlk %fp <== NOT EXECUTED 4663c: 4e75 rts <== NOT EXECUTED ... 00046658 : */ int pthread_rwlock_tryrdlock( pthread_rwlock_t *rwlock ) { 46658: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4665c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4665e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock; Objects_Locations location; if ( !rwlock ) 46662: 4a8a tstl %a2 <== NOT EXECUTED 46664: 6756 beqs 466bc <== NOT EXECUTED 46666: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4666a: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 4666c: 4879 0005 c63a pea 5c63a <_POSIX_RWLock_Information> <== NOT EXECUTED 46672: 4eb9 0004 9538 jsr 49538 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 46678: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4667e: 2040 moveal %d0,%a0 <== NOT EXECUTED 46680: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46684: 6636 bnes 466bc <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_reading( 46686: 42a7 clrl %sp@- <== NOT EXECUTED 46688: 42a7 clrl %sp@- <== NOT EXECUTED 4668a: 42a7 clrl %sp@- <== NOT EXECUTED 4668c: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 4668e: 4868 0010 pea %a0@(16) <== NOT EXECUTED 46692: 4eb9 0004 88bc jsr 488bc <_CORE_RWLock_Obtain_for_reading> <== NOT EXECUTED 0, NULL ); _Thread_Enable_dispatch(); 46698: 4eb9 0004 9d38 jsr 49d38 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_RWLock_Translate_core_RWLock_return_code( 4669e: 2079 0005 c542 moveal 5c542 <_Thread_Executing>,%a0 <== NOT EXECUTED 466a4: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 466a8: 4eb9 0004 6640 jsr 46640 <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 466ae: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED NULL ); _Thread_Enable_dispatch(); return _POSIX_RWLock_Translate_core_RWLock_return_code( 466b2: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 466b8: 4e5e unlk %fp <== NOT EXECUTED 466ba: 4e75 rts <== NOT EXECUTED 466bc: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 466c0: 4e5e unlk %fp <== NOT EXECUTED NULL ); _Thread_Enable_dispatch(); return _POSIX_RWLock_Translate_core_RWLock_return_code( 466c2: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 466c4: 4e75 rts <== NOT EXECUTED ... 000466c8 : */ int pthread_rwlock_trywrlock( pthread_rwlock_t *rwlock ) { 466c8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 466cc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 466ce: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock; Objects_Locations location; if ( !rwlock ) 466d2: 4a8a tstl %a2 <== NOT EXECUTED 466d4: 6756 beqs 4672c <== NOT EXECUTED 466d6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 466da: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 466dc: 4879 0005 c63a pea 5c63a <_POSIX_RWLock_Information> <== NOT EXECUTED 466e2: 4eb9 0004 9538 jsr 49538 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 466e8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 466ee: 2040 moveal %d0,%a0 <== NOT EXECUTED 466f0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 466f4: 6636 bnes 4672c <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_writing( 466f6: 42a7 clrl %sp@- <== NOT EXECUTED 466f8: 42a7 clrl %sp@- <== NOT EXECUTED 466fa: 42a7 clrl %sp@- <== NOT EXECUTED 466fc: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 466fe: 4868 0010 pea %a0@(16) <== NOT EXECUTED 46702: 4eb9 0004 897c jsr 4897c <_CORE_RWLock_Obtain_for_writing> <== NOT EXECUTED FALSE, /* we are not willing to wait */ 0, NULL ); _Thread_Enable_dispatch(); 46708: 4eb9 0004 9d38 jsr 49d38 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_RWLock_Translate_core_RWLock_return_code( 4670e: 2079 0005 c542 moveal 5c542 <_Thread_Executing>,%a0 <== NOT EXECUTED 46714: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 46718: 4eb9 0004 6640 jsr 46640 <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 4671e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 0, NULL ); _Thread_Enable_dispatch(); return _POSIX_RWLock_Translate_core_RWLock_return_code( 46722: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46728: 4e5e unlk %fp <== NOT EXECUTED 4672a: 4e75 rts <== NOT EXECUTED 4672c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46730: 4e5e unlk %fp <== NOT EXECUTED 0, NULL ); _Thread_Enable_dispatch(); return _POSIX_RWLock_Translate_core_RWLock_return_code( 46732: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46734: 4e75 rts <== NOT EXECUTED ... 00046738 : */ int pthread_rwlock_unlock( pthread_rwlock_t *rwlock ) { 46738: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4673c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 46740: 2f02 movel %d2,%sp@- <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock; Objects_Locations location; CORE_RWLock_Status status; if ( !rwlock ) 46742: 4a88 tstl %a0 <== NOT EXECUTED 46744: 6744 beqs 4678a <== NOT EXECUTED 46746: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4674a: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4674c: 4879 0005 c63a pea 5c63a <_POSIX_RWLock_Information> <== NOT EXECUTED 46752: 4eb9 0004 9538 jsr 49538 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 46758: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4675e: 2040 moveal %d0,%a0 <== NOT EXECUTED 46760: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46764: 6624 bnes 4678a <== NOT EXECUTED case OBJECTS_LOCAL: status = _CORE_RWLock_Release( &the_rwlock->RWLock ); 46766: 4868 0010 pea %a0@(16) <== NOT EXECUTED 4676a: 4eb9 0004 8a0c jsr 48a0c <_CORE_RWLock_Release> <== NOT EXECUTED 46770: 2400 movel %d0,%d2 <== NOT EXECUTED _Thread_Enable_dispatch(); 46772: 4eb9 0004 9d38 jsr 49d38 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_RWLock_Translate_core_RWLock_return_code( status ); 46778: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4677a: 4eb9 0004 6640 jsr 46640 <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46780: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: status = _CORE_RWLock_Release( &the_rwlock->RWLock ); _Thread_Enable_dispatch(); return _POSIX_RWLock_Translate_core_RWLock_return_code( status ); 46784: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46786: 4e5e unlk %fp <== NOT EXECUTED 46788: 4e75 rts <== NOT EXECUTED 4678a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4678e: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: status = _CORE_RWLock_Release( &the_rwlock->RWLock ); _Thread_Enable_dispatch(); return _POSIX_RWLock_Translate_core_RWLock_return_code( status ); 46790: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46792: 4e75 rts 00046794 : */ int pthread_rwlock_wrlock( pthread_rwlock_t *rwlock ) { 46794: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 46798: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4679a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED POSIX_RWLock_Control *the_rwlock; Objects_Locations location; if ( !rwlock ) 4679e: 4a8a tstl %a2 <== NOT EXECUTED 467a0: 6758 beqs 467fa <== NOT EXECUTED 467a2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 467a6: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 467a8: 4879 0005 c63a pea 5c63a <_POSIX_RWLock_Information> <== NOT EXECUTED 467ae: 4eb9 0004 9538 jsr 49538 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_rwlock = _POSIX_RWLock_Get( rwlock, &location ); switch ( location ) { 467b4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 467ba: 2040 moveal %d0,%a0 <== NOT EXECUTED 467bc: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 467c0: 6638 bnes 467fa <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_RWLock_Obtain_for_writing( 467c2: 42a7 clrl %sp@- <== NOT EXECUTED 467c4: 42a7 clrl %sp@- <== NOT EXECUTED 467c6: 4878 0001 pea 1 <== NOT EXECUTED 467ca: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 467cc: 4868 0010 pea %a0@(16) <== NOT EXECUTED 467d0: 4eb9 0004 897c jsr 4897c <_CORE_RWLock_Obtain_for_writing> <== NOT EXECUTED TRUE, /* do not timeout -- wait forever */ 0, NULL ); _Thread_Enable_dispatch(); 467d6: 4eb9 0004 9d38 jsr 49d38 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_RWLock_Translate_core_RWLock_return_code( 467dc: 2079 0005 c542 moveal 5c542 <_Thread_Executing>,%a0 <== NOT EXECUTED 467e2: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 467e6: 4eb9 0004 6640 jsr 46640 <_POSIX_RWLock_Translate_core_RWLock_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 467ec: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 0, NULL ); _Thread_Enable_dispatch(); return _POSIX_RWLock_Translate_core_RWLock_return_code( 467f0: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 467f6: 4e5e unlk %fp <== NOT EXECUTED 467f8: 4e75 rts <== NOT EXECUTED 467fa: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 467fe: 4e5e unlk %fp <== NOT EXECUTED 0, NULL ); _Thread_Enable_dispatch(); return _POSIX_RWLock_Translate_core_RWLock_return_code( 46800: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 46802: 4e75 rts 00046ec8 : */ int pthread_rwlockattr_destroy( pthread_rwlockattr_t *attr ) { 46ec8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46ecc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr || attr->is_initialized == FALSE ) 46ed0: 4a88 tstl %a0 <== NOT EXECUTED 46ed2: 670c beqs 46ee0 <== NOT EXECUTED 46ed4: 4a90 tstl %a0@ <== NOT EXECUTED 46ed6: 6708 beqs 46ee0 <== NOT EXECUTED return EINVAL; attr->is_initialized = FALSE; return 0; } 46ed8: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !attr || attr->is_initialized == FALSE ) return EINVAL; attr->is_initialized = FALSE; 46eda: 4280 clrl %d0 <== NOT EXECUTED 46edc: 4290 clrl %a0@ <== NOT EXECUTED return 0; } 46ede: 4e75 rts <== NOT EXECUTED 46ee0: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr || attr->is_initialized == FALSE ) return EINVAL; attr->is_initialized = FALSE; return 0; 46ee2: 7016 moveq #22,%d0 <== NOT EXECUTED } 46ee4: 4e75 rts <== NOT EXECUTED ... 00046ee8 : int pthread_rwlockattr_getpshared( const pthread_rwlockattr_t *attr, int *pshared ) { 46ee8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46eec: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr ) 46ef0: 4a88 tstl %a0 <== NOT EXECUTED 46ef2: 6712 beqs 46f06 <== NOT EXECUTED return EINVAL; if ( !attr->is_initialized ) 46ef4: 4a90 tstl %a0@ <== NOT EXECUTED 46ef6: 670e beqs 46f06 <== NOT EXECUTED return EINVAL; *pshared = attr->process_shared; 46ef8: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED return 0; } 46efc: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; if ( !attr->is_initialized ) return EINVAL; *pshared = attr->process_shared; 46efe: 22a8 0004 movel %a0@(4),%a1@ <== NOT EXECUTED 46f02: 4280 clrl %d0 <== NOT EXECUTED return 0; } 46f04: 4e75 rts <== NOT EXECUTED 46f06: 4e5e unlk %fp <== NOT EXECUTED if ( !attr->is_initialized ) return EINVAL; *pshared = attr->process_shared; return 0; 46f08: 7016 moveq #22,%d0 <== NOT EXECUTED } 46f0a: 4e75 rts 00046f0c : */ int pthread_rwlockattr_init( pthread_rwlockattr_t *attr ) { 46f0c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46f10: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr ) 46f14: 4a88 tstl %a0 <== NOT EXECUTED 46f16: 670e beqs 46f26 <== NOT EXECUTED return EINVAL; attr->is_initialized = TRUE; 46f18: 7201 moveq #1,%d1 <== NOT EXECUTED attr->process_shared = PTHREAD_PROCESS_PRIVATE; return 0; } 46f1a: 4e5e unlk %fp <== NOT EXECUTED { if ( !attr ) return EINVAL; attr->is_initialized = TRUE; attr->process_shared = PTHREAD_PROCESS_PRIVATE; 46f1c: 4280 clrl %d0 <== NOT EXECUTED 46f1e: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED ) { if ( !attr ) return EINVAL; attr->is_initialized = TRUE; 46f22: 2081 movel %d1,%a0@ <== NOT EXECUTED attr->process_shared = PTHREAD_PROCESS_PRIVATE; return 0; } 46f24: 4e75 rts <== NOT EXECUTED 46f26: 4e5e unlk %fp <== NOT EXECUTED int pthread_rwlockattr_init( pthread_rwlockattr_t *attr ) { if ( !attr ) 46f28: 7016 moveq #22,%d0 <== NOT EXECUTED return EINVAL; attr->is_initialized = TRUE; attr->process_shared = PTHREAD_PROCESS_PRIVATE; return 0; } 46f2a: 4e75 rts 00046f2c : int pthread_rwlockattr_setpshared( pthread_rwlockattr_t *attr, int pshared ) { 46f2c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46f30: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !attr ) 46f34: 4a88 tstl %a0 <== NOT EXECUTED 46f36: 670c beqs 46f44 <== NOT EXECUTED return EINVAL; if ( !attr->is_initialized ) 46f38: 4a90 tstl %a0@ <== NOT EXECUTED 46f3a: 6708 beqs 46f44 <== NOT EXECUTED return EINVAL; switch ( pshared ) { 46f3c: 7001 moveq #1,%d0 <== NOT EXECUTED 46f3e: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 46f42: 6406 bccs 46f4a <== NOT EXECUTED return 0; default: return EINVAL; } } 46f44: 4e5e unlk %fp <== NOT EXECUTED switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; return 0; 46f46: 7016 moveq #22,%d0 <== NOT EXECUTED default: return EINVAL; } } 46f48: 4e75 rts <== NOT EXECUTED return EINVAL; switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 46f4a: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 46f4e: 4e5e unlk %fp <== NOT EXECUTED return EINVAL; switch ( pshared ) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: attr->process_shared = pshared; 46f50: 2140 0004 movel %d0,%a0@(4) <== NOT EXECUTED 46f54: 4280 clrl %d0 <== NOT EXECUTED return 0; default: return EINVAL; } } 46f56: 4e75 rts 000563b0 : #include #include pthread_t pthread_self( void ) { 563b0: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 563b6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Thread_Executing->Object.id; } 563ba: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED 563be: 4e5e unlk %fp <== NOT EXECUTED 563c0: 4e75 rts <== NOT EXECUTED ... 00045c3c : * 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() ) 45c3c: 2039 0005 b836 movel 5b836 <_ISR_Nest_level>,%d0 <== NOT EXECUTED int pthread_setcancelstate( int state, int *oldstate ) { 45c42: 4e56 0000 linkw %fp,#0 <== 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() ) 45c46: 4a80 tstl %d0 <== NOT EXECUTED 45c48: 6654 bnes 45c9e <== NOT EXECUTED return EPROTO; if ( !oldstate ) 45c4a: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 45c4e: 6708 beqs 45c58 <== NOT EXECUTED return EINVAL; if ( state != PTHREAD_CANCEL_ENABLE && state != PTHREAD_CANCEL_DISABLE ) 45c50: 7001 moveq #1,%d0 <== NOT EXECUTED 45c52: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 45c56: 6406 bccs 45c5e <== NOT EXECUTED _Thread_Enable_dispatch(); if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); return 0; } 45c58: 4e5e unlk %fp <== NOT EXECUTED if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 45c5a: 7016 moveq #22,%d0 <== NOT EXECUTED if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); return 0; } 45c5c: 4e75 rts <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 45c5e: 2039 0005 b798 movel 5b798 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED return EINVAL; if ( state != PTHREAD_CANCEL_ENABLE && state != PTHREAD_CANCEL_DISABLE ) return EINVAL; thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 45c64: 2079 0005 b856 moveal 5b856 <_Thread_Executing>,%a0 <== NOT EXECUTED 45c6a: 5280 addql #1,%d0 <== NOT EXECUTED 45c6c: 23c0 0005 b798 movel %d0,5b798 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 45c72: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED _Thread_Disable_dispatch(); *oldstate = thread_support->cancelability_state; 45c76: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 45c7a: 22a8 00cc movel %a0@(204),%a1@ <== NOT EXECUTED thread_support->cancelability_state = state; 45c7e: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 45c82: 2140 00cc movel %d0,%a0@(204) <== NOT EXECUTED if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && 45c86: 660a bnes 45c92 <== NOT EXECUTED 45c88: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 45c8c: b0a8 00d0 cmpl %a0@(208),%d0 <== NOT EXECUTED 45c90: 6712 beqs 45ca4 <== NOT EXECUTED thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 45c92: 4eb9 0004 8890 jsr 48890 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); return 0; } 45c98: 4e5e unlk %fp <== NOT EXECUTED if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 45c9a: 4280 clrl %d0 <== NOT EXECUTED if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); return 0; } 45c9c: 4e75 rts <== NOT EXECUTED 45c9e: 4e5e unlk %fp <== 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() ) 45ca0: 7047 moveq #71,%d0 <== NOT EXECUTED _Thread_Enable_dispatch(); if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); return 0; } 45ca2: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); *oldstate = thread_support->cancelability_state; thread_support->cancelability_state = state; if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && 45ca4: 4aa8 00d4 tstl %a0@(212) <== NOT EXECUTED 45ca8: 67e8 beqs 45c92 <== NOT EXECUTED thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 45caa: 4eb9 0004 8890 jsr 48890 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); 45cb0: 4878 ffff pea ffffffff <== NOT EXECUTED 45cb4: 2f39 0005 b856 movel 5b856 <_Thread_Executing>,%sp@- <== NOT EXECUTED 45cba: 4eb9 0004 5774 jsr 45774 <_POSIX_Thread_Exit> <== NOT EXECUTED 45cc0: 508f addql #8,%sp <== NOT EXECUTED return 0; } 45cc2: 4e5e unlk %fp <== NOT EXECUTED thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); 45cc4: 4280 clrl %d0 <== NOT EXECUTED return 0; } 45cc6: 4e75 rts 00045cc8 : * 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() ) 45cc8: 2039 0005 b836 movel 5b836 <_ISR_Nest_level>,%d0 <== NOT EXECUTED int pthread_setcanceltype( int type, int *oldtype ) { 45cce: 4e56 0000 linkw %fp,#0 <== 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() ) 45cd2: 4a80 tstl %d0 <== NOT EXECUTED 45cd4: 6656 bnes 45d2c <== NOT EXECUTED return EPROTO; if ( !oldtype ) 45cd6: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 45cda: 6708 beqs 45ce4 <== NOT EXECUTED return EINVAL; if ( type != PTHREAD_CANCEL_DEFERRED && type != PTHREAD_CANCEL_ASYNCHRONOUS ) 45cdc: 7001 moveq #1,%d0 <== NOT EXECUTED 45cde: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 45ce2: 6406 bccs 45cea <== NOT EXECUTED _Thread_Enable_dispatch(); if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); return 0; } 45ce4: 4e5e unlk %fp <== NOT EXECUTED if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 45ce6: 7016 moveq #22,%d0 <== NOT EXECUTED if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); return 0; } 45ce8: 4e75 rts <== NOT EXECUTED 45cea: 2039 0005 b798 movel 5b798 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED return EINVAL; if ( type != PTHREAD_CANCEL_DEFERRED && type != PTHREAD_CANCEL_ASYNCHRONOUS ) return EINVAL; thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 45cf0: 2079 0005 b856 moveal 5b856 <_Thread_Executing>,%a0 <== NOT EXECUTED 45cf6: 5280 addql #1,%d0 <== NOT EXECUTED 45cf8: 23c0 0005 b798 movel %d0,5b798 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 45cfe: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED _Thread_Disable_dispatch(); *oldtype = thread_support->cancelability_type; 45d02: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 45d06: 22a8 00d0 movel %a0@(208),%a1@ <== NOT EXECUTED thread_support->cancelability_type = type; 45d0a: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 45d0e: 2140 00d0 movel %d0,%a0@(208) <== NOT EXECUTED if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && 45d12: 4aa8 00cc tstl %a0@(204) <== NOT EXECUTED 45d16: 6608 bnes 45d20 <== NOT EXECUTED 45d18: 7001 moveq #1,%d0 <== NOT EXECUTED 45d1a: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 45d1e: 6712 beqs 45d32 <== NOT EXECUTED thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 45d20: 4eb9 0004 8890 jsr 48890 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); return 0; } 45d26: 4e5e unlk %fp <== NOT EXECUTED if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 45d28: 4280 clrl %d0 <== NOT EXECUTED if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); return 0; } 45d2a: 4e75 rts <== NOT EXECUTED 45d2c: 4e5e unlk %fp <== 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() ) 45d2e: 7047 moveq #71,%d0 <== NOT EXECUTED _Thread_Enable_dispatch(); if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); return 0; } 45d30: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); *oldtype = thread_support->cancelability_type; thread_support->cancelability_type = type; if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && 45d32: 4aa8 00d4 tstl %a0@(212) <== NOT EXECUTED 45d36: 67e8 beqs 45d20 <== NOT EXECUTED thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 45d38: 4eb9 0004 8890 jsr 48890 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); 45d3e: 4878 ffff pea ffffffff <== NOT EXECUTED 45d42: 2f39 0005 b856 movel 5b856 <_Thread_Executing>,%sp@- <== NOT EXECUTED 45d48: 4eb9 0004 5774 jsr 45774 <_POSIX_Thread_Exit> <== NOT EXECUTED 45d4e: 508f addql #8,%sp <== NOT EXECUTED return 0; } 45d50: 4e5e unlk %fp <== NOT EXECUTED thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); 45d52: 4280 clrl %d0 <== NOT EXECUTED return 0; } 45d54: 4e75 rts <== NOT EXECUTED ... 000484a0 : int pthread_setschedparam( pthread_t thread, int policy, struct sched_param *param ) { 484a0: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 484a4: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED 484a8: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 484ac: 286e 0010 moveal %fp@(16),%a4 <== NOT EXECUTED /* * Check all the parameters */ if ( !param ) 484b0: 4a8c tstl %a4 <== NOT EXECUTED 484b2: 6726 beqs 484da <== NOT EXECUTED return EINVAL; if ( !_POSIX_Priority_Is_valid( param->sched_priority ) ) 484b4: 2014 movel %a4@,%d0 <== NOT EXECUTED 484b6: 5380 subql #1,%d0 <== NOT EXECUTED 484b8: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 484be: 621a bhis 484da <== NOT EXECUTED return EINVAL; budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; budget_callout = NULL; switch ( policy ) { 484c0: 7001 moveq #1,%d0 <== NOT EXECUTED 484c2: b083 cmpl %d3,%d0 <== NOT EXECUTED 484c4: 6720 beqs 484e6 <== NOT EXECUTED 484c6: 6c00 011e bgew 485e6 <== NOT EXECUTED 484ca: 7002 moveq #2,%d0 <== NOT EXECUTED 484cc: b083 cmpl %d3,%d0 <== NOT EXECUTED 484ce: 6700 010e beqw 485de <== NOT EXECUTED 484d2: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 484d6: b083 cmpl %d3,%d0 <== NOT EXECUTED 484d8: 673e beqs 48518 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 484da: 4cee 1c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a4 <== NOT EXECUTED 484e0: 4e5e unlk %fp <== NOT EXECUTED _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread ); break; } _Thread_Enable_dispatch(); return 0; 484e2: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 484e4: 4e75 rts <== NOT EXECUTED return EINVAL; budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; budget_callout = NULL; switch ( policy ) { 484e6: 4284 clrl %d4 <== NOT EXECUTED 484e8: 4282 clrl %d2 <== NOT EXECUTED 484ea: 486e fffc pea %fp@(-4) <== NOT EXECUTED 484ee: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 484f2: 4879 0005 f65a pea 5f65a <_POSIX_Threads_Information> <== NOT EXECUTED 484f8: 4eb9 0004 a924 jsr 4a924 <_Objects_Get> <== NOT EXECUTED /* * Actually change the scheduling policy and parameters */ the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 484fe: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48504: 2640 moveal %d0,%a3 <== NOT EXECUTED 48506: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4850a: 675e beqs 4856a <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 4850c: 4cee 1c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a4 <== NOT EXECUTED 48512: 4e5e unlk %fp <== NOT EXECUTED /* * Actually change the scheduling policy and parameters */ the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 48514: 7003 moveq #3,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 48516: 4e75 rts <== 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 ) < 48518: 45f9 0004 c108 lea 4c108 <_Timespec_To_ticks>,%a2 <== NOT EXECUTED 4851e: 486c 0008 pea %a4@(8) <== NOT EXECUTED 48522: 4e92 jsr %a2@ <== NOT EXECUTED 48524: 2400 movel %d0,%d2 <== NOT EXECUTED 48526: 486c 0010 pea %a4@(16) <== NOT EXECUTED 4852a: 4e92 jsr %a2@ <== NOT EXECUTED 4852c: 508f addql #8,%sp <== NOT EXECUTED 4852e: b082 cmpl %d2,%d0 <== NOT EXECUTED 48530: 62a8 bhis 484da <== NOT EXECUTED _Timespec_To_ticks( ¶m->ss_initial_budget ) ) return EINVAL; if ( !_POSIX_Priority_Is_valid( param->ss_low_priority ) ) 48532: 202c 0004 movel %a4@(4),%d0 <== NOT EXECUTED 48536: 5380 subql #1,%d0 <== NOT EXECUTED 48538: 0c80 0000 00fd cmpil #253,%d0 <== NOT EXECUTED 4853e: 629a bhis 484da <== NOT EXECUTED 48540: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48544: 7803 moveq #3,%d4 <== NOT EXECUTED 48546: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4854a: 243c 0004 83b8 movel #295864,%d2 <== NOT EXECUTED 48550: 4879 0005 f65a pea 5f65a <_POSIX_Threads_Information> <== NOT EXECUTED 48556: 4eb9 0004 a924 jsr 4a924 <_Objects_Get> <== NOT EXECUTED /* * Actually change the scheduling policy and parameters */ the_thread = _POSIX_Threads_Get( thread, &location ); switch ( location ) { 4855c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48562: 2640 moveal %d0,%a3 <== NOT EXECUTED 48564: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48568: 66a2 bnes 4850c <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; 4856a: 246b 0110 moveal %a3@(272),%a2 <== NOT EXECUTED if ( api->schedpolicy == SCHED_SPORADIC ) 4856e: 7003 moveq #3,%d0 <== NOT EXECUTED 48570: b0aa 007c cmpl %a2@(124),%d0 <== NOT EXECUTED 48574: 6700 00b0 beqw 48626 <== NOT EXECUTED (void) _Watchdog_Remove( &api->Sporadic_timer ); api->schedpolicy = policy; 48578: 2543 007c movel %d3,%a2@(124) <== NOT EXECUTED api->schedparam = *param; 4857c: 224c moveal %a4,%a1 <== NOT EXECUTED 4857e: 41ea 0080 lea %a2@(128),%a0 <== NOT EXECUTED 48582: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 48584: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 48586: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 48588: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 4858a: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 4858c: 2091 movel %a1@,%a0@ <== NOT EXECUTED the_thread->budget_algorithm = budget_algorithm; 4858e: 2744 007c movel %d4,%a3@(124) <== NOT EXECUTED the_thread->budget_callout = budget_callout; 48592: 2742 0080 movel %d2,%a3@(128) <== NOT EXECUTED switch ( api->schedpolicy ) { 48596: 4a83 tstl %d3 <== NOT EXECUTED 48598: 6d32 blts 485cc <== NOT EXECUTED 4859a: 7002 moveq #2,%d0 <== NOT EXECUTED 4859c: b083 cmpl %d3,%d0 <== NOT EXECUTED 4859e: 6d54 blts 485f4 <== NOT EXECUTED case SCHED_OTHER: case SCHED_FIFO: case SCHED_RR: the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice; 485a0: 41f9 0005 f418 lea 5f418 <_Thread_Ticks_per_timeslice>,%a0 <== NOT EXECUTED 485a6: 203c 0000 00ff movel #255,%d0 <== NOT EXECUTED 485ac: 90aa 0080 subl %a2@(128),%d0 <== NOT EXECUTED 485b0: 2750 0078 movel %a0@,%a3@(120) <== NOT EXECUTED the_thread->real_priority = 485b4: 2740 0018 movel %d0,%a3@(24) <== NOT EXECUTED _POSIX_Priority_To_core( api->schedparam.sched_priority ); _Thread_Change_priority( 485b8: 4878 0001 pea 1 <== NOT EXECUTED 485bc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 485be: 2f0b movel %a3,%sp@- <== NOT EXECUTED 485c0: 4eb9 0004 abfc jsr 4abfc <_Thread_Change_priority> <== NOT EXECUTED 485c6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED _Watchdog_Remove( &api->Sporadic_timer ); _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread ); break; } _Thread_Enable_dispatch(); 485cc: 4eb9 0004 b124 jsr 4b124 <_Thread_Enable_dispatch> <== NOT EXECUTED 485d2: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return ESRCH; } 485d4: 4cee 1c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a4 <== NOT EXECUTED 485da: 4e5e unlk %fp <== NOT EXECUTED 485dc: 4e75 rts <== NOT EXECUTED return EINVAL; budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; budget_callout = NULL; switch ( policy ) { 485de: 7802 moveq #2,%d4 <== NOT EXECUTED 485e0: 4282 clrl %d2 <== NOT EXECUTED 485e2: 6000 ff06 braw 484ea <== NOT EXECUTED 485e6: 4a83 tstl %d3 <== NOT EXECUTED 485e8: 6600 fef0 bnew 484da <== NOT EXECUTED 485ec: 7801 moveq #1,%d4 <== NOT EXECUTED 485ee: 4282 clrl %d2 <== NOT EXECUTED 485f0: 6000 fef8 braw 484ea <== NOT EXECUTED api->schedpolicy = policy; api->schedparam = *param; the_thread->budget_algorithm = budget_algorithm; the_thread->budget_callout = budget_callout; switch ( api->schedpolicy ) { 485f4: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 485f8: b083 cmpl %d3,%d0 <== NOT EXECUTED 485fa: 66d0 bnes 485cc <== NOT EXECUTED TRUE ); break; case SCHED_SPORADIC: api->ss_high_priority = api->schedparam.sched_priority; 485fc: 256a 0080 0098 movel %a2@(128),%a2@(152) <== NOT EXECUTED _Watchdog_Remove( &api->Sporadic_timer ); 48602: 486a 009c pea %a2@(156) <== NOT EXECUTED 48606: 4eb9 0004 c614 jsr 4c614 <_Watchdog_Remove> <== NOT EXECUTED _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread ); 4860c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4860e: 42a7 clrl %sp@- <== NOT EXECUTED 48610: 4eb9 0004 83fc jsr 483fc <_POSIX_Threads_Sporadic_budget_TSR> <== NOT EXECUTED 48616: dffc 0000 000c addal #12,%sp <== NOT EXECUTED break; } _Thread_Enable_dispatch(); 4861c: 4eb9 0004 b124 jsr 4b124 <_Thread_Enable_dispatch> <== NOT EXECUTED 48622: 4280 clrl %d0 <== NOT EXECUTED 48624: 60ae bras 485d4 <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_POSIX ]; if ( api->schedpolicy == SCHED_SPORADIC ) (void) _Watchdog_Remove( &api->Sporadic_timer ); 48626: 486a 009c pea %a2@(156) <== NOT EXECUTED 4862a: 4eb9 0004 c614 jsr 4c614 <_Watchdog_Remove> <== NOT EXECUTED 48630: 588f addql #4,%sp <== NOT EXECUTED 48632: 6000 ff44 braw 48578 <== NOT EXECUTED ... 00045b70 : int pthread_setspecific( pthread_key_t key, const void *value ) { 45b70: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45b74: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b76: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45b7a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45b7e: 4879 0005 c792 pea 5c792 <_POSIX_Keys_Information> <== NOT EXECUTED 45b84: 4eb9 0004 86bc jsr 486bc <_Objects_Get> <== NOT EXECUTED uint32_t api; uint32_t index; Objects_Locations location; the_key = _POSIX_Keys_Get( key, &location ); switch ( location ) { 45b8a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45b90: 2240 moveal %d0,%a1 <== NOT EXECUTED 45b92: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45b96: 6638 bnes 45bd0 <== NOT EXECUTED case OBJECTS_LOCAL: api = _Objects_Get_API( _Thread_Executing->Object.id ); 45b98: 2079 0005 c4b6 moveal 5c4b6 <_Thread_Executing>,%a0 <== NOT EXECUTED 45b9e: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED index = _Objects_Get_index( _Thread_Executing->Object.id ); the_key->Values[ api ][ index ] = (void *) value; 45ba2: 7418 moveq #24,%d2 <== NOT EXECUTED 45ba4: 2001 movel %d1,%d0 <== NOT EXECUTED 45ba6: e4a8 lsrl %d2,%d0 <== NOT EXECUTED 45ba8: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 45bac: c082 andl %d2,%d0 <== NOT EXECUTED 45bae: 2071 0c16 moveal %a1@(00000016,%d0:l:4),%a0 <== NOT EXECUTED 45bb2: 43ee 000c lea %fp@(12),%a1 <== NOT EXECUTED 45bb6: 0281 0000 ffff andil #65535,%d1 <== NOT EXECUTED 45bbc: 2191 1c00 movel %a1@,%a0@(00000000,%d1:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); 45bc0: 4eb9 0004 8ebc jsr 48ebc <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45bc6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45bca: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: api = _Objects_Get_API( _Thread_Executing->Object.id ); index = _Objects_Get_index( _Thread_Executing->Object.id ); the_key->Values[ api ][ index ] = (void *) value; _Thread_Enable_dispatch(); 45bcc: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45bce: 4e75 rts <== NOT EXECUTED 45bd0: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45bd4: 4e5e unlk %fp <== NOT EXECUTED uint32_t api; uint32_t index; Objects_Locations location; the_key = _POSIX_Keys_Get( key, &location ); switch ( location ) { 45bd6: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45bd8: 4e75 rts <== NOT EXECUTED ... 0004c998 : int pthread_sigmask( int how, const sigset_t *set, sigset_t *oset ) { 4c998: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c99c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4c99e: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4c9a2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4c9a4: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 4c9a8: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED POSIX_API_Control *api; if ( !set && !oset ) 4c9ac: 4a89 tstl %a1 <== NOT EXECUTED 4c9ae: 6700 00ba beqw 4ca6a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 4c9b2: 2679 0005 c4d6 moveal 5c4d6 <_Thread_Executing>,%a3 <== NOT EXECUTED 4c9b8: 206b 0110 moveal %a3@(272),%a0 <== NOT EXECUTED if ( oset ) 4c9bc: 4a8a tstl %a2 <== NOT EXECUTED 4c9be: 6704 beqs 4c9c4 <== NOT EXECUTED *oset = api->signals_blocked; 4c9c0: 24a8 00c4 movel %a0@(196),%a2@ <== NOT EXECUTED if ( !set ) return 0; switch ( how ) { 4c9c4: 7201 moveq #1,%d1 <== NOT EXECUTED 4c9c6: b280 cmpl %d0,%d1 <== NOT EXECUTED 4c9c8: 6700 0084 beqw 4ca4e <== NOT EXECUTED 4c9cc: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 4c9d0: b280 cmpl %d0,%d1 <== NOT EXECUTED 4c9d2: 6742 beqs 4ca16 <== NOT EXECUTED 4c9d4: 4a80 tstl %d0 <== NOT EXECUTED 4c9d6: 665c bnes 4ca34 <== NOT EXECUTED break; case SIG_UNBLOCK: api->signals_blocked &= ~*set; break; case SIG_SETMASK: api->signals_blocked = *set; 4c9d8: 2151 00c4 movel %a1@,%a0@(196) <== NOT EXECUTED /* XXX are there critical section problems here? */ /* XXX evaluate the new set */ if ( ~api->signals_blocked & 4c9dc: 2039 0005 caee movel 5caee <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4c9e2: 2228 00c4 movel %a0@(196),%d1 <== NOT EXECUTED 4c9e6: 80a8 00c8 orl %a0@(200),%d0 <== NOT EXECUTED 4c9ea: 4681 notl %d1 <== NOT EXECUTED 4c9ec: c081 andl %d1,%d0 <== NOT EXECUTED 4c9ee: 660c bnes 4c9fc <== NOT EXECUTED _Thread_Executing->do_post_task_switch_extension = true; _Thread_Dispatch(); } return 0; } 4c9f0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4c9f4: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4c9f8: 4e5e unlk %fp <== NOT EXECUTED 4c9fa: 4e75 rts <== NOT EXECUTED /* XXX evaluate the new set */ if ( ~api->signals_blocked & (api->signals_pending | _POSIX_signals_Pending) ) { _Thread_Executing->do_post_task_switch_extension = true; 4c9fc: 7201 moveq #1,%d1 <== NOT EXECUTED 4c9fe: 1741 0075 moveb %d1,%a3@(117) <== NOT EXECUTED _Thread_Dispatch(); 4ca02: 4eb9 0004 8e98 jsr 48e98 <_Thread_Dispatch> <== NOT EXECUTED } return 0; } 4ca08: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4ca0c: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4ca10: 4e5e unlk %fp <== NOT EXECUTED /* XXX evaluate the new set */ if ( ~api->signals_blocked & (api->signals_pending | _POSIX_signals_Pending) ) { _Thread_Executing->do_post_task_switch_extension = true; _Thread_Dispatch(); 4ca12: 4280 clrl %d0 <== NOT EXECUTED } return 0; } 4ca14: 4e75 rts <== NOT EXECUTED switch ( how ) { case SIG_BLOCK: api->signals_blocked |= *set; break; case SIG_UNBLOCK: api->signals_blocked &= ~*set; 4ca16: 2011 movel %a1@,%d0 <== NOT EXECUTED 4ca18: 4680 notl %d0 <== NOT EXECUTED 4ca1a: c1a8 00c4 andl %d0,%a0@(196) <== NOT EXECUTED /* XXX are there critical section problems here? */ /* XXX evaluate the new set */ if ( ~api->signals_blocked & 4ca1e: 2228 00c4 movel %a0@(196),%d1 <== NOT EXECUTED 4ca22: 2039 0005 caee movel 5caee <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4ca28: 4681 notl %d1 <== NOT EXECUTED 4ca2a: 80a8 00c8 orl %a0@(200),%d0 <== NOT EXECUTED 4ca2e: c081 andl %d1,%d0 <== NOT EXECUTED 4ca30: 67be beqs 4c9f0 <== NOT EXECUTED 4ca32: 60c8 bras 4c9fc <== NOT EXECUTED break; case SIG_SETMASK: api->signals_blocked = *set; break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 4ca34: 4eb9 0004 e560 jsr 4e560 <__errno> <== NOT EXECUTED _Thread_Executing->do_post_task_switch_extension = true; _Thread_Dispatch(); } return 0; } 4ca3a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4ca3e: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED break; case SIG_SETMASK: api->signals_blocked = *set; break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 4ca42: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ca44: 7016 moveq #22,%d0 <== NOT EXECUTED 4ca46: 2080 movel %d0,%a0@ <== NOT EXECUTED _Thread_Executing->do_post_task_switch_extension = true; _Thread_Dispatch(); } return 0; } 4ca48: 4e5e unlk %fp <== NOT EXECUTED break; case SIG_SETMASK: api->signals_blocked = *set; break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 4ca4a: 70ff moveq #-1,%d0 <== NOT EXECUTED _Thread_Executing->do_post_task_switch_extension = true; _Thread_Dispatch(); } return 0; } 4ca4c: 4e75 rts <== NOT EXECUTED if ( !set ) return 0; switch ( how ) { case SIG_BLOCK: api->signals_blocked |= *set; 4ca4e: 2011 movel %a1@,%d0 <== NOT EXECUTED 4ca50: 81a8 00c4 orl %d0,%a0@(196) <== NOT EXECUTED /* XXX are there critical section problems here? */ /* XXX evaluate the new set */ if ( ~api->signals_blocked & 4ca54: 2228 00c4 movel %a0@(196),%d1 <== NOT EXECUTED 4ca58: 2039 0005 caee movel 5caee <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4ca5e: 4681 notl %d1 <== NOT EXECUTED 4ca60: 80a8 00c8 orl %a0@(200),%d0 <== NOT EXECUTED 4ca64: c081 andl %d1,%d0 <== NOT EXECUTED 4ca66: 6788 beqs 4c9f0 <== NOT EXECUTED 4ca68: 6092 bras 4c9fc <== NOT EXECUTED sigset_t *oset ) { POSIX_API_Control *api; if ( !set && !oset ) 4ca6a: 4a8a tstl %a2 <== NOT EXECUTED 4ca6c: 67c6 beqs 4ca34 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; if ( oset ) *oset = api->signals_blocked; 4ca6e: 2079 0005 c4d6 moveal 5c4d6 <_Thread_Executing>,%a0 <== NOT EXECUTED 4ca74: 2268 0110 moveal %a0@(272),%a1 <== NOT EXECUTED 4ca78: 24a9 00c4 movel %a1@(196),%a2@ <== NOT EXECUTED _Thread_Executing->do_post_task_switch_extension = true; _Thread_Dispatch(); } return 0; } 4ca7c: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4ca80: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4ca84: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; if ( oset ) *oset = api->signals_blocked; 4ca86: 4280 clrl %d0 <== NOT EXECUTED _Thread_Executing->do_post_task_switch_extension = true; _Thread_Dispatch(); } return 0; } 4ca88: 4e75 rts <== NOT EXECUTED ... 000459ac : */ int pthread_spin_destroy( pthread_spinlock_t *spinlock ) { 459ac: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 459b0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 459b4: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_Spinlock_Control *the_spinlock = NULL; Objects_Locations location; if ( !spinlock ) 459b6: 4a88 tstl %a0 <== NOT EXECUTED 459b8: 6736 beqs 459f0 <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Get ( pthread_spinlock_t *spinlock, Objects_Locations *location ) { return (POSIX_Spinlock_Control *) _Objects_Get( 459ba: 486e fffc pea %fp@(-4) <== NOT EXECUTED 459be: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 459c0: 4879 0005 aef6 pea 5aef6 <_POSIX_Spinlock_Information> <== NOT EXECUTED 459c6: 4eb9 0004 8048 jsr 48048 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_spinlock = _POSIX_Spinlock_Get( spinlock, &location ); switch ( location ) { 459cc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 459d2: 2440 moveal %d0,%a2 <== NOT EXECUTED 459d4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 459d8: 6616 bnes 459f0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _CORE_spinlock_Is_busy( CORE_spinlock_Control *the_spinlock ) { return (the_spinlock->users != 0); 459da: 202a 0018 movel %a2@(24),%d0 <== NOT EXECUTED case OBJECTS_LOCAL: if ( _CORE_spinlock_Is_busy( &the_spinlock->Spinlock ) ) { 459de: 671a beqs 459fa <== NOT EXECUTED _Thread_Enable_dispatch(); 459e0: 4eb9 0004 8848 jsr 48848 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 459e6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 459ea: 4e5e unlk %fp <== NOT EXECUTED the_spinlock = _POSIX_Spinlock_Get( spinlock, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( _CORE_spinlock_Is_busy( &the_spinlock->Spinlock ) ) { _Thread_Enable_dispatch(); 459ec: 7010 moveq #16,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 459ee: 4e75 rts <== NOT EXECUTED 459f0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 459f4: 4e5e unlk %fp <== NOT EXECUTED _Objects_Close( &_POSIX_Spinlock_Information, &the_spinlock->Object ); _POSIX_Spinlock_Free( the_spinlock ); _Thread_Enable_dispatch(); return 0; 459f6: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 459f8: 4e75 rts <== NOT EXECUTED if ( _CORE_spinlock_Is_busy( &the_spinlock->Spinlock ) ) { _Thread_Enable_dispatch(); return EBUSY; } _Objects_Close( &_POSIX_Spinlock_Information, &the_spinlock->Object ); 459fa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 459fc: 4879 0005 aef6 pea 5aef6 <_POSIX_Spinlock_Information> <== NOT EXECUTED 45a02: 4eb9 0004 7bb8 jsr 47bb8 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _POSIX_Spinlock_Free ( POSIX_Spinlock_Control *the_spinlock ) { _Objects_Free( &_POSIX_Spinlock_Information, &the_spinlock->Object ); 45a08: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45a0a: 4879 0005 aef6 pea 5aef6 <_POSIX_Spinlock_Information> <== NOT EXECUTED 45a10: 4eb9 0004 7edc jsr 47edc <_Objects_Free> <== NOT EXECUTED _POSIX_Spinlock_Free( the_spinlock ); _Thread_Enable_dispatch(); 45a16: 4eb9 0004 8848 jsr 48848 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45a1c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED _Objects_Close( &_POSIX_Spinlock_Information, &the_spinlock->Object ); _POSIX_Spinlock_Free( the_spinlock ); _Thread_Enable_dispatch(); 45a20: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45a26: 4e5e unlk %fp <== NOT EXECUTED _Objects_Close( &_POSIX_Spinlock_Information, &the_spinlock->Object ); _POSIX_Spinlock_Free( the_spinlock ); _Thread_Enable_dispatch(); 45a28: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45a2a: 4e75 rts 00045a2c : int pthread_spin_init( pthread_spinlock_t *spinlock, int pshared ) { 45a2c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45a30: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_Spinlock_Control *the_spinlock; CORE_spinlock_Attributes attributes; if ( !spinlock ) 45a32: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 45a36: 6764 beqs 45a9c <== NOT EXECUTED return EINVAL; switch ( pshared ) { 45a38: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 45a3c: 665e bnes 45a9c <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 45a3e: 2039 0005 acc8 movel 5acc8 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45a44: 5280 addql #1,%d0 <== NOT EXECUTED 45a46: 23c0 0005 acc8 movel %d0,5acc8 <_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 *) 45a4c: 4879 0005 aef6 pea 5aef6 <_POSIX_Spinlock_Information> <== NOT EXECUTED 45a52: 4eb9 0004 7b1c jsr 47b1c <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_spinlock = _POSIX_Spinlock_Allocate(); if ( !the_spinlock ) { 45a58: 588f addql #4,%sp <== NOT EXECUTED 45a5a: 2440 moveal %d0,%a2 <== NOT EXECUTED 45a5c: 4a80 tstl %d0 <== NOT EXECUTED 45a5e: 6746 beqs 45aa6 <== NOT EXECUTED _Thread_Enable_dispatch(); return EAGAIN; } _CORE_spinlock_Initialize( &the_spinlock->Spinlock, &attributes ); 45a60: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45a64: 486a 0010 pea %a2@(16) <== NOT EXECUTED 45a68: 4eb9 0004 75d4 jsr 475d4 <_CORE_spinlock_Initialize> <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 45a6e: 2079 0005 af10 moveal 5af10 <_POSIX_Spinlock_Information+0x1a>,%a0 <== NOT EXECUTED 45a74: 4280 clrl %d0 <== NOT EXECUTED 45a76: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 45a7a: 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; 45a7e: 42aa 000c clrl %a2@(12) <== NOT EXECUTED _Objects_Open_u32( &_POSIX_Spinlock_Information, &the_spinlock->Object, 0 ); *spinlock = the_spinlock->Object.id; 45a82: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45a86: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 45a8a: 4eb9 0004 8848 jsr 48848 <_Thread_Enable_dispatch> <== NOT EXECUTED return 0; } 45a90: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED _Objects_Open_u32( &_POSIX_Spinlock_Information, &the_spinlock->Object, 0 ); *spinlock = the_spinlock->Object.id; _Thread_Enable_dispatch(); 45a94: 508f addql #8,%sp <== NOT EXECUTED return 0; } 45a96: 4e5e unlk %fp <== NOT EXECUTED _Objects_Open_u32( &_POSIX_Spinlock_Information, &the_spinlock->Object, 0 ); *spinlock = the_spinlock->Object.id; _Thread_Enable_dispatch(); 45a98: 4280 clrl %d0 <== NOT EXECUTED return 0; } 45a9a: 4e75 rts <== NOT EXECUTED 45a9c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45aa0: 4e5e unlk %fp <== NOT EXECUTED _Objects_Open_u32( &_POSIX_Spinlock_Information, &the_spinlock->Object, 0 ); *spinlock = the_spinlock->Object.id; _Thread_Enable_dispatch(); return 0; 45aa2: 7016 moveq #22,%d0 <== NOT EXECUTED } 45aa4: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_spinlock = _POSIX_Spinlock_Allocate(); if ( !the_spinlock ) { _Thread_Enable_dispatch(); 45aa6: 4eb9 0004 8848 jsr 48848 <_Thread_Enable_dispatch> <== NOT EXECUTED *spinlock = the_spinlock->Object.id; _Thread_Enable_dispatch(); return 0; } 45aac: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45ab0: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_spinlock = _POSIX_Spinlock_Allocate(); if ( !the_spinlock ) { _Thread_Enable_dispatch(); 45ab2: 700b moveq #11,%d0 <== NOT EXECUTED *spinlock = the_spinlock->Object.id; _Thread_Enable_dispatch(); return 0; } 45ab4: 4e75 rts <== NOT EXECUTED ... 00045ab8 : */ int pthread_spin_lock( pthread_spinlock_t *spinlock ) { 45ab8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45abc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45ac0: 2f02 movel %d2,%sp@- <== NOT EXECUTED POSIX_Spinlock_Control *the_spinlock = NULL; Objects_Locations location; CORE_spinlock_Status status; if ( !spinlock ) 45ac2: 4a88 tstl %a0 <== NOT EXECUTED 45ac4: 674e beqs 45b14 <== NOT EXECUTED RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Get ( pthread_spinlock_t *spinlock, Objects_Locations *location ) { return (POSIX_Spinlock_Control *) _Objects_Get( 45ac6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45aca: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 45acc: 4879 0005 aef6 pea 5aef6 <_POSIX_Spinlock_Information> <== NOT EXECUTED 45ad2: 4eb9 0004 8048 jsr 48048 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_spinlock = _POSIX_Spinlock_Get( spinlock, &location ); switch ( location ) { 45ad8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45ade: 2040 moveal %d0,%a0 <== NOT EXECUTED 45ae0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45ae4: 662e bnes 45b14 <== NOT EXECUTED case OBJECTS_LOCAL: status = _CORE_spinlock_Wait( &the_spinlock->Spinlock, TRUE, 0 ); 45ae6: 42a7 clrl %sp@- <== NOT EXECUTED 45ae8: 4878 0001 pea 1 <== NOT EXECUTED 45aec: 4868 0010 pea %a0@(16) <== NOT EXECUTED 45af0: 4eb9 0004 764c jsr 4764c <_CORE_spinlock_Wait> <== NOT EXECUTED 45af6: 2400 movel %d0,%d2 <== NOT EXECUTED _Thread_Enable_dispatch(); 45af8: 4eb9 0004 8848 jsr 48848 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 45afe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b00: 4eb9 0004 5b20 jsr 45b20 <_POSIX_Spinlock_Translate_core_spinlock_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45b06: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: status = _CORE_spinlock_Wait( &the_spinlock->Spinlock, TRUE, 0 ); _Thread_Enable_dispatch(); return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 45b0a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45b10: 4e5e unlk %fp <== NOT EXECUTED 45b12: 4e75 rts <== NOT EXECUTED 45b14: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45b18: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: status = _CORE_spinlock_Wait( &the_spinlock->Spinlock, TRUE, 0 ); _Thread_Enable_dispatch(); return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 45b1a: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45b1c: 4e75 rts <== NOT EXECUTED ... 00045b38 : */ int pthread_spin_trylock( pthread_spinlock_t *spinlock ) { 45b38: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45b3c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45b40: 2f02 movel %d2,%sp@- <== NOT EXECUTED POSIX_Spinlock_Control *the_spinlock = NULL; Objects_Locations location; CORE_spinlock_Status status; if ( !spinlock ) 45b42: 4a88 tstl %a0 <== NOT EXECUTED 45b44: 674c beqs 45b92 <== NOT EXECUTED 45b46: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45b4a: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 45b4c: 4879 0005 aef6 pea 5aef6 <_POSIX_Spinlock_Information> <== NOT EXECUTED 45b52: 4eb9 0004 8048 jsr 48048 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_spinlock = _POSIX_Spinlock_Get( spinlock, &location ); switch ( location ) { 45b58: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45b5e: 2040 moveal %d0,%a0 <== NOT EXECUTED 45b60: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45b64: 662c bnes 45b92 <== NOT EXECUTED case OBJECTS_LOCAL: status = _CORE_spinlock_Wait( &the_spinlock->Spinlock, FALSE, 0 ); 45b66: 42a7 clrl %sp@- <== NOT EXECUTED 45b68: 42a7 clrl %sp@- <== NOT EXECUTED 45b6a: 4868 0010 pea %a0@(16) <== NOT EXECUTED 45b6e: 4eb9 0004 764c jsr 4764c <_CORE_spinlock_Wait> <== NOT EXECUTED 45b74: 2400 movel %d0,%d2 <== NOT EXECUTED _Thread_Enable_dispatch(); 45b76: 4eb9 0004 8848 jsr 48848 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 45b7c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45b7e: 4eb9 0004 5b20 jsr 45b20 <_POSIX_Spinlock_Translate_core_spinlock_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45b84: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: status = _CORE_spinlock_Wait( &the_spinlock->Spinlock, FALSE, 0 ); _Thread_Enable_dispatch(); return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 45b88: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45b8e: 4e5e unlk %fp <== NOT EXECUTED 45b90: 4e75 rts <== NOT EXECUTED 45b92: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45b96: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: status = _CORE_spinlock_Wait( &the_spinlock->Spinlock, FALSE, 0 ); _Thread_Enable_dispatch(); return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 45b98: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45b9a: 4e75 rts 00045b9c : */ int pthread_spin_unlock( pthread_spinlock_t *spinlock ) { 45b9c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45ba0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45ba4: 2f02 movel %d2,%sp@- <== NOT EXECUTED POSIX_Spinlock_Control *the_spinlock = NULL; Objects_Locations location; CORE_spinlock_Status status; if ( !spinlock ) 45ba6: 4a88 tstl %a0 <== NOT EXECUTED 45ba8: 6744 beqs 45bee <== NOT EXECUTED 45baa: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45bae: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 45bb0: 4879 0005 aef6 pea 5aef6 <_POSIX_Spinlock_Information> <== NOT EXECUTED 45bb6: 4eb9 0004 8048 jsr 48048 <_Objects_Get> <== NOT EXECUTED return EINVAL; the_spinlock = _POSIX_Spinlock_Get( spinlock, &location ); switch ( location ) { 45bbc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45bc2: 2040 moveal %d0,%a0 <== NOT EXECUTED 45bc4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45bc8: 6624 bnes 45bee <== NOT EXECUTED case OBJECTS_LOCAL: status = _CORE_spinlock_Release( &the_spinlock->Spinlock ); 45bca: 4868 0010 pea %a0@(16) <== NOT EXECUTED 45bce: 4eb9 0004 75f4 jsr 475f4 <_CORE_spinlock_Release> <== NOT EXECUTED 45bd4: 2400 movel %d0,%d2 <== NOT EXECUTED _Thread_Enable_dispatch(); 45bd6: 4eb9 0004 8848 jsr 48848 <_Thread_Enable_dispatch> <== NOT EXECUTED return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 45bdc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45bde: 4eb9 0004 5b20 jsr 45b20 <_POSIX_Spinlock_Translate_core_spinlock_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45be4: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: status = _CORE_spinlock_Release( &the_spinlock->Spinlock ); _Thread_Enable_dispatch(); return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 45be8: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45bea: 4e5e unlk %fp <== NOT EXECUTED 45bec: 4e75 rts <== NOT EXECUTED 45bee: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45bf2: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: status = _CORE_spinlock_Release( &the_spinlock->Spinlock ); _Thread_Enable_dispatch(); return _POSIX_Spinlock_Translate_core_spinlock_return_code( status ); 45bf4: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return EINVAL; } 45bf6: 4e75 rts 00045d7c : * 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() ) 45d7c: 2039 0005 b836 movel 5b836 <_ISR_Nest_level>,%d0 <== NOT EXECUTED * * 18.2.2 Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ void pthread_testcancel( void ) { 45d82: 4e56 0000 linkw %fp,#0 <== 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() ) 45d86: 4a80 tstl %d0 <== NOT EXECUTED 45d88: 663c bnes 45dc6 <== NOT EXECUTED return; thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; 45d8a: 2079 0005 b856 moveal 5b856 <_Thread_Executing>,%a0 <== NOT EXECUTED 45d90: 2039 0005 b798 movel 5b798 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45d96: 2068 0110 moveal %a0@(272),%a0 <== NOT EXECUTED 45d9a: 5280 addql #1,%d0 <== NOT EXECUTED 45d9c: 23c0 0005 b798 movel %d0,5b798 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && 45da2: 4aa8 00cc tstl %a0@(204) <== NOT EXECUTED 45da6: 6622 bnes 45dca <== NOT EXECUTED 45da8: 4aa8 00d4 tstl %a0@(212) <== NOT EXECUTED 45dac: 671c beqs 45dca <== NOT EXECUTED thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 45dae: 4eb9 0004 8890 jsr 48890 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( cancel ) _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED ); 45db4: 4878 ffff pea ffffffff <== NOT EXECUTED 45db8: 2f39 0005 b856 movel 5b856 <_Thread_Executing>,%sp@- <== NOT EXECUTED 45dbe: 4eb9 0004 5774 jsr 45774 <_POSIX_Thread_Exit> <== NOT EXECUTED 45dc4: 508f addql #8,%sp <== NOT EXECUTED } 45dc6: 4e5e unlk %fp <== NOT EXECUTED 45dc8: 4e75 rts <== NOT EXECUTED 45dca: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE && thread_support->cancelation_requested ) cancel = true; _Thread_Enable_dispatch(); 45dcc: 4ef9 0004 8890 jmp 48890 <_Thread_Enable_dispatch> <== NOT EXECUTED ... 00055b50 : ssize_t read( int fd, void *buffer, size_t count ) { 55b50: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 55b54: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 55b58: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 55b5c: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 55b60: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); 55b64: b4b9 0005 8048 cmpl 58048 ,%d2 <== NOT EXECUTED 55b6a: 6466 bccs 55bd2 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 55b6c: 2202 movel %d2,%d1 <== NOT EXECUTED 55b6e: 2002 movel %d2,%d0 <== NOT EXECUTED 55b70: e589 lsll #2,%d1 <== NOT EXECUTED 55b72: e988 lsll #4,%d0 <== NOT EXECUTED 55b74: 9081 subl %d1,%d0 <== NOT EXECUTED 55b76: 2479 0005 9b14 moveal 59b14 ,%a2 <== NOT EXECUTED 55b7c: d082 addl %d2,%d0 <== NOT EXECUTED 55b7e: e588 lsll #2,%d0 <== NOT EXECUTED 55b80: d5c0 addal %d0,%a2 <== NOT EXECUTED rtems_libio_check_is_open( iop ); 55b82: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 55b86: 0800 0008 btst #8,%d0 <== NOT EXECUTED 55b8a: 6746 beqs 55bd2 <== NOT EXECUTED rtems_libio_check_buffer( buffer ); 55b8c: 4a83 tstl %d3 <== NOT EXECUTED 55b8e: 675a beqs 55bea <== NOT EXECUTED rtems_libio_check_count( count ); 55b90: 4a89 tstl %a1 <== NOT EXECUTED 55b92: 6732 beqs 55bc6 <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 55b94: 0800 0001 btst #1,%d0 <== NOT EXECUTED 55b98: 6750 beqs 55bea <== NOT EXECUTED /* * Now process the read(). */ if ( !iop->handlers->read_h ) 55b9a: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 55b9e: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED 55ba2: 4a88 tstl %a0 <== NOT EXECUTED 55ba4: 675c beqs 55c02 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); rc = (*iop->handlers->read_h)( iop, buffer, count ); 55ba6: 2f09 movel %a1,%sp@- <== NOT EXECUTED 55ba8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 55baa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 55bac: 4e90 jsr %a0@ <== NOT EXECUTED if ( rc > 0 ) 55bae: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 55bb4: 4a80 tstl %d0 <== NOT EXECUTED 55bb6: 6f04 bles 55bbc <== NOT EXECUTED iop->offset += rc; 55bb8: d1aa 0008 addl %d0,%a2@(8) <== NOT EXECUTED return rc; } 55bbc: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 55bc2: 4e5e unlk %fp <== NOT EXECUTED 55bc4: 4e75 rts <== NOT EXECUTED 55bc6: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 55bcc: 4e5e unlk %fp <== NOT EXECUTED rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); rtems_libio_check_buffer( buffer ); rtems_libio_check_count( count ); 55bce: 4280 clrl %d0 <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55bd0: 4e75 rts <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); 55bd2: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55bd8: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); 55bde: 2040 moveal %d0,%a0 <== NOT EXECUTED 55be0: 7209 moveq #9,%d1 <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55be2: 4e5e unlk %fp <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); 55be4: 70ff moveq #-1,%d0 <== NOT EXECUTED 55be6: 2081 movel %d1,%a0@ <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55be8: 4e75 rts <== NOT EXECUTED rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); rtems_libio_check_buffer( buffer ); rtems_libio_check_count( count ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 55bea: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 55bf0: 2040 moveal %d0,%a0 <== NOT EXECUTED 55bf2: 7016 moveq #22,%d0 <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55bf4: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); rtems_libio_check_buffer( buffer ); rtems_libio_check_count( count ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 55bfa: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55bfc: 4e5e unlk %fp <== NOT EXECUTED rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); rtems_libio_check_buffer( buffer ); rtems_libio_check_count( count ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ ); 55bfe: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55c00: 4e75 rts <== NOT EXECUTED /* * Now process the read(). */ if ( !iop->handlers->read_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 55c02: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55c08: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED /* * Now process the read(). */ if ( !iop->handlers->read_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 55c0e: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55c10: 4e5e unlk %fp <== NOT EXECUTED /* * Now process the read(). */ if ( !iop->handlers->read_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 55c12: 70ff moveq #-1,%d0 <== NOT EXECUTED 55c14: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55c1a: 4e75 rts 00061bd0 : /* * get next entry in a directory. */ struct dirent * readdir( DIR *dirp ) { 61bd0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 61bd4: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 61bd8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED register struct dirent *dp; if ( !dirp ) 61bdc: 4a8a tstl %a2 <== NOT EXECUTED 61bde: 6778 beqs 61c58 <== NOT EXECUTED return NULL; for (;;) { if (dirp->dd_loc == 0) { dirp->dd_size = getdents (dirp->dd_fd, 61be0: 47f9 0006 de84 lea 6de84 ,%a3 <== NOT EXECUTED if ( !dirp ) return NULL; for (;;) { if (dirp->dd_loc == 0) { 61be6: 222a 0004 movel %a2@(4),%d1 <== NOT EXECUTED 61bea: 6710 beqs 61bfc <== NOT EXECUTED dirp->dd_len); if (dirp->dd_size <= 0) return NULL; } if (dirp->dd_loc >= dirp->dd_size) { 61bec: b2aa 0008 cmpl %a2@(8),%d1 <== NOT EXECUTED 61bf0: 6d2c blts 61c1e <== NOT EXECUTED dirp->dd_loc = 0; 61bf2: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED if ( !dirp ) return NULL; for (;;) { if (dirp->dd_loc == 0) { 61bf6: 222a 0004 movel %a2@(4),%d1 <== NOT EXECUTED 61bfa: 66f0 bnes 61bec <== NOT EXECUTED dirp->dd_size = getdents (dirp->dd_fd, 61bfc: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 61c00: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 61c04: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 61c06: 4e93 jsr %a3@ <== NOT EXECUTED dirp->dd_buf, dirp->dd_len); if (dirp->dd_size <= 0) 61c08: 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, 61c0e: 2540 0008 movel %d0,%a2@(8) <== NOT EXECUTED dirp->dd_buf, dirp->dd_len); if (dirp->dd_size <= 0) 61c12: 6f44 bles 61c58 <== NOT EXECUTED 61c14: 222a 0004 movel %a2@(4),%d1 <== NOT EXECUTED return NULL; } if (dirp->dd_loc >= dirp->dd_size) { 61c18: b2aa 0008 cmpl %a2@(8),%d1 <== NOT EXECUTED 61c1c: 6cd4 bges 61bf2 <== NOT EXECUTED dirp->dd_loc = 0; continue; } dp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc); 61c1e: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED 61c22: d1c1 addal %d1,%a0 <== NOT EXECUTED if ((intptr_t)dp & 03) /* bogus pointer check */ 61c24: 2008 movel %a0,%d0 <== NOT EXECUTED 61c26: 7403 moveq #3,%d2 <== NOT EXECUTED 61c28: c082 andl %d2,%d0 <== NOT EXECUTED 61c2a: 662c bnes 61c58 <== NOT EXECUTED return NULL; if (dp->d_reclen <= 0 || 61c2c: 3028 0008 movew %a0@(8),%d0 <== NOT EXECUTED 61c30: 4282 clrl %d2 <== NOT EXECUTED 61c32: 3400 movew %d0,%d2 <== NOT EXECUTED 61c34: 6722 beqs 61c58 <== NOT EXECUTED 61c36: 202a 0010 movel %a2@(16),%d0 <== NOT EXECUTED 61c3a: 5280 addql #1,%d0 <== NOT EXECUTED 61c3c: 9081 subl %d1,%d0 <== NOT EXECUTED 61c3e: b082 cmpl %d2,%d0 <== NOT EXECUTED 61c40: 6d16 blts 61c58 <== NOT EXECUTED dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) return NULL; dirp->dd_loc += dp->d_reclen; 61c42: d282 addl %d2,%d1 <== NOT EXECUTED 61c44: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED if (dp->d_ino == 0) 61c48: 4a90 tstl %a0@ <== NOT EXECUTED 61c4a: 679a beqs 61be6 <== NOT EXECUTED continue; return (dp); } } 61c4c: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED 61c52: 4e5e unlk %fp <== NOT EXECUTED 61c54: 2008 movel %a0,%d0 <== NOT EXECUTED 61c56: 4e75 rts <== NOT EXECUTED 61c58: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED return NULL; if (dp->d_reclen <= 0 || dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) return NULL; dirp->dd_loc += dp->d_reclen; if (dp->d_ino == 0) 61c5e: 91c8 subal %a0,%a0 <== NOT EXECUTED continue; return (dp); } } 61c60: 4e5e unlk %fp <== NOT EXECUTED 61c62: 2008 movel %a0,%d0 <== NOT EXECUTED 61c64: 4e75 rts <== NOT EXECUTED ... 00061c68 : ssize_t readlink( const char *pathname, char *buf, size_t bufsize ) { 61c68: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 61c6c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61c6e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 61c70: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED rtems_filesystem_location_info_t loc; int result; if (!buf) 61c74: 6700 00ae beqw 61d24 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); result = rtems_filesystem_evaluate_path( pathname, 0, &loc, false ); 61c78: 42a7 clrl %sp@- <== NOT EXECUTED 61c7a: 260e movel %fp,%d3 <== NOT EXECUTED 61c7c: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 61c82: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61c84: 42a7 clrl %sp@- <== NOT EXECUTED 61c86: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 61c8a: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED if ( result != 0 ) 61c90: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 61c96: 4a80 tstl %d0 <== NOT EXECUTED 61c98: 667a bnes 61d14 <== NOT EXECUTED return -1; if ( !loc.ops->node_type_h ){ 61c9a: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED 61c9e: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED 61ca2: 4a88 tstl %a0 <== NOT EXECUTED 61ca4: 6752 beqs 61cf8 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_SYM_LINK ){ 61ca6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61ca8: 4e90 jsr %a0@ <== NOT EXECUTED 61caa: 588f addql #4,%sp <== NOT EXECUTED 61cac: 7204 moveq #4,%d1 <== NOT EXECUTED 61cae: b280 cmpl %d0,%d1 <== NOT EXECUTED 61cb0: 6600 008e bnew 61d40 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( EINVAL ); } if ( !loc.ops->readlink_h ){ 61cb4: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED 61cb8: 2069 003c moveal %a1@(60),%a0 <== NOT EXECUTED 61cbc: 4a88 tstl %a0 <== NOT EXECUTED 61cbe: 6700 00b2 beqw 61d72 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.ops->readlink_h)( &loc, buf, bufsize ); 61cc2: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 61cc6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 61cc8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61cca: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 61ccc: 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 ); 61cd0: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 61cd2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 61cd8: 4a88 tstl %a0 <== NOT EXECUTED 61cda: 670e beqs 61cea <== NOT EXECUTED 61cdc: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 61ce0: 4a88 tstl %a0 <== NOT EXECUTED 61ce2: 6706 beqs 61cea <== NOT EXECUTED 61ce4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61ce6: 4e90 jsr %a0@ <== NOT EXECUTED 61ce8: 588f addql #4,%sp <== NOT EXECUTED return result; } 61cea: 2002 movel %d2,%d0 <== NOT EXECUTED 61cec: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 61cf0: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 61cf4: 4e5e unlk %fp <== NOT EXECUTED 61cf6: 4e75 rts <== NOT EXECUTED result = rtems_filesystem_evaluate_path( pathname, 0, &loc, false ); if ( result != 0 ) return -1; if ( !loc.ops->node_type_h ){ rtems_filesystem_freenode( &loc ); 61cf8: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 61cfc: 4a88 tstl %a0 <== NOT EXECUTED 61cfe: 6706 beqs 61d06 <== NOT EXECUTED 61d00: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61d02: 4e90 jsr %a0@ <== NOT EXECUTED 61d04: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 61d06: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 61d0c: 2040 moveal %d0,%a0 <== NOT EXECUTED 61d0e: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 61d14: 74ff moveq #-1,%d2 <== NOT EXECUTED result = (*loc.ops->readlink_h)( &loc, buf, bufsize ); rtems_filesystem_freenode( &loc ); return result; } 61d16: 2002 movel %d2,%d0 <== NOT EXECUTED 61d18: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 61d1c: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 61d20: 4e5e unlk %fp <== NOT EXECUTED 61d22: 4e75 rts <== NOT EXECUTED { rtems_filesystem_location_info_t loc; int result; if (!buf) rtems_set_errno_and_return_minus_one( EFAULT ); 61d24: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 61d2a: 74ff moveq #-1,%d2 <== NOT EXECUTED 61d2c: 2040 moveal %d0,%a0 <== NOT EXECUTED result = (*loc.ops->readlink_h)( &loc, buf, bufsize ); rtems_filesystem_freenode( &loc ); return result; } 61d2e: 2002 movel %d2,%d0 <== NOT EXECUTED 61d30: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 61d34: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED { rtems_filesystem_location_info_t loc; int result; if (!buf) rtems_set_errno_and_return_minus_one( EFAULT ); 61d38: 720e moveq #14,%d1 <== NOT EXECUTED result = (*loc.ops->readlink_h)( &loc, buf, bufsize ); rtems_filesystem_freenode( &loc ); return result; } 61d3a: 4e5e unlk %fp <== NOT EXECUTED { rtems_filesystem_location_info_t loc; int result; if (!buf) rtems_set_errno_and_return_minus_one( EFAULT ); 61d3c: 2081 movel %d1,%a0@ <== NOT EXECUTED result = (*loc.ops->readlink_h)( &loc, buf, bufsize ); rtems_filesystem_freenode( &loc ); return result; } 61d3e: 4e75 rts <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_SYM_LINK ){ rtems_filesystem_freenode( &loc ); 61d40: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 61d44: 4a88 tstl %a0 <== NOT EXECUTED 61d46: 670e beqs 61d56 <== NOT EXECUTED 61d48: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 61d4c: 4a88 tstl %a0 <== NOT EXECUTED 61d4e: 6706 beqs 61d56 <== NOT EXECUTED 61d50: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61d52: 4e90 jsr %a0@ <== NOT EXECUTED 61d54: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 61d56: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 61d5c: 2040 moveal %d0,%a0 <== NOT EXECUTED 61d5e: 7016 moveq #22,%d0 <== NOT EXECUTED 61d60: 74ff moveq #-1,%d2 <== NOT EXECUTED 61d62: 2080 movel %d0,%a0@ <== NOT EXECUTED result = (*loc.ops->readlink_h)( &loc, buf, bufsize ); rtems_filesystem_freenode( &loc ); return result; } 61d64: 2002 movel %d2,%d0 <== NOT EXECUTED 61d66: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 61d6a: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 61d6e: 4e5e unlk %fp <== NOT EXECUTED 61d70: 4e75 rts <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( EINVAL ); } if ( !loc.ops->readlink_h ){ rtems_filesystem_freenode( &loc ); 61d72: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 61d76: 4a88 tstl %a0 <== NOT EXECUTED 61d78: 6706 beqs 61d80 <== NOT EXECUTED 61d7a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61d7c: 4e90 jsr %a0@ <== NOT EXECUTED 61d7e: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 61d80: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 61d86: 74ff moveq #-1,%d2 <== NOT EXECUTED 61d88: 2040 moveal %d0,%a0 <== NOT EXECUTED result = (*loc.ops->readlink_h)( &loc, buf, bufsize ); rtems_filesystem_freenode( &loc ); return result; } 61d8a: 2002 movel %d2,%d0 <== NOT EXECUTED 61d8c: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 61d90: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 61d94: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); } if ( !loc.ops->readlink_h ){ rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); 61d96: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED result = (*loc.ops->readlink_h)( &loc, buf, bufsize ); rtems_filesystem_freenode( &loc ); return result; } 61d9c: 4e75 rts <== NOT EXECUTED ... 00055c9c : { size_t old_size; char *new_area; size_t resize; MSBUMP(realloc_calls, 1); 55c9c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 55ca0: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 55ca4: 52b9 0005 9b88 addql #1,59b88 <== NOT EXECUTED 55caa: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 55cae: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED /* * Do not attempt to allocate memory if in a critical section or ISR. */ if (_System_state_Is_up(_System_state_Get())) { 55cb2: 7003 moveq #3,%d0 <== NOT EXECUTED 55cb4: b0b9 0005 9e0e cmpl 59e0e <_System_state_Current>,%d0 <== NOT EXECUTED 55cba: 6766 beqs 55d22 <== NOT EXECUTED } /* * Continue with realloc(). */ if ( !ptr ) 55cbc: 4a82 tstl %d2 <== NOT EXECUTED 55cbe: 674a beqs 55d0a <== NOT EXECUTED return malloc( size ); if ( !size ) { 55cc0: 4a83 tstl %d3 <== NOT EXECUTED 55cc2: 6700 00ca beqw 55d8e <== NOT EXECUTED free( ptr ); return (void *) 0; } if ( !_Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, ptr, &old_size) ) { 55cc6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 55cca: 2f02 movel %d2,%sp@- <== NOT EXECUTED 55ccc: 4879 0005 9b20 pea 59b20 <== NOT EXECUTED 55cd2: 4eb9 0005 63c4 jsr 563c4 <_Protected_heap_Get_block_size> <== NOT EXECUTED 55cd8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 55cde: 4a00 tstb %d0 <== NOT EXECUTED 55ce0: 6700 00c4 beqw 55da6 <== 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 ) ) { 55ce4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 55ce6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 55ce8: 4879 0005 9b20 pea 59b20 <== NOT EXECUTED 55cee: 4eb9 0005 6400 jsr 56400 <_Protected_heap_Resize_block> <== NOT EXECUTED 55cf4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 55cfa: 4a00 tstb %d0 <== NOT EXECUTED 55cfc: 673a beqs 55d38 <== NOT EXECUTED memcpy( new_area, ptr, (size < old_size) ? size : old_size ); free( ptr ); return new_area; } 55cfe: 2002 movel %d2,%d0 <== NOT EXECUTED 55d00: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 55d06: 4e5e unlk %fp <== NOT EXECUTED 55d08: 4e75 rts <== NOT EXECUTED /* * Continue with realloc(). */ if ( !ptr ) return malloc( size ); 55d0a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 55d0c: 4eb9 0004 abd0 jsr 4abd0 <== NOT EXECUTED 55d12: 2400 movel %d0,%d2 <== NOT EXECUTED memcpy( new_area, ptr, (size < old_size) ? size : old_size ); free( ptr ); return new_area; } 55d14: 2002 movel %d2,%d0 <== NOT EXECUTED /* * Continue with realloc(). */ if ( !ptr ) return malloc( size ); 55d16: 588f addql #4,%sp <== NOT EXECUTED memcpy( new_area, ptr, (size < old_size) ? size : old_size ); free( ptr ); return new_area; } 55d18: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 55d1e: 4e5e unlk %fp <== NOT EXECUTED 55d20: 4e75 rts <== NOT EXECUTED /* * Do not attempt to allocate memory if in a critical section or ISR. */ if (_System_state_Is_up(_System_state_Get())) { if (_Thread_Dispatch_disable_level > 0) 55d22: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 55d28: 6756 beqs 55d80 <== NOT EXECUTED } memcpy( new_area, ptr, (size < old_size) ? size : old_size ); free( ptr ); return new_area; 55d2a: 4282 clrl %d2 <== NOT EXECUTED } 55d2c: 2002 movel %d2,%d0 <== NOT EXECUTED 55d2e: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 55d34: 4e5e unlk %fp <== NOT EXECUTED 55d36: 4e75 rts <== 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 ); 55d38: 2f03 movel %d3,%sp@- <== NOT EXECUTED 55d3a: 4eb9 0004 abd0 jsr 4abd0 <== NOT EXECUTED MSBUMP(malloc_calls, -1); /* subtract off the malloc */ 55d40: 53b9 0005 9b7c subql #1,59b7c <== 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 ); 55d46: 2800 movel %d0,%d4 <== NOT EXECUTED MSBUMP(malloc_calls, -1); /* subtract off the malloc */ if ( !new_area ) { 55d48: 588f addql #4,%sp <== NOT EXECUTED 55d4a: 67de beqs 55d2a <== NOT EXECUTED return (void *) 0; } memcpy( new_area, ptr, (size < old_size) ? size : old_size ); 55d4c: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 55d50: 2003 movel %d3,%d0 <== NOT EXECUTED 55d52: b283 cmpl %d3,%d1 <== NOT EXECUTED 55d54: 6402 bccs 55d58 <== NOT EXECUTED 55d56: 2001 movel %d1,%d0 <== NOT EXECUTED 55d58: 2f00 movel %d0,%sp@- <== NOT EXECUTED 55d5a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 55d5c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 55d5e: 4eb9 0004 db78 jsr 4db78 <== NOT EXECUTED free( ptr ); 55d64: 2f02 movel %d2,%sp@- <== NOT EXECUTED 55d66: 4eb9 0004 a5fc jsr 4a5fc <== NOT EXECUTED 55d6c: 2404 movel %d4,%d2 <== NOT EXECUTED return new_area; } 55d6e: 2002 movel %d2,%d0 <== NOT EXECUTED if ( !new_area ) { return (void *) 0; } memcpy( new_area, ptr, (size < old_size) ? size : old_size ); free( ptr ); 55d70: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED return new_area; } 55d76: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 55d7c: 4e5e unlk %fp <== NOT EXECUTED 55d7e: 4e75 rts <== NOT EXECUTED if (_System_state_Is_up(_System_state_Get())) { if (_Thread_Dispatch_disable_level > 0) return (void *) 0; if (_ISR_Nest_level > 0) 55d80: 2039 0005 9d1a movel 59d1a <_ISR_Nest_level>,%d0 <== NOT EXECUTED 55d86: 6700 ff34 beqw 55cbc <== NOT EXECUTED } memcpy( new_area, ptr, (size < old_size) ? size : old_size ); free( ptr ); return new_area; 55d8a: 4282 clrl %d2 <== NOT EXECUTED 55d8c: 609e bras 55d2c <== NOT EXECUTED */ if ( !ptr ) return malloc( size ); if ( !size ) { free( ptr ); 55d8e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 55d90: 4eb9 0004 a5fc jsr 4a5fc <== NOT EXECUTED 55d96: 4282 clrl %d2 <== NOT EXECUTED memcpy( new_area, ptr, (size < old_size) ? size : old_size ); free( ptr ); return new_area; } 55d98: 2002 movel %d2,%d0 <== NOT EXECUTED */ if ( !ptr ) return malloc( size ); if ( !size ) { free( ptr ); 55d9a: 588f addql #4,%sp <== NOT EXECUTED memcpy( new_area, ptr, (size < old_size) ? size : old_size ); free( ptr ); return new_area; } 55d9c: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 55da2: 4e5e unlk %fp <== NOT EXECUTED 55da4: 4e75 rts <== NOT EXECUTED free( ptr ); return (void *) 0; } if ( !_Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, ptr, &old_size) ) { errno = EINVAL; 55da6: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 55dac: 2040 moveal %d0,%a0 <== NOT EXECUTED 55dae: 7016 moveq #22,%d0 <== NOT EXECUTED 55db0: 4282 clrl %d2 <== NOT EXECUTED 55db2: 2080 movel %d0,%a0@ <== NOT EXECUTED memcpy( new_area, ptr, (size < old_size) ? size : old_size ); free( ptr ); return new_area; } 55db4: 2002 movel %d2,%d0 <== NOT EXECUTED 55db6: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 55dbc: 4e5e unlk %fp <== NOT EXECUTED 55dbe: 4e75 rts 000459ec : #include void rewinddir( DIR *dirp ) { 459ec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 459f0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 459f2: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED off_t status; if ( !dirp ) 459f6: 4a8a tstl %a2 <== NOT EXECUTED 459f8: 671c beqs 45a16 <== NOT EXECUTED return; status = lseek( dirp->dd_fd, 0, SEEK_SET ); 459fa: 42a7 clrl %sp@- <== NOT EXECUTED 459fc: 42a7 clrl %sp@- <== NOT EXECUTED 459fe: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45a00: 4eb9 0004 4760 jsr 44760 <== NOT EXECUTED if( status == -1 ) 45a06: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45a0c: 72ff moveq #-1,%d1 <== NOT EXECUTED 45a0e: b280 cmpl %d0,%d1 <== NOT EXECUTED 45a10: 6704 beqs 45a16 <== NOT EXECUTED return; dirp->dd_loc = 0; 45a12: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED } 45a16: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45a1a: 4e5e unlk %fp <== NOT EXECUTED 45a1c: 4e75 rts <== NOT EXECUTED ... 00061ec4 : #include int rmdir( const char *pathname ) { 61ec4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 61ec8: 2f03 movel %d3,%sp@- <== NOT EXECUTED /* * Get the node where we wish to go. */ result = rtems_filesystem_evaluate_path( pathname, 0, &loc, false ); 61eca: 260e movel %fp,%d3 <== NOT EXECUTED 61ecc: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED #include int rmdir( const char *pathname ) { 61ed2: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Get the node where we wish to go. */ result = rtems_filesystem_evaluate_path( pathname, 0, &loc, false ); 61ed4: 42a7 clrl %sp@- <== NOT EXECUTED 61ed6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61ed8: 42a7 clrl %sp@- <== NOT EXECUTED 61eda: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 61ede: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED if ( result != 0 ) 61ee4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 61eea: 4a80 tstl %d0 <== NOT EXECUTED 61eec: 6710 beqs 61efe <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.handlers->rmnod_h)( &loc ); rtems_filesystem_freenode( &loc ); 61eee: 74ff moveq #-1,%d2 <== NOT EXECUTED return result; } 61ef0: 2002 movel %d2,%d0 <== NOT EXECUTED 61ef2: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 61ef6: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 61efa: 4e5e unlk %fp <== NOT EXECUTED 61efc: 4e75 rts <== NOT EXECUTED result = rtems_filesystem_evaluate_path( pathname, 0, &loc, false ); if ( result != 0 ) return -1; result = rtems_filesystem_evaluate_parent(RTEMS_LIBIO_PERMS_WRITE, &loc ); 61efe: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61f00: 4878 0002 pea 2 <== NOT EXECUTED 61f04: 4eb9 0004 5fe0 jsr 45fe0 <== NOT EXECUTED if (result != 0) { 61f0a: 508f addql #8,%sp <== NOT EXECUTED 61f0c: 4a80 tstl %d0 <== NOT EXECUTED 61f0e: 6600 0088 bnew 61f98 <== NOT EXECUTED /* * Verify you can remove this node as a directory. */ if ( !loc.ops->node_type_h ){ 61f12: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED 61f16: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED 61f1a: 4a88 tstl %a0 <== NOT EXECUTED 61f1c: 6700 00a4 beqw 61fc2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ){ 61f20: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61f22: 4e90 jsr %a0@ <== NOT EXECUTED 61f24: 588f addql #4,%sp <== NOT EXECUTED 61f26: 7201 moveq #1,%d1 <== NOT EXECUTED 61f28: b280 cmpl %d0,%d1 <== NOT EXECUTED 61f2a: 663a bnes 61f66 <== NOT EXECUTED /* * Use the filesystems rmnod to remove the node. */ if ( !loc.handlers->rmnod_h ){ 61f2c: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 61f30: 2068 0034 moveal %a0@(52),%a0 <== NOT EXECUTED 61f34: 4a88 tstl %a0 <== NOT EXECUTED 61f36: 6700 00b6 beqw 61fee <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.handlers->rmnod_h)( &loc ); 61f3a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61f3c: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 61f3e: 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 ); 61f42: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 61f44: 588f addql #4,%sp <== NOT EXECUTED 61f46: 4a88 tstl %a0 <== NOT EXECUTED 61f48: 67a6 beqs 61ef0 <== NOT EXECUTED 61f4a: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 61f4e: 4a88 tstl %a0 <== NOT EXECUTED 61f50: 679e beqs 61ef0 <== NOT EXECUTED 61f52: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61f54: 4e90 jsr %a0@ <== NOT EXECUTED return result; } 61f56: 2002 movel %d2,%d0 <== NOT EXECUTED 61f58: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 61f5c: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.handlers->rmnod_h)( &loc ); rtems_filesystem_freenode( &loc ); 61f60: 588f addql #4,%sp <== NOT EXECUTED return result; } 61f62: 4e5e unlk %fp <== NOT EXECUTED 61f64: 4e75 rts <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ){ rtems_filesystem_freenode( &loc ); 61f66: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 61f6a: 4a88 tstl %a0 <== NOT EXECUTED 61f6c: 670e beqs 61f7c <== NOT EXECUTED 61f6e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 61f72: 4a88 tstl %a0 <== NOT EXECUTED 61f74: 6706 beqs 61f7c <== NOT EXECUTED 61f76: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61f78: 4e90 jsr %a0@ <== NOT EXECUTED 61f7a: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 61f7c: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 61f82: 2040 moveal %d0,%a0 <== NOT EXECUTED 61f84: 7014 moveq #20,%d0 <== NOT EXECUTED 61f86: 74ff moveq #-1,%d2 <== NOT EXECUTED 61f88: 2080 movel %d0,%a0@ <== NOT EXECUTED result = (*loc.handlers->rmnod_h)( &loc ); rtems_filesystem_freenode( &loc ); return result; } 61f8a: 2002 movel %d2,%d0 <== NOT EXECUTED 61f8c: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 61f90: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 61f94: 4e5e unlk %fp <== NOT EXECUTED 61f96: 4e75 rts <== NOT EXECUTED if ( result != 0 ) return -1; result = rtems_filesystem_evaluate_parent(RTEMS_LIBIO_PERMS_WRITE, &loc ); if (result != 0) { rtems_filesystem_freenode( &loc ); 61f98: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 61f9c: 4a88 tstl %a0 <== NOT EXECUTED 61f9e: 6700 ff4e beqw 61eee <== NOT EXECUTED 61fa2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 61fa6: 4a88 tstl %a0 <== NOT EXECUTED 61fa8: 6700 ff44 beqw 61eee <== NOT EXECUTED 61fac: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61fae: 4e90 jsr %a0@ <== NOT EXECUTED 61fb0: 74ff moveq #-1,%d2 <== NOT EXECUTED result = (*loc.handlers->rmnod_h)( &loc ); rtems_filesystem_freenode( &loc ); return result; } 61fb2: 2002 movel %d2,%d0 <== NOT EXECUTED 61fb4: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 61fb8: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED if ( result != 0 ) return -1; result = rtems_filesystem_evaluate_parent(RTEMS_LIBIO_PERMS_WRITE, &loc ); if (result != 0) { rtems_filesystem_freenode( &loc ); 61fbc: 588f addql #4,%sp <== NOT EXECUTED result = (*loc.handlers->rmnod_h)( &loc ); rtems_filesystem_freenode( &loc ); return result; } 61fbe: 4e5e unlk %fp <== NOT EXECUTED 61fc0: 4e75 rts <== NOT EXECUTED /* * Verify you can remove this node as a directory. */ if ( !loc.ops->node_type_h ){ rtems_filesystem_freenode( &loc ); 61fc2: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 61fc6: 4a88 tstl %a0 <== NOT EXECUTED 61fc8: 6706 beqs 61fd0 <== NOT EXECUTED /* * Use the filesystems rmnod to remove the node. */ if ( !loc.handlers->rmnod_h ){ rtems_filesystem_freenode( &loc ); 61fca: 2f03 movel %d3,%sp@- <== NOT EXECUTED 61fcc: 4e90 jsr %a0@ <== NOT EXECUTED 61fce: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 61fd0: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 61fd6: 74ff moveq #-1,%d2 <== NOT EXECUTED 61fd8: 2040 moveal %d0,%a0 <== NOT EXECUTED result = (*loc.handlers->rmnod_h)( &loc ); rtems_filesystem_freenode( &loc ); return result; } 61fda: 2002 movel %d2,%d0 <== NOT EXECUTED 61fdc: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 61fe0: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 61fe4: 4e5e unlk %fp <== NOT EXECUTED * Use the filesystems rmnod to remove the node. */ if ( !loc.handlers->rmnod_h ){ rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); 61fe6: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED result = (*loc.handlers->rmnod_h)( &loc ); rtems_filesystem_freenode( &loc ); return result; } 61fec: 4e75 rts <== NOT EXECUTED /* * Use the filesystems rmnod to remove the node. */ if ( !loc.handlers->rmnod_h ){ rtems_filesystem_freenode( &loc ); 61fee: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 61ff2: 4a88 tstl %a0 <== NOT EXECUTED 61ff4: 67da beqs 61fd0 <== NOT EXECUTED 61ff6: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 61ffa: 4a88 tstl %a0 <== NOT EXECUTED 61ffc: 67d2 beqs 61fd0 <== NOT EXECUTED 61ffe: 2f03 movel %d3,%sp@- <== NOT EXECUTED 62000: 4e90 jsr %a0@ <== NOT EXECUTED 62002: 588f addql #4,%sp <== NOT EXECUTED 62004: 60ca bras 61fd0 <== NOT EXECUTED ... 0004c9f0 : uint32_t rtems_assoc_local_by_remote( const rtems_assoc_t *ap, uint32_t remote_value ) { 4c9f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_remote(ap, remote_value); 4c9f4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4c9f8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4c9fc: 4eb9 0004 ca28 jsr 4ca28 <== NOT EXECUTED if (nap) 4ca02: 508f addql #8,%sp <== NOT EXECUTED uint32_t remote_value ) { const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_remote(ap, remote_value); 4ca04: 2040 moveal %d0,%a0 <== NOT EXECUTED if (nap) 4ca06: 4a80 tstl %d0 <== NOT EXECUTED 4ca08: 6708 beqs 4ca12 <== NOT EXECUTED return nap->local_value; 4ca0a: 2028 0004 movel %a0@(4),%d0 <== NOT EXECUTED return 0; } 4ca0e: 4e5e unlk %fp <== NOT EXECUTED 4ca10: 4e75 rts <== NOT EXECUTED 4ca12: 4e5e unlk %fp <== NOT EXECUTED ) { const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_remote(ap, remote_value); if (nap) 4ca14: 4280 clrl %d0 <== NOT EXECUTED return nap->local_value; return 0; } 4ca16: 4e75 rts 0004c9a4 : uint32_t rtems_assoc_local_by_remote_bitfield( const rtems_assoc_t *ap, uint32_t remote_value ) { 4c9a4: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 4c9a8: 48d7 047c moveml %d2-%d6/%a2,%sp@ <== NOT EXECUTED 4c9ac: 2c2e 0008 movel %fp@(8),%d6 <== NOT EXECUTED 4c9b0: 2a2e 000c movel %fp@(12),%d5 <== NOT EXECUTED 4c9b4: 7601 moveq #1,%d3 <== NOT EXECUTED 4c9b6: 4284 clrl %d4 <== NOT EXECUTED 4c9b8: 4282 clrl %d2 <== 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); 4c9ba: 45f9 0004 c9f0 lea 4c9f0 ,%a2 <== NOT EXECUTED { uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { if (b & remote_value) 4c9c0: 2003 movel %d3,%d0 <== NOT EXECUTED ) { uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { 4c9c2: 5282 addql #1,%d2 <== NOT EXECUTED if (b & remote_value) 4c9c4: c085 andl %d5,%d0 <== NOT EXECUTED 4c9c6: 6614 bnes 4c9dc <== NOT EXECUTED ) { uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { 4c9c8: d683 addl %d3,%d3 <== NOT EXECUTED 4c9ca: 7020 moveq #32,%d0 <== NOT EXECUTED 4c9cc: b082 cmpl %d2,%d0 <== NOT EXECUTED 4c9ce: 66f0 bnes 4c9c0 <== NOT EXECUTED if (b & remote_value) local_value |= rtems_assoc_local_by_remote(ap, b); } return local_value; } 4c9d0: 2004 movel %d4,%d0 <== NOT EXECUTED 4c9d2: 4cee 047c ffe8 moveml %fp@(-24),%d2-%d6/%a2 <== NOT EXECUTED 4c9d8: 4e5e unlk %fp <== NOT EXECUTED 4c9da: 4e75 rts <== 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); 4c9dc: 2f03 movel %d3,%sp@- <== NOT EXECUTED ) { uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { 4c9de: d683 addl %d3,%d3 <== NOT EXECUTED if (b & remote_value) local_value |= rtems_assoc_local_by_remote(ap, b); 4c9e0: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4c9e2: 4e92 jsr %a2@ <== NOT EXECUTED 4c9e4: 8880 orl %d0,%d4 <== NOT EXECUTED 4c9e6: 508f addql #8,%sp <== NOT EXECUTED ) { uint32_t b; uint32_t local_value = 0; for (b = 1; b; b <<= 1) { 4c9e8: 7020 moveq #32,%d0 <== NOT EXECUTED 4c9ea: b082 cmpl %d2,%d0 <== NOT EXECUTED 4c9ec: 66d2 bnes 4c9c0 <== NOT EXECUTED 4c9ee: 60e0 bras 4c9d0 <== NOT EXECUTED 0004ca18 : const char * rtems_assoc_name_bad( uint32_t bad_value ) { 4ca18: 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; } 4ca1c: 4e5e unlk %fp <== NOT EXECUTED 4ca1e: 203c 0005 85f8 movel #361976,%d0 <== NOT EXECUTED 4ca24: 4e75 rts <== NOT EXECUTED ... 0004a344 : const char *rtems_assoc_name_by_local( const rtems_assoc_t *ap, uint32_t local_value ) { 4a344: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a348: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a34a: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 4a34e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a350: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4a354: 4eb9 0004 a37c jsr 4a37c <== NOT EXECUTED if (nap) 4a35a: 508f addql #8,%sp <== NOT EXECUTED uint32_t local_value ) { const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 4a35c: 2040 moveal %d0,%a0 <== NOT EXECUTED if (nap) 4a35e: 4a80 tstl %d0 <== NOT EXECUTED 4a360: 670a beqs 4a36c <== NOT EXECUTED return nap->name; return rtems_assoc_name_bad(local_value); } 4a362: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4a366: 2010 movel %a0@,%d0 <== NOT EXECUTED 4a368: 4e5e unlk %fp <== NOT EXECUTED 4a36a: 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); 4a36c: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4a370: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4a374: 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); 4a376: 4ef9 0004 ca18 jmp 4ca18 <== NOT EXECUTED 0004a37c : const rtems_assoc_t *rtems_assoc_ptr_by_local( const rtems_assoc_t *ap, uint32_t local_value ) { 4a37c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a380: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a382: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4a386: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a388: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) 4a38c: 2012 movel %a2@,%d0 <== NOT EXECUTED 4a38e: 6744 beqs 4a3d4 <== NOT EXECUTED 4a390: 4879 0005 71bc pea 571bc <== NOT EXECUTED 4a396: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a398: 4eb9 0004 e818 jsr 4e818 <== NOT EXECUTED 4a39e: 508f addql #8,%sp <== NOT EXECUTED 4a3a0: 4a80 tstl %d0 <== NOT EXECUTED 4a3a2: 662c bnes 4a3d0 <== NOT EXECUTED default_ap = ap++; 4a3a4: 41ea 000c lea %a2@(12),%a0 <== NOT EXECUTED for ( ; ap->name; ap++) 4a3a8: 4a90 tstl %a0@ <== NOT EXECUTED 4a3aa: 6716 beqs 4a3c2 <== NOT EXECUTED 4a3ac: 200a movel %a2,%d0 <== NOT EXECUTED 4a3ae: 2448 moveal %a0,%a2 <== NOT EXECUTED if (ap->local_value == local_value) 4a3b0: b4aa 0004 cmpl %a2@(4),%d2 <== NOT EXECUTED 4a3b4: 670c beqs 4a3c2 <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) default_ap = ap++; for ( ; ap->name; ap++) 4a3b6: d5fc 0000 000c addal #12,%a2 <== NOT EXECUTED 4a3bc: 4a92 tstl %a2@ <== NOT EXECUTED 4a3be: 66f0 bnes 4a3b0 <== NOT EXECUTED 4a3c0: 2440 moveal %d0,%a2 <== NOT EXECUTED if (ap->local_value == local_value) return ap; return default_ap; } 4a3c2: 200a movel %a2,%d0 <== NOT EXECUTED 4a3c4: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4a3c8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4a3cc: 4e5e unlk %fp <== NOT EXECUTED 4a3ce: 4e75 rts <== NOT EXECUTED uint32_t local_value ) { const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) 4a3d0: 4280 clrl %d0 <== NOT EXECUTED 4a3d2: 60dc bras 4a3b0 <== NOT EXECUTED 4a3d4: 95ca subal %a2,%a2 <== NOT EXECUTED for ( ; ap->name; ap++) if (ap->local_value == local_value) return ap; return default_ap; } 4a3d6: 200a movel %a2,%d0 <== NOT EXECUTED 4a3d8: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4a3dc: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4a3e0: 4e5e unlk %fp <== NOT EXECUTED 4a3e2: 4e75 rts 0004ca28 : const rtems_assoc_t *rtems_assoc_ptr_by_remote( const rtems_assoc_t *ap, uint32_t remote_value ) { 4ca28: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ca2c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ca2e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4ca32: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ca34: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) 4ca38: 2012 movel %a2@,%d0 <== NOT EXECUTED 4ca3a: 6744 beqs 4ca80 <== NOT EXECUTED 4ca3c: 4879 0005 71bc pea 571bc <== NOT EXECUTED 4ca42: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ca44: 4eb9 0004 e818 jsr 4e818 <== NOT EXECUTED 4ca4a: 508f addql #8,%sp <== NOT EXECUTED 4ca4c: 4a80 tstl %d0 <== NOT EXECUTED 4ca4e: 662c bnes 4ca7c <== NOT EXECUTED default_ap = ap++; 4ca50: 41ea 000c lea %a2@(12),%a0 <== NOT EXECUTED for ( ; ap->name; ap++) 4ca54: 4a90 tstl %a0@ <== NOT EXECUTED 4ca56: 6716 beqs 4ca6e <== NOT EXECUTED 4ca58: 200a movel %a2,%d0 <== NOT EXECUTED 4ca5a: 2448 moveal %a0,%a2 <== NOT EXECUTED if (ap->remote_value == remote_value) 4ca5c: b4aa 0008 cmpl %a2@(8),%d2 <== NOT EXECUTED 4ca60: 670c beqs 4ca6e <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) default_ap = ap++; for ( ; ap->name; ap++) 4ca62: d5fc 0000 000c addal #12,%a2 <== NOT EXECUTED 4ca68: 4a92 tstl %a2@ <== NOT EXECUTED 4ca6a: 66f0 bnes 4ca5c <== NOT EXECUTED 4ca6c: 2440 moveal %d0,%a2 <== NOT EXECUTED if (ap->remote_value == remote_value) return ap; return default_ap; } 4ca6e: 200a movel %a2,%d0 <== NOT EXECUTED 4ca70: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4ca74: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4ca78: 4e5e unlk %fp <== NOT EXECUTED 4ca7a: 4e75 rts <== NOT EXECUTED uint32_t remote_value ) { const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) 4ca7c: 4280 clrl %d0 <== NOT EXECUTED 4ca7e: 60dc bras 4ca5c <== NOT EXECUTED 4ca80: 95ca subal %a2,%a2 <== NOT EXECUTED for ( ; ap->name; ap++) if (ap->remote_value == remote_value) return ap; return default_ap; } 4ca82: 200a movel %a2,%d0 <== NOT EXECUTED 4ca84: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4ca88: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4ca8c: 4e5e unlk %fp <== NOT EXECUTED 4ca8e: 4e75 rts 0004ca90 : uint32_t rtems_assoc_remote_by_local( const rtems_assoc_t *ap, uint32_t local_value ) { 4ca90: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 4ca94: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4ca98: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ca9c: 4eb9 0004 a37c jsr 4a37c <== NOT EXECUTED if (nap) 4caa2: 508f addql #8,%sp <== NOT EXECUTED uint32_t local_value ) { const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 4caa4: 2040 moveal %d0,%a0 <== NOT EXECUTED if (nap) 4caa6: 4a80 tstl %d0 <== NOT EXECUTED 4caa8: 6708 beqs 4cab2 <== NOT EXECUTED return nap->remote_value; 4caaa: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED return 0; } 4caae: 4e5e unlk %fp <== NOT EXECUTED 4cab0: 4e75 rts <== NOT EXECUTED 4cab2: 4e5e unlk %fp <== NOT EXECUTED ) { const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); if (nap) 4cab4: 4280 clrl %d0 <== NOT EXECUTED return nap->remote_value; return 0; } 4cab6: 4e75 rts 00045fb0 : rtems_name name, rtems_attribute attribute_set, uint32_t maximum_waiters, rtems_id *id ) { 45fb0: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 45fb4: 2f0a movel %a2,%sp@- <== NOT EXECUTED Barrier_Control *the_barrier; CORE_barrier_Attributes the_attributes; if ( !rtems_is_name_valid( name ) ) 45fb6: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 45fba: 6700 0096 beqw 46052 <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 45fbe: 4aae 0014 tstl %fp@(20) <== NOT EXECUTED 45fc2: 6700 00e4 beqw 460a8 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; /* Initialize core barrier attributes */ if ( _Attributes_Is_barrier_automatic( attribute_set ) ) { 45fc6: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 45fca: 0800 0004 btst #4,%d0 <== NOT EXECUTED 45fce: 6700 008c beqw 4605c <== NOT EXECUTED the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE; if ( maximum_waiters == 0 ) 45fd2: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 45fd6: 6700 00c6 beqw 4609e <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 45fda: 2039 0005 c0b4 movel 5c0b4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; } else the_attributes.discipline = CORE_BARRIER_MANUAL_RELEASE; the_attributes.maximum_count = maximum_waiters; 45fe0: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 45fe4: 5280 addql #1,%d0 <== 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; 45fe6: 42ae fff8 clrl %fp@(-8) <== NOT EXECUTED if ( maximum_waiters == 0 ) return RTEMS_INVALID_NUMBER; } else the_attributes.discipline = CORE_BARRIER_MANUAL_RELEASE; the_attributes.maximum_count = maximum_waiters; 45fea: 2d48 fffc movel %a0,%fp@(-4) <== NOT EXECUTED 45fee: 23c0 0005 c0b4 movel %d0,5c0b4 <_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 ); 45ff4: 4879 0005 bfac pea 5bfac <_Barrier_Information> <== NOT EXECUTED 45ffa: 4eb9 0004 80cc jsr 480cc <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_barrier = _Barrier_Allocate(); if ( !the_barrier ) { 46000: 588f addql #4,%sp <== NOT EXECUTED 46002: 2440 moveal %d0,%a2 <== NOT EXECUTED 46004: 4a80 tstl %d0 <== NOT EXECUTED 46006: 6700 0086 beqw 4608e <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } the_barrier->attribute_set = attribute_set; 4600a: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4600e: 2540 0010 movel %d0,%a2@(16) <== NOT EXECUTED _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 46012: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 46016: 486a 0014 pea %a2@(20) <== NOT EXECUTED 4601a: 4eb9 0004 77c4 jsr 477c4 <_CORE_barrier_Initialize> <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 46020: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED &_Barrier_Information, &the_barrier->Object, (Objects_Name) name ); *id = the_barrier->Object.id; 46024: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 46028: 2541 000c movel %d1,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4602c: 4280 clrl %d0 <== NOT EXECUTED 4602e: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 46032: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED 46036: 2079 0005 bfc6 moveal 5bfc6 <_Barrier_Information+0x1a>,%a0 <== NOT EXECUTED 4603c: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); 46040: 4eb9 0004 8e7c jsr 48e7c <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 46046: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED (Objects_Name) name ); *id = the_barrier->Object.id; _Thread_Enable_dispatch(); 4604a: 508f addql #8,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4604c: 4e5e unlk %fp <== NOT EXECUTED (Objects_Name) name ); *id = the_barrier->Object.id; _Thread_Enable_dispatch(); 4604e: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 46050: 4e75 rts <== NOT EXECUTED 46052: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 46056: 4e5e unlk %fp <== NOT EXECUTED ) { Barrier_Control *the_barrier; CORE_barrier_Attributes the_attributes; if ( !rtems_is_name_valid( name ) ) 46058: 7003 moveq #3,%d0 <== NOT EXECUTED *id = the_barrier->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 4605a: 4e75 rts <== NOT EXECUTED 4605c: 2039 0005 c0b4 movel 5c0b4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE; if ( maximum_waiters == 0 ) return RTEMS_INVALID_NUMBER; } else the_attributes.discipline = CORE_BARRIER_MANUAL_RELEASE; the_attributes.maximum_count = maximum_waiters; 46062: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED if ( _Attributes_Is_barrier_automatic( attribute_set ) ) { the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE; if ( maximum_waiters == 0 ) return RTEMS_INVALID_NUMBER; } else the_attributes.discipline = CORE_BARRIER_MANUAL_RELEASE; 46066: 7201 moveq #1,%d1 <== NOT EXECUTED 46068: 5280 addql #1,%d0 <== NOT EXECUTED 4606a: 2d41 fff8 movel %d1,%fp@(-8) <== NOT EXECUTED the_attributes.maximum_count = maximum_waiters; 4606e: 2d48 fffc movel %a0,%fp@(-4) <== NOT EXECUTED 46072: 23c0 0005 c0b4 movel %d0,5c0b4 <_Thread_Dispatch_disable_level> <== NOT EXECUTED 46078: 4879 0005 bfac pea 5bfac <_Barrier_Information> <== NOT EXECUTED 4607e: 4eb9 0004 80cc jsr 480cc <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_barrier = _Barrier_Allocate(); if ( !the_barrier ) { 46084: 588f addql #4,%sp <== NOT EXECUTED 46086: 2440 moveal %d0,%a2 <== NOT EXECUTED 46088: 4a80 tstl %d0 <== NOT EXECUTED 4608a: 6600 ff7e bnew 4600a <== NOT EXECUTED _Thread_Enable_dispatch(); 4608e: 4eb9 0004 8e7c jsr 48e7c <_Thread_Enable_dispatch> <== NOT EXECUTED *id = the_barrier->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 46094: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 46098: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_barrier = _Barrier_Allocate(); if ( !the_barrier ) { _Thread_Enable_dispatch(); 4609a: 7005 moveq #5,%d0 <== NOT EXECUTED *id = the_barrier->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 4609c: 4e75 rts <== NOT EXECUTED 4609e: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 460a2: 4e5e unlk %fp <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; /* Initialize core barrier attributes */ if ( _Attributes_Is_barrier_automatic( attribute_set ) ) { the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE; if ( maximum_waiters == 0 ) 460a4: 700a moveq #10,%d0 <== NOT EXECUTED *id = the_barrier->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 460a6: 4e75 rts <== NOT EXECUTED 460a8: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 460ac: 4e5e unlk %fp <== NOT EXECUTED CORE_barrier_Attributes the_attributes; if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; if ( !id ) 460ae: 7009 moveq #9,%d0 <== NOT EXECUTED *id = the_barrier->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 460b0: 4e75 rts <== NOT EXECUTED ... 000460b4 : */ rtems_status_code rtems_barrier_delete( rtems_id id ) { 460b4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 460b8: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Get ( Objects_Id id, Objects_Locations *location ) { return (Barrier_Control *) 460ba: 486e fffc pea %fp@(-4) <== NOT EXECUTED 460be: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 460c2: 4879 0005 bfac pea 5bfac <_Barrier_Information> <== NOT EXECUTED 460c8: 4eb9 0004 85f8 jsr 485f8 <_Objects_Get> <== NOT EXECUTED Barrier_Control *the_barrier; Objects_Locations location; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 460ce: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 460d4: 2440 moveal %d0,%a2 <== NOT EXECUTED 460d6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 460da: 6642 bnes 4611e <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_barrier_Flush( 460dc: 4878 0002 pea 2 <== NOT EXECUTED 460e0: 42a7 clrl %sp@- <== NOT EXECUTED 460e2: 486a 0014 pea %a2@(20) <== NOT EXECUTED 460e6: 4eb9 0004 9660 jsr 49660 <_Thread_queue_Flush> <== NOT EXECUTED &the_barrier->Barrier, NULL, CORE_BARRIER_WAS_DELETED ); _Objects_Close( &_Barrier_Information, &the_barrier->Object ); 460ec: 2f0a movel %a2,%sp@- <== NOT EXECUTED 460ee: 4879 0005 bfac pea 5bfac <_Barrier_Information> <== NOT EXECUTED 460f4: 4eb9 0004 8168 jsr 48168 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Barrier_Free ( Barrier_Control *the_barrier ) { _Objects_Free( &_Barrier_Information, &the_barrier->Object ); 460fa: 2f0a movel %a2,%sp@- <== NOT EXECUTED 460fc: 4879 0005 bfac pea 5bfac <_Barrier_Information> <== NOT EXECUTED 46102: 4eb9 0004 848c jsr 4848c <_Objects_Free> <== NOT EXECUTED _Barrier_Free( the_barrier ); _Thread_Enable_dispatch(); 46108: 4eb9 0004 8e7c jsr 48e7c <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4610e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED _Objects_Close( &_Barrier_Information, &the_barrier->Object ); _Barrier_Free( the_barrier ); _Thread_Enable_dispatch(); 46112: dffc 0000 001c addal #28,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46118: 4e5e unlk %fp <== NOT EXECUTED _Objects_Close( &_Barrier_Information, &the_barrier->Object ); _Barrier_Free( the_barrier ); _Thread_Enable_dispatch(); 4611a: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4611c: 4e75 rts <== NOT EXECUTED 4611e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46122: 4e5e unlk %fp <== NOT EXECUTED { Barrier_Control *the_barrier; Objects_Locations location; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 46124: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46126: 4e75 rts 00046128 : rtems_status_code rtems_barrier_ident( rtems_name name, rtems_id *id ) { 46128: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 4612c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 46130: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 46136: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4613a: 4879 0005 bfac pea 5bfac <_Barrier_Information> <== NOT EXECUTED 46140: 4eb9 0004 8790 jsr 48790 <_Objects_Name_to_id_u32> <== NOT EXECUTED 46146: 41f9 0005 9310 lea 59310 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 4614c: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 46150: 4e5e unlk %fp <== NOT EXECUTED 46152: 4e75 rts 00046154 : rtems_status_code rtems_barrier_release( rtems_id id, uint32_t *released ) { 46154: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 46158: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4615a: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Barrier_Control *the_barrier; Objects_Locations location; if ( !released ) 4615e: 4a8a tstl %a2 <== NOT EXECUTED 46160: 6754 beqs 461b6 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Get ( Objects_Id id, Objects_Locations *location ) { return (Barrier_Control *) 46162: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46166: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4616a: 4879 0005 bfac pea 5bfac <_Barrier_Information> <== NOT EXECUTED 46170: 4eb9 0004 85f8 jsr 485f8 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 46176: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4617c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4617e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46182: 6628 bnes 461ac <== NOT EXECUTED case OBJECTS_LOCAL: *released = _CORE_barrier_Release( &the_barrier->Barrier, id, NULL ); 46184: 42a7 clrl %sp@- <== NOT EXECUTED 46186: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4618a: 4868 0014 pea %a0@(20) <== NOT EXECUTED 4618e: 4eb9 0004 7800 jsr 47800 <_CORE_barrier_Release> <== NOT EXECUTED 46194: 2480 movel %d0,%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 46196: 4eb9 0004 8e7c jsr 48e7c <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4619c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED the_barrier = _Barrier_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: *released = _CORE_barrier_Release( &the_barrier->Barrier, id, NULL ); _Thread_Enable_dispatch(); 461a0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 461a6: 4e5e unlk %fp <== NOT EXECUTED the_barrier = _Barrier_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: *released = _CORE_barrier_Release( &the_barrier->Barrier, id, NULL ); _Thread_Enable_dispatch(); 461a8: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 461aa: 4e75 rts <== NOT EXECUTED 461ac: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 461b0: 4e5e unlk %fp <== NOT EXECUTED if ( !released ) return RTEMS_INVALID_ADDRESS; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 461b2: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 461b4: 4e75 rts <== NOT EXECUTED 461b6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 461ba: 4e5e unlk %fp <== NOT EXECUTED ) { Barrier_Control *the_barrier; Objects_Locations location; if ( !released ) 461bc: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 461be: 4e75 rts 000461c0 : rtems_status_code rtems_barrier_wait( rtems_id id, rtems_interval timeout ) { 461c0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 461c4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 461c6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 461ca: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 461ce: 2f02 movel %d2,%sp@- <== NOT EXECUTED 461d0: 4879 0005 bfac pea 5bfac <_Barrier_Information> <== NOT EXECUTED 461d6: 4eb9 0004 85f8 jsr 485f8 <_Objects_Get> <== NOT EXECUTED Barrier_Control *the_barrier; Objects_Locations location; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 461dc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 461e2: 2040 moveal %d0,%a0 <== NOT EXECUTED 461e4: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 461e8: 663a bnes 46224 <== NOT EXECUTED case OBJECTS_LOCAL: _CORE_barrier_Wait( 461ea: 42a7 clrl %sp@- <== NOT EXECUTED 461ec: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 461f0: 4878 0001 pea 1 <== NOT EXECUTED 461f4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 461f6: 4868 0014 pea %a0@(20) <== NOT EXECUTED 461fa: 4eb9 0004 783c jsr 4783c <_CORE_barrier_Wait> <== NOT EXECUTED id, TRUE, timeout, NULL ); _Thread_Enable_dispatch(); 46200: 4eb9 0004 8e7c jsr 48e7c <_Thread_Enable_dispatch> <== NOT EXECUTED return _Barrier_Translate_core_barrier_return_code( 46206: 2079 0005 c172 moveal 5c172 <_Thread_Executing>,%a0 <== NOT EXECUTED 4620c: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 46210: 4eb9 0004 c764 jsr 4c764 <_Barrier_Translate_core_barrier_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46216: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED TRUE, timeout, NULL ); _Thread_Enable_dispatch(); return _Barrier_Translate_core_barrier_return_code( 4621a: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46220: 4e5e unlk %fp <== NOT EXECUTED 46222: 4e75 rts <== NOT EXECUTED 46224: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46228: 4e5e unlk %fp <== NOT EXECUTED { Barrier_Control *the_barrier; Objects_Locations location; the_barrier = _Barrier_Get( id, &location ); switch ( location ) { 4622a: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4622c: 4e75 rts <== NOT EXECUTED ... 000470cc : uint32_t api, uint32_t class, uint32_t node, uint32_t index ) { 470cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 470d0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 470d2: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 470d6: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 470da: 761b moveq #27,%d3 <== NOT EXECUTED 470dc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 470de: e7a8 lsll %d3,%d0 <== NOT EXECUTED 470e0: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED 470e4: 163c 0018 moveb #24,%d3 <== NOT EXECUTED 470e8: e7a9 lsll %d3,%d1 <== NOT EXECUTED 470ea: 8081 orl %d1,%d0 <== NOT EXECUTED 470ec: 80ae 0014 orl %fp@(20),%d0 <== NOT EXECUTED 470f0: 4842 swap %d2 <== NOT EXECUTED 470f2: 4242 clrw %d2 <== NOT EXECUTED return _Objects_Build_id( api, class, node, index ); } 470f4: 8082 orl %d2,%d0 <== NOT EXECUTED 470f6: 241f movel %sp@+,%d2 <== NOT EXECUTED 470f8: 261f movel %sp@+,%d3 <== NOT EXECUTED 470fa: 4e5e unlk %fp <== NOT EXECUTED 470fc: 4e75 rts <== NOT EXECUTED ... 00047100 : char C1, char C2, char C3, char C4 ) { 47100: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47104: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47106: 142e 000b moveb %fp@(11),%d2 <== NOT EXECUTED 4710a: 7218 moveq #24,%d1 <== NOT EXECUTED 4710c: 102e 000f moveb %fp@(15),%d0 <== NOT EXECUTED 47110: 49c2 extbl %d2 <== NOT EXECUTED 47112: e3aa lsll %d1,%d2 <== NOT EXECUTED 47114: 49c0 extbl %d0 <== NOT EXECUTED 47116: 122e 0013 moveb %fp@(19),%d1 <== NOT EXECUTED 4711a: 4840 swap %d0 <== NOT EXECUTED 4711c: 4240 clrw %d0 <== NOT EXECUTED 4711e: 8082 orl %d2,%d0 <== NOT EXECUTED 47120: 49c1 extbl %d1 <== NOT EXECUTED 47122: 142e 0017 moveb %fp@(23),%d2 <== NOT EXECUTED 47126: e189 lsll #8,%d1 <== NOT EXECUTED 47128: 49c2 extbl %d2 <== NOT EXECUTED 4712a: 8081 orl %d1,%d0 <== NOT EXECUTED return _Objects_Build_name( C1, C2, C3, C4 ); } 4712c: 8082 orl %d2,%d0 <== NOT EXECUTED 4712e: 241f movel %sp@+,%d2 <== NOT EXECUTED 47130: 4e5e unlk %fp <== NOT EXECUTED 47132: 4e75 rts 00045274 : rtems_status_code rtems_clock_get( rtems_clock_get_options option, void *time_buffer ) { 45274: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45278: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4527a: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 4527e: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED if ( !time_buffer ) 45282: 4a8a tstl %a2 <== NOT EXECUTED 45284: 6778 beqs 452fe <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; switch ( option ) { 45286: 7204 moveq #4,%d1 <== NOT EXECUTED 45288: b280 cmpl %d0,%d1 <== NOT EXECUTED 4528a: 640a bccs 45296 <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 4528c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45290: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !time_buffer ) return RTEMS_INVALID_ADDRESS; switch ( option ) { 45292: 700a moveq #10,%d0 <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 45294: 4e75 rts <== NOT EXECUTED ) { if ( !time_buffer ) return RTEMS_INVALID_ADDRESS; switch ( option ) { 45296: 303b 0a08 movew %pc@(452a0 ,%d0:l:2),%d0 <== NOT EXECUTED 4529a: 48c0 extl %d0 <== NOT EXECUTED 4529c: 4efb 0802 jmp %pc@(452a0 ,%d0:l) <== NOT EXECUTED 452a0: 004e 0116 <== NOT EXECUTED 452a2: 003e 076 <== NOT EXECUTED 452a4: 002c 054 <== NOT EXECUTED 452a6: 001a 032 <== NOT EXECUTED 452a8: 000a 012 <== 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 ); 452aa: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 452ae: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 452b2: 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 ); 452b4: 4ef9 0004 5424 jmp 45424 <== 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(); 452ba: 4eb9 0004 5334 jsr 45334 <== NOT EXECUTED 452c0: 2480 movel %d0,%a2@ <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 452c2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 452c6: 4e5e unlk %fp <== 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(); 452c8: 4280 clrl %d0 <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 452ca: 4e75 rts <== NOT EXECUTED return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer); case RTEMS_CLOCK_GET_TICKS_SINCE_BOOT: { rtems_interval *interval = (rtems_interval *)time_buffer; *interval = rtems_clock_get_ticks_since_boot(); 452cc: 4eb9 0004 534c jsr 4534c <== NOT EXECUTED 452d2: 2480 movel %d0,%a2@ <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 452d4: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 452d8: 4e5e unlk %fp <== NOT EXECUTED return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer); case RTEMS_CLOCK_GET_TICKS_SINCE_BOOT: { rtems_interval *interval = (rtems_interval *)time_buffer; *interval = rtems_clock_get_ticks_since_boot(); 452da: 4280 clrl %d0 <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 452dc: 4e75 rts <== 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); 452de: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 452e2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 452e6: 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); 452e8: 4ef9 0004 5308 jmp 45308 <== 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 ); 452ee: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 452f2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 452f6: 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 ); 452f8: 4ef9 0004 535c jmp 4535c <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 452fe: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45302: 4e5e unlk %fp <== NOT EXECUTED rtems_status_code rtems_clock_get( rtems_clock_get_options option, void *time_buffer ) { if ( !time_buffer ) 45304: 7009 moveq #9,%d0 <== NOT EXECUTED break; } return RTEMS_INVALID_NUMBER; } 45306: 4e75 rts 00045308 : #include rtems_status_code rtems_clock_get_seconds_since_epoch( rtems_interval *the_interval ) { 45308: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4530c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !the_interval ) 45310: 4a88 tstl %a0 <== NOT EXECUTED 45312: 671a beqs 4532e <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 45314: 4a39 0005 9c90 tstb 59c90 <_TOD_Is_set> <== NOT EXECUTED 4531a: 670c beqs 45328 <== NOT EXECUTED return RTEMS_NOT_DEFINED; *the_interval = _TOD_Seconds_since_epoch; 4531c: 20b9 0005 9d0e movel 59d0e <_TOD_Now>,%a0@ <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45322: 4e5e unlk %fp <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) return RTEMS_NOT_DEFINED; *the_interval = _TOD_Seconds_since_epoch; 45324: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45326: 4e75 rts <== NOT EXECUTED 45328: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !the_interval ) return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 4532a: 700b moveq #11,%d0 <== NOT EXECUTED return RTEMS_NOT_DEFINED; *the_interval = _TOD_Seconds_since_epoch; return RTEMS_SUCCESSFUL; } 4532c: 4e75 rts <== NOT EXECUTED 4532e: 4e5e unlk %fp <== NOT EXECUTED rtems_status_code rtems_clock_get_seconds_since_epoch( rtems_interval *the_interval ) { if ( !the_interval ) 45330: 7009 moveq #9,%d0 <== NOT EXECUTED if ( !_TOD_Is_set ) return RTEMS_NOT_DEFINED; *the_interval = _TOD_Seconds_since_epoch; return RTEMS_SUCCESSFUL; } 45332: 4e75 rts 00045334 : #include #include #include rtems_interval rtems_clock_get_ticks_per_second(void) { 45334: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return TOD_MICROSECONDS_PER_SECOND / _TOD_Microseconds_per_tick; } 45338: 41f9 0005 9e0a lea 59e0a <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 4533e: 4e5e unlk %fp <== NOT EXECUTED 45340: 203c 000f 4240 movel #1000000,%d0 <== NOT EXECUTED 45346: 4c50 0000 remul %a0@,%d0,%d0 <== NOT EXECUTED 4534a: 4e75 rts 0004534c : #include #include #include rtems_interval rtems_clock_get_ticks_since_boot(void) { 4534c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Watchdog_Ticks_since_boot; 45350: 2039 0005 9dc4 movel 59dc4 <_Watchdog_Ticks_since_boot>,%d0 <== NOT EXECUTED } 45356: 4e5e unlk %fp <== NOT EXECUTED 45358: 4e75 rts <== NOT EXECUTED ... 0004535c : #include rtems_status_code rtems_clock_get_tod( rtems_time_of_day *time_buffer ) { 4535c: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 45360: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45362: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 45366: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_time_of_day *tmbuf = time_buffer; struct tm time; struct timeval now; if ( !time_buffer ) 45368: 4a8a tstl %a2 <== NOT EXECUTED 4536a: 6700 00aa beqw 45416 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 4536e: 4a39 0005 9c90 tstb 59c90 <_TOD_Is_set> <== NOT EXECUTED 45374: 660e bnes 45384 <== NOT EXECUTED tmbuf->minute = time.tm_min; tmbuf->second = time.tm_sec; tmbuf->ticks = now.tv_usec / _TOD_Microseconds_per_tick; return RTEMS_SUCCESSFUL; } 45376: 242e ffc4 movel %fp@(-60),%d2 <== NOT EXECUTED 4537a: 246e ffc8 moveal %fp@(-56),%a2 <== NOT EXECUTED 4537e: 4e5e unlk %fp <== NOT EXECUTED struct timeval now; if ( !time_buffer ) return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 45380: 700b moveq #11,%d0 <== NOT EXECUTED tmbuf->minute = time.tm_min; tmbuf->second = time.tm_sec; tmbuf->ticks = now.tv_usec / _TOD_Microseconds_per_tick; return RTEMS_SUCCESSFUL; } 45382: 4e75 rts <== NOT EXECUTED ) { ISR_Level level; struct timespec now; _ISR_Disable(level); 45384: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4538a: 40c2 movew %sr,%d2 <== NOT EXECUTED 4538c: 8082 orl %d2,%d0 <== NOT EXECUTED 4538e: 46c0 movew %d0,%sr <== NOT EXECUTED _TOD_Get( &now ); 45390: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 45394: 4eb9 0004 6c80 jsr 46c80 <_TOD_Get> <== NOT EXECUTED _ISR_Enable(level); 4539a: 46c2 movew %d2,%sr <== NOT EXECUTED /* Obtain the current time */ _TOD_Get_timeval( &now ); /* Split it into a closer format */ gmtime_r( &now.tv_sec, &time ); 4539c: 486e ffcc pea %fp@(-52) <== NOT EXECUTED time->tv_sec = now.tv_sec; time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 453a0: 222e fff4 movel %fp@(-12),%d1 <== NOT EXECUTED 453a4: 243c 0000 03e8 movel #1000,%d2 <== NOT EXECUTED 453aa: 4c42 1001 remul %d2,%d1,%d1 <== NOT EXECUTED _ISR_Disable(level); _TOD_Get( &now ); _ISR_Enable(level); time->tv_sec = now.tv_sec; 453ae: 2d6e fff0 fff8 movel %fp@(-16),%fp@(-8) <== NOT EXECUTED time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 453b4: 2d41 fffc movel %d1,%fp@(-4) <== NOT EXECUTED 453b8: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 453bc: 4eb9 0004 db5c jsr 4db5c <== 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; 453c2: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 453c6: 41f9 0005 9e0a lea 59e0a <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 453cc: 4c50 1001 remul %a0@,%d1,%d1 <== NOT EXECUTED 453d0: 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; 453d4: 222e ffe0 movel %fp@(-32),%d1 <== NOT EXECUTED tmbuf->month = time.tm_mon + 1; 453d8: 242e ffdc movel %fp@(-36),%d2 <== NOT EXECUTED tmbuf->day = time.tm_mday; 453dc: 256e ffd8 0008 movel %fp@(-40),%a2@(8) <== 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; 453e2: 5282 addql #1,%d2 <== NOT EXECUTED tmbuf->day = time.tm_mday; tmbuf->hour = time.tm_hour; 453e4: 256e ffd4 000c movel %fp@(-44),%a2@(12) <== 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; 453ea: 0681 0000 076c addil #1900,%d1 <== 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; 453f0: 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; tmbuf->month = time.tm_mon + 1; 453f2: 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; } 453f6: 242e ffc4 movel %fp@(-60),%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; 453fa: 2481 movel %d1,%a2@ <== 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; 453fc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* Now adjust it to the RTEMS format */ tmbuf->year = time.tm_year + 1900; tmbuf->month = time.tm_mon + 1; tmbuf->day = time.tm_mday; tmbuf->hour = time.tm_hour; tmbuf->minute = time.tm_min; 45402: 256e ffd0 0010 movel %fp@(-48),%a2@(16) <== NOT EXECUTED tmbuf->second = time.tm_sec; 45408: 256e ffcc 0014 movel %fp@(-52),%a2@(20) <== NOT EXECUTED tmbuf->ticks = now.tv_usec / _TOD_Microseconds_per_tick; return RTEMS_SUCCESSFUL; } 4540e: 246e ffc8 moveal %fp@(-56),%a2 <== NOT EXECUTED 45412: 4e5e unlk %fp <== NOT EXECUTED 45414: 4e75 rts <== NOT EXECUTED 45416: 242e ffc4 movel %fp@(-60),%d2 <== NOT EXECUTED 4541a: 246e ffc8 moveal %fp@(-56),%a2 <== NOT EXECUTED 4541e: 4e5e unlk %fp <== NOT EXECUTED { rtems_time_of_day *tmbuf = time_buffer; struct tm time; struct timeval now; if ( !time_buffer ) 45420: 7009 moveq #9,%d0 <== NOT EXECUTED tmbuf->minute = time.tm_min; tmbuf->second = time.tm_sec; tmbuf->ticks = now.tv_usec / _TOD_Microseconds_per_tick; return RTEMS_SUCCESSFUL; } 45422: 4e75 rts 00045424 : #include rtems_status_code rtems_clock_get_tod_timeval( struct timeval *time ) { 45424: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 45428: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4542a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4542e: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !time ) 45430: 4a8a tstl %a2 <== NOT EXECUTED 45432: 6754 beqs 45488 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 45434: 4a39 0005 9c90 tstb 59c90 <_TOD_Is_set> <== NOT EXECUTED 4543a: 660e bnes 4544a <== NOT EXECUTED return RTEMS_NOT_DEFINED; _TOD_Get_timeval( time ); return RTEMS_SUCCESSFUL; } 4543c: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 45440: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 45444: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !time ) return RTEMS_INVALID_ADDRESS; if ( !_TOD_Is_set ) 45446: 700b moveq #11,%d0 <== NOT EXECUTED return RTEMS_NOT_DEFINED; _TOD_Get_timeval( time ); return RTEMS_SUCCESSFUL; } 45448: 4e75 rts <== NOT EXECUTED ) { ISR_Level level; struct timespec now; _ISR_Disable(level); 4544a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 45450: 40c2 movew %sr,%d2 <== NOT EXECUTED 45452: 8082 orl %d2,%d0 <== NOT EXECUTED 45454: 46c0 movew %d0,%sr <== NOT EXECUTED _TOD_Get( &now ); 45456: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4545a: 4eb9 0004 6c80 jsr 46c80 <_TOD_Get> <== NOT EXECUTED _ISR_Enable(level); 45460: 46c2 movew %d2,%sr <== NOT EXECUTED time->tv_sec = now.tv_sec; time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 45462: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 45466: 243c 0000 03e8 movel #1000,%d2 <== NOT EXECUTED 4546c: 4c42 1001 remul %d2,%d1,%d1 <== NOT EXECUTED 45470: 2541 0004 movel %d1,%a2@(4) <== NOT EXECUTED 45474: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED _ISR_Disable(level); _TOD_Get( &now ); _ISR_Enable(level); time->tv_sec = now.tv_sec; 45478: 24ae fff8 movel %fp@(-8),%a2@ <== NOT EXECUTED 4547c: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND; 45480: 588f addql #4,%sp <== NOT EXECUTED 45482: 4e5e unlk %fp <== NOT EXECUTED 45484: 4280 clrl %d0 <== NOT EXECUTED 45486: 4e75 rts <== NOT EXECUTED 45488: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 4548c: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 45490: 4e5e unlk %fp <== NOT EXECUTED rtems_status_code rtems_clock_get_tod_timeval( struct timeval *time ) { if ( !time ) 45492: 7009 moveq #9,%d0 <== NOT EXECUTED return RTEMS_NOT_DEFINED; _TOD_Get_timeval( time ); return RTEMS_SUCCESSFUL; } 45494: 4e75 rts <== NOT EXECUTED ... 0004564c : * error code - if unsuccessful */ rtems_status_code rtems_clock_get_uptime( struct timespec *uptime ) { 4564c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45650: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !uptime ) 45654: 6710 beqs 45666 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _TOD_Get_uptime( uptime ); 45656: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45658: 4eb9 0004 70b8 jsr 470b8 <_TOD_Get_uptime> <== NOT EXECUTED 4565e: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45660: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !uptime ) return RTEMS_INVALID_ADDRESS; _TOD_Get_uptime( uptime ); 45662: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45664: 4e75 rts <== NOT EXECUTED 45666: 4e5e unlk %fp <== NOT EXECUTED */ rtems_status_code rtems_clock_get_uptime( struct timespec *uptime ) { if ( !uptime ) 45668: 103c 0009 moveb #9,%d0 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _TOD_Get_uptime( uptime ); return RTEMS_SUCCESSFUL; } 4566c: 4e75 rts <== NOT EXECUTED ... 00046334 : */ rtems_status_code rtems_clock_set( rtems_time_of_day *time_buffer ) { 46334: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 46338: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4633c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED struct timespec newtime; if ( !time_buffer ) 46340: 4a8a tstl %a2 <== NOT EXECUTED 46342: 6772 beqs 463b6 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( _TOD_Validate( time_buffer ) ) { 46344: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46346: 4eb9 0004 6538 jsr 46538 <_TOD_Validate> <== NOT EXECUTED 4634c: 588f addql #4,%sp <== NOT EXECUTED 4634e: 4a00 tstb %d0 <== NOT EXECUTED 46350: 660c bnes 4635e <== NOT EXECUTED _TOD_Set( &newtime ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } return RTEMS_INVALID_CLOCK; } 46352: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 46358: 4e5e unlk %fp <== NOT EXECUTED struct timespec newtime; if ( !time_buffer ) return RTEMS_INVALID_ADDRESS; if ( _TOD_Validate( time_buffer ) ) { 4635a: 7014 moveq #20,%d0 <== NOT EXECUTED _TOD_Set( &newtime ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } return RTEMS_INVALID_CLOCK; } 4635c: 4e75 rts <== NOT EXECUTED if ( !time_buffer ) return RTEMS_INVALID_ADDRESS; if ( _TOD_Validate( time_buffer ) ) { newtime.tv_sec = _TOD_To_seconds( time_buffer ); 4635e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46360: 4eb9 0004 6404 jsr 46404 <_TOD_To_seconds> <== NOT EXECUTED newtime.tv_nsec = time_buffer->ticks * 46366: 242a 0018 movel %a2@(24),%d2 <== NOT EXECUTED 4636a: 41f9 0006 4432 lea 64432 <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED 46370: 4c10 2800 mulsl %a0@,%d2 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 46374: 2079 0006 42a4 moveal 642a4 <_Thread_Dispatch_disable_level>,%a0 <== NOT EXECUTED 4637a: 2602 movel %d2,%d3 <== NOT EXECUTED 4637c: 2202 movel %d2,%d1 <== NOT EXECUTED 4637e: e58b lsll #2,%d3 <== NOT EXECUTED 46380: ef89 lsll #7,%d1 <== NOT EXECUTED 46382: 9283 subl %d3,%d1 <== NOT EXECUTED 46384: d282 addl %d2,%d1 <== NOT EXECUTED 46386: 5288 addql #1,%a0 <== NOT EXECUTED 46388: e789 lsll #3,%d1 <== NOT EXECUTED 4638a: 2d41 fffc movel %d1,%fp@(-4) <== NOT EXECUTED 4638e: 23c8 0006 42a4 movel %a0,642a4 <_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 ); 46394: 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 ); 46398: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4639c: 4eb9 0004 8070 jsr 48070 <_TOD_Set> <== NOT EXECUTED _Thread_Enable_dispatch(); 463a2: 4eb9 0004 92e0 jsr 492e0 <_Thread_Enable_dispatch> <== NOT EXECUTED 463a8: 508f addql #8,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } return RTEMS_INVALID_CLOCK; } 463aa: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 463b0: 4e5e unlk %fp <== NOT EXECUTED newtime.tv_nsec = time_buffer->ticks * (_TOD_Microseconds_per_tick * TOD_NANOSECONDS_PER_MICROSECOND); _Thread_Disable_dispatch(); _TOD_Set( &newtime ); _Thread_Enable_dispatch(); 463b2: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } return RTEMS_INVALID_CLOCK; } 463b4: 4e75 rts <== NOT EXECUTED 463b6: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 463bc: 4e5e unlk %fp <== NOT EXECUTED rtems_time_of_day *time_buffer ) { struct timespec newtime; if ( !time_buffer ) 463be: 7009 moveq #9,%d0 <== NOT EXECUTED _TOD_Set( &newtime ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } return RTEMS_INVALID_CLOCK; } 463c0: 4e75 rts <== NOT EXECUTED ... 00045498 : * error code - if unsuccessful */ rtems_status_code rtems_clock_set_nanoseconds_extension( rtems_nanoseconds_extension_routine routine ) { 45498: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4549c: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED if ( !routine ) 454a0: 670c beqs 454ae <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _Watchdog_Nanoseconds_since_tick_handler = routine; return RTEMS_SUCCESSFUL; } 454a2: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !routine ) return RTEMS_INVALID_ADDRESS; _Watchdog_Nanoseconds_since_tick_handler = routine; 454a4: 4280 clrl %d0 <== NOT EXECUTED 454a6: 23c1 0005 9e12 movel %d1,59e12 <_Watchdog_Nanoseconds_since_tick_handler> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 454ac: 4e75 rts <== NOT EXECUTED 454ae: 4e5e unlk %fp <== NOT EXECUTED */ rtems_status_code rtems_clock_set_nanoseconds_extension( rtems_nanoseconds_extension_routine routine ) { if ( !routine ) 454b0: 7009 moveq #9,%d0 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _Watchdog_Nanoseconds_since_tick_handler = routine; return RTEMS_SUCCESSFUL; } 454b2: 4e75 rts 000454b4 : * * NOTE: This routine only works for leap-years through 2099. */ rtems_status_code rtems_clock_tick( void ) { 454b4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _TOD_Tickle_ticks(); 454b8: 4eb9 0004 6d18 jsr 46d18 <_TOD_Tickle_ticks> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_ticks( void ) { _Watchdog_Tickle( &_Watchdog_Ticks_chain ); 454be: 4879 0005 9d58 pea 59d58 <_Watchdog_Ticks_chain> <== NOT EXECUTED 454c4: 4eb9 0004 920c jsr 4920c <_Watchdog_Tickle> <== NOT EXECUTED _Watchdog_Tickle_ticks(); _Thread_Tickle_timeslice(); 454ca: 4eb9 0004 8be4 jsr 48be4 <_Thread_Tickle_timeslice> <== NOT EXECUTED if ( _Thread_Is_context_switch_necessary() && 454d0: 588f addql #4,%sp <== NOT EXECUTED * otherwise. */ RTEMS_INLINE_ROUTINE bool _Thread_Is_context_switch_necessary( void ) { return ( _Context_Switch_necessary ); 454d2: 1039 0005 9d4a moveb 59d4a <_Context_Switch_necessary>,%d0 <== NOT EXECUTED 454d8: 6708 beqs 454e2 <== NOT EXECUTED * otherwise. */ RTEMS_INLINE_ROUTINE bool _Thread_Is_dispatching_enabled( void ) { return ( _Thread_Dispatch_disable_level == 0 ); 454da: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 454e0: 6706 beqs 454e8 <== NOT EXECUTED _Thread_Is_dispatching_enabled() ) _Thread_Dispatch(); return RTEMS_SUCCESSFUL; } 454e2: 4e5e unlk %fp <== NOT EXECUTED 454e4: 4280 clrl %d0 <== NOT EXECUTED 454e6: 4e75 rts <== NOT EXECUTED _Thread_Tickle_timeslice(); if ( _Thread_Is_context_switch_necessary() && _Thread_Is_dispatching_enabled() ) _Thread_Dispatch(); 454e8: 4eb9 0004 7cac jsr 47cac <_Thread_Dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 454ee: 4e5e unlk %fp <== NOT EXECUTED 454f0: 4280 clrl %d0 <== NOT EXECUTED 454f2: 4e75 rts 00042ffc : (*print)( context, "Total Units = %" PRId32 "\n", total_units ); #endif } void rtems_cpu_usage_report( void ) { 42ffc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_cpu_usage_report_with_plugin( NULL, printk_plugin ); 43000: 4879 0004 4220 pea 44220 <== NOT EXECUTED 43006: 42a7 clrl %sp@- <== NOT EXECUTED 43008: 4eb9 0004 2e3c jsr 42e3c <== NOT EXECUTED 4300e: 508f addql #8,%sp <== NOT EXECUTED } 43010: 4e5e unlk %fp <== NOT EXECUTED 43012: 4e75 rts 00042e3c : void rtems_cpu_usage_report_with_plugin( void *context, rtems_printk_plugin_t print ) { 42e3c: 4e56 ffa0 linkw %fp,#-96 <== NOT EXECUTED 42e40: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 42e44: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 42e48: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED struct timespec uptime, total, ran; #else uint32_t total_units = 0; #endif if ( !print ) 42e4c: 4a8c tstl %a4 <== NOT EXECUTED 42e4e: 6700 0138 beqw 42f88 <== 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 ); 42e52: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 42e56: 4eb9 0004 7fd8 jsr 47fd8 <_TOD_Get_uptime> <== 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 ); 42e5c: 280e movel %fp,%d4 <== 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 ); 42e5e: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED if ( _Thread_Executing->Object.id == the_thread->Object.id ) { struct timespec used; _Timespec_Subtract( &_Thread_Time_of_last_context_switch, &uptime, &used ); _Timespec_Add_to( &ran, &used ); 42e62: 2e0e movel %fp,%d7 <== 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 ); 42e64: 486e fff0 pea %fp@(-16) <== NOT EXECUTED } } } #endif (*print)( context, "CPU Usage by thread\n" 42e68: 4bf9 0006 4260 lea 64260 <_Objects_Information_table+0x4>,%a5 <== 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 ); 42e6e: 4879 0006 4792 pea 64792 <== NOT EXECUTED 42e74: 4eb9 0004 a458 jsr 4a458 <_Timespec_Subtract> <== NOT EXECUTED } } } #endif (*print)( context, "CPU Usage by thread\n" 42e7a: 4879 0005 9150 pea 59150 <== 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 ); 42e80: 0684 ffff ffcb addil #-53,%d4 <== NOT EXECUTED if ( _Thread_Executing->Object.id == the_thread->Object.id ) { struct timespec used; _Timespec_Subtract( &_Thread_Time_of_last_context_switch, &uptime, &used ); _Timespec_Add_to( &ran, &used ); 42e86: 0687 ffff ffe0 addil #-32,%d7 <== NOT EXECUTED } } } #endif (*print)( context, "CPU Usage by thread\n" 42e8c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42e8e: 4e94 jsr %a4@ <== NOT EXECUTED 42e90: 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 ] ) 42e96: 2055 moveal %a5@,%a0 <== NOT EXECUTED 42e98: 4a88 tstl %a0 <== NOT EXECUTED 42e9a: 6700 00bc beqw 42f58 <== NOT EXECUTED continue; information = _Objects_Information_table[ api_index ][ 1 ]; 42e9e: 2668 0004 moveal %a0@(4),%a3 <== NOT EXECUTED if ( information ) { 42ea2: 4a8b tstl %a3 <== NOT EXECUTED 42ea4: 6700 00b2 beqw 42f58 <== NOT EXECUTED for ( i=1 ; i <= information->maximum ; i++ ) { 42ea8: 4a6b 000e tstw %a3@(14) <== NOT EXECUTED 42eac: 6700 00aa beqw 42f58 <== NOT EXECUTED 42eb0: 7401 moveq #1,%d2 <== 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 ); 42eb2: 2c3c 0004 69f4 movel #289268,%d6 <== 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 ]; 42eb8: 206b 001a moveal %a3@(26),%a0 <== NOT EXECUTED 42ebc: 2470 2c00 moveal %a0@(00000000,%d2:l:4),%a2 <== 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++ ) { 42ec0: 5282 addql #1,%d2 <== NOT EXECUTED the_thread = (Thread_Control *)information->local_table[ i ]; if ( !the_thread ) 42ec2: 4a8a tstl %a2 <== NOT EXECUTED 42ec4: 6700 0086 beqw 42f4c <== NOT EXECUTED continue; rtems_object_get_name( the_thread->Object.id, sizeof(name), name ); 42ec8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 42eca: 2046 moveal %d6,%a0 <== NOT EXECUTED 42ecc: 4878 000d pea d <== NOT EXECUTED 42ed0: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 42ed4: 4e90 jsr %a0@ <== NOT EXECUTED (*print)( 42ed6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 42ed8: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 42edc: 4879 0005 9195 pea 59195 <== NOT EXECUTED 42ee2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42ee4: 4e94 jsr %a4@ <== 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; 42ee6: 222a 0084 movel %a2@(132),%d1 <== NOT EXECUTED 42eea: 2d6a 0088 ffe4 movel %a2@(136),%fp@(-28) <== NOT EXECUTED if ( _Thread_Executing->Object.id == the_thread->Object.id ) { 42ef0: 2079 0006 4362 moveal 64362 <_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; 42ef6: 2d41 ffe0 movel %d1,%fp@(-32) <== NOT EXECUTED if ( _Thread_Executing->Object.id == the_thread->Object.id ) { 42efa: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 42efe: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 42f04: b5e8 0008 cmpal %a0@(8),%a2 <== NOT EXECUTED 42f08: 6700 0088 beqw 42f92 <== NOT EXECUTED _Timespec_Subtract( &_Thread_Time_of_last_context_switch, &uptime, &used ); _Timespec_Add_to( &ran, &used ); }; _Timespec_Divide( &ran, &total, &ival, &fval ); 42f0c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 42f10: 486e fffc pea %fp@(-4) <== NOT EXECUTED 42f14: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED 42f18: 2f07 movel %d7,%sp@- <== NOT EXECUTED 42f1a: 4eb9 0004 a318 jsr 4a318 <_Timespec_Divide> <== NOT EXECUTED /* * Print the information */ (*print)( context, 42f20: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 42f24: 202e ffe4 movel %fp@(-28),%d0 <== NOT EXECUTED 42f28: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 42f2c: 223c 0000 03e8 movel #1000,%d1 <== NOT EXECUTED 42f32: 4c41 0000 remul %d1,%d0,%d0 <== NOT EXECUTED 42f36: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42f38: 2f2e ffe0 movel %fp@(-32),%sp@- <== NOT EXECUTED 42f3c: 4879 0005 91a8 pea 591a8 <== NOT EXECUTED 42f42: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42f44: 4e94 jsr %a4@ <== NOT EXECUTED 42f46: 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++ ) { 42f4c: 4280 clrl %d0 <== NOT EXECUTED 42f4e: 302b 000e movew %a3@(14),%d0 <== NOT EXECUTED 42f52: b480 cmpl %d0,%d2 <== NOT EXECUTED 42f54: 6300 ff62 blsw 42eb8 <== NOT EXECUTED 42f58: 588d addql #4,%a5 <== NOT EXECUTED " ID NAME TICKS PERCENT\n" #endif ); for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; 42f5a: bbfc 0006 4270 cmpal #410224,%a5 <== NOT EXECUTED 42f60: 6600 ff34 bnew 42e96 <== NOT EXECUTED } } } #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS (*print)( context, "Time since last CPU Usage reset %" PRId32 42f64: 202e ffec movel %fp@(-20),%d0 <== NOT EXECUTED 42f68: 243c 0000 03e8 movel #1000,%d2 <== NOT EXECUTED 42f6e: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 42f72: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42f74: 2f2e ffe8 movel %fp@(-24),%sp@- <== NOT EXECUTED 42f78: 4879 0005 91c0 pea 591c0 <== NOT EXECUTED 42f7e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42f80: 4e94 jsr %a4@ <== NOT EXECUTED 42f82: 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 } 42f88: 4cee 3cfc ffa0 moveml %fp@(-96),%d2-%d7/%a2-%a5 <== NOT EXECUTED 42f8e: 4e5e unlk %fp <== NOT EXECUTED 42f90: 4e75 rts <== 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( 42f92: 486e ffd8 pea %fp@(-40) <== NOT EXECUTED 42f96: 486e fff0 pea %fp@(-16) <== NOT EXECUTED 42f9a: 4879 0006 436a pea 6436a <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 42fa0: 4eb9 0004 a458 jsr 4a458 <_Timespec_Subtract> <== NOT EXECUTED &_Thread_Time_of_last_context_switch, &uptime, &used ); _Timespec_Add_to( &ran, &used ); 42fa6: 486e ffd8 pea %fp@(-40) <== NOT EXECUTED 42faa: 2f07 movel %d7,%sp@- <== NOT EXECUTED 42fac: 4eb9 0004 a2cc jsr 4a2cc <_Timespec_Add_to> <== NOT EXECUTED 42fb2: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED }; _Timespec_Divide( &ran, &total, &ival, &fval ); 42fb8: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 42fbc: 486e fffc pea %fp@(-4) <== NOT EXECUTED 42fc0: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED 42fc4: 2f07 movel %d7,%sp@- <== NOT EXECUTED 42fc6: 4eb9 0004 a318 jsr 4a318 <_Timespec_Divide> <== NOT EXECUTED /* * Print the information */ (*print)( context, 42fcc: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 42fd0: 202e ffe4 movel %fp@(-28),%d0 <== NOT EXECUTED 42fd4: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 42fd8: 223c 0000 03e8 movel #1000,%d1 <== NOT EXECUTED 42fde: 4c41 0000 remul %d1,%d0,%d0 <== NOT EXECUTED 42fe2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42fe4: 2f2e ffe0 movel %fp@(-32),%sp@- <== NOT EXECUTED 42fe8: 4879 0005 91a8 pea 591a8 <== NOT EXECUTED 42fee: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42ff0: 4e94 jsr %a4@ <== NOT EXECUTED 42ff2: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED 42ff8: 6000 ff52 braw 42f4c <== NOT EXECUTED 00043028 : /* * rtems_cpu_usage_reset */ void rtems_cpu_usage_reset( void ) { 43028: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS _TOD_Get_uptime( &CPU_usage_Uptime_at_last_reset ); 4302c: 4879 0006 4792 pea 64792 <== NOT EXECUTED 43032: 4eb9 0004 7fd8 jsr 47fd8 <_TOD_Get_uptime> <== NOT EXECUTED _Thread_Time_of_last_context_switch = CPU_usage_Uptime_at_last_reset; 43038: 2039 0006 4792 movel 64792 ,%d0 <== NOT EXECUTED 4303e: 2239 0006 4796 movel 64796 ,%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); 43044: 487a ffce pea %pc@(43014 ) <== 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; 43048: 23c0 0006 436a movel %d0,6436a <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 4304e: 23c1 0006 436e movel %d1,6436e <_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); 43054: 4eb9 0004 8450 jsr 48450 <== NOT EXECUTED 4305a: 508f addql #8,%sp <== NOT EXECUTED } 4305c: 4e5e unlk %fp <== NOT EXECUTED 4305e: 4e75 rts 0004baf0 : */ void rtems_debug_disable ( rtems_debug_control to_be_disabled ) { 4baf0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Debug_Level &= ~to_be_disabled; 4baf4: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED } 4baf8: 4e5e unlk %fp <== NOT EXECUTED void rtems_debug_disable ( rtems_debug_control to_be_disabled ) { _Debug_Level &= ~to_be_disabled; 4bafa: 4680 notl %d0 <== NOT EXECUTED 4bafc: c1b9 0005 9d3e andl %d0,59d3e <_Debug_Level> <== NOT EXECUTED } 4bb02: 4e75 rts 0004bade : */ void rtems_debug_enable ( rtems_debug_control to_be_enabled ) { 4bade: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Debug_Level |= to_be_enabled; 4bae2: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED } 4bae6: 4e5e unlk %fp <== NOT EXECUTED void rtems_debug_enable ( rtems_debug_control to_be_enabled ) { _Debug_Level |= to_be_enabled; 4bae8: 81b9 0005 9d3e orl %d0,59d3e <_Debug_Level> <== NOT EXECUTED } 4baee: 4e75 rts 0004c606 : { 0, 0, 0 }, }; static int rtems_deviceio_errno(rtems_status_code code) { 4c606: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4c60a: 2f02 movel %d2,%sp@- <== NOT EXECUTED int rc; if ((rc = rtems_assoc_remote_by_local(errno_assoc, (uint32_t) code))) 4c60c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4c610: 4879 0005 74b0 pea 574b0 <== NOT EXECUTED 4c616: 4eb9 0004 ca90 jsr 4ca90 <== NOT EXECUTED 4c61c: 508f addql #8,%sp <== NOT EXECUTED 4c61e: 2400 movel %d0,%d2 <== NOT EXECUTED 4c620: 660a bnes 4c62c <== NOT EXECUTED { errno = rc; return -1; } return -1; } 4c622: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4c626: 4e5e unlk %fp <== NOT EXECUTED 4c628: 70ff moveq #-1,%d0 <== NOT EXECUTED 4c62a: 4e75 rts <== NOT EXECUTED { int rc; if ((rc = rtems_assoc_remote_by_local(errno_assoc, (uint32_t) code))) { errno = rc; 4c62c: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4c632: 2040 moveal %d0,%a0 <== NOT EXECUTED 4c634: 2082 movel %d2,%a0@ <== NOT EXECUTED return -1; } return -1; } 4c636: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4c63a: 4e5e unlk %fp <== NOT EXECUTED 4c63c: 70ff moveq #-1,%d0 <== NOT EXECUTED 4c63e: 4e75 rts 00042534 : int rtems_error( int error_flag, const char *printf_format, ... ) { 42534: 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); 42538: 486e 0010 pea %fp@(16) <== NOT EXECUTED 4253c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 42540: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42544: 4eba fdfe jsr %pc@(42344 ) <== NOT EXECUTED va_end(arglist); return chars_written; } 42548: 4e5e unlk %fp <== NOT EXECUTED 4254a: 4e75 rts 000454f4 : rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) { 454f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 454f8: 226e 0014 moveal %fp@(20),%a1 <== NOT EXECUTED RTEMS_API_Control *api; if ( !event_out ) 454fc: 4a89 tstl %a1 <== NOT EXECUTED 454fe: 6754 beqs 45554 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; 45500: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 45506: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED if ( _Event_sets_Is_empty( event_in ) ) { 4550a: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 4550e: 6608 bnes 45518 <== NOT EXECUTED *event_out = api->pending_events; 45510: 2290 movel %a0@,%a1@ <== NOT EXECUTED _Thread_Disable_dispatch(); _Event_Seize( event_in, option_set, ticks, event_out ); _Thread_Enable_dispatch(); return( _Thread_Executing->Wait.return_code ); } 45512: 4e5e unlk %fp <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; if ( _Event_sets_Is_empty( event_in ) ) { *event_out = api->pending_events; 45514: 4280 clrl %d0 <== NOT EXECUTED _Thread_Disable_dispatch(); _Event_Seize( event_in, option_set, ticks, event_out ); _Thread_Enable_dispatch(); return( _Thread_Executing->Wait.return_code ); } 45516: 4e75 rts <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 45518: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4551e: 5280 addql #1,%d0 <== NOT EXECUTED 45520: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED *event_out = api->pending_events; return RTEMS_SUCCESSFUL; } _Thread_Disable_dispatch(); _Event_Seize( event_in, option_set, ticks, event_out ); 45526: 2f09 movel %a1,%sp@- <== NOT EXECUTED 45528: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4552c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45530: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45534: 4eb9 0004 555c jsr 4555c <_Event_Seize> <== NOT EXECUTED _Thread_Enable_dispatch(); 4553a: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED return( _Thread_Executing->Wait.return_code ); 45540: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 45546: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4554c: 2028 0034 movel %a0@(52),%d0 <== NOT EXECUTED } 45550: 4e5e unlk %fp <== NOT EXECUTED 45552: 4e75 rts <== NOT EXECUTED 45554: 4e5e unlk %fp <== NOT EXECUTED rtems_event_set *event_out ) { RTEMS_API_Control *api; if ( !event_out ) 45556: 7009 moveq #9,%d0 <== NOT EXECUTED _Thread_Disable_dispatch(); _Event_Seize( event_in, option_set, ticks, event_out ); _Thread_Enable_dispatch(); return( _Thread_Executing->Wait.return_code ); } 45558: 4e75 rts <== NOT EXECUTED ... 000456a0 : rtems_status_code rtems_event_send( Objects_Id id, rtems_event_set event_in ) { 456a0: 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 ); 456a4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 456a8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 456ac: 4eb9 0004 7e30 jsr 47e30 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 456b2: 508f addql #8,%sp <== NOT EXECUTED { register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; the_thread = _Thread_Get( id, &location ); 456b4: 2240 moveal %d0,%a1 <== NOT EXECUTED switch ( location ) { 456b6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 456ba: 662e bnes 456ea <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; 456bc: 2069 010c moveal %a1@(268),%a0 <== NOT EXECUTED rtems_event_set *the_event_set ) { ISR_Level level; _ISR_Disable( level ); 456c0: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 456c6: 40c0 movew %sr,%d0 <== NOT EXECUTED 456c8: 8280 orl %d0,%d1 <== NOT EXECUTED 456ca: 46c1 movew %d1,%sr <== NOT EXECUTED *the_event_set |= the_new_events; 456cc: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 456d0: 8390 orl %d1,%a0@ <== NOT EXECUTED _ISR_Enable( level ); 456d2: 46c0 movew %d0,%sr <== NOT EXECUTED _Event_sets_Post( event_in, &api->pending_events ); _Event_Surrender( the_thread ); 456d4: 2f09 movel %a1,%sp@- <== NOT EXECUTED 456d6: 4eb9 0004 56f0 jsr 456f0 <_Event_Surrender> <== NOT EXECUTED _Thread_Enable_dispatch(); 456dc: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 456e2: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 456e4: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; _Event_sets_Post( event_in, &api->pending_events ); _Event_Surrender( the_thread ); _Thread_Enable_dispatch(); 456e6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 456e8: 4e75 rts <== NOT EXECUTED 456ea: 4e5e unlk %fp <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; the_thread = _Thread_Get( id, &location ); switch ( location ) { 456ec: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 456ee: 4e75 rts 0004baa8 : rtems_status_code rtems_extension_create( rtems_name name, rtems_extensions_table *extension_table, Objects_Id *id ) { 4baa8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4baac: 2f0a movel %a2,%sp@- <== NOT EXECUTED Extension_Control *the_extension; if ( !id ) 4baae: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 4bab2: 6700 0084 beqw 4bb38 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !rtems_is_name_valid( name ) ) 4bab6: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 4baba: 660a bnes 4bac6 <== NOT EXECUTED ); *id = the_extension->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 4babc: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4bac0: 4e5e unlk %fp <== NOT EXECUTED Extension_Control *the_extension; if ( !id ) return RTEMS_INVALID_ADDRESS; if ( !rtems_is_name_valid( name ) ) 4bac2: 7003 moveq #3,%d0 <== NOT EXECUTED ); *id = the_extension->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 4bac4: 4e75 rts <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4bac6: 2039 0006 8184 movel 68184 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4bacc: 5280 addql #1,%d0 <== NOT EXECUTED 4bace: 23c0 0006 8184 movel %d0,68184 <_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 ); 4bad4: 4879 0006 833a pea 6833a <_Extension_Information> <== NOT EXECUTED 4bada: 4eb9 0004 c8e8 jsr 4c8e8 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_extension = _Extension_Allocate(); if ( !the_extension ) { 4bae0: 588f addql #4,%sp <== NOT EXECUTED 4bae2: 2440 moveal %d0,%a2 <== NOT EXECUTED 4bae4: 4a80 tstl %d0 <== NOT EXECUTED 4bae6: 6740 beqs 4bb28 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } _User_extensions_Add_set( &the_extension->Extension, extension_table ); 4bae8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4baec: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4baf0: 4eb9 0004 e6bc jsr 4e6bc <_User_extensions_Add_set> <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 4baf6: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED &_Extension_Information, &the_extension->Object, (Objects_Name) name ); *id = the_extension->Object.id; 4bafa: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 4bafe: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 4bb02: 4280 clrl %d0 <== NOT EXECUTED 4bb04: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 4bb08: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED 4bb0c: 2079 0006 8354 moveal 68354 <_Extension_Information+0x1a>,%a0 <== NOT EXECUTED 4bb12: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); 4bb16: 4eb9 0004 d708 jsr 4d708 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4bb1c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED &the_extension->Object, (Objects_Name) name ); *id = the_extension->Object.id; _Thread_Enable_dispatch(); 4bb20: 508f addql #8,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4bb22: 4e5e unlk %fp <== NOT EXECUTED &the_extension->Object, (Objects_Name) name ); *id = the_extension->Object.id; _Thread_Enable_dispatch(); 4bb24: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4bb26: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_extension = _Extension_Allocate(); if ( !the_extension ) { _Thread_Enable_dispatch(); 4bb28: 4eb9 0004 d708 jsr 4d708 <_Thread_Enable_dispatch> <== NOT EXECUTED ); *id = the_extension->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 4bb2e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4bb32: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_extension = _Extension_Allocate(); if ( !the_extension ) { _Thread_Enable_dispatch(); 4bb34: 7005 moveq #5,%d0 <== NOT EXECUTED ); *id = the_extension->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 4bb36: 4e75 rts <== NOT EXECUTED 4bb38: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4bb3c: 4e5e unlk %fp <== NOT EXECUTED Objects_Id *id ) { Extension_Control *the_extension; if ( !id ) 4bb3e: 7009 moveq #9,%d0 <== NOT EXECUTED ); *id = the_extension->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 4bb40: 4e75 rts <== NOT EXECUTED ... 0004bb44 : */ rtems_status_code rtems_extension_delete( Objects_Id id ) { 4bb44: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4bb48: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Extension_Control *_Extension_Get ( Objects_Id id, Objects_Locations *location ) { return (Extension_Control *) 4bb4a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4bb4e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4bb52: 4879 0006 833a pea 6833a <_Extension_Information> <== NOT EXECUTED 4bb58: 4eb9 0004 ce14 jsr 4ce14 <_Objects_Get> <== NOT EXECUTED Extension_Control *the_extension; Objects_Locations location; the_extension = _Extension_Get( id, &location ); switch ( location ) { 4bb5e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4bb64: 2440 moveal %d0,%a2 <== NOT EXECUTED 4bb66: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4bb6a: 663c bnes 4bba8 <== NOT EXECUTED case OBJECTS_LOCAL: _User_extensions_Remove_set( &the_extension->Extension ); 4bb6c: 486a 0010 pea %a2@(16) <== NOT EXECUTED 4bb70: 4eb9 0004 e7e4 jsr 4e7e4 <_User_extensions_Remove_set> <== NOT EXECUTED _Objects_Close( &_Extension_Information, &the_extension->Object ); 4bb76: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4bb78: 4879 0006 833a pea 6833a <_Extension_Information> <== NOT EXECUTED 4bb7e: 4eb9 0004 c984 jsr 4c984 <_Objects_Close> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Extension_Free ( Extension_Control *the_extension ) { _Objects_Free( &_Extension_Information, &the_extension->Object ); 4bb84: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4bb86: 4879 0006 833a pea 6833a <_Extension_Information> <== NOT EXECUTED 4bb8c: 4eb9 0004 cca8 jsr 4cca8 <_Objects_Free> <== NOT EXECUTED _Extension_Free( the_extension ); _Thread_Enable_dispatch(); 4bb92: 4eb9 0004 d708 jsr 4d708 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4bb98: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: _User_extensions_Remove_set( &the_extension->Extension ); _Objects_Close( &_Extension_Information, &the_extension->Object ); _Extension_Free( the_extension ); _Thread_Enable_dispatch(); 4bb9c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4bba2: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: _User_extensions_Remove_set( &the_extension->Extension ); _Objects_Close( &_Extension_Information, &the_extension->Object ); _Extension_Free( the_extension ); _Thread_Enable_dispatch(); 4bba4: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4bba6: 4e75 rts <== NOT EXECUTED 4bba8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4bbac: 4e5e unlk %fp <== NOT EXECUTED { Extension_Control *the_extension; Objects_Locations location; the_extension = _Extension_Get( id, &location ); switch ( location ) { 4bbae: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4bbb0: 4e75 rts <== NOT EXECUTED ... 000481e4 : rtems_status_code rtems_extension_ident( rtems_name name, Objects_Id *id ) { 481e4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 481e8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 481ec: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 481f2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 481f6: 4879 0005 dc42 pea 5dc42 <_Extension_Information> <== NOT EXECUTED 481fc: 4eb9 0004 95cc jsr 495cc <_Objects_Name_to_id_u32> <== NOT EXECUTED 48202: 41f9 0005 aac8 lea 5aac8 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 48208: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 4820c: 4e5e unlk %fp <== NOT EXECUTED 4820e: 4e75 rts 00046390 : */ void rtems_fatal_error_occurred( uint32_t the_error ) { 46390: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, FALSE, the_error ); 46394: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46398: 42a7 clrl %sp@- <== NOT EXECUTED 4639a: 4878 0001 pea 1 <== NOT EXECUTED 4639e: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED 0004254c : int rtems_filesystem_evaluate_parent( int flags, rtems_filesystem_location_info_t *pathloc ) { 4254c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 42550: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42552: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 42556: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_filesystem_location_info_t parent; int result; if ( !pathloc ) 42558: 4a89 tstl %a1 <== NOT EXECUTED 4255a: 6700 0094 beqw 425f0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EIO ); /* should never happen */ if ( !pathloc->ops->evalpath_h ) 4255e: 2069 0008 moveal %a1@(8),%a0 <== NOT EXECUTED 42562: 4a90 tstl %a0@ <== NOT EXECUTED 42564: 676c beqs 425d2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); parent = *pathloc; 42566: 2049 moveal %a1,%a0 <== NOT EXECUTED 42568: 2d58 fff0 movel %a0@+,%fp@(-16) <== NOT EXECUTED result = (*pathloc->ops->evalpath_h)( "..", flags, &parent ); 4256c: 260e movel %fp,%d3 <== NOT EXECUTED 4256e: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 42574: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42576: 2269 0008 moveal %a1@(8),%a1 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EIO ); /* should never happen */ if ( !pathloc->ops->evalpath_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); parent = *pathloc; 4257a: 2d58 fff4 movel %a0@+,%fp@(-12) <== NOT EXECUTED 4257e: 2d58 fff8 movel %a0@+,%fp@(-8) <== NOT EXECUTED 42582: 2d50 fffc movel %a0@,%fp@(-4) <== NOT EXECUTED result = (*pathloc->ops->evalpath_h)( "..", flags, &parent ); 42586: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4258a: 4879 0005 6e74 pea 56e74 <== NOT EXECUTED 42590: 2051 moveal %a1@,%a0 <== NOT EXECUTED 42592: 4e90 jsr %a0@ <== NOT EXECUTED if (result != 0){ 42594: dffc 0000 000c addal #12,%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 ); 4259a: 2400 movel %d0,%d2 <== NOT EXECUTED if (result != 0){ 4259c: 6624 bnes 425c2 <== NOT EXECUTED return -1; } rtems_filesystem_freenode( &parent ); 4259e: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 425a2: 4a88 tstl %a0 <== NOT EXECUTED 425a4: 670e beqs 425b4 <== NOT EXECUTED 425a6: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 425aa: 4a88 tstl %a0 <== NOT EXECUTED 425ac: 6706 beqs 425b4 <== NOT EXECUTED 425ae: 2f03 movel %d3,%sp@- <== NOT EXECUTED 425b0: 4e90 jsr %a0@ <== NOT EXECUTED 425b2: 588f addql #4,%sp <== NOT EXECUTED return result; } 425b4: 2002 movel %d2,%d0 <== NOT EXECUTED 425b6: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 425ba: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 425be: 4e5e unlk %fp <== NOT EXECUTED 425c0: 4e75 rts <== NOT EXECUTED if ( !pathloc->ops->evalpath_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); parent = *pathloc; result = (*pathloc->ops->evalpath_h)( "..", flags, &parent ); if (result != 0){ 425c2: 74ff moveq #-1,%d2 <== NOT EXECUTED return -1; } rtems_filesystem_freenode( &parent ); return result; } 425c4: 2002 movel %d2,%d0 <== NOT EXECUTED 425c6: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 425ca: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 425ce: 4e5e unlk %fp <== NOT EXECUTED 425d0: 4e75 rts <== NOT EXECUTED if ( !pathloc ) rtems_set_errno_and_return_minus_one( EIO ); /* should never happen */ if ( !pathloc->ops->evalpath_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 425d2: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 425d8: 74ff moveq #-1,%d2 <== NOT EXECUTED 425da: 2040 moveal %d0,%a0 <== NOT EXECUTED return -1; } rtems_filesystem_freenode( &parent ); return result; } 425dc: 2002 movel %d2,%d0 <== NOT EXECUTED 425de: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 425e2: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 425e6: 4e5e unlk %fp <== NOT EXECUTED if ( !pathloc ) rtems_set_errno_and_return_minus_one( EIO ); /* should never happen */ if ( !pathloc->ops->evalpath_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 425e8: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED return -1; } rtems_filesystem_freenode( &parent ); return result; } 425ee: 4e75 rts <== NOT EXECUTED { rtems_filesystem_location_info_t parent; int result; if ( !pathloc ) rtems_set_errno_and_return_minus_one( EIO ); /* should never happen */ 425f0: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 425f6: 2040 moveal %d0,%a0 <== NOT EXECUTED 425f8: 7005 moveq #5,%d0 <== NOT EXECUTED 425fa: 74ff moveq #-1,%d2 <== NOT EXECUTED 425fc: 2080 movel %d0,%a0@ <== NOT EXECUTED return -1; } rtems_filesystem_freenode( &parent ); return result; } 425fe: 2002 movel %d2,%d0 <== NOT EXECUTED 42600: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 42604: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 42608: 4e5e unlk %fp <== NOT EXECUTED 4260a: 4e75 rts 0004260c : const char *pathname, int flags, rtems_filesystem_location_info_t *pathloc, int follow_link ) { 4260c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 42610: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 42614: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 42618: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4261c: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED 42620: 262e 0014 movel %fp@(20),%d3 <== NOT EXECUTED /* * Verify Input parameters. */ if ( !pathname ) 42624: 4a8b tstl %a3 <== NOT EXECUTED 42626: 6700 010c beqw 42734 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); if ( !pathloc ) 4262a: 4a8a tstl %a2 <== NOT EXECUTED 4262c: 6700 00ec beqw 4271a <== NOT EXECUTED /* * Evaluate the path using the optable evalpath. */ rtems_filesystem_get_start_loc( pathname, &i, pathloc ); 42630: 1213 moveb %a3@,%d1 <== NOT EXECUTED 42632: 1001 moveb %d1,%d0 <== NOT EXECUTED 42634: 49c0 extbl %d0 <== NOT EXECUTED 42636: 742f moveq #47,%d2 <== NOT EXECUTED 42638: b480 cmpl %d0,%d2 <== NOT EXECUTED 4263a: 676a beqs 426a6 <== NOT EXECUTED 4263c: 143c 005c moveb #92,%d2 <== NOT EXECUTED 42640: b480 cmpl %d0,%d2 <== NOT EXECUTED 42642: 6762 beqs 426a6 <== NOT EXECUTED 42644: 4a01 tstb %d1 <== NOT EXECUTED 42646: 675e beqs 426a6 <== NOT EXECUTED 42648: 2279 0005 8564 moveal 58564 ,%a1 <== NOT EXECUTED 4264e: 204a moveal %a2,%a0 <== NOT EXECUTED 42650: 5889 addql #4,%a1 <== NOT EXECUTED 42652: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 42654: 4280 clrl %d0 <== NOT EXECUTED 42656: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 42658: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 4265a: 2091 movel %a1@,%a0@ <== NOT EXECUTED if ( !pathloc->ops->evalpath_h ) 4265c: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 42660: 2050 moveal %a0@,%a0 <== NOT EXECUTED 42662: 4a88 tstl %a0 <== NOT EXECUTED 42664: 6700 0088 beqw 426ee <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); result = (*pathloc->ops->evalpath_h)( &pathname[i], flags, pathloc ); 42668: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4266a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4266c: 4873 0800 pea %a3@(00000000,%d0:l) <== NOT EXECUTED 42670: 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 ) { 42672: 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 ); 42678: 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 ) { 4267a: 661e bnes 4269a <== NOT EXECUTED 4267c: 4a83 tstl %d3 <== NOT EXECUTED 4267e: 671a beqs 4269a <== NOT EXECUTED if ( !pathloc->ops->node_type_h ){ 42680: 226a 0008 moveal %a2@(8),%a1 <== NOT EXECUTED 42684: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED 42688: 4a88 tstl %a0 <== NOT EXECUTED 4268a: 677e beqs 4270a <== NOT EXECUTED rtems_filesystem_freenode( pathloc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } type = (*pathloc->ops->node_type_h)( pathloc ); 4268c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4268e: 4e90 jsr %a0@ <== NOT EXECUTED if ( ( type == RTEMS_FILESYSTEM_HARD_LINK ) || 42690: 588f addql #4,%sp <== NOT EXECUTED 42692: 5780 subql #3,%d0 <== NOT EXECUTED 42694: 7201 moveq #1,%d1 <== NOT EXECUTED 42696: b280 cmpl %d0,%d1 <== NOT EXECUTED 42698: 6428 bccs 426c2 <== NOT EXECUTED } } return result; } 4269a: 2002 movel %d2,%d0 <== NOT EXECUTED 4269c: 4cee 0c1c ffec moveml %fp@(-20),%d2-%d4/%a2-%a3 <== NOT EXECUTED 426a2: 4e5e unlk %fp <== NOT EXECUTED 426a4: 4e75 rts <== NOT EXECUTED /* * Evaluate the path using the optable evalpath. */ rtems_filesystem_get_start_loc( pathname, &i, pathloc ); 426a6: 2279 0005 8564 moveal 58564 ,%a1 <== NOT EXECUTED 426ac: 204a moveal %a2,%a0 <== NOT EXECUTED 426ae: 20e9 0014 movel %a1@(20),%a0@+ <== NOT EXECUTED 426b2: 7001 moveq #1,%d0 <== NOT EXECUTED 426b4: 20e9 0018 movel %a1@(24),%a0@+ <== NOT EXECUTED 426b8: 20e9 001c movel %a1@(28),%a0@+ <== NOT EXECUTED 426bc: 20a9 0020 movel %a1@(32),%a0@ <== NOT EXECUTED 426c0: 609a bras 4265c <== NOT EXECUTED type = (*pathloc->ops->node_type_h)( pathloc ); if ( ( type == RTEMS_FILESYSTEM_HARD_LINK ) || ( type == RTEMS_FILESYSTEM_SYM_LINK ) ) { if ( !pathloc->ops->eval_link_h ){ 426c2: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 426c6: 2028 0034 movel %a0@(52),%d0 <== NOT EXECUTED 426ca: 6714 beqs 426e0 <== 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 ); 426cc: 2d44 000c movel %d4,%fp@(12) <== NOT EXECUTED 426d0: 2240 moveal %d0,%a1 <== NOT EXECUTED 426d2: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } return result; } 426d6: 4cee 0c1c ffec moveml %fp@(-20),%d2-%d4/%a2-%a3 <== NOT EXECUTED 426dc: 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 ); 426de: 4ed1 jmp %a1@ <== NOT EXECUTED if ( ( type == RTEMS_FILESYSTEM_HARD_LINK ) || ( type == RTEMS_FILESYSTEM_SYM_LINK ) ) { if ( !pathloc->ops->eval_link_h ){ rtems_filesystem_freenode( pathloc ); 426e0: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 426e4: 4a88 tstl %a0 <== NOT EXECUTED 426e6: 6706 beqs 426ee <== NOT EXECUTED 426e8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 426ea: 4e90 jsr %a0@ <== NOT EXECUTED 426ec: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 426ee: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 426f4: 74ff moveq #-1,%d2 <== NOT EXECUTED 426f6: 2040 moveal %d0,%a0 <== NOT EXECUTED } } return result; } 426f8: 2002 movel %d2,%d0 <== NOT EXECUTED 426fa: 4cee 0c1c ffec moveml %fp@(-20),%d2-%d4/%a2-%a3 <== NOT EXECUTED 42700: 4e5e unlk %fp <== NOT EXECUTED if ( ( type == RTEMS_FILESYSTEM_HARD_LINK ) || ( type == RTEMS_FILESYSTEM_SYM_LINK ) ) { if ( !pathloc->ops->eval_link_h ){ rtems_filesystem_freenode( pathloc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); 42702: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED } } return result; } 42708: 4e75 rts <== NOT EXECUTED */ if ( (result == 0) && follow_link ) { if ( !pathloc->ops->node_type_h ){ rtems_filesystem_freenode( pathloc ); 4270a: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 4270e: 4a88 tstl %a0 <== NOT EXECUTED 42710: 67dc beqs 426ee <== NOT EXECUTED if ( ( type == RTEMS_FILESYSTEM_HARD_LINK ) || ( type == RTEMS_FILESYSTEM_SYM_LINK ) ) { if ( !pathloc->ops->eval_link_h ){ rtems_filesystem_freenode( pathloc ); 42712: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42714: 4e90 jsr %a0@ <== NOT EXECUTED 42716: 588f addql #4,%sp <== NOT EXECUTED 42718: 60d4 bras 426ee <== NOT EXECUTED if ( !pathname ) rtems_set_errno_and_return_minus_one( EFAULT ); if ( !pathloc ) rtems_set_errno_and_return_minus_one( EIO ); /* should never happen */ 4271a: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 42720: 74ff moveq #-1,%d2 <== NOT EXECUTED 42722: 2040 moveal %d0,%a0 <== NOT EXECUTED } } return result; } 42724: 2002 movel %d2,%d0 <== NOT EXECUTED 42726: 4cee 0c1c ffec moveml %fp@(-20),%d2-%d4/%a2-%a3 <== NOT EXECUTED if ( !pathname ) rtems_set_errno_and_return_minus_one( EFAULT ); if ( !pathloc ) rtems_set_errno_and_return_minus_one( EIO ); /* should never happen */ 4272c: 7205 moveq #5,%d1 <== NOT EXECUTED } } return result; } 4272e: 4e5e unlk %fp <== NOT EXECUTED if ( !pathname ) rtems_set_errno_and_return_minus_one( EFAULT ); if ( !pathloc ) rtems_set_errno_and_return_minus_one( EIO ); /* should never happen */ 42730: 2081 movel %d1,%a0@ <== NOT EXECUTED } } return result; } 42732: 4e75 rts <== NOT EXECUTED /* * Verify Input parameters. */ if ( !pathname ) rtems_set_errno_and_return_minus_one( EFAULT ); 42734: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4273a: 740e moveq #14,%d2 <== NOT EXECUTED 4273c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4273e: 2082 movel %d2,%a0@ <== NOT EXECUTED 42740: 74ff moveq #-1,%d2 <== NOT EXECUTED } } return result; } 42742: 2002 movel %d2,%d0 <== NOT EXECUTED 42744: 4cee 0c1c ffec moveml %fp@(-20),%d2-%d4/%a2-%a3 <== NOT EXECUTED 4274a: 4e5e unlk %fp <== NOT EXECUTED 4274c: 4e75 rts <== NOT EXECUTED ... 0004a3e4 : /* * Set the default umask to "022". */ rtems_filesystem_umask = 022; 4a3e4: 2079 0005 8564 moveal 58564 ,%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 ) { 4a3ea: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED /* * Set the default umask to "022". */ rtems_filesystem_umask = 022; 4a3ee: 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 ) { 4a3f0: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED /* * Set the default umask to "022". */ rtems_filesystem_umask = 022; 4a3f4: 2140 0024 movel %d0,%a0@(36) <== NOT EXECUTED init_fs_mount_table(); 4a3f8: 4eb9 0004 acb8 jsr 4acb8 <== NOT EXECUTED /* * mount the first filesystem. */ if ( rtems_filesystem_mount_table_size == 0 ) 4a3fe: 4ab9 0005 67c8 tstl 567c8 <== NOT EXECUTED 4a404: 6700 00d4 beqw 4a4da <== NOT EXECUTED rtems_fatal_error_occurred( 0xABCD0001 ); mt = &rtems_filesystem_mount_table[0]; 4a408: 2079 0005 8050 moveal 58050 ,%a0 <== NOT EXECUTED status = mount( 4a40e: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 4a412: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4a416: 2f28 0004 movel %a0@(4),%sp@- <== NOT EXECUTED 4a41a: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4a41c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4a420: 4eb9 0004 acda jsr 4acda <== NOT EXECUTED &entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point ); if ( status == -1 ) 4a426: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4a42c: 72ff moveq #-1,%d1 <== NOT EXECUTED 4a42e: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a430: 6700 00b4 beqw 4a4e6 <== NOT EXECUTED rtems_fatal_error_occurred( 0xABCD0002 ); rtems_filesystem_link_counts = 0; 4a434: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED * set_private_env() - but then: that's * gonna hit performance. * * Till Straumann, 10/25/2002 */ rtems_filesystem_root = entry->mt_fs_root; 4a43a: 226e fffc moveal %fp@(-4),%a1 <== NOT EXECUTED 4a43e: 2169 0018 0014 movel %a1@(24),%a0@(20) <== NOT EXECUTED &entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point ); if ( status == -1 ) rtems_fatal_error_occurred( 0xABCD0002 ); rtems_filesystem_link_counts = 0; 4a444: 4240 clrw %d0 <== NOT EXECUTED * set_private_env() - but then: that's * gonna hit performance. * * Till Straumann, 10/25/2002 */ rtems_filesystem_root = entry->mt_fs_root; 4a446: 2169 001c 0018 movel %a1@(28),%a0@(24) <== NOT EXECUTED &entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point ); if ( status == -1 ) rtems_fatal_error_occurred( 0xABCD0002 ); rtems_filesystem_link_counts = 0; 4a44c: 3140 0028 movew %d0,%a0@(40) <== NOT EXECUTED * * Till Straumann, 10/25/2002 */ rtems_filesystem_root = entry->mt_fs_root; /* Clone the root pathloc */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); 4a450: 45ee ffec lea %fp@(-20),%a2 <== NOT EXECUTED 4a454: 47f9 0004 260c lea 4260c ,%a3 <== NOT EXECUTED rtems_filesystem_root = loc; 4a45a: 49ee fff8 lea %fp@(-8),%a4 <== NOT EXECUTED * set_private_env() - but then: that's * gonna hit performance. * * Till Straumann, 10/25/2002 */ rtems_filesystem_root = entry->mt_fs_root; 4a45e: 2169 0020 001c movel %a1@(32),%a0@(28) <== NOT EXECUTED 4a464: 2169 0024 0020 movel %a1@(36),%a0@(32) <== NOT EXECUTED /* Clone the root pathloc */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); 4a46a: 42a7 clrl %sp@- <== NOT EXECUTED 4a46c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a46e: 42a7 clrl %sp@- <== NOT EXECUTED 4a470: 4879 0005 71c6 pea 571c6 <== NOT EXECUTED 4a476: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_root = loc; 4a478: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED 4a47e: 2152 0014 movel %a2@,%a0@(20) <== NOT EXECUTED 4a482: 216e fff0 0018 movel %fp@(-16),%a0@(24) <== NOT EXECUTED 4a488: 216e fff4 001c movel %fp@(-12),%a0@(28) <== NOT EXECUTED 4a48e: 2154 0020 movel %a4@,%a0@(32) <== NOT EXECUTED /* One more clone for the current node */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); 4a492: 42a7 clrl %sp@- <== NOT EXECUTED 4a494: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a496: 42a7 clrl %sp@- <== NOT EXECUTED 4a498: 4879 0005 71c6 pea 571c6 <== NOT EXECUTED 4a49e: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_current = loc; 4a4a0: 2079 0005 8564 moveal 58564 ,%a0 <== NOT EXECUTED 4a4a6: 5888 addql #4,%a0 <== NOT EXECUTED 4a4a8: 20d2 movel %a2@,%a0@+ <== 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); 4a4aa: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED /* Clone the root pathloc */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); rtems_filesystem_root = loc; /* One more clone for the current node */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); rtems_filesystem_current = loc; 4a4b0: 20ee fff0 movel %fp@(-16),%a0@+ <== NOT EXECUTED 4a4b4: 20ee fff4 movel %fp@(-12),%a0@+ <== NOT EXECUTED 4a4b8: 2094 movel %a4@,%a0@ <== 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); 4a4ba: 4878 01ff pea 1ff <== NOT EXECUTED 4a4be: 4879 0005 71c8 pea 571c8 <== NOT EXECUTED 4a4c4: 4eb9 0004 ac98 jsr 4ac98 <== NOT EXECUTED if ( status != 0 ) 4a4ca: 508f addql #8,%sp <== NOT EXECUTED 4a4cc: 4a80 tstl %d0 <== NOT EXECUTED 4a4ce: 6622 bnes 4a4f2 <== NOT EXECUTED * before device drivers are initialized. So we return via a base * filesystem image and nothing auto-mounted at this point. */ #endif } 4a4d0: 4cee 1c00 ffe0 moveml %fp@(-32),%a2-%a4 <== NOT EXECUTED 4a4d6: 4e5e unlk %fp <== NOT EXECUTED 4a4d8: 4e75 rts <== NOT EXECUTED /* * mount the first filesystem. */ if ( rtems_filesystem_mount_table_size == 0 ) rtems_fatal_error_occurred( 0xABCD0001 ); 4a4da: 2f3c abcd 0001 movel #-1412628479,%sp@- <== NOT EXECUTED 4a4e0: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED status = mount( &entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point ); if ( status == -1 ) rtems_fatal_error_occurred( 0xABCD0002 ); 4a4e6: 2f3c abcd 0002 movel #-1412628478,%sp@- <== NOT EXECUTED 4a4ec: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED * created that way by the IMFS. */ status = mkdir( "/dev", 0777); if ( status != 0 ) rtems_fatal_error_occurred( 0xABCD0003 ); 4a4f2: 2f3c abcd 0003 movel #-1412628477,%sp@- <== NOT EXECUTED 4a4f8: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED ... 00062458 : ); bool rtems_filesystem_nodes_equal( const rtems_filesystem_location_info_t *loc1, const rtems_filesystem_location_info_t *loc2 ){ 62458: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 6245c: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 62460: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 62464: 2050 moveal %a0@,%a0 <== NOT EXECUTED 62466: b1d1 cmpal %a1@,%a0 <== NOT EXECUTED 62468: 57c0 seq %d0 <== NOT EXECUTED return ( loc1->node_access == loc2->node_access ); } 6246a: 4e5e unlk %fp <== NOT EXECUTED 6246c: 4480 negl %d0 <== NOT EXECUTED 6246e: 4e75 rts 00047dfc : #endif #include const char *rtems_get_version_string(void) { 47dfc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _RTEMS_version; } 47e00: 4e5e unlk %fp <== NOT EXECUTED 47e02: 203c 0005 b83a movel #374842,%d0 <== NOT EXECUTED 47e08: 4e75 rts <== NOT EXECUTED ... 00046206 : * Scheduling can properly occur now as long as we avoid dispatching. */ } void rtems_initialize_before_drivers(void) { 46206: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED * Run the API and BSPs predriver hook. */ _API_extensions_Run_predriver(); } 4620a: 4e5e unlk %fp <== NOT EXECUTED /* * Run the API and BSPs predriver hook. */ _API_extensions_Run_predriver(); 4620c: 4ef9 0004 6670 jmp 46670 <_API_extensions_Run_predriver> <== NOT EXECUTED 00046212 : Objects_Information *_Internal_Objects[ OBJECTS_INTERNAL_CLASSES_LAST + 1 ]; void rtems_initialize_data_structures( rtems_configuration_table *configuration_table ) { 46212: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46216: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46218: 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 ); 4621c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 46222: 40c1 movew %sr,%d1 <== NOT EXECUTED 46224: 8081 orl %d1,%d0 <== NOT EXECUTED 46226: 46c0 movew %d0,%sr <== NOT EXECUTED /* * Make sure the parameters were not NULL. */ if ( configuration_table == NULL ) 46228: 4a8a tstl %a2 <== NOT EXECUTED 4622a: 6700 00fa beqw 46326 <== NOT EXECUTED _Configuration_Table = configuration_table; /* * Initialize any target architecture specific support as early as possible */ _CPU_Initialize( _Thread_Dispatch ); 4622e: 4879 0004 7cac pea 47cac <_Thread_Dispatch> <== NOT EXECUTED ); /* * Provide pointers just for later convenience. */ _Configuration_Table = configuration_table; 46234: 23ca 0005 9d16 movel %a2,59d16 <_Configuration_Table> <== NOT EXECUTED /* * Initialize any target architecture specific support as early as possible */ _CPU_Initialize( _Thread_Dispatch ); 4623a: 4eb9 0004 942c jsr 4942c <_CPU_Initialize> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Handler_initialization ( bool is_multiprocessing ) { _System_state_Current = SYSTEM_STATE_BEFORE_INITIALIZATION; 46240: 42b9 0005 9e0e clrl 59e0e <_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(); 46246: 4eb9 0004 bad0 jsr 4bad0 <_Debug_Manager_initialization> <== NOT EXECUTED _API_extensions_Initialization(); 4624c: 4eb9 0004 6650 jsr 46650 <_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( 46252: 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; 46256: 7001 moveq #1,%d0 <== NOT EXECUTED 46258: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED 4625e: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 46260: 4eb9 0004 92ea jsr 492ea <_Workspace_Handler_initialization> <== NOT EXECUTED (void *)configuration_table->work_space_start, configuration_table->work_space_size ); _User_extensions_Handler_initialization( 46266: 2f2a 003a movel %a2@(58),%sp@- <== NOT EXECUTED 4626a: 2f2a 0036 movel %a2@(54),%sp@- <== NOT EXECUTED 4626e: 4eb9 0004 8d8c jsr 48d8c <_User_extensions_Handler_initialization> <== NOT EXECUTED configuration_table->number_of_initial_extensions, configuration_table->User_extension_table ); _ISR_Handler_initialization(); 46274: 4eb9 0004 6fe8 jsr 46fe8 <_ISR_Handler_initialization> <== NOT EXECUTED _Objects_Handler_initialization( 4627a: 4eb9 0004 77a0 jsr 477a0 <_Objects_Handler_initialization> <== NOT EXECUTED _Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects; /* * Initialize the internal allocator Mutex */ _API_Mutex_Initialization( 1 ); 46280: 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; 46284: 203c 0005 9c92 movel #367762,%d0 <== NOT EXECUTED 4628a: 23c0 0005 9c38 movel %d0,59c38 <_Objects_Information_table+0x4> <== NOT EXECUTED /* * Initialize the internal allocator Mutex */ _API_Mutex_Initialization( 1 ); 46290: 4eb9 0004 67c0 jsr 467c0 <_API_Mutex_Initialization> <== NOT EXECUTED _API_Mutex_Allocate( &_RTEMS_Allocator_Mutex ); 46296: 4879 0005 9d32 pea 59d32 <_RTEMS_Allocator_Mutex> <== NOT EXECUTED 4629c: 4eb9 0004 6724 jsr 46724 <_API_Mutex_Allocate> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Priority_Handler_initialization( void ) { size_t index; _Priority_Major_bit_map = 0; 462a2: 4240 clrw %d0 <== NOT EXECUTED 462a4: 33c0 0005 9d30 movew %d0,59d30 <_Priority_Major_bit_map> <== NOT EXECUTED 462aa: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 462b0: 41f9 0005 9da0 lea 59da0 <_Priority_Bit_map>,%a0 <== NOT EXECUTED for ( index=0 ; index <16 ; index++ ) _Priority_Bit_map[ index ] = 0; 462b6: 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++ ) 462b8: b1fc 0005 9dc0 cmpal #368064,%a0 <== NOT EXECUTED 462be: 66f6 bnes 462b6 <== NOT EXECUTED _Priority_Handler_initialization(); _Watchdog_Handler_initialization(); 462c0: 4eb9 0004 911c jsr 4911c <_Watchdog_Handler_initialization> <== NOT EXECUTED _TOD_Handler_initialization( configuration_table->microseconds_per_tick ); 462c6: 2f2a 000c movel %a2@(12),%sp@- <== NOT EXECUTED 462ca: 4eb9 0004 6ce0 jsr 46ce0 <_TOD_Handler_initialization> <== NOT EXECUTED _Thread_Handler_initialization( 462d0: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 462d4: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 462d8: 4eb9 0004 8120 jsr 48120 <_Thread_Handler_initialization> <== NOT EXECUTED ); #endif /* MANAGERS */ _RTEMS_API_Initialize( configuration_table ); 462de: 2f0a movel %a2,%sp@- <== NOT EXECUTED 462e0: 4eb9 0004 65bc jsr 465bc <_RTEMS_API_Initialize> <== NOT EXECUTED _Extension_Manager_initialization( configuration_table->maximum_extensions ); 462e6: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 462ea: 4eb9 0004 6360 jsr 46360 <_Extension_Manager_initialization> <== NOT EXECUTED _IO_Manager_initialization( 462f0: 2f2a 002a movel %a2@(42),%sp@- <== NOT EXECUTED 462f4: 2f2a 002e movel %a2@(46),%sp@- <== NOT EXECUTED 462f8: 2f2a 0032 movel %a2@(50),%sp@- <== NOT EXECUTED 462fc: 4eb9 0004 63e0 jsr 463e0 <_IO_Manager_initialization> <== NOT EXECUTED configuration_table->number_of_device_drivers, configuration_table->maximum_drivers ); #ifdef RTEMS_POSIX_API _POSIX_API_Initialize( configuration_table ); 46302: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 46308: 2e8a movel %a2,%sp@ <== NOT EXECUTED 4630a: 4eb9 0004 6478 jsr 46478 <_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(); 46310: 588f addql #4,%sp <== NOT EXECUTED /* * Scheduling can properly occur now as long as we avoid dispatching. */ } 46312: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46316: 4e5e unlk %fp <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Set ( System_state_Codes state ) { _System_state_Current = state; 46318: 7001 moveq #1,%d0 <== NOT EXECUTED 4631a: 23c0 0005 9e0e movel %d0,59e0e <_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(); 46320: 4ef9 0004 7bbc jmp 47bbc <_Thread_Create_idle> <== NOT EXECUTED /* * Make sure the parameters were not NULL. */ if ( configuration_table == NULL ) _Internal_error_Occurred( 46326: 42a7 clrl %sp@- <== NOT EXECUTED 46328: 4878 0001 pea 1 <== NOT EXECUTED 4632c: 42a7 clrl %sp@- <== NOT EXECUTED 4632e: 4eb9 0004 6f8c jsr 46f8c <_Internal_error_Occurred> <== NOT EXECUTED 000461f4 : _API_extensions_Run_predriver(); } void rtems_initialize_device_drivers(void) { 461f4: 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(); 461f8: 4eb9 0004 63a4 jsr 463a4 <_IO_Initialize_all_drivers> <== NOT EXECUTED * * The API extensions are supposed to create user initialization tasks. */ _API_extensions_Run_postdriver(); } 461fe: 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(); 46200: 4ef9 0004 66a0 jmp 466a0 <_API_extensions_Run_postdriver> <== NOT EXECUTED 000461e0 : _API_extensions_Run_postdriver(); } void rtems_initialize_start_multitasking(void) { 461e0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED ****** APPLICATION RUNS HERE ****** ****** RETURNS WHEN SYSTEM IS SHUT DOWN ****** ******************************************************************* ******************************************************************* *******************************************************************/ } 461e4: 4e5e unlk %fp <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _System_state_Set ( System_state_Codes state ) { _System_state_Current = state; 461e6: 7002 moveq #2,%d0 <== NOT EXECUTED 461e8: 23c0 0005 9e0e movel %d0,59e0e <_System_state_Current> <== NOT EXECUTED void rtems_initialize_start_multitasking(void) { _System_state_Set( SYSTEM_STATE_BEGIN_MULTITASKING ); _Thread_Start_multitasking(); 461ee: 4ef9 0004 8a18 jmp 48a18 <_Thread_Start_multitasking> <== NOT EXECUTED 000458dc : rtems_status_code rtems_interrupt_catch( rtems_isr_entry new_isr_handler, rtems_vector_number vector, rtems_isr_entry *old_isr_handler ) { 458dc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 458e0: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !_ISR_Is_vector_number_valid( vector ) ) 458e4: 0c80 0000 00ff cmpil #255,%d0 <== NOT EXECUTED 458ea: 622e bhis 4591a <== NOT EXECUTED return RTEMS_INVALID_NUMBER; if ( !_ISR_Is_valid_user_handler( (void *) new_isr_handler ) ) 458ec: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 458f0: 6722 beqs 45914 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_ISR_Is_valid_user_handler( (void *) old_isr_handler ) ) 458f2: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 458f6: 671c beqs 45914 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _ISR_Install_vector( 458f8: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 458fc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45900: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45902: 4eb9 0004 9466 jsr 49466 <_CPU_ISR_install_vector> <== NOT EXECUTED 45908: dffc 0000 000c addal #12,%sp <== NOT EXECUTED vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler ); return RTEMS_SUCCESSFUL; } 4590e: 4e5e unlk %fp <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_ISR_Is_valid_user_handler( (void *) old_isr_handler ) ) return RTEMS_INVALID_ADDRESS; _ISR_Install_vector( 45910: 4280 clrl %d0 <== NOT EXECUTED vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler ); return RTEMS_SUCCESSFUL; } 45912: 4e75 rts <== NOT EXECUTED 45914: 4e5e unlk %fp <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _ISR_Install_vector( vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler ); return RTEMS_SUCCESSFUL; 45916: 7009 moveq #9,%d0 <== NOT EXECUTED } 45918: 4e75 rts <== NOT EXECUTED 4591a: 4e5e unlk %fp <== NOT EXECUTED rtems_isr_entry new_isr_handler, rtems_vector_number vector, rtems_isr_entry *old_isr_handler ) { if ( !_ISR_Is_vector_number_valid( vector ) ) 4591c: 700a moveq #10,%d0 <== NOT EXECUTED _ISR_Install_vector( vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler ); return RTEMS_SUCCESSFUL; } 4591e: 4e75 rts 0004658c : */ #undef rtems_interrupt_disable rtems_interrupt_level rtems_interrupt_disable( void ) { 4658c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_interrupt_level previous_level; _ISR_Disable( previous_level ); 46590: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 46596: 40c0 movew %sr,%d0 <== NOT EXECUTED 46598: 8280 orl %d0,%d1 <== NOT EXECUTED 4659a: 46c1 movew %d1,%sr <== NOT EXECUTED return previous_level; } 4659c: 4e5e unlk %fp <== NOT EXECUTED 4659e: 4e75 rts 000465a0 : #undef rtems_interrupt_enable void rtems_interrupt_enable( rtems_interrupt_level previous_level ) { 465a0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _ISR_Enable( previous_level ); 465a4: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 465a8: 46c0 movew %d0,%sr <== NOT EXECUTED } 465aa: 4e5e unlk %fp <== NOT EXECUTED 465ac: 4e75 rts 000465ae : #undef rtems_interrupt_flash void rtems_interrupt_flash( rtems_interrupt_level previous_level ) { 465ae: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _ISR_Flash( previous_level ); 465b2: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 465b8: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 465bc: 46c0 movew %d0,%sr <== NOT EXECUTED 465be: 8280 orl %d0,%d1 <== NOT EXECUTED 465c0: 46c1 movew %d1,%sr <== NOT EXECUTED } 465c2: 4e5e unlk %fp <== NOT EXECUTED 465c4: 4e75 rts 000465c6 : #undef rtems_interrupt_is_in_progress bool rtems_interrupt_is_in_progress( void ) { return _ISR_Is_in_progress(); 465c6: 2039 0005 c00a movel 5c00a <_ISR_Nest_level>,%d0 <== NOT EXECUTED */ #undef rtems_interrupt_is_in_progress bool rtems_interrupt_is_in_progress( void ) { 465cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _ISR_Is_in_progress(); 465d0: 4a80 tstl %d0 <== NOT EXECUTED 465d2: 56c0 sne %d0 <== NOT EXECUTED } 465d4: 4e5e unlk %fp <== NOT EXECUTED 465d6: 4480 negl %d0 <== NOT EXECUTED 465d8: 4e75 rts <== NOT EXECUTED ... 0004cfa0 : rtems_status_code rtems_io_close( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4cfa0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4cfa4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4cfa6: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4cfaa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4cfac: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4cfb0: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4cfb4: b4b9 0005 a516 cmpl 5a516 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4cfba: 642c bccs 4cfe8 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].close_entry; 4cfbc: 2002 movel %d2,%d0 <== NOT EXECUTED 4cfbe: 2202 movel %d2,%d1 <== NOT EXECUTED 4cfc0: 2079 0005 a51a moveal 5a51a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4cfc6: e788 lsll #3,%d0 <== NOT EXECUTED 4cfc8: eb89 lsll #5,%d1 <== NOT EXECUTED 4cfca: 9280 subl %d0,%d1 <== NOT EXECUTED 4cfcc: 2030 1808 movel %a0@(00000008,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4cfd0: 6718 beqs 4cfea <== NOT EXECUTED 4cfd2: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4cfd6: 2240 moveal %d0,%a1 <== NOT EXECUTED 4cfd8: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4cfdc: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4cfe0: 241f movel %sp@+,%d2 <== NOT EXECUTED 4cfe2: 261f movel %sp@+,%d3 <== NOT EXECUTED 4cfe4: 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; 4cfe6: 4ed1 jmp %a1@ <== NOT EXECUTED void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4cfe8: 700a moveq #10,%d0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].close_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; } 4cfea: 241f movel %sp@+,%d2 <== NOT EXECUTED 4cfec: 261f movel %sp@+,%d3 <== NOT EXECUTED 4cfee: 4e5e unlk %fp <== NOT EXECUTED 4cff0: 4e75 rts <== NOT EXECUTED ... 0004cff4 : rtems_status_code rtems_io_control( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4cff4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4cff8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4cffa: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4cffe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d000: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4d004: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4d008: b4b9 0005 a516 cmpl 5a516 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4d00e: 642c bccs 4d03c <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].control_entry; 4d010: 2002 movel %d2,%d0 <== NOT EXECUTED 4d012: 2202 movel %d2,%d1 <== NOT EXECUTED 4d014: 2079 0005 a51a moveal 5a51a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4d01a: e788 lsll #3,%d0 <== NOT EXECUTED 4d01c: eb89 lsll #5,%d1 <== NOT EXECUTED 4d01e: 9280 subl %d0,%d1 <== NOT EXECUTED 4d020: 2030 1814 movel %a0@(00000014,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4d024: 6718 beqs 4d03e <== NOT EXECUTED 4d026: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4d02a: 2240 moveal %d0,%a1 <== NOT EXECUTED 4d02c: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4d030: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4d034: 241f movel %sp@+,%d2 <== NOT EXECUTED 4d036: 261f movel %sp@+,%d3 <== NOT EXECUTED 4d038: 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; 4d03a: 4ed1 jmp %a1@ <== NOT EXECUTED void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4d03c: 700a moveq #10,%d0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].control_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; } 4d03e: 241f movel %sp@+,%d2 <== NOT EXECUTED 4d040: 261f movel %sp@+,%d3 <== NOT EXECUTED 4d042: 4e5e unlk %fp <== NOT EXECUTED 4d044: 4e75 rts <== NOT EXECUTED ... 0004bb1c : rtems_status_code rtems_io_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4bb1c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4bb20: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4bb22: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4bb26: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4bb28: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4bb2c: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4bb30: b4b9 0005 a516 cmpl 5a516 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4bb36: 642c bccs 4bb64 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].initialization_entry; 4bb38: 2079 0005 a51a moveal 5a51a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4bb3e: 2002 movel %d2,%d0 <== NOT EXECUTED 4bb40: e788 lsll #3,%d0 <== NOT EXECUTED 4bb42: 2202 movel %d2,%d1 <== NOT EXECUTED 4bb44: 91c0 subal %d0,%a0 <== NOT EXECUTED 4bb46: eb89 lsll #5,%d1 <== NOT EXECUTED 4bb48: 2030 1800 movel %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4bb4c: 6718 beqs 4bb66 <== NOT EXECUTED 4bb4e: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4bb52: 2240 moveal %d0,%a1 <== NOT EXECUTED 4bb54: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4bb58: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4bb5c: 241f movel %sp@+,%d2 <== NOT EXECUTED 4bb5e: 261f movel %sp@+,%d3 <== NOT EXECUTED 4bb60: 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; 4bb62: 4ed1 jmp %a1@ <== NOT EXECUTED void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4bb64: 700a moveq #10,%d0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].initialization_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; } 4bb66: 241f movel %sp@+,%d2 <== NOT EXECUTED 4bb68: 261f movel %sp@+,%d3 <== NOT EXECUTED 4bb6a: 4e5e unlk %fp <== NOT EXECUTED 4bb6c: 4e75 rts <== NOT EXECUTED ... 000421f8 : rtems_status_code rtems_io_lookup_name( const char *name, rtems_driver_name_t *device_info ) { 421f8: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 421fc: 48d7 0c0c moveml %d2-%d3/%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 ); 42200: 4878 0001 pea 1 <== NOT EXECUTED 42204: 260e movel %fp,%d3 <== NOT EXECUTED 42206: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 4220c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4220e: 42a7 clrl %sp@- <== NOT EXECUTED 42210: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42214: 4eb9 0004 260c jsr 4260c <== NOT EXECUTED the_jnode = loc.node_access; if ( !loc.ops->node_type_h ) { 4221a: 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; 4221e: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED if ( !loc.ops->node_type_h ) { 42222: 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 ); 42226: 2400 movel %d0,%d2 <== NOT EXECUTED the_jnode = loc.node_access; if ( !loc.ops->node_type_h ) { 42228: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4222e: 4a88 tstl %a0 <== NOT EXECUTED 42230: 6730 beqs 42262 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } node_type = (*loc.ops->node_type_h)( &loc ); 42232: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42234: 4e90 jsr %a0@ <== NOT EXECUTED if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) { 42236: 588f addql #4,%sp <== NOT EXECUTED 42238: 4a82 tstl %d2 <== NOT EXECUTED 4223a: 674e beqs 4228a <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 4223c: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 42240: 4a88 tstl %a0 <== NOT EXECUTED 42242: 6700 009c beqw 422e0 <== NOT EXECUTED 42246: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 4224a: 4a88 tstl %a0 <== NOT EXECUTED 4224c: 6700 0092 beqw 422e0 <== NOT EXECUTED 42250: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42252: 4e90 jsr %a0@ <== NOT EXECUTED 42254: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_freenode( &loc ); #endif return RTEMS_SUCCESSFUL; } 42256: 4cee 0c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a3 <== NOT EXECUTED 4225c: 4e5e unlk %fp <== NOT EXECUTED } node_type = (*loc.ops->node_type_h)( &loc ); if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) { rtems_filesystem_freenode( &loc ); 4225e: 700d moveq #13,%d0 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); #endif return RTEMS_SUCCESSFUL; } 42260: 4e75 rts <== NOT EXECUTED result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true ); the_jnode = loc.node_access; if ( !loc.ops->node_type_h ) { rtems_filesystem_freenode( &loc ); 42262: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 42266: 4a88 tstl %a0 <== NOT EXECUTED 42268: 6706 beqs 42270 <== NOT EXECUTED 4226a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4226c: 4e90 jsr %a0@ <== NOT EXECUTED 4226e: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 42270: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED rtems_filesystem_freenode( &loc ); #endif return RTEMS_SUCCESSFUL; } 42276: 4cee 0c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a3 <== NOT EXECUTED result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true ); the_jnode = loc.node_access; if ( !loc.ops->node_type_h ) { rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); 4227c: 2040 moveal %d0,%a0 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); #endif return RTEMS_SUCCESSFUL; } 4227e: 4e5e unlk %fp <== NOT EXECUTED result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true ); the_jnode = loc.node_access; if ( !loc.ops->node_type_h ) { rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); 42280: 70ff moveq #-1,%d0 <== NOT EXECUTED 42282: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); #endif return RTEMS_SUCCESSFUL; } 42288: 4e75 rts <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } node_type = (*loc.ops->node_type_h)( &loc ); if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) { 4228a: 7202 moveq #2,%d1 <== NOT EXECUTED 4228c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4228e: 66ac bnes 4223c <== NOT EXECUTED rtems_filesystem_freenode( &loc ); return RTEMS_UNSATISFIED; } device_info->device_name = (char *) name; device_info->device_name_length = strlen( name ); 42290: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) { rtems_filesystem_freenode( &loc ); return RTEMS_UNSATISFIED; } device_info->device_name = (char *) name; 42294: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 42298: 20ae 0008 movel %fp@(8),%a0@ <== NOT EXECUTED device_info->device_name_length = strlen( name ); 4229c: 4eb9 0004 ed50 jsr 4ed50 <== NOT EXECUTED 422a2: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 422a6: 2340 0004 movel %d0,%a1@(4) <== NOT EXECUTED device_info->major = the_jnode->info.device.major; 422aa: 47ea 004c lea %a2@(76),%a3 <== NOT EXECUTED 422ae: 2353 0008 movel %a3@,%a1@(8) <== NOT EXECUTED device_info->minor = the_jnode->info.device.minor; 422b2: d5fc 0000 0050 addal #80,%a2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 422b8: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED } device_info->device_name = (char *) name; device_info->device_name_length = strlen( name ); device_info->major = the_jnode->info.device.major; device_info->minor = the_jnode->info.device.minor; 422bc: 2352 000c movel %a2@,%a1@(12) <== NOT EXECUTED rtems_filesystem_freenode( &loc ); return RTEMS_UNSATISFIED; } device_info->device_name = (char *) name; device_info->device_name_length = strlen( name ); 422c0: 588f addql #4,%sp <== NOT EXECUTED device_info->major = the_jnode->info.device.major; device_info->minor = the_jnode->info.device.minor; rtems_filesystem_freenode( &loc ); 422c2: 4a88 tstl %a0 <== NOT EXECUTED 422c4: 6726 beqs 422ec <== NOT EXECUTED 422c6: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 422ca: 4a88 tstl %a0 <== NOT EXECUTED 422cc: 671e beqs 422ec <== NOT EXECUTED 422ce: 2f03 movel %d3,%sp@- <== NOT EXECUTED 422d0: 4e90 jsr %a0@ <== NOT EXECUTED 422d2: 588f addql #4,%sp <== NOT EXECUTED #endif return RTEMS_SUCCESSFUL; } 422d4: 4cee 0c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a3 <== NOT EXECUTED 422da: 4e5e unlk %fp <== NOT EXECUTED device_info->device_name = (char *) name; device_info->device_name_length = strlen( name ); device_info->major = the_jnode->info.device.major; device_info->minor = the_jnode->info.device.minor; rtems_filesystem_freenode( &loc ); 422dc: 4280 clrl %d0 <== NOT EXECUTED #endif return RTEMS_SUCCESSFUL; } 422de: 4e75 rts <== NOT EXECUTED 422e0: 4cee 0c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a3 <== NOT EXECUTED 422e6: 4e5e unlk %fp <== NOT EXECUTED device_info->device_name = (char *) name; device_info->device_name_length = strlen( name ); device_info->major = the_jnode->info.device.major; device_info->minor = the_jnode->info.device.minor; rtems_filesystem_freenode( &loc ); 422e8: 700d moveq #13,%d0 <== NOT EXECUTED #endif return RTEMS_SUCCESSFUL; } 422ea: 4e75 rts <== NOT EXECUTED 422ec: 4cee 0c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a3 <== NOT EXECUTED 422f2: 4e5e unlk %fp <== NOT EXECUTED device_info->device_name = (char *) name; device_info->device_name_length = strlen( name ); device_info->major = the_jnode->info.device.major; device_info->minor = the_jnode->info.device.minor; rtems_filesystem_freenode( &loc ); 422f4: 4280 clrl %d0 <== NOT EXECUTED #endif return RTEMS_SUCCESSFUL; } 422f6: 4e75 rts 0004d048 : rtems_status_code rtems_io_open( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4d048: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d04c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d04e: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4d052: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d054: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4d058: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4d05c: b4b9 0005 a516 cmpl 5a516 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4d062: 642c bccs 4d090 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].open_entry; 4d064: 2002 movel %d2,%d0 <== NOT EXECUTED 4d066: 2202 movel %d2,%d1 <== NOT EXECUTED 4d068: 2079 0005 a51a moveal 5a51a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4d06e: e788 lsll #3,%d0 <== NOT EXECUTED 4d070: eb89 lsll #5,%d1 <== NOT EXECUTED 4d072: 9280 subl %d0,%d1 <== NOT EXECUTED 4d074: 2030 1804 movel %a0@(00000004,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4d078: 6718 beqs 4d092 <== NOT EXECUTED 4d07a: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4d07e: 2240 moveal %d0,%a1 <== NOT EXECUTED 4d080: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4d084: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4d088: 241f movel %sp@+,%d2 <== NOT EXECUTED 4d08a: 261f movel %sp@+,%d3 <== NOT EXECUTED 4d08c: 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; 4d08e: 4ed1 jmp %a1@ <== NOT EXECUTED void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4d090: 700a moveq #10,%d0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].open_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; } 4d092: 241f movel %sp@+,%d2 <== NOT EXECUTED 4d094: 261f movel %sp@+,%d3 <== NOT EXECUTED 4d096: 4e5e unlk %fp <== NOT EXECUTED 4d098: 4e75 rts <== NOT EXECUTED ... 0004d09c : rtems_status_code rtems_io_read( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4d09c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d0a0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d0a2: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4d0a6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d0a8: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4d0ac: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4d0b0: b4b9 0005 a516 cmpl 5a516 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4d0b6: 642c bccs 4d0e4 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].read_entry; 4d0b8: 2002 movel %d2,%d0 <== NOT EXECUTED 4d0ba: 2202 movel %d2,%d1 <== NOT EXECUTED 4d0bc: 2079 0005 a51a moveal 5a51a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4d0c2: e788 lsll #3,%d0 <== NOT EXECUTED 4d0c4: eb89 lsll #5,%d1 <== NOT EXECUTED 4d0c6: 9280 subl %d0,%d1 <== NOT EXECUTED 4d0c8: 2030 180c movel %a0@(0000000c,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4d0cc: 6718 beqs 4d0e6 <== NOT EXECUTED 4d0ce: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4d0d2: 2240 moveal %d0,%a1 <== NOT EXECUTED 4d0d4: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4d0d8: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4d0dc: 241f movel %sp@+,%d2 <== NOT EXECUTED 4d0de: 261f movel %sp@+,%d3 <== NOT EXECUTED 4d0e0: 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; 4d0e2: 4ed1 jmp %a1@ <== NOT EXECUTED void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4d0e4: 700a moveq #10,%d0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].read_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; } 4d0e6: 241f movel %sp@+,%d2 <== NOT EXECUTED 4d0e8: 261f movel %sp@+,%d3 <== NOT EXECUTED 4d0ea: 4e5e unlk %fp <== NOT EXECUTED 4d0ec: 4e75 rts <== NOT EXECUTED ... 00047300 : 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 ) { 47300: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 47304: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 47308: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4730c: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 47310: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED /* * Validate the pointer data and contents passed in */ if ( !driver_table ) 47314: 4a89 tstl %a1 <== NOT EXECUTED 47316: 6700 00b0 beqw 473c8 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !registered_major ) 4731a: 4a8b tstl %a3 <== NOT EXECUTED 4731c: 6700 00aa beqw 473c8 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !driver_table->initialization_entry && !driver_table->open_entry ) 47320: 4a91 tstl %a1@ <== NOT EXECUTED 47322: 6700 009c beqw 473c0 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; *registered_major = 0; 47326: 4293 clrl %a3@ <== NOT EXECUTED /* * The requested major number is higher than what is configured. */ if ( major >= _IO_Number_of_drivers ) 47328: 2239 0005 c192 movel 5c192 <_IO_Number_of_drivers>,%d1 <== NOT EXECUTED 4732e: b481 cmpl %d1,%d2 <== NOT EXECUTED 47330: 6464 bccs 47396 <== NOT EXECUTED /* * Test for initialise/open being present to indicate the driver slot is * in use. */ if ( major == 0 ) { 47332: 4a82 tstl %d2 <== NOT EXECUTED 47334: 666a bnes 473a0 <== NOT EXECUTED bool found = false; for ( major = _IO_Number_of_drivers - 1 ; major ; major-- ) { 47336: 2401 movel %d1,%d2 <== NOT EXECUTED 47338: 5382 subql #1,%d2 <== NOT EXECUTED 4733a: 6722 beqs 4735e <== NOT EXECUTED 4733c: 2079 0005 c196 moveal 5c196 <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 47342: 2001 movel %d1,%d0 <== NOT EXECUTED 47344: e789 lsll #3,%d1 <== NOT EXECUTED 47346: eb88 lsll #5,%d0 <== NOT EXECUTED 47348: 91c1 subal %d1,%a0 <== NOT EXECUTED 4734a: 41f0 08e8 lea %a0@(ffffffe8,%d0:l),%a0 <== NOT EXECUTED 4734e: 2448 moveal %a0,%a2 <== NOT EXECUTED if ( !_IO_Driver_address_table[major].initialization_entry && 47350: 4a90 tstl %a0@ <== NOT EXECUTED 47352: 6714 beqs 47368 <== NOT EXECUTED * in use. */ if ( major == 0 ) { bool found = false; for ( major = _IO_Number_of_drivers - 1 ; major ; major-- ) { 47354: 5382 subql #1,%d2 <== NOT EXECUTED 47356: d1fc ffff ffe8 addal #-24,%a0 <== NOT EXECUTED 4735c: 66f0 bnes 4734e <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); } 4735e: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 47362: 4e5e unlk %fp <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); 47364: 7005 moveq #5,%d0 <== NOT EXECUTED } 47366: 4e75 rts <== NOT EXECUTED */ if ( major == 0 ) { bool found = false; for ( major = _IO_Number_of_drivers - 1 ; major ; major-- ) { if ( !_IO_Driver_address_table[major].initialization_entry && 47368: 4aa8 0004 tstl %a0@(4) <== NOT EXECUTED 4736c: 66e6 bnes 47354 <== NOT EXECUTED if ( _IO_Driver_address_table[major].initialization_entry || _IO_Driver_address_table[major].open_entry ) return RTEMS_RESOURCE_IN_USE; _IO_Driver_address_table[major] = *driver_table; 4736e: 204a moveal %a2,%a0 <== NOT EXECUTED 47370: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 47372: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 47374: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 47376: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 47378: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 4737a: 2091 movel %a1@,%a0@ <== NOT EXECUTED *registered_major = major; 4737c: 2682 movel %d2,%a3@ <== NOT EXECUTED return rtems_io_initialize( major, 0, NULL ); 4737e: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED 47382: 42ae 0010 clrl %fp@(16) <== NOT EXECUTED 47386: 42ae 000c clrl %fp@(12) <== NOT EXECUTED } 4738a: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 4738e: 4e5e unlk %fp <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); 47390: 4ef9 0004 7130 jmp 47130 <== NOT EXECUTED } 47396: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 4739a: 4e5e unlk %fp <== NOT EXECUTED *registered_major = 0; /* * The requested major number is higher than what is configured. */ if ( major >= _IO_Number_of_drivers ) 4739c: 700a moveq #10,%d0 <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); } 4739e: 4e75 rts <== NOT EXECUTED if ( !found ) return RTEMS_TOO_MANY; } if ( _IO_Driver_address_table[major].initialization_entry || 473a0: 2202 movel %d2,%d1 <== NOT EXECUTED 473a2: 2002 movel %d2,%d0 <== NOT EXECUTED 473a4: 2479 0005 c196 moveal 5c196 <_IO_Driver_address_table>,%a2 <== NOT EXECUTED 473aa: e789 lsll #3,%d1 <== NOT EXECUTED 473ac: eb88 lsll #5,%d0 <== NOT EXECUTED 473ae: 9081 subl %d1,%d0 <== NOT EXECUTED 473b0: d5c0 addal %d0,%a2 <== NOT EXECUTED 473b2: 4a92 tstl %a2@ <== NOT EXECUTED 473b4: 671c beqs 473d2 <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); 473b6: 700c moveq #12,%d0 <== NOT EXECUTED } 473b8: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 473bc: 4e5e unlk %fp <== NOT EXECUTED 473be: 4e75 rts <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !registered_major ) return RTEMS_INVALID_ADDRESS; if ( !driver_table->initialization_entry && !driver_table->open_entry ) 473c0: 4aa9 0004 tstl %a1@(4) <== NOT EXECUTED 473c4: 6600 ff60 bnew 47326 <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); } 473c8: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 473cc: 4e5e unlk %fp <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); 473ce: 7009 moveq #9,%d0 <== NOT EXECUTED } 473d0: 4e75 rts <== NOT EXECUTED if ( !found ) return RTEMS_TOO_MANY; } if ( _IO_Driver_address_table[major].initialization_entry || 473d2: 4aaa 0004 tstl %a2@(4) <== NOT EXECUTED 473d6: 6796 beqs 4736e <== NOT EXECUTED _IO_Driver_address_table[major] = *driver_table; *registered_major = major; return rtems_io_initialize( major, 0, NULL ); 473d8: 700c moveq #12,%d0 <== NOT EXECUTED 473da: 60dc bras 473b8 <== NOT EXECUTED 000422f8 : rtems_status_code rtems_io_register_name( const char *device_name, rtems_device_major_number major, rtems_device_minor_number minor ) { 422f8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_device_minor_number _minor ) { union __rtems_dev_t temp; temp.__overlay.major = _major; 422fc: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED temp.__overlay.minor = _minor; 42300: 222e 0010 movel %fp@(16),%d1 <== 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 ); 42304: 2f01 movel %d1,%sp@- <== NOT EXECUTED 42306: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42308: 4878 21ff pea 21ff <== NOT EXECUTED 4230c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42310: 4eb9 0004 28a0 jsr 428a0 <== NOT EXECUTED /* this is the only error returned by the old version */ if ( status ) 42316: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 4231c: 4a80 tstl %d0 <== NOT EXECUTED 4231e: 6604 bnes 42324 <== NOT EXECUTED return RTEMS_TOO_MANY; #endif return RTEMS_SUCCESSFUL; } 42320: 4e5e unlk %fp <== NOT EXECUTED 42322: 4e75 rts <== NOT EXECUTED 42324: 4e5e unlk %fp <== NOT EXECUTED dev = rtems_filesystem_make_dev_t( major, minor ); status = mknod( device_name, 0777 | S_IFCHR, dev ); /* this is the only error returned by the old version */ if ( status ) 42326: 7005 moveq #5,%d0 <== NOT EXECUTED return RTEMS_TOO_MANY; #endif return RTEMS_SUCCESSFUL; } 42328: 4e75 rts <== NOT EXECUTED ... 000473dc : */ rtems_status_code rtems_io_unregister_driver( rtems_device_major_number major ) { 473dc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 473e0: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED if ( major < _IO_Number_of_drivers ) { 473e4: b2b9 0005 c192 cmpl 5c192 <_IO_Number_of_drivers>,%d1 <== NOT EXECUTED 473ea: 6506 bcss 473f2 <== NOT EXECUTED sizeof( rtems_driver_address_table ) ); return RTEMS_SUCCESSFUL; } return RTEMS_UNSATISFIED; } 473ec: 4e5e unlk %fp <== NOT EXECUTED rtems_status_code rtems_io_unregister_driver( rtems_device_major_number major ) { if ( major < _IO_Number_of_drivers ) { 473ee: 700d moveq #13,%d0 <== NOT EXECUTED sizeof( rtems_driver_address_table ) ); return RTEMS_SUCCESSFUL; } return RTEMS_UNSATISFIED; } 473f0: 4e75 rts <== NOT EXECUTED rtems_status_code rtems_io_unregister_driver( rtems_device_major_number major ) { if ( major < _IO_Number_of_drivers ) { memset( 473f2: 2079 0005 c196 moveal 5c196 <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 473f8: 2001 movel %d1,%d0 <== NOT EXECUTED 473fa: eb88 lsll #5,%d0 <== NOT EXECUTED 473fc: e789 lsll #3,%d1 <== NOT EXECUTED 473fe: 9081 subl %d1,%d0 <== NOT EXECUTED 47400: d1c0 addal %d0,%a0 <== NOT EXECUTED 47402: 4298 clrl %a0@+ <== NOT EXECUTED 47404: 4280 clrl %d0 <== NOT EXECUTED 47406: 4298 clrl %a0@+ <== NOT EXECUTED 47408: 4298 clrl %a0@+ <== NOT EXECUTED 4740a: 4298 clrl %a0@+ <== NOT EXECUTED 4740c: 4298 clrl %a0@+ <== NOT EXECUTED 4740e: 4290 clrl %a0@ <== NOT EXECUTED sizeof( rtems_driver_address_table ) ); return RTEMS_SUCCESSFUL; } return RTEMS_UNSATISFIED; } 47410: 4e5e unlk %fp <== NOT EXECUTED 47412: 4e75 rts 0004d0f0 : rtems_status_code rtems_io_write( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4d0f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d0f4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d0f6: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4d0fa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d0fc: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 4d100: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4d104: b4b9 0005 a516 cmpl 5a516 <_IO_Number_of_drivers>,%d2 <== NOT EXECUTED 4d10a: 642c bccs 4d138 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].write_entry; 4d10c: 2002 movel %d2,%d0 <== NOT EXECUTED 4d10e: 2202 movel %d2,%d1 <== NOT EXECUTED 4d110: 2079 0005 a51a moveal 5a51a <_IO_Driver_address_table>,%a0 <== NOT EXECUTED 4d116: e788 lsll #3,%d0 <== NOT EXECUTED 4d118: eb89 lsll #5,%d1 <== NOT EXECUTED 4d11a: 9280 subl %d0,%d1 <== NOT EXECUTED 4d11c: 2030 1810 movel %a0@(00000010,%d1:l),%d0 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4d120: 6718 beqs 4d13a <== NOT EXECUTED 4d122: 2d49 0010 movel %a1,%fp@(16) <== NOT EXECUTED 4d126: 2240 moveal %d0,%a1 <== NOT EXECUTED 4d128: 2d43 000c movel %d3,%fp@(12) <== NOT EXECUTED 4d12c: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 4d130: 241f movel %sp@+,%d2 <== NOT EXECUTED 4d132: 261f movel %sp@+,%d3 <== NOT EXECUTED 4d134: 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; 4d136: 4ed1 jmp %a1@ <== NOT EXECUTED void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4d138: 700a moveq #10,%d0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].write_entry; return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; } 4d13a: 241f movel %sp@+,%d2 <== NOT EXECUTED 4d13c: 261f movel %sp@+,%d3 <== NOT EXECUTED 4d13e: 4e5e unlk %fp <== NOT EXECUTED 4d140: 4e75 rts <== NOT EXECUTED ... 00048450 : #include #include void rtems_iterate_over_all_threads(rtems_per_thread_routine routine) { 48450: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 48454: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 48458: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED uint32_t i; uint32_t api_index; Thread_Control *the_thread; Objects_Information *information; if ( !routine ) 4845c: 4a8c tstl %a4 <== NOT EXECUTED 4845e: 6744 beqs 484a4 <== NOT EXECUTED return; 48460: 47f9 0006 4260 lea 64260 <_Objects_Information_table+0x4>,%a3 <== NOT EXECUTED for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) { if ( !_Objects_Information_table[ api_index ] ) 48466: 2053 moveal %a3@,%a0 <== NOT EXECUTED 48468: 4a88 tstl %a0 <== NOT EXECUTED 4846a: 672e beqs 4849a <== NOT EXECUTED continue; information = _Objects_Information_table[ api_index ][ 1 ]; 4846c: 2468 0004 moveal %a0@(4),%a2 <== NOT EXECUTED if ( information ) { 48470: 4a8a tstl %a2 <== NOT EXECUTED 48472: 6726 beqs 4849a <== NOT EXECUTED for ( i=1 ; i <= information->maximum ; i++ ) { 48474: 4a6a 000e tstw %a2@(14) <== NOT EXECUTED 48478: 6720 beqs 4849a <== NOT EXECUTED 4847a: 7401 moveq #1,%d2 <== NOT EXECUTED the_thread = (Thread_Control *)information->local_table[ i ]; 4847c: 206a 001a moveal %a2@(26),%a0 <== NOT EXECUTED 48480: 2030 2c00 movel %a0@(00000000,%d2:l:4),%d0 <== 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++ ) { 48484: 5282 addql #1,%d2 <== NOT EXECUTED the_thread = (Thread_Control *)information->local_table[ i ]; if ( !the_thread ) 48486: 4a80 tstl %d0 <== NOT EXECUTED 48488: 6706 beqs 48490 <== NOT EXECUTED continue; (*routine)(the_thread); 4848a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4848c: 4e94 jsr %a4@ <== NOT EXECUTED 4848e: 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++ ) { 48490: 4280 clrl %d0 <== NOT EXECUTED 48492: 302a 000e movew %a2@(14),%d0 <== NOT EXECUTED 48496: b480 cmpl %d0,%d2 <== NOT EXECUTED 48498: 63e2 blss 4847c <== NOT EXECUTED 4849a: 588b addql #4,%a3 <== NOT EXECUTED if ( !routine ) return; for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; 4849c: b7fc 0006 4270 cmpal #410224,%a3 <== NOT EXECUTED 484a2: 66c2 bnes 48466 <== NOT EXECUTED (*routine)(the_thread); } } } } 484a4: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 <== NOT EXECUTED 484aa: 4e5e unlk %fp <== NOT EXECUTED 484ac: 4e75 rts <== NOT EXECUTED ... 0004aa2a : * 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 ) { 4aa2a: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4aa2e: 2f0a movel %a2,%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 ); 4aa30: 42a7 clrl %sp@- <== NOT EXECUTED 4aa32: 42a7 clrl %sp@- <== NOT EXECUTED 4aa34: 2f39 0005 9b1c movel 59b1c ,%sp@- <== NOT EXECUTED 4aa3a: 4eb9 0004 5be8 jsr 45be8 <== NOT EXECUTED if (rtems_libio_iop_freelist) { 4aa40: 2039 0005 9b18 movel 59b18 ,%d0 <== NOT EXECUTED 4aa46: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4aa4c: 6618 bnes 4aa66 <== NOT EXECUTED failed: iop = 0; done: rtems_semaphore_release( rtems_libio_semaphore ); 4aa4e: 2f39 0005 9b1c movel 59b1c ,%sp@- <== NOT EXECUTED 4aa54: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED } failed: iop = 0; done: 4aa5a: 95ca subal %a2,%a2 <== NOT EXECUTED rtems_semaphore_release( rtems_libio_semaphore ); return iop; } 4aa5c: 200a movel %a2,%d0 <== NOT EXECUTED 4aa5e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4aa62: 4e5e unlk %fp <== NOT EXECUTED 4aa64: 4e75 rts <== NOT EXECUTED rtems_id sema; rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); if (rtems_libio_iop_freelist) { rc = rtems_semaphore_create( 4aa66: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4aa6a: 90b9 0005 9b14 subl 59b14 ,%d0 <== NOT EXECUTED 4aa70: 42a7 clrl %sp@- <== NOT EXECUTED 4aa72: 223c c4ec 4ec5 movel #-991146299,%d1 <== NOT EXECUTED 4aa78: 4878 0054 pea 54 <== NOT EXECUTED 4aa7c: e480 asrl #2,%d0 <== NOT EXECUTED 4aa7e: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 4aa82: 4878 0001 pea 1 <== NOT EXECUTED 4aa86: 0080 4c42 4900 oril #1279412480,%d0 <== NOT EXECUTED 4aa8c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4aa8e: 4eb9 0004 5920 jsr 45920 <== NOT EXECUTED 1, RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY, RTEMS_NO_PRIORITY, &sema ); if (rc != RTEMS_SUCCESSFUL) 4aa94: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4aa9a: 4a80 tstl %d0 <== NOT EXECUTED 4aa9c: 66b0 bnes 4aa4e <== NOT EXECUTED goto failed; iop = rtems_libio_iop_freelist; 4aa9e: 2479 0005 9b18 moveal 59b18 ,%a2 <== NOT EXECUTED next = iop->data1; 4aaa4: 202a 0028 movel %a2@(40),%d0 <== NOT EXECUTED (void) memset( iop, 0, sizeof(rtems_libio_t) ); 4aaa8: 204a moveal %a2,%a0 <== NOT EXECUTED 4aaaa: 4298 clrl %a0@+ <== NOT EXECUTED 4aaac: 4298 clrl %a0@+ <== NOT EXECUTED 4aaae: 4298 clrl %a0@+ <== NOT EXECUTED 4aab0: 4298 clrl %a0@+ <== NOT EXECUTED 4aab2: 4298 clrl %a0@+ <== NOT EXECUTED 4aab4: 4298 clrl %a0@+ <== NOT EXECUTED 4aab6: 4298 clrl %a0@+ <== NOT EXECUTED 4aab8: 4298 clrl %a0@+ <== NOT EXECUTED 4aaba: 4298 clrl %a0@+ <== NOT EXECUTED 4aabc: 4298 clrl %a0@+ <== NOT EXECUTED 4aabe: 4298 clrl %a0@+ <== NOT EXECUTED 4aac0: 4298 clrl %a0@+ <== NOT EXECUTED 4aac2: 4290 clrl %a0@ <== NOT EXECUTED iop->flags = LIBIO_FLAGS_OPEN; iop->sem = sema; 4aac4: 256e fffc 0020 movel %fp@(-4),%a2@(32) <== NOT EXECUTED rtems_libio_iop_freelist = next; 4aaca: 23c0 0005 9b18 movel %d0,59b18 <== 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; 4aad0: 203c 0000 0100 movel #256,%d0 <== NOT EXECUTED 4aad6: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED failed: iop = 0; done: rtems_semaphore_release( rtems_libio_semaphore ); 4aada: 2f39 0005 9b1c movel 59b1c ,%sp@- <== NOT EXECUTED 4aae0: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED return iop; } 4aae6: 200a movel %a2,%d0 <== NOT EXECUTED 4aae8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4aaec: 4e5e unlk %fp <== NOT EXECUTED 4aaee: 4e75 rts 0004aaf0 : }; uint32_t rtems_libio_fcntl_flags( uint32_t fcntl_flags ) { 4aaf0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4aaf4: 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 ); 4aaf6: 7003 moveq #3,%d0 <== NOT EXECUTED }; uint32_t rtems_libio_fcntl_flags( uint32_t fcntl_flags ) { 4aaf8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4aafa: 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 ); 4aafe: c082 andl %d2,%d0 <== NOT EXECUTED 4ab00: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ab02: 4879 0005 722c pea 5722c <== NOT EXECUTED 4ab08: 4eb9 0004 c9f0 jsr 4c9f0 <== NOT EXECUTED 4ab0e: 2600 movel %d0,%d3 <== NOT EXECUTED /* * Everything else is single bits */ flags |= 4ab10: 70fc moveq #-4,%d0 <== NOT EXECUTED 4ab12: c082 andl %d2,%d0 <== NOT EXECUTED 4ab14: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4ab16: 4879 0005 725c pea 5725c <== NOT EXECUTED 4ab1c: 4eb9 0004 c9a4 jsr 4c9a4 <== NOT EXECUTED rtems_assoc_local_by_remote_bitfield(status_flags_assoc, fcntl_flags); return flags; } 4ab22: 8083 orl %d3,%d0 <== NOT EXECUTED 4ab24: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4ab28: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 4ab2c: 4e5e unlk %fp <== NOT EXECUTED 4ab2e: 4e75 rts 0004a99a : */ void rtems_libio_free( rtems_libio_t *iop ) { 4a99a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a99e: 2f0a movel %a2,%sp@- <== NOT EXECUTED rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); 4a9a0: 42a7 clrl %sp@- <== NOT EXECUTED */ void rtems_libio_free( rtems_libio_t *iop ) { 4a9a2: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); 4a9a6: 42a7 clrl %sp@- <== NOT EXECUTED 4a9a8: 2f39 0005 9b1c movel 59b1c ,%sp@- <== NOT EXECUTED 4a9ae: 4eb9 0004 5be8 jsr 45be8 <== NOT EXECUTED if (iop->sem) 4a9b4: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 4a9b8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a9be: 6630 bnes 4a9f0 <== NOT EXECUTED rtems_semaphore_delete(iop->sem); iop->flags &= ~LIBIO_FLAGS_OPEN; iop->data1 = rtems_libio_iop_freelist; 4a9c0: 41f9 0005 9b18 lea 59b18 ,%a0 <== NOT EXECUTED 4a9c6: 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; 4a9ca: 203c ffff feff movel #-257,%d0 <== NOT EXECUTED iop->data1 = rtems_libio_iop_freelist; rtems_libio_iop_freelist = iop; 4a9d0: 23ca 0005 9b18 movel %a2,59b18 <== NOT EXECUTED rtems_semaphore_release(rtems_libio_semaphore); 4a9d6: 41f9 0005 9b1c lea 59b1c ,%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; 4a9dc: 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); } 4a9e0: 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); 4a9e4: 2d50 0008 movel %a0@,%fp@(8) <== NOT EXECUTED } 4a9e8: 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); 4a9ea: 4ef9 0004 5d10 jmp 45d10 <== NOT EXECUTED ) { rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); if (iop->sem) rtems_semaphore_delete(iop->sem); 4a9f0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a9f2: 4eb9 0004 5b08 jsr 45b08 <== NOT EXECUTED iop->flags &= ~LIBIO_FLAGS_OPEN; iop->data1 = rtems_libio_iop_freelist; 4a9f8: 41f9 0005 9b18 lea 59b18 ,%a0 <== NOT EXECUTED 4a9fe: 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; 4aa02: 203c ffff feff movel #-257,%d0 <== NOT EXECUTED 4aa08: c1aa 000c andl %d0,%a2@(12) <== NOT EXECUTED iop->data1 = rtems_libio_iop_freelist; rtems_libio_iop_freelist = iop; 4aa0c: 23ca 0005 9b18 movel %a2,59b18 <== NOT EXECUTED rtems_semaphore_release(rtems_libio_semaphore); 4aa12: 41f9 0005 9b1c lea 59b1c ,%a0 <== NOT EXECUTED ) { rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); if (iop->sem) rtems_semaphore_delete(iop->sem); 4aa18: 588f addql #4,%sp <== NOT EXECUTED iop->flags &= ~LIBIO_FLAGS_OPEN; iop->data1 = rtems_libio_iop_freelist; rtems_libio_iop_freelist = iop; rtems_semaphore_release(rtems_libio_semaphore); } 4aa1a: 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); 4aa1e: 2d50 0008 movel %a0@,%fp@(8) <== NOT EXECUTED } 4aa22: 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); 4aa24: 4ef9 0004 5d10 jmp 45d10 <== NOT EXECUTED 00042750 : { rtems_status_code rc; int i; rtems_libio_t *iop; if (rtems_libio_number_iops > 0) 42750: 2039 0005 8048 movel 58048 ,%d0 <== NOT EXECUTED * * Called by BSP startup code to initialize the libio subsystem. */ void rtems_libio_init( void ) { 42756: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4275a: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_status_code rc; int i; rtems_libio_t *iop; if (rtems_libio_number_iops > 0) 4275c: 4a80 tstl %d0 <== NOT EXECUTED 4275e: 6756 beqs 427b6 <== NOT EXECUTED { rtems_libio_iops = (rtems_libio_t *) calloc(rtems_libio_number_iops, 42760: 4878 0034 pea 34 <== NOT EXECUTED 42764: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42766: 4eb9 0004 a500 jsr 4a500 <== NOT EXECUTED sizeof(rtems_libio_t)); if (rtems_libio_iops == NULL) 4276c: 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, 4276e: 2240 moveal %d0,%a1 <== NOT EXECUTED 42770: 23c0 0005 9b14 movel %d0,59b14 <== NOT EXECUTED 42776: 2040 moveal %d0,%a0 <== NOT EXECUTED sizeof(rtems_libio_t)); if (rtems_libio_iops == NULL) 42778: 676e beqs 427e8 <== NOT EXECUTED 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++) 4277a: 2039 0005 8048 movel 58048 ,%d0 <== NOT EXECUTED rtems_libio_iops = (rtems_libio_t *) calloc(rtems_libio_number_iops, sizeof(rtems_libio_t)); if (rtems_libio_iops == NULL) rtems_fatal_error_occurred(RTEMS_NO_MEMORY); iop = rtems_libio_iop_freelist = rtems_libio_iops; 42780: 23c9 0005 9b18 movel %a1,59b18 <== NOT EXECUTED for (i = 0 ; i < (rtems_libio_number_iops - 1) ; i++, iop++) 42786: 7201 moveq #1,%d1 <== NOT EXECUTED 42788: b280 cmpl %d0,%d1 <== NOT EXECUTED 4278a: 6726 beqs 427b2 <== NOT EXECUTED 4278c: 41e9 0034 lea %a1@(52),%a0 <== NOT EXECUTED 42790: 7401 moveq #1,%d2 <== NOT EXECUTED iop->data1 = iop + 1; 42792: 2148 fff4 movel %a0,%a0@(-12) <== NOT EXECUTED 42796: 5282 addql #1,%d2 <== NOT EXECUTED 42798: 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++) 4279e: b082 cmpl %d2,%d0 <== NOT EXECUTED 427a0: 66f0 bnes 42792 <== NOT EXECUTED 427a2: 2202 movel %d2,%d1 <== NOT EXECUTED 427a4: 2002 movel %d2,%d0 <== NOT EXECUTED 427a6: e589 lsll #2,%d1 <== NOT EXECUTED 427a8: e988 lsll #4,%d0 <== NOT EXECUTED 427aa: 9081 subl %d1,%d0 <== NOT EXECUTED 427ac: d082 addl %d2,%d0 <== NOT EXECUTED 427ae: 41f1 0ccc lea %a1@(ffffffcc,%d0:l:4),%a0 <== NOT EXECUTED iop->data1 = iop + 1; iop->data1 = NULL; 427b2: 42a8 0028 clrl %a0@(40) <== NOT EXECUTED /* * Create the binary semaphore used to provide mutual exclusion * on the IOP Table. */ rc = rtems_semaphore_create( 427b6: 4879 0005 9b1c pea 59b1c <== NOT EXECUTED 427bc: 42a7 clrl %sp@- <== NOT EXECUTED 427be: 4878 0054 pea 54 <== NOT EXECUTED 427c2: 4878 0001 pea 1 <== NOT EXECUTED 427c6: 2f3c 4c42 494f movel #1279412559,%sp@- <== NOT EXECUTED 427cc: 4eb9 0004 5920 jsr 45920 <== NOT EXECUTED 1, RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY, RTEMS_NO_PRIORITY, &rtems_libio_semaphore ); if ( rc != RTEMS_SUCCESSFUL ) 427d2: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 427d8: 4a80 tstl %d0 <== NOT EXECUTED 427da: 6616 bnes 427f2 <== NOT EXECUTED /* * Initialize the base file system infrastructure. */ rtems_filesystem_initialize(); } 427dc: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 427e0: 4e5e unlk %fp <== NOT EXECUTED /* * Initialize the base file system infrastructure. */ rtems_filesystem_initialize(); 427e2: 4ef9 0004 a3e4 jmp 4a3e4 <== NOT EXECUTED if (rtems_libio_number_iops > 0) { rtems_libio_iops = (rtems_libio_t *) calloc(rtems_libio_number_iops, sizeof(rtems_libio_t)); if (rtems_libio_iops == NULL) rtems_fatal_error_occurred(RTEMS_NO_MEMORY); 427e8: 4878 001a pea 1a <== NOT EXECUTED 427ec: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY, RTEMS_NO_PRIORITY, &rtems_libio_semaphore ); if ( rc != RTEMS_SUCCESSFUL ) rtems_fatal_error_occurred( rc ); 427f2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 427f4: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED ... 0004a88e : */ int rtems_libio_is_file_open( void *node_access ) { 4a88e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a892: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_libio_t *iop; int result=0; int i; rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); 4a894: 42a7 clrl %sp@- <== NOT EXECUTED */ int rtems_libio_is_file_open( void *node_access ) { 4a896: 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 ); 4a89a: 42a7 clrl %sp@- <== NOT EXECUTED 4a89c: 2f39 0005 9b1c movel 59b1c ,%sp@- <== NOT EXECUTED 4a8a2: 4eb9 0004 5be8 jsr 45be8 <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4a8a8: 2039 0005 9b14 movel 59b14 ,%d0 <== NOT EXECUTED 4a8ae: 2279 0005 8048 moveal 58048 ,%a1 <== NOT EXECUTED 4a8b4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a8ba: 4a89 tstl %a1 <== NOT EXECUTED 4a8bc: 6726 beqs 4a8e4 <== NOT EXECUTED 4a8be: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a8c0: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 4a8c6: 4281 clrl %d1 <== NOT EXECUTED if ((iop->flags & LIBIO_FLAGS_OPEN) != 0) { 4a8c8: 2010 movel %a0@,%d0 <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4a8ca: 5281 addql #1,%d1 <== NOT EXECUTED if ((iop->flags & LIBIO_FLAGS_OPEN) != 0) { 4a8cc: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 4a8d2: 6706 beqs 4a8da <== NOT EXECUTED /* * Check if this node is under the file system that we * are trying to dismount. */ if ( iop->pathinfo.node_access == node_access ) { 4a8d4: b4a8 0004 cmpl %a0@(4),%d2 <== NOT EXECUTED 4a8d8: 6722 beqs 4a8fc <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4a8da: d1fc 0000 0034 addal #52,%a0 <== NOT EXECUTED 4a8e0: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 4a8e2: 62e4 bhis 4a8c8 <== NOT EXECUTED break; } } } rtems_semaphore_release( rtems_libio_semaphore ); 4a8e4: 2f39 0005 9b1c movel 59b1c ,%sp@- <== NOT EXECUTED 4a8ea: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4a8f0: 4282 clrl %d2 <== NOT EXECUTED } rtems_semaphore_release( rtems_libio_semaphore ); return result; } 4a8f2: 2002 movel %d2,%d0 <== NOT EXECUTED 4a8f4: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4a8f8: 4e5e unlk %fp <== NOT EXECUTED 4a8fa: 4e75 rts <== NOT EXECUTED break; } } } rtems_semaphore_release( rtems_libio_semaphore ); 4a8fc: 2f39 0005 9b1c movel 59b1c ,%sp@- <== NOT EXECUTED 4a902: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED /* * Check if this node is under the file system that we * are trying to dismount. */ if ( iop->pathinfo.node_access == node_access ) { 4a908: 7401 moveq #1,%d2 <== NOT EXECUTED } rtems_semaphore_release( rtems_libio_semaphore ); return result; } 4a90a: 2002 movel %d2,%d0 <== NOT EXECUTED 4a90c: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4a910: 4e5e unlk %fp <== NOT EXECUTED 4a912: 4e75 rts 0004a914 : */ int rtems_libio_is_open_files_in_fs( rtems_filesystem_mount_table_entry_t * fs_mt_entry ) { 4a914: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a918: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_libio_t *iop; int result = 0; int i; rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); 4a91a: 42a7 clrl %sp@- <== NOT EXECUTED */ int rtems_libio_is_open_files_in_fs( rtems_filesystem_mount_table_entry_t * fs_mt_entry ) { 4a91c: 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 ); 4a920: 42a7 clrl %sp@- <== NOT EXECUTED 4a922: 2f39 0005 9b1c movel 59b1c ,%sp@- <== NOT EXECUTED 4a928: 4eb9 0004 5be8 jsr 45be8 <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4a92e: 2039 0005 9b14 movel 59b14 ,%d0 <== NOT EXECUTED 4a934: 2279 0005 8048 moveal 58048 ,%a1 <== NOT EXECUTED 4a93a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4a940: 4a89 tstl %a1 <== NOT EXECUTED 4a942: 6726 beqs 4a96a <== NOT EXECUTED 4a944: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a946: d1fc 0000 000c addal #12,%a0 <== NOT EXECUTED 4a94c: 4281 clrl %d1 <== NOT EXECUTED if ((iop->flags & LIBIO_FLAGS_OPEN) != 0) { 4a94e: 2010 movel %a0@,%d0 <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4a950: 5281 addql #1,%d1 <== NOT EXECUTED if ((iop->flags & LIBIO_FLAGS_OPEN) != 0) { 4a952: 0280 0000 0100 andil #256,%d0 <== NOT EXECUTED 4a958: 6706 beqs 4a960 <== 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 ) { 4a95a: b4a8 0010 cmpl %a0@(16),%d2 <== NOT EXECUTED 4a95e: 6722 beqs 4a982 <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4a960: d1fc 0000 0034 addal #52,%a0 <== NOT EXECUTED 4a966: b3c1 cmpal %d1,%a1 <== NOT EXECUTED 4a968: 62e4 bhis 4a94e <== NOT EXECUTED break; } } } rtems_semaphore_release( rtems_libio_semaphore ); 4a96a: 2f39 0005 9b1c movel 59b1c ,%sp@- <== NOT EXECUTED 4a970: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED /* * Look for any active file descriptor entry. */ for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){ 4a976: 4282 clrl %d2 <== NOT EXECUTED } rtems_semaphore_release( rtems_libio_semaphore ); return result; } 4a978: 2002 movel %d2,%d0 <== NOT EXECUTED 4a97a: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4a97e: 4e5e unlk %fp <== NOT EXECUTED 4a980: 4e75 rts <== NOT EXECUTED break; } } } rtems_semaphore_release( rtems_libio_semaphore ); 4a982: 2f39 0005 9b1c movel 59b1c ,%sp@- <== NOT EXECUTED 4a988: 4eb9 0004 5d10 jsr 45d10 <== 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 ) { 4a98e: 7401 moveq #1,%d2 <== NOT EXECUTED } rtems_semaphore_release( rtems_libio_semaphore ); return result; } 4a990: 2002 movel %d2,%d0 <== NOT EXECUTED 4a992: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4a996: 4e5e unlk %fp <== NOT EXECUTED 4a998: 4e75 rts 000619f4 : rtems_filesystem_freenode( &env->root_directory); free(env); } } rtems_status_code rtems_libio_set_private_env(void) { 619f4: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 619f8: 48d7 1c04 moveml %d2/%a2-%a4,%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); 619fc: 486e fffc pea %fp@(-4) <== NOT EXECUTED 61a00: 42a7 clrl %sp@- <== NOT EXECUTED 61a02: 42a7 clrl %sp@- <== NOT EXECUTED 61a04: 4eb9 0006 34bc jsr 634bc <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 61a0a: 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); 61a10: 2400 movel %d0,%d2 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 61a12: 6600 00ae bnew 61ac2 <== NOT EXECUTED /* Only for the first time a malloc is necesary */ if (rtems_current_user_env==&rtems_global_user_env) { 61a16: 203c 0009 ba1c movel #637468,%d0 <== NOT EXECUTED 61a1c: b0b9 0008 6180 cmpl 86180 ,%d0 <== NOT EXECUTED 61a22: 6700 00aa beqw 61ace <== NOT EXECUTED return sc; } rtems_current_user_env = tmp; }; *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ 61a26: 4878 0040 pea 40 <== 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); 61a2a: 45ee ffec lea %fp@(-20),%a2 <== NOT EXECUTED return sc; } rtems_current_user_env = tmp; }; *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ 61a2e: 4879 0009 ba1c pea 9ba1c <== 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); 61a34: 47f9 0004 60a0 lea 460a0 ,%a3 <== NOT EXECUTED return sc; } rtems_current_user_env = tmp; }; *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ 61a3a: 2f39 0008 6180 movel 86180 ,%sp@- <== NOT EXECUTED 61a40: 4eb9 0007 29e0 jsr 729e0 <== NOT EXECUTED rtems_current_user_env->task_id=task_id; /* mark the local values*/ 61a46: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED /* get a clean root */ rtems_filesystem_root = THE_ROOT_FS_LOC; 61a4c: 2279 0009 b354 moveal 9b354 ,%a1 <== NOT EXECUTED 61a52: 2169 0018 0014 movel %a1@(24),%a0@(20) <== NOT EXECUTED * what we are trying to do here is forking off * clones. */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); rtems_filesystem_root = loc; 61a58: 49ee fff8 lea %fp@(-8),%a4 <== 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; 61a5c: 2169 001c 0018 movel %a1@(28),%a0@(24) <== NOT EXECUTED } rtems_current_user_env = tmp; }; *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ rtems_current_user_env->task_id=task_id; /* mark the local values*/ 61a62: 20ae fffc movel %fp@(-4),%a0@ <== NOT EXECUTED /* get a clean root */ rtems_filesystem_root = THE_ROOT_FS_LOC; 61a66: 2169 0020 001c movel %a1@(32),%a0@(28) <== NOT EXECUTED 61a6c: 2169 0024 0020 movel %a1@(36),%a0@(32) <== 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); 61a72: 42a7 clrl %sp@- <== NOT EXECUTED 61a74: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61a76: 42a7 clrl %sp@- <== NOT EXECUTED 61a78: 4879 0008 315a pea 8315a <== NOT EXECUTED 61a7e: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_root = loc; 61a80: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 61a86: 2152 0014 movel %a2@,%a0@(20) <== NOT EXECUTED 61a8a: 216e fff0 0018 movel %fp@(-16),%a0@(24) <== NOT EXECUTED 61a90: 216e fff4 001c movel %fp@(-12),%a0@(28) <== NOT EXECUTED 61a96: 2154 0020 movel %a4@,%a0@(32) <== NOT EXECUTED rtems_filesystem_evaluate_path("/", 0, &loc, 0); 61a9a: 42a7 clrl %sp@- <== NOT EXECUTED 61a9c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61a9e: 42a7 clrl %sp@- <== NOT EXECUTED 61aa0: 4879 0008 315a pea 8315a <== NOT EXECUTED 61aa6: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_current = loc; 61aa8: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 61aae: 5888 addql #4,%a0 <== NOT EXECUTED 61ab0: 20d2 movel %a2@,%a0@+ <== NOT EXECUTED 61ab2: dffc 0000 002c addal #44,%sp <== NOT EXECUTED 61ab8: 20ee fff0 movel %fp@(-16),%a0@+ <== NOT EXECUTED 61abc: 20ee fff4 movel %fp@(-12),%a0@+ <== NOT EXECUTED 61ac0: 2094 movel %a4@,%a0@ <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 61ac2: 2002 movel %d2,%d0 <== NOT EXECUTED 61ac4: 4cee 1c04 ffdc moveml %fp@(-36),%d2/%a2-%a4 <== NOT EXECUTED 61aca: 4e5e unlk %fp <== NOT EXECUTED 61acc: 4e75 rts <== 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)); 61ace: 4878 0040 pea 40 <== NOT EXECUTED 61ad2: 4eb9 0004 6828 jsr 46828 <== NOT EXECUTED if (!tmp) 61ad8: 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)); 61ada: 2440 moveal %d0,%a2 <== NOT EXECUTED if (!tmp) 61adc: 4a80 tstl %d0 <== NOT EXECUTED 61ade: 6700 00c8 beqw 61ba8 <== 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); 61ae2: 487a fdf0 pea %pc@(618d4 ) <== NOT EXECUTED 61ae6: 4879 0008 6180 pea 86180 <== NOT EXECUTED 61aec: 42a7 clrl %sp@- <== NOT EXECUTED 61aee: 4eb9 0006 38c4 jsr 638c4 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 61af4: 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); 61afa: 2640 moveal %d0,%a3 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 61afc: 4a80 tstl %d0 <== NOT EXECUTED 61afe: 6600 00b8 bnew 61bb8 <== NOT EXECUTED * not initialized yet */ free(tmp); return sc; } rtems_current_user_env = tmp; 61b02: 23ca 0008 6180 movel %a2,86180 <== 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); 61b08: 45ee ffec lea %fp@(-20),%a2 <== NOT EXECUTED return sc; } rtems_current_user_env = tmp; }; *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ 61b0c: 4878 0040 pea 40 <== 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); 61b10: 47f9 0004 60a0 lea 460a0 ,%a3 <== NOT EXECUTED return sc; } rtems_current_user_env = tmp; }; *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ 61b16: 4879 0009 ba1c pea 9ba1c <== NOT EXECUTED * what we are trying to do here is forking off * clones. */ rtems_filesystem_evaluate_path("/", 0, &loc, 0); rtems_filesystem_root = loc; 61b1c: 49ee fff8 lea %fp@(-8),%a4 <== NOT EXECUTED return sc; } rtems_current_user_env = tmp; }; *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ 61b20: 2f39 0008 6180 movel 86180 ,%sp@- <== NOT EXECUTED 61b26: 4eb9 0007 29e0 jsr 729e0 <== NOT EXECUTED rtems_current_user_env->task_id=task_id; /* mark the local values*/ 61b2c: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED /* get a clean root */ rtems_filesystem_root = THE_ROOT_FS_LOC; 61b32: 2279 0009 b354 moveal 9b354 ,%a1 <== NOT EXECUTED 61b38: 2169 0018 0014 movel %a1@(24),%a0@(20) <== NOT EXECUTED 61b3e: 2169 001c 0018 movel %a1@(28),%a0@(24) <== NOT EXECUTED 61b44: 2169 0020 001c movel %a1@(32),%a0@(28) <== NOT EXECUTED } rtems_current_user_env = tmp; }; *rtems_current_user_env = rtems_global_user_env; /* get the global values*/ rtems_current_user_env->task_id=task_id; /* mark the local values*/ 61b4a: 20ae fffc movel %fp@(-4),%a0@ <== NOT EXECUTED /* get a clean root */ rtems_filesystem_root = THE_ROOT_FS_LOC; 61b4e: 2169 0024 0020 movel %a1@(36),%a0@(32) <== 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); 61b54: 42a7 clrl %sp@- <== NOT EXECUTED 61b56: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61b58: 42a7 clrl %sp@- <== NOT EXECUTED 61b5a: 4879 0008 315a pea 8315a <== NOT EXECUTED 61b60: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_root = loc; 61b62: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 61b68: 2152 0014 movel %a2@,%a0@(20) <== NOT EXECUTED 61b6c: 216e fff0 0018 movel %fp@(-16),%a0@(24) <== NOT EXECUTED 61b72: 216e fff4 001c movel %fp@(-12),%a0@(28) <== NOT EXECUTED 61b78: 2154 0020 movel %a4@,%a0@(32) <== NOT EXECUTED rtems_filesystem_evaluate_path("/", 0, &loc, 0); 61b7c: 42a7 clrl %sp@- <== NOT EXECUTED 61b7e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61b80: 42a7 clrl %sp@- <== NOT EXECUTED 61b82: 4879 0008 315a pea 8315a <== NOT EXECUTED 61b88: 4e93 jsr %a3@ <== NOT EXECUTED rtems_filesystem_current = loc; 61b8a: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 61b90: 5888 addql #4,%a0 <== NOT EXECUTED 61b92: 20d2 movel %a2@,%a0@+ <== NOT EXECUTED 61b94: dffc 0000 002c addal #44,%sp <== NOT EXECUTED 61b9a: 20ee fff0 movel %fp@(-16),%a0@+ <== NOT EXECUTED 61b9e: 20ee fff4 movel %fp@(-12),%a0@+ <== NOT EXECUTED 61ba2: 2094 movel %a4@,%a0@ <== NOT EXECUTED 61ba4: 6000 ff1c braw 61ac2 <== NOT EXECUTED 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)); if (!tmp) 61ba8: 143c 001a moveb #26,%d2 <== NOT EXECUTED rtems_filesystem_root = loc; rtems_filesystem_evaluate_path("/", 0, &loc, 0); rtems_filesystem_current = loc; return RTEMS_SUCCESSFUL; } 61bac: 2002 movel %d2,%d0 <== NOT EXECUTED 61bae: 4cee 1c04 ffdc moveml %fp@(-36),%d2/%a2-%a4 <== NOT EXECUTED 61bb4: 4e5e unlk %fp <== NOT EXECUTED 61bb6: 4e75 rts <== NOT EXECUTED sc = rtems_task_variable_add(RTEMS_SELF,(void*)&rtems_current_user_env,(void(*)(void *))free_user_env); if (sc != RTEMS_SUCCESSFUL) { /* don't use free_user_env because the pathlocs are * not initialized yet */ free(tmp); 61bb8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 61bba: 4eb9 0004 61e4 jsr 461e4 <== NOT EXECUTED 61bc0: 240b movel %a3,%d2 <== NOT EXECUTED rtems_filesystem_root = loc; rtems_filesystem_evaluate_path("/", 0, &loc, 0); rtems_filesystem_current = loc; return RTEMS_SUCCESSFUL; } 61bc2: 2002 movel %d2,%d0 <== NOT EXECUTED sc = rtems_task_variable_add(RTEMS_SELF,(void*)&rtems_current_user_env,(void(*)(void *))free_user_env); if (sc != RTEMS_SUCCESSFUL) { /* don't use free_user_env because the pathlocs are * not initialized yet */ free(tmp); 61bc4: 588f addql #4,%sp <== NOT EXECUTED rtems_filesystem_root = loc; rtems_filesystem_evaluate_path("/", 0, &loc, 0); rtems_filesystem_current = loc; return RTEMS_SUCCESSFUL; } 61bc6: 4cee 1c04 ffdc moveml %fp@(-36),%d2/%a2-%a4 <== NOT EXECUTED 61bcc: 4e5e unlk %fp <== NOT EXECUTED 61bce: 4e75 rts 0006192e : * 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) { 6192e: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 61932: 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); 61934: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 61938: 42a7 clrl %sp@- <== NOT EXECUTED 6193a: 42a7 clrl %sp@- <== NOT EXECUTED 6193c: 4eb9 0006 34bc jsr 634bc <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 61942: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 61948: 4a80 tstl %d0 <== NOT EXECUTED 6194a: 6638 bnes 61984 <== NOT EXECUTED if (rtems_current_user_env->task_id==current_task_id) { 6194c: 2479 0008 6180 moveal 86180 ,%a2 <== NOT EXECUTED 61952: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 61956: b092 cmpl %a2@,%d0 <== NOT EXECUTED 61958: 6732 beqs 6198c <== NOT EXECUTED free_user_env(tmp); }; /* AT THIS POINT, rtems_current_user_env is DANGLING */ sc = rtems_task_variable_get(task_id,(void*)&rtems_current_user_env, 6195a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 6195e: 4879 0008 6180 pea 86180 <== NOT EXECUTED 61964: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 61968: 4eb9 0006 3a10 jsr 63a10 <== NOT EXECUTED (void*)&shared_user_env ); if (sc != RTEMS_SUCCESSFUL) 6196e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 61974: 4a80 tstl %d0 <== NOT EXECUTED 61976: 674e beqs 619c6 <== NOT EXECUTED return RTEMS_SUCCESSFUL; bailout: /* fallback to the global env */ rtems_current_user_env = &rtems_global_user_env; 61978: 223c 0009 ba1c movel #637468,%d1 <== NOT EXECUTED 6197e: 23c1 0008 6180 movel %d1,86180 <== NOT EXECUTED return sc; } 61984: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 61988: 4e5e unlk %fp <== NOT EXECUTED 6198a: 4e75 rts <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; if (rtems_current_user_env->task_id==current_task_id) { /* 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); 6198c: 4879 0008 6180 pea 86180 <== NOT EXECUTED 61992: 42a7 clrl %sp@- <== NOT EXECUTED 61994: 4eb9 0006 3970 jsr 63970 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) return sc; 6199a: 508f addql #8,%sp <== NOT EXECUTED 6199c: 4a80 tstl %d0 <== NOT EXECUTED 6199e: 66e4 bnes 61984 <== NOT EXECUTED free_user_env(tmp); 619a0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 619a2: 4eba ff30 jsr %pc@(618d4 ) <== NOT EXECUTED 619a6: 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, 619a8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 619ac: 4879 0008 6180 pea 86180 <== NOT EXECUTED 619b2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 619b6: 4eb9 0006 3a10 jsr 63a10 <== NOT EXECUTED (void*)&shared_user_env ); if (sc != RTEMS_SUCCESSFUL) 619bc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 619c2: 4a80 tstl %d0 <== NOT EXECUTED 619c4: 66b2 bnes 61978 <== NOT EXECUTED goto bailout; sc = rtems_task_variable_add(RTEMS_SELF,(void*)&rtems_current_user_env,free_user_env); 619c6: 487a ff0c pea %pc@(618d4 ) <== NOT EXECUTED 619ca: 4879 0008 6180 pea 86180 <== NOT EXECUTED 619d0: 42a7 clrl %sp@- <== NOT EXECUTED 619d2: 4eb9 0006 38c4 jsr 638c4 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 619d8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 619de: 4a80 tstl %d0 <== NOT EXECUTED 619e0: 6696 bnes 61978 <== NOT EXECUTED bailout: /* fallback to the global env */ rtems_current_user_env = &rtems_global_user_env; return sc; } 619e2: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED sc = rtems_task_variable_add(RTEMS_SELF,(void*)&rtems_current_user_env,free_user_env); if (sc != RTEMS_SUCCESSFUL) goto bailout; /* the current_user_env is the same pointer that remote env */ rtems_current_user_env = shared_user_env; 619e6: 41ee fffc lea %fp@(-4),%a0 <== NOT EXECUTED 619ea: 23d0 0008 6180 movel %a0@,86180 <== NOT EXECUTED bailout: /* fallback to the global env */ rtems_current_user_env = &rtems_global_user_env; return sc; } 619f0: 4e5e unlk %fp <== NOT EXECUTED 619f2: 4e75 rts 0004a840 : */ uint32_t rtems_libio_to_fcntl_flags( uint32_t flags ) { 4a840: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a844: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 4a848: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t fcntl_flags = 0; if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) { 4a84a: 7006 moveq #6,%d0 <== NOT EXECUTED 4a84c: c081 andl %d1,%d0 <== NOT EXECUTED 4a84e: 7406 moveq #6,%d2 <== NOT EXECUTED 4a850: b480 cmpl %d0,%d2 <== NOT EXECUTED 4a852: 6736 beqs 4a88a <== NOT EXECUTED fcntl_flags |= O_RDWR; } else if ( (flags & LIBIO_FLAGS_READ) == LIBIO_FLAGS_READ) { 4a854: 0801 0001 btst #1,%d1 <== NOT EXECUTED 4a858: 6726 beqs 4a880 <== NOT EXECUTED 4a85a: 4280 clrl %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 ) { 4a85c: 0801 0000 btst #0,%d1 <== NOT EXECUTED 4a860: 6704 beqs 4a866 <== NOT EXECUTED fcntl_flags |= O_NONBLOCK; 4a862: 08c0 000e bset #14,%d0 <== NOT EXECUTED } if ( (flags & LIBIO_FLAGS_APPEND) == LIBIO_FLAGS_APPEND ) { 4a866: 0801 0009 btst #9,%d1 <== NOT EXECUTED 4a86a: 6704 beqs 4a870 <== NOT EXECUTED fcntl_flags |= O_APPEND; 4a86c: 7408 moveq #8,%d2 <== NOT EXECUTED 4a86e: 8082 orl %d2,%d0 <== NOT EXECUTED } if ( (flags & LIBIO_FLAGS_CREATE) == LIBIO_FLAGS_CREATE ) { 4a870: 0801 000a btst #10,%d1 <== NOT EXECUTED 4a874: 6704 beqs 4a87a <== NOT EXECUTED fcntl_flags |= O_CREAT; 4a876: 08c0 0009 bset #9,%d0 <== NOT EXECUTED } return fcntl_flags; } 4a87a: 241f movel %sp@+,%d2 <== NOT EXECUTED 4a87c: 4e5e unlk %fp <== NOT EXECUTED 4a87e: 4e75 rts <== NOT EXECUTED { uint32_t fcntl_flags = 0; if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) { fcntl_flags |= O_RDWR; } else if ( (flags & LIBIO_FLAGS_READ) == LIBIO_FLAGS_READ) { 4a880: 2001 movel %d1,%d0 <== NOT EXECUTED 4a882: e488 lsrl #2,%d0 <== NOT EXECUTED 4a884: 7401 moveq #1,%d2 <== NOT EXECUTED 4a886: c082 andl %d2,%d0 <== NOT EXECUTED 4a888: 60d2 bras 4a85c <== NOT EXECUTED uint32_t flags ) { uint32_t fcntl_flags = 0; if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) { 4a88a: 7002 moveq #2,%d0 <== NOT EXECUTED 4a88c: 60ce bras 4a85c <== NOT EXECUTED 000468f0 : * size and thus we skip updating the statistics. */ void rtems_malloc_statistics_at_free( void *pointer ) { 468f0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 468f4: 2f02 movel %d2,%sp@- <== NOT EXECUTED size_t size; if (_Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, pointer, &size) ) { 468f6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 468fa: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 468fe: 4879 0009 b2d0 pea 9b2d0 <== NOT EXECUTED 46904: 4eb9 0004 c0a4 jsr 4c0a4 <_Protected_heap_Get_block_size> <== NOT EXECUTED 4690a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46910: 4a00 tstb %d0 <== NOT EXECUTED 46912: 671a beqs 4692e <== NOT EXECUTED MSBUMP(lifetime_freed, size); 46914: 222e fffc movel %fp@(-4),%d1 <== NOT EXECUTED 46918: 4280 clrl %d0 <== NOT EXECUTED 4691a: d3b9 0009 b350 addl %d1,9b350 <== NOT EXECUTED 46920: 2439 0009 b34c movel 9b34c ,%d2 <== NOT EXECUTED 46926: d580 addxl %d0,%d2 <== NOT EXECUTED 46928: 23c2 0009 b34c movel %d2,9b34c <== NOT EXECUTED } } 4692e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46932: 4e5e unlk %fp <== NOT EXECUTED 46934: 4e75 rts 00046936 : } void rtems_malloc_statistics_at_malloc( void *pointer ) { 46936: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4693a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4693c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 46940: 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 ) 46942: 4a80 tstl %d0 <== NOT EXECUTED 46944: 6750 beqs 46996 <== NOT EXECUTED void rtems_malloc_statistics_at_malloc( void *pointer ) { size_t actual_size = 0; 46946: 204e moveal %fp,%a0 <== NOT EXECUTED 46948: 42a0 clrl %a0@- <== NOT EXECUTED if ( !pointer ) return; _Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, pointer, &actual_size); MSBUMP(lifetime_allocated, actual_size); 4694a: 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); 4694c: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4694e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46950: 4879 0009 b2d0 pea 9b2d0 <== NOT EXECUTED 46956: 4eb9 0004 c0a4 jsr 4c0a4 <_Protected_heap_Get_block_size> <== NOT EXECUTED MSBUMP(lifetime_allocated, actual_size); 4695c: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 46960: 2039 0009 b344 movel 9b344 ,%d0 <== NOT EXECUTED 46966: d6b9 0009 b348 addl 9b348 ,%d3 <== NOT EXECUTED 4696c: d580 addxl %d0,%d2 <== NOT EXECUTED current_depth = s->lifetime_allocated - s->lifetime_freed; 4696e: 2003 movel %d3,%d0 <== NOT EXECUTED 46970: 90b9 0009 b350 subl 9b350 ,%d0 <== NOT EXECUTED if ( !pointer ) return; _Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, pointer, &actual_size); MSBUMP(lifetime_allocated, actual_size); 46976: 23c2 0009 b344 movel %d2,9b344 <== NOT EXECUTED 4697c: 23c3 0009 b348 movel %d3,9b348 <== NOT EXECUTED current_depth = s->lifetime_allocated - s->lifetime_freed; if (current_depth > s->max_depth) 46982: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46988: b0b9 0009 b340 cmpl 9b340 ,%d0 <== NOT EXECUTED 4698e: 6306 blss 46996 <== NOT EXECUTED s->max_depth = current_depth; 46990: 23c0 0009 b340 movel %d0,9b340 <== NOT EXECUTED } 46996: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4699a: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 4699e: 4e5e unlk %fp <== NOT EXECUTED 469a0: 4e75 rts 000469a2 : #include #include void rtems_malloc_statistics_initialize( void ) { 469a2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * Zero all the statistics */ (void) memset(&rtems_malloc_statistics, 0, sizeof(rtems_malloc_statistics)); } 469a6: 4e5e unlk %fp <== NOT EXECUTED void rtems_malloc_statistics_initialize( void ) { /* * Zero all the statistics */ (void) memset(&rtems_malloc_statistics, 0, sizeof(rtems_malloc_statistics)); 469a8: 42b9 0009 b328 clrl 9b328 <== NOT EXECUTED 469ae: 42b9 0009 b32c clrl 9b32c <== NOT EXECUTED 469b4: 42b9 0009 b330 clrl 9b330 <== NOT EXECUTED 469ba: 42b9 0009 b334 clrl 9b334 <== NOT EXECUTED 469c0: 42b9 0009 b338 clrl 9b338 <== NOT EXECUTED 469c6: 42b9 0009 b33c clrl 9b33c <== NOT EXECUTED 469cc: 42b9 0009 b340 clrl 9b340 <== NOT EXECUTED 469d2: 42b9 0009 b344 clrl 9b344 <== NOT EXECUTED 469d8: 42b9 0009 b348 clrl 9b348 <== NOT EXECUTED 469de: 42b9 0009 b34c clrl 9b34c <== NOT EXECUTED 469e4: 42b9 0009 b350 clrl 9b350 <== NOT EXECUTED } 469ea: 4e75 rts 00045ff4 : int rtems_memalign( void **pointer, size_t alignment, size_t size ) { 45ff4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45ff8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45ffa: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 45ffe: 2f02 movel %d2,%sp@- <== NOT EXECUTED void *return_this; /* * Parameter error checks */ if ( !pointer ) 46000: 4a8a tstl %a2 <== NOT EXECUTED 46002: 675e beqs 46062 <== NOT EXECUTED return EINVAL; *pointer = NULL; 46004: 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()) && 46006: 7003 moveq #3,%d0 <== NOT EXECUTED 46008: b0b9 0005 de62 cmpl 5de62 <_System_state_Current>,%d0 <== NOT EXECUTED 4600e: 6748 beqs 46058 <== NOT EXECUTED /* * * If some free's have been deferred, then do them now. */ malloc_deferred_frees_process(); 46010: 4eb9 0004 506a jsr 4506a <== NOT EXECUTED /* * Perform the aligned allocation requested */ return_this = _Protected_heap_Allocate_aligned( 46016: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4601a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4601e: 4879 0005 db74 pea 5db74 <== NOT EXECUTED 46024: 4eb9 0004 add8 jsr 4add8 <_Protected_heap_Allocate_aligned> <== NOT EXECUTED &RTEMS_Malloc_Heap, size, alignment ); if ( !return_this ) 4602a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Perform the aligned allocation requested */ return_this = _Protected_heap_Allocate_aligned( 46030: 2400 movel %d0,%d2 <== NOT EXECUTED &RTEMS_Malloc_Heap, size, alignment ); if ( !return_this ) 46032: 673c beqs 46070 <== NOT EXECUTED return ENOMEM; /* * If configured, update the more involved statistics */ if ( rtems_malloc_statistics_helpers ) 46034: 2079 0005 c684 moveal 5c684 ,%a0 <== NOT EXECUTED 4603a: 4a88 tstl %a0 <== NOT EXECUTED 4603c: 670a beqs 46048 <== NOT EXECUTED (*rtems_malloc_statistics_helpers->at_malloc)(pointer); 4603e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46040: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 46044: 4e90 jsr %a0@ <== NOT EXECUTED 46046: 588f addql #4,%sp <== NOT EXECUTED */ if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif *pointer = return_this; 46048: 2482 movel %d2,%a2@ <== NOT EXECUTED return 0; } 4604a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4604e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46052: 4e5e unlk %fp <== NOT EXECUTED */ if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif *pointer = return_this; 46054: 4280 clrl %d0 <== NOT EXECUTED return 0; } 46056: 4e75 rts <== NOT EXECUTED *pointer = NULL; /* * Do not attempt to allocate memory if not in correct system state. */ if ( _System_state_Is_up(_System_state_Get()) && 46058: 4eb9 0004 500c jsr 4500c <== NOT EXECUTED 4605e: 4a00 tstb %d0 <== NOT EXECUTED 46060: 66ae bnes 46010 <== NOT EXECUTED (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif *pointer = return_this; return 0; } 46062: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46066: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4606a: 4e5e unlk %fp <== NOT EXECUTED if (rtems_malloc_boundary_helpers) (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif *pointer = return_this; return 0; 4606c: 7016 moveq #22,%d0 <== NOT EXECUTED } 4606e: 4e75 rts <== NOT EXECUTED 46070: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46074: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46078: 4e5e unlk %fp <== NOT EXECUTED return_this = _Protected_heap_Allocate_aligned( &RTEMS_Malloc_Heap, size, alignment ); if ( !return_this ) 4607a: 700c moveq #12,%d0 <== NOT EXECUTED (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); #endif *pointer = return_this; return 0; } 4607c: 4e75 rts <== NOT EXECUTED ... 000507e4 : Objects_Id id, const void *buffer, size_t size, uint32_t *count ) { 507e4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 507e8: 2f02 movel %d2,%sp@- <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; CORE_message_queue_Status core_status; if ( !buffer ) 507ea: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 507ee: 676c beqs 5085c <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !count ) 507f0: 4aae 0014 tstl %fp@(20) <== NOT EXECUTED 507f4: 6766 beqs 5085c <== NOT EXECUTED RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (Message_queue_Control *) 507f6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 507fa: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 507fe: 4879 0007 33ae pea 733ae <_Message_queue_Information> <== NOT EXECUTED 50804: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 5080a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 50810: 2040 moveal %d0,%a0 <== NOT EXECUTED 50812: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 50816: 663a bnes 50852 <== NOT EXECUTED case OBJECTS_LOCAL: core_status = _CORE_message_queue_Broadcast( 50818: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 5081c: 42a7 clrl %sp@- <== NOT EXECUTED 5081e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 50822: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 50826: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5082a: 4868 0014 pea %a0@(20) <== NOT EXECUTED 5082e: 4eb9 0005 4254 jsr 54254 <_CORE_message_queue_Broadcast> <== NOT EXECUTED 50834: 2400 movel %d0,%d2 <== NOT EXECUTED NULL, #endif count ); _Thread_Enable_dispatch(); 50836: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED return 5083c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5083e: 4eb9 0005 0be0 jsr 50be0 <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50844: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED #endif count ); _Thread_Enable_dispatch(); return 50848: dffc 0000 001c addal #28,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5084e: 4e5e unlk %fp <== NOT EXECUTED 50850: 4e75 rts <== NOT EXECUTED 50852: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 50856: 4e5e unlk %fp <== NOT EXECUTED if ( !count ) return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 50858: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5085a: 4e75 rts <== NOT EXECUTED 5085c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 50860: 4e5e unlk %fp <== NOT EXECUTED #endif count ); _Thread_Enable_dispatch(); return 50862: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50864: 4e75 rts <== NOT EXECUTED ... 00050868 : uint32_t count, size_t max_message_size, rtems_attribute attribute_set, Objects_Id *id ) { 50868: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 5086c: 2f0a movel %a2,%sp@- <== NOT EXECUTED CORE_message_queue_Attributes the_msgq_attributes; #if defined(RTEMS_MULTIPROCESSING) bool is_global; #endif if ( !rtems_is_name_valid( name ) ) 5086e: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 50872: 6728 beqs 5089c <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 50874: 4aae 0018 tstl %fp@(24) <== NOT EXECUTED 50878: 6700 009e beqw 50918 <== NOT EXECUTED if ( (is_global = _Attributes_Is_global( attribute_set ) ) && !_System_state_Is_multiprocessing ) return RTEMS_MP_NOT_CONFIGURED; #endif if ( count == 0 ) 5087c: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 50880: 6710 beqs 50892 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; if ( max_message_size == 0 ) 50882: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 50886: 661e bnes 508a6 <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50888: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5088c: 4e5e unlk %fp <== NOT EXECUTED #endif if ( count == 0 ) return RTEMS_INVALID_NUMBER; if ( max_message_size == 0 ) 5088e: 7008 moveq #8,%d0 <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50890: 4e75 rts <== NOT EXECUTED 50892: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50896: 4e5e unlk %fp <== NOT EXECUTED if ( (is_global = _Attributes_Is_global( attribute_set ) ) && !_System_state_Is_multiprocessing ) return RTEMS_MP_NOT_CONFIGURED; #endif if ( count == 0 ) 50898: 700a moveq #10,%d0 <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 5089a: 4e75 rts <== NOT EXECUTED 5089c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 508a0: 4e5e unlk %fp <== NOT EXECUTED CORE_message_queue_Attributes the_msgq_attributes; #if defined(RTEMS_MULTIPROCESSING) bool is_global; #endif if ( !rtems_is_name_valid( name ) ) 508a2: 7003 moveq #3,%d0 <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 508a4: 4e75 rts <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 508a6: 2039 0007 2b48 movel 72b48 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 508ac: 5280 addql #1,%d0 <== NOT EXECUTED 508ae: 23c0 0007 2b48 movel %d0,72b48 <_Thread_Dispatch_disable_level> <== NOT EXECUTED #endif #endif _Thread_Disable_dispatch(); /* protects object pointer */ the_message_queue = _Message_queue_Allocate(); 508b4: 4eb9 0005 a0a4 jsr 5a0a4 <_Message_queue_Allocate> <== NOT EXECUTED 508ba: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( !the_message_queue ) { 508bc: 4a80 tstl %d0 <== NOT EXECUTED 508be: 6700 0092 beqw 50952 <== 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; 508c2: 202e 0014 movel %fp@(20),%d0 <== NOT EXECUTED 508c6: 44c0 movew %d0,%ccr <== NOT EXECUTED 508c8: 56c0 sne %d0 <== NOT EXECUTED 508ca: 49c0 extbl %d0 <== NOT EXECUTED 508cc: 204e moveal %fp,%a0 <== NOT EXECUTED 508ce: 5280 addql #1,%d0 <== NOT EXECUTED 508d0: 2100 movel %d0,%a0@- <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } #endif the_message_queue->attribute_set = attribute_set; 508d2: 202e 0014 movel %fp@(20),%d0 <== NOT EXECUTED 508d6: 2540 0010 movel %d0,%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( 508da: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 508de: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 508e2: 2f08 movel %a0,%sp@- <== NOT EXECUTED 508e4: 486a 0014 pea %a2@(20) <== NOT EXECUTED 508e8: 4eb9 0005 43b4 jsr 543b4 <_CORE_message_queue_Initialize> <== NOT EXECUTED 508ee: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 508f4: 4a00 tstb %d0 <== NOT EXECUTED 508f6: 662a bnes 50922 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Message_queue_Free ( Message_queue_Control *the_message_queue ) { _Objects_Free( &_Message_queue_Information, &the_message_queue->Object ); 508f8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 508fa: 4879 0007 33ae pea 733ae <_Message_queue_Information> <== NOT EXECUTED 50900: 4eb9 0005 59c0 jsr 559c0 <_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(); 50906: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 5090c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED _Objects_MP_Close( &_Message_queue_Information, the_message_queue->Object.id); #endif _Message_queue_Free( the_message_queue ); _Thread_Enable_dispatch(); 50910: 508f addql #8,%sp <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50912: 4e5e unlk %fp <== NOT EXECUTED _Objects_MP_Close( &_Message_queue_Information, the_message_queue->Object.id); #endif _Message_queue_Free( the_message_queue ); _Thread_Enable_dispatch(); 50914: 700d moveq #13,%d0 <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50916: 4e75 rts <== NOT EXECUTED 50918: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5091c: 4e5e unlk %fp <== NOT EXECUTED #endif if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; if ( !id ) 5091e: 7009 moveq #9,%d0 <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50920: 4e75 rts <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 50922: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 50926: 2548 000c movel %a0,%a2@(12) <== NOT EXECUTED &_Message_queue_Information, &the_message_queue->Object, (Objects_Name) name ); *id = the_message_queue->Object.id; 5092a: 206e 0018 moveal %fp@(24),%a0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 5092e: 4280 clrl %d0 <== NOT EXECUTED 50930: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 50934: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED 50938: 2079 0007 33c8 moveal 733c8 <_Message_queue_Information+0x1a>,%a0 <== NOT EXECUTED 5093e: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED name, 0 ); #endif _Thread_Enable_dispatch(); 50942: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 50948: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5094c: 4e5e unlk %fp <== NOT EXECUTED name, 0 ); #endif _Thread_Enable_dispatch(); 5094e: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 50950: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); /* protects object pointer */ the_message_queue = _Message_queue_Allocate(); if ( !the_message_queue ) { _Thread_Enable_dispatch(); 50952: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50958: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5095c: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* protects object pointer */ the_message_queue = _Message_queue_Allocate(); if ( !the_message_queue ) { _Thread_Enable_dispatch(); 5095e: 7005 moveq #5,%d0 <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50960: 4e75 rts <== NOT EXECUTED ... 0005307c : */ rtems_status_code rtems_message_queue_delete( Objects_Id id ) { 5307c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 53080: 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 *) 53082: 486e fffc pea %fp@(-4) <== NOT EXECUTED 53086: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5308a: 4879 0006 8a4a pea 68a4a <_Message_queue_Information> <== NOT EXECUTED 53090: 4eb9 0004 ce14 jsr 4ce14 <_Objects_Get> <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 53096: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5309c: 2440 moveal %d0,%a2 <== NOT EXECUTED 5309e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 530a2: 6642 bnes 530e6 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Message_queue_Information, 530a4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 530a6: 4879 0006 8a4a pea 68a4a <_Message_queue_Information> <== NOT EXECUTED 530ac: 4eb9 0004 c984 jsr 4c984 <_Objects_Close> <== NOT EXECUTED &the_message_queue->Object ); _CORE_message_queue_Close( 530b2: 4878 0005 pea 5 <== NOT EXECUTED 530b6: 42a7 clrl %sp@- <== NOT EXECUTED 530b8: 486a 0014 pea %a2@(20) <== NOT EXECUTED 530bc: 4eb9 0005 36f4 jsr 536f4 <_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 ); 530c2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 530c4: 4879 0006 8a4a pea 68a4a <_Message_queue_Information> <== NOT EXECUTED 530ca: 4eb9 0004 cca8 jsr 4cca8 <_Objects_Free> <== NOT EXECUTED 0, /* Not used */ 0 ); } #endif _Thread_Enable_dispatch(); 530d0: 4eb9 0004 d708 jsr 4d708 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 530d6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 0, /* Not used */ 0 ); } #endif _Thread_Enable_dispatch(); 530da: dffc 0000 001c addal #28,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 530e0: 4e5e unlk %fp <== NOT EXECUTED 0, /* Not used */ 0 ); } #endif _Thread_Enable_dispatch(); 530e2: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 530e4: 4e75 rts <== NOT EXECUTED 530e6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 530ea: 4e5e unlk %fp <== NOT EXECUTED { register Message_queue_Control *the_message_queue; Objects_Locations location; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 530ec: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 530ee: 4e75 rts 000509d8 : rtems_status_code rtems_message_queue_flush( Objects_Id id, uint32_t *count ) { 509d8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 509dc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 509de: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; if ( !count ) 509e2: 4a8a tstl %a2 <== NOT EXECUTED 509e4: 674a beqs 50a30 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (Message_queue_Control *) 509e6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 509ea: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 509ee: 4879 0007 33ae pea 733ae <_Message_queue_Information> <== NOT EXECUTED 509f4: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 509fa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 50a00: 2040 moveal %d0,%a0 <== NOT EXECUTED 50a02: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 50a06: 661e bnes 50a26 <== NOT EXECUTED case OBJECTS_LOCAL: *count = _CORE_message_queue_Flush( &the_message_queue->message_queue ); 50a08: 4868 0014 pea %a0@(20) <== NOT EXECUTED 50a0c: 4eb9 0005 4338 jsr 54338 <_CORE_message_queue_Flush> <== NOT EXECUTED 50a12: 2480 movel %d0,%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 50a14: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50a1a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: *count = _CORE_message_queue_Flush( &the_message_queue->message_queue ); _Thread_Enable_dispatch(); 50a1e: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50a20: 4e5e unlk %fp <== NOT EXECUTED the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: *count = _CORE_message_queue_Flush( &the_message_queue->message_queue ); _Thread_Enable_dispatch(); 50a22: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50a24: 4e75 rts <== NOT EXECUTED 50a26: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50a2a: 4e5e unlk %fp <== NOT EXECUTED if ( !count ) return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 50a2c: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50a2e: 4e75 rts <== NOT EXECUTED 50a30: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50a34: 4e5e unlk %fp <== NOT EXECUTED ) { register Message_queue_Control *the_message_queue; Objects_Locations location; if ( !count ) 50a36: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50a38: 4e75 rts <== NOT EXECUTED ... 00050a3c : rtems_status_code rtems_message_queue_get_number_pending( Objects_Id id, uint32_t *count ) { 50a3c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 50a40: 2f0a movel %a2,%sp@- <== NOT EXECUTED 50a42: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; if ( !count ) 50a46: 4a8a tstl %a2 <== NOT EXECUTED 50a48: 6740 beqs 50a8a <== NOT EXECUTED 50a4a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 50a4e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 50a52: 4879 0007 33ae pea 733ae <_Message_queue_Information> <== NOT EXECUTED 50a58: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 50a5e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 50a64: 2040 moveal %d0,%a0 <== NOT EXECUTED 50a66: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 50a6a: 6614 bnes 50a80 <== NOT EXECUTED case OBJECTS_LOCAL: *count = the_message_queue->message_queue.number_of_pending_messages; 50a6c: 24a8 005c movel %a0@(92),%a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 50a70: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50a76: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50a7a: 4e5e unlk %fp <== NOT EXECUTED the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: *count = the_message_queue->message_queue.number_of_pending_messages; _Thread_Enable_dispatch(); 50a7c: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50a7e: 4e75 rts <== NOT EXECUTED 50a80: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50a84: 4e5e unlk %fp <== NOT EXECUTED if ( !count ) return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 50a86: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50a88: 4e75 rts <== NOT EXECUTED 50a8a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50a8e: 4e5e unlk %fp <== NOT EXECUTED ) { register Message_queue_Control *the_message_queue; Objects_Locations location; if ( !count ) 50a90: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50a92: 4e75 rts 000530f0 : rtems_status_code rtems_message_queue_ident( rtems_name name, uint32_t node, Objects_Id *id ) { 530f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 530f4: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 530f8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 530fc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 53100: 4879 0006 8a4a pea 68a4a <_Message_queue_Information> <== NOT EXECUTED 53106: 4eb9 0004 cfac jsr 4cfac <_Objects_Name_to_id_u32> <== NOT EXECUTED 5310c: 41f9 0006 3338 lea 63338 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED node, id ); return _Status_Object_name_errors_to_status[ status ]; } 53112: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 53116: 4e5e unlk %fp <== NOT EXECUTED 53118: 4e75 rts <== NOT EXECUTED ... 0005311c : void *buffer, size_t *size, rtems_option option_set, rtems_interval timeout ) { 5311c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 53120: 48d7 001c moveml %d2-%d4,%sp@ <== NOT EXECUTED 53124: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 53128: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 5312c: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; bool wait; if ( !buffer ) 53130: 4a84 tstl %d4 <== NOT EXECUTED 53132: 6776 beqs 531aa <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !size ) 53134: 4a83 tstl %d3 <== NOT EXECUTED 53136: 6772 beqs 531aa <== NOT EXECUTED RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get ( Objects_Id id, Objects_Locations *location ) { return (Message_queue_Control *) 53138: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5313c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 53140: 4879 0006 8a4a pea 68a4a <_Message_queue_Information> <== NOT EXECUTED 53146: 4eb9 0004 ce14 jsr 4ce14 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 5314c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 53152: 2040 moveal %d0,%a0 <== NOT EXECUTED 53154: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 53158: 6644 bnes 5319e <== NOT EXECUTED if ( _Options_Is_no_wait( option_set ) ) wait = false; else wait = true; _CORE_message_queue_Seize( 5315a: 2f2e 0018 movel %fp@(24),%sp@- <== NOT EXECUTED 5315e: 7001 moveq #1,%d0 <== NOT EXECUTED 53160: b182 eorl %d0,%d2 <== NOT EXECUTED 53162: c082 andl %d2,%d0 <== NOT EXECUTED 53164: 2f00 movel %d0,%sp@- <== NOT EXECUTED 53166: 2f03 movel %d3,%sp@- <== NOT EXECUTED 53168: 2f04 movel %d4,%sp@- <== NOT EXECUTED 5316a: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 5316e: 4868 0014 pea %a0@(20) <== NOT EXECUTED 53172: 4eb9 0005 37a4 jsr 537a4 <_CORE_message_queue_Seize> <== NOT EXECUTED buffer, size, wait, timeout ); _Thread_Enable_dispatch(); 53178: 4eb9 0004 d708 jsr 4d708 <_Thread_Enable_dispatch> <== NOT EXECUTED return _Message_queue_Translate_core_message_queue_return_code( 5317e: 2079 0006 8242 moveal 68242 <_Thread_Executing>,%a0 <== NOT EXECUTED 53184: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 53188: 4eb9 0005 323c jsr 5323c <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED 5318e: dffc 0000 001c addal #28,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53194: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 5319a: 4e5e unlk %fp <== NOT EXECUTED 5319c: 4e75 rts <== NOT EXECUTED 5319e: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 531a4: 4e5e unlk %fp <== NOT EXECUTED if ( !size ) return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 531a6: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 531a8: 4e75 rts <== NOT EXECUTED 531aa: 4cee 001c fff0 moveml %fp@(-16),%d2-%d4 <== NOT EXECUTED 531b0: 4e5e unlk %fp <== NOT EXECUTED size, wait, timeout ); _Thread_Enable_dispatch(); return _Message_queue_Translate_core_message_queue_return_code( 531b2: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 531b4: 4e75 rts <== NOT EXECUTED ... 000531b8 : rtems_status_code rtems_message_queue_send( Objects_Id id, const void *buffer, size_t size ) { 531b8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 531bc: 2f02 movel %d2,%sp@- <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; CORE_message_queue_Status status; if ( !buffer ) 531be: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 531c2: 676e beqs 53232 <== NOT EXECUTED 531c4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 531c8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 531cc: 4879 0006 8a4a pea 68a4a <_Message_queue_Information> <== NOT EXECUTED 531d2: 4eb9 0004 ce14 jsr 4ce14 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 531d8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 531de: 2040 moveal %d0,%a0 <== NOT EXECUTED 531e0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 531e4: 6642 bnes 53228 <== NOT EXECUTED CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, bool wait, Watchdog_Interval timeout ) { return _CORE_message_queue_Submit( 531e6: 42a7 clrl %sp@- <== NOT EXECUTED 531e8: 42a7 clrl %sp@- <== NOT EXECUTED 531ea: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 531f0: 42a7 clrl %sp@- <== NOT EXECUTED 531f2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 531f6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 531fa: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 531fe: 4868 0014 pea %a0@(20) <== NOT EXECUTED 53202: 4eb9 0005 38e0 jsr 538e0 <_CORE_message_queue_Submit> <== NOT EXECUTED MESSAGE_QUEUE_MP_HANDLER, FALSE, /* sender does not block */ 0 /* no timeout */ ); _Thread_Enable_dispatch(); 53208: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 5320e: 2400 movel %d0,%d2 <== NOT EXECUTED 53210: 4eb9 0004 d708 jsr 4d708 <_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); 53216: 2f02 movel %d2,%sp@- <== NOT EXECUTED 53218: 4eb9 0005 323c jsr 5323c <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5321e: 242e fff8 movel %fp@(-8),%d2 <== 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); 53222: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53224: 4e5e unlk %fp <== NOT EXECUTED 53226: 4e75 rts <== NOT EXECUTED 53228: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5322c: 4e5e unlk %fp <== NOT EXECUTED if ( !buffer ) return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 5322e: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53230: 4e75 rts <== NOT EXECUTED 53232: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 53236: 4e5e unlk %fp <== NOT EXECUTED { register Message_queue_Control *the_message_queue; Objects_Locations location; CORE_message_queue_Status status; if ( !buffer ) 53238: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5323a: 4e75 rts 00050bf8 : rtems_status_code rtems_message_queue_urgent( Objects_Id id, const void *buffer, size_t size ) { 50bf8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 50bfc: 2f02 movel %d2,%sp@- <== NOT EXECUTED register Message_queue_Control *the_message_queue; Objects_Locations location; CORE_message_queue_Status status; if ( !buffer ) 50bfe: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 50c02: 676e beqs 50c72 <== NOT EXECUTED 50c04: 486e fffc pea %fp@(-4) <== NOT EXECUTED 50c08: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 50c0c: 4879 0007 33ae pea 733ae <_Message_queue_Information> <== NOT EXECUTED 50c12: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 50c18: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 50c1e: 2040 moveal %d0,%a0 <== NOT EXECUTED 50c20: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 50c24: 6642 bnes 50c68 <== NOT EXECUTED CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, bool wait, Watchdog_Interval timeout ) { return _CORE_message_queue_Submit( 50c26: 42a7 clrl %sp@- <== NOT EXECUTED 50c28: 42a7 clrl %sp@- <== NOT EXECUTED 50c2a: 2f3c 8000 0000 movel #-2147483648,%sp@- <== NOT EXECUTED 50c30: 42a7 clrl %sp@- <== NOT EXECUTED 50c32: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 50c36: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 50c3a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 50c3e: 4868 0014 pea %a0@(20) <== NOT EXECUTED 50c42: 4eb9 0005 45b8 jsr 545b8 <_CORE_message_queue_Submit> <== NOT EXECUTED id, MESSAGE_QUEUE_MP_HANDLER, FALSE, /* sender does not block */ 0 /* no timeout */ ); _Thread_Enable_dispatch(); 50c48: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 50c4e: 2400 movel %d0,%d2 <== NOT EXECUTED 50c50: 4eb9 0005 63f0 jsr 563f0 <_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); 50c56: 2f02 movel %d2,%sp@- <== NOT EXECUTED 50c58: 4eb9 0005 0be0 jsr 50be0 <_Message_queue_Translate_core_message_queue_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50c5e: 242e fff8 movel %fp@(-8),%d2 <== 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); 50c62: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50c64: 4e5e unlk %fp <== NOT EXECUTED 50c66: 4e75 rts <== NOT EXECUTED 50c68: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 50c6c: 4e5e unlk %fp <== NOT EXECUTED if ( !buffer ) return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { 50c6e: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50c70: 4e75 rts <== NOT EXECUTED 50c72: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 50c76: 4e5e unlk %fp <== NOT EXECUTED { register Message_queue_Control *the_message_queue; Objects_Locations location; CORE_message_queue_Status status; if ( !buffer ) 50c78: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50c7a: 4e75 rts 00045b6c : #include int rtems_object_api_maximum_class( uint32_t api ) { 45b6c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_API_maximum_class(api); } 45b70: 4e5e unlk %fp <== NOT EXECUTED int rtems_object_api_maximum_class( uint32_t api ) { return _Objects_API_maximum_class(api); 45b72: 4ef9 0004 73b0 jmp 473b0 <_Objects_API_maximum_class> <== NOT EXECUTED 00045b78 : #include uint32_t rtems_object_api_minimum_class( uint32_t api ) { 45b78: 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 ) 45b7c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 45b80: 7203 moveq #3,%d1 <== NOT EXECUTED 45b82: 5380 subql #1,%d0 <== NOT EXECUTED 45b84: b280 cmpl %d0,%d1 <== NOT EXECUTED 45b86: 55c0 scs %d0 <== NOT EXECUTED 45b88: 49c0 extbl %d0 <== NOT EXECUTED if ( _Objects_Is_api_valid( api ) ) return 1; return -1; } 45b8a: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 45b8e: 4e5e unlk %fp <== NOT EXECUTED 45b90: 8081 orl %d1,%d0 <== NOT EXECUTED 45b92: 4e75 rts 00045b94 : const char *rtems_object_get_api_class_name( uint32_t the_api, uint32_t the_class ) { 45b94: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45b98: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 45b9c: 2f02 movel %d2,%sp@- <== NOT EXECUTED const rtems_assoc_t *api_assoc; const rtems_assoc_t *class_assoc; if ( the_api == OBJECTS_INTERNAL_API ) 45b9e: 203c 0005 9ee4 movel #368356,%d0 <== NOT EXECUTED 45ba4: 7401 moveq #1,%d2 <== NOT EXECUTED 45ba6: b481 cmpl %d1,%d2 <== NOT EXECUTED 45ba8: 6726 beqs 45bd0 <== NOT EXECUTED api_assoc = rtems_object_api_internal_assoc; else if ( the_api == OBJECTS_CLASSIC_API ) 45baa: 7402 moveq #2,%d2 <== NOT EXECUTED 45bac: 203c 0005 9efc movel #368380,%d0 <== NOT EXECUTED 45bb2: b481 cmpl %d1,%d2 <== NOT EXECUTED 45bb4: 671a beqs 45bd0 <== NOT EXECUTED api_assoc = rtems_object_api_classic_assoc; #ifdef RTEMS_POSIX_API else if ( the_api == OBJECTS_POSIX_API ) 45bb6: 7403 moveq #3,%d2 <== NOT EXECUTED 45bb8: 203c 0005 8711 movel #362257,%d0 <== NOT EXECUTED 45bbe: b481 cmpl %d1,%d2 <== NOT EXECUTED 45bc0: 6708 beqs 45bca <== NOT EXECUTED return "BAD API"; class_assoc = rtems_assoc_ptr_by_local( api_assoc, the_class ); if ( class_assoc ) return class_assoc->name; return "BAD CLASS"; } 45bc2: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 45bc6: 4e5e unlk %fp <== NOT EXECUTED 45bc8: 4e75 rts <== NOT EXECUTED if ( the_api == OBJECTS_INTERNAL_API ) api_assoc = rtems_object_api_internal_assoc; else if ( the_api == OBJECTS_CLASSIC_API ) api_assoc = rtems_object_api_classic_assoc; #ifdef RTEMS_POSIX_API else if ( the_api == OBJECTS_POSIX_API ) 45bca: 203c 0005 9f74 movel #368500,%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 ); 45bd0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45bd4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45bd6: 4eb9 0004 a808 jsr 4a808 <== NOT EXECUTED 45bdc: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( class_assoc ) 45bde: 508f addql #8,%sp <== NOT EXECUTED 45be0: 203c 0005 8719 movel #362265,%d0 <== NOT EXECUTED 45be6: 4a88 tstl %a0 <== NOT EXECUTED 45be8: 67d8 beqs 45bc2 <== NOT EXECUTED return class_assoc->name; return "BAD CLASS"; } 45bea: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED #endif else return "BAD API"; class_assoc = rtems_assoc_ptr_by_local( api_assoc, the_class ); if ( class_assoc ) return class_assoc->name; 45bee: 2010 movel %a0@,%d0 <== NOT EXECUTED return "BAD CLASS"; } 45bf0: 4e5e unlk %fp <== NOT EXECUTED 45bf2: 4e75 rts 00045bf4 : }; const char *rtems_object_get_api_name( uint32_t api ) { 45bf4: 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 ); 45bf8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45bfc: 4879 0005 a004 pea 5a004 <== NOT EXECUTED 45c02: 4eb9 0004 a808 jsr 4a808 <== NOT EXECUTED 45c08: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( api_assoc ) 45c0a: 508f addql #8,%sp <== NOT EXECUTED 45c0c: 203c 0005 8719 movel #362265,%d0 <== NOT EXECUTED 45c12: 4a88 tstl %a0 <== NOT EXECUTED 45c14: 6702 beqs 45c18 <== NOT EXECUTED return api_assoc->name; 45c16: 2010 movel %a0@,%d0 <== NOT EXECUTED return "BAD CLASS"; } 45c18: 4e5e unlk %fp <== NOT EXECUTED 45c1a: 4e75 rts 00047224 : rtems_status_code rtems_object_get_class_information( uint32_t the_api, uint32_t the_class, rtems_object_api_class_information *info ) { 47224: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47228: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4722a: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED uint32_t i; /* * Validate parameters and look up information structure. */ if ( !info ) 4722e: 4a8a tstl %a2 <== NOT EXECUTED 47230: 6762 beqs 47294 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; obj_info = _Objects_Get_information( the_api, the_class ); 47232: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 47236: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4723a: 4eb9 0004 8f74 jsr 48f74 <_Objects_Get_information> <== NOT EXECUTED if ( !obj_info ) 47240: 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 ); 47242: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !obj_info ) 47244: 4a80 tstl %d0 <== NOT EXECUTED 47246: 6756 beqs 4729e <== NOT EXECUTED return RTEMS_INVALID_NUMBER; /* * Return information about this object class to the user. */ info->minimum_id = obj_info->minimum_id; 47248: 24a8 0006 movel %a0@(6),%a2@ <== NOT EXECUTED info->maximum_id = obj_info->maximum_id; info->auto_extend = obj_info->auto_extend; info->maximum = obj_info->maximum; 4724c: 4281 clrl %d1 <== 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; 4724e: 2568 000a 0004 movel %a0@(10),%a2@(4) <== NOT EXECUTED info->auto_extend = obj_info->auto_extend; info->maximum = obj_info->maximum; 47254: 3228 000e movew %a0@(14),%d1 <== NOT EXECUTED 47258: 2541 0008 movel %d1,%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; 4725c: 1568 0010 000c moveb %a0@(16),%a2@(12) <== NOT EXECUTED info->maximum = obj_info->maximum; for ( unallocated=0, i=1 ; i <= info->maximum ; i++ ) 47262: 4a81 tstl %d1 <== NOT EXECUTED 47264: 6742 beqs 472a8 <== NOT EXECUTED 47266: 2068 001a moveal %a0@(26),%a0 <== NOT EXECUTED 4726a: 93c9 subal %a1,%a1 <== NOT EXECUTED 4726c: 5888 addql #4,%a0 <== NOT EXECUTED 4726e: 7001 moveq #1,%d0 <== NOT EXECUTED 47270: 5280 addql #1,%d0 <== NOT EXECUTED if ( !obj_info->local_table[i] ) 47272: 4a90 tstl %a0@ <== NOT EXECUTED 47274: 6714 beqs 4728a <== 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++ ) 47276: 5888 addql #4,%a0 <== NOT EXECUTED 47278: b081 cmpl %d1,%d0 <== NOT EXECUTED 4727a: 63f4 blss 47270 <== NOT EXECUTED if ( !obj_info->local_table[i] ) unallocated++; info->unallocated = unallocated; 4727c: 4280 clrl %d0 <== NOT EXECUTED 4727e: 2549 000e movel %a1,%a2@(14) <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 47282: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47286: 4e5e unlk %fp <== NOT EXECUTED 47288: 4e75 rts <== NOT EXECUTED info->auto_extend = obj_info->auto_extend; info->maximum = obj_info->maximum; for ( unallocated=0, i=1 ; i <= info->maximum ; i++ ) if ( !obj_info->local_table[i] ) unallocated++; 4728a: 5289 addql #1,%a1 <== 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++ ) 4728c: 5888 addql #4,%a0 <== NOT EXECUTED 4728e: b081 cmpl %d1,%d0 <== NOT EXECUTED 47290: 63de blss 47270 <== NOT EXECUTED 47292: 60e8 bras 4727c <== NOT EXECUTED unallocated++; info->unallocated = unallocated; return RTEMS_SUCCESSFUL; } 47294: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 47298: 4e5e unlk %fp <== NOT EXECUTED uint32_t i; /* * Validate parameters and look up information structure. */ if ( !info ) 4729a: 7009 moveq #9,%d0 <== NOT EXECUTED unallocated++; info->unallocated = unallocated; return RTEMS_SUCCESSFUL; } 4729c: 4e75 rts <== NOT EXECUTED 4729e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 472a2: 4e5e unlk %fp <== NOT EXECUTED */ if ( !info ) return RTEMS_INVALID_ADDRESS; obj_info = _Objects_Get_information( the_api, the_class ); if ( !obj_info ) 472a4: 700a moveq #10,%d0 <== NOT EXECUTED unallocated++; info->unallocated = unallocated; return RTEMS_SUCCESSFUL; } 472a6: 4e75 rts <== 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++ ) 472a8: 93c9 subal %a1,%a1 <== NOT EXECUTED if ( !obj_info->local_table[i] ) unallocated++; info->unallocated = unallocated; 472aa: 2549 000e movel %a1,%a2@(14) <== NOT EXECUTED 472ae: 4280 clrl %d0 <== NOT EXECUTED 472b0: 60d0 bras 47282 <== NOT EXECUTED ... 000468a4 : rtems_status_code rtems_object_get_classic_name( rtems_id id, rtems_name *name ) { 468a4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 468a8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 468aa: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; Objects_Name name_u; if ( !name ) 468ae: 4a8a tstl %a2 <== NOT EXECUTED 468b0: 6726 beqs 468d8 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; status = _Objects_Id_to_name( id, &name_u ); 468b2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 468b6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 468ba: 4eb9 0004 8650 jsr 48650 <_Objects_Id_to_name> <== NOT EXECUTED *name = name_u.name_u32; 468c0: 24ae fffc movel %fp@(-4),%a2@ <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; 468c4: 41f9 0005 9398 lea 59398 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED } 468ca: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; status = _Objects_Id_to_name( id, &name_u ); *name = name_u.name_u32; return _Status_Object_name_errors_to_status[ status ]; 468ce: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 468d2: 508f addql #8,%sp <== NOT EXECUTED } 468d4: 4e5e unlk %fp <== NOT EXECUTED 468d6: 4e75 rts <== NOT EXECUTED 468d8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 468dc: 4e5e unlk %fp <== NOT EXECUTED ) { Objects_Name_or_id_lookup_errors status; Objects_Name name_u; if ( !name ) 468de: 7009 moveq #9,%d0 <== NOT EXECUTED status = _Objects_Id_to_name( id, &name_u ); *name = name_u.name_u32; return _Status_Object_name_errors_to_status[ status ]; } 468e0: 4e75 rts <== NOT EXECUTED ... 000532e4 : char *rtems_object_get_name( Objects_Id id, size_t length, char *name ) { 532e4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Get_name_as_string( id, length, name ); } 532e8: 4e5e unlk %fp <== NOT EXECUTED Objects_Id id, size_t length, char *name ) { return _Objects_Get_name_as_string( id, length, name ); 532ea: 4ef9 0005 3e2c jmp 53e2c <_Objects_Get_name_as_string> <== NOT EXECUTED 000472c0 : #include #include #undef rtems_object_id_api_maximum uint32_t rtems_object_id_api_maximum(void) { 472c0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return OBJECTS_ITRON_API; } 472c4: 4e5e unlk %fp <== NOT EXECUTED 472c6: 7004 moveq #4,%d0 <== NOT EXECUTED 472c8: 4e75 rts <== NOT EXECUTED ... 000472cc : #include #include #undef rtems_object_id_api_minimum uint32_t rtems_object_id_api_minimum(void) { 472cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return OBJECTS_INTERNAL_API; } 472d0: 4e5e unlk %fp <== NOT EXECUTED 472d2: 7001 moveq #1,%d0 <== NOT EXECUTED 472d4: 4e75 rts <== NOT EXECUTED ... 000472d8 : #undef rtems_object_id_get_api uint32_t rtems_object_id_get_api( rtems_id id ) { 472d8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 472dc: 4280 clrl %d0 <== NOT EXECUTED 472de: 102e 0008 moveb %fp@(8),%d0 <== NOT EXECUTED return _Objects_Get_API( id ); } 472e2: 7207 moveq #7,%d1 <== NOT EXECUTED 472e4: 4e5e unlk %fp <== NOT EXECUTED 472e6: c081 andl %d1,%d0 <== NOT EXECUTED 472e8: 4e75 rts <== NOT EXECUTED ... 000472ec : #undef rtems_object_id_get_class uint32_t rtems_object_id_get_class( rtems_id id ) { 472ec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 472f0: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED return _Objects_Get_class( id ); } 472f4: 721b moveq #27,%d1 <== NOT EXECUTED 472f6: 4e5e unlk %fp <== NOT EXECUTED 472f8: e2a8 lsrl %d1,%d0 <== NOT EXECUTED 472fa: 4e75 rts 000472fc : #undef rtems_object_id_get_index uint32_t rtems_object_id_get_index( rtems_id id ) { 472fc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Get_index( id ); } 47300: 4280 clrl %d0 <== NOT EXECUTED 47302: 302e 000a movew %fp@(10),%d0 <== NOT EXECUTED 47306: 4e5e unlk %fp <== NOT EXECUTED 47308: 4e75 rts <== NOT EXECUTED ... 0004730c : #undef rtems_object_id_get_node uint32_t rtems_object_id_get_node( rtems_id id ) { 4730c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Objects_Get_node( id ); } 47310: 4280 clrl %d0 <== NOT EXECUTED 47312: 102e 0009 moveb %fp@(9),%d0 <== NOT EXECUTED 47316: 4e5e unlk %fp <== NOT EXECUTED 47318: 4e75 rts <== NOT EXECUTED ... 00045c28 : */ rtems_status_code rtems_object_set_name( rtems_id id, const char *name ) { 45c28: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45c2c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45c2e: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 45c32: 2f02 movel %d2,%sp@- <== NOT EXECUTED Objects_Information *information; Objects_Locations location; Objects_Control *the_object; Objects_Id tmpId; if ( !name ) 45c34: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 45c38: 677c beqs 45cb6 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 45c3a: 4a80 tstl %d0 <== NOT EXECUTED 45c3c: 665a bnes 45c98 <== NOT EXECUTED 45c3e: 2079 0005 b7e6 moveal 5b7e6 <_Thread_Executing>,%a0 <== NOT EXECUTED 45c44: 2428 0008 movel %a0@(8),%d2 <== NOT EXECUTED information = _Objects_Get_information_id( tmpId ); 45c48: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45c4a: 4eb9 0004 779c jsr 4779c <_Objects_Get_information_id> <== NOT EXECUTED if ( !information ) 45c50: 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 ); 45c52: 2600 movel %d0,%d3 <== NOT EXECUTED if ( !information ) 45c54: 6752 beqs 45ca8 <== NOT EXECUTED return RTEMS_INVALID_ID; the_object = _Objects_Get( information, tmpId, &location ); 45c56: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45c5a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45c5c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45c5e: 4eb9 0004 7988 jsr 47988 <_Objects_Get> <== NOT EXECUTED switch ( location ) { 45c64: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45c6a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45c6e: 6638 bnes 45ca8 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Set_name( information, the_object, name ); 45c70: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45c74: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45c76: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45c78: 4eb9 0004 7b28 jsr 47b28 <_Objects_Set_name> <== NOT EXECUTED _Thread_Enable_dispatch(); 45c7e: 4eb9 0004 8294 jsr 48294 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45c84: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 45c88: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED the_object = _Objects_Get( information, tmpId, &location ); switch ( location ) { case OBJECTS_LOCAL: _Objects_Set_name( information, the_object, name ); _Thread_Enable_dispatch(); 45c8c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45c92: 4e5e unlk %fp <== NOT EXECUTED the_object = _Objects_Get( information, tmpId, &location ); switch ( location ) { case OBJECTS_LOCAL: _Objects_Set_name( information, the_object, name ); _Thread_Enable_dispatch(); 45c94: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45c96: 4e75 rts <== NOT EXECUTED Objects_Id tmpId; if ( !name ) return RTEMS_INVALID_ADDRESS; tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id; 45c98: 2400 movel %d0,%d2 <== NOT EXECUTED information = _Objects_Get_information_id( tmpId ); 45c9a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45c9c: 4eb9 0004 779c jsr 4779c <_Objects_Get_information_id> <== NOT EXECUTED if ( !information ) 45ca2: 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 ); 45ca4: 2600 movel %d0,%d3 <== NOT EXECUTED if ( !information ) 45ca6: 66ae bnes 45c56 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45ca8: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 45cac: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 45cb0: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: _Objects_Set_name( information, the_object, name ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; 45cb2: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45cb4: 4e75 rts <== NOT EXECUTED 45cb6: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 45cba: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 45cbe: 4e5e unlk %fp <== NOT EXECUTED Objects_Information *information; Objects_Locations location; Objects_Control *the_object; Objects_Id tmpId; if ( !name ) 45cc0: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45cc2: 4e75 rts 00042514 : void rtems_panic( const char *printf_format, ... ) { 42514: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED va_list arglist; va_start(arglist, printf_format); (void) rtems_verror(RTEMS_ERROR_PANIC, printf_format, arglist); 42518: 486e 000c pea %fp@(12) <== NOT EXECUTED 4251c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42520: 2f3c 2000 0000 movel #536870912,%sp@- <== NOT EXECUTED 42526: 4eba fe1c jsr %pc@(42344 ) <== NOT EXECUTED 4252a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED va_end(arglist); } 42530: 4e5e unlk %fp <== NOT EXECUTED 42532: 4e75 rts 00050c7c : uint32_t length, uint32_t buffer_size, rtems_attribute attribute_set, Objects_Id *id ) { 50c7c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 50c80: 2f0a movel %a2,%sp@- <== NOT EXECUTED 50c82: 2f02 movel %d2,%sp@- <== NOT EXECUTED register Partition_Control *the_partition; if ( !rtems_is_name_valid( name ) ) 50c84: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 50c88: 6750 beqs 50cda <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !starting_address ) 50c8a: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 50c8e: 672e beqs 50cbe <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !id ) 50c90: 4aae 001c tstl %fp@(28) <== NOT EXECUTED 50c94: 6728 beqs 50cbe <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( length == 0 || buffer_size == 0 || length < buffer_size || 50c96: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 50c9a: 6730 beqs 50ccc <== NOT EXECUTED 50c9c: 4aae 0014 tstl %fp@(20) <== NOT EXECUTED 50ca0: 672a beqs 50ccc <== NOT EXECUTED 50ca2: 202e 0014 movel %fp@(20),%d0 <== NOT EXECUTED 50ca6: b0ae 0010 cmpl %fp@(16),%d0 <== NOT EXECUTED 50caa: 6220 bhis 50ccc <== NOT EXECUTED 50cac: 7003 moveq #3,%d0 <== NOT EXECUTED 50cae: c0ae 0014 andl %fp@(20),%d0 <== NOT EXECUTED 50cb2: 6618 bnes 50ccc <== NOT EXECUTED !_Partition_Is_buffer_size_aligned( buffer_size ) ) return RTEMS_INVALID_SIZE; if ( !_Addresses_Is_aligned( starting_address ) ) 50cb4: 103c 0003 moveb #3,%d0 <== NOT EXECUTED 50cb8: c0ae 000c andl %fp@(12),%d0 <== NOT EXECUTED 50cbc: 672a beqs 50ce8 <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50cbe: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 50cc2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 50cc6: 4e5e unlk %fp <== NOT EXECUTED 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; 50cc8: 7009 moveq #9,%d0 <== NOT EXECUTED } 50cca: 4e75 rts <== NOT EXECUTED 50ccc: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 50cd0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 50cd4: 4e5e unlk %fp <== NOT EXECUTED 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; 50cd6: 7008 moveq #8,%d0 <== NOT EXECUTED } 50cd8: 4e75 rts <== NOT EXECUTED 50cda: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 50cde: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 50ce2: 4e5e unlk %fp <== NOT EXECUTED Objects_Id *id ) { register Partition_Control *the_partition; if ( !rtems_is_name_valid( name ) ) 50ce4: 7003 moveq #3,%d0 <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50ce6: 4e75 rts <== NOT EXECUTED 50ce8: 2039 0007 2b48 movel 72b48 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 50cee: 5280 addql #1,%d0 <== NOT EXECUTED 50cf0: 23c0 0007 2b48 movel %d0,72b48 <_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 ); 50cf6: 4879 0007 2974 pea 72974 <_Partition_Information> <== NOT EXECUTED 50cfc: 4eb9 0005 5600 jsr 55600 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_partition = _Partition_Allocate(); if ( !the_partition ) { 50d02: 588f addql #4,%sp <== NOT EXECUTED 50d04: 2440 moveal %d0,%a2 <== NOT EXECUTED 50d06: 4a80 tstl %d0 <== NOT EXECUTED 50d08: 6770 beqs 50d7a <== NOT EXECUTED return RTEMS_TOO_MANY; } #endif the_partition->starting_address = starting_address; the_partition->length = length; 50d0a: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED the_partition->buffer_size = buffer_size; the_partition->attribute_set = attribute_set; 50d0e: 256e 0018 001c movel %fp@(24),%a2@(28) <== NOT EXECUTED the_partition->number_of_used_blocks = 0; _Chain_Initialize( &the_partition->Memory, starting_address, 50d14: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } #endif the_partition->starting_address = starting_address; 50d18: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED the_partition->length = length; 50d1c: 2541 0014 movel %d1,%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, 50d20: 4c42 1001 remul %d2,%d1,%d1 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } #endif the_partition->starting_address = starting_address; 50d24: 2548 0010 movel %a0,%a2@(16) <== NOT EXECUTED the_partition->length = length; the_partition->buffer_size = buffer_size; 50d28: 2542 0018 movel %d2,%a2@(24) <== NOT EXECUTED the_partition->attribute_set = attribute_set; the_partition->number_of_used_blocks = 0; 50d2c: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED _Chain_Initialize( &the_partition->Memory, starting_address, 50d30: 2f02 movel %d2,%sp@- <== NOT EXECUTED 50d32: 2f01 movel %d1,%sp@- <== NOT EXECUTED 50d34: 2f08 movel %a0,%sp@- <== NOT EXECUTED 50d36: 486a 0024 pea %a2@(36) <== NOT EXECUTED 50d3a: 4eb9 0005 41f4 jsr 541f4 <_Chain_Initialize> <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 50d40: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 50d44: 2079 0007 298e moveal 7298e <_Partition_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 50d4a: 2540 000c movel %d0,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 50d4e: 4280 clrl %d0 <== NOT EXECUTED 50d50: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 50d54: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED &_Partition_Information, &the_partition->Object, (Objects_Name) name ); *id = the_partition->Object.id; 50d58: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 50d5c: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED name, 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); 50d60: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 50d66: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 50d6a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED name, 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); 50d6e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 50d74: 4e5e unlk %fp <== NOT EXECUTED name, 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); 50d76: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 50d78: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_partition = _Partition_Allocate(); if ( !the_partition ) { _Thread_Enable_dispatch(); 50d7a: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50d80: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 50d84: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 50d88: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_partition = _Partition_Allocate(); if ( !the_partition ) { _Thread_Enable_dispatch(); 50d8a: 7005 moveq #5,%d0 <== NOT EXECUTED ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50d8c: 4e75 rts <== NOT EXECUTED ... 00050d90 : */ rtems_status_code rtems_partition_delete( Objects_Id id ) { 50d90: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 50d94: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get ( Objects_Id id, Objects_Locations *location ) { return (Partition_Control *) 50d96: 486e fffc pea %fp@(-4) <== NOT EXECUTED 50d9a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 50d9e: 4879 0007 2974 pea 72974 <_Partition_Information> <== NOT EXECUTED 50da4: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED register Partition_Control *the_partition; Objects_Locations location; the_partition = _Partition_Get( id, &location ); switch ( location ) { 50daa: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 50db0: 2440 moveal %d0,%a2 <== NOT EXECUTED 50db2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 50db6: 670a beqs 50dc2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50db8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50dbc: 4e5e unlk %fp <== NOT EXECUTED { register Partition_Control *the_partition; Objects_Locations location; the_partition = _Partition_Get( id, &location ); switch ( location ) { 50dbe: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50dc0: 4e75 rts <== NOT EXECUTED the_partition = _Partition_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( the_partition->number_of_used_blocks == 0 ) { 50dc2: 4aaa 0020 tstl %a2@(32) <== NOT EXECUTED 50dc6: 6710 beqs 50dd8 <== NOT EXECUTED #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 50dc8: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50dce: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50dd2: 4e5e unlk %fp <== NOT EXECUTED #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 50dd4: 700c moveq #12,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50dd6: 4e75 rts <== NOT EXECUTED the_partition = _Partition_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( the_partition->number_of_used_blocks == 0 ) { _Objects_Close( &_Partition_Information, &the_partition->Object ); 50dd8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 50dda: 4879 0007 2974 pea 72974 <_Partition_Information> <== NOT EXECUTED 50de0: 4eb9 0005 569c jsr 5569c <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Partition_Free ( Partition_Control *the_partition ) { _Objects_Free( &_Partition_Information, &the_partition->Object ); 50de6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 50de8: 4879 0007 2974 pea 72974 <_Partition_Information> <== NOT EXECUTED 50dee: 4eb9 0005 59c0 jsr 559c0 <_Objects_Free> <== NOT EXECUTED 0 /* Not used */ ); } #endif _Thread_Enable_dispatch(); 50df4: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50dfa: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 0 /* Not used */ ); } #endif _Thread_Enable_dispatch(); 50dfe: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50e04: 4e5e unlk %fp <== NOT EXECUTED 0 /* Not used */ ); } #endif _Thread_Enable_dispatch(); 50e06: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50e08: 4e75 rts <== NOT EXECUTED ... 00050e0c : rtems_status_code rtems_partition_get_buffer( Objects_Id id, void **buffer ) { 50e0c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 50e10: 2f0a movel %a2,%sp@- <== NOT EXECUTED 50e12: 2f02 movel %d2,%sp@- <== NOT EXECUTED register Partition_Control *the_partition; Objects_Locations location; void *the_buffer; if ( !buffer ) 50e14: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 50e18: 675e beqs 50e78 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get ( Objects_Id id, Objects_Locations *location ) { return (Partition_Control *) 50e1a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 50e1e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 50e22: 4879 0007 2974 pea 72974 <_Partition_Information> <== NOT EXECUTED 50e28: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_partition = _Partition_Get( id, &location ); switch ( location ) { 50e2e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 50e34: 2440 moveal %d0,%a2 <== NOT EXECUTED 50e36: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 50e3a: 662e bnes 50e6a <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void *_Partition_Allocate_buffer ( Partition_Control *the_partition ) { return _Chain_Get( &the_partition->Memory ); 50e3c: 486a 0024 pea %a2@(36) <== NOT EXECUTED 50e40: 4eb9 0005 41b8 jsr 541b8 <_Chain_Get> <== NOT EXECUTED case OBJECTS_LOCAL: the_buffer = _Partition_Allocate_buffer( the_partition ); if ( the_buffer ) { 50e46: 588f addql #4,%sp <== NOT EXECUTED 50e48: 2400 movel %d0,%d2 <== NOT EXECUTED 50e4a: 673a beqs 50e86 <== NOT EXECUTED the_partition->number_of_used_blocks += 1; 50e4c: 52aa 0020 addql #1,%a2@(32) <== NOT EXECUTED _Thread_Enable_dispatch(); 50e50: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED *buffer = the_buffer; 50e56: 4280 clrl %d0 <== NOT EXECUTED 50e58: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 50e5c: 2082 movel %d2,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50e5e: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 50e62: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50e66: 4e5e unlk %fp <== NOT EXECUTED 50e68: 4e75 rts <== NOT EXECUTED 50e6a: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 50e6e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50e72: 4e5e unlk %fp <== NOT EXECUTED if ( !buffer ) return RTEMS_INVALID_ADDRESS; the_partition = _Partition_Get( id, &location ); switch ( location ) { 50e74: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50e76: 4e75 rts <== NOT EXECUTED 50e78: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 50e7c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50e80: 4e5e unlk %fp <== NOT EXECUTED { register Partition_Control *the_partition; Objects_Locations location; void *the_buffer; if ( !buffer ) 50e82: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50e84: 4e75 rts <== NOT EXECUTED the_partition->number_of_used_blocks += 1; _Thread_Enable_dispatch(); *buffer = the_buffer; return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 50e86: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50e8c: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 50e90: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50e94: 4e5e unlk %fp <== NOT EXECUTED the_partition->number_of_used_blocks += 1; _Thread_Enable_dispatch(); *buffer = the_buffer; return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 50e96: 700d moveq #13,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50e98: 4e75 rts <== NOT EXECUTED ... 00050e9c : rtems_status_code rtems_partition_ident( rtems_name name, uint32_t node, Objects_Id *id ) { 50e9c: 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 ); 50ea0: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 50ea4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 50ea8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 50eac: 4879 0007 2974 pea 72974 <_Partition_Information> <== NOT EXECUTED 50eb2: 4eb9 0005 5d04 jsr 55d04 <_Objects_Name_to_id_u32> <== NOT EXECUTED 50eb8: 41f9 0006 ba62 lea 6ba62 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; } 50ebe: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 50ec2: 4e5e unlk %fp <== NOT EXECUTED 50ec4: 4e75 rts <== NOT EXECUTED ... 00050ec8 : rtems_status_code rtems_partition_return_buffer( Objects_Id id, void *buffer ) { 50ec8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 50ecc: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get ( Objects_Id id, Objects_Locations *location ) { return (Partition_Control *) 50ece: 486e fffc pea %fp@(-4) <== NOT EXECUTED 50ed2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 50ed6: 4879 0007 2974 pea 72974 <_Partition_Information> <== NOT EXECUTED 50edc: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED register Partition_Control *the_partition; Objects_Locations location; the_partition = _Partition_Get( id, &location ); switch ( location ) { 50ee2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 50ee8: 2440 moveal %d0,%a2 <== NOT EXECUTED 50eea: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 50eee: 670a beqs 50efa <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50ef0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50ef4: 4e5e unlk %fp <== NOT EXECUTED { register Partition_Control *the_partition; Objects_Locations location; the_partition = _Partition_Get( id, &location ); switch ( location ) { 50ef6: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50ef8: 4e75 rts <== NOT EXECUTED ) { void *starting; void *ending; starting = the_partition->starting_address; 50efa: 222a 0010 movel %a2@(16),%d1 <== NOT EXECUTED ending = _Addresses_Add_offset( starting, the_partition->length ); 50efe: 202a 0014 movel %a2@(20),%d0 <== NOT EXECUTED void *address, void *base, void *limit ) { return (address >= base && address <= limit); 50f02: b2ae 000c cmpl %fp@(12),%d1 <== NOT EXECUTED 50f06: 6310 blss 50f18 <== NOT EXECUTED _Partition_Free_buffer( the_partition, buffer ); the_partition->number_of_used_blocks -= 1; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 50f08: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50f0e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50f12: 4e5e unlk %fp <== NOT EXECUTED _Partition_Free_buffer( the_partition, buffer ); the_partition->number_of_used_blocks -= 1; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 50f14: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50f16: 4e75 rts <== NOT EXECUTED 50f18: d081 addl %d1,%d0 <== NOT EXECUTED 50f1a: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 50f1e: 65e8 bcss 50f08 <== NOT EXECUTED return ( 50f20: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 50f24: 9081 subl %d1,%d0 <== NOT EXECUTED 50f26: 4c6a 0001 0018 remul %a2@(24),%d1,%d0 <== NOT EXECUTED 50f2c: 4a81 tstl %d1 <== NOT EXECUTED 50f2e: 66d8 bnes 50f08 <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Partition_Free_buffer ( Partition_Control *the_partition, Chain_Node *the_buffer ) { _Chain_Append( &the_partition->Memory, the_buffer ); 50f30: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 50f34: 486a 0024 pea %a2@(36) <== NOT EXECUTED 50f38: 4eb9 0005 4180 jsr 54180 <_Chain_Append> <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) { _Partition_Free_buffer( the_partition, buffer ); the_partition->number_of_used_blocks -= 1; 50f3e: 53aa 0020 subql #1,%a2@(32) <== NOT EXECUTED _Thread_Enable_dispatch(); 50f42: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50f48: 246e fff8 moveal %fp@(-8),%a2 <== 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; _Thread_Enable_dispatch(); 50f4c: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50f4e: 4e5e unlk %fp <== 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; _Thread_Enable_dispatch(); 50f50: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50f52: 4e75 rts 0005019c : void *internal_start, void *external_start, uint32_t length, Objects_Id *id ) { 5019c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED register Dual_ported_memory_Control *the_port; if ( !rtems_is_name_valid( name) ) 501a0: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 501a4: 671a beqs 501c0 <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 501a6: 4aae 0018 tstl %fp@(24) <== NOT EXECUTED 501aa: 670e beqs 501ba <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_Addresses_Is_aligned( internal_start ) || 501ac: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 501b0: 7203 moveq #3,%d1 <== NOT EXECUTED 501b2: 80ae 000c orl %fp@(12),%d0 <== NOT EXECUTED 501b6: c081 andl %d1,%d0 <== NOT EXECUTED 501b8: 670c beqs 501c6 <== NOT EXECUTED ); *id = the_port->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 501ba: 4e5e unlk %fp <== NOT EXECUTED (Objects_Name) name ); *id = the_port->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; 501bc: 7009 moveq #9,%d0 <== NOT EXECUTED } 501be: 4e75 rts <== NOT EXECUTED 501c0: 4e5e unlk %fp <== NOT EXECUTED Objects_Id *id ) { register Dual_ported_memory_Control *the_port; if ( !rtems_is_name_valid( name) ) 501c2: 7003 moveq #3,%d0 <== NOT EXECUTED ); *id = the_port->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 501c4: 4e75 rts <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 501c6: 2039 0007 2b48 movel 72b48 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 501cc: 5280 addql #1,%d0 <== NOT EXECUTED 501ce: 23c0 0007 2b48 movel %d0,72b48 <_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 *) 501d4: 4879 0007 2938 pea 72938 <_Dual_ported_memory_Information> <== NOT EXECUTED 501da: 4eb9 0005 5600 jsr 55600 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_port = _Dual_ported_memory_Allocate(); if ( !the_port ) { 501e0: 588f addql #4,%sp <== NOT EXECUTED 501e2: 2240 moveal %d0,%a1 <== NOT EXECUTED 501e4: 4a80 tstl %d0 <== NOT EXECUTED 501e6: 6746 beqs 5022e <== NOT EXECUTED return RTEMS_TOO_MANY; } the_port->internal_base = internal_start; the_port->external_base = external_start; the_port->length = length - 1; 501e8: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 501ec: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 501f0: 5388 subql #1,%a0 <== NOT EXECUTED 501f2: 2348 0018 movel %a0,%a1@(24) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 501f6: 2079 0007 2952 moveal 72952 <_Dual_ported_memory_Information+0x1a>,%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 501fc: 2340 000c movel %d0,%a1@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 50200: 4280 clrl %d0 <== NOT EXECUTED 50202: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED 50206: 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; 5020a: 206e 0018 moveal %fp@(24),%a0 <== NOT EXECUTED if ( !the_port ) { _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } the_port->internal_base = internal_start; 5020e: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED the_port->external_base = external_start; 50212: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED &_Dual_ported_memory_Information, &the_port->Object, (Objects_Name) name ); *id = the_port->Object.id; 50216: 20a9 0008 movel %a1@(8),%a0@ <== NOT EXECUTED if ( !the_port ) { _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } the_port->internal_base = internal_start; 5021a: 2340 0010 movel %d0,%a1@(16) <== NOT EXECUTED the_port->external_base = external_start; 5021e: 2341 0014 movel %d1,%a1@(20) <== NOT EXECUTED &the_port->Object, (Objects_Name) name ); *id = the_port->Object.id; _Thread_Enable_dispatch(); 50222: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 50228: 4e5e unlk %fp <== NOT EXECUTED &the_port->Object, (Objects_Name) name ); *id = the_port->Object.id; _Thread_Enable_dispatch(); 5022a: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 5022c: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_port = _Dual_ported_memory_Allocate(); if ( !the_port ) { _Thread_Enable_dispatch(); 5022e: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED ); *id = the_port->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50234: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_port = _Dual_ported_memory_Allocate(); if ( !the_port ) { _Thread_Enable_dispatch(); 50236: 7005 moveq #5,%d0 <== NOT EXECUTED ); *id = the_port->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 50238: 4e75 rts <== NOT EXECUTED ... 0005023c : */ rtems_status_code rtems_port_delete( Objects_Id id ) { 5023c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 50240: 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 *) 50242: 486e fffc pea %fp@(-4) <== NOT EXECUTED 50246: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 5024a: 4879 0007 2938 pea 72938 <_Dual_ported_memory_Information> <== NOT EXECUTED 50250: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED register Dual_ported_memory_Control *the_port; Objects_Locations location; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 50256: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5025c: 2400 movel %d0,%d2 <== NOT EXECUTED 5025e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 50262: 6632 bnes 50296 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Dual_ported_memory_Information, &the_port->Object ); 50264: 2f00 movel %d0,%sp@- <== NOT EXECUTED 50266: 4879 0007 2938 pea 72938 <_Dual_ported_memory_Information> <== NOT EXECUTED 5026c: 4eb9 0005 569c jsr 5569c <_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 ); 50272: 2f02 movel %d2,%sp@- <== NOT EXECUTED 50274: 4879 0007 2938 pea 72938 <_Dual_ported_memory_Information> <== NOT EXECUTED 5027a: 4eb9 0005 59c0 jsr 559c0 <_Objects_Free> <== NOT EXECUTED _Dual_ported_memory_Free( the_port ); _Thread_Enable_dispatch(); 50280: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50286: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: _Objects_Close( &_Dual_ported_memory_Information, &the_port->Object ); _Dual_ported_memory_Free( the_port ); _Thread_Enable_dispatch(); 5028a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50290: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: _Objects_Close( &_Dual_ported_memory_Information, &the_port->Object ); _Dual_ported_memory_Free( the_port ); _Thread_Enable_dispatch(); 50292: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50294: 4e75 rts <== NOT EXECUTED 50296: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 5029a: 4e5e unlk %fp <== NOT EXECUTED { register Dual_ported_memory_Control *the_port; Objects_Locations location; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 5029c: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5029e: 4e75 rts 000502a0 : rtems_status_code rtems_port_external_to_internal( Objects_Id id, void *external, void **internal ) { 502a0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 502a4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 502a6: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED register Dual_ported_memory_Control *the_port; Objects_Locations location; uint32_t ending; if ( !internal ) 502aa: 4a8a tstl %a2 <== NOT EXECUTED 502ac: 675e beqs 5030c <== NOT EXECUTED RTEMS_INLINE_ROUTINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( Objects_Id id, Objects_Locations *location ) { return (Dual_ported_memory_Control *) 502ae: 486e fffc pea %fp@(-4) <== NOT EXECUTED 502b2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 502b6: 4879 0007 2938 pea 72938 <_Dual_ported_memory_Information> <== NOT EXECUTED 502bc: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 502c2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 502c8: 2040 moveal %d0,%a0 <== NOT EXECUTED 502ca: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 502ce: 6622 bnes 502f2 <== NOT EXECUTED RTEMS_INLINE_ROUTINE uint32_t _Addresses_Subtract ( void *left, void *right ) { return ((char *) left - (char *) right); 502d0: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 502d4: 90a8 0014 subl %a0@(20),%d0 <== NOT EXECUTED case OBJECTS_LOCAL: ending = _Addresses_Subtract( external, the_port->external_base ); if ( ending > the_port->length ) 502d8: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 502dc: 631e blss 502fc <== NOT EXECUTED *internal = external; 502de: 24ae 000c movel %fp@(12),%a2@ <== NOT EXECUTED else *internal = _Addresses_Add_offset( the_port->internal_base, ending ); _Thread_Enable_dispatch(); 502e2: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 502e8: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 502ea: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 502ee: 4e5e unlk %fp <== NOT EXECUTED 502f0: 4e75 rts <== NOT EXECUTED 502f2: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 502f6: 4e5e unlk %fp <== NOT EXECUTED if ( !internal ) return RTEMS_INVALID_ADDRESS; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 502f8: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 502fa: 4e75 rts <== NOT EXECUTED case OBJECTS_LOCAL: ending = _Addresses_Subtract( external, the_port->external_base ); if ( ending > the_port->length ) *internal = external; else *internal = _Addresses_Add_offset( the_port->internal_base, 502fc: d0a8 0010 addl %a0@(16),%d0 <== NOT EXECUTED 50300: 2480 movel %d0,%a2@ <== NOT EXECUTED ending ); _Thread_Enable_dispatch(); 50302: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 50308: 4280 clrl %d0 <== NOT EXECUTED 5030a: 60de bras 502ea <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5030c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50310: 4e5e unlk %fp <== NOT EXECUTED { register Dual_ported_memory_Control *the_port; Objects_Locations location; uint32_t ending; if ( !internal ) 50312: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50314: 4e75 rts <== NOT EXECUTED ... 00050318 : rtems_status_code rtems_port_ident( rtems_name name, Objects_Id *id ) { 50318: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 5031c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 50320: 42a7 clrl %sp@- <== NOT EXECUTED 50322: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 50326: 4879 0007 2938 pea 72938 <_Dual_ported_memory_Information> <== NOT EXECUTED 5032c: 4eb9 0005 5d04 jsr 55d04 <_Objects_Name_to_id_u32> <== NOT EXECUTED 50332: 41f9 0006 ba62 lea 6ba62 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_ALL_NODES, id ); return _Status_Object_name_errors_to_status[ status ]; } 50338: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 5033c: 4e5e unlk %fp <== NOT EXECUTED 5033e: 4e75 rts 00050340 : rtems_status_code rtems_port_internal_to_external( Objects_Id id, void *internal, void **external ) { 50340: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 50344: 2f0a movel %a2,%sp@- <== NOT EXECUTED 50346: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED register Dual_ported_memory_Control *the_port; Objects_Locations location; uint32_t ending; if ( !external ) 5034a: 4a8a tstl %a2 <== NOT EXECUTED 5034c: 675e beqs 503ac <== NOT EXECUTED 5034e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 50352: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 50356: 4879 0007 2938 pea 72938 <_Dual_ported_memory_Information> <== NOT EXECUTED 5035c: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 50362: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 50368: 2040 moveal %d0,%a0 <== NOT EXECUTED 5036a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5036e: 6622 bnes 50392 <== NOT EXECUTED 50370: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 50374: 90a8 0010 subl %a0@(16),%d0 <== NOT EXECUTED case OBJECTS_LOCAL: ending = _Addresses_Subtract( internal, the_port->internal_base ); if ( ending > the_port->length ) 50378: b0a8 0018 cmpl %a0@(24),%d0 <== NOT EXECUTED 5037c: 631e blss 5039c <== NOT EXECUTED *external = internal; 5037e: 24ae 000c movel %fp@(12),%a2@ <== NOT EXECUTED else *external = _Addresses_Add_offset( the_port->external_base, ending ); _Thread_Enable_dispatch(); 50382: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 50388: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5038a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5038e: 4e5e unlk %fp <== NOT EXECUTED 50390: 4e75 rts <== NOT EXECUTED 50392: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50396: 4e5e unlk %fp <== NOT EXECUTED if ( !external ) return RTEMS_INVALID_ADDRESS; the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { 50398: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5039a: 4e75 rts <== NOT EXECUTED case OBJECTS_LOCAL: ending = _Addresses_Subtract( internal, the_port->internal_base ); if ( ending > the_port->length ) *external = internal; else *external = _Addresses_Add_offset( the_port->external_base, 5039c: d0a8 0014 addl %a0@(20),%d0 <== NOT EXECUTED 503a0: 2480 movel %d0,%a2@ <== NOT EXECUTED ending ); _Thread_Enable_dispatch(); 503a2: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 503a8: 4280 clrl %d0 <== NOT EXECUTED 503aa: 60de bras 5038a <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 503ac: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 503b0: 4e5e unlk %fp <== NOT EXECUTED { register Dual_ported_memory_Control *the_port; Objects_Locations location; uint32_t ending; if ( !external ) 503b2: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 503b4: 4e75 rts <== NOT EXECUTED ... 00050f54 : */ rtems_status_code rtems_rate_monotonic_cancel( Objects_Id id ) { 50f54: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 50f58: 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 *) 50f5a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 50f5e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 50f62: 4879 0007 29b0 pea 729b0 <_Rate_monotonic_Information> <== NOT EXECUTED 50f68: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED Rate_monotonic_Control *the_period; Objects_Locations location; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 50f6e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 50f74: 2440 moveal %d0,%a2 <== NOT EXECUTED 50f76: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 50f7a: 670a beqs 50f86 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50f7c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50f80: 4e5e unlk %fp <== NOT EXECUTED { Rate_monotonic_Control *the_period; Objects_Locations location; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 50f82: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50f84: 4e75 rts <== NOT EXECUTED the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_Thread_Is_executing( the_period->owner ) ) { 50f86: 2039 0007 2c06 movel 72c06 <_Thread_Executing>,%d0 <== NOT EXECUTED 50f8c: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 50f90: 6710 beqs 50fa2 <== NOT EXECUTED _Thread_Enable_dispatch(); 50f92: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50f98: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 50f9c: 4e5e unlk %fp <== NOT EXECUTED the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_Thread_Is_executing( the_period->owner ) ) { _Thread_Enable_dispatch(); 50f9e: 7017 moveq #23,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50fa0: 4e75 rts <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Thread_Is_executing( the_period->owner ) ) { _Thread_Enable_dispatch(); return RTEMS_NOT_OWNER_OF_RESOURCE; } (void) _Watchdog_Remove( &the_period->Timer ); 50fa2: 486a 0010 pea %a2@(16) <== NOT EXECUTED 50fa6: 4eb9 0005 7aa4 jsr 57aa4 <_Watchdog_Remove> <== NOT EXECUTED the_period->state = RATE_MONOTONIC_INACTIVE; 50fac: 42aa 0038 clrl %a2@(56) <== NOT EXECUTED _Thread_Enable_dispatch(); 50fb0: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50fb6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_NOT_OWNER_OF_RESOURCE; } (void) _Watchdog_Remove( &the_period->Timer ); the_period->state = RATE_MONOTONIC_INACTIVE; _Thread_Enable_dispatch(); 50fba: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50fbc: 4e5e unlk %fp <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_NOT_OWNER_OF_RESOURCE; } (void) _Watchdog_Remove( &the_period->Timer ); the_period->state = RATE_MONOTONIC_INACTIVE; _Thread_Enable_dispatch(); 50fbe: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 50fc0: 4e75 rts <== NOT EXECUTED ... 0004688c : rtems_status_code rtems_rate_monotonic_create( rtems_name name, Objects_Id *id ) { 4688c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46890: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46892: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46894: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED Rate_monotonic_Control *the_period; if ( !rtems_is_name_valid( name ) ) 46898: 6700 00b6 beqw 46950 <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 4689c: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 468a0: 6700 00d0 beqw 46972 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 468a4: 2039 0005 cbe8 movel 5cbe8 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 468aa: 5280 addql #1,%d0 <== NOT EXECUTED 468ac: 23c0 0005 cbe8 movel %d0,5cbe8 <_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 *) 468b2: 4879 0005 cae0 pea 5cae0 <_Rate_monotonic_Information> <== NOT EXECUTED 468b8: 4eb9 0004 8a3c jsr 48a3c <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_period = _Rate_monotonic_Allocate(); if ( !the_period ) { 468be: 588f addql #4,%sp <== NOT EXECUTED 468c0: 2240 moveal %d0,%a1 <== NOT EXECUTED 468c2: 4a80 tstl %d0 <== NOT EXECUTED 468c4: 6700 0098 beqw 4695e <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } the_period->owner = _Thread_Executing; 468c8: 45f9 0005 cca6 lea 5cca6 <_Thread_Executing>,%a2 <== NOT EXECUTED 468ce: 2352 0050 movel %a2@,%a1@(80) <== NOT EXECUTED the_period->state = RATE_MONOTONIC_INACTIVE; _Watchdog_Initialize( &the_period->Timer, NULL, 0, NULL ); _Rate_monotonic_Reset_statistics( the_period ); 468d2: 41e9 007c lea %a1@(124),%a0 <== NOT EXECUTED 468d6: 42a9 0054 clrl %a1@(84) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 468da: 4280 clrl %d0 <== NOT EXECUTED 468dc: 42a9 0058 clrl %a1@(88) <== NOT EXECUTED 468e0: 42a9 0064 clrl %a1@(100) <== NOT EXECUTED 468e4: 42a9 0068 clrl %a1@(104) <== NOT EXECUTED 468e8: 42a9 006c clrl %a1@(108) <== NOT EXECUTED 468ec: 42a9 0070 clrl %a1@(112) <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 468f0: 42a9 0030 clrl %a1@(48) <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } the_period->owner = _Thread_Executing; the_period->state = RATE_MONOTONIC_INACTIVE; 468f4: 42a9 0038 clrl %a1@(56) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 468f8: 42a9 0018 clrl %a1@(24) <== NOT EXECUTED the_watchdog->routine = routine; 468fc: 42a9 002c clrl %a1@(44) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 46900: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED _Watchdog_Initialize( &the_period->Timer, NULL, 0, NULL ); _Rate_monotonic_Reset_statistics( the_period ); 46904: 4298 clrl %a0@+ <== NOT EXECUTED 46906: 4298 clrl %a0@+ <== NOT EXECUTED 46908: 4298 clrl %a0@+ <== NOT EXECUTED 4690a: 4290 clrl %a0@ <== NOT EXECUTED 4690c: 2079 0005 cafa moveal 5cafa <_Rate_monotonic_Information+0x1a>,%a0 <== NOT EXECUTED 46912: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED 46916: 2189 0c00 movel %a1,%a0@(00000000,%d0:l:4) <== NOT EXECUTED 4691a: 203c 7fff ffff movel #2147483647,%d0 <== NOT EXECUTED &_Rate_monotonic_Information, &the_period->Object, (Objects_Name) name ); *id = the_period->Object.id; 46920: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 46924: 2342 000c movel %d2,%a1@(12) <== NOT EXECUTED the_period->owner = _Thread_Executing; the_period->state = RATE_MONOTONIC_INACTIVE; _Watchdog_Initialize( &the_period->Timer, NULL, 0, NULL ); _Rate_monotonic_Reset_statistics( the_period ); 46928: 2340 005c movel %d0,%a1@(92) <== NOT EXECUTED 4692c: 2340 0060 movel %d0,%a1@(96) <== NOT EXECUTED 46930: 2340 0074 movel %d0,%a1@(116) <== NOT EXECUTED 46934: 2340 0078 movel %d0,%a1@(120) <== NOT EXECUTED &_Rate_monotonic_Information, &the_period->Object, (Objects_Name) name ); *id = the_period->Object.id; 46938: 20a9 0008 movel %a1@(8),%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4693c: 4eb9 0004 98f0 jsr 498f0 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 46942: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46946: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4694a: 4e5e unlk %fp <== NOT EXECUTED &the_period->Object, (Objects_Name) name ); *id = the_period->Object.id; _Thread_Enable_dispatch(); 4694c: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4694e: 4e75 rts <== NOT EXECUTED 46950: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46954: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46958: 4e5e unlk %fp <== NOT EXECUTED Objects_Id *id ) { Rate_monotonic_Control *the_period; if ( !rtems_is_name_valid( name ) ) 4695a: 7003 moveq #3,%d0 <== NOT EXECUTED ); *id = the_period->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 4695c: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_period = _Rate_monotonic_Allocate(); if ( !the_period ) { _Thread_Enable_dispatch(); 4695e: 4eb9 0004 98f0 jsr 498f0 <_Thread_Enable_dispatch> <== NOT EXECUTED ); *id = the_period->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 46964: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46968: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4696c: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_period = _Rate_monotonic_Allocate(); if ( !the_period ) { _Thread_Enable_dispatch(); 4696e: 7005 moveq #5,%d0 <== NOT EXECUTED ); *id = the_period->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 46970: 4e75 rts <== NOT EXECUTED 46972: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 46976: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4697a: 4e5e unlk %fp <== NOT EXECUTED Rate_monotonic_Control *the_period; if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; if ( !id ) 4697c: 7009 moveq #9,%d0 <== NOT EXECUTED ); *id = the_period->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 4697e: 4e75 rts 000510b8 : */ rtems_status_code rtems_rate_monotonic_delete( Objects_Id id ) { 510b8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 510bc: 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 *) 510be: 486e fffc pea %fp@(-4) <== NOT EXECUTED 510c2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 510c6: 4879 0007 29b0 pea 729b0 <_Rate_monotonic_Information> <== NOT EXECUTED 510cc: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED Rate_monotonic_Control *the_period; Objects_Locations location; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 510d2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 510d8: 2440 moveal %d0,%a2 <== NOT EXECUTED 510da: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 510de: 6640 bnes 51120 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Rate_monotonic_Information, &the_period->Object ); 510e0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 510e2: 4879 0007 29b0 pea 729b0 <_Rate_monotonic_Information> <== NOT EXECUTED 510e8: 4eb9 0005 569c jsr 5569c <_Objects_Close> <== NOT EXECUTED (void) _Watchdog_Remove( &the_period->Timer ); 510ee: 486a 0010 pea %a2@(16) <== NOT EXECUTED 510f2: 4eb9 0005 7aa4 jsr 57aa4 <_Watchdog_Remove> <== NOT EXECUTED the_period->state = RATE_MONOTONIC_INACTIVE; 510f8: 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 ); 510fc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 510fe: 4879 0007 29b0 pea 729b0 <_Rate_monotonic_Information> <== NOT EXECUTED 51104: 4eb9 0005 59c0 jsr 559c0 <_Objects_Free> <== NOT EXECUTED _Rate_monotonic_Free( the_period ); _Thread_Enable_dispatch(); 5110a: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 51110: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Rate_monotonic_Information, &the_period->Object ); (void) _Watchdog_Remove( &the_period->Timer ); the_period->state = RATE_MONOTONIC_INACTIVE; _Rate_monotonic_Free( the_period ); _Thread_Enable_dispatch(); 51114: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5111a: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Rate_monotonic_Information, &the_period->Object ); (void) _Watchdog_Remove( &the_period->Timer ); the_period->state = RATE_MONOTONIC_INACTIVE; _Rate_monotonic_Free( the_period ); _Thread_Enable_dispatch(); 5111c: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5111e: 4e75 rts <== NOT EXECUTED 51120: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 51124: 4e5e unlk %fp <== NOT EXECUTED { Rate_monotonic_Control *the_period; Objects_Locations location; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 51126: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 51128: 4e75 rts <== NOT EXECUTED ... 0006e484 : rtems_status_code rtems_rate_monotonic_get_statistics( Objects_Id id, rtems_rate_monotonic_period_statistics *statistics ) { 6e484: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 6e488: 2f0a movel %a2,%sp@- <== NOT EXECUTED Objects_Locations location; Rate_monotonic_Control *the_period; if ( !statistics ) 6e48a: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 6e48e: 6774 beqs 6e504 <== NOT EXECUTED 6e490: 486e fffc pea %fp@(-4) <== NOT EXECUTED 6e494: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 6e498: 4879 0009 bf24 pea 9bf24 <_Rate_monotonic_Information> <== NOT EXECUTED 6e49e: 4eb9 0004 bdc4 jsr 4bdc4 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 6e4a4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 6e4aa: 2440 moveal %d0,%a2 <== NOT EXECUTED 6e4ac: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 6e4b0: 6648 bnes 6e4fa <== NOT EXECUTED case OBJECTS_LOCAL: *statistics = the_period->Statistics; 6e4b2: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 6e4b6: 20ea 0054 movel %a2@(84),%a0@+ <== NOT EXECUTED 6e4ba: 43ea 007c lea %a2@(124),%a1 <== NOT EXECUTED 6e4be: 20ea 0058 movel %a2@(88),%a0@+ <== NOT EXECUTED 6e4c2: 20ea 005c movel %a2@(92),%a0@+ <== NOT EXECUTED 6e4c6: 20ea 0060 movel %a2@(96),%a0@+ <== NOT EXECUTED 6e4ca: 20ea 0064 movel %a2@(100),%a0@+ <== NOT EXECUTED 6e4ce: 20ea 0068 movel %a2@(104),%a0@+ <== NOT EXECUTED 6e4d2: 20ea 006c movel %a2@(108),%a0@+ <== NOT EXECUTED 6e4d6: 20ea 0070 movel %a2@(112),%a0@+ <== NOT EXECUTED 6e4da: 20ea 0074 movel %a2@(116),%a0@+ <== NOT EXECUTED 6e4de: 20ea 0078 movel %a2@(120),%a0@+ <== NOT EXECUTED 6e4e2: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 6e4e4: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 6e4e6: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 6e4e8: 2091 movel %a1@,%a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 6e4ea: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6e4f0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 6e4f4: 4e5e unlk %fp <== NOT EXECUTED the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: *statistics = the_period->Statistics; _Thread_Enable_dispatch(); 6e4f6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6e4f8: 4e75 rts <== NOT EXECUTED 6e4fa: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 6e4fe: 4e5e unlk %fp <== NOT EXECUTED if ( !statistics ) return RTEMS_INVALID_ADDRESS; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 6e500: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6e502: 4e75 rts <== NOT EXECUTED 6e504: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 6e508: 4e5e unlk %fp <== NOT EXECUTED ) { Objects_Locations location; Rate_monotonic_Control *the_period; if ( !statistics ) 6e50a: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6e50c: 4e75 rts <== NOT EXECUTED ... 0006e510 : rtems_status_code rtems_rate_monotonic_get_status( Objects_Id id, rtems_rate_monotonic_period_status *status ) { 6e510: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 6e514: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 6e518: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED Objects_Locations location; Rate_monotonic_Control *the_period; if ( !status ) 6e51c: 4a8b tstl %a3 <== NOT EXECUTED 6e51e: 676a beqs 6e58a <== NOT EXECUTED 6e520: 486e fffc pea %fp@(-4) <== NOT EXECUTED 6e524: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 6e528: 4879 0009 bf24 pea 9bf24 <_Rate_monotonic_Information> <== NOT EXECUTED 6e52e: 4eb9 0004 bdc4 jsr 4bdc4 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 6e534: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 6e53a: 2840 moveal %d0,%a4 <== NOT EXECUTED 6e53c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 6e540: 663c bnes 6e57e <== NOT EXECUTED case OBJECTS_LOCAL: status->owner = ((the_period->owner) ? the_period->owner->Object.id : 0); 6e542: 206c 0050 moveal %a4@(80),%a0 <== NOT EXECUTED 6e546: 4a88 tstl %a0 <== NOT EXECUTED 6e548: 6700 008c beqw 6e5d6 <== NOT EXECUTED 6e54c: 2228 0008 movel %a0@(8),%d1 <== NOT EXECUTED status->state = the_period->state; 6e550: 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); 6e554: 2681 movel %d1,%a3@ <== NOT EXECUTED status->state = the_period->state; 6e556: 2740 0004 movel %d0,%a3@(4) <== NOT EXECUTED if ( status->state == RATE_MONOTONIC_INACTIVE ) { 6e55a: 663a bnes 6e596 <== 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; 6e55c: 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; 6e560: 42ab 0008 clrl %a3@(8) <== NOT EXECUTED status->since_last_period.tv_nsec = 0; 6e564: 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; 6e568: 42ab 0010 clrl %a3@(16) <== NOT EXECUTED the_period->owner->cpu_time_used - the_period->owner_executed_at_period; #endif } _Thread_Enable_dispatch(); 6e56c: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED 6e572: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6e574: 4cee 1c04 ffe4 moveml %fp@(-28),%d2/%a2-%a4 <== NOT EXECUTED 6e57a: 4e5e unlk %fp <== NOT EXECUTED 6e57c: 4e75 rts <== NOT EXECUTED 6e57e: 4cee 1c04 ffe4 moveml %fp@(-28),%d2/%a2-%a4 <== NOT EXECUTED 6e584: 4e5e unlk %fp <== NOT EXECUTED if ( !status ) return RTEMS_INVALID_ADDRESS; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 6e586: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6e588: 4e75 rts <== NOT EXECUTED 6e58a: 4cee 1c04 ffe4 moveml %fp@(-28),%d2/%a2-%a4 <== NOT EXECUTED 6e590: 4e5e unlk %fp <== NOT EXECUTED ) { Objects_Locations location; Rate_monotonic_Control *the_period; if ( !status ) 6e592: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6e594: 4e75 rts <== 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 ); 6e596: 240e movel %fp,%d2 <== NOT EXECUTED 6e598: 0682 ffff fff4 addil #-12,%d2 <== NOT EXECUTED 6e59e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6e5a0: 4eb9 0006 3d3c jsr 63d3c <_TOD_Get_uptime> <== NOT EXECUTED #endif #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS _Timespec_Subtract( 6e5a6: 486b 0008 pea %a3@(8) <== NOT EXECUTED 6e5aa: 45f9 0004 d5d0 lea 4d5d0 <_Timespec_Subtract>,%a2 <== NOT EXECUTED 6e5b0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6e5b2: 486c 0044 pea %a4@(68) <== NOT EXECUTED 6e5b6: 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( 6e5b8: 486b 0010 pea %a3@(16) <== NOT EXECUTED 6e5bc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6e5be: 4879 0009 b4fe pea 9b4fe <_Thread_Time_of_last_context_switch> <== NOT EXECUTED 6e5c4: 4e92 jsr %a2@ <== NOT EXECUTED 6e5c6: dffc 0000 001c addal #28,%sp <== NOT EXECUTED the_period->owner->cpu_time_used - the_period->owner_executed_at_period; #endif } _Thread_Enable_dispatch(); 6e5cc: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED 6e5d2: 4280 clrl %d0 <== NOT EXECUTED 6e5d4: 609e bras 6e574 <== 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); 6e5d6: 4281 clrl %d1 <== NOT EXECUTED 6e5d8: 6000 ff76 braw 6e550 <== NOT EXECUTED 00046980 : rtems_status_code rtems_rate_monotonic_ident( rtems_name name, Objects_Id *id ) { 46980: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 46984: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 46988: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 4698e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46992: 4879 0005 cae0 pea 5cae0 <_Rate_monotonic_Information> <== NOT EXECUTED 46998: 4eb9 0004 9204 jsr 49204 <_Objects_Name_to_id_u32> <== NOT EXECUTED 4699e: 41f9 0005 9da8 lea 59da8 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 469a4: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 469a8: 4e5e unlk %fp <== NOT EXECUTED 469aa: 4e75 rts 00046c06 : rtems_status_code rtems_rate_monotonic_period( Objects_Id id, rtems_interval length ) { 46c06: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 46c0a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46c0c: 2f02 movel %d2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get ( Objects_Id id, Objects_Locations *location ) { return (Rate_monotonic_Control *) 46c0e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46c12: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46c16: 4879 0005 cae0 pea 5cae0 <_Rate_monotonic_Information> <== NOT EXECUTED 46c1c: 4eb9 0004 906c jsr 4906c <_Objects_Get> <== NOT EXECUTED rtems_rate_monotonic_period_states local_state; ISR_Level level; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 46c22: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46c28: 2440 moveal %d0,%a2 <== NOT EXECUTED 46c2a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46c2e: 6622 bnes 46c52 <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Thread_Is_executing( the_period->owner ) ) { 46c30: 2039 0005 cca6 movel 5cca6 <_Thread_Executing>,%d0 <== NOT EXECUTED 46c36: b0aa 0050 cmpl %a2@(80),%d0 <== NOT EXECUTED 46c3a: 6726 beqs 46c62 <== NOT EXECUTED _Thread_Enable_dispatch(); 46c3c: 7417 moveq #23,%d2 <== NOT EXECUTED 46c3e: 4eb9 0004 98f0 jsr 498f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46c44: 2002 movel %d2,%d0 <== NOT EXECUTED 46c46: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 46c4a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46c4e: 4e5e unlk %fp <== NOT EXECUTED 46c50: 4e75 rts <== NOT EXECUTED the_period->state = RATE_MONOTONIC_ACTIVE; the_period->next_length = length; _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); return RTEMS_TIMEOUT; 46c52: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46c54: 2002 movel %d2,%d0 <== NOT EXECUTED 46c56: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 46c5a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46c5e: 4e5e unlk %fp <== NOT EXECUTED 46c60: 4e75 rts <== NOT EXECUTED if ( !_Thread_Is_executing( the_period->owner ) ) { _Thread_Enable_dispatch(); return RTEMS_NOT_OWNER_OF_RESOURCE; } if ( length == RTEMS_PERIOD_STATUS ) { 46c62: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 46c66: 6700 0108 beqw 46d70 <== NOT EXECUTED } _Thread_Enable_dispatch(); return( return_value ); } _ISR_Disable( level ); 46c6a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 46c70: 40c2 movew %sr,%d2 <== NOT EXECUTED 46c72: 8082 orl %d2,%d0 <== NOT EXECUTED 46c74: 46c0 movew %d0,%sr <== NOT EXECUTED switch ( the_period->state ) { 46c76: 202a 0038 movel %a2@(56),%d0 <== NOT EXECUTED 46c7a: 7202 moveq #2,%d1 <== NOT EXECUTED 46c7c: b280 cmpl %d0,%d1 <== NOT EXECUTED 46c7e: 6770 beqs 46cf0 <== NOT EXECUTED 46c80: 123c 0004 moveb #4,%d1 <== NOT EXECUTED 46c84: b280 cmpl %d0,%d1 <== NOT EXECUTED 46c86: 6700 00f8 beqw 46d80 <== NOT EXECUTED 46c8a: 4a80 tstl %d0 <== NOT EXECUTED 46c8c: 66c4 bnes 46c52 <== NOT EXECUTED case RATE_MONOTONIC_INACTIVE: { _ISR_Enable( level ); 46c8e: 46c2 movew %d2,%sr <== NOT EXECUTED /* * Baseline statistics information for the beginning of a period. */ _Rate_monotonic_Initiate_statistics( the_period ); 46c90: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46c92: 4eb9 0004 69ac jsr 469ac <_Rate_monotonic_Initiate_statistics> <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 46c98: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 46c9c: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED the_period->state = RATE_MONOTONIC_ACTIVE; 46ca0: 7002 moveq #2,%d0 <== NOT EXECUTED 46ca2: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 46ca6: 203c 0004 7084 movel #290948,%d0 <== NOT EXECUTED the_watchdog->id = id; 46cac: 2542 0030 movel %d2,%a2@(48) <== NOT EXECUTED ); the_period->next_length = length; _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); 46cb0: 4282 clrl %d2 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 46cb2: 2541 001c movel %d1,%a2@(28) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 46cb6: 2540 002c movel %d0,%a2@(44) <== NOT EXECUTED _Rate_monotonic_Update_statistics( the_period ); _ISR_Enable( level ); the_period->state = RATE_MONOTONIC_ACTIVE; the_period->next_length = length; 46cba: 2541 004c movel %d1,%a2@(76) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 46cbe: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 46cc2: 42aa 0034 clrl %a2@(52) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 46cc6: 486a 0010 pea %a2@(16) <== NOT EXECUTED 46cca: 4879 0005 ccc4 pea 5ccc4 <_Watchdog_Ticks_chain> <== NOT EXECUTED 46cd0: 4eb9 0004 ac30 jsr 4ac30 <_Watchdog_Insert> <== NOT EXECUTED _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); 46cd6: 4eb9 0004 98f0 jsr 498f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 46cdc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46ce2: 2002 movel %d2,%d0 <== NOT EXECUTED 46ce4: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 46ce8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46cec: 4e5e unlk %fp <== NOT EXECUTED 46cee: 4e75 rts <== NOT EXECUTED case RATE_MONOTONIC_ACTIVE: /* * Update statistics from the concluding period. */ _Rate_monotonic_Update_statistics( the_period ); 46cf0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46cf2: 4eb9 0004 6a2e jsr 46a2e <_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; the_period->next_length = length; 46cf8: 222e 000c movel %fp@(12),%d1 <== 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; 46cfc: 7001 moveq #1,%d0 <== NOT EXECUTED the_period->next_length = length; 46cfe: 2541 004c movel %d1,%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; 46d02: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED the_period->next_length = length; _ISR_Enable( level ); 46d06: 46c2 movew %d2,%sr <== NOT EXECUTED _Thread_Executing->Wait.id = the_period->Object.id; 46d08: 2079 0005 cca6 moveal 5cca6 <_Thread_Executing>,%a0 <== NOT EXECUTED 46d0e: 216a 0008 0020 movel %a2@(8),%a0@(32) <== NOT EXECUTED _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD ); 46d14: 4878 4000 pea 4000 <== NOT EXECUTED 46d18: 2f08 movel %a0,%sp@- <== NOT EXECUTED 46d1a: 4eb9 0004 a2e4 jsr 4a2e4 <_Thread_Set_state> <== NOT EXECUTED /* * Did the watchdog timer expire while we were actually blocking * on it? */ _ISR_Disable( level ); 46d20: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 46d26: 40c0 movew %sr,%d0 <== NOT EXECUTED 46d28: 8280 orl %d0,%d1 <== NOT EXECUTED 46d2a: 46c1 movew %d1,%sr <== NOT EXECUTED local_state = the_period->state; 46d2c: 222a 0038 movel %a2@(56),%d1 <== NOT EXECUTED the_period->state = RATE_MONOTONIC_ACTIVE; 46d30: 7402 moveq #2,%d2 <== NOT EXECUTED 46d32: 2542 0038 movel %d2,%a2@(56) <== NOT EXECUTED _ISR_Enable( level ); 46d36: 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 ) 46d38: 7003 moveq #3,%d0 <== NOT EXECUTED 46d3a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46d40: b081 cmpl %d1,%d0 <== NOT EXECUTED 46d42: 6716 beqs 46d5a <== NOT EXECUTED _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD ); _Thread_Enable_dispatch(); 46d44: 4282 clrl %d2 <== NOT EXECUTED 46d46: 4eb9 0004 98f0 jsr 498f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46d4c: 2002 movel %d2,%d0 <== NOT EXECUTED 46d4e: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 46d52: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 46d56: 4e5e unlk %fp <== NOT EXECUTED 46d58: 4e75 rts <== 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 ) _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD ); 46d5a: 4878 4000 pea 4000 <== NOT EXECUTED _Thread_Enable_dispatch(); 46d5e: 4282 clrl %d2 <== 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 ) _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD ); 46d60: 2f39 0005 cca6 movel 5cca6 <_Thread_Executing>,%sp@- <== NOT EXECUTED 46d66: 4eb9 0004 9518 jsr 49518 <_Thread_Clear_state> <== NOT EXECUTED 46d6c: 508f addql #8,%sp <== NOT EXECUTED 46d6e: 60d6 bras 46d46 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_NOT_OWNER_OF_RESOURCE; } if ( length == RTEMS_PERIOD_STATUS ) { switch ( the_period->state ) { 46d70: 202a 0038 movel %a2@(56),%d0 <== NOT EXECUTED 46d74: 664a bnes 46dc0 <== NOT EXECUTED 46d76: 740b moveq #11,%d2 <== NOT EXECUTED * if nothing happen. The period was reset in the timeout routine. */ if ( local_state == RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING ) _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD ); _Thread_Enable_dispatch(); 46d78: 4eb9 0004 98f0 jsr 498f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 46d7e: 60cc bras 46d4c <== NOT EXECUTED case RATE_MONOTONIC_EXPIRED: /* * Update statistics from the concluding period */ _Rate_monotonic_Update_statistics( the_period ); 46d80: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46d82: 4eb9 0004 6a2e jsr 46a2e <_Rate_monotonic_Update_statistics> <== NOT EXECUTED _ISR_Enable( level ); 46d88: 46c2 movew %d2,%sr <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 46d8a: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED the_period->state = RATE_MONOTONIC_ACTIVE; 46d8e: 7402 moveq #2,%d2 <== NOT EXECUTED 46d90: 2541 001c movel %d1,%a2@(28) <== NOT EXECUTED 46d94: 2542 0038 movel %d2,%a2@(56) <== NOT EXECUTED the_period->next_length = length; _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); 46d98: 143c 0006 moveb #6,%d2 <== NOT EXECUTED _Rate_monotonic_Update_statistics( the_period ); _ISR_Enable( level ); the_period->state = RATE_MONOTONIC_ACTIVE; the_period->next_length = length; 46d9c: 2541 004c movel %d1,%a2@(76) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 46da0: 486a 0010 pea %a2@(16) <== NOT EXECUTED 46da4: 4879 0005 ccc4 pea 5ccc4 <_Watchdog_Ticks_chain> <== NOT EXECUTED 46daa: 4eb9 0004 ac30 jsr 4ac30 <_Watchdog_Insert> <== NOT EXECUTED _Watchdog_Insert_ticks( &the_period->Timer, length ); _Thread_Enable_dispatch(); 46db0: 4eb9 0004 98f0 jsr 498f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 46db6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 46dbc: 6000 ff24 braw 46ce2 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_NOT_OWNER_OF_RESOURCE; } if ( length == RTEMS_PERIOD_STATUS ) { switch ( the_period->state ) { 46dc0: 5780 subql #3,%d0 <== NOT EXECUTED 46dc2: 7201 moveq #1,%d1 <== NOT EXECUTED 46dc4: b280 cmpl %d0,%d1 <== NOT EXECUTED 46dc6: 6500 ff7c bcsw 46d44 <== NOT EXECUTED 46dca: 7406 moveq #6,%d2 <== NOT EXECUTED * if nothing happen. The period was reset in the timeout routine. */ if ( local_state == RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING ) _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD ); _Thread_Enable_dispatch(); 46dcc: 4eb9 0004 98f0 jsr 498f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 46dd2: 6000 ff78 braw 46d4c <== NOT EXECUTED ... 000632c6 : } } } void rtems_rate_monotonic_report_statistics( void ) { 632c6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_rate_monotonic_report_statistics_with_plugin( NULL, printk_plugin ); 632ca: 4879 0004 77dc pea 477dc <== NOT EXECUTED 632d0: 42a7 clrl %sp@- <== NOT EXECUTED 632d2: 4eb9 0006 30f4 jsr 630f4 <== NOT EXECUTED 632d8: 508f addql #8,%sp <== NOT EXECUTED } 632da: 4e5e unlk %fp <== NOT EXECUTED 632dc: 4e75 rts <== NOT EXECUTED ... 000630f4 : */ void rtems_rate_monotonic_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) { 630f4: 4e56 ff78 linkw %fp,#-136 <== NOT EXECUTED 630f8: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 630fc: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 63100: 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 ) 63104: 4a8a tstl %a2 <== NOT EXECUTED 63106: 6700 0086 beqw 6318e <== NOT EXECUTED return; (*print)( context, "Period information by period\n" ); 6310a: 4879 0008 3314 pea 83314 <_POSIX_Threads_Default_attributes+0x38> <== NOT EXECUTED 63110: 2f03 movel %d3,%sp@- <== NOT EXECUTED 63112: 4e92 jsr %a2@ <== NOT EXECUTED #if defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) (*print)( context, "--- CPU times are in seconds ---\n" ); 63114: 4879 0008 3332 pea 83332 <_POSIX_Threads_Default_attributes+0x56> <== NOT EXECUTED 6311a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6311c: 4e92 jsr %a2@ <== NOT EXECUTED #endif #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) (*print)( context, "--- Wall times are in seconds ---\n" ); 6311e: 4879 0008 3354 pea 83354 <_POSIX_Threads_Default_attributes+0x78> <== NOT EXECUTED 63124: 2f03 movel %d3,%sp@- <== NOT EXECUTED 63126: 4e92 jsr %a2@ <== NOT EXECUTED Be sure to test the various cases. (*print)( context,"\ 1234567890123456789012345678901234567890123456789012345678901234567890123456789\ \n"); */ (*print)( context, " ID OWNER COUNT MISSED " 63128: 4879 0008 3377 pea 83377 <_POSIX_Threads_Default_attributes+0x9b> <== NOT EXECUTED 6312e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 63130: 4e92 jsr %a2@ <== NOT EXECUTED #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS " " #endif " WALL TIME\n" ); (*print)( context, " " 63132: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 63138: 2ebc 0008 33c2 movel #537538,%sp@ <== NOT EXECUTED 6313e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 63140: 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 ; 63142: 2439 0009 bf2a movel 9bf2a <_Rate_monotonic_Information+0x6>,%d2 <== NOT EXECUTED id <= _Rate_monotonic_Information.maximum_id ; 63148: 508f addql #8,%sp <== NOT EXECUTED 6314a: b4b9 0009 bf2e cmpl 9bf2e <_Rate_monotonic_Information+0xa>,%d2 <== NOT EXECUTED 63150: 623c bhis 6318e <== NOT EXECUTED 63152: 280e movel %fp,%d4 <== 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 ); 63154: 2e0e movel %fp,%d7 <== NOT EXECUTED #endif name[ 0 ] = '\0'; if ( the_status.owner ) { rtems_object_get_name( the_status.owner, sizeof(name), name ); 63156: 2a0e movel %fp,%d5 <== NOT EXECUTED 63158: 0684 ffff ffa2 addil #-94,%d4 <== NOT EXECUTED 6315e: 47f9 0006 e484 lea 6e484 ,%a3 <== 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 ); 63164: 0687 ffff ffda addil #-38,%d7 <== NOT EXECUTED 6316a: 4bf9 0006 e510 lea 6e510 ,%a5 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 63170: 49f9 0006 4718 lea 64718 <_Timespec_Divide_by_integer>,%a4 <== NOT EXECUTED #endif name[ 0 ] = '\0'; if ( the_status.owner ) { rtems_object_get_name( the_status.owner, sizeof(name), name ); 63176: 5b85 subql #5,%d5 <== NOT EXECUTED * 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++ ) { status = rtems_rate_monotonic_get_statistics( id, &the_stats ); 63178: 2f04 movel %d4,%sp@- <== NOT EXECUTED 6317a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6317c: 4e93 jsr %a3@ <== NOT EXECUTED if ( status != RTEMS_SUCCESSFUL ) 6317e: 508f addql #8,%sp <== NOT EXECUTED 63180: 4a80 tstl %d0 <== NOT EXECUTED 63182: 6714 beqs 63198 <== 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++ ) { 63184: 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 ; 63186: b4b9 0009 bf2e cmpl 9bf2e <_Rate_monotonic_Information+0xa>,%d2 <== NOT EXECUTED 6318c: 63ea blss 63178 <== NOT EXECUTED the_stats.min_wall_time, the_stats.max_wall_time, ival_wall, fval_wall ); #endif } } } 6318e: 4cee 3cfc ff78 moveml %fp@(-136),%d2-%d7/%a2-%a5 <== NOT EXECUTED 63194: 4e5e unlk %fp <== NOT EXECUTED 63196: 4e75 rts <== 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 ); 63198: 2f07 movel %d7,%sp@- <== NOT EXECUTED 6319a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6319c: 4e95 jsr %a5@ <== NOT EXECUTED continue; #endif name[ 0 ] = '\0'; if ( the_status.owner ) { 6319e: 202e ffda movel %fp@(-38),%d0 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( status != RTEMS_SUCCESSFUL ) continue; #endif name[ 0 ] = '\0'; 631a2: 4201 clrb %d1 <== NOT EXECUTED if ( the_status.owner ) { 631a4: 508f addql #8,%sp <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( status != RTEMS_SUCCESSFUL ) continue; #endif name[ 0 ] = '\0'; 631a6: 1d41 fffb moveb %d1,%fp@(-5) <== NOT EXECUTED if ( the_status.owner ) { 631aa: 4a80 tstl %d0 <== NOT EXECUTED 631ac: 663a bnes 631e8 <== NOT EXECUTED /* * Print part of report line that is not dependent on granularity */ (*print)( context, 631ae: 2f2e ffa6 movel %fp@(-90),%sp@- <== NOT EXECUTED 631b2: 2f2e ffa2 movel %fp@(-94),%sp@- <== NOT EXECUTED 631b6: 2f05 movel %d5,%sp@- <== NOT EXECUTED 631b8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 631ba: 4879 0008 340e pea 8340e <_POSIX_Threads_Default_attributes+0x132> <== NOT EXECUTED 631c0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 631c2: 4e92 jsr %a2@ <== NOT EXECUTED /* * If the count is zero, don't print statistics */ if (the_stats.count == 0) { 631c4: 202e ffa2 movel %fp@(-94),%d0 <== NOT EXECUTED 631c8: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 631ce: 664e bnes 6321e <== NOT EXECUTED (*print)( context, "\n" ); 631d0: 4879 0008 36f5 pea 836f5 <__func__.5644+0x118> <== 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++ ) { 631d6: 5282 addql #1,%d2 <== NOT EXECUTED /* * If the count is zero, don't print statistics */ if (the_stats.count == 0) { (*print)( context, "\n" ); 631d8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 631da: 4e92 jsr %a2@ <== NOT EXECUTED 631dc: 508f addql #8,%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 ; 631de: b4b9 0009 bf2e cmpl 9bf2e <_Rate_monotonic_Information+0xa>,%d2 <== NOT EXECUTED 631e4: 6392 blss 63178 <== NOT EXECUTED 631e6: 60a6 bras 6318e <== NOT EXECUTED #endif name[ 0 ] = '\0'; if ( the_status.owner ) { rtems_object_get_name( the_status.owner, sizeof(name), name ); 631e8: 2f05 movel %d5,%sp@- <== NOT EXECUTED 631ea: 4878 0005 pea 5 <== NOT EXECUTED 631ee: 2f00 movel %d0,%sp@- <== NOT EXECUTED 631f0: 4eb9 0004 a008 jsr 4a008 <== NOT EXECUTED 631f6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * Print part of report line that is not dependent on granularity */ (*print)( context, 631fc: 2f2e ffa6 movel %fp@(-90),%sp@- <== NOT EXECUTED 63200: 2f2e ffa2 movel %fp@(-94),%sp@- <== NOT EXECUTED 63204: 2f05 movel %d5,%sp@- <== NOT EXECUTED 63206: 2f02 movel %d2,%sp@- <== NOT EXECUTED 63208: 4879 0008 340e pea 8340e <_POSIX_Threads_Default_attributes+0x132> <== NOT EXECUTED 6320e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 63210: 4e92 jsr %a2@ <== NOT EXECUTED /* * If the count is zero, don't print statistics */ if (the_stats.count == 0) { 63212: 202e ffa2 movel %fp@(-94),%d0 <== NOT EXECUTED 63216: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 6321c: 67b2 beqs 631d0 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 6321e: 486e fff2 pea %fp@(-14) <== NOT EXECUTED &the_stats.total_cpu_time, the_stats.count, &cpu_average ); (*print)( context, 63222: 2c3c 0000 03e8 movel #1000,%d6 <== 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++ ) { 63228: 5282 addql #1,%d2 <== NOT EXECUTED */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS struct timespec cpu_average; _Timespec_Divide_by_integer( 6322a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 6322c: 486e ffba pea %fp@(-70) <== NOT EXECUTED 63230: 4e94 jsr %a4@ <== NOT EXECUTED &the_stats.total_cpu_time, the_stats.count, &cpu_average ); (*print)( context, 63232: 202e fff6 movel %fp@(-10),%d0 <== NOT EXECUTED 63236: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 6323a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 6323c: 202e ffb6 movel %fp@(-74),%d0 <== NOT EXECUTED 63240: 2f2e fff2 movel %fp@(-14),%sp@- <== NOT EXECUTED 63244: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 63248: 2240 moveal %d0,%a1 <== NOT EXECUTED 6324a: 2f09 movel %a1,%sp@- <== NOT EXECUTED 6324c: 202e ffae movel %fp@(-82),%d0 <== NOT EXECUTED 63250: 2f2e ffb2 movel %fp@(-78),%sp@- <== NOT EXECUTED 63254: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 63258: 2f00 movel %d0,%sp@- <== NOT EXECUTED 6325a: 2f2e ffaa movel %fp@(-86),%sp@- <== NOT EXECUTED 6325e: 4879 0008 3425 pea 83425 <_POSIX_Threads_Default_attributes+0x149> <== NOT EXECUTED 63264: 2f03 movel %d3,%sp@- <== NOT EXECUTED 63266: 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( 63268: dffc 0000 002c addal #44,%sp <== NOT EXECUTED 6326e: 486e fff2 pea %fp@(-14) <== NOT EXECUTED 63272: 2f2e ffa2 movel %fp@(-94),%sp@- <== NOT EXECUTED 63276: 486e ffd2 pea %fp@(-46) <== NOT EXECUTED 6327a: 4e94 jsr %a4@ <== NOT EXECUTED &the_stats.total_wall_time, the_stats.count, &wall_average ); (*print)( context, 6327c: 202e fff6 movel %fp@(-10),%d0 <== NOT EXECUTED 63280: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 63284: 2f00 movel %d0,%sp@- <== NOT EXECUTED 63286: 222e ffce movel %fp@(-50),%d1 <== NOT EXECUTED 6328a: 2f2e fff2 movel %fp@(-14),%sp@- <== NOT EXECUTED 6328e: 4c46 1801 remsl %d6,%d1,%d1 <== NOT EXECUTED 63292: 2241 moveal %d1,%a1 <== NOT EXECUTED 63294: 2f09 movel %a1,%sp@- <== NOT EXECUTED 63296: 202e ffc6 movel %fp@(-58),%d0 <== NOT EXECUTED 6329a: 2f2e ffca movel %fp@(-54),%sp@- <== NOT EXECUTED 6329e: 4c46 0800 remsl %d6,%d0,%d0 <== NOT EXECUTED 632a2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 632a4: 2f2e ffc2 movel %fp@(-62),%sp@- <== NOT EXECUTED 632a8: 4879 0008 3444 pea 83444 <_POSIX_Threads_Default_attributes+0x168> <== NOT EXECUTED 632ae: 2f03 movel %d3,%sp@- <== NOT EXECUTED 632b0: 4e92 jsr %a2@ <== NOT EXECUTED 632b2: 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 ; 632b8: b4b9 0009 bf2e cmpl 9bf2e <_Rate_monotonic_Information+0xa>,%d2 <== NOT EXECUTED 632be: 6300 feb8 blsw 63178 <== NOT EXECUTED 632c2: 6000 feca braw 6318e <== NOT EXECUTED 000632e0 : /* * rtems_rate_monotonic_reset_all_statistics */ void rtems_rate_monotonic_reset_all_statistics( void ) { 632e0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 632e4: 2039 0009 b438 movel 9b438 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 632ea: 2f0a movel %a2,%sp@- <== NOT EXECUTED 632ec: 5280 addql #1,%d0 <== NOT EXECUTED 632ee: 2f02 movel %d2,%sp@- <== NOT EXECUTED 632f0: 23c0 0009 b438 movel %d0,9b438 <_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 ; 632f6: 2439 0009 bf2a movel 9bf2a <_Rate_monotonic_Information+0x6>,%d2 <== NOT EXECUTED id <= _Rate_monotonic_Information.maximum_id ; 632fc: b4b9 0009 bf2e cmpl 9bf2e <_Rate_monotonic_Information+0xa>,%d2 <== NOT EXECUTED 63302: 6216 bhis 6331a <== NOT EXECUTED 63304: 45f9 0006 332c lea 6332c ,%a2 <== NOT EXECUTED id++ ) { status = rtems_rate_monotonic_reset_statistics( id ); 6330a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6330c: 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++ ) { 6330e: 5282 addql #1,%d2 <== 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 ; 63310: 588f addql #4,%sp <== NOT EXECUTED 63312: b4b9 0009 bf2e cmpl 9bf2e <_Rate_monotonic_Information+0xa>,%d2 <== NOT EXECUTED 63318: 63f0 blss 6330a <== NOT EXECUTED /* * Done so exit thread dispatching disabled critical section. */ _Thread_Enable_dispatch(); } 6331a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 6331e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 63322: 4e5e unlk %fp <== NOT EXECUTED } /* * Done so exit thread dispatching disabled critical section. */ _Thread_Enable_dispatch(); 63324: 4ef9 0004 c6a0 jmp 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED ... 0006332c : */ rtems_status_code rtems_rate_monotonic_reset_statistics( Objects_Id id ) { 6332c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get ( Objects_Id id, Objects_Locations *location ) { return (Rate_monotonic_Control *) 63330: 486e fffc pea %fp@(-4) <== NOT EXECUTED 63334: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 63338: 4879 0009 bf24 pea 9bf24 <_Rate_monotonic_Information> <== NOT EXECUTED 6333e: 4eb9 0004 bdc4 jsr 4bdc4 <_Objects_Get> <== NOT EXECUTED Objects_Locations location; Rate_monotonic_Control *the_period; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 63344: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 6334a: 2240 moveal %d0,%a1 <== NOT EXECUTED 6334c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 63350: 6646 bnes 63398 <== NOT EXECUTED case OBJECTS_LOCAL: _Rate_monotonic_Reset_statistics( the_period ); 63352: 42a9 0054 clrl %a1@(84) <== NOT EXECUTED 63356: 41e9 007c lea %a1@(124),%a0 <== NOT EXECUTED 6335a: 42a9 0058 clrl %a1@(88) <== NOT EXECUTED 6335e: 42a9 0064 clrl %a1@(100) <== NOT EXECUTED 63362: 203c 7fff ffff movel #2147483647,%d0 <== NOT EXECUTED 63368: 42a9 0068 clrl %a1@(104) <== NOT EXECUTED 6336c: 42a9 006c clrl %a1@(108) <== NOT EXECUTED 63370: 42a9 0070 clrl %a1@(112) <== NOT EXECUTED 63374: 4298 clrl %a0@+ <== NOT EXECUTED 63376: 4298 clrl %a0@+ <== NOT EXECUTED 63378: 4298 clrl %a0@+ <== NOT EXECUTED 6337a: 4290 clrl %a0@ <== NOT EXECUTED 6337c: 2340 0078 movel %d0,%a1@(120) <== NOT EXECUTED 63380: 2340 005c movel %d0,%a1@(92) <== NOT EXECUTED 63384: 2340 0060 movel %d0,%a1@(96) <== NOT EXECUTED 63388: 2340 0074 movel %d0,%a1@(116) <== NOT EXECUTED _Thread_Enable_dispatch(); 6338c: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63392: 4e5e unlk %fp <== NOT EXECUTED the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: _Rate_monotonic_Reset_statistics( the_period ); _Thread_Enable_dispatch(); 63394: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63396: 4e75 rts <== NOT EXECUTED 63398: 4e5e unlk %fp <== NOT EXECUTED { Objects_Locations location; Rate_monotonic_Control *the_period; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { 6339a: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6339c: 4e75 rts <== NOT EXECUTED ... 00051738 : uint32_t length, uint32_t page_size, rtems_attribute attribute_set, Objects_Id *id ) { 51738: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 5173c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5173e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 51740: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED rtems_status_code return_status; Region_Control *the_region; if ( !rtems_is_name_valid( name ) ) 51744: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 51748: 6720 beqs 5176a <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !starting_address ) 5174a: 4a82 tstl %d2 <== NOT EXECUTED 5174c: 670c beqs 5175a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !id ) 5174e: 4aae 001c tstl %fp@(28) <== NOT EXECUTED 51752: 6706 beqs 5175a <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_Addresses_Is_aligned( starting_address ) ) 51754: 7003 moveq #3,%d0 <== NOT EXECUTED 51756: c082 andl %d2,%d0 <== NOT EXECUTED 51758: 6720 beqs 5177a <== NOT EXECUTED return_status = RTEMS_SUCCESSFUL; } } _RTEMS_Unlock_allocator(); return return_status; 5175a: 7409 moveq #9,%d2 <== NOT EXECUTED } 5175c: 2002 movel %d2,%d0 <== NOT EXECUTED 5175e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 51762: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 51766: 4e5e unlk %fp <== NOT EXECUTED 51768: 4e75 rts <== NOT EXECUTED ) { rtems_status_code return_status; Region_Control *the_region; if ( !rtems_is_name_valid( name ) ) 5176a: 7403 moveq #3,%d2 <== NOT EXECUTED } } _RTEMS_Unlock_allocator(); return return_status; } 5176c: 2002 movel %d2,%d0 <== NOT EXECUTED 5176e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 51772: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 51776: 4e5e unlk %fp <== NOT EXECUTED 51778: 4e75 rts <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_Addresses_Is_aligned( starting_address ) ) return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); /* to prevent deletion */ 5177a: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51780: 4eb9 0005 40e8 jsr 540e8 <_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 ); 51786: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 5178c: 4eb9 0005 5600 jsr 55600 <_Objects_Allocate> <== NOT EXECUTED the_region = _Region_Allocate(); if ( !the_region ) 51792: 508f addql #8,%sp <== NOT EXECUTED 51794: 2440 moveal %d0,%a2 <== NOT EXECUTED 51796: 4a80 tstl %d0 <== NOT EXECUTED 51798: 6700 00ca beqw 51864 <== NOT EXECUTED return_status = RTEMS_TOO_MANY; else { the_region->maximum_segment_size = _Heap_Initialize( 5179c: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 517a0: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 517a4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 517a6: 486a 0068 pea %a2@(104) <== NOT EXECUTED 517aa: 4eb9 0005 5108 jsr 55108 <_Heap_Initialize> <== NOT EXECUTED &the_region->Memory, starting_address, length, page_size ); if ( !the_region->maximum_segment_size ) { 517b0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED if ( !the_region ) return_status = RTEMS_TOO_MANY; else { the_region->maximum_segment_size = _Heap_Initialize( 517b6: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED &the_region->Memory, starting_address, length, page_size ); if ( !the_region->maximum_segment_size ) { 517ba: 662e bnes 517ea <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Region_Free ( Region_Control *the_region ) { _Objects_Free( &_Region_Information, &the_region->Object ); 517bc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 517be: 7408 moveq #8,%d2 <== NOT EXECUTED 517c0: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 517c6: 4eb9 0005 59c0 jsr 559c0 <_Objects_Free> <== NOT EXECUTED 517cc: 508f addql #8,%sp <== NOT EXECUTED *id = the_region->Object.id; return_status = RTEMS_SUCCESSFUL; } } _RTEMS_Unlock_allocator(); 517ce: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 517d4: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 517da: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 517dc: 2002 movel %d2,%d0 <== NOT EXECUTED 517de: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 517e2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 517e6: 4e5e unlk %fp <== NOT EXECUTED 517e8: 4e75 rts <== NOT EXECUTED } else { the_region->starting_address = starting_address; the_region->length = length; 517ea: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 517ee: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED the_region->page_size = page_size; 517f2: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED the_region->attribute_set = attribute_set; 517f6: 202e 0018 movel %fp@(24),%d0 <== NOT EXECUTED else { the_region->starting_address = starting_address; the_region->length = length; the_region->page_size = page_size; 517fa: 2548 0058 movel %a0,%a2@(88) <== NOT EXECUTED the_region->attribute_set = attribute_set; 517fe: 2540 0060 movel %d0,%a2@(96) <== NOT EXECUTED the_region->number_of_used_blocks = 0; _Thread_queue_Initialize( 51802: e488 lsrl #2,%d0 <== NOT EXECUTED 51804: 2d40 0018 movel %d0,%fp@(24) <== NOT EXECUTED 51808: 7001 moveq #1,%d0 <== NOT EXECUTED return_status = RTEMS_INVALID_SIZE; } else { the_region->starting_address = starting_address; 5180a: 2542 0050 movel %d2,%a2@(80) <== NOT EXECUTED &_Region_Information, &the_region->Object, (Objects_Name) name ); *id = the_region->Object.id; 5180e: 4282 clrl %d2 <== NOT EXECUTED the_region->starting_address = starting_address; the_region->length = length; the_region->page_size = page_size; the_region->attribute_set = attribute_set; the_region->number_of_used_blocks = 0; 51810: 42aa 0064 clrl %a2@(100) <== NOT EXECUTED _Thread_queue_Initialize( 51814: 4878 0006 pea 6 <== NOT EXECUTED 51818: 4878 0040 pea 40 <== NOT EXECUTED 5181c: c0ae 0018 andl %fp@(24),%d0 <== NOT EXECUTED 51820: 2f00 movel %d0,%sp@- <== NOT EXECUTED 51822: 486a 0010 pea %a2@(16) <== NOT EXECUTED 51826: 4eb9 0005 6c10 jsr 56c10 <_Thread_queue_Initialize> <== NOT EXECUTED 5182c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 51830: 2548 000c movel %a0,%a2@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 51834: 2079 0007 2a06 moveal 72a06 <_Region_Information+0x1a>,%a0 <== NOT EXECUTED 5183a: 4280 clrl %d0 <== NOT EXECUTED 5183c: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 51840: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED &_Region_Information, &the_region->Object, (Objects_Name) name ); *id = the_region->Object.id; 51844: 206e 001c moveal %fp@(28),%a0 <== NOT EXECUTED 51848: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED 5184c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED return_status = RTEMS_SUCCESSFUL; } } _RTEMS_Unlock_allocator(); 51852: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51858: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 5185e: 588f addql #4,%sp <== NOT EXECUTED 51860: 6000 ff7a braw 517dc <== NOT EXECUTED 51864: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED _RTEMS_Lock_allocator(); /* to prevent deletion */ the_region = _Region_Allocate(); if ( !the_region ) 5186a: 7405 moveq #5,%d2 <== NOT EXECUTED *id = the_region->Object.id; return_status = RTEMS_SUCCESSFUL; } } _RTEMS_Unlock_allocator(); 5186c: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51872: 588f addql #4,%sp <== NOT EXECUTED 51874: 6000 ff66 braw 517dc <== NOT EXECUTED 00051878 : */ rtems_status_code rtems_region_delete( Objects_Id id ) { 51878: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 5187c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5187e: 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(); 51880: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51886: 4eb9 0005 40e8 jsr 540e8 <_API_Mutex_Lock> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Region_Control *_Region_Get ( Objects_Id id, Objects_Locations *location ) { return (Region_Control *) 5188c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 51890: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 51894: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 5189a: 4eb9 0005 5b2c jsr 55b2c <_Objects_Get_no_protection> <== NOT EXECUTED 518a0: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 518a2: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 518a6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 518ac: 6622 bnes 518d0 <== NOT EXECUTED case OBJECTS_LOCAL: _Region_Debug_Walk( the_region, 5 ); if ( the_region->number_of_used_blocks != 0 ) 518ae: 4aaa 0064 tstl %a2@(100) <== NOT EXECUTED 518b2: 675a beqs 5190e <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 518b4: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: _Region_Debug_Walk( the_region, 5 ); if ( the_region->number_of_used_blocks != 0 ) 518ba: 740c moveq #12,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 518bc: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED return return_status; } 518c2: 2002 movel %d2,%d0 <== NOT EXECUTED 518c4: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 518c8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 518cc: 4e5e unlk %fp <== NOT EXECUTED 518ce: 4e75 rts <== NOT EXECUTED register Region_Control *the_region; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 518d0: 7201 moveq #1,%d1 <== NOT EXECUTED 518d2: b280 cmpl %d0,%d1 <== NOT EXECUTED 518d4: 671c beqs 518f2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 518d6: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED register Region_Control *the_region; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 518dc: 7419 moveq #25,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 518de: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED return return_status; } 518e4: 2002 movel %d2,%d0 <== NOT EXECUTED 518e6: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 518ea: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 518ee: 4e5e unlk %fp <== NOT EXECUTED 518f0: 4e75 rts <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 518f2: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED register Region_Control *the_region; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 518f8: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 518fa: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED return return_status; } 51900: 2002 movel %d2,%d0 <== NOT EXECUTED 51902: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 51906: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5190a: 4e5e unlk %fp <== NOT EXECUTED 5190c: 4e75 rts <== NOT EXECUTED case OBJECTS_LOCAL: _Region_Debug_Walk( the_region, 5 ); if ( the_region->number_of_used_blocks != 0 ) return_status = RTEMS_RESOURCE_IN_USE; else { _Objects_Close( &_Region_Information, &the_region->Object ); 5190e: 2f0a movel %a2,%sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Region_Free ( Region_Control *the_region ) { _Objects_Free( &_Region_Information, &the_region->Object ); 51910: 4282 clrl %d2 <== NOT EXECUTED 51912: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 51918: 4eb9 0005 569c jsr 5569c <_Objects_Close> <== NOT EXECUTED 5191e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51920: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 51926: 4eb9 0005 59c0 jsr 559c0 <_Objects_Free> <== NOT EXECUTED 5192c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51932: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51938: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED return return_status; } 5193e: 2002 movel %d2,%d0 <== NOT EXECUTED 51940: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 51944: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 51948: 4e5e unlk %fp <== NOT EXECUTED 5194a: 4e75 rts 0005194c : rtems_status_code rtems_region_extend( Objects_Id id, void *starting_address, uint32_t length ) { 5194c: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 51950: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51952: 2f02 movel %d2,%sp@- <== 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 ) 51954: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 51958: 6700 00a8 beqw 51a02 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); /* to prevent deletion */ 5195c: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51962: 4eb9 0005 40e8 jsr 540e8 <_API_Mutex_Lock> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Region_Control *_Region_Get ( Objects_Id id, Objects_Locations *location ) { return (Region_Control *) 51968: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 5196c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 51970: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 51976: 4eb9 0005 5b2c jsr 55b2c <_Objects_Get_no_protection> <== NOT EXECUTED 5197c: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 5197e: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 51982: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 51988: 664e bnes 519d8 <== NOT EXECUTED case OBJECTS_LOCAL: heap_status = _Heap_Extend( 5198a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5198e: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 51992: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 51996: 486a 0068 pea %a2@(104) <== NOT EXECUTED 5199a: 4eb9 0005 4e04 jsr 54e04 <_Heap_Extend> <== NOT EXECUTED starting_address, length, &amount_extended ); switch ( heap_status ) { 519a0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 519a6: 7201 moveq #1,%d1 <== NOT EXECUTED 519a8: b280 cmpl %d0,%d1 <== NOT EXECUTED 519aa: 6766 beqs 51a12 <== NOT EXECUTED 519ac: 6376 blss 51a24 <== NOT EXECUTED case HEAP_EXTEND_SUCCESSFUL: the_region->length += amount_extended; 519ae: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED the_region->maximum_segment_size += amount_extended; 519b2: d1aa 005c addl %d0,%a2@(92) <== NOT EXECUTED &amount_extended ); switch ( heap_status ) { case HEAP_EXTEND_SUCCESSFUL: the_region->length += amount_extended; 519b6: d1aa 0054 addl %d0,%a2@(84) <== NOT EXECUTED the_region->maximum_segment_size += amount_extended; 519ba: 4282 clrl %d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 519bc: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 519c2: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 519c8: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 519ca: 2002 movel %d2,%d0 <== NOT EXECUTED 519cc: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 519d0: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 519d4: 4e5e unlk %fp <== NOT EXECUTED 519d6: 4e75 rts <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); /* to prevent deletion */ the_region = _Region_Get( id, &location ); switch ( location ) { 519d8: 7201 moveq #1,%d1 <== NOT EXECUTED 519da: b280 cmpl %d0,%d1 <== NOT EXECUTED 519dc: 6712 beqs 519f0 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 519de: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED switch ( heap_status ) { case HEAP_EXTEND_SUCCESSFUL: the_region->length += amount_extended; the_region->maximum_segment_size += amount_extended; return_status = RTEMS_SUCCESSFUL; break; 519e4: 7419 moveq #25,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 519e6: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 519ec: 588f addql #4,%sp <== NOT EXECUTED 519ee: 60da bras 519ca <== NOT EXECUTED 519f0: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); /* to prevent deletion */ the_region = _Region_Get( id, &location ); switch ( location ) { 519f6: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 519f8: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 519fe: 588f addql #4,%sp <== NOT EXECUTED 51a00: 60c8 bras 519ca <== 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 ) 51a02: 7409 moveq #9,%d2 <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51a04: 2002 movel %d2,%d0 <== NOT EXECUTED 51a06: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 51a0a: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 51a0e: 4e5e unlk %fp <== NOT EXECUTED 51a10: 4e75 rts <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51a12: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED starting_address, length, &amount_extended ); switch ( heap_status ) { 51a18: 7409 moveq #9,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51a1a: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51a20: 588f addql #4,%sp <== NOT EXECUTED 51a22: 60a6 bras 519ca <== NOT EXECUTED starting_address, length, &amount_extended ); switch ( heap_status ) { 51a24: 123c 0002 moveb #2,%d1 <== NOT EXECUTED 51a28: b280 cmpl %d0,%d1 <== NOT EXECUTED 51a2a: 66b2 bnes 519de <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51a2c: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED switch ( heap_status ) { case HEAP_EXTEND_SUCCESSFUL: the_region->length += amount_extended; the_region->maximum_segment_size += amount_extended; return_status = RTEMS_SUCCESSFUL; break; 51a32: 7418 moveq #24,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51a34: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51a3a: 588f addql #4,%sp <== NOT EXECUTED 51a3c: 608c bras 519ca <== NOT EXECUTED ... 00051a40 : rtems_status_code rtems_region_get_free_information( Objects_Id id, Heap_Information_block *the_info ) { 51a40: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 51a44: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51a46: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 51a4a: 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 ) 51a4c: 4a8a tstl %a2 <== NOT EXECUTED 51a4e: 677e beqs 51ace <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 51a50: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51a56: 4eb9 0005 40e8 jsr 540e8 <_API_Mutex_Lock> <== NOT EXECUTED 51a5c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 51a60: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 51a64: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 51a6a: 4eb9 0005 5b2c jsr 55b2c <_Objects_Get_no_protection> <== NOT EXECUTED 51a70: 2040 moveal %d0,%a0 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 51a72: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 51a76: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 51a7c: 6724 beqs 51aa2 <== NOT EXECUTED 51a7e: 7201 moveq #1,%d1 <== NOT EXECUTED 51a80: b280 cmpl %d0,%d1 <== NOT EXECUTED 51a82: 675a beqs 51ade <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51a84: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 51a8a: 7419 moveq #25,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51a8c: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51a92: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 51a94: 2002 movel %d2,%d0 <== NOT EXECUTED 51a96: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 51a9a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 51a9e: 4e5e unlk %fp <== NOT EXECUTED 51aa0: 4e75 rts <== 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 ); 51aa2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51aa4: 4282 clrl %d2 <== NOT EXECUTED 51aa6: 4868 0068 pea %a0@(104) <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: the_info->Used.number = 0; 51aaa: 42aa 000c clrl %a2@(12) <== NOT EXECUTED the_info->Used.total = 0; 51aae: 42aa 0014 clrl %a2@(20) <== NOT EXECUTED the_info->Used.largest = 0; 51ab2: 42aa 0010 clrl %a2@(16) <== NOT EXECUTED _Heap_Get_free_information( &the_region->Memory, &the_info->Free ); 51ab6: 4eb9 0005 5040 jsr 55040 <_Heap_Get_free_information> <== NOT EXECUTED 51abc: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51abe: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51ac4: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51aca: 588f addql #4,%sp <== NOT EXECUTED 51acc: 60c6 bras 51a94 <== NOT EXECUTED { Objects_Locations location; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; register Region_Control *the_region; if ( !the_info ) 51ace: 7409 moveq #9,%d2 <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51ad0: 2002 movel %d2,%d0 <== NOT EXECUTED 51ad2: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 51ad6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 51ada: 4e5e unlk %fp <== NOT EXECUTED 51adc: 4e75 rts <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51ade: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 51ae4: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51ae6: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51aec: 588f addql #4,%sp <== NOT EXECUTED 51aee: 60a4 bras 51a94 <== NOT EXECUTED 00051af0 : rtems_status_code rtems_region_get_information( Objects_Id id, Heap_Information_block *the_info ) { 51af0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 51af4: 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 ) 51af6: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 51afa: 6774 beqs 51b70 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 51afc: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51b02: 4eb9 0005 40e8 jsr 540e8 <_API_Mutex_Lock> <== NOT EXECUTED 51b08: 486e fffc pea %fp@(-4) <== NOT EXECUTED 51b0c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 51b10: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 51b16: 4eb9 0005 5b2c jsr 55b2c <_Objects_Get_no_protection> <== NOT EXECUTED 51b1c: 2040 moveal %d0,%a0 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 51b1e: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 51b22: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 51b28: 6720 beqs 51b4a <== NOT EXECUTED 51b2a: 7201 moveq #1,%d1 <== NOT EXECUTED 51b2c: b280 cmpl %d0,%d1 <== NOT EXECUTED 51b2e: 674c beqs 51b7c <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51b30: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 51b36: 7419 moveq #25,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51b38: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51b3e: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 51b40: 2002 movel %d2,%d0 <== NOT EXECUTED 51b42: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 51b46: 4e5e unlk %fp <== NOT EXECUTED 51b48: 4e75 rts <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( _Heap_Get_information( &the_region->Memory, the_info ) != 51b4a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 51b4e: 4868 0068 pea %a0@(104) <== NOT EXECUTED 51b52: 4eb9 0005 5084 jsr 55084 <_Heap_Get_information> <== NOT EXECUTED 51b58: 508f addql #8,%sp <== NOT EXECUTED 51b5a: 4a80 tstl %d0 <== NOT EXECUTED 51b5c: 6730 beqs 51b8e <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51b5e: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( _Heap_Get_information( &the_region->Memory, the_info ) != 51b64: 7409 moveq #9,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51b66: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51b6c: 588f addql #4,%sp <== NOT EXECUTED 51b6e: 60d0 bras 51b40 <== NOT EXECUTED { Objects_Locations location; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; register Region_Control *the_region; if ( !the_info ) 51b70: 7409 moveq #9,%d2 <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51b72: 2002 movel %d2,%d0 <== NOT EXECUTED 51b74: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 51b78: 4e5e unlk %fp <== NOT EXECUTED 51b7a: 4e75 rts <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51b7c: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 51b82: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51b84: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51b8a: 588f addql #4,%sp <== NOT EXECUTED 51b8c: 60b2 bras 51b40 <== NOT EXECUTED 51b8e: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( _Heap_Get_information( &the_region->Memory, the_info ) != 51b94: 4282 clrl %d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51b96: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51b9c: 588f addql #4,%sp <== NOT EXECUTED 51b9e: 60a0 bras 51b40 <== NOT EXECUTED 00051ba0 : uint32_t size, rtems_option option_set, rtems_interval timeout, void **segment ) { 51ba0: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 51ba4: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ <== NOT EXECUTED 51ba8: 246e 0018 moveal %fp@(24),%a2 <== NOT EXECUTED Objects_Locations location; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; register Region_Control *the_region; void *the_segment; if ( !segment ) 51bac: 4a8a tstl %a2 <== NOT EXECUTED 51bae: 6700 009c beqw 51c4c <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; *segment = NULL; 51bb2: 4292 clrl %a2@ <== NOT EXECUTED if ( size == 0 ) 51bb4: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 51bb8: 660e bnes 51bc8 <== NOT EXECUTED 51bba: 7408 moveq #8,%d2 <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51bbc: 2002 movel %d2,%d0 <== NOT EXECUTED 51bbe: 4cee 1c04 ffec moveml %fp@(-20),%d2/%a2-%a4 <== NOT EXECUTED 51bc4: 4e5e unlk %fp <== NOT EXECUTED 51bc6: 4e75 rts <== NOT EXECUTED *segment = NULL; if ( size == 0 ) return RTEMS_INVALID_SIZE; _RTEMS_Lock_allocator(); 51bc8: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51bce: 4eb9 0005 40e8 jsr 540e8 <_API_Mutex_Lock> <== NOT EXECUTED 51bd4: 486e fffc pea %fp@(-4) <== NOT EXECUTED executing = _Thread_Executing; 51bd8: 2879 0007 2c06 moveal 72c06 <_Thread_Executing>,%a4 <== NOT EXECUTED 51bde: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 51be2: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 51be8: 4eb9 0005 5b2c jsr 55b2c <_Objects_Get_no_protection> <== NOT EXECUTED 51bee: 2640 moveal %d0,%a3 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 51bf0: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 51bf4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 51bfa: 6626 bnes 51c22 <== NOT EXECUTED case OBJECTS_LOCAL: if ( size > the_region->maximum_segment_size ) 51bfc: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 51c00: b0ab 005c cmpl %a3@(92),%d0 <== NOT EXECUTED 51c04: 6354 blss 51c5a <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51c06: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED executing = _Thread_Executing; the_region = _Region_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( size > the_region->maximum_segment_size ) 51c0c: 7408 moveq #8,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51c0e: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51c14: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 51c16: 2002 movel %d2,%d0 <== NOT EXECUTED 51c18: 4cee 1c04 ffec moveml %fp@(-20),%d2/%a2-%a4 <== NOT EXECUTED 51c1e: 4e5e unlk %fp <== NOT EXECUTED 51c20: 4e75 rts <== NOT EXECUTED _RTEMS_Lock_allocator(); executing = _Thread_Executing; the_region = _Region_Get( id, &location ); switch ( location ) { 51c22: 7201 moveq #1,%d1 <== NOT EXECUTED 51c24: b280 cmpl %d0,%d1 <== NOT EXECUTED 51c26: 6712 beqs 51c3a <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51c28: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED _RTEMS_Lock_allocator(); executing = _Thread_Executing; the_region = _Region_Get( id, &location ); switch ( location ) { 51c2e: 7419 moveq #25,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51c30: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51c36: 588f addql #4,%sp <== NOT EXECUTED 51c38: 60dc bras 51c16 <== NOT EXECUTED 51c3a: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED _Thread_queue_Enqueue( &the_region->Wait_queue, timeout ); _Thread_Enable_dispatch(); return (rtems_status_code) executing->Wait.return_code; 51c40: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51c42: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51c48: 588f addql #4,%sp <== NOT EXECUTED 51c4a: 60ca bras 51c16 <== NOT EXECUTED Objects_Locations location; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; register Region_Control *the_region; void *the_segment; if ( !segment ) 51c4c: 7409 moveq #9,%d2 <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51c4e: 2002 movel %d2,%d0 <== NOT EXECUTED 51c50: 4cee 1c04 ffec moveml %fp@(-20),%d2/%a2-%a4 <== NOT EXECUTED 51c56: 4e5e unlk %fp <== NOT EXECUTED 51c58: 4e75 rts <== NOT EXECUTED RTEMS_INLINE_ROUTINE void *_Region_Allocate_segment ( Region_Control *the_region, uint32_t size ) { return _Heap_Allocate( &the_region->Memory, size ); 51c5a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 51c5e: 486b 0068 pea %a3@(104) <== NOT EXECUTED 51c62: 4eb9 0005 4d40 jsr 54d40 <_Heap_Allocate> <== NOT EXECUTED the_segment = _Region_Allocate_segment( the_region, size ); _Region_Debug_Walk( the_region, 2 ); if ( the_segment ) { 51c68: 508f addql #8,%sp <== NOT EXECUTED 51c6a: 4a80 tstl %d0 <== NOT EXECUTED 51c6c: 6718 beqs 51c86 <== NOT EXECUTED the_region->number_of_used_blocks += 1; 51c6e: 52ab 0064 addql #1,%a3@(100) <== NOT EXECUTED *segment = the_segment; 51c72: 4282 clrl %d2 <== NOT EXECUTED 51c74: 2480 movel %d0,%a2@ <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51c76: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51c7c: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51c82: 588f addql #4,%sp <== NOT EXECUTED 51c84: 6090 bras 51c16 <== NOT EXECUTED the_region->number_of_used_blocks += 1; *segment = the_segment; return_status = RTEMS_SUCCESSFUL; } else if ( _Options_Is_no_wait( option_set ) ) { 51c86: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 51c8a: 0801 0000 btst #0,%d1 <== NOT EXECUTED 51c8e: 6714 beqs 51ca4 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51c90: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED the_region->number_of_used_blocks += 1; *segment = the_segment; return_status = RTEMS_SUCCESSFUL; } else if ( _Options_Is_no_wait( option_set ) ) { 51c96: 740d moveq #13,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51c98: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51c9e: 588f addql #4,%sp <== NOT EXECUTED 51ca0: 6000 ff74 braw 51c16 <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 51ca4: 2039 0007 2b48 movel 72b48 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 51caa: 5280 addql #1,%d0 <== NOT EXECUTED 51cac: 23c0 0007 2b48 movel %d0,72b48 <_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(); 51cb2: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51cb8: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED executing->Wait.queue = &the_region->Wait_queue; executing->Wait.id = id; 51cbe: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 51cc2: 2941 0020 movel %d1,%a4@(32) <== 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; 51cc6: 7201 moveq #1,%d1 <== NOT EXECUTED * because this thread is going to block. */ _Thread_Disable_dispatch(); _RTEMS_Unlock_allocator(); executing->Wait.queue = &the_region->Wait_queue; 51cc8: 200b movel %a3,%d0 <== NOT EXECUTED 51cca: 2741 0040 movel %d1,%a3@(64) <== NOT EXECUTED executing->Wait.id = id; executing->Wait.count = size; 51cce: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED * because this thread is going to block. */ _Thread_Disable_dispatch(); _RTEMS_Unlock_allocator(); executing->Wait.queue = &the_region->Wait_queue; 51cd2: 0680 0000 0010 addil #16,%d0 <== NOT EXECUTED 51cd8: 2940 0044 movel %d0,%a4@(68) <== NOT EXECUTED executing->Wait.id = id; executing->Wait.count = size; 51cdc: 2941 0024 movel %d1,%a4@(36) <== NOT EXECUTED executing->Wait.return_argument = segment; 51ce0: 294a 0028 movel %a2,%a4@(40) <== NOT EXECUTED _Thread_queue_Enter_critical_section( &the_region->Wait_queue ); _Thread_queue_Enqueue( &the_region->Wait_queue, timeout ); 51ce4: 4879 0005 6d14 pea 56d14 <_Thread_queue_Timeout> <== NOT EXECUTED 51cea: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 51cee: 2f00 movel %d0,%sp@- <== NOT EXECUTED 51cf0: 4eb9 0005 6954 jsr 56954 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 51cf6: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED return (rtems_status_code) executing->Wait.return_code; 51cfc: 242c 0034 movel %a4@(52),%d2 <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51d00: 2002 movel %d2,%d0 <== NOT EXECUTED _Thread_queue_Enqueue( &the_region->Wait_queue, timeout ); _Thread_Enable_dispatch(); return (rtems_status_code) executing->Wait.return_code; 51d02: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51d08: 4cee 1c04 ffec moveml %fp@(-20),%d2/%a2-%a4 <== NOT EXECUTED 51d0e: 4e5e unlk %fp <== NOT EXECUTED 51d10: 4e75 rts <== NOT EXECUTED ... 00051d14 : rtems_status_code rtems_region_get_segment_size( Objects_Id id, void *segment, size_t *size ) { 51d14: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 51d18: 2f02 movel %d2,%sp@- <== NOT EXECUTED Objects_Locations location; rtems_status_code return_status = RTEMS_INTERNAL_ERROR; register Region_Control *the_region; if ( !segment ) 51d1a: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 51d1e: 6700 0084 beqw 51da4 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !size ) 51d22: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 51d26: 677c beqs 51da4 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 51d28: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51d2e: 4eb9 0005 40e8 jsr 540e8 <_API_Mutex_Lock> <== NOT EXECUTED RTEMS_INLINE_ROUTINE Region_Control *_Region_Get ( Objects_Id id, Objects_Locations *location ) { return (Region_Control *) 51d34: 486e fffc pea %fp@(-4) <== NOT EXECUTED 51d38: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 51d3c: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 51d42: 4eb9 0005 5b2c jsr 55b2c <_Objects_Get_no_protection> <== NOT EXECUTED 51d48: 2040 moveal %d0,%a0 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 51d4a: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 51d4e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 51d54: 6720 beqs 51d76 <== NOT EXECUTED 51d56: 7201 moveq #1,%d1 <== NOT EXECUTED 51d58: b280 cmpl %d0,%d1 <== NOT EXECUTED 51d5a: 6754 beqs 51db0 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51d5c: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 51d62: 7419 moveq #25,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51d64: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51d6a: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 51d6c: 2002 movel %d2,%d0 <== NOT EXECUTED 51d6e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 51d72: 4e5e unlk %fp <== NOT EXECUTED 51d74: 4e75 rts <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_Heap_Size_of_user_area( &the_region->Memory, segment, size ) ) 51d76: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 51d7a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 51d7e: 4868 0068 pea %a0@(104) <== NOT EXECUTED 51d82: 4eb9 0005 54c4 jsr 554c4 <_Heap_Size_of_user_area> <== NOT EXECUTED 51d88: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 51d8e: 4a00 tstb %d0 <== NOT EXECUTED 51d90: 6630 bnes 51dc2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51d92: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_Heap_Size_of_user_area( &the_region->Memory, segment, size ) ) 51d98: 7409 moveq #9,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51d9a: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51da0: 588f addql #4,%sp <== NOT EXECUTED 51da2: 60c8 bras 51d6c <== NOT EXECUTED return return_status; 51da4: 7409 moveq #9,%d2 <== NOT EXECUTED } 51da6: 2002 movel %d2,%d0 <== NOT EXECUTED 51da8: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 51dac: 4e5e unlk %fp <== NOT EXECUTED 51dae: 4e75 rts <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51db0: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 51db6: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51db8: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51dbe: 588f addql #4,%sp <== NOT EXECUTED 51dc0: 60aa bras 51d6c <== NOT EXECUTED 51dc2: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_Heap_Size_of_user_area( &the_region->Memory, segment, size ) ) 51dc8: 4282 clrl %d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51dca: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51dd0: 588f addql #4,%sp <== NOT EXECUTED 51dd2: 6098 bras 51d6c <== NOT EXECUTED 00051dd4 : rtems_status_code rtems_region_ident( rtems_name name, Objects_Id *id ) { 51dd4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 51dd8: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 51ddc: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 51de2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 51de6: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 51dec: 4eb9 0005 5d04 jsr 55d04 <_Objects_Name_to_id_u32> <== NOT EXECUTED 51df2: 41f9 0006 ba62 lea 6ba62 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 51df8: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 51dfc: 4e5e unlk %fp <== NOT EXECUTED 51dfe: 4e75 rts 00051e00 : Objects_Id id, void *segment, size_t size, size_t *old_size ) { 51e00: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 51e04: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51e06: 2f02 movel %d2,%sp@- <== 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 ) 51e08: 4aae 0014 tstl %fp@(20) <== NOT EXECUTED 51e0c: 6700 00ba beqw 51ec8 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); 51e10: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51e16: 4eb9 0005 40e8 jsr 540e8 <_API_Mutex_Lock> <== NOT EXECUTED 51e1c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 51e20: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 51e24: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 51e2a: 4eb9 0005 5b2c jsr 55b2c <_Objects_Get_no_protection> <== NOT EXECUTED 51e30: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 51e32: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 51e36: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 51e3c: 6726 beqs 51e64 <== NOT EXECUTED 51e3e: 7201 moveq #1,%d1 <== NOT EXECUTED 51e40: b280 cmpl %d0,%d1 <== NOT EXECUTED 51e42: 6700 0094 beqw 51ed8 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51e46: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 51e4c: 7419 moveq #25,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51e4e: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51e54: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 51e56: 2002 movel %d2,%d0 <== NOT EXECUTED 51e58: 242e ffec movel %fp@(-20),%d2 <== NOT EXECUTED 51e5c: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 51e60: 4e5e unlk %fp <== NOT EXECUTED 51e62: 4e75 rts <== NOT EXECUTED case OBJECTS_LOCAL: _Region_Debug_Walk( the_region, 7 ); status = _Heap_Resize_block( 51e64: 486e fffc pea %fp@(-4) <== NOT EXECUTED 51e68: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 51e6c: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 51e70: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 51e74: 486a 0068 pea %a2@(104) <== NOT EXECUTED 51e78: 4eb9 0005 5300 jsr 55300 <_Heap_Resize_block> <== NOT EXECUTED segment, (uint32_t) size, &osize, &avail_size ); *old_size = (uint32_t) osize; 51e7e: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 51e82: 20ae fff4 movel %fp@(-12),%a0@ <== NOT EXECUTED case OBJECTS_LOCAL: _Region_Debug_Walk( the_region, 7 ); status = _Heap_Resize_block( 51e86: 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 ) 51e88: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 51e8e: 6624 bnes 51eb4 <== NOT EXECUTED 51e90: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 51e94: 6656 bnes 51eec <== NOT EXECUTED _Region_Process_queue( the_region ); /* unlocks allocator */ else _RTEMS_Unlock_allocator(); 51e96: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51e9c: 4282 clrl %d2 <== NOT EXECUTED 51e9e: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51ea4: 2002 movel %d2,%d0 <== NOT EXECUTED 51ea6: 242e ffec movel %fp@(-20),%d2 <== NOT EXECUTED 51eaa: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED _Region_Debug_Walk( the_region, 8 ); if ( status == HEAP_RESIZE_SUCCESSFUL && avail_size > 0 ) _Region_Process_queue( the_region ); /* unlocks allocator */ else _RTEMS_Unlock_allocator(); 51eae: 588f addql #4,%sp <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51eb0: 4e5e unlk %fp <== NOT EXECUTED 51eb2: 4e75 rts <== NOT EXECUTED _Region_Debug_Walk( the_region, 8 ); if ( status == HEAP_RESIZE_SUCCESSFUL && avail_size > 0 ) _Region_Process_queue( the_region ); /* unlocks allocator */ else _RTEMS_Unlock_allocator(); 51eb4: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51eba: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED return 51ec0: 588f addql #4,%sp <== NOT EXECUTED 51ec2: 7001 moveq #1,%d0 <== NOT EXECUTED 51ec4: b082 cmpl %d2,%d0 <== NOT EXECUTED 51ec6: 673c beqs 51f04 <== NOT EXECUTED return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); return return_status; 51ec8: 7409 moveq #9,%d2 <== NOT EXECUTED } 51eca: 2002 movel %d2,%d0 <== NOT EXECUTED 51ecc: 242e ffec movel %fp@(-20),%d2 <== NOT EXECUTED 51ed0: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 51ed4: 4e5e unlk %fp <== NOT EXECUTED 51ed6: 4e75 rts <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51ed8: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED if ( status == HEAP_RESIZE_SUCCESSFUL && avail_size > 0 ) _Region_Process_queue( the_region ); /* unlocks allocator */ else _RTEMS_Unlock_allocator(); return 51ede: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51ee0: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51ee6: 588f addql #4,%sp <== NOT EXECUTED 51ee8: 6000 ff6c braw 51e56 <== NOT EXECUTED *old_size = (uint32_t) osize; _Region_Debug_Walk( the_region, 8 ); if ( status == HEAP_RESIZE_SUCCESSFUL && avail_size > 0 ) _Region_Process_queue( the_region ); /* unlocks allocator */ 51eec: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51eee: 4eb9 0005 a148 jsr 5a148 <_Region_Process_queue> <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51ef4: 2002 movel %d2,%d0 <== NOT EXECUTED 51ef6: 242e ffec movel %fp@(-20),%d2 <== NOT EXECUTED 51efa: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED *old_size = (uint32_t) osize; _Region_Debug_Walk( the_region, 8 ); if ( status == HEAP_RESIZE_SUCCESSFUL && avail_size > 0 ) _Region_Process_queue( the_region ); /* unlocks allocator */ 51efe: 588f addql #4,%sp <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51f00: 4e5e unlk %fp <== NOT EXECUTED 51f02: 4e75 rts <== NOT EXECUTED if ( status == HEAP_RESIZE_SUCCESSFUL && avail_size > 0 ) _Region_Process_queue( the_region ); /* unlocks allocator */ else _RTEMS_Unlock_allocator(); return 51f04: 740d moveq #13,%d2 <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51f06: 2002 movel %d2,%d0 <== NOT EXECUTED 51f08: 242e ffec movel %fp@(-20),%d2 <== NOT EXECUTED 51f0c: 246e fff0 moveal %fp@(-16),%a2 <== NOT EXECUTED 51f10: 4e5e unlk %fp <== NOT EXECUTED 51f12: 4e75 rts 00051f14 : rtems_status_code rtems_region_return_segment( Objects_Id id, void *segment ) { 51f14: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 51f18: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51f1a: 2f02 movel %d2,%sp@- <== NOT EXECUTED uint32_t size; #endif int status; register Region_Control *the_region; _RTEMS_Lock_allocator(); 51f1c: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 51f22: 4eb9 0005 40e8 jsr 540e8 <_API_Mutex_Lock> <== NOT EXECUTED 51f28: 486e fffc pea %fp@(-4) <== NOT EXECUTED 51f2c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 51f30: 4879 0007 29ec pea 729ec <_Region_Information> <== NOT EXECUTED 51f36: 4eb9 0005 5b2c jsr 55b2c <_Objects_Get_no_protection> <== NOT EXECUTED 51f3c: 2440 moveal %d0,%a2 <== NOT EXECUTED the_region = _Region_Get( id, &location ); switch ( location ) { 51f3e: 202e fffc movel %fp@(-4),%d0 <== NOT EXECUTED 51f42: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 51f48: 6632 bnes 51f7c <== NOT EXECUTED RTEMS_INLINE_ROUTINE bool _Region_Free_segment ( Region_Control *the_region, void *the_segment ) { return _Heap_Free( &the_region->Memory, the_segment ); 51f4a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 51f4e: 486a 0068 pea %a2@(104) <== NOT EXECUTED 51f52: 4eb9 0005 4ebc jsr 54ebc <_Heap_Free> <== NOT EXECUTED #endif status = _Region_Free_segment( the_region, segment ); _Region_Debug_Walk( the_region, 4 ); if ( !status ) 51f58: 508f addql #8,%sp <== NOT EXECUTED 51f5a: 4a00 tstb %d0 <== NOT EXECUTED 51f5c: 6648 bnes 51fa6 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51f5e: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED else { the_region->number_of_used_blocks -= 1; _Region_Process_queue(the_region); /* unlocks allocator */ return RTEMS_SUCCESSFUL; 51f64: 7409 moveq #9,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51f66: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51f6c: 588f addql #4,%sp <== NOT EXECUTED return return_status; } 51f6e: 2002 movel %d2,%d0 <== NOT EXECUTED 51f70: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 51f74: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 51f78: 4e5e unlk %fp <== NOT EXECUTED 51f7a: 4e75 rts <== NOT EXECUTED register Region_Control *the_region; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 51f7c: 7201 moveq #1,%d1 <== NOT EXECUTED 51f7e: b280 cmpl %d0,%d1 <== NOT EXECUTED 51f80: 6712 beqs 51f94 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51f82: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED register Region_Control *the_region; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 51f88: 7419 moveq #25,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51f8a: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51f90: 588f addql #4,%sp <== NOT EXECUTED 51f92: 60da bras 51f6e <== NOT EXECUTED 51f94: 2f39 0007 2bfe movel 72bfe <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED register Region_Control *the_region; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); switch ( location ) { 51f9a: 7404 moveq #4,%d2 <== NOT EXECUTED case OBJECTS_ERROR: return_status = RTEMS_INVALID_ID; break; } _RTEMS_Unlock_allocator(); 51f9c: 4eb9 0005 414c jsr 5414c <_API_Mutex_Unlock> <== NOT EXECUTED 51fa2: 588f addql #4,%sp <== NOT EXECUTED 51fa4: 60c8 bras 51f6e <== NOT EXECUTED if ( !status ) return_status = RTEMS_INVALID_ADDRESS; else { the_region->number_of_used_blocks -= 1; 51fa6: 53aa 0064 subql #1,%a2@(100) <== NOT EXECUTED _Region_Process_queue(the_region); /* unlocks allocator */ 51faa: 4282 clrl %d2 <== NOT EXECUTED 51fac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 51fae: 4eb9 0005 a148 jsr 5a148 <_Region_Process_queue> <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51fb4: 2002 movel %d2,%d0 <== NOT EXECUTED 51fb6: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 51fba: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED return_status = RTEMS_INVALID_ADDRESS; else { the_region->number_of_used_blocks -= 1; _Region_Process_queue(the_region); /* unlocks allocator */ 51fbe: 588f addql #4,%sp <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return return_status; } 51fc0: 4e5e unlk %fp <== NOT EXECUTED 51fc2: 4e75 rts 00045920 : uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id ) { 45920: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 45924: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 45928: 242e 0010 movel %fp@(16),%d2 <== 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 ) ) 4592c: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 45930: 675c beqs 4598e <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 45932: 4aae 0018 tstl %fp@(24) <== NOT EXECUTED 45936: 6762 beqs 4599a <== NOT EXECUTED uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id ) { 45938: 2002 movel %d2,%d0 <== NOT EXECUTED 4593a: 0280 0000 00c0 andil #192,%d0 <== NOT EXECUTED return RTEMS_NOT_DEFINED; } else #endif if ( _Attributes_Is_inherit_priority( attribute_set ) || 45940: 671e beqs 45960 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Attributes_Is_binary_semaphore( rtems_attribute attribute_set ) { return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_BINARY_SEMAPHORE); 45942: 7630 moveq #48,%d3 <== NOT EXECUTED 45944: c682 andl %d2,%d3 <== NOT EXECUTED _Attributes_Is_priority_ceiling( attribute_set ) ) { if ( ! ( (_Attributes_Is_binary_semaphore( attribute_set ) || 45946: 7210 moveq #16,%d1 <== NOT EXECUTED 45948: b283 cmpl %d3,%d1 <== NOT EXECUTED 4594a: 6732 beqs 4597e <== NOT EXECUTED 4594c: 123c 0020 moveb #32,%d1 <== NOT EXECUTED 45950: b283 cmpl %d3,%d1 <== NOT EXECUTED 45952: 672a beqs 4597e <== NOT EXECUTED name, 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; 45954: 700b moveq #11,%d0 <== NOT EXECUTED } 45956: 4cee 040c ffdc moveml %fp@(-36),%d2-%d3/%a2 <== NOT EXECUTED 4595c: 4e5e unlk %fp <== NOT EXECUTED 4595e: 4e75 rts <== NOT EXECUTED return RTEMS_NOT_DEFINED; } else #endif if ( _Attributes_Is_inherit_priority( attribute_set ) || 45960: 7630 moveq #48,%d3 <== NOT EXECUTED 45962: c682 andl %d2,%d3 <== NOT EXECUTED if ( _Attributes_Is_inherit_priority( attribute_set ) && _Attributes_Is_priority_ceiling( attribute_set ) ) return RTEMS_NOT_DEFINED; if ( !_Attributes_Is_counting_semaphore( attribute_set ) && ( count > 1 ) ) 45964: 4a83 tstl %d3 <== NOT EXECUTED 45966: 673e beqs 459a6 <== NOT EXECUTED 45968: 7001 moveq #1,%d0 <== NOT EXECUTED 4596a: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 4596e: 6436 bccs 459a6 <== NOT EXECUTED 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 45970: 4cee 040c ffdc moveml %fp@(-36),%d2-%d3/%a2 <== NOT EXECUTED 45976: 4e5e unlk %fp <== NOT EXECUTED if ( _Attributes_Is_inherit_priority( attribute_set ) && _Attributes_Is_priority_ceiling( attribute_set ) ) return RTEMS_NOT_DEFINED; if ( !_Attributes_Is_counting_semaphore( attribute_set ) && ( count > 1 ) ) 45978: 103c 000a moveb #10,%d0 <== NOT EXECUTED 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 4597c: 4e75 rts <== NOT EXECUTED #endif if ( _Attributes_Is_inherit_priority( attribute_set ) || _Attributes_Is_priority_ceiling( attribute_set ) ) { if ( ! ( (_Attributes_Is_binary_semaphore( attribute_set ) || 4597e: 44c2 movew %d2,%ccr <== NOT EXECUTED 45980: 66d2 bnes 45954 <== NOT EXECUTED _Attributes_Is_priority( attribute_set ) ) ) return RTEMS_NOT_DEFINED; } if ( _Attributes_Is_inherit_priority( attribute_set ) && 45982: 0c80 0000 00c0 cmpil #192,%d0 <== NOT EXECUTED 45988: 66da bnes 45964 <== NOT EXECUTED name, 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; 4598a: 700b moveq #11,%d0 <== NOT EXECUTED 4598c: 60c8 bras 45956 <== NOT EXECUTED } 4598e: 4cee 040c ffdc moveml %fp@(-36),%d2-%d3/%a2 <== NOT EXECUTED 45994: 4e5e unlk %fp <== 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 ) ) 45996: 7003 moveq #3,%d0 <== NOT EXECUTED 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 45998: 4e75 rts <== NOT EXECUTED 4599a: 4cee 040c ffdc moveml %fp@(-36),%d2-%d3/%a2 <== NOT EXECUTED 459a0: 4e5e unlk %fp <== NOT EXECUTED CORE_semaphore_Attributes the_semaphore_attributes; if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; if ( !id ) 459a2: 7009 moveq #9,%d0 <== NOT EXECUTED 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 459a4: 4e75 rts <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 459a6: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 459ac: 5280 addql #1,%d0 <== NOT EXECUTED 459ae: 23c0 0005 9c7c movel %d0,59c7c <_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 ); 459b4: 4879 0005 9bb0 pea 59bb0 <_Semaphore_Information> <== NOT EXECUTED 459ba: 4eb9 0004 7058 jsr 47058 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_semaphore = _Semaphore_Allocate(); if ( !the_semaphore ) { 459c0: 588f addql #4,%sp <== NOT EXECUTED 459c2: 2440 moveal %d0,%a2 <== NOT EXECUTED 459c4: 4a80 tstl %d0 <== NOT EXECUTED 459c6: 6700 00ee beqw 45ab6 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } #endif the_semaphore->attribute_set = attribute_set; 459ca: 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 ) ) { 459ce: 4a83 tstl %d3 <== NOT EXECUTED 459d0: 6772 beqs 45a44 <== NOT EXECUTED CORE_mutex_Status mutex_status; if ( _Attributes_Is_inherit_priority( attribute_set ) ) 459d2: 0802 0006 btst #6,%d2 <== NOT EXECUTED 459d6: 6700 00d0 beqw 45aa8 <== NOT EXECUTED the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT; 459da: 7202 moveq #2,%d1 <== NOT EXECUTED 459dc: 2d41 fff0 movel %d1,%fp@(-16) <== NOT EXECUTED the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY; else the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_FIFO; if ( _Attributes_Is_binary_semaphore( attribute_set ) ) { 459e0: 7210 moveq #16,%d1 <== NOT EXECUTED 459e2: b283 cmpl %d3,%d1 <== NOT EXECUTED 459e4: 6700 00e2 beqw 45ac8 <== NOT EXECUTED the_mutex_attributes.only_owner_release = TRUE; break; } } else { the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_BLOCKS; the_mutex_attributes.only_owner_release = FALSE; 459e8: 4201 clrb %d1 <== NOT EXECUTED case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT: the_mutex_attributes.only_owner_release = TRUE; break; } } else { the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_BLOCKS; 459ea: 7002 moveq #2,%d0 <== NOT EXECUTED the_mutex_attributes.only_owner_release = FALSE; 459ec: 1d41 ffee moveb %d1,%fp@(-18) <== NOT EXECUTED case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT: the_mutex_attributes.only_owner_release = TRUE; break; } } else { the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_BLOCKS; 459f0: 2d40 ffea movel %d0,%fp@(-22) <== NOT EXECUTED the_mutex_attributes.only_owner_release = FALSE; } the_mutex_attributes.priority_ceiling = priority_ceiling; mutex_status = _CORE_mutex_Initialize( 459f4: 7001 moveq #1,%d0 <== NOT EXECUTED 459f6: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 459fa: 57c0 seq %d0 <== NOT EXECUTED 459fc: 49c0 extbl %d0 <== NOT EXECUTED 459fe: 4480 negl %d0 <== NOT EXECUTED 45a00: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45a02: 486e ffea pea %fp@(-22) <== NOT EXECUTED 45a06: 486a 0014 pea %a2@(20) <== 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; 45a0a: 2d6e 0014 fff4 movel %fp@(20),%fp@(-12) <== NOT EXECUTED mutex_status = _CORE_mutex_Initialize( 45a10: 4eb9 0004 6868 jsr 46868 <_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 ) { 45a16: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45a1c: 7206 moveq #6,%d1 <== NOT EXECUTED 45a1e: b280 cmpl %d0,%d1 <== NOT EXECUTED 45a20: 6654 bnes 45a76 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Semaphore_Free ( Semaphore_Control *the_semaphore ) { _Objects_Free( &_Semaphore_Information, &the_semaphore->Object ); 45a22: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45a24: 4879 0005 9bb0 pea 59bb0 <_Semaphore_Information> <== NOT EXECUTED 45a2a: 4eb9 0004 7418 jsr 47418 <_Objects_Free> <== NOT EXECUTED _Semaphore_Free( the_semaphore ); _Thread_Enable_dispatch(); 45a30: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 45a36: 508f addql #8,%sp <== NOT EXECUTED 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 45a38: 4cee 040c ffdc moveml %fp@(-36),%d2-%d3/%a2 <== NOT EXECUTED 45a3e: 4e5e unlk %fp <== NOT EXECUTED (count == 1) ? CORE_MUTEX_UNLOCKED : CORE_MUTEX_LOCKED ); if ( mutex_status == CORE_MUTEX_STATUS_CEILING_VIOLATED ) { _Semaphore_Free( the_semaphore ); _Thread_Enable_dispatch(); 45a40: 7013 moveq #19,%d0 <== NOT EXECUTED 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 45a42: 4e75 rts <== NOT EXECUTED */ the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM; _CORE_semaphore_Initialize( 45a44: 2f2e 000c movel %fp@(12),%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; 45a48: 44c2 movew %d2,%ccr <== NOT EXECUTED 45a4a: 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( 45a4c: 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; 45a50: 49c0 extbl %d0 <== NOT EXECUTED 45a52: 5280 addql #1,%d0 <== NOT EXECUTED 45a54: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED /* * This effectively disables limit checking. */ the_semaphore_attributes.maximum_count = 0xFFFFFFFF; 45a58: 70ff moveq #-1,%d0 <== NOT EXECUTED 45a5a: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED */ the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM; _CORE_semaphore_Initialize( 45a5e: 486a 0014 pea %a2@(20) <== NOT EXECUTED /* * The following are just to make Purify happy. */ the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; 45a62: 42ae ffea clrl %fp@(-22) <== NOT EXECUTED the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM; 45a66: 42ae fff4 clrl %fp@(-12) <== NOT EXECUTED _CORE_semaphore_Initialize( 45a6a: 4eb9 0004 6bdc jsr 46bdc <_CORE_semaphore_Initialize> <== NOT EXECUTED 45a70: dffc 0000 000c addal #12,%sp <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 45a76: 2079 0005 9bca moveal 59bca <_Semaphore_Information+0x1a>,%a0 <== NOT EXECUTED 45a7c: 4280 clrl %d0 <== NOT EXECUTED 45a7e: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 45a82: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 45a86: 218a 0c00 movel %a2,%a0@(00000000,%d0:l:4) <== NOT EXECUTED &_Semaphore_Information, &the_semaphore->Object, (Objects_Name) name ); *id = the_semaphore->Object.id; 45a8a: 206e 0018 moveal %fp@(24),%a0 <== NOT EXECUTED information, _Objects_Get_index( the_object->id ), the_object ); the_object->name = name; 45a8e: 2541 000c movel %d1,%a2@(12) <== NOT EXECUTED 45a92: 20aa 0008 movel %a2@(8),%a0@ <== NOT EXECUTED the_semaphore->Object.id, name, 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); 45a96: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45a9c: 4cee 040c ffdc moveml %fp@(-36),%d2-%d3/%a2 <== NOT EXECUTED 45aa2: 4e5e unlk %fp <== NOT EXECUTED the_semaphore->Object.id, name, 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); 45aa4: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45aa6: 4e75 rts <== NOT EXECUTED if ( !_Attributes_Is_counting_semaphore( attribute_set ) ) { CORE_mutex_Status mutex_status; if ( _Attributes_Is_inherit_priority( attribute_set ) ) the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT; else if ( _Attributes_Is_priority_ceiling( attribute_set ) ) 45aa8: 4a02 tstb %d2 <== NOT EXECUTED 45aaa: 6c36 bges 45ae2 <== NOT EXECUTED the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING; 45aac: 7003 moveq #3,%d0 <== NOT EXECUTED 45aae: 2d40 fff0 movel %d0,%fp@(-16) <== NOT EXECUTED 45ab2: 6000 ff2c braw 459e0 <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_semaphore = _Semaphore_Allocate(); if ( !the_semaphore ) { _Thread_Enable_dispatch(); 45ab6: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 45abc: 4cee 040c ffdc moveml %fp@(-36),%d2-%d3/%a2 <== NOT EXECUTED 45ac2: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* prevents deletion */ the_semaphore = _Semaphore_Allocate(); if ( !the_semaphore ) { _Thread_Enable_dispatch(); 45ac4: 7005 moveq #5,%d0 <== NOT EXECUTED 0 /* Not used */ ); #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 45ac6: 4e75 rts <== NOT EXECUTED if ( _Attributes_Is_binary_semaphore( attribute_set ) ) { the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; switch ( the_mutex_attributes.discipline ) { 45ac8: 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; 45acc: 42ae ffea clrl %fp@(-22) <== NOT EXECUTED switch ( the_mutex_attributes.discipline ) { 45ad0: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 45ad4: b280 cmpl %d0,%d1 <== NOT EXECUTED 45ad6: 651a bcss 45af2 <== NOT EXECUTED case CORE_MUTEX_DISCIPLINES_FIFO: case CORE_MUTEX_DISCIPLINES_PRIORITY: the_mutex_attributes.only_owner_release = FALSE; 45ad8: 4200 clrb %d0 <== NOT EXECUTED 45ada: 1d40 ffee moveb %d0,%fp@(-18) <== NOT EXECUTED 45ade: 6000 ff14 braw 459f4 <== NOT EXECUTED if ( _Attributes_Is_inherit_priority( attribute_set ) ) the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT; else if ( _Attributes_Is_priority_ceiling( attribute_set ) ) the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING; else if ( _Attributes_Is_priority( attribute_set ) ) the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY; 45ae2: 44c2 movew %d2,%ccr <== NOT EXECUTED 45ae4: 56c0 sne %d0 <== NOT EXECUTED 45ae6: 49c0 extbl %d0 <== NOT EXECUTED 45ae8: 5280 addql #1,%d0 <== NOT EXECUTED 45aea: 2d40 fff0 movel %d0,%fp@(-16) <== NOT EXECUTED 45aee: 6000 fef0 braw 459e0 <== NOT EXECUTED if ( _Attributes_Is_binary_semaphore( attribute_set ) ) { the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES; switch ( the_mutex_attributes.discipline ) { 45af2: 123c 0003 moveb #3,%d1 <== NOT EXECUTED 45af6: b280 cmpl %d0,%d1 <== NOT EXECUTED 45af8: 6500 fefa bcsw 459f4 <== 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; 45afc: 7201 moveq #1,%d1 <== NOT EXECUTED 45afe: 1d41 ffee moveb %d1,%fp@(-18) <== NOT EXECUTED 45b02: 6000 fef0 braw 459f4 <== NOT EXECUTED ... 00045b08 : #endif rtems_status_code rtems_semaphore_delete( rtems_id id ) { 45b08: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45b0c: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get ( Objects_Id id, Objects_Locations *location ) { return (Semaphore_Control *) 45b0e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45b12: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45b16: 4879 0005 9bb0 pea 59bb0 <_Semaphore_Information> <== NOT EXECUTED 45b1c: 4eb9 0004 7584 jsr 47584 <_Objects_Get> <== NOT EXECUTED register Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { 45b22: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45b28: 2440 moveal %d0,%a2 <== NOT EXECUTED 45b2a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45b2e: 670a beqs 45b3a <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45b30: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45b34: 4e5e unlk %fp <== NOT EXECUTED { register Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { 45b36: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45b38: 4e75 rts <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _Attributes_Is_counting_semaphore( rtems_attribute attribute_set ) { return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_COUNTING_SEMAPHORE); 45b3a: 7030 moveq #48,%d0 <== NOT EXECUTED 45b3c: c0aa 0010 andl %a2@(16),%d0 <== NOT EXECUTED the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 45b40: 6764 beqs 45ba6 <== NOT EXECUTED if ( _CORE_mutex_Is_locked( &the_semaphore->Core_control.mutex ) && 45b42: 4aaa 0062 tstl %a2@(98) <== NOT EXECUTED 45b46: 6616 bnes 45b5e <== NOT EXECUTED 45b48: 7220 moveq #32,%d1 <== NOT EXECUTED 45b4a: b280 cmpl %d0,%d1 <== NOT EXECUTED 45b4c: 6710 beqs 45b5e <== NOT EXECUTED !_Attributes_Is_simple_binary_semaphore( the_semaphore->attribute_set ) ) { _Thread_Enable_dispatch(); 45b4e: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45b54: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45b58: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { if ( _CORE_mutex_Is_locked( &the_semaphore->Core_control.mutex ) && !_Attributes_Is_simple_binary_semaphore( the_semaphore->attribute_set ) ) { _Thread_Enable_dispatch(); 45b5a: 700c moveq #12,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45b5c: 4e75 rts <== NOT EXECUTED !_Attributes_Is_simple_binary_semaphore( the_semaphore->attribute_set ) ) { _Thread_Enable_dispatch(); return RTEMS_RESOURCE_IN_USE; } _CORE_mutex_Flush( 45b5e: 4878 0004 pea 4 <== NOT EXECUTED 45b62: 42a7 clrl %sp@- <== NOT EXECUTED 45b64: 486a 0014 pea %a2@(20) <== NOT EXECUTED 45b68: 4eb9 0004 685c jsr 4685c <_CORE_mutex_Flush> <== NOT EXECUTED 45b6e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED SEMAPHORE_MP_OBJECT_WAS_DELETED, CORE_SEMAPHORE_WAS_DELETED ); } _Objects_Close( &_Semaphore_Information, &the_semaphore->Object ); 45b74: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45b76: 4879 0005 9bb0 pea 59bb0 <_Semaphore_Information> <== NOT EXECUTED 45b7c: 4eb9 0004 70f4 jsr 470f4 <_Objects_Close> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Semaphore_Free ( Semaphore_Control *the_semaphore ) { _Objects_Free( &_Semaphore_Information, &the_semaphore->Object ); 45b82: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45b84: 4879 0005 9bb0 pea 59bb0 <_Semaphore_Information> <== NOT EXECUTED 45b8a: 4eb9 0004 7418 jsr 47418 <_Objects_Free> <== NOT EXECUTED 0, /* Not used */ 0 /* Not used */ ); } #endif _Thread_Enable_dispatch(); 45b90: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 45b96: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45b9c: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45b9e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 45ba2: 4e5e unlk %fp <== NOT EXECUTED 45ba4: 4e75 rts <== NOT EXECUTED &the_semaphore->Core_control.mutex, SEMAPHORE_MP_OBJECT_WAS_DELETED, CORE_MUTEX_WAS_DELETED ); } else { _CORE_semaphore_Flush( 45ba6: 4878 0002 pea 2 <== NOT EXECUTED 45baa: 42a7 clrl %sp@- <== NOT EXECUTED 45bac: 486a 0014 pea %a2@(20) <== NOT EXECUTED 45bb0: 4eb9 0004 6bd0 jsr 46bd0 <_CORE_semaphore_Flush> <== NOT EXECUTED 45bb6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED SEMAPHORE_MP_OBJECT_WAS_DELETED, CORE_SEMAPHORE_WAS_DELETED ); } _Objects_Close( &_Semaphore_Information, &the_semaphore->Object ); 45bbc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45bbe: 4879 0005 9bb0 pea 59bb0 <_Semaphore_Information> <== NOT EXECUTED 45bc4: 4eb9 0004 70f4 jsr 470f4 <_Objects_Close> <== NOT EXECUTED 45bca: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45bcc: 4879 0005 9bb0 pea 59bb0 <_Semaphore_Information> <== NOT EXECUTED 45bd2: 4eb9 0004 7418 jsr 47418 <_Objects_Free> <== NOT EXECUTED 0, /* Not used */ 0 /* Not used */ ); } #endif _Thread_Enable_dispatch(); 45bd8: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 45bde: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45be4: 4280 clrl %d0 <== NOT EXECUTED 45be6: 60b6 bras 45b9e <== NOT EXECUTED 0006340c : #endif rtems_status_code rtems_semaphore_flush( rtems_id id ) { 6340c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 63410: 486e fffc pea %fp@(-4) <== NOT EXECUTED 63414: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 63418: 4879 0009 b36c pea 9b36c <_Semaphore_Information> <== NOT EXECUTED 6341e: 4eb9 0004 bdc4 jsr 4bdc4 <_Objects_Get> <== NOT EXECUTED register Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { 63424: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 6342a: 2040 moveal %d0,%a0 <== NOT EXECUTED 6342c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 63430: 6706 beqs 63438 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63432: 4e5e unlk %fp <== NOT EXECUTED { register Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { 63434: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63436: 4e75 rts <== NOT EXECUTED the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 63438: 7030 moveq #48,%d0 <== NOT EXECUTED 6343a: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 6343e: 6722 beqs 63462 <== NOT EXECUTED _CORE_mutex_Flush( 63440: 4878 0001 pea 1 <== NOT EXECUTED 63444: 42a7 clrl %sp@- <== NOT EXECUTED 63446: 4868 0014 pea %a0@(20) <== NOT EXECUTED 6344a: 4eb9 0004 af38 jsr 4af38 <_CORE_mutex_Flush> <== NOT EXECUTED 63450: 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(); 63456: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED 6345c: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6345e: 4e5e unlk %fp <== NOT EXECUTED 63460: 4e75 rts <== NOT EXECUTED &the_semaphore->Core_control.mutex, SEND_OBJECT_WAS_DELETED, CORE_MUTEX_STATUS_UNSATISFIED_NOWAIT ); } else { _CORE_semaphore_Flush( 63462: 4878 0001 pea 1 <== NOT EXECUTED 63466: 42a7 clrl %sp@- <== NOT EXECUTED 63468: 4868 0014 pea %a0@(20) <== NOT EXECUTED 6346c: 4eb9 0004 b2ac jsr 4b2ac <_CORE_semaphore_Flush> <== NOT EXECUTED 63472: 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(); 63478: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED 6347e: 4280 clrl %d0 <== NOT EXECUTED 63480: 60dc bras 6345e <== NOT EXECUTED ... 00052304 : rtems_status_code rtems_semaphore_ident( rtems_name name, uint32_t node, rtems_id *id ) { 52304: 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 ); 52308: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 5230c: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 52310: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 52314: 4879 0007 2a28 pea 72a28 <_Semaphore_Information> <== NOT EXECUTED 5231a: 4eb9 0005 5d04 jsr 55d04 <_Objects_Name_to_id_u32> <== NOT EXECUTED 52320: 41f9 0006 ba62 lea 6ba62 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; } 52326: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 5232a: 4e5e unlk %fp <== NOT EXECUTED 5232c: 4e75 rts <== NOT EXECUTED ... 00045be8 : rtems_status_code rtems_semaphore_obtain( rtems_id id, rtems_option option_set, rtems_interval timeout ) { 45be8: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED Objects_Id id, Objects_Locations *location, ISR_Level *level ) { return (Semaphore_Control *) 45bec: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45bf0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45bf4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45bf8: 4879 0005 9bb0 pea 59bb0 <_Semaphore_Information> <== NOT EXECUTED 45bfe: 4eb9 0004 7528 jsr 47528 <_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 ) { 45c04: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45c0a: 2040 moveal %d0,%a0 <== NOT EXECUTED 45c0c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45c10: 6706 beqs 45c18 <== NOT EXECUTED break; } return RTEMS_INVALID_ID; } 45c12: 4e5e unlk %fp <== NOT EXECUTED register Semaphore_Control *the_semaphore; Objects_Locations location; ISR_Level level; the_semaphore = _Semaphore_Get_interrupt_disable( id, &location, &level ); switch ( location ) { 45c14: 7004 moveq #4,%d0 <== NOT EXECUTED break; } return RTEMS_INVALID_ID; } 45c16: 4e75 rts <== NOT EXECUTED the_semaphore = _Semaphore_Get_interrupt_disable( id, &location, &level ); switch ( location ) { case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 45c18: 7030 moveq #48,%d0 <== NOT EXECUTED 45c1a: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 45c1e: 673c beqs 45c5c <== NOT EXECUTED _CORE_mutex_Seize( 45c20: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 45c24: 7001 moveq #1,%d0 <== NOT EXECUTED 45c26: b1ae 000c eorl %d0,%fp@(12) <== NOT EXECUTED 45c2a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 45c2e: c0ae 000c andl %fp@(12),%d0 <== NOT EXECUTED 45c32: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45c34: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45c38: 4868 0014 pea %a0@(20) <== NOT EXECUTED 45c3c: 4eb9 0004 69f2 jsr 469f2 <_CORE_mutex_Seize> <== NOT EXECUTED id, ((_Options_Is_no_wait( option_set )) ? FALSE : TRUE), timeout, level ); return _Semaphore_Translate_core_mutex_return_code( 45c42: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 45c48: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 45c4c: 4eb9 0004 5da4 jsr 45da4 <_Semaphore_Translate_core_mutex_return_code> <== NOT EXECUTED 45c52: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED break; } return RTEMS_INVALID_ID; } 45c58: 4e5e unlk %fp <== NOT EXECUTED 45c5a: 4e75 rts <== NOT EXECUTED Watchdog_Interval timeout, ISR_Level *level_p ) { Thread_Control *executing; ISR_Level level = *level_p; 45c5c: 222e fff8 movel %fp@(-8),%d1 <== NOT EXECUTED /* disabled when you get here */ executing = _Thread_Executing; 45c60: 2279 0005 9d3a moveal 59d3a <_Thread_Executing>,%a1 <== NOT EXECUTED executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL; 45c66: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED if ( the_semaphore->count != 0 ) { 45c6a: 2028 005c movel %a0@(92),%d0 <== NOT EXECUTED 45c6e: 6628 bnes 45c98 <== NOT EXECUTED the_semaphore->count -= 1; _ISR_Enable( level ); return; } if ( !wait ) { 45c70: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 45c74: 0800 0000 btst #0,%d0 <== NOT EXECUTED 45c78: 673a beqs 45cb4 <== NOT EXECUTED _ISR_Enable( level ); 45c7a: 46c1 movew %d1,%sr <== NOT EXECUTED executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT; 45c7c: 7001 moveq #1,%d0 <== NOT EXECUTED id, ((_Options_Is_no_wait( option_set )) ? FALSE : TRUE), timeout, &level ); return _Semaphore_Translate_core_semaphore_return_code( 45c7e: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 45c84: 2340 0034 movel %d0,%a1@(52) <== NOT EXECUTED 45c88: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 45c8c: 4eb9 0004 5dba jsr 45dba <_Semaphore_Translate_core_semaphore_return_code> <== NOT EXECUTED 45c92: 588f addql #4,%sp <== NOT EXECUTED break; } return RTEMS_INVALID_ID; } 45c94: 4e5e unlk %fp <== NOT EXECUTED 45c96: 4e75 rts <== NOT EXECUTED /* disabled when you get here */ executing = _Thread_Executing; executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL; if ( the_semaphore->count != 0 ) { the_semaphore->count -= 1; 45c98: 5380 subql #1,%d0 <== NOT EXECUTED 45c9a: 2140 005c movel %d0,%a0@(92) <== NOT EXECUTED _ISR_Enable( level ); 45c9e: 46c1 movew %d1,%sr <== NOT EXECUTED id, ((_Options_Is_no_wait( option_set )) ? FALSE : TRUE), timeout, &level ); return _Semaphore_Translate_core_semaphore_return_code( 45ca0: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 45ca6: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 45caa: 4eb9 0004 5dba jsr 45dba <_Semaphore_Translate_core_semaphore_return_code> <== NOT EXECUTED 45cb0: 588f addql #4,%sp <== NOT EXECUTED 45cb2: 60e0 bras 45c94 <== NOT EXECUTED 45cb4: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 45cba: 5280 addql #1,%d0 <== NOT EXECUTED 45cbc: 23c0 0005 9c7c movel %d0,59c7c <_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; 45cc2: 7001 moveq #1,%d0 <== NOT EXECUTED 45cc4: 2140 0044 movel %d0,%a0@(68) <== NOT EXECUTED return; } _Thread_Disable_dispatch(); _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); executing->Wait.queue = &the_semaphore->Wait_queue; 45cc8: 2008 movel %a0,%d0 <== NOT EXECUTED executing->Wait.id = id; 45cca: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED return; } _Thread_Disable_dispatch(); _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); executing->Wait.queue = &the_semaphore->Wait_queue; 45cce: 0680 0000 0014 addil #20,%d0 <== NOT EXECUTED executing->Wait.id = id; 45cd4: 2348 0020 movel %a0,%a1@(32) <== NOT EXECUTED return; } _Thread_Disable_dispatch(); _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); executing->Wait.queue = &the_semaphore->Wait_queue; 45cd8: 2340 0044 movel %d0,%a1@(68) <== NOT EXECUTED executing->Wait.id = id; _ISR_Enable( level ); 45cdc: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout ); 45cde: 4879 0004 872c pea 4872c <_Thread_queue_Timeout> <== NOT EXECUTED 45ce4: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 45ce8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45cea: 4eb9 0004 836c jsr 4836c <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 45cf0: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 45cf6: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 45cfc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45d02: 2f28 0034 movel %a0@(52),%sp@- <== NOT EXECUTED 45d06: 4eb9 0004 5dba jsr 45dba <_Semaphore_Translate_core_semaphore_return_code> <== NOT EXECUTED 45d0c: 588f addql #4,%sp <== NOT EXECUTED 45d0e: 6084 bras 45c94 <== NOT EXECUTED 00045d10 : #endif rtems_status_code rtems_semaphore_release( rtems_id id ) { 45d10: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45d14: 2f02 movel %d2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get ( Objects_Id id, Objects_Locations *location ) { return (Semaphore_Control *) 45d16: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45d1a: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 45d1e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45d20: 4879 0005 9bb0 pea 59bb0 <_Semaphore_Information> <== NOT EXECUTED 45d26: 4eb9 0004 7584 jsr 47584 <_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 ) { 45d2c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45d32: 2040 moveal %d0,%a0 <== NOT EXECUTED 45d34: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45d38: 670a beqs 45d44 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45d3a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45d3e: 4e5e unlk %fp <== NOT EXECUTED Objects_Locations location; CORE_mutex_Status mutex_status; CORE_semaphore_Status semaphore_status; the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { 45d40: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45d42: 4e75 rts <== NOT EXECUTED the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { 45d44: 7030 moveq #48,%d0 <== NOT EXECUTED 45d46: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 45d4a: 662c bnes 45d78 <== NOT EXECUTED MUTEX_MP_SUPPORT ); _Thread_Enable_dispatch(); return _Semaphore_Translate_core_mutex_return_code( mutex_status ); } else { semaphore_status = _CORE_semaphore_Surrender( 45d4c: 42a7 clrl %sp@- <== NOT EXECUTED 45d4e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45d50: 4868 0014 pea %a0@(20) <== NOT EXECUTED 45d54: 4eb9 0004 6c24 jsr 46c24 <_CORE_semaphore_Surrender> <== NOT EXECUTED 45d5a: 2400 movel %d0,%d2 <== NOT EXECUTED &the_semaphore->Core_control.semaphore, id, MUTEX_MP_SUPPORT ); _Thread_Enable_dispatch(); 45d5c: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED return 45d62: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45d64: 4eb9 0004 5dba jsr 45dba <_Semaphore_Translate_core_semaphore_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45d6a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED &the_semaphore->Core_control.semaphore, id, MUTEX_MP_SUPPORT ); _Thread_Enable_dispatch(); return 45d6e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45d74: 4e5e unlk %fp <== NOT EXECUTED 45d76: 4e75 rts <== NOT EXECUTED the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { mutex_status = _CORE_mutex_Surrender( 45d78: 42a7 clrl %sp@- <== NOT EXECUTED 45d7a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45d7c: 4868 0014 pea %a0@(20) <== NOT EXECUTED 45d80: 4eb9 0004 6aa4 jsr 46aa4 <_CORE_mutex_Surrender> <== NOT EXECUTED 45d86: 2400 movel %d0,%d2 <== NOT EXECUTED &the_semaphore->Core_control.mutex, id, MUTEX_MP_SUPPORT ); _Thread_Enable_dispatch(); 45d88: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED return _Semaphore_Translate_core_mutex_return_code( mutex_status ); 45d8e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45d90: 4eb9 0004 5da4 jsr 45da4 <_Semaphore_Translate_core_mutex_return_code> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45d96: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED &the_semaphore->Core_control.mutex, id, MUTEX_MP_SUPPORT ); _Thread_Enable_dispatch(); return _Semaphore_Translate_core_mutex_return_code( mutex_status ); 45d9a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 45da0: 4e5e unlk %fp <== NOT EXECUTED 45da2: 4e75 rts 00046334 : */ void rtems_shutdown_executive( uint32_t result ) { 46334: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED if ( _System_state_Current != SYSTEM_STATE_SHUTDOWN ) { 46338: 7004 moveq #4,%d0 <== NOT EXECUTED 4633a: b0b9 0005 9e0e cmpl 59e0e <_System_state_Current>,%d0 <== NOT EXECUTED 46340: 6718 beqs 4635a <== 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 ); 46342: 4879 0005 9c48 pea 59c48 <_Thread_BSP_context> <== NOT EXECUTED 46348: 486e ffcc pea %fp@(-52) <== NOT EXECUTED 4634c: 23c0 0005 9e0e movel %d0,59e0e <_System_state_Current> <== NOT EXECUTED 46352: 4eb9 0004 9368 jsr 49368 <_CPU_Context_switch> <== NOT EXECUTED 46358: 508f addql #8,%sp <== NOT EXECUTED _System_state_Set( SYSTEM_STATE_SHUTDOWN ); _Thread_Stop_multitasking(); } } 4635a: 4e5e unlk %fp <== NOT EXECUTED 4635c: 4e75 rts <== NOT EXECUTED ... 00046a30 : RTEMS_API_Control *api; ASR_Information *asr; /* XXX normalize mode */ executing = _Thread_Executing; api = (RTEMS_API_Control*)executing->API_Extensions[ THREAD_API_RTEMS ]; 46a30: 2079 0005 bea2 moveal 5bea2 <_Thread_Executing>,%a0 <== NOT EXECUTED 46a36: 2039 0005 bde4 movel 5bde4 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED rtems_status_code rtems_signal_catch( rtems_asr_entry asr_handler, rtems_mode mode_set ) { 46a3c: 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 ]; 46a40: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED rtems_status_code rtems_signal_catch( rtems_asr_entry asr_handler, rtems_mode mode_set ) { 46a44: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 46a48: 5280 addql #1,%d0 <== NOT EXECUTED 46a4a: 23c0 0005 bde4 movel %d0,5bde4 <_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 ) ) { 46a50: 4a81 tstl %d1 <== NOT EXECUTED 46a52: 6716 beqs 46a6a <== NOT EXECUTED asr->mode_set = mode_set; asr->handler = asr_handler; 46a54: 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; 46a58: 216e 000c 000e movel %fp@(12),%a0@(14) <== NOT EXECUTED asr->handler = asr_handler; } else _ASR_Initialize( asr ); _Thread_Enable_dispatch(); 46a5e: 4eb9 0004 8dac jsr 48dac <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 46a64: 4e5e unlk %fp <== NOT EXECUTED 46a66: 4280 clrl %d0 <== NOT EXECUTED 46a68: 4e75 rts <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _ASR_Initialize ( ASR_Information *information ) { information->is_enabled = true; 46a6a: 7001 moveq #1,%d0 <== NOT EXECUTED 46a6c: 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; 46a70: 42a8 001a clrl %a0@(26) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _ASR_Initialize ( ASR_Information *information ) { information->is_enabled = true; information->handler = NULL; 46a74: 42a8 000a clrl %a0@(10) <== NOT EXECUTED information->mode_set = RTEMS_DEFAULT_MODES; 46a78: 42a8 000e clrl %a0@(14) <== NOT EXECUTED information->signals_posted = 0; 46a7c: 42a8 0012 clrl %a0@(18) <== NOT EXECUTED information->signals_pending = 0; 46a80: 42a8 0016 clrl %a0@(22) <== NOT EXECUTED asr->mode_set = mode_set; asr->handler = asr_handler; } else _ASR_Initialize( asr ); _Thread_Enable_dispatch(); 46a84: 4eb9 0004 8dac jsr 48dac <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 46a8a: 4e5e unlk %fp <== NOT EXECUTED 46a8c: 4280 clrl %d0 <== NOT EXECUTED 46a8e: 4e75 rts 00052518 : rtems_status_code rtems_signal_send( Objects_Id id, rtems_signal_set signal_set ) { 52518: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; ASR_Information *asr; if ( !signal_set ) 5251c: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 52520: 6606 bnes 52528 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52522: 4e5e unlk %fp <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; ASR_Information *asr; if ( !signal_set ) 52524: 700a moveq #10,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52526: 4e75 rts <== NOT EXECUTED ASR_Information *asr; if ( !signal_set ) return RTEMS_INVALID_NUMBER; the_thread = _Thread_Get( id, &location ); 52528: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5252c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 52530: 4eb9 0005 6418 jsr 56418 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 52536: 508f addql #8,%sp <== NOT EXECUTED ASR_Information *asr; if ( !signal_set ) return RTEMS_INVALID_NUMBER; the_thread = _Thread_Get( id, &location ); 52538: 2240 moveal %d0,%a1 <== NOT EXECUTED switch ( location ) { 5253a: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5253e: 6706 beqs 52546 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52540: 4e5e unlk %fp <== NOT EXECUTED if ( !signal_set ) return RTEMS_INVALID_NUMBER; the_thread = _Thread_Get( id, &location ); switch ( location ) { 52542: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52544: 4e75 rts <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; 52546: 2069 010c moveal %a1@(268),%a0 <== NOT EXECUTED asr = &api->Signal; if ( ! _ASR_Is_null_handler( asr->handler ) ) { 5254a: 4aa8 000a tstl %a0@(10) <== NOT EXECUTED 5254e: 6770 beqs 525c0 <== NOT EXECUTED if ( asr->is_enabled ) { 52550: 4a28 0008 tstb %a0@(8) <== NOT EXECUTED 52554: 673a beqs 52590 <== NOT EXECUTED rtems_signal_set *signal_set ) { ISR_Level _level; _ISR_Disable( _level ); 52556: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 5255c: 40c1 movew %sr,%d1 <== NOT EXECUTED 5255e: 8081 orl %d1,%d0 <== NOT EXECUTED 52560: 46c0 movew %d0,%sr <== NOT EXECUTED *signal_set |= signals; 52562: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 52566: 81a8 0012 orl %d0,%a0@(18) <== NOT EXECUTED _ISR_Enable( _level ); 5256a: 46c1 movew %d1,%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 ) ) 5256c: 2039 0007 2be6 movel 72be6 <_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; 52572: 7201 moveq #1,%d1 <== NOT EXECUTED 52574: 1341 0075 moveb %d1,%a1@(117) <== NOT EXECUTED if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) 52578: 4a80 tstl %d0 <== NOT EXECUTED 5257a: 6708 beqs 52584 <== NOT EXECUTED 5257c: b3f9 0007 2c06 cmpal 72c06 <_Thread_Executing>,%a1 <== NOT EXECUTED 52582: 672c beqs 525b0 <== NOT EXECUTED _ISR_Signals_to_thread_executing = TRUE; } else { _ASR_Post_signals( signal_set, &asr->signals_pending ); } _Thread_Enable_dispatch(); 52584: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 5258a: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5258c: 4e5e unlk %fp <== NOT EXECUTED 5258e: 4e75 rts <== NOT EXECUTED rtems_signal_set *signal_set ) { ISR_Level _level; _ISR_Disable( _level ); 52590: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 52596: 40c0 movew %sr,%d0 <== NOT EXECUTED 52598: 8280 orl %d0,%d1 <== NOT EXECUTED 5259a: 46c1 movew %d1,%sr <== NOT EXECUTED *signal_set |= signals; 5259c: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED 525a0: 83a8 0016 orl %d1,%a0@(22) <== NOT EXECUTED _ISR_Enable( _level ); 525a4: 46c0 movew %d0,%sr <== NOT EXECUTED if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) ) _ISR_Signals_to_thread_executing = TRUE; } else { _ASR_Post_signals( signal_set, &asr->signals_pending ); } _Thread_Enable_dispatch(); 525a6: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 525ac: 4280 clrl %d0 <== NOT EXECUTED 525ae: 60dc bras 5258c <== 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 ) ) _ISR_Signals_to_thread_executing = TRUE; 525b0: 13c1 0007 2c94 moveb %d1,72c94 <_ISR_Signals_to_thread_executing> <== NOT EXECUTED } else { _ASR_Post_signals( signal_set, &asr->signals_pending ); } _Thread_Enable_dispatch(); 525b6: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 525bc: 4280 clrl %d0 <== NOT EXECUTED 525be: 60cc bras 5258c <== NOT EXECUTED return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 525c0: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 525c6: 4e5e unlk %fp <== NOT EXECUTED _ASR_Post_signals( signal_set, &asr->signals_pending ); } _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 525c8: 700b moveq #11,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 525ca: 4e75 rts 0004473c : * rtems_stack_checker_Begin_extension */ void rtems_stack_checker_begin_extension( Thread_Control *the_thread ) { 4473c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44740: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED Stack_check_Control *the_pattern; if ( the_thread->Object.id == 0 ) /* skip system tasks */ 44744: 4aa8 0008 tstl %a0@(8) <== NOT EXECUTED 44748: 672c beqs 44776 <== NOT EXECUTED return; the_pattern = Stack_check_Get_pattern_area(&the_thread->Start.Initial_stack); *the_pattern = Stack_check_Pattern; 4474a: 2068 00c4 moveal %a0@(196),%a0 <== NOT EXECUTED 4474e: 43f9 0009 b29c lea 9b29c ,%a1 <== NOT EXECUTED 44754: 2151 0008 movel %a1@,%a0@(8) <== NOT EXECUTED 44758: 43f9 0009 b2a0 lea 9b2a0 ,%a1 <== NOT EXECUTED 4475e: 2151 000c movel %a1@,%a0@(12) <== NOT EXECUTED 44762: 43f9 0009 b2a4 lea 9b2a4 ,%a1 <== NOT EXECUTED 44768: 2151 0010 movel %a1@,%a0@(16) <== NOT EXECUTED 4476c: 43f9 0009 b2a8 lea 9b2a8 ,%a1 <== NOT EXECUTED 44772: 2151 0014 movel %a1@,%a0@(20) <== NOT EXECUTED } 44776: 4e5e unlk %fp <== NOT EXECUTED 44778: 4e75 rts 00044bd2 : */ bool rtems_stack_checker_create_extension( Thread_Control *running, Thread_Control *the_thread ) { 44bd2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44bd6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44bd8: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Stack_check_Initialize(); 44bdc: 4eb9 0004 4b56 jsr 44b56 <== NOT EXECUTED if (the_thread) 44be2: 4a8a tstl %a2 <== NOT EXECUTED 44be4: 6718 beqs 44bfe <== NOT EXECUTED Stack_check_Dope_stack(&the_thread->Start.Initial_stack); 44be6: 2f2a 00c0 movel %a2@(192),%sp@- <== NOT EXECUTED 44bea: 4878 00a5 pea a5 <== NOT EXECUTED 44bee: 2f2a 00c4 movel %a2@(196),%sp@- <== NOT EXECUTED 44bf2: 4eb9 0007 2b50 jsr 72b50 <== NOT EXECUTED 44bf8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return true; } 44bfe: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 44c02: 4e5e unlk %fp <== NOT EXECUTED 44c04: 7001 moveq #1,%d0 <== NOT EXECUTED 44c06: 4e75 rts 00044a36 : /* * Check if blown */ bool rtems_stack_checker_is_blown( void ) { Stack_Control *the_stack = &_Thread_Executing->Start.Initial_stack; 44a36: 2079 0009 b4f6 moveal 9b4f6 <_Thread_Executing>,%a0 <== NOT EXECUTED ) { void *sp = __builtin_frame_address(0); #if defined(__GNUC__) if ( sp < the_stack->area ) { 44a3c: 2268 00c4 moveal %a0@(196),%a1 <== NOT EXECUTED /* * Check if blown */ bool rtems_stack_checker_is_blown( void ) { 44a40: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44a44: 2f02 movel %d2,%sp@- <== NOT EXECUTED ) { void *sp = __builtin_frame_address(0); #if defined(__GNUC__) if ( sp < the_stack->area ) { 44a46: b3ce cmpal %fp,%a1 <== NOT EXECUTED 44a48: 6334 blss 44a7e <== NOT EXECUTED 44a4a: 4202 clrb %d2 <== NOT EXECUTED /* * The stack checker must be initialized before the pattern is there * to check. */ if ( Stack_check_Initialized ) { 44a4c: 4ab9 0008 7df4 tstl 87df4 <== NOT EXECUTED 44a52: 6640 bnes 44a94 <== NOT EXECUTED 44a54: 7001 moveq #1,%d0 <== NOT EXECUTED } /* * The Stack Pointer and the Pattern Area are OK so return false. */ if ( sp_ok && pattern_ok ) 44a56: 4a02 tstb %d2 <== NOT EXECUTED 44a58: 6704 beqs 44a5e <== NOT EXECUTED 44a5a: 4a00 tstb %d0 <== NOT EXECUTED 44a5c: 6658 bnes 44ab6 <== NOT EXECUTED return false; /* * Let's report as much as we can. */ Stack_check_report_blown_task( _Thread_Executing, pattern_ok ); 44a5e: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 44a64: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44a66: 2f39 0009 b4f6 movel 9b4f6 <_Thread_Executing>,%sp@- <== NOT EXECUTED 44a6c: 4eb9 0004 49be jsr 449be <== NOT EXECUTED 44a72: 508f addql #8,%sp <== NOT EXECUTED return true; } 44a74: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 44a78: 4e5e unlk %fp <== NOT EXECUTED return false; /* * Let's report as much as we can. */ Stack_check_report_blown_task( _Thread_Executing, pattern_ok ); 44a7a: 7001 moveq #1,%d0 <== NOT EXECUTED return true; } 44a7c: 4e75 rts <== NOT EXECUTED ) { void *sp = __builtin_frame_address(0); #if defined(__GNUC__) if ( sp < the_stack->area ) { 44a7e: 2009 movel %a1,%d0 <== NOT EXECUTED 44a80: d0a8 00c0 addl %a0@(192),%d0 <== NOT EXECUTED 44a84: b08e cmpl %fp,%d0 <== NOT EXECUTED 44a86: 54c1 scc %d1 <== NOT EXECUTED 44a88: 2401 movel %d1,%d2 <== NOT EXECUTED 44a8a: 4482 negl %d2 <== NOT EXECUTED /* * The stack checker must be initialized before the pattern is there * to check. */ if ( Stack_check_Initialized ) { 44a8c: 4ab9 0008 7df4 tstl 87df4 <== NOT EXECUTED 44a92: 67c0 beqs 44a54 <== NOT EXECUTED pattern_ok = (!memcmp( 44a94: 4878 0010 pea 10 <== NOT EXECUTED 44a98: 4879 0009 b29c pea 9b29c <== NOT EXECUTED 44a9e: 4869 0008 pea %a1@(8) <== NOT EXECUTED 44aa2: 4eb9 0007 2968 jsr 72968 <== NOT EXECUTED 44aa8: 4a80 tstl %d0 <== NOT EXECUTED 44aaa: 57c0 seq %d0 <== NOT EXECUTED 44aac: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44ab2: 4480 negl %d0 <== NOT EXECUTED 44ab4: 60a0 bras 44a56 <== NOT EXECUTED /* * Let's report as much as we can. */ Stack_check_report_blown_task( _Thread_Executing, pattern_ok ); return true; } 44ab6: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 44aba: 4e5e unlk %fp <== NOT EXECUTED } /* * The Stack Pointer and the Pattern Area are OK so return false. */ if ( sp_ok && pattern_ok ) 44abc: 4200 clrb %d0 <== NOT EXECUTED /* * Let's report as much as we can. */ Stack_check_report_blown_task( _Thread_Executing, pattern_ok ); return true; } 44abe: 4e75 rts 000449a6 : void rtems_stack_checker_report_usage( void ) { 449a6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_stack_checker_report_usage_with_plugin( NULL, printk_plugin ); 449aa: 4879 0004 77dc pea 477dc <== NOT EXECUTED 449b0: 42a7 clrl %sp@- <== NOT EXECUTED 449b2: 4eb9 0004 4942 jsr 44942 <== NOT EXECUTED 449b8: 508f addql #8,%sp <== NOT EXECUTED } 449ba: 4e5e unlk %fp <== NOT EXECUTED 449bc: 4e75 rts 00044942 : void rtems_stack_checker_report_usage_with_plugin( void *context, rtems_printk_plugin_t print ) { 44942: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44946: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44948: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4494c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4494e: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED print_context = context; print_handler = print; (*print)( context, "Stack usage by thread\n"); 44952: 4879 0008 0ce8 pea 80ce8 <== NOT EXECUTED void rtems_stack_checker_report_usage_with_plugin( void *context, rtems_printk_plugin_t print ) { print_context = context; 44958: 23c2 0008 7df8 movel %d2,87df8 <== NOT EXECUTED print_handler = print; (*print)( context, "Stack usage by thread\n"); 4495e: 2f02 movel %d2,%sp@- <== NOT EXECUTED void *context, rtems_printk_plugin_t print ) { print_context = context; print_handler = print; 44960: 23ca 0008 7dfc movel %a2,87dfc <== NOT EXECUTED (*print)( context, "Stack usage by thread\n"); 44966: 4e92 jsr %a2@ <== NOT EXECUTED (*print)( context, 44968: 4879 0008 0cff pea 80cff <== NOT EXECUTED 4496e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44970: 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 ); 44972: 4879 0004 47b0 pea 447b0 <== NOT EXECUTED 44978: 4eb9 0004 b734 jsr 4b734 <== NOT EXECUTED /* dump interrupt stack info if any */ Stack_check_Dump_threads_usage((Thread_Control *) -1); 4497e: 4878 ffff pea ffffffff <== NOT EXECUTED 44982: 4eb9 0004 47b0 jsr 447b0 <== NOT EXECUTED print_context = NULL; print_handler = NULL; } 44988: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4498c: 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; 44990: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED } 44996: 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; 44998: 42b9 0008 7df8 clrl 87df8 <== NOT EXECUTED print_handler = NULL; 4499e: 42b9 0008 7dfc clrl 87dfc <== NOT EXECUTED } 449a4: 4e75 rts 00044ac0 : */ void rtems_stack_checker_switch_extension( Thread_Control *running, Thread_Control *heir ) { 44ac0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 44ac4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44ac6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED ) { void *sp = __builtin_frame_address(0); #if defined(__GNUC__) if ( sp < the_stack->area ) { 44aca: 202a 00c4 movel %a2@(196),%d0 <== 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; 44ace: 2200 movel %d0,%d1 <== NOT EXECUTED 44ad0: 5081 addql #8,%d1 <== NOT EXECUTED ) { void *sp = __builtin_frame_address(0); #if defined(__GNUC__) if ( sp < the_stack->area ) { 44ad2: b08e cmpl %fp,%d0 <== NOT EXECUTED 44ad4: 6208 bhis 44ade <== NOT EXECUTED return false; } if ( sp > (the_stack->area + the_stack->size) ) { 44ad6: d0aa 00c0 addl %a2@(192),%d0 <== NOT EXECUTED 44ada: b08e cmpl %fp,%d0 <== NOT EXECUTED 44adc: 6438 bccs 44b16 <== 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, 44ade: 4878 0010 pea 10 <== NOT EXECUTED 44ae2: 4879 0009 b29c pea 9b29c <== NOT EXECUTED 44ae8: 2f01 movel %d1,%sp@- <== NOT EXECUTED 44aea: 4eb9 0007 2968 jsr 72968 <== NOT EXECUTED 44af0: 4a80 tstl %d0 <== NOT EXECUTED 44af2: 57c0 seq %d0 <== NOT EXECUTED (void *) Stack_check_Pattern.pattern, PATTERN_SIZE_BYTES)); if ( !sp_ok || !pattern_ok ) { Stack_check_report_blown_task( running, pattern_ok ); 44af4: 2d4a 0008 movel %a2,%fp@(8) <== 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, 44af8: 4480 negl %d0 <== NOT EXECUTED (void *) Stack_check_Pattern.pattern, PATTERN_SIZE_BYTES)); if ( !sp_ok || !pattern_ok ) { Stack_check_report_blown_task( running, pattern_ok ); } } 44afa: 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 ); 44afe: 0280 0000 00ff andil #255,%d0 <== 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, 44b04: dffc 0000 000c addal #12,%sp <== NOT EXECUTED (void *) Stack_check_Pattern.pattern, PATTERN_SIZE_BYTES)); if ( !sp_ok || !pattern_ok ) { Stack_check_report_blown_task( running, pattern_ok ); 44b0a: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED } } 44b0e: 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 ); 44b10: 4ef9 0004 49be jmp 449be <== 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, 44b16: 4878 0010 pea 10 <== NOT EXECUTED 44b1a: 4879 0009 b29c pea 9b29c <== NOT EXECUTED 44b20: 2f01 movel %d1,%sp@- <== NOT EXECUTED 44b22: 4eb9 0007 2968 jsr 72968 <== NOT EXECUTED 44b28: dffc 0000 000c addal #12,%sp <== NOT EXECUTED (void *) Stack_check_Pattern.pattern, PATTERN_SIZE_BYTES)); if ( !sp_ok || !pattern_ok ) { 44b2e: 4a80 tstl %d0 <== NOT EXECUTED 44b30: 671c beqs 44b4e <== NOT EXECUTED Stack_check_report_blown_task( running, pattern_ok ); 44b32: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED sp_ok = Stack_check_Frame_pointer_in_range( the_stack ); pattern_ok = (!memcmp( pattern, (void *) Stack_check_Pattern.pattern, PATTERN_SIZE_BYTES)); if ( !sp_ok || !pattern_ok ) { 44b36: 4200 clrb %d0 <== NOT EXECUTED Stack_check_report_blown_task( running, pattern_ok ); } } 44b38: 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 ); 44b3c: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 44b42: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED } } 44b46: 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 ); 44b48: 4ef9 0004 49be jmp 449be <== NOT EXECUTED } } 44b4e: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 44b52: 4e5e unlk %fp <== NOT EXECUTED 44b54: 4e75 rts 0004232c : const char * rtems_status_text( rtems_status_code status ) { 4232c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return rtems_assoc_name_by_local(rtems_status_assoc, status); 42330: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42334: 4879 0005 6d0c pea 56d0c <== NOT EXECUTED 4233a: 4eb9 0004 a344 jsr 4a344 <== NOT EXECUTED } 42340: 4e5e unlk %fp <== NOT EXECUTED 42342: 4e75 rts 00045dd0 : size_t stack_size, rtems_mode initial_modes, rtems_attribute attribute_set, Objects_Id *id ) { 45dd0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 45dd4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 45dd8: 242e 0014 movel %fp@(20),%d2 <== NOT EXECUTED Priority_Control core_priority; RTEMS_API_Control *api; ASR_Information *asr; if ( !id ) 45ddc: 4aae 001c tstl %fp@(28) <== NOT EXECUTED 45de0: 6700 0136 beqw 45f18 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !rtems_is_name_valid( name ) ) 45de4: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 45de8: 6700 00ca beqw 45eb4 <== NOT EXECUTED /* * Validate the RTEMS API priority and convert it to the core priority range. */ if ( !_Attributes_Is_system_task( the_attribute_set ) ) { 45dec: 202e 0018 movel %fp@(24),%d0 <== NOT EXECUTED 45df0: 4a40 tstw %d0 <== NOT EXECUTED 45df2: 6d18 blts 45e0c <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid ( rtems_task_priority the_priority ) { return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) && 45df4: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 45df8: 6700 00f8 beqw 45ef2 <== NOT EXECUTED 45dfc: 4280 clrl %d0 <== NOT EXECUTED 45dfe: 1039 0005 80f2 moveb 580f2 ,%d0 <== NOT EXECUTED 45e04: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 45e08: 6500 00e8 bcsw 45ef2 <== NOT EXECUTED */ /* * Lock the allocator mutex for protection */ _RTEMS_Lock_allocator(); 45e0c: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45e12: 4eb9 0004 678c jsr 4678c <_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 ); 45e18: 4879 0005 9bec pea 59bec <_RTEMS_tasks_Information> <== NOT EXECUTED 45e1e: 4eb9 0004 7058 jsr 47058 <_Objects_Allocate> <== NOT EXECUTED * the event of an error. */ the_thread = _RTEMS_tasks_Allocate(); if ( !the_thread ) { 45e24: 508f addql #8,%sp <== NOT EXECUTED 45e26: 2440 moveal %d0,%a2 <== NOT EXECUTED 45e28: 4a80 tstl %d0 <== NOT EXECUTED 45e2a: 6700 00d2 beqw 45efe <== NOT EXECUTED /* * Initialize the core thread for this task. */ status = _Thread_Initialize( 45e2e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45e32: 7207 moveq #7,%d1 <== NOT EXECUTED 45e34: c282 andl %d2,%d1 <== NOT EXECUTED 45e36: 2f01 movel %d1,%sp@- <== NOT EXECUTED 45e38: 7609 moveq #9,%d3 <== NOT EXECUTED 45e3a: 2202 movel %d2,%d1 <== NOT EXECUTED 45e3c: 42a7 clrl %sp@- <== NOT EXECUTED 45e3e: e6a9 lsrl %d3,%d1 <== NOT EXECUTED 45e40: 163c 0001 moveb #1,%d3 <== NOT EXECUTED 45e44: c681 andl %d1,%d3 <== NOT EXECUTED 45e46: 2002 movel %d2,%d0 <== NOT EXECUTED 45e48: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45e4a: 7201 moveq #1,%d1 <== NOT EXECUTED 45e4c: e088 lsrl #8,%d0 <== NOT EXECUTED 45e4e: b380 eorl %d1,%d0 <== NOT EXECUTED 45e50: 7601 moveq #1,%d3 <== NOT EXECUTED 45e52: c680 andl %d0,%d3 <== NOT EXECUTED 45e54: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45e56: 7001 moveq #1,%d0 <== NOT EXECUTED 45e58: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45e5c: c0ae 0018 andl %fp@(24),%d0 <== NOT EXECUTED 45e60: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45e62: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 45e66: 42a7 clrl %sp@- <== NOT EXECUTED 45e68: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45e6a: 4879 0005 9bec pea 59bec <_RTEMS_tasks_Information> <== NOT EXECUTED 45e70: 4eb9 0004 7edc jsr 47edc <_Thread_Initialize> <== NOT EXECUTED NULL, /* no budget algorithm callout */ _Modes_Get_interrupt_level(initial_modes), (Objects_Name) name ); if ( !status ) { 45e76: dffc 0000 002c addal #44,%sp <== NOT EXECUTED 45e7c: 4a00 tstb %d0 <== NOT EXECUTED 45e7e: 6740 beqs 45ec0 <== NOT EXECUTED api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; asr = &api->Signal; asr->is_enabled = _Modes_Is_asr_disabled(initial_modes) ? false : true; *id = the_thread->Object.id; 45e80: 226e 001c moveal %fp@(28),%a1 <== NOT EXECUTED } api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; asr = &api->Signal; asr->is_enabled = _Modes_Is_asr_disabled(initial_modes) ? false : true; 45e84: 720a moveq #10,%d1 <== NOT EXECUTED 45e86: 206a 010c moveal %a2@(268),%a0 <== NOT EXECUTED 45e8a: 7001 moveq #1,%d0 <== NOT EXECUTED 45e8c: e2aa lsrl %d1,%d2 <== NOT EXECUTED *id = the_thread->Object.id; 45e8e: 22aa 0008 movel %a2@(8),%a1@ <== NOT EXECUTED } api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; asr = &api->Signal; asr->is_enabled = _Modes_Is_asr_disabled(initial_modes) ? false : true; 45e92: b182 eorl %d0,%d2 <== NOT EXECUTED 45e94: c480 andl %d0,%d2 <== NOT EXECUTED 45e96: 1142 0008 moveb %d2,%a0@(8) <== NOT EXECUTED ); } #endif _RTEMS_Unlock_allocator(); 45e9a: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45ea0: 4eb9 0004 67f0 jsr 467f0 <_API_Mutex_Unlock> <== NOT EXECUTED 45ea6: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45ea8: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 45eae: 4e5e unlk %fp <== NOT EXECUTED ); } #endif _RTEMS_Unlock_allocator(); 45eb0: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 45eb2: 4e75 rts <== NOT EXECUTED 45eb4: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 45eba: 4e5e unlk %fp <== NOT EXECUTED if ( !id ) return RTEMS_INVALID_ADDRESS; if ( !rtems_is_name_valid( name ) ) 45ebc: 7003 moveq #3,%d0 <== NOT EXECUTED } #endif _RTEMS_Unlock_allocator(); return RTEMS_SUCCESSFUL; } 45ebe: 4e75 rts <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _RTEMS_tasks_Free ( Thread_Control *the_task ) { _Objects_Free( 45ec0: 2f2a 0008 movel %a2@(8),%sp@- <== NOT EXECUTED 45ec4: 4eb9 0004 749c jsr 4749c <_Objects_Get_information_id> <== NOT EXECUTED 45eca: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45ecc: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45ece: 4eb9 0004 7418 jsr 47418 <_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(); 45ed4: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45eda: 4eb9 0004 67f0 jsr 467f0 <_API_Mutex_Unlock> <== NOT EXECUTED 45ee0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } #endif _RTEMS_Unlock_allocator(); return RTEMS_SUCCESSFUL; } 45ee6: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 45eec: 4e5e unlk %fp <== 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(); 45eee: 700d moveq #13,%d0 <== NOT EXECUTED } #endif _RTEMS_Unlock_allocator(); return RTEMS_SUCCESSFUL; } 45ef0: 4e75 rts <== NOT EXECUTED 45ef2: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 45ef8: 4e5e unlk %fp <== NOT EXECUTED } #endif _RTEMS_Unlock_allocator(); return RTEMS_SUCCESSFUL; 45efa: 7013 moveq #19,%d0 <== NOT EXECUTED } 45efc: 4e75 rts <== NOT EXECUTED */ the_thread = _RTEMS_tasks_Allocate(); if ( !the_thread ) { _RTEMS_Unlock_allocator(); 45efe: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45f04: 4eb9 0004 67f0 jsr 467f0 <_API_Mutex_Unlock> <== NOT EXECUTED 45f0a: 588f addql #4,%sp <== NOT EXECUTED } #endif _RTEMS_Unlock_allocator(); return RTEMS_SUCCESSFUL; } 45f0c: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 45f12: 4e5e unlk %fp <== NOT EXECUTED */ the_thread = _RTEMS_tasks_Allocate(); if ( !the_thread ) { _RTEMS_Unlock_allocator(); 45f14: 7005 moveq #5,%d0 <== NOT EXECUTED } #endif _RTEMS_Unlock_allocator(); return RTEMS_SUCCESSFUL; } 45f16: 4e75 rts <== NOT EXECUTED 45f18: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 45f1e: 4e5e unlk %fp <== NOT EXECUTED Priority_Control core_priority; RTEMS_API_Control *api; ASR_Information *asr; if ( !id ) 45f20: 7009 moveq #9,%d0 <== NOT EXECUTED } #endif _RTEMS_Unlock_allocator(); return RTEMS_SUCCESSFUL; } 45f22: 4e75 rts 00045f24 : */ rtems_status_code rtems_task_delete( Objects_Id id ) { 45f24: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45f28: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45f2a: 2f0a movel %a2,%sp@- <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; Objects_Information *the_information; _RTEMS_Lock_allocator(); 45f2c: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45f32: 4eb9 0004 678c jsr 4678c <_API_Mutex_Lock> <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); 45f38: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45f3c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45f40: 4eb9 0004 7e30 jsr 47e30 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 45f46: dffc 0000 000c addal #12,%sp <== NOT EXECUTED Objects_Locations location; Objects_Information *the_information; _RTEMS_Lock_allocator(); the_thread = _Thread_Get( id, &location ); 45f4c: 2640 moveal %d0,%a3 <== NOT EXECUTED switch ( location ) { 45f4e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45f52: 664c bnes 45fa0 <== NOT EXECUTED case OBJECTS_LOCAL: the_information = _Objects_Get_information_id( the_thread->Object.id ); 45f54: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 45f58: 45f9 0004 749c lea 4749c <_Objects_Get_information_id>,%a2 <== NOT EXECUTED 45f5e: 4e92 jsr %a2@ <== NOT EXECUTED 0 /* Not used */ ); } #endif _Thread_Close( the_information, the_thread ); 45f60: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45f62: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45f64: 4eb9 0004 7adc jsr 47adc <_Thread_Close> <== NOT EXECUTED 45f6a: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 45f6e: 4e92 jsr %a2@ <== NOT EXECUTED 45f70: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45f72: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45f74: 4eb9 0004 7418 jsr 47418 <_Objects_Free> <== NOT EXECUTED _RTEMS_tasks_Free( the_thread ); _RTEMS_Unlock_allocator(); 45f7a: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45f80: 4eb9 0004 67f0 jsr 467f0 <_API_Mutex_Unlock> <== NOT EXECUTED _Thread_Enable_dispatch(); 45f86: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return RTEMS_INVALID_ID; } 45f8c: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 45f90: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED _Thread_Close( the_information, the_thread ); _RTEMS_tasks_Free( the_thread ); _RTEMS_Unlock_allocator(); _Thread_Enable_dispatch(); 45f94: dffc 0000 001c addal #28,%sp <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return RTEMS_INVALID_ID; } 45f9a: 4e5e unlk %fp <== NOT EXECUTED _Thread_Close( the_information, the_thread ); _RTEMS_tasks_Free( the_thread ); _RTEMS_Unlock_allocator(); _Thread_Enable_dispatch(); 45f9c: 4280 clrl %d0 <== NOT EXECUTED break; } _RTEMS_Unlock_allocator(); return RTEMS_INVALID_ID; } 45f9e: 4e75 rts <== NOT EXECUTED case OBJECTS_ERROR: break; } _RTEMS_Unlock_allocator(); 45fa0: 2f39 0005 9d32 movel 59d32 <_RTEMS_Allocator_Mutex>,%sp@- <== NOT EXECUTED 45fa6: 4eb9 0004 67f0 jsr 467f0 <_API_Mutex_Unlock> <== NOT EXECUTED return RTEMS_INVALID_ID; } 45fac: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 45fb0: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED case OBJECTS_ERROR: break; } _RTEMS_Unlock_allocator(); 45fb4: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_INVALID_ID; } 45fb6: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_ERROR: break; } _RTEMS_Unlock_allocator(); 45fb8: 7004 moveq #4,%d0 <== NOT EXECUTED return RTEMS_INVALID_ID; } 45fba: 4e75 rts 00047b54 : { register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 47b54: 2079 0005 db26 moveal 5db26 <_Configuration_Table>,%a0 <== NOT EXECUTED 47b5a: 2268 003e moveal %a0@(62),%a1 <== NOT EXECUTED rtems_status_code rtems_task_get_note( Objects_Id id, uint32_t notepad, uint32_t *note ) { 47b5e: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 47b62: 4a29 0004 tstb %a1@(4) <== NOT EXECUTED 47b66: 6762 beqs 47bca <== NOT EXECUTED return RTEMS_NOT_CONFIGURED; if ( !note ) 47b68: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 47b6c: 6700 0084 beqw 47bf2 <== 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 ) 47b70: 700f moveq #15,%d0 <== NOT EXECUTED 47b72: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 47b76: 654a bcss 47bc2 <== NOT EXECUTED /* * Optimize the most likely case to avoid the Thread_Dispatch. */ if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || 47b78: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 47b7c: 6752 beqs 47bd0 <== NOT EXECUTED 47b7e: 2079 0005 db4a moveal 5db4a <_Thread_Executing>,%a0 <== NOT EXECUTED 47b84: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED 47b88: b3e8 0008 cmpal %a0@(8),%a1 <== NOT EXECUTED 47b8c: 6748 beqs 47bd6 <== NOT EXECUTED api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; *note = api->Notepads[ notepad ]; return RTEMS_SUCCESSFUL; } the_thread = _Thread_Get( id, &location ); 47b8e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 47b92: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47b96: 4eb9 0004 9ce0 jsr 49ce0 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 47b9c: 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 ); 47b9e: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 47ba0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47ba4: 6646 bnes 47bec <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; *note = api->Notepads[ notepad ]; 47ba6: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 47baa: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED 47bae: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED 47bb2: 22b0 0c1e movel %a0@(0000001e,%d0:l:4),%a1@ <== NOT EXECUTED _Thread_Enable_dispatch(); 47bb6: 4eb9 0004 9cb8 jsr 49cb8 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47bbc: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; *note = api->Notepads[ notepad ]; _Thread_Enable_dispatch(); 47bbe: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47bc0: 4e75 rts <== NOT EXECUTED 47bc2: 4e5e unlk %fp <== 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 ) 47bc4: 103c 000a moveb #10,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47bc8: 4e75 rts <== NOT EXECUTED 47bca: 4e5e unlk %fp <== NOT EXECUTED { register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 47bcc: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47bce: 4e75 rts <== NOT EXECUTED 47bd0: 2079 0005 db4a moveal 5db4a <_Thread_Executing>,%a0 <== NOT EXECUTED */ if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; *note = api->Notepads[ notepad ]; 47bd6: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 47bda: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED 47bde: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED 47be2: 22b0 0c1e movel %a0@(0000001e,%d0:l:4),%a1@ <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47be6: 4e5e unlk %fp <== NOT EXECUTED */ if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; *note = api->Notepads[ notepad ]; 47be8: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47bea: 4e75 rts <== NOT EXECUTED 47bec: 4e5e unlk %fp <== NOT EXECUTED *note = api->Notepads[ notepad ]; return RTEMS_SUCCESSFUL; } the_thread = _Thread_Get( id, &location ); switch ( location ) { 47bee: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47bf0: 4e75 rts <== NOT EXECUTED 47bf2: 4e5e unlk %fp <== NOT EXECUTED RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) return RTEMS_NOT_CONFIGURED; if ( !note ) 47bf4: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47bf6: 4e75 rts 00045fbc : rtems_status_code rtems_task_ident( rtems_name name, uint32_t node, Objects_Id *id ) { 45fbc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45fc0: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; if ( !id ) 45fc4: 4a89 tstl %a1 <== NOT EXECUTED 45fc6: 6740 beqs 46008 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( name == OBJECTS_ID_OF_SELF ) { 45fc8: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 45fcc: 6610 bnes 45fde <== NOT EXECUTED *id = _Thread_Executing->Object.id; 45fce: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED } status = _Objects_Name_to_id_u32( &_RTEMS_tasks_Information, name, node, id ); return _Status_Object_name_errors_to_status[ status ]; } 45fd4: 4e5e unlk %fp <== NOT EXECUTED if ( !id ) return RTEMS_INVALID_ADDRESS; if ( name == OBJECTS_ID_OF_SELF ) { *id = _Thread_Executing->Object.id; 45fd6: 22a8 0008 movel %a0@(8),%a1@ <== NOT EXECUTED 45fda: 4280 clrl %d0 <== NOT EXECUTED } status = _Objects_Name_to_id_u32( &_RTEMS_tasks_Information, name, node, id ); return _Status_Object_name_errors_to_status[ status ]; } 45fdc: 4e75 rts <== NOT EXECUTED if ( name == OBJECTS_ID_OF_SELF ) { *id = _Thread_Executing->Object.id; return RTEMS_SUCCESSFUL; } status = _Objects_Name_to_id_u32( &_RTEMS_tasks_Information, name, node, id ); 45fde: 2f09 movel %a1,%sp@- <== NOT EXECUTED 45fe0: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45fe4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45fe8: 4879 0005 9bec pea 59bec <_RTEMS_tasks_Information> <== NOT EXECUTED 45fee: 4eb9 0004 771c jsr 4771c <_Objects_Name_to_id_u32> <== NOT EXECUTED return _Status_Object_name_errors_to_status[ status ]; 45ff4: 41f9 0005 6f4a lea 56f4a <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED 45ffa: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 45ffe: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } 46004: 4e5e unlk %fp <== NOT EXECUTED 46006: 4e75 rts <== NOT EXECUTED 46008: 4e5e unlk %fp <== NOT EXECUTED Objects_Id *id ) { Objects_Name_or_id_lookup_errors status; if ( !id ) 4600a: 7009 moveq #9,%d0 <== NOT EXECUTED } status = _Objects_Name_to_id_u32( &_RTEMS_tasks_Information, name, node, id ); return _Status_Object_name_errors_to_status[ status ]; } 4600c: 4e75 rts <== NOT EXECUTED ... 00046468 : */ rtems_status_code rtems_task_is_suspended( Objects_Id id ) { 46468: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 4646c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46470: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46474: 4eb9 0004 8204 jsr 48204 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 4647a: 508f addql #8,%sp <== NOT EXECUTED ) { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 4647c: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 4647e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46482: 6706 beqs 4648a <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46484: 4e5e unlk %fp <== NOT EXECUTED { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); switch ( location ) { 46486: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46488: 4e75 rts <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { 4648a: 7002 moveq #2,%d0 <== NOT EXECUTED 4648c: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 46490: 670c beqs 4649e <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 46492: 4eb9 0004 81dc jsr 481dc <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46498: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 4649a: 700f moveq #15,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4649c: 4e75 rts <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { _Thread_Enable_dispatch(); 4649e: 4eb9 0004 81dc jsr 481dc <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 464a4: 4e5e unlk %fp <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { _Thread_Enable_dispatch(); 464a6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 464a8: 4e75 rts <== NOT EXECUTED ... 0004ce20 : rtems_status_code rtems_task_mode( rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set ) { 4ce20: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4ce24: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED 4ce28: 2a2e 0008 movel %fp@(8),%d5 <== NOT EXECUTED 4ce2c: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED 4ce30: 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 ) 4ce34: 4a8c tstl %a4 <== NOT EXECUTED 4ce36: 6700 015c beqw 4cf94 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; executing = _Thread_Executing; 4ce3a: 2479 0005 9d3a moveal 59d3a <_Thread_Executing>,%a2 <== NOT EXECUTED api = executing->API_Extensions[ THREAD_API_RTEMS ]; 4ce40: 266a 010c moveal %a2@(268),%a3 <== NOT EXECUTED asr = &api->Signal; old_mode = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT; 4ce44: 263c 0000 0100 movel #256,%d3 <== NOT EXECUTED 4ce4a: 4a2a 0076 tstb %a2@(118) <== NOT EXECUTED 4ce4e: 6600 00f6 bnew 4cf46 <== NOT EXECUTED if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE ) 4ce52: 4aaa 007c tstl %a2@(124) <== NOT EXECUTED 4ce56: 6600 00f8 bnew 4cf50 <== NOT EXECUTED old_mode |= RTEMS_NO_TIMESLICE; else old_mode |= RTEMS_TIMESLICE; old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR; 4ce5a: 243c 0000 0400 movel #1024,%d2 <== NOT EXECUTED 4ce60: 4a2b 0008 tstb %a3@(8) <== NOT EXECUTED 4ce64: 6600 00c6 bnew 4cf2c <== NOT EXECUTED old_mode |= _ISR_Get_level(); 4ce68: 4eb9 0004 9434 jsr 49434 <_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; 4ce6e: 8480 orl %d0,%d2 <== NOT EXECUTED old_mode |= _ISR_Get_level(); *previous_mode_set = old_mode; 4ce70: 8483 orl %d3,%d2 <== NOT EXECUTED 4ce72: 2882 movel %d2,%a4@ <== NOT EXECUTED /* * These are generic thread scheduling characteristics. */ if ( mask & RTEMS_PREEMPT_MASK ) 4ce74: 0804 0008 btst #8,%d4 <== NOT EXECUTED 4ce78: 670e beqs 4ce88 <== NOT EXECUTED executing->is_preemptible = _Modes_Is_preempt(mode_set) ? TRUE : FALSE; 4ce7a: 2005 movel %d5,%d0 <== NOT EXECUTED 4ce7c: 7201 moveq #1,%d1 <== NOT EXECUTED 4ce7e: e088 lsrl #8,%d0 <== NOT EXECUTED 4ce80: b380 eorl %d1,%d0 <== NOT EXECUTED 4ce82: c081 andl %d1,%d0 <== NOT EXECUTED 4ce84: 1540 0076 moveb %d0,%a2@(118) <== NOT EXECUTED if ( mask & RTEMS_TIMESLICE_MASK ) { 4ce88: 0804 0009 btst #9,%d4 <== NOT EXECUTED 4ce8c: 6718 beqs 4cea6 <== NOT EXECUTED if ( _Modes_Is_timeslice(mode_set) ) { 4ce8e: 0805 0009 btst #9,%d5 <== NOT EXECUTED 4ce92: 6700 00d0 beqw 4cf64 <== NOT EXECUTED executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE; 4ce96: 7001 moveq #1,%d0 <== NOT EXECUTED executing->cpu_time_budget = _Thread_Ticks_per_timeslice; 4ce98: 41f9 0005 9c2c lea 59c2c <_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; 4ce9e: 2540 007c movel %d0,%a2@(124) <== NOT EXECUTED executing->cpu_time_budget = _Thread_Ticks_per_timeslice; 4cea2: 2550 0078 movel %a0@,%a2@(120) <== NOT EXECUTED /* * Set the new interrupt level */ if ( mask & RTEMS_INTERRUPT_MASK ) 4cea6: 7007 moveq #7,%d0 <== NOT EXECUTED 4cea8: c084 andl %d4,%d0 <== NOT EXECUTED 4ceaa: 6712 beqs 4cebe <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level ( Modes_Control mode_set ) { _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) ); 4ceac: 40c1 movew %sr,%d1 <== NOT EXECUTED 4ceae: 7007 moveq #7,%d0 <== NOT EXECUTED 4ceb0: c085 andl %d5,%d0 <== NOT EXECUTED 4ceb2: e188 lsll #8,%d0 <== NOT EXECUTED 4ceb4: 0281 0000 f8ff andil #63743,%d1 <== NOT EXECUTED 4ceba: 8280 orl %d0,%d1 <== NOT EXECUTED 4cebc: 46c1 movew %d1,%sr <== NOT EXECUTED */ is_asr_enabled = FALSE; needs_asr_dispatching = FALSE; if ( mask & RTEMS_ASR_MASK ) { 4cebe: 0804 000a btst #10,%d4 <== NOT EXECUTED 4cec2: 675a beqs 4cf1e <== NOT EXECUTED 4cec4: 700a moveq #10,%d0 <== NOT EXECUTED 4cec6: 2205 movel %d5,%d1 <== NOT EXECUTED 4cec8: e0a9 lsrl %d0,%d1 <== NOT EXECUTED 4ceca: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 4cece: b181 eorl %d0,%d1 <== NOT EXECUTED 4ced0: c280 andl %d0,%d1 <== NOT EXECUTED is_asr_enabled = _Modes_Is_asr_disabled( mode_set ) ? false : true; if ( is_asr_enabled != asr->is_enabled ) { 4ced2: 4280 clrl %d0 <== NOT EXECUTED 4ced4: 102b 0008 moveb %a3@(8),%d0 <== NOT EXECUTED 4ced8: b280 cmpl %d0,%d1 <== NOT EXECUTED 4ceda: 6742 beqs 4cf1e <== NOT EXECUTED asr->is_enabled = is_asr_enabled; 4cedc: 1741 0008 moveb %d1,%a3@(8) <== NOT EXECUTED ) { rtems_signal_set _signals; ISR_Level _level; _ISR_Disable( _level ); 4cee0: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4cee6: 40c1 movew %sr,%d1 <== NOT EXECUTED 4cee8: 8081 orl %d1,%d0 <== NOT EXECUTED 4ceea: 46c0 movew %d0,%sr <== NOT EXECUTED _signals = information->signals_pending; 4ceec: 202b 0016 movel %a3@(22),%d0 <== NOT EXECUTED information->signals_pending = information->signals_posted; 4cef0: 276b 0012 0016 movel %a3@(18),%a3@(22) <== NOT EXECUTED information->signals_posted = _signals; 4cef6: 2740 0012 movel %d0,%a3@(18) <== NOT EXECUTED _ISR_Enable( _level ); 4cefa: 46c1 movew %d1,%sr <== NOT EXECUTED _ASR_Swap_signals( asr ); if ( _ASR_Are_signals_pending( asr ) ) { 4cefc: 4aab 0012 tstl %a3@(18) <== NOT EXECUTED 4cf00: 671c beqs 4cf1e <== NOT EXECUTED needs_asr_dispatching = true; executing->do_post_task_switch_extension = true; 4cf02: 7401 moveq #1,%d2 <== NOT EXECUTED 4cf04: 1542 0075 moveb %d2,%a2@(117) <== NOT EXECUTED } } } if ( _System_state_Is_up(_System_state_Current) ) 4cf08: 7203 moveq #3,%d1 <== NOT EXECUTED 4cf0a: b2b9 0005 9e0e cmpl 59e0e <_System_state_Current>,%d1 <== NOT EXECUTED 4cf10: 6762 beqs 4cf74 <== NOT EXECUTED if ( _Thread_Evaluate_mode() || needs_asr_dispatching ) _Thread_Dispatch(); return RTEMS_SUCCESSFUL; } 4cf12: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4cf18: 4e5e unlk %fp <== NOT EXECUTED } } if ( _System_state_Is_up(_System_state_Current) ) if ( _Thread_Evaluate_mode() || needs_asr_dispatching ) _Thread_Dispatch(); 4cf1a: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4cf1c: 4e75 rts <== NOT EXECUTED if ( is_asr_enabled != asr->is_enabled ) { asr->is_enabled = is_asr_enabled; _ASR_Swap_signals( asr ); if ( _ASR_Are_signals_pending( asr ) ) { needs_asr_dispatching = true; executing->do_post_task_switch_extension = true; 4cf1e: 4202 clrb %d2 <== NOT EXECUTED } } } if ( _System_state_Is_up(_System_state_Current) ) 4cf20: 7203 moveq #3,%d1 <== NOT EXECUTED 4cf22: b2b9 0005 9e0e cmpl 59e0e <_System_state_Current>,%d1 <== NOT EXECUTED 4cf28: 66e8 bnes 4cf12 <== NOT EXECUTED 4cf2a: 6048 bras 4cf74 <== NOT EXECUTED old_mode |= RTEMS_NO_TIMESLICE; else old_mode |= RTEMS_TIMESLICE; old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR; old_mode |= _ISR_Get_level(); 4cf2c: 4eb9 0004 9434 jsr 49434 <_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; 4cf32: 4282 clrl %d2 <== NOT EXECUTED 4cf34: 8480 orl %d0,%d2 <== NOT EXECUTED old_mode |= _ISR_Get_level(); *previous_mode_set = old_mode; 4cf36: 8483 orl %d3,%d2 <== NOT EXECUTED 4cf38: 2882 movel %d2,%a4@ <== NOT EXECUTED /* * These are generic thread scheduling characteristics. */ if ( mask & RTEMS_PREEMPT_MASK ) 4cf3a: 0804 0008 btst #8,%d4 <== NOT EXECUTED 4cf3e: 6700 ff48 beqw 4ce88 <== NOT EXECUTED 4cf42: 6000 ff36 braw 4ce7a <== NOT EXECUTED executing = _Thread_Executing; api = executing->API_Extensions[ THREAD_API_RTEMS ]; asr = &api->Signal; old_mode = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT; 4cf46: 4283 clrl %d3 <== NOT EXECUTED if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE ) 4cf48: 4aaa 007c tstl %a2@(124) <== NOT EXECUTED 4cf4c: 6700 ff0c beqw 4ce5a <== NOT EXECUTED old_mode |= RTEMS_NO_TIMESLICE; else old_mode |= RTEMS_TIMESLICE; 4cf50: 08c3 0009 bset #9,%d3 <== NOT EXECUTED old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR; 4cf54: 243c 0000 0400 movel #1024,%d2 <== NOT EXECUTED 4cf5a: 4a2b 0008 tstb %a3@(8) <== NOT EXECUTED 4cf5e: 6700 ff08 beqw 4ce68 <== NOT EXECUTED 4cf62: 60c8 bras 4cf2c <== NOT EXECUTED /* * Set the new interrupt level */ if ( mask & RTEMS_INTERRUPT_MASK ) 4cf64: 7007 moveq #7,%d0 <== NOT EXECUTED if ( mask & RTEMS_TIMESLICE_MASK ) { if ( _Modes_Is_timeslice(mode_set) ) { executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE; executing->cpu_time_budget = _Thread_Ticks_per_timeslice; } else executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; 4cf66: 42aa 007c clrl %a2@(124) <== NOT EXECUTED /* * Set the new interrupt level */ if ( mask & RTEMS_INTERRUPT_MASK ) 4cf6a: c084 andl %d4,%d0 <== NOT EXECUTED 4cf6c: 6700 ff50 beqw 4cebe <== NOT EXECUTED 4cf70: 6000 ff3a braw 4ceac <== NOT EXECUTED } } } if ( _System_state_Is_up(_System_state_Current) ) if ( _Thread_Evaluate_mode() || needs_asr_dispatching ) 4cf74: 4eb9 0004 d144 jsr 4d144 <_Thread_Evaluate_mode> <== NOT EXECUTED 4cf7a: 4a00 tstb %d0 <== NOT EXECUTED 4cf7c: 6604 bnes 4cf82 <== NOT EXECUTED 4cf7e: 4a02 tstb %d2 <== NOT EXECUTED 4cf80: 6790 beqs 4cf12 <== NOT EXECUTED _Thread_Dispatch(); 4cf82: 4eb9 0004 7cac jsr 47cac <_Thread_Dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4cf88: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4cf8e: 4e5e unlk %fp <== NOT EXECUTED } } if ( _System_state_Is_up(_System_state_Current) ) if ( _Thread_Evaluate_mode() || needs_asr_dispatching ) _Thread_Dispatch(); 4cf90: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 4cf92: 4e75 rts <== NOT EXECUTED 4cf94: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4cf9a: 4e5e unlk %fp <== NOT EXECUTED ASR_Information *asr; bool is_asr_enabled = false; bool needs_asr_dispatching = false; rtems_mode old_mode; if ( !previous_mode_set ) 4cf9c: 7009 moveq #9,%d0 <== NOT EXECUTED if ( _System_state_Is_up(_System_state_Current) ) if ( _Thread_Evaluate_mode() || needs_asr_dispatching ) _Thread_Dispatch(); return RTEMS_SUCCESSFUL; } 4cf9e: 4e75 rts 00046988 : rtems_status_code rtems_task_restart( Objects_Id id, uint32_t argument ) { 46988: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 4698c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46990: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46994: 4eb9 0004 8774 jsr 48774 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 4699a: 508f addql #8,%sp <== NOT EXECUTED 4699c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 469a0: 6624 bnes 469c6 <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Thread_Restart( the_thread, NULL, argument ) ) { 469a2: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 469a6: 42a7 clrl %sp@- <== NOT EXECUTED 469a8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 469aa: 4eb9 0004 90a8 jsr 490a8 <_Thread_Restart> <== NOT EXECUTED 469b0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 469b6: 4a00 tstb %d0 <== NOT EXECUTED 469b8: 6612 bnes 469cc <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 469ba: 4eb9 0004 874c jsr 4874c <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 469c0: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Thread_Restart( the_thread, NULL, argument ) ) { _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 469c2: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 469c4: 4e75 rts <== NOT EXECUTED 469c6: 4e5e unlk %fp <== NOT EXECUTED { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); switch ( location ) { 469c8: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 469ca: 4e75 rts <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( _Thread_Restart( the_thread, NULL, argument ) ) { _Thread_Enable_dispatch(); 469cc: 4eb9 0004 874c jsr 4874c <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 469d2: 4e5e unlk %fp <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( _Thread_Restart( the_thread, NULL, argument ) ) { _Thread_Enable_dispatch(); 469d4: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 469d6: 4e75 rts 000472b0 : */ rtems_status_code rtems_task_resume( Objects_Id id ) { 472b0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 472b4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 472b8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 472bc: 4eb9 0004 9338 jsr 49338 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 472c2: 508f addql #8,%sp <== NOT EXECUTED ) { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 472c4: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 472c6: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 472ca: 6706 beqs 472d2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 472cc: 4e5e unlk %fp <== NOT EXECUTED { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); switch ( location ) { 472ce: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 472d0: 4e75 rts <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( _States_Is_suspended( the_thread->current_state ) ) { 472d2: 7002 moveq #2,%d0 <== NOT EXECUTED 472d4: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 472d8: 660c bnes 472e6 <== NOT EXECUTED _Thread_Resume( the_thread, TRUE ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 472da: 4eb9 0004 92e0 jsr 492e0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 472e0: 4e5e unlk %fp <== NOT EXECUTED if ( _States_Is_suspended( the_thread->current_state ) ) { _Thread_Resume( the_thread, TRUE ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 472e2: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 472e4: 4e75 rts <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( _States_Is_suspended( the_thread->current_state ) ) { _Thread_Resume( the_thread, TRUE ); 472e6: 4878 0001 pea 1 <== NOT EXECUTED 472ea: 2f08 movel %a0,%sp@- <== NOT EXECUTED 472ec: 4eb9 0004 9c6c jsr 49c6c <_Thread_Resume> <== NOT EXECUTED _Thread_Enable_dispatch(); 472f2: 4eb9 0004 92e0 jsr 492e0 <_Thread_Enable_dispatch> <== NOT EXECUTED 472f8: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 472fa: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: if ( _States_Is_suspended( the_thread->current_state ) ) { _Thread_Resume( the_thread, TRUE ); _Thread_Enable_dispatch(); 472fc: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 472fe: 4e75 rts 00063690 : #include #include rtems_id rtems_task_self(void) { 63690: 2079 0009 b4f6 moveal 9b4f6 <_Thread_Executing>,%a0 <== NOT EXECUTED 63696: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Thread_Executing->Object.id; } 6369a: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED 6369e: 4e5e unlk %fp <== NOT EXECUTED 636a0: 4e75 rts <== NOT EXECUTED ... 00047cf0 : { register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 47cf0: 2079 0005 db26 moveal 5db26 <_Configuration_Table>,%a0 <== NOT EXECUTED 47cf6: 2268 003e moveal %a0@(62),%a1 <== NOT EXECUTED rtems_status_code rtems_task_set_note( Objects_Id id, uint32_t notepad, uint32_t note ) { 47cfa: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 47cfe: 4a29 0004 tstb %a1@(4) <== NOT EXECUTED 47d02: 675a beqs 47d5e <== 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 ) 47d04: 700f moveq #15,%d0 <== NOT EXECUTED 47d06: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 47d0a: 654a bcss 47d56 <== NOT EXECUTED /* * Optimize the most likely case to avoid the Thread_Dispatch. */ if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || 47d0c: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 47d10: 6752 beqs 47d64 <== NOT EXECUTED 47d12: 2079 0005 db4a moveal 5db4a <_Thread_Executing>,%a0 <== NOT EXECUTED 47d18: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 47d1c: b2a8 0008 cmpl %a0@(8),%d1 <== NOT EXECUTED 47d20: 6748 beqs 47d6a <== NOT EXECUTED api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; api->Notepads[ notepad ] = note; return RTEMS_SUCCESSFUL; } the_thread = _Thread_Get( id, &location ); 47d22: 486e fffc pea %fp@(-4) <== NOT EXECUTED 47d26: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47d2a: 4eb9 0004 9ce0 jsr 49ce0 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 47d30: 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 ); 47d32: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 47d34: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47d38: 6646 bnes 47d80 <== NOT EXECUTED case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; api->Notepads[ notepad ] = note; 47d3a: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 47d3e: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 47d42: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED 47d46: 2181 0c1e movel %d1,%a0@(0000001e,%d0:l:4) <== NOT EXECUTED _Thread_Enable_dispatch(); 47d4a: 4eb9 0004 9cb8 jsr 49cb8 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47d50: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; api->Notepads[ notepad ] = note; _Thread_Enable_dispatch(); 47d52: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47d54: 4e75 rts <== NOT EXECUTED 47d56: 4e5e unlk %fp <== 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 ) 47d58: 103c 000a moveb #10,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47d5c: 4e75 rts <== NOT EXECUTED 47d5e: 4e5e unlk %fp <== NOT EXECUTED { register Thread_Control *the_thread; Objects_Locations location; RTEMS_API_Control *api; if ( !rtems_configuration_get_notepads_enabled() ) 47d60: 7016 moveq #22,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47d62: 4e75 rts <== NOT EXECUTED 47d64: 2079 0005 db4a moveal 5db4a <_Thread_Executing>,%a0 <== NOT EXECUTED */ if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; api->Notepads[ notepad ] = note; 47d6a: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 47d6e: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 47d72: 2068 010c moveal %a0@(268),%a0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47d76: 4e5e unlk %fp <== NOT EXECUTED */ if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) || _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; api->Notepads[ notepad ] = note; 47d78: 2181 0c1e movel %d1,%a0@(0000001e,%d0:l:4) <== NOT EXECUTED 47d7c: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47d7e: 4e75 rts <== NOT EXECUTED 47d80: 4e5e unlk %fp <== NOT EXECUTED api->Notepads[ notepad ] = note; return RTEMS_SUCCESSFUL; } the_thread = _Thread_Get( id, &location ); switch ( location ) { 47d82: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47d84: 4e75 rts <== NOT EXECUTED ... 0004b758 : rtems_status_code rtems_task_set_priority( Objects_Id id, rtems_task_priority new_priority, rtems_task_priority *old_priority ) { 4b758: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 4b75c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b75e: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; if ( new_priority != RTEMS_CURRENT_PRIORITY && 4b762: 670c beqs 4b770 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid ( rtems_task_priority the_priority ) { return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) && 4b764: 4280 clrl %d0 <== NOT EXECUTED 4b766: 1039 0006 5522 moveb 65522 ,%d0 <== NOT EXECUTED 4b76c: b082 cmpl %d2,%d0 <== NOT EXECUTED 4b76e: 6566 bcss 4b7d6 <== NOT EXECUTED !_RTEMS_tasks_Priority_is_valid( new_priority ) ) return RTEMS_INVALID_PRIORITY; if ( !old_priority ) 4b770: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 4b774: 676a beqs 4b7e0 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get( id, &location ); 4b776: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4b77a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4b77e: 4eb9 0004 d760 jsr 4d760 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 4b784: 508f addql #8,%sp <== NOT EXECUTED return RTEMS_INVALID_PRIORITY; if ( !old_priority ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get( id, &location ); 4b786: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 4b788: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4b78c: 663e bnes 4b7cc <== NOT EXECUTED case OBJECTS_LOCAL: /* XXX need helper to "convert" from core priority */ *old_priority = the_thread->current_priority; 4b78e: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED 4b792: 22a8 0014 movel %a0@(20),%a1@ <== NOT EXECUTED if ( new_priority != RTEMS_CURRENT_PRIORITY ) { 4b796: 4a82 tstl %d2 <== NOT EXECUTED 4b798: 6722 beqs 4b7bc <== NOT EXECUTED the_thread->real_priority = new_priority; 4b79a: 2142 0018 movel %d2,%a0@(24) <== NOT EXECUTED if ( the_thread->resource_count == 0 || 4b79e: 4aa8 001c tstl %a0@(28) <== NOT EXECUTED 4b7a2: 6706 beqs 4b7aa <== NOT EXECUTED 4b7a4: b4a8 0014 cmpl %a0@(20),%d2 <== NOT EXECUTED 4b7a8: 6412 bccs 4b7bc <== NOT EXECUTED the_thread->current_priority > new_priority ) _Thread_Change_priority( the_thread, new_priority, FALSE ); 4b7aa: 42a7 clrl %sp@- <== NOT EXECUTED 4b7ac: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4b7ae: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4b7b0: 4eb9 0004 d1e0 jsr 4d1e0 <_Thread_Change_priority> <== NOT EXECUTED 4b7b6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } _Thread_Enable_dispatch(); 4b7bc: 4eb9 0004 d708 jsr 4d708 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4b7c2: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4b7c6: 4e5e unlk %fp <== NOT EXECUTED the_thread->real_priority = new_priority; if ( the_thread->resource_count == 0 || the_thread->current_priority > new_priority ) _Thread_Change_priority( the_thread, new_priority, FALSE ); } _Thread_Enable_dispatch(); 4b7c8: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4b7ca: 4e75 rts <== NOT EXECUTED 4b7cc: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4b7d0: 4e5e unlk %fp <== NOT EXECUTED if ( !old_priority ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get( id, &location ); switch ( location ) { 4b7d2: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4b7d4: 4e75 rts <== NOT EXECUTED 4b7d6: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4b7da: 4e5e unlk %fp <== NOT EXECUTED 4b7dc: 7013 moveq #19,%d0 <== NOT EXECUTED 4b7de: 4e75 rts <== NOT EXECUTED 4b7e0: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4b7e4: 4e5e unlk %fp <== NOT EXECUTED if ( new_priority != RTEMS_CURRENT_PRIORITY && !_RTEMS_tasks_Priority_is_valid( new_priority ) ) return RTEMS_INVALID_PRIORITY; if ( !old_priority ) 4b7e6: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4b7e8: 4e75 rts <== NOT EXECUTED ... 000460a4 : rtems_status_code rtems_task_start( rtems_id id, rtems_task_entry entry_point, rtems_task_argument argument ) { 460a4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; if ( entry_point == NULL ) 460a8: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 460ac: 6752 beqs 46100 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get( id, &location ); 460ae: 486e fffc pea %fp@(-4) <== NOT EXECUTED 460b2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 460b6: 4eb9 0004 7e30 jsr 47e30 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 460bc: 508f addql #8,%sp <== NOT EXECUTED 460be: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 460c2: 662a bnes 460ee <== NOT EXECUTED case OBJECTS_LOCAL: if ( _Thread_Start( 460c4: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 460c8: 42a7 clrl %sp@- <== NOT EXECUTED 460ca: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 460ce: 42a7 clrl %sp@- <== NOT EXECUTED 460d0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 460d2: 4eb9 0004 8a6c jsr 48a6c <_Thread_Start> <== NOT EXECUTED 460d8: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 460de: 4a00 tstb %d0 <== NOT EXECUTED 460e0: 6612 bnes 460f4 <== NOT EXECUTED the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) { _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 460e2: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 460e8: 4e5e unlk %fp <== NOT EXECUTED if ( _Thread_Start( the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) { _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 460ea: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 460ec: 4e75 rts <== NOT EXECUTED 460ee: 4e5e unlk %fp <== NOT EXECUTED if ( entry_point == NULL ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get( id, &location ); switch ( location ) { 460f0: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 460f2: 4e75 rts <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: if ( _Thread_Start( the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) { _Thread_Enable_dispatch(); 460f4: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 460fa: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: if ( _Thread_Start( the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) { _Thread_Enable_dispatch(); 460fc: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 460fe: 4e75 rts <== NOT EXECUTED 46100: 4e5e unlk %fp <== NOT EXECUTED ) { register Thread_Control *the_thread; Objects_Locations location; if ( entry_point == NULL ) 46102: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46104: 4e75 rts <== NOT EXECUTED ... 00046108 : */ rtems_status_code rtems_task_suspend( Objects_Id id ) { 46108: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 4610c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46110: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46114: 4eb9 0004 7e30 jsr 47e30 <_Thread_Get> <== NOT EXECUTED switch ( location ) { 4611a: 508f addql #8,%sp <== NOT EXECUTED ) { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); 4611c: 2040 moveal %d0,%a0 <== NOT EXECUTED switch ( location ) { 4611e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 46122: 6706 beqs 4612a <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46124: 4e5e unlk %fp <== NOT EXECUTED { register Thread_Control *the_thread; Objects_Locations location; the_thread = _Thread_Get( id, &location ); switch ( location ) { 46126: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46128: 4e75 rts <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { 4612a: 7002 moveq #2,%d0 <== NOT EXECUTED 4612c: c0a8 0010 andl %a0@(16),%d0 <== NOT EXECUTED 46130: 670c beqs 4613e <== NOT EXECUTED _Thread_Suspend( the_thread ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 46132: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46138: 4e5e unlk %fp <== NOT EXECUTED if ( !_States_Is_suspended( the_thread->current_state ) ) { _Thread_Suspend( the_thread ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } _Thread_Enable_dispatch(); 4613a: 700f moveq #15,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4613c: 4e75 rts <== NOT EXECUTED the_thread = _Thread_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { _Thread_Suspend( the_thread ); 4613e: 2f08 movel %a0,%sp@- <== NOT EXECUTED 46140: 4eb9 0004 8ac8 jsr 48ac8 <_Thread_Suspend> <== NOT EXECUTED _Thread_Enable_dispatch(); 46146: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED 4614c: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4614e: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { _Thread_Suspend( the_thread ); _Thread_Enable_dispatch(); 46150: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 46152: 4e75 rts 000638c4 : rtems_status_code rtems_task_variable_add( rtems_id tid, void **ptr, void (*dtor)(void *) ) { 638c4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 638c8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 638ca: 2f0a movel %a2,%sp@- <== NOT EXECUTED 638cc: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; rtems_task_variable_t *tvp, *new; if ( !ptr ) 638d0: 4a8a tstl %a2 <== NOT EXECUTED 638d2: 6700 008e beqw 63962 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 638d6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 638da: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 638de: 4eb9 0004 c6c8 jsr 4c6c8 <_Thread_Get> <== NOT EXECUTED switch (location) { 638e4: 508f addql #8,%sp <== NOT EXECUTED rtems_task_variable_t *tvp, *new; if ( !ptr ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 638e6: 2640 moveal %d0,%a3 <== NOT EXECUTED switch (location) { 638e8: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 638ec: 6652 bnes 63940 <== NOT EXECUTED case OBJECTS_LOCAL: /* * Figure out if the variable is already in this task's list. */ tvp = the_thread->task_variables; 638ee: 206b 011c moveal %a3@(284),%a0 <== NOT EXECUTED while (tvp) { 638f2: 4a88 tstl %a0 <== NOT EXECUTED 638f4: 670c beqs 63902 <== NOT EXECUTED if (tvp->ptr == ptr) { 638f6: b5e8 0004 cmpal %a0@(4),%a2 <== NOT EXECUTED 638fa: 6728 beqs 63924 <== NOT EXECUTED tvp->dtor = dtor; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } tvp = (rtems_task_variable_t *)tvp->next; 638fc: 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) { 638fe: 4a88 tstl %a0 <== NOT EXECUTED 63900: 66f4 bnes 638f6 <== NOT EXECUTED } /* * Now allocate memory for this task variable. */ new = (rtems_task_variable_t *) 63902: 4878 0014 pea 14 <== NOT EXECUTED 63906: 4eb9 0004 db3c jsr 4db3c <_Workspace_Allocate> <== NOT EXECUTED _Workspace_Allocate(sizeof(rtems_task_variable_t)); if (new == NULL) { 6390c: 588f addql #4,%sp <== NOT EXECUTED } /* * Now allocate memory for this task variable. */ new = (rtems_task_variable_t *) 6390e: 2040 moveal %d0,%a0 <== NOT EXECUTED _Workspace_Allocate(sizeof(rtems_task_variable_t)); if (new == NULL) { 63910: 4a80 tstl %d0 <== NOT EXECUTED 63912: 673a beqs 6394e <== NOT EXECUTED } new->gval = *ptr; new->ptr = ptr; new->dtor = dtor; new->next = (struct rtems_task_variable_tt *)the_thread->task_variables; 63914: 20ab 011c movel %a3@(284),%a0@ <== NOT EXECUTED _Workspace_Allocate(sizeof(rtems_task_variable_t)); if (new == NULL) { _Thread_Enable_dispatch(); return RTEMS_NO_MEMORY; } new->gval = *ptr; 63918: 2152 0008 movel %a2@,%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; 6391c: 2740 011c movel %d0,%a3@(284) <== NOT EXECUTED if (new == NULL) { _Thread_Enable_dispatch(); return RTEMS_NO_MEMORY; } new->gval = *ptr; new->ptr = ptr; 63920: 214a 0004 movel %a2,%a0@(4) <== NOT EXECUTED new->dtor = dtor; 63924: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 63928: 2140 0010 movel %d0,%a0@(16) <== NOT EXECUTED new->next = (struct rtems_task_variable_tt *)the_thread->task_variables; the_thread->task_variables = new; _Thread_Enable_dispatch(); 6392c: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED 63932: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63934: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 63938: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 6393c: 4e5e unlk %fp <== NOT EXECUTED 6393e: 4e75 rts <== NOT EXECUTED 63940: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 63944: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 63948: 4e5e unlk %fp <== NOT EXECUTED if ( !ptr ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); switch (location) { 6394a: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6394c: 4e75 rts <== NOT EXECUTED * Now allocate memory for this task variable. */ new = (rtems_task_variable_t *) _Workspace_Allocate(sizeof(rtems_task_variable_t)); if (new == NULL) { _Thread_Enable_dispatch(); 6394e: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63954: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 63958: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 6395c: 4e5e unlk %fp <== NOT EXECUTED * Now allocate memory for this task variable. */ new = (rtems_task_variable_t *) _Workspace_Allocate(sizeof(rtems_task_variable_t)); if (new == NULL) { _Thread_Enable_dispatch(); 6395e: 701a moveq #26,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63960: 4e75 rts <== NOT EXECUTED 63962: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 63966: 266e fff8 moveal %fp@(-8),%a3 <== NOT EXECUTED 6396a: 4e5e unlk %fp <== NOT EXECUTED { Thread_Control *the_thread; Objects_Locations location; rtems_task_variable_t *tvp, *new; if ( !ptr ) 6396c: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 6396e: 4e75 rts 00063970 : rtems_status_code rtems_task_variable_delete( rtems_id tid, void **ptr ) { 63970: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 63974: 2f0a movel %a2,%sp@- <== NOT EXECUTED 63976: 2f02 movel %d2,%sp@- <== NOT EXECUTED 63978: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; rtems_task_variable_t *tvp, *prev; if ( !ptr ) 6397c: 676a beqs 639e8 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; prev = NULL; the_thread = _Thread_Get (tid, &location); 6397e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 63982: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 63986: 4eb9 0004 c6c8 jsr 4c6c8 <_Thread_Get> <== NOT EXECUTED switch (location) { 6398c: 508f addql #8,%sp <== NOT EXECUTED if ( !ptr ) return RTEMS_INVALID_ADDRESS; prev = NULL; the_thread = _Thread_Get (tid, &location); 6398e: 2440 moveal %d0,%a2 <== NOT EXECUTED switch (location) { 63990: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 63994: 663e bnes 639d4 <== NOT EXECUTED case OBJECTS_LOCAL: tvp = the_thread->task_variables; 63996: 206a 011c moveal %a2@(284),%a0 <== NOT EXECUTED while (tvp) { 6399a: 4a88 tstl %a0 <== NOT EXECUTED 6399c: 6744 beqs 639e2 <== NOT EXECUTED if (tvp->ptr == ptr) { 6399e: b4a8 0004 cmpl %a0@(4),%d2 <== NOT EXECUTED 639a2: 6752 beqs 639f6 <== NOT EXECUTED else the_thread->task_variables = (rtems_task_variable_t *)tvp->next; _RTEMS_Tasks_Invoke_task_variable_dtor( the_thread, tvp ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; 639a4: 2248 moveal %a0,%a1 <== NOT EXECUTED } prev = tvp; tvp = (rtems_task_variable_t *)tvp->next; 639a6: 2050 moveal %a0@,%a0 <== NOT EXECUTED the_thread = _Thread_Get (tid, &location); switch (location) { case OBJECTS_LOCAL: tvp = the_thread->task_variables; while (tvp) { 639a8: 4a88 tstl %a0 <== NOT EXECUTED 639aa: 6736 beqs 639e2 <== NOT EXECUTED if (tvp->ptr == ptr) { 639ac: b4a8 0004 cmpl %a0@(4),%d2 <== NOT EXECUTED 639b0: 66f2 bnes 639a4 <== NOT EXECUTED if (prev) prev->next = tvp->next; 639b2: 2290 movel %a0@,%a1@ <== NOT EXECUTED else the_thread->task_variables = (rtems_task_variable_t *)tvp->next; _RTEMS_Tasks_Invoke_task_variable_dtor( the_thread, tvp ); 639b4: 2f08 movel %a0,%sp@- <== NOT EXECUTED 639b6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 639b8: 4eb9 0006 3a8c jsr 63a8c <_RTEMS_Tasks_Invoke_task_variable_dtor> <== NOT EXECUTED _Thread_Enable_dispatch(); 639be: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED 639c4: 508f addql #8,%sp <== NOT EXECUTED 639c6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 639c8: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 639cc: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 639d0: 4e5e unlk %fp <== NOT EXECUTED 639d2: 4e75 rts <== NOT EXECUTED 639d4: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 639d8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 639dc: 4e5e unlk %fp <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; prev = NULL; the_thread = _Thread_Get (tid, &location); switch (location) { 639de: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 639e0: 4e75 rts <== NOT EXECUTED return RTEMS_SUCCESSFUL; } prev = tvp; tvp = (rtems_task_variable_t *)tvp->next; } _Thread_Enable_dispatch(); 639e2: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 639e8: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 639ec: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 639f0: 4e5e unlk %fp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } prev = tvp; tvp = (rtems_task_variable_t *)tvp->next; } _Thread_Enable_dispatch(); 639f2: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 639f4: 4e75 rts <== NOT EXECUTED while (tvp) { if (tvp->ptr == ptr) { if (prev) prev->next = tvp->next; else the_thread->task_variables = (rtems_task_variable_t *)tvp->next; 639f6: 2550 011c movel %a0@,%a2@(284) <== NOT EXECUTED _RTEMS_Tasks_Invoke_task_variable_dtor( the_thread, tvp ); 639fa: 2f08 movel %a0,%sp@- <== NOT EXECUTED 639fc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 639fe: 4eb9 0006 3a8c jsr 63a8c <_RTEMS_Tasks_Invoke_task_variable_dtor> <== NOT EXECUTED _Thread_Enable_dispatch(); 63a04: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED 63a0a: 508f addql #8,%sp <== NOT EXECUTED 63a0c: 4280 clrl %d0 <== NOT EXECUTED 63a0e: 60b8 bras 639c8 <== NOT EXECUTED 00063a10 : rtems_status_code rtems_task_variable_get( rtems_id tid, void **ptr, void **result ) { 63a10: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 63a14: 2f02 movel %d2,%sp@- <== NOT EXECUTED 63a16: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED Thread_Control *the_thread; Objects_Locations location; rtems_task_variable_t *tvp; if ( !ptr ) 63a1a: 674c beqs 63a68 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !result ) 63a1c: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 63a20: 6746 beqs 63a68 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 63a22: 486e fffc pea %fp@(-4) <== NOT EXECUTED 63a26: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 63a2a: 4eb9 0004 c6c8 jsr 4c6c8 <_Thread_Get> <== NOT EXECUTED switch (location) { 63a30: 508f addql #8,%sp <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !result ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); 63a32: 2040 moveal %d0,%a0 <== NOT EXECUTED switch (location) { 63a34: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 63a38: 6624 bnes 63a5e <== NOT EXECUTED case OBJECTS_LOCAL: /* * Figure out if the variable is in this task's list. */ tvp = the_thread->task_variables; 63a3a: 2068 011c moveal %a0@(284),%a0 <== NOT EXECUTED while (tvp) { 63a3e: 4a88 tstl %a0 <== NOT EXECUTED 63a40: 670c beqs 63a4e <== NOT EXECUTED if (tvp->ptr == ptr) { 63a42: b4a8 0004 cmpl %a0@(4),%d2 <== NOT EXECUTED 63a46: 672a beqs 63a72 <== NOT EXECUTED */ *result = tvp->tval; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } tvp = (rtems_task_variable_t *)tvp->next; 63a48: 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) { 63a4a: 4a88 tstl %a0 <== NOT EXECUTED 63a4c: 66f4 bnes 63a42 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } tvp = (rtems_task_variable_t *)tvp->next; } _Thread_Enable_dispatch(); 63a4e: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63a54: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 63a58: 4e5e unlk %fp <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } tvp = (rtems_task_variable_t *)tvp->next; } _Thread_Enable_dispatch(); 63a5a: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63a5c: 4e75 rts <== NOT EXECUTED 63a5e: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 63a62: 4e5e unlk %fp <== NOT EXECUTED if ( !result ) return RTEMS_INVALID_ADDRESS; the_thread = _Thread_Get (tid, &location); switch (location) { 63a64: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63a66: 4e75 rts <== NOT EXECUTED 63a68: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 63a6c: 4e5e unlk %fp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } tvp = (rtems_task_variable_t *)tvp->next; } _Thread_Enable_dispatch(); return RTEMS_INVALID_ADDRESS; 63a6e: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63a70: 4e75 rts <== NOT EXECUTED if (tvp->ptr == ptr) { /* * Should this return the current (i.e not the * saved) value if `tid' is the current task? */ *result = tvp->tval; 63a72: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED 63a76: 22a8 000c movel %a0@(12),%a1@ <== NOT EXECUTED _Thread_Enable_dispatch(); 63a7a: 4eb9 0004 c6a0 jsr 4c6a0 <_Thread_Enable_dispatch> <== NOT EXECUTED 63a80: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 63a82: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 63a86: 4e5e unlk %fp <== NOT EXECUTED 63a88: 4e75 rts <== NOT EXECUTED ... 00046154 : */ rtems_status_code rtems_task_wake_after( rtems_interval ticks ) { 46154: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46158: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4615e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46160: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 46164: 5280 addql #1,%d0 <== NOT EXECUTED 46166: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); if ( ticks == 0 ) { 4616c: 4a82 tstl %d2 <== NOT EXECUTED 4616e: 675a beqs 461ca <== NOT EXECUTED _Thread_Yield_processor(); } else { _Thread_Set_state( _Thread_Executing, STATES_DELAYING ); 46170: 4878 0008 pea 8 <== NOT EXECUTED 46174: 2f39 0005 9d3a movel 59d3a <_Thread_Executing>,%sp@- <== NOT EXECUTED 4617a: 4eb9 0004 87cc jsr 487cc <_Thread_Set_state> <== NOT EXECUTED _Watchdog_Initialize( 46180: 2079 0005 9d3a moveal 59d3a <_Thread_Executing>,%a0 <== NOT EXECUTED 46186: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4618a: 223c 0004 7c70 movel #294000,%d1 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 46190: 2142 0054 movel %d2,%a0@(84) <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 46194: 2140 0068 movel %d0,%a0@(104) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 46198: 2141 0064 movel %d1,%a0@(100) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4619c: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 461a0: 42a8 006c clrl %a0@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 461a4: 4868 0048 pea %a0@(72) <== NOT EXECUTED 461a8: 4879 0005 9d58 pea 59d58 <_Watchdog_Ticks_chain> <== NOT EXECUTED 461ae: 4eb9 0004 9020 jsr 49020 <_Watchdog_Insert> <== NOT EXECUTED 461b4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED _Thread_Executing->Object.id, NULL ); _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks ); } _Thread_Enable_dispatch(); 461ba: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 461c0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 461c4: 4e5e unlk %fp <== NOT EXECUTED 461c6: 4280 clrl %d0 <== NOT EXECUTED 461c8: 4e75 rts <== NOT EXECUTED rtems_interval ticks ) { _Thread_Disable_dispatch(); if ( ticks == 0 ) { _Thread_Yield_processor(); 461ca: 4eb9 0004 8c60 jsr 48c60 <_Thread_Yield_processor> <== NOT EXECUTED _Thread_Executing->Object.id, NULL ); _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks ); } _Thread_Enable_dispatch(); 461d0: 4eb9 0004 7e08 jsr 47e08 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 461d6: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 461da: 4e5e unlk %fp <== NOT EXECUTED 461dc: 4280 clrl %d0 <== NOT EXECUTED 461de: 4e75 rts 00046ee0 : */ rtems_status_code rtems_task_wake_when( rtems_time_of_day *time_buffer ) { 46ee0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46ee4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46ee6: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED Watchdog_Interval seconds; if ( !_TOD_Is_set ) 46eea: 4a39 0005 bb70 tstb 5bb70 <_TOD_Is_set> <== NOT EXECUTED 46ef0: 6700 00a6 beqw 46f98 <== NOT EXECUTED return RTEMS_NOT_DEFINED; if ( !time_buffer ) 46ef4: 4a8a tstl %a2 <== NOT EXECUTED 46ef6: 6700 00aa beqw 46fa2 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; time_buffer->ticks = 0; 46efa: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED if ( !_TOD_Validate( time_buffer ) ) 46efe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46f00: 4eb9 0004 61b8 jsr 461b8 <_TOD_Validate> <== NOT EXECUTED 46f06: 588f addql #4,%sp <== NOT EXECUTED 46f08: 4a00 tstb %d0 <== NOT EXECUTED 46f0a: 660a bnes 46f16 <== NOT EXECUTED &_Thread_Executing->Timer, seconds - _TOD_Seconds_since_epoch ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 46f0c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46f10: 4e5e unlk %fp <== NOT EXECUTED _Watchdog_Insert_seconds( &_Thread_Executing->Timer, seconds - _TOD_Seconds_since_epoch ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; 46f12: 7014 moveq #20,%d0 <== NOT EXECUTED } 46f14: 4e75 rts <== NOT EXECUTED time_buffer->ticks = 0; if ( !_TOD_Validate( time_buffer ) ) return RTEMS_INVALID_CLOCK; seconds = _TOD_To_seconds( time_buffer ); 46f16: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46f18: 4eb9 0004 6084 jsr 46084 <_TOD_To_seconds> <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 46f1e: 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 ); 46f20: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 46f22: b0b9 0005 bbee cmpl 5bbee <_TOD_Now>,%d0 <== NOT EXECUTED 46f28: 63e2 blss 46f0c <== NOT EXECUTED 46f2a: 2039 0005 bb5c movel 5bb5c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46f30: 5280 addql #1,%d0 <== NOT EXECUTED 46f32: 23c0 0005 bb5c movel %d0,5bb5c <_Thread_Dispatch_disable_level> <== NOT EXECUTED return RTEMS_INVALID_CLOCK; _Thread_Disable_dispatch(); _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME ); 46f38: 4878 0010 pea 10 <== NOT EXECUTED 46f3c: 2f39 0005 bc1a movel 5bc1a <_Thread_Executing>,%sp@- <== NOT EXECUTED 46f42: 4eb9 0004 95b4 jsr 495b4 <_Thread_Set_state> <== NOT EXECUTED _Watchdog_Initialize( 46f48: 2079 0005 bc1a moveal 5bc1a <_Thread_Executing>,%a0 <== NOT EXECUTED 46f4e: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 46f52: 2140 0068 movel %d0,%a0@(104) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 46f56: 95f9 0005 bbee subal 5bbee <_TOD_Now>,%a2 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 46f5c: 203c 0004 8a58 movel #297560,%d0 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 46f62: 214a 0054 movel %a2,%a0@(84) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 46f66: 2140 0064 movel %d0,%a0@(100) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 46f6a: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 46f6e: 42a8 006c clrl %a0@(108) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 46f72: 4868 0048 pea %a0@(72) <== NOT EXECUTED 46f76: 4879 0005 bc2c pea 5bc2c <_Watchdog_Seconds_chain> <== NOT EXECUTED 46f7c: 4eb9 0004 9e9c jsr 49e9c <_Watchdog_Insert> <== NOT EXECUTED ); _Watchdog_Insert_seconds( &_Thread_Executing->Timer, seconds - _TOD_Seconds_since_epoch ); _Thread_Enable_dispatch(); 46f82: 4eb9 0004 8bf0 jsr 48bf0 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 46f88: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED ); _Watchdog_Insert_seconds( &_Thread_Executing->Timer, seconds - _TOD_Seconds_since_epoch ); _Thread_Enable_dispatch(); 46f8c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 46f92: 4e5e unlk %fp <== NOT EXECUTED ); _Watchdog_Insert_seconds( &_Thread_Executing->Timer, seconds - _TOD_Seconds_since_epoch ); _Thread_Enable_dispatch(); 46f94: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 46f96: 4e75 rts <== NOT EXECUTED 46f98: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46f9c: 4e5e unlk %fp <== NOT EXECUTED rtems_time_of_day *time_buffer ) { Watchdog_Interval seconds; if ( !_TOD_Is_set ) 46f9e: 700b moveq #11,%d0 <== NOT EXECUTED &_Thread_Executing->Timer, seconds - _TOD_Seconds_since_epoch ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 46fa0: 4e75 rts <== NOT EXECUTED 46fa2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46fa6: 4e5e unlk %fp <== NOT EXECUTED Watchdog_Interval seconds; if ( !_TOD_Is_set ) return RTEMS_NOT_DEFINED; if ( !time_buffer ) 46fa8: 7009 moveq #9,%d0 <== NOT EXECUTED &_Thread_Executing->Timer, seconds - _TOD_Seconds_since_epoch ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 46faa: 4e75 rts 00043530 : rtems_status_code rtems_termios_bufsize ( int cbufsize, int raw_input, int raw_output ) { 43530: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_termios_cbufsize = cbufsize; 43534: 41ee 0008 lea %fp@(8),%a0 <== NOT EXECUTED 43538: 23d0 0005 8554 movel %a0@,58554 <== NOT EXECUTED rtems_termios_raw_input_size = raw_input; 4353e: 41ee 000c lea %fp@(12),%a0 <== NOT EXECUTED 43542: 23d0 0005 8558 movel %a0@,58558 <== NOT EXECUTED rtems_termios_raw_output_size = raw_output; 43548: 41ee 0010 lea %fp@(16),%a0 <== NOT EXECUTED 4354c: 23d0 0005 855c movel %a0@,5855c <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 43552: 4e5e unlk %fp <== NOT EXECUTED 43554: 4280 clrl %d0 <== NOT EXECUTED 43556: 4e75 rts 00044b74 : } } rtems_status_code rtems_termios_close (void *arg) { 44b74: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 44b78: 48d7 1c00 moveml %a2-%a4,%sp@ <== NOT EXECUTED 44b7c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED rtems_libio_open_close_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 44b80: 2052 moveal %a2@,%a0 <== NOT EXECUTED 44b82: 2668 0028 moveal %a0@(40),%a3 <== NOT EXECUTED rtems_status_code sc; sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 44b86: 42a7 clrl %sp@- <== NOT EXECUTED 44b88: 42a7 clrl %sp@- <== NOT EXECUTED 44b8a: 2f39 0005 9ba4 movel 59ba4 ,%sp@- <== NOT EXECUTED 44b90: 4eb9 0004 5be8 jsr 45be8 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 44b96: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44b9c: 4a80 tstl %d0 <== NOT EXECUTED 44b9e: 6600 0124 bnew 44cc4 <== NOT EXECUTED rtems_fatal_error_occurred (sc); if (--tty->refcount == 0) { 44ba2: 202b 0008 movel %a3@(8),%d0 <== NOT EXECUTED 44ba6: 5380 subql #1,%d0 <== NOT EXECUTED 44ba8: 2740 0008 movel %d0,%a3@(8) <== NOT EXECUTED 44bac: 6600 00aa bnew 44c58 <== NOT EXECUTED if (rtems_termios_linesw[tty->t_line].l_close != NULL) { 44bb0: 202b 00cc movel %a3@(204),%d0 <== NOT EXECUTED 44bb4: 41f9 0005 9328 lea 59328 ,%a0 <== NOT EXECUTED 44bba: e788 lsll #3,%d0 <== NOT EXECUTED 44bbc: 2070 0c04 moveal %a0@(00000004,%d0:l:4),%a0 <== NOT EXECUTED 44bc0: 4a88 tstl %a0 <== NOT EXECUTED 44bc2: 6700 0108 beqw 44ccc <== NOT EXECUTED /* * call discipline-specific close */ sc = rtems_termios_linesw[tty->t_line].l_close(tty); 44bc6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44bc8: 4e90 jsr %a0@ <== NOT EXECUTED 44bca: 588f addql #4,%sp <== NOT EXECUTED * default: just flush output buffer */ drainOutput (tty); } if (tty->device.outputUsesInterrupts 44bcc: 7002 moveq #2,%d0 <== NOT EXECUTED 44bce: b0ab 00b4 cmpl %a3@(180),%d0 <== NOT EXECUTED 44bd2: 6700 00c8 beqw 44c9c <== NOT EXECUTED tty->txTaskId, TERMIOS_TX_TERMINATE_EVENT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); } if (tty->device.lastClose) 44bd6: 206b 009c moveal %a3@(156),%a0 <== NOT EXECUTED 44bda: 4a88 tstl %a0 <== NOT EXECUTED 44bdc: 6712 beqs 44bf0 <== NOT EXECUTED (*tty->device.lastClose)(tty->major, tty->minor, arg); 44bde: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44be0: 2f2b 0010 movel %a3@(16),%sp@- <== NOT EXECUTED 44be4: 2f2b 000c movel %a3@(12),%sp@- <== NOT EXECUTED 44be8: 4e90 jsr %a0@ <== NOT EXECUTED 44bea: dffc 0000 000c addal #12,%sp <== NOT EXECUTED if (tty->forw == NULL) { 44bf0: 2053 moveal %a3@,%a0 <== NOT EXECUTED 44bf2: 4a88 tstl %a0 <== NOT EXECUTED 44bf4: 6700 00ea beqw 44ce0 <== NOT EXECUTED if ( rtems_termios_ttyTail != NULL ) { rtems_termios_ttyTail->forw = NULL; } } else { tty->forw->back = tty->back; 44bf8: 216b 0004 0004 movel %a3@(4),%a0@(4) <== NOT EXECUTED } if (tty->back == NULL) { 44bfe: 206b 0004 moveal %a3@(4),%a0 <== NOT EXECUTED 44c02: 4a88 tstl %a0 <== NOT EXECUTED 44c04: 6700 00ec beqw 44cf2 <== NOT EXECUTED if ( rtems_termios_ttyHead != NULL ) { rtems_termios_ttyHead->back = NULL; } } else { tty->back->forw = tty->forw; 44c08: 2093 movel %a3@,%a0@ <== NOT EXECUTED } rtems_semaphore_delete (tty->isem); 44c0a: 2f2b 0014 movel %a3@(20),%sp@- <== NOT EXECUTED 44c0e: 45f9 0004 5b08 lea 45b08 ,%a2 <== NOT EXECUTED 44c14: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_delete (tty->osem); 44c16: 2f2b 0018 movel %a3@(24),%sp@- <== NOT EXECUTED 44c1a: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_delete (tty->rawOutBuf.Semaphore); 44c1c: 2f2b 008c movel %a3@(140),%sp@- <== NOT EXECUTED 44c20: 4e92 jsr %a2@ <== NOT EXECUTED if ((tty->device.pollRead == NULL) || 44c22: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44c28: 4aab 00a0 tstl %a3@(160) <== NOT EXECUTED 44c2c: 6742 beqs 44c70 <== NOT EXECUTED 44c2e: 7002 moveq #2,%d0 <== NOT EXECUTED 44c30: b0ab 00b4 cmpl %a3@(180),%d0 <== NOT EXECUTED 44c34: 673a beqs 44c70 <== NOT EXECUTED (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN)) rtems_semaphore_delete (tty->rawInBuf.Semaphore); free (tty->rawInBuf.theBuf); 44c36: 2f2b 0058 movel %a3@(88),%sp@- <== NOT EXECUTED 44c3a: 45f9 0004 a5fc lea 4a5fc ,%a2 <== NOT EXECUTED 44c40: 4e92 jsr %a2@ <== NOT EXECUTED free (tty->rawOutBuf.theBuf); 44c42: 2f2b 007c movel %a3@(124),%sp@- <== NOT EXECUTED 44c46: 4e92 jsr %a2@ <== NOT EXECUTED free (tty->cbuf); 44c48: 2f2b 001c movel %a3@(28),%sp@- <== NOT EXECUTED 44c4c: 4e92 jsr %a2@ <== NOT EXECUTED free (tty); 44c4e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44c50: 4e92 jsr %a2@ <== NOT EXECUTED 44c52: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED } rtems_semaphore_release (rtems_termios_ttyMutex); 44c58: 2f39 0005 9ba4 movel 59ba4 ,%sp@- <== NOT EXECUTED 44c5e: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 44c64: 4cee 1c00 fff4 moveml %fp@(-12),%a2-%a4 <== NOT EXECUTED 44c6a: 4e5e unlk %fp <== NOT EXECUTED 44c6c: 4280 clrl %d0 <== NOT EXECUTED 44c6e: 4e75 rts <== NOT EXECUTED rtems_semaphore_delete (tty->isem); rtems_semaphore_delete (tty->osem); rtems_semaphore_delete (tty->rawOutBuf.Semaphore); if ((tty->device.pollRead == NULL) || (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN)) rtems_semaphore_delete (tty->rawInBuf.Semaphore); 44c70: 2f2b 0068 movel %a3@(104),%sp@- <== NOT EXECUTED 44c74: 4e92 jsr %a2@ <== NOT EXECUTED 44c76: 588f addql #4,%sp <== NOT EXECUTED free (tty->rawInBuf.theBuf); 44c78: 2f2b 0058 movel %a3@(88),%sp@- <== NOT EXECUTED 44c7c: 45f9 0004 a5fc lea 4a5fc ,%a2 <== NOT EXECUTED 44c82: 4e92 jsr %a2@ <== NOT EXECUTED free (tty->rawOutBuf.theBuf); 44c84: 2f2b 007c movel %a3@(124),%sp@- <== NOT EXECUTED 44c88: 4e92 jsr %a2@ <== NOT EXECUTED free (tty->cbuf); 44c8a: 2f2b 001c movel %a3@(28),%sp@- <== NOT EXECUTED 44c8e: 4e92 jsr %a2@ <== NOT EXECUTED free (tty); 44c90: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44c92: 4e92 jsr %a2@ <== NOT EXECUTED 44c94: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 44c9a: 60bc bras 44c58 <== NOT EXECUTED if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { /* * send "terminate" to I/O tasks */ sc = rtems_event_send( 44c9c: 4878 0001 pea 1 <== NOT EXECUTED 44ca0: 49f9 0004 56a0 lea 456a0 ,%a4 <== NOT EXECUTED 44ca6: 2f2b 00c4 movel %a3@(196),%sp@- <== NOT EXECUTED 44caa: 4e94 jsr %a4@ <== NOT EXECUTED tty->rxTaskId, TERMIOS_RX_TERMINATE_EVENT); if (sc != RTEMS_SUCCESSFUL) 44cac: 508f addql #8,%sp <== NOT EXECUTED 44cae: 4a80 tstl %d0 <== NOT EXECUTED 44cb0: 6612 bnes 44cc4 <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_event_send( 44cb2: 4878 0001 pea 1 <== NOT EXECUTED 44cb6: 2f2b 00c8 movel %a3@(200),%sp@- <== NOT EXECUTED 44cba: 4e94 jsr %a4@ <== NOT EXECUTED tty->txTaskId, TERMIOS_TX_TERMINATE_EVENT); if (sc != RTEMS_SUCCESSFUL) 44cbc: 508f addql #8,%sp <== NOT EXECUTED 44cbe: 4a80 tstl %d0 <== NOT EXECUTED 44cc0: 6700 ff14 beqw 44bd6 <== NOT EXECUTED rtems_fatal_error_occurred (sc); 44cc4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44cc6: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED } else { /* * default: just flush output buffer */ drainOutput (tty); 44ccc: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44cce: 4eba f6b8 jsr %pc@(44388 ) <== NOT EXECUTED 44cd2: 588f addql #4,%sp <== NOT EXECUTED } if (tty->device.outputUsesInterrupts 44cd4: 7002 moveq #2,%d0 <== NOT EXECUTED 44cd6: b0ab 00b4 cmpl %a3@(180),%d0 <== NOT EXECUTED 44cda: 6600 fefa bnew 44bd6 <== NOT EXECUTED 44cde: 60bc bras 44c9c <== NOT EXECUTED rtems_fatal_error_occurred (sc); } if (tty->device.lastClose) (*tty->device.lastClose)(tty->major, tty->minor, arg); if (tty->forw == NULL) { rtems_termios_ttyTail = tty->back; 44ce0: 206b 0004 moveal %a3@(4),%a0 <== NOT EXECUTED 44ce4: 23c8 0005 9ba8 movel %a0,59ba8 <== NOT EXECUTED if ( rtems_termios_ttyTail != NULL ) { 44cea: 671a beqs 44d06 <== NOT EXECUTED rtems_termios_ttyTail->forw = NULL; 44cec: 4290 clrl %a0@ <== NOT EXECUTED 44cee: 6000 ff0e braw 44bfe <== NOT EXECUTED } else { tty->forw->back = tty->back; } if (tty->back == NULL) { rtems_termios_ttyHead = tty->forw; 44cf2: 2053 moveal %a3@,%a0 <== NOT EXECUTED 44cf4: 23c8 0005 9bac movel %a0,59bac <== NOT EXECUTED if ( rtems_termios_ttyHead != NULL ) { 44cfa: 6700 ff0e beqw 44c0a <== NOT EXECUTED rtems_termios_ttyHead->back = NULL; 44cfe: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED 44d02: 6000 ff06 braw 44c0a <== NOT EXECUTED } else { tty->forw->back = tty->back; } if (tty->back == NULL) { rtems_termios_ttyHead = tty->forw; 44d06: 42b9 0005 9bac clrl 59bac <== NOT EXECUTED 44d0c: 6000 fefc braw 44c0a <== NOT EXECUTED 00043774 : * for each transmitted character. * It returns number of characters left to transmit */ int rtems_termios_dequeue_characters (void *ttyp, int len) { 43774: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_status_code sc; /* * sum up character count already sent */ tty->t_dqlen += len; 43778: 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) { 4377c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED rtems_status_code sc; /* * sum up character count already sent */ tty->t_dqlen += len; 43780: d1a8 0090 addl %d0,%a0@(144) <== NOT EXECUTED if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { 43784: 7002 moveq #2,%d0 <== NOT EXECUTED 43786: b0a8 00b4 cmpl %a0@(180),%d0 <== NOT EXECUTED 4378a: 672a beqs 437b6 <== NOT EXECUTED TERMIOS_TX_START_EVENT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); return 0; /* nothing to output in IRQ... */ } else if (tty->t_line == PPPDISC ) { 4378c: 7005 moveq #5,%d0 <== NOT EXECUTED 4378e: b0a8 00cc cmpl %a0@(204),%d0 <== NOT EXECUTED 43792: 6616 bnes 437aa <== NOT EXECUTED /* * call any line discipline start function */ if (rtems_termios_linesw[tty->t_line].l_start != NULL) { 43794: 2279 0005 93dc moveal 593dc ,%a1 <== NOT EXECUTED 4379a: 4a89 tstl %a1 <== NOT EXECUTED 4379c: 6706 beqs 437a4 <== NOT EXECUTED rtems_termios_linesw[tty->t_line].l_start(tty); 4379e: 2f08 movel %a0,%sp@- <== NOT EXECUTED 437a0: 4e91 jsr %a1@ <== NOT EXECUTED 437a2: 588f addql #4,%sp <== NOT EXECUTED return 0; /* nothing to output in IRQ... */ } else { return rtems_termios_refill_transmitter(tty); } } 437a4: 4e5e unlk %fp <== NOT EXECUTED 437a6: 4280 clrl %d0 <== NOT EXECUTED 437a8: 4e75 rts <== 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); 437aa: 2d48 0008 movel %a0,%fp@(8) <== NOT EXECUTED } } 437ae: 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); 437b0: 4ef9 0004 3574 jmp 43574 <== NOT EXECUTED if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { /* * send wake up to transmitter task */ sc = rtems_event_send(tty->txTaskId, 437b6: 4878 0002 pea 2 <== NOT EXECUTED 437ba: 2f28 00c8 movel %a0@(200),%sp@- <== NOT EXECUTED 437be: 4eb9 0004 56a0 jsr 456a0 <== NOT EXECUTED TERMIOS_TX_START_EVENT); if (sc != RTEMS_SUCCESSFUL) 437c4: 508f addql #8,%sp <== NOT EXECUTED 437c6: 4a80 tstl %d0 <== NOT EXECUTED 437c8: 67da beqs 437a4 <== NOT EXECUTED rtems_fatal_error_occurred (sc); 437ca: 2f00 movel %d0,%sp@- <== NOT EXECUTED 437cc: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED 000437d2 : * 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) { 437d2: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 437d6: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 437da: 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) { 437de: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 437e2: 47f9 0005 9328 lea 59328 ,%a3 <== NOT EXECUTED 437e8: eb88 lsll #5,%d0 <== NOT EXECUTED 437ea: 2073 0810 moveal %a3@(00000010,%d0:l),%a0 <== 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) { 437ee: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED 437f2: 262e 0010 movel %fp@(16),%d3 <== 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) { 437f6: 4a88 tstl %a0 <== NOT EXECUTED 437f8: 6774 beqs 4386e <== NOT EXECUTED while (len--) { 437fa: 4a83 tstl %d3 <== NOT EXECUTED 437fc: 6734 beqs 43832 <== NOT EXECUTED c = *buf++; rtems_termios_linesw[tty->t_line].l_rint(c,tty); 437fe: 2f0a movel %a2,%sp@- <== 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--) { 43800: 4282 clrl %d2 <== NOT EXECUTED c = *buf++; rtems_termios_linesw[tty->t_line].l_rint(c,tty); 43802: 1034 2800 moveb %a4@(00000000,%d2:l),%d0 <== NOT EXECUTED 43806: 49c0 extbl %d0 <== NOT EXECUTED 43808: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4380a: 4e90 jsr %a0@ <== NOT EXECUTED 4380c: 5282 addql #1,%d2 <== 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--) { 4380e: 508f addql #8,%sp <== NOT EXECUTED 43810: b682 cmpl %d2,%d3 <== NOT EXECUTED 43812: 671e beqs 43832 <== NOT EXECUTED 43814: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 43818: eb88 lsll #5,%d0 <== NOT EXECUTED 4381a: 2073 0810 moveal %a3@(00000010,%d0:l),%a0 <== NOT EXECUTED c = *buf++; rtems_termios_linesw[tty->t_line].l_rint(c,tty); 4381e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43820: 1034 2800 moveb %a4@(00000000,%d2:l),%d0 <== NOT EXECUTED 43824: 49c0 extbl %d0 <== NOT EXECUTED 43826: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43828: 4e90 jsr %a0@ <== NOT EXECUTED 4382a: 5282 addql #1,%d2 <== 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--) { 4382c: 508f addql #8,%sp <== NOT EXECUTED 4382e: b682 cmpl %d2,%d3 <== NOT EXECUTED 43830: 66e2 bnes 43814 <== NOT EXECUTED } /* * check to see if rcv wakeup callback was set */ if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) { 43832: 4aaa 00e4 tstl %a2@(228) <== NOT EXECUTED 43836: 6628 bnes 43860 <== NOT EXECUTED 43838: 206a 00dc moveal %a2@(220),%a0 <== NOT EXECUTED 4383c: 4a88 tstl %a0 <== NOT EXECUTED 4383e: 6720 beqs 43860 <== NOT EXECUTED (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 43840: 2f2a 00e0 movel %a2@(224),%sp@- <== NOT EXECUTED tty->tty_rcvwakeup = 1; 43844: 4287 clrl %d7 <== 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); 43846: 486a 0030 pea %a2@(48) <== NOT EXECUTED 4384a: 4e90 jsr %a0@ <== NOT EXECUTED tty->tty_rcvwakeup = 1; 4384c: 7201 moveq #1,%d1 <== NOT EXECUTED } } tty->rawInBufDropped += dropped; rtems_semaphore_release (tty->rawInBuf.Semaphore); return dropped; } 4384e: 2007 movel %d7,%d0 <== 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); tty->tty_rcvwakeup = 1; 43850: 2541 00e4 movel %d1,%a2@(228) <== NOT EXECUTED 43854: 508f addql #8,%sp <== NOT EXECUTED } } tty->rawInBufDropped += dropped; rtems_semaphore_release (tty->rawInBuf.Semaphore); return dropped; } 43856: 4cee 3cfc ffd0 moveml %fp@(-48),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4385c: 4e5e unlk %fp <== NOT EXECUTED 4385e: 4e75 rts <== NOT EXECUTED } } } tty->rawInBufDropped += dropped; rtems_semaphore_release (tty->rawInBuf.Semaphore); return dropped; 43860: 4287 clrl %d7 <== NOT EXECUTED } 43862: 2007 movel %d7,%d0 <== NOT EXECUTED 43864: 4cee 3cfc ffd0 moveml %fp@(-48),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4386a: 4e5e unlk %fp <== NOT EXECUTED 4386c: 4e75 rts <== 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, 4386e: 41ea 004a lea %a2@(74),%a0 <== NOT EXECUTED 43872: 2d48 fff8 movel %a0,%fp@(-8) <== 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); 43876: 41ea 0030 lea %a2@(48),%a0 <== NOT EXECUTED 4387a: 2d48 fffc movel %a0,%fp@(-4) <== NOT EXECUTED 4387e: 4287 clrl %d7 <== NOT EXECUTED tty->tty_rcvwakeup = 1; } return 0; } while (len--) { 43880: 5383 subql #1,%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); 43882: 4205 clrb %d5 <== NOT EXECUTED } if (flow_rcv) { /* restart output according to FL_ORCVXOF flag */ if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) { /* disable interrupts */ rtems_interrupt_disable(level); 43884: 3a7c 0700 moveaw #1792,%a5 <== NOT EXECUTED tty->tty_rcvwakeup = 1; } return 0; } while (len--) { 43888: 70ff moveq #-1,%d0 <== NOT EXECUTED 4388a: b083 cmpl %d3,%d0 <== NOT EXECUTED 4388c: 6700 00e6 beqw 43974 <== NOT EXECUTED c = *buf++; /* FIXME: implement IXANY: any character restarts output */ /* if incoming XON/XOFF controls outgoing stream: */ if (tty->flow_ctrl & FL_MDXON) { 43890: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED } return 0; } while (len--) { c = *buf++; 43894: 1c14 moveb %a4@,%d6 <== NOT EXECUTED /* FIXME: implement IXANY: any character restarts output */ /* if incoming XON/XOFF controls outgoing stream: */ if (tty->flow_ctrl & FL_MDXON) { 43896: 0800 0009 btst #9,%d0 <== NOT EXECUTED 4389a: 671c beqs 438b8 <== NOT EXECUTED /* if received char is V_STOP and V_START (both are equal value) */ if (c == tty->termios.c_cc[VSTOP]) { 4389c: 4280 clrl %d0 <== NOT EXECUTED 4389e: 102a 004a moveb %a2@(74),%d0 <== NOT EXECUTED 438a2: 1206 moveb %d6,%d1 <== NOT EXECUTED 438a4: 49c1 extbl %d1 <== NOT EXECUTED 438a6: b081 cmpl %d1,%d0 <== NOT EXECUTED 438a8: 6700 014a beqw 439f4 <== NOT EXECUTED /* stop output */ tty->flow_ctrl |= FL_ORCVXOF; } flow_rcv = true; } else if (c == tty->termios.c_cc[VSTART]) { 438ac: 4280 clrl %d0 <== NOT EXECUTED 438ae: 102a 0049 moveb %a2@(73),%d0 <== NOT EXECUTED 438b2: b081 cmpl %d1,%d0 <== NOT EXECUTED 438b4: 6700 00da beqw 43990 <== NOT EXECUTED /* restart output */ tty->flow_ctrl &= ~FL_ORCVXOF; flow_rcv = true; } } if (flow_rcv) { 438b8: 4a05 tstb %d5 <== NOT EXECUTED 438ba: 6600 00e0 bnew 4399c <== NOT EXECUTED /* reenable interrupts */ rtems_interrupt_enable(level); } } else { newTail = (tty->rawInBuf.Tail + 1) % tty->rawInBuf.Size; 438be: 202a 0060 movel %a2@(96),%d0 <== NOT EXECUTED 438c2: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED 438c6: 5280 addql #1,%d0 <== NOT EXECUTED 438c8: 4c41 0004 remul %d1,%d4,%d0 <== NOT EXECUTED /* if chars_in_buffer > highwater */ rtems_interrupt_disable(level); 438cc: 200d movel %a5,%d0 <== NOT EXECUTED 438ce: 40c1 movew %sr,%d1 <== NOT EXECUTED 438d0: 8081 orl %d1,%d0 <== NOT EXECUTED 438d2: 46c0 movew %d0,%sr <== NOT EXECUTED 438d4: 2641 moveal %d1,%a3 <== NOT EXECUTED if ((((newTail - tty->rawInBuf.Head + tty->rawInBuf.Size) 438d6: 222a 005c movel %a2@(92),%d1 <== NOT EXECUTED 438da: 202a 0064 movel %a2@(100),%d0 <== NOT EXECUTED 438de: 242a 0064 movel %a2@(100),%d2 <== NOT EXECUTED 438e2: 9081 subl %d1,%d0 <== NOT EXECUTED 438e4: d084 addl %d4,%d0 <== NOT EXECUTED 438e6: 4c42 0001 remul %d2,%d1,%d0 <== NOT EXECUTED 438ea: b2aa 00c0 cmpl %a2@(192),%d1 <== NOT EXECUTED 438ee: 633e blss 4392e <== NOT EXECUTED 438f0: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 438f4: 0800 0000 btst #0,%d0 <== NOT EXECUTED 438f8: 6634 bnes 4392e <== NOT EXECUTED % tty->rawInBuf.Size) > tty->highwater) && !(tty->flow_ctrl & FL_IREQXOF)) { /* incoming data stream should be stopped */ tty->flow_ctrl |= FL_IREQXOF; 438fa: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 438fe: 7201 moveq #1,%d1 <== NOT EXECUTED 43900: 8081 orl %d1,%d0 <== NOT EXECUTED 43902: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED if ((tty->flow_ctrl & (FL_MDXOF | FL_ISNTXOF)) 43906: 222a 00b8 movel %a2@(184),%d1 <== NOT EXECUTED 4390a: 0281 0000 0402 andil #1026,%d1 <== NOT EXECUTED 43910: 0c81 0000 0400 cmpil #1024,%d1 <== NOT EXECUTED 43916: 6700 012e beqw 43a46 <== NOT EXECUTED (*tty->device.write)(tty->minor, (void *)&(tty->termios.c_cc[VSTOP]), 1); } } else if ((tty->flow_ctrl & (FL_MDRTS | FL_IRTSOFF)) 4391a: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 4391e: 0280 0000 0104 andil #260,%d0 <== NOT EXECUTED 43924: 0c80 0000 0100 cmpil #256,%d0 <== NOT EXECUTED 4392a: 6700 0154 beqw 43a80 <== NOT EXECUTED tty->device.stopRemoteTx(tty->minor); } } } /* reenable interrupts */ rtems_interrupt_enable(level); 4392e: 200b movel %a3,%d0 <== NOT EXECUTED 43930: 46c0 movew %d0,%sr <== NOT EXECUTED if (newTail == tty->rawInBuf.Head) { 43932: 202a 005c movel %a2@(92),%d0 <== NOT EXECUTED 43936: b880 cmpl %d0,%d4 <== NOT EXECUTED 43938: 6700 00e2 beqw 43a1c <== NOT EXECUTED dropped++; } else { tty->rawInBuf.theBuf[newTail] = c; 4393c: 206a 0058 moveal %a2@(88),%a0 <== NOT EXECUTED 43940: 1186 4800 moveb %d6,%a0@(00000000,%d4:l) <== NOT EXECUTED tty->rawInBuf.Tail = newTail; 43944: 2544 0060 movel %d4,%a2@(96) <== NOT EXECUTED /* * check to see if rcv wakeup callback was set */ if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) { 43948: 4aaa 00e4 tstl %a2@(228) <== NOT EXECUTED 4394c: 661a bnes 43968 <== NOT EXECUTED 4394e: 206a 00dc moveal %a2@(220),%a0 <== NOT EXECUTED 43952: 4a88 tstl %a0 <== NOT EXECUTED 43954: 6712 beqs 43968 <== NOT EXECUTED (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 43956: 2f2a 00e0 movel %a2@(224),%sp@- <== NOT EXECUTED 4395a: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 4395e: 4e90 jsr %a0@ <== NOT EXECUTED tty->tty_rcvwakeup = 1; 43960: 7201 moveq #1,%d1 <== NOT EXECUTED 43962: 508f addql #8,%sp <== NOT EXECUTED 43964: 2541 00e4 movel %d1,%a2@(228) <== NOT EXECUTED } return 0; } while (len--) { c = *buf++; 43968: 528c addql #1,%a4 <== NOT EXECUTED tty->tty_rcvwakeup = 1; } return 0; } while (len--) { 4396a: 5383 subql #1,%d3 <== NOT EXECUTED 4396c: 70ff moveq #-1,%d0 <== NOT EXECUTED 4396e: b083 cmpl %d3,%d0 <== NOT EXECUTED 43970: 6600 ff1e bnew 43890 <== NOT EXECUTED tty->tty_rcvwakeup = 1; } } } } tty->rawInBufDropped += dropped; 43974: dfaa 0078 addl %d7,%a2@(120) <== NOT EXECUTED rtems_semaphore_release (tty->rawInBuf.Semaphore); 43978: 2f2a 0068 movel %a2@(104),%sp@- <== NOT EXECUTED 4397c: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED return dropped; } 43982: 2007 movel %d7,%d0 <== NOT EXECUTED } } } } tty->rawInBufDropped += dropped; rtems_semaphore_release (tty->rawInBuf.Semaphore); 43984: 588f addql #4,%sp <== NOT EXECUTED return dropped; } 43986: 4cee 3cfc ffd0 moveml %fp@(-48),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4398c: 4e5e unlk %fp <== NOT EXECUTED 4398e: 4e75 rts <== NOT EXECUTED flow_rcv = true; } else if (c == tty->termios.c_cc[VSTART]) { /* VSTART received */ /* restart output */ tty->flow_ctrl &= ~FL_ORCVXOF; 43990: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43994: 72ef moveq #-17,%d1 <== NOT EXECUTED 43996: c081 andl %d1,%d0 <== NOT EXECUTED 43998: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED flow_rcv = true; } } if (flow_rcv) { /* restart output according to FL_ORCVXOF flag */ if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) { 4399c: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 439a0: 7230 moveq #48,%d1 <== NOT EXECUTED 439a2: c081 andl %d1,%d0 <== NOT EXECUTED 439a4: 123c 0020 moveb #32,%d1 <== NOT EXECUTED 439a8: b280 cmpl %d0,%d1 <== NOT EXECUTED 439aa: 6706 beqs 439b2 <== NOT EXECUTED /* if chars available, call write function... */ (*tty->device.write)(tty->minor, &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail], 1); } /* reenable interrupts */ rtems_interrupt_enable(level); 439ac: 7a01 moveq #1,%d5 <== NOT EXECUTED } return 0; } while (len--) { c = *buf++; 439ae: 528c addql #1,%a4 <== NOT EXECUTED 439b0: 60b8 bras 4396a <== NOT EXECUTED } if (flow_rcv) { /* restart output according to FL_ORCVXOF flag */ if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) { /* disable interrupts */ rtems_interrupt_disable(level); 439b2: 200d movel %a5,%d0 <== NOT EXECUTED 439b4: 40c2 movew %sr,%d2 <== NOT EXECUTED 439b6: 8082 orl %d2,%d0 <== NOT EXECUTED 439b8: 46c0 movew %d0,%sr <== NOT EXECUTED tty->flow_ctrl &= ~FL_OSTOP; 439ba: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 439be: 72df moveq #-33,%d1 <== NOT EXECUTED 439c0: c081 andl %d1,%d0 <== NOT EXECUTED 439c2: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* check for chars in output buffer (or rob_state?) */ if (tty->rawOutBufState != rob_idle) { 439c6: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 439ca: 6606 bnes 439d2 <== NOT EXECUTED /* if chars available, call write function... */ (*tty->device.write)(tty->minor, &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail], 1); } /* reenable interrupts */ rtems_interrupt_enable(level); 439cc: 46c2 movew %d2,%sr <== NOT EXECUTED 439ce: 7a01 moveq #1,%d5 <== NOT EXECUTED 439d0: 60dc bras 439ae <== NOT EXECUTED rtems_interrupt_disable(level); tty->flow_ctrl &= ~FL_OSTOP; /* check for chars in output buffer (or rob_state?) */ if (tty->rawOutBufState != rob_idle) { /* if chars available, call write function... */ (*tty->device.write)(tty->minor, 439d2: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 439d6: 4878 0001 pea 1 <== NOT EXECUTED 439da: d0aa 007c addl %a2@(124),%d0 <== NOT EXECUTED 439de: 2f00 movel %d0,%sp@- <== NOT EXECUTED 439e0: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 439e4: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 439e8: 4e90 jsr %a0@ <== NOT EXECUTED 439ea: dffc 0000 000c addal #12,%sp <== NOT EXECUTED &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail], 1); } /* reenable interrupts */ rtems_interrupt_enable(level); 439f0: 46c2 movew %d2,%sr <== NOT EXECUTED 439f2: 60da bras 439ce <== NOT EXECUTED /* FIXME: implement IXANY: any character restarts output */ /* if incoming XON/XOFF controls outgoing stream: */ if (tty->flow_ctrl & FL_MDXON) { /* if received char is V_STOP and V_START (both are equal value) */ if (c == tty->termios.c_cc[VSTOP]) { if (c == tty->termios.c_cc[VSTART]) { 439f4: 4280 clrl %d0 <== NOT EXECUTED 439f6: 102a 0049 moveb %a2@(73),%d0 <== NOT EXECUTED 439fa: b081 cmpl %d1,%d0 <== NOT EXECUTED 439fc: 6726 beqs 43a24 <== NOT EXECUTED tty->flow_ctrl = tty->flow_ctrl ^ FL_ORCVXOF; } else { /* VSTOP received (other code than VSTART) */ /* stop output */ tty->flow_ctrl |= FL_ORCVXOF; 439fe: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43a02: 7210 moveq #16,%d1 <== NOT EXECUTED 43a04: 8081 orl %d1,%d0 <== NOT EXECUTED 43a06: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED flow_rcv = true; } } if (flow_rcv) { /* restart output according to FL_ORCVXOF flag */ if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) { 43a0a: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43a0e: 7230 moveq #48,%d1 <== NOT EXECUTED 43a10: c081 andl %d1,%d0 <== NOT EXECUTED 43a12: 123c 0020 moveb #32,%d1 <== NOT EXECUTED 43a16: b280 cmpl %d0,%d1 <== NOT EXECUTED 43a18: 6692 bnes 439ac <== NOT EXECUTED 43a1a: 6096 bras 439b2 <== NOT EXECUTED } /* reenable interrupts */ rtems_interrupt_enable(level); if (newTail == tty->rawInBuf.Head) { dropped++; 43a1c: 5287 addql #1,%d7 <== NOT EXECUTED } return 0; } while (len--) { c = *buf++; 43a1e: 528c addql #1,%a4 <== NOT EXECUTED 43a20: 6000 ff48 braw 4396a <== NOT EXECUTED /* if received char is V_STOP and V_START (both are equal value) */ if (c == tty->termios.c_cc[VSTOP]) { if (c == tty->termios.c_cc[VSTART]) { /* received VSTOP and VSTART==VSTOP? */ /* then toggle "stop output" status */ tty->flow_ctrl = tty->flow_ctrl ^ FL_ORCVXOF; 43a24: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43a28: 7210 moveq #16,%d1 <== NOT EXECUTED 43a2a: b380 eorl %d1,%d0 <== NOT EXECUTED 43a2c: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED flow_rcv = true; } } if (flow_rcv) { /* restart output according to FL_ORCVXOF flag */ if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) { 43a30: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43a34: 7230 moveq #48,%d1 <== NOT EXECUTED 43a36: c081 andl %d1,%d0 <== NOT EXECUTED 43a38: 123c 0020 moveb #32,%d1 <== NOT EXECUTED 43a3c: b280 cmpl %d0,%d1 <== NOT EXECUTED 43a3e: 6600 ff6c bnew 439ac <== NOT EXECUTED 43a42: 6000 ff6e braw 439b2 <== NOT EXECUTED !(tty->flow_ctrl & FL_IREQXOF)) { /* incoming data stream should be stopped */ tty->flow_ctrl |= FL_IREQXOF; if ((tty->flow_ctrl & (FL_MDXOF | FL_ISNTXOF)) == (FL_MDXOF ) ){ if ((tty->flow_ctrl & FL_OSTOP) || 43a46: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43a4a: 0800 0005 btst #5,%d0 <== NOT EXECUTED 43a4e: 6608 bnes 43a58 <== NOT EXECUTED 43a50: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 43a54: 6600 fed8 bnew 4392e <== 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, 43a58: 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; 43a5c: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED (*tty->device.write)(tty->minor, 43a60: 2f2e fff8 movel %fp@(-8),%sp@- <== NOT EXECUTED 43a64: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 43a68: 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; 43a6c: 7202 moveq #2,%d1 <== NOT EXECUTED 43a6e: 8081 orl %d1,%d0 <== NOT EXECUTED 43a70: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED (*tty->device.write)(tty->minor, 43a74: 4e90 jsr %a0@ <== NOT EXECUTED 43a76: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43a7c: 6000 feb0 braw 4392e <== NOT EXECUTED 1); } } else if ((tty->flow_ctrl & (FL_MDRTS | FL_IRTSOFF)) == (FL_MDRTS ) ) { tty->flow_ctrl |= FL_IRTSOFF; 43a80: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43a84: 7204 moveq #4,%d1 <== NOT EXECUTED /* deactivate RTS line */ if (tty->device.stopRemoteTx != NULL) { 43a86: 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; 43a8a: 8081 orl %d1,%d0 <== NOT EXECUTED 43a8c: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* deactivate RTS line */ if (tty->device.stopRemoteTx != NULL) { 43a90: 4a88 tstl %a0 <== NOT EXECUTED 43a92: 6700 fe9a beqw 4392e <== NOT EXECUTED tty->device.stopRemoteTx(tty->minor); 43a96: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43a9a: 4e90 jsr %a0@ <== NOT EXECUTED 43a9c: 588f addql #4,%sp <== NOT EXECUTED 43a9e: 6000 fe8e braw 4392e <== NOT EXECUTED 000434f0 : struct rtems_termios_tty *rtems_termios_ttyTail; rtems_id rtems_termios_ttyMutex; void rtems_termios_initialize (void) { 434f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_status_code sc; /* * Create the mutex semaphore for the tty list */ if (!rtems_termios_ttyMutex) { 434f4: 4ab9 0005 9ba4 tstl 59ba4 <== NOT EXECUTED 434fa: 6704 beqs 43500 <== NOT EXECUTED RTEMS_NO_PRIORITY, &rtems_termios_ttyMutex); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); } } 434fc: 4e5e unlk %fp <== NOT EXECUTED 434fe: 4e75 rts <== NOT EXECUTED /* * Create the mutex semaphore for the tty list */ if (!rtems_termios_ttyMutex) { sc = rtems_semaphore_create ( 43500: 4879 0005 9ba4 pea 59ba4 <== NOT EXECUTED 43506: 42a7 clrl %sp@- <== NOT EXECUTED 43508: 4878 0054 pea 54 <== NOT EXECUTED 4350c: 4878 0001 pea 1 <== NOT EXECUTED 43510: 2f3c 5452 6d69 movel #1414688105,%sp@- <== NOT EXECUTED 43516: 4eb9 0004 5920 jsr 45920 <== 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) 4351c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 43522: 4a80 tstl %d0 <== NOT EXECUTED 43524: 67d6 beqs 434fc <== NOT EXECUTED rtems_fatal_error_occurred (sc); 43526: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43528: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED ... 00044794 : } } rtems_status_code rtems_termios_ioctl (void *arg) { 44794: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 44798: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 4479c: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED rtems_libio_ioctl_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 447a0: 2054 moveal %a4@,%a0 <== NOT EXECUTED 447a2: 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); 447a6: 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; 447a8: 266c 0008 moveal %a4@(8),%a3 <== NOT EXECUTED rtems_status_code sc; args->ioctl_return = 0; 447ac: 42ac 000c clrl %a4@(12) <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 447b0: 42a7 clrl %sp@- <== NOT EXECUTED 447b2: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 447b6: 4eb9 0004 5be8 jsr 45be8 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 447bc: 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); 447c2: 2400 movel %d0,%d2 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { 447c4: 664c bnes 44812 <== NOT EXECUTED args->ioctl_return = sc; return sc; } switch (args->command) { 447c6: 202c 0004 movel %a4@(4),%d0 <== NOT EXECUTED 447ca: 7204 moveq #4,%d1 <== NOT EXECUTED 447cc: b280 cmpl %d0,%d1 <== NOT EXECUTED 447ce: 6772 beqs 44842 <== NOT EXECUTED 447d0: 6450 bccs 44822 <== NOT EXECUTED 447d2: 0c80 4004 667f cmpil #1074030207,%d0 <== NOT EXECUTED 447d8: 6700 02aa beqw 44a84 <== NOT EXECUTED 447dc: 6200 00da bhiw 448b8 <== NOT EXECUTED 447e0: 7605 moveq #5,%d3 <== NOT EXECUTED 447e2: b680 cmpl %d0,%d3 <== NOT EXECUTED 447e4: 6776 beqs 4485c <== NOT EXECUTED default: if (rtems_termios_linesw[tty->t_line].l_ioctl != NULL) { 447e6: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 447ea: eb88 lsll #5,%d0 <== NOT EXECUTED 447ec: 0680 0005 9340 addil #365376,%d0 <== NOT EXECUTED 447f2: 2240 moveal %d0,%a1 <== NOT EXECUTED 447f4: 2051 moveal %a1@,%a0 <== NOT EXECUTED 447f6: 4a88 tstl %a0 <== NOT EXECUTED 447f8: 6700 0316 beqw 44b10 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_ioctl(tty,args); 447fc: 2f0c movel %a4,%sp@- <== NOT EXECUTED 447fe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44800: 4e90 jsr %a0@ <== NOT EXECUTED 44802: 508f addql #8,%sp <== NOT EXECUTED 44804: 2400 movel %d0,%d2 <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); 44806: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 4480a: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED args->ioctl_return = sc; 44810: 588f addql #4,%sp <== NOT EXECUTED return sc; } 44812: 2002 movel %d2,%d0 <== NOT EXECUTED *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); args->ioctl_return = sc; 44814: 2942 000c movel %d2,%a4@(12) <== NOT EXECUTED return sc; } 44818: 4cee 1c0c ffe8 moveml %fp@(-24),%d2-%d3/%a2-%a4 <== NOT EXECUTED 4481e: 4e5e unlk %fp <== NOT EXECUTED 44820: 4e75 rts <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) { args->ioctl_return = sc; return sc; } switch (args->command) { 44822: 7602 moveq #2,%d3 <== NOT EXECUTED 44824: b680 cmpl %d0,%d3 <== NOT EXECUTED 44826: 6700 010a beqw 44932 <== NOT EXECUTED 4482a: 644a bccs 44876 <== NOT EXECUTED if (tty->device.setAttributes) (*tty->device.setAttributes)(tty->minor, &tty->termios); break; case RTEMS_IO_TCDRAIN: drainOutput (tty); 4482c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4482e: 4eba fb58 jsr %pc@(44388 ) <== NOT EXECUTED 44832: 588f addql #4,%sp <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); 44834: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 44838: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED args->ioctl_return = sc; 4483e: 588f addql #4,%sp <== NOT EXECUTED 44840: 60d0 bras 44812 <== NOT EXECUTED case RTEMS_IO_SNDWAKEUP: tty->tty_snd = *wakeup; break; case RTEMS_IO_RCVWAKEUP: tty->tty_rcv = *wakeup; 44842: 2013 movel %a3@,%d0 <== NOT EXECUTED 44844: 256b 0004 00e0 movel %a3@(4),%a2@(224) <== NOT EXECUTED 4484a: 2540 00dc movel %d0,%a2@(220) <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); 4484e: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 44852: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED args->ioctl_return = sc; 44858: 588f addql #4,%sp <== NOT EXECUTED 4485a: 60b6 bras 44812 <== NOT EXECUTED case RTEMS_IO_TCDRAIN: drainOutput (tty); break; case RTEMS_IO_SNDWAKEUP: tty->tty_snd = *wakeup; 4485c: 2013 movel %a3@,%d0 <== NOT EXECUTED 4485e: 256b 0004 00d8 movel %a3@(4),%a2@(216) <== NOT EXECUTED 44864: 2540 00d4 movel %d0,%a2@(212) <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); 44868: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 4486c: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED args->ioctl_return = sc; 44872: 588f addql #4,%sp <== NOT EXECUTED 44874: 609c bras 44812 <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) { args->ioctl_return = sc; return sc; } switch (args->command) { 44876: 123c 0001 moveb #1,%d1 <== NOT EXECUTED 4487a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4487c: 6600 ff68 bnew 447e6 <== NOT EXECUTED sc = RTEMS_INVALID_NUMBER; } break; case RTEMS_IO_GET_ATTRIBUTES: *(struct termios *)args->buffer = tty->termios; 44880: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 44884: 20ea 0030 movel %a2@(48),%a0@+ <== NOT EXECUTED 44888: 20ea 0034 movel %a2@(52),%a0@+ <== NOT EXECUTED 4488c: 20ea 0038 movel %a2@(56),%a0@+ <== NOT EXECUTED 44890: 20ea 003c movel %a2@(60),%a0@+ <== NOT EXECUTED 44894: 20ea 0040 movel %a2@(64),%a0@+ <== NOT EXECUTED 44898: 20ea 0044 movel %a2@(68),%a0@+ <== NOT EXECUTED 4489c: 20ea 0048 movel %a2@(72),%a0@+ <== NOT EXECUTED 448a0: 20ea 004c movel %a2@(76),%a0@+ <== NOT EXECUTED 448a4: 20aa 0050 movel %a2@(80),%a0@ <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); 448a8: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 448ac: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED args->ioctl_return = sc; 448b2: 588f addql #4,%sp <== NOT EXECUTED 448b4: 6000 ff5c braw 44812 <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) { args->ioctl_return = sc; return sc; } switch (args->command) { 448b8: 0c80 4004 741a cmpil #1074033690,%d0 <== NOT EXECUTED 448be: 675a beqs 4491a <== NOT EXECUTED 448c0: 0c80 8004 741b cmpil #-2147191781,%d0 <== NOT EXECUTED 448c6: 6600 ff1e bnew 447e6 <== NOT EXECUTED #if 1 /* FIXME */ case TIOCSETD: /* * close old line discipline */ if (rtems_termios_linesw[tty->t_line].l_close != NULL) { 448ca: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 448ce: 47f9 0005 9328 lea 59328 ,%a3 <== NOT EXECUTED 448d4: e788 lsll #3,%d0 <== NOT EXECUTED 448d6: 2073 0c04 moveal %a3@(00000004,%d0:l:4),%a0 <== NOT EXECUTED 448da: 4a88 tstl %a0 <== NOT EXECUTED 448dc: 6708 beqs 448e6 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_close(tty); 448de: 2f0a movel %a2,%sp@- <== NOT EXECUTED 448e0: 4e90 jsr %a0@ <== NOT EXECUTED 448e2: 588f addql #4,%sp <== NOT EXECUTED 448e4: 2400 movel %d0,%d2 <== NOT EXECUTED } tty->t_line=*(int*)(args->buffer); 448e6: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 448ea: 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) { 448ee: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 448f2: eb88 lsll #5,%d0 <== NOT EXECUTED 448f4: 2073 0800 moveal %a3@(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 */ 448f8: 42aa 00d0 clrl %a2@(208) <== NOT EXECUTED /* * open new line discipline */ if (rtems_termios_linesw[tty->t_line].l_open != NULL) { 448fc: 4a88 tstl %a0 <== NOT EXECUTED 448fe: 6700 ff06 beqw 44806 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_open(tty); 44902: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44904: 4e90 jsr %a0@ <== NOT EXECUTED 44906: 588f addql #4,%sp <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); 44908: 2f2a 0018 movel %a2@(24),%sp@- <== 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) { sc = rtems_termios_linesw[tty->t_line].l_open(tty); 4490c: 2400 movel %d0,%d2 <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); 4490e: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED args->ioctl_return = sc; 44914: 588f addql #4,%sp <== NOT EXECUTED 44916: 6000 fefa braw 44812 <== NOT EXECUTED if (rtems_termios_linesw[tty->t_line].l_open != NULL) { sc = rtems_termios_linesw[tty->t_line].l_open(tty); } break; case TIOCGETD: *(int*)(args->buffer)=tty->t_line; 4491a: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 4491e: 20aa 00cc movel %a2@(204),%a0@ <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); 44922: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 44926: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED args->ioctl_return = sc; 4492c: 588f addql #4,%sp <== NOT EXECUTED 4492e: 6000 fee2 braw 44812 <== NOT EXECUTED case RTEMS_IO_GET_ATTRIBUTES: *(struct termios *)args->buffer = tty->termios; break; case RTEMS_IO_SET_ATTRIBUTES: tty->termios = *(struct termios *)args->buffer; 44932: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 44936: 47ea 0030 lea %a2@(48),%a3 <== NOT EXECUTED 4493a: 2698 movel %a0@+,%a3@ <== 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) && 4493c: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED case RTEMS_IO_GET_ATTRIBUTES: *(struct termios *)args->buffer = tty->termios; break; case RTEMS_IO_SET_ATTRIBUTES: tty->termios = *(struct termios *)args->buffer; 44940: 2558 0034 movel %a0@+,%a2@(52) <== NOT EXECUTED 44944: 2558 0038 movel %a0@+,%a2@(56) <== NOT EXECUTED 44948: 2558 003c movel %a0@+,%a2@(60) <== NOT EXECUTED 4494c: 2558 0040 movel %a0@+,%a2@(64) <== NOT EXECUTED 44950: 2558 0044 movel %a0@+,%a2@(68) <== NOT EXECUTED 44954: 2558 0048 movel %a0@+,%a2@(72) <== NOT EXECUTED 44958: 2558 004c movel %a0@+,%a2@(76) <== NOT EXECUTED 4495c: 2550 0050 movel %a0@,%a2@(80) <== 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) && 44960: 0800 0009 btst #9,%d0 <== NOT EXECUTED 44964: 6746 beqs 449ac <== NOT EXECUTED 44966: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 4496a: 0280 0000 0400 andil #1024,%d0 <== NOT EXECUTED 44970: 663a bnes 449ac <== NOT EXECUTED !(tty->termios.c_iflag & IXON)) { /* clear related flags in flow_ctrl */ tty->flow_ctrl &= ~(FL_MDXON | FL_ORCVXOF); 44972: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 44976: 0280 ffff fdef andil #-529,%d0 <== NOT EXECUTED 4497c: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* has output been stopped due to received XOFF? */ if (tty->flow_ctrl & FL_OSTOP) { 44980: 222a 00b8 movel %a2@(184),%d1 <== NOT EXECUTED 44984: 0801 0005 btst #5,%d1 <== NOT EXECUTED 44988: 6722 beqs 449ac <== NOT EXECUTED /* disable interrupts */ rtems_interrupt_disable(level); 4498a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 44990: 40c3 movew %sr,%d3 <== NOT EXECUTED 44992: 8083 orl %d3,%d0 <== NOT EXECUTED 44994: 46c0 movew %d0,%sr <== NOT EXECUTED tty->flow_ctrl &= ~FL_OSTOP; 44996: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 4499a: 72df moveq #-33,%d1 <== NOT EXECUTED 4499c: c081 andl %d1,%d0 <== NOT EXECUTED 4499e: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* check for chars in output buffer (or rob_state?) */ if (tty->rawOutBufState != rob_idle) { 449a2: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 449a6: 6600 0196 bnew 44b3e <== NOT EXECUTED /* if chars available, call write function... */ (*tty->device.write)(tty->minor, &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1); } /* reenable interrupts */ rtems_interrupt_enable(level); 449aa: 46c3 movew %d3,%sr <== NOT EXECUTED } } /* check for incoming XON/XOFF flow control switched off */ if (( tty->flow_ctrl & FL_MDXOF) && 449ac: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 449b0: 0800 000a btst #10,%d0 <== NOT EXECUTED 449b4: 6724 beqs 449da <== NOT EXECUTED 449b6: 202a 0030 movel %a2@(48),%d0 <== NOT EXECUTED 449ba: 0280 0000 1000 andil #4096,%d0 <== NOT EXECUTED 449c0: 6618 bnes 449da <== NOT EXECUTED !(tty->termios.c_iflag & IXOFF)) { /* clear related flags in flow_ctrl */ tty->flow_ctrl &= ~(FL_MDXOF); 449c2: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 449c6: 0880 000a bclr #10,%d0 <== NOT EXECUTED 449ca: 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); 449ce: 222a 00b8 movel %a2@(184),%d1 <== NOT EXECUTED 449d2: 76fd moveq #-3,%d3 <== NOT EXECUTED 449d4: c283 andl %d3,%d1 <== NOT EXECUTED 449d6: 2541 00b8 movel %d1,%a2@(184) <== NOT EXECUTED } /* check for incoming RTS/CTS flow control switched off */ if (( tty->flow_ctrl & FL_MDRTS) && 449da: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 449de: 0800 0008 btst #8,%d0 <== NOT EXECUTED 449e2: 6738 beqs 44a1c <== NOT EXECUTED 449e4: 4aaa 0038 tstl %a2@(56) <== NOT EXECUTED 449e8: 6d00 0138 bltw 44b22 <== NOT EXECUTED !(tty->termios.c_cflag & CRTSCTS)) { /* clear related flags in flow_ctrl */ tty->flow_ctrl &= ~(FL_MDRTS); 449ec: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 449f0: 0880 0008 bclr #8,%d0 <== NOT EXECUTED 449f4: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* restart remote Tx, if it was stopped */ if ((tty->flow_ctrl & FL_IRTSOFF) && 449f8: 222a 00b8 movel %a2@(184),%d1 <== NOT EXECUTED 449fc: 44c1 movew %d1,%ccr <== NOT EXECUTED 449fe: 6610 bnes 44a10 <== NOT EXECUTED 44a00: 206a 00b0 moveal %a2@(176),%a0 <== NOT EXECUTED 44a04: 4a88 tstl %a0 <== NOT EXECUTED 44a06: 6708 beqs 44a10 <== NOT EXECUTED (tty->device.startRemoteTx != NULL)) { tty->device.startRemoteTx(tty->minor); 44a08: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 44a0c: 4e90 jsr %a0@ <== NOT EXECUTED 44a0e: 588f addql #4,%sp <== NOT EXECUTED } tty->flow_ctrl &= ~(FL_IRTSOFF); 44a10: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 44a14: 72fb moveq #-5,%d1 <== NOT EXECUTED 44a16: c081 andl %d1,%d0 <== NOT EXECUTED 44a18: 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) { 44a1c: 4aaa 0038 tstl %a2@(56) <== NOT EXECUTED 44a20: 6d00 0100 bltw 44b22 <== NOT EXECUTED tty->flow_ctrl |= FL_MDRTS; } /* check for incoming XON/XOF flow control switched on */ if (tty->termios.c_iflag & IXOFF) { 44a24: 222a 0030 movel %a2@(48),%d1 <== NOT EXECUTED 44a28: 0801 000c btst #12,%d1 <== NOT EXECUTED 44a2c: 670c beqs 44a3a <== NOT EXECUTED tty->flow_ctrl |= FL_MDXOF; 44a2e: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 44a32: 08c0 000a bset #10,%d0 <== NOT EXECUTED 44a36: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED } /* check for outgoing XON/XOF flow control switched on */ if (tty->termios.c_iflag & IXON) { 44a3a: 0801 000a btst #10,%d1 <== NOT EXECUTED 44a3e: 670c beqs 44a4c <== NOT EXECUTED tty->flow_ctrl |= FL_MDXON; 44a40: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 44a44: 08c0 0009 bset #9,%d0 <== NOT EXECUTED 44a48: 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) { 44a4c: 7002 moveq #2,%d0 <== NOT EXECUTED 44a4e: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 44a52: 675c beqs 44ab0 <== NOT EXECUTED else tty->rawInBufSemaphoreFirstTimeout = tty->vtimeTicks; } else { if (tty->termios.c_cc[VMIN]) { tty->rawInBufSemaphoreOptions = RTEMS_WAIT; 44a54: 42aa 006c clrl %a2@(108) <== NOT EXECUTED tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT; 44a58: 42aa 0070 clrl %a2@(112) <== NOT EXECUTED tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT; 44a5c: 42aa 0074 clrl %a2@(116) <== NOT EXECUTED else { tty->rawInBufSemaphoreOptions = RTEMS_NO_WAIT; } } } if (tty->device.setAttributes) 44a60: 206a 00a8 moveal %a2@(168),%a0 <== NOT EXECUTED 44a64: 4a88 tstl %a0 <== NOT EXECUTED 44a66: 6700 fd9e beqw 44806 <== NOT EXECUTED (*tty->device.setAttributes)(tty->minor, &tty->termios); 44a6a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44a6c: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 44a70: 4e90 jsr %a0@ <== NOT EXECUTED 44a72: 508f addql #8,%sp <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); 44a74: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 44a78: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED args->ioctl_return = sc; 44a7e: 588f addql #4,%sp <== NOT EXECUTED 44a80: 6000 fd90 braw 44812 <== NOT EXECUTED *(int*)(args->buffer)=tty->t_line; break; #endif case FIONREAD: { int rawnc = tty->rawInBuf.Tail - tty->rawInBuf.Head; 44a84: 222a 0060 movel %a2@(96),%d1 <== NOT EXECUTED 44a88: 202a 005c movel %a2@(92),%d0 <== NOT EXECUTED 44a8c: 9280 subl %d0,%d1 <== NOT EXECUTED if ( rawnc < 0 ) 44a8e: 6b68 bmis 44af8 <== NOT EXECUTED rawnc += tty->rawInBuf.Size; /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; 44a90: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 44a94: 90aa 0024 subl %a2@(36),%d0 <== NOT EXECUTED 44a98: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 44a9c: d081 addl %d1,%d0 <== NOT EXECUTED 44a9e: 2080 movel %d0,%a0@ <== NOT EXECUTED } break; } rtems_semaphore_release (tty->osem); 44aa0: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 44aa4: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED args->ioctl_return = sc; 44aaa: 588f addql #4,%sp <== NOT EXECUTED 44aac: 6000 fd64 braw 44812 <== 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); 44ab0: 486e fffc pea %fp@(-4) <== NOT EXECUTED tty->vtimeTicks = tty->termios.c_cc[VTIME] * ticksPerSecond / 10; 44ab4: 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); 44ab6: 4878 0003 pea 3 <== NOT EXECUTED 44aba: 4eb9 0004 5274 jsr 45274 <== NOT EXECUTED tty->vtimeTicks = tty->termios.c_cc[VTIME] * ticksPerSecond / 10; 44ac0: 4280 clrl %d0 <== NOT EXECUTED 44ac2: 102a 0046 moveb %a2@(70),%d0 <== NOT EXECUTED 44ac6: 41ee fffc lea %fp@(-4),%a0 <== NOT EXECUTED 44aca: 4c10 0800 mulsl %a0@,%d0 <== NOT EXECUTED if (tty->termios.c_cc[VTIME]) { 44ace: 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; 44ad0: 4c43 0000 remul %d3,%d0,%d0 <== NOT EXECUTED 44ad4: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED if (tty->termios.c_cc[VTIME]) { 44ad8: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 44adc: 6700 0084 beqw 44b62 <== NOT EXECUTED tty->rawInBufSemaphoreOptions = RTEMS_WAIT; 44ae0: 42aa 006c clrl %a2@(108) <== NOT EXECUTED tty->rawInBufSemaphoreTimeout = tty->vtimeTicks; 44ae4: 2540 0070 movel %d0,%a2@(112) <== NOT EXECUTED if (tty->termios.c_cc[VMIN]) 44ae8: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 44aec: 6600 ff6e bnew 44a5c <== NOT EXECUTED tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT; else tty->rawInBufSemaphoreFirstTimeout = tty->vtimeTicks; 44af0: 2540 0074 movel %d0,%a2@(116) <== NOT EXECUTED 44af4: 6000 ff6a braw 44a60 <== NOT EXECUTED #endif case FIONREAD: { int rawnc = tty->rawInBuf.Tail - tty->rawInBuf.Head; if ( rawnc < 0 ) rawnc += tty->rawInBuf.Size; 44af8: 202a 0064 movel %a2@(100),%d0 <== NOT EXECUTED 44afc: d280 addl %d0,%d1 <== NOT EXECUTED /* Half guess that this is the right operation */ *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; 44afe: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 44b02: 90aa 0024 subl %a2@(36),%d0 <== NOT EXECUTED 44b06: 206c 0008 moveal %a4@(8),%a0 <== NOT EXECUTED 44b0a: d081 addl %d1,%d0 <== NOT EXECUTED 44b0c: 2080 movel %d0,%a0@ <== NOT EXECUTED 44b0e: 6090 bras 44aa0 <== NOT EXECUTED } break; } rtems_semaphore_release (tty->osem); 44b10: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 44b14: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED args->ioctl_return = sc; return sc; } switch (args->command) { default: if (rtems_termios_linesw[tty->t_line].l_ioctl != NULL) { 44b1a: 740a moveq #10,%d2 <== NOT EXECUTED *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; } break; } rtems_semaphore_release (tty->osem); args->ioctl_return = sc; 44b1c: 588f addql #4,%sp <== NOT EXECUTED 44b1e: 6000 fcf2 braw 44812 <== 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) { tty->flow_ctrl |= FL_MDRTS; 44b22: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED } /* check for incoming XON/XOF flow control switched on */ if (tty->termios.c_iflag & IXOFF) { 44b26: 222a 0030 movel %a2@(48),%d1 <== 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) { tty->flow_ctrl |= FL_MDRTS; 44b2a: 08c0 0008 bset #8,%d0 <== NOT EXECUTED 44b2e: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED } /* check for incoming XON/XOF flow control switched on */ if (tty->termios.c_iflag & IXOFF) { 44b32: 0801 000c btst #12,%d1 <== NOT EXECUTED 44b36: 6700 ff02 beqw 44a3a <== NOT EXECUTED 44b3a: 6000 fef2 braw 44a2e <== NOT EXECUTED rtems_interrupt_disable(level); tty->flow_ctrl &= ~FL_OSTOP; /* check for chars in output buffer (or rob_state?) */ if (tty->rawOutBufState != rob_idle) { /* if chars available, call write function... */ (*tty->device.write)(tty->minor, 44b3e: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 44b42: 4878 0001 pea 1 <== NOT EXECUTED 44b46: d0aa 007c addl %a2@(124),%d0 <== NOT EXECUTED 44b4a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44b4c: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 44b50: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 44b54: 4e90 jsr %a0@ <== NOT EXECUTED 44b56: dffc 0000 000c addal #12,%sp <== NOT EXECUTED &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1); } /* reenable interrupts */ rtems_interrupt_enable(level); 44b5c: 46c3 movew %d3,%sr <== NOT EXECUTED 44b5e: 6000 fe4c braw 449ac <== NOT EXECUTED tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT; else tty->rawInBufSemaphoreFirstTimeout = tty->vtimeTicks; } else { if (tty->termios.c_cc[VMIN]) { 44b62: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 44b66: 6600 feec bnew 44a54 <== NOT EXECUTED tty->rawInBufSemaphoreOptions = RTEMS_WAIT; tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT; tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT; } else { tty->rawInBufSemaphoreOptions = RTEMS_NO_WAIT; 44b6a: 7001 moveq #1,%d0 <== NOT EXECUTED 44b6c: 2540 006c movel %d0,%a2@(108) <== NOT EXECUTED 44b70: 6000 feee braw 44a60 <== NOT EXECUTED 00044d10 : rtems_device_major_number major, rtems_device_minor_number minor, void *arg, const rtems_termios_callbacks *callbacks ) { 44d10: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 44d14: 48d7 3c7c moveml %d2-%d6/%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, 44d18: 42a7 clrl %sp@- <== NOT EXECUTED rtems_device_major_number major, rtems_device_minor_number minor, void *arg, const rtems_termios_callbacks *callbacks ) { 44d1a: 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, 44d1e: 42a7 clrl %sp@- <== NOT EXECUTED rtems_device_major_number major, rtems_device_minor_number minor, void *arg, const rtems_termios_callbacks *callbacks ) { 44d20: 2c2e 000c movel %fp@(12),%d6 <== NOT EXECUTED struct rtems_termios_tty *tty; /* * See if the device has already been opened */ sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, 44d24: 2f39 0005 9ba4 movel 59ba4 ,%sp@- <== NOT EXECUTED 44d2a: 4eb9 0004 5be8 jsr 45be8 <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 44d30: 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, 44d36: 2a00 movel %d0,%d5 <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 44d38: 6600 027c bnew 44fb6 <== NOT EXECUTED return sc; for (tty = rtems_termios_ttyHead ; tty != NULL ; tty = tty->forw) { 44d3c: 2479 0005 9bac moveal 59bac ,%a2 <== NOT EXECUTED 44d42: 4a8a tstl %a2 <== NOT EXECUTED 44d44: 670e beqs 44d54 <== NOT EXECUTED if ((tty->major == major) && (tty->minor == minor)) 44d46: b8aa 000c cmpl %a2@(12),%d4 <== NOT EXECUTED 44d4a: 6700 0276 beqw 44fc2 <== 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) { 44d4e: 2452 moveal %a2@,%a2 <== NOT EXECUTED 44d50: 4a8a tstl %a2 <== NOT EXECUTED 44d52: 66f2 bnes 44d46 <== NOT EXECUTED static char c = 'a'; /* * Create a new device */ tty = calloc (1, sizeof (struct rtems_termios_tty)); 44d54: 4878 00e8 pea e8 <== NOT EXECUTED 44d58: 4878 0001 pea 1 <== NOT EXECUTED 44d5c: 4eb9 0004 a500 jsr 4a500 <== NOT EXECUTED if (tty == NULL) { 44d62: 508f addql #8,%sp <== NOT EXECUTED static char c = 'a'; /* * Create a new device */ tty = calloc (1, sizeof (struct rtems_termios_tty)); 44d64: 2640 moveal %d0,%a3 <== NOT EXECUTED 44d66: 2440 moveal %d0,%a2 <== NOT EXECUTED if (tty == NULL) { 44d68: 4a80 tstl %d0 <== NOT EXECUTED 44d6a: 6700 0370 beqw 450dc <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate raw input buffer */ tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE; 44d6e: 41f9 0005 8558 lea 58558 ,%a0 <== NOT EXECUTED 44d74: 2750 0064 movel %a0@,%a3@(100) <== NOT EXECUTED tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size); 44d78: 202b 0064 movel %a3@(100),%d0 <== NOT EXECUTED 44d7c: 49f9 0004 abd0 lea 4abd0 ,%a4 <== NOT EXECUTED 44d82: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44d84: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->rawInBuf.theBuf == NULL) { 44d86: 588f addql #4,%sp <== NOT EXECUTED } /* * allocate raw input buffer */ tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE; tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size); 44d88: 2740 0058 movel %d0,%a3@(88) <== NOT EXECUTED if (tty->rawInBuf.theBuf == NULL) { 44d8c: 6700 0280 beqw 4500e <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate raw output buffer */ tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE; 44d90: 43f9 0005 855c lea 5855c ,%a1 <== NOT EXECUTED 44d96: 2751 0088 movel %a1@,%a3@(136) <== NOT EXECUTED tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size); 44d9a: 202b 0088 movel %a3@(136),%d0 <== NOT EXECUTED 44d9e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44da0: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->rawOutBuf.theBuf == NULL) { 44da2: 588f addql #4,%sp <== NOT EXECUTED } /* * allocate raw output buffer */ tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE; tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size); 44da4: 2740 007c movel %d0,%a3@(124) <== NOT EXECUTED if (tty->rawOutBuf.theBuf == NULL) { 44da8: 6700 034e beqw 450f8 <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate cooked buffer */ tty->cbuf = malloc (CBUFSIZE); 44dac: 2f39 0005 8554 movel 58554 ,%sp@- <== NOT EXECUTED 44db2: 4e94 jsr %a4@ <== NOT EXECUTED if (tty->cbuf == NULL) { 44db4: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * allocate cooked buffer */ tty->cbuf = malloc (CBUFSIZE); 44db6: 2740 001c movel %d0,%a3@(28) <== NOT EXECUTED if (tty->cbuf == NULL) { 44dba: 6700 036c beqw 45128 <== NOT EXECUTED tty->tty_rcvwakeup = 0; /* * link tty */ tty->forw = rtems_termios_ttyHead; 44dbe: 2079 0005 9bac moveal 59bac ,%a0 <== NOT EXECUTED return RTEMS_NO_MEMORY; } /* * Initialize wakeup callbacks */ tty->tty_snd.sw_pfn = NULL; 44dc4: 42ab 00d4 clrl %a3@(212) <== NOT EXECUTED tty->tty_snd.sw_arg = NULL; 44dc8: 42ab 00d8 clrl %a3@(216) <== NOT EXECUTED tty->tty_rcv.sw_pfn = NULL; 44dcc: 42ab 00dc clrl %a3@(220) <== NOT EXECUTED tty->tty_rcv.sw_arg = NULL; 44dd0: 42ab 00e0 clrl %a3@(224) <== NOT EXECUTED tty->tty_rcvwakeup = 0; 44dd4: 42ab 00e4 clrl %a3@(228) <== NOT EXECUTED /* * link tty */ tty->forw = rtems_termios_ttyHead; 44dd8: 2688 movel %a0,%a3@ <== NOT EXECUTED tty->back = NULL; 44dda: 42ab 0004 clrl %a3@(4) <== NOT EXECUTED if (rtems_termios_ttyHead != NULL) 44dde: 4a88 tstl %a0 <== NOT EXECUTED 44de0: 6704 beqs 44de6 <== NOT EXECUTED rtems_termios_ttyHead->back = tty; 44de2: 214b 0004 movel %a3,%a0@(4) <== NOT EXECUTED rtems_termios_ttyHead = tty; 44de6: 23cb 0005 9bac movel %a3,59bac <== NOT EXECUTED if (rtems_termios_ttyTail == NULL) 44dec: 4ab9 0005 9ba8 tstl 59ba8 <== NOT EXECUTED 44df2: 6700 02de beqw 450d2 <== NOT EXECUTED tty->major = major; /* * Set up mutex semaphores */ sc = rtems_semaphore_create ( 44df6: 486b 0014 pea %a3@(20) <== NOT EXECUTED 44dfa: 1039 0005 8560 moveb 58560 ,%d0 <== NOT EXECUTED 44e00: 49c0 extbl %d0 <== NOT EXECUTED 44e02: 42a7 clrl %sp@- <== NOT EXECUTED 44e04: 0080 5452 6900 oril #1414686976,%d0 <== NOT EXECUTED 44e0a: 4878 0054 pea 54 <== NOT EXECUTED 44e0e: 4bf9 0004 5920 lea 45920 ,%a5 <== NOT EXECUTED 44e14: 4878 0001 pea 1 <== NOT EXECUTED 44e18: 2f00 movel %d0,%sp@- <== NOT EXECUTED rtems_termios_ttyHead->back = tty; rtems_termios_ttyHead = tty; if (rtems_termios_ttyTail == NULL) rtems_termios_ttyTail = tty; tty->minor = minor; 44e1a: 2746 0010 movel %d6,%a3@(16) <== NOT EXECUTED tty->major = major; 44e1e: 2744 000c movel %d4,%a3@(12) <== NOT EXECUTED /* * Set up mutex semaphores */ sc = rtems_semaphore_create ( 44e22: 4e95 jsr %a5@ <== 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) 44e24: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 44e2a: 4a80 tstl %d0 <== NOT EXECUTED 44e2c: 6600 01d8 bnew 45006 <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_semaphore_create ( 44e30: 486b 0018 pea %a3@(24) <== NOT EXECUTED 44e34: 1039 0005 8560 moveb 58560 ,%d0 <== NOT EXECUTED 44e3a: 49c0 extbl %d0 <== NOT EXECUTED 44e3c: 42a7 clrl %sp@- <== NOT EXECUTED 44e3e: 0080 5452 6f00 oril #1414688512,%d0 <== NOT EXECUTED 44e44: 4878 0054 pea 54 <== NOT EXECUTED 44e48: 4878 0001 pea 1 <== NOT EXECUTED 44e4c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44e4e: 4e95 jsr %a5@ <== 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) 44e50: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 44e56: 4a80 tstl %d0 <== NOT EXECUTED 44e58: 6600 01ac bnew 45006 <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_semaphore_create ( 44e5c: 486b 008c pea %a3@(140) <== NOT EXECUTED 44e60: 1039 0005 8560 moveb 58560 ,%d0 <== NOT EXECUTED 44e66: 49c0 extbl %d0 <== NOT EXECUTED 44e68: 42a7 clrl %sp@- <== NOT EXECUTED 44e6a: 0080 5452 7800 oril #1414690816,%d0 <== NOT EXECUTED 44e70: 4878 0020 pea 20 <== NOT EXECUTED 44e74: 42a7 clrl %sp@- <== NOT EXECUTED 44e76: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44e78: 4e95 jsr %a5@ <== 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) 44e7a: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 44e80: 4a80 tstl %d0 <== NOT EXECUTED 44e82: 6600 0182 bnew 45006 <== NOT EXECUTED tty->rawOutBufState = rob_idle; /* * Set callbacks */ tty->device = *callbacks; 44e86: 226e 0014 moveal %fp@(20),%a1 <== NOT EXECUTED 44e8a: 41eb 0098 lea %a3@(152),%a0 <== NOT EXECUTED 44e8e: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED /* * Create I/O tasks */ if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { 44e90: 7002 moveq #2,%d0 <== NOT EXECUTED tty->rawOutBufState = rob_idle; /* * Set callbacks */ tty->device = *callbacks; 44e92: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 44e94: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 44e96: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 44e98: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 44e9a: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 44e9c: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 44e9e: 2091 movel %a1@,%a0@ <== NOT EXECUTED RTEMS_SIMPLE_BINARY_SEMAPHORE | RTEMS_FIFO, RTEMS_NO_PRIORITY, &tty->rawOutBuf.Semaphore); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); tty->rawOutBufState = rob_idle; 44ea0: 42ab 0094 clrl %a3@(148) <== NOT EXECUTED tty->device = *callbacks; /* * Create I/O tasks */ if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { 44ea4: b0ab 00b4 cmpl %a3@(180),%d0 <== NOT EXECUTED 44ea8: 6700 01ba beqw 45064 <== NOT EXECUTED &tty->rxTaskId); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); } if ((tty->device.pollRead == NULL) || 44eac: 4aab 00a0 tstl %a3@(160) <== NOT EXECUTED 44eb0: 6700 0180 beqw 45032 <== NOT EXECUTED 44eb4: 7202 moveq #2,%d1 <== NOT EXECUTED 44eb6: b2ab 00b4 cmpl %a3@(180),%d1 <== NOT EXECUTED 44eba: 6700 0176 beqw 45032 <== 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; 44ebe: 42ab 00b8 clrl %a3@(184) <== NOT EXECUTED /* * set low/highwater mark for XON/XOFF support */ tty->lowwater = tty->rawInBuf.Size * 1/2; 44ec2: 242b 0064 movel %a3@(100),%d2 <== NOT EXECUTED tty->highwater = tty->rawInBuf.Size * 3/4; 44ec6: 206b 0064 moveal %a3@(100),%a0 <== NOT EXECUTED /* * Bump name characer */ if (c++ == 'z') 44eca: 1639 0005 8560 moveb 58560 ,%d3 <== 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; 44ed0: 41f0 8a00 lea %a0@(00000000,%a0:l:2),%a0 <== NOT EXECUTED 44ed4: 2008 movel %a0,%d0 <== NOT EXECUTED /* * Bump name characer */ if (c++ == 'z') 44ed6: 49c3 extbl %d3 <== 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; 44ed8: e488 lsrl #2,%d0 <== NOT EXECUTED /* * Bump name characer */ if (c++ == 'z') 44eda: 2203 movel %d3,%d1 <== NOT EXECUTED 44edc: 5281 addql #1,%d1 <== 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; 44ede: 2740 00c0 movel %d0,%a3@(192) <== NOT EXECUTED /* * Bump name characer */ if (c++ == 'z') 44ee2: 13c1 0005 8560 moveb %d1,58560 <== 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'; 44ee8: 7003 moveq #3,%d0 <== NOT EXECUTED tty->termios.c_cc[VQUIT] = '\034'; 44eea: 721c moveq #28,%d1 <== 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'; 44eec: 1740 0041 moveb %d0,%a3@(65) <== NOT EXECUTED tty->termios.c_cc[VQUIT] = '\034'; tty->termios.c_cc[VERASE] = '\177'; 44ef0: 707f moveq #127,%d0 <== 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'; 44ef2: 1741 0042 moveb %d1,%a3@(66) <== 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; 44ef6: 223c 0000 08bd movel #2237,%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'; 44efc: 1740 0043 moveb %d0,%a3@(67) <== NOT EXECUTED tty->termios.c_cc[VKILL] = '\025'; 44f00: 7015 moveq #21,%d0 <== 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; 44f02: 2741 0038 movel %d1,%a3@(56) <== NOT EXECUTED tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL; 44f06: 323c 823b movew #-32197,%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'; 44f0a: 1740 0044 moveb %d0,%a3@(68) <== NOT EXECUTED tty->termios.c_cc[VEOF] = '\004'; 44f0e: 7004 moveq #4,%d0 <== 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; 44f10: 2741 003c movel %d1,%a3@(60) <== 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'; 44f14: 4201 clrb %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'; 44f16: 1740 0045 moveb %d0,%a3@(69) <== NOT EXECUTED tty->termios.c_cc[VEOL] = '\000'; tty->termios.c_cc[VEOL2] = '\000'; tty->termios.c_cc[VSTART] = '\021'; 44f1a: 7011 moveq #17,%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'; tty->termios.c_cc[VEOL] = '\000'; 44f1c: 1741 004c moveb %d1,%a3@(76) <== NOT EXECUTED tty->termios.c_cc[VEOL2] = '\000'; 44f20: 1741 0051 moveb %d1,%a3@(81) <== NOT EXECUTED tty->termios.c_cc[VSTART] = '\021'; tty->termios.c_cc[VSTOP] = '\023'; 44f24: 7213 moveq #19,%d1 <== NOT EXECUTED tty->termios.c_cc[VERASE] = '\177'; 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'; 44f26: 1740 0049 moveb %d0,%a3@(73) <== NOT EXECUTED tty->termios.c_cc[VSTOP] = '\023'; tty->termios.c_cc[VSUSP] = '\032'; 44f2a: 701a moveq #26,%d0 <== 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'; 44f2c: 1741 004a moveb %d1,%a3@(74) <== NOT EXECUTED tty->termios.c_cc[VSUSP] = '\032'; tty->termios.c_cc[VREPRINT] = '\022'; 44f30: 7212 moveq #18,%d1 <== NOT EXECUTED 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'; tty->termios.c_cc[VSUSP] = '\032'; 44f32: 1740 004b moveb %d0,%a3@(75) <== NOT EXECUTED tty->termios.c_cc[VREPRINT] = '\022'; tty->termios.c_cc[VDISCARD] = '\017'; 44f36: 700f moveq #15,%d0 <== NOT EXECUTED tty->termios.c_cc[VEOL] = '\000'; 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'; 44f38: 1741 004d moveb %d1,%a3@(77) <== NOT EXECUTED tty->termios.c_cc[VDISCARD] = '\017'; tty->termios.c_cc[VWERASE] = '\027'; 44f3c: 7217 moveq #23,%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'; 44f3e: 1740 004e moveb %d0,%a3@(78) <== 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; 44f42: e28a lsrl #1,%d2 <== NOT EXECUTED } /* * Set default parameters */ tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; 44f44: 307c 2502 moveaw #9474,%a0 <== NOT EXECUTED tty->termios.c_oflag = OPOST | ONLCR | XTABS; 44f48: 327c 1805 moveaw #6149,%a1 <== 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'; 44f4c: 1741 004f moveb %d1,%a3@(79) <== NOT EXECUTED tty->termios.c_cc[VLNEXT] = '\026'; 44f50: 7016 moveq #22,%d0 <== 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; 44f52: 2742 00bc movel %d2,%a3@(188) <== NOT EXECUTED 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'; tty->termios.c_cc[VLNEXT] = '\026'; 44f56: 1740 0050 moveb %d0,%a3@(80) <== NOT EXECUTED } /* * Set default parameters */ tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; 44f5a: 2748 0030 movel %a0,%a3@(48) <== NOT EXECUTED tty->lowwater = tty->rawInBuf.Size * 1/2; tty->highwater = tty->rawInBuf.Size * 3/4; /* * Bump name characer */ if (c++ == 'z') 44f5e: 727a moveq #122,%d1 <== NOT EXECUTED /* * Set default parameters */ tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL; tty->termios.c_oflag = OPOST | ONLCR | XTABS; 44f60: 2749 0034 movel %a1,%a3@(52) <== NOT EXECUTED tty->lowwater = tty->rawInBuf.Size * 1/2; tty->highwater = tty->rawInBuf.Size * 3/4; /* * Bump name characer */ if (c++ == 'z') 44f64: b283 cmpl %d3,%d1 <== NOT EXECUTED 44f66: 6608 bnes 44f70 <== NOT EXECUTED c = 'a'; 44f68: 7061 moveq #97,%d0 <== NOT EXECUTED 44f6a: 13c0 0005 8560 moveb %d0,58560 <== NOT EXECUTED } args->iop->data1 = tty; 44f70: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED if (!tty->refcount++) { 44f74: 202a 0008 movel %a2@(8),%d0 <== NOT EXECUTED */ if (c++ == 'z') c = 'a'; } args->iop->data1 = tty; 44f78: 2051 moveal %a1@,%a0 <== NOT EXECUTED if (!tty->refcount++) { 44f7a: 2200 movel %d0,%d1 <== NOT EXECUTED 44f7c: 5281 addql #1,%d1 <== NOT EXECUTED 44f7e: 2541 0008 movel %d1,%a2@(8) <== NOT EXECUTED */ if (c++ == 'z') c = 'a'; } args->iop->data1 = tty; 44f82: 214a 0028 movel %a2,%a0@(40) <== NOT EXECUTED if (!tty->refcount++) { 44f86: 4a80 tstl %d0 <== NOT EXECUTED 44f88: 661e bnes 44fa8 <== NOT EXECUTED if (tty->device.firstOpen) 44f8a: 206a 0098 moveal %a2@(152),%a0 <== NOT EXECUTED 44f8e: 4a88 tstl %a0 <== NOT EXECUTED 44f90: 670e beqs 44fa0 <== NOT EXECUTED (*tty->device.firstOpen)(major, minor, arg); 44f92: 2f09 movel %a1,%sp@- <== NOT EXECUTED 44f94: 2f06 movel %d6,%sp@- <== NOT EXECUTED 44f96: 2f04 movel %d4,%sp@- <== NOT EXECUTED 44f98: 4e90 jsr %a0@ <== NOT EXECUTED 44f9a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED /* * start I/O tasks, if needed */ if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { 44fa0: 7002 moveq #2,%d0 <== NOT EXECUTED 44fa2: b0aa 00b4 cmpl %a2@(180),%d0 <== NOT EXECUTED 44fa6: 672c beqs 44fd4 <== NOT EXECUTED (rtems_task_argument)tty); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); } } rtems_semaphore_release (rtems_termios_ttyMutex); 44fa8: 2f39 0005 9ba4 movel 59ba4 ,%sp@- <== NOT EXECUTED 44fae: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED 44fb4: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 44fb6: 2005 movel %d5,%d0 <== NOT EXECUTED 44fb8: 4cee 3c7c ffdc moveml %fp@(-36),%d2-%d6/%a2-%a5 <== NOT EXECUTED 44fbe: 4e5e unlk %fp <== NOT EXECUTED 44fc0: 4e75 rts <== 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) { if ((tty->major == major) && (tty->minor == minor)) 44fc2: bcaa 0010 cmpl %a2@(16),%d6 <== NOT EXECUTED 44fc6: 67a8 beqs 44f70 <== 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) { 44fc8: 2452 moveal %a2@,%a2 <== NOT EXECUTED 44fca: 4a8a tstl %a2 <== NOT EXECUTED 44fcc: 6600 fd78 bnew 44d46 <== NOT EXECUTED 44fd0: 6000 fd82 braw 44d54 <== NOT EXECUTED (*tty->device.firstOpen)(major, minor, arg); /* * start I/O tasks, if needed */ if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { sc = rtems_task_start(tty->rxTaskId, 44fd4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44fd6: 47f9 0004 60a4 lea 460a4 ,%a3 <== NOT EXECUTED 44fdc: 487a 0206 pea %pc@(451e4 ) <== NOT EXECUTED 44fe0: 2f2a 00c4 movel %a2@(196),%sp@- <== NOT EXECUTED 44fe4: 4e93 jsr %a3@ <== NOT EXECUTED rtems_termios_rxdaemon, (rtems_task_argument)tty); if (sc != RTEMS_SUCCESSFUL) 44fe6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44fec: 4a80 tstl %d0 <== NOT EXECUTED 44fee: 6616 bnes 45006 <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_task_start(tty->txTaskId, 44ff0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44ff2: 487a 016a pea %pc@(4515e ) <== NOT EXECUTED 44ff6: 2f2a 00c8 movel %a2@(200),%sp@- <== NOT EXECUTED 44ffa: 4e93 jsr %a3@ <== NOT EXECUTED rtems_termios_txdaemon, (rtems_task_argument)tty); if (sc != RTEMS_SUCCESSFUL) 44ffc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45002: 4a80 tstl %d0 <== NOT EXECUTED 45004: 67a2 beqs 44fa8 <== NOT EXECUTED rtems_fatal_error_occurred (sc); 45006: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45008: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED * allocate raw input buffer */ tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE; tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size); if (tty->rawInBuf.theBuf == NULL) { free(tty); 4500e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45010: 4eb9 0004 a5fc jsr 4a5fc <== NOT EXECUTED rtems_semaphore_release (rtems_termios_ttyMutex); 45016: 2f39 0005 9ba4 movel 59ba4 ,%sp@- <== NOT EXECUTED 4501c: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED 45022: 7a1a moveq #26,%d5 <== NOT EXECUTED rtems_fatal_error_occurred (sc); } } rtems_semaphore_release (rtems_termios_ttyMutex); return RTEMS_SUCCESSFUL; } 45024: 2005 movel %d5,%d0 <== NOT EXECUTED */ tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE; tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size); if (tty->rawInBuf.theBuf == NULL) { free(tty); rtems_semaphore_release (rtems_termios_ttyMutex); 45026: 508f addql #8,%sp <== NOT EXECUTED rtems_fatal_error_occurred (sc); } } rtems_semaphore_release (rtems_termios_ttyMutex); return RTEMS_SUCCESSFUL; } 45028: 4cee 3c7c ffdc moveml %fp@(-36),%d2-%d6/%a2-%a5 <== NOT EXECUTED 4502e: 4e5e unlk %fp <== NOT EXECUTED 45030: 4e75 rts <== NOT EXECUTED rtems_fatal_error_occurred (sc); } if ((tty->device.pollRead == NULL) || (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN)){ sc = rtems_semaphore_create ( 45032: 486b 0068 pea %a3@(104) <== NOT EXECUTED 45036: 1039 0005 8560 moveb 58560 ,%d0 <== NOT EXECUTED 4503c: 49c0 extbl %d0 <== NOT EXECUTED 4503e: 42a7 clrl %sp@- <== NOT EXECUTED 45040: 0080 5452 7200 oril #1414689280,%d0 <== NOT EXECUTED 45046: 4878 0024 pea 24 <== NOT EXECUTED 4504a: 42a7 clrl %sp@- <== NOT EXECUTED 4504c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4504e: 4e95 jsr %a5@ <== 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) 45050: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 45056: 4a80 tstl %d0 <== NOT EXECUTED 45058: 6700 fe64 beqw 44ebe <== NOT EXECUTED sc = rtems_task_start(tty->txTaskId, rtems_termios_txdaemon, (rtems_task_argument)tty); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); 4505c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4505e: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED /* * Create I/O tasks */ if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) { sc = rtems_task_create ( 45064: 486b 00c8 pea %a3@(200) <== NOT EXECUTED 45068: 1039 0005 8560 moveb 58560 ,%d0 <== NOT EXECUTED 4506e: 49c0 extbl %d0 <== NOT EXECUTED 45070: 42a7 clrl %sp@- <== NOT EXECUTED 45072: 0080 5478 5400 oril #1417171968,%d0 <== NOT EXECUTED 45078: 4878 0500 pea 500 <== NOT EXECUTED 4507c: 49f9 0004 5dd0 lea 45dd0 ,%a4 <== NOT EXECUTED 45082: 4878 0400 pea 400 <== NOT EXECUTED 45086: 4878 000a pea a <== NOT EXECUTED 4508a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4508c: 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) 4508e: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 45094: 4a80 tstl %d0 <== NOT EXECUTED 45096: 6600 ff6e bnew 45006 <== NOT EXECUTED rtems_fatal_error_occurred (sc); sc = rtems_task_create ( 4509a: 486b 00c4 pea %a3@(196) <== NOT EXECUTED 4509e: 1039 0005 8560 moveb 58560 ,%d0 <== NOT EXECUTED 450a4: 49c0 extbl %d0 <== NOT EXECUTED 450a6: 42a7 clrl %sp@- <== NOT EXECUTED 450a8: 0080 5278 5400 oril #1383617536,%d0 <== NOT EXECUTED 450ae: 4878 0500 pea 500 <== NOT EXECUTED 450b2: 4878 0400 pea 400 <== NOT EXECUTED 450b6: 4878 0009 pea 9 <== NOT EXECUTED 450ba: 2f00 movel %d0,%sp@- <== NOT EXECUTED 450bc: 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) 450be: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 450c4: 4a80 tstl %d0 <== NOT EXECUTED 450c6: 6700 fde4 beqw 44eac <== NOT EXECUTED sc = rtems_task_start(tty->txTaskId, rtems_termios_txdaemon, (rtems_task_argument)tty); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); 450ca: 2f00 movel %d0,%sp@- <== NOT EXECUTED 450cc: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED tty->back = NULL; if (rtems_termios_ttyHead != NULL) rtems_termios_ttyHead->back = tty; rtems_termios_ttyHead = tty; if (rtems_termios_ttyTail == NULL) rtems_termios_ttyTail = tty; 450d2: 23cb 0005 9ba8 movel %a3,59ba8 <== NOT EXECUTED 450d8: 6000 fd1c braw 44df6 <== NOT EXECUTED /* * Create a new device */ tty = calloc (1, sizeof (struct rtems_termios_tty)); if (tty == NULL) { rtems_semaphore_release (rtems_termios_ttyMutex); 450dc: 2f39 0005 9ba4 movel 59ba4 ,%sp@- <== NOT EXECUTED 450e2: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED 450e8: 7a1a moveq #26,%d5 <== NOT EXECUTED rtems_fatal_error_occurred (sc); } } rtems_semaphore_release (rtems_termios_ttyMutex); return RTEMS_SUCCESSFUL; } 450ea: 2005 movel %d5,%d0 <== NOT EXECUTED /* * Create a new device */ tty = calloc (1, sizeof (struct rtems_termios_tty)); if (tty == NULL) { rtems_semaphore_release (rtems_termios_ttyMutex); 450ec: 588f addql #4,%sp <== NOT EXECUTED rtems_fatal_error_occurred (sc); } } rtems_semaphore_release (rtems_termios_ttyMutex); return RTEMS_SUCCESSFUL; } 450ee: 4cee 3c7c ffdc moveml %fp@(-36),%d2-%d6/%a2-%a5 <== NOT EXECUTED 450f4: 4e5e unlk %fp <== NOT EXECUTED 450f6: 4e75 rts <== NOT EXECUTED * allocate raw output buffer */ tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE; tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size); if (tty->rawOutBuf.theBuf == NULL) { free((void *)(tty->rawInBuf.theBuf)); 450f8: 2f2b 0058 movel %a3@(88),%sp@- <== NOT EXECUTED 450fc: 45f9 0004 a5fc lea 4a5fc ,%a2 <== NOT EXECUTED 45102: 4e92 jsr %a2@ <== NOT EXECUTED free(tty); 45104: 2f0b movel %a3,%sp@- <== NOT EXECUTED 45106: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_release (rtems_termios_ttyMutex); 45108: 7a1a moveq #26,%d5 <== NOT EXECUTED 4510a: 2f39 0005 9ba4 movel 59ba4 ,%sp@- <== NOT EXECUTED 45110: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED rtems_fatal_error_occurred (sc); } } rtems_semaphore_release (rtems_termios_ttyMutex); return RTEMS_SUCCESSFUL; } 45116: 2005 movel %d5,%d0 <== NOT EXECUTED tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE; tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size); if (tty->rawOutBuf.theBuf == NULL) { free((void *)(tty->rawInBuf.theBuf)); free(tty); rtems_semaphore_release (rtems_termios_ttyMutex); 45118: dffc 0000 000c addal #12,%sp <== NOT EXECUTED rtems_fatal_error_occurred (sc); } } rtems_semaphore_release (rtems_termios_ttyMutex); return RTEMS_SUCCESSFUL; } 4511e: 4cee 3c7c ffdc moveml %fp@(-36),%d2-%d6/%a2-%a5 <== NOT EXECUTED 45124: 4e5e unlk %fp <== NOT EXECUTED 45126: 4e75 rts <== NOT EXECUTED /* * allocate cooked buffer */ tty->cbuf = malloc (CBUFSIZE); if (tty->cbuf == NULL) { free((void *)(tty->rawOutBuf.theBuf)); 45128: 2f2b 007c movel %a3@(124),%sp@- <== NOT EXECUTED 4512c: 45f9 0004 a5fc lea 4a5fc ,%a2 <== NOT EXECUTED 45132: 4e92 jsr %a2@ <== NOT EXECUTED free((void *)(tty->rawInBuf.theBuf)); 45134: 2f2b 0058 movel %a3@(88),%sp@- <== NOT EXECUTED 45138: 4e92 jsr %a2@ <== NOT EXECUTED free(tty); 4513a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4513c: 4e92 jsr %a2@ <== NOT EXECUTED rtems_semaphore_release (rtems_termios_ttyMutex); 4513e: 7a1a moveq #26,%d5 <== NOT EXECUTED 45140: 2f39 0005 9ba4 movel 59ba4 ,%sp@- <== NOT EXECUTED 45146: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED rtems_fatal_error_occurred (sc); } } rtems_semaphore_release (rtems_termios_ttyMutex); return RTEMS_SUCCESSFUL; } 4514c: 2005 movel %d5,%d0 <== NOT EXECUTED tty->cbuf = malloc (CBUFSIZE); if (tty->cbuf == NULL) { free((void *)(tty->rawOutBuf.theBuf)); free((void *)(tty->rawInBuf.theBuf)); free(tty); rtems_semaphore_release (rtems_termios_ttyMutex); 4514e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED rtems_fatal_error_occurred (sc); } } rtems_semaphore_release (rtems_termios_ttyMutex); return RTEMS_SUCCESSFUL; } 45154: 4cee 3c7c ffdc moveml %fp@(-36),%d2-%d6/%a2-%a5 <== NOT EXECUTED 4515a: 4e5e unlk %fp <== NOT EXECUTED 4515c: 4e75 rts 00043aa2 : * Send characters to device-specific code */ void rtems_termios_puts ( const void *_buf, int len, struct rtems_termios_tty *tty) { 43aa2: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 43aa6: 48d7 1cfc moveml %d2-%d7/%a2-%a4,%sp@ <== NOT EXECUTED 43aaa: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 43aae: 2e2e 000c movel %fp@(12),%d7 <== NOT EXECUTED 43ab2: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED const unsigned char *buf = _buf; 43ab6: 2840 moveal %d0,%a4 <== NOT EXECUTED unsigned int newHead; rtems_interrupt_level level; rtems_status_code sc; if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) { 43ab8: 4aaa 00b4 tstl %a2@(180) <== NOT EXECUTED 43abc: 6700 00ec beqw 43baa <== NOT EXECUTED (*tty->device.write)(tty->minor, (void *)buf, len); return; } newHead = tty->rawOutBuf.Head; 43ac0: 2a2a 0080 movel %a2@(128),%d5 <== NOT EXECUTED while (len) { 43ac4: 4a87 tstl %d7 <== NOT EXECUTED 43ac6: 6700 00fe beqw 43bc6 <== NOT EXECUTED * len -= ncopy * * To minimize latency, the memcpy should be done * with interrupts enabled. */ newHead = (newHead + 1) % tty->rawOutBuf.Size; 43aca: 222a 0088 movel %a2@(136),%d1 <== NOT EXECUTED 43ace: 2005 movel %d5,%d0 <== NOT EXECUTED 43ad0: 5280 addql #1,%d0 <== NOT EXECUTED 43ad2: 4c41 0006 remul %d1,%d6,%d0 <== NOT EXECUTED rtems_interrupt_disable (level); 43ad6: 283c 0000 0700 movel #1792,%d4 <== NOT EXECUTED 43adc: 47f9 0004 5be8 lea 45be8 ,%a3 <== NOT EXECUTED * len -= ncopy * * To minimize latency, the memcpy should be done * with interrupts enabled. */ newHead = (newHead + 1) % tty->rawOutBuf.Size; 43ae2: 2a06 movel %d6,%d5 <== NOT EXECUTED rtems_interrupt_disable (level); 43ae4: 2004 movel %d4,%d0 <== NOT EXECUTED 43ae6: 40c2 movew %sr,%d2 <== NOT EXECUTED 43ae8: 8082 orl %d2,%d0 <== NOT EXECUTED 43aea: 46c0 movew %d0,%sr <== NOT EXECUTED while (newHead == tty->rawOutBuf.Tail) { 43aec: 262a 0084 movel %a2@(132),%d3 <== NOT EXECUTED 43af0: bc83 cmpl %d3,%d6 <== NOT EXECUTED 43af2: 662c bnes 43b20 <== NOT EXECUTED tty->rawOutBufState = rob_wait; 43af4: 7002 moveq #2,%d0 <== NOT EXECUTED 43af6: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED rtems_interrupt_enable (level); 43afa: 46c2 movew %d2,%sr <== NOT EXECUTED sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore, 43afc: 42a7 clrl %sp@- <== NOT EXECUTED 43afe: 42a7 clrl %sp@- <== NOT EXECUTED 43b00: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 43b04: 4e93 jsr %a3@ <== NOT EXECUTED RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) 43b06: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43b0c: 4a80 tstl %d0 <== NOT EXECUTED 43b0e: 666c bnes 43b7c <== NOT EXECUTED rtems_fatal_error_occurred (sc); rtems_interrupt_disable (level); 43b10: 2004 movel %d4,%d0 <== NOT EXECUTED 43b12: 40c2 movew %sr,%d2 <== NOT EXECUTED 43b14: 8082 orl %d2,%d0 <== NOT EXECUTED 43b16: 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) { 43b18: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 43b1c: b680 cmpl %d0,%d3 <== NOT EXECUTED 43b1e: 67d4 beqs 43af4 <== 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++; 43b20: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 43b24: 206a 007c moveal %a2@(124),%a0 <== NOT EXECUTED 43b28: 1194 0800 moveb %a4@,%a0@(00000000,%d0:l) <== NOT EXECUTED tty->rawOutBuf.Head = newHead; 43b2c: 2546 0080 movel %d6,%a2@(128) <== NOT EXECUTED if (tty->rawOutBufState == rob_idle) { 43b30: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 43b34: 661c bnes 43b52 <== NOT EXECUTED /* check, whether XOFF has been received */ if (!(tty->flow_ctrl & FL_ORCVXOF)) { 43b36: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43b3a: 0800 0004 btst #4,%d0 <== NOT EXECUTED 43b3e: 6744 beqs 43b84 <== NOT EXECUTED (*tty->device.write)(tty->minor, (char *)&tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1); } else { /* remember that output has been stopped due to flow ctrl*/ tty->flow_ctrl |= FL_OSTOP; 43b40: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43b44: 7220 moveq #32,%d1 <== NOT EXECUTED 43b46: 8081 orl %d1,%d0 <== NOT EXECUTED 43b48: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED } tty->rawOutBufState = rob_busy; 43b4c: 7001 moveq #1,%d0 <== NOT EXECUTED 43b4e: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED } rtems_interrupt_enable (level); 43b52: 46c2 movew %d2,%sr <== NOT EXECUTED len--; 43b54: 5387 subql #1,%d7 <== NOT EXECUTED if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) { (*tty->device.write)(tty->minor, (void *)buf, len); return; } newHead = tty->rawOutBuf.Head; while (len) { 43b56: 676e beqs 43bc6 <== NOT EXECUTED * len -= ncopy * * To minimize latency, the memcpy should be done * with interrupts enabled. */ newHead = (newHead + 1) % tty->rawOutBuf.Size; 43b58: 222a 0088 movel %a2@(136),%d1 <== NOT EXECUTED 43b5c: 2005 movel %d5,%d0 <== NOT EXECUTED 43b5e: 5280 addql #1,%d0 <== NOT EXECUTED 43b60: 4c41 0006 remul %d1,%d6,%d0 <== 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++; 43b64: 528c addql #1,%a4 <== NOT EXECUTED * len -= ncopy * * To minimize latency, the memcpy should be done * with interrupts enabled. */ newHead = (newHead + 1) % tty->rawOutBuf.Size; 43b66: 2a06 movel %d6,%d5 <== NOT EXECUTED rtems_interrupt_disable (level); 43b68: 2004 movel %d4,%d0 <== NOT EXECUTED 43b6a: 40c2 movew %sr,%d2 <== NOT EXECUTED 43b6c: 8082 orl %d2,%d0 <== NOT EXECUTED 43b6e: 46c0 movew %d0,%sr <== NOT EXECUTED while (newHead == tty->rawOutBuf.Tail) { 43b70: 262a 0084 movel %a2@(132),%d3 <== NOT EXECUTED 43b74: bc83 cmpl %d3,%d6 <== NOT EXECUTED 43b76: 6700 ff7c beqw 43af4 <== NOT EXECUTED 43b7a: 60a4 bras 43b20 <== NOT EXECUTED rtems_interrupt_enable (level); sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT); if (sc != RTEMS_SUCCESSFUL) rtems_fatal_error_occurred (sc); 43b7c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43b7e: 4eb9 0004 6390 jsr 46390 <== NOT EXECUTED tty->rawOutBuf.theBuf[tty->rawOutBuf.Head] = *buf++; tty->rawOutBuf.Head = newHead; if (tty->rawOutBufState == rob_idle) { /* check, whether XOFF has been received */ if (!(tty->flow_ctrl & FL_ORCVXOF)) { (*tty->device.write)(tty->minor, 43b84: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 43b88: 4878 0001 pea 1 <== NOT EXECUTED 43b8c: d0aa 007c addl %a2@(124),%d0 <== NOT EXECUTED 43b90: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43b92: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 43b96: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43b9a: 4e90 jsr %a0@ <== NOT EXECUTED } else { /* remember that output has been stopped due to flow ctrl*/ tty->flow_ctrl |= FL_OSTOP; } tty->rawOutBufState = rob_busy; 43b9c: 7001 moveq #1,%d0 <== NOT EXECUTED 43b9e: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED tty->rawOutBuf.theBuf[tty->rawOutBuf.Head] = *buf++; tty->rawOutBuf.Head = newHead; if (tty->rawOutBufState == rob_idle) { /* check, whether XOFF has been received */ if (!(tty->flow_ctrl & FL_ORCVXOF)) { (*tty->device.write)(tty->minor, 43ba2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 43ba8: 60a8 bras 43b52 <== 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); 43baa: 226a 00a4 moveal %a2@(164),%a1 <== NOT EXECUTED 43bae: 2d6a 0010 0008 movel %a2@(16),%fp@(8) <== NOT EXECUTED 43bb4: 2d47 0010 movel %d7,%fp@(16) <== NOT EXECUTED tty->rawOutBufState = rob_busy; } rtems_interrupt_enable (level); len--; } } 43bb8: 4cee 1cfc ffdc moveml %fp@(-36),%d2-%d7/%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); 43bbe: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED tty->rawOutBufState = rob_busy; } rtems_interrupt_enable (level); len--; } } 43bc2: 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); 43bc4: 4ed1 jmp %a1@ <== NOT EXECUTED tty->rawOutBufState = rob_busy; } rtems_interrupt_enable (level); len--; } } 43bc6: 4cee 1cfc ffdc moveml %fp@(-36),%d2-%d7/%a2-%a4 <== NOT EXECUTED 43bcc: 4e5e unlk %fp <== NOT EXECUTED 43bce: 4e75 rts 000443fe : return RTEMS_SUCCESSFUL; } rtems_status_code rtems_termios_read (void *arg) { 443fe: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 44402: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 44406: 2a6e 0008 moveal %fp@(8),%a5 <== NOT EXECUTED rtems_libio_rw_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 4440a: 2055 moveal %a5@,%a0 <== NOT EXECUTED 4440c: 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); 44410: 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; 44412: 2c2d 000c movel %a5@(12),%d6 <== NOT EXECUTED char *buffer = args->buffer; rtems_status_code sc; sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 44416: 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; 44418: 286d 0008 moveal %a5@(8),%a4 <== NOT EXECUTED rtems_status_code sc; sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 4441c: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 44420: 4eb9 0004 5be8 jsr 45be8 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 44426: 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); 4442c: 2e00 movel %d0,%d7 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 4442e: 6630 bnes 44460 <== NOT EXECUTED return sc; if (rtems_termios_linesw[tty->t_line].l_read != NULL) { 44430: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 44434: 41f9 0005 9328 lea 59328 ,%a0 <== NOT EXECUTED 4443a: eb88 lsll #5,%d0 <== NOT EXECUTED 4443c: 2070 0808 moveal %a0@(00000008,%d0:l),%a0 <== NOT EXECUTED 44440: 4a88 tstl %a0 <== NOT EXECUTED 44442: 6728 beqs 4446c <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_read(tty,args); 44444: 2f0d movel %a5,%sp@- <== NOT EXECUTED 44446: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44448: 4e90 jsr %a0@ <== NOT EXECUTED tty->tty_rcvwakeup = 0; 4444a: 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); 4444e: 2e00 movel %d0,%d7 <== NOT EXECUTED tty->tty_rcvwakeup = 0; rtems_semaphore_release (tty->isem); 44450: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 44454: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED 4445a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } args->bytes_moved = args->count - count; tty->tty_rcvwakeup = 0; rtems_semaphore_release (tty->isem); return sc; } 44460: 2007 movel %d7,%d0 <== NOT EXECUTED 44462: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED 44468: 4e5e unlk %fp <== NOT EXECUTED 4446a: 4e75 rts <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_read(tty,args); tty->tty_rcvwakeup = 0; rtems_semaphore_release (tty->isem); return sc; } if (tty->cindex == tty->ccount) { 4446c: 202a 0020 movel %a2@(32),%d0 <== NOT EXECUTED 44470: b0aa 0024 cmpl %a2@(36),%d0 <== NOT EXECUTED 44474: 674c beqs 444c2 <== NOT EXECUTED else sc = fillBufferQueue (tty); if (sc != RTEMS_SUCCESSFUL) tty->cindex = tty->ccount = 0; } while (count && (tty->cindex < tty->ccount)) { 44476: 4a86 tstl %d6 <== NOT EXECUTED 44478: 6722 beqs 4449c <== NOT EXECUTED 4447a: 202a 0024 movel %a2@(36),%d0 <== NOT EXECUTED 4447e: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 44482: 6c18 bges 4449c <== NOT EXECUTED *buffer++ = tty->cbuf[tty->cindex++]; 44484: 206a 001c moveal %a2@(28),%a0 <== NOT EXECUTED 44488: 18f0 0800 moveb %a0@(00000000,%d0:l),%a4@+ <== NOT EXECUTED 4448c: 5280 addql #1,%d0 <== NOT EXECUTED 4448e: 2540 0024 movel %d0,%a2@(36) <== NOT EXECUTED count--; 44492: 5386 subql #1,%d6 <== NOT EXECUTED else sc = fillBufferQueue (tty); if (sc != RTEMS_SUCCESSFUL) tty->cindex = tty->ccount = 0; } while (count && (tty->cindex < tty->ccount)) { 44494: 6706 beqs 4449c <== NOT EXECUTED 44496: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 4449a: 6de8 blts 44484 <== NOT EXECUTED *buffer++ = tty->cbuf[tty->cindex++]; count--; } args->bytes_moved = args->count - count; 4449c: 202d 000c movel %a5@(12),%d0 <== NOT EXECUTED 444a0: 9086 subl %d6,%d0 <== NOT EXECUTED 444a2: 2b40 0014 movel %d0,%a5@(20) <== NOT EXECUTED tty->tty_rcvwakeup = 0; 444a6: 42aa 00e4 clrl %a2@(228) <== NOT EXECUTED rtems_semaphore_release (tty->isem); 444aa: 2f2a 0014 movel %a2@(20),%sp@- <== NOT EXECUTED 444ae: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED return sc; } 444b4: 2007 movel %d7,%d0 <== NOT EXECUTED *buffer++ = tty->cbuf[tty->cindex++]; count--; } args->bytes_moved = args->count - count; tty->tty_rcvwakeup = 0; rtems_semaphore_release (tty->isem); 444b6: 588f addql #4,%sp <== NOT EXECUTED return sc; } 444b8: 4cee 3cfc ffcc moveml %fp@(-52),%d2-%d7/%a2-%a5 <== NOT EXECUTED 444be: 4e5e unlk %fp <== NOT EXECUTED 444c0: 4e75 rts <== NOT EXECUTED return sc; } if (tty->cindex == tty->ccount) { tty->cindex = tty->ccount = 0; tty->read_start_column = tty->column; if (tty->device.pollRead != NULL 444c2: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED rtems_semaphore_release (tty->isem); return sc; } if (tty->cindex == tty->ccount) { tty->cindex = tty->ccount = 0; tty->read_start_column = tty->column; 444c6: 256a 0028 002c movel %a2@(40),%a2@(44) <== NOT EXECUTED if (tty->device.pollRead != NULL 444cc: 2248 moveal %a0,%a1 <== NOT EXECUTED tty->tty_rcvwakeup = 0; rtems_semaphore_release (tty->isem); return sc; } if (tty->cindex == tty->ccount) { tty->cindex = tty->ccount = 0; 444ce: 42aa 0020 clrl %a2@(32) <== NOT EXECUTED 444d2: 42aa 0024 clrl %a2@(36) <== NOT EXECUTED tty->read_start_column = tty->column; if (tty->device.pollRead != NULL 444d6: 4a88 tstl %a0 <== NOT EXECUTED 444d8: 6708 beqs 444e2 <== NOT EXECUTED 444da: 4aaa 00b4 tstl %a2@(180) <== NOT EXECUTED 444de: 6700 015e beqw 4463e <== NOT EXECUTED while ( wait ) { /* * Process characters read from raw queue */ while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) && 444e2: 222a 005c movel %a2@(92),%d1 <== 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; 444e6: 242a 0074 movel %a2@(116),%d2 <== NOT EXECUTED while ( wait ) { /* * Process characters read from raw queue */ while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) && 444ea: 202a 0060 movel %a2@(96),%d0 <== 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, 444ee: 41ea 0049 lea %a2@(73),%a0 <== NOT EXECUTED 444f2: 2d48 fff4 movel %a0,%fp@(-12) <== NOT EXECUTED 444f6: 7a01 moveq #1,%d5 <== NOT EXECUTED 444f8: 47fa fd3e lea %pc@(44238 ),%a3 <== NOT EXECUTED while ( wait ) { /* * Process characters read from raw queue */ while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) && 444fc: b081 cmpl %d1,%d0 <== NOT EXECUTED 444fe: 6700 00b6 beqw 445b6 <== NOT EXECUTED 44502: 2039 0005 8554 movel 58554 ,%d0 <== NOT EXECUTED 44508: 5380 subql #1,%d0 <== NOT EXECUTED 4450a: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 4450e: 6f00 00a6 blew 445b6 <== NOT EXECUTED (tty->ccount < (CBUFSIZE-1))) { unsigned char c; unsigned int newHead; newHead = (tty->rawInBuf.Head + 1) % tty->rawInBuf.Size; 44512: 202a 005c movel %a2@(92),%d0 <== NOT EXECUTED 44516: 222a 0064 movel %a2@(100),%d1 <== NOT EXECUTED c = tty->rawInBuf.theBuf[newHead]; 4451a: 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; 4451e: 5280 addql #1,%d0 <== NOT EXECUTED 44520: 4c41 0003 remul %d1,%d3,%d0 <== NOT EXECUTED c = tty->rawInBuf.theBuf[newHead]; 44524: 1830 3800 moveb %a0@(00000000,%d3:l),%d4 <== NOT EXECUTED tty->rawInBuf.Head = newHead; 44528: 2543 005c movel %d3,%a2@(92) <== NOT EXECUTED if(((tty->rawInBuf.Tail-newHead+tty->rawInBuf.Size) 4452c: 222a 0060 movel %a2@(96),%d1 <== NOT EXECUTED 44530: 202a 0064 movel %a2@(100),%d0 <== NOT EXECUTED 44534: 242a 0064 movel %a2@(100),%d2 <== NOT EXECUTED 44538: d081 addl %d1,%d0 <== NOT EXECUTED 4453a: 9083 subl %d3,%d0 <== NOT EXECUTED 4453c: 4c42 0001 remul %d2,%d1,%d0 <== NOT EXECUTED 44540: b2aa 00bc cmpl %a2@(188),%d1 <== NOT EXECUTED 44544: 6444 bccs 4458a <== NOT EXECUTED % tty->rawInBuf.Size) < tty->lowwater) { tty->flow_ctrl &= ~FL_IREQXOF; 44546: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 4454a: 72fe moveq #-2,%d1 <== NOT EXECUTED 4454c: c081 andl %d1,%d0 <== NOT EXECUTED 4454e: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* if tx stopped and XON should be sent... */ if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF)) 44552: 222a 00b8 movel %a2@(184),%d1 <== NOT EXECUTED 44556: 0281 0000 0202 andil #514,%d1 <== NOT EXECUTED 4455c: 0c81 0000 0202 cmpil #514,%d1 <== NOT EXECUTED 44562: 676a beqs 445ce <== NOT EXECUTED /* XON should be sent now... */ (*tty->device.write)(tty->minor, (void *)&(tty->termios.c_cc[VSTART]), 1); } else if (tty->flow_ctrl & FL_MDRTS) { 44564: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 44568: 0800 0008 btst #8,%d0 <== NOT EXECUTED 4456c: 671c beqs 4458a <== NOT EXECUTED tty->flow_ctrl &= ~FL_IRTSOFF; 4456e: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 44572: 72fb moveq #-5,%d1 <== NOT EXECUTED /* activate RTS line */ if (tty->device.startRemoteTx != NULL) { 44574: 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; 44578: c081 andl %d1,%d0 <== NOT EXECUTED 4457a: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED /* activate RTS line */ if (tty->device.startRemoteTx != NULL) { 4457e: 4a88 tstl %a0 <== NOT EXECUTED 44580: 6708 beqs 4458a <== NOT EXECUTED tty->device.startRemoteTx(tty->minor); 44582: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 44586: 4e90 jsr %a0@ <== NOT EXECUTED 44588: 588f addql #4,%sp <== NOT EXECUTED } } } /* continue processing new character */ if (tty->termios.c_lflag & ICANON) { 4458a: 7002 moveq #2,%d0 <== NOT EXECUTED 4458c: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 44590: 676c beqs 445fe <== NOT EXECUTED if (siproc (c, tty)) 44592: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44594: 4280 clrl %d0 <== NOT EXECUTED 44596: 1004 moveb %d4,%d0 <== NOT EXECUTED 44598: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4459a: 4e93 jsr %a3@ <== NOT EXECUTED 4459c: 508f addql #8,%sp <== NOT EXECUTED 4459e: 4a80 tstl %d0 <== NOT EXECUTED 445a0: 6702 beqs 445a4 <== NOT EXECUTED wait = 0; } else { siproc (c, tty); if (tty->ccount >= tty->termios.c_cc[VMIN]) 445a2: 4285 clrl %d5 <== NOT EXECUTED while ( wait ) { /* * Process characters read from raw queue */ while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) && 445a4: 222a 005c movel %a2@(92),%d1 <== NOT EXECUTED else { siproc (c, tty); if (tty->ccount >= tty->termios.c_cc[VMIN]) wait = 0; } timeout = tty->rawInBufSemaphoreTimeout; 445a8: 242a 0070 movel %a2@(112),%d2 <== NOT EXECUTED while ( wait ) { /* * Process characters read from raw queue */ while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) && 445ac: 202a 0060 movel %a2@(96),%d0 <== NOT EXECUTED 445b0: b081 cmpl %d1,%d0 <== NOT EXECUTED 445b2: 6600 ff4e bnew 44502 <== NOT EXECUTED } /* * Wait for characters */ if ( wait ) { 445b6: 4a85 tstl %d5 <== NOT EXECUTED 445b8: 6660 bnes 4461a <== NOT EXECUTED { rtems_interval timeout = tty->rawInBufSemaphoreFirstTimeout; rtems_status_code sc; int wait = (int)1; while ( wait ) { 445ba: 6700 feba beqw 44476 <== NOT EXECUTED /* * Process characters read from raw queue */ while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) && 445be: 222a 005c movel %a2@(92),%d1 <== NOT EXECUTED 445c2: 202a 0060 movel %a2@(96),%d0 <== NOT EXECUTED 445c6: b081 cmpl %d1,%d0 <== NOT EXECUTED 445c8: 6600 ff38 bnew 44502 <== NOT EXECUTED 445cc: 60e8 bras 445b6 <== NOT EXECUTED if(((tty->rawInBuf.Tail-newHead+tty->rawInBuf.Size) % tty->rawInBuf.Size) < tty->lowwater) { tty->flow_ctrl &= ~FL_IREQXOF; /* if tx stopped and XON should be sent... */ if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF)) 445ce: 4aaa 0094 tstl %a2@(148) <== NOT EXECUTED 445d2: 670a beqs 445de <== NOT EXECUTED 445d4: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 445d8: 0800 0005 btst #5,%d0 <== NOT EXECUTED 445dc: 6786 beqs 44564 <== 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, 445de: 4878 0001 pea 1 <== NOT EXECUTED 445e2: 2f2e fff4 movel %fp@(-12),%sp@- <== NOT EXECUTED 445e6: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 445ea: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 445ee: 4e90 jsr %a0@ <== NOT EXECUTED } } } /* continue processing new character */ if (tty->termios.c_lflag & ICANON) { 445f0: 7002 moveq #2,%d0 <== 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, 445f2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } } } /* continue processing new character */ if (tty->termios.c_lflag & ICANON) { 445f8: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 445fc: 6694 bnes 44592 <== NOT EXECUTED if (siproc (c, tty)) wait = 0; } else { siproc (c, tty); 445fe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44600: 4280 clrl %d0 <== NOT EXECUTED 44602: 1004 moveb %d4,%d0 <== NOT EXECUTED 44604: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44606: 4e93 jsr %a3@ <== NOT EXECUTED if (tty->ccount >= tty->termios.c_cc[VMIN]) 44608: 4280 clrl %d0 <== NOT EXECUTED 4460a: 102a 0047 moveb %a2@(71),%d0 <== NOT EXECUTED 4460e: 508f addql #8,%sp <== NOT EXECUTED 44610: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 44614: 6e8e bgts 445a4 <== NOT EXECUTED 44616: 4285 clrl %d5 <== NOT EXECUTED 44618: 608a bras 445a4 <== NOT EXECUTED /* * Wait for characters */ if ( wait ) { sc = rtems_semaphore_obtain (tty->rawInBuf.Semaphore, 4461a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4461c: 2f2a 006c movel %a2@(108),%sp@- <== NOT EXECUTED 44620: 2f2a 0068 movel %a2@(104),%sp@- <== NOT EXECUTED 44624: 4eb9 0004 5be8 jsr 45be8 <== NOT EXECUTED tty->rawInBufSemaphoreOptions, timeout); if (sc != RTEMS_SUCCESSFUL) 4462a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 44630: 4a80 tstl %d0 <== NOT EXECUTED 44632: 6600 fe42 bnew 44476 <== NOT EXECUTED { rtems_interval timeout = tty->rawInBufSemaphoreFirstTimeout; rtems_status_code sc; int wait = (int)1; while ( wait ) { 44636: 4a85 tstl %d5 <== NOT EXECUTED 44638: 6684 bnes 445be <== NOT EXECUTED 4463a: 6000 fe3a braw 44476 <== NOT EXECUTED static rtems_status_code fillBufferPoll (struct rtems_termios_tty *tty) { int n; if (tty->termios.c_lflag & ICANON) { 4463e: 7002 moveq #2,%d0 <== NOT EXECUTED 44640: c0aa 003c andl %a2@(60),%d0 <== NOT EXECUTED 44644: 47fa fbf2 lea %pc@(44238 ),%a3 <== NOT EXECUTED for (;;) { n = (*tty->device.pollRead)(tty->minor); if (n < 0) { rtems_task_wake_after (1); 44648: 243c 0004 6154 movel #287060,%d2 <== NOT EXECUTED static rtems_status_code fillBufferPoll (struct rtems_termios_tty *tty) { int n; if (tty->termios.c_lflag & ICANON) { 4464e: 4a80 tstl %d0 <== NOT EXECUTED 44650: 6600 00a6 bnew 446f8 <== NOT EXECUTED } } } else { rtems_interval then, now; if (!tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME]) 44654: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 44658: 6608 bnes 44662 <== NOT EXECUTED 4465a: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 4465e: 6600 00f0 bnew 44750 <== 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); 44662: 2a0e movel %fp,%d5 <== NOT EXECUTED } } else { if (!tty->termios.c_cc[VTIME]) break; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); 44664: 280e movel %fp,%d4 <== NOT EXECUTED } } rtems_task_wake_after (1); } else { siproc (n, tty); 44666: 243c 0004 4238 movel #279096,%d2 <== 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); 4466c: 5985 subql #4,%d5 <== NOT EXECUTED 4466e: 47f9 0004 5274 lea 45274 ,%a3 <== NOT EXECUTED rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); if ((now - then) > tty->vtimeTicks) { break; } } rtems_task_wake_after (1); 44674: 263c 0004 6154 movel #287060,%d3 <== NOT EXECUTED } } else { if (!tty->termios.c_cc[VTIME]) break; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); 4467a: 5184 subql #8,%d4 <== 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); 4467c: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 44680: 4e90 jsr %a0@ <== NOT EXECUTED if (n < 0) { 44682: 588f addql #4,%sp <== NOT EXECUTED 44684: 4a80 tstl %d0 <== NOT EXECUTED 44686: 6c30 bges 446b8 <== NOT EXECUTED if (tty->termios.c_cc[VMIN]) { 44688: 4a2a 0047 tstb %a2@(71) <== NOT EXECUTED 4468c: 6700 008e beqw 4471c <== NOT EXECUTED if (tty->termios.c_cc[VTIME] && tty->ccount) { 44690: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 44694: 6708 beqs 4469e <== NOT EXECUTED 44696: 4aaa 0020 tstl %a2@(32) <== NOT EXECUTED 4469a: 6600 0088 bnew 44724 <== NOT EXECUTED rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); if ((now - then) > tty->vtimeTicks) { break; } } rtems_task_wake_after (1); 4469e: 2043 moveal %d3,%a0 <== NOT EXECUTED 446a0: 4878 0001 pea 1 <== NOT EXECUTED 446a4: 4e90 jsr %a0@ <== NOT EXECUTED 446a6: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED 446aa: 588f addql #4,%sp <== 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); 446ac: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 446b0: 4e90 jsr %a0@ <== NOT EXECUTED if (n < 0) { 446b2: 588f addql #4,%sp <== NOT EXECUTED 446b4: 4a80 tstl %d0 <== NOT EXECUTED 446b6: 6dd0 blts 44688 <== NOT EXECUTED } } rtems_task_wake_after (1); } else { siproc (n, tty); 446b8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 446ba: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 446c0: 2042 moveal %d2,%a0 <== NOT EXECUTED 446c2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 446c4: 4e90 jsr %a0@ <== NOT EXECUTED if (tty->ccount >= tty->termios.c_cc[VMIN]) 446c6: 122a 0047 moveb %a2@(71),%d1 <== NOT EXECUTED 446ca: 4280 clrl %d0 <== NOT EXECUTED 446cc: 508f addql #8,%sp <== NOT EXECUTED 446ce: 1001 moveb %d1,%d0 <== NOT EXECUTED 446d0: b0aa 0020 cmpl %a2@(32),%d0 <== NOT EXECUTED 446d4: 6f00 fda0 blew 44476 <== NOT EXECUTED break; if (tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME]) 446d8: 4a01 tstb %d1 <== NOT EXECUTED 446da: 6708 beqs 446e4 <== NOT EXECUTED 446dc: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 446e0: 6600 00a0 bnew 44782 <== NOT EXECUTED 446e4: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED 446e8: 6092 bras 4467c <== NOT EXECUTED if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); if (n < 0) { rtems_task_wake_after (1); 446ea: 2042 moveal %d2,%a0 <== NOT EXECUTED 446ec: 4878 0001 pea 1 <== NOT EXECUTED 446f0: 4e90 jsr %a0@ <== NOT EXECUTED static rtems_status_code fillBufferPoll (struct rtems_termios_tty *tty) { int n; if (tty->termios.c_lflag & ICANON) { 446f2: 226a 00a0 moveal %a2@(160),%a1 <== NOT EXECUTED for (;;) { n = (*tty->device.pollRead)(tty->minor); if (n < 0) { rtems_task_wake_after (1); 446f6: 588f addql #4,%sp <== NOT EXECUTED { int n; if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); 446f8: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 446fc: 4e91 jsr %a1@ <== NOT EXECUTED if (n < 0) { rtems_task_wake_after (1); } else { if (siproc (n, tty)) 446fe: 4281 clrl %d1 <== NOT EXECUTED int n; if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); if (n < 0) { 44700: 588f addql #4,%sp <== NOT EXECUTED rtems_task_wake_after (1); } else { if (siproc (n, tty)) 44702: 1200 moveb %d0,%d1 <== NOT EXECUTED int n; if (tty->termios.c_lflag & ICANON) { for (;;) { n = (*tty->device.pollRead)(tty->minor); if (n < 0) { 44704: 4a80 tstl %d0 <== NOT EXECUTED 44706: 6de2 blts 446ea <== NOT EXECUTED rtems_task_wake_after (1); } else { if (siproc (n, tty)) 44708: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4470a: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4470c: 4e93 jsr %a3@ <== NOT EXECUTED 4470e: 508f addql #8,%sp <== NOT EXECUTED 44710: 4a80 tstl %d0 <== NOT EXECUTED 44712: 6600 fd62 bnew 44476 <== NOT EXECUTED static rtems_status_code fillBufferPoll (struct rtems_termios_tty *tty) { int n; if (tty->termios.c_lflag & ICANON) { 44716: 226a 00a0 moveal %a2@(160),%a1 <== NOT EXECUTED 4471a: 60dc bras 446f8 <== NOT EXECUTED break; } } } else { if (!tty->termios.c_cc[VTIME]) 4471c: 4a2a 0046 tstb %a2@(70) <== NOT EXECUTED 44720: 6700 fd54 beqw 44476 <== NOT EXECUTED break; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); 44724: 2f04 movel %d4,%sp@- <== NOT EXECUTED 44726: 4878 0002 pea 2 <== NOT EXECUTED 4472a: 4e93 jsr %a3@ <== NOT EXECUTED if ((now - then) > tty->vtimeTicks) { 4472c: 222e fff8 movel %fp@(-8),%d1 <== NOT EXECUTED 44730: 92ae fffc subl %fp@(-4),%d1 <== NOT EXECUTED 44734: 508f addql #8,%sp <== NOT EXECUTED 44736: b2aa 0054 cmpl %a2@(84),%d1 <== NOT EXECUTED 4473a: 6200 fd3a bhiw 44476 <== NOT EXECUTED break; } } rtems_task_wake_after (1); 4473e: 2043 moveal %d3,%a0 <== NOT EXECUTED 44740: 4878 0001 pea 1 <== NOT EXECUTED 44744: 4e90 jsr %a0@ <== NOT EXECUTED 44746: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED 4474a: 588f addql #4,%sp <== NOT EXECUTED 4474c: 6000 ff5e braw 446ac <== 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); 44750: 486e fffc pea %fp@(-4) <== 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); 44754: 2a0e movel %fp,%d5 <== 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); 44756: 4878 0002 pea 2 <== NOT EXECUTED 4475a: 4eb9 0004 5274 jsr 45274 <== NOT EXECUTED 44760: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED } } else { if (!tty->termios.c_cc[VTIME]) break; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); 44764: 280e movel %fp,%d4 <== 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); 44766: 508f addql #8,%sp <== NOT EXECUTED } } rtems_task_wake_after (1); } else { siproc (n, tty); 44768: 243c 0004 4238 movel #279096,%d2 <== 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); 4476e: 5985 subql #4,%d5 <== NOT EXECUTED 44770: 47f9 0004 5274 lea 45274 ,%a3 <== NOT EXECUTED rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); if ((now - then) > tty->vtimeTicks) { break; } } rtems_task_wake_after (1); 44776: 263c 0004 6154 movel #287060,%d3 <== NOT EXECUTED } } else { if (!tty->termios.c_cc[VTIME]) break; rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); 4477c: 5184 subql #8,%d4 <== NOT EXECUTED 4477e: 6000 fefc braw 4467c <== 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); 44782: 2f05 movel %d5,%sp@- <== NOT EXECUTED 44784: 4878 0002 pea 2 <== NOT EXECUTED 44788: 4e93 jsr %a3@ <== NOT EXECUTED 4478a: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED 4478e: 508f addql #8,%sp <== NOT EXECUTED 44790: 6000 feea braw 4467c <== NOT EXECUTED 00043574 : * 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) { 43574: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 43578: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 4357c: 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)) 43580: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43584: 0280 0000 0403 andil #1027,%d0 <== NOT EXECUTED 4358a: 0c80 0000 0401 cmpil #1025,%d0 <== NOT EXECUTED 43590: 6700 0114 beqw 436a6 <== NOT EXECUTED tty->flow_ctrl |= FL_ISNTXOF; rtems_interrupt_enable(level); nToSend = 1; } else if ((tty->flow_ctrl & (FL_IREQXOF | FL_ISNTXOF)) 43594: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43598: 7203 moveq #3,%d1 <== NOT EXECUTED 4359a: c081 andl %d1,%d0 <== NOT EXECUTED 4359c: 7402 moveq #2,%d2 <== NOT EXECUTED 4359e: b480 cmpl %d0,%d2 <== NOT EXECUTED 435a0: 6700 014a beqw 436ec <== NOT EXECUTED rtems_interrupt_enable(level); nToSend = 1; } else { if ( tty->rawOutBuf.Head == tty->rawOutBuf.Tail ) { 435a4: 222a 0080 movel %a2@(128),%d1 <== NOT EXECUTED 435a8: 202a 0084 movel %a2@(132),%d0 <== NOT EXECUTED 435ac: b081 cmpl %d1,%d0 <== NOT EXECUTED 435ae: 6700 009e beqw 4364e <== NOT EXECUTED rtems_semaphore_release (tty->rawOutBuf.Semaphore); } return 0; } rtems_interrupt_disable(level); 435b2: 223c 0000 0700 movel #1792,%d1 <== NOT EXECUTED 435b8: 40c0 movew %sr,%d0 <== NOT EXECUTED 435ba: 8280 orl %d0,%d1 <== NOT EXECUTED 435bc: 46c1 movew %d1,%sr <== NOT EXECUTED len = tty->t_dqlen; 435be: 222a 0090 movel %a2@(144),%d1 <== NOT EXECUTED tty->t_dqlen = 0; 435c2: 42aa 0090 clrl %a2@(144) <== NOT EXECUTED rtems_interrupt_enable(level); 435c6: 46c0 movew %d0,%sr <== NOT EXECUTED newTail = (tty->rawOutBuf.Tail + len) % tty->rawOutBuf.Size; 435c8: 206a 0084 moveal %a2@(132),%a0 <== NOT EXECUTED 435cc: 202a 0088 movel %a2@(136),%d0 <== NOT EXECUTED 435d0: d288 addl %a0,%d1 <== NOT EXECUTED 435d2: 4c40 1003 remul %d0,%d3,%d1 <== NOT EXECUTED tty->rawOutBuf.Tail = newTail; 435d6: 2543 0084 movel %d3,%a2@(132) <== NOT EXECUTED if (tty->rawOutBufState == rob_wait) { 435da: 7202 moveq #2,%d1 <== NOT EXECUTED 435dc: b2aa 0094 cmpl %a2@(148),%d1 <== NOT EXECUTED 435e0: 6700 008c beqw 4366e <== NOT EXECUTED /* * wake up any pending writer task */ rtems_semaphore_release (tty->rawOutBuf.Semaphore); } if (newTail == tty->rawOutBuf.Head) { 435e4: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 435e8: b680 cmpl %d0,%d3 <== NOT EXECUTED 435ea: 6700 0098 beqw 43684 <== NOT EXECUTED if ( tty->tty_snd.sw_pfn != NULL) { (*tty->tty_snd.sw_pfn)(&tty->termios, tty->tty_snd.sw_arg); } } /* check, whether output should stop due to received XOFF */ else if ((tty->flow_ctrl & (FL_MDXON | FL_ORCVXOF)) 435ee: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 435f2: 0280 0000 0210 andil #528,%d0 <== NOT EXECUTED 435f8: 0c80 0000 0210 cmpil #528,%d0 <== NOT EXECUTED 435fe: 6700 0130 beqw 43730 <== NOT EXECUTED } else { /* * Buffer not empty, start tranmitter */ if (newTail > tty->rawOutBuf.Head) 43602: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED 43606: b083 cmpl %d3,%d0 <== NOT EXECUTED 43608: 645c bccs 43666 <== NOT EXECUTED nToSend = tty->rawOutBuf.Size - newTail; 4360a: 242a 0088 movel %a2@(136),%d2 <== NOT EXECUTED 4360e: 9483 subl %d3,%d2 <== NOT EXECUTED else nToSend = tty->rawOutBuf.Head - newTail; /* 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)) { 43610: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 43614: 0280 0000 0600 andil #1536,%d0 <== NOT EXECUTED 4361a: 6702 beqs 4361e <== NOT EXECUTED 4361c: 7401 moveq #1,%d2 <== NOT EXECUTED nToSend = 1; } tty->rawOutBufState = rob_busy; /*apm*/ (*tty->device.write)(tty->minor, 4361e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 43620: 222a 007c movel %a2@(124),%d1 <== NOT EXECUTED 43624: d283 addl %d3,%d1 <== NOT EXECUTED 43626: 2f01 movel %d1,%sp@- <== NOT EXECUTED 43628: 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*/ 4362c: 7001 moveq #1,%d0 <== NOT EXECUTED 4362e: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED (*tty->device.write)(tty->minor, 43632: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 43636: 4e90 jsr %a0@ <== NOT EXECUTED 43638: dffc 0000 000c addal #12,%sp <== NOT EXECUTED &tty->rawOutBuf.theBuf[newTail], nToSend); } tty->rawOutBuf.Tail = newTail; /*apm*/ 4363e: 2543 0084 movel %d3,%a2@(132) <== NOT EXECUTED } return nToSend; } 43642: 2002 movel %d2,%d0 <== NOT EXECUTED 43644: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4364a: 4e5e unlk %fp <== NOT EXECUTED 4364c: 4e75 rts <== NOT EXECUTED else { if ( tty->rawOutBuf.Head == tty->rawOutBuf.Tail ) { /* * buffer was empty */ if (tty->rawOutBufState == rob_wait) { 4364e: 7002 moveq #2,%d0 <== NOT EXECUTED 43650: b0aa 0094 cmpl %a2@(148),%d0 <== NOT EXECUTED 43654: 6700 0102 beqw 43758 <== NOT EXECUTED /* * this should never happen... */ rtems_semaphore_release (tty->rawOutBuf.Semaphore); 43658: 4282 clrl %d2 <== NOT EXECUTED nToSend); } tty->rawOutBuf.Tail = newTail; /*apm*/ } return nToSend; } 4365a: 2002 movel %d2,%d0 <== NOT EXECUTED 4365c: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 43662: 4e5e unlk %fp <== NOT EXECUTED 43664: 4e75 rts <== NOT EXECUTED * Buffer not empty, start tranmitter */ if (newTail > tty->rawOutBuf.Head) nToSend = tty->rawOutBuf.Size - newTail; else nToSend = tty->rawOutBuf.Head - newTail; 43666: 242a 0080 movel %a2@(128),%d2 <== NOT EXECUTED 4366a: 9483 subl %d3,%d2 <== NOT EXECUTED 4366c: 60a2 bras 43610 <== NOT EXECUTED tty->rawOutBuf.Tail = newTail; if (tty->rawOutBufState == rob_wait) { /* * wake up any pending writer task */ rtems_semaphore_release (tty->rawOutBuf.Semaphore); 4366e: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 43672: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED } if (newTail == tty->rawOutBuf.Head) { 43678: 202a 0080 movel %a2@(128),%d0 <== NOT EXECUTED tty->rawOutBuf.Tail = newTail; if (tty->rawOutBufState == rob_wait) { /* * wake up any pending writer task */ rtems_semaphore_release (tty->rawOutBuf.Semaphore); 4367c: 588f addql #4,%sp <== NOT EXECUTED } if (newTail == tty->rawOutBuf.Head) { 4367e: b680 cmpl %d0,%d3 <== NOT EXECUTED 43680: 6600 ff6c bnew 435ee <== NOT EXECUTED nToSend = 0; /* * check to see if snd wakeup callback was set */ if ( tty->tty_snd.sw_pfn != NULL) { 43684: 206a 00d4 moveal %a2@(212),%a0 <== NOT EXECUTED } if (newTail == tty->rawOutBuf.Head) { /* * Buffer has become empty */ tty->rawOutBufState = rob_idle; 43688: 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) { 4368c: 4a88 tstl %a0 <== NOT EXECUTED 4368e: 6700 00da beqw 4376a <== NOT EXECUTED (*tty->tty_snd.sw_pfn)(&tty->termios, tty->tty_snd.sw_arg); 43692: 2f2a 00d8 movel %a2@(216),%sp@- <== NOT EXECUTED 43696: 4282 clrl %d2 <== NOT EXECUTED 43698: 486a 0030 pea %a2@(48) <== NOT EXECUTED 4369c: 4e90 jsr %a0@ <== NOT EXECUTED 4369e: 508f addql #8,%sp <== NOT EXECUTED tty->rawOutBufState = rob_busy; /*apm*/ (*tty->device.write)(tty->minor, &tty->rawOutBuf.theBuf[newTail], nToSend); } tty->rawOutBuf.Tail = newTail; /*apm*/ 436a0: 2543 0084 movel %d3,%a2@(132) <== NOT EXECUTED 436a4: 609c bras 43642 <== NOT EXECUTED /* check for XOF/XON to send */ if ((tty->flow_ctrl & (FL_MDXOF | FL_IREQXOF | FL_ISNTXOF)) == (FL_MDXOF | FL_IREQXOF)) { /* XOFF should be sent now... */ (*tty->device.write)(tty->minor, 436a6: 4878 0001 pea 1 <== NOT EXECUTED 436aa: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 436ae: 486a 004a pea %a2@(74) <== NOT EXECUTED 436b2: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 436b6: 4e90 jsr %a0@ <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTOP]), 1); rtems_interrupt_disable(level); 436b8: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 436be: 40c1 movew %sr,%d1 <== NOT EXECUTED 436c0: 8081 orl %d1,%d0 <== NOT EXECUTED 436c2: 46c0 movew %d0,%sr <== NOT EXECUTED tty->t_dqlen--; tty->flow_ctrl |= FL_ISNTXOF; 436c4: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 436c8: 7402 moveq #2,%d2 <== NOT EXECUTED 436ca: 8082 orl %d2,%d0 <== 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--; 436cc: 53aa 0090 subql #1,%a2@(144) <== NOT EXECUTED tty->flow_ctrl |= FL_ISNTXOF; 436d0: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED rtems_interrupt_enable(level); 436d4: 46c1 movew %d1,%sr <== NOT EXECUTED 436d6: 143c 0001 moveb #1,%d2 <== NOT EXECUTED nToSend); } tty->rawOutBuf.Tail = newTail; /*apm*/ } return nToSend; } 436da: 2002 movel %d2,%d0 <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTOP]), 1); rtems_interrupt_disable(level); tty->t_dqlen--; tty->flow_ctrl |= FL_ISNTXOF; rtems_interrupt_enable(level); 436dc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED nToSend); } tty->rawOutBuf.Tail = newTail; /*apm*/ } return nToSend; } 436e2: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 436e8: 4e5e unlk %fp <== NOT EXECUTED 436ea: 4e75 rts <== 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, 436ec: 4878 0001 pea 1 <== NOT EXECUTED 436f0: 206a 00a4 moveal %a2@(164),%a0 <== NOT EXECUTED 436f4: 486a 0049 pea %a2@(73) <== NOT EXECUTED 436f8: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 436fc: 4e90 jsr %a0@ <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTART]), 1); rtems_interrupt_disable(level); 436fe: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 43704: 40c1 movew %sr,%d1 <== NOT EXECUTED 43706: 8081 orl %d1,%d0 <== NOT EXECUTED 43708: 46c0 movew %d0,%sr <== NOT EXECUTED tty->t_dqlen--; tty->flow_ctrl &= ~FL_ISNTXOF; 4370a: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 4370e: 74fd moveq #-3,%d2 <== NOT EXECUTED 43710: c082 andl %d2,%d0 <== NOT EXECUTED */ (*tty->device.write)(tty->minor, (void *)&(tty->termios.c_cc[VSTART]), 1); rtems_interrupt_disable(level); tty->t_dqlen--; 43712: 53aa 0090 subql #1,%a2@(144) <== NOT EXECUTED tty->flow_ctrl &= ~FL_ISNTXOF; 43716: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED rtems_interrupt_enable(level); 4371a: 46c1 movew %d1,%sr <== NOT EXECUTED 4371c: 7401 moveq #1,%d2 <== NOT EXECUTED nToSend); } tty->rawOutBuf.Tail = newTail; /*apm*/ } return nToSend; } 4371e: 2002 movel %d2,%d0 <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTART]), 1); rtems_interrupt_disable(level); tty->t_dqlen--; tty->flow_ctrl &= ~FL_ISNTXOF; rtems_interrupt_enable(level); 43720: dffc 0000 000c addal #12,%sp <== NOT EXECUTED nToSend); } tty->rawOutBuf.Tail = newTail; /*apm*/ } return nToSend; } 43726: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 4372c: 4e5e unlk %fp <== NOT EXECUTED 4372e: 4e75 rts <== NOT EXECUTED /* check, whether output should stop due to received XOFF */ else if ((tty->flow_ctrl & (FL_MDXON | FL_ORCVXOF)) == (FL_MDXON | FL_ORCVXOF)) { /* Buffer not empty, but output stops due to XOFF */ /* set flag, that output has been stopped */ rtems_interrupt_disable(level); 43730: 303c 0700 movew #1792,%d0 <== NOT EXECUTED 43734: 40c1 movew %sr,%d1 <== NOT EXECUTED 43736: 8081 orl %d1,%d0 <== NOT EXECUTED 43738: 46c0 movew %d0,%sr <== NOT EXECUTED tty->flow_ctrl |= FL_OSTOP; 4373a: 202a 00b8 movel %a2@(184),%d0 <== NOT EXECUTED 4373e: 7420 moveq #32,%d2 <== NOT EXECUTED 43740: 8082 orl %d2,%d0 <== NOT EXECUTED 43742: 2540 00b8 movel %d0,%a2@(184) <== NOT EXECUTED tty->rawOutBufState = rob_busy; /*apm*/ 43746: 7001 moveq #1,%d0 <== NOT EXECUTED 43748: 2540 0094 movel %d0,%a2@(148) <== NOT EXECUTED rtems_interrupt_enable(level); 4374c: 46c1 movew %d1,%sr <== NOT EXECUTED tty->rawOutBufState = rob_busy; /*apm*/ (*tty->device.write)(tty->minor, &tty->rawOutBuf.theBuf[newTail], nToSend); } tty->rawOutBuf.Tail = newTail; /*apm*/ 4374e: 2543 0084 movel %d3,%a2@(132) <== NOT EXECUTED /* Buffer not empty, but output stops due to XOFF */ /* set flag, that output has been stopped */ rtems_interrupt_disable(level); tty->flow_ctrl |= FL_OSTOP; tty->rawOutBufState = rob_busy; /*apm*/ rtems_interrupt_enable(level); 43752: 4202 clrb %d2 <== NOT EXECUTED 43754: 6000 feec braw 43642 <== NOT EXECUTED */ if (tty->rawOutBufState == rob_wait) { /* * this should never happen... */ rtems_semaphore_release (tty->rawOutBuf.Semaphore); 43758: 2f2a 008c movel %a2@(140),%sp@- <== NOT EXECUTED 4375c: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED 43762: 588f addql #4,%sp <== NOT EXECUTED 43764: 4282 clrl %d2 <== NOT EXECUTED 43766: 6000 fef2 braw 4365a <== NOT EXECUTED tty->rawOutBufState = rob_busy; /*apm*/ (*tty->device.write)(tty->minor, &tty->rawOutBuf.theBuf[newTail], nToSend); } tty->rawOutBuf.Tail = newTail; /*apm*/ 4376a: 2543 0084 movel %d3,%a2@(132) <== NOT EXECUTED nToSend = 0; /* * check to see if snd wakeup callback was set */ if ( tty->tty_snd.sw_pfn != NULL) { 4376e: 4282 clrl %d2 <== NOT EXECUTED 43770: 6000 fed0 braw 43642 <== NOT EXECUTED 000451e4 : /* * this task actually processes any receive events */ static rtems_task rtems_termios_rxdaemon(rtems_task_argument argument) { 451e4: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 451e8: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@ <== NOT EXECUTED 451ec: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 451f0: 240e movel %fp,%d2 <== NOT EXECUTED 451f2: 260e movel %fp,%d3 <== NOT EXECUTED 451f4: 5d82 subql #6,%d2 <== NOT EXECUTED 451f6: 47f9 0004 54f4 lea 454f4 ,%a3 <== NOT EXECUTED 451fc: 4bf9 0004 5f24 lea 45f24 ,%a5 <== NOT EXECUTED 45202: 5383 subql #1,%d3 <== NOT EXECUTED 45204: 49f9 0004 37d2 lea 437d2 ,%a4 <== NOT EXECUTED char c_buf; while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_RX_PROC_EVENT | 4520a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4520c: 42a7 clrl %sp@- <== NOT EXECUTED 4520e: 4878 0002 pea 2 <== NOT EXECUTED 45212: 4878 0003 pea 3 <== NOT EXECUTED 45216: 4e93 jsr %a3@ <== NOT EXECUTED TERMIOS_RX_TERMINATE_EVENT), RTEMS_EVENT_ANY | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &the_event); if ((the_event & TERMIOS_RX_TERMINATE_EVENT) != 0) { 45218: 7001 moveq #1,%d0 <== NOT EXECUTED 4521a: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45220: c0ae fffa andl %fp@(-6),%d0 <== NOT EXECUTED 45224: 6642 bnes 45268 <== NOT EXECUTED } else { /* * do something */ c = tty->device.pollRead(tty->minor); 45226: 2f2a 0010 movel %a2@(16),%sp@- <== NOT EXECUTED 4522a: 206a 00a0 moveal %a2@(160),%a0 <== NOT EXECUTED 4522e: 4e90 jsr %a0@ <== NOT EXECUTED if (c != EOF) { 45230: 588f addql #4,%sp <== NOT EXECUTED 45232: 72ff moveq #-1,%d1 <== NOT EXECUTED 45234: b280 cmpl %d0,%d1 <== NOT EXECUTED 45236: 67d2 beqs 4520a <== NOT EXECUTED /* * pollRead did call enqueue on its own */ c_buf = c; rtems_termios_enqueue_raw_characters ( 45238: 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; 4523c: 1d40 ffff moveb %d0,%fp@(-1) <== NOT EXECUTED rtems_termios_enqueue_raw_characters ( 45240: 2f03 movel %d3,%sp@- <== NOT EXECUTED 45242: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45244: 4e94 jsr %a4@ <== NOT EXECUTED 45246: dffc 0000 000c addal #12,%sp <== NOT EXECUTED char c_buf; while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_RX_PROC_EVENT | 4524c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4524e: 42a7 clrl %sp@- <== NOT EXECUTED 45250: 4878 0002 pea 2 <== NOT EXECUTED 45254: 4878 0003 pea 3 <== NOT EXECUTED 45258: 4e93 jsr %a3@ <== NOT EXECUTED TERMIOS_RX_TERMINATE_EVENT), RTEMS_EVENT_ANY | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &the_event); if ((the_event & TERMIOS_RX_TERMINATE_EVENT) != 0) { 4525a: 7001 moveq #1,%d0 <== NOT EXECUTED 4525c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45262: c0ae fffa andl %fp@(-6),%d0 <== NOT EXECUTED 45266: 67be beqs 45226 <== NOT EXECUTED tty->rxTaskId = 0; 45268: 42aa 00c4 clrl %a2@(196) <== NOT EXECUTED rtems_task_delete(RTEMS_SELF); 4526c: 42a7 clrl %sp@- <== NOT EXECUTED 4526e: 4e95 jsr %a5@ <== NOT EXECUTED 45270: 588f addql #4,%sp <== NOT EXECUTED 45272: 6096 bras 4520a <== NOT EXECUTED 00043558 : * 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) { 43558: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * send event to rx daemon task */ rtems_event_send(tty->rxTaskId,TERMIOS_RX_PROC_EVENT); 4355c: 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) { 43560: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED /* * send event to rx daemon task */ rtems_event_send(tty->rxTaskId,TERMIOS_RX_PROC_EVENT); 43564: 2f28 00c4 movel %a0@(196),%sp@- <== NOT EXECUTED 43568: 4eb9 0004 56a0 jsr 456a0 <== NOT EXECUTED 4356e: 508f addql #8,%sp <== NOT EXECUTED } 43570: 4e5e unlk %fp <== NOT EXECUTED 43572: 4e75 rts 0004515e : /* * this task actually processes any transmit events */ static rtems_task rtems_termios_txdaemon(rtems_task_argument argument) { 4515e: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 45162: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 45166: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4516a: 240e movel %fp,%d2 <== NOT EXECUTED 4516c: 5982 subql #4,%d2 <== NOT EXECUTED 4516e: 47f9 0004 54f4 lea 454f4 ,%a3 <== NOT EXECUTED 45174: 4bf9 0004 5f24 lea 45f24 ,%a5 <== NOT EXECUTED 4517a: 49f9 0004 3574 lea 43574 ,%a4 <== NOT EXECUTED while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_TX_START_EVENT | 45180: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45182: 42a7 clrl %sp@- <== NOT EXECUTED 45184: 4878 0002 pea 2 <== NOT EXECUTED 45188: 4878 0003 pea 3 <== NOT EXECUTED 4518c: 4e93 jsr %a3@ <== NOT EXECUTED TERMIOS_TX_TERMINATE_EVENT), RTEMS_EVENT_ANY | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &the_event); if ((the_event & TERMIOS_TX_TERMINATE_EVENT) != 0) { 4518e: 7001 moveq #1,%d0 <== NOT EXECUTED 45190: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 45196: c0ae fffc andl %fp@(-4),%d0 <== NOT EXECUTED 4519a: 663c bnes 451d8 <== NOT EXECUTED } else { /* * call any line discipline start function */ if (rtems_termios_linesw[tty->t_line].l_start != NULL) { 4519c: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 451a0: eb88 lsll #5,%d0 <== NOT EXECUTED 451a2: 0680 0005 933c addil #365372,%d0 <== NOT EXECUTED 451a8: 2240 moveal %d0,%a1 <== NOT EXECUTED 451aa: 2051 moveal %a1@,%a0 <== NOT EXECUTED 451ac: 4a88 tstl %a0 <== NOT EXECUTED 451ae: 6706 beqs 451b6 <== NOT EXECUTED rtems_termios_linesw[tty->t_line].l_start(tty); 451b0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 451b2: 4e90 jsr %a0@ <== NOT EXECUTED 451b4: 588f addql #4,%sp <== NOT EXECUTED } /* * try to push further characters to device */ rtems_termios_refill_transmitter(tty); 451b6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 451b8: 4e94 jsr %a4@ <== NOT EXECUTED 451ba: 588f addql #4,%sp <== NOT EXECUTED while (1) { /* * wait for rtems event */ rtems_event_receive((TERMIOS_TX_START_EVENT | 451bc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 451be: 42a7 clrl %sp@- <== NOT EXECUTED 451c0: 4878 0002 pea 2 <== NOT EXECUTED 451c4: 4878 0003 pea 3 <== NOT EXECUTED 451c8: 4e93 jsr %a3@ <== NOT EXECUTED TERMIOS_TX_TERMINATE_EVENT), RTEMS_EVENT_ANY | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &the_event); if ((the_event & TERMIOS_TX_TERMINATE_EVENT) != 0) { 451ca: 7001 moveq #1,%d0 <== NOT EXECUTED 451cc: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 451d2: c0ae fffc andl %fp@(-4),%d0 <== NOT EXECUTED 451d6: 67c4 beqs 4519c <== NOT EXECUTED tty->txTaskId = 0; 451d8: 42aa 00c8 clrl %a2@(200) <== NOT EXECUTED rtems_task_delete(RTEMS_SELF); 451dc: 42a7 clrl %sp@- <== NOT EXECUTED 451de: 4e95 jsr %a5@ <== NOT EXECUTED 451e0: 588f addql #4,%sp <== NOT EXECUTED 451e2: 609c bras 45180 <== NOT EXECUTED 000442a8 : rtems_termios_puts (&c, 1, tty); } rtems_status_code rtems_termios_write (void *arg) { 442a8: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 442ac: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ <== NOT EXECUTED 442b0: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED rtems_libio_rw_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; 442b4: 2053 moveal %a3@,%a0 <== NOT EXECUTED 442b6: 2468 0028 moveal %a0@(40),%a2 <== NOT EXECUTED rtems_status_code sc; sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 442ba: 42a7 clrl %sp@- <== NOT EXECUTED 442bc: 42a7 clrl %sp@- <== NOT EXECUTED 442be: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 442c2: 4eb9 0004 5be8 jsr 45be8 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 442c8: 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); 442ce: 2600 movel %d0,%d3 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) 442d0: 662c bnes 442fe <== NOT EXECUTED return sc; if (rtems_termios_linesw[tty->t_line].l_write != NULL) { 442d2: 202a 00cc movel %a2@(204),%d0 <== NOT EXECUTED 442d6: eb88 lsll #5,%d0 <== NOT EXECUTED 442d8: 0680 0005 9334 addil #365364,%d0 <== NOT EXECUTED 442de: 2240 moveal %d0,%a1 <== NOT EXECUTED 442e0: 2051 moveal %a1@,%a0 <== NOT EXECUTED 442e2: 4a88 tstl %a0 <== NOT EXECUTED 442e4: 6724 beqs 4430a <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_write(tty,args); 442e6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 442e8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 442ea: 4e90 jsr %a0@ <== NOT EXECUTED rtems_semaphore_release (tty->osem); 442ec: 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); 442f0: 2600 movel %d0,%d3 <== NOT EXECUTED rtems_semaphore_release (tty->osem); 442f2: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED 442f8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED rtems_termios_puts (args->buffer, args->count, tty); args->bytes_moved = args->count; } rtems_semaphore_release (tty->osem); return sc; } 442fe: 2003 movel %d3,%d0 <== NOT EXECUTED 44300: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 44306: 4e5e unlk %fp <== NOT EXECUTED 44308: 4e75 rts <== NOT EXECUTED if (rtems_termios_linesw[tty->t_line].l_write != NULL) { sc = rtems_termios_linesw[tty->t_line].l_write(tty,args); rtems_semaphore_release (tty->osem); return sc; } if (tty->termios.c_oflag & OPOST) { 4430a: 7001 moveq #1,%d0 <== NOT EXECUTED 4430c: c0aa 0034 andl %a2@(52),%d0 <== NOT EXECUTED 44310: 6744 beqs 44356 <== NOT EXECUTED uint32_t count = args->count; 44312: 282b 000c movel %a3@(12),%d4 <== NOT EXECUTED char *buffer = args->buffer; 44316: 286b 0008 moveal %a3@(8),%a4 <== NOT EXECUTED while (count--) 4431a: 6764 beqs 44380 <== NOT EXECUTED 4431c: 4282 clrl %d2 <== NOT EXECUTED 4431e: 4bfa f8b0 lea %pc@(43bd0 ),%a5 <== NOT EXECUTED oproc (*buffer++, tty); 44322: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44324: 4280 clrl %d0 <== NOT EXECUTED 44326: 1034 2800 moveb %a4@(00000000,%d2:l),%d0 <== NOT EXECUTED 4432a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4432c: 4e95 jsr %a5@ <== NOT EXECUTED 4432e: 5282 addql #1,%d2 <== NOT EXECUTED return sc; } if (tty->termios.c_oflag & OPOST) { uint32_t count = args->count; char *buffer = args->buffer; while (count--) 44330: 508f addql #8,%sp <== NOT EXECUTED 44332: b484 cmpl %d4,%d2 <== NOT EXECUTED 44334: 66ec bnes 44322 <== NOT EXECUTED 44336: 202b 000c movel %a3@(12),%d0 <== NOT EXECUTED oproc (*buffer++, tty); args->bytes_moved = args->count; 4433a: 2740 0014 movel %d0,%a3@(20) <== NOT EXECUTED } else { rtems_termios_puts (args->buffer, args->count, tty); args->bytes_moved = args->count; } rtems_semaphore_release (tty->osem); 4433e: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 44342: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED 44348: 588f addql #4,%sp <== NOT EXECUTED return sc; } 4434a: 2003 movel %d3,%d0 <== NOT EXECUTED 4434c: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 44352: 4e5e unlk %fp <== NOT EXECUTED 44354: 4e75 rts <== NOT EXECUTED while (count--) oproc (*buffer++, tty); args->bytes_moved = args->count; } else { rtems_termios_puts (args->buffer, args->count, tty); 44356: 2f0a movel %a2,%sp@- <== NOT EXECUTED 44358: 2f2b 000c movel %a3@(12),%sp@- <== NOT EXECUTED 4435c: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 44360: 4eb9 0004 3aa2 jsr 43aa2 <== NOT EXECUTED args->bytes_moved = args->count; 44366: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4436c: 276b 000c 0014 movel %a3@(12),%a3@(20) <== NOT EXECUTED } rtems_semaphore_release (tty->osem); 44372: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 44376: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED 4437c: 588f addql #4,%sp <== NOT EXECUTED 4437e: 60ca bras 4434a <== NOT EXECUTED return sc; } if (tty->termios.c_oflag & OPOST) { uint32_t count = args->count; char *buffer = args->buffer; while (count--) 44380: 4280 clrl %d0 <== NOT EXECUTED oproc (*buffer++, tty); args->bytes_moved = args->count; 44382: 2740 0014 movel %d0,%a3@(20) <== NOT EXECUTED 44386: 60b6 bras 4433e <== NOT EXECUTED 00052d18 : */ rtems_status_code rtems_timer_cancel( Objects_Id id ) { 52d18: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get ( Objects_Id id, Objects_Locations *location ) { return (Timer_Control *) 52d1c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 52d20: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 52d24: 4879 0007 33ea pea 733ea <_Timer_Information> <== NOT EXECUTED 52d2a: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 52d30: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 52d36: 2040 moveal %d0,%a0 <== NOT EXECUTED 52d38: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 52d3c: 6706 beqs 52d44 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52d3e: 4e5e unlk %fp <== NOT EXECUTED { Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 52d40: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52d42: 4e75 rts <== NOT EXECUTED the_timer = _Timer_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: if ( !_Timer_Is_dormant_class( the_timer->the_class ) ) 52d44: 7004 moveq #4,%d0 <== NOT EXECUTED 52d46: b0a8 0038 cmpl %a0@(56),%d0 <== NOT EXECUTED 52d4a: 670c beqs 52d58 <== NOT EXECUTED (void) _Watchdog_Remove( &the_timer->Ticker ); 52d4c: 4868 0010 pea %a0@(16) <== NOT EXECUTED 52d50: 4eb9 0005 7aa4 jsr 57aa4 <_Watchdog_Remove> <== NOT EXECUTED 52d56: 588f addql #4,%sp <== NOT EXECUTED _Thread_Enable_dispatch(); 52d58: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52d5e: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: if ( !_Timer_Is_dormant_class( the_timer->the_class ) ) (void) _Watchdog_Remove( &the_timer->Ticker ); _Thread_Enable_dispatch(); 52d60: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52d62: 4e75 rts 00046f34 : rtems_status_code rtems_timer_create( rtems_name name, Objects_Id *id ) { 46f34: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46f38: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46f3a: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED Timer_Control *the_timer; if ( !rtems_is_name_valid( name ) ) 46f3e: 676a beqs 46faa <== NOT EXECUTED return RTEMS_INVALID_NAME; if ( !id ) 46f40: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 46f44: 677e beqs 46fc4 <== NOT EXECUTED 46f46: 2039 0005 cb68 movel 5cb68 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46f4c: 5280 addql #1,%d0 <== NOT EXECUTED 46f4e: 23c0 0005 cb68 movel %d0,5cb68 <_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 ); 46f54: 4879 0005 d076 pea 5d076 <_Timer_Information> <== NOT EXECUTED 46f5a: 4eb9 0004 8034 jsr 48034 <_Objects_Allocate> <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_timer = _Timer_Allocate(); if ( !the_timer ) { 46f60: 588f addql #4,%sp <== NOT EXECUTED 46f62: 2240 moveal %d0,%a1 <== NOT EXECUTED 46f64: 4a80 tstl %d0 <== NOT EXECUTED 46f66: 674c beqs 46fb4 <== NOT EXECUTED &_Timer_Information, &the_timer->Object, (Objects_Name) name ); *id = the_timer->Object.id; 46f68: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 46f6c: 2342 000c movel %d2,%a1@(12) <== NOT EXECUTED #if defined(RTEMS_DEBUG) if ( index > information->maximum ) return; #endif information->local_table[ index ] = the_object; 46f70: 4280 clrl %d0 <== NOT EXECUTED 46f72: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 46f76: 42a9 0030 clrl %a1@(48) <== NOT EXECUTED if ( !the_timer ) { _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } the_timer->the_class = TIMER_DORMANT; 46f7a: 7204 moveq #4,%d1 <== NOT EXECUTED &_Timer_Information, &the_timer->Object, (Objects_Name) name ); *id = the_timer->Object.id; 46f7c: 20a9 0008 movel %a1@(8),%a0@ <== NOT EXECUTED 46f80: 2079 0005 d090 moveal 5d090 <_Timer_Information+0x1a>,%a0 <== NOT EXECUTED if ( !the_timer ) { _Thread_Enable_dispatch(); return RTEMS_TOO_MANY; } the_timer->the_class = TIMER_DORMANT; 46f86: 2341 0038 movel %d1,%a1@(56) <== NOT EXECUTED 46f8a: 2189 0c00 movel %a1,%a0@(00000000,%d0:l:4) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 46f8e: 42a9 0018 clrl %a1@(24) <== NOT EXECUTED the_watchdog->routine = routine; 46f92: 42a9 002c clrl %a1@(44) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 46f96: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED &the_timer->Object, (Objects_Name) name ); *id = the_timer->Object.id; _Thread_Enable_dispatch(); 46f9a: 4eb9 0004 8d60 jsr 48d60 <_Thread_Enable_dispatch> <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 46fa0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 46fa4: 4e5e unlk %fp <== NOT EXECUTED &the_timer->Object, (Objects_Name) name ); *id = the_timer->Object.id; _Thread_Enable_dispatch(); 46fa6: 4280 clrl %d0 <== NOT EXECUTED return RTEMS_SUCCESSFUL; } 46fa8: 4e75 rts <== NOT EXECUTED 46faa: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 46fae: 4e5e unlk %fp <== NOT EXECUTED Objects_Id *id ) { Timer_Control *the_timer; if ( !rtems_is_name_valid( name ) ) 46fb0: 7003 moveq #3,%d0 <== NOT EXECUTED ); *id = the_timer->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 46fb2: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_timer = _Timer_Allocate(); if ( !the_timer ) { _Thread_Enable_dispatch(); 46fb4: 4eb9 0004 8d60 jsr 48d60 <_Thread_Enable_dispatch> <== NOT EXECUTED ); *id = the_timer->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 46fba: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 46fbe: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); /* to prevent deletion */ the_timer = _Timer_Allocate(); if ( !the_timer ) { _Thread_Enable_dispatch(); 46fc0: 7005 moveq #5,%d0 <== NOT EXECUTED ); *id = the_timer->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 46fc2: 4e75 rts <== NOT EXECUTED 46fc4: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 46fc8: 4e5e unlk %fp <== NOT EXECUTED Timer_Control *the_timer; if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; if ( !id ) 46fca: 7009 moveq #9,%d0 <== NOT EXECUTED ); *id = the_timer->Object.id; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } 46fcc: 4e75 rts <== NOT EXECUTED ... 00052e00 : */ rtems_status_code rtems_timer_delete( Objects_Id id ) { 52e00: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 52e04: 2f0a movel %a2,%sp@- <== NOT EXECUTED RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get ( Objects_Id id, Objects_Locations *location ) { return (Timer_Control *) 52e06: 486e fffc pea %fp@(-4) <== NOT EXECUTED 52e0a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 52e0e: 4879 0007 33ea pea 733ea <_Timer_Information> <== NOT EXECUTED 52e14: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 52e1a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 52e20: 2440 moveal %d0,%a2 <== NOT EXECUTED 52e22: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 52e26: 663c bnes 52e64 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Timer_Information, &the_timer->Object ); 52e28: 2f00 movel %d0,%sp@- <== NOT EXECUTED 52e2a: 4879 0007 33ea pea 733ea <_Timer_Information> <== NOT EXECUTED 52e30: 4eb9 0005 569c jsr 5569c <_Objects_Close> <== NOT EXECUTED (void) _Watchdog_Remove( &the_timer->Ticker ); 52e36: 486a 0010 pea %a2@(16) <== NOT EXECUTED 52e3a: 4eb9 0005 7aa4 jsr 57aa4 <_Watchdog_Remove> <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Timer_Free ( Timer_Control *the_timer ) { _Objects_Free( &_Timer_Information, &the_timer->Object ); 52e40: 2f0a movel %a2,%sp@- <== NOT EXECUTED 52e42: 4879 0007 33ea pea 733ea <_Timer_Information> <== NOT EXECUTED 52e48: 4eb9 0005 59c0 jsr 559c0 <_Objects_Free> <== NOT EXECUTED _Timer_Free( the_timer ); _Thread_Enable_dispatch(); 52e4e: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52e54: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Timer_Information, &the_timer->Object ); (void) _Watchdog_Remove( &the_timer->Ticker ); _Timer_Free( the_timer ); _Thread_Enable_dispatch(); 52e58: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52e5e: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_Timer_Information, &the_timer->Object ); (void) _Watchdog_Remove( &the_timer->Ticker ); _Timer_Free( the_timer ); _Thread_Enable_dispatch(); 52e60: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52e62: 4e75 rts <== NOT EXECUTED 52e64: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 52e68: 4e5e unlk %fp <== NOT EXECUTED { Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 52e6a: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52e6c: 4e75 rts <== NOT EXECUTED ... 00046fd0 : Objects_Id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) { 46fd0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 46fd4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46fd6: 2f02 movel %d2,%sp@- <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; ISR_Level level; if ( ticks == 0 ) 46fd8: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 46fdc: 6700 00aa beqw 47088 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; if ( !routine ) 46fe0: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 46fe4: 6700 00b0 beqw 47096 <== NOT EXECUTED RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get ( Objects_Id id, Objects_Locations *location ) { return (Timer_Control *) 46fe8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 46fec: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46ff0: 4879 0005 d076 pea 5d076 <_Timer_Information> <== NOT EXECUTED 46ff6: 4eb9 0004 8560 jsr 48560 <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_timer = _Timer_Get( id, &location ); switch ( location ) { 46ffc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 47002: 2440 moveal %d0,%a2 <== NOT EXECUTED 47004: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47008: 6670 bnes 4707a <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 4700a: 2400 movel %d0,%d2 <== NOT EXECUTED 4700c: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 47012: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47014: 4eb9 0004 a154 jsr 4a154 <_Watchdog_Remove> <== NOT EXECUTED _ISR_Disable( level ); 4701a: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 47020: 40c1 movew %sr,%d1 <== NOT EXECUTED 47022: 8081 orl %d1,%d0 <== NOT EXECUTED 47024: 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_timer->Ticker.state != WATCHDOG_INACTIVE ) { 47026: 588f addql #4,%sp <== NOT EXECUTED 47028: 4aaa 0018 tstl %a2@(24) <== NOT EXECUTED 4702c: 6676 bnes 470a4 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 4702e: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 47032: 2540 002c movel %d0,%a2@(44) <== NOT EXECUTED the_watchdog->id = id; 47036: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED the_watchdog->user_data = user_data; 4703a: 256e 0014 0034 movel %fp@(20),%a2@(52) <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 47040: 2540 0030 movel %d0,%a2@(48) <== 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; 47044: 42aa 0038 clrl %a2@(56) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 47048: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); _ISR_Enable( level ); 4704c: 46c1 movew %d1,%sr <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 4704e: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 47052: 2540 001c movel %d0,%a2@(28) <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 47056: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47058: 4879 0005 cc44 pea 5cc44 <_Watchdog_Ticks_chain> <== NOT EXECUTED 4705e: 4eb9 0004 a00c jsr 4a00c <_Watchdog_Insert> <== NOT EXECUTED _Watchdog_Insert_ticks( &the_timer->Ticker, ticks ); _Thread_Enable_dispatch(); 47064: 4eb9 0004 8d60 jsr 48d60 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 4706a: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4706e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); _ISR_Enable( level ); _Watchdog_Insert_ticks( &the_timer->Ticker, ticks ); _Thread_Enable_dispatch(); 47072: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47074: 4e5e unlk %fp <== NOT EXECUTED _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); _ISR_Enable( level ); _Watchdog_Insert_ticks( &the_timer->Ticker, ticks ); _Thread_Enable_dispatch(); 47076: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47078: 4e75 rts <== NOT EXECUTED 4707a: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4707e: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 47082: 4e5e unlk %fp <== NOT EXECUTED if ( !routine ) return RTEMS_INVALID_ADDRESS; the_timer = _Timer_Get( id, &location ); switch ( location ) { 47084: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47086: 4e75 rts <== NOT EXECUTED 47088: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4708c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 47090: 4e5e unlk %fp <== NOT EXECUTED { Timer_Control *the_timer; Objects_Locations location; ISR_Level level; if ( ticks == 0 ) 47092: 700a moveq #10,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 47094: 4e75 rts <== NOT EXECUTED 47096: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 4709a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4709e: 4e5e unlk %fp <== NOT EXECUTED ISR_Level level; if ( ticks == 0 ) return RTEMS_INVALID_NUMBER; if ( !routine ) 470a0: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 470a2: 4e75 rts <== 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 ) { _ISR_Enable( level ); 470a4: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_Enable_dispatch(); 470a6: 4eb9 0004 8d60 jsr 48d60 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 470ac: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 470b0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 470b4: 4e5e unlk %fp <== NOT EXECUTED * higher priority interrupt. If so, abandon this insert. */ if ( the_timer->Ticker.state != WATCHDOG_INACTIVE ) { _ISR_Enable( level ); _Thread_Enable_dispatch(); 470b6: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 470b8: 4e75 rts <== NOT EXECUTED ... 00052f5c : Objects_Id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) { 52f5c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 52f60: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; rtems_interval seconds; if ( !_TOD_Is_set ) 52f64: 4a39 0007 2b5c tstb 72b5c <_TOD_Is_set> <== NOT EXECUTED 52f6a: 660c bnes 52f78 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52f6c: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 52f72: 4e5e unlk %fp <== NOT EXECUTED { Timer_Control *the_timer; Objects_Locations location; rtems_interval seconds; if ( !_TOD_Is_set ) 52f74: 700b moveq #11,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52f76: 4e75 rts <== NOT EXECUTED rtems_interval seconds; if ( !_TOD_Is_set ) return RTEMS_NOT_DEFINED; if ( !_TOD_Validate( wall_time ) ) 52f78: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 52f7c: 4eb9 0005 010c jsr 5010c <_TOD_Validate> <== NOT EXECUTED 52f82: 588f addql #4,%sp <== NOT EXECUTED 52f84: 4a00 tstb %d0 <== NOT EXECUTED 52f86: 671e beqs 52fa6 <== NOT EXECUTED return RTEMS_INVALID_CLOCK; if ( !routine ) 52f88: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 52f8c: 6700 00b2 beqw 53040 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; seconds = _TOD_To_seconds( wall_time ); 52f90: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 52f94: 4eb9 0004 ffd8 jsr 4ffd8 <_TOD_To_seconds> <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 52f9a: 588f addql #4,%sp <== NOT EXECUTED return RTEMS_INVALID_CLOCK; if ( !routine ) return RTEMS_INVALID_ADDRESS; seconds = _TOD_To_seconds( wall_time ); 52f9c: 2600 movel %d0,%d3 <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 52f9e: b0b9 0007 2bda cmpl 72bda <_TOD_Now>,%d0 <== NOT EXECUTED 52fa4: 620c bhis 52fb2 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52fa6: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 52fac: 4e5e unlk %fp <== NOT EXECUTED _Watchdog_Insert_seconds( &the_timer->Ticker, seconds - _TOD_Seconds_since_epoch ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; 52fae: 7014 moveq #20,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 52fb0: 4e75 rts <== NOT EXECUTED 52fb2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 52fb6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 52fba: 4879 0007 33ea pea 733ea <_Timer_Information> <== NOT EXECUTED 52fc0: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED seconds = _TOD_To_seconds( wall_time ); if ( seconds <= _TOD_Seconds_since_epoch ) return RTEMS_INVALID_CLOCK; the_timer = _Timer_Get( id, &location ); switch ( location ) { 52fc6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 52fcc: 2440 moveal %d0,%a2 <== NOT EXECUTED 52fce: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 52fd2: 6660 bnes 53034 <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 52fd4: 2400 movel %d0,%d2 <== NOT EXECUTED 52fd6: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 52fdc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 52fde: 4eb9 0005 7aa4 jsr 57aa4 <_Watchdog_Remove> <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 52fe4: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 52fe8: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED the_timer->the_class = TIMER_TIME_OF_DAY; 52fec: 7002 moveq #2,%d0 <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 52fee: 96b9 0007 2bda subl 72bda <_TOD_Now>,%d3 <== NOT EXECUTED 52ff4: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 52ff8: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 52ffc: 256e 0014 0034 movel %fp@(20),%a2@(52) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 53002: 2540 002c movel %d0,%a2@(44) <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 53006: 2543 001c movel %d3,%a2@(28) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 5300a: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); 5300e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 53010: 4879 0007 2c18 pea 72c18 <_Watchdog_Seconds_chain> <== NOT EXECUTED 53016: 4eb9 0005 795c jsr 5795c <_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(); 5301c: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 53022: dffc 0000 000c addal #12,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53028: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 5302e: 4e5e unlk %fp <== 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(); 53030: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53032: 4e75 rts <== NOT EXECUTED 53034: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 5303a: 4e5e unlk %fp <== NOT EXECUTED seconds = _TOD_To_seconds( wall_time ); if ( seconds <= _TOD_Seconds_since_epoch ) return RTEMS_INVALID_CLOCK; the_timer = _Timer_Get( id, &location ); switch ( location ) { 5303c: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5303e: 4e75 rts <== NOT EXECUTED 53040: 4cee 040c fff0 moveml %fp@(-16),%d2-%d3/%a2 <== NOT EXECUTED 53046: 4e5e unlk %fp <== NOT EXECUTED return RTEMS_NOT_DEFINED; if ( !_TOD_Validate( wall_time ) ) return RTEMS_INVALID_CLOCK; if ( !routine ) 53048: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5304a: 4e75 rts 0005304c : rtems_status_code rtems_timer_get_information( Objects_Id id, rtems_timer_information *the_info ) { 5304c: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 53050: 2f0a movel %a2,%sp@- <== NOT EXECUTED 53052: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; if ( !the_info ) 53056: 4a8a tstl %a2 <== NOT EXECUTED 53058: 6752 beqs 530ac <== NOT EXECUTED 5305a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 5305e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 53062: 4879 0007 33ea pea 733ea <_Timer_Information> <== NOT EXECUTED 53068: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; the_timer = _Timer_Get( id, &location ); switch ( location ) { 5306e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 53074: 2040 moveal %d0,%a0 <== NOT EXECUTED 53076: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5307a: 6626 bnes 530a2 <== NOT EXECUTED case OBJECTS_LOCAL: the_info->the_class = the_timer->the_class; 5307c: 24a8 0038 movel %a0@(56),%a2@ <== NOT EXECUTED the_info->initial = the_timer->Ticker.initial; 53080: 2568 001c 0004 movel %a0@(28),%a2@(4) <== NOT EXECUTED the_info->start_time = the_timer->Ticker.start_time; 53086: 2568 0024 0008 movel %a0@(36),%a2@(8) <== NOT EXECUTED the_info->stop_time = the_timer->Ticker.stop_time; 5308c: 2568 0028 000c movel %a0@(40),%a2@(12) <== NOT EXECUTED _Thread_Enable_dispatch(); 53092: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53098: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5309c: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: the_info->the_class = the_timer->the_class; the_info->initial = the_timer->Ticker.initial; the_info->start_time = the_timer->Ticker.start_time; the_info->stop_time = the_timer->Ticker.stop_time; _Thread_Enable_dispatch(); 5309e: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 530a0: 4e75 rts <== NOT EXECUTED 530a2: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 530a6: 4e5e unlk %fp <== NOT EXECUTED if ( !the_info ) return RTEMS_INVALID_ADDRESS; the_timer = _Timer_Get( id, &location ); switch ( location ) { 530a8: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 530aa: 4e75 rts <== NOT EXECUTED 530ac: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 530b0: 4e5e unlk %fp <== NOT EXECUTED ) { Timer_Control *the_timer; Objects_Locations location; if ( !the_info ) 530b2: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 530b4: 4e75 rts <== NOT EXECUTED ... 000530b8 : rtems_status_code rtems_timer_ident( rtems_name name, Objects_Id *id ) { 530b8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED Objects_Name_or_id_lookup_errors status; status = _Objects_Name_to_id_u32( 530bc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 530c0: 2f3c 7fff ffff movel #2147483647,%sp@- <== NOT EXECUTED 530c6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 530ca: 4879 0007 33ea pea 733ea <_Timer_Information> <== NOT EXECUTED 530d0: 4eb9 0005 5d04 jsr 55d04 <_Objects_Name_to_id_u32> <== NOT EXECUTED 530d6: 41f9 0006 ba62 lea 6ba62 <_Status_Object_name_errors_to_status>,%a0 <== NOT EXECUTED OBJECTS_SEARCH_LOCAL_NODE, id ); return _Status_Object_name_errors_to_status[ status ]; } 530dc: 2030 0c00 movel %a0@(00000000,%d0:l:4),%d0 <== NOT EXECUTED 530e0: 4e5e unlk %fp <== NOT EXECUTED 530e2: 4e75 rts 000533a0 : rtems_status_code rtems_timer_initiate_server( uint32_t priority, uint32_t stack_size, rtems_attribute attribute_set ) { 533a0: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 533a4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 533a6: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 533aa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 533ac: 4a81 tstl %d1 <== NOT EXECUTED 533ae: 660e bnes 533be <== 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; 533b0: 7013 moveq #19,%d0 <== NOT EXECUTED } return status; } 533b2: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 533b6: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 533ba: 4e5e unlk %fp <== NOT EXECUTED 533bc: 4e75 rts <== NOT EXECUTED 533be: 4280 clrl %d0 <== NOT EXECUTED 533c0: 1039 0006 cc72 moveb 6cc72 ,%d0 <== NOT EXECUTED 533c6: b081 cmpl %d1,%d0 <== NOT EXECUTED 533c8: 643c bccs 53406 <== NOT EXECUTED * 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 ) ) { if ( priority != RTEMS_TIMER_SERVER_DEFAULT_PRIORITY ) 533ca: 70ff moveq #-1,%d0 <== NOT EXECUTED 533cc: b081 cmpl %d1,%d0 <== NOT EXECUTED 533ce: 66e0 bnes 533b0 <== NOT EXECUTED 533d0: 2039 0007 2b48 movel 72b48 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 533d6: 5280 addql #1,%d0 <== NOT EXECUTED 533d8: 4283 clrl %d3 <== NOT EXECUTED 533da: 23c0 0007 2b48 movel %d0,72b48 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Just to make sure this is only called once. */ _Thread_Disable_dispatch(); tmpInitialized = initialized; 533e0: 1439 0006 dfc8 moveb 6dfc8 ,%d2 <== NOT EXECUTED initialized = true; 533e6: 7001 moveq #1,%d0 <== NOT EXECUTED 533e8: 13c0 0006 dfc8 moveb %d0,6dfc8 <== NOT EXECUTED _Thread_Enable_dispatch(); 533ee: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( tmpInitialized ) 533f4: 4a02 tstb %d2 <== NOT EXECUTED 533f6: 6736 beqs 5342e <== NOT EXECUTED */ initialized = false; } return status; } 533f8: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 533fc: 262e fff8 movel %fp@(-8),%d3 <== NOT EXECUTED 53400: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); tmpInitialized = initialized; initialized = true; _Thread_Enable_dispatch(); if ( tmpInitialized ) 53402: 700e moveq #14,%d0 <== NOT EXECUTED */ initialized = false; } return status; } 53404: 4e75 rts <== NOT EXECUTED 53406: 2039 0007 2b48 movel 72b48 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 5340c: 5280 addql #1,%d0 <== NOT EXECUTED 5340e: 2601 movel %d1,%d3 <== NOT EXECUTED 53410: 23c0 0007 2b48 movel %d0,72b48 <_Thread_Dispatch_disable_level> <== NOT EXECUTED /* * Just to make sure this is only called once. */ _Thread_Disable_dispatch(); tmpInitialized = initialized; 53416: 1439 0006 dfc8 moveb 6dfc8 ,%d2 <== NOT EXECUTED initialized = true; 5341c: 7001 moveq #1,%d0 <== NOT EXECUTED 5341e: 13c0 0006 dfc8 moveb %d0,6dfc8 <== NOT EXECUTED _Thread_Enable_dispatch(); 53424: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( tmpInitialized ) 5342a: 4a02 tstb %d2 <== NOT EXECUTED 5342c: 66ca bnes 533f8 <== 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( 5342e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 53432: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED 53436: 08c1 000f bset #15,%d1 <== NOT EXECUTED 5343a: 2f01 movel %d1,%sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 5343c: 203c 0007 2ac4 movel #469700,%d0 <== NOT EXECUTED 53442: 4878 0100 pea 100 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 53446: 223c 0007 2ac0 movel #469696,%d1 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 5344c: 23c0 0007 2ac0 movel %d0,72ac0 <_Timer_To_be_inserted> <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 53452: 23c1 0007 2ac8 movel %d1,72ac8 <_Timer_To_be_inserted+0x8> <== NOT EXECUTED 53458: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 5345c: 2f03 movel %d3,%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; 5345e: 42b9 0007 2ac4 clrl 72ac4 <_Timer_To_be_inserted+0x4> <== NOT EXECUTED 53464: 2f3c 5449 4d45 movel #1414090053,%sp@- <== NOT EXECUTED 5346a: 4eb9 0005 25cc jsr 525cc <== 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) { 53470: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 53476: 4a80 tstl %d0 <== NOT EXECUTED 53478: 6600 00b8 bnew 53532 <== 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( 5347c: 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 ) 53480: 4280 clrl %d0 <== NOT EXECUTED 53482: 4281 clrl %d1 <== NOT EXECUTED 53484: 3039 0007 2a72 movew 72a72 <_RTEMS_tasks_Information+0xe>,%d0 <== NOT EXECUTED 5348a: 3209 movew %a1,%d1 <== NOT EXECUTED 5348c: b081 cmpl %d1,%d0 <== NOT EXECUTED 5348e: 6400 00b6 bccw 53546 <== NOT EXECUTED 53492: 91c8 subal %a0,%a0 <== NOT EXECUTED the_watchdog->routine = routine; 53494: 203c 0005 6258 movel #352856,%d0 <== NOT EXECUTED 5349a: 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); 5349e: 223c 0007 2aa4 movel #469668,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 534a4: 203c 0007 2aa0 movel #469664,%d0 <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 534aa: 42a8 006c clrl %a0@(108) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 534ae: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 534b2: 23c1 0007 2aa0 movel %d1,72aa0 <_Timer_Ticks_chain> <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; 534b8: 223c 0007 2ab8 movel #469688,%d1 <== NOT EXECUTED 534be: 2149 0068 movel %a1,%a0@(104) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 534c2: 23c0 0007 2aa8 movel %d0,72aa8 <_Timer_Ticks_chain+0x8> <== NOT EXECUTED 534c8: 203c 0007 2ab4 movel #469684,%d0 <== NOT EXECUTED _Timer_Server_schedule_operation = _Timer_Server_schedule_operation_method; /* * Start the timer server */ status = rtems_task_start( 534ce: 42a7 clrl %sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 534d0: 23c1 0007 2ab4 movel %d1,72ab4 <_Timer_Seconds_chain> <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 534d6: 223c 0005 6258 movel #352856,%d1 <== NOT EXECUTED 534dc: 4879 0005 36ae pea 536ae <_Timer_Server_body> <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 534e2: 23c0 0007 2abc movel %d0,72abc <_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; 534e8: 203c 0005 35f2 movel #341490,%d0 <== NOT EXECUTED 534ee: 23c1 0007 2ae8 movel %d1,72ae8 <_Timer_Seconds_timer+0x1c> <== NOT EXECUTED /* * Start the timer server */ status = rtems_task_start( 534f4: 2f09 movel %a1,%sp@- <== 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; 534f6: 23c0 0007 3426 movel %d0,73426 <_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( 534fc: 23c8 0007 342a movel %a0,7342a <_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; 53502: 42b9 0007 2aa4 clrl 72aa4 <_Timer_Ticks_chain+0x4> <== NOT EXECUTED 53508: 42b9 0007 2ab8 clrl 72ab8 <_Timer_Seconds_chain+0x4> <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 5350e: 42b9 0007 2ad4 clrl 72ad4 <_Timer_Seconds_timer+0x8> <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; 53514: 23c9 0007 2aec movel %a1,72aec <_Timer_Seconds_timer+0x20> <== NOT EXECUTED the_watchdog->user_data = user_data; 5351a: 42b9 0007 2af0 clrl 72af0 <_Timer_Seconds_timer+0x24> <== NOT EXECUTED _Timer_Server_schedule_operation = _Timer_Server_schedule_operation_method; /* * Start the timer server */ status = rtems_task_start( 53520: 4eb9 0005 2b10 jsr 52b10 <== 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) { 53526: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5352c: 4a80 tstl %d0 <== NOT EXECUTED 5352e: 6700 fe82 beqw 533b2 <== NOT EXECUTED */ initialized = false; } return status; } 53532: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 53536: 262e fff8 movel %fp@(-8),%d3 <== 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; 5353a: 4201 clrb %d1 <== NOT EXECUTED } return status; } 5353c: 4e5e unlk %fp <== 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; 5353e: 13c1 0006 dfc8 moveb %d1,6dfc8 <== NOT EXECUTED } return status; } 53544: 4e75 rts <== NOT EXECUTED 53546: 2079 0007 2a7e moveal 72a7e <_RTEMS_tasks_Information+0x1a>,%a0 <== NOT EXECUTED 5354c: 2070 1c00 moveal %a0@(00000000,%d1:l:4),%a0 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 53550: 203c 0005 6258 movel #352856,%d0 <== NOT EXECUTED 53556: 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); 5355a: 223c 0007 2aa4 movel #469668,%d1 <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 53560: 203c 0007 2aa0 movel #469664,%d0 <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 53566: 42a8 006c clrl %a0@(108) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 5356a: 42a8 0050 clrl %a0@(80) <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 5356e: 23c1 0007 2aa0 movel %d1,72aa0 <_Timer_Ticks_chain> <== NOT EXECUTED 53574: 223c 0007 2ab8 movel #469688,%d1 <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; 5357a: 2149 0068 movel %a1,%a0@(104) <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 5357e: 23c0 0007 2aa8 movel %d0,72aa8 <_Timer_Ticks_chain+0x8> <== NOT EXECUTED 53584: 203c 0007 2ab4 movel #469684,%d0 <== NOT EXECUTED _Timer_Server_schedule_operation = _Timer_Server_schedule_operation_method; /* * Start the timer server */ status = rtems_task_start( 5358a: 42a7 clrl %sp@- <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); 5358c: 23c1 0007 2ab4 movel %d1,72ab4 <_Timer_Seconds_chain> <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 53592: 223c 0005 6258 movel #352856,%d1 <== NOT EXECUTED 53598: 4879 0005 36ae pea 536ae <_Timer_Server_body> <== NOT EXECUTED the_chain->permanent_null = NULL; the_chain->last = _Chain_Head(the_chain); 5359e: 23c0 0007 2abc movel %d0,72abc <_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; 535a4: 203c 0005 35f2 movel #341490,%d0 <== NOT EXECUTED 535aa: 23c1 0007 2ae8 movel %d1,72ae8 <_Timer_Seconds_timer+0x1c> <== NOT EXECUTED /* * Start the timer server */ status = rtems_task_start( 535b0: 2f09 movel %a1,%sp@- <== 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; 535b2: 23c0 0007 3426 movel %d0,73426 <_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( 535b8: 23c8 0007 342a movel %a0,7342a <_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; 535be: 42b9 0007 2aa4 clrl 72aa4 <_Timer_Ticks_chain+0x4> <== NOT EXECUTED 535c4: 42b9 0007 2ab8 clrl 72ab8 <_Timer_Seconds_chain+0x4> <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 535ca: 42b9 0007 2ad4 clrl 72ad4 <_Timer_Seconds_timer+0x8> <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; 535d0: 23c9 0007 2aec movel %a1,72aec <_Timer_Seconds_timer+0x20> <== NOT EXECUTED the_watchdog->user_data = user_data; 535d6: 42b9 0007 2af0 clrl 72af0 <_Timer_Seconds_timer+0x24> <== NOT EXECUTED _Timer_Server_schedule_operation = _Timer_Server_schedule_operation_method; /* * Start the timer server */ status = rtems_task_start( 535dc: 4eb9 0005 2b10 jsr 52b10 <== 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) { 535e2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 535e8: 4a80 tstl %d0 <== NOT EXECUTED 535ea: 6600 ff46 bnew 53532 <== NOT EXECUTED 535ee: 6000 fdc2 braw 533b2 <== NOT EXECUTED 000530e4 : */ rtems_status_code rtems_timer_reset( Objects_Id id ) { 530e4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 530e8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 530ea: 2f02 movel %d2,%sp@- <== NOT EXECUTED 530ec: 486e fffc pea %fp@(-4) <== NOT EXECUTED 530f0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 530f4: 4879 0007 33ea pea 733ea <_Timer_Information> <== NOT EXECUTED 530fa: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 53100: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 53106: 2440 moveal %d0,%a2 <== NOT EXECUTED 53108: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 5310c: 670e beqs 5311c <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5310e: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 53112: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 53116: 4e5e unlk %fp <== NOT EXECUTED { Timer_Control *the_timer; Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { 53118: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5311a: 4e75 rts <== NOT EXECUTED the_timer = _Timer_Get( id, &location ); switch ( location ) { case OBJECTS_LOCAL: switch ( the_timer->the_class ) { 5311c: 202a 0038 movel %a2@(56),%d0 <== NOT EXECUTED 53120: 7201 moveq #1,%d1 <== NOT EXECUTED 53122: b280 cmpl %d0,%d1 <== NOT EXECUTED 53124: 6756 beqs 5317c <== NOT EXECUTED 53126: 621c bhis 53144 <== NOT EXECUTED 53128: 123c 0004 moveb #4,%d1 <== NOT EXECUTED 5312c: b280 cmpl %d0,%d1 <== NOT EXECUTED 5312e: 6538 bcss 53168 <== NOT EXECUTED (*_Timer_Server_schedule_operation)( the_timer ); break; case TIMER_TIME_OF_DAY: case TIMER_TIME_OF_DAY_ON_TASK: case TIMER_DORMANT: _Thread_Enable_dispatch(); 53130: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53136: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 5313a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5313e: 4e5e unlk %fp <== NOT EXECUTED (*_Timer_Server_schedule_operation)( the_timer ); break; case TIMER_TIME_OF_DAY: case TIMER_TIME_OF_DAY_ON_TASK: case TIMER_DORMANT: _Thread_Enable_dispatch(); 53140: 700b moveq #11,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53142: 4e75 rts <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: switch ( the_timer->the_class ) { case TIMER_INTERVAL: _Watchdog_Remove( &the_timer->Ticker ); 53144: 240a movel %a2,%d2 <== NOT EXECUTED 53146: 0682 0000 0010 addil #16,%d2 <== NOT EXECUTED 5314c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 5314e: 4eb9 0005 7aa4 jsr 57aa4 <_Watchdog_Remove> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker ); 53154: 2f02 movel %d2,%sp@- <== NOT EXECUTED 53156: 4879 0007 2c24 pea 72c24 <_Watchdog_Ticks_chain> <== NOT EXECUTED 5315c: 4eb9 0005 795c jsr 5795c <_Watchdog_Insert> <== NOT EXECUTED 53162: dffc 0000 000c addal #12,%sp <== NOT EXECUTED case TIMER_TIME_OF_DAY_ON_TASK: case TIMER_DORMANT: _Thread_Enable_dispatch(); return RTEMS_NOT_DEFINED; } _Thread_Enable_dispatch(); 53168: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 5316e: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53170: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 53174: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 53178: 4e5e unlk %fp <== NOT EXECUTED 5317a: 4e75 rts <== NOT EXECUTED case TIMER_INTERVAL: _Watchdog_Remove( &the_timer->Ticker ); _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker ); break; case TIMER_INTERVAL_ON_TASK: if ( !_Timer_Server_schedule_operation ) { 5317c: 4ab9 0007 3426 tstl 73426 <_Timer_Server_schedule_operation> <== NOT EXECUTED 53182: 6720 beqs 531a4 <== NOT EXECUTED _Thread_Enable_dispatch(); return RTEMS_INCORRECT_STATE; } _Watchdog_Remove( &the_timer->Ticker ); 53184: 486a 0010 pea %a2@(16) <== NOT EXECUTED 53188: 4eb9 0005 7aa4 jsr 57aa4 <_Watchdog_Remove> <== NOT EXECUTED (*_Timer_Server_schedule_operation)( the_timer ); 5318e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 53190: 2079 0007 3426 moveal 73426 <_Timer_Server_schedule_operation>,%a0 <== NOT EXECUTED 53196: 4e90 jsr %a0@ <== NOT EXECUTED 53198: 508f addql #8,%sp <== NOT EXECUTED case TIMER_TIME_OF_DAY_ON_TASK: case TIMER_DORMANT: _Thread_Enable_dispatch(); return RTEMS_NOT_DEFINED; } _Thread_Enable_dispatch(); 5319a: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED 531a0: 4280 clrl %d0 <== NOT EXECUTED 531a2: 60cc bras 53170 <== NOT EXECUTED _Watchdog_Remove( &the_timer->Ticker ); _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker ); break; case TIMER_INTERVAL_ON_TASK: if ( !_Timer_Server_schedule_operation ) { _Thread_Enable_dispatch(); 531a4: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 531aa: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 531ae: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 531b2: 4e5e unlk %fp <== NOT EXECUTED _Watchdog_Remove( &the_timer->Ticker ); _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker ); break; case TIMER_INTERVAL_ON_TASK: if ( !_Timer_Server_schedule_operation ) { _Thread_Enable_dispatch(); 531b4: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 531b6: 4e75 rts 000531b8 : Objects_Id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) { 531b8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 531bc: 2f0a movel %a2,%sp@- <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; ISR_Level level; if ( !_Timer_Server ) 531be: 4ab9 0007 342a tstl 7342a <_Timer_Server> <== NOT EXECUTED 531c4: 6700 00bc beqw 53282 <== NOT EXECUTED return RTEMS_INCORRECT_STATE; if ( !routine ) 531c8: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 531cc: 6700 00be beqw 5328c <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( ticks == 0 ) 531d0: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 531d4: 660a bnes 531e0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 531d6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 531da: 4e5e unlk %fp <== NOT EXECUTED return RTEMS_INCORRECT_STATE; if ( !routine ) return RTEMS_INVALID_ADDRESS; if ( ticks == 0 ) 531dc: 700a moveq #10,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 531de: 4e75 rts <== NOT EXECUTED 531e0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 531e4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 531e8: 4879 0007 33ea pea 733ea <_Timer_Information> <== NOT EXECUTED 531ee: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED if ( ticks == 0 ) return RTEMS_INVALID_NUMBER; the_timer = _Timer_Get( id, &location ); switch ( location ) { 531f4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 531fa: 2440 moveal %d0,%a2 <== NOT EXECUTED 531fc: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 53200: 6664 bnes 53266 <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 53202: 486a 0010 pea %a2@(16) <== NOT EXECUTED 53206: 4eb9 0005 7aa4 jsr 57aa4 <_Watchdog_Remove> <== NOT EXECUTED _ISR_Disable( level ); 5320c: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 53212: 40c1 movew %sr,%d1 <== NOT EXECUTED 53214: 8081 orl %d1,%d0 <== NOT EXECUTED 53216: 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_timer->Ticker.state != WATCHDOG_INACTIVE ) { 53218: 588f addql #4,%sp <== NOT EXECUTED 5321a: 4aaa 0018 tstl %a2@(24) <== NOT EXECUTED 5321e: 6650 bnes 53270 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 53220: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 53224: 2540 002c movel %d0,%a2@(44) <== 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; 53228: 7001 moveq #1,%d0 <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 5322a: 256e 0014 0034 movel %fp@(20),%a2@(52) <== NOT EXECUTED 53230: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 53234: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 53238: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); the_timer->Ticker.initial = ticks; 5323c: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 53240: 42aa 0018 clrl %a2@(24) <== NOT EXECUTED 53244: 2540 001c movel %d0,%a2@(28) <== NOT EXECUTED _ISR_Enable( level ); 53248: 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 ); 5324a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5324c: 2079 0007 3426 moveal 73426 <_Timer_Server_schedule_operation>,%a0 <== NOT EXECUTED 53252: 4e90 jsr %a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 53254: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5325a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED * _Timer_Server was != NULL above. Both are set at the same time. */ (*_Timer_Server_schedule_operation)( the_timer ); _Thread_Enable_dispatch(); 5325e: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53260: 4e5e unlk %fp <== NOT EXECUTED * _Timer_Server was != NULL above. Both are set at the same time. */ (*_Timer_Server_schedule_operation)( the_timer ); _Thread_Enable_dispatch(); 53262: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53264: 4e75 rts <== NOT EXECUTED 53266: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5326a: 4e5e unlk %fp <== NOT EXECUTED if ( ticks == 0 ) return RTEMS_INVALID_NUMBER; the_timer = _Timer_Get( id, &location ); switch ( location ) { 5326c: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5326e: 4e75 rts <== 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 ) { _ISR_Enable( level ); 53270: 46c1 movew %d1,%sr <== NOT EXECUTED _Thread_Enable_dispatch(); 53272: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53278: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5327c: 4e5e unlk %fp <== NOT EXECUTED * higher priority interrupt. If so, abandon this insert. */ if ( the_timer->Ticker.state != WATCHDOG_INACTIVE ) { _ISR_Enable( level ); _Thread_Enable_dispatch(); 5327e: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53280: 4e75 rts <== NOT EXECUTED 53282: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 53286: 4e5e unlk %fp <== NOT EXECUTED { Timer_Control *the_timer; Objects_Locations location; ISR_Level level; if ( !_Timer_Server ) 53288: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5328a: 4e75 rts <== NOT EXECUTED 5328c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 53290: 4e5e unlk %fp <== NOT EXECUTED ISR_Level level; if ( !_Timer_Server ) return RTEMS_INCORRECT_STATE; if ( !routine ) 53292: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53294: 4e75 rts <== NOT EXECUTED ... 00053298 : Objects_Id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) { 53298: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 5329c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 5329e: 2f02 movel %d2,%sp@- <== NOT EXECUTED Timer_Control *the_timer; Objects_Locations location; rtems_interval seconds; if ( !_Timer_Server ) 532a0: 4ab9 0007 342a tstl 7342a <_Timer_Server> <== NOT EXECUTED 532a6: 6700 00da beqw 53382 <== NOT EXECUTED return RTEMS_INCORRECT_STATE; if ( !_TOD_Is_set ) 532aa: 4a39 0007 2b5c tstb 72b5c <_TOD_Is_set> <== NOT EXECUTED 532b0: 6700 00b4 beqw 53366 <== NOT EXECUTED return RTEMS_NOT_DEFINED; if ( !routine ) 532b4: 4aae 0010 tstl %fp@(16) <== NOT EXECUTED 532b8: 6700 00ba beqw 53374 <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Validate( wall_time ) ) 532bc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 532c0: 4eb9 0005 010c jsr 5010c <_TOD_Validate> <== NOT EXECUTED 532c6: 588f addql #4,%sp <== NOT EXECUTED 532c8: 4a00 tstb %d0 <== NOT EXECUTED 532ca: 660e bnes 532da <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 532cc: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 532d0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 532d4: 4e5e unlk %fp <== NOT EXECUTED */ (*_Timer_Server_schedule_operation)( the_timer ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; 532d6: 7014 moveq #20,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 532d8: 4e75 rts <== NOT EXECUTED return RTEMS_INVALID_ADDRESS; if ( !_TOD_Validate( wall_time ) ) return RTEMS_INVALID_CLOCK; seconds = _TOD_To_seconds( wall_time ); 532da: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 532de: 4eb9 0004 ffd8 jsr 4ffd8 <_TOD_To_seconds> <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 532e4: 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 ); 532e6: 2400 movel %d0,%d2 <== NOT EXECUTED if ( seconds <= _TOD_Seconds_since_epoch ) 532e8: b0b9 0007 2bda cmpl 72bda <_TOD_Now>,%d0 <== NOT EXECUTED 532ee: 63dc blss 532cc <== NOT EXECUTED 532f0: 486e fffc pea %fp@(-4) <== NOT EXECUTED 532f4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 532f8: 4879 0007 33ea pea 733ea <_Timer_Information> <== NOT EXECUTED 532fe: 4eb9 0005 5b6c jsr 55b6c <_Objects_Get> <== NOT EXECUTED return RTEMS_INVALID_CLOCK; the_timer = _Timer_Get( id, &location ); switch ( location ) { 53304: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 5330a: 2440 moveal %d0,%a2 <== NOT EXECUTED 5330c: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 53310: 667e bnes 53390 <== NOT EXECUTED case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); 53312: 486a 0010 pea %a2@(16) <== NOT EXECUTED 53316: 4eb9 0005 7aa4 jsr 57aa4 <_Watchdog_Remove> <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; 5331c: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED 53320: 2540 0030 movel %d0,%a2@(48) <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 53324: 202e 0010 movel %fp@(16),%d0 <== 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; 53328: 94b9 0007 2bda subl 72bda <_TOD_Now>,%d2 <== NOT EXECUTED 5332e: 2540 002c movel %d0,%a2@(44) <== 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; 53332: 7003 moveq #3,%d0 <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 53334: 256e 0014 0034 movel %fp@(20),%a2@(52) <== NOT EXECUTED 5333a: 2540 0038 movel %d0,%a2@(56) <== NOT EXECUTED _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch; 5333e: 2542 001c movel %d2,%a2@(28) <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 53342: 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 ); 53346: 2f0a movel %a2,%sp@- <== NOT EXECUTED 53348: 2079 0007 3426 moveal 73426 <_Timer_Server_schedule_operation>,%a0 <== NOT EXECUTED 5334e: 4e90 jsr %a0@ <== NOT EXECUTED _Thread_Enable_dispatch(); 53350: 4eb9 0005 63f0 jsr 563f0 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53356: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 5335a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED * _Timer_Server was != NULL above. Both are set at the same time. */ (*_Timer_Server_schedule_operation)( the_timer ); _Thread_Enable_dispatch(); 5335e: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53360: 4e5e unlk %fp <== NOT EXECUTED * _Timer_Server was != NULL above. Both are set at the same time. */ (*_Timer_Server_schedule_operation)( the_timer ); _Thread_Enable_dispatch(); 53362: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53364: 4e75 rts <== NOT EXECUTED 53366: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 5336a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5336e: 4e5e unlk %fp <== NOT EXECUTED rtems_interval seconds; if ( !_Timer_Server ) return RTEMS_INCORRECT_STATE; if ( !_TOD_Is_set ) 53370: 700b moveq #11,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53372: 4e75 rts <== NOT EXECUTED 53374: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 53378: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5337c: 4e5e unlk %fp <== NOT EXECUTED return RTEMS_INCORRECT_STATE; if ( !_TOD_Is_set ) return RTEMS_NOT_DEFINED; if ( !routine ) 5337e: 7009 moveq #9,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 53380: 4e75 rts <== NOT EXECUTED 53382: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 53386: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 5338a: 4e5e unlk %fp <== NOT EXECUTED { Timer_Control *the_timer; Objects_Locations location; rtems_interval seconds; if ( !_Timer_Server ) 5338c: 700e moveq #14,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5338e: 4e75 rts <== NOT EXECUTED 53390: 242e fff4 movel %fp@(-12),%d2 <== NOT EXECUTED 53394: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 53398: 4e5e unlk %fp <== NOT EXECUTED seconds = _TOD_To_seconds( wall_time ); if ( seconds <= _TOD_Seconds_since_epoch ) return RTEMS_INVALID_CLOCK; the_timer = _Timer_Get( id, &location ); switch ( location ) { 5339a: 7004 moveq #4,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } return RTEMS_INVALID_ID; } 5339c: 4e75 rts <== NOT EXECUTED ... 00042344 : static int rtems_verror( uint32_t error_flag, const char *printf_format, va_list arglist ) { 42344: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 42348: 48d7 1c7c moveml %d2-%d6/%a2-%a4,%sp@ <== NOT EXECUTED 4234c: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED int local_errno = 0; int chars_written = 0; rtems_status_code status; if (error_flag & RTEMS_ERROR_PANIC) 42350: 2c02 movel %d2,%d6 <== NOT EXECUTED 42352: 0286 2000 0000 andil #536870912,%d6 <== NOT EXECUTED 42358: 672e beqs 42388 <== NOT EXECUTED { if (rtems_panic_in_progress++) 4235a: 2039 0005 9b10 movel 59b10 ,%d0 <== NOT EXECUTED 42360: 2200 movel %d0,%d1 <== NOT EXECUTED 42362: 5281 addql #1,%d1 <== NOT EXECUTED 42364: 23c1 0005 9b10 movel %d1,59b10 <== NOT EXECUTED 4236a: 4a80 tstl %d0 <== NOT EXECUTED 4236c: 670e beqs 4237c <== NOT EXECUTED rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 4236e: 2039 0005 9c7c movel 59c7c <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 42374: 5280 addql #1,%d0 <== NOT EXECUTED 42376: 23c0 0005 9c7c movel %d0,59c7c <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); /* disable task switches */ /* don't aggravate things */ if (rtems_panic_in_progress > 2) 4237c: 7002 moveq #2,%d0 <== NOT EXECUTED 4237e: b0b9 0005 9b10 cmpl 59b10 ,%d0 <== NOT EXECUTED 42384: 6d00 00d6 bltw 4245c <== NOT EXECUTED return 0; } (void) fflush(stdout); /* in case stdout/stderr same */ 42388: 2079 0005 8624 moveal 58624 <_impure_ptr>,%a0 <== NOT EXECUTED 4238e: 49f9 0004 d6a2 lea 4d6a2 ,%a4 <== NOT EXECUTED 42394: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 42398: 4e94 jsr %a4@ <== NOT EXECUTED status = error_flag & ~RTEMS_ERROR_MASK; 4239a: 2802 movel %d2,%d4 <== NOT EXECUTED if (error_flag & RTEMS_ERROR_ERRNO) /* include errno? */ 4239c: 588f addql #4,%sp <== NOT EXECUTED return 0; } (void) fflush(stdout); /* in case stdout/stderr same */ status = error_flag & ~RTEMS_ERROR_MASK; 4239e: 0284 8fff ffff andil #-1879048193,%d4 <== NOT EXECUTED if (error_flag & RTEMS_ERROR_ERRNO) /* include errno? */ 423a4: 0802 001e btst #30,%d2 <== NOT EXECUTED 423a8: 6600 00ec bnew 42496 <== 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); 423ac: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED } (void) fflush(stdout); /* in case stdout/stderr same */ status = error_flag & ~RTEMS_ERROR_MASK; if (error_flag & RTEMS_ERROR_ERRNO) /* include errno? */ 423b0: 4283 clrl %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); 423b2: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 423b6: 2079 0005 8624 moveal 58624 <_impure_ptr>,%a0 <== NOT EXECUTED 423bc: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 423c0: 4eb9 0005 0fd6 jsr 50fd6 <== NOT EXECUTED 423c6: 45f9 0004 da1c lea 4da1c ,%a2 <== NOT EXECUTED 423cc: 2a00 movel %d0,%d5 <== NOT EXECUTED if (status) 423ce: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 423d4: 4a84 tstl %d4 <== NOT EXECUTED 423d6: 6600 0090 bnew 42468 <== NOT EXECUTED chars_written += fprintf(stderr, " (status: %s)", rtems_status_text(status)); if (local_errno) 423da: 4a83 tstl %d3 <== NOT EXECUTED 423dc: 6732 beqs 42410 <== NOT EXECUTED { if ((local_errno > 0) && *strerror(local_errno)) 423de: 6f14 bles 423f4 <== NOT EXECUTED 423e0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 423e2: 47f9 0004 e8b8 lea 4e8b8 ,%a3 <== NOT EXECUTED 423e8: 4e93 jsr %a3@ <== NOT EXECUTED 423ea: 588f addql #4,%sp <== NOT EXECUTED 423ec: 2040 moveal %d0,%a0 <== NOT EXECUTED 423ee: 4a10 tstb %a0@ <== NOT EXECUTED 423f0: 6600 00ea bnew 424dc <== NOT EXECUTED chars_written += fprintf(stderr, " (errno: %s)", strerror(local_errno)); else chars_written += fprintf(stderr, " (unknown errno=%d)", local_errno); 423f4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 423f6: 4879 0005 6a1b pea 56a1b <== NOT EXECUTED 423fc: 2079 0005 8624 moveal 58624 <_impure_ptr>,%a0 <== NOT EXECUTED 42402: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 42406: 4e92 jsr %a2@ <== NOT EXECUTED 42408: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4240e: da80 addl %d0,%d5 <== NOT EXECUTED } chars_written += fprintf(stderr, "\n"); 42410: 4879 0005 7203 pea 57203 <== NOT EXECUTED 42416: 2079 0005 8624 moveal 58624 <_impure_ptr>,%a0 <== NOT EXECUTED 4241c: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 42420: 4e92 jsr %a2@ <== NOT EXECUTED (void) fflush(stderr); 42422: 2079 0005 8624 moveal 58624 <_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"); 42428: 2800 movel %d0,%d4 <== NOT EXECUTED (void) fflush(stderr); 4242a: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 4242e: 4e94 jsr %a4@ <== NOT EXECUTED if (error_flag & (RTEMS_ERROR_PANIC | RTEMS_ERROR_ABORT)) 42430: 0282 3000 0000 andil #805306368,%d2 <== NOT EXECUTED 42436: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4243c: 6700 0090 beqw 424ce <== NOT EXECUTED { if (error_flag & RTEMS_ERROR_PANIC) 42440: 4a86 tstl %d6 <== NOT EXECUTED 42442: 6700 00bc beqw 42500 <== NOT EXECUTED { rtems_error(0, "fatal error, exiting"); 42446: 4879 0005 6a2f pea 56a2f <== NOT EXECUTED 4244c: 42a7 clrl %sp@- <== NOT EXECUTED 4244e: 4eb9 0004 2534 jsr 42534 <== NOT EXECUTED _exit(local_errno); 42454: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42456: 4eb9 0004 2a68 jsr 42a68 <_exit> <== NOT EXECUTED rtems_error(0, "fatal error, aborting"); abort(); } } return chars_written; } 4245c: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED 42462: 4e5e unlk %fp <== NOT EXECUTED _exit(local_errno); } else { rtems_error(0, "fatal error, aborting"); abort(); 42464: 4280 clrl %d0 <== NOT EXECUTED } } return chars_written; } 42466: 4e75 rts <== NOT EXECUTED const char * rtems_status_text( rtems_status_code status ) { return rtems_assoc_name_by_local(rtems_status_assoc, status); 42468: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4246a: 4879 0005 6d0c pea 56d0c <== NOT EXECUTED 42470: 4eb9 0004 a344 jsr 4a344 <== NOT EXECUTED #endif chars_written += vfprintf(stderr, printf_format, arglist); if (status) chars_written += fprintf(stderr, " (status: %s)", rtems_status_text(status)); 42476: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42478: 4879 0005 6a00 pea 56a00 <== NOT EXECUTED 4247e: 2079 0005 8624 moveal 58624 <_impure_ptr>,%a0 <== NOT EXECUTED 42484: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 42488: 4e92 jsr %a2@ <== NOT EXECUTED 4248a: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 42490: da80 addl %d0,%d5 <== NOT EXECUTED 42492: 6000 ff46 braw 423da <== NOT EXECUTED (void) fflush(stdout); /* in case stdout/stderr same */ status = error_flag & ~RTEMS_ERROR_MASK; if (error_flag & RTEMS_ERROR_ERRNO) /* include errno? */ local_errno = errno; 42496: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4249c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4249e: 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); 424a0: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 424a4: 45f9 0004 da1c lea 4da1c ,%a2 <== NOT EXECUTED 424aa: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 424ae: 2079 0005 8624 moveal 58624 <_impure_ptr>,%a0 <== NOT EXECUTED 424b4: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 424b8: 4eb9 0005 0fd6 jsr 50fd6 <== NOT EXECUTED if (status) 424be: 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); 424c4: 2a00 movel %d0,%d5 <== NOT EXECUTED if (status) 424c6: 4a84 tstl %d4 <== NOT EXECUTED 424c8: 6700 ff10 beqw 423da <== NOT EXECUTED 424cc: 609a bras 42468 <== 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"); 424ce: 2004 movel %d4,%d0 <== NOT EXECUTED 424d0: d085 addl %d5,%d0 <== NOT EXECUTED rtems_error(0, "fatal error, aborting"); abort(); } } return chars_written; } 424d2: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED 424d8: 4e5e unlk %fp <== NOT EXECUTED 424da: 4e75 rts <== NOT EXECUTED chars_written += fprintf(stderr, " (status: %s)", rtems_status_text(status)); if (local_errno) { if ((local_errno > 0) && *strerror(local_errno)) chars_written += fprintf(stderr, " (errno: %s)", strerror(local_errno)); 424dc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 424de: 4e93 jsr %a3@ <== NOT EXECUTED 424e0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 424e2: 4879 0005 6a0e pea 56a0e <== NOT EXECUTED 424e8: 2079 0005 8624 moveal 58624 <_impure_ptr>,%a0 <== NOT EXECUTED 424ee: 2f28 000c movel %a0@(12),%sp@- <== NOT EXECUTED 424f2: 4e92 jsr %a2@ <== NOT EXECUTED 424f4: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 424fa: da80 addl %d0,%d5 <== NOT EXECUTED 424fc: 6000 ff12 braw 42410 <== NOT EXECUTED rtems_error(0, "fatal error, exiting"); _exit(local_errno); } else { rtems_error(0, "fatal error, aborting"); 42500: 4879 0005 6a44 pea 56a44 <== NOT EXECUTED 42506: 42a7 clrl %sp@- <== NOT EXECUTED 42508: 4eb9 0004 2534 jsr 42534 <== NOT EXECUTED abort(); 4250e: 4eb9 0004 d390 jsr 4d390 <== NOT EXECUTED 00046834 : */ bool rtems_workspace_allocate( uintptr_t bytes, void **pointer ) { 46834: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46838: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4683a: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED void *ptr; /* * check the arguments */ if ( !pointer ) 4683e: 4a8a tstl %a2 <== NOT EXECUTED 46840: 6706 beqs 46848 <== NOT EXECUTED return false; if ( !bytes ) 46842: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 46846: 660a bnes 46852 <== NOT EXECUTED if (!ptr) return false; *pointer = ptr; return true; } 46848: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4684c: 4e5e unlk %fp <== NOT EXECUTED ptr = _Protected_heap_Allocate( &_Workspace_Area, (intptr_t) bytes ); if (!ptr) return false; *pointer = ptr; return true; 4684e: 4200 clrb %d0 <== NOT EXECUTED } 46850: 4e75 rts <== NOT EXECUTED return false; /* * Allocate the memory */ ptr = _Protected_heap_Allocate( &_Workspace_Area, (intptr_t) bytes ); 46852: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46856: 4879 0005 c626 pea 5c626 <_Workspace_Area> <== NOT EXECUTED 4685c: 4eb9 0004 7f48 jsr 47f48 <_Protected_heap_Allocate> <== NOT EXECUTED if (!ptr) 46862: 508f addql #8,%sp <== NOT EXECUTED 46864: 4a80 tstl %d0 <== NOT EXECUTED 46866: 67e0 beqs 46848 <== NOT EXECUTED return false; *pointer = ptr; 46868: 2480 movel %d0,%a2@ <== NOT EXECUTED return true; } 4686a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4686e: 4e5e unlk %fp <== NOT EXECUTED */ ptr = _Protected_heap_Allocate( &_Workspace_Area, (intptr_t) bytes ); if (!ptr) return false; *pointer = ptr; 46870: 7001 moveq #1,%d0 <== NOT EXECUTED return true; } 46872: 4e75 rts 0004681c : * _Workspace_Allocate */ bool rtems_workspace_free( void *pointer ) { 4681c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _Protected_heap_Free( &_Workspace_Area, pointer ); 46820: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 46824: 4879 0005 c626 pea 5c626 <_Workspace_Area> <== NOT EXECUTED 4682a: 4eb9 0004 7f80 jsr 47f80 <_Protected_heap_Free> <== NOT EXECUTED } 46830: 4e5e unlk %fp <== NOT EXECUTED 46832: 4e75 rts 00046874 : #include /* for memset */ bool rtems_workspace_get_information( Heap_Information_block *the_info ) { 46874: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46878: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED if ( !the_info ) 4687c: 6710 beqs 4688e <== NOT EXECUTED return false; return _Protected_heap_Get_information( &_Workspace_Area, the_info ); 4687e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46880: 4879 0005 c626 pea 5c626 <_Workspace_Area> <== NOT EXECUTED 46886: 4eb9 0004 7fb8 jsr 47fb8 <_Protected_heap_Get_information> <== NOT EXECUTED 4688c: 508f addql #8,%sp <== NOT EXECUTED } 4688e: 4e5e unlk %fp <== NOT EXECUTED 46890: 4e75 rts <== NOT EXECUTED ... 00060918 : /* * Extract an integer value from the database */ static int scanInt(FILE *fp, int *val) { 60918: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 6091c: 48d7 0c7c moveml %d2-%d6/%a2-%a3,%sp@ <== NOT EXECUTED 60920: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 60924: 4282 clrl %d2 <== NOT EXECUTED 60926: 283c 7fff ffff movel #2147483647,%d4 <== NOT EXECUTED 6092c: 4285 clrl %d5 <== NOT EXECUTED unsigned int limit = INT_MAX; int sign = 0; int d; for (;;) { c = getc(fp); 6092e: 47f9 0007 475c lea 7475c <__srget_r>,%a3 <== NOT EXECUTED 60934: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 60938: 5380 subql #1,%d0 <== NOT EXECUTED 6093a: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 6093e: 6d62 blts 609a2 <== NOT EXECUTED 60940: 2052 moveal %a2@,%a0 <== NOT EXECUTED 60942: 4281 clrl %d1 <== NOT EXECUTED 60944: 1210 moveb %a0@,%d1 <== NOT EXECUTED 60946: 5288 addql #1,%a0 <== NOT EXECUTED 60948: 2488 movel %a0,%a2@ <== NOT EXECUTED if (c == ':') 6094a: 703a moveq #58,%d0 <== NOT EXECUTED 6094c: b081 cmpl %d1,%d0 <== NOT EXECUTED 6094e: 6766 beqs 609b6 <== NOT EXECUTED break; if (sign == 0) { 60950: 4a85 tstl %d5 <== NOT EXECUTED 60952: 660a bnes 6095e <== NOT EXECUTED if (c == '-') { 60954: 7c2d moveq #45,%d6 <== NOT EXECUTED 60956: bc81 cmpl %d1,%d6 <== NOT EXECUTED 60958: 6700 0086 beqw 609e0 <== NOT EXECUTED sign = -1; limit++; continue; 6095c: 7a01 moveq #1,%d5 <== NOT EXECUTED } sign = 1; } if (!isdigit(c)) 6095e: 2079 0008 7020 moveal 87020 <__ctype_ptr>,%a0 <== NOT EXECUTED 60964: 1030 1800 moveb %a0@(00000000,%d1:l),%d0 <== NOT EXECUTED 60968: 49c0 extbl %d0 <== NOT EXECUTED 6096a: 44c0 movew %d0,%ccr <== NOT EXECUTED 6096c: 6666 bnes 609d4 <== NOT EXECUTED return 0; d = c - '0'; if ((i > (limit / 10)) 6096e: 2004 movel %d4,%d0 <== NOT EXECUTED 60970: 7c0a moveq #10,%d6 <== NOT EXECUTED 60972: 4c46 0003 remul %d6,%d3,%d0 <== NOT EXECUTED 60976: 4c46 0000 remul %d6,%d0,%d0 <== NOT EXECUTED 6097a: b082 cmpl %d2,%d0 <== NOT EXECUTED 6097c: 6556 bcss 609d4 <== NOT EXECUTED } sign = 1; } if (!isdigit(c)) return 0; d = c - '0'; 6097e: 0681 ffff ffd0 addil #-48,%d1 <== NOT EXECUTED if ((i > (limit / 10)) 60984: b082 cmpl %d2,%d0 <== NOT EXECUTED 60986: 6748 beqs 609d0 <== NOT EXECUTED || ((i == (limit / 10)) && (d > (limit % 10)))) return 0; i = i * 10 + d; 60988: 2002 movel %d2,%d0 <== NOT EXECUTED 6098a: e788 lsll #3,%d0 <== NOT EXECUTED 6098c: 2240 moveal %d0,%a1 <== NOT EXECUTED unsigned int limit = INT_MAX; int sign = 0; int d; for (;;) { c = getc(fp); 6098e: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED return 0; d = c - '0'; if ((i > (limit / 10)) || ((i == (limit / 10)) && (d > (limit % 10)))) return 0; i = i * 10 + d; 60992: 41f1 2a00 lea %a1@(00000000,%d2:l:2),%a0 <== NOT EXECUTED 60996: 2401 movel %d1,%d2 <== NOT EXECUTED unsigned int limit = INT_MAX; int sign = 0; int d; for (;;) { c = getc(fp); 60998: 5380 subql #1,%d0 <== NOT EXECUTED return 0; d = c - '0'; if ((i > (limit / 10)) || ((i == (limit / 10)) && (d > (limit % 10)))) return 0; i = i * 10 + d; 6099a: d488 addl %a0,%d2 <== NOT EXECUTED unsigned int limit = INT_MAX; int sign = 0; int d; for (;;) { c = getc(fp); 6099c: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 609a0: 6c9e bges 60940 <== NOT EXECUTED 609a2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 609a4: 2f39 0008 702c movel 8702c <_impure_ptr>,%sp@- <== NOT EXECUTED 609aa: 4e93 jsr %a3@ <== NOT EXECUTED 609ac: 2200 movel %d0,%d1 <== NOT EXECUTED 609ae: 508f addql #8,%sp <== NOT EXECUTED if (c == ':') 609b0: 703a moveq #58,%d0 <== NOT EXECUTED 609b2: b081 cmpl %d1,%d0 <== NOT EXECUTED 609b4: 669a bnes 60950 <== NOT EXECUTED if ((i > (limit / 10)) || ((i == (limit / 10)) && (d > (limit % 10)))) return 0; i = i * 10 + d; } if (sign == 0) 609b6: 4a85 tstl %d5 <== NOT EXECUTED 609b8: 671a beqs 609d4 <== NOT EXECUTED return 0; *val = i * sign; 609ba: 4c02 5800 mulsl %d2,%d5 <== NOT EXECUTED 609be: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 609c2: 2085 movel %d5,%a0@ <== NOT EXECUTED return 1; } 609c4: 4cee 0c7c ffe4 moveml %fp@(-28),%d2-%d6/%a2-%a3 <== NOT EXECUTED 609ca: 4e5e unlk %fp <== NOT EXECUTED return 0; i = i * 10 + d; } if (sign == 0) return 0; *val = i * sign; 609cc: 7001 moveq #1,%d0 <== NOT EXECUTED return 1; } 609ce: 4e75 rts <== NOT EXECUTED sign = 1; } if (!isdigit(c)) return 0; d = c - '0'; if ((i > (limit / 10)) 609d0: b681 cmpl %d1,%d3 <== NOT EXECUTED 609d2: 64b4 bccs 60988 <== NOT EXECUTED } if (sign == 0) return 0; *val = i * sign; return 1; } 609d4: 4cee 0c7c ffe4 moveml %fp@(-28),%d2-%d6/%a2-%a3 <== NOT EXECUTED 609da: 4e5e unlk %fp <== NOT EXECUTED i = i * 10 + d; } if (sign == 0) return 0; *val = i * sign; return 1; 609dc: 4280 clrl %d0 <== NOT EXECUTED } 609de: 4e75 rts <== NOT EXECUTED if (c == ':') break; if (sign == 0) { if (c == '-') { sign = -1; limit++; 609e0: 5284 addql #1,%d4 <== NOT EXECUTED 609e2: 7aff moveq #-1,%d5 <== NOT EXECUTED 609e4: 6000 ff4e braw 60934 <== NOT EXECUTED 000609e8 : /* * Extract a string value from the database */ static int scanString(FILE *fp, char **name, char **bufp, size_t *nleft, int nlFlag) { 609e8: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 609ec: 48d7 3c00 moveml %a2-%a5,%sp@ <== NOT EXECUTED 609f0: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 609f4: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED int c; *name = *bufp; for (;;) { c = getc(fp); 609f8: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED static int scanString(FILE *fp, char **name, char **bufp, size_t *nleft, int nlFlag) { int c; *name = *bufp; 609fc: 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) { 60a00: 286e 0014 moveal %fp@(20),%a4 <== NOT EXECUTED int c; *name = *bufp; for (;;) { c = getc(fp); 60a04: 5380 subql #1,%d0 <== NOT EXECUTED static int scanString(FILE *fp, char **name, char **bufp, size_t *nleft, int nlFlag) { int c; *name = *bufp; 60a06: 2093 movel %a3@,%a0@ <== NOT EXECUTED for (;;) { c = getc(fp); 60a08: 4bf9 0007 475c lea 7475c <__srget_r>,%a5 <== NOT EXECUTED 60a0e: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 60a12: 6d36 blts 60a4a <== NOT EXECUTED 60a14: 2052 moveal %a2@,%a0 <== NOT EXECUTED 60a16: 4280 clrl %d0 <== NOT EXECUTED 60a18: 1010 moveb %a0@,%d0 <== NOT EXECUTED 60a1a: 5288 addql #1,%a0 <== NOT EXECUTED 60a1c: 2488 movel %a0,%a2@ <== NOT EXECUTED if (c == ':') { 60a1e: 723a moveq #58,%d1 <== NOT EXECUTED 60a20: b280 cmpl %d0,%d1 <== NOT EXECUTED 60a22: 6738 beqs 60a5c <== NOT EXECUTED if (nlFlag) return 0; break; } if (c == '\n') { 60a24: 720a moveq #10,%d1 <== NOT EXECUTED 60a26: b280 cmpl %d0,%d1 <== NOT EXECUTED 60a28: 674c beqs 60a76 <== NOT EXECUTED if (!nlFlag) return 0; break; } if (c == EOF) 60a2a: 72ff moveq #-1,%d1 <== NOT EXECUTED 60a2c: b280 cmpl %d0,%d1 <== NOT EXECUTED 60a2e: 674c beqs 60a7c <== NOT EXECUTED return 0; if (*nleft < 2) 60a30: 7201 moveq #1,%d1 <== NOT EXECUTED 60a32: b294 cmpl %a4@,%d1 <== NOT EXECUTED 60a34: 6446 bccs 60a7c <== NOT EXECUTED return 0; **bufp = c; 60a36: 2053 moveal %a3@,%a0 <== NOT EXECUTED 60a38: 1080 moveb %d0,%a0@ <== NOT EXECUTED { int c; *name = *bufp; for (;;) { c = getc(fp); 60a3a: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED if (c == EOF) return 0; if (*nleft < 2) return 0; **bufp = c; ++(*bufp); 60a3e: 5293 addql #1,%a3@ <== NOT EXECUTED --(*nleft); 60a40: 5394 subql #1,%a4@ <== NOT EXECUTED { int c; *name = *bufp; for (;;) { c = getc(fp); 60a42: 5380 subql #1,%d0 <== NOT EXECUTED 60a44: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 60a48: 6cca bges 60a14 <== NOT EXECUTED 60a4a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60a4c: 2f39 0008 702c movel 8702c <_impure_ptr>,%sp@- <== NOT EXECUTED 60a52: 4e95 jsr %a5@ <== NOT EXECUTED 60a54: 508f addql #8,%sp <== NOT EXECUTED if (c == ':') { 60a56: 723a moveq #58,%d1 <== NOT EXECUTED 60a58: b280 cmpl %d0,%d1 <== NOT EXECUTED 60a5a: 66c8 bnes 60a24 <== NOT EXECUTED if (nlFlag) 60a5c: 4aae 0018 tstl %fp@(24) <== NOT EXECUTED 60a60: 661a bnes 60a7c <== NOT EXECUTED return 0; **bufp = c; ++(*bufp); --(*nleft); } **bufp = '\0'; 60a62: 2053 moveal %a3@,%a0 <== NOT EXECUTED 60a64: 4210 clrb %a0@ <== NOT EXECUTED ++(*bufp); 60a66: 5293 addql #1,%a3@ <== NOT EXECUTED --(*nleft); 60a68: 5394 subql #1,%a4@ <== NOT EXECUTED return 1; } 60a6a: 4cee 3c00 fff0 moveml %fp@(-16),%a2-%a5 <== NOT EXECUTED 60a70: 4e5e unlk %fp <== NOT EXECUTED ++(*bufp); --(*nleft); } **bufp = '\0'; ++(*bufp); --(*nleft); 60a72: 7001 moveq #1,%d0 <== NOT EXECUTED return 1; } 60a74: 4e75 rts <== NOT EXECUTED if (nlFlag) return 0; break; } if (c == '\n') { if (!nlFlag) 60a76: 4aae 0018 tstl %fp@(24) <== NOT EXECUTED 60a7a: 66e6 bnes 60a62 <== NOT EXECUTED } **bufp = '\0'; ++(*bufp); --(*nleft); return 1; } 60a7c: 4cee 3c00 fff0 moveml %fp@(-16),%a2-%a5 <== NOT EXECUTED 60a82: 4e5e unlk %fp <== NOT EXECUTED --(*nleft); } **bufp = '\0'; ++(*bufp); --(*nleft); return 1; 60a84: 4280 clrl %d0 <== NOT EXECUTED } 60a86: 4e75 rts 00045b90 : scandir( const char *dirname, struct dirent ***namelist, int (*select)(struct dirent *), int (*dcomp)(const struct dirent **, const struct dirent **)) { 45b90: 4e56 ff8c linkw %fp,#-116 <== NOT EXECUTED 45b94: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 45b98: 282e 0010 movel %fp@(16),%d4 <== NOT EXECUTED struct stat stb; long arraysz; DIR *dirp = NULL; int i; if ((dirp = opendir(dirname)) == NULL) 45b9c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45ba0: 4eb9 0004 526c jsr 4526c <== NOT EXECUTED 45ba6: 588f addql #4,%sp <== NOT EXECUTED 45ba8: 2840 moveal %d0,%a4 <== NOT EXECUTED 45baa: 4a80 tstl %d0 <== NOT EXECUTED 45bac: 6700 017e beqw 45d2c <== NOT EXECUTED return(-1); if (fstat(dirp->dd_fd, &stb) < 0) 45bb0: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 45bb4: 2f14 movel %a4@,%sp@- <== NOT EXECUTED 45bb6: 4eb9 0004 d07c jsr 4d07c <== NOT EXECUTED 45bbc: 508f addql #8,%sp <== NOT EXECUTED 45bbe: 4a80 tstl %d0 <== NOT EXECUTED 45bc0: 6d00 0126 bltw 45ce8 <== 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); 45bc4: 262e ffd4 movel %fp@(-44),%d3 <== NOT EXECUTED 45bc8: 7218 moveq #24,%d1 <== NOT EXECUTED 45bca: 4c41 3803 remsl %d1,%d3,%d3 <== NOT EXECUTED names = (struct dirent **)malloc(arraysz * sizeof(struct dirent *)); 45bce: 2003 movel %d3,%d0 <== NOT EXECUTED 45bd0: e588 lsll #2,%d0 <== NOT EXECUTED 45bd2: 2e3c 0004 49ec movel #281068,%d7 <== NOT EXECUTED 45bd8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45bda: 2047 moveal %d7,%a0 <== NOT EXECUTED 45bdc: 4e90 jsr %a0@ <== NOT EXECUTED if (names == NULL) 45bde: 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 *)); 45be0: 2a40 moveal %d0,%a5 <== NOT EXECUTED if (names == NULL) 45be2: 4a80 tstl %d0 <== NOT EXECUTED 45be4: 6700 0102 beqw 45ce8 <== NOT EXECUTED goto cleanup_and_bail; 45be8: 4282 clrl %d2 <== NOT EXECUTED 45bea: 2a3c 0004 5954 movel #285012,%d5 <== 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); 45bf0: 2c3c 0005 2b10 movel #338704,%d6 <== 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) { 45bf6: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45bf8: 2045 moveal %d5,%a0 <== NOT EXECUTED 45bfa: 4e90 jsr %a0@ <== NOT EXECUTED 45bfc: 588f addql #4,%sp <== NOT EXECUTED 45bfe: 2440 moveal %d0,%a2 <== NOT EXECUTED 45c00: 4a80 tstl %d0 <== NOT EXECUTED 45c02: 6772 beqs 45c76 <== NOT EXECUTED if (select != NULL && !(*select)(d)) 45c04: 4a84 tstl %d4 <== NOT EXECUTED 45c06: 670c beqs 45c14 <== NOT EXECUTED 45c08: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45c0a: 2044 moveal %d4,%a0 <== NOT EXECUTED 45c0c: 4e90 jsr %a0@ <== NOT EXECUTED 45c0e: 588f addql #4,%sp <== NOT EXECUTED 45c10: 4a80 tstl %d0 <== NOT EXECUTED 45c12: 67e2 beqs 45bf6 <== NOT EXECUTED continue; /* just selected names */ /* * Make a minimum size copy of the data */ p = (struct dirent *)malloc(DIRSIZ(d)); 45c14: 4280 clrl %d0 <== NOT EXECUTED 45c16: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 45c1a: 72fc moveq #-4,%d1 <== NOT EXECUTED 45c1c: 5880 addql #4,%d0 <== NOT EXECUTED 45c1e: c081 andl %d1,%d0 <== NOT EXECUTED 45c20: 2040 moveal %d0,%a0 <== NOT EXECUTED 45c22: 4868 000c pea %a0@(12) <== NOT EXECUTED 45c26: 2047 moveal %d7,%a0 <== NOT EXECUTED 45c28: 4e90 jsr %a0@ <== NOT EXECUTED if (p == NULL) 45c2a: 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)); 45c2c: 2640 moveal %d0,%a3 <== NOT EXECUTED if (p == NULL) 45c2e: 4a80 tstl %d0 <== NOT EXECUTED 45c30: 6700 00cc beqw 45cfe <== NOT EXECUTED goto cleanup_and_bail; p->d_ino = d->d_ino; 45c34: 2692 movel %a2@,%a3@ <== NOT EXECUTED p->d_reclen = d->d_reclen; p->d_namlen = d->d_namlen; 45c36: 4280 clrl %d0 <== NOT EXECUTED 45c38: 302a 000a movew %a2@(10),%d0 <== NOT EXECUTED 45c3c: 3740 000a movew %d0,%a3@(10) <== NOT EXECUTED strncpy(p->d_name, d->d_name, p->d_namlen + 1); 45c40: 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; 45c42: 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); 45c48: 4868 0001 pea %a0@(1) <== NOT EXECUTED 45c4c: 2046 moveal %d6,%a0 <== NOT EXECUTED 45c4e: 486a 000c pea %a2@(12) <== NOT EXECUTED /* * Check to make sure the array has space left and * realloc the maximum size. */ if (++nitems >= arraysz) { 45c52: 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); 45c54: 486b 000c pea %a3@(12) <== NOT EXECUTED 45c58: 4e90 jsr %a0@ <== NOT EXECUTED /* * Check to make sure the array has space left and * realloc the maximum size. */ if (++nitems >= arraysz) { 45c5a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45c60: b682 cmpl %d2,%d3 <== NOT EXECUTED 45c62: 6350 blss 45cb4 <== NOT EXECUTED names = (struct dirent **)realloc((char *)names, arraysz * sizeof(struct dirent *)); if (names == NULL) goto cleanup_and_bail; } names[nitems-1] = p; 45c64: 2b8b 2cfc movel %a3,%a5@(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) { 45c68: 2045 moveal %d5,%a0 <== NOT EXECUTED 45c6a: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45c6c: 4e90 jsr %a0@ <== NOT EXECUTED 45c6e: 588f addql #4,%sp <== NOT EXECUTED 45c70: 2440 moveal %d0,%a2 <== NOT EXECUTED 45c72: 4a80 tstl %d0 <== NOT EXECUTED 45c74: 668e bnes 45c04 <== NOT EXECUTED if (names == NULL) goto cleanup_and_bail; } names[nitems-1] = p; } closedir(dirp); 45c76: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45c78: 4eb9 0004 3b14 jsr 43b14 <== NOT EXECUTED if (nitems && dcomp != NULL){ 45c7e: 588f addql #4,%sp <== NOT EXECUTED 45c80: 4a82 tstl %d2 <== NOT EXECUTED 45c82: 671e beqs 45ca2 <== NOT EXECUTED 45c84: 4aae 0014 tstl %fp@(20) <== NOT EXECUTED 45c88: 6718 beqs 45ca2 <== NOT EXECUTED qsort(names, nitems, sizeof(struct dirent *), 45c8a: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 45c8e: 4878 0004 pea 4 <== NOT EXECUTED 45c92: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45c94: 2f0d movel %a5,%sp@- <== NOT EXECUTED 45c96: 4eb9 0005 1818 jsr 51818 <== NOT EXECUTED 45c9c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED (int (*)(const void *, const void *)) dcomp); } *namelist = names; 45ca2: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED return(nitems); 45ca6: 2002 movel %d2,%d0 <== NOT EXECUTED closedir(dirp); if (nitems && dcomp != NULL){ qsort(names, nitems, sizeof(struct dirent *), (int (*)(const void *, const void *)) dcomp); } *namelist = names; 45ca8: 208d movel %a5,%a0@ <== NOT EXECUTED free( names[i] ); free( names ); } return(-1); } 45caa: 4cee 3cfc ff8c moveml %fp@(-116),%d2-%d7/%a2-%a5 <== NOT EXECUTED 45cb0: 4e5e unlk %fp <== NOT EXECUTED 45cb2: 4e75 rts <== NOT EXECUTED /* * Check to make sure the array has space left and * realloc the maximum size. */ if (++nitems >= arraysz) { if (fstat(dirp->dd_fd, &stb) < 0) 45cb4: 486e ffb6 pea %fp@(-74) <== NOT EXECUTED 45cb8: 2f14 movel %a4@,%sp@- <== NOT EXECUTED 45cba: 4eb9 0004 d07c jsr 4d07c <== NOT EXECUTED 45cc0: 508f addql #8,%sp <== NOT EXECUTED 45cc2: 4a80 tstl %d0 <== NOT EXECUTED 45cc4: 6d38 blts 45cfe <== NOT EXECUTED goto cleanup_and_bail; /* just might have grown */ arraysz = stb.st_size / 12; 45cc6: 262e ffd4 movel %fp@(-44),%d3 <== NOT EXECUTED 45cca: 720c moveq #12,%d1 <== NOT EXECUTED 45ccc: 4c41 3803 remsl %d1,%d3,%d3 <== NOT EXECUTED names = (struct dirent **)realloc((char *)names, 45cd0: 2003 movel %d3,%d0 <== NOT EXECUTED 45cd2: e588 lsll #2,%d0 <== NOT EXECUTED 45cd4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45cd6: 2f0d movel %a5,%sp@- <== NOT EXECUTED 45cd8: 4eb9 0004 d344 jsr 4d344 <== NOT EXECUTED arraysz * sizeof(struct dirent *)); if (names == NULL) 45cde: 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, 45ce0: 2a40 moveal %d0,%a5 <== NOT EXECUTED arraysz * sizeof(struct dirent *)); if (names == NULL) 45ce2: 4a80 tstl %d0 <== NOT EXECUTED 45ce4: 6600 ff7e bnew 45c64 <== NOT EXECUTED return(nitems); cleanup_and_bail: if ( dirp ) closedir( dirp ); 45ce8: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45cea: 4eb9 0004 3b14 jsr 43b14 <== NOT EXECUTED 45cf0: 588f addql #4,%sp <== NOT EXECUTED free( names[i] ); free( names ); } return(-1); } 45cf2: 4cee 3cfc ff8c moveml %fp@(-116),%d2-%d7/%a2-%a5 <== NOT EXECUTED 45cf8: 4e5e unlk %fp <== NOT EXECUTED return(nitems); cleanup_and_bail: if ( dirp ) closedir( dirp ); 45cfa: 70ff moveq #-1,%d0 <== NOT EXECUTED free( names[i] ); free( names ); } return(-1); } 45cfc: 4e75 rts <== NOT EXECUTED return(nitems); cleanup_and_bail: if ( dirp ) closedir( dirp ); 45cfe: 2f0c movel %a4,%sp@- <== NOT EXECUTED 45d00: 4eb9 0004 3b14 jsr 43b14 <== NOT EXECUTED if ( names ) { for (i=0; i < nitems; i++ ) 45d06: 588f addql #4,%sp <== NOT EXECUTED 45d08: 47f9 0004 42a4 lea 442a4 ,%a3 <== NOT EXECUTED 45d0e: 4a82 tstl %d2 <== NOT EXECUTED 45d10: 6714 beqs 45d26 <== NOT EXECUTED 45d12: 95ca subal %a2,%a2 <== NOT EXECUTED 45d14: 4280 clrl %d0 <== NOT EXECUTED free( names[i] ); 45d16: 2f35 0c00 movel %a5@(00000000,%d0:l:4),%sp@- <== NOT EXECUTED if ( dirp ) closedir( dirp ); if ( names ) { for (i=0; i < nitems; i++ ) 45d1a: 528a addql #1,%a2 <== NOT EXECUTED free( names[i] ); 45d1c: 4e93 jsr %a3@ <== NOT EXECUTED if ( dirp ) closedir( dirp ); if ( names ) { for (i=0; i < nitems; i++ ) 45d1e: 588f addql #4,%sp <== NOT EXECUTED 45d20: 200a movel %a2,%d0 <== NOT EXECUTED 45d22: b5c2 cmpal %d2,%a2 <== NOT EXECUTED 45d24: 65f0 bcss 45d16 <== NOT EXECUTED free( names[i] ); free( names ); 45d26: 2f0d movel %a5,%sp@- <== NOT EXECUTED 45d28: 4e93 jsr %a3@ <== NOT EXECUTED 45d2a: 588f addql #4,%sp <== NOT EXECUTED } return(-1); } 45d2c: 4cee 3cfc ff8c moveml %fp@(-116),%d2-%d7/%a2-%a5 <== NOT EXECUTED 45d32: 4e5e unlk %fp <== NOT EXECUTED closedir( dirp ); if ( names ) { for (i=0; i < nitems; i++ ) free( names[i] ); free( names ); 45d34: 70ff moveq #-1,%d0 <== NOT EXECUTED } return(-1); } 45d36: 4e75 rts 00060a88 : FILE *fp, struct group *grp, char *buffer, size_t bufsize ) { 60a88: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 60a8c: 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) 60a90: 42a7 clrl %sp@- <== NOT EXECUTED 60a92: 280e movel %fp,%d4 <== NOT EXECUTED 60a94: 0684 0000 0014 addil #20,%d4 <== NOT EXECUTED 60a9a: 2f04 movel %d4,%sp@- <== NOT EXECUTED FILE *fp, struct group *grp, char *buffer, size_t bufsize ) { 60a9c: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED int grgid; char *grmem, *cp; int memcount; if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0) 60aa0: 260e movel %fp,%d3 <== NOT EXECUTED 60aa2: 0683 0000 0010 addil #16,%d3 <== NOT EXECUTED 60aa8: 2f03 movel %d3,%sp@- <== NOT EXECUTED FILE *fp, struct group *grp, char *buffer, size_t bufsize ) { 60aaa: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED int grgid; char *grmem, *cp; int memcount; if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0) 60aae: 2f0b movel %a3,%sp@- <== NOT EXECUTED 60ab0: 45fa ff36 lea %pc@(609e8 ),%a2 <== NOT EXECUTED 60ab4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60ab6: 4e92 jsr %a2@ <== NOT EXECUTED 60ab8: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60abe: 4a80 tstl %d0 <== NOT EXECUTED 60ac0: 660c bnes 60ace <== NOT EXECUTED grp->gr_mem[memcount++] = cp + 1; } } grp->gr_mem[memcount] = NULL; return 1; } 60ac2: 4cee 0c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a3 <== NOT EXECUTED 60ac8: 4e5e unlk %fp <== NOT EXECUTED *cp = '\0'; grp->gr_mem[memcount++] = cp + 1; } } grp->gr_mem[memcount] = NULL; return 1; 60aca: 4280 clrl %d0 <== NOT EXECUTED } 60acc: 4e75 rts <== NOT EXECUTED { int grgid; char *grmem, *cp; int memcount; if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0) 60ace: 42a7 clrl %sp@- <== NOT EXECUTED 60ad0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 60ad2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60ad4: 486b 0004 pea %a3@(4) <== NOT EXECUTED 60ad8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60ada: 4e92 jsr %a2@ <== NOT EXECUTED 60adc: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60ae2: 4a80 tstl %d0 <== NOT EXECUTED 60ae4: 67dc beqs 60ac2 <== NOT EXECUTED 60ae6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 60aea: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60aec: 4eba fe2a jsr %pc@(60918 ) <== NOT EXECUTED 60af0: 508f addql #8,%sp <== NOT EXECUTED 60af2: 4a80 tstl %d0 <== NOT EXECUTED 60af4: 67cc beqs 60ac2 <== NOT EXECUTED 60af6: 4878 0001 pea 1 <== NOT EXECUTED 60afa: 2f04 movel %d4,%sp@- <== NOT EXECUTED 60afc: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60afe: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 60b02: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60b04: 4e92 jsr %a2@ <== NOT EXECUTED 60b06: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60b0c: 4a80 tstl %d0 <== NOT EXECUTED 60b0e: 67b2 beqs 60ac2 <== NOT EXECUTED grp->gr_gid = grgid; /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 60b10: 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; 60b14: 376e fffe 0008 movew %fp@(-2),%a3@(8) <== NOT EXECUTED /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 60b1a: 1011 moveb %a1@,%d0 <== NOT EXECUTED 60b1c: 6700 0082 beqw 60ba0 <== NOT EXECUTED 60b20: 2049 moveal %a1,%a0 <== NOT EXECUTED 60b22: 7201 moveq #1,%d1 <== NOT EXECUTED 60b24: 5288 addql #1,%a0 <== NOT EXECUTED if(*cp == ',') 60b26: 49c0 extbl %d0 <== NOT EXECUTED 60b28: 742c moveq #44,%d2 <== NOT EXECUTED 60b2a: b480 cmpl %d0,%d2 <== NOT EXECUTED 60b2c: 675c beqs 60b8a <== NOT EXECUTED grp->gr_gid = grgid; /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 60b2e: 1010 moveb %a0@,%d0 <== NOT EXECUTED 60b30: 66f2 bnes 60b24 <== NOT EXECUTED 60b32: e589 lsll #2,%d1 <== NOT EXECUTED 60b34: 2001 movel %d1,%d0 <== NOT EXECUTED 60b36: 0680 0000 0013 addil #19,%d0 <== NOT EXECUTED } /* * Hack to produce (hopefully) a suitably-aligned array of pointers */ if (bufsize < (((memcount+1)*sizeof(char *)) + 15)) 60b3c: b0ae 0014 cmpl %fp@(20),%d0 <== NOT EXECUTED 60b40: 6280 bhis 60ac2 <== NOT EXECUTED return 0; grp->gr_mem = (char **)(((uintptr_t)buffer + 15) & ~15); 60b42: 202e 0010 movel %fp@(16),%d0 <== NOT EXECUTED 60b46: 72f0 moveq #-16,%d1 <== NOT EXECUTED 60b48: 0680 0000 000f addil #15,%d0 <== NOT EXECUTED 60b4e: c081 andl %d1,%d0 <== NOT EXECUTED /* * Fill in pointer array */ grp->gr_mem[0] = grmem; 60b50: 2040 moveal %d0,%a0 <== NOT EXECUTED 60b52: 2089 movel %a1,%a0@ <== NOT EXECUTED for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 60b54: 206e fff8 moveal %fp@(-8),%a0 <== 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); 60b58: 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++) { 60b5c: 1010 moveb %a0@,%d0 <== NOT EXECUTED 60b5e: 6744 beqs 60ba4 <== NOT EXECUTED 60b60: 43e8 0001 lea %a0@(1),%a1 <== NOT EXECUTED 60b64: 7201 moveq #1,%d1 <== NOT EXECUTED if(*cp == ',') { 60b66: 49c0 extbl %d0 <== NOT EXECUTED 60b68: 742c moveq #44,%d2 <== NOT EXECUTED 60b6a: b480 cmpl %d0,%d2 <== NOT EXECUTED 60b6c: 6720 beqs 60b8e <== NOT EXECUTED /* * Fill in pointer array */ grp->gr_mem[0] = grmem; for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 60b6e: 1019 moveb %a1@+,%d0 <== NOT EXECUTED 60b70: 66f4 bnes 60b66 <== NOT EXECUTED if(*cp == ',') { *cp = '\0'; grp->gr_mem[memcount++] = cp + 1; } } grp->gr_mem[memcount] = NULL; 60b72: 206b 000a moveal %a3@(10),%a0 <== NOT EXECUTED /* * Fill in pointer array */ grp->gr_mem[0] = grmem; for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 60b76: 2001 movel %d1,%d0 <== NOT EXECUTED 60b78: e588 lsll #2,%d0 <== NOT EXECUTED if(*cp == ',') { *cp = '\0'; grp->gr_mem[memcount++] = cp + 1; } } grp->gr_mem[memcount] = NULL; 60b7a: 42b0 0800 clrl %a0@(00000000,%d0:l) <== NOT EXECUTED 60b7e: 7001 moveq #1,%d0 <== NOT EXECUTED return 1; } 60b80: 4cee 0c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a3 <== NOT EXECUTED 60b86: 4e5e unlk %fp <== NOT EXECUTED 60b88: 4e75 rts <== NOT EXECUTED /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { if(*cp == ',') memcount++; 60b8a: 5281 addql #1,%d1 <== NOT EXECUTED 60b8c: 60a0 bras 60b2e <== NOT EXECUTED * Fill in pointer array */ grp->gr_mem[0] = grmem; for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { if(*cp == ',') { *cp = '\0'; 60b8e: 4200 clrb %d0 <== NOT EXECUTED 60b90: 1340 ffff moveb %d0,%a1@(-1) <== NOT EXECUTED grp->gr_mem[memcount++] = cp + 1; 60b94: 206b 000a moveal %a3@(10),%a0 <== NOT EXECUTED 60b98: 2189 1c00 movel %a1,%a0@(00000000,%d1:l:4) <== NOT EXECUTED 60b9c: 5281 addql #1,%d1 <== NOT EXECUTED 60b9e: 60ce bras 60b6e <== NOT EXECUTED grp->gr_gid = grgid; /* * Determine number of members */ for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 60ba0: 7017 moveq #23,%d0 <== NOT EXECUTED 60ba2: 6098 bras 60b3c <== NOT EXECUTED if(*cp == ',') { *cp = '\0'; grp->gr_mem[memcount++] = cp + 1; } } grp->gr_mem[memcount] = NULL; 60ba4: 206b 000a moveal %a3@(10),%a0 <== NOT EXECUTED /* * Fill in pointer array */ grp->gr_mem[0] = grmem; for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 60ba8: 7004 moveq #4,%d0 <== NOT EXECUTED if(*cp == ',') { *cp = '\0'; grp->gr_mem[memcount++] = cp + 1; } } grp->gr_mem[memcount] = NULL; 60baa: 42b0 0800 clrl %a0@(00000000,%d0:l) <== NOT EXECUTED 60bae: 7001 moveq #1,%d0 <== NOT EXECUTED 60bb0: 60ce bras 60b80 <== NOT EXECUTED 00060bf4 : FILE *fp, struct passwd *pwd, char *buffer, size_t bufsize ) { 60bf4: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 60bf8: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED int pwuid, pwgid; if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0) 60bfc: 42a7 clrl %sp@- <== NOT EXECUTED 60bfe: 280e movel %fp,%d4 <== NOT EXECUTED 60c00: 0684 0000 0014 addil #20,%d4 <== NOT EXECUTED 60c06: 2f04 movel %d4,%sp@- <== NOT EXECUTED FILE *fp, struct passwd *pwd, char *buffer, size_t bufsize ) { 60c08: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED int pwuid, pwgid; if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0) 60c0c: 260e movel %fp,%d3 <== NOT EXECUTED 60c0e: 0683 0000 0010 addil #16,%d3 <== NOT EXECUTED 60c14: 2f03 movel %d3,%sp@- <== NOT EXECUTED FILE *fp, struct passwd *pwd, char *buffer, size_t bufsize ) { 60c16: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED int pwuid, pwgid; if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0) 60c1a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 60c1c: 47fa fdca lea %pc@(609e8 ),%a3 <== NOT EXECUTED 60c20: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60c22: 4e93 jsr %a3@ <== NOT EXECUTED 60c24: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60c2a: 4a80 tstl %d0 <== NOT EXECUTED 60c2c: 660c bnes 60c3a <== NOT EXECUTED || !scanString(fp, &pwd->pw_shell, &buffer, &bufsize, 1)) return 0; pwd->pw_uid = pwuid; pwd->pw_gid = pwgid; return 1; } 60c2e: 4cee 1c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a4 <== NOT EXECUTED 60c34: 4e5e unlk %fp <== NOT EXECUTED || !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; return 1; 60c36: 4280 clrl %d0 <== NOT EXECUTED } 60c38: 4e75 rts <== NOT EXECUTED size_t bufsize ) { int pwuid, pwgid; if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0) 60c3a: 42a7 clrl %sp@- <== NOT EXECUTED 60c3c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 60c3e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60c40: 486a 0004 pea %a2@(4) <== NOT EXECUTED 60c44: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60c46: 4e93 jsr %a3@ <== NOT EXECUTED 60c48: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60c4e: 4a80 tstl %d0 <== NOT EXECUTED 60c50: 67dc beqs 60c2e <== NOT EXECUTED 60c52: 486e fffc pea %fp@(-4) <== NOT EXECUTED 60c56: 49fa fcc0 lea %pc@(60918 ),%a4 <== NOT EXECUTED 60c5a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60c5c: 4e94 jsr %a4@ <== NOT EXECUTED 60c5e: 508f addql #8,%sp <== NOT EXECUTED 60c60: 4a80 tstl %d0 <== NOT EXECUTED 60c62: 67ca beqs 60c2e <== NOT EXECUTED 60c64: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 60c68: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60c6a: 4e94 jsr %a4@ <== NOT EXECUTED 60c6c: 508f addql #8,%sp <== NOT EXECUTED 60c6e: 4a80 tstl %d0 <== NOT EXECUTED 60c70: 67bc beqs 60c2e <== NOT EXECUTED 60c72: 42a7 clrl %sp@- <== NOT EXECUTED 60c74: 2f04 movel %d4,%sp@- <== NOT EXECUTED 60c76: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60c78: 486a 000c pea %a2@(12) <== NOT EXECUTED 60c7c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60c7e: 4e93 jsr %a3@ <== NOT EXECUTED 60c80: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60c86: 4a80 tstl %d0 <== NOT EXECUTED 60c88: 67a4 beqs 60c2e <== NOT EXECUTED 60c8a: 42a7 clrl %sp@- <== NOT EXECUTED 60c8c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 60c8e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60c90: 486a 0010 pea %a2@(16) <== NOT EXECUTED 60c94: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60c96: 4e93 jsr %a3@ <== NOT EXECUTED 60c98: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60c9e: 4a80 tstl %d0 <== NOT EXECUTED 60ca0: 678c beqs 60c2e <== NOT EXECUTED 60ca2: 42a7 clrl %sp@- <== NOT EXECUTED 60ca4: 2f04 movel %d4,%sp@- <== NOT EXECUTED 60ca6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60ca8: 486a 0014 pea %a2@(20) <== NOT EXECUTED 60cac: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60cae: 4e93 jsr %a3@ <== NOT EXECUTED 60cb0: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60cb6: 4a80 tstl %d0 <== NOT EXECUTED 60cb8: 6700 ff74 beqw 60c2e <== NOT EXECUTED 60cbc: 4878 0001 pea 1 <== NOT EXECUTED 60cc0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 60cc2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 60cc4: 486a 0018 pea %a2@(24) <== NOT EXECUTED 60cc8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 60cca: 4e93 jsr %a3@ <== NOT EXECUTED 60ccc: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 60cd2: 4a80 tstl %d0 <== NOT EXECUTED 60cd4: 6700 ff58 beqw 60c2e <== 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; 60cd8: 7001 moveq #1,%d0 <== NOT EXECUTED 60cda: 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; 60ce0: 356e fffe 0008 movew %fp@(-2),%a2@(8) <== NOT EXECUTED pwd->pw_gid = pwgid; return 1; } 60ce6: 4cee 1c1c ffe0 moveml %fp@(-32),%d2-%d4/%a2-%a4 <== NOT EXECUTED 60cec: 4e5e unlk %fp <== NOT EXECUTED 60cee: 4e75 rts 00047324 : #include int sched_get_priority_max( int policy ) { 47324: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED switch ( policy ) { 47328: 203c 0000 00fe movel #254,%d0 <== NOT EXECUTED 4732e: 7203 moveq #3,%d1 <== NOT EXECUTED 47330: b2ae 0008 cmpl %fp@(8),%d1 <== NOT EXECUTED 47334: 640e bccs 47344 <== NOT EXECUTED case SCHED_RR: case SCHED_SPORADIC: break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 47336: 4eb9 0004 f30c jsr 4f30c <__errno> <== NOT EXECUTED 4733c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4733e: 7216 moveq #22,%d1 <== NOT EXECUTED 47340: 70ff moveq #-1,%d0 <== NOT EXECUTED 47342: 2081 movel %d1,%a0@ <== NOT EXECUTED } return POSIX_SCHEDULER_MAXIMUM_PRIORITY; } 47344: 4e5e unlk %fp <== NOT EXECUTED 47346: 4e75 rts 00047348 : #include int sched_get_priority_min( int policy ) { 47348: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED switch ( policy ) { 4734c: 7003 moveq #3,%d0 <== NOT EXECUTED 4734e: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 47352: 6412 bccs 47366 <== NOT EXECUTED case SCHED_RR: case SCHED_SPORADIC: break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 47354: 4eb9 0004 f30c jsr 4f30c <__errno> <== NOT EXECUTED 4735a: 7216 moveq #22,%d1 <== NOT EXECUTED 4735c: 2040 moveal %d0,%a0 <== NOT EXECUTED } return POSIX_SCHEDULER_MINIMUM_PRIORITY; } 4735e: 4e5e unlk %fp <== NOT EXECUTED case SCHED_RR: case SCHED_SPORADIC: break; default: rtems_set_errno_and_return_minus_one( EINVAL ); 47360: 70ff moveq #-1,%d0 <== NOT EXECUTED 47362: 2081 movel %d1,%a0@ <== NOT EXECUTED } return POSIX_SCHEDULER_MINIMUM_PRIORITY; } 47364: 4e75 rts <== NOT EXECUTED 47366: 4e5e unlk %fp <== NOT EXECUTED int sched_get_priority_min( int policy ) { switch ( policy ) { 47368: 103c 0001 moveb #1,%d0 <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( EINVAL ); } return POSIX_SCHEDULER_MINIMUM_PRIORITY; } 4736c: 4e75 rts <== NOT EXECUTED ... 00045bf4 : int sched_getparam( pid_t pid, const struct sched_param *param ) { 45bf4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45bf8: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45bfe: 2040 moveal %d0,%a0 <== NOT EXECUTED 45c00: 7058 moveq #88,%d0 <== NOT EXECUTED 45c02: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45c04: 4e5e unlk %fp <== NOT EXECUTED 45c06: 70ff moveq #-1,%d0 <== NOT EXECUTED 45c08: 4e75 rts <== NOT EXECUTED ... 00045c0c : #include int sched_getscheduler( pid_t pid ) { 45c0c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45c10: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45c16: 2040 moveal %d0,%a0 <== NOT EXECUTED 45c18: 7058 moveq #88,%d0 <== NOT EXECUTED 45c1a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45c1c: 4e5e unlk %fp <== NOT EXECUTED 45c1e: 70ff moveq #-1,%d0 <== NOT EXECUTED 45c20: 4e75 rts <== NOT EXECUTED ... 00047370 : int sched_rr_get_interval( pid_t pid, struct timespec *interval ) { 47370: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 47374: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47376: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Only supported for the "calling process" (i.e. this node). */ if ( pid && pid != getpid() ) 4737a: 4aae 0008 tstl %fp@(8) <== NOT EXECUTED 4737e: 661e bnes 4739e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ESRCH ); if ( !interval ) 47380: 4a82 tstl %d2 <== NOT EXECUTED 47382: 673c beqs 473c0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval ); 47384: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47386: 2f39 0005 da80 movel 5da80 <_Thread_Ticks_per_timeslice>,%sp@- <== NOT EXECUTED 4738c: 4eb9 0004 b09c jsr 4b09c <_Timespec_From_ticks> <== NOT EXECUTED return 0; } 47392: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ESRCH ); if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval ); 47396: 508f addql #8,%sp <== NOT EXECUTED return 0; } 47398: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ESRCH ); if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval ); 4739a: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4739c: 4e75 rts <== NOT EXECUTED { /* * Only supported for the "calling process" (i.e. this node). */ if ( pid && pid != getpid() ) 4739e: 4eb9 0004 3bec jsr 43bec <== NOT EXECUTED 473a4: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 473a8: 67d6 beqs 47380 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ESRCH ); 473aa: 4eb9 0004 f30c jsr 4f30c <__errno> <== NOT EXECUTED if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval ); return 0; } 473b0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED /* * Only supported for the "calling process" (i.e. this node). */ if ( pid && pid != getpid() ) rtems_set_errno_and_return_minus_one( ESRCH ); 473b4: 2040 moveal %d0,%a0 <== NOT EXECUTED 473b6: 7203 moveq #3,%d1 <== NOT EXECUTED if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval ); return 0; } 473b8: 4e5e unlk %fp <== NOT EXECUTED /* * Only supported for the "calling process" (i.e. this node). */ if ( pid && pid != getpid() ) rtems_set_errno_and_return_minus_one( ESRCH ); 473ba: 70ff moveq #-1,%d0 <== NOT EXECUTED 473bc: 2081 movel %d1,%a0@ <== NOT EXECUTED if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval ); return 0; } 473be: 4e75 rts <== NOT EXECUTED if ( pid && pid != getpid() ) rtems_set_errno_and_return_minus_one( ESRCH ); if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); 473c0: 4eb9 0004 f30c jsr 4f30c <__errno> <== NOT EXECUTED _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval ); return 0; } 473c6: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED if ( pid && pid != getpid() ) rtems_set_errno_and_return_minus_one( ESRCH ); if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); 473ca: 2040 moveal %d0,%a0 <== NOT EXECUTED 473cc: 7016 moveq #22,%d0 <== NOT EXECUTED 473ce: 2080 movel %d0,%a0@ <== NOT EXECUTED _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval ); return 0; } 473d0: 4e5e unlk %fp <== NOT EXECUTED if ( pid && pid != getpid() ) rtems_set_errno_and_return_minus_one( ESRCH ); if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); 473d2: 70ff moveq #-1,%d0 <== NOT EXECUTED _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval ); return 0; } 473d4: 4e75 rts <== NOT EXECUTED ... 00045c24 : int sched_setparam( pid_t pid, const struct sched_param *param ) { 45c24: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45c28: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45c2e: 2040 moveal %d0,%a0 <== NOT EXECUTED 45c30: 7058 moveq #88,%d0 <== NOT EXECUTED 45c32: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45c34: 4e5e unlk %fp <== NOT EXECUTED 45c36: 70ff moveq #-1,%d0 <== NOT EXECUTED 45c38: 4e75 rts <== NOT EXECUTED ... 00045c3c : int sched_setscheduler( pid_t pid, int policy, const struct sched_param *param ) { 45c3c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45c40: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45c46: 2040 moveal %d0,%a0 <== NOT EXECUTED 45c48: 7058 moveq #88,%d0 <== NOT EXECUTED 45c4a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45c4c: 4e5e unlk %fp <== NOT EXECUTED 45c4e: 70ff moveq #-1,%d0 <== NOT EXECUTED 45c50: 4e75 rts <== NOT EXECUTED ... 000473d8 : 473d8: 2039 0005 dad0 movel 5dad0 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 473de: 5280 addql #1,%d0 <== NOT EXECUTED #include #include #include int sched_yield( void ) { 473e0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 473e4: 23c0 0005 dad0 movel %d0,5dad0 <_Thread_Dispatch_disable_level> <== NOT EXECUTED _Thread_Disable_dispatch(); _Thread_Yield_processor(); 473ea: 4eb9 0004 afc4 jsr 4afc4 <_Thread_Yield_processor> <== NOT EXECUTED _Thread_Enable_dispatch(); 473f0: 4eb9 0004 a13c jsr 4a13c <_Thread_Enable_dispatch> <== NOT EXECUTED return 0; } 473f6: 4e5e unlk %fp <== NOT EXECUTED 473f8: 4280 clrl %d0 <== NOT EXECUTED 473fa: 4e75 rts 00045d38 : void seekdir( DIR *dirp, long loc ) { 45d38: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45d3c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45d3e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED off_t status; if ( !dirp ) 45d42: 4a8a tstl %a2 <== NOT EXECUTED 45d44: 671e beqs 45d64 <== NOT EXECUTED return; status = lseek( dirp->dd_fd, loc, SEEK_SET ); 45d46: 42a7 clrl %sp@- <== NOT EXECUTED 45d48: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 45d4c: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 45d4e: 4eb9 0004 4760 jsr 44760 <== NOT EXECUTED /* * This is not a nice way to error out, but we have no choice here. */ if ( status == -1 ) 45d54: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45d5a: 72ff moveq #-1,%d1 <== NOT EXECUTED 45d5c: b280 cmpl %d0,%d1 <== NOT EXECUTED 45d5e: 6704 beqs 45d64 <== NOT EXECUTED return; dirp->dd_loc = 0; 45d60: 42aa 0004 clrl %a2@(4) <== NOT EXECUTED } 45d64: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 45d68: 4e5e unlk %fp <== NOT EXECUTED 45d6a: 4e75 rts 000480a0 : */ int sem_close( sem_t *sem ) { 480a0: 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 *) 480a4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 480a8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 480ac: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 480ae: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 480b4: 4eb9 0004 a6e4 jsr 4a6e4 <_Objects_Get> <== NOT EXECUTED register POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { 480ba: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 480c0: 2040 moveal %d0,%a0 <== NOT EXECUTED 480c2: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 480c6: 6712 beqs 480da <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 480c8: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED 480ce: 7216 moveq #22,%d1 <== NOT EXECUTED 480d0: 2040 moveal %d0,%a0 <== NOT EXECUTED } 480d2: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 480d4: 70ff moveq #-1,%d0 <== NOT EXECUTED 480d6: 2081 movel %d1,%a0@ <== NOT EXECUTED } 480d8: 4e75 rts <== NOT EXECUTED the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { case OBJECTS_LOCAL: the_semaphore->open_count -= 1; 480da: 53a8 0016 subql #1,%a0@(22) <== NOT EXECUTED _POSIX_Semaphore_Delete( the_semaphore ); 480de: 2f00 movel %d0,%sp@- <== NOT EXECUTED 480e0: 4eb9 0004 ece4 jsr 4ece4 <_POSIX_Semaphore_Delete> <== NOT EXECUTED _Thread_Enable_dispatch(); 480e6: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED 480ec: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 480ee: 4e5e unlk %fp <== NOT EXECUTED switch ( location ) { case OBJECTS_LOCAL: the_semaphore->open_count -= 1; _POSIX_Semaphore_Delete( the_semaphore ); _Thread_Enable_dispatch(); 480f0: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 480f2: 4e75 rts 000480f4 : */ int sem_destroy( sem_t *sem ) { 480f4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 480f8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 480fc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48100: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 48102: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 48108: 4eb9 0004 a6e4 jsr 4a6e4 <_Objects_Get> <== NOT EXECUTED register POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { 4810e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48114: 2040 moveal %d0,%a0 <== NOT EXECUTED 48116: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4811a: 6712 beqs 4812e <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 4811c: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED 48122: 7216 moveq #22,%d1 <== NOT EXECUTED 48124: 2040 moveal %d0,%a0 <== NOT EXECUTED } 48126: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 48128: 70ff moveq #-1,%d0 <== NOT EXECUTED 4812a: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4812c: 4e75 rts <== NOT EXECUTED case OBJECTS_LOCAL: /* * Undefined operation on a named semaphore. */ if ( the_semaphore->named == TRUE ) { 4812e: 4a28 0014 tstb %a0@(20) <== NOT EXECUTED 48132: 6616 bnes 4814a <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EINVAL ); } _POSIX_Semaphore_Delete( the_semaphore ); 48134: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48136: 4eb9 0004 ece4 jsr 4ece4 <_POSIX_Semaphore_Delete> <== NOT EXECUTED _Thread_Enable_dispatch(); 4813c: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED 48142: 588f addql #4,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 48144: 4e5e unlk %fp <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EINVAL ); } _POSIX_Semaphore_Delete( the_semaphore ); _Thread_Enable_dispatch(); 48146: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 48148: 4e75 rts <== NOT EXECUTED /* * Undefined operation on a named semaphore. */ if ( the_semaphore->named == TRUE ) { _Thread_Enable_dispatch(); 4814a: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 48150: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED 48156: 2040 moveal %d0,%a0 <== NOT EXECUTED 48158: 7016 moveq #22,%d0 <== NOT EXECUTED 4815a: 2080 movel %d0,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 4815c: 4e5e unlk %fp <== NOT EXECUTED * Undefined operation on a named semaphore. */ if ( the_semaphore->named == TRUE ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EINVAL ); 4815e: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 48160: 4e75 rts <== NOT EXECUTED ... 00048164 : int sem_getvalue( sem_t *sem, int *sval ) { 48164: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 48168: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4816c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48170: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 48172: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 48178: 4eb9 0004 a6e4 jsr 4a6e4 <_Objects_Get> <== NOT EXECUTED register POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { 4817e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48184: 2040 moveal %d0,%a0 <== NOT EXECUTED 48186: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 4818a: 6712 beqs 4819e <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 4818c: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED 48192: 7216 moveq #22,%d1 <== NOT EXECUTED 48194: 2040 moveal %d0,%a0 <== NOT EXECUTED } 48196: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 48198: 70ff moveq #-1,%d0 <== NOT EXECUTED 4819a: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4819c: 4e75 rts <== NOT EXECUTED the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { case OBJECTS_LOCAL: *sval = _CORE_semaphore_Get_count( &the_semaphore->Semaphore ); 4819e: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 481a2: 22a8 0062 movel %a0@(98),%a1@ <== NOT EXECUTED _Thread_Enable_dispatch(); 481a6: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 481ac: 4e5e unlk %fp <== NOT EXECUTED the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { case OBJECTS_LOCAL: *sval = _CORE_semaphore_Get_count( &the_semaphore->Semaphore ); _Thread_Enable_dispatch(); 481ae: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 481b0: 4e75 rts <== NOT EXECUTED ... 000481b4 : int sem_init( sem_t *sem, int pshared, unsigned int value ) { 481b4: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 481b8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 481ba: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED int status; POSIX_Semaphore_Control *the_semaphore; if ( !sem ) 481be: 4a8a tstl %a2 <== NOT EXECUTED 481c0: 6730 beqs 481f2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); status = _POSIX_Semaphore_Create_support( 481c2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 481c6: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 481ca: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 481ce: 42a7 clrl %sp@- <== NOT EXECUTED 481d0: 4eb9 0004 eb78 jsr 4eb78 <_POSIX_Semaphore_Create_support> <== NOT EXECUTED pshared, value, &the_semaphore ); if ( status != -1 ) 481d6: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 481dc: 72ff moveq #-1,%d1 <== NOT EXECUTED 481de: b280 cmpl %d0,%d1 <== NOT EXECUTED 481e0: 6708 beqs 481ea <== NOT EXECUTED *sem = the_semaphore->Object.id; 481e2: 206e fffc moveal %fp@(-4),%a0 <== NOT EXECUTED 481e6: 24a8 0008 movel %a0@(8),%a2@ <== NOT EXECUTED return status; } 481ea: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 481ee: 4e5e unlk %fp <== NOT EXECUTED 481f0: 4e75 rts <== NOT EXECUTED { int status; POSIX_Semaphore_Control *the_semaphore; if ( !sem ) rtems_set_errno_and_return_minus_one( EINVAL ); 481f2: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED if ( status != -1 ) *sem = the_semaphore->Object.id; return status; } 481f8: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED { int status; POSIX_Semaphore_Control *the_semaphore; if ( !sem ) rtems_set_errno_and_return_minus_one( EINVAL ); 481fc: 2040 moveal %d0,%a0 <== NOT EXECUTED 481fe: 7016 moveq #22,%d0 <== NOT EXECUTED 48200: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( status != -1 ) *sem = the_semaphore->Object.id; return status; } 48202: 4e5e unlk %fp <== NOT EXECUTED { int status; POSIX_Semaphore_Control *the_semaphore; if ( !sem ) rtems_set_errno_and_return_minus_one( EINVAL ); 48204: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( status != -1 ) *sem = the_semaphore->Object.id; return status; } 48206: 4e75 rts 00048208 : rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1; 48208: 2039 0005 ef90 movel 5ef90 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED int oflag, ... /* mode_t mode, */ /* unsigned int value */ ) { 4820e: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 48212: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 48216: 5280 addql #1,%d0 <== NOT EXECUTED 48218: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 4821c: 23c0 0005 ef90 movel %d0,5ef90 <_Thread_Dispatch_disable_level> <== NOT EXECUTED POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; _Thread_Disable_dispatch(); if ( oflag & O_CREAT ) { 48222: 2803 movel %d3,%d4 <== NOT EXECUTED 48224: 0284 0000 0200 andil #512,%d4 <== NOT EXECUTED 4822a: 6600 008c bnew 482b8 <== NOT EXECUTED 4822e: 95ca subal %a2,%a2 <== 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 ); 48230: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48234: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48238: 4eb9 0004 ed3c jsr 4ed3c <_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 ) { 4823e: 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 ); 48240: 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 ) { 48242: 6728 beqs 4826c <== 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) ) ) { 48244: 7002 moveq #2,%d0 <== NOT EXECUTED 48246: b082 cmpl %d2,%d0 <== NOT EXECUTED 48248: 6606 bnes 48250 <== NOT EXECUTED 4824a: 4a84 tstl %d4 <== NOT EXECUTED 4824c: 6600 0090 bnew 482de <== NOT EXECUTED _Thread_Enable_dispatch(); 48250: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one_cast( status, sem_t * ); 48256: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED 4825c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4825e: 2082 movel %d2,%a0@ <== NOT EXECUTED if ( status == -1 ) return SEM_FAILED; id = &the_semaphore->Object.id; return (sem_t *)id; } 48260: 4cee 041c ffe4 moveml %fp@(-28),%d2-%d4/%a2 <== NOT EXECUTED 48266: 4e5e unlk %fp <== NOT EXECUTED * and we are willing to create then it is an error. */ if ( !( status == ENOENT && (oflag & O_CREAT) ) ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one_cast( status, sem_t * ); 48268: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( status == -1 ) return SEM_FAILED; id = &the_semaphore->Object.id; return (sem_t *)id; } 4826a: 4e75 rts <== NOT EXECUTED /* * Check for existence with creation. */ if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { 4826c: 0283 0000 0a00 andil #2560,%d3 <== NOT EXECUTED 48272: 0c83 0000 0a00 cmpil #2560,%d3 <== NOT EXECUTED 48278: 6746 beqs 482c0 <== NOT EXECUTED 4827a: 486e fff4 pea %fp@(-12) <== NOT EXECUTED rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * ); } the_semaphore = _POSIX_Semaphore_Get( &the_semaphore_id, &location ); the_semaphore->open_count += 1; _Thread_Enable_dispatch(); 4827e: 45f9 0004 aee4 lea 4aee4 <_Thread_Enable_dispatch>,%a2 <== NOT EXECUTED 48284: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 48288: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 4828e: 4eb9 0004 a6e4 jsr 4a6e4 <_Objects_Get> <== NOT EXECUTED 48294: 2040 moveal %d0,%a0 <== NOT EXECUTED _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * ); } the_semaphore = _POSIX_Semaphore_Get( &the_semaphore_id, &location ); the_semaphore->open_count += 1; 48296: 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 ); 4829a: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED the_semaphore->open_count += 1; _Thread_Enable_dispatch(); 4829e: 4e92 jsr %a2@ <== NOT EXECUTED _Thread_Enable_dispatch(); 482a0: 4e92 jsr %a2@ <== NOT EXECUTED id = &the_semaphore->Object.id; return (sem_t *)id; 482a2: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 482a6: dffc 0000 000c addal #12,%sp <== NOT EXECUTED if ( status == -1 ) return SEM_FAILED; id = &the_semaphore->Object.id; return (sem_t *)id; } 482ac: 4cee 041c ffe4 moveml %fp@(-28),%d2-%d4/%a2 <== NOT EXECUTED 482b2: 4e5e unlk %fp <== NOT EXECUTED the_semaphore = _POSIX_Semaphore_Get( &the_semaphore_id, &location ); the_semaphore->open_count += 1; _Thread_Enable_dispatch(); _Thread_Enable_dispatch(); id = &the_semaphore->Object.id; return (sem_t *)id; 482b4: 5080 addql #8,%d0 <== NOT EXECUTED if ( status == -1 ) return SEM_FAILED; id = &the_semaphore->Object.id; return (sem_t *)id; } 482b6: 4e75 rts <== NOT EXECUTED _Thread_Disable_dispatch(); if ( oflag & O_CREAT ) { va_start(arg, oflag); mode = (mode_t) va_arg( arg, unsigned int ); value = va_arg( arg, unsigned int ); 482b8: 246e 0014 moveal %fp@(20),%a2 <== NOT EXECUTED 482bc: 6000 ff72 braw 48230 <== NOT EXECUTED /* * Check for existence with creation. */ if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { _Thread_Enable_dispatch(); 482c0: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * ); 482c6: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED 482cc: 2040 moveal %d0,%a0 <== NOT EXECUTED 482ce: 7011 moveq #17,%d0 <== NOT EXECUTED if ( status == -1 ) return SEM_FAILED; id = &the_semaphore->Object.id; return (sem_t *)id; } 482d0: 4cee 041c ffe4 moveml %fp@(-28),%d2-%d4/%a2 <== NOT EXECUTED * Check for existence with creation. */ if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * ); 482d6: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( status == -1 ) return SEM_FAILED; id = &the_semaphore->Object.id; return (sem_t *)id; } 482d8: 4e5e unlk %fp <== NOT EXECUTED * Check for existence with creation. */ if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * ); 482da: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( status == -1 ) return SEM_FAILED; id = &the_semaphore->Object.id; return (sem_t *)id; } 482dc: 4e75 rts <== 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( 482de: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 482e2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 482e4: 42a7 clrl %sp@- <== NOT EXECUTED 482e6: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 482ea: 4eb9 0004 eb78 jsr 4eb78 <_POSIX_Semaphore_Create_support> <== NOT EXECUTED 482f0: 2400 movel %d0,%d2 <== NOT EXECUTED /* * errno was set by Create_support, so don't set it again. */ _Thread_Enable_dispatch(); 482f2: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED if ( status == -1 ) 482f8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 482fe: 72ff moveq #-1,%d1 <== NOT EXECUTED 48300: b282 cmpl %d2,%d1 <== NOT EXECUTED 48302: 6710 beqs 48314 <== NOT EXECUTED return SEM_FAILED; id = &the_semaphore->Object.id; return (sem_t *)id; 48304: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED } 48308: 4cee 041c ffe4 moveml %fp@(-28),%d2-%d4/%a2 <== NOT EXECUTED 4830e: 4e5e unlk %fp <== NOT EXECUTED if ( status == -1 ) return SEM_FAILED; id = &the_semaphore->Object.id; return (sem_t *)id; 48310: 5080 addql #8,%d0 <== NOT EXECUTED } 48312: 4e75 rts <== NOT EXECUTED 48314: 4cee 041c ffe4 moveml %fp@(-28),%d2-%d4/%a2 <== NOT EXECUTED 4831a: 4e5e unlk %fp <== NOT EXECUTED * errno was set by Create_support, so don't set it again. */ _Thread_Enable_dispatch(); if ( status == -1 ) 4831c: 70ff moveq #-1,%d0 <== NOT EXECUTED return SEM_FAILED; id = &the_semaphore->Object.id; return (sem_t *)id; } 4831e: 4e75 rts 00048320 : */ int sem_post( sem_t *sem ) { 48320: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 48324: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48328: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4832c: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4832e: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 48334: 4eb9 0004 a6e4 jsr 4a6e4 <_Objects_Get> <== NOT EXECUTED register POSIX_Semaphore_Control *the_semaphore; Objects_Locations location; the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { 4833a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48340: 2040 moveal %d0,%a0 <== NOT EXECUTED 48342: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 48346: 6712 beqs 4835a <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 48348: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED 4834e: 7216 moveq #22,%d1 <== NOT EXECUTED 48350: 2040 moveal %d0,%a0 <== NOT EXECUTED } 48352: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 48354: 70ff moveq #-1,%d0 <== NOT EXECUTED 48356: 2081 movel %d1,%a0@ <== NOT EXECUTED } 48358: 4e75 rts <== NOT EXECUTED the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { case OBJECTS_LOCAL: _CORE_semaphore_Surrender( 4835a: 42a7 clrl %sp@- <== NOT EXECUTED 4835c: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 48360: 4868 001a pea %a0@(26) <== NOT EXECUTED 48364: 4eb9 0004 9d84 jsr 49d84 <_CORE_semaphore_Surrender> <== NOT EXECUTED NULL /* XXX need to define a routine to handle this case */ #else NULL #endif ); _Thread_Enable_dispatch(); 4836a: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED 48370: dffc 0000 000c addal #12,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 48376: 4e5e unlk %fp <== NOT EXECUTED NULL /* XXX need to define a routine to handle this case */ #else NULL #endif ); _Thread_Enable_dispatch(); 48378: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 4837a: 4e75 rts 0004837c : int sem_timedwait( sem_t *sem, const struct timespec *abstime ) { 4837c: 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 ); 48380: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48384: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48388: 4eb9 0004 e0f8 jsr 4e0f8 <_POSIX_Absolute_timeout_to_ticks> <== NOT EXECUTED switch ( status ) { 4838e: 508f addql #8,%sp <== NOT EXECUTED 48390: 7202 moveq #2,%d1 <== NOT EXECUTED 48392: b280 cmpl %d0,%d1 <== NOT EXECUTED 48394: 641c bccs 483b2 <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: do_wait = true; break; } lock_status = _POSIX_Semaphore_Wait_support( sem, do_wait, ticks ); 48396: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 4839a: 4878 0001 pea 1 <== NOT EXECUTED 4839e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 483a2: 4eb9 0004 edb0 jsr 4edb0 <_POSIX_Semaphore_Wait_support> <== NOT EXECUTED 483a8: dffc 0000 000c addal #12,%sp <== NOT EXECUTED break; } } return lock_status; } 483ae: 4e5e unlk %fp <== NOT EXECUTED 483b0: 4e75 rts <== NOT EXECUTED case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: do_wait = true; break; } lock_status = _POSIX_Semaphore_Wait_support( sem, do_wait, ticks ); 483b2: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 483b6: 42a7 clrl %sp@- <== NOT EXECUTED 483b8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 483bc: 4eb9 0004 edb0 jsr 4edb0 <_POSIX_Semaphore_Wait_support> <== NOT EXECUTED 483c2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED break; } } return lock_status; } 483c8: 4e5e unlk %fp <== NOT EXECUTED 483ca: 4e75 rts 000483cc : */ int sem_trywait( sem_t *sem ) { 483cc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Semaphore_Wait_support(sem, FALSE, THREAD_QUEUE_WAIT_FOREVER); 483d0: 42a7 clrl %sp@- <== NOT EXECUTED 483d2: 42a7 clrl %sp@- <== NOT EXECUTED 483d4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 483d8: 4eb9 0004 edb0 jsr 4edb0 <_POSIX_Semaphore_Wait_support> <== NOT EXECUTED } 483de: 4e5e unlk %fp <== NOT EXECUTED 483e0: 4e75 rts <== NOT EXECUTED ... 000483e4 : 483e4: 2039 0005 ef90 movel 5ef90 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED */ int sem_unlink( const char *name ) { 483ea: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 483ee: 5280 addql #1,%d0 <== NOT EXECUTED 483f0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 483f2: 23c0 0005 ef90 movel %d0,5ef90 <_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 ); 483f8: 486e fffc pea %fp@(-4) <== NOT EXECUTED 483fc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48400: 4eb9 0004 ed3c jsr 4ed3c <_POSIX_Semaphore_Name_to_id> <== NOT EXECUTED if ( status != 0 ) { 48406: 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 ); 48408: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( status != 0 ) { 4840a: 4a80 tstl %d0 <== NOT EXECUTED 4840c: 667c bnes 4848a <== NOT EXECUTED RTEMS_INLINE_ROUTINE Objects_Control *_Objects_Get_local_object( Objects_Information *information, uint16_t index ) { if ( index > information->maximum ) 4840e: 4281 clrl %d1 <== NOT EXECUTED 48410: 4280 clrl %d0 <== NOT EXECUTED 48412: 322e fffe movew %fp@(-2),%d1 <== NOT EXECUTED 48416: 3039 0005 f208 movew 5f208 <_POSIX_Semaphore_Information+0xe>,%d0 <== NOT EXECUTED 4841c: b081 cmpl %d1,%d0 <== NOT EXECUTED 4841e: 6434 bccs 48454 <== NOT EXECUTED the_semaphore = (POSIX_Semaphore_Control *) _Objects_Get_local_object( &_POSIX_Semaphore_Information, _Objects_Get_index( the_semaphore_id ) ); the_semaphore->linked = FALSE; 48420: 4200 clrb %d0 <== NOT EXECUTED 48422: 95ca subal %a2,%a2 <== NOT EXECUTED 48424: 1540 0015 moveb %d0,%a2@(21) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Namespace_remove ( POSIX_Semaphore_Control *the_semaphore ) { _Objects_Namespace_remove( 48428: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4842a: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 48430: 4eb9 0004 a84c jsr 4a84c <_Objects_Namespace_remove> <== NOT EXECUTED _POSIX_Semaphore_Namespace_remove( the_semaphore ); _POSIX_Semaphore_Delete( the_semaphore ); 48436: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48438: 4eb9 0004 ece4 jsr 4ece4 <_POSIX_Semaphore_Delete> <== NOT EXECUTED _Thread_Enable_dispatch(); 4843e: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED 48444: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4844a: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4844c: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 48450: 4e5e unlk %fp <== NOT EXECUTED 48452: 4e75 rts <== NOT EXECUTED 48454: 2079 0005 f214 moveal 5f214 <_POSIX_Semaphore_Information+0x1a>,%a0 <== NOT EXECUTED 4845a: 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; 4845e: 4200 clrb %d0 <== NOT EXECUTED 48460: 1540 0015 moveb %d0,%a2@(21) <== NOT EXECUTED 48464: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48466: 4879 0005 f1fa pea 5f1fa <_POSIX_Semaphore_Information> <== NOT EXECUTED 4846c: 4eb9 0004 a84c jsr 4a84c <_Objects_Namespace_remove> <== NOT EXECUTED _POSIX_Semaphore_Namespace_remove( the_semaphore ); _POSIX_Semaphore_Delete( the_semaphore ); 48472: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48474: 4eb9 0004 ece4 jsr 4ece4 <_POSIX_Semaphore_Delete> <== NOT EXECUTED _Thread_Enable_dispatch(); 4847a: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED 48480: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 48486: 4280 clrl %d0 <== NOT EXECUTED 48488: 60c2 bras 4844c <== NOT EXECUTED _Thread_Disable_dispatch(); status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id ); if ( status != 0 ) { _Thread_Enable_dispatch(); 4848a: 4eb9 0004 aee4 jsr 4aee4 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( status ); 48490: 4eb9 0005 0d18 jsr 50d18 <__errno> <== NOT EXECUTED 48496: 2040 moveal %d0,%a0 <== NOT EXECUTED 48498: 208a movel %a2,%a0@ <== NOT EXECUTED _POSIX_Semaphore_Namespace_remove( the_semaphore ); _POSIX_Semaphore_Delete( the_semaphore ); _Thread_Enable_dispatch(); return 0; } 4849a: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4849e: 4e5e unlk %fp <== NOT EXECUTED _Thread_Disable_dispatch(); status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id ); if ( status != 0 ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( status ); 484a0: 70ff moveq #-1,%d0 <== NOT EXECUTED _POSIX_Semaphore_Namespace_remove( the_semaphore ); _POSIX_Semaphore_Delete( the_semaphore ); _Thread_Enable_dispatch(); return 0; } 484a2: 4e75 rts 000484a4 : */ int sem_wait( sem_t *sem ) { 484a4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return _POSIX_Semaphore_Wait_support( sem, TRUE, THREAD_QUEUE_WAIT_FOREVER ); 484a8: 42a7 clrl %sp@- <== NOT EXECUTED 484aa: 4878 0001 pea 1 <== NOT EXECUTED 484ae: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 484b2: 4eb9 0004 edb0 jsr 4edb0 <_POSIX_Semaphore_Wait_support> <== NOT EXECUTED } 484b8: 4e5e unlk %fp <== NOT EXECUTED 484ba: 4e75 rts 000608ca : int setgid( gid_t gid ) { _POSIX_types_Gid = gid; 608ca: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED */ int setgid( gid_t gid ) { 608d0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _POSIX_types_Gid = gid; 608d4: 316e 000a 002c movew %fp@(10),%a0@(44) <== NOT EXECUTED return 0; } 608da: 4e5e unlk %fp <== NOT EXECUTED 608dc: 4280 clrl %d0 <== NOT EXECUTED 608de: 4e75 rts 00060e40 : return NULL; return &grent; } void setgrent(void) { 60e40: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED init_etc_passwd_group(); 60e44: 4eb9 0006 0d32 jsr 60d32 <== NOT EXECUTED if (group_fp != NULL) 60e4a: 2039 0009 a44a movel 9a44a ,%d0 <== NOT EXECUTED 60e50: 670a beqs 60e5c <== NOT EXECUTED fclose(group_fp); 60e52: 2f00 movel %d0,%sp@- <== NOT EXECUTED 60e54: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED 60e5a: 588f addql #4,%sp <== NOT EXECUTED group_fp = fopen("/etc/group", "r"); 60e5c: 4879 0008 198b pea 8198b <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 60e62: 4879 0008 307b pea 8307b <== NOT EXECUTED 60e68: 4eb9 0007 0ec8 jsr 70ec8 <== NOT EXECUTED 60e6e: 508f addql #8,%sp <== NOT EXECUTED } 60e70: 4e5e unlk %fp <== NOT EXECUTED { init_etc_passwd_group(); if (group_fp != NULL) fclose(group_fp); group_fp = fopen("/etc/group", "r"); 60e72: 23c0 0009 a44a movel %d0,9a44a <== NOT EXECUTED } 60e78: 4e75 rts 00061012 : return NULL; return &pwent; } void setpwent(void) { 61012: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED init_etc_passwd_group(); 61016: 4eb9 0006 0d32 jsr 60d32 <== NOT EXECUTED if (passwd_fp != NULL) 6101c: 2039 0009 a362 movel 9a362 ,%d0 <== NOT EXECUTED 61022: 670a beqs 6102e <== NOT EXECUTED fclose(passwd_fp); 61024: 2f00 movel %d0,%sp@- <== NOT EXECUTED 61026: 4eb9 0007 06ce jsr 706ce <== NOT EXECUTED 6102c: 588f addql #4,%sp <== NOT EXECUTED passwd_fp = fopen("/etc/passwd", "r"); 6102e: 4879 0008 198b pea 8198b <_CPU_m68k_BFFFO_table+0x486> <== NOT EXECUTED 61034: 4879 0008 3008 pea 83008 <== NOT EXECUTED 6103a: 4eb9 0007 0ec8 jsr 70ec8 <== NOT EXECUTED 61040: 508f addql #8,%sp <== NOT EXECUTED } 61042: 4e5e unlk %fp <== NOT EXECUTED { init_etc_passwd_group(); if (passwd_fp != NULL) fclose(passwd_fp); passwd_fp = fopen("/etc/passwd", "r"); 61044: 23c0 0009 a362 movel %d0,9a362 <== NOT EXECUTED } 6104a: 4e75 rts 00046316 : int setuid( uid_t uid ) { _POSIX_types_Uid = uid; 46316: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED */ int setuid( uid_t uid ) { 4631c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED _POSIX_types_Uid = uid; 46320: 316e 000a 002a movew %fp@(10),%a0@(42) <== NOT EXECUTED return 0; } 46326: 4e5e unlk %fp <== NOT EXECUTED 46328: 4280 clrl %d0 <== NOT EXECUTED 4632a: 4e75 rts 0004632c : int sigaction( int sig, const struct sigaction *act, struct sigaction *oact ) { 4632c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 46330: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 46334: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 46338: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 4633c: 222e 0010 movel %fp@(16),%d1 <== NOT EXECUTED ISR_Level level; if ( oact ) 46340: 671a beqs 4635c <== NOT EXECUTED *oact = _POSIX_signals_Vectors[ sig ]; 46342: 2602 movel %d2,%d3 <== NOT EXECUTED 46344: 2002 movel %d2,%d0 <== NOT EXECUTED 46346: e98b lsll #4,%d3 <== NOT EXECUTED 46348: e588 lsll #2,%d0 <== NOT EXECUTED 4634a: 2043 moveal %d3,%a0 <== NOT EXECUTED 4634c: 91c0 subal %d0,%a0 <== NOT EXECUTED 4634e: d1fc 0005 c922 addal #379170,%a0 <== NOT EXECUTED 46354: 2241 moveal %d1,%a1 <== NOT EXECUTED 46356: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 46358: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 4635a: 2290 movel %a0@,%a1@ <== NOT EXECUTED if ( !sig ) 4635c: 4a82 tstl %d2 <== NOT EXECUTED 4635e: 677c beqs 463dc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(sig) ) 46360: 2202 movel %d2,%d1 <== NOT EXECUTED 46362: 5381 subql #1,%d1 <== NOT EXECUTED 46364: 701f moveq #31,%d0 <== NOT EXECUTED 46366: b081 cmpl %d1,%d0 <== NOT EXECUTED 46368: 6572 bcss 463dc <== NOT EXECUTED * * NOTE: Solaris documentation claims to "silently enforce" this which * contradicts the POSIX specification. */ if ( sig == SIGKILL ) 4636a: 7609 moveq #9,%d3 <== NOT EXECUTED 4636c: b682 cmpl %d2,%d3 <== NOT EXECUTED 4636e: 676c beqs 463dc <== NOT EXECUTED /* * Evaluate the new action structure and set the global signal vector * appropriately. */ if ( act ) { 46370: 4a8a tstl %a2 <== NOT EXECUTED 46372: 673a beqs 463ae <== 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 ); 46374: 203c 0000 0700 movel #1792,%d0 <== NOT EXECUTED 4637a: 40c3 movew %sr,%d3 <== NOT EXECUTED 4637c: 8083 orl %d3,%d0 <== NOT EXECUTED 4637e: 46c0 movew %d0,%sr <== NOT EXECUTED if ( act->sa_handler == SIG_DFL ) { 46380: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 46384: 6734 beqs 463ba <== NOT EXECUTED _POSIX_signals_Vectors[ sig ] = _POSIX_signals_Default_vectors[ sig ]; } else { _POSIX_signals_Clear_process_signals( signo_to_mask(sig) ); 46386: 7001 moveq #1,%d0 <== NOT EXECUTED 46388: e3a8 lsll %d1,%d0 <== NOT EXECUTED 4638a: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4638c: 4eb9 0004 c4d4 jsr 4c4d4 <_POSIX_signals_Clear_process_signals> <== NOT EXECUTED _POSIX_signals_Vectors[ sig ] = *act; 46392: 2002 movel %d2,%d0 <== NOT EXECUTED 46394: e988 lsll #4,%d0 <== NOT EXECUTED 46396: 2040 moveal %d0,%a0 <== NOT EXECUTED 46398: e58a lsll #2,%d2 <== NOT EXECUTED 4639a: 91c2 subal %d2,%a0 <== NOT EXECUTED 4639c: d1fc 0005 c922 addal #379170,%a0 <== NOT EXECUTED 463a2: 224a moveal %a2,%a1 <== NOT EXECUTED 463a4: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 463a6: 588f addql #4,%sp <== NOT EXECUTED 463a8: 20d9 movel %a1@+,%a0@+ <== NOT EXECUTED 463aa: 2091 movel %a1@,%a0@ <== NOT EXECUTED } _ISR_Enable( level ); 463ac: 46c3 movew %d3,%sr <== NOT EXECUTED * + If we are now ignoring a signal that was previously pending, * we clear the pending signal indicator. */ return 0; } 463ae: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 463b4: 4e5e unlk %fp <== NOT EXECUTED _POSIX_signals_Vectors[ sig ] = _POSIX_signals_Default_vectors[ sig ]; } else { _POSIX_signals_Clear_process_signals( signo_to_mask(sig) ); _POSIX_signals_Vectors[ sig ] = *act; } _ISR_Enable( level ); 463b6: 4280 clrl %d0 <== NOT EXECUTED * + If we are now ignoring a signal that was previously pending, * we clear the pending signal indicator. */ return 0; } 463b8: 4e75 rts <== NOT EXECUTED * we can just copy the provided sigaction structure into the vectors. */ _ISR_Disable( level ); if ( act->sa_handler == SIG_DFL ) { _POSIX_signals_Vectors[ sig ] = _POSIX_signals_Default_vectors[ sig ]; 463ba: 2002 movel %d2,%d0 <== NOT EXECUTED 463bc: e58a lsll #2,%d2 <== NOT EXECUTED 463be: e988 lsll #4,%d0 <== NOT EXECUTED 463c0: 9082 subl %d2,%d0 <== NOT EXECUTED 463c2: 2240 moveal %d0,%a1 <== NOT EXECUTED 463c4: 2040 moveal %d0,%a0 <== NOT EXECUTED 463c6: d3fc 0005 c922 addal #379170,%a1 <== NOT EXECUTED 463cc: d1fc 0005 998a addal #366986,%a0 <== NOT EXECUTED 463d2: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 463d4: 22d8 movel %a0@+,%a1@+ <== NOT EXECUTED 463d6: 2290 movel %a0@,%a1@ <== NOT EXECUTED } else { _POSIX_signals_Clear_process_signals( signo_to_mask(sig) ); _POSIX_signals_Vectors[ sig ] = *act; } _ISR_Enable( level ); 463d8: 46c3 movew %d3,%sr <== NOT EXECUTED 463da: 60d2 bras 463ae <== NOT EXECUTED * NOTE: Solaris documentation claims to "silently enforce" this which * contradicts the POSIX specification. */ if ( sig == SIGKILL ) rtems_set_errno_and_return_minus_one( EINVAL ); 463dc: 4eb9 0004 e560 jsr 4e560 <__errno> <== NOT EXECUTED 463e2: 2040 moveal %d0,%a0 <== NOT EXECUTED 463e4: 7016 moveq #22,%d0 <== NOT EXECUTED * + If we are now ignoring a signal that was previously pending, * we clear the pending signal indicator. */ return 0; } 463e6: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED * NOTE: Solaris documentation claims to "silently enforce" this which * contradicts the POSIX specification. */ if ( sig == SIGKILL ) rtems_set_errno_and_return_minus_one( EINVAL ); 463ec: 2080 movel %d0,%a0@ <== NOT EXECUTED * + If we are now ignoring a signal that was previously pending, * we clear the pending signal indicator. */ return 0; } 463ee: 4e5e unlk %fp <== NOT EXECUTED * NOTE: Solaris documentation claims to "silently enforce" this which * contradicts the POSIX specification. */ if ( sig == SIGKILL ) rtems_set_errno_and_return_minus_one( EINVAL ); 463f0: 70ff moveq #-1,%d0 <== NOT EXECUTED * + If we are now ignoring a signal that was previously pending, * we clear the pending signal indicator. */ return 0; } 463f2: 4e75 rts 000463f4 : int sigaddset( sigset_t *set, int signo ) { 463f4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 463f8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 463fc: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !set ) 46400: 4a88 tstl %a0 <== NOT EXECUTED 46402: 671a beqs 4641e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !signo ) 46404: 4a80 tstl %d0 <== NOT EXECUTED 46406: 6716 beqs 4641e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(signo) ) 46408: 2200 movel %d0,%d1 <== NOT EXECUTED 4640a: 5381 subql #1,%d1 <== NOT EXECUTED 4640c: 701f moveq #31,%d0 <== NOT EXECUTED 4640e: b081 cmpl %d1,%d0 <== NOT EXECUTED 46410: 650c bcss 4641e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); *set |= signo_to_mask(signo); 46412: 7001 moveq #1,%d0 <== NOT EXECUTED 46414: e3a8 lsll %d1,%d0 <== NOT EXECUTED 46416: 8190 orl %d0,%a0@ <== NOT EXECUTED return 0; } 46418: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(signo) ) rtems_set_errno_and_return_minus_one( EINVAL ); *set |= signo_to_mask(signo); 4641a: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4641c: 4e75 rts <== NOT EXECUTED if ( !signo ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(signo) ) rtems_set_errno_and_return_minus_one( EINVAL ); 4641e: 4eb9 0004 e560 jsr 4e560 <__errno> <== NOT EXECUTED 46424: 2040 moveal %d0,%a0 <== NOT EXECUTED 46426: 7016 moveq #22,%d0 <== NOT EXECUTED 46428: 2080 movel %d0,%a0@ <== NOT EXECUTED *set |= signo_to_mask(signo); return 0; } 4642a: 4e5e unlk %fp <== NOT EXECUTED if ( !signo ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(signo) ) rtems_set_errno_and_return_minus_one( EINVAL ); 4642c: 70ff moveq #-1,%d0 <== NOT EXECUTED *set |= signo_to_mask(signo); return 0; } 4642e: 4e75 rts 000482dc : int sigdelset( sigset_t *set, int signo ) { 482dc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 482e0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 482e4: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !set ) 482e8: 4a88 tstl %a0 <== NOT EXECUTED 482ea: 671c beqs 48308 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !signo ) 482ec: 4a80 tstl %d0 <== NOT EXECUTED 482ee: 6714 beqs 48304 <== NOT EXECUTED return 0; if ( !is_valid_signo(signo) ) 482f0: 2200 movel %d0,%d1 <== NOT EXECUTED 482f2: 5381 subql #1,%d1 <== NOT EXECUTED 482f4: 701f moveq #31,%d0 <== NOT EXECUTED 482f6: b081 cmpl %d1,%d0 <== NOT EXECUTED 482f8: 650e bcss 48308 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); *set &= ~signo_to_mask(signo); 482fa: 7001 moveq #1,%d0 <== NOT EXECUTED 482fc: e3a8 lsll %d1,%d0 <== NOT EXECUTED 482fe: 4680 notl %d0 <== NOT EXECUTED 48300: c190 andl %d0,%a0@ <== NOT EXECUTED 48302: 4280 clrl %d0 <== NOT EXECUTED return 0; } 48304: 4e5e unlk %fp <== NOT EXECUTED 48306: 4e75 rts <== NOT EXECUTED if ( !signo ) return 0; if ( !is_valid_signo(signo) ) rtems_set_errno_and_return_minus_one( EINVAL ); 48308: 4eb9 0005 0a38 jsr 50a38 <__errno> <== NOT EXECUTED 4830e: 2040 moveal %d0,%a0 <== NOT EXECUTED 48310: 7016 moveq #22,%d0 <== NOT EXECUTED 48312: 2080 movel %d0,%a0@ <== NOT EXECUTED *set &= ~signo_to_mask(signo); return 0; } 48314: 4e5e unlk %fp <== NOT EXECUTED if ( !signo ) return 0; if ( !is_valid_signo(signo) ) rtems_set_errno_and_return_minus_one( EINVAL ); 48316: 70ff moveq #-1,%d0 <== NOT EXECUTED *set &= ~signo_to_mask(signo); return 0; } 48318: 4e75 rts <== NOT EXECUTED ... 0004b698 : #include int sigemptyset( sigset_t *set ) { 4b698: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b69c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !set ) 4b6a0: 4a88 tstl %a0 <== NOT EXECUTED 4b6a2: 6708 beqs 4b6ac <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); *set = 0; return 0; } 4b6a4: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !set ) rtems_set_errno_and_return_minus_one( EINVAL ); *set = 0; 4b6a6: 4280 clrl %d0 <== NOT EXECUTED 4b6a8: 4290 clrl %a0@ <== NOT EXECUTED return 0; } 4b6aa: 4e75 rts <== NOT EXECUTED int sigemptyset( sigset_t *set ) { if ( !set ) rtems_set_errno_and_return_minus_one( EINVAL ); 4b6ac: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 4b6b2: 2040 moveal %d0,%a0 <== NOT EXECUTED 4b6b4: 7016 moveq #22,%d0 <== NOT EXECUTED 4b6b6: 2080 movel %d0,%a0@ <== NOT EXECUTED *set = 0; return 0; } 4b6b8: 4e5e unlk %fp <== NOT EXECUTED int sigemptyset( sigset_t *set ) { if ( !set ) rtems_set_errno_and_return_minus_one( EINVAL ); 4b6ba: 70ff moveq #-1,%d0 <== NOT EXECUTED *set = 0; return 0; } 4b6bc: 4e75 rts <== NOT EXECUTED ... 00048344 : #include int sigfillset( sigset_t *set ) { 48344: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48348: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED if ( !set ) 4834c: 4a88 tstl %a0 <== NOT EXECUTED 4834e: 670a beqs 4835a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); *set = SIGNAL_ALL_MASK; 48350: 72ff moveq #-1,%d1 <== NOT EXECUTED return 0; } 48352: 4e5e unlk %fp <== NOT EXECUTED ) { if ( !set ) rtems_set_errno_and_return_minus_one( EINVAL ); *set = SIGNAL_ALL_MASK; 48354: 4280 clrl %d0 <== NOT EXECUTED 48356: 2081 movel %d1,%a0@ <== NOT EXECUTED return 0; } 48358: 4e75 rts <== NOT EXECUTED int sigfillset( sigset_t *set ) { if ( !set ) rtems_set_errno_and_return_minus_one( EINVAL ); 4835a: 4eb9 0005 0a38 jsr 50a38 <__errno> <== NOT EXECUTED 48360: 2040 moveal %d0,%a0 <== NOT EXECUTED 48362: 7016 moveq #22,%d0 <== NOT EXECUTED 48364: 2080 movel %d0,%a0@ <== NOT EXECUTED *set = SIGNAL_ALL_MASK; return 0; } 48366: 4e5e unlk %fp <== NOT EXECUTED int sigfillset( sigset_t *set ) { if ( !set ) rtems_set_errno_and_return_minus_one( EINVAL ); 48368: 70ff moveq #-1,%d0 <== NOT EXECUTED *set = SIGNAL_ALL_MASK; return 0; } 4836a: 4e75 rts 0004836c : int sigismember( const sigset_t *set, int signo ) { 4836c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48370: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 48374: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED if ( !set ) 48378: 4a88 tstl %a0 <== NOT EXECUTED 4837a: 6720 beqs 4839c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !signo ) 4837c: 4a80 tstl %d0 <== NOT EXECUTED 4837e: 6718 beqs 48398 <== NOT EXECUTED return 0; if ( !is_valid_signo(signo) ) 48380: 2200 movel %d0,%d1 <== NOT EXECUTED 48382: 5381 subql #1,%d1 <== NOT EXECUTED 48384: 701f moveq #31,%d0 <== NOT EXECUTED 48386: b081 cmpl %d1,%d0 <== NOT EXECUTED 48388: 6512 bcss 4839c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4838a: 7001 moveq #1,%d0 <== NOT EXECUTED 4838c: e3a8 lsll %d1,%d0 <== NOT EXECUTED 4838e: c090 andl %a0@,%d0 <== NOT EXECUTED 48390: 56c1 sne %d1 <== NOT EXECUTED 48392: 1001 moveb %d1,%d0 <== NOT EXECUTED 48394: 49c0 extbl %d0 <== NOT EXECUTED 48396: 4480 negl %d0 <== NOT EXECUTED if ( *set & signo_to_mask(signo) ) return 1; return 0; } 48398: 4e5e unlk %fp <== NOT EXECUTED 4839a: 4e75 rts <== NOT EXECUTED if ( !signo ) return 0; if ( !is_valid_signo(signo) ) rtems_set_errno_and_return_minus_one( EINVAL ); 4839c: 4eb9 0005 0a38 jsr 50a38 <__errno> <== NOT EXECUTED 483a2: 2040 moveal %d0,%a0 <== NOT EXECUTED 483a4: 7016 moveq #22,%d0 <== NOT EXECUTED 483a6: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( *set & signo_to_mask(signo) ) return 1; return 0; } 483a8: 4e5e unlk %fp <== NOT EXECUTED if ( !signo ) return 0; if ( !is_valid_signo(signo) ) rtems_set_errno_and_return_minus_one( EINVAL ); 483aa: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( *set & signo_to_mask(signo) ) return 1; return 0; } 483ac: 4e75 rts <== NOT EXECUTED ... 0004604c : sighandler_t signal( int signum, sighandler_t handler ) { 4604c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED struct sigaction s; struct sigaction old; s.sa_handler = handler ; sigemptyset(&s.sa_mask); 46050: 486e fff8 pea %fp@(-8) <== NOT EXECUTED ) { struct sigaction s; struct sigaction old; s.sa_handler = handler ; 46054: 2d6e 000c fffc movel %fp@(12),%fp@(-4) <== NOT EXECUTED sigemptyset(&s.sa_mask); 4605a: 4eb9 0004 6024 jsr 46024 <== NOT EXECUTED s.sa_flags = SA_RESTART; #else s.sa_flags = 0; #endif sigaction( signum, &s, &old ); 46060: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED 46064: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 46068: 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; 4606c: 42ae fff4 clrl %fp@(-12) <== NOT EXECUTED #endif sigaction( signum, &s, &old ); 46070: 4eb9 0004 5f20 jsr 45f20 <== NOT EXECUTED return (sighandler_t) old.sa_handler; } 46076: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 4607a: 4e5e unlk %fp <== NOT EXECUTED 4607c: 4e75 rts <== NOT EXECUTED ... 00046458 : #include int sigpending( sigset_t *set ) { 46458: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4645c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4645e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED POSIX_API_Control *api; if ( !set ) 46462: 4a8a tstl %a2 <== NOT EXECUTED 46464: 6720 beqs 46486 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; *set = api->signals_pending | _POSIX_signals_Pending; 46466: 2079 0005 c4d6 moveal 5c4d6 <_Thread_Executing>,%a0 <== NOT EXECUTED 4646c: 2039 0005 caee movel 5caee <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 46472: 2268 0110 moveal %a0@(272),%a1 <== NOT EXECUTED 46476: 80a9 00c8 orl %a1@(200),%d0 <== NOT EXECUTED 4647a: 2480 movel %d0,%a2@ <== NOT EXECUTED return 0; } 4647c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 46480: 4e5e unlk %fp <== NOT EXECUTED if ( !set ) rtems_set_errno_and_return_minus_one( EINVAL ); api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; *set = api->signals_pending | _POSIX_signals_Pending; 46482: 4280 clrl %d0 <== NOT EXECUTED return 0; } 46484: 4e75 rts <== NOT EXECUTED ) { POSIX_API_Control *api; if ( !set ) rtems_set_errno_and_return_minus_one( EINVAL ); 46486: 4eb9 0004 e560 jsr 4e560 <__errno> <== NOT EXECUTED api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; *set = api->signals_pending | _POSIX_signals_Pending; return 0; } 4648c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED ) { POSIX_API_Control *api; if ( !set ) rtems_set_errno_and_return_minus_one( EINVAL ); 46490: 2040 moveal %d0,%a0 <== NOT EXECUTED 46492: 7016 moveq #22,%d0 <== NOT EXECUTED 46494: 2080 movel %d0,%a0@ <== NOT EXECUTED api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; *set = api->signals_pending | _POSIX_signals_Pending; return 0; } 46496: 4e5e unlk %fp <== NOT EXECUTED ) { POSIX_API_Control *api; if ( !set ) rtems_set_errno_and_return_minus_one( EINVAL ); 46498: 70ff moveq #-1,%d0 <== NOT EXECUTED api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; *set = api->signals_pending | _POSIX_signals_Pending; return 0; } 4649a: 4e75 rts 0004649c : int sigprocmask( int how, const sigset_t *set, sigset_t *oset ) { 4649c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * P1003.1c/Draft 10, p. 38 maps sigprocmask to pthread_sigmask. */ return pthread_sigmask( how, set, oset ); } 464a0: 4e5e unlk %fp <== NOT EXECUTED { /* * P1003.1c/Draft 10, p. 38 maps sigprocmask to pthread_sigmask. */ return pthread_sigmask( how, set, oset ); 464a2: 4ef9 0004 c998 jmp 4c998 <== NOT EXECUTED 00048400 : int sigqueue( pid_t pid, int signo, const union sigval value ) { 48400: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return killinfo( pid, signo, &value ); 48404: 486e 0010 pea %fp@(16) <== NOT EXECUTED 48408: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4840c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48410: 4eb9 0004 e584 jsr 4e584 <== NOT EXECUTED } 48416: 4e5e unlk %fp <== NOT EXECUTED 48418: 4e75 rts <== NOT EXECUTED ... 0004841c : #include int sigsuspend( const sigset_t *sigmask ) { 4841c: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 48420: 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 ); 48424: 260e movel %fp,%d3 <== NOT EXECUTED 48426: 5983 subql #4,%d3 <== NOT EXECUTED 48428: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4842a: 45f9 0004 83f4 lea 483f4 ,%a2 <== NOT EXECUTED 48430: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED (void) sigfillset( &all_signals ); 48434: 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 ); 48436: 4878 0001 pea 1 <== NOT EXECUTED 4843a: 4e92 jsr %a2@ <== NOT EXECUTED (void) sigfillset( &all_signals ); 4843c: 5182 subql #8,%d2 <== NOT EXECUTED 4843e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48440: 4eb9 0004 8344 jsr 48344 <== NOT EXECUTED status = sigtimedwait( &all_signals, NULL, NULL ); 48446: 42a7 clrl %sp@- <== NOT EXECUTED 48448: 42a7 clrl %sp@- <== NOT EXECUTED 4844a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4844c: 4eb9 0004 84dc jsr 484dc <== NOT EXECUTED (void) sigprocmask( SIG_SETMASK, &saved_signals_blocked, NULL ); 48452: 42a7 clrl %sp@- <== NOT EXECUTED status = sigprocmask( SIG_BLOCK, sigmask, &saved_signals_blocked ); (void) sigfillset( &all_signals ); status = sigtimedwait( &all_signals, NULL, NULL ); 48454: 2400 movel %d0,%d2 <== NOT EXECUTED (void) sigprocmask( SIG_SETMASK, &saved_signals_blocked, NULL ); 48456: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48458: 42a7 clrl %sp@- <== NOT EXECUTED 4845a: 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 ) 4845c: dffc 0000 0028 addal #40,%sp <== NOT EXECUTED 48462: 70ff moveq #-1,%d0 <== NOT EXECUTED 48464: b082 cmpl %d2,%d0 <== NOT EXECUTED 48466: 660c bnes 48474 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINTR ); return status; } 48468: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%a2 <== NOT EXECUTED 4846e: 4e5e unlk %fp <== NOT EXECUTED 48470: 70ff moveq #-1,%d0 <== NOT EXECUTED 48472: 4e75 rts <== NOT EXECUTED /* * sigtimedwait() returns the signal number while sigsuspend() * is supposed to return -1 and EINTR when a signal is caught. */ if ( status != -1 ) rtems_set_errno_and_return_minus_one( EINTR ); 48474: 4eb9 0005 0a38 jsr 50a38 <__errno> <== NOT EXECUTED 4847a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4847c: 7004 moveq #4,%d0 <== NOT EXECUTED return status; } 4847e: 4cee 040c ffec moveml %fp@(-20),%d2-%d3/%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 ) rtems_set_errno_and_return_minus_one( EINTR ); 48484: 2080 movel %d0,%a0@ <== NOT EXECUTED return status; } 48486: 4e5e unlk %fp <== NOT EXECUTED 48488: 70ff moveq #-1,%d0 <== NOT EXECUTED 4848a: 4e75 rts 000467a0 : int sigtimedwait( const sigset_t *set, siginfo_t *info, const struct timespec *timeout ) { 467a0: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 467a4: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 467a8: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED 467ac: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 467b0: 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 ) { 467b4: 6700 011c beqw 468d2 <== NOT EXECUTED if ( !_Timespec_Is_valid( timeout ) ) 467b8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 467ba: 4eb9 0004 a3b0 jsr 4a3b0 <_Timespec_Is_valid> <== NOT EXECUTED 467c0: 588f addql #4,%sp <== NOT EXECUTED 467c2: 4a00 tstb %d0 <== NOT EXECUTED 467c4: 6700 0176 beqw 4693c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); interval = _Timespec_To_ticks( timeout ); 467c8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 467ca: 4eb9 0004 a430 jsr 4a430 <_Timespec_To_ticks> <== NOT EXECUTED if ( !interval ) 467d0: 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 ); 467d2: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !interval ) 467d4: 4a80 tstl %d0 <== NOT EXECUTED 467d6: 6700 0164 beqw 4693c <== NOT EXECUTED /* * Initialize local variables. */ the_info = ( info ) ? info : &signal_information; 467da: 4a83 tstl %d3 <== NOT EXECUTED 467dc: 6700 00fc beqw 468da <== NOT EXECUTED the_thread = _Thread_Executing; 467e0: 2079 0005 c956 moveal 5c956 <_Thread_Executing>,%a0 <== NOT EXECUTED /* * Initialize local variables. */ the_info = ( info ) ? info : &signal_information; 467e6: 2443 moveal %d3,%a2 <== NOT EXECUTED * What if they are already pending? */ /* API signals pending? */ _ISR_Disable( level ); 467e8: 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 ]; 467ee: 2668 0110 moveal %a0@(272),%a3 <== NOT EXECUTED * What if they are already pending? */ /* API signals pending? */ _ISR_Disable( level ); 467f2: 40c3 movew %sr,%d3 <== NOT EXECUTED 467f4: 8083 orl %d3,%d0 <== NOT EXECUTED 467f6: 46c0 movew %d0,%sr <== NOT EXECUTED if ( *set & api->signals_pending ) { 467f8: 2214 movel %a4@,%d1 <== NOT EXECUTED 467fa: 242b 00c8 movel %a3@(200),%d2 <== NOT EXECUTED 467fe: 2001 movel %d1,%d0 <== NOT EXECUTED 46800: c082 andl %d2,%d0 <== NOT EXECUTED 46802: 6600 00fe bnew 46902 <== NOT EXECUTED return the_info->si_signo; } /* Process pending signals? */ if ( *set & _POSIX_signals_Pending ) { 46806: 2039 0005 cf6e movel 5cf6e <_POSIX_signals_Pending>,%d0 <== NOT EXECUTED 4680c: c280 andl %d0,%d1 <== NOT EXECUTED 4680e: 6600 0086 bnew 46896 <== NOT EXECUTED 46812: 2039 0005 c898 movel 5c898 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 46818: 5280 addql #1,%d0 <== NOT EXECUTED 4681a: 23c0 0005 c898 movel %d0,5c898 <_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; 46820: 70ff moveq #-1,%d0 <== NOT EXECUTED 46822: 2480 movel %d0,%a2@ <== NOT EXECUTED _Thread_Disable_dispatch(); the_thread->Wait.queue = &_POSIX_signals_Wait_queue; the_thread->Wait.return_code = EINTR; 46824: 7004 moveq #4,%d0 <== NOT EXECUTED 46826: 2140 0034 movel %d0,%a0@(52) <== NOT EXECUTED } the_info->si_signo = -1; _Thread_Disable_dispatch(); the_thread->Wait.queue = &_POSIX_signals_Wait_queue; 4682a: 203c 0005 cf2e movel #380718,%d0 <== NOT EXECUTED 46830: 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; 46834: 7001 moveq #1,%d0 <== NOT EXECUTED the_thread->Wait.return_code = EINTR; the_thread->Wait.option = *set; 46836: 2154 0030 movel %a4@,%a0@(48) <== NOT EXECUTED 4683a: 23c0 0005 cf5e movel %d0,5cf5e <_POSIX_signals_Wait_queue+0x30> <== NOT EXECUTED the_thread->Wait.return_argument = the_info; 46840: 214a 0028 movel %a2,%a0@(40) <== NOT EXECUTED _Thread_queue_Enter_critical_section( &_POSIX_signals_Wait_queue ); _ISR_Enable( level ); 46844: 46c3 movew %d3,%sr <== NOT EXECUTED _Thread_queue_Enqueue( &_POSIX_signals_Wait_queue, interval ); 46846: 4879 0004 9da4 pea 49da4 <_Thread_queue_Timeout> <== NOT EXECUTED 4684c: 2f09 movel %a1,%sp@- <== NOT EXECUTED 4684e: 4879 0005 cf2e pea 5cf2e <_POSIX_signals_Wait_queue> <== NOT EXECUTED 46854: 4eb9 0004 99e4 jsr 499e4 <_Thread_queue_Enqueue_with_handler> <== NOT EXECUTED _Thread_Enable_dispatch(); 4685a: 4eb9 0004 9480 jsr 49480 <_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 ); 46860: 42a7 clrl %sp@- <== NOT EXECUTED 46862: 42a7 clrl %sp@- <== NOT EXECUTED 46864: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46866: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 46868: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4686a: 4eb9 0004 cc24 jsr 4cc24 <_POSIX_signals_Clear_signals> <== NOT EXECUTED errno = _Thread_Executing->Wait.return_code; 46870: dffc 0000 0020 addal #32,%sp <== NOT EXECUTED 46876: 4eb9 0004 ec20 jsr 4ec20 <__errno> <== NOT EXECUTED 4687c: 2079 0005 c956 moveal 5c956 <_Thread_Executing>,%a0 <== NOT EXECUTED 46882: 2240 moveal %d0,%a1 <== NOT EXECUTED 46884: 22a8 0034 movel %a0@(52),%a1@ <== NOT EXECUTED return the_info->si_signo; 46888: 2412 movel %a2@,%d2 <== NOT EXECUTED } 4688a: 2002 movel %d2,%d0 <== NOT EXECUTED 4688c: 4cee 1c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a4 <== NOT EXECUTED 46892: 4e5e unlk %fp <== NOT EXECUTED 46894: 4e75 rts <== NOT EXECUTED } /* Process pending signals? */ if ( *set & _POSIX_signals_Pending ) { signo = _POSIX_signals_Get_highest( _POSIX_signals_Pending ); 46896: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46898: 4eb9 0004 6750 jsr 46750 <_POSIX_signals_Get_highest> <== NOT EXECUTED _POSIX_signals_Clear_signals( api, signo, the_info, true, false ); 4689e: 42a7 clrl %sp@- <== NOT EXECUTED } /* Process pending signals? */ if ( *set & _POSIX_signals_Pending ) { signo = _POSIX_signals_Get_highest( _POSIX_signals_Pending ); 468a0: 2400 movel %d0,%d2 <== NOT EXECUTED _POSIX_signals_Clear_signals( api, signo, the_info, true, false ); 468a2: 4878 0001 pea 1 <== NOT EXECUTED 468a6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 468a8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 468aa: 2f0b movel %a3,%sp@- <== NOT EXECUTED 468ac: 4eb9 0004 cc24 jsr 4cc24 <_POSIX_signals_Clear_signals> <== NOT EXECUTED _ISR_Enable( level ); 468b2: 46c3 movew %d3,%sr <== NOT EXECUTED the_info->si_signo = signo; the_info->si_code = SI_USER; 468b4: 7001 moveq #1,%d0 <== NOT EXECUTED 468b6: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED */ _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, false, false ); errno = _Thread_Executing->Wait.return_code; return the_info->si_signo; } 468ba: 2002 movel %d2,%d0 <== NOT EXECUTED _POSIX_signals_Clear_signals( api, signo, the_info, true, false ); _ISR_Enable( level ); the_info->si_signo = signo; the_info->si_code = SI_USER; the_info->si_value.sival_int = 0; 468bc: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED 468c2: 42aa 0008 clrl %a2@(8) <== 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; 468c6: 2482 movel %d2,%a2@ <== NOT EXECUTED */ _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, false, false ); errno = _Thread_Executing->Wait.return_code; return the_info->si_signo; } 468c8: 4cee 1c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a4 <== NOT EXECUTED 468ce: 4e5e unlk %fp <== NOT EXECUTED 468d0: 4e75 rts <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); interval = _Timespec_To_ticks( timeout ); if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); 468d2: 93c9 subal %a1,%a1 <== NOT EXECUTED /* * Initialize local variables. */ the_info = ( info ) ? info : &signal_information; 468d4: 4a83 tstl %d3 <== NOT EXECUTED 468d6: 6600 ff08 bnew 467e0 <== NOT EXECUTED the_thread = _Thread_Executing; 468da: 2079 0005 c956 moveal 5c956 <_Thread_Executing>,%a0 <== NOT EXECUTED /* * Initialize local variables. */ the_info = ( info ) ? info : &signal_information; 468e0: 45ee fff4 lea %fp@(-12),%a2 <== NOT EXECUTED * What if they are already pending? */ /* API signals pending? */ _ISR_Disable( level ); 468e4: 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 ]; 468ea: 2668 0110 moveal %a0@(272),%a3 <== NOT EXECUTED * What if they are already pending? */ /* API signals pending? */ _ISR_Disable( level ); 468ee: 40c3 movew %sr,%d3 <== NOT EXECUTED 468f0: 8083 orl %d3,%d0 <== NOT EXECUTED 468f2: 46c0 movew %d0,%sr <== NOT EXECUTED if ( *set & api->signals_pending ) { 468f4: 2214 movel %a4@,%d1 <== NOT EXECUTED 468f6: 242b 00c8 movel %a3@(200),%d2 <== NOT EXECUTED 468fa: 2001 movel %d1,%d0 <== NOT EXECUTED 468fc: c082 andl %d2,%d0 <== NOT EXECUTED 468fe: 6700 ff06 beqw 46806 <== NOT EXECUTED /* XXX real info later */ the_info->si_signo = _POSIX_signals_Get_highest( api->signals_pending ); 46902: 2f02 movel %d2,%sp@- <== NOT EXECUTED 46904: 4eb9 0004 6750 jsr 46750 <_POSIX_signals_Get_highest> <== NOT EXECUTED 4690a: 2480 movel %d0,%a2@ <== NOT EXECUTED _POSIX_signals_Clear_signals( 4690c: 42a7 clrl %sp@- <== NOT EXECUTED 4690e: 42a7 clrl %sp@- <== NOT EXECUTED 46910: 2f0a movel %a2,%sp@- <== NOT EXECUTED 46912: 2f00 movel %d0,%sp@- <== NOT EXECUTED 46914: 2f0b movel %a3,%sp@- <== NOT EXECUTED 46916: 4eb9 0004 cc24 jsr 4cc24 <_POSIX_signals_Clear_signals> <== NOT EXECUTED the_info->si_signo, the_info, false, false ); _ISR_Enable( level ); 4691c: 46c3 movew %d3,%sr <== NOT EXECUTED the_info->si_code = SI_USER; the_info->si_value.sival_int = 0; return the_info->si_signo; 4691e: 2412 movel %a2@,%d2 <== NOT EXECUTED false, false ); _ISR_Enable( level ); the_info->si_code = SI_USER; 46920: 7001 moveq #1,%d0 <== NOT EXECUTED 46922: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED */ _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, false, false ); errno = _Thread_Executing->Wait.return_code; return the_info->si_signo; } 46926: 2002 movel %d2,%d0 <== NOT EXECUTED ); _ISR_Enable( level ); the_info->si_code = SI_USER; the_info->si_value.sival_int = 0; return the_info->si_signo; 46928: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED false ); _ISR_Enable( level ); the_info->si_code = SI_USER; the_info->si_value.sival_int = 0; 4692e: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED */ _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, false, false ); errno = _Thread_Executing->Wait.return_code; return the_info->si_signo; } 46932: 4cee 1c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a4 <== NOT EXECUTED 46938: 4e5e unlk %fp <== NOT EXECUTED 4693a: 4e75 rts <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); interval = _Timespec_To_ticks( timeout ); if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); 4693c: 4eb9 0004 ec20 jsr 4ec20 <__errno> <== NOT EXECUTED 46942: 74ff moveq #-1,%d2 <== NOT EXECUTED 46944: 2040 moveal %d0,%a0 <== NOT EXECUTED */ _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, false, false ); errno = _Thread_Executing->Wait.return_code; return the_info->si_signo; } 46946: 2002 movel %d2,%d0 <== NOT EXECUTED 46948: 4cee 1c0c ffe0 moveml %fp@(-32),%d2-%d3/%a2-%a4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); interval = _Timespec_To_ticks( timeout ); if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); 4694e: 7216 moveq #22,%d1 <== NOT EXECUTED */ _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, false, false ); errno = _Thread_Executing->Wait.return_code; return the_info->si_signo; } 46950: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); interval = _Timespec_To_ticks( timeout ); if ( !interval ) rtems_set_errno_and_return_minus_one( EINVAL ); 46952: 2081 movel %d1,%a0@ <== NOT EXECUTED */ _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, false, false ); errno = _Thread_Executing->Wait.return_code; return the_info->si_signo; } 46954: 4e75 rts <== NOT EXECUTED ... 000486ac : int sigwait( const sigset_t *set, int *sig ) { 486ac: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 486b0: 2f0a movel %a2,%sp@- <== NOT EXECUTED int status; status = sigtimedwait( set, NULL, NULL ); 486b2: 42a7 clrl %sp@- <== NOT EXECUTED int sigwait( const sigset_t *set, int *sig ) { 486b4: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED int status; status = sigtimedwait( set, NULL, NULL ); 486b8: 42a7 clrl %sp@- <== NOT EXECUTED 486ba: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 486be: 4eb9 0004 84dc jsr 484dc <== NOT EXECUTED if ( status != -1 ) { 486c4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 486ca: 72ff moveq #-1,%d1 <== NOT EXECUTED 486cc: b280 cmpl %d0,%d1 <== NOT EXECUTED 486ce: 6710 beqs 486e0 <== NOT EXECUTED if ( sig ) 486d0: 4a8a tstl %a2 <== NOT EXECUTED 486d2: 6702 beqs 486d6 <== NOT EXECUTED *sig = status; 486d4: 2480 movel %d0,%a2@ <== NOT EXECUTED return 0; } return errno; } 486d6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 486da: 4e5e unlk %fp <== NOT EXECUTED status = sigtimedwait( set, NULL, NULL ); if ( status != -1 ) { if ( sig ) *sig = status; 486dc: 4280 clrl %d0 <== NOT EXECUTED return 0; } return errno; } 486de: 4e75 rts <== NOT EXECUTED if ( sig ) *sig = status; return 0; } return errno; 486e0: 4eb9 0005 0a38 jsr 50a38 <__errno> <== NOT EXECUTED } 486e6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED if ( sig ) *sig = status; return 0; } return errno; 486ea: 2040 moveal %d0,%a0 <== NOT EXECUTED 486ec: 2010 movel %a0@,%d0 <== NOT EXECUTED } 486ee: 4e5e unlk %fp <== NOT EXECUTED 486f0: 4e75 rts <== NOT EXECUTED ... 00048694 : int sigwaitinfo( const sigset_t *set, siginfo_t *info ) { 48694: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return sigtimedwait( set, info, NULL ); 48698: 42a7 clrl %sp@- <== NOT EXECUTED 4869a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4869e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 486a2: 4eb9 0004 84dc jsr 484dc <== NOT EXECUTED } 486a8: 4e5e unlk %fp <== NOT EXECUTED 486aa: 4e75 rts 00044238 : /* * Process input character, with semaphore. */ static int siproc (unsigned char c, struct rtems_termios_tty *tty) { 44238: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4423c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4423e: 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)) { 44242: 202a 003c movel %a2@(60),%d0 <== NOT EXECUTED /* * Process input character, with semaphore. */ static int siproc (unsigned char c, struct rtems_termios_tty *tty) { 44246: 2f02 movel %d2,%sp@- <== NOT EXECUTED 44248: 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)) { 4424c: 0280 0000 0e78 andil #3704,%d0 <== NOT EXECUTED 44252: 661a bnes 4426e <== 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); 44254: 4280 clrl %d0 <== NOT EXECUTED 44256: 1002 moveb %d2,%d0 <== NOT EXECUTED 44258: 2d4a 000c movel %a2,%fp@(12) <== NOT EXECUTED } return i; } 4425c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44260: 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); 44264: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } return i; } 44268: 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); 4426a: 6000 fde2 braw 4404e <== 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); 4426e: 42a7 clrl %sp@- <== NOT EXECUTED 44270: 42a7 clrl %sp@- <== NOT EXECUTED 44272: 2f2a 0018 movel %a2@(24),%sp@- <== NOT EXECUTED 44276: 4eb9 0004 5be8 jsr 45be8 <== NOT EXECUTED i = iproc (c, tty); 4427c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4427e: 4280 clrl %d0 <== NOT EXECUTED 44280: 1002 moveb %d2,%d0 <== NOT EXECUTED 44282: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44284: 4eba fdc8 jsr %pc@(4404e ) <== NOT EXECUTED rtems_semaphore_release (tty->osem); 44288: 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); 4428c: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_semaphore_release (tty->osem); 4428e: 4eb9 0004 5d10 jsr 45d10 <== NOT EXECUTED } else { i = iproc (c, tty); } return i; } 44294: 2002 movel %d2,%d0 <== NOT EXECUTED 44296: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4429a: 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); 4429e: dffc 0000 0018 addal #24,%sp <== NOT EXECUTED } else { i = iproc (c, tty); } return i; } 442a4: 4e5e unlk %fp <== NOT EXECUTED 442a6: 4e75 rts 00045404 : unsigned int sleep( unsigned int seconds ) { 45404: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED struct timespec tm; tp.tv_sec = seconds; tp.tv_nsec = 0; nanosleep( &tp, &tm ); 45408: 486e fff0 pea %fp@(-16) <== NOT EXECUTED ) { struct timespec tp; struct timespec tm; tp.tv_sec = seconds; 4540c: 2d6e 0008 fff8 movel %fp@(8),%fp@(-8) <== NOT EXECUTED tp.tv_nsec = 0; nanosleep( &tp, &tm ); 45412: 486e fff8 pea %fp@(-8) <== NOT EXECUTED { struct timespec tp; struct timespec tm; tp.tv_sec = seconds; tp.tv_nsec = 0; 45416: 42ae fffc clrl %fp@(-4) <== NOT EXECUTED nanosleep( &tp, &tm ); 4541a: 4eb9 0004 b554 jsr 4b554 <== NOT EXECUTED return tm.tv_sec; /* seconds remaining */ } 45420: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 45424: 4e5e unlk %fp <== NOT EXECUTED 45426: 4e75 rts 000478e4 : int _STAT_NAME( const char *path, struct stat *buf ) { 478e4: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 478e8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 478ea: 2f02 movel %d2,%sp@- <== NOT EXECUTED 478ec: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !buf ) 478f0: 6700 00ac beqw 4799e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); status = rtems_filesystem_evaluate_path( path, 0, &loc, _STAT_FOLLOW_LINKS ); 478f4: 4878 0001 pea 1 <== NOT EXECUTED 478f8: 260e movel %fp,%d3 <== NOT EXECUTED 478fa: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 47900: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47902: 42a7 clrl %sp@- <== NOT EXECUTED 47904: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 47908: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED if ( status != 0 ) 4790e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 47914: 4a80 tstl %d0 <== NOT EXECUTED 47916: 6676 bnes 4798e <== NOT EXECUTED return -1; if ( !loc.handlers->fstat_h ){ 47918: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 4791c: 4aa8 0018 tstl %a0@(24) <== NOT EXECUTED 47920: 6748 beqs 4796a <== NOT EXECUTED /* * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( buf, 0, sizeof(struct stat) ); 47922: 4878 004a pea 4a <== NOT EXECUTED 47926: 42a7 clrl %sp@- <== NOT EXECUTED 47928: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4792a: 4eb9 0007 2b50 jsr 72b50 <== NOT EXECUTED status = (*loc.handlers->fstat_h)( &loc, buf ); 47930: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47932: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47934: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 47938: 2268 0018 moveal %a0@(24),%a1 <== NOT EXECUTED 4793c: 4e91 jsr %a1@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 4793e: 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 ); 47942: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 47944: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED 4794a: 4a88 tstl %a0 <== NOT EXECUTED 4794c: 670e beqs 4795c <== NOT EXECUTED 4794e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 47952: 4a88 tstl %a0 <== NOT EXECUTED 47954: 6706 beqs 4795c <== NOT EXECUTED 47956: 2f03 movel %d3,%sp@- <== NOT EXECUTED 47958: 4e90 jsr %a0@ <== NOT EXECUTED 4795a: 588f addql #4,%sp <== NOT EXECUTED return status; } 4795c: 2002 movel %d2,%d0 <== NOT EXECUTED 4795e: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 47962: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 47966: 4e5e unlk %fp <== NOT EXECUTED 47968: 4e75 rts <== NOT EXECUTED status = rtems_filesystem_evaluate_path( path, 0, &loc, _STAT_FOLLOW_LINKS ); if ( status != 0 ) return -1; if ( !loc.handlers->fstat_h ){ rtems_filesystem_freenode( &loc ); 4796a: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 4796e: 4a88 tstl %a0 <== NOT EXECUTED 47970: 670e beqs 47980 <== NOT EXECUTED 47972: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 47976: 4a88 tstl %a0 <== NOT EXECUTED 47978: 6706 beqs 47980 <== NOT EXECUTED 4797a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4797c: 4e90 jsr %a0@ <== NOT EXECUTED 4797e: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 47980: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 47986: 2040 moveal %d0,%a0 <== NOT EXECUTED 47988: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 4798e: 74ff moveq #-1,%d2 <== NOT EXECUTED status = (*loc.handlers->fstat_h)( &loc, buf ); rtems_filesystem_freenode( &loc ); return status; } 47990: 2002 movel %d2,%d0 <== NOT EXECUTED 47992: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 47996: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 4799a: 4e5e unlk %fp <== NOT EXECUTED 4799c: 4e75 rts <== NOT EXECUTED /* * Check to see if we were passed a valid pointer. */ if ( !buf ) rtems_set_errno_and_return_minus_one( EFAULT ); 4799e: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 479a4: 2040 moveal %d0,%a0 <== NOT EXECUTED 479a6: 700e moveq #14,%d0 <== NOT EXECUTED 479a8: 74ff moveq #-1,%d2 <== NOT EXECUTED 479aa: 2080 movel %d0,%a0@ <== NOT EXECUTED status = (*loc.handlers->fstat_h)( &loc, buf ); rtems_filesystem_freenode( &loc ); return status; } 479ac: 2002 movel %d2,%d0 <== NOT EXECUTED 479ae: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 479b2: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 479b6: 4e5e unlk %fp <== NOT EXECUTED 479b8: 4e75 rts 00062008 : int symlink( const char *actualpath, const char *sympath ) { 62008: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 6200c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6200e: 226e 000c moveal %fp@(12),%a1 <== NOT EXECUTED 62012: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_filesystem_location_info_t loc; int i; const char *name_start; int result; rtems_filesystem_get_start_loc( sympath, &i, &loc ); 62014: 1211 moveb %a1@,%d1 <== NOT EXECUTED 62016: 1001 moveb %d1,%d0 <== NOT EXECUTED 62018: 49c0 extbl %d0 <== NOT EXECUTED 6201a: 742f moveq #47,%d2 <== NOT EXECUTED 6201c: b480 cmpl %d0,%d2 <== NOT EXECUTED 6201e: 6700 0094 beqw 620b4 <== NOT EXECUTED 62022: 143c 005c moveb #92,%d2 <== NOT EXECUTED 62026: b480 cmpl %d0,%d2 <== NOT EXECUTED 62028: 6700 008a beqw 620b4 <== NOT EXECUTED 6202c: 4a01 tstb %d1 <== NOT EXECUTED 6202e: 6700 0084 beqw 620b4 <== NOT EXECUTED 62032: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 62038: 45ee ffec lea %fp@(-20),%a2 <== NOT EXECUTED 6203c: 5888 addql #4,%a0 <== NOT EXECUTED 6203e: 2498 movel %a0@+,%a2@ <== NOT EXECUTED 62040: 4280 clrl %d0 <== NOT EXECUTED 62042: 2d58 fff0 movel %a0@+,%fp@(-16) <== NOT EXECUTED 62046: 2d58 fff4 movel %a0@+,%fp@(-12) <== NOT EXECUTED 6204a: 2d50 fff8 movel %a0@,%fp@(-8) <== NOT EXECUTED result = (*loc.ops->evalformake_h)( &sympath[i], &loc, &name_start ); 6204e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 62052: 2f0a movel %a2,%sp@- <== NOT EXECUTED 62054: 4871 0800 pea %a1@(00000000,%d0:l) <== NOT EXECUTED 62058: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 6205c: 2268 0004 moveal %a0@(4),%a1 <== NOT EXECUTED 62060: 4e91 jsr %a1@ <== NOT EXECUTED if ( result != 0 ) 62062: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 62068: 4a80 tstl %d0 <== NOT EXECUTED 6206a: 6600 008a bnew 620f6 <== NOT EXECUTED return -1; if ( !loc.ops->symlink_h ) { 6206e: 226e fff4 moveal %fp@(-12),%a1 <== NOT EXECUTED 62072: 2069 0038 moveal %a1@(56),%a0 <== NOT EXECUTED 62076: 4a88 tstl %a0 <== NOT EXECUTED 62078: 6700 008c beqw 62106 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.ops->symlink_h)( &loc, actualpath, name_start); 6207c: 2f2e fffc movel %fp@(-4),%sp@- <== NOT EXECUTED 62080: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 62084: 2f0a movel %a2,%sp@- <== NOT EXECUTED 62086: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 62088: 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); 6208c: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 6208e: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 62094: 4a88 tstl %a0 <== NOT EXECUTED 62096: 670e beqs 620a6 <== NOT EXECUTED 62098: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 6209c: 4a88 tstl %a0 <== NOT EXECUTED 6209e: 6706 beqs 620a6 <== NOT EXECUTED 620a0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 620a2: 4e90 jsr %a0@ <== NOT EXECUTED 620a4: 588f addql #4,%sp <== NOT EXECUTED return result; } 620a6: 2002 movel %d2,%d0 <== NOT EXECUTED 620a8: 242e ffe4 movel %fp@(-28),%d2 <== NOT EXECUTED 620ac: 246e ffe8 moveal %fp@(-24),%a2 <== NOT EXECUTED 620b0: 4e5e unlk %fp <== NOT EXECUTED 620b2: 4e75 rts <== NOT EXECUTED rtems_filesystem_location_info_t loc; int i; const char *name_start; int result; rtems_filesystem_get_start_loc( sympath, &i, &loc ); 620b4: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 620ba: 45ee ffec lea %fp@(-20),%a2 <== NOT EXECUTED 620be: 24a8 0014 movel %a0@(20),%a2@ <== NOT EXECUTED 620c2: 7001 moveq #1,%d0 <== NOT EXECUTED 620c4: 2d68 0018 fff0 movel %a0@(24),%fp@(-16) <== NOT EXECUTED 620ca: 2d68 001c fff4 movel %a0@(28),%fp@(-12) <== NOT EXECUTED 620d0: 2d68 0020 fff8 movel %a0@(32),%fp@(-8) <== NOT EXECUTED result = (*loc.ops->evalformake_h)( &sympath[i], &loc, &name_start ); 620d6: 486e fffc pea %fp@(-4) <== NOT EXECUTED 620da: 2f0a movel %a2,%sp@- <== NOT EXECUTED 620dc: 4871 0800 pea %a1@(00000000,%d0:l) <== NOT EXECUTED 620e0: 206e fff4 moveal %fp@(-12),%a0 <== NOT EXECUTED 620e4: 2268 0004 moveal %a0@(4),%a1 <== NOT EXECUTED 620e8: 4e91 jsr %a1@ <== NOT EXECUTED if ( result != 0 ) 620ea: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 620f0: 4a80 tstl %d0 <== NOT EXECUTED 620f2: 6700 ff7a beqw 6206e <== NOT EXECUTED return -1; if ( !loc.ops->symlink_h ) { rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); 620f6: 74ff moveq #-1,%d2 <== NOT EXECUTED result = (*loc.ops->symlink_h)( &loc, actualpath, name_start); rtems_filesystem_freenode( &loc ); return result; } 620f8: 2002 movel %d2,%d0 <== NOT EXECUTED 620fa: 242e ffe4 movel %fp@(-28),%d2 <== NOT EXECUTED 620fe: 246e ffe8 moveal %fp@(-24),%a2 <== NOT EXECUTED 62102: 4e5e unlk %fp <== NOT EXECUTED 62104: 4e75 rts <== NOT EXECUTED result = (*loc.ops->evalformake_h)( &sympath[i], &loc, &name_start ); if ( result != 0 ) return -1; if ( !loc.ops->symlink_h ) { rtems_filesystem_freenode( &loc ); 62106: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 6210a: 4a88 tstl %a0 <== NOT EXECUTED 6210c: 6706 beqs 62114 <== NOT EXECUTED 6210e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 62110: 4e90 jsr %a0@ <== NOT EXECUTED 62112: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 62114: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 6211a: 2040 moveal %d0,%a0 <== NOT EXECUTED 6211c: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 62122: 74ff moveq #-1,%d2 <== NOT EXECUTED 62124: 60d2 bras 620f8 <== NOT EXECUTED ... 000451de : * We have to extern it here. */ extern struct _reent libc_global_reent; void sync(void) { 451de: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED /* * Walk the one used initially by RTEMS. */ _fwalk(&libc_global_reent, sync_wrapper); 451e2: 487a 0022 pea %pc@(45206 ) <== NOT EXECUTED 451e6: 4879 0005 c520 pea 5c520 <== NOT EXECUTED 451ec: 4eb9 0005 08be jsr 508be <_fwalk> <== NOT EXECUTED */ /* * Now walk all the per-thread reentrancy structures. */ rtems_iterate_over_all_threads(sync_per_thread); 451f2: 487a ffa8 pea %pc@(4519c ) <== NOT EXECUTED 451f6: 4eb9 0004 8f70 jsr 48f70 <== NOT EXECUTED 451fc: dffc 0000 000c addal #12,%sp <== NOT EXECUTED } 45202: 4e5e unlk %fp <== NOT EXECUTED 45204: 4e75 rts 0004519c : fdatasync(fn); } /* iterate over all FILE *'s for this thread */ static void sync_per_thread(Thread_Control *t) { 4519c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 451a0: 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; 451a4: 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) { 451a8: 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 ) { 451aa: 4a80 tstl %d0 <== NOT EXECUTED 451ac: 6728 beqs 451d6 <== NOT EXECUTED current_reent = _Thread_Executing->libc_reent; 451ae: 2079 0005 e0e2 moveal 5e0e2 <_Thread_Executing>,%a0 <== NOT EXECUTED 451b4: 2428 0108 movel %a0@(264),%d2 <== NOT EXECUTED _Thread_Executing->libc_reent = this_reent; 451b8: 2140 0108 movel %d0,%a0@(264) <== NOT EXECUTED _fwalk (t->libc_reent, sync_wrapper); 451bc: 487a 0048 pea %pc@(45206 ) <== NOT EXECUTED 451c0: 2f29 0108 movel %a1@(264),%sp@- <== NOT EXECUTED 451c4: 4eb9 0005 08be jsr 508be <_fwalk> <== NOT EXECUTED _Thread_Executing->libc_reent = current_reent; 451ca: 2079 0005 e0e2 moveal 5e0e2 <_Thread_Executing>,%a0 <== NOT EXECUTED 451d0: 508f addql #8,%sp <== NOT EXECUTED 451d2: 2142 0108 movel %d2,%a0@(264) <== NOT EXECUTED } } 451d6: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 451da: 4e5e unlk %fp <== NOT EXECUTED 451dc: 4e75 rts 00045206 : /* XXX check standards -- Linux version appears to be void */ void _fwalk(struct _reent *, void *); static void sync_wrapper(FILE *f) { 45206: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4520a: 2f02 movel %d2,%sp@- <== NOT EXECUTED int fn = fileno(f); 4520c: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45210: 4eb9 0004 fe64 jsr 4fe64 <== NOT EXECUTED 45216: 2400 movel %d0,%d2 <== NOT EXECUTED fsync(fn); 45218: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4521a: 4eb9 0004 3d0c jsr 43d0c <== NOT EXECUTED fdatasync(fn); 45220: 2d42 0008 movel %d2,%fp@(8) <== NOT EXECUTED } 45224: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED static void sync_wrapper(FILE *f) { int fn = fileno(f); fsync(fn); fdatasync(fn); 45228: 508f addql #8,%sp <== NOT EXECUTED } 4522a: 4e5e unlk %fp <== NOT EXECUTED static void sync_wrapper(FILE *f) { int fn = fileno(f); fsync(fn); fdatasync(fn); 4522c: 4ef9 0004 39c4 jmp 439c4 <== NOT EXECUTED ... 0004551c : */ long sysconf( int name ) { 4551c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45520: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 45524: 2f02 movel %d2,%sp@- <== NOT EXECUTED switch (name) { 45526: 7004 moveq #4,%d0 <== NOT EXECUTED 45528: b081 cmpl %d1,%d0 <== NOT EXECUTED 4552a: 674e beqs 4557a <== NOT EXECUTED 4552c: 6c2e bges 4555c <== NOT EXECUTED 4552e: 203c 0000 1000 movel #4096,%d0 <== NOT EXECUTED 45534: 7408 moveq #8,%d2 <== NOT EXECUTED 45536: b481 cmpl %d1,%d2 <== NOT EXECUTED 45538: 671a beqs 45554 <== NOT EXECUTED 4553a: 303c 0400 movew #1024,%d0 <== NOT EXECUTED 4553e: 143c 0033 moveb #51,%d2 <== NOT EXECUTED 45542: b481 cmpl %d1,%d2 <== NOT EXECUTED 45544: 670e beqs 45554 <== NOT EXECUTED default: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 45546: 4eb9 0004 d990 jsr 4d990 <__errno> <== NOT EXECUTED 4554c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4554e: 7216 moveq #22,%d1 <== NOT EXECUTED 45550: 70ff moveq #-1,%d0 <== NOT EXECUTED 45552: 2081 movel %d1,%a0@ <== NOT EXECUTED } 45554: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 45558: 4e5e unlk %fp <== NOT EXECUTED 4555a: 4e75 rts <== NOT EXECUTED long sysconf( int name ) { switch (name) { 4555c: 7402 moveq #2,%d2 <== NOT EXECUTED 4555e: b481 cmpl %d1,%d2 <== NOT EXECUTED 45560: 66e4 bnes 45546 <== NOT EXECUTED default: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 45562: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED ) { switch (name) { case _SC_CLK_TCK: return (TOD_MICROSECONDS_PER_SECOND / _TOD_Microseconds_per_tick); 45566: 203c 000f 4240 movel #1000000,%d0 <== NOT EXECUTED 4556c: 41f9 0005 b356 lea 5b356 <_TOD_Microseconds_per_tick>,%a0 <== NOT EXECUTED default: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 45572: 4e5e unlk %fp <== NOT EXECUTED ) { switch (name) { case _SC_CLK_TCK: return (TOD_MICROSECONDS_PER_SECOND / _TOD_Microseconds_per_tick); 45574: 4c50 0000 remul %a0@,%d0,%d0 <== NOT EXECUTED default: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 45578: 4e75 rts <== NOT EXECUTED 4557a: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED switch (name) { case _SC_CLK_TCK: return (TOD_MICROSECONDS_PER_SECOND / _TOD_Microseconds_per_tick); case _SC_OPEN_MAX: { return rtems_libio_number_iops; 4557e: 2039 0005 95a8 movel 595a8 ,%d0 <== NOT EXECUTED default: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 45584: 4e5e unlk %fp <== NOT EXECUTED 45586: 4e75 rts 00062128 : #include int tcdrain( int fd ) { 62128: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return ioctl( fd, RTEMS_IO_TCDRAIN, 0 ); 6212c: 42a7 clrl %sp@- <== NOT EXECUTED 6212e: 4878 0003 pea 3 <== NOT EXECUTED 62132: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 62136: 4eb9 0006 11e4 jsr 611e4 <== NOT EXECUTED } 6213c: 4e5e unlk %fp <== NOT EXECUTED 6213e: 4e75 rts 000526c8 : int tcgetattr( int fd, struct termios *tp ) { 526c8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return ioctl( fd, RTEMS_IO_GET_ATTRIBUTES, tp ); 526cc: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 526d0: 4878 0001 pea 1 <== NOT EXECUTED 526d4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 526d8: 4eb9 0005 65c8 jsr 565c8 <== NOT EXECUTED } 526de: 4e5e unlk %fp <== NOT EXECUTED 526e0: 4e75 rts <== NOT EXECUTED ... 000526e4 : int tcsetattr( int fd, int opt, struct termios *tp ) { 526e4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 526e8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 526ea: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED 526ee: 2f02 movel %d2,%sp@- <== NOT EXECUTED 526f0: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 526f4: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED switch (opt) { 526f8: 4a80 tstl %d0 <== NOT EXECUTED 526fa: 673a beqs 52736 <== NOT EXECUTED 526fc: 7201 moveq #1,%d1 <== NOT EXECUTED 526fe: b280 cmpl %d0,%d1 <== NOT EXECUTED 52700: 671c beqs 5271e <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 52702: 4eb9 0005 7168 jsr 57168 <__errno> <== NOT EXECUTED 52708: 2040 moveal %d0,%a0 <== NOT EXECUTED 5270a: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); } } 52710: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 52714: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 52718: 4e5e unlk %fp <== NOT EXECUTED 5271a: 70ff moveq #-1,%d0 <== NOT EXECUTED 5271c: 4e75 rts <== NOT EXECUTED switch (opt) { default: rtems_set_errno_and_return_minus_one( ENOTSUP ); case TCSADRAIN: if (ioctl( fd, RTEMS_IO_TCDRAIN, NULL ) < 0) 5271e: 42a7 clrl %sp@- <== NOT EXECUTED 52720: 4878 0003 pea 3 <== NOT EXECUTED 52724: 2f03 movel %d3,%sp@- <== NOT EXECUTED 52726: 4eb9 0005 65c8 jsr 565c8 <== NOT EXECUTED 5272c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 52732: 4a80 tstl %d0 <== NOT EXECUTED 52734: 6dda blts 52710 <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 52736: 2d42 0010 movel %d2,%fp@(16) <== NOT EXECUTED } } 5273a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 5273e: 2d43 0008 movel %d3,%fp@(8) <== NOT EXECUTED } } 52742: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 52746: 7002 moveq #2,%d0 <== NOT EXECUTED 52748: 2d40 000c movel %d0,%fp@(12) <== NOT EXECUTED } } 5274c: 4e5e unlk %fp <== NOT EXECUTED return -1; /* * Fall through to.... */ case TCSANOW: return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); 5274e: 4ef9 0005 65c8 jmp 565c8 <== NOT EXECUTED 00045e5c : #include long telldir( DIR *dirp ) { 45e5c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 45e60: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 45e64: 2f02 movel %d2,%sp@- <== NOT EXECUTED rtems_libio_t *iop; if ( !dirp ) 45e66: 4a88 tstl %a0 <== NOT EXECUTED 45e68: 674c beqs 45eb6 <== NOT EXECUTED /* * Get the file control block structure associated with the * file descriptor */ iop = rtems_libio_iop( dirp->dd_fd ); 45e6a: 2410 movel %a0@,%d2 <== NOT EXECUTED 45e6c: b4b9 0005 d328 cmpl 5d328 ,%d2 <== NOT EXECUTED 45e72: 6426 bccs 45e9a <== NOT EXECUTED 45e74: 2202 movel %d2,%d1 <== NOT EXECUTED 45e76: 2002 movel %d2,%d0 <== NOT EXECUTED 45e78: e589 lsll #2,%d1 <== NOT EXECUTED 45e7a: e988 lsll #4,%d0 <== NOT EXECUTED 45e7c: 9081 subl %d1,%d0 <== NOT EXECUTED 45e7e: 2079 0005 eea0 moveal 5eea0 ,%a0 <== NOT EXECUTED 45e84: d082 addl %d2,%d0 <== NOT EXECUTED 45e86: e588 lsll #2,%d0 <== NOT EXECUTED 45e88: d1c0 addal %d0,%a0 <== NOT EXECUTED if (iop == NULL) 45e8a: 4a88 tstl %a0 <== NOT EXECUTED 45e8c: 670c beqs 45e9a <== NOT EXECUTED assert(0); return (long)( iop->offset ); } 45e8e: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED iop = rtems_libio_iop( dirp->dd_fd ); if (iop == NULL) assert(0); return (long)( iop->offset ); 45e92: 2028 0008 movel %a0@(8),%d0 <== NOT EXECUTED } 45e96: 4e5e unlk %fp <== NOT EXECUTED 45e98: 4e75 rts <== NOT EXECUTED */ iop = rtems_libio_iop( dirp->dd_fd ); if (iop == NULL) assert(0); 45e9a: 4879 0005 aff3 pea 5aff3 <== NOT EXECUTED 45ea0: 4879 0005 c095 pea 5c095 <__func__.5318> <== NOT EXECUTED 45ea6: 4878 002c pea 2c <== NOT EXECUTED 45eaa: 4879 0005 c04b pea 5c04b <== NOT EXECUTED 45eb0: 4eb9 0004 3970 jsr 43970 <__assert_func> <== NOT EXECUTED ) { rtems_libio_t *iop; if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); 45eb6: 4eb9 0005 08fc jsr 508fc <__errno> <== NOT EXECUTED if (iop == NULL) assert(0); return (long)( iop->offset ); } 45ebc: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED ) { rtems_libio_t *iop; if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); 45ec0: 2040 moveal %d0,%a0 <== NOT EXECUTED 45ec2: 7009 moveq #9,%d0 <== NOT EXECUTED 45ec4: 2080 movel %d0,%a0@ <== NOT EXECUTED if (iop == NULL) assert(0); return (long)( iop->offset ); } 45ec6: 4e5e unlk %fp <== NOT EXECUTED ) { rtems_libio_t *iop; if ( !dirp ) rtems_set_errno_and_return_minus_one( EBADF ); 45ec8: 70ff moveq #-1,%d0 <== NOT EXECUTED if (iop == NULL) assert(0); return (long)( iop->offset ); } 45eca: 4e75 rts 000433b8 : #include int termios_baud_to_number( int termios_baud ) { 433b8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 433bc: 222e 0008 movel %fp@(8),%d1 <== NOT EXECUTED 433c0: 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; 433c2: 203c 0000 04b0 movel #1200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 433c8: 7409 moveq #9,%d2 <== NOT EXECUTED 433ca: b481 cmpl %d1,%d2 <== NOT EXECUTED 433cc: 6740 beqs 4340e <== NOT EXECUTED 433ce: 6c44 bges 43414 <== 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; 433d0: 203c 0000 4b00 movel #19200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 433d6: 740e moveq #14,%d2 <== NOT EXECUTED 433d8: b481 cmpl %d1,%d2 <== NOT EXECUTED 433da: 6732 beqs 4340e <== NOT EXECUTED 433dc: 6c68 bges 43446 <== 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; 433de: 203c 0001 c200 movel #115200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 433e4: 0c81 0000 1002 cmpil #4098,%d1 <== NOT EXECUTED 433ea: 6722 beqs 4340e <== NOT EXECUTED 433ec: 6f00 00c0 blew 434ae <== 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; 433f0: 203c 0003 8400 movel #230400,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 433f6: 0c81 0000 1003 cmpil #4099,%d1 <== NOT EXECUTED 433fc: 6710 beqs 4340e <== 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; 433fe: 203c 0007 0800 movel #460800,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 43404: 0c81 0000 1004 cmpil #4100,%d1 <== NOT EXECUTED 4340a: 6702 beqs 4340e <== 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; 4340c: 70ff moveq #-1,%d0 <== NOT EXECUTED default: baud = -1; break; } return baud; } 4340e: 241f movel %sp@+,%d2 <== NOT EXECUTED 43410: 4e5e unlk %fp <== NOT EXECUTED 43412: 4e75 rts <== NOT EXECUTED switch (termios_baud) { case B0: baud = 0; break; case B50: baud = 50; break; case B75: baud = 75; break; case B110: baud = 110; break; 43414: 303c 0087 movew #135,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 43418: 143c 0004 moveb #4,%d2 <== NOT EXECUTED 4341c: b481 cmpl %d1,%d2 <== NOT EXECUTED 4341e: 67ee beqs 4340e <== NOT EXECUTED 43420: 6d54 blts 43476 <== NOT EXECUTED 43422: 103c 0001 moveb #1,%d0 <== NOT EXECUTED 43426: b081 cmpl %d1,%d0 <== NOT EXECUTED 43428: 6700 00a6 beqw 434d0 <== NOT EXECUTED 4342c: 6c00 00b2 bgew 434e0 <== NOT EXECUTED 43430: 7402 moveq #2,%d2 <== NOT EXECUTED 43432: b481 cmpl %d1,%d2 <== NOT EXECUTED 43434: 6700 00a2 beqw 434d8 <== NOT EXECUTED 43438: 7003 moveq #3,%d0 <== NOT EXECUTED 4343a: b081 cmpl %d1,%d0 <== NOT EXECUTED 4343c: 66ce bnes 4340c <== NOT EXECUTED case B460800: baud = 460800; break; default: baud = -1; break; } return baud; } 4343e: 241f movel %sp@+,%d2 <== NOT EXECUTED 43440: 4e5e unlk %fp <== NOT EXECUTED int baud; switch (termios_baud) { case B0: baud = 0; break; case B50: baud = 50; break; case B75: baud = 75; break; 43442: 706e moveq #110,%d0 <== NOT EXECUTED case B460800: baud = 460800; break; default: baud = -1; break; } return baud; } 43444: 4e75 rts <== 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; 43446: 303c 0960 movew #2400,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 4344a: 143c 000b moveb #11,%d2 <== NOT EXECUTED 4344e: b481 cmpl %d1,%d2 <== NOT EXECUTED 43450: 67bc beqs 4340e <== 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; 43452: 303c 0708 movew #1800,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 43456: b481 cmpl %d1,%d2 <== NOT EXECUTED 43458: 6eb4 bgts 4340e <== 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; 4345a: 303c 12c0 movew #4800,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 4345e: 143c 000c moveb #12,%d2 <== NOT EXECUTED 43462: b481 cmpl %d1,%d2 <== NOT EXECUTED 43464: 67a8 beqs 4340e <== 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; 43466: 303c 2580 movew #9600,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 4346a: 143c 000d moveb #13,%d2 <== NOT EXECUTED 4346e: b481 cmpl %d1,%d2 <== NOT EXECUTED 43470: 679c beqs 4340e <== 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; 43472: 70ff moveq #-1,%d0 <== NOT EXECUTED 43474: 6098 bras 4340e <== 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; 43476: 203c 0000 00c8 movel #200,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 4347c: 7406 moveq #6,%d2 <== NOT EXECUTED 4347e: b481 cmpl %d1,%d2 <== NOT EXECUTED 43480: 678c beqs 4340e <== 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; 43482: 0680 ffff ffce addil #-50,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 43488: b481 cmpl %d1,%d2 <== NOT EXECUTED 4348a: 6e82 bgts 4340e <== 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; 4348c: 303c 012c movew #300,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 43490: 143c 0007 moveb #7,%d2 <== NOT EXECUTED 43494: b481 cmpl %d1,%d2 <== NOT EXECUTED 43496: 6700 ff76 beqw 4340e <== 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; 4349a: 303c 0258 movew #600,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 4349e: 143c 0008 moveb #8,%d2 <== NOT EXECUTED 434a2: b481 cmpl %d1,%d2 <== NOT EXECUTED 434a4: 6700 ff68 beqw 4340e <== 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; 434a8: 70ff moveq #-1,%d0 <== NOT EXECUTED 434aa: 6000 ff62 braw 4340e <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 434ae: 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; 434b0: 203c 0000 9600 movel #38400,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 434b6: b481 cmpl %d1,%d2 <== NOT EXECUTED 434b8: 6700 ff54 beqw 4340e <== 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; 434bc: 303c e100 movew #-7936,%d0 <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 434c0: 0c81 0000 1001 cmpil #4097,%d1 <== NOT EXECUTED 434c6: 6700 ff46 beqw 4340e <== 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; 434ca: 70ff moveq #-1,%d0 <== NOT EXECUTED 434cc: 6000 ff40 braw 4340e <== NOT EXECUTED default: baud = -1; break; } return baud; } 434d0: 241f movel %sp@+,%d2 <== NOT EXECUTED 434d2: 4e5e unlk %fp <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 434d4: 7032 moveq #50,%d0 <== NOT EXECUTED case B460800: baud = 460800; break; default: baud = -1; break; } return baud; } 434d6: 4e75 rts <== NOT EXECUTED 434d8: 241f movel %sp@+,%d2 <== NOT EXECUTED 434da: 4e5e unlk %fp <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 434dc: 704b moveq #75,%d0 <== NOT EXECUTED case B460800: baud = 460800; break; default: baud = -1; break; } return baud; } 434de: 4e75 rts <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 434e0: 4a81 tstl %d1 <== NOT EXECUTED 434e2: 6600 ff28 bnew 4340c <== NOT EXECUTED case B460800: baud = 460800; break; default: baud = -1; break; } return baud; } 434e6: 241f movel %sp@+,%d2 <== NOT EXECUTED 434e8: 4e5e unlk %fp <== NOT EXECUTED int termios_baud ) { int baud; switch (termios_baud) { 434ea: 4280 clrl %d0 <== NOT EXECUTED case B460800: baud = 460800; break; default: baud = -1; break; } return baud; } 434ec: 4e75 rts <== NOT EXECUTED ... 0004b720 : int timer_create( clockid_t clock_id, struct sigevent *evp, timer_t *timerid ) { 4b720: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4b724: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4b726: 266e 0010 moveal %fp@(16),%a3 <== NOT EXECUTED 4b72a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4b72c: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED POSIX_Timer_Control *ptimer; if ( clock_id != CLOCK_REALTIME ) 4b730: 7001 moveq #1,%d0 <== NOT EXECUTED 4b732: b0ae 0008 cmpl %fp@(8),%d0 <== NOT EXECUTED 4b736: 6600 00c4 bnew 4b7fc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !timerid ) 4b73a: 4a8b tstl %a3 <== NOT EXECUTED 4b73c: 6700 00be beqw 4b7fc <== NOT EXECUTED /* * The data of the structure evp are checked in order to verify if they * are coherent. */ if (evp != NULL) { 4b740: 4a8a tstl %a2 <== NOT EXECUTED 4b742: 671e beqs 4b762 <== NOT EXECUTED /* The structure has data */ if ( ( evp->sigev_notify != SIGEV_NONE ) && 4b744: 2012 movel %a2@,%d0 <== NOT EXECUTED 4b746: 7201 moveq #1,%d1 <== NOT EXECUTED 4b748: 5380 subql #1,%d0 <== NOT EXECUTED 4b74a: b280 cmpl %d0,%d1 <== NOT EXECUTED 4b74c: 6500 00ae bcsw 4b7fc <== 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 ) 4b750: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 4b754: 6700 00a6 beqw 4b7fc <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(evp->sigev_signo) ) 4b758: 5380 subql #1,%d0 <== NOT EXECUTED 4b75a: 721f moveq #31,%d1 <== NOT EXECUTED 4b75c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4b75e: 6500 009c bcsw 4b7fc <== NOT EXECUTED 4b762: 2039 0006 3118 movel 63118 <_Thread_Dispatch_disable_level>,%d0 <== NOT EXECUTED 4b768: 5280 addql #1,%d0 <== NOT EXECUTED 4b76a: 23c0 0006 3118 movel %d0,63118 <_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 ); 4b770: 4879 0006 33be pea 633be <_POSIX_Timer_Information> <== NOT EXECUTED 4b776: 4eb9 0004 d948 jsr 4d948 <_Objects_Allocate> <== NOT EXECUTED /* * Allocate a timer */ ptimer = _POSIX_Timer_Allocate(); if ( !ptimer ) { 4b77c: 588f addql #4,%sp <== NOT EXECUTED 4b77e: 2240 moveal %d0,%a1 <== NOT EXECUTED 4b780: 4a80 tstl %d0 <== NOT EXECUTED 4b782: 6700 0092 beqw 4b816 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EAGAIN ); } /* The data of the created timer are stored to use them later */ ptimer->state = POSIX_TIMER_STATE_CREATE_NEW; 4b786: 7002 moveq #2,%d0 <== NOT EXECUTED 4b788: 1340 003c moveb %d0,%a1@(60) <== NOT EXECUTED ptimer->thread_id = _Thread_Executing->Object.id; 4b78c: 2079 0006 31d6 moveal 631d6 <_Thread_Executing>,%a0 <== NOT EXECUTED 4b792: 2368 0008 0038 movel %a0@(8),%a1@(56) <== NOT EXECUTED if ( evp != NULL ) { 4b798: 4a8a tstl %a2 <== NOT EXECUTED 4b79a: 6710 beqs 4b7ac <== NOT EXECUTED ptimer->inf.sigev_notify = evp->sigev_notify; 4b79c: 2352 003e movel %a2@,%a1@(62) <== NOT EXECUTED ptimer->inf.sigev_signo = evp->sigev_signo; ptimer->inf.sigev_value = evp->sigev_value; 4b7a0: 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; 4b7a6: 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; 4b7ac: 2079 0006 33d8 moveal 633d8 <_POSIX_Timer_Information+0x1a>,%a0 <== NOT EXECUTED 4b7b2: 4280 clrl %d0 <== NOT EXECUTED 4b7b4: 3029 000a movew %a1@(10),%d0 <== NOT EXECUTED 4b7b8: 2189 0c00 movel %a1,%a0@(00000000,%d0:l:4) <== NOT EXECUTED ptimer->inf.sigev_value = evp->sigev_value; } ptimer->overrun = 0; 4b7bc: 42a9 0066 clrl %a1@(102) <== NOT EXECUTED ptimer->timer_data.it_value.tv_sec = 0; 4b7c0: 42a9 005a clrl %a1@(90) <== NOT EXECUTED ptimer->timer_data.it_value.tv_nsec = 0; 4b7c4: 42a9 005e clrl %a1@(94) <== NOT EXECUTED ptimer->timer_data.it_interval.tv_sec = 0; 4b7c8: 42a9 0052 clrl %a1@(82) <== NOT EXECUTED ptimer->timer_data.it_interval.tv_nsec = 0; 4b7cc: 42a9 0056 clrl %a1@(86) <== NOT EXECUTED void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; 4b7d0: 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; 4b7d4: 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; 4b7d8: 26a9 0008 movel %a1@(8),%a3@ <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 4b7dc: 42a9 0018 clrl %a1@(24) <== NOT EXECUTED the_watchdog->routine = routine; 4b7e0: 42a9 002c clrl %a1@(44) <== NOT EXECUTED the_watchdog->id = id; the_watchdog->user_data = user_data; 4b7e4: 42a9 0034 clrl %a1@(52) <== NOT EXECUTED _Thread_Enable_dispatch(); 4b7e8: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED return 0; } 4b7ee: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4b7f2: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 4b7f6: 4e5e unlk %fp <== NOT EXECUTED _Watchdog_Initialize( &ptimer->Timer, NULL, 0, NULL ); _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0); *timerid = ptimer->Object.id; _Thread_Enable_dispatch(); 4b7f8: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4b7fa: 4e75 rts <== NOT EXECUTED if ( !evp->sigev_signo ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(evp->sigev_signo) ) rtems_set_errno_and_return_minus_one( EINVAL ); 4b7fc: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0); *timerid = ptimer->Object.id; _Thread_Enable_dispatch(); return 0; } 4b802: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4b806: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED if ( !evp->sigev_signo ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(evp->sigev_signo) ) rtems_set_errno_and_return_minus_one( EINVAL ); 4b80a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4b80c: 7216 moveq #22,%d1 <== NOT EXECUTED _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0); *timerid = ptimer->Object.id; _Thread_Enable_dispatch(); return 0; } 4b80e: 4e5e unlk %fp <== NOT EXECUTED if ( !evp->sigev_signo ) rtems_set_errno_and_return_minus_one( EINVAL ); if ( !is_valid_signo(evp->sigev_signo) ) rtems_set_errno_and_return_minus_one( EINVAL ); 4b810: 70ff moveq #-1,%d0 <== NOT EXECUTED 4b812: 2081 movel %d1,%a0@ <== NOT EXECUTED _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0); *timerid = ptimer->Object.id; _Thread_Enable_dispatch(); return 0; } 4b814: 4e75 rts <== NOT EXECUTED /* * Allocate a timer */ ptimer = _POSIX_Timer_Allocate(); if ( !ptimer ) { _Thread_Enable_dispatch(); 4b816: 4eb9 0004 e748 jsr 4e748 <_Thread_Enable_dispatch> <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EAGAIN ); 4b81c: 4eb9 0005 4298 jsr 54298 <__errno> <== NOT EXECUTED _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0); *timerid = ptimer->Object.id; _Thread_Enable_dispatch(); return 0; } 4b822: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4b826: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED * Allocate a timer */ ptimer = _POSIX_Timer_Allocate(); if ( !ptimer ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EAGAIN ); 4b82a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4b82c: 700b moveq #11,%d0 <== NOT EXECUTED 4b82e: 2080 movel %d0,%a0@ <== NOT EXECUTED _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0); *timerid = ptimer->Object.id; _Thread_Enable_dispatch(); return 0; } 4b830: 4e5e unlk %fp <== NOT EXECUTED * Allocate a timer */ ptimer = _POSIX_Timer_Allocate(); if ( !ptimer ) { _Thread_Enable_dispatch(); rtems_set_errno_and_return_minus_one( EAGAIN ); 4b832: 70ff moveq #-1,%d0 <== NOT EXECUTED _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0); *timerid = ptimer->Object.id; _Thread_Enable_dispatch(); return 0; } 4b834: 4e75 rts <== NOT EXECUTED ... 00045dc8 : int timer_delete( timer_t timerid ) { 45dc8: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 45dcc: 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 *) 45dce: 486e fffc pea %fp@(-4) <== NOT EXECUTED 45dd2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 45dd6: 4879 0005 c49e pea 5c49e <_POSIX_Timer_Information> <== NOT EXECUTED 45ddc: 4eb9 0004 84c4 jsr 484c4 <_Objects_Get> <== NOT EXECUTED */ POSIX_Timer_Control *ptimer; Objects_Locations location; ptimer = _POSIX_Timer_Get( timerid, &location ); switch ( location ) { 45de2: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 45de8: 2440 moveal %d0,%a2 <== NOT EXECUTED 45dea: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 45dee: 6716 beqs 45e06 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 45df0: 4eb9 0004 e9b0 jsr 4e9b0 <__errno> <== NOT EXECUTED } 45df6: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 45dfa: 2040 moveal %d0,%a0 <== NOT EXECUTED 45dfc: 7216 moveq #22,%d1 <== NOT EXECUTED } 45dfe: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 45e00: 70ff moveq #-1,%d0 <== NOT EXECUTED 45e02: 2081 movel %d1,%a0@ <== NOT EXECUTED } 45e04: 4e75 rts <== NOT EXECUTED ptimer = _POSIX_Timer_Get( timerid, &location ); switch ( location ) { case OBJECTS_LOCAL: _Objects_Close( &_POSIX_Timer_Information, &ptimer->Object ); 45e06: 2f00 movel %d0,%sp@- <== NOT EXECUTED 45e08: 4879 0005 c49e pea 5c49e <_POSIX_Timer_Information> <== NOT EXECUTED 45e0e: 4eb9 0004 8034 jsr 48034 <_Objects_Close> <== NOT EXECUTED ptimer->state = POSIX_TIMER_STATE_FREE; 45e14: 7001 moveq #1,%d0 <== NOT EXECUTED 45e16: 1540 003c moveb %d0,%a2@(60) <== NOT EXECUTED (void) _Watchdog_Remove( &ptimer->Timer ); 45e1a: 486a 0010 pea %a2@(16) <== NOT EXECUTED 45e1e: 4eb9 0004 a0f0 jsr 4a0f0 <_Watchdog_Remove> <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _POSIX_Timer_Free ( POSIX_Timer_Control *the_timer ) { _Objects_Free( &_POSIX_Timer_Information, &the_timer->Object ); 45e24: 2f0a movel %a2,%sp@- <== NOT EXECUTED 45e26: 4879 0005 c49e pea 5c49e <_POSIX_Timer_Information> <== NOT EXECUTED 45e2c: 4eb9 0004 8358 jsr 48358 <_Objects_Free> <== NOT EXECUTED _POSIX_Timer_Free( ptimer ); _Thread_Enable_dispatch(); 45e32: 4eb9 0004 8cc4 jsr 48cc4 <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 45e38: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_POSIX_Timer_Information, &ptimer->Object ); ptimer->state = POSIX_TIMER_STATE_FREE; (void) _Watchdog_Remove( &ptimer->Timer ); _POSIX_Timer_Free( ptimer ); _Thread_Enable_dispatch(); 45e3c: dffc 0000 0014 addal #20,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 45e42: 4e5e unlk %fp <== NOT EXECUTED case OBJECTS_LOCAL: _Objects_Close( &_POSIX_Timer_Information, &ptimer->Object ); ptimer->state = POSIX_TIMER_STATE_FREE; (void) _Watchdog_Remove( &ptimer->Timer ); _POSIX_Timer_Free( ptimer ); _Thread_Enable_dispatch(); 45e44: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 45e46: 4e75 rts 00047050 : * its execution, _POSIX_Timer_TSR will have to set this counter to 0. */ int timer_getoverrun( timer_t timerid ) { 47050: 4e56 fffc linkw %fp,#-4 <== NOT EXECUTED 47054: 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 *) 47056: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4705a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4705e: 4879 0005 d99a pea 5d99a <_POSIX_Timer_Information> <== NOT EXECUTED 47064: 4eb9 0004 96cc jsr 496cc <_Objects_Get> <== NOT EXECUTED int overrun; POSIX_Timer_Control *ptimer; Objects_Locations location; ptimer = _POSIX_Timer_Get( timerid, &location ); switch ( location ) { 4706a: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 47070: 2040 moveal %d0,%a0 <== NOT EXECUTED 47072: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47076: 6718 beqs 47090 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 47078: 4eb9 0004 f77c jsr 4f77c <__errno> <== NOT EXECUTED 4707e: 2040 moveal %d0,%a0 <== NOT EXECUTED 47080: 7016 moveq #22,%d0 <== NOT EXECUTED 47082: 74ff moveq #-1,%d2 <== NOT EXECUTED 47084: 2080 movel %d0,%a0@ <== NOT EXECUTED } 47086: 2002 movel %d2,%d0 <== NOT EXECUTED 47088: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4708c: 4e5e unlk %fp <== NOT EXECUTED 4708e: 4e75 rts <== NOT EXECUTED ptimer = _POSIX_Timer_Get( timerid, &location ); switch ( location ) { case OBJECTS_LOCAL: overrun = ptimer->overrun; 47090: 2428 0066 movel %a0@(102),%d2 <== NOT EXECUTED ptimer->overrun = 0; 47094: 42a8 0066 clrl %a0@(102) <== NOT EXECUTED _Thread_Enable_dispatch(); 47098: 4eb9 0004 9ecc jsr 49ecc <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 4709e: 2002 movel %d2,%d0 <== NOT EXECUTED 470a0: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 470a4: 4e5e unlk %fp <== NOT EXECUTED 470a6: 4e75 rts 000470a8 : int timer_gettime( timer_t timerid, struct itimerspec *value ) { 470a8: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 470ac: 2f0b movel %a3,%sp@- <== NOT EXECUTED 470ae: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 470b2: 2f0a movel %a2,%sp@- <== NOT EXECUTED POSIX_Timer_Control *ptimer; Objects_Locations location; struct timespec current_time; Watchdog_Interval left; if ( !value ) 470b4: 4a8b tstl %a3 <== NOT EXECUTED 470b6: 6700 0086 beqw 4713e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); /* Reads the current time */ _TOD_Get( ¤t_time ); 470ba: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 470be: 4eb9 0004 8dc8 jsr 48dc8 <_TOD_Get> <== NOT EXECUTED 470c4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 470c8: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 470cc: 4879 0005 d99a pea 5d99a <_POSIX_Timer_Information> <== NOT EXECUTED 470d2: 4eb9 0004 96cc jsr 496cc <_Objects_Get> <== NOT EXECUTED ptimer = _POSIX_Timer_Get( timerid, &location ); switch ( location ) { 470d8: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 470de: 2440 moveal %d0,%a2 <== NOT EXECUTED 470e0: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 470e4: 663e bnes 47124 <== NOT EXECUTED left = (ptimer->Timer.start_time + ptimer->Timer.initial) - /* expire */ _Watchdog_Ticks_since_boot; /* now */ _Timespec_From_ticks( left, &value->it_value ); 470e6: 486b 0008 pea %a3@(8) <== NOT EXECUTED 470ea: 202a 001c movel %a2@(28),%d0 <== NOT EXECUTED 470ee: d0aa 0024 addl %a2@(36),%d0 <== NOT EXECUTED case OBJECTS_LOCAL: /* Calculates the time left before the timer finishes */ left = 470f2: 2239 0005 d83c movel 5d83c <_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 ); 470f8: 9081 subl %d1,%d0 <== NOT EXECUTED 470fa: 2f00 movel %d0,%sp@- <== NOT EXECUTED 470fc: 4eb9 0004 adfc jsr 4adfc <_Timespec_From_ticks> <== NOT EXECUTED value->it_interval = ptimer->timer_data.it_interval; 47102: 202a 0052 movel %a2@(82),%d0 <== NOT EXECUTED 47106: 276a 0056 0004 movel %a2@(86),%a3@(4) <== NOT EXECUTED 4710c: 2680 movel %d0,%a3@ <== NOT EXECUTED _Thread_Enable_dispatch(); 4710e: 4eb9 0004 9ecc jsr 49ecc <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 47114: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 47118: 266e fff0 moveal %fp@(-16),%a3 <== NOT EXECUTED _Timespec_From_ticks( left, &value->it_value ); value->it_interval = ptimer->timer_data.it_interval; _Thread_Enable_dispatch(); 4711c: 508f addql #8,%sp <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 4711e: 4e5e unlk %fp <== NOT EXECUTED _Timespec_From_ticks( left, &value->it_value ); value->it_interval = ptimer->timer_data.it_interval; _Thread_Enable_dispatch(); 47120: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 47122: 4e75 rts <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 47124: 4eb9 0004 f77c jsr 4f77c <__errno> <== NOT EXECUTED } 4712a: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 4712e: 266e fff0 moveal %fp@(-16),%a3 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 47132: 2040 moveal %d0,%a0 <== NOT EXECUTED 47134: 7216 moveq #22,%d1 <== NOT EXECUTED } 47136: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 47138: 70ff moveq #-1,%d0 <== NOT EXECUTED 4713a: 2081 movel %d1,%a0@ <== NOT EXECUTED } 4713c: 4e75 rts <== NOT EXECUTED Objects_Locations location; struct timespec current_time; Watchdog_Interval left; if ( !value ) rtems_set_errno_and_return_minus_one( EINVAL ); 4713e: 4eb9 0004 f77c jsr 4f77c <__errno> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 47144: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 47148: 266e fff0 moveal %fp@(-16),%a3 <== NOT EXECUTED Objects_Locations location; struct timespec current_time; Watchdog_Interval left; if ( !value ) rtems_set_errno_and_return_minus_one( EINVAL ); 4714c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4714e: 7016 moveq #22,%d0 <== NOT EXECUTED 47150: 2080 movel %d0,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 47152: 4e5e unlk %fp <== NOT EXECUTED Objects_Locations location; struct timespec current_time; Watchdog_Interval left; if ( !value ) rtems_set_errno_and_return_minus_one( EINVAL ); 47154: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 47156: 4e75 rts 00047158 : timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue ) { 47158: 4e56 ffcc linkw %fp,#-52 <== NOT EXECUTED 4715c: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== NOT EXECUTED 47160: 246e 0010 moveal %fp@(16),%a2 <== NOT EXECUTED Objects_Locations location; bool activated; uint32_t initial_period; struct itimerspec normalize; if ( !value ) 47164: 4a8a tstl %a2 <== NOT EXECUTED 47166: 6700 0124 beqw 4728c <== 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 ) || 4716a: 203c 3b9a c9ff movel #999999999,%d0 <== NOT EXECUTED 47170: b0aa 000c cmpl %a2@(12),%d0 <== NOT EXECUTED 47174: 6500 0116 bcsw 4728c <== NOT EXECUTED 47178: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 4717c: 0c80 3b9a c9ff cmpil #999999999,%d0 <== NOT EXECUTED 47182: 6200 0108 bhiw 4728c <== NOT EXECUTED 47186: 4a80 tstl %d0 <== NOT EXECUTED 47188: 6d00 0102 bltw 4728c <== 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 ) { 4718c: 7004 moveq #4,%d0 <== NOT EXECUTED 4718e: b0ae 000c cmpl %fp@(12),%d0 <== NOT EXECUTED 47192: 6700 0168 beqw 472fc <== NOT EXECUTED 47196: 4aae 000c tstl %fp@(12) <== NOT EXECUTED 4719a: 6600 00f0 bnew 4728c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); } normalize = *value; 4719e: 2a0e movel %fp,%d5 <== NOT EXECUTED 471a0: 0685 ffff ffec addil #-20,%d5 <== NOT EXECUTED 471a6: 204a moveal %a2,%a0 <== NOT EXECUTED 471a8: 2245 moveal %d5,%a1 <== NOT EXECUTED 471aa: 2298 movel %a0@+,%a1@ <== NOT EXECUTED 471ac: 280e movel %fp,%d4 <== NOT EXECUTED 471ae: 0684 ffff fff0 addil #-16,%d4 <== NOT EXECUTED 471b4: 2644 moveal %d4,%a3 <== NOT EXECUTED 471b6: 2698 movel %a0@+,%a3@ <== NOT EXECUTED 471b8: 240e movel %fp,%d2 <== NOT EXECUTED 471ba: 0682 ffff fff4 addil #-12,%d2 <== NOT EXECUTED 471c0: 2242 moveal %d2,%a1 <== NOT EXECUTED 471c2: 2298 movel %a0@+,%a1@ <== NOT EXECUTED 471c4: 260e movel %fp,%d3 <== NOT EXECUTED 471c6: 5183 subql #8,%d3 <== NOT EXECUTED 471c8: 2643 moveal %d3,%a3 <== NOT EXECUTED 471ca: 2690 movel %a0@,%a3@ <== NOT EXECUTED 471cc: 486e fffc pea %fp@(-4) <== NOT EXECUTED 471d0: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 471d4: 4879 0005 d99a pea 5d99a <_POSIX_Timer_Information> <== NOT EXECUTED 471da: 4eb9 0004 96cc jsr 496cc <_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 ) { 471e0: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 471e6: 2640 moveal %d0,%a3 <== NOT EXECUTED 471e8: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 471ec: 6600 019c bnew 4738a <== 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 ) { 471f0: 4aae fff4 tstl %fp@(-12) <== NOT EXECUTED 471f4: 6608 bnes 471fe <== NOT EXECUTED 471f6: 4aae fff8 tstl %fp@(-8) <== NOT EXECUTED 471fa: 6700 00a8 beqw 472a4 <== NOT EXECUTED _Thread_Enable_dispatch(); return 0; } /* Convert from seconds and nanoseconds to ticks */ ptimer->ticks = _Timespec_To_ticks( &value->it_interval ); 471fe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 47200: 45f9 0004 aec4 lea 4aec4 <_Timespec_To_ticks>,%a2 <== NOT EXECUTED 47206: 4e92 jsr %a2@ <== NOT EXECUTED 47208: 2740 0062 movel %d0,%a3@(98) <== NOT EXECUTED initial_period = _Timespec_To_ticks( &normalize.it_value ); 4720c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4720e: 4e92 jsr %a2@ <== NOT EXECUTED activated = _POSIX_Timer_Insert_helper( 47210: 2f0b movel %a3,%sp@- <== NOT EXECUTED 47212: 4879 0004 7414 pea 47414 <_POSIX_Timer_TSR> <== NOT EXECUTED 47218: 2f2b 0008 movel %a3@(8),%sp@- <== NOT EXECUTED 4721c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4721e: 486b 0010 pea %a3@(16) <== NOT EXECUTED 47222: 4eb9 0004 daa0 jsr 4daa0 <_POSIX_Timer_Insert_helper> <== NOT EXECUTED initial_period, ptimer->Object.id, _POSIX_Timer_TSR, ptimer ); if ( !activated ) { 47228: dffc 0000 001c addal #28,%sp <== NOT EXECUTED 4722e: 4a00 tstb %d0 <== NOT EXECUTED 47230: 6700 0146 beqw 47378 <== NOT EXECUTED /* * The timer has been started and is running. So we return the * old ones in "ovalue" */ if ( ovalue ) 47234: 4aae 0014 tstl %fp@(20) <== NOT EXECUTED 47238: 6700 0168 beqw 473a2 <== NOT EXECUTED *ovalue = ptimer->timer_data; 4723c: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 47240: 4beb 0052 lea %a3@(82),%a5 <== NOT EXECUTED 47244: 20d5 movel %a5@,%a0@+ <== NOT EXECUTED 47246: 49eb 0056 lea %a3@(86),%a4 <== NOT EXECUTED 4724a: 20d4 movel %a4@,%a0@+ <== NOT EXECUTED 4724c: 45eb 005a lea %a3@(90),%a2 <== NOT EXECUTED 47250: 20d2 movel %a2@,%a0@+ <== NOT EXECUTED 47252: 43eb 005e lea %a3@(94),%a1 <== NOT EXECUTED 47256: 2091 movel %a1@,%a0@ <== NOT EXECUTED ptimer->timer_data = normalize; 47258: 2045 moveal %d5,%a0 <== NOT EXECUTED 4725a: 2a90 movel %a0@,%a5@ <== NOT EXECUTED 4725c: 2044 moveal %d4,%a0 <== NOT EXECUTED 4725e: 2890 movel %a0@,%a4@ <== NOT EXECUTED 47260: 2042 moveal %d2,%a0 <== NOT EXECUTED 47262: 2490 movel %a0@,%a2@ <== NOT EXECUTED 47264: 2043 moveal %d3,%a0 <== NOT EXECUTED 47266: 2290 movel %a0@,%a1@ <== NOT EXECUTED /* Indicate that the time is running */ ptimer->state = POSIX_TIMER_STATE_CREATE_RUN; 47268: 7003 moveq #3,%d0 <== NOT EXECUTED 4726a: 1740 003c moveb %d0,%a3@(60) <== NOT EXECUTED _TOD_Get( &ptimer->time ); 4726e: 486b 006a pea %a3@(106) <== NOT EXECUTED 47272: 4eb9 0004 8dc8 jsr 48dc8 <_TOD_Get> <== NOT EXECUTED _Thread_Enable_dispatch(); 47278: 4eb9 0004 9ecc jsr 49ecc <_Thread_Enable_dispatch> <== NOT EXECUTED 4727e: 588f addql #4,%sp <== NOT EXECUTED 47280: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 47282: 4cee 3c3c ffcc moveml %fp@(-52),%d2-%d5/%a2-%a5 <== NOT EXECUTED 47288: 4e5e unlk %fp <== NOT EXECUTED 4728a: 4e75 rts <== NOT EXECUTED /* Convert absolute to relative time */ if (flags == TIMER_ABSTIME) { /* Check for seconds in the past */ if ( _Timespec_Greater_than( &_TOD_Now, &normalize.it_value ) ) rtems_set_errno_and_return_minus_one( EINVAL ); 4728c: 4eb9 0004 f77c jsr 4f77c <__errno> <== NOT EXECUTED 47292: 7416 moveq #22,%d2 <== NOT EXECUTED 47294: 2040 moveal %d0,%a0 <== NOT EXECUTED 47296: 2082 movel %d2,%a0@ <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 47298: 4cee 3c3c ffcc moveml %fp@(-52),%d2-%d5/%a2-%a5 <== NOT EXECUTED 4729e: 4e5e unlk %fp <== NOT EXECUTED /* Convert absolute to relative time */ if (flags == TIMER_ABSTIME) { /* Check for seconds in the past */ if ( _Timespec_Greater_than( &_TOD_Now, &normalize.it_value ) ) rtems_set_errno_and_return_minus_one( EINVAL ); 472a0: 70ff moveq #-1,%d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 472a2: 4e75 rts <== 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 ) { /* Stop the timer */ (void) _Watchdog_Remove( &ptimer->Timer ); 472a4: 486b 0010 pea %a3@(16) <== NOT EXECUTED 472a8: 4eb9 0004 b33c jsr 4b33c <_Watchdog_Remove> <== NOT EXECUTED /* The old data of the timer are returned */ if ( ovalue ) 472ae: 588f addql #4,%sp <== NOT EXECUTED 472b0: 4aae 0014 tstl %fp@(20) <== NOT EXECUTED 472b4: 6700 012a beqw 473e0 <== NOT EXECUTED *ovalue = ptimer->timer_data; 472b8: 206e 0014 moveal %fp@(20),%a0 <== NOT EXECUTED 472bc: 4beb 0052 lea %a3@(82),%a5 <== NOT EXECUTED 472c0: 20d5 movel %a5@,%a0@+ <== NOT EXECUTED 472c2: 49eb 0056 lea %a3@(86),%a4 <== NOT EXECUTED 472c6: 20d4 movel %a4@,%a0@+ <== NOT EXECUTED 472c8: 45eb 005a lea %a3@(90),%a2 <== NOT EXECUTED 472cc: 20d2 movel %a2@,%a0@+ <== NOT EXECUTED 472ce: 43eb 005e lea %a3@(94),%a1 <== NOT EXECUTED 472d2: 2091 movel %a1@,%a0@ <== NOT EXECUTED /* The new data are set */ ptimer->timer_data = normalize; 472d4: 2045 moveal %d5,%a0 <== NOT EXECUTED 472d6: 2a90 movel %a0@,%a5@ <== NOT EXECUTED 472d8: 2044 moveal %d4,%a0 <== NOT EXECUTED 472da: 2890 movel %a0@,%a4@ <== NOT EXECUTED 472dc: 2042 moveal %d2,%a0 <== NOT EXECUTED 472de: 2490 movel %a0@,%a2@ <== NOT EXECUTED 472e0: 2043 moveal %d3,%a0 <== NOT EXECUTED 472e2: 2290 movel %a0@,%a1@ <== NOT EXECUTED /* Indicates that the timer is created and stopped */ ptimer->state = POSIX_TIMER_STATE_CREATE_STOP; 472e4: 7004 moveq #4,%d0 <== NOT EXECUTED 472e6: 1740 003c moveb %d0,%a3@(60) <== NOT EXECUTED /* Returns with success */ _Thread_Enable_dispatch(); 472ea: 4eb9 0004 9ecc jsr 49ecc <_Thread_Enable_dispatch> <== NOT EXECUTED 472f0: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 472f2: 4cee 3c3c ffcc moveml %fp@(-52),%d2-%d5/%a2-%a5 <== NOT EXECUTED 472f8: 4e5e unlk %fp <== NOT EXECUTED 472fa: 4e75 rts <== NOT EXECUTED if ( flags != TIMER_ABSTIME && flags != POSIX_TIMER_RELATIVE ) { rtems_set_errno_and_return_minus_one( EINVAL ); } normalize = *value; 472fc: 2a0e movel %fp,%d5 <== NOT EXECUTED 472fe: 0685 ffff ffec addil #-20,%d5 <== NOT EXECUTED 47304: 204a moveal %a2,%a0 <== NOT EXECUTED 47306: 2245 moveal %d5,%a1 <== NOT EXECUTED 47308: 2298 movel %a0@+,%a1@ <== NOT EXECUTED 4730a: 280e movel %fp,%d4 <== NOT EXECUTED 4730c: 0684 ffff fff0 addil #-16,%d4 <== NOT EXECUTED 47312: 2644 moveal %d4,%a3 <== NOT EXECUTED 47314: 2698 movel %a0@+,%a3@ <== NOT EXECUTED 47316: 43ee fff4 lea %fp@(-12),%a1 <== NOT EXECUTED 4731a: 2298 movel %a0@+,%a1@ <== NOT EXECUTED 4731c: 260e movel %fp,%d3 <== NOT EXECUTED 4731e: 5183 subql #8,%d3 <== NOT EXECUTED 47320: 2643 moveal %d3,%a3 <== NOT EXECUTED 47322: 2690 movel %a0@,%a3@ <== NOT EXECUTED /* Convert absolute to relative time */ if (flags == TIMER_ABSTIME) { /* Check for seconds in the past */ if ( _Timespec_Greater_than( &_TOD_Now, &normalize.it_value ) ) 47324: 2409 movel %a1,%d2 <== NOT EXECUTED 47326: 2f09 movel %a1,%sp@- <== NOT EXECUTED 47328: 4879 0005 d786 pea 5d786 <_TOD_Now> <== NOT EXECUTED 4732e: 4eb9 0004 ae3c jsr 4ae3c <_Timespec_Greater_than> <== NOT EXECUTED 47334: 508f addql #8,%sp <== NOT EXECUTED 47336: 4a00 tstb %d0 <== NOT EXECUTED 47338: 6600 ff52 bnew 4728c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); _Timespec_Subtract( &_TOD_Now, &normalize.it_value, &normalize.it_value ); 4733c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4733e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 47340: 4879 0005 d786 pea 5d786 <_TOD_Now> <== NOT EXECUTED 47346: 4eb9 0004 ae70 jsr 4ae70 <_Timespec_Subtract> <== NOT EXECUTED 4734c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 47352: 486e fffc pea %fp@(-4) <== NOT EXECUTED 47356: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4735a: 4879 0005 d99a pea 5d99a <_POSIX_Timer_Information> <== NOT EXECUTED 47360: 4eb9 0004 96cc jsr 496cc <_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 ) { 47366: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 4736c: 2640 moveal %d0,%a3 <== NOT EXECUTED 4736e: 4aae fffc tstl %fp@(-4) <== NOT EXECUTED 47372: 6616 bnes 4738a <== NOT EXECUTED 47374: 6000 fe7a braw 471f0 <== NOT EXECUTED ptimer->Object.id, _POSIX_Timer_TSR, ptimer ); if ( !activated ) { _Thread_Enable_dispatch(); 47378: 4eb9 0004 9ecc jsr 49ecc <_Thread_Enable_dispatch> <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 4737e: 4cee 3c3c ffcc moveml %fp@(-52),%d2-%d5/%a2-%a5 <== NOT EXECUTED 47384: 4e5e unlk %fp <== NOT EXECUTED ptimer->Object.id, _POSIX_Timer_TSR, ptimer ); if ( !activated ) { _Thread_Enable_dispatch(); 47386: 4280 clrl %d0 <== NOT EXECUTED case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); } 47388: 4e75 rts <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 4738a: 4eb9 0004 f77c jsr 4f77c <__errno> <== NOT EXECUTED } 47390: 4cee 3c3c ffcc moveml %fp@(-52),%d2-%d5/%a2-%a5 <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 47396: 2040 moveal %d0,%a0 <== NOT EXECUTED 47398: 7216 moveq #22,%d1 <== NOT EXECUTED } 4739a: 4e5e unlk %fp <== NOT EXECUTED #endif case OBJECTS_ERROR: break; } rtems_set_errno_and_return_minus_one( EINVAL ); 4739c: 70ff moveq #-1,%d0 <== NOT EXECUTED 4739e: 2081 movel %d1,%a0@ <== NOT EXECUTED } 473a0: 4e75 rts <== NOT EXECUTED * The timer has been started and is running. So we return the * old ones in "ovalue" */ if ( ovalue ) *ovalue = ptimer->timer_data; ptimer->timer_data = normalize; 473a2: 2045 moveal %d5,%a0 <== NOT EXECUTED 473a4: 4beb 0052 lea %a3@(82),%a5 <== NOT EXECUTED 473a8: 2a90 movel %a0@,%a5@ <== NOT EXECUTED 473aa: 49eb 0056 lea %a3@(86),%a4 <== NOT EXECUTED 473ae: 2044 moveal %d4,%a0 <== NOT EXECUTED 473b0: 2890 movel %a0@,%a4@ <== NOT EXECUTED 473b2: 45eb 005a lea %a3@(90),%a2 <== NOT EXECUTED 473b6: 2042 moveal %d2,%a0 <== NOT EXECUTED 473b8: 2490 movel %a0@,%a2@ <== NOT EXECUTED 473ba: 43eb 005e lea %a3@(94),%a1 <== NOT EXECUTED 473be: 2043 moveal %d3,%a0 <== NOT EXECUTED 473c0: 2290 movel %a0@,%a1@ <== NOT EXECUTED /* Indicate that the time is running */ ptimer->state = POSIX_TIMER_STATE_CREATE_RUN; 473c2: 7003 moveq #3,%d0 <== NOT EXECUTED 473c4: 1740 003c moveb %d0,%a3@(60) <== NOT EXECUTED _TOD_Get( &ptimer->time ); 473c8: 486b 006a pea %a3@(106) <== NOT EXECUTED 473cc: 4eb9 0004 8dc8 jsr 48dc8 <_TOD_Get> <== NOT EXECUTED _Thread_Enable_dispatch(); 473d2: 4eb9 0004 9ecc jsr 49ecc <_Thread_Enable_dispatch> <== NOT EXECUTED 473d8: 588f addql #4,%sp <== NOT EXECUTED 473da: 4280 clrl %d0 <== NOT EXECUTED 473dc: 6000 fea4 braw 47282 <== NOT EXECUTED (void) _Watchdog_Remove( &ptimer->Timer ); /* The old data of the timer are returned */ if ( ovalue ) *ovalue = ptimer->timer_data; /* The new data are set */ ptimer->timer_data = normalize; 473e0: 2045 moveal %d5,%a0 <== NOT EXECUTED 473e2: 4beb 0052 lea %a3@(82),%a5 <== NOT EXECUTED 473e6: 2a90 movel %a0@,%a5@ <== NOT EXECUTED 473e8: 49eb 0056 lea %a3@(86),%a4 <== NOT EXECUTED 473ec: 2044 moveal %d4,%a0 <== NOT EXECUTED 473ee: 2890 movel %a0@,%a4@ <== NOT EXECUTED 473f0: 45eb 005a lea %a3@(90),%a2 <== NOT EXECUTED 473f4: 2042 moveal %d2,%a0 <== NOT EXECUTED 473f6: 2490 movel %a0@,%a2@ <== NOT EXECUTED 473f8: 43eb 005e lea %a3@(94),%a1 <== NOT EXECUTED 473fc: 2043 moveal %d3,%a0 <== NOT EXECUTED 473fe: 2290 movel %a0@,%a1@ <== NOT EXECUTED /* Indicates that the timer is created and stopped */ ptimer->state = POSIX_TIMER_STATE_CREATE_STOP; 47400: 7004 moveq #4,%d0 <== NOT EXECUTED 47402: 1740 003c moveb %d0,%a3@(60) <== NOT EXECUTED /* Returns with success */ _Thread_Enable_dispatch(); 47406: 4eb9 0004 9ecc jsr 49ecc <_Thread_Enable_dispatch> <== NOT EXECUTED 4740c: 4280 clrl %d0 <== NOT EXECUTED 4740e: 6000 fee2 braw 472f2 <== NOT EXECUTED ... 00048714 : int truncate( const char *path, off_t length ) { 48714: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48718: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4871a: 2f02 movel %d2,%sp@- <== NOT EXECUTED int status; int fd; fd = open( path, O_WRONLY ); 4871c: 4878 0001 pea 1 <== NOT EXECUTED 48720: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 48724: 4eb9 0004 5ee4 jsr 45ee4 <== NOT EXECUTED 4872a: 2400 movel %d0,%d2 <== NOT EXECUTED if ( fd == -1 ) 4872c: 508f addql #8,%sp <== NOT EXECUTED 4872e: 70ff moveq #-1,%d0 <== NOT EXECUTED 48730: b082 cmpl %d2,%d0 <== NOT EXECUTED 48732: 672a beqs 4875e <== NOT EXECUTED return -1; status = ftruncate( fd, length ); 48734: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48738: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4873a: 4eb9 0004 dee8 jsr 4dee8 <== NOT EXECUTED (void) close( fd ); 48740: 2f02 movel %d2,%sp@- <== NOT EXECUTED fd = open( path, O_WRONLY ); if ( fd == -1 ) return -1; status = ftruncate( fd, length ); 48742: 2600 movel %d0,%d3 <== NOT EXECUTED (void) close( fd ); 48744: 4eb9 0004 4a2c jsr 44a2c <== NOT EXECUTED return status; } 4874a: 2003 movel %d3,%d0 <== NOT EXECUTED 4874c: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48750: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED if ( fd == -1 ) return -1; status = ftruncate( fd, length ); (void) close( fd ); 48754: dffc 0000 000c addal #12,%sp <== NOT EXECUTED return status; } 4875a: 4e5e unlk %fp <== NOT EXECUTED 4875c: 4e75 rts <== NOT EXECUTED { int status; int fd; fd = open( path, O_WRONLY ); if ( fd == -1 ) 4875e: 76ff moveq #-1,%d3 <== NOT EXECUTED status = ftruncate( fd, length ); (void) close( fd ); return status; } 48760: 2003 movel %d3,%d0 <== NOT EXECUTED 48762: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 48766: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 4876a: 4e5e unlk %fp <== NOT EXECUTED 4876c: 4e75 rts <== NOT EXECUTED ... 000622bc : */ char *ttyname( int fd ) { 622bc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED if ( !ttyname_r( fd, ttyname_buf, sizeof(ttyname_buf) ) ) 622c0: 4878 0406 pea 406 <== NOT EXECUTED 622c4: 4879 0008 6184 pea 86184 <== NOT EXECUTED 622ca: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 622ce: 4eb9 0006 21cc jsr 621cc <== NOT EXECUTED 622d4: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 622da: 223c 0008 6184 movel #549252,%d1 <== NOT EXECUTED 622e0: 4a80 tstl %d0 <== NOT EXECUTED 622e2: 6606 bnes 622ea <== NOT EXECUTED return ttyname_buf; return NULL; } 622e4: 4e5e unlk %fp <== NOT EXECUTED 622e6: 2001 movel %d1,%d0 <== NOT EXECUTED 622e8: 4e75 rts <== NOT EXECUTED char *ttyname( int fd ) { if ( !ttyname_r( fd, ttyname_buf, sizeof(ttyname_buf) ) ) 622ea: 4281 clrl %d1 <== NOT EXECUTED return ttyname_buf; return NULL; } 622ec: 4e5e unlk %fp <== NOT EXECUTED 622ee: 2001 movel %d1,%d0 <== NOT EXECUTED 622f0: 4e75 rts <== NOT EXECUTED ... 000621cc : int ttyname_r( int fd, char *name, size_t namesize ) { 621cc: 4e56 ff28 linkw %fp,#-216 <== NOT EXECUTED 621d0: 48d7 1c7c moveml %d2-%d6/%a2-%a4,%sp@ <== NOT EXECUTED DIR *dp; struct stat dsb; char *rval; /* Must be a terminal. */ if (tcgetattr (fd, &tty) < 0) 621d4: 486e ffdc pea %fp@(-36) <== NOT EXECUTED int ttyname_r( int fd, char *name, size_t namesize ) { 621d8: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED DIR *dp; struct stat dsb; char *rval; /* Must be a terminal. */ if (tcgetattr (fd, &tty) < 0) 621dc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 621de: 4eb9 0006 2140 jsr 62140 <== NOT EXECUTED 621e4: 508f addql #8,%sp <== NOT EXECUTED 621e6: 4a80 tstl %d0 <== NOT EXECUTED 621e8: 6d24 blts 6220e <== NOT EXECUTED rtems_set_errno_and_return_minus_one(EBADF); /* Must be a character device. */ if (fstat (fd, &sb) || !S_ISCHR (sb.st_mode)) 621ea: 486e ff92 pea %fp@(-110) <== NOT EXECUTED 621ee: 2f02 movel %d2,%sp@- <== NOT EXECUTED 621f0: 4eb9 0006 01c8 jsr 601c8 <== NOT EXECUTED 621f6: 508f addql #8,%sp <== NOT EXECUTED 621f8: 4a80 tstl %d0 <== NOT EXECUTED 621fa: 6612 bnes 6220e <== NOT EXECUTED 621fc: 202e ff9e movel %fp@(-98),%d0 <== NOT EXECUTED 62200: 0280 0000 f000 andil #61440,%d0 <== NOT EXECUTED 62206: 0c80 0000 2000 cmpil #8192,%d0 <== NOT EXECUTED 6220c: 6718 beqs 62226 <== NOT EXECUTED rtems_set_errno_and_return_minus_one(EBADF); if ((dp = opendir (_PATH_DEV)) == NULL) rtems_set_errno_and_return_minus_one(EBADF); 6220e: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 62214: 2040 moveal %d0,%a0 <== NOT EXECUTED 62216: 7009 moveq #9,%d0 <== NOT EXECUTED rval = name; break; } (void) closedir (dp); return 0; } 62218: 4cee 1c7c ff28 moveml %fp@(-216),%d2-%d6/%a2-%a4 <== NOT EXECUTED /* Must be a character device. */ if (fstat (fd, &sb) || !S_ISCHR (sb.st_mode)) rtems_set_errno_and_return_minus_one(EBADF); if ((dp = opendir (_PATH_DEV)) == NULL) rtems_set_errno_and_return_minus_one(EBADF); 6221e: 2080 movel %d0,%a0@ <== NOT EXECUTED rval = name; break; } (void) closedir (dp); return 0; } 62220: 4e5e unlk %fp <== NOT EXECUTED /* Must be a character device. */ if (fstat (fd, &sb) || !S_ISCHR (sb.st_mode)) rtems_set_errno_and_return_minus_one(EBADF); if ((dp = opendir (_PATH_DEV)) == NULL) rtems_set_errno_and_return_minus_one(EBADF); 62222: 70ff moveq #-1,%d0 <== NOT EXECUTED rval = name; break; } (void) closedir (dp); return 0; } 62224: 4e75 rts <== NOT EXECUTED /* Must be a character device. */ if (fstat (fd, &sb) || !S_ISCHR (sb.st_mode)) rtems_set_errno_and_return_minus_one(EBADF); if ((dp = opendir (_PATH_DEV)) == NULL) 62226: 4879 0008 3156 pea 83156 <== NOT EXECUTED 6222c: 4eb9 0006 1824 jsr 61824 <== NOT EXECUTED 62232: 588f addql #4,%sp <== NOT EXECUTED 62234: 2400 movel %d0,%d2 <== NOT EXECUTED 62236: 45f9 0006 1bd0 lea 61bd0 ,%a2 <== NOT EXECUTED 6223c: 67d0 beqs 6220e <== 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); 6223e: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED if (stat (name, &dsb) || sb.st_dev != dsb.st_dev || 62242: 280e movel %fp,%d4 <== 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); 62244: 5a83 addql #5,%d3 <== NOT EXECUTED 62246: 49f9 0007 50a0 lea 750a0 ,%a4 <== NOT EXECUTED if (stat (name, &dsb) || sb.st_dev != dsb.st_dev || 6224c: 0684 ffff ff48 addil #-184,%d4 <== NOT EXECUTED 62252: 47f9 0004 78e4 lea 478e4 ,%a3 <== 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 ;) 62258: 2f02 movel %d2,%sp@- <== NOT EXECUTED 6225a: 4e92 jsr %a2@ <== NOT EXECUTED 6225c: 588f addql #4,%sp <== NOT EXECUTED 6225e: 2040 moveal %d0,%a0 <== NOT EXECUTED 62260: 4a80 tstl %d0 <== NOT EXECUTED 62262: 6742 beqs 622a6 <== NOT EXECUTED { if (dirp->d_ino != sb.st_ino) 62264: 202e ff9a movel %fp@(-102),%d0 <== NOT EXECUTED 62268: b090 cmpl %a0@,%d0 <== NOT EXECUTED 6226a: 66ec bnes 62258 <== NOT EXECUTED continue; strcpy (name + sizeof (_PATH_DEV) - 1, dirp->d_name); 6226c: 4868 000c pea %a0@(12) <== NOT EXECUTED 62270: 2f03 movel %d3,%sp@- <== NOT EXECUTED 62272: 4e94 jsr %a4@ <== NOT EXECUTED if (stat (name, &dsb) || sb.st_dev != dsb.st_dev || 62274: 2f04 movel %d4,%sp@- <== NOT EXECUTED 62276: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 6227a: 4e93 jsr %a3@ <== NOT EXECUTED 6227c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 62282: 4a80 tstl %d0 <== NOT EXECUTED 62284: 66d2 bnes 62258 <== NOT EXECUTED 62286: 202e ff92 movel %fp@(-110),%d0 <== NOT EXECUTED 6228a: 222e ff96 movel %fp@(-106),%d1 <== NOT EXECUTED 6228e: 2a2e ff48 movel %fp@(-184),%d5 <== NOT EXECUTED 62292: 2c2e ff4c movel %fp@(-180),%d6 <== NOT EXECUTED 62296: 9286 subl %d6,%d1 <== NOT EXECUTED 62298: 9185 subxl %d5,%d0 <== NOT EXECUTED 6229a: 66bc bnes 62258 <== NOT EXECUTED 6229c: 2c2e ff50 movel %fp@(-176),%d6 <== NOT EXECUTED 622a0: bcae ff9a cmpl %fp@(-102),%d6 <== NOT EXECUTED 622a4: 66b2 bnes 62258 <== NOT EXECUTED sb.st_ino != dsb.st_ino) continue; rval = name; break; } (void) closedir (dp); 622a6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 622a8: 4eb9 0006 da44 jsr 6da44 <== NOT EXECUTED 622ae: 588f addql #4,%sp <== NOT EXECUTED return 0; } 622b0: 4cee 1c7c ff28 moveml %fp@(-216),%d2-%d6/%a2-%a4 <== NOT EXECUTED 622b6: 4e5e unlk %fp <== NOT EXECUTED sb.st_ino != dsb.st_ino) continue; rval = name; break; } (void) closedir (dp); 622b8: 4280 clrl %d0 <== NOT EXECUTED return 0; } 622ba: 4e75 rts 000457c4 : useconds_t ualarm( useconds_t useconds, useconds_t interval ) { 457c4: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 457c8: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 457cc: 282e 0008 movel %fp@(8),%d4 <== NOT EXECUTED /* * Initialize the timer used to implement alarm(). */ if ( !the_timer->routine ) { 457d0: 4ab9 0005 bdd8 tstl 5bdd8 <_POSIX_signals_Ualarm_timer+0x1c> <== NOT EXECUTED 457d6: 6700 00d8 beqw 458b0 <== NOT EXECUTED _Watchdog_Initialize( the_timer, _POSIX_signals_Ualarm_TSR, 0, NULL ); } else { switch ( _Watchdog_Remove( the_timer ) ) { 457da: 4879 0005 bdbc pea 5bdbc <_POSIX_signals_Ualarm_timer> <== NOT EXECUTED 457e0: 4eb9 0004 9874 jsr 49874 <_Watchdog_Remove> <== NOT EXECUTED 457e6: 588f addql #4,%sp <== NOT EXECUTED 457e8: 5580 subql #2,%d0 <== NOT EXECUTED 457ea: 7201 moveq #1,%d1 <== NOT EXECUTED 457ec: b280 cmpl %d0,%d1 <== NOT EXECUTED 457ee: 6412 bccs 45802 <== NOT EXECUTED 457f0: 4283 clrl %d3 <== 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 ) { 457f2: 4a84 tstl %d4 <== NOT EXECUTED 457f4: 665a bnes 45850 <== NOT EXECUTED _Watchdog_Insert_ticks( the_timer, _Timespec_To_ticks( &tp ) ); } return remaining; } 457f6: 2003 movel %d3,%d0 <== NOT EXECUTED 457f8: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED 457fe: 4e5e unlk %fp <== NOT EXECUTED 45800: 4e75 rts <== 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); 45802: 2039 0005 bdd0 movel 5bdd0 <_POSIX_signals_Ualarm_timer+0x14>,%d0 <== NOT EXECUTED 45808: d0b9 0005 bdc8 addl 5bdc8 <_POSIX_signals_Ualarm_timer+0xc>,%d0 <== NOT EXECUTED /* remaining is now in ticks */ _Timespec_From_ticks( ticks, &tp ); 4580e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 45812: 90b9 0005 bdd4 subl 5bdd4 <_POSIX_signals_Ualarm_timer+0x18>,%d0 <== NOT EXECUTED 45818: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4581a: 4eb9 0004 9318 jsr 49318 <_Timespec_From_ticks> <== NOT EXECUTED remaining = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND; 45820: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 45824: 2602 movel %d2,%d3 <== NOT EXECUTED 45826: 2202 movel %d2,%d1 <== NOT EXECUTED 45828: e78b lsll #3,%d3 <== NOT EXECUTED 4582a: e189 lsll #8,%d1 <== NOT EXECUTED 4582c: 9283 subl %d3,%d1 <== NOT EXECUTED 4582e: 2001 movel %d1,%d0 <== NOT EXECUTED 45830: ed88 lsll #6,%d0 <== NOT EXECUTED 45832: 9081 subl %d1,%d0 <== NOT EXECUTED remaining += tp.tv_nsec / 1000; 45834: 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; 45838: d082 addl %d2,%d0 <== NOT EXECUTED remaining += tp.tv_nsec / 1000; 4583a: 263c 0000 03e8 movel #1000,%d3 <== NOT EXECUTED 45840: 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; 45844: ed88 lsll #6,%d0 <== NOT EXECUTED remaining += tp.tv_nsec / 1000; 45846: 2601 movel %d1,%d3 <== NOT EXECUTED 45848: d680 addl %d0,%d3 <== NOT EXECUTED 4584a: 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 ) { 4584c: 4a84 tstl %d4 <== NOT EXECUTED 4584e: 67a6 beqs 457f6 <== 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 ); 45850: 45f9 0004 93ac lea 493ac <_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; 45856: 203c 000f 4240 movel #1000000,%d0 <== NOT EXECUTED 4585c: 4c40 4001 remul %d0,%d1,%d4 <== NOT EXECUTED 45860: 4c40 4004 remul %d0,%d4,%d4 <== NOT EXECUTED tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; 45864: 2401 movel %d1,%d2 <== NOT EXECUTED 45866: 2001 movel %d1,%d0 <== NOT EXECUTED 45868: e58a lsll #2,%d2 <== NOT EXECUTED 4586a: ef88 lsll #7,%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; 4586c: 2d44 fff8 movel %d4,%fp@(-8) <== NOT EXECUTED tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; 45870: 9082 subl %d2,%d0 <== NOT EXECUTED ticks = _Timespec_To_ticks( &tp ); 45872: 240e movel %fp,%d2 <== NOT EXECUTED 45874: 5182 subql #8,%d2 <== NOT EXECUTED 45876: 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; 45878: d081 addl %d1,%d0 <== NOT EXECUTED 4587a: e788 lsll #3,%d0 <== NOT EXECUTED 4587c: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED ticks = _Timespec_To_ticks( &tp ); 45880: 4e92 jsr %a2@ <== NOT EXECUTED if ( ticks == 0 ) ticks = 1; _Watchdog_Insert_ticks( the_timer, _Timespec_To_ticks( &tp ) ); 45882: 2f02 movel %d2,%sp@- <== NOT EXECUTED 45884: 4e92 jsr %a2@ <== NOT EXECUTED ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 45886: 4879 0005 bdbc pea 5bdbc <_POSIX_signals_Ualarm_timer> <== NOT EXECUTED 4588c: 4879 0005 bf8c pea 5bf8c <_Watchdog_Ticks_chain> <== NOT EXECUTED Watchdog_Control *the_watchdog, Watchdog_Interval units ) { the_watchdog->initial = units; 45892: 23c0 0005 bdc8 movel %d0,5bdc8 <_POSIX_signals_Ualarm_timer+0xc> <== NOT EXECUTED _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); 45898: 4eb9 0004 972c jsr 4972c <_Watchdog_Insert> <== NOT EXECUTED } return remaining; } 4589e: 2003 movel %d3,%d0 <== NOT EXECUTED 458a0: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 458a6: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED 458ac: 4e5e unlk %fp <== NOT EXECUTED 458ae: 4e75 rts <== NOT EXECUTED Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; 458b0: 42b9 0005 bdc4 clrl 5bdc4 <_POSIX_signals_Ualarm_timer+0x8> <== NOT EXECUTED the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; 458b6: 4283 clrl %d3 <== NOT EXECUTED Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; 458b8: 203c 0004 58da movel #284890,%d0 <== NOT EXECUTED 458be: 23c0 0005 bdd8 movel %d0,5bdd8 <_POSIX_signals_Ualarm_timer+0x1c> <== NOT EXECUTED the_watchdog->id = id; 458c4: 42b9 0005 bddc clrl 5bddc <_POSIX_signals_Ualarm_timer+0x20> <== NOT EXECUTED the_watchdog->user_data = user_data; 458ca: 42b9 0005 bde0 clrl 5bde0 <_POSIX_signals_Ualarm_timer+0x24> <== 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 ) { 458d0: 4a84 tstl %d4 <== NOT EXECUTED 458d2: 6700 ff22 beqw 457f6 <== NOT EXECUTED 458d6: 6000 ff78 braw 45850 <== NOT EXECUTED 000622f4 : mode_t cmask ) { mode_t old_mask; old_mask = rtems_filesystem_umask; 622f4: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 622fa: 2028 0024 movel %a0@(36),%d0 <== NOT EXECUTED #include mode_t umask( mode_t cmask ) { 622fe: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED mode_t old_mask; old_mask = rtems_filesystem_umask; rtems_filesystem_umask = cmask; 62302: 216e 0008 0024 movel %fp@(8),%a0@(36) <== NOT EXECUTED return old_mask; } 62308: 4e5e unlk %fp <== NOT EXECUTED 6230a: 4e75 rts 00046724 : */ int uname( struct utsname *name ) { 46724: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 46728: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4672a: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 4672e: 2f0a movel %a2,%sp@- <== NOT EXECUTED release = 5.3 version = Generic_101318-12 machine = sun4m */ if ( !name ) 46730: 4a8b tstl %a3 <== NOT EXECUTED 46732: 6768 beqs 4679c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); strcpy( name->sysname, "RTEMS" ); sprintf( name->nodename, "Node %" PRId16, _Objects_Local_node ); 46734: 4878 0001 pea 1 <== NOT EXECUTED */ if ( !name ) rtems_set_errno_and_return_minus_one( EFAULT ); strcpy( name->sysname, "RTEMS" ); 46738: 303c 5300 movew #21248,%d0 <== NOT EXECUTED 4673c: 3740 0004 movew %d0,%a3@(4) <== NOT EXECUTED sprintf( name->nodename, "Node %" PRId16, _Objects_Local_node ); 46740: 4879 0005 ac35 pea 5ac35 <== NOT EXECUTED 46746: 45f9 0005 0b90 lea 50b90 ,%a2 <== NOT EXECUTED 4674c: 486b 0020 pea %a3@(32) <== NOT EXECUTED */ if ( !name ) rtems_set_errno_and_return_minus_one( EFAULT ); strcpy( name->sysname, "RTEMS" ); 46750: 26bc 5254 454d movel #1381254477,%a3@ <== NOT EXECUTED sprintf( name->nodename, "Node %" PRId16, _Objects_Local_node ); 46756: 4e92 jsr %a2@ <== NOT EXECUTED strcpy( name->release, RTEMS_VERSION ); strcpy( name->version, "" ); sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME ); 46758: 4879 0005 ac3d pea 5ac3d <== NOT EXECUTED strcpy( name->sysname, "RTEMS" ); sprintf( name->nodename, "Node %" PRId16, _Objects_Local_node ); strcpy( name->release, RTEMS_VERSION ); 4675e: 41eb 0040 lea %a3@(64),%a0 <== NOT EXECUTED strcpy( name->version, "" ); sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME ); 46762: 4879 0005 ac49 pea 5ac49 <== NOT EXECUTED strcpy( name->sysname, "RTEMS" ); sprintf( name->nodename, "Node %" PRId16, _Objects_Local_node ); strcpy( name->release, RTEMS_VERSION ); 46768: 303c 3400 movew #13312,%d0 <== NOT EXECUTED 4676c: 3140 0004 movew %d0,%a0@(4) <== NOT EXECUTED strcpy( name->version, "" ); sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME ); 46770: 4879 0005 ac5b pea 5ac5b <== NOT EXECUTED sprintf( name->nodename, "Node %" PRId16, _Objects_Local_node ); strcpy( name->release, RTEMS_VERSION ); strcpy( name->version, "" ); 46776: 4200 clrb %d0 <== NOT EXECUTED 46778: 1740 0060 moveb %d0,%a3@(96) <== NOT EXECUTED sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME ); 4677c: 486b 0080 pea %a3@(128) <== NOT EXECUTED strcpy( name->sysname, "RTEMS" ); sprintf( name->nodename, "Node %" PRId16, _Objects_Local_node ); strcpy( name->release, RTEMS_VERSION ); 46780: 20bc 342e 392e movel #875444526,%a0@ <== NOT EXECUTED strcpy( name->version, "" ); sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME ); 46786: 4e92 jsr %a2@ <== NOT EXECUTED return 0; } 46788: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4678c: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED strcpy( name->release, RTEMS_VERSION ); strcpy( name->version, "" ); sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME ); 46790: dffc 0000 001c addal #28,%sp <== NOT EXECUTED return 0; } 46796: 4e5e unlk %fp <== NOT EXECUTED strcpy( name->release, RTEMS_VERSION ); strcpy( name->version, "" ); sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME ); 46798: 4280 clrl %d0 <== NOT EXECUTED return 0; } 4679a: 4e75 rts <== NOT EXECUTED version = Generic_101318-12 machine = sun4m */ if ( !name ) rtems_set_errno_and_return_minus_one( EFAULT ); 4679c: 4eb9 0004 f30c jsr 4f30c <__errno> <== NOT EXECUTED strcpy( name->version, "" ); sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME ); return 0; } 467a2: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 467a6: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED version = Generic_101318-12 machine = sun4m */ if ( !name ) rtems_set_errno_and_return_minus_one( EFAULT ); 467aa: 2040 moveal %d0,%a0 <== NOT EXECUTED 467ac: 700e moveq #14,%d0 <== NOT EXECUTED 467ae: 2080 movel %d0,%a0@ <== NOT EXECUTED strcpy( name->version, "" ); sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME ); return 0; } 467b0: 4e5e unlk %fp <== NOT EXECUTED version = Generic_101318-12 machine = sun4m */ if ( !name ) rtems_set_errno_and_return_minus_one( EFAULT ); 467b2: 70ff moveq #-1,%d0 <== NOT EXECUTED strcpy( name->version, "" ); sprintf( name->machine, "%s/%s", CPU_NAME, CPU_MODEL_NAME ); return 0; } 467b4: 4e75 rts <== NOT EXECUTED ... 0006230c : #include int unlink( const char *path ) { 6230c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 62310: 2f03 movel %d3,%sp@- <== NOT EXECUTED /* * Get the node to be unlinked. */ result = rtems_filesystem_evaluate_path( path, 0, &loc, false ); 62312: 260e movel %fp,%d3 <== NOT EXECUTED 62314: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED #include int unlink( const char *path ) { 6231a: 2f02 movel %d2,%sp@- <== NOT EXECUTED /* * Get the node to be unlinked. */ result = rtems_filesystem_evaluate_path( path, 0, &loc, false ); 6231c: 42a7 clrl %sp@- <== NOT EXECUTED 6231e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 62320: 42a7 clrl %sp@- <== NOT EXECUTED 62322: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 62326: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED if ( result != 0 ) 6232c: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 62332: 4a80 tstl %d0 <== NOT EXECUTED 62334: 6710 beqs 62346 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.ops->unlink_h)( &loc ); rtems_filesystem_freenode( &loc ); 62336: 74ff moveq #-1,%d2 <== NOT EXECUTED return result; } 62338: 2002 movel %d2,%d0 <== NOT EXECUTED 6233a: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 6233e: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 62342: 4e5e unlk %fp <== NOT EXECUTED 62344: 4e75 rts <== NOT EXECUTED result = rtems_filesystem_evaluate_path( path, 0, &loc, false ); if ( result != 0 ) return -1; result = rtems_filesystem_evaluate_parent(RTEMS_LIBIO_PERMS_WRITE, &loc ); 62346: 2f03 movel %d3,%sp@- <== NOT EXECUTED 62348: 4878 0002 pea 2 <== NOT EXECUTED 6234c: 4eb9 0004 5fe0 jsr 45fe0 <== NOT EXECUTED if (result != 0 && errno != ENOTSUP) { 62352: 508f addql #8,%sp <== NOT EXECUTED 62354: 4a80 tstl %d0 <== NOT EXECUTED 62356: 6654 bnes 623ac <== NOT EXECUTED rtems_filesystem_freenode( &loc ); return -1; } if ( !loc.ops->node_type_h ) { 62358: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED 6235c: 2069 0010 moveal %a1@(16),%a0 <== NOT EXECUTED 62360: 4a88 tstl %a0 <== NOT EXECUTED 62362: 6700 0084 beqw 623e8 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) { 62366: 2f03 movel %d3,%sp@- <== NOT EXECUTED 62368: 4e90 jsr %a0@ <== NOT EXECUTED 6236a: 588f addql #4,%sp <== NOT EXECUTED 6236c: 7201 moveq #1,%d1 <== NOT EXECUTED 6236e: b280 cmpl %d0,%d1 <== NOT EXECUTED 62370: 6700 00a2 beqw 62414 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( EISDIR ); } if ( !loc.ops->unlink_h ) { 62374: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED 62378: 2069 000c moveal %a1@(12),%a0 <== NOT EXECUTED 6237c: 4a88 tstl %a0 <== NOT EXECUTED 6237e: 6768 beqs 623e8 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.ops->unlink_h)( &loc ); 62380: 2f03 movel %d3,%sp@- <== NOT EXECUTED 62382: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 62384: 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 ); 62388: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 6238a: 588f addql #4,%sp <== NOT EXECUTED 6238c: 4a88 tstl %a0 <== NOT EXECUTED 6238e: 67a8 beqs 62338 <== NOT EXECUTED 62390: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 62394: 4a88 tstl %a0 <== NOT EXECUTED 62396: 67a0 beqs 62338 <== NOT EXECUTED 62398: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6239a: 4e90 jsr %a0@ <== NOT EXECUTED return result; } 6239c: 2002 movel %d2,%d0 <== NOT EXECUTED 6239e: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 623a2: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); } result = (*loc.ops->unlink_h)( &loc ); rtems_filesystem_freenode( &loc ); 623a6: 588f addql #4,%sp <== NOT EXECUTED return result; } 623a8: 4e5e unlk %fp <== NOT EXECUTED 623aa: 4e75 rts <== NOT EXECUTED result = rtems_filesystem_evaluate_path( path, 0, &loc, false ); if ( result != 0 ) return -1; result = rtems_filesystem_evaluate_parent(RTEMS_LIBIO_PERMS_WRITE, &loc ); if (result != 0 && errno != ENOTSUP) { 623ac: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 623b2: 2040 moveal %d0,%a0 <== NOT EXECUTED 623b4: 203c 0000 0086 movel #134,%d0 <== NOT EXECUTED 623ba: b090 cmpl %a0@,%d0 <== NOT EXECUTED 623bc: 679a beqs 62358 <== NOT EXECUTED rtems_filesystem_freenode( &loc ); 623be: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 623c2: 4a88 tstl %a0 <== NOT EXECUTED 623c4: 6700 ff70 beqw 62336 <== NOT EXECUTED 623c8: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 623cc: 4a88 tstl %a0 <== NOT EXECUTED 623ce: 6700 ff66 beqw 62336 <== NOT EXECUTED 623d2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 623d4: 4e90 jsr %a0@ <== NOT EXECUTED 623d6: 74ff moveq #-1,%d2 <== NOT EXECUTED result = (*loc.ops->unlink_h)( &loc ); rtems_filesystem_freenode( &loc ); return result; } 623d8: 2002 movel %d2,%d0 <== NOT EXECUTED 623da: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 623de: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED if ( result != 0 ) return -1; result = rtems_filesystem_evaluate_parent(RTEMS_LIBIO_PERMS_WRITE, &loc ); if (result != 0 && errno != ENOTSUP) { rtems_filesystem_freenode( &loc ); 623e2: 588f addql #4,%sp <== NOT EXECUTED result = (*loc.ops->unlink_h)( &loc ); rtems_filesystem_freenode( &loc ); return result; } 623e4: 4e5e unlk %fp <== NOT EXECUTED 623e6: 4e75 rts <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( EISDIR ); } if ( !loc.ops->unlink_h ) { rtems_filesystem_freenode( &loc ); 623e8: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 623ec: 4a88 tstl %a0 <== NOT EXECUTED 623ee: 6706 beqs 623f6 <== NOT EXECUTED 623f0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 623f2: 4e90 jsr %a0@ <== NOT EXECUTED 623f4: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 623f6: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 623fc: 74ff moveq #-1,%d2 <== NOT EXECUTED 623fe: 2040 moveal %d0,%a0 <== NOT EXECUTED result = (*loc.ops->unlink_h)( &loc ); rtems_filesystem_freenode( &loc ); return result; } 62400: 2002 movel %d2,%d0 <== NOT EXECUTED 62402: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 62406: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 6240a: 4e5e unlk %fp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EISDIR ); } if ( !loc.ops->unlink_h ) { rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); 6240c: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED result = (*loc.ops->unlink_h)( &loc ); rtems_filesystem_freenode( &loc ); return result; } 62412: 4e75 rts <== NOT EXECUTED rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( ENOTSUP ); } if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) { rtems_filesystem_freenode( &loc ); 62414: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 62418: 4a88 tstl %a0 <== NOT EXECUTED 6241a: 670e beqs 6242a <== NOT EXECUTED 6241c: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 62420: 4a88 tstl %a0 <== NOT EXECUTED 62422: 6706 beqs 6242a <== NOT EXECUTED 62424: 2f03 movel %d3,%sp@- <== NOT EXECUTED 62426: 4e90 jsr %a0@ <== NOT EXECUTED 62428: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EISDIR ); 6242a: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 62430: 2040 moveal %d0,%a0 <== NOT EXECUTED 62432: 7015 moveq #21,%d0 <== NOT EXECUTED 62434: 74ff moveq #-1,%d2 <== NOT EXECUTED 62436: 2080 movel %d0,%a0@ <== NOT EXECUTED result = (*loc.ops->unlink_h)( &loc ); rtems_filesystem_freenode( &loc ); return result; } 62438: 2002 movel %d2,%d0 <== NOT EXECUTED 6243a: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 6243e: 262e ffec movel %fp@(-20),%d3 <== NOT EXECUTED 62442: 4e5e unlk %fp <== NOT EXECUTED 62444: 4e75 rts 000624ac : */ int unmount( const char *path ) { 624ac: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 624b0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 624b2: 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 ) ) 624b4: 240e movel %fp,%d2 <== NOT EXECUTED 624b6: 4878 0001 pea 1 <== NOT EXECUTED 624ba: 0682 ffff fff0 addil #-16,%d2 <== NOT EXECUTED 624c0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 624c2: 42a7 clrl %sp@- <== NOT EXECUTED 624c4: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 624c8: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED 624ce: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 624d4: 4a80 tstl %d0 <== NOT EXECUTED 624d6: 6600 00ae bnew 62586 <== NOT EXECUTED return -1; mt_entry = loc.mt_entry; 624da: 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) ){ 624de: 202e fff0 movel %fp@(-16),%d0 <== NOT EXECUTED 624e2: b0aa 0018 cmpl %a2@(24),%d0 <== NOT EXECUTED 624e6: 6600 00ac bnew 62594 <== NOT EXECUTED /* * Free the loc node and just use the nodes from the mt_entry . */ rtems_filesystem_freenode( &loc ); 624ea: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 624ee: 4a88 tstl %a0 <== NOT EXECUTED 624f0: 670e beqs 62500 <== NOT EXECUTED 624f2: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 624f6: 4a88 tstl %a0 <== NOT EXECUTED 624f8: 6706 beqs 62500 <== NOT EXECUTED 624fa: 2f02 movel %d2,%sp@- <== NOT EXECUTED 624fc: 4e90 jsr %a0@ <== NOT EXECUTED 624fe: 588f addql #4,%sp <== NOT EXECUTED /* * Verify Unmount is supported by both filesystems. */ if ( !fs_mount_loc->ops->unmount_h ) 62500: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 62504: 4aa8 0028 tstl %a0@(40) <== NOT EXECUTED 62508: 6700 0122 beqw 6262c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( !fs_root_loc->ops->fsunmount_me_h ) 6250c: 206a 0020 moveal %a2@(32),%a0 <== NOT EXECUTED 62510: 4aa8 002c tstl %a0@(44) <== NOT EXECUTED 62514: 6700 0116 beqw 6262c <== 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 ) 62518: 2079 0008 6180 moveal 86180 ,%a0 <== NOT EXECUTED 6251e: b5e8 0010 cmpal %a0@(16),%a2 <== NOT EXECUTED 62522: 6726 beqs 6254a <== NOT EXECUTED /* * Search the mount table for any mount entries referencing this * mount entry. */ for ( the_node = rtems_filesystem_mount_table_control.first; 62524: 2079 0009 b354 moveal 9b354 ,%a0 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 6252a: 223c 0009 b358 movel #635736,%d1 <== NOT EXECUTED !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node ); 62530: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 62532: 6730 beqs 62564 <== NOT EXECUTED 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 ) { 62534: 202a 0024 movel %a2@(36),%d0 <== NOT EXECUTED 62538: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 6253c: 670c beqs 6254a <== 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 ) { 6253e: 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 ); 62540: b1c1 cmpal %d1,%a0 <== NOT EXECUTED 62542: 6720 beqs 62564 <== NOT EXECUTED 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 ) { 62544: b0a8 0014 cmpl %a0@(20),%d0 <== NOT EXECUTED 62548: 66f4 bnes 6253e <== 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 ); 6254a: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED rtems_filesystem_freenode( fs_mount_loc ); free( mt_entry ); return 0; } 62550: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 62554: 246e ffec moveal %fp@(-20),%a2 <== 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 ); 62558: 2040 moveal %d0,%a0 <== NOT EXECUTED 6255a: 7010 moveq #16,%d0 <== NOT EXECUTED 6255c: 2080 movel %d0,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( fs_mount_loc ); free( mt_entry ); return 0; } 6255e: 4e5e unlk %fp <== 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 ); 62560: 70ff moveq #-1,%d0 <== NOT EXECUTED rtems_filesystem_freenode( fs_mount_loc ); free( mt_entry ); return 0; } 62562: 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 ) 62564: 2f0a movel %a2,%sp@- <== NOT EXECUTED 62566: 4eb9 0004 64ac jsr 464ac <== NOT EXECUTED 6256c: 588f addql #4,%sp <== NOT EXECUTED 6256e: 7201 moveq #1,%d1 <== NOT EXECUTED 62570: b280 cmpl %d0,%d1 <== NOT EXECUTED 62572: 67d6 beqs 6254a <== 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 ) 62574: 226a 0010 moveal %a2@(16),%a1 <== NOT EXECUTED 62578: 2f0a movel %a2,%sp@- <== NOT EXECUTED 6257a: 2069 0028 moveal %a1@(40),%a0 <== NOT EXECUTED 6257e: 4e90 jsr %a0@ <== NOT EXECUTED 62580: 588f addql #4,%sp <== NOT EXECUTED 62582: 4a80 tstl %d0 <== NOT EXECUTED 62584: 673e beqs 625c4 <== NOT EXECUTED rtems_filesystem_freenode( fs_mount_loc ); free( mt_entry ); return 0; } 62586: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 6258a: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED 6258e: 4e5e unlk %fp <== NOT EXECUTED */ rtems_filesystem_freenode( fs_mount_loc ); free( mt_entry ); return 0; 62590: 70ff moveq #-1,%d0 <== NOT EXECUTED } 62592: 4e75 rts <== NOT EXECUTED /* * Verify this is the root node for the file system to be unmounted. */ if ( !rtems_filesystem_nodes_equal( fs_root_loc, &loc) ){ rtems_filesystem_freenode( &loc ); 62594: 206e fff8 moveal %fp@(-8),%a0 <== NOT EXECUTED 62598: 4a88 tstl %a0 <== NOT EXECUTED 6259a: 670e beqs 625aa <== NOT EXECUTED 6259c: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 625a0: 4a88 tstl %a0 <== NOT EXECUTED 625a2: 6706 beqs 625aa <== NOT EXECUTED 625a4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 625a6: 4e90 jsr %a0@ <== NOT EXECUTED 625a8: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 625aa: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED rtems_filesystem_freenode( fs_mount_loc ); free( mt_entry ); return 0; } 625b0: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 625b4: 246e ffec moveal %fp@(-20),%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) ){ rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( EACCES ); 625b8: 2040 moveal %d0,%a0 <== NOT EXECUTED 625ba: 720d moveq #13,%d1 <== NOT EXECUTED rtems_filesystem_freenode( fs_mount_loc ); free( mt_entry ); return 0; } 625bc: 4e5e unlk %fp <== NOT EXECUTED * Verify this is the root node for the file system to be unmounted. */ if ( !rtems_filesystem_nodes_equal( fs_root_loc, &loc) ){ rtems_filesystem_freenode( &loc ); rtems_set_errno_and_return_minus_one( EACCES ); 625be: 70ff moveq #-1,%d0 <== NOT EXECUTED 625c0: 2081 movel %d1,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( fs_mount_loc ); free( mt_entry ); return 0; } 625c2: 4e75 rts <== 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){ 625c4: 226a 0020 moveal %a2@(32),%a1 <== NOT EXECUTED 625c8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 625ca: 2069 002c moveal %a1@(44),%a0 <== NOT EXECUTED 625ce: 4e90 jsr %a0@ <== NOT EXECUTED 625d0: 588f addql #4,%sp <== NOT EXECUTED 625d2: 4a80 tstl %d0 <== NOT EXECUTED 625d4: 663a bnes 62610 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void rtems_chain_extract( rtems_chain_node *the_node ) { _Chain_Extract( the_node ); 625d6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 625d8: 4eb9 0006 3b70 jsr 63b70 <_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 ); 625de: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 625e2: 588f addql #4,%sp <== NOT EXECUTED 625e4: 4a88 tstl %a0 <== NOT EXECUTED 625e6: 6710 beqs 625f8 <== NOT EXECUTED 625e8: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 625ec: 4a88 tstl %a0 <== NOT EXECUTED 625ee: 6708 beqs 625f8 <== NOT EXECUTED 625f0: 486a 0008 pea %a2@(8) <== NOT EXECUTED 625f4: 4e90 jsr %a0@ <== NOT EXECUTED 625f6: 588f addql #4,%sp <== NOT EXECUTED free( mt_entry ); 625f8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 625fa: 4eb9 0004 61e4 jsr 461e4 <== NOT EXECUTED return 0; } 62600: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 62604: 246e ffec moveal %fp@(-20),%a2 <== 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 ); free( mt_entry ); 62608: 588f addql #4,%sp <== NOT EXECUTED return 0; } 6260a: 4e5e unlk %fp <== 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 ); free( mt_entry ); 6260c: 4280 clrl %d0 <== NOT EXECUTED return 0; } 6260e: 4e75 rts <== NOT EXECUTED * This was response was questionable but the best we could * come up with. */ if ((fs_root_loc->ops->fsunmount_me_h )( mt_entry ) != 0){ if (( fs_mount_loc->ops->mount_h )( mt_entry ) != 0 ) 62610: 226a 0010 moveal %a2@(16),%a1 <== NOT EXECUTED 62614: 2f0a movel %a2,%sp@- <== NOT EXECUTED 62616: 2069 0020 moveal %a1@(32),%a0 <== NOT EXECUTED 6261a: 4e90 jsr %a0@ <== NOT EXECUTED 6261c: 588f addql #4,%sp <== NOT EXECUTED 6261e: 4a80 tstl %d0 <== NOT EXECUTED 62620: 6700 ff64 beqw 62586 <== NOT EXECUTED rtems_fatal_error_occurred( 0 ); 62624: 42a7 clrl %sp@- <== NOT EXECUTED 62626: 4eb9 0004 aa30 jsr 4aa30 <== NOT EXECUTED if ( !fs_mount_loc->ops->unmount_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( !fs_root_loc->ops->fsunmount_me_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 6262c: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED rtems_filesystem_freenode( fs_mount_loc ); free( mt_entry ); return 0; } 62632: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 62636: 246e ffec moveal %fp@(-20),%a2 <== NOT EXECUTED if ( !fs_mount_loc->ops->unmount_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( !fs_root_loc->ops->fsunmount_me_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 6263a: 2040 moveal %d0,%a0 <== NOT EXECUTED rtems_filesystem_freenode( fs_mount_loc ); free( mt_entry ); return 0; } 6263c: 4e5e unlk %fp <== NOT EXECUTED if ( !fs_mount_loc->ops->unmount_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); if ( !fs_root_loc->ops->fsunmount_me_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 6263e: 70ff moveq #-1,%d0 <== NOT EXECUTED 62640: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED rtems_filesystem_freenode( fs_mount_loc ); free( mt_entry ); return 0; } 62646: 4e75 rts 0004a734 : int usleep( useconds_t useconds ) { 4a734: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED 4a738: 2f03 movel %d3,%sp@- <== NOT EXECUTED struct timespec tp; struct timespec tm; unsigned remaining; tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; 4a73a: 202e 0008 movel %fp@(8),%d0 <== NOT EXECUTED int usleep( useconds_t useconds ) { 4a73e: 2f02 movel %d2,%sp@- <== NOT EXECUTED struct timespec tp; struct timespec tm; unsigned remaining; tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND; 4a740: 243c 000f 4240 movel #1000000,%d2 <== NOT EXECUTED 4a746: 4c42 0001 remul %d2,%d1,%d0 <== NOT EXECUTED 4a74a: 4c42 0000 remul %d2,%d0,%d0 <== NOT EXECUTED 4a74e: 2d40 fff8 movel %d0,%fp@(-8) <== NOT EXECUTED tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000; 4a752: 2401 movel %d1,%d2 <== NOT EXECUTED 4a754: 2001 movel %d1,%d0 <== NOT EXECUTED 4a756: e58a lsll #2,%d2 <== NOT EXECUTED 4a758: ef88 lsll #7,%d0 <== NOT EXECUTED 4a75a: 9082 subl %d2,%d0 <== NOT EXECUTED nanosleep( &tp, &tm ); 4a75c: 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; 4a760: d081 addl %d1,%d0 <== NOT EXECUTED 4a762: e788 lsll #3,%d0 <== NOT EXECUTED 4a764: 2d40 fffc movel %d0,%fp@(-4) <== NOT EXECUTED nanosleep( &tp, &tm ); remaining = tm.tv_sec * TOD_MICROSECONDS_PER_SECOND; 4a768: 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 ); 4a76e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4a772: 4eb9 0005 2850 jsr 52850 <== NOT EXECUTED remaining = tm.tv_sec * TOD_MICROSECONDS_PER_SECOND; 4a778: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 4a77c: 2002 movel %d2,%d0 <== NOT EXECUTED 4a77e: 2202 movel %d2,%d1 <== NOT EXECUTED 4a780: e788 lsll #3,%d0 <== NOT EXECUTED 4a782: e189 lsll #8,%d1 <== NOT EXECUTED 4a784: 9280 subl %d0,%d1 <== NOT EXECUTED 4a786: 2001 movel %d1,%d0 <== NOT EXECUTED 4a788: ed88 lsll #6,%d0 <== NOT EXECUTED 4a78a: 9081 subl %d1,%d0 <== NOT EXECUTED 4a78c: 222e fff4 movel %fp@(-12),%d1 <== NOT EXECUTED 4a790: d082 addl %d2,%d0 <== NOT EXECUTED 4a792: 4c43 1801 remsl %d3,%d1,%d1 <== NOT EXECUTED remaining += tm.tv_nsec / 1000; return remaining; /* seconds remaining */ } 4a796: 242e ffe8 movel %fp@(-24),%d2 <== NOT EXECUTED 4a79a: 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; 4a79e: ed88 lsll #6,%d0 <== NOT EXECUTED remaining += tm.tv_nsec / 1000; return remaining; /* seconds remaining */ } 4a7a0: 4e5e unlk %fp <== NOT EXECUTED 4a7a2: d081 addl %d1,%d0 <== NOT EXECUTED 4a7a4: 4e75 rts <== NOT EXECUTED ... 00062648 : int utime( const char *path, const struct utimbuf *times ) { 62648: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 6264c: 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 ) ) 62650: 4878 0001 pea 1 <== NOT EXECUTED int utime( const char *path, const struct utimbuf *times ) { 62654: 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 ) ) 62658: 260e movel %fp,%d3 <== NOT EXECUTED 6265a: 0683 ffff fff0 addil #-16,%d3 <== NOT EXECUTED 62660: 2f03 movel %d3,%sp@- <== NOT EXECUTED 62662: 42a7 clrl %sp@- <== NOT EXECUTED 62664: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 62668: 4eb9 0004 60a0 jsr 460a0 <== NOT EXECUTED 6266e: dffc 0000 0010 addal #16,%sp <== NOT EXECUTED 62674: 4a80 tstl %d0 <== NOT EXECUTED 62676: 665c bnes 626d4 <== NOT EXECUTED return -1; if ( !temp_loc.ops->utime_h ){ 62678: 226e fff8 moveal %fp@(-8),%a1 <== NOT EXECUTED 6267c: 2069 0030 moveal %a1@(48),%a0 <== NOT EXECUTED 62680: 4a88 tstl %a0 <== NOT EXECUTED 62682: 6734 beqs 626b8 <== NOT EXECUTED 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 ); 62684: 2f2a 0004 movel %a2@(4),%sp@- <== NOT EXECUTED 62688: 2f12 movel %a2@,%sp@- <== NOT EXECUTED 6268a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 6268c: 4e90 jsr %a0@ <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 6268e: 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 ); 62692: 2400 movel %d0,%d2 <== NOT EXECUTED rtems_filesystem_freenode( &temp_loc ); 62694: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 6269a: 4a88 tstl %a0 <== NOT EXECUTED 6269c: 670e beqs 626ac <== NOT EXECUTED 6269e: 2068 001c moveal %a0@(28),%a0 <== NOT EXECUTED 626a2: 4a88 tstl %a0 <== NOT EXECUTED 626a4: 6706 beqs 626ac <== NOT EXECUTED 626a6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 626a8: 4e90 jsr %a0@ <== NOT EXECUTED 626aa: 588f addql #4,%sp <== NOT EXECUTED return result; } 626ac: 2002 movel %d2,%d0 <== NOT EXECUTED 626ae: 4cee 040c ffe4 moveml %fp@(-28),%d2-%d3/%a2 <== NOT EXECUTED 626b4: 4e5e unlk %fp <== NOT EXECUTED 626b6: 4e75 rts <== NOT EXECUTED if ( rtems_filesystem_evaluate_path( path, 0x00, &temp_loc, true ) ) return -1; if ( !temp_loc.ops->utime_h ){ rtems_filesystem_freenode( &temp_loc ); 626b8: 2069 001c moveal %a1@(28),%a0 <== NOT EXECUTED 626bc: 4a88 tstl %a0 <== NOT EXECUTED 626be: 6706 beqs 626c6 <== NOT EXECUTED 626c0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 626c2: 4e90 jsr %a0@ <== NOT EXECUTED 626c4: 588f addql #4,%sp <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); 626c6: 4eb9 0007 0580 jsr 70580 <__errno> <== NOT EXECUTED 626cc: 2040 moveal %d0,%a0 <== NOT EXECUTED 626ce: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 626d4: 74ff moveq #-1,%d2 <== NOT EXECUTED result = (*temp_loc.ops->utime_h)( &temp_loc, times->actime, times->modtime ); rtems_filesystem_freenode( &temp_loc ); return result; } 626d6: 2002 movel %d2,%d0 <== NOT EXECUTED 626d8: 4cee 040c ffe4 moveml %fp@(-28),%d2-%d3/%a2 <== NOT EXECUTED 626de: 4e5e unlk %fp <== NOT EXECUTED 626e0: 4e75 rts <== NOT EXECUTED ... 00042ff4 : */ void vprintk( const char *fmt, va_list ap ) { 42ff4: 4e56 ffc4 linkw %fp,#-60 <== NOT EXECUTED 42ff8: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 42ffc: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED 43000: 286e 000c moveal %fp@(12),%a4 <== NOT EXECUTED char c, *str; int lflag, base, sign, width, lead, minus; for (; *fmt != '\0'; fmt++) { 43004: 1013 moveb %a3@,%d0 <== NOT EXECUTED 43006: 6700 00ac beqw 430b4 <== NOT EXECUTED 4300a: 4bee ffec lea %fp@(-20),%a5 <== NOT EXECUTED base = 0; sign = 0; width = 0; minus = 0; lead = ' '; if (*fmt == '%') { 4300e: 49c0 extbl %d0 <== NOT EXECUTED 43010: 7225 moveq #37,%d1 <== NOT EXECUTED 43012: b280 cmpl %d0,%d1 <== NOT EXECUTED 43014: 6600 02fa bnew 43310 <== NOT EXECUTED fmt++; 43018: 43eb 0001 lea %a3@(1),%a1 <== NOT EXECUTED if (*fmt == '0' ) { 4301c: 1611 moveb %a1@,%d3 <== NOT EXECUTED 4301e: 1403 moveb %d3,%d2 <== NOT EXECUTED 43020: 49c2 extbl %d2 <== NOT EXECUTED 43022: 7030 moveq #48,%d0 <== NOT EXECUTED 43024: b082 cmpl %d2,%d0 <== NOT EXECUTED 43026: 6700 0332 beqw 4335a <== NOT EXECUTED 4302a: 7e20 moveq #32,%d7 <== NOT EXECUTED lead = '0'; fmt++; } if (*fmt == '-' ) { 4302c: 722d moveq #45,%d1 <== NOT EXECUTED 4302e: b282 cmpl %d2,%d1 <== NOT EXECUTED 43030: 6700 02f6 beqw 43328 <== NOT EXECUTED minus = 1; fmt++; } while (*fmt >= '0' && *fmt <= '9' ) { 43034: 2003 movel %d3,%d0 <== NOT EXECUTED 43036: 0680 ffff ffd0 addil #-48,%d0 <== NOT EXECUTED fmt++; if (*fmt == '0' ) { lead = '0'; fmt++; } if (*fmt == '-' ) { 4303c: 4286 clrl %d6 <== NOT EXECUTED minus = 1; fmt++; } while (*fmt >= '0' && *fmt <= '9' ) { 4303e: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 43044: 7209 moveq #9,%d1 <== NOT EXECUTED 43046: b280 cmpl %d0,%d1 <== NOT EXECUTED 43048: 6500 02fe bcsw 43348 <== NOT EXECUTED 4304c: 4284 clrl %d4 <== NOT EXECUTED width *= 10; width += (*fmt - '0'); 4304e: 2004 movel %d4,%d0 <== NOT EXECUTED 43050: e788 lsll #3,%d0 <== NOT EXECUTED 43052: 2440 moveal %d0,%a2 <== NOT EXECUTED fmt++; 43054: 5289 addql #1,%a1 <== NOT EXECUTED } if (*fmt == '-' ) { minus = 1; fmt++; } while (*fmt >= '0' && *fmt <= '9' ) { 43056: 1611 moveb %a1@,%d3 <== NOT EXECUTED width *= 10; width += (*fmt - '0'); 43058: 41f2 4a00 lea %a2@(00000000,%d4:l:2),%a0 <== NOT EXECUTED 4305c: 41f0 28d0 lea %a0@(ffffffd0,%d2:l),%a0 <== NOT EXECUTED } if (*fmt == '-' ) { minus = 1; fmt++; } while (*fmt >= '0' && *fmt <= '9' ) { 43060: 2203 movel %d3,%d1 <== NOT EXECUTED 43062: 0681 ffff ffd0 addil #-48,%d1 <== NOT EXECUTED 43068: 1403 moveb %d3,%d2 <== NOT EXECUTED width *= 10; width += (*fmt - '0'); 4306a: 2808 movel %a0,%d4 <== NOT EXECUTED 4306c: 49c2 extbl %d2 <== NOT EXECUTED } if (*fmt == '-' ) { minus = 1; fmt++; } while (*fmt >= '0' && *fmt <= '9' ) { 4306e: 0281 0000 00ff andil #255,%d1 <== NOT EXECUTED 43074: 7009 moveq #9,%d0 <== NOT EXECUTED 43076: b081 cmpl %d1,%d0 <== NOT EXECUTED 43078: 64d4 bccs 4304e <== NOT EXECUTED 4307a: 1403 moveb %d3,%d2 <== NOT EXECUTED 4307c: 2649 moveal %a1,%a3 <== NOT EXECUTED 4307e: 2a08 movel %a0,%d5 <== NOT EXECUTED 43080: 49c2 extbl %d2 <== NOT EXECUTED width *= 10; width += (*fmt - '0'); fmt++; } if ((c = *fmt) == 'l') { 43082: 726c moveq #108,%d1 <== NOT EXECUTED 43084: b282 cmpl %d2,%d1 <== NOT EXECUTED 43086: 6700 00aa beqw 43132 <== NOT EXECUTED lflag = 1; c = *++fmt; } switch (c) { 4308a: 2003 movel %d3,%d0 <== NOT EXECUTED 4308c: 0680 ffff ffbc addil #-68,%d0 <== NOT EXECUTED 43092: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 43098: 7434 moveq #52,%d2 <== NOT EXECUTED 4309a: b480 cmpl %d0,%d2 <== NOT EXECUTED 4309c: 6420 bccs 430be <== NOT EXECUTED break; case 'c': BSP_output_char(va_arg(ap, int)); break; default: BSP_output_char(c); 4309e: 2079 0005 814c moveal 5814c ,%a0 <== NOT EXECUTED 430a4: 49c3 extbl %d3 <== NOT EXECUTED 430a6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 430a8: 4e90 jsr %a0@ <== NOT EXECUTED 430aa: 588f addql #4,%sp <== NOT EXECUTED ) { char c, *str; int lflag, base, sign, width, lead, minus; for (; *fmt != '\0'; fmt++) { 430ac: 528b addql #1,%a3 <== NOT EXECUTED 430ae: 1013 moveb %a3@,%d0 <== NOT EXECUTED 430b0: 6600 ff5c bnew 4300e <== NOT EXECUTED base, sign, width, lead); } else { BSP_output_char(*fmt); } } } 430b4: 4cee 3cfc ffc4 moveml %fp@(-60),%d2-%d7/%a2-%a5 <== NOT EXECUTED 430ba: 4e5e unlk %fp <== NOT EXECUTED 430bc: 4e75 rts <== NOT EXECUTED if ((c = *fmt) == 'l') { lflag = 1; c = *++fmt; } switch (c) { 430be: 303b 0a08 movew %pc@(430c8 ,%d0:l:2),%d0 <== NOT EXECUTED 430c2: 48c0 extl %d0 <== NOT EXECUTED 430c4: 4efb 0802 jmp %pc@(430c8 ,%d0:l) <== NOT EXECUTED 430c8: 0166 bchg %d0,%fp@- <== NOT EXECUTED 430ca: ffd6 0177726 <== NOT EXECUTED 430cc: ffd6 0177726 <== NOT EXECUTED 430ce: ffd6 0177726 <== NOT EXECUTED 430d0: ffd6 0177726 <== NOT EXECUTED 430d2: 0166 bchg %d0,%fp@- <== NOT EXECUTED 430d4: ffd6 0177726 <== NOT EXECUTED 430d6: ffd6 0177726 <== NOT EXECUTED 430d8: ffd6 0177726 <== NOT EXECUTED 430da: ffd6 0177726 <== NOT EXECUTED 430dc: ffd6 0177726 <== NOT EXECUTED 430de: 008a ffd6 ffd6 oril #-2687018,%d2 <== NOT EXECUTED 430e4: ffd6 0177726 <== NOT EXECUTED 430e6: ffd6 0177726 <== NOT EXECUTED 430e8: ffd6 0177726 <== NOT EXECUTED 430ea: 0210 01020 <== NOT EXECUTED 430ec: ffd6 0177726 <== NOT EXECUTED 430ee: ffd6 0177726 <== NOT EXECUTED 430f0: 02ce 01316 <== NOT EXECUTED 430f2: ffd6 0177726 <== NOT EXECUTED 430f4: ffd6 0177726 <== NOT EXECUTED 430f6: ffd6 0177726 <== NOT EXECUTED 430f8: ffd6 0177726 <== NOT EXECUTED 430fa: ffd6 0177726 <== NOT EXECUTED 430fc: ffd6 0177726 <== NOT EXECUTED 430fe: ffd6 0177726 <== NOT EXECUTED 43100: ffd6 0177726 <== NOT EXECUTED 43102: ffd6 0177726 <== NOT EXECUTED 43104: ffd6 0177726 <== NOT EXECUTED 43106: 01f2 0166 ffd6 bset %d0,%a2@(ffffffd6)@(ffffffd6) <== NOT EXECUTED 4310c: ffd6 <== NOT EXECUTED 4310e: ffd6 0177726 <== NOT EXECUTED 43110: ffd6 0177726 <== NOT EXECUTED 43112: 0166 bchg %d0,%fp@- <== NOT EXECUTED 43114: ffd6 0177726 <== NOT EXECUTED 43116: ffd6 0177726 <== NOT EXECUTED 43118: ffd6 0177726 <== NOT EXECUTED 4311a: ffd6 0177726 <== NOT EXECUTED 4311c: ffd6 0177726 <== NOT EXECUTED 4311e: 008a 02ce ffd6 oril #47120342,%d2 <== NOT EXECUTED 43124: ffd6 0177726 <== NOT EXECUTED 43126: 017a 0572 <== NOT EXECUTED 43128: ffd6 0177726 <== NOT EXECUTED 4312a: 0210 01020 <== NOT EXECUTED 4312c: ffd6 0177726 <== NOT EXECUTED 4312e: ffd6 0177726 <== NOT EXECUTED 43130: 02ce 01316 <== NOT EXECUTED fmt++; } if ((c = *fmt) == 'l') { lflag = 1; c = *++fmt; 43132: 47e9 0001 lea %a1@(1),%a3 <== NOT EXECUTED 43136: 1613 moveb %a3@,%d3 <== NOT EXECUTED } switch (c) { 43138: 2003 movel %d3,%d0 <== NOT EXECUTED 4313a: 0680 ffff ffbc addil #-68,%d0 <== NOT EXECUTED 43140: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 43146: 7434 moveq #52,%d2 <== NOT EXECUTED 43148: b480 cmpl %d0,%d2 <== NOT EXECUTED 4314a: 6500 ff52 bcsw 4309e <== NOT EXECUTED 4314e: 6000 ff6e braw 430be <== NOT EXECUTED break; case 'c': BSP_output_char(va_arg(ap, int)); break; default: BSP_output_char(c); 43152: 4280 clrl %d0 <== NOT EXECUTED 43154: 7808 moveq #8,%d4 <== NOT EXECUTED break; } /* switch*/ if (base) printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int), 43156: 2414 movel %a4@,%d2 <== NOT EXECUTED { long unsigned int n; int count; char toPrint[20]; if ( (sign == 1) && ((long)num < 0) ) { 43158: 7201 moveq #1,%d1 <== NOT EXECUTED BSP_output_char(c); break; } /* switch*/ if (base) printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int), 4315a: 588c addql #4,%a4 <== NOT EXECUTED { long unsigned int n; int count; char toPrint[20]; if ( (sign == 1) && ((long)num < 0) ) { 4315c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4315e: 6700 0180 beqw 432e0 <== NOT EXECUTED num = -num; if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { 43162: 2002 movel %d2,%d0 <== NOT EXECUTED 43164: 4c44 0000 remul %d4,%d0,%d0 <== NOT EXECUTED 43168: 6700 019e beqw 43308 <== NOT EXECUTED 4316c: 2202 movel %d2,%d1 <== NOT EXECUTED 4316e: 2400 movel %d0,%d2 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); 43170: 2002 movel %d2,%d0 <== NOT EXECUTED 43172: 4c04 0800 mulsl %d4,%d0 <== NOT EXECUTED num = -num; if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { 43176: 91c8 subal %a0,%a0 <== NOT EXECUTED 43178: 2602 movel %d2,%d3 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); 4317a: 9280 subl %d0,%d1 <== NOT EXECUTED 4317c: 1b81 8800 moveb %d1,%a5@(00000000,%a0:l) <== NOT EXECUTED num = -num; if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { 43180: 4c44 3003 remul %d4,%d3,%d3 <== NOT EXECUTED 43184: 2202 movel %d2,%d1 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); 43186: 5288 addql #1,%a0 <== NOT EXECUTED num = -num; if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { 43188: 4a83 tstl %d3 <== NOT EXECUTED 4318a: 671c beqs 431a8 <== NOT EXECUTED 4318c: 2403 movel %d3,%d2 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); 4318e: 2002 movel %d2,%d0 <== NOT EXECUTED 43190: 4c04 0800 mulsl %d4,%d0 <== NOT EXECUTED num = -num; if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { 43194: 2602 movel %d2,%d3 <== NOT EXECUTED 43196: 4c44 3003 remul %d4,%d3,%d3 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); 4319a: 9280 subl %d0,%d1 <== NOT EXECUTED 4319c: 1b81 8800 moveb %d1,%a5@(00000000,%a0:l) <== NOT EXECUTED num = -num; if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { 431a0: 2202 movel %d2,%d1 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); 431a2: 5288 addql #1,%a0 <== NOT EXECUTED num = -num; if (maxwidth) maxwidth--; } count = 0; while ((n = num / base) > 0) { 431a4: 4a83 tstl %d3 <== NOT EXECUTED 431a6: 66e4 bnes 4318c <== NOT EXECUTED 431a8: 2608 movel %a0,%d3 <== NOT EXECUTED 431aa: 5283 addql #1,%d3 <== NOT EXECUTED toPrint[count++] = (num - (n*base)); num = n; } toPrint[count++] = num; 431ac: 1d82 88ec moveb %d2,%fp@(ffffffec,%a0:l) <== NOT EXECUTED for (n=maxwidth ; n > count; n-- ) 431b0: 2405 movel %d5,%d2 <== NOT EXECUTED 431b2: b685 cmpl %d5,%d3 <== NOT EXECUTED 431b4: 6416 bccs 431cc <== NOT EXECUTED 431b6: 1807 moveb %d7,%d4 <== NOT EXECUTED 431b8: 49c4 extbl %d4 <== NOT EXECUTED BSP_output_char(lead); 431ba: 2079 0005 814c moveal 5814c ,%a0 <== NOT EXECUTED 431c0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 431c2: 4e90 jsr %a0@ <== NOT EXECUTED toPrint[count++] = (num - (n*base)); num = n; } toPrint[count++] = num; for (n=maxwidth ; n > count; n-- ) 431c4: 5382 subql #1,%d2 <== NOT EXECUTED 431c6: 588f addql #4,%sp <== NOT EXECUTED 431c8: b682 cmpl %d2,%d3 <== NOT EXECUTED 431ca: 65ee bcss 431ba <== NOT EXECUTED BSP_output_char(lead); for (n = 0; n < count; n++) { 431cc: 4a83 tstl %d3 <== NOT EXECUTED 431ce: 6700 fedc beqw 430ac <== NOT EXECUTED 431d2: 45f6 3800 lea %fp@(00000000,%d3:l),%a2 <== NOT EXECUTED 431d6: 4282 clrl %d2 <== NOT EXECUTED BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); 431d8: 2002 movel %d2,%d0 <== NOT EXECUTED 431da: 4680 notl %d0 <== NOT EXECUTED 431dc: 1232 08ec moveb %a2@(ffffffec,%d0:l),%d1 <== NOT EXECUTED 431e0: 41f9 0005 6e79 lea 56e79 ,%a0 <== NOT EXECUTED 431e6: 49c1 extbl %d1 <== NOT EXECUTED 431e8: 1230 1800 moveb %a0@(00000000,%d1:l),%d1 <== NOT EXECUTED 431ec: 2079 0005 814c moveal 5814c ,%a0 <== NOT EXECUTED 431f2: 49c1 extbl %d1 <== NOT EXECUTED 431f4: 2f01 movel %d1,%sp@- <== NOT EXECUTED 431f6: 4e90 jsr %a0@ <== NOT EXECUTED toPrint[count++] = num; for (n=maxwidth ; n > count; n-- ) BSP_output_char(lead); for (n = 0; n < count; n++) { 431f8: 5282 addql #1,%d2 <== NOT EXECUTED 431fa: 588f addql #4,%sp <== NOT EXECUTED 431fc: b483 cmpl %d3,%d2 <== NOT EXECUTED 431fe: 6400 feac bccw 430ac <== NOT EXECUTED BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); 43202: 2002 movel %d2,%d0 <== NOT EXECUTED 43204: 4680 notl %d0 <== NOT EXECUTED 43206: 1232 08ec moveb %a2@(ffffffec,%d0:l),%d1 <== NOT EXECUTED 4320a: 41f9 0005 6e79 lea 56e79 ,%a0 <== NOT EXECUTED 43210: 49c1 extbl %d1 <== NOT EXECUTED 43212: 1230 1800 moveb %a0@(00000000,%d1:l),%d1 <== NOT EXECUTED 43216: 2079 0005 814c moveal 5814c ,%a0 <== NOT EXECUTED 4321c: 49c1 extbl %d1 <== NOT EXECUTED 4321e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 43220: 4e90 jsr %a0@ <== NOT EXECUTED toPrint[count++] = num; for (n=maxwidth ; n > count; n-- ) BSP_output_char(lead); for (n = 0; n < count; n++) { 43222: 5282 addql #1,%d2 <== NOT EXECUTED 43224: 588f addql #4,%sp <== NOT EXECUTED 43226: b483 cmpl %d3,%d2 <== NOT EXECUTED 43228: 65ae bcss 431d8 <== NOT EXECUTED 4322a: 6000 fe80 braw 430ac <== NOT EXECUTED BSP_output_char(c); break; } /* switch*/ if (base) printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int), 4322e: 2414 movel %a4@,%d2 <== NOT EXECUTED if ((c = *fmt) == 'l') { lflag = 1; c = *++fmt; } switch (c) { 43230: 7001 moveq #1,%d0 <== NOT EXECUTED 43232: 780a moveq #10,%d4 <== NOT EXECUTED BSP_output_char(c); break; } /* switch*/ if (base) printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int), 43234: 588c addql #4,%a4 <== NOT EXECUTED { long unsigned int n; int count; char toPrint[20]; if ( (sign == 1) && ((long)num < 0) ) { 43236: 7201 moveq #1,%d1 <== NOT EXECUTED 43238: b280 cmpl %d0,%d1 <== NOT EXECUTED 4323a: 6600 ff26 bnew 43162 <== NOT EXECUTED 4323e: 6000 00a0 braw 432e0 <== NOT EXECUTED case 'p': base = 16; sign = 0; break; case 's': { int i, len; char *s; str = va_arg(ap, char *); 43242: 2454 moveal %a4@,%a2 <== NOT EXECUTED 43244: 588c addql #4,%a4 <== NOT EXECUTED /* calculate length of string */ for ( len=0, s=str ; *s ; len++, s++ ) 43246: 4a12 tstb %a2@ <== NOT EXECUTED 43248: 6700 0142 beqw 4338c <== NOT EXECUTED 4324c: 4283 clrl %d3 <== NOT EXECUTED 4324e: 5283 addql #1,%d3 <== NOT EXECUTED 43250: 4a32 3800 tstb %a2@(00000000,%d3:l) <== NOT EXECUTED 43254: 66f8 bnes 4324e <== NOT EXECUTED ; /* leading spaces */ if ( !minus ) 43256: 4a86 tstl %d6 <== NOT EXECUTED 43258: 6600 010e bnew 43368 <== NOT EXECUTED for ( i=len ; i <== NOT EXECUTED 43262: 2403 movel %d3,%d2 <== NOT EXECUTED BSP_output_char(' '); 43264: 2079 0005 814c moveal 5814c ,%a0 <== NOT EXECUTED 4326a: 4878 0020 pea 20 <== NOT EXECUTED 4326e: 4e90 jsr %a0@ <== NOT EXECUTED for ( len=0, s=str ; *s ; len++, s++ ) ; /* leading spaces */ if ( !minus ) for ( i=len ; i <== NOT EXECUTED if (width == 0) { width = len; } /* output the string */ for ( i=0 ; i <== NOT EXECUTED BSP_output_char(*str); /* trailing spaces */ if ( minus ) 4327e: 4a86 tstl %d6 <== NOT EXECUTED 43280: 6700 fe2a beqw 430ac <== NOT EXECUTED for ( i=len ; i <== NOT EXECUTED 4328a: 2403 movel %d3,%d2 <== NOT EXECUTED BSP_output_char(' '); 4328c: 2079 0005 814c moveal 5814c ,%a0 <== NOT EXECUTED 43292: 4878 0020 pea 20 <== NOT EXECUTED 43296: 4e90 jsr %a0@ <== NOT EXECUTED for ( i=0 ; i <== NOT EXECUTED BSP_output_char(' '); 432a2: 2079 0005 814c moveal 5814c ,%a0 <== NOT EXECUTED 432a8: 4878 0020 pea 20 <== NOT EXECUTED 432ac: 4e90 jsr %a0@ <== NOT EXECUTED for ( i=0 ; i <== NOT EXECUTED 432b6: 6000 fdf4 braw 430ac <== NOT EXECUTED BSP_output_char(' '); } break; case 'c': BSP_output_char(va_arg(ap, int)); 432ba: 2014 movel %a4@,%d0 <== NOT EXECUTED 432bc: 2079 0005 814c moveal 5814c ,%a0 <== NOT EXECUTED 432c2: 49c0 extbl %d0 <== NOT EXECUTED 432c4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 432c6: 4e90 jsr %a0@ <== NOT EXECUTED ) { char c, *str; int lflag, base, sign, width, lead, minus; for (; *fmt != '\0'; fmt++) { 432c8: 528b addql #1,%a3 <== NOT EXECUTED for ( i=len ; i <== NOT EXECUTED 432d4: 6000 fdde braw 430b4 <== NOT EXECUTED if ((c = *fmt) == 'l') { lflag = 1; c = *++fmt; } switch (c) { 432d8: 4280 clrl %d0 <== NOT EXECUTED 432da: 780a moveq #10,%d4 <== NOT EXECUTED 432dc: 6000 fe78 braw 43156 <== NOT EXECUTED { long unsigned int n; int count; char toPrint[20]; if ( (sign == 1) && ((long)num < 0) ) { 432e0: 4a82 tstl %d2 <== NOT EXECUTED 432e2: 6c00 fe7e bgew 43162 <== NOT EXECUTED BSP_output_char('-'); 432e6: 2079 0005 814c moveal 5814c ,%a0 <== NOT EXECUTED 432ec: 4878 002d pea 2d <== NOT EXECUTED 432f0: 4e90 jsr %a0@ <== NOT EXECUTED num = -num; 432f2: 4482 negl %d2 <== NOT EXECUTED if (maxwidth) maxwidth--; 432f4: 588f addql #4,%sp <== NOT EXECUTED 432f6: 4a85 tstl %d5 <== NOT EXECUTED 432f8: 6700 fe68 beqw 43162 <== NOT EXECUTED } count = 0; while ((n = num / base) > 0) { 432fc: 2002 movel %d2,%d0 <== NOT EXECUTED char toPrint[20]; if ( (sign == 1) && ((long)num < 0) ) { BSP_output_char('-'); num = -num; if (maxwidth) maxwidth--; 432fe: 5385 subql #1,%d5 <== NOT EXECUTED } count = 0; while ((n = num / base) > 0) { 43300: 4c44 0000 remul %d4,%d0,%d0 <== NOT EXECUTED 43304: 6600 fe66 bnew 4316c <== NOT EXECUTED 43308: 91c8 subal %a0,%a0 <== NOT EXECUTED 4330a: 7601 moveq #1,%d3 <== NOT EXECUTED 4330c: 6000 fe9e braw 431ac <== 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); 43310: 2079 0005 814c moveal 5814c ,%a0 <== NOT EXECUTED 43316: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43318: 4e90 jsr %a0@ <== NOT EXECUTED ) { char c, *str; int lflag, base, sign, width, lead, minus; for (; *fmt != '\0'; fmt++) { 4331a: 528b addql #1,%a3 <== 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); 4331c: 588f addql #4,%sp <== NOT EXECUTED ) { char c, *str; int lflag, base, sign, width, lead, minus; for (; *fmt != '\0'; fmt++) { 4331e: 1013 moveb %a3@,%d0 <== NOT EXECUTED 43320: 6600 fcec bnew 4300e <== NOT EXECUTED 43324: 6000 fd8e braw 430b4 <== NOT EXECUTED lead = '0'; fmt++; } if (*fmt == '-' ) { minus = 1; fmt++; 43328: 5289 addql #1,%a1 <== NOT EXECUTED 4332a: 1611 moveb %a1@,%d3 <== NOT EXECUTED } while (*fmt >= '0' && *fmt <= '9' ) { 4332c: 2003 movel %d3,%d0 <== NOT EXECUTED 4332e: 1403 moveb %d3,%d2 <== NOT EXECUTED 43330: 0680 ffff ffd0 addil #-48,%d0 <== NOT EXECUTED lead = '0'; fmt++; } if (*fmt == '-' ) { minus = 1; fmt++; 43336: 7c01 moveq #1,%d6 <== NOT EXECUTED 43338: 49c2 extbl %d2 <== NOT EXECUTED } while (*fmt >= '0' && *fmt <= '9' ) { 4333a: 0280 0000 00ff andil #255,%d0 <== NOT EXECUTED 43340: 7209 moveq #9,%d1 <== NOT EXECUTED 43342: b280 cmpl %d0,%d1 <== NOT EXECUTED 43344: 6400 fd06 bccw 4304c <== NOT EXECUTED 43348: 2649 moveal %a1,%a3 <== NOT EXECUTED 4334a: 4284 clrl %d4 <== NOT EXECUTED 4334c: 4285 clrl %d5 <== NOT EXECUTED width *= 10; width += (*fmt - '0'); fmt++; } if ((c = *fmt) == 'l') { 4334e: 726c moveq #108,%d1 <== NOT EXECUTED 43350: b282 cmpl %d2,%d1 <== NOT EXECUTED 43352: 6600 fd36 bnew 4308a <== NOT EXECUTED 43356: 6000 fdda braw 43132 <== NOT EXECUTED lead = ' '; if (*fmt == '%') { fmt++; if (*fmt == '0' ) { lead = '0'; fmt++; 4335a: 5289 addql #1,%a1 <== NOT EXECUTED 4335c: 1611 moveb %a1@,%d3 <== NOT EXECUTED 4335e: 1403 moveb %d3,%d2 <== NOT EXECUTED 43360: 7e30 moveq #48,%d7 <== NOT EXECUTED 43362: 49c2 extbl %d2 <== NOT EXECUTED 43364: 6000 fcc6 braw 4302c <== NOT EXECUTED if ( !minus ) for ( i=len ; i <== NOT EXECUTED 4336e: 2a03 movel %d3,%d5 <== NOT EXECUTED width = len; } /* output the string */ for ( i=0 ; i <== NOT EXECUTED 43374: 1012 moveb %a2@,%d0 <== NOT EXECUTED 43376: 6700 ff06 beqw 4327e <== NOT EXECUTED BSP_output_char(*str); 4337a: 2079 0005 814c moveal 5814c ,%a0 <== NOT EXECUTED 43380: 49c0 extbl %d0 <== NOT EXECUTED 43382: 2f00 movel %d0,%sp@- <== NOT EXECUTED 43384: 4e90 jsr %a0@ <== NOT EXECUTED if (width == 0) { width = len; } /* output the string */ for ( i=0 ; i <== NOT EXECUTED char *s; str = va_arg(ap, char *); /* calculate length of string */ for ( len=0, s=str ; *s ; len++, s++ ) 4338c: 4283 clrl %d3 <== NOT EXECUTED ; /* leading spaces */ if ( !minus ) 4338e: 4a86 tstl %d6 <== NOT EXECUTED 43390: 66d6 bnes 43368 <== NOT EXECUTED 43392: 6000 fec8 braw 4325c <== NOT EXECUTED break; case 'c': BSP_output_char(va_arg(ap, int)); break; default: BSP_output_char(c); 43396: 4280 clrl %d0 <== NOT EXECUTED 43398: 7810 moveq #16,%d4 <== NOT EXECUTED 4339a: 6000 fdba braw 43156 <== NOT EXECUTED 00045c54 : #include int wait( int *stat_loc ) { 45c54: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45c58: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45c5e: 2040 moveal %d0,%a0 <== NOT EXECUTED 45c60: 7058 moveq #88,%d0 <== NOT EXECUTED 45c62: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45c64: 4e5e unlk %fp <== NOT EXECUTED 45c66: 70ff moveq #-1,%d0 <== NOT EXECUTED 45c68: 4e75 rts <== NOT EXECUTED ... 00045c6c : int waitpid( pid_t pid, int *stat_loc, int options ) { 45c6c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSYS ); 45c70: 4eb9 0004 e1c0 jsr 4e1c0 <__errno> <== NOT EXECUTED 45c76: 2040 moveal %d0,%a0 <== NOT EXECUTED 45c78: 7058 moveq #88,%d0 <== NOT EXECUTED 45c7a: 2080 movel %d0,%a0@ <== NOT EXECUTED } 45c7c: 4e5e unlk %fp <== NOT EXECUTED 45c7e: 70ff moveq #-1,%d0 <== NOT EXECUTED 45c80: 4e75 rts <== NOT EXECUTED ... 00055dc0 : ssize_t write( int fd, const void *buffer, size_t count ) { 55dc0: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED 55dc4: 48d7 040c moveml %d2-%d3/%a2,%sp@ <== NOT EXECUTED 55dc8: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED 55dcc: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED 55dd0: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); 55dd4: b4b9 0005 8048 cmpl 58048 ,%d2 <== NOT EXECUTED 55dda: 6464 bccs 55e40 <== NOT EXECUTED iop = rtems_libio_iop( fd ); 55ddc: 2202 movel %d2,%d1 <== NOT EXECUTED 55dde: 2002 movel %d2,%d0 <== NOT EXECUTED 55de0: e589 lsll #2,%d1 <== NOT EXECUTED 55de2: e988 lsll #4,%d0 <== NOT EXECUTED 55de4: 9081 subl %d1,%d0 <== NOT EXECUTED 55de6: 2479 0005 9b14 moveal 59b14 ,%a2 <== NOT EXECUTED 55dec: d082 addl %d2,%d0 <== NOT EXECUTED 55dee: e588 lsll #2,%d0 <== NOT EXECUTED 55df0: d5c0 addal %d0,%a2 <== NOT EXECUTED rtems_libio_check_is_open( iop ); 55df2: 202a 000c movel %a2@(12),%d0 <== NOT EXECUTED 55df6: 0800 0008 btst #8,%d0 <== NOT EXECUTED 55dfa: 6744 beqs 55e40 <== NOT EXECUTED rtems_libio_check_buffer( buffer ); 55dfc: 4a83 tstl %d3 <== NOT EXECUTED 55dfe: 6758 beqs 55e58 <== NOT EXECUTED rtems_libio_check_count( count ); 55e00: 4a89 tstl %a1 <== NOT EXECUTED 55e02: 6730 beqs 55e34 <== NOT EXECUTED rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 55e04: 44c0 movew %d0,%ccr <== NOT EXECUTED 55e06: 6650 bnes 55e58 <== NOT EXECUTED /* * Now process the write() request. */ if ( !iop->handlers->write_h ) 55e08: 206a 0030 moveal %a2@(48),%a0 <== NOT EXECUTED 55e0c: 2068 000c moveal %a0@(12),%a0 <== NOT EXECUTED 55e10: 4a88 tstl %a0 <== NOT EXECUTED 55e12: 675c beqs 55e70 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTSUP ); rc = (*iop->handlers->write_h)( iop, buffer, count ); 55e14: 2f09 movel %a1,%sp@- <== NOT EXECUTED 55e16: 2f03 movel %d3,%sp@- <== NOT EXECUTED 55e18: 2f0a movel %a2,%sp@- <== NOT EXECUTED 55e1a: 4e90 jsr %a0@ <== NOT EXECUTED if ( rc > 0 ) 55e1c: dffc 0000 000c addal #12,%sp <== NOT EXECUTED 55e22: 4a80 tstl %d0 <== NOT EXECUTED 55e24: 6f04 bles 55e2a <== NOT EXECUTED iop->offset += rc; 55e26: d1aa 0008 addl %d0,%a2@(8) <== NOT EXECUTED return rc; } 55e2a: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 55e30: 4e5e unlk %fp <== NOT EXECUTED 55e32: 4e75 rts <== NOT EXECUTED 55e34: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 55e3a: 4e5e unlk %fp <== NOT EXECUTED rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); rtems_libio_check_buffer( buffer ); rtems_libio_check_count( count ); 55e3c: 4280 clrl %d0 <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55e3e: 4e75 rts <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); 55e40: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55e46: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); 55e4c: 2040 moveal %d0,%a0 <== NOT EXECUTED 55e4e: 7209 moveq #9,%d1 <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55e50: 4e5e unlk %fp <== NOT EXECUTED ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); 55e52: 70ff moveq #-1,%d0 <== NOT EXECUTED 55e54: 2081 movel %d1,%a0@ <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55e56: 4e75 rts <== NOT EXECUTED rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); rtems_libio_check_buffer( buffer ); rtems_libio_check_count( count ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 55e58: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED 55e5e: 2040 moveal %d0,%a0 <== NOT EXECUTED 55e60: 7016 moveq #22,%d0 <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55e62: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); rtems_libio_check_buffer( buffer ); rtems_libio_check_count( count ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 55e68: 2080 movel %d0,%a0@ <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55e6a: 4e5e unlk %fp <== NOT EXECUTED rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open( iop ); rtems_libio_check_buffer( buffer ); rtems_libio_check_count( count ); rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE ); 55e6c: 70ff moveq #-1,%d0 <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55e6e: 4e75 rts <== NOT EXECUTED /* * Now process the write() request. */ if ( !iop->handlers->write_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 55e70: 4eb9 0004 d3c0 jsr 4d3c0 <__errno> <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55e76: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED /* * Now process the write() request. */ if ( !iop->handlers->write_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 55e7c: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55e7e: 4e5e unlk %fp <== NOT EXECUTED /* * Now process the write() request. */ if ( !iop->handlers->write_h ) rtems_set_errno_and_return_minus_one( ENOTSUP ); 55e80: 70ff moveq #-1,%d0 <== NOT EXECUTED 55e82: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED if ( rc > 0 ) iop->offset += rc; return rc; } 55e88: 4e75 rts <== NOT EXECUTED ...