=============================================================================== 40004734 : void RTEMS_Malloc_Initialize( const Heap_Area *areas, size_t area_count, Heap_Initialization_or_extend_handler extend ) { 40004734: 9d e3 bf a0 save %sp, -96, %sp Heap_Control *heap = RTEMS_Malloc_Heap; if ( !rtems_configuration_get_unified_work_area() ) { 40004738: 03 10 00 40 sethi %hi(0x40010000), %g1 4000473c: c2 08 60 7d ldub [ %g1 + 0x7d ], %g1 ! 4001007d 40004740: 80 a0 60 00 cmp %g1, 0 40004744: 12 80 00 19 bne 400047a8 40004748: 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) { 4000474c: 02 80 00 19 be 400047b0 <== NEVER TAKEN 40004750: 03 10 00 47 sethi %hi(0x40011c00), %g1 Heap_Control *heap = RTEMS_Malloc_Heap; 40004754: f8 00 63 0c ld [ %g1 + 0x30c ], %i4 ! 40011f0c 40004758: b3 2e 60 03 sll %i1, 3, %i1 Heap_Initialization_or_extend_handler init_or_extend = _Heap_Initialize; 4000475c: 37 10 00 1d sethi %hi(0x40007400), %i3 40004760: b2 06 00 19 add %i0, %i1, %i1 40004764: b6 16 e2 d8 or %i3, 0x2d8, %i3 40004768: ba 10 00 1b mov %i3, %i5 const Heap_Area *area = &areas [i]; uintptr_t space_available = (*init_or_extend)( 4000476c: d4 06 20 04 ld [ %i0 + 4 ], %o2 40004770: d2 06 00 00 ld [ %i0 ], %o1 40004774: 96 10 20 08 mov 8, %o3 40004778: 9f c7 40 00 call %i5 4000477c: 90 10 00 1c mov %i4, %o0 area->begin, area->size, page_size ); if ( space_available > 0 ) { 40004780: 80 a2 20 00 cmp %o0, 0 40004784: 32 80 00 02 bne,a 4000478c <== ALWAYS TAKEN 40004788: ba 10 00 1a mov %i2, %i5 4000478c: b0 06 20 08 add %i0, 8, %i0 for (i = 0; i < area_count; ++i) { 40004790: 80 a6 00 19 cmp %i0, %i1 40004794: 32 bf ff f7 bne,a 40004770 <== NEVER TAKEN 40004798: d4 06 20 04 ld [ %i0 + 4 ], %o2 <== NOT EXECUTED init_or_extend = extend; } } if ( init_or_extend == _Heap_Initialize ) { 4000479c: 80 a7 40 1b cmp %i5, %i3 400047a0: 02 80 00 04 be 400047b0 <== NEVER TAKEN 400047a4: 01 00 00 00 nop _Internal_error( INTERNAL_ERROR_NO_MEMORY_FOR_HEAP ); } } } 400047a8: 81 c7 e0 08 ret 400047ac: 81 e8 00 00 restore _Internal_error( INTERNAL_ERROR_NO_MEMORY_FOR_HEAP ); 400047b0: 40 00 0c 93 call 400079fc <_Internal_error> <== NOT EXECUTED 400047b4: 90 10 20 17 mov 0x17, %o0 <== NOT EXECUTED 400047b8: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 40004340 <_Console_simple_Read>: ssize_t _Console_simple_Read( rtems_libio_t *iop, void *buffer, size_t count ) { 40004340: 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 ) { 40004344: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 40004348: 04 80 00 0c ble 40004378 <_Console_simple_Read+0x38> <== NOT EXECUTED 4000434c: ba 10 20 00 clr %i5 <== NOT EXECUTED int c; do { c = getchark(); 40004350: 40 00 00 22 call 400043d8 <== NOT EXECUTED 40004354: 01 00 00 00 nop <== NOT EXECUTED } while (c == -1); 40004358: 80 a2 3f ff cmp %o0, -1 <== NOT EXECUTED 4000435c: 02 bf ff fd be 40004350 <_Console_simple_Read+0x10> <== NOT EXECUTED 40004360: 01 00 00 00 nop <== NOT EXECUTED buf[ i ] = (char) c; 40004364: d0 2e 40 1d stb %o0, [ %i1 + %i5 ] <== NOT EXECUTED for ( i = 0; i < n; ++i ) { 40004368: ba 07 60 01 inc %i5 <== NOT EXECUTED 4000436c: 80 a6 80 1d cmp %i2, %i5 <== NOT EXECUTED 40004370: 12 bf ff f8 bne 40004350 <_Console_simple_Read+0x10> <== NOT EXECUTED 40004374: 01 00 00 00 nop <== NOT EXECUTED } return n; } 40004378: 81 c7 e0 08 ret <== NOT EXECUTED 4000437c: 91 e8 00 1a restore %g0, %i2, %o0 <== NOT EXECUTED =============================================================================== 40004700 <_Malloc_Deferred_free>: __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40004700: 91 d0 20 09 ta 9 <== NOT EXECUTED old_last = tail->previous; 40004704: 05 10 00 47 sethi %hi(0x40011c00), %g2 <== NOT EXECUTED 40004708: 84 10 a3 38 or %g2, 0x338, %g2 ! 40011f38 <_Malloc_GC_list> <== NOT EXECUTED 4000470c: c6 00 a0 08 ld [ %g2 + 8 ], %g3 <== NOT EXECUTED the_node->next = tail; 40004710: 88 00 a0 04 add %g2, 4, %g4 <== NOT EXECUTED 40004714: c8 22 00 00 st %g4, [ %o0 ] <== NOT EXECUTED tail->previous = the_node; 40004718: d0 20 a0 08 st %o0, [ %g2 + 8 ] <== NOT EXECUTED old_last->next = the_node; 4000471c: d0 20 c0 00 st %o0, [ %g3 ] <== NOT EXECUTED the_node->previous = old_last; 40004720: c6 22 20 04 st %g3, [ %o0 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40004724: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40004728: 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 ); } 4000472c: 81 c3 e0 08 retl <== NOT EXECUTED 40004730: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 400045b4 <_Malloc_Process_deferred_frees>: return p; } void _Malloc_Process_deferred_frees( void ) { 400045b4: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400045b8: 91 d0 20 09 ta 9 <== NOT EXECUTED return _Chain_Immutable_head( the_chain )->next; 400045bc: 3b 10 00 47 sethi %hi(0x40011c00), %i5 400045c0: d0 07 63 38 ld [ %i5 + 0x338 ], %o0 ! 40011f38 <_Malloc_GC_list> 400045c4: ba 17 63 38 or %i5, 0x338, %i5 if ( !_Chain_Is_empty(the_chain)) 400045c8: b8 07 60 04 add %i5, 4, %i4 400045cc: 80 a2 00 1c cmp %o0, %i4 400045d0: 02 80 00 0e be 40004608 <_Malloc_Process_deferred_frees+0x54> <== ALWAYS TAKEN 400045d4: 01 00 00 00 nop new_first = old_first->next; 400045d8: c4 02 00 00 ld [ %o0 ], %g2 <== NOT EXECUTED head->next = new_first; 400045dc: c4 27 40 00 st %g2, [ %i5 ] <== NOT EXECUTED new_first->previous = head; 400045e0: fa 20 a0 04 st %i5, [ %g2 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400045e4: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400045e8: 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 ); 400045ec: 7f ff ff 65 call 40004380 <== NOT EXECUTED 400045f0: 01 00 00 00 nop <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400045f4: 91 d0 20 09 ta 9 <== NOT EXECUTED return _Chain_Immutable_head( the_chain )->next; 400045f8: d0 07 40 00 ld [ %i5 ], %o0 <== NOT EXECUTED if ( !_Chain_Is_empty(the_chain)) 400045fc: 80 a2 00 1c cmp %o0, %i4 <== NOT EXECUTED 40004600: 32 bf ff f7 bne,a 400045dc <_Malloc_Process_deferred_frees+0x28> <== NOT EXECUTED 40004604: c4 02 00 00 ld [ %o0 ], %g2 <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40004608: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000460c: 01 00 00 00 nop } } 40004610: 81 c7 e0 08 ret 40004614: 81 e8 00 00 restore =============================================================================== 40004578 <_Malloc_System_state>: _System_state_Current = state; } RTEMS_INLINE_ROUTINE System_state_Codes _System_state_Get ( void ) { return _System_state_Current; 40004578: 03 10 00 4e sethi %hi(0x40013800), %g1 <== NOT EXECUTED 4000457c: c2 00 61 b0 ld [ %g1 + 0x1b0 ], %g1 ! 400139b0 <_System_state_Current> <== NOT EXECUTED 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 ) ) { 40004580: 84 18 60 01 xor %g1, 1, %g2 <== NOT EXECUTED return MALLOC_SYSTEM_STATE_NORMAL; } else { return MALLOC_SYSTEM_STATE_NO_PROTECTION; 40004584: 80 a0 00 02 cmp %g0, %g2 <== NOT EXECUTED 40004588: 90 40 20 00 addx %g0, 0, %o0 <== NOT EXECUTED if ( _System_state_Is_up( state ) ) { 4000458c: 80 a0 60 02 cmp %g1, 2 <== NOT EXECUTED 40004590: 02 80 00 04 be 400045a0 <_Malloc_System_state+0x28> <== NOT EXECUTED 40004594: 01 00 00 00 nop <== NOT EXECUTED } } 40004598: 81 c3 e0 08 retl <== NOT EXECUTED 4000459c: 01 00 00 00 nop <== NOT EXECUTED 400045a0: c2 01 a0 18 ld [ %g6 + 0x18 ], %g1 <== NOT EXECUTED return MALLOC_SYSTEM_STATE_NO_ALLOCATION; 400045a4: 80 a0 00 01 cmp %g0, %g1 <== NOT EXECUTED 400045a8: 90 40 20 00 addx %g0, 0, %o0 <== NOT EXECUTED } 400045ac: 81 c3 e0 08 retl <== NOT EXECUTED 400045b0: 91 2a 20 01 sll %o0, 1, %o0 <== NOT EXECUTED =============================================================================== 40018154 <_calloc_r>: void *_calloc_r( struct _reent *ignored, size_t elements, size_t size ) { 40018154: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED (void) ignored; return calloc( elements, size ); 40018158: 92 10 00 0a mov %o2, %o1 <== NOT EXECUTED 4001815c: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40018160: 7f ff b3 b7 call 4000503c <== NOT EXECUTED 40018164: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4000ea3c <_close_r>: int _close_r( struct _reent *ptr RTEMS_UNUSED, int fd ) { return close( fd ); 4000ea3c: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 4000ea40: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 4000ea44: 7f ff ff c8 call 4000e964 <== NOT EXECUTED 4000ea48: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4000fcb4 <_free_r>: struct _reent *ignored, void *ptr ) { (void) ignored; free( ptr ); 4000fcb4: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 4000fcb8: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 4000fcbc: 7f ff d1 b1 call 40004380 <== NOT EXECUTED 4000fcc0: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40018260 <_fstat_r>: int _fstat_r( struct _reent *ptr RTEMS_UNUSED, int fd, struct stat *buf ) { 40018260: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED return fstat( fd, buf ); 40018264: 92 10 00 0a mov %o2, %o1 <== NOT EXECUTED 40018268: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 4001826c: 7f ff ff c3 call 40018178 <== NOT EXECUTED 40018270: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40004470 <_gettimeofday_r>: int _gettimeofday_r( struct _reent *ignored_reentrancy_stuff RTEMS_UNUSED, struct timeval *tp, void *__tz ) { 40004470: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED if ( !tp ) 40004474: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED 40004478: 02 80 00 06 be 40004490 <_gettimeofday_r+0x20> <== NOT EXECUTED 4000447c: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 40004480: 40 00 10 f6 call 40008858 <_Timecounter_Microtime> <== NOT EXECUTED 40004484: b0 10 20 00 clr %i0 <== NOT EXECUTED struct timezone *tzp = __tz; return gettimeofday( tp, tzp ); } 40004488: 81 c7 e0 08 ret <== NOT EXECUTED 4000448c: 81 e8 00 00 restore <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 40004490: 40 00 29 77 call 4000ea6c <__errno> <== NOT EXECUTED 40004494: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40004498: 82 10 20 0e mov 0xe, %g1 <== NOT EXECUTED 4000449c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 400044a0: 81 c7 e0 08 ret <== NOT EXECUTED 400044a4: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40018274 <_isatty_r>: struct _reent *ptr, int fd ) { (void) ptr; return isatty( fd ); 40018274: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 40018278: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 4001827c: 40 00 01 55 call 400187d0 <== NOT EXECUTED 40018280: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40018344 <_lseek_r>: struct _reent *ptr RTEMS_UNUSED, int fd, off_t offset, int whence ) { 40018344: 86 10 00 0b mov %o3, %g3 <== NOT EXECUTED return lseek( fd, offset, whence ); 40018348: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 4001834c: 96 10 00 0c mov %o4, %o3 <== NOT EXECUTED 40018350: 92 10 00 0a mov %o2, %o1 <== NOT EXECUTED 40018354: 94 10 00 03 mov %g3, %o2 <== NOT EXECUTED 40018358: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 4001835c: 7f ff ff ca call 40018284 <== NOT EXECUTED 40018360: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40018364 <_malloc_r>: struct _reent *ignored, size_t size ) { (void) ignored; return malloc( size ); 40018364: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 40018368: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 4001836c: 7f ff b4 8e call 400055a4 <== NOT EXECUTED 40018370: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4001845c <_read_r>: struct _reent *ptr RTEMS_UNUSED, int fd, void *buf, size_t nbytes ) { 4001845c: 82 10 00 0a mov %o2, %g1 <== NOT EXECUTED return read( fd, buf, nbytes ); 40018460: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 40018464: 94 10 00 0b mov %o3, %o2 <== NOT EXECUTED 40018468: 92 10 00 01 mov %g1, %o1 <== NOT EXECUTED 4001846c: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40018470: 7f ff ff c1 call 40018374 <== NOT EXECUTED 40018474: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40018478 <_realloc_r>: void *_realloc_r( struct _reent *ignored, void *ptr, size_t size ) { 40018478: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED (void) ignored; return realloc( ptr, size ); 4001847c: 92 10 00 0a mov %o2, %o1 <== NOT EXECUTED 40018480: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40018484: 40 00 00 09 call 400184a8 <== NOT EXECUTED 40018488: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4001848c <_write_r>: struct _reent *ptr RTEMS_UNUSED, int fd, const void *buf, size_t nbytes ) { 4001848c: 82 10 00 0a mov %o2, %g1 <== NOT EXECUTED return write( fd, buf, nbytes ); 40018490: 90 10 00 09 mov %o1, %o0 <== NOT EXECUTED 40018494: 94 10 00 0b mov %o3, %o2 <== NOT EXECUTED 40018498: 92 10 00 01 mov %g1, %o1 <== NOT EXECUTED 4001849c: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 400184a0: 40 00 00 48 call 400185c0 <== NOT EXECUTED 400184a4: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 4000e978 : #include int close( int fd ) { 4000e978: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_libio_t *iop; unsigned int flags; int rc; if ( (uint32_t) fd >= rtems_libio_number_iops ) { 4000e97c: 03 10 00 40 sethi %hi(0x40010000), %g1 <== NOT EXECUTED 4000e980: c2 00 61 e8 ld [ %g1 + 0x1e8 ], %g1 ! 400101e8 <== NOT EXECUTED 4000e984: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 4000e988: 1a 80 00 1b bcc 4000e9f4 <== NOT EXECUTED 4000e98c: 01 00 00 00 nop <== NOT EXECUTED 4000e990: b7 2e 20 01 sll %i0, 1, %i3 <== NOT EXECUTED 4000e994: b0 06 c0 18 add %i3, %i0, %i0 <== NOT EXECUTED 4000e998: 37 10 00 4c sethi %hi(0x40013000), %i3 <== NOT EXECUTED 4000e99c: b9 2e 20 04 sll %i0, 4, %i4 <== NOT EXECUTED 4000e9a0: b6 16 e2 20 or %i3, 0x220, %i3 <== NOT EXECUTED 4000e9a4: b8 06 c0 1c add %i3, %i4, %i4 <== NOT EXECUTED 4000e9a8: c4 07 20 08 ld [ %i4 + 8 ], %g2 <== NOT EXECUTED unsigned int actual; (void) succ; (void) fail; _ISR_Local_disable( level ); actual = *obj; 4000e9ac: 10 80 00 0f b 4000e9e8 <== NOT EXECUTED 4000e9b0: ba 10 00 1c mov %i4, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000e9b4: 91 d0 20 09 ta 9 <== NOT EXECUTED 4000e9b8: c6 07 60 08 ld [ %i5 + 8 ], %g3 <== NOT EXECUTED success = ( actual == *expected ); if ( success ) { 4000e9bc: 80 a1 00 03 cmp %g4, %g3 <== NOT EXECUTED 4000e9c0: 12 80 00 03 bne 4000e9cc <== NOT EXECUTED 4000e9c4: 84 08 ae ff and %g2, 0xeff, %g2 <== NOT EXECUTED *obj = desired; 4000e9c8: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000e9cc: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000e9d0: 01 00 00 00 nop <== NOT EXECUTED desired, ATOMIC_ORDER_ACQ_REL, ATOMIC_ORDER_RELAXED ); if ( success ) { 4000e9d4: 80 a1 00 03 cmp %g4, %g3 <== NOT EXECUTED 4000e9d8: 02 80 00 0d be 4000ea0c <== NOT EXECUTED 4000e9dc: 80 88 f0 00 btst -4096, %g3 <== NOT EXECUTED break; } if ( ( flags & ~( LIBIO_FLAGS_REFERENCE_INC - 1U ) ) != 0 ) { 4000e9e0: 12 80 00 16 bne 4000ea38 <== NOT EXECUTED 4000e9e4: 84 10 00 03 mov %g3, %g2 <== NOT EXECUTED if ( ( flags & LIBIO_FLAGS_OPEN ) == 0 ) { 4000e9e8: 80 88 a1 00 btst 0x100, %g2 <== NOT EXECUTED 4000e9ec: 12 bf ff f2 bne 4000e9b4 <== NOT EXECUTED 4000e9f0: 88 08 af ff and %g2, 0xfff, %g4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBADF ); 4000e9f4: 40 00 00 1e call 4000ea6c <__errno> <== NOT EXECUTED 4000e9f8: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000e9fc: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 4000ea00: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4000ea04: 81 c7 e0 08 ret <== NOT EXECUTED 4000ea08: 81 e8 00 00 restore <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBUSY ); } } rc = (*iop->pathinfo.handlers->close_h)( iop ); 4000ea0c: b1 2e 20 04 sll %i0, 4, %i0 <== NOT EXECUTED 4000ea10: b6 06 c0 18 add %i3, %i0, %i3 <== NOT EXECUTED 4000ea14: c2 06 e0 1c ld [ %i3 + 0x1c ], %g1 <== NOT EXECUTED 4000ea18: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 4000ea1c: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000ea20: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 4000ea24: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED rtems_libio_free( iop ); 4000ea28: 7f ff fc f9 call 4000de0c <== NOT EXECUTED 4000ea2c: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED return rc; } 4000ea30: 81 c7 e0 08 ret <== NOT EXECUTED 4000ea34: 81 e8 00 00 restore <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EBUSY ); 4000ea38: 40 00 00 0d call 4000ea6c <__errno> <== NOT EXECUTED 4000ea3c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000ea40: 82 10 20 10 mov 0x10, %g1 <== NOT EXECUTED 4000ea44: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4000ea48: 81 c7 e0 08 ret <== NOT EXECUTED 4000ea4c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40004380 : #include void free( void *ptr ) { 40004380: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED if ( !ptr ) 40004384: ba 96 20 00 orcc %i0, 0, %i5 <== NOT EXECUTED 40004388: 02 80 00 0d be 400043bc <== NOT EXECUTED 4000438c: 01 00 00 00 nop <== NOT EXECUTED return; /* * Do not attempt to free memory if in a critical section or ISR. */ if ( _Malloc_System_state() != MALLOC_SYSTEM_STATE_NORMAL ) { 40004390: 40 00 00 7a call 40004578 <_Malloc_System_state> <== NOT EXECUTED 40004394: 01 00 00 00 nop <== NOT EXECUTED 40004398: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000439c: 12 80 00 0a bne 400043c4 <== NOT EXECUTED 400043a0: 03 10 00 47 sethi %hi(0x40011c00), %g1 <== NOT EXECUTED _Malloc_Deferred_free(ptr); return; } if ( !_Protected_heap_Free( RTEMS_Malloc_Heap, ptr ) ) { 400043a4: d0 00 63 0c ld [ %g1 + 0x30c ], %o0 ! 40011f0c <== NOT EXECUTED 400043a8: 40 00 13 87 call 400091c4 <_Protected_heap_Free> <== NOT EXECUTED 400043ac: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 400043b0: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400043b4: 02 80 00 06 be 400043cc <== NOT EXECUTED 400043b8: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED rtems_fatal( RTEMS_FATAL_SOURCE_INVALID_HEAP_FREE, (rtems_fatal_code) ptr ); } } 400043bc: 81 c7 e0 08 ret <== NOT EXECUTED 400043c0: 81 e8 00 00 restore <== NOT EXECUTED _Malloc_Deferred_free(ptr); 400043c4: 40 00 00 cf call 40004700 <_Malloc_Deferred_free> <== NOT EXECUTED 400043c8: 81 e8 00 00 restore <== NOT EXECUTED 400043cc: 40 00 0d 79 call 400079b0 <_Terminate> <== NOT EXECUTED 400043d0: 90 10 20 0c mov 0xc, %o0 <== NOT EXECUTED 400043d4: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 40018178 : int fstat( int fd, struct stat *sbuf ) { 40018178: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED int rv; /* * Check to see if we were passed a valid pointer. */ if ( !sbuf ) 4001817c: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED 40018180: 02 80 00 32 be 40018248 <== NOT EXECUTED 40018184: 03 10 00 64 sethi %hi(0x40019000), %g1 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); /* * Now process the stat() request. */ LIBIO_GET_IOP( fd, iop ); 40018188: c2 00 61 58 ld [ %g1 + 0x158 ], %g1 ! 40019158 <== NOT EXECUTED 4001818c: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 40018190: 1a 80 00 28 bcc 40018230 <== NOT EXECUTED 40018194: 91 2e 20 01 sll %i0, 1, %o0 <== NOT EXECUTED 40018198: 39 10 00 72 sethi %hi(0x4001c800), %i4 <== NOT EXECUTED 4001819c: b0 02 00 18 add %o0, %i0, %i0 <== NOT EXECUTED 400181a0: b8 17 20 c0 or %i4, 0xc0, %i4 <== NOT EXECUTED 400181a4: b1 2e 20 04 sll %i0, 4, %i0 <== NOT EXECUTED 400181a8: ba 06 00 1c add %i0, %i4, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400181ac: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 400181b0: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 400181b4: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 400181b8: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400181bc: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400181c0: 01 00 00 00 nop <== NOT EXECUTED 400181c4: 80 88 a1 00 btst 0x100, %g2 <== NOT EXECUTED 400181c8: 02 80 00 14 be 40018218 <== NOT EXECUTED 400181cc: 94 10 20 60 mov 0x60, %o2 <== NOT EXECUTED /* * Zero out the stat structure so the various support * versions of stat don't have to. */ memset( sbuf, 0, sizeof(struct stat) ); 400181d0: 92 10 20 00 clr %o1 <== NOT EXECUTED 400181d4: 7f ff db d2 call 4000f11c <== NOT EXECUTED 400181d8: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED rv = (*iop->pathinfo.handlers->fstat_h)( &iop->pathinfo, sbuf ); 400181dc: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 400181e0: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 <== NOT EXECUTED 400181e4: 90 06 20 0c add %i0, 0xc, %o0 <== NOT EXECUTED 400181e8: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400181ec: 9f c0 40 00 call %g1 <== NOT EXECUTED 400181f0: 90 07 00 08 add %i4, %o0, %o0 <== NOT EXECUTED 400181f4: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400181f8: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 400181fc: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 40018200: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40018204: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40018208: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4001820c: 01 00 00 00 nop <== NOT EXECUTED rtems_libio_iop_drop( iop ); return rv; } 40018210: 81 c7 e0 08 ret <== NOT EXECUTED 40018214: 81 e8 00 00 restore <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40018218: 91 d0 20 09 ta 9 <== NOT EXECUTED 4001821c: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 40018220: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40018224: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40018228: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4001822c: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 40018230: 7f ff da 0e call 4000ea68 <__errno> <== NOT EXECUTED 40018234: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 40018238: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 4001823c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40018240: 81 c7 e0 08 ret <== NOT EXECUTED 40018244: 81 e8 00 00 restore <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EFAULT ); 40018248: 7f ff da 08 call 4000ea68 <__errno> <== NOT EXECUTED 4001824c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40018250: 82 10 20 0e mov 0xe, %g1 <== NOT EXECUTED 40018254: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40018258: 81 c7 e0 08 ret <== NOT EXECUTED 4001825c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000dc60 : #include #include int ftruncate( int fd, off_t length ) { 4000dc60: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED int rv = 0; if ( length >= 0 ) { 4000dc64: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED 4000dc68: 06 80 00 39 bl 4000dd4c <== NOT EXECUTED 4000dc6c: 03 10 00 40 sethi %hi(0x40010000), %g1 <== NOT EXECUTED rtems_libio_t *iop; LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_WRITE, EINVAL ); 4000dc70: c2 00 61 e8 ld [ %g1 + 0x1e8 ], %g1 ! 400101e8 <== NOT EXECUTED 4000dc74: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 4000dc78: 1a 80 00 1f bcc 4000dcf4 <== NOT EXECUTED 4000dc7c: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED return &rtems_libio_iops[ fd ]; 4000dc80: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 4000dc84: 31 10 00 4c sethi %hi(0x40013000), %i0 <== NOT EXECUTED 4000dc88: bb 2f 60 04 sll %i5, 4, %i5 <== NOT EXECUTED 4000dc8c: b0 16 22 20 or %i0, 0x220, %i0 <== NOT EXECUTED 4000dc90: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000dc94: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 4000dc98: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 4000dc9c: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 4000dca0: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000dca4: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000dca8: 01 00 00 00 nop <== NOT EXECUTED 4000dcac: 82 08 a1 04 and %g2, 0x104, %g1 <== NOT EXECUTED 4000dcb0: 80 a0 61 04 cmp %g1, 0x104 <== NOT EXECUTED 4000dcb4: 12 80 00 16 bne 4000dd0c <== NOT EXECUTED 4000dcb8: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED rv = (*iop->pathinfo.handlers->ftruncate_h)( iop, length ); 4000dcbc: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 4000dcc0: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 <== NOT EXECUTED 4000dcc4: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 4000dcc8: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000dccc: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4000dcd0: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000dcd4: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 4000dcd8: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4000dcdc: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4000dce0: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000dce4: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000dce8: 01 00 00 00 nop <== NOT EXECUTED 4000dcec: 81 c7 e0 08 ret <== NOT EXECUTED 4000dcf0: 81 e8 00 00 restore <== NOT EXECUTED LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_WRITE, EINVAL ); 4000dcf4: 40 00 03 5e call 4000ea6c <__errno> <== NOT EXECUTED 4000dcf8: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000dcfc: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 4000dd00: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4000dd04: 81 c7 e0 08 ret <== NOT EXECUTED 4000dd08: 81 e8 00 00 restore <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 4000dd0c: 91 d0 20 09 ta 9 <== NOT EXECUTED 4000dd10: c6 07 60 08 ld [ %i5 + 8 ], %g3 <== NOT EXECUTED 4000dd14: 86 00 f0 00 add %g3, -4096, %g3 <== NOT EXECUTED 4000dd18: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 4000dd1c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000dd20: 01 00 00 00 nop <== NOT EXECUTED 4000dd24: 84 08 a1 00 and %g2, 0x100, %g2 <== NOT EXECUTED 4000dd28: 80 a0 00 02 cmp %g0, %g2 <== NOT EXECUTED 4000dd2c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000dd30: 40 00 03 4f call 4000ea6c <__errno> <== NOT EXECUTED 4000dd34: ba 60 20 00 subx %g0, 0, %i5 <== NOT EXECUTED 4000dd38: ba 0f 60 0d and %i5, 0xd, %i5 <== NOT EXECUTED 4000dd3c: ba 07 60 09 add %i5, 9, %i5 <== NOT EXECUTED 4000dd40: fa 22 00 00 st %i5, [ %o0 ] <== NOT EXECUTED 4000dd44: 81 c7 e0 08 ret <== NOT EXECUTED 4000dd48: 81 e8 00 00 restore <== NOT EXECUTED rtems_libio_iop_drop( iop ); } else { errno = EINVAL; 4000dd4c: 40 00 03 48 call 4000ea6c <__errno> <== NOT EXECUTED 4000dd50: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000dd54: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 4000dd58: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED rv = -1; } return rv; } 4000dd5c: 81 c7 e0 08 ret <== NOT EXECUTED 4000dd60: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 400043d8 : #include #include int getchark(void) { 400043d8: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED if ( BSP_poll_char ) 400043dc: 03 10 00 48 sethi %hi(0x40012000), %g1 <== NOT EXECUTED 400043e0: d0 00 62 e0 ld [ %g1 + 0x2e0 ], %o0 ! 400122e0 <== NOT EXECUTED 400043e4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400043e8: 02 80 00 06 be 40004400 <== NOT EXECUTED 400043ec: 01 00 00 00 nop <== NOT EXECUTED return (*BSP_poll_char)(); 400043f0: 9f c2 00 00 call %o0 <== NOT EXECUTED 400043f4: 01 00 00 00 nop <== NOT EXECUTED 400043f8: 81 c7 e0 08 ret <== NOT EXECUTED 400043fc: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED return -1; } 40004400: 81 c7 e0 08 ret <== NOT EXECUTED 40004404: 91 e8 3f ff restore %g0, -1, %o0 <== NOT EXECUTED =============================================================================== 40004438 : */ int gettimeofday( struct timeval *__restrict tp, void *__restrict __tz RTEMS_UNUSED ) { 40004438: 9d e3 bf a0 save %sp, -96, %sp /* struct timezone* tzp = (struct timezone*) __tz; */ if ( !tp ) 4000443c: 80 a6 20 00 cmp %i0, 0 40004440: 02 80 00 06 be 40004458 <== NEVER TAKEN 40004444: 90 10 00 18 mov %i0, %o0 RTEMS_INLINE_ROUTINE void _TOD_Get_timeval( struct timeval *time ) { _Timecounter_Microtime( time ); 40004448: 40 00 11 04 call 40008858 <_Timecounter_Microtime> 4000444c: 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; } 40004450: 81 c7 e0 08 ret 40004454: 81 e8 00 00 restore rtems_set_errno_and_return_minus_one( EFAULT ); 40004458: 40 00 29 85 call 4000ea6c <__errno> <== NOT EXECUTED 4000445c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40004460: 82 10 20 0e mov 0xe, %g1 <== NOT EXECUTED 40004464: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 40004468: 81 c7 e0 08 ret <== NOT EXECUTED 4000446c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40018284 : #include #include off_t lseek( int fd, off_t offset, int whence ) { 40018284: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_libio_t *iop; off_t rv; LIBIO_GET_IOP( fd, iop ); 40018288: 03 10 00 64 sethi %hi(0x40019000), %g1 <== NOT EXECUTED 4001828c: c2 00 61 58 ld [ %g1 + 0x158 ], %g1 ! 40019158 <== NOT EXECUTED 40018290: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 40018294: 1a 80 00 26 bcc 4001832c <== NOT EXECUTED 40018298: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED 4001829c: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 400182a0: 31 10 00 72 sethi %hi(0x4001c800), %i0 <== NOT EXECUTED 400182a4: bb 2f 60 04 sll %i5, 4, %i5 <== NOT EXECUTED 400182a8: b0 16 20 c0 or %i0, 0xc0, %i0 <== NOT EXECUTED 400182ac: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400182b0: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 400182b4: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 400182b8: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 400182bc: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400182c0: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400182c4: 01 00 00 00 nop <== NOT EXECUTED 400182c8: 80 88 a1 00 btst 0x100, %g2 <== NOT EXECUTED 400182cc: 02 80 00 12 be 40018314 <== NOT EXECUTED 400182d0: 96 10 00 1b mov %i3, %o3 <== NOT EXECUTED rv = (*iop->pathinfo.handlers->lseek_h)( iop, offset, whence ); 400182d4: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 400182d8: c2 00 60 14 ld [ %g1 + 0x14 ], %g1 <== NOT EXECUTED 400182dc: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400182e0: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 400182e4: 9f c0 40 00 call %g1 <== NOT EXECUTED 400182e8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400182ec: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED 400182f0: b2 10 00 09 mov %o1, %i1 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400182f4: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 400182f8: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 400182fc: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40018300: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40018304: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40018308: 01 00 00 00 nop <== NOT EXECUTED rtems_libio_iop_drop( iop ); return rv; } 4001830c: 81 c7 e0 08 ret <== NOT EXECUTED 40018310: 81 e8 00 00 restore <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40018314: 91 d0 20 09 ta 9 <== NOT EXECUTED 40018318: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4001831c: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40018320: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40018324: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40018328: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP( fd, iop ); 4001832c: 7f ff d9 cf call 4000ea68 <__errno> <== NOT EXECUTED 40018330: b0 10 3f ff mov -1, %i0 ! ffffffff <== NOT EXECUTED 40018334: 82 10 20 09 mov 9, %g1 <== NOT EXECUTED 40018338: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4001833c: 81 c7 e0 08 ret <== NOT EXECUTED 40018340: 93 e8 3f ff restore %g0, -1, %o1 <== NOT EXECUTED =============================================================================== 400047bc : #include "malloc_p.h" void *malloc( size_t size ) { 400047bc: 9d e3 bf a0 save %sp, -96, %sp void *return_this; /* * Validate the parameters */ if ( !size ) 400047c0: 80 a6 20 00 cmp %i0, 0 400047c4: 02 80 00 0a be 400047ec <== NEVER TAKEN 400047c8: 90 10 00 18 mov %i0, %o0 return (void *) 0; return_this = rtems_heap_allocate_aligned_with_boundary( size, 0, 0 ); 400047cc: 94 10 20 00 clr %o2 400047d0: 7f ff ff 92 call 40004618 400047d4: 92 10 20 00 clr %o1 if ( !return_this ) { 400047d8: b0 92 20 00 orcc %o0, 0, %i0 400047dc: 02 80 00 06 be 400047f4 <== NEVER TAKEN 400047e0: 01 00 00 00 nop errno = ENOMEM; return (void *) 0; } return return_this; } 400047e4: 81 c7 e0 08 ret 400047e8: 81 e8 00 00 restore 400047ec: 81 c7 e0 08 ret <== NOT EXECUTED 400047f0: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED errno = ENOMEM; 400047f4: 40 00 28 9e call 4000ea6c <__errno> <== NOT EXECUTED 400047f8: 01 00 00 00 nop <== NOT EXECUTED 400047fc: 82 10 20 0c mov 0xc, %g1 ! c <_TLS_Alignment+0xb> <== NOT EXECUTED 40004800: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED return (void *) 0; 40004804: 81 c7 e0 08 ret <== NOT EXECUTED 40004808: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000492c : const char *target, const char *filesystemtype, rtems_filesystem_options_t options, const void *data ) { 4000492c: 9d e3 bf 50 save %sp, -176, %sp int rv = 0; if ( 40004930: 80 a6 e0 01 cmp %i3, 1 40004934: 18 80 00 b2 bgu 40004bfc <== NEVER TAKEN 40004938: 01 00 00 00 nop options == RTEMS_FILESYSTEM_READ_ONLY || options == RTEMS_FILESYSTEM_READ_WRITE ) { rtems_filesystem_fsmount_me_t fsmount_me_h = 4000493c: 40 00 25 7d call 4000df30 40004940: 90 10 00 1a mov %i2, %o0 rtems_filesystem_get_mount_handler( filesystemtype ); if ( fsmount_me_h != NULL ) { 40004944: a2 92 20 00 orcc %o0, 0, %l1 40004948: 02 80 00 ad be 40004bfc <== NEVER TAKEN 4000494c: 80 a6 60 00 cmp %i1, 0 const char *target = target_or_null != NULL ? target_or_null : "/"; 40004950: 02 80 00 78 be 40004b30 <== ALWAYS TAKEN 40004954: 90 10 00 19 mov %i1, %o0 40004958: 40 00 29 95 call 4000efac <== NOT EXECUTED 4000495c: a6 10 00 19 mov %i1, %l3 <== NOT EXECUTED 40004960: a4 02 20 01 add %o0, 1, %l2 <== NOT EXECUTED size_t filesystemtype_size = strlen( filesystemtype ) + 1; 40004964: 40 00 29 92 call 4000efac 40004968: 90 10 00 1a mov %i2, %o0 strlen( source_or_null ) + 1 : 0; 4000496c: 80 a6 20 00 cmp %i0, 0 size_t filesystemtype_size = strlen( filesystemtype ) + 1; 40004970: a8 02 20 01 add %o0, 1, %l4 strlen( source_or_null ) + 1 : 0; 40004974: 02 80 00 61 be 40004af8 <== ALWAYS TAKEN 40004978: ba 02 20 65 add %o0, 0x65, %i5 4000497c: 40 00 29 8c call 4000efac <== NOT EXECUTED 40004980: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED size_t size = sizeof( rtems_filesystem_mount_table_entry_t ) 40004984: 92 07 40 12 add %i5, %l2, %o1 <== NOT EXECUTED strlen( source_or_null ) + 1 : 0; 40004988: a0 02 20 01 add %o0, 1, %l0 <== NOT EXECUTED rtems_filesystem_mount_table_entry_t *mt_entry = calloc( 1, size ); 4000498c: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED 40004990: 7f ff fe 31 call 40004254 <== NOT EXECUTED 40004994: 92 02 40 10 add %o1, %l0, %o1 <== NOT EXECUTED if ( mt_entry != NULL ) { 40004998: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 4000499c: 12 80 00 08 bne 400049bc <== NOT EXECUTED 400049a0: 84 07 60 64 add %i5, 0x64, %g2 <== NOT EXECUTED if ( rv != 0 ) { free( mt_entry ); } } else { errno = ENOMEM; 400049a4: 40 00 28 32 call 4000ea6c <__errno> <== NOT EXECUTED 400049a8: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 400049ac: 82 10 20 0c mov 0xc, %g1 <== NOT EXECUTED 400049b0: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 400049b4: 81 c7 e0 08 ret <== NOT EXECUTED 400049b8: 81 e8 00 00 restore <== NOT EXECUTED memcpy( str, filesystemtype, filesystemtype_size ); 400049bc: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 400049c0: 94 10 00 14 mov %l4, %o2 <== NOT EXECUTED 400049c4: 40 00 28 58 call 4000eb24 <== NOT EXECUTED 400049c8: 90 10 00 02 mov %g2, %o0 <== NOT EXECUTED mt_entry->type = str; 400049cc: d0 27 60 34 st %o0, [ %i5 + 0x34 ] <== NOT EXECUTED str += filesystemtype_size; 400049d0: 84 02 00 14 add %o0, %l4, %g2 <== NOT EXECUTED memcpy( str, source_or_null, source_size ); 400049d4: 94 10 00 10 mov %l0, %o2 <== NOT EXECUTED 400049d8: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400049dc: 40 00 28 52 call 4000eb24 <== NOT EXECUTED 400049e0: 90 10 00 02 mov %g2, %o0 <== NOT EXECUTED mt_entry->dev = str; 400049e4: d0 27 60 38 st %o0, [ %i5 + 0x38 ] <== NOT EXECUTED rtems_filesystem_global_location_t *mt_fs_root = 400049e8: b4 07 60 40 add %i5, 0x40, %i2 <== NOT EXECUTED str += source_size; 400049ec: a0 02 00 10 add %o0, %l0, %l0 <== NOT EXECUTED memcpy( str, target, target_size ); 400049f0: 94 10 00 12 mov %l2, %o2 400049f4: 92 10 00 13 mov %l3, %o1 400049f8: 40 00 28 4b call 4000eb24 400049fc: 90 10 00 10 mov %l0, %o0 mt_entry->mounted = true; 40004a00: 82 10 20 01 mov 1, %g1 40004a04: c2 2f 60 28 stb %g1, [ %i5 + 0x28 ] mt_entry->pathconf_limits_and_options = &rtems_filesystem_default_pathconf; 40004a08: 03 10 00 41 sethi %hi(0x40010400), %g1 40004a0c: 82 10 61 10 or %g1, 0x110, %g1 ! 40010510 mt_entry->target = str; 40004a10: e0 27 60 30 st %l0, [ %i5 + 0x30 ] void *starting_address, size_t number_nodes, size_t node_size ) { _Chain_Initialize( 40004a14: 96 10 20 24 mov 0x24, %o3 mt_entry->pathconf_limits_and_options = &rtems_filesystem_default_pathconf; 40004a18: c2 27 60 2c st %g1, [ %i5 + 0x2c ] mt_fs_root->reference_count = 1; 40004a1c: 82 10 20 01 mov 1, %g1 mt_entry->mt_fs_root = mt_fs_root; 40004a20: f4 27 60 24 st %i2, [ %i5 + 0x24 ] 40004a24: 94 10 20 01 mov 1, %o2 mt_fs_root->reference_count = 1; 40004a28: c2 27 60 58 st %g1, [ %i5 + 0x58 ] 40004a2c: 92 10 00 1a mov %i2, %o1 mt_fs_root->location.mt_entry = mt_entry; 40004a30: fa 27 60 54 st %i5, [ %i5 + 0x54 ] 40004a34: 90 07 60 14 add %i5, 0x14, %o0 40004a38: 40 00 09 e5 call 400071cc <_Chain_Initialize> 40004a3c: b6 0e e0 01 and %i3, 1, %i3 mt_entry->writeable = options == RTEMS_FILESYSTEM_READ_WRITE; 40004a40: f6 2f 60 29 stb %i3, [ %i5 + 0x29 ] rv = (*fsmount_me_h)( mt_entry, data ); 40004a44: 92 10 00 1c mov %i4, %o1 40004a48: 9f c4 40 00 call %l1 40004a4c: 90 10 00 1d mov %i5, %o0 if ( rv == 0 ) { 40004a50: b0 92 20 00 orcc %o0, 0, %i0 40004a54: 12 80 00 25 bne 40004ae8 <== NEVER TAKEN 40004a58: 80 a6 60 00 cmp %i1, 0 if ( target != NULL ) { 40004a5c: 02 80 00 48 be 40004b7c <== ALWAYS TAKEN 40004a60: 94 10 20 1f mov 0x1f, %o2 rtems_filesystem_location_info_t *currentloc = 40004a64: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 40004a68: 40 00 03 02 call 40005670 <== NOT EXECUTED 40004a6c: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED const rtems_filesystem_mount_table_entry_t *mt_entry = loc->mt_entry; 40004a70: c2 02 20 14 ld [ %o0 + 0x14 ], %g1 <== NOT EXECUTED return (*mt_entry->ops->are_nodes_equal_h)( 40004a74: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED 40004a78: c4 00 a0 10 ld [ %g2 + 0x10 ], %g2 <== NOT EXECUTED 40004a7c: 9f c0 80 00 call %g2 <== NOT EXECUTED 40004a80: d2 00 60 24 ld [ %g1 + 0x24 ], %o1 <== NOT EXECUTED if ( !rtems_filesystem_location_is_instance_root( currentloc ) ) { 40004a84: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40004a88: 12 80 00 63 bne 40004c14 <== NOT EXECUTED 40004a8c: 92 07 bf e0 add %fp, -32, %o1 <== NOT EXECUTED rtems_filesystem_location_copy_and_detach( 40004a90: 40 00 04 4e call 40005bc8 <== NOT EXECUTED 40004a94: 90 07 bf b0 add %fp, -80, %o0 <== NOT EXECUTED mt_point_node = rtems_filesystem_location_transform_to_global( &targetloc ); 40004a98: 40 00 04 77 call 40005c74 <== NOT EXECUTED 40004a9c: 90 07 bf b0 add %fp, -80, %o0 <== NOT EXECUTED rv = (*mt_point_node->location.mt_entry->ops->mount_h)( mt_entry ); 40004aa0: c2 02 20 14 ld [ %o0 + 0x14 ], %g1 <== NOT EXECUTED 40004aa4: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED mt_entry->mt_point_node = mt_point_node; 40004aa8: d0 27 60 20 st %o0, [ %i5 + 0x20 ] <== NOT EXECUTED mt_point_node = rtems_filesystem_location_transform_to_global( &targetloc ); 40004aac: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED rv = (*mt_point_node->location.mt_entry->ops->mount_h)( mt_entry ); 40004ab0: c2 00 60 2c ld [ %g1 + 0x2c ], %g1 <== NOT EXECUTED 40004ab4: 9f c0 40 00 call %g1 <== NOT EXECUTED 40004ab8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if ( rv == 0 ) { 40004abc: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 40004ac0: 02 80 00 20 be 40004b40 <== NOT EXECUTED 40004ac4: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED rtems_filesystem_global_location_release( mt_point_node, true ); 40004ac8: 40 00 03 fb call 40005ab4 <== NOT EXECUTED 40004acc: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 40004ad0: 40 00 02 f4 call 400056a0 <== NOT EXECUTED 40004ad4: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED (*mt_entry->ops->fsunmount_me_h)( mt_entry ); 40004ad8: c2 07 60 0c ld [ %i5 + 0xc ], %g1 <== NOT EXECUTED 40004adc: c2 00 60 34 ld [ %g1 + 0x34 ], %g1 <== NOT EXECUTED 40004ae0: 9f c0 40 00 call %g1 <== NOT EXECUTED 40004ae4: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED free( mt_entry ); 40004ae8: 7f ff fe 26 call 40004380 <== NOT EXECUTED 40004aec: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED errno = EINVAL; rv = -1; } return rv; } 40004af0: 81 c7 e0 08 ret <== NOT EXECUTED 40004af4: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_mount_table_entry_t *mt_entry = calloc( 1, size ); 40004af8: 92 07 40 12 add %i5, %l2, %o1 40004afc: 7f ff fd d6 call 40004254 40004b00: 90 10 20 01 mov 1, %o0 if ( mt_entry != NULL ) { 40004b04: ba 92 20 00 orcc %o0, 0, %i5 40004b08: 02 bf ff a7 be 400049a4 <== NEVER TAKEN 40004b0c: 84 07 60 64 add %i5, 0x64, %g2 memcpy( str, filesystemtype, filesystemtype_size ); 40004b10: 92 10 00 1a mov %i2, %o1 40004b14: 94 10 00 14 mov %l4, %o2 40004b18: 90 10 00 02 mov %g2, %o0 40004b1c: 40 00 28 02 call 4000eb24 40004b20: b4 07 60 40 add %i5, 0x40, %i2 str += filesystemtype_size; 40004b24: a0 02 00 14 add %o0, %l4, %l0 mt_entry->type = str; 40004b28: 10 bf ff b2 b 400049f0 40004b2c: d0 27 60 34 st %o0, [ %i5 + 0x34 ] const char *target = target_or_null != NULL ? target_or_null : "/"; 40004b30: 27 10 00 40 sethi %hi(0x40010000), %l3 40004b34: a4 10 20 02 mov 2, %l2 40004b38: 10 bf ff 8b b 40004964 40004b3c: a6 14 e1 58 or %l3, 0x158, %l3 rtems_libio_lock(); 40004b40: 7f ff fe 84 call 40004550 <== NOT EXECUTED 40004b44: 01 00 00 00 nop <== NOT EXECUTED old_last = tail->previous; 40004b48: 03 10 00 47 sethi %hi(0x40011c00), %g1 <== NOT EXECUTED 40004b4c: 82 10 63 44 or %g1, 0x344, %g1 ! 40011f44 <== NOT EXECUTED 40004b50: c4 00 60 08 ld [ %g1 + 8 ], %g2 <== NOT EXECUTED the_node->next = tail; 40004b54: 86 00 60 04 add %g1, 4, %g3 <== NOT EXECUTED tail->previous = the_node; 40004b58: fa 20 60 08 st %i5, [ %g1 + 8 ] <== NOT EXECUTED the_node->next = tail; 40004b5c: c6 27 40 00 st %g3, [ %i5 ] <== NOT EXECUTED old_last->next = the_node; 40004b60: fa 20 80 00 st %i5, [ %g2 ] <== NOT EXECUTED rtems_libio_unlock(); 40004b64: 7f ff fe 80 call 40004564 <== NOT EXECUTED 40004b68: c4 27 60 04 st %g2, [ %i5 + 4 ] <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 40004b6c: 40 00 02 cd call 400056a0 <== NOT EXECUTED 40004b70: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED 40004b74: 81 c7 e0 08 ret <== NOT EXECUTED 40004b78: 81 e8 00 00 restore <== NOT EXECUTED rtems_libio_lock(); 40004b7c: 7f ff fe 75 call 40004550 40004b80: 01 00 00 00 nop return _Chain_Immutable_head( the_chain )->next; 40004b84: 03 10 00 47 sethi %hi(0x40011c00), %g1 if ( rtems_chain_is_empty( &rtems_filesystem_mount_table ) ) { 40004b88: c4 00 63 44 ld [ %g1 + 0x344 ], %g2 ! 40011f44 40004b8c: 82 10 63 44 or %g1, 0x344, %g1 40004b90: 86 00 60 04 add %g1, 4, %g3 40004b94: 80 a0 80 03 cmp %g2, %g3 40004b98: 12 80 00 27 bne 40004c34 <== NEVER TAKEN 40004b9c: 01 00 00 00 nop old_last = tail->previous; 40004ba0: c6 00 60 08 ld [ %g1 + 8 ], %g3 the_node->next = tail; 40004ba4: c4 27 40 00 st %g2, [ %i5 ] rtems_filesystem_global_location_obtain( &mt_entry->mt_fs_root ); 40004ba8: b8 07 60 24 add %i5, 0x24, %i4 tail->previous = the_node; 40004bac: fa 20 60 08 st %i5, [ %g1 + 8 ] old_last->next = the_node; 40004bb0: fa 20 c0 00 st %i5, [ %g3 ] rtems_libio_unlock(); 40004bb4: 7f ff fe 6c call 40004564 40004bb8: c6 27 60 04 st %g3, [ %i5 + 4 ] rtems_filesystem_global_location_t *new_fs_root = 40004bbc: 40 00 03 84 call 400059cc 40004bc0: 90 10 00 1c mov %i4, %o0 40004bc4: b6 10 00 08 mov %o0, %i3 rtems_filesystem_global_location_t *new_fs_current = 40004bc8: 40 00 03 81 call 400059cc 40004bcc: 90 10 00 1c mov %i4, %o0 &rtems_filesystem_root, 40004bd0: 40 00 00 fa call 40004fb8 40004bd4: ba 10 00 08 mov %o0, %i5 rtems_filesystem_global_location_assign( 40004bd8: 92 10 00 1b mov %i3, %o1 40004bdc: 40 00 03 d0 call 40005b1c 40004be0: 90 02 20 04 add %o0, 4, %o0 &rtems_filesystem_current, 40004be4: 40 00 00 f5 call 40004fb8 40004be8: 01 00 00 00 nop rtems_filesystem_global_location_assign( 40004bec: 40 00 03 cc call 40005b1c 40004bf0: 92 10 00 1d mov %i5, %o1 40004bf4: 81 c7 e0 08 ret 40004bf8: 81 e8 00 00 restore errno = EINVAL; 40004bfc: 40 00 27 9c call 4000ea6c <__errno> <== NOT EXECUTED 40004c00: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40004c04: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 40004c08: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED return rv; 40004c0c: 81 c7 e0 08 ret <== NOT EXECUTED 40004c10: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_eval_path_error( &ctx, EBUSY ); 40004c14: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED 40004c18: 40 00 01 db call 40005384 <== NOT EXECUTED 40004c1c: 92 10 20 10 mov 0x10, %o1 <== NOT EXECUTED rv = -1; 40004c20: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED rtems_filesystem_eval_path_cleanup( &ctx ); 40004c24: 40 00 02 9f call 400056a0 <== NOT EXECUTED 40004c28: 90 07 bf c8 add %fp, -56, %o0 <== NOT EXECUTED (*mt_entry->ops->fsunmount_me_h)( mt_entry ); 40004c2c: 10 bf ff ac b 40004adc <== NOT EXECUTED 40004c30: c2 07 60 0c ld [ %i5 + 0xc ], %g1 <== NOT EXECUTED errno = EINVAL; 40004c34: 40 00 27 8e call 4000ea6c <__errno> <== NOT EXECUTED 40004c38: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40004c3c: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 40004c40: 7f ff fe 49 call 40004564 <== NOT EXECUTED 40004c44: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED (*mt_entry->ops->fsunmount_me_h)( mt_entry ); 40004c48: 10 bf ff a5 b 40004adc <== NOT EXECUTED 40004c4c: c2 07 60 0c ld [ %i5 + 0xc ], %g1 <== NOT EXECUTED =============================================================================== 40004d4c : /** * POSIX 1003.1 5.3.1 - Open a File */ int open( const char *path, int oflag, ... ) { 40004d4c: 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 ); 40004d50: 82 07 a0 50 add %fp, 0x50, %g1 va_start( ap, oflag ); 40004d54: fa 27 a0 58 st %i5, [ %fp + 0x58 ] 40004d58: f4 27 a0 4c st %i2, [ %fp + 0x4c ] 40004d5c: f6 27 a0 50 st %i3, [ %fp + 0x50 ] 40004d60: f8 27 a0 54 st %i4, [ %fp + 0x54 ] iop = rtems_libio_allocate(); 40004d64: 40 00 24 15 call 4000ddb8 40004d68: c2 27 bf 64 st %g1, [ %fp + -156 ] if ( iop != NULL ) { 40004d6c: ba 92 20 00 orcc %o0, 0, %i5 40004d70: 02 80 00 76 be 40004f48 <== NEVER TAKEN 40004d74: 82 06 60 01 add %i1, 1, %g1 bool make = (oflag & O_CREAT) == O_CREAT; 40004d78: 86 0e 62 00 and %i1, 0x200, %g3 bool read_access = (rwflag & _FREAD) == _FREAD; 40004d7c: 94 08 60 01 and %g1, 1, %o2 bool exclusive = (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL); 40004d80: 84 0e 6a 00 and %i1, 0xa00, %g2 | (read_access ? RTEMS_FS_PERMS_READ : 0) 40004d84: 94 02 bf ff add %o2, -1, %o2 | (write_access ? RTEMS_FS_PERMS_WRITE : 0) 40004d88: b8 88 60 02 andcc %g1, 2, %i4 | (read_access ? RTEMS_FS_PERMS_READ : 0) 40004d8c: 94 0a bf fc and %o2, -4, %o2 | (write_access ? RTEMS_FS_PERMS_WRITE : 0) 40004d90: 02 80 00 03 be 40004d9c 40004d94: 94 02 a0 1c add %o2, 0x1c, %o2 40004d98: 94 12 a0 02 or %o2, 2, %o2 | (make ? RTEMS_FS_MAKE : 0) 40004d9c: 80 a0 e0 00 cmp %g3, 0 40004da0: 32 80 00 02 bne,a 40004da8 <== NEVER TAKEN 40004da4: 94 12 a0 20 or %o2, 0x20, %o2 <== NOT EXECUTED | (exclusive ? RTEMS_FS_EXCLUSIVE : 0); 40004da8: 80 a0 aa 00 cmp %g2, 0xa00 40004dac: 22 80 00 02 be,a 40004db4 <== NEVER TAKEN 40004db0: 94 12 a0 40 or %o2, 0x40, %o2 <== NOT EXECUTED rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); 40004db4: 92 10 00 18 mov %i0, %o1 40004db8: 40 00 02 2e call 40005670 40004dbc: 90 07 bf 68 add %fp, -152, %o0 40004dc0: f6 07 bf 74 ld [ %fp + -140 ], %i3 if ( rtems_filesystem_eval_path_has_token( &ctx ) ) { 40004dc4: 80 a6 e0 00 cmp %i3, 0 40004dc8: 12 80 00 45 bne 40004edc <== NEVER TAKEN 40004dcc: 80 a7 20 00 cmp %i4, 0 if ( write_access ) { 40004dd0: 02 80 00 0e be 40004e08 40004dd4: c2 07 bf 90 ld [ %fp + -112 ], %g1 const rtems_filesystem_location_info_t *loc ) { struct stat st; st.st_mode = 0; 40004dd8: c0 27 bf ac clr [ %fp + -84 ] (void) ( *loc->handlers->fstat_h )( loc, &st ); 40004ddc: 92 07 bf a0 add %fp, -96, %o1 40004de0: c2 00 60 18 ld [ %g1 + 0x18 ], %g1 40004de4: 9f c0 40 00 call %g1 40004de8: 90 07 bf 80 add %fp, -128, %o0 if ( S_ISDIR( type ) ) { 40004dec: 05 00 00 3c sethi %hi(0xf000), %g2 40004df0: c2 07 bf ac ld [ %fp + -84 ], %g1 40004df4: 82 08 40 02 and %g1, %g2, %g1 40004df8: 05 00 00 10 sethi %hi(0x4000), %g2 40004dfc: 80 a0 40 02 cmp %g1, %g2 40004e00: 02 80 00 4e be 40004f38 <== NEVER TAKEN 40004e04: 92 10 20 15 mov 0x15, %o1 rtems_filesystem_location_copy_and_detach( 40004e08: 92 07 bf 80 add %fp, -128, %o1 40004e0c: 40 00 03 6f call 40005bc8 40004e10: 90 07 60 0c add %i5, 0xc, %o0 rtems_filesystem_eval_path_cleanup( &ctx ); 40004e14: 40 00 02 23 call 400056a0 40004e18: 90 07 bf 68 add %fp, -152, %o0 _Atomic_Store_uint( 40004e1c: 40 00 23 da call 4000dd84 40004e20: 90 10 00 19 mov %i1, %o0 rv = (*iop->pathinfo.handlers->open_h)( iop, path, oflag, mode ); 40004e24: 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; 40004e28: d0 27 60 08 st %o0, [ %i5 + 8 ] 40004e2c: 92 10 00 18 mov %i0, %o1 40004e30: c2 00 40 00 ld [ %g1 ], %g1 40004e34: 96 10 00 1a mov %i2, %o3 40004e38: 94 10 00 19 mov %i1, %o2 40004e3c: 9f c0 40 00 call %g1 40004e40: 90 10 00 1d mov %i5, %o0 if ( rv == 0 ) { 40004e44: b0 92 20 00 orcc %o0, 0, %i0 40004e48: 12 80 00 13 bne 40004e94 <== NEVER TAKEN 40004e4c: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED int fd = rtems_libio_iop_to_descriptor( iop ); 40004e50: 31 10 00 4c sethi %hi(0x40013000), %i0 <== NOT EXECUTED 40004e54: 03 2a aa aa sethi %hi(0xaaaaa800), %g1 <== NOT EXECUTED 40004e58: b0 16 22 20 or %i0, 0x220, %i0 <== NOT EXECUTED 40004e5c: 82 10 62 ab or %g1, 0x2ab, %g1 <== NOT EXECUTED 40004e60: b0 27 40 18 sub %i5, %i0, %i0 <== NOT EXECUTED 40004e64: b1 3e 20 04 sra %i0, 4, %i0 <== NOT EXECUTED 40004e68: b0 5e 00 01 smul %i0, %g1, %i0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40004e6c: 91 d0 20 09 ta 9 <== NOT EXECUTED ISR_Level level; (void) order; _ISR_Local_disable( level ); val = *obj; *obj = val | arg; 40004e70: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 40004e74: 84 10 a1 00 or %g2, 0x100, %g2 <== NOT EXECUTED 40004e78: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40004e7c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40004e80: 01 00 00 00 nop if ( truncate ) { 40004e84: 80 8e 64 00 btst 0x400, %i1 40004e88: 12 80 00 07 bne 40004ea4 <== NEVER TAKEN 40004e8c: 92 10 20 00 clr %o1 if ( rv < 0 ) { 40004e90: 80 a6 20 00 cmp %i0, 0 40004e94: 06 80 00 0e bl 40004ecc <== NEVER TAKEN 40004e98: 01 00 00 00 nop } va_end( ap ); return rv; } 40004e9c: 81 c7 e0 08 ret 40004ea0: 81 e8 00 00 restore rv = ftruncate( fd, 0 ); 40004ea4: 94 10 20 00 clr %o2 <== NOT EXECUTED 40004ea8: 40 00 23 6e call 4000dc60 <== NOT EXECUTED 40004eac: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED if ( rv != 0 ) { 40004eb0: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40004eb4: 02 bf ff f7 be 40004e90 <== NOT EXECUTED 40004eb8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED (*iop->pathinfo.handlers->close_h)( iop ); 40004ebc: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 40004ec0: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 40004ec4: 9f c0 40 00 call %g1 <== NOT EXECUTED 40004ec8: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED rtems_libio_free( iop ); 40004ecc: 40 00 23 d0 call 4000de0c <== NOT EXECUTED 40004ed0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40004ed4: 81 c7 e0 08 ret <== NOT EXECUTED 40004ed8: 81 e8 00 00 restore <== NOT EXECUTED 40004edc: e0 07 bf 70 ld [ %fp + -144 ], %l0 <== NOT EXECUTED rv = rtems_filesystem_mknod( 40004ee0: 98 10 20 00 clr %o4 <== NOT EXECUTED 40004ee4: 9a 10 20 00 clr %o5 <== NOT EXECUTED 40004ee8: 17 00 00 20 sethi %hi(0x8000), %o3 <== NOT EXECUTED 40004eec: 94 10 00 1b mov %i3, %o2 <== NOT EXECUTED 40004ef0: 96 16 80 0b or %i2, %o3, %o3 <== NOT EXECUTED 40004ef4: 92 10 00 10 mov %l0, %o1 <== NOT EXECUTED 40004ef8: 7f ff fe 4c call 40004828 <== NOT EXECUTED 40004efc: 90 07 bf 80 add %fp, -128, %o0 <== NOT EXECUTED if ( rv == 0 ) { 40004f00: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40004f04: 02 80 00 06 be 40004f1c <== NOT EXECUTED 40004f08: 92 10 20 00 clr %o1 <== NOT EXECUTED rtems_filesystem_eval_path_error( ctx, 0 ); 40004f0c: 40 00 01 1e call 40005384 <== NOT EXECUTED 40004f10: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED if ( write_access ) { 40004f14: 10 bf ff af b 40004dd0 <== NOT EXECUTED 40004f18: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED ctx->flags = flags; 40004f1c: c0 27 bf 78 clr [ %fp + -136 ] <== NOT EXECUTED rtems_filesystem_eval_path_continue( ctx ); 40004f20: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED ctx->path = path; 40004f24: e0 27 bf 68 st %l0, [ %fp + -152 ] <== NOT EXECUTED 40004f28: 40 00 01 5f call 400054a4 <== NOT EXECUTED 40004f2c: f6 27 bf 6c st %i3, [ %fp + -148 ] <== NOT EXECUTED if ( write_access ) { 40004f30: 10 bf ff a8 b 40004dd0 <== NOT EXECUTED 40004f34: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED rtems_filesystem_eval_path_error( &ctx, EISDIR ); 40004f38: 40 00 01 13 call 40005384 <== NOT EXECUTED 40004f3c: 90 07 bf 68 add %fp, -152, %o0 <== NOT EXECUTED rtems_filesystem_location_copy_and_detach( 40004f40: 10 bf ff b3 b 40004e0c <== NOT EXECUTED 40004f44: 92 07 bf 80 add %fp, -128, %o1 <== NOT EXECUTED errno = ENFILE; 40004f48: 40 00 26 c9 call 4000ea6c <__errno> <== NOT EXECUTED 40004f4c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40004f50: 82 10 20 17 mov 0x17, %g1 <== NOT EXECUTED 40004f54: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } 40004f58: 81 c7 e0 08 ret <== NOT EXECUTED 40004f5c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40004f60 : /** * Kernel printf function requiring minimal infrastructure. */ int printk(const char *fmt, ...) { 40004f60: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED va_list ap; /* points to each unnamed argument in turn */ int len; va_start(ap, fmt); /* make ap point to 1st unnamed arg */ 40004f64: 82 07 a0 48 add %fp, 0x48, %g1 <== NOT EXECUTED 40004f68: f2 27 a0 48 st %i1, [ %fp + 0x48 ] <== NOT EXECUTED len = vprintk(fmt, ap); 40004f6c: 92 10 00 01 mov %g1, %o1 <== NOT EXECUTED va_start(ap, fmt); /* make ap point to 1st unnamed arg */ 40004f70: f4 27 a0 4c st %i2, [ %fp + 0x4c ] <== NOT EXECUTED len = vprintk(fmt, ap); 40004f74: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED va_start(ap, fmt); /* make ap point to 1st unnamed arg */ 40004f78: f6 27 a0 50 st %i3, [ %fp + 0x50 ] <== NOT EXECUTED 40004f7c: f8 27 a0 54 st %i4, [ %fp + 0x54 ] <== NOT EXECUTED 40004f80: fa 27 a0 58 st %i5, [ %fp + 0x58 ] <== NOT EXECUTED len = vprintk(fmt, ap); 40004f84: 40 00 03 e6 call 40005f1c <== NOT EXECUTED 40004f88: c2 27 bf fc st %g1, [ %fp + -4 ] <== NOT EXECUTED va_end(ap); /* clean up when done */ return len; } 40004f8c: 81 c7 e0 08 ret <== NOT EXECUTED 40004f90: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 40018374 : ssize_t read( int fd, void *buffer, size_t count ) { 40018374: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_libio_t *iop; ssize_t n; rtems_libio_check_buffer( buffer ); 40018378: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED 4001837c: 02 80 00 32 be 40018444 <== NOT EXECUTED 40018380: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED rtems_libio_check_count( count ); 40018384: 02 80 00 22 be 4001840c <== NOT EXECUTED 40018388: 84 10 20 00 clr %g2 <== NOT EXECUTED LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_READ, EBADF ); 4001838c: 03 10 00 64 sethi %hi(0x40019000), %g1 <== NOT EXECUTED 40018390: c2 00 61 58 ld [ %g1 + 0x158 ], %g1 ! 40019158 <== NOT EXECUTED 40018394: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 40018398: 1a 80 00 25 bcc 4001842c <== NOT EXECUTED 4001839c: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED 400183a0: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 400183a4: 31 10 00 72 sethi %hi(0x4001c800), %i0 <== NOT EXECUTED 400183a8: bb 2f 60 04 sll %i5, 4, %i5 <== NOT EXECUTED 400183ac: b0 16 20 c0 or %i0, 0xc0, %i0 <== NOT EXECUTED 400183b0: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400183b4: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 400183b8: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 400183bc: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 400183c0: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 400183c4: 91 d0 20 0a ta 0xa <== NOT EXECUTED 400183c8: 01 00 00 00 nop <== NOT EXECUTED 400183cc: 84 08 a1 02 and %g2, 0x102, %g2 <== NOT EXECUTED 400183d0: 80 a0 a1 02 cmp %g2, 0x102 <== NOT EXECUTED 400183d4: 12 80 00 10 bne 40018414 <== NOT EXECUTED 400183d8: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED /* * Now process the read(). */ n = (*iop->pathinfo.handlers->read_h)( iop, buffer, count ); 400183dc: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 400183e0: c2 00 60 08 ld [ %g1 + 8 ], %g1 <== NOT EXECUTED 400183e4: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400183e8: 9f c0 40 00 call %g1 <== NOT EXECUTED 400183ec: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400183f0: 84 10 00 08 mov %o0, %g2 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400183f4: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 400183f8: c6 07 60 08 ld [ %i5 + 8 ], %g3 <== NOT EXECUTED 400183fc: 86 00 f0 00 add %g3, -4096, %g3 <== NOT EXECUTED 40018400: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40018404: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40018408: 01 00 00 00 nop <== NOT EXECUTED rtems_libio_iop_drop( iop ); return n; } 4001840c: 81 c7 e0 08 ret <== NOT EXECUTED 40018410: 91 e8 00 02 restore %g0, %g2, %o0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40018414: 91 d0 20 09 ta 9 <== NOT EXECUTED 40018418: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 4001841c: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 40018420: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40018424: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40018428: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_READ, EBADF ); 4001842c: 7f ff d9 8f call 4000ea68 <__errno> <== NOT EXECUTED 40018430: 01 00 00 00 nop <== NOT EXECUTED 40018434: 82 10 20 09 mov 9, %g1 ! 9 <_TLS_Alignment+0x8> <== NOT EXECUTED 40018438: 84 10 3f ff mov -1, %g2 <== NOT EXECUTED 4001843c: 10 bf ff f4 b 4001840c <== NOT EXECUTED 40018440: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED rtems_libio_check_buffer( buffer ); 40018444: 7f ff d9 89 call 4000ea68 <__errno> <== NOT EXECUTED 40018448: 01 00 00 00 nop <== NOT EXECUTED 4001844c: 82 10 20 16 mov 0x16, %g1 ! 16 <_TLS_Alignment+0x15> <== NOT EXECUTED 40018450: 84 10 3f ff mov -1, %g2 <== NOT EXECUTED 40018454: 10 bf ff ee b 4001840c <== NOT EXECUTED 40018458: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED =============================================================================== 400184a8 : return new_ptr; } void *realloc( void *ptr, size_t size ) { 400184a8: 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 ) { 400184ac: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED 400184b0: 02 80 00 40 be 400185b0 <== NOT EXECUTED 400184b4: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED free( ptr ); return NULL; } if ( ptr == NULL ) { 400184b8: 02 80 00 34 be 40018588 <== NOT EXECUTED 400184bc: 03 10 00 6c sethi %hi(0x4001b000), %g1 <== NOT EXECUTED return malloc( size ); } heap = RTEMS_Malloc_Heap; switch ( _Malloc_System_state() ) { 400184c0: 7f ff b3 a8 call 40005360 <_Malloc_System_state> <== NOT EXECUTED 400184c4: fa 00 63 4c ld [ %g1 + 0x34c ], %i5 ! 4001b34c <== NOT EXECUTED 400184c8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400184cc: 02 80 00 21 be 40018550 <== NOT EXECUTED 400184d0: 01 00 00 00 nop <== NOT EXECUTED 400184d4: 80 a2 20 01 cmp %o0, 1 <== NOT EXECUTED 400184d8: 32 80 00 2e bne,a 40018590 <== NOT EXECUTED 400184dc: 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 ); 400184e0: 98 07 bf fc add %fp, -4, %o4 <== NOT EXECUTED 400184e4: 96 07 bf f8 add %fp, -8, %o3 <== NOT EXECUTED 400184e8: 94 10 00 19 mov %i1, %o2 <== NOT EXECUTED 400184ec: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400184f0: 40 00 00 6e call 400186a8 <_Heap_Resize_block> <== NOT EXECUTED 400184f4: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400184f8: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED break; default: return NULL; } switch ( status ) { 400184fc: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED 40018500: 02 80 00 12 be 40018548 <== NOT EXECUTED 40018504: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED 40018508: 80 a7 20 01 cmp %i4, 1 <== NOT EXECUTED 4001850c: 12 80 00 23 bne 40018598 <== NOT EXECUTED 40018510: f8 07 bf f8 ld [ %fp + -8 ], %i4 <== NOT EXECUTED new_ptr = malloc( new_size ); 40018514: 7f ff b4 24 call 400055a4 <== NOT EXECUTED 40018518: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED if ( new_ptr == NULL ) { 4001851c: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 40018520: 02 80 00 0a be 40018548 <== NOT EXECUTED 40018524: 80 a7 00 19 cmp %i4, %i1 <== NOT EXECUTED memcpy( new_ptr, old_ptr, ( new_size < old_size ) ? new_size : old_size ); 40018528: 08 80 00 03 bleu 40018534 <== NOT EXECUTED 4001852c: 94 10 00 1c mov %i4, %o2 <== NOT EXECUTED 40018530: 94 10 00 19 mov %i1, %o2 <== NOT EXECUTED 40018534: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40018538: 7f ff da bd call 4000f02c <== NOT EXECUTED 4001853c: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED free( old_ptr ); 40018540: 7f ff b3 0a call 40005168 <== NOT EXECUTED 40018544: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED return new_alloc( ptr, size, old_size ); default: errno = EINVAL; return NULL; } } 40018548: 81 c7 e0 08 ret <== NOT EXECUTED 4001854c: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED _RTEMS_Lock_allocator(); 40018550: 7f ff bc af call 4000780c <_RTEMS_Lock_allocator> <== NOT EXECUTED 40018554: 01 00 00 00 nop <== NOT EXECUTED _Malloc_Process_deferred_frees(); 40018558: 7f ff b3 91 call 4000539c <_Malloc_Process_deferred_frees> <== NOT EXECUTED 4001855c: 01 00 00 00 nop <== NOT EXECUTED status = _Heap_Resize_block( heap, ptr, size, &old_size, &avail_size ); 40018560: 98 07 bf fc add %fp, -4, %o4 <== NOT EXECUTED 40018564: 96 07 bf f8 add %fp, -8, %o3 <== NOT EXECUTED 40018568: 94 10 00 19 mov %i1, %o2 <== NOT EXECUTED 4001856c: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40018570: 40 00 00 4e call 400186a8 <_Heap_Resize_block> <== NOT EXECUTED 40018574: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED _RTEMS_Unlock_allocator(); 40018578: 7f ff bc aa call 40007820 <_RTEMS_Unlock_allocator> <== NOT EXECUTED 4001857c: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED break; 40018580: 10 bf ff e0 b 40018500 <== NOT EXECUTED 40018584: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED return malloc( size ); 40018588: 7f ff b4 07 call 400055a4 <== NOT EXECUTED 4001858c: 91 e8 00 19 restore %g0, %i1, %o0 <== NOT EXECUTED } 40018590: 81 c7 e0 08 ret <== NOT EXECUTED 40018594: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED errno = EINVAL; 40018598: 7f ff d9 34 call 4000ea68 <__errno> <== NOT EXECUTED 4001859c: ba 10 20 00 clr %i5 <== NOT EXECUTED 400185a0: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 400185a4: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } 400185a8: 81 c7 e0 08 ret <== NOT EXECUTED 400185ac: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED free( ptr ); 400185b0: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400185b4: 7f ff b2 ed call 40005168 <== NOT EXECUTED 400185b8: ba 10 20 00 clr %i5 <== NOT EXECUTED return NULL; 400185bc: 30 bf ff e3 b,a 40018548 <== NOT EXECUTED =============================================================================== 4000e8c4 : uint32_t rtems_assoc_local_by_remote( const rtems_assoc_t *ap, uint32_t remote_value ) { 4000e8c4: 9d e3 bf a0 save %sp, -96, %sp const rtems_assoc_t *nap; nap = rtems_assoc_ptr_by_remote(ap, remote_value); 4000e8c8: 90 10 00 18 mov %i0, %o0 4000e8cc: 92 10 00 19 mov %i1, %o1 4000e8d0: 40 00 00 07 call 4000e8ec 4000e8d4: b0 10 20 00 clr %i0 if (nap) 4000e8d8: 80 a2 20 00 cmp %o0, 0 4000e8dc: 32 80 00 02 bne,a 4000e8e4 <== ALWAYS TAKEN 4000e8e0: f0 02 20 04 ld [ %o0 + 4 ], %i0 return nap->local_value; return 0; } 4000e8e4: 81 c7 e0 08 ret 4000e8e8: 81 e8 00 00 restore =============================================================================== 4000e878 : uint32_t rtems_assoc_local_by_remote_bitfield( const rtems_assoc_t *ap, uint32_t remote_value ) { 4000e878: 9d e3 bf a0 save %sp, -96, %sp 4000e87c: b8 10 20 20 mov 0x20, %i4 uint32_t b; uint32_t local_value = 0; 4000e880: b6 10 20 00 clr %i3 for (b = 1; b; b <<= 1) { 4000e884: 10 80 00 04 b 4000e894 4000e888: ba 10 20 01 mov 1, %i5 4000e88c: 02 80 00 0c be 4000e8bc 4000e890: bb 2f 60 01 sll %i5, 1, %i5 if (b & remote_value) 4000e894: 80 8e 40 1d btst %i1, %i5 4000e898: 22 bf ff fd be,a 4000e88c <== ALWAYS TAKEN 4000e89c: b8 87 3f ff addcc %i4, -1, %i4 local_value |= rtems_assoc_local_by_remote(ap, b); 4000e8a0: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 4000e8a4: 40 00 00 08 call 4000e8c4 <== NOT EXECUTED 4000e8a8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED for (b = 1; b; b <<= 1) { 4000e8ac: bb 2f 60 01 sll %i5, 1, %i5 <== NOT EXECUTED 4000e8b0: b8 87 3f ff addcc %i4, -1, %i4 <== NOT EXECUTED 4000e8b4: 12 bf ff f8 bne 4000e894 <== NOT EXECUTED 4000e8b8: b6 16 c0 08 or %i3, %o0, %i3 <== NOT EXECUTED } return local_value; } 4000e8bc: 81 c7 e0 08 ret 4000e8c0: 91 e8 00 1b restore %g0, %i3, %o0 =============================================================================== 4000e8ec : const rtems_assoc_t *rtems_assoc_ptr_by_remote( const rtems_assoc_t *ap, uint32_t remote_value ) { 4000e8ec: 9d e3 bf a0 save %sp, -96, %sp const rtems_assoc_t *default_ap = 0; if (rtems_assoc_is_default(ap)) 4000e8f0: d0 06 00 00 ld [ %i0 ], %o0 { 4000e8f4: ba 10 00 18 mov %i0, %i5 if (rtems_assoc_is_default(ap)) 4000e8f8: 80 a2 20 00 cmp %o0, 0 4000e8fc: 02 80 00 16 be 4000e954 <== NEVER TAKEN 4000e900: b0 10 20 00 clr %i0 4000e904: 13 10 00 43 sethi %hi(0x40010c00), %o1 4000e908: 40 00 01 4e call 4000ee40 4000e90c: 92 12 60 d0 or %o1, 0xd0, %o1 ! 40010cd0 4000e910: 80 a2 20 00 cmp %o0, 0 4000e914: 22 80 00 12 be,a 4000e95c <== NEVER TAKEN 4000e918: c4 07 60 0c ld [ %i5 + 0xc ], %g2 <== NOT EXECUTED default_ap = ap++; for ( ; ap->name; ap++) if (ap->remote_value == remote_value) 4000e91c: c2 07 60 08 ld [ %i5 + 8 ], %g1 4000e920: 80 a6 40 01 cmp %i1, %g1 4000e924: 32 80 00 08 bne,a 4000e944 4000e928: ba 07 60 0c add %i5, 0xc, %i5 for ( ; ap->name; ap++) 4000e92c: 81 c7 e0 08 ret 4000e930: 91 e8 00 1d restore %g0, %i5, %o0 if (ap->remote_value == remote_value) 4000e934: 80 a0 40 19 cmp %g1, %i1 4000e938: 22 80 00 07 be,a 4000e954 <== ALWAYS TAKEN 4000e93c: b0 10 00 1d mov %i5, %i0 for ( ; ap->name; ap++) 4000e940: ba 07 60 0c add %i5, 0xc, %i5 <== NOT EXECUTED 4000e944: c2 07 40 00 ld [ %i5 ], %g1 4000e948: 80 a0 60 00 cmp %g1, 0 4000e94c: 32 bf ff fa bne,a 4000e934 <== ALWAYS TAKEN 4000e950: c2 07 60 08 ld [ %i5 + 8 ], %g1 4000e954: 81 c7 e0 08 ret 4000e958: 81 e8 00 00 restore default_ap = ap++; 4000e95c: 82 07 60 0c add %i5, 0xc, %g1 <== NOT EXECUTED for ( ; ap->name; ap++) 4000e960: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED 4000e964: 80 a0 a0 00 cmp %g2, 0 <== NOT EXECUTED 4000e968: 12 bf ff ed bne 4000e91c <== NOT EXECUTED 4000e96c: ba 10 00 01 mov %g1, %i5 <== NOT EXECUTED 4000e970: 81 c7 e0 08 ret <== NOT EXECUTED 4000e974: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40004fb8 : { 40004fb8: 9d e3 bf a0 save %sp, -96, %sp void *ptr = pthread_getspecific(rtems_current_user_env_key); 40004fbc: 03 10 00 4e sethi %hi(0x40013800), %g1 40004fc0: 40 00 03 fb call 40005fac 40004fc4: d0 00 60 d4 ld [ %g1 + 0xd4 ], %o0 ! 400138d4 if (ptr == NULL) { 40004fc8: b0 92 20 00 orcc %o0, 0, %i0 40004fcc: 22 80 00 04 be,a 40004fdc <== ALWAYS TAKEN 40004fd0: 31 10 00 47 sethi %hi(0x40011c00), %i0 } 40004fd4: 81 c7 e0 08 ret <== NOT EXECUTED 40004fd8: 81 e8 00 00 restore <== NOT EXECUTED 40004fdc: 81 c7 e0 08 ret 40004fe0: 91 ee 23 50 restore %i0, 0x350, %o0 =============================================================================== 4000e044 : int rtems_deviceio_close( rtems_libio_t *iop, rtems_device_major_number major, rtems_device_minor_number minor ) { 4000e044: 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 ); 4000e048: 94 07 bf f4 add %fp, -12, %o2 <== NOT EXECUTED 4000e04c: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED args.iop = iop; 4000e050: f0 27 bf f4 st %i0, [ %fp + -12 ] <== NOT EXECUTED status = rtems_io_close( major, minor, &args ); 4000e054: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED args.flags = 0; 4000e058: c0 27 bf f8 clr [ %fp + -8 ] <== NOT EXECUTED status = rtems_io_close( major, minor, &args ); 4000e05c: 40 00 00 ae call 4000e314 <== NOT EXECUTED 4000e060: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED return rtems_status_code_to_errno( status ); 4000e064: 40 00 00 96 call 4000e2bc <== NOT EXECUTED 4000e068: 01 00 00 00 nop <== NOT EXECUTED } 4000e06c: 81 c7 e0 08 ret <== NOT EXECUTED 4000e070: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 4000e154 : ioctl_command_t command, void *buffer, rtems_device_major_number major, rtems_device_minor_number minor ) { 4000e154: 9d e3 bf 90 save %sp, -112, %sp <== NOT EXECUTED rtems_status_code status; rtems_libio_ioctl_args_t args; args.iop = iop; 4000e158: f0 27 bf f0 st %i0, [ %fp + -16 ] <== NOT EXECUTED args.command = command; args.buffer = buffer; status = rtems_io_control( major, minor, &args ); 4000e15c: 94 07 bf f0 add %fp, -16, %o2 <== NOT EXECUTED args.command = command; 4000e160: f2 27 bf f4 st %i1, [ %fp + -12 ] <== NOT EXECUTED status = rtems_io_control( major, minor, &args ); 4000e164: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED args.buffer = buffer; 4000e168: f4 27 bf f8 st %i2, [ %fp + -8 ] <== NOT EXECUTED status = rtems_io_control( major, minor, &args ); 4000e16c: 40 00 00 82 call 4000e374 <== NOT EXECUTED 4000e170: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED if ( status == RTEMS_SUCCESSFUL ) { 4000e174: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000e178: 12 80 00 05 bne 4000e18c <== NOT EXECUTED 4000e17c: 01 00 00 00 nop <== NOT EXECUTED return args.ioctl_return; 4000e180: f0 07 bf fc ld [ %fp + -4 ], %i0 <== NOT EXECUTED 4000e184: 81 c7 e0 08 ret <== NOT EXECUTED 4000e188: 81 e8 00 00 restore <== NOT EXECUTED } else { return rtems_status_code_to_errno(status); 4000e18c: 40 00 00 4c call 4000e2bc <== NOT EXECUTED 4000e190: 01 00 00 00 nop <== NOT EXECUTED } } 4000e194: 81 c7 e0 08 ret <== NOT EXECUTED 4000e198: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 4000e010 : int oflag, mode_t mode, rtems_device_major_number major, rtems_device_minor_number minor ) { 4000e010: 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; 4000e014: c2 06 20 08 ld [ %i0 + 8 ], %g1 <== NOT EXECUTED args.mode = mode; status = rtems_io_open( major, minor, &args ); 4000e018: 94 07 bf f4 add %fp, -12, %o2 <== NOT EXECUTED 4000e01c: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED args.iop = iop; 4000e020: f0 27 bf f4 st %i0, [ %fp + -12 ] <== NOT EXECUTED status = rtems_io_open( major, minor, &args ); 4000e024: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED args.flags = iop->flags; 4000e028: c2 27 bf f8 st %g1, [ %fp + -8 ] <== NOT EXECUTED status = rtems_io_open( major, minor, &args ); 4000e02c: 40 00 01 01 call 4000e430 <== NOT EXECUTED 4000e030: f6 27 bf fc st %i3, [ %fp + -4 ] <== NOT EXECUTED return rtems_status_code_to_errno( status ); 4000e034: 40 00 00 a2 call 4000e2bc <== NOT EXECUTED 4000e038: 01 00 00 00 nop <== NOT EXECUTED } 4000e03c: 81 c7 e0 08 ret <== NOT EXECUTED 4000e040: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 4000e074 : void *buf, size_t nbyte, rtems_device_major_number major, rtems_device_minor_number minor ) { 4000e074: 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; 4000e078: c4 1e 00 00 ldd [ %i0 ], %g2 <== NOT EXECUTED args.buffer = buf; args.count = nbyte; args.flags = iop->flags; 4000e07c: c2 06 20 08 ld [ %i0 + 8 ], %g1 <== NOT EXECUTED args.iop = iop; 4000e080: f0 27 bf e0 st %i0, [ %fp + -32 ] <== NOT EXECUTED args.bytes_moved = 0; status = rtems_io_read( major, minor, &args ); 4000e084: 94 07 bf e0 add %fp, -32, %o2 <== NOT EXECUTED args.offset = iop->offset; 4000e088: c4 3f bf e8 std %g2, [ %fp + -24 ] <== NOT EXECUTED status = rtems_io_read( major, minor, &args ); 4000e08c: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED args.buffer = buf; 4000e090: f2 27 bf f0 st %i1, [ %fp + -16 ] <== NOT EXECUTED status = rtems_io_read( major, minor, &args ); 4000e094: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED args.count = nbyte; 4000e098: f4 27 bf f4 st %i2, [ %fp + -12 ] <== NOT EXECUTED { 4000e09c: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED args.flags = iop->flags; 4000e0a0: c2 27 bf f8 st %g1, [ %fp + -8 ] <== NOT EXECUTED status = rtems_io_read( major, minor, &args ); 4000e0a4: 40 00 00 fb call 4000e490 <== NOT EXECUTED 4000e0a8: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED if ( status == RTEMS_SUCCESSFUL ) { 4000e0ac: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000e0b0: 12 80 00 09 bne 4000e0d4 <== NOT EXECUTED 4000e0b4: 01 00 00 00 nop <== NOT EXECUTED iop->offset += args.bytes_moved; 4000e0b8: f4 1f 40 00 ldd [ %i5 ], %i2 <== NOT EXECUTED 4000e0bc: f0 07 bf fc ld [ %fp + -4 ], %i0 <== NOT EXECUTED 4000e0c0: 86 86 c0 18 addcc %i3, %i0, %g3 <== NOT EXECUTED 4000e0c4: 84 46 a0 00 addx %i2, 0, %g2 <== NOT EXECUTED 4000e0c8: c4 3f 40 00 std %g2, [ %i5 ] <== NOT EXECUTED return (ssize_t) args.bytes_moved; 4000e0cc: 81 c7 e0 08 ret <== NOT EXECUTED 4000e0d0: 81 e8 00 00 restore <== NOT EXECUTED } else { return rtems_status_code_to_errno( status ); 4000e0d4: 40 00 00 7a call 4000e2bc <== NOT EXECUTED 4000e0d8: 01 00 00 00 nop <== NOT EXECUTED } } 4000e0dc: 81 c7 e0 08 ret <== NOT EXECUTED 4000e0e0: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 4000e0e4 : const void *buf, size_t nbyte, rtems_device_major_number major, rtems_device_minor_number minor ) { 4000e0e4: 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; 4000e0e8: c4 1e 00 00 ldd [ %i0 ], %g2 <== NOT EXECUTED args.buffer = RTEMS_DECONST( void *, buf ); args.count = nbyte; args.flags = iop->flags; 4000e0ec: c2 06 20 08 ld [ %i0 + 8 ], %g1 <== NOT EXECUTED args.iop = iop; 4000e0f0: f0 27 bf e0 st %i0, [ %fp + -32 ] <== NOT EXECUTED args.bytes_moved = 0; status = rtems_io_write( major, minor, &args ); 4000e0f4: 94 07 bf e0 add %fp, -32, %o2 <== NOT EXECUTED args.offset = iop->offset; 4000e0f8: c4 3f bf e8 std %g2, [ %fp + -24 ] <== NOT EXECUTED status = rtems_io_write( major, minor, &args ); 4000e0fc: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED args.buffer = RTEMS_DECONST( void *, buf ); 4000e100: f2 27 bf f0 st %i1, [ %fp + -16 ] <== NOT EXECUTED status = rtems_io_write( major, minor, &args ); 4000e104: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED args.count = nbyte; 4000e108: f4 27 bf f4 st %i2, [ %fp + -12 ] <== NOT EXECUTED { 4000e10c: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED args.flags = iop->flags; 4000e110: c2 27 bf f8 st %g1, [ %fp + -8 ] <== NOT EXECUTED status = rtems_io_write( major, minor, &args ); 4000e114: 40 00 00 f7 call 4000e4f0 <== NOT EXECUTED 4000e118: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED if ( status == RTEMS_SUCCESSFUL ) { 4000e11c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000e120: 12 80 00 09 bne 4000e144 <== NOT EXECUTED 4000e124: 01 00 00 00 nop <== NOT EXECUTED iop->offset += args.bytes_moved; 4000e128: f4 1f 40 00 ldd [ %i5 ], %i2 <== NOT EXECUTED 4000e12c: f0 07 bf fc ld [ %fp + -4 ], %i0 <== NOT EXECUTED 4000e130: 86 86 c0 18 addcc %i3, %i0, %g3 <== NOT EXECUTED 4000e134: 84 46 a0 00 addx %i2, 0, %g2 <== NOT EXECUTED 4000e138: c4 3f 40 00 std %g2, [ %i5 ] <== NOT EXECUTED return (ssize_t) args.bytes_moved; 4000e13c: 81 c7 e0 08 ret <== NOT EXECUTED 4000e140: 81 e8 00 00 restore <== NOT EXECUTED } else { return rtems_status_code_to_errno( status ); 4000e144: 40 00 00 5e call 4000e2bc <== NOT EXECUTED 4000e148: 01 00 00 00 nop <== NOT EXECUTED } } 4000e14c: 81 c7 e0 08 ret <== NOT EXECUTED 4000e150: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED =============================================================================== 40005044 : int flags, mode_t object_mode, uid_t object_uid, gid_t object_gid ) { 40005044: 9d e3 bf a0 save %sp, -96, %sp const rtems_user_env_t *uenv = rtems_current_user_env_get(); 40005048: 7f ff ff dc call 40004fb8 4000504c: 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) { 40005050: c2 12 20 10 lduh [ %o0 + 0x10 ], %g1 40005054: 80 a0 60 00 cmp %g1, 0 40005058: 02 80 00 24 be 400050e8 <== ALWAYS TAKEN 4000505c: 80 a0 40 1a cmp %g1, %i2 40005060: 22 80 00 23 be,a 400050ec <== NOT EXECUTED 40005064: 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 40005068: c2 12 20 12 lduh [ %o0 + 0x12 ], %g1 <== NOT EXECUTED if ( 4000506c: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40005070: 02 80 00 18 be 400050d0 <== NOT EXECUTED 40005074: 80 a0 40 1b cmp %g1, %i3 <== NOT EXECUTED 40005078: 22 80 00 17 be,a 400050d4 <== NOT EXECUTED 4000507c: b1 2e 20 03 sll %i0, 3, %i0 <== NOT EXECUTED for (i = 0; i < uenv->ngroups; ++i) { 40005080: c6 02 20 24 ld [ %o0 + 0x24 ], %g3 <== NOT EXECUTED 40005084: 80 a0 e0 00 cmp %g3, 0 <== NOT EXECUTED 40005088: 22 80 00 14 be,a 400050d8 <== NOT EXECUTED 4000508c: b0 2e 00 19 andn %i0, %i1, %i0 <== NOT EXECUTED if (uenv->groups[i] == object_gid) { 40005090: c2 12 20 28 lduh [ %o0 + 0x28 ], %g1 <== NOT EXECUTED 40005094: 80 a0 40 1b cmp %g1, %i3 <== NOT EXECUTED 40005098: 02 80 00 0e be 400050d0 <== NOT EXECUTED 4000509c: 90 02 20 2a add %o0, 0x2a, %o0 <== NOT EXECUTED for (i = 0; i < uenv->ngroups; ++i) { 400050a0: 10 80 00 06 b 400050b8 <== NOT EXECUTED 400050a4: 82 10 20 00 clr %g1 <== NOT EXECUTED if (uenv->groups[i] == object_gid) { 400050a8: c4 12 3f fe lduh [ %o0 + -2 ], %g2 <== NOT EXECUTED 400050ac: 80 a0 80 1b cmp %g2, %i3 <== NOT EXECUTED 400050b0: 22 80 00 09 be,a 400050d4 <== NOT EXECUTED 400050b4: b1 2e 20 03 sll %i0, 3, %i0 <== NOT EXECUTED for (i = 0; i < uenv->ngroups; ++i) { 400050b8: 82 00 60 01 inc %g1 <== NOT EXECUTED 400050bc: 80 a0 40 03 cmp %g1, %g3 <== NOT EXECUTED 400050c0: 12 bf ff fa bne 400050a8 <== NOT EXECUTED 400050c4: 90 02 20 02 add %o0, 2, %o0 <== NOT EXECUTED } else { access_flags <<= RTEMS_FS_OTH_SHIFT; } } return (access_flags & object_mode) == access_flags; 400050c8: 10 80 00 04 b 400050d8 <== NOT EXECUTED 400050cc: b0 2e 00 19 andn %i0, %i1, %i0 <== NOT EXECUTED access_flags <<= RTEMS_FS_GRP_SHIFT; 400050d0: b1 2e 20 03 sll %i0, 3, %i0 <== NOT EXECUTED return (access_flags & object_mode) == access_flags; 400050d4: b0 2e 00 19 andn %i0, %i1, %i0 <== NOT EXECUTED } 400050d8: 80 a0 00 18 cmp %g0, %i0 <== NOT EXECUTED 400050dc: b0 60 3f ff subx %g0, -1, %i0 <== NOT EXECUTED 400050e0: 81 c7 e0 08 ret <== NOT EXECUTED 400050e4: 81 e8 00 00 restore <== NOT EXECUTED access_flags <<= RTEMS_FS_USR_SHIFT; 400050e8: b1 2e 20 06 sll %i0, 6, %i0 return (access_flags & object_mode) == access_flags; 400050ec: b0 2e 00 19 andn %i0, %i1, %i0 } 400050f0: 80 a0 00 18 cmp %g0, %i0 400050f4: b0 60 3f ff subx %g0, -1, %i0 400050f8: 81 c7 e0 08 ret 400050fc: 81 e8 00 00 restore =============================================================================== 40010510 : 40010510: 00 00 00 05 00 00 00 80 00 00 00 07 00 00 00 ff ................ 40010520: 00 00 00 ff 00 00 04 00 00 00 00 00 00 00 00 00 ................ 40010530: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40010540: 2e 00 00 00 00 00 00 00 2e 2e 00 00 ............ =============================================================================== 400058a8 : } void rtems_filesystem_do_unmount( rtems_filesystem_mount_table_entry_t *mt_entry ) { 400058a8: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_libio_lock(); 400058ac: 7f ff fb 29 call 40004550 <== NOT EXECUTED 400058b0: 01 00 00 00 nop <== NOT EXECUTED next = the_node->next; 400058b4: c4 06 00 00 ld [ %i0 ], %g2 <== NOT EXECUTED previous = the_node->previous; 400058b8: c2 06 20 04 ld [ %i0 + 4 ], %g1 <== NOT EXECUTED next->previous = previous; 400058bc: c2 20 a0 04 st %g1, [ %g2 + 4 ] <== NOT EXECUTED rtems_libio_unlock(); 400058c0: 7f ff fb 29 call 40004564 <== NOT EXECUTED 400058c4: c4 20 40 00 st %g2, [ %g1 ] <== NOT EXECUTED release_with_count(global_loc, 1); 400058c8: d0 06 20 20 ld [ %i0 + 0x20 ], %o0 <== NOT EXECUTED 400058cc: 40 00 00 14 call 4000591c <== NOT EXECUTED 400058d0: 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); 400058d4: c2 06 20 0c ld [ %i0 + 0xc ], %g1 <== NOT EXECUTED 400058d8: c2 00 60 34 ld [ %g1 + 0x34 ], %g1 <== NOT EXECUTED 400058dc: 9f c0 40 00 call %g1 <== NOT EXECUTED 400058e0: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED if (mt_entry->unmount_task != 0) { 400058e4: d0 06 20 3c ld [ %i0 + 0x3c ], %o0 <== NOT EXECUTED 400058e8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400058ec: 02 80 00 07 be 40005908 <== NOT EXECUTED 400058f0: 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 ); 400058f4: 40 00 04 e1 call 40006c78 <== NOT EXECUTED 400058f8: 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) { 400058fc: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40005900: 32 80 00 04 bne,a 40005910 <== NOT EXECUTED 40005904: 11 37 ab 6f sethi %hi(0xdeadbc00), %o0 <== NOT EXECUTED rtems_fatal_error_occurred(0xdeadbeef); } } free(mt_entry); 40005908: 7f ff fa 9e call 40004380 <== NOT EXECUTED 4000590c: 81 e8 00 00 restore <== NOT EXECUTED rtems_fatal_error_occurred(0xdeadbeef); 40005910: 40 00 05 e7 call 400070ac <== NOT EXECUTED 40005914: 90 12 22 ef or %o0, 0x2ef, %o0 <== NOT EXECUTED 40005918: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 40005100 : int eval_flags, mode_t node_mode, uid_t node_uid, gid_t node_gid ) { 40005100: 9d e3 bf a0 save %sp, -96, %sp bool access_ok = rtems_filesystem_check_access( 40005104: 96 10 00 1c mov %i4, %o3 40005108: 94 10 00 1b mov %i3, %o2 4000510c: 92 10 00 1a mov %i2, %o1 40005110: 7f ff ff cd call 40005044 40005114: 90 10 00 19 mov %i1, %o0 node_mode, node_uid, node_gid ); if (!access_ok) { 40005118: ba 92 20 00 orcc %o0, 0, %i5 4000511c: 12 80 00 04 bne 4000512c <== ALWAYS TAKEN 40005120: 92 10 20 0d mov 0xd, %o1 rtems_filesystem_eval_path_error(ctx, EACCES); 40005124: 40 00 00 98 call 40005384 <== NOT EXECUTED 40005128: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED } return access_ok; } 4000512c: 81 c7 e0 08 ret 40005130: 91 e8 00 1d restore %g0, %i5, %o0 =============================================================================== 400054a4 : { 400054a4: 9d e3 bf a0 save %sp, -96, %sp while (ctx->pathlen > 0) { 400054a8: c2 06 20 04 ld [ %i0 + 4 ], %g1 400054ac: 80 a0 60 00 cmp %g1, 0 400054b0: 22 80 00 0c be,a 400054e0 <== NEVER TAKEN 400054b4: c2 06 20 0c ld [ %i0 + 0xc ], %g1 <== NOT EXECUTED (*ctx->currentloc.mt_entry->ops->eval_path_h)(ctx); 400054b8: c2 06 20 2c ld [ %i0 + 0x2c ], %g1 400054bc: c2 00 60 0c ld [ %g1 + 0xc ], %g1 400054c0: c2 00 60 08 ld [ %g1 + 8 ], %g1 400054c4: 9f c0 40 00 call %g1 400054c8: 90 10 00 18 mov %i0, %o0 while (ctx->pathlen > 0) { 400054cc: c2 06 20 04 ld [ %i0 + 4 ], %g1 400054d0: 80 a0 60 00 cmp %g1, 0 400054d4: 32 bf ff fa bne,a 400054bc <== NEVER TAKEN 400054d8: c2 06 20 2c ld [ %i0 + 0x2c ], %g1 <== NOT EXECUTED if (rtems_filesystem_eval_path_has_token(ctx)) { 400054dc: c2 06 20 0c ld [ %i0 + 0xc ], %g1 400054e0: 80 a0 60 00 cmp %g1, 0 400054e4: 02 80 00 07 be 40005500 400054e8: f2 06 20 10 ld [ %i0 + 0x10 ], %i1 if (make) { 400054ec: 80 8e 60 20 btst 0x20, %i1 400054f0: 02 80 00 08 be 40005510 <== NEVER TAKEN 400054f4: b2 10 20 02 mov 2, %i1 check_access(ctx, ctx->flags); 400054f8: 7f ff ff b9 call 400053dc 400054fc: 81 e8 00 00 restore if (!exclusive) { 40005500: 80 8e 60 40 btst 0x40, %i1 40005504: 02 bf ff fd be 400054f8 <== ALWAYS TAKEN 40005508: 01 00 00 00 nop rtems_filesystem_eval_path_error(ctx, EEXIST); 4000550c: b2 10 20 11 mov 0x11, %i1 ! 11 <_TLS_Alignment+0x10> <== NOT EXECUTED 40005510: 7f ff ff 9d call 40005384 <== NOT EXECUTED 40005514: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40005d20 : void rtems_filesystem_eval_path_eat_delimiter( rtems_filesystem_eval_path_context_t *ctx ) { const char *current = ctx->path; 40005d20: c2 02 00 00 ld [ %o0 ], %g1 <== NOT EXECUTED const char *end = current + ctx->pathlen; 40005d24: c4 02 20 04 ld [ %o0 + 4 ], %g2 <== NOT EXECUTED 40005d28: 86 00 40 02 add %g1, %g2, %g3 <== NOT EXECUTED while (current != end && rtems_filesystem_is_delimiter(*current)) { 40005d2c: 80 a0 40 03 cmp %g1, %g3 <== NOT EXECUTED 40005d30: 22 80 00 17 be,a 40005d8c <== NOT EXECUTED 40005d34: 84 10 20 00 clr %g2 <== NOT EXECUTED return c == '/' || c == '\\'; 40005d38: c8 48 40 00 ldsb [ %g1 ], %g4 <== NOT EXECUTED 40005d3c: 80 a1 20 2f cmp %g4, 0x2f <== NOT EXECUTED 40005d40: 02 80 00 04 be 40005d50 <== NOT EXECUTED 40005d44: 80 a1 20 5c cmp %g4, 0x5c <== NOT EXECUTED 40005d48: 32 80 00 11 bne,a 40005d8c <== NOT EXECUTED 40005d4c: 86 10 00 01 mov %g1, %g3 <== NOT EXECUTED ++current; 40005d50: 82 00 60 01 inc %g1 <== NOT EXECUTED while (current != end && rtems_filesystem_is_delimiter(*current)) { 40005d54: 80 a0 c0 01 cmp %g3, %g1 <== NOT EXECUTED 40005d58: 02 80 00 0d be 40005d8c <== NOT EXECUTED 40005d5c: 84 10 20 00 clr %g2 <== NOT EXECUTED 40005d60: c4 48 40 00 ldsb [ %g1 ], %g2 <== NOT EXECUTED 40005d64: 80 a0 a0 2f cmp %g2, 0x2f <== NOT EXECUTED 40005d68: 02 bf ff fa be 40005d50 <== NOT EXECUTED 40005d6c: 80 a0 a0 5c cmp %g2, 0x5c <== NOT EXECUTED 40005d70: 22 bf ff f9 be,a 40005d54 <== NOT EXECUTED 40005d74: 82 00 60 01 inc %g1 <== NOT EXECUTED 40005d78: 84 20 c0 01 sub %g3, %g1, %g2 <== NOT EXECUTED ++current; 40005d7c: 86 10 00 01 mov %g1, %g3 <== NOT EXECUTED } ctx->path = current; ctx->pathlen = (size_t) (end - current); 40005d80: c4 22 20 04 st %g2, [ %o0 + 4 ] <== NOT EXECUTED } 40005d84: 81 c3 e0 08 retl <== NOT EXECUTED 40005d88: c6 22 00 00 st %g3, [ %o0 ] <== NOT EXECUTED ctx->path = current; 40005d8c: c6 22 00 00 st %g3, [ %o0 ] <== NOT EXECUTED } 40005d90: 81 c3 e0 08 retl <== NOT EXECUTED 40005d94: c4 22 20 04 st %g2, [ %o0 + 4 ] <== NOT EXECUTED =============================================================================== 40005384 : { 40005384: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED ctx->path = NULL; 40005388: c0 26 00 00 clr [ %i0 ] <== NOT EXECUTED if (!rtems_filesystem_location_is_null(&ctx->currentloc)) { 4000538c: 03 10 00 41 sethi %hi(0x40010400), %g1 <== NOT EXECUTED ctx->pathlen = 0; 40005390: c0 26 20 04 clr [ %i0 + 4 ] <== NOT EXECUTED if (!rtems_filesystem_location_is_null(&ctx->currentloc)) { 40005394: 82 10 61 98 or %g1, 0x198, %g1 <== NOT EXECUTED ctx->token = NULL; 40005398: c0 26 20 08 clr [ %i0 + 8 ] <== NOT EXECUTED ctx->tokenlen = 0; 4000539c: c0 26 20 0c clr [ %i0 + 0xc ] <== NOT EXECUTED if (!rtems_filesystem_location_is_null(&ctx->currentloc)) { 400053a0: c4 06 20 28 ld [ %i0 + 0x28 ], %g2 <== NOT EXECUTED 400053a4: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 400053a8: 02 80 00 0b be 400053d4 <== NOT EXECUTED 400053ac: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED if (eno != 0) { 400053b0: 12 80 00 04 bne 400053c0 <== NOT EXECUTED 400053b4: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_location_detach(&ctx->currentloc); 400053b8: 40 00 01 23 call 40005844 <== NOT EXECUTED 400053bc: 91 ee 20 18 restore %i0, 0x18, %o0 <== NOT EXECUTED errno = eno; 400053c0: 40 00 25 ab call 4000ea6c <__errno> <== NOT EXECUTED 400053c4: b0 06 20 18 add %i0, 0x18, %i0 <== NOT EXECUTED 400053c8: f2 22 00 00 st %i1, [ %o0 ] <== NOT EXECUTED rtems_filesystem_location_detach(&ctx->currentloc); 400053cc: 40 00 01 1e call 40005844 <== NOT EXECUTED 400053d0: 81 e8 00 00 restore <== NOT EXECUTED } 400053d4: 81 c7 e0 08 ret <== NOT EXECUTED 400053d8: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40005134 : void rtems_filesystem_eval_path_generic( rtems_filesystem_eval_path_context_t *ctx, void *arg, const rtems_filesystem_eval_path_generic_config *config ) { 40005134: 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); 40005138: 21 10 00 41 sethi %hi(0x40010400), %l0 { 4000513c: ba 10 00 18 mov %i0, %i5 return &ctx->currentloc; 40005140: a2 06 20 18 add %i0, 0x18, %l1 status = (*config->eval_token)(ctx, arg, "..", 2); 40005144: a0 14 21 48 or %l0, 0x148, %l0 status = (*config->eval_token)(ctx, arg, ".", 1); 40005148: 31 10 00 41 sethi %hi(0x40010400), %i0 4000514c: b0 16 21 40 or %i0, 0x140, %i0 ! 40010540 rtems_filesystem_eval_path_next_token(ctx); 40005150: 40 00 03 12 call 40005d98 40005154: 90 10 00 1d mov %i5, %o0 *tokenlen = ctx->tokenlen; 40005158: f8 07 60 0c ld [ %i5 + 0xc ], %i4 if (tokenlen > 0) { 4000515c: 80 a7 20 00 cmp %i4, 0 40005160: 02 80 00 19 be 400051c4 <== NEVER TAKEN 40005164: f6 07 60 08 ld [ %i5 + 8 ], %i3 if ((*config->is_directory)(ctx, arg)) { 40005168: c2 06 80 00 ld [ %i2 ], %g1 4000516c: 92 10 00 19 mov %i1, %o1 40005170: 9f c0 40 00 call %g1 40005174: 90 10 00 1d mov %i5, %o0 40005178: 80 a2 20 00 cmp %o0, 0 4000517c: 02 80 00 60 be 400052fc <== NEVER TAKEN 40005180: 80 a7 20 01 cmp %i4, 1 return tokenlen == 1 && token [0] == '.'; 40005184: 02 80 00 12 be 400051cc <== NEVER TAKEN 40005188: 80 a7 20 02 cmp %i4, 2 return tokenlen == 2 && token [0] == '.' && token [1] == '.'; 4000518c: 22 80 00 33 be,a 40005258 <== NEVER TAKEN 40005190: c2 4e c0 00 ldsb [ %i3 ], %g1 <== NOT EXECUTED } } else { status = (*config->eval_token)(ctx, arg, token, tokenlen); 40005194: c2 06 a0 04 ld [ %i2 + 4 ], %g1 40005198: 96 10 00 1c mov %i4, %o3 4000519c: 94 10 00 1b mov %i3, %o2 400051a0: 92 10 00 19 mov %i1, %o1 400051a4: 9f c0 40 00 call %g1 400051a8: 90 10 00 1d mov %i5, %o0 } if (status == RTEMS_FILESYSTEM_EVAL_PATH_GENERIC_NO_ENTRY) { 400051ac: 80 a2 20 02 cmp %o0, 2 400051b0: 22 80 00 19 be,a 40005214 400051b4: c2 07 60 04 ld [ %i5 + 4 ], %g1 while (status == RTEMS_FILESYSTEM_EVAL_PATH_GENERIC_CONTINUE) { 400051b8: 80 a2 20 00 cmp %o0, 0 400051bc: 02 bf ff e5 be 40005150 400051c0: 01 00 00 00 nop 400051c4: 81 c7 e0 08 ret 400051c8: 81 e8 00 00 restore return tokenlen == 1 && token [0] == '.'; 400051cc: c2 4e c0 00 ldsb [ %i3 ], %g1 <== NOT EXECUTED 400051d0: 80 a0 60 2e cmp %g1, 0x2e <== NOT EXECUTED 400051d4: 32 bf ff f1 bne,a 40005198 <== NOT EXECUTED 400051d8: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED if (rtems_filesystem_eval_path_has_path(ctx)) { 400051dc: c2 07 60 04 ld [ %i5 + 4 ], %g1 <== NOT EXECUTED 400051e0: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 400051e4: 22 80 00 40 be,a 400052e4 <== NOT EXECUTED 400051e8: c2 07 60 10 ld [ %i5 + 0x10 ], %g1 <== NOT EXECUTED status = (*config->eval_token)(ctx, arg, ".", 1); 400051ec: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED 400051f0: 96 10 20 01 mov 1, %o3 <== NOT EXECUTED 400051f4: 94 10 00 18 mov %i0, %o2 <== NOT EXECUTED 400051f8: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400051fc: 9f c0 40 00 call %g1 <== NOT EXECUTED 40005200: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if (status == RTEMS_FILESYSTEM_EVAL_PATH_GENERIC_NO_ENTRY) { 40005204: 80 a2 20 02 cmp %o0, 2 <== NOT EXECUTED 40005208: 12 bf ff ed bne 400051bc <== NOT EXECUTED 4000520c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED if (rtems_filesystem_eval_path_has_path(ctx)) { 40005210: c2 07 60 04 ld [ %i5 + 4 ], %g1 <== NOT EXECUTED 40005214: 80 a0 60 00 cmp %g1, 0 40005218: 12 80 00 04 bne 40005228 <== NEVER TAKEN 4000521c: 01 00 00 00 nop } } else { status = RTEMS_FILESYSTEM_EVAL_PATH_GENERIC_DONE; } } } 40005220: 81 c7 e0 08 ret 40005224: 81 e8 00 00 restore rtems_filesystem_eval_path_eat_delimiter(ctx); 40005228: 40 00 02 be call 40005d20 <== NOT EXECUTED 4000522c: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED (eval_flags & RTEMS_FS_ACCEPT_RESIDUAL_DELIMITERS) == 0 40005230: c2 07 60 10 ld [ %i5 + 0x10 ], %g1 <== NOT EXECUTED if ( 40005234: 80 88 60 80 btst 0x80, %g1 <== NOT EXECUTED 40005238: 02 80 00 06 be 40005250 <== NOT EXECUTED 4000523c: b2 10 20 02 mov 2, %i1 <== NOT EXECUTED || rtems_filesystem_eval_path_has_path(ctx) 40005240: c2 07 60 04 ld [ %i5 + 4 ], %g1 <== NOT EXECUTED 40005244: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40005248: 02 bf ff f6 be 40005220 <== NOT EXECUTED 4000524c: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_eval_path_error(ctx, ENOENT); 40005250: 40 00 00 4d call 40005384 <== NOT EXECUTED 40005254: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED return tokenlen == 2 && token [0] == '.' && token [1] == '.'; 40005258: 80 a0 60 2e cmp %g1, 0x2e <== NOT EXECUTED 4000525c: 32 bf ff cf bne,a 40005198 <== NOT EXECUTED 40005260: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED 40005264: c2 4e e0 01 ldsb [ %i3 + 1 ], %g1 <== NOT EXECUTED 40005268: 80 a0 60 2e cmp %g1, 0x2e <== NOT EXECUTED 4000526c: 32 bf ff cb bne,a 40005198 <== NOT EXECUTED 40005270: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED const rtems_filesystem_mount_table_entry_t *mt_entry = loc->mt_entry; 40005274: c2 07 60 2c ld [ %i5 + 0x2c ], %g1 <== NOT EXECUTED 40005278: d2 07 60 30 ld [ %i5 + 0x30 ], %o1 <== NOT EXECUTED 4000527c: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED && (*mt_entry->ops->are_nodes_equal_h)( loc, rootloc ); 40005280: c6 02 60 14 ld [ %o1 + 0x14 ], %g3 <== NOT EXECUTED 40005284: 80 a0 40 03 cmp %g1, %g3 <== NOT EXECUTED 40005288: 12 80 00 0a bne 400052b0 <== NOT EXECUTED 4000528c: c4 00 a0 10 ld [ %g2 + 0x10 ], %g2 <== NOT EXECUTED 40005290: 9f c0 80 00 call %g2 <== NOT EXECUTED 40005294: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED 40005298: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000529c: 32 bf ff d5 bne,a 400051f0 <== NOT EXECUTED 400052a0: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED 400052a4: c2 07 60 2c ld [ %i5 + 0x2c ], %g1 <== NOT EXECUTED 400052a8: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED 400052ac: c4 00 a0 10 ld [ %g2 + 0x10 ], %g2 <== NOT EXECUTED return (*mt_entry->ops->are_nodes_equal_h)( loc, mt_fs_root ); 400052b0: d2 00 60 24 ld [ %g1 + 0x24 ], %o1 <== NOT EXECUTED 400052b4: 9f c0 80 00 call %g2 <== NOT EXECUTED 400052b8: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED } else if (is_fs_root(currentloc)) { 400052bc: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400052c0: 12 80 00 12 bne 40005308 <== NOT EXECUTED 400052c4: 96 10 20 02 mov 2, %o3 <== NOT EXECUTED status = (*config->eval_token)(ctx, arg, "..", 2); 400052c8: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED 400052cc: 94 10 00 10 mov %l0, %o2 <== NOT EXECUTED 400052d0: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400052d4: 9f c0 40 00 call %g1 <== NOT EXECUTED 400052d8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED if (status == RTEMS_FILESYSTEM_EVAL_PATH_GENERIC_NO_ENTRY) { 400052dc: 10 bf ff b5 b 400051b0 <== NOT EXECUTED 400052e0: 80 a2 20 02 cmp %o0, 2 <== NOT EXECUTED if ((eval_flags & RTEMS_FS_REJECT_TERMINAL_DOT) == 0) { 400052e4: 80 88 61 00 btst 0x100, %g1 <== NOT EXECUTED 400052e8: 22 bf ff c2 be,a 400051f0 <== NOT EXECUTED 400052ec: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED rtems_filesystem_eval_path_error(ctx, EINVAL); 400052f0: b2 10 20 16 mov 0x16, %i1 <== NOT EXECUTED 400052f4: 40 00 00 24 call 40005384 <== NOT EXECUTED 400052f8: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_error(ctx, ENOTDIR); 400052fc: b2 10 20 14 mov 0x14, %i1 <== NOT EXECUTED 40005300: 40 00 00 21 call 40005384 <== NOT EXECUTED 40005304: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED if (currentloc->mt_entry->mt_point_node != NULL) { 40005308: c2 07 60 2c ld [ %i5 + 0x2c ], %g1 <== NOT EXECUTED 4000530c: c4 00 60 20 ld [ %g1 + 0x20 ], %g2 <== NOT EXECUTED 40005310: 80 a0 a0 00 cmp %g2, 0 <== NOT EXECUTED 40005314: 22 bf ff b7 be,a 400051f0 <== NOT EXECUTED 40005318: c2 06 a0 04 ld [ %i2 + 4 ], %g1 <== NOT EXECUTED size_t tokenlen = ctx->tokenlen; 4000531c: c8 07 60 0c ld [ %i5 + 0xc ], %g4 <== NOT EXECUTED ctx->path -= tokenlen; 40005320: c6 07 40 00 ld [ %i5 ], %g3 <== NOT EXECUTED ctx->pathlen += tokenlen; 40005324: c4 07 60 04 ld [ %i5 + 4 ], %g2 <== NOT EXECUTED ctx->path -= tokenlen; 40005328: 86 20 c0 04 sub %g3, %g4, %g3 <== NOT EXECUTED ctx->pathlen += tokenlen; 4000532c: 84 00 80 04 add %g2, %g4, %g2 <== NOT EXECUTED ctx->path -= tokenlen; 40005330: c6 27 40 00 st %g3, [ %i5 ] <== NOT EXECUTED rtems_filesystem_eval_path_restart( 40005334: b2 00 60 20 add %g1, 0x20, %i1 <== NOT EXECUTED ctx->pathlen += tokenlen; 40005338: c4 27 60 04 st %g2, [ %i5 + 4 ] <== NOT EXECUTED ctx->tokenlen = 0; 4000533c: c0 27 60 0c clr [ %i5 + 0xc ] <== NOT EXECUTED 40005340: 40 00 00 e7 call 400056dc <== NOT EXECUTED 40005344: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED =============================================================================== 40005d98 : const char *current = ctx->path; 40005d98: c2 02 00 00 ld [ %o0 ], %g1 const char *end = current + ctx->pathlen; 40005d9c: c6 02 20 04 ld [ %o0 + 4 ], %g3 40005da0: 86 00 40 03 add %g1, %g3, %g3 while (current != end && rtems_filesystem_is_delimiter(*current)) { 40005da4: 80 a0 40 03 cmp %g1, %g3 40005da8: 32 80 00 09 bne,a 40005dcc <== ALWAYS TAKEN 40005dac: c4 48 40 00 ldsb [ %g1 ], %g2 40005db0: 10 80 00 20 b 40005e30 <== NOT EXECUTED 40005db4: 9a 10 20 00 clr %o5 <== NOT EXECUTED ++current; 40005db8: 82 00 60 01 inc %g1 while (current != end && rtems_filesystem_is_delimiter(*current)) { 40005dbc: 80 a0 c0 01 cmp %g3, %g1 40005dc0: 22 80 00 22 be,a 40005e48 <== NEVER TAKEN 40005dc4: 82 10 00 03 mov %g3, %g1 <== NOT EXECUTED 40005dc8: c4 48 40 00 ldsb [ %g1 ], %g2 40005dcc: 80 a0 a0 2f cmp %g2, 0x2f 40005dd0: 02 bf ff fa be 40005db8 40005dd4: 80 a0 a0 5c cmp %g2, 0x5c 40005dd8: 22 bf ff f9 be,a 40005dbc <== NEVER TAKEN 40005ddc: 82 00 60 01 inc %g1 <== NOT EXECUTED ctx->path = current; 40005de0: c2 22 00 00 st %g1, [ %o0 ] ctx->pathlen = (size_t) (end - current); 40005de4: 9a 20 c0 01 sub %g3, %g1, %o5 40005de8: da 22 20 04 st %o5, [ %o0 + 4 ] 40005dec: 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)) { 40005df0: 80 a0 a0 5c cmp %g2, 0x5c 40005df4: 02 80 00 1f be 40005e70 <== NEVER TAKEN 40005df8: 80 a0 a0 2f cmp %g2, 0x2f 40005dfc: 02 80 00 1e be 40005e74 <== NEVER TAKEN 40005e00: 88 10 00 0d mov %o5, %g4 40005e04: 10 80 00 07 b 40005e20 40005e08: 84 10 00 01 mov %g1, %g2 40005e0c: 80 a1 20 2f cmp %g4, 0x2f 40005e10: 02 80 00 10 be 40005e50 40005e14: 80 a1 20 5c cmp %g4, 0x5c 40005e18: 02 80 00 0f be 40005e54 <== NEVER TAKEN 40005e1c: 88 20 c0 02 sub %g3, %g2, %g4 ++current; 40005e20: 84 00 a0 01 inc %g2 while (current != end && !rtems_filesystem_is_delimiter(*current)) { 40005e24: 80 a0 80 03 cmp %g2, %g3 40005e28: 32 bf ff f9 bne,a 40005e0c 40005e2c: c8 48 80 00 ldsb [ %g2 ], %g4 while (current != end && rtems_filesystem_is_delimiter(*current)) { 40005e30: 88 10 20 00 clr %g4 } ctx->path = current; 40005e34: c6 22 00 00 st %g3, [ %o0 ] ctx->pathlen = (size_t) (end - current); 40005e38: c8 22 20 04 st %g4, [ %o0 + 4 ] ctx->token = begin; 40005e3c: 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); } 40005e40: 81 c3 e0 08 retl 40005e44: da 22 20 0c st %o5, [ %o0 + 0xc ] while (current != end && rtems_filesystem_is_delimiter(*current)) { 40005e48: 10 bf ff fa b 40005e30 <== NOT EXECUTED 40005e4c: 9a 10 20 00 clr %o5 <== NOT EXECUTED 40005e50: 88 20 c0 02 sub %g3, %g2, %g4 40005e54: 9a 20 80 01 sub %g2, %g1, %o5 ++current; 40005e58: 86 10 00 02 mov %g2, %g3 ctx->pathlen = (size_t) (end - current); 40005e5c: c8 22 20 04 st %g4, [ %o0 + 4 ] ctx->path = current; 40005e60: c6 22 00 00 st %g3, [ %o0 ] ctx->token = begin; 40005e64: c2 22 20 08 st %g1, [ %o0 + 8 ] } 40005e68: 81 c3 e0 08 retl 40005e6c: da 22 20 0c st %o5, [ %o0 + 0xc ] while (current != end && !rtems_filesystem_is_delimiter(*current)) { 40005e70: 88 10 00 0d mov %o5, %g4 <== NOT EXECUTED 40005e74: 86 10 00 01 mov %g1, %g3 <== NOT EXECUTED 40005e78: 10 bf ff ef b 40005e34 <== NOT EXECUTED 40005e7c: 9a 10 20 00 clr %o5 <== NOT EXECUTED =============================================================================== 40005740 : { 40005740: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED if (pathlen > 0) { 40005744: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 40005748: 02 80 00 22 be 400057d0 <== NOT EXECUTED 4000574c: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED if (ctx->recursionlevel < RTEMS_FILESYSTEM_SYMLOOP_MAX) { 40005750: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 <== NOT EXECUTED 40005754: 80 a0 60 1f cmp %g1, 0x1f <== NOT EXECUTED 40005758: 14 80 00 20 bg 400057d8 <== NOT EXECUTED 4000575c: 01 00 00 00 nop <== NOT EXECUTED return c == '/' || c == '\\'; 40005760: c4 4e 40 00 ldsb [ %i1 ], %g2 <== NOT EXECUTED const char *saved_path = ctx->path; 40005764: f6 06 00 00 ld [ %i0 ], %i3 <== NOT EXECUTED if (rtems_filesystem_is_delimiter(path [0])) { 40005768: 80 a0 a0 2f cmp %g2, 0x2f <== NOT EXECUTED 4000576c: 02 80 00 1d be 400057e0 <== NOT EXECUTED 40005770: f8 06 20 04 ld [ %i0 + 4 ], %i4 <== NOT EXECUTED 40005774: 80 a0 a0 5c cmp %g2, 0x5c <== NOT EXECUTED 40005778: 02 80 00 1b be 400057e4 <== NOT EXECUTED 4000577c: 92 07 60 30 add %i5, 0x30, %o1 <== NOT EXECUTED ++ctx->recursionlevel; 40005780: 82 00 60 01 inc %g1 <== NOT EXECUTED ctx->path = path; 40005784: f2 27 40 00 st %i1, [ %i5 ] <== NOT EXECUTED ctx->pathlen = pathlen; 40005788: f4 27 60 04 st %i2, [ %i5 + 4 ] <== NOT EXECUTED ++ctx->recursionlevel; 4000578c: c2 27 60 14 st %g1, [ %i5 + 0x14 ] <== NOT EXECUTED (*ctx->currentloc.mt_entry->ops->eval_path_h)(ctx); 40005790: c2 07 60 2c ld [ %i5 + 0x2c ], %g1 <== NOT EXECUTED 40005794: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED 40005798: c2 00 60 08 ld [ %g1 + 8 ], %g1 <== NOT EXECUTED 4000579c: 9f c0 40 00 call %g1 <== NOT EXECUTED 400057a0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED while (ctx->pathlen > 0) { 400057a4: c2 07 60 04 ld [ %i5 + 4 ], %g1 <== NOT EXECUTED 400057a8: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 400057ac: 32 bf ff fa bne,a 40005794 <== NOT EXECUTED 400057b0: c2 07 60 2c ld [ %i5 + 0x2c ], %g1 <== NOT EXECUTED --ctx->recursionlevel; 400057b4: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 <== NOT EXECUTED 400057b8: 82 00 7f ff add %g1, -1, %g1 <== NOT EXECUTED ctx->path = saved_path; 400057bc: f6 27 40 00 st %i3, [ %i5 ] <== NOT EXECUTED --ctx->recursionlevel; 400057c0: c2 27 60 14 st %g1, [ %i5 + 0x14 ] <== NOT EXECUTED ctx->pathlen = saved_pathlen; 400057c4: f8 27 60 04 st %i4, [ %i5 + 4 ] <== NOT EXECUTED } 400057c8: 81 c7 e0 08 ret <== NOT EXECUTED 400057cc: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_eval_path_error(ctx, ENOENT); 400057d0: 7f ff fe ed call 40005384 <== NOT EXECUTED 400057d4: 93 e8 20 02 restore %g0, 2, %o1 <== NOT EXECUTED rtems_filesystem_eval_path_error(ctx, ELOOP); 400057d8: 7f ff fe eb call 40005384 <== NOT EXECUTED 400057dc: 93 e8 20 5c restore %g0, 0x5c, %o1 <== NOT EXECUTED rtems_filesystem_eval_path_restart(ctx, &ctx->rootloc); 400057e0: 92 07 60 30 add %i5, 0x30, %o1 <== NOT EXECUTED 400057e4: 7f ff ff be call 400056dc <== NOT EXECUTED 400057e8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400057ec: 10 bf ff e5 b 40005780 <== NOT EXECUTED 400057f0: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 <== NOT EXECUTED =============================================================================== 400056dc : void rtems_filesystem_eval_path_restart( rtems_filesystem_eval_path_context_t *ctx, rtems_filesystem_global_location_t **newstartloc_ptr ) { 400056dc: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED 400056e0: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED free_location(&ctx->currentloc); 400056e4: b0 06 20 18 add %i0, 0x18, %i0 <== NOT EXECUTED 400056e8: 7f ff ff 18 call 40005348 <== NOT EXECUTED 400056ec: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400056f0: c2 07 60 34 ld [ %i5 + 0x34 ], %g1 <== NOT EXECUTED 400056f4: d0 00 60 14 ld [ %g1 + 0x14 ], %o0 <== NOT EXECUTED 400056f8: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 400056fc: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 40005700: 9f c0 40 00 call %g1 <== NOT EXECUTED 40005704: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_instance_unlock(&ctx->startloc->location); rtems_filesystem_global_location_assign( 40005708: 40 00 00 b1 call 400059cc <== NOT EXECUTED 4000570c: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 40005710: 92 10 00 08 mov %o0, %o1 <== NOT EXECUTED 40005714: 40 00 01 02 call 40005b1c <== NOT EXECUTED 40005718: 90 07 60 34 add %i5, 0x34, %o0 <== NOT EXECUTED 4000571c: c2 07 60 34 ld [ %i5 + 0x34 ], %g1 <== NOT EXECUTED 40005720: d0 00 60 14 ld [ %g1 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 40005724: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 40005728: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 4000572c: 9f c0 40 00 call %g1 <== NOT EXECUTED 40005730: 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); 40005734: f2 07 60 34 ld [ %i5 + 0x34 ], %i1 <== NOT EXECUTED 40005738: 40 00 21 25 call 4000dbcc <== NOT EXECUTED 4000573c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40005518 : { 40005518: 9d e3 bf 98 save %sp, -104, %sp memset(ctx, 0, sizeof(*ctx)); 4000551c: 94 10 20 30 mov 0x30, %o2 40005520: 92 10 20 00 clr %o1 40005524: 40 00 25 bc call 4000ec14 40005528: 90 06 20 08 add %i0, 8, %o0 ctx->path = path; 4000552c: f2 26 00 00 st %i1, [ %i0 ] if (ctx->pathlen > 0) { 40005530: 80 a6 a0 00 cmp %i2, 0 ctx->pathlen = pathlen; 40005534: f4 26 20 04 st %i2, [ %i0 + 4 ] if (ctx->pathlen > 0) { 40005538: 02 80 00 1d be 400055ac <== NEVER TAKEN 4000553c: f6 26 20 10 st %i3, [ %i0 + 0x10 ] char c = ctx->path [0]; 40005540: f6 0e 40 00 ldub [ %i1 ], %i3 ctx->rootloc = rtems_filesystem_global_location_obtain(global_root_ptr); 40005544: 40 00 01 22 call 400059cc 40005548: 90 10 00 1c mov %i4, %o0 return c == '/' || c == '\\'; 4000554c: 83 2e e0 18 sll %i3, 0x18, %g1 40005550: 83 38 60 18 sra %g1, 0x18, %g1 if (rtems_filesystem_is_delimiter(c)) { 40005554: 80 a0 60 2f cmp %g1, 0x2f 40005558: 02 80 00 2f be 40005614 <== ALWAYS TAKEN 4000555c: d0 26 20 30 st %o0, [ %i0 + 0x30 ] 40005560: 80 a0 60 5c cmp %g1, 0x5c <== NOT EXECUTED 40005564: 22 80 00 2d be,a 40005618 <== NOT EXECUTED 40005568: c4 06 00 00 ld [ %i0 ], %g2 <== NOT EXECUTED ctx->startloc = rtems_filesystem_global_location_obtain( 4000556c: 40 00 01 18 call 400059cc <== NOT EXECUTED 40005570: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40005574: d0 26 20 34 st %o0, [ %i0 + 0x34 ] <== NOT EXECUTED 40005578: d0 02 20 14 ld [ %o0 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 4000557c: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 40005580: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 40005584: 9f c0 40 00 call %g1 <== NOT EXECUTED 40005588: ba 06 20 18 add %i0, 0x18, %i5 <== NOT EXECUTED rtems_filesystem_location_clone( 4000558c: d2 06 20 34 ld [ %i0 + 0x34 ], %o1 <== NOT EXECUTED 40005590: 40 00 21 8f call 4000dbcc <== NOT EXECUTED 40005594: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_continue(ctx); 40005598: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 4000559c: 7f ff ff c2 call 400054a4 <== NOT EXECUTED 400055a0: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED } 400055a4: 81 c7 e0 08 ret <== NOT EXECUTED 400055a8: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_global_location_t *global_loc = NULL; 400055ac: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED return rtems_filesystem_global_location_obtain( &global_loc ); 400055b0: 40 00 01 07 call 400059cc <== NOT EXECUTED 400055b4: 90 07 bf fc add %fp, -4, %o0 <== NOT EXECUTED ctx->rootloc = rtems_filesystem_global_location_obtain_null(); 400055b8: d0 26 20 30 st %o0, [ %i0 + 0x30 ] <== NOT EXECUTED 400055bc: 90 07 bf fc add %fp, -4, %o0 <== NOT EXECUTED 400055c0: 40 00 01 03 call 400059cc <== NOT EXECUTED 400055c4: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED ctx->startloc = rtems_filesystem_global_location_obtain_null(); 400055c8: d0 26 20 34 st %o0, [ %i0 + 0x34 ] <== NOT EXECUTED errno = ENOENT; 400055cc: 40 00 25 28 call 4000ea6c <__errno> <== NOT EXECUTED 400055d0: ba 06 20 18 add %i0, 0x18, %i5 <== NOT EXECUTED 400055d4: 82 10 20 02 mov 2, %g1 <== NOT EXECUTED 400055d8: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 400055dc: d0 06 20 34 ld [ %i0 + 0x34 ], %o0 <== NOT EXECUTED 400055e0: d0 02 20 14 ld [ %o0 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 400055e4: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 400055e8: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 400055ec: 9f c0 40 00 call %g1 <== NOT EXECUTED 400055f0: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_location_clone( 400055f4: d2 06 20 34 ld [ %i0 + 0x34 ], %o1 <== NOT EXECUTED 400055f8: 40 00 21 75 call 4000dbcc <== NOT EXECUTED 400055fc: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED rtems_filesystem_eval_path_continue(ctx); 40005600: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40005604: 7f ff ff a8 call 400054a4 <== NOT EXECUTED 40005608: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED } 4000560c: 81 c7 e0 08 ret <== NOT EXECUTED 40005610: 81 e8 00 00 restore <== NOT EXECUTED ++ctx->path; 40005614: c4 06 00 00 ld [ %i0 ], %g2 --ctx->pathlen; 40005618: c2 06 20 04 ld [ %i0 + 4 ], %g1 ++ctx->path; 4000561c: 84 00 a0 01 inc %g2 --ctx->pathlen; 40005620: 82 00 7f ff add %g1, -1, %g1 ++ctx->path; 40005624: c4 26 00 00 st %g2, [ %i0 ] ctx->startloc = rtems_filesystem_global_location_obtain( 40005628: 90 06 20 30 add %i0, 0x30, %o0 --ctx->pathlen; 4000562c: c2 26 20 04 st %g1, [ %i0 + 4 ] ctx->startloc = rtems_filesystem_global_location_obtain( 40005630: 40 00 00 e7 call 400059cc 40005634: ba 06 20 18 add %i0, 0x18, %i5 40005638: d0 26 20 34 st %o0, [ %i0 + 0x34 ] 4000563c: d0 02 20 14 ld [ %o0 + 0x14 ], %o0 40005640: c2 02 20 0c ld [ %o0 + 0xc ], %g1 40005644: c2 00 40 00 ld [ %g1 ], %g1 40005648: 9f c0 40 00 call %g1 4000564c: 01 00 00 00 nop rtems_filesystem_location_clone( 40005650: d2 06 20 34 ld [ %i0 + 0x34 ], %o1 40005654: 40 00 21 5e call 4000dbcc 40005658: 90 10 00 1d mov %i5, %o0 rtems_filesystem_eval_path_continue(ctx); 4000565c: 90 10 00 18 mov %i0, %o0 40005660: 7f ff ff 91 call 400054a4 40005664: b0 10 00 1d mov %i5, %i0 } 40005668: 81 c7 e0 08 ret 4000566c: 81 e8 00 00 restore =============================================================================== 4000df30 : rtems_filesystem_fsmount_me_t rtems_filesystem_get_mount_handler( const char *type ) { 4000df30: 9d e3 bf 98 save %sp, -104, %sp 4000df34: 82 10 00 18 mov %i0, %g1 find_arg fa = { 4000df38: c0 27 bf fc clr [ %fp + -4 ] 4000df3c: b0 10 20 00 clr %i0 .type = type, .mount_h = NULL }; if ( type != NULL ) { 4000df40: 80 a0 60 00 cmp %g1, 0 4000df44: 02 80 00 07 be 4000df60 <== NEVER TAKEN 4000df48: c2 27 bf f8 st %g1, [ %fp + -8 ] rtems_filesystem_iterate( find_handler, &fa ); 4000df4c: 92 07 bf f8 add %fp, -8, %o1 4000df50: 11 10 00 37 sethi %hi(0x4000dc00), %o0 4000df54: 7f ff ff cb call 4000de80 4000df58: 90 12 22 4c or %o0, 0x24c, %o0 ! 4000de4c 4000df5c: f0 07 bf fc ld [ %fp + -4 ], %i0 } return fa.mount_h; } 4000df60: 81 c7 e0 08 ret 4000df64: 81 e8 00 00 restore =============================================================================== 40005b1c : { 40005b1c: 84 10 00 08 mov %o0, %g2 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005b20: 91 d0 20 09 ta 9 <== NOT EXECUTED lhs_global_loc = *lhs_global_loc_ptr; 40005b24: d0 02 00 00 ld [ %o0 ], %o0 <== NOT EXECUTED *lhs_global_loc_ptr = rhs_global_loc; 40005b28: d2 20 80 00 st %o1, [ %g2 ] <== 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_filesystem_global_location_release(lhs_global_loc, true); 40005b34: 92 10 20 01 mov 1, %o1 ! 1 <_TLS_Alignment> 40005b38: 82 13 c0 00 mov %o7, %g1 40005b3c: 7f ff ff de call 40005ab4 40005b40: 9e 10 40 00 mov %g1, %o7 =============================================================================== 400059cc : { 400059cc: 9d e3 bf 98 save %sp, -104, %sp if (deferred_released_global_locations != NULL) { 400059d0: 3b 10 00 4b sethi %hi(0x40012c00), %i5 400059d4: c2 07 63 f4 ld [ %i5 + 0x3f4 ], %g1 ! 40012ff4 400059d8: 80 a0 60 00 cmp %g1, 0 400059dc: 02 80 00 1e be 40005a54 400059e0: 01 00 00 00 nop 400059e4: ba 17 63 f4 or %i5, 0x3f4, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 400059e8: 91 d0 20 09 ta 9 <== NOT EXECUTED current = deferred_released_global_locations; 400059ec: d0 07 40 00 ld [ %i5 ], %o0 if (current != NULL) { 400059f0: 80 a2 20 00 cmp %o0, 0 400059f4: 02 80 00 07 be 40005a10 <== NEVER TAKEN 400059f8: 92 10 20 00 clr %o1 <== NOT EXECUTED deferred_released_global_locations = current->deferred_released_next; 400059fc: c4 02 20 1c ld [ %o0 + 0x1c ], %g2 <== NOT EXECUTED count = current->deferred_released_count; 40005a00: d2 02 20 20 ld [ %o0 + 0x20 ], %o1 <== NOT EXECUTED deferred_released_global_locations = current->deferred_released_next; 40005a04: c4 27 40 00 st %g2, [ %i5 ] <== NOT EXECUTED current->deferred_released_next = NULL; 40005a08: c0 22 20 1c clr [ %o0 + 0x1c ] <== NOT EXECUTED current->deferred_released_count = 0; 40005a0c: c0 22 20 20 clr [ %o0 + 0x20 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005a10: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005a14: 01 00 00 00 nop if (current != NULL) { 40005a18: 80 a2 20 00 cmp %o0, 0 40005a1c: 02 80 00 0e be 40005a54 <== NEVER TAKEN 40005a20: 01 00 00 00 nop release_with_count(current, count); 40005a24: 7f ff ff be call 4000591c 40005a28: 01 00 00 00 nop __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005a2c: 91 d0 20 09 ta 9 <== NOT EXECUTED current = deferred_released_global_locations; 40005a30: d0 07 40 00 ld [ %i5 ], %o0 if (current != NULL) { 40005a34: 80 a2 20 00 cmp %o0, 0 40005a38: 12 bf ff f1 bne 400059fc <== NEVER TAKEN 40005a3c: 92 10 20 00 clr %o1 <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005a40: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005a44: 01 00 00 00 nop if (current != NULL) { 40005a48: 80 a2 20 00 cmp %o0, 0 40005a4c: 12 bf ff f6 bne 40005a24 <== NEVER TAKEN 40005a50: 01 00 00 00 nop __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005a54: 91 d0 20 09 ta 9 <== NOT EXECUTED global_loc = *global_loc_ptr; 40005a58: f0 06 00 00 ld [ %i0 ], %i0 if (global_loc == NULL || !global_loc->location.mt_entry->mounted) { 40005a5c: 80 a6 20 00 cmp %i0, 0 40005a60: 02 80 00 07 be 40005a7c <== NEVER TAKEN 40005a64: 01 00 00 00 nop 40005a68: c4 06 20 14 ld [ %i0 + 0x14 ], %g2 40005a6c: c4 08 a0 28 ldub [ %g2 + 0x28 ], %g2 40005a70: 80 a0 a0 00 cmp %g2, 0 40005a74: 32 80 00 0a bne,a 40005a9c <== ALWAYS TAKEN 40005a78: c4 06 20 18 ld [ %i0 + 0x18 ], %g2 errno = ENXIO; 40005a7c: 40 00 23 fc call 4000ea6c <__errno> <== NOT EXECUTED 40005a80: c2 27 bf fc st %g1, [ %fp + -4 ] <== NOT EXECUTED 40005a84: 84 10 20 06 mov 6, %g2 <== NOT EXECUTED 40005a88: c4 22 00 00 st %g2, [ %o0 ] <== NOT EXECUTED global_loc = &rtems_filesystem_global_location_null; 40005a8c: 31 10 00 47 sethi %hi(0x40011c00), %i0 <== NOT EXECUTED 40005a90: c2 07 bf fc ld [ %fp + -4 ], %g1 <== NOT EXECUTED 40005a94: b0 16 23 98 or %i0, 0x398, %i0 <== NOT EXECUTED ++global_loc->reference_count; 40005a98: c4 06 20 18 ld [ %i0 + 0x18 ], %g2 <== NOT EXECUTED 40005a9c: 84 00 a0 01 inc %g2 <== NOT EXECUTED 40005aa0: c4 26 20 18 st %g2, [ %i0 + 0x18 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005aa4: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005aa8: 01 00 00 00 nop } 40005aac: 81 c7 e0 08 ret 40005ab0: 81 e8 00 00 restore =============================================================================== 40005ab4 : if (!deferred) { 40005ab4: 80 a2 60 00 cmp %o1, 0 40005ab8: 22 80 00 16 be,a 40005b10 40005abc: 92 10 20 01 mov 1, %o1 __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005ac0: 91 d0 20 09 ta 9 <== NOT EXECUTED if (global_loc->deferred_released_count == 0) { 40005ac4: c6 02 20 20 ld [ %o0 + 0x20 ], %g3 40005ac8: 80 a0 e0 00 cmp %g3, 0 40005acc: 22 80 00 08 be,a 40005aec 40005ad0: 07 10 00 4b sethi %hi(0x40012c00), %g3 ++global_loc->deferred_released_count; 40005ad4: 86 00 e0 01 inc %g3 <== NOT EXECUTED 40005ad8: c6 22 20 20 st %g3, [ %o0 + 0x20 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005adc: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005ae0: 01 00 00 00 nop } 40005ae4: 81 c3 e0 08 retl 40005ae8: 01 00 00 00 nop rtems_filesystem_global_location_t *head = 40005aec: c8 00 e3 f4 ld [ %g3 + 0x3f4 ], %g4 <== NOT EXECUTED global_loc->deferred_released_next = head; 40005af0: c8 22 20 1c st %g4, [ %o0 + 0x1c ] <== NOT EXECUTED global_loc->deferred_released_count = 1; 40005af4: 88 10 20 01 mov 1, %g4 <== NOT EXECUTED deferred_released_global_locations = global_loc; 40005af8: d0 20 e3 f4 st %o0, [ %g3 + 0x3f4 ] <== NOT EXECUTED global_loc->deferred_released_count = 1; 40005afc: c8 22 20 20 st %g4, [ %o0 + 0x20 ] <== NOT EXECUTED 40005b00: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005b04: 01 00 00 00 nop } 40005b08: 81 c3 e0 08 retl 40005b0c: 01 00 00 00 nop release_with_count(global_loc, 1); 40005b10: 82 13 c0 00 mov %o7, %g1 40005b14: 7f ff ff 82 call 4000591c 40005b18: 9e 10 40 00 mov %g1, %o7 =============================================================================== 40004280 : /* * Default mode for created files. */ void rtems_filesystem_initialize( void ) { 40004280: 9d e3 bf a0 save %sp, -96, %sp int rv = 0; const rtems_filesystem_mount_configuration *root_config = &rtems_filesystem_root_configuration; rv = mount( 40004284: 05 10 00 40 sethi %hi(0x40010000), %g2 40004288: 82 10 a1 5c or %g2, 0x15c, %g1 ! 4001015c 4000428c: d0 00 a1 5c ld [ %g2 + 0x15c ], %o0 40004290: d8 00 60 10 ld [ %g1 + 0x10 ], %o4 40004294: d6 00 60 0c ld [ %g1 + 0xc ], %o3 40004298: d4 00 60 08 ld [ %g1 + 8 ], %o2 4000429c: 40 00 01 a4 call 4000492c 400042a0: d2 00 60 04 ld [ %g1 + 4 ], %o1 root_config->target, root_config->filesystemtype, root_config->options, root_config->data ); if ( rv != 0 ) 400042a4: 80 a2 20 00 cmp %o0, 0 400042a8: 12 80 00 0a bne 400042d0 <== NEVER TAKEN 400042ac: 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 ); 400042b0: 11 10 00 41 sethi %hi(0x40010400), %o0 400042b4: 40 00 01 56 call 4000480c 400042b8: 90 12 20 a0 or %o0, 0xa0, %o0 ! 400104a0 if ( rv != 0 ) 400042bc: 80 a2 20 00 cmp %o0, 0 400042c0: 12 80 00 07 bne 400042dc <== NEVER TAKEN 400042c4: 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. */ } 400042c8: 81 c7 e0 08 ret 400042cc: 81 e8 00 00 restore rtems_fatal_error_occurred( 0xABCD0002 ); 400042d0: 11 2a f3 40 sethi %hi(0xabcd0000), %o0 <== NOT EXECUTED 400042d4: 40 00 0b 76 call 400070ac <== NOT EXECUTED 400042d8: 90 12 20 02 or %o0, 2, %o0 ! abcd0002 <== NOT EXECUTED rtems_fatal_error_occurred( 0xABCD0003 ); 400042dc: 40 00 0b 74 call 400070ac <== NOT EXECUTED 400042e0: 90 12 20 03 or %o0, 3, %o0 <== NOT EXECUTED 400042e4: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 4000de80 : { 4000de80: 9d e3 bf a0 save %sp, -96, %sp while ( table_entry->type && !stop ) { 4000de84: 3b 10 00 40 sethi %hi(0x40010000), %i5 4000de88: c2 07 61 d8 ld [ %i5 + 0x1d8 ], %g1 ! 400101d8 4000de8c: 80 a0 60 00 cmp %g1, 0 4000de90: 12 80 00 06 bne 4000dea8 <== ALWAYS TAKEN 4000de94: ba 17 61 d8 or %i5, 0x1d8, %i5 4000de98: 30 80 00 0f b,a 4000ded4 <== NOT EXECUTED 4000de9c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000dea0: 32 80 00 22 bne,a 4000df28 <== NOT EXECUTED 4000dea4: b8 0f 20 ff and %i4, 0xff, %i4 <== NOT EXECUTED stop = (*routine)( table_entry, routine_arg ); 4000dea8: 90 10 00 1d mov %i5, %o0 4000deac: 9f c6 00 00 call %i0 4000deb0: 92 10 00 19 mov %i1, %o1 ++table_entry; 4000deb4: ba 07 60 08 add %i5, 8, %i5 while ( table_entry->type && !stop ) { 4000deb8: c2 07 40 00 ld [ %i5 ], %g1 4000debc: 80 a0 60 00 cmp %g1, 0 4000dec0: 12 bf ff f7 bne 4000de9c <== NEVER TAKEN 4000dec4: b8 10 00 08 mov %o0, %i4 if ( !stop ) { 4000dec8: b8 8a 20 ff andcc %o0, 0xff, %i4 4000decc: 12 80 00 17 bne 4000df28 <== ALWAYS TAKEN 4000ded0: 01 00 00 00 nop rtems_libio_lock(); 4000ded4: 7f ff d9 9f call 40004550 <== NOT EXECUTED 4000ded8: 37 10 00 48 sethi %hi(0x40012000), %i3 <== NOT EXECUTED return _Chain_Immutable_head( the_chain )->next; 4000dedc: fa 06 e1 70 ld [ %i3 + 0x170 ], %i5 ! 40012170 <== NOT EXECUTED 4000dee0: b6 16 e1 70 or %i3, 0x170, %i3 <== NOT EXECUTED for ( 4000dee4: b6 06 e0 04 add %i3, 4, %i3 <== NOT EXECUTED 4000dee8: 80 a7 40 1b cmp %i5, %i3 <== NOT EXECUTED 4000deec: 12 80 00 06 bne 4000df04 <== NOT EXECUTED 4000def0: b8 10 20 00 clr %i4 <== NOT EXECUTED 4000def4: 30 80 00 0b b,a 4000df20 <== NOT EXECUTED !rtems_chain_is_tail( chain, node ) && !stop; 4000def8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000defc: 12 80 00 09 bne 4000df20 <== NOT EXECUTED 4000df00: 01 00 00 00 nop <== NOT EXECUTED stop = (*routine)( &fsn->entry, routine_arg ); 4000df04: 90 07 60 08 add %i5, 8, %o0 <== NOT EXECUTED 4000df08: 9f c6 00 00 call %i0 <== NOT EXECUTED 4000df0c: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000df10: fa 07 40 00 ld [ %i5 ], %i5 <== NOT EXECUTED for ( 4000df14: 80 a7 40 1b cmp %i5, %i3 <== NOT EXECUTED 4000df18: 12 bf ff f8 bne 4000def8 <== NOT EXECUTED 4000df1c: b8 10 00 08 mov %o0, %i4 <== NOT EXECUTED rtems_libio_unlock(); 4000df20: 7f ff d9 91 call 40004564 <== NOT EXECUTED 4000df24: b8 0f 20 ff and %i4, 0xff, %i4 <== NOT EXECUTED } 4000df28: 81 c7 e0 08 ret 4000df2c: 91 e8 00 1c restore %g0, %i4, %o0 =============================================================================== 4000dbcc : void rtems_filesystem_location_clone( rtems_filesystem_location_info_t *clone, const rtems_filesystem_location_info_t *master ) { 4000dbcc: 9d e3 bf a0 save %sp, -96, %sp int rv = 0; clone = rtems_filesystem_location_copy( clone, master ); 4000dbd0: 92 10 00 19 mov %i1, %o1 4000dbd4: 7f ff df 08 call 400057f4 4000dbd8: 90 10 00 18 mov %i0, %o0 rv = (*clone->mt_entry->ops->clonenod_h)( clone ); 4000dbdc: c2 02 20 14 ld [ %o0 + 0x14 ], %g1 4000dbe0: c2 00 60 0c ld [ %g1 + 0xc ], %g1 4000dbe4: c2 00 60 24 ld [ %g1 + 0x24 ], %g1 4000dbe8: 9f c0 40 00 call %g1 4000dbec: ba 10 00 08 mov %o0, %i5 if ( rv != 0 ) { 4000dbf0: 80 a2 20 00 cmp %o0, 0 4000dbf4: 12 80 00 04 bne 4000dc04 <== NEVER TAKEN 4000dbf8: 90 10 00 1d mov %i5, %o0 rtems_filesystem_location_remove_from_mt_entry( clone ); rtems_filesystem_location_initialize_to_null( clone ); } } 4000dbfc: 81 c7 e0 08 ret 4000dc00: 81 e8 00 00 restore return rtems_filesystem_location_copy( 4000dc04: 33 10 00 47 sethi %hi(0x40011c00), %i1 <== NOT EXECUTED rtems_filesystem_location_remove_from_mt_entry( clone ); 4000dc08: 7f ff df cf call 40005b44 <== NOT EXECUTED 4000dc0c: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED 4000dc10: 7f ff de f9 call 400057f4 <== NOT EXECUTED 4000dc14: 93 ee 63 98 restore %i1, 0x398, %o1 <== NOT EXECUTED =============================================================================== 400057f4 : 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; 400057f4: da 02 60 08 ld [ %o1 + 8 ], %o5 <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 400057f8: c8 02 60 0c ld [ %o1 + 0xc ], %g4 <== NOT EXECUTED dst->handlers = src->handlers; 400057fc: c6 02 60 10 ld [ %o1 + 0x10 ], %g3 <== NOT EXECUTED dst->mt_entry = src->mt_entry; 40005800: c2 02 60 14 ld [ %o1 + 0x14 ], %g1 <== NOT EXECUTED 40005804: c2 22 20 14 st %g1, [ %o0 + 0x14 ] <== NOT EXECUTED dst->node_access = src->node_access; 40005808: da 22 20 08 st %o5, [ %o0 + 8 ] <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 4000580c: c8 22 20 0c st %g4, [ %o0 + 0xc ] <== NOT EXECUTED dst->handlers = src->handlers; 40005810: c6 22 20 10 st %g3, [ %o0 + 0x10 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005814: 91 d0 20 09 ta 9 <== NOT EXECUTED &loc->mt_entry->location_chain, 40005818: c6 02 20 14 ld [ %o0 + 0x14 ], %g3 <== NOT EXECUTED old_last = tail->previous; 4000581c: c8 00 e0 1c ld [ %g3 + 0x1c ], %g4 <== NOT EXECUTED return &the_chain->Tail.Node; 40005820: 9a 00 e0 18 add %g3, 0x18, %o5 <== NOT EXECUTED the_node->next = tail; 40005824: da 22 00 00 st %o5, [ %o0 ] <== NOT EXECUTED tail->previous = the_node; 40005828: d0 20 e0 1c st %o0, [ %g3 + 0x1c ] <== NOT EXECUTED old_last->next = the_node; 4000582c: d0 21 00 00 st %o0, [ %g4 ] <== NOT EXECUTED the_node->previous = old_last; 40005830: c8 22 20 04 st %g4, [ %o0 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005834: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005838: 01 00 00 00 nop rtems_chain_initialize_node(&dst->mt_entry_node); rtems_filesystem_location_add_to_mt_entry(dst); return dst; } 4000583c: 81 c3 e0 08 retl 40005840: 01 00 00 00 nop =============================================================================== 40005bc8 : { 40005bc8: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED dst->node_access = src->node_access; 40005bcc: c8 06 60 08 ld [ %i1 + 8 ], %g4 <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005bd0: c6 06 60 0c ld [ %i1 + 0xc ], %g3 <== NOT EXECUTED dst->handlers = src->handlers; 40005bd4: c4 06 60 10 ld [ %i1 + 0x10 ], %g2 <== NOT EXECUTED dst->mt_entry = src->mt_entry; 40005bd8: c2 06 60 14 ld [ %i1 + 0x14 ], %g1 <== NOT EXECUTED 40005bdc: c2 26 20 14 st %g1, [ %i0 + 0x14 ] <== NOT EXECUTED dst->node_access = src->node_access; 40005be0: c8 26 20 08 st %g4, [ %i0 + 8 ] <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005be4: c6 26 20 0c st %g3, [ %i0 + 0xc ] <== NOT EXECUTED dst->handlers = src->handlers; 40005be8: c4 26 20 10 st %g2, [ %i0 + 0x10 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005bec: 91 d0 20 09 ta 9 <== NOT EXECUTED &loc->mt_entry->location_chain, 40005bf0: c4 06 20 14 ld [ %i0 + 0x14 ], %g2 <== NOT EXECUTED old_last = tail->previous; 40005bf4: c6 00 a0 1c ld [ %g2 + 0x1c ], %g3 <== NOT EXECUTED return &the_chain->Tail.Node; 40005bf8: 88 00 a0 18 add %g2, 0x18, %g4 <== NOT EXECUTED the_node->next = tail; 40005bfc: c8 26 00 00 st %g4, [ %i0 ] <== NOT EXECUTED tail->previous = the_node; 40005c00: f0 20 a0 1c st %i0, [ %g2 + 0x1c ] <== NOT EXECUTED old_last->next = the_node; 40005c04: f0 20 c0 00 st %i0, [ %g3 ] <== NOT EXECUTED the_node->previous = old_last; 40005c08: c6 26 20 04 st %g3, [ %i0 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005c0c: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005c10: 01 00 00 00 nop rtems_filesystem_location_remove_from_mt_entry(detach); 40005c14: 7f ff ff cc call 40005b44 40005c18: 90 10 00 19 mov %i1, %o0 dst->node_access = src->node_access; 40005c1c: 03 10 00 47 sethi %hi(0x40011c00), %g1 <== NOT EXECUTED 40005c20: 82 10 63 98 or %g1, 0x398, %g1 ! 40011f98 <== NOT EXECUTED 40005c24: c4 00 60 08 ld [ %g1 + 8 ], %g2 <== NOT EXECUTED 40005c28: c4 26 60 08 st %g2, [ %i1 + 8 ] <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005c2c: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED 40005c30: c4 26 60 0c st %g2, [ %i1 + 0xc ] <== NOT EXECUTED dst->handlers = src->handlers; 40005c34: c4 00 60 10 ld [ %g1 + 0x10 ], %g2 <== NOT EXECUTED dst->mt_entry = src->mt_entry; 40005c38: c2 00 60 14 ld [ %g1 + 0x14 ], %g1 <== NOT EXECUTED 40005c3c: c2 26 60 14 st %g1, [ %i1 + 0x14 ] <== NOT EXECUTED dst->handlers = src->handlers; 40005c40: c4 26 60 10 st %g2, [ %i1 + 0x10 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005c44: 91 d0 20 09 ta 9 <== NOT EXECUTED 40005c48: c4 06 60 14 ld [ %i1 + 0x14 ], %g2 <== NOT EXECUTED old_last = tail->previous; 40005c4c: c6 00 a0 1c ld [ %g2 + 0x1c ], %g3 <== NOT EXECUTED return &the_chain->Tail.Node; 40005c50: 88 00 a0 18 add %g2, 0x18, %g4 <== NOT EXECUTED the_node->next = tail; 40005c54: c8 26 40 00 st %g4, [ %i1 ] <== NOT EXECUTED tail->previous = the_node; 40005c58: f2 20 a0 1c st %i1, [ %g2 + 0x1c ] <== NOT EXECUTED old_last->next = the_node; 40005c5c: f2 20 c0 00 st %i1, [ %g3 ] <== NOT EXECUTED the_node->previous = old_last; 40005c60: c6 26 60 04 st %g3, [ %i1 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005c64: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005c68: 01 00 00 00 nop } 40005c6c: 81 c7 e0 08 ret 40005c70: 81 e8 00 00 restore =============================================================================== 40005844 : void rtems_filesystem_location_detach( rtems_filesystem_location_info_t *detach ) { 40005844: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_filesystem_location_free(detach); 40005848: 40 00 20 f4 call 4000dc18 <== NOT EXECUTED 4000584c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED dst->node_access = src->node_access; 40005850: 03 10 00 47 sethi %hi(0x40011c00), %g1 <== NOT EXECUTED 40005854: 82 10 63 98 or %g1, 0x398, %g1 ! 40011f98 <== NOT EXECUTED 40005858: c4 00 60 08 ld [ %g1 + 8 ], %g2 <== NOT EXECUTED 4000585c: c4 26 20 08 st %g2, [ %i0 + 8 ] <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005860: c4 00 60 0c ld [ %g1 + 0xc ], %g2 <== NOT EXECUTED 40005864: c4 26 20 0c st %g2, [ %i0 + 0xc ] <== NOT EXECUTED dst->handlers = src->handlers; 40005868: c4 00 60 10 ld [ %g1 + 0x10 ], %g2 <== NOT EXECUTED dst->mt_entry = src->mt_entry; 4000586c: c2 00 60 14 ld [ %g1 + 0x14 ], %g1 <== NOT EXECUTED 40005870: c2 26 20 14 st %g1, [ %i0 + 0x14 ] <== NOT EXECUTED dst->handlers = src->handlers; 40005874: c4 26 20 10 st %g2, [ %i0 + 0x10 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005878: 91 d0 20 09 ta 9 <== NOT EXECUTED 4000587c: c4 06 20 14 ld [ %i0 + 0x14 ], %g2 <== NOT EXECUTED old_last = tail->previous; 40005880: c6 00 a0 1c ld [ %g2 + 0x1c ], %g3 <== NOT EXECUTED return &the_chain->Tail.Node; 40005884: 88 00 a0 18 add %g2, 0x18, %g4 <== NOT EXECUTED the_node->next = tail; 40005888: c8 26 00 00 st %g4, [ %i0 ] <== NOT EXECUTED tail->previous = the_node; 4000588c: f0 20 a0 1c st %i0, [ %g2 + 0x1c ] <== NOT EXECUTED old_last->next = the_node; 40005890: f0 20 c0 00 st %i0, [ %g3 ] <== NOT EXECUTED the_node->previous = old_last; 40005894: c6 26 20 04 st %g3, [ %i0 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005898: 91 d0 20 0a ta 0xa <== NOT EXECUTED 4000589c: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_location_initialize_to_null(detach); } 400058a0: 81 c7 e0 08 ret <== NOT EXECUTED 400058a4: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000dc18 : #endif #include void rtems_filesystem_location_free( rtems_filesystem_location_info_t *loc ) { 4000dc18: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED 4000dc1c: d0 06 20 14 ld [ %i0 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->lock_h)( mt_entry ); 4000dc20: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 4000dc24: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED 4000dc28: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000dc2c: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_instance_lock( loc ); (*loc->mt_entry->ops->freenod_h)( loc ); 4000dc30: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 <== NOT EXECUTED 4000dc34: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED 4000dc38: c2 00 60 28 ld [ %g1 + 0x28 ], %g1 <== NOT EXECUTED 4000dc3c: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000dc40: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 4000dc44: d0 06 20 14 ld [ %i0 + 0x14 ], %o0 <== NOT EXECUTED (*mt_entry->ops->unlock_h)( mt_entry ); 4000dc48: c2 02 20 0c ld [ %o0 + 0xc ], %g1 <== NOT EXECUTED 4000dc4c: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED 4000dc50: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000dc54: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_instance_unlock( loc ); rtems_filesystem_location_remove_from_mt_entry( loc ); 4000dc58: 7f ff df bb call 40005b44 <== NOT EXECUTED 4000dc5c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40005b44 : __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005b44: 91 d0 20 09 ta 9 <== NOT EXECUTED previous = the_node->previous; 40005b48: c6 02 20 04 ld [ %o0 + 4 ], %g3 next = the_node->next; 40005b4c: c8 02 00 00 ld [ %o0 ], %g4 next->previous = previous; 40005b50: c6 21 20 04 st %g3, [ %g4 + 4 ] do_unmount = rtems_filesystem_is_ready_for_unmount(loc->mt_entry); 40005b54: c4 02 20 14 ld [ %o0 + 0x14 ], %g2 previous->next = next; 40005b58: c8 20 c0 00 st %g4, [ %g3 ] 40005b5c: c6 08 a0 28 ldub [ %g2 + 0x28 ], %g3 40005b60: 80 a0 e0 00 cmp %g3, 0 40005b64: 12 80 00 07 bne 40005b80 <== ALWAYS TAKEN 40005b68: 01 00 00 00 nop && rtems_chain_has_only_one_node( &mt_entry->location_chain ) 40005b6c: c8 00 a0 14 ld [ %g2 + 0x14 ], %g4 <== NOT EXECUTED 40005b70: c6 00 a0 1c ld [ %g2 + 0x1c ], %g3 <== NOT EXECUTED 40005b74: 80 a1 00 03 cmp %g4, %g3 <== NOT EXECUTED 40005b78: 22 80 00 06 be,a 40005b90 <== NOT EXECUTED 40005b7c: c6 00 a0 24 ld [ %g2 + 0x24 ], %g3 <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005b80: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005b84: 01 00 00 00 nop } 40005b88: 81 c3 e0 08 retl 40005b8c: 01 00 00 00 nop && mt_entry->mt_fs_root->reference_count == 1; 40005b90: c6 00 e0 18 ld [ %g3 + 0x18 ], %g3 <== NOT EXECUTED 40005b94: 80 a0 e0 01 cmp %g3, 1 <== NOT EXECUTED 40005b98: 12 bf ff fa bne 40005b80 <== NOT EXECUTED 40005b9c: 86 00 a0 14 add %g2, 0x14, %g3 <== NOT EXECUTED return &the_chain->Tail.Node; 40005ba0: 88 00 a0 18 add %g2, 0x18, %g4 <== NOT EXECUTED head->previous = NULL; 40005ba4: c0 20 a0 18 clr [ %g2 + 0x18 ] <== NOT EXECUTED head->next = tail; 40005ba8: c8 20 a0 14 st %g4, [ %g2 + 0x14 ] <== NOT EXECUTED tail->previous = head; 40005bac: c6 20 a0 1c st %g3, [ %g2 + 0x1c ] <== NOT EXECUTED 40005bb0: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005bb4: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_do_unmount(loc->mt_entry); 40005bb8: d0 02 20 14 ld [ %o0 + 0x14 ], %o0 <== NOT EXECUTED 40005bbc: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40005bc0: 7f ff ff 3a call 400058a8 <== NOT EXECUTED 40005bc4: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED =============================================================================== 40005c74 : { 40005c74: 9d e3 bf 98 save %sp, -104, %sp <== NOT EXECUTED rtems_filesystem_global_location_t *global_loc = malloc(sizeof(*global_loc)); 40005c78: 7f ff fa d1 call 400047bc <== NOT EXECUTED 40005c7c: 90 10 20 24 mov 0x24, %o0 <== NOT EXECUTED if (global_loc != NULL) { 40005c80: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 40005c84: 02 80 00 1c be 40005cf4 <== NOT EXECUTED 40005c88: b8 10 20 01 mov 1, %i4 <== NOT EXECUTED dst->node_access = src->node_access; 40005c8c: c8 06 20 08 ld [ %i0 + 8 ], %g4 <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005c90: c6 06 20 0c ld [ %i0 + 0xc ], %g3 <== NOT EXECUTED dst->handlers = src->handlers; 40005c94: c4 06 20 10 ld [ %i0 + 0x10 ], %g2 <== NOT EXECUTED dst->mt_entry = src->mt_entry; 40005c98: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 <== NOT EXECUTED global_loc->deferred_released_next = NULL; 40005c9c: c0 27 60 1c clr [ %i5 + 0x1c ] <== NOT EXECUTED global_loc->reference_count = 1; 40005ca0: f8 27 60 18 st %i4, [ %i5 + 0x18 ] <== NOT EXECUTED global_loc->deferred_released_count = 0; 40005ca4: c0 27 60 20 clr [ %i5 + 0x20 ] <== NOT EXECUTED dst->node_access = src->node_access; 40005ca8: c8 27 60 08 st %g4, [ %i5 + 8 ] <== NOT EXECUTED dst->node_access_2 = src->node_access_2; 40005cac: c6 27 60 0c st %g3, [ %i5 + 0xc ] <== NOT EXECUTED dst->handlers = src->handlers; 40005cb0: c4 27 60 10 st %g2, [ %i5 + 0x10 ] <== NOT EXECUTED dst->mt_entry = src->mt_entry; 40005cb4: c2 27 60 14 st %g1, [ %i5 + 0x14 ] <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40005cb8: 91 d0 20 09 ta 9 <== NOT EXECUTED 40005cbc: c4 07 60 14 ld [ %i5 + 0x14 ], %g2 <== NOT EXECUTED old_last = tail->previous; 40005cc0: c6 00 a0 1c ld [ %g2 + 0x1c ], %g3 <== NOT EXECUTED return &the_chain->Tail.Node; 40005cc4: 88 00 a0 18 add %g2, 0x18, %g4 <== NOT EXECUTED the_node->next = tail; 40005cc8: c8 27 40 00 st %g4, [ %i5 ] <== NOT EXECUTED tail->previous = the_node; 40005ccc: fa 20 a0 1c st %i5, [ %g2 + 0x1c ] <== NOT EXECUTED old_last->next = the_node; 40005cd0: fa 20 c0 00 st %i5, [ %g3 ] <== NOT EXECUTED the_node->previous = old_last; 40005cd4: c6 27 60 04 st %g3, [ %i5 + 4 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40005cd8: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40005cdc: 01 00 00 00 nop <== NOT EXECUTED rtems_filesystem_location_remove_from_mt_entry(loc); 40005ce0: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40005ce4: 7f ff ff 98 call 40005b44 <== NOT EXECUTED 40005ce8: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED } 40005cec: 81 c7 e0 08 ret <== NOT EXECUTED 40005cf0: 81 e8 00 00 restore <== NOT EXECUTED rtems_filesystem_location_free(loc); 40005cf4: 40 00 1f c9 call 4000dc18 <== NOT EXECUTED 40005cf8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED return rtems_filesystem_global_location_obtain( &global_loc ); 40005cfc: 90 07 bf fc add %fp, -4, %o0 <== NOT EXECUTED 40005d00: 7f ff ff 33 call 400059cc <== NOT EXECUTED 40005d04: c0 27 bf fc clr [ %fp + -4 ] <== NOT EXECUTED errno = ENOMEM; 40005d08: 40 00 23 59 call 4000ea6c <__errno> <== NOT EXECUTED 40005d0c: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED 40005d10: 82 10 20 0c mov 0xc, %g1 <== NOT EXECUTED 40005d14: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } 40005d18: 81 c7 e0 08 ret <== NOT EXECUTED 40005d1c: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED =============================================================================== 40004828 : const char *name, size_t namelen, mode_t mode, dev_t dev ) { 40004828: 9d e3 bf a0 save %sp, -96, %sp int rv = 0; mode &= ~rtems_filesystem_umask; 4000482c: 40 00 01 e3 call 40004fb8 40004830: 01 00 00 00 nop 40004834: d6 02 20 08 ld [ %o0 + 8 ], %o3 40004838: 96 2e c0 0b andn %i3, %o3, %o3 switch (mode & S_IFMT) { 4000483c: 03 00 00 3c sethi %hi(0xf000), %g1 40004840: 05 00 00 10 sethi %hi(0x4000), %g2 40004844: 82 0a c0 01 and %o3, %g1, %g1 40004848: 80 a0 40 02 cmp %g1, %g2 4000484c: 22 80 00 0c be,a 4000487c 40004850: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 40004854: 08 80 00 14 bleu 400048a4 <== ALWAYS TAKEN 40004858: 05 00 00 04 sethi %hi(0x1000), %g2 4000485c: 05 00 00 18 sethi %hi(0x6000), %g2 <== NOT EXECUTED 40004860: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 40004864: 02 80 00 05 be 40004878 <== NOT EXECUTED 40004868: 05 00 00 20 sethi %hi(0x8000), %g2 <== NOT EXECUTED 4000486c: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 40004870: 12 80 00 13 bne 400048bc <== NOT EXECUTED 40004874: 01 00 00 00 nop <== NOT EXECUTED rv = -1; break; } if ( rv == 0 ) { const rtems_filesystem_operations_table *ops = parentloc->mt_entry->ops; 40004878: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 <== NOT EXECUTED rv = (*ops->mknod_h)( parentloc, name, namelen, mode, dev ); 4000487c: c2 00 60 0c ld [ %g1 + 0xc ], %g1 40004880: c2 00 60 14 ld [ %g1 + 0x14 ], %g1 40004884: 98 10 00 1c mov %i4, %o4 40004888: 9a 10 00 1d mov %i5, %o5 4000488c: 94 10 00 1a mov %i2, %o2 40004890: 92 10 00 19 mov %i1, %o1 40004894: 9f c0 40 00 call %g1 40004898: 90 10 00 18 mov %i0, %o0 4000489c: 81 c7 e0 08 ret 400048a0: 91 e8 00 08 restore %g0, %o0, %o0 switch (mode & S_IFMT) { 400048a4: 80 a0 40 02 cmp %g1, %g2 400048a8: 02 bf ff f4 be 40004878 <== NEVER TAKEN 400048ac: 05 00 00 08 sethi %hi(0x2000), %g2 400048b0: 80 a0 40 02 cmp %g1, %g2 400048b4: 22 bf ff f2 be,a 4000487c <== ALWAYS TAKEN 400048b8: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 errno = EINVAL; 400048bc: 40 00 28 6c call 4000ea6c <__errno> <== NOT EXECUTED 400048c0: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 400048c4: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 400048c8: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED } return rv; } 400048cc: 81 c7 e0 08 ret <== NOT EXECUTED 400048d0: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40010598 : 40010598: 40 00 5e 80 40 00 d6 0c 40 00 d8 60 40 00 d8 f8 @.^.@...@..`@... 400105a8: 40 00 d6 94 40 00 d8 18 40 00 5e 88 40 00 d6 78 @...@...@.^.@..x 400105b8: 40 00 d6 38 40 00 d6 38 40 00 d6 28 40 00 d8 58 @..8@..8@..(@..X 400105c8: 40 00 d6 b0 40 00 d8 7c 40 00 d9 14 40 00 d8 34 @...@..|@...@..4 400105d8: 3f 00 00 00 00 00 00 00 52 54 45 4d 53 5f 53 55 ?.......RTEMS_SU 400105e8: 43 43 45 53 53 46 55 4c 00 00 00 00 00 00 00 00 CCESSFUL........ 400105f8: 52 54 45 4d 53 5f 54 41 53 4b 5f 45 58 49 54 54 RTEMS_TASK_EXITT 40010608: 45 44 00 00 00 00 00 00 52 54 45 4d 53 5f 4d 50 ED......RTEMS_MP 40010618: 5f 4e 4f 54 5f 43 4f 4e 46 49 47 55 52 45 44 00 _NOT_CONFIGURED. 40010628: 52 54 45 4d 53 5f 49 4e 56 41 4c 49 44 5f 4e 41 RTEMS_INVALID_NA 40010638: 4d 45 00 00 00 00 00 00 52 54 45 4d 53 5f 49 4e ME......RTEMS_IN 40010648: 56 41 4c 49 44 5f 49 44 00 00 00 00 00 00 00 00 VALID_ID........ 40010658: 52 54 45 4d 53 5f 54 4f 4f 5f 4d 41 4e 59 00 00 RTEMS_TOO_MANY.. 40010668: 52 54 45 4d 53 5f 54 49 4d 45 4f 55 54 00 00 00 RTEMS_TIMEOUT... 40010678: 52 54 45 4d 53 5f 4f 42 4a 45 43 54 5f 57 41 53 RTEMS_OBJECT_WAS 40010688: 5f 44 45 4c 45 54 45 44 00 00 00 00 00 00 00 00 _DELETED........ 40010698: 52 54 45 4d 53 5f 49 4e 56 41 4c 49 44 5f 53 49 RTEMS_INVALID_SI 400106a8: 5a 45 00 00 00 00 00 00 52 54 45 4d 53 5f 49 4e ZE......RTEMS_IN 400106b8: 56 41 4c 49 44 5f 41 44 44 52 45 53 53 00 00 00 VALID_ADDRESS... 400106c8: 52 54 45 4d 53 5f 49 4e 56 41 4c 49 44 5f 4e 55 RTEMS_INVALID_NU 400106d8: 4d 42 45 52 00 00 00 00 52 54 45 4d 53 5f 4e 4f MBER....RTEMS_NO 400106e8: 54 5f 44 45 46 49 4e 45 44 00 00 00 00 00 00 00 T_DEFINED....... 400106f8: 52 54 45 4d 53 5f 52 45 53 4f 55 52 43 45 5f 49 RTEMS_RESOURCE_I 40010708: 4e 5f 55 53 45 00 00 00 52 54 45 4d 53 5f 55 4e N_USE...RTEMS_UN 40010718: 53 41 54 49 53 46 49 45 44 00 00 00 00 00 00 00 SATISFIED....... 40010728: 52 54 45 4d 53 5f 49 4e 43 4f 52 52 45 43 54 5f RTEMS_INCORRECT_ 40010738: 53 54 41 54 45 00 00 00 52 54 45 4d 53 5f 41 4c STATE...RTEMS_AL 40010748: 52 45 41 44 59 5f 53 55 53 50 45 4e 44 45 44 00 READY_SUSPENDED. 40010758: 52 54 45 4d 53 5f 49 4c 4c 45 47 41 4c 5f 4f 4e RTEMS_ILLEGAL_ON 40010768: 5f 53 45 4c 46 00 00 00 52 54 45 4d 53 5f 49 4c _SELF...RTEMS_IL 40010778: 4c 45 47 41 4c 5f 4f 4e 5f 52 45 4d 4f 54 45 5f LEGAL_ON_REMOTE_ 40010788: 4f 42 4a 45 43 54 00 00 52 54 45 4d 53 5f 43 41 OBJECT..RTEMS_CA 40010798: 4c 4c 45 44 5f 46 52 4f 4d 5f 49 53 52 00 00 00 LLED_FROM_ISR... 400107a8: 52 54 45 4d 53 5f 49 4e 56 41 4c 49 44 5f 50 52 RTEMS_INVALID_PR 400107b8: 49 4f 52 49 54 59 00 00 52 54 45 4d 53 5f 49 4e IORITY..RTEMS_IN 400107c8: 56 41 4c 49 44 5f 43 4c 4f 43 4b 00 00 00 00 00 VALID_CLOCK..... 400107d8: 52 54 45 4d 53 5f 49 4e 56 41 4c 49 44 5f 4e 4f RTEMS_INVALID_NO 400107e8: 44 45 00 00 00 00 00 00 52 54 45 4d 53 5f 4e 4f DE......RTEMS_NO 400107f8: 54 5f 43 4f 4e 46 49 47 55 52 45 44 00 00 00 00 T_CONFIGURED.... 40010808: 52 54 45 4d 53 5f 4e 4f 54 5f 4f 57 4e 45 52 5f RTEMS_NOT_OWNER_ 40010818: 4f 46 5f 52 45 53 4f 55 52 43 45 00 00 00 00 00 OF_RESOURCE..... 40010828: 52 54 45 4d 53 5f 4e 4f 54 5f 49 4d 50 4c 45 4d RTEMS_NOT_IMPLEM 40010838: 45 4e 54 45 44 00 00 00 52 54 45 4d 53 5f 49 4e ENTED...RTEMS_IN 40010848: 54 45 52 4e 41 4c 5f 45 52 52 4f 52 00 00 00 00 TERNAL_ERROR.... 40010858: 52 54 45 4d 53 5f 4e 4f 5f 4d 45 4d 4f 52 59 00 RTEMS_NO_MEMORY. 40010868: 52 54 45 4d 53 5f 49 4f 5f 45 52 52 4f 52 00 00 RTEMS_IO_ERROR.. 40010878: 52 54 45 4d 53 5f 50 52 4f 58 59 5f 42 4c 4f 43 RTEMS_PROXY_BLOC 40010888: 4b 49 4e 47 00 00 00 00 KING.... =============================================================================== 40004618 : void *rtems_heap_allocate_aligned_with_boundary( size_t size, uintptr_t alignment, uintptr_t boundary ) { 40004618: 9d e3 bf a0 save %sp, -96, %sp 4000461c: 03 10 00 4e sethi %hi(0x40013800), %g1 40004620: c2 00 61 b0 ld [ %g1 + 0x1b0 ], %g1 ! 400139b0 <_System_state_Current> Heap_Control *heap = RTEMS_Malloc_Heap; 40004624: 05 10 00 47 sethi %hi(0x40011c00), %g2 if ( _System_state_Is_up( state ) ) { 40004628: 80 a0 60 02 cmp %g1, 2 4000462c: 02 80 00 21 be 400046b0 40004630: f8 00 a3 0c ld [ %g2 + 0x30c ], %i4 } else if ( _System_state_Is_before_multitasking( state ) ) { 40004634: 80 a0 60 01 cmp %g1, 1 40004638: 02 80 00 22 be 400046c0 4000463c: 96 10 00 1a mov %i2, %o3 boundary ); _RTEMS_Unlock_allocator(); break; case MALLOC_SYSTEM_STATE_NO_PROTECTION: p = _Heap_Allocate_aligned_with_boundary( 40004640: 94 10 00 19 mov %i1, %o2 40004644: 92 10 00 18 mov %i0, %o1 40004648: 40 00 0b 46 call 40007360 <_Heap_Allocate_aligned_with_boundary> 4000464c: 90 10 00 1c mov %i4, %o0 40004650: 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 ) { 40004654: 80 a7 60 00 cmp %i5, 0 40004658: 12 80 00 0b bne 40004684 <== ALWAYS TAKEN 4000465c: 80 a6 60 00 cmp %i1, 0 40004660: 12 80 00 09 bne 40004684 <== NOT EXECUTED 40004664: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 40004668: 12 80 00 23 bne 400046f4 <== NOT EXECUTED 4000466c: 03 10 00 40 sethi %hi(0x40010000), %g1 <== NOT EXECUTED p = (*rtems_malloc_extend_handler)( heap, size ); 40004670: c2 00 61 04 ld [ %g1 + 0x104 ], %g1 ! 40010104 <== NOT EXECUTED 40004674: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40004678: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000467c: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 40004680: 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 ) 40004684: 80 a7 60 00 cmp %i5, 0 40004688: 02 80 00 1b be 400046f4 <== NEVER TAKEN 4000468c: 03 10 00 48 sethi %hi(0x40012000), %g1 40004690: c2 00 63 58 ld [ %g1 + 0x358 ], %g1 ! 40012358 40004694: 80 a0 60 00 cmp %g1, 0 40004698: 02 80 00 04 be 400046a8 <== ALWAYS TAKEN 4000469c: 92 10 00 18 mov %i0, %o1 (*rtems_malloc_dirty_helper)( p, size ); 400046a0: 9f c0 40 00 call %g1 <== NOT EXECUTED 400046a4: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED return p; } 400046a8: 81 c7 e0 08 ret 400046ac: 91 e8 00 1d restore %g0, %i5, %o0 400046b0: c2 01 a0 18 ld [ %g6 + 0x18 ], %g1 if ( _Thread_Dispatch_is_enabled() ) { 400046b4: 80 a0 60 00 cmp %g1, 0 400046b8: 32 80 00 10 bne,a 400046f8 <== NEVER TAKEN 400046bc: ba 10 20 00 clr %i5 <== NOT EXECUTED _RTEMS_Lock_allocator(); 400046c0: 40 00 0a 96 call 40007118 <_RTEMS_Lock_allocator> 400046c4: 01 00 00 00 nop _Malloc_Process_deferred_frees(); 400046c8: 7f ff ff bb call 400045b4 <_Malloc_Process_deferred_frees> 400046cc: 01 00 00 00 nop p = _Heap_Allocate_aligned_with_boundary( 400046d0: 96 10 00 1a mov %i2, %o3 400046d4: 94 10 00 19 mov %i1, %o2 400046d8: 92 10 00 18 mov %i0, %o1 400046dc: 40 00 0b 21 call 40007360 <_Heap_Allocate_aligned_with_boundary> 400046e0: 90 10 00 1c mov %i4, %o0 _RTEMS_Unlock_allocator(); 400046e4: 40 00 0a 92 call 4000712c <_RTEMS_Unlock_allocator> 400046e8: ba 10 00 08 mov %o0, %i5 break; 400046ec: 10 bf ff db b 40004658 400046f0: 80 a7 60 00 cmp %i5, 0 return NULL; 400046f4: ba 10 20 00 clr %i5 <== NOT EXECUTED } 400046f8: 81 c7 e0 08 ret <== NOT EXECUTED 400046fc: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED =============================================================================== 4000500c : Heap_Control *heap RTEMS_UNUSED, size_t alloc_size RTEMS_UNUSED ) { return NULL; } 4000500c: 81 c3 e0 08 retl <== NOT EXECUTED 40005010: 90 10 20 00 clr %o0 ! 0 <== NOT EXECUTED =============================================================================== 4000ddb8 : return fcntl_flags; } rtems_libio_t *rtems_libio_allocate( void ) { 4000ddb8: 9d e3 bf a0 save %sp, -96, %sp rtems_libio_t *iop; rtems_libio_lock(); 4000ddbc: 7f ff d9 e5 call 40004550 4000ddc0: 01 00 00 00 nop iop = rtems_libio_iop_free_head; 4000ddc4: 03 10 00 4e sethi %hi(0x40013800), %g1 4000ddc8: f0 00 60 d0 ld [ %g1 + 0xd0 ], %i0 ! 400138d0 if ( iop != NULL ) { 4000ddcc: 80 a6 20 00 cmp %i0, 0 4000ddd0: 02 80 00 06 be 4000dde8 <== NEVER TAKEN 4000ddd4: 86 10 60 d0 or %g1, 0xd0, %g3 void *next; next = iop->data1; 4000ddd8: c4 06 20 28 ld [ %i0 + 0x28 ], %g2 rtems_libio_iop_free_head = next; if ( next == NULL ) { 4000dddc: 80 a0 a0 00 cmp %g2, 0 4000dde0: 02 80 00 06 be 4000ddf8 4000dde4: c4 20 60 d0 st %g2, [ %g1 + 0xd0 ] rtems_libio_iop_free_tail = &rtems_libio_iop_free_head; } } rtems_libio_unlock(); 4000dde8: 7f ff d9 df call 40004564 4000ddec: 01 00 00 00 nop return iop; } 4000ddf0: 81 c7 e0 08 ret 4000ddf4: 81 e8 00 00 restore rtems_libio_iop_free_tail = &rtems_libio_iop_free_head; 4000ddf8: 03 10 00 47 sethi %hi(0x40011c00), %g1 rtems_libio_unlock(); 4000ddfc: 7f ff d9 da call 40004564 4000de00: c6 20 63 18 st %g3, [ %g1 + 0x318 ] ! 40011f18 } 4000de04: 81 c7 e0 08 ret 4000de08: 81 e8 00 00 restore =============================================================================== 4000dd64 : #include #include void rtems_libio_exit(void) { 4000dd64: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED (void)close(0); 4000dd68: 40 00 03 04 call 4000e978 <== NOT EXECUTED 4000dd6c: 90 10 20 00 clr %o0 <== NOT EXECUTED (void)close(1); (void)close(2); 4000dd70: b0 10 20 02 mov 2, %i0 <== NOT EXECUTED (void)close(1); 4000dd74: 40 00 03 01 call 4000e978 <== NOT EXECUTED 4000dd78: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED (void)close(2); 4000dd7c: 40 00 02 ff call 4000e978 <== NOT EXECUTED 4000dd80: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000de0c : void rtems_libio_free( rtems_libio_t *iop ) { 4000de0c: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_filesystem_location_free( &iop->pathinfo ); 4000de10: 7f ff ff 82 call 4000dc18 <== NOT EXECUTED 4000de14: 90 06 20 0c add %i0, 0xc, %o0 <== NOT EXECUTED rtems_libio_lock(); 4000de18: 7f ff d9 ce call 40004550 <== NOT EXECUTED 4000de1c: 01 00 00 00 nop <== NOT EXECUTED iop = memset( iop, 0, sizeof( *iop ) ); 4000de20: 94 10 20 30 mov 0x30, %o2 ! 30 <_TLS_Alignment+0x2f> <== NOT EXECUTED 4000de24: 92 10 20 00 clr %o1 <== NOT EXECUTED 4000de28: 40 00 03 7b call 4000ec14 <== NOT EXECUTED 4000de2c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED *rtems_libio_iop_free_tail = iop; 4000de30: 03 10 00 47 sethi %hi(0x40011c00), %g1 <== NOT EXECUTED 4000de34: c4 00 63 18 ld [ %g1 + 0x318 ], %g2 ! 40011f18 <== NOT EXECUTED 4000de38: d0 20 80 00 st %o0, [ %g2 ] <== NOT EXECUTED rtems_libio_iop_free_tail = &iop->data1; 4000de3c: 90 02 20 28 add %o0, 0x28, %o0 <== NOT EXECUTED 4000de40: d0 20 63 18 st %o0, [ %g1 + 0x318 ] <== NOT EXECUTED rtems_libio_unlock(); 4000de44: 7f ff d9 c8 call 40004564 <== NOT EXECUTED 4000de48: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 40004fe4 : if (!uses_global_env) { 40004fe4: 03 10 00 47 sethi %hi(0x40011c00), %g1 <== NOT EXECUTED 40004fe8: 82 10 63 50 or %g1, 0x350, %g1 ! 40011f50 <== NOT EXECUTED 40004fec: 80 a0 40 08 cmp %g1, %o0 <== NOT EXECUTED 40004ff0: 02 80 00 05 be 40005004 <== NOT EXECUTED 40004ff4: 01 00 00 00 nop <== NOT EXECUTED 40004ff8: 82 13 c0 00 mov %o7, %g1 <== NOT EXECUTED 40004ffc: 7f ff ff e6 call 40004f94 <== NOT EXECUTED 40005000: 9e 10 40 00 mov %g1, %o7 <== NOT EXECUTED } } 40005004: 81 c3 e0 08 retl <== NOT EXECUTED 40005008: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 40004cd4 : /* * This is a replaceable stub which opens the console, if present. */ void rtems_libio_post_driver(void) { 40004cd4: 9d e3 bf a0 save %sp, -96, %sp /* * Attempt to open /dev/console. */ if ( open( CONSOLE_DEVICE_NAME, O_RDONLY, 0 ) != STDIN_FILENO ) { 40004cd8: 94 10 20 00 clr %o2 40004cdc: 92 10 20 00 clr %o1 40004ce0: 3b 10 00 41 sethi %hi(0x40010400), %i5 40004ce4: 40 00 00 1a call 40004d4c 40004ce8: 90 17 60 a8 or %i5, 0xa8, %o0 ! 400104a8 40004cec: 80 a2 20 00 cmp %o0, 0 40004cf0: 02 80 00 04 be 40004d00 <== ALWAYS TAKEN 40004cf4: 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); } 40004cf8: 81 c7 e0 08 ret <== NOT EXECUTED 40004cfc: 81 e8 00 00 restore <== NOT EXECUTED if ( open( CONSOLE_DEVICE_NAME, O_WRONLY, 0 ) != STDOUT_FILENO ) { 40004d00: 92 10 20 01 mov 1, %o1 40004d04: 40 00 00 12 call 40004d4c 40004d08: 90 17 60 a8 or %i5, 0xa8, %o0 40004d0c: 80 a2 20 01 cmp %o0, 1 40004d10: 12 80 00 0a bne 40004d38 <== NEVER TAKEN 40004d14: 94 10 20 00 clr %o2 if ( open( CONSOLE_DEVICE_NAME, O_WRONLY, 0 ) != STDERR_FILENO ) { 40004d18: 92 10 20 01 mov 1, %o1 40004d1c: 40 00 00 0c call 40004d4c 40004d20: 90 17 60 a8 or %i5, 0xa8, %o0 40004d24: 80 a2 20 02 cmp %o0, 2 40004d28: 12 80 00 06 bne 40004d40 <== NEVER TAKEN 40004d2c: 31 10 00 37 sethi %hi(0x4000dc00), %i0 <== NOT EXECUTED atexit(rtems_libio_exit); 40004d30: 40 00 27 48 call 4000ea50 <== NOT EXECUTED 40004d34: 91 ee 21 64 restore %i0, 0x164, %o0 _Internal_error( INTERNAL_ERROR_LIBIO_STDOUT_FD_OPEN_FAILED ); 40004d38: 40 00 0b 31 call 400079fc <_Internal_error> <== NOT EXECUTED 40004d3c: 90 10 20 24 mov 0x24, %o0 <== NOT EXECUTED _Internal_error( INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILED ); 40004d40: 40 00 0b 2f call 400079fc <_Internal_error> <== NOT EXECUTED 40004d44: 90 10 20 25 mov 0x25, %o0 <== NOT EXECUTED 40004d48: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 4000dfc0 : int rtems_printf( const rtems_printer *printer, const char *format, ... ) { 4000dfc0: 9d e3 bf 98 save %sp, -104, %sp int len = 0; if ( rtems_print_printer_valid( printer ) ) { va_list ap; va_start( ap, format ); 4000dfc4: f4 27 a0 4c st %i2, [ %fp + 0x4c ] { 4000dfc8: 82 10 00 18 mov %i0, %g1 va_start( ap, format ); 4000dfcc: f6 27 a0 50 st %i3, [ %fp + 0x50 ] int len = 0; 4000dfd0: b0 10 20 00 clr %i0 va_start( ap, format ); 4000dfd4: f8 27 a0 54 st %i4, [ %fp + 0x54 ] 4000dfd8: 80 a0 60 00 cmp %g1, 0 4000dfdc: 02 80 00 0b be 4000e008 <== NEVER TAKEN 4000dfe0: fa 27 a0 58 st %i5, [ %fp + 0x58 ] 4000dfe4: c4 00 60 04 ld [ %g1 + 4 ], %g2 4000dfe8: 80 a0 a0 00 cmp %g2, 0 4000dfec: 02 80 00 07 be 4000e008 <== NEVER TAKEN 4000dff0: 94 07 a0 4c add %fp, 0x4c, %o2 len = printer->printer( printer->context, format, ap ); 4000dff4: d0 00 40 00 ld [ %g1 ], %o0 4000dff8: 92 10 00 19 mov %i1, %o1 4000dffc: 9f c0 80 00 call %g2 4000e000: d4 27 bf fc st %o2, [ %fp + -4 ] 4000e004: b0 10 00 08 mov %o0, %i0 va_end( ap ); } return len; } 4000e008: 81 c7 e0 08 ret 4000e00c: 81 e8 00 00 restore =============================================================================== 4000df84 : int rtems_vprintf( const rtems_printer *printer, const char *format, va_list ap ) { 4000df84: 9d e3 bf a0 save %sp, -96, %sp 4000df88: 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; 4000df8c: 80 a0 60 00 cmp %g1, 0 4000df90: 02 80 00 0a be 4000dfb8 <== NEVER TAKEN 4000df94: b0 10 20 00 clr %i0 4000df98: c4 00 60 04 ld [ %g1 + 4 ], %g2 4000df9c: 80 a0 a0 00 cmp %g2, 0 4000dfa0: 02 80 00 06 be 4000dfb8 <== NEVER TAKEN 4000dfa4: 94 10 00 1a mov %i2, %o2 int len = 0; if ( rtems_print_printer_valid( printer ) ) { len = printer->printer( printer->context, format, ap ); 4000dfa8: d0 00 40 00 ld [ %g1 ], %o0 4000dfac: 9f c0 80 00 call %g2 4000dfb0: 92 10 00 19 mov %i1, %o1 4000dfb4: b0 10 00 08 mov %o0, %i0 } return len; } 4000dfb8: 81 c7 e0 08 ret 4000dfbc: 81 e8 00 00 restore =============================================================================== 400185c0 : ssize_t write( int fd, const void *buffer, size_t count ) { 400185c0: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_libio_t *iop; ssize_t n; rtems_libio_check_buffer( buffer ); 400185c4: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED 400185c8: 02 80 00 32 be 40018690 <== NOT EXECUTED 400185cc: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED rtems_libio_check_count( count ); 400185d0: 02 80 00 22 be 40018658 <== NOT EXECUTED 400185d4: 84 10 20 00 clr %g2 <== NOT EXECUTED LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_WRITE, EBADF ); 400185d8: 03 10 00 64 sethi %hi(0x40019000), %g1 <== NOT EXECUTED 400185dc: c2 00 61 58 ld [ %g1 + 0x158 ], %g1 ! 40019158 <== NOT EXECUTED 400185e0: 80 a6 00 01 cmp %i0, %g1 <== NOT EXECUTED 400185e4: 1a 80 00 25 bcc 40018678 <== NOT EXECUTED 400185e8: bb 2e 20 01 sll %i0, 1, %i5 <== NOT EXECUTED 400185ec: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED 400185f0: 31 10 00 72 sethi %hi(0x4001c800), %i0 <== NOT EXECUTED 400185f4: bb 2f 60 04 sll %i5, 4, %i5 <== NOT EXECUTED 400185f8: b0 16 20 c0 or %i0, 0xc0, %i0 <== NOT EXECUTED 400185fc: ba 07 40 18 add %i5, %i0, %i5 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40018600: 91 d0 20 09 ta 9 <== NOT EXECUTED val = *obj; 40018604: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED *obj = val + arg; 40018608: 86 20 b0 00 sub %g2, -4096, %g3 <== NOT EXECUTED 4001860c: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40018610: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40018614: 01 00 00 00 nop <== NOT EXECUTED 40018618: 84 08 a1 04 and %g2, 0x104, %g2 <== NOT EXECUTED 4001861c: 80 a0 a1 04 cmp %g2, 0x104 <== NOT EXECUTED 40018620: 12 80 00 10 bne 40018660 <== NOT EXECUTED 40018624: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED /* * Now process the write() request. */ n = (*iop->pathinfo.handlers->write_h)( iop, buffer, count ); 40018628: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 4001862c: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED 40018630: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 40018634: 9f c0 40 00 call %g1 <== NOT EXECUTED 40018638: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4001863c: 84 10 00 08 mov %o0, %g2 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40018640: 91 d0 20 09 ta 9 <== NOT EXECUTED *obj = val - arg; 40018644: c6 07 60 08 ld [ %i5 + 8 ], %g3 <== NOT EXECUTED 40018648: 86 00 f0 00 add %g3, -4096, %g3 <== NOT EXECUTED 4001864c: c6 27 60 08 st %g3, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40018650: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40018654: 01 00 00 00 nop <== NOT EXECUTED rtems_libio_iop_drop( iop ); return n; } 40018658: 81 c7 e0 08 ret <== NOT EXECUTED 4001865c: 91 e8 00 02 restore %g0, %g2, %o0 <== NOT EXECUTED __asm__ volatile ( "ta %1\n\t" : "=r" (psr) : "i" (SPARC_SWTRAP_IRQDIS)); 40018660: 91 d0 20 09 ta 9 <== NOT EXECUTED 40018664: c4 07 60 08 ld [ %i5 + 8 ], %g2 <== NOT EXECUTED 40018668: 84 00 b0 00 add %g2, -4096, %g2 <== NOT EXECUTED 4001866c: c4 27 60 08 st %g2, [ %i5 + 8 ] <== NOT EXECUTED __asm__ volatile ( "ta %0\nnop\n" :: "i" (SPARC_SWTRAP_IRQEN), "r" (_psr)); 40018670: 91 d0 20 0a ta 0xa <== NOT EXECUTED 40018674: 01 00 00 00 nop <== NOT EXECUTED LIBIO_GET_IOP_WITH_ACCESS( fd, iop, LIBIO_FLAGS_WRITE, EBADF ); 40018678: 7f ff d8 fc call 4000ea68 <__errno> <== NOT EXECUTED 4001867c: 01 00 00 00 nop <== NOT EXECUTED 40018680: 82 10 20 09 mov 9, %g1 ! 9 <_TLS_Alignment+0x8> <== NOT EXECUTED 40018684: 84 10 3f ff mov -1, %g2 <== NOT EXECUTED 40018688: 10 bf ff f4 b 40018658 <== NOT EXECUTED 4001868c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED rtems_libio_check_buffer( buffer ); 40018690: 7f ff d8 f6 call 4000ea68 <__errno> <== NOT EXECUTED 40018694: 01 00 00 00 nop <== NOT EXECUTED 40018698: 82 10 20 16 mov 0x16, %g1 ! 16 <_TLS_Alignment+0x15> <== NOT EXECUTED 4001869c: 84 10 3f ff mov -1, %g2 <== NOT EXECUTED 400186a0: 10 bf ff ee b 40018658 <== NOT EXECUTED 400186a4: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED