40006c90 <rtems_rfs_bitmap_create_search>: int rtems_rfs_bitmap_create_search (rtems_rfs_bitmap_control* control) {
40006c90: 9d e3 bf a0 save %sp, -96, %sp
if (!control->buffer)
40006c94: d2 06 00 00 ld [ %i0 ], %o1 40006c98: 80 a2 60 00 cmp %o1, 0
40006c9c: 02 80 00 46 be 40006db4 <rtems_rfs_bitmap_create_search+0x124>
40006ca0: ba 10 00 18 mov %i0, %i5
rc = rtems_rfs_buffer_handle_request (control->fs,
40006ca4: d4 06 20 08 ld [ %i0 + 8 ], %o2 40006ca8: d0 06 20 04 ld [ %i0 + 4 ], %o0 40006cac: 40 00 01 5d call 40007220 <rtems_rfs_buffer_handle_request> 40006cb0: 96 10 20 01 mov 1, %o3
if (rc)
40006cb4: b0 92 20 00 orcc %o0, 0, %i0
40006cb8: 12 80 00 3b bne 40006da4 <rtems_rfs_bitmap_create_search+0x114> <== NEVER TAKEN
40006cbc: 01 00 00 00 nop
*map = rtems_rfs_buffer_data (control->buffer);
40006cc0: c2 07 40 00 ld [ %i5 ], %g1 40006cc4: c2 00 60 08 ld [ %g1 + 8 ], %g1 40006cc8: f8 00 60 1c ld [ %g1 + 0x1c ], %i4
rc = rtems_rfs_bitmap_load_map (control, &map); if (rc > 0) return rc; control->free = 0;
40006ccc: c0 27 60 10 clr [ %i5 + 0x10 ]
search_map = control->search_bits; size = control->size; bit = 0; rtems_rfs_bitmap_check(control, search_map); *search_map = RTEMS_RFS_BITMAP_ELEMENT_CLEAR;
40006cd0: 82 10 3f ff mov -1, %g1
search_map = control->search_bits;
40006cd4: de 07 60 14 ld [ %i5 + 0x14 ], %o7
size = control->size;
40006cd8: c8 07 60 0c ld [ %i5 + 0xc ], %g4
while (size)
40006cdc: 80 a1 20 00 cmp %g4, 0
40006ce0: 02 80 00 0f be 40006d1c <rtems_rfs_bitmap_create_search+0x8c> <== NEVER TAKEN
40006ce4: c2 23 c0 00 st %g1, [ %o7 ] 40006ce8: b8 07 20 04 add %i4, 4, %i4
bit = 0;
40006cec: b2 10 20 00 clr %i1
return RTEMS_RFS_BITMAP_TEST_BIT (target, bit);
40006cf0: b4 10 20 01 mov 1, %i2
available = size; } else { bits = *map; available = rtems_rfs_bitmap_element_bits ();
40006cf4: 9a 10 20 20 mov 0x20, %o5
mask >>= (rtems_rfs_bitmap_element_bits () - size);
40006cf8: b0 10 3f ff mov -1, %i0
if (size < rtems_rfs_bitmap_element_bits ())
40006cfc: 80 a1 20 1f cmp %g4, 0x1f
40006d00: 18 80 00 09 bgu 40006d24 <rtems_rfs_bitmap_create_search+0x94>
40006d04: c4 07 3f fc ld [ %i4 + -4 ], %g2
mask >>= (rtems_rfs_bitmap_element_bits () - size);
40006d08: 82 23 40 04 sub %o5, %g4, %g1 40006d0c: 83 36 00 01 srl %i0, %g1, %g1
} if (rtems_rfs_bitmap_match (bits, RTEMS_RFS_BITMAP_ELEMENT_SET))
40006d10: 84 88 80 01 andcc %g2, %g1, %g2
40006d14: 12 80 00 22 bne 40006d9c <rtems_rfs_bitmap_create_search+0x10c>
40006d18: b6 10 00 04 mov %g4, %i3
else bit++; map++; } return 0;
40006d1c: 81 c7 e0 08 ret 40006d20: 91 e8 20 00 restore %g0, 0, %o0
if (rtems_rfs_bitmap_match (bits, RTEMS_RFS_BITMAP_ELEMENT_SET))
40006d24: 80 a0 a0 00 cmp %g2, 0
40006d28: 12 80 00 0f bne 40006d64 <rtems_rfs_bitmap_create_search+0xd4>
40006d2c: 88 01 3f e0 add %g4, -32, %g4
if (bit == (rtems_rfs_bitmap_element_bits () - 1))
40006d30: 80 a6 60 1f cmp %i1, 0x1f
40006d34: 02 80 00 06 be 40006d4c <rtems_rfs_bitmap_create_search+0xbc>
40006d38: 80 a1 20 00 cmp %g4, 0
while (size) 40006d3c: 02 bf ff f8 be 40006d1c <rtems_rfs_bitmap_create_search+0x8c>
40006d40: b2 06 60 01 inc %i1 40006d44: 10 bf ff ee b 40006cfc <rtems_rfs_bitmap_create_search+0x6c> 40006d48: b8 07 20 04 add %i4, 4, %i4
if (size > 0) 40006d4c: 02 bf ff f4 be 40006d1c <rtems_rfs_bitmap_create_search+0x8c>
40006d50: b2 10 20 00 clr %i1
*search_map = RTEMS_RFS_BITMAP_ELEMENT_CLEAR;
40006d54: f0 23 e0 04 st %i0, [ %o7 + 4 ]
search_map++;
40006d58: 9e 03 e0 04 add %o7, 4, %o7 40006d5c: 10 bf ff e8 b 40006cfc <rtems_rfs_bitmap_create_search+0x6c> 40006d60: b8 07 20 04 add %i4, 4, %i4
available = rtems_rfs_bitmap_element_bits ();
40006d64: b6 10 20 20 mov 0x20, %i3
for (b = 0; b < available; b++)
40006d68: 82 10 20 00 clr %g1
return RTEMS_RFS_BITMAP_TEST_BIT (target, bit);
40006d6c: 87 2e 80 01 sll %i2, %g1, %g3
if (!rtems_rfs_bitmap_test (bits, b))
40006d70: 80 88 c0 02 btst %g3, %g2
40006d74: 02 80 00 05 be 40006d88 <rtems_rfs_bitmap_create_search+0xf8>
40006d78: 82 00 60 01 inc %g1
control->free++;
40006d7c: c6 07 60 10 ld [ %i5 + 0x10 ], %g3 40006d80: 86 00 e0 01 inc %g3 40006d84: c6 27 60 10 st %g3, [ %i5 + 0x10 ]
for (b = 0; b < available; b++)
40006d88: 80 a6 c0 01 cmp %i3, %g1
40006d8c: 12 bf ff f9 bne 40006d70 <rtems_rfs_bitmap_create_search+0xe0>
40006d90: 87 2e 80 01 sll %i2, %g1, %g3
if (bit == (rtems_rfs_bitmap_element_bits () - 1))
40006d94: 10 bf ff e8 b 40006d34 <rtems_rfs_bitmap_create_search+0xa4> 40006d98: 80 a6 60 1f cmp %i1, 0x1f
if (rtems_rfs_bitmap_match (bits, RTEMS_RFS_BITMAP_ELEMENT_SET))
40006d9c: 10 bf ff f3 b 40006d68 <rtems_rfs_bitmap_create_search+0xd8> 40006da0: 88 10 20 00 clr %g4
if (rc > 0)
40006da4: 04 bf ff ca ble 40006ccc <rtems_rfs_bitmap_create_search+0x3c> <== NOT EXECUTED 40006da8: b8 10 20 00 clr %i4 <== NOT EXECUTED
}
40006dac: 81 c7 e0 08 ret <== NOT EXECUTED 40006db0: 81 e8 00 00 restore <== NOT EXECUTED
40006db4: 81 c7 e0 08 ret 40006db8: 91 e8 20 06 restore %g0, 6, %o0
40006b94 <rtems_rfs_bitmap_map_alloc>: int rtems_rfs_bitmap_map_alloc (rtems_rfs_bitmap_control* control, rtems_rfs_bitmap_bit seed, bool* allocated, rtems_rfs_bitmap_bit* bit) {
40006b94: 9d e3 bf a0 save %sp, -96, %sp
int rc = 0; /* * By default we assume the allocation failed. */ *allocated = false;
40006b98: c0 2e 80 00 clrb [ %i2 ]
* seed up then from the seed down a window number of bits, then repeat the * process from the window distance from the seed, again above then * below. Keep moving out until all bits have been searched. */ upper_seed = seed; lower_seed = seed;
40006b9c: ba 10 00 19 mov %i1, %i5
* we have searched all of the map. The seed may not be aligned to a window * boundary so we may need to search a partial window and this may also not * be balanced for the upper or lower seeds. We move to the limits, search * then return false if no clear bits are found. */ while (((upper_seed >= 0) && (upper_seed < control->size))
40006ba0: 80 a6 60 00 cmp %i1, 0
40006ba4: 06 80 00 1e bl 40006c1c <rtems_rfs_bitmap_map_alloc+0x88>
40006ba8: 80 a7 60 00 cmp %i5, 0 40006bac: c2 06 20 0c ld [ %i0 + 0xc ], %g1 40006bb0: 80 a0 40 19 cmp %g1, %i1
40006bb4: 08 80 00 1a bleu 40006c1c <rtems_rfs_bitmap_map_alloc+0x88>
40006bb8: 80 a7 60 00 cmp %i5, 0
/* * Search up first so bits allocated in succession are grouped together. */ if (upper_seed < control->size) { *bit = upper_seed;
40006bbc: f2 26 c0 00 st %i1, [ %i3 ]
rc = rtems_rfs_search_map_for_clear_bit (control, bit, allocated,
40006bc0: 96 10 20 01 mov 1, %o3 40006bc4: 94 10 00 1a mov %i2, %o2 40006bc8: 92 10 00 1b mov %i3, %o1 40006bcc: 7f ff fe 60 call 4000654c <rtems_rfs_search_map_for_clear_bit.constprop.0> 40006bd0: 90 10 00 18 mov %i0, %o0
window, 1); if ((rc > 0) || *allocated)
40006bd4: 80 a2 20 00 cmp %o0, 0
40006bd8: 14 80 00 2c bg 40006c88 <rtems_rfs_bitmap_map_alloc+0xf4> <== NEVER TAKEN
40006bdc: 01 00 00 00 nop 40006be0: c2 0e 80 00 ldub [ %i2 ], %g1 40006be4: 80 a0 60 00 cmp %g1, 0
40006be8: 12 80 00 28 bne 40006c88 <rtems_rfs_bitmap_map_alloc+0xf4>
40006bec: 80 a7 60 00 cmp %i5, 0
break; } if (lower_seed >= 0) 40006bf0: 36 80 00 14 bge,a 40006c40 <rtems_rfs_bitmap_map_alloc+0xac>
40006bf4: fa 26 c0 00 st %i5, [ %i3 ]
/* * Do not bound the limits at the edges of the map. Do not update if an * edge has been passed. */ if (upper_seed < control->size)
40006bf8: c2 06 20 0c ld [ %i0 + 0xc ], %g1 40006bfc: 80 a6 40 01 cmp %i1, %g1
40006c00: 1a bf ff e9 bcc 40006ba4 <rtems_rfs_bitmap_map_alloc+0x10> <== NEVER TAKEN
40006c04: 80 a6 60 00 cmp %i1, 0
upper_seed += window;
40006c08: b2 06 68 00 add %i1, 0x800, %i1
while (((upper_seed >= 0) && (upper_seed < control->size))
40006c0c: 80 a6 60 00 cmp %i1, 0
40006c10: 16 bf ff e9 bge 40006bb4 <rtems_rfs_bitmap_map_alloc+0x20> <== ALWAYS TAKEN
40006c14: 80 a0 40 19 cmp %g1, %i1
|| ((lower_seed >= 0) && (lower_seed < control->size)))
40006c18: 80 a7 60 00 cmp %i5, 0 <== NOT EXECUTED
40006c1c: 06 80 00 1b bl 40006c88 <rtems_rfs_bitmap_map_alloc+0xf4>
40006c20: 01 00 00 00 nop 40006c24: c2 06 20 0c ld [ %i0 + 0xc ], %g1 40006c28: 80 a0 40 1d cmp %g1, %i5
40006c2c: 08 80 00 17 bleu 40006c88 <rtems_rfs_bitmap_map_alloc+0xf4>
40006c30: 80 a6 40 01 cmp %i1, %g1
if (upper_seed < control->size)
40006c34: 2a bf ff e3 bcs,a 40006bc0 <rtems_rfs_bitmap_map_alloc+0x2c> <== NEVER TAKEN
40006c38: f2 26 c0 00 st %i1, [ %i3 ] <== NOT EXECUTED
*bit = lower_seed;
40006c3c: fa 26 c0 00 st %i5, [ %i3 ]
rc = rtems_rfs_search_map_for_clear_bit (control, bit, allocated,
40006c40: 96 10 3f ff mov -1, %o3 40006c44: 94 10 00 1a mov %i2, %o2 40006c48: 92 10 00 1b mov %i3, %o1 40006c4c: 7f ff fe 40 call 4000654c <rtems_rfs_search_map_for_clear_bit.constprop.0> 40006c50: 90 10 00 18 mov %i0, %o0
if ((rc > 0) || *allocated)
40006c54: 80 a2 20 00 cmp %o0, 0
40006c58: 14 80 00 0c bg 40006c88 <rtems_rfs_bitmap_map_alloc+0xf4> <== NEVER TAKEN
40006c5c: 01 00 00 00 nop 40006c60: c2 0e 80 00 ldub [ %i2 ], %g1 40006c64: 80 a0 60 00 cmp %g1, 0
40006c68: 12 80 00 08 bne 40006c88 <rtems_rfs_bitmap_map_alloc+0xf4>
40006c6c: 01 00 00 00 nop
if (upper_seed < control->size)
40006c70: c2 06 20 0c ld [ %i0 + 0xc ], %g1 40006c74: 80 a6 40 01 cmp %i1, %g1
40006c78: 2a 80 00 02 bcs,a 40006c80 <rtems_rfs_bitmap_map_alloc+0xec>
40006c7c: b2 06 68 00 add %i1, 0x800, %i1
if (lower_seed >= 0) lower_seed -= window;
40006c80: 10 bf ff c8 b 40006ba0 <rtems_rfs_bitmap_map_alloc+0xc> 40006c84: ba 07 78 00 add %i5, -2048, %i5
} return 0; }
40006c88: 81 c7 e0 08 ret 40006c8c: 91 e8 20 00 restore %g0, 0, %o0
400068c4 <rtems_rfs_bitmap_map_clear>: {
400068c4: 9d e3 bf a0 save %sp, -96, %sp
if (!control->buffer)
400068c8: d2 06 00 00 ld [ %i0 ], %o1 400068cc: 80 a2 60 00 cmp %o1, 0
400068d0: 02 80 00 28 be 40006970 <rtems_rfs_bitmap_map_clear+0xac>
400068d4: ba 10 00 18 mov %i0, %i5
rc = rtems_rfs_buffer_handle_request (control->fs,
400068d8: d4 06 20 08 ld [ %i0 + 8 ], %o2 400068dc: d0 06 20 04 ld [ %i0 + 4 ], %o0 400068e0: 40 00 02 50 call 40007220 <rtems_rfs_buffer_handle_request> 400068e4: 96 10 20 01 mov 1, %o3
if (rc)
400068e8: b0 92 20 00 orcc %o0, 0, %i0
400068ec: 12 80 00 24 bne 4000697c <rtems_rfs_bitmap_map_clear+0xb8> <== NEVER TAKEN
400068f0: 01 00 00 00 nop
*map = rtems_rfs_buffer_data (control->buffer);
400068f4: c2 07 40 00 ld [ %i5 ], %g1 400068f8: c2 00 60 08 ld [ %g1 + 8 ], %g1 400068fc: c8 00 60 1c ld [ %g1 + 0x1c ], %g4
if (bit >= control->size)
40006900: c2 07 60 0c ld [ %i5 + 0xc ], %g1 40006904: 80 a0 40 19 cmp %g1, %i1
40006908: 08 80 00 18 bleu 40006968 <rtems_rfs_bitmap_map_clear+0xa4>
4000690c: b0 10 20 16 mov 0x16, %i0
index = rtems_rfs_bitmap_map_index (bit);
40006910: 85 3e 60 05 sra %i1, 5, %g2
element = map[index];
40006914: b7 28 a0 02 sll %g2, 2, %i3 40006918: f8 01 00 1b ld [ %g4 + %i3 ], %i4
search_map = control->search_bits;
4000691c: f4 07 60 14 ld [ %i5 + 0x14 ], %i2
map[index] = rtems_rfs_bitmap_clear (element, 1 << offset);
40006920: 86 10 20 01 mov 1, %g3 40006924: 83 28 c0 19 sll %g3, %i1, %g1
return RTEMS_RFS_BITMAP_CLEAR_BITS (target, bits);
40006928: 82 10 40 1c or %g1, %i4, %g1
map[index] = rtems_rfs_bitmap_clear (element, 1 << offset);
4000692c: c2 21 00 1b st %g1, [ %g4 + %i3 ]
if (rtems_rfs_bitmap_match(element, map[index]))
40006930: 80 a7 00 01 cmp %i4, %g1
40006934: 02 80 00 0d be 40006968 <rtems_rfs_bitmap_map_clear+0xa4> <== NEVER TAKEN
40006938: b0 10 20 00 clr %i0
index = rtems_rfs_bitmap_map_index (bit);
4000693c: b3 3e 60 0a sra %i1, 0xa, %i1
search_map[index] = rtems_rfs_bitmap_clear (search_map[index], 1 << offset);
40006940: b3 2e 60 02 sll %i1, 2, %i1
return RTEMS_RFS_BITMAP_CLEAR_BITS (target, bits);
40006944: c2 06 80 19 ld [ %i2 + %i1 ], %g1
search_map[index] = rtems_rfs_bitmap_clear (search_map[index], 1 << offset);
40006948: 85 28 c0 02 sll %g3, %g2, %g2
return RTEMS_RFS_BITMAP_CLEAR_BITS (target, bits);
4000694c: 84 10 40 02 or %g1, %g2, %g2
search_map[index] = rtems_rfs_bitmap_clear (search_map[index], 1 << offset);
40006950: c4 26 80 19 st %g2, [ %i2 + %i1 ]
rtems_rfs_buffer_mark_dirty (control->buffer);
40006954: c4 07 40 00 ld [ %i5 ], %g2
control->free++;
40006958: c2 07 60 10 ld [ %i5 + 0x10 ], %g1
rtems_rfs_buffer_mark_dirty (control->buffer);
4000695c: c6 28 80 00 stb %g3, [ %g2 ]
control->free++;
40006960: 82 00 60 01 inc %g1 40006964: c2 27 60 10 st %g1, [ %i5 + 0x10 ]
return 0;
40006968: 81 c7 e0 08 ret 4000696c: 81 e8 00 00 restore
return ENXIO;
40006970: b0 10 20 06 mov 6, %i0
}
40006974: 81 c7 e0 08 ret 40006978: 81 e8 00 00 restore
if (rc > 0)
4000697c: 14 bf ff fb bg 40006968 <rtems_rfs_bitmap_map_clear+0xa4> <== NOT EXECUTED 40006980: 88 10 20 00 clr %g4 <== NOT EXECUTED
if (bit >= control->size)
40006984: 10 bf ff e0 b 40006904 <rtems_rfs_bitmap_map_clear+0x40> <== NOT EXECUTED 40006988: c2 07 60 0c ld [ %i5 + 0xc ], %g1 <== NOT EXECUTED
40006ac4 <rtems_rfs_bitmap_map_clear_all>: {
40006ac4: 9d e3 bf a0 save %sp, -96, %sp
if (!control->buffer)
40006ac8: d2 06 00 00 ld [ %i0 ], %o1 40006acc: 80 a2 60 00 cmp %o1, 0
40006ad0: 02 80 00 2f be 40006b8c <rtems_rfs_bitmap_map_clear_all+0xc8>
40006ad4: b8 10 00 18 mov %i0, %i4
rc = rtems_rfs_buffer_handle_request (control->fs,
40006ad8: d4 06 20 08 ld [ %i0 + 8 ], %o2 40006adc: d0 06 20 04 ld [ %i0 + 4 ], %o0 40006ae0: 40 00 01 d0 call 40007220 <rtems_rfs_buffer_handle_request> 40006ae4: 96 10 20 01 mov 1, %o3
if (rc)
40006ae8: b0 92 20 00 orcc %o0, 0, %i0
40006aec: 12 80 00 22 bne 40006b74 <rtems_rfs_bitmap_map_clear_all+0xb0> <== NEVER TAKEN
40006af0: 01 00 00 00 nop
*map = rtems_rfs_buffer_data (control->buffer);
40006af4: f4 07 00 00 ld [ %i4 ], %i2 40006af8: c2 06 a0 08 ld [ %i2 + 8 ], %g1 40006afc: d0 00 60 1c ld [ %g1 + 0x1c ], %o0
elements = rtems_rfs_bitmap_elements (control->size);
40006b00: fa 07 20 0c ld [ %i4 + 0xc ], %i5
control->free = control->size;
40006b04: fa 27 20 10 st %i5, [ %i4 + 0x10 ]
map[e] = RTEMS_RFS_BITMAP_ELEMENT_CLEAR;
40006b08: 92 10 20 ff mov 0xff, %o1
elements = rtems_rfs_bitmap_elements (control->size);
40006b0c: ba 07 7f ff add %i5, -1, %i5 40006b10: b7 37 60 05 srl %i5, 5, %i3 40006b14: b6 06 e0 01 inc %i3
map[e] = RTEMS_RFS_BITMAP_ELEMENT_CLEAR;
40006b18: 40 00 5f 61 call 4001e89c <memset> 40006b1c: 95 2e e0 02 sll %i3, 2, %o2
if (last_search_bit == 0)
40006b20: b6 8e e0 1f andcc %i3, 0x1f, %i3
40006b24: 12 80 00 11 bne 40006b68 <rtems_rfs_bitmap_map_clear_all+0xa4>
40006b28: b2 10 3f ff mov -1, %i1
elements = rtems_rfs_bitmap_elements (elements);
40006b2c: bb 37 60 0a srl %i5, 0xa, %i5
for (e = 0; e < (elements - 1); e++)
40006b30: 80 a7 60 00 cmp %i5, 0
40006b34: 02 80 00 07 be 40006b50 <rtems_rfs_bitmap_map_clear_all+0x8c>
40006b38: c2 07 20 14 ld [ %i4 + 0x14 ], %g1
control->search_bits[e] = RTEMS_RFS_BITMAP_ELEMENT_CLEAR;
40006b3c: 90 10 00 01 mov %g1, %o0 40006b40: 95 2f 60 02 sll %i5, 2, %o2 40006b44: 40 00 5f 56 call 4001e89c <memset> 40006b48: 92 10 20 ff mov 0xff, %o1 40006b4c: 82 10 00 08 mov %o0, %g1
control->search_bits[elements - 1] =
40006b50: bb 2f 60 02 sll %i5, 2, %i5 40006b54: f2 20 40 1d st %i1, [ %g1 + %i5 ]
rtems_rfs_buffer_mark_dirty (control->buffer);
40006b58: 82 10 20 01 mov 1, %g1 40006b5c: c2 2e 80 00 stb %g1, [ %i2 ]
return 0;
40006b60: 81 c7 e0 08 ret 40006b64: 91 e8 20 00 restore %g0, 0, %o0
mask >>= (rtems_rfs_bitmap_element_bits () - size);
40006b68: b6 20 00 1b neg %i3 40006b6c: 10 bf ff f0 b 40006b2c <rtems_rfs_bitmap_map_clear_all+0x68> 40006b70: b3 36 40 1b srl %i1, %i3, %i1
if (rc > 0)
40006b74: 24 80 00 04 ble,a 40006b84 <rtems_rfs_bitmap_map_clear_all+0xc0> <== NOT EXECUTED 40006b78: f4 07 00 00 ld [ %i4 ], %i2 <== NOT EXECUTED
}
40006b7c: 81 c7 e0 08 ret <== NOT EXECUTED 40006b80: 81 e8 00 00 restore <== NOT EXECUTED
*map = NULL;
40006b84: 10 bf ff df b 40006b00 <rtems_rfs_bitmap_map_clear_all+0x3c> <== NOT EXECUTED 40006b88: 90 10 20 00 clr %o0 <== NOT EXECUTED
}
40006b8c: 81 c7 e0 08 ret 40006b90: 91 e8 20 06 restore %g0, 6, %o0
400067ec <rtems_rfs_bitmap_map_set>: {
400067ec: 9d e3 bf a0 save %sp, -96, %sp
if (!control->buffer)
400067f0: d2 06 00 00 ld [ %i0 ], %o1 400067f4: 80 a2 60 00 cmp %o1, 0
400067f8: 02 80 00 2a be 400068a0 <rtems_rfs_bitmap_map_set+0xb4>
400067fc: ba 10 00 18 mov %i0, %i5
rc = rtems_rfs_buffer_handle_request (control->fs,
40006800: d4 06 20 08 ld [ %i0 + 8 ], %o2 40006804: d0 06 20 04 ld [ %i0 + 4 ], %o0 40006808: 40 00 02 86 call 40007220 <rtems_rfs_buffer_handle_request> 4000680c: 96 10 20 01 mov 1, %o3
if (rc)
40006810: b0 92 20 00 orcc %o0, 0, %i0
40006814: 12 80 00 28 bne 400068b4 <rtems_rfs_bitmap_map_set+0xc8> <== NEVER TAKEN
40006818: 01 00 00 00 nop
*map = rtems_rfs_buffer_data (control->buffer);
4000681c: c2 07 40 00 ld [ %i5 ], %g1 40006820: c2 00 60 08 ld [ %g1 + 8 ], %g1 40006824: c6 00 60 1c ld [ %g1 + 0x1c ], %g3
if (bit >= control->size)
40006828: c2 07 60 0c ld [ %i5 + 0xc ], %g1 4000682c: 80 a0 40 19 cmp %g1, %i1
40006830: 08 80 00 1d bleu 400068a4 <rtems_rfs_bitmap_map_set+0xb8>
40006834: b0 10 20 16 mov 0x16, %i0
index = rtems_rfs_bitmap_map_index (bit);
40006838: b7 3e 60 05 sra %i1, 5, %i3
element = map[index];
4000683c: 89 2e e0 02 sll %i3, 2, %g4 40006840: f8 00 c0 04 ld [ %g3 + %g4 ], %i4
search_map = control->search_bits;
40006844: f4 07 60 14 ld [ %i5 + 0x14 ], %i2
map[index] = rtems_rfs_bitmap_set (element, 1 << offset);
40006848: 84 10 20 01 mov 1, %g2 4000684c: 83 28 80 19 sll %g2, %i1, %g1
return RTEMS_RFS_BITMAP_SET_BITS (target, bits);
40006850: 82 2f 00 01 andn %i4, %g1, %g1
if (rtems_rfs_bitmap_match(element, map[index]))
40006854: 80 a7 00 01 cmp %i4, %g1
40006858: 02 80 00 15 be 400068ac <rtems_rfs_bitmap_map_set+0xc0>
4000685c: c2 20 c0 04 st %g1, [ %g3 + %g4 ]
control->free--;
40006860: c2 07 60 10 ld [ %i5 + 0x10 ], %g1 40006864: 82 00 7f ff add %g1, -1, %g1
rtems_rfs_buffer_mark_dirty (control->buffer);
40006868: f8 07 40 00 ld [ %i5 ], %i4
control->free--;
4000686c: c2 27 60 10 st %g1, [ %i5 + 0x10 ]
rtems_rfs_buffer_mark_dirty (control->buffer);
40006870: c4 2f 00 00 stb %g2, [ %i4 ]
if (rtems_rfs_bitmap_match(map[index], RTEMS_RFS_BITMAP_ELEMENT_SET))
40006874: c2 00 c0 04 ld [ %g3 + %g4 ], %g1 40006878: 80 a0 60 00 cmp %g1, 0
4000687c: 12 80 00 0c bne 400068ac <rtems_rfs_bitmap_map_set+0xc0>
40006880: b3 3e 60 0a sra %i1, 0xa, %i1
search_map[index] = rtems_rfs_bitmap_set (search_map[index], 1 << offset);
40006884: b3 2e 60 02 sll %i1, 2, %i1
return RTEMS_RFS_BITMAP_SET_BITS (target, bits);
40006888: c2 06 80 19 ld [ %i2 + %i1 ], %g1
search_map[index] = rtems_rfs_bitmap_set (search_map[index], 1 << offset);
4000688c: 85 28 80 1b sll %g2, %i3, %g2
return RTEMS_RFS_BITMAP_SET_BITS (target, bits);
40006890: 84 28 40 02 andn %g1, %g2, %g2
search_map[index] = rtems_rfs_bitmap_set (search_map[index], 1 << offset);
40006894: c4 26 80 19 st %g2, [ %i2 + %i1 ]
return 0;
40006898: 81 c7 e0 08 ret 4000689c: 91 e8 20 00 restore %g0, 0, %o0
return ENXIO;
400068a0: b0 10 20 06 mov 6, %i0
}
400068a4: 81 c7 e0 08 ret 400068a8: 81 e8 00 00 restore
return 0;
400068ac: 81 c7 e0 08 ret 400068b0: 91 e8 20 00 restore %g0, 0, %o0
if (rc > 0)
400068b4: 14 bf ff fc bg 400068a4 <rtems_rfs_bitmap_map_set+0xb8> <== NOT EXECUTED 400068b8: 86 10 20 00 clr %g3 <== NOT EXECUTED
if (bit >= control->size)
400068bc: 10 bf ff dc b 4000682c <rtems_rfs_bitmap_map_set+0x40> <== NOT EXECUTED 400068c0: c2 07 60 0c ld [ %i5 + 0xc ], %g1 <== NOT EXECUTED
40006a20 <rtems_rfs_bitmap_map_set_all>: {
40006a20: 9d e3 bf a0 save %sp, -96, %sp
if (!control->buffer)
40006a24: d2 06 00 00 ld [ %i0 ], %o1 40006a28: 80 a2 60 00 cmp %o1, 0
40006a2c: 02 80 00 24 be 40006abc <rtems_rfs_bitmap_map_set_all+0x9c>
40006a30: ba 10 00 18 mov %i0, %i5
rc = rtems_rfs_buffer_handle_request (control->fs,
40006a34: d4 06 20 08 ld [ %i0 + 8 ], %o2 40006a38: d0 06 20 04 ld [ %i0 + 4 ], %o0 40006a3c: 40 00 01 f9 call 40007220 <rtems_rfs_buffer_handle_request> 40006a40: 96 10 20 01 mov 1, %o3
if (rc)
40006a44: b0 92 20 00 orcc %o0, 0, %i0
40006a48: 12 80 00 17 bne 40006aa4 <rtems_rfs_bitmap_map_set_all+0x84> <== NEVER TAKEN
40006a4c: 01 00 00 00 nop
*map = rtems_rfs_buffer_data (control->buffer);
40006a50: f6 07 40 00 ld [ %i5 ], %i3 40006a54: c2 06 e0 08 ld [ %i3 + 8 ], %g1 40006a58: d0 00 60 1c ld [ %g1 + 0x1c ], %o0
control->free = 0;
40006a5c: c0 27 60 10 clr [ %i5 + 0x10 ]
map[e] = RTEMS_RFS_BITMAP_ELEMENT_SET;
40006a60: 92 10 20 00 clr %o1
elements = rtems_rfs_bitmap_elements (control->size);
40006a64: f8 07 60 0c ld [ %i5 + 0xc ], %i4 40006a68: b8 07 3f ff add %i4, -1, %i4 40006a6c: 95 37 20 05 srl %i4, 5, %o2 40006a70: 94 02 a0 01 inc %o2
map[e] = RTEMS_RFS_BITMAP_ELEMENT_SET;
40006a74: 40 00 5f 8a call 4001e89c <memset> 40006a78: 95 2a a0 02 sll %o2, 2, %o2
control->search_bits[e] = RTEMS_RFS_BITMAP_ELEMENT_SET;
40006a7c: d0 07 60 14 ld [ %i5 + 0x14 ], %o0
elements = rtems_rfs_bitmap_elements (elements);
40006a80: 95 37 20 0a srl %i4, 0xa, %o2
control->search_bits[e] = RTEMS_RFS_BITMAP_ELEMENT_SET;
40006a84: 92 10 20 00 clr %o1
elements = rtems_rfs_bitmap_elements (elements);
40006a88: 94 02 a0 01 inc %o2
control->search_bits[e] = RTEMS_RFS_BITMAP_ELEMENT_SET;
40006a8c: 40 00 5f 84 call 4001e89c <memset> 40006a90: 95 2a a0 02 sll %o2, 2, %o2
rtems_rfs_buffer_mark_dirty (control->buffer);
40006a94: 82 10 20 01 mov 1, %g1 40006a98: c2 2e c0 00 stb %g1, [ %i3 ]
return 0;
40006a9c: 81 c7 e0 08 ret 40006aa0: 91 e8 20 00 restore %g0, 0, %o0
if (rc > 0)
40006aa4: 24 80 00 04 ble,a 40006ab4 <rtems_rfs_bitmap_map_set_all+0x94> <== NOT EXECUTED 40006aa8: f6 07 40 00 ld [ %i5 ], %i3 <== NOT EXECUTED
}
40006aac: 81 c7 e0 08 ret <== NOT EXECUTED 40006ab0: 81 e8 00 00 restore <== NOT EXECUTED
*map = NULL;
40006ab4: 10 bf ff ea b 40006a5c <rtems_rfs_bitmap_map_set_all+0x3c> <== NOT EXECUTED 40006ab8: 90 10 20 00 clr %o0 <== NOT EXECUTED
}
40006abc: 81 c7 e0 08 ret 40006ac0: 91 e8 20 06 restore %g0, 6, %o0
4000698c <rtems_rfs_bitmap_map_test>: {
4000698c: 9d e3 bf a0 save %sp, -96, %sp
if (!control->buffer)
40006990: d2 06 00 00 ld [ %i0 ], %o1 40006994: 80 a2 60 00 cmp %o1, 0
40006998: 02 80 00 20 be 40006a18 <rtems_rfs_bitmap_map_test+0x8c>
4000699c: 90 10 20 06 mov 6, %o0
rc = rtems_rfs_buffer_handle_request (control->fs,
400069a0: d4 06 20 08 ld [ %i0 + 8 ], %o2 400069a4: d0 06 20 04 ld [ %i0 + 4 ], %o0 400069a8: 40 00 02 1e call 40007220 <rtems_rfs_buffer_handle_request> 400069ac: 96 10 20 01 mov 1, %o3
if (rc)
400069b0: 80 a2 20 00 cmp %o0, 0
400069b4: 12 80 00 15 bne 40006a08 <rtems_rfs_bitmap_map_test+0x7c> <== NEVER TAKEN
400069b8: 01 00 00 00 nop
*map = rtems_rfs_buffer_data (control->buffer);
400069bc: c2 06 00 00 ld [ %i0 ], %g1 400069c0: c2 00 60 08 ld [ %g1 + 8 ], %g1 400069c4: c4 00 60 1c ld [ %g1 + 0x1c ], %g2
if (bit >= control->size)
400069c8: c2 06 20 0c ld [ %i0 + 0xc ], %g1 400069cc: 80 a0 40 19 cmp %g1, %i1
400069d0: 08 80 00 0c bleu 40006a00 <rtems_rfs_bitmap_map_test+0x74>
400069d4: 90 10 20 16 mov 0x16, %o0
index = rtems_rfs_bitmap_map_index (bit);
400069d8: 83 3e 60 05 sra %i1, 5, %g1
*state = rtems_rfs_bitmap_test (map[index], bit);
400069dc: 83 28 60 02 sll %g1, 2, %g1
return RTEMS_RFS_BITMAP_TEST_BIT (target, bit);
400069e0: c4 00 80 01 ld [ %g2 + %g1 ], %g2 400069e4: 82 10 20 01 mov 1, %g1 400069e8: 83 28 40 19 sll %g1, %i1, %g1 400069ec: 82 08 40 02 and %g1, %g2, %g1 400069f0: 80 a0 00 01 cmp %g0, %g1 400069f4: 82 60 3f ff subx %g0, -1, %g1 400069f8: c2 2e 80 00 stb %g1, [ %i2 ]
return 0;
400069fc: 90 10 20 00 clr %o0
}
40006a00: 81 c7 e0 08 ret 40006a04: 91 e8 00 08 restore %g0, %o0, %o0
if (rc > 0)
40006a08: 14 bf ff fe bg 40006a00 <rtems_rfs_bitmap_map_test+0x74> <== NOT EXECUTED 40006a0c: 84 10 20 00 clr %g2 <== NOT EXECUTED
if (bit >= control->size)
40006a10: 10 bf ff ef b 400069cc <rtems_rfs_bitmap_map_test+0x40> <== NOT EXECUTED 40006a14: c2 06 20 0c ld [ %i0 + 0xc ], %g1 <== NOT EXECUTED
}
40006a18: 81 c7 e0 08 ret 40006a1c: 91 e8 00 08 restore %g0, %o0, %o0
400142a8 <rtems_rfs_block_map_close>: {
400142a8: 9d e3 bf a0 save %sp, -96, %sp
if (map->dirty && map->inode)
400142ac: c2 0e 40 00 ldub [ %i1 ], %g1 400142b0: 80 a0 60 00 cmp %g1, 0
400142b4: 02 80 00 0b be 400142e0 <rtems_rfs_block_map_close+0x38>
400142b8: ba 10 20 00 clr %i5 400142bc: d2 06 60 04 ld [ %i1 + 4 ], %o1 400142c0: 80 a2 60 00 cmp %o1, 0
400142c4: 22 80 00 08 be,a 400142e4 <rtems_rfs_block_map_close+0x3c> <== NEVER TAKEN
400142c8: c0 26 60 04 clr [ %i1 + 4 ] <== NOT EXECUTED
brc = rtems_rfs_inode_load (fs, map->inode);
400142cc: 7f ff d3 64 call 4000905c <rtems_rfs_inode_load> 400142d0: 90 10 00 18 mov %i0, %o0
if (brc > 0)
400142d4: ba 92 20 00 orcc %o0, 0, %i5
400142d8: 04 80 00 12 ble 40014320 <rtems_rfs_block_map_close+0x78> <== ALWAYS TAKEN
400142dc: 82 10 20 1c mov 0x1c, %g1
map->inode = NULL;
400142e0: c0 26 60 04 clr [ %i1 + 4 ]
rtems_rfs_buffer_handle_release (fs, handle);
400142e4: 92 06 60 38 add %i1, 0x38, %o1 400142e8: 7f ff cc 97 call 40007544 <rtems_rfs_buffer_handle_release> 400142ec: 90 10 00 18 mov %i0, %o0
handle->dirty = false;
400142f0: c0 2e 60 38 clrb [ %i1 + 0x38 ]
rtems_rfs_buffer_handle_release (fs, handle);
400142f4: 92 06 60 44 add %i1, 0x44, %o1
handle->bnum = 0;
400142f8: c0 26 60 3c clr [ %i1 + 0x3c ]
rtems_rfs_buffer_handle_release (fs, handle);
400142fc: 90 10 00 18 mov %i0, %o0
handle->buffer = NULL;
40014300: c0 26 60 40 clr [ %i1 + 0x40 ]
rtems_rfs_buffer_handle_release (fs, handle);
40014304: 7f ff cc 90 call 40007544 <rtems_rfs_buffer_handle_release> 40014308: b0 10 00 1d mov %i5, %i0
handle->dirty = false;
4001430c: c0 2e 60 44 clrb [ %i1 + 0x44 ]
handle->bnum = 0;
40014310: c0 26 60 48 clr [ %i1 + 0x48 ]
handle->buffer = NULL;
40014314: c0 26 60 4c clr [ %i1 + 0x4c ]
}
40014318: 81 c7 e0 08 ret 4001431c: 81 e8 00 00 restore 40014320: b6 06 60 08 add %i1, 8, %i3
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40014324: b8 10 20 01 mov 1, %i4
rtems_rfs_inode_set_block (map->inode, b, map->blocks[b]);
40014328: c4 06 60 04 ld [ %i1 + 4 ], %g2 4001432c: c6 06 c0 01 ld [ %i3 + %g1 ], %g3
rtems_rfs_write_u32 (&handle->node->data.blocks[block], bno);
40014330: c8 00 a0 0c ld [ %g2 + 0xc ], %g4 40014334: bb 30 e0 18 srl %g3, 0x18, %i5 40014338: fa 29 00 01 stb %i5, [ %g4 + %g1 ] 4001433c: bb 30 e0 10 srl %g3, 0x10, %i5 40014340: c8 00 a0 0c ld [ %g2 + 0xc ], %g4 40014344: 88 01 00 01 add %g4, %g1, %g4 40014348: fa 29 20 01 stb %i5, [ %g4 + 1 ] 4001434c: bb 30 e0 08 srl %g3, 8, %i5 40014350: c8 00 a0 0c ld [ %g2 + 0xc ], %g4 40014354: 88 01 00 01 add %g4, %g1, %g4 40014358: fa 29 20 02 stb %i5, [ %g4 + 2 ] 4001435c: c8 00 a0 0c ld [ %g2 + 0xc ], %g4 40014360: 88 01 00 01 add %g4, %g1, %g4 40014364: c6 29 20 03 stb %g3, [ %g4 + 3 ]
for (b = 0; b < RTEMS_RFS_INODE_BLOCKS; b++)
40014368: 82 00 60 04 add %g1, 4, %g1 4001436c: 80 a0 60 30 cmp %g1, 0x30
40014370: 12 bf ff ee bne 40014328 <rtems_rfs_block_map_close+0x80>
40014374: f8 28 a0 10 stb %i4, [ %g2 + 0x10 ]
rtems_rfs_inode_set_block_count (map->inode, map->size.count);
40014378: c2 06 60 04 ld [ %i1 + 4 ], %g1 4001437c: c4 06 60 08 ld [ %i1 + 8 ], %g2
rtems_rfs_write_u32 (&handle->node->block_count, block_count);
40014380: c6 00 60 0c ld [ %g1 + 0xc ], %g3 40014384: 89 30 a0 18 srl %g2, 0x18, %g4 40014388: c8 28 e0 0c stb %g4, [ %g3 + 0xc ] 4001438c: 89 30 a0 10 srl %g2, 0x10, %g4 40014390: c6 00 60 0c ld [ %g1 + 0xc ], %g3 40014394: c8 28 e0 0d stb %g4, [ %g3 + 0xd ] 40014398: 89 30 a0 08 srl %g2, 8, %g4 4001439c: c6 00 60 0c ld [ %g1 + 0xc ], %g3 400143a0: c8 28 e0 0e stb %g4, [ %g3 + 0xe ]
brc = rtems_rfs_inode_unload (fs, map->inode, true);
400143a4: 94 10 20 01 mov 1, %o2 400143a8: c6 00 60 0c ld [ %g1 + 0xc ], %g3 400143ac: c4 28 e0 0f stb %g2, [ %g3 + 0xf ] 400143b0: 90 10 00 18 mov %i0, %o0
rtems_rfs_inode_set_block_offset (map->inode, map->size.offset);
400143b4: c6 06 60 04 ld [ %i1 + 4 ], %g3
rtems_rfs_write_u16 (&handle->node->block_offset, block_offset);
400143b8: c8 0e 60 0e ldub [ %i1 + 0xe ], %g4
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400143bc: f8 28 60 10 stb %i4, [ %g1 + 0x10 ]
rtems_rfs_write_u16 (&handle->node->block_offset, block_offset);
400143c0: c2 00 e0 0c ld [ %g3 + 0xc ], %g1 400143c4: c4 06 60 0c ld [ %i1 + 0xc ], %g2 400143c8: c8 28 60 0a stb %g4, [ %g1 + 0xa ] 400143cc: c2 00 e0 0c ld [ %g3 + 0xc ], %g1 400143d0: c4 28 60 0b stb %g2, [ %g1 + 0xb ]
rtems_rfs_inode_set_last_map_block (map->inode, map->last_map_block);
400143d4: c4 06 60 04 ld [ %i1 + 4 ], %g2 400143d8: c2 06 60 1c ld [ %i1 + 0x1c ], %g1
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400143dc: f8 28 e0 10 stb %i4, [ %g3 + 0x10 ]
rtems_rfs_write_u32 (&handle->node->last_map_block, last_map_block);
400143e0: 89 30 60 18 srl %g1, 0x18, %g4 400143e4: c6 00 a0 0c ld [ %g2 + 0xc ], %g3 400143e8: c8 28 e0 30 stb %g4, [ %g3 + 0x30 ] 400143ec: 89 30 60 10 srl %g1, 0x10, %g4 400143f0: c6 00 a0 0c ld [ %g2 + 0xc ], %g3 400143f4: c8 28 e0 31 stb %g4, [ %g3 + 0x31 ] 400143f8: 89 30 60 08 srl %g1, 8, %g4 400143fc: c6 00 a0 0c ld [ %g2 + 0xc ], %g3 40014400: c8 28 e0 32 stb %g4, [ %g3 + 0x32 ] 40014404: c6 00 a0 0c ld [ %g2 + 0xc ], %g3 40014408: c2 28 e0 33 stb %g1, [ %g3 + 0x33 ]
rtems_rfs_inode_set_last_data_block (map->inode, map->last_data_block);
4001440c: c2 06 60 04 ld [ %i1 + 4 ], %g1 40014410: c6 06 60 20 ld [ %i1 + 0x20 ], %g3
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40014414: f8 28 a0 10 stb %i4, [ %g2 + 0x10 ]
rtems_rfs_write_u32 (&handle->node->last_data_block, last_data_block);
40014418: 89 30 e0 18 srl %g3, 0x18, %g4 4001441c: c4 00 60 0c ld [ %g1 + 0xc ], %g2 40014420: c8 28 a0 34 stb %g4, [ %g2 + 0x34 ] 40014424: 89 30 e0 10 srl %g3, 0x10, %g4 40014428: c4 00 60 0c ld [ %g1 + 0xc ], %g2 4001442c: c8 28 a0 35 stb %g4, [ %g2 + 0x35 ] 40014430: 89 30 e0 08 srl %g3, 8, %g4 40014434: c4 00 60 0c ld [ %g1 + 0xc ], %g2 40014438: c8 28 a0 36 stb %g4, [ %g2 + 0x36 ] 4001443c: c4 00 60 0c ld [ %g1 + 0xc ], %g2 40014440: c6 28 a0 37 stb %g3, [ %g2 + 0x37 ]
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40014444: f8 28 60 10 stb %i4, [ %g1 + 0x10 ]
brc = rtems_rfs_inode_unload (fs, map->inode, true);
40014448: 7f ff d3 6d call 400091fc <rtems_rfs_inode_unload> 4001444c: d2 06 60 04 ld [ %i1 + 4 ], %o1
map->dirty = false;
40014450: c0 2e 40 00 clrb [ %i1 ]
if (brc > 0)
40014454: 82 38 00 08 xnor %g0, %o0, %g1 40014458: 83 38 60 1f sra %g1, 0x1f, %g1
map->dirty = false;
4001445c: 10 bf ff a1 b 400142e0 <rtems_rfs_block_map_close+0x38> 40014460: ba 0a 00 01 and %o0, %g1, %i5
40014464 <rtems_rfs_block_map_find>: {
40014464: 9d e3 bf 98 save %sp, -104, %sp
*block = 0;
40014468: c0 26 c0 00 clr [ %i3 ]
if (rtems_rfs_block_pos_block_past_end (bpos, &map->size))
4001446c: c2 06 80 00 ld [ %i2 ], %g1 40014470: 80 a0 60 00 cmp %g1, 0
40014474: 02 80 00 05 be 40014488 <rtems_rfs_block_map_find+0x24>
40014478: c4 06 60 08 ld [ %i1 + 8 ], %g2 4001447c: 80 a0 a0 00 cmp %g2, 0
40014480: 02 80 00 1a be 400144e8 <rtems_rfs_block_map_find+0x84> <== NEVER TAKEN
40014484: 90 10 20 06 mov 6, %o0 40014488: 80 a0 40 02 cmp %g1, %g2
4001448c: 1a 80 00 17 bcc 400144e8 <rtems_rfs_block_map_find+0x84>
40014490: 90 10 20 06 mov 6, %o0
if ((bpos->bno == map->bpos.bno) && (map->bpos.block != 0))
40014494: c6 06 60 10 ld [ %i1 + 0x10 ], %g3 40014498: 80 a0 40 03 cmp %g1, %g3
4001449c: 22 80 00 39 be,a 40014580 <rtems_rfs_block_map_find+0x11c>
400144a0: c6 06 60 18 ld [ %i1 + 0x18 ], %g3
if (map->size.count <= RTEMS_RFS_INODE_BLOCKS)
400144a4: 80 a0 a0 05 cmp %g2, 5
400144a8: 38 80 00 12 bgu,a 400144f0 <rtems_rfs_block_map_find+0x8c>
400144ac: c6 06 20 34 ld [ %i0 + 0x34 ], %g3
*block = map->blocks[bpos->bno];
400144b0: 82 00 60 08 add %g1, 8, %g1 400144b4: 83 28 60 02 sll %g1, 2, %g1 400144b8: 82 06 40 01 add %i1, %g1, %g1 400144bc: c2 00 60 04 ld [ %g1 + 4 ], %g1 400144c0: c2 26 c0 00 st %g1, [ %i3 ]
map->bpos.block = *block;
400144c4: 90 10 20 00 clr %o0
rtems_rfs_block_copy_bpos (&map->bpos, bpos);
400144c8: c2 06 a0 04 ld [ %i2 + 4 ], %g1 400144cc: c4 06 80 00 ld [ %i2 ], %g2 400144d0: c6 06 a0 08 ld [ %i2 + 8 ], %g3 400144d4: c6 26 60 18 st %g3, [ %i1 + 0x18 ] 400144d8: c4 26 60 10 st %g2, [ %i1 + 0x10 ] 400144dc: c2 26 60 14 st %g1, [ %i1 + 0x14 ]
map->bpos.block = *block;
400144e0: c2 06 c0 00 ld [ %i3 ], %g1 400144e4: c2 26 60 18 st %g1, [ %i1 + 0x18 ]
}
400144e8: 81 c7 e0 08 ret 400144ec: 91 e8 00 08 restore %g0, %o0, %o0
direct = bpos->bno % fs->blocks_per_block;
400144f0: 81 80 20 00 wr %g0, %y 400144f4: 01 00 00 00 nop 400144f8: 01 00 00 00 nop 400144fc: 01 00 00 00 nop 40014500: 96 70 40 03 udiv %g1, %g3, %o3
singly = bpos->bno / fs->blocks_per_block;
40014504: d6 27 bf fc st %o3, [ %fp + -4 ]
direct = bpos->bno % fs->blocks_per_block;
40014508: ba 5a c0 03 smul %o3, %g3, %i5
if (map->size.count <= fs->block_map_singly_blocks)
4001450c: c8 06 20 38 ld [ %i0 + 0x38 ], %g4 40014510: 80 a1 00 02 cmp %g4, %g2
40014514: 1a 80 00 20 bcc 40014594 <rtems_rfs_block_map_find+0x130>
40014518: ba 20 40 1d sub %g1, %i5, %i5
singly %= fs->blocks_per_block;
4001451c: 81 80 20 00 wr %g0, %y 40014520: 01 00 00 00 nop 40014524: 01 00 00 00 nop 40014528: 01 00 00 00 nop 4001452c: 82 72 c0 03 udiv %o3, %g3, %g1 40014530: 86 58 40 03 smul %g1, %g3, %g3 40014534: 96 22 c0 03 sub %o3, %g3, %o3 40014538: d6 27 bf fc st %o3, [ %fp + -4 ]
if (map->size.count < fs->block_map_doubly_blocks)
4001453c: c6 06 20 3c ld [ %i0 + 0x3c ], %g3 40014540: 80 a0 c0 02 cmp %g3, %g2
40014544: 08 bf ff e9 bleu 400144e8 <rtems_rfs_block_map_find+0x84> <== NEVER TAKEN
40014548: 90 10 20 06 mov 6, %o0
rc = rtems_rfs_block_find_indirect (fs,
4001454c: 82 00 60 08 add %g1, 8, %g1 40014550: 83 28 60 02 sll %g1, 2, %g1 40014554: 82 06 40 01 add %i1, %g1, %g1 40014558: d4 00 60 04 ld [ %g1 + 4 ], %o2 4001455c: 98 07 bf fc add %fp, -4, %o4 40014560: 92 06 60 44 add %i1, 0x44, %o1 40014564: 7f ff fe 95 call 40013fb8 <rtems_rfs_block_find_indirect> 40014568: 90 10 00 18 mov %i0, %o0
if (rc == 0)
4001456c: 80 a2 20 00 cmp %o0, 0
40014570: 12 bf ff de bne 400144e8 <rtems_rfs_block_map_find+0x84> <== NEVER TAKEN
40014574: d4 07 bf fc ld [ %fp + -4 ], %o2
rc = rtems_rfs_block_find_indirect (fs,
40014578: 10 80 00 0c b 400145a8 <rtems_rfs_block_map_find+0x144> 4001457c: 98 10 00 1b mov %i3, %o4
if ((bpos->bno == map->bpos.bno) && (map->bpos.block != 0))
40014580: 80 a0 e0 00 cmp %g3, 0
40014584: 02 bf ff c9 be 400144a8 <rtems_rfs_block_map_find+0x44>
40014588: 80 a0 a0 05 cmp %g2, 5
*block = map->bpos.block;
4001458c: 10 bf ff ce b 400144c4 <rtems_rfs_block_map_find+0x60> 40014590: c6 26 c0 00 st %g3, [ %i3 ]
rc = rtems_rfs_block_find_indirect (fs,
40014594: 96 02 e0 08 add %o3, 8, %o3 40014598: 97 2a e0 02 sll %o3, 2, %o3 4001459c: 96 06 40 0b add %i1, %o3, %o3 400145a0: d4 02 e0 04 ld [ %o3 + 4 ], %o2
rc = rtems_rfs_block_find_indirect (fs,
400145a4: 98 10 00 1b mov %i3, %o4 400145a8: 96 10 00 1d mov %i5, %o3 400145ac: 92 06 60 38 add %i1, 0x38, %o1 400145b0: 7f ff fe 82 call 40013fb8 <rtems_rfs_block_find_indirect> 400145b4: 90 10 00 18 mov %i0, %o0
if (rc == 0)
400145b8: 80 a2 20 00 cmp %o0, 0
400145bc: 22 bf ff c3 be,a 400144c8 <rtems_rfs_block_map_find+0x64> <== ALWAYS TAKEN
400145c0: 90 10 20 00 clr %o0
400145c4: 30 bf ff c9 b,a 400144e8 <rtems_rfs_block_map_find+0x84> <== NOT EXECUTED
40014674 <rtems_rfs_block_map_grow>: {
40014674: 9d e3 bf 98 save %sp, -104, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BLOCK_MAP_GROW))
40014678: 90 10 20 00 clr %o0 4001467c: 7f ff d9 52 call 4000abc4 <rtems_rfs_trace> 40014680: 13 00 00 08 sethi %hi(0x2000), %o1 40014684: 80 a2 20 00 cmp %o0, 0
40014688: 32 80 00 e6 bne,a 40014a20 <rtems_rfs_block_map_grow+0x3ac> <== NEVER TAKEN
4001468c: d4 06 60 08 ld [ %i1 + 8 ], %o2 <== NOT EXECUTED
if ((map->size.count + blocks) >= rtems_rfs_fs_max_block_map_blocks (fs))
40014690: c2 06 60 08 ld [ %i1 + 8 ], %g1 40014694: c4 06 20 3c ld [ %i0 + 0x3c ], %g2 40014698: 82 06 80 01 add %i2, %g1, %g1 4001469c: 80 a0 40 02 cmp %g1, %g2
400146a0: 1a 80 00 c0 bcc 400149a0 <rtems_rfs_block_map_grow+0x32c> <== NEVER TAKEN
400146a4: ba 10 20 1b mov 0x1b, %i5
for (b = 0; b < blocks; b++)
400146a8: 80 a6 a0 00 cmp %i2, 0
400146ac: 02 80 00 e3 be 40014a38 <rtems_rfs_block_map_grow+0x3c4> <== NEVER TAKEN
400146b0: a4 10 20 00 clr %l2
rc = rtems_rfs_group_bitmap_alloc (fs, map->last_data_block,
400146b4: d2 06 60 20 ld [ %i1 + 0x20 ], %o1
rtems_rfs_block_set_number (&map->singly_buffer, direct, block);
400146b8: b8 10 20 01 mov 1, %i4
rc = rtems_rfs_buffer_handle_request (fs,
400146bc: a2 06 60 44 add %i1, 0x44, %l1
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
400146c0: 10 80 00 11 b 40014704 <rtems_rfs_block_map_grow+0x90> 400146c4: a0 06 60 38 add %i1, 0x38, %l0
map->blocks[map->size.count] = block;
400146c8: 84 00 60 08 add %g1, 8, %g2 400146cc: 85 28 a0 02 sll %g2, 2, %g2 400146d0: 84 06 40 02 add %i1, %g2, %g2 400146d4: d2 20 a0 04 st %o1, [ %g2 + 4 ]
map->size.count++;
400146d8: 82 00 60 01 inc %g1
map->size.offset = 0;
400146dc: c0 26 60 0c clr [ %i1 + 0xc ]
if (b == 0)
400146e0: 80 a4 a0 00 cmp %l2, 0
400146e4: 12 80 00 03 bne 400146f0 <rtems_rfs_block_map_grow+0x7c> <== NEVER TAKEN
400146e8: c2 26 60 08 st %g1, [ %i1 + 8 ]
*new_block = block;
400146ec: d2 26 c0 00 st %o1, [ %i3 ]
for (b = 0; b < blocks; b++)
400146f0: a4 04 a0 01 inc %l2
map->last_data_block = block;
400146f4: d2 26 60 20 st %o1, [ %i1 + 0x20 ]
for (b = 0; b < blocks; b++)
400146f8: 80 a4 80 1a cmp %l2, %i2
400146fc: 02 80 00 cf be 40014a38 <rtems_rfs_block_map_grow+0x3c4> <== ALWAYS TAKEN
40014700: f8 2e 40 00 stb %i4, [ %i1 ]
rc = rtems_rfs_group_bitmap_alloc (fs, map->last_data_block,
40014704: 96 07 bf f8 add %fp, -8, %o3 40014708: 94 10 20 00 clr %o2 4001470c: 7f ff d1 48 call 40008c2c <rtems_rfs_group_bitmap_alloc> 40014710: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40014714: ba 92 20 00 orcc %o0, 0, %i5
40014718: 14 80 00 a2 bg 400149a0 <rtems_rfs_block_map_grow+0x32c>
4001471c: 01 00 00 00 nop
if (map->size.count < RTEMS_RFS_INODE_BLOCKS)
40014720: c2 06 60 08 ld [ %i1 + 8 ], %g1 40014724: 80 a0 60 04 cmp %g1, 4
40014728: 08 bf ff e8 bleu 400146c8 <rtems_rfs_block_map_grow+0x54>
4001472c: d2 07 bf f8 ld [ %fp + -8 ], %o1
direct = map->size.count % fs->blocks_per_block;
40014730: ec 06 20 34 ld [ %i0 + 0x34 ], %l6
if (map->size.count < fs->block_map_singly_blocks)
40014734: c4 06 20 38 ld [ %i0 + 0x38 ], %g2
direct = map->size.count % fs->blocks_per_block;
40014738: 81 80 20 00 wr %g0, %y 4001473c: 01 00 00 00 nop 40014740: 01 00 00 00 nop 40014744: 01 00 00 00 nop 40014748: aa 70 40 16 udiv %g1, %l6, %l5
if (map->size.count < fs->block_map_singly_blocks)
4001474c: 80 a0 40 02 cmp %g1, %g2
direct = map->size.count % fs->blocks_per_block;
40014750: a6 5d 40 16 smul %l5, %l6, %l3
if (map->size.count < fs->block_map_singly_blocks) 40014754: 1a 80 00 30 bcc 40014814 <rtems_rfs_block_map_grow+0x1a0>
40014758: a6 20 40 13 sub %g1, %l3, %l3
if ((direct == 0) ||
4001475c: 80 a4 e0 00 cmp %l3, 0
40014760: 02 80 00 06 be 40014778 <rtems_rfs_block_map_grow+0x104>
40014764: 80 a0 40 16 cmp %g1, %l6
40014768: 1a 80 00 90 bcc 400149a8 <rtems_rfs_block_map_grow+0x334>
4001476c: 80 a4 e0 05 cmp %l3, 5
40014770: 32 80 00 8f bne,a 400149ac <rtems_rfs_block_map_grow+0x338>
40014774: 82 05 60 08 add %l5, 8, %g1
upping = map->size.count == RTEMS_RFS_INODE_BLOCKS;
40014778: 82 18 60 05 xor %g1, 5, %g1
rc = rtems_rfs_block_map_indirect_alloc (fs, map,
4001477c: 80 a0 00 01 cmp %g0, %g1
&map->blocks[singly],
40014780: 96 05 60 09 add %l5, 9, %o3
rc = rtems_rfs_block_map_indirect_alloc (fs, map,
40014784: 98 60 3f ff subx %g0, -1, %o4
&map->blocks[singly],
40014788: 97 2a e0 02 sll %o3, 2, %o3
rc = rtems_rfs_block_map_indirect_alloc (fs, map,
4001478c: 94 10 00 10 mov %l0, %o2 40014790: 96 06 40 0b add %i1, %o3, %o3 40014794: 92 10 00 19 mov %i1, %o1 40014798: 7f ff fd b6 call 40013e70 <rtems_rfs_block_map_indirect_alloc> 4001479c: 90 10 00 18 mov %i0, %o0 400147a0: ba 10 00 08 mov %o0, %i5
if (rc > 0)
400147a4: 80 a7 60 00 cmp %i5, 0
400147a8: 14 80 00 7b bg 40014994 <rtems_rfs_block_map_grow+0x320> <== NEVER TAKEN
400147ac: d4 07 bf f8 ld [ %fp + -8 ], %o2
rtems_rfs_block_set_number (&map->singly_buffer, direct, block);
400147b0: c2 06 60 40 ld [ %i1 + 0x40 ], %g1 400147b4: c4 0f bf f8 ldub [ %fp + -8 ], %g2 400147b8: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 400147bc: a7 2c e0 02 sll %l3, 2, %l3 400147c0: c4 28 40 13 stb %g2, [ %g1 + %l3 ] 400147c4: c2 06 60 40 ld [ %i1 + 0x40 ], %g1 400147c8: c4 17 bf f8 lduh [ %fp + -8 ], %g2 400147cc: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 400147d0: 82 00 40 13 add %g1, %l3, %g1 400147d4: c4 28 60 01 stb %g2, [ %g1 + 1 ] 400147d8: c2 06 60 40 ld [ %i1 + 0x40 ], %g1 400147dc: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 400147e0: c4 07 bf f8 ld [ %fp + -8 ], %g2 400147e4: 82 00 40 13 add %g1, %l3, %g1 400147e8: 85 30 a0 08 srl %g2, 8, %g2 400147ec: c4 28 60 02 stb %g2, [ %g1 + 2 ] 400147f0: c2 06 60 40 ld [ %i1 + 0x40 ], %g1 400147f4: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 400147f8: a6 00 40 13 add %g1, %l3, %l3 400147fc: c2 07 bf f8 ld [ %fp + -8 ], %g1 40014800: c2 2c e0 03 stb %g1, [ %l3 + 3 ] 40014804: f8 2e 60 38 stb %i4, [ %i1 + 0x38 ]
map->size.count++;
40014808: c2 06 60 08 ld [ %i1 + 8 ], %g1
*new_block = block;
4001480c: 10 bf ff b3 b 400146d8 <rtems_rfs_block_map_grow+0x64> 40014810: d2 07 bf f8 ld [ %fp + -8 ], %o1
doubly = singly / fs->blocks_per_block;
40014814: 81 80 20 00 wr %g0, %y 40014818: 01 00 00 00 nop 4001481c: 01 00 00 00 nop 40014820: 01 00 00 00 nop 40014824: ae 75 40 16 udiv %l5, %l6, %l7
if (direct == 0)
40014828: 80 a4 e0 00 cmp %l3, 0
singly %= fs->blocks_per_block;
4001482c: a8 5d c0 16 smul %l7, %l6, %l4
if (direct == 0) 40014830: 12 80 00 37 bne 4001490c <rtems_rfs_block_map_grow+0x298>
40014834: a8 25 40 14 sub %l5, %l4, %l4
rc = rtems_rfs_block_map_indirect_alloc (fs, map,
40014838: 98 10 20 00 clr %o4 4001483c: 96 07 bf fc add %fp, -4, %o3 40014840: 94 10 00 10 mov %l0, %o2 40014844: 92 10 00 19 mov %i1, %o1 40014848: 7f ff fd 8a call 40013e70 <rtems_rfs_block_map_indirect_alloc> 4001484c: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40014850: ba 92 20 00 orcc %o0, 0, %i5
40014854: 14 80 00 4f bg 40014990 <rtems_rfs_block_map_grow+0x31c> <== NEVER TAKEN
40014858: 80 a5 20 00 cmp %l4, 0
if ((singly == 0) ||
4001485c: 02 80 00 06 be 40014874 <rtems_rfs_block_map_grow+0x200> <== NEVER TAKEN
40014860: 80 a5 40 16 cmp %l5, %l6
40014864: 1a 80 00 5b bcc 400149d0 <rtems_rfs_block_map_grow+0x35c> <== NEVER TAKEN
40014868: 80 a5 20 05 cmp %l4, 5
4001486c: 12 80 00 5a bne 400149d4 <rtems_rfs_block_map_grow+0x360>
40014870: 82 05 e0 08 add %l7, 8, %g1
upping = map->size.count == fs->block_map_singly_blocks;
40014874: c2 06 60 08 ld [ %i1 + 8 ], %g1 40014878: c4 06 20 38 ld [ %i0 + 0x38 ], %g2 4001487c: 82 18 40 02 xor %g1, %g2, %g1
rc = rtems_rfs_block_map_indirect_alloc (fs, map,
40014880: 80 a0 00 01 cmp %g0, %g1
&map->blocks[doubly],
40014884: 96 05 e0 09 add %l7, 9, %o3
rc = rtems_rfs_block_map_indirect_alloc (fs, map,
40014888: 98 60 3f ff subx %g0, -1, %o4
&map->blocks[doubly],
4001488c: 97 2a e0 02 sll %o3, 2, %o3
rc = rtems_rfs_block_map_indirect_alloc (fs, map,
40014890: 94 10 00 11 mov %l1, %o2 40014894: 96 06 40 0b add %i1, %o3, %o3 40014898: 92 10 00 19 mov %i1, %o1 4001489c: 7f ff fd 75 call 40013e70 <rtems_rfs_block_map_indirect_alloc> 400148a0: 90 10 00 18 mov %i0, %o0
if (rc > 0)
400148a4: ba 92 20 00 orcc %o0, 0, %i5
400148a8: 14 80 00 56 bg 40014a00 <rtems_rfs_block_map_grow+0x38c> <== NEVER TAKEN
400148ac: d4 07 bf fc ld [ %fp + -4 ], %o2
rtems_rfs_block_set_number (&map->doubly_buffer,
400148b0: c2 06 60 4c ld [ %i1 + 0x4c ], %g1 400148b4: c4 0f bf fc ldub [ %fp + -4 ], %g2 400148b8: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 400148bc: a9 2d 20 02 sll %l4, 2, %l4 400148c0: c4 28 40 14 stb %g2, [ %g1 + %l4 ] 400148c4: c2 06 60 4c ld [ %i1 + 0x4c ], %g1 400148c8: c4 17 bf fc lduh [ %fp + -4 ], %g2 400148cc: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 400148d0: 82 00 40 14 add %g1, %l4, %g1 400148d4: c4 28 60 01 stb %g2, [ %g1 + 1 ] 400148d8: c2 06 60 4c ld [ %i1 + 0x4c ], %g1 400148dc: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 400148e0: c4 07 bf fc ld [ %fp + -4 ], %g2 400148e4: 82 00 40 14 add %g1, %l4, %g1 400148e8: 85 30 a0 08 srl %g2, 8, %g2 400148ec: c4 28 60 02 stb %g2, [ %g1 + 2 ] 400148f0: c2 06 60 4c ld [ %i1 + 0x4c ], %g1 400148f4: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 400148f8: a8 00 40 14 add %g1, %l4, %l4 400148fc: c2 07 bf fc ld [ %fp + -4 ], %g1 40014900: c2 2d 20 03 stb %g1, [ %l4 + 3 ] 40014904: 10 bf ff ab b 400147b0 <rtems_rfs_block_map_grow+0x13c> 40014908: f8 2e 60 44 stb %i4, [ %i1 + 0x44 ]
rc = rtems_rfs_buffer_handle_request (fs,
4001490c: ae 05 e0 08 add %l7, 8, %l7 40014910: af 2d e0 02 sll %l7, 2, %l7 40014914: ae 06 40 17 add %i1, %l7, %l7 40014918: d4 05 e0 04 ld [ %l7 + 4 ], %o2 4001491c: 96 10 20 01 mov 1, %o3 40014920: 92 10 00 11 mov %l1, %o1 40014924: 7f ff ca 3f call 40007220 <rtems_rfs_buffer_handle_request> 40014928: 90 10 00 18 mov %i0, %o0
if (rc > 0)
4001492c: ba 92 20 00 orcc %o0, 0, %i5
40014930: 14 80 00 18 bg 40014990 <rtems_rfs_block_map_grow+0x31c> <== NEVER TAKEN
40014934: a9 2d 20 02 sll %l4, 2, %l4
singly_block = rtems_rfs_block_get_number (&map->doubly_buffer,
40014938: c2 06 60 4c ld [ %i1 + 0x4c ], %g1 4001493c: c4 00 60 1c ld [ %g1 + 0x1c ], %g2 40014940: d4 08 80 14 ldub [ %g2 + %l4 ], %o2 40014944: 82 00 80 14 add %g2, %l4, %g1 40014948: c6 08 60 03 ldub [ %g1 + 3 ], %g3 4001494c: c4 08 60 01 ldub [ %g1 + 1 ], %g2 40014950: c2 08 60 02 ldub [ %g1 + 2 ], %g1 40014954: 85 28 a0 10 sll %g2, 0x10, %g2 40014958: 83 28 60 08 sll %g1, 8, %g1 4001495c: 95 2a a0 18 sll %o2, 0x18, %o2
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40014960: 96 10 20 01 mov 1, %o3
singly_block = rtems_rfs_block_get_number (&map->doubly_buffer,
40014964: 94 12 80 03 or %o2, %g3, %o2
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40014968: 92 10 00 10 mov %l0, %o1
singly_block = rtems_rfs_block_get_number (&map->doubly_buffer,
4001496c: 94 12 80 02 or %o2, %g2, %o2
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40014970: 90 10 00 18 mov %i0, %o0
singly_block = rtems_rfs_block_get_number (&map->doubly_buffer,
40014974: 94 12 80 01 or %o2, %g1, %o2
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40014978: 7f ff ca 2a call 40007220 <rtems_rfs_buffer_handle_request> 4001497c: d4 27 bf fc st %o2, [ %fp + -4 ] 40014980: ba 10 00 08 mov %o0, %i5
if (rc > 0)
40014984: 80 a7 60 00 cmp %i5, 0
40014988: 24 bf ff 8b ble,a 400147b4 <rtems_rfs_block_map_grow+0x140> <== ALWAYS TAKEN
4001498c: c2 06 60 40 ld [ %i1 + 0x40 ], %g1
rtems_rfs_group_bitmap_free (fs, false, block);
40014990: d4 07 bf f8 ld [ %fp + -8 ], %o2 <== NOT EXECUTED 40014994: 92 10 20 00 clr %o1 <== NOT EXECUTED 40014998: 7f ff d1 40 call 40008e98 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED 4001499c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
}
400149a0: 81 c7 e0 08 ret 400149a4: 91 e8 00 1d restore %g0, %i5, %o0
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
400149a8: 82 05 60 08 add %l5, 8, %g1 400149ac: 83 28 60 02 sll %g1, 2, %g1 400149b0: 82 06 40 01 add %i1, %g1, %g1 400149b4: d4 00 60 04 ld [ %g1 + 4 ], %o2 400149b8: 96 10 20 01 mov 1, %o3 400149bc: 92 10 00 10 mov %l0, %o1 400149c0: 7f ff ca 18 call 40007220 <rtems_rfs_buffer_handle_request> 400149c4: 90 10 00 18 mov %i0, %o0 400149c8: 10 bf ff 77 b 400147a4 <rtems_rfs_block_map_grow+0x130> 400149cc: ba 10 00 08 mov %o0, %i5
rc = rtems_rfs_buffer_handle_request (fs, &map->doubly_buffer,
400149d0: 82 05 e0 08 add %l7, 8, %g1 <== NOT EXECUTED
400149d4: 83 28 60 02 sll %g1, 2, %g1 400149d8: 82 06 40 01 add %i1, %g1, %g1 400149dc: d4 00 60 04 ld [ %g1 + 4 ], %o2 400149e0: 96 10 20 01 mov 1, %o3 400149e4: 92 10 00 11 mov %l1, %o1 400149e8: 7f ff ca 0e call 40007220 <rtems_rfs_buffer_handle_request> 400149ec: 90 10 00 18 mov %i0, %o0
if (rc > 0)
400149f0: ba 92 20 00 orcc %o0, 0, %i5
400149f4: 24 bf ff b0 ble,a 400148b4 <rtems_rfs_block_map_grow+0x240> <== ALWAYS TAKEN
400149f8: c2 06 60 4c ld [ %i1 + 0x4c ], %g1
rtems_rfs_group_bitmap_free (fs, false, singly_block);
400149fc: d4 07 bf fc ld [ %fp + -4 ], %o2 <== NOT EXECUTED 40014a00: 92 10 20 00 clr %o1 <== NOT EXECUTED 40014a04: 7f ff d1 25 call 40008e98 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED 40014a08: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
rtems_rfs_group_bitmap_free (fs, false, block);
40014a0c: d4 07 bf f8 ld [ %fp + -8 ], %o2 <== NOT EXECUTED 40014a10: 92 10 20 00 clr %o1 <== NOT EXECUTED 40014a14: 7f ff d1 21 call 40008e98 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED 40014a18: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
return rc;
40014a1c: 30 bf ff e1 b,a 400149a0 <rtems_rfs_block_map_grow+0x32c> <== NOT EXECUTED
printf ("rtems-rfs: block-map-grow: entry: blocks=%zd count=%" PRIu32 "\n",
40014a20: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 40014a24: 11 10 00 8d sethi %hi(0x40023400), %o0 <== NOT EXECUTED 40014a28: 7f ff b8 b4 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40014a2c: 90 12 21 f8 or %o0, 0x1f8, %o0 ! 400235f8 <IMFS_LIMITS_AND_OPTIONS+0xb8> <== NOT EXECUTED
if ((map->size.count + blocks) >= rtems_rfs_fs_max_block_map_blocks (fs))
40014a30: 10 bf ff 19 b 40014694 <rtems_rfs_block_map_grow+0x20> <== NOT EXECUTED 40014a34: c2 06 60 08 ld [ %i1 + 8 ], %g1 <== NOT EXECUTED
return 0;
40014a38: ba 10 20 00 clr %i5
}
40014a3c: 81 c7 e0 08 ret 40014a40: 91 e8 00 1d restore %g0, %i5, %o0
4001412c <rtems_rfs_block_map_open>: {
4001412c: 9d e3 bf a0 save %sp, -96, %sp
map->dirty = false;
40014130: c0 2e 80 00 clrb [ %i2 ]
rc = rtems_rfs_inode_load (fs, inode);
40014134: 92 10 00 19 mov %i1, %o1
map->inode = NULL;
40014138: c0 26 a0 04 clr [ %i2 + 4 ]
rc = rtems_rfs_inode_load (fs, inode);
4001413c: 90 10 00 18 mov %i0, %o0
* @param[in] size is a pointer to the block size. */ static inline void rtems_rfs_block_set_size_zero (rtems_rfs_block_size* size) { size->count = 0;
40014140: c0 26 a0 08 clr [ %i2 + 8 ]
{
40014144: ba 10 00 1a mov %i2, %i5
size->offset = 0;
40014148: c0 26 a0 0c clr [ %i2 + 0xc ]
bpos->bno = 0;
4001414c: c0 26 a0 10 clr [ %i2 + 0x10 ]
bpos->boff = 0;
40014150: c0 26 a0 14 clr [ %i2 + 0x14 ]
bpos->block = 0;
40014154: c0 26 a0 18 clr [ %i2 + 0x18 ]
handle->dirty = false;
40014158: c0 2e a0 38 clrb [ %i2 + 0x38 ]
handle->bnum = 0;
4001415c: c0 26 a0 3c clr [ %i2 + 0x3c ]
handle->buffer = NULL;
40014160: c0 26 a0 40 clr [ %i2 + 0x40 ]
handle->dirty = false;
40014164: c0 2e a0 44 clrb [ %i2 + 0x44 ]
handle->bnum = 0;
40014168: c0 26 a0 48 clr [ %i2 + 0x48 ]
rc = rtems_rfs_inode_load (fs, inode);
4001416c: 7f ff d3 bc call 4000905c <rtems_rfs_inode_load> 40014170: c0 26 a0 4c clr [ %i2 + 0x4c ]
if (rc > 0)
40014174: b8 92 20 00 orcc %o0, 0, %i4
40014178: 14 80 00 3d bg 4001426c <rtems_rfs_block_map_open+0x140> <== NEVER TAKEN
4001417c: 86 10 20 00 clr %g3
map->inode = inode;
40014180: f6 06 60 0c ld [ %i1 + 0xc ], %i3 40014184: f2 26 a0 04 st %i1, [ %i2 + 4 ]
for (b = 0; b < RTEMS_RFS_INODE_BLOCKS; b++)
40014188: b4 06 a0 24 add %i2, 0x24, %i2
return rtems_rfs_read_u32 (&handle->node->data.blocks[block]);
4001418c: 88 06 c0 03 add %i3, %g3, %g4 40014190: f8 09 20 1c ldub [ %g4 + 0x1c ], %i4 40014194: c4 09 20 1d ldub [ %g4 + 0x1d ], %g2 40014198: c2 09 20 1e ldub [ %g4 + 0x1e ], %g1 4001419c: c8 09 20 1f ldub [ %g4 + 0x1f ], %g4 400141a0: b9 2f 20 18 sll %i4, 0x18, %i4 400141a4: 85 28 a0 10 sll %g2, 0x10, %g2 400141a8: 83 28 60 08 sll %g1, 8, %g1 400141ac: 84 10 80 1c or %g2, %i4, %g2 400141b0: 82 10 40 02 or %g1, %g2, %g1 400141b4: 82 11 00 01 or %g4, %g1, %g1
map->blocks[b] = rtems_rfs_inode_get_block (inode, b);
400141b8: c2 26 80 03 st %g1, [ %i2 + %g3 ]
for (b = 0; b < RTEMS_RFS_INODE_BLOCKS; b++)
400141bc: 86 00 e0 04 add %g3, 4, %g3 400141c0: 80 a0 e0 14 cmp %g3, 0x14
400141c4: 12 bf ff f3 bne 40014190 <rtems_rfs_block_map_open+0x64>
400141c8: 88 06 c0 03 add %i3, %g3, %g4
return rtems_rfs_read_u32 (&handle->node->block_count);
400141cc: c6 0e e0 0f ldub [ %i3 + 0xf ], %g3 400141d0: c8 0e e0 0c ldub [ %i3 + 0xc ], %g4 400141d4: c4 0e e0 0d ldub [ %i3 + 0xd ], %g2 400141d8: c2 0e e0 0e ldub [ %i3 + 0xe ], %g1 400141dc: 89 29 20 18 sll %g4, 0x18, %g4 400141e0: 85 28 a0 10 sll %g2, 0x10, %g2 400141e4: 83 28 60 08 sll %g1, 8, %g1 400141e8: 84 10 80 04 or %g2, %g4, %g2 400141ec: 82 10 40 02 or %g1, %g2, %g1 400141f0: 82 10 c0 01 or %g3, %g1, %g1
map->size.count = rtems_rfs_inode_get_block_count (inode);
400141f4: c2 27 60 08 st %g1, [ %i5 + 8 ]
map->size.offset = rtems_rfs_inode_get_block_offset (inode);
400141f8: c4 0e e0 0a ldub [ %i3 + 0xa ], %g2 400141fc: c2 0e e0 0b ldub [ %i3 + 0xb ], %g1 40014200: 85 28 a0 08 sll %g2, 8, %g2 40014204: 82 10 40 02 or %g1, %g2, %g1 40014208: c2 27 60 0c st %g1, [ %i5 + 0xc ]
return rtems_rfs_read_u32 (&handle->node->last_map_block);
4001420c: c6 0e e0 33 ldub [ %i3 + 0x33 ], %g3 40014210: c8 0e e0 30 ldub [ %i3 + 0x30 ], %g4 40014214: c4 0e e0 31 ldub [ %i3 + 0x31 ], %g2 40014218: c2 0e e0 32 ldub [ %i3 + 0x32 ], %g1 4001421c: 89 29 20 18 sll %g4, 0x18, %g4 40014220: 85 28 a0 10 sll %g2, 0x10, %g2 40014224: 83 28 60 08 sll %g1, 8, %g1 40014228: 84 10 80 04 or %g2, %g4, %g2 4001422c: 82 10 40 02 or %g1, %g2, %g1 40014230: 82 10 c0 01 or %g3, %g1, %g1
map->last_map_block = rtems_rfs_inode_get_last_map_block (inode);
40014234: c2 27 60 1c st %g1, [ %i5 + 0x1c ]
return rtems_rfs_read_u32 (&handle->node->last_data_block);
40014238: c8 0e e0 34 ldub [ %i3 + 0x34 ], %g4 4001423c: c4 0e e0 35 ldub [ %i3 + 0x35 ], %g2 40014240: c2 0e e0 36 ldub [ %i3 + 0x36 ], %g1 40014244: c6 0e e0 37 ldub [ %i3 + 0x37 ], %g3 40014248: 89 29 20 18 sll %g4, 0x18, %g4 4001424c: 85 28 a0 10 sll %g2, 0x10, %g2 40014250: 83 28 60 08 sll %g1, 8, %g1 40014254: 84 10 80 04 or %g2, %g4, %g2 40014258: 82 10 40 02 or %g1, %g2, %g1 4001425c: 82 10 c0 01 or %g3, %g1, %g1
map->last_data_block = rtems_rfs_inode_get_last_data_block (inode);
40014260: c2 27 60 20 st %g1, [ %i5 + 0x20 ]
rc = rtems_rfs_inode_unload (fs, inode, false);
40014264: 7f ff d3 e6 call 400091fc <rtems_rfs_inode_unload> 40014268: 95 e8 20 00 restore %g0, 0, %o2
rtems_rfs_buffer_handle_release (fs, handle);
4001426c: 92 06 a0 38 add %i2, 0x38, %o1 <== NOT EXECUTED 40014270: 7f ff cc b5 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40014274: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
handle->dirty = false;
40014278: c0 2e a0 38 clrb [ %i2 + 0x38 ] <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4001427c: 92 06 a0 44 add %i2, 0x44, %o1 <== NOT EXECUTED
handle->bnum = 0;
40014280: c0 26 a0 3c clr [ %i2 + 0x3c ] <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40014284: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
handle->buffer = NULL;
40014288: c0 26 a0 40 clr [ %i2 + 0x40 ] <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4001428c: 7f ff cc ae call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40014290: b0 10 00 1c mov %i4, %i0 <== NOT EXECUTED
handle->dirty = false;
40014294: c0 2e a0 44 clrb [ %i2 + 0x44 ] <== NOT EXECUTED
handle->bnum = 0;
40014298: c0 26 a0 48 clr [ %i2 + 0x48 ] <== NOT EXECUTED
handle->buffer = NULL;
4001429c: c0 26 a0 4c clr [ %i2 + 0x4c ] <== NOT EXECUTED
}
400142a0: 81 c7 e0 08 ret <== NOT EXECUTED 400142a4: 81 e8 00 00 restore <== NOT EXECUTED
40014a44 <rtems_rfs_block_map_shrink>: int rtems_rfs_block_map_shrink (rtems_rfs_file_system* fs, rtems_rfs_block_map* map, size_t blocks) {
40014a44: 9d e3 bf a0 save %sp, -96, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BLOCK_MAP_SHRINK))
40014a48: 90 10 20 00 clr %o0 40014a4c: 7f ff d8 5e call 4000abc4 <rtems_rfs_trace> 40014a50: 13 00 00 10 sethi %hi(0x4000), %o1 40014a54: 80 a2 20 00 cmp %o0, 0
40014a58: 32 80 00 a4 bne,a 40014ce8 <rtems_rfs_block_map_shrink+0x2a4> <== NEVER TAKEN
40014a5c: d4 06 60 08 ld [ %i1 + 8 ], %o2 <== NOT EXECUTED
printf ("rtems-rfs: block-map-shrink: entry: blocks=%zd count=%" PRIu32 "\n", blocks, map->size.count); if (map->size.count == 0)
40014a60: c2 06 60 08 ld [ %i1 + 8 ], %g1 40014a64: 80 a0 60 00 cmp %g1, 0
40014a68: 02 80 00 9b be 40014cd4 <rtems_rfs_block_map_shrink+0x290>
40014a6c: 80 a0 40 1a cmp %g1, %i2
return 0; if (blocks > map->size.count) 40014a70: 18 80 00 9c bgu 40014ce0 <rtems_rfs_block_map_shrink+0x29c>
40014a74: ba 10 00 01 mov %g1, %i5
blocks = map->size.count; while (blocks)
40014a78: 80 a7 60 00 cmp %i5, 0
40014a7c: 02 80 00 8f be 40014cb8 <rtems_rfs_block_map_shrink+0x274> <== NEVER TAKEN
40014a80: b4 06 60 44 add %i1, 0x44, %i2
doubly_singly); /* * Read the singly indirect table and get the block number. */ rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40014a84: b6 06 60 38 add %i1, 0x38, %i3
if (rc > 0) return rc; map->size.count--; map->size.offset = 0; map->last_data_block = block_to_free; map->dirty = true;
40014a88: 10 80 00 13 b 40014ad4 <rtems_rfs_block_map_shrink+0x90> 40014a8c: b8 10 20 01 mov 1, %i4
block_to_free = map->blocks[block];
40014a90: 82 06 40 01 add %i1, %g1, %g1 40014a94: e0 00 60 20 ld [ %g1 + 0x20 ], %l0
map->blocks[block] = 0;
40014a98: c0 20 60 20 clr [ %g1 + 0x20 ]
rc = rtems_rfs_group_bitmap_free (fs, false, block_to_free);
40014a9c: 94 10 00 10 mov %l0, %o2 40014aa0: 92 10 20 00 clr %o1 40014aa4: 7f ff d0 fd call 40008e98 <rtems_rfs_group_bitmap_free> 40014aa8: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40014aac: 80 a2 20 00 cmp %o0, 0
40014ab0: 14 80 00 61 bg 40014c34 <rtems_rfs_block_map_shrink+0x1f0> <== NEVER TAKEN
40014ab4: ba 87 7f ff addcc %i5, -1, %i5
map->size.count--;
40014ab8: c2 06 60 08 ld [ %i1 + 8 ], %g1 40014abc: 82 00 7f ff add %g1, -1, %g1
map->size.offset = 0;
40014ac0: c0 26 60 0c clr [ %i1 + 0xc ]
map->size.count--;
40014ac4: c2 26 60 08 st %g1, [ %i1 + 8 ]
map->last_data_block = block_to_free;
40014ac8: e0 26 60 20 st %l0, [ %i1 + 0x20 ]
while (blocks) 40014acc: 02 80 00 78 be 40014cac <rtems_rfs_block_map_shrink+0x268>
40014ad0: f8 2e 40 00 stb %i4, [ %i1 ]
block = map->size.count - 1;
40014ad4: 84 00 7f ff add %g1, -1, %g2
if (block < RTEMS_RFS_INODE_BLOCKS)
40014ad8: 80 a0 a0 04 cmp %g2, 4
40014adc: 28 bf ff ed bleu,a 40014a90 <rtems_rfs_block_map_shrink+0x4c>
40014ae0: 83 28 60 02 sll %g1, 2, %g1
direct = block % fs->blocks_per_block;
40014ae4: c6 06 20 34 ld [ %i0 + 0x34 ], %g3
if (block < fs->block_map_singly_blocks)
40014ae8: c8 06 20 38 ld [ %i0 + 0x38 ], %g4
direct = block % fs->blocks_per_block;
40014aec: 81 80 20 00 wr %g0, %y 40014af0: 01 00 00 00 nop 40014af4: 01 00 00 00 nop 40014af8: 01 00 00 00 nop 40014afc: a2 70 80 03 udiv %g2, %g3, %l1
if (block < fs->block_map_singly_blocks)
40014b00: 80 a1 00 02 cmp %g4, %g2
direct = block % fs->blocks_per_block;
40014b04: a6 5c 40 03 smul %l1, %g3, %l3
if (block < fs->block_map_singly_blocks)
40014b08: 18 80 00 4d bgu 40014c3c <rtems_rfs_block_map_shrink+0x1f8> <== ALWAYS TAKEN
40014b0c: a6 20 80 13 sub %g2, %l3, %l3
else if (block < fs->block_map_doubly_blocks)
40014b10: c8 06 20 3c ld [ %i0 + 0x3c ], %g4 <== NOT EXECUTED 40014b14: 80 a1 00 02 cmp %g4, %g2 <== NOT EXECUTED 40014b18: 08 80 00 65 bleu 40014cac <rtems_rfs_block_map_shrink+0x268> <== NOT EXECUTED 40014b1c: 96 10 20 01 mov 1, %o3 <== NOT EXECUTED
doubly = singly / fs->blocks_per_block;
40014b20: 81 80 20 00 wr %g0, %y <== NOT EXECUTED 40014b24: 01 00 00 00 nop <== NOT EXECUTED 40014b28: 01 00 00 00 nop <== NOT EXECUTED 40014b2c: 01 00 00 00 nop <== NOT EXECUTED 40014b30: a4 74 40 03 udiv %l1, %g3, %l2 <== NOT EXECUTED
doubly_singly = singly % fs->blocks_per_block;
40014b34: 86 5c 80 03 smul %l2, %g3, %g3 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->doubly_buffer,
40014b38: 82 04 a0 08 add %l2, 8, %g1 <== NOT EXECUTED 40014b3c: 83 28 60 02 sll %g1, 2, %g1 <== NOT EXECUTED 40014b40: 82 06 40 01 add %i1, %g1, %g1 <== NOT EXECUTED 40014b44: d4 00 60 04 ld [ %g1 + 4 ], %o2 <== NOT EXECUTED
doubly_singly = singly % fs->blocks_per_block;
40014b48: a2 24 40 03 sub %l1, %g3, %l1 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->doubly_buffer,
40014b4c: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 40014b50: 7f ff c9 b4 call 40007220 <rtems_rfs_buffer_handle_request> <== NOT EXECUTED 40014b54: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
if (rc > 0)
40014b58: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40014b5c: 14 80 00 36 bg 40014c34 <rtems_rfs_block_map_shrink+0x1f0> <== NOT EXECUTED 40014b60: 96 10 20 01 mov 1, %o3 <== NOT EXECUTED
singly = rtems_rfs_block_get_number (&map->doubly_buffer,
40014b64: c2 06 60 4c ld [ %i1 + 0x4c ], %g1 <== NOT EXECUTED 40014b68: c6 00 60 1c ld [ %g1 + 0x1c ], %g3 <== NOT EXECUTED 40014b6c: 83 2c 60 02 sll %l1, 2, %g1 <== NOT EXECUTED 40014b70: e8 08 c0 01 ldub [ %g3 + %g1 ], %l4 <== NOT EXECUTED 40014b74: 84 00 c0 01 add %g3, %g1, %g2 <== NOT EXECUTED 40014b78: c2 08 a0 01 ldub [ %g2 + 1 ], %g1 <== NOT EXECUTED 40014b7c: d4 08 a0 02 ldub [ %g2 + 2 ], %o2 <== NOT EXECUTED 40014b80: c6 08 a0 03 ldub [ %g2 + 3 ], %g3 <== NOT EXECUTED 40014b84: 83 28 60 10 sll %g1, 0x10, %g1 <== NOT EXECUTED 40014b88: 95 2a a0 08 sll %o2, 8, %o2 <== NOT EXECUTED 40014b8c: a9 2d 20 18 sll %l4, 0x18, %l4 <== NOT EXECUTED 40014b90: a8 15 00 03 or %l4, %g3, %l4 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40014b94: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED
singly = rtems_rfs_block_get_number (&map->doubly_buffer,
40014b98: a8 15 00 01 or %l4, %g1, %l4 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40014b9c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
singly = rtems_rfs_block_get_number (&map->doubly_buffer,
40014ba0: a8 15 00 0a or %l4, %o2, %l4 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40014ba4: 7f ff c9 9f call 40007220 <rtems_rfs_buffer_handle_request> <== NOT EXECUTED 40014ba8: 94 10 00 14 mov %l4, %o2 <== NOT EXECUTED
if (rc > 0)
40014bac: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40014bb0: 14 80 00 21 bg 40014c34 <rtems_rfs_block_map_shrink+0x1f0> <== NOT EXECUTED 40014bb4: 85 2c e0 02 sll %l3, 2, %g2 <== NOT EXECUTED
block_to_free = rtems_rfs_block_get_number (&map->singly_buffer,
40014bb8: c2 06 60 40 ld [ %i1 + 0x40 ], %g1 <== NOT EXECUTED 40014bbc: c6 00 60 1c ld [ %g1 + 0x1c ], %g3 <== NOT EXECUTED 40014bc0: e0 08 c0 02 ldub [ %g3 + %g2 ], %l0 <== NOT EXECUTED 40014bc4: 82 00 c0 02 add %g3, %g2, %g1 <== NOT EXECUTED 40014bc8: c6 08 60 03 ldub [ %g1 + 3 ], %g3 <== NOT EXECUTED 40014bcc: c4 08 60 01 ldub [ %g1 + 1 ], %g2 <== NOT EXECUTED 40014bd0: c2 08 60 02 ldub [ %g1 + 2 ], %g1 <== NOT EXECUTED 40014bd4: a1 2c 20 18 sll %l0, 0x18, %l0 <== NOT EXECUTED 40014bd8: 85 28 a0 10 sll %g2, 0x10, %g2 <== NOT EXECUTED 40014bdc: a0 14 00 03 or %l0, %g3, %l0 <== NOT EXECUTED 40014be0: 83 28 60 08 sll %g1, 8, %g1 <== NOT EXECUTED 40014be4: a0 14 00 02 or %l0, %g2, %l0 <== NOT EXECUTED
if (direct == 0)
40014be8: 80 a4 e0 00 cmp %l3, 0 <== NOT EXECUTED 40014bec: 12 bf ff ac bne 40014a9c <rtems_rfs_block_map_shrink+0x58> <== NOT EXECUTED 40014bf0: a0 14 00 01 or %l0, %g1, %l0 <== NOT EXECUTED
rc = rtems_rfs_group_bitmap_free (fs, false, singly);
40014bf4: 94 10 00 14 mov %l4, %o2 <== NOT EXECUTED 40014bf8: 92 10 20 00 clr %o1 <== NOT EXECUTED 40014bfc: 7f ff d0 a7 call 40008e98 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED 40014c00: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
if (rc > 0)
40014c04: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40014c08: 14 80 00 0b bg 40014c34 <rtems_rfs_block_map_shrink+0x1f0> <== NOT EXECUTED 40014c0c: 98 10 00 11 mov %l1, %o4 <== NOT EXECUTED
map->last_map_block = singly;
40014c10: e8 26 60 1c st %l4, [ %i1 + 0x1c ] <== NOT EXECUTED
rc = rtems_rfs_block_map_indirect_shrink (fs, map, &map->doubly_buffer,
40014c14: 96 10 00 12 mov %l2, %o3 <== NOT EXECUTED 40014c18: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED
40014c1c: 92 10 00 19 mov %i1, %o1 40014c20: 7f ff fc 5f call 40013d9c <rtems_rfs_block_map_indirect_shrink> 40014c24: 90 10 00 18 mov %i0, %o0
if (rc)
40014c28: 80 a2 20 00 cmp %o0, 0
40014c2c: 02 bf ff 9d be 40014aa0 <rtems_rfs_block_map_shrink+0x5c> <== ALWAYS TAKEN
40014c30: 94 10 00 10 mov %l0, %o2
*/ if (rtems_rfs_block_pos_past_end (&map->bpos, &map->size)) rtems_rfs_block_size_get_bpos (&map->size, &map->bpos); return 0; }
40014c34: 81 c7 e0 08 ret <== NOT EXECUTED 40014c38: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40014c3c: 82 04 60 08 add %l1, 8, %g1 40014c40: 83 28 60 02 sll %g1, 2, %g1 40014c44: 82 06 40 01 add %i1, %g1, %g1 40014c48: d4 00 60 04 ld [ %g1 + 4 ], %o2 40014c4c: 96 10 20 01 mov 1, %o3 40014c50: 92 10 00 1b mov %i3, %o1 40014c54: 7f ff c9 73 call 40007220 <rtems_rfs_buffer_handle_request> 40014c58: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40014c5c: 80 a2 20 00 cmp %o0, 0
40014c60: 14 bf ff f5 bg 40014c34 <rtems_rfs_block_map_shrink+0x1f0> <== NEVER TAKEN
40014c64: 85 2c e0 02 sll %l3, 2, %g2
block_to_free = rtems_rfs_block_get_number (&map->singly_buffer,
40014c68: c2 06 60 40 ld [ %i1 + 0x40 ], %g1 40014c6c: c6 00 60 1c ld [ %g1 + 0x1c ], %g3 40014c70: e0 08 c0 02 ldub [ %g3 + %g2 ], %l0 40014c74: 82 00 c0 02 add %g3, %g2, %g1 40014c78: c6 08 60 03 ldub [ %g1 + 3 ], %g3 40014c7c: c4 08 60 01 ldub [ %g1 + 1 ], %g2 40014c80: c2 08 60 02 ldub [ %g1 + 2 ], %g1 40014c84: a1 2c 20 18 sll %l0, 0x18, %l0 40014c88: 85 28 a0 10 sll %g2, 0x10, %g2 40014c8c: a0 14 00 03 or %l0, %g3, %l0 40014c90: 83 28 60 08 sll %g1, 8, %g1 40014c94: a0 14 00 02 or %l0, %g2, %l0
rc = rtems_rfs_block_map_indirect_shrink (fs, map, &map->singly_buffer,
40014c98: 98 10 00 13 mov %l3, %o4
block_to_free = rtems_rfs_block_get_number (&map->singly_buffer,
40014c9c: a0 14 00 01 or %l0, %g1, %l0
rc = rtems_rfs_block_map_indirect_shrink (fs, map, &map->singly_buffer,
40014ca0: 96 10 00 11 mov %l1, %o3 40014ca4: 10 bf ff de b 40014c1c <rtems_rfs_block_map_shrink+0x1d8> 40014ca8: 94 10 00 1b mov %i3, %o2
if (map->size.count == 0)
40014cac: 80 a0 60 00 cmp %g1, 0
40014cb0: 22 80 00 14 be,a 40014d00 <rtems_rfs_block_map_shrink+0x2bc>
40014cb4: c0 26 60 1c clr [ %i1 + 0x1c ]
if (rtems_rfs_block_pos_past_end (&map->bpos, &map->size))
40014cb8: c4 06 60 10 ld [ %i1 + 0x10 ], %g2 40014cbc: 80 a0 80 01 cmp %g2, %g1
40014cc0: 1a 80 00 21 bcc 40014d44 <rtems_rfs_block_map_shrink+0x300> <== NEVER TAKEN
40014cc4: 86 00 7f ff add %g1, -1, %g3 40014cc8: 80 a0 80 03 cmp %g2, %g3
40014ccc: 22 80 00 18 be,a 40014d2c <rtems_rfs_block_map_shrink+0x2e8> <== ALWAYS TAKEN
40014cd0: c4 06 60 0c ld [ %i1 + 0xc ], %g2
return 0;
40014cd4: 90 10 20 00 clr %o0
}
40014cd8: 81 c7 e0 08 ret 40014cdc: 91 e8 00 08 restore %g0, %o0, %o0 40014ce0: 10 bf ff 66 b 40014a78 <rtems_rfs_block_map_shrink+0x34> 40014ce4: ba 10 00 1a mov %i2, %i5
printf ("rtems-rfs: block-map-shrink: entry: blocks=%zd count=%" PRIu32 "\n",
40014ce8: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 40014cec: 11 10 00 8d sethi %hi(0x40023400), %o0 <== NOT EXECUTED 40014cf0: 7f ff b8 02 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40014cf4: 90 12 22 30 or %o0, 0x230, %o0 ! 40023630 <IMFS_LIMITS_AND_OPTIONS+0xf0> <== NOT EXECUTED
if (map->size.count == 0)
40014cf8: 10 bf ff 5b b 40014a64 <rtems_rfs_block_map_shrink+0x20> <== NOT EXECUTED 40014cfc: c2 06 60 08 ld [ %i1 + 8 ], %g1 <== NOT EXECUTED
map->last_data_block = 0;
40014d00: c0 26 60 20 clr [ %i1 + 0x20 ]
rtems_rfs_block_size_get_bpos (&map->size, &map->bpos);
40014d04: c4 06 60 0c ld [ %i1 + 0xc ], %g2 40014d08: c2 26 60 10 st %g1, [ %i1 + 0x10 ] 40014d0c: 80 a0 a0 00 cmp %g2, 0 40014d10: c4 26 60 14 st %g2, [ %i1 + 0x14 ]
40014d14: 02 bf ff f0 be 40014cd4 <rtems_rfs_block_map_shrink+0x290> <== ALWAYS TAKEN
40014d18: c0 26 60 18 clr [ %i1 + 0x18 ]
40014d1c: 82 00 7f ff add %g1, -1, %g1 <== NOT EXECUTED
return 0;
40014d20: 90 10 20 00 clr %o0 <== NOT EXECUTED
rtems_rfs_block_size_get_bpos (&map->size, &map->bpos);
40014d24: 10 bf ff c4 b 40014c34 <rtems_rfs_block_map_shrink+0x1f0> <== NOT EXECUTED 40014d28: c2 26 60 10 st %g1, [ %i1 + 0x10 ] <== NOT EXECUTED
if (rtems_rfs_block_pos_past_end (&map->bpos, &map->size))
40014d2c: c6 06 60 14 ld [ %i1 + 0x14 ], %g3 40014d30: 80 a0 c0 02 cmp %g3, %g2
40014d34: 38 bf ff f6 bgu,a 40014d0c <rtems_rfs_block_map_shrink+0x2c8> <== ALWAYS TAKEN
40014d38: c2 26 60 10 st %g1, [ %i1 + 0x10 ]
return 0;
40014d3c: 10 bf ff e7 b 40014cd8 <rtems_rfs_block_map_shrink+0x294> <== NOT EXECUTED 40014d40: 90 10 20 00 clr %o0 <== NOT EXECUTED
rtems_rfs_block_size_get_bpos (&map->size, &map->bpos);
40014d44: 10 bf ff f1 b 40014d08 <rtems_rfs_block_map_shrink+0x2c4> <== NOT EXECUTED 40014d48: c4 06 60 0c ld [ %i1 + 0xc ], %g2 <== NOT EXECUTED
40014dac <rtems_rfs_buffer_bdbuf_release>: int rtems_rfs_buffer_bdbuf_release (rtems_rfs_buffer* buffer, bool modified) {
40014dac: 9d e3 bf a0 save %sp, -96, %sp
rtems_status_code sc; int rc = 0; if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_RELEASE))
40014db0: 90 10 20 00 clr %o0 40014db4: 7f ff d7 84 call 4000abc4 <rtems_rfs_trace> 40014db8: 92 10 20 40 mov 0x40, %o1 40014dbc: 80 a2 20 00 cmp %o0, 0
40014dc0: 02 80 00 0b be 40014dec <rtems_rfs_buffer_bdbuf_release+0x40> <== ALWAYS TAKEN
40014dc4: 80 a6 60 00 cmp %i1, 0
printf ("rtems-rfs: bdbuf-release: block=%" PRIuPTR " bdbuf=%" PRIu32 " %s\n",
40014dc8: d2 06 20 34 ld [ %i0 + 0x34 ], %o1 <== NOT EXECUTED 40014dcc: 12 80 00 18 bne 40014e2c <rtems_rfs_buffer_bdbuf_release+0x80> <== NOT EXECUTED 40014dd0: d4 06 20 18 ld [ %i0 + 0x18 ], %o2 <== NOT EXECUTED 40014dd4: 17 10 00 84 sethi %hi(0x40021000), %o3 <== NOT EXECUTED 40014dd8: 96 12 e3 58 or %o3, 0x358, %o3 ! 40021358 <_rodata_start+0x898> <== NOT EXECUTED 40014ddc: 11 10 00 8d sethi %hi(0x40023400), %o0 <== NOT EXECUTED 40014de0: 7f ff b7 c6 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40014de4: 90 12 22 80 or %o0, 0x280, %o0 ! 40023680 <IMFS_LIMITS_AND_OPTIONS+0x140><== NOT EXECUTED
((intptr_t) buffer->user), buffer->block, modified ? "(modified)" : ""); if (modified)
40014de8: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED
40014dec: 02 80 00 09 be 40014e10 <rtems_rfs_buffer_bdbuf_release+0x64>
40014df0: 90 10 00 18 mov %i0, %o0
sc = rtems_bdbuf_release_modified (buffer);
40014df4: 7f ff f5 0f call 40012230 <rtems_bdbuf_release_modified> 40014df8: 01 00 00 00 nop
#if RTEMS_RFS_BUFFER_ERRORS printf ("rtems-rfs: buffer-release: bdbuf-%s: %s(%d)\n", modified ? "modified" : "not-modified", rtems_status_text (sc), sc); #endif rc = EIO;
40014dfc: 80 a0 00 08 cmp %g0, %o0 40014e00: b0 40 3f ff addx %g0, -1, %i0 40014e04: b0 0e 3f fb and %i0, -5, %i0
} return rc; }
40014e08: 81 c7 e0 08 ret 40014e0c: 91 ee 20 05 restore %i0, 5, %o0
sc = rtems_bdbuf_release (buffer);
40014e10: 7f ff f4 c1 call 40012114 <rtems_bdbuf_release> 40014e14: 01 00 00 00 nop
rc = EIO;
40014e18: 80 a0 00 08 cmp %g0, %o0 40014e1c: b0 40 3f ff addx %g0, -1, %i0 40014e20: b0 0e 3f fb and %i0, -5, %i0
}
40014e24: 81 c7 e0 08 ret 40014e28: 91 ee 20 05 restore %i0, 5, %o0
printf ("rtems-rfs: bdbuf-release: block=%" PRIuPTR " bdbuf=%" PRIu32 " %s\n",
40014e2c: 17 10 00 8d sethi %hi(0x40023400), %o3 <== NOT EXECUTED 40014e30: 10 bf ff eb b 40014ddc <rtems_rfs_buffer_bdbuf_release+0x30> <== NOT EXECUTED 40014e34: 96 12 e2 70 or %o3, 0x270, %o3 ! 40023670 <IMFS_LIMITS_AND_OPTIONS+0x130><== NOT EXECUTED
40007920 <rtems_rfs_buffer_close>: {
40007920: 9d e3 bf a0 save %sp, -96, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
40007924: 90 10 20 00 clr %o0 40007928: 92 10 20 10 mov 0x10, %o1 4000792c: 40 00 0c a6 call 4000abc4 <rtems_rfs_trace> 40007930: ba 10 00 18 mov %i0, %i5 40007934: 80 a2 20 00 cmp %o0, 0
40007938: 12 80 00 30 bne 400079f8 <rtems_rfs_buffer_close+0xd8> <== NEVER TAKEN
4000793c: 11 10 00 88 sethi %hi(0x40022000), %o0
rc = rtems_rfs_buffer_setblksize (fs, rtems_rfs_fs_media_block_size (fs));
40007940: c2 07 60 10 ld [ %i5 + 0x10 ], %g1 40007944: d2 00 60 20 ld [ %g1 + 0x20 ], %o1 40007948: 7f ff ff b5 call 4000781c <rtems_rfs_buffer_setblksize> 4000794c: 90 10 00 1d mov %i5, %o0
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
40007950: b0 92 20 00 orcc %o0, 0, %i0
40007954: 14 80 00 1c bg 400079c4 <rtems_rfs_buffer_close+0xa4> <== NEVER TAKEN
40007958: 90 10 20 00 clr %o0
if (close (fs->device) < 0)
4000795c: 40 00 2c bc call 40012c4c <close> 40007960: d0 07 60 0c ld [ %i5 + 0xc ], %o0 40007964: 80 a2 20 00 cmp %o0, 0
40007968: 06 80 00 04 bl 40007978 <rtems_rfs_buffer_close+0x58> <== NEVER TAKEN
4000796c: 01 00 00 00 nop
}
40007970: 81 c7 e0 08 ret 40007974: 81 e8 00 00 restore
rc = errno;
40007978: 40 00 5a 69 call 4001e31c <__errno> <== NOT EXECUTED 4000797c: 01 00 00 00 nop <== NOT EXECUTED 40007980: 82 10 00 08 mov %o0, %g1 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
40007984: 92 10 20 10 mov 0x10, %o1 <== NOT EXECUTED
rc = errno;
40007988: f0 00 40 00 ld [ %g1 ], %i0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
4000798c: 40 00 0c 8e call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40007990: 90 10 20 00 clr %o0 <== NOT EXECUTED 40007994: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40007998: 02 80 00 09 be 400079bc <rtems_rfs_buffer_close+0x9c> <== NOT EXECUTED 4000799c: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: buffer-close: file close failed: %d: %s\n",
400079a0: 40 00 5f 1b call 4001f60c <strerror> <== NOT EXECUTED 400079a4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400079a8: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400079ac: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400079b0: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 400079b4: 7f ff ec d1 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400079b8: 90 12 22 98 or %o0, 0x298, %o0 ! 40022298 <IMFS_node_control_sym_link+0x510><== NOT EXECUTED
}
400079bc: 81 c7 e0 08 ret <== NOT EXECUTED 400079c0: 81 e8 00 00 restore <== NOT EXECUTED
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
400079c4: 40 00 0c 80 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400079c8: 92 10 20 10 mov 0x10, %o1 <== NOT EXECUTED 400079cc: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400079d0: 02 bf ff e3 be 4000795c <rtems_rfs_buffer_close+0x3c> <== NOT EXECUTED 400079d4: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: buffer-close: set media block size failed: %d: %s\n",
400079d8: 40 00 5f 0d call 4001f60c <strerror> <== NOT EXECUTED 400079dc: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400079e0: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400079e4: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400079e8: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 400079ec: 7f ff ec c3 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400079f0: 90 12 22 58 or %o0, 0x258, %o0 ! 40022258 <IMFS_node_control_sym_link+0x4d0><== NOT EXECUTED 400079f4: 30 bf ff da b,a 4000795c <rtems_rfs_buffer_close+0x3c> <== NOT EXECUTED
printf ("rtems-rfs: buffer-close: closing\n");
400079f8: 7f ff ec ce call 40002d30 <__wrap_puts> <== NOT EXECUTED 400079fc: 90 12 22 30 or %o0, 0x230, %o0 <== NOT EXECUTED
rc = rtems_rfs_buffer_setblksize (fs, rtems_rfs_fs_media_block_size (fs));
40007a00: 10 bf ff d1 b 40007944 <rtems_rfs_buffer_close+0x24> <== NOT EXECUTED 40007a04: c2 07 60 10 ld [ %i5 + 0x10 ], %g1 <== NOT EXECUTED
40006fe0 <rtems_rfs_buffer_handle_release.part.0>: rtems_rfs_buffer_handle_release (rtems_rfs_file_system* fs,
40006fe0: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_RELEASE))
40006fe4: 90 10 20 00 clr %o0 <== NOT EXECUTED 40006fe8: 92 10 22 00 mov 0x200, %o1 <== NOT EXECUTED 40006fec: 40 00 0e f6 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40006ff0: ba 10 00 18 mov %i0, %i5 <== NOT EXECUTED 40006ff4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40006ff8: 22 80 00 12 be,a 40007040 <rtems_rfs_buffer_handle_release.part.0+0x60> <== NOT EXECUTED 40006ffc: c2 06 60 08 ld [ %i1 + 8 ], %g1 <== NOT EXECUTED
printf ("rtems-rfs: buffer-release: block=%" PRIu32 " %s refs=%d %s\n",
40007000: c2 0e 40 00 ldub [ %i1 ], %g1 <== NOT EXECUTED 40007004: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40007008: 12 80 00 3b bne 400070f4 <rtems_rfs_buffer_handle_release.part.0+0x114> <== NOT EXECUTED 4000700c: d2 06 60 04 ld [ %i1 + 4 ], %o1 <== NOT EXECUTED 40007010: c2 06 60 08 ld [ %i1 + 8 ], %g1 <== NOT EXECUTED 40007014: d6 00 60 30 ld [ %g1 + 0x30 ], %o3 <== NOT EXECUTED 40007018: 15 10 00 84 sethi %hi(0x40021000), %o2 <== NOT EXECUTED 4000701c: 80 a2 e0 00 cmp %o3, 0 <== NOT EXECUTED 40007020: 02 80 00 3b be 4000710c <rtems_rfs_buffer_handle_release.part.0+0x12c> <== NOT EXECUTED 40007024: 94 12 a3 58 or %o2, 0x358, %o2 <== NOT EXECUTED 40007028: 19 10 00 84 sethi %hi(0x40021000), %o4 <== NOT EXECUTED 4000702c: 98 13 23 58 or %o4, 0x358, %o4 ! 40021358 <_rodata_start+0x898> <== NOT EXECUTED 40007030: 11 10 00 87 sethi %hi(0x40021c00), %o0 <== NOT EXECUTED 40007034: 7f ff ef 31 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007038: 90 12 22 38 or %o0, 0x238, %o0 ! 40021e38 <IMFS_node_control_sym_link+0xb0><== NOT EXECUTED
if (rtems_rfs_buffer_refs (handle) > 0)
4000703c: c2 06 60 08 ld [ %i1 + 8 ], %g1 <== NOT EXECUTED 40007040: f0 00 60 30 ld [ %g1 + 0x30 ], %i0 <== NOT EXECUTED 40007044: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 40007048: 04 80 00 05 ble 4000705c <rtems_rfs_buffer_handle_release.part.0+0x7c> <== NOT EXECUTED 4000704c: 01 00 00 00 nop <== NOT EXECUTED
rtems_rfs_buffer_refs_down (handle);
40007050: b0 06 3f ff add %i0, -1, %i0 <== NOT EXECUTED 40007054: f0 20 60 30 st %i0, [ %g1 + 0x30 ] <== NOT EXECUTED
if (rtems_rfs_buffer_refs (handle) == 0)
40007058: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 4000705c: 32 80 00 24 bne,a 400070ec <rtems_rfs_buffer_handle_release.part.0+0x10c><== NOT EXECUTED 40007060: c0 26 60 08 clr [ %i1 + 8 ] <== NOT EXECUTED
next = the_node->next;
40007064: c8 00 40 00 ld [ %g1 ], %g4 <== NOT EXECUTED
previous = the_node->previous;
40007068: c6 00 60 04 ld [ %g1 + 4 ], %g3 <== NOT EXECUTED
next->previous = previous;
4000706c: c6 21 20 04 st %g3, [ %g4 + 4 ] <== NOT EXECUTED
fs->buffers_count--;
40007070: c4 07 60 50 ld [ %i5 + 0x50 ], %g2 <== NOT EXECUTED
previous->next = next;
40007074: c8 20 c0 00 st %g4, [ %g3 ] <== NOT EXECUTED 40007078: 84 00 bf ff add %g2, -1, %g2 <== NOT EXECUTED 4000707c: c4 27 60 50 st %g2, [ %i5 + 0x50 ] <== NOT EXECUTED
if (rtems_rfs_fs_no_local_cache (fs))
40007080: c4 07 40 00 ld [ %i5 ], %g2 <== NOT EXECUTED 40007084: 80 88 a0 02 btst 2, %g2 <== NOT EXECUTED 40007088: 32 80 00 2f bne,a 40007144 <rtems_rfs_buffer_handle_release.part.0+0x164><== NOT EXECUTED 4000708c: c0 20 60 34 clr [ %g1 + 0x34 ] <== NOT EXECUTED
if ((fs->release_count +
40007090: c4 07 60 60 ld [ %i5 + 0x60 ], %g2 <== NOT EXECUTED 40007094: c8 07 60 70 ld [ %i5 + 0x70 ], %g4 <== NOT EXECUTED 40007098: c6 07 60 40 ld [ %i5 + 0x40 ], %g3 <== NOT EXECUTED 4000709c: 84 00 80 04 add %g2, %g4, %g2 <== NOT EXECUTED 400070a0: 80 a0 80 03 cmp %g2, %g3 <== NOT EXECUTED 400070a4: 3a 80 00 2e bcc,a 4000715c <rtems_rfs_buffer_handle_release.part.0+0x17c><== NOT EXECUTED 400070a8: 90 10 20 00 clr %o0 <== NOT EXECUTED
if (rtems_rfs_buffer_dirty (handle))
400070ac: c4 0e 40 00 ldub [ %i1 ], %g2 <== NOT EXECUTED 400070b0: 80 a0 a0 00 cmp %g2, 0 <== NOT EXECUTED 400070b4: 22 80 00 19 be,a 40007118 <rtems_rfs_buffer_handle_release.part.0+0x138><== NOT EXECUTED 400070b8: c6 07 60 5c ld [ %i5 + 0x5c ], %g3 <== NOT EXECUTED
old_last = tail->previous;
400070bc: c6 07 60 6c ld [ %i5 + 0x6c ], %g3 <== NOT EXECUTED
return &the_chain->Tail.Node;
400070c0: 84 07 60 68 add %i5, 0x68, %g2 <== NOT EXECUTED
the_node->next = tail;
400070c4: c4 20 40 00 st %g2, [ %g1 ] <== NOT EXECUTED
tail->previous = the_node;
400070c8: c2 27 60 6c st %g1, [ %i5 + 0x6c ] <== NOT EXECUTED
old_last->next = the_node;
400070cc: c2 20 c0 00 st %g1, [ %g3 ] <== NOT EXECUTED
fs->release_modified_count++;
400070d0: c4 07 60 70 ld [ %i5 + 0x70 ], %g2 <== NOT EXECUTED
the_node->previous = old_last;
400070d4: c6 20 60 04 st %g3, [ %g1 + 4 ] <== NOT EXECUTED 400070d8: 84 00 a0 01 inc %g2 <== NOT EXECUTED 400070dc: c4 27 60 70 st %g2, [ %i5 + 0x70 ] <== NOT EXECUTED
handle->buffer = NULL;
400070e0: c0 26 60 08 clr [ %i1 + 8 ] <== NOT EXECUTED
}
400070e4: 81 c7 e0 08 ret <== NOT EXECUTED 400070e8: 81 e8 00 00 restore <== NOT EXECUTED 400070ec: 81 c7 e0 08 ret <== NOT EXECUTED 400070f0: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED
printf ("rtems-rfs: buffer-release: block=%" PRIu32 " %s refs=%d %s\n",
400070f4: c2 06 60 08 ld [ %i1 + 8 ], %g1 <== NOT EXECUTED 400070f8: d6 00 60 30 ld [ %g1 + 0x30 ], %o3 <== NOT EXECUTED 400070fc: 15 10 00 87 sethi %hi(0x40021c00), %o2 <== NOT EXECUTED 40007100: 80 a2 e0 00 cmp %o3, 0 <== NOT EXECUTED 40007104: 12 bf ff c9 bne 40007028 <rtems_rfs_buffer_handle_release.part.0+0x48> <== NOT EXECUTED 40007108: 94 12 a2 20 or %o2, 0x220, %o2 <== NOT EXECUTED 4000710c: 19 10 00 87 sethi %hi(0x40021c00), %o4 <== NOT EXECUTED 40007110: 10 bf ff c8 b 40007030 <rtems_rfs_buffer_handle_release.part.0+0x50> <== NOT EXECUTED 40007114: 98 13 22 28 or %o4, 0x228, %o4 ! 40021e28 <IMFS_node_control_sym_link+0xa0><== NOT EXECUTED
return &the_chain->Tail.Node;
40007118: 84 07 60 58 add %i5, 0x58, %g2 <== NOT EXECUTED
the_node->next = tail;
4000711c: c4 20 40 00 st %g2, [ %g1 ] <== NOT EXECUTED
tail->previous = the_node;
40007120: c2 27 60 5c st %g1, [ %i5 + 0x5c ] <== NOT EXECUTED
old_last->next = the_node;
40007124: c2 20 c0 00 st %g1, [ %g3 ] <== NOT EXECUTED
fs->release_count++;
40007128: c4 07 60 60 ld [ %i5 + 0x60 ], %g2 <== NOT EXECUTED
the_node->previous = old_last;
4000712c: c6 20 60 04 st %g3, [ %g1 + 4 ] <== NOT EXECUTED 40007130: 84 00 a0 01 inc %g2 <== NOT EXECUTED 40007134: c4 27 60 60 st %g2, [ %i5 + 0x60 ] <== NOT EXECUTED
handle->buffer = NULL;
40007138: c0 26 60 08 clr [ %i1 + 8 ] <== NOT EXECUTED
}
4000713c: 81 c7 e0 08 ret <== NOT EXECUTED 40007140: 81 e8 00 00 restore <== NOT EXECUTED
rc = rtems_rfs_buffer_io_release (handle->buffer,
40007144: 90 10 00 01 mov %g1, %o0 <== NOT EXECUTED 40007148: 40 00 37 19 call 40014dac <rtems_rfs_buffer_bdbuf_release> <== NOT EXECUTED 4000714c: d2 0e 40 00 ldub [ %i1 ], %o1 <== NOT EXECUTED
handle->buffer = NULL;
40007150: c0 26 60 08 clr [ %i1 + 8 ] <== NOT EXECUTED
}
40007154: 81 c7 e0 08 ret <== NOT EXECUTED 40007158: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_RELEASE))
4000715c: 40 00 0e 9a call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40007160: 92 10 22 00 mov 0x200, %o1 <== NOT EXECUTED 40007164: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40007168: 32 80 00 27 bne,a 40007204 <rtems_rfs_buffer_handle_release.part.0+0x224><== NOT EXECUTED 4000716c: d2 07 60 60 ld [ %i5 + 0x60 ], %o1 <== NOT EXECUTED
if (fs->release_count > fs->release_modified_count)
40007170: c4 07 60 60 ld [ %i5 + 0x60 ], %g2 <== NOT EXECUTED 40007174: c2 07 60 70 ld [ %i5 + 0x70 ], %g1 <== NOT EXECUTED 40007178: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 4000717c: 28 80 00 0e bleu,a 400071b4 <rtems_rfs_buffer_handle_release.part.0+0x1d4><== NOT EXECUTED 40007180: d0 07 60 64 ld [ %i5 + 0x64 ], %o0 <== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
40007184: d0 07 60 54 ld [ %i5 + 0x54 ], %o0 <== NOT EXECUTED
return &the_chain->Tail.Node;
40007188: 82 07 60 58 add %i5, 0x58, %g1 <== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
4000718c: 80 a2 00 01 cmp %o0, %g1 <== NOT EXECUTED 40007190: 02 80 00 19 be 400071f4 <rtems_rfs_buffer_handle_release.part.0+0x214> <== NOT EXECUTED 40007194: 86 07 60 54 add %i5, 0x54, %g3 <== NOT EXECUTED
new_first = old_first->next;
40007198: c2 02 00 00 ld [ %o0 ], %g1 <== NOT EXECUTED
head->next = new_first;
4000719c: c2 27 60 54 st %g1, [ %i5 + 0x54 ] <== NOT EXECUTED
new_first->previous = head;
400071a0: c6 20 60 04 st %g3, [ %g1 + 4 ] <== NOT EXECUTED
fs->release_count--;
400071a4: 84 00 bf ff add %g2, -1, %g2 <== NOT EXECUTED
modified = false;
400071a8: 92 10 20 00 clr %o1 <== NOT EXECUTED 400071ac: 10 80 00 0c b 400071dc <rtems_rfs_buffer_handle_release.part.0+0x1fc> <== NOT EXECUTED 400071b0: c4 27 60 60 st %g2, [ %i5 + 0x60 ] <== NOT EXECUTED
return &the_chain->Tail.Node;
400071b4: 84 07 60 68 add %i5, 0x68, %g2 <== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
400071b8: 80 a2 00 02 cmp %o0, %g2 <== NOT EXECUTED 400071bc: 02 80 00 10 be 400071fc <rtems_rfs_buffer_handle_release.part.0+0x21c> <== NOT EXECUTED 400071c0: 86 07 60 64 add %i5, 0x64, %g3 <== NOT EXECUTED
new_first = old_first->next;
400071c4: c4 02 00 00 ld [ %o0 ], %g2 <== NOT EXECUTED
head->next = new_first;
400071c8: c4 27 60 64 st %g2, [ %i5 + 0x64 ] <== NOT EXECUTED
new_first->previous = head;
400071cc: c6 20 a0 04 st %g3, [ %g2 + 4 ] <== NOT EXECUTED
fs->release_modified_count--;
400071d0: 82 00 7f ff add %g1, -1, %g1 <== NOT EXECUTED 400071d4: c2 27 60 70 st %g1, [ %i5 + 0x70 ] <== NOT EXECUTED
modified = true;
400071d8: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED
buffer->user = (void*) 0;
400071dc: c0 22 20 34 clr [ %o0 + 0x34 ] <== NOT EXECUTED
rc = rtems_rfs_buffer_io_release (buffer, modified);
400071e0: 40 00 36 f3 call 40014dac <rtems_rfs_buffer_bdbuf_release> <== NOT EXECUTED 400071e4: 92 0a 60 01 and %o1, 1, %o1 <== NOT EXECUTED
rtems_rfs_buffer_link (handle));
400071e8: c2 06 60 08 ld [ %i1 + 8 ], %g1 <== NOT EXECUTED
rc = rtems_rfs_buffer_io_release (buffer, modified);
400071ec: 10 bf ff b0 b 400070ac <rtems_rfs_buffer_handle_release.part.0+0xcc> <== NOT EXECUTED 400071f0: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED
return NULL;
400071f4: 10 bf ff ec b 400071a4 <rtems_rfs_buffer_handle_release.part.0+0x1c4> <== NOT EXECUTED 400071f8: 90 10 20 00 clr %o0 <== NOT EXECUTED 400071fc: 10 bf ff f5 b 400071d0 <rtems_rfs_buffer_handle_release.part.0+0x1f0> <== NOT EXECUTED 40007200: 90 10 20 00 clr %o0 <== NOT EXECUTED
printf ("rtems-rfs: buffer-release: local cache overflow:"
40007204: c2 07 60 70 ld [ %i5 + 0x70 ], %g1 <== NOT EXECUTED 40007208: 92 02 40 01 add %o1, %g1, %o1 <== NOT EXECUTED 4000720c: 11 10 00 87 sethi %hi(0x40021c00), %o0 <== NOT EXECUTED 40007210: 7f ff ee ba call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007214: 90 12 22 70 or %o0, 0x270, %o0 ! 40021e70 <IMFS_node_control_sym_link+0xe8><== NOT EXECUTED
if (fs->release_count > fs->release_modified_count)
40007218: 10 bf ff d7 b 40007174 <rtems_rfs_buffer_handle_release.part.0+0x194> <== NOT EXECUTED 4000721c: c4 07 60 60 ld [ %i5 + 0x60 ], %g2 <== NOT EXECUTED
40007220 <rtems_rfs_buffer_handle_request>: {
40007220: 9d e3 bf 98 save %sp, -104, %sp
if (rtems_rfs_buffer_handle_has_block (handle))
40007224: c2 06 60 08 ld [ %i1 + 8 ], %g1 40007228: 80 a0 60 00 cmp %g1, 0
4000722c: 02 80 00 1a be 40007294 <rtems_rfs_buffer_handle_request+0x74>
40007230: ba 10 00 18 mov %i0, %i5
if (block && (rtems_rfs_buffer_bnum (handle) == block))
40007234: 80 a6 a0 00 cmp %i2, 0
40007238: 02 80 00 06 be 40007250 <rtems_rfs_buffer_handle_request+0x30> <== NEVER TAKEN
4000723c: 90 10 20 00 clr %o0 40007240: c2 06 60 04 ld [ %i1 + 4 ], %g1 40007244: 80 a0 40 1a cmp %g1, %i2
40007248: 02 80 00 79 be 4000742c <rtems_rfs_buffer_handle_request+0x20c>
4000724c: 01 00 00 00 nop
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
40007250: 40 00 0e 5d call 4000abc4 <rtems_rfs_trace> 40007254: 92 10 21 00 mov 0x100, %o1 ! 100 <_TLS_Alignment+0xff> 40007258: 80 a2 20 00 cmp %o0, 0
4000725c: 32 80 00 6b bne,a 40007408 <rtems_rfs_buffer_handle_request+0x1e8> <== NEVER TAKEN
40007260: d2 06 60 04 ld [ %i1 + 4 ], %o1 <== NOT EXECUTED
if (rtems_rfs_buffer_handle_has_block (handle))
40007264: c2 06 60 08 ld [ %i1 + 8 ], %g1 40007268: 80 a0 60 00 cmp %g1, 0
4000726c: 22 80 00 09 be,a 40007290 <rtems_rfs_buffer_handle_request+0x70> <== NEVER TAKEN
40007270: c0 2e 40 00 clrb [ %i1 ] <== NOT EXECUTED
40007274: 92 10 00 19 mov %i1, %o1 40007278: 7f ff ff 5a call 40006fe0 <rtems_rfs_buffer_handle_release.part.0> 4000727c: 90 10 00 1d mov %i5, %o0
if (rc > 0)
40007280: b0 92 20 00 orcc %o0, 0, %i0
40007284: 14 80 00 a3 bg 40007510 <rtems_rfs_buffer_handle_request+0x2f0> <== NEVER TAKEN
40007288: 01 00 00 00 nop
handle->dirty = false;
4000728c: c0 2e 40 00 clrb [ %i1 ]
handle->bnum = 0;
40007290: c0 26 60 04 clr [ %i1 + 4 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
40007294: 90 10 20 00 clr %o0 40007298: 40 00 0e 4b call 4000abc4 <rtems_rfs_trace> 4000729c: 92 10 21 00 mov 0x100, %o1 400072a0: 80 a2 20 00 cmp %o0, 0
400072a4: 32 80 00 50 bne,a 400073e4 <rtems_rfs_buffer_handle_request+0x1c4> <== NEVER TAKEN
400072a8: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED
if (fs->buffers_count)
400072ac: c2 07 60 50 ld [ %i5 + 0x50 ], %g1 400072b0: 80 a0 60 00 cmp %g1, 0
400072b4: 12 80 00 38 bne 40007394 <rtems_rfs_buffer_handle_request+0x174>
400072b8: 94 10 00 1a mov %i2, %o2
if (!rtems_rfs_fs_no_local_cache (fs) &&
400072bc: c4 07 40 00 ld [ %i5 ], %g2 400072c0: 80 88 a0 02 btst 2, %g2
400072c4: 12 80 00 26 bne 4000735c <rtems_rfs_buffer_handle_request+0x13c>
400072c8: c2 06 60 08 ld [ %i1 + 8 ], %g1 400072cc: 80 a0 60 00 cmp %g1, 0
400072d0: 22 80 00 69 be,a 40007474 <rtems_rfs_buffer_handle_request+0x254>
400072d4: c2 07 60 60 ld [ %i5 + 0x60 ], %g1
rtems_rfs_buffer_refs_up (handle);
400072d8: c4 00 60 30 ld [ %g1 + 0x30 ], %g2
old_last = tail->previous;
400072dc: c6 07 60 4c ld [ %i5 + 0x4c ], %g3
return &the_chain->Tail.Node;
400072e0: 88 07 60 48 add %i5, 0x48, %g4 400072e4: 84 00 a0 01 inc %g2
the_node->next = tail;
400072e8: c8 20 40 00 st %g4, [ %g1 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
400072ec: 90 10 20 00 clr %o0
rtems_rfs_buffer_refs_up (handle);
400072f0: c4 20 60 30 st %g2, [ %g1 + 0x30 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
400072f4: 92 10 21 00 mov 0x100, %o1
tail->previous = the_node;
400072f8: c2 27 60 4c st %g1, [ %i5 + 0x4c ]
old_last->next = the_node;
400072fc: c2 20 c0 00 st %g1, [ %g3 ]
fs->buffers_count++;
40007300: c4 07 60 50 ld [ %i5 + 0x50 ], %g2
the_node->previous = old_last;
40007304: c6 20 60 04 st %g3, [ %g1 + 4 ] 40007308: 84 00 a0 01 inc %g2 4000730c: c4 27 60 50 st %g2, [ %i5 + 0x50 ]
handle->buffer->user = (void*) ((intptr_t) block);
40007310: f4 20 60 34 st %i2, [ %g1 + 0x34 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
40007314: 40 00 0e 2c call 4000abc4 <rtems_rfs_trace> 40007318: f4 26 60 04 st %i2, [ %i1 + 4 ] 4000731c: 80 a2 20 00 cmp %o0, 0
40007320: 02 80 00 43 be 4000742c <rtems_rfs_buffer_handle_request+0x20c> <== ALWAYS TAKEN
40007324: 80 a6 e0 00 cmp %i3, 0
printf ("rtems-rfs: buffer-request: block=%" PRIu32 " bdbuf-%s=%" PRIu32 " refs=%d\n",
40007328: 12 80 00 43 bne 40007434 <rtems_rfs_buffer_handle_request+0x214> <== NOT EXECUTED 4000732c: c2 06 60 08 ld [ %i1 + 8 ], %g1 <== NOT EXECUTED 40007330: d8 00 60 30 ld [ %g1 + 0x30 ], %o4 <== NOT EXECUTED 40007334: d6 00 60 18 ld [ %g1 + 0x18 ], %o3 <== NOT EXECUTED
return 0;
40007338: b0 10 20 00 clr %i0 <== NOT EXECUTED
printf ("rtems-rfs: buffer-request: block=%" PRIu32 " bdbuf-%s=%" PRIu32 " refs=%d\n",
4000733c: 15 10 00 87 sethi %hi(0x40021c00), %o2 <== NOT EXECUTED 40007340: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 40007344: 94 12 a2 b0 or %o2, 0x2b0, %o2 <== NOT EXECUTED 40007348: 11 10 00 87 sethi %hi(0x40021c00), %o0 <== NOT EXECUTED 4000734c: 7f ff ee 6b call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007350: 90 12 23 88 or %o0, 0x388, %o0 ! 40021f88 <IMFS_node_control_sym_link+0x200><== NOT EXECUTED 40007354: 81 c7 e0 08 ret <== NOT EXECUTED 40007358: 81 e8 00 00 restore <== NOT EXECUTED
if (!rtems_rfs_buffer_handle_has_block (handle))
4000735c: 80 a0 60 00 cmp %g1, 0
40007360: 32 bf ff df bne,a 400072dc <rtems_rfs_buffer_handle_request+0xbc> <== NEVER TAKEN
40007364: c4 00 60 30 ld [ %g1 + 0x30 ], %g2 <== NOT EXECUTED
rc = rtems_rfs_buffer_io_request (fs, block, read, &handle->buffer);
40007368: 96 06 60 08 add %i1, 8, %o3 4000736c: 94 10 00 1b mov %i3, %o2 40007370: 92 10 00 1a mov %i2, %o1 40007374: 40 00 36 7a call 40014d5c <rtems_rfs_buffer_bdbuf_request> 40007378: 90 10 00 1d mov %i5, %o0
if (rc > 0)
4000737c: b0 92 20 00 orcc %o0, 0, %i0
40007380: 14 80 00 4f bg 400074bc <rtems_rfs_buffer_handle_request+0x29c> <== NEVER TAKEN
40007384: 90 10 20 00 clr %o0
rtems_chain_set_off_chain (rtems_rfs_buffer_link(handle));
40007388: c2 06 60 08 ld [ %i1 + 8 ], %g1
RTEMS_INLINE_ROUTINE void rtems_chain_set_off_chain( rtems_chain_node *node ) { _Chain_Set_off_chain( node ); }
4000738c: 10 bf ff d3 b 400072d8 <rtems_rfs_buffer_handle_request+0xb8> 40007390: c0 20 40 00 clr [ %g1 ]
handle->buffer = rtems_rfs_scan_chain (&fs->buffers,
40007394: 92 07 60 50 add %i5, 0x50, %o1 40007398: 7f ff fe 9f call 40006e14 <rtems_rfs_scan_chain> 4000739c: 90 07 60 44 add %i5, 0x44, %o0
if (rtems_rfs_buffer_handle_has_block (handle) &&
400073a0: 80 a2 20 00 cmp %o0, 0
400073a4: 02 80 00 2f be 40007460 <rtems_rfs_buffer_handle_request+0x240>
400073a8: d0 26 60 08 st %o0, [ %i1 + 8 ]
rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
400073ac: 90 10 20 00 clr %o0 400073b0: 40 00 0e 05 call 4000abc4 <rtems_rfs_trace> 400073b4: 92 10 21 00 mov 0x100, %o1
if (rtems_rfs_buffer_handle_has_block (handle) &&
400073b8: 80 a2 20 00 cmp %o0, 0
400073bc: 22 bf ff c1 be,a 400072c0 <rtems_rfs_buffer_handle_request+0xa0> <== ALWAYS TAKEN
400073c0: c4 07 40 00 ld [ %i5 ], %g2
rtems_rfs_buffer_refs (handle) + 1);
400073c4: c2 06 60 08 ld [ %i1 + 8 ], %g1 <== NOT EXECUTED
printf ("rtems-rfs: buffer-request: buffer shared: refs: %d\n",
400073c8: d2 00 60 30 ld [ %g1 + 0x30 ], %o1 <== NOT EXECUTED 400073cc: 92 02 60 01 inc %o1 <== NOT EXECUTED 400073d0: 11 10 00 87 sethi %hi(0x40021c00), %o0 <== NOT EXECUTED 400073d4: 7f ff ee 49 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400073d8: 90 12 23 18 or %o0, 0x318, %o0 ! 40021f18 <IMFS_node_control_sym_link+0x190><== NOT EXECUTED
if (!rtems_rfs_fs_no_local_cache (fs) &&
400073dc: 10 bf ff b9 b 400072c0 <rtems_rfs_buffer_handle_request+0xa0> <== NOT EXECUTED 400073e0: c4 07 40 00 ld [ %i5 ], %g2 <== NOT EXECUTED
printf ("rtems-rfs: buffer-request: block=%" PRIu32 "\n", block);
400073e4: 11 10 00 87 sethi %hi(0x40021c00), %o0 <== NOT EXECUTED 400073e8: 7f ff ee 44 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400073ec: 90 12 22 f0 or %o0, 0x2f0, %o0 ! 40021ef0 <IMFS_node_control_sym_link+0x168><== NOT EXECUTED
if (fs->buffers_count)
400073f0: c2 07 60 50 ld [ %i5 + 0x50 ], %g1 <== NOT EXECUTED 400073f4: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 400073f8: 22 bf ff b2 be,a 400072c0 <rtems_rfs_buffer_handle_request+0xa0> <== NOT EXECUTED 400073fc: c4 07 40 00 ld [ %i5 ], %g2 <== NOT EXECUTED
handle->buffer = rtems_rfs_scan_chain (&fs->buffers,
40007400: 10 bf ff e5 b 40007394 <rtems_rfs_buffer_handle_request+0x174> <== NOT EXECUTED 40007404: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED
printf ("rtems-rfs: buffer-request: handle has buffer: %" PRIu32 "\n",
40007408: 11 10 00 87 sethi %hi(0x40021c00), %o0 <== NOT EXECUTED 4000740c: 7f ff ee 3b call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007410: 90 12 22 b8 or %o0, 0x2b8, %o0 ! 40021eb8 <IMFS_node_control_sym_link+0x130><== NOT EXECUTED
if (rtems_rfs_buffer_handle_has_block (handle))
40007414: c2 06 60 08 ld [ %i1 + 8 ], %g1 <== NOT EXECUTED 40007418: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000741c: 32 bf ff 97 bne,a 40007278 <rtems_rfs_buffer_handle_request+0x58> <== NOT EXECUTED 40007420: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED
handle->dirty = false;
40007424: 10 bf ff 9b b 40007290 <rtems_rfs_buffer_handle_request+0x70> <== NOT EXECUTED 40007428: c0 2e 40 00 clrb [ %i1 ] <== NOT EXECUTED
return 0;
4000742c: 81 c7 e0 08 ret 40007430: 91 e8 20 00 restore %g0, 0, %o0
printf ("rtems-rfs: buffer-request: block=%" PRIu32 " bdbuf-%s=%" PRIu32 " refs=%d\n",
40007434: d8 00 60 30 ld [ %g1 + 0x30 ], %o4 <== NOT EXECUTED 40007438: d6 00 60 18 ld [ %g1 + 0x18 ], %o3 <== NOT EXECUTED
return 0;
4000743c: b0 10 20 00 clr %i0 <== NOT EXECUTED
printf ("rtems-rfs: buffer-request: block=%" PRIu32 " bdbuf-%s=%" PRIu32 " refs=%d\n",
40007440: 15 10 00 87 sethi %hi(0x40021c00), %o2 <== NOT EXECUTED 40007444: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 40007448: 94 12 a2 a8 or %o2, 0x2a8, %o2 <== NOT EXECUTED 4000744c: 11 10 00 87 sethi %hi(0x40021c00), %o0 <== NOT EXECUTED 40007450: 7f ff ee 2a call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007454: 90 12 23 88 or %o0, 0x388, %o0 ! 40021f88 <IMFS_node_control_sym_link+0x200><== NOT EXECUTED 40007458: 81 c7 e0 08 ret <== NOT EXECUTED 4000745c: 81 e8 00 00 restore <== NOT EXECUTED
if (!rtems_rfs_fs_no_local_cache (fs) &&
40007460: c2 07 40 00 ld [ %i5 ], %g1 40007464: 80 88 60 02 btst 2, %g1
40007468: 12 bf ff c1 bne 4000736c <rtems_rfs_buffer_handle_request+0x14c>
4000746c: 96 06 60 08 add %i1, 8, %o3
if (fs->release_count)
40007470: c2 07 60 60 ld [ %i5 + 0x60 ], %g1 40007474: 80 a0 60 00 cmp %g1, 0
40007478: 12 80 00 28 bne 40007518 <rtems_rfs_buffer_handle_request+0x2f8>
4000747c: 94 10 00 1a mov %i2, %o2
if (!rtems_rfs_buffer_handle_has_block (handle) &&
40007480: c2 07 60 70 ld [ %i5 + 0x70 ], %g1 40007484: 80 a0 60 00 cmp %g1, 0
40007488: 02 bf ff b9 be 4000736c <rtems_rfs_buffer_handle_request+0x14c>
4000748c: 96 06 60 08 add %i1, 8, %o3
handle->buffer = rtems_rfs_scan_chain (&fs->release_modified,
40007490: 94 10 00 1a mov %i2, %o2 40007494: 92 07 60 70 add %i5, 0x70, %o1 40007498: 7f ff fe 5f call 40006e14 <rtems_rfs_scan_chain> 4000749c: 90 07 60 64 add %i5, 0x64, %o0 400074a0: d0 26 60 08 st %o0, [ %i1 + 8 ]
if (rtems_rfs_buffer_handle_has_block (handle))
400074a4: 80 a2 20 00 cmp %o0, 0
400074a8: 02 bf ff b0 be 40007368 <rtems_rfs_buffer_handle_request+0x148>
400074ac: 82 10 00 08 mov %o0, %g1
rtems_rfs_buffer_mark_dirty (handle);
400074b0: 84 10 20 01 mov 1, %g2 400074b4: 10 bf ff 89 b 400072d8 <rtems_rfs_buffer_handle_request+0xb8> 400074b8: c4 2e 40 00 stb %g2, [ %i1 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
400074bc: 40 00 0d c2 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400074c0: 92 10 21 00 mov 0x100, %o1 <== NOT EXECUTED 400074c4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400074c8: 02 bf ff a3 be 40007354 <rtems_rfs_buffer_handle_request+0x134> <== NOT EXECUTED 400074cc: 80 a6 e0 00 cmp %i3, 0 <== NOT EXECUTED
printf ("rtems-rfs: buffer-request: block=%" PRIu32 ": bdbuf-%s: %d: %s\n",
400074d0: 12 80 00 1b bne 4000753c <rtems_rfs_buffer_handle_request+0x31c> <== NOT EXECUTED 400074d4: 15 10 00 87 sethi %hi(0x40021c00), %o2 <== NOT EXECUTED 400074d8: 15 10 00 87 sethi %hi(0x40021c00), %o2 <== NOT EXECUTED 400074dc: 94 12 a2 b0 or %o2, 0x2b0, %o2 ! 40021eb0 <IMFS_node_control_sym_link+0x128><== NOT EXECUTED 400074e0: d4 27 bf fc st %o2, [ %fp + -4 ] <== NOT EXECUTED 400074e4: 40 00 60 4a call 4001f60c <strerror> <== NOT EXECUTED 400074e8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400074ec: d4 07 bf fc ld [ %fp + -4 ], %o2 <== NOT EXECUTED 400074f0: 98 10 00 08 mov %o0, %o4 <== NOT EXECUTED 400074f4: 96 10 00 18 mov %i0, %o3 <== NOT EXECUTED 400074f8: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 400074fc: 11 10 00 87 sethi %hi(0x40021c00), %o0 <== NOT EXECUTED 40007500: 7f ff ed fe call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007504: 90 12 23 50 or %o0, 0x350, %o0 ! 40021f50 <IMFS_node_control_sym_link+0x1c8><== NOT EXECUTED 40007508: 81 c7 e0 08 ret <== NOT EXECUTED 4000750c: 81 e8 00 00 restore <== NOT EXECUTED
}
40007510: 81 c7 e0 08 ret <== NOT EXECUTED 40007514: 81 e8 00 00 restore <== NOT EXECUTED
handle->buffer = rtems_rfs_scan_chain (&fs->release,
40007518: 92 07 60 60 add %i5, 0x60, %o1 4000751c: 7f ff fe 3e call 40006e14 <rtems_rfs_scan_chain> 40007520: 90 07 60 54 add %i5, 0x54, %o0 40007524: d0 26 60 08 st %o0, [ %i1 + 8 ]
if (!rtems_rfs_buffer_handle_has_block (handle) &&
40007528: 80 a2 20 00 cmp %o0, 0
4000752c: 12 bf ff 6b bne 400072d8 <rtems_rfs_buffer_handle_request+0xb8>
40007530: 82 10 00 08 mov %o0, %g1 40007534: 10 bf ff d4 b 40007484 <rtems_rfs_buffer_handle_request+0x264> 40007538: c2 07 60 70 ld [ %i5 + 0x70 ], %g1
printf ("rtems-rfs: buffer-request: block=%" PRIu32 ": bdbuf-%s: %d: %s\n",
4000753c: 10 bf ff e9 b 400074e0 <rtems_rfs_buffer_handle_request+0x2c0> <== NOT EXECUTED 40007540: 94 12 a2 a8 or %o2, 0x2a8, %o2 <== NOT EXECUTED
40007568 <rtems_rfs_buffer_open>: {
40007568: 9d e3 bf 38 save %sp, -200, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
4000756c: 90 10 20 00 clr %o0 40007570: 40 00 0d 95 call 4000abc4 <rtems_rfs_trace> 40007574: 92 10 20 20 mov 0x20, %o1 40007578: 80 a2 20 00 cmp %o0, 0
4000757c: 12 80 00 29 bne 40007620 <rtems_rfs_buffer_open+0xb8> <== NEVER TAKEN
40007580: 92 10 20 02 mov 2, %o1
fs->device = open (name, O_RDWR);
40007584: 40 00 2f 0a call 400131ac <open> 40007588: 90 10 00 18 mov %i0, %o0
if (fs->device < 0)
4000758c: 80 a2 20 00 cmp %o0, 0
40007590: 06 80 00 2e bl 40007648 <rtems_rfs_buffer_open+0xe0> <== NEVER TAKEN
40007594: d0 26 60 0c st %o0, [ %i1 + 0xc ]
if (fstat (fs->device, &st) < 0)
40007598: 40 00 2d fa call 40012d80 <fstat> 4000759c: 92 07 bf 98 add %fp, -104, %o1 400075a0: 80 a2 20 00 cmp %o0, 0
400075a4: 06 80 00 4b bl 400076d0 <rtems_rfs_buffer_open+0x168> <== NEVER TAKEN
400075a8: 05 00 00 3c sethi %hi(0xf000), %g2
if (!S_ISBLK (st.st_mode))
400075ac: c2 07 bf a8 ld [ %fp + -88 ], %g1 400075b0: 82 08 40 02 and %g1, %g2, %g1 400075b4: 05 00 00 18 sethi %hi(0x6000), %g2 400075b8: 80 a0 40 02 cmp %g1, %g2
400075bc: 12 80 00 11 bne 40007600 <rtems_rfs_buffer_open+0x98> <== NEVER TAKEN
400075c0: 94 06 60 10 add %i1, 0x10, %o2
static inline int rtems_disk_fd_get_disk_device( int fd, rtems_disk_device **dd_ptr ) { return ioctl(fd, RTEMS_BLKIO_GETDISKDEV, dd_ptr);
400075c4: d0 06 60 0c ld [ %i1 + 0xc ], %o0 400075c8: 13 10 01 10 sethi %hi(0x40044000), %o1 400075cc: 40 00 2e 38 call 40012eac <ioctl> 400075d0: 92 12 62 09 or %o1, 0x209, %o1 ! 40044209 <__end+0x17509> 400075d4: b0 10 00 08 mov %o0, %i0
if (rv != 0)
400075d8: 80 a6 20 00 cmp %i0, 0
400075dc: 12 80 00 33 bne 400076a8 <rtems_rfs_buffer_open+0x140> <== NEVER TAKEN
400075e0: 90 10 20 00 clr %o0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
400075e4: 40 00 0d 78 call 4000abc4 <rtems_rfs_trace> 400075e8: 92 10 20 20 mov 0x20, %o1 400075ec: 80 a2 20 00 cmp %o0, 0
400075f0: 32 80 00 21 bne,a 40007674 <rtems_rfs_buffer_open+0x10c> <== NEVER TAKEN
400075f4: c2 06 60 10 ld [ %i1 + 0x10 ], %g1 <== NOT EXECUTED
}
400075f8: 81 c7 e0 08 ret 400075fc: 81 e8 00 00 restore
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_OPEN))
40007600: 90 10 20 00 clr %o0 <== NOT EXECUTED 40007604: 40 00 0d 70 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40007608: 92 10 20 08 mov 8, %o1 <== NOT EXECUTED 4000760c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40007610: 12 80 00 20 bne 40007690 <rtems_rfs_buffer_open+0x128> <== NOT EXECUTED 40007614: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED
return ENXIO;
40007618: 81 c7 e0 08 ret <== NOT EXECUTED 4000761c: 91 e8 20 06 restore %g0, 6, %o0 <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: opening: %s\n", name);
40007620: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40007624: 11 10 00 87 sethi %hi(0x40021c00), %o0 <== NOT EXECUTED 40007628: 7f ff ed b4 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4000762c: 90 12 23 c8 or %o0, 0x3c8, %o0 ! 40021fc8 <IMFS_node_control_sym_link+0x240><== NOT EXECUTED
fs->device = open (name, O_RDWR);
40007630: 92 10 20 02 mov 2, %o1 <== NOT EXECUTED 40007634: 40 00 2e de call 400131ac <open> <== NOT EXECUTED 40007638: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
if (fs->device < 0)
4000763c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40007640: 16 bf ff d6 bge 40007598 <rtems_rfs_buffer_open+0x30> <== NOT EXECUTED 40007644: d0 26 60 0c st %o0, [ %i1 + 0xc ] <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_OPEN))
40007648: 90 10 20 00 clr %o0 <== NOT EXECUTED 4000764c: 40 00 0d 5e call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40007650: 92 10 20 08 mov 8, %o1 <== NOT EXECUTED 40007654: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40007658: 02 bf ff f0 be 40007618 <rtems_rfs_buffer_open+0xb0> <== NOT EXECUTED 4000765c: 11 10 00 87 sethi %hi(0x40021c00), %o0 <== NOT EXECUTED
return ENXIO;
40007660: b0 10 20 06 mov 6, %i0 <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: cannot open file\n");
40007664: 7f ff ed b3 call 40002d30 <__wrap_puts> <== NOT EXECUTED 40007668: 90 12 23 f0 or %o0, 0x3f0, %o0 <== NOT EXECUTED 4000766c: 81 c7 e0 08 ret <== NOT EXECUTED 40007670: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: blks=%" PRId32 ", blk-size=%" PRId32 "\n",
40007674: d4 00 60 20 ld [ %g1 + 0x20 ], %o2 <== NOT EXECUTED 40007678: d2 00 60 1c ld [ %g1 + 0x1c ], %o1 <== NOT EXECUTED 4000767c: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 40007680: 7f ff ed 9e call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007684: 90 12 20 b8 or %o0, 0xb8, %o0 ! 400220b8 <IMFS_node_control_sym_link+0x330><== NOT EXECUTED
}
40007688: 81 c7 e0 08 ret <== NOT EXECUTED 4000768c: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: '%s' is not a block device\n", name);
40007690: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED
return ENXIO;
40007694: b0 10 20 06 mov 6, %i0 <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: '%s' is not a block device\n", name);
40007698: 7f ff ed 98 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4000769c: 90 12 20 50 or %o0, 0x50, %o0 <== NOT EXECUTED 400076a0: 81 c7 e0 08 ret <== NOT EXECUTED 400076a4: 81 e8 00 00 restore <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_OPEN))
400076a8: 40 00 0d 47 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400076ac: 92 10 20 08 mov 8, %o1 <== NOT EXECUTED 400076b0: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400076b4: 02 bf ff d9 be 40007618 <rtems_rfs_buffer_open+0xb0> <== NOT EXECUTED 400076b8: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED
return ENXIO;
400076bc: b0 10 20 06 mov 6, %i0 <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: cannot obtain the disk\n");
400076c0: 7f ff ed 9c call 40002d30 <__wrap_puts> <== NOT EXECUTED 400076c4: 90 12 20 88 or %o0, 0x88, %o0 <== NOT EXECUTED 400076c8: 81 c7 e0 08 ret <== NOT EXECUTED 400076cc: 81 e8 00 00 restore <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_OPEN))
400076d0: 90 10 20 00 clr %o0 <== NOT EXECUTED 400076d4: 40 00 0d 3c call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400076d8: 92 10 20 08 mov 8, %o1 <== NOT EXECUTED 400076dc: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400076e0: 02 bf ff ce be 40007618 <rtems_rfs_buffer_open+0xb0> <== NOT EXECUTED 400076e4: 01 00 00 00 nop <== NOT EXECUTED
name, strerror (errno));
400076e8: 40 00 5b 0d call 4001e31c <__errno> <== NOT EXECUTED 400076ec: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: stat '%s' failed: %s\n",
400076f0: 40 00 5f c7 call 4001f60c <strerror> <== NOT EXECUTED 400076f4: d0 02 00 00 ld [ %o0 ], %o0 <== NOT EXECUTED 400076f8: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400076fc: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED
return ENXIO;
40007700: b0 10 20 06 mov 6, %i0 <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: stat '%s' failed: %s\n",
40007704: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 40007708: 7f ff ed 7c call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4000770c: 90 12 20 20 or %o0, 0x20, %o0 ! 40022020 <IMFS_node_control_sym_link+0x298><== NOT EXECUTED 40007710: 81 c7 e0 08 ret <== NOT EXECUTED 40007714: 81 e8 00 00 restore <== NOT EXECUTED
4000781c <rtems_rfs_buffer_setblksize>: {
4000781c: 9d e3 bf a0 save %sp, -96, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
40007820: 90 10 20 00 clr %o0
{
40007824: f2 27 a0 48 st %i1, [ %fp + 0x48 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
40007828: 40 00 0c e7 call 4000abc4 <rtems_rfs_trace> 4000782c: 92 10 24 00 mov 0x400, %o1 40007830: 80 a2 20 00 cmp %o0, 0
40007834: 12 80 00 37 bne 40007910 <rtems_rfs_buffer_setblksize+0xf4> <== NEVER TAKEN
40007838: d2 07 a0 48 ld [ %fp + 0x48 ], %o1
rc = rtems_rfs_buffers_release (fs);
4000783c: 7f ff ff d5 call 40007790 <rtems_rfs_buffers_release> 40007840: 90 10 00 18 mov %i0, %o0
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
40007844: ba 92 20 00 orcc %o0, 0, %i5
40007848: 14 80 00 25 bg 400078dc <rtems_rfs_buffer_setblksize+0xc0> <== NEVER TAKEN
4000784c: 90 10 20 00 clr %o0
rc = rtems_rfs_buffer_sync (fs);
40007850: 7f ff ff b2 call 40007718 <rtems_rfs_buffer_sync> 40007854: 90 10 00 18 mov %i0, %o0
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
40007858: ba 92 20 00 orcc %o0, 0, %i5
4000785c: 14 80 00 12 bg 400078a4 <rtems_rfs_buffer_setblksize+0x88> <== NEVER TAKEN
40007860: 90 10 20 00 clr %o0
rc = fs->disk->ioctl (fs->disk, RTEMS_BLKIO_SETBLKSIZE, &size);
40007864: d0 06 20 10 ld [ %i0 + 0x10 ], %o0 40007868: c2 02 20 38 ld [ %o0 + 0x38 ], %g1 4000786c: 94 07 a0 48 add %fp, 0x48, %o2 40007870: 13 20 01 10 sethi %hi(0x80044000), %o1 40007874: 9f c0 40 00 call %g1 40007878: 92 12 62 04 or %o1, 0x204, %o1 ! 80044204 <RAM_END+0x3fc44204>
if (rc < 0)
4000787c: b0 92 20 00 orcc %o0, 0, %i0
40007880: 06 80 00 04 bl 40007890 <rtems_rfs_buffer_setblksize+0x74> <== NEVER TAKEN
40007884: 01 00 00 00 nop
}
40007888: 81 c7 e0 08 ret 4000788c: 81 e8 00 00 restore
rc = errno;
40007890: 40 00 5a a3 call 4001e31c <__errno> <== NOT EXECUTED 40007894: 01 00 00 00 nop <== NOT EXECUTED 40007898: f0 02 00 00 ld [ %o0 ], %i0 <== NOT EXECUTED
}
4000789c: 81 c7 e0 08 ret <== NOT EXECUTED 400078a0: 81 e8 00 00 restore <== NOT EXECUTED
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
400078a4: 40 00 0c c8 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400078a8: 92 10 24 00 mov 0x400, %o1 <== NOT EXECUTED 400078ac: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400078b0: 22 bf ff ee be,a 40007868 <rtems_rfs_buffer_setblksize+0x4c> <== NOT EXECUTED 400078b4: d0 06 20 10 ld [ %i0 + 0x10 ], %o0 <== NOT EXECUTED
printf ("rtems-rfs: buffer-setblksize: device sync failed: %d: %s\n",
400078b8: 40 00 5f 55 call 4001f60c <strerror> <== NOT EXECUTED 400078bc: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400078c0: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 400078c4: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400078c8: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 400078cc: 7f ff ed 0b call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400078d0: 90 12 21 f0 or %o0, 0x1f0, %o0 ! 400221f0 <IMFS_node_control_sym_link+0x468><== NOT EXECUTED
rc = fs->disk->ioctl (fs->disk, RTEMS_BLKIO_SETBLKSIZE, &size);
400078d4: 10 bf ff e5 b 40007868 <rtems_rfs_buffer_setblksize+0x4c> <== NOT EXECUTED 400078d8: d0 06 20 10 ld [ %i0 + 0x10 ], %o0 <== NOT EXECUTED
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
400078dc: 40 00 0c ba call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400078e0: 92 10 24 00 mov 0x400, %o1 <== NOT EXECUTED 400078e4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400078e8: 02 bf ff da be 40007850 <rtems_rfs_buffer_setblksize+0x34> <== NOT EXECUTED 400078ec: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: buffer-setblksize: buffer release failed: %d: %s\n",
400078f0: 40 00 5f 47 call 4001f60c <strerror> <== NOT EXECUTED 400078f4: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400078f8: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 400078fc: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40007900: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 40007904: 7f ff ec fd call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007908: 90 12 21 b0 or %o0, 0x1b0, %o0 ! 400221b0 <IMFS_node_control_sym_link+0x428><== NOT EXECUTED 4000790c: 30 bf ff d1 b,a 40007850 <rtems_rfs_buffer_setblksize+0x34> <== NOT EXECUTED
printf ("rtems-rfs: buffer-setblksize: block size: %" PRIu32 "\n", size);
40007910: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 40007914: 7f ff ec f9 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007918: 90 12 21 80 or %o0, 0x180, %o0 ! 40022180 <IMFS_node_control_sym_link+0x3f8><== NOT EXECUTED 4000791c: 30 bf ff c8 b,a 4000783c <rtems_rfs_buffer_setblksize+0x20> <== NOT EXECUTED
40007718 <rtems_rfs_buffer_sync>: {
40007718: 9d e3 bf a0 save %sp, -96, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
4000771c: 90 10 20 00 clr %o0 40007720: 40 00 0d 29 call 4000abc4 <rtems_rfs_trace> 40007724: 92 10 20 20 mov 0x20, %o1 40007728: 80 a2 20 00 cmp %o0, 0
4000772c: 12 80 00 16 bne 40007784 <rtems_rfs_buffer_sync+0x6c> <== NEVER TAKEN
40007730: 11 10 00 88 sethi %hi(0x40022000), %o0
sc = rtems_bdbuf_syncdev (rtems_rfs_fs_device (fs));
40007734: 40 00 2a e1 call 400122b8 <rtems_bdbuf_syncdev> 40007738: d0 06 20 10 ld [ %i0 + 0x10 ], %o0
if (sc != RTEMS_SUCCESSFUL)
4000773c: ba 92 20 00 orcc %o0, 0, %i5
40007740: 02 80 00 0f be 4000777c <rtems_rfs_buffer_sync+0x64> <== ALWAYS TAKEN
40007744: b0 10 20 00 clr %i0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
40007748: 90 10 20 00 clr %o0 <== NOT EXECUTED 4000774c: 92 10 20 20 mov 0x20, %o1 <== NOT EXECUTED 40007750: 40 00 0d 1d call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40007754: b0 10 20 05 mov 5, %i0 <== NOT EXECUTED 40007758: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000775c: 02 80 00 08 be 4000777c <rtems_rfs_buffer_sync+0x64> <== NOT EXECUTED 40007760: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: buffer-sync: device sync failed: %s\n",
40007764: 40 00 0d 22 call 4000abec <rtems_status_text> <== NOT EXECUTED 40007768: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4000776c: 92 10 00 08 mov %o0, %o1 <== NOT EXECUTED 40007770: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 40007774: 7f ff ed 61 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007778: 90 12 21 08 or %o0, 0x108, %o0 ! 40022108 <IMFS_node_control_sym_link+0x380><== NOT EXECUTED
}
4000777c: 81 c7 e0 08 ret 40007780: 81 e8 00 00 restore
printf ("rtems-rfs: buffer-sync: syncing\n");
40007784: 7f ff ed 6b call 40002d30 <__wrap_puts> <== NOT EXECUTED 40007788: 90 12 20 e8 or %o0, 0xe8, %o0 <== NOT EXECUTED 4000778c: 30 bf ff ea b,a 40007734 <rtems_rfs_buffer_sync+0x1c> <== NOT EXECUTED
40007790 <rtems_rfs_buffers_release>: int rtems_rfs_buffers_release (rtems_rfs_file_system* fs) {
40007790: 9d e3 bf a0 save %sp, -96, %sp
int rrc = 0; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_RELEASE))
40007794: 90 10 20 00 clr %o0 40007798: 40 00 0d 0b call 4000abc4 <rtems_rfs_trace> 4000779c: 92 10 20 40 mov 0x40, %o1 400077a0: 80 a2 20 00 cmp %o0, 0
400077a4: 32 80 00 17 bne,a 40007800 <rtems_rfs_buffers_release+0x70> <== NEVER TAKEN
400077a8: d6 06 20 70 ld [ %i0 + 0x70 ], %o3 <== NOT EXECUTED
printf ("rtems-rfs: buffers-release: active:%" PRIu32 " " "release:%" PRIu32 " release-modified:%" PRIu32 "\n", fs->buffers_count, fs->release_count, fs->release_modified_count); rc = rtems_rfs_release_chain (&fs->release,
400077ac: 92 06 20 60 add %i0, 0x60, %o1 400077b0: 94 10 20 00 clr %o2 400077b4: 7f ff fd e0 call 40006f34 <rtems_rfs_release_chain> 400077b8: 90 06 20 54 add %i0, 0x54, %o0
&fs->release_count, false); if ((rc > 0) && (rrc == 0)) rrc = rc; rc = rtems_rfs_release_chain (&fs->release_modified,
400077bc: 92 06 20 70 add %i0, 0x70, %o1 400077c0: 94 10 20 01 mov 1, %o2
rc = rtems_rfs_release_chain (&fs->release,
400077c4: ba 10 00 08 mov %o0, %i5
rc = rtems_rfs_release_chain (&fs->release_modified,
400077c8: 7f ff fd db call 40006f34 <rtems_rfs_release_chain> 400077cc: 90 06 20 64 add %i0, 0x64, %o0
&fs->release_modified_count, true); if ((rc > 0) && (rrc == 0))
400077d0: b0 92 20 00 orcc %o0, 0, %i0
400077d4: 04 80 00 06 ble 400077ec <rtems_rfs_buffers_release+0x5c> <== ALWAYS TAKEN
400077d8: 80 a7 60 00 cmp %i5, 0
400077dc: 34 80 00 05 bg,a 400077f0 <rtems_rfs_buffers_release+0x60> <== NOT EXECUTED 400077e0: b0 38 00 1d xnor %g0, %i5, %i0 <== NOT EXECUTED
rrc = rc; return rrc; }
400077e4: 81 c7 e0 08 ret <== NOT EXECUTED 400077e8: 81 e8 00 00 restore <== NOT EXECUTED
400077ec: b0 38 00 1d xnor %g0, %i5, %i0 400077f0: b1 3e 20 1f sra %i0, 0x1f, %i0 400077f4: b0 0f 40 18 and %i5, %i0, %i0 400077f8: 81 c7 e0 08 ret 400077fc: 81 e8 00 00 restore
printf ("rtems-rfs: buffers-release: active:%" PRIu32 " "
40007800: d4 06 20 60 ld [ %i0 + 0x60 ], %o2 <== NOT EXECUTED 40007804: d2 06 20 50 ld [ %i0 + 0x50 ], %o1 <== NOT EXECUTED 40007808: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 4000780c: 7f ff ed 3b call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007810: 90 12 21 38 or %o0, 0x138, %o0 ! 40022138 <IMFS_node_control_sym_link+0x3b0><== NOT EXECUTED
rc = rtems_rfs_release_chain (&fs->release,
40007814: 10 bf ff e7 b 400077b0 <rtems_rfs_buffers_release+0x20> <== NOT EXECUTED 40007818: 92 06 20 60 add %i0, 0x60, %o1 <== NOT EXECUTED
400153a8 <rtems_rfs_dir_add_entry>: rtems_rfs_dir_add_entry (rtems_rfs_file_system* fs, rtems_rfs_inode_handle* dir, const char* name, size_t length, rtems_rfs_ino ino) {
400153a8: 9d e3 bf 28 save %sp, -216, %sp
rtems_rfs_block_map map; rtems_rfs_block_pos bpos; rtems_rfs_buffer_handle buffer; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_ADD_ENTRY))
400153ac: 90 10 20 00 clr %o0 400153b0: 13 08 00 00 sethi %hi(0x20000000), %o1 400153b4: 7f ff d6 04 call 4000abc4 <rtems_rfs_trace> 400153b8: a6 10 00 18 mov %i0, %l3 400153bc: 80 a2 20 00 cmp %o0, 0
400153c0: 12 80 00 a3 bne 4001564c <rtems_rfs_dir_add_entry+0x2a4> <== NEVER TAKEN
400153c4: 92 10 00 19 mov %i1, %o1
for (c = 0; c < length; c++) printf ("%c", name[c]); printf (", len=%zd\n", length); } rc = rtems_rfs_block_map_open (fs, dir, &map);
400153c8: 94 07 bf b0 add %fp, -80, %o2 400153cc: 7f ff fb 58 call 4001412c <rtems_rfs_block_map_open> 400153d0: 90 10 00 13 mov %l3, %o0
if (rc > 0)
400153d4: b0 92 20 00 orcc %o0, 0, %i0
400153d8: 14 80 00 34 bg 400154a8 <rtems_rfs_dir_add_entry+0x100> <== NEVER TAKEN
400153dc: 29 00 00 3f sethi %hi(0xfc00), %l4
handle->dirty = false;
400153e0: c0 2f bf a4 clrb [ %fp + -92 ]
handle->bnum = 0;
400153e4: c0 27 bf a8 clr [ %fp + -88 ]
int elength; elength = rtems_rfs_dir_entry_length (entry); eino = rtems_rfs_dir_entry_ino (entry); if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
400153e8: a8 15 23 ff or %l4, 0x3ff, %l4
handle->buffer = NULL;
400153ec: c0 27 bf ac clr [ %fp + -84 ]
{ if ((length + RTEMS_RFS_DIR_ENTRY_SIZE) <
400153f0: a4 06 e0 0a add %i3, 0xa, %l2
bpos->bno = 0;
400153f4: c0 27 bf 98 clr [ %fp + -104 ]
bpos->boff = 0;
400153f8: c0 27 bf 9c clr [ %fp + -100 ]
bpos->block = 0;
400153fc: c0 27 bf a0 clr [ %fp + -96 ]
rc = rtems_rfs_block_map_find (fs, &map, &bpos, &block);
40015400: 96 07 bf 94 add %fp, -108, %o3 40015404: 94 07 bf 98 add %fp, -104, %o2 40015408: 92 07 bf b0 add %fp, -80, %o1 4001540c: 7f ff fc 16 call 40014464 <rtems_rfs_block_map_find> 40015410: 90 10 00 13 mov %l3, %o0
if (rc > 0)
40015414: b0 92 20 00 orcc %o0, 0, %i0
40015418: 04 80 00 a1 ble 4001569c <rtems_rfs_dir_add_entry+0x2f4>
4001541c: 80 a6 20 06 cmp %i0, 6
if (rc != ENXIO)
40015420: 12 80 00 d1 bne 40015764 <rtems_rfs_dir_add_entry+0x3bc> <== NEVER TAKEN
40015424: 96 07 bf 94 add %fp, -108, %o3
rc = rtems_rfs_block_map_grow (fs, &map, 1, &block);
40015428: 94 10 20 01 mov 1, %o2 4001542c: 92 07 bf b0 add %fp, -80, %o1 40015430: 7f ff fc 91 call 40014674 <rtems_rfs_block_map_grow> 40015434: 90 10 00 13 mov %l3, %o0
if (rc > 0)
40015438: b0 92 20 00 orcc %o0, 0, %i0
4001543c: 14 80 00 b8 bg 4001571c <rtems_rfs_dir_add_entry+0x374> <== NEVER TAKEN
40015440: c2 07 bf 98 ld [ %fp + -104 ], %g1
bpos.bno++;
40015444: 82 00 60 01 inc %g1
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, read);
40015448: d4 07 bf 94 ld [ %fp + -108 ], %o2
bpos.bno++;
4001544c: c2 27 bf 98 st %g1, [ %fp + -104 ]
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, read);
40015450: 96 10 20 00 clr %o3 40015454: 92 07 bf a4 add %fp, -92, %o1 40015458: 7f ff c7 72 call 40007220 <rtems_rfs_buffer_handle_request> 4001545c: 90 10 00 13 mov %l3, %o0
if (rc > 0)
40015460: b0 92 20 00 orcc %o0, 0, %i0
40015464: 04 80 00 13 ble 400154b0 <rtems_rfs_dir_add_entry+0x108> <== ALWAYS TAKEN
40015468: c2 07 bf ac ld [ %fp + -84 ], %g1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_ADD_ENTRY))
4001546c: 90 10 20 00 clr %o0 <== NOT EXECUTED 40015470: 7f ff d5 d5 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40015474: 13 08 00 00 sethi %hi(0x20000000), %o1 <== NOT EXECUTED 40015478: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4001547c: 32 80 00 cc bne,a 400157ac <rtems_rfs_dir_add_entry+0x404> <== NOT EXECUTED 40015480: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40015484: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED 40015488: 7f ff c8 2f call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 4001548c: 90 10 00 13 mov %l3, %o0 <== NOT EXECUTED
offset += elength; } } rtems_rfs_buffer_handle_close (fs, &buffer); rtems_rfs_block_map_close (fs, &map);
40015490: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
handle->dirty = false;
40015494: c0 2f bf a4 clrb [ %fp + -92 ] <== NOT EXECUTED 40015498: 90 10 00 13 mov %l3, %o0 <== NOT EXECUTED
handle->bnum = 0;
4001549c: c0 27 bf a8 clr [ %fp + -88 ] <== NOT EXECUTED 400154a0: 7f ff fb 82 call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 400154a4: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED
return rc;
400154a8: 81 c7 e0 08 ret <== NOT EXECUTED 400154ac: 81 e8 00 00 restore <== NOT EXECUTED
entry = rtems_rfs_buffer_data (&buffer);
400154b0: fa 00 60 1c ld [ %g1 + 0x1c ], %i5
memset (entry, 0xff, rtems_rfs_fs_block_size (fs));
400154b4: d4 04 e0 08 ld [ %l3 + 8 ], %o2 400154b8: 92 10 20 ff mov 0xff, %o1 400154bc: 40 00 24 f8 call 4001e89c <memset> 400154c0: 90 10 00 1d mov %i5, %o0
while (offset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
400154c4: de 04 e0 08 ld [ %l3 + 8 ], %o7 400154c8: 88 83 ff f6 addcc %o7, -10, %g4
400154cc: 02 bf ff cd be 40015400 <rtems_rfs_dir_add_entry+0x58> <== NEVER TAKEN
400154d0: b0 10 20 00 clr %i0 400154d4: 10 80 00 13 b 40015520 <rtems_rfs_dir_add_entry+0x178> 400154d8: 86 10 20 00 clr %g3
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
400154dc: 80 a4 20 0a cmp %l0, 0xa
400154e0: 04 80 00 4b ble 4001560c <rtems_rfs_dir_add_entry+0x264> <== NEVER TAKEN
400154e4: 90 10 20 00 clr %o0 400154e8: c2 04 e0 1c ld [ %l3 + 0x1c ], %g1 400154ec: 80 a0 40 10 cmp %g1, %l0
400154f0: 08 80 00 47 bleu 4001560c <rtems_rfs_dir_add_entry+0x264> <== NEVER TAKEN
400154f4: 80 a4 60 00 cmp %l1, 0
400154f8: 02 80 00 45 be 4001560c <rtems_rfs_dir_add_entry+0x264> <== NEVER TAKEN
400154fc: 01 00 00 00 nop 40015500: c2 04 e0 14 ld [ %l3 + 0x14 ], %g1 40015504: 80 a0 40 11 cmp %g1, %l1
40015508: 0a 80 00 41 bcs 4001560c <rtems_rfs_dir_add_entry+0x264> <== NEVER TAKEN
4001550c: ba 07 40 10 add %i5, %l0, %i5
offset += elength;
40015510: b0 06 00 10 add %i0, %l0, %i0
while (offset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40015514: 80 a1 00 18 cmp %g4, %i0
40015518: 08 bf ff ba bleu 40015400 <rtems_rfs_dir_add_entry+0x58> <== NEVER TAKEN
4001551c: 86 10 00 18 mov %i0, %g3
entry += elength;
40015520: d4 0f 60 08 ldub [ %i5 + 8 ], %o2 40015524: e0 0f 60 09 ldub [ %i5 + 9 ], %l0
eino = rtems_rfs_dir_entry_ino (entry);
40015528: c4 0f 40 00 ldub [ %i5 ], %g2 4001552c: c2 0f 60 01 ldub [ %i5 + 1 ], %g1 40015530: d6 0f 60 02 ldub [ %i5 + 2 ], %o3 40015534: e2 0f 60 03 ldub [ %i5 + 3 ], %l1 40015538: 95 2a a0 08 sll %o2, 8, %o2 4001553c: 85 28 a0 18 sll %g2, 0x18, %g2
elength = rtems_rfs_dir_entry_length (entry);
40015540: a0 14 00 0a or %l0, %o2, %l0
eino = rtems_rfs_dir_entry_ino (entry);
40015544: 83 28 60 10 sll %g1, 0x10, %g1 40015548: 97 2a e0 08 sll %o3, 8, %o3 4001554c: 82 10 40 02 or %g1, %g2, %g1
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40015550: 80 a4 00 14 cmp %l0, %l4
eino = rtems_rfs_dir_entry_ino (entry);
40015554: 96 12 c0 01 or %o3, %g1, %o3
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY) 40015558: 12 bf ff e1 bne 400154dc <rtems_rfs_dir_add_entry+0x134>
4001555c: a2 14 40 0b or %l1, %o3, %l1
(rtems_rfs_fs_block_size (fs) - offset))
40015560: 86 23 c0 03 sub %o7, %g3, %g3
if ((length + RTEMS_RFS_DIR_ENTRY_SIZE) <
40015564: 80 a4 80 03 cmp %l2, %g3
40015568: 1a bf ff a7 bcc 40015404 <rtems_rfs_dir_add_entry+0x5c> <== NEVER TAKEN
4001556c: 96 07 bf 94 add %fp, -108, %o3
hash = rtems_rfs_dir_hash (name, length);
40015570: 92 10 00 1b mov %i3, %o1 40015574: 40 00 03 32 call 4001623c <rtems_rfs_dir_hash> 40015578: 90 10 00 1a mov %i2, %o0
rtems_rfs_dir_set_entry_hash (entry, hash);
4001557c: 87 32 20 18 srl %o0, 0x18, %g3 40015580: 85 32 20 10 srl %o0, 0x10, %g2 40015584: 83 32 20 08 srl %o0, 8, %g1
rtems_rfs_dir_set_entry_ino (entry, ino);
40015588: f8 2f 60 03 stb %i4, [ %i5 + 3 ]
memcpy (entry + RTEMS_RFS_DIR_ENTRY_SIZE, name, length);
4001558c: 94 10 00 1b mov %i3, %o2
rtems_rfs_dir_set_entry_hash (entry, hash);
40015590: c6 2f 60 04 stb %g3, [ %i5 + 4 ]
rtems_rfs_dir_set_entry_ino (entry, ino);
40015594: 87 37 20 18 srl %i4, 0x18, %g3
rtems_rfs_dir_set_entry_hash (entry, hash);
40015598: c4 2f 60 05 stb %g2, [ %i5 + 5 ]
rtems_rfs_dir_set_entry_ino (entry, ino);
4001559c: 85 37 20 10 srl %i4, 0x10, %g2
rtems_rfs_dir_set_entry_hash (entry, hash);
400155a0: c2 2f 60 06 stb %g1, [ %i5 + 6 ]
rtems_rfs_dir_set_entry_ino (entry, ino);
400155a4: b9 37 20 08 srl %i4, 8, %i4
rtems_rfs_dir_set_entry_hash (entry, hash);
400155a8: d0 2f 60 07 stb %o0, [ %i5 + 7 ]
rtems_rfs_dir_set_entry_length (entry,
400155ac: 83 2c a0 10 sll %l2, 0x10, %g1
rtems_rfs_dir_set_entry_ino (entry, ino);
400155b0: c6 2f 40 00 stb %g3, [ %i5 ]
rtems_rfs_dir_set_entry_length (entry,
400155b4: 83 30 60 18 srl %g1, 0x18, %g1
rtems_rfs_dir_set_entry_ino (entry, ino);
400155b8: c4 2f 60 01 stb %g2, [ %i5 + 1 ]
memcpy (entry + RTEMS_RFS_DIR_ENTRY_SIZE, name, length);
400155bc: 92 10 00 1a mov %i2, %o1
rtems_rfs_dir_set_entry_length (entry,
400155c0: c2 2f 60 08 stb %g1, [ %i5 + 8 ]
memcpy (entry + RTEMS_RFS_DIR_ENTRY_SIZE, name, length);
400155c4: 90 07 60 0a add %i5, 0xa, %o0
rtems_rfs_dir_set_entry_length (entry,
400155c8: e4 2f 60 09 stb %l2, [ %i5 + 9 ]
return 0;
400155cc: b0 10 20 00 clr %i0
memcpy (entry + RTEMS_RFS_DIR_ENTRY_SIZE, name, length);
400155d0: 40 00 24 29 call 4001e674 <memcpy> 400155d4: f8 2f 60 02 stb %i4, [ %i5 + 2 ]
rtems_rfs_buffer_mark_dirty (&buffer);
400155d8: 82 10 20 01 mov 1, %g1
rtems_rfs_buffer_handle_release (fs, handle);
400155dc: 92 07 bf a4 add %fp, -92, %o1 400155e0: c2 2f bf a4 stb %g1, [ %fp + -92 ] 400155e4: 7f ff c7 d8 call 40007544 <rtems_rfs_buffer_handle_release> 400155e8: 90 10 00 13 mov %l3, %o0
rtems_rfs_block_map_close (fs, &map);
400155ec: 92 07 bf b0 add %fp, -80, %o1
handle->dirty = false;
400155f0: c0 2f bf a4 clrb [ %fp + -92 ] 400155f4: 90 10 00 13 mov %l3, %o0
handle->bnum = 0;
400155f8: c0 27 bf a8 clr [ %fp + -88 ] 400155fc: 7f ff fb 2b call 400142a8 <rtems_rfs_block_map_close> 40015600: c0 27 bf ac clr [ %fp + -84 ]
return 0;
40015604: 81 c7 e0 08 ret 40015608: 81 e8 00 00 restore
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_ADD_ENTRY))
4001560c: 7f ff d5 6e call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40015610: 13 08 00 00 sethi %hi(0x20000000), %o1 <== NOT EXECUTED 40015614: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40015618: 12 80 00 2e bne 400156d0 <rtems_rfs_dir_add_entry+0x328> <== NOT EXECUTED 4001561c: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40015620: 7f ff c7 c9 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40015624: 90 10 00 13 mov %l3, %o0 <== NOT EXECUTED
return EIO;
40015628: b0 10 20 05 mov 5, %i0 <== NOT EXECUTED
handle->dirty = false;
4001562c: c0 2f bf a4 clrb [ %fp + -92 ] <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40015630: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
handle->bnum = 0;
40015634: c0 27 bf a8 clr [ %fp + -88 ] <== NOT EXECUTED 40015638: 90 10 00 13 mov %l3, %o0 <== NOT EXECUTED 4001563c: 7f ff fb 1b call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 40015640: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED
return EIO;
40015644: 81 c7 e0 08 ret <== NOT EXECUTED 40015648: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: dir-add-entry: dir=%" PRId32 ", name=",
4001564c: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 40015650: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 40015654: 7f ff b5 a9 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015658: 90 12 21 70 or %o0, 0x170, %o0 ! 40023970 <IMFS_LIMITS_AND_OPTIONS+0x430><== NOT EXECUTED
for (c = 0; c < length; c++)
4001565c: 80 a6 e0 00 cmp %i3, 0 <== NOT EXECUTED 40015660: 02 80 00 09 be 40015684 <rtems_rfs_dir_add_entry+0x2dc> <== NOT EXECUTED 40015664: b0 06 80 1b add %i2, %i3, %i0 <== NOT EXECUTED 40015668: ba 10 00 1a mov %i2, %i5 <== NOT EXECUTED
printf ("%c", name[c]);
4001566c: 40 00 24 d1 call 4001e9b0 <putchar> <== NOT EXECUTED 40015670: d0 4f 40 00 ldsb [ %i5 ], %o0 <== NOT EXECUTED
for (c = 0; c < length; c++)
40015674: ba 07 60 01 inc %i5 <== NOT EXECUTED 40015678: 80 a7 40 18 cmp %i5, %i0 <== NOT EXECUTED 4001567c: 12 bf ff fc bne 4001566c <rtems_rfs_dir_add_entry+0x2c4> <== NOT EXECUTED 40015680: 01 00 00 00 nop <== NOT EXECUTED
printf (", len=%zd\n", length);
40015684: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40015688: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 4001568c: 7f ff b5 9b call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015690: 90 12 21 98 or %o0, 0x198, %o0 ! 40023998 <IMFS_LIMITS_AND_OPTIONS+0x458><== NOT EXECUTED
rc = rtems_rfs_block_map_open (fs, dir, &map);
40015694: 10 bf ff 4d b 400153c8 <rtems_rfs_dir_add_entry+0x20> <== NOT EXECUTED 40015698: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED
bpos.bno++;
4001569c: c2 07 bf 98 ld [ %fp + -104 ], %g1 400156a0: 82 00 60 01 inc %g1
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, read);
400156a4: d4 07 bf 94 ld [ %fp + -108 ], %o2
bpos.bno++;
400156a8: c2 27 bf 98 st %g1, [ %fp + -104 ]
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, read);
400156ac: 96 10 20 01 mov 1, %o3 400156b0: 92 07 bf a4 add %fp, -92, %o1 400156b4: 7f ff c6 db call 40007220 <rtems_rfs_buffer_handle_request> 400156b8: 90 10 00 13 mov %l3, %o0
if (rc > 0)
400156bc: b0 92 20 00 orcc %o0, 0, %i0
400156c0: 14 bf ff 6b bg 4001546c <rtems_rfs_dir_add_entry+0xc4> <== NEVER TAKEN
400156c4: c2 07 bf ac ld [ %fp + -84 ], %g1
entry = rtems_rfs_buffer_data (&buffer);
400156c8: 10 bf ff 7f b 400154c4 <rtems_rfs_dir_add_entry+0x11c> 400156cc: fa 00 60 1c ld [ %g1 + 0x1c ], %i5
printf ("rtems-rfs: dir-add-entry: "
400156d0: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 400156d4: 98 10 00 18 mov %i0, %o4 <== NOT EXECUTED 400156d8: 96 10 00 11 mov %l1, %o3 <== NOT EXECUTED 400156dc: 94 10 00 10 mov %l0, %o2 <== NOT EXECUTED 400156e0: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 400156e4: 7f ff b5 85 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400156e8: 90 12 22 80 or %o0, 0x280, %o0 ! 40023a80 <IMFS_LIMITS_AND_OPTIONS+0x540><== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
400156ec: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED 400156f0: 7f ff c7 95 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 400156f4: 90 10 00 13 mov %l3, %o0 <== NOT EXECUTED
return EIO;
400156f8: b0 10 20 05 mov 5, %i0 <== NOT EXECUTED
handle->dirty = false;
400156fc: c0 2f bf a4 clrb [ %fp + -92 ] <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40015700: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
handle->bnum = 0;
40015704: c0 27 bf a8 clr [ %fp + -88 ] <== NOT EXECUTED 40015708: 90 10 00 13 mov %l3, %o0 <== NOT EXECUTED 4001570c: 7f ff fa e7 call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 40015710: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED
return EIO;
40015714: 81 c7 e0 08 ret <== NOT EXECUTED 40015718: 81 e8 00 00 restore <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_ADD_ENTRY))
4001571c: 90 10 20 00 clr %o0 <== NOT EXECUTED 40015720: 7f ff d5 29 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40015724: 13 08 00 00 sethi %hi(0x20000000), %o1 <== NOT EXECUTED 40015728: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4001572c: 22 bf ff 57 be,a 40015488 <rtems_rfs_dir_add_entry+0xe0> <== NOT EXECUTED 40015730: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
printf ("rtems-rfs: dir-add-entry: "
40015734: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 40015738: d2 27 bf 8c st %o1, [ %fp + -116 ] <== NOT EXECUTED 4001573c: 40 00 27 b4 call 4001f60c <strerror> <== NOT EXECUTED 40015740: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40015744: d2 07 bf 8c ld [ %fp + -116 ], %o1 <== NOT EXECUTED 40015748: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 4001574c: 94 10 00 18 mov %i0, %o2 <== NOT EXECUTED 40015750: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 40015754: 7f ff b5 69 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015758: 90 12 21 f0 or %o0, 0x1f0, %o0 ! 400239f0 <IMFS_LIMITS_AND_OPTIONS+0x4b0><== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4001575c: 10 bf ff 4b b 40015488 <rtems_rfs_dir_add_entry+0xe0> <== NOT EXECUTED 40015760: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_ADD_ENTRY))
40015764: 90 10 20 00 clr %o0 <== NOT EXECUTED 40015768: 7f ff d5 17 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 4001576c: 13 08 00 00 sethi %hi(0x20000000), %o1 <== NOT EXECUTED 40015770: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40015774: 22 bf ff 45 be,a 40015488 <rtems_rfs_dir_add_entry+0xe0> <== NOT EXECUTED 40015778: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
printf ("rtems-rfs: dir-add-entry: "
4001577c: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 40015780: d2 27 bf 8c st %o1, [ %fp + -116 ] <== NOT EXECUTED 40015784: 40 00 27 a2 call 4001f60c <strerror> <== NOT EXECUTED 40015788: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 4001578c: d2 07 bf 8c ld [ %fp + -116 ], %o1 <== NOT EXECUTED 40015790: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 40015794: 94 10 00 18 mov %i0, %o2 <== NOT EXECUTED 40015798: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 4001579c: 7f ff b5 57 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400157a0: 90 12 21 a8 or %o0, 0x1a8, %o0 ! 400239a8 <IMFS_LIMITS_AND_OPTIONS+0x468><== NOT EXECUTED 400157a4: 10 bf ff 39 b 40015488 <rtems_rfs_dir_add_entry+0xe0> <== NOT EXECUTED 400157a8: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
printf ("rtems-rfs: dir-add-entry: "
400157ac: d2 27 bf 8c st %o1, [ %fp + -116 ] <== NOT EXECUTED 400157b0: 40 00 27 97 call 4001f60c <strerror> <== NOT EXECUTED 400157b4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400157b8: d2 07 bf 8c ld [ %fp + -116 ], %o1 <== NOT EXECUTED 400157bc: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 400157c0: 94 10 00 18 mov %i0, %o2 <== NOT EXECUTED 400157c4: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 400157c8: 7f ff b5 4c call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400157cc: 90 12 22 38 or %o0, 0x238, %o0 ! 40023a38 <IMFS_LIMITS_AND_OPTIONS+0x4f8><== NOT EXECUTED 400157d0: 10 bf ff 2e b 40015488 <rtems_rfs_dir_add_entry+0xe0> <== NOT EXECUTED 400157d4: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
400157d8 <rtems_rfs_dir_del_entry>: int rtems_rfs_dir_del_entry (rtems_rfs_file_system* fs, rtems_rfs_inode_handle* dir, rtems_rfs_ino ino, uint32_t offset) {
400157d8: 9d e3 bf 38 save %sp, -200, %sp
rtems_rfs_block_no block; rtems_rfs_buffer_handle buffer; bool search; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
400157dc: 90 10 20 00 clr %o0 400157e0: 13 10 00 00 sethi %hi(0x40000000), %o1 400157e4: 7f ff d4 f8 call 4000abc4 <rtems_rfs_trace> 400157e8: a2 10 00 18 mov %i0, %l1 400157ec: 80 a2 20 00 cmp %o0, 0
400157f0: 32 80 00 77 bne,a 400159cc <rtems_rfs_dir_del_entry+0x1f4> <== NEVER TAKEN
400157f4: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: dir=%" PRId32 ", entry=%" PRId32 " offset=%" PRIu32 "\n", rtems_rfs_inode_ino (dir), ino, offset); rc = rtems_rfs_block_map_open (fs, dir, &map);
400157f8: 92 10 00 19 mov %i1, %o1 400157fc: 94 07 bf b0 add %fp, -80, %o2 40015800: 7f ff fa 4b call 4001412c <rtems_rfs_block_map_open> 40015804: 90 10 00 11 mov %l1, %o0
if (rc > 0)
40015808: b0 92 20 00 orcc %o0, 0, %i0
4001580c: 14 80 00 6e bg 400159c4 <rtems_rfs_dir_del_entry+0x1ec> <== NEVER TAKEN
40015810: 94 10 20 00 clr %o2
return rc; rc = rtems_rfs_block_map_seek (fs, &map, offset, &block);
40015814: 98 07 bf a0 add %fp, -96, %o4 40015818: 96 10 00 1b mov %i3, %o3 4001581c: 92 07 bf b0 add %fp, -80, %o1 40015820: 7f ff fb 6a call 400145c8 <rtems_rfs_block_map_seek> 40015824: 90 10 00 11 mov %l1, %o0
if (rc > 0)
40015828: b0 92 20 00 orcc %o0, 0, %i0
4001582c: 14 80 00 81 bg 40015a30 <rtems_rfs_dir_del_entry+0x258> <== NEVER TAKEN
40015830: 27 00 00 3f sethi %hi(0xfc00), %l3
handle->dirty = false;
40015834: c0 2f bf a4 clrb [ %fp + -92 ]
handle->bnum = 0;
40015838: c0 27 bf a8 clr [ %fp + -88 ]
int elength; elength = rtems_rfs_dir_entry_length (entry); eino = rtems_rfs_dir_entry_ino (entry); if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
4001583c: a6 14 e3 ff or %l3, 0x3ff, %l3
handle->buffer = NULL;
40015840: c0 27 bf ac clr [ %fp + -84 ]
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, true);
40015844: 96 10 20 01 mov 1, %o3 40015848: d4 07 bf a0 ld [ %fp + -96 ], %o2 4001584c: 92 07 bf a4 add %fp, -92, %o1 40015850: 7f ff c6 74 call 40007220 <rtems_rfs_buffer_handle_request> 40015854: 90 10 00 11 mov %l1, %o0
if (rc > 0)
40015858: b0 92 20 00 orcc %o0, 0, %i0
4001585c: 14 80 00 d9 bg 40015bc0 <rtems_rfs_dir_del_entry+0x3e8> <== NEVER TAKEN
40015860: 80 a6 e0 00 cmp %i3, 0
if (search)
40015864: 02 80 00 46 be 4001597c <rtems_rfs_dir_del_entry+0x1a4> <== NEVER TAKEN
40015868: de 04 60 08 ld [ %l1 + 8 ], %o7
eoffset = offset % rtems_rfs_fs_block_size (fs);
4001586c: 81 80 20 00 wr %g0, %y 40015870: 01 00 00 00 nop 40015874: 01 00 00 00 nop 40015878: 01 00 00 00 nop 4001587c: 82 76 c0 0f udiv %i3, %o7, %g1 40015880: 82 58 40 0f smul %g1, %o7, %g1 40015884: 82 26 c0 01 sub %i3, %g1, %g1 40015888: a4 10 00 01 mov %g1, %l2
entry = rtems_rfs_buffer_data (&buffer) + eoffset;
4001588c: c4 07 bf ac ld [ %fp + -84 ], %g2 40015890: fa 00 a0 1c ld [ %g2 + 0x1c ], %i5
while (eoffset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40015894: 9a 03 ff f6 add %o7, -10, %o5 40015898: 80 a3 40 01 cmp %o5, %g1
4001589c: 18 80 00 19 bgu 40015900 <rtems_rfs_dir_del_entry+0x128> <== ALWAYS TAKEN
400158a0: ba 07 40 01 add %i5, %g1, %i5
entry += elength; eoffset += elength; } if (rc == 0)
400158a4: 10 80 00 28 b 40015944 <rtems_rfs_dir_del_entry+0x16c> <== NOT EXECUTED 400158a8: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
400158ac: 80 a7 20 0a cmp %i4, 0xa
400158b0: 04 80 00 36 ble 40015988 <rtems_rfs_dir_del_entry+0x1b0> <== NEVER TAKEN
400158b4: 90 10 20 00 clr %o0 400158b8: c2 04 60 1c ld [ %l1 + 0x1c ], %g1 400158bc: 80 a0 40 1c cmp %g1, %i4
400158c0: 08 80 00 32 bleu 40015988 <rtems_rfs_dir_del_entry+0x1b0> <== NEVER TAKEN
400158c4: 80 a4 20 00 cmp %l0, 0
400158c8: 02 80 00 31 be 4001598c <rtems_rfs_dir_del_entry+0x1b4> <== NEVER TAKEN
400158cc: 13 10 00 00 sethi %hi(0x40000000), %o1 400158d0: c2 04 60 14 ld [ %l1 + 0x14 ], %g1 400158d4: 80 a0 40 10 cmp %g1, %l0
400158d8: 0a 80 00 2c bcs 40015988 <rtems_rfs_dir_del_entry+0x1b0> <== NEVER TAKEN
400158dc: 80 a6 80 10 cmp %i2, %l0
if (ino == rtems_rfs_dir_entry_ino (entry))
400158e0: 02 80 00 5c be 40015a50 <rtems_rfs_dir_del_entry+0x278> <== ALWAYS TAKEN
400158e4: 80 a6 e0 00 cmp %i3, 0
if (!search)
400158e8: 32 80 00 2e bne,a 400159a0 <rtems_rfs_dir_del_entry+0x1c8> <== NOT EXECUTED 400158ec: b0 10 20 05 mov 5, %i0 <== NOT EXECUTED
eoffset += elength;
400158f0: a4 04 80 1c add %l2, %i4, %l2 <== NOT EXECUTED
while (eoffset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
400158f4: 80 a3 40 12 cmp %o5, %l2 <== NOT EXECUTED 400158f8: 08 80 00 12 bleu 40015940 <rtems_rfs_dir_del_entry+0x168> <== NOT EXECUTED 400158fc: ba 07 40 1c add %i5, %i4, %i5 <== NOT EXECUTED
entry += elength;
40015900: c8 0f 60 08 ldub [ %i5 + 8 ], %g4 40015904: f8 0f 60 09 ldub [ %i5 + 9 ], %i4
eino = rtems_rfs_dir_entry_ino (entry);
40015908: c6 0f 40 00 ldub [ %i5 ], %g3 4001590c: c4 0f 60 01 ldub [ %i5 + 1 ], %g2 40015910: c2 0f 60 02 ldub [ %i5 + 2 ], %g1 40015914: e0 0f 60 03 ldub [ %i5 + 3 ], %l0 40015918: 89 29 20 08 sll %g4, 8, %g4 4001591c: 87 28 e0 18 sll %g3, 0x18, %g3
elength = rtems_rfs_dir_entry_length (entry);
40015920: b8 17 00 04 or %i4, %g4, %i4
eino = rtems_rfs_dir_entry_ino (entry);
40015924: 85 28 a0 10 sll %g2, 0x10, %g2 40015928: 83 28 60 08 sll %g1, 8, %g1 4001592c: 84 10 80 03 or %g2, %g3, %g2
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40015930: 80 a7 00 13 cmp %i4, %l3
eino = rtems_rfs_dir_entry_ino (entry);
40015934: 82 10 40 02 or %g1, %g2, %g1
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40015938: 12 bf ff dd bne 400158ac <rtems_rfs_dir_del_entry+0xd4> <== ALWAYS TAKEN
4001593c: a0 14 00 01 or %l0, %g1, %l0
if (rc == 0)
40015940: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 40015944: 12 80 00 18 bne 400159a4 <rtems_rfs_dir_del_entry+0x1cc> <== NOT EXECUTED 40015948: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
{ rc = rtems_rfs_block_map_next_block (fs, &map, &block);
4001594c: 94 07 bf a0 add %fp, -96, %o2 <== NOT EXECUTED 40015950: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 40015954: 7f ff fb 3b call 40014640 <rtems_rfs_block_map_next_block> <== NOT EXECUTED 40015958: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED
if (rc == ENXIO)
4001595c: 80 a2 20 06 cmp %o0, 6 <== NOT EXECUTED 40015960: 02 80 00 aa be 40015c08 <rtems_rfs_dir_del_entry+0x430> <== NOT EXECUTED 40015964: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED
while (rc == 0)
40015968: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4001596c: 02 bf ff b7 be 40015848 <rtems_rfs_dir_del_entry+0x70> <== NOT EXECUTED 40015970: 96 10 20 01 mov 1, %o3 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40015974: 10 80 00 0c b 400159a4 <rtems_rfs_dir_del_entry+0x1cc> <== NOT EXECUTED 40015978: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED 4001597c: 82 10 20 00 clr %g1 <== NOT EXECUTED
eoffset = 0;
40015980: 10 bf ff c3 b 4001588c <rtems_rfs_dir_del_entry+0xb4> <== NOT EXECUTED 40015984: a4 10 20 00 clr %l2 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
40015988: 13 10 00 00 sethi %hi(0x40000000), %o1 <== NOT EXECUTED 4001598c: 7f ff d4 8e call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40015990: b0 10 20 05 mov 5, %i0 <== NOT EXECUTED 40015994: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40015998: 12 80 00 14 bne 400159e8 <rtems_rfs_dir_del_entry+0x210> <== NOT EXECUTED 4001599c: d8 07 bf a0 ld [ %fp + -96 ], %o4 <== NOT EXECUTED 400159a0: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED 400159a4: 7f ff c6 e8 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 400159a8: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED
rc = ENOENT; } } rtems_rfs_buffer_handle_close (fs, &buffer); rtems_rfs_block_map_close (fs, &map);
400159ac: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
handle->dirty = false;
400159b0: c0 2f bf a4 clrb [ %fp + -92 ] <== NOT EXECUTED 400159b4: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED
handle->bnum = 0;
400159b8: c0 27 bf a8 clr [ %fp + -88 ] <== NOT EXECUTED 400159bc: 7f ff fa 3b call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 400159c0: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED
return rc;
400159c4: 81 c7 e0 08 ret <== NOT EXECUTED 400159c8: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: dir=%" PRId32 ", entry=%" PRId32 " offset=%" PRIu32 "\n",
400159cc: 96 10 00 1b mov %i3, %o3 <== NOT EXECUTED 400159d0: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 400159d4: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 400159d8: 7f ff b4 c8 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400159dc: 90 12 22 c8 or %o0, 0x2c8, %o0 ! 40023ac8 <IMFS_LIMITS_AND_OPTIONS+0x588><== NOT EXECUTED
rc = rtems_rfs_block_map_open (fs, dir, &map);
400159e0: 10 bf ff 87 b 400157fc <rtems_rfs_dir_del_entry+0x24> <== NOT EXECUTED 400159e4: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: "
400159e8: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 400159ec: 9a 10 00 12 mov %l2, %o5 <== NOT EXECUTED 400159f0: 96 10 00 10 mov %l0, %o3 <== NOT EXECUTED 400159f4: 94 10 00 1c mov %i4, %o2 <== NOT EXECUTED 400159f8: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 400159fc: 7f ff b4 bf call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015a00: 90 12 23 48 or %o0, 0x348, %o0 ! 40023b48 <IMFS_LIMITS_AND_OPTIONS+0x608><== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40015a04: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED 40015a08: 7f ff c6 cf call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40015a0c: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40015a10: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
handle->dirty = false;
40015a14: c0 2f bf a4 clrb [ %fp + -92 ] <== NOT EXECUTED 40015a18: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED
handle->bnum = 0;
40015a1c: c0 27 bf a8 clr [ %fp + -88 ] <== NOT EXECUTED 40015a20: 7f ff fa 22 call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 40015a24: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED
return rc;
40015a28: 81 c7 e0 08 ret <== NOT EXECUTED 40015a2c: 81 e8 00 00 restore <== NOT EXECUTED
if (rc == ENXIO)
40015a30: 80 a6 20 06 cmp %i0, 6 <== NOT EXECUTED 40015a34: 22 80 00 02 be,a 40015a3c <rtems_rfs_dir_del_entry+0x264> <== NOT EXECUTED 40015a38: b0 10 20 02 mov 2, %i0 <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40015a3c: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 40015a40: 7f ff fa 1a call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 40015a44: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED
return rc;
40015a48: 81 c7 e0 08 ret <== NOT EXECUTED 40015a4c: 81 e8 00 00 restore <== NOT EXECUTED
memmove (entry, entry + elength, remaining);
40015a50: 92 07 40 1c add %i5, %i4, %o1 40015a54: 90 10 00 1d mov %i5, %o0
remaining = rtems_rfs_fs_block_size (fs) - (eoffset + elength);
40015a58: b6 04 80 1c add %l2, %i4, %i3 40015a5c: b6 23 c0 1b sub %o7, %i3, %i3
memmove (entry, entry + elength, remaining);
40015a60: 40 00 23 44 call 4001e770 <memmove> 40015a64: 94 10 00 1b mov %i3, %o2
memset (entry + remaining, 0xff, elength);
40015a68: 94 10 00 1c mov %i4, %o2 40015a6c: 92 10 20 ff mov 0xff, %o1 40015a70: 40 00 23 8b call 4001e89c <memset> 40015a74: 90 07 40 1b add %i5, %i3, %o0
elength = rtems_rfs_dir_entry_length (entry);
40015a78: d4 0f 60 08 ldub [ %i5 + 8 ], %o2 40015a7c: 95 2a a0 08 sll %o2, 8, %o2 40015a80: fa 0f 60 09 ldub [ %i5 + 9 ], %i5
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
40015a84: 90 10 20 00 clr %o0 40015a88: 13 10 00 00 sethi %hi(0x40000000), %o1 40015a8c: 7f ff d4 4e call 4000abc4 <rtems_rfs_trace> 40015a90: ba 17 40 0a or %i5, %o2, %i5 40015a94: 80 a2 20 00 cmp %o0, 0
40015a98: 02 80 00 10 be 40015ad8 <rtems_rfs_dir_del_entry+0x300> <== ALWAYS TAKEN
40015a9c: 03 3f ff c0 sethi %hi(0xffff0000), %g1
rtems_rfs_block_map_last (&map) ? "yes" : "no");
40015aa0: c4 07 bf c0 ld [ %fp + -64 ], %g2 <== NOT EXECUTED 40015aa4: c2 07 bf b8 ld [ %fp + -72 ], %g1 <== NOT EXECUTED 40015aa8: 80 90 80 01 orcc %g2, %g1, %g0 <== NOT EXECUTED 40015aac: 12 80 00 3f bne 40015ba8 <rtems_rfs_dir_del_entry+0x3d0> <== NOT EXECUTED 40015ab0: d6 07 bf a0 ld [ %fp + -96 ], %o3 <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: "
40015ab4: 1b 10 00 8b sethi %hi(0x40022c00), %o5 <== NOT EXECUTED 40015ab8: 9a 13 60 f8 or %o5, 0xf8, %o5 ! 40022cf8 <IMFS_node_control_sym_link+0xf70><== NOT EXECUTED 40015abc: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 40015ac0: 98 10 00 12 mov %l2, %o4 <== NOT EXECUTED 40015ac4: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 40015ac8: 92 10 00 10 mov %l0, %o1 <== NOT EXECUTED 40015acc: 7f ff b4 8b call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015ad0: 90 12 23 98 or %o0, 0x398, %o0 <== NOT EXECUTED
if ((elength == RTEMS_RFS_DIR_ENTRY_EMPTY) &&
40015ad4: 03 3f ff c0 sethi %hi(0xffff0000), %g1 <== NOT EXECUTED
40015ad8: 82 38 40 1d xnor %g1, %i5, %g1 40015adc: 80 a0 60 00 cmp %g1, 0
40015ae0: 12 80 00 1f bne 40015b5c <rtems_rfs_dir_del_entry+0x384>
40015ae4: 80 a4 a0 00 cmp %l2, 0
40015ae8: 12 80 00 1d bne 40015b5c <rtems_rfs_dir_del_entry+0x384> <== ALWAYS TAKEN
40015aec: c4 07 bf c0 ld [ %fp + -64 ], %g2
(eoffset == 0) && rtems_rfs_block_map_last (&map))
40015af0: c2 07 bf b8 ld [ %fp + -72 ], %g1 <== NOT EXECUTED 40015af4: 80 90 80 01 orcc %g2, %g1, %g0 <== NOT EXECUTED 40015af8: 12 80 00 27 bne 40015b94 <rtems_rfs_dir_del_entry+0x3bc> <== NOT EXECUTED 40015afc: 82 00 7f ff add %g1, -1, %g1 <== NOT EXECUTED
rc = rtems_rfs_block_map_shrink (fs, &map, 1);
40015b00: 94 10 20 01 mov 1, %o2 <== NOT EXECUTED 40015b04: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 40015b08: 7f ff fb cf call 40014a44 <rtems_rfs_block_map_shrink> <== NOT EXECUTED 40015b0c: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED
if (rc > 0)
40015b10: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 40015b14: 04 80 00 13 ble 40015b60 <rtems_rfs_dir_del_entry+0x388> <== NOT EXECUTED 40015b18: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
40015b1c: 90 10 20 00 clr %o0 <== NOT EXECUTED 40015b20: 7f ff d4 29 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40015b24: 13 10 00 00 sethi %hi(0x40000000), %o1 <== NOT EXECUTED 40015b28: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40015b2c: 02 80 00 0d be 40015b60 <rtems_rfs_dir_del_entry+0x388> <== NOT EXECUTED 40015b30: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: "
40015b34: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 40015b38: d2 27 bf 9c st %o1, [ %fp + -100 ] <== NOT EXECUTED 40015b3c: 40 00 26 b4 call 4001f60c <strerror> <== NOT EXECUTED 40015b40: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40015b44: d2 07 bf 9c ld [ %fp + -100 ], %o1 <== NOT EXECUTED 40015b48: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 40015b4c: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 40015b50: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 40015b54: 7f ff b4 69 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015b58: 90 12 23 f8 or %o0, 0x3f8, %o0 ! 40023bf8 <IMFS_LIMITS_AND_OPTIONS+0x6b8><== NOT EXECUTED
rtems_rfs_buffer_mark_dirty (&buffer);
40015b5c: 82 10 20 01 mov 1, %g1
rtems_rfs_buffer_handle_release (fs, handle);
40015b60: 92 07 bf a4 add %fp, -92, %o1 40015b64: c2 2f bf a4 stb %g1, [ %fp + -92 ] 40015b68: 7f ff c6 77 call 40007544 <rtems_rfs_buffer_handle_release> 40015b6c: 90 10 00 11 mov %l1, %o0
return 0;
40015b70: b0 10 20 00 clr %i0
handle->dirty = false;
40015b74: c0 2f bf a4 clrb [ %fp + -92 ]
rtems_rfs_block_map_close (fs, &map);
40015b78: 92 07 bf b0 add %fp, -80, %o1
handle->bnum = 0;
40015b7c: c0 27 bf a8 clr [ %fp + -88 ] 40015b80: 90 10 00 11 mov %l1, %o0 40015b84: 7f ff f9 c9 call 400142a8 <rtems_rfs_block_map_close> 40015b88: c0 27 bf ac clr [ %fp + -84 ]
return 0;
40015b8c: 81 c7 e0 08 ret 40015b90: 81 e8 00 00 restore
(eoffset == 0) && rtems_rfs_block_map_last (&map))
40015b94: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 40015b98: 12 bf ff f2 bne 40015b60 <rtems_rfs_dir_del_entry+0x388> <== NOT EXECUTED 40015b9c: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED 40015ba0: 10 bf ff d9 b 40015b04 <rtems_rfs_dir_del_entry+0x32c> <== NOT EXECUTED 40015ba4: 94 10 20 01 mov 1, %o2 <== NOT EXECUTED
rtems_rfs_block_map_last (&map) ? "yes" : "no");
40015ba8: 82 00 7f ff add %g1, -1, %g1 <== NOT EXECUTED 40015bac: 80 a0 80 01 cmp %g2, %g1 <== NOT EXECUTED 40015bb0: 02 bf ff c1 be 40015ab4 <rtems_rfs_dir_del_entry+0x2dc> <== NOT EXECUTED 40015bb4: 1b 10 00 8b sethi %hi(0x40022c00), %o5 <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: "
40015bb8: 10 bf ff c1 b 40015abc <rtems_rfs_dir_del_entry+0x2e4> <== NOT EXECUTED 40015bbc: 9a 13 61 00 or %o5, 0x100, %o5 ! 40022d00 <IMFS_node_control_sym_link+0xf78><== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
40015bc0: 90 10 20 00 clr %o0 <== NOT EXECUTED 40015bc4: 7f ff d4 00 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40015bc8: 13 10 00 00 sethi %hi(0x40000000), %o1 <== NOT EXECUTED 40015bcc: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40015bd0: 22 bf ff 75 be,a 400159a4 <rtems_rfs_dir_del_entry+0x1cc> <== NOT EXECUTED 40015bd4: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: "
40015bd8: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 40015bdc: d2 27 bf 9c st %o1, [ %fp + -100 ] <== NOT EXECUTED 40015be0: 40 00 26 8b call 4001f60c <strerror> <== NOT EXECUTED 40015be4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40015be8: d2 07 bf 9c ld [ %fp + -100 ], %o1 <== NOT EXECUTED 40015bec: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 40015bf0: 94 10 00 18 mov %i0, %o2 <== NOT EXECUTED 40015bf4: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 40015bf8: 7f ff b4 40 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015bfc: 90 12 23 00 or %o0, 0x300, %o0 ! 40023b00 <IMFS_LIMITS_AND_OPTIONS+0x5c0><== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40015c00: 10 bf ff 69 b 400159a4 <rtems_rfs_dir_del_entry+0x1cc> <== NOT EXECUTED 40015c04: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
rc = ENOENT;
40015c08: 10 bf ff 66 b 400159a0 <rtems_rfs_dir_del_entry+0x1c8> <== NOT EXECUTED 40015c0c: b0 10 20 02 mov 2, %i0 <== NOT EXECUTED
40015fdc <rtems_rfs_dir_empty>: int rtems_rfs_dir_empty (rtems_rfs_file_system* fs, rtems_rfs_inode_handle* dir) {
40015fdc: 9d e3 bf 40 save %sp, -192, %sp
rtems_rfs_buffer_handle buffer; rtems_rfs_block_no block; bool empty; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015fe0: 90 10 20 00 clr %o0 40015fe4: 13 20 00 00 sethi %hi(0x80000000), %o1 40015fe8: 7f ff d2 f7 call 4000abc4 <rtems_rfs_trace> 40015fec: a2 10 00 18 mov %i0, %l1 40015ff0: 80 a2 20 00 cmp %o0, 0
40015ff4: 32 80 00 7b bne,a 400161e0 <rtems_rfs_dir_empty+0x204> <== NEVER TAKEN
40015ff8: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED
printf ("rtems-rfs: dir-empty: dir=%" PRId32 "\n", rtems_rfs_inode_ino (dir)); empty = true; rc = rtems_rfs_block_map_open (fs, dir, &map);
40015ffc: 92 10 00 19 mov %i1, %o1 40016000: 94 07 bf b0 add %fp, -80, %o2 40016004: 7f ff f8 4a call 4001412c <rtems_rfs_block_map_open> 40016008: 90 10 00 11 mov %l1, %o0
if (rc > 0)
4001600c: b0 92 20 00 orcc %o0, 0, %i0
40016010: 14 80 00 5c bg 40016180 <rtems_rfs_dir_empty+0x1a4> <== NEVER TAKEN
40016014: 94 10 20 00 clr %o2
return rc; rc = rtems_rfs_block_map_seek (fs, &map, 0, &block);
40016018: 96 10 20 00 clr %o3 4001601c: 98 07 bf a0 add %fp, -96, %o4 40016020: 92 07 bf b0 add %fp, -80, %o1 40016024: 7f ff f9 69 call 400145c8 <rtems_rfs_block_map_seek> 40016028: 90 10 00 11 mov %l1, %o0
if (rc > 0)
4001602c: b0 92 20 00 orcc %o0, 0, %i0
40016030: 14 80 00 71 bg 400161f4 <rtems_rfs_dir_empty+0x218> <== NEVER TAKEN
40016034: 25 00 00 3f sethi %hi(0xfc00), %l2
handle->dirty = false;
40016038: c0 2f bf a4 clrb [ %fp + -92 ]
handle->bnum = 0;
4001603c: c0 27 bf a8 clr [ %fp + -88 ]
break; if (rtems_rfs_dir_entry_valid (fs, elength, eino)) { if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_EMPTY)) printf ("rtems-rfs: dir-empty: "
40016040: 21 10 00 8f sethi %hi(0x40023c00), %l0
handle->buffer = NULL;
40016044: c0 27 bf ac clr [ %fp + -84 ]
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40016048: a4 14 a3 ff or %l2, 0x3ff, %l2
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_EMPTY))
4001604c: b4 10 20 01 mov 1, %i2 40016050: b6 10 20 00 clr %i3
printf ("rtems-rfs: dir-empty: "
40016054: a0 14 21 48 or %l0, 0x148, %l0
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, true);
40016058: d4 07 bf a0 ld [ %fp + -96 ], %o2 4001605c: 96 10 20 01 mov 1, %o3 40016060: 92 07 bf a4 add %fp, -92, %o1 40016064: 7f ff c4 6f call 40007220 <rtems_rfs_buffer_handle_request> 40016068: 90 10 00 11 mov %l1, %o0
if (rc > 0)
4001606c: b0 92 20 00 orcc %o0, 0, %i0
40016070: 14 80 00 3b bg 4001615c <rtems_rfs_dir_empty+0x180> <== NEVER TAKEN
40016074: c2 07 bf ac ld [ %fp + -84 ], %g1
while (offset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40016078: c8 04 60 08 ld [ %l1 + 8 ], %g4 4001607c: 88 81 3f f6 addcc %g4, -10, %g4
40016080: 02 80 00 4c be 400161b0 <rtems_rfs_dir_empty+0x1d4> <== NEVER TAKEN
40016084: c2 00 60 1c ld [ %g1 + 0x1c ], %g1
offset = 0;
40016088: 10 80 00 10 b 400160c8 <rtems_rfs_dir_empty+0xec> 4001608c: a6 10 20 00 clr %l3
/* * Ignore the current (.) and parent (..) entries. Anything else means * the directory is not empty. */ if (((elength != (RTEMS_RFS_DIR_ENTRY_SIZE + 1)) || (entry[RTEMS_RFS_DIR_ENTRY_SIZE] != '.')) && 40016090: 12 80 00 31 bne 40016154 <rtems_rfs_dir_empty+0x178>
40016094: 80 a6 20 00 cmp %i0, 0
((elength != (RTEMS_RFS_DIR_ENTRY_SIZE + 2)) ||
40016098: c4 08 60 0a ldub [ %g1 + 0xa ], %g2 4001609c: 80 a0 a0 2e cmp %g2, 0x2e
400160a0: 12 80 00 2d bne 40016154 <rtems_rfs_dir_empty+0x178> <== NEVER TAKEN
400160a4: 80 a6 20 00 cmp %i0, 0
(entry[RTEMS_RFS_DIR_ENTRY_SIZE] != '.') ||
400160a8: c4 08 60 0b ldub [ %g1 + 0xb ], %g2 400160ac: 80 a0 a0 2e cmp %g2, 0x2e
400160b0: 12 80 00 29 bne 40016154 <rtems_rfs_dir_empty+0x178> <== NEVER TAKEN
400160b4: 80 a6 20 00 cmp %i0, 0
empty = false; break; } entry += elength; offset += elength;
400160b8: a6 04 c0 1d add %l3, %i5, %l3
while (offset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
400160bc: 80 a4 c0 04 cmp %l3, %g4
400160c0: 1a 80 00 3c bcc 400161b0 <rtems_rfs_dir_empty+0x1d4> <== NEVER TAKEN
400160c4: 82 00 40 1d add %g1, %i5, %g1
elength = rtems_rfs_dir_entry_length (entry);
400160c8: d4 08 60 08 ldub [ %g1 + 8 ], %o2 400160cc: fa 08 60 09 ldub [ %g1 + 9 ], %i5
eino = rtems_rfs_dir_entry_ino (entry);
400160d0: c6 08 40 00 ldub [ %g1 ], %g3 400160d4: c4 08 60 01 ldub [ %g1 + 1 ], %g2 400160d8: d6 08 60 02 ldub [ %g1 + 2 ], %o3 400160dc: f8 08 60 03 ldub [ %g1 + 3 ], %i4 400160e0: 95 2a a0 08 sll %o2, 8, %o2 400160e4: 87 28 e0 18 sll %g3, 0x18, %g3
elength = rtems_rfs_dir_entry_length (entry);
400160e8: ba 17 40 0a or %i5, %o2, %i5
eino = rtems_rfs_dir_entry_ino (entry);
400160ec: 85 28 a0 10 sll %g2, 0x10, %g2 400160f0: 97 2a e0 08 sll %o3, 8, %o3 400160f4: 84 10 80 03 or %g2, %g3, %g2
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
400160f8: 80 a7 40 12 cmp %i5, %l2
eino = rtems_rfs_dir_entry_ino (entry);
400160fc: 96 12 c0 02 or %o3, %g2, %o3
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY) 40016100: 02 80 00 2c be 400161b0 <rtems_rfs_dir_empty+0x1d4>
40016104: b8 17 00 0b or %i4, %o3, %i4
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
40016108: 80 a7 60 0a cmp %i5, 0xa
4001610c: 04 80 00 1f ble 40016188 <rtems_rfs_dir_empty+0x1ac> <== NEVER TAKEN
40016110: 90 10 00 1a mov %i2, %o0 40016114: c4 04 60 1c ld [ %l1 + 0x1c ], %g2 40016118: 80 a0 80 1d cmp %g2, %i5
4001611c: 08 80 00 1b bleu 40016188 <rtems_rfs_dir_empty+0x1ac> <== NEVER TAKEN
40016120: 80 a7 20 00 cmp %i4, 0
40016124: 02 80 00 19 be 40016188 <rtems_rfs_dir_empty+0x1ac> <== NEVER TAKEN
40016128: 01 00 00 00 nop 4001612c: c4 04 60 14 ld [ %l1 + 0x14 ], %g2 40016130: 80 a0 80 1c cmp %g2, %i4
40016134: 0a 80 00 15 bcs 40016188 <rtems_rfs_dir_empty+0x1ac> <== NEVER TAKEN
40016138: 80 a7 60 0b cmp %i5, 0xb
if (((elength != (RTEMS_RFS_DIR_ENTRY_SIZE + 1)) || 4001613c: 12 bf ff d5 bne 40016090 <rtems_rfs_dir_empty+0xb4>
40016140: 80 a7 60 0c cmp %i5, 0xc 40016144: c4 08 60 0a ldub [ %g1 + 0xa ], %g2 40016148: 80 a0 a0 2e cmp %g2, 0x2e
4001614c: 02 bf ff db be 400160b8 <rtems_rfs_dir_empty+0xdc> <== ALWAYS TAKEN
40016150: 80 a6 20 00 cmp %i0, 0
break; } } } if ((rc == 0) && !empty)
40016154: 22 80 00 02 be,a 4001615c <rtems_rfs_dir_empty+0x180> <== ALWAYS TAKEN
40016158: b0 10 20 5a mov 0x5a, %i0
rtems_rfs_buffer_handle_release (fs, handle);
4001615c: 92 07 bf a4 add %fp, -92, %o1 40016160: 7f ff c4 f9 call 40007544 <rtems_rfs_buffer_handle_release> 40016164: 90 10 00 11 mov %l1, %o0
rc = ENOTEMPTY; rtems_rfs_buffer_handle_close (fs, &buffer); rtems_rfs_block_map_close (fs, &map);
40016168: 92 07 bf b0 add %fp, -80, %o1
handle->dirty = false;
4001616c: c0 2f bf a4 clrb [ %fp + -92 ] 40016170: 90 10 00 11 mov %l1, %o0
handle->bnum = 0;
40016174: c0 27 bf a8 clr [ %fp + -88 ] 40016178: 7f ff f8 4c call 400142a8 <rtems_rfs_block_map_close> 4001617c: c0 27 bf ac clr [ %fp + -84 ]
return rc;
40016180: 81 c7 e0 08 ret 40016184: 81 e8 00 00 restore
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_EMPTY))
40016188: 7f ff d2 8f call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 4001618c: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40016190: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40016194: 02 80 00 07 be 400161b0 <rtems_rfs_dir_empty+0x1d4> <== NOT EXECUTED 40016198: 98 10 00 13 mov %l3, %o4 <== NOT EXECUTED
printf ("rtems-rfs: dir-empty: "
4001619c: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 400161a0: 96 10 00 1c mov %i4, %o3 <== NOT EXECUTED 400161a4: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 400161a8: 7f ff b2 d4 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400161ac: 90 10 00 10 mov %l0, %o0 <== NOT EXECUTED
rc = rtems_rfs_block_map_next_block (fs, &map, &block);
400161b0: 94 07 bf a0 add %fp, -96, %o2 400161b4: 92 07 bf b0 add %fp, -80, %o1 400161b8: 7f ff f9 22 call 40014640 <rtems_rfs_block_map_next_block> 400161bc: 90 10 00 11 mov %l1, %o0
if (rc > 0)
400161c0: b0 92 20 00 orcc %o0, 0, %i0
400161c4: 04 bf ff a6 ble 4001605c <rtems_rfs_dir_empty+0x80> <== NEVER TAKEN
400161c8: d4 07 bf a0 ld [ %fp + -96 ], %o2
rc = 0;
400161cc: 82 1e 20 06 xor %i0, 6, %g1 400161d0: 80 a0 00 01 cmp %g0, %g1 400161d4: 82 60 20 00 subx %g0, 0, %g1 400161d8: 10 bf ff e1 b 4001615c <rtems_rfs_dir_empty+0x180> 400161dc: b0 0e 00 01 and %i0, %g1, %i0
printf ("rtems-rfs: dir-empty: dir=%" PRId32 "\n", rtems_rfs_inode_ino (dir));
400161e0: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 400161e4: 7f ff b2 c5 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400161e8: 90 12 21 28 or %o0, 0x128, %o0 ! 40023d28 <IMFS_LIMITS_AND_OPTIONS+0x7e8><== NOT EXECUTED
rc = rtems_rfs_block_map_open (fs, dir, &map);
400161ec: 10 bf ff 85 b 40016000 <rtems_rfs_dir_empty+0x24> <== NOT EXECUTED 400161f0: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
400161f4: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 400161f8: 7f ff f8 2c call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 400161fc: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED
return rc;
40016200: 81 c7 e0 08 ret <== NOT EXECUTED 40016204: 81 e8 00 00 restore <== NOT EXECUTED
40014e38 <rtems_rfs_dir_lookup_ino>: rtems_rfs_inode_handle* inode, const char* name, int length, rtems_rfs_ino* ino, uint32_t* offset) {
40014e38: 9d e3 bf 30 save %sp, -208, %sp
rtems_rfs_block_map map; rtems_rfs_buffer_handle entries; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
40014e3c: 90 10 20 00 clr %o0 40014e40: 13 01 00 00 sethi %hi(0x4000000), %o1 40014e44: 7f ff d7 60 call 4000abc4 <rtems_rfs_trace> 40014e48: a0 10 00 18 mov %i0, %l0 40014e4c: 80 a2 20 00 cmp %o0, 0
40014e50: 32 80 00 e3 bne,a 400151dc <rtems_rfs_dir_lookup_ino+0x3a4> <== NEVER TAKEN
40014e54: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED
for (c = 0; c < length; c++) printf ("%c", name[c]); printf (", len=%d\n", length); } *ino = RTEMS_RFS_EMPTY_INO;
40014e58: c0 27 00 00 clr [ %i4 ]
*offset = 0; rc = rtems_rfs_block_map_open (fs, inode, &map);
40014e5c: 94 07 bf b0 add %fp, -80, %o2
*offset = 0;
40014e60: c0 27 40 00 clr [ %i5 ]
rc = rtems_rfs_block_map_open (fs, inode, &map);
40014e64: 92 10 00 19 mov %i1, %o1 40014e68: 7f ff fc b1 call 4001412c <rtems_rfs_block_map_open> 40014e6c: 90 10 00 10 mov %l0, %o0
if (rc > 0)
40014e70: b0 92 20 00 orcc %o0, 0, %i0
40014e74: 14 80 00 d2 bg 400151bc <rtems_rfs_dir_lookup_ino+0x384> <== NEVER TAKEN
40014e78: 90 10 00 1a mov %i2, %o0
uint32_t hash; /* * Calculate the hash of the look up string. */ hash = rtems_rfs_dir_hash (name, length);
40014e7c: 92 10 00 1b mov %i3, %o1
handle->dirty = false;
40014e80: c0 2f bf a4 clrb [ %fp + -92 ]
handle->bnum = 0;
40014e84: c0 27 bf a8 clr [ %fp + -88 ] 40014e88: 40 00 04 ed call 4001623c <rtems_rfs_dir_hash> 40014e8c: c0 27 bf ac clr [ %fp + -84 ]
/* * Locate the first block. The map points to the start after open so just * seek 0. If an error the block will be 0. */ rc = rtems_rfs_block_map_seek (fs, &map, 0, &block);
40014e90: 98 07 bf a0 add %fp, -96, %o4
hash = rtems_rfs_dir_hash (name, length);
40014e94: a4 10 00 08 mov %o0, %l2
rc = rtems_rfs_block_map_seek (fs, &map, 0, &block);
40014e98: 94 10 20 00 clr %o2 40014e9c: 96 10 20 00 clr %o3 40014ea0: 92 07 bf b0 add %fp, -80, %o1 40014ea4: 7f ff fd c9 call 400145c8 <rtems_rfs_block_map_seek> 40014ea8: 90 10 00 10 mov %l0, %o0
if (rc > 0)
40014eac: b0 92 20 00 orcc %o0, 0, %i0
40014eb0: 14 80 00 de bg 40015228 <rtems_rfs_dir_lookup_ino+0x3f0> <== NEVER TAKEN
40014eb4: 2d 10 00 8d sethi %hi(0x40023400), %l6
while ((rc == 0) && block) { uint8_t* entry; if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO)) printf ("rtems-rfs: dir-lookup-ino: block read, ino=%" PRIu32 " bno=%" PRId32 "\n",
40014eb8: 82 15 a3 78 or %l6, 0x378, %g1 ! 40023778 <IMFS_LIMITS_AND_OPTIONS+0x238>
{ rc = rtems_rfs_block_map_next_block (fs, &map, &block); if ((rc > 0) && (rc != ENXIO)) { if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO)) printf ("rtems-rfs: dir-lookup-ino: "
40014ebc: 2f 10 00 8e sethi %hi(0x40023800), %l7
printf ("rtems-rfs: dir-lookup-ino: block read, ino=%" PRIu32 " bno=%" PRId32 "\n",
40014ec0: c2 27 bf 9c st %g1, [ %fp + -100 ]
printf ("rtems-rfs: dir-lookup-ino: "
40014ec4: 82 15 e0 e0 or %l7, 0xe0, %g1 40014ec8: c2 27 bf 98 st %g1, [ %fp + -104 ]
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40014ecc: 23 00 00 3f sethi %hi(0xfc00), %l1
printf ("rtems-rfs: dir-lookup-ino: "
40014ed0: 27 10 00 8e sethi %hi(0x40023800), %l3
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40014ed4: a2 14 63 ff or %l1, 0x3ff, %l1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO_CHECK))
40014ed8: a8 10 20 00 clr %l4 40014edc: 2b 02 00 00 sethi %hi(0x8000000), %l5
printf ("rtems-rfs: dir-lookup-ino: "
40014ee0: a6 14 e0 38 or %l3, 0x38, %l3
while ((rc == 0) && block)
40014ee4: 80 a6 20 00 cmp %i0, 0
40014ee8: 12 80 00 75 bne 400150bc <rtems_rfs_dir_lookup_ino+0x284> <== NEVER TAKEN
40014eec: c2 07 bf a0 ld [ %fp + -96 ], %g1 40014ef0: 80 a0 60 00 cmp %g1, 0
40014ef4: 02 80 00 ec be 400152a4 <rtems_rfs_dir_lookup_ino+0x46c> <== NEVER TAKEN
40014ef8: 90 10 20 00 clr %o0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
40014efc: 7f ff d7 32 call 4000abc4 <rtems_rfs_trace> 40014f00: 13 01 00 00 sethi %hi(0x4000000), %o1 40014f04: 80 a2 20 00 cmp %o0, 0
40014f08: 12 80 00 9a bne 40015170 <rtems_rfs_dir_lookup_ino+0x338> <== NEVER TAKEN
40014f0c: d4 07 bf c0 ld [ %fp + -64 ], %o2
rc = rtems_rfs_buffer_handle_request (fs, &entries, block, true);
40014f10: d4 07 bf a0 ld [ %fp + -96 ], %o2 40014f14: 96 10 20 01 mov 1, %o3 40014f18: 92 07 bf a4 add %fp, -92, %o1 40014f1c: 7f ff c8 c1 call 40007220 <rtems_rfs_buffer_handle_request> 40014f20: 90 10 00 10 mov %l0, %o0
if (rc > 0)
40014f24: b0 92 20 00 orcc %o0, 0, %i0
40014f28: 34 80 00 fc bg,a 40015318 <rtems_rfs_dir_lookup_ino+0x4e0> <== NEVER TAKEN
40014f2c: 90 10 20 00 clr %o0 <== NOT EXECUTED
map.bpos.boff = 0;
40014f30: c0 27 bf c4 clr [ %fp + -60 ]
while (map.bpos.boff < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40014f34: c4 04 20 08 ld [ %l0 + 8 ], %g2
entry = rtems_rfs_buffer_data (&entries);
40014f38: c2 07 bf ac ld [ %fp + -84 ], %g1
while (map.bpos.boff < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40014f3c: 80 a0 a0 0a cmp %g2, 0xa
40014f40: 12 80 00 0b bne 40014f6c <rtems_rfs_dir_lookup_ino+0x134> <== ALWAYS TAKEN
40014f44: ec 00 60 1c ld [ %g1 + 0x1c ], %l6
if (rc == 0)
40014f48: 10 80 00 90 b 40015188 <rtems_rfs_dir_lookup_ino+0x350> <== NOT EXECUTED 40014f4c: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED
map.bpos.boff += elength;
40014f50: 86 05 c0 03 add %l7, %g3, %g3 40014f54: c6 27 bf c4 st %g3, [ %fp + -60 ]
while (map.bpos.boff < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40014f58: c4 04 20 08 ld [ %l0 + 8 ], %g2 40014f5c: 84 00 bf f6 add %g2, -10, %g2 40014f60: 80 a0 c0 02 cmp %g3, %g2
40014f64: 1a 80 00 88 bcc 40015184 <rtems_rfs_dir_lookup_ino+0x34c> <== NEVER TAKEN
40014f68: ac 05 80 17 add %l6, %l7, %l6
*ino = rtems_rfs_dir_entry_ino (entry);
40014f6c: d0 0d 80 00 ldub [ %l6 ], %o0 40014f70: de 0d a0 01 ldub [ %l6 + 1 ], %o7 40014f74: d4 0d a0 02 ldub [ %l6 + 2 ], %o2 40014f78: d2 0d a0 03 ldub [ %l6 + 3 ], %o1
ehash = rtems_rfs_dir_entry_hash (entry);
40014f7c: d6 0d a0 04 ldub [ %l6 + 4 ], %o3 40014f80: c8 0d a0 05 ldub [ %l6 + 5 ], %g4 40014f84: c6 0d a0 06 ldub [ %l6 + 6 ], %g3 40014f88: da 0d a0 07 ldub [ %l6 + 7 ], %o5 40014f8c: c4 0d a0 08 ldub [ %l6 + 8 ], %g2 40014f90: d8 0d a0 09 ldub [ %l6 + 9 ], %o4
*ino = rtems_rfs_dir_entry_ino (entry);
40014f94: 91 2a 20 18 sll %o0, 0x18, %o0 40014f98: 9f 2b e0 10 sll %o7, 0x10, %o7 40014f9c: 95 2a a0 08 sll %o2, 8, %o2 40014fa0: 9e 13 c0 08 or %o7, %o0, %o7 40014fa4: 9e 12 80 0f or %o2, %o7, %o7 40014fa8: 9e 12 40 0f or %o1, %o7, %o7 40014fac: de 27 00 00 st %o7, [ %i4 ]
ehash = rtems_rfs_dir_entry_hash (entry);
40014fb0: 97 2a e0 18 sll %o3, 0x18, %o3 40014fb4: 89 29 20 10 sll %g4, 0x10, %g4 40014fb8: 87 28 e0 08 sll %g3, 8, %g3 40014fbc: 88 11 00 0b or %g4, %o3, %g4 40014fc0: 85 28 a0 08 sll %g2, 8, %g2 40014fc4: 86 10 c0 04 or %g3, %g4, %g3
elength = rtems_rfs_dir_entry_length (entry);
40014fc8: ae 13 00 02 or %o4, %g2, %l7
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40014fcc: 80 a5 c0 11 cmp %l7, %l1
40014fd0: 02 80 00 6d be 40015184 <rtems_rfs_dir_lookup_ino+0x34c>
40014fd4: 86 13 40 03 or %o5, %g3, %g3
if (rtems_rfs_dir_entry_valid (fs, elength, *ino))
40014fd8: 80 a5 e0 0a cmp %l7, 0xa
40014fdc: 24 80 00 32 ble,a 400150a4 <rtems_rfs_dir_lookup_ino+0x26c> <== NEVER TAKEN
40014fe0: 90 10 20 00 clr %o0 <== NOT EXECUTED
40014fe4: c8 04 20 1c ld [ %l0 + 0x1c ], %g4 40014fe8: 80 a5 c0 04 cmp %l7, %g4
40014fec: 1a 80 00 2d bcc 400150a0 <rtems_rfs_dir_lookup_ino+0x268> <== NEVER TAKEN
40014ff0: 80 a3 e0 00 cmp %o7, 0
40014ff4: 22 80 00 2c be,a 400150a4 <rtems_rfs_dir_lookup_ino+0x26c> <== NEVER TAKEN
40014ff8: 90 10 20 00 clr %o0 <== NOT EXECUTED
40014ffc: c8 04 20 14 ld [ %l0 + 0x14 ], %g4 40015000: 80 a3 c0 04 cmp %o7, %g4
40015004: 18 80 00 27 bgu 400150a0 <rtems_rfs_dir_lookup_ino+0x268> <== NEVER TAKEN
40015008: 80 a4 80 03 cmp %l2, %g3
if (ehash == hash) 4001500c: 12 bf ff d1 bne 40014f50 <rtems_rfs_dir_lookup_ino+0x118>
40015010: c6 07 bf c4 ld [ %fp + -60 ], %g3
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO_CHECK))
40015014: 90 10 00 14 mov %l4, %o0 40015018: 7f ff d6 eb call 4000abc4 <rtems_rfs_trace> 4001501c: 92 10 00 15 mov %l5, %o1 40015020: 80 a2 20 00 cmp %o0, 0
40015024: 32 80 00 43 bne,a 40015130 <rtems_rfs_dir_lookup_ino+0x2f8> <== NEVER TAKEN
40015028: de 0d 80 00 ldub [ %l6 ], %o7 <== NOT EXECUTED
if (memcmp (entry + RTEMS_RFS_DIR_ENTRY_SIZE, name, length) == 0)
4001502c: 90 05 a0 0a add %l6, 0xa, %o0 40015030: 94 10 00 1b mov %i3, %o2 40015034: 40 00 25 6e call 4001e5ec <memcmp> 40015038: 92 10 00 1a mov %i2, %o1 4001503c: 80 a2 20 00 cmp %o0, 0
40015040: 12 bf ff c4 bne 40014f50 <rtems_rfs_dir_lookup_ino+0x118> <== NEVER TAKEN
40015044: c6 07 bf c4 ld [ %fp + -60 ], %g3
*offset = rtems_rfs_block_map_pos (fs, &map);
40015048: 92 07 bf c0 add %fp, -64, %o1 4001504c: 7f ff fc 1e call 400140c4 <rtems_rfs_block_get_pos> 40015050: 90 10 00 10 mov %l0, %o0 40015054: d2 27 40 00 st %o1, [ %i5 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO_FOUND))
40015058: 90 10 20 00 clr %o0 4001505c: 7f ff d6 da call 4000abc4 <rtems_rfs_trace> 40015060: 13 04 00 00 sethi %hi(0x10000000), %o1 40015064: 80 a2 20 00 cmp %o0, 0
40015068: 32 80 00 c9 bne,a 4001538c <rtems_rfs_dir_lookup_ino+0x554> <== NEVER TAKEN
4001506c: d6 07 40 00 ld [ %i5 ], %o3 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40015070: 92 07 bf a4 add %fp, -92, %o1 40015074: 7f ff c9 34 call 40007544 <rtems_rfs_buffer_handle_release> 40015078: 90 10 00 10 mov %l0, %o0
return 0;
4001507c: b0 10 20 00 clr %i0
handle->dirty = false;
40015080: c0 2f bf a4 clrb [ %fp + -92 ]
rtems_rfs_block_map_close (fs, &map);
40015084: 92 07 bf b0 add %fp, -80, %o1
handle->bnum = 0;
40015088: c0 27 bf a8 clr [ %fp + -88 ] 4001508c: 90 10 00 10 mov %l0, %o0 40015090: 7f ff fc 86 call 400142a8 <rtems_rfs_block_map_close> 40015094: c0 27 bf ac clr [ %fp + -84 ]
return 0;
40015098: 81 c7 e0 08 ret 4001509c: 81 e8 00 00 restore
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
400150a0: 90 10 20 00 clr %o0 <== NOT EXECUTED 400150a4: 7f ff d6 c8 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400150a8: 13 01 00 00 sethi %hi(0x4000000), %o1 <== NOT EXECUTED 400150ac: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400150b0: 12 80 00 0e bne 400150e8 <rtems_rfs_dir_lookup_ino+0x2b0> <== NOT EXECUTED 400150b4: d8 07 bf c4 ld [ %fp + -60 ], %o4 <== NOT EXECUTED
rc = EIO;
400150b8: b0 10 20 05 mov 5, %i0 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
400150bc: 92 07 bf a4 add %fp, -92, %o1 400150c0: 7f ff c9 21 call 40007544 <rtems_rfs_buffer_handle_release> 400150c4: 90 10 00 10 mov %l0, %o0
rtems_rfs_inode_ino (inode), rc, strerror (rc)); } } rtems_rfs_buffer_handle_close (fs, &entries); rtems_rfs_block_map_close (fs, &map);
400150c8: 92 07 bf b0 add %fp, -80, %o1
handle->dirty = false;
400150cc: c0 2f bf a4 clrb [ %fp + -92 ] 400150d0: 90 10 00 10 mov %l0, %o0
handle->bnum = 0;
400150d4: c0 27 bf a8 clr [ %fp + -88 ] 400150d8: 7f ff fc 74 call 400142a8 <rtems_rfs_block_map_close> 400150dc: c0 27 bf ac clr [ %fp + -84 ]
return rc;
400150e0: 81 c7 e0 08 ret 400150e4: 81 e8 00 00 restore
printf ("rtems-rfs: dir-lookup-ino: "
400150e8: d6 07 00 00 ld [ %i4 ], %o3 <== NOT EXECUTED 400150ec: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 400150f0: 94 10 00 17 mov %l7, %o2 <== NOT EXECUTED 400150f4: 11 10 00 8d sethi %hi(0x40023400), %o0 <== NOT EXECUTED 400150f8: 7f ff b7 00 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400150fc: 90 12 23 f0 or %o0, 0x3f0, %o0 ! 400237f0 <IMFS_LIMITS_AND_OPTIONS+0x2b0><== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40015100: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED 40015104: 7f ff c9 10 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40015108: 90 10 00 10 mov %l0, %o0 <== NOT EXECUTED
rc = EIO;
4001510c: b0 10 20 05 mov 5, %i0 <== NOT EXECUTED
handle->dirty = false;
40015110: c0 2f bf a4 clrb [ %fp + -92 ] <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40015114: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
handle->bnum = 0;
40015118: c0 27 bf a8 clr [ %fp + -88 ] <== NOT EXECUTED 4001511c: 90 10 00 10 mov %l0, %o0 <== NOT EXECUTED 40015120: 7f ff fc 62 call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 40015124: c0 27 bf ac clr [ %fp + -84 ] <== NOT EXECUTED
return rc;
40015128: 81 c7 e0 08 ret <== NOT EXECUTED 4001512c: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: "
40015130: c8 0d a0 01 ldub [ %l6 + 1 ], %g4 <== NOT EXECUTED 40015134: c6 0d a0 02 ldub [ %l6 + 2 ], %g3 <== NOT EXECUTED 40015138: da 0d a0 03 ldub [ %l6 + 3 ], %o5 <== NOT EXECUTED 4001513c: 9f 2b e0 18 sll %o7, 0x18, %o7 <== NOT EXECUTED 40015140: d4 1f bf c0 ldd [ %fp + -64 ], %o2 <== NOT EXECUTED 40015144: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 40015148: 89 29 20 10 sll %g4, 0x10, %g4 <== NOT EXECUTED 4001514c: 87 28 e0 08 sll %g3, 8, %g3 <== NOT EXECUTED 40015150: 88 11 00 0f or %g4, %o7, %g4 <== NOT EXECUTED 40015154: 86 10 c0 04 or %g3, %g4, %g3 <== NOT EXECUTED 40015158: 98 10 00 17 mov %l7, %o4 <== NOT EXECUTED 4001515c: 90 10 00 13 mov %l3, %o0 <== NOT EXECUTED 40015160: 7f ff b6 e6 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015164: 9a 13 40 03 or %o5, %g3, %o5 <== NOT EXECUTED
if (memcmp (entry + RTEMS_RFS_DIR_ENTRY_SIZE, name, length) == 0)
40015168: 10 bf ff b2 b 40015030 <rtems_rfs_dir_lookup_ino+0x1f8> <== NOT EXECUTED 4001516c: 90 05 a0 0a add %l6, 0xa, %o0 <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: block read, ino=%" PRIu32 " bno=%" PRId32 "\n",
40015170: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 40015174: 7f ff b6 e1 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015178: d0 07 bf 9c ld [ %fp + -100 ], %o0 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &entries, block, true);
4001517c: 10 bf ff 66 b 40014f14 <rtems_rfs_dir_lookup_ino+0xdc> <== NOT EXECUTED 40015180: d4 07 bf a0 ld [ %fp + -96 ], %o2 <== NOT EXECUTED
if (rc == 0)
40015184: 80 a6 20 00 cmp %i0, 0
40015188: 12 bf ff ce bne 400150c0 <rtems_rfs_dir_lookup_ino+0x288> <== NEVER TAKEN
4001518c: 92 07 bf a4 add %fp, -92, %o1
rc = rtems_rfs_block_map_next_block (fs, &map, &block);
40015190: 94 07 bf a0 add %fp, -96, %o2 40015194: 92 07 bf b0 add %fp, -80, %o1 40015198: 7f ff fd 2a call 40014640 <rtems_rfs_block_map_next_block> 4001519c: 90 10 00 10 mov %l0, %o0
if ((rc > 0) && (rc != ENXIO))
400151a0: b0 92 20 00 orcc %o0, 0, %i0
400151a4: 04 80 00 3c ble 40015294 <rtems_rfs_dir_lookup_ino+0x45c> <== NEVER TAKEN
400151a8: 80 a6 20 06 cmp %i0, 6
400151ac: 12 80 00 2a bne 40015254 <rtems_rfs_dir_lookup_ino+0x41c> <== NEVER TAKEN
400151b0: 90 10 20 00 clr %o0
rc = ENOENT;
400151b4: 10 bf ff c2 b 400150bc <rtems_rfs_dir_lookup_ino+0x284> 400151b8: b0 10 20 02 mov 2, %i0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
400151bc: 90 10 20 00 clr %o0 <== NOT EXECUTED 400151c0: 7f ff d6 81 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400151c4: 13 01 00 00 sethi %hi(0x4000000), %o1 <== NOT EXECUTED 400151c8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400151cc: 32 80 00 48 bne,a 400152ec <rtems_rfs_dir_lookup_ino+0x4b4> <== NOT EXECUTED 400151d0: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED
}
400151d4: 81 c7 e0 08 ret <== NOT EXECUTED 400151d8: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: lookup ino: root=%" PRId32 ", path=",
400151dc: 11 10 00 8d sethi %hi(0x40023400), %o0 <== NOT EXECUTED 400151e0: 7f ff b6 c6 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400151e4: 90 12 22 b0 or %o0, 0x2b0, %o0 ! 400236b0 <IMFS_LIMITS_AND_OPTIONS+0x170><== NOT EXECUTED
for (c = 0; c < length; c++)
400151e8: 80 a6 e0 00 cmp %i3, 0 <== NOT EXECUTED 400151ec: 04 80 00 09 ble 40015210 <rtems_rfs_dir_lookup_ino+0x3d8> <== NOT EXECUTED 400151f0: b0 10 00 1a mov %i2, %i0 <== NOT EXECUTED 400151f4: a2 06 c0 1a add %i3, %i2, %l1 <== NOT EXECUTED
printf ("%c", name[c]);
400151f8: 40 00 25 ee call 4001e9b0 <putchar> <== NOT EXECUTED 400151fc: d0 4e 00 00 ldsb [ %i0 ], %o0 <== NOT EXECUTED
for (c = 0; c < length; c++)
40015200: b0 06 20 01 inc %i0 <== NOT EXECUTED 40015204: 80 a4 40 18 cmp %l1, %i0 <== NOT EXECUTED 40015208: 12 bf ff fc bne 400151f8 <rtems_rfs_dir_lookup_ino+0x3c0> <== NOT EXECUTED 4001520c: 01 00 00 00 nop <== NOT EXECUTED
printf (", len=%d\n", length);
40015210: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40015214: 11 10 00 8d sethi %hi(0x40023400), %o0 <== NOT EXECUTED 40015218: 7f ff b6 b8 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4001521c: 90 12 22 e8 or %o0, 0x2e8, %o0 ! 400236e8 <IMFS_LIMITS_AND_OPTIONS+0x1a8><== NOT EXECUTED
*ino = RTEMS_RFS_EMPTY_INO;
40015220: 10 bf ff 0f b 40014e5c <rtems_rfs_dir_lookup_ino+0x24> <== NOT EXECUTED 40015224: c0 27 00 00 clr [ %i4 ] <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
40015228: 90 10 20 00 clr %o0 <== NOT EXECUTED 4001522c: 7f ff d6 66 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40015230: 13 01 00 00 sethi %hi(0x4000000), %o1 <== NOT EXECUTED 40015234: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40015238: 12 80 00 4c bne 40015368 <rtems_rfs_dir_lookup_ino+0x530> <== NOT EXECUTED 4001523c: 01 00 00 00 nop <== NOT EXECUTED
if (rc == ENXIO)
40015240: 80 a6 20 06 cmp %i0, 6 <== NOT EXECUTED 40015244: 12 bf ff 9f bne 400150c0 <rtems_rfs_dir_lookup_ino+0x288> <== NOT EXECUTED 40015248: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED 4001524c: 10 bf ff 9d b 400150c0 <rtems_rfs_dir_lookup_ino+0x288> <== NOT EXECUTED 40015250: b0 10 20 02 mov 2, %i0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
40015254: 7f ff d6 5c call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40015258: 13 01 00 00 sethi %hi(0x4000000), %o1 <== NOT EXECUTED 4001525c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40015260: 22 bf ff 22 be,a 40014ee8 <rtems_rfs_dir_lookup_ino+0xb0> <== NOT EXECUTED 40015264: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: "
40015268: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 4001526c: d2 27 bf 94 st %o1, [ %fp + -108 ] <== NOT EXECUTED 40015270: 40 00 28 e7 call 4001f60c <strerror> <== NOT EXECUTED 40015274: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40015278: d2 07 bf 94 ld [ %fp + -108 ], %o1 <== NOT EXECUTED 4001527c: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 40015280: d0 07 bf 98 ld [ %fp + -104 ], %o0 <== NOT EXECUTED 40015284: 7f ff b6 9d call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015288: 94 10 00 18 mov %i0, %o2 <== NOT EXECUTED
while ((rc == 0) && block)
4001528c: 10 bf ff 17 b 40014ee8 <rtems_rfs_dir_lookup_ino+0xb0> <== NOT EXECUTED 40015290: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED
if (rc == ENXIO)
40015294: 12 bf ff 15 bne 40014ee8 <rtems_rfs_dir_lookup_ino+0xb0> <== NOT EXECUTED 40015298: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED
rc = ENOENT;
4001529c: 10 bf ff 88 b 400150bc <rtems_rfs_dir_lookup_ino+0x284> <== NOT EXECUTED 400152a0: b0 10 20 02 mov 2, %i0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
400152a4: 7f ff d6 48 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400152a8: 13 01 00 00 sethi %hi(0x4000000), %o1 <== NOT EXECUTED 400152ac: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400152b0: 22 bf ff 83 be,a 400150bc <rtems_rfs_dir_lookup_ino+0x284> <== NOT EXECUTED 400152b4: b0 10 20 05 mov 5, %i0 <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: block is 0 in ino %" PRIu32 ": %d: %s\n",
400152b8: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 400152bc: d2 27 bf 9c st %o1, [ %fp + -100 ] <== NOT EXECUTED 400152c0: 40 00 28 d3 call 4001f60c <strerror> <== NOT EXECUTED 400152c4: 90 10 20 05 mov 5, %o0 <== NOT EXECUTED 400152c8: d2 07 bf 9c ld [ %fp + -100 ], %o1 <== NOT EXECUTED 400152cc: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 400152d0: 94 10 20 05 mov 5, %o2 <== NOT EXECUTED
rc = EIO;
400152d4: b0 10 20 05 mov 5, %i0 <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: block is 0 in ino %" PRIu32 ": %d: %s\n",
400152d8: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 400152dc: 7f ff b6 87 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400152e0: 90 12 21 30 or %o0, 0x130, %o0 ! 40023930 <IMFS_LIMITS_AND_OPTIONS+0x3f0><== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
400152e4: 10 bf ff 77 b 400150c0 <rtems_rfs_dir_lookup_ino+0x288> <== NOT EXECUTED 400152e8: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: map open failed for ino %" PRIu32 ": %d: %s",
400152ec: d2 27 bf 9c st %o1, [ %fp + -100 ] <== NOT EXECUTED 400152f0: 40 00 28 c7 call 4001f60c <strerror> <== NOT EXECUTED 400152f4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400152f8: d2 07 bf 9c ld [ %fp + -100 ], %o1 <== NOT EXECUTED 400152fc: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 40015300: 94 10 00 18 mov %i0, %o2 <== NOT EXECUTED 40015304: 11 10 00 8d sethi %hi(0x40023400), %o0 <== NOT EXECUTED 40015308: 7f ff b6 7c call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4001530c: 90 12 22 f8 or %o0, 0x2f8, %o0 ! 400236f8 <IMFS_LIMITS_AND_OPTIONS+0x1b8><== NOT EXECUTED 40015310: 81 c7 e0 08 ret <== NOT EXECUTED 40015314: 81 e8 00 00 restore <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
40015318: 7f ff d6 2b call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 4001531c: 13 01 00 00 sethi %hi(0x4000000), %o1 <== NOT EXECUTED 40015320: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40015324: 22 bf ff 67 be,a 400150c0 <rtems_rfs_dir_lookup_ino+0x288> <== NOT EXECUTED 40015328: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: block read, ino=%" PRIu32 " block=%" PRId32 ": %d: %s\n",
4001532c: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 40015330: d4 07 bf a0 ld [ %fp + -96 ], %o2 <== NOT EXECUTED 40015334: d2 27 bf 98 st %o1, [ %fp + -104 ] <== NOT EXECUTED 40015338: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 4001533c: 40 00 28 b4 call 4001f60c <strerror> <== NOT EXECUTED 40015340: d4 27 bf 9c st %o2, [ %fp + -100 ] <== NOT EXECUTED 40015344: d4 07 bf 9c ld [ %fp + -100 ], %o2 <== NOT EXECUTED 40015348: d2 07 bf 98 ld [ %fp + -104 ], %o1 <== NOT EXECUTED 4001534c: 98 10 00 08 mov %o0, %o4 <== NOT EXECUTED 40015350: 96 10 00 18 mov %i0, %o3 <== NOT EXECUTED 40015354: 11 10 00 8d sethi %hi(0x40023400), %o0 <== NOT EXECUTED 40015358: 7f ff b6 68 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4001535c: 90 12 23 b0 or %o0, 0x3b0, %o0 ! 400237b0 <IMFS_LIMITS_AND_OPTIONS+0x270><== NOT EXECUTED 40015360: 10 bf ff 58 b 400150c0 <rtems_rfs_dir_lookup_ino+0x288> <== NOT EXECUTED 40015364: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: block map find failed: %d: %s\n",
40015368: 40 00 28 a9 call 4001f60c <strerror> <== NOT EXECUTED 4001536c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40015370: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40015374: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40015378: 11 10 00 8d sethi %hi(0x40023400), %o0 <== NOT EXECUTED 4001537c: 7f ff b6 5f call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015380: 90 12 23 38 or %o0, 0x338, %o0 ! 40023738 <IMFS_LIMITS_AND_OPTIONS+0x1f8><== NOT EXECUTED
if (rc == ENXIO)
40015384: 10 bf ff b0 b 40015244 <rtems_rfs_dir_lookup_ino+0x40c> <== NOT EXECUTED 40015388: 80 a6 20 06 cmp %i0, 6 <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: "
4001538c: d4 07 00 00 ld [ %i4 ], %o2 <== NOT EXECUTED 40015390: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 40015394: 11 10 00 8e sethi %hi(0x40023800), %o0 <== NOT EXECUTED 40015398: 7f ff b6 58 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4001539c: 90 12 20 98 or %o0, 0x98, %o0 ! 40023898 <IMFS_LIMITS_AND_OPTIONS+0x358><== NOT EXECUTED 400153a0: 10 bf ff 35 b 40015074 <rtems_rfs_dir_lookup_ino+0x23c> <== NOT EXECUTED 400153a4: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
40015c10 <rtems_rfs_dir_read>: rtems_rfs_dir_read (rtems_rfs_file_system* fs, rtems_rfs_inode_handle* dir, rtems_rfs_pos_rel offset, struct dirent* dirent, size_t* length) {
40015c10: 9d e3 bf 38 save %sp, -200, %sp
rtems_rfs_block_map map; rtems_rfs_buffer_handle buffer; rtems_rfs_block_no block; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015c14: 90 10 20 00 clr %o0 40015c18: 13 20 00 00 sethi %hi(0x80000000), %o1 40015c1c: 7f ff d3 ea call 4000abc4 <rtems_rfs_trace> 40015c20: a4 10 00 1a mov %i2, %l2 40015c24: 80 a2 20 00 cmp %o0, 0
40015c28: 12 80 00 81 bne 40015e2c <rtems_rfs_dir_read+0x21c> <== NEVER TAKEN
40015c2c: a6 10 00 1b mov %i3, %l3
printf ("rtems-rfs: dir-read: dir=%" PRId32 " offset=%" PRId64 "\n", rtems_rfs_inode_ino (dir), offset); *length = 0;
40015c30: c0 27 40 00 clr [ %i5 ]
rc = rtems_rfs_block_map_open (fs, dir, &map);
40015c34: 92 10 00 19 mov %i1, %o1 40015c38: 94 07 bf b0 add %fp, -80, %o2 40015c3c: 7f ff f9 3c call 4001412c <rtems_rfs_block_map_open> 40015c40: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40015c44: b6 92 20 00 orcc %o0, 0, %i3
40015c48: 14 80 00 58 bg 40015da8 <rtems_rfs_dir_read+0x198> <== NEVER TAKEN
40015c4c: b4 10 20 00 clr %i2
return rc; if (((rtems_rfs_fs_block_size (fs) -
40015c50: e0 06 20 08 ld [ %i0 + 8 ], %l0
(offset % rtems_rfs_fs_block_size (fs))) <= RTEMS_RFS_DIR_ENTRY_SIZE))
40015c54: 90 10 00 12 mov %l2, %o0 40015c58: 92 10 00 13 mov %l3, %o1 40015c5c: 94 10 00 1a mov %i2, %o2 40015c60: 40 00 1f cb call 4001db8c <__moddi3> 40015c64: 96 10 00 10 mov %l0, %o3
if (((rtems_rfs_fs_block_size (fs) -
40015c68: 86 a4 00 09 subcc %l0, %o1, %g3 40015c6c: 84 66 80 08 subx %i2, %o0, %g2 40015c70: 80 a0 a0 00 cmp %g2, 0
40015c74: 04 80 00 4f ble 40015db0 <rtems_rfs_dir_read+0x1a0> <== ALWAYS TAKEN
40015c78: b6 10 00 10 mov %l0, %i3
offset = (((offset / rtems_rfs_fs_block_size (fs)) + 1) * rtems_rfs_fs_block_size (fs)); rc = rtems_rfs_block_map_seek (fs, &map, offset, &block);
40015c7c: 94 10 00 12 mov %l2, %o2 <== NOT EXECUTED
40015c80: 96 10 00 13 mov %l3, %o3 40015c84: 98 07 bf a0 add %fp, -96, %o4 40015c88: 92 07 bf b0 add %fp, -80, %o1 40015c8c: 7f ff fa 4f call 400145c8 <rtems_rfs_block_map_seek> 40015c90: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40015c94: b6 92 20 00 orcc %o0, 0, %i3
40015c98: 14 80 00 5d bg 40015e0c <rtems_rfs_dir_read+0x1fc> <== NEVER TAKEN
40015c9c: 80 a6 e0 06 cmp %i3, 6
entry += map.bpos.boff; elength = rtems_rfs_dir_entry_length (entry); eino = rtems_rfs_dir_entry_ino (entry); if (elength != RTEMS_RFS_DIR_ENTRY_EMPTY)
40015ca0: 35 00 00 3f sethi %hi(0xfc00), %i2
} *length += rtems_rfs_fs_block_size (fs) - map.bpos.boff; if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ)) printf ("rtems-rfs: dir-read: next block: off:%" PRId64 " length:%zd\n",
40015ca4: 2d 10 00 8f sethi %hi(0x40023c00), %l6
handle->dirty = false;
40015ca8: c0 2f bf a4 clrb [ %fp + -92 ]
if (elength != RTEMS_RFS_DIR_ENTRY_EMPTY)
40015cac: b4 16 a3 ff or %i2, 0x3ff, %i2
handle->bnum = 0;
40015cb0: c0 27 bf a8 clr [ %fp + -88 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015cb4: a8 10 20 00 clr %l4
handle->buffer = NULL;
40015cb8: c0 27 bf ac clr [ %fp + -84 ] 40015cbc: 2b 20 00 00 sethi %hi(0x80000000), %l5
printf ("rtems-rfs: dir-read: next block: off:%" PRId64 " length:%zd\n",
40015cc0: 10 80 00 0b b 40015cec <rtems_rfs_dir_read+0xdc> 40015cc4: ac 15 a0 f0 or %l6, 0xf0, %l6
offset, *length); rc = rtems_rfs_block_map_next_block (fs, &map, &block);
40015cc8: 92 07 bf b0 add %fp, -80, %o1 40015ccc: 7f ff fa 5d call 40014640 <rtems_rfs_block_map_next_block> 40015cd0: 90 10 00 18 mov %i0, %o0
if (rc == ENXIO)
40015cd4: 80 a2 20 06 cmp %o0, 6
40015cd8: 02 80 00 2a be 40015d80 <rtems_rfs_dir_read+0x170> <== ALWAYS TAKEN
40015cdc: b6 10 00 08 mov %o0, %i3
while (rc == 0)
40015ce0: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40015ce4: 12 80 00 29 bne 40015d88 <rtems_rfs_dir_read+0x178> <== NOT EXECUTED 40015ce8: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, true);
40015cec: d4 07 bf a0 ld [ %fp + -96 ], %o2 40015cf0: 92 07 bf a4 add %fp, -92, %o1 40015cf4: 96 10 20 01 mov 1, %o3 40015cf8: 7f ff c5 4a call 40007220 <rtems_rfs_buffer_handle_request> 40015cfc: 90 10 00 18 mov %i0, %o0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015d00: 92 10 00 15 mov %l5, %o1
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, true);
40015d04: b6 10 00 08 mov %o0, %i3
if (rc > 0)
40015d08: 80 a6 e0 00 cmp %i3, 0
40015d0c: 14 80 00 1e bg 40015d84 <rtems_rfs_dir_read+0x174> <== NEVER TAKEN
40015d10: 90 10 00 14 mov %l4, %o0
entry = rtems_rfs_buffer_data (&buffer);
40015d14: c2 07 bf ac ld [ %fp + -84 ], %g1 40015d18: e0 00 60 1c ld [ %g1 + 0x1c ], %l0
entry += map.bpos.boff;
40015d1c: c6 07 bf c4 ld [ %fp + -60 ], %g3 40015d20: a0 04 00 03 add %l0, %g3, %l0
elength = rtems_rfs_dir_entry_length (entry);
40015d24: c2 0c 20 08 ldub [ %l0 + 8 ], %g1 40015d28: e2 0c 20 09 ldub [ %l0 + 9 ], %l1 40015d2c: 83 28 60 08 sll %g1, 8, %g1 40015d30: a2 14 40 01 or %l1, %g1, %l1
if (elength != RTEMS_RFS_DIR_ENTRY_EMPTY)
40015d34: 80 a4 40 1a cmp %l1, %i2
40015d38: 32 80 00 49 bne,a 40015e5c <rtems_rfs_dir_read+0x24c>
40015d3c: c4 0c 00 00 ldub [ %l0 ], %g2
*length += rtems_rfs_fs_block_size (fs) - map.bpos.boff;
40015d40: c4 06 20 08 ld [ %i0 + 8 ], %g2 40015d44: c2 07 40 00 ld [ %i5 ], %g1 40015d48: 84 20 80 03 sub %g2, %g3, %g2 40015d4c: 82 00 40 02 add %g1, %g2, %g1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015d50: 7f ff d3 9d call 4000abc4 <rtems_rfs_trace> 40015d54: c2 27 40 00 st %g1, [ %i5 ] 40015d58: 80 a2 20 00 cmp %o0, 0
40015d5c: 22 bf ff db be,a 40015cc8 <rtems_rfs_dir_read+0xb8> <== ALWAYS TAKEN
40015d60: 94 07 bf a0 add %fp, -96, %o2
printf ("rtems-rfs: dir-read: next block: off:%" PRId64 " length:%zd\n",
40015d64: d6 07 40 00 ld [ %i5 ], %o3 <== NOT EXECUTED 40015d68: 92 10 00 12 mov %l2, %o1 <== NOT EXECUTED 40015d6c: 94 10 00 13 mov %l3, %o2 <== NOT EXECUTED 40015d70: 7f ff b3 e2 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015d74: 90 10 00 16 mov %l6, %o0 <== NOT EXECUTED
rc = rtems_rfs_block_map_next_block (fs, &map, &block);
40015d78: 10 bf ff d4 b 40015cc8 <rtems_rfs_dir_read+0xb8> <== NOT EXECUTED 40015d7c: 94 07 bf a0 add %fp, -96, %o2 <== NOT EXECUTED
rc = ENOENT;
40015d80: b6 10 20 02 mov 2, %i3
rtems_rfs_buffer_handle_release (fs, handle);
40015d84: 92 07 bf a4 add %fp, -92, %o1 40015d88: 7f ff c5 ef call 40007544 <rtems_rfs_buffer_handle_release> 40015d8c: 90 10 00 18 mov %i0, %o0
} rtems_rfs_buffer_handle_close (fs, &buffer); rtems_rfs_block_map_close (fs, &map);
40015d90: 92 07 bf b0 add %fp, -80, %o1
handle->dirty = false;
40015d94: c0 2f bf a4 clrb [ %fp + -92 ] 40015d98: 90 10 00 18 mov %i0, %o0
handle->bnum = 0;
40015d9c: c0 27 bf a8 clr [ %fp + -88 ] 40015da0: 7f ff f9 42 call 400142a8 <rtems_rfs_block_map_close> 40015da4: c0 27 bf ac clr [ %fp + -84 ]
return rc; }
40015da8: 81 c7 e0 08 ret 40015dac: 91 e8 00 1b restore %g0, %i3, %o0
if (((rtems_rfs_fs_block_size (fs) -
40015db0: 02 80 00 27 be 40015e4c <rtems_rfs_dir_read+0x23c> <== ALWAYS TAKEN
40015db4: 80 a0 e0 0a cmp %g3, 0xa
offset = (((offset / rtems_rfs_fs_block_size (fs)) + 1) *
40015db8: 96 10 00 1b mov %i3, %o3 <== NOT EXECUTED 40015dbc: 90 10 00 12 mov %l2, %o0 <== NOT EXECUTED 40015dc0: 92 10 00 13 mov %l3, %o1 <== NOT EXECUTED 40015dc4: 40 00 1e e7 call 4001d960 <__divdi3> <== NOT EXECUTED 40015dc8: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 40015dcc: 86 82 60 01 addcc %o1, 1, %g3 <== NOT EXECUTED 40015dd0: 84 42 20 00 addx %o0, 0, %g2 <== NOT EXECUTED 40015dd4: 82 58 80 10 smul %g2, %l0, %g1 <== NOT EXECUTED 40015dd8: a6 54 00 03 umul %l0, %g3, %l3 <== NOT EXECUTED 40015ddc: a5 40 00 00 rd %y, %l2 <== NOT EXECUTED
rc = rtems_rfs_block_map_seek (fs, &map, offset, &block);
40015de0: 98 07 bf a0 add %fp, -96, %o4 <== NOT EXECUTED
offset = (((offset / rtems_rfs_fs_block_size (fs)) + 1) *
40015de4: a4 00 40 12 add %g1, %l2, %l2 <== NOT EXECUTED
rc = rtems_rfs_block_map_seek (fs, &map, offset, &block);
40015de8: 96 10 00 13 mov %l3, %o3 <== NOT EXECUTED 40015dec: 94 10 00 12 mov %l2, %o2 <== NOT EXECUTED 40015df0: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 40015df4: 7f ff f9 f5 call 400145c8 <rtems_rfs_block_map_seek> <== NOT EXECUTED 40015df8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
if (rc > 0)
40015dfc: b6 92 20 00 orcc %o0, 0, %i3 <== NOT EXECUTED 40015e00: 24 bf ff a9 ble,a 40015ca4 <rtems_rfs_dir_read+0x94> <== NOT EXECUTED 40015e04: 35 00 00 3f sethi %hi(0xfc00), %i2 <== NOT EXECUTED
if (rc == ENXIO)
40015e08: 80 a6 e0 06 cmp %i3, 6 <== NOT EXECUTED 40015e0c: 22 80 00 02 be,a 40015e14 <rtems_rfs_dir_read+0x204> <== NOT EXECUTED 40015e10: b6 10 20 02 mov 2, %i3 <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40015e14: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 40015e18: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40015e1c: 7f ff f9 23 call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 40015e20: b0 10 00 1b mov %i3, %i0 <== NOT EXECUTED
}
40015e24: 81 c7 e0 08 ret <== NOT EXECUTED 40015e28: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: dir-read: dir=%" PRId32 " offset=%" PRId64 "\n",
40015e2c: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 40015e30: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 40015e34: 96 10 00 1b mov %i3, %o3 <== NOT EXECUTED 40015e38: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 40015e3c: 7f ff b3 af call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015e40: 90 12 20 40 or %o0, 0x40, %o0 ! 40023c40 <IMFS_LIMITS_AND_OPTIONS+0x700><== NOT EXECUTED
*length = 0;
40015e44: 10 bf ff 7c b 40015c34 <rtems_rfs_dir_read+0x24> <== NOT EXECUTED 40015e48: c0 27 40 00 clr [ %i5 ] <== NOT EXECUTED
if (((rtems_rfs_fs_block_size (fs) -
40015e4c: 38 bf ff 8d bgu,a 40015c80 <rtems_rfs_dir_read+0x70> <== ALWAYS TAKEN
40015e50: 94 10 00 12 mov %l2, %o2
offset = (((offset / rtems_rfs_fs_block_size (fs)) + 1) *
40015e54: 10 bf ff da b 40015dbc <rtems_rfs_dir_read+0x1ac> <== NOT EXECUTED 40015e58: 96 10 00 1b mov %i3, %o3 <== NOT EXECUTED
eino = rtems_rfs_dir_entry_ino (entry);
40015e5c: c2 0c 20 01 ldub [ %l0 + 1 ], %g1 40015e60: d6 0c 20 02 ldub [ %l0 + 2 ], %o3 40015e64: c6 0c 20 03 ldub [ %l0 + 3 ], %g3 40015e68: 85 28 a0 18 sll %g2, 0x18, %g2 40015e6c: 83 28 60 10 sll %g1, 0x10, %g1 40015e70: 97 2a e0 08 sll %o3, 8, %o3 40015e74: 82 10 40 02 or %g1, %g2, %g1
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
40015e78: 80 a4 60 0a cmp %l1, 0xa
eino = rtems_rfs_dir_entry_ino (entry);
40015e7c: 96 12 c0 01 or %o3, %g1, %o3
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
40015e80: 04 80 00 47 ble 40015f9c <rtems_rfs_dir_read+0x38c> <== NEVER TAKEN
40015e84: b4 10 c0 0b or %g3, %o3, %i2 40015e88: c2 06 20 1c ld [ %i0 + 0x1c ], %g1 40015e8c: 80 a4 40 01 cmp %l1, %g1
40015e90: 1a 80 00 43 bcc 40015f9c <rtems_rfs_dir_read+0x38c> <== NEVER TAKEN
40015e94: 80 a6 a0 00 cmp %i2, 0
40015e98: 02 80 00 42 be 40015fa0 <rtems_rfs_dir_read+0x390> <== NEVER TAKEN
40015e9c: 90 10 20 00 clr %o0 40015ea0: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 40015ea4: 80 a0 40 1a cmp %g1, %i2
40015ea8: 0a 80 00 3f bcs 40015fa4 <rtems_rfs_dir_read+0x394> <== NEVER TAKEN
40015eac: 13 20 00 00 sethi %hi(0x80000000), %o1
memset (dirent, 0, sizeof (struct dirent));
40015eb0: 94 10 21 18 mov 0x118, %o2 40015eb4: 92 10 20 00 clr %o1 40015eb8: 40 00 22 79 call 4001e89c <memset> 40015ebc: 90 10 00 1c mov %i4, %o0
dirent->d_off = rtems_rfs_block_get_pos (fs, &map.bpos);
40015ec0: 92 07 bf c0 add %fp, -64, %o1 40015ec4: 7f ff f8 80 call 400140c4 <rtems_rfs_block_get_pos> 40015ec8: 90 10 00 18 mov %i0, %o0
*length += elength;
40015ecc: c2 07 40 00 ld [ %i5 ], %g1
dirent->d_reclen = sizeof (struct dirent);
40015ed0: 86 10 21 18 mov 0x118, %g3
dirent->d_off = rtems_rfs_block_get_pos (fs, &map.bpos);
40015ed4: d0 3f 20 08 std %o0, [ %i4 + 8 ]
*length += elength;
40015ed8: 84 04 40 01 add %l1, %g1, %g2
dirent->d_reclen = sizeof (struct dirent);
40015edc: c6 37 20 10 sth %g3, [ %i4 + 0x10 ]
*length += elength;
40015ee0: c4 27 40 00 st %g2, [ %i5 ]
remaining = rtems_rfs_fs_block_size (fs) - (map.bpos.boff + elength);
40015ee4: c6 07 bf c4 ld [ %fp + -60 ], %g3 40015ee8: c4 06 20 08 ld [ %i0 + 8 ], %g2 40015eec: 84 20 80 03 sub %g2, %g3, %g2 40015ef0: 86 20 80 11 sub %g2, %l1, %g3
if (remaining <= RTEMS_RFS_DIR_ENTRY_SIZE)
40015ef4: 80 a0 e0 0a cmp %g3, 0xa
40015ef8: 14 80 00 04 bg 40015f08 <rtems_rfs_dir_read+0x2f8> <== ALWAYS TAKEN
40015efc: a2 04 7f f6 add %l1, -10, %l1
*length += remaining;
40015f00: 82 00 40 02 add %g1, %g2, %g1 <== NOT EXECUTED 40015f04: c2 27 40 00 st %g1, [ %i5 ] <== NOT EXECUTED
if (elength > NAME_MAX)
40015f08: 80 a4 60 ff cmp %l1, 0xff
40015f0c: 34 80 00 02 bg,a 40015f14 <rtems_rfs_dir_read+0x304> <== NEVER TAKEN
40015f10: a2 10 20 ff mov 0xff, %l1 <== NOT EXECUTED
memcpy (dirent->d_name, entry + RTEMS_RFS_DIR_ENTRY_SIZE, elength);
40015f14: 9a 07 20 16 add %i4, 0x16, %o5 40015f18: 94 10 00 11 mov %l1, %o2 40015f1c: da 27 bf 9c st %o5, [ %fp + -100 ] 40015f20: 90 10 00 0d mov %o5, %o0 40015f24: 40 00 21 d4 call 4001e674 <memcpy> 40015f28: 92 04 20 0a add %l0, 0xa, %o1
dirent->d_ino = rtems_rfs_dir_entry_ino (entry);
40015f2c: c8 0c 00 00 ldub [ %l0 ], %g4 40015f30: c4 0c 20 01 ldub [ %l0 + 1 ], %g2 40015f34: c2 0c 20 02 ldub [ %l0 + 2 ], %g1 40015f38: c6 0c 20 03 ldub [ %l0 + 3 ], %g3 40015f3c: 89 29 20 18 sll %g4, 0x18, %g4 40015f40: c0 27 00 00 clr [ %i4 ] 40015f44: 85 28 a0 10 sll %g2, 0x10, %g2
dirent->d_namlen = elength;
40015f48: e2 37 20 14 sth %l1, [ %i4 + 0x14 ]
dirent->d_ino = rtems_rfs_dir_entry_ino (entry);
40015f4c: 84 10 80 04 or %g2, %g4, %g2 40015f50: 83 28 60 08 sll %g1, 8, %g1 40015f54: 82 10 40 02 or %g1, %g2, %g1 40015f58: 82 10 c0 01 or %g3, %g1, %g1 40015f5c: c2 27 20 04 st %g1, [ %i4 + 4 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015f60: 90 10 20 00 clr %o0 40015f64: 7f ff d3 18 call 4000abc4 <rtems_rfs_trace> 40015f68: 13 20 00 00 sethi %hi(0x80000000), %o1 40015f6c: 80 a2 20 00 cmp %o0, 0
40015f70: 02 bf ff 85 be 40015d84 <rtems_rfs_dir_read+0x174> <== ALWAYS TAKEN
40015f74: da 07 bf 9c ld [ %fp + -100 ], %o5
printf ("rtems-rfs: dir-read: found off:%" PRIooff_t
40015f78: d6 07 00 00 ld [ %i4 ], %o3 <== NOT EXECUTED 40015f7c: d8 07 20 04 ld [ %i4 + 4 ], %o4 <== NOT EXECUTED 40015f80: d2 07 20 08 ld [ %i4 + 8 ], %o1 <== NOT EXECUTED 40015f84: d4 07 20 0c ld [ %i4 + 0xc ], %o2 <== NOT EXECUTED 40015f88: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 40015f8c: 7f ff b3 5b call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015f90: 90 12 20 b8 or %o0, 0xb8, %o0 ! 40023cb8 <IMFS_LIMITS_AND_OPTIONS+0x778><== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40015f94: 10 bf ff 7d b 40015d88 <rtems_rfs_dir_read+0x178> <== NOT EXECUTED 40015f98: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015f9c: 90 10 20 00 clr %o0 <== NOT EXECUTED 40015fa0: 13 20 00 00 sethi %hi(0x80000000), %o1 <== NOT EXECUTED 40015fa4: 7f ff d3 08 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40015fa8: b6 10 20 05 mov 5, %i3 <== NOT EXECUTED 40015fac: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40015fb0: 22 bf ff 76 be,a 40015d88 <rtems_rfs_dir_read+0x178> <== NOT EXECUTED 40015fb4: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
printf ("rtems-rfs: dir-read: "
40015fb8: d8 07 bf c4 ld [ %fp + -60 ], %o4 <== NOT EXECUTED 40015fbc: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 40015fc0: 96 10 00 1a mov %i2, %o3 <== NOT EXECUTED 40015fc4: 94 10 00 11 mov %l1, %o2 <== NOT EXECUTED 40015fc8: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 40015fcc: 7f ff b3 4b call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40015fd0: 90 12 20 70 or %o0, 0x70, %o0 ! 40023c70 <IMFS_LIMITS_AND_OPTIONS+0x730><== NOT EXECUTED 40015fd4: 10 bf ff 6d b 40015d88 <rtems_rfs_dir_read+0x178> <== NOT EXECUTED 40015fd8: 92 07 bf a4 add %fp, -92, %o1 <== NOT EXECUTED
400167d8 <rtems_rfs_file_close>: {
400167d8: 9d e3 bf 98 save %sp, -104, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_CLOSE))
400167dc: 90 10 20 10 mov 0x10, %o0 400167e0: 7f ff d0 f9 call 4000abc4 <rtems_rfs_trace> 400167e4: 92 10 20 00 clr %o1 400167e8: 80 a2 20 00 cmp %o0, 0
400167ec: 32 80 00 79 bne,a 400169d0 <rtems_rfs_file_close+0x1f8> <== NEVER TAKEN
400167f0: c2 06 60 1c ld [ %i1 + 0x1c ], %g1 <== NOT EXECUTED
if (handle->shared->references > 0)
400167f4: d2 06 60 1c ld [ %i1 + 0x1c ], %o1 400167f8: fa 02 60 08 ld [ %o1 + 8 ], %i5 400167fc: 80 a7 60 00 cmp %i5, 0
40016800: 04 80 00 05 ble 40016814 <rtems_rfs_file_close+0x3c> <== NEVER TAKEN
40016804: 01 00 00 00 nop
handle->shared->references--;
40016808: ba 07 7f ff add %i5, -1, %i5 4001680c: fa 22 60 08 st %i5, [ %o1 + 8 ]
if (handle->shared->references == 0)
40016810: 80 a7 60 00 cmp %i5, 0
40016814: 02 80 00 0b be 40016840 <rtems_rfs_file_close+0x68> <== ALWAYS TAKEN
40016818: b6 06 60 04 add %i1, 4, %i3
4001681c: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40016820: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40016824: 7f ff c3 48 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40016828: ba 10 20 00 clr %i5 <== NOT EXECUTED
free (handle);
4001682c: 90 10 00 19 mov %i1, %o0 40016830: 7f ff b1 f4 call 40003000 <free> 40016834: b0 10 00 1d mov %i5, %i0
}
40016838: 81 c7 e0 08 ret 4001683c: 81 e8 00 00 restore
if (!rtems_rfs_inode_is_loaded (&handle->shared->inode))
40016840: c4 02 60 18 ld [ %o1 + 0x18 ], %g2 40016844: 80 a0 a0 00 cmp %g2, 0
40016848: 22 80 00 87 be,a 40016a64 <rtems_rfs_file_close+0x28c> <== ALWAYS TAKEN
4001684c: 92 02 60 0c add %o1, 0xc, %o1
rtems_rfs_inode_set_atime (&handle->shared->inode,
40016850: c2 02 60 8c ld [ %o1 + 0x8c ], %g1
rtems_rfs_write_u32 (&handle->node->atime, atime);
40016854: 87 30 60 18 srl %g1, 0x18, %g3 40016858: c6 28 a0 10 stb %g3, [ %g2 + 0x10 ] 4001685c: 87 30 60 10 srl %g1, 0x10, %g3 40016860: c4 02 60 18 ld [ %o1 + 0x18 ], %g2 40016864: c6 28 a0 11 stb %g3, [ %g2 + 0x11 ] 40016868: 87 30 60 08 srl %g1, 8, %g3 4001686c: c4 02 60 18 ld [ %o1 + 0x18 ], %g2 40016870: c6 28 a0 12 stb %g3, [ %g2 + 0x12 ]
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40016874: 88 10 20 01 mov 1, %g4
rtems_rfs_write_u32 (&handle->node->atime, atime);
40016878: c4 02 60 18 ld [ %o1 + 0x18 ], %g2 4001687c: c2 28 a0 13 stb %g1, [ %g2 + 0x13 ]
rtems_rfs_inode_set_mtime (&handle->shared->inode,
40016880: c4 06 60 1c ld [ %i1 + 0x1c ], %g2 40016884: c2 00 a0 90 ld [ %g2 + 0x90 ], %g1
rtems_rfs_write_u32 (&handle->node->mtime, mtime);
40016888: c6 00 a0 18 ld [ %g2 + 0x18 ], %g3
rtems_rfs_buffer_mark_dirty (&handle->buffer);
4001688c: c8 2a 60 1c stb %g4, [ %o1 + 0x1c ]
rtems_rfs_write_u32 (&handle->node->mtime, mtime);
40016890: b9 30 60 18 srl %g1, 0x18, %i4 40016894: f8 28 e0 14 stb %i4, [ %g3 + 0x14 ] 40016898: b9 30 60 10 srl %g1, 0x10, %i4 4001689c: c6 00 a0 18 ld [ %g2 + 0x18 ], %g3 400168a0: f8 28 e0 15 stb %i4, [ %g3 + 0x15 ] 400168a4: b9 30 60 08 srl %g1, 8, %i4 400168a8: c6 00 a0 18 ld [ %g2 + 0x18 ], %g3 400168ac: f8 28 e0 16 stb %i4, [ %g3 + 0x16 ] 400168b0: c6 00 a0 18 ld [ %g2 + 0x18 ], %g3 400168b4: c2 28 e0 17 stb %g1, [ %g3 + 0x17 ]
rtems_rfs_inode_set_ctime (&handle->shared->inode,
400168b8: c2 06 60 1c ld [ %i1 + 0x1c ], %g1 400168bc: c6 00 60 94 ld [ %g1 + 0x94 ], %g3
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400168c0: c8 28 a0 1c stb %g4, [ %g2 + 0x1c ]
rtems_rfs_write_u32 (&handle->node->ctime, ctime);
400168c4: b9 30 e0 18 srl %g3, 0x18, %i4 400168c8: c4 00 60 18 ld [ %g1 + 0x18 ], %g2 400168cc: f8 28 a0 18 stb %i4, [ %g2 + 0x18 ] 400168d0: b9 30 e0 10 srl %g3, 0x10, %i4 400168d4: c4 00 60 18 ld [ %g1 + 0x18 ], %g2 400168d8: f8 28 a0 19 stb %i4, [ %g2 + 0x19 ] 400168dc: b9 30 e0 08 srl %g3, 8, %i4 400168e0: c4 00 60 18 ld [ %g1 + 0x18 ], %g2 400168e4: f8 28 a0 1a stb %i4, [ %g2 + 0x1a ] 400168e8: c4 00 60 18 ld [ %g1 + 0x18 ], %g2 400168ec: c6 28 a0 1b stb %g3, [ %g2 + 0x1b ]
if (!rtems_rfs_block_size_equal (&handle->shared->size,
400168f0: d2 06 60 1c ld [ %i1 + 0x1c ], %o1
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400168f4: c8 28 60 1c stb %g4, [ %g1 + 0x1c ] 400168f8: c2 02 60 84 ld [ %o1 + 0x84 ], %g1 400168fc: c4 02 60 3c ld [ %o1 + 0x3c ], %g2 40016900: 80 a0 40 02 cmp %g1, %g2
40016904: 02 80 00 77 be 40016ae0 <rtems_rfs_file_close+0x308> <== ALWAYS TAKEN
40016908: c4 02 60 88 ld [ %o1 + 0x88 ], %g2
*/ static inline void rtems_rfs_block_map_set_size (rtems_rfs_block_map* map, rtems_rfs_block_size* size) { rtems_rfs_block_copy_size (&map->size, size);
4001690c: c2 22 60 3c st %g1, [ %o1 + 0x3c ] <== NOT EXECUTED
map->dirty = true;
40016910: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED
rtems_rfs_block_copy_size (&map->size, size);
40016914: c4 22 60 40 st %g2, [ %o1 + 0x40 ] <== NOT EXECUTED
map->dirty = true;
40016918: c2 2a 60 34 stb %g1, [ %o1 + 0x34 ] <== NOT EXECUTED
rc = rtems_rfs_block_map_close (fs, &handle->shared->map);
4001691c: 92 02 60 34 add %o1, 0x34, %o1 <== NOT EXECUTED
40016920: 7f ff f6 62 call 400142a8 <rtems_rfs_block_map_close> 40016924: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40016928: b8 92 20 00 orcc %o0, 0, %i4
4001692c: 14 80 00 44 bg 40016a3c <rtems_rfs_file_close+0x264> <== NEVER TAKEN
40016930: 90 10 20 10 mov 0x10, %o0
rc = rtems_rfs_inode_close (fs, &handle->shared->inode);
40016934: d2 06 60 1c ld [ %i1 + 0x1c ], %o1 40016938: 92 02 60 0c add %o1, 0xc, %o1 4001693c: 7f ff ca 6e call 400092f4 <rtems_rfs_inode_close> 40016940: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40016944: b8 92 20 00 orcc %o0, 0, %i4
40016948: 34 80 00 28 bg,a 400169e8 <rtems_rfs_file_close+0x210> <== NEVER TAKEN
4001694c: 90 10 20 10 mov 0x10, %o0 <== NOT EXECUTED
rtems_chain_extract_unprotected (&handle->shared->link);
40016950: d0 06 60 1c ld [ %i1 + 0x1c ], %o0
next = the_node->next;
40016954: c4 02 00 00 ld [ %o0 ], %g2
previous = the_node->previous;
40016958: c2 02 20 04 ld [ %o0 + 4 ], %g1
next->previous = previous;
4001695c: c2 20 a0 04 st %g1, [ %g2 + 4 ]
free (handle->shared);
40016960: 7f ff b1 a8 call 40003000 <free> 40016964: c4 20 40 00 st %g2, [ %g1 ] 40016968: 92 10 00 1b mov %i3, %o1 4001696c: 7f ff c2 f6 call 40007544 <rtems_rfs_buffer_handle_release> 40016970: 90 10 00 18 mov %i0, %o0
handle->dirty = false;
40016974: c0 2e 60 04 clrb [ %i1 + 4 ]
if (rrc > 0)
40016978: 80 a7 60 00 cmp %i5, 0
handle->bnum = 0;
4001697c: c0 26 60 08 clr [ %i1 + 8 ]
40016980: 04 bf ff ab ble 4001682c <rtems_rfs_file_close+0x54> <== ALWAYS TAKEN
40016984: c0 26 60 0c clr [ %i1 + 0xc ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_CLOSE))
40016988: 90 10 20 10 mov 0x10, %o0 <== NOT EXECUTED 4001698c: 7f ff d0 8e call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40016990: 92 10 20 00 clr %o1 <== NOT EXECUTED 40016994: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40016998: 22 bf ff a6 be,a 40016830 <rtems_rfs_file_close+0x58> <== NOT EXECUTED 4001699c: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED
printf ("rtems-rfs: file-close: result: %d: %s\n", rrc, strerror (rrc));
400169a0: 40 00 23 1b call 4001f60c <strerror> <== NOT EXECUTED 400169a4: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400169a8: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 400169ac: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400169b0: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 400169b4: 7f ff b0 d1 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400169b8: 90 12 23 18 or %o0, 0x318, %o0 ! 40023f18 <IMFS_LIMITS_AND_OPTIONS+0x9d8><== NOT EXECUTED
free (handle);
400169bc: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 400169c0: 7f ff b1 90 call 40003000 <free> <== NOT EXECUTED 400169c4: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED
}
400169c8: 81 c7 e0 08 ret <== NOT EXECUTED 400169cc: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: file-close: entry: ino=%" PRId32 "\n",
400169d0: d2 00 60 14 ld [ %g1 + 0x14 ], %o1 <== NOT EXECUTED 400169d4: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 400169d8: 7f ff b0 c8 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400169dc: 90 12 22 78 or %o0, 0x278, %o0 ! 40023e78 <IMFS_LIMITS_AND_OPTIONS+0x938><== NOT EXECUTED
if (handle->shared->references > 0)
400169e0: 10 bf ff 86 b 400167f8 <rtems_rfs_file_close+0x20> <== NOT EXECUTED 400169e4: d2 06 60 1c ld [ %i1 + 0x1c ], %o1 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_CLOSE))
400169e8: 7f ff d0 77 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400169ec: 92 10 20 00 clr %o1 <== NOT EXECUTED 400169f0: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400169f4: 32 80 00 2f bne,a 40016ab0 <rtems_rfs_file_close+0x2d8> <== NOT EXECUTED 400169f8: c2 06 60 1c ld [ %i1 + 0x1c ], %g1 <== NOT EXECUTED
rtems_chain_extract_unprotected (&handle->shared->link);
400169fc: d0 06 60 1c ld [ %i1 + 0x1c ], %o0 <== NOT EXECUTED
next = the_node->next;
40016a00: c4 02 00 00 ld [ %o0 ], %g2 <== NOT EXECUTED
if (rrc == 0)
40016a04: 80 a7 60 00 cmp %i5, 0 <== NOT EXECUTED 40016a08: 12 bf ff d5 bne 4001695c <rtems_rfs_file_close+0x184> <== NOT EXECUTED 40016a0c: c2 02 20 04 ld [ %o0 + 4 ], %g1 <== NOT EXECUTED
next->previous = previous;
40016a10: c2 20 a0 04 st %g1, [ %g2 + 4 ] <== NOT EXECUTED
handle->buffer = NULL;
40016a14: ba 10 00 1c mov %i4, %i5 <== NOT EXECUTED
free (handle->shared);
40016a18: 7f ff b1 7a call 40003000 <free> <== NOT EXECUTED 40016a1c: c4 20 40 00 st %g2, [ %g1 ] <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40016a20: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40016a24: 7f ff c2 c8 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40016a28: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
handle->dirty = false;
40016a2c: c0 2e 60 04 clrb [ %i1 + 4 ] <== NOT EXECUTED
handle->bnum = 0;
40016a30: c0 26 60 08 clr [ %i1 + 8 ] <== NOT EXECUTED
handle->buffer = NULL;
40016a34: 10 bf ff d5 b 40016988 <rtems_rfs_file_close+0x1b0> <== NOT EXECUTED 40016a38: c0 26 60 0c clr [ %i1 + 0xc ] <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_CLOSE))
40016a3c: 7f ff d0 62 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40016a40: 92 10 20 00 clr %o1 <== NOT EXECUTED 40016a44: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40016a48: 32 80 00 0e bne,a 40016a80 <rtems_rfs_file_close+0x2a8> <== NOT EXECUTED 40016a4c: c2 06 60 1c ld [ %i1 + 0x1c ], %g1 <== NOT EXECUTED
if (rrc == 0)
40016a50: 80 a7 60 00 cmp %i5, 0 <== NOT EXECUTED 40016a54: 22 bf ff b8 be,a 40016934 <rtems_rfs_file_close+0x15c> <== NOT EXECUTED 40016a58: ba 10 00 1c mov %i4, %i5 <== NOT EXECUTED
rc = rtems_rfs_inode_close (fs, &handle->shared->inode);
40016a5c: 10 bf ff b7 b 40016938 <rtems_rfs_file_close+0x160> <== NOT EXECUTED 40016a60: d2 06 60 1c ld [ %i1 + 0x1c ], %o1 <== NOT EXECUTED
rrc = rtems_rfs_inode_load (fs, &handle->shared->inode);
40016a64: 7f ff c9 7e call 4000905c <rtems_rfs_inode_load> 40016a68: 90 10 00 18 mov %i0, %o0
if (rrc == 0)
40016a6c: 80 a2 20 00 cmp %o0, 0
40016a70: 02 80 00 22 be 40016af8 <rtems_rfs_file_close+0x320> <== ALWAYS TAKEN
40016a74: d2 06 60 1c ld [ %i1 + 0x1c ], %o1
rc = rtems_rfs_block_map_close (fs, &handle->shared->map);
40016a78: 10 bf ff a9 b 4001691c <rtems_rfs_file_close+0x144> <== NOT EXECUTED 40016a7c: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED
printf ("rtems-rfs: file-close: map close error: ino=%" PRId32 ": %d: %s\n",
40016a80: d2 00 60 14 ld [ %g1 + 0x14 ], %o1 <== NOT EXECUTED 40016a84: d2 27 bf fc st %o1, [ %fp + -4 ] <== NOT EXECUTED 40016a88: 40 00 22 e1 call 4001f60c <strerror> <== NOT EXECUTED 40016a8c: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 40016a90: d2 07 bf fc ld [ %fp + -4 ], %o1 <== NOT EXECUTED 40016a94: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 40016a98: 94 10 00 1c mov %i4, %o2 <== NOT EXECUTED 40016a9c: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 40016aa0: 7f ff b0 96 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40016aa4: 90 12 22 a0 or %o0, 0x2a0, %o0 ! 40023ea0 <IMFS_LIMITS_AND_OPTIONS+0x960><== NOT EXECUTED
if (rrc == 0)
40016aa8: 10 bf ff eb b 40016a54 <rtems_rfs_file_close+0x27c> <== NOT EXECUTED 40016aac: 80 a7 60 00 cmp %i5, 0 <== NOT EXECUTED
printf ("rtems-rfs: file-close: inode close error: ino=%" PRId32 ": %d: %s\n",
40016ab0: d2 00 60 14 ld [ %g1 + 0x14 ], %o1 <== NOT EXECUTED 40016ab4: d2 27 bf fc st %o1, [ %fp + -4 ] <== NOT EXECUTED 40016ab8: 40 00 22 d5 call 4001f60c <strerror> <== NOT EXECUTED 40016abc: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED 40016ac0: d2 07 bf fc ld [ %fp + -4 ], %o1 <== NOT EXECUTED 40016ac4: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 40016ac8: 94 10 00 1c mov %i4, %o2 <== NOT EXECUTED 40016acc: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 40016ad0: 7f ff b0 8a call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40016ad4: 90 12 22 d8 or %o0, 0x2d8, %o0 ! 40023ed8 <IMFS_LIMITS_AND_OPTIONS+0x998><== NOT EXECUTED
rtems_chain_extract_unprotected (&handle->shared->link);
40016ad8: 10 bf ff ca b 40016a00 <rtems_rfs_file_close+0x228> <== NOT EXECUTED 40016adc: d0 06 60 1c ld [ %i1 + 0x1c ], %o0 <== NOT EXECUTED
if (!rtems_rfs_block_size_equal (&handle->shared->size,
40016ae0: c6 02 60 40 ld [ %o1 + 0x40 ], %g3 40016ae4: 80 a0 80 03 cmp %g2, %g3
40016ae8: 32 bf ff 8a bne,a 40016910 <rtems_rfs_file_close+0x138> <== NEVER TAKEN
40016aec: c2 22 60 3c st %g1, [ %o1 + 0x3c ] <== NOT EXECUTED
40016af0: 10 bf ff 8c b 40016920 <rtems_rfs_file_close+0x148> 40016af4: 92 02 60 34 add %o1, 0x34, %o1
rtems_rfs_write_u32 (&handle->node->atime, atime);
40016af8: 10 bf ff 56 b 40016850 <rtems_rfs_file_close+0x78> 40016afc: c4 02 60 18 ld [ %o1 + 0x18 ], %g2
400174b8 <rtems_rfs_file_get_shared>: return _Chain_Immutable_head( the_chain )->next;
400174b8: c2 02 20 74 ld [ %o0 + 0x74 ], %g1
return &the_chain->Tail.Node;
400174bc: 90 02 20 78 add %o0, 0x78, %o0
while (!rtems_chain_is_tail (&fs->file_shares, node))
400174c0: 80 a0 40 08 cmp %g1, %o0
400174c4: 32 80 00 08 bne,a 400174e4 <rtems_rfs_file_get_shared+0x2c>
400174c8: c4 00 60 14 ld [ %g1 + 0x14 ], %g2
return shared; node = rtems_chain_next (node); } return NULL;
400174cc: 10 80 00 0b b 400174f8 <rtems_rfs_file_get_shared+0x40> 400174d0: 82 10 20 00 clr %g1
while (!rtems_chain_is_tail (&fs->file_shares, node))
400174d4: 80 a0 40 08 cmp %g1, %o0 <== NOT EXECUTED 400174d8: 22 80 00 08 be,a 400174f8 <rtems_rfs_file_get_shared+0x40> <== NOT EXECUTED 400174dc: 82 10 20 00 clr %g1 <== NOT EXECUTED
if (shared->inode.ino == ino)
400174e0: c4 00 60 14 ld [ %g1 + 0x14 ], %g2 <== NOT EXECUTED
400174e4: 80 a0 80 09 cmp %g2, %o1
400174e8: 32 bf ff fb bne,a 400174d4 <rtems_rfs_file_get_shared+0x1c> <== NEVER TAKEN
400174ec: c2 00 40 00 ld [ %g1 ], %g1 <== NOT EXECUTED
}
400174f0: 81 c3 e0 08 retl 400174f4: 90 10 00 01 mov %g1, %o0 400174f8: 81 c3 e0 08 retl 400174fc: 90 10 00 01 mov %g1, %o0
40016d74 <rtems_rfs_file_io_end>: {
40016d74: 9d e3 bf 98 save %sp, -104, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016d78: 90 10 20 20 mov 0x20, %o0 40016d7c: 92 10 20 00 clr %o1 40016d80: 7f ff cf 91 call 4000abc4 <rtems_rfs_trace> 40016d84: b8 10 00 18 mov %i0, %i4 40016d88: 80 a2 20 00 cmp %o0, 0
40016d8c: 22 80 00 0c be,a 40016dbc <rtems_rfs_file_io_end+0x48> <== ALWAYS TAKEN
40016d90: c2 07 20 1c ld [ %i4 + 0x1c ], %g1
printf ("rtems-rfs: file-io: end: %s size=%zu\n",
40016d94: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 40016d98: 12 80 00 6e bne 40016f50 <rtems_rfs_file_io_end+0x1dc> <== NOT EXECUTED 40016d9c: 13 10 00 87 sethi %hi(0x40021c00), %o1 <== NOT EXECUTED 40016da0: 13 10 00 8f sethi %hi(0x40023c00), %o1 <== NOT EXECUTED 40016da4: 92 12 63 40 or %o1, 0x340, %o1 ! 40023f40 <IMFS_LIMITS_AND_OPTIONS+0xa00><== NOT EXECUTED 40016da8: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40016dac: 94 10 00 19 mov %i1, %o2 <== NOT EXECUTED 40016db0: 7f ff af d2 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40016db4: 90 12 20 00 mov %o0, %o0 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
40016db8: c2 07 20 1c ld [ %i4 + 0x1c ], %g1 <== NOT EXECUTED
if (rtems_rfs_buffer_handle_has_block (&handle->buffer))
40016dbc: c4 07 20 0c ld [ %i4 + 0xc ], %g2 40016dc0: 80 a0 a0 00 cmp %g2, 0
40016dc4: 02 80 00 73 be 40016f90 <rtems_rfs_file_io_end+0x21c> <== NEVER TAKEN
40016dc8: d0 00 60 98 ld [ %g1 + 0x98 ], %o0
if (!read)
40016dcc: 80 a6 a0 00 cmp %i2, 0
40016dd0: 12 80 00 50 bne 40016f10 <rtems_rfs_file_io_end+0x19c>
40016dd4: 92 07 20 04 add %i4, 4, %o1
rtems_rfs_buffer_mark_dirty (rtems_rfs_file_buffer (handle));
40016dd8: 82 10 20 01 mov 1, %g1
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
40016ddc: 7f ff c1 da call 40007544 <rtems_rfs_buffer_handle_release> 40016de0: c2 2f 20 04 stb %g1, [ %i4 + 4 ]
if (rc > 0)
40016de4: b0 92 20 00 orcc %o0, 0, %i0
40016de8: 14 80 00 84 bg 40016ff8 <rtems_rfs_file_io_end+0x284> <== NEVER TAKEN
40016dec: 13 10 00 8f sethi %hi(0x40023c00), %o1
handle->bpos.boff += size;
40016df0: d4 07 20 14 ld [ %i4 + 0x14 ], %o2
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
40016df4: c2 07 20 1c ld [ %i4 + 0x1c ], %g1 40016df8: c4 00 60 98 ld [ %g1 + 0x98 ], %g2
handle->bpos.boff += size;
40016dfc: b2 06 40 0a add %i1, %o2, %i1 40016e00: f2 27 20 14 st %i1, [ %i4 + 0x14 ]
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
40016e04: c4 00 a0 08 ld [ %g2 + 8 ], %g2
if (handle->bpos.boff >=
40016e08: 80 a0 80 19 cmp %g2, %i1
40016e0c: 18 80 00 0a bgu 40016e34 <rtems_rfs_file_io_end+0xc0>
40016e10: 88 10 20 01 mov 1, %g4
handle->bpos.bno++;
40016e14: c6 07 20 10 ld [ %i4 + 0x10 ], %g3 40016e18: 86 00 e0 01 inc %g3
handle->bpos.boff -= rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
40016e1c: b2 26 40 02 sub %i1, %g2, %i1
handle->bpos.bno++;
40016e20: c6 27 20 10 st %g3, [ %i4 + 0x10 ]
handle->bpos.boff -= rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
40016e24: f2 27 20 14 st %i1, [ %i4 + 0x14 ]
if (!read &&
40016e28: 80 a6 a0 00 cmp %i2, 0
40016e2c: 12 80 00 0e bne 40016e64 <rtems_rfs_file_io_end+0xf0>
40016e30: 84 10 20 00 clr %g2
rtems_rfs_block_map_past_end (rtems_rfs_file_map (handle),
40016e34: fa 07 20 10 ld [ %i4 + 0x10 ], %i5
if (!read &&
40016e38: 80 a7 60 00 cmp %i5, 0
40016e3c: 02 80 00 47 be 40016f58 <rtems_rfs_file_io_end+0x1e4>
40016e40: c4 00 60 3c ld [ %g1 + 0x3c ], %g2
rtems_rfs_block_map_past_end (rtems_rfs_file_map (handle),
40016e44: 80 a0 a0 00 cmp %g2, 0
40016e48: 12 80 00 45 bne 40016f5c <rtems_rfs_file_io_end+0x1e8> <== ALWAYS TAKEN
40016e4c: 80 a7 40 02 cmp %i5, %g2
40016e50: c6 07 20 14 ld [ %i4 + 0x14 ], %g3 <== NOT EXECUTED
map->size.offset = offset;
40016e54: c6 20 60 40 st %g3, [ %g1 + 0x40 ]
map->dirty = true;
40016e58: 86 10 20 01 mov 1, %g3 40016e5c: c6 28 60 34 stb %g3, [ %g1 + 0x34 ]
length = true;
40016e60: 84 10 20 01 mov 1, %g2
atime = rtems_rfs_file_update_atime (handle);
40016e64: c2 07 00 00 ld [ %i4 ], %g1 40016e68: b2 08 60 01 and %g1, 1, %i1
mtime = rtems_rfs_file_update_mtime (handle) && mtime;
40016e6c: b7 30 60 01 srl %g1, 1, %i3
length = rtems_rfs_file_update_length (handle) && length;
40016e70: bb 30 60 02 srl %g1, 2, %i5
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016e74: 90 10 20 20 mov 0x20, %o0 40016e78: 92 10 20 00 clr %o1
mtime = rtems_rfs_file_update_mtime (handle) && mtime;
40016e7c: b6 1e e0 01 xor %i3, 1, %i3
length = rtems_rfs_file_update_length (handle) && length;
40016e80: ba 1f 60 01 xor %i5, 1, %i5
mtime = rtems_rfs_file_update_mtime (handle) && mtime;
40016e84: b6 0e e0 01 and %i3, 1, %i3
length = rtems_rfs_file_update_length (handle) && length;
40016e88: ba 0f 60 01 and %i5, 1, %i5
mtime = rtems_rfs_file_update_mtime (handle) && mtime;
40016e8c: b6 0e c0 04 and %i3, %g4, %i3
length = rtems_rfs_file_update_length (handle) && length;
40016e90: ba 0f 40 02 and %i5, %g2, %i5
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016e94: 7f ff cf 4c call 4000abc4 <rtems_rfs_trace> 40016e98: a0 1e 60 01 xor %i1, 1, %l0 40016e9c: 80 a2 20 00 cmp %o0, 0
40016ea0: 02 80 00 0f be 40016edc <rtems_rfs_file_io_end+0x168> <== ALWAYS TAKEN
40016ea4: ba 0f 60 ff and %i5, 0xff, %i5
printf ("rtems-rfs: file-io: end: pos=%" PRIu32 ":%" PRIu32 " %c %c %c\n",
40016ea8: d4 07 20 14 ld [ %i4 + 0x14 ], %o2 <== NOT EXECUTED 40016eac: d2 07 20 10 ld [ %i4 + 0x10 ], %o1 <== NOT EXECUTED 40016eb0: 96 06 7f ff add %i1, -1, %o3 <== NOT EXECUTED 40016eb4: 99 2e e0 05 sll %i3, 5, %o4 <== NOT EXECUTED 40016eb8: 96 0a e0 14 and %o3, 0x14, %o3 <== NOT EXECUTED 40016ebc: 9a 20 00 1d neg %i5, %o5 <== NOT EXECUTED 40016ec0: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40016ec4: 9a 0b 60 1f and %o5, 0x1f, %o5 <== NOT EXECUTED 40016ec8: 98 03 20 2d add %o4, 0x2d, %o4 <== NOT EXECUTED 40016ecc: 9a 03 60 2d add %o5, 0x2d, %o5 <== NOT EXECUTED 40016ed0: 96 02 e0 2d add %o3, 0x2d, %o3 <== NOT EXECUTED 40016ed4: 7f ff af 89 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40016ed8: 90 12 20 70 or %o0, 0x70, %o0 <== NOT EXECUTED
if (atime || mtime)
40016edc: 80 94 00 1b orcc %l0, %i3, %g0
40016ee0: 12 80 00 36 bne 40016fb8 <rtems_rfs_file_io_end+0x244> <== ALWAYS TAKEN
40016ee4: 01 00 00 00 nop
if (length)
40016ee8: 80 a7 60 00 cmp %i5, 0
40016eec: 02 80 00 5b be 40017058 <rtems_rfs_file_io_end+0x2e4>
40016ef0: 01 00 00 00 nop
rtems_rfs_block_map_count (rtems_rfs_file_map (handle));
40016ef4: c2 07 20 1c ld [ %i4 + 0x1c ], %g1
handle->shared->size.count =
40016ef8: c6 00 60 3c ld [ %g1 + 0x3c ], %g3
handle->shared->size.offset =
40016efc: c4 00 60 40 ld [ %g1 + 0x40 ], %g2
handle->shared->size.count =
40016f00: c6 20 60 84 st %g3, [ %g1 + 0x84 ]
handle->shared->size.offset =
40016f04: c4 20 60 88 st %g2, [ %g1 + 0x88 ] 40016f08: 81 c7 e0 08 ret 40016f0c: 81 e8 00 00 restore
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
40016f10: 7f ff c1 8d call 40007544 <rtems_rfs_buffer_handle_release> 40016f14: 01 00 00 00 nop
if (rc > 0)
40016f18: b0 92 20 00 orcc %o0, 0, %i0
40016f1c: 14 80 00 44 bg 4001702c <rtems_rfs_file_io_end+0x2b8> <== NEVER TAKEN
40016f20: 13 10 00 87 sethi %hi(0x40021c00), %o1
handle->bpos.boff += size;
40016f24: d4 07 20 14 ld [ %i4 + 0x14 ], %o2
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
40016f28: c2 07 20 1c ld [ %i4 + 0x1c ], %g1 40016f2c: c4 00 60 98 ld [ %g1 + 0x98 ], %g2
handle->bpos.boff += size;
40016f30: b2 06 40 0a add %i1, %o2, %i1 40016f34: f2 27 20 14 st %i1, [ %i4 + 0x14 ]
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
40016f38: c4 00 a0 08 ld [ %g2 + 8 ], %g2
if (handle->bpos.boff >=
40016f3c: 80 a6 40 02 cmp %i1, %g2
40016f40: 1a bf ff b5 bcc 40016e14 <rtems_rfs_file_io_end+0xa0>
40016f44: 88 10 20 00 clr %g4
length = false;
40016f48: 10 bf ff c7 b 40016e64 <rtems_rfs_file_io_end+0xf0> 40016f4c: 84 10 20 00 clr %g2
printf ("rtems-rfs: file-io: end: %s size=%zu\n",
40016f50: 10 bf ff 96 b 40016da8 <rtems_rfs_file_io_end+0x34> <== NOT EXECUTED 40016f54: 92 12 62 a8 or %o1, 0x2a8, %o1 <== NOT EXECUTED
rtems_rfs_block_map_past_end (rtems_rfs_file_map (handle),
40016f58: 80 a7 40 02 cmp %i5, %g2
40016f5c: 3a bf ff be bcc,a 40016e54 <rtems_rfs_file_io_end+0xe0>
40016f60: c6 07 20 14 ld [ %i4 + 0x14 ], %g3 40016f64: 86 00 bf ff add %g2, -1, %g3 40016f68: 80 a7 40 03 cmp %i5, %g3
40016f6c: 12 bf ff be bne 40016e64 <rtems_rfs_file_io_end+0xf0>
40016f70: 84 10 20 00 clr %g2 40016f74: c6 07 20 14 ld [ %i4 + 0x14 ], %g3 40016f78: fa 00 60 40 ld [ %g1 + 0x40 ], %i5 40016f7c: 80 a0 c0 1d cmp %g3, %i5
40016f80: 28 bf ff ba bleu,a 40016e68 <rtems_rfs_file_io_end+0xf4>
40016f84: c2 07 00 00 ld [ %i4 ], %g1 40016f88: 10 bf ff b4 b 40016e58 <rtems_rfs_file_io_end+0xe4> 40016f8c: c6 20 60 40 st %g3, [ %g1 + 0x40 ]
handle->bpos.boff += size;
40016f90: d4 07 20 14 ld [ %i4 + 0x14 ], %o2 <== NOT EXECUTED 40016f94: b2 06 40 0a add %i1, %o2, %i1 <== NOT EXECUTED 40016f98: f2 27 20 14 st %i1, [ %i4 + 0x14 ] <== NOT EXECUTED
mtime = !read;
40016f9c: 88 1e a0 01 xor %i2, 1, %g4 <== NOT EXECUTED
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
40016fa0: c4 02 20 08 ld [ %o0 + 8 ], %g2 <== NOT EXECUTED
if (handle->bpos.boff >=
40016fa4: 80 a6 40 02 cmp %i1, %g2 <== NOT EXECUTED 40016fa8: 0a bf ff a0 bcs 40016e28 <rtems_rfs_file_io_end+0xb4> <== NOT EXECUTED 40016fac: b0 10 20 00 clr %i0 <== NOT EXECUTED
handle->bpos.bno++;
40016fb0: 10 bf ff 9a b 40016e18 <rtems_rfs_file_io_end+0xa4> <== NOT EXECUTED 40016fb4: c6 07 20 10 ld [ %i4 + 0x10 ], %g3 <== NOT EXECUTED
time_t now = time (NULL);
40016fb8: 40 00 22 93 call 4001fa04 <time> 40016fbc: 90 10 20 00 clr %o0
if (read && atime)
40016fc0: 80 a4 20 00 cmp %l0, 0
40016fc4: 02 80 00 07 be 40016fe0 <rtems_rfs_file_io_end+0x26c> <== NEVER TAKEN
40016fc8: 80 a6 a0 00 cmp %i2, 0
40016fcc: 02 80 00 06 be 40016fe4 <rtems_rfs_file_io_end+0x270>
40016fd0: 80 a6 e0 00 cmp %i3, 0
handle->shared->atime = now;
40016fd4: c2 07 20 1c ld [ %i4 + 0x1c ], %g1 40016fd8: 10 bf ff c4 b 40016ee8 <rtems_rfs_file_io_end+0x174> 40016fdc: d2 20 60 8c st %o1, [ %g1 + 0x8c ]
if (!read && mtime)
40016fe0: 80 a6 e0 00 cmp %i3, 0 <== NOT EXECUTED
40016fe4: 02 bf ff c2 be 40016eec <rtems_rfs_file_io_end+0x178> <== NEVER TAKEN
40016fe8: 80 a7 60 00 cmp %i5, 0
handle->shared->mtime = now;
40016fec: c2 07 20 1c ld [ %i4 + 0x1c ], %g1 40016ff0: 10 bf ff bf b 40016eec <rtems_rfs_file_io_end+0x178> 40016ff4: d2 20 60 90 st %o1, [ %g1 + 0x90 ]
printf (
40016ff8: 92 12 63 40 or %o1, 0x340, %o1 <== NOT EXECUTED 40016ffc: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40017000: 40 00 21 83 call 4001f60c <strerror> <== NOT EXECUTED 40017004: d2 27 bf fc st %o1, [ %fp + -4 ] <== NOT EXECUTED 40017008: d2 07 bf fc ld [ %fp + -4 ], %o1 <== NOT EXECUTED 4001700c: 98 10 00 08 mov %o0, %o4 <== NOT EXECUTED 40017010: 96 10 00 18 mov %i0, %o3 <== NOT EXECUTED 40017014: 94 10 00 19 mov %i1, %o2 <== NOT EXECUTED 40017018: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 4001701c: 7f ff af 37 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017020: 90 12 20 28 or %o0, 0x28, %o0 ! 40024028 <IMFS_LIMITS_AND_OPTIONS+0xae8><== NOT EXECUTED
return rc;
40017024: 81 c7 e0 08 ret <== NOT EXECUTED 40017028: 81 e8 00 00 restore <== NOT EXECUTED
printf (
4001702c: 92 12 62 a8 or %o1, 0x2a8, %o1 <== NOT EXECUTED 40017030: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40017034: 40 00 21 76 call 4001f60c <strerror> <== NOT EXECUTED 40017038: d2 27 bf fc st %o1, [ %fp + -4 ] <== NOT EXECUTED 4001703c: d2 07 bf fc ld [ %fp + -4 ], %o1 <== NOT EXECUTED 40017040: 98 10 00 08 mov %o0, %o4 <== NOT EXECUTED 40017044: 96 10 00 18 mov %i0, %o3 <== NOT EXECUTED 40017048: 94 10 00 19 mov %i1, %o2 <== NOT EXECUTED 4001704c: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017050: 7f ff af 2a call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017054: 90 12 20 28 or %o0, 0x28, %o0 ! 40024028 <IMFS_LIMITS_AND_OPTIONS+0xae8><== NOT EXECUTED
return rc;
40017058: 81 c7 e0 08 ret 4001705c: 81 e8 00 00 restore
40016b00 <rtems_rfs_file_io_start>: {
40016b00: 9d e3 bf 98 save %sp, -104, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016b04: 90 10 20 20 mov 0x20, %o0 40016b08: 92 10 20 00 clr %o1 40016b0c: 7f ff d0 2e call 4000abc4 <rtems_rfs_trace> 40016b10: ba 10 00 18 mov %i0, %i5 40016b14: 80 a2 20 00 cmp %o0, 0
40016b18: 22 80 00 0d be,a 40016b4c <rtems_rfs_file_io_start+0x4c> <== ALWAYS TAKEN
40016b1c: c2 07 60 0c ld [ %i5 + 0xc ], %g1
printf ("rtems-rfs: file-io: start: %s pos=%" PRIu32 ":%" PRIu32 "\n",
40016b20: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 40016b24: 32 80 00 2d bne,a 40016bd8 <rtems_rfs_file_io_start+0xd8> <== NOT EXECUTED 40016b28: 13 10 00 87 sethi %hi(0x40021c00), %o1 <== NOT EXECUTED 40016b2c: 13 10 00 8f sethi %hi(0x40023c00), %o1 <== NOT EXECUTED 40016b30: 92 12 63 40 or %o1, 0x340, %o1 ! 40023f40 <IMFS_LIMITS_AND_OPTIONS+0xa00><== NOT EXECUTED 40016b34: d6 07 60 14 ld [ %i5 + 0x14 ], %o3 <== NOT EXECUTED 40016b38: d4 07 60 10 ld [ %i5 + 0x10 ], %o2 <== NOT EXECUTED 40016b3c: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 40016b40: 7f ff b0 6e call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40016b44: 90 12 23 48 or %o0, 0x348, %o0 ! 40023f48 <IMFS_LIMITS_AND_OPTIONS+0xa08><== NOT EXECUTED
if (!rtems_rfs_buffer_handle_has_block (&handle->buffer))
40016b48: c2 07 60 0c ld [ %i5 + 0xc ], %g1 <== NOT EXECUTED
40016b4c: 80 a0 60 00 cmp %g1, 0
40016b50: 02 80 00 29 be 40016bf4 <rtems_rfs_file_io_start+0xf4>
40016b54: d2 07 60 1c ld [ %i5 + 0x1c ], %o1
if (read
40016b58: 80 a6 a0 00 cmp %i2, 0
40016b5c: 22 80 00 0c be,a 40016b8c <rtems_rfs_file_io_start+0x8c>
40016b60: c2 02 60 98 ld [ %o1 + 0x98 ], %g1
&& rtems_rfs_block_map_last (rtems_rfs_file_map (handle))
40016b64: c4 02 60 44 ld [ %o1 + 0x44 ], %g2 40016b68: c2 02 60 3c ld [ %o1 + 0x3c ], %g1 40016b6c: 80 90 80 01 orcc %g2, %g1, %g0
40016b70: 12 80 00 1c bne 40016be0 <rtems_rfs_file_io_start+0xe0> <== ALWAYS TAKEN
40016b74: 82 00 7f ff add %g1, -1, %g1
&& rtems_rfs_block_map_size_offset (rtems_rfs_file_map (handle)))
40016b78: f8 02 60 40 ld [ %o1 + 0x40 ], %i4 <== NOT EXECUTED
40016b7c: 80 a7 20 00 cmp %i4, 0
40016b80: 32 80 00 05 bne,a 40016b94 <rtems_rfs_file_io_start+0x94>
40016b84: c2 07 60 14 ld [ %i5 + 0x14 ], %g1
size = rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
40016b88: c2 02 60 98 ld [ %o1 + 0x98 ], %g1 40016b8c: f8 00 60 08 ld [ %g1 + 8 ], %i4
*available = size - rtems_rfs_file_block_offset (handle);
40016b90: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 40016b94: 82 27 00 01 sub %i4, %g1, %g1 40016b98: c2 26 40 00 st %g1, [ %i1 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016b9c: 90 10 20 20 mov 0x20, %o0 40016ba0: 92 10 20 00 clr %o1 40016ba4: 7f ff d0 08 call 4000abc4 <rtems_rfs_trace> 40016ba8: b0 10 20 00 clr %i0 40016bac: 80 a2 20 00 cmp %o0, 0
40016bb0: 32 80 00 04 bne,a 40016bc0 <rtems_rfs_file_io_start+0xc0> <== NEVER TAKEN
40016bb4: d2 06 40 00 ld [ %i1 ], %o1 <== NOT EXECUTED
}
40016bb8: 81 c7 e0 08 ret 40016bbc: 81 e8 00 00 restore
printf ("rtems-rfs: file-io: start: available=%zu (%zu)\n",
40016bc0: 94 10 00 1c mov %i4, %o2 <== NOT EXECUTED 40016bc4: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 40016bc8: 7f ff b0 4c call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40016bcc: 90 12 23 d0 or %o0, 0x3d0, %o0 ! 40023fd0 <IMFS_LIMITS_AND_OPTIONS+0xa90><== NOT EXECUTED
}
40016bd0: 81 c7 e0 08 ret <== NOT EXECUTED 40016bd4: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: file-io: start: %s pos=%" PRIu32 ":%" PRIu32 "\n",
40016bd8: 10 bf ff d7 b 40016b34 <rtems_rfs_file_io_start+0x34> <== NOT EXECUTED 40016bdc: 92 12 62 a8 or %o1, 0x2a8, %o1 <== NOT EXECUTED
&& rtems_rfs_block_map_last (rtems_rfs_file_map (handle))
40016be0: 80 a0 80 01 cmp %g2, %g1
40016be4: 32 bf ff ea bne,a 40016b8c <rtems_rfs_file_io_start+0x8c>
40016be8: c2 02 60 98 ld [ %o1 + 0x98 ], %g1 40016bec: 10 bf ff e4 b 40016b7c <rtems_rfs_file_io_start+0x7c> 40016bf0: f8 02 60 40 ld [ %o1 + 0x40 ], %i4
rc = rtems_rfs_block_map_find (rtems_rfs_file_fs (handle),
40016bf4: d0 02 60 98 ld [ %o1 + 0x98 ], %o0 40016bf8: 94 07 60 10 add %i5, 0x10, %o2 40016bfc: 96 07 bf fc add %fp, -4, %o3 40016c00: 7f ff f6 19 call 40014464 <rtems_rfs_block_map_find> 40016c04: 92 02 60 34 add %o1, 0x34, %o1
if (rc > 0)
40016c08: b0 92 20 00 orcc %o0, 0, %i0
40016c0c: 04 80 00 22 ble 40016c94 <rtems_rfs_file_io_start+0x194>
40016c10: 82 1e 20 06 xor %i0, 6, %g1
if (read && (rc == ENXIO))
40016c14: 80 a0 00 01 cmp %g0, %g1 40016c18: 82 60 3f ff subx %g0, -1, %g1 40016c1c: 82 0e 80 01 and %i2, %g1, %g1 40016c20: 80 a0 60 00 cmp %g1, 0
40016c24: 12 80 00 4b bne 40016d50 <rtems_rfs_file_io_start+0x250> <== NEVER TAKEN
40016c28: b8 10 00 01 mov %g1, %i4
if (rc != ENXIO)
40016c2c: 80 a6 20 06 cmp %i0, 6
40016c30: 12 bf ff e2 bne 40016bb8 <rtems_rfs_file_io_start+0xb8> <== NEVER TAKEN
40016c34: 90 10 20 20 mov 0x20, %o0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016c38: 7f ff cf e3 call 4000abc4 <rtems_rfs_trace> 40016c3c: 92 10 20 00 clr %o1 40016c40: 80 a2 20 00 cmp %o0, 0
40016c44: 12 80 00 48 bne 40016d64 <rtems_rfs_file_io_start+0x264> <== NEVER TAKEN
40016c48: 11 10 00 8f sethi %hi(0x40023c00), %o0
rc = rtems_rfs_block_map_grow (rtems_rfs_file_fs (handle),
40016c4c: d2 07 60 1c ld [ %i5 + 0x1c ], %o1 40016c50: d0 02 60 98 ld [ %o1 + 0x98 ], %o0 40016c54: 96 07 bf fc add %fp, -4, %o3 40016c58: 94 10 20 01 mov 1, %o2 40016c5c: 7f ff f6 86 call 40014674 <rtems_rfs_block_map_grow> 40016c60: 92 02 60 34 add %o1, 0x34, %o1
if (rc > 0)
40016c64: b0 92 20 00 orcc %o0, 0, %i0
40016c68: 14 bf ff d4 bg 40016bb8 <rtems_rfs_file_io_start+0xb8>
40016c6c: 90 10 20 20 mov 0x20, %o0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016c70: 7f ff cf d5 call 4000abc4 <rtems_rfs_trace> 40016c74: 92 10 20 00 clr %o1 40016c78: 80 a2 20 00 cmp %o0, 0
40016c7c: 22 80 00 16 be,a 40016cd4 <rtems_rfs_file_io_start+0x1d4> <== ALWAYS TAKEN
40016c80: b8 10 20 00 clr %i4
printf ("rtems-rfs: file-io: start: block=%" PRIu32 " request-read=%s\n",
40016c84: 15 10 00 8b sethi %hi(0x40022c00), %o2 <== NOT EXECUTED 40016c88: d2 07 bf fc ld [ %fp + -4 ], %o1 <== NOT EXECUTED 40016c8c: 10 80 00 0f b 40016cc8 <rtems_rfs_file_io_start+0x1c8> <== NOT EXECUTED 40016c90: 94 12 a1 00 or %o2, 0x100, %o2 <== NOT EXECUTED
if (!read &&
40016c94: 80 a6 a0 00 cmp %i2, 0
40016c98: 22 80 00 1a be,a 40016d00 <rtems_rfs_file_io_start+0x200>
40016c9c: c2 07 60 14 ld [ %i5 + 0x14 ], %g1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016ca0: 90 10 20 20 mov 0x20, %o0 40016ca4: 92 10 20 00 clr %o1 40016ca8: 7f ff cf c7 call 4000abc4 <rtems_rfs_trace> 40016cac: 01 00 00 00 nop 40016cb0: 80 a2 20 00 cmp %o0, 0
40016cb4: 02 80 00 2a be 40016d5c <rtems_rfs_file_io_start+0x25c> <== ALWAYS TAKEN
40016cb8: b8 10 00 08 mov %o0, %i4
printf ("rtems-rfs: file-io: start: block=%" PRIu32 " request-read=%s\n",
40016cbc: d2 07 bf fc ld [ %fp + -4 ], %o1 <== NOT EXECUTED 40016cc0: 15 10 00 8b sethi %hi(0x40022c00), %o2 <== NOT EXECUTED 40016cc4: 94 12 a0 f8 or %o2, 0xf8, %o2 ! 40022cf8 <IMFS_node_control_sym_link+0xf70><== NOT EXECUTED 40016cc8: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 40016ccc: 7f ff b0 0b call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40016cd0: 90 12 23 98 or %o0, 0x398, %o0 ! 40023f98 <IMFS_LIMITS_AND_OPTIONS+0xa58><== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (rtems_rfs_file_fs (handle),
40016cd4: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 40016cd8: d4 07 bf fc ld [ %fp + -4 ], %o2 40016cdc: d0 00 60 98 ld [ %g1 + 0x98 ], %o0 40016ce0: 96 0f 20 ff and %i4, 0xff, %o3 40016ce4: 7f ff c1 4f call 40007220 <rtems_rfs_buffer_handle_request> 40016ce8: 92 07 60 04 add %i5, 4, %o1
if (rc > 0)
40016cec: b0 92 20 00 orcc %o0, 0, %i0
40016cf0: 14 bf ff b8 bg 40016bd0 <rtems_rfs_file_io_start+0xd0> <== NEVER TAKEN
40016cf4: 01 00 00 00 nop 40016cf8: 10 bf ff 98 b 40016b58 <rtems_rfs_file_io_start+0x58> 40016cfc: d2 07 60 1c ld [ %i5 + 0x1c ], %o1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016d00: 90 10 20 20 mov 0x20, %o0
if (!read &&
40016d04: 80 a0 60 00 cmp %g1, 0
40016d08: 12 bf ff e8 bne 40016ca8 <rtems_rfs_file_io_start+0x1a8>
40016d0c: 92 10 20 00 clr %o1
(*available < rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))))
40016d10: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 40016d14: c2 00 60 98 ld [ %g1 + 0x98 ], %g1
(rtems_rfs_file_block_offset (handle) ||
40016d18: c4 06 40 00 ld [ %i1 ], %g2 40016d1c: c2 00 60 08 ld [ %g1 + 8 ], %g1 40016d20: 80 a0 80 01 cmp %g2, %g1
40016d24: 0a bf ff e1 bcs 40016ca8 <rtems_rfs_file_io_start+0x1a8> <== ALWAYS TAKEN
40016d28: 01 00 00 00 nop
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016d2c: 7f ff cf a6 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40016d30: 01 00 00 00 nop <== NOT EXECUTED 40016d34: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40016d38: 02 bf ff e7 be 40016cd4 <rtems_rfs_file_io_start+0x1d4> <== NOT EXECUTED 40016d3c: b8 10 20 00 clr %i4 <== NOT EXECUTED
printf ("rtems-rfs: file-io: start: block=%" PRIu32 " request-read=%s\n",
40016d40: 15 10 00 8b sethi %hi(0x40022c00), %o2 <== NOT EXECUTED 40016d44: d2 07 bf fc ld [ %fp + -4 ], %o1 <== NOT EXECUTED 40016d48: 10 bf ff e0 b 40016cc8 <rtems_rfs_file_io_start+0x1c8> <== NOT EXECUTED 40016d4c: 94 12 a1 00 or %o2, 0x100, %o2 <== NOT EXECUTED
*available = 0;
40016d50: c0 26 40 00 clr [ %i1 ] <== NOT EXECUTED
return 0;
40016d54: 81 c7 e0 08 ret <== NOT EXECUTED 40016d58: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED
request_read = true;
40016d5c: 10 bf ff de b 40016cd4 <rtems_rfs_file_io_start+0x1d4> 40016d60: b8 10 20 01 mov 1, %i4
printf ("rtems-rfs: file-io: start: grow\n");
40016d64: 7f ff af f3 call 40002d30 <__wrap_puts> <== NOT EXECUTED 40016d68: 90 12 23 78 or %o0, 0x378, %o0 <== NOT EXECUTED
rc = rtems_rfs_block_map_grow (rtems_rfs_file_fs (handle),
40016d6c: 10 bf ff b9 b 40016c50 <rtems_rfs_file_io_start+0x150> <== NOT EXECUTED 40016d70: d2 07 60 1c ld [ %i5 + 0x1c ], %o1 <== NOT EXECUTED
400164b4 <rtems_rfs_file_open>: int rtems_rfs_file_open (rtems_rfs_file_system* fs, rtems_rfs_ino ino, int oflag, rtems_rfs_file_handle** file) {
400164b4: 9d e3 bf a0 save %sp, -96, %sp
rtems_rfs_file_handle* handle; rtems_rfs_file_shared* shared; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
400164b8: 90 10 20 08 mov 8, %o0 400164bc: 92 10 20 00 clr %o1 400164c0: 7f ff d1 c1 call 4000abc4 <rtems_rfs_trace> 400164c4: a0 10 00 18 mov %i0, %l0 400164c8: 80 a2 20 00 cmp %o0, 0
400164cc: 12 80 00 2d bne 40016580 <rtems_rfs_file_open+0xcc> <== NEVER TAKEN
400164d0: 92 10 00 19 mov %i1, %o1
printf ("rtems-rfs: file-open: ino=%" PRId32 "\n", ino); *file = NULL;
400164d4: c0 26 c0 00 clr [ %i3 ]
/* * Allocate a new handle and initialise it. Do this before we deal with the * shared node data so we do not have to be concerned with reference * counting. */ handle = malloc (sizeof (rtems_rfs_file_handle));
400164d8: 92 10 20 01 mov 1, %o1 400164dc: 7f ff f1 bd call 40012bd0 <calloc> 400164e0: 90 10 20 20 mov 0x20, %o0
if (!handle)
400164e4: a4 92 20 00 orcc %o0, 0, %l2
400164e8: 02 80 00 b2 be 400167b0 <rtems_rfs_file_open+0x2fc> <== NEVER TAKEN
400164ec: b8 04 20 78 add %l0, 0x78, %i4
return _Chain_Immutable_head( the_chain )->next;
400164f0: fa 04 20 74 ld [ %l0 + 0x74 ], %i5
rtems_rfs_file_get_shared (rtems_rfs_file_system* fs, rtems_rfs_ino ino) { rtems_chain_node* node; node = rtems_chain_first (&fs->file_shares); while (!rtems_chain_is_tail (&fs->file_shares, node))
400164f4: 80 a7 40 1c cmp %i5, %i4
400164f8: 32 80 00 08 bne,a 40016518 <rtems_rfs_file_open+0x64> <== NEVER TAKEN
400164fc: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 <== NOT EXECUTED
shared = malloc (sizeof (rtems_rfs_file_shared));
40016500: 10 80 00 25 b 40016594 <rtems_rfs_file_open+0xe0> 40016504: 92 10 20 01 mov 1, %o1
while (!rtems_chain_is_tail (&fs->file_shares, node))
40016508: 80 a7 40 1c cmp %i5, %i4 <== NOT EXECUTED 4001650c: 02 80 00 22 be 40016594 <rtems_rfs_file_open+0xe0> <== NOT EXECUTED 40016510: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED
{ rtems_rfs_file_shared* shared; shared = (rtems_rfs_file_shared*) node; if (shared->inode.ino == ino)
40016514: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 <== NOT EXECUTED 40016518: 80 a6 40 01 cmp %i1, %g1 <== NOT EXECUTED 4001651c: 32 bf ff fb bne,a 40016508 <rtems_rfs_file_open+0x54> <== NOT EXECUTED 40016520: fa 07 40 00 ld [ %i5 ], %i5 <== NOT EXECUTED
shared->references++;
40016524: c2 07 60 08 ld [ %i5 + 8 ], %g1 <== NOT EXECUTED 40016528: 82 00 60 01 inc %g1 <== NOT EXECUTED 4001652c: c2 27 60 08 st %g1, [ %i5 + 8 ] <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
40016530: 90 10 20 08 mov 8, %o0 <== NOT EXECUTED 40016534: 7f ff d1 a4 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40016538: 92 10 20 00 clr %o1 <== NOT EXECUTED 4001653c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40016540: 32 80 00 07 bne,a 4001655c <rtems_rfs_file_open+0xa8> <== NOT EXECUTED 40016544: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED
handle->flags = oflag;
40016548: f4 24 80 00 st %i2, [ %l2 ] <== NOT EXECUTED
handle->shared = shared;
4001654c: fa 24 a0 1c st %i5, [ %l2 + 0x1c ]
*file = handle;
40016550: e4 26 c0 00 st %l2, [ %i3 ]
return 0;
40016554: 81 c7 e0 08 ret 40016558: 91 e8 20 00 restore %g0, 0, %o0
printf ("rtems-rfs: file-open: ino=%" PRId32 " shared\n", ino);
4001655c: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED
return 0;
40016560: b0 10 20 00 clr %i0 <== NOT EXECUTED
printf ("rtems-rfs: file-open: ino=%" PRId32 " shared\n", ino);
40016564: 7f ff b1 e5 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40016568: 90 12 21 b0 or %o0, 0x1b0, %o0 <== NOT EXECUTED
handle->flags = oflag;
4001656c: f4 24 80 00 st %i2, [ %l2 ] <== NOT EXECUTED
handle->shared = shared;
40016570: fa 24 a0 1c st %i5, [ %l2 + 0x1c ] <== NOT EXECUTED
*file = handle;
40016574: e4 26 c0 00 st %l2, [ %i3 ] <== NOT EXECUTED
return 0;
40016578: 81 c7 e0 08 ret <== NOT EXECUTED 4001657c: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: file-open: ino=%" PRId32 "\n", ino);
40016580: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 40016584: 7f ff b1 dd call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40016588: 90 12 21 90 or %o0, 0x190, %o0 ! 40023d90 <IMFS_LIMITS_AND_OPTIONS+0x850><== NOT EXECUTED
*file = NULL;
4001658c: 10 bf ff d3 b 400164d8 <rtems_rfs_file_open+0x24> <== NOT EXECUTED 40016590: c0 26 c0 00 clr [ %i3 ] <== NOT EXECUTED
shared = malloc (sizeof (rtems_rfs_file_shared));
40016594: 90 10 20 9c mov 0x9c, %o0 40016598: 7f ff f1 8e call 40012bd0 <calloc> 4001659c: a6 04 a0 04 add %l2, 4, %l3
if (!shared)
400165a0: ba 92 20 00 orcc %o0, 0, %i5
400165a4: 02 80 00 85 be 400167b8 <rtems_rfs_file_open+0x304> <== NEVER TAKEN
400165a8: a2 07 60 0c add %i5, 0xc, %l1
rc = rtems_rfs_inode_open (fs, ino, &shared->inode, true);
400165ac: 96 10 20 01 mov 1, %o3 400165b0: 94 10 00 11 mov %l1, %o2 400165b4: 92 10 00 19 mov %i1, %o1 400165b8: 7f ff ca d6 call 40009110 <rtems_rfs_inode_open> 400165bc: 90 10 00 10 mov %l0, %o0
if (rc > 0)
400165c0: b0 92 20 00 orcc %o0, 0, %i0
400165c4: 14 80 00 51 bg 40016708 <rtems_rfs_file_open+0x254> <== NEVER TAKEN
400165c8: 94 07 60 34 add %i5, 0x34, %o2
rc = rtems_rfs_block_map_open (fs, &shared->inode, &shared->map);
400165cc: 92 10 00 11 mov %l1, %o1 400165d0: 7f ff f6 d7 call 4001412c <rtems_rfs_block_map_open> 400165d4: 90 10 00 10 mov %l0, %o0
if (rc > 0)
400165d8: b0 92 20 00 orcc %o0, 0, %i0
400165dc: 14 80 00 5a bg 40016744 <rtems_rfs_file_open+0x290> <== NEVER TAKEN
400165e0: 82 10 20 01 mov 1, %g1
shared->references = 1;
400165e4: c2 27 60 08 st %g1, [ %i5 + 8 ]
rtems_rfs_inode_unload (fs, &shared->inode, false);
400165e8: 94 10 20 00 clr %o2 400165ec: c2 07 60 18 ld [ %i5 + 0x18 ], %g1
return rtems_rfs_read_u32 (&handle->node->block_count);
400165f0: c8 08 60 0f ldub [ %g1 + 0xf ], %g4 400165f4: f0 08 60 0c ldub [ %g1 + 0xc ], %i0 400165f8: c6 08 60 0d ldub [ %g1 + 0xd ], %g3 400165fc: c4 08 60 0e ldub [ %g1 + 0xe ], %g2 40016600: b1 2e 20 18 sll %i0, 0x18, %i0 40016604: 87 28 e0 10 sll %g3, 0x10, %g3 40016608: 85 28 a0 08 sll %g2, 8, %g2 4001660c: 86 10 c0 18 or %g3, %i0, %g3 40016610: 84 10 80 03 or %g2, %g3, %g2 40016614: 84 11 00 02 or %g4, %g2, %g2
shared->size.count = rtems_rfs_inode_get_block_count (&shared->inode);
40016618: c4 27 60 84 st %g2, [ %i5 + 0x84 ]
rtems_rfs_inode_unload (fs, &shared->inode, false);
4001661c: 92 10 00 11 mov %l1, %o1
shared->size.offset = rtems_rfs_inode_get_block_offset (&shared->inode);
40016620: c6 08 60 0a ldub [ %g1 + 0xa ], %g3 40016624: c4 08 60 0b ldub [ %g1 + 0xb ], %g2 40016628: 87 28 e0 08 sll %g3, 8, %g3 4001662c: 84 10 80 03 or %g2, %g3, %g2 40016630: c4 27 60 88 st %g2, [ %i5 + 0x88 ]
return rtems_rfs_read_u32 (&handle->node->atime);
40016634: c8 08 60 13 ldub [ %g1 + 0x13 ], %g4 40016638: f0 08 60 10 ldub [ %g1 + 0x10 ], %i0 4001663c: c6 08 60 11 ldub [ %g1 + 0x11 ], %g3 40016640: c4 08 60 12 ldub [ %g1 + 0x12 ], %g2 40016644: b1 2e 20 18 sll %i0, 0x18, %i0 40016648: 87 28 e0 10 sll %g3, 0x10, %g3 4001664c: 85 28 a0 08 sll %g2, 8, %g2 40016650: 86 10 c0 18 or %g3, %i0, %g3 40016654: 84 10 80 03 or %g2, %g3, %g2 40016658: 84 11 00 02 or %g4, %g2, %g2
shared->atime = rtems_rfs_inode_get_atime (&shared->inode);
4001665c: c4 27 60 8c st %g2, [ %i5 + 0x8c ]
return rtems_rfs_read_u32 (&handle->node->mtime);
40016660: c8 08 60 17 ldub [ %g1 + 0x17 ], %g4 40016664: f0 08 60 14 ldub [ %g1 + 0x14 ], %i0 40016668: c6 08 60 15 ldub [ %g1 + 0x15 ], %g3 4001666c: c4 08 60 16 ldub [ %g1 + 0x16 ], %g2 40016670: b1 2e 20 18 sll %i0, 0x18, %i0 40016674: 87 28 e0 10 sll %g3, 0x10, %g3 40016678: 85 28 a0 08 sll %g2, 8, %g2 4001667c: 86 10 c0 18 or %g3, %i0, %g3 40016680: 84 10 80 03 or %g2, %g3, %g2 40016684: 84 11 00 02 or %g4, %g2, %g2
shared->mtime = rtems_rfs_inode_get_mtime (&shared->inode);
40016688: c4 27 60 90 st %g2, [ %i5 + 0x90 ]
return rtems_rfs_read_u32 (&handle->node->ctime);
4001668c: c6 08 60 19 ldub [ %g1 + 0x19 ], %g3 40016690: c4 08 60 1a ldub [ %g1 + 0x1a ], %g2 40016694: c8 08 60 1b ldub [ %g1 + 0x1b ], %g4 40016698: f0 08 60 18 ldub [ %g1 + 0x18 ], %i0 4001669c: 83 28 e0 10 sll %g3, 0x10, %g1
old_last = tail->previous;
400166a0: de 04 20 7c ld [ %l0 + 0x7c ], %o7
shared->fs = fs;
400166a4: e0 27 60 98 st %l0, [ %i5 + 0x98 ] 400166a8: b1 2e 20 18 sll %i0, 0x18, %i0
the_node->next = tail;
400166ac: f8 27 40 00 st %i4, [ %i5 ] 400166b0: 86 10 40 18 or %g1, %i0, %g3
tail->previous = the_node;
400166b4: fa 24 20 7c st %i5, [ %l0 + 0x7c ] 400166b8: 83 28 a0 08 sll %g2, 8, %g1 400166bc: 82 10 40 03 or %g1, %g3, %g1 400166c0: 82 11 00 01 or %g4, %g1, %g1
shared->ctime = rtems_rfs_inode_get_ctime (&shared->inode);
400166c4: c2 27 60 94 st %g1, [ %i5 + 0x94 ]
old_last->next = the_node;
400166c8: fa 23 c0 00 st %i5, [ %o7 ]
the_node->previous = old_last;
400166cc: de 27 60 04 st %o7, [ %i5 + 4 ]
rtems_rfs_inode_unload (fs, &shared->inode, false);
400166d0: 7f ff ca cb call 400091fc <rtems_rfs_inode_unload> 400166d4: 90 10 00 10 mov %l0, %o0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
400166d8: 90 10 20 08 mov 8, %o0 400166dc: 7f ff d1 3a call 4000abc4 <rtems_rfs_trace> 400166e0: 92 10 20 00 clr %o1 400166e4: 80 a2 20 00 cmp %o0, 0
400166e8: 22 bf ff 99 be,a 4001654c <rtems_rfs_file_open+0x98> <== ALWAYS TAKEN
400166ec: f4 24 80 00 st %i2, [ %l2 ]
printf ("rtems-rfs: file-open: ino=%" PRId32 " share created\n", ino);
400166f0: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 400166f4: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 400166f8: 7f ff b1 80 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400166fc: 90 12 22 48 or %o0, 0x248, %o0 ! 40023e48 <IMFS_LIMITS_AND_OPTIONS+0x908><== NOT EXECUTED
handle->flags = oflag;
40016700: 10 bf ff 93 b 4001654c <rtems_rfs_file_open+0x98> <== NOT EXECUTED 40016704: f4 24 80 00 st %i2, [ %l2 ] <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
40016708: 90 10 20 08 mov 8, %o0 <== NOT EXECUTED 4001670c: 7f ff d1 2e call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40016710: 92 10 20 00 clr %o1 <== NOT EXECUTED 40016714: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40016718: 12 80 00 1e bne 40016790 <rtems_rfs_file_open+0x2dc> <== NOT EXECUTED 4001671c: 01 00 00 00 nop <== NOT EXECUTED
free (shared);
40016720: 7f ff b2 38 call 40003000 <free> <== NOT EXECUTED 40016724: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40016728: 92 10 00 13 mov %l3, %o1 <== NOT EXECUTED 4001672c: 7f ff c3 86 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40016730: 90 10 00 10 mov %l0, %o0 <== NOT EXECUTED
free (handle);
40016734: 7f ff b2 33 call 40003000 <free> <== NOT EXECUTED 40016738: 90 10 00 12 mov %l2, %o0 <== NOT EXECUTED
return rc;
4001673c: 81 c7 e0 08 ret <== NOT EXECUTED 40016740: 81 e8 00 00 restore <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
40016744: 90 10 20 08 mov 8, %o0 <== NOT EXECUTED 40016748: 7f ff d1 1f call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 4001674c: 92 10 20 00 clr %o1 <== NOT EXECUTED 40016750: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40016754: 12 80 00 06 bne 4001676c <rtems_rfs_file_open+0x2b8> <== NOT EXECUTED 40016758: 01 00 00 00 nop <== NOT EXECUTED
rtems_rfs_inode_close (fs, &shared->inode);
4001675c: 92 10 00 11 mov %l1, %o1 <== NOT EXECUTED 40016760: 7f ff ca e5 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40016764: 90 10 00 10 mov %l0, %o0 <== NOT EXECUTED 40016768: 30 bf ff ee b,a 40016720 <rtems_rfs_file_open+0x26c> <== NOT EXECUTED
printf ("rtems-rfs: file-open: block map open failed: %d: %s\n",
4001676c: 40 00 23 a8 call 4001f60c <strerror> <== NOT EXECUTED 40016770: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40016774: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40016778: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 4001677c: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 40016780: 7f ff b1 5e call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40016784: 90 12 22 10 or %o0, 0x210, %o0 ! 40023e10 <IMFS_LIMITS_AND_OPTIONS+0x8d0><== NOT EXECUTED
rtems_rfs_inode_close (fs, &shared->inode);
40016788: 10 bf ff f6 b 40016760 <rtems_rfs_file_open+0x2ac> <== NOT EXECUTED 4001678c: 92 10 00 11 mov %l1, %o1 <== NOT EXECUTED
printf ("rtems-rfs: file-open: inode open failed: %d: %s\n",
40016790: 40 00 23 9f call 4001f60c <strerror> <== NOT EXECUTED 40016794: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40016798: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 4001679c: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400167a0: 11 10 00 8f sethi %hi(0x40023c00), %o0 <== NOT EXECUTED 400167a4: 7f ff b1 55 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400167a8: 90 12 21 d8 or %o0, 0x1d8, %o0 ! 40023dd8 <IMFS_LIMITS_AND_OPTIONS+0x898><== NOT EXECUTED
free (shared);
400167ac: 30 bf ff dd b,a 40016720 <rtems_rfs_file_open+0x26c> <== NOT EXECUTED
}
400167b0: 81 c7 e0 08 ret <== NOT EXECUTED 400167b4: 91 e8 20 0c restore %g0, 0xc, %o0 <== NOT EXECUTED 400167b8: 92 10 00 13 mov %l3, %o1 <== NOT EXECUTED 400167bc: 7f ff c3 62 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 400167c0: 90 10 00 10 mov %l0, %o0 <== NOT EXECUTED
return ENOMEM;
400167c4: b0 10 20 0c mov 0xc, %i0 <== NOT EXECUTED
free (handle);
400167c8: 7f ff b2 0e call 40003000 <free> <== NOT EXECUTED 400167cc: 90 10 00 12 mov %l2, %o0 <== NOT EXECUTED
return ENOMEM;
400167d0: 81 c7 e0 08 ret <== NOT EXECUTED 400167d4: 81 e8 00 00 restore <== NOT EXECUTED
40017060 <rtems_rfs_file_seek>: {
40017060: 9d e3 bf 98 save %sp, -104, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40017064: 90 10 20 20 mov 0x20, %o0 40017068: 92 10 20 00 clr %o1 4001706c: 7f ff ce d6 call 4000abc4 <rtems_rfs_trace> 40017070: ba 10 00 18 mov %i0, %i5 40017074: 80 a2 20 00 cmp %o0, 0
40017078: 32 80 00 3c bne,a 40017168 <rtems_rfs_file_seek+0x108> <== NEVER TAKEN
4001707c: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED
if (pos <= rtems_rfs_file_shared_get_size (rtems_rfs_file_fs (handle),
40017080: d2 07 60 1c ld [ %i5 + 0x1c ], %o1 40017084: d0 02 60 98 ld [ %o1 + 0x98 ], %o0 40017088: 7f ff f4 16 call 400140e0 <rtems_rfs_block_get_size> 4001708c: 92 02 60 84 add %o1, 0x84, %o1 40017090: 80 a6 40 08 cmp %i1, %o0
40017094: 08 80 00 11 bleu 400170d8 <rtems_rfs_file_seek+0x78> <== ALWAYS TAKEN
40017098: 01 00 00 00 nop
if (rtems_rfs_buffer_handle_has_block (&handle->buffer))
4001709c: c2 07 60 0c ld [ %i5 + 0xc ], %g1 <== NOT EXECUTED
400170a0: 80 a0 60 00 cmp %g1, 0
400170a4: 22 80 00 0a be,a 400170cc <rtems_rfs_file_seek+0x6c> <== ALWAYS TAKEN
400170a8: f2 26 c0 00 st %i1, [ %i3 ]
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
400170ac: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 400170b0: d0 00 60 98 ld [ %g1 + 0x98 ], %o0 <== NOT EXECUTED 400170b4: 7f ff c1 24 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 400170b8: 92 07 60 04 add %i5, 4, %o1 <== NOT EXECUTED
if (rc > 0)
400170bc: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 400170c0: 14 80 00 28 bg 40017160 <rtems_rfs_file_seek+0x100> <== NOT EXECUTED 400170c4: 01 00 00 00 nop <== NOT EXECUTED
*new_pos = pos;
400170c8: f2 26 c0 00 st %i1, [ %i3 ] 400170cc: f4 26 e0 04 st %i2, [ %i3 + 4 ]
}
400170d0: 81 c7 e0 08 ret 400170d4: 91 e8 20 00 restore %g0, 0, %o0
if (pos <= rtems_rfs_file_shared_get_size (rtems_rfs_file_fs (handle),
400170d8: 12 80 00 04 bne 400170e8 <rtems_rfs_file_seek+0x88> <== NEVER TAKEN
400170dc: 80 a6 80 09 cmp %i2, %o1
400170e0: 38 bf ff f0 bgu,a 400170a0 <rtems_rfs_file_seek+0x40>
400170e4: c2 07 60 0c ld [ %i5 + 0xc ], %g1
rtems_rfs_file_set_bpos (handle, pos);
400170e8: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 400170ec: d0 00 60 98 ld [ %g1 + 0x98 ], %o0 400170f0: b8 07 60 10 add %i5, 0x10, %i4 400170f4: 92 10 00 19 mov %i1, %o1 400170f8: 96 10 00 1c mov %i4, %o3 400170fc: 7f ff f3 e2 call 40014084 <rtems_rfs_block_get_bpos> 40017100: 94 10 00 1a mov %i2, %o2
if (rtems_rfs_buffer_handle_has_block (&handle->buffer))
40017104: c2 07 60 0c ld [ %i5 + 0xc ], %g1 40017108: 80 a0 60 00 cmp %g1, 0
4001710c: 02 bf ff ef be 400170c8 <rtems_rfs_file_seek+0x68>
40017110: 96 07 bf fc add %fp, -4, %o3
rc = rtems_rfs_block_map_find (rtems_rfs_file_fs (handle),
40017114: d2 07 60 1c ld [ %i5 + 0x1c ], %o1 40017118: d0 02 60 98 ld [ %o1 + 0x98 ], %o0 4001711c: 94 10 00 1c mov %i4, %o2 40017120: 7f ff f4 d1 call 40014464 <rtems_rfs_block_map_find> 40017124: 92 02 60 34 add %o1, 0x34, %o1
if (rc > 0)
40017128: b0 92 20 00 orcc %o0, 0, %i0
4001712c: 14 80 00 0d bg 40017160 <rtems_rfs_file_seek+0x100> <== NEVER TAKEN
40017130: c2 07 bf fc ld [ %fp + -4 ], %g1
if (rtems_rfs_buffer_bnum (&handle->buffer) != block)
40017134: c4 07 60 08 ld [ %i5 + 8 ], %g2 40017138: 80 a0 80 01 cmp %g2, %g1
4001713c: 22 bf ff e4 be,a 400170cc <rtems_rfs_file_seek+0x6c> <== ALWAYS TAKEN
40017140: f2 26 c0 00 st %i1, [ %i3 ]
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
40017144: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 <== NOT EXECUTED 40017148: d0 00 60 98 ld [ %g1 + 0x98 ], %o0 <== NOT EXECUTED 4001714c: 7f ff c0 fe call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40017150: 92 07 60 04 add %i5, 4, %o1 <== NOT EXECUTED
if (rc > 0)
40017154: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 40017158: 24 bf ff dd ble,a 400170cc <rtems_rfs_file_seek+0x6c> <== NOT EXECUTED 4001715c: f2 26 c0 00 st %i1, [ %i3 ] <== NOT EXECUTED 40017160: 81 c7 e0 08 ret <== NOT EXECUTED 40017164: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: file-seek: new=%" PRIu64 "\n", pos);
40017168: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 4001716c: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017170: 7f ff ae e2 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017174: 90 12 20 a0 or %o0, 0xa0, %o0 ! 400240a0 <IMFS_LIMITS_AND_OPTIONS+0xb60><== NOT EXECUTED
if (pos <= rtems_rfs_file_shared_get_size (rtems_rfs_file_fs (handle),
40017178: 10 bf ff c3 b 40017084 <rtems_rfs_file_seek+0x24> <== NOT EXECUTED 4001717c: d2 07 60 1c ld [ %i5 + 0x1c ], %o1 <== NOT EXECUTED
40017180 <rtems_rfs_file_set_size>: {
40017180: 9d e3 bf 90 save %sp, -112, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40017184: 90 10 20 20 mov 0x20, %o0
rtems_rfs_block_map* map = rtems_rfs_file_map (handle);
40017188: f8 06 20 1c ld [ %i0 + 0x1c ], %i4
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
4001718c: 92 10 20 00 clr %o1 40017190: 7f ff ce 8d call 4000abc4 <rtems_rfs_trace> 40017194: ba 10 00 18 mov %i0, %i5
{
40017198: a0 10 00 19 mov %i1, %l0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
4001719c: 80 a2 20 00 cmp %o0, 0
400171a0: 12 80 00 58 bne 40017300 <rtems_rfs_file_set_size+0x180> <== NEVER TAKEN
400171a4: a2 10 00 1a mov %i2, %l1
size = rtems_rfs_file_size (handle);
400171a8: d2 07 60 1c ld [ %i5 + 0x1c ], %o1 400171ac: d0 02 60 98 ld [ %o1 + 0x98 ], %o0 400171b0: 7f ff f3 cc call 400140e0 <rtems_rfs_block_get_size> 400171b4: 92 02 60 84 add %o1, 0x84, %o1 400171b8: 84 10 00 08 mov %o0, %g2
if (size != new_size)
400171bc: 80 a4 00 02 cmp %l0, %g2
400171c0: 02 80 00 43 be 400172cc <rtems_rfs_file_set_size+0x14c> <== ALWAYS TAKEN
400171c4: 86 10 00 09 mov %o1, %g3
rc = rtems_rfs_block_map_free_all (rtems_rfs_file_fs (handle), map);
400171c8: f6 07 60 1c ld [ %i5 + 0x1c ], %i3 <== NOT EXECUTED
400171cc: e8 06 e0 98 ld [ %i3 + 0x98 ], %l4
if (new_size == 0)
400171d0: 80 94 00 11 orcc %l0, %l1, %g0
400171d4: 02 80 00 32 be 4001729c <rtems_rfs_file_set_size+0x11c>
400171d8: a4 07 20 34 add %i4, 0x34, %l2
rtems_rfs_block_map_count (map) -
400171dc: f0 07 20 3c ld [ %i4 + 0x3c ], %i0
if (size < new_size)
400171e0: 80 a4 00 02 cmp %l0, %g2
400171e4: 18 80 00 50 bgu 40017324 <rtems_rfs_file_set_size+0x1a4> <== NEVER TAKEN
400171e8: f2 05 20 08 ld [ %l4 + 8 ], %i1
400171ec: 02 80 00 4c be 4001731c <rtems_rfs_file_set_size+0x19c> <== ALWAYS TAKEN
400171f0: 80 a4 40 03 cmp %l1, %g3
(((new_size - 1) /
400171f4: 92 84 7f ff addcc %l1, -1, %o1 <== NOT EXECUTED
400171f8: 96 10 00 19 mov %i1, %o3 400171fc: 90 44 3f ff addx %l0, -1, %o0 40017200: 40 00 1a fa call 4001dde8 <__udivdi3> 40017204: 94 10 20 00 clr %o2
new_size % rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
40017208: 96 10 00 19 mov %i1, %o3
blocks =
4001720c: b4 06 3f ff add %i0, -1, %i2
new_size % rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
40017210: 94 10 20 00 clr %o2
blocks =
40017214: b4 26 80 09 sub %i2, %o1, %i2
new_size % rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
40017218: 90 10 00 10 mov %l0, %o0 4001721c: 40 00 1b 67 call 4001dfb8 <__umoddi3> 40017220: 92 10 00 11 mov %l1, %o1
if (blocks)
40017224: 80 a6 a0 00 cmp %i2, 0
40017228: 12 80 00 8c bne 40017458 <rtems_rfs_file_set_size+0x2d8>
4001722c: b2 10 00 09 mov %o1, %i1 40017230: 82 10 20 01 mov 1, %g1
map->size.offset = offset;
40017234: f2 27 20 40 st %i1, [ %i4 + 0x40 ]
map->dirty = true;
40017238: c2 2f 20 34 stb %g1, [ %i4 + 0x34 ]
if (rtems_rfs_block_pos_past_end (rtems_rfs_file_bpos (handle),
4001723c: c2 07 60 10 ld [ %i5 + 0x10 ], %g1 40017240: 80 a0 60 00 cmp %g1, 0
40017244: 02 80 00 8f be 40017480 <rtems_rfs_file_set_size+0x300>
40017248: 80 a0 40 18 cmp %g1, %i0 4001724c: 80 a6 20 00 cmp %i0, 0
40017250: 12 80 00 8c bne 40017480 <rtems_rfs_file_set_size+0x300> <== ALWAYS TAKEN
40017254: 80 a0 40 18 cmp %g1, %i0
rtems_rfs_block_size_get_bpos (rtems_rfs_block_map_size (map),
40017258: f0 27 60 10 st %i0, [ %i5 + 0x10 ] <== NOT EXECUTED
handle->shared->size.count = rtems_rfs_block_map_count (map);
4001725c: 84 10 00 1b mov %i3, %g2 <== NOT EXECUTED
rtems_rfs_block_size_get_bpos (rtems_rfs_block_map_size (map),
40017260: f2 27 60 14 st %i1, [ %i5 + 0x14 ] 40017264: 80 a6 60 00 cmp %i1, 0
40017268: 02 80 00 04 be 40017278 <rtems_rfs_file_set_size+0xf8> <== NEVER TAKEN
4001726c: c0 27 60 18 clr [ %i5 + 0x18 ] 40017270: 82 06 3f ff add %i0, -1, %g1 40017274: c2 27 60 10 st %g1, [ %i5 + 0x10 ]
handle->shared->size.offset = rtems_rfs_block_map_size_offset (map);
40017278: c2 07 20 40 ld [ %i4 + 0x40 ], %g1 4001727c: c2 20 a0 88 st %g1, [ %g2 + 0x88 ]
handle->shared->size.count = rtems_rfs_block_map_count (map);
40017280: f0 20 a0 84 st %i0, [ %g2 + 0x84 ]
if (rtems_rfs_file_update_mtime (handle))
40017284: d0 07 40 00 ld [ %i5 ], %o0 40017288: b0 8a 20 02 andcc %o0, 2, %i0
4001728c: 02 80 00 17 be 400172e8 <rtems_rfs_file_set_size+0x168> <== ALWAYS TAKEN
40017290: 01 00 00 00 nop
}
40017294: 81 c7 e0 08 ret <== NOT EXECUTED 40017298: 91 e8 20 00 restore %g0, 0, %o0 <== NOT EXECUTED
rc = rtems_rfs_block_map_free_all (rtems_rfs_file_fs (handle), map);
4001729c: 92 10 00 12 mov %l2, %o1 400172a0: 7f ff f6 ab call 40014d4c <rtems_rfs_block_map_free_all> 400172a4: 90 10 00 14 mov %l4, %o0
if (rc > 0)
400172a8: b0 92 20 00 orcc %o0, 0, %i0
400172ac: 14 80 00 81 bg 400174b0 <rtems_rfs_file_set_size+0x330> <== NEVER TAKEN
400172b0: 01 00 00 00 nop
handle->shared->size.count = rtems_rfs_block_map_count (map);
400172b4: c4 07 60 1c ld [ %i5 + 0x1c ], %g2 400172b8: f0 07 20 3c ld [ %i4 + 0x3c ], %i0
handle->shared->size.offset = rtems_rfs_block_map_size_offset (map);
400172bc: c2 07 20 40 ld [ %i4 + 0x40 ], %g1 400172c0: c2 20 a0 88 st %g1, [ %g2 + 0x88 ]
handle->shared->size.count = rtems_rfs_block_map_count (map);
400172c4: 10 bf ff f0 b 40017284 <rtems_rfs_file_set_size+0x104> 400172c8: f0 20 a0 84 st %i0, [ %g2 + 0x84 ]
if (size != new_size)
400172cc: 80 a4 40 09 cmp %l1, %o1
400172d0: 32 bf ff bf bne,a 400171cc <rtems_rfs_file_set_size+0x4c>
400172d4: f6 07 60 1c ld [ %i5 + 0x1c ], %i3
if (rtems_rfs_file_update_mtime (handle))
400172d8: d0 07 40 00 ld [ %i5 ], %o0 400172dc: b0 8a 20 02 andcc %o0, 2, %i0
400172e0: 32 80 00 06 bne,a 400172f8 <rtems_rfs_file_set_size+0x178> <== NEVER TAKEN
400172e4: b0 10 20 00 clr %i0 <== NOT EXECUTED
handle->shared->mtime = time (NULL);
400172e8: 40 00 21 c7 call 4001fa04 <time> 400172ec: 90 10 20 00 clr %o0 400172f0: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 400172f4: d2 20 60 90 st %o1, [ %g1 + 0x90 ] 400172f8: 81 c7 e0 08 ret 400172fc: 81 e8 00 00 restore
printf ("rtems-rfs: file-set-size: size=%" PRIu64 "\n", new_size);
40017300: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 40017304: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 40017308: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 4001730c: 7f ff ae 7b call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017310: 90 12 20 c0 or %o0, 0xc0, %o0 ! 400240c0 <IMFS_LIMITS_AND_OPTIONS+0xb80><== NOT EXECUTED
size = rtems_rfs_file_size (handle);
40017314: 10 bf ff a6 b 400171ac <rtems_rfs_file_set_size+0x2c> <== NOT EXECUTED 40017318: d2 07 60 1c ld [ %i5 + 0x1c ], %o1 <== NOT EXECUTED
if (size < new_size) 4001731c: 08 bf ff b7 bleu 400171f8 <rtems_rfs_file_set_size+0x78>
40017320: 92 84 7f ff addcc %l1, -1, %o1
count = new_size - size;
40017324: b6 a4 40 03 subcc %l1, %g3, %i3
read_block = false;
40017328: a6 10 20 00 clr %l3
count = new_size - size;
4001732c: b4 64 00 02 subx %l0, %g2, %i2 40017330: a2 10 20 01 mov 1, %l1
rc = rtems_rfs_buffer_handle_request (rtems_rfs_file_fs (handle),
40017334: 10 80 00 28 b 400173d4 <rtems_rfs_file_set_size+0x254> 40017338: a0 07 60 04 add %i5, 4, %l0
if (count < (length - bpos.boff))
4001733c: 80 a0 80 1b cmp %g2, %i3
40017340: 28 80 00 44 bleu,a 40017450 <rtems_rfs_file_set_size+0x2d0>
40017344: c0 27 20 40 clr [ %i4 + 0x40 ]
length = count + bpos.boff;
40017348: b2 00 40 1b add %g1, %i3, %i1 4001734c: e2 2f 20 34 stb %l1, [ %i4 + 0x34 ]
read_block = true;
40017350: a6 10 20 01 mov 1, %l3
map->size.offset = offset;
40017354: f2 27 20 40 st %i1, [ %i4 + 0x40 ]
rc = rtems_rfs_buffer_handle_request (rtems_rfs_file_fs (handle),
40017358: 96 0c e0 01 and %l3, 1, %o3 4001735c: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 40017360: d4 07 bf f0 ld [ %fp + -16 ], %o2 40017364: d0 00 60 98 ld [ %g1 + 0x98 ], %o0 40017368: 7f ff bf ae call 40007220 <rtems_rfs_buffer_handle_request> 4001736c: 92 10 00 10 mov %l0, %o1
if (rc > 0)
40017370: b0 92 20 00 orcc %o0, 0, %i0
40017374: 14 bf ff e1 bg 400172f8 <rtems_rfs_file_set_size+0x178> <== NEVER TAKEN
40017378: c2 07 bf f8 ld [ %fp + -8 ], %g1
dst = rtems_rfs_buffer_data (&handle->buffer);
4001737c: c4 07 60 0c ld [ %i5 + 0xc ], %g2
memset (dst + bpos.boff, 0, length - bpos.boff);
40017380: d0 00 a0 1c ld [ %g2 + 0x1c ], %o0 40017384: 94 26 40 01 sub %i1, %g1, %o2 40017388: 92 10 20 00 clr %o1 4001738c: 40 00 1d 44 call 4001e89c <memset> 40017390: 90 02 00 01 add %o0, %g1, %o0
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
40017394: c2 07 60 1c ld [ %i5 + 0x1c ], %g1
rtems_rfs_buffer_mark_dirty (rtems_rfs_file_buffer (handle));
40017398: e2 2f 60 04 stb %l1, [ %i5 + 4 ]
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
4001739c: 92 10 00 10 mov %l0, %o1 400173a0: 7f ff c0 69 call 40007544 <rtems_rfs_buffer_handle_release> 400173a4: d0 00 60 98 ld [ %g1 + 0x98 ], %o0
if (rc > 0)
400173a8: b0 92 20 00 orcc %o0, 0, %i0
400173ac: 14 bf ff d3 bg 400172f8 <rtems_rfs_file_set_size+0x178> <== NEVER TAKEN
400173b0: c2 07 bf f8 ld [ %fp + -8 ], %g1
count -= length - bpos.boff;
400173b4: 82 26 40 01 sub %i1, %g1, %g1
handle->shared->size.count = rtems_rfs_block_map_count (map);
400173b8: c4 07 60 1c ld [ %i5 + 0x1c ], %g2
count -= length - bpos.boff;
400173bc: b6 a6 c0 01 subcc %i3, %g1, %i3 400173c0: b4 66 a0 00 subx %i2, 0, %i2
while (count)
400173c4: 80 96 80 1b orcc %i2, %i3, %g0
400173c8: 02 bf ff ac be 40017278 <rtems_rfs_file_set_size+0xf8>
400173cc: f0 07 20 3c ld [ %i4 + 0x3c ], %i0
rc = rtems_rfs_block_map_find (rtems_rfs_file_fs (handle),
400173d0: e8 00 a0 98 ld [ %g2 + 0x98 ], %l4
rtems_rfs_block_size_get_bpos (rtems_rfs_block_map_size (map), &bpos);
400173d4: c2 07 20 40 ld [ %i4 + 0x40 ], %g1 400173d8: f0 27 bf f4 st %i0, [ %fp + -12 ] 400173dc: 80 a0 60 00 cmp %g1, 0 400173e0: c2 27 bf f8 st %g1, [ %fp + -8 ]
400173e4: 02 80 00 04 be 400173f4 <rtems_rfs_file_set_size+0x274>
400173e8: c0 27 bf fc clr [ %fp + -4 ] 400173ec: b0 06 3f ff add %i0, -1, %i0 400173f0: f0 27 bf f4 st %i0, [ %fp + -12 ]
rc = rtems_rfs_block_map_find (rtems_rfs_file_fs (handle),
400173f4: 96 07 bf f0 add %fp, -16, %o3 400173f8: 94 07 bf f4 add %fp, -12, %o2 400173fc: 92 10 00 12 mov %l2, %o1 40017400: 7f ff f4 19 call 40014464 <rtems_rfs_block_map_find> 40017404: 90 10 00 14 mov %l4, %o0
if (rc > 0)
40017408: b0 92 20 00 orcc %o0, 0, %i0
4001740c: 04 80 00 0c ble 4001743c <rtems_rfs_file_set_size+0x2bc>
40017410: 80 a6 20 06 cmp %i0, 6
if (rc != ENXIO)
40017414: 12 bf ff b9 bne 400172f8 <rtems_rfs_file_set_size+0x178> <== NEVER TAKEN
40017418: 96 07 bf f0 add %fp, -16, %o3
rc = rtems_rfs_block_map_grow (rtems_rfs_file_fs (handle),
4001741c: c2 07 60 1c ld [ %i5 + 0x1c ], %g1 40017420: d0 00 60 98 ld [ %g1 + 0x98 ], %o0 40017424: 94 10 20 01 mov 1, %o2 40017428: 7f ff f4 93 call 40014674 <rtems_rfs_block_map_grow> 4001742c: 92 10 00 12 mov %l2, %o1
if (rc > 0)
40017430: b0 92 20 00 orcc %o0, 0, %i0
40017434: 14 80 00 1f bg 400174b0 <rtems_rfs_file_set_size+0x330> <== NEVER TAKEN
40017438: 01 00 00 00 nop
if (count < (length - bpos.boff))
4001743c: c2 07 bf f8 ld [ %fp + -8 ], %g1 40017440: 80 a6 a0 00 cmp %i2, 0
40017444: 02 bf ff be be 4001733c <rtems_rfs_file_set_size+0x1bc> <== ALWAYS TAKEN
40017448: 84 26 40 01 sub %i1, %g1, %g2
4001744c: c0 27 20 40 clr [ %i4 + 0x40 ] <== NOT EXECUTED
}
40017450: 10 bf ff c2 b 40017358 <rtems_rfs_file_set_size+0x1d8> 40017454: e2 2f 20 34 stb %l1, [ %i4 + 0x34 ]
rc = rtems_rfs_block_map_shrink (rtems_rfs_file_fs (handle),
40017458: 94 10 00 1a mov %i2, %o2 4001745c: 92 06 e0 34 add %i3, 0x34, %o1 40017460: 7f ff f5 79 call 40014a44 <rtems_rfs_block_map_shrink> 40017464: 90 10 00 14 mov %l4, %o0
if (rc > 0)
40017468: b0 92 20 00 orcc %o0, 0, %i0
4001746c: 14 80 00 11 bg 400174b0 <rtems_rfs_file_set_size+0x330> <== NEVER TAKEN
40017470: 01 00 00 00 nop
if (rtems_rfs_block_pos_past_end (rtems_rfs_file_bpos (handle),
40017474: f0 07 20 3c ld [ %i4 + 0x3c ], %i0 40017478: 10 bf ff 6e b 40017230 <rtems_rfs_file_set_size+0xb0> 4001747c: f6 07 60 1c ld [ %i5 + 0x1c ], %i3
40017480: 3a bf ff 77 bcc,a 4001725c <rtems_rfs_file_set_size+0xdc> <== NEVER TAKEN
40017484: f0 27 60 10 st %i0, [ %i5 + 0x10 ] <== NOT EXECUTED
40017488: 84 06 3f ff add %i0, -1, %g2 4001748c: 80 a0 40 02 cmp %g1, %g2
40017490: 12 bf ff 7a bne 40017278 <rtems_rfs_file_set_size+0xf8> <== NEVER TAKEN
40017494: 84 10 00 1b mov %i3, %g2 40017498: c2 07 60 14 ld [ %i5 + 0x14 ], %g1 4001749c: 80 a0 40 19 cmp %g1, %i1
400174a0: 38 bf ff 70 bgu,a 40017260 <rtems_rfs_file_set_size+0xe0>
400174a4: f0 27 60 10 st %i0, [ %i5 + 0x10 ]
handle->shared->size.offset = rtems_rfs_block_map_size_offset (map);
400174a8: 10 bf ff 75 b 4001727c <rtems_rfs_file_set_size+0xfc> 400174ac: c2 07 20 40 ld [ %i4 + 0x40 ], %g1
400174b0: 81 c7 e0 08 ret <== NOT EXECUTED 400174b4: 81 e8 00 00 restore <== NOT EXECUTED
40007a08 <rtems_rfs_format>: return 0; } int rtems_rfs_format (const char* name, const rtems_rfs_format_config* config) {
40007a08: 9d e3 be d8 save %sp, -296, %sp
rtems_rfs_file_system fs; int group; int rc; if (config->verbose)
40007a0c: c2 0e 60 15 ldub [ %i1 + 0x15 ], %g1 40007a10: 80 a0 60 00 cmp %g1, 0
40007a14: 12 80 02 d9 bne 40008578 <rtems_rfs_format+0xb70> <== NEVER TAKEN
40007a18: 92 10 00 18 mov %i0, %o1
printf ("rtems-rfs: format: %s\n", name); memset (&fs, 0, sizeof (rtems_rfs_file_system));
40007a1c: 94 10 20 80 mov 0x80, %o2 40007a20: 92 10 20 00 clr %o1 40007a24: 40 00 5b 9e call 4001e89c <memset> 40007a28: 90 07 bf 80 add %fp, -128, %o0
head->next = tail;
40007a2c: 82 07 bf c4 add %fp, -60, %g1 40007a30: c2 27 bf c0 st %g1, [ %fp + -64 ]
tail->previous = head;
40007a34: 82 07 bf c0 add %fp, -64, %g1 40007a38: c2 27 bf c8 st %g1, [ %fp + -56 ]
head->next = tail;
40007a3c: 82 07 bf d4 add %fp, -44, %g1 40007a40: c2 27 bf d0 st %g1, [ %fp + -48 ]
tail->previous = head;
40007a44: 82 07 bf d0 add %fp, -48, %g1 40007a48: c2 27 bf d8 st %g1, [ %fp + -40 ]
head->next = tail;
40007a4c: 82 07 bf e4 add %fp, -28, %g1 40007a50: c2 27 bf e0 st %g1, [ %fp + -32 ]
tail->previous = head;
40007a54: 82 07 bf e0 add %fp, -32, %g1 40007a58: c2 27 bf e8 st %g1, [ %fp + -24 ]
head->next = tail;
40007a5c: 82 07 bf f4 add %fp, -12, %g1 40007a60: c2 27 bf f0 st %g1, [ %fp + -16 ]
tail->previous = head;
40007a64: 82 07 bf f0 add %fp, -16, %g1 40007a68: c2 27 bf f8 st %g1, [ %fp + -8 ]
rtems_chain_initialize_empty (&fs.buffers); rtems_chain_initialize_empty (&fs.release); rtems_chain_initialize_empty (&fs.release_modified); rtems_chain_initialize_empty (&fs.file_shares); fs.max_held_buffers = RTEMS_RFS_FS_MAX_HELD_BUFFERS;
40007a6c: 82 10 20 05 mov 5, %g1 40007a70: c2 27 bf bc st %g1, [ %fp + -68 ]
fs.release_count = 0; fs.release_modified_count = 0; fs.flags = RTEMS_RFS_FS_NO_LOCAL_CACHE;
40007a74: 82 10 20 02 mov 2, %g1
/* * Open the buffer interface. */ rc = rtems_rfs_buffer_open (name, &fs);
40007a78: 92 07 bf 7c add %fp, -132, %o1
fs.flags = RTEMS_RFS_FS_NO_LOCAL_CACHE;
40007a7c: c2 27 bf 7c st %g1, [ %fp + -132 ]
rc = rtems_rfs_buffer_open (name, &fs);
40007a80: 7f ff fe ba call 40007568 <rtems_rfs_buffer_open> 40007a84: 90 10 00 18 mov %i0, %o0
if (rc != 0)
40007a88: ba 92 20 00 orcc %o0, 0, %i5
40007a8c: 12 80 03 ac bne 4000893c <rtems_rfs_format+0xf34> <== NEVER TAKEN
40007a90: c2 07 bf 8c ld [ %fp + -116 ], %g1
} /* * Check the media. */ if (rtems_rfs_fs_media_block_size (&fs) == 0)
40007a94: d4 00 60 20 ld [ %g1 + 0x20 ], %o2 40007a98: 80 a2 a0 00 cmp %o2, 0
40007a9c: 02 80 03 87 be 400088b8 <rtems_rfs_format+0xeb0> <== NEVER TAKEN
40007aa0: 92 10 20 00 clr %o1
fs->block_size = config->block_size;
40007aa4: d2 06 40 00 ld [ %i1 ], %o1
if (!fs->block_size)
40007aa8: 80 a2 60 00 cmp %o1, 0
40007aac: 02 80 02 b8 be 4000858c <rtems_rfs_format+0xb84>
40007ab0: d2 27 bf 84 st %o1, [ %fp + -124 ]
if ((fs->block_size % rtems_rfs_fs_media_block_size (fs)) != 0)
40007ab4: 81 80 20 00 wr %g0, %y 40007ab8: 01 00 00 00 nop 40007abc: 01 00 00 00 nop 40007ac0: 01 00 00 00 nop 40007ac4: 82 72 40 0a udiv %o1, %o2, %g1 40007ac8: 82 58 40 0a smul %g1, %o2, %g1 40007acc: 80 a2 40 01 cmp %o1, %g1
40007ad0: 32 80 02 d7 bne,a 4000862c <rtems_rfs_format+0xc24> <== NEVER TAKEN
40007ad4: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED
fs->group_blocks = config->group_blocks;
40007ad8: c2 06 60 04 ld [ %i1 + 4 ], %g1 40007adc: c2 27 bf a4 st %g1, [ %fp + -92 ]
if (!fs->group_blocks)
40007ae0: 80 a0 60 00 cmp %g1, 0
40007ae4: 12 80 01 4a bne 4000800c <rtems_rfs_format+0x604> <== NEVER TAKEN
40007ae8: 93 2a 60 03 sll %o1, 3, %o1
fs->group_blocks = rtems_rfs_bitmap_numof_bits (fs->block_size);
40007aec: d2 27 bf a4 st %o1, [ %fp + -92 ]
fs->blocks = rtems_rfs_fs_media_size (fs) / fs->block_size;
40007af0: 40 00 3e 8a call 40017518 <rtems_rfs_fs_media_size> 40007af4: 90 07 bf 7c add %fp, -132, %o0 40007af8: fa 07 bf 84 ld [ %fp + -124 ], %i5 40007afc: 94 10 20 00 clr %o2 40007b00: 40 00 58 ba call 4001dde8 <__udivdi3> 40007b04: 96 10 00 1d mov %i5, %o3 40007b08: d2 27 bf 80 st %o1, [ %fp + -128 ]
return rtems_rfs_bitmap_numof_bits (rtems_rfs_fs_block_size (fs));
40007b0c: b9 2f 60 03 sll %i5, 3, %i4
if (dividend == 0)
40007b10: 80 a2 60 00 cmp %o1, 0
40007b14: 02 80 00 09 be 40007b38 <rtems_rfs_format+0x130> <== NEVER TAKEN
40007b18: 88 10 20 01 mov 1, %g4
return ((dividend - 1) / divisor) + 1;
40007b1c: 82 02 7f ff add %o1, -1, %g1 40007b20: 81 80 20 00 wr %g0, %y 40007b24: 01 00 00 00 nop 40007b28: 01 00 00 00 nop 40007b2c: 01 00 00 00 nop 40007b30: 82 70 40 1c udiv %g1, %i4, %g1 40007b34: 88 00 60 01 add %g1, 1, %g4
fs->group_count = rtems_rfs_rup_quotient (rtems_rfs_fs_blocks (fs),
40007b38: c8 27 bf a0 st %g4, [ %fp + -96 ]
return blocks * (rtems_rfs_fs_block_size (fs) / RTEMS_RFS_INODE_SIZE);
40007b3c: 85 37 60 03 srl %i5, 3, %g2
fs->group_inodes = config->group_inodes;
40007b40: c6 06 60 08 ld [ %i1 + 8 ], %g3
return blocks * (rtems_rfs_fs_block_size (fs) / RTEMS_RFS_INODE_SIZE);
40007b44: 03 09 24 92 sethi %hi(0x24924800), %g1
if (!fs->group_inodes)
40007b48: 80 a0 e0 00 cmp %g3, 0
return blocks * (rtems_rfs_fs_block_size (fs) / RTEMS_RFS_INODE_SIZE);
40007b4c: 82 10 61 25 or %g1, 0x125, %g1 40007b50: 80 50 80 01 umul %g2, %g1, %g0 40007b54: 85 40 00 00 rd %y, %g2
if (!fs->group_inodes)
40007b58: 32 80 01 38 bne,a 40008038 <rtems_rfs_format+0x630> <== NEVER TAKEN
40007b5c: c4 27 bf ac st %g2, [ %fp + -84 ] <== NOT EXECUTED
if (config->inode_overhead)
40007b60: f6 06 60 0c ld [ %i1 + 0xc ], %i3 40007b64: 80 a6 e0 00 cmp %i3, 0
40007b68: 22 80 02 d5 be,a 400086bc <rtems_rfs_format+0xcb4> <== ALWAYS TAKEN
40007b6c: b6 10 20 01 mov 1, %i3
blocks = ((rtems_rfs_fs_blocks (fs) -
40007b70: 82 02 7f ff add %o1, -1, %g1 <== NOT EXECUTED
RTEMS_RFS_SUPERBLOCK_SIZE) * percentage) / 100;
40007b74: 82 58 40 1b smul %g1, %i3, %g1 <== NOT EXECUTED
if (dividend == 0)
40007b78: 80 a0 60 63 cmp %g1, 0x63 <== NOT EXECUTED 40007b7c: 08 80 00 0f bleu 40007bb8 <rtems_rfs_format+0x1b0> <== NOT EXECUTED 40007b80: 86 10 00 02 mov %g2, %g3 <== NOT EXECUTED
RTEMS_RFS_SUPERBLOCK_SIZE) * percentage) / 100;
40007b84: 07 14 7a e1 sethi %hi(0x51eb8400), %g3 40007b88: 86 10 e1 1f or %g3, 0x11f, %g3 ! 51eb851f <RAM_END+0x11ab851f> 40007b8c: 80 50 40 03 umul %g1, %g3, %g0 40007b90: 83 40 00 00 rd %y, %g1 40007b94: 83 30 60 05 srl %g1, 5, %g1
return ((dividend - 1) / divisor) + 1;
40007b98: 82 00 7f ff add %g1, -1, %g1 40007b9c: 81 80 20 00 wr %g0, %y 40007ba0: 01 00 00 00 nop 40007ba4: 01 00 00 00 nop 40007ba8: 01 00 00 00 nop 40007bac: 82 70 40 04 udiv %g1, %g4, %g1 40007bb0: 82 00 60 01 inc %g1
return blocks * (rtems_rfs_fs_block_size (fs) / RTEMS_RFS_INODE_SIZE);
40007bb4: 86 58 40 02 smul %g1, %g2, %g3
if (dividend == 0)
40007bb8: 80 a0 e0 00 cmp %g3, 0
40007bbc: 12 80 01 1f bne 40008038 <rtems_rfs_format+0x630> <== ALWAYS TAKEN
40007bc0: c4 27 bf ac st %g2, [ %fp + -84 ]
if (fs->group_inodes > rtems_rfs_bitmap_numof_bits (fs->block_size))
40007bc4: 80 a7 00 02 cmp %i4, %g2 <== NOT EXECUTED 40007bc8: 2a 80 01 28 bcs,a 40008068 <rtems_rfs_format+0x660> <== NOT EXECUTED 40007bcc: f8 27 bf a8 st %i4, [ %fp + -88 ] <== NOT EXECUTED
fs->group_inodes =
40007bd0: c4 27 bf a8 st %g2, [ %fp + -88 ] <== NOT EXECUTED
fs->max_name_length = config->max_name_length;
40007bd4: c2 06 60 10 ld [ %i1 + 0x10 ], %g1
if (!fs->max_name_length)
40007bd8: 80 a0 60 00 cmp %g1, 0
40007bdc: 32 80 01 28 bne,a 4000807c <rtems_rfs_format+0x674> <== NEVER TAKEN
40007be0: c2 27 bf 98 st %g1, [ %fp + -104 ] <== NOT EXECUTED
fs->max_name_length = 512;
40007be4: 82 10 22 00 mov 0x200, %g1 40007be8: c2 27 bf 98 st %g1, [ %fp + -104 ]
{ errno = EINVAL; return -1; } if (config->verbose)
40007bec: c2 0e 60 15 ldub [ %i1 + 0x15 ], %g1 40007bf0: 80 a0 60 00 cmp %g1, 0
40007bf4: 12 80 01 26 bne 4000808c <rtems_rfs_format+0x684> <== NEVER TAKEN
40007bf8: 01 00 00 00 nop
printf ("rtems-rfs: format: groups = %u\n", fs.group_count); printf ("rtems-rfs: format: group blocks = %zu\n", fs.group_blocks); printf ("rtems-rfs: format: group inodes = %zu\n", fs.group_inodes); } rc = rtems_rfs_buffer_setblksize (&fs, rtems_rfs_fs_block_size (&fs));
40007bfc: 92 10 00 1d mov %i5, %o1 40007c00: 7f ff ff 07 call 4000781c <rtems_rfs_buffer_setblksize> 40007c04: 90 07 bf 7c add %fp, -132, %o0
if (rc != 0)
40007c08: b8 92 20 00 orcc %o0, 0, %i4
40007c0c: 12 80 03 34 bne 400088dc <rtems_rfs_format+0xed4> <== NEVER TAKEN
40007c10: 96 10 20 00 clr %o3
handle->dirty = false;
40007c14: c0 2f bf 54 clrb [ %fp + -172 ]
handle->bnum = 0;
40007c18: c0 27 bf 58 clr [ %fp + -168 ]
rc = rtems_rfs_buffer_handle_request (fs, &handle, 0, false);
40007c1c: 94 10 20 00 clr %o2
handle->buffer = NULL;
40007c20: c0 27 bf 5c clr [ %fp + -164 ] 40007c24: 92 07 bf 54 add %fp, -172, %o1 40007c28: 7f ff fd 7e call 40007220 <rtems_rfs_buffer_handle_request> 40007c2c: 90 07 bf 7c add %fp, -132, %o0
if (rc > 0)
40007c30: ba 92 20 00 orcc %o0, 0, %i5
40007c34: 14 80 02 29 bg 400084d8 <rtems_rfs_format+0xad0> <== NEVER TAKEN
40007c38: c2 07 bf 5c ld [ %fp + -164 ], %g1
sb = rtems_rfs_buffer_data (&handle);
40007c3c: c2 00 60 1c ld [ %g1 + 0x1c ], %g1
memset (sb, 0xff, rtems_rfs_fs_block_size (fs));
40007c40: d4 07 bf 84 ld [ %fp + -124 ], %o2 40007c44: 92 10 20 ff mov 0xff, %o1 40007c48: 40 00 5b 15 call 4001e89c <memset> 40007c4c: 90 10 00 01 mov %g1, %o0
write_sb (RTEMS_RFS_SB_OFFSET_MAGIC, RTEMS_RFS_SB_MAGIC);
40007c50: 84 10 20 28 mov 0x28, %g2 40007c54: c4 2a 00 00 stb %g2, [ %o0 ] 40007c58: 84 10 20 09 mov 9, %g2
write_sb (RTEMS_RFS_SB_OFFSET_VERSION, RTEMS_RFS_VERSION);
40007c5c: c0 2a 20 04 clrb [ %o0 + 4 ]
write_sb (RTEMS_RFS_SB_OFFSET_MAGIC, RTEMS_RFS_SB_MAGIC);
40007c60: 86 10 20 01 mov 1, %g3 40007c64: c4 2a 20 01 stb %g2, [ %o0 + 1 ] 40007c68: 84 10 20 20 mov 0x20, %g2 40007c6c: c6 2a 20 03 stb %g3, [ %o0 + 3 ]
memset (sb, 0xff, rtems_rfs_fs_block_size (fs));
40007c70: 82 10 00 08 mov %o0, %g1
write_sb (RTEMS_RFS_SB_OFFSET_VERSION, RTEMS_RFS_VERSION);
40007c74: c0 2a 20 05 clrb [ %o0 + 5 ]
rc = rtems_rfs_buffer_handle_release (fs, &handle);
40007c78: 92 07 bf 54 add %fp, -172, %o1
write_sb (RTEMS_RFS_SB_OFFSET_MAGIC, RTEMS_RFS_SB_MAGIC);
40007c7c: c4 2a 20 02 stb %g2, [ %o0 + 2 ]
write_sb (RTEMS_RFS_SB_OFFSET_VERSION, RTEMS_RFS_VERSION);
40007c80: c0 2a 20 06 clrb [ %o0 + 6 ]
rc = rtems_rfs_buffer_handle_release (fs, &handle);
40007c84: 90 07 bf 7c add %fp, -132, %o0
write_sb (RTEMS_RFS_SB_OFFSET_VERSION, RTEMS_RFS_VERSION);
40007c88: c0 28 60 07 clrb [ %g1 + 7 ]
write_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE, rtems_rfs_fs_block_size (fs));
40007c8c: c4 0f bf 84 ldub [ %fp + -124 ], %g2 40007c90: c4 28 60 08 stb %g2, [ %g1 + 8 ] 40007c94: c4 17 bf 84 lduh [ %fp + -124 ], %g2 40007c98: c4 28 60 09 stb %g2, [ %g1 + 9 ] 40007c9c: c4 07 bf 84 ld [ %fp + -124 ], %g2 40007ca0: 85 30 a0 08 srl %g2, 8, %g2 40007ca4: c4 28 60 0a stb %g2, [ %g1 + 0xa ]
write_sb (RTEMS_RFS_SB_OFFSET_BLOCKS, rtems_rfs_fs_blocks (fs));
40007ca8: c4 07 bf 80 ld [ %fp + -128 ], %g2
write_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE, rtems_rfs_fs_block_size (fs));
40007cac: c8 07 bf 84 ld [ %fp + -124 ], %g4
write_sb (RTEMS_RFS_SB_OFFSET_BLOCKS, rtems_rfs_fs_blocks (fs));
40007cb0: c4 28 60 0f stb %g2, [ %g1 + 0xf ] 40007cb4: bb 30 a0 18 srl %g2, 0x18, %i5
write_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE, rtems_rfs_fs_block_size (fs));
40007cb8: c8 28 60 0b stb %g4, [ %g1 + 0xb ]
write_sb (RTEMS_RFS_SB_OFFSET_BLOCKS, rtems_rfs_fs_blocks (fs));
40007cbc: 89 30 a0 10 srl %g2, 0x10, %g4 40007cc0: fa 28 60 0c stb %i5, [ %g1 + 0xc ] 40007cc4: 85 30 a0 08 srl %g2, 8, %g2 40007cc8: c8 28 60 0d stb %g4, [ %g1 + 0xd ] 40007ccc: c4 28 60 0e stb %g2, [ %g1 + 0xe ]
write_sb (RTEMS_RFS_SB_OFFSET_BAD_BLOCKS, fs->bad_blocks);
40007cd0: c4 0f bf 94 ldub [ %fp + -108 ], %g2 40007cd4: c4 28 60 10 stb %g2, [ %g1 + 0x10 ] 40007cd8: c4 17 bf 94 lduh [ %fp + -108 ], %g2 40007cdc: c4 28 60 11 stb %g2, [ %g1 + 0x11 ] 40007ce0: c4 07 bf 94 ld [ %fp + -108 ], %g2 40007ce4: 85 30 a0 08 srl %g2, 8, %g2 40007ce8: c4 28 60 12 stb %g2, [ %g1 + 0x12 ] 40007cec: c4 07 bf 94 ld [ %fp + -108 ], %g2 40007cf0: c4 28 60 13 stb %g2, [ %g1 + 0x13 ]
write_sb (RTEMS_RFS_SB_OFFSET_MAX_NAME_LENGTH, fs->max_name_length);
40007cf4: c4 0f bf 98 ldub [ %fp + -104 ], %g2 40007cf8: c4 28 60 14 stb %g2, [ %g1 + 0x14 ] 40007cfc: c4 17 bf 98 lduh [ %fp + -104 ], %g2 40007d00: c4 28 60 15 stb %g2, [ %g1 + 0x15 ] 40007d04: c4 07 bf 98 ld [ %fp + -104 ], %g2 40007d08: 85 30 a0 08 srl %g2, 8, %g2 40007d0c: c4 28 60 16 stb %g2, [ %g1 + 0x16 ] 40007d10: c4 07 bf 98 ld [ %fp + -104 ], %g2 40007d14: c4 28 60 17 stb %g2, [ %g1 + 0x17 ]
write_sb (RTEMS_RFS_SB_OFFSET_GROUPS, fs->group_count);
40007d18: c4 0f bf a0 ldub [ %fp + -96 ], %g2 40007d1c: c4 28 60 18 stb %g2, [ %g1 + 0x18 ] 40007d20: c4 17 bf a0 lduh [ %fp + -96 ], %g2 40007d24: c4 28 60 19 stb %g2, [ %g1 + 0x19 ] 40007d28: c4 07 bf a0 ld [ %fp + -96 ], %g2 40007d2c: 85 30 a0 08 srl %g2, 8, %g2 40007d30: c4 28 60 1a stb %g2, [ %g1 + 0x1a ] 40007d34: c4 07 bf a0 ld [ %fp + -96 ], %g2 40007d38: c4 28 60 1b stb %g2, [ %g1 + 0x1b ]
write_sb (RTEMS_RFS_SB_OFFSET_GROUP_BLOCKS, fs->group_blocks);
40007d3c: c4 0f bf a4 ldub [ %fp + -92 ], %g2 40007d40: c4 28 60 1c stb %g2, [ %g1 + 0x1c ] 40007d44: c4 17 bf a4 lduh [ %fp + -92 ], %g2 40007d48: c4 28 60 1d stb %g2, [ %g1 + 0x1d ] 40007d4c: c4 07 bf a4 ld [ %fp + -92 ], %g2 40007d50: 85 30 a0 08 srl %g2, 8, %g2 40007d54: c4 28 60 1e stb %g2, [ %g1 + 0x1e ] 40007d58: c4 07 bf a4 ld [ %fp + -92 ], %g2 40007d5c: c4 28 60 1f stb %g2, [ %g1 + 0x1f ]
write_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES, fs->group_inodes);
40007d60: c4 0f bf a8 ldub [ %fp + -88 ], %g2 40007d64: c4 28 60 20 stb %g2, [ %g1 + 0x20 ] 40007d68: c4 17 bf a8 lduh [ %fp + -88 ], %g2 40007d6c: c4 28 60 21 stb %g2, [ %g1 + 0x21 ] 40007d70: c4 07 bf a8 ld [ %fp + -88 ], %g2 40007d74: 85 30 a0 08 srl %g2, 8, %g2 40007d78: c4 28 60 22 stb %g2, [ %g1 + 0x22 ] 40007d7c: c4 07 bf a8 ld [ %fp + -88 ], %g2 40007d80: c4 28 60 23 stb %g2, [ %g1 + 0x23 ]
write_sb (RTEMS_RFS_SB_OFFSET_INODE_SIZE, RTEMS_RFS_INODE_SIZE);
40007d84: 84 10 20 38 mov 0x38, %g2 40007d88: c0 28 60 24 clrb [ %g1 + 0x24 ] 40007d8c: c4 28 60 27 stb %g2, [ %g1 + 0x27 ] 40007d90: c0 28 60 25 clrb [ %g1 + 0x25 ] 40007d94: c0 28 60 26 clrb [ %g1 + 0x26 ]
rc = rtems_rfs_buffer_handle_release (fs, &handle);
40007d98: 7f ff fd eb call 40007544 <rtems_rfs_buffer_handle_release> 40007d9c: c6 2f bf 54 stb %g3, [ %fp + -172 ]
*/ static inline int rtems_rfs_buffer_handle_close (rtems_rfs_file_system* fs, rtems_rfs_buffer_handle* handle) { rtems_rfs_buffer_handle_release (fs, handle);
40007da0: 92 07 bf 54 add %fp, -172, %o1 40007da4: ba 10 00 08 mov %o0, %i5
if (rc > 0)
40007da8: 80 a7 60 00 cmp %i5, 0
40007dac: 14 80 02 28 bg 4000864c <rtems_rfs_format+0xc44> <== NEVER TAKEN
40007db0: 90 07 bf 7c add %fp, -132, %o0 40007db4: 7f ff fd e4 call 40007544 <rtems_rfs_buffer_handle_release> 40007db8: 01 00 00 00 nop
errno = EIO; return -1; } for (group = 0; group < fs.group_count; group++)
40007dbc: c2 07 bf a0 ld [ %fp + -96 ], %g1 40007dc0: 80 a0 60 00 cmp %g1, 0
40007dc4: 24 80 01 1e ble,a 4000823c <rtems_rfs_format+0x834> <== NEVER TAKEN
40007dc8: c2 0e 60 15 ldub [ %i1 + 0x15 ], %g1 <== NOT EXECUTED
printf ("\rrtems-rfs: format: group %3d: base = %" PRId32 ", size = %zd",
40007dcc: 29 10 00 89 sethi %hi(0x40022400), %l4
printf (", blocks");
40007dd0: 27 10 00 89 sethi %hi(0x40022400), %l3
printf (", inodes");
40007dd4: 2b 10 00 89 sethi %hi(0x40022400), %l5
printf ("\rrtems-rfs: format: group %3d: base = %" PRId32 ", size = %zd",
40007dd8: a8 15 22 b0 or %l4, 0x2b0, %l4
printf (", blocks");
40007ddc: a6 14 e2 e8 or %l3, 0x2e8, %l3
rtems_rfs_buffer_mark_dirty (&handle);
40007de0: a4 10 20 01 mov 1, %l2
printf (", inodes");
40007de4: aa 15 63 d8 or %l5, 0x3d8, %l5
group_base = rtems_rfs_fs_block (fs, group, 0);
40007de8: f6 07 bf a4 ld [ %fp + -92 ], %i3
if (group_base > rtems_rfs_fs_blocks (fs))
40007dec: c2 07 bf 80 ld [ %fp + -128 ], %g1
group_base = rtems_rfs_fs_block (fs, group, 0);
40007df0: b4 5f 00 1b smul %i4, %i3, %i2 40007df4: 98 06 a0 01 add %i2, 1, %o4
if (group_base > rtems_rfs_fs_blocks (fs))
40007df8: 80 a3 00 01 cmp %o4, %g1
40007dfc: 18 80 01 71 bgu 400083c0 <rtems_rfs_format+0x9b8> <== NEVER TAKEN
40007e00: 84 06 c0 0c add %i3, %o4, %g2
if ((group_base + group_size) > rtems_rfs_fs_blocks (fs))
40007e04: 80 a0 40 02 cmp %g1, %g2
40007e08: 2a 80 00 02 bcs,a 40007e10 <rtems_rfs_format+0x408> <== ALWAYS TAKEN
40007e0c: b6 20 40 0c sub %g1, %o4, %i3
if (verbose)
40007e10: e0 0e 60 15 ldub [ %i1 + 0x15 ], %l0 40007e14: 80 a4 20 00 cmp %l0, 0
40007e18: 12 80 01 5d bne 4000838c <rtems_rfs_format+0x984> <== NEVER TAKEN
40007e1c: e2 0e 60 14 ldub [ %i1 + 0x14 ], %l1
handle->dirty = false;
40007e20: c0 2f bf 48 clrb [ %fp + -184 ]
handle->bnum = 0;
40007e24: c0 27 bf 4c clr [ %fp + -180 ]
handle->buffer = NULL;
40007e28: c0 27 bf 50 clr [ %fp + -176 ]
rc = rtems_rfs_bitmap_open (&bitmap, fs, &handle, group_size,
40007e2c: 96 10 00 1b mov %i3, %o3 40007e30: 94 07 bf 48 add %fp, -184, %o2 40007e34: 92 07 bf 7c add %fp, -132, %o1 40007e38: 7f ff fb e1 call 40006dbc <rtems_rfs_bitmap_open> 40007e3c: 90 07 bf 54 add %fp, -172, %o0
if (rc > 0)
40007e40: ba 92 20 00 orcc %o0, 0, %i5
40007e44: 14 80 01 3e bg 4000833c <rtems_rfs_format+0x934> <== NEVER TAKEN
40007e48: c2 07 bf 50 ld [ %fp + -176 ], %g1
memset (rtems_rfs_buffer_data (&handle), 0xff, rtems_rfs_fs_block_size (fs));
40007e4c: d4 07 bf 84 ld [ %fp + -124 ], %o2 40007e50: d0 00 60 1c ld [ %g1 + 0x1c ], %o0 40007e54: 40 00 5a 92 call 4001e89c <memset> 40007e58: 92 10 20 ff mov 0xff, %o1
rc = rtems_rfs_bitmap_map_clear_all (&bitmap);
40007e5c: 7f ff fb 1a call 40006ac4 <rtems_rfs_bitmap_map_clear_all> 40007e60: 90 07 bf 54 add %fp, -172, %o0
if (rc > 0)
40007e64: ba 92 20 00 orcc %o0, 0, %i5
40007e68: 14 80 01 60 bg 400083e8 <rtems_rfs_format+0x9e0> <== NEVER TAKEN
40007e6c: 92 10 20 00 clr %o1
rtems_rfs_bitmap_map_set (&bitmap, RTEMS_RFS_GROUP_BLOCK_BITMAP_BLOCK);
40007e70: 7f ff fa 5f call 400067ec <rtems_rfs_bitmap_map_set> 40007e74: 90 07 bf 54 add %fp, -172, %o0
rtems_rfs_bitmap_map_set (&bitmap, RTEMS_RFS_GROUP_INODE_BITMAP_BLOCK);
40007e78: 92 10 20 01 mov 1, %o1 40007e7c: 7f ff fa 5c call 400067ec <rtems_rfs_bitmap_map_set> 40007e80: 90 07 bf 54 add %fp, -172, %o0
blocks = rtems_rfs_rup_quotient (fs->group_inodes, fs->inodes_per_block);
40007e84: c2 07 bf a8 ld [ %fp + -88 ], %g1
if (dividend == 0)
40007e88: 80 a0 60 00 cmp %g1, 0
40007e8c: 02 80 01 68 be 4000842c <rtems_rfs_format+0xa24> <== NEVER TAKEN
40007e90: 82 00 7f ff add %g1, -1, %g1
return ((dividend - 1) / divisor) + 1;
40007e94: 81 80 20 00 wr %g0, %y 40007e98: ee 07 bf ac ld [ %fp + -84 ], %l7 40007e9c: 01 00 00 00 nop 40007ea0: 01 00 00 00 nop 40007ea4: ae 70 40 17 udiv %g1, %l7, %l7 40007ea8: ac 05 e0 01 add %l7, 1, %l6
for (b = 0; b < blocks; b++)
40007eac: 80 a5 a0 00 cmp %l6, 0
40007eb0: 04 80 00 0a ble 40007ed8 <rtems_rfs_format+0x4d0> <== NEVER TAKEN
40007eb4: ba 10 20 02 mov 2, %i5 40007eb8: ae 05 e0 03 add %l7, 3, %l7
rtems_rfs_bitmap_map_set (&bitmap, b + RTEMS_RFS_GROUP_INODE_BLOCK);
40007ebc: 92 10 00 1d mov %i5, %o1 40007ec0: 7f ff fa 4b call 400067ec <rtems_rfs_bitmap_map_set> 40007ec4: 90 07 bf 54 add %fp, -172, %o0
for (b = 0; b < blocks; b++)
40007ec8: ba 07 60 01 inc %i5 40007ecc: 80 a7 40 17 cmp %i5, %l7
40007ed0: 12 bf ff fc bne 40007ec0 <rtems_rfs_format+0x4b8>
40007ed4: 92 10 00 1d mov %i5, %o1
rc = rtems_rfs_bitmap_close (&bitmap);
40007ed8: 7f ff fb ca call 40006e00 <rtems_rfs_bitmap_close> 40007edc: 90 07 bf 54 add %fp, -172, %o0
if (rc > 0)
40007ee0: ba 92 20 00 orcc %o0, 0, %i5
40007ee4: 14 80 01 5c bg 40008454 <rtems_rfs_format+0xa4c> <== NEVER TAKEN
40007ee8: 92 07 bf 48 add %fp, -184, %o1
if (verbose)
40007eec: 80 a4 20 00 cmp %l0, 0
40007ef0: 12 80 01 76 bne 400084c8 <rtems_rfs_format+0xac0> <== NEVER TAKEN
40007ef4: e4 2f bf 48 stb %l2, [ %fp + -184 ]
rc = rtems_rfs_bitmap_open (&bitmap, fs, &handle, group_size,
40007ef8: 98 06 a0 02 add %i2, 2, %o4 40007efc: 96 10 00 1b mov %i3, %o3 40007f00: 94 07 bf 48 add %fp, -184, %o2 40007f04: 92 07 bf 7c add %fp, -132, %o1 40007f08: 7f ff fb ad call 40006dbc <rtems_rfs_bitmap_open> 40007f0c: 90 07 bf 54 add %fp, -172, %o0
if (rc > 0)
40007f10: ba 92 20 00 orcc %o0, 0, %i5
40007f14: 14 80 01 5e bg 4000848c <rtems_rfs_format+0xa84> <== NEVER TAKEN
40007f18: c2 07 bf 50 ld [ %fp + -176 ], %g1
memset (rtems_rfs_buffer_data (&handle), 0x00, rtems_rfs_fs_block_size (fs));
40007f1c: d4 07 bf 84 ld [ %fp + -124 ], %o2 40007f20: d0 00 60 1c ld [ %g1 + 0x1c ], %o0 40007f24: 40 00 5a 5e call 4001e89c <memset> 40007f28: 92 10 20 00 clr %o1
rc = rtems_rfs_bitmap_map_clear_all (&bitmap);
40007f2c: 7f ff fa e6 call 40006ac4 <rtems_rfs_bitmap_map_clear_all> 40007f30: 90 07 bf 54 add %fp, -172, %o0 40007f34: ba 10 00 08 mov %o0, %i5
if (rc > 0)
40007f38: 80 a7 60 00 cmp %i5, 0
40007f3c: 14 80 01 7e bg 40008534 <rtems_rfs_format+0xb2c> <== NEVER TAKEN
40007f40: 90 07 bf 54 add %fp, -172, %o0
rc = rtems_rfs_bitmap_close (&bitmap);
40007f44: 7f ff fb af call 40006e00 <rtems_rfs_bitmap_close> 40007f48: 01 00 00 00 nop
if (rc > 0)
40007f4c: ba 92 20 00 orcc %o0, 0, %i5
40007f50: 14 80 02 0d bg 40008784 <rtems_rfs_format+0xd7c> <== NEVER TAKEN
40007f54: 80 8c 60 ff btst 0xff, %l1
if (initialise_inodes)
40007f58: 02 80 00 b0 be 40008218 <rtems_rfs_format+0x810> <== ALWAYS TAKEN
40007f5c: e4 2f bf 48 stb %l2, [ %fp + -184 ]
for (b = 0; b < blocks; b++)
40007f60: 80 a5 a0 00 cmp %l6, 0 <== NOT EXECUTED 40007f64: 04 80 00 ad ble 40008218 <rtems_rfs_format+0x810> <== NOT EXECUTED 40007f68: b4 06 a0 03 add %i2, 3, %i2 <== NOT EXECUTED 40007f6c: 10 80 00 0a b 40007f94 <rtems_rfs_format+0x58c> <== NOT EXECUTED 40007f70: ac 05 80 1a add %l6, %i2, %l6 <== NOT EXECUTED
memset (rtems_rfs_buffer_data (&handle), 0xff, rtems_rfs_fs_block_size (fs));
40007f74: c2 07 bf 50 ld [ %fp + -176 ], %g1 <== NOT EXECUTED 40007f78: d4 07 bf 84 ld [ %fp + -124 ], %o2 <== NOT EXECUTED 40007f7c: 40 00 5a 48 call 4001e89c <memset> <== NOT EXECUTED 40007f80: d0 00 60 1c ld [ %g1 + 0x1c ], %o0 <== NOT EXECUTED
for (b = 0; b < blocks; b++)
40007f84: b4 06 a0 01 inc %i2 <== NOT EXECUTED 40007f88: 80 a5 80 1a cmp %l6, %i2 <== NOT EXECUTED 40007f8c: 02 80 00 a3 be 40008218 <rtems_rfs_format+0x810> <== NOT EXECUTED 40007f90: e4 2f bf 48 stb %l2, [ %fp + -184 ] <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &handle,
40007f94: 92 07 bf 48 add %fp, -184, %o1 <== NOT EXECUTED 40007f98: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 40007f9c: 96 10 20 00 clr %o3 <== NOT EXECUTED 40007fa0: 7f ff fc a0 call 40007220 <rtems_rfs_buffer_handle_request> <== NOT EXECUTED 40007fa4: 90 07 bf 7c add %fp, -132, %o0 <== NOT EXECUTED
if (rc > 0)
40007fa8: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 40007fac: 04 bf ff f2 ble 40007f74 <rtems_rfs_format+0x56c> <== NOT EXECUTED 40007fb0: 92 10 20 ff mov 0xff, %o1 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40007fb4: 92 07 bf 48 add %fp, -184, %o1 <== NOT EXECUTED 40007fb8: 7f ff fd 63 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40007fbc: 90 07 bf 7c add %fp, -132, %o0 <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: block %" PRId32 " request failed: %d: %s\n",
40007fc0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
handle->dirty = false;
40007fc4: c0 2f bf 48 clrb [ %fp + -184 ] <== NOT EXECUTED
if (!rtems_rfs_write_group (&fs, group, config->initialise_inodes, config->verbose)) { errno = EIO; return -1;
40007fc8: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED
handle->bnum = 0;
40007fcc: c0 27 bf 4c clr [ %fp + -180 ] <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: block %" PRId32 " request failed: %d: %s\n",
40007fd0: 40 00 5d 8f call 4001f60c <strerror> <== NOT EXECUTED 40007fd4: c0 27 bf 50 clr [ %fp + -176 ] <== NOT EXECUTED 40007fd8: 96 10 00 1d mov %i5, %o3 <== NOT EXECUTED 40007fdc: 98 10 00 08 mov %o0, %o4 <== NOT EXECUTED 40007fe0: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 40007fe4: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 40007fe8: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 40007fec: 7f ff eb 43 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40007ff0: 90 12 20 c8 or %o0, 0xc8, %o0 ! 400228c8 <IMFS_node_control_sym_link+0xb40><== NOT EXECUTED
errno = EIO;
40007ff4: 40 00 58 ca call 4001e31c <__errno> <== NOT EXECUTED 40007ff8: 01 00 00 00 nop <== NOT EXECUTED 40007ffc: 82 10 20 05 mov 5, %g1 ! 5 <_TLS_Alignment+0x4> <== NOT EXECUTED 40008000: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED
return -1;
40008004: 81 c7 e0 08 ret <== NOT EXECUTED 40008008: 81 e8 00 00 restore <== NOT EXECUTED
if (fs->group_blocks > rtems_rfs_bitmap_numof_bits (fs->block_size))
4000800c: 80 a0 40 09 cmp %g1, %o1 <== NOT EXECUTED 40008010: 08 bf fe b8 bleu 40007af0 <rtems_rfs_format+0xe8> <== NOT EXECUTED 40008014: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED
printf ("group block count is higher than bits in block\n");
40008018: 7f ff eb 46 call 40002d30 <__wrap_puts> <== NOT EXECUTED 4000801c: 90 12 23 80 or %o0, 0x380, %o0 ! 40022380 <IMFS_node_control_sym_link+0x5f8><== NOT EXECUTED
errno = EINVAL;
40008020: 40 00 58 bf call 4001e31c <__errno> <== NOT EXECUTED 40008024: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40008028: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 4000802c: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED
return -1;
40008030: 81 c7 e0 08 ret <== NOT EXECUTED 40008034: 81 e8 00 00 restore <== NOT EXECUTED
return ((dividend - 1) / divisor) + 1;
40008038: 82 00 ff ff add %g3, -1, %g1 4000803c: 81 80 20 00 wr %g0, %y 40008040: 01 00 00 00 nop 40008044: 01 00 00 00 nop 40008048: 01 00 00 00 nop 4000804c: 82 70 40 02 udiv %g1, %g2, %g1 40008050: 82 00 60 01 inc %g1
fs->inodes_per_block) * fs->inodes_per_block;
40008054: 84 58 80 01 smul %g2, %g1, %g2
if (fs->group_inodes > rtems_rfs_bitmap_numof_bits (fs->block_size))
40008058: 80 a7 00 02 cmp %i4, %g2
4000805c: 3a bf fe de bcc,a 40007bd4 <rtems_rfs_format+0x1cc> <== ALWAYS TAKEN
40008060: c4 27 bf a8 st %g2, [ %fp + -88 ]
fs->group_inodes = rtems_rfs_bitmap_numof_bits (fs->block_size);
40008064: f8 27 bf a8 st %i4, [ %fp + -88 ] <== NOT EXECUTED
fs->max_name_length = config->max_name_length;
40008068: c2 06 60 10 ld [ %i1 + 0x10 ], %g1 <== NOT EXECUTED
if (!fs->max_name_length)
4000806c: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40008070: 22 bf fe de be,a 40007be8 <rtems_rfs_format+0x1e0> <== NOT EXECUTED 40008074: 82 10 22 00 mov 0x200, %g1 <== NOT EXECUTED
fs->max_name_length = config->max_name_length;
40008078: c2 27 bf 98 st %g1, [ %fp + -104 ] <== NOT EXECUTED
if (config->verbose)
4000807c: c2 0e 60 15 ldub [ %i1 + 0x15 ], %g1 <== NOT EXECUTED 40008080: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40008084: 02 bf fe df be 40007c00 <rtems_rfs_format+0x1f8> <== NOT EXECUTED 40008088: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED
printf ("rtems-rfs: format: media size = %" PRIu64 "\n",
4000808c: 40 00 3d 23 call 40017518 <rtems_rfs_fs_media_size> <== NOT EXECUTED 40008090: 90 07 bf 7c add %fp, -132, %o0 <== NOT EXECUTED 40008094: 94 10 00 09 mov %o1, %o2 <== NOT EXECUTED 40008098: 92 10 00 08 mov %o0, %o1 <== NOT EXECUTED 4000809c: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 400080a0: 7f ff eb 16 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400080a4: 90 12 23 b0 or %o0, 0x3b0, %o0 ! 400223b0 <IMFS_node_control_sym_link+0x628><== NOT EXECUTED
printf ("rtems-rfs: format: media blocks = %" PRIu32 "\n",
400080a8: c2 07 bf 8c ld [ %fp + -116 ], %g1 <== NOT EXECUTED 400080ac: d2 00 60 1c ld [ %g1 + 0x1c ], %o1 <== NOT EXECUTED 400080b0: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 400080b4: 7f ff eb 11 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400080b8: 90 12 23 d8 or %o0, 0x3d8, %o0 ! 400223d8 <IMFS_node_control_sym_link+0x650><== NOT EXECUTED
printf ("rtems-rfs: format: media block size = %" PRIu32 "\n",
400080bc: c2 07 bf 8c ld [ %fp + -116 ], %g1 <== NOT EXECUTED 400080c0: d2 00 60 20 ld [ %g1 + 0x20 ], %o1 <== NOT EXECUTED 400080c4: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 400080c8: 7f ff eb 0c call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400080cc: 90 12 20 00 mov %o0, %o0 ! 40022400 <IMFS_node_control_sym_link+0x678> <== NOT EXECUTED
printf ("rtems-rfs: format: size = %" PRIu64 "\n",
400080d0: 40 00 3d 0c call 40017500 <rtems_rfs_fs_size> <== NOT EXECUTED 400080d4: 90 07 bf 7c add %fp, -132, %o0 <== NOT EXECUTED 400080d8: 94 10 00 09 mov %o1, %o2 <== NOT EXECUTED 400080dc: 92 10 00 08 mov %o0, %o1 <== NOT EXECUTED 400080e0: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 400080e4: 7f ff eb 05 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400080e8: 90 12 20 30 or %o0, 0x30, %o0 ! 40022430 <IMFS_node_control_sym_link+0x6a8><== NOT EXECUTED
printf ("rtems-rfs: format: blocks = %zu\n",
400080ec: d2 07 bf 80 ld [ %fp + -128 ], %o1 <== NOT EXECUTED 400080f0: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 400080f4: 7f ff eb 01 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400080f8: 90 12 20 50 or %o0, 0x50, %o0 ! 40022450 <IMFS_node_control_sym_link+0x6c8><== NOT EXECUTED
printf ("rtems-rfs: format: block size = %zu\n",
400080fc: d2 07 bf 84 ld [ %fp + -124 ], %o1 <== NOT EXECUTED 40008100: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 40008104: 7f ff ea fd call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008108: 90 12 20 78 or %o0, 0x78, %o0 ! 40022478 <IMFS_node_control_sym_link+0x6f0><== NOT EXECUTED
return rtems_rfs_bitmap_numof_bits (rtems_rfs_fs_block_size (fs));
4000810c: d2 07 bf 84 ld [ %fp + -124 ], %o1 <== NOT EXECUTED
printf ("rtems-rfs: format: bits per block = %u\n",
40008110: 93 2a 60 03 sll %o1, 3, %o1 <== NOT EXECUTED 40008114: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 40008118: 7f ff ea f8 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4000811c: 90 12 20 a0 or %o0, 0xa0, %o0 ! 400224a0 <IMFS_node_control_sym_link+0x718><== NOT EXECUTED
printf ("rtems-rfs: format: inode size = %zu\n", RTEMS_RFS_INODE_SIZE);
40008120: 92 10 20 38 mov 0x38, %o1 <== NOT EXECUTED 40008124: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 40008128: 7f ff ea f4 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4000812c: 90 12 20 c8 or %o0, 0xc8, %o0 ! 400224c8 <IMFS_node_control_sym_link+0x740><== NOT EXECUTED
fs.group_inodes * fs.group_count,
40008130: c4 07 bf a8 ld [ %fp + -88 ], %g2 <== NOT EXECUTED
printf ("rtems-rfs: format: inodes = %zu (%d.%d%%)\n",
40008134: d2 07 bf a0 ld [ %fp + -96 ], %o1 <== NOT EXECUTED
blocks = rtems_rfs_rup_quotient(fs->group_inodes * RTEMS_RFS_INODE_SIZE,
40008138: 83 28 a0 03 sll %g2, 3, %g1 <== NOT EXECUTED
printf ("rtems-rfs: format: inodes = %zu (%d.%d%%)\n",
4000813c: 92 58 80 09 smul %g2, %o1, %o1 <== NOT EXECUTED
blocks = rtems_rfs_rup_quotient(fs->group_inodes * RTEMS_RFS_INODE_SIZE,
40008140: 82 20 40 02 sub %g1, %g2, %g1 <== NOT EXECUTED 40008144: c6 07 bf 84 ld [ %fp + -124 ], %g3 <== NOT EXECUTED 40008148: 83 28 60 03 sll %g1, 3, %g1 <== NOT EXECUTED
if (dividend == 0)
4000814c: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40008150: 02 80 00 0a be 40008178 <rtems_rfs_format+0x770> <== NOT EXECUTED 40008154: 84 10 27 d0 mov 0x7d0, %g2 <== NOT EXECUTED
return ((dividend - 1) / divisor) + 1;
40008158: 82 00 7f ff add %g1, -1, %g1 <== NOT EXECUTED 4000815c: 81 80 20 00 wr %g0, %y <== NOT EXECUTED 40008160: 01 00 00 00 nop <== NOT EXECUTED 40008164: 01 00 00 00 nop <== NOT EXECUTED 40008168: 01 00 00 00 nop <== NOT EXECUTED 4000816c: 82 70 40 03 udiv %g1, %g3, %g1 <== NOT EXECUTED
return ((blocks + 1) * 100 * 10) / bits_per_block;
40008170: 82 00 60 02 add %g1, 2, %g1 <== NOT EXECUTED 40008174: 84 58 63 e8 smul %g1, 0x3e8, %g2 <== NOT EXECUTED 40008178: c2 07 bf 80 ld [ %fp + -128 ], %g1 <== NOT EXECUTED
return rtems_rfs_bitmap_numof_bits (rtems_rfs_fs_block_size (fs));
4000817c: 87 28 e0 03 sll %g3, 3, %g3 <== NOT EXECUTED
return ((blocks + 1) * 100 * 10) / bits_per_block;
40008180: 82 00 7f ff add %g1, -1, %g1 <== NOT EXECUTED 40008184: 80 a0 40 03 cmp %g1, %g3 <== NOT EXECUTED 40008188: 38 80 00 02 bgu,a 40008190 <rtems_rfs_format+0x788> <== NOT EXECUTED 4000818c: 82 10 00 03 mov %g3, %g1 <== NOT EXECUTED 40008190: 87 38 a0 1f sra %g2, 0x1f, %g3 <== NOT EXECUTED 40008194: 81 80 e0 00 wr %g3, %y <== NOT EXECUTED 40008198: 01 00 00 00 nop <== NOT EXECUTED 4000819c: 01 00 00 00 nop <== NOT EXECUTED 400081a0: 01 00 00 00 nop <== NOT EXECUTED 400081a4: 82 78 80 01 sdiv %g2, %g1, %g1 <== NOT EXECUTED
printf ("rtems-rfs: format: inodes = %zu (%d.%d%%)\n",
400081a8: 85 38 60 1f sra %g1, 0x1f, %g2 <== NOT EXECUTED 400081ac: 15 19 99 99 sethi %hi(0x66666400), %o2 <== NOT EXECUTED 400081b0: 94 12 a2 67 or %o2, 0x267, %o2 ! 66666667 <RAM_END+0x26266667> <== NOT EXECUTED 400081b4: 80 58 40 0a smul %g1, %o2, %g0 <== NOT EXECUTED 400081b8: 95 40 00 00 rd %y, %o2 <== NOT EXECUTED 400081bc: 95 3a a0 02 sra %o2, 2, %o2 <== NOT EXECUTED 400081c0: 94 22 80 02 sub %o2, %g2, %o2 <== NOT EXECUTED 400081c4: 85 2a a0 02 sll %o2, 2, %g2 <== NOT EXECUTED 400081c8: 84 00 80 0a add %g2, %o2, %g2 <== NOT EXECUTED 400081cc: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 400081d0: 97 28 a0 01 sll %g2, 1, %o3 <== NOT EXECUTED 400081d4: 90 12 20 f0 or %o0, 0xf0, %o0 <== NOT EXECUTED 400081d8: 7f ff ea c8 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400081dc: 96 20 40 0b sub %g1, %o3, %o3 <== NOT EXECUTED
printf ("rtems-rfs: format: groups = %u\n", fs.group_count);
400081e0: d2 07 bf a0 ld [ %fp + -96 ], %o1 <== NOT EXECUTED 400081e4: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 400081e8: 7f ff ea c4 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400081ec: 90 12 21 20 or %o0, 0x120, %o0 ! 40022520 <IMFS_node_control_sym_link+0x798><== NOT EXECUTED
printf ("rtems-rfs: format: group blocks = %zu\n", fs.group_blocks);
400081f0: d2 07 bf a4 ld [ %fp + -92 ], %o1 <== NOT EXECUTED 400081f4: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 400081f8: 7f ff ea c0 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400081fc: 90 12 21 40 or %o0, 0x140, %o0 ! 40022540 <IMFS_node_control_sym_link+0x7b8><== NOT EXECUTED
printf ("rtems-rfs: format: group inodes = %zu\n", fs.group_inodes);
40008200: d2 07 bf a8 ld [ %fp + -88 ], %o1 <== NOT EXECUTED 40008204: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 40008208: 7f ff ea bc call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4000820c: 90 12 21 68 or %o0, 0x168, %o0 ! 40022568 <IMFS_node_control_sym_link+0x7e0><== NOT EXECUTED
rc = rtems_rfs_buffer_setblksize (&fs, rtems_rfs_fs_block_size (&fs));
40008210: 10 bf fe 7b b 40007bfc <rtems_rfs_format+0x1f4> <== NOT EXECUTED 40008214: fa 07 bf 84 ld [ %fp + -124 ], %i5 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40008218: 92 07 bf 48 add %fp, -184, %o1 4000821c: 7f ff fc ca call 40007544 <rtems_rfs_buffer_handle_release> 40008220: 90 07 bf 7c add %fp, -132, %o0
for (group = 0; group < fs.group_count; group++)
40008224: c2 07 bf a0 ld [ %fp + -96 ], %g1 40008228: b8 07 20 01 inc %i4 4000822c: 80 a0 40 1c cmp %g1, %i4
40008230: 14 bf fe ef bg 40007dec <rtems_rfs_format+0x3e4> <== NEVER TAKEN
40008234: f6 07 bf a4 ld [ %fp + -92 ], %i3
} if (config->verbose)
40008238: c2 0e 60 15 ldub [ %i1 + 0x15 ], %g1 4000823c: 80 a0 60 00 cmp %g1, 0
40008240: 12 80 01 47 bne 4000875c <rtems_rfs_format+0xd54> <== NEVER TAKEN
40008244: 01 00 00 00 nop
printf ("\n"); rc = rtems_rfs_buffer_close (&fs);
40008248: 7f ff fd b6 call 40007920 <rtems_rfs_buffer_close> 4000824c: 90 07 bf 7c add %fp, -132, %o0
if (rc != 0)
40008250: ba 92 20 00 orcc %o0, 0, %i5
40008254: 12 80 01 ae bne 4000890c <rtems_rfs_format+0xf04> <== NEVER TAKEN
40008258: 98 07 bf 44 add %fp, -188, %o4
rc = rtems_rfs_fs_open (name, NULL,
4000825c: 96 10 20 00 clr %o3 40008260: 94 10 20 06 mov 6, %o2 40008264: 92 10 20 00 clr %o1 40008268: 40 00 3c b3 call 40017534 <rtems_rfs_fs_open> 4000826c: 90 10 00 18 mov %i0, %o0
if (rc != 0)
40008270: 80 a2 20 00 cmp %o0, 0
40008274: 12 80 01 2b bne 40008720 <rtems_rfs_format+0xd18> <== NEVER TAKEN
40008278: 94 07 bf 48 add %fp, -184, %o2
rc = rtems_rfs_inode_alloc (fs, RTEMS_RFS_ROOT_INO, &ino);
4000827c: d0 07 bf 44 ld [ %fp + -188 ], %o0 40008280: 40 00 03 6d call 40009034 <rtems_rfs_inode_alloc> 40008284: 92 10 20 01 mov 1, %o1
if (rc != 0)
40008288: b0 92 20 00 orcc %o0, 0, %i0
4000828c: 12 80 01 4d bne 400087c0 <rtems_rfs_format+0xdb8> <== NEVER TAKEN
40008290: d2 07 bf 48 ld [ %fp + -184 ], %o1
if (ino != RTEMS_RFS_ROOT_INO)
40008294: 80 a2 60 01 cmp %o1, 1
40008298: 12 80 01 10 bne 400086d8 <rtems_rfs_format+0xcd0> <== NEVER TAKEN
4000829c: 96 10 20 01 mov 1, %o3
rc = rtems_rfs_inode_open (fs, ino, &inode, true);
400082a0: d0 07 bf 44 ld [ %fp + -188 ], %o0 400082a4: 94 07 bf 54 add %fp, -172, %o2 400082a8: 40 00 03 9a call 40009110 <rtems_rfs_inode_open> 400082ac: 92 10 20 01 mov 1, %o1
if (rc != 0)
400082b0: b0 92 20 00 orcc %o0, 0, %i0
400082b4: 12 80 01 4d bne 400087e8 <rtems_rfs_format+0xde0> <== NEVER TAKEN
400082b8: 98 10 20 00 clr %o4
rc = rtems_rfs_inode_initialise (&inode, 0,
400082bc: 96 10 20 00 clr %o3 400082c0: 92 10 20 00 clr %o1 400082c4: 15 00 00 10 sethi %hi(0x4000), %o2 400082c8: 90 07 bf 54 add %fp, -172, %o0 400082cc: 40 00 04 a6 call 40009564 <rtems_rfs_inode_initialise> 400082d0: 94 12 a1 c9 or %o2, 0x1c9, %o2
if (rc != 0)
400082d4: ba 92 20 00 orcc %o0, 0, %i5
400082d8: 12 80 01 6f bne 40008894 <rtems_rfs_format+0xe8c> <== NEVER TAKEN
400082dc: 01 00 00 00 nop
rc = rtems_rfs_dir_add_entry (fs, &inode, ".", 1, ino);
400082e0: d8 07 bf 48 ld [ %fp + -184 ], %o4 400082e4: d0 07 bf 44 ld [ %fp + -188 ], %o0 400082e8: 96 10 20 01 mov 1, %o3 400082ec: 92 07 bf 54 add %fp, -172, %o1 400082f0: 15 10 00 86 sethi %hi(0x40021800), %o2 400082f4: 40 00 34 2d call 400153a8 <rtems_rfs_dir_add_entry> 400082f8: 94 12 a1 08 or %o2, 0x108, %o2 ! 40021908 <_Thread_Idle_stack_size+0x68>
if (rc != 0)
400082fc: ba 92 20 00 orcc %o0, 0, %i5
40008300: 12 80 01 5c bne 40008870 <rtems_rfs_format+0xe68> <== NEVER TAKEN
40008304: 01 00 00 00 nop
rc = rtems_rfs_inode_close (fs, &inode);
40008308: d0 07 bf 44 ld [ %fp + -188 ], %o0 4000830c: 40 00 03 fa call 400092f4 <rtems_rfs_inode_close> 40008310: 92 07 bf 54 add %fp, -172, %o1
if (rc != 0)
40008314: ba 92 20 00 orcc %o0, 0, %i5
40008318: 12 80 01 4e bne 40008850 <rtems_rfs_format+0xe48> <== NEVER TAKEN
4000831c: 01 00 00 00 nop
rc = rtems_rfs_fs_close (fs);
40008320: 40 00 3e 97 call 40017d7c <rtems_rfs_fs_close> 40008324: d0 07 bf 44 ld [ %fp + -188 ], %o0
if (rc != 0)
40008328: b0 92 20 00 orcc %o0, 0, %i0
4000832c: 12 80 01 3d bne 40008820 <rtems_rfs_format+0xe18> <== NEVER TAKEN
40008330: 01 00 00 00 nop
errno = rc; return -1; } return 0; }
40008334: 81 c7 e0 08 ret 40008338: 81 e8 00 00 restore
4000833c: 92 07 bf 48 add %fp, -184, %o1 <== NOT EXECUTED 40008340: 7f ff fc 81 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40008344: 90 07 bf 7c add %fp, -132, %o0 <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: open block bitmap failed: %d: %s\n",
40008348: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
handle->dirty = false;
4000834c: c0 2f bf 48 clrb [ %fp + -184 ] <== NOT EXECUTED
handle->bnum = 0;
40008350: c0 27 bf 4c clr [ %fp + -180 ] <== NOT EXECUTED 40008354: 40 00 5c ae call 4001f60c <strerror> <== NOT EXECUTED 40008358: c0 27 bf 50 clr [ %fp + -176 ] <== NOT EXECUTED 4000835c: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 40008360: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 40008364: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 40008368: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 4000836c: 7f ff ea 63 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008370: 90 12 22 f8 or %o0, 0x2f8, %o0 ! 400226f8 <IMFS_node_control_sym_link+0x970><== NOT EXECUTED
errno = EIO;
40008374: 40 00 57 ea call 4001e31c <__errno> <== NOT EXECUTED 40008378: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000837c: 82 10 20 05 mov 5, %g1 <== NOT EXECUTED 40008380: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED
return -1;
40008384: 81 c7 e0 08 ret <== NOT EXECUTED 40008388: 81 e8 00 00 restore <== NOT EXECUTED
printf ("\rrtems-rfs: format: group %3d: base = %" PRId32 ", size = %zd",
4000838c: d8 27 bf 3c st %o4, [ %fp + -196 ] <== NOT EXECUTED 40008390: 94 10 00 0c mov %o4, %o2 <== NOT EXECUTED 40008394: 96 10 00 1b mov %i3, %o3 <== NOT EXECUTED 40008398: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 4000839c: 7f ff ea 57 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400083a0: 90 10 00 14 mov %l4, %o0 <== NOT EXECUTED
printf (", blocks");
400083a4: 90 10 00 13 mov %l3, %o0 <== NOT EXECUTED
handle->dirty = false;
400083a8: c0 2f bf 48 clrb [ %fp + -184 ] <== NOT EXECUTED
handle->bnum = 0;
400083ac: c0 27 bf 4c clr [ %fp + -180 ] <== NOT EXECUTED 400083b0: 7f ff ea 52 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400083b4: c0 27 bf 50 clr [ %fp + -176 ] <== NOT EXECUTED 400083b8: 10 bf fe 9d b 40007e2c <rtems_rfs_format+0x424> <== NOT EXECUTED 400083bc: d8 07 bf 3c ld [ %fp + -196 ], %o4 <== NOT EXECUTED
printf ("rtems-rfs: write-group: group %d base beyond disk limit\n",
400083c0: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 400083c4: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 400083c8: 7f ff ea 4c call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400083cc: 90 12 22 70 or %o0, 0x270, %o0 ! 40022670 <IMFS_node_control_sym_link+0x8e8><== NOT EXECUTED
errno = EIO;
400083d0: 40 00 57 d3 call 4001e31c <__errno> <== NOT EXECUTED 400083d4: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 400083d8: 82 10 20 05 mov 5, %g1 <== NOT EXECUTED 400083dc: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED
return -1;
400083e0: 81 c7 e0 08 ret <== NOT EXECUTED 400083e4: 81 e8 00 00 restore <== NOT EXECUTED
rtems_rfs_bitmap_close (&bitmap);
400083e8: 7f ff fa 86 call 40006e00 <rtems_rfs_bitmap_close> <== NOT EXECUTED 400083ec: 90 07 bf 54 add %fp, -172, %o0 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
400083f0: 92 07 bf 48 add %fp, -184, %o1 <== NOT EXECUTED 400083f4: 7f ff fc 54 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 400083f8: 90 07 bf 7c add %fp, -132, %o0 <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: block bitmap clear all failed: %d: %s\n",
400083fc: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
handle->dirty = false;
40008400: c0 2f bf 48 clrb [ %fp + -184 ] <== NOT EXECUTED
handle->bnum = 0;
40008404: c0 27 bf 4c clr [ %fp + -180 ] <== NOT EXECUTED 40008408: 40 00 5c 81 call 4001f60c <strerror> <== NOT EXECUTED 4000840c: c0 27 bf 50 clr [ %fp + -176 ] <== NOT EXECUTED 40008410: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 40008414: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 40008418: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 4000841c: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 40008420: 7f ff ea 36 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008424: 90 12 23 40 or %o0, 0x340, %o0 ! 40022740 <IMFS_node_control_sym_link+0x9b8><== NOT EXECUTED
return false;
40008428: 30 bf ff d3 b,a 40008374 <rtems_rfs_format+0x96c> <== NOT EXECUTED
rtems_rfs_bitmap_map_set (&bitmap, b + RTEMS_RFS_GROUP_INODE_BLOCK);
4000842c: 92 10 20 02 mov 2, %o1 <== NOT EXECUTED 40008430: 7f ff f8 ef call 400067ec <rtems_rfs_bitmap_map_set> <== NOT EXECUTED 40008434: 90 07 bf 54 add %fp, -172, %o0 <== NOT EXECUTED
rc = rtems_rfs_bitmap_close (&bitmap);
40008438: 90 07 bf 54 add %fp, -172, %o0 <== NOT EXECUTED 4000843c: 7f ff fa 71 call 40006e00 <rtems_rfs_bitmap_close> <== NOT EXECUTED 40008440: ac 10 20 01 mov 1, %l6 <== NOT EXECUTED
if (rc > 0)
40008444: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 40008448: 04 bf fe aa ble 40007ef0 <rtems_rfs_format+0x4e8> <== NOT EXECUTED 4000844c: 80 a4 20 00 cmp %l0, 0 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40008450: 92 07 bf 48 add %fp, -184, %o1 <== NOT EXECUTED 40008454: 7f ff fc 3c call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40008458: 90 07 bf 7c add %fp, -132, %o0 <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: close block bitmap failed: %d: %s\n",
4000845c: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
handle->dirty = false;
40008460: c0 2f bf 48 clrb [ %fp + -184 ] <== NOT EXECUTED
handle->bnum = 0;
40008464: c0 27 bf 4c clr [ %fp + -180 ] <== NOT EXECUTED 40008468: 40 00 5c 69 call 4001f60c <strerror> <== NOT EXECUTED 4000846c: c0 27 bf 50 clr [ %fp + -176 ] <== NOT EXECUTED 40008470: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 40008474: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 40008478: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 4000847c: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 40008480: 7f ff ea 1e call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008484: 90 12 23 90 or %o0, 0x390, %o0 ! 40022790 <IMFS_node_control_sym_link+0xa08><== NOT EXECUTED
return false;
40008488: 30 bf ff bb b,a 40008374 <rtems_rfs_format+0x96c> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4000848c: 92 07 bf 48 add %fp, -184, %o1 <== NOT EXECUTED 40008490: 7f ff fc 2d call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40008494: 90 07 bf 7c add %fp, -132, %o0 <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: open inode bitmap failed: %d: %s\n",
40008498: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
handle->dirty = false;
4000849c: c0 2f bf 48 clrb [ %fp + -184 ] <== NOT EXECUTED
handle->bnum = 0;
400084a0: c0 27 bf 4c clr [ %fp + -180 ] <== NOT EXECUTED 400084a4: 40 00 5c 5a call 4001f60c <strerror> <== NOT EXECUTED 400084a8: c0 27 bf 50 clr [ %fp + -176 ] <== NOT EXECUTED 400084ac: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 400084b0: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 400084b4: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 400084b8: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 400084bc: 7f ff ea 0f call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400084c0: 90 12 23 e8 or %o0, 0x3e8, %o0 ! 400227e8 <IMFS_node_control_sym_link+0xa60><== NOT EXECUTED
return false;
400084c4: 30 bf ff ac b,a 40008374 <rtems_rfs_format+0x96c> <== NOT EXECUTED
printf (", inodes");
400084c8: 7f ff ea 0c call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400084cc: 90 10 00 15 mov %l5, %o0 <== NOT EXECUTED
rc = rtems_rfs_bitmap_open (&bitmap, fs, &handle, group_size,
400084d0: 10 bf fe 8b b 40007efc <rtems_rfs_format+0x4f4> <== NOT EXECUTED 400084d4: 98 06 a0 02 add %i2, 2, %o4 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
400084d8: 92 07 bf 54 add %fp, -172, %o1 <== NOT EXECUTED 400084dc: 7f ff fc 1a call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 400084e0: 90 07 bf 7c add %fp, -132, %o0 <== NOT EXECUTED
printf ("rtems-rfs: write-superblock: request failed: %d: %s\n",
400084e4: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
handle->dirty = false;
400084e8: c0 2f bf 54 clrb [ %fp + -172 ] <== NOT EXECUTED
return -1;
400084ec: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED
handle->bnum = 0;
400084f0: c0 27 bf 58 clr [ %fp + -168 ] <== NOT EXECUTED
printf ("rtems-rfs: write-superblock: request failed: %d: %s\n",
400084f4: 40 00 5c 46 call 4001f60c <strerror> <== NOT EXECUTED 400084f8: c0 27 bf 5c clr [ %fp + -164 ] <== NOT EXECUTED 400084fc: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40008500: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40008504: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 40008508: 7f ff e9 fc call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4000850c: 90 12 21 c8 or %o0, 0x1c8, %o0 ! 400225c8 <IMFS_node_control_sym_link+0x840><== NOT EXECUTED
printf ("rtems-rfs: format: superblock write failed\n");
40008510: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 40008514: 7f ff ea 07 call 40002d30 <__wrap_puts> <== NOT EXECUTED 40008518: 90 12 22 40 or %o0, 0x240, %o0 ! 40022640 <IMFS_node_control_sym_link+0x8b8><== NOT EXECUTED
errno = EIO;
4000851c: 40 00 57 80 call 4001e31c <__errno> <== NOT EXECUTED 40008520: 01 00 00 00 nop <== NOT EXECUTED 40008524: 82 10 20 05 mov 5, %g1 ! 5 <_TLS_Alignment+0x4> <== NOT EXECUTED 40008528: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED
return -1;
4000852c: 81 c7 e0 08 ret <== NOT EXECUTED 40008530: 81 e8 00 00 restore <== NOT EXECUTED
rtems_rfs_bitmap_close (&bitmap);
40008534: 7f ff fa 33 call 40006e00 <rtems_rfs_bitmap_close> <== NOT EXECUTED 40008538: 01 00 00 00 nop <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4000853c: 92 07 bf 48 add %fp, -184, %o1 <== NOT EXECUTED 40008540: 7f ff fc 01 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40008544: 90 07 bf 7c add %fp, -132, %o0 <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: inode bitmap" \
40008548: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
handle->dirty = false;
4000854c: c0 2f bf 48 clrb [ %fp + -184 ] <== NOT EXECUTED
handle->bnum = 0;
40008550: c0 27 bf 4c clr [ %fp + -180 ] <== NOT EXECUTED 40008554: 40 00 5c 2e call 4001f60c <strerror> <== NOT EXECUTED 40008558: c0 27 bf 50 clr [ %fp + -176 ] <== NOT EXECUTED 4000855c: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 40008560: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 40008564: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 40008568: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 4000856c: 7f ff e9 e3 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008570: 90 12 20 30 or %o0, 0x30, %o0 ! 40022830 <IMFS_node_control_sym_link+0xaa8><== NOT EXECUTED
return false;
40008574: 30 bf ff 80 b,a 40008374 <rtems_rfs_format+0x96c> <== NOT EXECUTED
printf ("rtems-rfs: format: %s\n", name);
40008578: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 4000857c: 7f ff e9 df call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008580: 90 12 22 d0 or %o0, 0x2d0, %o0 ! 400222d0 <IMFS_node_control_sym_link+0x548><== NOT EXECUTED
memset (&fs, 0, sizeof (rtems_rfs_file_system));
40008584: 10 bf fd 27 b 40007a20 <rtems_rfs_format+0x18> <== NOT EXECUTED 40008588: 94 10 20 80 mov 0x80, %o2 <== NOT EXECUTED
uint64_t total_size = rtems_rfs_fs_media_size (fs);
4000858c: 40 00 3b e3 call 40017518 <rtems_rfs_fs_media_size> 40008590: 90 07 bf 7c add %fp, -132, %o0 40008594: 84 10 00 08 mov %o0, %g2
if (total_size >= GIGS (1))
40008598: 80 a0 a0 00 cmp %g2, 0
4000859c: 02 80 00 41 be 400086a0 <rtems_rfs_format+0xc98> <== ALWAYS TAKEN
400085a0: 86 10 00 09 mov %o1, %g3
uint32_t gigs = (total_size + GIGS (1)) / GIGS (1);
400085a4: b4 10 20 00 clr %i2 <== NOT EXECUTED 400085a8: 37 00 04 00 sethi %hi(0x100000), %i3 <== NOT EXECUTED
for (b = 31; b > 0; b--)
400085ac: 82 10 20 1f mov 0x1f, %g1 <== NOT EXECUTED
uint32_t gigs = (total_size + GIGS (1)) / GIGS (1);
400085b0: ba 80 c0 1b addcc %g3, %i3, %i5 <== NOT EXECUTED
if ((gigs & (1 << b)) != 0)
400085b4: 86 10 20 01 mov 1, %g3 <== NOT EXECUTED
uint32_t gigs = (total_size + GIGS (1)) / GIGS (1);
400085b8: b8 40 80 1a addx %g2, %i2, %i4 <== NOT EXECUTED 400085bc: 89 37 60 14 srl %i5, 0x14, %g4 <== NOT EXECUTED 400085c0: 85 2f 20 0c sll %i4, 0xc, %g2 <== NOT EXECUTED 400085c4: 10 80 00 04 b 400085d4 <rtems_rfs_format+0xbcc> <== NOT EXECUTED 400085c8: 84 10 80 04 or %g2, %g4, %g2 <== NOT EXECUTED
for (b = 31; b > 0; b--)
400085cc: 02 80 00 06 be 400085e4 <rtems_rfs_format+0xbdc> <== NOT EXECUTED 400085d0: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED
if ((gigs & (1 << b)) != 0)
400085d4: 93 28 c0 01 sll %g3, %g1, %o1 <== NOT EXECUTED 400085d8: 80 88 80 09 btst %g2, %o1 <== NOT EXECUTED 400085dc: 02 bf ff fc be 400085cc <rtems_rfs_format+0xbc4> <== NOT EXECUTED 400085e0: 82 80 7f ff addcc %g1, -1, %g1 <== NOT EXECUTED
fs->block_size = 1 << b;
400085e4: d2 27 bf 84 st %o1, [ %fp + -124 ] <== NOT EXECUTED
if (fs->block_size < 512)
400085e8: 80 a2 61 ff cmp %o1, 0x1ff
if ((fs->block_size % rtems_rfs_fs_media_block_size (fs)) != 0)
400085ec: c2 07 bf 8c ld [ %fp + -116 ], %g1
if (fs->block_size < 512)
400085f0: 18 80 00 5e bgu 40008768 <rtems_rfs_format+0xd60> <== NEVER TAKEN
400085f4: d4 00 60 20 ld [ %g1 + 0x20 ], %o2
fs->block_size = 512;
400085f8: 82 10 22 00 mov 0x200, %g1 400085fc: c2 27 bf 84 st %g1, [ %fp + -124 ] 40008600: 92 10 22 00 mov 0x200, %o1
if ((fs->block_size % rtems_rfs_fs_media_block_size (fs)) != 0)
40008604: 81 80 20 00 wr %g0, %y 40008608: 01 00 00 00 nop 4000860c: 01 00 00 00 nop 40008610: 01 00 00 00 nop 40008614: 82 72 40 0a udiv %o1, %o2, %g1 40008618: 82 58 40 0a smul %g1, %o2, %g1 4000861c: 80 a2 40 01 cmp %o1, %g1
40008620: 22 bf fd 2f be,a 40007adc <rtems_rfs_format+0xd4> <== ALWAYS TAKEN
40008624: c2 06 60 04 ld [ %i1 + 4 ], %g1
printf ("block size (%zd) is not a multiple of media block size (%" PRId32 ")\n",
40008628: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 4000862c: 7f ff e9 b3 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008630: 90 12 23 40 or %o0, 0x340, %o0 ! 40022340 <IMFS_node_control_sym_link+0x5b8><== NOT EXECUTED
errno = EINVAL;
40008634: 40 00 57 3a call 4001e31c <__errno> <== NOT EXECUTED 40008638: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000863c: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 40008640: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED
return -1;
40008644: 81 c7 e0 08 ret <== NOT EXECUTED 40008648: 81 e8 00 00 restore <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4000864c: 7f ff fb be call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40008650: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED
printf ("rtems-rfs: write-superblock: buffer release failed: %d: %s\n",
40008654: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
handle->dirty = false;
40008658: c0 2f bf 54 clrb [ %fp + -172 ] <== NOT EXECUTED
handle->bnum = 0;
4000865c: c0 27 bf 58 clr [ %fp + -168 ] <== NOT EXECUTED 40008660: 40 00 5b eb call 4001f60c <strerror> <== NOT EXECUTED 40008664: c0 27 bf 5c clr [ %fp + -164 ] <== NOT EXECUTED 40008668: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 4000866c: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40008670: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 40008674: 7f ff e9 a1 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008678: 90 12 22 00 or %o0, 0x200, %o0 ! 40022600 <IMFS_node_control_sym_link+0x878><== NOT EXECUTED
printf ("rtems-rfs: format: superblock write failed\n");
4000867c: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 40008680: 7f ff e9 ac call 40002d30 <__wrap_puts> <== NOT EXECUTED 40008684: 90 12 22 40 or %o0, 0x240, %o0 ! 40022640 <IMFS_node_control_sym_link+0x8b8><== NOT EXECUTED
errno = EIO;
40008688: 40 00 57 25 call 4001e31c <__errno> <== NOT EXECUTED 4000868c: 01 00 00 00 nop <== NOT EXECUTED 40008690: 82 10 20 05 mov 5, %g1 ! 5 <_TLS_Alignment+0x4> <== NOT EXECUTED 40008694: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED
return -1;
40008698: 81 c7 e0 08 ret <== NOT EXECUTED 4000869c: 81 e8 00 00 restore <== NOT EXECUTED
if (total_size >= GIGS (1))
400086a0: 03 00 03 ff sethi %hi(0xffc00), %g1 400086a4: 82 10 63 ff or %g1, 0x3ff, %g1 ! fffff <_ISR_Stack_size+0xfefff> 400086a8: 80 a0 c0 01 cmp %g3, %g1
400086ac: 08 bf ff cf bleu 400085e8 <rtems_rfs_format+0xbe0> <== ALWAYS TAKEN
400086b0: d2 07 bf 84 ld [ %fp + -124 ], %o1
uint32_t gigs = (total_size + GIGS (1)) / GIGS (1);
400086b4: 10 bf ff bd b 400085a8 <rtems_rfs_format+0xba0> <== NOT EXECUTED 400086b8: b4 10 20 00 clr %i2 <== NOT EXECUTED
blocks = ((rtems_rfs_fs_blocks (fs) -
400086bc: 82 02 7f ff add %o1, -1, %g1
RTEMS_RFS_SUPERBLOCK_SIZE) * percentage) / 100;
400086c0: 82 58 40 1b smul %g1, %i3, %g1
if (dividend == 0)
400086c4: 80 a0 60 63 cmp %g1, 0x63
400086c8: 18 bf fd 2f bgu 40007b84 <rtems_rfs_format+0x17c>
400086cc: 86 10 00 02 mov %g2, %g3 400086d0: 10 bf fd 3b b 40007bbc <rtems_rfs_format+0x1b4> 400086d4: 80 a0 e0 00 cmp %g3, 0
printf ("rtems-rfs: format: allocated inode not root ino: %" PRId32 "\n", ino);
400086d8: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 400086dc: 7f ff e9 87 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400086e0: 90 12 21 b0 or %o0, 0x1b0, %o0 ! 400229b0 <IMFS_node_control_sym_link+0xc28><== NOT EXECUTED
rtems_rfs_fs_close (fs);
400086e4: 40 00 3d a6 call 40017d7c <rtems_rfs_fs_close> <== NOT EXECUTED 400086e8: d0 07 bf 44 ld [ %fp + -188 ], %o0 <== NOT EXECUTED
return EINVAL;
400086ec: b0 10 20 16 mov 0x16, %i0 <== NOT EXECUTED
printf ("rtems-rfs: format: writing root dir failed: %d: %s\n",
400086f0: 40 00 5b c7 call 4001f60c <strerror> <== NOT EXECUTED 400086f4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400086f8: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400086fc: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40008700: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 40008704: 7f ff e9 7d call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008708: 90 12 22 f0 or %o0, 0x2f0, %o0 ! 40022af0 <IMFS_node_control_sym_link+0xd68><== NOT EXECUTED
errno = rc;
4000870c: 40 00 57 04 call 4001e31c <__errno> <== NOT EXECUTED 40008710: 01 00 00 00 nop <== NOT EXECUTED 40008714: f0 22 00 00 st %i0, [ %o0 ] <== NOT EXECUTED
return -1;
40008718: 81 c7 e0 08 ret <== NOT EXECUTED 4000871c: 91 e8 3f ff restore %g0, -1, %o0 <== NOT EXECUTED
rc = errno;
40008720: 40 00 56 ff call 4001e31c <__errno> <== NOT EXECUTED 40008724: 01 00 00 00 nop <== NOT EXECUTED 40008728: f0 02 00 00 ld [ %o0 ], %i0 <== NOT EXECUTED
printf ("rtems-rfs: format: file system open failed: %d: %s\n",
4000872c: 40 00 5b b8 call 4001f60c <strerror> <== NOT EXECUTED 40008730: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40008734: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40008738: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 4000873c: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 40008740: 7f ff e9 6e call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008744: 90 12 21 40 or %o0, 0x140, %o0 ! 40022940 <IMFS_node_control_sym_link+0xbb8><== NOT EXECUTED
if (rc != 0)
40008748: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED 4000874c: 12 bf ff e9 bne 400086f0 <rtems_rfs_format+0xce8> <== NOT EXECUTED 40008750: 01 00 00 00 nop <== NOT EXECUTED
}
40008754: 81 c7 e0 08 ret <== NOT EXECUTED 40008758: 81 e8 00 00 restore <== NOT EXECUTED
printf ("\n");
4000875c: 40 00 58 95 call 4001e9b0 <putchar> <== NOT EXECUTED 40008760: 90 10 20 0a mov 0xa, %o0 <== NOT EXECUTED 40008764: 30 bf fe b9 b,a 40008248 <rtems_rfs_format+0x840> <== NOT EXECUTED
if (fs->block_size > (4 * 1024))
40008768: 03 00 00 04 sethi %hi(0x1000), %g1 <== NOT EXECUTED 4000876c: 80 a2 40 01 cmp %o1, %g1 <== NOT EXECUTED 40008770: 08 bf fc d1 bleu 40007ab4 <rtems_rfs_format+0xac> <== NOT EXECUTED 40008774: 01 00 00 00 nop <== NOT EXECUTED
fs->block_size = (4 * 1024);
40008778: c2 27 bf 84 st %g1, [ %fp + -124 ] <== NOT EXECUTED 4000877c: 10 bf fc ce b 40007ab4 <rtems_rfs_format+0xac> <== NOT EXECUTED 40008780: 92 10 00 01 mov %g1, %o1 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40008784: 92 07 bf 48 add %fp, -184, %o1 <== NOT EXECUTED 40008788: 7f ff fb 6f call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 4000878c: 90 07 bf 7c add %fp, -132, %o0 <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: close inode" \
40008790: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
handle->dirty = false;
40008794: c0 2f bf 48 clrb [ %fp + -184 ] <== NOT EXECUTED
handle->bnum = 0;
40008798: c0 27 bf 4c clr [ %fp + -180 ] <== NOT EXECUTED 4000879c: 40 00 5b 9c call 4001f60c <strerror> <== NOT EXECUTED 400087a0: c0 27 bf 50 clr [ %fp + -176 ] <== NOT EXECUTED 400087a4: 94 10 00 1d mov %i5, %o2 <== NOT EXECUTED 400087a8: 96 10 00 08 mov %o0, %o3 <== NOT EXECUTED 400087ac: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 400087b0: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 400087b4: 7f ff e9 51 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400087b8: 90 12 20 80 or %o0, 0x80, %o0 ! 40022880 <IMFS_node_control_sym_link+0xaf8><== NOT EXECUTED
return false;
400087bc: 30 bf fe ee b,a 40008374 <rtems_rfs_format+0x96c> <== NOT EXECUTED
printf ("rtems-rfs: format: inode allocation failed: %d: %s\n",
400087c0: 40 00 5b 93 call 4001f60c <strerror> <== NOT EXECUTED 400087c4: 01 00 00 00 nop <== NOT EXECUTED 400087c8: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400087cc: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400087d0: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 400087d4: 7f ff e9 49 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400087d8: 90 12 21 78 or %o0, 0x178, %o0 ! 40022978 <IMFS_node_control_sym_link+0xbf0><== NOT EXECUTED
rtems_rfs_fs_close (fs);
400087dc: 40 00 3d 68 call 40017d7c <rtems_rfs_fs_close> <== NOT EXECUTED 400087e0: d0 07 bf 44 ld [ %fp + -188 ], %o0 <== NOT EXECUTED
return rc;
400087e4: 30 bf ff c3 b,a 400086f0 <rtems_rfs_format+0xce8> <== NOT EXECUTED
printf ("rtems-rfs: format: inode open failed: %d: %s\n",
400087e8: 40 00 5b 89 call 4001f60c <strerror> <== NOT EXECUTED 400087ec: 01 00 00 00 nop <== NOT EXECUTED 400087f0: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400087f4: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400087f8: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 400087fc: 7f ff e9 3f call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008800: 90 12 21 e8 or %o0, 0x1e8, %o0 ! 400229e8 <IMFS_node_control_sym_link+0xc60><== NOT EXECUTED
rtems_rfs_group_bitmap_free (fs, true, ino);
40008804: d4 07 bf 48 ld [ %fp + -184 ], %o2 <== NOT EXECUTED 40008808: d0 07 bf 44 ld [ %fp + -188 ], %o0 <== NOT EXECUTED 4000880c: 40 00 01 a3 call 40008e98 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED 40008810: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED
rtems_rfs_fs_close (fs);
40008814: 40 00 3d 5a call 40017d7c <rtems_rfs_fs_close> <== NOT EXECUTED 40008818: d0 07 bf 44 ld [ %fp + -188 ], %o0 <== NOT EXECUTED
return rc;
4000881c: 30 bf ff b5 b,a 400086f0 <rtems_rfs_format+0xce8> <== NOT EXECUTED
rc = errno;
40008820: 40 00 56 bf call 4001e31c <__errno> <== NOT EXECUTED 40008824: 01 00 00 00 nop <== NOT EXECUTED 40008828: f0 02 00 00 ld [ %o0 ], %i0 <== NOT EXECUTED
printf ("rtems-rfs: format: file system close failed: %d: %s\n",
4000882c: 40 00 5b 78 call 4001f60c <strerror> <== NOT EXECUTED 40008830: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40008834: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 40008838: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 4000883c: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 40008840: 7f ff e9 2e call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008844: 90 12 22 b8 or %o0, 0x2b8, %o0 ! 40022ab8 <IMFS_node_control_sym_link+0xd30><== NOT EXECUTED
return rc;
40008848: 10 bf ff c1 b 4000874c <rtems_rfs_format+0xd44> <== NOT EXECUTED 4000884c: 80 a6 20 00 cmp %i0, 0 <== NOT EXECUTED
printf ("rtems-rfs: format: inode close failed: %d: %s\n",
40008850: 40 00 5b 6f call 4001f60c <strerror> <== NOT EXECUTED 40008854: 01 00 00 00 nop <== NOT EXECUTED 40008858: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 4000885c: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40008860: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 40008864: 7f ff e9 25 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008868: 90 12 22 88 or %o0, 0x288, %o0 ! 40022a88 <IMFS_node_control_sym_link+0xd00><== NOT EXECUTED 4000886c: 30 bf fe ad b,a 40008320 <rtems_rfs_format+0x918> <== NOT EXECUTED
printf ("rtems-rfs: format: directory add failed: %d: %s\n",
40008870: 40 00 5b 67 call 4001f60c <strerror> <== NOT EXECUTED 40008874: 01 00 00 00 nop <== NOT EXECUTED 40008878: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 4000887c: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40008880: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 40008884: 7f ff e9 1d call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008888: 90 12 22 50 or %o0, 0x250, %o0 ! 40022a50 <IMFS_node_control_sym_link+0xcc8><== NOT EXECUTED
rc = rtems_rfs_inode_close (fs, &inode);
4000888c: 10 bf fe a0 b 4000830c <rtems_rfs_format+0x904> <== NOT EXECUTED 40008890: d0 07 bf 44 ld [ %fp + -188 ], %o0 <== NOT EXECUTED
printf ("rtems-rfs: format: inode initialise failed: %d: %s\n",
40008894: 40 00 5b 5e call 4001f60c <strerror> <== NOT EXECUTED 40008898: 01 00 00 00 nop <== NOT EXECUTED 4000889c: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 400088a0: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400088a4: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 400088a8: 7f ff e9 14 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400088ac: 90 12 22 18 or %o0, 0x218, %o0 ! 40022a18 <IMFS_node_control_sym_link+0xc90><== NOT EXECUTED
rc = rtems_rfs_dir_add_entry (fs, &inode, ".", 1, ino);
400088b0: 10 bf fe 8d b 400082e4 <rtems_rfs_format+0x8dc> <== NOT EXECUTED 400088b4: d8 07 bf 48 ld [ %fp + -184 ], %o4 <== NOT EXECUTED
printf ("rtems-rfs: media block is invalid: %" PRIu32 "\n",
400088b8: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 400088bc: 7f ff e9 0f call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400088c0: 90 12 23 18 or %o0, 0x318, %o0 ! 40022318 <IMFS_node_control_sym_link+0x590><== NOT EXECUTED
errno = EINVAL;
400088c4: 40 00 56 96 call 4001e31c <__errno> <== NOT EXECUTED 400088c8: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 400088cc: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 400088d0: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED
return -1;
400088d4: 81 c7 e0 08 ret <== NOT EXECUTED 400088d8: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: format: setting block size failed: %d: %s\n",
400088dc: 40 00 5b 4c call 4001f60c <strerror> <== NOT EXECUTED 400088e0: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 400088e4: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 400088e8: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400088ec: 11 10 00 89 sethi %hi(0x40022400), %o0 <== NOT EXECUTED 400088f0: 7f ff e9 02 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400088f4: 90 12 21 90 or %o0, 0x190, %o0 ! 40022590 <IMFS_node_control_sym_link+0x808><== NOT EXECUTED
errno = rc;
400088f8: 40 00 56 89 call 4001e31c <__errno> <== NOT EXECUTED 400088fc: 01 00 00 00 nop <== NOT EXECUTED 40008900: f8 22 00 00 st %i4, [ %o0 ] <== NOT EXECUTED
return -1;
40008904: 81 c7 e0 08 ret <== NOT EXECUTED 40008908: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: format: buffer close failed: %d: %s\n",
4000890c: 40 00 5b 40 call 4001f60c <strerror> <== NOT EXECUTED 40008910: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40008914: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40008918: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 4000891c: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 40008920: 7f ff e8 f6 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008924: 90 12 21 10 or %o0, 0x110, %o0 ! 40022910 <IMFS_node_control_sym_link+0xb88><== NOT EXECUTED
errno = rc;
40008928: 40 00 56 7d call 4001e31c <__errno> <== NOT EXECUTED 4000892c: 01 00 00 00 nop <== NOT EXECUTED 40008930: fa 22 00 00 st %i5, [ %o0 ] <== NOT EXECUTED
return -1;
40008934: 81 c7 e0 08 ret <== NOT EXECUTED 40008938: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: format: buffer open failed: %d: %s\n",
4000893c: 40 00 5b 34 call 4001f60c <strerror> <== NOT EXECUTED 40008940: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40008944: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40008948: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 4000894c: 11 10 00 88 sethi %hi(0x40022000), %o0 <== NOT EXECUTED 40008950: 7f ff e8 ea call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008954: 90 12 22 e8 or %o0, 0x2e8, %o0 ! 400222e8 <IMFS_node_control_sym_link+0x560><== NOT EXECUTED
errno = rc;
40008958: 40 00 56 71 call 4001e31c <__errno> <== NOT EXECUTED 4000895c: 01 00 00 00 nop <== NOT EXECUTED 40008960: fa 22 00 00 st %i5, [ %o0 ] <== NOT EXECUTED
return -1;
40008964: 81 c7 e0 08 ret <== NOT EXECUTED 40008968: 81 e8 00 00 restore <== NOT EXECUTED
40017d7c <rtems_rfs_fs_close>: int rtems_rfs_fs_close (rtems_rfs_file_system* fs) {
40017d7c: 9d e3 bf a0 save %sp, -96, %sp
int group; if (rtems_rfs_trace (RTEMS_RFS_TRACE_CLOSE))
40017d80: 90 10 20 00 clr %o0 40017d84: 92 10 20 02 mov 2, %o1 40017d88: 7f ff cb 8f call 4000abc4 <rtems_rfs_trace> 40017d8c: ba 10 00 18 mov %i0, %i5 40017d90: 80 a2 20 00 cmp %o0, 0
40017d94: 12 80 00 18 bne 40017df4 <rtems_rfs_fs_close+0x78> <== NEVER TAKEN
40017d98: 11 10 00 91 sethi %hi(0x40024400), %o0
printf ("rtems-rfs: close\n"); for (group = 0; group < fs->group_count; group++)
40017d9c: c2 07 60 24 ld [ %i5 + 0x24 ], %g1 40017da0: 80 a0 60 00 cmp %g1, 0
40017da4: 04 80 00 0d ble 40017dd8 <rtems_rfs_fs_close+0x5c> <== NEVER TAKEN
40017da8: 01 00 00 00 nop 40017dac: b6 10 20 00 clr %i3 ! 0 <PROM_START> 40017db0: b8 10 20 00 clr %i4
rtems_rfs_group_close (fs, &fs->groups[group]);
40017db4: d2 07 60 20 ld [ %i5 + 0x20 ], %o1 40017db8: 92 02 40 1b add %o1, %i3, %o1 40017dbc: 7f ff c3 78 call 40008b9c <rtems_rfs_group_close> 40017dc0: 90 10 00 1d mov %i5, %o0
for (group = 0; group < fs->group_count; group++)
40017dc4: c2 07 60 24 ld [ %i5 + 0x24 ], %g1 40017dc8: b8 07 20 01 inc %i4 40017dcc: 80 a0 40 1c cmp %g1, %i4
40017dd0: 14 bf ff f9 bg 40017db4 <rtems_rfs_fs_close+0x38> <== NEVER TAKEN
40017dd4: b6 06 e0 50 add %i3, 0x50, %i3
rtems_rfs_buffer_close (fs);
40017dd8: 7f ff be d2 call 40007920 <rtems_rfs_buffer_close> 40017ddc: 90 10 00 1d mov %i5, %o0
free (fs); return 0; }
40017de0: b0 10 20 00 clr %i0
free (fs);
40017de4: 7f ff ac 87 call 40003000 <free> 40017de8: 90 10 00 1d mov %i5, %o0
}
40017dec: 81 c7 e0 08 ret 40017df0: 81 e8 00 00 restore
printf ("rtems-rfs: close\n");
40017df4: 7f ff ab cf call 40002d30 <__wrap_puts> <== NOT EXECUTED 40017df8: 90 12 20 28 or %o0, 0x28, %o0 <== NOT EXECUTED
for (group = 0; group < fs->group_count; group++)
40017dfc: 10 bf ff e9 b 40017da0 <rtems_rfs_fs_close+0x24> <== NOT EXECUTED 40017e00: c2 07 60 24 ld [ %i5 + 0x24 ], %g1 <== NOT EXECUTED
40017534 <rtems_rfs_fs_open>: rtems_rfs_fs_open (const char* name, void* user, uint32_t flags, uint32_t max_held_buffers, rtems_rfs_file_system** fs) {
40017534: 9d e3 bf 78 save %sp, -136, %sp
#endif rtems_rfs_inode_handle inode; uint16_t mode; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017538: 90 10 20 00 clr %o0 4001753c: 7f ff cd a2 call 4000abc4 <rtems_rfs_trace> 40017540: 92 10 20 01 mov 1, %o1 40017544: 80 a2 20 00 cmp %o0, 0
40017548: 12 80 01 02 bne 40017950 <rtems_rfs_fs_open+0x41c> <== NEVER TAKEN
4001754c: 92 10 00 18 mov %i0, %o1
printf ("rtems-rfs: open: %s\n", name); *fs = malloc (sizeof (rtems_rfs_file_system));
40017550: 7f ff ae f2 call 40003118 <malloc> 40017554: 90 10 20 84 mov 0x84, %o0 40017558: d0 27 00 00 st %o0, [ %i4 ]
if (!*fs)
4001755c: 80 a2 20 00 cmp %o0, 0
40017560: 02 80 01 e8 be 40017d00 <rtems_rfs_fs_open+0x7cc> <== NEVER TAKEN
40017564: ba 10 00 08 mov %o0, %i5
printf ("rtems-rfs: open: no memory for file system data\n"); errno = ENOMEM; return -1; } memset (*fs, 0, sizeof (rtems_rfs_file_system));
40017568: 94 10 20 80 mov 0x80, %o2 4001756c: 92 10 20 00 clr %o1 40017570: 40 00 1c cb call 4001e89c <memset> 40017574: 90 02 20 04 add %o0, 4, %o0
return &the_chain->Tail.Node;
40017578: 84 07 60 44 add %i5, 0x44, %g2 4001757c: 82 07 60 48 add %i5, 0x48, %g1
tail->previous = head;
40017580: c4 27 60 4c st %g2, [ %i5 + 0x4c ]
return &the_chain->Tail.Node;
40017584: 84 07 60 54 add %i5, 0x54, %g2
head->next = tail;
40017588: c2 27 60 44 st %g1, [ %i5 + 0x44 ]
return &the_chain->Tail.Node;
4001758c: 82 07 60 58 add %i5, 0x58, %g1
tail->previous = head;
40017590: c4 27 60 5c st %g2, [ %i5 + 0x5c ]
return &the_chain->Tail.Node;
40017594: 84 07 60 64 add %i5, 0x64, %g2
head->next = tail;
40017598: c2 27 60 54 st %g1, [ %i5 + 0x54 ]
return &the_chain->Tail.Node;
4001759c: 82 07 60 68 add %i5, 0x68, %g1
tail->previous = head;
400175a0: c4 27 60 6c st %g2, [ %i5 + 0x6c ]
return &the_chain->Tail.Node;
400175a4: 84 07 60 74 add %i5, 0x74, %g2
head->next = tail;
400175a8: c2 27 60 64 st %g1, [ %i5 + 0x64 ]
return &the_chain->Tail.Node;
400175ac: 82 07 60 78 add %i5, 0x78, %g1
(*fs)->user = user;
400175b0: f2 27 60 80 st %i1, [ %i5 + 0x80 ]
#endif /* * Open the buffer interface. */ rc = rtems_rfs_buffer_open (name, *fs);
400175b4: 92 10 00 1d mov %i5, %o1
(*fs)->max_held_buffers = max_held_buffers;
400175b8: f6 27 60 40 st %i3, [ %i5 + 0x40 ]
rc = rtems_rfs_buffer_open (name, *fs);
400175bc: 90 10 00 18 mov %i0, %o0
tail->previous = head;
400175c0: c4 27 60 7c st %g2, [ %i5 + 0x7c ]
head->next = tail;
400175c4: c2 27 60 74 st %g1, [ %i5 + 0x74 ] 400175c8: 7f ff bf e8 call 40007568 <rtems_rfs_buffer_open> 400175cc: f4 27 40 00 st %i2, [ %i5 ]
if (rc > 0)
400175d0: ba 92 20 00 orcc %o0, 0, %i5
400175d4: 14 80 01 7d bg 40017bc8 <rtems_rfs_fs_open+0x694> <== NEVER TAKEN
400175d8: 96 10 20 01 mov 1, %o3
rc, strerror (rc)); errno = rc; return -1; } rc = rtems_rfs_fs_read_superblock (*fs);
400175dc: fa 07 00 00 ld [ %i4 ], %i5
handle->dirty = false;
400175e0: c0 2f bf d8 clrb [ %fp + -40 ]
handle->bnum = 0;
400175e4: c0 27 bf dc clr [ %fp + -36 ]
rc = rtems_rfs_buffer_handle_request (fs, &handle, 0, true);
400175e8: 94 10 20 00 clr %o2
handle->buffer = NULL;
400175ec: c0 27 bf e0 clr [ %fp + -32 ] 400175f0: 92 07 bf d8 add %fp, -40, %o1 400175f4: 7f ff bf 0b call 40007220 <rtems_rfs_buffer_handle_request> 400175f8: 90 10 00 1d mov %i5, %o0
if (rc > 0)
400175fc: b6 92 20 00 orcc %o0, 0, %i3
40017600: 14 80 00 d8 bg 40017960 <rtems_rfs_fs_open+0x42c> <== NEVER TAKEN
40017604: c2 07 bf e0 ld [ %fp + -32 ], %g1
sb = rtems_rfs_buffer_data (&handle);
40017608: f6 00 60 1c ld [ %g1 + 0x1c ], %i3
if (read_sb (RTEMS_RFS_SB_OFFSET_MAGIC) != RTEMS_RFS_SB_MAGIC)
4001760c: c8 0e c0 00 ldub [ %i3 ], %g4 40017610: c4 0e e0 01 ldub [ %i3 + 1 ], %g2 40017614: c2 0e e0 02 ldub [ %i3 + 2 ], %g1 40017618: c6 0e e0 03 ldub [ %i3 + 3 ], %g3 4001761c: 89 29 20 18 sll %g4, 0x18, %g4 40017620: 85 28 a0 10 sll %g2, 0x10, %g2 40017624: 84 10 80 04 or %g2, %g4, %g2 40017628: 83 28 60 08 sll %g1, 8, %g1 4001762c: 82 10 40 02 or %g1, %g2, %g1 40017630: 05 0a 02 48 sethi %hi(0x28092000), %g2 40017634: 82 10 c0 01 or %g3, %g1, %g1 40017638: 84 10 a0 01 or %g2, 1, %g2 4001763c: 80 a0 40 02 cmp %g1, %g2
40017640: 32 80 01 2b bne,a 40017aec <rtems_rfs_fs_open+0x5b8> <== NEVER TAKEN
40017644: 90 10 20 00 clr %o0 <== NOT EXECUTED
fs->blocks = read_sb (RTEMS_RFS_SB_OFFSET_BLOCKS);
40017648: c8 0e e0 0c ldub [ %i3 + 0xc ], %g4 4001764c: c6 0e e0 0d ldub [ %i3 + 0xd ], %g3 40017650: c2 0e e0 0e ldub [ %i3 + 0xe ], %g1 40017654: c4 0e e0 0f ldub [ %i3 + 0xf ], %g2 40017658: 89 29 20 18 sll %g4, 0x18, %g4 4001765c: 87 28 e0 10 sll %g3, 0x10, %g3 40017660: 83 28 60 08 sll %g1, 8, %g1 40017664: 86 10 c0 04 or %g3, %g4, %g3 40017668: 82 10 40 03 or %g1, %g3, %g1 4001766c: 84 10 80 01 or %g2, %g1, %g2 40017670: c4 27 60 04 st %g2, [ %i5 + 4 ]
fs->block_size = read_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE);
40017674: f2 0e e0 0b ldub [ %i3 + 0xb ], %i1 40017678: c8 0e e0 08 ldub [ %i3 + 8 ], %g4 4001767c: c6 0e e0 09 ldub [ %i3 + 9 ], %g3 40017680: c2 0e e0 0a ldub [ %i3 + 0xa ], %g1
uint64_t media_blocks = (uint64_t) rtems_rfs_fs_media_blocks (fs);
40017684: f4 07 60 10 ld [ %i5 + 0x10 ], %i2
fs->block_size = read_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE);
40017688: 89 29 20 18 sll %g4, 0x18, %g4 4001768c: 87 28 e0 10 sll %g3, 0x10, %g3 40017690: 83 28 60 08 sll %g1, 8, %g1 40017694: 86 10 c0 04 or %g3, %g4, %g3 40017698: 82 10 40 03 or %g1, %g3, %g1 4001769c: 82 16 40 01 or %i1, %g1, %g1 400176a0: c2 27 60 08 st %g1, [ %i5 + 8 ]
return blocks * block_size;
400176a4: 86 50 80 01 umul %g2, %g1, %g3 400176a8: 85 40 00 00 rd %y, %g2
return media_blocks * media_block_size;
400176ac: f0 06 a0 1c ld [ %i2 + 0x1c ], %i0 400176b0: c8 06 a0 20 ld [ %i2 + 0x20 ], %g4 400176b4: b2 56 00 04 umul %i0, %g4, %i1 400176b8: b1 40 00 00 rd %y, %i0
if (rtems_rfs_fs_size(fs) > rtems_rfs_fs_media_size (fs))
400176bc: 80 a0 80 18 cmp %g2, %i0
400176c0: 38 80 00 df bgu,a 40017a3c <rtems_rfs_fs_open+0x508> <== NEVER TAKEN
400176c4: 90 10 20 00 clr %o0 <== NOT EXECUTED
400176c8: 02 80 00 da be 40017a30 <rtems_rfs_fs_open+0x4fc> <== ALWAYS TAKEN
400176cc: 80 a0 c0 19 cmp %g3, %i1
if (read_sb (RTEMS_RFS_SB_OFFSET_INODE_SIZE) != RTEMS_RFS_INODE_SIZE)
400176d0: f4 0e e0 24 ldub [ %i3 + 0x24 ], %i2 <== NOT EXECUTED
400176d4: c6 0e e0 25 ldub [ %i3 + 0x25 ], %g3 400176d8: c4 0e e0 26 ldub [ %i3 + 0x26 ], %g2 400176dc: c8 0e e0 27 ldub [ %i3 + 0x27 ], %g4 400176e0: b5 2e a0 18 sll %i2, 0x18, %i2 400176e4: 87 28 e0 10 sll %g3, 0x10, %g3 400176e8: 85 28 a0 08 sll %g2, 8, %g2 400176ec: 86 10 c0 1a or %g3, %i2, %g3 400176f0: 84 10 80 03 or %g2, %g3, %g2 400176f4: 84 11 00 02 or %g4, %g2, %g2 400176f8: 80 a0 a0 38 cmp %g2, 0x38
400176fc: 12 80 00 c2 bne 40017a04 <rtems_rfs_fs_open+0x4d0> <== NEVER TAKEN
40017700: 90 10 00 1d mov %i5, %o0
fs->bad_blocks = read_sb (RTEMS_RFS_SB_OFFSET_BAD_BLOCKS);
40017704: c8 0e e0 13 ldub [ %i3 + 0x13 ], %g4 40017708: f4 0e e0 10 ldub [ %i3 + 0x10 ], %i2 4001770c: c6 0e e0 11 ldub [ %i3 + 0x11 ], %g3 40017710: c4 0e e0 12 ldub [ %i3 + 0x12 ], %g2 40017714: b5 2e a0 18 sll %i2, 0x18, %i2 40017718: 87 28 e0 10 sll %g3, 0x10, %g3 4001771c: 85 28 a0 08 sll %g2, 8, %g2 40017720: 86 10 c0 1a or %g3, %i2, %g3 40017724: 84 10 80 03 or %g2, %g3, %g2 40017728: 84 11 00 02 or %g4, %g2, %g2 4001772c: c4 27 60 18 st %g2, [ %i5 + 0x18 ]
rtems_rfs_fs_block_size (fs) / sizeof (rtems_rfs_inode_block);
40017730: 85 30 60 02 srl %g1, 2, %g2
fs->max_name_length = read_sb (RTEMS_RFS_SB_OFFSET_MAX_NAME_LENGTH);
40017734: f4 0e e0 17 ldub [ %i3 + 0x17 ], %i2 40017738: f2 0e e0 14 ldub [ %i3 + 0x14 ], %i1 4001773c: c8 0e e0 15 ldub [ %i3 + 0x15 ], %g4 40017740: c6 0e e0 16 ldub [ %i3 + 0x16 ], %g3 40017744: b3 2e 60 18 sll %i1, 0x18, %i1 40017748: 89 29 20 10 sll %g4, 0x10, %g4 4001774c: 87 28 e0 08 sll %g3, 8, %g3 40017750: 88 11 00 19 or %g4, %i1, %g4 40017754: 86 10 c0 04 or %g3, %g4, %g3 40017758: 86 16 80 03 or %i2, %g3, %g3 4001775c: c6 27 60 1c st %g3, [ %i5 + 0x1c ]
fs->blocks_per_block * fs->blocks_per_block * RTEMS_RFS_INODE_BLOCKS;
40017760: b4 58 80 02 smul %g2, %g2, %i2
fs->group_count = read_sb (RTEMS_RFS_SB_OFFSET_GROUPS);
40017764: f0 0e e0 18 ldub [ %i3 + 0x18 ], %i0 40017768: c8 0e e0 19 ldub [ %i3 + 0x19 ], %g4 4001776c: c6 0e e0 1a ldub [ %i3 + 0x1a ], %g3 40017770: f2 0e e0 1b ldub [ %i3 + 0x1b ], %i1 40017774: b1 2e 20 18 sll %i0, 0x18, %i0 40017778: 89 29 20 10 sll %g4, 0x10, %g4 4001777c: 87 28 e0 08 sll %g3, 8, %g3 40017780: 88 11 00 18 or %g4, %i0, %g4 40017784: 86 10 c0 04 or %g3, %g4, %g3 40017788: b2 16 40 03 or %i1, %g3, %i1 4001778c: f2 27 60 24 st %i1, [ %i5 + 0x24 ]
fs->blocks_per_block * RTEMS_RFS_INODE_BLOCKS;
40017790: 9b 28 a0 02 sll %g2, 2, %o5
fs->group_blocks = read_sb (RTEMS_RFS_SB_OFFSET_GROUP_BLOCKS);
40017794: de 0e e0 1c ldub [ %i3 + 0x1c ], %o7 40017798: c8 0e e0 1d ldub [ %i3 + 0x1d ], %g4 4001779c: c6 0e e0 1e ldub [ %i3 + 0x1e ], %g3 400177a0: f0 0e e0 1f ldub [ %i3 + 0x1f ], %i0 400177a4: 9f 2b e0 18 sll %o7, 0x18, %o7 400177a8: 89 29 20 10 sll %g4, 0x10, %g4 400177ac: 87 28 e0 08 sll %g3, 8, %g3 400177b0: 88 11 00 0f or %g4, %o7, %g4 400177b4: 86 10 c0 04 or %g3, %g4, %g3 400177b8: b0 16 00 03 or %i0, %g3, %i0 400177bc: f0 27 60 28 st %i0, [ %i5 + 0x28 ]
fs->blocks_per_block * RTEMS_RFS_INODE_BLOCKS;
400177c0: 9a 03 40 02 add %o5, %g2, %o5
fs->group_inodes = read_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES);
400177c4: de 0e e0 20 ldub [ %i3 + 0x20 ], %o7 400177c8: c8 0e e0 21 ldub [ %i3 + 0x21 ], %g4 400177cc: c6 0e e0 22 ldub [ %i3 + 0x22 ], %g3 400177d0: 9f 2b e0 18 sll %o7, 0x18, %o7 400177d4: f6 0e e0 23 ldub [ %i3 + 0x23 ], %i3 400177d8: 89 29 20 10 sll %g4, 0x10, %g4 400177dc: 88 11 00 0f or %g4, %o7, %g4
fs->blocks_per_block =
400177e0: c4 27 60 34 st %g2, [ %i5 + 0x34 ]
fs->group_inodes = read_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES);
400177e4: 87 28 e0 08 sll %g3, 8, %g3
fs->blocks_per_block * fs->blocks_per_block * RTEMS_RFS_INODE_BLOCKS;
400177e8: 9f 2e a0 02 sll %i2, 2, %o7
fs->group_inodes = read_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES);
400177ec: 86 10 c0 04 or %g3, %g4, %g3
fs->blocks_per_block * fs->blocks_per_block * RTEMS_RFS_INODE_BLOCKS;
400177f0: b4 03 c0 1a add %o7, %i2, %i2
fs->group_inodes = read_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES);
400177f4: 86 16 c0 03 or %i3, %g3, %g3
fs->inodes_per_block = fs->block_size / RTEMS_RFS_INODE_SIZE;
400177f8: 05 09 24 92 sethi %hi(0x24924800), %g2 400177fc: b7 30 60 03 srl %g1, 3, %i3
fs->inodes = fs->group_count * fs->group_inodes;
40017800: 88 5e 40 03 smul %i1, %g3, %g4
fs->inodes_per_block = fs->block_size / RTEMS_RFS_INODE_SIZE;
40017804: 84 10 a1 25 or %g2, 0x125, %g2
fs->group_inodes = read_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES);
40017808: c6 27 60 2c st %g3, [ %i5 + 0x2c ]
fs->inodes_per_block = fs->block_size / RTEMS_RFS_INODE_SIZE;
4001780c: 80 56 c0 02 umul %i3, %g2, %g0 40017810: 85 40 00 00 rd %y, %g2
fs->block_map_singly_blocks =
40017814: da 27 60 38 st %o5, [ %i5 + 0x38 ]
rtems_rfs_bitmap_numof_bits (rtems_rfs_fs_block_size (fs)))
40017818: 83 28 60 03 sll %g1, 3, %g1
fs->block_map_doubly_blocks =
4001781c: f4 27 60 3c st %i2, [ %i5 + 0x3c ]
rtems_rfs_buffer_handle_release (fs, handle);
40017820: 92 07 bf d8 add %fp, -40, %o1
fs->inodes = fs->group_count * fs->group_inodes;
40017824: c8 27 60 14 st %g4, [ %i5 + 0x14 ]
if (fs->group_blocks >
40017828: 80 a6 00 01 cmp %i0, %g1
4001782c: 18 80 00 ba bgu 40017b14 <rtems_rfs_fs_open+0x5e0> <== NEVER TAKEN
40017830: c4 27 60 30 st %g2, [ %i5 + 0x30 ] 40017834: 7f ff bf 44 call 40007544 <rtems_rfs_buffer_handle_release> 40017838: 01 00 00 00 nop
rc = rtems_rfs_buffer_setblksize (fs, rtems_rfs_fs_block_size (fs));
4001783c: d2 07 60 08 ld [ %i5 + 8 ], %o1 40017840: 90 10 00 1d mov %i5, %o0
handle->dirty = false;
40017844: c0 2f bf d8 clrb [ %fp + -40 ]
handle->bnum = 0;
40017848: c0 27 bf dc clr [ %fp + -36 ] 4001784c: 7f ff bf f4 call 4000781c <rtems_rfs_buffer_setblksize> 40017850: c0 27 bf e0 clr [ %fp + -32 ]
if (rc > 0)
40017854: b6 92 20 00 orcc %o0, 0, %i3
40017858: 14 80 00 50 bg 40017998 <rtems_rfs_fs_open+0x464> <== NEVER TAKEN
4001785c: 92 10 20 50 mov 0x50, %o1
fs->groups = calloc (fs->group_count, sizeof (rtems_rfs_group));
40017860: f6 07 60 24 ld [ %i5 + 0x24 ], %i3 40017864: 7f ff ec db call 40012bd0 <calloc> 40017868: 90 10 00 1b mov %i3, %o0 4001786c: d0 27 60 20 st %o0, [ %i5 + 0x20 ]
if (!fs->groups)
40017870: 80 a2 20 00 cmp %o0, 0
40017874: 02 80 01 32 be 40017d3c <rtems_rfs_fs_open+0x808> <== NEVER TAKEN
40017878: 98 10 00 08 mov %o0, %o4
for (group = 0; group < fs->group_count; group++)
4001787c: b2 10 20 00 clr %i1 40017880: 80 a6 e0 00 cmp %i3, 0
40017884: 14 80 00 09 bg 400178a8 <rtems_rfs_fs_open+0x374> <== ALWAYS TAKEN
40017888: b4 10 20 00 clr %i2
rc, strerror (rc)); errno = rc; return -1; } rc = rtems_rfs_inode_open (*fs, RTEMS_RFS_ROOT_INO, &inode, true);
4001788c: 10 80 00 77 b 40017a68 <rtems_rfs_fs_open+0x534> <== NOT EXECUTED 40017890: d0 07 00 00 ld [ %i4 ], %o0 <== NOT EXECUTED
for (group = 0; group < fs->group_count; group++)
40017894: b4 06 a0 01 inc %i2 40017898: 80 a6 80 01 cmp %i2, %g1
4001789c: 16 80 00 72 bge 40017a64 <rtems_rfs_fs_open+0x530> <== ALWAYS TAKEN
400178a0: b2 06 60 50 add %i1, 0x50, %i1
&fs->groups[group]);
400178a4: d8 07 60 20 ld [ %i5 + 0x20 ], %o4 <== NOT EXECUTED
rtems_rfs_fs_block (fs, group, 0),
400178a8: d4 07 60 28 ld [ %i5 + 0x28 ], %o2
rc = rtems_rfs_group_open (fs,
400178ac: d6 07 60 2c ld [ %i5 + 0x2c ], %o3
rtems_rfs_fs_block (fs, group, 0),
400178b0: 92 5e 80 0a smul %i2, %o2, %o1
rc = rtems_rfs_group_open (fs,
400178b4: 98 03 00 19 add %o4, %i1, %o4 400178b8: 92 02 60 01 inc %o1 400178bc: 7f ff c4 2c call 4000896c <rtems_rfs_group_open> 400178c0: 90 10 00 1d mov %i5, %o0
if (rc > 0)
400178c4: b6 92 20 00 orcc %o0, 0, %i3
400178c8: 24 bf ff f3 ble,a 40017894 <rtems_rfs_fs_open+0x360> <== ALWAYS TAKEN
400178cc: c2 07 60 24 ld [ %i5 + 0x24 ], %g1
for (g = 0; g < group; g++)
400178d0: b0 10 20 00 clr %i0 <== NOT EXECUTED 400178d4: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 400178d8: 02 80 00 0a be 40017900 <rtems_rfs_fs_open+0x3cc> <== NOT EXECUTED 400178dc: b2 10 20 00 clr %i1 <== NOT EXECUTED
rtems_rfs_group_close (fs, &fs->groups[g]);
400178e0: d2 07 60 20 ld [ %i5 + 0x20 ], %o1 <== NOT EXECUTED 400178e4: 92 02 40 18 add %o1, %i0, %o1 <== NOT EXECUTED 400178e8: 7f ff c4 ad call 40008b9c <rtems_rfs_group_close> <== NOT EXECUTED 400178ec: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
for (g = 0; g < group; g++)
400178f0: b2 06 60 01 inc %i1 <== NOT EXECUTED 400178f4: 80 a6 40 1a cmp %i1, %i2 <== NOT EXECUTED 400178f8: 12 bf ff fa bne 400178e0 <rtems_rfs_fs_open+0x3ac> <== NOT EXECUTED 400178fc: b0 06 20 50 add %i0, 0x50, %i0 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40017900: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40017904: 7f ff bf 10 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40017908: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
4001790c: 90 10 20 00 clr %o0 <== NOT EXECUTED
handle->dirty = false;
40017910: c0 2f bf d8 clrb [ %fp + -40 ] <== NOT EXECUTED 40017914: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED
handle->bnum = 0;
40017918: c0 27 bf dc clr [ %fp + -36 ] <== NOT EXECUTED 4001791c: 7f ff cc aa call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017920: c0 27 bf e0 clr [ %fp + -32 ] <== NOT EXECUTED 40017924: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017928: 02 80 00 28 be 400179c8 <rtems_rfs_fs_open+0x494> <== NOT EXECUTED 4001792c: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: no memory for group table%d: %s\n",
40017930: 40 00 1f 37 call 4001f60c <strerror> <== NOT EXECUTED 40017934: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED 40017938: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 4001793c: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40017940: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017944: 7f ff ac ed call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017948: 90 12 23 28 or %o0, 0x328, %o0 ! 40024328 <IMFS_LIMITS_AND_OPTIONS+0xde8><== NOT EXECUTED 4001794c: 30 80 00 1f b,a 400179c8 <rtems_rfs_fs_open+0x494> <== NOT EXECUTED
printf ("rtems-rfs: open: %s\n", name);
40017950: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017954: 7f ff ac e9 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017958: 90 12 20 e8 or %o0, 0xe8, %o0 ! 400240e8 <IMFS_LIMITS_AND_OPTIONS+0xba8><== NOT EXECUTED 4001795c: 30 bf fe fd b,a 40017550 <rtems_rfs_fs_open+0x1c> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017960: 90 10 20 00 clr %o0 <== NOT EXECUTED 40017964: 7f ff cc 98 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017968: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 4001796c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017970: 02 80 00 16 be 400179c8 <rtems_rfs_fs_open+0x494> <== NOT EXECUTED 40017974: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: request failed%d: %s\n",
40017978: 40 00 1f 25 call 4001f60c <strerror> <== NOT EXECUTED 4001797c: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED 40017980: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40017984: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40017988: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 4001798c: 7f ff ac db call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017990: 90 12 21 60 or %o0, 0x160, %o0 ! 40024160 <IMFS_LIMITS_AND_OPTIONS+0xc20><== NOT EXECUTED 40017994: 30 80 00 0d b,a 400179c8 <rtems_rfs_fs_open+0x494> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40017998: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 4001799c: 7f ff be ea call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 400179a0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
400179a4: 90 10 20 00 clr %o0 <== NOT EXECUTED
handle->dirty = false;
400179a8: c0 2f bf d8 clrb [ %fp + -40 ] <== NOT EXECUTED 400179ac: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED
handle->bnum = 0;
400179b0: c0 27 bf dc clr [ %fp + -36 ] <== NOT EXECUTED 400179b4: 7f ff cc 84 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400179b8: c0 27 bf e0 clr [ %fp + -32 ] <== NOT EXECUTED 400179bc: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400179c0: 12 80 00 6b bne 40017b6c <rtems_rfs_fs_open+0x638> <== NOT EXECUTED 400179c4: 01 00 00 00 nop <== NOT EXECUTED
rtems_rfs_buffer_close (*fs);
400179c8: 7f ff bf d6 call 40007920 <rtems_rfs_buffer_close> <== NOT EXECUTED 400179cc: d0 07 00 00 ld [ %i4 ], %o0 <== NOT EXECUTED
free (*fs);
400179d0: 7f ff ad 8c call 40003000 <free> <== NOT EXECUTED 400179d4: d0 07 00 00 ld [ %i4 ], %o0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
400179d8: 90 10 20 00 clr %o0 <== NOT EXECUTED 400179dc: 7f ff cc 7a call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400179e0: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 400179e4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400179e8: 12 80 00 59 bne 40017b4c <rtems_rfs_fs_open+0x618> <== NOT EXECUTED 400179ec: 01 00 00 00 nop <== NOT EXECUTED
errno = rc;
400179f0: 40 00 1a 4b call 4001e31c <__errno> <== NOT EXECUTED 400179f4: b0 10 3f ff mov -1, %i0 ! ffffffff <RAM_END+0xbfbfffff> <== NOT EXECUTED 400179f8: f6 22 00 00 st %i3, [ %o0 ] <== NOT EXECUTED
return -1;
400179fc: 81 c7 e0 08 ret <== NOT EXECUTED 40017a00: 81 e8 00 00 restore <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017a04: 90 10 20 00 clr %o0 <== NOT EXECUTED 40017a08: 7f ff cc 6f call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017a0c: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 40017a10: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017a14: 32 80 00 5e bne,a 40017b8c <rtems_rfs_fs_open+0x658> <== NOT EXECUTED 40017a18: c6 0e e0 04 ldub [ %i3 + 4 ], %g3 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40017a1c: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40017a20: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40017a24: 7f ff be c8 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40017a28: b6 10 20 05 mov 5, %i3 <== NOT EXECUTED
if (rc > 0)
40017a2c: 30 bf ff e7 b,a 400179c8 <rtems_rfs_fs_open+0x494> <== NOT EXECUTED
if (rtems_rfs_fs_size(fs) > rtems_rfs_fs_media_size (fs))
40017a30: 28 bf ff 29 bleu,a 400176d4 <rtems_rfs_fs_open+0x1a0> <== ALWAYS TAKEN
40017a34: f4 0e e0 24 ldub [ %i3 + 0x24 ], %i2
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017a38: 90 10 20 00 clr %o0 <== NOT EXECUTED 40017a3c: 7f ff cc 62 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017a40: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 40017a44: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017a48: 22 bf ff f6 be,a 40017a20 <rtems_rfs_fs_open+0x4ec> <== NOT EXECUTED 40017a4c: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: invalid superblock block/size count\n");
40017a50: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017a54: 7f ff ac b7 call 40002d30 <__wrap_puts> <== NOT EXECUTED 40017a58: 90 12 21 d8 or %o0, 0x1d8, %o0 ! 400241d8 <IMFS_LIMITS_AND_OPTIONS+0xc98><== NOT EXECUTED 40017a5c: 10 bf ff f1 b 40017a20 <rtems_rfs_fs_open+0x4ec> <== NOT EXECUTED 40017a60: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED
rc = rtems_rfs_inode_open (*fs, RTEMS_RFS_ROOT_INO, &inode, true);
40017a64: d0 07 00 00 ld [ %i4 ], %o0 40017a68: 96 10 20 01 mov 1, %o3 40017a6c: 94 07 bf d8 add %fp, -40, %o2 40017a70: 7f ff c5 a8 call 40009110 <rtems_rfs_inode_open> 40017a74: 92 10 20 01 mov 1, %o1
if (rc > 0)
40017a78: ba 92 20 00 orcc %o0, 0, %i5
40017a7c: 14 80 00 72 bg 40017c44 <rtems_rfs_fs_open+0x710> <== NEVER TAKEN
40017a80: 01 00 00 00 nop
rc, strerror (rc)); errno = rc; return -1; } if (((*fs)->flags & RTEMS_RFS_FS_FORCE_OPEN) == 0)
40017a84: d0 07 00 00 ld [ %i4 ], %o0 40017a88: c2 02 00 00 ld [ %o0 ], %g1 40017a8c: 80 88 60 04 btst 4, %g1
40017a90: 12 80 00 0f bne 40017acc <rtems_rfs_fs_open+0x598>
40017a94: c2 07 bf e4 ld [ %fp + -28 ], %g1
return rtems_rfs_read_u16 (&handle->node->mode);
40017a98: c4 08 60 02 ldub [ %g1 + 2 ], %g2 40017a9c: 85 28 a0 08 sll %g2, 8, %g2 40017aa0: c2 08 60 03 ldub [ %g1 + 3 ], %g1 40017aa4: 82 10 40 02 or %g1, %g2, %g1
{ mode = rtems_rfs_inode_get_mode (&inode); if ((mode == 0xffff) || !RTEMS_RFS_S_ISDIR (mode))
40017aa8: 05 00 00 3f sethi %hi(0xfc00), %g2 40017aac: 84 10 a3 ff or %g2, 0x3ff, %g2 ! ffff <_ISR_Stack_size+0xefff> 40017ab0: 80 a0 40 02 cmp %g1, %g2
40017ab4: 02 80 00 52 be 40017bfc <rtems_rfs_fs_open+0x6c8> <== NEVER TAKEN
40017ab8: 82 08 70 00 and %g1, -4096, %g1 40017abc: 05 00 00 10 sethi %hi(0x4000), %g2 40017ac0: 80 a0 40 02 cmp %g1, %g2
40017ac4: 12 80 00 4e bne 40017bfc <rtems_rfs_fs_open+0x6c8> <== NEVER TAKEN
40017ac8: 01 00 00 00 nop
errno = EIO; return -1; } } rc = rtems_rfs_inode_close (*fs, &inode);
40017acc: 92 07 bf d8 add %fp, -40, %o1 40017ad0: 7f ff c6 09 call 400092f4 <rtems_rfs_inode_close> 40017ad4: b0 10 20 00 clr %i0
if (rc > 0)
40017ad8: ba 92 20 00 orcc %o0, 0, %i5
40017adc: 14 80 00 6c bg 40017c8c <rtems_rfs_fs_open+0x758> <== NEVER TAKEN
40017ae0: 01 00 00 00 nop
errno = rc; return -1; } return 0; }
40017ae4: 81 c7 e0 08 ret 40017ae8: 81 e8 00 00 restore
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017aec: 7f ff cc 36 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017af0: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 40017af4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017af8: 22 bf ff ca be,a 40017a20 <rtems_rfs_fs_open+0x4ec> <== NOT EXECUTED 40017afc: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: invalid superblock, bad magic\n");
40017b00: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017b04: 7f ff ac 8b call 40002d30 <__wrap_puts> <== NOT EXECUTED 40017b08: 90 12 21 98 or %o0, 0x198, %o0 ! 40024198 <IMFS_LIMITS_AND_OPTIONS+0xc58><== NOT EXECUTED 40017b0c: 10 bf ff c5 b 40017a20 <rtems_rfs_fs_open+0x4ec> <== NOT EXECUTED 40017b10: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40017b14: 7f ff be 8c call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40017b18: b6 10 20 05 mov 5, %i3 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017b1c: 90 10 20 00 clr %o0 <== NOT EXECUTED
handle->dirty = false;
40017b20: c0 2f bf d8 clrb [ %fp + -40 ] <== NOT EXECUTED 40017b24: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED
handle->bnum = 0;
40017b28: c0 27 bf dc clr [ %fp + -36 ] <== NOT EXECUTED 40017b2c: 7f ff cc 26 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017b30: c0 27 bf e0 clr [ %fp + -32 ] <== NOT EXECUTED 40017b34: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017b38: 02 bf ff a4 be 400179c8 <rtems_rfs_fs_open+0x494> <== NOT EXECUTED 40017b3c: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: groups blocks larger than block bits\n");
40017b40: 7f ff ac 7c call 40002d30 <__wrap_puts> <== NOT EXECUTED 40017b44: 90 12 22 60 or %o0, 0x260, %o0 ! 40024260 <IMFS_LIMITS_AND_OPTIONS+0xd20><== NOT EXECUTED
if (rc > 0)
40017b48: 30 bf ff a0 b,a 400179c8 <rtems_rfs_fs_open+0x494> <== NOT EXECUTED
printf ("rtems-rfs: open: reading superblock: %d: %s\n",
40017b4c: 40 00 1e b0 call 4001f60c <strerror> <== NOT EXECUTED 40017b50: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED 40017b54: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40017b58: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40017b5c: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017b60: 7f ff ac 66 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017b64: 90 12 23 68 or %o0, 0x368, %o0 ! 40024368 <IMFS_LIMITS_AND_OPTIONS+0xe28><== NOT EXECUTED 40017b68: 30 bf ff a2 b,a 400179f0 <rtems_rfs_fs_open+0x4bc> <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: invalid superblock block size%d: %s\n",
40017b6c: 40 00 1e a8 call 4001f60c <strerror> <== NOT EXECUTED 40017b70: 90 10 00 1b mov %i3, %o0 <== NOT EXECUTED 40017b74: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40017b78: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40017b7c: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017b80: 7f ff ac 5e call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017b84: 90 12 22 a8 or %o0, 0x2a8, %o0 ! 400242a8 <IMFS_LIMITS_AND_OPTIONS+0xd68><== NOT EXECUTED 40017b88: 30 bf ff 90 b,a 400179c8 <rtems_rfs_fs_open+0x494> <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: inode size mismatch: fs:%" PRId32 " target:%" PRId32 "\n",
40017b8c: c4 0e e0 05 ldub [ %i3 + 5 ], %g2 <== NOT EXECUTED 40017b90: c2 0e e0 06 ldub [ %i3 + 6 ], %g1 <== NOT EXECUTED 40017b94: d2 0e e0 07 ldub [ %i3 + 7 ], %o1 <== NOT EXECUTED 40017b98: 87 28 e0 18 sll %g3, 0x18, %g3 <== NOT EXECUTED 40017b9c: 85 28 a0 10 sll %g2, 0x10, %g2 <== NOT EXECUTED 40017ba0: 83 28 60 08 sll %g1, 8, %g1 <== NOT EXECUTED 40017ba4: 84 10 80 03 or %g2, %g3, %g2 <== NOT EXECUTED 40017ba8: 82 10 40 02 or %g1, %g2, %g1 <== NOT EXECUTED 40017bac: 94 10 20 00 clr %o2 <== NOT EXECUTED 40017bb0: 92 12 40 01 or %o1, %g1, %o1 <== NOT EXECUTED 40017bb4: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017bb8: 7f ff ac 50 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017bbc: 90 12 22 18 or %o0, 0x218, %o0 ! 40024218 <IMFS_LIMITS_AND_OPTIONS+0xcd8><== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40017bc0: 10 bf ff 98 b 40017a20 <rtems_rfs_fs_open+0x4ec> <== NOT EXECUTED 40017bc4: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED
free (*fs);
40017bc8: 7f ff ad 0e call 40003000 <free> <== NOT EXECUTED 40017bcc: d0 07 00 00 ld [ %i4 ], %o0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017bd0: 90 10 20 00 clr %o0 <== NOT EXECUTED 40017bd4: 7f ff cb fc call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017bd8: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 40017bdc: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017be0: 12 80 00 3d bne 40017cd4 <rtems_rfs_fs_open+0x7a0> <== NOT EXECUTED 40017be4: 01 00 00 00 nop <== NOT EXECUTED
errno = rc;
40017be8: 40 00 19 cd call 4001e31c <__errno> <== NOT EXECUTED 40017bec: b0 10 3f ff mov -1, %i0 ! ffffffff <RAM_END+0xbfbfffff> <== NOT EXECUTED 40017bf0: fa 22 00 00 st %i5, [ %o0 ] <== NOT EXECUTED
return -1;
40017bf4: 81 c7 e0 08 ret <== NOT EXECUTED 40017bf8: 81 e8 00 00 restore <== NOT EXECUTED
rtems_rfs_inode_close (*fs, &inode);
40017bfc: 7f ff c5 be call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40017c00: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED
rtems_rfs_buffer_close (*fs);
40017c04: 7f ff bf 47 call 40007920 <rtems_rfs_buffer_close> <== NOT EXECUTED 40017c08: d0 07 00 00 ld [ %i4 ], %o0 <== NOT EXECUTED
free (*fs);
40017c0c: 7f ff ac fd call 40003000 <free> <== NOT EXECUTED 40017c10: d0 07 00 00 ld [ %i4 ], %o0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017c14: 90 10 20 00 clr %o0 <== NOT EXECUTED 40017c18: 7f ff cb eb call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017c1c: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 40017c20: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017c24: 12 80 00 34 bne 40017cf4 <rtems_rfs_fs_open+0x7c0> <== NOT EXECUTED 40017c28: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED
errno = EIO;
40017c2c: 40 00 19 bc call 4001e31c <__errno> <== NOT EXECUTED 40017c30: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40017c34: 82 10 20 05 mov 5, %g1 <== NOT EXECUTED 40017c38: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED
return -1;
40017c3c: 81 c7 e0 08 ret <== NOT EXECUTED 40017c40: 81 e8 00 00 restore <== NOT EXECUTED
rtems_rfs_buffer_close (*fs);
40017c44: 7f ff bf 37 call 40007920 <rtems_rfs_buffer_close> <== NOT EXECUTED 40017c48: d0 07 00 00 ld [ %i4 ], %o0 <== NOT EXECUTED
free (*fs);
40017c4c: 7f ff ac ed call 40003000 <free> <== NOT EXECUTED 40017c50: d0 07 00 00 ld [ %i4 ], %o0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017c54: 90 10 20 00 clr %o0 <== NOT EXECUTED 40017c58: 7f ff cb db call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017c5c: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 40017c60: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017c64: 02 bf ff e1 be 40017be8 <rtems_rfs_fs_open+0x6b4> <== NOT EXECUTED 40017c68: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: open: reading root inode: %d: %s\n",
40017c6c: 40 00 1e 68 call 4001f60c <strerror> <== NOT EXECUTED 40017c70: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40017c74: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40017c78: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40017c7c: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017c80: 7f ff ac 1e call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017c84: 90 12 23 98 or %o0, 0x398, %o0 ! 40024398 <IMFS_LIMITS_AND_OPTIONS+0xe58><== NOT EXECUTED 40017c88: 30 bf ff d8 b,a 40017be8 <rtems_rfs_fs_open+0x6b4> <== NOT EXECUTED
rtems_rfs_buffer_close (*fs);
40017c8c: 7f ff bf 25 call 40007920 <rtems_rfs_buffer_close> <== NOT EXECUTED 40017c90: d0 07 00 00 ld [ %i4 ], %o0 <== NOT EXECUTED
free (*fs);
40017c94: 7f ff ac db call 40003000 <free> <== NOT EXECUTED 40017c98: d0 07 00 00 ld [ %i4 ], %o0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017c9c: 90 10 20 00 clr %o0 <== NOT EXECUTED 40017ca0: 7f ff cb c9 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017ca4: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 40017ca8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017cac: 02 bf ff cf be 40017be8 <rtems_rfs_fs_open+0x6b4> <== NOT EXECUTED 40017cb0: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: open: closing root inode: %d: %s\n", rc, strerror (rc));
40017cb4: 40 00 1e 56 call 4001f60c <strerror> <== NOT EXECUTED 40017cb8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40017cbc: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40017cc0: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40017cc4: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017cc8: 7f ff ac 0c call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017ccc: 90 12 23 f8 or %o0, 0x3f8, %o0 ! 400243f8 <IMFS_LIMITS_AND_OPTIONS+0xeb8><== NOT EXECUTED 40017cd0: 30 bf ff c6 b,a 40017be8 <rtems_rfs_fs_open+0x6b4> <== NOT EXECUTED
printf ("rtems-rfs: open: buffer open failed: %d: %s\n",
40017cd4: 40 00 1e 4e call 4001f60c <strerror> <== NOT EXECUTED 40017cd8: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40017cdc: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40017ce0: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40017ce4: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED 40017ce8: 7f ff ac 04 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017cec: 90 12 21 30 or %o0, 0x130, %o0 ! 40024130 <IMFS_LIMITS_AND_OPTIONS+0xbf0><== NOT EXECUTED 40017cf0: 30 bf ff be b,a 40017be8 <rtems_rfs_fs_open+0x6b4> <== NOT EXECUTED
printf ("rtems-rfs: open: invalid root inode mode\n");
40017cf4: 7f ff ac 0f call 40002d30 <__wrap_puts> <== NOT EXECUTED 40017cf8: 90 12 23 c8 or %o0, 0x3c8, %o0 <== NOT EXECUTED 40017cfc: 30 bf ff cc b,a 40017c2c <rtems_rfs_fs_open+0x6f8> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017d00: 90 10 20 00 clr %o0 <== NOT EXECUTED 40017d04: 7f ff cb b0 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017d08: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 40017d0c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017d10: 12 80 00 08 bne 40017d30 <rtems_rfs_fs_open+0x7fc> <== NOT EXECUTED 40017d14: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED
errno = ENOMEM;
40017d18: 40 00 19 81 call 4001e31c <__errno> <== NOT EXECUTED 40017d1c: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 40017d20: 82 10 20 0c mov 0xc, %g1 <== NOT EXECUTED 40017d24: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED
return -1;
40017d28: 81 c7 e0 08 ret <== NOT EXECUTED 40017d2c: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: open: no memory for file system data\n");
40017d30: 7f ff ac 00 call 40002d30 <__wrap_puts> <== NOT EXECUTED 40017d34: 90 12 21 00 or %o0, 0x100, %o0 <== NOT EXECUTED 40017d38: 30 bf ff f8 b,a 40017d18 <rtems_rfs_fs_open+0x7e4> <== NOT EXECUTED 40017d3c: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40017d40: 7f ff be 01 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40017d44: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017d48: 90 10 20 00 clr %o0 <== NOT EXECUTED
handle->dirty = false;
40017d4c: c0 2f bf d8 clrb [ %fp + -40 ] <== NOT EXECUTED 40017d50: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED
handle->bnum = 0;
40017d54: c0 27 bf dc clr [ %fp + -36 ] <== NOT EXECUTED
return ENOMEM;
40017d58: b6 10 20 0c mov 0xc, %i3 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017d5c: 7f ff cb 9a call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40017d60: c0 27 bf e0 clr [ %fp + -32 ] <== NOT EXECUTED 40017d64: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40017d68: 02 bf ff 18 be 400179c8 <rtems_rfs_fs_open+0x494> <== NOT EXECUTED 40017d6c: 11 10 00 90 sethi %hi(0x40024000), %o0 <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: no memory for group table\n");
40017d70: 7f ff ab f0 call 40002d30 <__wrap_puts> <== NOT EXECUTED 40017d74: 90 12 22 f0 or %o0, 0x2f0, %o0 ! 400242f0 <IMFS_LIMITS_AND_OPTIONS+0xdb0><== NOT EXECUTED
if (rc > 0)
40017d78: 30 bf ff 14 b,a 400179c8 <rtems_rfs_fs_open+0x494> <== NOT EXECUTED
40017500 <rtems_rfs_fs_size>: uint64_t rtems_rfs_fs_size (rtems_rfs_file_system* fs) { uint64_t blocks = rtems_rfs_fs_blocks (fs); uint64_t block_size = rtems_rfs_fs_block_size (fs); return blocks * block_size;
40017500: c4 02 20 04 ld [ %o0 + 4 ], %g2 <== NOT EXECUTED 40017504: d0 02 20 08 ld [ %o0 + 8 ], %o0 <== NOT EXECUTED
}
40017508: 92 50 80 08 umul %g2, %o0, %o1 <== NOT EXECUTED 4001750c: 91 40 00 00 rd %y, %o0 <== NOT EXECUTED 40017510: 81 c3 e0 08 retl <== NOT EXECUTED 40017514: 01 00 00 00 nop <== NOT EXECUTED
40008c2c <rtems_rfs_group_bitmap_alloc>: int rtems_rfs_group_bitmap_alloc (rtems_rfs_file_system* fs, rtems_rfs_bitmap_bit goal, bool inode, rtems_rfs_bitmap_bit* result) {
40008c2c: 9d e3 bf 98 save %sp, -104, %sp
rtems_rfs_bitmap_bit bit; int offset; bool updown; int direction; if (inode)
40008c30: 80 a6 a0 00 cmp %i2, 0
40008c34: 02 80 00 52 be 40008d7c <rtems_rfs_group_bitmap_alloc+0x150>
40008c38: 80 a6 60 00 cmp %i1, 0
{ size = fs->group_inodes;
40008c3c: e4 06 20 2c ld [ %i0 + 0x2c ], %l2
goal -= RTEMS_RFS_ROOT_INO;
40008c40: b2 06 7f ff add %i1, -1, %i1
*/ if (goal >= RTEMS_RFS_ROOT_INO) goal -= RTEMS_RFS_ROOT_INO; } group_start = goal / size;
40008c44: 81 80 20 00 wr %g0, %y 40008c48: 01 00 00 00 nop 40008c4c: 01 00 00 00 nop 40008c50: 01 00 00 00 nop 40008c54: a0 76 40 12 udiv %i1, %l2, %l0
*/ while (true) { rtems_rfs_bitmap_control* bitmap; int group; bool allocated = false;
40008c58: c0 2f bf fb clrb [ %fp + -5 ]
bit = (rtems_rfs_bitmap_bit) (goal % size);
40008c5c: 82 5c 00 12 smul %l0, %l2, %g1 40008c60: b2 26 40 01 sub %i1, %g1, %i1 40008c64: f2 27 bf fc st %i1, [ %fp + -4 ]
/* * We can start at any location and we move out from that point in each * direction. The offset grows until we find a free bit or we hit an end. */ group = group_start + (direction * offset);
40008c68: ba 10 00 10 mov %l0, %i5
direction = 1;
40008c6c: a6 10 20 01 mov 1, %l3
updown = true;
40008c70: a2 10 20 01 mov 1, %l1
bool allocated = false;
40008c74: b8 10 20 00 clr %i4
if (offset) bit = direction > 0 ? 0 : size - 1;
40008c78: a4 04 bf ff add %l2, -1, %l2
* group_start, then alternate the direction and * increment the offset on every other iteration. * Otherwise we are marching through the groups, so just * increment the offset. */ if (updown)
40008c7c: a8 0c 60 ff and %l1, 0xff, %l4
group = group_start + (direction * offset);
40008c80: aa 04 00 1c add %l0, %i4, %l5
if ((group < 0) || (group >= fs->group_count))
40008c84: 80 a7 60 00 cmp %i5, 0
40008c88: 06 80 00 29 bl 40008d2c <rtems_rfs_group_bitmap_alloc+0x100>
40008c8c: 80 8c 60 ff btst 0xff, %l1 40008c90: c2 06 20 24 ld [ %i0 + 0x24 ], %g1 40008c94: 80 a0 40 1d cmp %g1, %i5
40008c98: 04 80 00 25 ble 40008d2c <rtems_rfs_group_bitmap_alloc+0x100>
40008c9c: 80 8c 60 ff btst 0xff, %l1
bitmap = &fs->groups[group].inode_bitmap;
40008ca0: c2 06 20 20 ld [ %i0 + 0x20 ], %g1 40008ca4: b3 2f 60 02 sll %i5, 2, %i1
if (inode)
40008ca8: 80 a6 a0 00 cmp %i2, 0
bitmap = &fs->groups[group].inode_bitmap;
40008cac: b2 06 40 1d add %i1, %i5, %i1 40008cb0: b3 2e 60 04 sll %i1, 4, %i1 40008cb4: 82 00 40 19 add %g1, %i1, %g1
if (inode) 40008cb8: 12 80 00 35 bne 40008d8c <rtems_rfs_group_bitmap_alloc+0x160>
40008cbc: ac 00 60 08 add %g1, 8, %l6
rc = rtems_rfs_bitmap_map_alloc (bitmap, bit, &allocated, &bit);
40008cc0: d2 07 bf fc ld [ %fp + -4 ], %o1 40008cc4: 96 07 bf fc add %fp, -4, %o3 40008cc8: 94 07 bf fb add %fp, -5, %o2 40008ccc: 7f ff f7 b2 call 40006b94 <rtems_rfs_bitmap_map_alloc> 40008cd0: 90 10 00 16 mov %l6, %o0
if (rc > 0)
40008cd4: 80 a2 20 00 cmp %o0, 0
40008cd8: 14 80 00 27 bg 40008d74 <rtems_rfs_group_bitmap_alloc+0x148> <== NEVER TAKEN
40008cdc: 01 00 00 00 nop
if (rtems_rfs_fs_release_bitmaps (fs))
40008ce0: c2 06 00 00 ld [ %i0 ], %g1 40008ce4: 80 88 60 01 btst 1, %g1
40008ce8: 22 80 00 3f be,a 40008de4 <rtems_rfs_group_bitmap_alloc+0x1b8> <== ALWAYS TAKEN
40008cec: d2 05 80 00 ld [ %l6 ], %o1
if (allocated)
40008cf0: c2 0f bf fb ldub [ %fp + -5 ], %g1 <== NOT EXECUTED
40008cf4: 80 a0 60 00 cmp %g1, 0
40008cf8: 12 80 00 45 bne 40008e0c <rtems_rfs_group_bitmap_alloc+0x1e0>
40008cfc: 80 a5 20 00 cmp %l4, 0
if (updown)
40008d00: 02 80 00 25 be 40008d94 <rtems_rfs_group_bitmap_alloc+0x168> <== NEVER TAKEN
40008d04: c0 2f bf fb clrb [ %fp + -5 ]
{ direction = direction > 0 ? -1 : 1;
40008d08: 80 a4 e0 01 cmp %l3, 1
40008d0c: 12 80 00 3a bne 40008df4 <rtems_rfs_group_bitmap_alloc+0x1c8> <== NEVER TAKEN
40008d10: 01 00 00 00 nop
if ( direction == -1 ) offset++;
40008d14: b8 07 20 01 inc %i4
direction = direction > 0 ? -1 : 1;
40008d18: a6 10 3f ff mov -1, %l3 40008d1c: ba 24 00 1c sub %l0, %i4, %i5
bit = direction > 0 ? 0 : size - 1;
40008d20: 82 10 00 12 mov %l2, %g1 40008d24: 10 bf ff d6 b 40008c7c <rtems_rfs_group_bitmap_alloc+0x50> 40008d28: c2 27 bf fc st %g1, [ %fp + -4 ]
if (!updown) 40008d2c: 02 80 00 0c be 40008d5c <rtems_rfs_group_bitmap_alloc+0x130>
40008d30: 90 10 20 00 clr %o0
direction = direction > 0 ? -1 : 1;
40008d34: 80 a4 e0 01 cmp %l3, 1
40008d38: 12 80 00 23 bne 40008dc4 <rtems_rfs_group_bitmap_alloc+0x198> <== ALWAYS TAKEN
40008d3c: c0 2f bf fb clrb [ %fp + -5 ]
group = group_start + (direction * offset);
40008d40: ba 24 00 1c sub %l0, %i4, %i5 <== NOT EXECUTED
direction = direction > 0 ? -1 : 1;
40008d44: a6 10 3f ff mov -1, %l3 <== NOT EXECUTED
if (offset)
40008d48: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED 40008d4c: 02 bf ff cc be 40008c7c <rtems_rfs_group_bitmap_alloc+0x50> <== NOT EXECUTED 40008d50: a2 10 20 00 clr %l1 <== NOT EXECUTED
bit = direction > 0 ? 0 : size - 1;
40008d54: 10 bf ff f4 b 40008d24 <rtems_rfs_group_bitmap_alloc+0xf8> <== NOT EXECUTED 40008d58: 82 10 00 12 mov %l2, %g1 <== NOT EXECUTED
offset++; } } if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
40008d5c: 40 00 07 9a call 4000abc4 <rtems_rfs_trace> 40008d60: 13 00 00 80 sethi %hi(0x20000), %o1 40008d64: 80 a2 20 00 cmp %o0, 0
40008d68: 12 80 00 13 bne 40008db4 <rtems_rfs_group_bitmap_alloc+0x188> <== NEVER TAKEN
40008d6c: 11 10 00 8b sethi %hi(0x40022c00), %o0
printf ("rtems-rfs: group-bitmap-alloc: no blocks available\n"); return ENOSPC;
40008d70: 90 10 20 1c mov 0x1c, %o0
}
40008d74: 81 c7 e0 08 ret 40008d78: 91 e8 00 08 restore %g0, %o0, %o0
if (goal >= RTEMS_RFS_ROOT_INO) 40008d7c: 04 bf ff b2 ble 40008c44 <rtems_rfs_group_bitmap_alloc+0x18>
40008d80: e4 06 20 28 ld [ %i0 + 0x28 ], %l2
goal -= RTEMS_RFS_ROOT_INO;
40008d84: 10 bf ff b0 b 40008c44 <rtems_rfs_group_bitmap_alloc+0x18> 40008d88: b2 06 7f ff add %i1, -1, %i1
bitmap = &fs->groups[group].inode_bitmap;
40008d8c: 10 bf ff cd b 40008cc0 <rtems_rfs_group_bitmap_alloc+0x94> 40008d90: ac 00 60 2c add %g1, 0x2c, %l6
offset++;
40008d94: b8 07 20 01 inc %i4 <== NOT EXECUTED
bit = direction > 0 ? 0 : size - 1;
40008d98: 80 a4 e0 01 cmp %l3, 1 <== NOT EXECUTED
group = group_start + (direction * offset);
40008d9c: ba 5f 00 13 smul %i4, %l3, %i5 <== NOT EXECUTED
bit = direction > 0 ? 0 : size - 1;
40008da0: 12 bf ff e0 bne 40008d20 <rtems_rfs_group_bitmap_alloc+0xf4> <== NOT EXECUTED 40008da4: ba 07 40 10 add %i5, %l0, %i5 <== NOT EXECUTED 40008da8: 82 10 20 00 clr %g1 <== NOT EXECUTED 40008dac: 10 bf ff b4 b 40008c7c <rtems_rfs_group_bitmap_alloc+0x50> <== NOT EXECUTED 40008db0: c2 27 bf fc st %g1, [ %fp + -4 ] <== NOT EXECUTED
printf ("rtems-rfs: group-bitmap-alloc: no blocks available\n");
40008db4: 7f ff e7 df call 40002d30 <__wrap_puts> <== NOT EXECUTED 40008db8: 90 12 20 90 or %o0, 0x90, %o0 <== NOT EXECUTED
return ENOSPC;
40008dbc: 10 bf ff ee b 40008d74 <rtems_rfs_group_bitmap_alloc+0x148> <== NOT EXECUTED 40008dc0: 90 10 20 1c mov 0x1c, %o0 <== NOT EXECUTED
group = group_start + (direction * offset);
40008dc4: ba 04 00 1c add %l0, %i4, %i5
if (offset)
40008dc8: a6 10 20 01 mov 1, %l3 40008dcc: a2 10 20 00 clr %l1 40008dd0: 80 a7 20 00 cmp %i4, 0
40008dd4: 02 bf ff aa be 40008c7c <rtems_rfs_group_bitmap_alloc+0x50> <== NEVER TAKEN
40008dd8: 82 10 20 00 clr %g1
bit = direction > 0 ? 0 : size - 1;
40008ddc: 10 bf ff a8 b 40008c7c <rtems_rfs_group_bitmap_alloc+0x50> 40008de0: c2 27 bf fc st %g1, [ %fp + -4 ]
rtems_rfs_bitmap_release_buffer (fs, bitmap);
40008de4: 7f ff f9 d8 call 40007544 <rtems_rfs_buffer_handle_release> 40008de8: 90 10 00 18 mov %i0, %o0
if (allocated)
40008dec: 10 bf ff c2 b 40008cf4 <rtems_rfs_group_bitmap_alloc+0xc8> 40008df0: c2 0f bf fb ldub [ %fp + -5 ], %g1
group = group_start + (direction * offset);
40008df4: ba 10 00 15 mov %l5, %i5 <== NOT EXECUTED
if (offset)
40008df8: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED 40008dfc: 02 bf ff a2 be 40008c84 <rtems_rfs_group_bitmap_alloc+0x58> <== NOT EXECUTED 40008e00: a6 10 20 01 mov 1, %l3 <== NOT EXECUTED
bit = direction > 0 ? 0 : size - 1;
40008e04: 10 bf ff ea b 40008dac <rtems_rfs_group_bitmap_alloc+0x180> <== NOT EXECUTED 40008e08: 82 10 20 00 clr %g1 <== NOT EXECUTED
if (inode)
40008e0c: 80 a6 a0 00 cmp %i2, 0
40008e10: 02 80 00 15 be 40008e64 <rtems_rfs_group_bitmap_alloc+0x238>
40008e14: c4 07 bf fc ld [ %fp + -4 ], %g2
*result = rtems_rfs_group_inode (fs, group, bit);
40008e18: c2 06 20 2c ld [ %i0 + 0x2c ], %g1 40008e1c: 84 00 a0 01 inc %g2 40008e20: 82 5f 40 01 smul %i5, %g1, %g1 40008e24: 82 00 40 02 add %g1, %g2, %g1 40008e28: c2 26 c0 00 st %g1, [ %i3 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
40008e2c: 90 10 20 00 clr %o0 40008e30: 40 00 07 65 call 4000abc4 <rtems_rfs_trace> 40008e34: 13 00 00 80 sethi %hi(0x20000), %o1 40008e38: 80 a2 20 00 cmp %o0, 0
40008e3c: 22 bf ff ce be,a 40008d74 <rtems_rfs_group_bitmap_alloc+0x148> <== ALWAYS TAKEN
40008e40: 90 10 20 00 clr %o0
printf ("rtems-rfs: group-bitmap-alloc: %s allocated: %" PRId32 "\n",
40008e44: 13 10 00 8b sethi %hi(0x40022c00), %o1 <== NOT EXECUTED 40008e48: 92 12 60 48 or %o1, 0x48, %o1 ! 40022c48 <IMFS_node_control_sym_link+0xec0><== NOT EXECUTED 40008e4c: d4 06 c0 00 ld [ %i3 ], %o2 <== NOT EXECUTED 40008e50: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 40008e54: 7f ff e7 a9 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008e58: 90 12 20 58 or %o0, 0x58, %o0 ! 40022c58 <IMFS_node_control_sym_link+0xed0><== NOT EXECUTED
return 0;
40008e5c: 10 bf ff c6 b 40008d74 <rtems_rfs_group_bitmap_alloc+0x148> <== NOT EXECUTED 40008e60: 90 10 20 00 clr %o0 <== NOT EXECUTED
*result = rtems_rfs_group_block (&fs->groups[group], bit);
40008e64: c2 06 20 20 ld [ %i0 + 0x20 ], %g1 40008e68: c2 00 40 19 ld [ %g1 + %i1 ], %g1 40008e6c: 84 00 40 02 add %g1, %g2, %g2 40008e70: c4 26 c0 00 st %g2, [ %i3 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
40008e74: 90 10 20 00 clr %o0 40008e78: 40 00 07 53 call 4000abc4 <rtems_rfs_trace> 40008e7c: 13 00 00 80 sethi %hi(0x20000), %o1 40008e80: 80 a2 20 00 cmp %o0, 0
40008e84: 22 bf ff bc be,a 40008d74 <rtems_rfs_group_bitmap_alloc+0x148> <== ALWAYS TAKEN
40008e88: 90 10 20 00 clr %o0
printf ("rtems-rfs: group-bitmap-alloc: %s allocated: %" PRId32 "\n",
40008e8c: 13 10 00 8b sethi %hi(0x40022c00), %o1 <== NOT EXECUTED 40008e90: 10 bf ff ef b 40008e4c <rtems_rfs_group_bitmap_alloc+0x220> <== NOT EXECUTED 40008e94: 92 12 60 50 or %o1, 0x50, %o1 ! 40022c50 <IMFS_node_control_sym_link+0xec8><== NOT EXECUTED
40008e98 <rtems_rfs_group_bitmap_free>: int rtems_rfs_group_bitmap_free (rtems_rfs_file_system* fs, bool inode, rtems_rfs_bitmap_bit no) {
40008e98: 9d e3 bf a0 save %sp, -96, %sp
unsigned int group; rtems_rfs_bitmap_bit bit; size_t size; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
40008e9c: 90 10 20 00 clr %o0 40008ea0: 13 00 00 80 sethi %hi(0x20000), %o1 40008ea4: 40 00 07 48 call 4000abc4 <rtems_rfs_trace> 40008ea8: b8 10 00 18 mov %i0, %i4 40008eac: 80 a2 20 00 cmp %o0, 0
40008eb0: 22 80 00 0c be,a 40008ee0 <rtems_rfs_group_bitmap_free+0x48> <== ALWAYS TAKEN
40008eb4: fa 07 20 20 ld [ %i4 + 0x20 ], %i5
printf ("rtems-rfs: group-bitmap-free: %s free: %" PRId32 "\n",
40008eb8: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED 40008ebc: 12 80 00 36 bne 40008f94 <rtems_rfs_group_bitmap_free+0xfc> <== NOT EXECUTED 40008ec0: 13 10 00 8b sethi %hi(0x40022c00), %o1 <== NOT EXECUTED 40008ec4: 13 10 00 8b sethi %hi(0x40022c00), %o1 <== NOT EXECUTED 40008ec8: 92 12 60 50 or %o1, 0x50, %o1 ! 40022c50 <IMFS_node_control_sym_link+0xec8><== NOT EXECUTED 40008ecc: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 40008ed0: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 40008ed4: 7f ff e7 89 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008ed8: 90 12 20 c8 or %o0, 0xc8, %o0 <== NOT EXECUTED
group = no / size; bit = (rtems_rfs_bitmap_bit) (no % size); if (inode) bitmap = &fs->groups[group].inode_bitmap;
40008edc: fa 07 20 20 ld [ %i4 + 0x20 ], %i5 <== NOT EXECUTED
if (inode)
40008ee0: 80 a6 60 00 cmp %i1, 0
40008ee4: 02 80 00 17 be 40008f40 <rtems_rfs_group_bitmap_free+0xa8>
40008ee8: b4 06 bf ff add %i2, -1, %i2
size = fs->group_inodes;
40008eec: d2 07 20 2c ld [ %i4 + 0x2c ], %o1
bit = (rtems_rfs_bitmap_bit) (no % size);
40008ef0: 81 80 20 00 wr %g0, %y 40008ef4: 01 00 00 00 nop 40008ef8: 01 00 00 00 nop 40008efc: 01 00 00 00 nop 40008f00: 84 76 80 09 udiv %i2, %o1, %g2
bitmap = &fs->groups[group].inode_bitmap;
40008f04: 83 28 a0 02 sll %g2, 2, %g1 40008f08: 82 00 40 02 add %g1, %g2, %g1 40008f0c: 83 28 60 04 sll %g1, 4, %g1
bit = (rtems_rfs_bitmap_bit) (no % size);
40008f10: 92 58 80 09 smul %g2, %o1, %o1
bitmap = &fs->groups[group].inode_bitmap;
40008f14: ba 07 40 01 add %i5, %g1, %i5
bit = (rtems_rfs_bitmap_bit) (no % size);
40008f18: 92 26 80 09 sub %i2, %o1, %o1
bitmap = &fs->groups[group].inode_bitmap;
40008f1c: ba 07 60 2c add %i5, 0x2c, %i5
else bitmap = &fs->groups[group].block_bitmap; rc = rtems_rfs_bitmap_map_clear (bitmap, bit);
40008f20: 7f ff f6 69 call 400068c4 <rtems_rfs_bitmap_map_clear> 40008f24: 90 10 00 1d mov %i5, %o0
rtems_rfs_bitmap_release_buffer (fs, bitmap);
40008f28: d2 07 40 00 ld [ %i5 ], %o1
rc = rtems_rfs_bitmap_map_clear (bitmap, bit);
40008f2c: b0 10 00 08 mov %o0, %i0
rtems_rfs_bitmap_release_buffer (fs, bitmap);
40008f30: 7f ff f9 85 call 40007544 <rtems_rfs_buffer_handle_release> 40008f34: 90 10 00 1c mov %i4, %o0
return rc; }
40008f38: 81 c7 e0 08 ret 40008f3c: 81 e8 00 00 restore
size = fs->group_blocks;
40008f40: d2 07 20 28 ld [ %i4 + 0x28 ], %o1
bit = (rtems_rfs_bitmap_bit) (no % size);
40008f44: 81 80 20 00 wr %g0, %y 40008f48: 01 00 00 00 nop 40008f4c: 01 00 00 00 nop 40008f50: 01 00 00 00 nop 40008f54: 84 76 80 09 udiv %i2, %o1, %g2
bitmap = &fs->groups[group].block_bitmap;
40008f58: 83 28 a0 02 sll %g2, 2, %g1 40008f5c: 82 00 40 02 add %g1, %g2, %g1 40008f60: 83 28 60 04 sll %g1, 4, %g1
bit = (rtems_rfs_bitmap_bit) (no % size);
40008f64: 92 58 80 09 smul %g2, %o1, %o1
bitmap = &fs->groups[group].block_bitmap;
40008f68: ba 07 40 01 add %i5, %g1, %i5
bit = (rtems_rfs_bitmap_bit) (no % size);
40008f6c: 92 26 80 09 sub %i2, %o1, %o1
bitmap = &fs->groups[group].block_bitmap;
40008f70: ba 07 60 08 add %i5, 8, %i5
rc = rtems_rfs_bitmap_map_clear (bitmap, bit);
40008f74: 7f ff f6 54 call 400068c4 <rtems_rfs_bitmap_map_clear> 40008f78: 90 10 00 1d mov %i5, %o0
rtems_rfs_bitmap_release_buffer (fs, bitmap);
40008f7c: d2 07 40 00 ld [ %i5 ], %o1
rc = rtems_rfs_bitmap_map_clear (bitmap, bit);
40008f80: b0 10 00 08 mov %o0, %i0
rtems_rfs_bitmap_release_buffer (fs, bitmap);
40008f84: 7f ff f9 70 call 40007544 <rtems_rfs_buffer_handle_release> 40008f88: 90 10 00 1c mov %i4, %o0
}
40008f8c: 81 c7 e0 08 ret 40008f90: 81 e8 00 00 restore
printf ("rtems-rfs: group-bitmap-free: %s free: %" PRId32 "\n",
40008f94: 10 bf ff ce b 40008ecc <rtems_rfs_group_bitmap_free+0x34> <== NOT EXECUTED 40008f98: 92 12 60 48 or %o1, 0x48, %o1 <== NOT EXECUTED
40008b9c <rtems_rfs_group_close>: int rtems_rfs_group_close (rtems_rfs_file_system* fs, rtems_rfs_group* group) {
40008b9c: 9d e3 bf a0 save %sp, -96, %sp
int result = 0; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_CLOSE))
40008ba0: 90 10 20 00 clr %o0 40008ba4: 40 00 08 08 call 4000abc4 <rtems_rfs_trace> 40008ba8: 13 00 00 40 sethi %hi(0x10000), %o1 40008bac: 80 a2 20 00 cmp %o0, 0
40008bb0: 32 80 00 1b bne,a 40008c1c <rtems_rfs_group_close+0x80> <== NEVER TAKEN
40008bb4: d2 06 40 00 ld [ %i1 ], %o1 <== NOT EXECUTED
/* * We need to close as much as possible and also return any error if one * occurs but this may result in one even more important error being lost but * we cannot OR the errors together so this is a reasonable compromise. */ rc = rtems_rfs_bitmap_close (&group->inode_bitmap);
40008bb8: 7f ff f8 92 call 40006e00 <rtems_rfs_bitmap_close> 40008bbc: 90 06 60 2c add %i1, 0x2c, %o0
rtems_rfs_buffer_handle_release (fs, handle);
40008bc0: 92 06 60 44 add %i1, 0x44, %o1 40008bc4: ba 10 00 08 mov %o0, %i5 40008bc8: 7f ff fa 5f call 40007544 <rtems_rfs_buffer_handle_release> 40008bcc: 90 10 00 18 mov %i0, %o0
handle->dirty = false;
40008bd0: c0 2e 60 44 clrb [ %i1 + 0x44 ]
if (rc > 0) result = rc; rc = rtems_rfs_buffer_handle_close (fs, &group->inode_bitmap_buffer); if (rc > 0) result = rc; rc = rtems_rfs_bitmap_close (&group->block_bitmap);
40008bd4: 90 06 60 08 add %i1, 8, %o0
handle->bnum = 0;
40008bd8: c0 26 60 48 clr [ %i1 + 0x48 ] 40008bdc: 7f ff f8 89 call 40006e00 <rtems_rfs_bitmap_close> 40008be0: c0 26 60 4c clr [ %i1 + 0x4c ]
if (rc > 0)
40008be4: 82 92 20 00 orcc %o0, 0, %g1
40008be8: 14 80 00 05 bg 40008bfc <rtems_rfs_group_close+0x60> <== NEVER TAKEN
40008bec: 92 06 60 20 add %i1, 0x20, %o1 40008bf0: 82 38 00 1d xnor %g0, %i5, %g1 40008bf4: 83 38 60 1f sra %g1, 0x1f, %g1 40008bf8: 82 0f 40 01 and %i5, %g1, %g1
rtems_rfs_buffer_handle_release (fs, handle);
40008bfc: 90 10 00 18 mov %i0, %o0 40008c00: 7f ff fa 51 call 40007544 <rtems_rfs_buffer_handle_release> 40008c04: b0 10 00 01 mov %g1, %i0
handle->dirty = false;
40008c08: c0 2e 60 20 clrb [ %i1 + 0x20 ]
handle->bnum = 0;
40008c0c: c0 26 60 24 clr [ %i1 + 0x24 ]
handle->buffer = NULL;
40008c10: c0 26 60 28 clr [ %i1 + 0x28 ]
rc = rtems_rfs_buffer_handle_close (fs, &group->block_bitmap_buffer); if (rc > 0) result = rc; return result; }
40008c14: 81 c7 e0 08 ret 40008c18: 81 e8 00 00 restore
printf ("rtems-rfs: group-close: base=%" PRId32 "\n", group->base);
40008c1c: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 40008c20: 7f ff e8 36 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008c24: 90 12 20 20 or %o0, 0x20, %o0 ! 40022c20 <IMFS_node_control_sym_link+0xe98><== NOT EXECUTED 40008c28: 30 bf ff e4 b,a 40008bb8 <rtems_rfs_group_close+0x1c> <== NOT EXECUTED
4000896c <rtems_rfs_group_open>: rtems_rfs_group_open (rtems_rfs_file_system* fs, rtems_rfs_buffer_block base, size_t size, size_t inodes, rtems_rfs_group* group) {
4000896c: 9d e3 bf a0 save %sp, -96, %sp
int rc; if (base >= rtems_rfs_fs_blocks (fs))
40008970: c2 06 20 04 ld [ %i0 + 4 ], %g1 40008974: 80 a0 40 19 cmp %g1, %i1
40008978: 08 80 00 7a bleu 40008b60 <rtems_rfs_group_open+0x1f4> <== NEVER TAKEN
4000897c: 84 06 40 1a add %i1, %i2, %g2
printf ("rtems-rfs: group-open: base outside file system range: %d: %s\n", EIO, strerror (EIO)); return EIO; } if ((base + size) >= rtems_rfs_fs_blocks (fs))
40008980: 80 a0 40 02 cmp %g1, %g2
40008984: 28 80 00 02 bleu,a 4000898c <rtems_rfs_group_open+0x20> <== ALWAYS TAKEN
40008988: b4 20 40 19 sub %g1, %i1, %i2
* Limit the inodes to the same size as the blocks. This is what the * format does and if this is not done the accounting of inodes does * not work. If we are so pushed for inodes that this makes a difference * the format configuration needs reviewing. */ if (inodes > size)
4000898c: 80 a6 80 1b cmp %i2, %i3
40008990: 18 80 00 2b bgu 40008a3c <rtems_rfs_group_open+0xd0> <== ALWAYS TAKEN
40008994: a0 10 00 1a mov %i2, %l0
inodes = size; if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
40008998: 90 10 20 00 clr %o0 <== NOT EXECUTED 4000899c: 40 00 08 8a call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400089a0: 13 00 00 20 sethi %hi(0x8000), %o1 <== NOT EXECUTED 400089a4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400089a8: 12 80 00 2d bne 40008a5c <rtems_rfs_group_open+0xf0> <== NOT EXECUTED 400089ac: 96 10 00 10 mov %l0, %o3 <== NOT EXECUTED
printf ("rtems-rfs: group-open: base=%" PRId32 ", blocks=%zd inodes=%zd\n", base, size, inodes); group->base = base;
400089b0: f2 27 00 00 st %i1, [ %i4 ] <== NOT EXECUTED
group->size = size; rc = rtems_rfs_buffer_handle_open (fs, &group->block_bitmap_buffer);
400089b4: b6 07 20 20 add %i4, 0x20, %i3
group->size = size;
400089b8: f4 27 20 04 st %i2, [ %i4 + 4 ]
printf ("rtems-rfs: group-open: could not open block bitmap handle: %d: %s\n", rc, strerror (rc)); return rc; } rc = rtems_rfs_bitmap_open (&group->block_bitmap, fs,
400089bc: a2 07 20 08 add %i4, 8, %l1
handle->dirty = false;
400089c0: c0 2f 20 20 clrb [ %i4 + 0x20 ] 400089c4: 98 10 00 19 mov %i1, %o4
handle->bnum = 0;
400089c8: c0 27 20 24 clr [ %i4 + 0x24 ] 400089cc: 96 10 00 1a mov %i2, %o3
handle->buffer = NULL;
400089d0: c0 27 20 28 clr [ %i4 + 0x28 ] 400089d4: 94 10 00 1b mov %i3, %o2 400089d8: 92 10 00 18 mov %i0, %o1 400089dc: 7f ff f8 f8 call 40006dbc <rtems_rfs_bitmap_open> 400089e0: 90 10 00 11 mov %l1, %o0
&group->block_bitmap_buffer, size, group->base + RTEMS_RFS_GROUP_BLOCK_BITMAP_BLOCK); if (rc > 0)
400089e4: ba 92 20 00 orcc %o0, 0, %i5
400089e8: 14 80 00 24 bg 40008a78 <rtems_rfs_group_open+0x10c> <== NEVER TAKEN
400089ec: b4 07 20 44 add %i4, 0x44, %i2
handle->dirty = false;
400089f0: c0 2f 20 44 clrb [ %i4 + 0x44 ]
handle->bnum = 0;
400089f4: c0 27 20 48 clr [ %i4 + 0x48 ]
printf ("rtems-rfs: group-open: could not open inode bitmap handle: %d: %s\n", rc, strerror (rc)); return rc; } rc = rtems_rfs_bitmap_open (&group->inode_bitmap, fs,
400089f8: 96 10 00 10 mov %l0, %o3
handle->buffer = NULL;
400089fc: c0 27 20 4c clr [ %i4 + 0x4c ] 40008a00: 94 10 00 1a mov %i2, %o2 40008a04: d8 07 00 00 ld [ %i4 ], %o4 40008a08: 98 03 20 01 inc %o4 40008a0c: 92 10 00 18 mov %i0, %o1 40008a10: 7f ff f8 eb call 40006dbc <rtems_rfs_bitmap_open> 40008a14: 90 07 20 2c add %i4, 0x2c, %o0
&group->inode_bitmap_buffer, inodes, group->base + RTEMS_RFS_GROUP_INODE_BITMAP_BLOCK); if (rc > 0)
40008a18: ba 92 20 00 orcc %o0, 0, %i5
40008a1c: 14 80 00 2d bg 40008ad0 <rtems_rfs_group_open+0x164> <== NEVER TAKEN
40008a20: 92 10 00 1a mov %i2, %o1
printf ("rtems-rfs: group-open: could not open inode bitmap: %d: %s\n", rc, strerror (rc)); return rc; } if (rtems_rfs_fs_release_bitmaps (fs))
40008a24: c2 06 00 00 ld [ %i0 ], %g1 40008a28: 80 88 60 01 btst 1, %g1
40008a2c: 02 80 00 44 be 40008b3c <rtems_rfs_group_open+0x1d0> <== ALWAYS TAKEN
40008a30: ba 10 20 00 clr %i5
rtems_rfs_bitmap_release_buffer (fs, &group->block_bitmap); rtems_rfs_bitmap_release_buffer (fs, &group->inode_bitmap); } return 0; }
40008a34: 81 c7 e0 08 ret <== NOT EXECUTED 40008a38: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
40008a3c: 90 10 20 00 clr %o0 40008a40: 13 00 00 20 sethi %hi(0x8000), %o1 40008a44: 40 00 08 60 call 4000abc4 <rtems_rfs_trace> 40008a48: a0 10 00 1b mov %i3, %l0 40008a4c: 80 a2 20 00 cmp %o0, 0
40008a50: 22 bf ff d9 be,a 400089b4 <rtems_rfs_group_open+0x48> <== ALWAYS TAKEN
40008a54: f2 27 00 00 st %i1, [ %i4 ]
printf ("rtems-rfs: group-open: base=%" PRId32 ", blocks=%zd inodes=%zd\n",
40008a58: 96 10 00 10 mov %l0, %o3 <== NOT EXECUTED 40008a5c: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 40008a60: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 40008a64: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 40008a68: 7f ff e8 a4 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008a6c: 90 12 23 68 or %o0, 0x368, %o0 ! 40022b68 <IMFS_node_control_sym_link+0xde0><== NOT EXECUTED
group->base = base;
40008a70: 10 bf ff d1 b 400089b4 <rtems_rfs_group_open+0x48> <== NOT EXECUTED 40008a74: f2 27 00 00 st %i1, [ %i4 ] <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40008a78: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40008a7c: 7f ff fa b2 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40008a80: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
handle->dirty = false;
40008a84: c0 2f 20 20 clrb [ %i4 + 0x20 ] <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
40008a88: 90 10 20 00 clr %o0 <== NOT EXECUTED
handle->bnum = 0;
40008a8c: c0 27 20 24 clr [ %i4 + 0x24 ] <== NOT EXECUTED 40008a90: 13 00 00 20 sethi %hi(0x8000), %o1 <== NOT EXECUTED 40008a94: 40 00 08 4c call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40008a98: c0 27 20 28 clr [ %i4 + 0x28 ] <== NOT EXECUTED 40008a9c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40008aa0: 02 bf ff e5 be 40008a34 <rtems_rfs_group_open+0xc8> <== NOT EXECUTED 40008aa4: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: group-open: could not open block bitmap: %d: %s\n",
40008aa8: 40 00 5a d9 call 4001f60c <strerror> <== NOT EXECUTED 40008aac: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40008ab0: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40008ab4: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED
}
40008ab8: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED
printf ("rtems-rfs: group-open: could not open block bitmap: %d: %s\n",
40008abc: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 40008ac0: 7f ff e8 8e call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008ac4: 90 12 23 a0 or %o0, 0x3a0, %o0 ! 40022ba0 <IMFS_node_control_sym_link+0xe18><== NOT EXECUTED
}
40008ac8: 81 c7 e0 08 ret <== NOT EXECUTED 40008acc: 81 e8 00 00 restore <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40008ad0: 7f ff fa 9d call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40008ad4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
handle->dirty = false;
40008ad8: c0 2f 20 44 clrb [ %i4 + 0x44 ] <== NOT EXECUTED
rtems_rfs_bitmap_close (&group->block_bitmap);
40008adc: 90 10 00 11 mov %l1, %o0 <== NOT EXECUTED
handle->bnum = 0;
40008ae0: c0 27 20 48 clr [ %i4 + 0x48 ] <== NOT EXECUTED 40008ae4: 7f ff f8 c7 call 40006e00 <rtems_rfs_bitmap_close> <== NOT EXECUTED 40008ae8: c0 27 20 4c clr [ %i4 + 0x4c ] <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40008aec: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40008af0: 7f ff fa 95 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40008af4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
handle->dirty = false;
40008af8: c0 2f 20 20 clrb [ %i4 + 0x20 ] <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
40008afc: 90 10 20 00 clr %o0 <== NOT EXECUTED
handle->bnum = 0;
40008b00: c0 27 20 24 clr [ %i4 + 0x24 ] <== NOT EXECUTED 40008b04: 13 00 00 20 sethi %hi(0x8000), %o1 <== NOT EXECUTED 40008b08: 40 00 08 2f call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40008b0c: c0 27 20 28 clr [ %i4 + 0x28 ] <== NOT EXECUTED 40008b10: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40008b14: 02 bf ff c8 be 40008a34 <rtems_rfs_group_open+0xc8> <== NOT EXECUTED 40008b18: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: group-open: could not open inode bitmap: %d: %s\n",
40008b1c: 40 00 5a bc call 4001f60c <strerror> <== NOT EXECUTED 40008b20: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40008b24: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40008b28: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40008b2c: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 40008b30: 7f ff e8 72 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008b34: 90 12 23 e0 or %o0, 0x3e0, %o0 ! 40022be0 <IMFS_node_control_sym_link+0xe58><== NOT EXECUTED 40008b38: 30 bf ff bf b,a 40008a34 <rtems_rfs_group_open+0xc8> <== NOT EXECUTED
rtems_rfs_bitmap_release_buffer (fs, &group->block_bitmap);
40008b3c: d2 07 20 08 ld [ %i4 + 8 ], %o1 40008b40: 7f ff fa 81 call 40007544 <rtems_rfs_buffer_handle_release> 40008b44: 90 10 00 18 mov %i0, %o0
rtems_rfs_bitmap_release_buffer (fs, &group->inode_bitmap);
40008b48: d2 07 20 2c ld [ %i4 + 0x2c ], %o1 40008b4c: 90 10 00 18 mov %i0, %o0 40008b50: 7f ff fa 7d call 40007544 <rtems_rfs_buffer_handle_release> 40008b54: b0 10 00 1d mov %i5, %i0
}
40008b58: 81 c7 e0 08 ret 40008b5c: 81 e8 00 00 restore
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
40008b60: 90 10 20 00 clr %o0 <== NOT EXECUTED 40008b64: 13 00 00 20 sethi %hi(0x8000), %o1 <== NOT EXECUTED 40008b68: 40 00 08 17 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40008b6c: ba 10 20 05 mov 5, %i5 <== NOT EXECUTED 40008b70: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40008b74: 02 bf ff b0 be 40008a34 <rtems_rfs_group_open+0xc8> <== NOT EXECUTED 40008b78: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: group-open: base outside file system range: %d: %s\n",
40008b7c: 40 00 5a a4 call 4001f60c <strerror> <== NOT EXECUTED 40008b80: 90 10 20 05 mov 5, %o0 ! 5 <_TLS_Alignment+0x4> <== NOT EXECUTED 40008b84: 92 10 20 05 mov 5, %o1 <== NOT EXECUTED 40008b88: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40008b8c: 11 10 00 8a sethi %hi(0x40022800), %o0 <== NOT EXECUTED 40008b90: 7f ff e8 5a call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40008b94: 90 12 23 28 or %o0, 0x328, %o0 ! 40022b28 <IMFS_node_control_sym_link+0xda0><== NOT EXECUTED 40008b98: 30 bf ff a7 b,a 40008a34 <rtems_rfs_group_open+0xc8> <== NOT EXECUTED
40008f9c <rtems_rfs_group_usage>: size_t* blocks, size_t* inodes) { int g; *blocks = 0;
40008f9c: c0 22 40 00 clr [ %o1 ] <== NOT EXECUTED
*inodes = 0;
40008fa0: c0 22 80 00 clr [ %o2 ] <== NOT EXECUTED
for (g = 0; g < fs->group_count; g++)
40008fa4: c2 02 20 24 ld [ %o0 + 0x24 ], %g1 <== NOT EXECUTED 40008fa8: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40008fac: 04 80 00 1e ble 40009024 <rtems_rfs_group_usage+0x88> <== NOT EXECUTED 40008fb0: 86 10 20 00 clr %g3 <== NOT EXECUTED 40008fb4: c2 02 20 20 ld [ %o0 + 0x20 ], %g1 <== NOT EXECUTED 40008fb8: 82 00 60 14 add %g1, 0x14, %g1 <== NOT EXECUTED
{ rtems_rfs_group* group = &fs->groups[g]; *blocks +=
40008fbc: da 00 40 00 ld [ %g1 ], %o5 <== NOT EXECUTED 40008fc0: c8 00 60 04 ld [ %g1 + 4 ], %g4 <== NOT EXECUTED 40008fc4: c4 02 40 00 ld [ %o1 ], %g2 <== NOT EXECUTED 40008fc8: 84 00 80 0d add %g2, %o5, %g2 <== NOT EXECUTED 40008fcc: 84 20 80 04 sub %g2, %g4, %g2 <== NOT EXECUTED 40008fd0: c4 22 40 00 st %g2, [ %o1 ] <== NOT EXECUTED
for (g = 0; g < fs->group_count; g++)
40008fd4: 86 00 e0 01 inc %g3 <== NOT EXECUTED
rtems_rfs_bitmap_map_size(&group->block_bitmap) - rtems_rfs_bitmap_map_free (&group->block_bitmap); *inodes +=
40008fd8: c8 00 60 28 ld [ %g1 + 0x28 ], %g4 <== NOT EXECUTED 40008fdc: da 00 60 24 ld [ %g1 + 0x24 ], %o5 <== NOT EXECUTED 40008fe0: c4 02 80 00 ld [ %o2 ], %g2 <== NOT EXECUTED 40008fe4: 84 00 80 0d add %g2, %o5, %g2 <== NOT EXECUTED 40008fe8: 84 20 80 04 sub %g2, %g4, %g2 <== NOT EXECUTED 40008fec: c4 22 80 00 st %g2, [ %o2 ] <== NOT EXECUTED
for (g = 0; g < fs->group_count; g++)
40008ff0: c8 02 20 24 ld [ %o0 + 0x24 ], %g4 <== NOT EXECUTED 40008ff4: 80 a1 00 03 cmp %g4, %g3 <== NOT EXECUTED 40008ff8: 14 bf ff f1 bg 40008fbc <rtems_rfs_group_usage+0x20> <== NOT EXECUTED 40008ffc: 82 00 60 50 add %g1, 0x50, %g1 <== NOT EXECUTED
rtems_rfs_bitmap_map_size (&group->inode_bitmap) - rtems_rfs_bitmap_map_free (&group->inode_bitmap); } if (*blocks > rtems_rfs_fs_blocks (fs))
40009000: c2 02 20 04 ld [ %o0 + 4 ], %g1 <== NOT EXECUTED 40009004: c6 02 40 00 ld [ %o1 ], %g3 <== NOT EXECUTED 40009008: 80 a0 c0 01 cmp %g3, %g1 <== NOT EXECUTED 4000900c: 38 80 00 08 bgu,a 4000902c <rtems_rfs_group_usage+0x90> <== NOT EXECUTED 40009010: c2 22 40 00 st %g1, [ %o1 ] <== NOT EXECUTED
*blocks = rtems_rfs_fs_blocks (fs); if (*inodes > rtems_rfs_fs_inodes (fs))
40009014: c2 02 20 14 ld [ %o0 + 0x14 ], %g1 <== NOT EXECUTED 40009018: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 4000901c: 2a 80 00 02 bcs,a 40009024 <rtems_rfs_group_usage+0x88> <== NOT EXECUTED 40009020: c2 22 80 00 st %g1, [ %o2 ] <== NOT EXECUTED
*inodes = rtems_rfs_fs_inodes (fs); return 0; }
40009024: 81 c3 e0 08 retl <== NOT EXECUTED 40009028: 90 10 20 00 clr %o0 <== NOT EXECUTED
if (*inodes > rtems_rfs_fs_inodes (fs))
4000902c: 10 bf ff fa b 40009014 <rtems_rfs_group_usage+0x78> <== NOT EXECUTED 40009030: c4 02 80 00 ld [ %o2 ], %g2 <== NOT EXECUTED
400092f4 <rtems_rfs_inode_close>: {
400092f4: 9d e3 bf a0 save %sp, -96, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_CLOSE))
400092f8: 90 10 20 00 clr %o0 400092fc: 40 00 06 32 call 4000abc4 <rtems_rfs_trace> 40009300: 13 00 02 00 sethi %hi(0x80000), %o1 40009304: 80 a2 20 00 cmp %o0, 0
40009308: 32 80 00 1d bne,a 4000937c <rtems_rfs_inode_close+0x88> <== NEVER TAKEN
4000930c: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED
rc = rtems_rfs_inode_unload (fs, handle, true);
40009310: 90 10 00 18 mov %i0, %o0 40009314: 94 10 20 01 mov 1, %o2 40009318: 7f ff ff b9 call 400091fc <rtems_rfs_inode_unload> 4000931c: 92 10 00 19 mov %i1, %o1
if ((rc == 0) && (handle->loads > 0))
40009320: b0 92 20 00 orcc %o0, 0, %i0
40009324: 32 80 00 07 bne,a 40009340 <rtems_rfs_inode_close+0x4c> <== NEVER TAKEN
40009328: c0 26 60 08 clr [ %i1 + 8 ] <== NOT EXECUTED
4000932c: c2 06 60 24 ld [ %i1 + 0x24 ], %g1 40009330: 80 a0 60 00 cmp %g1, 0
40009334: 14 80 00 05 bg 40009348 <rtems_rfs_inode_close+0x54> <== NEVER TAKEN
40009338: 90 10 20 00 clr %o0
handle->ino = 0;
4000933c: c0 26 60 08 clr [ %i1 + 8 ]
}
40009340: 81 c7 e0 08 ret 40009344: 81 e8 00 00 restore
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_CLOSE))
40009348: 13 00 02 00 sethi %hi(0x80000), %o1 <== NOT EXECUTED 4000934c: 40 00 06 1e call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40009350: b0 10 20 05 mov 5, %i0 <== NOT EXECUTED 40009354: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40009358: 22 bf ff fa be,a 40009340 <rtems_rfs_inode_close+0x4c> <== NOT EXECUTED 4000935c: c0 26 60 08 clr [ %i1 + 8 ] <== NOT EXECUTED
printf ("rtems-rfs: inode-close: bad loads number: %d\n",
40009360: d2 06 60 24 ld [ %i1 + 0x24 ], %o1 <== NOT EXECUTED 40009364: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 40009368: 7f ff e6 64 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4000936c: 90 12 21 c0 or %o0, 0x1c0, %o0 ! 40022dc0 <IMFS_node_control_sym_link+0x1038><== NOT EXECUTED 40009370: c0 26 60 08 clr [ %i1 + 8 ] <== NOT EXECUTED 40009374: 81 c7 e0 08 ret <== NOT EXECUTED 40009378: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: inode-close: ino: %" PRIu32 "\n", handle->ino);
4000937c: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 40009380: 7f ff e6 5e call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40009384: 90 12 21 98 or %o0, 0x198, %o0 ! 40022d98 <IMFS_node_control_sym_link+0x1010><== NOT EXECUTED
rc = rtems_rfs_inode_unload (fs, handle, true);
40009388: 10 bf ff e3 b 40009314 <rtems_rfs_inode_close+0x20> <== NOT EXECUTED 4000938c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
4000969c <rtems_rfs_inode_create>: {
4000969c: 9d e3 bf 50 save %sp, -176, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_CREATE))
400096a0: 90 10 20 00 clr %o0
{
400096a4: e2 17 a0 5e lduh [ %fp + 0x5e ], %l1 400096a8: e4 17 a0 62 lduh [ %fp + 0x62 ], %l2
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_CREATE))
400096ac: 13 00 10 00 sethi %hi(0x400000), %o1 400096b0: 40 00 05 45 call 4000abc4 <rtems_rfs_trace> 400096b4: a8 0f 30 00 and %i4, -4096, %l4 400096b8: 80 a2 20 00 cmp %o0, 0
400096bc: 02 80 00 2c be 4000976c <rtems_rfs_inode_create+0xd0> <== ALWAYS TAKEN
400096c0: a7 2d 20 10 sll %l4, 0x10, %l3
if (RTEMS_RFS_S_ISDIR (mode))
400096c4: 83 34 e0 10 srl %l3, 0x10, %g1 <== NOT EXECUTED 400096c8: 05 00 00 10 sethi %hi(0x4000), %g2 <== NOT EXECUTED 400096cc: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 400096d0: 02 80 00 11 be 40009714 <rtems_rfs_inode_create+0x78> <== NOT EXECUTED 400096d4: 05 00 00 08 sethi %hi(0x2000), %g2 <== NOT EXECUTED
else if (RTEMS_RFS_S_ISCHR (mode))
400096d8: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 400096dc: 02 80 00 9f be 40009958 <rtems_rfs_inode_create+0x2bc> <== NOT EXECUTED 400096e0: 05 00 00 18 sethi %hi(0x6000), %g2 <== NOT EXECUTED
else if (RTEMS_RFS_S_ISBLK (mode))
400096e4: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 400096e8: 02 80 00 7a be 400098d0 <rtems_rfs_inode_create+0x234> <== NOT EXECUTED 400096ec: 05 00 00 20 sethi %hi(0x8000), %g2 <== NOT EXECUTED
else if (RTEMS_RFS_S_ISREG (mode))
400096f0: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 400096f4: 02 80 00 9c be 40009964 <rtems_rfs_inode_create+0x2c8> <== NOT EXECUTED 400096f8: 05 00 00 28 sethi %hi(0xa000), %g2 <== NOT EXECUTED
else if (RTEMS_RFS_S_ISLNK (mode))
400096fc: 80 a0 40 02 cmp %g1, %g2 <== NOT EXECUTED 40009700: 22 80 00 9c be,a 40009970 <rtems_rfs_inode_create+0x2d4> <== NOT EXECUTED 40009704: 2d 10 00 8b sethi %hi(0x40022c00), %l6 <== NOT EXECUTED
const char* type = "unknown";
40009708: 2d 10 00 8b sethi %hi(0x40022c00), %l6 <== NOT EXECUTED 4000970c: 10 80 00 04 b 4000971c <rtems_rfs_inode_create+0x80> <== NOT EXECUTED 40009710: ac 15 a2 40 or %l6, 0x240, %l6 ! 40022e40 <IMFS_node_control_sym_link+0x10b8><== NOT EXECUTED
type = "dir";
40009714: 2d 10 00 8b sethi %hi(0x40022c00), %l6 <== NOT EXECUTED 40009718: ac 15 a2 20 or %l6, 0x220, %l6 ! 40022e20 <IMFS_node_control_sym_link+0x1098><== NOT EXECUTED
printf("rtems-rfs: inode-create: parent:%" PRIu32 " name:", parent);
4000971c: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 40009720: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 40009724: 7f ff e5 75 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40009728: 90 12 22 48 or %o0, 0x248, %o0 ! 40022e48 <IMFS_node_control_sym_link+0x10c0><== NOT EXECUTED
for (c = 0; c < length; c++)
4000972c: a0 10 00 1a mov %i2, %l0 <== NOT EXECUTED 40009730: 80 a6 e0 00 cmp %i3, 0 <== NOT EXECUTED 40009734: 02 80 00 08 be 40009754 <rtems_rfs_inode_create+0xb8> <== NOT EXECUTED 40009738: aa 06 c0 1a add %i3, %i2, %l5 <== NOT EXECUTED
printf ("%c", name[c]);
4000973c: 40 00 54 9d call 4001e9b0 <putchar> <== NOT EXECUTED 40009740: d0 4c 00 00 ldsb [ %l0 ], %o0 <== NOT EXECUTED
for (c = 0; c < length; c++)
40009744: a0 04 20 01 inc %l0 <== NOT EXECUTED 40009748: 80 a5 40 10 cmp %l5, %l0 <== NOT EXECUTED 4000974c: 12 bf ff fc bne 4000973c <rtems_rfs_inode_create+0xa0> <== NOT EXECUTED 40009750: 01 00 00 00 nop <== NOT EXECUTED
printf (" type:%s mode:%04x (%03o)\n", type, mode, mode & ((1 << 10) - 1));
40009754: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 40009758: 96 0f 23 ff and %i4, 0x3ff, %o3 <== NOT EXECUTED 4000975c: 94 10 00 1c mov %i4, %o2 <== NOT EXECUTED 40009760: 92 10 00 16 mov %l6, %o1 <== NOT EXECUTED 40009764: 7f ff e5 65 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40009768: 90 12 22 78 or %o0, 0x278, %o0 <== NOT EXECUTED
switch (mode & RTEMS_RFS_S_IFMT)
4000976c: 85 34 e0 10 srl %l3, 0x10, %g2 40009770: 03 00 00 18 sethi %hi(0x6000), %g1 40009774: 80 a0 80 01 cmp %g2, %g1
40009778: 02 80 00 12 be 400097c0 <rtems_rfs_inode_create+0x124> <== NEVER TAKEN
4000977c: 92 10 00 19 mov %i1, %o1
40009780: 08 80 00 0a bleu 400097a8 <rtems_rfs_inode_create+0x10c>
40009784: 03 3f ff f8 sethi %hi(0xffffe000), %g1 40009788: 03 3f ff f4 sethi %hi(0xffffd000), %g1 4000978c: 05 00 00 20 sethi %hi(0x8000), %g2 40009790: 82 0f 00 01 and %i4, %g1, %g1 40009794: 80 a0 40 02 cmp %g1, %g2
40009798: 02 80 00 0a be 400097c0 <rtems_rfs_inode_create+0x124> <== ALWAYS TAKEN
4000979c: a0 10 20 16 mov 0x16, %l0
}
400097a0: 81 c7 e0 08 ret 400097a4: 91 e8 00 10 restore %g0, %l0, %o0
switch (mode & RTEMS_RFS_S_IFMT)
400097a8: a8 05 00 01 add %l4, %g1, %l4 400097ac: 03 00 00 34 sethi %hi(0xd000), %g1 400097b0: 80 8d 00 01 btst %l4, %g1
400097b4: 12 bf ff fb bne 400097a0 <rtems_rfs_inode_create+0x104> <== NEVER TAKEN
400097b8: a0 10 20 16 mov 0x16, %l0
rc = rtems_rfs_group_bitmap_alloc (fs, goal, true, &bit);
400097bc: 92 10 00 19 mov %i1, %o1 400097c0: 94 10 20 01 mov 1, %o2 400097c4: 96 07 bf d8 add %fp, -40, %o3 400097c8: 7f ff fd 19 call 40008c2c <rtems_rfs_group_bitmap_alloc> 400097cc: 90 10 00 18 mov %i0, %o0
*ino = bit;
400097d0: d2 07 bf d8 ld [ %fp + -40 ], %o1 400097d4: c2 07 a0 64 ld [ %fp + 0x64 ], %g1
if (rc > 0)
400097d8: a0 92 20 00 orcc %o0, 0, %l0
400097dc: 14 bf ff f1 bg 400097a0 <rtems_rfs_inode_create+0x104>
400097e0: d2 20 40 00 st %o1, [ %g1 ]
rc = rtems_rfs_inode_open (fs, *ino, &inode, true);
400097e4: 96 10 20 01 mov 1, %o3 400097e8: 94 07 bf d8 add %fp, -40, %o2 400097ec: 7f ff fe 49 call 40009110 <rtems_rfs_inode_open> 400097f0: 90 10 00 18 mov %i0, %o0
if (rc > 0)
400097f4: a0 92 20 00 orcc %o0, 0, %l0
400097f8: 14 80 00 50 bg 40009938 <rtems_rfs_inode_create+0x29c> <== NEVER TAKEN
400097fc: 98 10 00 12 mov %l2, %o4
rc = rtems_rfs_inode_initialise (&inode, links, mode, uid, gid);
40009800: 96 10 00 11 mov %l1, %o3 40009804: 94 10 00 1c mov %i4, %o2 40009808: 92 10 00 1d mov %i5, %o1 4000980c: 7f ff ff 56 call 40009564 <rtems_rfs_inode_initialise> 40009810: 90 07 bf d8 add %fp, -40, %o0
if (rc > 0)
40009814: a0 92 20 00 orcc %o0, 0, %l0
40009818: 14 80 00 45 bg 4000992c <rtems_rfs_inode_create+0x290> <== NEVER TAKEN
4000981c: 03 10 00 00 sethi %hi(0x40000000), %g1
if (RTEMS_RFS_S_ISDIR (mode))
40009820: 80 a4 c0 01 cmp %l3, %g1
40009824: 02 80 00 2e be 400098dc <rtems_rfs_inode_create+0x240>
40009828: c2 07 a0 64 ld [ %fp + 0x64 ], %g1
rc = rtems_rfs_inode_open (fs, parent, &parent_inode, true);
4000982c: 96 10 20 01 mov 1, %o3 40009830: 94 07 bf b0 add %fp, -80, %o2 40009834: 92 10 00 19 mov %i1, %o1 40009838: 7f ff fe 36 call 40009110 <rtems_rfs_inode_open> 4000983c: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40009840: a0 92 20 00 orcc %o0, 0, %l0
40009844: 14 80 00 33 bg 40009910 <rtems_rfs_inode_create+0x274> <== NEVER TAKEN
40009848: c2 07 a0 64 ld [ %fp + 0x64 ], %g1
rc = rtems_rfs_dir_add_entry (fs, &parent_inode, name, length, *ino);
4000984c: d8 00 40 00 ld [ %g1 ], %o4 40009850: 96 10 00 1b mov %i3, %o3 40009854: 94 10 00 1a mov %i2, %o2 40009858: 92 07 bf b0 add %fp, -80, %o1 4000985c: 40 00 2e d3 call 400153a8 <rtems_rfs_dir_add_entry> 40009860: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40009864: a0 92 20 00 orcc %o0, 0, %l0
40009868: 14 80 00 44 bg 40009978 <rtems_rfs_inode_create+0x2dc> <== NEVER TAKEN
4000986c: 03 10 00 00 sethi %hi(0x40000000), %g1
if (RTEMS_RFS_S_ISDIR (mode))
40009870: 80 a4 c0 01 cmp %l3, %g1
40009874: 02 80 00 4b be 400099a0 <rtems_rfs_inode_create+0x304>
40009878: c4 07 bf bc ld [ %fp + -68 ], %g2
rc = rtems_rfs_inode_time_stamp_now (&parent_inode, true, true);
4000987c: 94 10 20 01 mov 1, %o2 40009880: 92 10 20 01 mov 1, %o1 40009884: 7f ff ff 0d call 400094b8 <rtems_rfs_inode_time_stamp_now> 40009888: 90 07 bf b0 add %fp, -80, %o0
if (rc > 0)
4000988c: a0 92 20 00 orcc %o0, 0, %l0
40009890: 14 80 00 20 bg 40009910 <rtems_rfs_inode_create+0x274> <== NEVER TAKEN
40009894: 92 07 bf b0 add %fp, -80, %o1
rc = rtems_rfs_inode_close (fs, &parent_inode);
40009898: 7f ff fe 97 call 400092f4 <rtems_rfs_inode_close> 4000989c: 90 10 00 18 mov %i0, %o0
rtems_rfs_inode_delete (fs, &inode);
400098a0: 92 07 bf d8 add %fp, -40, %o1
rc = rtems_rfs_inode_close (fs, &parent_inode);
400098a4: a0 10 00 08 mov %o0, %l0
if (rc > 0)
400098a8: 80 a4 20 00 cmp %l0, 0
400098ac: 14 80 00 57 bg 40009a08 <rtems_rfs_inode_create+0x36c> <== NEVER TAKEN
400098b0: 90 10 00 18 mov %i0, %o0
rc = rtems_rfs_inode_close (fs, &inode);
400098b4: 7f ff fe 90 call 400092f4 <rtems_rfs_inode_close> 400098b8: 01 00 00 00 nop
if (rc > 0)
400098bc: a0 92 20 00 orcc %o0, 0, %l0
400098c0: 14 80 00 1f bg 4000993c <rtems_rfs_inode_create+0x2a0> <== NEVER TAKEN
400098c4: c2 07 a0 64 ld [ %fp + 0x64 ], %g1
return 0;
400098c8: 10 bf ff b6 b 400097a0 <rtems_rfs_inode_create+0x104> 400098cc: a0 10 20 00 clr %l0
type = "block";
400098d0: 2d 10 00 8b sethi %hi(0x40022c00), %l6 <== NOT EXECUTED 400098d4: 10 bf ff 92 b 4000971c <rtems_rfs_inode_create+0x80> <== NOT EXECUTED 400098d8: ac 15 a0 50 or %l6, 0x50, %l6 ! 40022c50 <IMFS_node_control_sym_link+0xec8><== NOT EXECUTED
rc = rtems_rfs_dir_add_entry (fs, &inode, ".", 1, *ino);
400098dc: d8 00 40 00 ld [ %g1 ], %o4 400098e0: 96 10 20 01 mov 1, %o3 400098e4: 92 07 bf d8 add %fp, -40, %o1 400098e8: 15 10 00 86 sethi %hi(0x40021800), %o2 400098ec: 90 10 00 18 mov %i0, %o0 400098f0: 40 00 2e ae call 400153a8 <rtems_rfs_dir_add_entry> 400098f4: 94 12 a1 08 or %o2, 0x108, %o2
if (rc == 0)
400098f8: a0 92 20 00 orcc %o0, 0, %l0
400098fc: 02 80 00 3b be 400099e8 <rtems_rfs_inode_create+0x34c> <== ALWAYS TAKEN
40009900: 98 10 00 19 mov %i1, %o4
if (rc > 0)
40009904: 80 a4 20 00 cmp %l0, 0
40009908: 04 bf ff ca ble 40009830 <rtems_rfs_inode_create+0x194> <== ALWAYS TAKEN
4000990c: 96 10 20 01 mov 1, %o3
rtems_rfs_inode_delete (fs, &inode);
40009910: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40009914: 7f ff fe 9f call 40009390 <rtems_rfs_inode_delete> <== NOT EXECUTED 40009918: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
4000991c: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40009920: 7f ff fe 75 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40009924: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
return rc;
40009928: 30 bf ff 9e b,a 400097a0 <rtems_rfs_inode_create+0x104> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
4000992c: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40009930: 7f ff fe 71 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40009934: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
return rtems_rfs_group_bitmap_free (fs, true, bit);
40009938: c2 07 a0 64 ld [ %fp + 0x64 ], %g1 <== NOT EXECUTED 4000993c: d4 00 40 00 ld [ %g1 ], %o2 <== NOT EXECUTED 40009940: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED 40009944: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40009948: 7f ff fd 54 call 40008e98 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED 4000994c: b0 10 00 10 mov %l0, %i0 <== NOT EXECUTED
}
40009950: 81 c7 e0 08 ret <== NOT EXECUTED 40009954: 81 e8 00 00 restore <== NOT EXECUTED
type = "char";
40009958: 2d 10 00 8b sethi %hi(0x40022c00), %l6 <== NOT EXECUTED 4000995c: 10 bf ff 70 b 4000971c <rtems_rfs_inode_create+0x80> <== NOT EXECUTED 40009960: ac 15 a2 30 or %l6, 0x230, %l6 ! 40022e30 <IMFS_node_control_sym_link+0x10a8><== NOT EXECUTED
type = "file";
40009964: 2d 10 00 8b sethi %hi(0x40022c00), %l6 <== NOT EXECUTED 40009968: 10 bf ff 6d b 4000971c <rtems_rfs_inode_create+0x80> <== NOT EXECUTED 4000996c: ac 15 a2 28 or %l6, 0x228, %l6 ! 40022e28 <IMFS_node_control_sym_link+0x10a0><== NOT EXECUTED
type = "link";
40009970: 10 bf ff 6b b 4000971c <rtems_rfs_inode_create+0x80> <== NOT EXECUTED 40009974: ac 15 a2 38 or %l6, 0x238, %l6 <== NOT EXECUTED
rtems_rfs_inode_delete (fs, &inode);
40009978: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 4000997c: 7f ff fe 85 call 40009390 <rtems_rfs_inode_delete> <== NOT EXECUTED 40009980: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40009984: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40009988: 7f ff fe 5b call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 4000998c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode);
40009990: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 40009994: 7f ff fe 58 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40009998: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
return rc;
4000999c: 30 bf ff 81 b,a 400097a0 <rtems_rfs_inode_create+0x104> <== NOT EXECUTED
links = rtems_rfs_read_u16 (&handle->node->links);
400099a0: c6 08 80 00 ldub [ %g2 ], %g3 400099a4: 87 28 e0 08 sll %g3, 8, %g3 400099a8: c2 08 a0 01 ldub [ %g2 + 1 ], %g1 400099ac: 82 10 40 03 or %g1, %g3, %g1
if (links == 0xffff)
400099b0: 07 00 00 3f sethi %hi(0xfc00), %g3 400099b4: 86 10 e3 ff or %g3, 0x3ff, %g3 ! ffff <_ISR_Stack_size+0xefff> 400099b8: 80 a0 40 03 cmp %g1, %g3
400099bc: 22 80 00 19 be,a 40009a20 <rtems_rfs_inode_create+0x384> <== NEVER TAKEN
400099c0: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED
rtems_rfs_inode_set_links (&parent_inode,
400099c4: 82 00 60 01 inc %g1
rtems_rfs_write_u16 (&handle->node->links, links);
400099c8: 87 28 60 10 sll %g1, 0x10, %g3 400099cc: 87 30 e0 18 srl %g3, 0x18, %g3 400099d0: c6 28 80 00 stb %g3, [ %g2 ] 400099d4: c4 07 bf bc ld [ %fp + -68 ], %g2 400099d8: c2 28 a0 01 stb %g1, [ %g2 + 1 ]
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400099dc: 82 10 20 01 mov 1, %g1
}
400099e0: 10 bf ff a7 b 4000987c <rtems_rfs_inode_create+0x1e0> 400099e4: c2 2f bf c0 stb %g1, [ %fp + -64 ]
rc = rtems_rfs_dir_add_entry (fs, &inode, "..", 2, parent);
400099e8: 96 10 20 02 mov 2, %o3 400099ec: 92 07 bf d8 add %fp, -40, %o1 400099f0: 15 10 00 8b sethi %hi(0x40022c00), %o2 400099f4: 90 10 00 18 mov %i0, %o0 400099f8: 40 00 2e 6c call 400153a8 <rtems_rfs_dir_add_entry> 400099fc: 94 12 a2 98 or %o2, 0x298, %o2 40009a00: 10 bf ff c1 b 40009904 <rtems_rfs_inode_create+0x268> 40009a04: a0 10 00 08 mov %o0, %l0
rtems_rfs_inode_delete (fs, &inode);
40009a08: 7f ff fe 62 call 40009390 <rtems_rfs_inode_delete> <== NOT EXECUTED 40009a0c: 01 00 00 00 nop <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40009a10: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40009a14: 7f ff fe 38 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40009a18: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
return rc;
40009a1c: 30 bf ff 61 b,a 400097a0 <rtems_rfs_inode_create+0x104> <== NOT EXECUTED 40009a20: 10 bf ff ec b 400099d0 <rtems_rfs_inode_create+0x334> <== NOT EXECUTED 40009a24: 86 10 20 00 clr %g3 <== NOT EXECUTED
40009390 <rtems_rfs_inode_delete>: } int rtems_rfs_inode_delete (rtems_rfs_file_system* fs, rtems_rfs_inode_handle* handle) {
40009390: 9d e3 bf 50 save %sp, -176, %sp
int rc = 0; if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_DELETE))
40009394: 90 10 20 00 clr %o0 40009398: 40 00 06 0b call 4000abc4 <rtems_rfs_trace> 4000939c: 13 00 20 00 sethi %hi(0x800000), %o1 400093a0: 80 a2 20 00 cmp %o0, 0
400093a4: 02 80 00 0b be 400093d0 <rtems_rfs_inode_delete+0x40> <== ALWAYS TAKEN
400093a8: c2 06 60 0c ld [ %i1 + 0xc ], %g1
printf("rtems-rfs: inode-delete: ino:%" PRIu32 " loaded:%s\n",
400093ac: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 400093b0: 02 80 00 31 be 40009474 <rtems_rfs_inode_delete+0xe4> <== NOT EXECUTED 400093b4: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 400093b8: 15 10 00 8b sethi %hi(0x40022c00), %o2 <== NOT EXECUTED 400093bc: 94 12 a0 f8 or %o2, 0xf8, %o2 ! 40022cf8 <IMFS_node_control_sym_link+0xf70><== NOT EXECUTED 400093c0: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 400093c4: 7f ff e6 4d call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400093c8: 90 12 21 f0 or %o0, 0x1f0, %o0 ! 40022df0 <IMFS_node_control_sym_link+0x1068><== NOT EXECUTED
rtems_rfs_inode_ino (handle), rtems_rfs_inode_is_loaded (handle) ? "yes" : "no"); if (rtems_rfs_inode_is_loaded (handle))
400093cc: c2 06 60 0c ld [ %i1 + 0xc ], %g1 <== NOT EXECUTED
400093d0: 80 a0 60 00 cmp %g1, 0
400093d4: 02 80 00 09 be 400093f8 <rtems_rfs_inode_delete+0x68> <== NEVER TAKEN
400093d8: ba 10 20 00 clr %i5
return rtems_rfs_group_bitmap_free (fs, true, bit);
400093dc: d4 06 60 08 ld [ %i1 + 8 ], %o2 400093e0: 92 10 20 01 mov 1, %o1 400093e4: 7f ff fe ad call 40008e98 <rtems_rfs_group_bitmap_free> 400093e8: 90 10 00 18 mov %i0, %o0
/* * Free the ino number. */ rc = rtems_rfs_inode_free (fs, handle->ino); if (rc > 0)
400093ec: ba 92 20 00 orcc %o0, 0, %i5
400093f0: 04 80 00 04 ble 40009400 <rtems_rfs_inode_delete+0x70> <== ALWAYS TAKEN
400093f4: 92 10 00 19 mov %i1, %o1
if (rrc > 0) rc = rrc; } } return rc; }
400093f8: 81 c7 e0 08 ret 400093fc: 91 e8 00 1d restore %g0, %i5, %o0
rc = rtems_rfs_block_map_open (fs, handle, &map);
40009400: 94 07 bf b0 add %fp, -80, %o2 40009404: 40 00 2b 4a call 4001412c <rtems_rfs_block_map_open> 40009408: 90 10 00 18 mov %i0, %o0
if (rc == 0)
4000940c: ba 92 20 00 orcc %o0, 0, %i5
40009410: 12 bf ff fa bne 400093f8 <rtems_rfs_inode_delete+0x68> <== NEVER TAKEN
40009414: 92 07 bf b0 add %fp, -80, %o1
rrc = rtems_rfs_block_map_free_all (fs, &map);
40009418: 40 00 2e 4d call 40014d4c <rtems_rfs_block_map_free_all> 4000941c: 90 10 00 18 mov %i0, %o0
rc = rtems_rfs_block_map_close (fs, &map);
40009420: 92 07 bf b0 add %fp, -80, %o1
rrc = rtems_rfs_block_map_free_all (fs, &map);
40009424: b8 10 00 08 mov %o0, %i4
rc = rtems_rfs_block_map_close (fs, &map);
40009428: 40 00 2b a0 call 400142a8 <rtems_rfs_block_map_close> 4000942c: 90 10 00 18 mov %i0, %o0
rc = rtems_rfs_buffer_handle_release (fs, &handle->buffer);
40009430: b6 06 60 10 add %i1, 0x10, %i3
rc = rtems_rfs_block_map_close (fs, &map);
40009434: ba 10 00 08 mov %o0, %i5
memset (handle->node, 0xff, RTEMS_RFS_INODE_SIZE);
40009438: 94 10 20 38 mov 0x38, %o2 4000943c: d0 06 60 0c ld [ %i1 + 0xc ], %o0
if (rc > 0)
40009440: 80 a7 60 00 cmp %i5, 0
40009444: 04 80 00 0f ble 40009480 <rtems_rfs_inode_delete+0xf0> <== ALWAYS TAKEN
40009448: 92 10 20 ff mov 0xff, %o1
memset (handle->node, 0xff, RTEMS_RFS_INODE_SIZE);
4000944c: 40 00 55 14 call 4001e89c <memset> <== NOT EXECUTED 40009450: 01 00 00 00 nop <== NOT EXECUTED
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40009454: 82 10 20 01 mov 1, %g1 ! 1 <_TLS_Alignment> <== NOT EXECUTED 40009458: c2 2e 60 10 stb %g1, [ %i1 + 0x10 ] <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_release (fs, &handle->buffer);
4000945c: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40009460: 7f ff f8 39 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40009464: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
handle->loads = 0;
40009468: c0 26 60 24 clr [ %i1 + 0x24 ] <== NOT EXECUTED
handle->node = NULL;
4000946c: 10 bf ff e3 b 400093f8 <rtems_rfs_inode_delete+0x68> <== NOT EXECUTED 40009470: c0 26 60 0c clr [ %i1 + 0xc ] <== NOT EXECUTED
printf("rtems-rfs: inode-delete: ino:%" PRIu32 " loaded:%s\n",
40009474: 15 10 00 8b sethi %hi(0x40022c00), %o2 <== NOT EXECUTED 40009478: 10 bf ff d2 b 400093c0 <rtems_rfs_inode_delete+0x30> <== NOT EXECUTED 4000947c: 94 12 a1 00 or %o2, 0x100, %o2 ! 40022d00 <IMFS_node_control_sym_link+0xf78><== NOT EXECUTED
memset (handle->node, 0xff, RTEMS_RFS_INODE_SIZE);
40009480: 40 00 55 07 call 4001e89c <memset> 40009484: 01 00 00 00 nop
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40009488: 82 10 20 01 mov 1, %g1 ! 1 <_TLS_Alignment> 4000948c: c2 2e 60 10 stb %g1, [ %i1 + 0x10 ]
rc = rtems_rfs_buffer_handle_release (fs, &handle->buffer);
40009490: 92 10 00 1b mov %i3, %o1 40009494: 7f ff f8 2c call 40007544 <rtems_rfs_buffer_handle_release> 40009498: 90 10 00 18 mov %i0, %o0
handle->loads = 0;
4000949c: c0 26 60 24 clr [ %i1 + 0x24 ]
rc = rtems_rfs_buffer_handle_release (fs, &handle->buffer);
400094a0: ba 10 00 08 mov %o0, %i5
if (rrc > 0)
400094a4: 80 a7 20 00 cmp %i4, 0
400094a8: 04 bf ff d4 ble 400093f8 <rtems_rfs_inode_delete+0x68> <== ALWAYS TAKEN
400094ac: c0 26 60 0c clr [ %i1 + 0xc ]
400094b0: 10 bf ff d2 b 400093f8 <rtems_rfs_inode_delete+0x68> <== NOT EXECUTED 400094b4: ba 10 00 1c mov %i4, %i5 <== NOT EXECUTED
4000905c <rtems_rfs_inode_load>: } int rtems_rfs_inode_load (rtems_rfs_file_system* fs, rtems_rfs_inode_handle* handle) {
4000905c: 9d e3 bf a0 save %sp, -96, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_LOAD))
40009060: 90 10 20 00 clr %o0 40009064: 40 00 06 d8 call 4000abc4 <rtems_rfs_trace> 40009068: 13 00 04 00 sethi %hi(0x100000), %o1 4000906c: 80 a2 20 00 cmp %o0, 0
40009070: 02 80 00 0c be 400090a0 <rtems_rfs_inode_load+0x44> <== ALWAYS TAKEN
40009074: c2 06 60 0c ld [ %i1 + 0xc ], %g1
printf ("rtems-rfs: inode-load: ino=%" PRIu32 " loads=%i loaded=%s\n",
40009078: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 4000907c: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40009080: 02 80 00 11 be 400090c4 <rtems_rfs_inode_load+0x68> <== NOT EXECUTED 40009084: d4 06 60 24 ld [ %i1 + 0x24 ], %o2 <== NOT EXECUTED 40009088: 17 10 00 8b sethi %hi(0x40022c00), %o3 <== NOT EXECUTED 4000908c: 96 12 e0 f8 or %o3, 0xf8, %o3 ! 40022cf8 <IMFS_node_control_sym_link+0xf70><== NOT EXECUTED 40009090: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 40009094: 7f ff e7 19 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40009098: 90 12 21 08 or %o0, 0x108, %o0 ! 40022d08 <IMFS_node_control_sym_link+0xf80><== NOT EXECUTED
/* * An inode does not move so once loaded no need to do again. */ if (!rtems_rfs_inode_is_loaded (handle))
4000909c: c2 06 60 0c ld [ %i1 + 0xc ], %g1 <== NOT EXECUTED
400090a0: 80 a0 60 00 cmp %g1, 0
400090a4: 22 80 00 0b be,a 400090d0 <rtems_rfs_inode_load+0x74>
400090a8: d4 06 60 1c ld [ %i1 + 0x1c ], %o2
handle->node = rtems_rfs_buffer_data (&handle->buffer); handle->node += handle->offset; } handle->loads++;
400090ac: c2 06 60 24 ld [ %i1 + 0x24 ], %g1 400090b0: 82 00 60 01 inc %g1 400090b4: c2 26 60 24 st %g1, [ %i1 + 0x24 ]
return 0;
400090b8: b0 10 20 00 clr %i0
}
400090bc: 81 c7 e0 08 ret 400090c0: 81 e8 00 00 restore
printf ("rtems-rfs: inode-load: ino=%" PRIu32 " loads=%i loaded=%s\n",
400090c4: 17 10 00 8b sethi %hi(0x40022c00), %o3 <== NOT EXECUTED 400090c8: 10 bf ff f2 b 40009090 <rtems_rfs_inode_load+0x34> <== NOT EXECUTED 400090cc: 96 12 e1 00 or %o3, 0x100, %o3 ! 40022d00 <IMFS_node_control_sym_link+0xf78><== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs,&handle->buffer,
400090d0: 90 10 00 18 mov %i0, %o0 400090d4: 96 10 20 01 mov 1, %o3 400090d8: 7f ff f8 52 call 40007220 <rtems_rfs_buffer_handle_request> 400090dc: 92 06 60 10 add %i1, 0x10, %o1
if (rc > 0)
400090e0: b0 92 20 00 orcc %o0, 0, %i0
400090e4: 14 bf ff f6 bg 400090bc <rtems_rfs_inode_load+0x60> <== NEVER TAKEN
400090e8: 01 00 00 00 nop
handle->node = rtems_rfs_buffer_data (&handle->buffer);
400090ec: c2 06 60 18 ld [ %i1 + 0x18 ], %g1
handle->node += handle->offset;
400090f0: c4 00 60 1c ld [ %g1 + 0x1c ], %g2 400090f4: c6 06 60 20 ld [ %i1 + 0x20 ], %g3 400090f8: 83 28 e0 03 sll %g3, 3, %g1 400090fc: 82 20 40 03 sub %g1, %g3, %g1 40009100: 83 28 60 03 sll %g1, 3, %g1 40009104: 82 00 80 01 add %g2, %g1, %g1 40009108: 10 bf ff e9 b 400090ac <rtems_rfs_inode_load+0x50> 4000910c: c2 26 60 0c st %g1, [ %i1 + 0xc ]
40009110 <rtems_rfs_inode_open>: {
40009110: 9d e3 bf a0 save %sp, -96, %sp
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_OPEN))
40009114: 90 10 20 00 clr %o0 40009118: 40 00 06 ab call 4000abc4 <rtems_rfs_trace> 4000911c: 13 00 01 00 sethi %hi(0x40000), %o1 40009120: 80 a2 20 00 cmp %o0, 0
40009124: 32 80 00 31 bne,a 400091e8 <rtems_rfs_inode_open+0xd8> <== NEVER TAKEN
40009128: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED
if (ino == RTEMS_RFS_EMPTY_INO)
4000912c: 80 a6 60 00 cmp %i1, 0
40009130: 02 80 00 2b be 400091dc <rtems_rfs_inode_open+0xcc> <== NEVER TAKEN
40009134: 82 06 7f ff add %i1, -1, %g1
if ((ino - RTEMS_RFS_ROOT_INO) > rtems_rfs_fs_inodes (fs))
40009138: c4 06 20 14 ld [ %i0 + 0x14 ], %g2 4000913c: 80 a0 40 02 cmp %g1, %g2
40009140: 18 80 00 27 bgu 400091dc <rtems_rfs_inode_open+0xcc> <== NEVER TAKEN
40009144: 80 a6 e0 00 cmp %i3, 0
group = gino / fs->group_inodes;
40009148: fa 06 20 2c ld [ %i0 + 0x2c ], %i5
handle->block = rtems_rfs_group_block (&fs->groups[group], index);
4000914c: f8 06 20 20 ld [ %i0 + 0x20 ], %i4
index = (gino / fs->inodes_per_block) + RTEMS_RFS_GROUP_INODE_BLOCK;
40009150: c8 06 20 30 ld [ %i0 + 0x30 ], %g4
gino = gino % fs->group_inodes;
40009154: 81 80 20 00 wr %g0, %y 40009158: 01 00 00 00 nop 4000915c: 01 00 00 00 nop 40009160: 01 00 00 00 nop 40009164: 84 70 40 1d udiv %g1, %i5, %g2
handle->block = rtems_rfs_group_block (&fs->groups[group], index);
40009168: 87 28 a0 02 sll %g2, 2, %g3 4000916c: 86 00 c0 02 add %g3, %g2, %g3
gino = gino % fs->group_inodes;
40009170: 84 58 80 1d smul %g2, %i5, %g2
handle->block = rtems_rfs_group_block (&fs->groups[group], index);
40009174: 87 28 e0 04 sll %g3, 4, %g3 40009178: c6 07 00 03 ld [ %i4 + %g3 ], %g3
gino = gino % fs->group_inodes;
4000917c: 82 20 40 02 sub %g1, %g2, %g1
handle->ino = ino;
40009180: f2 26 a0 08 st %i1, [ %i2 + 8 ]
handle->offset = gino % fs->inodes_per_block;
40009184: 81 80 20 00 wr %g0, %y 40009188: 01 00 00 00 nop 4000918c: 01 00 00 00 nop 40009190: 01 00 00 00 nop 40009194: 84 70 40 04 udiv %g1, %g4, %g2
handle->node = NULL;
40009198: c0 26 a0 0c clr [ %i2 + 0xc ]
handle->offset = gino % fs->inodes_per_block;
4000919c: 88 58 80 04 smul %g2, %g4, %g4
handle->loads = 0;
400091a0: c0 26 a0 24 clr [ %i2 + 0x24 ]
handle->offset = gino % fs->inodes_per_block;
400091a4: 82 20 40 04 sub %g1, %g4, %g1
index = (gino / fs->inodes_per_block) + RTEMS_RFS_GROUP_INODE_BLOCK;
400091a8: 84 00 a0 02 add %g2, 2, %g2
handle->offset = gino % fs->inodes_per_block;
400091ac: c2 26 a0 20 st %g1, [ %i2 + 0x20 ]
handle->block = rtems_rfs_group_block (&fs->groups[group], index);
400091b0: 84 00 c0 02 add %g3, %g2, %g2
handle->dirty = false;
400091b4: c0 2e a0 10 clrb [ %i2 + 0x10 ]
rc = rtems_rfs_buffer_handle_open (fs, &handle->buffer);
400091b8: 82 10 20 00 clr %g1
handle->block = rtems_rfs_group_block (&fs->groups[group], index);
400091bc: c4 26 a0 1c st %g2, [ %i2 + 0x1c ]
handle->bnum = 0;
400091c0: c0 26 a0 14 clr [ %i2 + 0x14 ]
if ((rc == 0) && load)
400091c4: 12 80 00 04 bne 400091d4 <rtems_rfs_inode_open+0xc4> <== ALWAYS TAKEN
400091c8: c0 26 a0 18 clr [ %i2 + 0x18 ]
}
400091cc: 81 c7 e0 08 ret <== NOT EXECUTED 400091d0: 91 e8 00 01 restore %g0, %g1, %o0 <== NOT EXECUTED
rc = rtems_rfs_inode_load (fs, handle);
400091d4: 7f ff ff a2 call 4000905c <rtems_rfs_inode_load> 400091d8: 93 e8 00 1a restore %g0, %i2, %o1
return EINVAL;
400091dc: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED
}
400091e0: 81 c7 e0 08 ret <== NOT EXECUTED 400091e4: 91 e8 00 01 restore %g0, %g1, %o0 <== NOT EXECUTED
printf ("rtems-rfs: inode-open: ino: %" PRIu32 "\n", ino);
400091e8: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 400091ec: 7f ff e6 c3 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400091f0: 90 12 21 40 or %o0, 0x140, %o0 ! 40022d40 <IMFS_node_control_sym_link+0xfb8><== NOT EXECUTED
if (ino == RTEMS_RFS_EMPTY_INO)
400091f4: 10 bf ff cf b 40009130 <rtems_rfs_inode_open+0x20> <== NOT EXECUTED 400091f8: 80 a6 60 00 cmp %i1, 0 <== NOT EXECUTED
400094b8 <rtems_rfs_inode_time_stamp_now>: int rtems_rfs_inode_time_stamp_now (rtems_rfs_inode_handle* handle, bool atime, bool mtime) {
400094b8: 9d e3 bf a0 save %sp, -96, %sp
time_t now; if (!rtems_rfs_inode_is_loaded (handle))
400094bc: c2 06 20 0c ld [ %i0 + 0xc ], %g1 400094c0: 80 a0 60 00 cmp %g1, 0
400094c4: 02 80 00 26 be 4000955c <rtems_rfs_inode_time_stamp_now+0xa4> <== NEVER TAKEN
400094c8: ba 10 00 18 mov %i0, %i5
return ENXIO; now = time (NULL);
400094cc: 40 00 59 4e call 4001fa04 <time> 400094d0: 90 10 20 00 clr %o0
if (atime)
400094d4: 80 a6 60 00 cmp %i1, 0
400094d8: 32 80 00 14 bne,a 40009528 <rtems_rfs_inode_time_stamp_now+0x70> <== ALWAYS TAKEN
400094dc: c2 06 20 0c ld [ %i0 + 0xc ], %g1
rtems_rfs_inode_set_atime (handle, now); if (mtime)
400094e0: 80 a6 a0 00 cmp %i2, 0
400094e4: 02 80 00 0f be 40009520 <rtems_rfs_inode_time_stamp_now+0x68> <== NEVER TAKEN
400094e8: b0 10 20 00 clr %i0
rtems_rfs_write_u32 (&handle->node->mtime, mtime);
400094ec: c2 07 60 0c ld [ %i5 + 0xc ], %g1 400094f0: 85 32 60 18 srl %o1, 0x18, %g2 400094f4: c4 28 60 14 stb %g2, [ %g1 + 0x14 ] 400094f8: 85 32 60 10 srl %o1, 0x10, %g2 400094fc: c2 07 60 0c ld [ %i5 + 0xc ], %g1 40009500: c4 28 60 15 stb %g2, [ %g1 + 0x15 ] 40009504: 85 32 60 08 srl %o1, 8, %g2 40009508: c2 07 60 0c ld [ %i5 + 0xc ], %g1 4000950c: c4 28 60 16 stb %g2, [ %g1 + 0x16 ] 40009510: c2 07 60 0c ld [ %i5 + 0xc ], %g1 40009514: d2 28 60 17 stb %o1, [ %g1 + 0x17 ]
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40009518: 82 10 20 01 mov 1, %g1 4000951c: c2 2f 60 10 stb %g1, [ %i5 + 0x10 ]
}
40009520: 81 c7 e0 08 ret 40009524: 81 e8 00 00 restore
rtems_rfs_write_u32 (&handle->node->atime, atime);
40009528: 85 32 60 18 srl %o1, 0x18, %g2 4000952c: c4 28 60 10 stb %g2, [ %g1 + 0x10 ] 40009530: 83 32 60 10 srl %o1, 0x10, %g1 40009534: c4 06 20 0c ld [ %i0 + 0xc ], %g2 40009538: c2 28 a0 11 stb %g1, [ %g2 + 0x11 ] 4000953c: 83 32 60 08 srl %o1, 8, %g1 40009540: c4 06 20 0c ld [ %i0 + 0xc ], %g2 40009544: c2 28 a0 12 stb %g1, [ %g2 + 0x12 ] 40009548: c2 06 20 0c ld [ %i0 + 0xc ], %g1 4000954c: d2 28 60 13 stb %o1, [ %g1 + 0x13 ]
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40009550: 82 10 20 01 mov 1, %g1
}
40009554: 10 bf ff e3 b 400094e0 <rtems_rfs_inode_time_stamp_now+0x28> 40009558: c2 2e 20 10 stb %g1, [ %i0 + 0x10 ]
rtems_rfs_inode_set_mtime (handle, now); return 0; }
4000955c: 81 c7 e0 08 ret <== NOT EXECUTED 40009560: 91 e8 20 06 restore %g0, 6, %o0 <== NOT EXECUTED
400091fc <rtems_rfs_inode_unload>: int rtems_rfs_inode_unload (rtems_rfs_file_system* fs, rtems_rfs_inode_handle* handle, bool update_ctime) {
400091fc: 9d e3 bf a0 save %sp, -96, %sp
int rc = 0; if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_UNLOAD))
40009200: 90 10 20 00 clr %o0 40009204: 40 00 06 70 call 4000abc4 <rtems_rfs_trace> 40009208: 13 00 08 00 sethi %hi(0x200000), %o1 4000920c: 80 a2 20 00 cmp %o0, 0
40009210: 02 80 00 0c be 40009240 <rtems_rfs_inode_unload+0x44> <== ALWAYS TAKEN
40009214: c2 06 60 0c ld [ %i1 + 0xc ], %g1
printf ("rtems-rfs: inode-unload: ino=%" PRIu32 " loads=%i loaded=%s\n",
40009218: d2 06 60 08 ld [ %i1 + 8 ], %o1 <== NOT EXECUTED 4000921c: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 40009220: 02 80 00 22 be 400092a8 <rtems_rfs_inode_unload+0xac> <== NOT EXECUTED 40009224: d4 06 60 24 ld [ %i1 + 0x24 ], %o2 <== NOT EXECUTED 40009228: 17 10 00 8b sethi %hi(0x40022c00), %o3 <== NOT EXECUTED 4000922c: 96 12 e0 f8 or %o3, 0xf8, %o3 ! 40022cf8 <IMFS_node_control_sym_link+0xf70><== NOT EXECUTED 40009230: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 40009234: 7f ff e6 b1 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40009238: 90 12 21 60 or %o0, 0x160, %o0 ! 40022d60 <IMFS_node_control_sym_link+0xfd8><== NOT EXECUTED
handle->ino, handle->loads, rtems_rfs_inode_is_loaded (handle) ? "yes" : "no"); if (rtems_rfs_inode_is_loaded (handle))
4000923c: c2 06 60 0c ld [ %i1 + 0xc ], %g1 <== NOT EXECUTED
40009240: 80 a0 60 00 cmp %g1, 0
40009244: 22 80 00 0b be,a 40009270 <rtems_rfs_inode_unload+0x74>
40009248: 90 10 20 00 clr %o0
{ if (handle->loads == 0)
4000924c: c2 06 60 24 ld [ %i1 + 0x24 ], %g1 40009250: 80 a0 60 00 cmp %g1, 0
40009254: 02 80 00 07 be 40009270 <rtems_rfs_inode_unload+0x74> <== NEVER TAKEN
40009258: 90 10 20 05 mov 5, %o0
return EIO; handle->loads--;
4000925c: 82 00 7f ff add %g1, -1, %g1
if (handle->loads == 0)
40009260: 80 a0 60 00 cmp %g1, 0
40009264: 02 80 00 05 be 40009278 <rtems_rfs_inode_unload+0x7c>
40009268: c2 26 60 24 st %g1, [ %i1 + 0x24 ]
int rc = 0;
4000926c: 90 10 20 00 clr %o0
handle->node = NULL; } } return rc; }
40009270: 81 c7 e0 08 ret 40009274: 91 e8 00 08 restore %g0, %o0, %o0
if (rtems_rfs_buffer_dirty (&handle->buffer) && update_ctime)
40009278: c2 0e 60 10 ldub [ %i1 + 0x10 ], %g1 4000927c: 80 a0 60 00 cmp %g1, 0
40009280: 02 80 00 04 be 40009290 <rtems_rfs_inode_unload+0x94>
40009284: 80 a6 a0 00 cmp %i2, 0
40009288: 12 80 00 0b bne 400092b4 <rtems_rfs_inode_unload+0xb8> <== ALWAYS TAKEN
4000928c: 01 00 00 00 nop
rc = rtems_rfs_buffer_handle_release (fs, &handle->buffer);
40009290: 92 06 60 10 add %i1, 0x10, %o1 40009294: 7f ff f8 ac call 40007544 <rtems_rfs_buffer_handle_release> 40009298: 90 10 00 18 mov %i0, %o0
handle->node = NULL;
4000929c: c0 26 60 0c clr [ %i1 + 0xc ]
}
400092a0: 81 c7 e0 08 ret 400092a4: 91 e8 00 08 restore %g0, %o0, %o0
printf ("rtems-rfs: inode-unload: ino=%" PRIu32 " loads=%i loaded=%s\n",
400092a8: 17 10 00 8b sethi %hi(0x40022c00), %o3 <== NOT EXECUTED 400092ac: 10 bf ff e1 b 40009230 <rtems_rfs_inode_unload+0x34> <== NOT EXECUTED 400092b0: 96 12 e1 00 or %o3, 0x100, %o3 ! 40022d00 <IMFS_node_control_sym_link+0xf78><== NOT EXECUTED
rtems_rfs_inode_set_ctime (handle, time (NULL));
400092b4: 40 00 59 d4 call 4001fa04 <time> 400092b8: 90 10 20 00 clr %o0
*/ static inline void rtems_rfs_inode_set_ctime (rtems_rfs_inode_handle* handle, rtems_rfs_time ctime) { rtems_rfs_write_u32 (&handle->node->ctime, ctime);
400092bc: c2 06 60 0c ld [ %i1 + 0xc ], %g1 400092c0: 85 32 60 18 srl %o1, 0x18, %g2 400092c4: c4 28 60 18 stb %g2, [ %g1 + 0x18 ] 400092c8: 85 32 60 10 srl %o1, 0x10, %g2 400092cc: c2 06 60 0c ld [ %i1 + 0xc ], %g1 400092d0: c4 28 60 19 stb %g2, [ %g1 + 0x19 ] 400092d4: 85 32 60 08 srl %o1, 8, %g2 400092d8: c2 06 60 0c ld [ %i1 + 0xc ], %g1 400092dc: c4 28 60 1a stb %g2, [ %g1 + 0x1a ] 400092e0: c2 06 60 0c ld [ %i1 + 0xc ], %g1 400092e4: d2 28 60 1b stb %o1, [ %g1 + 0x1b ]
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400092e8: 82 10 20 01 mov 1, %g1
}
400092ec: 10 bf ff e9 b 40009290 <rtems_rfs_inode_unload+0x94> 400092f0: c2 2e 60 10 stb %g1, [ %i1 + 0x10 ]
40017e04 <rtems_rfs_link>: const char* name, int length, rtems_rfs_ino parent, rtems_rfs_ino target, bool link_dir) {
40017e04: 9d e3 bf 50 save %sp, -176, %sp
rtems_rfs_inode_handle parent_inode; rtems_rfs_inode_handle target_inode; uint16_t links; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_LINK))
40017e08: 90 10 20 00 clr %o0 40017e0c: 7f ff cb 6e call 4000abc4 <rtems_rfs_trace> 40017e10: 13 00 40 00 sethi %hi(0x1000000), %o1 40017e14: 80 a2 20 00 cmp %o0, 0
40017e18: 12 80 00 51 bne 40017f5c <rtems_rfs_link+0x158> <== NEVER TAKEN
40017e1c: 96 10 20 01 mov 1, %o3
for (c = 0; c < length; c++) printf ("%c", name[c]); printf ("(%" PRIu32 ")\n", target); } rc = rtems_rfs_inode_open (fs, target, &target_inode, true);
40017e20: 94 07 bf d8 add %fp, -40, %o2 40017e24: 92 10 00 1c mov %i4, %o1 40017e28: 7f ff c4 ba call 40009110 <rtems_rfs_inode_open> 40017e2c: 90 10 00 18 mov %i0, %o0
if (rc)
40017e30: a0 92 20 00 orcc %o0, 0, %l0
40017e34: 12 80 00 40 bne 40017f34 <rtems_rfs_link+0x130> <== NEVER TAKEN
40017e38: 80 a7 60 00 cmp %i5, 0
/* * If the target inode is a directory and we cannot link directories * return a not supported error code. */ if (!link_dir && S_ISDIR (rtems_rfs_inode_get_mode (&target_inode))) 40017e3c: 12 80 00 0a bne 40017e64 <rtems_rfs_link+0x60>
40017e40: c2 07 bf e4 ld [ %fp + -28 ], %g1 40017e44: 05 00 00 3c sethi %hi(0xf000), %g2 40017e48: c2 08 60 02 ldub [ %g1 + 2 ], %g1 40017e4c: 83 28 60 08 sll %g1, 8, %g1 40017e50: 82 08 40 02 and %g1, %g2, %g1 40017e54: 05 00 00 10 sethi %hi(0x4000), %g2 40017e58: 80 a0 40 02 cmp %g1, %g2
40017e5c: 02 80 00 5f be 40017fd8 <rtems_rfs_link+0x1d4> <== NEVER TAKEN
40017e60: 92 07 bf d8 add %fp, -40, %o1
{ rtems_rfs_inode_close (fs, &target_inode); return ENOTSUP; } rc = rtems_rfs_inode_open (fs, parent, &parent_inode, true);
40017e64: 96 10 20 01 mov 1, %o3 40017e68: 94 07 bf b0 add %fp, -80, %o2 40017e6c: 92 10 00 1b mov %i3, %o1 40017e70: 7f ff c4 a8 call 40009110 <rtems_rfs_inode_open> 40017e74: 90 10 00 18 mov %i0, %o0
if (rc)
40017e78: a0 92 20 00 orcc %o0, 0, %l0
40017e7c: 12 80 00 32 bne 40017f44 <rtems_rfs_link+0x140> <== NEVER TAKEN
40017e80: 98 10 00 1c mov %i4, %o4
{ rtems_rfs_inode_close (fs, &target_inode); return rc; } rc = rtems_rfs_dir_add_entry (fs, &parent_inode, name, length, target);
40017e84: 96 10 00 1a mov %i2, %o3 40017e88: 94 10 00 19 mov %i1, %o2 40017e8c: 92 07 bf b0 add %fp, -80, %o1 40017e90: 7f ff f5 46 call 400153a8 <rtems_rfs_dir_add_entry> 40017e94: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40017e98: a0 92 20 00 orcc %o0, 0, %l0
40017e9c: 14 80 00 44 bg 40017fac <rtems_rfs_link+0x1a8> <== NEVER TAKEN
40017ea0: c4 07 bf e4 ld [ %fp + -28 ], %g2
links = rtems_rfs_read_u16 (&handle->node->links);
40017ea4: c6 08 80 00 ldub [ %g2 ], %g3 40017ea8: 87 28 e0 08 sll %g3, 8, %g3 40017eac: c2 08 a0 01 ldub [ %g2 + 1 ], %g1 40017eb0: 82 10 40 03 or %g1, %g3, %g1
if (links == 0xffff)
40017eb4: 07 00 00 3f sethi %hi(0xfc00), %g3 40017eb8: 86 10 e3 ff or %g3, 0x3ff, %g3 ! ffff <_ISR_Stack_size+0xefff> 40017ebc: 80 a0 40 03 cmp %g1, %g3
40017ec0: 22 80 00 44 be,a 40017fd0 <rtems_rfs_link+0x1cc> <== NEVER TAKEN
40017ec4: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode); rtems_rfs_inode_close (fs, &target_inode); return rc; } links = rtems_rfs_inode_get_links (&target_inode) + 1;
40017ec8: 82 00 60 01 inc %g1
rtems_rfs_write_u16 (&handle->node->links, links);
40017ecc: 87 28 60 10 sll %g1, 0x10, %g3 40017ed0: 87 30 e0 18 srl %g3, 0x18, %g3 40017ed4: c6 28 80 00 stb %g3, [ %g2 ]
rtems_rfs_inode_set_links (&target_inode, links); rc = rtems_rfs_inode_time_stamp_now (&parent_inode, true, true);
40017ed8: 92 10 20 01 mov 1, %o1 40017edc: c4 07 bf e4 ld [ %fp + -28 ], %g2 40017ee0: c2 28 a0 01 stb %g1, [ %g2 + 1 ]
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40017ee4: 82 10 20 01 mov 1, %g1 40017ee8: 94 10 20 01 mov 1, %o2 40017eec: c2 2f bf e8 stb %g1, [ %fp + -24 ] 40017ef0: 7f ff c5 72 call 400094b8 <rtems_rfs_inode_time_stamp_now> 40017ef4: 90 07 bf b0 add %fp, -80, %o0
if (rc > 0) { rtems_rfs_inode_close (fs, &parent_inode);
40017ef8: 92 07 bf b0 add %fp, -80, %o1
rc = rtems_rfs_inode_time_stamp_now (&parent_inode, true, true);
40017efc: a0 10 00 08 mov %o0, %l0
if (rc > 0)
40017f00: 80 a4 20 00 cmp %l0, 0
40017f04: 14 80 00 0e bg 40017f3c <rtems_rfs_link+0x138> <== NEVER TAKEN
40017f08: 90 10 00 18 mov %i0, %o0
rtems_rfs_inode_close (fs, &target_inode); return rc; } rc = rtems_rfs_inode_close (fs, &parent_inode);
40017f0c: 7f ff c4 fa call 400092f4 <rtems_rfs_inode_close> 40017f10: 01 00 00 00 nop
if (rc > 0) { rtems_rfs_inode_close (fs, &target_inode);
40017f14: 92 07 bf d8 add %fp, -40, %o1
rc = rtems_rfs_inode_close (fs, &parent_inode);
40017f18: a0 10 00 08 mov %o0, %l0
if (rc > 0)
40017f1c: 80 a4 20 00 cmp %l0, 0
40017f20: 14 80 00 0b bg 40017f4c <rtems_rfs_link+0x148> <== NEVER TAKEN
40017f24: 90 10 00 18 mov %i0, %o0
return rc; } rc = rtems_rfs_inode_close (fs, &target_inode);
40017f28: 7f ff c4 f3 call 400092f4 <rtems_rfs_inode_close> 40017f2c: 01 00 00 00 nop 40017f30: a0 10 00 08 mov %o0, %l0
return rc; }
40017f34: 81 c7 e0 08 ret 40017f38: 91 e8 00 10 restore %g0, %l0, %o0
rtems_rfs_inode_close (fs, &parent_inode);
40017f3c: 7f ff c4 ee call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40017f40: 01 00 00 00 nop <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
40017f44: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40017f48: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40017f4c: 7f ff c4 ea call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40017f50: b0 10 00 10 mov %l0, %i0 <== NOT EXECUTED
}
40017f54: 81 c7 e0 08 ret <== NOT EXECUTED 40017f58: 81 e8 00 00 restore <== NOT EXECUTED
printf ("rtems-rfs: link: parent(%" PRIu32 ") -> ", parent);
40017f5c: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 40017f60: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 40017f64: 7f ff ab 65 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017f68: 90 12 20 40 or %o0, 0x40, %o0 ! 40024440 <IMFS_LIMITS_AND_OPTIONS+0xf00><== NOT EXECUTED
for (c = 0; c < length; c++)
40017f6c: a0 10 00 19 mov %i1, %l0 <== NOT EXECUTED 40017f70: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 40017f74: 04 80 00 08 ble 40017f94 <rtems_rfs_link+0x190> <== NOT EXECUTED 40017f78: a2 06 80 19 add %i2, %i1, %l1 <== NOT EXECUTED
printf ("%c", name[c]);
40017f7c: 40 00 1a 8d call 4001e9b0 <putchar> <== NOT EXECUTED 40017f80: d0 4c 00 00 ldsb [ %l0 ], %o0 <== NOT EXECUTED
for (c = 0; c < length; c++)
40017f84: a0 04 20 01 inc %l0 <== NOT EXECUTED 40017f88: 80 a4 40 10 cmp %l1, %l0 <== NOT EXECUTED 40017f8c: 12 bf ff fc bne 40017f7c <rtems_rfs_link+0x178> <== NOT EXECUTED 40017f90: 01 00 00 00 nop <== NOT EXECUTED
printf ("(%" PRIu32 ")\n", target);
40017f94: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED 40017f98: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 40017f9c: 7f ff ab 57 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40017fa0: 90 12 20 60 or %o0, 0x60, %o0 ! 40024460 <IMFS_LIMITS_AND_OPTIONS+0xf20><== NOT EXECUTED
rc = rtems_rfs_inode_open (fs, target, &target_inode, true);
40017fa4: 10 bf ff 9f b 40017e20 <rtems_rfs_link+0x1c> <== NOT EXECUTED 40017fa8: 96 10 20 01 mov 1, %o3 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode);
40017fac: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 40017fb0: 7f ff c4 d1 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40017fb4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
40017fb8: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40017fbc: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40017fc0: 7f ff c4 cd call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40017fc4: b0 10 00 10 mov %l0, %i0 <== NOT EXECUTED
}
40017fc8: 81 c7 e0 08 ret <== NOT EXECUTED 40017fcc: 81 e8 00 00 restore <== NOT EXECUTED 40017fd0: 10 bf ff c1 b 40017ed4 <rtems_rfs_link+0xd0> <== NOT EXECUTED 40017fd4: 86 10 20 00 clr %g3 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
40017fd8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 40017fdc: 7f ff c4 c6 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40017fe0: a0 10 20 86 mov 0x86, %l0 <== NOT EXECUTED
return ENOTSUP;
40017fe4: 30 bf ff d4 b,a 40017f34 <rtems_rfs_link+0x130> <== NOT EXECUTED
4000a688 <rtems_rfs_rtems_fdatasync>: {
4000a688: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED
rc = rtems_rfs_buffer_sync (rtems_rfs_rtems_pathloc_dev (&iop->pathinfo));
4000a68c: c2 06 20 24 ld [ %i0 + 0x24 ], %g1 <== NOT EXECUTED 4000a690: 7f ff f4 22 call 40007718 <rtems_rfs_buffer_sync> <== NOT EXECUTED 4000a694: d0 00 60 08 ld [ %g1 + 8 ], %o0 <== NOT EXECUTED
if (rc)
4000a698: b0 92 20 00 orcc %o0, 0, %i0 <== NOT EXECUTED 4000a69c: 12 80 00 04 bne 4000a6ac <rtems_rfs_rtems_fdatasync+0x24> <== NOT EXECUTED 4000a6a0: 01 00 00 00 nop <== NOT EXECUTED
}
4000a6a4: 81 c7 e0 08 ret <== NOT EXECUTED 4000a6a8: 81 e8 00 00 restore <== NOT EXECUTED
return rtems_rfs_rtems_error ("fdatasync: sync", rc);
4000a6ac: 40 00 4f 1c call 4001e31c <__errno> <== NOT EXECUTED 4000a6b0: 01 00 00 00 nop <== NOT EXECUTED 4000a6b4: f0 22 00 00 st %i0, [ %o0 ] <== NOT EXECUTED
}
4000a6b8: 81 c7 e0 08 ret <== NOT EXECUTED 4000a6bc: 91 e8 3f ff restore %g0, -1, %o0 <== NOT EXECUTED
4000a158 <rtems_rfs_rtems_fstat>: {
4000a158: 9d e3 bf 78 save %sp, -136, %sp
rtems_rfs_file_system* fs = rtems_rfs_rtems_pathloc_dev (pathloc);
4000a15c: c2 06 20 14 ld [ %i0 + 0x14 ], %g1 4000a160: fa 00 60 08 ld [ %g1 + 8 ], %i5
rc = rtems_rfs_inode_open (fs, ino, &inode, true);
4000a164: d2 06 20 08 ld [ %i0 + 8 ], %o1 4000a168: 96 10 20 01 mov 1, %o3 4000a16c: 94 07 bf d8 add %fp, -40, %o2 4000a170: 7f ff fb e8 call 40009110 <rtems_rfs_inode_open> 4000a174: 90 10 00 1d mov %i5, %o0
if (rc)
4000a178: b0 92 20 00 orcc %o0, 0, %i0
4000a17c: 12 80 00 b1 bne 4000a440 <rtems_rfs_rtems_fstat+0x2e8> <== NEVER TAKEN
4000a180: c2 07 bf e4 ld [ %fp + -28 ], %g1
return rtems_rfs_read_u16 (&handle->node->mode);
4000a184: c4 08 60 02 ldub [ %g1 + 2 ], %g2 4000a188: 85 28 a0 08 sll %g2, 8, %g2 4000a18c: d0 08 60 03 ldub [ %g1 + 3 ], %o0 4000a190: 90 12 00 02 or %o0, %g2, %o0
if (RTEMS_RFS_S_ISCHR (mode) || RTEMS_RFS_S_ISBLK (mode))
4000a194: 07 00 00 08 sethi %hi(0x2000), %g3 4000a198: 05 3f ff ec sethi %hi(0xffffb000), %g2 4000a19c: 84 0a 00 02 and %o0, %g2, %g2 4000a1a0: 80 a0 80 03 cmp %g2, %g3
4000a1a4: 22 80 00 47 be,a 4000a2c0 <rtems_rfs_rtems_fstat+0x168> <== NEVER TAKEN
4000a1a8: da 08 60 20 ldub [ %g1 + 0x20 ], %o5 <== NOT EXECUTED
buf->st_dev = (dev_t) (uintptr_t)rtems_rfs_fs_device (fs);
4000a1ac: c2 07 60 10 ld [ %i5 + 0x10 ], %g1 4000a1b0: c2 26 60 04 st %g1, [ %i1 + 4 ]
buf->st_ino = rtems_rfs_inode_ino (&inode);
4000a1b4: c2 07 bf e0 ld [ %fp + -32 ], %g1 4000a1b8: c2 26 60 0c st %g1, [ %i1 + 0xc ]
buf->st_dev = (dev_t) (uintptr_t)rtems_rfs_fs_device (fs);
4000a1bc: c0 26 40 00 clr [ %i1 ]
buf->st_mode = rtems_rfs_rtems_mode (mode);
4000a1c0: 40 00 02 7f call 4000abbc <rtems_rfs_rtems_mode> 4000a1c4: c0 26 60 08 clr [ %i1 + 8 ] 4000a1c8: d0 26 60 10 st %o0, [ %i1 + 0x10 ]
links = rtems_rfs_read_u16 (&handle->node->links);
4000a1cc: c4 07 bf e4 ld [ %fp + -28 ], %g2 4000a1d0: c6 08 80 00 ldub [ %g2 ], %g3 4000a1d4: 87 28 e0 08 sll %g3, 8, %g3 4000a1d8: c2 08 a0 01 ldub [ %g2 + 1 ], %g1 4000a1dc: 82 10 40 03 or %g1, %g3, %g1
if (links == 0xffff)
4000a1e0: 07 00 00 3f sethi %hi(0xfc00), %g3 4000a1e4: 86 10 e3 ff or %g3, 0x3ff, %g3 ! ffff <_ISR_Stack_size+0xefff> 4000a1e8: 80 a0 40 03 cmp %g1, %g3
4000a1ec: 12 80 00 03 bne 4000a1f8 <rtems_rfs_rtems_fstat+0xa0> <== ALWAYS TAKEN
4000a1f0: 88 10 00 01 mov %g1, %g4
links = 0;
4000a1f4: 88 10 20 00 clr %g4 <== NOT EXECUTED
buf->st_nlink = rtems_rfs_inode_get_links (&inode);
4000a1f8: c8 36 60 14 sth %g4, [ %i1 + 0x14 ]
shared = rtems_rfs_file_get_shared (fs, rtems_rfs_inode_ino (&inode));
4000a1fc: 90 10 00 1d mov %i5, %o0
return rtems_rfs_read_u32 (&handle->node->owner) & 0xffff;
4000a200: c6 08 a0 06 ldub [ %g2 + 6 ], %g3 4000a204: c2 08 a0 07 ldub [ %g2 + 7 ], %g1 4000a208: 87 28 e0 08 sll %g3, 8, %g3 4000a20c: 82 10 40 03 or %g1, %g3, %g1
buf->st_uid = rtems_rfs_inode_get_uid (&inode);
4000a210: c2 36 60 16 sth %g1, [ %i1 + 0x16 ]
return (rtems_rfs_read_u32 (&handle->node->owner) >> 16) & 0xffff;
4000a214: c2 08 a0 05 ldub [ %g2 + 5 ], %g1 4000a218: c6 08 a0 04 ldub [ %g2 + 4 ], %g3 4000a21c: 85 28 e0 18 sll %g3, 0x18, %g2 4000a220: 83 28 60 10 sll %g1, 0x10, %g1 4000a224: 82 10 40 02 or %g1, %g2, %g1 4000a228: 83 30 60 10 srl %g1, 0x10, %g1 4000a22c: c2 36 60 18 sth %g1, [ %i1 + 0x18 ]
shared = rtems_rfs_file_get_shared (fs, rtems_rfs_inode_ino (&inode));
4000a230: 40 00 34 a2 call 400174b8 <rtems_rfs_file_get_shared> 4000a234: d2 07 bf e0 ld [ %fp + -32 ], %o1
if (shared)
4000a238: 80 a2 20 00 cmp %o0, 0
4000a23c: 02 80 00 3b be 4000a328 <rtems_rfs_rtems_fstat+0x1d0>
4000a240: c2 07 bf e4 ld [ %fp + -28 ], %g1
buf->st_ctime = rtems_rfs_file_shared_get_ctime (shared);
4000a244: c4 02 20 94 ld [ %o0 + 0x94 ], %g2
buf->st_blocks = rtems_rfs_file_shared_get_block_count (shared);
4000a248: c2 02 20 84 ld [ %o0 + 0x84 ], %g1
buf->st_atime = rtems_rfs_file_shared_get_atime (shared);
4000a24c: c8 02 20 8c ld [ %o0 + 0x8c ], %g4
buf->st_mtime = rtems_rfs_file_shared_get_mtime (shared);
4000a250: c6 02 20 90 ld [ %o0 + 0x90 ], %g3 4000a254: c6 26 60 44 st %g3, [ %i1 + 0x44 ]
buf->st_ctime = rtems_rfs_file_shared_get_ctime (shared);
4000a258: c4 26 60 54 st %g2, [ %i1 + 0x54 ]
if (S_ISLNK (buf->st_mode))
4000a25c: 05 00 00 3c sethi %hi(0xf000), %g2
buf->st_blocks = rtems_rfs_file_shared_get_block_count (shared);
4000a260: c2 26 60 64 st %g1, [ %i1 + 0x64 ]
buf->st_atime = rtems_rfs_file_shared_get_atime (shared);
4000a264: c0 26 60 30 clr [ %i1 + 0x30 ] 4000a268: c8 26 60 34 st %g4, [ %i1 + 0x34 ]
buf->st_mtime = rtems_rfs_file_shared_get_mtime (shared);
4000a26c: c0 26 60 40 clr [ %i1 + 0x40 ]
buf->st_ctime = rtems_rfs_file_shared_get_ctime (shared);
4000a270: c0 26 60 50 clr [ %i1 + 0x50 ]
if (S_ISLNK (buf->st_mode))
4000a274: c2 06 60 10 ld [ %i1 + 0x10 ], %g1 4000a278: 82 08 40 02 and %g1, %g2, %g1 4000a27c: 05 00 00 28 sethi %hi(0xa000), %g2 4000a280: 80 a0 40 02 cmp %g1, %g2
4000a284: 12 80 00 25 bne 4000a318 <rtems_rfs_rtems_fstat+0x1c0> <== ALWAYS TAKEN
4000a288: 92 02 20 84 add %o0, 0x84, %o1
buf->st_size = rtems_rfs_file_shared_get_block_offset (shared);
4000a28c: c2 12 20 8a lduh [ %o0 + 0x8a ], %g1 <== NOT EXECUTED 4000a290: c2 26 60 2c st %g1, [ %i1 + 0x2c ] <== NOT EXECUTED 4000a294: c0 26 60 28 clr [ %i1 + 0x28 ] <== NOT EXECUTED
rc = rtems_rfs_inode_close (fs, &inode);
4000a298: 90 10 00 1d mov %i5, %o0
buf->st_blksize = rtems_rfs_fs_block_size (fs);
4000a29c: c2 07 60 08 ld [ %i5 + 8 ], %g1 4000a2a0: c2 26 60 60 st %g1, [ %i1 + 0x60 ]
rc = rtems_rfs_inode_close (fs, &inode);
4000a2a4: 7f ff fc 14 call 400092f4 <rtems_rfs_inode_close> 4000a2a8: 92 07 bf d8 add %fp, -40, %o1
if (rc > 0)
4000a2ac: ba 92 20 00 orcc %o0, 0, %i5
4000a2b0: 14 80 00 5f bg 4000a42c <rtems_rfs_rtems_fstat+0x2d4> <== NEVER TAKEN
4000a2b4: 01 00 00 00 nop
}
4000a2b8: 81 c7 e0 08 ret 4000a2bc: 81 e8 00 00 restore
return rtems_rfs_read_u32 (&handle->node->data.blocks[block]);
4000a2c0: c6 08 60 1d ldub [ %g1 + 0x1d ], %g3 <== NOT EXECUTED 4000a2c4: f8 08 60 21 ldub [ %g1 + 0x21 ], %i4 <== NOT EXECUTED 4000a2c8: c8 08 60 22 ldub [ %g1 + 0x22 ], %g4 <== NOT EXECUTED 4000a2cc: f4 08 60 23 ldub [ %g1 + 0x23 ], %i2 <== NOT EXECUTED 4000a2d0: de 08 60 1c ldub [ %g1 + 0x1c ], %o7 <== NOT EXECUTED 4000a2d4: c4 08 60 1e ldub [ %g1 + 0x1e ], %g2 <== NOT EXECUTED 4000a2d8: f6 08 60 1f ldub [ %g1 + 0x1f ], %i3 <== NOT EXECUTED 4000a2dc: 83 2b 60 18 sll %o5, 0x18, %g1 <== NOT EXECUTED 4000a2e0: b9 2f 20 10 sll %i4, 0x10, %i4 <== NOT EXECUTED 4000a2e4: b8 17 00 01 or %i4, %g1, %i4 <== NOT EXECUTED 4000a2e8: 83 28 e0 10 sll %g3, 0x10, %g1 <== NOT EXECUTED 4000a2ec: 89 29 20 08 sll %g4, 8, %g4 <== NOT EXECUTED 4000a2f0: 9f 2b e0 18 sll %o7, 0x18, %o7 <== NOT EXECUTED 4000a2f4: 88 11 00 1c or %g4, %i4, %g4 <== NOT EXECUTED 4000a2f8: 86 10 40 0f or %g1, %o7, %g3 <== NOT EXECUTED 4000a2fc: 88 16 80 04 or %i2, %g4, %g4 <== NOT EXECUTED 4000a300: 83 28 a0 08 sll %g2, 8, %g1 <== NOT EXECUTED
buf->st_rdev =
4000a304: c8 26 60 24 st %g4, [ %i1 + 0x24 ] <== NOT EXECUTED 4000a308: 82 10 40 03 or %g1, %g3, %g1 <== NOT EXECUTED 4000a30c: 82 16 c0 01 or %i3, %g1, %g1 <== NOT EXECUTED 4000a310: 10 bf ff a7 b 4000a1ac <rtems_rfs_rtems_fstat+0x54> <== NOT EXECUTED 4000a314: c2 26 60 20 st %g1, [ %i1 + 0x20 ] <== NOT EXECUTED
*/ static inline rtems_rfs_pos rtems_rfs_file_shared_get_size (rtems_rfs_file_system* fs, rtems_rfs_file_shared* shared) { return rtems_rfs_block_get_size (fs, &shared->size);
4000a318: 40 00 27 72 call 400140e0 <rtems_rfs_block_get_size> 4000a31c: 90 10 00 1d mov %i5, %o0
buf->st_size = rtems_rfs_file_shared_get_size (fs, shared);
4000a320: 10 bf ff de b 4000a298 <rtems_rfs_rtems_fstat+0x140> 4000a324: d0 3e 60 28 std %o0, [ %i1 + 0x28 ]
return rtems_rfs_read_u32 (&handle->node->atime);
4000a328: c8 08 60 13 ldub [ %g1 + 0x13 ], %g4 4000a32c: f8 08 60 10 ldub [ %g1 + 0x10 ], %i4 4000a330: c6 08 60 11 ldub [ %g1 + 0x11 ], %g3 4000a334: c4 08 60 12 ldub [ %g1 + 0x12 ], %g2 4000a338: b9 2f 20 18 sll %i4, 0x18, %i4
buf->st_atime = rtems_rfs_inode_get_atime (&inode);
4000a33c: c0 26 60 30 clr [ %i1 + 0x30 ] 4000a340: 87 28 e0 10 sll %g3, 0x10, %g3 4000a344: 85 28 a0 08 sll %g2, 8, %g2 4000a348: 86 10 c0 1c or %g3, %i4, %g3 4000a34c: 84 10 80 03 or %g2, %g3, %g2 4000a350: 84 11 00 02 or %g4, %g2, %g2 4000a354: c4 26 60 34 st %g2, [ %i1 + 0x34 ]
return rtems_rfs_read_u32 (&handle->node->mtime);
4000a358: c8 08 60 17 ldub [ %g1 + 0x17 ], %g4 4000a35c: f8 08 60 14 ldub [ %g1 + 0x14 ], %i4 4000a360: c6 08 60 15 ldub [ %g1 + 0x15 ], %g3 4000a364: c4 08 60 16 ldub [ %g1 + 0x16 ], %g2 4000a368: b9 2f 20 18 sll %i4, 0x18, %i4
buf->st_mtime = rtems_rfs_inode_get_mtime (&inode);
4000a36c: c0 26 60 40 clr [ %i1 + 0x40 ] 4000a370: 87 28 e0 10 sll %g3, 0x10, %g3 4000a374: 85 28 a0 08 sll %g2, 8, %g2 4000a378: 86 10 c0 1c or %g3, %i4, %g3 4000a37c: 84 10 80 03 or %g2, %g3, %g2 4000a380: 84 11 00 02 or %g4, %g2, %g2 4000a384: c4 26 60 44 st %g2, [ %i1 + 0x44 ]
return rtems_rfs_read_u32 (&handle->node->ctime);
4000a388: c8 08 60 1b ldub [ %g1 + 0x1b ], %g4 4000a38c: f8 08 60 18 ldub [ %g1 + 0x18 ], %i4 4000a390: c6 08 60 19 ldub [ %g1 + 0x19 ], %g3 4000a394: c4 08 60 1a ldub [ %g1 + 0x1a ], %g2 4000a398: b9 2f 20 18 sll %i4, 0x18, %i4
buf->st_ctime = rtems_rfs_inode_get_ctime (&inode);
4000a39c: c0 26 60 50 clr [ %i1 + 0x50 ] 4000a3a0: 87 28 e0 10 sll %g3, 0x10, %g3 4000a3a4: 85 28 a0 08 sll %g2, 8, %g2 4000a3a8: 86 10 c0 1c or %g3, %i4, %g3 4000a3ac: 84 10 80 03 or %g2, %g3, %g2 4000a3b0: 84 11 00 02 or %g4, %g2, %g2 4000a3b4: c4 26 60 54 st %g2, [ %i1 + 0x54 ]
return rtems_rfs_read_u32 (&handle->node->block_count);
4000a3b8: f8 08 60 0c ldub [ %g1 + 0xc ], %i4 4000a3bc: c6 08 60 0d ldub [ %g1 + 0xd ], %g3 4000a3c0: c4 08 60 0e ldub [ %g1 + 0xe ], %g2 4000a3c4: c8 08 60 0f ldub [ %g1 + 0xf ], %g4 4000a3c8: b9 2f 20 18 sll %i4, 0x18, %i4 4000a3cc: 87 28 e0 10 sll %g3, 0x10, %g3 4000a3d0: 85 28 a0 08 sll %g2, 8, %g2 4000a3d4: 86 10 c0 1c or %g3, %i4, %g3 4000a3d8: 84 10 80 03 or %g2, %g3, %g2 4000a3dc: 84 11 00 02 or %g4, %g2, %g2
buf->st_blocks = rtems_rfs_inode_get_block_count (&inode);
4000a3e0: c4 26 60 64 st %g2, [ %i1 + 0x64 ]
if (S_ISLNK (buf->st_mode))
4000a3e4: 07 00 00 3c sethi %hi(0xf000), %g3 4000a3e8: c4 06 60 10 ld [ %i1 + 0x10 ], %g2 4000a3ec: 84 08 80 03 and %g2, %g3, %g2 4000a3f0: 07 00 00 28 sethi %hi(0xa000), %g3 4000a3f4: 80 a0 80 03 cmp %g2, %g3
4000a3f8: 12 80 00 09 bne 4000a41c <rtems_rfs_rtems_fstat+0x2c4>
4000a3fc: 92 07 bf d8 add %fp, -40, %o1
buf->st_size = rtems_rfs_inode_get_block_offset (&inode);
4000a400: c4 08 60 0a ldub [ %g1 + 0xa ], %g2 4000a404: c2 08 60 0b ldub [ %g1 + 0xb ], %g1 4000a408: 85 28 a0 08 sll %g2, 8, %g2 4000a40c: c0 26 60 28 clr [ %i1 + 0x28 ] 4000a410: 82 10 40 02 or %g1, %g2, %g1 4000a414: 10 bf ff a1 b 4000a298 <rtems_rfs_rtems_fstat+0x140> 4000a418: c2 26 60 2c st %g1, [ %i1 + 0x2c ]
buf->st_size = rtems_rfs_inode_get_size (fs, &inode);
4000a41c: 7f ff fd 83 call 40009a28 <rtems_rfs_inode_get_size> 4000a420: 90 10 00 1d mov %i5, %o0 4000a424: 10 bf ff 9d b 4000a298 <rtems_rfs_rtems_fstat+0x140> 4000a428: d0 3e 60 28 std %o0, [ %i1 + 0x28 ]
return rtems_rfs_rtems_error ("stat: closing inode", rc);
4000a42c: 40 00 4f bc call 4001e31c <__errno> <== NOT EXECUTED 4000a430: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000a434: fa 22 00 00 st %i5, [ %o0 ] <== NOT EXECUTED
}
4000a438: 81 c7 e0 08 ret <== NOT EXECUTED 4000a43c: 81 e8 00 00 restore <== NOT EXECUTED
return rtems_rfs_rtems_error ("stat: opening inode", rc);
4000a440: 40 00 4f b7 call 4001e31c <__errno> <== NOT EXECUTED 4000a444: 01 00 00 00 nop <== NOT EXECUTED 4000a448: f0 22 00 00 st %i0, [ %o0 ] <== NOT EXECUTED 4000a44c: 81 c7 e0 08 ret <== NOT EXECUTED 4000a450: 91 e8 3f ff restore %g0, -1, %o0 <== NOT EXECUTED
4000a6c0 <rtems_rfs_rtems_initialise>: {
4000a6c0: 9d e3 bf 98 save %sp, -104, %sp
uint32_t flags = 0;
4000a6c4: ba 10 20 00 clr %i5
{
4000a6c8: a2 10 00 18 mov %i0, %l1
while (options)
4000a6cc: 80 a6 60 00 cmp %i1, 0
4000a6d0: 02 80 00 22 be 4000a758 <rtems_rfs_rtems_initialise+0x98> <== ALWAYS TAKEN
4000a6d4: b0 10 20 05 mov 5, %i0
printf ("options=%s\n", options);
4000a6d8: 35 10 00 8b sethi %hi(0x40022c00), %i2 <== NOT EXECUTED
if (strncmp (options, "hold-bitmaps",
4000a6dc: 37 10 00 8b sethi %hi(0x40022c00), %i3 <== NOT EXECUTED
else if (strncmp (options, "no-local-cache",
4000a6e0: 39 10 00 8b sethi %hi(0x40022c00), %i4 <== NOT EXECUTED
else if (strncmp (options, "max-held-bufs",
4000a6e4: 21 10 00 8b sethi %hi(0x40022c00), %l0 <== NOT EXECUTED
printf ("options=%s\n", options);
4000a6e8: b4 16 a2 a0 or %i2, 0x2a0, %i2 <== NOT EXECUTED
if (strncmp (options, "hold-bitmaps",
4000a6ec: b6 16 e2 b0 or %i3, 0x2b0, %i3 <== NOT EXECUTED
else if (strncmp (options, "no-local-cache",
4000a6f0: b8 17 22 c0 or %i4, 0x2c0, %i4 <== NOT EXECUTED
else if (strncmp (options, "max-held-bufs",
4000a6f4: a0 14 22 d0 or %l0, 0x2d0, %l0 <== NOT EXECUTED
printf ("options=%s\n", options);
4000a6f8: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000a6fc: 7f ff e1 7f call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4000a700: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED
if (strncmp (options, "hold-bitmaps",
4000a704: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED 4000a708: 94 10 20 0c mov 0xc, %o2 <== NOT EXECUTED 4000a70c: 40 00 53 f1 call 4001f6d0 <strncmp> <== NOT EXECUTED 4000a710: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED
else if (strncmp (options, "no-local-cache",
4000a714: 92 10 00 1c mov %i4, %o1 <== NOT EXECUTED
if (strncmp (options, "hold-bitmaps",
4000a718: 82 10 00 08 mov %o0, %g1 <== NOT EXECUTED
else if (strncmp (options, "no-local-cache",
4000a71c: 94 10 20 0e mov 0xe, %o2 <== NOT EXECUTED
if (strncmp (options, "hold-bitmaps",
4000a720: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000a724: 12 80 00 34 bne 4000a7f4 <rtems_rfs_rtems_initialise+0x134> <== NOT EXECUTED 4000a728: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED
flags |= RTEMS_RFS_FS_BITMAPS_HOLD;
4000a72c: ba 17 60 01 or %i5, 1, %i5 <== NOT EXECUTED
options = strchr (options, ',');
4000a730: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 4000a734: 40 00 51 6b call 4001ece0 <strchr> <== NOT EXECUTED 4000a738: 92 10 20 2c mov 0x2c, %o1 <== NOT EXECUTED
if (options)
4000a73c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000a740: 02 80 00 07 be 4000a75c <rtems_rfs_rtems_initialise+0x9c> <== NOT EXECUTED 4000a744: 92 10 20 01 mov 1, %o1 <== NOT EXECUTED
if (*options == '\0')
4000a748: c2 4a 20 01 ldsb [ %o0 + 1 ], %g1 <== NOT EXECUTED 4000a74c: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000a750: 12 bf ff ea bne 4000a6f8 <rtems_rfs_rtems_initialise+0x38> <== NOT EXECUTED 4000a754: b2 02 20 01 add %o0, 1, %i1 <== NOT EXECUTED
rtems = malloc (sizeof (rtems_rfs_rtems_private));
4000a758: 92 10 20 01 mov 1, %o1 4000a75c: 40 00 21 1d call 40012bd0 <calloc> 4000a760: 90 10 20 18 mov 0x18, %o0
if (!rtems)
4000a764: b8 92 20 00 orcc %o0, 0, %i4
4000a768: 02 80 00 54 be 4000a8b8 <rtems_rfs_rtems_initialise+0x1f8> <== NEVER TAKEN
4000a76c: 01 00 00 00 nop
rc = rtems_rfs_mutex_create (&rtems->access);
4000a770: 40 00 38 51 call 400188b4 <rtems_rfs_mutex_create> 4000a774: 01 00 00 00 nop 4000a778: b6 10 00 08 mov %o0, %i3
if (rc > 0)
4000a77c: 80 a6 e0 00 cmp %i3, 0
4000a780: 14 80 00 47 bg 4000a89c <rtems_rfs_rtems_initialise+0x1dc> <== NEVER TAKEN
4000a784: 90 10 00 1c mov %i4, %o0
_Mutex_recursive_Acquire( mutex );
4000a788: 40 00 08 f3 call 4000cb54 <_Mutex_recursive_Acquire> 4000a78c: 01 00 00 00 nop
rc = rtems_rfs_fs_open (mt_entry->dev, rtems, flags, max_held_buffers, &fs);
4000a790: d0 04 60 38 ld [ %l1 + 0x38 ], %o0 4000a794: 96 10 00 18 mov %i0, %o3 4000a798: 98 07 bf fc add %fp, -4, %o4 4000a79c: 94 10 00 1d mov %i5, %o2 4000a7a0: 40 00 33 65 call 40017534 <rtems_rfs_fs_open> 4000a7a4: 92 10 00 1c mov %i4, %o1
if (rc)
4000a7a8: b0 92 20 00 orcc %o0, 0, %i0
4000a7ac: 12 80 00 26 bne 4000a844 <rtems_rfs_rtems_initialise+0x184> <== NEVER TAKEN
4000a7b0: d0 07 bf fc ld [ %fp + -4 ], %o0
mt_entry->ops = &rtems_rfs_ops;
4000a7b4: 03 10 00 8b sethi %hi(0x40022c00), %g1 4000a7b8: 82 10 62 e0 or %g1, 0x2e0, %g1 ! 40022ee0 <rtems_rfs_ops>
mt_entry->fs_info = fs;
4000a7bc: d0 24 60 08 st %o0, [ %l1 + 8 ]
mt_entry->ops = &rtems_rfs_ops;
4000a7c0: c2 24 60 0c st %g1, [ %l1 + 0xc ]
mt_entry->mt_fs_root->location.node_access = (void*) RTEMS_RFS_ROOT_INO;
4000a7c4: 82 10 20 01 mov 1, %g1 4000a7c8: c4 04 60 24 ld [ %l1 + 0x24 ], %g2 4000a7cc: c2 20 a0 08 st %g1, [ %g2 + 8 ]
mt_entry->mt_fs_root->location.handlers = &rtems_rfs_rtems_dir_handlers;
4000a7d0: 03 10 00 8b sethi %hi(0x40022c00), %g1 4000a7d4: 82 10 63 74 or %g1, 0x374, %g1 ! 40022f74 <rtems_rfs_rtems_dir_handlers> 4000a7d8: c2 20 a0 10 st %g1, [ %g2 + 0x10 ] 4000a7dc: 7f ff f3 ed call 40007790 <rtems_rfs_buffers_release> 4000a7e0: fa 02 20 80 ld [ %o0 + 0x80 ], %i5
_Mutex_recursive_Release( mutex );
4000a7e4: 40 00 09 01 call 4000cbe8 <_Mutex_recursive_Release> 4000a7e8: 90 10 00 1d mov %i5, %o0
}
4000a7ec: 81 c7 e0 08 ret 4000a7f0: 81 e8 00 00 restore
else if (strncmp (options, "no-local-cache",
4000a7f4: 40 00 53 b7 call 4001f6d0 <strncmp> <== NOT EXECUTED 4000a7f8: 01 00 00 00 nop <== NOT EXECUTED
else if (strncmp (options, "max-held-bufs",
4000a7fc: 92 10 00 10 mov %l0, %o1 <== NOT EXECUTED
else if (strncmp (options, "no-local-cache",
4000a800: 82 10 00 08 mov %o0, %g1 <== NOT EXECUTED
else if (strncmp (options, "max-held-bufs",
4000a804: 94 10 20 0d mov 0xd, %o2 <== NOT EXECUTED
else if (strncmp (options, "no-local-cache",
4000a808: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000a80c: 12 80 00 04 bne 4000a81c <rtems_rfs_rtems_initialise+0x15c> <== NOT EXECUTED 4000a810: 90 10 00 19 mov %i1, %o0 <== NOT EXECUTED 4000a814: 10 bf ff c8 b 4000a734 <rtems_rfs_rtems_initialise+0x74> <== NOT EXECUTED 4000a818: ba 17 60 02 or %i5, 2, %i5 <== NOT EXECUTED
else if (strncmp (options, "max-held-bufs",
4000a81c: 40 00 53 ad call 4001f6d0 <strncmp> <== NOT EXECUTED 4000a820: 01 00 00 00 nop <== NOT EXECUTED 4000a824: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4000a828: 12 80 00 17 bne 4000a884 <rtems_rfs_rtems_initialise+0x1c4> <== NOT EXECUTED 4000a82c: 94 10 20 00 clr %o2 <== NOT EXECUTED
max_held_buffers = strtoul (options + sizeof ("max-held-bufs"), 0, 0);
4000a830: 92 10 20 00 clr %o1 <== NOT EXECUTED 4000a834: 40 00 54 6d call 4001f9e8 <strtoul> <== NOT EXECUTED 4000a838: 90 06 60 0e add %i1, 0xe, %o0 <== NOT EXECUTED 4000a83c: 10 bf ff bd b 4000a730 <rtems_rfs_rtems_initialise+0x70> <== NOT EXECUTED 4000a840: b0 10 00 08 mov %o0, %i0 <== NOT EXECUTED 4000a844: 40 00 08 e9 call 4000cbe8 <_Mutex_recursive_Release> <== NOT EXECUTED 4000a848: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED
rtems_rfs_mutex_destroy (&rtems->access);
4000a84c: 40 00 38 25 call 400188e0 <rtems_rfs_mutex_destroy> <== NOT EXECUTED 4000a850: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED
free (rtems);
4000a854: 7f ff e1 eb call 40003000 <free> <== NOT EXECUTED 4000a858: 90 10 00 1c mov %i4, %o0 <== NOT EXECUTED
return rtems_rfs_rtems_error ("initialise: open", errno);
4000a85c: 40 00 4e b0 call 4001e31c <__errno> <== NOT EXECUTED 4000a860: 01 00 00 00 nop <== NOT EXECUTED 4000a864: 40 00 4e ae call 4001e31c <__errno> <== NOT EXECUTED 4000a868: ba 10 00 08 mov %o0, %i5 <== NOT EXECUTED 4000a86c: c2 07 40 00 ld [ %i5 ], %g1 <== NOT EXECUTED 4000a870: 80 a0 00 01 cmp %g0, %g1 <== NOT EXECUTED 4000a874: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4000a878: b0 60 20 00 subx %g0, 0, %i0 <== NOT EXECUTED 4000a87c: 81 c7 e0 08 ret <== NOT EXECUTED 4000a880: 81 e8 00 00 restore <== NOT EXECUTED
return rtems_rfs_rtems_error ("initialise: invalid option", EINVAL);
4000a884: 40 00 4e a6 call 4001e31c <__errno> <== NOT EXECUTED 4000a888: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000a88c: 82 10 20 16 mov 0x16, %g1 <== NOT EXECUTED 4000a890: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4000a894: 81 c7 e0 08 ret <== NOT EXECUTED 4000a898: 81 e8 00 00 restore <== NOT EXECUTED
free (rtems);
4000a89c: 7f ff e1 d9 call 40003000 <free> <== NOT EXECUTED 4000a8a0: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED
return rtems_rfs_rtems_error ("initialise: cannot create mutex", rc);
4000a8a4: 40 00 4e 9e call 4001e31c <__errno> <== NOT EXECUTED 4000a8a8: 01 00 00 00 nop <== NOT EXECUTED 4000a8ac: f6 22 00 00 st %i3, [ %o0 ] <== NOT EXECUTED 4000a8b0: 81 c7 e0 08 ret <== NOT EXECUTED 4000a8b4: 81 e8 00 00 restore <== NOT EXECUTED
return rtems_rfs_rtems_error ("initialise: local data", ENOMEM);
4000a8b8: 40 00 4e 99 call 4001e31c <__errno> <== NOT EXECUTED 4000a8bc: b0 10 3f ff mov -1, %i0 <== NOT EXECUTED 4000a8c0: 82 10 20 0c mov 0xc, %g1 <== NOT EXECUTED 4000a8c4: c2 22 00 00 st %g1, [ %o0 ] <== NOT EXECUTED 4000a8c8: 81 c7 e0 08 ret <== NOT EXECUTED 4000a8cc: 81 e8 00 00 restore <== NOT EXECUTED
4000aad4 <rtems_rfs_rtems_set_handlers>: */ bool rtems_rfs_rtems_set_handlers (rtems_filesystem_location_info_t* loc, rtems_rfs_inode_handle* inode) {
4000aad4: 9d e3 bf a0 save %sp, -96, %sp
return rtems_rfs_read_u16 (&handle->node->mode);
4000aad8: c4 06 60 0c ld [ %i1 + 0xc ], %g2 4000aadc: c2 08 a0 02 ldub [ %g2 + 2 ], %g1 4000aae0: d2 08 a0 03 ldub [ %g2 + 3 ], %o1 4000aae4: 83 28 60 08 sll %g1, 8, %g1
uint16_t mode = rtems_rfs_inode_get_mode (inode); loc->handlers = NULL; if (RTEMS_RFS_S_ISDIR (mode))
4000aae8: 05 00 00 10 sethi %hi(0x4000), %g2 4000aaec: 92 12 40 01 or %o1, %g1, %o1 4000aaf0: 82 0a 70 00 and %o1, -4096, %g1 4000aaf4: 80 a0 40 02 cmp %g1, %g2
4000aaf8: 02 80 00 1b be 4000ab64 <rtems_rfs_rtems_set_handlers+0x90>
4000aafc: c0 26 20 10 clr [ %i0 + 0x10 ]
loc->handlers = rtems_rfs_rtems_handlers (dir); else if (RTEMS_RFS_S_ISCHR (mode) || RTEMS_RFS_S_ISBLK(mode))
4000ab00: 05 3f ff ec sethi %hi(0xffffb000), %g2 4000ab04: 07 00 00 08 sethi %hi(0x2000), %g3 4000ab08: 84 0a 40 02 and %o1, %g2, %g2 4000ab0c: 80 a0 80 03 cmp %g2, %g3
4000ab10: 12 80 00 09 bne 4000ab34 <rtems_rfs_rtems_set_handlers+0x60> <== ALWAYS TAKEN
4000ab14: 05 00 00 28 sethi %hi(0xa000), %g2
loc->handlers = rtems_rfs_rtems_handlers (device);
4000ab18: 05 10 00 91 sethi %hi(0x40024400), %g2 <== NOT EXECUTED 4000ab1c: 84 10 a2 8c or %g2, 0x28c, %g2 ! 4002468c <rtems_rfs_rtems_device_handlers><== NOT EXECUTED 4000ab20: c4 26 20 10 st %g2, [ %i0 + 0x10 ] <== NOT EXECUTED
else { printf ("rtems-rfs: mode type unknown: %04x\n", mode); return false; } return true;
4000ab24: 82 10 20 01 mov 1, %g1 <== NOT EXECUTED
}
4000ab28: b0 08 60 01 and %g1, 1, %i0 <== NOT EXECUTED 4000ab2c: 81 c7 e0 08 ret <== NOT EXECUTED 4000ab30: 81 e8 00 00 restore <== NOT EXECUTED
else if (RTEMS_RFS_S_ISLNK (mode))
4000ab34: 80 a0 40 02 cmp %g1, %g2
4000ab38: 02 80 00 17 be 4000ab94 <rtems_rfs_rtems_set_handlers+0xc0>
4000ab3c: 05 00 00 20 sethi %hi(0x8000), %g2
else if (RTEMS_RFS_S_ISREG (mode))
4000ab40: 80 a0 40 02 cmp %g1, %g2
4000ab44: 12 80 00 0f bne 4000ab80 <rtems_rfs_rtems_set_handlers+0xac> <== NEVER TAKEN
4000ab48: 05 10 00 91 sethi %hi(0x40024400), %g2
return true;
4000ab4c: 82 10 20 01 mov 1, %g1
loc->handlers = rtems_rfs_rtems_handlers (file);
4000ab50: 84 10 a2 cc or %g2, 0x2cc, %g2 4000ab54: c4 26 20 10 st %g2, [ %i0 + 0x10 ]
}
4000ab58: b0 08 60 01 and %g1, 1, %i0 4000ab5c: 81 c7 e0 08 ret 4000ab60: 81 e8 00 00 restore
return true;
4000ab64: 82 10 20 01 mov 1, %g1
loc->handlers = rtems_rfs_rtems_handlers (dir);
4000ab68: 05 10 00 8b sethi %hi(0x40022c00), %g2 4000ab6c: 84 10 a3 74 or %g2, 0x374, %g2 ! 40022f74 <rtems_rfs_rtems_dir_handlers> 4000ab70: c4 26 20 10 st %g2, [ %i0 + 0x10 ]
}
4000ab74: b0 08 60 01 and %g1, 1, %i0 4000ab78: 81 c7 e0 08 ret 4000ab7c: 81 e8 00 00 restore
printf ("rtems-rfs: mode type unknown: %04x\n", mode);
4000ab80: 11 10 00 8b sethi %hi(0x40022c00), %o0 <== NOT EXECUTED 4000ab84: 7f ff e0 5d call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4000ab88: 90 12 23 b8 or %o0, 0x3b8, %o0 ! 40022fb8 <rtems_rfs_rtems_dir_handlers+0x44><== NOT EXECUTED
return false;
4000ab8c: 10 bf ff e7 b 4000ab28 <rtems_rfs_rtems_set_handlers+0x54> <== NOT EXECUTED 4000ab90: 82 10 20 00 clr %g1 <== NOT EXECUTED
return true;
4000ab94: 82 10 20 01 mov 1, %g1
loc->handlers = rtems_rfs_rtems_handlers (link);
4000ab98: 05 10 00 8b sethi %hi(0x40022c00), %g2 4000ab9c: 84 10 a3 2c or %g2, 0x32c, %g2 ! 40022f2c <rtems_rfs_rtems_link_handlers> 4000aba0: c4 26 20 10 st %g2, [ %i0 + 0x10 ]
}
4000aba4: b0 08 60 01 and %g1, 1, %i0 4000aba8: 81 c7 e0 08 ret 4000abac: 81 e8 00 00 restore
4001845c <rtems_rfs_symlink>: const char* link, int link_length, uid_t uid, gid_t gid, rtems_rfs_ino parent) {
4001845c: 9d e3 bf 00 save %sp, -256, %sp
rtems_rfs_inode_handle inode; rtems_rfs_ino ino; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_SYMLINK))
40018460: 90 10 20 02 mov 2, %o0
{
40018464: e2 17 a0 5e lduh [ %fp + 0x5e ], %l1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_SYMLINK))
40018468: 7f ff c9 d7 call 4000abc4 <rtems_rfs_trace> 4001846c: 92 10 20 00 clr %o1 40018470: 80 a2 20 00 cmp %o0, 0
40018474: 32 80 00 3f bne,a 40018570 <rtems_rfs_symlink+0x114> <== NEVER TAKEN
40018478: d2 07 a0 60 ld [ %fp + 0x60 ], %o1 <== NOT EXECUTED
printf (" link:"); for (c = 0; c < link_length; c++) printf ("%c", link[c]); } if (link_length >= rtems_rfs_fs_block_size (fs))
4001847c: c2 06 20 08 ld [ %i0 + 8 ], %g1 40018480: 80 a0 40 1c cmp %g1, %i4
40018484: 08 80 00 13 bleu 400184d0 <rtems_rfs_symlink+0x74> <== NEVER TAKEN
40018488: b4 10 20 5b mov 0x5b, %i2
return ENAMETOOLONG; rc = rtems_rfs_inode_create (fs, parent, name, strlen (name),
4001848c: 40 00 1c 67 call 4001f628 <strlen> 40018490: 90 10 00 19 mov %i1, %o0 40018494: 82 07 bf 74 add %fp, -140, %g1 40018498: e2 23 a0 60 st %l1, [ %sp + 0x60 ] 4001849c: 96 10 00 08 mov %o0, %o3 400184a0: fa 23 a0 5c st %i5, [ %sp + 0x5c ] 400184a4: 9a 10 20 01 mov 1, %o5 400184a8: c2 23 a0 64 st %g1, [ %sp + 0x64 ] 400184ac: 19 00 00 28 sethi %hi(0xa000), %o4 400184b0: d2 07 a0 60 ld [ %fp + 0x60 ], %o1 400184b4: 98 13 21 ff or %o4, 0x1ff, %o4 400184b8: 94 10 00 19 mov %i1, %o2 400184bc: 7f ff c4 78 call 4000969c <rtems_rfs_inode_create> 400184c0: 90 10 00 18 mov %i0, %o0
RTEMS_RFS_S_SYMLINK, 1, uid, gid, &ino); if (rc > 0)
400184c4: b4 92 20 00 orcc %o0, 0, %i2
400184c8: 04 80 00 04 ble 400184d8 <rtems_rfs_symlink+0x7c> <== ALWAYS TAKEN
400184cc: d2 07 bf 74 ld [ %fp + -140 ], %o1
rtems_rfs_inode_set_block_offset (&inode, link_length); rc = rtems_rfs_inode_close (fs, &inode); return rc; }
400184d0: 81 c7 e0 08 ret 400184d4: 91 e8 00 1a restore %g0, %i2, %o0
rc = rtems_rfs_inode_open (fs, ino, &inode, true);
400184d8: 96 10 20 01 mov 1, %o3 400184dc: 94 07 bf 88 add %fp, -120, %o2 400184e0: 7f ff c3 0c call 40009110 <rtems_rfs_inode_open> 400184e4: 90 10 00 18 mov %i0, %o0
if (rc > 0)
400184e8: b4 92 20 00 orcc %o0, 0, %i2
400184ec: 14 bf ff f9 bg 400184d0 <rtems_rfs_symlink+0x74> <== NEVER TAKEN
400184f0: 80 a7 20 13 cmp %i4, 0x13
if (link_length < RTEMS_RFS_INODE_DATA_NAME_SIZE)
400184f4: 18 80 00 3b bgu 400185e0 <rtems_rfs_symlink+0x184> <== NEVER TAKEN
400184f8: 92 07 bf 88 add %fp, -120, %o1
memset (inode.node->data.name, 0, RTEMS_RFS_INODE_DATA_NAME_SIZE);
400184fc: fa 07 bf 94 ld [ %fp + -108 ], %i5 40018500: 82 07 60 1c add %i5, 0x1c, %g1 40018504: 94 10 20 14 mov 0x14, %o2 40018508: 90 10 00 01 mov %g1, %o0 4001850c: 40 00 18 e4 call 4001e89c <memset> 40018510: 92 10 20 00 clr %o1
memcpy (inode.node->data.name, link, link_length);
40018514: 94 10 00 1c mov %i4, %o2 40018518: 40 00 18 57 call 4001e674 <memcpy> 4001851c: 92 10 00 1b mov %i3, %o1
rtems_rfs_write_u32 (&handle->node->block_count, block_count);
40018520: c0 2f 60 0c clrb [ %i5 + 0xc ] 40018524: c2 07 bf 94 ld [ %fp + -108 ], %g1 40018528: c0 28 60 0d clrb [ %g1 + 0xd ] 4001852c: c2 07 bf 94 ld [ %fp + -108 ], %g1 40018530: c0 28 60 0e clrb [ %g1 + 0xe ] 40018534: c2 07 bf 94 ld [ %fp + -108 ], %g1 40018538: c0 28 60 0f clrb [ %g1 + 0xf ]
rtems_rfs_write_u16 (&handle->node->block_offset, block_offset);
4001853c: 83 2f 20 10 sll %i4, 0x10, %g1 40018540: c4 07 bf 94 ld [ %fp + -108 ], %g2 40018544: 83 30 60 18 srl %g1, 0x18, %g1 40018548: c2 28 a0 0a stb %g1, [ %g2 + 0xa ]
rc = rtems_rfs_inode_close (fs, &inode);
4001854c: 92 07 bf 88 add %fp, -120, %o1 40018550: c2 07 bf 94 ld [ %fp + -108 ], %g1 40018554: f8 28 60 0b stb %i4, [ %g1 + 0xb ]
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40018558: 82 10 20 01 mov 1, %g1 4001855c: 90 10 00 18 mov %i0, %o0 40018560: 7f ff c3 65 call 400092f4 <rtems_rfs_inode_close> 40018564: c2 2f bf 98 stb %g1, [ %fp + -104 ]
return rc;
40018568: 10 bf ff da b 400184d0 <rtems_rfs_symlink+0x74> 4001856c: b4 10 00 08 mov %o0, %i2
printf ("rtems-rfs: symlink: parent:%" PRIu32 " name:", parent);
40018570: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 40018574: 7f ff a9 e1 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40018578: 90 12 22 38 or %o0, 0x238, %o0 ! 40024638 <IMFS_LIMITS_AND_OPTIONS+0x10f8><== NOT EXECUTED
for (c = 0; c < length; c++)
4001857c: 80 a6 a0 00 cmp %i2, 0 <== NOT EXECUTED 40018580: 04 80 00 0a ble 400185a8 <rtems_rfs_symlink+0x14c> <== NOT EXECUTED 40018584: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 40018588: a0 10 00 19 mov %i1, %l0 <== NOT EXECUTED 4001858c: b4 06 80 19 add %i2, %i1, %i2 <== NOT EXECUTED
printf ("%c", name[c]);
40018590: 40 00 19 08 call 4001e9b0 <putchar> <== NOT EXECUTED 40018594: d0 4c 00 00 ldsb [ %l0 ], %o0 <== NOT EXECUTED
for (c = 0; c < length; c++)
40018598: a0 04 20 01 inc %l0 <== NOT EXECUTED 4001859c: 80 a4 00 1a cmp %l0, %i2 <== NOT EXECUTED 400185a0: 12 bf ff fc bne 40018590 <rtems_rfs_symlink+0x134> <== NOT EXECUTED 400185a4: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED
printf (" link:");
400185a8: 7f ff a9 d4 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400185ac: 90 12 22 60 or %o0, 0x260, %o0 ! 40024660 <IMFS_LIMITS_AND_OPTIONS+0x1120><== NOT EXECUTED
for (c = 0; c < link_length; c++)
400185b0: 80 a7 20 00 cmp %i4, 0 <== NOT EXECUTED 400185b4: 04 bf ff b2 ble 4001847c <rtems_rfs_symlink+0x20> <== NOT EXECUTED 400185b8: a0 07 00 1b add %i4, %i3, %l0 <== NOT EXECUTED 400185bc: b4 10 00 1b mov %i3, %i2 <== NOT EXECUTED
printf ("%c", link[c]);
400185c0: 40 00 18 fc call 4001e9b0 <putchar> <== NOT EXECUTED 400185c4: d0 4e 80 00 ldsb [ %i2 ], %o0 <== NOT EXECUTED
for (c = 0; c < link_length; c++)
400185c8: b4 06 a0 01 inc %i2 <== NOT EXECUTED 400185cc: 80 a4 00 1a cmp %l0, %i2 <== NOT EXECUTED 400185d0: 12 bf ff fc bne 400185c0 <rtems_rfs_symlink+0x164> <== NOT EXECUTED 400185d4: 01 00 00 00 nop <== NOT EXECUTED 400185d8: 10 bf ff aa b 40018480 <rtems_rfs_symlink+0x24> <== NOT EXECUTED 400185dc: c2 06 20 08 ld [ %i0 + 8 ], %g1 <== NOT EXECUTED
rc = rtems_rfs_block_map_open (fs, &inode, &map);
400185e0: 94 07 bf b0 add %fp, -80, %o2 <== NOT EXECUTED 400185e4: 7f ff ee d2 call 4001412c <rtems_rfs_block_map_open> <== NOT EXECUTED 400185e8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
if (rc > 0)
400185ec: b4 92 20 00 orcc %o0, 0, %i2 <== NOT EXECUTED 400185f0: 14 80 00 27 bg 4001868c <rtems_rfs_symlink+0x230> <== NOT EXECUTED 400185f4: 96 07 bf 78 add %fp, -136, %o3 <== NOT EXECUTED
rc = rtems_rfs_block_map_grow (fs, &map, 1, &block);
400185f8: 94 10 20 01 mov 1, %o2 <== NOT EXECUTED 400185fc: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 40018600: 7f ff f0 1d call 40014674 <rtems_rfs_block_map_grow> <== NOT EXECUTED 40018604: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
if (rc > 0)
40018608: b4 92 20 00 orcc %o0, 0, %i2 <== NOT EXECUTED 4001860c: 14 80 00 24 bg 4001869c <rtems_rfs_symlink+0x240> <== NOT EXECUTED 40018610: d4 07 bf 78 ld [ %fp + -136 ], %o2 <== NOT EXECUTED
handle->dirty = false;
40018614: c0 2f bf 7c clrb [ %fp + -132 ] <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, false);
40018618: 96 10 20 00 clr %o3 <== NOT EXECUTED
handle->bnum = 0;
4001861c: c0 27 bf 80 clr [ %fp + -128 ] <== NOT EXECUTED 40018620: 92 07 bf 7c add %fp, -132, %o1 <== NOT EXECUTED
handle->buffer = NULL;
40018624: c0 27 bf 84 clr [ %fp + -124 ] <== NOT EXECUTED 40018628: 7f ff ba fe call 40007220 <rtems_rfs_buffer_handle_request> <== NOT EXECUTED 4001862c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
if (rc > 0)
40018630: b4 92 20 00 orcc %o0, 0, %i2 <== NOT EXECUTED 40018634: 14 80 00 1a bg 4001869c <rtems_rfs_symlink+0x240> <== NOT EXECUTED 40018638: c2 07 bf 84 ld [ %fp + -124 ], %g1 <== NOT EXECUTED
data = rtems_rfs_buffer_data (&buffer);
4001863c: c2 00 60 1c ld [ %g1 + 0x1c ], %g1 <== NOT EXECUTED
memset (data, 0xff, rtems_rfs_fs_block_size (fs));
40018640: d4 06 20 08 ld [ %i0 + 8 ], %o2 <== NOT EXECUTED 40018644: 90 10 00 01 mov %g1, %o0 <== NOT EXECUTED 40018648: 40 00 18 95 call 4001e89c <memset> <== NOT EXECUTED 4001864c: 92 10 20 ff mov 0xff, %o1 <== NOT EXECUTED
memcpy (data, link, link_length);
40018650: 94 10 00 1c mov %i4, %o2 <== NOT EXECUTED 40018654: 40 00 18 08 call 4001e674 <memcpy> <== NOT EXECUTED 40018658: 92 10 00 1b mov %i3, %o1 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4001865c: 92 07 bf 7c add %fp, -132, %o1 <== NOT EXECUTED 40018660: 7f ff bb b9 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 40018664: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
rc = rtems_rfs_block_map_close (fs, &map);
40018668: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
handle->dirty = false;
4001866c: c0 2f bf 7c clrb [ %fp + -132 ] <== NOT EXECUTED 40018670: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
handle->bnum = 0;
40018674: c0 27 bf 80 clr [ %fp + -128 ] <== NOT EXECUTED 40018678: 7f ff ef 0c call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 4001867c: c0 27 bf 84 clr [ %fp + -124 ] <== NOT EXECUTED
if (rc > 0)
40018680: b4 92 20 00 orcc %o0, 0, %i2 <== NOT EXECUTED 40018684: 04 bf ff af ble 40018540 <rtems_rfs_symlink+0xe4> <== NOT EXECUTED 40018688: 83 2f 20 10 sll %i4, 0x10, %g1 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
4001868c: 92 07 bf 88 add %fp, -120, %o1 <== NOT EXECUTED 40018690: 7f ff c3 19 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40018694: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
return rc;
40018698: 30 bf ff 8e b,a 400184d0 <rtems_rfs_symlink+0x74> <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
4001869c: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 400186a0: 7f ff ef 02 call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 400186a4: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
400186a8: 10 bf ff fa b 40018690 <rtems_rfs_symlink+0x234> <== NOT EXECUTED 400186ac: 92 07 bf 88 add %fp, -120, %o1 <== NOT EXECUTED
400186b0 <rtems_rfs_symlink_read>: rtems_rfs_symlink_read (rtems_rfs_file_system* fs, rtems_rfs_ino link, char* path, size_t size, size_t* length) {
400186b0: 9d e3 bf 18 save %sp, -232, %sp
rtems_rfs_inode_handle inode; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_SYMLINK_READ))
400186b4: 90 10 20 04 mov 4, %o0 400186b8: 7f ff c9 43 call 4000abc4 <rtems_rfs_trace> 400186bc: 92 10 20 00 clr %o1 400186c0: 80 a2 20 00 cmp %o0, 0
400186c4: 12 80 00 6b bne 40018870 <rtems_rfs_symlink_read+0x1c0> <== NEVER TAKEN
400186c8: 92 10 00 19 mov %i1, %o1
printf ("rtems-rfs: symlink-read: link:%" PRIu32 "\n", link); rc = rtems_rfs_inode_open (fs, link, &inode, true);
400186cc: 96 10 20 01 mov 1, %o3 400186d0: 94 07 bf 88 add %fp, -120, %o2 400186d4: 92 10 00 19 mov %i1, %o1 400186d8: 7f ff c2 8e call 40009110 <rtems_rfs_inode_open> 400186dc: 90 10 00 18 mov %i0, %o0
if (rc)
400186e0: ba 92 20 00 orcc %o0, 0, %i5
400186e4: 12 80 00 25 bne 40018778 <rtems_rfs_symlink_read+0xc8> <== NEVER TAKEN
400186e8: d2 07 bf 94 ld [ %fp + -108 ], %o1
return rc; if (!RTEMS_RFS_S_ISLNK (rtems_rfs_inode_get_mode (&inode)))
400186ec: 05 00 00 3c sethi %hi(0xf000), %g2 400186f0: c2 0a 60 02 ldub [ %o1 + 2 ], %g1 400186f4: 83 28 60 08 sll %g1, 8, %g1 400186f8: 82 08 40 02 and %g1, %g2, %g1 400186fc: 05 00 00 28 sethi %hi(0xa000), %g2 40018700: 80 a0 40 02 cmp %g1, %g2
40018704: 32 80 00 67 bne,a 400188a0 <rtems_rfs_symlink_read+0x1f0> <== NEVER TAKEN
40018708: 92 07 bf 88 add %fp, -120, %o1 <== NOT EXECUTED
{ rtems_rfs_inode_close (fs, &inode); return EINVAL; } *length = rtems_rfs_inode_get_block_offset (&inode);
4001870c: c2 0a 60 0a ldub [ %o1 + 0xa ], %g1 40018710: d4 0a 60 0b ldub [ %o1 + 0xb ], %o2 40018714: 83 28 60 08 sll %g1, 8, %g1 40018718: 94 12 80 01 or %o2, %g1, %o2 4001871c: 80 a2 80 1b cmp %o2, %i3
40018720: 38 80 00 45 bgu,a 40018834 <rtems_rfs_symlink_read+0x184>
40018724: 94 10 00 1b mov %i3, %o2 40018728: d4 27 00 00 st %o2, [ %i4 ]
return rtems_rfs_read_u32 (&handle->node->block_count);
4001872c: c6 0a 60 0c ldub [ %o1 + 0xc ], %g3 40018730: c4 0a 60 0d ldub [ %o1 + 0xd ], %g2 40018734: c2 0a 60 0e ldub [ %o1 + 0xe ], %g1 40018738: c8 0a 60 0f ldub [ %o1 + 0xf ], %g4 4001873c: 87 28 e0 18 sll %g3, 0x18, %g3 40018740: 85 28 a0 10 sll %g2, 0x10, %g2 40018744: 83 28 60 08 sll %g1, 8, %g1 40018748: 84 10 80 03 or %g2, %g3, %g2 4001874c: 82 10 40 02 or %g1, %g2, %g1
if (size < *length) { *length = size; } if (rtems_rfs_inode_get_block_count (&inode) == 0)
40018750: 80 91 00 01 orcc %g4, %g1, %g0
40018754: 32 80 00 0b bne,a 40018780 <rtems_rfs_symlink_read+0xd0> <== NEVER TAKEN
40018758: 92 07 bf 88 add %fp, -120, %o1 <== NOT EXECUTED
{ memcpy (path, inode.node->data.name, *length);
4001875c: 92 02 60 1c add %o1, 0x1c, %o1 40018760: 40 00 17 c5 call 4001e674 <memcpy> 40018764: 90 10 00 1a mov %i2, %o0
rtems_rfs_inode_close (fs, &inode); return rc; } } rc = rtems_rfs_inode_close (fs, &inode);
40018768: 92 07 bf 88 add %fp, -120, %o1 4001876c: 7f ff c2 e2 call 400092f4 <rtems_rfs_inode_close> 40018770: 90 10 00 18 mov %i0, %o0 40018774: ba 10 00 08 mov %o0, %i5
return rc; }
40018778: 81 c7 e0 08 ret 4001877c: 91 e8 00 1d restore %g0, %i5, %o0
rc = rtems_rfs_block_map_open (fs, &inode, &map);
40018780: 94 07 bf b0 add %fp, -80, %o2 <== NOT EXECUTED 40018784: 7f ff ee 6a call 4001412c <rtems_rfs_block_map_open> <== NOT EXECUTED 40018788: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
if (rc > 0)
4001878c: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 40018790: 14 80 00 24 bg 40018820 <rtems_rfs_symlink_read+0x170> <== NOT EXECUTED 40018794: 98 07 bf 78 add %fp, -136, %o4 <== NOT EXECUTED
rc = rtems_rfs_block_map_seek (fs, &map, 0, &block);
40018798: 94 10 20 00 clr %o2 <== NOT EXECUTED 4001879c: 96 10 20 00 clr %o3 <== NOT EXECUTED 400187a0: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 400187a4: 7f ff ef 89 call 400145c8 <rtems_rfs_block_map_seek> <== NOT EXECUTED 400187a8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
if (rc > 0)
400187ac: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 400187b0: 14 80 00 35 bg 40018884 <rtems_rfs_symlink_read+0x1d4> <== NOT EXECUTED 400187b4: d4 07 bf 78 ld [ %fp + -136 ], %o2 <== NOT EXECUTED
handle->dirty = false;
400187b8: c0 2f bf 7c clrb [ %fp + -132 ] <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, false);
400187bc: 96 10 20 00 clr %o3 <== NOT EXECUTED
handle->bnum = 0;
400187c0: c0 27 bf 80 clr [ %fp + -128 ] <== NOT EXECUTED 400187c4: 92 07 bf 7c add %fp, -132, %o1 <== NOT EXECUTED
handle->buffer = NULL;
400187c8: c0 27 bf 84 clr [ %fp + -124 ] <== NOT EXECUTED 400187cc: 7f ff ba 95 call 40007220 <rtems_rfs_buffer_handle_request> <== NOT EXECUTED 400187d0: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
if (rc > 0)
400187d4: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 400187d8: 14 80 00 2b bg 40018884 <rtems_rfs_symlink_read+0x1d4> <== NOT EXECUTED 400187dc: c2 07 bf 84 ld [ %fp + -124 ], %g1 <== NOT EXECUTED
memcpy (path, data, *length);
400187e0: d2 00 60 1c ld [ %g1 + 0x1c ], %o1 <== NOT EXECUTED 400187e4: d4 07 00 00 ld [ %i4 ], %o2 <== NOT EXECUTED 400187e8: 40 00 17 a3 call 4001e674 <memcpy> <== NOT EXECUTED 400187ec: 90 10 00 1a mov %i2, %o0 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
400187f0: 92 07 bf 7c add %fp, -132, %o1 <== NOT EXECUTED 400187f4: 7f ff bb 54 call 40007544 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED 400187f8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
rc = rtems_rfs_block_map_close (fs, &map);
400187fc: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
handle->dirty = false;
40018800: c0 2f bf 7c clrb [ %fp + -132 ] <== NOT EXECUTED 40018804: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
handle->bnum = 0;
40018808: c0 27 bf 80 clr [ %fp + -128 ] <== NOT EXECUTED 4001880c: 7f ff ee a7 call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 40018810: c0 27 bf 84 clr [ %fp + -124 ] <== NOT EXECUTED
if (rc > 0)
40018814: ba 92 20 00 orcc %o0, 0, %i5 <== NOT EXECUTED 40018818: 04 bf ff d5 ble 4001876c <rtems_rfs_symlink_read+0xbc> <== NOT EXECUTED 4001881c: 92 07 bf 88 add %fp, -120, %o1 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40018820: 92 07 bf 88 add %fp, -120, %o1 <== NOT EXECUTED 40018824: 7f ff c2 b4 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40018828: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
}
4001882c: 81 c7 e0 08 ret <== NOT EXECUTED 40018830: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED
40018834: d4 27 00 00 st %o2, [ %i4 ] 40018838: c6 0a 60 0c ldub [ %o1 + 0xc ], %g3 4001883c: c4 0a 60 0d ldub [ %o1 + 0xd ], %g2 40018840: c2 0a 60 0e ldub [ %o1 + 0xe ], %g1 40018844: c8 0a 60 0f ldub [ %o1 + 0xf ], %g4 40018848: 87 28 e0 18 sll %g3, 0x18, %g3 4001884c: 85 28 a0 10 sll %g2, 0x10, %g2 40018850: 83 28 60 08 sll %g1, 8, %g1 40018854: 84 10 80 03 or %g2, %g3, %g2 40018858: 82 10 40 02 or %g1, %g2, %g1
if (rtems_rfs_inode_get_block_count (&inode) == 0)
4001885c: 80 91 00 01 orcc %g4, %g1, %g0
40018860: 32 bf ff c8 bne,a 40018780 <rtems_rfs_symlink_read+0xd0> <== NEVER TAKEN
40018864: 92 07 bf 88 add %fp, -120, %o1 <== NOT EXECUTED
memcpy (path, inode.node->data.name, *length);
40018868: 10 bf ff be b 40018760 <rtems_rfs_symlink_read+0xb0> 4001886c: 92 02 60 1c add %o1, 0x1c, %o1
printf ("rtems-rfs: symlink-read: link:%" PRIu32 "\n", link);
40018870: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 40018874: 7f ff a9 21 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40018878: 90 12 22 68 or %o0, 0x268, %o0 ! 40024668 <IMFS_LIMITS_AND_OPTIONS+0x1128><== NOT EXECUTED
rc = rtems_rfs_inode_open (fs, link, &inode, true);
4001887c: 10 bf ff 95 b 400186d0 <rtems_rfs_symlink_read+0x20> <== NOT EXECUTED 40018880: 96 10 20 01 mov 1, %o3 <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40018884: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 40018888: 7f ff ee 88 call 400142a8 <rtems_rfs_block_map_close> <== NOT EXECUTED 4001888c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40018890: 92 07 bf 88 add %fp, -120, %o1 <== NOT EXECUTED 40018894: 7f ff c2 98 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 40018898: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
return rc;
4001889c: 30 bf ff e4 b,a 4001882c <rtems_rfs_symlink_read+0x17c> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
400188a0: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400188a4: 7f ff c2 94 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 400188a8: ba 10 20 16 mov 0x16, %i5 <== NOT EXECUTED
}
400188ac: 81 c7 e0 08 ret <== NOT EXECUTED 400188b0: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED
40017fe8 <rtems_rfs_unlink>: rtems_rfs_unlink (rtems_rfs_file_system* fs, rtems_rfs_ino parent, rtems_rfs_ino target, uint32_t doff, rtems_rfs_unlink_dir dir_mode) {
40017fe8: 9d e3 bf 50 save %sp, -176, %sp
rtems_rfs_inode_handle target_inode; uint16_t links; bool dir; int rc; if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40017fec: 90 10 20 00 clr %o0 40017ff0: 7f ff ca f5 call 4000abc4 <rtems_rfs_trace> 40017ff4: 13 00 80 00 sethi %hi(0x2000000), %o1 40017ff8: 80 a2 20 00 cmp %o0, 0
40017ffc: 12 80 00 57 bne 40018158 <rtems_rfs_unlink+0x170> <== NEVER TAKEN
40018000: 94 10 00 1a mov %i2, %o2
printf ("rtems-rfs: unlink: parent(%" PRIu32 ") -X-> (%" PRIu32 ")\n", parent, target); rc = rtems_rfs_inode_open (fs, target, &target_inode, true);
40018004: 96 10 20 01 mov 1, %o3 40018008: 94 07 bf d8 add %fp, -40, %o2 4001800c: 92 10 00 1a mov %i2, %o1 40018010: 7f ff c4 40 call 40009110 <rtems_rfs_inode_open> 40018014: 90 10 00 18 mov %i0, %o0
if (rc)
40018018: ba 92 20 00 orcc %o0, 0, %i5
4001801c: 12 80 00 4d bne 40018150 <rtems_rfs_unlink+0x168> <== NEVER TAKEN
40018020: c2 07 bf e4 ld [ %fp + -28 ], %g1
return rtems_rfs_read_u16 (&handle->node->mode);
40018024: 05 00 00 3c sethi %hi(0xf000), %g2 40018028: c2 08 60 02 ldub [ %g1 + 2 ], %g1 4001802c: 83 28 60 08 sll %g1, 8, %g1 40018030: 82 08 40 02 and %g1, %g2, %g1
/* * If a directory process the unlink mode. */ dir = RTEMS_RFS_S_ISDIR (rtems_rfs_inode_get_mode (&target_inode)); if (dir)
40018034: 05 00 00 10 sethi %hi(0x4000), %g2 40018038: 80 a0 40 02 cmp %g1, %g2
4001803c: 12 80 00 07 bne 40018058 <rtems_rfs_unlink+0x70>
40018040: a1 28 60 10 sll %g1, 0x10, %l0
{ switch (dir_mode)
40018044: 80 a7 20 00 cmp %i4, 0
40018048: 02 80 00 8d be 4001827c <rtems_rfs_unlink+0x294> <== NEVER TAKEN
4001804c: 80 a7 20 01 cmp %i4, 1
40018050: 02 80 00 54 be 400181a0 <rtems_rfs_unlink+0x1b8>
40018054: 92 07 bf d8 add %fp, -40, %o1
default: break; } } rc = rtems_rfs_inode_open (fs, parent, &parent_inode, true);
40018058: 96 10 20 01 mov 1, %o3 4001805c: 94 07 bf b0 add %fp, -80, %o2 40018060: 92 10 00 19 mov %i1, %o1 40018064: 7f ff c4 2b call 40009110 <rtems_rfs_inode_open> 40018068: 90 10 00 18 mov %i0, %o0
if (rc)
4001806c: ba 92 20 00 orcc %o0, 0, %i5
40018070: 12 80 00 40 bne 40018170 <rtems_rfs_unlink+0x188> <== NEVER TAKEN
40018074: 96 10 00 1b mov %i3, %o3
rc, strerror (rc)); rtems_rfs_inode_close (fs, &target_inode); return rc; } rc = rtems_rfs_dir_del_entry (fs, &parent_inode, target, doff);
40018078: 94 10 00 1a mov %i2, %o2 4001807c: 92 07 bf b0 add %fp, -80, %o1 40018080: 7f ff f5 d6 call 400157d8 <rtems_rfs_dir_del_entry> 40018084: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40018088: ba 92 20 00 orcc %o0, 0, %i5
4001808c: 14 80 00 96 bg 400182e4 <rtems_rfs_unlink+0x2fc> <== NEVER TAKEN
40018090: c4 07 bf e4 ld [ %fp + -28 ], %g2
links = rtems_rfs_read_u16 (&handle->node->links);
40018094: c2 08 80 00 ldub [ %g2 ], %g1 40018098: 83 28 60 08 sll %g1, 8, %g1 4001809c: fa 08 a0 01 ldub [ %g2 + 1 ], %i5 400180a0: ba 17 40 01 or %i5, %g1, %i5
return rc; } links = rtems_rfs_inode_get_links (&target_inode); if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
400180a4: 90 10 20 00 clr %o0
if (links == 0xffff)
400180a8: 03 00 00 3f sethi %hi(0xfc00), %g1 400180ac: b9 2f 60 10 sll %i5, 0x10, %i4 400180b0: 82 10 63 ff or %g1, 0x3ff, %g1 400180b4: 80 a7 40 01 cmp %i5, %g1
400180b8: 02 80 00 4e be 400181f0 <rtems_rfs_unlink+0x208> <== NEVER TAKEN
400180bc: 13 00 80 00 sethi %hi(0x2000000), %o1 400180c0: 7f ff ca c1 call 4000abc4 <rtems_rfs_trace> 400180c4: 01 00 00 00 nop 400180c8: 80 a2 20 00 cmp %o0, 0
400180cc: 12 80 00 ac bne 4001837c <rtems_rfs_unlink+0x394> <== NEVER TAKEN
400180d0: 94 10 00 1d mov %i5, %o2
printf ("rtems-rfs: unlink: target:%" PRIu32 " links:%u\n", target, links); if (links > 1)
400180d4: b9 37 20 10 srl %i4, 0x10, %i4 400180d8: 80 a7 20 01 cmp %i4, 1
400180dc: 08 80 00 4a bleu 40018204 <rtems_rfs_unlink+0x21c>
400180e0: c4 07 bf e4 ld [ %fp + -28 ], %g2
{ links--;
400180e4: ba 07 7f ff add %i5, -1, %i5
rtems_rfs_write_u16 (&handle->node->links, links);
400180e8: 83 2f 60 10 sll %i5, 0x10, %g1 400180ec: 83 30 60 18 srl %g1, 0x18, %g1 400180f0: c2 28 80 00 stb %g1, [ %g2 ] 400180f4: c2 07 bf e4 ld [ %fp + -28 ], %g1 400180f8: fa 28 60 01 stb %i5, [ %g1 + 1 ]
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400180fc: 82 10 20 01 mov 1, %g1 40018100: c2 2f bf e8 stb %g1, [ %fp + -24 ]
links--; rtems_rfs_inode_set_links (&parent_inode, links); } } rc = rtems_rfs_inode_time_stamp_now (&parent_inode, true, true);
40018104: 94 10 20 01 mov 1, %o2 40018108: 92 10 20 01 mov 1, %o1 4001810c: 7f ff c4 eb call 400094b8 <rtems_rfs_inode_time_stamp_now> 40018110: 90 07 bf b0 add %fp, -80, %o0
if (rc > 0)
40018114: ba 92 20 00 orcc %o0, 0, %i5
40018118: 14 80 00 65 bg 400182ac <rtems_rfs_unlink+0x2c4> <== NEVER TAKEN
4001811c: 90 10 20 00 clr %o0
rtems_rfs_inode_close (fs, &parent_inode); rtems_rfs_inode_close (fs, &target_inode); return rc; } rc = rtems_rfs_inode_close (fs, &parent_inode);
40018120: 92 07 bf b0 add %fp, -80, %o1 40018124: 7f ff c4 74 call 400092f4 <rtems_rfs_inode_close> 40018128: 90 10 00 18 mov %i0, %o0
if (rc > 0)
4001812c: ba 92 20 00 orcc %o0, 0, %i5
40018130: 14 80 00 85 bg 40018344 <rtems_rfs_unlink+0x35c> <== NEVER TAKEN
40018134: 90 10 20 00 clr %o0
rc, strerror (rc)); rtems_rfs_inode_close (fs, &target_inode); return rc; } rc = rtems_rfs_inode_close (fs, &target_inode);
40018138: 92 07 bf d8 add %fp, -40, %o1 4001813c: 7f ff c4 6e call 400092f4 <rtems_rfs_inode_close> 40018140: 90 10 00 18 mov %i0, %o0
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40018144: ba 92 20 00 orcc %o0, 0, %i5
40018148: 14 80 00 93 bg 40018394 <rtems_rfs_unlink+0x3ac> <== NEVER TAKEN
4001814c: 90 10 20 00 clr %o0
printf ("rtems-rfs: link: target inode-close failed: %d: %s\n", rc, strerror (rc)); return rc; }
40018150: 81 c7 e0 08 ret 40018154: 91 e8 00 1d restore %g0, %i5, %o0
printf ("rtems-rfs: unlink: parent(%" PRIu32 ") -X-> (%" PRIu32 ")\n", parent, target);
40018158: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4001815c: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 40018160: 7f ff aa e6 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40018164: 90 12 20 68 or %o0, 0x68, %o0 ! 40024468 <IMFS_LIMITS_AND_OPTIONS+0xf28><== NOT EXECUTED
rc = rtems_rfs_inode_open (fs, target, &target_inode, true);
40018168: 10 bf ff a8 b 40018008 <rtems_rfs_unlink+0x20> <== NOT EXECUTED 4001816c: 96 10 20 01 mov 1, %o3 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40018170: 90 10 20 00 clr %o0 <== NOT EXECUTED 40018174: 7f ff ca 94 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40018178: 13 00 80 00 sethi %hi(0x2000000), %o1 <== NOT EXECUTED 4001817c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40018180: 12 80 00 68 bne 40018320 <rtems_rfs_unlink+0x338> <== NOT EXECUTED 40018184: 01 00 00 00 nop <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
40018188: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED
4001818c: 90 10 00 18 mov %i0, %o0 40018190: 7f ff c4 59 call 400092f4 <rtems_rfs_inode_close> 40018194: b0 10 00 1d mov %i5, %i0
}
40018198: 81 c7 e0 08 ret 4001819c: 81 e8 00 00 restore
rc = rtems_rfs_dir_empty (fs, &target_inode);
400181a0: 7f ff f7 8f call 40015fdc <rtems_rfs_dir_empty> 400181a4: 90 10 00 18 mov %i0, %o0
if (rc > 0)
400181a8: ba 92 20 00 orcc %o0, 0, %i5
400181ac: 04 bf ff ac ble 4001805c <rtems_rfs_unlink+0x74>
400181b0: 96 10 20 01 mov 1, %o3
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
400181b4: 90 10 20 00 clr %o0 400181b8: 7f ff ca 83 call 4000abc4 <rtems_rfs_trace> 400181bc: 13 00 80 00 sethi %hi(0x2000000), %o1 400181c0: 80 a2 20 00 cmp %o0, 0
400181c4: 22 bf ff f2 be,a 4001818c <rtems_rfs_unlink+0x1a4> <== ALWAYS TAKEN
400181c8: 92 07 bf d8 add %fp, -40, %o1
printf ("rtems-rfs: dir-empty: %d: %s\n", rc, strerror (rc));
400181cc: 40 00 1d 10 call 4001f60c <strerror> <== NOT EXECUTED 400181d0: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400181d4: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 400181d8: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400181dc: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 400181e0: 7f ff aa c6 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400181e4: 90 12 20 b8 or %o0, 0xb8, %o0 ! 400244b8 <IMFS_LIMITS_AND_OPTIONS+0xf78><== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
400181e8: 10 bf ff e9 b 4001818c <rtems_rfs_unlink+0x1a4> <== NOT EXECUTED 400181ec: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
400181f0: 7f ff ca 75 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400181f4: 01 00 00 00 nop <== NOT EXECUTED 400181f8: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400181fc: 12 80 00 8f bne 40018438 <rtems_rfs_unlink+0x450> <== NOT EXECUTED 40018200: 94 10 20 00 clr %o2 <== NOT EXECUTED
rc = rtems_rfs_inode_delete (fs, &target_inode);
40018204: 92 07 bf d8 add %fp, -40, %o1 40018208: 7f ff c4 62 call 40009390 <rtems_rfs_inode_delete> 4001820c: 90 10 00 18 mov %i0, %o0
if (rc > 0)
40018210: ba 92 20 00 orcc %o0, 0, %i5
40018214: 14 80 00 6d bg 400183c8 <rtems_rfs_unlink+0x3e0> <== NEVER TAKEN
40018218: 03 10 00 00 sethi %hi(0x40000000), %g1
if (dir)
4001821c: 80 a4 00 01 cmp %l0, %g1
40018220: 12 bf ff ba bne 40018108 <rtems_rfs_unlink+0x120>
40018224: 94 10 20 01 mov 1, %o2
links = rtems_rfs_read_u16 (&handle->node->links);
40018228: c4 07 bf bc ld [ %fp + -68 ], %g2 4001822c: c6 08 80 00 ldub [ %g2 ], %g3 40018230: 87 28 e0 08 sll %g3, 8, %g3 40018234: c2 08 a0 01 ldub [ %g2 + 1 ], %g1 40018238: 82 10 40 03 or %g1, %g3, %g1
if (links == 0xffff)
4001823c: 07 00 00 3f sethi %hi(0xfc00), %g3 40018240: 86 10 e3 ff or %g3, 0x3ff, %g3 ! ffff <_ISR_Stack_size+0xefff> 40018244: 80 a0 40 03 cmp %g1, %g3
40018248: 02 80 00 82 be 40018450 <rtems_rfs_unlink+0x468> <== NEVER TAKEN
4001824c: 80 a0 60 01 cmp %g1, 1
if (links > 1) 40018250: 08 80 00 05 bleu 40018264 <rtems_rfs_unlink+0x27c>
40018254: 86 10 20 00 clr %g3
links--;
40018258: 82 00 7f ff add %g1, -1, %g1
rtems_rfs_write_u16 (&handle->node->links, links);
4001825c: 87 28 60 10 sll %g1, 0x10, %g3 40018260: 87 30 e0 18 srl %g3, 0x18, %g3 40018264: c6 28 80 00 stb %g3, [ %g2 ] 40018268: c4 07 bf bc ld [ %fp + -68 ], %g2 4001826c: c2 28 a0 01 stb %g1, [ %g2 + 1 ]
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40018270: 82 10 20 01 mov 1, %g1
}
40018274: 10 bf ff a4 b 40018104 <rtems_rfs_unlink+0x11c> 40018278: c2 2f bf c0 stb %g1, [ %fp + -64 ]
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
4001827c: 90 10 20 00 clr %o0 <== NOT EXECUTED 40018280: 7f ff ca 51 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40018284: 13 00 80 00 sethi %hi(0x2000000), %o1 <== NOT EXECUTED 40018288: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 4001828c: 12 80 00 5e bne 40018404 <rtems_rfs_unlink+0x41c> <== NOT EXECUTED 40018290: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
40018294: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40018298: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 4001829c: 7f ff c4 16 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 400182a0: ba 10 20 15 mov 0x15, %i5 <== NOT EXECUTED
}
400182a4: 81 c7 e0 08 ret <== NOT EXECUTED 400182a8: 91 e8 00 1d restore %g0, %i5, %o0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
400182ac: 7f ff ca 46 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400182b0: 13 00 80 00 sethi %hi(0x2000000), %o1 <== NOT EXECUTED 400182b4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400182b8: 12 80 00 57 bne 40018414 <rtems_rfs_unlink+0x42c> <== NOT EXECUTED 400182bc: 01 00 00 00 nop <== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode);
400182c0: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED 400182c4: 7f ff c4 0c call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 400182c8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
400182cc: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 400182d0: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED 400182d4: 7f ff c4 08 call 400092f4 <rtems_rfs_inode_close> <== NOT EXECUTED 400182d8: b0 10 00 1d mov %i5, %i0 <== NOT EXECUTED
}
400182dc: 81 c7 e0 08 ret <== NOT EXECUTED 400182e0: 81 e8 00 00 restore <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
400182e4: 90 10 20 00 clr %o0 <== NOT EXECUTED 400182e8: 7f ff ca 37 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400182ec: 13 00 80 00 sethi %hi(0x2000000), %o1 <== NOT EXECUTED 400182f0: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400182f4: 22 bf ff f4 be,a 400182c4 <rtems_rfs_unlink+0x2dc> <== NOT EXECUTED 400182f8: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
printf ("rtems-rfs: unlink: dir-del failed: %d: %s\n",
400182fc: 40 00 1c c4 call 4001f60c <strerror> <== NOT EXECUTED 40018300: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40018304: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40018308: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 4001830c: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 40018310: 7f ff aa 7a call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40018314: 90 12 21 08 or %o0, 0x108, %o0 ! 40024508 <IMFS_LIMITS_AND_OPTIONS+0xfc8><== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode);
40018318: 10 bf ff eb b 400182c4 <rtems_rfs_unlink+0x2dc> <== NOT EXECUTED 4001831c: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
printf ("rtems-rfs: link: inode-open failed: %d: %s\n",
40018320: 40 00 1c bb call 4001f60c <strerror> <== NOT EXECUTED 40018324: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40018328: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 4001832c: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40018330: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 40018334: 7f ff aa 71 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40018338: 90 12 20 d8 or %o0, 0xd8, %o0 ! 400244d8 <IMFS_LIMITS_AND_OPTIONS+0xf98><== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
4001833c: 10 bf ff 94 b 4001818c <rtems_rfs_unlink+0x1a4> <== NOT EXECUTED 40018340: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40018344: 7f ff ca 20 call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40018348: 13 00 80 00 sethi %hi(0x2000000), %o1 <== NOT EXECUTED 4001834c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 40018350: 22 bf ff 8f be,a 4001818c <rtems_rfs_unlink+0x1a4> <== NOT EXECUTED 40018354: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED
printf ("rtems-rfs: link: parent inode-close failed: %d: %s\n",
40018358: 40 00 1c ad call 4001f60c <strerror> <== NOT EXECUTED 4001835c: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 40018360: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40018364: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40018368: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 4001836c: 7f ff aa 63 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40018370: 90 12 21 c8 or %o0, 0x1c8, %o0 ! 400245c8 <IMFS_LIMITS_AND_OPTIONS+0x1088><== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
40018374: 10 bf ff 86 b 4001818c <rtems_rfs_unlink+0x1a4> <== NOT EXECUTED 40018378: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED
printf ("rtems-rfs: unlink: target:%" PRIu32 " links:%u\n", target, links);
4001837c: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 40018380: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 40018384: 7f ff aa 5d call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40018388: 90 12 21 38 or %o0, 0x138, %o0 ! 40024538 <IMFS_LIMITS_AND_OPTIONS+0xff8><== NOT EXECUTED
if (links > 1)
4001838c: 10 bf ff 53 b 400180d8 <rtems_rfs_unlink+0xf0> <== NOT EXECUTED 40018390: b9 37 20 10 srl %i4, 0x10, %i4 <== NOT EXECUTED
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40018394: 7f ff ca 0c call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 40018398: 13 00 80 00 sethi %hi(0x2000000), %o1 <== NOT EXECUTED 4001839c: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400183a0: 02 bf ff 6c be 40018150 <rtems_rfs_unlink+0x168> <== NOT EXECUTED 400183a4: 01 00 00 00 nop <== NOT EXECUTED
printf ("rtems-rfs: link: target inode-close failed: %d: %s\n",
400183a8: 40 00 1c 99 call 4001f60c <strerror> <== NOT EXECUTED 400183ac: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400183b0: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 400183b4: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400183b8: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 400183bc: 7f ff aa 4f call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400183c0: 90 12 22 00 or %o0, 0x200, %o0 ! 40024600 <IMFS_LIMITS_AND_OPTIONS+0x10c0><== NOT EXECUTED 400183c4: 30 bf ff 63 b,a 40018150 <rtems_rfs_unlink+0x168> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
400183c8: 90 10 20 00 clr %o0 <== NOT EXECUTED 400183cc: 7f ff c9 fe call 4000abc4 <rtems_rfs_trace> <== NOT EXECUTED 400183d0: 13 00 80 00 sethi %hi(0x2000000), %o1 <== NOT EXECUTED 400183d4: 80 a2 20 00 cmp %o0, 0 <== NOT EXECUTED 400183d8: 22 bf ff bb be,a 400182c4 <rtems_rfs_unlink+0x2dc> <== NOT EXECUTED 400183dc: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
printf ("rtems-rfs: unlink: inode-del failed: %d: %s\n",
400183e0: 40 00 1c 8b call 4001f60c <strerror> <== NOT EXECUTED 400183e4: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 400183e8: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 400183ec: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 400183f0: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 400183f4: 7f ff aa 41 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 400183f8: 90 12 21 60 or %o0, 0x160, %o0 ! 40024560 <IMFS_LIMITS_AND_OPTIONS+0x1020><== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode);
400183fc: 10 bf ff b2 b 400182c4 <rtems_rfs_unlink+0x2dc> <== NOT EXECUTED 40018400: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
printf ("rtems-rfs: link is a directory\n");
40018404: 7f ff aa 4b call 40002d30 <__wrap_puts> <== NOT EXECUTED 40018408: 90 12 20 98 or %o0, 0x98, %o0 <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
4001840c: 10 bf ff a3 b 40018298 <rtems_rfs_unlink+0x2b0> <== NOT EXECUTED 40018410: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED
printf ("rtems-rfs: link: inode-time-stamp failed: %d: %s\n",
40018414: 40 00 1c 7e call 4001f60c <strerror> <== NOT EXECUTED 40018418: 90 10 00 1d mov %i5, %o0 <== NOT EXECUTED 4001841c: 92 10 00 1d mov %i5, %o1 <== NOT EXECUTED 40018420: 94 10 00 08 mov %o0, %o2 <== NOT EXECUTED 40018424: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 40018428: 7f ff aa 34 call 40002cf8 <__wrap_printf> <== NOT EXECUTED 4001842c: 90 12 21 90 or %o0, 0x190, %o0 ! 40024590 <IMFS_LIMITS_AND_OPTIONS+0x1050><== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode);
40018430: 10 bf ff a5 b 400182c4 <rtems_rfs_unlink+0x2dc> <== NOT EXECUTED 40018434: 92 07 bf b0 add %fp, -80, %o1 <== NOT EXECUTED
printf ("rtems-rfs: unlink: target:%" PRIu32 " links:%u\n", target, links);
40018438: 92 10 00 1a mov %i2, %o1 <== NOT EXECUTED 4001843c: 11 10 00 91 sethi %hi(0x40024400), %o0 <== NOT EXECUTED 40018440: 7f ff aa 2e call 40002cf8 <__wrap_printf> <== NOT EXECUTED 40018444: 90 12 21 38 or %o0, 0x138, %o0 ! 40024538 <IMFS_LIMITS_AND_OPTIONS+0xff8><== NOT EXECUTED
rc = rtems_rfs_inode_delete (fs, &target_inode);
40018448: 10 bf ff 70 b 40018208 <rtems_rfs_unlink+0x220> <== NOT EXECUTED 4001844c: 92 07 bf d8 add %fp, -40, %o1 <== NOT EXECUTED 40018450: 82 10 20 00 clr %g1 <== NOT EXECUTED 40018454: 10 bf ff 84 b 40018264 <rtems_rfs_unlink+0x27c> <== NOT EXECUTED 40018458: 86 10 20 00 clr %g3 <== NOT EXECUTED