=============================================================================== 40004a2c : void RTEMS_Malloc_Initialize( const Heap_Area *areas, size_t area_count, Heap_Initialization_or_extend_handler extend ) { 40004a2c: 9d e3 bf a0 save %sp, -96, %sp Heap_Control *heap = RTEMS_Malloc_Heap; if ( !rtems_configuration_get_unified_work_area() ) { 40004a30: 03 10 00 3f sethi %hi(0x4000fc00), %g1 40004a34: c2 08 62 5d ldub [ %g1 + 0x25d ], %g1 ! 4000fe5d 40004a38: 80 a0 60 00 cmp %g1, 0 40004a3c: 12 80 00 19 bne 40004aa0 40004a40: 80 a6 60 00 cmp %i1, 0 Heap_Initialization_or_extend_handler init_or_extend = _Heap_Initialize; uintptr_t page_size = CPU_HEAP_ALIGNMENT; size_t i; for (i = 0; i < area_count; ++i) { 40004a44: 02 80 00 19 be 40004aa8 <== NEVER TAKEN 40004a48: 03 10 00 47 sethi %hi(0x40011c00), %g1 Heap_Control *heap = RTEMS_Malloc_Heap; 40004a4c: f8 00 61 e4 ld [ %g1 + 0x1e4 ], %i4 ! 40011de4 40004a50: b3 2e 60 03 sll %i1, 3, %i1 Heap_Initialization_or_extend_handler init_or_extend = _Heap_Initialize; 40004a54: 37 10 00 1b sethi %hi(0x40006c00), %i3 40004a58: b2 06 00 19 add %i0, %i1, %i1 40004a5c: b6 16 e3 c8 or %i3, 0x3c8, %i3 40004a60: ba 10 00 1b mov %i3, %i5 const Heap_Area *area = &areas [i]; uintptr_t space_available = (*init_or_extend)( 40004a64: d4 06 20 04 ld [ %i0 + 4 ], %o2 40004a68: d2 06 00 00 ld [ %i0 ], %o1 40004a6c: 96 10 20 08 mov 8, %o3 40004a70: 9f c7 40 00 call %i5 40004a74: 90 10 00 1c mov %i4, %o0 area->begin, area->size, page_size ); if ( space_available > 0 ) { 40004a78: 80 a2 20 00 cmp %o0, 0 40004a7c: 32 80 00 02 bne,a 40004a84 <== ALWAYS TAKEN 40004a80: ba 10 00 1a mov %i2, %i5 40004a84: b0 06 20 08 add %i0, 8, %i0 for (i = 0; i < area_count; ++i) { 40004a88: 80 a6 00 19 cmp %i0, %i1 40004a8c: 32 bf ff f7 bne,a 40004a68 <== NEVER TAKEN 40004a90: d4 06 20 04 ld [ %i0 + 4 ], %o2 <== NOT EXECUTED init_or_extend = extend; } } if ( init_or_extend == _Heap_Initialize ) { 40004a94: 80 a7 40 1b cmp %i5, %i3 40004a98: 02 80 00 04 be 40004aa8 <== NEVER TAKEN 40004a9c: 01 00 00 00 nop _Internal_error( INTERNAL_ERROR_NO_MEMORY_FOR_HEAP ); } } } 40004aa0: 81 c7 e0 08 ret 40004aa4: 81 e8 00 00 restore _Internal_error( INTERNAL_ERROR_NO_MEMORY_FOR_HEAP ); 40004aa8: 40 00 0a 11 call 400072ec <_Internal_error> <== NOT EXECUTED 40004aac: 90 10 20 17 mov 0x17, %o0 <== NOT EXECUTED 40004ab0: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 40004638 <_Console_simple_Read>: ssize_t _Console_simple_Read( rtems_libio_t *iop, void *buffer, size_t count ) { 40004638: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED ssize_t n; buf = buffer; n = (ssize_t) count; for ( i = 0; i < n; ++i ) { 4000463c: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 40004640: 04 80 00 0c ble 40004670 <_Console_simple_Read+0x38> <== NOT EXECUTED 40004644: ba 10 20 00 clr %i5 <== NOT EXECUTED int c; do { c = getchark(); 40004648: 40 00 00 22 call 400046d0 <== NOT EXECUTED 4000464c: 01 00 00 00 nop <== NOT EXECUTED } while (c == -1); 40004650: 80 a2 3f ff cmp %o0, -1 <== NOT EXECUTED 40004654: 02 bf ff fd be 40004648 <_Console_simple_Read+0x10> <== NOT EXECUTED 40004658: 01 00 00 00 nop <== NOT EXECUTED buf[ i ] = (char) c; 4000465c: d0 2e 40 1d stb %o0, [ %i1 + %i5 ] <== NOT EXECUTED for ( i = 0; i < n; ++i ) { 40004660: ba 07 60 01 inc %i5 <== NOT EXECUTED 40004664: 80 a6 80 1d cmp %i2, %i5 <== NOT EXECUTED 40004668: 12 bf ff f8 bne 40004648 <_Console_simple_Read+0x10> <== NOT EXECUTED 4000466c: 01 00 00 00 nop <== NOT EXECUTED } return n; } 40004670: 81 c7 e0 08 ret <== NOT EXECUTED 40004674: 91 e8 00 1a restore %g0, %i2, %o0 <== NOT EXECUTED =============================================================================== 400049f8 <_Malloc_Deferred_free>: __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400049f8: 91 d0 20 09 ta 9 <== NOT EXECUTED old_last = tail->previous; 400049fc: 05 10 00 47 sethi %hi(0x40011c00), %g2 <== NOT EXECUTED 40004a00: 84 10 a2 10 or %g2, 0x210, %g2 ! 40011e10 <_Malloc_GC_list> <== NOT EXECUTED 40004a04: c6 00 a0 08 ld [ %g2 + 8 ], %g3 <== NOT EXECUTED the_node->next = tail; 40004a08: 88 00 a0 04 add %g2, 4, %g4 <== NOT EXECUTED 40004a0c: c8 22 00 00 st %g4, [ %o0 ] <== NOT EXECUTED tail->previous = the_node; 40004a10: d0 20 a0 08 st %o0, [ %g2 + 8 ] <== NOT EXECUTED old_last->next = the_node; 40004a14: d0 20 c0 00 st %o0, [ %g3 ] <== NOT EXECUTED the_node->previous = old_last; 40004a18: c6 22 20 04 st %g3, [ %o0 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40004a1c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40004a20: 01 00 00 00 nop <== NOT EXECUTED rtems_interrupt_lock_acquire( &_Malloc_GC_lock, &lock_context ); rtems_chain_initialize_node( node ); rtems_chain_append_unprotected( &_Malloc_GC_list, node ); rtems_interrupt_lock_release( &_Malloc_GC_lock, &lock_context ); } 40004a24: 81 c3 e0 08 retl <== NOT EXECUTED 40004a28: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 400048ac <_Malloc_Process_deferred_frees>: return p; } void _Malloc_Process_deferred_frees( void ) { 400048ac: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400048b0: 91 d0 20 09 ta 9 <== NOT EXECUTED return _Chain_Immutable_head( the_chain )->next; 400048b4: 3b 10 00 47 sethi %hi(0x40011c00), %i5 400048b8: d0 07 62 10 ld [ %i5 + 0x210 ], %o0 ! 40011e10 <_Malloc_GC_list> 400048bc: ba 17 62 10 or %i5, 0x210, %i5 if ( !_Chain_Is_empty(the_chain)) 400048c0: b8 07 60 04 add %i5, 4, %i4 400048c4: 80 a2 00 1c cmp %o0, %i4 400048c8: 02 80 00 0e be 40004900 <_Malloc_Process_deferred_frees+0x54> <== ALWAYS TAKEN 400048cc: 01 00 00 00 nop new_first = old_first->next; 400048d0: c4 02 00 00 ld [ %o0 ], %g2 <== NOT EXECUTED head->next = new_first; 400048d4: c4 27 40 00 st %g2, [ %i5 ] <== NOT EXECUTED new_first->previous = head; 400048d8: fa 20 a0 04 st %i5, [ %g2 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400048dc: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400048e0: 01 00 00 00 nop <== NOT EXECUTED /* * If some free's have been deferred, then do them now. */ while ( ( to_be_freed = _Malloc_Get_deferred_free() ) != NULL ) { free( to_be_freed ); 400048e4: 7f ff ff 65 call 40004678 <== NOT EXECUTED 400048e8: 01 00 00 00 nop <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400048ec: 91 d0 20 09 ta 9 <== NOT EXECUTED return _Chain_Immutable_head( the_chain )->next; 400048f0: d0 07 40 00 ld [ %i5 ], %o0 <== NOT EXECUTED if ( !_Chain_Is_empty(the_chain)) 400048f4: 80 a2 00 1c cmp %o0, %i4 <== NOT EXECUTED 400048f8: 32 bf ff f7 bne,a 400048d4 <_Malloc_Process_deferred_frees+0x28> <== NOT EXECUTED 400048fc: c4 02 00 00 ld [ %o0 ], %g2 <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40004900: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40004904: 01 00 00 00 nop } } 40004908: 81 c7 e0 08 ret 4000490c: 81 e8 00 00 restore =============================================================================== 40004870 <_Malloc_System_state>: 40004870: 03 10 00 4d sethi %hi(0x40013400), %g1 40004874: c2 00 61 6c ld [ %g1 + 0x16c ], %g1 ! 4001356c <_System_state_Current> if ( _Thread_Dispatch_is_enabled() ) { return MALLOC_SYSTEM_STATE_NORMAL; } else { return MALLOC_SYSTEM_STATE_NO_ALLOCATION; } } else if ( _System_state_Is_before_multitasking( state ) ) { 40004878: 84 18 60 01 xor %g1, 1, %g2 return MALLOC_SYSTEM_STATE_NORMAL; } else { return MALLOC_SYSTEM_STATE_NO_PROTECTION; 4000487c: 80 a0 00 02 cmp %g0, %g2 40004880: 90 40 20 00 addx %g0, 0, %o0 if ( _System_state_Is_up( state ) ) { 40004884: 80 a0 60 02 cmp %g1, 2 40004888: 02 80 00 04 be 40004898 <_Malloc_System_state+0x28> <== ALWAYS TAKEN 4000488c: 01 00 00 00 nop } } 40004890: 81 c3 e0 08 retl <== NOT EXECUTED 40004894: 01 00 00 00 nop <== NOT EXECUTED 40004898: c2 01 a0 18 ld [ %g6 + 0x18 ], %g1 return MALLOC_SYSTEM_STATE_NO_ALLOCATION; 4000489c: 80 a0 00 01 cmp %g0, %g1 400048a0: 90 40 20 00 addx %g0, 0, %o0 } 400048a4: 81 c3 e0 08 retl 400048a8: 91 2a 20 01 sll %o0, 1, %o0 =============================================================================== 40041664 <__assert_func>: const char *file, int line, const char *func, const char *failedexpr ) { 40041664: 9d e3 bf 90 save %sp, -112, %sp <== NOT EXECUTED rtems_assert_context assert_context = { 40041668: f0 27 bf f0 st %i0, [ %fp + -16 ] <== NOT EXECUTED .line = line, .function = func, .failed_expression = failedexpr }; printk("assertion \"%s\" failed: file \"%s\", line %d%s%s\n", 4004166c: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED rtems_assert_context assert_context = { 40041670: f2 27 bf f4 st %i1, [ %fp + -12 ] <== NOT EXECUTED printk("assertion \"%s\" failed: file \"%s\", line %d%s%s\n", 40041674: 02 80 00 0e be 400416ac <__assert_func+0x48> <== NOT EXECUTED 40041678: f4 3f bf f8 std %i2, [ %fp + -8 ] <== NOT EXECUTED 4004167c: 19 10 02 0d sethi %hi(0x40083400), %o4 <== NOT EXECUTED 40041680: 98 13 23 b0 or %o4, 0x3b0, %o4 ! 400837b0 <== NOT EXECUTED 40041684: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40041688: 9a 10 00 1a mov %i2, %o5 <== NOT EXECUTED 4004168c: 96 10 00 19 mov %i1, %o3 <== NOT EXECUTED 40041690: 94 10 00 18 mov %i0, %o2 <== NOT EXECUTED 40041694: 11 10 02 0d sethi %hi(0x40083400), %o0 <== NOT EXECUTED 40041698: 7f ff 2b ad call 4000c54c <== NOT EXECUTED 4004169c: 90 12 23 c0 or %o0, 0x3c0, %o0 ! 400837c0 <== NOT EXECUTED 400416a0: 92 07 bf f0 add %fp, -16, %o1 <== NOT EXECUTED 400416a4: 7f ff 64 7d call 4001a898 <_Terminate> <== NOT EXECUTED 400416a8: 90 10 20 07 mov 7, %o0 <== NOT EXECUTED 400416ac: 19 10 01 fa sethi %hi(0x4007e800), %o4 <== NOT EXECUTED 400416b0: 98 13 21 10 or %o4, 0x110, %o4 ! 4007e910 <== NOT EXECUTED 400416b4: 10 bf ff f4 b 40041684 <__assert_func+0x20> <== NOT EXECUTED 400416b8: b4 10 00 0c mov %o4, %i2 <== NOT EXECUTED =============================================================================== 4001bb04 <_close_r>: int _close_r( struct _reent *ptr RTEMS_UNUSED, int fd ) { return close( fd ); 4001bb04: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 4001bb08: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 4001bb0c: 7f ff ff c8 call 4001ba2c <== NOT EXECUTED 4001bb10: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4000fb64 <_exit>: extern void FINI_SYMBOL( void ); #endif void _exit(int status) { 4000fb64: 9d e3 bf a0 save %sp, -96, %sp /* * If the toolset uses init/fini sections, then we need to * run the global destructors now. */ #if defined(FINI_SYMBOL) FINI_SYMBOL(); 4000fb68: 40 00 04 60 call 40010ce8 <_fini> 4000fb6c: 01 00 00 00 nop #endif rtems_shutdown_executive(status); 4000fb70: 7f ff f7 9b call 4000d9dc 4000fb74: 90 10 00 18 mov %i0, %o0 4000fb78: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 40058720 <_fcntl_r>: struct _reent *ptr RTEMS_UNUSED, int fd, int cmd, int arg ) { 40058720: 82 10 00 0a mov %o2, %g1 <== NOT EXECUTED return fcntl( fd, cmd, arg ); 40058724: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 40058728: 94 10 00 0b mov %o3, %o2 <== NOT EXECUTED 4005872c: 92 10 00 01 mov %g1, %o1 <== NOT EXECUTED 40058730: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40058734: 7f ff fe fc call 40058324 <== NOT EXECUTED 40058738: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4000fb54 <_free_r>: struct _reent *ignored, void *ptr ) { (void) ignored; free( ptr ); 4000fb54: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 4000fb58: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 4000fb5c: 7f ff d2 c7 call 40004678 <== NOT EXECUTED 4000fb60: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4002c0b0 <_getpid_r>: pid_t _getpid_r( struct _reent *ptr RTEMS_UNUSED ) { return getpid(); } 4002c0b0: 81 c3 e0 08 retl <== NOT EXECUTED 4002c0b4: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED =============================================================================== 40004768 <_gettimeofday_r>: int _gettimeofday_r( struct _reent *ignored_reentrancy_stuff RTEMS_UNUSED, struct timeval *tp, void *__tz ) { 40004768: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED if ( !tp ) 4000476c: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED 40004770: 02 80 00 06 be 40004788 <_gettimeofday_r+0x20> <== NOT EXECUTED 40004774: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 40004778: 40 00 0f 2b call 40008424 <_Timecounter_Microtime> <== NOT EXECUTED 4000477c: b0 10 20 00 clr %i0 <== NOT EXECUTED struct timezone *tzp = __tz; return gettimeofday( tp, tzp ); } 40004780: 81 c7 e0 08 ret <== NOT EXECUTED 40004784: 81 e8 00 00 restore <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 40004788: 40 00 27 f4 call 4000e758 <__errno> <== NOT EXECUTED 4000478c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40004790: 82 10 20 0e mov 0xe, %g1 <== NOT EXECUTED 40004794: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40004798: 81 c7 e0 08 ret <== NOT EXECUTED 4000479c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40042798 <_libcsupport_pwdgrp_init>: pthread_once(&pwdgrp_once, pwdgrp_init); 40042798: 13 10 01 09 sethi %hi(0x40042400), %o1 <== NOT EXECUTED 4004279c: 11 10 02 41 sethi %hi(0x40090400), %o0 <== NOT EXECUTED 400427a0: 92 12 61 c4 or %o1, 0x1c4, %o1 <== NOT EXECUTED 400427a4: 90 12 20 30 or %o0, 0x30, %o0 <== NOT EXECUTED 400427a8: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 400427ac: 7f ff 5a 89 call 400191d0 <== NOT EXECUTED 400427b0: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 400429f8 <_libcsupport_scangr>: FILE *fp, struct group *grp, char *buffer, size_t bufsize ) { 400429f8: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED int grgid; char *grmem, *cp; int memcount; if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0) 400429fc: 98 10 20 00 clr %o4 <== NOT EXECUTED { 40042a00: f4 27 a0 4c st %i2, [ %fp + 0x4c ] <== NOT EXECUTED if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0) 40042a04: 96 07 a0 50 add %fp, 0x50, %o3 <== NOT EXECUTED { 40042a08: f6 27 a0 50 st %i3, [ %fp + 0x50 ] <== NOT EXECUTED if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0) 40042a0c: 94 07 a0 4c add %fp, 0x4c, %o2 <== NOT EXECUTED 40042a10: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 40042a14: 7f ff ff 34 call 400426e4 <== NOT EXECUTED 40042a18: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042a1c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042a20: 12 80 00 04 bne 40042a30 <_libcsupport_scangr+0x38> <== NOT EXECUTED 40042a24: 98 10 20 00 clr %o4 <== NOT EXECUTED || !scanString(fp, &grp->gr_passwd, &buffer, &bufsize, 0) || !scanInt(fp, &grgid) || !scanString(fp, &grmem, &buffer, &bufsize, 1)) return 0; 40042a28: 81 c7 e0 08 ret <== NOT EXECUTED 40042a2c: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED || !scanString(fp, &grp->gr_passwd, &buffer, &bufsize, 0) 40042a30: 96 07 a0 50 add %fp, 0x50, %o3 <== NOT EXECUTED 40042a34: 94 07 a0 4c add %fp, 0x4c, %o2 <== NOT EXECUTED 40042a38: 92 06 60 04 add %i1, 4, %o1 <== NOT EXECUTED 40042a3c: 7f ff ff 2a call 400426e4 <== NOT EXECUTED 40042a40: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042a44: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042a48: 02 bf ff f8 be 40042a28 <_libcsupport_scangr+0x30> <== NOT EXECUTED 40042a4c: 92 07 bf f8 add %fp, -8, %o1 <== NOT EXECUTED || !scanInt(fp, &grgid) 40042a50: 7f ff fe ec call 40042600 <== NOT EXECUTED 40042a54: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042a58: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042a5c: 02 bf ff f3 be 40042a28 <_libcsupport_scangr+0x30> <== NOT EXECUTED 40042a60: 98 10 20 01 mov 1, %o4 <== NOT EXECUTED || !scanString(fp, &grmem, &buffer, &bufsize, 1)) 40042a64: 96 07 a0 50 add %fp, 0x50, %o3 <== NOT EXECUTED 40042a68: 94 07 a0 4c add %fp, 0x4c, %o2 <== NOT EXECUTED 40042a6c: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED 40042a70: 7f ff ff 1d call 400426e4 <== NOT EXECUTED 40042a74: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042a78: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042a7c: 02 bf ff eb be 40042a28 <_libcsupport_scangr+0x30> <== NOT EXECUTED 40042a80: c2 07 bf f8 ld [ %fp + -8 ], %g1 <== NOT EXECUTED grp->gr_gid = grgid; 40042a84: c2 36 60 08 sth %g1, [ %i1 + 8 ] <== NOT EXECUTED /* * Determine number of members */ if (grmem[0] == '\0') { 40042a88: fa 07 bf fc ld [ %fp + -4 ], %i5 <== NOT EXECUTED 40042a8c: c2 0f 40 00 ldub [ %i5 ], %g1 <== NOT EXECUTED 40042a90: 83 28 60 18 sll %g1, 0x18, %g1 <== NOT EXECUTED 40042a94: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40042a98: 02 80 00 13 be 40042ae4 <_libcsupport_scangr+0xec> <== NOT EXECUTED 40042a9c: 84 10 20 13 mov 0x13, %g2 <== NOT EXECUTED 40042aa0: 84 10 00 1d mov %i5, %g2 <== NOT EXECUTED memcount = 0; } else { for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 40042aa4: 88 10 20 01 mov 1, %g4 <== NOT EXECUTED if(*cp == ',') 40042aa8: 83 38 60 18 sra %g1, 0x18, %g1 <== NOT EXECUTED for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 40042aac: 84 00 a0 01 inc %g2 <== NOT EXECUTED if(*cp == ',') 40042ab0: 80 a0 60 2c cmp %g1, 0x2c <== NOT EXECUTED 40042ab4: 12 80 00 05 bne 40042ac8 <_libcsupport_scangr+0xd0> <== NOT EXECUTED 40042ab8: 86 01 20 01 add %g4, 1, %g3 <== NOT EXECUTED 40042abc: 82 01 20 02 add %g4, 2, %g1 <== NOT EXECUTED memcount++; 40042ac0: 88 10 00 03 mov %g3, %g4 <== NOT EXECUTED if(*cp == ',') 40042ac4: 86 10 00 01 mov %g1, %g3 <== NOT EXECUTED for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 40042ac8: c2 08 80 00 ldub [ %g2 ], %g1 <== NOT EXECUTED 40042acc: 83 28 60 18 sll %g1, 0x18, %g1 <== NOT EXECUTED 40042ad0: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40042ad4: 12 bf ff f6 bne 40042aac <_libcsupport_scangr+0xb4> <== NOT EXECUTED 40042ad8: 83 38 60 18 sra %g1, 0x18, %g1 <== NOT EXECUTED 40042adc: 85 28 e0 02 sll %g3, 2, %g2 <== NOT EXECUTED 40042ae0: 84 00 a0 0f add %g2, 0xf, %g2 <== NOT EXECUTED } /* * Hack to produce (hopefully) a suitably-aligned array of pointers */ if (bufsize < (((memcount+1)*sizeof(char *)) + 15)) 40042ae4: c2 07 a0 50 ld [ %fp + 0x50 ], %g1 <== NOT EXECUTED 40042ae8: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 40042aec: 0a bf ff cf bcs 40042a28 <_libcsupport_scangr+0x30> <== NOT EXECUTED 40042af0: c6 07 a0 4c ld [ %fp + 0x4c ], %g3 <== NOT EXECUTED return 0; grp->gr_mem = (char **)(((uintptr_t)buffer + 15) & ~15); 40042af4: 86 00 e0 0f add %g3, 0xf, %g3 <== NOT EXECUTED 40042af8: 86 08 ff f0 and %g3, -16, %g3 <== NOT EXECUTED 40042afc: c6 26 60 0c st %g3, [ %i1 + 0xc ] <== NOT EXECUTED /* * Fill in pointer array */ if (grmem[0] == '\0') { 40042b00: c2 4f 40 00 ldsb [ %i5 ], %g1 <== NOT EXECUTED 40042b04: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40042b08: 02 80 00 1a be 40042b70 <_libcsupport_scangr+0x178> <== NOT EXECUTED 40042b0c: 88 10 20 00 clr %g4 <== NOT EXECUTED memcount = 0; } else { grp->gr_mem[0] = grmem; 40042b10: fa 20 c0 00 st %i5, [ %g3 ] <== NOT EXECUTED for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 40042b14: c4 07 bf fc ld [ %fp + -4 ], %g2 <== NOT EXECUTED 40042b18: c2 08 80 00 ldub [ %g2 ], %g1 <== NOT EXECUTED 40042b1c: 83 28 60 18 sll %g1, 0x18, %g1 <== NOT EXECUTED 40042b20: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40042b24: 02 80 00 13 be 40042b70 <_libcsupport_scangr+0x178> <== NOT EXECUTED 40042b28: 88 10 20 04 mov 4, %g4 <== NOT EXECUTED 40042b2c: 86 10 20 01 mov 1, %g3 <== NOT EXECUTED if(*cp == ',') { 40042b30: 83 38 60 18 sra %g1, 0x18, %g1 <== NOT EXECUTED 40042b34: 89 28 e0 02 sll %g3, 2, %g4 <== NOT EXECUTED 40042b38: 80 a0 60 2c cmp %g1, 0x2c <== NOT EXECUTED 40042b3c: 12 80 00 07 bne 40042b58 <_libcsupport_scangr+0x160> <== NOT EXECUTED 40042b40: 84 00 a0 01 inc %g2 <== NOT EXECUTED *cp = '\0'; 40042b44: c0 28 bf ff clrb [ %g2 + -1 ] <== NOT EXECUTED grp->gr_mem[memcount++] = cp + 1; 40042b48: 86 00 e0 01 inc %g3 <== NOT EXECUTED 40042b4c: c2 06 60 0c ld [ %i1 + 0xc ], %g1 <== NOT EXECUTED 40042b50: c4 20 40 04 st %g2, [ %g1 + %g4 ] <== NOT EXECUTED 40042b54: 88 01 20 04 add %g4, 4, %g4 <== NOT EXECUTED for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) { 40042b58: c2 08 80 00 ldub [ %g2 ], %g1 <== NOT EXECUTED 40042b5c: 83 28 60 18 sll %g1, 0x18, %g1 <== NOT EXECUTED 40042b60: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40042b64: 32 bf ff f4 bne,a 40042b34 <_libcsupport_scangr+0x13c> <== NOT EXECUTED 40042b68: 83 38 60 18 sra %g1, 0x18, %g1 <== NOT EXECUTED 40042b6c: c6 06 60 0c ld [ %i1 + 0xc ], %g3 <== NOT EXECUTED } } } grp->gr_mem[memcount] = NULL; 40042b70: c0 20 c0 04 clr [ %g3 + %g4 ] <== NOT EXECUTED return 1; } 40042b74: 81 c7 e0 08 ret <== NOT EXECUTED 40042b78: 91 e8 20 01 restore %g0, 1, %o0 <== NOT EXECUTED =============================================================================== 400427b4 <_libcsupport_scanpw>: FILE *fp, struct passwd *pwd, char *buffer, size_t bufsize ) { 400427b4: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED int pwuid, pwgid; if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0) 400427b8: 98 10 20 00 clr %o4 <== NOT EXECUTED { 400427bc: f4 27 a0 4c st %i2, [ %fp + 0x4c ] <== NOT EXECUTED if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0) 400427c0: 96 07 a0 50 add %fp, 0x50, %o3 <== NOT EXECUTED { 400427c4: f6 27 a0 50 st %i3, [ %fp + 0x50 ] <== NOT EXECUTED if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0) 400427c8: 94 07 a0 4c add %fp, 0x4c, %o2 <== NOT EXECUTED 400427cc: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400427d0: 7f ff ff c5 call 400426e4 <== NOT EXECUTED 400427d4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400427d8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400427dc: 12 80 00 04 bne 400427ec <_libcsupport_scanpw+0x38> <== NOT EXECUTED 400427e0: 98 10 20 00 clr %o4 <== NOT EXECUTED || !scanInt(fp, &pwgid) || !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; 400427e4: 81 c7 e0 08 ret <== NOT EXECUTED 400427e8: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED || !scanString(fp, &pwd->pw_passwd, &buffer, &bufsize, 0) 400427ec: 96 07 a0 50 add %fp, 0x50, %o3 <== NOT EXECUTED 400427f0: 94 07 a0 4c add %fp, 0x4c, %o2 <== NOT EXECUTED 400427f4: 92 06 60 04 add %i1, 4, %o1 <== NOT EXECUTED 400427f8: 7f ff ff bb call 400426e4 <== NOT EXECUTED 400427fc: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042800: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042804: 02 bf ff f8 be 400427e4 <_libcsupport_scanpw+0x30> <== NOT EXECUTED 40042808: 92 07 bf f8 add %fp, -8, %o1 <== NOT EXECUTED || !scanInt(fp, &pwuid) 4004280c: 7f ff ff 7d call 40042600 <== NOT EXECUTED 40042810: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042814: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042818: 02 bf ff f3 be 400427e4 <_libcsupport_scanpw+0x30> <== NOT EXECUTED 4004281c: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED || !scanInt(fp, &pwgid) 40042820: 7f ff ff 78 call 40042600 <== NOT EXECUTED 40042824: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042828: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4004282c: 02 bf ff ee be 400427e4 <_libcsupport_scanpw+0x30> <== NOT EXECUTED 40042830: 98 10 20 00 clr %o4 <== NOT EXECUTED || !scanString(fp, &pwd->pw_comment, &buffer, &bufsize, 0) 40042834: 96 07 a0 50 add %fp, 0x50, %o3 <== NOT EXECUTED 40042838: 94 07 a0 4c add %fp, 0x4c, %o2 <== NOT EXECUTED 4004283c: 92 06 60 0c add %i1, 0xc, %o1 <== NOT EXECUTED 40042840: 7f ff ff a9 call 400426e4 <== NOT EXECUTED 40042844: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042848: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4004284c: 02 bf ff e6 be 400427e4 <_libcsupport_scanpw+0x30> <== NOT EXECUTED 40042850: 98 10 20 00 clr %o4 <== NOT EXECUTED || !scanString(fp, &pwd->pw_gecos, &buffer, &bufsize, 0) 40042854: 96 07 a0 50 add %fp, 0x50, %o3 <== NOT EXECUTED 40042858: 94 07 a0 4c add %fp, 0x4c, %o2 <== NOT EXECUTED 4004285c: 92 06 60 10 add %i1, 0x10, %o1 <== NOT EXECUTED 40042860: 7f ff ff a1 call 400426e4 <== NOT EXECUTED 40042864: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042868: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4004286c: 02 bf ff de be 400427e4 <_libcsupport_scanpw+0x30> <== NOT EXECUTED 40042870: 98 10 20 00 clr %o4 <== NOT EXECUTED || !scanString(fp, &pwd->pw_dir, &buffer, &bufsize, 0) 40042874: 96 07 a0 50 add %fp, 0x50, %o3 <== NOT EXECUTED 40042878: 94 07 a0 4c add %fp, 0x4c, %o2 <== NOT EXECUTED 4004287c: 92 06 60 14 add %i1, 0x14, %o1 <== NOT EXECUTED 40042880: 7f ff ff 99 call 400426e4 <== NOT EXECUTED 40042884: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042888: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4004288c: 02 bf ff d6 be 400427e4 <_libcsupport_scanpw+0x30> <== NOT EXECUTED 40042890: 98 10 20 01 mov 1, %o4 <== NOT EXECUTED || !scanString(fp, &pwd->pw_shell, &buffer, &bufsize, 1)) 40042894: 96 07 a0 50 add %fp, 0x50, %o3 <== NOT EXECUTED 40042898: 94 07 a0 4c add %fp, 0x4c, %o2 <== NOT EXECUTED 4004289c: 92 06 60 18 add %i1, 0x18, %o1 <== NOT EXECUTED 400428a0: 7f ff ff 91 call 400426e4 <== NOT EXECUTED 400428a4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400428a8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400428ac: 02 bf ff ce be 400427e4 <_libcsupport_scanpw+0x30> <== NOT EXECUTED 400428b0: c2 07 bf f8 ld [ %fp + -8 ], %g1 <== NOT EXECUTED pwd->pw_uid = pwuid; 400428b4: c2 36 60 08 sth %g1, [ %i1 + 8 ] <== NOT EXECUTED pwd->pw_gid = pwgid; 400428b8: c2 07 bf fc ld [ %fp + -4 ], %g1 <== NOT EXECUTED 400428bc: c2 36 60 0a sth %g1, [ %i1 + 0xa ] <== NOT EXECUTED return 1; } 400428c0: 81 c7 e0 08 ret <== NOT EXECUTED 400428c4: 91 e8 20 01 restore %g0, 1, %o0 <== NOT EXECUTED =============================================================================== 4002c188 <_lseek_r>: struct _reent *ptr RTEMS_UNUSED, int fd, off_t offset, int whence ) { 4002c188: 86 10 00 0b mov %o3, %g3 <== NOT EXECUTED return lseek( fd, offset, whence ); 4002c18c: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 4002c190: 96 10 00 0c mov %o4, %o3 <== NOT EXECUTED 4002c194: 92 10 00 0a mov %o2, %o1 <== NOT EXECUTED 4002c198: 94 10 00 03 mov %g3, %o2 <== NOT EXECUTED 4002c19c: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 4002c1a0: 7f ff ff ca call 4002c0c8 <== NOT EXECUTED 4002c1a4: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40009e2c <_open_r>: struct _reent *ptr RTEMS_UNUSED, const char *buf, int oflag, int mode ) { 40009e2c: 82 10 00 0a mov %o2, %g1 <== NOT EXECUTED return open( buf, oflag, mode ); 40009e30: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 40009e34: 94 10 00 0b mov %o3, %o2 <== NOT EXECUTED 40009e38: 92 10 00 01 mov %g1, %o1 <== NOT EXECUTED 40009e3c: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40009e40: 7f ff ff 76 call 40009c18 <== NOT EXECUTED 40009e44: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40019e64 <_read_r>: struct _reent *ptr RTEMS_UNUSED, int fd, void *buf, size_t nbytes ) { 40019e64: 82 10 00 0a mov %o2, %g1 <== NOT EXECUTED return read( fd, buf, nbytes ); 40019e68: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 40019e6c: 94 10 00 0b mov %o3, %o2 <== NOT EXECUTED 40019e70: 92 10 00 01 mov %g1, %o1 <== NOT EXECUTED 40019e74: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40019e78: 7f ff ff c1 call 40019d7c <== NOT EXECUTED 40019e7c: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4002c1b8 <_realloc_r>: void *_realloc_r( struct _reent *ignored, void *ptr, size_t size ) { 4002c1b8: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED (void) ignored; return realloc( ptr, size ); 4002c1bc: 92 10 00 0a mov %o2, %o1 <== NOT EXECUTED 4002c1c0: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 4002c1c4: 7f ff 77 78 call 40009fa4 <== NOT EXECUTED 4002c1c8: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4007a590 <_rename_r>: int _rename_r( struct _reent *ptr RTEMS_UNUSED, const char *old, const char *new ) { 4007a590: 9d e3 bf 18 save %sp, -232, %sp <== NOT EXECUTED rtems_filesystem_eval_path_context_t old_ctx; int old_eval_flags = 0; rtems_filesystem_location_info_t old_parentloc; int old_parent_eval_flags = RTEMS_FS_PERMS_WRITE | RTEMS_FS_FOLLOW_HARD_LINK; const rtems_filesystem_location_info_t *old_currentloc = 4007a594: 98 10 20 0a mov 0xa, %o4 <== NOT EXECUTED 4007a598: 96 07 bf 78 add %fp, -136, %o3 <== NOT EXECUTED 4007a59c: 94 10 20 00 clr %o2 <== NOT EXECUTED 4007a5a0: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4007a5a4: 7f fe 4b 33 call 4000d270 <== NOT EXECUTED 4007a5a8: 90 07 bf 90 add %fp, -112, %o0 <== NOT EXECUTED /* FIXME: This is not POSIX conform */ int new_eval_flags = RTEMS_FS_FOLLOW_HARD_LINK | RTEMS_FS_MAKE | RTEMS_FS_EXCLUSIVE; const rtems_filesystem_location_info_t *new_currentloc = 4007a5ac: 94 10 20 68 mov 0x68, %o2 <== NOT EXECUTED const rtems_filesystem_location_info_t *old_currentloc = 4007a5b0: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED const rtems_filesystem_location_info_t *new_currentloc = 4007a5b4: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 4007a5b8: 7f fe 4b 22 call 4000d240 <== NOT EXECUTED 4007a5bc: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_start( &new_ctx, new, new_eval_flags ); rv = rtems_filesystem_location_exists_in_same_instance_as( 4007a5c0: 92 10 00 08 mov %o0, %o1 <== NOT EXECUTED const rtems_filesystem_location_info_t *new_currentloc = 4007a5c4: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED rv = rtems_filesystem_location_exists_in_same_instance_as( 4007a5c8: 7f ff 23 cf call 40043504 <== NOT EXECUTED 4007a5cc: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED old_currentloc, new_currentloc ); if ( rv == 0 ) { 4007a5d0: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 4007a5d4: 12 80 00 0b bne 4007a600 <_rename_r+0x70> <== NOT EXECUTED 4007a5d8: d8 07 bf d4 ld [ %fp + -44 ], %o4 <== NOT EXECUTED rv = (*new_currentloc->mt_entry->ops->rename_h)( 4007a5dc: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 <== NOT EXECUTED 4007a5e0: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED 4007a5e4: c2 00 60 44 ld [ %g1 + 0x44 ], %g1 <== NOT EXECUTED 4007a5e8: d6 07 bf d0 ld [ %fp + -48 ], %o3 <== NOT EXECUTED 4007a5ec: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 4007a5f0: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 4007a5f4: 9f c0 40 00 call %g1 <== NOT EXECUTED 4007a5f8: 90 07 bf 78 add %fp, -136, %o0 <== NOT EXECUTED 4007a5fc: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_get_token( &new_ctx ), rtems_filesystem_eval_path_get_tokenlen( &new_ctx ) ); } rtems_filesystem_eval_path_cleanup_with_parent( &old_ctx, &old_parentloc ); 4007a600: 90 07 bf 90 add %fp, -112, %o0 <== NOT EXECUTED 4007a604: 7f fe 4b 68 call 4000d3a4 <== NOT EXECUTED 4007a608: 92 07 bf 78 add %fp, -136, %o1 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &new_ctx ); 4007a60c: 7f fe 4b 57 call 4000d368 <== NOT EXECUTED 4007a610: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED return rv; } 4007a614: 81 c7 e0 08 ret <== NOT EXECUTED 4007a618: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 400415e8 : int access( const char *path, int amode ) { 400415e8: 9d e3 bf 40 save %sp, -192, %sp <== NOT EXECUTED struct stat statbuf; if ( stat(path, &statbuf) ) 400415ec: 92 07 bf a0 add %fp, -96, %o1 <== NOT EXECUTED 400415f0: 7f ff 2d 75 call 4000cbc4 <== NOT EXECUTED 400415f4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400415f8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400415fc: 12 80 00 17 bne 40041658 <== NOT EXECUTED 40041600: 80 8e 60 04 btst 4, %i1 <== NOT EXECUTED return -1; if ( amode & R_OK ) { 40041604: 02 80 00 06 be 4004161c <== NOT EXECUTED 40041608: 80 8e 60 02 btst 2, %i1 <== NOT EXECUTED if (!( statbuf.st_mode & S_IREAD )) 4004160c: c2 07 bf ac ld [ %fp + -84 ], %g1 <== NOT EXECUTED 40041610: 80 88 61 00 btst 0x100, %g1 <== NOT EXECUTED 40041614: 02 80 00 11 be 40041658 <== NOT EXECUTED 40041618: 80 8e 60 02 btst 2, %i1 <== NOT EXECUTED return -1; } if ( amode & W_OK ) { 4004161c: 02 80 00 07 be 40041638 <== NOT EXECUTED 40041620: b0 8e 60 01 andcc %i1, 1, %i0 <== NOT EXECUTED if ( !( statbuf.st_mode & S_IWRITE ) ) 40041624: c2 07 bf ac ld [ %fp + -84 ], %g1 <== NOT EXECUTED 40041628: 80 88 60 80 btst 0x80, %g1 <== NOT EXECUTED 4004162c: 02 80 00 09 be 40041650 <== NOT EXECUTED 40041630: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED return -1; } if ( amode & X_OK ) { 40041634: b0 8e 60 01 andcc %i1, 1, %i0 <== NOT EXECUTED 40041638: 02 80 00 06 be 40041650 <== NOT EXECUTED 4004163c: f2 07 bf ac ld [ %fp + -84 ], %i1 <== NOT EXECUTED if ( !( statbuf.st_mode & S_IEXEC ) ) 40041640: b3 36 60 06 srl %i1, 6, %i1 <== NOT EXECUTED 40041644: b2 1e 60 01 xor %i1, 1, %i1 <== NOT EXECUTED 40041648: b2 0e 60 01 and %i1, 1, %i1 <== NOT EXECUTED 4004164c: b0 20 00 19 neg %i1, %i0 <== NOT EXECUTED 40041650: 81 c7 e0 08 ret <== NOT EXECUTED 40041654: 81 e8 00 00 restore <== NOT EXECUTED return -1; 40041658: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED return -1; } return 0; } 4004165c: 81 c7 e0 08 ret <== NOT EXECUTED 40041660: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4001a5d4 : speed_t cfgetospeed( const struct termios *tp ) { return tp->c_ospeed; } 4001a5d4: 81 c3 e0 08 retl <== NOT EXECUTED 4001a5d8: d0 02 20 28 ld [ %o0 + 0x28 ], %o0 <== NOT EXECUTED =============================================================================== 4001a5dc : */ int cfsetispeed( struct termios *tp, speed_t speed ) { 4001a5dc: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED if ( rtems_termios_baud_to_index( speed ) == -1 ) 4001a5e0: 40 00 09 5e call 4001cb58 <== NOT EXECUTED 4001a5e4: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 4001a5e8: 80 a2 3f ff cmp %o0, -1 <== NOT EXECUTED 4001a5ec: 02 80 00 07 be 4001a608 <== NOT EXECUTED 4001a5f0: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); tp->c_ispeed = speed; 4001a5f4: f2 26 20 24 st %i1, [ %i0 + 0x24 ] <== NOT EXECUTED return 0; 4001a5f8: ba 10 20 00 clr %i5 <== NOT EXECUTED } 4001a5fc: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED 4001a600: 81 c7 e0 08 ret <== NOT EXECUTED 4001a604: 81 e8 00 00 restore <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4001a608: 40 00 cf 06 call 4004e220 <__errno> <== NOT EXECUTED 4001a60c: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED 4001a610: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 4001a614: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4001a618: 81 c7 e0 08 ret <== NOT EXECUTED 4001a61c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4001a620 : */ int cfsetospeed( struct termios *tp, speed_t speed ) { 4001a620: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED if ( rtems_termios_baud_to_index( speed ) == -1 ) 4001a624: 40 00 09 4d call 4001cb58 <== NOT EXECUTED 4001a628: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 4001a62c: 80 a2 3f ff cmp %o0, -1 <== NOT EXECUTED 4001a630: 02 80 00 07 be 4001a64c <== NOT EXECUTED 4001a634: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); tp->c_ospeed = speed; 4001a638: f2 26 20 28 st %i1, [ %i0 + 0x28 ] <== NOT EXECUTED return 0; 4001a63c: ba 10 20 00 clr %i5 <== NOT EXECUTED } 4001a640: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED 4001a644: 81 c7 e0 08 ret <== NOT EXECUTED 4001a648: 81 e8 00 00 restore <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4001a64c: 40 00 ce f5 call 4004e220 <__errno> <== NOT EXECUTED 4001a650: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED 4001a654: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 4001a658: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4001a65c: 81 c7 e0 08 ret <== NOT EXECUTED 4001a660: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40041850 : int chdir( const char *path ) { 40041850: 9d e3 bf 50 save %sp, -176, %sp <== NOT EXECUTED rtems_filesystem_eval_path_context_t ctx; int eval_flags = RTEMS_FS_PERMS_EXEC | RTEMS_FS_FOLLOW_LINK; rtems_filesystem_location_info_t pathloc; rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); 40041854: 94 10 20 19 mov 0x19, %o2 <== NOT EXECUTED 40041858: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 4004185c: 7f ff 2e 79 call 4000d240 <== NOT EXECUTED 40041860: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED rtems_filesystem_location_copy_and_detach( 40041864: 92 07 bf e0 add %fp, -32, %o1 <== NOT EXECUTED 40041868: 7f ff 30 0f call 4000d8a4 <== NOT EXECUTED 4004186c: 90 07 bf b0 add %fp, -80, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_extract_currentloc( &ctx, &pathloc ); rv = rtems_filesystem_chdir( &pathloc ); 40041870: 7f ff ff d3 call 400417bc <== NOT EXECUTED 40041874: 90 07 bf b0 add %fp, -80, %o0 <== NOT EXECUTED 40041878: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 4004187c: 7f ff 2e bb call 4000d368 <== NOT EXECUTED 40041880: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED return rv; } 40041884: 81 c7 e0 08 ret <== NOT EXECUTED 40041888: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000b33c : /** * POSIX 1003.1b 5.6.4 - Change File Modes */ int chmod( const char *path, mode_t mode ) { 4000b33c: 9d e3 bf 68 save %sp, -152, %sp <== NOT EXECUTED int rv = 0; rtems_filesystem_eval_path_context_t ctx; int eval_flags = RTEMS_FS_FOLLOW_LINK; const rtems_filesystem_location_info_t *currentloc = 4000b340: 94 10 20 18 mov 0x18, %o2 <== NOT EXECUTED 4000b344: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 4000b348: 40 00 07 be call 4000d240 <== NOT EXECUTED 4000b34c: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); rv = rtems_filesystem_chmod( currentloc, mode ); 4000b350: 40 00 00 41 call 4000b454 <== NOT EXECUTED 4000b354: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000b358: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 4000b35c: 40 00 08 03 call 4000d368 <== NOT EXECUTED 4000b360: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED return rv; } 4000b364: 81 c7 e0 08 ret <== NOT EXECUTED 4000b368: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4004188c : /** * POSIX 1003.1b 5.6.5 - Change Owner and Group of a File */ int chown( const char *path, uid_t owner, gid_t group ) { 4004188c: 9d e3 bf 68 save %sp, -152, %sp <== NOT EXECUTED int rv; rtems_filesystem_eval_path_context_t ctx; int eval_flags = RTEMS_FS_FOLLOW_LINK; const rtems_filesystem_location_info_t *currentloc = 40041890: 94 10 20 18 mov 0x18, %o2 <== NOT EXECUTED 40041894: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40041898: 7f ff 2e 6a call 4000d240 <== NOT EXECUTED 4004189c: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); rv = rtems_filesystem_chown( currentloc, owner, group ); 400418a0: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 400418a4: 40 00 01 02 call 40041cac <== NOT EXECUTED 400418a8: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400418ac: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 400418b0: 7f ff 2e ae call 4000d368 <== NOT EXECUTED 400418b4: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED return rv; } 400418b8: 81 c7 e0 08 ret <== NOT EXECUTED 400418bc: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 400418c0 : #include #include int chroot( const char *path ) { 400418c0: 9d e3 be e8 save %sp, -280, %sp <== NOT EXECUTED /* * We use the global environment for path evaluation. This makes it possible * to escape from a chroot environment referencing an unmounted file system. */ rtems_filesystem_eval_path_start_with_root_and_current( 400418c4: 40 00 8b 8f call 40064700 <== NOT EXECUTED 400418c8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400418cc: 96 10 20 19 mov 0x19, %o3 <== NOT EXECUTED 400418d0: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400418d4: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400418d8: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED 400418dc: 1b 10 02 2e sethi %hi(0x4008b800), %o5 <== NOT EXECUTED 400418e0: 9a 13 62 78 or %o5, 0x278, %o5 ! 4008ba78 <== NOT EXECUTED 400418e4: 7f ff 2e 01 call 4000d0e8 <== NOT EXECUTED 400418e8: 98 03 60 04 add %o5, 4, %o4 <== NOT EXECUTED 400418ec: 92 07 bf 80 add %fp, -128, %o1 <== NOT EXECUTED 400418f0: 7f ff 2f ed call 4000d8a4 <== NOT EXECUTED 400418f4: 90 07 bf 50 add %fp, -176, %o0 <== NOT EXECUTED &rtems_global_user_env.root_directory, &rtems_global_user_env.current_directory ); rtems_filesystem_eval_path_extract_currentloc( &ctx, &loc ); new_current_loc = rtems_filesystem_location_transform_to_global( &loc ); 400418f8: 7f ff 30 16 call 4000d950 <== NOT EXECUTED 400418fc: 90 07 bf 50 add %fp, -176, %o0 <== NOT EXECUTED 40041900: d0 27 bf 4c st %o0, [ %fp + -180 ] <== NOT EXECUTED if ( !rtems_filesystem_global_location_is_null( new_current_loc ) ) { 40041904: 3b 10 01 f4 sethi %hi(0x4007d000), %i5 <== NOT EXECUTED 40041908: c2 02 20 10 ld [ %o0 + 0x10 ], %g1 <== NOT EXECUTED 4004190c: ba 17 62 58 or %i5, 0x258, %i5 <== NOT EXECUTED 40041910: 80 a0 40 1d cmp %g1, %i5 <== NOT EXECUTED 40041914: 02 80 00 3c be 40041a04 <== NOT EXECUTED 40041918: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_global_location_t *new_root_loc = 4004191c: 7f ff 2f 63 call 4000d6a8 <== NOT EXECUTED 40041920: 90 07 bf 4c add %fp, -180, %o0 <== NOT EXECUTED st.st_mode = 0; 40041924: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED 40041928: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED (void) ( *loc->handlers->fstat_h )( loc, &st ); 4004192c: c2 02 20 10 ld [ %o0 + 0x10 ], %g1 <== NOT EXECUTED 40041930: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 <== NOT EXECUTED 40041934: 9f c0 40 00 call %g1 <== NOT EXECUTED 40041938: 92 07 bf a0 add %fp, -96, %o1 <== NOT EXECUTED rtems_filesystem_global_location_obtain( &new_current_loc ); mode_t type = rtems_filesystem_location_type( &new_root_loc->location ); if ( S_ISDIR( type ) ) { 4004193c: 05 00 00 3c sethi %hi(0xf000), %g2 <== NOT EXECUTED 40041940: c2 07 bf ac ld [ %fp + -84 ], %g1 <== NOT EXECUTED 40041944: 82 08 40 02 and %g1, %g2, %g1 <== NOT EXECUTED 40041948: 05 00 00 10 sethi %hi(0x4000), %g2 <== NOT EXECUTED 4004194c: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 40041950: 32 80 00 14 bne,a 400419a0 <== NOT EXECUTED 40041954: c2 07 20 10 ld [ %i4 + 0x10 ], %g1 <== NOT EXECUTED sc = rtems_libio_set_private_env(); 40041958: 7f ff 2b 52 call 4000c6a0 <== NOT EXECUTED 4004195c: 01 00 00 00 nop <== NOT EXECUTED if (sc == RTEMS_SUCCESSFUL) { 40041960: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40041964: 12 80 00 21 bne 400419e8 <== NOT EXECUTED 40041968: 80 a2 20 0d cmp %o0, 0xd <== NOT EXECUTED rtems_filesystem_global_location_assign( &rtems_filesystem_root, 4004196c: 7f ff 2b 38 call 4000c64c <== NOT EXECUTED 40041970: b0 10 20 00 clr %i0 <== NOT EXECUTED rtems_filesystem_global_location_assign( 40041974: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 40041978: 7f ff 2f a0 call 4000d7f8 <== NOT EXECUTED 4004197c: 90 02 20 04 add %o0, 4, %o0 <== NOT EXECUTED new_root_loc ); rtems_filesystem_global_location_assign( &rtems_filesystem_current, 40041980: 7f ff 2b 33 call 4000c64c <== NOT EXECUTED 40041984: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_global_location_assign( 40041988: 7f ff 2f 9c call 4000d7f8 <== NOT EXECUTED 4004198c: d2 07 bf 4c ld [ %fp + -180 ], %o1 <== NOT EXECUTED } } else { rv = -1; } rtems_filesystem_eval_path_cleanup( &ctx ); 40041990: 7f ff 2e 76 call 4000d368 <== NOT EXECUTED 40041994: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED 40041998: 81 c7 e0 08 ret <== NOT EXECUTED 4004199c: 81 e8 00 00 restore <== NOT EXECUTED if ( !rtems_filesystem_location_is_null( loc ) ) { 400419a0: 80 a0 40 1d cmp %g1, %i5 <== NOT EXECUTED 400419a4: 22 80 00 07 be,a 400419c0 <== NOT EXECUTED 400419a8: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED errno = eno; 400419ac: 40 00 6b da call 4005c914 <__errno> <== NOT EXECUTED 400419b0: 01 00 00 00 nop <== NOT EXECUTED 400419b4: 82 10 20 14 mov 0x14, %g1 ! 14 <_TLS_Alignment+0x13> <== NOT EXECUTED 400419b8: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED rtems_filesystem_global_location_release( new_root_loc, true ); 400419bc: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 400419c0: 7f ff 2f 74 call 4000d790 <== NOT EXECUTED 400419c4: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 400419c8: 7f ff 2e 68 call 4000d368 <== NOT EXECUTED 400419cc: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED if ( rv != 0 ) { rtems_filesystem_global_location_release( new_current_loc, false ); 400419d0: d0 07 bf 4c ld [ %fp + -180 ], %o0 <== NOT EXECUTED 400419d4: 92 10 20 00 clr %o1 <== NOT EXECUTED 400419d8: 7f ff 2f 6e call 4000d790 <== NOT EXECUTED 400419dc: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED } return rv; } 400419e0: 81 c7 e0 08 ret <== NOT EXECUTED 400419e4: 81 e8 00 00 restore <== NOT EXECUTED if (sc != RTEMS_UNSATISFIED) { 400419e8: 22 bf ff f6 be,a 400419c0 <== NOT EXECUTED 400419ec: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED errno = ENOMEM; 400419f0: 40 00 6b c9 call 4005c914 <__errno> <== NOT EXECUTED 400419f4: 01 00 00 00 nop <== NOT EXECUTED 400419f8: 82 10 20 0c mov 0xc, %g1 ! c <_TLS_Alignment+0xb> <== NOT EXECUTED 400419fc: 10 bf ff f0 b 400419bc <== NOT EXECUTED 40041a00: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 40041a04: 7f ff 2e 59 call 4000d368 <== NOT EXECUTED 40041a08: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED rtems_filesystem_global_location_release( new_current_loc, false ); 40041a0c: 10 bf ff f2 b 400419d4 <== NOT EXECUTED 40041a10: d0 07 bf 4c ld [ %fp + -180 ], %o0 <== NOT EXECUTED =============================================================================== 4000e664 : #include int close( int fd ) { 4000e664: 9d e3 bf a0 save %sp, -96, %sp rtems_libio_t *iop; unsigned int flags; int rc; if ( (uint32_t) fd >= rtems_libio_number_iops ) { 4000e668: 03 10 00 3f sethi %hi(0x4000fc00), %g1 4000e66c: c2 00 63 f0 ld [ %g1 + 0x3f0 ], %g1 ! 4000fff0 4000e670: 80 a6 00 01 cmp %i0, %g1 4000e674: 1a 80 00 1b bcc 4000e6e0 <== NEVER TAKEN 4000e678: 01 00 00 00 nop 4000e67c: b7 2e 20 01 sll %i0, 1, %i3 4000e680: b0 06 c0 18 add %i3, %i0, %i0 4000e684: 37 10 00 4c sethi %hi(0x40013000), %i3 4000e688: b9 2e 20 04 sll %i0, 4, %i4 4000e68c: b6 16 e1 48 or %i3, 0x148, %i3 4000e690: b8 06 c0 1c add %i3, %i4, %i4 4000e694: c4 07 20 08 ld [ %i4 + 8 ], %g2 unsigned int actual; (void) succ; (void) fail; _ISR_Local_disable( level ); actual = *obj; 4000e698: 10 80 00 0f b 4000e6d4 4000e69c: ba 10 00 1c mov %i4, %i5 __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000e6a0: 91 d0 20 09 ta 9 <== NOT EXECUTED 4000e6a4: c6 07 60 08 ld [ %i5 + 8 ], %g3 success = ( actual == *expected ); if ( success ) { 4000e6a8: 80 a1 00 03 cmp %g4, %g3 4000e6ac: 12 80 00 03 bne 4000e6b8 <== NEVER TAKEN 4000e6b0: 84 08 ae ff and %g2, 0xeff, %g2 <== NOT EXECUTED *obj = desired; 4000e6b4: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000e6b8: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000e6bc: 01 00 00 00 nop desired, ATOMIC_ORDER_ACQ_REL, ATOMIC_ORDER_RELAXED ); if ( success ) { 4000e6c0: 80 a1 00 03 cmp %g4, %g3 4000e6c4: 02 80 00 0d be 4000e6f8 <== ALWAYS TAKEN 4000e6c8: 80 88 f0 00 btst -4096, %g3 break; } if ( ( flags & ~( LIBIO_FLAGS_REFERENCE_INC - 1U ) ) != 0 ) { 4000e6cc: 12 80 00 16 bne 4000e724 <== NOT EXECUTED 4000e6d0: 84 10 00 03 mov %g3, %g2 <== NOT EXECUTED if ( ( flags & LIBIO_FLAGS_OPEN ) == 0 ) { 4000e6d4: 80 88 a1 00 btst 0x100, %g2 4000e6d8: 12 bf ff f2 bne 4000e6a0 <== ALWAYS TAKEN 4000e6dc: 88 08 af ff and %g2, 0xfff, %g4 rtems_set_errno_and_return_minus_one( EBADF ); 4000e6e0: 40 00 00 1e call 4000e758 <__errno> <== NOT EXECUTED 4000e6e4: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000e6e8: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 4000e6ec: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4000e6f0: 81 c7 e0 08 ret <== NOT EXECUTED 4000e6f4: 81 e8 00 00 restore <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBUSY ); } } rc = (*iop->pathinfo.handlers->close_h)( iop ); 4000e6f8: b1 2e 20 04 sll %i0, 4, %i0 4000e6fc: b6 06 c0 18 add %i3, %i0, %i3 4000e700: c2 06 e0 1c ld [ %i3 + 0x1c ], %g1 4000e704: c2 00 60 04 ld [ %g1 + 4 ], %g1 4000e708: 9f c0 40 00 call %g1 4000e70c: 90 10 00 1c mov %i4, %o0 4000e710: b0 10 00 08 mov %o0, %i0 rtems_libio_free( iop ); 4000e714: 7f ff fb 75 call 4000d4e8 4000e718: 90 10 00 1c mov %i4, %o0 return rc; } 4000e71c: 81 c7 e0 08 ret 4000e720: 81 e8 00 00 restore rtems_set_errno_and_return_minus_one( EBUSY ); 4000e724: 40 00 00 0d call 4000e758 <__errno> <== NOT EXECUTED 4000e728: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000e72c: 82 10 20 10 mov 0x10, %g1 <== NOT EXECUTED 4000e730: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4000e734: 81 c7 e0 08 ret <== NOT EXECUTED 4000e738: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4005c534 : void endgrent(void) { 4005c534: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED grp_context *ctx = grp_get_context(); 4005c538: 7f ff ff b4 call 4005c408 <== NOT EXECUTED 4005c53c: 01 00 00 00 nop <== NOT EXECUTED if (ctx == NULL) 4005c540: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 4005c544: 02 80 00 0e be 4005c57c <== NOT EXECUTED 4005c548: 01 00 00 00 nop <== NOT EXECUTED return; if (ctx->fp != NULL) { 4005c54c: d0 07 40 00 ld [ %i5 ], %o0 <== NOT EXECUTED 4005c550: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4005c554: 02 80 00 04 be 4005c564 <== NOT EXECUTED 4005c558: 01 00 00 00 nop <== NOT EXECUTED fclose(ctx->fp); 4005c55c: 40 00 01 66 call 4005caf4 <== NOT EXECUTED 4005c560: 01 00 00 00 nop <== NOT EXECUTED } free(ctx); 4005c564: 7f fe bc 47 call 4000b680 <== NOT EXECUTED 4005c568: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED pthread_setspecific(grp_key, NULL); 4005c56c: 03 10 02 41 sethi %hi(0x40090400), %g1 <== NOT EXECUTED 4005c570: f0 00 60 6c ld [ %g1 + 0x6c ], %i0 ! 4009046c <== NOT EXECUTED 4005c574: 7f fe f2 92 call 40018fbc <== NOT EXECUTED 4005c578: 93 e8 20 00 restore %g0, 0, %o1 <== NOT EXECUTED } 4005c57c: 81 c7 e0 08 ret <== NOT EXECUTED 4005c580: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40058160 : /** * compatible with SVr4, 4.4BSD and X/OPEN - Change Directory */ int fchdir( int fd ) { 40058160: 9d e3 bf 28 save %sp, -216, %sp <== NOT EXECUTED int rv = 0; rtems_libio_t *iop; struct stat st; rtems_filesystem_location_info_t loc; st.st_mode = 0; 40058164: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED st.st_uid = 0; st.st_gid = 0; LIBIO_GET_IOP( fd, iop ); 40058168: 03 10 01 f2 sethi %hi(0x4007c800), %g1 <== NOT EXECUTED st.st_uid = 0; 4005816c: c0 37 bf b2 clrh [ %fp + -78 ] <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 40058170: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 40058174: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 40058178: 1a 80 00 44 bcc 40058288 <== NOT EXECUTED 4005817c: c0 37 bf b4 clrh [ %fp + -76 ] <== NOT EXECUTED 40058180: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED 40058184: b0 07 40 18 add %i5, %i0, %i0 <== NOT EXECUTED return &rtems_libio_iops[ fd ]; 40058188: 3b 10 02 41 sethi %hi(0x40090400), %i5 <== NOT EXECUTED 4005818c: b1 2e 20 04 sll %i0, 4, %i0 <== NOT EXECUTED 40058190: ba 17 63 48 or %i5, 0x348, %i5 <== NOT EXECUTED 40058194: b8 06 00 1d add %i0, %i5, %i4 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40058198: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 4005819c: c4 07 20 08 ld [ %i4 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 400581a0: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 400581a4: c6 27 20 08 st %g3, [ %i4 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400581a8: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400581ac: 01 00 00 00 nop <== NOT EXECUTED 400581b0: 80 88 a1 00 btst 0x100, %g2 <== NOT EXECUTED 400581b4: 02 80 00 3b be 400582a0 <== NOT EXECUTED 400581b8: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_instance_lock( &iop->pathinfo ); 400581bc: b0 06 20 0c add %i0, 0xc, %i0 <== NOT EXECUTED 400581c0: ba 06 00 1d add %i0, %i5, %i5 <== NOT EXECUTED 400581c4: d0 07 60 14 ld [ %i5 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 400581c8: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 400581cc: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 400581d0: 9f c0 40 00 call %g1 <== NOT EXECUTED 400581d4: 01 00 00 00 nop <== NOT EXECUTED rv = (*iop->pathinfo.handlers->fstat_h)( &iop->pathinfo, &st ); 400581d8: c2 07 20 1c ld [ %i4 + 0x1c ], %g1 <== NOT EXECUTED 400581dc: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 <== NOT EXECUTED 400581e0: 92 07 bf a0 add %fp, -96, %o1 <== NOT EXECUTED 400581e4: 9f c0 40 00 call %g1 <== NOT EXECUTED 400581e8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if ( rv == 0 ) { 400581ec: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 400581f0: 02 80 00 16 be 40058248 <== NOT EXECUTED 400581f4: d6 17 bf b4 lduh [ %fp + -76 ], %o3 <== NOT EXECUTED 400581f8: d0 07 60 14 ld [ %i5 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->unlock_h)( mt_entry ); 400581fc: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 40058200: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 40058204: 9f c0 40 00 call %g1 <== NOT EXECUTED 40058208: 01 00 00 00 nop <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4005820c: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 40058210: c4 07 20 08 ld [ %i4 + 8 ], %g2 <== NOT EXECUTED 40058214: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40058218: c4 27 20 08 st %g2, [ %i4 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4005821c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40058220: 01 00 00 00 nop <== NOT EXECUTED } } rtems_filesystem_instance_unlock( &iop->pathinfo ); rtems_libio_iop_drop( iop ); if ( rv == 0 ) { 40058224: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 40058228: 02 80 00 04 be 40058238 <== NOT EXECUTED 4005822c: 01 00 00 00 nop <== NOT EXECUTED rv = rtems_filesystem_chdir( &loc ); } return rv; } 40058230: 81 c7 e0 08 ret <== NOT EXECUTED 40058234: 81 e8 00 00 restore <== NOT EXECUTED rv = rtems_filesystem_chdir( &loc ); 40058238: 7f ff a5 61 call 400417bc <== NOT EXECUTED 4005823c: 90 07 bf 88 add %fp, -120, %o0 <== NOT EXECUTED } 40058240: 81 c7 e0 08 ret <== NOT EXECUTED 40058244: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED bool access_ok = rtems_filesystem_check_access( 40058248: d4 17 bf b2 lduh [ %fp + -78 ], %o2 <== NOT EXECUTED 4005824c: d2 07 bf ac ld [ %fp + -84 ], %o1 <== NOT EXECUTED 40058250: 7f fe d2 71 call 4000cc14 <== NOT EXECUTED 40058254: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED if ( access_ok ) { 40058258: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4005825c: 02 80 00 06 be 40058274 <== NOT EXECUTED 40058260: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED rtems_filesystem_location_clone( &loc, &iop->pathinfo ); 40058264: 7f ff a5 ec call 40041a14 <== NOT EXECUTED 40058268: 90 07 bf 88 add %fp, -120, %o0 <== NOT EXECUTED 4005826c: 10 bf ff e4 b 400581fc <== NOT EXECUTED 40058270: d0 07 60 14 ld [ %i5 + 0x14 ], %o0 <== NOT EXECUTED errno = EACCES; 40058274: 40 00 11 a8 call 4005c914 <__errno> <== NOT EXECUTED 40058278: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4005827c: 82 10 20 0d mov 0xd, %g1 <== NOT EXECUTED 40058280: 10 bf ff de b 400581f8 <== NOT EXECUTED 40058284: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 40058288: 40 00 11 a3 call 4005c914 <__errno> <== NOT EXECUTED 4005828c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40058290: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 40058294: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40058298: 81 c7 e0 08 ret <== NOT EXECUTED 4005829c: 81 e8 00 00 restore <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400582a0: 91 d0 20 09 ta 9 <== NOT EXECUTED 400582a4: c4 07 20 08 ld [ %i4 + 8 ], %g2 <== NOT EXECUTED 400582a8: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 400582ac: c4 27 20 08 st %g2, [ %i4 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400582b0: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400582b4: 01 00 00 00 nop <== NOT EXECUTED 400582b8: 40 00 11 97 call 4005c914 <__errno> <== NOT EXECUTED 400582bc: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 400582c0: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 400582c4: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 400582c8: 81 c7 e0 08 ret <== NOT EXECUTED 400582cc: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000b588 : /** * POSIX 1003.1b 5.6.4 - Change File Modes */ int fchmod( int fd, mode_t mode ) { 4000b588: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED int rv; rtems_libio_t *iop; LIBIO_GET_IOP( fd, iop ); 4000b58c: 03 10 01 f2 sethi %hi(0x4007c800), %g1 <== NOT EXECUTED 4000b590: c2 00 60 04 ld [ %g1 + 4 ], %g1 ! 4007c804 <== NOT EXECUTED 4000b594: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 4000b598: 1a 80 00 28 bcc 4000b638 <== NOT EXECUTED 4000b59c: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED 4000b5a0: b0 07 40 18 add %i5, %i0, %i0 <== NOT EXECUTED 4000b5a4: 3b 10 02 41 sethi %hi(0x40090400), %i5 <== NOT EXECUTED 4000b5a8: b1 2e 20 04 sll %i0, 4, %i0 <== NOT EXECUTED 4000b5ac: ba 17 63 48 or %i5, 0x348, %i5 <== NOT EXECUTED 4000b5b0: b8 06 00 1d add %i0, %i5, %i4 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000b5b4: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 4000b5b8: c4 07 20 08 ld [ %i4 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 4000b5bc: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 4000b5c0: c6 27 20 08 st %g3, [ %i4 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000b5c4: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000b5c8: 01 00 00 00 nop <== NOT EXECUTED 4000b5cc: 80 88 a1 00 btst 0x100, %g2 <== NOT EXECUTED 4000b5d0: 02 80 00 20 be 4000b650 <== NOT EXECUTED 4000b5d4: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_instance_lock( &iop->pathinfo ); 4000b5d8: b0 06 20 0c add %i0, 0xc, %i0 <== NOT EXECUTED 4000b5dc: ba 06 00 1d add %i0, %i5, %i5 <== NOT EXECUTED 4000b5e0: d0 07 60 14 ld [ %i5 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 4000b5e4: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 4000b5e8: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 4000b5ec: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000b5f0: 01 00 00 00 nop <== NOT EXECUTED rv = rtems_filesystem_chmod( &iop->pathinfo, mode ); 4000b5f4: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000b5f8: 7f ff ff 97 call 4000b454 <== NOT EXECUTED 4000b5fc: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4000b600: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED 4000b604: d0 07 60 14 ld [ %i5 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->unlock_h)( mt_entry ); 4000b608: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 4000b60c: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 4000b610: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000b614: 01 00 00 00 nop <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000b618: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 4000b61c: c4 07 20 08 ld [ %i4 + 8 ], %g2 <== NOT EXECUTED 4000b620: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4000b624: c4 27 20 08 st %g2, [ %i4 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000b628: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000b62c: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_instance_unlock( &iop->pathinfo ); rtems_libio_iop_drop( iop ); return rv; } 4000b630: 81 c7 e0 08 ret <== NOT EXECUTED 4000b634: 81 e8 00 00 restore <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 4000b638: 40 01 44 b7 call 4005c914 <__errno> <== NOT EXECUTED 4000b63c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000b640: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 4000b644: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4000b648: 81 c7 e0 08 ret <== NOT EXECUTED 4000b64c: 81 e8 00 00 restore <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000b650: 91 d0 20 09 ta 9 <== NOT EXECUTED 4000b654: c4 07 20 08 ld [ %i4 + 8 ], %g2 <== NOT EXECUTED 4000b658: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4000b65c: c4 27 20 08 st %g2, [ %i4 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000b660: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000b664: 01 00 00 00 nop <== NOT EXECUTED 4000b668: 40 01 44 ab call 4005c914 <__errno> <== NOT EXECUTED 4000b66c: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 4000b670: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 4000b674: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4000b678: 81 c7 e0 08 ret <== NOT EXECUTED 4000b67c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40041dd8 : /** * POSIX 1003.1b 5.6.5 - Change Owner and Group of a File */ int fchown( int fd, uid_t owner, gid_t group ) { 40041dd8: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED int rv; rtems_libio_t *iop; LIBIO_GET_IOP( fd, iop ); 40041ddc: 03 10 01 f2 sethi %hi(0x4007c800), %g1 <== NOT EXECUTED 40041de0: c2 00 60 04 ld [ %g1 + 4 ], %g1 ! 4007c804 <== NOT EXECUTED 40041de4: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 40041de8: 1a 80 00 29 bcc 40041e8c <== NOT EXECUTED 40041dec: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED 40041df0: b0 07 40 18 add %i5, %i0, %i0 <== NOT EXECUTED return &rtems_libio_iops[ fd ]; 40041df4: 3b 10 02 41 sethi %hi(0x40090400), %i5 <== NOT EXECUTED 40041df8: b1 2e 20 04 sll %i0, 4, %i0 <== NOT EXECUTED 40041dfc: ba 17 63 48 or %i5, 0x348, %i5 <== NOT EXECUTED 40041e00: b8 06 00 1d add %i0, %i5, %i4 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40041e04: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 40041e08: c4 07 20 08 ld [ %i4 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 40041e0c: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 40041e10: c6 27 20 08 st %g3, [ %i4 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40041e14: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40041e18: 01 00 00 00 nop <== NOT EXECUTED 40041e1c: 80 88 a1 00 btst 0x100, %g2 <== NOT EXECUTED 40041e20: 02 80 00 21 be 40041ea4 <== NOT EXECUTED 40041e24: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_instance_lock( &iop->pathinfo ); 40041e28: b0 06 20 0c add %i0, 0xc, %i0 <== NOT EXECUTED 40041e2c: ba 06 00 1d add %i0, %i5, %i5 <== NOT EXECUTED 40041e30: d0 07 60 14 ld [ %i5 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 40041e34: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 40041e38: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 40041e3c: 9f c0 40 00 call %g1 <== NOT EXECUTED 40041e40: 01 00 00 00 nop <== NOT EXECUTED rv = rtems_filesystem_chown( &iop->pathinfo, owner, group ); 40041e44: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 40041e48: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 40041e4c: 7f ff ff 98 call 40041cac <== NOT EXECUTED 40041e50: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40041e54: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED 40041e58: d0 07 60 14 ld [ %i5 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->unlock_h)( mt_entry ); 40041e5c: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 40041e60: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 40041e64: 9f c0 40 00 call %g1 <== NOT EXECUTED 40041e68: 01 00 00 00 nop <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40041e6c: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 40041e70: c4 07 20 08 ld [ %i4 + 8 ], %g2 <== NOT EXECUTED 40041e74: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40041e78: c4 27 20 08 st %g2, [ %i4 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40041e7c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40041e80: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_instance_unlock( &iop->pathinfo ); rtems_libio_iop_drop( iop ); return rv; } 40041e84: 81 c7 e0 08 ret <== NOT EXECUTED 40041e88: 81 e8 00 00 restore <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 40041e8c: 40 00 6a a2 call 4005c914 <__errno> <== NOT EXECUTED 40041e90: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40041e94: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 40041e98: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40041e9c: 81 c7 e0 08 ret <== NOT EXECUTED 40041ea0: 81 e8 00 00 restore <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40041ea4: 91 d0 20 09 ta 9 <== NOT EXECUTED 40041ea8: c4 07 20 08 ld [ %i4 + 8 ], %g2 <== NOT EXECUTED 40041eac: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40041eb0: c4 27 20 08 st %g2, [ %i4 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40041eb4: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40041eb8: 01 00 00 00 nop <== NOT EXECUTED 40041ebc: 40 00 6a 96 call 4005c914 <__errno> <== NOT EXECUTED 40041ec0: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 40041ec4: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 40041ec8: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40041ecc: 81 c7 e0 08 ret <== NOT EXECUTED 40041ed0: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40058324 : int fcntl( int fd, int cmd, ... ) { 40058324: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED int ret; va_list ap; va_start( ap, cmd ); 40058328: 86 07 a0 4c add %fp, 0x4c, %g3 <== NOT EXECUTED 4005832c: f4 27 a0 4c st %i2, [ %fp + 0x4c ] <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 40058330: 09 10 01 f2 sethi %hi(0x4007c800), %g4 <== NOT EXECUTED va_start( ap, cmd ); 40058334: f6 27 a0 50 st %i3, [ %fp + 0x50 ] <== NOT EXECUTED 40058338: f8 27 a0 54 st %i4, [ %fp + 0x54 ] <== NOT EXECUTED 4005833c: fa 27 a0 58 st %i5, [ %fp + 0x58 ] <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 40058340: c2 01 20 04 ld [ %g4 + 4 ], %g1 <== NOT EXECUTED 40058344: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 40058348: 1a 80 00 df bcc 400586c4 <== NOT EXECUTED 4005834c: c6 27 bf fc st %g3, [ %fp + -4 ] <== NOT EXECUTED 40058350: 83 2e 20 01 sll %i0, 1, %g1 <== NOT EXECUTED return &rtems_libio_iops[ fd ]; 40058354: 39 10 02 41 sethi %hi(0x40090400), %i4 <== NOT EXECUTED 40058358: a0 00 40 18 add %g1, %i0, %l0 <== NOT EXECUTED 4005835c: b8 17 23 48 or %i4, 0x348, %i4 <== NOT EXECUTED 40058360: b7 2c 20 04 sll %l0, 4, %i3 <== NOT EXECUTED 40058364: ba 07 00 1b add %i4, %i3, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40058368: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 4005836c: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 40058370: b4 20 b0 00 sub %g2, -4096, %i2 <== NOT EXECUTED 40058374: f4 27 60 08 st %i2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40058378: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4005837c: 01 00 00 00 nop <== NOT EXECUTED 40058380: 80 88 a1 00 btst 0x100, %g2 <== NOT EXECUTED 40058384: 02 80 00 d6 be 400586dc <== NOT EXECUTED 40058388: 80 a6 60 14 cmp %i1, 0x14 <== NOT EXECUTED switch ( cmd ) { 4005838c: 18 80 00 b7 bgu 40058668 <== NOT EXECUTED 40058390: 85 2e 60 02 sll %i1, 2, %g2 <== NOT EXECUTED 40058394: 03 10 01 60 sethi %hi(0x40058000), %g1 <== NOT EXECUTED 40058398: 82 10 62 d0 or %g1, 0x2d0, %g1 ! 400582d0 <== NOT EXECUTED 4005839c: c2 00 40 02 ld [ %g1 + %g2 ], %g1 <== NOT EXECUTED 400583a0: 81 c0 40 00 jmp %g1 <== NOT EXECUTED 400583a4: 01 00 00 00 nop <== NOT EXECUTED errno = ENOTSUP; 400583a8: 40 00 11 5b call 4005c914 <__errno> <== NOT EXECUTED 400583ac: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 400583b0: 82 10 20 86 mov 0x86, %g1 <== NOT EXECUTED 400583b4: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400583b8: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 400583bc: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 400583c0: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 400583c4: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400583c8: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400583cc: 01 00 00 00 nop <== NOT EXECUTED ret = vfcntl(fd,cmd,ap); va_end(ap); return ret; } 400583d0: 81 c7 e0 08 ret <== NOT EXECUTED 400583d4: 81 e8 00 00 restore <== NOT EXECUTED flags = rtems_libio_fcntl_flags( va_arg( ap, int ) ); 400583d8: 7f fe cd 8f call 4000ba14 <== NOT EXECUTED 400583dc: d0 00 c0 00 ld [ %g3 ], %o0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400583e0: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val & arg; 400583e4: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 400583e8: 84 08 bd fe and %g2, -514, %g2 <== NOT EXECUTED 400583ec: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400583f0: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400583f4: 01 00 00 00 nop <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400583f8: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val | arg; 400583fc: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED rtems_libio_iop_flags_set( iop, flags & mask ); 40058400: 90 0a 22 01 and %o0, 0x201, %o0 <== NOT EXECUTED 40058404: 90 10 80 08 or %g2, %o0, %o0 <== NOT EXECUTED 40058408: d0 27 60 08 st %o0, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4005840c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40058410: 01 00 00 00 nop <== NOT EXECUTED int ret = 0; 40058414: b0 10 20 00 clr %i0 ! 0 <== NOT EXECUTED int err = (*iop->pathinfo.handlers->fcntl_h)( iop, cmd ); 40058418: 83 2c 20 04 sll %l0, 4, %g1 <== NOT EXECUTED 4005841c: b8 07 00 01 add %i4, %g1, %i4 <== NOT EXECUTED 40058420: c2 07 20 1c ld [ %i4 + 0x1c ], %g1 <== NOT EXECUTED 40058424: c2 00 60 28 ld [ %g1 + 0x28 ], %g1 <== NOT EXECUTED 40058428: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4005842c: 9f c0 40 00 call %g1 <== NOT EXECUTED 40058430: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if (err) { 40058434: b8 92 20 00 orcc %o0, 0, %i4 <== NOT EXECUTED 40058438: 02 bf ff e0 be 400583b8 <== NOT EXECUTED 4005843c: 01 00 00 00 nop <== NOT EXECUTED errno = err; 40058440: 40 00 11 35 call 4005c914 <__errno> <== NOT EXECUTED 40058444: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 40058448: f8 22 00 00 st %i4, [ %o0 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4005844c: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 40058450: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 40058454: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40058458: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4005845c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40058460: 01 00 00 00 nop <== NOT EXECUTED } 40058464: 81 c7 e0 08 ret <== NOT EXECUTED 40058468: 81 e8 00 00 restore <== NOT EXECUTED fd2 = va_arg( ap, int ); 4005846c: e6 00 c0 00 ld [ %g3 ], %l3 <== NOT EXECUTED if ( (uint32_t) fd2 >= rtems_libio_number_iops ) { 40058470: c2 01 20 04 ld [ %g4 + 4 ], %g1 <== NOT EXECUTED 40058474: 80 a4 c0 01 cmp %l3, %g1 <== NOT EXECUTED 40058478: 1a 80 00 a5 bcc 4005870c <== NOT EXECUTED 4005847c: b5 2c e0 01 sll %l3, 1, %i2 <== NOT EXECUTED 40058480: b4 06 80 13 add %i2, %l3, %i2 <== NOT EXECUTED 40058484: a3 2e a0 04 sll %i2, 4, %l1 <== NOT EXECUTED 40058488: a4 07 00 11 add %i4, %l1, %l2 <== NOT EXECUTED if (iop != iop2) 4005848c: 80 a7 40 12 cmp %i5, %l2 <== NOT EXECUTED 40058490: 02 bf ff e2 be 40058418 <== NOT EXECUTED 40058494: b0 10 20 00 clr %i0 <== NOT EXECUTED 40058498: c2 04 a0 08 ld [ %l2 + 8 ], %g1 <== NOT EXECUTED if ((rtems_libio_iop_flags( iop2 ) & LIBIO_FLAGS_OPEN) != 0) { 4005849c: 80 88 61 00 btst 0x100, %g1 <== NOT EXECUTED 400584a0: 22 80 00 0a be,a 400584c8 <== NOT EXECUTED 400584a4: d0 07 60 08 ld [ %i5 + 8 ], %o0 <== NOT EXECUTED rv = (*iop2->pathinfo.handlers->close_h)( iop2 ); 400584a8: c2 04 a0 1c ld [ %l2 + 0x1c ], %g1 <== NOT EXECUTED 400584ac: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 400584b0: 9f c0 40 00 call %g1 <== NOT EXECUTED 400584b4: 90 10 00 12 mov %l2, %o0 <== NOT EXECUTED if (rv == 0) { 400584b8: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 400584bc: 12 80 00 5d bne 40058630 <== NOT EXECUTED 400584c0: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 400584c4: d0 07 60 08 ld [ %i5 + 8 ], %o0 <== NOT EXECUTED oflag = rtems_libio_to_fcntl_flags( rtems_libio_iop_flags( iop ) ); 400584c8: 7f fe cd 60 call 4000ba48 <== NOT EXECUTED 400584cc: 01 00 00 00 nop <== NOT EXECUTED rtems_libio_iop_flags_set( iop2, rtems_libio_fcntl_flags( oflag ) ); 400584d0: 7f fe cd 51 call 4000ba14 <== NOT EXECUTED 400584d4: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400584d8: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val | arg; 400584dc: c4 04 a0 08 ld [ %l2 + 8 ], %g2 <== NOT EXECUTED 400584e0: 90 10 80 08 or %g2, %o0, %o0 <== NOT EXECUTED 400584e4: d0 24 a0 08 st %o0, [ %l2 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400584e8: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400584ec: 01 00 00 00 nop <== NOT EXECUTED 400584f0: d0 07 60 20 ld [ %i5 + 0x20 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 400584f4: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 400584f8: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 400584fc: 9f c0 40 00 call %g1 <== NOT EXECUTED 40058500: b5 2e a0 04 sll %i2, 4, %i2 <== NOT EXECUTED rtems_filesystem_location_clone( &iop2->pathinfo, &iop->pathinfo ); 40058504: 92 06 e0 0c add %i3, 0xc, %o1 <== NOT EXECUTED 40058508: 90 04 60 0c add %l1, 0xc, %o0 <== NOT EXECUTED 4005850c: 92 07 00 09 add %i4, %o1, %o1 <== NOT EXECUTED 40058510: 7f ff a5 41 call 40041a14 <== NOT EXECUTED 40058514: 90 07 00 08 add %i4, %o0, %o0 <== NOT EXECUTED 40058518: d0 07 60 20 ld [ %i5 + 0x20 ], %o0 <== NOT EXECUTED (*mt_entry->ops->unlock_h)( mt_entry ); 4005851c: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 40058520: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 40058524: 9f c0 40 00 call %g1 <== NOT EXECUTED 40058528: b4 07 00 1a add %i4, %i2, %i2 <== NOT EXECUTED rv = (*iop2->pathinfo.handlers->open_h)( iop2, NULL, oflag, 0 ); 4005852c: c2 06 a0 1c ld [ %i2 + 0x1c ], %g1 <== NOT EXECUTED 40058530: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 40058534: 94 10 00 18 mov %i0, %o2 <== NOT EXECUTED 40058538: 96 10 20 00 clr %o3 <== NOT EXECUTED 4005853c: 92 10 20 00 clr %o1 <== NOT EXECUTED 40058540: 9f c0 40 00 call %g1 <== NOT EXECUTED 40058544: 90 10 00 12 mov %l2, %o0 <== NOT EXECUTED if ( rv == 0 ) { 40058548: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 4005854c: 22 80 00 38 be,a 4005862c <== NOT EXECUTED 40058550: b0 10 00 13 mov %l3, %i0 <== NOT EXECUTED if (ret >= 0) { 40058554: 10 80 00 37 b 40058630 <== NOT EXECUTED 40058558: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 4005855c: d0 07 60 08 ld [ %i5 + 8 ], %o0 <== NOT EXECUTED oflag = rtems_libio_to_fcntl_flags( rtems_libio_iop_flags( iop ) ); 40058560: 7f fe cd 3a call 4000ba48 <== NOT EXECUTED 40058564: 01 00 00 00 nop <== NOT EXECUTED diop = rtems_libio_allocate(); 40058568: 7f fe cd 4b call 4000ba94 <== NOT EXECUTED 4005856c: a2 10 00 08 mov %o0, %l1 <== NOT EXECUTED if (diop != NULL) { 40058570: b4 92 20 00 orcc %o0, 0, %i2 <== NOT EXECUTED 40058574: 02 bf ff 91 be 400583b8 <== NOT EXECUTED 40058578: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4005857c: d0 07 60 20 ld [ %i5 + 0x20 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 40058580: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 40058584: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 40058588: 9f c0 40 00 call %g1 <== NOT EXECUTED 4005858c: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_location_clone( &diop->pathinfo, &iop->pathinfo ); 40058590: 90 06 a0 0c add %i2, 0xc, %o0 <== NOT EXECUTED 40058594: 92 06 e0 0c add %i3, 0xc, %o1 <== NOT EXECUTED 40058598: 7f ff a5 1f call 40041a14 <== NOT EXECUTED 4005859c: 92 07 00 09 add %i4, %o1, %o1 <== NOT EXECUTED 400585a0: d0 07 60 20 ld [ %i5 + 0x20 ], %o0 <== NOT EXECUTED (*mt_entry->ops->unlock_h)( mt_entry ); 400585a4: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 400585a8: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 400585ac: 9f c0 40 00 call %g1 <== NOT EXECUTED 400585b0: 01 00 00 00 nop <== NOT EXECUTED rv = (*diop->pathinfo.handlers->open_h)( diop, NULL, oflag, 0 ); 400585b4: c2 06 a0 1c ld [ %i2 + 0x1c ], %g1 <== NOT EXECUTED 400585b8: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 400585bc: 96 10 20 00 clr %o3 <== NOT EXECUTED 400585c0: 94 10 00 11 mov %l1, %o2 <== NOT EXECUTED 400585c4: 92 10 20 00 clr %o1 <== NOT EXECUTED 400585c8: 9f c0 40 00 call %g1 <== NOT EXECUTED 400585cc: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED if ( rv == 0 ) { 400585d0: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 400585d4: 02 80 00 32 be 4005869c <== NOT EXECUTED 400585d8: 01 00 00 00 nop <== NOT EXECUTED rtems_libio_free( diop ); 400585dc: 7f fe cd 43 call 4000bae8 <== NOT EXECUTED 400585e0: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED if (ret >= 0) { 400585e4: 10 80 00 13 b 40058630 <== NOT EXECUTED 400585e8: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED if ( va_arg( ap, int ) ) 400585ec: f0 00 c0 00 ld [ %g3 ], %i0 <== NOT EXECUTED 400585f0: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 400585f4: 02 80 00 22 be 4005867c <== NOT EXECUTED 400585f8: 01 00 00 00 nop <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400585fc: 91 d0 20 09 ta 9 <== NOT EXECUTED 40058600: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 40058604: 84 10 a8 00 or %g2, 0x800, %g2 <== NOT EXECUTED 40058608: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4005860c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40058610: 01 00 00 00 nop <== NOT EXECUTED int ret = 0; 40058614: 10 bf ff 81 b 40058418 <== NOT EXECUTED 40058618: b0 10 20 00 clr %i0 ! 0 <== NOT EXECUTED 4005861c: d0 07 60 08 ld [ %i5 + 8 ], %o0 <== NOT EXECUTED ret = rtems_libio_to_fcntl_flags( rtems_libio_iop_flags( iop ) ); 40058620: 7f fe cd 0a call 4000ba48 <== NOT EXECUTED 40058624: 01 00 00 00 nop <== NOT EXECUTED 40058628: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED if (ret >= 0) { 4005862c: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 40058630: 16 bf ff 7b bge 4005841c <== NOT EXECUTED 40058634: 83 2c 20 04 sll %l0, 4, %g1 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40058638: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 4005863c: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 40058640: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40058644: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40058648: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4005864c: 01 00 00 00 nop <== NOT EXECUTED } 40058650: 81 c7 e0 08 ret <== NOT EXECUTED 40058654: 81 e8 00 00 restore <== NOT EXECUTED 40058658: f0 07 60 08 ld [ %i5 + 8 ], %i0 <== NOT EXECUTED ret = ((rtems_libio_iop_flags(iop) & LIBIO_FLAGS_CLOSE_ON_EXEC) != 0); 4005865c: b1 36 20 0b srl %i0, 0xb, %i0 <== NOT EXECUTED 40058660: 10 bf ff 6e b 40058418 <== NOT EXECUTED 40058664: b0 0e 20 01 and %i0, 1, %i0 <== NOT EXECUTED errno = EINVAL; 40058668: 40 00 10 ab call 4005c914 <__errno> <== NOT EXECUTED 4005866c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40058670: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 40058674: 10 bf ff 51 b 400583b8 <== NOT EXECUTED 40058678: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4005867c: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val & arg; 40058680: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 40058684: 84 08 b7 ff and %g2, -2049, %g2 <== NOT EXECUTED 40058688: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4005868c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40058690: 01 00 00 00 nop <== NOT EXECUTED int err = (*iop->pathinfo.handlers->fcntl_h)( iop, cmd ); 40058694: 10 bf ff 62 b 4005841c <== NOT EXECUTED 40058698: 83 2c 20 04 sll %l0, 4, %g1 <== NOT EXECUTED rtems_libio_fcntl_flags( oflag ) 4005869c: 7f fe cc de call 4000ba14 <== NOT EXECUTED 400586a0: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED rv = rtems_libio_iop_to_descriptor( diop ); 400586a4: b0 26 80 1c sub %i2, %i4, %i0 <== NOT EXECUTED _Atomic_Store_uint( 400586a8: 90 12 21 00 or %o0, 0x100, %o0 <== NOT EXECUTED 400586ac: 83 3e 20 04 sra %i0, 4, %g1 <== NOT EXECUTED *obj = desired; 400586b0: d0 26 a0 08 st %o0, [ %i2 + 8 ] <== NOT EXECUTED 400586b4: 31 2a aa aa sethi %hi(0xaaaaa800), %i0 <== NOT EXECUTED 400586b8: b0 16 22 ab or %i0, 0x2ab, %i0 ! aaaaaaab <== NOT EXECUTED 400586bc: 10 bf ff dc b 4005862c <== NOT EXECUTED 400586c0: b0 58 40 18 smul %g1, %i0, %i0 <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 400586c4: 40 00 10 94 call 4005c914 <__errno> <== NOT EXECUTED 400586c8: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 400586cc: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 400586d0: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 400586d4: 81 c7 e0 08 ret <== NOT EXECUTED 400586d8: 81 e8 00 00 restore <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400586dc: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 400586e0: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 400586e4: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 400586e8: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400586ec: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400586f0: 01 00 00 00 nop <== NOT EXECUTED 400586f4: 40 00 10 88 call 4005c914 <__errno> <== NOT EXECUTED 400586f8: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 400586fc: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 40058700: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40058704: 81 c7 e0 08 ret <== NOT EXECUTED 40058708: 81 e8 00 00 restore <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 4005870c: 40 00 10 82 call 4005c914 <__errno> <== NOT EXECUTED 40058710: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40058714: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 40058718: 10 bf ff 28 b 400583b8 <== NOT EXECUTED 4005871c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED =============================================================================== 40004678 : #include void free( void *ptr ) { 40004678: 9d e3 bf a0 save %sp, -96, %sp if ( !ptr ) 4000467c: ba 96 20 00 orcc %i0, 0, %i5 40004680: 02 80 00 0d be 400046b4 40004684: 01 00 00 00 nop return; /* * Do not attempt to free memory if in a critical section or ISR. */ if ( _Malloc_System_state() != MALLOC_SYSTEM_STATE_NORMAL ) { 40004688: 40 00 00 7a call 40004870 <_Malloc_System_state> 4000468c: 01 00 00 00 nop 40004690: 80 a2 20 00 cmp %o0, 0 40004694: 12 80 00 0a bne 400046bc <== NEVER TAKEN 40004698: 03 10 00 47 sethi %hi(0x40011c00), %g1 _Malloc_Deferred_free(ptr); return; } if ( !_Protected_heap_Free( RTEMS_Malloc_Heap, ptr ) ) { 4000469c: d0 00 61 e4 ld [ %g1 + 0x1e4 ], %o0 ! 40011de4 400046a0: 40 00 12 42 call 40008fa8 <_Protected_heap_Free> 400046a4: 92 10 00 1d mov %i5, %o1 400046a8: 80 a2 20 00 cmp %o0, 0 400046ac: 02 80 00 06 be 400046c4 <== NEVER TAKEN 400046b0: 92 10 00 1d mov %i5, %o1 rtems_fatal( RTEMS_FATAL_SOURCE_INVALID_HEAP_FREE, (rtems_fatal_code) ptr ); } } 400046b4: 81 c7 e0 08 ret 400046b8: 81 e8 00 00 restore _Malloc_Deferred_free(ptr); 400046bc: 40 00 00 cf call 400049f8 <_Malloc_Deferred_free> <== NOT EXECUTED 400046c0: 81 e8 00 00 restore <== NOT EXECUTED 400046c4: 40 00 0a f7 call 400072a0 <_Terminate> <== NOT EXECUTED 400046c8: 90 10 20 0c mov 0xc, %o0 <== NOT EXECUTED 400046cc: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 4002bfac : int fstat( int fd, struct stat *sbuf ) { 4002bfac: 9d e3 bf a0 save %sp, -96, %sp int rv; /* * Check to see if we were passed a valid pointer. */ if ( !sbuf ) 4002bfb0: 80 a6 60 00 cmp %i1, 0 4002bfb4: 02 80 00 32 be 4002c07c <== NEVER TAKEN 4002bfb8: 03 10 00 b5 sethi %hi(0x4002d400), %g1 rtems_set_errno_and_return_minus_one( EFAULT ); /* * Now process the stat() request. */ LIBIO_GET_IOP( fd, iop ); 4002bfbc: c2 00 60 e0 ld [ %g1 + 0xe0 ], %g1 ! 4002d4e0 4002bfc0: 80 a6 00 01 cmp %i0, %g1 4002bfc4: 1a 80 00 28 bcc 4002c064 <== NEVER TAKEN 4002bfc8: 91 2e 20 01 sll %i0, 1, %o0 <== NOT EXECUTED 4002bfcc: 39 10 00 d2 sethi %hi(0x40034800), %i4 <== NOT EXECUTED 4002bfd0: b0 02 00 18 add %o0, %i0, %i0 <== NOT EXECUTED 4002bfd4: b8 17 23 f0 or %i4, 0x3f0, %i4 <== NOT EXECUTED 4002bfd8: b1 2e 20 04 sll %i0, 4, %i0 <== NOT EXECUTED 4002bfdc: ba 06 00 1c add %i0, %i4, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4002bfe0: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 4002bfe4: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 4002bfe8: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 4002bfec: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4002bff0: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4002bff4: 01 00 00 00 nop 4002bff8: 80 88 a1 00 btst 0x100, %g2 4002bffc: 02 80 00 14 be 4002c04c <== NEVER TAKEN 4002c000: 94 10 20 60 mov 0x60, %o2 /* * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); 4002c004: 92 10 20 00 clr %o1 4002c008: 7f ff c8 9c call 4001e278 4002c00c: 90 10 00 19 mov %i1, %o0 rv = (*iop->pathinfo.handlers->fstat_h)( &iop->pathinfo, sbuf ); 4002c010: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 4002c014: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 4002c018: 90 06 20 0c add %i0, 0xc, %o0 4002c01c: 92 10 00 19 mov %i1, %o1 4002c020: 9f c0 40 00 call %g1 4002c024: 90 07 00 08 add %i4, %o0, %o0 4002c028: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4002c02c: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 4002c030: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4002c034: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4002c038: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4002c03c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4002c040: 01 00 00 00 nop rtems_libio_iop_drop( iop ); return rv; } 4002c044: 81 c7 e0 08 ret 4002c048: 81 e8 00 00 restore __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4002c04c: 91 d0 20 09 ta 9 <== NOT EXECUTED 4002c050: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4002c054: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4002c058: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4002c05c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4002c060: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 4002c064: 7f ff bf 27 call 4001bd00 <__errno> <== NOT EXECUTED 4002c068: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 4002c06c: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 4002c070: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4002c074: 81 c7 e0 08 ret <== NOT EXECUTED 4002c078: 81 e8 00 00 restore <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 4002c07c: 7f ff bf 21 call 4001bd00 <__errno> <== NOT EXECUTED 4002c080: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4002c084: 82 10 20 0e mov 0xe, %g1 <== NOT EXECUTED 4002c088: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4002c08c: 81 c7 e0 08 ret <== NOT EXECUTED 4002c090: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40041f1c : * POSIX 1003.1b 6.6.1 - Synchronize the State of a File */ int fsync( int fd ) { 40041f1c: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_libio_t *iop; int rv; LIBIO_GET_IOP( fd, iop ); 40041f20: 03 10 01 f2 sethi %hi(0x4007c800), %g1 <== NOT EXECUTED 40041f24: c2 00 60 04 ld [ %g1 + 4 ], %g1 ! 4007c804 <== NOT EXECUTED 40041f28: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 40041f2c: 1a 80 00 23 bcc 40041fb8 <== NOT EXECUTED 40041f30: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED return &rtems_libio_iops[ fd ]; 40041f34: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 40041f38: 31 10 02 41 sethi %hi(0x40090400), %i0 <== NOT EXECUTED 40041f3c: bb 2f 60 04 sll %i5, 4, %i5 <== NOT EXECUTED 40041f40: b0 16 23 48 or %i0, 0x348, %i0 <== NOT EXECUTED 40041f44: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40041f48: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 40041f4c: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 40041f50: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 40041f54: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40041f58: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40041f5c: 01 00 00 00 nop <== NOT EXECUTED 40041f60: 80 88 a1 00 btst 0x100, %g2 <== NOT EXECUTED 40041f64: 02 80 00 0f be 40041fa0 <== NOT EXECUTED 40041f68: 01 00 00 00 nop <== NOT EXECUTED /* * Now process the fsync(). */ rv = (*iop->pathinfo.handlers->fsync_h)( iop ); 40041f6c: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 40041f70: c2 00 60 20 ld [ %g1 + 0x20 ], %g1 <== NOT EXECUTED 40041f74: 9f c0 40 00 call %g1 <== NOT EXECUTED 40041f78: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40041f7c: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40041f80: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 40041f84: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 40041f88: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40041f8c: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40041f90: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40041f94: 01 00 00 00 nop <== NOT EXECUTED rtems_libio_iop_drop( iop ); return rv; } 40041f98: 81 c7 e0 08 ret <== NOT EXECUTED 40041f9c: 81 e8 00 00 restore <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40041fa0: 91 d0 20 09 ta 9 <== NOT EXECUTED 40041fa4: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 40041fa8: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40041fac: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40041fb0: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40041fb4: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 40041fb8: 40 00 6a 57 call 4005c914 <__errno> <== NOT EXECUTED 40041fbc: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 40041fc0: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 40041fc4: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40041fc8: 81 c7 e0 08 ret <== NOT EXECUTED 40041fcc: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000d33c : #include #include int ftruncate( int fd, off_t length ) { 4000d33c: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED int rv = 0; if ( length >= 0 ) { 4000d340: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED 4000d344: 06 80 00 39 bl 4000d428 <== NOT EXECUTED 4000d348: 03 10 00 3f sethi %hi(0x4000fc00), %g1 <== NOT EXECUTED rtems_libio_t *iop; LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_WRITE, EINVAL ); 4000d34c: c2 00 63 f0 ld [ %g1 + 0x3f0 ], %g1 ! 4000fff0 <== NOT EXECUTED 4000d350: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 4000d354: 1a 80 00 1f bcc 4000d3d0 <== NOT EXECUTED 4000d358: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED return &rtems_libio_iops[ fd ]; 4000d35c: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 4000d360: 31 10 00 4c sethi %hi(0x40013000), %i0 <== NOT EXECUTED 4000d364: bb 2f 60 04 sll %i5, 4, %i5 <== NOT EXECUTED 4000d368: b0 16 21 48 or %i0, 0x148, %i0 <== NOT EXECUTED 4000d36c: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000d370: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 4000d374: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 4000d378: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 4000d37c: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000d380: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000d384: 01 00 00 00 nop <== NOT EXECUTED 4000d388: 82 08 a1 04 and %g2, 0x104, %g1 <== NOT EXECUTED 4000d38c: 80 a0 61 04 cmp %g1, 0x104 <== NOT EXECUTED 4000d390: 12 80 00 16 bne 4000d3e8 <== NOT EXECUTED 4000d394: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED rv = (*iop->pathinfo.handlers->ftruncate_h)( iop, length ); 4000d398: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 4000d39c: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 <== NOT EXECUTED 4000d3a0: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 4000d3a4: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d3a8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4000d3ac: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000d3b0: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 4000d3b4: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4000d3b8: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4000d3bc: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000d3c0: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000d3c4: 01 00 00 00 nop <== NOT EXECUTED 4000d3c8: 81 c7 e0 08 ret <== NOT EXECUTED 4000d3cc: 81 e8 00 00 restore <== NOT EXECUTED LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_WRITE, EINVAL ); 4000d3d0: 40 00 04 e2 call 4000e758 <__errno> <== NOT EXECUTED 4000d3d4: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000d3d8: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 4000d3dc: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4000d3e0: 81 c7 e0 08 ret <== NOT EXECUTED 4000d3e4: 81 e8 00 00 restore <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000d3e8: 91 d0 20 09 ta 9 <== NOT EXECUTED 4000d3ec: c6 07 60 08 ld [ %i5 + 8 ], %g3 <== NOT EXECUTED 4000d3f0: 86 00 f0 00 add %g3, -4096, %g3 <== NOT EXECUTED 4000d3f4: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000d3f8: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000d3fc: 01 00 00 00 nop <== NOT EXECUTED 4000d400: 84 08 a1 00 and %g2, 0x100, %g2 <== NOT EXECUTED 4000d404: 80 a0 00 02 cmp %g0, %g2 <== NOT EXECUTED 4000d408: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000d40c: 40 00 04 d3 call 4000e758 <__errno> <== NOT EXECUTED 4000d410: ba 60 20 00 subx %g0, 0, %i5 <== NOT EXECUTED 4000d414: ba 0f 60 0d and %i5, 0xd, %i5 <== NOT EXECUTED 4000d418: ba 07 60 09 add %i5, 9, %i5 <== NOT EXECUTED 4000d41c: fa 22 00 00 st %i5, [ %o0 ] <== NOT EXECUTED 4000d420: 81 c7 e0 08 ret <== NOT EXECUTED 4000d424: 81 e8 00 00 restore <== NOT EXECUTED rtems_libio_iop_drop( iop ); } else { errno = EINVAL; 4000d428: 40 00 04 cc call 4000e758 <__errno> <== NOT EXECUTED 4000d42c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000d430: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 4000d434: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED rv = -1; } return rv; } 4000d438: 81 c7 e0 08 ret <== NOT EXECUTED 4000d43c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 400046d0 : #include #include int getchark(void) { 400046d0: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED if ( BSP_poll_char ) 400046d4: 03 10 00 48 sethi %hi(0x40012000), %g1 <== NOT EXECUTED 400046d8: d0 00 61 d0 ld [ %g1 + 0x1d0 ], %o0 ! 400121d0 <== NOT EXECUTED 400046dc: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400046e0: 02 80 00 06 be 400046f8 <== NOT EXECUTED 400046e4: 01 00 00 00 nop <== NOT EXECUTED return (*BSP_poll_char)(); 400046e8: 9f c2 00 00 call %o0 <== NOT EXECUTED 400046ec: 01 00 00 00 nop <== NOT EXECUTED 400046f0: 81 c7 e0 08 ret <== NOT EXECUTED 400046f4: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED return -1; } 400046f8: 81 c7 e0 08 ret <== NOT EXECUTED 400046fc: 91 e8 3f ff restore %g0, -1, %o0 <== NOT EXECUTED =============================================================================== 4007a4c4 : int getdents( int dd_fd, char *dd_buf, int dd_len ) { 4007a4c4: 9d e3 bf 40 save %sp, -192, %sp <== NOT EXECUTED 4007a4c8: 91 2e 20 01 sll %i0, 1, %o0 <== NOT EXECUTED st.st_mode = 0; 4007a4cc: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED 4007a4d0: b0 02 00 18 add %o0, %i0, %i0 <== NOT EXECUTED return &rtems_libio_iops[ fd ]; 4007a4d4: 11 10 02 41 sethi %hi(0x40090400), %o0 <== NOT EXECUTED 4007a4d8: b1 2e 20 04 sll %i0, 4, %i0 <== NOT EXECUTED 4007a4dc: 90 12 23 48 or %o0, 0x348, %o0 <== NOT EXECUTED 4007a4e0: ba 06 00 08 add %i0, %o0, %i5 <== NOT EXECUTED (void) ( *loc->handlers->fstat_h )( loc, &st ); 4007a4e4: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 4007a4e8: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 <== NOT EXECUTED iop = rtems_libio_iop( dd_fd ); /* * Make sure we are working on a directory */ type = rtems_filesystem_location_type( &iop->pathinfo ); 4007a4ec: b0 06 20 0c add %i0, 0xc, %i0 <== NOT EXECUTED 4007a4f0: 92 07 bf a0 add %fp, -96, %o1 <== NOT EXECUTED 4007a4f4: 9f c0 40 00 call %g1 <== NOT EXECUTED 4007a4f8: 90 02 00 18 add %o0, %i0, %o0 <== NOT EXECUTED if ( !S_ISDIR( type ) ) 4007a4fc: 05 00 00 3c sethi %hi(0xf000), %g2 <== NOT EXECUTED 4007a500: c2 07 bf ac ld [ %fp + -84 ], %g1 <== NOT EXECUTED 4007a504: 82 08 40 02 and %g1, %g2, %g1 <== NOT EXECUTED 4007a508: 05 00 00 10 sethi %hi(0x4000), %g2 <== NOT EXECUTED 4007a50c: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4007a510: 12 80 00 09 bne 4007a534 <== NOT EXECUTED 4007a514: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED /* * Return the number of bytes that were actually transfered as a result * of the read attempt. */ return (*iop->pathinfo.handlers->read_h)( iop, dd_buf, dd_len ); 4007a518: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 4007a51c: c2 00 60 08 ld [ %g1 + 8 ], %g1 <== NOT EXECUTED 4007a520: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4007a524: 9f c0 40 00 call %g1 <== NOT EXECUTED 4007a528: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED } 4007a52c: 81 c7 e0 08 ret <== NOT EXECUTED 4007a530: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 4007a534: 7f ff 88 f8 call 4005c914 <__errno> <== NOT EXECUTED 4007a538: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4007a53c: 82 10 20 14 mov 0x14, %g1 <== NOT EXECUTED 4007a540: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4007a544: 81 c7 e0 08 ret <== NOT EXECUTED 4007a548: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 400420d4 : /** * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ gid_t getgid( void ) { 400420d4: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED return _POSIX_types_Gid; 400420d8: 7f ff 29 5d call 4000c64c <== NOT EXECUTED 400420dc: 01 00 00 00 nop <== NOT EXECUTED } 400420e0: f0 12 20 0e lduh [ %o0 + 0xe ], %i0 <== NOT EXECUTED 400420e4: 81 c7 e0 08 ret <== NOT EXECUTED 400420e8: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4005c44c : } struct group *getgrent(void) { 4005c44c: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED grp_context *ctx = grp_get_context(); 4005c450: 7f ff ff ee call 4005c408 <== NOT EXECUTED 4005c454: 01 00 00 00 nop <== NOT EXECUTED if (ctx == NULL) 4005c458: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4005c45c: 02 80 00 10 be 4005c49c <== NOT EXECUTED 4005c460: 01 00 00 00 nop <== NOT EXECUTED return NULL; if (ctx->fp == NULL) 4005c464: c2 02 00 00 ld [ %o0 ], %g1 <== NOT EXECUTED 4005c468: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4005c46c: 02 80 00 0c be 4005c49c <== NOT EXECUTED 4005c470: 94 02 20 04 add %o0, 4, %o2 <== NOT EXECUTED return NULL; if (!_libcsupport_scangr(ctx->fp, &ctx->grp, ctx->buf, sizeof(ctx->buf))) 4005c474: b0 02 21 04 add %o0, 0x104, %i0 <== NOT EXECUTED 4005c478: 96 10 21 00 mov 0x100, %o3 <== NOT EXECUTED 4005c47c: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 4005c480: 7f ff 99 5e call 400429f8 <_libcsupport_scangr> <== NOT EXECUTED 4005c484: 90 10 00 01 mov %g1, %o0 <== NOT EXECUTED 4005c488: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4005c48c: 02 80 00 04 be 4005c49c <== NOT EXECUTED 4005c490: 01 00 00 00 nop <== NOT EXECUTED return NULL; return &ctx->grp; } 4005c494: 81 c7 e0 08 ret <== NOT EXECUTED 4005c498: 81 e8 00 00 restore <== NOT EXECUTED return NULL; 4005c49c: 81 c7 e0 08 ret <== NOT EXECUTED 4005c4a0: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED =============================================================================== 40042130 : struct group *getgrgid( gid_t gid ) { 40042130: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED struct group *p; if(getgrgid_r(gid, &grent, grbuf, sizeof grbuf, &p)) 40042134: 96 10 20 c8 mov 0xc8, %o3 <== NOT EXECUTED 40042138: 98 07 bf fc add %fp, -4, %o4 <== NOT EXECUTED 4004213c: 15 10 02 40 sethi %hi(0x40090000), %o2 <== NOT EXECUTED 40042140: 13 10 02 40 sethi %hi(0x40090000), %o1 <== NOT EXECUTED 40042144: 94 12 a2 80 or %o2, 0x280, %o2 <== NOT EXECUTED 40042148: 92 12 62 70 or %o1, 0x270, %o1 <== NOT EXECUTED 4004214c: 40 00 02 cf call 40042c88 <== NOT EXECUTED 40042150: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042154: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042158: 12 80 00 05 bne 4004216c <== NOT EXECUTED 4004215c: 01 00 00 00 nop <== NOT EXECUTED return NULL; return p; 40042160: f0 07 bf fc ld [ %fp + -4 ], %i0 <== NOT EXECUTED 40042164: 81 c7 e0 08 ret <== NOT EXECUTED 40042168: 81 e8 00 00 restore <== NOT EXECUTED } 4004216c: 81 c7 e0 08 ret <== NOT EXECUTED 40042170: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED =============================================================================== 40042c88 : char *buffer, size_t bufsize, struct group **result ) { return getgr_r(NULL, gid, grp, buffer, bufsize, result); 40042c88: 9a 10 00 0c mov %o4, %o5 <== NOT EXECUTED 40042c8c: 98 10 00 0b mov %o3, %o4 <== NOT EXECUTED 40042c90: 96 10 00 0a mov %o2, %o3 <== NOT EXECUTED 40042c94: 94 10 00 09 mov %o1, %o2 <== NOT EXECUTED 40042c98: 92 10 00 08 mov %o0, %o1 <== NOT EXECUTED 40042c9c: 90 10 20 00 clr %o0 <== NOT EXECUTED 40042ca0: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40042ca4: 7f ff ff b6 call 40042b7c <== NOT EXECUTED 40042ca8: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 400420ec : static struct group grent; struct group *getgrnam( const char *name ) { 400420ec: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED struct group *p; if(getgrnam_r(name, &grent, grbuf, sizeof grbuf, &p)) 400420f0: 96 10 20 c8 mov 0xc8, %o3 <== NOT EXECUTED 400420f4: 98 07 bf fc add %fp, -4, %o4 <== NOT EXECUTED 400420f8: 15 10 02 40 sethi %hi(0x40090000), %o2 <== NOT EXECUTED 400420fc: 13 10 02 40 sethi %hi(0x40090000), %o1 <== NOT EXECUTED 40042100: 94 12 a2 80 or %o2, 0x280, %o2 <== NOT EXECUTED 40042104: 92 12 62 70 or %o1, 0x270, %o1 <== NOT EXECUTED 40042108: 40 00 02 d8 call 40042c68 <== NOT EXECUTED 4004210c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042110: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042114: 12 80 00 05 bne 40042128 <== NOT EXECUTED 40042118: 01 00 00 00 nop <== NOT EXECUTED return NULL; return p; 4004211c: f0 07 bf fc ld [ %fp + -4 ], %i0 <== NOT EXECUTED 40042120: 81 c7 e0 08 ret <== NOT EXECUTED 40042124: 81 e8 00 00 restore <== NOT EXECUTED } 40042128: 81 c7 e0 08 ret <== NOT EXECUTED 4004212c: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED =============================================================================== 40042c68 : char *buffer, size_t bufsize, struct group **result ) { return getgr_r(name, 0, grp, buffer, bufsize, result); 40042c68: 9a 10 00 0c mov %o4, %o5 <== NOT EXECUTED 40042c6c: 98 10 00 0b mov %o3, %o4 <== NOT EXECUTED 40042c70: 96 10 00 0a mov %o2, %o3 <== NOT EXECUTED 40042c74: 94 10 00 09 mov %o1, %o2 <== NOT EXECUTED 40042c78: 92 10 20 00 clr %o1 <== NOT EXECUTED 40042c7c: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40042c80: 7f ff ff bf call 40042b7c <== NOT EXECUTED 40042c84: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4005873c : */ int getgroups( int gidsetsize, gid_t grouplist[] ) { 4005873c: 9d e3 be 80 save %sp, -384, %sp <== NOT EXECUTED char buf[256]; gid_t gid; const char *user; struct group *grp; rv = getpwuid_r(getuid(), &pwd, &buf[0], sizeof(buf), &pwd_res); 40058740: 7f ff a6 9e call 400421b8 <== NOT EXECUTED 40058744: 01 00 00 00 nop <== NOT EXECUTED 40058748: 98 07 be e0 add %fp, -288, %o4 <== NOT EXECUTED 4005874c: 91 2a 20 10 sll %o0, 0x10, %o0 <== NOT EXECUTED 40058750: 96 10 21 00 mov 0x100, %o3 <== NOT EXECUTED 40058754: 94 07 bf 00 add %fp, -256, %o2 <== NOT EXECUTED 40058758: 92 07 be e4 add %fp, -284, %o1 <== NOT EXECUTED 4005875c: 7f ff a8 9e call 400429d4 <== NOT EXECUTED 40058760: 91 32 20 10 srl %o0, 0x10, %o0 <== NOT EXECUTED if (rv != 0) { 40058764: b6 92 20 00 orcc %o0, 0, %i3 <== NOT EXECUTED 40058768: 02 80 00 04 be 40058778 <== NOT EXECUTED 4005876c: e0 17 be ee lduh [ %fp + -274 ], %l0 <== NOT EXECUTED if (gidsetsize == 0 || rv <= gidsetsize) { return rv; } else { rtems_set_errno_and_return_minus_one(EINVAL); } } 40058770: 81 c7 e0 08 ret <== NOT EXECUTED 40058774: 91 e8 00 1b restore %g0, %i3, %o0 <== NOT EXECUTED setgrent(); 40058778: 40 00 0f 4b call 4005c4a4 <== NOT EXECUTED 4005877c: f8 07 be e4 ld [ %fp + -284 ], %i4 <== NOT EXECUTED while ((grp = getgrent()) != NULL) { 40058780: 40 00 0f 33 call 4005c44c <== NOT EXECUTED 40058784: 01 00 00 00 nop <== NOT EXECUTED 40058788: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4005878c: 02 80 00 19 be 400587f0 <== NOT EXECUTED 40058790: 01 00 00 00 nop <== NOT EXECUTED if (grp->gr_gid == gid) { 40058794: f4 12 20 08 lduh [ %o0 + 8 ], %i2 <== NOT EXECUTED 40058798: 80 a4 00 1a cmp %l0, %i2 <== NOT EXECUTED 4005879c: 02 bf ff f9 be 40058780 <== NOT EXECUTED 400587a0: 01 00 00 00 nop <== NOT EXECUTED char **mem = &grp->gr_mem[0]; 400587a4: fa 02 20 0c ld [ %o0 + 0xc ], %i5 <== NOT EXECUTED while (*mem != NULL) { 400587a8: d0 07 40 00 ld [ %i5 ], %o0 <== NOT EXECUTED 400587ac: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400587b0: 02 bf ff f4 be 40058780 <== NOT EXECUTED 400587b4: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED if (strcmp(*mem, user) == 0) { 400587b8: 40 00 2d 57 call 40063d14 <== NOT EXECUTED 400587bc: ba 07 60 04 add %i5, 4, %i5 <== NOT EXECUTED 400587c0: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400587c4: 32 bf ff fa bne,a 400587ac <== NOT EXECUTED 400587c8: d0 07 40 00 ld [ %i5 ], %o0 <== NOT EXECUTED if (rv < gidsetsize) { 400587cc: 80 a6 c0 18 cmp %i3, %i0 <== NOT EXECUTED 400587d0: 16 80 00 03 bge 400587dc <== NOT EXECUTED 400587d4: 83 2e e0 01 sll %i3, 1, %g1 <== NOT EXECUTED grouplist[rv] = grp->gr_gid; 400587d8: f4 36 40 01 sth %i2, [ %i1 + %g1 ] <== NOT EXECUTED while ((grp = getgrent()) != NULL) { 400587dc: 40 00 0f 1c call 4005c44c <== NOT EXECUTED 400587e0: b6 06 e0 01 inc %i3 <== NOT EXECUTED 400587e4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400587e8: 32 bf ff ec bne,a 40058798 <== NOT EXECUTED 400587ec: f4 12 20 08 lduh [ %o0 + 8 ], %i2 <== NOT EXECUTED endgrent(); 400587f0: 40 00 0f 51 call 4005c534 <== NOT EXECUTED 400587f4: 01 00 00 00 nop <== NOT EXECUTED if (gidsetsize == 0 || rv <= gidsetsize) { 400587f8: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 400587fc: 02 bf ff dd be 40058770 <== NOT EXECUTED 40058800: 80 a6 c0 18 cmp %i3, %i0 <== NOT EXECUTED 40058804: 04 80 00 03 ble 40058810 <== NOT EXECUTED 40058808: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED 4005880c: 82 10 20 00 clr %g1 <== NOT EXECUTED 40058810: 80 88 60 ff btst 0xff, %g1 <== NOT EXECUTED 40058814: 12 bf ff d7 bne 40058770 <== NOT EXECUTED 40058818: 01 00 00 00 nop <== NOT EXECUTED rtems_set_errno_and_return_minus_one(EINVAL); 4005881c: 40 00 10 3e call 4005c914 <__errno> <== NOT EXECUTED 40058820: b6 10 3f ff mov -1, %i3 ! ffffffff <== NOT EXECUTED 40058824: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 40058828: 10 bf ff d2 b 40058770 <== NOT EXECUTED 4005882c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED =============================================================================== 4002c0a8 : * 4.1.1 Get Process and Parent Process IDs, P1003.1b-1993, p. 83 */ pid_t getpid( void ) { return _Objects_Local_node; } 4002c0a8: 81 c3 e0 08 retl <== NOT EXECUTED 4002c0ac: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED =============================================================================== 400429b4 : char *buffer, size_t bufsize, struct passwd **result ) { return getpw_r(name, 0, pwd, buffer, bufsize, result); 400429b4: 9a 10 00 0c mov %o4, %o5 <== NOT EXECUTED 400429b8: 98 10 00 0b mov %o3, %o4 <== NOT EXECUTED 400429bc: 96 10 00 0a mov %o2, %o3 <== NOT EXECUTED 400429c0: 94 10 00 09 mov %o1, %o2 <== NOT EXECUTED 400429c4: 92 10 20 00 clr %o1 <== NOT EXECUTED 400429c8: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 400429cc: 7f ff ff bf call 400428c8 <== NOT EXECUTED 400429d0: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40042174 : } struct passwd *getpwuid( uid_t uid ) { 40042174: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED struct passwd *p; if(getpwuid_r(uid, &pwent, pwbuf, sizeof pwbuf, &p)) 40042178: 96 10 20 c8 mov 0xc8, %o3 <== NOT EXECUTED 4004217c: 98 07 bf fc add %fp, -4, %o4 <== NOT EXECUTED 40042180: 15 10 02 40 sethi %hi(0x40090000), %o2 <== NOT EXECUTED 40042184: 13 10 02 40 sethi %hi(0x40090000), %o1 <== NOT EXECUTED 40042188: 94 12 a3 68 or %o2, 0x368, %o2 <== NOT EXECUTED 4004218c: 92 12 63 48 or %o1, 0x348, %o1 <== NOT EXECUTED 40042190: 40 00 02 11 call 400429d4 <== NOT EXECUTED 40042194: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40042198: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4004219c: 12 80 00 05 bne 400421b0 <== NOT EXECUTED 400421a0: 01 00 00 00 nop <== NOT EXECUTED return NULL; return p; 400421a4: f0 07 bf fc ld [ %fp + -4 ], %i0 <== NOT EXECUTED 400421a8: 81 c7 e0 08 ret <== NOT EXECUTED 400421ac: 81 e8 00 00 restore <== NOT EXECUTED } 400421b0: 81 c7 e0 08 ret <== NOT EXECUTED 400421b4: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED =============================================================================== 400429d4 : char *buffer, size_t bufsize, struct passwd **result ) { return getpw_r(NULL, uid, pwd, buffer, bufsize, result); 400429d4: 9a 10 00 0c mov %o4, %o5 <== NOT EXECUTED 400429d8: 98 10 00 0b mov %o3, %o4 <== NOT EXECUTED 400429dc: 96 10 00 0a mov %o2, %o3 <== NOT EXECUTED 400429e0: 94 10 00 09 mov %o1, %o2 <== NOT EXECUTED 400429e4: 92 10 00 08 mov %o0, %o1 <== NOT EXECUTED 400429e8: 90 10 20 00 clr %o0 <== NOT EXECUTED 400429ec: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 400429f0: 7f ff ff b6 call 400428c8 <== NOT EXECUTED 400429f4: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40004730 : */ int gettimeofday( struct timeval *__restrict tp, void *__restrict __tz RTEMS_UNUSED ) { 40004730: 9d e3 bf a0 save %sp, -96, %sp /* struct timezone* tzp = (struct timezone*) __tz; */ if ( !tp ) 40004734: 80 a6 20 00 cmp %i0, 0 40004738: 02 80 00 06 be 40004750 <== NEVER TAKEN 4000473c: 90 10 00 18 mov %i0, %o0 RTEMS_INLINE_ROUTINE void _TOD_Get_timeval( struct timeval *time ) { _Timecounter_Microtime( time ); 40004740: 40 00 0f 39 call 40008424 <_Timecounter_Microtime> 40004744: b0 10 20 00 clr %i0 * with Eric Norum, this is how GNU/Linux, Solaris, and MacOS X * do it. This puts us in good company. */ return 0; } 40004748: 81 c7 e0 08 ret 4000474c: 81 e8 00 00 restore rtems_set_errno_and_return_minus_one( EFAULT ); 40004750: 40 00 28 02 call 4000e758 <__errno> <== NOT EXECUTED 40004754: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40004758: 82 10 20 0e mov 0xe, %g1 <== NOT EXECUTED 4000475c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40004760: 81 c7 e0 08 ret <== NOT EXECUTED 40004764: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 400421b8 : /** * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, * P1003.1b-1993, p. 84 */ uid_t getuid( void ) { 400421b8: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED return _POSIX_types_Uid; 400421bc: 7f ff 29 24 call 4000c64c <== NOT EXECUTED 400421c0: 01 00 00 00 nop <== NOT EXECUTED } 400421c4: f0 12 20 0c lduh [ %o0 + 0xc ], %i0 <== NOT EXECUTED 400421c8: 81 c7 e0 08 ret <== NOT EXECUTED 400421cc: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4001bb14 : int ioctl( int fd, ioctl_command_t command, ... ) { 4001bb14: 9d e3 bf 98 save %sp, -104, %sp rtems_libio_t *iop; void *buffer; LIBIO_GET_IOP( fd, iop ); va_start(ap, command); 4001bb18: f4 27 a0 4c st %i2, [ %fp + 0x4c ] LIBIO_GET_IOP( fd, iop ); 4001bb1c: 03 10 00 b5 sethi %hi(0x4002d400), %g1 va_start(ap, command); 4001bb20: f6 27 a0 50 st %i3, [ %fp + 0x50 ] 4001bb24: f8 27 a0 54 st %i4, [ %fp + 0x54 ] LIBIO_GET_IOP( fd, iop ); 4001bb28: c2 00 60 e0 ld [ %g1 + 0xe0 ], %g1 4001bb2c: 80 a6 00 01 cmp %i0, %g1 4001bb30: 1a 80 00 27 bcc 4001bbcc <== NEVER TAKEN 4001bb34: fa 27 a0 58 st %i5, [ %fp + 0x58 ] <== NOT EXECUTED 4001bb38: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED 4001bb3c: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 4001bb40: 31 10 00 d2 sethi %hi(0x40034800), %i0 <== NOT EXECUTED 4001bb44: bb 2f 60 04 sll %i5, 4, %i5 <== NOT EXECUTED 4001bb48: b0 16 23 f0 or %i0, 0x3f0, %i0 <== NOT EXECUTED 4001bb4c: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4001bb50: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 4001bb54: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 4001bb58: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 4001bb5c: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4001bb60: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4001bb64: 01 00 00 00 nop 4001bb68: 80 88 a1 00 btst 0x100, %g2 4001bb6c: 02 80 00 12 be 4001bbb4 <== NEVER TAKEN 4001bb70: 84 07 a0 4c add %fp, 0x4c, %g2 buffer = va_arg(ap, void *); /* * Now process the ioctl(). */ rc = (*iop->pathinfo.handlers->ioctl_h)( iop, command, buffer ); 4001bb74: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 4001bb78: c2 00 60 10 ld [ %g1 + 0x10 ], %g1 4001bb7c: d4 07 a0 4c ld [ %fp + 0x4c ], %o2 4001bb80: 92 10 00 19 mov %i1, %o1 va_start(ap, command); 4001bb84: c4 27 bf fc st %g2, [ %fp + -4 ] rc = (*iop->pathinfo.handlers->ioctl_h)( iop, command, buffer ); 4001bb88: 9f c0 40 00 call %g1 4001bb8c: 90 10 00 1d mov %i5, %o0 4001bb90: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4001bb94: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 4001bb98: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4001bb9c: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4001bba0: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4001bba4: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4001bba8: 01 00 00 00 nop va_end( ap ); rtems_libio_iop_drop( iop ); return rc; } 4001bbac: 81 c7 e0 08 ret 4001bbb0: 81 e8 00 00 restore __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4001bbb4: 91 d0 20 09 ta 9 <== NOT EXECUTED 4001bbb8: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4001bbbc: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4001bbc0: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4001bbc4: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4001bbc8: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 4001bbcc: 40 00 00 4d call 4001bd00 <__errno> <== NOT EXECUTED 4001bbd0: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 4001bbd4: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 4001bbd8: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4001bbdc: 81 c7 e0 08 ret <== NOT EXECUTED 4001bbe0: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4001ad6c : * Dummy version of BSD routine */ int issetugid (void) { return 0; } 4001ad6c: 81 c3 e0 08 retl <== NOT EXECUTED 4001ad70: 90 10 20 00 clr %o0 <== NOT EXECUTED =============================================================================== 400421f0 : /** * link() - POSIX 1003.1b - 5.3.4 - Create a new link */ int link( const char *path1, const char *path2 ) { 400421f0: 9d e3 bf 30 save %sp, -208, %sp <== NOT EXECUTED rtems_filesystem_eval_path_context_t ctx_2; int eval_flags_1 = RTEMS_FS_FOLLOW_LINK; int eval_flags_2 = RTEMS_FS_FOLLOW_LINK | RTEMS_FS_MAKE | RTEMS_FS_EXCLUSIVE; const rtems_filesystem_location_info_t *currentloc_1 = 400421f4: 94 10 20 18 mov 0x18, %o2 <== NOT EXECUTED 400421f8: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400421fc: 7f ff 2c 11 call 4000d240 <== NOT EXECUTED 40042200: 90 07 bf 90 add %fp, -112, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_start( &ctx_1, path1, eval_flags_1 ); const rtems_filesystem_location_info_t *currentloc_2 = 40042204: 94 10 20 78 mov 0x78, %o2 <== NOT EXECUTED const rtems_filesystem_location_info_t *currentloc_1 = 40042208: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED const rtems_filesystem_location_info_t *currentloc_2 = 4004220c: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 40042210: 7f ff 2c 0c call 4000d240 <== NOT EXECUTED 40042214: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_start( &ctx_2, path2, eval_flags_2 ); rv = rtems_filesystem_location_exists_in_same_instance_as( 40042218: 92 10 00 08 mov %o0, %o1 <== NOT EXECUTED const rtems_filesystem_location_info_t *currentloc_2 = 4004221c: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED rv = rtems_filesystem_location_exists_in_same_instance_as( 40042220: 40 00 04 b9 call 40043504 <== NOT EXECUTED 40042224: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED currentloc_1, currentloc_2 ); if ( rv == 0 ) { 40042228: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 4004222c: 12 80 00 09 bne 40042250 <== NOT EXECUTED 40042230: d4 1f bf d0 ldd [ %fp + -48 ], %o2 <== NOT EXECUTED rv = (*currentloc_2->mt_entry->ops->link_h)( 40042234: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 <== NOT EXECUTED 40042238: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED 4004223c: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED 40042240: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 40042244: 9f c0 40 00 call %g1 <== NOT EXECUTED 40042248: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4004224c: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_get_token( &ctx_2 ), rtems_filesystem_eval_path_get_tokenlen( &ctx_2 ) ); } rtems_filesystem_eval_path_cleanup( &ctx_1 ); 40042250: 7f ff 2c 46 call 4000d368 <== NOT EXECUTED 40042254: 90 07 bf 90 add %fp, -112, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx_2 ); 40042258: 7f ff 2c 44 call 4000d368 <== NOT EXECUTED 4004225c: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED return rv; } 40042260: 81 c7 e0 08 ret <== NOT EXECUTED 40042264: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4002c0c8 : #include #include off_t lseek( int fd, off_t offset, int whence ) { 4002c0c8: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_libio_t *iop; off_t rv; LIBIO_GET_IOP( fd, iop ); 4002c0cc: 03 10 00 b5 sethi %hi(0x4002d400), %g1 <== NOT EXECUTED 4002c0d0: c2 00 60 e0 ld [ %g1 + 0xe0 ], %g1 ! 4002d4e0 <== NOT EXECUTED 4002c0d4: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 4002c0d8: 1a 80 00 26 bcc 4002c170 <== NOT EXECUTED 4002c0dc: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED 4002c0e0: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 4002c0e4: 31 10 00 d2 sethi %hi(0x40034800), %i0 <== NOT EXECUTED 4002c0e8: bb 2f 60 04 sll %i5, 4, %i5 <== NOT EXECUTED 4002c0ec: b0 16 23 f0 or %i0, 0x3f0, %i0 <== NOT EXECUTED 4002c0f0: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4002c0f4: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 4002c0f8: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 4002c0fc: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 4002c100: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4002c104: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4002c108: 01 00 00 00 nop <== NOT EXECUTED 4002c10c: 80 88 a1 00 btst 0x100, %g2 <== NOT EXECUTED 4002c110: 02 80 00 12 be 4002c158 <== NOT EXECUTED 4002c114: 96 10 00 1b mov %i3, %o3 <== NOT EXECUTED rv = (*iop->pathinfo.handlers->lseek_h)( iop, offset, whence ); 4002c118: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 4002c11c: c2 00 60 14 ld [ %g1 + 0x14 ], %g1 <== NOT EXECUTED 4002c120: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4002c124: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 4002c128: 9f c0 40 00 call %g1 <== NOT EXECUTED 4002c12c: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4002c130: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED 4002c134: b2 10 00 09 mov %o1, %i1 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4002c138: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 4002c13c: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4002c140: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4002c144: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4002c148: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4002c14c: 01 00 00 00 nop <== NOT EXECUTED rtems_libio_iop_drop( iop ); return rv; } 4002c150: 81 c7 e0 08 ret <== NOT EXECUTED 4002c154: 81 e8 00 00 restore <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4002c158: 91 d0 20 09 ta 9 <== NOT EXECUTED 4002c15c: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4002c160: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4002c164: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4002c168: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4002c16c: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 4002c170: 7f ff be e4 call 4001bd00 <__errno> <== NOT EXECUTED 4002c174: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 4002c178: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 4002c17c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4002c180: 81 c7 e0 08 ret <== NOT EXECUTED 4002c184: 93 e8 3f ff restore %g0, -1, %o1 <== NOT EXECUTED =============================================================================== 40042348 : { 40042348: 9d e3 bf 68 save %sp, -152, %sp <== NOT EXECUTED const rtems_filesystem_location_info_t *currentloc = 4004234c: 94 10 20 08 mov 8, %o2 <== NOT EXECUTED 40042350: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40042354: 7f ff 2b bb call 4000d240 <== NOT EXECUTED 40042358: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED memset( buf, 0, sizeof( *buf ) ); 4004235c: 94 10 20 60 mov 0x60, %o2 <== NOT EXECUTED const rtems_filesystem_location_info_t *currentloc = 40042360: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED memset( buf, 0, sizeof( *buf ) ); 40042364: 92 10 20 00 clr %o1 <== NOT EXECUTED 40042368: 40 00 7b a4 call 400611f8 <== NOT EXECUTED 4004236c: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED rv = (*currentloc->handlers->fstat_h)( currentloc, buf ); 40042370: c2 07 60 10 ld [ %i5 + 0x10 ], %g1 <== NOT EXECUTED 40042374: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 <== NOT EXECUTED 40042378: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4004237c: 9f c0 40 00 call %g1 <== NOT EXECUTED 40042380: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40042384: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 40042388: 7f ff 2b f8 call 4000d368 <== NOT EXECUTED 4004238c: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED } 40042390: 81 c7 e0 08 ret <== NOT EXECUTED 40042394: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40004ab4 : #include "malloc_p.h" void *malloc( size_t size ) { 40004ab4: 9d e3 bf a0 save %sp, -96, %sp void *return_this; /* * Validate the parameters */ if ( !size ) 40004ab8: 80 a6 20 00 cmp %i0, 0 40004abc: 02 80 00 0a be 40004ae4 <== NEVER TAKEN 40004ac0: 90 10 00 18 mov %i0, %o0 return (void *) 0; return_this = rtems_heap_allocate_aligned_with_boundary( size, 0, 0 ); 40004ac4: 94 10 20 00 clr %o2 40004ac8: 7f ff ff 92 call 40004910 40004acc: 92 10 20 00 clr %o1 if ( !return_this ) { 40004ad0: b0 92 20 00 orcc %o0, 0, %i0 40004ad4: 02 80 00 06 be 40004aec <== NEVER TAKEN 40004ad8: 01 00 00 00 nop errno = ENOMEM; return (void *) 0; } return return_this; } 40004adc: 81 c7 e0 08 ret 40004ae0: 81 e8 00 00 restore 40004ae4: 81 c7 e0 08 ret <== NOT EXECUTED 40004ae8: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED errno = ENOMEM; 40004aec: 40 00 27 1b call 4000e758 <__errno> <== NOT EXECUTED 40004af0: 01 00 00 00 nop <== NOT EXECUTED 40004af4: 82 10 20 0c mov 0xc, %g1 ! c <_TLS_Alignment+0xb> <== NOT EXECUTED 40004af8: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED return (void *) 0; 40004afc: 81 c7 e0 08 ret <== NOT EXECUTED 40004b00: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000bce4 : /* * Find amount of free heap remaining */ size_t malloc_free_space( void ) { 4000bce4: 9d e3 bf 90 save %sp, -112, %sp <== NOT EXECUTED Heap_Information info; _Protected_heap_Get_free_information( RTEMS_Malloc_Heap, &info ); 4000bce8: 03 10 02 2e sethi %hi(0x4008b800), %g1 <== NOT EXECUTED 4000bcec: d0 00 61 e8 ld [ %g1 + 0x1e8 ], %o0 ! 4008b9e8 <== NOT EXECUTED 4000bcf0: 40 00 42 b0 call 4001c7b0 <_Protected_heap_Get_free_information> <== NOT EXECUTED 4000bcf4: 92 07 bf f4 add %fp, -12, %o1 <== NOT EXECUTED return (size_t) info.largest; } 4000bcf8: f0 07 bf f8 ld [ %fp + -8 ], %i0 <== NOT EXECUTED 4000bcfc: 81 c7 e0 08 ret <== NOT EXECUTED 4000bd00: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40042398 : #include int malloc_info( Heap_Information_block *the_info ) { 40042398: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED if ( !the_info ) 4004239c: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 400423a0: 02 80 00 08 be 400423c0 <== NOT EXECUTED 400423a4: 03 10 02 2e sethi %hi(0x4008b800), %g1 <== NOT EXECUTED return -1; _Protected_heap_Get_information( RTEMS_Malloc_Heap, the_info ); 400423a8: d0 00 61 e8 ld [ %g1 + 0x1e8 ], %o0 ! 4008b9e8 <== NOT EXECUTED 400423ac: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400423b0: 40 00 0a 87 call 40044dcc <_Protected_heap_Get_information> <== NOT EXECUTED 400423b4: b0 10 20 00 clr %i0 <== NOT EXECUTED return 0; 400423b8: 81 c7 e0 08 ret <== NOT EXECUTED 400423bc: 81 e8 00 00 restore <== NOT EXECUTED } 400423c0: 81 c7 e0 08 ret <== NOT EXECUTED 400423c4: 91 e8 3f ff restore %g0, -1, %o0 <== NOT EXECUTED =============================================================================== 400423c8 : #include bool malloc_walk(int source, bool printf_enabled) { return _Protected_heap_Walk( RTEMS_Malloc_Heap, source, printf_enabled ); 400423c8: 94 10 00 09 mov %o1, %o2 <== NOT EXECUTED 400423cc: 03 10 02 2e sethi %hi(0x4008b800), %g1 <== NOT EXECUTED 400423d0: 92 10 00 08 mov %o0, %o1 <== NOT EXECUTED 400423d4: d0 00 61 e8 ld [ %g1 + 0x1e8 ], %o0 <== NOT EXECUTED 400423d8: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 400423dc: 40 00 0a 90 call 40044e1c <_Protected_heap_Walk> <== NOT EXECUTED 400423e0: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 400423e4 : int mkfifo( const char *path, mode_t mode ) { return mknod( path, mode | S_IFIFO, 0LL ); 400423e4: 03 00 00 04 sethi %hi(0x1000), %g1 <== NOT EXECUTED 400423e8: 94 10 20 00 clr %o2 <== NOT EXECUTED 400423ec: 96 10 20 00 clr %o3 <== NOT EXECUTED 400423f0: 92 12 40 01 or %o1, %g1, %o1 <== NOT EXECUTED 400423f4: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 400423f8: 7f ff 26 ab call 4000bea4 <== NOT EXECUTED 400423fc: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40004bcc : * This routine is not defined in the POSIX 1003.1b standard but is * commonly supported on most UNIX and POSIX systems. It is the * foundation for creating file system objects. */ int mknod( const char *path, mode_t mode, dev_t dev ) { 40004bcc: 9d e3 bf 68 save %sp, -152, %sp int rv = 0; rtems_filesystem_eval_path_context_t ctx; int eval_flags = RTEMS_FS_FOLLOW_LINK | RTEMS_FS_MAKE | RTEMS_FS_EXCLUSIVE | (S_ISDIR(mode) ? RTEMS_FS_ACCEPT_RESIDUAL_DELIMITERS : 0); 40004bd0: 03 00 00 3c sethi %hi(0xf000), %g1 40004bd4: 05 00 00 10 sethi %hi(0x4000), %g2 40004bd8: 82 0e 40 01 and %i1, %g1, %g1 40004bdc: 80 a0 40 02 cmp %g1, %g2 40004be0: 02 80 00 03 be 40004bec <== ALWAYS TAKEN 40004be4: 94 10 20 f8 mov 0xf8, %o2 40004be8: 94 10 20 78 mov 0x78, %o2 <== NOT EXECUTED const rtems_filesystem_location_info_t *currentloc = 40004bec: 92 10 00 18 mov %i0, %o1 40004bf0: 40 00 03 5e call 40005968 40004bf4: 90 07 bf c8 add %fp, -56, %o0 rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); rv = rtems_filesystem_mknod( 40004bf8: d4 07 bf d4 ld [ %fp + -44 ], %o2 40004bfc: d2 07 bf d0 ld [ %fp + -48 ], %o1 40004c00: 98 10 00 1a mov %i2, %o4 40004c04: 9a 10 00 1b mov %i3, %o5 40004c08: 7f ff ff c6 call 40004b20 40004c0c: 96 10 00 19 mov %i1, %o3 40004c10: b0 10 00 08 mov %o0, %i0 rtems_filesystem_eval_path_get_tokenlen( &ctx ), mode, dev ); rtems_filesystem_eval_path_cleanup( &ctx ); 40004c14: 40 00 03 61 call 40005998 40004c18: 90 07 bf c8 add %fp, -56, %o0 return rv; } 40004c1c: 81 c7 e0 08 ret 40004c20: 81 e8 00 00 restore =============================================================================== 40004c24 : const char *target, const char *filesystemtype, rtems_filesystem_options_t options, const void *data ) { 40004c24: 9d e3 bf 50 save %sp, -176, %sp int rv = 0; if ( 40004c28: 80 a6 e0 01 cmp %i3, 1 40004c2c: 18 80 00 b2 bgu 40004ef4 <== NEVER TAKEN 40004c30: 01 00 00 00 nop options == RTEMS_FILESYSTEM_READ_ONLY || options == RTEMS_FILESYSTEM_READ_WRITE ) { rtems_filesystem_fsmount_me_t fsmount_me_h = 40004c34: 40 00 22 76 call 4000d60c 40004c38: 90 10 00 1a mov %i2, %o0 rtems_filesystem_get_mount_handler( filesystemtype ); if ( fsmount_me_h != NULL ) { 40004c3c: a2 92 20 00 orcc %o0, 0, %l1 40004c40: 02 80 00 ad be 40004ef4 <== NEVER TAKEN 40004c44: 80 a6 60 00 cmp %i1, 0 const char *target = target_or_null != NULL ? target_or_null : "/"; 40004c48: 02 80 00 78 be 40004e28 <== ALWAYS TAKEN 40004c4c: 90 10 00 19 mov %i1, %o0 40004c50: 40 00 28 21 call 4000ecd4 <== NOT EXECUTED 40004c54: a6 10 00 19 mov %i1, %l3 <== NOT EXECUTED 40004c58: a4 02 20 01 add %o0, 1, %l2 <== NOT EXECUTED size_t filesystemtype_size = strlen( filesystemtype ) + 1; 40004c5c: 40 00 28 1e call 4000ecd4 40004c60: 90 10 00 1a mov %i2, %o0 strlen( source_or_null ) + 1 : 0; 40004c64: 80 a6 20 00 cmp %i0, 0 size_t filesystemtype_size = strlen( filesystemtype ) + 1; 40004c68: a8 02 20 01 add %o0, 1, %l4 strlen( source_or_null ) + 1 : 0; 40004c6c: 02 80 00 61 be 40004df0 <== ALWAYS TAKEN 40004c70: ba 02 20 65 add %o0, 0x65, %i5 40004c74: 40 00 28 18 call 4000ecd4 <== NOT EXECUTED 40004c78: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED size_t size = sizeof( rtems_filesystem_mount_table_entry_t ) 40004c7c: 92 07 40 12 add %i5, %l2, %o1 <== NOT EXECUTED strlen( source_or_null ) + 1 : 0; 40004c80: a0 02 20 01 add %o0, 1, %l0 <== NOT EXECUTED rtems_filesystem_mount_table_entry_t *mt_entry = calloc( 1, size ); 40004c84: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED 40004c88: 7f ff fe 31 call 4000454c <== NOT EXECUTED 40004c8c: 92 02 40 10 add %o1, %l0, %o1 <== NOT EXECUTED if ( mt_entry != NULL ) { 40004c90: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 40004c94: 12 80 00 08 bne 40004cb4 <== NOT EXECUTED 40004c98: 84 07 60 64 add %i5, 0x64, %g2 <== NOT EXECUTED if ( rv != 0 ) { free( mt_entry ); } } else { errno = ENOMEM; 40004c9c: 40 00 26 af call 4000e758 <__errno> <== NOT EXECUTED 40004ca0: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40004ca4: 82 10 20 0c mov 0xc, %g1 <== NOT EXECUTED 40004ca8: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40004cac: 81 c7 e0 08 ret <== NOT EXECUTED 40004cb0: 81 e8 00 00 restore <== NOT EXECUTED memcpy( str, filesystemtype, filesystemtype_size ); 40004cb4: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 40004cb8: 94 10 00 14 mov %l4, %o2 <== NOT EXECUTED 40004cbc: 40 00 26 e4 call 4000e84c <== NOT EXECUTED 40004cc0: 90 10 00 02 mov %g2, %o0 <== NOT EXECUTED mt_entry->type = str; 40004cc4: d0 27 60 34 st %o0, [ %i5 + 0x34 ] <== NOT EXECUTED str += filesystemtype_size; 40004cc8: 84 02 00 14 add %o0, %l4, %g2 <== NOT EXECUTED memcpy( str, source_or_null, source_size ); 40004ccc: 94 10 00 10 mov %l0, %o2 <== NOT EXECUTED 40004cd0: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40004cd4: 40 00 26 de call 4000e84c <== NOT EXECUTED 40004cd8: 90 10 00 02 mov %g2, %o0 <== NOT EXECUTED mt_entry->dev = str; 40004cdc: d0 27 60 38 st %o0, [ %i5 + 0x38 ] <== NOT EXECUTED rtems_filesystem_global_location_t *mt_fs_root = 40004ce0: b4 07 60 40 add %i5, 0x40, %i2 <== NOT EXECUTED str += source_size; 40004ce4: a0 02 00 10 add %o0, %l0, %l0 <== NOT EXECUTED memcpy( str, target, target_size ); 40004ce8: 94 10 00 12 mov %l2, %o2 40004cec: 92 10 00 13 mov %l3, %o1 40004cf0: 40 00 26 d7 call 4000e84c 40004cf4: 90 10 00 10 mov %l0, %o0 mt_entry->mounted = true; 40004cf8: 82 10 20 01 mov 1, %g1 40004cfc: c2 2f 60 28 stb %g1, [ %i5 + 0x28 ] mt_entry->pathconf_limits_and_options = &rtems_filesystem_default_pathconf; 40004d00: 03 10 00 40 sethi %hi(0x40010000), %g1 40004d04: 82 10 63 d0 or %g1, 0x3d0, %g1 ! 400103d0 mt_entry->target = str; 40004d08: e0 27 60 30 st %l0, [ %i5 + 0x30 ] void *starting_address, size_t number_nodes, size_t node_size ) { _Chain_Initialize( 40004d0c: 96 10 20 24 mov 0x24, %o3 mt_entry->pathconf_limits_and_options = &rtems_filesystem_default_pathconf; 40004d10: c2 27 60 2c st %g1, [ %i5 + 0x2c ] mt_fs_root->reference_count = 1; 40004d14: 82 10 20 01 mov 1, %g1 mt_entry->mt_fs_root = mt_fs_root; 40004d18: f4 27 60 24 st %i2, [ %i5 + 0x24 ] 40004d1c: 94 10 20 01 mov 1, %o2 mt_fs_root->reference_count = 1; 40004d20: c2 27 60 58 st %g1, [ %i5 + 0x58 ] 40004d24: 92 10 00 1a mov %i2, %o1 mt_fs_root->location.mt_entry = mt_entry; 40004d28: fa 27 60 54 st %i5, [ %i5 + 0x54 ] 40004d2c: 90 07 60 14 add %i5, 0x14, %o0 40004d30: 40 00 07 7f call 40006b2c <_Chain_Initialize> 40004d34: b6 0e e0 01 and %i3, 1, %i3 mt_entry->writeable = options == RTEMS_FILESYSTEM_READ_WRITE; 40004d38: f6 2f 60 29 stb %i3, [ %i5 + 0x29 ] rv = (*fsmount_me_h)( mt_entry, data ); 40004d3c: 92 10 00 1c mov %i4, %o1 40004d40: 9f c4 40 00 call %l1 40004d44: 90 10 00 1d mov %i5, %o0 if ( rv == 0 ) { 40004d48: b0 92 20 00 orcc %o0, 0, %i0 40004d4c: 12 80 00 25 bne 40004de0 <== NEVER TAKEN 40004d50: 80 a6 60 00 cmp %i1, 0 if ( target != NULL ) { 40004d54: 02 80 00 48 be 40004e74 <== ALWAYS TAKEN 40004d58: 94 10 20 1f mov 0x1f, %o2 rtems_filesystem_location_info_t *currentloc = 40004d5c: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 40004d60: 40 00 03 02 call 40005968 <== NOT EXECUTED 40004d64: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED const rtems_filesystem_mount_table_entry_t *mt_entry = loc->mt_entry; 40004d68: c2 02 20 14 ld [ %o0 + 0x14 ], %g1 <== NOT EXECUTED return (*mt_entry->ops->are_nodes_equal_h)( 40004d6c: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED 40004d70: c4 00 a0 10 ld [ %g2 + 0x10 ], %g2 <== NOT EXECUTED 40004d74: 9f c0 80 00 call %g2 <== NOT EXECUTED 40004d78: d2 00 60 24 ld [ %g1 + 0x24 ], %o1 <== NOT EXECUTED if ( !rtems_filesystem_location_is_instance_root( currentloc ) ) { 40004d7c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40004d80: 12 80 00 63 bne 40004f0c <== NOT EXECUTED 40004d84: 92 07 bf e0 add %fp, -32, %o1 <== NOT EXECUTED rtems_filesystem_location_copy_and_detach( 40004d88: 40 00 04 4e call 40005ec0 <== NOT EXECUTED 40004d8c: 90 07 bf b0 add %fp, -80, %o0 <== NOT EXECUTED mt_point_node = rtems_filesystem_location_transform_to_global( &targetloc ); 40004d90: 40 00 04 77 call 40005f6c <== NOT EXECUTED 40004d94: 90 07 bf b0 add %fp, -80, %o0 <== NOT EXECUTED rv = (*mt_point_node->location.mt_entry->ops->mount_h)( mt_entry ); 40004d98: c2 02 20 14 ld [ %o0 + 0x14 ], %g1 <== NOT EXECUTED 40004d9c: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED mt_entry->mt_point_node = mt_point_node; 40004da0: d0 27 60 20 st %o0, [ %i5 + 0x20 ] <== NOT EXECUTED mt_point_node = rtems_filesystem_location_transform_to_global( &targetloc ); 40004da4: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED rv = (*mt_point_node->location.mt_entry->ops->mount_h)( mt_entry ); 40004da8: c2 00 60 2c ld [ %g1 + 0x2c ], %g1 <== NOT EXECUTED 40004dac: 9f c0 40 00 call %g1 <== NOT EXECUTED 40004db0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if ( rv == 0 ) { 40004db4: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 40004db8: 02 80 00 20 be 40004e38 <== NOT EXECUTED 40004dbc: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED rtems_filesystem_global_location_release( mt_point_node, true ); 40004dc0: 40 00 03 fb call 40005dac <== NOT EXECUTED 40004dc4: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 40004dc8: 40 00 02 f4 call 40005998 <== NOT EXECUTED 40004dcc: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED (*mt_entry->ops->fsunmount_me_h)( mt_entry ); 40004dd0: c2 07 60 0c ld [ %i5 + 0xc ], %g1 <== NOT EXECUTED 40004dd4: c2 00 60 34 ld [ %g1 + 0x34 ], %g1 <== NOT EXECUTED 40004dd8: 9f c0 40 00 call %g1 <== NOT EXECUTED 40004ddc: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED free( mt_entry ); 40004de0: 7f ff fe 26 call 40004678 <== NOT EXECUTED 40004de4: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED errno = EINVAL; rv = -1; } return rv; } 40004de8: 81 c7 e0 08 ret <== NOT EXECUTED 40004dec: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_mount_table_entry_t *mt_entry = calloc( 1, size ); 40004df0: 92 07 40 12 add %i5, %l2, %o1 40004df4: 7f ff fd d6 call 4000454c 40004df8: 90 10 20 01 mov 1, %o0 if ( mt_entry != NULL ) { 40004dfc: ba 92 20 00 orcc %o0, 0, %i5 40004e00: 02 bf ff a7 be 40004c9c <== NEVER TAKEN 40004e04: 84 07 60 64 add %i5, 0x64, %g2 memcpy( str, filesystemtype, filesystemtype_size ); 40004e08: 92 10 00 1a mov %i2, %o1 40004e0c: 94 10 00 14 mov %l4, %o2 40004e10: 90 10 00 02 mov %g2, %o0 40004e14: 40 00 26 8e call 4000e84c 40004e18: b4 07 60 40 add %i5, 0x40, %i2 str += filesystemtype_size; 40004e1c: a0 02 00 14 add %o0, %l4, %l0 mt_entry->type = str; 40004e20: 10 bf ff b2 b 40004ce8 40004e24: d0 27 60 34 st %o0, [ %i5 + 0x34 ] const char *target = target_or_null != NULL ? target_or_null : "/"; 40004e28: 27 10 00 3f sethi %hi(0x4000fc00), %l3 40004e2c: a4 10 20 02 mov 2, %l2 40004e30: 10 bf ff 8b b 40004c5c 40004e34: a6 14 e3 60 or %l3, 0x360, %l3 rtems_libio_lock(); 40004e38: 7f ff fe 84 call 40004848 <== NOT EXECUTED 40004e3c: 01 00 00 00 nop <== NOT EXECUTED old_last = tail->previous; 40004e40: 03 10 00 47 sethi %hi(0x40011c00), %g1 <== NOT EXECUTED 40004e44: 82 10 62 1c or %g1, 0x21c, %g1 ! 40011e1c <== NOT EXECUTED 40004e48: c4 00 60 08 ld [ %g1 + 8 ], %g2 <== NOT EXECUTED the_node->next = tail; 40004e4c: 86 00 60 04 add %g1, 4, %g3 <== NOT EXECUTED tail->previous = the_node; 40004e50: fa 20 60 08 st %i5, [ %g1 + 8 ] <== NOT EXECUTED the_node->next = tail; 40004e54: c6 27 40 00 st %g3, [ %i5 ] <== NOT EXECUTED old_last->next = the_node; 40004e58: fa 20 80 00 st %i5, [ %g2 ] <== NOT EXECUTED rtems_libio_unlock(); 40004e5c: 7f ff fe 80 call 4000485c <== NOT EXECUTED 40004e60: c4 27 60 04 st %g2, [ %i5 + 4 ] <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 40004e64: 40 00 02 cd call 40005998 <== NOT EXECUTED 40004e68: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED 40004e6c: 81 c7 e0 08 ret <== NOT EXECUTED 40004e70: 81 e8 00 00 restore <== NOT EXECUTED rtems_libio_lock(); 40004e74: 7f ff fe 75 call 40004848 40004e78: 01 00 00 00 nop return _Chain_Immutable_head( the_chain )->next; 40004e7c: 03 10 00 47 sethi %hi(0x40011c00), %g1 if ( rtems_chain_is_empty( &rtems_filesystem_mount_table ) ) { 40004e80: c4 00 62 1c ld [ %g1 + 0x21c ], %g2 ! 40011e1c 40004e84: 82 10 62 1c or %g1, 0x21c, %g1 40004e88: 86 00 60 04 add %g1, 4, %g3 40004e8c: 80 a0 80 03 cmp %g2, %g3 40004e90: 12 80 00 27 bne 40004f2c <== NEVER TAKEN 40004e94: 01 00 00 00 nop old_last = tail->previous; 40004e98: c6 00 60 08 ld [ %g1 + 8 ], %g3 the_node->next = tail; 40004e9c: c4 27 40 00 st %g2, [ %i5 ] rtems_filesystem_global_location_obtain( &mt_entry->mt_fs_root ); 40004ea0: b8 07 60 24 add %i5, 0x24, %i4 tail->previous = the_node; 40004ea4: fa 20 60 08 st %i5, [ %g1 + 8 ] old_last->next = the_node; 40004ea8: fa 20 c0 00 st %i5, [ %g3 ] rtems_libio_unlock(); 40004eac: 7f ff fe 6c call 4000485c 40004eb0: c6 27 60 04 st %g3, [ %i5 + 4 ] rtems_filesystem_global_location_t *new_fs_root = 40004eb4: 40 00 03 84 call 40005cc4 40004eb8: 90 10 00 1c mov %i4, %o0 40004ebc: b6 10 00 08 mov %o0, %i3 rtems_filesystem_global_location_t *new_fs_current = 40004ec0: 40 00 03 81 call 40005cc4 40004ec4: 90 10 00 1c mov %i4, %o0 &rtems_filesystem_root, 40004ec8: 40 00 00 fa call 400052b0 40004ecc: ba 10 00 08 mov %o0, %i5 rtems_filesystem_global_location_assign( 40004ed0: 92 10 00 1b mov %i3, %o1 40004ed4: 40 00 03 d0 call 40005e14 40004ed8: 90 02 20 04 add %o0, 4, %o0 &rtems_filesystem_current, 40004edc: 40 00 00 f5 call 400052b0 40004ee0: 01 00 00 00 nop rtems_filesystem_global_location_assign( 40004ee4: 40 00 03 cc call 40005e14 40004ee8: 92 10 00 1d mov %i5, %o1 40004eec: 81 c7 e0 08 ret 40004ef0: 81 e8 00 00 restore errno = EINVAL; 40004ef4: 40 00 26 19 call 4000e758 <__errno> <== NOT EXECUTED 40004ef8: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40004efc: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 40004f00: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED return rv; 40004f04: 81 c7 e0 08 ret <== NOT EXECUTED 40004f08: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_eval_path_error( &ctx, EBUSY ); 40004f0c: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED 40004f10: 40 00 01 db call 4000567c <== NOT EXECUTED 40004f14: 92 10 20 10 mov 0x10, %o1 <== NOT EXECUTED rv = -1; 40004f18: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 40004f1c: 40 00 02 9f call 40005998 <== NOT EXECUTED 40004f20: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED (*mt_entry->ops->fsunmount_me_h)( mt_entry ); 40004f24: 10 bf ff ac b 40004dd4 <== NOT EXECUTED 40004f28: c2 07 60 0c ld [ %i5 + 0xc ], %g1 <== NOT EXECUTED errno = EINVAL; 40004f2c: 40 00 26 0b call 4000e758 <__errno> <== NOT EXECUTED 40004f30: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40004f34: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 40004f38: 7f ff fe 49 call 4000485c <== NOT EXECUTED 40004f3c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED (*mt_entry->ops->fsunmount_me_h)( mt_entry ); 40004f40: 10 bf ff a5 b 40004dd4 <== NOT EXECUTED 40004f44: c2 07 60 0c ld [ %i5 + 0xc ], %g1 <== NOT EXECUTED =============================================================================== 40005044 : /** * POSIX 1003.1 5.3.1 - Open a File */ int open( const char *path, int oflag, ... ) { 40005044: 9d e3 bf 00 save %sp, -256, %sp mode_t mode = 0; rtems_libio_t *iop = NULL; va_start( ap, oflag ); mode = va_arg( ap, mode_t ); 40005048: 82 07 a0 50 add %fp, 0x50, %g1 va_start( ap, oflag ); 4000504c: fa 27 a0 58 st %i5, [ %fp + 0x58 ] 40005050: f4 27 a0 4c st %i2, [ %fp + 0x4c ] 40005054: f6 27 a0 50 st %i3, [ %fp + 0x50 ] 40005058: f8 27 a0 54 st %i4, [ %fp + 0x54 ] iop = rtems_libio_allocate(); 4000505c: 40 00 21 0e call 4000d494 40005060: c2 27 bf 64 st %g1, [ %fp + -156 ] if ( iop != NULL ) { 40005064: ba 92 20 00 orcc %o0, 0, %i5 40005068: 02 80 00 76 be 40005240 <== NEVER TAKEN 4000506c: 82 06 60 01 add %i1, 1, %g1 bool make = (oflag & O_CREAT) == O_CREAT; 40005070: 86 0e 62 00 and %i1, 0x200, %g3 bool read_access = (rwflag & _FREAD) == _FREAD; 40005074: 94 08 60 01 and %g1, 1, %o2 bool exclusive = (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL); 40005078: 84 0e 6a 00 and %i1, 0xa00, %g2 | (read_access ? RTEMS_FS_PERMS_READ : 0) 4000507c: 94 02 bf ff add %o2, -1, %o2 | (write_access ? RTEMS_FS_PERMS_WRITE : 0) 40005080: b8 88 60 02 andcc %g1, 2, %i4 | (read_access ? RTEMS_FS_PERMS_READ : 0) 40005084: 94 0a bf fc and %o2, -4, %o2 | (write_access ? RTEMS_FS_PERMS_WRITE : 0) 40005088: 02 80 00 03 be 40005094 4000508c: 94 02 a0 1c add %o2, 0x1c, %o2 40005090: 94 12 a0 02 or %o2, 2, %o2 | (make ? RTEMS_FS_MAKE : 0) 40005094: 80 a0 e0 00 cmp %g3, 0 40005098: 32 80 00 02 bne,a 400050a0 <== NEVER TAKEN 4000509c: 94 12 a0 20 or %o2, 0x20, %o2 <== NOT EXECUTED | (exclusive ? RTEMS_FS_EXCLUSIVE : 0); 400050a0: 80 a0 aa 00 cmp %g2, 0xa00 400050a4: 22 80 00 02 be,a 400050ac <== NEVER TAKEN 400050a8: 94 12 a0 40 or %o2, 0x40, %o2 <== NOT EXECUTED rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); 400050ac: 92 10 00 18 mov %i0, %o1 400050b0: 40 00 02 2e call 40005968 400050b4: 90 07 bf 68 add %fp, -152, %o0 400050b8: f6 07 bf 74 ld [ %fp + -140 ], %i3 if ( rtems_filesystem_eval_path_has_token( &ctx ) ) { 400050bc: 80 a6 e0 00 cmp %i3, 0 400050c0: 12 80 00 45 bne 400051d4 <== NEVER TAKEN 400050c4: 80 a7 20 00 cmp %i4, 0 if ( write_access ) { 400050c8: 02 80 00 0e be 40005100 400050cc: c2 07 bf 90 ld [ %fp + -112 ], %g1 const rtems_filesystem_location_info_t *loc ) { struct stat st; st.st_mode = 0; 400050d0: c0 27 bf ac clr [ %fp + -84 ] (void) ( *loc->handlers->fstat_h )( loc, &st ); 400050d4: 92 07 bf a0 add %fp, -96, %o1 400050d8: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 400050dc: 9f c0 40 00 call %g1 400050e0: 90 07 bf 80 add %fp, -128, %o0 if ( S_ISDIR( type ) ) { 400050e4: 05 00 00 3c sethi %hi(0xf000), %g2 400050e8: c2 07 bf ac ld [ %fp + -84 ], %g1 400050ec: 82 08 40 02 and %g1, %g2, %g1 400050f0: 05 00 00 10 sethi %hi(0x4000), %g2 400050f4: 80 a0 40 02 cmp %g1, %g2 400050f8: 02 80 00 4e be 40005230 <== NEVER TAKEN 400050fc: 92 10 20 15 mov 0x15, %o1 rtems_filesystem_location_copy_and_detach( 40005100: 92 07 bf 80 add %fp, -128, %o1 40005104: 40 00 03 6f call 40005ec0 40005108: 90 07 60 0c add %i5, 0xc, %o0 rtems_filesystem_eval_path_cleanup( &ctx ); 4000510c: 40 00 02 23 call 40005998 40005110: 90 07 bf 68 add %fp, -152, %o0 _Atomic_Store_uint( 40005114: 40 00 20 d3 call 4000d460 40005118: 90 10 00 19 mov %i1, %o0 rv = (*iop->pathinfo.handlers->open_h)( iop, path, oflag, mode ); 4000511c: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 #elif defined(_RTEMS_SCORE_CPUSTDATOMIC_USE_STDATOMIC) atomic_store_explicit( obj, desired, order ); #else (void) order; RTEMS_COMPILER_MEMORY_BARRIER(); *obj = desired; 40005120: d0 27 60 08 st %o0, [ %i5 + 8 ] 40005124: 92 10 00 18 mov %i0, %o1 40005128: c2 00 40 00 ld [ %g1 ], %g1 4000512c: 96 10 00 1a mov %i2, %o3 40005130: 94 10 00 19 mov %i1, %o2 40005134: 9f c0 40 00 call %g1 40005138: 90 10 00 1d mov %i5, %o0 if ( rv == 0 ) { 4000513c: b0 92 20 00 orcc %o0, 0, %i0 40005140: 12 80 00 13 bne 4000518c <== NEVER TAKEN 40005144: 80 a6 20 00 cmp %i0, 0 int fd = rtems_libio_iop_to_descriptor( iop ); 40005148: 31 10 00 4c sethi %hi(0x40013000), %i0 4000514c: 03 2a aa aa sethi %hi(0xaaaaa800), %g1 40005150: b0 16 21 48 or %i0, 0x148, %i0 <== NOT EXECUTED 40005154: 82 10 62 ab or %g1, 0x2ab, %g1 <== NOT EXECUTED 40005158: b0 27 40 18 sub %i5, %i0, %i0 <== NOT EXECUTED 4000515c: b1 3e 20 04 sra %i0, 4, %i0 <== NOT EXECUTED 40005160: b0 5e 00 01 smul %i0, %g1, %i0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005164: 91 d0 20 09 ta 9 <== NOT EXECUTED ISR_Level level; (void) order; _ISR_Local_disable( level ); val = *obj; *obj = val | arg; 40005168: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4000516c: 84 10 a1 00 or %g2, 0x100, %g2 <== NOT EXECUTED 40005170: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005174: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005178: 01 00 00 00 nop if ( truncate ) { 4000517c: 80 8e 64 00 btst 0x400, %i1 40005180: 12 80 00 07 bne 4000519c <== NEVER TAKEN 40005184: 92 10 20 00 clr %o1 if ( rv < 0 ) { 40005188: 80 a6 20 00 cmp %i0, 0 4000518c: 06 80 00 0e bl 400051c4 <== NEVER TAKEN 40005190: 01 00 00 00 nop } va_end( ap ); return rv; } 40005194: 81 c7 e0 08 ret 40005198: 81 e8 00 00 restore rv = ftruncate( fd, 0 ); 4000519c: 94 10 20 00 clr %o2 <== NOT EXECUTED 400051a0: 40 00 20 67 call 4000d33c <== NOT EXECUTED 400051a4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED if ( rv != 0 ) { 400051a8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400051ac: 02 bf ff f7 be 40005188 <== NOT EXECUTED 400051b0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED (*iop->pathinfo.handlers->close_h)( iop ); 400051b4: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 400051b8: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 400051bc: 9f c0 40 00 call %g1 <== NOT EXECUTED 400051c0: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED rtems_libio_free( iop ); 400051c4: 40 00 20 c9 call 4000d4e8 <== NOT EXECUTED 400051c8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400051cc: 81 c7 e0 08 ret <== NOT EXECUTED 400051d0: 81 e8 00 00 restore <== NOT EXECUTED 400051d4: e0 07 bf 70 ld [ %fp + -144 ], %l0 <== NOT EXECUTED rv = rtems_filesystem_mknod( 400051d8: 98 10 20 00 clr %o4 <== NOT EXECUTED 400051dc: 9a 10 20 00 clr %o5 <== NOT EXECUTED 400051e0: 17 00 00 20 sethi %hi(0x8000), %o3 <== NOT EXECUTED 400051e4: 94 10 00 1b mov %i3, %o2 <== NOT EXECUTED 400051e8: 96 16 80 0b or %i2, %o3, %o3 <== NOT EXECUTED 400051ec: 92 10 00 10 mov %l0, %o1 <== NOT EXECUTED 400051f0: 7f ff fe 4c call 40004b20 <== NOT EXECUTED 400051f4: 90 07 bf 80 add %fp, -128, %o0 <== NOT EXECUTED if ( rv == 0 ) { 400051f8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400051fc: 02 80 00 06 be 40005214 <== NOT EXECUTED 40005200: 92 10 20 00 clr %o1 <== NOT EXECUTED rtems_filesystem_eval_path_error( ctx, 0 ); 40005204: 40 00 01 1e call 4000567c <== NOT EXECUTED 40005208: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED if ( write_access ) { 4000520c: 10 bf ff af b 400050c8 <== NOT EXECUTED 40005210: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED ctx->flags = flags; 40005214: c0 27 bf 78 clr [ %fp + -136 ] <== NOT EXECUTED rtems_filesystem_eval_path_continue( ctx ); 40005218: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED ctx->path = path; 4000521c: e0 27 bf 68 st %l0, [ %fp + -152 ] <== NOT EXECUTED 40005220: 40 00 01 5f call 4000579c <== NOT EXECUTED 40005224: f6 27 bf 6c st %i3, [ %fp + -148 ] <== NOT EXECUTED if ( write_access ) { 40005228: 10 bf ff a8 b 400050c8 <== NOT EXECUTED 4000522c: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED rtems_filesystem_eval_path_error( &ctx, EISDIR ); 40005230: 40 00 01 13 call 4000567c <== NOT EXECUTED 40005234: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED rtems_filesystem_location_copy_and_detach( 40005238: 10 bf ff b3 b 40005104 <== NOT EXECUTED 4000523c: 92 07 bf 80 add %fp, -128, %o1 <== NOT EXECUTED errno = ENFILE; 40005240: 40 00 25 46 call 4000e758 <__errno> <== NOT EXECUTED 40005244: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40005248: 82 10 20 17 mov 0x17, %g1 <== NOT EXECUTED 4000524c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } 40005250: 81 c7 e0 08 ret <== NOT EXECUTED 40005254: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40019d7c : ssize_t read( int fd, void *buffer, size_t count ) { 40019d7c: 9d e3 bf a0 save %sp, -96, %sp rtems_libio_t *iop; ssize_t n; rtems_libio_check_buffer( buffer ); 40019d80: 80 a6 60 00 cmp %i1, 0 40019d84: 02 80 00 32 be 40019e4c <== NEVER TAKEN 40019d88: 80 a6 a0 00 cmp %i2, 0 rtems_libio_check_count( count ); 40019d8c: 02 80 00 22 be 40019e14 <== NEVER TAKEN 40019d90: 84 10 20 00 clr %g2 LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_READ, EBADF ); 40019d94: 03 10 00 b5 sethi %hi(0x4002d400), %g1 40019d98: c2 00 60 e0 ld [ %g1 + 0xe0 ], %g1 ! 4002d4e0 40019d9c: 80 a6 00 01 cmp %i0, %g1 40019da0: 1a 80 00 25 bcc 40019e34 <== NEVER TAKEN 40019da4: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED 40019da8: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 40019dac: 31 10 00 d2 sethi %hi(0x40034800), %i0 <== NOT EXECUTED 40019db0: bb 2f 60 04 sll %i5, 4, %i5 <== NOT EXECUTED 40019db4: b0 16 23 f0 or %i0, 0x3f0, %i0 <== NOT EXECUTED 40019db8: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40019dbc: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 40019dc0: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 40019dc4: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 40019dc8: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40019dcc: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40019dd0: 01 00 00 00 nop 40019dd4: 84 08 a1 02 and %g2, 0x102, %g2 40019dd8: 80 a0 a1 02 cmp %g2, 0x102 40019ddc: 12 80 00 10 bne 40019e1c <== NEVER TAKEN 40019de0: 94 10 00 1a mov %i2, %o2 /* * Now process the read(). */ n = (*iop->pathinfo.handlers->read_h)( iop, buffer, count ); 40019de4: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 40019de8: c2 00 60 08 ld [ %g1 + 8 ], %g1 40019dec: 92 10 00 19 mov %i1, %o1 40019df0: 9f c0 40 00 call %g1 40019df4: 90 10 00 1d mov %i5, %o0 40019df8: 84 10 00 08 mov %o0, %g2 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40019dfc: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 40019e00: c6 07 60 08 ld [ %i5 + 8 ], %g3 <== NOT EXECUTED 40019e04: 86 00 f0 00 add %g3, -4096, %g3 <== NOT EXECUTED 40019e08: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40019e0c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40019e10: 01 00 00 00 nop rtems_libio_iop_drop( iop ); return n; } 40019e14: 81 c7 e0 08 ret 40019e18: 91 e8 00 02 restore %g0, %g2, %o0 __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40019e1c: 91 d0 20 09 ta 9 <== NOT EXECUTED 40019e20: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 40019e24: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40019e28: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40019e2c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40019e30: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_READ, EBADF ); 40019e34: 40 00 07 b3 call 4001bd00 <__errno> <== NOT EXECUTED 40019e38: 01 00 00 00 nop <== NOT EXECUTED 40019e3c: 82 10 20 09 mov 9, %g1 ! 9 <_TLS_Alignment+0x8> <== NOT EXECUTED 40019e40: 84 10 3f ff mov -1, %g2 <== NOT EXECUTED 40019e44: 10 bf ff f4 b 40019e14 <== NOT EXECUTED 40019e48: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED rtems_libio_check_buffer( buffer ); 40019e4c: 40 00 07 ad call 4001bd00 <__errno> <== NOT EXECUTED 40019e50: 01 00 00 00 nop <== NOT EXECUTED 40019e54: 82 10 20 16 mov 0x16, %g1 ! 16 <_TLS_Alignment+0x15> <== NOT EXECUTED 40019e58: 84 10 3f ff mov -1, %g2 <== NOT EXECUTED 40019e5c: 10 bf ff ee b 40019e14 <== NOT EXECUTED 40019e60: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED =============================================================================== 40042cac : /** * POSIX 1003.1b - X.X.X - XXX */ ssize_t readlink( const char *__restrict path, char *__restrict buf, size_t bufsize ) { 40042cac: 9d e3 bf 08 save %sp, -248, %sp <== NOT EXECUTED ssize_t rv = 0; rtems_filesystem_eval_path_context_t ctx; int eval_flags = RTEMS_FS_FOLLOW_HARD_LINK; const rtems_filesystem_location_info_t *currentloc = 40042cb0: 94 10 20 08 mov 8, %o2 <== NOT EXECUTED 40042cb4: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40042cb8: 7f ff 29 62 call 4000d240 <== NOT EXECUTED 40042cbc: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); const rtems_filesystem_operations_table *ops = currentloc->mt_entry->ops; 40042cc0: c2 02 20 14 ld [ %o0 + 0x14 ], %g1 <== NOT EXECUTED 40042cc4: f8 00 60 0c ld [ %g1 + 0xc ], %i4 <== NOT EXECUTED (void) ( *loc->handlers->fstat_h )( loc, &st ); 40042cc8: c2 02 20 10 ld [ %o0 + 0x10 ], %g1 <== NOT EXECUTED st.st_mode = 0; 40042ccc: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED const rtems_filesystem_location_info_t *currentloc = 40042cd0: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED (void) ( *loc->handlers->fstat_h )( loc, &st ); 40042cd4: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 <== NOT EXECUTED 40042cd8: 9f c0 40 00 call %g1 <== NOT EXECUTED 40042cdc: 92 07 bf a0 add %fp, -96, %o1 <== NOT EXECUTED mode_t type = rtems_filesystem_location_type( currentloc ); if ( S_ISLNK( type ) ) { 40042ce0: 05 00 00 3c sethi %hi(0xf000), %g2 <== NOT EXECUTED 40042ce4: c2 07 bf ac ld [ %fp + -84 ], %g1 <== NOT EXECUTED 40042ce8: 82 08 40 02 and %g1, %g2, %g1 <== NOT EXECUTED 40042cec: 05 00 00 28 sethi %hi(0xa000), %g2 <== NOT EXECUTED 40042cf0: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 40042cf4: 12 80 00 0b bne 40042d20 <== NOT EXECUTED 40042cf8: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED rv = (*ops->readlink_h)( currentloc, buf, bufsize ); 40042cfc: c2 07 20 40 ld [ %i4 + 0x40 ], %g1 <== NOT EXECUTED 40042d00: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 40042d04: 9f c0 40 00 call %g1 <== NOT EXECUTED 40042d08: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40042d0c: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED } else { rtems_filesystem_eval_path_error( &ctx, EINVAL ); rv = -1; } rtems_filesystem_eval_path_cleanup( &ctx ); 40042d10: 7f ff 29 96 call 4000d368 <== NOT EXECUTED 40042d14: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED return rv; } 40042d18: 81 c7 e0 08 ret <== NOT EXECUTED 40042d1c: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_eval_path_error( &ctx, EINVAL ); 40042d20: 92 10 20 16 mov 0x16, %o1 <== NOT EXECUTED 40042d24: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED 40042d28: 7f ff 28 8b call 4000cf54 <== NOT EXECUTED 40042d2c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40042d30: 30 bf ff f8 b,a 40042d10 <== NOT EXECUTED =============================================================================== 40009fa4 : return new_ptr; } void *realloc( void *ptr, size_t size ) { 40009fa4: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED Heap_Control *heap; Heap_Resize_status status; uintptr_t old_size; uintptr_t avail_size; if ( size == 0 ) { 40009fa8: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED 40009fac: 02 80 00 40 be 4000a0ac <== NOT EXECUTED 40009fb0: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED free( ptr ); return NULL; } if ( ptr == NULL ) { 40009fb4: 02 80 00 34 be 4000a084 <== NOT EXECUTED 40009fb8: 03 10 00 ca sethi %hi(0x40032800), %g1 <== NOT EXECUTED return malloc( size ); } heap = RTEMS_Malloc_Heap; switch ( _Malloc_System_state() ) { 40009fbc: 7f ff fd 22 call 40009444 <_Malloc_System_state> <== NOT EXECUTED 40009fc0: fa 00 62 a0 ld [ %g1 + 0x2a0 ], %i5 ! 40032aa0 <== NOT EXECUTED 40009fc4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40009fc8: 02 80 00 21 be 4000a04c <== NOT EXECUTED 40009fcc: 01 00 00 00 nop <== NOT EXECUTED 40009fd0: 80 a2 20 01 cmp %o0, 1 <== NOT EXECUTED 40009fd4: 32 80 00 2e bne,a 4000a08c <== NOT EXECUTED 40009fd8: ba 10 20 00 clr %i5 <== NOT EXECUTED _Malloc_Process_deferred_frees(); status = _Heap_Resize_block( heap, ptr, size, &old_size, &avail_size ); _RTEMS_Unlock_allocator(); break; case MALLOC_SYSTEM_STATE_NO_PROTECTION: status = _Heap_Resize_block( heap, ptr, size, &old_size, &avail_size ); 40009fdc: 98 07 bf fc add %fp, -4, %o4 <== NOT EXECUTED 40009fe0: 96 07 bf f8 add %fp, -8, %o3 <== NOT EXECUTED 40009fe4: 94 10 00 19 mov %i1, %o2 <== NOT EXECUTED 40009fe8: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40009fec: 40 00 17 60 call 4000fd6c <_Heap_Resize_block> <== NOT EXECUTED 40009ff0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40009ff4: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED break; default: return NULL; } switch ( status ) { 40009ff8: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED 40009ffc: 02 80 00 12 be 4000a044 <== NOT EXECUTED 4000a000: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED 4000a004: 80 a7 20 01 cmp %i4, 1 <== NOT EXECUTED 4000a008: 12 80 00 23 bne 4000a094 <== NOT EXECUTED 4000a00c: f8 07 bf f8 ld [ %fp + -8 ], %i4 <== NOT EXECUTED new_ptr = malloc( new_size ); 4000a010: 7f ff fd 9e call 40009688 <== NOT EXECUTED 4000a014: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED if ( new_ptr == NULL ) { 4000a018: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 4000a01c: 02 80 00 0a be 4000a044 <== NOT EXECUTED 4000a020: 80 a7 00 19 cmp %i4, %i1 <== NOT EXECUTED memcpy( new_ptr, old_ptr, ( new_size < old_size ) ? new_size : old_size ); 4000a024: 08 80 00 03 bleu 4000a030 <== NOT EXECUTED 4000a028: 94 10 00 1c mov %i4, %o2 <== NOT EXECUTED 4000a02c: 94 10 00 19 mov %i1, %o2 <== NOT EXECUTED 4000a030: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 4000a034: 40 00 50 07 call 4001e050 <== NOT EXECUTED 4000a038: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED free( old_ptr ); 4000a03c: 7f ff fc 90 call 4000927c <== NOT EXECUTED 4000a040: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED return new_alloc( ptr, size, old_size ); default: errno = EINVAL; return NULL; } } 4000a044: 81 c7 e0 08 ret <== NOT EXECUTED 4000a048: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED _RTEMS_Lock_allocator(); 4000a04c: 40 00 15 2d call 4000f500 <_RTEMS_Lock_allocator> <== NOT EXECUTED 4000a050: 01 00 00 00 nop <== NOT EXECUTED _Malloc_Process_deferred_frees(); 4000a054: 7f ff fd 0b call 40009480 <_Malloc_Process_deferred_frees> <== NOT EXECUTED 4000a058: 01 00 00 00 nop <== NOT EXECUTED status = _Heap_Resize_block( heap, ptr, size, &old_size, &avail_size ); 4000a05c: 98 07 bf fc add %fp, -4, %o4 <== NOT EXECUTED 4000a060: 96 07 bf f8 add %fp, -8, %o3 <== NOT EXECUTED 4000a064: 94 10 00 19 mov %i1, %o2 <== NOT EXECUTED 4000a068: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 4000a06c: 40 00 17 40 call 4000fd6c <_Heap_Resize_block> <== NOT EXECUTED 4000a070: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 4000a074: 40 00 15 28 call 4000f514 <_RTEMS_Unlock_allocator> <== NOT EXECUTED 4000a078: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED break; 4000a07c: 10 bf ff e0 b 40009ffc <== NOT EXECUTED 4000a080: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED return malloc( size ); 4000a084: 7f ff fd 81 call 40009688 <== NOT EXECUTED 4000a088: 91 e8 00 19 restore %g0, %i1, %o0 <== NOT EXECUTED } 4000a08c: 81 c7 e0 08 ret <== NOT EXECUTED 4000a090: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED errno = EINVAL; 4000a094: 40 00 47 1b call 4001bd00 <__errno> <== NOT EXECUTED 4000a098: ba 10 20 00 clr %i5 <== NOT EXECUTED 4000a09c: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 4000a0a0: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } 4000a0a4: 81 c7 e0 08 ret <== NOT EXECUTED 4000a0a8: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED free( ptr ); 4000a0ac: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 4000a0b0: 7f ff fc 73 call 4000927c <== NOT EXECUTED 4000a0b4: ba 10 20 00 clr %i5 <== NOT EXECUTED return NULL; 4000a0b8: 30 bf ff e3 b,a 4000a044 <== NOT EXECUTED =============================================================================== 40042d34 : * components. Returns (resolved) on success, or (NULL) on failure, * in which case the path which caused trouble is left in (resolved). */ char * realpath(const char * __restrict path, char * __restrict resolved) { 40042d34: 9d e3 bc 40 save %sp, -960, %sp <== NOT EXECUTED size_t left_len, resolved_len; unsigned symlinks; int m, slen; char left[PATH_MAX], next_token[PATH_MAX], symlink[PATH_MAX]; if (path == NULL) { 40042d38: b8 96 20 00 orcc %i0, 0, %i4 <== NOT EXECUTED 40042d3c: 02 80 01 18 be 4004319c <== NOT EXECUTED 40042d40: 01 00 00 00 nop <== NOT EXECUTED errno = EINVAL; return (NULL); } if (path[0] == '\0') { 40042d44: fa 0f 00 00 ldub [ %i4 ], %i5 <== NOT EXECUTED 40042d48: bb 2f 60 18 sll %i5, 0x18, %i5 <== NOT EXECUTED 40042d4c: 80 a7 60 00 cmp %i5, 0 <== NOT EXECUTED 40042d50: 02 80 01 05 be 40043164 <== NOT EXECUTED 40042d54: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED errno = ENOENT; return (NULL); } if (resolved == NULL) { 40042d58: 02 80 00 e2 be 400430e0 <== NOT EXECUTED 40042d5c: a4 10 20 00 clr %l2 <== NOT EXECUTED return (NULL); m = 1; } else m = 0; symlinks = 0; if (path[0] == '/') { 40042d60: bb 3f 60 18 sra %i5, 0x18, %i5 <== NOT EXECUTED 40042d64: 80 a7 60 2f cmp %i5, 0x2f <== NOT EXECUTED 40042d68: 12 80 00 0a bne 40042d90 <== NOT EXECUTED 40042d6c: 92 10 20 ff mov 0xff, %o1 <== NOT EXECUTED resolved[0] = '/'; 40042d70: fa 2e 40 00 stb %i5, [ %i1 ] <== NOT EXECUTED resolved[1] = '\0'; 40042d74: c0 2e 60 01 clrb [ %i1 + 1 ] <== NOT EXECUTED if (path[1] == '\0') 40042d78: c2 4f 20 01 ldsb [ %i4 + 1 ], %g1 <== NOT EXECUTED 40042d7c: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40042d80: 12 80 00 c6 bne 40043098 <== NOT EXECUTED 40042d84: b0 10 00 19 mov %i1, %i0 <== NOT EXECUTED * is a single "/". */ if (resolved_len > 1 && resolved[resolved_len - 1] == '/') resolved[resolved_len - 1] = '\0'; return (resolved); } 40042d88: 81 c7 e0 08 ret <== NOT EXECUTED 40042d8c: 81 e8 00 00 restore <== NOT EXECUTED if (getcwd(resolved, PATH_MAX) == NULL) { 40042d90: 40 00 70 bc call 4005f080 <== NOT EXECUTED 40042d94: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 40042d98: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 40042d9c: 02 80 00 b9 be 40043080 <== NOT EXECUTED 40042da0: 80 a4 a0 00 cmp %l2, 0 <== NOT EXECUTED resolved_len = strlen(resolved); 40042da4: 40 00 86 57 call 40064700 <== NOT EXECUTED 40042da8: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED left_len = strlcpy(left, path, sizeof(left)); 40042dac: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED resolved_len = strlen(resolved); 40042db0: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED left_len = strlcpy(left, path, sizeof(left)); 40042db4: b4 07 bd 00 add %fp, -768, %i2 <== NOT EXECUTED 40042db8: 94 10 20 ff mov 0xff, %o2 <== NOT EXECUTED 40042dbc: 40 00 86 36 call 40064694 <== NOT EXECUTED 40042dc0: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED 40042dc4: 84 10 20 01 mov 1, %g2 <== NOT EXECUTED 40042dc8: 80 a7 60 fe cmp %i5, 0xfe <== NOT EXECUTED 40042dcc: 08 80 00 bc bleu 400430bc <== NOT EXECUTED 40042dd0: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED if (left_len >= sizeof(left) || resolved_len >= PATH_MAX) { 40042dd4: 80 a7 20 fe cmp %i4, 0xfe <== NOT EXECUTED 40042dd8: 18 80 00 03 bgu 40042de4 <== NOT EXECUTED 40042ddc: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED 40042de0: 82 10 20 00 clr %g1 <== NOT EXECUTED 40042de4: 80 88 60 ff btst 0xff, %g1 <== NOT EXECUTED 40042de8: 12 80 00 c6 bne 40043100 <== NOT EXECUTED 40042dec: 80 88 a0 ff btst 0xff, %g2 <== NOT EXECUTED 40042df0: 12 80 00 c4 bne 40043100 <== NOT EXECUTED 40042df4: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED while (left_len != 0) { 40042df8: 02 80 00 d0 be 40043138 <== NOT EXECUTED 40042dfc: aa 10 20 00 clr %l5 <== NOT EXECUTED else if (strcmp(next_token, ".") == 0) 40042e00: 21 10 01 fc sethi %hi(0x4007f000), %l0 <== NOT EXECUTED else if (strcmp(next_token, "..") == 0) { 40042e04: 23 10 01 f3 sethi %hi(0x4007cc00), %l1 <== NOT EXECUTED else if (strcmp(next_token, ".") == 0) 40042e08: a0 14 21 e0 or %l0, 0x1e0, %l0 <== NOT EXECUTED else if (strcmp(next_token, "..") == 0) { 40042e0c: a2 14 63 48 or %l1, 0x348, %l1 <== NOT EXECUTED if (S_ISLNK(sb.st_mode)) { 40042e10: 27 00 00 3c sethi %hi(0xf000), %l3 <== NOT EXECUTED 40042e14: 2d 00 00 28 sethi %hi(0xa000), %l6 <== NOT EXECUTED if (!S_ISDIR(sb.st_mode)) { 40042e18: 10 80 00 19 b 40042e7c <== NOT EXECUTED 40042e1c: 29 00 00 10 sethi %hi(0x4000), %l4 <== NOT EXECUTED else if (strcmp(next_token, ".") == 0) 40042e20: 40 00 83 bd call 40063d14 <== NOT EXECUTED 40042e24: 90 07 be 00 add %fp, -512, %o0 <== NOT EXECUTED 40042e28: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042e2c: 02 80 00 11 be 40042e70 <== NOT EXECUTED 40042e30: 92 10 00 11 mov %l1, %o1 <== NOT EXECUTED else if (strcmp(next_token, "..") == 0) { 40042e34: 40 00 83 b8 call 40063d14 <== NOT EXECUTED 40042e38: 90 07 be 00 add %fp, -512, %o0 <== NOT EXECUTED 40042e3c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042e40: 12 80 00 4e bne 40042f78 <== NOT EXECUTED 40042e44: 94 10 20 ff mov 0xff, %o2 <== NOT EXECUTED if (resolved_len > 1) { 40042e48: 80 a7 60 01 cmp %i5, 1 <== NOT EXECUTED 40042e4c: 08 80 00 09 bleu 40042e70 <== NOT EXECUTED 40042e50: 92 10 20 2f mov 0x2f, %o1 <== NOT EXECUTED resolved[resolved_len - 1] = '\0'; 40042e54: ba 06 40 1d add %i1, %i5, %i5 <== NOT EXECUTED 40042e58: c0 2f 7f ff clrb [ %i5 + -1 ] <== NOT EXECUTED q = strrchr(resolved, '/') + 1; 40042e5c: 40 00 8b 3d call 40065b50 <== NOT EXECUTED 40042e60: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED *q = '\0'; 40042e64: c0 2a 20 01 clrb [ %o0 + 1 ] <== NOT EXECUTED q = strrchr(resolved, '/') + 1; 40042e68: ba 02 20 01 add %o0, 1, %i5 <== NOT EXECUTED resolved_len = q - resolved; 40042e6c: ba 27 40 19 sub %i5, %i1, %i5 <== NOT EXECUTED while (left_len != 0) { 40042e70: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED 40042e74: 02 80 00 b2 be 4004313c <== NOT EXECUTED 40042e78: 80 a7 60 01 cmp %i5, 1 <== NOT EXECUTED p = strchr(left, '/'); 40042e7c: 92 10 20 2f mov 0x2f, %o1 <== NOT EXECUTED 40042e80: 40 00 83 33 call 40063b4c <== NOT EXECUTED 40042e84: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED s = p ? p : left + left_len; 40042e88: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 40042e8c: 02 80 00 31 be 40042f50 <== NOT EXECUTED 40042e90: b6 26 00 1a sub %i0, %i2, %i3 <== NOT EXECUTED if (s - left >= sizeof(next_token)) { 40042e94: 80 a6 e0 fe cmp %i3, 0xfe <== NOT EXECUTED 40042e98: 18 80 00 9a bgu 40043100 <== NOT EXECUTED 40042e9c: 94 10 00 1b mov %i3, %o2 <== NOT EXECUTED memcpy(next_token, left, s - left); 40042ea0: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 40042ea4: 40 00 78 4b call 40060fd0 <== NOT EXECUTED 40042ea8: 90 07 be 00 add %fp, -512, %o0 <== NOT EXECUTED left_len -= s - left; 40042eac: b8 27 00 1b sub %i4, %i3, %i4 <== NOT EXECUTED memmove(left, s + 1, left_len + 1); 40042eb0: 92 06 20 01 add %i0, 1, %o1 <== NOT EXECUTED next_token[s - left] = '\0'; 40042eb4: b6 07 80 1b add %fp, %i3, %i3 <== NOT EXECUTED memmove(left, s + 1, left_len + 1); 40042eb8: 94 07 20 01 add %i4, 1, %o2 <== NOT EXECUTED next_token[s - left] = '\0'; 40042ebc: c0 2e fe 00 clrb [ %i3 + -512 ] <== NOT EXECUTED memmove(left, s + 1, left_len + 1); 40042ec0: 40 00 78 80 call 400610c0 <== NOT EXECUTED 40042ec4: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED if (resolved[resolved_len - 1] != '/') { 40042ec8: 82 06 40 1d add %i1, %i5, %g1 <== NOT EXECUTED 40042ecc: c2 48 7f ff ldsb [ %g1 + -1 ], %g1 <== NOT EXECUTED 40042ed0: 80 a0 60 2f cmp %g1, 0x2f <== NOT EXECUTED 40042ed4: 02 80 00 08 be 40042ef4 <== NOT EXECUTED 40042ed8: 82 07 60 01 add %i5, 1, %g1 <== NOT EXECUTED if (resolved_len + 1 >= PATH_MAX) { 40042edc: 80 a0 60 fe cmp %g1, 0xfe <== NOT EXECUTED 40042ee0: 18 80 00 88 bgu 40043100 <== NOT EXECUTED 40042ee4: 84 10 20 2f mov 0x2f, %g2 <== NOT EXECUTED resolved[resolved_len++] = '/'; 40042ee8: c4 2e 40 1d stb %g2, [ %i1 + %i5 ] <== NOT EXECUTED resolved[resolved_len] = '\0'; 40042eec: ba 10 00 01 mov %g1, %i5 <== NOT EXECUTED 40042ef0: c0 2e 40 01 clrb [ %i1 + %g1 ] <== NOT EXECUTED if (next_token[0] == '\0') { 40042ef4: c2 4f be 00 ldsb [ %fp + -512 ], %g1 <== NOT EXECUTED 40042ef8: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40042efc: 12 bf ff c9 bne 40042e20 <== NOT EXECUTED 40042f00: 92 10 00 10 mov %l0, %o1 <== NOT EXECUTED if (lstat(resolved, &sb) != 0) { 40042f04: 92 07 bc a0 add %fp, -864, %o1 <== NOT EXECUTED 40042f08: 7f ff fd 10 call 40042348 <== NOT EXECUTED 40042f0c: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 40042f10: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042f14: 12 80 00 9a bne 4004317c <== NOT EXECUTED 40042f18: c2 07 bc ac ld [ %fp + -852 ], %g1 <== NOT EXECUTED if (!S_ISDIR(sb.st_mode)) { 40042f1c: 82 08 40 13 and %g1, %l3, %g1 <== NOT EXECUTED 40042f20: 80 a0 40 14 cmp %g1, %l4 <== NOT EXECUTED 40042f24: 02 bf ff d4 be 40042e74 <== NOT EXECUTED 40042f28: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED if (m) 40042f2c: 80 a4 a0 00 cmp %l2, 0 <== NOT EXECUTED 40042f30: 12 80 00 65 bne 400430c4 <== NOT EXECUTED 40042f34: 01 00 00 00 nop <== NOT EXECUTED errno = ENOTDIR; 40042f38: 40 00 66 77 call 4005c914 <__errno> <== NOT EXECUTED 40042f3c: b0 10 20 00 clr %i0 ! 0 <== NOT EXECUTED 40042f40: 82 10 20 14 mov 0x14, %g1 <== NOT EXECUTED 40042f44: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED return (NULL); 40042f48: 81 c7 e0 08 ret <== NOT EXECUTED 40042f4c: 81 e8 00 00 restore <== NOT EXECUTED if (s - left >= sizeof(next_token)) { 40042f50: 80 a7 20 fe cmp %i4, 0xfe <== NOT EXECUTED 40042f54: 18 80 00 6b bgu 40043100 <== NOT EXECUTED 40042f58: 94 10 00 1c mov %i4, %o2 <== NOT EXECUTED memcpy(next_token, left, s - left); 40042f5c: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 40042f60: 40 00 78 1c call 40060fd0 <== NOT EXECUTED 40042f64: 90 07 be 00 add %fp, -512, %o0 <== NOT EXECUTED next_token[s - left] = '\0'; 40042f68: 82 07 80 1c add %fp, %i4, %g1 <== NOT EXECUTED left_len -= s - left; 40042f6c: b8 10 20 00 clr %i4 <== NOT EXECUTED next_token[s - left] = '\0'; 40042f70: 10 bf ff d6 b 40042ec8 <== NOT EXECUTED 40042f74: c0 28 7e 00 clrb [ %g1 + -512 ] <== NOT EXECUTED resolved_len = strlcat(resolved, next_token, PATH_MAX); 40042f78: 92 07 be 00 add %fp, -512, %o1 <== NOT EXECUTED 40042f7c: 40 00 85 97 call 400645d8 <== NOT EXECUTED 40042f80: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED if (resolved_len >= PATH_MAX) { 40042f84: 80 a2 20 fe cmp %o0, 0xfe <== NOT EXECUTED 40042f88: 18 80 00 5e bgu 40043100 <== NOT EXECUTED 40042f8c: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED if (lstat(resolved, &sb) != 0) { 40042f90: 92 07 bc a0 add %fp, -864, %o1 <== NOT EXECUTED 40042f94: 7f ff fc ed call 40042348 <== NOT EXECUTED 40042f98: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 40042f9c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40042fa0: 12 80 00 77 bne 4004317c <== NOT EXECUTED 40042fa4: c2 07 bc ac ld [ %fp + -852 ], %g1 <== NOT EXECUTED if (S_ISLNK(sb.st_mode)) { 40042fa8: 82 08 40 13 and %g1, %l3, %g1 <== NOT EXECUTED 40042fac: 80 a0 40 16 cmp %g1, %l6 <== NOT EXECUTED 40042fb0: 12 bf ff b1 bne 40042e74 <== NOT EXECUTED 40042fb4: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED if (symlinks++ > MAXSYMLINKS) { 40042fb8: 80 a5 60 20 cmp %l5, 0x20 <== NOT EXECUTED 40042fbc: 18 80 00 7e bgu 400431b4 <== NOT EXECUTED 40042fc0: b6 05 60 01 add %l5, 1, %i3 <== NOT EXECUTED slen = readlink(resolved, symlink, sizeof(symlink) - 1); 40042fc4: 94 10 20 fe mov 0xfe, %o2 <== NOT EXECUTED 40042fc8: 92 07 bf 00 add %fp, -256, %o1 <== NOT EXECUTED 40042fcc: 7f ff ff 38 call 40042cac <== NOT EXECUTED 40042fd0: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED if (slen < 0) { 40042fd4: b8 92 20 00 orcc %o0, 0, %i4 <== NOT EXECUTED 40042fd8: 06 80 00 69 bl 4004317c <== NOT EXECUTED 40042fdc: aa 07 80 1c add %fp, %i4, %l5 <== NOT EXECUTED symlink[slen] = '\0'; 40042fe0: c0 2d 7f 00 clrb [ %l5 + -256 ] <== NOT EXECUTED if (symlink[0] == '/') { 40042fe4: c2 4f bf 00 ldsb [ %fp + -256 ], %g1 <== NOT EXECUTED 40042fe8: 80 a0 60 2f cmp %g1, 0x2f <== NOT EXECUTED 40042fec: 02 80 00 50 be 4004312c <== NOT EXECUTED 40042ff0: 80 a7 60 01 cmp %i5, 1 <== NOT EXECUTED } else if (resolved_len > 1) { 40042ff4: 08 80 00 09 bleu 40043018 <== NOT EXECUTED 40042ff8: 92 10 20 2f mov 0x2f, %o1 <== NOT EXECUTED resolved[resolved_len - 1] = '\0'; 40042ffc: ba 06 40 1d add %i1, %i5, %i5 <== NOT EXECUTED 40043000: c0 2f 7f ff clrb [ %i5 + -1 ] <== NOT EXECUTED q = strrchr(resolved, '/') + 1; 40043004: 40 00 8a d3 call 40065b50 <== NOT EXECUTED 40043008: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED *q = '\0'; 4004300c: c0 2a 20 01 clrb [ %o0 + 1 ] <== NOT EXECUTED q = strrchr(resolved, '/') + 1; 40043010: ba 02 20 01 add %o0, 1, %i5 <== NOT EXECUTED resolved_len = q - resolved; 40043014: ba 27 40 19 sub %i5, %i1, %i5 <== NOT EXECUTED if (p != NULL) { 40043018: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 4004301c: 02 80 00 13 be 40043068 <== NOT EXECUTED 40043020: 94 10 20 ff mov 0xff, %o2 <== NOT EXECUTED if (symlink[slen - 1] != '/') { 40043024: c2 4d 7e ff ldsb [ %l5 + -257 ], %g1 <== NOT EXECUTED 40043028: 80 a0 60 2f cmp %g1, 0x2f <== NOT EXECUTED 4004302c: 02 80 00 09 be 40043050 <== NOT EXECUTED 40043030: b8 07 20 01 inc %i4 <== NOT EXECUTED if (slen + 1 >= sizeof(symlink)) { 40043034: 80 a7 20 fe cmp %i4, 0xfe <== NOT EXECUTED 40043038: 14 80 00 32 bg 40043100 <== NOT EXECUTED 4004303c: 82 10 20 2f mov 0x2f, %g1 <== NOT EXECUTED symlink[slen] = '/'; 40043040: c2 2d 7f 00 stb %g1, [ %l5 + -256 ] <== NOT EXECUTED symlink[slen + 1] = 0; 40043044: b8 07 80 1c add %fp, %i4, %i4 <== NOT EXECUTED 40043048: c0 2f 3f 00 clrb [ %i4 + -256 ] <== NOT EXECUTED left_len = strlcat(symlink, left, 4004304c: 94 10 20 ff mov 0xff, %o2 <== NOT EXECUTED 40043050: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 40043054: 40 00 85 61 call 400645d8 <== NOT EXECUTED 40043058: 90 07 bf 00 add %fp, -256, %o0 <== NOT EXECUTED if (left_len >= sizeof(left)) { 4004305c: 80 a2 20 fe cmp %o0, 0xfe <== NOT EXECUTED 40043060: 18 80 00 28 bgu 40043100 <== NOT EXECUTED 40043064: 94 10 20 ff mov 0xff, %o2 <== NOT EXECUTED left_len = strlcpy(left, symlink, sizeof(left)); 40043068: 92 07 bf 00 add %fp, -256, %o1 <== NOT EXECUTED 4004306c: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED 40043070: 40 00 85 89 call 40064694 <== NOT EXECUTED 40043074: aa 10 00 1b mov %i3, %l5 <== NOT EXECUTED 40043078: 10 bf ff 7e b 40042e70 <== NOT EXECUTED 4004307c: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED if (m) 40043080: 12 80 00 14 bne 400430d0 <== NOT EXECUTED 40043084: 82 10 20 2e mov 0x2e, %g1 <== NOT EXECUTED resolved[1] = '\0'; 40043088: c0 2e 60 01 clrb [ %i1 + 1 ] <== NOT EXECUTED resolved[0] = '.'; 4004308c: c2 2e 40 00 stb %g1, [ %i1 ] <== NOT EXECUTED 40043090: 81 c7 e0 08 ret <== NOT EXECUTED 40043094: 81 e8 00 00 restore <== NOT EXECUTED left_len = strlcpy(left, path + 1, sizeof(left)); 40043098: 92 07 20 01 add %i4, 1, %o1 <== NOT EXECUTED 4004309c: b4 07 bd 00 add %fp, -768, %i2 <== NOT EXECUTED 400430a0: 94 10 20 ff mov 0xff, %o2 <== NOT EXECUTED 400430a4: 40 00 85 7c call 40064694 <== NOT EXECUTED 400430a8: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED resolved_len = 1; 400430ac: ba 10 20 01 mov 1, %i5 <== NOT EXECUTED left_len = strlcpy(left, path + 1, sizeof(left)); 400430b0: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED 400430b4: 10 bf ff 48 b 40042dd4 <== NOT EXECUTED 400430b8: 84 10 20 00 clr %g2 <== NOT EXECUTED 400430bc: 10 bf ff 46 b 40042dd4 <== NOT EXECUTED 400430c0: 84 10 20 00 clr %g2 <== NOT EXECUTED free(resolved); 400430c4: 7f ff 21 6f call 4000b680 <== NOT EXECUTED 400430c8: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 400430cc: 30 bf ff 9b b,a 40042f38 <== NOT EXECUTED free(resolved); 400430d0: 7f ff 21 6c call 4000b680 <== NOT EXECUTED 400430d4: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 400430d8: 81 c7 e0 08 ret <== NOT EXECUTED 400430dc: 81 e8 00 00 restore <== NOT EXECUTED resolved = malloc(PATH_MAX); 400430e0: 90 10 20 ff mov 0xff, %o0 <== NOT EXECUTED 400430e4: 7f ff 23 2a call 4000bd8c <== NOT EXECUTED 400430e8: a4 10 20 01 mov 1, %l2 <== NOT EXECUTED if (resolved == NULL) 400430ec: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400430f0: 12 bf ff 1c bne 40042d60 <== NOT EXECUTED 400430f4: b2 10 00 08 mov %o0, %i1 <== NOT EXECUTED return (NULL); 400430f8: 81 c7 e0 08 ret <== NOT EXECUTED 400430fc: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED if (m) 40043100: 80 a4 a0 00 cmp %l2, 0 <== NOT EXECUTED 40043104: 02 80 00 04 be 40043114 <== NOT EXECUTED 40043108: 01 00 00 00 nop <== NOT EXECUTED free(resolved); 4004310c: 7f ff 21 5d call 4000b680 <== NOT EXECUTED 40043110: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED errno = ENAMETOOLONG; 40043114: 40 00 66 00 call 4005c914 <__errno> <== NOT EXECUTED 40043118: b0 10 20 00 clr %i0 <== NOT EXECUTED 4004311c: 82 10 20 5b mov 0x5b, %g1 <== NOT EXECUTED 40043120: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED return (NULL); 40043124: 81 c7 e0 08 ret <== NOT EXECUTED 40043128: 81 e8 00 00 restore <== NOT EXECUTED resolved[1] = 0; 4004312c: c0 2e 60 01 clrb [ %i1 + 1 ] <== NOT EXECUTED 40043130: 10 bf ff ba b 40043018 <== NOT EXECUTED 40043134: ba 10 20 01 mov 1, %i5 <== NOT EXECUTED if (resolved_len > 1 && resolved[resolved_len - 1] == '/') 40043138: 80 a7 60 01 cmp %i5, 1 <== NOT EXECUTED 4004313c: 08 bf ff 13 bleu 40042d88 <== NOT EXECUTED 40043140: b0 10 00 19 mov %i1, %i0 <== NOT EXECUTED 40043144: ba 07 7f ff add %i5, -1, %i5 <== NOT EXECUTED 40043148: c2 4e 40 1d ldsb [ %i1 + %i5 ], %g1 <== NOT EXECUTED 4004314c: 80 a0 60 2f cmp %g1, 0x2f <== NOT EXECUTED 40043150: 12 80 00 22 bne 400431d8 <== NOT EXECUTED 40043154: 01 00 00 00 nop <== NOT EXECUTED resolved[resolved_len - 1] = '\0'; 40043158: c0 2e 40 1d clrb [ %i1 + %i5 ] <== NOT EXECUTED 4004315c: 81 c7 e0 08 ret <== NOT EXECUTED 40043160: 81 e8 00 00 restore <== NOT EXECUTED errno = ENOENT; 40043164: 40 00 65 ec call 4005c914 <__errno> <== NOT EXECUTED 40043168: b0 10 20 00 clr %i0 <== NOT EXECUTED 4004316c: 82 10 20 02 mov 2, %g1 <== NOT EXECUTED 40043170: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED return (NULL); 40043174: 81 c7 e0 08 ret <== NOT EXECUTED 40043178: 81 e8 00 00 restore <== NOT EXECUTED if (m) 4004317c: 80 a4 a0 00 cmp %l2, 0 <== NOT EXECUTED 40043180: 02 bf ff de be 400430f8 <== NOT EXECUTED 40043184: 01 00 00 00 nop <== NOT EXECUTED return (NULL); 40043188: b0 10 20 00 clr %i0 ! 0 <== NOT EXECUTED free(resolved); 4004318c: 7f ff 21 3d call 4000b680 <== NOT EXECUTED 40043190: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 40043194: 81 c7 e0 08 ret <== NOT EXECUTED 40043198: 81 e8 00 00 restore <== NOT EXECUTED errno = EINVAL; 4004319c: 40 00 65 de call 4005c914 <__errno> <== NOT EXECUTED 400431a0: b0 10 20 00 clr %i0 <== NOT EXECUTED 400431a4: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 400431a8: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED return (NULL); 400431ac: 81 c7 e0 08 ret <== NOT EXECUTED 400431b0: 81 e8 00 00 restore <== NOT EXECUTED if (m) 400431b4: 80 a4 a0 00 cmp %l2, 0 <== NOT EXECUTED 400431b8: 02 80 00 04 be 400431c8 <== NOT EXECUTED 400431bc: 01 00 00 00 nop <== NOT EXECUTED free(resolved); 400431c0: 7f ff 21 30 call 4000b680 <== NOT EXECUTED 400431c4: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED errno = ELOOP; 400431c8: 40 00 65 d3 call 4005c914 <__errno> <== NOT EXECUTED 400431cc: b0 10 20 00 clr %i0 <== NOT EXECUTED 400431d0: 82 10 20 5c mov 0x5c, %g1 <== NOT EXECUTED 400431d4: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED return (NULL); 400431d8: 81 c7 e0 08 ret <== NOT EXECUTED 400431dc: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 400431e0 : /** * POSIX 1003.1b - 5.2.2 - Remove a Directory */ int rmdir( const char *path ) { 400431e0: 9d e3 be f0 save %sp, -272, %sp <== NOT EXECUTED int eval_flags = RTEMS_FS_REJECT_TERMINAL_DOT; rtems_filesystem_location_info_t parentloc; int parent_eval_flags = RTEMS_FS_PERMS_WRITE | RTEMS_FS_PERMS_EXEC | RTEMS_FS_FOLLOW_LINK; const rtems_filesystem_location_info_t *currentloc = 400431e4: 98 10 20 1b mov 0x1b, %o4 <== NOT EXECUTED 400431e8: 94 10 21 00 mov 0x100, %o2 <== NOT EXECUTED 400431ec: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400431f0: 96 07 bf 50 add %fp, -176, %o3 <== NOT EXECUTED 400431f4: 7f ff 28 1f call 4000d270 <== NOT EXECUTED 400431f8: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED path, eval_flags, &parentloc, parent_eval_flags ); const rtems_filesystem_operations_table *ops = currentloc->mt_entry->ops; 400431fc: c2 02 20 14 ld [ %o0 + 0x14 ], %g1 <== NOT EXECUTED 40043200: f8 00 60 0c ld [ %g1 + 0xc ], %i4 <== NOT EXECUTED 40043204: c2 02 20 10 ld [ %o0 + 0x10 ], %g1 <== NOT EXECUTED st.st_mode = 0; 40043208: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED const rtems_filesystem_location_info_t *currentloc = 4004320c: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED (void) ( *loc->handlers->fstat_h )( loc, &st ); 40043210: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 <== NOT EXECUTED 40043214: 9f c0 40 00 call %g1 <== NOT EXECUTED 40043218: 92 07 bf a0 add %fp, -96, %o1 <== NOT EXECUTED mode_t type = rtems_filesystem_location_type( currentloc ); if ( S_ISDIR( type ) ) { 4004321c: 05 00 00 3c sethi %hi(0xf000), %g2 <== NOT EXECUTED 40043220: c2 07 bf ac ld [ %fp + -84 ], %g1 <== NOT EXECUTED 40043224: 82 08 40 02 and %g1, %g2, %g1 <== NOT EXECUTED 40043228: 05 00 00 10 sethi %hi(0x4000), %g2 <== NOT EXECUTED 4004322c: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 40043230: 12 80 00 15 bne 40043284 <== NOT EXECUTED 40043234: 92 10 20 14 mov 0x14, %o1 <== NOT EXECUTED const rtems_filesystem_mount_table_entry_t *mt_entry = loc->mt_entry; 40043238: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 <== NOT EXECUTED return (*mt_entry->ops->are_nodes_equal_h)( 4004323c: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED 40043240: c4 00 a0 10 ld [ %g2 + 0x10 ], %g2 <== NOT EXECUTED 40043244: d2 00 60 24 ld [ %g1 + 0x24 ], %o1 <== NOT EXECUTED 40043248: 9f c0 80 00 call %g2 <== NOT EXECUTED 4004324c: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if ( !rtems_filesystem_location_is_instance_root( currentloc ) ) { 40043250: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40043254: 12 80 00 11 bne 40043298 <== NOT EXECUTED 40043258: 92 10 20 10 mov 0x10, %o1 <== NOT EXECUTED rv = (*ops->rmnod_h)( &parentloc, currentloc ); 4004325c: c2 07 20 18 ld [ %i4 + 0x18 ], %g1 <== NOT EXECUTED 40043260: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40043264: 9f c0 40 00 call %g1 <== NOT EXECUTED 40043268: 90 07 bf 50 add %fp, -176, %o0 <== NOT EXECUTED 4004326c: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED } else { rtems_filesystem_eval_path_error( &ctx, ENOTDIR ); rv = -1; } rtems_filesystem_eval_path_cleanup_with_parent( &ctx, &parentloc ); 40043270: 92 07 bf 50 add %fp, -176, %o1 <== NOT EXECUTED 40043274: 7f ff 28 4c call 4000d3a4 <== NOT EXECUTED 40043278: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED return rv; } 4004327c: 81 c7 e0 08 ret <== NOT EXECUTED 40043280: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_eval_path_error( &ctx, ENOTDIR ); 40043284: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED 40043288: 7f ff 27 33 call 4000cf54 <== NOT EXECUTED 4004328c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup_with_parent( &ctx, &parentloc ); 40043290: 10 bf ff f9 b 40043274 <== NOT EXECUTED 40043294: 92 07 bf 50 add %fp, -176, %o1 <== NOT EXECUTED rtems_filesystem_eval_path_error( &ctx, EBUSY ); 40043298: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED 4004329c: 7f ff 27 2e call 4000cf54 <== NOT EXECUTED 400432a0: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup_with_parent( &ctx, &parentloc ); 400432a4: 10 bf ff f4 b 40043274 <== NOT EXECUTED 400432a8: 92 07 bf 50 add %fp, -176, %o1 <== NOT EXECUTED =============================================================================== 4001b92c : const rtems_assoc_32_pair *pairs, size_t pair_count, const char *separator, const char *fallback ) { 4001b92c: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED 4001b930: a2 10 00 19 mov %i1, %l1 <== NOT EXECUTED size_t len; size_t i; len = 0; for ( i = 0; i < pair_count ; ++i ) { 4001b934: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED 4001b938: 02 80 00 25 be 4001b9cc <== NOT EXECUTED 4001b93c: f2 07 a0 5c ld [ %fp + 0x5c ], %i1 <== NOT EXECUTED 4001b940: b9 2f 20 03 sll %i4, 3, %i4 <== NOT EXECUTED len = 0; 4001b944: a0 10 20 00 clr %l0 <== NOT EXECUTED 4001b948: b8 06 c0 1c add %i3, %i4, %i4 <== NOT EXECUTED const rtems_assoc_32_pair *p; p = &pairs[ i ]; if ( ( value & p->bits ) != 0 ) { 4001b94c: c2 06 c0 00 ld [ %i3 ], %g1 <== NOT EXECUTED 4001b950: 80 8e 00 01 btst %i0, %g1 <== NOT EXECUTED 4001b954: 22 80 00 16 be,a 4001b9ac <== NOT EXECUTED 4001b958: b6 06 e0 08 add %i3, 8, %i3 <== NOT EXECUTED if ( len > 0 ) { 4001b95c: 80 a4 20 00 cmp %l0, 0 <== NOT EXECUTED 4001b960: 02 80 00 0b be 4001b98c <== NOT EXECUTED 4001b964: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED if ( len < buffer_size ) { 4001b968: 80 a6 80 10 cmp %i2, %l0 <== NOT EXECUTED len += strlcpy( &buffer[ len ], separator, space( buffer_size, len ) ); 4001b96c: 90 04 40 10 add %l1, %l0, %o0 <== NOT EXECUTED if ( len < buffer_size ) { 4001b970: 08 80 00 03 bleu 4001b97c <== NOT EXECUTED 4001b974: 94 10 20 00 clr %o2 <== NOT EXECUTED return buffer_size - len; 4001b978: 94 26 80 10 sub %i2, %l0, %o2 <== NOT EXECUTED len += strlcpy( &buffer[ len ], separator, space( buffer_size, len ) ); 4001b97c: 40 00 10 ef call 4001fd38 <== NOT EXECUTED 4001b980: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 4001b984: a0 04 00 08 add %l0, %o0, %l0 <== NOT EXECUTED 4001b988: 90 04 40 10 add %l1, %l0, %o0 <== NOT EXECUTED } len += strlcpy( &buffer[ len ], p->name, space( buffer_size, len ) ); 4001b98c: d2 06 e0 04 ld [ %i3 + 4 ], %o1 <== NOT EXECUTED if ( len < buffer_size ) { 4001b990: 80 a4 00 1a cmp %l0, %i2 <== NOT EXECUTED 4001b994: 1a 80 00 03 bcc 4001b9a0 <== NOT EXECUTED 4001b998: 94 10 20 00 clr %o2 <== NOT EXECUTED return buffer_size - len; 4001b99c: 94 26 80 10 sub %i2, %l0, %o2 <== NOT EXECUTED len += strlcpy( &buffer[ len ], p->name, space( buffer_size, len ) ); 4001b9a0: 40 00 10 e6 call 4001fd38 <== NOT EXECUTED 4001b9a4: b6 06 e0 08 add %i3, 8, %i3 <== NOT EXECUTED 4001b9a8: a0 04 00 08 add %l0, %o0, %l0 <== NOT EXECUTED for ( i = 0; i < pair_count ; ++i ) { 4001b9ac: 80 a7 00 1b cmp %i4, %i3 <== NOT EXECUTED 4001b9b0: 32 bf ff e8 bne,a 4001b950 <== NOT EXECUTED 4001b9b4: c2 06 c0 00 ld [ %i3 ], %g1 <== NOT EXECUTED } } if ( len == 0 ) { 4001b9b8: 80 a4 20 00 cmp %l0, 0 <== NOT EXECUTED 4001b9bc: 02 80 00 04 be 4001b9cc <== NOT EXECUTED 4001b9c0: b0 10 00 10 mov %l0, %i0 <== NOT EXECUTED len += strlcpy( buffer, fallback, buffer_size ); } return len; } 4001b9c4: 81 c7 e0 08 ret <== NOT EXECUTED 4001b9c8: 81 e8 00 00 restore <== NOT EXECUTED len += strlcpy( buffer, fallback, buffer_size ); 4001b9cc: 40 00 10 db call 4001fd38 <== NOT EXECUTED 4001b9d0: 91 e8 00 11 restore %g0, %l1, %o0 <== NOT EXECUTED =============================================================================== 4000e5b0 : uint32_t rtems_assoc_local_by_remote( const rtems_assoc_t *ap, uint32_t remote_value ) { 4000e5b0: 9d e3 bf a0 save %sp, -96, %sp const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_remote(ap, remote_value); 4000e5b4: 90 10 00 18 mov %i0, %o0 4000e5b8: 92 10 00 19 mov %i1, %o1 4000e5bc: 40 00 00 07 call 4000e5d8 4000e5c0: b0 10 20 00 clr %i0 if (nap) 4000e5c4: 80 a2 20 00 cmp %o0, 0 4000e5c8: 32 80 00 02 bne,a 4000e5d0 <== ALWAYS TAKEN 4000e5cc: f0 02 20 04 ld [ %o0 + 4 ], %i0 return nap->local_value; return 0; } 4000e5d0: 81 c7 e0 08 ret 4000e5d4: 81 e8 00 00 restore =============================================================================== 4000e564 : uint32_t rtems_assoc_local_by_remote_bitfield( const rtems_assoc_t *ap, uint32_t remote_value ) { 4000e564: 9d e3 bf a0 save %sp, -96, %sp 4000e568: b8 10 20 20 mov 0x20, %i4 uint32_t b; uint32_t local_value = 0; 4000e56c: b6 10 20 00 clr %i3 for (b = 1; b; b <<= 1) { 4000e570: 10 80 00 04 b 4000e580 4000e574: ba 10 20 01 mov 1, %i5 4000e578: 02 80 00 0c be 4000e5a8 4000e57c: bb 2f 60 01 sll %i5, 1, %i5 if (b & remote_value) 4000e580: 80 8e 40 1d btst %i1, %i5 4000e584: 22 bf ff fd be,a 4000e578 <== ALWAYS TAKEN 4000e588: b8 87 3f ff addcc %i4, -1, %i4 local_value |= rtems_assoc_local_by_remote(ap, b); 4000e58c: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 4000e590: 40 00 00 08 call 4000e5b0 <== NOT EXECUTED 4000e594: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED for (b = 1; b; b <<= 1) { 4000e598: bb 2f 60 01 sll %i5, 1, %i5 <== NOT EXECUTED 4000e59c: b8 87 3f ff addcc %i4, -1, %i4 <== NOT EXECUTED 4000e5a0: 12 bf ff f8 bne 4000e580 <== NOT EXECUTED 4000e5a4: b6 16 c0 08 or %i3, %o0, %i3 <== NOT EXECUTED } return local_value; } 4000e5a8: 81 c7 e0 08 ret 4000e5ac: 91 e8 00 1b restore %g0, %i3, %o0 =============================================================================== 4001ba20 : sprintf(bad_buffer, "< %" PRId32 "[0x%" PRIx32 " ] >", bad_value, bad_value); #else static char bad_buffer[40] = ""; #endif return bad_buffer; 4001ba20: 11 10 00 cb sethi %hi(0x40032c00), %o0 <== NOT EXECUTED } 4001ba24: 81 c3 e0 08 retl <== NOT EXECUTED 4001ba28: 90 12 23 40 or %o0, 0x340, %o0 ! 40032f40 <== NOT EXECUTED =============================================================================== 40019550 : const char *rtems_assoc_name_by_local( const rtems_assoc_t *ap, uint32_t local_value ) { 40019550: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_local(ap, local_value); 40019554: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40019558: 40 00 00 0a call 40019580 <== NOT EXECUTED 4001955c: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED if (nap) 40019560: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40019564: 02 80 00 05 be 40019578 <== NOT EXECUTED 40019568: 01 00 00 00 nop <== NOT EXECUTED return nap->name; 4001956c: f0 02 00 00 ld [ %o0 ], %i0 <== NOT EXECUTED return rtems_assoc_name_bad(local_value); } 40019570: 81 c7 e0 08 ret <== NOT EXECUTED 40019574: 81 e8 00 00 restore <== NOT EXECUTED return rtems_assoc_name_bad(local_value); 40019578: 40 00 09 2a call 4001ba20 <== NOT EXECUTED 4001957c: 91 e8 00 19 restore %g0, %i1, %o0 <== NOT EXECUTED =============================================================================== 40019580 : const rtems_assoc_t *rtems_assoc_ptr_by_local( const rtems_assoc_t *ap, uint32_t local_value ) { 40019580: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) 40019584: d0 06 00 00 ld [ %i0 ], %o0 <== NOT EXECUTED { 40019588: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED if (rtems_assoc_is_default(ap)) 4001958c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40019590: 02 80 00 16 be 400195e8 <== NOT EXECUTED 40019594: b0 10 20 00 clr %i0 <== NOT EXECUTED 40019598: 13 10 00 c1 sethi %hi(0x40030400), %o1 <== NOT EXECUTED 4001959c: 40 00 17 e8 call 4001f53c <== NOT EXECUTED 400195a0: 92 12 60 08 or %o1, 8, %o1 ! 40030408 <== NOT EXECUTED 400195a4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400195a8: 22 80 00 12 be,a 400195f0 <== NOT EXECUTED 400195ac: c4 07 60 0c ld [ %i5 + 0xc ], %g2 <== NOT EXECUTED default_ap = ap++; for ( ; ap->name; ap++) if (ap->local_value == local_value) 400195b0: c2 07 60 04 ld [ %i5 + 4 ], %g1 <== NOT EXECUTED 400195b4: 80 a6 40 01 cmp %i1, %g1 <== NOT EXECUTED 400195b8: 32 80 00 08 bne,a 400195d8 <== NOT EXECUTED 400195bc: ba 07 60 0c add %i5, 0xc, %i5 <== NOT EXECUTED for ( ; ap->name; ap++) 400195c0: 81 c7 e0 08 ret <== NOT EXECUTED 400195c4: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED if (ap->local_value == local_value) 400195c8: 80 a0 40 19 cmp %g1, %i1 <== NOT EXECUTED 400195cc: 22 80 00 07 be,a 400195e8 <== NOT EXECUTED 400195d0: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED for ( ; ap->name; ap++) 400195d4: ba 07 60 0c add %i5, 0xc, %i5 <== NOT EXECUTED 400195d8: c2 07 40 00 ld [ %i5 ], %g1 <== NOT EXECUTED 400195dc: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 400195e0: 32 bf ff fa bne,a 400195c8 <== NOT EXECUTED 400195e4: c2 07 60 04 ld [ %i5 + 4 ], %g1 <== NOT EXECUTED 400195e8: 81 c7 e0 08 ret <== NOT EXECUTED 400195ec: 81 e8 00 00 restore <== NOT EXECUTED default_ap = ap++; 400195f0: 82 07 60 0c add %i5, 0xc, %g1 <== NOT EXECUTED for ( ; ap->name; ap++) 400195f4: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED 400195f8: 80 a0 a0 00 cmp %g2, 0 <== NOT EXECUTED 400195fc: 12 bf ff ed bne 400195b0 <== NOT EXECUTED 40019600: ba 10 00 01 mov %g1, %i5 <== NOT EXECUTED 40019604: 81 c7 e0 08 ret <== NOT EXECUTED 40019608: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000e5d8 : const rtems_assoc_t *rtems_assoc_ptr_by_remote( const rtems_assoc_t *ap, uint32_t remote_value ) { 4000e5d8: 9d e3 bf a0 save %sp, -96, %sp const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) 4000e5dc: d0 06 00 00 ld [ %i0 ], %o0 { 4000e5e0: ba 10 00 18 mov %i0, %i5 if (rtems_assoc_is_default(ap)) 4000e5e4: 80 a2 20 00 cmp %o0, 0 4000e5e8: 02 80 00 16 be 4000e640 <== NEVER TAKEN 4000e5ec: b0 10 20 00 clr %i0 4000e5f0: 13 10 00 42 sethi %hi(0x40010800), %o1 4000e5f4: 40 00 01 5d call 4000eb68 4000e5f8: 92 12 63 90 or %o1, 0x390, %o1 ! 40010b90 4000e5fc: 80 a2 20 00 cmp %o0, 0 4000e600: 22 80 00 12 be,a 4000e648 <== NEVER TAKEN 4000e604: c4 07 60 0c ld [ %i5 + 0xc ], %g2 <== NOT EXECUTED default_ap = ap++; for ( ; ap->name; ap++) if (ap->remote_value == remote_value) 4000e608: c2 07 60 08 ld [ %i5 + 8 ], %g1 4000e60c: 80 a6 40 01 cmp %i1, %g1 4000e610: 32 80 00 08 bne,a 4000e630 4000e614: ba 07 60 0c add %i5, 0xc, %i5 for ( ; ap->name; ap++) 4000e618: 81 c7 e0 08 ret 4000e61c: 91 e8 00 1d restore %g0, %i5, %o0 if (ap->remote_value == remote_value) 4000e620: 80 a0 40 19 cmp %g1, %i1 4000e624: 22 80 00 07 be,a 4000e640 4000e628: b0 10 00 1d mov %i5, %i0 for ( ; ap->name; ap++) 4000e62c: ba 07 60 0c add %i5, 0xc, %i5 4000e630: c2 07 40 00 ld [ %i5 ], %g1 4000e634: 80 a0 60 00 cmp %g1, 0 4000e638: 32 bf ff fa bne,a 4000e620 <== ALWAYS TAKEN 4000e63c: c2 07 60 08 ld [ %i5 + 8 ], %g1 4000e640: 81 c7 e0 08 ret 4000e644: 81 e8 00 00 restore default_ap = ap++; 4000e648: 82 07 60 0c add %i5, 0xc, %g1 <== NOT EXECUTED for ( ; ap->name; ap++) 4000e64c: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED 4000e650: 80 a0 a0 00 cmp %g2, 0 <== NOT EXECUTED 4000e654: 12 bf ff ed bne 4000e608 <== NOT EXECUTED 4000e658: ba 10 00 01 mov %g1, %i5 <== NOT EXECUTED 4000e65c: 81 c7 e0 08 ret <== NOT EXECUTED 4000e660: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40019698 : size_t rtems_assoc_thread_states_to_string( uint32_t states, char *buffer, size_t buffer_size ) { 40019698: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED return rtems_assoc_32_to_string( 4001969c: 03 10 00 c1 sethi %hi(0x40030400), %g1 <== NOT EXECUTED 400196a0: 82 10 60 18 or %g1, 0x18, %g1 ! 40030418 <== NOT EXECUTED 400196a4: c2 23 a0 5c st %g1, [ %sp + 0x5c ] <== NOT EXECUTED 400196a8: 98 10 20 17 mov 0x17, %o4 <== NOT EXECUTED 400196ac: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 400196b0: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400196b4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400196b8: 1b 10 00 bf sethi %hi(0x4002fc00), %o5 <== NOT EXECUTED 400196bc: 17 10 00 c1 sethi %hi(0x40030400), %o3 <== NOT EXECUTED 400196c0: 9a 13 63 40 or %o5, 0x340, %o5 <== NOT EXECUTED 400196c4: 40 00 08 9a call 4001b92c <== NOT EXECUTED 400196c8: 96 12 e0 d8 or %o3, 0xd8, %o3 <== NOT EXECUTED state_pairs, RTEMS_ARRAY_SIZE( state_pairs ), ":", "READY" ); } 400196cc: 81 c7 e0 08 ret <== NOT EXECUTED 400196d0: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 4000b310 : #include #include void *rtems_cache_aligned_malloc( size_t nbytes ) { 4000b310: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED size_t line_size = rtems_cache_get_maximal_line_size(); 4000b314: 40 01 bc 61 call 4007a498 <== NOT EXECUTED 4000b318: 01 00 00 00 nop <== NOT EXECUTED if ( line_size > 0 ) { 4000b31c: b2 92 20 00 orcc %o0, 0, %i1 <== NOT EXECUTED 4000b320: 02 80 00 05 be 4000b334 <== NOT EXECUTED 4000b324: 82 06 3f ff add %i0, -1, %g1 <== NOT EXECUTED /* Assume that the cache line size is a power of two */ size_t m = line_size - 1; nbytes = (nbytes + m) & ~m; 4000b328: b0 20 00 19 neg %i1, %i0 <== NOT EXECUTED 4000b32c: 82 00 40 19 add %g1, %i1, %g1 <== NOT EXECUTED 4000b330: b0 0e 00 01 and %i0, %g1, %i0 <== NOT EXECUTED } return rtems_heap_allocate_aligned_with_boundary( nbytes, line_size, 0 ); 4000b334: 40 00 02 25 call 4000bbc8 <== NOT EXECUTED 4000b338: 95 e8 20 00 restore %g0, 0, %o2 <== NOT EXECUTED =============================================================================== 400052b0 : { 400052b0: 9d e3 bf a0 save %sp, -96, %sp void *ptr = pthread_getspecific(rtems_current_user_env_key); 400052b4: 03 10 00 4d sethi %hi(0x40013400), %g1 400052b8: 40 00 03 fb call 400062a4 400052bc: d0 00 60 cc ld [ %g1 + 0xcc ], %o0 ! 400134cc if (ptr == NULL) { 400052c0: b0 92 20 00 orcc %o0, 0, %i0 400052c4: 22 80 00 04 be,a 400052d4 <== ALWAYS TAKEN 400052c8: 31 10 00 47 sethi %hi(0x40011c00), %i0 } 400052cc: 81 c7 e0 08 ret <== NOT EXECUTED 400052d0: 81 e8 00 00 restore <== NOT EXECUTED 400052d4: 81 c7 e0 08 ret 400052d8: 91 ee 22 28 restore %i0, 0x228, %o0 =============================================================================== 400436f0 : #include #include void rtems_current_user_env_getgroups(void) { 400436f0: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_user_env_t *uenv = rtems_current_user_env_get(); 400436f4: 7f ff 23 d6 call 4000c64c <== NOT EXECUTED 400436f8: 01 00 00 00 nop <== NOT EXECUTED 400436fc: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED int ngroups = (int) RTEMS_ARRAY_SIZE( uenv->groups ); ngroups = getgroups( ngroups, &uenv->groups[ 0 ] ); 40043700: 90 10 20 10 mov 0x10, %o0 <== NOT EXECUTED 40043704: 40 00 54 0e call 4005873c <== NOT EXECUTED 40043708: 92 07 60 28 add %i5, 0x28, %o1 <== NOT EXECUTED if ( ngroups > 0 ) { 4004370c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40043710: 24 80 00 03 ble,a 4004371c <== NOT EXECUTED 40043714: c0 27 60 24 clr [ %i5 + 0x24 ] <== NOT EXECUTED uenv->ngroups = (size_t) ngroups; 40043718: d0 27 60 24 st %o0, [ %i5 + 0x24 ] <== NOT EXECUTED 4004371c: 81 c7 e0 08 ret <== NOT EXECUTED 40043720: 81 e8 00 00 restore <== NOT EXECUTED } else { uenv->ngroups = 0; } } 40043724: 81 c7 e0 08 ret <== NOT EXECUTED 40043728: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000d720 : int rtems_deviceio_close( rtems_libio_t *iop, rtems_device_major_number major, rtems_device_minor_number minor ) { 4000d720: 9d e3 bf 90 save %sp, -112, %sp <== NOT EXECUTED args.iop = iop; args.flags = 0; args.mode = 0; status = rtems_io_close( major, minor, &args ); 4000d724: 94 07 bf f4 add %fp, -12, %o2 <== NOT EXECUTED 4000d728: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED args.iop = iop; 4000d72c: f0 27 bf f4 st %i0, [ %fp + -12 ] <== NOT EXECUTED status = rtems_io_close( major, minor, &args ); 4000d730: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED args.flags = 0; 4000d734: c0 27 bf f8 clr [ %fp + -8 ] <== NOT EXECUTED status = rtems_io_close( major, minor, &args ); 4000d738: 40 00 00 ae call 4000d9f0 <== NOT EXECUTED 4000d73c: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED return rtems_status_code_to_errno( status ); 4000d740: 40 00 00 96 call 4000d998 <== NOT EXECUTED 4000d744: 01 00 00 00 nop <== NOT EXECUTED } 4000d748: 81 c7 e0 08 ret <== NOT EXECUTED 4000d74c: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 4000d830 : ioctl_command_t command, void *buffer, rtems_device_major_number major, rtems_device_minor_number minor ) { 4000d830: 9d e3 bf 90 save %sp, -112, %sp <== NOT EXECUTED rtems_status_code status; rtems_libio_ioctl_args_t args; args.iop = iop; 4000d834: f0 27 bf f0 st %i0, [ %fp + -16 ] <== NOT EXECUTED args.command = command; args.buffer = buffer; status = rtems_io_control( major, minor, &args ); 4000d838: 94 07 bf f0 add %fp, -16, %o2 <== NOT EXECUTED args.command = command; 4000d83c: f2 27 bf f4 st %i1, [ %fp + -12 ] <== NOT EXECUTED status = rtems_io_control( major, minor, &args ); 4000d840: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED args.buffer = buffer; 4000d844: f4 27 bf f8 st %i2, [ %fp + -8 ] <== NOT EXECUTED status = rtems_io_control( major, minor, &args ); 4000d848: 40 00 00 82 call 4000da50 <== NOT EXECUTED 4000d84c: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED if ( status == RTEMS_SUCCESSFUL ) { 4000d850: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000d854: 12 80 00 05 bne 4000d868 <== NOT EXECUTED 4000d858: 01 00 00 00 nop <== NOT EXECUTED return args.ioctl_return; 4000d85c: f0 07 bf fc ld [ %fp + -4 ], %i0 <== NOT EXECUTED 4000d860: 81 c7 e0 08 ret <== NOT EXECUTED 4000d864: 81 e8 00 00 restore <== NOT EXECUTED } else { return rtems_status_code_to_errno(status); 4000d868: 40 00 00 4c call 4000d998 <== NOT EXECUTED 4000d86c: 01 00 00 00 nop <== NOT EXECUTED } } 4000d870: 81 c7 e0 08 ret <== NOT EXECUTED 4000d874: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 4000d6ec : int oflag, mode_t mode, rtems_device_major_number major, rtems_device_minor_number minor ) { 4000d6ec: 9d e3 bf 90 save %sp, -112, %sp <== NOT EXECUTED rtems_status_code status; rtems_libio_open_close_args_t args; args.iop = iop; args.flags = iop->flags; 4000d6f0: c2 06 20 08 ld [ %i0 + 8 ], %g1 <== NOT EXECUTED args.mode = mode; status = rtems_io_open( major, minor, &args ); 4000d6f4: 94 07 bf f4 add %fp, -12, %o2 <== NOT EXECUTED 4000d6f8: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED args.iop = iop; 4000d6fc: f0 27 bf f4 st %i0, [ %fp + -12 ] <== NOT EXECUTED status = rtems_io_open( major, minor, &args ); 4000d700: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED args.flags = iop->flags; 4000d704: c2 27 bf f8 st %g1, [ %fp + -8 ] <== NOT EXECUTED status = rtems_io_open( major, minor, &args ); 4000d708: 40 00 01 01 call 4000db0c <== NOT EXECUTED 4000d70c: f6 27 bf fc st %i3, [ %fp + -4 ] <== NOT EXECUTED return rtems_status_code_to_errno( status ); 4000d710: 40 00 00 a2 call 4000d998 <== NOT EXECUTED 4000d714: 01 00 00 00 nop <== NOT EXECUTED } 4000d718: 81 c7 e0 08 ret <== NOT EXECUTED 4000d71c: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 4000d750 : void *buf, size_t nbyte, rtems_device_major_number major, rtems_device_minor_number minor ) { 4000d750: 9d e3 bf 80 save %sp, -128, %sp <== NOT EXECUTED rtems_status_code status; rtems_libio_rw_args_t args; args.iop = iop; args.offset = iop->offset; 4000d754: c4 1e 00 00 ldd [ %i0 ], %g2 <== NOT EXECUTED args.buffer = buf; args.count = nbyte; args.flags = iop->flags; 4000d758: c2 06 20 08 ld [ %i0 + 8 ], %g1 <== NOT EXECUTED args.iop = iop; 4000d75c: f0 27 bf e0 st %i0, [ %fp + -32 ] <== NOT EXECUTED args.bytes_moved = 0; status = rtems_io_read( major, minor, &args ); 4000d760: 94 07 bf e0 add %fp, -32, %o2 <== NOT EXECUTED args.offset = iop->offset; 4000d764: c4 3f bf e8 std %g2, [ %fp + -24 ] <== NOT EXECUTED status = rtems_io_read( major, minor, &args ); 4000d768: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED args.buffer = buf; 4000d76c: f2 27 bf f0 st %i1, [ %fp + -16 ] <== NOT EXECUTED status = rtems_io_read( major, minor, &args ); 4000d770: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED args.count = nbyte; 4000d774: f4 27 bf f4 st %i2, [ %fp + -12 ] <== NOT EXECUTED { 4000d778: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED args.flags = iop->flags; 4000d77c: c2 27 bf f8 st %g1, [ %fp + -8 ] <== NOT EXECUTED status = rtems_io_read( major, minor, &args ); 4000d780: 40 00 00 fb call 4000db6c <== NOT EXECUTED 4000d784: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED if ( status == RTEMS_SUCCESSFUL ) { 4000d788: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000d78c: 12 80 00 09 bne 4000d7b0 <== NOT EXECUTED 4000d790: 01 00 00 00 nop <== NOT EXECUTED iop->offset += args.bytes_moved; 4000d794: f4 1f 40 00 ldd [ %i5 ], %i2 <== NOT EXECUTED 4000d798: f0 07 bf fc ld [ %fp + -4 ], %i0 <== NOT EXECUTED 4000d79c: 86 86 c0 18 addcc %i3, %i0, %g3 <== NOT EXECUTED 4000d7a0: 84 46 a0 00 addx %i2, 0, %g2 <== NOT EXECUTED 4000d7a4: c4 3f 40 00 std %g2, [ %i5 ] <== NOT EXECUTED return (ssize_t) args.bytes_moved; 4000d7a8: 81 c7 e0 08 ret <== NOT EXECUTED 4000d7ac: 81 e8 00 00 restore <== NOT EXECUTED } else { return rtems_status_code_to_errno( status ); 4000d7b0: 40 00 00 7a call 4000d998 <== NOT EXECUTED 4000d7b4: 01 00 00 00 nop <== NOT EXECUTED } } 4000d7b8: 81 c7 e0 08 ret <== NOT EXECUTED 4000d7bc: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 4000d7c0 : const void *buf, size_t nbyte, rtems_device_major_number major, rtems_device_minor_number minor ) { 4000d7c0: 9d e3 bf 80 save %sp, -128, %sp <== NOT EXECUTED rtems_status_code status; rtems_libio_rw_args_t args; args.iop = iop; args.offset = iop->offset; 4000d7c4: c4 1e 00 00 ldd [ %i0 ], %g2 <== NOT EXECUTED args.buffer = RTEMS_DECONST( void *, buf ); args.count = nbyte; args.flags = iop->flags; 4000d7c8: c2 06 20 08 ld [ %i0 + 8 ], %g1 <== NOT EXECUTED args.iop = iop; 4000d7cc: f0 27 bf e0 st %i0, [ %fp + -32 ] <== NOT EXECUTED args.bytes_moved = 0; status = rtems_io_write( major, minor, &args ); 4000d7d0: 94 07 bf e0 add %fp, -32, %o2 <== NOT EXECUTED args.offset = iop->offset; 4000d7d4: c4 3f bf e8 std %g2, [ %fp + -24 ] <== NOT EXECUTED status = rtems_io_write( major, minor, &args ); 4000d7d8: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED args.buffer = RTEMS_DECONST( void *, buf ); 4000d7dc: f2 27 bf f0 st %i1, [ %fp + -16 ] <== NOT EXECUTED status = rtems_io_write( major, minor, &args ); 4000d7e0: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED args.count = nbyte; 4000d7e4: f4 27 bf f4 st %i2, [ %fp + -12 ] <== NOT EXECUTED { 4000d7e8: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED args.flags = iop->flags; 4000d7ec: c2 27 bf f8 st %g1, [ %fp + -8 ] <== NOT EXECUTED status = rtems_io_write( major, minor, &args ); 4000d7f0: 40 00 00 f7 call 4000dbcc <== NOT EXECUTED 4000d7f4: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED if ( status == RTEMS_SUCCESSFUL ) { 4000d7f8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000d7fc: 12 80 00 09 bne 4000d820 <== NOT EXECUTED 4000d800: 01 00 00 00 nop <== NOT EXECUTED iop->offset += args.bytes_moved; 4000d804: f4 1f 40 00 ldd [ %i5 ], %i2 <== NOT EXECUTED 4000d808: f0 07 bf fc ld [ %fp + -4 ], %i0 <== NOT EXECUTED 4000d80c: 86 86 c0 18 addcc %i3, %i0, %g3 <== NOT EXECUTED 4000d810: 84 46 a0 00 addx %i2, 0, %g2 <== NOT EXECUTED 4000d814: c4 3f 40 00 std %g2, [ %i5 ] <== NOT EXECUTED return (ssize_t) args.bytes_moved; 4000d818: 81 c7 e0 08 ret <== NOT EXECUTED 4000d81c: 81 e8 00 00 restore <== NOT EXECUTED } else { return rtems_status_code_to_errno( status ); 4000d820: 40 00 00 5e call 4000d998 <== NOT EXECUTED 4000d824: 01 00 00 00 nop <== NOT EXECUTED } } 4000d828: 81 c7 e0 08 ret <== NOT EXECUTED 4000d82c: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 400198e0 : int rtems_error( rtems_error_code_t error_flag, const char *printf_format, ... ) { 400198e0: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED va_list arglist; int chars_written; va_start(arglist, printf_format); 400198e4: 82 07 a0 4c add %fp, 0x4c, %g1 <== NOT EXECUTED 400198e8: f4 27 a0 4c st %i2, [ %fp + 0x4c ] <== NOT EXECUTED chars_written = rtems_verror(error_flag, printf_format, arglist); 400198ec: 94 10 00 01 mov %g1, %o2 <== NOT EXECUTED va_start(arglist, printf_format); 400198f0: c2 27 bf fc st %g1, [ %fp + -4 ] <== NOT EXECUTED chars_written = rtems_verror(error_flag, printf_format, arglist); 400198f4: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED va_start(arglist, printf_format); 400198f8: f6 27 a0 50 st %i3, [ %fp + 0x50 ] <== NOT EXECUTED chars_written = rtems_verror(error_flag, printf_format, arglist); 400198fc: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED va_start(arglist, printf_format); 40019900: f8 27 a0 54 st %i4, [ %fp + 0x54 ] <== NOT EXECUTED chars_written = rtems_verror(error_flag, printf_format, arglist); 40019904: 7f ff ff 87 call 40019720 <== NOT EXECUTED 40019908: fa 27 a0 58 st %i5, [ %fp + 0x58 ] <== NOT EXECUTED va_end(arglist); if (error_flag & RTEMS_ERROR_PANIC) { 4001990c: 03 08 00 00 sethi %hi(0x20000000), %g1 <== NOT EXECUTED 40019910: 80 8e 00 01 btst %i0, %g1 <== NOT EXECUTED 40019914: 12 80 00 07 bne 40019930 <== NOT EXECUTED 40019918: 03 04 00 00 sethi %hi(0x10000000), %g1 <== NOT EXECUTED rtems_error(0, "fatal error, exiting"); _exit(errno); } if (error_flag & RTEMS_ERROR_ABORT) { 4001991c: 80 8e 00 01 btst %i0, %g1 <== NOT EXECUTED 40019920: 12 80 00 0c bne 40019950 <== NOT EXECUTED 40019924: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED rtems_error(0, "fatal error, aborting"); abort(); } return chars_written; } 40019928: 81 c7 e0 08 ret <== NOT EXECUTED 4001992c: 81 e8 00 00 restore <== NOT EXECUTED rtems_error(0, "fatal error, exiting"); 40019930: 13 10 00 c1 sethi %hi(0x40030400), %o1 <== NOT EXECUTED 40019934: 92 12 61 c8 or %o1, 0x1c8, %o1 ! 400305c8 <== NOT EXECUTED 40019938: 7f ff ff ea call 400198e0 <== NOT EXECUTED 4001993c: 90 10 20 00 clr %o0 <== NOT EXECUTED _exit(errno); 40019940: 40 00 08 f0 call 4001bd00 <__errno> <== NOT EXECUTED 40019944: 01 00 00 00 nop <== NOT EXECUTED 40019948: 40 00 00 dd call 40019cbc <_exit> <== NOT EXECUTED 4001994c: d0 02 00 00 ld [ %o0 ], %o0 <== NOT EXECUTED rtems_error(0, "fatal error, aborting"); 40019950: 13 10 00 c1 sethi %hi(0x40030400), %o1 <== NOT EXECUTED 40019954: 92 12 61 e0 or %o1, 0x1e0, %o1 ! 400305e0 <== NOT EXECUTED 40019958: 7f ff ff e2 call 400198e0 <== NOT EXECUTED 4001995c: 90 10 20 00 clr %o0 <== NOT EXECUTED abort(); 40019960: 40 00 08 db call 4001bccc <== NOT EXECUTED 40019964: 01 00 00 00 nop <== NOT EXECUTED 40019968: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 400417bc : #include #include int rtems_filesystem_chdir( rtems_filesystem_location_info_t *loc ) { 400417bc: 9d e3 bf 40 save %sp, -192, %sp <== NOT EXECUTED int rv = 0; rtems_filesystem_global_location_t *global_loc = 400417c0: 7f ff 30 64 call 4000d950 <== NOT EXECUTED 400417c4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED st.st_mode = 0; 400417c8: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED 400417cc: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED (void) ( *loc->handlers->fstat_h )( loc, &st ); 400417d0: c2 02 20 10 ld [ %o0 + 0x10 ], %g1 <== NOT EXECUTED 400417d4: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 <== NOT EXECUTED 400417d8: 9f c0 40 00 call %g1 <== NOT EXECUTED 400417dc: 92 07 bf a0 add %fp, -96, %o1 <== NOT EXECUTED rtems_filesystem_location_transform_to_global( loc ); mode_t type = rtems_filesystem_location_type( &global_loc->location ); if ( S_ISDIR( type ) ) { 400417e0: 05 00 00 3c sethi %hi(0xf000), %g2 <== NOT EXECUTED 400417e4: c2 07 bf ac ld [ %fp + -84 ], %g1 <== NOT EXECUTED 400417e8: 82 08 40 02 and %g1, %g2, %g1 <== NOT EXECUTED 400417ec: 05 00 00 10 sethi %hi(0x4000), %g2 <== NOT EXECUTED 400417f0: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 400417f4: 32 80 00 08 bne,a 40041814 <== NOT EXECUTED 400417f8: c4 07 60 10 ld [ %i5 + 0x10 ], %g2 <== NOT EXECUTED rtems_filesystem_global_location_assign( &rtems_filesystem_current, 400417fc: 7f ff 2b 94 call 4000c64c <== NOT EXECUTED 40041800: b0 10 20 00 clr %i0 <== NOT EXECUTED rtems_filesystem_global_location_assign( 40041804: 7f ff 2f fd call 4000d7f8 <== NOT EXECUTED 40041808: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 4004180c: 81 c7 e0 08 ret <== NOT EXECUTED 40041810: 81 e8 00 00 restore <== NOT EXECUTED if ( !rtems_filesystem_location_is_null( loc ) ) { 40041814: 03 10 01 f4 sethi %hi(0x4007d000), %g1 <== NOT EXECUTED 40041818: 82 10 62 58 or %g1, 0x258, %g1 ! 4007d258 <== NOT EXECUTED 4004181c: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 40041820: 02 80 00 07 be 4004183c <== NOT EXECUTED 40041824: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED errno = eno; 40041828: 40 00 6c 3b call 4005c914 <__errno> <== NOT EXECUTED 4004182c: 01 00 00 00 nop <== NOT EXECUTED 40041830: 82 10 20 14 mov 0x14, %g1 ! 14 <_TLS_Alignment+0x13> <== NOT EXECUTED 40041834: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED global_loc ); } else { rtems_filesystem_location_error( &global_loc->location, ENOTDIR ); rtems_filesystem_global_location_release( global_loc, true ); 40041838: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 4004183c: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40041840: 7f ff 2f d4 call 4000d790 <== NOT EXECUTED 40041844: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED rv = -1; } return rv; } 40041848: 81 c7 e0 08 ret <== NOT EXECUTED 4004184c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000533c : int flags, mode_t object_mode, uid_t object_uid, gid_t object_gid ) { 4000533c: 9d e3 bf a0 save %sp, -96, %sp const rtems_user_env_t *uenv = rtems_current_user_env_get(); 40005340: 7f ff ff dc call 400052b0 40005344: b0 0e 20 07 and %i0, 7, %i0 mode_t access_flags = flags & RTEMS_FS_PERMS_RWX; uid_t task_uid = uenv->euid; if (task_uid == 0 || task_uid == object_uid) { 40005348: c2 12 20 10 lduh [ %o0 + 0x10 ], %g1 4000534c: 80 a0 60 00 cmp %g1, 0 40005350: 02 80 00 24 be 400053e0 <== ALWAYS TAKEN 40005354: 80 a0 40 1a cmp %g1, %i2 40005358: 22 80 00 23 be,a 400053e4 <== NOT EXECUTED 4000535c: b1 2e 20 06 sll %i0, 6, %i0 <== NOT EXECUTED access_flags <<= RTEMS_FS_USR_SHIFT; } else { gid_t task_gid = uenv->egid; if ( task_gid == 0 40005360: c2 12 20 12 lduh [ %o0 + 0x12 ], %g1 <== NOT EXECUTED if ( 40005364: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40005368: 02 80 00 18 be 400053c8 <== NOT EXECUTED 4000536c: 80 a0 40 1b cmp %g1, %i3 <== NOT EXECUTED 40005370: 22 80 00 17 be,a 400053cc <== NOT EXECUTED 40005374: b1 2e 20 03 sll %i0, 3, %i0 <== NOT EXECUTED for (i = 0; i < uenv->ngroups; ++i) { 40005378: c6 02 20 24 ld [ %o0 + 0x24 ], %g3 <== NOT EXECUTED 4000537c: 80 a0 e0 00 cmp %g3, 0 <== NOT EXECUTED 40005380: 22 80 00 14 be,a 400053d0 <== NOT EXECUTED 40005384: b0 2e 00 19 andn %i0, %i1, %i0 <== NOT EXECUTED if (uenv->groups[i] == object_gid) { 40005388: c2 12 20 28 lduh [ %o0 + 0x28 ], %g1 <== NOT EXECUTED 4000538c: 80 a0 40 1b cmp %g1, %i3 <== NOT EXECUTED 40005390: 02 80 00 0e be 400053c8 <== NOT EXECUTED 40005394: 90 02 20 2a add %o0, 0x2a, %o0 <== NOT EXECUTED for (i = 0; i < uenv->ngroups; ++i) { 40005398: 10 80 00 06 b 400053b0 <== NOT EXECUTED 4000539c: 82 10 20 00 clr %g1 <== NOT EXECUTED if (uenv->groups[i] == object_gid) { 400053a0: c4 12 3f fe lduh [ %o0 + -2 ], %g2 <== NOT EXECUTED 400053a4: 80 a0 80 1b cmp %g2, %i3 <== NOT EXECUTED 400053a8: 22 80 00 09 be,a 400053cc <== NOT EXECUTED 400053ac: b1 2e 20 03 sll %i0, 3, %i0 <== NOT EXECUTED for (i = 0; i < uenv->ngroups; ++i) { 400053b0: 82 00 60 01 inc %g1 <== NOT EXECUTED 400053b4: 80 a0 40 03 cmp %g1, %g3 <== NOT EXECUTED 400053b8: 12 bf ff fa bne 400053a0 <== NOT EXECUTED 400053bc: 90 02 20 02 add %o0, 2, %o0 <== NOT EXECUTED } else { access_flags <<= RTEMS_FS_OTH_SHIFT; } } return (access_flags & object_mode) == access_flags; 400053c0: 10 80 00 04 b 400053d0 <== NOT EXECUTED 400053c4: b0 2e 00 19 andn %i0, %i1, %i0 <== NOT EXECUTED access_flags <<= RTEMS_FS_GRP_SHIFT; 400053c8: b1 2e 20 03 sll %i0, 3, %i0 <== NOT EXECUTED return (access_flags & object_mode) == access_flags; 400053cc: b0 2e 00 19 andn %i0, %i1, %i0 <== NOT EXECUTED } 400053d0: 80 a0 00 18 cmp %g0, %i0 <== NOT EXECUTED 400053d4: b0 60 3f ff subx %g0, -1, %i0 <== NOT EXECUTED 400053d8: 81 c7 e0 08 ret <== NOT EXECUTED 400053dc: 81 e8 00 00 restore <== NOT EXECUTED access_flags <<= RTEMS_FS_USR_SHIFT; 400053e0: b1 2e 20 06 sll %i0, 6, %i0 return (access_flags & object_mode) == access_flags; 400053e4: b0 2e 00 19 andn %i0, %i1, %i0 } 400053e8: 80 a0 00 18 cmp %g0, %i0 400053ec: b0 60 3f ff subx %g0, -1, %i0 400053f0: 81 c7 e0 08 ret 400053f4: 81 e8 00 00 restore =============================================================================== 4000b454 : int rtems_filesystem_chmod( const rtems_filesystem_location_info_t *loc, mode_t mode ) { 4000b454: 9d e3 bf 40 save %sp, -192, %sp <== NOT EXECUTED const rtems_filesystem_mount_table_entry_t *mt_entry = loc->mt_entry; 4000b458: f8 06 20 14 ld [ %i0 + 0x14 ], %i4 <== NOT EXECUTED int rv; if ( mt_entry->writeable || rtems_filesystem_location_is_null( loc ) ) { 4000b45c: c2 0f 20 29 ldub [ %i4 + 0x29 ], %g1 <== NOT EXECUTED { 4000b460: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED if ( mt_entry->writeable || rtems_filesystem_location_is_null( loc ) ) { 4000b464: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000b468: 12 80 00 07 bne 4000b484 <== NOT EXECUTED 4000b46c: c4 06 20 10 ld [ %i0 + 0x10 ], %g2 <== NOT EXECUTED 4000b470: 03 10 01 f4 sethi %hi(0x4007d000), %g1 <== NOT EXECUTED 4000b474: 82 10 62 58 or %g1, 0x258, %g1 ! 4007d258 <== NOT EXECUTED 4000b478: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 4000b47c: 12 80 00 3d bne 4000b570 <== NOT EXECUTED 4000b480: 01 00 00 00 nop <== NOT EXECUTED struct stat st; memset( &st, 0, sizeof(st) ); 4000b484: c0 27 bf a0 clr [ %fp + -96 ] <== NOT EXECUTED rv = (*loc->handlers->fstat_h)( loc, &st ); 4000b488: 92 07 bf a0 add %fp, -96, %o1 <== NOT EXECUTED memset( &st, 0, sizeof(st) ); 4000b48c: c0 27 bf a4 clr [ %fp + -92 ] <== NOT EXECUTED 4000b490: c0 27 bf a8 clr [ %fp + -88 ] <== NOT EXECUTED 4000b494: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED 4000b498: c0 27 bf b0 clr [ %fp + -80 ] <== NOT EXECUTED 4000b49c: c0 27 bf b4 clr [ %fp + -76 ] <== NOT EXECUTED 4000b4a0: c0 27 bf b8 clr [ %fp + -72 ] <== NOT EXECUTED 4000b4a4: c0 27 bf bc clr [ %fp + -68 ] <== NOT EXECUTED 4000b4a8: c0 27 bf c0 clr [ %fp + -64 ] <== NOT EXECUTED 4000b4ac: c0 27 bf c4 clr [ %fp + -60 ] <== NOT EXECUTED 4000b4b0: c0 27 bf c8 clr [ %fp + -56 ] <== NOT EXECUTED 4000b4b4: c0 27 bf cc clr [ %fp + -52 ] <== NOT EXECUTED 4000b4b8: c0 27 bf d0 clr [ %fp + -48 ] <== NOT EXECUTED 4000b4bc: c0 27 bf d4 clr [ %fp + -44 ] <== NOT EXECUTED 4000b4c0: c0 27 bf d8 clr [ %fp + -40 ] <== NOT EXECUTED 4000b4c4: c0 27 bf dc clr [ %fp + -36 ] <== NOT EXECUTED 4000b4c8: c0 27 bf e0 clr [ %fp + -32 ] <== NOT EXECUTED 4000b4cc: c0 27 bf e4 clr [ %fp + -28 ] <== NOT EXECUTED 4000b4d0: c0 27 bf e8 clr [ %fp + -24 ] <== NOT EXECUTED 4000b4d4: c0 27 bf ec clr [ %fp + -20 ] <== NOT EXECUTED 4000b4d8: c0 27 bf f0 clr [ %fp + -16 ] <== NOT EXECUTED 4000b4dc: c0 27 bf f4 clr [ %fp + -12 ] <== NOT EXECUTED 4000b4e0: c0 27 bf f8 clr [ %fp + -8 ] <== NOT EXECUTED 4000b4e4: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED rv = (*loc->handlers->fstat_h)( loc, &st ); 4000b4e8: c2 00 a0 18 ld [ %g2 + 0x18 ], %g1 <== NOT EXECUTED 4000b4ec: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000b4f0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if ( rv == 0 ) { 4000b4f4: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 4000b4f8: 02 80 00 04 be 4000b508 <== NOT EXECUTED 4000b4fc: 01 00 00 00 nop <== NOT EXECUTED errno = EROFS; rv = -1; } return rv; } 4000b500: 81 c7 e0 08 ret <== NOT EXECUTED 4000b504: 81 e8 00 00 restore <== NOT EXECUTED uid_t uid = geteuid(); 4000b508: 40 00 00 b9 call 4000b7ec <== NOT EXECUTED 4000b50c: 01 00 00 00 nop <== NOT EXECUTED if ( uid == 0 || st.st_uid == uid ) { 4000b510: 91 2a 20 10 sll %o0, 0x10, %o0 <== NOT EXECUTED 4000b514: 91 32 20 10 srl %o0, 0x10, %o0 <== NOT EXECUTED 4000b518: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000b51c: 12 80 00 0c bne 4000b54c <== NOT EXECUTED 4000b520: c2 17 bf b2 lduh [ %fp + -78 ], %g1 <== NOT EXECUTED rv = (*mt_entry->ops->fchmod_h)( loc, mode ); 4000b524: c2 07 20 0c ld [ %i4 + 0xc ], %g1 <== NOT EXECUTED mode = (st.st_mode & ~mask) | (mode & mask); 4000b528: d2 07 bf ac ld [ %fp + -84 ], %o1 <== NOT EXECUTED rv = (*mt_entry->ops->fchmod_h)( loc, mode ); 4000b52c: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 <== NOT EXECUTED mode = (st.st_mode & ~mask) | (mode & mask); 4000b530: b2 0e 6f ff and %i1, 0xfff, %i1 <== NOT EXECUTED rv = (*mt_entry->ops->fchmod_h)( loc, mode ); 4000b534: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED mode = (st.st_mode & ~mask) | (mode & mask); 4000b538: 92 0a 70 00 and %o1, -4096, %o1 <== NOT EXECUTED rv = (*mt_entry->ops->fchmod_h)( loc, mode ); 4000b53c: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000b540: 92 12 40 19 or %o1, %i1, %o1 <== NOT EXECUTED if ( uid == 0 || st.st_uid == uid ) { 4000b544: 81 c7 e0 08 ret <== NOT EXECUTED 4000b548: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED 4000b54c: 80 a0 40 08 cmp %g1, %o0 <== NOT EXECUTED 4000b550: 22 bf ff f6 be,a 4000b528 <== NOT EXECUTED 4000b554: c2 07 20 0c ld [ %i4 + 0xc ], %g1 <== NOT EXECUTED errno = EPERM; 4000b558: 40 01 44 ef call 4005c914 <__errno> <== NOT EXECUTED 4000b55c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000b560: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED 4000b564: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED if ( mt_entry->writeable || rtems_filesystem_location_is_null( loc ) ) { 4000b568: 81 c7 e0 08 ret <== NOT EXECUTED 4000b56c: 81 e8 00 00 restore <== NOT EXECUTED errno = EROFS; 4000b570: 40 01 44 e9 call 4005c914 <__errno> <== NOT EXECUTED 4000b574: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000b578: 82 10 20 1e mov 0x1e, %g1 <== NOT EXECUTED 4000b57c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } 4000b580: 81 c7 e0 08 ret <== NOT EXECUTED 4000b584: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40041cac : int rtems_filesystem_chown( const rtems_filesystem_location_info_t *loc, uid_t owner, gid_t group ) { 40041cac: 9d e3 bf 40 save %sp, -192, %sp <== NOT EXECUTED const rtems_filesystem_mount_table_entry_t *mt_entry = loc->mt_entry; 40041cb0: f8 06 20 14 ld [ %i0 + 0x14 ], %i4 <== NOT EXECUTED int rv; if ( mt_entry->writeable || rtems_filesystem_location_is_null( loc ) ) { 40041cb4: c2 0f 20 29 ldub [ %i4 + 0x29 ], %g1 <== NOT EXECUTED { 40041cb8: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED if ( mt_entry->writeable || rtems_filesystem_location_is_null( loc ) ) { 40041cbc: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40041cc0: 12 80 00 07 bne 40041cdc <== NOT EXECUTED 40041cc4: c4 06 20 10 ld [ %i0 + 0x10 ], %g2 <== NOT EXECUTED 40041cc8: 03 10 01 f4 sethi %hi(0x4007d000), %g1 <== NOT EXECUTED 40041ccc: 82 10 62 58 or %g1, 0x258, %g1 ! 4007d258 <== NOT EXECUTED 40041cd0: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 40041cd4: 12 80 00 3b bne 40041dc0 <== NOT EXECUTED 40041cd8: 01 00 00 00 nop <== NOT EXECUTED struct stat st; memset( &st, 0, sizeof(st) ); 40041cdc: c0 27 bf a0 clr [ %fp + -96 ] <== NOT EXECUTED rv = (*loc->handlers->fstat_h)( loc, &st ); 40041ce0: 92 07 bf a0 add %fp, -96, %o1 <== NOT EXECUTED memset( &st, 0, sizeof(st) ); 40041ce4: c0 27 bf a4 clr [ %fp + -92 ] <== NOT EXECUTED 40041ce8: c0 27 bf a8 clr [ %fp + -88 ] <== NOT EXECUTED 40041cec: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED 40041cf0: c0 27 bf b0 clr [ %fp + -80 ] <== NOT EXECUTED 40041cf4: c0 27 bf b4 clr [ %fp + -76 ] <== NOT EXECUTED 40041cf8: c0 27 bf b8 clr [ %fp + -72 ] <== NOT EXECUTED 40041cfc: c0 27 bf bc clr [ %fp + -68 ] <== NOT EXECUTED 40041d00: c0 27 bf c0 clr [ %fp + -64 ] <== NOT EXECUTED 40041d04: c0 27 bf c4 clr [ %fp + -60 ] <== NOT EXECUTED 40041d08: c0 27 bf c8 clr [ %fp + -56 ] <== NOT EXECUTED 40041d0c: c0 27 bf cc clr [ %fp + -52 ] <== NOT EXECUTED 40041d10: c0 27 bf d0 clr [ %fp + -48 ] <== NOT EXECUTED 40041d14: c0 27 bf d4 clr [ %fp + -44 ] <== NOT EXECUTED 40041d18: c0 27 bf d8 clr [ %fp + -40 ] <== NOT EXECUTED 40041d1c: c0 27 bf dc clr [ %fp + -36 ] <== NOT EXECUTED 40041d20: c0 27 bf e0 clr [ %fp + -32 ] <== NOT EXECUTED 40041d24: c0 27 bf e4 clr [ %fp + -28 ] <== NOT EXECUTED 40041d28: c0 27 bf e8 clr [ %fp + -24 ] <== NOT EXECUTED 40041d2c: c0 27 bf ec clr [ %fp + -20 ] <== NOT EXECUTED 40041d30: c0 27 bf f0 clr [ %fp + -16 ] <== NOT EXECUTED 40041d34: c0 27 bf f4 clr [ %fp + -12 ] <== NOT EXECUTED 40041d38: c0 27 bf f8 clr [ %fp + -8 ] <== NOT EXECUTED 40041d3c: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED rv = (*loc->handlers->fstat_h)( loc, &st ); 40041d40: c2 00 a0 18 ld [ %g2 + 0x18 ], %g1 <== NOT EXECUTED 40041d44: 9f c0 40 00 call %g1 <== NOT EXECUTED 40041d48: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if ( rv == 0 ) { 40041d4c: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 40041d50: 02 80 00 04 be 40041d60 <== NOT EXECUTED 40041d54: 01 00 00 00 nop <== NOT EXECUTED errno = EROFS; rv = -1; } return rv; } 40041d58: 81 c7 e0 08 ret <== NOT EXECUTED 40041d5c: 81 e8 00 00 restore <== NOT EXECUTED uid_t uid = geteuid(); 40041d60: 7f ff 26 a3 call 4000b7ec <== NOT EXECUTED 40041d64: 01 00 00 00 nop <== NOT EXECUTED if ( uid == 0 || st.st_uid == uid ) { 40041d68: 91 2a 20 10 sll %o0, 0x10, %o0 <== NOT EXECUTED 40041d6c: 91 32 20 10 srl %o0, 0x10, %o0 <== NOT EXECUTED 40041d70: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40041d74: 12 80 00 0a bne 40041d9c <== NOT EXECUTED 40041d78: c2 17 bf b2 lduh [ %fp + -78 ], %g1 <== NOT EXECUTED rv = (*mt_entry->ops->chown_h)( loc, owner, group ); 40041d7c: c2 07 20 0c ld [ %i4 + 0xc ], %g1 <== NOT EXECUTED 40041d80: c2 00 60 20 ld [ %g1 + 0x20 ], %g1 <== NOT EXECUTED 40041d84: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 40041d88: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 40041d8c: 9f c0 40 00 call %g1 <== NOT EXECUTED 40041d90: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40041d94: 81 c7 e0 08 ret <== NOT EXECUTED 40041d98: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED if ( uid == 0 || st.st_uid == uid ) { 40041d9c: 80 a0 40 08 cmp %g1, %o0 <== NOT EXECUTED 40041da0: 22 bf ff f8 be,a 40041d80 <== NOT EXECUTED 40041da4: c2 07 20 0c ld [ %i4 + 0xc ], %g1 <== NOT EXECUTED errno = EPERM; 40041da8: 40 00 6a db call 4005c914 <__errno> <== NOT EXECUTED 40041dac: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40041db0: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED 40041db4: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED if ( mt_entry->writeable || rtems_filesystem_location_is_null( loc ) ) { 40041db8: 81 c7 e0 08 ret <== NOT EXECUTED 40041dbc: 81 e8 00 00 restore <== NOT EXECUTED errno = EROFS; 40041dc0: 40 00 6a d5 call 4005c914 <__errno> <== NOT EXECUTED 40041dc4: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40041dc8: 82 10 20 1e mov 0x1e, %g1 <== NOT EXECUTED 40041dcc: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } 40041dd0: 81 c7 e0 08 ret <== NOT EXECUTED 40041dd4: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 400103d0 : 400103d0: 00 00 00 05 00 00 00 80 00 00 00 07 00 00 00 ff ................ 400103e0: 00 00 00 ff 00 00 04 00 00 00 00 00 00 00 00 00 ................ 400103f0: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40010400: 2e 00 00 00 00 00 00 00 2e 2e 00 00 ............ =============================================================================== 40005ba0 : } void rtems_filesystem_do_unmount( rtems_filesystem_mount_table_entry_t *mt_entry ) { 40005ba0: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_libio_lock(); 40005ba4: 7f ff fb 29 call 40004848 <== NOT EXECUTED 40005ba8: 01 00 00 00 nop <== NOT EXECUTED next = the_node->next; 40005bac: c4 06 00 00 ld [ %i0 ], %g2 <== NOT EXECUTED previous = the_node->previous; 40005bb0: c2 06 20 04 ld [ %i0 + 4 ], %g1 <== NOT EXECUTED next->previous = previous; 40005bb4: c2 20 a0 04 st %g1, [ %g2 + 4 ] <== NOT EXECUTED rtems_libio_unlock(); 40005bb8: 7f ff fb 29 call 4000485c <== NOT EXECUTED 40005bbc: c4 20 40 00 st %g2, [ %g1 ] <== NOT EXECUTED release_with_count(global_loc, 1); 40005bc0: d0 06 20 20 ld [ %i0 + 0x20 ], %o0 <== NOT EXECUTED 40005bc4: 40 00 00 14 call 40005c14 <== NOT EXECUTED 40005bc8: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED rtems_filesystem_mt_lock(); rtems_chain_extract_unprotected(&mt_entry->mt_node); rtems_filesystem_mt_unlock(); rtems_filesystem_global_location_release(mt_entry->mt_point_node, false); (*mt_entry->ops->fsunmount_me_h)(mt_entry); 40005bcc: c2 06 20 0c ld [ %i0 + 0xc ], %g1 <== NOT EXECUTED 40005bd0: c2 00 60 34 ld [ %g1 + 0x34 ], %g1 <== NOT EXECUTED 40005bd4: 9f c0 40 00 call %g1 <== NOT EXECUTED 40005bd8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED if (mt_entry->unmount_task != 0) { 40005bdc: d0 06 20 3c ld [ %i0 + 0x3c ], %o0 <== NOT EXECUTED 40005be0: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40005be4: 02 80 00 07 be 40005c00 <== NOT EXECUTED 40005be8: 01 00 00 00 nop <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE rtems_status_code rtems_event_transient_send( rtems_id id ) { return rtems_event_system_send( id, RTEMS_EVENT_SYSTEM_TRANSIENT ); 40005bec: 40 00 02 35 call 400064c0 <== NOT EXECUTED 40005bf0: 13 20 00 00 sethi %hi(0x80000000), %o1 <== NOT EXECUTED rtems_status_code sc = rtems_event_transient_send(mt_entry->unmount_task); if (sc != RTEMS_SUCCESSFUL) { 40005bf4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40005bf8: 32 80 00 04 bne,a 40005c08 <== NOT EXECUTED 40005bfc: 11 37 ab 6f sethi %hi(0xdeadbc00), %o0 <== NOT EXECUTED rtems_fatal_error_occurred(0xdeadbeef); } } free(mt_entry); 40005c00: 7f ff fa 9e call 40004678 <== NOT EXECUTED 40005c04: 81 e8 00 00 restore <== NOT EXECUTED rtems_fatal_error_occurred(0xdeadbeef); 40005c08: 40 00 03 53 call 40006954 <== NOT EXECUTED 40005c0c: 90 12 22 ef or %o0, 0x2ef, %o0 <== NOT EXECUTED 40005c10: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 400053f8 : int eval_flags, mode_t node_mode, uid_t node_uid, gid_t node_gid ) { 400053f8: 9d e3 bf a0 save %sp, -96, %sp bool access_ok = rtems_filesystem_check_access( 400053fc: 96 10 00 1c mov %i4, %o3 40005400: 94 10 00 1b mov %i3, %o2 40005404: 92 10 00 1a mov %i2, %o1 40005408: 7f ff ff cd call 4000533c 4000540c: 90 10 00 19 mov %i1, %o0 node_mode, node_uid, node_gid ); if (!access_ok) { 40005410: ba 92 20 00 orcc %o0, 0, %i5 40005414: 12 80 00 04 bne 40005424 <== ALWAYS TAKEN 40005418: 92 10 20 0d mov 0xd, %o1 rtems_filesystem_eval_path_error(ctx, EACCES); 4000541c: 40 00 00 98 call 4000567c <== NOT EXECUTED 40005420: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED } return access_ok; } 40005424: 81 c7 e0 08 ret 40005428: 91 e8 00 1d restore %g0, %i5, %o0 =============================================================================== 4000d3a4 : void rtems_filesystem_eval_path_cleanup_with_parent( rtems_filesystem_eval_path_context_t *ctx, rtems_filesystem_location_info_t *parentloc ) { 4000d3a4: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED free_location(parentloc); 4000d3a8: 7f ff fe dc call 4000cf18 <== NOT EXECUTED 4000d3ac: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup(ctx); 4000d3b0: 7f ff ff ee call 4000d368 <== NOT EXECUTED 4000d3b4: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000579c : { 4000579c: 9d e3 bf a0 save %sp, -96, %sp while (ctx->pathlen > 0) { 400057a0: c2 06 20 04 ld [ %i0 + 4 ], %g1 400057a4: 80 a0 60 00 cmp %g1, 0 400057a8: 22 80 00 0c be,a 400057d8 <== NEVER TAKEN 400057ac: c2 06 20 0c ld [ %i0 + 0xc ], %g1 <== NOT EXECUTED (*ctx->currentloc.mt_entry->ops->eval_path_h)(ctx); 400057b0: c2 06 20 2c ld [ %i0 + 0x2c ], %g1 400057b4: c2 00 60 0c ld [ %g1 + 0xc ], %g1 400057b8: c2 00 60 08 ld [ %g1 + 8 ], %g1 400057bc: 9f c0 40 00 call %g1 400057c0: 90 10 00 18 mov %i0, %o0 while (ctx->pathlen > 0) { 400057c4: c2 06 20 04 ld [ %i0 + 4 ], %g1 400057c8: 80 a0 60 00 cmp %g1, 0 400057cc: 32 bf ff fa bne,a 400057b4 <== NEVER TAKEN 400057d0: c2 06 20 2c ld [ %i0 + 0x2c ], %g1 <== NOT EXECUTED if (rtems_filesystem_eval_path_has_token(ctx)) { 400057d4: c2 06 20 0c ld [ %i0 + 0xc ], %g1 400057d8: 80 a0 60 00 cmp %g1, 0 400057dc: 02 80 00 07 be 400057f8 400057e0: f2 06 20 10 ld [ %i0 + 0x10 ], %i1 if (make) { 400057e4: 80 8e 60 20 btst 0x20, %i1 400057e8: 02 80 00 08 be 40005808 <== NEVER TAKEN 400057ec: b2 10 20 02 mov 2, %i1 check_access(ctx, ctx->flags); 400057f0: 7f ff ff b9 call 400056d4 400057f4: 81 e8 00 00 restore if (!exclusive) { 400057f8: 80 8e 60 40 btst 0x40, %i1 400057fc: 02 bf ff fd be 400057f0 <== ALWAYS TAKEN 40005800: 01 00 00 00 nop rtems_filesystem_eval_path_error(ctx, EEXIST); 40005804: b2 10 20 11 mov 0x11, %i1 ! 11 <_TLS_Alignment+0x10> <== NOT EXECUTED 40005808: 7f ff ff 9d call 4000567c <== NOT EXECUTED 4000580c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40006018 : void rtems_filesystem_eval_path_eat_delimiter( rtems_filesystem_eval_path_context_t *ctx ) { const char *current = ctx->path; 40006018: c2 02 00 00 ld [ %o0 ], %g1 <== NOT EXECUTED const char *end = current + ctx->pathlen; 4000601c: c4 02 20 04 ld [ %o0 + 4 ], %g2 <== NOT EXECUTED 40006020: 86 00 40 02 add %g1, %g2, %g3 <== NOT EXECUTED while (current != end && rtems_filesystem_is_delimiter(*current)) { 40006024: 80 a0 40 03 cmp %g1, %g3 <== NOT EXECUTED 40006028: 22 80 00 17 be,a 40006084 <== NOT EXECUTED 4000602c: 84 10 20 00 clr %g2 <== NOT EXECUTED return c == '/' || c == '\\'; 40006030: c8 48 40 00 ldsb [ %g1 ], %g4 <== NOT EXECUTED 40006034: 80 a1 20 2f cmp %g4, 0x2f <== NOT EXECUTED 40006038: 02 80 00 04 be 40006048 <== NOT EXECUTED 4000603c: 80 a1 20 5c cmp %g4, 0x5c <== NOT EXECUTED 40006040: 32 80 00 11 bne,a 40006084 <== NOT EXECUTED 40006044: 86 10 00 01 mov %g1, %g3 <== NOT EXECUTED ++current; 40006048: 82 00 60 01 inc %g1 <== NOT EXECUTED while (current != end && rtems_filesystem_is_delimiter(*current)) { 4000604c: 80 a0 c0 01 cmp %g3, %g1 <== NOT EXECUTED 40006050: 02 80 00 0d be 40006084 <== NOT EXECUTED 40006054: 84 10 20 00 clr %g2 <== NOT EXECUTED 40006058: c4 48 40 00 ldsb [ %g1 ], %g2 <== NOT EXECUTED 4000605c: 80 a0 a0 2f cmp %g2, 0x2f <== NOT EXECUTED 40006060: 02 bf ff fa be 40006048 <== NOT EXECUTED 40006064: 80 a0 a0 5c cmp %g2, 0x5c <== NOT EXECUTED 40006068: 22 bf ff f9 be,a 4000604c <== NOT EXECUTED 4000606c: 82 00 60 01 inc %g1 <== NOT EXECUTED 40006070: 84 20 c0 01 sub %g3, %g1, %g2 <== NOT EXECUTED ++current; 40006074: 86 10 00 01 mov %g1, %g3 <== NOT EXECUTED } ctx->path = current; ctx->pathlen = (size_t) (end - current); 40006078: c4 22 20 04 st %g2, [ %o0 + 4 ] <== NOT EXECUTED } 4000607c: 81 c3 e0 08 retl <== NOT EXECUTED 40006080: c6 22 00 00 st %g3, [ %o0 ] <== NOT EXECUTED ctx->path = current; 40006084: c6 22 00 00 st %g3, [ %o0 ] <== NOT EXECUTED } 40006088: 81 c3 e0 08 retl <== NOT EXECUTED 4000608c: c4 22 20 04 st %g2, [ %o0 + 4 ] <== NOT EXECUTED =============================================================================== 4000567c : { 4000567c: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED ctx->path = NULL; 40005680: c0 26 00 00 clr [ %i0 ] <== NOT EXECUTED if (!rtems_filesystem_location_is_null(&ctx->currentloc)) { 40005684: 03 10 00 41 sethi %hi(0x40010400), %g1 <== NOT EXECUTED ctx->pathlen = 0; 40005688: c0 26 20 04 clr [ %i0 + 4 ] <== NOT EXECUTED if (!rtems_filesystem_location_is_null(&ctx->currentloc)) { 4000568c: 82 10 60 58 or %g1, 0x58, %g1 <== NOT EXECUTED ctx->token = NULL; 40005690: c0 26 20 08 clr [ %i0 + 8 ] <== NOT EXECUTED ctx->tokenlen = 0; 40005694: c0 26 20 0c clr [ %i0 + 0xc ] <== NOT EXECUTED if (!rtems_filesystem_location_is_null(&ctx->currentloc)) { 40005698: c4 06 20 28 ld [ %i0 + 0x28 ], %g2 <== NOT EXECUTED 4000569c: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 400056a0: 02 80 00 0b be 400056cc <== NOT EXECUTED 400056a4: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED if (eno != 0) { 400056a8: 12 80 00 04 bne 400056b8 <== NOT EXECUTED 400056ac: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_location_detach(&ctx->currentloc); 400056b0: 40 00 01 23 call 40005b3c <== NOT EXECUTED 400056b4: 91 ee 20 18 restore %i0, 0x18, %o0 <== NOT EXECUTED errno = eno; 400056b8: 40 00 24 28 call 4000e758 <__errno> <== NOT EXECUTED 400056bc: b0 06 20 18 add %i0, 0x18, %i0 <== NOT EXECUTED 400056c0: f2 22 00 00 st %i1, [ %o0 ] <== NOT EXECUTED rtems_filesystem_location_detach(&ctx->currentloc); 400056c4: 40 00 01 1e call 40005b3c <== NOT EXECUTED 400056c8: 81 e8 00 00 restore <== NOT EXECUTED } 400056cc: 81 c7 e0 08 ret <== NOT EXECUTED 400056d0: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000542c : void rtems_filesystem_eval_path_generic( rtems_filesystem_eval_path_context_t *ctx, void *arg, const rtems_filesystem_eval_path_generic_config *config ) { 4000542c: 9d e3 bf a0 save %sp, -96, %sp } else { /* This is the root file system */ status = (*config->eval_token)(ctx, arg, ".", 1); } } else { status = (*config->eval_token)(ctx, arg, "..", 2); 40005430: 21 10 00 41 sethi %hi(0x40010400), %l0 { 40005434: ba 10 00 18 mov %i0, %i5 return &ctx->currentloc; 40005438: a2 06 20 18 add %i0, 0x18, %l1 status = (*config->eval_token)(ctx, arg, "..", 2); 4000543c: a0 14 20 08 or %l0, 8, %l0 status = (*config->eval_token)(ctx, arg, ".", 1); 40005440: 31 10 00 41 sethi %hi(0x40010400), %i0 40005444: b0 16 20 00 mov %i0, %i0 ! 40010400 rtems_filesystem_eval_path_next_token(ctx); 40005448: 40 00 03 12 call 40006090 4000544c: 90 10 00 1d mov %i5, %o0 *tokenlen = ctx->tokenlen; 40005450: f8 07 60 0c ld [ %i5 + 0xc ], %i4 if (tokenlen > 0) { 40005454: 80 a7 20 00 cmp %i4, 0 40005458: 02 80 00 19 be 400054bc <== NEVER TAKEN 4000545c: f6 07 60 08 ld [ %i5 + 8 ], %i3 if ((*config->is_directory)(ctx, arg)) { 40005460: c2 06 80 00 ld [ %i2 ], %g1 40005464: 92 10 00 19 mov %i1, %o1 40005468: 9f c0 40 00 call %g1 4000546c: 90 10 00 1d mov %i5, %o0 40005470: 80 a2 20 00 cmp %o0, 0 40005474: 02 80 00 60 be 400055f4 <== NEVER TAKEN 40005478: 80 a7 20 01 cmp %i4, 1 return tokenlen == 1 && token [0] == '.'; 4000547c: 02 80 00 12 be 400054c4 <== NEVER TAKEN 40005480: 80 a7 20 02 cmp %i4, 2 return tokenlen == 2 && token [0] == '.' && token [1] == '.'; 40005484: 22 80 00 33 be,a 40005550 <== NEVER TAKEN 40005488: c2 4e c0 00 ldsb [ %i3 ], %g1 <== NOT EXECUTED } } else { status = (*config->eval_token)(ctx, arg, token, tokenlen); 4000548c: c2 06 a0 04 ld [ %i2 + 4 ], %g1 40005490: 96 10 00 1c mov %i4, %o3 40005494: 94 10 00 1b mov %i3, %o2 40005498: 92 10 00 19 mov %i1, %o1 4000549c: 9f c0 40 00 call %g1 400054a0: 90 10 00 1d mov %i5, %o0 } if (status == RTEMS_FILESYSTEM_EVAL_PATH_GENERIC_NO_ENTRY) { 400054a4: 80 a2 20 02 cmp %o0, 2 400054a8: 22 80 00 19 be,a 4000550c 400054ac: c2 07 60 04 ld [ %i5 + 4 ], %g1 while (status == RTEMS_FILESYSTEM_EVAL_PATH_GENERIC_CONTINUE) { 400054b0: 80 a2 20 00 cmp %o0, 0 400054b4: 02 bf ff e5 be 40005448 400054b8: 01 00 00 00 nop 400054bc: 81 c7 e0 08 ret 400054c0: 81 e8 00 00 restore return tokenlen == 1 && token [0] == '.'; 400054c4: c2 4e c0 00 ldsb [ %i3 ], %g1 <== NOT EXECUTED 400054c8: 80 a0 60 2e cmp %g1, 0x2e <== NOT EXECUTED 400054cc: 32 bf ff f1 bne,a 40005490 <== NOT EXECUTED 400054d0: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED if (rtems_filesystem_eval_path_has_path(ctx)) { 400054d4: c2 07 60 04 ld [ %i5 + 4 ], %g1 <== NOT EXECUTED 400054d8: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 400054dc: 22 80 00 40 be,a 400055dc <== NOT EXECUTED 400054e0: c2 07 60 10 ld [ %i5 + 0x10 ], %g1 <== NOT EXECUTED status = (*config->eval_token)(ctx, arg, ".", 1); 400054e4: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED 400054e8: 96 10 20 01 mov 1, %o3 <== NOT EXECUTED 400054ec: 94 10 00 18 mov %i0, %o2 <== NOT EXECUTED 400054f0: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400054f4: 9f c0 40 00 call %g1 <== NOT EXECUTED 400054f8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if (status == RTEMS_FILESYSTEM_EVAL_PATH_GENERIC_NO_ENTRY) { 400054fc: 80 a2 20 02 cmp %o0, 2 <== NOT EXECUTED 40005500: 12 bf ff ed bne 400054b4 <== NOT EXECUTED 40005504: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED if (rtems_filesystem_eval_path_has_path(ctx)) { 40005508: c2 07 60 04 ld [ %i5 + 4 ], %g1 <== NOT EXECUTED 4000550c: 80 a0 60 00 cmp %g1, 0 40005510: 12 80 00 04 bne 40005520 <== NEVER TAKEN 40005514: 01 00 00 00 nop } } else { status = RTEMS_FILESYSTEM_EVAL_PATH_GENERIC_DONE; } } } 40005518: 81 c7 e0 08 ret 4000551c: 81 e8 00 00 restore rtems_filesystem_eval_path_eat_delimiter(ctx); 40005520: 40 00 02 be call 40006018 <== NOT EXECUTED 40005524: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED (eval_flags & RTEMS_FS_ACCEPT_RESIDUAL_DELIMITERS) == 0 40005528: c2 07 60 10 ld [ %i5 + 0x10 ], %g1 <== NOT EXECUTED if ( 4000552c: 80 88 60 80 btst 0x80, %g1 <== NOT EXECUTED 40005530: 02 80 00 06 be 40005548 <== NOT EXECUTED 40005534: b2 10 20 02 mov 2, %i1 <== NOT EXECUTED || rtems_filesystem_eval_path_has_path(ctx) 40005538: c2 07 60 04 ld [ %i5 + 4 ], %g1 <== NOT EXECUTED 4000553c: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40005540: 02 bf ff f6 be 40005518 <== NOT EXECUTED 40005544: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_eval_path_error(ctx, ENOENT); 40005548: 40 00 00 4d call 4000567c <== NOT EXECUTED 4000554c: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED return tokenlen == 2 && token [0] == '.' && token [1] == '.'; 40005550: 80 a0 60 2e cmp %g1, 0x2e <== NOT EXECUTED 40005554: 32 bf ff cf bne,a 40005490 <== NOT EXECUTED 40005558: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED 4000555c: c2 4e e0 01 ldsb [ %i3 + 1 ], %g1 <== NOT EXECUTED 40005560: 80 a0 60 2e cmp %g1, 0x2e <== NOT EXECUTED 40005564: 32 bf ff cb bne,a 40005490 <== NOT EXECUTED 40005568: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED const rtems_filesystem_mount_table_entry_t *mt_entry = loc->mt_entry; 4000556c: c2 07 60 2c ld [ %i5 + 0x2c ], %g1 <== NOT EXECUTED 40005570: d2 07 60 30 ld [ %i5 + 0x30 ], %o1 <== NOT EXECUTED 40005574: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED && (*mt_entry->ops->are_nodes_equal_h)( loc, rootloc ); 40005578: c6 02 60 14 ld [ %o1 + 0x14 ], %g3 <== NOT EXECUTED 4000557c: 80 a0 40 03 cmp %g1, %g3 <== NOT EXECUTED 40005580: 12 80 00 0a bne 400055a8 <== NOT EXECUTED 40005584: c4 00 a0 10 ld [ %g2 + 0x10 ], %g2 <== NOT EXECUTED 40005588: 9f c0 80 00 call %g2 <== NOT EXECUTED 4000558c: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED 40005590: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40005594: 32 bf ff d5 bne,a 400054e8 <== NOT EXECUTED 40005598: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED 4000559c: c2 07 60 2c ld [ %i5 + 0x2c ], %g1 <== NOT EXECUTED 400055a0: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED 400055a4: c4 00 a0 10 ld [ %g2 + 0x10 ], %g2 <== NOT EXECUTED return (*mt_entry->ops->are_nodes_equal_h)( loc, mt_fs_root ); 400055a8: d2 00 60 24 ld [ %g1 + 0x24 ], %o1 <== NOT EXECUTED 400055ac: 9f c0 80 00 call %g2 <== NOT EXECUTED 400055b0: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED } else if (is_fs_root(currentloc)) { 400055b4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400055b8: 12 80 00 12 bne 40005600 <== NOT EXECUTED 400055bc: 96 10 20 02 mov 2, %o3 <== NOT EXECUTED status = (*config->eval_token)(ctx, arg, "..", 2); 400055c0: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED 400055c4: 94 10 00 10 mov %l0, %o2 <== NOT EXECUTED 400055c8: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400055cc: 9f c0 40 00 call %g1 <== NOT EXECUTED 400055d0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if (status == RTEMS_FILESYSTEM_EVAL_PATH_GENERIC_NO_ENTRY) { 400055d4: 10 bf ff b5 b 400054a8 <== NOT EXECUTED 400055d8: 80 a2 20 02 cmp %o0, 2 <== NOT EXECUTED if ((eval_flags & RTEMS_FS_REJECT_TERMINAL_DOT) == 0) { 400055dc: 80 88 61 00 btst 0x100, %g1 <== NOT EXECUTED 400055e0: 22 bf ff c2 be,a 400054e8 <== NOT EXECUTED 400055e4: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED rtems_filesystem_eval_path_error(ctx, EINVAL); 400055e8: b2 10 20 16 mov 0x16, %i1 <== NOT EXECUTED 400055ec: 40 00 00 24 call 4000567c <== NOT EXECUTED 400055f0: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_error(ctx, ENOTDIR); 400055f4: b2 10 20 14 mov 0x14, %i1 <== NOT EXECUTED 400055f8: 40 00 00 21 call 4000567c <== NOT EXECUTED 400055fc: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED if (currentloc->mt_entry->mt_point_node != NULL) { 40005600: c2 07 60 2c ld [ %i5 + 0x2c ], %g1 <== NOT EXECUTED 40005604: c4 00 60 20 ld [ %g1 + 0x20 ], %g2 <== NOT EXECUTED 40005608: 80 a0 a0 00 cmp %g2, 0 <== NOT EXECUTED 4000560c: 22 bf ff b7 be,a 400054e8 <== NOT EXECUTED 40005610: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED size_t tokenlen = ctx->tokenlen; 40005614: c8 07 60 0c ld [ %i5 + 0xc ], %g4 <== NOT EXECUTED ctx->path -= tokenlen; 40005618: c6 07 40 00 ld [ %i5 ], %g3 <== NOT EXECUTED ctx->pathlen += tokenlen; 4000561c: c4 07 60 04 ld [ %i5 + 4 ], %g2 <== NOT EXECUTED ctx->path -= tokenlen; 40005620: 86 20 c0 04 sub %g3, %g4, %g3 <== NOT EXECUTED ctx->pathlen += tokenlen; 40005624: 84 00 80 04 add %g2, %g4, %g2 <== NOT EXECUTED ctx->path -= tokenlen; 40005628: c6 27 40 00 st %g3, [ %i5 ] <== NOT EXECUTED rtems_filesystem_eval_path_restart( 4000562c: b2 00 60 20 add %g1, 0x20, %i1 <== NOT EXECUTED ctx->pathlen += tokenlen; 40005630: c4 27 60 04 st %g2, [ %i5 + 4 ] <== NOT EXECUTED ctx->tokenlen = 0; 40005634: c0 27 60 0c clr [ %i5 + 0xc ] <== NOT EXECUTED 40005638: 40 00 00 e7 call 400059d4 <== NOT EXECUTED 4000563c: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED =============================================================================== 40006090 : const char *current = ctx->path; 40006090: c2 02 00 00 ld [ %o0 ], %g1 const char *end = current + ctx->pathlen; 40006094: c6 02 20 04 ld [ %o0 + 4 ], %g3 40006098: 86 00 40 03 add %g1, %g3, %g3 while (current != end && rtems_filesystem_is_delimiter(*current)) { 4000609c: 80 a0 40 03 cmp %g1, %g3 400060a0: 32 80 00 09 bne,a 400060c4 <== ALWAYS TAKEN 400060a4: c4 48 40 00 ldsb [ %g1 ], %g2 400060a8: 10 80 00 20 b 40006128 <== NOT EXECUTED 400060ac: 9a 10 20 00 clr %o5 <== NOT EXECUTED ++current; 400060b0: 82 00 60 01 inc %g1 while (current != end && rtems_filesystem_is_delimiter(*current)) { 400060b4: 80 a0 c0 01 cmp %g3, %g1 400060b8: 22 80 00 22 be,a 40006140 <== NEVER TAKEN 400060bc: 82 10 00 03 mov %g3, %g1 <== NOT EXECUTED 400060c0: c4 48 40 00 ldsb [ %g1 ], %g2 400060c4: 80 a0 a0 2f cmp %g2, 0x2f 400060c8: 02 bf ff fa be 400060b0 400060cc: 80 a0 a0 5c cmp %g2, 0x5c 400060d0: 22 bf ff f9 be,a 400060b4 <== NEVER TAKEN 400060d4: 82 00 60 01 inc %g1 <== NOT EXECUTED ctx->path = current; 400060d8: c2 22 00 00 st %g1, [ %o0 ] ctx->pathlen = (size_t) (end - current); 400060dc: 9a 20 c0 01 sub %g3, %g1, %o5 400060e0: da 22 20 04 st %o5, [ %o0 + 4 ] 400060e4: c4 48 40 00 ldsb [ %g1 ], %g2 { const char *begin = ctx->path; const char *end = begin + ctx->pathlen; const char *current = begin; while (current != end && !rtems_filesystem_is_delimiter(*current)) { 400060e8: 80 a0 a0 5c cmp %g2, 0x5c 400060ec: 02 80 00 1f be 40006168 <== NEVER TAKEN 400060f0: 80 a0 a0 2f cmp %g2, 0x2f 400060f4: 02 80 00 1e be 4000616c <== NEVER TAKEN 400060f8: 88 10 00 0d mov %o5, %g4 400060fc: 10 80 00 07 b 40006118 40006100: 84 10 00 01 mov %g1, %g2 40006104: 80 a1 20 2f cmp %g4, 0x2f 40006108: 02 80 00 10 be 40006148 4000610c: 80 a1 20 5c cmp %g4, 0x5c 40006110: 02 80 00 0f be 4000614c <== NEVER TAKEN 40006114: 88 20 c0 02 sub %g3, %g2, %g4 ++current; 40006118: 84 00 a0 01 inc %g2 while (current != end && !rtems_filesystem_is_delimiter(*current)) { 4000611c: 80 a0 80 03 cmp %g2, %g3 40006120: 32 bf ff f9 bne,a 40006104 40006124: c8 48 80 00 ldsb [ %g2 ], %g4 while (current != end && rtems_filesystem_is_delimiter(*current)) { 40006128: 88 10 20 00 clr %g4 } ctx->path = current; 4000612c: c6 22 00 00 st %g3, [ %o0 ] ctx->pathlen = (size_t) (end - current); 40006130: c8 22 20 04 st %g4, [ %o0 + 4 ] ctx->token = begin; 40006134: c2 22 20 08 st %g1, [ %o0 + 8 ] rtems_filesystem_eval_path_context_t *ctx ) { rtems_filesystem_eval_path_eat_delimiter(ctx); next_token(ctx); } 40006138: 81 c3 e0 08 retl 4000613c: da 22 20 0c st %o5, [ %o0 + 0xc ] while (current != end && rtems_filesystem_is_delimiter(*current)) { 40006140: 10 bf ff fa b 40006128 <== NOT EXECUTED 40006144: 9a 10 20 00 clr %o5 <== NOT EXECUTED 40006148: 88 20 c0 02 sub %g3, %g2, %g4 4000614c: 9a 20 80 01 sub %g2, %g1, %o5 ++current; 40006150: 86 10 00 02 mov %g2, %g3 ctx->pathlen = (size_t) (end - current); 40006154: c8 22 20 04 st %g4, [ %o0 + 4 ] ctx->path = current; 40006158: c6 22 00 00 st %g3, [ %o0 ] ctx->token = begin; 4000615c: c2 22 20 08 st %g1, [ %o0 + 8 ] } 40006160: 81 c3 e0 08 retl 40006164: da 22 20 0c st %o5, [ %o0 + 0xc ] while (current != end && !rtems_filesystem_is_delimiter(*current)) { 40006168: 88 10 00 0d mov %o5, %g4 <== NOT EXECUTED 4000616c: 86 10 00 01 mov %g1, %g3 <== NOT EXECUTED 40006170: 10 bf ff ef b 4000612c <== NOT EXECUTED 40006174: 9a 10 20 00 clr %o5 <== NOT EXECUTED =============================================================================== 40005a38 : { 40005a38: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED if (pathlen > 0) { 40005a3c: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 40005a40: 02 80 00 22 be 40005ac8 <== NOT EXECUTED 40005a44: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED if (ctx->recursionlevel < RTEMS_FILESYSTEM_SYMLOOP_MAX) { 40005a48: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 <== NOT EXECUTED 40005a4c: 80 a0 60 1f cmp %g1, 0x1f <== NOT EXECUTED 40005a50: 14 80 00 20 bg 40005ad0 <== NOT EXECUTED 40005a54: 01 00 00 00 nop <== NOT EXECUTED return c == '/' || c == '\\'; 40005a58: c4 4e 40 00 ldsb [ %i1 ], %g2 <== NOT EXECUTED const char *saved_path = ctx->path; 40005a5c: f6 06 00 00 ld [ %i0 ], %i3 <== NOT EXECUTED if (rtems_filesystem_is_delimiter(path [0])) { 40005a60: 80 a0 a0 2f cmp %g2, 0x2f <== NOT EXECUTED 40005a64: 02 80 00 1d be 40005ad8 <== NOT EXECUTED 40005a68: f8 06 20 04 ld [ %i0 + 4 ], %i4 <== NOT EXECUTED 40005a6c: 80 a0 a0 5c cmp %g2, 0x5c <== NOT EXECUTED 40005a70: 02 80 00 1b be 40005adc <== NOT EXECUTED 40005a74: 92 07 60 30 add %i5, 0x30, %o1 <== NOT EXECUTED ++ctx->recursionlevel; 40005a78: 82 00 60 01 inc %g1 <== NOT EXECUTED ctx->path = path; 40005a7c: f2 27 40 00 st %i1, [ %i5 ] <== NOT EXECUTED ctx->pathlen = pathlen; 40005a80: f4 27 60 04 st %i2, [ %i5 + 4 ] <== NOT EXECUTED ++ctx->recursionlevel; 40005a84: c2 27 60 14 st %g1, [ %i5 + 0x14 ] <== NOT EXECUTED (*ctx->currentloc.mt_entry->ops->eval_path_h)(ctx); 40005a88: c2 07 60 2c ld [ %i5 + 0x2c ], %g1 <== NOT EXECUTED 40005a8c: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED 40005a90: c2 00 60 08 ld [ %g1 + 8 ], %g1 <== NOT EXECUTED 40005a94: 9f c0 40 00 call %g1 <== NOT EXECUTED 40005a98: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED while (ctx->pathlen > 0) { 40005a9c: c2 07 60 04 ld [ %i5 + 4 ], %g1 <== NOT EXECUTED 40005aa0: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40005aa4: 32 bf ff fa bne,a 40005a8c <== NOT EXECUTED 40005aa8: c2 07 60 2c ld [ %i5 + 0x2c ], %g1 <== NOT EXECUTED --ctx->recursionlevel; 40005aac: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 <== NOT EXECUTED 40005ab0: 82 00 7f ff add %g1, -1, %g1 <== NOT EXECUTED ctx->path = saved_path; 40005ab4: f6 27 40 00 st %i3, [ %i5 ] <== NOT EXECUTED --ctx->recursionlevel; 40005ab8: c2 27 60 14 st %g1, [ %i5 + 0x14 ] <== NOT EXECUTED ctx->pathlen = saved_pathlen; 40005abc: f8 27 60 04 st %i4, [ %i5 + 4 ] <== NOT EXECUTED } 40005ac0: 81 c7 e0 08 ret <== NOT EXECUTED 40005ac4: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_eval_path_error(ctx, ENOENT); 40005ac8: 7f ff fe ed call 4000567c <== NOT EXECUTED 40005acc: 93 e8 20 02 restore %g0, 2, %o1 <== NOT EXECUTED rtems_filesystem_eval_path_error(ctx, ELOOP); 40005ad0: 7f ff fe eb call 4000567c <== NOT EXECUTED 40005ad4: 93 e8 20 5c restore %g0, 0x5c, %o1 <== NOT EXECUTED rtems_filesystem_eval_path_restart(ctx, &ctx->rootloc); 40005ad8: 92 07 60 30 add %i5, 0x30, %o1 <== NOT EXECUTED 40005adc: 7f ff ff be call 400059d4 <== NOT EXECUTED 40005ae0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40005ae4: 10 bf ff e5 b 40005a78 <== NOT EXECUTED 40005ae8: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 <== NOT EXECUTED =============================================================================== 400059d4 : void rtems_filesystem_eval_path_restart( rtems_filesystem_eval_path_context_t *ctx, rtems_filesystem_global_location_t **newstartloc_ptr ) { 400059d4: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED 400059d8: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED free_location(&ctx->currentloc); 400059dc: b0 06 20 18 add %i0, 0x18, %i0 <== NOT EXECUTED 400059e0: 7f ff ff 18 call 40005640 <== NOT EXECUTED 400059e4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400059e8: c2 07 60 34 ld [ %i5 + 0x34 ], %g1 <== NOT EXECUTED 400059ec: d0 00 60 14 ld [ %g1 + 0x14 ], %o0 <== NOT EXECUTED 400059f0: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 400059f4: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 400059f8: 9f c0 40 00 call %g1 <== NOT EXECUTED 400059fc: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_instance_unlock(&ctx->startloc->location); rtems_filesystem_global_location_assign( 40005a00: 40 00 00 b1 call 40005cc4 <== NOT EXECUTED 40005a04: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 40005a08: 92 10 00 08 mov %o0, %o1 <== NOT EXECUTED 40005a0c: 40 00 01 02 call 40005e14 <== NOT EXECUTED 40005a10: 90 07 60 34 add %i5, 0x34, %o0 <== NOT EXECUTED 40005a14: c2 07 60 34 ld [ %i5 + 0x34 ], %g1 <== NOT EXECUTED 40005a18: d0 00 60 14 ld [ %g1 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 40005a1c: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 40005a20: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 40005a24: 9f c0 40 00 call %g1 <== NOT EXECUTED 40005a28: 01 00 00 00 nop <== NOT EXECUTED &ctx->startloc, rtems_filesystem_global_location_obtain(newstartloc_ptr) ); rtems_filesystem_instance_lock(&ctx->startloc->location); rtems_filesystem_location_clone(&ctx->currentloc, &ctx->startloc->location); 40005a2c: f2 07 60 34 ld [ %i5 + 0x34 ], %i1 <== NOT EXECUTED 40005a30: 40 00 1e 1e call 4000d2a8 <== NOT EXECUTED 40005a34: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000d270 : { 4000d270: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED size_t pathlen = strlen(path); 4000d274: 40 01 5d 23 call 40064700 <== NOT EXECUTED 4000d278: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED while (pathlen > 0) { 4000d27c: a0 92 20 00 orcc %o0, 0, %l0 <== NOT EXECUTED 4000d280: 02 80 00 32 be 4000d348 <== NOT EXECUTED 4000d284: a2 10 00 19 mov %i1, %l1 <== NOT EXECUTED size_t i = pathlen - 1; 4000d288: ba 04 3f ff add %l0, -1, %i5 <== NOT EXECUTED return c == '/' || c == '\\'; 4000d28c: c2 4e 40 1d ldsb [ %i1 + %i5 ], %g1 <== NOT EXECUTED if (rtems_filesystem_is_delimiter(path [i])) { 4000d290: 80 a0 60 2f cmp %g1, 0x2f <== NOT EXECUTED 4000d294: 02 80 00 30 be 4000d354 <== NOT EXECUTED 4000d298: 80 a0 60 5c cmp %g1, 0x5c <== NOT EXECUTED 4000d29c: 12 80 00 0c bne 4000d2cc <== NOT EXECUTED 4000d2a0: 80 a7 60 00 cmp %i5, 0 <== NOT EXECUTED 4000d2a4: 10 80 00 2e b 4000d35c <== NOT EXECUTED 4000d2a8: ba 10 00 10 mov %l0, %i5 <== NOT EXECUTED 4000d2ac: c4 4e 40 01 ldsb [ %i1 + %g1 ], %g2 <== NOT EXECUTED 4000d2b0: 80 a0 a0 2f cmp %g2, 0x2f <== NOT EXECUTED 4000d2b4: 02 80 00 21 be 4000d338 <== NOT EXECUTED 4000d2b8: 80 a0 a0 5c cmp %g2, 0x5c <== NOT EXECUTED 4000d2bc: 02 80 00 20 be 4000d33c <== NOT EXECUTED 4000d2c0: a2 10 00 19 mov %i1, %l1 <== NOT EXECUTED size_t i = pathlen - 1; 4000d2c4: ba 10 00 01 mov %g1, %i5 <== NOT EXECUTED while (pathlen > 0) { 4000d2c8: 80 a7 60 00 cmp %i5, 0 <== NOT EXECUTED 4000d2cc: 12 bf ff f8 bne 4000d2ac <== NOT EXECUTED 4000d2d0: 82 07 7f ff add %i5, -1, %g1 <== NOT EXECUTED parentpath = "."; 4000d2d4: 23 10 01 fc sethi %hi(0x4007f000), %l1 <== NOT EXECUTED parentpathlen = 1; 4000d2d8: ba 10 20 01 mov 1, %i5 <== NOT EXECUTED parentpath = "."; 4000d2dc: a2 14 61 e0 or %l1, 0x1e0, %l1 <== NOT EXECUTED &rtems_filesystem_root, 4000d2e0: 7f ff fc db call 4000c64c <== NOT EXECUTED 4000d2e4: 01 00 00 00 nop <== NOT EXECUTED &rtems_filesystem_current 4000d2e8: 7f ff fc d9 call 4000c64c <== NOT EXECUTED 4000d2ec: a4 10 00 08 mov %o0, %l2 <== NOT EXECUTED currentloc = rtems_filesystem_eval_path_start_with_root_and_current( 4000d2f0: 98 04 a0 04 add %l2, 4, %o4 <== NOT EXECUTED 4000d2f4: 9a 10 00 08 mov %o0, %o5 <== NOT EXECUTED 4000d2f8: 96 10 00 1c mov %i4, %o3 <== NOT EXECUTED 4000d2fc: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 4000d300: 92 10 00 11 mov %l1, %o1 <== NOT EXECUTED 4000d304: 7f ff ff 79 call 4000d0e8 <== NOT EXECUTED 4000d308: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED rtems_filesystem_location_clone(parentloc, currentloc); 4000d30c: 92 10 00 08 mov %o0, %o1 <== NOT EXECUTED 4000d310: 40 00 d1 c1 call 40041a14 <== NOT EXECUTED 4000d314: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED ctx->path = name; 4000d318: f2 26 00 00 st %i1, [ %i0 ] <== NOT EXECUTED rtems_filesystem_eval_path_continue(ctx); 4000d31c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED ctx->pathlen = namelen; 4000d320: e0 26 20 04 st %l0, [ %i0 + 4 ] <== NOT EXECUTED return &ctx->currentloc; 4000d324: b0 06 20 18 add %i0, 0x18, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_continue(ctx); 4000d328: 7f ff ff 53 call 4000d074 <== NOT EXECUTED 4000d32c: f4 26 3f f8 st %i2, [ %i0 + -8 ] <== NOT EXECUTED } 4000d330: 81 c7 e0 08 ret <== NOT EXECUTED 4000d334: 81 e8 00 00 restore <== NOT EXECUTED name = path + parentpathlen; 4000d338: a2 10 00 19 mov %i1, %l1 <== NOT EXECUTED 4000d33c: a0 24 00 1d sub %l0, %i5, %l0 <== NOT EXECUTED 4000d340: 10 bf ff e8 b 4000d2e0 <== NOT EXECUTED 4000d344: b2 06 40 1d add %i1, %i5, %i1 <== NOT EXECUTED return 0; 4000d348: ba 10 20 00 clr %i5 <== NOT EXECUTED const char *name = NULL; 4000d34c: 10 bf ff e5 b 4000d2e0 <== NOT EXECUTED 4000d350: b2 10 20 00 clr %i1 <== NOT EXECUTED if (rtems_filesystem_is_delimiter(path [i])) { 4000d354: ba 10 00 10 mov %l0, %i5 <== NOT EXECUTED name = path + parentpathlen; 4000d358: a2 10 00 19 mov %i1, %l1 <== NOT EXECUTED if (rtems_filesystem_is_delimiter(path [i])) { 4000d35c: a0 10 20 00 clr %l0 <== NOT EXECUTED name = path + parentpathlen; 4000d360: 10 bf ff e0 b 4000d2e0 <== NOT EXECUTED 4000d364: b2 06 40 1d add %i1, %i5, %i1 <== NOT EXECUTED =============================================================================== 40005810 : { 40005810: 9d e3 bf 98 save %sp, -104, %sp memset(ctx, 0, sizeof(*ctx)); 40005814: 94 10 20 30 mov 0x30, %o2 40005818: 92 10 20 00 clr %o1 4000581c: 40 00 24 48 call 4000e93c 40005820: 90 06 20 08 add %i0, 8, %o0 ctx->path = path; 40005824: f2 26 00 00 st %i1, [ %i0 ] if (ctx->pathlen > 0) { 40005828: 80 a6 a0 00 cmp %i2, 0 ctx->pathlen = pathlen; 4000582c: f4 26 20 04 st %i2, [ %i0 + 4 ] if (ctx->pathlen > 0) { 40005830: 02 80 00 1d be 400058a4 <== NEVER TAKEN 40005834: f6 26 20 10 st %i3, [ %i0 + 0x10 ] char c = ctx->path [0]; 40005838: f6 0e 40 00 ldub [ %i1 ], %i3 ctx->rootloc = rtems_filesystem_global_location_obtain(global_root_ptr); 4000583c: 40 00 01 22 call 40005cc4 40005840: 90 10 00 1c mov %i4, %o0 return c == '/' || c == '\\'; 40005844: 83 2e e0 18 sll %i3, 0x18, %g1 40005848: 83 38 60 18 sra %g1, 0x18, %g1 if (rtems_filesystem_is_delimiter(c)) { 4000584c: 80 a0 60 2f cmp %g1, 0x2f 40005850: 02 80 00 2f be 4000590c <== ALWAYS TAKEN 40005854: d0 26 20 30 st %o0, [ %i0 + 0x30 ] 40005858: 80 a0 60 5c cmp %g1, 0x5c <== NOT EXECUTED 4000585c: 22 80 00 2d be,a 40005910 <== NOT EXECUTED 40005860: c4 06 00 00 ld [ %i0 ], %g2 <== NOT EXECUTED ctx->startloc = rtems_filesystem_global_location_obtain( 40005864: 40 00 01 18 call 40005cc4 <== NOT EXECUTED 40005868: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4000586c: d0 26 20 34 st %o0, [ %i0 + 0x34 ] <== NOT EXECUTED 40005870: d0 02 20 14 ld [ %o0 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 40005874: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 40005878: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 4000587c: 9f c0 40 00 call %g1 <== NOT EXECUTED 40005880: ba 06 20 18 add %i0, 0x18, %i5 <== NOT EXECUTED rtems_filesystem_location_clone( 40005884: d2 06 20 34 ld [ %i0 + 0x34 ], %o1 <== NOT EXECUTED 40005888: 40 00 1e 88 call 4000d2a8 <== NOT EXECUTED 4000588c: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_continue(ctx); 40005890: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40005894: 7f ff ff c2 call 4000579c <== NOT EXECUTED 40005898: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED } 4000589c: 81 c7 e0 08 ret <== NOT EXECUTED 400058a0: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_global_location_t *global_loc = NULL; 400058a4: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED return rtems_filesystem_global_location_obtain( &global_loc ); 400058a8: 40 00 01 07 call 40005cc4 <== NOT EXECUTED 400058ac: 90 07 bf fc add %fp, -4, %o0 <== NOT EXECUTED ctx->rootloc = rtems_filesystem_global_location_obtain_null(); 400058b0: d0 26 20 30 st %o0, [ %i0 + 0x30 ] <== NOT EXECUTED 400058b4: 90 07 bf fc add %fp, -4, %o0 <== NOT EXECUTED 400058b8: 40 00 01 03 call 40005cc4 <== NOT EXECUTED 400058bc: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED ctx->startloc = rtems_filesystem_global_location_obtain_null(); 400058c0: d0 26 20 34 st %o0, [ %i0 + 0x34 ] <== NOT EXECUTED errno = ENOENT; 400058c4: 40 00 23 a5 call 4000e758 <__errno> <== NOT EXECUTED 400058c8: ba 06 20 18 add %i0, 0x18, %i5 <== NOT EXECUTED 400058cc: 82 10 20 02 mov 2, %g1 <== NOT EXECUTED 400058d0: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 400058d4: d0 06 20 34 ld [ %i0 + 0x34 ], %o0 <== NOT EXECUTED 400058d8: d0 02 20 14 ld [ %o0 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 400058dc: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 400058e0: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 400058e4: 9f c0 40 00 call %g1 <== NOT EXECUTED 400058e8: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_location_clone( 400058ec: d2 06 20 34 ld [ %i0 + 0x34 ], %o1 <== NOT EXECUTED 400058f0: 40 00 1e 6e call 4000d2a8 <== NOT EXECUTED 400058f4: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_continue(ctx); 400058f8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400058fc: 7f ff ff a8 call 4000579c <== NOT EXECUTED 40005900: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED } 40005904: 81 c7 e0 08 ret <== NOT EXECUTED 40005908: 81 e8 00 00 restore <== NOT EXECUTED ++ctx->path; 4000590c: c4 06 00 00 ld [ %i0 ], %g2 --ctx->pathlen; 40005910: c2 06 20 04 ld [ %i0 + 4 ], %g1 ++ctx->path; 40005914: 84 00 a0 01 inc %g2 --ctx->pathlen; 40005918: 82 00 7f ff add %g1, -1, %g1 ++ctx->path; 4000591c: c4 26 00 00 st %g2, [ %i0 ] ctx->startloc = rtems_filesystem_global_location_obtain( 40005920: 90 06 20 30 add %i0, 0x30, %o0 --ctx->pathlen; 40005924: c2 26 20 04 st %g1, [ %i0 + 4 ] ctx->startloc = rtems_filesystem_global_location_obtain( 40005928: 40 00 00 e7 call 40005cc4 4000592c: ba 06 20 18 add %i0, 0x18, %i5 40005930: d0 26 20 34 st %o0, [ %i0 + 0x34 ] 40005934: d0 02 20 14 ld [ %o0 + 0x14 ], %o0 40005938: c2 02 20 0c ld [ %o0 + 0xc ], %g1 4000593c: c2 00 40 00 ld [ %g1 ], %g1 40005940: 9f c0 40 00 call %g1 40005944: 01 00 00 00 nop rtems_filesystem_location_clone( 40005948: d2 06 20 34 ld [ %i0 + 0x34 ], %o1 4000594c: 40 00 1e 57 call 4000d2a8 40005950: 90 10 00 1d mov %i5, %o0 rtems_filesystem_eval_path_continue(ctx); 40005954: 90 10 00 18 mov %i0, %o0 40005958: 7f ff ff 91 call 4000579c 4000595c: b0 10 00 1d mov %i5, %i0 } 40005960: 81 c7 e0 08 ret 40005964: 81 e8 00 00 restore =============================================================================== 4000d60c : rtems_filesystem_fsmount_me_t rtems_filesystem_get_mount_handler( const char *type ) { 4000d60c: 9d e3 bf 98 save %sp, -104, %sp 4000d610: 82 10 00 18 mov %i0, %g1 find_arg fa = { 4000d614: c0 27 bf fc clr [ %fp + -4 ] 4000d618: b0 10 20 00 clr %i0 .type = type, .mount_h = NULL }; if ( type != NULL ) { 4000d61c: 80 a0 60 00 cmp %g1, 0 4000d620: 02 80 00 07 be 4000d63c <== NEVER TAKEN 4000d624: c2 27 bf f8 st %g1, [ %fp + -8 ] rtems_filesystem_iterate( find_handler, &fa ); 4000d628: 92 07 bf f8 add %fp, -8, %o1 4000d62c: 11 10 00 35 sethi %hi(0x4000d400), %o0 4000d630: 7f ff ff cb call 4000d55c 4000d634: 90 12 21 28 or %o0, 0x128, %o0 ! 4000d528 4000d638: f0 07 bf fc ld [ %fp + -4 ], %i0 } return fa.mount_h; } 4000d63c: 81 c7 e0 08 ret 4000d640: 81 e8 00 00 restore =============================================================================== 40005e14 : { 40005e14: 84 10 00 08 mov %o0, %g2 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005e18: 91 d0 20 09 ta 9 <== NOT EXECUTED lhs_global_loc = *lhs_global_loc_ptr; 40005e1c: d0 02 00 00 ld [ %o0 ], %o0 <== NOT EXECUTED *lhs_global_loc_ptr = rhs_global_loc; 40005e20: d2 20 80 00 st %o1, [ %g2 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005e24: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005e28: 01 00 00 00 nop rtems_filesystem_global_location_release(lhs_global_loc, true); 40005e2c: 92 10 20 01 mov 1, %o1 ! 1 <_TLS_Alignment> 40005e30: 82 13 c0 00 mov %o7, %g1 40005e34: 7f ff ff de call 40005dac 40005e38: 9e 10 40 00 mov %g1, %o7 =============================================================================== 40005cc4 : { 40005cc4: 9d e3 bf 98 save %sp, -104, %sp if (deferred_released_global_locations != NULL) { 40005cc8: 3b 10 00 4b sethi %hi(0x40012c00), %i5 40005ccc: c2 07 63 20 ld [ %i5 + 0x320 ], %g1 ! 40012f20 40005cd0: 80 a0 60 00 cmp %g1, 0 40005cd4: 02 80 00 1e be 40005d4c 40005cd8: 01 00 00 00 nop 40005cdc: ba 17 63 20 or %i5, 0x320, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005ce0: 91 d0 20 09 ta 9 <== NOT EXECUTED current = deferred_released_global_locations; 40005ce4: d0 07 40 00 ld [ %i5 ], %o0 if (current != NULL) { 40005ce8: 80 a2 20 00 cmp %o0, 0 40005cec: 02 80 00 07 be 40005d08 <== NEVER TAKEN 40005cf0: 92 10 20 00 clr %o1 <== NOT EXECUTED deferred_released_global_locations = current->deferred_released_next; 40005cf4: c4 02 20 1c ld [ %o0 + 0x1c ], %g2 <== NOT EXECUTED count = current->deferred_released_count; 40005cf8: d2 02 20 20 ld [ %o0 + 0x20 ], %o1 <== NOT EXECUTED deferred_released_global_locations = current->deferred_released_next; 40005cfc: c4 27 40 00 st %g2, [ %i5 ] <== NOT EXECUTED current->deferred_released_next = NULL; 40005d00: c0 22 20 1c clr [ %o0 + 0x1c ] <== NOT EXECUTED current->deferred_released_count = 0; 40005d04: c0 22 20 20 clr [ %o0 + 0x20 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005d08: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005d0c: 01 00 00 00 nop if (current != NULL) { 40005d10: 80 a2 20 00 cmp %o0, 0 40005d14: 02 80 00 0e be 40005d4c <== NEVER TAKEN 40005d18: 01 00 00 00 nop release_with_count(current, count); 40005d1c: 7f ff ff be call 40005c14 40005d20: 01 00 00 00 nop __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005d24: 91 d0 20 09 ta 9 <== NOT EXECUTED current = deferred_released_global_locations; 40005d28: d0 07 40 00 ld [ %i5 ], %o0 if (current != NULL) { 40005d2c: 80 a2 20 00 cmp %o0, 0 40005d30: 12 bf ff f1 bne 40005cf4 <== NEVER TAKEN 40005d34: 92 10 20 00 clr %o1 <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005d38: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005d3c: 01 00 00 00 nop if (current != NULL) { 40005d40: 80 a2 20 00 cmp %o0, 0 40005d44: 12 bf ff f6 bne 40005d1c <== NEVER TAKEN 40005d48: 01 00 00 00 nop <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005d4c: 91 d0 20 09 ta 9 <== NOT EXECUTED global_loc = *global_loc_ptr; 40005d50: f0 06 00 00 ld [ %i0 ], %i0 if (global_loc == NULL || !global_loc->location.mt_entry->mounted) { 40005d54: 80 a6 20 00 cmp %i0, 0 40005d58: 02 80 00 07 be 40005d74 <== NEVER TAKEN 40005d5c: 01 00 00 00 nop 40005d60: c4 06 20 14 ld [ %i0 + 0x14 ], %g2 40005d64: c4 08 a0 28 ldub [ %g2 + 0x28 ], %g2 40005d68: 80 a0 a0 00 cmp %g2, 0 40005d6c: 32 80 00 0a bne,a 40005d94 <== ALWAYS TAKEN 40005d70: c4 06 20 18 ld [ %i0 + 0x18 ], %g2 errno = ENXIO; 40005d74: 40 00 22 79 call 4000e758 <__errno> <== NOT EXECUTED 40005d78: c2 27 bf fc st %g1, [ %fp + -4 ] <== NOT EXECUTED 40005d7c: 84 10 20 06 mov 6, %g2 <== NOT EXECUTED 40005d80: c4 22 00 00 st %g2, [ %o0 ] <== NOT EXECUTED global_loc = &rtems_filesystem_global_location_null; 40005d84: 31 10 00 47 sethi %hi(0x40011c00), %i0 <== NOT EXECUTED 40005d88: c2 07 bf fc ld [ %fp + -4 ], %g1 <== NOT EXECUTED 40005d8c: b0 16 22 70 or %i0, 0x270, %i0 <== NOT EXECUTED ++global_loc->reference_count; 40005d90: c4 06 20 18 ld [ %i0 + 0x18 ], %g2 <== NOT EXECUTED 40005d94: 84 00 a0 01 inc %g2 <== NOT EXECUTED 40005d98: c4 26 20 18 st %g2, [ %i0 + 0x18 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005d9c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005da0: 01 00 00 00 nop } 40005da4: 81 c7 e0 08 ret 40005da8: 81 e8 00 00 restore =============================================================================== 40005dac : if (!deferred) { 40005dac: 80 a2 60 00 cmp %o1, 0 40005db0: 22 80 00 16 be,a 40005e08 40005db4: 92 10 20 01 mov 1, %o1 __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005db8: 91 d0 20 09 ta 9 <== NOT EXECUTED if (global_loc->deferred_released_count == 0) { 40005dbc: c6 02 20 20 ld [ %o0 + 0x20 ], %g3 40005dc0: 80 a0 e0 00 cmp %g3, 0 40005dc4: 22 80 00 08 be,a 40005de4 40005dc8: 07 10 00 4b sethi %hi(0x40012c00), %g3 ++global_loc->deferred_released_count; 40005dcc: 86 00 e0 01 inc %g3 <== NOT EXECUTED 40005dd0: c6 22 20 20 st %g3, [ %o0 + 0x20 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005dd4: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005dd8: 01 00 00 00 nop } 40005ddc: 81 c3 e0 08 retl 40005de0: 01 00 00 00 nop rtems_filesystem_global_location_t *head = 40005de4: c8 00 e3 20 ld [ %g3 + 0x320 ], %g4 <== NOT EXECUTED global_loc->deferred_released_next = head; 40005de8: c8 22 20 1c st %g4, [ %o0 + 0x1c ] <== NOT EXECUTED global_loc->deferred_released_count = 1; 40005dec: 88 10 20 01 mov 1, %g4 <== NOT EXECUTED deferred_released_global_locations = global_loc; 40005df0: d0 20 e3 20 st %o0, [ %g3 + 0x320 ] <== NOT EXECUTED global_loc->deferred_released_count = 1; 40005df4: c8 22 20 20 st %g4, [ %o0 + 0x20 ] <== NOT EXECUTED 40005df8: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005dfc: 01 00 00 00 nop } 40005e00: 81 c3 e0 08 retl 40005e04: 01 00 00 00 nop release_with_count(global_loc, 1); 40005e08: 82 13 c0 00 mov %o7, %g1 40005e0c: 7f ff ff 82 call 40005c14 40005e10: 9e 10 40 00 mov %g1, %o7 =============================================================================== 40004578 : /* * Default mode for created files. */ void rtems_filesystem_initialize( void ) { 40004578: 9d e3 bf a0 save %sp, -96, %sp int rv = 0; const rtems_filesystem_mount_configuration *root_config = &rtems_filesystem_root_configuration; rv = mount( 4000457c: 05 10 00 3f sethi %hi(0x4000fc00), %g2 40004580: 82 10 a3 64 or %g2, 0x364, %g1 ! 4000ff64 40004584: d0 00 a3 64 ld [ %g2 + 0x364 ], %o0 40004588: d8 00 60 10 ld [ %g1 + 0x10 ], %o4 4000458c: d6 00 60 0c ld [ %g1 + 0xc ], %o3 40004590: d4 00 60 08 ld [ %g1 + 8 ], %o2 40004594: 40 00 01 a4 call 40004c24 40004598: d2 00 60 04 ld [ %g1 + 4 ], %o1 root_config->target, root_config->filesystemtype, root_config->options, root_config->data ); if ( rv != 0 ) 4000459c: 80 a2 20 00 cmp %o0, 0 400045a0: 12 80 00 0a bne 400045c8 <== NEVER TAKEN 400045a4: 92 10 21 ed mov 0x1ed, %o1 * Traditionally RTEMS devices are under "/dev" so install this directory. * * If the mkdir() fails, we can't print anything so just fatal error. */ rv = mkdir( "/dev", S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH ); 400045a8: 11 10 00 40 sethi %hi(0x40010000), %o0 400045ac: 40 00 01 56 call 40004b04 400045b0: 90 12 23 60 or %o0, 0x360, %o0 ! 40010360 if ( rv != 0 ) 400045b4: 80 a2 20 00 cmp %o0, 0 400045b8: 12 80 00 07 bne 400045d4 <== NEVER TAKEN 400045bc: 11 2a f3 40 sethi %hi(0xabcd0000), %o0 * it will be mounted onto is created. Moreover, if it is going to * use a device, then it is REALLY unfair to attempt this * before device drivers are initialized. So we return via a base * filesystem image and nothing auto-mounted at this point. */ } 400045c0: 81 c7 e0 08 ret 400045c4: 81 e8 00 00 restore rtems_fatal_error_occurred( 0xABCD0002 ); 400045c8: 11 2a f3 40 sethi %hi(0xabcd0000), %o0 <== NOT EXECUTED 400045cc: 40 00 08 e2 call 40006954 <== NOT EXECUTED 400045d0: 90 12 20 02 or %o0, 2, %o0 ! abcd0002 <== NOT EXECUTED rtems_fatal_error_occurred( 0xABCD0003 ); 400045d4: 40 00 08 e0 call 40006954 <== NOT EXECUTED 400045d8: 90 12 20 03 or %o0, 3, %o0 <== NOT EXECUTED 400045dc: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 4000d55c : { 4000d55c: 9d e3 bf a0 save %sp, -96, %sp while ( table_entry->type && !stop ) { 4000d560: 3b 10 00 3f sethi %hi(0x4000fc00), %i5 4000d564: c2 07 63 e0 ld [ %i5 + 0x3e0 ], %g1 ! 4000ffe0 4000d568: 80 a0 60 00 cmp %g1, 0 4000d56c: 12 80 00 06 bne 4000d584 <== ALWAYS TAKEN 4000d570: ba 17 63 e0 or %i5, 0x3e0, %i5 4000d574: 30 80 00 0f b,a 4000d5b0 <== NOT EXECUTED 4000d578: 80 a2 20 00 cmp %o0, 0 4000d57c: 32 80 00 22 bne,a 4000d604 <== ALWAYS TAKEN 4000d580: b8 0f 20 ff and %i4, 0xff, %i4 stop = (*routine)( table_entry, routine_arg ); 4000d584: 90 10 00 1d mov %i5, %o0 4000d588: 9f c6 00 00 call %i0 4000d58c: 92 10 00 19 mov %i1, %o1 ++table_entry; 4000d590: ba 07 60 08 add %i5, 8, %i5 while ( table_entry->type && !stop ) { 4000d594: c2 07 40 00 ld [ %i5 ], %g1 4000d598: 80 a0 60 00 cmp %g1, 0 4000d59c: 12 bf ff f7 bne 4000d578 4000d5a0: b8 10 00 08 mov %o0, %i4 if ( !stop ) { 4000d5a4: b8 8a 20 ff andcc %o0, 0xff, %i4 4000d5a8: 12 80 00 17 bne 4000d604 <== ALWAYS TAKEN 4000d5ac: 01 00 00 00 nop rtems_libio_lock(); 4000d5b0: 7f ff dc a6 call 40004848 <== NOT EXECUTED 4000d5b4: 37 10 00 48 sethi %hi(0x40012000), %i3 <== NOT EXECUTED return _Chain_Immutable_head( the_chain )->next; 4000d5b8: fa 06 e0 60 ld [ %i3 + 0x60 ], %i5 ! 40012060 <== NOT EXECUTED 4000d5bc: b6 16 e0 60 or %i3, 0x60, %i3 <== NOT EXECUTED for ( 4000d5c0: b6 06 e0 04 add %i3, 4, %i3 <== NOT EXECUTED 4000d5c4: 80 a7 40 1b cmp %i5, %i3 <== NOT EXECUTED 4000d5c8: 12 80 00 06 bne 4000d5e0 <== NOT EXECUTED 4000d5cc: b8 10 20 00 clr %i4 <== NOT EXECUTED 4000d5d0: 30 80 00 0b b,a 4000d5fc <== NOT EXECUTED !rtems_chain_is_tail( chain, node ) && !stop; 4000d5d4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000d5d8: 12 80 00 09 bne 4000d5fc <== NOT EXECUTED 4000d5dc: 01 00 00 00 nop <== NOT EXECUTED stop = (*routine)( &fsn->entry, routine_arg ); 4000d5e0: 90 07 60 08 add %i5, 8, %o0 <== NOT EXECUTED 4000d5e4: 9f c6 00 00 call %i0 <== NOT EXECUTED 4000d5e8: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000d5ec: fa 07 40 00 ld [ %i5 ], %i5 <== NOT EXECUTED for ( 4000d5f0: 80 a7 40 1b cmp %i5, %i3 <== NOT EXECUTED 4000d5f4: 12 bf ff f8 bne 4000d5d4 <== NOT EXECUTED 4000d5f8: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED rtems_libio_unlock(); 4000d5fc: 7f ff dc 98 call 4000485c <== NOT EXECUTED 4000d600: b8 0f 20 ff and %i4, 0xff, %i4 <== NOT EXECUTED } 4000d604: 81 c7 e0 08 ret 4000d608: 91 e8 00 1c restore %g0, %i4, %o0 =============================================================================== 4000d2a8 : void rtems_filesystem_location_clone( rtems_filesystem_location_info_t *clone, const rtems_filesystem_location_info_t *master ) { 4000d2a8: 9d e3 bf a0 save %sp, -96, %sp int rv = 0; clone = rtems_filesystem_location_copy( clone, master ); 4000d2ac: 92 10 00 19 mov %i1, %o1 4000d2b0: 7f ff e2 0f call 40005aec 4000d2b4: 90 10 00 18 mov %i0, %o0 rv = (*clone->mt_entry->ops->clonenod_h)( clone ); 4000d2b8: c2 02 20 14 ld [ %o0 + 0x14 ], %g1 4000d2bc: c2 00 60 0c ld [ %g1 + 0xc ], %g1 4000d2c0: c2 00 60 24 ld [ %g1 + 0x24 ], %g1 4000d2c4: 9f c0 40 00 call %g1 4000d2c8: ba 10 00 08 mov %o0, %i5 if ( rv != 0 ) { 4000d2cc: 80 a2 20 00 cmp %o0, 0 4000d2d0: 12 80 00 04 bne 4000d2e0 <== NEVER TAKEN 4000d2d4: 90 10 00 1d mov %i5, %o0 rtems_filesystem_location_remove_from_mt_entry( clone ); rtems_filesystem_location_initialize_to_null( clone ); } } 4000d2d8: 81 c7 e0 08 ret 4000d2dc: 81 e8 00 00 restore return rtems_filesystem_location_copy( 4000d2e0: 33 10 00 47 sethi %hi(0x40011c00), %i1 <== NOT EXECUTED rtems_filesystem_location_remove_from_mt_entry( clone ); 4000d2e4: 7f ff e2 d6 call 40005e3c <== NOT EXECUTED 4000d2e8: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED 4000d2ec: 7f ff e2 00 call 40005aec <== NOT EXECUTED 4000d2f0: 93 ee 62 70 restore %i1, 0x270, %o1 <== NOT EXECUTED =============================================================================== 40005aec : rtems_filesystem_location_info_t *rtems_filesystem_location_copy( rtems_filesystem_location_info_t *dst, const rtems_filesystem_location_info_t *src ) { dst->node_access = src->node_access; 40005aec: da 02 60 08 ld [ %o1 + 8 ], %o5 <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005af0: c8 02 60 0c ld [ %o1 + 0xc ], %g4 <== NOT EXECUTED dst->handlers = src->handlers; 40005af4: c6 02 60 10 ld [ %o1 + 0x10 ], %g3 <== NOT EXECUTED dst->mt_entry = src->mt_entry; 40005af8: c2 02 60 14 ld [ %o1 + 0x14 ], %g1 <== NOT EXECUTED 40005afc: c2 22 20 14 st %g1, [ %o0 + 0x14 ] <== NOT EXECUTED dst->node_access = src->node_access; 40005b00: da 22 20 08 st %o5, [ %o0 + 8 ] <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005b04: c8 22 20 0c st %g4, [ %o0 + 0xc ] <== NOT EXECUTED dst->handlers = src->handlers; 40005b08: c6 22 20 10 st %g3, [ %o0 + 0x10 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005b0c: 91 d0 20 09 ta 9 <== NOT EXECUTED &loc->mt_entry->location_chain, 40005b10: c6 02 20 14 ld [ %o0 + 0x14 ], %g3 <== NOT EXECUTED old_last = tail->previous; 40005b14: c8 00 e0 1c ld [ %g3 + 0x1c ], %g4 <== NOT EXECUTED return &the_chain->Tail.Node; 40005b18: 9a 00 e0 18 add %g3, 0x18, %o5 <== NOT EXECUTED the_node->next = tail; 40005b1c: da 22 00 00 st %o5, [ %o0 ] <== NOT EXECUTED tail->previous = the_node; 40005b20: d0 20 e0 1c st %o0, [ %g3 + 0x1c ] <== NOT EXECUTED old_last->next = the_node; 40005b24: d0 21 00 00 st %o0, [ %g4 ] <== NOT EXECUTED the_node->previous = old_last; 40005b28: c8 22 20 04 st %g4, [ %o0 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005b2c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005b30: 01 00 00 00 nop rtems_chain_initialize_node(&dst->mt_entry_node); rtems_filesystem_location_add_to_mt_entry(dst); return dst; } 40005b34: 81 c3 e0 08 retl 40005b38: 01 00 00 00 nop =============================================================================== 40005ec0 : { 40005ec0: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED dst->node_access = src->node_access; 40005ec4: c8 06 60 08 ld [ %i1 + 8 ], %g4 <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005ec8: c6 06 60 0c ld [ %i1 + 0xc ], %g3 <== NOT EXECUTED dst->handlers = src->handlers; 40005ecc: c4 06 60 10 ld [ %i1 + 0x10 ], %g2 <== NOT EXECUTED dst->mt_entry = src->mt_entry; 40005ed0: c2 06 60 14 ld [ %i1 + 0x14 ], %g1 <== NOT EXECUTED 40005ed4: c2 26 20 14 st %g1, [ %i0 + 0x14 ] <== NOT EXECUTED dst->node_access = src->node_access; 40005ed8: c8 26 20 08 st %g4, [ %i0 + 8 ] <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005edc: c6 26 20 0c st %g3, [ %i0 + 0xc ] <== NOT EXECUTED dst->handlers = src->handlers; 40005ee0: c4 26 20 10 st %g2, [ %i0 + 0x10 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005ee4: 91 d0 20 09 ta 9 <== NOT EXECUTED &loc->mt_entry->location_chain, 40005ee8: c4 06 20 14 ld [ %i0 + 0x14 ], %g2 <== NOT EXECUTED old_last = tail->previous; 40005eec: c6 00 a0 1c ld [ %g2 + 0x1c ], %g3 <== NOT EXECUTED return &the_chain->Tail.Node; 40005ef0: 88 00 a0 18 add %g2, 0x18, %g4 <== NOT EXECUTED the_node->next = tail; 40005ef4: c8 26 00 00 st %g4, [ %i0 ] <== NOT EXECUTED tail->previous = the_node; 40005ef8: f0 20 a0 1c st %i0, [ %g2 + 0x1c ] <== NOT EXECUTED old_last->next = the_node; 40005efc: f0 20 c0 00 st %i0, [ %g3 ] <== NOT EXECUTED the_node->previous = old_last; 40005f00: c6 26 20 04 st %g3, [ %i0 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005f04: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005f08: 01 00 00 00 nop rtems_filesystem_location_remove_from_mt_entry(detach); 40005f0c: 7f ff ff cc call 40005e3c 40005f10: 90 10 00 19 mov %i1, %o0 dst->node_access = src->node_access; 40005f14: 03 10 00 47 sethi %hi(0x40011c00), %g1 <== NOT EXECUTED 40005f18: 82 10 62 70 or %g1, 0x270, %g1 ! 40011e70 <== NOT EXECUTED 40005f1c: c4 00 60 08 ld [ %g1 + 8 ], %g2 <== NOT EXECUTED 40005f20: c4 26 60 08 st %g2, [ %i1 + 8 ] <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005f24: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED 40005f28: c4 26 60 0c st %g2, [ %i1 + 0xc ] <== NOT EXECUTED dst->handlers = src->handlers; 40005f2c: c4 00 60 10 ld [ %g1 + 0x10 ], %g2 <== NOT EXECUTED dst->mt_entry = src->mt_entry; 40005f30: c2 00 60 14 ld [ %g1 + 0x14 ], %g1 <== NOT EXECUTED 40005f34: c2 26 60 14 st %g1, [ %i1 + 0x14 ] <== NOT EXECUTED dst->handlers = src->handlers; 40005f38: c4 26 60 10 st %g2, [ %i1 + 0x10 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005f3c: 91 d0 20 09 ta 9 <== NOT EXECUTED 40005f40: c4 06 60 14 ld [ %i1 + 0x14 ], %g2 <== NOT EXECUTED old_last = tail->previous; 40005f44: c6 00 a0 1c ld [ %g2 + 0x1c ], %g3 <== NOT EXECUTED return &the_chain->Tail.Node; 40005f48: 88 00 a0 18 add %g2, 0x18, %g4 <== NOT EXECUTED the_node->next = tail; 40005f4c: c8 26 40 00 st %g4, [ %i1 ] <== NOT EXECUTED tail->previous = the_node; 40005f50: f2 20 a0 1c st %i1, [ %g2 + 0x1c ] <== NOT EXECUTED old_last->next = the_node; 40005f54: f2 20 c0 00 st %i1, [ %g3 ] <== NOT EXECUTED the_node->previous = old_last; 40005f58: c6 26 60 04 st %g3, [ %i1 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005f5c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005f60: 01 00 00 00 nop } 40005f64: 81 c7 e0 08 ret 40005f68: 81 e8 00 00 restore =============================================================================== 40005b3c : void rtems_filesystem_location_detach( rtems_filesystem_location_info_t *detach ) { 40005b3c: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_filesystem_location_free(detach); 40005b40: 40 00 1d ed call 4000d2f4 <== NOT EXECUTED 40005b44: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED dst->node_access = src->node_access; 40005b48: 03 10 00 47 sethi %hi(0x40011c00), %g1 <== NOT EXECUTED 40005b4c: 82 10 62 70 or %g1, 0x270, %g1 ! 40011e70 <== NOT EXECUTED 40005b50: c4 00 60 08 ld [ %g1 + 8 ], %g2 <== NOT EXECUTED 40005b54: c4 26 20 08 st %g2, [ %i0 + 8 ] <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005b58: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED 40005b5c: c4 26 20 0c st %g2, [ %i0 + 0xc ] <== NOT EXECUTED dst->handlers = src->handlers; 40005b60: c4 00 60 10 ld [ %g1 + 0x10 ], %g2 <== NOT EXECUTED dst->mt_entry = src->mt_entry; 40005b64: c2 00 60 14 ld [ %g1 + 0x14 ], %g1 <== NOT EXECUTED 40005b68: c2 26 20 14 st %g1, [ %i0 + 0x14 ] <== NOT EXECUTED dst->handlers = src->handlers; 40005b6c: c4 26 20 10 st %g2, [ %i0 + 0x10 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005b70: 91 d0 20 09 ta 9 <== NOT EXECUTED 40005b74: c4 06 20 14 ld [ %i0 + 0x14 ], %g2 <== NOT EXECUTED old_last = tail->previous; 40005b78: c6 00 a0 1c ld [ %g2 + 0x1c ], %g3 <== NOT EXECUTED return &the_chain->Tail.Node; 40005b7c: 88 00 a0 18 add %g2, 0x18, %g4 <== NOT EXECUTED the_node->next = tail; 40005b80: c8 26 00 00 st %g4, [ %i0 ] <== NOT EXECUTED tail->previous = the_node; 40005b84: f0 20 a0 1c st %i0, [ %g2 + 0x1c ] <== NOT EXECUTED old_last->next = the_node; 40005b88: f0 20 c0 00 st %i0, [ %g3 ] <== NOT EXECUTED the_node->previous = old_last; 40005b8c: c6 26 20 04 st %g3, [ %i0 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005b90: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005b94: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_location_initialize_to_null(detach); } 40005b98: 81 c7 e0 08 ret <== NOT EXECUTED 40005b9c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40043504 : int rtems_filesystem_location_exists_in_same_instance_as( const rtems_filesystem_location_info_t *a, const rtems_filesystem_location_info_t *b ) { 40043504: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED int rv = -1; if ( 40043508: c4 06 20 10 ld [ %i0 + 0x10 ], %g2 <== NOT EXECUTED 4004350c: 03 10 01 f4 sethi %hi(0x4007d000), %g1 <== NOT EXECUTED 40043510: 82 10 62 58 or %g1, 0x258, %g1 ! 4007d258 <== NOT EXECUTED 40043514: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 40043518: 02 80 00 11 be 4004355c <== NOT EXECUTED 4004351c: 01 00 00 00 nop <== NOT EXECUTED !rtems_filesystem_location_is_null( a ) && !rtems_filesystem_location_is_null( b ) 40043520: c4 06 60 10 ld [ %i1 + 0x10 ], %g2 <== NOT EXECUTED 40043524: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 40043528: 02 80 00 0d be 4004355c <== NOT EXECUTED 4004352c: 01 00 00 00 nop <== NOT EXECUTED ) { if ( a->mt_entry == b->mt_entry ) { 40043530: c4 06 20 14 ld [ %i0 + 0x14 ], %g2 <== NOT EXECUTED 40043534: c2 06 60 14 ld [ %i1 + 0x14 ], %g1 <== NOT EXECUTED 40043538: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 4004353c: 02 80 00 06 be 40043554 <== NOT EXECUTED 40043540: b0 10 20 00 clr %i0 <== NOT EXECUTED rv = 0; } else { errno = EXDEV; 40043544: 40 00 64 f4 call 4005c914 <__errno> <== NOT EXECUTED 40043548: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4004354c: 82 10 20 12 mov 0x12, %g1 <== NOT EXECUTED 40043550: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40043554: 81 c7 e0 08 ret <== NOT EXECUTED 40043558: 81 e8 00 00 restore <== NOT EXECUTED } } return rv; } 4004355c: 81 c7 e0 08 ret <== NOT EXECUTED 40043560: 91 e8 3f ff restore %g0, -1, %o0 <== NOT EXECUTED =============================================================================== 40005e3c : __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005e3c: 91 d0 20 09 ta 9 <== NOT EXECUTED previous = the_node->previous; 40005e40: c6 02 20 04 ld [ %o0 + 4 ], %g3 next = the_node->next; 40005e44: c8 02 00 00 ld [ %o0 ], %g4 next->previous = previous; 40005e48: c6 21 20 04 st %g3, [ %g4 + 4 ] do_unmount = rtems_filesystem_is_ready_for_unmount(loc->mt_entry); 40005e4c: c4 02 20 14 ld [ %o0 + 0x14 ], %g2 previous->next = next; 40005e50: c8 20 c0 00 st %g4, [ %g3 ] 40005e54: c6 08 a0 28 ldub [ %g2 + 0x28 ], %g3 40005e58: 80 a0 e0 00 cmp %g3, 0 40005e5c: 12 80 00 07 bne 40005e78 40005e60: 01 00 00 00 nop && rtems_chain_has_only_one_node( &mt_entry->location_chain ) 40005e64: c8 00 a0 14 ld [ %g2 + 0x14 ], %g4 40005e68: c6 00 a0 1c ld [ %g2 + 0x1c ], %g3 40005e6c: 80 a1 00 03 cmp %g4, %g3 40005e70: 22 80 00 06 be,a 40005e88 40005e74: c6 00 a0 24 ld [ %g2 + 0x24 ], %g3 __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005e78: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005e7c: 01 00 00 00 nop } 40005e80: 81 c3 e0 08 retl 40005e84: 01 00 00 00 nop && mt_entry->mt_fs_root->reference_count == 1; 40005e88: c6 00 e0 18 ld [ %g3 + 0x18 ], %g3 40005e8c: 80 a0 e0 01 cmp %g3, 1 40005e90: 12 bf ff fa bne 40005e78 <== ALWAYS TAKEN 40005e94: 86 00 a0 14 add %g2, 0x14, %g3 return &the_chain->Tail.Node; 40005e98: 88 00 a0 18 add %g2, 0x18, %g4 <== NOT EXECUTED head->previous = NULL; 40005e9c: c0 20 a0 18 clr [ %g2 + 0x18 ] <== NOT EXECUTED head->next = tail; 40005ea0: c8 20 a0 14 st %g4, [ %g2 + 0x14 ] <== NOT EXECUTED tail->previous = head; 40005ea4: c6 20 a0 1c st %g3, [ %g2 + 0x1c ] <== NOT EXECUTED 40005ea8: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005eac: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_do_unmount(loc->mt_entry); 40005eb0: d0 02 20 14 ld [ %o0 + 0x14 ], %o0 <== NOT EXECUTED 40005eb4: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40005eb8: 7f ff ff 3a call 40005ba0 <== NOT EXECUTED 40005ebc: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40005f6c : { 40005f6c: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED rtems_filesystem_global_location_t *global_loc = malloc(sizeof(*global_loc)); 40005f70: 7f ff fa d1 call 40004ab4 <== NOT EXECUTED 40005f74: 90 10 20 24 mov 0x24, %o0 <== NOT EXECUTED if (global_loc != NULL) { 40005f78: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 40005f7c: 02 80 00 1c be 40005fec <== NOT EXECUTED 40005f80: b8 10 20 01 mov 1, %i4 <== NOT EXECUTED dst->node_access = src->node_access; 40005f84: c8 06 20 08 ld [ %i0 + 8 ], %g4 <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005f88: c6 06 20 0c ld [ %i0 + 0xc ], %g3 <== NOT EXECUTED dst->handlers = src->handlers; 40005f8c: c4 06 20 10 ld [ %i0 + 0x10 ], %g2 <== NOT EXECUTED dst->mt_entry = src->mt_entry; 40005f90: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 <== NOT EXECUTED global_loc->deferred_released_next = NULL; 40005f94: c0 27 60 1c clr [ %i5 + 0x1c ] <== NOT EXECUTED global_loc->reference_count = 1; 40005f98: f8 27 60 18 st %i4, [ %i5 + 0x18 ] <== NOT EXECUTED global_loc->deferred_released_count = 0; 40005f9c: c0 27 60 20 clr [ %i5 + 0x20 ] <== NOT EXECUTED dst->node_access = src->node_access; 40005fa0: c8 27 60 08 st %g4, [ %i5 + 8 ] <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005fa4: c6 27 60 0c st %g3, [ %i5 + 0xc ] <== NOT EXECUTED dst->handlers = src->handlers; 40005fa8: c4 27 60 10 st %g2, [ %i5 + 0x10 ] <== NOT EXECUTED dst->mt_entry = src->mt_entry; 40005fac: c2 27 60 14 st %g1, [ %i5 + 0x14 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005fb0: 91 d0 20 09 ta 9 <== NOT EXECUTED 40005fb4: c4 07 60 14 ld [ %i5 + 0x14 ], %g2 <== NOT EXECUTED old_last = tail->previous; 40005fb8: c6 00 a0 1c ld [ %g2 + 0x1c ], %g3 <== NOT EXECUTED return &the_chain->Tail.Node; 40005fbc: 88 00 a0 18 add %g2, 0x18, %g4 <== NOT EXECUTED the_node->next = tail; 40005fc0: c8 27 40 00 st %g4, [ %i5 ] <== NOT EXECUTED tail->previous = the_node; 40005fc4: fa 20 a0 1c st %i5, [ %g2 + 0x1c ] <== NOT EXECUTED old_last->next = the_node; 40005fc8: fa 20 c0 00 st %i5, [ %g3 ] <== NOT EXECUTED the_node->previous = old_last; 40005fcc: c6 27 60 04 st %g3, [ %i5 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005fd0: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005fd4: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_location_remove_from_mt_entry(loc); 40005fd8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40005fdc: 7f ff ff 98 call 40005e3c <== NOT EXECUTED 40005fe0: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED } 40005fe4: 81 c7 e0 08 ret <== NOT EXECUTED 40005fe8: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_location_free(loc); 40005fec: 40 00 1c c2 call 4000d2f4 <== NOT EXECUTED 40005ff0: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED return rtems_filesystem_global_location_obtain( &global_loc ); 40005ff4: 90 07 bf fc add %fp, -4, %o0 <== NOT EXECUTED 40005ff8: 7f ff ff 33 call 40005cc4 <== NOT EXECUTED 40005ffc: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED errno = ENOMEM; 40006000: 40 00 21 d6 call 4000e758 <__errno> <== NOT EXECUTED 40006004: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED 40006008: 82 10 20 0c mov 0xc, %g1 <== NOT EXECUTED 4000600c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } 40006010: 81 c7 e0 08 ret <== NOT EXECUTED 40006014: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED =============================================================================== 40004b20 : const char *name, size_t namelen, mode_t mode, dev_t dev ) { 40004b20: 9d e3 bf a0 save %sp, -96, %sp int rv = 0; mode &= ~rtems_filesystem_umask; 40004b24: 40 00 01 e3 call 400052b0 40004b28: 01 00 00 00 nop 40004b2c: d6 02 20 08 ld [ %o0 + 8 ], %o3 40004b30: 96 2e c0 0b andn %i3, %o3, %o3 switch (mode & S_IFMT) { 40004b34: 03 00 00 3c sethi %hi(0xf000), %g1 40004b38: 05 00 00 10 sethi %hi(0x4000), %g2 40004b3c: 82 0a c0 01 and %o3, %g1, %g1 40004b40: 80 a0 40 02 cmp %g1, %g2 40004b44: 22 80 00 0c be,a 40004b74 <== ALWAYS TAKEN 40004b48: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 40004b4c: 08 80 00 14 bleu 40004b9c <== NOT EXECUTED 40004b50: 05 00 00 04 sethi %hi(0x1000), %g2 <== NOT EXECUTED 40004b54: 05 00 00 18 sethi %hi(0x6000), %g2 <== NOT EXECUTED 40004b58: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 40004b5c: 02 80 00 05 be 40004b70 <== NOT EXECUTED 40004b60: 05 00 00 20 sethi %hi(0x8000), %g2 <== NOT EXECUTED 40004b64: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 40004b68: 12 80 00 13 bne 40004bb4 <== NOT EXECUTED 40004b6c: 01 00 00 00 nop <== NOT EXECUTED rv = -1; break; } if ( rv == 0 ) { const rtems_filesystem_operations_table *ops = parentloc->mt_entry->ops; 40004b70: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 <== NOT EXECUTED rv = (*ops->mknod_h)( parentloc, name, namelen, mode, dev ); 40004b74: c2 00 60 0c ld [ %g1 + 0xc ], %g1 40004b78: c2 00 60 14 ld [ %g1 + 0x14 ], %g1 40004b7c: 98 10 00 1c mov %i4, %o4 40004b80: 9a 10 00 1d mov %i5, %o5 40004b84: 94 10 00 1a mov %i2, %o2 40004b88: 92 10 00 19 mov %i1, %o1 40004b8c: 9f c0 40 00 call %g1 40004b90: 90 10 00 18 mov %i0, %o0 40004b94: 81 c7 e0 08 ret 40004b98: 91 e8 00 08 restore %g0, %o0, %o0 switch (mode & S_IFMT) { 40004b9c: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 40004ba0: 02 bf ff f4 be 40004b70 <== NOT EXECUTED 40004ba4: 05 00 00 08 sethi %hi(0x2000), %g2 <== NOT EXECUTED 40004ba8: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 40004bac: 22 bf ff f2 be,a 40004b74 <== NOT EXECUTED 40004bb0: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 <== NOT EXECUTED errno = EINVAL; 40004bb4: 40 00 26 e9 call 4000e758 <__errno> <== NOT EXECUTED 40004bb8: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40004bbc: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 40004bc0: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } return rv; } 40004bc4: 81 c7 e0 08 ret <== NOT EXECUTED 40004bc8: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40043564 : bool rtems_filesystem_mount_iterate( rtems_filesystem_mt_entry_visitor visitor, void *visitor_arg ) { 40043564: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_libio_lock(); 40043568: 7f ff 21 21 call 4000b9ec <== NOT EXECUTED 4004356c: 39 10 02 2e sethi %hi(0x4008b800), %i4 <== NOT EXECUTED 40043570: fa 07 22 5c ld [ %i4 + 0x25c ], %i5 ! 4008ba5c <== NOT EXECUTED 40043574: b8 17 22 5c or %i4, 0x25c, %i4 <== NOT EXECUTED rtems_chain_control *chain = &rtems_filesystem_mount_table; rtems_chain_node *node = NULL; bool stop = false; rtems_filesystem_mt_lock(); for ( 40043578: b8 07 20 04 add %i4, 4, %i4 <== NOT EXECUTED 4004357c: 80 a7 40 1c cmp %i5, %i4 <== NOT EXECUTED 40043580: 12 80 00 07 bne 4004359c <== NOT EXECUTED 40043584: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED bool stop = false; 40043588: 10 80 00 0b b 400435b4 <== NOT EXECUTED 4004358c: b6 10 20 00 clr %i3 <== NOT EXECUTED node = rtems_chain_first( chain ); !rtems_chain_is_tail( chain, node ) && !stop; 40043590: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40043594: 12 80 00 08 bne 400435b4 <== NOT EXECUTED 40043598: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED node = rtems_chain_next( node ) ) { const rtems_filesystem_mount_table_entry_t *mt_entry = (rtems_filesystem_mount_table_entry_t *) node; stop = (*visitor)( mt_entry, visitor_arg ); 4004359c: 9f c6 00 00 call %i0 <== NOT EXECUTED 400435a0: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400435a4: fa 07 40 00 ld [ %i5 ], %i5 <== NOT EXECUTED for ( 400435a8: 80 a7 40 1c cmp %i5, %i4 <== NOT EXECUTED 400435ac: 12 bf ff f9 bne 40043590 <== NOT EXECUTED 400435b0: b6 10 00 08 mov %o0, %i3 <== NOT EXECUTED rtems_libio_unlock(); 400435b4: 7f ff 21 13 call 4000ba00 <== NOT EXECUTED 400435b8: b0 0e e0 ff and %i3, 0xff, %i0 <== NOT EXECUTED } rtems_filesystem_mt_unlock(); return stop; } 400435bc: 81 c7 e0 08 ret <== NOT EXECUTED 400435c0: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40010458 : 40010458: 40 00 61 78 40 00 cc e8 40 00 cf 3c 40 00 cf d4 @.ax@...@..<@... 40010468: 40 00 cd 70 40 00 ce f4 40 00 61 80 40 00 cd 54 @..p@...@.a.@..T 40010478: 40 00 cd 14 40 00 cd 14 40 00 cd 04 40 00 cf 34 @...@...@...@..4 40010488: 40 00 cd 8c 40 00 cf 58 40 00 cf f0 40 00 cf 10 @...@..X@...@... 40010498: 3f 00 00 00 00 00 00 00 52 54 45 4d 53 5f 53 55 ?.......RTEMS_SU 400104a8: 43 43 45 53 53 46 55 4c 00 00 00 00 00 00 00 00 CCESSFUL........ 400104b8: 52 54 45 4d 53 5f 54 41 53 4b 5f 45 58 49 54 54 RTEMS_TASK_EXITT 400104c8: 45 44 00 00 00 00 00 00 52 54 45 4d 53 5f 4d 50 ED......RTEMS_MP 400104d8: 5f 4e 4f 54 5f 43 4f 4e 46 49 47 55 52 45 44 00 _NOT_CONFIGURED. 400104e8: 52 54 45 4d 53 5f 49 4e 56 41 4c 49 44 5f 4e 41 RTEMS_INVALID_NA 400104f8: 4d 45 00 00 00 00 00 00 52 54 45 4d 53 5f 49 4e ME......RTEMS_IN 40010508: 56 41 4c 49 44 5f 49 44 00 00 00 00 00 00 00 00 VALID_ID........ 40010518: 52 54 45 4d 53 5f 54 4f 4f 5f 4d 41 4e 59 00 00 RTEMS_TOO_MANY.. 40010528: 52 54 45 4d 53 5f 54 49 4d 45 4f 55 54 00 00 00 RTEMS_TIMEOUT... 40010538: 52 54 45 4d 53 5f 4f 42 4a 45 43 54 5f 57 41 53 RTEMS_OBJECT_WAS 40010548: 5f 44 45 4c 45 54 45 44 00 00 00 00 00 00 00 00 _DELETED........ 40010558: 52 54 45 4d 53 5f 49 4e 56 41 4c 49 44 5f 53 49 RTEMS_INVALID_SI 40010568: 5a 45 00 00 00 00 00 00 52 54 45 4d 53 5f 49 4e ZE......RTEMS_IN 40010578: 56 41 4c 49 44 5f 41 44 44 52 45 53 53 00 00 00 VALID_ADDRESS... 40010588: 52 54 45 4d 53 5f 49 4e 56 41 4c 49 44 5f 4e 55 RTEMS_INVALID_NU 40010598: 4d 42 45 52 00 00 00 00 52 54 45 4d 53 5f 4e 4f MBER....RTEMS_NO 400105a8: 54 5f 44 45 46 49 4e 45 44 00 00 00 00 00 00 00 T_DEFINED....... 400105b8: 52 54 45 4d 53 5f 52 45 53 4f 55 52 43 45 5f 49 RTEMS_RESOURCE_I 400105c8: 4e 5f 55 53 45 00 00 00 52 54 45 4d 53 5f 55 4e N_USE...RTEMS_UN 400105d8: 53 41 54 49 53 46 49 45 44 00 00 00 00 00 00 00 SATISFIED....... 400105e8: 52 54 45 4d 53 5f 49 4e 43 4f 52 52 45 43 54 5f RTEMS_INCORRECT_ 400105f8: 53 54 41 54 45 00 00 00 52 54 45 4d 53 5f 41 4c STATE...RTEMS_AL 40010608: 52 45 41 44 59 5f 53 55 53 50 45 4e 44 45 44 00 READY_SUSPENDED. 40010618: 52 54 45 4d 53 5f 49 4c 4c 45 47 41 4c 5f 4f 4e RTEMS_ILLEGAL_ON 40010628: 5f 53 45 4c 46 00 00 00 52 54 45 4d 53 5f 49 4c _SELF...RTEMS_IL 40010638: 4c 45 47 41 4c 5f 4f 4e 5f 52 45 4d 4f 54 45 5f LEGAL_ON_REMOTE_ 40010648: 4f 42 4a 45 43 54 00 00 52 54 45 4d 53 5f 43 41 OBJECT..RTEMS_CA 40010658: 4c 4c 45 44 5f 46 52 4f 4d 5f 49 53 52 00 00 00 LLED_FROM_ISR... 40010668: 52 54 45 4d 53 5f 49 4e 56 41 4c 49 44 5f 50 52 RTEMS_INVALID_PR 40010678: 49 4f 52 49 54 59 00 00 52 54 45 4d 53 5f 49 4e IORITY..RTEMS_IN 40010688: 56 41 4c 49 44 5f 43 4c 4f 43 4b 00 00 00 00 00 VALID_CLOCK..... 40010698: 52 54 45 4d 53 5f 49 4e 56 41 4c 49 44 5f 4e 4f RTEMS_INVALID_NO 400106a8: 44 45 00 00 00 00 00 00 52 54 45 4d 53 5f 4e 4f DE......RTEMS_NO 400106b8: 54 5f 43 4f 4e 46 49 47 55 52 45 44 00 00 00 00 T_CONFIGURED.... 400106c8: 52 54 45 4d 53 5f 4e 4f 54 5f 4f 57 4e 45 52 5f RTEMS_NOT_OWNER_ 400106d8: 4f 46 5f 52 45 53 4f 55 52 43 45 00 00 00 00 00 OF_RESOURCE..... 400106e8: 52 54 45 4d 53 5f 4e 4f 54 5f 49 4d 50 4c 45 4d RTEMS_NOT_IMPLEM 400106f8: 45 4e 54 45 44 00 00 00 52 54 45 4d 53 5f 49 4e ENTED...RTEMS_IN 40010708: 54 45 52 4e 41 4c 5f 45 52 52 4f 52 00 00 00 00 TERNAL_ERROR.... 40010718: 52 54 45 4d 53 5f 4e 4f 5f 4d 45 4d 4f 52 59 00 RTEMS_NO_MEMORY. 40010728: 52 54 45 4d 53 5f 49 4f 5f 45 52 52 4f 52 00 00 RTEMS_IO_ERROR.. 40010738: 52 54 45 4d 53 5f 50 52 4f 58 59 5f 42 4c 4f 43 RTEMS_PROXY_BLOC 40010748: 4b 49 4e 47 00 00 00 00 KING.... =============================================================================== 40004910 : void *rtems_heap_allocate_aligned_with_boundary( size_t size, uintptr_t alignment, uintptr_t boundary ) { 40004910: 9d e3 bf a0 save %sp, -96, %sp 40004914: 03 10 00 4d sethi %hi(0x40013400), %g1 40004918: c2 00 61 6c ld [ %g1 + 0x16c ], %g1 ! 4001356c <_System_state_Current> Heap_Control *heap = RTEMS_Malloc_Heap; 4000491c: 05 10 00 47 sethi %hi(0x40011c00), %g2 if ( _System_state_Is_up( state ) ) { 40004920: 80 a0 60 02 cmp %g1, 2 40004924: 02 80 00 21 be 400049a8 40004928: f8 00 a1 e4 ld [ %g2 + 0x1e4 ], %i4 } else if ( _System_state_Is_before_multitasking( state ) ) { 4000492c: 80 a0 60 01 cmp %g1, 1 40004930: 02 80 00 22 be 400049b8 40004934: 96 10 00 1a mov %i2, %o3 boundary ); _RTEMS_Unlock_allocator(); break; case MALLOC_SYSTEM_STATE_NO_PROTECTION: p = _Heap_Allocate_aligned_with_boundary( 40004938: 94 10 00 19 mov %i1, %o2 4000493c: 92 10 00 18 mov %i0, %o1 40004940: 40 00 08 c4 call 40006c50 <_Heap_Allocate_aligned_with_boundary> 40004944: 90 10 00 1c mov %i4, %o0 40004948: ba 10 00 08 mov %o0, %i5 * Do not attempt to allocate memory if not in correct system state. */ return NULL; } if ( p == NULL && alignment == 0 && boundary == 0 ) { 4000494c: 80 a7 60 00 cmp %i5, 0 40004950: 12 80 00 0b bne 4000497c <== ALWAYS TAKEN 40004954: 80 a6 60 00 cmp %i1, 0 40004958: 12 80 00 09 bne 4000497c <== NOT EXECUTED 4000495c: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 40004960: 12 80 00 23 bne 400049ec <== NOT EXECUTED 40004964: 03 10 00 3f sethi %hi(0x4000fc00), %g1 <== NOT EXECUTED p = (*rtems_malloc_extend_handler)( heap, size ); 40004968: c2 00 63 08 ld [ %g1 + 0x308 ], %g1 ! 4000ff08 <== NOT EXECUTED 4000496c: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40004970: 9f c0 40 00 call %g1 <== NOT EXECUTED 40004974: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 40004978: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED } /* * If the user wants us to dirty the allocated memory, then do it. */ if ( p != NULL && rtems_malloc_dirty_helper != NULL ) 4000497c: 80 a7 60 00 cmp %i5, 0 40004980: 02 80 00 1b be 400049ec <== NEVER TAKEN 40004984: 03 10 00 48 sethi %hi(0x40012000), %g1 40004988: c2 00 62 40 ld [ %g1 + 0x240 ], %g1 ! 40012240 4000498c: 80 a0 60 00 cmp %g1, 0 40004990: 02 80 00 04 be 400049a0 <== ALWAYS TAKEN 40004994: 92 10 00 18 mov %i0, %o1 (*rtems_malloc_dirty_helper)( p, size ); 40004998: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000499c: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED return p; } 400049a0: 81 c7 e0 08 ret 400049a4: 91 e8 00 1d restore %g0, %i5, %o0 400049a8: c2 01 a0 18 ld [ %g6 + 0x18 ], %g1 if ( _Thread_Dispatch_is_enabled() ) { 400049ac: 80 a0 60 00 cmp %g1, 0 400049b0: 32 80 00 10 bne,a 400049f0 <== NEVER TAKEN 400049b4: ba 10 20 00 clr %i5 <== NOT EXECUTED _RTEMS_Lock_allocator(); 400049b8: 40 00 08 30 call 40006a78 <_RTEMS_Lock_allocator> 400049bc: 01 00 00 00 nop _Malloc_Process_deferred_frees(); 400049c0: 7f ff ff bb call 400048ac <_Malloc_Process_deferred_frees> 400049c4: 01 00 00 00 nop p = _Heap_Allocate_aligned_with_boundary( 400049c8: 96 10 00 1a mov %i2, %o3 400049cc: 94 10 00 19 mov %i1, %o2 400049d0: 92 10 00 18 mov %i0, %o1 400049d4: 40 00 08 9f call 40006c50 <_Heap_Allocate_aligned_with_boundary> 400049d8: 90 10 00 1c mov %i4, %o0 _RTEMS_Unlock_allocator(); 400049dc: 40 00 08 2c call 40006a8c <_RTEMS_Unlock_allocator> 400049e0: ba 10 00 08 mov %o0, %i5 break; 400049e4: 10 bf ff db b 40004950 400049e8: 80 a7 60 00 cmp %i5, 0 return NULL; 400049ec: ba 10 20 00 clr %i5 <== NOT EXECUTED } 400049f0: 81 c7 e0 08 ret <== NOT EXECUTED 400049f4: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED =============================================================================== 40005304 : Heap_Control *heap RTEMS_UNUSED, size_t alloc_size RTEMS_UNUSED ) { return NULL; } 40005304: 81 c3 e0 08 retl <== NOT EXECUTED 40005308: 90 10 20 00 clr %o0 ! 0 <== NOT EXECUTED =============================================================================== 4000d494 : return fcntl_flags; } rtems_libio_t *rtems_libio_allocate( void ) { 4000d494: 9d e3 bf a0 save %sp, -96, %sp rtems_libio_t *iop; rtems_libio_lock(); 4000d498: 7f ff dc ec call 40004848 4000d49c: 01 00 00 00 nop iop = rtems_libio_iop_free_head; 4000d4a0: 03 10 00 4d sethi %hi(0x40013400), %g1 4000d4a4: f0 00 60 c8 ld [ %g1 + 0xc8 ], %i0 ! 400134c8 if ( iop != NULL ) { 4000d4a8: 80 a6 20 00 cmp %i0, 0 4000d4ac: 02 80 00 06 be 4000d4c4 <== NEVER TAKEN 4000d4b0: 86 10 60 c8 or %g1, 0xc8, %g3 void *next; next = iop->data1; 4000d4b4: c4 06 20 28 ld [ %i0 + 0x28 ], %g2 rtems_libio_iop_free_head = next; if ( next == NULL ) { 4000d4b8: 80 a0 a0 00 cmp %g2, 0 4000d4bc: 02 80 00 06 be 4000d4d4 4000d4c0: c4 20 60 c8 st %g2, [ %g1 + 0xc8 ] rtems_libio_iop_free_tail = &rtems_libio_iop_free_head; } } rtems_libio_unlock(); 4000d4c4: 7f ff dc e6 call 4000485c 4000d4c8: 01 00 00 00 nop return iop; } 4000d4cc: 81 c7 e0 08 ret 4000d4d0: 81 e8 00 00 restore rtems_libio_iop_free_tail = &rtems_libio_iop_free_head; 4000d4d4: 03 10 00 47 sethi %hi(0x40011c00), %g1 rtems_libio_unlock(); 4000d4d8: 7f ff dc e1 call 4000485c 4000d4dc: c6 20 61 f0 st %g3, [ %g1 + 0x1f0 ] ! 40011df0 } 4000d4e0: 81 c7 e0 08 ret 4000d4e4: 81 e8 00 00 restore =============================================================================== 400052dc : if (!uses_global_env) { 400052dc: 03 10 00 47 sethi %hi(0x40011c00), %g1 <== NOT EXECUTED 400052e0: 82 10 62 28 or %g1, 0x228, %g1 ! 40011e28 <== NOT EXECUTED 400052e4: 80 a0 40 08 cmp %g1, %o0 <== NOT EXECUTED 400052e8: 02 80 00 05 be 400052fc <== NOT EXECUTED 400052ec: 01 00 00 00 nop <== NOT EXECUTED 400052f0: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 400052f4: 7f ff ff e6 call 4000528c <== NOT EXECUTED 400052f8: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED } } 400052fc: 81 c3 e0 08 retl <== NOT EXECUTED 40005300: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 40004fcc : /* * This is a replaceable stub which opens the console, if present. */ void rtems_libio_post_driver(void) { 40004fcc: 9d e3 bf a0 save %sp, -96, %sp /* * Attempt to open /dev/console. */ if ( open( CONSOLE_DEVICE_NAME, O_RDONLY, 0 ) != STDIN_FILENO ) { 40004fd0: 94 10 20 00 clr %o2 40004fd4: 92 10 20 00 clr %o1 40004fd8: 3b 10 00 40 sethi %hi(0x40010000), %i5 40004fdc: 40 00 00 1a call 40005044 40004fe0: 90 17 63 68 or %i5, 0x368, %o0 ! 40010368 40004fe4: 80 a2 20 00 cmp %o0, 0 40004fe8: 02 80 00 04 be 40004ff8 <== ALWAYS TAKEN 40004fec: 94 10 20 00 clr %o2 if ( open( CONSOLE_DEVICE_NAME, O_WRONLY, 0 ) != STDERR_FILENO ) { _Internal_error( INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILED ); } atexit(rtems_libio_exit); } 40004ff0: 81 c7 e0 08 ret <== NOT EXECUTED 40004ff4: 81 e8 00 00 restore <== NOT EXECUTED if ( open( CONSOLE_DEVICE_NAME, O_WRONLY, 0 ) != STDOUT_FILENO ) { 40004ff8: 92 10 20 01 mov 1, %o1 40004ffc: 40 00 00 12 call 40005044 40005000: 90 17 63 68 or %i5, 0x368, %o0 40005004: 80 a2 20 01 cmp %o0, 1 40005008: 12 80 00 0a bne 40005030 <== NEVER TAKEN 4000500c: 94 10 20 00 clr %o2 if ( open( CONSOLE_DEVICE_NAME, O_WRONLY, 0 ) != STDERR_FILENO ) { 40005010: 92 10 20 01 mov 1, %o1 40005014: 40 00 00 0c call 40005044 40005018: 90 17 63 68 or %i5, 0x368, %o0 4000501c: 80 a2 20 02 cmp %o0, 2 40005020: 12 80 00 06 bne 40005038 <== NEVER TAKEN 40005024: 31 10 00 35 sethi %hi(0x4000d400), %i0 <== NOT EXECUTED atexit(rtems_libio_exit); 40005028: 40 00 25 c5 call 4000e73c <== NOT EXECUTED 4000502c: 91 ee 20 40 restore %i0, 0x40, %o0 _Internal_error( INTERNAL_ERROR_LIBIO_STDOUT_FD_OPEN_FAILED ); 40005030: 40 00 08 af call 400072ec <_Internal_error> <== NOT EXECUTED 40005034: 90 10 20 24 mov 0x24, %o0 <== NOT EXECUTED _Internal_error( INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILED ); 40005038: 40 00 08 ad call 400072ec <_Internal_error> <== NOT EXECUTED 4000503c: 90 10 20 25 mov 0x25, %o0 <== NOT EXECUTED 40005040: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 4000c6a0 : rtems_status_code rtems_libio_set_private_env(void) { 4000c6a0: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED void *ptr = pthread_getspecific(rtems_current_user_env_key); 4000c6a4: 39 10 02 43 sethi %hi(0x40090c00), %i4 <== NOT EXECUTED 4000c6a8: 40 00 31 ca call 40018dd0 <== NOT EXECUTED 4000c6ac: d0 07 21 94 ld [ %i4 + 0x194 ], %o0 ! 40090d94 <== NOT EXECUTED rtems_status_code sc = RTEMS_SUCCESSFUL; rtems_user_env_t *old_env = rtems_current_user_env; bool uses_global_env = old_env == &rtems_global_user_env; if (uses_global_env) { 4000c6b0: 3b 10 02 2e sethi %hi(0x4008b800), %i5 <== NOT EXECUTED 4000c6b4: ba 17 62 78 or %i5, 0x278, %i5 ! 4008ba78 <== NOT EXECUTED 4000c6b8: 80 a2 00 1d cmp %o0, %i5 <== NOT EXECUTED 4000c6bc: 02 80 00 04 be 4000c6cc <== NOT EXECUTED 4000c6c0: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000c6c4: 12 80 00 30 bne 4000c784 <== NOT EXECUTED 4000c6c8: b0 10 20 00 clr %i0 <== NOT EXECUTED Thread_Life_state life_state = 4000c6cc: 40 00 4d 1a call 4001fb34 <_Thread_Set_life_protection> <== NOT EXECUTED 4000c6d0: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED _Thread_Set_life_protection(THREAD_LIFE_PROTECTED); rtems_user_env_t *new_env = calloc(1, sizeof(*new_env)); 4000c6d4: 92 10 20 48 mov 0x48, %o1 <== NOT EXECUTED Thread_Life_state life_state = 4000c6d8: b4 10 00 08 mov %o0, %i2 <== NOT EXECUTED if (sc != RTEMS_SUCCESSFUL) { rtems_libio_free_user_env(new_env); } } else { sc = RTEMS_NO_MEMORY; 4000c6dc: b0 10 20 1a mov 0x1a, %i0 <== NOT EXECUTED rtems_user_env_t *new_env = calloc(1, sizeof(*new_env)); 4000c6e0: 7f ff f7 48 call 4000a400 <== NOT EXECUTED 4000c6e4: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED if (new_env != NULL) { 4000c6e8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000c6ec: 02 80 00 24 be 4000c77c <== NOT EXECUTED 4000c6f0: b6 10 00 08 mov %o0, %i3 <== NOT EXECUTED *new_env = *old_env; 4000c6f4: 94 10 20 48 mov 0x48, %o2 <== NOT EXECUTED 4000c6f8: 40 01 52 36 call 40060fd0 <== NOT EXECUTED 4000c6fc: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED rtems_filesystem_global_location_obtain(&old_env->root_directory); 4000c700: 40 00 03 ea call 4000d6a8 <== NOT EXECUTED 4000c704: 90 07 60 04 add %i5, 4, %o0 <== NOT EXECUTED new_env->root_directory = 4000c708: d0 26 e0 04 st %o0, [ %i3 + 4 ] <== NOT EXECUTED rtems_filesystem_global_location_obtain(&old_env->current_directory); 4000c70c: 40 00 03 e7 call 4000d6a8 <== NOT EXECUTED 4000c710: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if ( 4000c714: c2 06 e0 04 ld [ %i3 + 4 ], %g1 <== NOT EXECUTED new_env->current_directory = 4000c718: d0 26 c0 00 st %o0, [ %i3 ] <== NOT EXECUTED if ( 4000c71c: c4 00 60 10 ld [ %g1 + 0x10 ], %g2 <== NOT EXECUTED 4000c720: 03 10 01 f4 sethi %hi(0x4007d000), %g1 <== NOT EXECUTED 4000c724: 82 10 62 58 or %g1, 0x258, %g1 ! 4007d258 <== NOT EXECUTED 4000c728: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 4000c72c: 22 80 00 0f be,a 4000c768 <== NOT EXECUTED 4000c730: b0 10 20 0d mov 0xd, %i0 <== NOT EXECUTED && !rtems_filesystem_global_location_is_null(new_env->current_directory) 4000c734: c4 02 20 10 ld [ %o0 + 0x10 ], %g2 <== NOT EXECUTED 4000c738: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 4000c73c: 02 80 00 0a be 4000c764 <== NOT EXECUTED 4000c740: d0 07 21 94 ld [ %i4 + 0x194 ], %o0 <== NOT EXECUTED int eno = pthread_setspecific( 4000c744: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 4000c748: 40 00 32 1d call 40018fbc <== NOT EXECUTED 4000c74c: b0 10 20 00 clr %i0 <== NOT EXECUTED if (eno == 0) { 4000c750: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000c754: 02 80 00 0a be 4000c77c <== NOT EXECUTED 4000c758: 01 00 00 00 nop <== NOT EXECUTED 4000c75c: 10 80 00 03 b 4000c768 <== NOT EXECUTED 4000c760: b0 10 20 05 mov 5, %i0 ! 5 <_TLS_Alignment+0x4> <== NOT EXECUTED sc = RTEMS_UNSATISFIED; 4000c764: b0 10 20 0d mov 0xd, %i0 <== NOT EXECUTED if (!uses_global_env) { 4000c768: 80 a6 c0 1d cmp %i3, %i5 <== NOT EXECUTED 4000c76c: 02 80 00 04 be 4000c77c <== NOT EXECUTED 4000c770: 01 00 00 00 nop <== NOT EXECUTED 4000c774: 7f ff ff ad call 4000c628 <== NOT EXECUTED 4000c778: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED } _Thread_Set_life_protection(life_state); 4000c77c: 40 00 4c ee call 4001fb34 <_Thread_Set_life_protection> <== NOT EXECUTED 4000c780: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED } return sc; } 4000c784: 81 c7 e0 08 ret <== NOT EXECUTED 4000c788: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000ba48 : int rtems_libio_to_fcntl_flags( unsigned int flags ) { int fcntl_flags = 0; if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) { 4000ba48: 84 0a 20 06 and %o0, 6, %g2 <== NOT EXECUTED 4000ba4c: 80 a0 a0 06 cmp %g2, 6 <== NOT EXECUTED 4000ba50: 02 80 00 05 be 4000ba64 <== NOT EXECUTED 4000ba54: 82 10 20 02 mov 2, %g1 <== NOT EXECUTED fcntl_flags |= O_RDWR; } else if ( (flags & LIBIO_FLAGS_READ) == LIBIO_FLAGS_READ) { 4000ba58: 80 8a 20 02 btst 2, %o0 <== NOT EXECUTED 4000ba5c: 02 80 00 0b be 4000ba88 <== NOT EXECUTED 4000ba60: 82 10 20 00 clr %g1 <== 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 ) { 4000ba64: 80 8a 20 01 btst 1, %o0 <== NOT EXECUTED 4000ba68: 02 80 00 04 be 4000ba78 <== NOT EXECUTED 4000ba6c: 80 8a 22 00 btst 0x200, %o0 <== NOT EXECUTED fcntl_flags |= O_NONBLOCK; 4000ba70: 05 00 00 10 sethi %hi(0x4000), %g2 <== NOT EXECUTED 4000ba74: 82 10 40 02 or %g1, %g2, %g1 <== NOT EXECUTED } if ( (flags & LIBIO_FLAGS_APPEND) == LIBIO_FLAGS_APPEND ) { 4000ba78: 32 80 00 02 bne,a 4000ba80 <== NOT EXECUTED 4000ba7c: 82 10 60 08 or %g1, 8, %g1 <== NOT EXECUTED fcntl_flags |= O_APPEND; } return fcntl_flags; } 4000ba80: 81 c3 e0 08 retl <== NOT EXECUTED 4000ba84: 90 10 00 01 mov %g1, %o0 <== NOT EXECUTED } else if ( (flags & LIBIO_FLAGS_WRITE) == LIBIO_FLAGS_WRITE) { 4000ba88: 83 32 20 02 srl %o0, 2, %g1 <== NOT EXECUTED 4000ba8c: 10 bf ff f6 b 4000ba64 <== NOT EXECUTED 4000ba90: 82 08 60 01 and %g1, 1, %g1 <== NOT EXECUTED =============================================================================== 4000c9b0 : return (retval); } int rtems_mkdir(const char *path, mode_t mode) { 4000c9b0: 9d e3 bf 40 save %sp, -192, %sp <== NOT EXECUTED int success = 0; char *dup_path = strdup(path); 4000c9b4: 40 01 5d 52 call 40063efc <== NOT EXECUTED 4000c9b8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED if (dup_path != NULL) { 4000c9bc: b8 92 20 00 orcc %o0, 0, %i4 <== NOT EXECUTED 4000c9c0: 02 80 00 6e be 4000cb78 <== NOT EXECUTED 4000c9c4: 01 00 00 00 nop <== NOT EXECUTED if (p[0] == '/') /* Skip leading '/'. */ 4000c9c8: c2 0f 00 00 ldub [ %i4 ], %g1 <== NOT EXECUTED 4000c9cc: 83 28 60 18 sll %g1, 0x18, %g1 <== NOT EXECUTED 4000c9d0: 85 38 60 18 sra %g1, 0x18, %g2 <== NOT EXECUTED 4000c9d4: 80 a0 a0 2f cmp %g2, 0x2f <== NOT EXECUTED 4000c9d8: 12 80 00 05 bne 4000c9ec <== NOT EXECUTED 4000c9dc: ba 10 00 1c mov %i4, %i5 <== NOT EXECUTED 4000c9e0: c2 0f 20 01 ldub [ %i4 + 1 ], %g1 <== NOT EXECUTED ++p; 4000c9e4: ba 07 20 01 add %i4, 1, %i5 <== NOT EXECUTED 4000c9e8: 83 28 60 18 sll %g1, 0x18, %g1 <== NOT EXECUTED if (p[0] == '\0') 4000c9ec: 83 38 60 18 sra %g1, 0x18, %g1 <== NOT EXECUTED 4000c9f0: ba 07 60 01 inc %i5 <== NOT EXECUTED *p = '/'; 4000c9f4: b6 10 20 00 clr %i3 <== NOT EXECUTED 4000c9f8: 84 10 20 01 mov 1, %g2 <== NOT EXECUTED 4000c9fc: b0 10 20 2f mov 0x2f, %i0 <== NOT EXECUTED } else if (!S_ISDIR(sb.st_mode)) { 4000ca00: 23 00 00 3c sethi %hi(0xf000), %l1 <== NOT EXECUTED if (p[0] == '\0') 4000ca04: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000ca08: 02 80 00 18 be 4000ca68 <== NOT EXECUTED 4000ca0c: 21 00 00 10 sethi %hi(0x4000), %l0 <== NOT EXECUTED else if (p[0] != '/') 4000ca10: 80 a0 60 2f cmp %g1, 0x2f <== NOT EXECUTED 4000ca14: 12 80 00 0f bne 4000ca50 <== NOT EXECUTED 4000ca18: 80 a0 a0 00 cmp %g2, 0 <== NOT EXECUTED *p = '\0'; 4000ca1c: c0 2f 7f ff clrb [ %i5 + -1 ] <== NOT EXECUTED if (first) { 4000ca20: 12 80 00 5c bne 4000cb90 <== NOT EXECUTED 4000ca24: f4 0f 40 00 ldub [ %i5 ], %i2 <== NOT EXECUTED if (last) 4000ca28: 80 8e a0 ff btst 0xff, %i2 <== NOT EXECUTED 4000ca2c: 02 80 00 17 be 4000ca88 <== NOT EXECUTED 4000ca30: 92 10 21 ff mov 0x1ff, %o1 <== NOT EXECUTED if (mkdir(path, last ? omode : S_IRWXU | S_IRWXG | S_IRWXO) < 0) { 4000ca34: 7f ff fc ea call 4000bddc <== NOT EXECUTED 4000ca38: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000ca3c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000ca40: 06 80 00 1f bl 4000cabc <== NOT EXECUTED 4000ca44: b4 10 20 00 clr %i2 <== NOT EXECUTED *p = '/'; 4000ca48: f0 2f 7f ff stb %i0, [ %i5 + -1 ] <== NOT EXECUTED 4000ca4c: 84 10 20 00 clr %g2 <== NOT EXECUTED 4000ca50: c2 0f 40 00 ldub [ %i5 ], %g1 <== NOT EXECUTED 4000ca54: 83 28 60 18 sll %g1, 0x18, %g1 <== NOT EXECUTED if (p[0] == '\0') 4000ca58: 83 38 60 18 sra %g1, 0x18, %g1 <== NOT EXECUTED 4000ca5c: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000ca60: 12 bf ff ec bne 4000ca10 <== NOT EXECUTED 4000ca64: ba 07 60 01 inc %i5 <== NOT EXECUTED if (first) { 4000ca68: 80 a0 a0 00 cmp %g2, 0 <== NOT EXECUTED 4000ca6c: 02 80 00 07 be 4000ca88 <== NOT EXECUTED 4000ca70: 01 00 00 00 nop <== NOT EXECUTED oumask = umask(0); 4000ca74: 40 00 0e 66 call 4001040c <== NOT EXECUTED 4000ca78: 90 10 20 00 clr %o0 ! 0 <== NOT EXECUTED 4000ca7c: b6 10 00 08 mov %o0, %i3 <== NOT EXECUTED (void)umask(numask); 4000ca80: 40 00 0e 63 call 4001040c <== NOT EXECUTED 4000ca84: 90 0a 3f 3f and %o0, -193, %o0 <== NOT EXECUTED (void)umask(oumask); 4000ca88: 40 00 0e 61 call 4001040c <== NOT EXECUTED 4000ca8c: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED if (mkdir(path, last ? omode : S_IRWXU | S_IRWXG | S_IRWXO) < 0) { 4000ca90: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000ca94: 7f ff fc d2 call 4000bddc <== NOT EXECUTED 4000ca98: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000ca9c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000caa0: 06 80 00 07 bl 4000cabc <== NOT EXECUTED 4000caa4: b4 10 20 01 mov 1, %i2 <== NOT EXECUTED (void)umask(oumask); 4000caa8: b0 10 20 00 clr %i0 <== NOT EXECUTED success = build(dup_path, mode); free(dup_path); 4000caac: 7f ff fa f5 call 4000b680 <== NOT EXECUTED 4000cab0: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000cab4: 81 c7 e0 08 ret <== NOT EXECUTED 4000cab8: 81 e8 00 00 restore <== NOT EXECUTED if (errno == EEXIST || errno == EISDIR) { 4000cabc: 40 01 3f 96 call 4005c914 <__errno> <== NOT EXECUTED 4000cac0: 01 00 00 00 nop <== NOT EXECUTED 4000cac4: c2 02 00 00 ld [ %o0 ], %g1 <== NOT EXECUTED 4000cac8: 80 a0 60 11 cmp %g1, 0x11 <== NOT EXECUTED 4000cacc: 02 80 00 08 be 4000caec <== NOT EXECUTED 4000cad0: 92 07 bf a0 add %fp, -96, %o1 <== NOT EXECUTED 4000cad4: 40 01 3f 90 call 4005c914 <__errno> <== NOT EXECUTED 4000cad8: 01 00 00 00 nop <== NOT EXECUTED 4000cadc: c2 02 00 00 ld [ %o0 ], %g1 <== NOT EXECUTED 4000cae0: 80 a0 60 15 cmp %g1, 0x15 <== NOT EXECUTED 4000cae4: 12 80 00 0f bne 4000cb20 <== NOT EXECUTED 4000cae8: 92 07 bf a0 add %fp, -96, %o1 <== NOT EXECUTED if (stat(path, &sb) < 0) { 4000caec: 40 00 00 36 call 4000cbc4 <== NOT EXECUTED 4000caf0: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000caf4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000caf8: 06 80 00 0a bl 4000cb20 <== NOT EXECUTED 4000cafc: c2 07 bf ac ld [ %fp + -84 ], %g1 <== NOT EXECUTED } else if (!S_ISDIR(sb.st_mode)) { 4000cb00: 82 08 40 11 and %g1, %l1, %g1 <== NOT EXECUTED 4000cb04: 80 a0 40 10 cmp %g1, %l0 <== NOT EXECUTED 4000cb08: 12 80 00 10 bne 4000cb48 <== NOT EXECUTED 4000cb0c: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED if (last) 4000cb10: 32 bf ff e7 bne,a 4000caac <== NOT EXECUTED 4000cb14: b0 10 20 00 clr %i0 <== NOT EXECUTED *p = '/'; 4000cb18: 10 bf ff cd b 4000ca4c <== NOT EXECUTED 4000cb1c: f0 2f 7f ff stb %i0, [ %i5 + -1 ] <== NOT EXECUTED if (!first && !last) 4000cb20: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 4000cb24: 32 80 00 17 bne,a 4000cb80 <== NOT EXECUTED 4000cb28: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED (void)umask(oumask); 4000cb2c: 40 00 0e 38 call 4001040c <== NOT EXECUTED 4000cb30: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED 4000cb34: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED free(dup_path); 4000cb38: 7f ff fa d2 call 4000b680 <== NOT EXECUTED 4000cb3c: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000cb40: 81 c7 e0 08 ret <== NOT EXECUTED 4000cb44: 81 e8 00 00 restore <== NOT EXECUTED if (last) 4000cb48: 02 80 00 07 be 4000cb64 <== NOT EXECUTED 4000cb4c: 01 00 00 00 nop <== NOT EXECUTED errno = EEXIST; 4000cb50: 40 01 3f 71 call 4005c914 <__errno> <== NOT EXECUTED 4000cb54: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 4000cb58: 82 10 20 11 mov 0x11, %g1 <== NOT EXECUTED 4000cb5c: 10 bf ff d4 b 4000caac <== NOT EXECUTED 4000cb60: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED errno = ENOTDIR; 4000cb64: 40 01 3f 6c call 4005c914 <__errno> <== NOT EXECUTED 4000cb68: 01 00 00 00 nop <== NOT EXECUTED 4000cb6c: 82 10 20 14 mov 0x14, %g1 ! 14 <_TLS_Alignment+0x13> <== NOT EXECUTED 4000cb70: 10 bf ff ef b 4000cb2c <== NOT EXECUTED 4000cb74: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } return success != 0 ? 0 : -1; 4000cb78: 81 c7 e0 08 ret <== NOT EXECUTED 4000cb7c: 91 e8 3f ff restore %g0, -1, %o0 <== NOT EXECUTED free(dup_path); 4000cb80: 7f ff fa c0 call 4000b680 <== NOT EXECUTED 4000cb84: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED } 4000cb88: 81 c7 e0 08 ret <== NOT EXECUTED 4000cb8c: 81 e8 00 00 restore <== NOT EXECUTED oumask = umask(0); 4000cb90: 40 00 0e 1f call 4001040c <== NOT EXECUTED 4000cb94: 90 10 20 00 clr %o0 <== NOT EXECUTED 4000cb98: b6 10 00 08 mov %o0, %i3 <== NOT EXECUTED (void)umask(numask); 4000cb9c: 40 00 0e 1c call 4001040c <== NOT EXECUTED 4000cba0: 90 0a 3f 3f and %o0, -193, %o0 <== NOT EXECUTED if (last) 4000cba4: 10 bf ff a2 b 4000ca2c <== NOT EXECUTED 4000cba8: 80 8e a0 ff btst 0xff, %i2 <== NOT EXECUTED =============================================================================== 40042568 : } void rtems_print_printer_fprintf(rtems_printer *printer, FILE *file) { printer->context = file; printer->printer = rtems_fprintf_plugin; 40042568: 03 10 01 09 sethi %hi(0x40042400), %g1 <== NOT EXECUTED printer->context = file; 4004256c: d2 22 00 00 st %o1, [ %o0 ] <== NOT EXECUTED printer->printer = rtems_fprintf_plugin; 40042570: 82 10 61 5c or %g1, 0x15c, %g1 <== NOT EXECUTED } 40042574: 81 c3 e0 08 retl <== NOT EXECUTED 40042578: c2 22 20 04 st %g1, [ %o0 + 4 ] <== NOT EXECUTED =============================================================================== 40042548 : } void rtems_print_printer_printf(rtems_printer *printer) { printer->context = NULL; printer->printer = rtems_printf_plugin; 40042548: 03 10 01 09 sethi %hi(0x40042400), %g1 <== NOT EXECUTED printer->context = NULL; 4004254c: c0 22 00 00 clr [ %o0 ] <== NOT EXECUTED printer->printer = rtems_printf_plugin; 40042550: 82 10 61 34 or %g1, 0x134, %g1 <== NOT EXECUTED } 40042554: 81 c3 e0 08 retl <== NOT EXECUTED 40042558: c2 22 20 04 st %g1, [ %o0 + 4 ] <== NOT EXECUTED =============================================================================== 4000d69c : int rtems_printf( const rtems_printer *printer, const char *format, ... ) { 4000d69c: 9d e3 bf 98 save %sp, -104, %sp int len = 0; if ( rtems_print_printer_valid( printer ) ) { va_list ap; va_start( ap, format ); 4000d6a0: f4 27 a0 4c st %i2, [ %fp + 0x4c ] { 4000d6a4: 82 10 00 18 mov %i0, %g1 va_start( ap, format ); 4000d6a8: f6 27 a0 50 st %i3, [ %fp + 0x50 ] int len = 0; 4000d6ac: b0 10 20 00 clr %i0 va_start( ap, format ); 4000d6b0: f8 27 a0 54 st %i4, [ %fp + 0x54 ] 4000d6b4: 80 a0 60 00 cmp %g1, 0 4000d6b8: 02 80 00 0b be 4000d6e4 <== NEVER TAKEN 4000d6bc: fa 27 a0 58 st %i5, [ %fp + 0x58 ] 4000d6c0: c4 00 60 04 ld [ %g1 + 4 ], %g2 4000d6c4: 80 a0 a0 00 cmp %g2, 0 4000d6c8: 02 80 00 07 be 4000d6e4 <== NEVER TAKEN 4000d6cc: 94 07 a0 4c add %fp, 0x4c, %o2 len = printer->printer( printer->context, format, ap ); 4000d6d0: d0 00 40 00 ld [ %g1 ], %o0 4000d6d4: 92 10 00 19 mov %i1, %o1 4000d6d8: 9f c0 80 00 call %g2 4000d6dc: d4 27 bf fc st %o2, [ %fp + -4 ] 4000d6e0: b0 10 00 08 mov %o0, %i0 va_end( ap ); } return len; } 4000d6e4: 81 c7 e0 08 ret 4000d6e8: 81 e8 00 00 restore =============================================================================== 4002e8c0 : 4002e8c0: 40 02 e7 f8 00 00 00 00 00 00 00 00 40 02 e8 00 @...........@... 4002e8d0: 00 00 00 32 00 00 00 32 40 02 e8 08 00 00 00 4b ...2...2@......K 4002e8e0: 00 00 00 4b 40 02 e8 10 00 00 00 6e 00 00 00 6e ...K@......n...n 4002e8f0: 40 02 e8 18 00 00 00 86 00 00 00 86 40 02 e8 20 @...........@.. 4002e900: 00 00 00 96 00 00 00 96 40 02 e8 28 00 00 00 c8 ........@..(.... 4002e910: 00 00 00 c8 40 02 e8 30 00 00 01 2c 00 00 01 2c ....@..0...,..., 4002e920: 40 02 e8 38 00 00 02 58 00 00 02 58 40 02 e8 40 @..8...X...X@..@ 4002e930: 00 00 04 b0 00 00 04 b0 40 02 e8 48 00 00 07 08 ........@..H.... 4002e940: 00 00 07 08 40 02 e8 50 00 00 09 60 00 00 09 60 ....@..P...`...` 4002e950: 40 02 e8 58 00 00 12 c0 00 00 12 c0 40 02 e8 60 @..X........@..` 4002e960: 00 00 25 80 00 00 25 80 40 02 e8 68 00 00 4b 00 ..%...%.@..h..K. 4002e970: 00 00 4b 00 40 02 e8 70 00 00 96 00 00 00 96 00 ..K.@..p........ 4002e980: 40 02 e8 78 00 00 1c 20 00 00 1c 20 40 02 e8 80 @..x... ... @... 4002e990: 00 00 38 40 00 00 38 40 40 02 e8 88 00 00 70 80 ..8@..8@@.....p. 4002e9a0: 00 00 70 80 40 02 e8 90 00 00 e1 00 00 00 e1 00 ..p.@........... 4002e9b0: 40 02 e8 98 00 01 2c 00 00 01 2c 00 40 02 e8 a0 @.....,...,.@... 4002e9c0: 00 01 c2 00 00 01 c2 00 40 02 e8 a8 00 03 84 00 ........@....... 4002e9d0: 00 03 84 00 40 02 e8 b0 00 07 08 00 00 07 08 00 ....@........... 4002e9e0: 40 02 e8 b8 00 0e 10 00 00 0e 10 00 00 00 00 00 @............... ... 4002e9f8: 74 65 72 6d 69 6f 73 20 69 6e 70 75 74 00 00 00 termios input... 4002ea08: 74 65 72 6d 69 6f 73 20 6f 75 74 70 75 74 00 00 termios output.. 4002ea18: 74 65 72 6d 69 6f 73 20 72 61 77 20 6f 75 74 70 termios raw outp 4002ea28: 75 74 00 00 00 00 00 00 74 65 72 6d 69 6f 73 20 ut......termios 4002ea38: 64 65 76 69 63 65 00 00 74 65 72 6d 69 6f 73 20 device..termios 4002ea48: 72 61 77 20 69 6e 70 75 74 00 00 00 00 00 00 00 raw input....... 4002ea58: 08 00 00 00 00 00 00 00 08 20 08 00 ......... .. =============================================================================== 4001cb58 : rtems_termios_baud_t termios_baud ) { int baud_index; switch (termios_baud) { 4001cb58: 05 00 00 04 sethi %hi(0x1000), %g2 <== NOT EXECUTED 4001cb5c: 84 10 a2 c0 or %g2, 0x2c0, %g2 ! 12c0 <_Configuration_Interrupt_stack_size+0x2c0> <== NOT EXECUTED 4001cb60: 80 a2 00 02 cmp %o0, %g2 <== NOT EXECUTED 4001cb64: 02 80 00 7d be 4001cd58 <== NOT EXECUTED 4001cb68: 82 10 00 08 mov %o0, %g1 <== NOT EXECUTED 4001cb6c: 18 80 00 14 bgu 4001cbbc <== NOT EXECUTED 4001cb70: 80 a2 20 96 cmp %o0, 0x96 <== NOT EXECUTED 4001cb74: 02 80 00 7b be 4001cd60 <== NOT EXECUTED 4001cb78: 01 00 00 00 nop <== NOT EXECUTED 4001cb7c: 08 80 00 2a bleu 4001cc24 <== NOT EXECUTED 4001cb80: 80 a2 22 58 cmp %o0, 0x258 <== NOT EXECUTED 4001cb84: 02 80 00 73 be 4001cd50 <== NOT EXECUTED 4001cb88: 01 00 00 00 nop <== NOT EXECUTED 4001cb8c: 08 80 00 46 bleu 4001cca4 <== NOT EXECUTED 4001cb90: 80 a0 67 08 cmp %g1, 0x708 <== NOT EXECUTED 4001cb94: 02 80 00 22 be 4001cc1c <== NOT EXECUTED 4001cb98: 90 10 20 0a mov 0xa, %o0 <== NOT EXECUTED 4001cb9c: 80 a0 69 60 cmp %g1, 0x960 <== NOT EXECUTED 4001cba0: 02 80 00 1f be 4001cc1c <== NOT EXECUTED 4001cba4: 90 10 20 0b mov 0xb, %o0 <== NOT EXECUTED 4001cba8: 80 a0 64 b0 cmp %g1, 0x4b0 <== NOT EXECUTED 4001cbac: 02 80 00 1c be 4001cc1c <== NOT EXECUTED 4001cbb0: 90 10 20 09 mov 9, %o0 <== NOT EXECUTED case B921600: baud_index = 24; break; default: baud_index = -1; break; } return baud_index; } 4001cbb4: 81 c3 e0 08 retl <== NOT EXECUTED 4001cbb8: 90 10 3f ff mov -1, %o0 <== NOT EXECUTED switch (termios_baud) { 4001cbbc: 05 00 00 25 sethi %hi(0x9400), %g2 <== NOT EXECUTED 4001cbc0: 84 10 a2 00 or %g2, 0x200, %g2 ! 9600 <_Configuration_Interrupt_stack_size+0x8600> <== NOT EXECUTED 4001cbc4: 80 a2 00 02 cmp %o0, %g2 <== NOT EXECUTED 4001cbc8: 02 80 00 60 be 4001cd48 <== NOT EXECUTED 4001cbcc: 01 00 00 00 nop <== NOT EXECUTED 4001cbd0: 08 80 00 22 bleu 4001cc58 <== NOT EXECUTED 4001cbd4: 05 00 00 70 sethi %hi(0x1c000), %g2 <== NOT EXECUTED 4001cbd8: 84 10 a2 00 or %g2, 0x200, %g2 ! 1c200 <_Configuration_Interrupt_stack_size+0x1b200> <== NOT EXECUTED 4001cbdc: 80 a2 00 02 cmp %o0, %g2 <== NOT EXECUTED 4001cbe0: 02 80 00 62 be 4001cd68 <== NOT EXECUTED 4001cbe4: 01 00 00 00 nop <== NOT EXECUTED 4001cbe8: 08 80 00 37 bleu 4001ccc4 <== NOT EXECUTED 4001cbec: 05 00 01 c2 sethi %hi(0x70800), %g2 <== NOT EXECUTED 4001cbf0: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4001cbf4: 02 80 00 0a be 4001cc1c <== NOT EXECUTED 4001cbf8: 90 10 20 17 mov 0x17, %o0 <== NOT EXECUTED 4001cbfc: 05 00 03 84 sethi %hi(0xe1000), %g2 <== NOT EXECUTED 4001cc00: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4001cc04: 02 80 00 06 be 4001cc1c <== NOT EXECUTED 4001cc08: 90 10 20 18 mov 0x18, %o0 <== NOT EXECUTED 4001cc0c: 05 00 00 e1 sethi %hi(0x38400), %g2 <== NOT EXECUTED 4001cc10: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4001cc14: 12 bf ff e8 bne 4001cbb4 <== NOT EXECUTED 4001cc18: 90 10 20 16 mov 0x16, %o0 <== NOT EXECUTED 4001cc1c: 81 c3 e0 08 retl <== NOT EXECUTED 4001cc20: 01 00 00 00 nop <== NOT EXECUTED 4001cc24: 80 a2 20 4b cmp %o0, 0x4b <== NOT EXECUTED 4001cc28: 02 80 00 46 be 4001cd40 <== NOT EXECUTED 4001cc2c: 01 00 00 00 nop <== NOT EXECUTED 4001cc30: 18 80 00 3b bgu 4001cd1c <== NOT EXECUTED 4001cc34: 80 a0 60 6e cmp %g1, 0x6e <== NOT EXECUTED 4001cc38: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4001cc3c: 02 bf ff f8 be 4001cc1c <== NOT EXECUTED 4001cc40: 90 10 20 00 clr %o0 <== NOT EXECUTED 4001cc44: 80 a0 60 32 cmp %g1, 0x32 <== NOT EXECUTED 4001cc48: 12 bf ff db bne 4001cbb4 <== NOT EXECUTED 4001cc4c: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED } 4001cc50: 81 c3 e0 08 retl <== NOT EXECUTED 4001cc54: 01 00 00 00 nop <== NOT EXECUTED switch (termios_baud) { 4001cc58: 05 00 00 0e sethi %hi(0x3800), %g2 <== NOT EXECUTED 4001cc5c: 84 10 a0 40 or %g2, 0x40, %g2 ! 3840 <_Configuration_Interrupt_stack_size+0x2840> <== NOT EXECUTED 4001cc60: 80 a2 00 02 cmp %o0, %g2 <== NOT EXECUTED 4001cc64: 02 80 00 35 be 4001cd38 <== NOT EXECUTED 4001cc68: 01 00 00 00 nop <== NOT EXECUTED 4001cc6c: 18 80 00 21 bgu 4001ccf0 <== NOT EXECUTED 4001cc70: 05 00 00 12 sethi %hi(0x4800), %g2 <== NOT EXECUTED 4001cc74: 05 00 00 07 sethi %hi(0x1c00), %g2 <== NOT EXECUTED 4001cc78: 84 10 a0 20 or %g2, 0x20, %g2 ! 1c20 <_Configuration_Interrupt_stack_size+0xc20> <== NOT EXECUTED 4001cc7c: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4001cc80: 02 bf ff e7 be 4001cc1c <== NOT EXECUTED 4001cc84: 90 10 20 10 mov 0x10, %o0 <== NOT EXECUTED 4001cc88: 05 00 00 09 sethi %hi(0x2400), %g2 <== NOT EXECUTED 4001cc8c: 84 10 a1 80 or %g2, 0x180, %g2 ! 2580 <_Configuration_Interrupt_stack_size+0x1580> <== NOT EXECUTED 4001cc90: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4001cc94: 12 bf ff c8 bne 4001cbb4 <== NOT EXECUTED 4001cc98: 90 10 20 0d mov 0xd, %o0 <== NOT EXECUTED } 4001cc9c: 81 c3 e0 08 retl <== NOT EXECUTED 4001cca0: 01 00 00 00 nop <== NOT EXECUTED switch (termios_baud) { 4001cca4: 80 a0 60 c8 cmp %g1, 0xc8 <== NOT EXECUTED 4001cca8: 02 bf ff dd be 4001cc1c <== NOT EXECUTED 4001ccac: 90 10 20 06 mov 6, %o0 <== NOT EXECUTED 4001ccb0: 80 a0 61 2c cmp %g1, 0x12c <== NOT EXECUTED 4001ccb4: 12 bf ff c0 bne 4001cbb4 <== NOT EXECUTED 4001ccb8: 90 10 20 07 mov 7, %o0 <== NOT EXECUTED } 4001ccbc: 81 c3 e0 08 retl <== NOT EXECUTED 4001ccc0: 01 00 00 00 nop <== NOT EXECUTED switch (termios_baud) { 4001ccc4: 05 00 00 38 sethi %hi(0xe000), %g2 <== NOT EXECUTED 4001ccc8: 84 10 a1 00 or %g2, 0x100, %g2 ! e100 <_Configuration_Interrupt_stack_size+0xd100> <== NOT EXECUTED 4001cccc: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4001ccd0: 02 bf ff d3 be 4001cc1c <== NOT EXECUTED 4001ccd4: 90 10 20 13 mov 0x13, %o0 <== NOT EXECUTED 4001ccd8: 05 00 00 4b sethi %hi(0x12c00), %g2 <== NOT EXECUTED 4001ccdc: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4001cce0: 12 bf ff b5 bne 4001cbb4 <== NOT EXECUTED 4001cce4: 90 10 20 14 mov 0x14, %o0 <== NOT EXECUTED } 4001cce8: 81 c3 e0 08 retl <== NOT EXECUTED 4001ccec: 01 00 00 00 nop <== NOT EXECUTED switch (termios_baud) { 4001ccf0: 84 10 a3 00 or %g2, 0x300, %g2 <== NOT EXECUTED 4001ccf4: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4001ccf8: 02 bf ff c9 be 4001cc1c <== NOT EXECUTED 4001ccfc: 90 10 20 0e mov 0xe, %o0 <== NOT EXECUTED 4001cd00: 05 00 00 1c sethi %hi(0x7000), %g2 <== NOT EXECUTED 4001cd04: 84 10 a0 80 or %g2, 0x80, %g2 ! 7080 <_Configuration_Interrupt_stack_size+0x6080> <== NOT EXECUTED 4001cd08: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4001cd0c: 12 bf ff aa bne 4001cbb4 <== NOT EXECUTED 4001cd10: 90 10 20 12 mov 0x12, %o0 <== NOT EXECUTED } 4001cd14: 81 c3 e0 08 retl <== NOT EXECUTED 4001cd18: 01 00 00 00 nop <== NOT EXECUTED switch (termios_baud) { 4001cd1c: 02 bf ff c0 be 4001cc1c <== NOT EXECUTED 4001cd20: 90 10 20 03 mov 3, %o0 ! 3 <_TLS_Alignment+0x2> <== NOT EXECUTED 4001cd24: 80 a0 60 86 cmp %g1, 0x86 <== NOT EXECUTED 4001cd28: 12 bf ff a3 bne 4001cbb4 <== NOT EXECUTED 4001cd2c: 90 10 20 04 mov 4, %o0 <== NOT EXECUTED } 4001cd30: 81 c3 e0 08 retl <== NOT EXECUTED 4001cd34: 01 00 00 00 nop <== NOT EXECUTED case B14400: baud_index = 17; break; 4001cd38: 81 c3 e0 08 retl <== NOT EXECUTED 4001cd3c: 90 10 20 11 mov 0x11, %o0 ! 11 <_TLS_Alignment+0x10> <== NOT EXECUTED case B75: baud_index = 2; break; 4001cd40: 81 c3 e0 08 retl <== NOT EXECUTED 4001cd44: 90 10 20 02 mov 2, %o0 <== NOT EXECUTED case B38400: baud_index = 15; break; 4001cd48: 81 c3 e0 08 retl <== NOT EXECUTED 4001cd4c: 90 10 20 0f mov 0xf, %o0 <== NOT EXECUTED case B600: baud_index = 8; break; 4001cd50: 81 c3 e0 08 retl <== NOT EXECUTED 4001cd54: 90 10 20 08 mov 8, %o0 <== NOT EXECUTED case B4800: baud_index = 12; break; 4001cd58: 81 c3 e0 08 retl <== NOT EXECUTED 4001cd5c: 90 10 20 0c mov 0xc, %o0 <== NOT EXECUTED case B150: baud_index = 5; break; 4001cd60: 81 c3 e0 08 retl <== NOT EXECUTED 4001cd64: 90 10 20 05 mov 5, %o0 <== NOT EXECUTED case B115200: baud_index = 21; break; 4001cd68: 81 c3 e0 08 retl <== NOT EXECUTED 4001cd6c: 90 10 20 15 mov 0x15, %o0 <== NOT EXECUTED =============================================================================== 4000cbcc : { 4000cbcc: 9d e3 bf a0 save %sp, -96, %sp new_device_node = calloc (1, sizeof(*new_device_node)); 4000cbd0: 92 10 20 20 mov 0x20, %o1 4000cbd4: 7f ff f1 85 call 400091e8 4000cbd8: 90 10 20 01 mov 1, %o0 return RTEMS_NO_MEMORY; 4000cbdc: 82 10 20 1a mov 0x1a, %g1 if (new_device_node == NULL) { 4000cbe0: 80 a2 20 00 cmp %o0, 0 4000cbe4: 02 80 00 10 be 4000cc24 <== NEVER TAKEN 4000cbe8: ba 10 00 08 mov %o0, %i5 new_device_node->handler = handler; 4000cbec: f2 22 20 10 st %i1, [ %o0 + 0x10 ] rv = IMFS_make_generic_node( 4000cbf0: 96 10 00 08 mov %o0, %o3 new_device_node->flow = flow; 4000cbf4: f4 22 20 14 st %i2, [ %o0 + 0x14 ] rv = IMFS_make_generic_node( 4000cbf8: 15 10 00 ba sethi %hi(0x4002e800), %o2 new_device_node->context = context; 4000cbfc: f6 22 20 18 st %i3, [ %o0 + 0x18 ] rv = IMFS_make_generic_node( 4000cc00: 94 12 a2 a4 or %o2, 0x2a4, %o2 new_device_node->tty = NULL; 4000cc04: c0 22 20 1c clr [ %o0 + 0x1c ] rv = IMFS_make_generic_node( 4000cc08: 13 00 00 08 sethi %hi(0x2000), %o1 4000cc0c: 90 10 00 18 mov %i0, %o0 4000cc10: 40 00 31 fc call 40019400 4000cc14: 92 12 61 ff or %o1, 0x1ff, %o1 if (rv != 0) { 4000cc18: 80 a2 20 00 cmp %o0, 0 4000cc1c: 12 80 00 04 bne 4000cc2c <== NEVER TAKEN 4000cc20: 82 10 20 00 clr %g1 } 4000cc24: 81 c7 e0 08 ret 4000cc28: 91 e8 00 01 restore %g0, %g1, %o0 free (new_device_node); 4000cc2c: 7f ff f1 94 call 4000927c <== NOT EXECUTED 4000cc30: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED return RTEMS_UNSATISFIED; 4000cc34: 82 10 20 0d mov 0xd, %g1 <== NOT EXECUTED } 4000cc38: 81 c7 e0 08 ret <== NOT EXECUTED 4000cc3c: 91 e8 00 01 restore %g0, %g1, %o0 <== NOT EXECUTED =============================================================================== 4000b014 : __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000b014: 91 d0 20 09 ta 9 <== NOT EXECUTED rtems_termios_device_lock_acquire_default( rtems_termios_device_context *ctx, rtems_interrupt_lock_context *lock_context ) { rtems_interrupt_lock_acquire (&ctx->lock.interrupt, lock_context); 4000b018: c2 22 40 00 st %g1, [ %o1 ] } 4000b01c: 81 c3 e0 08 retl 4000b020: 01 00 00 00 nop =============================================================================== 4000b024 : register uint32_t _psr __asm__("g1") = psr; /* input to trap handler */ 4000b024: c2 02 40 00 ld [ %o1 ], %g1 <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000b028: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000b02c: 01 00 00 00 nop rtems_termios_device_context *ctx, rtems_interrupt_lock_context *lock_context ) { rtems_interrupt_lock_release (&ctx->lock.interrupt, lock_context); } 4000b030: 81 c3 e0 08 retl 4000b034: 01 00 00 00 nop =============================================================================== 4000d264 : { 4000d264: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED if (rtems_termios_linesw[tty->t_line].l_rint != NULL) { 4000d268: c2 06 21 5c ld [ %i0 + 0x15c ], %g1 <== NOT EXECUTED 4000d26c: 83 28 60 05 sll %g1, 5, %g1 <== NOT EXECUTED 4000d270: 39 10 00 d0 sethi %hi(0x40034000), %i4 <== NOT EXECUTED 4000d274: b8 17 21 d0 or %i4, 0x1d0, %i4 ! 400341d0 <== NOT EXECUTED 4000d278: 82 07 00 01 add %i4, %g1, %g1 <== NOT EXECUTED 4000d27c: c2 00 60 10 ld [ %g1 + 0x10 ], %g1 <== NOT EXECUTED 4000d280: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d284: 02 80 00 25 be 4000d318 <== NOT EXECUTED 4000d288: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED while (len--) { 4000d28c: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 4000d290: 22 80 00 0f be,a 4000d2cc <== NOT EXECUTED 4000d294: c2 07 61 6c ld [ %i5 + 0x16c ], %g1 <== NOT EXECUTED 4000d298: 10 80 00 05 b 4000d2ac <== NOT EXECUTED 4000d29c: b4 06 40 1a add %i1, %i2, %i2 <== NOT EXECUTED 4000d2a0: 83 28 60 05 sll %g1, 5, %g1 <== NOT EXECUTED 4000d2a4: 82 07 00 01 add %i4, %g1, %g1 <== NOT EXECUTED 4000d2a8: c2 00 60 10 ld [ %g1 + 0x10 ], %g1 <== NOT EXECUTED c = *buf++; 4000d2ac: b2 06 60 01 inc %i1 <== NOT EXECUTED rtems_termios_linesw[tty->t_line].l_rint(c,tty); 4000d2b0: d0 4e 7f ff ldsb [ %i1 + -1 ], %o0 <== NOT EXECUTED 4000d2b4: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d2b8: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED while (len--) { 4000d2bc: 80 a6 40 1a cmp %i1, %i2 <== NOT EXECUTED 4000d2c0: 32 bf ff f8 bne,a 4000d2a0 <== NOT EXECUTED 4000d2c4: c2 07 61 5c ld [ %i5 + 0x15c ], %g1 <== NOT EXECUTED if (tty->tty_rcv.sw_pfn != NULL && !tty->tty_rcvwakeup) { 4000d2c8: c2 07 61 6c ld [ %i5 + 0x16c ], %g1 <== NOT EXECUTED 4000d2cc: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d2d0: 02 80 00 0a be 4000d2f8 <== NOT EXECUTED 4000d2d4: b0 10 20 00 clr %i0 <== NOT EXECUTED 4000d2d8: c4 0f 61 74 ldub [ %i5 + 0x174 ], %g2 <== NOT EXECUTED 4000d2dc: 80 a0 a0 00 cmp %g2, 0 <== NOT EXECUTED 4000d2e0: 12 80 00 06 bne 4000d2f8 <== NOT EXECUTED 4000d2e4: 84 10 20 01 mov 1, %g2 <== NOT EXECUTED tty->tty_rcvwakeup = true; 4000d2e8: c4 2f 61 74 stb %g2, [ %i5 + 0x174 ] <== NOT EXECUTED (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 4000d2ec: 90 07 60 50 add %i5, 0x50, %o0 <== NOT EXECUTED 4000d2f0: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d2f4: d2 07 61 70 ld [ %i5 + 0x170 ], %o1 <== NOT EXECUTED 4000d2f8: 81 c7 e0 08 ret <== NOT EXECUTED 4000d2fc: 81 e8 00 00 restore <== NOT EXECUTED tty->rawInBufDropped += dropped; 4000d300: 82 00 40 18 add %g1, %i0, %g1 <== NOT EXECUTED 4000d304: c2 27 60 b4 st %g1, [ %i5 + 0xb4 ] <== NOT EXECUTED _Semaphore_Post_binary( &binary_semaphore->Semaphore ); 4000d308: 40 00 17 03 call 40012f14 <_Semaphore_Post_binary> <== NOT EXECUTED 4000d30c: 90 07 60 90 add %i5, 0x90, %o0 <== NOT EXECUTED } 4000d310: 81 c7 e0 08 ret <== NOT EXECUTED 4000d314: 81 e8 00 00 restore <== NOT EXECUTED rtems_termios_device_context *ctx = tty->device_context; 4000d318: f8 06 21 7c ld [ %i0 + 0x17c ], %i4 <== NOT EXECUTED 4000d31c: b4 06 40 1a add %i1, %i2, %i2 <== NOT EXECUTED bool flow_rcv = false; /* true, if flow control char received */ 4000d320: a6 10 20 00 clr %l3 <== NOT EXECUTED int dropped = 0; 4000d324: b0 10 20 00 clr %i0 <== NOT EXECUTED 4000d328: a2 10 20 01 mov 1, %l1 <== NOT EXECUTED (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 4000d32c: a0 07 60 50 add %i5, 0x50, %l0 <== NOT EXECUTED (void *)&(tty->termios.c_cc[VSTOP]), 1); 4000d330: a4 07 60 6d add %i5, 0x6d, %l2 <== NOT EXECUTED while (len--) { 4000d334: 80 a6 40 1a cmp %i1, %i2 <== NOT EXECUTED 4000d338: 22 bf ff f2 be,a 4000d300 <== NOT EXECUTED 4000d33c: c2 07 60 b4 ld [ %i5 + 0xb4 ], %g1 <== NOT EXECUTED if (tty->flow_ctrl & FL_MDXON) { 4000d340: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED c = *buf++; 4000d344: b2 06 60 01 inc %i1 <== NOT EXECUTED if (tty->flow_ctrl & FL_MDXON) { 4000d348: 80 88 62 00 btst 0x200, %g1 <== NOT EXECUTED 4000d34c: 02 80 00 0b be 4000d378 <== NOT EXECUTED 4000d350: d0 0e 7f ff ldub [ %i1 + -1 ], %o0 <== NOT EXECUTED if (c == tty->termios.c_cc[VSTOP]) { 4000d354: c4 0f 60 6d ldub [ %i5 + 0x6d ], %g2 <== NOT EXECUTED 4000d358: 83 2a 20 18 sll %o0, 0x18, %g1 <== NOT EXECUTED 4000d35c: 83 38 60 18 sra %g1, 0x18, %g1 <== NOT EXECUTED 4000d360: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4000d364: 02 80 00 60 be 4000d4e4 <== NOT EXECUTED 4000d368: c6 0f 60 6c ldub [ %i5 + 0x6c ], %g3 <== NOT EXECUTED else if (c == tty->termios.c_cc[VSTART]) { 4000d36c: 80 a0 40 03 cmp %g1, %g3 <== NOT EXECUTED 4000d370: 02 80 00 a6 be 4000d608 <== NOT EXECUTED 4000d374: 01 00 00 00 nop <== NOT EXECUTED if (flow_rcv) { 4000d378: 80 8c e0 ff btst 0xff, %l3 <== NOT EXECUTED 4000d37c: 32 80 00 61 bne,a 4000d500 <== NOT EXECUTED 4000d380: a6 10 20 01 mov 1, %l3 <== NOT EXECUTED if (c == '\r' && (tty->termios.c_iflag & IGNCR) != 0) { 4000d384: 82 0a 20 ff and %o0, 0xff, %g1 <== NOT EXECUTED 4000d388: 80 a0 60 0d cmp %g1, 0xd <== NOT EXECUTED 4000d38c: 12 80 00 06 bne 4000d3a4 <== NOT EXECUTED 4000d390: 01 00 00 00 nop <== NOT EXECUTED 4000d394: c2 07 60 50 ld [ %i5 + 0x50 ], %g1 <== NOT EXECUTED 4000d398: 80 88 60 80 btst 0x80, %g1 <== NOT EXECUTED 4000d39c: 12 bf ff e7 bne 4000d338 <== NOT EXECUTED 4000d3a0: 80 a6 40 1a cmp %i1, %i2 <== NOT EXECUTED c = iprocEarly (c, tty); 4000d3a4: 7f ff fb 4d call 4000c0d8 <== NOT EXECUTED 4000d3a8: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED ( *context->lock_acquire )( context, lock_context ); 4000d3ac: c2 07 20 14 ld [ %i4 + 0x14 ], %g1 <== NOT EXECUTED 4000d3b0: a8 10 00 08 mov %o0, %l4 <== NOT EXECUTED 4000d3b4: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED 4000d3b8: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d3bc: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED head = tty->rawInBuf.Head; 4000d3c0: ea 07 60 84 ld [ %i5 + 0x84 ], %l5 <== NOT EXECUTED oldTail = tty->rawInBuf.Tail; 4000d3c4: f6 07 60 88 ld [ %i5 + 0x88 ], %i3 <== NOT EXECUTED newTail = (oldTail + 1) % tty->rawInBuf.Size; 4000d3c8: c4 07 60 8c ld [ %i5 + 0x8c ], %g2 <== NOT EXECUTED if ((tty->flow_ctrl & FL_IREQXOF) != 0 && (((newTail - head) % 4000d3cc: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED newTail = (oldTail + 1) % tty->rawInBuf.Size; 4000d3d0: b6 06 e0 01 inc %i3 <== NOT EXECUTED if ((tty->flow_ctrl & FL_IREQXOF) != 0 && (((newTail - head) % 4000d3d4: 80 88 60 01 btst 1, %g1 <== NOT EXECUTED newTail = (oldTail + 1) % tty->rawInBuf.Size; 4000d3d8: 81 80 20 00 wr %g0, %y <== NOT EXECUTED 4000d3dc: 01 00 00 00 nop <== NOT EXECUTED 4000d3e0: 01 00 00 00 nop <== NOT EXECUTED 4000d3e4: 01 00 00 00 nop <== NOT EXECUTED 4000d3e8: 82 76 c0 02 udiv %i3, %g2, %g1 <== NOT EXECUTED 4000d3ec: 82 58 40 02 smul %g1, %g2, %g1 <== NOT EXECUTED if ((tty->flow_ctrl & FL_IREQXOF) != 0 && (((newTail - head) % 4000d3f0: 02 80 00 0f be 4000d42c <== NOT EXECUTED 4000d3f4: b6 26 c0 01 sub %i3, %g1, %i3 <== NOT EXECUTED tty->rawInBuf.Size) > tty->highwater)) { 4000d3f8: c6 07 60 8c ld [ %i5 + 0x8c ], %g3 <== NOT EXECUTED if ((tty->flow_ctrl & FL_IREQXOF) != 0 && (((newTail - head) % 4000d3fc: c8 07 61 50 ld [ %i5 + 0x150 ], %g4 <== NOT EXECUTED 4000d400: 82 26 c0 15 sub %i3, %l5, %g1 <== NOT EXECUTED 4000d404: 81 80 20 00 wr %g0, %y <== NOT EXECUTED 4000d408: 01 00 00 00 nop <== NOT EXECUTED 4000d40c: 01 00 00 00 nop <== NOT EXECUTED 4000d410: 01 00 00 00 nop <== NOT EXECUTED 4000d414: 84 70 40 03 udiv %g1, %g3, %g2 <== NOT EXECUTED 4000d418: 84 58 80 03 smul %g2, %g3, %g2 <== NOT EXECUTED 4000d41c: 82 20 40 02 sub %g1, %g2, %g1 <== NOT EXECUTED 4000d420: 80 a0 40 04 cmp %g1, %g4 <== NOT EXECUTED 4000d424: 18 80 00 57 bgu 4000d580 <== NOT EXECUTED 4000d428: 01 00 00 00 nop <== NOT EXECUTED if (newTail != head) { 4000d42c: 80 a5 40 1b cmp %l5, %i3 <== NOT EXECUTED 4000d430: 22 80 00 20 be,a 4000d4b0 <== NOT EXECUTED 4000d434: c2 07 61 6c ld [ %i5 + 0x16c ], %g1 <== NOT EXECUTED tty->rawInBuf.theBuf[newTail] = c; 4000d438: c2 07 60 80 ld [ %i5 + 0x80 ], %g1 <== NOT EXECUTED 4000d43c: e8 28 40 1b stb %l4, [ %g1 + %i3 ] <== NOT EXECUTED tty->rawInBuf.Tail = newTail; 4000d440: f6 27 60 88 st %i3, [ %i5 + 0x88 ] <== NOT EXECUTED if (tty->tty_rcv.sw_pfn != NULL && !tty->tty_rcvwakeup) { 4000d444: c2 07 61 6c ld [ %i5 + 0x16c ], %g1 <== NOT EXECUTED 4000d448: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d44c: 22 80 00 74 be,a 4000d61c <== NOT EXECUTED 4000d450: c2 07 20 18 ld [ %i4 + 0x18 ], %g1 <== NOT EXECUTED 4000d454: c2 0f 61 74 ldub [ %i5 + 0x174 ], %g1 <== NOT EXECUTED 4000d458: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d45c: 12 80 00 1d bne 4000d4d0 <== NOT EXECUTED 4000d460: c4 07 20 18 ld [ %i4 + 0x18 ], %g2 <== NOT EXECUTED if ((tty->termios.c_lflag & ICANON) != 0) { 4000d464: c2 07 60 5c ld [ %i5 + 0x5c ], %g1 <== NOT EXECUTED 4000d468: 80 88 61 00 btst 0x100, %g1 <== NOT EXECUTED 4000d46c: 02 80 00 71 be 4000d630 <== NOT EXECUTED 4000d470: 80 a5 20 0a cmp %l4, 0xa <== NOT EXECUTED c == tty->termios.c_cc[VEOL] || c == tty->termios.c_cc[VEOL2]; 4000d474: 22 80 00 5c be,a 4000d5e4 <== NOT EXECUTED 4000d478: e2 2f 61 74 stb %l1, [ %i5 + 0x174 ] <== NOT EXECUTED return c == '\n' || c == tty->termios.c_cc[VEOF] || 4000d47c: c2 0f 60 60 ldub [ %i5 + 0x60 ], %g1 <== NOT EXECUTED 4000d480: 80 a5 00 01 cmp %l4, %g1 <== NOT EXECUTED 4000d484: 22 80 00 58 be,a 4000d5e4 <== NOT EXECUTED 4000d488: e2 2f 61 74 stb %l1, [ %i5 + 0x174 ] <== NOT EXECUTED 4000d48c: c2 0f 60 61 ldub [ %i5 + 0x61 ], %g1 <== NOT EXECUTED 4000d490: 80 a5 00 01 cmp %l4, %g1 <== NOT EXECUTED 4000d494: 22 80 00 54 be,a 4000d5e4 <== NOT EXECUTED 4000d498: e2 2f 61 74 stb %l1, [ %i5 + 0x174 ] <== NOT EXECUTED c == tty->termios.c_cc[VEOL] || c == tty->termios.c_cc[VEOL2]; 4000d49c: c2 0f 60 62 ldub [ %i5 + 0x62 ], %g1 <== NOT EXECUTED 4000d4a0: a8 18 40 14 xor %g1, %l4, %l4 <== NOT EXECUTED 4000d4a4: 80 a0 00 14 cmp %g0, %l4 <== NOT EXECUTED 4000d4a8: 10 80 00 6e b 4000d660 <== NOT EXECUTED 4000d4ac: 82 60 3f ff subx %g0, -1, %g1 <== NOT EXECUTED ++dropped; 4000d4b0: b0 06 20 01 inc %i0 <== NOT EXECUTED if (tty->tty_rcv.sw_pfn != NULL && !tty->tty_rcvwakeup) { 4000d4b4: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d4b8: 02 80 00 06 be 4000d4d0 <== NOT EXECUTED 4000d4bc: c4 07 20 18 ld [ %i4 + 0x18 ], %g2 <== NOT EXECUTED 4000d4c0: c2 0f 61 74 ldub [ %i5 + 0x174 ], %g1 <== NOT EXECUTED 4000d4c4: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d4c8: 22 80 00 47 be,a 4000d5e4 <== NOT EXECUTED 4000d4cc: e2 2f 61 74 stb %l1, [ %i5 + 0x174 ] <== NOT EXECUTED ( *context->lock_release )( context, lock_context ); 4000d4d0: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED 4000d4d4: 9f c0 80 00 call %g2 <== NOT EXECUTED 4000d4d8: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED while (len--) { 4000d4dc: 10 bf ff 97 b 4000d338 <== NOT EXECUTED 4000d4e0: 80 a6 40 1a cmp %i1, %i2 <== NOT EXECUTED if (c == tty->termios.c_cc[VSTART]) { 4000d4e4: 80 a0 40 03 cmp %g1, %g3 <== NOT EXECUTED tty->flow_ctrl = tty->flow_ctrl ^ FL_ORCVXOF; 4000d4e8: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED if (c == tty->termios.c_cc[VSTART]) { 4000d4ec: 32 80 00 22 bne,a 4000d574 <== NOT EXECUTED 4000d4f0: 82 10 60 10 or %g1, 0x10, %g1 <== NOT EXECUTED tty->flow_ctrl = tty->flow_ctrl ^ FL_ORCVXOF; 4000d4f4: 82 18 60 10 xor %g1, 0x10, %g1 <== NOT EXECUTED 4000d4f8: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED 4000d4fc: a6 10 20 01 mov 1, %l3 <== NOT EXECUTED if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) { 4000d500: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d504: 82 08 60 30 and %g1, 0x30, %g1 <== NOT EXECUTED 4000d508: 80 a0 60 20 cmp %g1, 0x20 <== NOT EXECUTED 4000d50c: 12 bf ff 8a bne 4000d334 <== NOT EXECUTED 4000d510: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED ( *context->lock_acquire )( context, lock_context ); 4000d514: c2 07 20 14 ld [ %i4 + 0x14 ], %g1 <== NOT EXECUTED 4000d518: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d51c: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED tty->flow_ctrl &= ~FL_OSTOP; 4000d520: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d524: 82 08 7f df and %g1, -33, %g1 <== NOT EXECUTED 4000d528: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED if (tty->rawOutBufState != rob_idle) { 4000d52c: c2 07 60 e4 ld [ %i5 + 0xe4 ], %g1 <== NOT EXECUTED 4000d530: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d534: 22 80 00 0a be,a 4000d55c <== NOT EXECUTED 4000d538: c2 07 20 18 ld [ %i4 + 0x18 ], %g1 <== NOT EXECUTED ctx, &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail], 1); 4000d53c: c4 07 60 c0 ld [ %i5 + 0xc0 ], %g2 <== NOT EXECUTED 4000d540: d2 07 60 b8 ld [ %i5 + 0xb8 ], %o1 <== NOT EXECUTED (*tty->handler.write)( 4000d544: c2 07 61 30 ld [ %i5 + 0x130 ], %g1 <== NOT EXECUTED 4000d548: 94 10 20 01 mov 1, %o2 <== NOT EXECUTED 4000d54c: 92 02 40 02 add %o1, %g2, %o1 <== NOT EXECUTED 4000d550: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d554: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED ( *context->lock_release )( context, lock_context ); 4000d558: c2 07 20 18 ld [ %i4 + 0x18 ], %g1 <== NOT EXECUTED 4000d55c: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED 4000d560: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000d564: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d568: a6 10 20 01 mov 1, %l3 <== NOT EXECUTED while (len--) { 4000d56c: 10 bf ff 73 b 4000d338 <== NOT EXECUTED 4000d570: 80 a6 40 1a cmp %i1, %i2 <== NOT EXECUTED tty->flow_ctrl |= FL_ORCVXOF; 4000d574: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED 4000d578: 10 bf ff e2 b 4000d500 <== NOT EXECUTED 4000d57c: a6 10 20 01 mov 1, %l3 <== NOT EXECUTED tty->flow_ctrl |= FL_IREQXOF; 4000d580: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d584: 82 10 60 01 or %g1, 1, %g1 <== NOT EXECUTED 4000d588: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED if ((tty->flow_ctrl & (FL_MDXOF | FL_ISNTXOF)) 4000d58c: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d590: 82 08 64 02 and %g1, 0x402, %g1 <== NOT EXECUTED 4000d594: 80 a0 64 00 cmp %g1, 0x400 <== NOT EXECUTED if ((tty->flow_ctrl & FL_OSTOP) || 4000d598: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED if ((tty->flow_ctrl & (FL_MDXOF | FL_ISNTXOF)) 4000d59c: 02 80 00 39 be 4000d680 <== NOT EXECUTED 4000d5a0: 80 88 60 20 btst 0x20, %g1 <== NOT EXECUTED } else if ((tty->flow_ctrl & (FL_MDRTS | FL_IRTSOFF)) == (FL_MDRTS) ) { 4000d5a4: 82 08 61 04 and %g1, 0x104, %g1 <== NOT EXECUTED 4000d5a8: 80 a0 61 00 cmp %g1, 0x100 <== NOT EXECUTED 4000d5ac: 12 bf ff a1 bne 4000d430 <== NOT EXECUTED 4000d5b0: 80 a5 40 1b cmp %l5, %i3 <== NOT EXECUTED tty->flow_ctrl |= FL_IRTSOFF; 4000d5b4: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d5b8: 82 10 60 04 or %g1, 4, %g1 <== NOT EXECUTED 4000d5bc: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED if (tty->flow.stop_remote_tx != NULL) { 4000d5c0: c2 07 61 40 ld [ %i5 + 0x140 ], %g1 <== NOT EXECUTED 4000d5c4: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d5c8: 22 bf ff 9a be,a 4000d430 <== NOT EXECUTED 4000d5cc: 80 a5 40 1b cmp %l5, %i3 <== NOT EXECUTED tty->flow.stop_remote_tx(ctx); 4000d5d0: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d5d4: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED if (newTail != head) { 4000d5d8: 10 bf ff 96 b 4000d430 <== NOT EXECUTED 4000d5dc: 80 a5 40 1b cmp %l5, %i3 <== NOT EXECUTED tty->tty_rcvwakeup = true; 4000d5e0: e2 2f 61 74 stb %l1, [ %i5 + 0x174 ] <== NOT EXECUTED 4000d5e4: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED 4000d5e8: 9f c0 80 00 call %g2 <== NOT EXECUTED 4000d5ec: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 4000d5f0: c2 07 61 6c ld [ %i5 + 0x16c ], %g1 <== NOT EXECUTED 4000d5f4: d2 07 61 70 ld [ %i5 + 0x170 ], %o1 <== NOT EXECUTED 4000d5f8: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d5fc: 90 10 00 10 mov %l0, %o0 <== NOT EXECUTED while (len--) { 4000d600: 10 bf ff 4e b 4000d338 <== NOT EXECUTED 4000d604: 80 a6 40 1a cmp %i1, %i2 <== NOT EXECUTED tty->flow_ctrl &= ~FL_ORCVXOF; 4000d608: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d60c: 82 08 7f ef and %g1, -17, %g1 <== NOT EXECUTED 4000d610: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED 4000d614: 10 bf ff bb b 4000d500 <== NOT EXECUTED 4000d618: a6 10 20 01 mov 1, %l3 <== NOT EXECUTED 4000d61c: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED 4000d620: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d624: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED while (len--) { 4000d628: 10 bf ff 44 b 4000d338 <== NOT EXECUTED 4000d62c: 80 a6 40 1a cmp %i1, %i2 <== NOT EXECUTED unsigned int rawContentSize = (newTail - head) % tty->rawInBuf.Size; 4000d630: c6 07 60 8c ld [ %i5 + 0x8c ], %g3 <== NOT EXECUTED 4000d634: b6 26 c0 15 sub %i3, %l5, %i3 <== NOT EXECUTED return rawContentSize >= tty->termios.c_cc[VMIN]; 4000d638: c8 0f 60 70 ldub [ %i5 + 0x70 ], %g4 <== NOT EXECUTED unsigned int rawContentSize = (newTail - head) % tty->rawInBuf.Size; 4000d63c: 81 80 20 00 wr %g0, %y <== NOT EXECUTED 4000d640: 01 00 00 00 nop <== NOT EXECUTED 4000d644: 01 00 00 00 nop <== NOT EXECUTED 4000d648: 01 00 00 00 nop <== NOT EXECUTED 4000d64c: 82 76 c0 03 udiv %i3, %g3, %g1 <== NOT EXECUTED 4000d650: 82 58 40 03 smul %g1, %g3, %g1 <== NOT EXECUTED 4000d654: b6 26 c0 01 sub %i3, %g1, %i3 <== NOT EXECUTED return rawContentSize >= tty->termios.c_cc[VMIN]; 4000d658: 80 a6 c0 04 cmp %i3, %g4 <== NOT EXECUTED 4000d65c: 82 60 3f ff subx %g0, -1, %g1 <== NOT EXECUTED if (mustCallReceiveCallback (tty, c, newTail, head)) { 4000d660: 80 88 60 ff btst 0xff, %g1 <== NOT EXECUTED 4000d664: 12 bf ff df bne 4000d5e0 <== NOT EXECUTED 4000d668: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED 4000d66c: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000d670: 9f c0 80 00 call %g2 <== NOT EXECUTED 4000d674: a6 10 00 01 mov %g1, %l3 <== NOT EXECUTED while (len--) { 4000d678: 10 bf ff 30 b 4000d338 <== NOT EXECUTED 4000d67c: 80 a6 40 1a cmp %i1, %i2 <== NOT EXECUTED if ((tty->flow_ctrl & FL_OSTOP) || 4000d680: 22 80 00 0c be,a 4000d6b0 <== NOT EXECUTED 4000d684: c2 07 60 e4 ld [ %i5 + 0xe4 ], %g1 <== NOT EXECUTED tty->flow_ctrl |= FL_ISNTXOF; 4000d688: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d68c: 82 10 60 02 or %g1, 2, %g1 <== NOT EXECUTED 4000d690: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED (*tty->handler.write)(ctx, 4000d694: 94 10 20 01 mov 1, %o2 <== NOT EXECUTED 4000d698: c2 07 61 30 ld [ %i5 + 0x130 ], %g1 <== NOT EXECUTED 4000d69c: 92 10 00 12 mov %l2, %o1 <== NOT EXECUTED 4000d6a0: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d6a4: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED if (newTail != head) { 4000d6a8: 10 bf ff 62 b 4000d430 <== NOT EXECUTED 4000d6ac: 80 a5 40 1b cmp %l5, %i3 <== NOT EXECUTED if ((tty->flow_ctrl & FL_OSTOP) || 4000d6b0: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d6b4: 32 bf ff 5f bne,a 4000d430 <== NOT EXECUTED 4000d6b8: 80 a5 40 1b cmp %l5, %i3 <== NOT EXECUTED 4000d6bc: 30 bf ff f3 b,a 4000d688 <== NOT EXECUTED =============================================================================== 4000cc40 : { 4000cc40: 9d e3 bf 98 save %sp, -104, %sp struct rtems_termios_tty *tty = args->iop->data1; 4000cc44: c2 06 00 00 ld [ %i0 ], %g1 4000cc48: fa 00 60 28 ld [ %g1 + 0x28 ], %i5 args->ioctl_return = 0; 4000cc4c: c0 26 20 0c clr [ %i0 + 0xc ] rtems_mutex_lock (&tty->osem); 4000cc50: b4 07 60 28 add %i5, 0x28, %i2 struct ttywakeup *wakeup = (struct ttywakeup *)args->buffer; 4000cc54: f2 06 20 08 ld [ %i0 + 8 ], %i1 _Mutex_Acquire( mutex ); 4000cc58: 40 00 11 d0 call 40011398 <_Mutex_Acquire> 4000cc5c: 90 10 00 1a mov %i2, %o0 switch (args->command) { 4000cc60: f6 06 20 04 ld [ %i0 + 4 ], %i3 4000cc64: 03 20 01 1d sethi %hi(0x80047400), %g1 4000cc68: 84 10 60 10 or %g1, 0x10, %g2 ! 80047410 4000cc6c: 80 a6 c0 02 cmp %i3, %g2 4000cc70: 02 80 00 f0 be 4000d030 <== NEVER TAKEN 4000cc74: b8 10 00 18 mov %i0, %i4 4000cc78: 28 80 00 17 bleu,a 4000ccd4 4000cc7c: 03 10 01 19 sethi %hi(0x40046400), %g1 4000cc80: 05 20 02 1d sethi %hi(0x80087400), %g2 4000cc84: 86 10 a0 0c or %g2, 0xc, %g3 ! 8008740c 4000cc88: 80 a6 c0 03 cmp %i3, %g3 4000cc8c: 22 80 00 d4 be,a 4000cfdc <== NEVER TAKEN 4000cc90: c2 06 40 00 ld [ %i1 ], %g1 <== NOT EXECUTED 4000cc94: 18 80 00 53 bgu 4000cde0 <== ALWAYS TAKEN 4000cc98: 82 10 60 1b or %g1, 0x1b, %g1 4000cc9c: 80 a6 c0 01 cmp %i3, %g1 <== NOT EXECUTED 4000cca0: 02 80 00 2b be 4000cd4c <== NOT EXECUTED 4000cca4: 84 10 a0 0b or %g2, 0xb, %g2 <== NOT EXECUTED 4000cca8: 80 a6 c0 02 cmp %i3, %g2 <== NOT EXECUTED 4000ccac: 12 80 00 d4 bne 4000cffc <== NOT EXECUTED 4000ccb0: b0 10 20 00 clr %i0 <== NOT EXECUTED tty->tty_snd = *wakeup; 4000ccb4: c2 06 40 00 ld [ %i1 ], %g1 <== NOT EXECUTED 4000ccb8: c2 27 61 64 st %g1, [ %i5 + 0x164 ] <== NOT EXECUTED 4000ccbc: c2 06 60 04 ld [ %i1 + 4 ], %g1 <== NOT EXECUTED 4000ccc0: c2 27 61 68 st %g1, [ %i5 + 0x168 ] <== NOT EXECUTED _Mutex_Release( mutex ); 4000ccc4: 40 00 11 d1 call 40011408 <_Mutex_Release> <== NOT EXECUTED 4000ccc8: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED } 4000cccc: 81 c7 e0 08 ret <== NOT EXECUTED 4000ccd0: 81 e8 00 00 restore <== NOT EXECUTED switch (args->command) { 4000ccd4: 82 10 62 7f or %g1, 0x27f, %g1 4000ccd8: 80 a6 c0 01 cmp %i3, %g1 4000ccdc: 02 80 00 ae be 4000cf94 <== NEVER TAKEN 4000cce0: 01 00 00 00 nop 4000cce4: 08 80 00 33 bleu 4000cdb0 <== NEVER TAKEN 4000cce8: 03 10 01 1d sethi %hi(0x40047400), %g1 4000ccec: 82 10 60 1a or %g1, 0x1a, %g1 ! 4004741a <__end+0x1191a> 4000ccf0: 80 a6 c0 01 cmp %i3, %g1 4000ccf4: 02 80 00 0e be 4000cd2c <== NEVER TAKEN 4000ccf8: 03 10 0b 1d sethi %hi(0x402c7400), %g1 4000ccfc: 82 10 60 13 or %g1, 0x13, %g1 ! 402c7413 <__end+0x291913> 4000cd00: 80 a6 c0 01 cmp %i3, %g1 4000cd04: 12 80 00 be bne 4000cffc <== NEVER TAKEN 4000cd08: 94 10 20 2c mov 0x2c, %o2 *(struct termios *)args->buffer = tty->termios; 4000cd0c: d0 06 20 08 ld [ %i0 + 8 ], %o0 4000cd10: 40 00 44 d0 call 4001e050 4000cd14: 92 07 60 50 add %i5, 0x50, %o1 sc = RTEMS_SUCCESSFUL; 4000cd18: b0 10 20 00 clr %i0 4000cd1c: 40 00 11 bb call 40011408 <_Mutex_Release> 4000cd20: 90 10 00 1a mov %i2, %o0 } 4000cd24: 81 c7 e0 08 ret 4000cd28: 81 e8 00 00 restore *(int*)(args->buffer)=tty->t_line; 4000cd2c: c2 06 20 08 ld [ %i0 + 8 ], %g1 <== NOT EXECUTED 4000cd30: c4 07 61 5c ld [ %i5 + 0x15c ], %g2 <== NOT EXECUTED 4000cd34: c4 20 40 00 st %g2, [ %g1 ] <== NOT EXECUTED sc = RTEMS_SUCCESSFUL; 4000cd38: b0 10 20 00 clr %i0 <== NOT EXECUTED 4000cd3c: 40 00 11 b3 call 40011408 <_Mutex_Release> <== NOT EXECUTED 4000cd40: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED } 4000cd44: 81 c7 e0 08 ret <== NOT EXECUTED 4000cd48: 81 e8 00 00 restore <== NOT EXECUTED if (rtems_termios_linesw[tty->t_line].l_close != NULL) { 4000cd4c: c2 07 61 5c ld [ %i5 + 0x15c ], %g1 <== NOT EXECUTED 4000cd50: 83 28 60 05 sll %g1, 5, %g1 <== NOT EXECUTED 4000cd54: 37 10 00 d0 sethi %hi(0x40034000), %i3 <== NOT EXECUTED 4000cd58: b6 16 e1 d0 or %i3, 0x1d0, %i3 ! 400341d0 <== NOT EXECUTED 4000cd5c: 82 06 c0 01 add %i3, %g1, %g1 <== NOT EXECUTED 4000cd60: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 4000cd64: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000cd68: 02 80 00 05 be 4000cd7c <== NOT EXECUTED 4000cd6c: b0 10 20 00 clr %i0 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_close(tty); 4000cd70: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000cd74: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4000cd78: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED tty->t_line=*(int*)(args->buffer); 4000cd7c: c2 07 20 08 ld [ %i4 + 8 ], %g1 <== NOT EXECUTED 4000cd80: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 4000cd84: c2 27 61 5c st %g1, [ %i5 + 0x15c ] <== NOT EXECUTED if (rtems_termios_linesw[tty->t_line].l_open != NULL) { 4000cd88: 83 28 60 05 sll %g1, 5, %g1 <== NOT EXECUTED tty->t_sc = NULL; /* ensure that no more valid data */ 4000cd8c: c0 27 61 60 clr [ %i5 + 0x160 ] <== NOT EXECUTED if (rtems_termios_linesw[tty->t_line].l_open != NULL) { 4000cd90: c2 06 c0 01 ld [ %i3 + %g1 ], %g1 <== NOT EXECUTED 4000cd94: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000cd98: 02 bf ff cb be 4000ccc4 <== NOT EXECUTED 4000cd9c: 01 00 00 00 nop <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_open(tty); 4000cda0: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000cda4: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4000cda8: 10 bf ff c7 b 4000ccc4 <== NOT EXECUTED 4000cdac: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED switch (args->command) { 4000cdb0: 03 08 00 1d sethi %hi(0x20007400), %g1 <== NOT EXECUTED 4000cdb4: 82 10 60 5e or %g1, 0x5e, %g1 ! 2000745e <== NOT EXECUTED 4000cdb8: 80 a6 c0 01 cmp %i3, %g1 <== NOT EXECUTED 4000cdbc: 32 80 00 91 bne,a 4000d000 <== NOT EXECUTED 4000cdc0: c2 07 61 5c ld [ %i5 + 0x15c ], %g1 <== NOT EXECUTED drainOutput (tty); 4000cdc4: 7f ff f8 b0 call 4000b084 <== NOT EXECUTED 4000cdc8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED sc = RTEMS_SUCCESSFUL; 4000cdcc: b0 10 20 00 clr %i0 <== NOT EXECUTED 4000cdd0: 40 00 11 8e call 40011408 <_Mutex_Release> <== NOT EXECUTED 4000cdd4: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED } 4000cdd8: 81 c7 e0 08 ret <== NOT EXECUTED 4000cddc: 81 e8 00 00 restore <== NOT EXECUTED switch (args->command) { 4000cde0: 33 1f f4 e2 sethi %hi(0x7fd38800), %i1 4000cde4: 82 16 63 ec or %i1, 0x3ec, %g1 ! 7fd38bec 4000cde8: 82 06 c0 01 add %i3, %g1, %g1 4000cdec: 80 a0 60 02 cmp %g1, 2 4000cdf0: 18 80 00 83 bgu 4000cffc <== NEVER TAKEN 4000cdf4: 94 10 20 2c mov 0x2c, %o2 tty->termios = *(struct termios *)args->buffer; 4000cdf8: d2 06 20 08 ld [ %i0 + 8 ], %o1 4000cdfc: b0 07 60 50 add %i5, 0x50, %i0 4000ce00: 40 00 44 94 call 4001e050 4000ce04: 90 10 00 18 mov %i0, %o0 if (args->command == TIOCSETAW || args->command == TIOCSETAF) { 4000ce08: b2 16 63 eb or %i1, 0x3eb, %i1 4000ce0c: b6 06 c0 19 add %i3, %i1, %i3 4000ce10: 80 a6 e0 01 cmp %i3, 1 4000ce14: 08 80 00 df bleu 4000d190 <== NEVER TAKEN 4000ce18: 01 00 00 00 nop if (( tty->flow_ctrl & FL_MDXON) && 4000ce1c: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 4000ce20: 80 88 62 00 btst 0x200, %g1 4000ce24: 02 80 00 23 be 4000ceb0 <== ALWAYS TAKEN 4000ce28: f8 07 61 7c ld [ %i5 + 0x17c ], %i4 !(tty->termios.c_iflag & IXON)) { 4000ce2c: c2 07 60 50 ld [ %i5 + 0x50 ], %g1 <== NOT EXECUTED if (( tty->flow_ctrl & FL_MDXON) && 4000ce30: 80 88 62 00 btst 0x200, %g1 <== NOT EXECUTED 4000ce34: 12 80 00 1f bne 4000ceb0 <== NOT EXECUTED 4000ce38: 01 00 00 00 nop <== NOT EXECUTED tty->flow_ctrl &= ~(FL_MDXON | FL_ORCVXOF); 4000ce3c: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000ce40: 82 08 7d ef and %g1, -529, %g1 <== NOT EXECUTED 4000ce44: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED if (tty->flow_ctrl & FL_OSTOP) { 4000ce48: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000ce4c: 80 88 60 20 btst 0x20, %g1 <== NOT EXECUTED 4000ce50: 02 80 00 18 be 4000ceb0 <== NOT EXECUTED 4000ce54: 01 00 00 00 nop <== NOT EXECUTED ( *context->lock_acquire )( context, lock_context ); 4000ce58: c2 07 20 14 ld [ %i4 + 0x14 ], %g1 <== NOT EXECUTED 4000ce5c: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000ce60: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000ce64: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED tty->flow_ctrl &= ~FL_OSTOP; 4000ce68: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000ce6c: 82 08 7f df and %g1, -33, %g1 <== NOT EXECUTED 4000ce70: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED if (tty->rawOutBufState != rob_idle) { 4000ce74: c2 07 60 e4 ld [ %i5 + 0xe4 ], %g1 <== NOT EXECUTED 4000ce78: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000ce7c: 22 80 00 0a be,a 4000cea4 <== NOT EXECUTED 4000ce80: c2 07 20 18 ld [ %i4 + 0x18 ], %g1 <== NOT EXECUTED ctx, &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1); 4000ce84: c4 07 60 c0 ld [ %i5 + 0xc0 ], %g2 <== NOT EXECUTED 4000ce88: d2 07 60 b8 ld [ %i5 + 0xb8 ], %o1 <== NOT EXECUTED (*tty->handler.write)( 4000ce8c: c2 07 61 30 ld [ %i5 + 0x130 ], %g1 <== NOT EXECUTED 4000ce90: 94 10 20 01 mov 1, %o2 <== NOT EXECUTED 4000ce94: 92 02 40 02 add %o1, %g2, %o1 <== NOT EXECUTED 4000ce98: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000ce9c: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED ( *context->lock_release )( context, lock_context ); 4000cea0: c2 07 20 18 ld [ %i4 + 0x18 ], %g1 <== NOT EXECUTED 4000cea4: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED 4000cea8: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000ceac: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED if (( tty->flow_ctrl & FL_MDXOF) && !(tty->termios.c_iflag & IXOFF)) { 4000ceb0: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 4000ceb4: 80 88 64 00 btst 0x400, %g1 4000ceb8: 02 80 00 06 be 4000ced0 <== ALWAYS TAKEN 4000cebc: 01 00 00 00 nop 4000cec0: c2 07 60 50 ld [ %i5 + 0x50 ], %g1 <== NOT EXECUTED 4000cec4: 80 88 64 00 btst 0x400, %g1 <== NOT EXECUTED 4000cec8: 02 80 00 ab be 4000d174 <== NOT EXECUTED 4000cecc: 01 00 00 00 nop <== NOT EXECUTED if (( tty->flow_ctrl & FL_MDRTS) && !(tty->termios.c_cflag & CRTSCTS)) { 4000ced0: c4 07 61 48 ld [ %i5 + 0x148 ], %g2 4000ced4: c2 07 60 58 ld [ %i5 + 0x58 ], %g1 4000ced8: 37 00 00 c0 sethi %hi(0x30000), %i3 4000cedc: 80 88 a1 00 btst 0x100, %g2 4000cee0: 02 80 00 9c be 4000d150 <== ALWAYS TAKEN 4000cee4: 82 08 40 1b and %g1, %i3, %g1 4000cee8: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000ceec: 02 80 00 87 be 4000d108 <== NOT EXECUTED 4000cef0: 01 00 00 00 nop <== NOT EXECUTED tty->flow_ctrl |= FL_MDRTS; 4000cef4: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000cef8: 82 10 61 00 or %g1, 0x100, %g1 <== NOT EXECUTED 4000cefc: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED if (tty->termios.c_iflag & IXOFF) { 4000cf00: c2 07 60 50 ld [ %i5 + 0x50 ], %g1 <== NOT EXECUTED 4000cf04: 80 88 64 00 btst 0x400, %g1 4000cf08: 02 80 00 06 be 4000cf20 <== ALWAYS TAKEN 4000cf0c: 80 88 62 00 btst 0x200, %g1 tty->flow_ctrl |= FL_MDXOF; 4000cf10: c4 07 61 48 ld [ %i5 + 0x148 ], %g2 <== NOT EXECUTED 4000cf14: 84 10 a4 00 or %g2, 0x400, %g2 <== NOT EXECUTED 4000cf18: c4 27 61 48 st %g2, [ %i5 + 0x148 ] <== NOT EXECUTED if (tty->termios.c_iflag & IXON) { 4000cf1c: 80 88 62 00 btst 0x200, %g1 <== NOT EXECUTED 4000cf20: 22 80 00 06 be,a 4000cf38 4000cf24: c2 07 60 5c ld [ %i5 + 0x5c ], %g1 tty->flow_ctrl |= FL_MDXON; 4000cf28: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 4000cf2c: 82 10 62 00 or %g1, 0x200, %g1 4000cf30: c2 27 61 48 st %g1, [ %i5 + 0x148 ] if (tty->termios.c_lflag & ICANON) { 4000cf34: c2 07 60 5c ld [ %i5 + 0x5c ], %g1 4000cf38: 80 88 61 00 btst 0x100, %g1 4000cf3c: 12 80 00 64 bne 4000d0cc 4000cf40: 82 10 20 01 mov 1, %g1 tty->vtimeTicks = tty->termios.c_cc[VTIME] * 4000cf44: c6 0f 60 71 ldub [ %i5 + 0x71 ], %g3 4000cf48: 03 10 00 b4 sethi %hi(0x4002d000), %g1 4000cf4c: c2 00 63 54 ld [ %g1 + 0x354 ], %g1 ! 4002d354 <_Watchdog_Ticks_per_second> 4000cf50: 82 58 c0 01 smul %g3, %g1, %g1 rtems_clock_get_ticks_per_second() / 10; 4000cf54: 05 33 33 33 sethi %hi(0xcccccc00), %g2 4000cf58: 84 10 a0 cd or %g2, 0xcd, %g2 ! cccccccd 4000cf5c: 80 50 40 02 umul %g1, %g2, %g0 4000cf60: 83 40 00 00 rd %y, %g1 4000cf64: 83 30 60 03 srl %g1, 3, %g1 tty->vtimeTicks = tty->termios.c_cc[VTIME] * 4000cf68: c2 27 60 7c st %g1, [ %i5 + 0x7c ] if (tty->termios.c_cc[VTIME]) { 4000cf6c: 80 a0 e0 00 cmp %g3, 0 4000cf70: 02 80 00 7c be 4000d160 <== NEVER TAKEN 4000cf74: c4 0f 60 70 ldub [ %i5 + 0x70 ], %g2 if (tty->termios.c_cc[VMIN]) 4000cf78: 80 88 a0 ff btst 0xff, %g2 tty->rawInBufSemaphoreTimeout = tty->vtimeTicks; 4000cf7c: c2 27 60 ac st %g1, [ %i5 + 0xac ] tty->rawInBufSemaphoreWait = true; 4000cf80: 84 10 20 01 mov 1, %g2 if (tty->termios.c_cc[VMIN]) 4000cf84: 12 80 00 54 bne 4000d0d4 <== NEVER TAKEN 4000cf88: c4 2f 60 a8 stb %g2, [ %i5 + 0xa8 ] tty->rawInBufSemaphoreFirstTimeout = tty->vtimeTicks; 4000cf8c: 10 80 00 53 b 4000d0d8 4000cf90: c2 27 60 b0 st %g1, [ %i5 + 0xb0 ] int rawnc = tty->rawInBuf.Tail - tty->rawInBuf.Head; 4000cf94: c2 07 60 88 ld [ %i5 + 0x88 ], %g1 <== NOT EXECUTED 4000cf98: c4 07 60 84 ld [ %i5 + 0x84 ], %g2 <== NOT EXECUTED if ( rawnc < 0 ) 4000cf9c: 84 a0 40 02 subcc %g1, %g2, %g2 <== NOT EXECUTED 4000cfa0: 3c 80 00 05 bpos,a 4000cfb4 <== NOT EXECUTED 4000cfa4: c2 07 60 40 ld [ %i5 + 0x40 ], %g1 <== NOT EXECUTED rawnc += tty->rawInBuf.Size; 4000cfa8: c2 07 60 8c ld [ %i5 + 0x8c ], %g1 <== NOT EXECUTED 4000cfac: 84 00 80 01 add %g2, %g1, %g2 <== NOT EXECUTED *(int *)args->buffer = tty->ccount - tty->cindex + rawnc; 4000cfb0: c2 07 60 40 ld [ %i5 + 0x40 ], %g1 <== NOT EXECUTED 4000cfb4: c8 07 60 44 ld [ %i5 + 0x44 ], %g4 <== NOT EXECUTED 4000cfb8: c6 07 20 08 ld [ %i4 + 8 ], %g3 <== NOT EXECUTED 4000cfbc: 82 20 40 04 sub %g1, %g4, %g1 <== NOT EXECUTED 4000cfc0: 82 00 40 02 add %g1, %g2, %g1 <== NOT EXECUTED 4000cfc4: c2 20 c0 00 st %g1, [ %g3 ] <== NOT EXECUTED sc = RTEMS_SUCCESSFUL; 4000cfc8: b0 10 20 00 clr %i0 <== NOT EXECUTED 4000cfcc: 40 00 11 0f call 40011408 <_Mutex_Release> <== NOT EXECUTED 4000cfd0: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED } 4000cfd4: 81 c7 e0 08 ret <== NOT EXECUTED 4000cfd8: 81 e8 00 00 restore <== NOT EXECUTED tty->tty_rcv = *wakeup; 4000cfdc: c2 27 61 6c st %g1, [ %i5 + 0x16c ] <== NOT EXECUTED sc = RTEMS_SUCCESSFUL; 4000cfe0: b0 10 20 00 clr %i0 <== NOT EXECUTED tty->tty_rcv = *wakeup; 4000cfe4: c2 06 60 04 ld [ %i1 + 4 ], %g1 <== NOT EXECUTED 4000cfe8: c2 27 61 70 st %g1, [ %i5 + 0x170 ] <== NOT EXECUTED 4000cfec: 40 00 11 07 call 40011408 <_Mutex_Release> <== NOT EXECUTED 4000cff0: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED } 4000cff4: 81 c7 e0 08 ret <== NOT EXECUTED 4000cff8: 81 e8 00 00 restore <== NOT EXECUTED if (rtems_termios_linesw[tty->t_line].l_ioctl != NULL) { 4000cffc: c2 07 61 5c ld [ %i5 + 0x15c ], %g1 <== NOT EXECUTED 4000d000: 85 28 60 05 sll %g1, 5, %g2 <== NOT EXECUTED 4000d004: 03 10 00 d0 sethi %hi(0x40034000), %g1 <== NOT EXECUTED 4000d008: 82 10 61 d0 or %g1, 0x1d0, %g1 ! 400341d0 <== NOT EXECUTED 4000d00c: 82 00 40 02 add %g1, %g2, %g1 <== NOT EXECUTED 4000d010: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 <== NOT EXECUTED 4000d014: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d018: 02 80 00 77 be 4000d1f4 <== NOT EXECUTED 4000d01c: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED sc = rtems_termios_linesw[tty->t_line].l_ioctl(tty,args); 4000d020: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d024: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4000d028: 10 bf ff 27 b 4000ccc4 <== NOT EXECUTED 4000d02c: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED flags = *((int *)args->buffer); 4000d030: c2 06 20 08 ld [ %i0 + 8 ], %g1 <== NOT EXECUTED 4000d034: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED if (flags == 0) { 4000d038: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d03c: 22 80 00 05 be,a 4000d050 <== NOT EXECUTED 4000d040: b6 10 20 01 mov 1, %i3 <== NOT EXECUTED if (flags & FWRITE) { 4000d044: 80 88 60 02 btst 2, %g1 <== NOT EXECUTED 4000d048: 02 80 00 0e be 4000d080 <== NOT EXECUTED 4000d04c: b6 08 60 01 and %g1, 1, %i3 <== NOT EXECUTED rtems_termios_device_context *ctx = tty->device_context; 4000d050: f8 07 61 7c ld [ %i5 + 0x17c ], %i4 <== NOT EXECUTED ( *context->lock_acquire )( context, lock_context ); 4000d054: c2 07 20 14 ld [ %i4 + 0x14 ], %g1 <== NOT EXECUTED 4000d058: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000d05c: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d060: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED tty->rawOutBuf.Tail = 0; 4000d064: c0 27 60 c0 clr [ %i5 + 0xc0 ] <== NOT EXECUTED ( *context->lock_release )( context, lock_context ); 4000d068: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED tty->rawOutBuf.Head = 0; 4000d06c: c0 27 60 bc clr [ %i5 + 0xbc ] <== NOT EXECUTED tty->rawOutBufState = rob_idle; 4000d070: c0 27 60 e4 clr [ %i5 + 0xe4 ] <== NOT EXECUTED 4000d074: c2 07 20 18 ld [ %i4 + 0x18 ], %g1 <== NOT EXECUTED 4000d078: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d07c: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED if (flags & FREAD) { 4000d080: 80 a6 e0 00 cmp %i3, 0 <== NOT EXECUTED 4000d084: 22 80 00 0e be,a 4000d0bc <== NOT EXECUTED 4000d088: b0 10 20 00 clr %i0 <== NOT EXECUTED rtems_termios_device_context *ctx = tty->device_context; 4000d08c: f8 07 61 7c ld [ %i5 + 0x17c ], %i4 <== NOT EXECUTED ( *context->lock_acquire )( context, lock_context ); 4000d090: c2 07 20 14 ld [ %i4 + 0x14 ], %g1 <== NOT EXECUTED 4000d094: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000d098: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d09c: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED tty->rawInBuf.Tail = 0; 4000d0a0: c0 27 60 88 clr [ %i5 + 0x88 ] <== NOT EXECUTED ( *context->lock_release )( context, lock_context ); 4000d0a4: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED tty->rawInBuf.Head = 0; 4000d0a8: c0 27 60 84 clr [ %i5 + 0x84 ] <== NOT EXECUTED 4000d0ac: c2 07 20 18 ld [ %i4 + 0x18 ], %g1 <== NOT EXECUTED 4000d0b0: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d0b4: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED sc = RTEMS_SUCCESSFUL; 4000d0b8: b0 10 20 00 clr %i0 <== NOT EXECUTED 4000d0bc: 40 00 10 d3 call 40011408 <_Mutex_Release> 4000d0c0: 90 10 00 1a mov %i2, %o0 } 4000d0c4: 81 c7 e0 08 ret 4000d0c8: 81 e8 00 00 restore tty->rawInBufSemaphoreTimeout = 0; 4000d0cc: c0 27 60 ac clr [ %i5 + 0xac ] tty->rawInBufSemaphoreWait = true; 4000d0d0: c2 2f 60 a8 stb %g1, [ %i5 + 0xa8 ] tty->rawInBufSemaphoreFirstTimeout = 0; 4000d0d4: c0 27 60 b0 clr [ %i5 + 0xb0 ] if (tty->handler.set_attributes) { 4000d0d8: c2 07 61 34 ld [ %i5 + 0x134 ], %g1 4000d0dc: 80 a0 60 00 cmp %g1, 0 4000d0e0: 02 bf ff f6 be 4000d0b8 <== NEVER TAKEN 4000d0e4: 92 10 00 18 mov %i0, %o1 sc = (*tty->handler.set_attributes)(tty->device_context, &tty->termios) ? 4000d0e8: d0 07 61 7c ld [ %i5 + 0x17c ], %o0 4000d0ec: 9f c0 40 00 call %g1 4000d0f0: b0 10 20 1b mov 0x1b, %i0 RTEMS_SUCCESSFUL : RTEMS_IO_ERROR; 4000d0f4: 80 a2 20 00 cmp %o0, 0 4000d0f8: 02 bf fe f3 be 4000ccc4 <== NEVER TAKEN 4000d0fc: 01 00 00 00 nop sc = RTEMS_SUCCESSFUL; 4000d100: 10 bf ff ef b 4000d0bc 4000d104: b0 10 20 00 clr %i0 ! 0 tty->flow_ctrl &= ~(FL_MDRTS); 4000d108: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d10c: 82 08 7e ff and %g1, -257, %g1 <== NOT EXECUTED 4000d110: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED if ((tty->flow_ctrl & FL_IRTSOFF) && 4000d114: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d118: 80 88 60 04 btst 4, %g1 <== NOT EXECUTED 4000d11c: 02 80 00 31 be 4000d1e0 <== NOT EXECUTED 4000d120: 01 00 00 00 nop <== NOT EXECUTED (tty->flow.start_remote_tx != NULL)) { 4000d124: c2 07 61 44 ld [ %i5 + 0x144 ], %g1 <== NOT EXECUTED if ((tty->flow_ctrl & FL_IRTSOFF) && 4000d128: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d12c: 02 80 00 2d be 4000d1e0 <== NOT EXECUTED 4000d130: 01 00 00 00 nop <== NOT EXECUTED tty->flow.start_remote_tx(ctx); 4000d134: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d138: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED tty->flow_ctrl &= ~(FL_IRTSOFF); 4000d13c: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d140: 82 08 7f fb and %g1, -5, %g1 <== NOT EXECUTED 4000d144: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED 4000d148: c2 07 60 58 ld [ %i5 + 0x58 ], %g1 <== NOT EXECUTED 4000d14c: 82 08 40 1b and %g1, %i3, %g1 <== NOT EXECUTED if (tty->termios.c_cflag & CRTSCTS) { 4000d150: 80 a0 60 00 cmp %g1, 0 4000d154: 22 bf ff 6c be,a 4000cf04 <== ALWAYS TAKEN 4000d158: c2 07 60 50 ld [ %i5 + 0x50 ], %g1 4000d15c: 30 bf ff 66 b,a 4000cef4 <== NOT EXECUTED if (tty->termios.c_cc[VMIN]) { 4000d160: 80 88 a0 ff btst 0xff, %g2 <== NOT EXECUTED 4000d164: 12 bf ff da bne 4000d0cc <== NOT EXECUTED 4000d168: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED tty->rawInBufSemaphoreWait = false; 4000d16c: 10 bf ff db b 4000d0d8 <== NOT EXECUTED 4000d170: c0 2f 60 a8 clrb [ %i5 + 0xa8 ] <== NOT EXECUTED tty->flow_ctrl &= ~(FL_MDXOF); 4000d174: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d178: 82 08 7b ff and %g1, -1025, %g1 <== NOT EXECUTED 4000d17c: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED tty->flow_ctrl &= ~(FL_ISNTXOF); 4000d180: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d184: 82 08 7f fd and %g1, -3, %g1 <== NOT EXECUTED 4000d188: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED 4000d18c: 30 bf ff 51 b,a 4000ced0 <== NOT EXECUTED drainOutput (tty); 4000d190: 7f ff f7 bd call 4000b084 <== NOT EXECUTED 4000d194: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if (args->command == TIOCSETAF) { 4000d198: c4 07 20 04 ld [ %i4 + 4 ], %g2 <== NOT EXECUTED 4000d19c: 03 20 0b 1d sethi %hi(0x802c7400), %g1 <== NOT EXECUTED 4000d1a0: 82 10 60 16 or %g1, 0x16, %g1 ! 802c7416 <== NOT EXECUTED 4000d1a4: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 4000d1a8: 12 bf ff 1d bne 4000ce1c <== NOT EXECUTED 4000d1ac: 01 00 00 00 nop <== NOT EXECUTED rtems_termios_device_context *ctx = tty->device_context; 4000d1b0: f8 07 61 7c ld [ %i5 + 0x17c ], %i4 <== NOT EXECUTED ( *context->lock_acquire )( context, lock_context ); 4000d1b4: c2 07 20 14 ld [ %i4 + 0x14 ], %g1 <== NOT EXECUTED 4000d1b8: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000d1bc: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d1c0: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED tty->rawInBuf.Tail = 0; 4000d1c4: c0 27 60 88 clr [ %i5 + 0x88 ] <== NOT EXECUTED ( *context->lock_release )( context, lock_context ); 4000d1c8: 92 07 bf fc add %fp, -4, %o1 <== NOT EXECUTED tty->rawInBuf.Head = 0; 4000d1cc: c0 27 60 84 clr [ %i5 + 0x84 ] <== NOT EXECUTED 4000d1d0: c2 07 20 18 ld [ %i4 + 0x18 ], %g1 <== NOT EXECUTED 4000d1d4: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d1d8: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000d1dc: 30 bf ff 10 b,a 4000ce1c <== NOT EXECUTED tty->flow_ctrl &= ~(FL_IRTSOFF); 4000d1e0: c2 07 61 48 ld [ %i5 + 0x148 ], %g1 <== NOT EXECUTED 4000d1e4: 82 08 7f fb and %g1, -5, %g1 <== NOT EXECUTED 4000d1e8: c2 27 61 48 st %g1, [ %i5 + 0x148 ] <== NOT EXECUTED if (tty->termios.c_iflag & IXOFF) { 4000d1ec: 10 bf ff 46 b 4000cf04 <== NOT EXECUTED 4000d1f0: c2 07 60 50 ld [ %i5 + 0x50 ], %g1 <== NOT EXECUTED } else if (tty->handler.ioctl) { 4000d1f4: c2 07 61 38 ld [ %i5 + 0x138 ], %g1 <== NOT EXECUTED 4000d1f8: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000d1fc: 02 80 00 08 be 4000d21c <== NOT EXECUTED 4000d200: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED args->ioctl_return = (*tty->handler.ioctl) (tty->device_context, 4000d204: d4 07 20 08 ld [ %i4 + 8 ], %o2 <== NOT EXECUTED 4000d208: d0 07 61 7c ld [ %i5 + 0x17c ], %o0 <== NOT EXECUTED 4000d20c: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000d210: b0 10 20 00 clr %i0 <== NOT EXECUTED 4000d214: 10 bf fe ac b 4000ccc4 <== NOT EXECUTED 4000d218: d0 27 20 0c st %o0, [ %i4 + 0xc ] <== NOT EXECUTED sc = RTEMS_INVALID_NUMBER; 4000d21c: 10 bf fe aa b 4000ccc4 <== NOT EXECUTED 4000d220: b0 10 20 0a mov 0xa, %i0 <== NOT EXECUTED =============================================================================== 4000d744 : { const rtems_assoc_t *current = &rtems_termios_baud_table[ 0 ]; const rtems_assoc_t *last = current; speed_t spd; while ( current->name != NULL && current->local_value < baud ) { 4000d744: 03 10 00 ba sethi %hi(0x4002e800), %g1 4000d748: c6 00 60 c0 ld [ %g1 + 0xc0 ], %g3 ! 4002e8c0 if ( current->name != NULL ) { uint32_t mid = (last->local_value + current->local_value) / UINT32_C( 2 ); spd = baud <= mid ? last->remote_value : current->remote_value; } else { spd = B460800; 4000d74c: 05 00 01 c2 sethi %hi(0x70800), %g2 while ( current->name != NULL && current->local_value < baud ) { 4000d750: 80 a0 e0 00 cmp %g3, 0 4000d754: 02 80 00 12 be 4000d79c <== NEVER TAKEN 4000d758: 82 10 60 c0 or %g1, 0xc0, %g1 4000d75c: c8 00 60 04 ld [ %g1 + 4 ], %g4 4000d760: 80 a2 40 04 cmp %o1, %g4 4000d764: 38 80 00 0a bgu,a 4000d78c <== ALWAYS TAKEN 4000d768: c6 00 60 0c ld [ %g1 + 0xc ], %g3 4000d76c: 10 80 00 1b b 4000d7d8 <== NOT EXECUTED 4000d770: 86 10 00 04 mov %g4, %g3 <== NOT EXECUTED 4000d774: c6 00 a0 04 ld [ %g2 + 4 ], %g3 4000d778: 80 a0 c0 09 cmp %g3, %o1 4000d77c: 3a 80 00 0b bcc,a 4000d7a8 <== NEVER TAKEN 4000d780: c8 00 60 04 ld [ %g1 + 4 ], %g4 <== NOT EXECUTED 4000d784: 82 10 00 02 mov %g2, %g1 4000d788: c6 00 a0 0c ld [ %g2 + 0xc ], %g3 4000d78c: 80 a0 e0 00 cmp %g3, 0 4000d790: 12 bf ff f9 bne 4000d774 4000d794: 84 00 60 0c add %g1, 0xc, %g2 spd = B460800; 4000d798: 05 00 01 c2 sethi %hi(0x70800), %g2 } term->c_ispeed = spd; 4000d79c: c4 22 20 24 st %g2, [ %o0 + 0x24 ] term->c_ospeed = spd; } 4000d7a0: 81 c3 e0 08 retl 4000d7a4: c4 22 20 28 st %g2, [ %o0 + 0x28 ] uint32_t mid = (last->local_value + current->local_value) / UINT32_C( 2 ); 4000d7a8: 86 00 c0 04 add %g3, %g4, %g3 <== NOT EXECUTED 4000d7ac: 87 30 e0 01 srl %g3, 1, %g3 <== NOT EXECUTED spd = baud <= mid ? last->remote_value : current->remote_value; 4000d7b0: 80 a2 40 03 cmp %o1, %g3 <== NOT EXECUTED 4000d7b4: 28 80 00 06 bleu,a 4000d7cc <== NOT EXECUTED 4000d7b8: c4 00 60 08 ld [ %g1 + 8 ], %g2 <== NOT EXECUTED 4000d7bc: c4 00 a0 08 ld [ %g2 + 8 ], %g2 <== NOT EXECUTED term->c_ispeed = spd; 4000d7c0: c4 22 20 24 st %g2, [ %o0 + 0x24 ] <== NOT EXECUTED } 4000d7c4: 81 c3 e0 08 retl <== NOT EXECUTED 4000d7c8: c4 22 20 28 st %g2, [ %o0 + 0x28 ] <== NOT EXECUTED term->c_ispeed = spd; 4000d7cc: c4 22 20 24 st %g2, [ %o0 + 0x24 ] <== NOT EXECUTED } 4000d7d0: 81 c3 e0 08 retl <== NOT EXECUTED 4000d7d4: c4 22 20 28 st %g2, [ %o0 + 0x28 ] <== NOT EXECUTED const rtems_assoc_t *current = &rtems_termios_baud_table[ 0 ]; 4000d7d8: 10 bf ff f4 b 4000d7a8 <== NOT EXECUTED 4000d7dc: 84 10 00 01 mov %g1, %g2 <== NOT EXECUTED =============================================================================== 40019720 : int rtems_verror( rtems_error_code_t error_flag, const char *printf_format, va_list arglist ) { 40019720: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED int local_errno = 0; int chars_written = 0; rtems_status_code status; if (error_flag & RTEMS_ERROR_PANIC) { 40019724: 03 08 00 00 sethi %hi(0x20000000), %g1 <== NOT EXECUTED 40019728: 80 8e 00 01 btst %i0, %g1 <== NOT EXECUTED 4001972c: 02 80 00 0e be 40019764 <== NOT EXECUTED 40019730: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED if (rtems_panic_in_progress++) 40019734: 05 10 00 d5 sethi %hi(0x40035400), %g2 <== NOT EXECUTED 40019738: c2 00 a1 68 ld [ %g2 + 0x168 ], %g1 ! 40035568 <== NOT EXECUTED 4001973c: 86 00 60 01 add %g1, 1, %g3 <== NOT EXECUTED 40019740: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40019744: 02 80 00 08 be 40019764 <== NOT EXECUTED 40019748: c6 20 a1 68 st %g3, [ %g2 + 0x168 ] <== NOT EXECUTED disable_level = cpu_self->thread_dispatch_disable_level; 4001974c: c2 01 a0 18 ld [ %g6 + 0x18 ], %g1 <== NOT EXECUTED cpu_self->thread_dispatch_disable_level = disable_level + 1; 40019750: 82 00 60 01 inc %g1 <== NOT EXECUTED 40019754: c2 21 a0 18 st %g1, [ %g6 + 0x18 ] <== NOT EXECUTED _Thread_Dispatch_disable(); /* disable task switches */ /* don't aggravate things */ if (rtems_panic_in_progress > 2) 40019758: 80 a0 e0 02 cmp %g3, 2 <== NOT EXECUTED 4001975c: 14 80 00 1d bg 400197d0 <== NOT EXECUTED 40019760: b0 10 20 00 clr %i0 <== NOT EXECUTED return 0; } (void) fflush(stdout); /* in case stdout/stderr same */ 40019764: 7f ff 9e fb call 40001350 <__getreent> <== NOT EXECUTED 40019768: 39 1c 00 00 sethi %hi(0x70000000), %i4 <== NOT EXECUTED 4001976c: 40 00 0a a0 call 4001c1ec <== NOT EXECUTED 40019770: d0 02 20 08 ld [ %o0 + 8 ], %o0 <== NOT EXECUTED status = error_flag & ~RTEMS_ERROR_MASK; if (error_flag & RTEMS_ERROR_ERRNO) /* include errno? */ 40019774: 03 10 00 00 sethi %hi(0x40000000), %g1 <== NOT EXECUTED 40019778: 80 8f 40 01 btst %i5, %g1 <== NOT EXECUTED 4001977c: 12 80 00 17 bne 400197d8 <== NOT EXECUTED 40019780: b8 2f 40 1c andn %i5, %i4, %i4 <== 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); 40019784: 7f ff 9e f3 call 40001350 <__getreent> <== NOT EXECUTED 40019788: 01 00 00 00 nop <== NOT EXECUTED 4001978c: d0 02 20 0c ld [ %o0 + 0xc ], %o0 <== NOT EXECUTED 40019790: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 40019794: 40 00 30 25 call 40025828 <== NOT EXECUTED 40019798: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED if (status) 4001979c: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED 400197a0: 12 80 00 37 bne 4001987c <== NOT EXECUTED 400197a4: b0 10 00 08 mov %o0, %i0 <== 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"); 400197a8: 7f ff 9e ea call 40001350 <__getreent> <== NOT EXECUTED 400197ac: 01 00 00 00 nop <== NOT EXECUTED 400197b0: 13 10 00 c0 sethi %hi(0x40030000), %o1 <== NOT EXECUTED 400197b4: d0 02 20 0c ld [ %o0 + 0xc ], %o0 <== NOT EXECUTED 400197b8: 40 00 0c 78 call 4001c998 <== NOT EXECUTED 400197bc: 92 12 63 28 or %o1, 0x328, %o1 <== NOT EXECUTED (void) fflush(stderr); 400197c0: 7f ff 9e e4 call 40001350 <__getreent> <== NOT EXECUTED 400197c4: b0 02 00 18 add %o0, %i0, %i0 <== NOT EXECUTED 400197c8: 40 00 0a 89 call 4001c1ec <== NOT EXECUTED 400197cc: d0 02 20 0c ld [ %o0 + 0xc ], %o0 <== NOT EXECUTED 400197d0: 81 c7 e0 08 ret <== NOT EXECUTED 400197d4: 81 e8 00 00 restore <== NOT EXECUTED local_errno = errno; 400197d8: 40 00 09 4a call 4001bd00 <__errno> <== NOT EXECUTED 400197dc: 01 00 00 00 nop <== NOT EXECUTED chars_written += vfprintf(stderr, printf_format, arglist); 400197e0: 7f ff 9e dc call 40001350 <__getreent> <== NOT EXECUTED 400197e4: fa 02 00 00 ld [ %o0 ], %i5 <== NOT EXECUTED 400197e8: d0 02 20 0c ld [ %o0 + 0xc ], %o0 <== NOT EXECUTED 400197ec: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 400197f0: 40 00 30 0e call 40025828 <== NOT EXECUTED 400197f4: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED if (status) 400197f8: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED 400197fc: 12 80 00 21 bne 40019880 <== NOT EXECUTED 40019800: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED if (local_errno) { 40019804: 80 a7 60 00 cmp %i5, 0 <== NOT EXECUTED 40019808: 02 bf ff e8 be 400197a8 <== NOT EXECUTED 4001980c: 01 00 00 00 nop <== NOT EXECUTED if ((local_errno > 0) && *strerror(local_errno)) 40019810: 04 80 00 08 ble 40019830 <== NOT EXECUTED 40019814: 01 00 00 00 nop <== NOT EXECUTED 40019818: 40 00 19 3a call 4001fd00 <== NOT EXECUTED 4001981c: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40019820: c2 4a 00 00 ldsb [ %o0 ], %g1 <== NOT EXECUTED 40019824: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40019828: 12 80 00 22 bne 400198b0 <== NOT EXECUTED 4001982c: 01 00 00 00 nop <== NOT EXECUTED chars_written += fprintf(stderr, " (unknown errno=%d)", local_errno); 40019830: 7f ff 9e c8 call 40001350 <__getreent> <== NOT EXECUTED 40019834: 01 00 00 00 nop <== NOT EXECUTED 40019838: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 4001983c: d0 02 20 0c ld [ %o0 + 0xc ], %o0 <== NOT EXECUTED 40019840: 13 10 00 c1 sethi %hi(0x40030400), %o1 <== NOT EXECUTED 40019844: 40 00 0c 55 call 4001c998 <== NOT EXECUTED 40019848: 92 12 61 b0 or %o1, 0x1b0, %o1 ! 400305b0 <== NOT EXECUTED chars_written += fprintf(stderr, "\n"); 4001984c: 7f ff 9e c1 call 40001350 <__getreent> <== NOT EXECUTED 40019850: b0 06 00 08 add %i0, %o0, %i0 <== NOT EXECUTED 40019854: 13 10 00 c0 sethi %hi(0x40030000), %o1 <== NOT EXECUTED 40019858: d0 02 20 0c ld [ %o0 + 0xc ], %o0 <== NOT EXECUTED 4001985c: 40 00 0c 4f call 4001c998 <== NOT EXECUTED 40019860: 92 12 63 28 or %o1, 0x328, %o1 <== NOT EXECUTED (void) fflush(stderr); 40019864: 7f ff 9e bb call 40001350 <__getreent> <== NOT EXECUTED 40019868: b0 02 00 18 add %o0, %i0, %i0 <== NOT EXECUTED 4001986c: 40 00 0a 60 call 4001c1ec <== NOT EXECUTED 40019870: d0 02 20 0c ld [ %o0 + 0xc ], %o0 <== NOT EXECUTED 40019874: 81 c7 e0 08 ret <== NOT EXECUTED 40019878: 81 e8 00 00 restore <== NOT EXECUTED int local_errno = 0; 4001987c: ba 10 20 00 clr %i5 <== NOT EXECUTED fprintf(stderr, " (status: %s)", rtems_status_text(status)); 40019880: 7f ff 9e b4 call 40001350 <__getreent> <== NOT EXECUTED 40019884: 01 00 00 00 nop <== NOT EXECUTED 40019888: f6 02 20 0c ld [ %o0 + 0xc ], %i3 <== NOT EXECUTED 4001988c: 7f ff d4 52 call 4000e9d4 <== NOT EXECUTED 40019890: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 40019894: 13 10 00 c1 sethi %hi(0x40030400), %o1 <== NOT EXECUTED 40019898: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 4001989c: 92 12 61 90 or %o1, 0x190, %o1 <== NOT EXECUTED 400198a0: 40 00 0c 3e call 4001c998 <== NOT EXECUTED 400198a4: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED chars_written += 400198a8: 10 bf ff d7 b 40019804 <== NOT EXECUTED 400198ac: b0 06 00 08 add %i0, %o0, %i0 <== NOT EXECUTED chars_written += fprintf(stderr, " (errno: %s)", strerror(local_errno)); 400198b0: 7f ff 9e a8 call 40001350 <__getreent> <== NOT EXECUTED 400198b4: 01 00 00 00 nop <== NOT EXECUTED 400198b8: f8 02 20 0c ld [ %o0 + 0xc ], %i4 <== NOT EXECUTED 400198bc: 40 00 19 11 call 4001fd00 <== NOT EXECUTED 400198c0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400198c4: 13 10 00 c1 sethi %hi(0x40030400), %o1 <== NOT EXECUTED 400198c8: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400198cc: 92 12 61 a0 or %o1, 0x1a0, %o1 <== NOT EXECUTED 400198d0: 40 00 0c 32 call 4001c998 <== NOT EXECUTED 400198d4: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 400198d8: 10 bf ff b4 b 400197a8 <== NOT EXECUTED 400198dc: b0 06 00 08 add %i0, %o0, %i0 <== NOT EXECUTED =============================================================================== 4000d660 : int rtems_vprintf( const rtems_printer *printer, const char *format, va_list ap ) { 4000d660: 9d e3 bf a0 save %sp, -96, %sp 4000d664: 82 10 00 18 mov %i0, %g1 * * @return true The printer is valid else false is returned. */ static inline bool rtems_print_printer_valid(const rtems_printer *printer) { return printer != NULL && printer->printer != NULL; 4000d668: 80 a0 60 00 cmp %g1, 0 4000d66c: 02 80 00 0a be 4000d694 <== NEVER TAKEN 4000d670: b0 10 20 00 clr %i0 4000d674: c4 00 60 04 ld [ %g1 + 4 ], %g2 4000d678: 80 a0 a0 00 cmp %g2, 0 4000d67c: 02 80 00 06 be 4000d694 <== NEVER TAKEN 4000d680: 94 10 00 1a mov %i2, %o2 int len = 0; if ( rtems_print_printer_valid( printer ) ) { len = printer->printer( printer->context, format, ap ); 4000d684: d0 00 40 00 ld [ %g1 ], %o0 4000d688: 9f c0 80 00 call %g2 4000d68c: 92 10 00 19 mov %i1, %o1 4000d690: b0 10 00 08 mov %o0, %i0 } return len; } 4000d694: 81 c7 e0 08 ret 4000d698: 81 e8 00 00 restore =============================================================================== 400432dc : * P1003.1b-1993, p. 84 */ int setegid( gid_t gid ) { 400432dc: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED _POSIX_types_Egid = gid; 400432e0: 7f ff 24 db call 4000c64c <== NOT EXECUTED 400432e4: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED 400432e8: fa 32 20 12 sth %i5, [ %o0 + 0x12 ] <== NOT EXECUTED return 0; } 400432ec: 81 c7 e0 08 ret <== NOT EXECUTED 400432f0: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED =============================================================================== 400432f4 : #include #include int seteuid( uid_t euid ) { 400432f4: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED _POSIX_types_Euid = euid; 400432f8: 7f ff 24 d5 call 4000c64c <== NOT EXECUTED 400432fc: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED 40043300: fa 32 20 10 sth %i5, [ %o0 + 0x10 ] <== NOT EXECUTED return 0; } 40043304: 81 c7 e0 08 ret <== NOT EXECUTED 40043308: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED =============================================================================== 4004330c : * 4.2.2 Set User and Group IDs, P1003.1b-1993, p. 84 */ int setgid( gid_t gid ) { 4004330c: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED _POSIX_types_Gid = gid; 40043310: 7f ff 24 cf call 4000c64c <== NOT EXECUTED 40043314: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED 40043318: fa 32 20 0e sth %i5, [ %o0 + 0xe ] <== NOT EXECUTED return 0; } 4004331c: 81 c7 e0 08 ret <== NOT EXECUTED 40043320: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED =============================================================================== 4005c4a4 : void setgrent(void) { 4005c4a4: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED grp_context *ctx = grp_get_context(); 4005c4a8: 7f ff ff d8 call 4005c408 <== NOT EXECUTED 4005c4ac: 01 00 00 00 nop <== NOT EXECUTED if (ctx == NULL) { 4005c4b0: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 4005c4b4: 02 80 00 12 be 4005c4fc <== NOT EXECUTED 4005c4b8: 92 10 21 14 mov 0x114, %o1 <== NOT EXECUTED return; } } _libcsupport_pwdgrp_init(); 4005c4bc: 7f ff 98 b7 call 40042798 <_libcsupport_pwdgrp_init> <== NOT EXECUTED 4005c4c0: 01 00 00 00 nop <== NOT EXECUTED if (ctx->fp != NULL) 4005c4c4: d0 07 40 00 ld [ %i5 ], %o0 <== NOT EXECUTED 4005c4c8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4005c4cc: 02 80 00 05 be 4005c4e0 <== NOT EXECUTED 4005c4d0: 13 10 02 27 sethi %hi(0x40089c00), %o1 <== NOT EXECUTED fclose(ctx->fp); 4005c4d4: 40 00 01 88 call 4005caf4 <== NOT EXECUTED 4005c4d8: 01 00 00 00 nop <== NOT EXECUTED ctx->fp = fopen("/etc/group", "r"); 4005c4dc: 13 10 02 27 sethi %hi(0x40089c00), %o1 <== NOT EXECUTED 4005c4e0: 11 10 01 f0 sethi %hi(0x4007c000), %o0 <== NOT EXECUTED 4005c4e4: 92 12 61 18 or %o1, 0x118, %o1 <== NOT EXECUTED 4005c4e8: 40 00 04 c9 call 4005d80c <== NOT EXECUTED 4005c4ec: 90 12 20 c8 or %o0, 0xc8, %o0 <== NOT EXECUTED 4005c4f0: d0 27 40 00 st %o0, [ %i5 ] <== NOT EXECUTED } 4005c4f4: 81 c7 e0 08 ret <== NOT EXECUTED 4005c4f8: 81 e8 00 00 restore <== NOT EXECUTED ctx = calloc(1, sizeof(*ctx)); 4005c4fc: 7f fe b7 c1 call 4000a400 <== NOT EXECUTED 4005c500: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED if (ctx == NULL) 4005c504: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 4005c508: 02 bf ff fb be 4005c4f4 <== NOT EXECUTED 4005c50c: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED eno = pthread_setspecific(grp_key, ctx); 4005c510: 03 10 02 41 sethi %hi(0x40090400), %g1 <== NOT EXECUTED 4005c514: d0 00 60 6c ld [ %g1 + 0x6c ], %o0 ! 4009046c <== NOT EXECUTED 4005c518: 7f fe f2 a9 call 40018fbc <== NOT EXECUTED 4005c51c: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED if (eno != 0) { 4005c520: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4005c524: 02 bf ff e6 be 4005c4bc <== NOT EXECUTED 4005c528: 01 00 00 00 nop <== NOT EXECUTED free(ctx); 4005c52c: 7f fe bc 55 call 4000b680 <== NOT EXECUTED 4005c530: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000cbac : * 4.2.2 Set User and Group IDs, P1003.1b-1993, p. 84 */ int setuid( uid_t uid ) { 4000cbac: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED _POSIX_types_Uid = uid; 4000cbb0: 7f ff fe a7 call 4000c64c <== NOT EXECUTED 4000cbb4: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED 4000cbb8: fa 32 20 0c sth %i5, [ %o0 + 0xc ] <== NOT EXECUTED return 0; } 4000cbbc: 81 c7 e0 08 ret <== NOT EXECUTED 4000cbc0: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED =============================================================================== 4000cbc4 : * POSIX 1003.1b 5.6.2 - Get File Status * * Reused from lstat(). */ int _STAT_NAME( const char *path, struct stat *buf ) { 4000cbc4: 9d e3 bf 68 save %sp, -152, %sp <== NOT EXECUTED int rv = 0; rtems_filesystem_eval_path_context_t ctx; int eval_flags = _STAT_FOLLOW_LINKS; const rtems_filesystem_location_info_t *currentloc = 4000cbc8: 94 10 20 18 mov 0x18, %o2 <== NOT EXECUTED 4000cbcc: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 4000cbd0: 40 00 01 9c call 4000d240 <== NOT EXECUTED 4000cbd4: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); memset( buf, 0, sizeof( *buf ) ); 4000cbd8: 94 10 20 60 mov 0x60, %o2 <== NOT EXECUTED const rtems_filesystem_location_info_t *currentloc = 4000cbdc: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED memset( buf, 0, sizeof( *buf ) ); 4000cbe0: 92 10 20 00 clr %o1 <== NOT EXECUTED 4000cbe4: 40 01 51 85 call 400611f8 <== NOT EXECUTED 4000cbe8: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED rv = (*currentloc->handlers->fstat_h)( currentloc, buf ); 4000cbec: c2 07 60 10 ld [ %i5 + 0x10 ], %g1 <== NOT EXECUTED 4000cbf0: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 <== NOT EXECUTED 4000cbf4: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000cbf8: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000cbfc: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4000cc00: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 4000cc04: 40 00 01 d9 call 4000d368 <== NOT EXECUTED 4000cc08: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED return rv; } 4000cc0c: 81 c7 e0 08 ret <== NOT EXECUTED 4000cc10: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40043324 : #include #include int statvfs( const char *__restrict path, struct statvfs *__restrict buf ) { 40043324: 9d e3 bf 68 save %sp, -152, %sp <== NOT EXECUTED int rv = 0; rtems_filesystem_eval_path_context_t ctx; int eval_flags = RTEMS_FS_FOLLOW_LINK; const rtems_filesystem_location_info_t *currentloc = 40043328: 94 10 20 18 mov 0x18, %o2 <== NOT EXECUTED 4004332c: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40043330: 7f ff 27 c4 call 4000d240 <== NOT EXECUTED 40043334: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); memset( buf, 0, sizeof( *buf ) ); 40043338: 94 10 20 38 mov 0x38, %o2 <== NOT EXECUTED const rtems_filesystem_location_info_t *currentloc = 4004333c: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED memset( buf, 0, sizeof( *buf ) ); 40043340: 92 10 20 00 clr %o1 <== NOT EXECUTED 40043344: 40 00 77 ad call 400611f8 <== NOT EXECUTED 40043348: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED rv = (*currentloc->mt_entry->ops->statvfs_h)( currentloc, buf ); 4004334c: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 <== NOT EXECUTED 40043350: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED 40043354: c2 00 60 48 ld [ %g1 + 0x48 ], %g1 <== NOT EXECUTED 40043358: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4004335c: 9f c0 40 00 call %g1 <== NOT EXECUTED 40043360: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40043364: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 40043368: 7f ff 28 00 call 4000d368 <== NOT EXECUTED 4004336c: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED return rv; } 40043370: 81 c7 e0 08 ret <== NOT EXECUTED 40043374: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 400435c4 : #include #include int symlink( const char *path1, const char *path2 ) { 400435c4: 9d e3 bf 68 save %sp, -152, %sp <== NOT EXECUTED int rv = 0; rtems_filesystem_eval_path_context_t ctx; int eval_flags = RTEMS_FS_FOLLOW_HARD_LINK | RTEMS_FS_MAKE | RTEMS_FS_EXCLUSIVE; const rtems_filesystem_location_info_t *currentloc = 400435c8: 94 10 20 68 mov 0x68, %o2 <== NOT EXECUTED 400435cc: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400435d0: 7f ff 27 1c call 4000d240 <== NOT EXECUTED 400435d4: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_start( &ctx, path2, eval_flags ); rv = (*currentloc->mt_entry->ops->symlink_h)( 400435d8: c2 02 20 14 ld [ %o0 + 0x14 ], %g1 <== NOT EXECUTED 400435dc: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED 400435e0: d4 07 bf d4 ld [ %fp + -44 ], %o2 <== NOT EXECUTED 400435e4: d2 07 bf d0 ld [ %fp + -48 ], %o1 <== NOT EXECUTED 400435e8: c2 00 60 3c ld [ %g1 + 0x3c ], %g1 <== NOT EXECUTED 400435ec: 9f c0 40 00 call %g1 <== NOT EXECUTED 400435f0: 96 10 00 18 mov %i0, %o3 <== NOT EXECUTED 400435f4: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_get_token( &ctx ), rtems_filesystem_eval_path_get_tokenlen( &ctx ), path1 ); rtems_filesystem_eval_path_cleanup( &ctx ); 400435f8: 7f ff 27 5c call 4000d368 <== NOT EXECUTED 400435fc: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED return rv; } 40043600: 81 c7 e0 08 ret <== NOT EXECUTED 40043604: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40043608 : */ int tcdrain( int fd ) { return ioctl( fd, TIOCDRAIN, 0 ); 40043608: 13 08 00 1d sethi %hi(0x20007400), %o1 <== NOT EXECUTED 4004360c: 94 10 20 00 clr %o2 <== NOT EXECUTED 40043610: 92 12 60 5e or %o1, 0x5e, %o1 <== NOT EXECUTED 40043614: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40043618: 7f ff 20 97 call 4000b874 <== NOT EXECUTED 4004361c: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4001ca98 : int tcsendbreak ( int fd RTEMS_UNUSED, int duration RTEMS_UNUSED ) { return 0; } 4001ca98: 81 c3 e0 08 retl <== NOT EXECUTED 4001ca9c: 90 10 20 00 clr %o0 <== NOT EXECUTED =============================================================================== 4001a024 : int tcsetattr( int fd, int opt, const struct termios *tp ) { 4001a024: 9d e3 bf 70 save %sp, -144, %sp struct termios localterm; if (opt & TCSASOFT) { 4001a028: 80 8e 60 10 btst 0x10, %i1 4001a02c: 22 80 00 0b be,a 4001a058 <== ALWAYS TAKEN 4001a030: b2 0e 7f ef and %i1, -17, %i1 localterm = *tp; 4001a034: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 4001a038: 94 10 20 2c mov 0x2c, %o2 <== NOT EXECUTED 4001a03c: 40 00 10 05 call 4001e050 <== NOT EXECUTED 4001a040: 90 07 bf d4 add %fp, -44, %o0 <== NOT EXECUTED localterm.c_cflag |= CIGNORE; 4001a044: c2 07 bf dc ld [ %fp + -36 ], %g1 <== NOT EXECUTED 4001a048: 82 10 60 01 or %g1, 1, %g1 <== NOT EXECUTED 4001a04c: c2 27 bf dc st %g1, [ %fp + -36 ] <== NOT EXECUTED tp = &localterm; 4001a050: b4 07 bf d4 add %fp, -44, %i2 <== NOT EXECUTED } switch (opt & ~TCSASOFT) { 4001a054: b2 0e 7f ef and %i1, -17, %i1 <== NOT EXECUTED 4001a058: 80 a6 60 01 cmp %i1, 1 4001a05c: 02 80 00 19 be 4001a0c0 <== NEVER TAKEN 4001a060: 80 a6 60 02 cmp %i1, 2 4001a064: 02 80 00 10 be 4001a0a4 <== NEVER TAKEN 4001a068: 80 a6 60 00 cmp %i1, 0 4001a06c: 02 80 00 08 be 4001a08c <== ALWAYS TAKEN 4001a070: 94 10 00 1a mov %i2, %o2 case TCSAFLUSH: return ioctl( fd, TIOCSETAF, tp ); default: rtems_set_errno_and_return_minus_one( EINVAL ); 4001a074: 40 00 07 23 call 4001bd00 <__errno> <== NOT EXECUTED 4001a078: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4001a07c: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 4001a080: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } } 4001a084: 81 c7 e0 08 ret <== NOT EXECUTED 4001a088: 81 e8 00 00 restore <== NOT EXECUTED return ioctl( fd, TIOCSETA, tp ); 4001a08c: 90 10 00 18 mov %i0, %o0 4001a090: 13 20 0b 1d sethi %hi(0x802c7400), %o1 4001a094: 40 00 06 a0 call 4001bb14 4001a098: 92 12 60 14 or %o1, 0x14, %o1 ! 802c7414 4001a09c: 81 c7 e0 08 ret 4001a0a0: 91 e8 00 08 restore %g0, %o0, %o0 return ioctl( fd, TIOCSETAF, tp ); 4001a0a4: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 4001a0a8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 4001a0ac: 13 20 0b 1d sethi %hi(0x802c7400), %o1 <== NOT EXECUTED 4001a0b0: 40 00 06 99 call 4001bb14 <== NOT EXECUTED 4001a0b4: 92 12 60 16 or %o1, 0x16, %o1 ! 802c7416 <== NOT EXECUTED 4001a0b8: 81 c7 e0 08 ret <== NOT EXECUTED 4001a0bc: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED return ioctl( fd, TIOCSETAW, tp ); 4001a0c0: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 4001a0c4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 4001a0c8: 13 20 0b 1d sethi %hi(0x802c7400), %o1 <== NOT EXECUTED 4001a0cc: 40 00 06 92 call 4001bb14 <== NOT EXECUTED 4001a0d0: 92 12 60 15 or %o1, 0x15, %o1 ! 802c7415 <== NOT EXECUTED 4001a0d4: 81 c7 e0 08 ret <== NOT EXECUTED 4001a0d8: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 4001040c : /** * POSIX 1003.1b 5.3.3 - Set File Creation Mask */ mode_t umask( mode_t cmask ) { 4001040c: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED mode_t old_mask; rtems_libio_lock(); 40010410: 7f ff ed 77 call 4000b9ec <== NOT EXECUTED 40010414: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED old_mask = rtems_filesystem_umask; 40010418: 7f ff f0 8d call 4000c64c <== NOT EXECUTED 4001041c: ba 0f 61 ff and %i5, 0x1ff, %i5 <== NOT EXECUTED rtems_filesystem_umask = cmask & (S_IRWXU | S_IRWXG | S_IRWXO); 40010420: 7f ff f0 8b call 4000c64c <== NOT EXECUTED 40010424: f0 02 20 08 ld [ %o0 + 8 ], %i0 <== NOT EXECUTED rtems_libio_unlock(); 40010428: 7f ff ed 76 call 4000ba00 <== NOT EXECUTED 4001042c: fa 22 20 08 st %i5, [ %o0 + 8 ] <== NOT EXECUTED return old_mask; } 40010430: 81 c7 e0 08 ret <== NOT EXECUTED 40010434: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40010438 : /** * POSIX 1003.1b - 5.5.1 - Remove an existing link */ int unlink( const char *path ) { 40010438: 9d e3 bf 50 save %sp, -176, %sp <== NOT EXECUTED int eval_flags = RTEMS_FS_REJECT_TERMINAL_DOT; rtems_filesystem_location_info_t parentloc; int parent_eval_flags = RTEMS_FS_PERMS_WRITE | RTEMS_FS_PERMS_EXEC | RTEMS_FS_FOLLOW_LINK; const rtems_filesystem_location_info_t *currentloc = 4001043c: 98 10 20 1b mov 0x1b, %o4 <== NOT EXECUTED 40010440: 94 10 21 00 mov 0x100, %o2 <== NOT EXECUTED 40010444: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40010448: 96 07 bf b0 add %fp, -80, %o3 <== NOT EXECUTED 4001044c: 7f ff f3 89 call 4000d270 <== NOT EXECUTED 40010450: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED const rtems_filesystem_mount_table_entry_t *mt_entry = loc->mt_entry; 40010454: c2 02 20 14 ld [ %o0 + 0x14 ], %g1 <== NOT EXECUTED return (*mt_entry->ops->are_nodes_equal_h)( 40010458: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED 4001045c: c4 00 a0 10 ld [ %g2 + 0x10 ], %g2 <== NOT EXECUTED 40010460: d2 00 60 24 ld [ %g1 + 0x24 ], %o1 <== NOT EXECUTED 40010464: 9f c0 80 00 call %g2 <== NOT EXECUTED 40010468: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED eval_flags, &parentloc, parent_eval_flags ); if ( !rtems_filesystem_location_is_instance_root( currentloc ) ) { 4001046c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40010470: 12 80 00 0e bne 400104a8 <== NOT EXECUTED 40010474: 92 10 20 10 mov 0x10, %o1 <== NOT EXECUTED const rtems_filesystem_operations_table *ops = currentloc->mt_entry->ops; 40010478: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 <== NOT EXECUTED rv = (*ops->rmnod_h)( &parentloc, currentloc ); 4001047c: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED 40010480: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 <== NOT EXECUTED 40010484: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40010488: 9f c0 40 00 call %g1 <== NOT EXECUTED 4001048c: 90 07 bf b0 add %fp, -80, %o0 <== NOT EXECUTED 40010490: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED } else { rtems_filesystem_eval_path_error( &ctx, EBUSY ); rv = -1; } rtems_filesystem_eval_path_cleanup_with_parent( &ctx, &parentloc ); 40010494: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 40010498: 7f ff f3 c3 call 4000d3a4 <== NOT EXECUTED 4001049c: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED return rv; } 400104a0: 81 c7 e0 08 ret <== NOT EXECUTED 400104a4: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_eval_path_error( &ctx, EBUSY ); 400104a8: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED 400104ac: 7f ff f2 aa call 4000cf54 <== NOT EXECUTED 400104b0: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup_with_parent( &ctx, &parentloc ); 400104b4: 10 bf ff f9 b 40010498 <== NOT EXECUTED 400104b8: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED =============================================================================== 4004372c : * in some form is supported on most UNIX and POSIX systems. This * routine is necessary to mount instantiations of a file system * into the file system name space. */ int unmount( const char *path ) { 4004372c: 9d e3 bf 60 save %sp, -160, %sp <== NOT EXECUTED int rv = 0; rtems_filesystem_eval_path_context_t ctx; int eval_flags = RTEMS_FS_FOLLOW_LINK; const rtems_filesystem_location_info_t *currentloc = 40043730: 94 10 20 18 mov 0x18, %o2 <== NOT EXECUTED 40043734: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40043738: 7f ff 26 c2 call 4000d240 <== NOT EXECUTED 4004373c: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); rtems_filesystem_mount_table_entry_t *mt_entry = currentloc->mt_entry; 40043740: fa 02 20 14 ld [ %o0 + 0x14 ], %i5 <== NOT EXECUTED return (*mt_entry->ops->are_nodes_equal_h)( 40043744: c2 07 60 0c ld [ %i5 + 0xc ], %g1 <== NOT EXECUTED 40043748: c2 00 60 10 ld [ %g1 + 0x10 ], %g1 <== NOT EXECUTED 4004374c: 9f c0 40 00 call %g1 <== NOT EXECUTED 40043750: d2 07 60 24 ld [ %i5 + 0x24 ], %o1 <== NOT EXECUTED if ( rtems_filesystem_location_is_instance_root( currentloc ) ) { 40043754: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40043758: 02 80 00 34 be 40043828 <== NOT EXECUTED 4004375c: 01 00 00 00 nop <== NOT EXECUTED &rtems_filesystem_root->location; 40043760: 7f ff 23 bb call 4000c64c <== NOT EXECUTED 40043764: 01 00 00 00 nop <== NOT EXECUTED &rtems_filesystem_current->location; 40043768: 7f ff 23 b9 call 4000c64c <== NOT EXECUTED 4004376c: f8 02 20 04 ld [ %o0 + 4 ], %i4 <== NOT EXECUTED return mt_entry == root->mt_entry || mt_entry == current->mt_entry; 40043770: c2 07 20 14 ld [ %i4 + 0x14 ], %g1 <== NOT EXECUTED 40043774: 80 a7 40 01 cmp %i5, %g1 <== NOT EXECUTED 40043778: 02 80 00 14 be 400437c8 <== NOT EXECUTED 4004377c: 01 00 00 00 nop <== NOT EXECUTED 40043780: c2 02 00 00 ld [ %o0 ], %g1 <== NOT EXECUTED 40043784: c2 00 60 14 ld [ %g1 + 0x14 ], %g1 <== NOT EXECUTED 40043788: 80 a7 40 01 cmp %i5, %g1 <== NOT EXECUTED 4004378c: 02 80 00 0f be 400437c8 <== NOT EXECUTED 40043790: 01 00 00 00 nop <== NOT EXECUTED if ( !contains_root_or_current_directory( mt_entry ) ) { const rtems_filesystem_operations_table *mt_point_ops = mt_entry->mt_point_node->location.mt_entry->ops; 40043794: c2 07 60 20 ld [ %i5 + 0x20 ], %g1 <== NOT EXECUTED const rtems_filesystem_operations_table *mt_point_ops = 40043798: c2 00 60 14 ld [ %g1 + 0x14 ], %g1 <== NOT EXECUTED rv = (*mt_point_ops->unmount_h)( mt_entry ); 4004379c: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED 400437a0: c2 00 60 30 ld [ %g1 + 0x30 ], %g1 <== NOT EXECUTED 400437a4: 9f c0 40 00 call %g1 <== NOT EXECUTED 400437a8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if ( rv == 0 ) { 400437ac: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 400437b0: 02 80 00 0b be 400437dc <== NOT EXECUTED 400437b4: 01 00 00 00 nop <== NOT EXECUTED } else { errno = EACCES; rv = -1; } rtems_filesystem_eval_path_cleanup( &ctx ); 400437b8: 7f ff 26 ec call 4000d368 <== NOT EXECUTED 400437bc: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED rtems_fatal_error_occurred( 0xdeadbeef ); } } return rv; } 400437c0: 81 c7 e0 08 ret <== NOT EXECUTED 400437c4: 81 e8 00 00 restore <== NOT EXECUTED errno = EBUSY; 400437c8: 40 00 64 53 call 4005c914 <__errno> <== NOT EXECUTED 400437cc: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 400437d0: 82 10 20 10 mov 0x10, %g1 <== NOT EXECUTED 400437d4: 10 bf ff f9 b 400437b8 <== NOT EXECUTED 400437d8: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED rtems_id self_task_id = rtems_task_self(); 400437dc: 7f ff 58 7e call 400199d4 <== NOT EXECUTED 400437e0: 01 00 00 00 nop <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400437e4: 91 d0 20 09 ta 9 <== NOT EXECUTED mt_entry->unmount_task = self_task_id; 400437e8: d0 27 60 3c st %o0, [ %i5 + 0x3c ] <== NOT EXECUTED mt_entry->mounted = false; 400437ec: c0 2f 60 28 clrb [ %i5 + 0x28 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400437f0: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400437f4: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 400437f8: 7f ff 26 dc call 4000d368 <== NOT EXECUTED 400437fc: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED return rtems_event_system_receive( 40043800: 96 07 bf c4 add %fp, -60, %o3 <== NOT EXECUTED 40043804: 94 10 20 00 clr %o2 <== NOT EXECUTED 40043808: 92 10 20 00 clr %o1 <== NOT EXECUTED 4004380c: 7f ff 57 81 call 40019610 <== NOT EXECUTED 40043810: 11 20 00 00 sethi %hi(0x80000000), %o0 <== NOT EXECUTED if ( sc != RTEMS_SUCCESSFUL ) { 40043814: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40043818: 02 bf ff ea be 400437c0 <== NOT EXECUTED 4004381c: 11 37 ab 6f sethi %hi(0xdeadbc00), %o0 <== NOT EXECUTED rtems_fatal_error_occurred( 0xdeadbeef ); 40043820: 7f ff 58 df call 40019b9c <== NOT EXECUTED 40043824: 90 12 22 ef or %o0, 0x2ef, %o0 ! deadbeef <== NOT EXECUTED errno = EACCES; 40043828: 40 00 64 3b call 4005c914 <__errno> <== NOT EXECUTED 4004382c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40043830: 82 10 20 0d mov 0xd, %g1 <== NOT EXECUTED 40043834: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 40043838: 7f ff 26 cc call 4000d368 <== NOT EXECUTED 4004383c: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED 40043840: 81 c7 e0 08 ret <== NOT EXECUTED 40043844: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4002c4d4 : ssize_t write( int fd, const void *buffer, size_t count ) { 4002c4d4: 9d e3 bf a0 save %sp, -96, %sp rtems_libio_t *iop; ssize_t n; rtems_libio_check_buffer( buffer ); 4002c4d8: 80 a6 60 00 cmp %i1, 0 4002c4dc: 02 80 00 32 be 4002c5a4 <== NEVER TAKEN 4002c4e0: 80 a6 a0 00 cmp %i2, 0 rtems_libio_check_count( count ); 4002c4e4: 02 80 00 22 be 4002c56c <== NEVER TAKEN 4002c4e8: 84 10 20 00 clr %g2 LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_WRITE, EBADF ); 4002c4ec: 03 10 00 b5 sethi %hi(0x4002d400), %g1 4002c4f0: c2 00 60 e0 ld [ %g1 + 0xe0 ], %g1 ! 4002d4e0 4002c4f4: 80 a6 00 01 cmp %i0, %g1 4002c4f8: 1a 80 00 25 bcc 4002c58c <== NEVER TAKEN 4002c4fc: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED 4002c500: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 4002c504: 31 10 00 d2 sethi %hi(0x40034800), %i0 <== NOT EXECUTED 4002c508: bb 2f 60 04 sll %i5, 4, %i5 <== NOT EXECUTED 4002c50c: b0 16 23 f0 or %i0, 0x3f0, %i0 <== NOT EXECUTED 4002c510: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 4002c514: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 4002c518: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 4002c51c: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 4002c520: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4002c524: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4002c528: 01 00 00 00 nop 4002c52c: 84 08 a1 04 and %g2, 0x104, %g2 4002c530: 80 a0 a1 04 cmp %g2, 0x104 4002c534: 12 80 00 10 bne 4002c574 <== NEVER TAKEN 4002c538: 94 10 00 1a mov %i2, %o2 /* * Now process the write() request. */ n = (*iop->pathinfo.handlers->write_h)( iop, buffer, count ); 4002c53c: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 4002c540: c2 00 60 0c ld [ %g1 + 0xc ], %g1 4002c544: 92 10 00 19 mov %i1, %o1 4002c548: 9f c0 40 00 call %g1 4002c54c: 90 10 00 1d mov %i5, %o0 4002c550: 84 10 00 08 mov %o0, %g2 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4002c554: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 4002c558: c6 07 60 08 ld [ %i5 + 8 ], %g3 <== NOT EXECUTED 4002c55c: 86 00 f0 00 add %g3, -4096, %g3 <== NOT EXECUTED 4002c560: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4002c564: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4002c568: 01 00 00 00 nop rtems_libio_iop_drop( iop ); return n; } 4002c56c: 81 c7 e0 08 ret 4002c570: 91 e8 00 02 restore %g0, %g2, %o0 __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4002c574: 91 d0 20 09 ta 9 <== NOT EXECUTED 4002c578: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4002c57c: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4002c580: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4002c584: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4002c588: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_WRITE, EBADF ); 4002c58c: 7f ff bd dd call 4001bd00 <__errno> <== NOT EXECUTED 4002c590: 01 00 00 00 nop <== NOT EXECUTED 4002c594: 82 10 20 09 mov 9, %g1 ! 9 <_TLS_Alignment+0x8> <== NOT EXECUTED 4002c598: 84 10 3f ff mov -1, %g2 <== NOT EXECUTED 4002c59c: 10 bf ff f4 b 4002c56c <== NOT EXECUTED 4002c5a0: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED rtems_libio_check_buffer( buffer ); 4002c5a4: 7f ff bd d7 call 4001bd00 <__errno> <== NOT EXECUTED 4002c5a8: 01 00 00 00 nop <== NOT EXECUTED 4002c5ac: 82 10 20 16 mov 0x16, %g1 ! 16 <_TLS_Alignment+0x15> <== NOT EXECUTED 4002c5b0: 84 10 3f ff mov -1, %g2 <== NOT EXECUTED 4002c5b4: 10 bf ff ee b 4002c56c <== NOT EXECUTED 4002c5b8: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED =============================================================================== 4001f7c4 : ssize_t writev( int fd, const struct iovec *iov, int iovcnt ) { 4001f7c4: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED if ( iov == NULL ) 4001f7c8: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED 4001f7cc: 02 80 00 3f be 4001f8c8 <== NOT EXECUTED 4001f7d0: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED if ( iovcnt <= 0 ) 4001f7d4: 04 80 00 3d ble 4001f8c8 <== NOT EXECUTED 4001f7d8: 80 a6 a4 00 cmp %i2, 0x400 <== NOT EXECUTED if ( iovcnt > IOV_MAX ) 4001f7dc: 14 80 00 3b bg 4001f8c8 <== NOT EXECUTED 4001f7e0: bb 2e a0 03 sll %i2, 3, %i5 <== NOT EXECUTED if ( len > ( size_t ) ( SSIZE_MAX - total ) ) { 4001f7e4: 09 1f ff ff sethi %hi(0x7ffffc00), %g4 <== NOT EXECUTED 4001f7e8: 82 10 00 19 mov %i1, %g1 <== NOT EXECUTED 4001f7ec: ba 07 40 19 add %i5, %i1, %i5 <== NOT EXECUTED total = 0; 4001f7f0: 96 10 20 00 clr %o3 <== NOT EXECUTED if ( len > ( size_t ) ( SSIZE_MAX - total ) ) { 4001f7f4: 88 11 23 ff or %g4, 0x3ff, %g4 <== NOT EXECUTED size_t len = iov[ v ].iov_len; 4001f7f8: c4 00 60 04 ld [ %g1 + 4 ], %g2 <== NOT EXECUTED if ( len > ( size_t ) ( SSIZE_MAX - total ) ) { 4001f7fc: 86 21 00 0b sub %g4, %o3, %g3 <== NOT EXECUTED 4001f800: 80 a0 80 03 cmp %g2, %g3 <== NOT EXECUTED 4001f804: 18 80 00 31 bgu 4001f8c8 <== NOT EXECUTED 4001f808: 01 00 00 00 nop <== NOT EXECUTED if ( iov[ v ].iov_base == NULL && len != 0 ) { 4001f80c: c6 00 40 00 ld [ %g1 ], %g3 <== NOT EXECUTED 4001f810: 80 a0 e0 00 cmp %g3, 0 <== NOT EXECUTED 4001f814: 12 80 00 05 bne 4001f828 <== NOT EXECUTED 4001f818: 96 02 c0 02 add %o3, %g2, %o3 <== NOT EXECUTED 4001f81c: 80 a0 a0 00 cmp %g2, 0 <== NOT EXECUTED 4001f820: 12 80 00 2a bne 4001f8c8 <== NOT EXECUTED 4001f824: 01 00 00 00 nop <== NOT EXECUTED 4001f828: 82 00 60 08 add %g1, 8, %g1 <== NOT EXECUTED for ( v = 0 ; v < iovcnt ; ++v ) { 4001f82c: 80 a7 40 01 cmp %i5, %g1 <== NOT EXECUTED 4001f830: 32 bf ff f3 bne,a 4001f7fc <== NOT EXECUTED 4001f834: c4 00 60 04 ld [ %g1 + 4 ], %g2 <== NOT EXECUTED LIBIO_GET_IOP_WITH_ACCESS( fd, iop, flags, EBADF ); 4001f838: 03 10 01 8b sethi %hi(0x40062c00), %g1 <== NOT EXECUTED 4001f83c: c2 00 61 34 ld [ %g1 + 0x134 ], %g1 ! 40062d34 <== NOT EXECUTED 4001f840: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 4001f844: 1a 80 00 2e bcc 4001f8fc <== NOT EXECUTED 4001f848: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED return &rtems_libio_iops[ fd ]; 4001f84c: 03 10 01 d3 sethi %hi(0x40074c00), %g1 <== NOT EXECUTED 4001f850: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 4001f854: 82 10 61 40 or %g1, 0x140, %g1 <== NOT EXECUTED 4001f858: bb 2f 60 04 sll %i5, 4, %i5 <== NOT EXECUTED 4001f85c: ba 07 40 01 add %i5, %g1, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4001f860: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 4001f864: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 4001f868: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 4001f86c: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4001f870: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4001f874: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP_WITH_ACCESS( fd, iop, flags, EBADF ); 4001f878: 84 08 a1 04 and %g2, 0x104, %g2 <== NOT EXECUTED 4001f87c: 80 a0 a1 04 cmp %g2, 0x104 <== NOT EXECUTED 4001f880: 12 80 00 19 bne 4001f8e4 <== NOT EXECUTED 4001f884: 80 a2 e0 00 cmp %o3, 0 <== NOT EXECUTED if ( total > 0 ) { 4001f888: 04 80 00 08 ble 4001f8a8 <== NOT EXECUTED 4001f88c: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED return ( *iop->pathinfo.handlers->writev_h )( iop, iov, iovcnt, total ); 4001f890: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 4001f894: c2 00 60 38 ld [ %g1 + 0x38 ], %g1 <== NOT EXECUTED 4001f898: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4001f89c: 9f c0 40 00 call %g1 <== NOT EXECUTED 4001f8a0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4001f8a4: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4001f8a8: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 4001f8ac: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4001f8b0: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4001f8b4: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4001f8b8: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4001f8bc: 01 00 00 00 nop <== NOT EXECUTED iov, iovcnt, LIBIO_FLAGS_WRITE, writev_adapter ); } 4001f8c0: 81 c7 e0 08 ret <== NOT EXECUTED 4001f8c4: 91 e8 00 0b restore %g0, %o3, %o0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4001f8c8: 40 00 ba 56 call 4004e220 <__errno> <== NOT EXECUTED 4001f8cc: 01 00 00 00 nop <== NOT EXECUTED 4001f8d0: 82 10 20 16 mov 0x16, %g1 ! 16 <_TLS_Alignment+0x15> <== NOT EXECUTED 4001f8d4: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4001f8d8: 96 10 3f ff mov -1, %o3 <== NOT EXECUTED 4001f8dc: 81 c7 e0 08 ret <== NOT EXECUTED 4001f8e0: 91 e8 00 0b restore %g0, %o3, %o0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4001f8e4: 91 d0 20 09 ta 9 <== NOT EXECUTED 4001f8e8: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4001f8ec: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4001f8f0: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4001f8f4: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4001f8f8: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP_WITH_ACCESS( fd, iop, flags, EBADF ); 4001f8fc: 40 00 ba 49 call 4004e220 <__errno> <== NOT EXECUTED 4001f900: 01 00 00 00 nop <== NOT EXECUTED 4001f904: 82 10 20 09 mov 9, %g1 ! 9 <_TLS_Alignment+0x8> <== NOT EXECUTED 4001f908: 96 10 3f ff mov -1, %o3 <== NOT EXECUTED 4001f90c: 10 bf ff f4 b 4001f8dc <== NOT EXECUTED 4001f910: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED