RTEMS-6
Annotated Report
librfs
Sun Feb 28 12:26:26 2021
40005fcc <rtems_rfs_bitmap_create_search>:
if (!control->buffer)
40005fcc: 00052583 lw a1,0(a0)
40005fd0: 10058463 beqz a1,400060d8 <rtems_rfs_bitmap_create_search+0x10c>
int
rtems_rfs_bitmap_create_search (rtems_rfs_bitmap_control* control)
{
40005fd4: ff010113 addi sp,sp,-16
40005fd8: 00812423 sw s0,8(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005fdc: 00852603 lw a2,8(a0)
40005fe0: 00050413 mv s0,a0
40005fe4: 00452503 lw a0,4(a0)
40005fe8: 00100693 li a3,1
{
40005fec: 00112623 sw ra,12(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005ff0: 58c000ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
if (rc)
40005ff4: 0c051c63 bnez a0,400060cc <rtems_rfs_bitmap_create_search+0x100><== NEVER TAKEN
*map = rtems_rfs_buffer_data (control->buffer);
40005ff8: 00042783 lw a5,0(s0)
40005ffc: 0087a783 lw a5,8(a5)
40006000: 01c7a583 lw a1,28(a5)
rc = rtems_rfs_bitmap_load_map (control, &map);
if (rc > 0)
return rc;
control->free = 0;
search_map = control->search_bits;
40006004: 01442e83 lw t4,20(s0)
size = control->size;
40006008: 00c42603 lw a2,12(s0)
control->free = 0;
4000600c: 00042823 sw zero,16(s0)
bit = 0;
rtems_rfs_bitmap_check(control, search_map);
*search_map = RTEMS_RFS_BITMAP_ELEMENT_CLEAR;
40006010: fff00793 li a5,-1
40006014: 00fea023 sw a5,0(t4)
while (size)
40006018: 02060c63 beqz a2,40006050 <rtems_rfs_bitmap_create_search+0x84> <== NEVER TAKEN
{
rtems_rfs_bitmap_element bits;
int available;
if (size < rtems_rfs_bitmap_element_bits ())
4000601c: 01f00313 li t1,31
40006020: 00458593 addi a1,a1,4
bit = 0;
40006024: 00000893 li a7,0
return RTEMS_RFS_BITMAP_TEST_BIT (target, bit);
40006028: 00100813 li a6,1
available = size;
}
else
{
bits = *map;
available = rtems_rfs_bitmap_element_bits ();
4000602c: 02000f13 li t5,32
mask >>= (rtems_rfs_bitmap_element_bits () - size);
40006030: fff00e13 li t3,-1
bits = rtems_rfs_bitmap_merge (*map,
40006034: ffc5a683 lw a3,-4(a1)
if (size < rtems_rfs_bitmap_element_bits ())
40006038: 06c36663 bltu t1,a2,400060a4 <rtems_rfs_bitmap_create_search+0xd8>
mask >>= (rtems_rfs_bitmap_element_bits () - size);
4000603c: 40cf07b3 sub a5,t5,a2
40006040: 00fe57b3 srl a5,t3,a5
40006044: 00f6f6b3 and a3,a3,a5
available = size;
40006048: 00060513 mv a0,a2
}
if (rtems_rfs_bitmap_match (bits, RTEMS_RFS_BITMAP_ELEMENT_SET))
4000604c: 00069c63 bnez a3,40006064 <rtems_rfs_bitmap_create_search+0x98>
else
bit++;
map++;
}
return 0;
40006050: 00000513 li a0,0
}
40006054: 00c12083 lw ra,12(sp)
40006058: 00812403 lw s0,8(sp)
4000605c: 01010113 addi sp,sp,16
40006060: 00008067 ret
if (rtems_rfs_bitmap_match (bits, RTEMS_RFS_BITMAP_ELEMENT_SET))
40006064: 00000613 li a2,0
for (b = 0; b < available; b++)
40006068: 00000793 li a5,0
return RTEMS_RFS_BITMAP_TEST_BIT (target, bit);
4000606c: 00f81733 sll a4,a6,a5
40006070: 00d77733 and a4,a4,a3
for (b = 0; b < available; b++)
40006074: 00178793 addi a5,a5,1
if (!rtems_rfs_bitmap_test (bits, b))
40006078: 00070863 beqz a4,40006088 <rtems_rfs_bitmap_create_search+0xbc>
control->free++;
4000607c: 01042703 lw a4,16(s0)
40006080: 00170713 addi a4,a4,1
40006084: 00e42823 sw a4,16(s0)
for (b = 0; b < available; b++)
40006088: fef512e3 bne a0,a5,4000606c <rtems_rfs_bitmap_create_search+0xa0>
if (bit == (rtems_rfs_bitmap_element_bits () - 1))
4000608c: 02688463 beq a7,t1,400060b4 <rtems_rfs_bitmap_create_search+0xe8>
bit++;
40006090: 00188893 addi a7,a7,1
while (size)
40006094: fa060ee3 beqz a2,40006050 <rtems_rfs_bitmap_create_search+0x84>
40006098: 00458593 addi a1,a1,4
bits = rtems_rfs_bitmap_merge (*map,
4000609c: ffc5a683 lw a3,-4(a1)
if (size < rtems_rfs_bitmap_element_bits ())
400060a0: f8c37ee3 bgeu t1,a2,4000603c <rtems_rfs_bitmap_create_search+0x70>
available = rtems_rfs_bitmap_element_bits ();
400060a4: fe060613 addi a2,a2,-32
if (rtems_rfs_bitmap_match (bits, RTEMS_RFS_BITMAP_ELEMENT_SET))
400060a8: fe0682e3 beqz a3,4000608c <rtems_rfs_bitmap_create_search+0xc0>
available = rtems_rfs_bitmap_element_bits ();
400060ac: 02000513 li a0,32
400060b0: fb9ff06f j 40006068 <rtems_rfs_bitmap_create_search+0x9c>
if (size > 0)
400060b4: f8060ee3 beqz a2,40006050 <rtems_rfs_bitmap_create_search+0x84>
*search_map = RTEMS_RFS_BITMAP_ELEMENT_CLEAR;
400060b8: 01cea223 sw t3,4(t4)
bit = 0;
400060bc: 00000893 li a7,0
search_map++;
400060c0: 004e8e93 addi t4,t4,4
400060c4: 00458593 addi a1,a1,4
400060c8: fd5ff06f j 4000609c <rtems_rfs_bitmap_create_search+0xd0>
if (rc > 0)
400060cc: f8a044e3 bgtz a0,40006054 <rtems_rfs_bitmap_create_search+0x88> <== NOT EXECUTED
*map = NULL;
400060d0: 00000593 li a1,0 <== NOT EXECUTED
400060d4: f31ff06f j 40006004 <rtems_rfs_bitmap_create_search+0x38> <== NOT EXECUTED
return ENXIO;
400060d8: 00600513 li a0,6
}
400060dc: 00008067 ret
40005ed8 <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)
{
40005ed8: fe010113 addi sp,sp,-32
40005edc: 00812c23 sw s0,24(sp)
40005ee0: 00912a23 sw s1,20(sp)
40005ee4: 01212823 sw s2,16(sp)
40005ee8: 01312623 sw s3,12(sp)
40005eec: 01412423 sw s4,8(sp)
40005ef0: 01512223 sw s5,4(sp)
40005ef4: 00112e23 sw ra,28(sp)
/*
* 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)
upper_seed += window;
40005ef8: 00001ab7 lui s5,0x1
{
40005efc: 00058413 mv s0,a1
40005f00: 00060993 mv s3,a2
40005f04: 00050913 mv s2,a0
40005f08: 00068a13 mv s4,a3
*allocated = false;
40005f0c: 00060023 sb zero,0(a2)
lower_seed = seed;
40005f10: 00058493 mv s1,a1
upper_seed += window;
40005f14: 800a8a93 addi s5,s5,-2048 # 800 <bsp_section_data_size+0x2c4>
while (((upper_seed >= 0) && (upper_seed < control->size))
40005f18: 04044263 bltz s0,40005f5c <rtems_rfs_bitmap_map_alloc+0x84>
40005f1c: 00c92783 lw a5,12(s2)
40005f20: 02f47e63 bgeu s0,a5,40005f5c <rtems_rfs_bitmap_map_alloc+0x84>
*bit = upper_seed;
40005f24: 008a2023 sw s0,0(s4)
rc = rtems_rfs_search_map_for_clear_bit (control, bit, allocated,
40005f28: 00100693 li a3,1
40005f2c: 00098613 mv a2,s3
40005f30: 000a0593 mv a1,s4
40005f34: 00090513 mv a0,s2
40005f38: 915ff0ef jal ra,4000584c <rtems_rfs_search_map_for_clear_bit.constprop.0>
if ((rc > 0) || *allocated)
40005f3c: 06a04463 bgtz a0,40005fa4 <rtems_rfs_bitmap_map_alloc+0xcc> <== NEVER TAKEN
40005f40: 0009c783 lbu a5,0(s3)
40005f44: 06079063 bnez a5,40005fa4 <rtems_rfs_bitmap_map_alloc+0xcc>
if (lower_seed >= 0)
40005f48: 0204d263 bgez s1,40005f6c <rtems_rfs_bitmap_map_alloc+0x94>
if (upper_seed < control->size)
40005f4c: 00c92783 lw a5,12(s2)
40005f50: fcf474e3 bgeu s0,a5,40005f18 <rtems_rfs_bitmap_map_alloc+0x40>
upper_seed += window;
40005f54: 01540433 add s0,s0,s5
while (((upper_seed >= 0) && (upper_seed < control->size))
40005f58: fc0452e3 bgez s0,40005f1c <rtems_rfs_bitmap_map_alloc+0x44> <== ALWAYS TAKEN
|| ((lower_seed >= 0) && (lower_seed < control->size)))
40005f5c: 0404c463 bltz s1,40005fa4 <rtems_rfs_bitmap_map_alloc+0xcc>
40005f60: 00c92783 lw a5,12(s2)
40005f64: 04f4f063 bgeu s1,a5,40005fa4 <rtems_rfs_bitmap_map_alloc+0xcc>
if (upper_seed < control->size)
40005f68: faf46ee3 bltu s0,a5,40005f24 <rtems_rfs_bitmap_map_alloc+0x4c>
*bit = lower_seed;
40005f6c: 009a2023 sw s1,0(s4)
rc = rtems_rfs_search_map_for_clear_bit (control, bit, allocated,
40005f70: fff00693 li a3,-1
40005f74: 00098613 mv a2,s3
40005f78: 000a0593 mv a1,s4
40005f7c: 00090513 mv a0,s2
40005f80: 8cdff0ef jal ra,4000584c <rtems_rfs_search_map_for_clear_bit.constprop.0>
if ((rc > 0) || *allocated)
40005f84: 02a04063 bgtz a0,40005fa4 <rtems_rfs_bitmap_map_alloc+0xcc> <== NEVER TAKEN
40005f88: 0009c783 lbu a5,0(s3)
40005f8c: 00079c63 bnez a5,40005fa4 <rtems_rfs_bitmap_map_alloc+0xcc>
if (upper_seed < control->size)
40005f90: 00c92783 lw a5,12(s2)
40005f94: 00f47463 bgeu s0,a5,40005f9c <rtems_rfs_bitmap_map_alloc+0xc4>
upper_seed += window;
40005f98: 01540433 add s0,s0,s5
if (lower_seed >= 0)
lower_seed -= window;
40005f9c: 80048493 addi s1,s1,-2048
40005fa0: f79ff06f j 40005f18 <rtems_rfs_bitmap_map_alloc+0x40>
}
return 0;
}
40005fa4: 01c12083 lw ra,28(sp)
40005fa8: 01812403 lw s0,24(sp)
40005fac: 01412483 lw s1,20(sp)
40005fb0: 01012903 lw s2,16(sp)
40005fb4: 00c12983 lw s3,12(sp)
40005fb8: 00812a03 lw s4,8(sp)
40005fbc: 00412a83 lw s5,4(sp)
40005fc0: 00000513 li a0,0
40005fc4: 02010113 addi sp,sp,32
40005fc8: 00008067 ret
40005bb0 <rtems_rfs_bitmap_map_clear>:
if (!control->buffer)
40005bb0: 00052783 lw a5,0(a0)
40005bb4: 0c078463 beqz a5,40005c7c <rtems_rfs_bitmap_map_clear+0xcc>
{
40005bb8: ff010113 addi sp,sp,-16
40005bbc: 00812423 sw s0,8(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005bc0: 00852603 lw a2,8(a0)
40005bc4: 00050413 mv s0,a0
40005bc8: 00452503 lw a0,4(a0)
{
40005bcc: 00912223 sw s1,4(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005bd0: 00100693 li a3,1
40005bd4: 00058493 mv s1,a1
40005bd8: 00078593 mv a1,a5
{
40005bdc: 00112623 sw ra,12(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005be0: 19d000ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
if (rc)
40005be4: 08051663 bnez a0,40005c70 <rtems_rfs_bitmap_map_clear+0xc0> <== NEVER TAKEN
*map = rtems_rfs_buffer_data (control->buffer);
40005be8: 00042783 lw a5,0(s0)
40005bec: 0087a783 lw a5,8(a5)
40005bf0: 01c7a783 lw a5,28(a5)
if (bit >= control->size)
40005bf4: 00c42703 lw a4,12(s0)
return EINVAL;
40005bf8: 01600513 li a0,22
if (bit >= control->size)
40005bfc: 06e4f063 bgeu s1,a4,40005c5c <rtems_rfs_bitmap_map_clear+0xac>
index = rtems_rfs_bitmap_map_index (bit);
40005c00: 4054d693 srai a3,s1,0x5
element = map[index];
40005c04: 00269713 slli a4,a3,0x2
40005c08: 00e787b3 add a5,a5,a4
40005c0c: 0007a803 lw a6,0(a5)
map[index] = rtems_rfs_bitmap_clear (element, 1 << offset);
40005c10: 00100593 li a1,1
40005c14: 00959733 sll a4,a1,s1
return RTEMS_RFS_BITMAP_CLEAR_BITS (target, bits);
40005c18: 01076733 or a4,a4,a6
search_map = control->search_bits;
40005c1c: 01442603 lw a2,20(s0)
map[index] = rtems_rfs_bitmap_clear (element, 1 << offset);
40005c20: 00e7a023 sw a4,0(a5)
return 0;
40005c24: 00000513 li a0,0
if (rtems_rfs_bitmap_match(element, map[index]))
40005c28: 02e80a63 beq a6,a4,40005c5c <rtems_rfs_bitmap_map_clear+0xac>
index = rtems_rfs_bitmap_map_index (bit);
40005c2c: 40a4d493 srai s1,s1,0xa
search_map[index] = rtems_rfs_bitmap_clear (search_map[index], 1 << offset);
40005c30: 00249493 slli s1,s1,0x2
40005c34: 009604b3 add s1,a2,s1
return RTEMS_RFS_BITMAP_CLEAR_BITS (target, bits);
40005c38: 0004a783 lw a5,0(s1)
search_map[index] = rtems_rfs_bitmap_clear (search_map[index], 1 << offset);
40005c3c: 00d596b3 sll a3,a1,a3
rtems_rfs_buffer_mark_dirty (control->buffer);
40005c40: 00042703 lw a4,0(s0)
return RTEMS_RFS_BITMAP_CLEAR_BITS (target, bits);
40005c44: 00d7e6b3 or a3,a5,a3
search_map[index] = rtems_rfs_bitmap_clear (search_map[index], 1 << offset);
40005c48: 00d4a023 sw a3,0(s1)
control->free++;
40005c4c: 01042783 lw a5,16(s0)
rtems_rfs_buffer_mark_dirty (control->buffer);
40005c50: 00b70023 sb a1,0(a4)
control->free++;
40005c54: 00178793 addi a5,a5,1
40005c58: 00f42823 sw a5,16(s0)
}
40005c5c: 00c12083 lw ra,12(sp)
40005c60: 00812403 lw s0,8(sp)
40005c64: 00412483 lw s1,4(sp)
40005c68: 01010113 addi sp,sp,16
40005c6c: 00008067 ret
if (rc > 0)
40005c70: fea046e3 bgtz a0,40005c5c <rtems_rfs_bitmap_map_clear+0xac> <== NOT EXECUTED
*map = NULL;
40005c74: 00000793 li a5,0 <== NOT EXECUTED
40005c78: f7dff06f j 40005bf4 <rtems_rfs_bitmap_map_clear+0x44> <== NOT EXECUTED
return ENXIO;
40005c7c: 00600513 li a0,6
}
40005c80: 00008067 ret
40005de4 <rtems_rfs_bitmap_map_clear_all>:
if (!control->buffer)
40005de4: 00052583 lw a1,0(a0)
40005de8: 0e058463 beqz a1,40005ed0 <rtems_rfs_bitmap_map_clear_all+0xec>
{
40005dec: fe010113 addi sp,sp,-32
40005df0: 00812c23 sw s0,24(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005df4: 00852603 lw a2,8(a0)
40005df8: 00050413 mv s0,a0
40005dfc: 00452503 lw a0,4(a0)
40005e00: 00100693 li a3,1
{
40005e04: 00112e23 sw ra,28(sp)
40005e08: 00912a23 sw s1,20(sp)
40005e0c: 01212823 sw s2,16(sp)
40005e10: 01312623 sw s3,12(sp)
40005e14: 01412423 sw s4,8(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005e18: 764000ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
if (rc)
40005e1c: 0a051263 bnez a0,40005ec0 <rtems_rfs_bitmap_map_clear_all+0xdc> <== NEVER TAKEN
*map = rtems_rfs_buffer_data (control->buffer);
40005e20: 00042983 lw s3,0(s0)
40005e24: 0089a783 lw a5,8(s3)
40005e28: 01c7a503 lw a0,28(a5)
elements = rtems_rfs_bitmap_elements (control->size);
40005e2c: 00c42783 lw a5,12(s0)
map[e] = RTEMS_RFS_BITMAP_ELEMENT_CLEAR;
40005e30: 0ff00593 li a1,255
40005e34: fff00a13 li s4,-1
elements = rtems_rfs_bitmap_elements (control->size);
40005e38: fff78493 addi s1,a5,-1
40005e3c: 0054d913 srli s2,s1,0x5
40005e40: 00190913 addi s2,s2,1
map[e] = RTEMS_RFS_BITMAP_ELEMENT_CLEAR;
40005e44: 00291613 slli a2,s2,0x2
control->free = control->size;
40005e48: 00f42823 sw a5,16(s0)
last_search_bit = rtems_rfs_bitmap_map_offset (elements);
40005e4c: 01f97913 andi s2,s2,31
map[e] = RTEMS_RFS_BITMAP_ELEMENT_CLEAR;
40005e50: 4e8180ef jal ra,4001e338 <memset>
if (last_search_bit == 0)
40005e54: 04091e63 bnez s2,40005eb0 <rtems_rfs_bitmap_map_clear_all+0xcc>
elements = rtems_rfs_bitmap_elements (elements);
40005e58: 00a4d493 srli s1,s1,0xa
control->search_bits[elements - 1] =
40005e5c: 01442783 lw a5,20(s0)
for (e = 0; e < (elements - 1); e++)
40005e60: 00048c63 beqz s1,40005e78 <rtems_rfs_bitmap_map_clear_all+0x94>
control->search_bits[e] = RTEMS_RFS_BITMAP_ELEMENT_CLEAR;
40005e64: 00078513 mv a0,a5
40005e68: 00249613 slli a2,s1,0x2
40005e6c: 0ff00593 li a1,255
40005e70: 4c8180ef jal ra,4001e338 <memset>
40005e74: 00050793 mv a5,a0
control->search_bits[elements - 1] =
40005e78: 00249493 slli s1,s1,0x2
40005e7c: 009784b3 add s1,a5,s1
40005e80: 0144a023 sw s4,0(s1)
rtems_rfs_buffer_mark_dirty (control->buffer);
40005e84: 00100793 li a5,1
40005e88: 00f98023 sb a5,0(s3)
return 0;
40005e8c: 00000513 li a0,0
}
40005e90: 01c12083 lw ra,28(sp)
40005e94: 01812403 lw s0,24(sp)
40005e98: 01412483 lw s1,20(sp)
40005e9c: 01012903 lw s2,16(sp)
40005ea0: 00c12983 lw s3,12(sp)
40005ea4: 00812a03 lw s4,8(sp)
40005ea8: 02010113 addi sp,sp,32
40005eac: 00008067 ret
mask >>= (rtems_rfs_bitmap_element_bits () - size);
40005eb0: 02000793 li a5,32
40005eb4: 41278933 sub s2,a5,s2
40005eb8: 012a5a33 srl s4,s4,s2
40005ebc: f9dff06f j 40005e58 <rtems_rfs_bitmap_map_clear_all+0x74>
if (rc > 0)
40005ec0: fca048e3 bgtz a0,40005e90 <rtems_rfs_bitmap_map_clear_all+0xac> <== NOT EXECUTED
*map = rtems_rfs_buffer_data (control->buffer);
40005ec4: 00042983 lw s3,0(s0) <== NOT EXECUTED
*map = NULL;
40005ec8: 00000513 li a0,0 <== NOT EXECUTED
40005ecc: f61ff06f j 40005e2c <rtems_rfs_bitmap_map_clear_all+0x48> <== NOT EXECUTED
return ENXIO;
40005ed0: 00600513 li a0,6
}
40005ed4: 00008067 ret
40005acc <rtems_rfs_bitmap_map_set>:
if (!control->buffer)
40005acc: 00052783 lw a5,0(a0)
40005ad0: 0c078c63 beqz a5,40005ba8 <rtems_rfs_bitmap_map_set+0xdc>
{
40005ad4: ff010113 addi sp,sp,-16
40005ad8: 00812423 sw s0,8(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005adc: 00852603 lw a2,8(a0)
40005ae0: 00050413 mv s0,a0
40005ae4: 00452503 lw a0,4(a0)
{
40005ae8: 00912223 sw s1,4(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005aec: 00100693 li a3,1
40005af0: 00058493 mv s1,a1
40005af4: 00078593 mv a1,a5
{
40005af8: 00112623 sw ra,12(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005afc: 281000ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
if (rc)
40005b00: 08051e63 bnez a0,40005b9c <rtems_rfs_bitmap_map_set+0xd0> <== NEVER TAKEN
*map = rtems_rfs_buffer_data (control->buffer);
40005b04: 00042783 lw a5,0(s0)
40005b08: 0087a783 lw a5,8(a5)
40005b0c: 01c7a703 lw a4,28(a5)
if (bit >= control->size)
40005b10: 00c42783 lw a5,12(s0)
return EINVAL;
40005b14: 01600513 li a0,22
if (bit >= control->size)
40005b18: 06f4f863 bgeu s1,a5,40005b88 <rtems_rfs_bitmap_map_set+0xbc>
index = rtems_rfs_bitmap_map_index (bit);
40005b1c: 4054d513 srai a0,s1,0x5
element = map[index];
40005b20: 00251793 slli a5,a0,0x2
40005b24: 00f70733 add a4,a4,a5
40005b28: 00072603 lw a2,0(a4)
map[index] = rtems_rfs_bitmap_set (element, 1 << offset);
40005b2c: 00100693 li a3,1
40005b30: 009697b3 sll a5,a3,s1
return RTEMS_RFS_BITMAP_SET_BITS (target, bits);
40005b34: fff7c793 not a5,a5
40005b38: 00c7f7b3 and a5,a5,a2
search_map = control->search_bits;
40005b3c: 01442583 lw a1,20(s0)
map[index] = rtems_rfs_bitmap_set (element, 1 << offset);
40005b40: 00f72023 sw a5,0(a4)
if (rtems_rfs_bitmap_match(element, map[index]))
40005b44: 04f60063 beq a2,a5,40005b84 <rtems_rfs_bitmap_map_set+0xb8>
control->free--;
40005b48: 01042783 lw a5,16(s0)
rtems_rfs_buffer_mark_dirty (control->buffer);
40005b4c: 00042603 lw a2,0(s0)
control->free--;
40005b50: fff78793 addi a5,a5,-1
40005b54: 00f42823 sw a5,16(s0)
if (rtems_rfs_bitmap_match(map[index], RTEMS_RFS_BITMAP_ELEMENT_SET))
40005b58: 00072783 lw a5,0(a4)
rtems_rfs_buffer_mark_dirty (control->buffer);
40005b5c: 00d60023 sb a3,0(a2)
if (rtems_rfs_bitmap_match(map[index], RTEMS_RFS_BITMAP_ELEMENT_SET))
40005b60: 02079263 bnez a5,40005b84 <rtems_rfs_bitmap_map_set+0xb8>
index = rtems_rfs_bitmap_map_index (bit);
40005b64: 40a4d493 srai s1,s1,0xa
search_map[index] = rtems_rfs_bitmap_set (search_map[index], 1 << offset);
40005b68: 00249493 slli s1,s1,0x2
40005b6c: 009584b3 add s1,a1,s1
return RTEMS_RFS_BITMAP_SET_BITS (target, bits);
40005b70: 0004a783 lw a5,0(s1)
search_map[index] = rtems_rfs_bitmap_set (search_map[index], 1 << offset);
40005b74: 00a696b3 sll a3,a3,a0
return RTEMS_RFS_BITMAP_SET_BITS (target, bits);
40005b78: fff6c693 not a3,a3
40005b7c: 00d7f6b3 and a3,a5,a3
search_map[index] = rtems_rfs_bitmap_set (search_map[index], 1 << offset);
40005b80: 00d4a023 sw a3,0(s1)
return 0;
40005b84: 00000513 li a0,0
}
40005b88: 00c12083 lw ra,12(sp)
40005b8c: 00812403 lw s0,8(sp)
40005b90: 00412483 lw s1,4(sp)
40005b94: 01010113 addi sp,sp,16
40005b98: 00008067 ret
if (rc > 0)
40005b9c: fea046e3 bgtz a0,40005b88 <rtems_rfs_bitmap_map_set+0xbc> <== NOT EXECUTED
*map = NULL;
40005ba0: 00000713 li a4,0 <== NOT EXECUTED
40005ba4: f6dff06f j 40005b10 <rtems_rfs_bitmap_map_set+0x44> <== NOT EXECUTED
return ENXIO;
40005ba8: 00600513 li a0,6
}
40005bac: 00008067 ret
40005d30 <rtems_rfs_bitmap_map_set_all>:
if (!control->buffer)
40005d30: 00052583 lw a1,0(a0)
40005d34: 0a058463 beqz a1,40005ddc <rtems_rfs_bitmap_map_set_all+0xac>
{
40005d38: ff010113 addi sp,sp,-16
40005d3c: 00812423 sw s0,8(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005d40: 00852603 lw a2,8(a0)
40005d44: 00050413 mv s0,a0
40005d48: 00452503 lw a0,4(a0)
40005d4c: 00100693 li a3,1
{
40005d50: 00112623 sw ra,12(sp)
40005d54: 00912223 sw s1,4(sp)
40005d58: 01212023 sw s2,0(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005d5c: 021000ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
if (rc)
40005d60: 06051663 bnez a0,40005dcc <rtems_rfs_bitmap_map_set_all+0x9c> <== NEVER TAKEN
*map = rtems_rfs_buffer_data (control->buffer);
40005d64: 00042903 lw s2,0(s0)
40005d68: 00892783 lw a5,8(s2)
40005d6c: 01c7a503 lw a0,28(a5)
elements = rtems_rfs_bitmap_elements (control->size);
40005d70: 00c42483 lw s1,12(s0)
map[e] = RTEMS_RFS_BITMAP_ELEMENT_SET;
40005d74: 00000593 li a1,0
control->free = 0;
40005d78: 00042823 sw zero,16(s0)
elements = rtems_rfs_bitmap_elements (control->size);
40005d7c: fff48493 addi s1,s1,-1
40005d80: 0054d613 srli a2,s1,0x5
40005d84: 00160613 addi a2,a2,1
map[e] = RTEMS_RFS_BITMAP_ELEMENT_SET;
40005d88: 00261613 slli a2,a2,0x2
40005d8c: 5ac180ef jal ra,4001e338 <memset>
control->search_bits[e] = RTEMS_RFS_BITMAP_ELEMENT_SET;
40005d90: 01442503 lw a0,20(s0)
elements = rtems_rfs_bitmap_elements (elements);
40005d94: 00a4d613 srli a2,s1,0xa
40005d98: 00160613 addi a2,a2,1
control->search_bits[e] = RTEMS_RFS_BITMAP_ELEMENT_SET;
40005d9c: 00261613 slli a2,a2,0x2
40005da0: 00000593 li a1,0
40005da4: 594180ef jal ra,4001e338 <memset>
rtems_rfs_buffer_mark_dirty (control->buffer);
40005da8: 00100793 li a5,1
40005dac: 00f90023 sb a5,0(s2)
return 0;
40005db0: 00000513 li a0,0
}
40005db4: 00c12083 lw ra,12(sp)
40005db8: 00812403 lw s0,8(sp)
40005dbc: 00412483 lw s1,4(sp)
40005dc0: 00012903 lw s2,0(sp)
40005dc4: 01010113 addi sp,sp,16
40005dc8: 00008067 ret
if (rc > 0)
40005dcc: fea044e3 bgtz a0,40005db4 <rtems_rfs_bitmap_map_set_all+0x84> <== NOT EXECUTED
*map = rtems_rfs_buffer_data (control->buffer);
40005dd0: 00042903 lw s2,0(s0) <== NOT EXECUTED
*map = NULL;
40005dd4: 00000513 li a0,0 <== NOT EXECUTED
40005dd8: f99ff06f j 40005d70 <rtems_rfs_bitmap_map_set_all+0x40> <== NOT EXECUTED
return ENXIO;
40005ddc: 00600513 li a0,6
}
40005de0: 00008067 ret
40005c84 <rtems_rfs_bitmap_map_test>:
if (!control->buffer)
40005c84: 00052783 lw a5,0(a0)
40005c88: 0a078063 beqz a5,40005d28 <rtems_rfs_bitmap_map_test+0xa4>
{
40005c8c: ff010113 addi sp,sp,-16
40005c90: 00812423 sw s0,8(sp)
40005c94: 01212023 sw s2,0(sp)
40005c98: 00050413 mv s0,a0
40005c9c: 00060913 mv s2,a2
rc = rtems_rfs_buffer_handle_request (control->fs,
40005ca0: 00852603 lw a2,8(a0)
40005ca4: 00452503 lw a0,4(a0)
{
40005ca8: 00912223 sw s1,4(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005cac: 00100693 li a3,1
40005cb0: 00058493 mv s1,a1
40005cb4: 00078593 mv a1,a5
{
40005cb8: 00112623 sw ra,12(sp)
rc = rtems_rfs_buffer_handle_request (control->fs,
40005cbc: 0c1000ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
if (rc)
40005cc0: 04051e63 bnez a0,40005d1c <rtems_rfs_bitmap_map_test+0x98> <== NEVER TAKEN
*map = rtems_rfs_buffer_data (control->buffer);
40005cc4: 00042783 lw a5,0(s0)
40005cc8: 0087a783 lw a5,8(a5)
40005ccc: 01c7a783 lw a5,28(a5)
if (bit >= control->size)
40005cd0: 00c42703 lw a4,12(s0)
return EINVAL;
40005cd4: 01600513 li a0,22
if (bit >= control->size)
40005cd8: 02e4f663 bgeu s1,a4,40005d04 <rtems_rfs_bitmap_map_test+0x80>
index = rtems_rfs_bitmap_map_index (bit);
40005cdc: 4054d713 srai a4,s1,0x5
*state = rtems_rfs_bitmap_test (map[index], bit);
40005ce0: 00271713 slli a4,a4,0x2
40005ce4: 00e787b3 add a5,a5,a4
return RTEMS_RFS_BITMAP_TEST_BIT (target, bit);
40005ce8: 0007a783 lw a5,0(a5)
40005cec: 00100593 li a1,1
40005cf0: 009594b3 sll s1,a1,s1
40005cf4: 00f4f4b3 and s1,s1,a5
40005cf8: 0014b493 seqz s1,s1
40005cfc: 00990023 sb s1,0(s2)
return 0;
40005d00: 00000513 li a0,0
}
40005d04: 00c12083 lw ra,12(sp)
40005d08: 00812403 lw s0,8(sp)
40005d0c: 00412483 lw s1,4(sp)
40005d10: 00012903 lw s2,0(sp)
40005d14: 01010113 addi sp,sp,16
40005d18: 00008067 ret
if (rc > 0)
40005d1c: fea044e3 bgtz a0,40005d04 <rtems_rfs_bitmap_map_test+0x80> <== NOT EXECUTED
*map = NULL;
40005d20: 00000793 li a5,0 <== NOT EXECUTED
40005d24: fadff06f j 40005cd0 <rtems_rfs_bitmap_map_test+0x4c> <== NOT EXECUTED
return ENXIO;
40005d28: 00600513 li a0,6
}
40005d2c: 00008067 ret
4001374c <rtems_rfs_block_map_close>:
if (map->dirty && map->inode)
4001374c: 0005c783 lbu a5,0(a1)
{
40013750: fe010113 addi sp,sp,-32
40013754: 00812c23 sw s0,24(sp)
40013758: 00912a23 sw s1,20(sp)
4001375c: 00112e23 sw ra,28(sp)
40013760: 01212823 sw s2,16(sp)
40013764: 01312623 sw s3,12(sp)
40013768: 00058413 mv s0,a1
4001376c: 00050493 mv s1,a0
if (map->dirty && map->inode)
40013770: 16078a63 beqz a5,400138e4 <rtems_rfs_block_map_close+0x198>
40013774: 0045a583 lw a1,4(a1)
40013778: 16058663 beqz a1,400138e4 <rtems_rfs_block_map_close+0x198> <== NEVER TAKEN
brc = rtems_rfs_inode_load (fs, map->inode);
4001377c: a45f40ef jal ra,400081c0 <rtems_rfs_inode_load>
40013780: 00050913 mv s2,a0
if (brc > 0)
40013784: 03840993 addi s3,s0,56
40013788: 16a04263 bgtz a0,400138ec <rtems_rfs_block_map_close+0x1a0> <== NEVER TAKEN
4001378c: ff800313 li t1,-8
40013790: 02440713 addi a4,s0,36
40013794: 40830333 sub t1,t1,s0
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40013798: 00100893 li a7,1
rtems_rfs_inode_set_block (map->inode, b, map->blocks[b]);
4001379c: 00442783 lw a5,4(s0)
400137a0: 00072683 lw a3,0(a4)
rtems_rfs_write_u32 (&handle->node->data.blocks[block], bno);
400137a4: 00e30633 add a2,t1,a4
400137a8: 00c7a583 lw a1,12(a5)
400137ac: 0186d513 srli a0,a3,0x18
400137b0: 0106d813 srli a6,a3,0x10
400137b4: 00c585b3 add a1,a1,a2
400137b8: 00a58023 sb a0,0(a1)
400137bc: 00c7a583 lw a1,12(a5)
400137c0: 0086d513 srli a0,a3,0x8
for (b = 0; b < RTEMS_RFS_INODE_BLOCKS; b++)
400137c4: 00470713 addi a4,a4,4
400137c8: 00c585b3 add a1,a1,a2
400137cc: 010580a3 sb a6,1(a1)
400137d0: 00c7a583 lw a1,12(a5)
400137d4: 00c585b3 add a1,a1,a2
400137d8: 00a58123 sb a0,2(a1)
400137dc: 00c7a583 lw a1,12(a5)
400137e0: 00c58633 add a2,a1,a2
400137e4: 00d601a3 sb a3,3(a2)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400137e8: 01178823 sb a7,16(a5)
400137ec: fae998e3 bne s3,a4,4001379c <rtems_rfs_block_map_close+0x50>
rtems_rfs_inode_set_block_count (map->inode, map->size.count);
400137f0: 00442783 lw a5,4(s0)
400137f4: 00842703 lw a4,8(s0)
brc = rtems_rfs_inode_unload (fs, map->inode, true);
400137f8: 00100613 li a2,1
rtems_rfs_write_u32 (&handle->node->block_count, block_count);
400137fc: 00c7a683 lw a3,12(a5)
40013800: 01875593 srli a1,a4,0x18
40013804: 01075813 srli a6,a4,0x10
40013808: 00b68623 sb a1,12(a3)
4001380c: 00c7a683 lw a3,12(a5)
40013810: 00875593 srli a1,a4,0x8
40013814: 00048513 mv a0,s1
40013818: 010686a3 sb a6,13(a3)
4001381c: 00c7a683 lw a3,12(a5)
40013820: 00b68723 sb a1,14(a3)
40013824: 00c7a683 lw a3,12(a5)
40013828: 00e687a3 sb a4,15(a3)
rtems_rfs_inode_set_block_offset (map->inode, map->size.offset);
4001382c: 00442683 lw a3,4(s0)
40013830: 00c42703 lw a4,12(s0)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40013834: 01178823 sb a7,16(a5)
rtems_rfs_write_u16 (&handle->node->block_offset, block_offset);
40013838: 00c6a583 lw a1,12(a3)
4001383c: 01071793 slli a5,a4,0x10
40013840: 0107d793 srli a5,a5,0x10
40013844: 0087d793 srli a5,a5,0x8
40013848: 00f58523 sb a5,10(a1)
4001384c: 00c6a783 lw a5,12(a3)
40013850: 00e785a3 sb a4,11(a5)
rtems_rfs_inode_set_last_map_block (map->inode, map->last_map_block);
40013854: 00442703 lw a4,4(s0)
40013858: 01c42783 lw a5,28(s0)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
4001385c: 01168823 sb a7,16(a3)
rtems_rfs_write_u32 (&handle->node->last_map_block, last_map_block);
40013860: 00c72683 lw a3,12(a4)
40013864: 0187d593 srli a1,a5,0x18
40013868: 0107d813 srli a6,a5,0x10
4001386c: 02b68823 sb a1,48(a3)
40013870: 00c72683 lw a3,12(a4)
40013874: 0087d593 srli a1,a5,0x8
40013878: 030688a3 sb a6,49(a3)
4001387c: 00c72683 lw a3,12(a4)
40013880: 02b68923 sb a1,50(a3)
40013884: 00c72683 lw a3,12(a4)
40013888: 02f689a3 sb a5,51(a3)
rtems_rfs_inode_set_last_data_block (map->inode, map->last_data_block);
4001388c: 00442783 lw a5,4(s0)
40013890: 02042683 lw a3,32(s0)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40013894: 01170823 sb a7,16(a4)
rtems_rfs_write_u32 (&handle->node->last_data_block, last_data_block);
40013898: 00c7a703 lw a4,12(a5)
4001389c: 0186d593 srli a1,a3,0x18
400138a0: 0106d813 srli a6,a3,0x10
400138a4: 02b70a23 sb a1,52(a4)
400138a8: 00c7a703 lw a4,12(a5)
400138ac: 0086d593 srli a1,a3,0x8
400138b0: 03070aa3 sb a6,53(a4)
400138b4: 00c7a703 lw a4,12(a5)
400138b8: 02b70b23 sb a1,54(a4)
400138bc: 00c7a703 lw a4,12(a5)
400138c0: 02d70ba3 sb a3,55(a4)
brc = rtems_rfs_inode_unload (fs, map->inode, true);
400138c4: 00442583 lw a1,4(s0)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400138c8: 01178823 sb a7,16(a5)
400138cc: ad1f40ef jal ra,4000839c <rtems_rfs_inode_unload>
if (brc > 0)
400138d0: fff54793 not a5,a0
400138d4: 41f7d793 srai a5,a5,0x1f
400138d8: 00f57933 and s2,a0,a5
map->dirty = false;
400138dc: 00040023 sb zero,0(s0)
400138e0: 00c0006f j 400138ec <rtems_rfs_block_map_close+0x1a0>
int rc = 0;
400138e4: 00000913 li s2,0
400138e8: 03840993 addi s3,s0,56
rtems_rfs_buffer_handle_release (fs, handle);
400138ec: 00098593 mv a1,s3
map->inode = NULL;
400138f0: 00042223 sw zero,4(s0)
400138f4: 00048513 mv a0,s1
400138f8: f1df20ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
400138fc: 04440593 addi a1,s0,68
handle->dirty = false;
40013900: 02040c23 sb zero,56(s0)
handle->bnum = 0;
40013904: 02042e23 sw zero,60(s0)
handle->buffer = NULL;
40013908: 04042023 sw zero,64(s0)
rtems_rfs_buffer_handle_release (fs, handle);
4001390c: 00048513 mv a0,s1
40013910: f05f20ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
}
40013914: 01c12083 lw ra,28(sp)
handle->dirty = false;
40013918: 04040223 sb zero,68(s0)
handle->bnum = 0;
4001391c: 04042423 sw zero,72(s0)
handle->buffer = NULL;
40013920: 04042623 sw zero,76(s0)
40013924: 01812403 lw s0,24(sp)
40013928: 01412483 lw s1,20(sp)
4001392c: 00c12983 lw s3,12(sp)
40013930: 00090513 mv a0,s2
40013934: 01012903 lw s2,16(sp)
40013938: 02010113 addi sp,sp,32
4001393c: 00008067 ret
40013940 <rtems_rfs_block_map_find>:
{
40013940: fd010113 addi sp,sp,-48
40013944: 02812423 sw s0,40(sp)
40013948: 03212023 sw s2,32(sp)
4001394c: 01312e23 sw s3,28(sp)
40013950: 01412c23 sw s4,24(sp)
40013954: 02112623 sw ra,44(sp)
40013958: 02912223 sw s1,36(sp)
*block = 0;
4001395c: 0006a023 sw zero,0(a3)
if (rtems_rfs_block_pos_block_past_end (bpos, &map->size))
40013960: 00062783 lw a5,0(a2)
{
40013964: 00058413 mv s0,a1
40013968: 00068993 mv s3,a3
if (rtems_rfs_block_pos_block_past_end (bpos, &map->size))
4001396c: 0085a583 lw a1,8(a1)
{
40013970: 00060913 mv s2,a2
40013974: 00050a13 mv s4,a0
if (rtems_rfs_block_pos_block_past_end (bpos, &map->size))
40013978: 00078663 beqz a5,40013984 <rtems_rfs_block_map_find+0x44>
return ENXIO;
4001397c: 00600513 li a0,6
if (rtems_rfs_block_pos_block_past_end (bpos, &map->size))
40013980: 04058a63 beqz a1,400139d4 <rtems_rfs_block_map_find+0x94> <== NEVER TAKEN
return ENXIO;
40013984: 00600513 li a0,6
if (rtems_rfs_block_pos_block_past_end (bpos, &map->size))
40013988: 04b7f663 bgeu a5,a1,400139d4 <rtems_rfs_block_map_find+0x94>
if ((bpos->bno == map->bpos.bno) && (map->bpos.block != 0))
4001398c: 01042703 lw a4,16(s0)
40013990: 0ce78063 beq a5,a4,40013a50 <rtems_rfs_block_map_find+0x110>
if (map->size.count <= RTEMS_RFS_INODE_BLOCKS)
40013994: 00500713 li a4,5
40013998: 04b76e63 bltu a4,a1,400139f4 <rtems_rfs_block_map_find+0xb4>
*block = map->blocks[bpos->bno];
4001399c: 00878793 addi a5,a5,8
400139a0: 00279793 slli a5,a5,0x2
400139a4: 00f407b3 add a5,s0,a5
400139a8: 0047a783 lw a5,4(a5)
400139ac: 00f9a023 sw a5,0(s3)
rtems_rfs_block_copy_bpos (&map->bpos, bpos);
400139b0: 00892783 lw a5,8(s2)
400139b4: 00092683 lw a3,0(s2)
400139b8: 00492703 lw a4,4(s2)
400139bc: 00f42c23 sw a5,24(s0)
400139c0: 00d42823 sw a3,16(s0)
400139c4: 00e42a23 sw a4,20(s0)
map->bpos.block = *block;
400139c8: 0009a783 lw a5,0(s3)
400139cc: 00000513 li a0,0
400139d0: 00f42c23 sw a5,24(s0)
}
400139d4: 02c12083 lw ra,44(sp)
400139d8: 02812403 lw s0,40(sp)
400139dc: 02412483 lw s1,36(sp)
400139e0: 02012903 lw s2,32(sp)
400139e4: 01c12983 lw s3,28(sp)
400139e8: 01812a03 lw s4,24(sp)
400139ec: 03010113 addi sp,sp,48
400139f0: 00008067 ret
direct = bpos->bno % fs->blocks_per_block;
400139f4: 034a2703 lw a4,52(s4)
if (map->size.count <= fs->block_map_singly_blocks)
400139f8: 038a2683 lw a3,56(s4)
singly = bpos->bno / fs->blocks_per_block;
400139fc: 02e7d833 divu a6,a5,a4
40013a00: 01012623 sw a6,12(sp)
direct = bpos->bno % fs->blocks_per_block;
40013a04: 02e7f4b3 remu s1,a5,a4
if (map->size.count <= fs->block_map_singly_blocks)
40013a08: 04b6fc63 bgeu a3,a1,40013a60 <rtems_rfs_block_map_find+0x120>
if (map->size.count < fs->block_map_doubly_blocks)
40013a0c: 03ca2783 lw a5,60(s4)
rc = ENXIO;
40013a10: 00600513 li a0,6
singly %= fs->blocks_per_block;
40013a14: 02e876b3 remu a3,a6,a4
40013a18: 00d12623 sw a3,12(sp)
if (map->size.count < fs->block_map_doubly_blocks)
40013a1c: faf5fce3 bgeu a1,a5,400139d4 <rtems_rfs_block_map_find+0x94>
doubly = singly / fs->blocks_per_block;
40013a20: 02e85833 divu a6,a6,a4
rc = rtems_rfs_block_find_indirect (fs,
40013a24: 04440593 addi a1,s0,68
40013a28: 00c10713 addi a4,sp,12
40013a2c: 000a0513 mv a0,s4
40013a30: 00880813 addi a6,a6,8
40013a34: 00281813 slli a6,a6,0x2
40013a38: 01040833 add a6,s0,a6
40013a3c: 00482603 lw a2,4(a6)
40013a40: 961ff0ef jal ra,400133a0 <rtems_rfs_block_find_indirect>
if (rc == 0)
40013a44: f80518e3 bnez a0,400139d4 <rtems_rfs_block_map_find+0x94> <== NEVER TAKEN
rc = rtems_rfs_block_find_indirect (fs,
40013a48: 00c12603 lw a2,12(sp)
40013a4c: 0240006f j 40013a70 <rtems_rfs_block_map_find+0x130>
if ((bpos->bno == map->bpos.bno) && (map->bpos.block != 0))
40013a50: 01842703 lw a4,24(s0)
40013a54: f40700e3 beqz a4,40013994 <rtems_rfs_block_map_find+0x54>
*block = map->bpos.block;
40013a58: 00e9a023 sw a4,0(s3)
if (rc == 0)
40013a5c: f55ff06f j 400139b0 <rtems_rfs_block_map_find+0x70>
rc = rtems_rfs_block_find_indirect (fs,
40013a60: 00880813 addi a6,a6,8
40013a64: 00281813 slli a6,a6,0x2
40013a68: 01040833 add a6,s0,a6
40013a6c: 00482603 lw a2,4(a6)
rc = rtems_rfs_block_find_indirect (fs,
40013a70: 00098713 mv a4,s3
40013a74: 00048693 mv a3,s1
40013a78: 03840593 addi a1,s0,56
40013a7c: 000a0513 mv a0,s4
40013a80: 921ff0ef jal ra,400133a0 <rtems_rfs_block_find_indirect>
if (rc == 0)
40013a84: f20506e3 beqz a0,400139b0 <rtems_rfs_block_map_find+0x70> <== ALWAYS TAKEN
40013a88: f4dff06f j 400139d4 <rtems_rfs_block_map_find+0x94> <== NOT EXECUTED
40013b88 <rtems_rfs_block_map_grow>:
{
40013b88: fa010113 addi sp,sp,-96
40013b8c: 04812c23 sw s0,88(sp)
40013b90: 03b12623 sw s11,44(sp)
40013b94: 00058413 mv s0,a1
40013b98: 00050d93 mv s11,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BLOCK_MAP_GROW))
40013b9c: 00000593 li a1,0
40013ba0: 00002537 lui a0,0x2
{
40013ba4: 05312623 sw s3,76(sp)
40013ba8: 05512223 sw s5,68(sp)
40013bac: 04112e23 sw ra,92(sp)
40013bb0: 04912a23 sw s1,84(sp)
40013bb4: 05212823 sw s2,80(sp)
40013bb8: 05412423 sw s4,72(sp)
40013bbc: 05612023 sw s6,64(sp)
40013bc0: 03712e23 sw s7,60(sp)
40013bc4: 03812c23 sw s8,56(sp)
40013bc8: 03912a23 sw s9,52(sp)
40013bcc: 03a12823 sw s10,48(sp)
40013bd0: 00060993 mv s3,a2
40013bd4: 00068a93 mv s5,a3
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BLOCK_MAP_GROW))
40013bd8: d34f60ef jal ra,4000a10c <rtems_rfs_trace>
40013bdc: 36051863 bnez a0,40013f4c <rtems_rfs_block_map_grow+0x3c4> <== NEVER TAKEN
if ((map->size.count + blocks) >= rtems_rfs_fs_max_block_map_blocks (fs))
40013be0: 00842783 lw a5,8(s0)
40013be4: 03cda703 lw a4,60(s11)
return EFBIG;
40013be8: 01b00493 li s1,27
if ((map->size.count + blocks) >= rtems_rfs_fs_max_block_map_blocks (fs))
40013bec: 00f987b3 add a5,s3,a5
40013bf0: 28e7fc63 bgeu a5,a4,40013e88 <rtems_rfs_block_map_grow+0x300>
for (b = 0; b < blocks; b++)
40013bf4: 36098863 beqz s3,40013f64 <rtems_rfs_block_map_grow+0x3dc> <== NEVER TAKEN
rc = rtems_rfs_group_bitmap_alloc (fs, map->last_data_block,
40013bf8: 02042583 lw a1,32(s0)
for (b = 0; b < blocks; b++)
40013bfc: 00000d13 li s10,0
if (map->size.count < RTEMS_RFS_INODE_BLOCKS)
40013c00: 00400a13 li s4,4
rtems_rfs_block_set_number (&map->singly_buffer, direct, block);
40013c04: 00100913 li s2,1
rc = rtems_rfs_buffer_handle_request (fs,
40013c08: 04440b93 addi s7,s0,68
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40013c0c: 03840b13 addi s6,s0,56
40013c10: 03c0006f j 40013c4c <rtems_rfs_block_map_grow+0xc4>
map->blocks[map->size.count] = block;
40013c14: 01812583 lw a1,24(sp)
40013c18: 00870793 addi a5,a4,8
40013c1c: 00279793 slli a5,a5,0x2
40013c20: 00f407b3 add a5,s0,a5
40013c24: 00b7a223 sw a1,4(a5)
map->size.count++;
40013c28: 00170713 addi a4,a4,1
40013c2c: 00e42423 sw a4,8(s0)
map->size.offset = 0;
40013c30: 00042623 sw zero,12(s0)
if (b == 0)
40013c34: 000d1463 bnez s10,40013c3c <rtems_rfs_block_map_grow+0xb4> <== NEVER TAKEN
*new_block = block;
40013c38: 00baa023 sw a1,0(s5)
map->last_data_block = block;
40013c3c: 02b42023 sw a1,32(s0)
map->dirty = true;
40013c40: 01240023 sb s2,0(s0)
for (b = 0; b < blocks; b++)
40013c44: 001d0d13 addi s10,s10,1
40013c48: 313d0e63 beq s10,s3,40013f64 <rtems_rfs_block_map_grow+0x3dc>
rc = rtems_rfs_group_bitmap_alloc (fs, map->last_data_block,
40013c4c: 01810693 addi a3,sp,24
40013c50: 00000613 li a2,0
40013c54: 000d8513 mv a0,s11
40013c58: 94cf40ef jal ra,40007da4 <rtems_rfs_group_bitmap_alloc>
40013c5c: 00050493 mv s1,a0
if (rc > 0)
40013c60: 22a04463 bgtz a0,40013e88 <rtems_rfs_block_map_grow+0x300>
if (map->size.count < RTEMS_RFS_INODE_BLOCKS)
40013c64: 00842703 lw a4,8(s0)
40013c68: faea76e3 bgeu s4,a4,40013c14 <rtems_rfs_block_map_grow+0x8c>
direct = map->size.count % fs->blocks_per_block;
40013c6c: 034da883 lw a7,52(s11)
if (map->size.count < fs->block_map_singly_blocks)
40013c70: 038da683 lw a3,56(s11)
direct = map->size.count % fs->blocks_per_block;
40013c74: 03177c33 remu s8,a4,a7
singly = map->size.count / fs->blocks_per_block;
40013c78: 03175833 divu a6,a4,a7
if (map->size.count < fs->block_map_singly_blocks)
40013c7c: 0ad77263 bgeu a4,a3,40013d20 <rtems_rfs_block_map_grow+0x198>
if ((direct == 0) ||
40013c80: 240c0463 beqz s8,40013ec8 <rtems_rfs_block_map_grow+0x340>
40013c84: 01177663 bgeu a4,a7,40013c90 <rtems_rfs_block_map_grow+0x108>
((singly == 0) && (direct == RTEMS_RFS_INODE_BLOCKS)))
40013c88: 00500793 li a5,5
40013c8c: 22fc0e63 beq s8,a5,40013ec8 <rtems_rfs_block_map_grow+0x340>
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40013c90: 00880813 addi a6,a6,8
40013c94: 00281813 slli a6,a6,0x2
40013c98: 01040833 add a6,s0,a6
40013c9c: 00482603 lw a2,4(a6)
40013ca0: 00100693 li a3,1
40013ca4: 000b0593 mv a1,s6
40013ca8: 000d8513 mv a0,s11
40013cac: 8d1f20ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
40013cb0: 00050493 mv s1,a0
if (rc > 0)
40013cb4: 1c904263 bgtz s1,40013e78 <rtems_rfs_block_map_grow+0x2f0> <== NEVER TAKEN
rtems_rfs_block_set_number (&map->singly_buffer, direct, block);
40013cb8: 04042703 lw a4,64(s0)
40013cbc: 01b14683 lbu a3,27(sp)
40013cc0: 002c1793 slli a5,s8,0x2
40013cc4: 01c72703 lw a4,28(a4)
40013cc8: 00f70733 add a4,a4,a5
40013ccc: 00d70023 sb a3,0(a4)
40013cd0: 04042703 lw a4,64(s0)
40013cd4: 01a15683 lhu a3,26(sp)
40013cd8: 01c72703 lw a4,28(a4)
40013cdc: 00f70733 add a4,a4,a5
40013ce0: 00d700a3 sb a3,1(a4)
40013ce4: 04042703 lw a4,64(s0)
40013ce8: 01812683 lw a3,24(sp)
40013cec: 01c72703 lw a4,28(a4)
40013cf0: 0086d693 srli a3,a3,0x8
40013cf4: 00f70733 add a4,a4,a5
40013cf8: 00d70123 sb a3,2(a4)
40013cfc: 04042703 lw a4,64(s0)
40013d00: 01c72703 lw a4,28(a4)
40013d04: 00f707b3 add a5,a4,a5
40013d08: 01812703 lw a4,24(sp)
40013d0c: 00e781a3 sb a4,3(a5)
map->size.count++;
40013d10: 00842703 lw a4,8(s0)
*new_block = block;
40013d14: 01812583 lw a1,24(sp)
rtems_rfs_block_set_number (&map->singly_buffer, direct, block);
40013d18: 03240c23 sb s2,56(s0)
40013d1c: f0dff06f j 40013c28 <rtems_rfs_block_map_grow+0xa0>
singly %= fs->blocks_per_block;
40013d20: 01112423 sw a7,8(sp)
40013d24: 01012223 sw a6,4(sp)
doubly = singly / fs->blocks_per_block;
40013d28: 03185333 divu t1,a6,a7
singly %= fs->blocks_per_block;
40013d2c: 03187cb3 remu s9,a6,a7
if (direct == 0)
40013d30: 0c0c1663 bnez s8,40013dfc <rtems_rfs_block_map_grow+0x274>
rc = rtems_rfs_block_map_indirect_alloc (fs, map,
40013d34: 00000713 li a4,0
40013d38: 01c10693 addi a3,sp,28
40013d3c: 000b0613 mv a2,s6
40013d40: 00040593 mv a1,s0
40013d44: 000d8513 mv a0,s11
40013d48: 00612623 sw t1,12(sp)
40013d4c: c2cff0ef jal ra,40013178 <rtems_rfs_block_map_indirect_alloc>
if (rc > 0)
40013d50: 00c12303 lw t1,12(sp)
40013d54: 00412803 lw a6,4(sp)
40013d58: 00812883 lw a7,8(sp)
rc = rtems_rfs_block_map_indirect_alloc (fs, map,
40013d5c: 00050493 mv s1,a0
if (rc > 0)
40013d60: 10a04c63 bgtz a0,40013e78 <rtems_rfs_block_map_grow+0x2f0> <== NEVER TAKEN
if ((singly == 0) ||
40013d64: 180c8863 beqz s9,40013ef4 <rtems_rfs_block_map_grow+0x36c> <== NEVER TAKEN
40013d68: 01187663 bgeu a6,a7,40013d74 <rtems_rfs_block_map_grow+0x1ec>
((doubly == 0) && (singly == RTEMS_RFS_INODE_BLOCKS)))
40013d6c: 00500793 li a5,5
40013d70: 18fc8263 beq s9,a5,40013ef4 <rtems_rfs_block_map_grow+0x36c>
rc = rtems_rfs_buffer_handle_request (fs, &map->doubly_buffer,
40013d74: 00830713 addi a4,t1,8
40013d78: 00271713 slli a4,a4,0x2
40013d7c: 00e40733 add a4,s0,a4
40013d80: 00472603 lw a2,4(a4)
40013d84: 00100693 li a3,1
40013d88: 000b8593 mv a1,s7
40013d8c: 000d8513 mv a0,s11
40013d90: fecf20ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
40013d94: 00050493 mv s1,a0
if (rc > 0)
40013d98: 18a04863 bgtz a0,40013f28 <rtems_rfs_block_map_grow+0x3a0> <== NEVER TAKEN
rtems_rfs_block_set_number (&map->doubly_buffer,
40013d9c: 04c42703 lw a4,76(s0)
40013da0: 01f14683 lbu a3,31(sp)
40013da4: 002c9c93 slli s9,s9,0x2
40013da8: 01c72703 lw a4,28(a4)
40013dac: 01970733 add a4,a4,s9
40013db0: 00d70023 sb a3,0(a4)
40013db4: 04c42703 lw a4,76(s0)
40013db8: 01e15683 lhu a3,30(sp)
40013dbc: 01c72703 lw a4,28(a4)
40013dc0: 01970733 add a4,a4,s9
40013dc4: 00d700a3 sb a3,1(a4)
40013dc8: 04c42703 lw a4,76(s0)
40013dcc: 01c12683 lw a3,28(sp)
40013dd0: 01c72703 lw a4,28(a4)
40013dd4: 0086d693 srli a3,a3,0x8
40013dd8: 01970733 add a4,a4,s9
40013ddc: 00d70123 sb a3,2(a4)
40013de0: 04c42703 lw a4,76(s0)
40013de4: 01c72703 lw a4,28(a4)
40013de8: 01970cb3 add s9,a4,s9
40013dec: 01c12703 lw a4,28(sp)
40013df0: 00ec81a3 sb a4,3(s9)
40013df4: 05240223 sb s2,68(s0)
40013df8: ec1ff06f j 40013cb8 <rtems_rfs_block_map_grow+0x130>
rc = rtems_rfs_buffer_handle_request (fs,
40013dfc: 00830313 addi t1,t1,8
40013e00: 00231313 slli t1,t1,0x2
40013e04: 00640333 add t1,s0,t1
40013e08: 00432603 lw a2,4(t1)
40013e0c: 00100693 li a3,1
40013e10: 000b8593 mv a1,s7
40013e14: 000d8513 mv a0,s11
40013e18: f64f20ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
40013e1c: 00050493 mv s1,a0
if (rc > 0)
40013e20: 04a04c63 bgtz a0,40013e78 <rtems_rfs_block_map_grow+0x2f0> <== NEVER TAKEN
singly_block = rtems_rfs_block_get_number (&map->doubly_buffer,
40013e24: 04c42703 lw a4,76(s0)
40013e28: 002c9c93 slli s9,s9,0x2
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40013e2c: 00100693 li a3,1
singly_block = rtems_rfs_block_get_number (&map->doubly_buffer,
40013e30: 01c72703 lw a4,28(a4)
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40013e34: 000b0593 mv a1,s6
40013e38: 000d8513 mv a0,s11
singly_block = rtems_rfs_block_get_number (&map->doubly_buffer,
40013e3c: 01970cb3 add s9,a4,s9
40013e40: 000cc603 lbu a2,0(s9)
40013e44: 003cc883 lbu a7,3(s9)
40013e48: 001cc803 lbu a6,1(s9)
40013e4c: 002cc703 lbu a4,2(s9)
40013e50: 01861613 slli a2,a2,0x18
40013e54: 01166633 or a2,a2,a7
40013e58: 01081813 slli a6,a6,0x10
40013e5c: 01066633 or a2,a2,a6
40013e60: 00871713 slli a4,a4,0x8
40013e64: 00e66633 or a2,a2,a4
40013e68: 00c12e23 sw a2,28(sp)
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40013e6c: f10f20ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
40013e70: 00050493 mv s1,a0
if (rc > 0)
40013e74: e49052e3 blez s1,40013cb8 <rtems_rfs_block_map_grow+0x130> <== ALWAYS TAKEN
rtems_rfs_group_bitmap_free (fs, false, block);
40013e78: 01812603 lw a2,24(sp) <== NOT EXECUTED
40013e7c: 00000593 li a1,0 <== NOT EXECUTED
40013e80: 000d8513 mv a0,s11 <== NOT EXECUTED
40013e84: 9a4f40ef jal ra,40008028 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED
}
40013e88: 05c12083 lw ra,92(sp)
40013e8c: 05812403 lw s0,88(sp)
40013e90: 05012903 lw s2,80(sp)
40013e94: 04c12983 lw s3,76(sp)
40013e98: 04812a03 lw s4,72(sp)
40013e9c: 04412a83 lw s5,68(sp)
40013ea0: 04012b03 lw s6,64(sp)
40013ea4: 03c12b83 lw s7,60(sp)
40013ea8: 03812c03 lw s8,56(sp)
40013eac: 03412c83 lw s9,52(sp)
40013eb0: 03012d03 lw s10,48(sp)
40013eb4: 02c12d83 lw s11,44(sp)
40013eb8: 00048513 mv a0,s1
40013ebc: 05412483 lw s1,84(sp)
40013ec0: 06010113 addi sp,sp,96
40013ec4: 00008067 ret
&map->blocks[singly],
40013ec8: 00980693 addi a3,a6,9
upping = map->size.count == RTEMS_RFS_INODE_BLOCKS;
40013ecc: ffb70713 addi a4,a4,-5
&map->blocks[singly],
40013ed0: 00269693 slli a3,a3,0x2
rc = rtems_rfs_block_map_indirect_alloc (fs, map,
40013ed4: 00173713 seqz a4,a4
40013ed8: 00d406b3 add a3,s0,a3
40013edc: 000b0613 mv a2,s6
40013ee0: 00040593 mv a1,s0
40013ee4: 000d8513 mv a0,s11
40013ee8: a90ff0ef jal ra,40013178 <rtems_rfs_block_map_indirect_alloc>
40013eec: 00050493 mv s1,a0
{
40013ef0: dc5ff06f j 40013cb4 <rtems_rfs_block_map_grow+0x12c>
upping = map->size.count == fs->block_map_singly_blocks;
40013ef4: 038da603 lw a2,56(s11)
40013ef8: 00842703 lw a4,8(s0)
&map->blocks[doubly],
40013efc: 00930693 addi a3,t1,9
40013f00: 00269693 slli a3,a3,0x2
upping = map->size.count == fs->block_map_singly_blocks;
40013f04: 40c70733 sub a4,a4,a2
rc = rtems_rfs_block_map_indirect_alloc (fs, map,
40013f08: 00173713 seqz a4,a4
40013f0c: 00d406b3 add a3,s0,a3
40013f10: 000b8613 mv a2,s7
40013f14: 00040593 mv a1,s0
40013f18: 000d8513 mv a0,s11
40013f1c: a5cff0ef jal ra,40013178 <rtems_rfs_block_map_indirect_alloc>
40013f20: 00050493 mv s1,a0
if (rc > 0)
40013f24: e6a05ce3 blez a0,40013d9c <rtems_rfs_block_map_grow+0x214> <== ALWAYS TAKEN
rtems_rfs_group_bitmap_free (fs, false, singly_block);
40013f28: 01c12603 lw a2,28(sp) <== NOT EXECUTED
40013f2c: 00000593 li a1,0 <== NOT EXECUTED
40013f30: 000d8513 mv a0,s11 <== NOT EXECUTED
40013f34: 8f4f40ef jal ra,40008028 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED
rtems_rfs_group_bitmap_free (fs, false, block);
40013f38: 01812603 lw a2,24(sp) <== NOT EXECUTED
40013f3c: 00000593 li a1,0 <== NOT EXECUTED
40013f40: 000d8513 mv a0,s11 <== NOT EXECUTED
40013f44: 8e4f40ef jal ra,40008028 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED
return rc;
40013f48: f41ff06f j 40013e88 <rtems_rfs_block_map_grow+0x300> <== NOT EXECUTED
printf ("rtems-rfs: block-map-grow: entry: blocks=%zd count=%" PRIu32 "\n",
40013f4c: 00842603 lw a2,8(s0) <== NOT EXECUTED
40013f50: 40023537 lui a0,0x40023 <== NOT EXECUTED
40013f54: 00098593 mv a1,s3 <== NOT EXECUTED
40013f58: e9050513 addi a0,a0,-368 # 40022e90 <IMFS_LIMITS_AND_OPTIONS+0xb0><== NOT EXECUTED
40013f5c: a9ded0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40013f60: c81ff06f j 40013be0 <rtems_rfs_block_map_grow+0x58> <== NOT EXECUTED
return 0;
40013f64: 00000493 li s1,0
40013f68: f21ff06f j 40013e88 <rtems_rfs_block_map_grow+0x300>
40013578 <rtems_rfs_block_map_open>:
{
40013578: fe010113 addi sp,sp,-32
4001357c: 00812c23 sw s0,24(sp)
40013580: 00912a23 sw s1,20(sp)
40013584: 01212823 sw s2,16(sp)
40013588: 00112e23 sw ra,28(sp)
4001358c: 01312623 sw s3,12(sp)
map->dirty = false;
40013590: 00060023 sb zero,0(a2)
map->inode = NULL;
40013594: 00062223 sw zero,4(a2)
* @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;
40013598: 00062423 sw zero,8(a2)
size->offset = 0;
4001359c: 00062623 sw zero,12(a2)
bpos->bno = 0;
400135a0: 00062823 sw zero,16(a2)
bpos->boff = 0;
400135a4: 00062a23 sw zero,20(a2)
bpos->block = 0;
400135a8: 00062c23 sw zero,24(a2)
handle->dirty = false;
400135ac: 02060c23 sb zero,56(a2)
handle->bnum = 0;
400135b0: 02062e23 sw zero,60(a2)
handle->buffer = NULL;
400135b4: 04062023 sw zero,64(a2)
handle->dirty = false;
400135b8: 04060223 sb zero,68(a2)
handle->bnum = 0;
400135bc: 04062423 sw zero,72(a2)
handle->buffer = NULL;
400135c0: 04062623 sw zero,76(a2)
{
400135c4: 00060413 mv s0,a2
400135c8: 00050913 mv s2,a0
400135cc: 00058493 mv s1,a1
rc = rtems_rfs_inode_load (fs, inode);
400135d0: bf1f40ef jal ra,400081c0 <rtems_rfs_inode_load>
if (rc > 0)
400135d4: 12a04263 bgtz a0,400136f8 <rtems_rfs_block_map_open+0x180> <== NEVER TAKEN
map->inode = inode;
400135d8: 00c4a803 lw a6,12(s1)
400135dc: 02440893 addi a7,s0,36
400135e0: 00942223 sw s1,4(s0)
for (b = 0; b < RTEMS_RFS_INODE_BLOCKS; b++)
400135e4: 01c80713 addi a4,a6,28
400135e8: 03080593 addi a1,a6,48
return rtems_rfs_read_u32 (&handle->node->data.blocks[block]);
400135ec: 00074783 lbu a5,0(a4)
400135f0: 00174603 lbu a2,1(a4)
400135f4: 00374303 lbu t1,3(a4)
400135f8: 00274683 lbu a3,2(a4)
400135fc: 01879793 slli a5,a5,0x18
40013600: 01061613 slli a2,a2,0x10
40013604: 00c7e7b3 or a5,a5,a2
40013608: 0067e7b3 or a5,a5,t1
4001360c: 00869693 slli a3,a3,0x8
40013610: 00d7e7b3 or a5,a5,a3
map->blocks[b] = rtems_rfs_inode_get_block (inode, b);
40013614: 00f8a023 sw a5,0(a7) # f000 <bsp_section_bss_size+0x9a50>
for (b = 0; b < RTEMS_RFS_INODE_BLOCKS; b++)
40013618: 00470713 addi a4,a4,4
4001361c: 00488893 addi a7,a7,4
40013620: fcb716e3 bne a4,a1,400135ec <rtems_rfs_block_map_open+0x74>
return rtems_rfs_read_u32 (&handle->node->block_count);
40013624: 00c84783 lbu a5,12(a6)
40013628: 00d84683 lbu a3,13(a6)
4001362c: 00f84603 lbu a2,15(a6)
40013630: 00e84703 lbu a4,14(a6)
40013634: 01069693 slli a3,a3,0x10
40013638: 01879793 slli a5,a5,0x18
4001363c: 00d7e7b3 or a5,a5,a3
40013640: 00c7e7b3 or a5,a5,a2
40013644: 00871713 slli a4,a4,0x8
40013648: 00e7e7b3 or a5,a5,a4
map->size.count = rtems_rfs_inode_get_block_count (inode);
4001364c: 00f42423 sw a5,8(s0)
map->size.offset = rtems_rfs_inode_get_block_offset (inode);
40013650: 00b84783 lbu a5,11(a6)
40013654: 00a84703 lbu a4,10(a6)
}
40013658: 01c12083 lw ra,28(sp)
map->size.offset = rtems_rfs_inode_get_block_offset (inode);
4001365c: 00879793 slli a5,a5,0x8
40013660: 00e7e7b3 or a5,a5,a4
40013664: 00879713 slli a4,a5,0x8
40013668: 0087d793 srli a5,a5,0x8
4001366c: 00f767b3 or a5,a4,a5
40013670: 01079793 slli a5,a5,0x10
40013674: 0107d793 srli a5,a5,0x10
40013678: 00f42623 sw a5,12(s0)
return rtems_rfs_read_u32 (&handle->node->last_map_block);
4001367c: 03084783 lbu a5,48(a6)
40013680: 03184683 lbu a3,49(a6)
40013684: 03384583 lbu a1,51(a6)
40013688: 03284703 lbu a4,50(a6)
4001368c: 01069693 slli a3,a3,0x10
40013690: 01879793 slli a5,a5,0x18
40013694: 00d7e7b3 or a5,a5,a3
40013698: 00b7e7b3 or a5,a5,a1
4001369c: 00871713 slli a4,a4,0x8
400136a0: 00e7e7b3 or a5,a5,a4
map->last_map_block = rtems_rfs_inode_get_last_map_block (inode);
400136a4: 00f42e23 sw a5,28(s0)
return rtems_rfs_read_u32 (&handle->node->last_data_block);
400136a8: 03484783 lbu a5,52(a6)
400136ac: 03584683 lbu a3,53(a6)
400136b0: 03784583 lbu a1,55(a6)
400136b4: 03684703 lbu a4,54(a6)
400136b8: 01879793 slli a5,a5,0x18
400136bc: 01069693 slli a3,a3,0x10
400136c0: 00d7e7b3 or a5,a5,a3
400136c4: 00b7e7b3 or a5,a5,a1
400136c8: 00871713 slli a4,a4,0x8
400136cc: 00e7e7b3 or a5,a5,a4
map->last_data_block = rtems_rfs_inode_get_last_data_block (inode);
400136d0: 02f42023 sw a5,32(s0)
}
400136d4: 01812403 lw s0,24(sp)
400136d8: 00c12983 lw s3,12(sp)
rc = rtems_rfs_inode_unload (fs, inode, false);
400136dc: 00048593 mv a1,s1
400136e0: 00090513 mv a0,s2
}
400136e4: 01412483 lw s1,20(sp)
400136e8: 01012903 lw s2,16(sp)
rc = rtems_rfs_inode_unload (fs, inode, false);
400136ec: 00000613 li a2,0
}
400136f0: 02010113 addi sp,sp,32
rc = rtems_rfs_inode_unload (fs, inode, false);
400136f4: ca9f406f j 4000839c <rtems_rfs_inode_unload>
rtems_rfs_buffer_handle_release (fs, handle);
400136f8: 00050993 mv s3,a0 <== NOT EXECUTED
400136fc: 03840593 addi a1,s0,56 <== NOT EXECUTED
40013700: 00090513 mv a0,s2 <== NOT EXECUTED
40013704: 910f30ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
40013708: 04440593 addi a1,s0,68 <== NOT EXECUTED
handle->dirty = false;
4001370c: 02040c23 sb zero,56(s0) <== NOT EXECUTED
handle->bnum = 0;
40013710: 02042e23 sw zero,60(s0) <== NOT EXECUTED
handle->buffer = NULL;
40013714: 04042023 sw zero,64(s0) <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40013718: 00090513 mv a0,s2 <== NOT EXECUTED
4001371c: 8f8f30ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
}
40013720: 01c12083 lw ra,28(sp) <== NOT EXECUTED
handle->dirty = false;
40013724: 04040223 sb zero,68(s0) <== NOT EXECUTED
handle->bnum = 0;
40013728: 04042423 sw zero,72(s0) <== NOT EXECUTED
handle->buffer = NULL;
4001372c: 04042623 sw zero,76(s0) <== NOT EXECUTED
40013730: 01812403 lw s0,24(sp) <== NOT EXECUTED
40013734: 01412483 lw s1,20(sp) <== NOT EXECUTED
40013738: 01012903 lw s2,16(sp) <== NOT EXECUTED
4001373c: 00098513 mv a0,s3 <== NOT EXECUTED
40013740: 00c12983 lw s3,12(sp) <== NOT EXECUTED
40013744: 02010113 addi sp,sp,32 <== NOT EXECUTED
40013748: 00008067 ret <== NOT EXECUTED
40013f6c <rtems_rfs_block_map_shrink>:
int
rtems_rfs_block_map_shrink (rtems_rfs_file_system* fs,
rtems_rfs_block_map* map,
size_t blocks)
{
40013f6c: fb010113 addi sp,sp,-80
40013f70: 03812423 sw s8,40(sp)
40013f74: 03912223 sw s9,36(sp)
40013f78: 00058c13 mv s8,a1
40013f7c: 00050c93 mv s9,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BLOCK_MAP_SHRINK))
40013f80: 00000593 li a1,0
40013f84: 00004537 lui a0,0x4
{
40013f88: 04912223 sw s1,68(sp)
40013f8c: 04112623 sw ra,76(sp)
40013f90: 04812423 sw s0,72(sp)
40013f94: 05212023 sw s2,64(sp)
40013f98: 03312e23 sw s3,60(sp)
40013f9c: 03412c23 sw s4,56(sp)
40013fa0: 03512a23 sw s5,52(sp)
40013fa4: 03612823 sw s6,48(sp)
40013fa8: 03712623 sw s7,44(sp)
40013fac: 03a12023 sw s10,32(sp)
40013fb0: 01b12e23 sw s11,28(sp)
40013fb4: 00060493 mv s1,a2
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BLOCK_MAP_SHRINK))
40013fb8: 954f60ef jal ra,4000a10c <rtems_rfs_trace>
40013fbc: 28051a63 bnez a0,40014250 <rtems_rfs_block_map_shrink+0x2e4> <== NEVER TAKEN
printf ("rtems-rfs: block-map-shrink: entry: blocks=%zd count=%" PRIu32 "\n",
blocks, map->size.count);
if (map->size.count == 0)
40013fc0: 008c2783 lw a5,8(s8)
40013fc4: 26078e63 beqz a5,40014240 <rtems_rfs_block_map_shrink+0x2d4>
return 0;
if (blocks > map->size.count)
40013fc8: 00078413 mv s0,a5
40013fcc: 26f4ee63 bltu s1,a5,40014248 <rtems_rfs_block_map_shrink+0x2dc>
blocks = map->size.count;
while (blocks)
40013fd0: 28040c63 beqz s0,40014268 <rtems_rfs_block_map_shrink+0x2fc> <== NEVER TAKEN
rtems_rfs_block_no doubly_singly;
doubly = singly / fs->blocks_per_block;
doubly_singly = singly % fs->blocks_per_block;
rc = rtems_rfs_buffer_handle_request (fs, &map->doubly_buffer,
40013fd4: 044c0713 addi a4,s8,68
if (block < RTEMS_RFS_INODE_BLOCKS)
40013fd8: 00400493 li s1,4
rc = rtems_rfs_buffer_handle_request (fs, &map->doubly_buffer,
40013fdc: 00e12623 sw a4,12(sp)
doubly_singly);
/*
* Read the singly indirect table and get the block number.
*/
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40013fe0: 038c0913 addi s2,s8,56
40013fe4: 04c0006f j 40014030 <rtems_rfs_block_map_shrink+0xc4>
block_to_free = map->blocks[block];
40013fe8: 00279793 slli a5,a5,0x2
40013fec: 00fc07b3 add a5,s8,a5
40013ff0: 0207ad03 lw s10,32(a5)
map->blocks[block] = 0;
40013ff4: 0207a023 sw zero,32(a5)
{
rc = EIO;
break;
}
}
rc = rtems_rfs_group_bitmap_free (fs, false, block_to_free);
40013ff8: 000d0613 mv a2,s10
40013ffc: 00000593 li a1,0
40014000: 000c8513 mv a0,s9
40014004: 824f40ef jal ra,40008028 <rtems_rfs_group_bitmap_free>
if (rc > 0)
40014008: 14a04463 bgtz a0,40014150 <rtems_rfs_block_map_shrink+0x1e4> <== NEVER TAKEN
return rc;
map->size.count--;
4001400c: 008c2783 lw a5,8(s8)
map->size.offset = 0;
map->last_data_block = block_to_free;
map->dirty = true;
40014010: 00100713 li a4,1
map->size.offset = 0;
40014014: 000c2623 sw zero,12(s8)
map->size.count--;
40014018: fff78793 addi a5,a5,-1
4001401c: 00fc2423 sw a5,8(s8)
map->last_data_block = block_to_free;
40014020: 03ac2023 sw s10,32(s8)
map->dirty = true;
40014024: 00ec0023 sb a4,0(s8)
blocks--;
40014028: fff40413 addi s0,s0,-1
while (blocks)
4001402c: 1e040663 beqz s0,40014218 <rtems_rfs_block_map_shrink+0x2ac>
block = map->size.count - 1;
40014030: fff78b13 addi s6,a5,-1
if (block < RTEMS_RFS_INODE_BLOCKS)
40014034: fb64fae3 bgeu s1,s6,40013fe8 <rtems_rfs_block_map_shrink+0x7c>
direct = block % fs->blocks_per_block;
40014038: 034caa03 lw s4,52(s9)
if (block < fs->block_map_singly_blocks)
4001403c: 038ca683 lw a3,56(s9)
direct = block % fs->blocks_per_block;
40014040: 034b79b3 remu s3,s6,s4
singly = block / fs->blocks_per_block;
40014044: 034b5ab3 divu s5,s6,s4
if (block < fs->block_map_singly_blocks)
40014048: 14db6263 bltu s6,a3,4001418c <rtems_rfs_block_map_shrink+0x220>
else if (block < fs->block_map_doubly_blocks)
4001404c: 03cca683 lw a3,60(s9) <== NOT EXECUTED
40014050: 1cdb7463 bgeu s6,a3,40014218 <rtems_rfs_block_map_shrink+0x2ac> <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->doubly_buffer,
40014054: 00c12583 lw a1,12(sp) <== NOT EXECUTED
40014058: 00100693 li a3,1 <== NOT EXECUTED
4001405c: 000c8513 mv a0,s9 <== NOT EXECUTED
doubly = singly / fs->blocks_per_block;
40014060: 034adbb3 divu s7,s5,s4 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->doubly_buffer,
40014064: 008b8793 addi a5,s7,8 <== NOT EXECUTED
40014068: 00279793 slli a5,a5,0x2 <== NOT EXECUTED
4001406c: 00fc07b3 add a5,s8,a5 <== NOT EXECUTED
40014070: 0047a603 lw a2,4(a5) <== NOT EXECUTED
doubly_singly = singly % fs->blocks_per_block;
40014074: 034afb33 remu s6,s5,s4 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->doubly_buffer,
40014078: d04f20ef jal ra,4000657c <rtems_rfs_buffer_handle_request> <== NOT EXECUTED
if (rc > 0)
4001407c: 0ca04a63 bgtz a0,40014150 <rtems_rfs_block_map_shrink+0x1e4> <== NOT EXECUTED
singly = rtems_rfs_block_get_number (&map->doubly_buffer,
40014080: 04cc2603 lw a2,76(s8) <== NOT EXECUTED
40014084: 002b1793 slli a5,s6,0x2 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40014088: 00100693 li a3,1 <== NOT EXECUTED
singly = rtems_rfs_block_get_number (&map->doubly_buffer,
4001408c: 01c62603 lw a2,28(a2) <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
40014090: 00090593 mv a1,s2 <== NOT EXECUTED
40014094: 000c8513 mv a0,s9 <== NOT EXECUTED
singly = rtems_rfs_block_get_number (&map->doubly_buffer,
40014098: 00f607b3 add a5,a2,a5 <== NOT EXECUTED
4001409c: 0007cd83 lbu s11,0(a5) <== NOT EXECUTED
400140a0: 0037c303 lbu t1,3(a5) <== NOT EXECUTED
400140a4: 0017c883 lbu a7,1(a5) <== NOT EXECUTED
400140a8: 0027c603 lbu a2,2(a5) <== NOT EXECUTED
400140ac: 018d9d93 slli s11,s11,0x18 <== NOT EXECUTED
400140b0: 006dedb3 or s11,s11,t1 <== NOT EXECUTED
400140b4: 01089793 slli a5,a7,0x10 <== NOT EXECUTED
400140b8: 00861613 slli a2,a2,0x8 <== NOT EXECUTED
400140bc: 00fdedb3 or s11,s11,a5 <== NOT EXECUTED
400140c0: 00cdedb3 or s11,s11,a2 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
400140c4: 000d8613 mv a2,s11 <== NOT EXECUTED
400140c8: cb4f20ef jal ra,4000657c <rtems_rfs_buffer_handle_request> <== NOT EXECUTED
if (rc > 0)
400140cc: 08a04263 bgtz a0,40014150 <rtems_rfs_block_map_shrink+0x1e4> <== NOT EXECUTED
block_to_free = rtems_rfs_block_get_number (&map->singly_buffer,
400140d0: 040c2783 lw a5,64(s8) <== NOT EXECUTED
400140d4: 00299693 slli a3,s3,0x2 <== NOT EXECUTED
400140d8: 01c7a783 lw a5,28(a5) <== NOT EXECUTED
400140dc: 00d787b3 add a5,a5,a3 <== NOT EXECUTED
400140e0: 0007cd03 lbu s10,0(a5) <== NOT EXECUTED
400140e4: 0037c603 lbu a2,3(a5) <== NOT EXECUTED
400140e8: 0017c683 lbu a3,1(a5) <== NOT EXECUTED
400140ec: 0027c783 lbu a5,2(a5) <== NOT EXECUTED
400140f0: 018d1d13 slli s10,s10,0x18 <== NOT EXECUTED
400140f4: 00cd6d33 or s10,s10,a2 <== NOT EXECUTED
400140f8: 01069693 slli a3,a3,0x10 <== NOT EXECUTED
400140fc: 00dd6d33 or s10,s10,a3 <== NOT EXECUTED
40014100: 00879793 slli a5,a5,0x8 <== NOT EXECUTED
40014104: 00fd6d33 or s10,s10,a5 <== NOT EXECUTED
if (direct == 0)
40014108: ee0998e3 bnez s3,40013ff8 <rtems_rfs_block_map_shrink+0x8c> <== NOT EXECUTED
rc = rtems_rfs_group_bitmap_free (fs, false, singly);
4001410c: 000d8613 mv a2,s11 <== NOT EXECUTED
40014110: 00000593 li a1,0 <== NOT EXECUTED
40014114: 000c8513 mv a0,s9 <== NOT EXECUTED
40014118: f11f30ef jal ra,40008028 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED
if (rc > 0)
4001411c: 02a04a63 bgtz a0,40014150 <rtems_rfs_block_map_shrink+0x1e4> <== NOT EXECUTED
map->last_map_block = singly;
40014120: 01bc2e23 sw s11,28(s8) <== NOT EXECUTED
if ((index == 0) ||
40014124: 000b0863 beqz s6,40014134 <rtems_rfs_block_map_shrink+0x1c8> <== NOT EXECUTED
40014128: ed4af8e3 bgeu s5,s4,40013ff8 <rtems_rfs_block_map_shrink+0x8c> <== NOT EXECUTED
((indirect == 0) && (index == RTEMS_RFS_INODE_BLOCKS)))
4001412c: 00500793 li a5,5 <== NOT EXECUTED
40014130: ecfb14e3 bne s6,a5,40013ff8 <rtems_rfs_block_map_shrink+0x8c> <== NOT EXECUTED
40014134: 00c12603 lw a2,12(sp) <== NOT EXECUTED
40014138: 000b0713 mv a4,s6 <== NOT EXECUTED
4001413c: 000b8693 mv a3,s7 <== NOT EXECUTED
40014140: 000c0593 mv a1,s8 <== NOT EXECUTED
40014144: 000c8513 mv a0,s9 <== NOT EXECUTED
40014148: 9b4ff0ef jal ra,400132fc <rtems_rfs_block_map_indirect_shrink.part.0><== NOT EXECUTED
if (rc)
4001414c: ea0506e3 beqz a0,40013ff8 <rtems_rfs_block_map_shrink+0x8c> <== NOT EXECUTED
*/
if (rtems_rfs_block_pos_past_end (&map->bpos, &map->size))
rtems_rfs_block_size_get_bpos (&map->size, &map->bpos);
return 0;
}
40014150: 04c12083 lw ra,76(sp)
40014154: 04812403 lw s0,72(sp)
40014158: 04412483 lw s1,68(sp)
4001415c: 04012903 lw s2,64(sp)
40014160: 03c12983 lw s3,60(sp)
40014164: 03812a03 lw s4,56(sp)
40014168: 03412a83 lw s5,52(sp)
4001416c: 03012b03 lw s6,48(sp)
40014170: 02c12b83 lw s7,44(sp)
40014174: 02812c03 lw s8,40(sp)
40014178: 02412c83 lw s9,36(sp)
4001417c: 02012d03 lw s10,32(sp)
40014180: 01c12d83 lw s11,28(sp)
40014184: 05010113 addi sp,sp,80
40014188: 00008067 ret
rc = rtems_rfs_buffer_handle_request (fs, &map->singly_buffer,
4001418c: 008a8793 addi a5,s5,8
40014190: 00279793 slli a5,a5,0x2
40014194: 00fc07b3 add a5,s8,a5
40014198: 0047a603 lw a2,4(a5)
4001419c: 00100693 li a3,1
400141a0: 00090593 mv a1,s2
400141a4: 000c8513 mv a0,s9
400141a8: bd4f20ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
if (rc > 0)
400141ac: faa042e3 bgtz a0,40014150 <rtems_rfs_block_map_shrink+0x1e4> <== NEVER TAKEN
block_to_free = rtems_rfs_block_get_number (&map->singly_buffer,
400141b0: 040c2683 lw a3,64(s8)
400141b4: 00299793 slli a5,s3,0x2
400141b8: 01c6a683 lw a3,28(a3)
400141bc: 00f687b3 add a5,a3,a5
400141c0: 0007cd03 lbu s10,0(a5)
400141c4: 0037c603 lbu a2,3(a5)
400141c8: 0017c683 lbu a3,1(a5)
400141cc: 0027c783 lbu a5,2(a5)
400141d0: 018d1d13 slli s10,s10,0x18
400141d4: 00cd6d33 or s10,s10,a2
400141d8: 01069693 slli a3,a3,0x10
400141dc: 00dd6d33 or s10,s10,a3
400141e0: 00879793 slli a5,a5,0x8
400141e4: 00fd6d33 or s10,s10,a5
if ((index == 0) ||
400141e8: 00098863 beqz s3,400141f8 <rtems_rfs_block_map_shrink+0x28c> <== NEVER TAKEN
400141ec: e14b76e3 bgeu s6,s4,40013ff8 <rtems_rfs_block_map_shrink+0x8c>
((indirect == 0) && (index == RTEMS_RFS_INODE_BLOCKS)))
400141f0: 00500793 li a5,5
400141f4: e0f992e3 bne s3,a5,40013ff8 <rtems_rfs_block_map_shrink+0x8c>
400141f8: 00098713 mv a4,s3
400141fc: 000a8693 mv a3,s5
40014200: 00090613 mv a2,s2
40014204: 000c0593 mv a1,s8
40014208: 000c8513 mv a0,s9
4001420c: 8f0ff0ef jal ra,400132fc <rtems_rfs_block_map_indirect_shrink.part.0>
if (rc)
40014210: de0504e3 beqz a0,40013ff8 <rtems_rfs_block_map_shrink+0x8c> <== ALWAYS TAKEN
40014214: f3dff06f j 40014150 <rtems_rfs_block_map_shrink+0x1e4> <== NOT EXECUTED
if (map->size.count == 0)
40014218: 04079863 bnez a5,40014268 <rtems_rfs_block_map_shrink+0x2fc>
rtems_rfs_block_size_get_bpos (&map->size, &map->bpos);
4001421c: 00cc2703 lw a4,12(s8)
map->last_map_block = 0;
40014220: 000c2e23 sw zero,28(s8)
map->last_data_block = 0;
40014224: 020c2023 sw zero,32(s8)
rtems_rfs_block_size_get_bpos (&map->size, &map->bpos);
40014228: 00fc2823 sw a5,16(s8)
4001422c: 00ec2a23 sw a4,20(s8)
40014230: 000c2c23 sw zero,24(s8)
40014234: 00070663 beqz a4,40014240 <rtems_rfs_block_map_shrink+0x2d4> <== ALWAYS TAKEN
40014238: fff78793 addi a5,a5,-1 <== NOT EXECUTED
4001423c: 00fc2823 sw a5,16(s8) <== NOT EXECUTED
return 0;
40014240: 00000513 li a0,0
40014244: f0dff06f j 40014150 <rtems_rfs_block_map_shrink+0x1e4>
40014248: 00048413 mv s0,s1
4001424c: d85ff06f j 40013fd0 <rtems_rfs_block_map_shrink+0x64>
printf ("rtems-rfs: block-map-shrink: entry: blocks=%zd count=%" PRIu32 "\n",
40014250: 008c2603 lw a2,8(s8) <== NOT EXECUTED
40014254: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014258: 00048593 mv a1,s1 <== NOT EXECUTED
4001425c: ec850513 addi a0,a0,-312 # 40022ec8 <IMFS_LIMITS_AND_OPTIONS+0xe8><== NOT EXECUTED
40014260: f98ed0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40014264: d5dff06f j 40013fc0 <rtems_rfs_block_map_shrink+0x54> <== NOT EXECUTED
if (rtems_rfs_block_pos_past_end (&map->bpos, &map->size))
40014268: 010c2703 lw a4,16(s8)
4001426c: 02f77063 bgeu a4,a5,4001428c <rtems_rfs_block_map_shrink+0x320>
40014270: fff78693 addi a3,a5,-1
40014274: fce696e3 bne a3,a4,40014240 <rtems_rfs_block_map_shrink+0x2d4>
40014278: 00cc2703 lw a4,12(s8)
4001427c: 014c2683 lw a3,20(s8)
40014280: fad764e3 bltu a4,a3,40014228 <rtems_rfs_block_map_shrink+0x2bc>
return 0;
40014284: 00000513 li a0,0 <== NOT EXECUTED
40014288: ec9ff06f j 40014150 <rtems_rfs_block_map_shrink+0x1e4> <== NOT EXECUTED
rtems_rfs_block_size_get_bpos (&map->size, &map->bpos);
4001428c: 00cc2703 lw a4,12(s8) <== NOT EXECUTED
40014290: f99ff06f j 40014228 <rtems_rfs_block_map_shrink+0x2bc> <== NOT EXECUTED
400142f4 <rtems_rfs_buffer_bdbuf_release>:
int
rtems_rfs_buffer_bdbuf_release (rtems_rfs_buffer* buffer,
bool modified)
{
400142f4: ff010113 addi sp,sp,-16
400142f8: 00812423 sw s0,8(sp)
400142fc: 00912223 sw s1,4(sp)
40014300: 00050413 mv s0,a0
40014304: 00058493 mv s1,a1
rtems_status_code sc;
int rc = 0;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_RELEASE))
40014308: 04000513 li a0,64
4001430c: 00000593 li a1,0
{
40014310: 00112623 sw ra,12(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_RELEASE))
40014314: df9f50ef jal ra,4000a10c <rtems_rfs_trace>
40014318: 02050263 beqz a0,4001433c <rtems_rfs_buffer_bdbuf_release+0x48> <== ALWAYS TAKEN
printf ("rtems-rfs: bdbuf-release: block=%" PRIuPTR " bdbuf=%" PRIu32 " %s\n",
4001431c: 03442583 lw a1,52(s0) <== NOT EXECUTED
40014320: 01842603 lw a2,24(s0) <== NOT EXECUTED
40014324: 04049863 bnez s1,40014374 <rtems_rfs_buffer_bdbuf_release+0x80> <== NOT EXECUTED
40014328: 400226b7 lui a3,0x40022 <== NOT EXECUTED
4001432c: b1c68693 addi a3,a3,-1252 # 40021b1c <IMFS_node_control_sym_link+0x5bc><== NOT EXECUTED
40014330: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014334: f1050513 addi a0,a0,-240 # 40022f10 <IMFS_LIMITS_AND_OPTIONS+0x130><== NOT EXECUTED
40014338: ec0ed0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
((intptr_t) buffer->user),
buffer->block, modified ? "(modified)" : "");
if (modified)
sc = rtems_bdbuf_release_modified (buffer);
4001433c: 00040513 mv a0,s0
if (modified)
40014340: 02048663 beqz s1,4001436c <rtems_rfs_buffer_bdbuf_release+0x78>
sc = rtems_bdbuf_release_modified (buffer);
40014344: e49fc0ef jal ra,4001118c <rtems_bdbuf_release_modified>
#endif
rc = EIO;
}
return rc;
}
40014348: 00c12083 lw ra,12(sp)
4001434c: 00812403 lw s0,8(sp)
rc = EIO;
40014350: 00153513 seqz a0,a0
40014354: 40a00533 neg a0,a0
40014358: ffb57513 andi a0,a0,-5
}
4001435c: 00412483 lw s1,4(sp)
40014360: 00550513 addi a0,a0,5
40014364: 01010113 addi sp,sp,16
40014368: 00008067 ret
sc = rtems_bdbuf_release (buffer);
4001436c: d25fc0ef jal ra,40011090 <rtems_bdbuf_release>
40014370: fd9ff06f j 40014348 <rtems_rfs_buffer_bdbuf_release+0x54>
printf ("rtems-rfs: bdbuf-release: block=%" PRIuPTR " bdbuf=%" PRIu32 " %s\n",
40014374: 400236b7 lui a3,0x40023 <== NOT EXECUTED
40014378: f0468693 addi a3,a3,-252 # 40022f04 <IMFS_LIMITS_AND_OPTIONS+0x124><== NOT EXECUTED
4001437c: fb5ff06f j 40014330 <rtems_rfs_buffer_bdbuf_release+0x3c> <== NOT EXECUTED
40006c64 <rtems_rfs_buffer_close>:
{
40006c64: ff010113 addi sp,sp,-16
40006c68: 00812423 sw s0,8(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
40006c6c: 00000593 li a1,0
{
40006c70: 00050413 mv s0,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
40006c74: 01000513 li a0,16
{
40006c78: 00112623 sw ra,12(sp)
40006c7c: 00912223 sw s1,4(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
40006c80: 48c030ef jal ra,4000a10c <rtems_rfs_trace>
40006c84: 0a051a63 bnez a0,40006d38 <rtems_rfs_buffer_close+0xd4> <== NEVER TAKEN
rc = rtems_rfs_buffer_setblksize (fs, rtems_rfs_fs_media_block_size (fs));
40006c88: 01042783 lw a5,16(s0)
40006c8c: 00040513 mv a0,s0
40006c90: 0207a583 lw a1,32(a5)
40006c94: ea5ff0ef jal ra,40006b38 <rtems_rfs_buffer_setblksize>
40006c98: 00050493 mv s1,a0
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
40006c9c: 02a04463 bgtz a0,40006cc4 <rtems_rfs_buffer_close+0x60> <== NEVER TAKEN
if (close (fs->device) < 0)
40006ca0: 00c42503 lw a0,12(s0)
40006ca4: 1800b0ef jal ra,40011e24 <close>
40006ca8: 04054a63 bltz a0,40006cfc <rtems_rfs_buffer_close+0x98> <== NEVER TAKEN
}
40006cac: 00c12083 lw ra,12(sp)
40006cb0: 00812403 lw s0,8(sp)
40006cb4: 00048513 mv a0,s1
40006cb8: 00412483 lw s1,4(sp)
40006cbc: 01010113 addi sp,sp,16
40006cc0: 00008067 ret
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
40006cc4: 01000513 li a0,16 <== NOT EXECUTED
40006cc8: 00000593 li a1,0 <== NOT EXECUTED
40006ccc: 440030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40006cd0: fc0508e3 beqz a0,40006ca0 <rtems_rfs_buffer_close+0x3c> <== NOT EXECUTED
printf ("rtems-rfs: buffer-close: set media block size failed: %d: %s\n",
40006cd4: 00048513 mv a0,s1 <== NOT EXECUTED
40006cd8: 28c180ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40006cdc: 00050613 mv a2,a0 <== NOT EXECUTED
40006ce0: 40022537 lui a0,0x40022 <== NOT EXECUTED
40006ce4: 00048593 mv a1,s1 <== NOT EXECUTED
40006ce8: 9fc50513 addi a0,a0,-1540 # 400219fc <IMFS_node_control_sym_link+0x49c><== NOT EXECUTED
40006cec: d0dfa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (close (fs->device) < 0)
40006cf0: 00c42503 lw a0,12(s0) <== NOT EXECUTED
40006cf4: 1300b0ef jal ra,40011e24 <close> <== NOT EXECUTED
40006cf8: fa055ae3 bgez a0,40006cac <rtems_rfs_buffer_close+0x48> <== NOT EXECUTED
rc = errno;
40006cfc: 78d160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40006d00: 00050793 mv a5,a0 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
40006d04: 00000593 li a1,0 <== NOT EXECUTED
40006d08: 01000513 li a0,16 <== NOT EXECUTED
rc = errno;
40006d0c: 0007a483 lw s1,0(a5) <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_CLOSE))
40006d10: 3fc030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40006d14: f8050ce3 beqz a0,40006cac <rtems_rfs_buffer_close+0x48> <== NOT EXECUTED
printf ("rtems-rfs: buffer-close: file close failed: %d: %s\n",
40006d18: 00048513 mv a0,s1 <== NOT EXECUTED
40006d1c: 248180ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40006d20: 00050613 mv a2,a0 <== NOT EXECUTED
40006d24: 40022537 lui a0,0x40022 <== NOT EXECUTED
40006d28: 00048593 mv a1,s1 <== NOT EXECUTED
40006d2c: a3c50513 addi a0,a0,-1476 # 40021a3c <IMFS_node_control_sym_link+0x4dc><== NOT EXECUTED
40006d30: cc9fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return rc;
40006d34: f79ff06f j 40006cac <rtems_rfs_buffer_close+0x48> <== NOT EXECUTED
printf ("rtems-rfs: buffer-close: closing\n");
40006d38: 40022537 lui a0,0x40022 <== NOT EXECUTED
40006d3c: 9d850513 addi a0,a0,-1576 # 400219d8 <IMFS_node_control_sym_link+0x478><== NOT EXECUTED
40006d40: d01fa0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
40006d44: f45ff06f j 40006c88 <rtems_rfs_buffer_close+0x24> <== NOT EXECUTED
4000633c <rtems_rfs_buffer_handle_release.part.0>:
rtems_rfs_buffer_handle_release (rtems_rfs_file_system* fs,
4000633c: ff010113 addi sp,sp,-16 <== NOT EXECUTED
40006340: 00812423 sw s0,8(sp) <== NOT EXECUTED
40006344: 00912223 sw s1,4(sp) <== NOT EXECUTED
40006348: 00050413 mv s0,a0 <== NOT EXECUTED
4000634c: 00058493 mv s1,a1 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_RELEASE))
40006350: 20000513 li a0,512 <== NOT EXECUTED
40006354: 00000593 li a1,0 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (rtems_rfs_file_system* fs,
40006358: 00112623 sw ra,12(sp) <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_RELEASE))
4000635c: 5b1030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40006360: 02050c63 beqz a0,40006398 <rtems_rfs_buffer_handle_release.part.0+0x5c><== NOT EXECUTED
printf ("rtems-rfs: buffer-release: block=%" PRIu32 " %s refs=%d %s\n",
40006364: 0004c783 lbu a5,0(s1) <== NOT EXECUTED
40006368: 0044a583 lw a1,4(s1) <== NOT EXECUTED
4000636c: 0e079063 bnez a5,4000644c <rtems_rfs_buffer_handle_release.part.0+0x110><== NOT EXECUTED
40006370: 0084a783 lw a5,8(s1) <== NOT EXECUTED
40006374: 40022637 lui a2,0x40022 <== NOT EXECUTED
40006378: b1c60613 addi a2,a2,-1252 # 40021b1c <IMFS_node_control_sym_link+0x5bc><== NOT EXECUTED
4000637c: 0307a683 lw a3,48(a5) <== NOT EXECUTED
40006380: 0e068063 beqz a3,40006460 <rtems_rfs_buffer_handle_release.part.0+0x124><== NOT EXECUTED
40006384: 40022737 lui a4,0x40022 <== NOT EXECUTED
40006388: b1c70713 addi a4,a4,-1252 # 40021b1c <IMFS_node_control_sym_link+0x5bc><== NOT EXECUTED
4000638c: 40021537 lui a0,0x40021 <== NOT EXECUTED
40006390: 60050513 addi a0,a0,1536 # 40021600 <IMFS_node_control_sym_link+0xa0><== NOT EXECUTED
40006394: e64fb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (rtems_rfs_buffer_refs (handle) > 0)
40006398: 0084a783 lw a5,8(s1) <== NOT EXECUTED
4000639c: 0307a503 lw a0,48(a5) <== NOT EXECUTED
400063a0: 00a05663 blez a0,400063ac <rtems_rfs_buffer_handle_release.part.0+0x70><== NOT EXECUTED
rtems_rfs_buffer_refs_down (handle);
400063a4: fff50513 addi a0,a0,-1 <== NOT EXECUTED
400063a8: 02a7a823 sw a0,48(a5) <== NOT EXECUTED
if (rtems_rfs_buffer_refs (handle) == 0)
400063ac: 08051263 bnez a0,40006430 <rtems_rfs_buffer_handle_release.part.0+0xf4><== NOT EXECUTED
next = the_node->next;
400063b0: 0007a583 lw a1,0(a5) <== NOT EXECUTED
previous = the_node->previous;
400063b4: 0047a603 lw a2,4(a5) <== NOT EXECUTED
fs->buffers_count--;
400063b8: 05042683 lw a3,80(s0) <== NOT EXECUTED
if (rtems_rfs_fs_no_local_cache (fs))
400063bc: 00042703 lw a4,0(s0) <== NOT EXECUTED
next->previous = previous;
400063c0: 00c5a223 sw a2,4(a1) <== NOT EXECUTED
previous->next = next;
400063c4: 00b62023 sw a1,0(a2) <== NOT EXECUTED
fs->buffers_count--;
400063c8: fff68693 addi a3,a3,-1 <== NOT EXECUTED
400063cc: 04d42823 sw a3,80(s0) <== NOT EXECUTED
if (rtems_rfs_fs_no_local_cache (fs))
400063d0: 00277713 andi a4,a4,2 <== NOT EXECUTED
400063d4: 0c071a63 bnez a4,400064a8 <rtems_rfs_buffer_handle_release.part.0+0x16c><== NOT EXECUTED
if ((fs->release_count +
400063d8: 06042703 lw a4,96(s0) <== NOT EXECUTED
400063dc: 07042603 lw a2,112(s0) <== NOT EXECUTED
400063e0: 04042683 lw a3,64(s0) <== NOT EXECUTED
400063e4: 00c70733 add a4,a4,a2 <== NOT EXECUTED
400063e8: 0ed77463 bgeu a4,a3,400064d0 <rtems_rfs_buffer_handle_release.part.0+0x194><== NOT EXECUTED
if (rtems_rfs_buffer_dirty (handle))
400063ec: 0004c703 lbu a4,0(s1) <== NOT EXECUTED
400063f0: 06070e63 beqz a4,4000646c <rtems_rfs_buffer_handle_release.part.0+0x130><== NOT EXECUTED
old_last = tail->previous;
400063f4: 06c42683 lw a3,108(s0) <== NOT EXECUTED
return &the_chain->Tail.Node;
400063f8: 06840713 addi a4,s0,104 <== NOT EXECUTED
the_node->next = tail;
400063fc: 00e7a023 sw a4,0(a5) <== NOT EXECUTED
fs->release_modified_count++;
40006400: 07042703 lw a4,112(s0) <== NOT EXECUTED
tail->previous = the_node;
40006404: 06f42623 sw a5,108(s0) <== NOT EXECUTED
old_last->next = the_node;
40006408: 00f6a023 sw a5,0(a3) <== NOT EXECUTED
the_node->previous = old_last;
4000640c: 00d7a223 sw a3,4(a5) <== NOT EXECUTED
40006410: 00170713 addi a4,a4,1 <== NOT EXECUTED
40006414: 06e42823 sw a4,112(s0) <== NOT EXECUTED
}
40006418: 00c12083 lw ra,12(sp) <== NOT EXECUTED
4000641c: 00812403 lw s0,8(sp) <== NOT EXECUTED
handle->buffer = NULL;
40006420: 0004a423 sw zero,8(s1) <== NOT EXECUTED
}
40006424: 00412483 lw s1,4(sp) <== NOT EXECUTED
40006428: 01010113 addi sp,sp,16 <== NOT EXECUTED
4000642c: 00008067 ret <== NOT EXECUTED
40006430: 00c12083 lw ra,12(sp) <== NOT EXECUTED
40006434: 00812403 lw s0,8(sp) <== NOT EXECUTED
handle->buffer = NULL;
40006438: 0004a423 sw zero,8(s1) <== NOT EXECUTED
int rc = 0;
4000643c: 00000513 li a0,0 <== NOT EXECUTED
}
40006440: 00412483 lw s1,4(sp) <== NOT EXECUTED
40006444: 01010113 addi sp,sp,16 <== NOT EXECUTED
40006448: 00008067 ret <== NOT EXECUTED
printf ("rtems-rfs: buffer-release: block=%" PRIu32 " %s refs=%d %s\n",
4000644c: 0084a783 lw a5,8(s1) <== NOT EXECUTED
40006450: 40021637 lui a2,0x40021 <== NOT EXECUTED
40006454: 5e860613 addi a2,a2,1512 # 400215e8 <IMFS_node_control_sym_link+0x88><== NOT EXECUTED
40006458: 0307a683 lw a3,48(a5) <== NOT EXECUTED
4000645c: f20694e3 bnez a3,40006384 <rtems_rfs_buffer_handle_release.part.0+0x48><== NOT EXECUTED
40006460: 40021737 lui a4,0x40021 <== NOT EXECUTED
40006464: 5f070713 addi a4,a4,1520 # 400215f0 <IMFS_node_control_sym_link+0x90><== NOT EXECUTED
40006468: f25ff06f j 4000638c <rtems_rfs_buffer_handle_release.part.0+0x50><== NOT EXECUTED
old_last = tail->previous;
4000646c: 05c42683 lw a3,92(s0) <== NOT EXECUTED
return &the_chain->Tail.Node;
40006470: 05840713 addi a4,s0,88 <== NOT EXECUTED
the_node->next = tail;
40006474: 00e7a023 sw a4,0(a5) <== NOT EXECUTED
fs->release_count++;
40006478: 06042703 lw a4,96(s0) <== NOT EXECUTED
tail->previous = the_node;
4000647c: 04f42e23 sw a5,92(s0) <== NOT EXECUTED
old_last->next = the_node;
40006480: 00f6a023 sw a5,0(a3) <== NOT EXECUTED
the_node->previous = old_last;
40006484: 00d7a223 sw a3,4(a5) <== NOT EXECUTED
40006488: 00170713 addi a4,a4,1 <== NOT EXECUTED
4000648c: 06e42023 sw a4,96(s0) <== NOT EXECUTED
}
40006490: 00c12083 lw ra,12(sp) <== NOT EXECUTED
40006494: 00812403 lw s0,8(sp) <== NOT EXECUTED
handle->buffer = NULL;
40006498: 0004a423 sw zero,8(s1) <== NOT EXECUTED
}
4000649c: 00412483 lw s1,4(sp) <== NOT EXECUTED
400064a0: 01010113 addi sp,sp,16 <== NOT EXECUTED
400064a4: 00008067 ret <== NOT EXECUTED
rc = rtems_rfs_buffer_io_release (handle->buffer,
400064a8: 0004c583 lbu a1,0(s1) <== NOT EXECUTED
400064ac: 00078513 mv a0,a5 <== NOT EXECUTED
handle->buffer->user = (void*) 0;
400064b0: 0207aa23 sw zero,52(a5) <== NOT EXECUTED
rc = rtems_rfs_buffer_io_release (handle->buffer,
400064b4: 6410d0ef jal ra,400142f4 <rtems_rfs_buffer_bdbuf_release> <== NOT EXECUTED
}
400064b8: 00c12083 lw ra,12(sp) <== NOT EXECUTED
400064bc: 00812403 lw s0,8(sp) <== NOT EXECUTED
handle->buffer = NULL;
400064c0: 0004a423 sw zero,8(s1) <== NOT EXECUTED
}
400064c4: 00412483 lw s1,4(sp) <== NOT EXECUTED
400064c8: 01010113 addi sp,sp,16 <== NOT EXECUTED
400064cc: 00008067 ret <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_RELEASE))
400064d0: 20000513 li a0,512 <== NOT EXECUTED
400064d4: 00000593 li a1,0 <== NOT EXECUTED
400064d8: 435030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400064dc: 08051263 bnez a0,40006560 <rtems_rfs_buffer_handle_release.part.0+0x224><== NOT EXECUTED
if (fs->release_count > fs->release_modified_count)
400064e0: 06042703 lw a4,96(s0) <== NOT EXECUTED
400064e4: 07042783 lw a5,112(s0) <== NOT EXECUTED
400064e8: 02e7f863 bgeu a5,a4,40006518 <rtems_rfs_buffer_handle_release.part.0+0x1dc><== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
400064ec: 05442503 lw a0,84(s0) <== NOT EXECUTED
return &the_chain->Tail.Node;
400064f0: 05840793 addi a5,s0,88 <== NOT EXECUTED
400064f4: 05440693 addi a3,s0,84 <== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
400064f8: 04f50c63 beq a0,a5,40006550 <rtems_rfs_buffer_handle_release.part.0+0x214><== NOT EXECUTED
new_first = old_first->next;
400064fc: 00052783 lw a5,0(a0) <== NOT EXECUTED
head->next = new_first;
40006500: 04f42a23 sw a5,84(s0) <== NOT EXECUTED
new_first->previous = head;
40006504: 00d7a223 sw a3,4(a5) <== NOT EXECUTED
fs->release_count--;
40006508: fff70713 addi a4,a4,-1 <== NOT EXECUTED
4000650c: 06e42023 sw a4,96(s0) <== NOT EXECUTED
modified = false;
40006510: 00000593 li a1,0 <== NOT EXECUTED
40006514: 02c0006f j 40006540 <rtems_rfs_buffer_handle_release.part.0+0x204><== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
40006518: 06442503 lw a0,100(s0) <== NOT EXECUTED
return &the_chain->Tail.Node;
4000651c: 06840713 addi a4,s0,104 <== NOT EXECUTED
40006520: 06440693 addi a3,s0,100 <== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
40006524: 02e50a63 beq a0,a4,40006558 <rtems_rfs_buffer_handle_release.part.0+0x21c><== NOT EXECUTED
new_first = old_first->next;
40006528: 00052703 lw a4,0(a0) <== NOT EXECUTED
head->next = new_first;
4000652c: 06e42223 sw a4,100(s0) <== NOT EXECUTED
new_first->previous = head;
40006530: 00d72223 sw a3,4(a4) <== NOT EXECUTED
fs->release_modified_count--;
40006534: fff78793 addi a5,a5,-1 <== NOT EXECUTED
40006538: 06f42823 sw a5,112(s0) <== NOT EXECUTED
modified = true;
4000653c: 00100593 li a1,1 <== NOT EXECUTED
buffer->user = (void*) 0;
40006540: 02052a23 sw zero,52(a0) <== NOT EXECUTED
rc = rtems_rfs_buffer_io_release (buffer, modified);
40006544: 5b10d0ef jal ra,400142f4 <rtems_rfs_buffer_bdbuf_release> <== NOT EXECUTED
rtems_rfs_buffer_link (handle));
40006548: 0084a783 lw a5,8(s1) <== NOT EXECUTED
4000654c: ea1ff06f j 400063ec <rtems_rfs_buffer_handle_release.part.0+0xb0><== NOT EXECUTED
return NULL;
40006550: 00000513 li a0,0 <== NOT EXECUTED
40006554: fb5ff06f j 40006508 <rtems_rfs_buffer_handle_release.part.0+0x1cc><== NOT EXECUTED
40006558: 00000513 li a0,0 <== NOT EXECUTED
4000655c: fd9ff06f j 40006534 <rtems_rfs_buffer_handle_release.part.0+0x1f8><== NOT EXECUTED
printf ("rtems-rfs: buffer-release: local cache overflow:"
40006560: 06042583 lw a1,96(s0) <== NOT EXECUTED
40006564: 07042783 lw a5,112(s0) <== NOT EXECUTED
40006568: 40021537 lui a0,0x40021 <== NOT EXECUTED
4000656c: 63450513 addi a0,a0,1588 # 40021634 <IMFS_node_control_sym_link+0xd4><== NOT EXECUTED
40006570: 00f585b3 add a1,a1,a5 <== NOT EXECUTED
40006574: c84fb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40006578: f69ff06f j 400064e0 <rtems_rfs_buffer_handle_release.part.0+0x1a4><== NOT EXECUTED
4000657c <rtems_rfs_buffer_handle_request>:
if (rtems_rfs_buffer_handle_has_block (handle))
4000657c: 0085a783 lw a5,8(a1)
{
40006580: fe010113 addi sp,sp,-32
40006584: 00812c23 sw s0,24(sp)
40006588: 00912a23 sw s1,20(sp)
4000658c: 01212823 sw s2,16(sp)
40006590: 01412423 sw s4,8(sp)
40006594: 00112e23 sw ra,28(sp)
40006598: 01312623 sw s3,12(sp)
4000659c: 00058413 mv s0,a1
400065a0: 00050493 mv s1,a0
400065a4: 00060913 mv s2,a2
400065a8: 00068a13 mv s4,a3
if (rtems_rfs_buffer_handle_has_block (handle))
400065ac: 04078263 beqz a5,400065f0 <rtems_rfs_buffer_handle_request+0x74>
if (block && (rtems_rfs_buffer_bnum (handle) == block))
400065b0: 00060663 beqz a2,400065bc <rtems_rfs_buffer_handle_request+0x40><== NEVER TAKEN
400065b4: 0045a783 lw a5,4(a1)
400065b8: 0cc78a63 beq a5,a2,4000668c <rtems_rfs_buffer_handle_request+0x110>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
400065bc: 10000513 li a0,256
400065c0: 00000593 li a1,0
400065c4: 349030ef jal ra,4000a10c <rtems_rfs_trace>
400065c8: 16051c63 bnez a0,40006740 <rtems_rfs_buffer_handle_request+0x1c4><== NEVER TAKEN
if (rtems_rfs_buffer_handle_has_block (handle))
400065cc: 00842783 lw a5,8(s0)
400065d0: 00078c63 beqz a5,400065e8 <rtems_rfs_buffer_handle_request+0x6c><== NEVER TAKEN
400065d4: 00040593 mv a1,s0
400065d8: 00048513 mv a0,s1
400065dc: d61ff0ef jal ra,4000633c <rtems_rfs_buffer_handle_release.part.0>
400065e0: 00050993 mv s3,a0
if (rc > 0)
400065e4: 0aa04663 bgtz a0,40006690 <rtems_rfs_buffer_handle_request+0x114><== NEVER TAKEN
handle->dirty = false;
400065e8: 00040023 sb zero,0(s0)
handle->bnum = 0;
400065ec: 00042223 sw zero,4(s0)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
400065f0: 10000513 li a0,256
400065f4: 00000593 li a1,0
400065f8: 315030ef jal ra,4000a10c <rtems_rfs_trace>
400065fc: 12051463 bnez a0,40006724 <rtems_rfs_buffer_handle_request+0x1a8><== NEVER TAKEN
if (fs->buffers_count)
40006600: 0504a783 lw a5,80(s1)
40006604: 0c079e63 bnez a5,400066e0 <rtems_rfs_buffer_handle_request+0x164>
if (!rtems_rfs_fs_no_local_cache (fs) &&
40006608: 0004a783 lw a5,0(s1)
!rtems_rfs_buffer_handle_has_block (handle))
4000660c: 00842503 lw a0,8(s0)
if (!rtems_rfs_fs_no_local_cache (fs) &&
40006610: 0027f793 andi a5,a5,2
40006614: 0a079063 bnez a5,400066b4 <rtems_rfs_buffer_handle_request+0x138>
40006618: 14050e63 beqz a0,40006774 <rtems_rfs_buffer_handle_request+0x1f8>
rtems_rfs_buffer_refs_up (handle);
4000661c: 03052703 lw a4,48(a0)
old_last = tail->previous;
40006620: 04c4a683 lw a3,76(s1)
return &the_chain->Tail.Node;
40006624: 04848613 addi a2,s1,72
40006628: 00170713 addi a4,a4,1
fs->buffers_count++;
4000662c: 0504a783 lw a5,80(s1)
rtems_rfs_buffer_refs_up (handle);
40006630: 02e52823 sw a4,48(a0)
the_node->next = tail;
40006634: 00c52023 sw a2,0(a0)
tail->previous = the_node;
40006638: 04a4a623 sw a0,76(s1)
old_last->next = the_node;
4000663c: 00a6a023 sw a0,0(a3)
the_node->previous = old_last;
40006640: 00d52223 sw a3,4(a0)
fs->buffers_count++;
40006644: 00178793 addi a5,a5,1
40006648: 04f4a823 sw a5,80(s1)
handle->buffer->user = (void*) ((intptr_t) block);
4000664c: 03252a23 sw s2,52(a0)
handle->bnum = block;
40006650: 01242223 sw s2,4(s0)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
40006654: 10000513 li a0,256
40006658: 00000593 li a1,0
4000665c: 2b1030ef jal ra,4000a10c <rtems_rfs_trace>
40006660: 02050663 beqz a0,4000668c <rtems_rfs_buffer_handle_request+0x110><== ALWAYS TAKEN
printf ("rtems-rfs: buffer-request: block=%" PRIu32 " bdbuf-%s=%" PRIu32 " refs=%d\n",
40006664: 0e0a1c63 bnez s4,4000675c <rtems_rfs_buffer_handle_request+0x1e0><== NOT EXECUTED
40006668: 40021637 lui a2,0x40021 <== NOT EXECUTED
4000666c: 67460613 addi a2,a2,1652 # 40021674 <IMFS_node_control_sym_link+0x114><== NOT EXECUTED
block, read ? "read" : "get", handle->buffer->block,
40006670: 00842783 lw a5,8(s0) <== NOT EXECUTED
printf ("rtems-rfs: buffer-request: block=%" PRIu32 " bdbuf-%s=%" PRIu32 " refs=%d\n",
40006674: 40021537 lui a0,0x40021 <== NOT EXECUTED
40006678: 00090593 mv a1,s2 <== NOT EXECUTED
4000667c: 0307a703 lw a4,48(a5) <== NOT EXECUTED
40006680: 0187a683 lw a3,24(a5) <== NOT EXECUTED
40006684: 74050513 addi a0,a0,1856 # 40021740 <IMFS_node_control_sym_link+0x1e0><== NOT EXECUTED
40006688: b70fb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return 0;
4000668c: 00000993 li s3,0
}
40006690: 01c12083 lw ra,28(sp)
40006694: 01812403 lw s0,24(sp)
40006698: 01412483 lw s1,20(sp)
4000669c: 01012903 lw s2,16(sp)
400066a0: 00812a03 lw s4,8(sp)
400066a4: 00098513 mv a0,s3
400066a8: 00c12983 lw s3,12(sp)
400066ac: 02010113 addi sp,sp,32
400066b0: 00008067 ret
if (!rtems_rfs_buffer_handle_has_block (handle))
400066b4: f60514e3 bnez a0,4000661c <rtems_rfs_buffer_handle_request+0xa0><== NEVER TAKEN
rc = rtems_rfs_buffer_io_request (fs, block, read, &handle->buffer);
400066b8: 00840693 addi a3,s0,8
400066bc: 000a0613 mv a2,s4
400066c0: 00090593 mv a1,s2
400066c4: 00048513 mv a0,s1
400066c8: 3d50d0ef jal ra,4001429c <rtems_rfs_buffer_bdbuf_request>
400066cc: 00050993 mv s3,a0
if (rc > 0)
400066d0: 0ca04c63 bgtz a0,400067a8 <rtems_rfs_buffer_handle_request+0x22c><== NEVER TAKEN
rtems_chain_set_off_chain (rtems_rfs_buffer_link(handle));
400066d4: 00842503 lw a0,8(s0)
node->next = NULL;
400066d8: 00052023 sw zero,0(a0)
RTEMS_INLINE_ROUTINE void rtems_chain_set_off_chain(
rtems_chain_node *node
)
{
_Chain_Set_off_chain( node );
}
400066dc: f41ff06f j 4000661c <rtems_rfs_buffer_handle_request+0xa0>
handle->buffer = rtems_rfs_scan_chain (&fs->buffers,
400066e0: 00090613 mv a2,s2
400066e4: 05048593 addi a1,s1,80
400066e8: 04448513 addi a0,s1,68
400066ec: a79ff0ef jal ra,40006164 <rtems_rfs_scan_chain>
400066f0: 00a42423 sw a0,8(s0)
if (rtems_rfs_buffer_handle_has_block (handle) &&
400066f4: 06050a63 beqz a0,40006768 <rtems_rfs_buffer_handle_request+0x1ec>
rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
400066f8: 10000513 li a0,256
400066fc: 00000593 li a1,0
40006700: 20d030ef jal ra,4000a10c <rtems_rfs_trace>
if (rtems_rfs_buffer_handle_has_block (handle) &&
40006704: f00502e3 beqz a0,40006608 <rtems_rfs_buffer_handle_request+0x8c><== ALWAYS TAKEN
rtems_rfs_buffer_refs (handle) + 1);
40006708: 00842783 lw a5,8(s0) <== NOT EXECUTED
printf ("rtems-rfs: buffer-request: buffer shared: refs: %d\n",
4000670c: 40021537 lui a0,0x40021 <== NOT EXECUTED
40006710: 6d450513 addi a0,a0,1748 # 400216d4 <IMFS_node_control_sym_link+0x174><== NOT EXECUTED
40006714: 0307a583 lw a1,48(a5) <== NOT EXECUTED
40006718: 00158593 addi a1,a1,1 <== NOT EXECUTED
4000671c: adcfb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40006720: ee9ff06f j 40006608 <rtems_rfs_buffer_handle_request+0x8c> <== NOT EXECUTED
printf ("rtems-rfs: buffer-request: block=%" PRIu32 "\n", block);
40006724: 40021537 lui a0,0x40021 <== NOT EXECUTED
40006728: 00090593 mv a1,s2 <== NOT EXECUTED
4000672c: 6ac50513 addi a0,a0,1708 # 400216ac <IMFS_node_control_sym_link+0x14c><== NOT EXECUTED
40006730: ac8fb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (fs->buffers_count)
40006734: 0504a783 lw a5,80(s1) <== NOT EXECUTED
40006738: ec0788e3 beqz a5,40006608 <rtems_rfs_buffer_handle_request+0x8c><== NOT EXECUTED
4000673c: fa5ff06f j 400066e0 <rtems_rfs_buffer_handle_request+0x164> <== NOT EXECUTED
printf ("rtems-rfs: buffer-request: handle has buffer: %" PRIu32 "\n",
40006740: 00442583 lw a1,4(s0) <== NOT EXECUTED
40006744: 40021537 lui a0,0x40021 <== NOT EXECUTED
40006748: 67850513 addi a0,a0,1656 # 40021678 <IMFS_node_control_sym_link+0x118><== NOT EXECUTED
4000674c: aacfb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (rtems_rfs_buffer_handle_has_block (handle))
40006750: 00842783 lw a5,8(s0) <== NOT EXECUTED
40006754: e80790e3 bnez a5,400065d4 <rtems_rfs_buffer_handle_request+0x58><== NOT EXECUTED
40006758: e91ff06f j 400065e8 <rtems_rfs_buffer_handle_request+0x6c> <== NOT EXECUTED
printf ("rtems-rfs: buffer-request: block=%" PRIu32 " bdbuf-%s=%" PRIu32 " refs=%d\n",
4000675c: 40021637 lui a2,0x40021 <== NOT EXECUTED
40006760: 66c60613 addi a2,a2,1644 # 4002166c <IMFS_node_control_sym_link+0x10c><== NOT EXECUTED
40006764: f0dff06f j 40006670 <rtems_rfs_buffer_handle_request+0xf4> <== NOT EXECUTED
if (!rtems_rfs_fs_no_local_cache (fs) &&
40006768: 0004a783 lw a5,0(s1)
4000676c: 0027f793 andi a5,a5,2
40006770: f40794e3 bnez a5,400066b8 <rtems_rfs_buffer_handle_request+0x13c>
if (fs->release_count)
40006774: 0604a783 lw a5,96(s1)
40006778: 06079a63 bnez a5,400067ec <rtems_rfs_buffer_handle_request+0x270>
if (!rtems_rfs_buffer_handle_has_block (handle) &&
4000677c: 0704a783 lw a5,112(s1)
40006780: f2078ce3 beqz a5,400066b8 <rtems_rfs_buffer_handle_request+0x13c>
handle->buffer = rtems_rfs_scan_chain (&fs->release_modified,
40006784: 00090613 mv a2,s2
40006788: 07048593 addi a1,s1,112
4000678c: 06448513 addi a0,s1,100
40006790: 9d5ff0ef jal ra,40006164 <rtems_rfs_scan_chain>
40006794: 00a42423 sw a0,8(s0)
if (rtems_rfs_buffer_handle_has_block (handle))
40006798: f20500e3 beqz a0,400066b8 <rtems_rfs_buffer_handle_request+0x13c>
rtems_rfs_buffer_mark_dirty (handle);
4000679c: 00100793 li a5,1
400067a0: 00f40023 sb a5,0(s0)
400067a4: e79ff06f j 4000661c <rtems_rfs_buffer_handle_request+0xa0>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_HANDLE_REQUEST))
400067a8: 10000513 li a0,256 <== NOT EXECUTED
400067ac: 00000593 li a1,0 <== NOT EXECUTED
400067b0: 15d030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400067b4: ec050ee3 beqz a0,40006690 <rtems_rfs_buffer_handle_request+0x114><== NOT EXECUTED
printf ("rtems-rfs: buffer-request: block=%" PRIu32 ": bdbuf-%s: %d: %s\n",
400067b8: 040a1863 bnez s4,40006808 <rtems_rfs_buffer_handle_request+0x28c><== NOT EXECUTED
400067bc: 40021437 lui s0,0x40021 <== NOT EXECUTED
400067c0: 67440413 addi s0,s0,1652 # 40021674 <IMFS_node_control_sym_link+0x114><== NOT EXECUTED
400067c4: 00098513 mv a0,s3 <== NOT EXECUTED
400067c8: 79c180ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400067cc: 00050713 mv a4,a0 <== NOT EXECUTED
400067d0: 40021537 lui a0,0x40021 <== NOT EXECUTED
400067d4: 00098693 mv a3,s3 <== NOT EXECUTED
400067d8: 00040613 mv a2,s0 <== NOT EXECUTED
400067dc: 00090593 mv a1,s2 <== NOT EXECUTED
400067e0: 70850513 addi a0,a0,1800 # 40021708 <IMFS_node_control_sym_link+0x1a8><== NOT EXECUTED
400067e4: a14fb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400067e8: ea9ff06f j 40006690 <rtems_rfs_buffer_handle_request+0x114> <== NOT EXECUTED
handle->buffer = rtems_rfs_scan_chain (&fs->release,
400067ec: 00090613 mv a2,s2
400067f0: 06048593 addi a1,s1,96
400067f4: 05448513 addi a0,s1,84
400067f8: 96dff0ef jal ra,40006164 <rtems_rfs_scan_chain>
400067fc: 00a42423 sw a0,8(s0)
if (!rtems_rfs_buffer_handle_has_block (handle) &&
40006800: e0051ee3 bnez a0,4000661c <rtems_rfs_buffer_handle_request+0xa0>
40006804: f79ff06f j 4000677c <rtems_rfs_buffer_handle_request+0x200>
printf ("rtems-rfs: buffer-request: block=%" PRIu32 ": bdbuf-%s: %d: %s\n",
40006808: 40021437 lui s0,0x40021 <== NOT EXECUTED
4000680c: 66c40413 addi s0,s0,1644 # 4002166c <IMFS_node_control_sym_link+0x10c><== NOT EXECUTED
40006810: fb5ff06f j 400067c4 <rtems_rfs_buffer_handle_request+0x248> <== NOT EXECUTED
40006828 <rtems_rfs_buffer_open>:
{
40006828: f8010113 addi sp,sp,-128
4000682c: 06812c23 sw s0,120(sp)
40006830: 06912a23 sw s1,116(sp)
40006834: 00058413 mv s0,a1
40006838: 00050493 mv s1,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
4000683c: 00000593 li a1,0
40006840: 02000513 li a0,32
{
40006844: 06112e23 sw ra,124(sp)
40006848: 07212823 sw s2,112(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
4000684c: 0c1030ef jal ra,4000a10c <rtems_rfs_trace>
40006850: 0a051863 bnez a0,40006900 <rtems_rfs_buffer_open+0xd8> <== NEVER TAKEN
fs->device = open (name, O_RDWR);
40006854: 00200593 li a1,2
40006858: 00048513 mv a0,s1
4000685c: 3d50b0ef jal ra,40012430 <open>
40006860: 00a42623 sw a0,12(s0)
if (fs->device < 0)
40006864: 0c054063 bltz a0,40006924 <rtems_rfs_buffer_open+0xfc> <== NEVER TAKEN
if (fstat (fs->device, &st) < 0)
40006868: 00810593 addi a1,sp,8
4000686c: 71c0b0ef jal ra,40011f88 <fstat>
40006870: 14054463 bltz a0,400069b8 <rtems_rfs_buffer_open+0x190> <== NEVER TAKEN
if (!S_ISBLK (st.st_mode))
40006874: 01812683 lw a3,24(sp)
40006878: 0000f7b7 lui a5,0xf
4000687c: 00006737 lui a4,0x6
40006880: 00d7f7b3 and a5,a5,a3
40006884: 04e79663 bne a5,a4,400068d0 <rtems_rfs_buffer_open+0xa8>
static inline int rtems_disk_fd_get_disk_device(
int fd,
rtems_disk_device **dd_ptr
)
{
return ioctl(fd, RTEMS_BLKIO_GETDISKDEV, dd_ptr);
40006888: 00c42503 lw a0,12(s0)
4000688c: 400445b7 lui a1,0x40044
40006890: 01040613 addi a2,s0,16
40006894: 20958593 addi a1,a1,521 # 40044209 <WorkAreaBase+0x16dc9>
40006898: 0390b0ef jal ra,400120d0 <ioctl>
4000689c: 00050913 mv s2,a0
if (rv != 0)
400068a0: 0e051a63 bnez a0,40006994 <rtems_rfs_buffer_open+0x16c> <== NEVER TAKEN
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
400068a4: 02000513 li a0,32
400068a8: 00000593 li a1,0
400068ac: 061030ef jal ra,4000a10c <rtems_rfs_trace>
400068b0: 0a051863 bnez a0,40006960 <rtems_rfs_buffer_open+0x138> <== NEVER TAKEN
}
400068b4: 07c12083 lw ra,124(sp)
400068b8: 07812403 lw s0,120(sp)
400068bc: 07412483 lw s1,116(sp)
400068c0: 00090513 mv a0,s2
400068c4: 07012903 lw s2,112(sp)
400068c8: 08010113 addi sp,sp,128
400068cc: 00008067 ret
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_OPEN))
400068d0: 00800513 li a0,8 <== NOT EXECUTED
400068d4: 00000593 li a1,0 <== NOT EXECUTED
400068d8: 035030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400068dc: 06051663 bnez a0,40006948 <rtems_rfs_buffer_open+0x120> <== NOT EXECUTED
return ENXIO;
400068e0: 00600913 li s2,6 <== NOT EXECUTED
}
400068e4: 07c12083 lw ra,124(sp) <== NOT EXECUTED
400068e8: 07812403 lw s0,120(sp) <== NOT EXECUTED
400068ec: 07412483 lw s1,116(sp) <== NOT EXECUTED
400068f0: 00090513 mv a0,s2 <== NOT EXECUTED
400068f4: 07012903 lw s2,112(sp) <== NOT EXECUTED
400068f8: 08010113 addi sp,sp,128 <== NOT EXECUTED
400068fc: 00008067 ret <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: opening: %s\n", name);
40006900: 40021537 lui a0,0x40021 <== NOT EXECUTED
40006904: 00048593 mv a1,s1 <== NOT EXECUTED
40006908: 77c50513 addi a0,a0,1916 # 4002177c <IMFS_node_control_sym_link+0x21c><== NOT EXECUTED
4000690c: 8ecfb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
fs->device = open (name, O_RDWR);
40006910: 00200593 li a1,2 <== NOT EXECUTED
40006914: 00048513 mv a0,s1 <== NOT EXECUTED
40006918: 3190b0ef jal ra,40012430 <open> <== NOT EXECUTED
4000691c: 00a42623 sw a0,12(s0) <== NOT EXECUTED
if (fs->device < 0)
40006920: f40554e3 bgez a0,40006868 <rtems_rfs_buffer_open+0x40> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_OPEN))
40006924: 00800513 li a0,8 <== NOT EXECUTED
40006928: 00000593 li a1,0 <== NOT EXECUTED
4000692c: 7e0030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40006930: fa0508e3 beqz a0,400068e0 <rtems_rfs_buffer_open+0xb8> <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: cannot open file\n");
40006934: 40021537 lui a0,0x40021 <== NOT EXECUTED
40006938: 7a450513 addi a0,a0,1956 # 400217a4 <IMFS_node_control_sym_link+0x244><== NOT EXECUTED
4000693c: 904fb0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
return ENXIO;
40006940: 00600913 li s2,6 <== NOT EXECUTED
40006944: fa1ff06f j 400068e4 <rtems_rfs_buffer_open+0xbc> <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: '%s' is not a block device\n", name);
40006948: 40022537 lui a0,0x40022 <== NOT EXECUTED
4000694c: 00048593 mv a1,s1 <== NOT EXECUTED
40006950: 80050513 addi a0,a0,-2048 # 40021800 <IMFS_node_control_sym_link+0x2a0><== NOT EXECUTED
40006954: 8a4fb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return ENXIO;
40006958: 00600913 li s2,6 <== NOT EXECUTED
4000695c: f59ff06f j 400068b4 <rtems_rfs_buffer_open+0x8c> <== NOT EXECUTED
rtems_rfs_fs_media_blocks (fs),
40006960: 01042783 lw a5,16(s0) <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: blks=%" PRId32 ", blk-size=%" PRId32 "\n",
40006964: 40022537 lui a0,0x40022 <== NOT EXECUTED
40006968: 86450513 addi a0,a0,-1948 # 40021864 <IMFS_node_control_sym_link+0x304><== NOT EXECUTED
4000696c: 0207a603 lw a2,32(a5) # f020 <bsp_section_bss_size+0x9a70> <== NOT EXECUTED
40006970: 01c7a583 lw a1,28(a5) <== NOT EXECUTED
40006974: 884fb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
}
40006978: 07c12083 lw ra,124(sp) <== NOT EXECUTED
4000697c: 07812403 lw s0,120(sp) <== NOT EXECUTED
40006980: 07412483 lw s1,116(sp) <== NOT EXECUTED
40006984: 00090513 mv a0,s2 <== NOT EXECUTED
40006988: 07012903 lw s2,112(sp) <== NOT EXECUTED
4000698c: 08010113 addi sp,sp,128 <== NOT EXECUTED
40006990: 00008067 ret <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_OPEN))
40006994: 00800513 li a0,8 <== NOT EXECUTED
40006998: 00000593 li a1,0 <== NOT EXECUTED
4000699c: 770030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400069a0: f40500e3 beqz a0,400068e0 <rtems_rfs_buffer_open+0xb8> <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: cannot obtain the disk\n");
400069a4: 40022537 lui a0,0x40022 <== NOT EXECUTED
400069a8: 83450513 addi a0,a0,-1996 # 40021834 <IMFS_node_control_sym_link+0x2d4><== NOT EXECUTED
400069ac: 894fb0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
return ENXIO;
400069b0: 00600913 li s2,6 <== NOT EXECUTED
400069b4: f01ff06f j 400068b4 <rtems_rfs_buffer_open+0x8c> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_OPEN))
400069b8: 00800513 li a0,8 <== NOT EXECUTED
400069bc: 00000593 li a1,0 <== NOT EXECUTED
400069c0: 74c030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400069c4: f0050ee3 beqz a0,400068e0 <rtems_rfs_buffer_open+0xb8> <== NOT EXECUTED
name, strerror (errno));
400069c8: 2c0170ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: stat '%s' failed: %s\n",
400069cc: 00052503 lw a0,0(a0) <== NOT EXECUTED
return ENXIO;
400069d0: 00600913 li s2,6 <== NOT EXECUTED
printf ("rtems-rfs: buffer-open: stat '%s' failed: %s\n",
400069d4: 590180ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400069d8: 00050613 mv a2,a0 <== NOT EXECUTED
400069dc: 40021537 lui a0,0x40021 <== NOT EXECUTED
400069e0: 00048593 mv a1,s1 <== NOT EXECUTED
400069e4: 7d050513 addi a0,a0,2000 # 400217d0 <IMFS_node_control_sym_link+0x270><== NOT EXECUTED
400069e8: 810fb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400069ec: ec9ff06f j 400068b4 <rtems_rfs_buffer_open+0x8c> <== NOT EXECUTED
40006b38 <rtems_rfs_buffer_setblksize>:
{
40006b38: fe010113 addi sp,sp,-32
40006b3c: 00812c23 sw s0,24(sp)
40006b40: 00b12623 sw a1,12(sp)
40006b44: 00050413 mv s0,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
40006b48: 00000593 li a1,0
40006b4c: 40000513 li a0,1024
{
40006b50: 00112e23 sw ra,28(sp)
40006b54: 00912a23 sw s1,20(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
40006b58: 5b4030ef jal ra,4000a10c <rtems_rfs_trace>
40006b5c: 0e051a63 bnez a0,40006c50 <rtems_rfs_buffer_setblksize+0x118> <== NEVER TAKEN
rc = rtems_rfs_buffers_release (fs);
40006b60: 00040513 mv a0,s0
40006b64: f41ff0ef jal ra,40006aa4 <rtems_rfs_buffers_release>
40006b68: 00050493 mv s1,a0
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
40006b6c: 04a04263 bgtz a0,40006bb0 <rtems_rfs_buffer_setblksize+0x78> <== NEVER TAKEN
rc = rtems_rfs_buffer_sync (fs);
40006b70: 00040513 mv a0,s0
40006b74: e7dff0ef jal ra,400069f0 <rtems_rfs_buffer_sync>
40006b78: 00050493 mv s1,a0
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
40006b7c: 06a04863 bgtz a0,40006bec <rtems_rfs_buffer_setblksize+0xb4> <== NEVER TAKEN
rc = fs->disk->ioctl (fs->disk, RTEMS_BLKIO_SETBLKSIZE, &size);
40006b80: 01042503 lw a0,16(s0)
40006b84: 800445b7 lui a1,0x80044
40006b88: 00c10613 addi a2,sp,12
40006b8c: 03852783 lw a5,56(a0)
40006b90: 20458593 addi a1,a1,516 # 80044204 <RamEnd+0x3f044204>
40006b94: 000780e7 jalr a5
if (rc < 0)
40006b98: 08054e63 bltz a0,40006c34 <rtems_rfs_buffer_setblksize+0xfc> <== NEVER TAKEN
}
40006b9c: 01c12083 lw ra,28(sp)
40006ba0: 01812403 lw s0,24(sp)
40006ba4: 01412483 lw s1,20(sp)
40006ba8: 02010113 addi sp,sp,32
40006bac: 00008067 ret
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
40006bb0: 40000513 li a0,1024 <== NOT EXECUTED
40006bb4: 00000593 li a1,0 <== NOT EXECUTED
40006bb8: 554030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40006bbc: fa050ae3 beqz a0,40006b70 <rtems_rfs_buffer_setblksize+0x38> <== NOT EXECUTED
printf ("rtems-rfs: buffer-setblksize: buffer release failed: %d: %s\n",
40006bc0: 00048513 mv a0,s1 <== NOT EXECUTED
40006bc4: 3a0180ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40006bc8: 00050613 mv a2,a0 <== NOT EXECUTED
40006bcc: 40022537 lui a0,0x40022 <== NOT EXECUTED
40006bd0: 00048593 mv a1,s1 <== NOT EXECUTED
40006bd4: 95c50513 addi a0,a0,-1700 # 4002195c <IMFS_node_control_sym_link+0x3fc><== NOT EXECUTED
40006bd8: e21fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rc = rtems_rfs_buffer_sync (fs);
40006bdc: 00040513 mv a0,s0 <== NOT EXECUTED
40006be0: e11ff0ef jal ra,400069f0 <rtems_rfs_buffer_sync> <== NOT EXECUTED
40006be4: 00050493 mv s1,a0 <== NOT EXECUTED
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SETBLKSIZE))
40006be8: f8a05ce3 blez a0,40006b80 <rtems_rfs_buffer_setblksize+0x48> <== NOT EXECUTED
40006bec: 40000513 li a0,1024 <== NOT EXECUTED
40006bf0: 00000593 li a1,0 <== NOT EXECUTED
40006bf4: 518030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40006bf8: f80504e3 beqz a0,40006b80 <rtems_rfs_buffer_setblksize+0x48> <== NOT EXECUTED
printf ("rtems-rfs: buffer-setblksize: device sync failed: %d: %s\n",
40006bfc: 00048513 mv a0,s1 <== NOT EXECUTED
40006c00: 364180ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40006c04: 00050613 mv a2,a0 <== NOT EXECUTED
40006c08: 40022537 lui a0,0x40022 <== NOT EXECUTED
40006c0c: 00048593 mv a1,s1 <== NOT EXECUTED
40006c10: 99c50513 addi a0,a0,-1636 # 4002199c <IMFS_node_control_sym_link+0x43c><== NOT EXECUTED
40006c14: de5fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rc = fs->disk->ioctl (fs->disk, RTEMS_BLKIO_SETBLKSIZE, &size);
40006c18: 01042503 lw a0,16(s0) <== NOT EXECUTED
40006c1c: 800445b7 lui a1,0x80044 <== NOT EXECUTED
40006c20: 00c10613 addi a2,sp,12 <== NOT EXECUTED
40006c24: 03852783 lw a5,56(a0) <== NOT EXECUTED
40006c28: 20458593 addi a1,a1,516 # 80044204 <RamEnd+0x3f044204> <== NOT EXECUTED
40006c2c: 000780e7 jalr a5 <== NOT EXECUTED
if (rc < 0)
40006c30: f60556e3 bgez a0,40006b9c <rtems_rfs_buffer_setblksize+0x64> <== NOT EXECUTED
rc = errno;
40006c34: 054170ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
}
40006c38: 01c12083 lw ra,28(sp) <== NOT EXECUTED
40006c3c: 01812403 lw s0,24(sp) <== NOT EXECUTED
rc = errno;
40006c40: 00052503 lw a0,0(a0) <== NOT EXECUTED
}
40006c44: 01412483 lw s1,20(sp) <== NOT EXECUTED
40006c48: 02010113 addi sp,sp,32 <== NOT EXECUTED
40006c4c: 00008067 ret <== NOT EXECUTED
printf ("rtems-rfs: buffer-setblksize: block size: %" PRIu32 "\n", size);
40006c50: 00c12583 lw a1,12(sp) <== NOT EXECUTED
40006c54: 40022537 lui a0,0x40022 <== NOT EXECUTED
40006c58: 92c50513 addi a0,a0,-1748 # 4002192c <IMFS_node_control_sym_link+0x3cc><== NOT EXECUTED
40006c5c: d9dfa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40006c60: f01ff06f j 40006b60 <rtems_rfs_buffer_setblksize+0x28> <== NOT EXECUTED
400069f0 <rtems_rfs_buffer_sync>:
{
400069f0: ff010113 addi sp,sp,-16
400069f4: 00812423 sw s0,8(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
400069f8: 00000593 li a1,0
{
400069fc: 00050413 mv s0,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
40006a00: 02000513 li a0,32
{
40006a04: 00112623 sw ra,12(sp)
40006a08: 00912223 sw s1,4(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
40006a0c: 700030ef jal ra,4000a10c <rtems_rfs_trace>
40006a10: 02051863 bnez a0,40006a40 <rtems_rfs_buffer_sync+0x50> <== NEVER TAKEN
sc = rtems_bdbuf_syncdev (rtems_rfs_fs_device (fs));
40006a14: 01042503 lw a0,16(s0)
int result = 0;
40006a18: 00000493 li s1,0
sc = rtems_bdbuf_syncdev (rtems_rfs_fs_device (fs));
40006a1c: 7f80a0ef jal ra,40011214 <rtems_bdbuf_syncdev>
40006a20: 00050413 mv s0,a0
if (sc != RTEMS_SUCCESSFUL)
40006a24: 02051e63 bnez a0,40006a60 <rtems_rfs_buffer_sync+0x70> <== NEVER TAKEN
}
40006a28: 00c12083 lw ra,12(sp)
40006a2c: 00812403 lw s0,8(sp)
40006a30: 00048513 mv a0,s1
40006a34: 00412483 lw s1,4(sp)
40006a38: 01010113 addi sp,sp,16
40006a3c: 00008067 ret
printf ("rtems-rfs: buffer-sync: syncing\n");
40006a40: 40022537 lui a0,0x40022 <== NOT EXECUTED
40006a44: 89450513 addi a0,a0,-1900 # 40021894 <IMFS_node_control_sym_link+0x334><== NOT EXECUTED
40006a48: ff9fa0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
sc = rtems_bdbuf_syncdev (rtems_rfs_fs_device (fs));
40006a4c: 01042503 lw a0,16(s0) <== NOT EXECUTED
int result = 0;
40006a50: 00000493 li s1,0 <== NOT EXECUTED
sc = rtems_bdbuf_syncdev (rtems_rfs_fs_device (fs));
40006a54: 7c00a0ef jal ra,40011214 <rtems_bdbuf_syncdev> <== NOT EXECUTED
40006a58: 00050413 mv s0,a0 <== NOT EXECUTED
if (sc != RTEMS_SUCCESSFUL)
40006a5c: fc0506e3 beqz a0,40006a28 <rtems_rfs_buffer_sync+0x38> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
40006a60: 02000513 li a0,32 <== NOT EXECUTED
40006a64: 00000593 li a1,0 <== NOT EXECUTED
40006a68: 6a4030ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
result = EIO;
40006a6c: 00500493 li s1,5 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_SYNC))
40006a70: fa050ce3 beqz a0,40006a28 <rtems_rfs_buffer_sync+0x38> <== NOT EXECUTED
printf ("rtems-rfs: buffer-sync: device sync failed: %s\n",
40006a74: 00040513 mv a0,s0 <== NOT EXECUTED
40006a78: 6b4030ef jal ra,4000a12c <rtems_status_text> <== NOT EXECUTED
40006a7c: 00050593 mv a1,a0 <== NOT EXECUTED
40006a80: 40022537 lui a0,0x40022 <== NOT EXECUTED
40006a84: 8b450513 addi a0,a0,-1868 # 400218b4 <IMFS_node_control_sym_link+0x354><== NOT EXECUTED
40006a88: f71fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
}
40006a8c: 00c12083 lw ra,12(sp) <== NOT EXECUTED
40006a90: 00812403 lw s0,8(sp) <== NOT EXECUTED
40006a94: 00048513 mv a0,s1 <== NOT EXECUTED
40006a98: 00412483 lw s1,4(sp) <== NOT EXECUTED
40006a9c: 01010113 addi sp,sp,16 <== NOT EXECUTED
40006aa0: 00008067 ret <== NOT EXECUTED
40006aa4 <rtems_rfs_buffers_release>:
int
rtems_rfs_buffers_release (rtems_rfs_file_system* fs)
{
40006aa4: ff010113 addi sp,sp,-16
40006aa8: 00812423 sw s0,8(sp)
int rrc = 0;
int rc;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_RELEASE))
40006aac: 00000593 li a1,0
{
40006ab0: 00050413 mv s0,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_RELEASE))
40006ab4: 04000513 li a0,64
{
40006ab8: 00112623 sw ra,12(sp)
40006abc: 00912223 sw s1,4(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_BUFFER_RELEASE))
40006ac0: 64c030ef jal ra,4000a10c <rtems_rfs_trace>
40006ac4: 04051c63 bnez a0,40006b1c <rtems_rfs_buffers_release+0x78> <== NEVER TAKEN
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,
40006ac8: 06040593 addi a1,s0,96
40006acc: 00000613 li a2,0
40006ad0: 05440513 addi a0,s0,84
40006ad4: fb0ff0ef jal ra,40006284 <rtems_rfs_release_chain>
40006ad8: fff54793 not a5,a0
40006adc: 00050493 mv s1,a0
&fs->release_count,
false);
if ((rc > 0) && (rrc == 0))
40006ae0: 41f7d793 srai a5,a5,0x1f
rrc = rc;
rc = rtems_rfs_release_chain (&fs->release_modified,
40006ae4: 07040593 addi a1,s0,112
40006ae8: 06440513 addi a0,s0,100
40006aec: 00100613 li a2,1
40006af0: 00f4f433 and s0,s1,a5
40006af4: f90ff0ef jal ra,40006284 <rtems_rfs_release_chain>
&fs->release_modified_count,
true);
if ((rc > 0) && (rrc == 0))
40006af8: 00a05663 blez a0,40006b04 <rtems_rfs_buffers_release+0x60> <== ALWAYS TAKEN
40006afc: 00904463 bgtz s1,40006b04 <rtems_rfs_buffers_release+0x60> <== NOT EXECUTED
40006b00: 00050413 mv s0,a0 <== NOT EXECUTED
rrc = rc;
return rrc;
}
40006b04: 00c12083 lw ra,12(sp)
40006b08: 00040513 mv a0,s0
40006b0c: 00812403 lw s0,8(sp)
40006b10: 00412483 lw s1,4(sp)
40006b14: 01010113 addi sp,sp,16
40006b18: 00008067 ret
printf ("rtems-rfs: buffers-release: active:%" PRIu32 " "
40006b1c: 07042683 lw a3,112(s0) <== NOT EXECUTED
40006b20: 06042603 lw a2,96(s0) <== NOT EXECUTED
40006b24: 05042583 lw a1,80(s0) <== NOT EXECUTED
40006b28: 40022537 lui a0,0x40022 <== NOT EXECUTED
40006b2c: 8e450513 addi a0,a0,-1820 # 400218e4 <IMFS_node_control_sym_link+0x384><== NOT EXECUTED
40006b30: ec9fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40006b34: f95ff06f j 40006ac8 <rtems_rfs_buffers_release+0x24> <== NOT EXECUTED
40014874 <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)
{
40014874: f4010113 addi sp,sp,-192
40014878: 0b312623 sw s3,172(sp)
4001487c: 09912a23 sw s9,148(sp)
40014880: 00058993 mv s3,a1
40014884: 00050c93 mv s9,a0
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))
40014888: 00000593 li a1,0
4001488c: 20000537 lui a0,0x20000
{
40014890: 0b212823 sw s2,176(sp)
40014894: 0b412423 sw s4,168(sp)
40014898: 0b512223 sw s5,164(sp)
4001489c: 0a112e23 sw ra,188(sp)
400148a0: 0a812c23 sw s0,184(sp)
400148a4: 0a912a23 sw s1,180(sp)
400148a8: 0b612023 sw s6,160(sp)
400148ac: 09712e23 sw s7,156(sp)
400148b0: 09812c23 sw s8,152(sp)
400148b4: 09a12823 sw s10,144(sp)
400148b8: 09b12623 sw s11,140(sp)
400148bc: 00060a13 mv s4,a2
400148c0: 00068913 mv s2,a3
400148c4: 00070a93 mv s5,a4
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_ADD_ENTRY))
400148c8: 845f50ef jal ra,4000a10c <rtems_rfs_trace>
400148cc: 2a051c63 bnez a0,40014b84 <rtems_rfs_dir_add_entry+0x310> <== NEVER TAKEN
for (c = 0; c < length; c++)
printf ("%c", name[c]);
printf (", len=%zd\n", length);
}
rc = rtems_rfs_block_map_open (fs, dir, &map);
400148d0: 03010613 addi a2,sp,48
400148d4: 00098593 mv a1,s3
400148d8: 000c8513 mv a0,s9
400148dc: c9dfe0ef jal ra,40013578 <rtems_rfs_block_map_open>
400148e0: 00050413 mv s0,a0
if (rc > 0)
400148e4: 0ca04663 bgtz a0,400149b0 <rtems_rfs_dir_add_entry+0x13c> <== NEVER TAKEN
int elength;
elength = rtems_rfs_dir_entry_length (entry);
eino = rtems_rfs_dir_entry_ino (entry);
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
400148e8: 00010d37 lui s10,0x10
{
if ((length + RTEMS_RFS_DIR_ENTRY_SIZE) <
400148ec: 00a90793 addi a5,s2,10
handle->dirty = false;
400148f0: 02010223 sb zero,36(sp)
handle->bnum = 0;
400148f4: 02012423 sw zero,40(sp)
handle->buffer = NULL;
400148f8: 02012623 sw zero,44(sp)
bpos->bno = 0;
400148fc: 00012c23 sw zero,24(sp)
bpos->boff = 0;
40014900: 00012e23 sw zero,28(sp)
bpos->block = 0;
40014904: 02012023 sw zero,32(sp)
if (rc != ENXIO)
40014908: 00600b13 li s6,6
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
4001490c: fffd0d13 addi s10,s10,-1 # ffff <bsp_section_bss_size+0xaa4f>
}
break;
}
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
40014910: 00a00d93 li s11,10
if ((length + RTEMS_RFS_DIR_ENTRY_SIZE) <
40014914: 00f12623 sw a5,12(sp)
rc = rtems_rfs_block_map_find (fs, &map, &bpos, &block);
40014918: 01410693 addi a3,sp,20
4001491c: 01810613 addi a2,sp,24
40014920: 03010593 addi a1,sp,48
40014924: 000c8513 mv a0,s9
40014928: 818ff0ef jal ra,40013940 <rtems_rfs_block_map_find>
4001492c: 00050413 mv s0,a0
if (rc > 0)
40014930: 28a05a63 blez a0,40014bc4 <rtems_rfs_dir_add_entry+0x350>
if (rc != ENXIO)
40014934: 31651e63 bne a0,s6,40014c50 <rtems_rfs_dir_add_entry+0x3dc>
rc = rtems_rfs_block_map_grow (fs, &map, 1, &block);
40014938: 01410693 addi a3,sp,20
4001493c: 00100613 li a2,1
40014940: 03010593 addi a1,sp,48
40014944: 000c8513 mv a0,s9
40014948: a40ff0ef jal ra,40013b88 <rtems_rfs_block_map_grow>
4001494c: 00050413 mv s0,a0
if (rc > 0)
40014950: 2ca04463 bgtz a0,40014c18 <rtems_rfs_dir_add_entry+0x3a4> <== NEVER TAKEN
bpos.bno++;
40014954: 01812783 lw a5,24(sp)
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, read);
40014958: 01412603 lw a2,20(sp)
4001495c: 00000693 li a3,0
bpos.bno++;
40014960: 00178793 addi a5,a5,1
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, read);
40014964: 02410593 addi a1,sp,36
40014968: 000c8513 mv a0,s9
bpos.bno++;
4001496c: 00f12c23 sw a5,24(sp)
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, read);
40014970: c0df10ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
40014974: 00050413 mv s0,a0
if (rc > 0)
40014978: 06a05c63 blez a0,400149f0 <rtems_rfs_dir_add_entry+0x17c> <== ALWAYS TAKEN
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_ADD_ENTRY))
4001497c: 20000537 lui a0,0x20000 <== NOT EXECUTED
40014980: 00000593 li a1,0 <== NOT EXECUTED
40014984: f88f50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40014988: 30051063 bnez a0,40014c88 <rtems_rfs_dir_add_entry+0x414> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4001498c: 02410593 addi a1,sp,36 <== NOT EXECUTED
40014990: 000c8513 mv a0,s9 <== NOT EXECUTED
40014994: e81f10ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
offset += elength;
}
}
rtems_rfs_buffer_handle_close (fs, &buffer);
rtems_rfs_block_map_close (fs, &map);
40014998: 03010593 addi a1,sp,48 <== NOT EXECUTED
4001499c: 000c8513 mv a0,s9 <== NOT EXECUTED
handle->dirty = false;
400149a0: 02010223 sb zero,36(sp) <== NOT EXECUTED
handle->bnum = 0;
400149a4: 02012423 sw zero,40(sp) <== NOT EXECUTED
handle->buffer = NULL;
400149a8: 02012623 sw zero,44(sp) <== NOT EXECUTED
400149ac: da1fe0ef jal ra,4001374c <rtems_rfs_block_map_close> <== NOT EXECUTED
return rc;
}
400149b0: 0bc12083 lw ra,188(sp)
400149b4: 00040513 mv a0,s0
400149b8: 0b812403 lw s0,184(sp)
400149bc: 0b412483 lw s1,180(sp)
400149c0: 0b012903 lw s2,176(sp)
400149c4: 0ac12983 lw s3,172(sp)
400149c8: 0a812a03 lw s4,168(sp)
400149cc: 0a412a83 lw s5,164(sp)
400149d0: 0a012b03 lw s6,160(sp)
400149d4: 09c12b83 lw s7,156(sp)
400149d8: 09812c03 lw s8,152(sp)
400149dc: 09412c83 lw s9,148(sp)
400149e0: 09012d03 lw s10,144(sp)
400149e4: 08c12d83 lw s11,140(sp)
400149e8: 0c010113 addi sp,sp,192
400149ec: 00008067 ret
entry = rtems_rfs_buffer_data (&buffer);
400149f0: 02c12783 lw a5,44(sp)
memset (entry, 0xff, rtems_rfs_fs_block_size (fs));
400149f4: 008ca603 lw a2,8(s9)
400149f8: 0ff00593 li a1,255
entry = rtems_rfs_buffer_data (&buffer);
400149fc: 01c7ac03 lw s8,28(a5)
memset (entry, 0xff, rtems_rfs_fs_block_size (fs));
40014a00: 000c0513 mv a0,s8
40014a04: 135090ef jal ra,4001e338 <memset>
while (offset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40014a08: 008ca503 lw a0,8(s9)
40014a0c: ff650793 addi a5,a0,-10 # 1ffffff6 <RamSize+0x1efffff6>
40014a10: f00784e3 beqz a5,40014918 <rtems_rfs_dir_add_entry+0xa4> <== NEVER TAKEN
offset = 0;
40014a14: 00000b93 li s7,0
while (offset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40014a18: 00000593 li a1,0
40014a1c: 02c0006f j 40014a48 <rtems_rfs_dir_add_entry+0x1d4>
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
40014a20: 129dd463 bge s11,s1,40014b48 <rtems_rfs_dir_add_entry+0x2d4>
40014a24: 01cca683 lw a3,28(s9)
entry += elength;
40014a28: 009c0c33 add s8,s8,s1
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
40014a2c: 10d4fe63 bgeu s1,a3,40014b48 <rtems_rfs_dir_add_entry+0x2d4>
40014a30: 10040c63 beqz s0,40014b48 <rtems_rfs_dir_add_entry+0x2d4> <== NEVER TAKEN
40014a34: 014ca683 lw a3,20(s9)
40014a38: 1086e863 bltu a3,s0,40014b48 <rtems_rfs_dir_add_entry+0x2d4>
offset += elength;
40014a3c: 009b8bb3 add s7,s7,s1
while (offset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40014a40: 000b8593 mv a1,s7
40014a44: ecfbfae3 bgeu s7,a5,40014918 <rtems_rfs_dir_add_entry+0xa4>
entry += elength;
40014a48: 009c4603 lbu a2,9(s8)
40014a4c: 008c4483 lbu s1,8(s8)
eino = rtems_rfs_dir_entry_ino (entry);
40014a50: 000c4403 lbu s0,0(s8)
40014a54: 001c4803 lbu a6,1(s8)
40014a58: 00861613 slli a2,a2,0x8
40014a5c: 00966633 or a2,a2,s1
40014a60: 00861493 slli s1,a2,0x8
40014a64: 003c4883 lbu a7,3(s8)
40014a68: 002c4683 lbu a3,2(s8)
40014a6c: 00865613 srli a2,a2,0x8
40014a70: 01841413 slli s0,s0,0x18
40014a74: 01081813 slli a6,a6,0x10
40014a78: 00c4e633 or a2,s1,a2
40014a7c: 01046433 or s0,s0,a6
40014a80: 01061493 slli s1,a2,0x10
40014a84: 01146433 or s0,s0,a7
40014a88: 00869693 slli a3,a3,0x8
40014a8c: 0104d493 srli s1,s1,0x10
40014a90: 00d46433 or s0,s0,a3
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40014a94: f9a496e3 bne s1,s10,40014a20 <rtems_rfs_dir_add_entry+0x1ac>
if ((length + RTEMS_RFS_DIR_ENTRY_SIZE) <
40014a98: 00c12783 lw a5,12(sp)
(rtems_rfs_fs_block_size (fs) - offset))
40014a9c: 40b505b3 sub a1,a0,a1
if ((length + RTEMS_RFS_DIR_ENTRY_SIZE) <
40014aa0: e6b7fce3 bgeu a5,a1,40014918 <rtems_rfs_dir_add_entry+0xa4>
hash = rtems_rfs_dir_hash (name, length);
40014aa4: 00090593 mv a1,s2
40014aa8: 000a0513 mv a0,s4
40014aac: 469000ef jal ra,40015714 <rtems_rfs_dir_hash>
rtems_rfs_dir_set_entry_length (entry,
40014ab0: 00c12e83 lw t4,12(sp)
rtems_rfs_dir_set_entry_hash (entry, hash);
40014ab4: 01855e13 srli t3,a0,0x18
40014ab8: 01055313 srli t1,a0,0x10
rtems_rfs_dir_set_entry_length (entry,
40014abc: 010e9713 slli a4,t4,0x10
40014ac0: 01075713 srli a4,a4,0x10
rtems_rfs_dir_set_entry_hash (entry, hash);
40014ac4: 00855893 srli a7,a0,0x8
hash = rtems_rfs_dir_hash (name, length);
40014ac8: 00050793 mv a5,a0
rtems_rfs_dir_set_entry_length (entry,
40014acc: 00875713 srli a4,a4,0x8
rtems_rfs_dir_set_entry_ino (entry, ino);
40014ad0: 018ad813 srli a6,s5,0x18
40014ad4: 008ad693 srli a3,s5,0x8
40014ad8: 010ad513 srli a0,s5,0x10
memcpy (entry + RTEMS_RFS_DIR_ENTRY_SIZE, name, length);
40014adc: 00090613 mv a2,s2
40014ae0: 000a0593 mv a1,s4
rtems_rfs_dir_set_entry_hash (entry, hash);
40014ae4: 01cc0223 sb t3,4(s8)
40014ae8: 006c02a3 sb t1,5(s8)
40014aec: 011c0323 sb a7,6(s8)
40014af0: 00fc03a3 sb a5,7(s8)
rtems_rfs_dir_set_entry_ino (entry, ino);
40014af4: 010c0023 sb a6,0(s8)
40014af8: 00ac00a3 sb a0,1(s8)
40014afc: 00dc0123 sb a3,2(s8)
rtems_rfs_dir_set_entry_length (entry,
40014b00: 00ec0423 sb a4,8(s8)
40014b04: 01dc04a3 sb t4,9(s8)
rtems_rfs_dir_set_entry_ino (entry, ino);
40014b08: 015c01a3 sb s5,3(s8)
memcpy (entry + RTEMS_RFS_DIR_ENTRY_SIZE, name, length);
40014b0c: 00ac0513 addi a0,s8,10
40014b10: 5e0090ef jal ra,4001e0f0 <memcpy>
rtems_rfs_buffer_handle_release (fs, handle);
40014b14: 02410593 addi a1,sp,36
rtems_rfs_buffer_mark_dirty (&buffer);
40014b18: 00100793 li a5,1
40014b1c: 000c8513 mv a0,s9
40014b20: 02f10223 sb a5,36(sp)
40014b24: cf1f10ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
rtems_rfs_block_map_close (fs, &map);
40014b28: 03010593 addi a1,sp,48
40014b2c: 000c8513 mv a0,s9
handle->dirty = false;
40014b30: 02010223 sb zero,36(sp)
handle->bnum = 0;
40014b34: 02012423 sw zero,40(sp)
handle->buffer = NULL;
40014b38: 02012623 sw zero,44(sp)
return 0;
40014b3c: 00000413 li s0,0
rtems_rfs_block_map_close (fs, &map);
40014b40: c0dfe0ef jal ra,4001374c <rtems_rfs_block_map_close>
return 0;
40014b44: e6dff06f j 400149b0 <rtems_rfs_dir_add_entry+0x13c>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_ADD_ENTRY))
40014b48: 20000537 lui a0,0x20000 <== NOT EXECUTED
40014b4c: 00000593 li a1,0 <== NOT EXECUTED
40014b50: dbcf50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40014b54: 0a051263 bnez a0,40014bf8 <rtems_rfs_dir_add_entry+0x384> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40014b58: 02410593 addi a1,sp,36 <== NOT EXECUTED
40014b5c: 000c8513 mv a0,s9 <== NOT EXECUTED
40014b60: cb5f10ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40014b64: 03010593 addi a1,sp,48 <== NOT EXECUTED
40014b68: 000c8513 mv a0,s9 <== NOT EXECUTED
handle->dirty = false;
40014b6c: 02010223 sb zero,36(sp) <== NOT EXECUTED
handle->bnum = 0;
40014b70: 02012423 sw zero,40(sp) <== NOT EXECUTED
handle->buffer = NULL;
40014b74: 02012623 sw zero,44(sp) <== NOT EXECUTED
return EIO;
40014b78: 00500413 li s0,5 <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40014b7c: bd1fe0ef jal ra,4001374c <rtems_rfs_block_map_close> <== NOT EXECUTED
return EIO;
40014b80: e31ff06f j 400149b0 <rtems_rfs_dir_add_entry+0x13c> <== NOT EXECUTED
printf ("rtems-rfs: dir-add-entry: dir=%" PRId32 ", name=",
40014b84: 0089a583 lw a1,8(s3) <== NOT EXECUTED
40014b88: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014b8c: 1e850513 addi a0,a0,488 # 400231e8 <IMFS_LIMITS_AND_OPTIONS+0x408><== NOT EXECUTED
40014b90: e69ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
for (c = 0; c < length; c++)
40014b94: 00090e63 beqz s2,40014bb0 <rtems_rfs_dir_add_entry+0x33c> <== NOT EXECUTED
40014b98: 000a0413 mv s0,s4 <== NOT EXECUTED
40014b9c: 014904b3 add s1,s2,s4 <== NOT EXECUTED
printf ("%c", name[c]);
40014ba0: 00044503 lbu a0,0(s0) <== NOT EXECUTED
for (c = 0; c < length; c++)
40014ba4: 00140413 addi s0,s0,1 <== NOT EXECUTED
printf ("%c", name[c]);
40014ba8: 06d090ef jal ra,4001e414 <putchar> <== NOT EXECUTED
for (c = 0; c < length; c++)
40014bac: fe849ae3 bne s1,s0,40014ba0 <rtems_rfs_dir_add_entry+0x32c> <== NOT EXECUTED
printf (", len=%zd\n", length);
40014bb0: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014bb4: 00090593 mv a1,s2 <== NOT EXECUTED
40014bb8: 21050513 addi a0,a0,528 # 40023210 <IMFS_LIMITS_AND_OPTIONS+0x430><== NOT EXECUTED
40014bbc: e3dec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40014bc0: d11ff06f j 400148d0 <rtems_rfs_dir_add_entry+0x5c> <== NOT EXECUTED
bpos.bno++;
40014bc4: 01812783 lw a5,24(sp)
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, read);
40014bc8: 01412603 lw a2,20(sp)
40014bcc: 00100693 li a3,1
bpos.bno++;
40014bd0: 00178793 addi a5,a5,1
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, read);
40014bd4: 02410593 addi a1,sp,36
40014bd8: 000c8513 mv a0,s9
bpos.bno++;
40014bdc: 00f12c23 sw a5,24(sp)
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, read);
40014be0: 99df10ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
40014be4: 00050413 mv s0,a0
if (rc > 0)
40014be8: d8a04ae3 bgtz a0,4001497c <rtems_rfs_dir_add_entry+0x108> <== NEVER TAKEN
entry = rtems_rfs_buffer_data (&buffer);
40014bec: 02c12783 lw a5,44(sp)
40014bf0: 01c7ac03 lw s8,28(a5)
if (!read)
40014bf4: e15ff06f j 40014a08 <rtems_rfs_dir_add_entry+0x194>
printf ("rtems-rfs: dir-add-entry: "
40014bf8: 0089a583 lw a1,8(s3) <== NOT EXECUTED
40014bfc: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014c00: 000b8713 mv a4,s7 <== NOT EXECUTED
40014c04: 00040693 mv a3,s0 <== NOT EXECUTED
40014c08: 00048613 mv a2,s1 <== NOT EXECUTED
40014c0c: 2ec50513 addi a0,a0,748 # 400232ec <IMFS_LIMITS_AND_OPTIONS+0x50c><== NOT EXECUTED
40014c10: de9ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40014c14: f45ff06f j 40014b58 <rtems_rfs_dir_add_entry+0x2e4> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_ADD_ENTRY))
40014c18: 20000537 lui a0,0x20000 <== NOT EXECUTED
40014c1c: 00000593 li a1,0 <== NOT EXECUTED
40014c20: cecf50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40014c24: d60504e3 beqz a0,4001498c <rtems_rfs_dir_add_entry+0x118> <== NOT EXECUTED
printf ("rtems-rfs: dir-add-entry: "
40014c28: 0089a483 lw s1,8(s3) <== NOT EXECUTED
40014c2c: 00040513 mv a0,s0 <== NOT EXECUTED
40014c30: 3340a0ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40014c34: 00050693 mv a3,a0 <== NOT EXECUTED
40014c38: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014c3c: 00040613 mv a2,s0 <== NOT EXECUTED
40014c40: 00048593 mv a1,s1 <== NOT EXECUTED
40014c44: 26050513 addi a0,a0,608 # 40023260 <IMFS_LIMITS_AND_OPTIONS+0x480><== NOT EXECUTED
40014c48: db1ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40014c4c: d41ff06f j 4001498c <rtems_rfs_dir_add_entry+0x118> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_ADD_ENTRY))
40014c50: 20000537 lui a0,0x20000 <== NOT EXECUTED
40014c54: 00000593 li a1,0 <== NOT EXECUTED
40014c58: cb4f50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40014c5c: d20508e3 beqz a0,4001498c <rtems_rfs_dir_add_entry+0x118> <== NOT EXECUTED
printf ("rtems-rfs: dir-add-entry: "
40014c60: 0089a483 lw s1,8(s3) <== NOT EXECUTED
40014c64: 00040513 mv a0,s0 <== NOT EXECUTED
40014c68: 2fc0a0ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40014c6c: 00050693 mv a3,a0 <== NOT EXECUTED
40014c70: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014c74: 00040613 mv a2,s0 <== NOT EXECUTED
40014c78: 00048593 mv a1,s1 <== NOT EXECUTED
40014c7c: 21c50513 addi a0,a0,540 # 4002321c <IMFS_LIMITS_AND_OPTIONS+0x43c><== NOT EXECUTED
40014c80: d79ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40014c84: d09ff06f j 4001498c <rtems_rfs_dir_add_entry+0x118> <== NOT EXECUTED
printf ("rtems-rfs: dir-add-entry: "
40014c88: 0089a483 lw s1,8(s3) <== NOT EXECUTED
40014c8c: 00040513 mv a0,s0 <== NOT EXECUTED
40014c90: 2d40a0ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40014c94: 00050693 mv a3,a0 <== NOT EXECUTED
40014c98: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014c9c: 00040613 mv a2,s0 <== NOT EXECUTED
40014ca0: 00048593 mv a1,s1 <== NOT EXECUTED
40014ca4: 2a450513 addi a0,a0,676 # 400232a4 <IMFS_LIMITS_AND_OPTIONS+0x4c4><== NOT EXECUTED
40014ca8: d51ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40014cac: ce1ff06f j 4001498c <rtems_rfs_dir_add_entry+0x118> <== NOT EXECUTED
40014cb0 <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)
{
40014cb0: f6010113 addi sp,sp,-160
40014cb4: 09212823 sw s2,144(sp)
40014cb8: 09512223 sw s5,132(sp)
40014cbc: 00058913 mv s2,a1
40014cc0: 00050a93 mv s5,a0
rtems_rfs_block_no block;
rtems_rfs_buffer_handle buffer;
bool search;
int rc;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
40014cc4: 00000593 li a1,0
40014cc8: 40000537 lui a0,0x40000
{
40014ccc: 07712e23 sw s7,124(sp)
40014cd0: 07812c23 sw s8,120(sp)
40014cd4: 08112e23 sw ra,156(sp)
40014cd8: 08812c23 sw s0,152(sp)
40014cdc: 08912a23 sw s1,148(sp)
40014ce0: 09312623 sw s3,140(sp)
40014ce4: 09412423 sw s4,136(sp)
40014ce8: 09612023 sw s6,128(sp)
40014cec: 07912a23 sw s9,116(sp)
40014cf0: 07a12823 sw s10,112(sp)
40014cf4: 07b12623 sw s11,108(sp)
40014cf8: 00060c13 mv s8,a2
40014cfc: 00068b93 mv s7,a3
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
40014d00: c0cf50ef jal ra,4000a10c <rtems_rfs_trace>
40014d04: 1c051263 bnez a0,40014ec8 <rtems_rfs_dir_del_entry+0x218> <== NEVER TAKEN
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);
40014d08: 01010613 addi a2,sp,16
40014d0c: 00090593 mv a1,s2
40014d10: 000a8513 mv a0,s5
40014d14: 865fe0ef jal ra,40013578 <rtems_rfs_block_map_open>
40014d18: 00050b13 mv s6,a0
if (rc > 0)
40014d1c: 04a05263 blez a0,40014d60 <rtems_rfs_dir_del_entry+0xb0> <== ALWAYS TAKEN
}
rtems_rfs_buffer_handle_close (fs, &buffer);
rtems_rfs_block_map_close (fs, &map);
return rc;
}
40014d20: 09c12083 lw ra,156(sp)
40014d24: 09812403 lw s0,152(sp)
40014d28: 09412483 lw s1,148(sp)
40014d2c: 09012903 lw s2,144(sp)
40014d30: 08c12983 lw s3,140(sp)
40014d34: 08812a03 lw s4,136(sp)
40014d38: 08412a83 lw s5,132(sp)
40014d3c: 07c12b83 lw s7,124(sp)
40014d40: 07812c03 lw s8,120(sp)
40014d44: 07412c83 lw s9,116(sp)
40014d48: 07012d03 lw s10,112(sp)
40014d4c: 06c12d83 lw s11,108(sp)
40014d50: 000b0513 mv a0,s6
40014d54: 08012b03 lw s6,128(sp)
40014d58: 0a010113 addi sp,sp,160
40014d5c: 00008067 ret
rc = rtems_rfs_block_map_seek (fs, &map, offset, &block);
40014d60: 00010713 mv a4,sp
40014d64: 000b8613 mv a2,s7
40014d68: 00000693 li a3,0
40014d6c: 01010593 addi a1,sp,16
40014d70: 000a8513 mv a0,s5
40014d74: d19fe0ef jal ra,40013a8c <rtems_rfs_block_map_seek>
40014d78: 00050b13 mv s6,a0
if (rc > 0)
40014d7c: 18a04663 bgtz a0,40014f08 <rtems_rfs_dir_del_entry+0x258> <== NEVER TAKEN
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40014d80: 00010cb7 lui s9,0x10
handle->dirty = false;
40014d84: 00010223 sb zero,4(sp)
handle->bnum = 0;
40014d88: 00012423 sw zero,8(sp)
handle->buffer = NULL;
40014d8c: 00012623 sw zero,12(sp)
40014d90: fffc8c93 addi s9,s9,-1 # ffff <bsp_section_bss_size+0xaa4f>
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
40014d94: 00a00d13 li s10,10
if (rc == ENXIO)
40014d98: 00600993 li s3,6
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, true);
40014d9c: 00012603 lw a2,0(sp)
40014da0: 00100693 li a3,1
40014da4: 00410593 addi a1,sp,4
40014da8: 000a8513 mv a0,s5
40014dac: fd0f10ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
40014db0: 00050b13 mv s6,a0
if (rc > 0)
40014db4: 2ca04063 bgtz a0,40015074 <rtems_rfs_dir_del_entry+0x3c4> <== NEVER TAKEN
eoffset = offset % rtems_rfs_fs_block_size (fs);
40014db8: 008aa583 lw a1,8(s5)
if (search)
40014dbc: 0c0b8263 beqz s7,40014e80 <rtems_rfs_dir_del_entry+0x1d0> <== NEVER TAKEN
eoffset = offset % rtems_rfs_fs_block_size (fs);
40014dc0: 02bbf7b3 remu a5,s7,a1
40014dc4: 00078a13 mv s4,a5
entry = rtems_rfs_buffer_data (&buffer) + eoffset;
40014dc8: 00c12703 lw a4,12(sp)
while (eoffset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40014dcc: ff658613 addi a2,a1,-10
entry = rtems_rfs_buffer_data (&buffer) + eoffset;
40014dd0: 01c72d83 lw s11,28(a4)
40014dd4: 00fd8db3 add s11,s11,a5
while (eoffset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40014dd8: 02c7ea63 bltu a5,a2,40014e0c <rtems_rfs_dir_del_entry+0x15c>
40014ddc: 0800006f j 40014e5c <rtems_rfs_dir_del_entry+0x1ac> <== NOT EXECUTED
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
40014de0: 0a9d5663 bge s10,s1,40014e8c <rtems_rfs_dir_del_entry+0x1dc>
40014de4: 01caa783 lw a5,28(s5)
40014de8: 0af4f263 bgeu s1,a5,40014e8c <rtems_rfs_dir_del_entry+0x1dc>
40014dec: 0a040063 beqz s0,40014e8c <rtems_rfs_dir_del_entry+0x1dc> <== NEVER TAKEN
40014df0: 014aa783 lw a5,20(s5)
40014df4: 0887ec63 bltu a5,s0,40014e8c <rtems_rfs_dir_del_entry+0x1dc>
if (ino == rtems_rfs_dir_entry_ino (entry))
40014df8: 128c0663 beq s8,s0,40014f24 <rtems_rfs_dir_del_entry+0x274>
eoffset += elength;
40014dfc: 009a0a33 add s4,s4,s1 <== NOT EXECUTED
if (!search)
40014e00: 200b9463 bnez s7,40015008 <rtems_rfs_dir_del_entry+0x358> <== NOT EXECUTED
entry += elength;
40014e04: 009d8db3 add s11,s11,s1 <== NOT EXECUTED
while (eoffset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40014e08: 04ca7a63 bgeu s4,a2,40014e5c <rtems_rfs_dir_del_entry+0x1ac> <== NOT EXECUTED
entry += elength;
40014e0c: 009dc783 lbu a5,9(s11)
40014e10: 008dc803 lbu a6,8(s11)
eino = rtems_rfs_dir_entry_ino (entry);
40014e14: 000dc403 lbu s0,0(s11)
40014e18: 001dc683 lbu a3,1(s11)
40014e1c: 00879793 slli a5,a5,0x8
40014e20: 0107e7b3 or a5,a5,a6
40014e24: 00879493 slli s1,a5,0x8
40014e28: 003dc503 lbu a0,3(s11)
40014e2c: 002dc703 lbu a4,2(s11)
40014e30: 0087d793 srli a5,a5,0x8
40014e34: 00f4e7b3 or a5,s1,a5
40014e38: 01841413 slli s0,s0,0x18
40014e3c: 01069693 slli a3,a3,0x10
40014e40: 01079493 slli s1,a5,0x10
40014e44: 00d46433 or s0,s0,a3
40014e48: 00a46433 or s0,s0,a0
40014e4c: 00871793 slli a5,a4,0x8
40014e50: 0104d493 srli s1,s1,0x10
40014e54: 00f46433 or s0,s0,a5
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40014e58: f99494e3 bne s1,s9,40014de0 <rtems_rfs_dir_del_entry+0x130>
if (rc == 0)
40014e5c: 040b1263 bnez s6,40014ea0 <rtems_rfs_dir_del_entry+0x1f0> <== NOT EXECUTED
rc = rtems_rfs_block_map_next_block (fs, &map, &block);
40014e60: 00010613 mv a2,sp <== NOT EXECUTED
40014e64: 01010593 addi a1,sp,16 <== NOT EXECUTED
40014e68: 000a8513 mv a0,s5 <== NOT EXECUTED
40014e6c: ce9fe0ef jal ra,40013b54 <rtems_rfs_block_map_next_block> <== NOT EXECUTED
40014e70: 00050b13 mv s6,a0 <== NOT EXECUTED
if (rc == ENXIO)
40014e74: 25350263 beq a0,s3,400150b8 <rtems_rfs_dir_del_entry+0x408> <== NOT EXECUTED
while (rc == 0)
40014e78: f20502e3 beqz a0,40014d9c <rtems_rfs_dir_del_entry+0xec> <== NOT EXECUTED
40014e7c: 0240006f j 40014ea0 <rtems_rfs_dir_del_entry+0x1f0> <== NOT EXECUTED
40014e80: 00000793 li a5,0 <== NOT EXECUTED
eoffset = 0;
40014e84: 00000a13 li s4,0 <== NOT EXECUTED
40014e88: f41ff06f j 40014dc8 <rtems_rfs_dir_del_entry+0x118> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
40014e8c: 40000537 lui a0,0x40000 <== NOT EXECUTED
40014e90: 00000593 li a1,0 <== NOT EXECUTED
40014e94: a78f50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
rc = EIO;
40014e98: 00500b13 li s6,5 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
40014e9c: 04051463 bnez a0,40014ee4 <rtems_rfs_dir_del_entry+0x234> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40014ea0: 00410593 addi a1,sp,4 <== NOT EXECUTED
40014ea4: 000a8513 mv a0,s5 <== NOT EXECUTED
40014ea8: 96df10ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40014eac: 01010593 addi a1,sp,16 <== NOT EXECUTED
40014eb0: 000a8513 mv a0,s5 <== NOT EXECUTED
handle->dirty = false;
40014eb4: 00010223 sb zero,4(sp) <== NOT EXECUTED
handle->bnum = 0;
40014eb8: 00012423 sw zero,8(sp) <== NOT EXECUTED
handle->buffer = NULL;
40014ebc: 00012623 sw zero,12(sp) <== NOT EXECUTED
40014ec0: 88dfe0ef jal ra,4001374c <rtems_rfs_block_map_close> <== NOT EXECUTED
return rc;
40014ec4: e5dff06f j 40014d20 <rtems_rfs_dir_del_entry+0x70> <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: dir=%" PRId32 ", entry=%" PRId32 " offset=%" PRIu32 "\n",
40014ec8: 00892583 lw a1,8(s2) <== NOT EXECUTED
40014ecc: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014ed0: 000b8693 mv a3,s7 <== NOT EXECUTED
40014ed4: 000c0613 mv a2,s8 <== NOT EXECUTED
40014ed8: 33450513 addi a0,a0,820 # 40023334 <IMFS_LIMITS_AND_OPTIONS+0x554><== NOT EXECUTED
40014edc: b1dec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40014ee0: e29ff06f j 40014d08 <rtems_rfs_dir_del_entry+0x58> <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: "
40014ee4: 00012703 lw a4,0(sp) <== NOT EXECUTED
40014ee8: 00892583 lw a1,8(s2) <== NOT EXECUTED
40014eec: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014ef0: 000a0793 mv a5,s4 <== NOT EXECUTED
40014ef4: 00040693 mv a3,s0 <== NOT EXECUTED
40014ef8: 00048613 mv a2,s1 <== NOT EXECUTED
40014efc: 3b450513 addi a0,a0,948 # 400233b4 <IMFS_LIMITS_AND_OPTIONS+0x5d4><== NOT EXECUTED
40014f00: af9ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
while (rc == 0)
40014f04: f9dff06f j 40014ea0 <rtems_rfs_dir_del_entry+0x1f0> <== NOT EXECUTED
if (rc == ENXIO)
40014f08: 00600793 li a5,6 <== NOT EXECUTED
40014f0c: 00f51463 bne a0,a5,40014f14 <rtems_rfs_dir_del_entry+0x264> <== NOT EXECUTED
rc = ENOENT;
40014f10: 00200b13 li s6,2 <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40014f14: 01010593 addi a1,sp,16 <== NOT EXECUTED
40014f18: 000a8513 mv a0,s5 <== NOT EXECUTED
40014f1c: 831fe0ef jal ra,4001374c <rtems_rfs_block_map_close> <== NOT EXECUTED
return rc;
40014f20: e01ff06f j 40014d20 <rtems_rfs_dir_del_entry+0x70> <== NOT EXECUTED
remaining = rtems_rfs_fs_block_size (fs) - (eoffset + elength);
40014f24: 009a09b3 add s3,s4,s1
40014f28: 413589b3 sub s3,a1,s3
memmove (entry, entry + elength, remaining);
40014f2c: 00098613 mv a2,s3
40014f30: 009d85b3 add a1,s11,s1
40014f34: 000d8513 mv a0,s11
40014f38: 2e0090ef jal ra,4001e218 <memmove>
memset (entry + remaining, 0xff, elength);
40014f3c: 00048613 mv a2,s1
40014f40: 0ff00593 li a1,255
40014f44: 013d8533 add a0,s11,s3
40014f48: 3f0090ef jal ra,4001e338 <memset>
elength = rtems_rfs_dir_entry_length (entry);
40014f4c: 009dc783 lbu a5,9(s11)
40014f50: 008dc703 lbu a4,8(s11)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
40014f54: 40000537 lui a0,0x40000
40014f58: 00879793 slli a5,a5,0x8
40014f5c: 00e7e7b3 or a5,a5,a4
40014f60: 00879493 slli s1,a5,0x8
40014f64: 0087d793 srli a5,a5,0x8
40014f68: 00f4e7b3 or a5,s1,a5
40014f6c: 01079493 slli s1,a5,0x10
40014f70: 00000593 li a1,0
40014f74: 0104d493 srli s1,s1,0x10
40014f78: 994f50ef jal ra,4000a10c <rtems_rfs_trace>
40014f7c: 02050c63 beqz a0,40014fb4 <rtems_rfs_dir_del_entry+0x304> <== ALWAYS TAKEN
rtems_rfs_block_map_last (&map) ? "yes" : "no");
40014f80: 02012703 lw a4,32(sp) <== NOT EXECUTED
40014f84: 01812783 lw a5,24(sp) <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: "
40014f88: 00012683 lw a3,0(sp) <== NOT EXECUTED
rtems_rfs_block_map_last (&map) ? "yes" : "no");
40014f8c: 00f76633 or a2,a4,a5 <== NOT EXECUTED
40014f90: 06061263 bnez a2,40014ff4 <rtems_rfs_dir_del_entry+0x344> <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: "
40014f94: 400227b7 lui a5,0x40022 <== NOT EXECUTED
40014f98: 44478793 addi a5,a5,1092 # 40022444 <IMFS_node_control_sym_link+0xee4><== NOT EXECUTED
40014f9c: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014fa0: 000a0713 mv a4,s4 <== NOT EXECUTED
40014fa4: 00048613 mv a2,s1 <== NOT EXECUTED
40014fa8: 00040593 mv a1,s0 <== NOT EXECUTED
40014fac: 40050513 addi a0,a0,1024 # 40023400 <IMFS_LIMITS_AND_OPTIONS+0x620><== NOT EXECUTED
40014fb0: a49ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if ((elength == RTEMS_RFS_DIR_ENTRY_EMPTY) &&
40014fb4: 000107b7 lui a5,0x10
40014fb8: fff78793 addi a5,a5,-1 # ffff <bsp_section_bss_size+0xaa4f>
40014fbc: 04f48a63 beq s1,a5,40015010 <rtems_rfs_dir_del_entry+0x360>
rtems_rfs_buffer_handle_release (fs, handle);
40014fc0: 00410593 addi a1,sp,4
rtems_rfs_buffer_mark_dirty (&buffer);
40014fc4: 00100793 li a5,1
40014fc8: 000a8513 mv a0,s5
40014fcc: 00f10223 sb a5,4(sp)
40014fd0: 845f10ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
rtems_rfs_block_map_close (fs, &map);
40014fd4: 01010593 addi a1,sp,16
40014fd8: 000a8513 mv a0,s5
handle->dirty = false;
40014fdc: 00010223 sb zero,4(sp)
handle->bnum = 0;
40014fe0: 00012423 sw zero,8(sp)
handle->buffer = NULL;
40014fe4: 00012623 sw zero,12(sp)
return 0;
40014fe8: 00000b13 li s6,0
rtems_rfs_block_map_close (fs, &map);
40014fec: f60fe0ef jal ra,4001374c <rtems_rfs_block_map_close>
return 0;
40014ff0: d31ff06f j 40014d20 <rtems_rfs_dir_del_entry+0x70>
rtems_rfs_block_map_last (&map) ? "yes" : "no");
40014ff4: fff78793 addi a5,a5,-1 <== NOT EXECUTED
40014ff8: f8f70ee3 beq a4,a5,40014f94 <rtems_rfs_dir_del_entry+0x2e4> <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: "
40014ffc: 400227b7 lui a5,0x40022 <== NOT EXECUTED
40015000: 44878793 addi a5,a5,1096 # 40022448 <IMFS_node_control_sym_link+0xee8><== NOT EXECUTED
40015004: f99ff06f j 40014f9c <rtems_rfs_dir_del_entry+0x2ec> <== NOT EXECUTED
rc = EIO;
40015008: 00500b13 li s6,5 <== NOT EXECUTED
while (rc == 0)
4001500c: e95ff06f j 40014ea0 <rtems_rfs_dir_del_entry+0x1f0> <== NOT EXECUTED
if ((elength == RTEMS_RFS_DIR_ENTRY_EMPTY) &&
40015010: fa0a18e3 bnez s4,40014fc0 <rtems_rfs_dir_del_entry+0x310> <== ALWAYS TAKEN
(eoffset == 0) && rtems_rfs_block_map_last (&map))
40015014: 02012703 lw a4,32(sp) <== NOT EXECUTED
40015018: 01812783 lw a5,24(sp) <== NOT EXECUTED
4001501c: 00f766b3 or a3,a4,a5 <== NOT EXECUTED
40015020: 08069663 bnez a3,400150ac <rtems_rfs_dir_del_entry+0x3fc> <== NOT EXECUTED
rc = rtems_rfs_block_map_shrink (fs, &map, 1);
40015024: 00100613 li a2,1 <== NOT EXECUTED
40015028: 01010593 addi a1,sp,16 <== NOT EXECUTED
4001502c: 000a8513 mv a0,s5 <== NOT EXECUTED
40015030: f3dfe0ef jal ra,40013f6c <rtems_rfs_block_map_shrink> <== NOT EXECUTED
40015034: 00050413 mv s0,a0 <== NOT EXECUTED
if (rc > 0)
40015038: f8a054e3 blez a0,40014fc0 <rtems_rfs_dir_del_entry+0x310> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
4001503c: 40000537 lui a0,0x40000 <== NOT EXECUTED
40015040: 00000593 li a1,0 <== NOT EXECUTED
40015044: 8c8f50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40015048: f6050ce3 beqz a0,40014fc0 <rtems_rfs_dir_del_entry+0x310> <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: "
4001504c: 00892483 lw s1,8(s2) <== NOT EXECUTED
40015050: 00040513 mv a0,s0 <== NOT EXECUTED
40015054: 711090ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40015058: 00050693 mv a3,a0 <== NOT EXECUTED
4001505c: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015060: 00040613 mv a2,s0 <== NOT EXECUTED
40015064: 00048593 mv a1,s1 <== NOT EXECUTED
40015068: 46050513 addi a0,a0,1120 # 40023460 <IMFS_LIMITS_AND_OPTIONS+0x680><== NOT EXECUTED
4001506c: 98dec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40015070: f51ff06f j 40014fc0 <rtems_rfs_dir_del_entry+0x310> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_DEL_ENTRY))
40015074: 40000537 lui a0,0x40000 <== NOT EXECUTED
40015078: 00000593 li a1,0 <== NOT EXECUTED
4001507c: 890f50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40015080: e20500e3 beqz a0,40014ea0 <rtems_rfs_dir_del_entry+0x1f0> <== NOT EXECUTED
printf ("rtems-rfs: dir-del-entry: "
40015084: 00892403 lw s0,8(s2) <== NOT EXECUTED
40015088: 000b0513 mv a0,s6 <== NOT EXECUTED
4001508c: 6d9090ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40015090: 00050693 mv a3,a0 <== NOT EXECUTED
40015094: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015098: 000b0613 mv a2,s6 <== NOT EXECUTED
4001509c: 00040593 mv a1,s0 <== NOT EXECUTED
400150a0: 36c50513 addi a0,a0,876 # 4002336c <IMFS_LIMITS_AND_OPTIONS+0x58c><== NOT EXECUTED
400150a4: 955ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400150a8: df9ff06f j 40014ea0 <rtems_rfs_dir_del_entry+0x1f0> <== NOT EXECUTED
(eoffset == 0) && rtems_rfs_block_map_last (&map))
400150ac: fff78793 addi a5,a5,-1 <== NOT EXECUTED
400150b0: f0f718e3 bne a4,a5,40014fc0 <rtems_rfs_dir_del_entry+0x310> <== NOT EXECUTED
400150b4: f71ff06f j 40015024 <rtems_rfs_dir_del_entry+0x374> <== NOT EXECUTED
rc = ENOENT;
400150b8: 00200b13 li s6,2 <== NOT EXECUTED
400150bc: de5ff06f j 40014ea0 <rtems_rfs_dir_del_entry+0x1f0> <== NOT EXECUTED
400154bc <rtems_rfs_dir_empty>:
int
rtems_rfs_dir_empty (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* dir)
{
400154bc: f7010113 addi sp,sp,-144
400154c0: 09212023 sw s2,128(sp)
400154c4: 07412c23 sw s4,120(sp)
400154c8: 00058913 mv s2,a1
400154cc: 00050a13 mv s4,a0
rtems_rfs_buffer_handle buffer;
rtems_rfs_block_no block;
bool empty;
int rc;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
400154d0: 00000593 li a1,0
400154d4: 80000537 lui a0,0x80000
{
400154d8: 08112623 sw ra,140(sp)
400154dc: 08812423 sw s0,136(sp)
400154e0: 08912223 sw s1,132(sp)
400154e4: 07312e23 sw s3,124(sp)
400154e8: 07512a23 sw s5,116(sp)
400154ec: 07612823 sw s6,112(sp)
400154f0: 07712623 sw s7,108(sp)
400154f4: 07812423 sw s8,104(sp)
400154f8: 07912223 sw s9,100(sp)
400154fc: 07a12023 sw s10,96(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015500: c0df40ef jal ra,4000a10c <rtems_rfs_trace>
40015504: 1e051663 bnez a0,400156f0 <rtems_rfs_dir_empty+0x234> <== NEVER TAKEN
printf ("rtems-rfs: dir-empty: dir=%" PRId32 "\n", rtems_rfs_inode_ino (dir));
empty = true;
rc = rtems_rfs_block_map_open (fs, dir, &map);
40015508: 01010613 addi a2,sp,16
4001550c: 00090593 mv a1,s2
40015510: 000a0513 mv a0,s4
40015514: 864fe0ef jal ra,40013578 <rtems_rfs_block_map_open>
40015518: 00050d13 mv s10,a0
if (rc > 0)
4001551c: 04a05063 blez a0,4001555c <rtems_rfs_dir_empty+0xa0> <== ALWAYS TAKEN
rc = ENOTEMPTY;
rtems_rfs_buffer_handle_close (fs, &buffer);
rtems_rfs_block_map_close (fs, &map);
return rc;
}
40015520: 08c12083 lw ra,140(sp)
40015524: 08812403 lw s0,136(sp)
40015528: 08412483 lw s1,132(sp)
4001552c: 08012903 lw s2,128(sp)
40015530: 07c12983 lw s3,124(sp)
40015534: 07812a03 lw s4,120(sp)
40015538: 07412a83 lw s5,116(sp)
4001553c: 07012b03 lw s6,112(sp)
40015540: 06c12b83 lw s7,108(sp)
40015544: 06812c03 lw s8,104(sp)
40015548: 06412c83 lw s9,100(sp)
4001554c: 000d0513 mv a0,s10
40015550: 06012d03 lw s10,96(sp)
40015554: 09010113 addi sp,sp,144
40015558: 00008067 ret
rc = rtems_rfs_block_map_seek (fs, &map, 0, &block);
4001555c: 00010713 mv a4,sp
40015560: 00000613 li a2,0
40015564: 00000693 li a3,0
40015568: 01010593 addi a1,sp,16
4001556c: 000a0513 mv a0,s4
40015570: d1cfe0ef jal ra,40013a8c <rtems_rfs_block_map_seek>
40015574: 00050d13 mv s10,a0
if (rc > 0)
40015578: 18a04663 bgtz a0,40015704 <rtems_rfs_dir_empty+0x248> <== NEVER TAKEN
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
4001557c: 00010ab7 lui s5,0x10
handle->dirty = false;
40015580: 00010223 sb zero,4(sp)
handle->bnum = 0;
40015584: 00012423 sw zero,8(sp)
handle->buffer = NULL;
40015588: 00012623 sw zero,12(sp)
4001558c: fffa8a93 addi s5,s5,-1 # ffff <bsp_section_bss_size+0xaa4f>
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
40015590: 00a00b13 li s6,10
if (((elength != (RTEMS_RFS_DIR_ENTRY_SIZE + 1)) ||
40015594: 00b00b93 li s7,11
(entry[RTEMS_RFS_DIR_ENTRY_SIZE] != '.')) &&
40015598: 00c00c13 li s8,12
printf ("rtems-rfs: dir-empty: "
4001559c: 400239b7 lui s3,0x40023
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, true);
400155a0: 00012603 lw a2,0(sp)
400155a4: 00100693 li a3,1
400155a8: 00410593 addi a1,sp,4
400155ac: 000a0513 mv a0,s4
400155b0: fcdf00ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
400155b4: 00050d13 mv s10,a0
if (rc > 0)
400155b8: 0ca04063 bgtz a0,40015678 <rtems_rfs_dir_empty+0x1bc> <== NEVER TAKEN
while (offset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
400155bc: 008a2503 lw a0,8(s4)
entry = rtems_rfs_buffer_data (&buffer);
400155c0: 00c12783 lw a5,12(sp)
while (offset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
400155c4: ff650513 addi a0,a0,-10 # 7ffffff6 <RamEnd+0x3efffff6>
entry = rtems_rfs_buffer_data (&buffer);
400155c8: 01c7a783 lw a5,28(a5)
while (offset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
400155cc: 0e050e63 beqz a0,400156c8 <rtems_rfs_dir_empty+0x20c> <== NEVER TAKEN
offset = 0;
400155d0: 00000c93 li s9,0
((elength != (RTEMS_RFS_DIR_ENTRY_SIZE + 2)) ||
400155d4: 02e00713 li a4,46
400155d8: 0240006f j 400155fc <rtems_rfs_dir_empty+0x140>
(entry[RTEMS_RFS_DIR_ENTRY_SIZE] != '.')) &&
400155dc: 09841a63 bne s0,s8,40015670 <rtems_rfs_dir_empty+0x1b4>
((elength != (RTEMS_RFS_DIR_ENTRY_SIZE + 2)) ||
400155e0: 00a7c683 lbu a3,10(a5)
400155e4: 08e69663 bne a3,a4,40015670 <rtems_rfs_dir_empty+0x1b4>
(entry[RTEMS_RFS_DIR_ENTRY_SIZE] != '.') ||
400155e8: 00b7c683 lbu a3,11(a5)
400155ec: 08e69263 bne a3,a4,40015670 <rtems_rfs_dir_empty+0x1b4>
offset += elength;
400155f0: 008c8cb3 add s9,s9,s0
entry += elength;
400155f4: 008787b3 add a5,a5,s0
while (offset < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
400155f8: 0cacf863 bgeu s9,a0,400156c8 <rtems_rfs_dir_empty+0x20c>
elength = rtems_rfs_dir_entry_length (entry);
400155fc: 0097c603 lbu a2,9(a5)
40015600: 0087c403 lbu s0,8(a5)
eino = rtems_rfs_dir_entry_ino (entry);
40015604: 0007c483 lbu s1,0(a5)
40015608: 0017c583 lbu a1,1(a5)
4001560c: 00861613 slli a2,a2,0x8
40015610: 00866633 or a2,a2,s0
40015614: 00861413 slli s0,a2,0x8
40015618: 0037c803 lbu a6,3(a5)
4001561c: 0027c683 lbu a3,2(a5)
40015620: 00865613 srli a2,a2,0x8
40015624: 01849493 slli s1,s1,0x18
40015628: 01059593 slli a1,a1,0x10
4001562c: 00c46433 or s0,s0,a2
40015630: 00b4e4b3 or s1,s1,a1
40015634: 01041413 slli s0,s0,0x10
40015638: 0104e4b3 or s1,s1,a6
4001563c: 00869693 slli a3,a3,0x8
40015640: 01045413 srli s0,s0,0x10
40015644: 00d4e4b3 or s1,s1,a3
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40015648: 09540063 beq s0,s5,400156c8 <rtems_rfs_dir_empty+0x20c>
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
4001564c: 048b5a63 bge s6,s0,400156a0 <rtems_rfs_dir_empty+0x1e4>
40015650: 01ca2683 lw a3,28(s4)
40015654: 04d47663 bgeu s0,a3,400156a0 <rtems_rfs_dir_empty+0x1e4>
40015658: 04048463 beqz s1,400156a0 <rtems_rfs_dir_empty+0x1e4> <== NEVER TAKEN
4001565c: 014a2683 lw a3,20(s4)
40015660: 0496e063 bltu a3,s1,400156a0 <rtems_rfs_dir_empty+0x1e4>
if (((elength != (RTEMS_RFS_DIR_ENTRY_SIZE + 1)) ||
40015664: f7741ce3 bne s0,s7,400155dc <rtems_rfs_dir_empty+0x120>
40015668: 00a7c683 lbu a3,10(a5)
4001566c: f8e682e3 beq a3,a4,400155f0 <rtems_rfs_dir_empty+0x134>
if ((rc == 0) && !empty)
40015670: 000d1463 bnez s10,40015678 <rtems_rfs_dir_empty+0x1bc> <== NEVER TAKEN
rc = ENOTEMPTY;
40015674: 05a00d13 li s10,90
rtems_rfs_buffer_handle_release (fs, handle);
40015678: 00410593 addi a1,sp,4
4001567c: 000a0513 mv a0,s4
40015680: 994f10ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
rtems_rfs_block_map_close (fs, &map);
40015684: 01010593 addi a1,sp,16
40015688: 000a0513 mv a0,s4
handle->dirty = false;
4001568c: 00010223 sb zero,4(sp)
handle->bnum = 0;
40015690: 00012423 sw zero,8(sp)
handle->buffer = NULL;
40015694: 00012623 sw zero,12(sp)
40015698: 8b4fe0ef jal ra,4001374c <rtems_rfs_block_map_close>
return rc;
4001569c: e85ff06f j 40015520 <rtems_rfs_dir_empty+0x64>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_EMPTY))
400156a0: 00000513 li a0,0 <== NOT EXECUTED
400156a4: 00100593 li a1,1 <== NOT EXECUTED
400156a8: a65f40ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400156ac: 00050e63 beqz a0,400156c8 <rtems_rfs_dir_empty+0x20c> <== NOT EXECUTED
printf ("rtems-rfs: dir-empty: "
400156b0: 00892583 lw a1,8(s2) <== NOT EXECUTED
400156b4: 000c8713 mv a4,s9 <== NOT EXECUTED
400156b8: 00048693 mv a3,s1 <== NOT EXECUTED
400156bc: 00040613 mv a2,s0 <== NOT EXECUTED
400156c0: 5a898513 addi a0,s3,1448 # 400235a8 <IMFS_LIMITS_AND_OPTIONS+0x7c8><== NOT EXECUTED
400156c4: b34ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rc = rtems_rfs_block_map_next_block (fs, &map, &block);
400156c8: 00010613 mv a2,sp
400156cc: 01010593 addi a1,sp,16
400156d0: 000a0513 mv a0,s4
400156d4: c80fe0ef jal ra,40013b54 <rtems_rfs_block_map_next_block>
if (rc > 0)
400156d8: eca054e3 blez a0,400155a0 <rtems_rfs_dir_empty+0xe4> <== NEVER TAKEN
rc = 0;
400156dc: ffa50793 addi a5,a0,-6
400156e0: 00f037b3 snez a5,a5
400156e4: 40f007b3 neg a5,a5
400156e8: 00f57d33 and s10,a0,a5
400156ec: f8dff06f j 40015678 <rtems_rfs_dir_empty+0x1bc>
printf ("rtems-rfs: dir-empty: dir=%" PRId32 "\n", rtems_rfs_inode_ino (dir));
400156f0: 00892583 lw a1,8(s2) <== NOT EXECUTED
400156f4: 40023537 lui a0,0x40023 <== NOT EXECUTED
400156f8: 58850513 addi a0,a0,1416 # 40023588 <IMFS_LIMITS_AND_OPTIONS+0x7a8><== NOT EXECUTED
400156fc: afcec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40015700: e09ff06f j 40015508 <rtems_rfs_dir_empty+0x4c> <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40015704: 01010593 addi a1,sp,16 <== NOT EXECUTED
40015708: 000a0513 mv a0,s4 <== NOT EXECUTED
4001570c: 840fe0ef jal ra,4001374c <rtems_rfs_block_map_close> <== NOT EXECUTED
return rc;
40015710: e11ff06f j 40015520 <rtems_rfs_dir_empty+0x64> <== NOT EXECUTED
40014380 <rtems_rfs_dir_lookup_ino>:
rtems_rfs_inode_handle* inode,
const char* name,
int length,
rtems_rfs_ino* ino,
uint32_t* offset)
{
40014380: f5010113 addi sp,sp,-176
40014384: 09712623 sw s7,140(sp)
40014388: 07b12e23 sw s11,124(sp)
4001438c: 00058b93 mv s7,a1
40014390: 00050d93 mv s11,a0
rtems_rfs_block_map map;
rtems_rfs_buffer_handle entries;
int rc;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
40014394: 00000593 li a1,0
40014398: 04000537 lui a0,0x4000
{
4001439c: 0a812423 sw s0,168(sp)
400143a0: 09512a23 sw s5,148(sp)
400143a4: 09612823 sw s6,144(sp)
400143a8: 0a112623 sw ra,172(sp)
400143ac: 0a912223 sw s1,164(sp)
400143b0: 0b212023 sw s2,160(sp)
400143b4: 09312e23 sw s3,156(sp)
400143b8: 09412c23 sw s4,152(sp)
400143bc: 09812423 sw s8,136(sp)
400143c0: 09912223 sw s9,132(sp)
400143c4: 09a12023 sw s10,128(sp)
400143c8: 00060b13 mv s6,a2
400143cc: 00068a93 mv s5,a3
400143d0: 00070413 mv s0,a4
400143d4: 00f12623 sw a5,12(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
400143d8: d35f50ef jal ra,4000a10c <rtems_rfs_trace>
400143dc: 34051263 bnez a0,40014720 <rtems_rfs_dir_lookup_ino+0x3a0> <== NEVER TAKEN
printf ("%c", name[c]);
printf (", len=%d\n", length);
}
*ino = RTEMS_RFS_EMPTY_INO;
*offset = 0;
400143e0: 00c12783 lw a5,12(sp)
*ino = RTEMS_RFS_EMPTY_INO;
400143e4: 00042023 sw zero,0(s0)
rc = rtems_rfs_block_map_open (fs, inode, &map);
400143e8: 02010613 addi a2,sp,32
*offset = 0;
400143ec: 0007a023 sw zero,0(a5)
rc = rtems_rfs_block_map_open (fs, inode, &map);
400143f0: 000b8593 mv a1,s7
400143f4: 000d8513 mv a0,s11
400143f8: 980ff0ef jal ra,40013578 <rtems_rfs_block_map_open>
400143fc: 00050a13 mv s4,a0
if (rc > 0)
40014400: 2ea04463 bgtz a0,400146e8 <rtems_rfs_dir_lookup_ino+0x368> <== NEVER TAKEN
uint32_t hash;
/*
* Calculate the hash of the look up string.
*/
hash = rtems_rfs_dir_hash (name, length);
40014404: 000a8593 mv a1,s5
40014408: 000b0513 mv a0,s6
handle->dirty = false;
4001440c: 00010a23 sb zero,20(sp)
handle->bnum = 0;
40014410: 00012c23 sw zero,24(sp)
handle->buffer = NULL;
40014414: 00012e23 sw zero,28(sp)
40014418: 2fc010ef jal ra,40015714 <rtems_rfs_dir_hash>
4001441c: 00050993 mv s3,a0
/*
* 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);
40014420: 01010713 addi a4,sp,16
40014424: 00000613 li a2,0
40014428: 00000693 li a3,0
4001442c: 02010593 addi a1,sp,32
40014430: 000d8513 mv a0,s11
40014434: e58ff0ef jal ra,40013a8c <rtems_rfs_block_map_seek>
40014438: 00050a13 mv s4,a0
if (rc > 0)
4001443c: 32a04263 bgtz a0,40014760 <rtems_rfs_dir_lookup_ino+0x3e0> <== NEVER TAKEN
ehash = rtems_rfs_dir_entry_hash (entry);
elength = rtems_rfs_dir_entry_length (entry);
*ino = rtems_rfs_dir_entry_ino (entry);
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40014440: 00010937 lui s2,0x10
while (map.bpos.boff < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40014444: 00a00493 li s1,10
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40014448: fff90913 addi s2,s2,-1 # ffff <bsp_section_bss_size+0xaa4f>
}
if (ehash == hash)
{
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO_CHECK))
printf ("rtems-rfs: dir-lookup-ino: "
4001444c: 40023cb7 lui s9,0x40023
while ((rc == 0) && block)
40014450: 180a1663 bnez s4,400145dc <rtems_rfs_dir_lookup_ino+0x25c> <== NEVER TAKEN
40014454: 01012783 lw a5,16(sp)
40014458: 36078063 beqz a5,400147b8 <rtems_rfs_dir_lookup_ino+0x438> <== NEVER TAKEN
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
4001445c: 04000537 lui a0,0x4000
40014460: 00000593 li a1,0
40014464: ca9f50ef jal ra,4000a10c <rtems_rfs_trace>
40014468: 22051e63 bnez a0,400146a4 <rtems_rfs_dir_lookup_ino+0x324> <== NEVER TAKEN
rc = rtems_rfs_buffer_handle_request (fs, &entries, block, true);
4001446c: 01012603 lw a2,16(sp)
40014470: 00100693 li a3,1
40014474: 01410593 addi a1,sp,20
40014478: 000d8513 mv a0,s11
4001447c: 900f20ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
40014480: 00050a13 mv s4,a0
if (rc > 0)
40014484: 36a04863 bgtz a0,400147f4 <rtems_rfs_dir_lookup_ino+0x474> <== NEVER TAKEN
entry = rtems_rfs_buffer_data (&entries);
40014488: 01c12703 lw a4,28(sp)
while (map.bpos.boff < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
4001448c: 008da783 lw a5,8(s11)
map.bpos.boff = 0;
40014490: 02012a23 sw zero,52(sp)
entry = rtems_rfs_buffer_data (&entries);
40014494: 01c72c03 lw s8,28(a4)
while (map.bpos.boff < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
40014498: 02979263 bne a5,s1,400144bc <rtems_rfs_dir_lookup_ino+0x13c>
4001449c: 2200006f j 400146bc <rtems_rfs_dir_lookup_ino+0x33c> <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
return 0;
}
}
map.bpos.boff += elength;
400144a0: 03412683 lw a3,52(sp)
while (map.bpos.boff < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
400144a4: 008da783 lw a5,8(s11)
entry += elength;
400144a8: 01ac0c33 add s8,s8,s10
map.bpos.boff += elength;
400144ac: 00dd0333 add t1,s10,a3
400144b0: 02612a23 sw t1,52(sp)
while (map.bpos.boff < (rtems_rfs_fs_block_size (fs) - RTEMS_RFS_DIR_ENTRY_SIZE))
400144b4: ff678793 addi a5,a5,-10
400144b8: 20f37263 bgeu t1,a5,400146bc <rtems_rfs_dir_lookup_ino+0x33c>
if (ehash == hash)
400144bc: 009c4683 lbu a3,9(s8)
*ino = rtems_rfs_dir_entry_ino (entry);
400144c0: 000c4783 lbu a5,0(s8)
400144c4: 001c4303 lbu t1,1(s8)
400144c8: 008c4f03 lbu t5,8(s8)
ehash = rtems_rfs_dir_entry_hash (entry);
400144cc: 004c4703 lbu a4,4(s8)
400144d0: 005c4e83 lbu t4,5(s8)
*ino = rtems_rfs_dir_entry_ino (entry);
400144d4: 003c4e03 lbu t3,3(s8)
400144d8: 002c4503 lbu a0,2(s8)
400144dc: 00869693 slli a3,a3,0x8
400144e0: 01031313 slli t1,t1,0x10
400144e4: 01e6e6b3 or a3,a3,t5
400144e8: 01879793 slli a5,a5,0x18
ehash = rtems_rfs_dir_entry_hash (entry);
400144ec: 007c4583 lbu a1,7(s8)
400144f0: 006c4603 lbu a2,6(s8)
*ino = rtems_rfs_dir_entry_ino (entry);
400144f4: 0067e7b3 or a5,a5,t1
400144f8: 00869313 slli t1,a3,0x8
400144fc: 0086d693 srli a3,a3,0x8
40014500: 00d366b3 or a3,t1,a3
ehash = rtems_rfs_dir_entry_hash (entry);
40014504: 01871713 slli a4,a4,0x18
40014508: 010e9e93 slli t4,t4,0x10
*ino = rtems_rfs_dir_entry_ino (entry);
4001450c: 01c7e7b3 or a5,a5,t3
40014510: 00851513 slli a0,a0,0x8
40014514: 01069d13 slli s10,a3,0x10
40014518: 00a7e7b3 or a5,a5,a0
ehash = rtems_rfs_dir_entry_hash (entry);
4001451c: 01d76733 or a4,a4,t4
40014520: 00b76733 or a4,a4,a1
40014524: 00861693 slli a3,a2,0x8
*ino = rtems_rfs_dir_entry_ino (entry);
40014528: 00f42023 sw a5,0(s0)
4001452c: 010d5d13 srli s10,s10,0x10
ehash = rtems_rfs_dir_entry_hash (entry);
40014530: 00d76733 or a4,a4,a3
if (elength == RTEMS_RFS_DIR_ENTRY_EMPTY)
40014534: 192d0463 beq s10,s2,400146bc <rtems_rfs_dir_lookup_ino+0x33c>
if (rtems_rfs_dir_entry_valid (fs, elength, *ino))
40014538: 09a4d863 bge s1,s10,400145c8 <rtems_rfs_dir_lookup_ino+0x248>
4001453c: 01cda683 lw a3,28(s11)
40014540: 08dd7463 bgeu s10,a3,400145c8 <rtems_rfs_dir_lookup_ino+0x248>
40014544: 08078263 beqz a5,400145c8 <rtems_rfs_dir_lookup_ino+0x248> <== NEVER TAKEN
40014548: 014da683 lw a3,20(s11)
4001454c: 06f6ee63 bltu a3,a5,400145c8 <rtems_rfs_dir_lookup_ino+0x248>
if (ehash == hash)
40014550: f4e998e3 bne s3,a4,400144a0 <rtems_rfs_dir_lookup_ino+0x120>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO_CHECK))
40014554: 08000537 lui a0,0x8000
40014558: 00000593 li a1,0
4001455c: bb1f50ef jal ra,4000a10c <rtems_rfs_trace>
40014560: 10051063 bnez a0,40014660 <rtems_rfs_dir_lookup_ino+0x2e0> <== NEVER TAKEN
if (memcmp (entry + RTEMS_RFS_DIR_ENTRY_SIZE, name, length) == 0)
40014564: 00ac0513 addi a0,s8,10
40014568: 000a8613 mv a2,s5
4001456c: 000b0593 mv a1,s6
40014570: 309090ef jal ra,4001e078 <memcmp>
40014574: f20516e3 bnez a0,400144a0 <rtems_rfs_dir_lookup_ino+0x120> <== NEVER TAKEN
*offset = rtems_rfs_block_map_pos (fs, &map);
40014578: 03010593 addi a1,sp,48
4001457c: 000d8513 mv a0,s11
40014580: f9dfe0ef jal ra,4001351c <rtems_rfs_block_get_pos>
40014584: 00c12783 lw a5,12(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO_FOUND))
40014588: 00000593 li a1,0
*offset = rtems_rfs_block_map_pos (fs, &map);
4001458c: 00a7a023 sw a0,0(a5)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO_FOUND))
40014590: 10000537 lui a0,0x10000
40014594: b79f50ef jal ra,4000a10c <rtems_rfs_trace>
40014598: 2a051e63 bnez a0,40014854 <rtems_rfs_dir_lookup_ino+0x4d4> <== NEVER TAKEN
rtems_rfs_buffer_handle_release (fs, handle);
4001459c: 01410593 addi a1,sp,20
400145a0: 000d8513 mv a0,s11
400145a4: a70f20ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
rtems_rfs_block_map_close (fs, &map);
400145a8: 02010593 addi a1,sp,32
400145ac: 000d8513 mv a0,s11
handle->dirty = false;
400145b0: 00010a23 sb zero,20(sp)
handle->bnum = 0;
400145b4: 00012c23 sw zero,24(sp)
handle->buffer = NULL;
400145b8: 00012e23 sw zero,28(sp)
return 0;
400145bc: 00000a13 li s4,0
rtems_rfs_block_map_close (fs, &map);
400145c0: 98cff0ef jal ra,4001374c <rtems_rfs_block_map_close>
return 0;
400145c4: 03c0006f j 40014600 <rtems_rfs_dir_lookup_ino+0x280>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
400145c8: 04000537 lui a0,0x4000 <== NOT EXECUTED
400145cc: 00000593 li a1,0 <== NOT EXECUTED
400145d0: b3df50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400145d4: 06051663 bnez a0,40014640 <rtems_rfs_dir_lookup_ino+0x2c0> <== NOT EXECUTED
rc = EIO;
400145d8: 00500a13 li s4,5 <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
400145dc: 01410593 addi a1,sp,20
400145e0: 000d8513 mv a0,s11
400145e4: a30f20ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
rtems_rfs_inode_ino (inode), rc, strerror (rc));
}
}
rtems_rfs_buffer_handle_close (fs, &entries);
rtems_rfs_block_map_close (fs, &map);
400145e8: 02010593 addi a1,sp,32
400145ec: 000d8513 mv a0,s11
handle->dirty = false;
400145f0: 00010a23 sb zero,20(sp)
handle->bnum = 0;
400145f4: 00012c23 sw zero,24(sp)
handle->buffer = NULL;
400145f8: 00012e23 sw zero,28(sp)
400145fc: 950ff0ef jal ra,4001374c <rtems_rfs_block_map_close>
return rc;
}
40014600: 0ac12083 lw ra,172(sp)
40014604: 0a812403 lw s0,168(sp)
40014608: 0a412483 lw s1,164(sp)
4001460c: 0a012903 lw s2,160(sp)
40014610: 09c12983 lw s3,156(sp)
40014614: 09412a83 lw s5,148(sp)
40014618: 09012b03 lw s6,144(sp)
4001461c: 08c12b83 lw s7,140(sp)
40014620: 08812c03 lw s8,136(sp)
40014624: 08412c83 lw s9,132(sp)
40014628: 08012d03 lw s10,128(sp)
4001462c: 07c12d83 lw s11,124(sp)
40014630: 000a0513 mv a0,s4
40014634: 09812a03 lw s4,152(sp)
40014638: 0b010113 addi sp,sp,176
4001463c: 00008067 ret
printf ("rtems-rfs: dir-lookup-ino: "
40014640: 03412703 lw a4,52(sp) <== NOT EXECUTED
40014644: 00042683 lw a3,0(s0) <== NOT EXECUTED
40014648: 008ba583 lw a1,8(s7) <== NOT EXECUTED
4001464c: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014650: 000d0613 mv a2,s10 <== NOT EXECUTED
40014654: 07850513 addi a0,a0,120 # 40023078 <IMFS_LIMITS_AND_OPTIONS+0x298><== NOT EXECUTED
40014658: ba0ed0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
4001465c: f7dff06f j 400145d8 <rtems_rfs_dir_lookup_ino+0x258> <== NOT EXECUTED
elength, rtems_rfs_dir_entry_ino (entry));
40014660: 000c4783 lbu a5,0(s8) <== NOT EXECUTED
40014664: 001c4503 lbu a0,1(s8) <== NOT EXECUTED
40014668: 003c4e03 lbu t3,3(s8) <== NOT EXECUTED
4001466c: 002c4703 lbu a4,2(s8) <== NOT EXECUTED
40014670: 01051513 slli a0,a0,0x10 <== NOT EXECUTED
40014674: 01879793 slli a5,a5,0x18 <== NOT EXECUTED
40014678: 00a7e7b3 or a5,a5,a0 <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: "
4001467c: 03412683 lw a3,52(sp) <== NOT EXECUTED
40014680: 03012603 lw a2,48(sp) <== NOT EXECUTED
40014684: 008ba583 lw a1,8(s7) <== NOT EXECUTED
40014688: 01c7e7b3 or a5,a5,t3 <== NOT EXECUTED
elength, rtems_rfs_dir_entry_ino (entry));
4001468c: 00871713 slli a4,a4,0x8 <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: "
40014690: 00e7e7b3 or a5,a5,a4 <== NOT EXECUTED
40014694: 0c0c8513 addi a0,s9,192 # 400230c0 <IMFS_LIMITS_AND_OPTIONS+0x2e0><== NOT EXECUTED
40014698: 000d0713 mv a4,s10 <== NOT EXECUTED
4001469c: b5ced0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400146a0: ec5ff06f j 40014564 <rtems_rfs_dir_lookup_ino+0x1e4> <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: block read, ino=%" PRIu32 " bno=%" PRId32 "\n",
400146a4: 03012603 lw a2,48(sp) <== NOT EXECUTED
400146a8: 008ba583 lw a1,8(s7) <== NOT EXECUTED
400146ac: 400237b7 lui a5,0x40023 <== NOT EXECUTED
400146b0: 00078513 mv a0,a5 <== NOT EXECUTED
400146b4: b44ed0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400146b8: db5ff06f j 4001446c <rtems_rfs_dir_lookup_ino+0xec> <== NOT EXECUTED
if (rc == 0)
400146bc: f20a10e3 bnez s4,400145dc <rtems_rfs_dir_lookup_ino+0x25c> <== NEVER TAKEN
rc = rtems_rfs_block_map_next_block (fs, &map, &block);
400146c0: 01010613 addi a2,sp,16
400146c4: 02010593 addi a1,sp,32
400146c8: 000d8513 mv a0,s11
400146cc: c88ff0ef jal ra,40013b54 <rtems_rfs_block_map_next_block>
400146d0: 00050a13 mv s4,a0
if ((rc > 0) && (rc != ENXIO))
400146d4: d6a05ee3 blez a0,40014450 <rtems_rfs_dir_lookup_ino+0xd0> <== NEVER TAKEN
400146d8: 00600793 li a5,6
400146dc: 0af51263 bne a0,a5,40014780 <rtems_rfs_dir_lookup_ino+0x400>
rc = ENOENT;
400146e0: 00200a13 li s4,2
400146e4: ef9ff06f j 400145dc <rtems_rfs_dir_lookup_ino+0x25c>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
400146e8: 04000537 lui a0,0x4000 <== NOT EXECUTED
400146ec: 00000593 li a1,0 <== NOT EXECUTED
400146f0: a1df50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400146f4: f00506e3 beqz a0,40014600 <rtems_rfs_dir_lookup_ino+0x280> <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: map open failed for ino %" PRIu32 ": %d: %s",
400146f8: 008ba403 lw s0,8(s7) <== NOT EXECUTED
400146fc: 000a0513 mv a0,s4 <== NOT EXECUTED
40014700: 0650a0ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40014704: 00050693 mv a3,a0 <== NOT EXECUTED
40014708: 40023537 lui a0,0x40023 <== NOT EXECUTED
4001470c: 000a0613 mv a2,s4 <== NOT EXECUTED
40014710: 00040593 mv a1,s0 <== NOT EXECUTED
40014714: f8450513 addi a0,a0,-124 # 40022f84 <IMFS_LIMITS_AND_OPTIONS+0x1a4><== NOT EXECUTED
40014718: ae0ed0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
4001471c: ee5ff06f j 40014600 <rtems_rfs_dir_lookup_ino+0x280> <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: lookup ino: root=%" PRId32 ", path=",
40014720: 008ba583 lw a1,8(s7) <== NOT EXECUTED
40014724: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014728: f4050513 addi a0,a0,-192 # 40022f40 <IMFS_LIMITS_AND_OPTIONS+0x160><== NOT EXECUTED
4001472c: acced0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
for (c = 0; c < length; c++)
40014730: 01505e63 blez s5,4001474c <rtems_rfs_dir_lookup_ino+0x3cc> <== NOT EXECUTED
40014734: 000b0493 mv s1,s6 <== NOT EXECUTED
40014738: 016a8933 add s2,s5,s6 <== NOT EXECUTED
printf ("%c", name[c]);
4001473c: 0004c503 lbu a0,0(s1) <== NOT EXECUTED
for (c = 0; c < length; c++)
40014740: 00148493 addi s1,s1,1 <== NOT EXECUTED
printf ("%c", name[c]);
40014744: 4d1090ef jal ra,4001e414 <putchar> <== NOT EXECUTED
for (c = 0; c < length; c++)
40014748: fe991ae3 bne s2,s1,4001473c <rtems_rfs_dir_lookup_ino+0x3bc> <== NOT EXECUTED
printf (", len=%d\n", length);
4001474c: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014750: 000a8593 mv a1,s5 <== NOT EXECUTED
40014754: f7850513 addi a0,a0,-136 # 40022f78 <IMFS_LIMITS_AND_OPTIONS+0x198><== NOT EXECUTED
40014758: aa0ed0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
4001475c: c85ff06f j 400143e0 <rtems_rfs_dir_lookup_ino+0x60> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
40014760: 04000537 lui a0,0x4000 <== NOT EXECUTED
40014764: 00000593 li a1,0 <== NOT EXECUTED
40014768: 9a5f50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
4001476c: 0c051463 bnez a0,40014834 <rtems_rfs_dir_lookup_ino+0x4b4> <== NOT EXECUTED
if (rc == ENXIO)
40014770: 00600793 li a5,6 <== NOT EXECUTED
40014774: e6fa14e3 bne s4,a5,400145dc <rtems_rfs_dir_lookup_ino+0x25c> <== NOT EXECUTED
rc = ENOENT;
40014778: 00200a13 li s4,2 <== NOT EXECUTED
4001477c: e61ff06f j 400145dc <rtems_rfs_dir_lookup_ino+0x25c> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
40014780: 04000537 lui a0,0x4000 <== NOT EXECUTED
40014784: 00000593 li a1,0 <== NOT EXECUTED
40014788: 985f50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
4001478c: cc0502e3 beqz a0,40014450 <rtems_rfs_dir_lookup_ino+0xd0> <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: "
40014790: 008bad03 lw s10,8(s7) <== NOT EXECUTED
40014794: 000a0513 mv a0,s4 <== NOT EXECUTED
40014798: 7cc0a0ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
4001479c: 400237b7 lui a5,0x40023 <== NOT EXECUTED
400147a0: 00050693 mv a3,a0 <== NOT EXECUTED
400147a4: 000a0613 mv a2,s4 <== NOT EXECUTED
400147a8: 000d0593 mv a1,s10 <== NOT EXECUTED
400147ac: 16078513 addi a0,a5,352 # 40023160 <IMFS_LIMITS_AND_OPTIONS+0x380><== NOT EXECUTED
400147b0: a48ed0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (rc == ENXIO)
400147b4: c9dff06f j 40014450 <rtems_rfs_dir_lookup_ino+0xd0> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
400147b8: 04000537 lui a0,0x4000 <== NOT EXECUTED
400147bc: 00000593 li a1,0 <== NOT EXECUTED
400147c0: 94df50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400147c4: e0050ae3 beqz a0,400145d8 <rtems_rfs_dir_lookup_ino+0x258> <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: block is 0 in ino %" PRIu32 ": %d: %s\n",
400147c8: 008ba403 lw s0,8(s7) <== NOT EXECUTED
400147cc: 00500513 li a0,5 <== NOT EXECUTED
400147d0: 7940a0ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400147d4: 00050693 mv a3,a0 <== NOT EXECUTED
400147d8: 40023537 lui a0,0x40023 <== NOT EXECUTED
400147dc: 00500613 li a2,5 <== NOT EXECUTED
400147e0: 00040593 mv a1,s0 <== NOT EXECUTED
400147e4: 1ac50513 addi a0,a0,428 # 400231ac <IMFS_LIMITS_AND_OPTIONS+0x3cc><== NOT EXECUTED
400147e8: a10ed0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rc = EIO;
400147ec: 00500a13 li s4,5 <== NOT EXECUTED
400147f0: dedff06f j 400145dc <rtems_rfs_dir_lookup_ino+0x25c> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_LOOKUP_INO))
400147f4: 04000537 lui a0,0x4000 <== NOT EXECUTED
400147f8: 00000593 li a1,0 <== NOT EXECUTED
400147fc: 911f50ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40014800: dc050ee3 beqz a0,400145dc <rtems_rfs_dir_lookup_ino+0x25c> <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: block read, ino=%" PRIu32 " block=%" PRId32 ": %d: %s\n",
40014804: 008ba403 lw s0,8(s7) <== NOT EXECUTED
40014808: 01012483 lw s1,16(sp) <== NOT EXECUTED
4001480c: 000a0513 mv a0,s4 <== NOT EXECUTED
40014810: 7540a0ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40014814: 00050713 mv a4,a0 <== NOT EXECUTED
40014818: 40023537 lui a0,0x40023 <== NOT EXECUTED
4001481c: 000a0693 mv a3,s4 <== NOT EXECUTED
40014820: 00048613 mv a2,s1 <== NOT EXECUTED
40014824: 00040593 mv a1,s0 <== NOT EXECUTED
40014828: 03850513 addi a0,a0,56 # 40023038 <IMFS_LIMITS_AND_OPTIONS+0x258><== NOT EXECUTED
4001482c: 9cced0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40014830: dadff06f j 400145dc <rtems_rfs_dir_lookup_ino+0x25c> <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: block map find failed: %d: %s\n",
40014834: 000a0513 mv a0,s4 <== NOT EXECUTED
40014838: 72c0a0ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
4001483c: 00050613 mv a2,a0 <== NOT EXECUTED
40014840: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014844: 000a0593 mv a1,s4 <== NOT EXECUTED
40014848: fc450513 addi a0,a0,-60 # 40022fc4 <IMFS_LIMITS_AND_OPTIONS+0x1e4><== NOT EXECUTED
4001484c: 9aced0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40014850: f21ff06f j 40014770 <rtems_rfs_dir_lookup_ino+0x3f0> <== NOT EXECUTED
printf ("rtems-rfs: dir-lookup-ino: "
40014854: 00c12783 lw a5,12(sp) <== NOT EXECUTED
40014858: 00042603 lw a2,0(s0) <== NOT EXECUTED
4001485c: 008ba583 lw a1,8(s7) <== NOT EXECUTED
40014860: 0007a683 lw a3,0(a5) <== NOT EXECUTED
40014864: 40023537 lui a0,0x40023 <== NOT EXECUTED
40014868: 11c50513 addi a0,a0,284 # 4002311c <IMFS_LIMITS_AND_OPTIONS+0x33c><== NOT EXECUTED
4001486c: 98ced0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40014870: d2dff06f j 4001459c <rtems_rfs_dir_lookup_ino+0x21c> <== NOT EXECUTED
400150c0 <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)
{
400150c0: f5010113 addi sp,sp,-176
400150c4: 0a912223 sw s1,164(sp)
400150c8: 09512a23 sw s5,148(sp)
400150cc: 00050493 mv s1,a0
400150d0: 00058a93 mv s5,a1
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))
400150d4: 80000537 lui a0,0x80000
400150d8: 00000593 li a1,0
{
400150dc: 0b212023 sw s2,160(sp)
400150e0: 09312e23 sw s3,156(sp)
400150e4: 09412c23 sw s4,152(sp)
400150e8: 09a12023 sw s10,128(sp)
400150ec: 0a112623 sw ra,172(sp)
400150f0: 0a812423 sw s0,168(sp)
400150f4: 09612823 sw s6,144(sp)
400150f8: 09712623 sw s7,140(sp)
400150fc: 09812423 sw s8,136(sp)
40015100: 09912223 sw s9,132(sp)
40015104: 07b12e23 sw s11,124(sp)
40015108: 00060993 mv s3,a2
4001510c: 00068a13 mv s4,a3
40015110: 00070d13 mv s10,a4
40015114: 00078913 mv s2,a5
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015118: ff5f40ef jal ra,4000a10c <rtems_rfs_trace>
4001511c: 1e051c63 bnez a0,40015314 <rtems_rfs_dir_read+0x254> <== NEVER TAKEN
printf ("rtems-rfs: dir-read: dir=%" PRId32 " offset=%" PRId64 "\n",
rtems_rfs_inode_ino (dir), offset);
*length = 0;
40015120: 00092023 sw zero,0(s2)
rc = rtems_rfs_block_map_open (fs, dir, &map);
40015124: 02010613 addi a2,sp,32
40015128: 000a8593 mv a1,s5
4001512c: 00048513 mv a0,s1
40015130: c48fe0ef jal ra,40013578 <rtems_rfs_block_map_open>
40015134: 00050413 mv s0,a0
if (rc > 0)
40015138: 14a04663 bgtz a0,40015284 <rtems_rfs_dir_read+0x1c4> <== NEVER TAKEN
return rc;
if (((rtems_rfs_fs_block_size (fs) -
4001513c: 0084a403 lw s0,8(s1)
(offset % rtems_rfs_fs_block_size (fs))) <= RTEMS_RFS_DIR_ENTRY_SIZE))
40015140: 00000693 li a3,0
40015144: 00098513 mv a0,s3
40015148: 00040613 mv a2,s0
4001514c: 000a0593 mv a1,s4
40015150: 185070ef jal ra,4001cad4 <__moddi3>
if (((rtems_rfs_fs_block_size (fs) -
40015154: 40a40533 sub a0,s0,a0
40015158: 00a437b3 sltu a5,s0,a0
4001515c: 40b005b3 neg a1,a1
40015160: 40f585b3 sub a1,a1,a5
40015164: 16b05063 blez a1,400152c4 <rtems_rfs_dir_read+0x204> <== ALWAYS TAKEN
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);
40015168: 01010713 addi a4,sp,16
4001516c: 00098613 mv a2,s3
40015170: 000a0693 mv a3,s4
40015174: 02010593 addi a1,sp,32
40015178: 00048513 mv a0,s1
4001517c: 911fe0ef jal ra,40013a8c <rtems_rfs_block_map_seek>
40015180: 00050413 mv s0,a0
if (rc > 0)
40015184: 16a04c63 bgtz a0,400152fc <rtems_rfs_dir_read+0x23c> <== NEVER TAKEN
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)
40015188: 00010c37 lui s8,0x10
handle->dirty = false;
4001518c: 00010a23 sb zero,20(sp)
handle->bnum = 0;
40015190: 00012c23 sw zero,24(sp)
handle->buffer = NULL;
40015194: 00012e23 sw zero,28(sp)
40015198: fffc0c13 addi s8,s8,-1 # ffff <bsp_section_bss_size+0xaa4f>
break;
}
*length += rtems_rfs_fs_block_size (fs) - map.bpos.boff;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
4001519c: 80000b37 lui s6,0x80000
400151a0: 00000b93 li s7,0
printf ("rtems-rfs: dir-read: next block: off:%" PRId64 " length:%zd\n",
400151a4: 40023db7 lui s11,0x40023
offset, *length);
rc = rtems_rfs_block_map_next_block (fs, &map, &block);
if (rc == ENXIO)
400151a8: 00600c93 li s9,6
400151ac: 0200006f j 400151cc <rtems_rfs_dir_read+0x10c>
rc = rtems_rfs_block_map_next_block (fs, &map, &block);
400151b0: 01010613 addi a2,sp,16
400151b4: 02010593 addi a1,sp,32
400151b8: 00048513 mv a0,s1
400151bc: 999fe0ef jal ra,40013b54 <rtems_rfs_block_map_next_block>
400151c0: 00050413 mv s0,a0
if (rc == ENXIO)
400151c4: 09950c63 beq a0,s9,4001525c <rtems_rfs_dir_read+0x19c>
while (rc == 0)
400151c8: 08051c63 bnez a0,40015260 <rtems_rfs_dir_read+0x1a0> <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, true);
400151cc: 01012603 lw a2,16(sp)
400151d0: 01410593 addi a1,sp,20
400151d4: 00100693 li a3,1
400151d8: 00048513 mv a0,s1
400151dc: ba0f10ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
400151e0: 00050413 mv s0,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
400151e4: 000b8593 mv a1,s7
400151e8: 000b0513 mv a0,s6
if (rc > 0)
400151ec: 06804a63 bgtz s0,40015260 <rtems_rfs_dir_read+0x1a0> <== NEVER TAKEN
entry = rtems_rfs_buffer_data (&buffer);
400151f0: 01c12783 lw a5,28(sp)
entry += map.bpos.boff;
400151f4: 03412683 lw a3,52(sp)
entry = rtems_rfs_buffer_data (&buffer);
400151f8: 01c7a883 lw a7,28(a5)
entry += map.bpos.boff;
400151fc: 00d888b3 add a7,a7,a3
elength = rtems_rfs_dir_entry_length (entry);
40015200: 0098c783 lbu a5,9(a7)
40015204: 0088c703 lbu a4,8(a7)
40015208: 00879793 slli a5,a5,0x8
4001520c: 00e7e7b3 or a5,a5,a4
40015210: 00879713 slli a4,a5,0x8
40015214: 0087d793 srli a5,a5,0x8
40015218: 00f767b3 or a5,a4,a5
4001521c: 01079793 slli a5,a5,0x10
40015220: 0107d793 srli a5,a5,0x10
if (elength != RTEMS_RFS_DIR_ENTRY_EMPTY)
40015224: 13879063 bne a5,s8,40015344 <rtems_rfs_dir_read+0x284>
*length += rtems_rfs_fs_block_size (fs) - map.bpos.boff;
40015228: 0084a703 lw a4,8(s1)
4001522c: 00092783 lw a5,0(s2)
40015230: 40d70733 sub a4,a4,a3
40015234: 00e787b3 add a5,a5,a4
40015238: 00f92023 sw a5,0(s2)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
4001523c: ed1f40ef jal ra,4000a10c <rtems_rfs_trace>
40015240: f60508e3 beqz a0,400151b0 <rtems_rfs_dir_read+0xf0> <== ALWAYS TAKEN
printf ("rtems-rfs: dir-read: next block: off:%" PRId64 " length:%zd\n",
40015244: 00092703 lw a4,0(s2) <== NOT EXECUTED
40015248: 00098613 mv a2,s3 <== NOT EXECUTED
4001524c: 000a0693 mv a3,s4 <== NOT EXECUTED
40015250: 550d8513 addi a0,s11,1360 # 40023550 <IMFS_LIMITS_AND_OPTIONS+0x770><== NOT EXECUTED
40015254: fa4ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40015258: f59ff06f j 400151b0 <rtems_rfs_dir_read+0xf0> <== NOT EXECUTED
rc = ENOENT;
4001525c: 00200413 li s0,2
rtems_rfs_buffer_handle_release (fs, handle);
40015260: 01410593 addi a1,sp,20
40015264: 00048513 mv a0,s1
40015268: dacf10ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
}
rtems_rfs_buffer_handle_close (fs, &buffer);
rtems_rfs_block_map_close (fs, &map);
4001526c: 02010593 addi a1,sp,32
40015270: 00048513 mv a0,s1
handle->dirty = false;
40015274: 00010a23 sb zero,20(sp)
handle->bnum = 0;
40015278: 00012c23 sw zero,24(sp)
handle->buffer = NULL;
4001527c: 00012e23 sw zero,28(sp)
40015280: cccfe0ef jal ra,4001374c <rtems_rfs_block_map_close>
return rc;
}
40015284: 0ac12083 lw ra,172(sp)
40015288: 00040513 mv a0,s0
4001528c: 0a812403 lw s0,168(sp)
40015290: 0a412483 lw s1,164(sp)
40015294: 0a012903 lw s2,160(sp)
40015298: 09c12983 lw s3,156(sp)
4001529c: 09812a03 lw s4,152(sp)
400152a0: 09412a83 lw s5,148(sp)
400152a4: 09012b03 lw s6,144(sp)
400152a8: 08c12b83 lw s7,140(sp)
400152ac: 08812c03 lw s8,136(sp)
400152b0: 08412c83 lw s9,132(sp)
400152b4: 08012d03 lw s10,128(sp)
400152b8: 07c12d83 lw s11,124(sp)
400152bc: 0b010113 addi sp,sp,176
400152c0: 00008067 ret
if (((rtems_rfs_fs_block_size (fs) -
400152c4: 06058663 beqz a1,40015330 <rtems_rfs_dir_read+0x270> <== ALWAYS TAKEN
offset = (((offset / rtems_rfs_fs_block_size (fs)) + 1) *
400152c8: 00098513 mv a0,s3 <== NOT EXECUTED
400152cc: 000a0593 mv a1,s4 <== NOT EXECUTED
400152d0: 00040613 mv a2,s0 <== NOT EXECUTED
400152d4: 00000693 li a3,0 <== NOT EXECUTED
400152d8: 310070ef jal ra,4001c5e8 <__divdi3> <== NOT EXECUTED
400152dc: 00150993 addi s3,a0,1 # 80000001 <RamEnd+0x3f000001> <== NOT EXECUTED
400152e0: 00a9b533 sltu a0,s3,a0 <== NOT EXECUTED
400152e4: 00b50533 add a0,a0,a1 <== NOT EXECUTED
400152e8: 03343a33 mulhu s4,s0,s3 <== NOT EXECUTED
400152ec: 02850533 mul a0,a0,s0 <== NOT EXECUTED
400152f0: 033409b3 mul s3,s0,s3 <== NOT EXECUTED
400152f4: 01450a33 add s4,a0,s4 <== NOT EXECUTED
400152f8: e71ff06f j 40015168 <rtems_rfs_dir_read+0xa8> <== NOT EXECUTED
if (rc == ENXIO)
400152fc: 00600793 li a5,6 <== NOT EXECUTED
40015300: 02f50e63 beq a0,a5,4001533c <rtems_rfs_dir_read+0x27c> <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40015304: 02010593 addi a1,sp,32 <== NOT EXECUTED
40015308: 00048513 mv a0,s1 <== NOT EXECUTED
4001530c: c40fe0ef jal ra,4001374c <rtems_rfs_block_map_close> <== NOT EXECUTED
return rc;
40015310: f75ff06f j 40015284 <rtems_rfs_dir_read+0x1c4> <== NOT EXECUTED
printf ("rtems-rfs: dir-read: dir=%" PRId32 " offset=%" PRId64 "\n",
40015314: 008aa583 lw a1,8(s5) <== NOT EXECUTED
40015318: 40023537 lui a0,0x40023 <== NOT EXECUTED
4001531c: 00098613 mv a2,s3 <== NOT EXECUTED
40015320: 000a0693 mv a3,s4 <== NOT EXECUTED
40015324: 4a850513 addi a0,a0,1192 # 400234a8 <IMFS_LIMITS_AND_OPTIONS+0x6c8><== NOT EXECUTED
40015328: ed0ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
4001532c: df5ff06f j 40015120 <rtems_rfs_dir_read+0x60> <== NOT EXECUTED
if (((rtems_rfs_fs_block_size (fs) -
40015330: 00a00793 li a5,10
40015334: e2a7eae3 bltu a5,a0,40015168 <rtems_rfs_dir_read+0xa8>
40015338: f91ff06f j 400152c8 <rtems_rfs_dir_read+0x208> <== NOT EXECUTED
rc = ENOENT;
4001533c: 00200413 li s0,2 <== NOT EXECUTED
40015340: fc5ff06f j 40015304 <rtems_rfs_dir_read+0x244> <== NOT EXECUTED
eino = rtems_rfs_dir_entry_ino (entry);
40015344: 0008c683 lbu a3,0(a7)
40015348: 0018c703 lbu a4,1(a7)
4001534c: 0038c603 lbu a2,3(a7)
40015350: 0028c983 lbu s3,2(a7)
40015354: 01869693 slli a3,a3,0x18
40015358: 01071713 slli a4,a4,0x10
4001535c: 00e6e6b3 or a3,a3,a4
40015360: 00c6e6b3 or a3,a3,a2
40015364: 00899993 slli s3,s3,0x8
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
40015368: 00a00a13 li s4,10
eino = rtems_rfs_dir_entry_ino (entry);
4001536c: 0136e9b3 or s3,a3,s3
if (rtems_rfs_dir_entry_valid (fs, elength, eino))
40015370: 10fa5863 bge s4,a5,40015480 <rtems_rfs_dir_read+0x3c0>
40015374: 01c4a703 lw a4,28(s1)
40015378: 10e7f463 bgeu a5,a4,40015480 <rtems_rfs_dir_read+0x3c0>
4001537c: 10098263 beqz s3,40015480 <rtems_rfs_dir_read+0x3c0> <== NEVER TAKEN
40015380: 0144a703 lw a4,20(s1)
40015384: 0f376e63 bltu a4,s3,40015480 <rtems_rfs_dir_read+0x3c0>
memset (dirent, 0, sizeof (struct dirent));
40015388: 11800613 li a2,280
4001538c: 00000593 li a1,0
40015390: 000d0513 mv a0,s10
40015394: 00f12623 sw a5,12(sp)
40015398: 01112423 sw a7,8(sp)
4001539c: 79d080ef jal ra,4001e338 <memset>
dirent->d_off = rtems_rfs_block_get_pos (fs, &map.bpos);
400153a0: 03010593 addi a1,sp,48
400153a4: 00048513 mv a0,s1
400153a8: 974fe0ef jal ra,4001351c <rtems_rfs_block_get_pos>
*length += elength;
400153ac: 00092683 lw a3,0(s2)
400153b0: 00c12783 lw a5,12(sp)
dirent->d_reclen = sizeof (struct dirent);
400153b4: 11800713 li a4,280
400153b8: 00ed1823 sh a4,16(s10)
dirent->d_off = rtems_rfs_block_get_pos (fs, &map.bpos);
400153bc: 00ad2423 sw a0,8(s10)
*length += elength;
400153c0: 00d78733 add a4,a5,a3
dirent->d_off = rtems_rfs_block_get_pos (fs, &map.bpos);
400153c4: 00bd2623 sw a1,12(s10)
*length += elength;
400153c8: 00e92023 sw a4,0(s2)
remaining = rtems_rfs_fs_block_size (fs) - (map.bpos.boff + elength);
400153cc: 03412603 lw a2,52(sp)
400153d0: 0084a703 lw a4,8(s1)
if (remaining <= RTEMS_RFS_DIR_ENTRY_SIZE)
400153d4: 00812883 lw a7,8(sp)
400153d8: 40c70733 sub a4,a4,a2
remaining = rtems_rfs_fs_block_size (fs) - (map.bpos.boff + elength);
400153dc: 40f70633 sub a2,a4,a5
if (remaining <= RTEMS_RFS_DIR_ENTRY_SIZE)
400153e0: 00ca4663 blt s4,a2,400153ec <rtems_rfs_dir_read+0x32c>
*length += remaining;
400153e4: 00d70733 add a4,a4,a3 <== NOT EXECUTED
400153e8: 00e92023 sw a4,0(s2) <== NOT EXECUTED
elength -= RTEMS_RFS_DIR_ENTRY_SIZE;
400153ec: ff678913 addi s2,a5,-10
if (elength > NAME_MAX)
400153f0: 0ff00793 li a5,255
400153f4: 0127d463 bge a5,s2,400153fc <rtems_rfs_dir_read+0x33c>
400153f8: 0ff00913 li s2,255 <== NOT EXECUTED
memcpy (dirent->d_name, entry + RTEMS_RFS_DIR_ENTRY_SIZE, elength);
400153fc: 016d0993 addi s3,s10,22
40015400: 00a88593 addi a1,a7,10
40015404: 00090613 mv a2,s2
40015408: 00098513 mv a0,s3
4001540c: 01112423 sw a7,8(sp)
40015410: 4e1080ef jal ra,4001e0f0 <memcpy>
dirent->d_ino = rtems_rfs_dir_entry_ino (entry);
40015414: 00812883 lw a7,8(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015418: 80000537 lui a0,0x80000
4001541c: 00000593 li a1,0
dirent->d_ino = rtems_rfs_dir_entry_ino (entry);
40015420: 0008c783 lbu a5,0(a7)
40015424: 0018c683 lbu a3,1(a7)
40015428: 0038c603 lbu a2,3(a7)
4001542c: 0028c703 lbu a4,2(a7)
40015430: 01879793 slli a5,a5,0x18
40015434: 01069693 slli a3,a3,0x10
40015438: 00d7e7b3 or a5,a5,a3
4001543c: 00c7e7b3 or a5,a5,a2
40015440: 00871713 slli a4,a4,0x8
40015444: 00e7e7b3 or a5,a5,a4
40015448: 00fd2023 sw a5,0(s10)
4001544c: 000d2223 sw zero,4(s10)
dirent->d_namlen = elength;
40015450: 012d1a23 sh s2,20(s10)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015454: cb9f40ef jal ra,4000a10c <rtems_rfs_trace>
40015458: e00504e3 beqz a0,40015260 <rtems_rfs_dir_read+0x1a0> <== ALWAYS TAKEN
printf ("rtems-rfs: dir-read: found off:%" PRIooff_t
4001545c: 000d2703 lw a4,0(s10) <== NOT EXECUTED
40015460: 004d2783 lw a5,4(s10) <== NOT EXECUTED
40015464: 008d2603 lw a2,8(s10) <== NOT EXECUTED
40015468: 00cd2683 lw a3,12(s10) <== NOT EXECUTED
4001546c: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015470: 00098813 mv a6,s3 <== NOT EXECUTED
40015474: 51850513 addi a0,a0,1304 # 40023518 <IMFS_LIMITS_AND_OPTIONS+0x738><== NOT EXECUTED
40015478: d80ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
4001547c: de5ff06f j 40015260 <rtems_rfs_dir_read+0x1a0> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015480: 80000537 lui a0,0x80000 <== NOT EXECUTED
40015484: 00000593 li a1,0 <== NOT EXECUTED
40015488: 00f12423 sw a5,8(sp) <== NOT EXECUTED
4001548c: c81f40ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40015490: 00812783 lw a5,8(sp) <== NOT EXECUTED
rc = EIO;
40015494: 00500413 li s0,5 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_DIR_READ))
40015498: dc0504e3 beqz a0,40015260 <rtems_rfs_dir_read+0x1a0> <== NOT EXECUTED
printf ("rtems-rfs: dir-read: "
4001549c: 03412703 lw a4,52(sp) <== NOT EXECUTED
400154a0: 008aa583 lw a1,8(s5) <== NOT EXECUTED
400154a4: 40023537 lui a0,0x40023 <== NOT EXECUTED
400154a8: 00098693 mv a3,s3 <== NOT EXECUTED
400154ac: 00078613 mv a2,a5 <== NOT EXECUTED
400154b0: 4d450513 addi a0,a0,1236 # 400234d4 <IMFS_LIMITS_AND_OPTIONS+0x6f4><== NOT EXECUTED
400154b4: d44ec0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400154b8: da9ff06f j 40015260 <rtems_rfs_dir_read+0x1a0> <== NOT EXECUTED
40015ce4 <rtems_rfs_file_close>:
{
40015ce4: fe010113 addi sp,sp,-32
40015ce8: 00812c23 sw s0,24(sp)
40015cec: 01212823 sw s2,16(sp)
40015cf0: 00058413 mv s0,a1
40015cf4: 00050913 mv s2,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_CLOSE))
40015cf8: 01000593 li a1,16
40015cfc: 00000513 li a0,0
{
40015d00: 00112e23 sw ra,28(sp)
40015d04: 00912a23 sw s1,20(sp)
40015d08: 01312623 sw s3,12(sp)
40015d0c: 01412423 sw s4,8(sp)
40015d10: 01512223 sw s5,4(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_CLOSE))
40015d14: bf8f40ef jal ra,4000a10c <rtems_rfs_trace>
40015d18: 1c051063 bnez a0,40015ed8 <rtems_rfs_file_close+0x1f4> <== NEVER TAKEN
if (handle->shared->references > 0)
40015d1c: 01c42583 lw a1,28(s0)
40015d20: 0085a483 lw s1,8(a1)
40015d24: 00905663 blez s1,40015d30 <rtems_rfs_file_close+0x4c> <== NEVER TAKEN
handle->shared->references--;
40015d28: fff48493 addi s1,s1,-1
40015d2c: 0095a423 sw s1,8(a1)
rc = rtems_rfs_buffer_handle_close (fs, &handle->buffer);
40015d30: 00440a13 addi s4,s0,4
if (handle->shared->references == 0)
40015d34: 04048263 beqz s1,40015d78 <rtems_rfs_file_close+0x94> <== ALWAYS TAKEN
40015d38: 000a0593 mv a1,s4 <== NOT EXECUTED
40015d3c: 00090513 mv a0,s2 <== NOT EXECUTED
40015d40: ad5f00ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
rrc = 0;
40015d44: 00000493 li s1,0 <== NOT EXECUTED
free (handle);
40015d48: 00040513 mv a0,s0
40015d4c: 83cec0ef jal ra,40001d88 <free>
}
40015d50: 01c12083 lw ra,28(sp)
40015d54: 01812403 lw s0,24(sp)
40015d58: 01012903 lw s2,16(sp)
40015d5c: 00c12983 lw s3,12(sp)
40015d60: 00812a03 lw s4,8(sp)
40015d64: 00412a83 lw s5,4(sp)
40015d68: 00048513 mv a0,s1
40015d6c: 01412483 lw s1,20(sp)
40015d70: 02010113 addi sp,sp,32
40015d74: 00008067 ret
if (!rtems_rfs_inode_is_loaded (&handle->shared->inode))
40015d78: 0185a703 lw a4,24(a1)
40015d7c: 1c070e63 beqz a4,40015f58 <rtems_rfs_file_close+0x274> <== ALWAYS TAKEN
rtems_rfs_inode_set_atime (&handle->shared->inode,
40015d80: 08c5a783 lw a5,140(a1)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40015d84: 00100693 li a3,1
rtems_rfs_write_u32 (&handle->node->atime, atime);
40015d88: 0187d613 srli a2,a5,0x18
40015d8c: 00c70823 sb a2,16(a4)
40015d90: 0185a703 lw a4,24(a1)
40015d94: 0107d513 srli a0,a5,0x10
40015d98: 0087d613 srli a2,a5,0x8
40015d9c: 00a708a3 sb a0,17(a4)
40015da0: 0185a703 lw a4,24(a1)
40015da4: 00c70923 sb a2,18(a4)
40015da8: 0185a703 lw a4,24(a1)
40015dac: 00f709a3 sb a5,19(a4)
rtems_rfs_inode_set_mtime (&handle->shared->inode,
40015db0: 01c42703 lw a4,28(s0)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40015db4: 00d58e23 sb a3,28(a1)
40015db8: 09072783 lw a5,144(a4)
rtems_rfs_write_u32 (&handle->node->mtime, mtime);
40015dbc: 01872603 lw a2,24(a4)
40015dc0: 0187d593 srli a1,a5,0x18
40015dc4: 00b60a23 sb a1,20(a2)
40015dc8: 01872603 lw a2,24(a4)
40015dcc: 0107d513 srli a0,a5,0x10
40015dd0: 0087d593 srli a1,a5,0x8
40015dd4: 00a60aa3 sb a0,21(a2)
40015dd8: 01872603 lw a2,24(a4)
40015ddc: 00b60b23 sb a1,22(a2)
40015de0: 01872603 lw a2,24(a4)
40015de4: 00f60ba3 sb a5,23(a2)
rtems_rfs_inode_set_ctime (&handle->shared->inode,
40015de8: 01c42783 lw a5,28(s0)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40015dec: 00d70e23 sb a3,28(a4)
40015df0: 0947a703 lw a4,148(a5)
rtems_rfs_write_u32 (&handle->node->ctime, ctime);
40015df4: 0187a603 lw a2,24(a5)
40015df8: 01875593 srli a1,a4,0x18
40015dfc: 00b60c23 sb a1,24(a2)
40015e00: 0187a603 lw a2,24(a5)
40015e04: 01075513 srli a0,a4,0x10
40015e08: 00875593 srli a1,a4,0x8
40015e0c: 00a60ca3 sb a0,25(a2)
40015e10: 0187a603 lw a2,24(a5)
40015e14: 00b60d23 sb a1,26(a2)
40015e18: 0187a603 lw a2,24(a5)
40015e1c: 00e60da3 sb a4,27(a2)
if (!rtems_rfs_block_size_equal (&handle->shared->size,
40015e20: 01c42583 lw a1,28(s0)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40015e24: 00d78e23 sb a3,28(a5)
40015e28: 0845a783 lw a5,132(a1)
40015e2c: 03c5a703 lw a4,60(a1)
40015e30: 1ae78063 beq a5,a4,40015fd0 <rtems_rfs_file_close+0x2ec>
40015e34: 0885a703 lw a4,136(a1) <== NOT EXECUTED
*/
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);
40015e38: 02f5ae23 sw a5,60(a1) <== NOT EXECUTED
map->dirty = true;
40015e3c: 00100793 li a5,1 <== NOT EXECUTED
rtems_rfs_block_copy_size (&map->size, size);
40015e40: 04e5a023 sw a4,64(a1) <== NOT EXECUTED
map->dirty = true;
40015e44: 02f58a23 sb a5,52(a1) <== NOT EXECUTED
rc = rtems_rfs_block_map_close (fs, &handle->shared->map);
40015e48: 03458593 addi a1,a1,52
40015e4c: 00090513 mv a0,s2
40015e50: 8fdfd0ef jal ra,4001374c <rtems_rfs_block_map_close>
40015e54: 00050993 mv s3,a0
if (rc > 0)
40015e58: 0ea04263 bgtz a0,40015f3c <rtems_rfs_file_close+0x258> <== NEVER TAKEN
rc = rtems_rfs_inode_close (fs, &handle->shared->inode);
40015e5c: 01c42583 lw a1,28(s0)
40015e60: 00090513 mv a0,s2
40015e64: 00c58593 addi a1,a1,12
40015e68: e44f20ef jal ra,400084ac <rtems_rfs_inode_close>
40015e6c: 00050993 mv s3,a0
if (rc > 0)
40015e70: 08a04063 bgtz a0,40015ef0 <rtems_rfs_file_close+0x20c> <== NEVER TAKEN
rtems_chain_extract_unprotected (&handle->shared->link);
40015e74: 01c42503 lw a0,28(s0)
next = the_node->next;
40015e78: 00052703 lw a4,0(a0)
previous = the_node->previous;
40015e7c: 00452783 lw a5,4(a0)
next->previous = previous;
40015e80: 00f72223 sw a5,4(a4)
previous->next = next;
40015e84: 00e7a023 sw a4,0(a5)
free (handle->shared);
40015e88: f01eb0ef jal ra,40001d88 <free>
40015e8c: 000a0593 mv a1,s4
40015e90: 00090513 mv a0,s2
40015e94: 981f00ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
handle->dirty = false;
40015e98: 00040223 sb zero,4(s0)
handle->bnum = 0;
40015e9c: 00042423 sw zero,8(s0)
handle->buffer = NULL;
40015ea0: 00042623 sw zero,12(s0)
if (rrc > 0)
40015ea4: ea9052e3 blez s1,40015d48 <rtems_rfs_file_close+0x64> <== ALWAYS TAKEN
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_CLOSE))
40015ea8: 00000513 li a0,0 <== NOT EXECUTED
40015eac: 01000593 li a1,16 <== NOT EXECUTED
40015eb0: a5cf40ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40015eb4: e8050ae3 beqz a0,40015d48 <rtems_rfs_file_close+0x64> <== NOT EXECUTED
printf ("rtems-rfs: file-close: result: %d: %s\n", rrc, strerror (rrc));
40015eb8: 00048513 mv a0,s1 <== NOT EXECUTED
40015ebc: 0a8090ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40015ec0: 00050613 mv a2,a0 <== NOT EXECUTED
40015ec4: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015ec8: 00048593 mv a1,s1 <== NOT EXECUTED
40015ecc: 79c50513 addi a0,a0,1948 # 4002379c <IMFS_LIMITS_AND_OPTIONS+0x9bc><== NOT EXECUTED
40015ed0: b29eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40015ed4: e75ff06f j 40015d48 <rtems_rfs_file_close+0x64> <== NOT EXECUTED
printf ("rtems-rfs: file-close: entry: ino=%" PRId32 "\n",
40015ed8: 01c42783 lw a5,28(s0) <== NOT EXECUTED
40015edc: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015ee0: 70050513 addi a0,a0,1792 # 40023700 <IMFS_LIMITS_AND_OPTIONS+0x920><== NOT EXECUTED
40015ee4: 0147a583 lw a1,20(a5) <== NOT EXECUTED
40015ee8: b11eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40015eec: e31ff06f j 40015d1c <rtems_rfs_file_close+0x38> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_CLOSE))
40015ef0: 00000513 li a0,0 <== NOT EXECUTED
40015ef4: 01000593 li a1,16 <== NOT EXECUTED
40015ef8: a14f40ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40015efc: 0a051463 bnez a0,40015fa4 <rtems_rfs_file_close+0x2c0> <== NOT EXECUTED
rtems_chain_extract_unprotected (&handle->shared->link);
40015f00: 01c42503 lw a0,28(s0) <== NOT EXECUTED
next = the_node->next;
40015f04: 00052703 lw a4,0(a0) <== NOT EXECUTED
previous = the_node->previous;
40015f08: 00452783 lw a5,4(a0) <== NOT EXECUTED
if (rrc == 0)
40015f0c: f6049ae3 bnez s1,40015e80 <rtems_rfs_file_close+0x19c> <== NOT EXECUTED
next->previous = previous;
40015f10: 00f72223 sw a5,4(a4) <== NOT EXECUTED
previous->next = next;
40015f14: 00e7a023 sw a4,0(a5) <== NOT EXECUTED
free (handle->shared);
40015f18: e71eb0ef jal ra,40001d88 <free> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40015f1c: 000a0593 mv a1,s4 <== NOT EXECUTED
40015f20: 00090513 mv a0,s2 <== NOT EXECUTED
40015f24: 8f1f00ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
handle->buffer = NULL;
40015f28: 00098493 mv s1,s3 <== NOT EXECUTED
handle->dirty = false;
40015f2c: 00040223 sb zero,4(s0) <== NOT EXECUTED
handle->bnum = 0;
40015f30: 00042423 sw zero,8(s0) <== NOT EXECUTED
handle->buffer = NULL;
40015f34: 00042623 sw zero,12(s0) <== NOT EXECUTED
if (rrc > 0)
40015f38: f71ff06f j 40015ea8 <rtems_rfs_file_close+0x1c4> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_CLOSE))
40015f3c: 00000513 li a0,0 <== NOT EXECUTED
40015f40: 01000593 li a1,16 <== NOT EXECUTED
40015f44: 9c8f40ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40015f48: 02051663 bnez a0,40015f74 <rtems_rfs_file_close+0x290> <== NOT EXECUTED
if (rrc == 0)
40015f4c: f00498e3 bnez s1,40015e5c <rtems_rfs_file_close+0x178> <== NOT EXECUTED
40015f50: 00098493 mv s1,s3 <== NOT EXECUTED
40015f54: f09ff06f j 40015e5c <rtems_rfs_file_close+0x178> <== NOT EXECUTED
rrc = rtems_rfs_inode_load (fs, &handle->shared->inode);
40015f58: 00c58593 addi a1,a1,12
40015f5c: 00090513 mv a0,s2
40015f60: a60f20ef jal ra,400081c0 <rtems_rfs_inode_load>
rtems_rfs_inode_set_atime (&handle->shared->inode,
40015f64: 01c42583 lw a1,28(s0)
if (rrc == 0)
40015f68: 06050c63 beqz a0,40015fe0 <rtems_rfs_file_close+0x2fc> <== ALWAYS TAKEN
rc = rtems_rfs_block_map_close (fs, &handle->shared->map);
40015f6c: 00050493 mv s1,a0 <== NOT EXECUTED
40015f70: ed9ff06f j 40015e48 <rtems_rfs_file_close+0x164> <== NOT EXECUTED
printf ("rtems-rfs: file-close: map close error: ino=%" PRId32 ": %d: %s\n",
40015f74: 01c42783 lw a5,28(s0) <== NOT EXECUTED
40015f78: 00098513 mv a0,s3 <== NOT EXECUTED
40015f7c: 0147aa83 lw s5,20(a5) <== NOT EXECUTED
40015f80: 7e5080ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40015f84: 00050693 mv a3,a0 <== NOT EXECUTED
40015f88: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015f8c: 00098613 mv a2,s3 <== NOT EXECUTED
40015f90: 000a8593 mv a1,s5 <== NOT EXECUTED
40015f94: 72850513 addi a0,a0,1832 # 40023728 <IMFS_LIMITS_AND_OPTIONS+0x948><== NOT EXECUTED
40015f98: a61eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (rrc == 0)
40015f9c: ec0490e3 bnez s1,40015e5c <rtems_rfs_file_close+0x178> <== NOT EXECUTED
40015fa0: fb1ff06f j 40015f50 <rtems_rfs_file_close+0x26c> <== NOT EXECUTED
printf ("rtems-rfs: file-close: inode close error: ino=%" PRId32 ": %d: %s\n",
40015fa4: 01c42783 lw a5,28(s0) <== NOT EXECUTED
40015fa8: 00098513 mv a0,s3 <== NOT EXECUTED
40015fac: 0147aa83 lw s5,20(a5) <== NOT EXECUTED
40015fb0: 7b5080ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40015fb4: 00050693 mv a3,a0 <== NOT EXECUTED
40015fb8: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015fbc: 00098613 mv a2,s3 <== NOT EXECUTED
40015fc0: 000a8593 mv a1,s5 <== NOT EXECUTED
40015fc4: 76050513 addi a0,a0,1888 # 40023760 <IMFS_LIMITS_AND_OPTIONS+0x980><== NOT EXECUTED
40015fc8: a31eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40015fcc: f35ff06f j 40015f00 <rtems_rfs_file_close+0x21c> <== NOT EXECUTED
if (!rtems_rfs_block_size_equal (&handle->shared->size,
40015fd0: 0885a703 lw a4,136(a1)
40015fd4: 0405a683 lw a3,64(a1)
40015fd8: e6d710e3 bne a4,a3,40015e38 <rtems_rfs_file_close+0x154>
40015fdc: e6dff06f j 40015e48 <rtems_rfs_file_close+0x164>
rtems_rfs_write_u32 (&handle->node->atime, atime);
40015fe0: 0185a703 lw a4,24(a1)
40015fe4: d9dff06f j 40015d80 <rtems_rfs_file_close+0x9c>
40016920 <rtems_rfs_file_get_shared>:
{
40016920: 00050713 mv a4,a0
return _Chain_Immutable_head( the_chain )->next;
40016924: 07452503 lw a0,116(a0)
return &the_chain->Tail.Node;
40016928: 07870713 addi a4,a4,120
while (!rtems_chain_is_tail (&fs->file_shares, node))
4001692c: 00e51863 bne a0,a4,4001693c <rtems_rfs_file_get_shared+0x1c>
40016930: 0180006f j 40016948 <rtems_rfs_file_get_shared+0x28>
return the_node->next;
40016934: 00052503 lw a0,0(a0) <== NOT EXECUTED
40016938: 00e50863 beq a0,a4,40016948 <rtems_rfs_file_get_shared+0x28> <== NOT EXECUTED
if (shared->inode.ino == ino)
4001693c: 01452783 lw a5,20(a0)
40016940: feb79ae3 bne a5,a1,40016934 <rtems_rfs_file_get_shared+0x14>
return shared;
node = rtems_chain_next (node);
}
return NULL;
}
40016944: 00008067 ret
return NULL;
40016948: 00000513 li a0,0
}
4001694c: 00008067 ret
40016228 <rtems_rfs_file_io_end>:
{
40016228: fe010113 addi sp,sp,-32
4001622c: 00812c23 sw s0,24(sp)
40016230: 00912a23 sw s1,20(sp)
40016234: 00050413 mv s0,a0
40016238: 00058493 mv s1,a1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
4001623c: 00000513 li a0,0
40016240: 02000593 li a1,32
{
40016244: 01212823 sw s2,16(sp)
40016248: 00112e23 sw ra,28(sp)
4001624c: 01312623 sw s3,12(sp)
40016250: 01412423 sw s4,8(sp)
40016254: 01512223 sw s5,4(sp)
40016258: 01612023 sw s6,0(sp)
4001625c: 00060913 mv s2,a2
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016260: eadf30ef jal ra,4000a10c <rtems_rfs_trace>
40016264: 02050063 beqz a0,40016284 <rtems_rfs_file_io_end+0x5c> <== ALWAYS TAKEN
printf ("rtems-rfs: file-io: end: %s size=%zu\n",
40016268: 18091663 bnez s2,400163f4 <rtems_rfs_file_io_end+0x1cc> <== NOT EXECUTED
4001626c: 400235b7 lui a1,0x40023 <== NOT EXECUTED
40016270: 7c458593 addi a1,a1,1988 # 400237c4 <IMFS_LIMITS_AND_OPTIONS+0x9e4><== NOT EXECUTED
40016274: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016278: 00048613 mv a2,s1 <== NOT EXECUTED
4001627c: 88050513 addi a0,a0,-1920 # 40023880 <IMFS_LIMITS_AND_OPTIONS+0xaa0><== NOT EXECUTED
40016280: f78eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
40016284: 01c42783 lw a5,28(s0)
if (rtems_rfs_buffer_handle_has_block (&handle->buffer))
40016288: 00c42703 lw a4,12(s0)
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
4001628c: 0987a503 lw a0,152(a5)
if (rtems_rfs_buffer_handle_has_block (&handle->buffer))
40016290: 1a070c63 beqz a4,40016448 <rtems_rfs_file_io_end+0x220> <== NEVER TAKEN
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
40016294: 00440593 addi a1,s0,4
if (!read)
40016298: 10091e63 bnez s2,400163b4 <rtems_rfs_file_io_end+0x18c>
rtems_rfs_buffer_mark_dirty (rtems_rfs_file_buffer (handle));
4001629c: 00100793 li a5,1
400162a0: 00f40223 sb a5,4(s0)
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
400162a4: d70f00ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
400162a8: 00050993 mv s3,a0
if (rc > 0)
400162ac: 1ca04e63 bgtz a0,40016488 <rtems_rfs_file_io_end+0x260> <== NEVER TAKEN
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
400162b0: 01c42783 lw a5,28(s0)
handle->bpos.boff += size;
400162b4: 01442683 lw a3,20(s0)
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
400162b8: 0987a703 lw a4,152(a5)
handle->bpos.boff += size;
400162bc: 00d484b3 add s1,s1,a3
400162c0: 00942a23 sw s1,20(s0)
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
400162c4: 00872703 lw a4,8(a4)
if (handle->bpos.boff >=
400162c8: 00e4ee63 bltu s1,a4,400162e4 <rtems_rfs_file_io_end+0xbc>
handle->bpos.bno++;
400162cc: 01042683 lw a3,16(s0)
handle->bpos.boff -= rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
400162d0: 40e484b3 sub s1,s1,a4
400162d4: 00942a23 sw s1,20(s0)
handle->bpos.bno++;
400162d8: 00168713 addi a4,a3,1
400162dc: 00e42823 sw a4,16(s0)
if (!read &&
400162e0: 0e091e63 bnez s2,400163dc <rtems_rfs_file_io_end+0x1b4>
rtems_rfs_block_map_past_end (rtems_rfs_file_map (handle),
400162e4: 01042683 lw a3,16(s0)
400162e8: 03c7a703 lw a4,60(a5)
if (!read &&
400162ec: 10068a63 beqz a3,40016400 <rtems_rfs_file_io_end+0x1d8>
rtems_rfs_block_map_past_end (rtems_rfs_file_map (handle),
400162f0: 10071863 bnez a4,40016400 <rtems_rfs_file_io_end+0x1d8> <== ALWAYS TAKEN
400162f4: 01442683 lw a3,20(s0)
atime = rtems_rfs_file_update_atime (handle);
400162f8: 00042703 lw a4,0(s0)
map->size.offset = offset;
400162fc: 04d7a023 sw a3,64(a5)
map->dirty = true;
40016300: 00100693 li a3,1
40016304: 00177493 andi s1,a4,1
mtime = rtems_rfs_file_update_mtime (handle) && mtime;
40016308: 00277a13 andi s4,a4,2
4001630c: 001a3a13 seqz s4,s4
40016310: 0014ca93 xori s5,s1,1
40016314: 02d78a23 sb a3,52(a5)
length = rtems_rfs_file_update_length (handle) && length;
40016318: 00477713 andi a4,a4,4
4001631c: 014aeab3 or s5,s5,s4
40016320: 00100b13 li s6,1
40016324: 0c071463 bnez a4,400163ec <rtems_rfs_file_io_end+0x1c4> <== NEVER TAKEN
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016328: 00000513 li a0,0
4001632c: 02000593 li a1,32
40016330: dddf30ef jal ra,4000a10c <rtems_rfs_trace>
40016334: 02050c63 beqz a0,4001636c <rtems_rfs_file_io_end+0x144> <== ALWAYS TAKEN
printf ("rtems-rfs: file-io: end: pos=%" PRIu32 ":%" PRIu32 " %c %c %c\n",
40016338: fff48693 addi a3,s1,-1 <== NOT EXECUTED
4001633c: 416007b3 neg a5,s6 <== NOT EXECUTED
40016340: 01442603 lw a2,20(s0) <== NOT EXECUTED
40016344: 01042583 lw a1,16(s0) <== NOT EXECUTED
40016348: 0146f693 andi a3,a3,20 <== NOT EXECUTED
4001634c: 005a1713 slli a4,s4,0x5 <== NOT EXECUTED
40016350: 01f7f793 andi a5,a5,31 <== NOT EXECUTED
40016354: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016358: 02d78793 addi a5,a5,45 <== NOT EXECUTED
4001635c: 02d70713 addi a4,a4,45 <== NOT EXECUTED
40016360: 02d68693 addi a3,a3,45 <== NOT EXECUTED
40016364: 8ec50513 addi a0,a0,-1812 # 400238ec <IMFS_LIMITS_AND_OPTIONS+0xb0c><== NOT EXECUTED
40016368: e90eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (atime || mtime)
4001636c: 0c0a9063 bnez s5,4001642c <rtems_rfs_file_io_end+0x204> <== ALWAYS TAKEN
if (length)
40016370: 000b0c63 beqz s6,40016388 <rtems_rfs_file_io_end+0x160>
rtems_rfs_block_map_count (rtems_rfs_file_map (handle));
40016374: 01c42783 lw a5,28(s0)
handle->shared->size.count =
40016378: 03c7a683 lw a3,60(a5)
handle->shared->size.offset =
4001637c: 0407a703 lw a4,64(a5)
handle->shared->size.count =
40016380: 08d7a223 sw a3,132(a5)
handle->shared->size.offset =
40016384: 08e7a423 sw a4,136(a5)
}
40016388: 01c12083 lw ra,28(sp)
4001638c: 01812403 lw s0,24(sp)
40016390: 01412483 lw s1,20(sp)
40016394: 01012903 lw s2,16(sp)
40016398: 00812a03 lw s4,8(sp)
4001639c: 00412a83 lw s5,4(sp)
400163a0: 00012b03 lw s6,0(sp)
400163a4: 00098513 mv a0,s3
400163a8: 00c12983 lw s3,12(sp)
400163ac: 02010113 addi sp,sp,32
400163b0: 00008067 ret
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
400163b4: c60f00ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
400163b8: 00050993 mv s3,a0
if (rc > 0)
400163bc: 0ea04e63 bgtz a0,400164b8 <rtems_rfs_file_io_end+0x290> <== NEVER TAKEN
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
400163c0: 01c42783 lw a5,28(s0)
handle->bpos.boff += size;
400163c4: 01442683 lw a3,20(s0)
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
400163c8: 0987a703 lw a4,152(a5)
handle->bpos.boff += size;
400163cc: 00d484b3 add s1,s1,a3
400163d0: 00942a23 sw s1,20(s0)
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
400163d4: 00872703 lw a4,8(a4)
if (handle->bpos.boff >=
400163d8: eee4fae3 bgeu s1,a4,400162cc <rtems_rfs_file_io_end+0xa4>
atime = rtems_rfs_file_update_atime (handle);
400163dc: 00042483 lw s1,0(s0)
mtime = rtems_rfs_file_update_mtime (handle) && mtime;
400163e0: 00000a13 li s4,0
atime = rtems_rfs_file_update_atime (handle);
400163e4: 0014f493 andi s1,s1,1
400163e8: 0014ca93 xori s5,s1,1
length = rtems_rfs_file_update_length (handle) && length;
400163ec: 00000b13 li s6,0
400163f0: f39ff06f j 40016328 <rtems_rfs_file_io_end+0x100>
printf ("rtems-rfs: file-io: end: %s size=%zu\n",
400163f4: 400215b7 lui a1,0x40021 <== NOT EXECUTED
400163f8: 66c58593 addi a1,a1,1644 # 4002166c <IMFS_node_control_sym_link+0x10c><== NOT EXECUTED
400163fc: e79ff06f j 40016274 <rtems_rfs_file_io_end+0x4c> <== NOT EXECUTED
rtems_rfs_block_map_past_end (rtems_rfs_file_map (handle),
40016400: eee6fae3 bgeu a3,a4,400162f4 <rtems_rfs_file_io_end+0xcc>
40016404: fff70713 addi a4,a4,-1
40016408: 0ae68e63 beq a3,a4,400164c4 <rtems_rfs_file_io_end+0x29c>
atime = rtems_rfs_file_update_atime (handle);
4001640c: 00042a03 lw s4,0(s0)
length = rtems_rfs_file_update_length (handle) && length;
40016410: 00000b13 li s6,0
atime = rtems_rfs_file_update_atime (handle);
40016414: 001a7493 andi s1,s4,1
mtime = rtems_rfs_file_update_mtime (handle) && mtime;
40016418: 002a7a13 andi s4,s4,2
4001641c: 001a3a13 seqz s4,s4
length = rtems_rfs_file_update_length (handle) && length;
40016420: 0014ca93 xori s5,s1,1
40016424: 014aeab3 or s5,s5,s4
40016428: f01ff06f j 40016328 <rtems_rfs_file_io_end+0x100>
time_t now = time (NULL);
4001642c: 00000513 li a0,0
40016430: 755080ef jal ra,4001f384 <time>
if (read && atime)
40016434: 04090263 beqz s2,40016478 <rtems_rfs_file_io_end+0x250>
40016438: f2049ce3 bnez s1,40016370 <rtems_rfs_file_io_end+0x148> <== NEVER TAKEN
handle->shared->atime = now;
4001643c: 01c42783 lw a5,28(s0)
40016440: 08a7a623 sw a0,140(a5)
40016444: f2dff06f j 40016370 <rtems_rfs_file_io_end+0x148>
handle->bpos.boff += size;
40016448: 01442683 lw a3,20(s0) <== NOT EXECUTED
rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))
4001644c: 00852703 lw a4,8(a0) <== NOT EXECUTED
int rc = 0;
40016450: 00000993 li s3,0 <== NOT EXECUTED
handle->bpos.boff += size;
40016454: 00d484b3 add s1,s1,a3 <== NOT EXECUTED
40016458: 00942a23 sw s1,20(s0) <== NOT EXECUTED
if (handle->bpos.boff >=
4001645c: e8e4e2e3 bltu s1,a4,400162e0 <rtems_rfs_file_io_end+0xb8> <== NOT EXECUTED
handle->bpos.bno++;
40016460: 01042683 lw a3,16(s0) <== NOT EXECUTED
handle->bpos.boff -= rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
40016464: 40e484b3 sub s1,s1,a4 <== NOT EXECUTED
40016468: 00942a23 sw s1,20(s0) <== NOT EXECUTED
handle->bpos.bno++;
4001646c: 00168713 addi a4,a3,1 <== NOT EXECUTED
40016470: 00e42823 sw a4,16(s0) <== NOT EXECUTED
handle->bpos.boff -= rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
40016474: e6dff06f j 400162e0 <rtems_rfs_file_io_end+0xb8> <== NOT EXECUTED
if (!read && mtime)
40016478: ee0a0ce3 beqz s4,40016370 <rtems_rfs_file_io_end+0x148> <== NEVER TAKEN
handle->shared->mtime = now;
4001647c: 01c42783 lw a5,28(s0)
40016480: 08a7a823 sw a0,144(a5)
40016484: eedff06f j 40016370 <rtems_rfs_file_io_end+0x148>
printf (
40016488: 40023437 lui s0,0x40023 <== NOT EXECUTED
4001648c: 7c440413 addi s0,s0,1988 # 400237c4 <IMFS_LIMITS_AND_OPTIONS+0x9e4><== NOT EXECUTED
40016490: 00098513 mv a0,s3 <== NOT EXECUTED
40016494: 2d1080ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40016498: 00050713 mv a4,a0 <== NOT EXECUTED
4001649c: 40024537 lui a0,0x40024 <== NOT EXECUTED
400164a0: 00098693 mv a3,s3 <== NOT EXECUTED
400164a4: 00048613 mv a2,s1 <== NOT EXECUTED
400164a8: 00040593 mv a1,s0 <== NOT EXECUTED
400164ac: 8a850513 addi a0,a0,-1880 # 400238a8 <IMFS_LIMITS_AND_OPTIONS+0xac8><== NOT EXECUTED
400164b0: d48eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return rc;
400164b4: ed5ff06f j 40016388 <rtems_rfs_file_io_end+0x160> <== NOT EXECUTED
printf (
400164b8: 40021437 lui s0,0x40021 <== NOT EXECUTED
400164bc: 66c40413 addi s0,s0,1644 # 4002166c <IMFS_node_control_sym_link+0x10c><== NOT EXECUTED
400164c0: fd1ff06f j 40016490 <rtems_rfs_file_io_end+0x268> <== NOT EXECUTED
rtems_rfs_block_map_past_end (rtems_rfs_file_map (handle),
400164c4: 01442683 lw a3,20(s0)
400164c8: 0407a703 lw a4,64(a5)
400164cc: f4d770e3 bgeu a4,a3,4001640c <rtems_rfs_file_io_end+0x1e4>
400164d0: e29ff06f j 400162f8 <rtems_rfs_file_io_end+0xd0>
40015fe8 <rtems_rfs_file_io_start>:
{
40015fe8: fd010113 addi sp,sp,-48
40015fec: 02812423 sw s0,40(sp)
40015ff0: 03212023 sw s2,32(sp)
40015ff4: 00050413 mv s0,a0
40015ff8: 00058913 mv s2,a1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40015ffc: 00000513 li a0,0
40016000: 02000593 li a1,32
{
40016004: 02912223 sw s1,36(sp)
40016008: 02112623 sw ra,44(sp)
4001600c: 01312e23 sw s3,28(sp)
40016010: 00060493 mv s1,a2
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016014: 8f8f40ef jal ra,4000a10c <rtems_rfs_trace>
40016018: 02050263 beqz a0,4001603c <rtems_rfs_file_io_start+0x54> <== ALWAYS TAKEN
printf ("rtems-rfs: file-io: start: %s pos=%" PRIu32 ":%" PRIu32 "\n",
4001601c: 08049a63 bnez s1,400160b0 <rtems_rfs_file_io_start+0xc8> <== NOT EXECUTED
40016020: 400235b7 lui a1,0x40023 <== NOT EXECUTED
40016024: 7c458593 addi a1,a1,1988 # 400237c4 <IMFS_LIMITS_AND_OPTIONS+0x9e4><== NOT EXECUTED
40016028: 01442683 lw a3,20(s0) <== NOT EXECUTED
4001602c: 01042603 lw a2,16(s0) <== NOT EXECUTED
40016030: 40023537 lui a0,0x40023 <== NOT EXECUTED
40016034: 7cc50513 addi a0,a0,1996 # 400237cc <IMFS_LIMITS_AND_OPTIONS+0x9ec><== NOT EXECUTED
40016038: 9c1eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (!rtems_rfs_buffer_handle_has_block (&handle->buffer))
4001603c: 00c42783 lw a5,12(s0)
rc = rtems_rfs_block_map_find (rtems_rfs_file_fs (handle),
40016040: 01c42583 lw a1,28(s0)
if (!rtems_rfs_buffer_handle_has_block (&handle->buffer))
40016044: 0a078c63 beqz a5,400160fc <rtems_rfs_file_io_start+0x114>
if (read
40016048: 04049663 bnez s1,40016094 <rtems_rfs_file_io_start+0xac> <== NEVER TAKEN
size = rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
4001604c: 0985a783 lw a5,152(a1)
40016050: 0087a483 lw s1,8(a5)
*available = size - rtems_rfs_file_block_offset (handle);
40016054: 01442783 lw a5,20(s0)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016058: 00000513 li a0,0
4001605c: 02000593 li a1,32
*available = size - rtems_rfs_file_block_offset (handle);
40016060: 40f487b3 sub a5,s1,a5
40016064: 00f92023 sw a5,0(s2)
return 0;
40016068: 00000993 li s3,0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
4001606c: 8a0f40ef jal ra,4000a10c <rtems_rfs_trace>
40016070: 04051c63 bnez a0,400160c8 <rtems_rfs_file_io_start+0xe0> <== NEVER TAKEN
}
40016074: 02c12083 lw ra,44(sp)
40016078: 02812403 lw s0,40(sp)
4001607c: 02412483 lw s1,36(sp)
40016080: 02012903 lw s2,32(sp)
40016084: 00098513 mv a0,s3
40016088: 01c12983 lw s3,28(sp)
4001608c: 03010113 addi sp,sp,48
40016090: 00008067 ret
&& rtems_rfs_block_map_last (rtems_rfs_file_map (handle))
40016094: 0445a703 lw a4,68(a1)
40016098: 03c5a783 lw a5,60(a1)
4001609c: 00f766b3 or a3,a4,a5
400160a0: 00069e63 bnez a3,400160bc <rtems_rfs_file_io_start+0xd4> <== ALWAYS TAKEN
&& rtems_rfs_block_map_size_offset (rtems_rfs_file_map (handle)))
400160a4: 0405a483 lw s1,64(a1)
400160a8: fa0496e3 bnez s1,40016054 <rtems_rfs_file_io_start+0x6c>
400160ac: fa1ff06f j 4001604c <rtems_rfs_file_io_start+0x64>
printf ("rtems-rfs: file-io: start: %s pos=%" PRIu32 ":%" PRIu32 "\n",
400160b0: 400215b7 lui a1,0x40021 <== NOT EXECUTED
400160b4: 66c58593 addi a1,a1,1644 # 4002166c <IMFS_node_control_sym_link+0x10c><== NOT EXECUTED
400160b8: f71ff06f j 40016028 <rtems_rfs_file_io_start+0x40> <== NOT EXECUTED
&& rtems_rfs_block_map_last (rtems_rfs_file_map (handle))
400160bc: fff78793 addi a5,a5,-1
400160c0: f8f716e3 bne a4,a5,4001604c <rtems_rfs_file_io_start+0x64>
400160c4: fe1ff06f j 400160a4 <rtems_rfs_file_io_start+0xbc>
printf ("rtems-rfs: file-io: start: available=%zu (%zu)\n",
400160c8: 00092583 lw a1,0(s2) <== NOT EXECUTED
400160cc: 40024537 lui a0,0x40024 <== NOT EXECUTED
400160d0: 00048613 mv a2,s1 <== NOT EXECUTED
400160d4: 85050513 addi a0,a0,-1968 # 40023850 <IMFS_LIMITS_AND_OPTIONS+0xa70><== NOT EXECUTED
400160d8: 921eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
}
400160dc: 02c12083 lw ra,44(sp) <== NOT EXECUTED
400160e0: 02812403 lw s0,40(sp) <== NOT EXECUTED
400160e4: 02412483 lw s1,36(sp) <== NOT EXECUTED
400160e8: 02012903 lw s2,32(sp) <== NOT EXECUTED
400160ec: 00098513 mv a0,s3 <== NOT EXECUTED
400160f0: 01c12983 lw s3,28(sp) <== NOT EXECUTED
400160f4: 03010113 addi sp,sp,48 <== NOT EXECUTED
400160f8: 00008067 ret <== NOT EXECUTED
rc = rtems_rfs_block_map_find (rtems_rfs_file_fs (handle),
400160fc: 0985a503 lw a0,152(a1)
40016100: 00c10693 addi a3,sp,12
40016104: 01040613 addi a2,s0,16
40016108: 03458593 addi a1,a1,52
4001610c: 835fd0ef jal ra,40013940 <rtems_rfs_block_map_find>
40016110: 00050993 mv s3,a0
if (rc > 0)
40016114: 00a05e63 blez a0,40016130 <rtems_rfs_file_io_start+0x148>
if (read && (rc == ENXIO))
40016118: 00600793 li a5,6
4001611c: 06048863 beqz s1,4001618c <rtems_rfs_file_io_start+0x1a4> <== ALWAYS TAKEN
40016120: f4f51ae3 bne a0,a5,40016074 <rtems_rfs_file_io_start+0x8c> <== NOT EXECUTED
*available = 0;
40016124: 00092023 sw zero,0(s2) <== NOT EXECUTED
return 0;
40016128: 00000993 li s3,0 <== NOT EXECUTED
4001612c: f49ff06f j 40016074 <rtems_rfs_file_io_start+0x8c> <== NOT EXECUTED
if (!read &&
40016130: 08048e63 beqz s1,400161cc <rtems_rfs_file_io_start+0x1e4>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016134: 00000513 li a0,0
40016138: 02000593 li a1,32
4001613c: fd1f30ef jal ra,4000a10c <rtems_rfs_trace>
40016140: 00050993 mv s3,a0
40016144: 0c050663 beqz a0,40016210 <rtems_rfs_file_io_start+0x228> <== ALWAYS TAKEN
printf ("rtems-rfs: file-io: start: block=%" PRIu32 " request-read=%s\n",
40016148: 00c12583 lw a1,12(sp) <== NOT EXECUTED
4001614c: 40022637 lui a2,0x40022 <== NOT EXECUTED
40016150: 44460613 addi a2,a2,1092 # 40022444 <IMFS_node_control_sym_link+0xee4><== NOT EXECUTED
40016154: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016158: 81850513 addi a0,a0,-2024 # 40023818 <IMFS_LIMITS_AND_OPTIONS+0xa38><== NOT EXECUTED
4001615c: 89deb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (rtems_rfs_file_fs (handle),
40016160: 01c42783 lw a5,28(s0)
40016164: 00c12603 lw a2,12(sp)
40016168: 00098693 mv a3,s3
4001616c: 0987a503 lw a0,152(a5)
40016170: 00440593 addi a1,s0,4
40016174: c08f00ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
40016178: 00050993 mv s3,a0
if (rc > 0)
4001617c: eea04ce3 bgtz a0,40016074 <rtems_rfs_file_io_start+0x8c> <== NEVER TAKEN
&& rtems_rfs_block_map_last (rtems_rfs_file_map (handle))
40016180: 01c42583 lw a1,28(s0)
if (read
40016184: ec0484e3 beqz s1,4001604c <rtems_rfs_file_io_start+0x64>
40016188: f0dff06f j 40016094 <rtems_rfs_file_io_start+0xac>
if (rc != ENXIO)
4001618c: eef514e3 bne a0,a5,40016074 <rtems_rfs_file_io_start+0x8c>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016190: 00000513 li a0,0
40016194: 02000593 li a1,32
40016198: f75f30ef jal ra,4000a10c <rtems_rfs_trace>
4001619c: 06051e63 bnez a0,40016218 <rtems_rfs_file_io_start+0x230> <== NEVER TAKEN
rc = rtems_rfs_block_map_grow (rtems_rfs_file_fs (handle),
400161a0: 01c42583 lw a1,28(s0)
400161a4: 00c10693 addi a3,sp,12
400161a8: 00100613 li a2,1
400161ac: 0985a503 lw a0,152(a1)
400161b0: 03458593 addi a1,a1,52
400161b4: 9d5fd0ef jal ra,40013b88 <rtems_rfs_block_map_grow>
400161b8: 00050993 mv s3,a0
if (rc > 0)
400161bc: eaa04ce3 bgtz a0,40016074 <rtems_rfs_file_io_start+0x8c>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
400161c0: 00000513 li a0,0
400161c4: 02000593 li a1,32
400161c8: 0280006f j 400161f0 <rtems_rfs_file_io_start+0x208>
if (!read &&
400161cc: 01442783 lw a5,20(s0)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
400161d0: 00000513 li a0,0
400161d4: 02000593 li a1,32
if (!read &&
400161d8: f60792e3 bnez a5,4001613c <rtems_rfs_file_io_start+0x154>
(*available < rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))))
400161dc: 01c42783 lw a5,28(s0)
(rtems_rfs_file_block_offset (handle) ||
400161e0: 00092703 lw a4,0(s2)
(*available < rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle)))))
400161e4: 0987a783 lw a5,152(a5)
(rtems_rfs_file_block_offset (handle) ||
400161e8: 0087a783 lw a5,8(a5)
400161ec: f4f768e3 bltu a4,a5,4001613c <rtems_rfs_file_io_start+0x154>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
400161f0: f1df30ef jal ra,4000a10c <rtems_rfs_trace>
request_read = false;
400161f4: 00000993 li s3,0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
400161f8: f60504e3 beqz a0,40016160 <rtems_rfs_file_io_start+0x178> <== ALWAYS TAKEN
printf ("rtems-rfs: file-io: start: block=%" PRIu32 " request-read=%s\n",
400161fc: 40022637 lui a2,0x40022 <== NOT EXECUTED
40016200: 00c12583 lw a1,12(sp) <== NOT EXECUTED
40016204: 00000993 li s3,0 <== NOT EXECUTED
40016208: 44860613 addi a2,a2,1096 # 40022448 <IMFS_node_control_sym_link+0xee8><== NOT EXECUTED
4001620c: f49ff06f j 40016154 <rtems_rfs_file_io_start+0x16c> <== NOT EXECUTED
request_read = true;
40016210: 00100993 li s3,1
40016214: f4dff06f j 40016160 <rtems_rfs_file_io_start+0x178>
printf ("rtems-rfs: file-io: start: grow\n");
40016218: 40023537 lui a0,0x40023 <== NOT EXECUTED
4001621c: 7f850513 addi a0,a0,2040 # 400237f8 <IMFS_LIMITS_AND_OPTIONS+0xa18><== NOT EXECUTED
40016220: 821eb0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
40016224: f7dff06f j 400161a0 <rtems_rfs_file_io_start+0x1b8> <== NOT EXECUTED
4001599c <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)
{
4001599c: fd010113 addi sp,sp,-48
400159a0: 02912223 sw s1,36(sp)
400159a4: 01712623 sw s7,12(sp)
400159a8: 00058493 mv s1,a1
400159ac: 00050b93 mv s7,a0
rtems_rfs_file_handle* handle;
rtems_rfs_file_shared* shared;
int rc;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
400159b0: 00800593 li a1,8
400159b4: 00000513 li a0,0
{
400159b8: 01412c23 sw s4,24(sp)
400159bc: 01612823 sw s6,16(sp)
400159c0: 02112623 sw ra,44(sp)
400159c4: 02812423 sw s0,40(sp)
400159c8: 03212023 sw s2,32(sp)
400159cc: 01312e23 sw s3,28(sp)
400159d0: 01512a23 sw s5,20(sp)
400159d4: 01812423 sw s8,8(sp)
400159d8: 01912223 sw s9,4(sp)
400159dc: 00060b13 mv s6,a2
400159e0: 00068a13 mv s4,a3
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
400159e4: f28f40ef jal ra,4000a10c <rtems_rfs_trace>
400159e8: 0a051a63 bnez a0,40015a9c <rtems_rfs_file_open+0x100> <== NEVER TAKEN
printf ("rtems-rfs: file-open: ino=%" PRId32 "\n", ino);
*file = NULL;
400159ec: 000a2023 sw zero,0(s4)
/*
* 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));
400159f0: 00100593 li a1,1
400159f4: 02000513 li a0,32
400159f8: b88fc0ef jal ra,40011d80 <calloc>
400159fc: 00050993 mv s3,a0
if (!handle)
40015a00: 2c050063 beqz a0,40015cc0 <rtems_rfs_file_open+0x324> <== NEVER TAKEN
return _Chain_Immutable_head( the_chain )->next;
40015a04: 074ba403 lw s0,116(s7)
return &the_chain->Tail.Node;
40015a08: 078b8913 addi s2,s7,120
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))
40015a0c: 01241863 bne s0,s2,40015a1c <rtems_rfs_file_open+0x80>
40015a10: 0a00006f j 40015ab0 <rtems_rfs_file_open+0x114>
return the_node->next;
40015a14: 00042403 lw s0,0(s0) <== NOT EXECUTED
40015a18: 09240c63 beq s0,s2,40015ab0 <rtems_rfs_file_open+0x114> <== NOT EXECUTED
{
rtems_rfs_file_shared* shared;
shared = (rtems_rfs_file_shared*) node;
if (shared->inode.ino == ino)
40015a1c: 01442783 lw a5,20(s0) <== NOT EXECUTED
40015a20: fef49ae3 bne s1,a5,40015a14 <rtems_rfs_file_open+0x78> <== NOT EXECUTED
shared->references++;
40015a24: 00842783 lw a5,8(s0) <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
40015a28: 00000513 li a0,0 <== NOT EXECUTED
40015a2c: 00800593 li a1,8 <== NOT EXECUTED
shared->references++;
40015a30: 00178793 addi a5,a5,1 <== NOT EXECUTED
40015a34: 00f42423 sw a5,8(s0) <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
40015a38: ed4f40ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40015a3c: 04051663 bnez a0,40015a88 <rtems_rfs_file_open+0xec> <== NOT EXECUTED
handle->flags = oflag;
40015a40: 0169a023 sw s6,0(s3)
handle->shared = shared;
40015a44: 0089ae23 sw s0,28(s3)
*file = handle;
40015a48: 013a2023 sw s3,0(s4)
return 0;
40015a4c: 00000a93 li s5,0
}
40015a50: 02c12083 lw ra,44(sp)
40015a54: 02812403 lw s0,40(sp)
40015a58: 02412483 lw s1,36(sp)
40015a5c: 02012903 lw s2,32(sp)
40015a60: 01c12983 lw s3,28(sp)
40015a64: 01812a03 lw s4,24(sp)
40015a68: 01012b03 lw s6,16(sp)
40015a6c: 00c12b83 lw s7,12(sp)
40015a70: 00812c03 lw s8,8(sp)
40015a74: 00412c83 lw s9,4(sp)
40015a78: 000a8513 mv a0,s5
40015a7c: 01412a83 lw s5,20(sp)
40015a80: 03010113 addi sp,sp,48
40015a84: 00008067 ret
printf ("rtems-rfs: file-open: ino=%" PRId32 " shared\n", ino);
40015a88: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015a8c: 00048593 mv a1,s1 <== NOT EXECUTED
40015a90: 64050513 addi a0,a0,1600 # 40023640 <IMFS_LIMITS_AND_OPTIONS+0x860><== NOT EXECUTED
40015a94: f65eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40015a98: fa9ff06f j 40015a40 <rtems_rfs_file_open+0xa4> <== NOT EXECUTED
printf ("rtems-rfs: file-open: ino=%" PRId32 "\n", ino);
40015a9c: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015aa0: 00048593 mv a1,s1 <== NOT EXECUTED
40015aa4: 62050513 addi a0,a0,1568 # 40023620 <IMFS_LIMITS_AND_OPTIONS+0x840><== NOT EXECUTED
40015aa8: f51eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40015aac: f41ff06f j 400159ec <rtems_rfs_file_open+0x50> <== NOT EXECUTED
shared = malloc (sizeof (rtems_rfs_file_shared));
40015ab0: 00100593 li a1,1
40015ab4: 09c00513 li a0,156
40015ab8: ac8fc0ef jal ra,40011d80 <calloc>
40015abc: 00050413 mv s0,a0
rc = rtems_rfs_buffer_handle_open (fs, &handle->buffer);
40015ac0: 00498c93 addi s9,s3,4
if (!shared)
40015ac4: 20050263 beqz a0,40015cc8 <rtems_rfs_file_open+0x32c> <== NEVER TAKEN
rc = rtems_rfs_inode_open (fs, ino, &shared->inode, true);
40015ac8: 00c40c13 addi s8,s0,12
40015acc: 00100693 li a3,1
40015ad0: 000c0613 mv a2,s8
40015ad4: 00048593 mv a1,s1
40015ad8: 000b8513 mv a0,s7
40015adc: fa4f20ef jal ra,40008280 <rtems_rfs_inode_open>
40015ae0: 00050a93 mv s5,a0
if (rc > 0)
40015ae4: 14a04663 bgtz a0,40015c30 <rtems_rfs_file_open+0x294> <== NEVER TAKEN
rc = rtems_rfs_block_map_open (fs, &shared->inode, &shared->map);
40015ae8: 03440613 addi a2,s0,52
40015aec: 000c0593 mv a1,s8
40015af0: 000b8513 mv a0,s7
40015af4: a85fd0ef jal ra,40013578 <rtems_rfs_block_map_open>
40015af8: 00050a93 mv s5,a0
if (rc > 0)
40015afc: 16a04263 bgtz a0,40015c60 <rtems_rfs_file_open+0x2c4> <== NEVER TAKEN
shared->references = 1;
40015b00: 01842783 lw a5,24(s0)
40015b04: 00100713 li a4,1
40015b08: 00e42423 sw a4,8(s0)
return rtems_rfs_read_u32 (&handle->node->block_count);
40015b0c: 00c7c703 lbu a4,12(a5)
40015b10: 00d7c603 lbu a2,13(a5)
40015b14: 00f7c583 lbu a1,15(a5)
40015b18: 00e7c683 lbu a3,14(a5)
40015b1c: 01061613 slli a2,a2,0x10
40015b20: 01871713 slli a4,a4,0x18
40015b24: 00c76733 or a4,a4,a2
40015b28: 00b76733 or a4,a4,a1
40015b2c: 00869693 slli a3,a3,0x8
40015b30: 00d76733 or a4,a4,a3
shared->size.count = rtems_rfs_inode_get_block_count (&shared->inode);
40015b34: 08e42223 sw a4,132(s0)
shared->size.offset = rtems_rfs_inode_get_block_offset (&shared->inode);
40015b38: 00b7c703 lbu a4,11(a5)
40015b3c: 00a7c603 lbu a2,10(a5)
old_last = tail->previous;
40015b40: 07cba683 lw a3,124(s7)
40015b44: 00871713 slli a4,a4,0x8
40015b48: 00c76733 or a4,a4,a2
40015b4c: 00871613 slli a2,a4,0x8
40015b50: 00875713 srli a4,a4,0x8
40015b54: 00e66733 or a4,a2,a4
40015b58: 01071713 slli a4,a4,0x10
40015b5c: 01075713 srli a4,a4,0x10
40015b60: 08e42423 sw a4,136(s0)
return rtems_rfs_read_u32 (&handle->node->atime);
40015b64: 0107c703 lbu a4,16(a5)
40015b68: 0117c583 lbu a1,17(a5)
40015b6c: 0137c503 lbu a0,19(a5)
40015b70: 0127c603 lbu a2,18(a5)
40015b74: 01059593 slli a1,a1,0x10
40015b78: 01871713 slli a4,a4,0x18
40015b7c: 00b76733 or a4,a4,a1
40015b80: 00a76733 or a4,a4,a0
40015b84: 00861613 slli a2,a2,0x8
40015b88: 00c76733 or a4,a4,a2
shared->atime = rtems_rfs_inode_get_atime (&shared->inode);
40015b8c: 08e42623 sw a4,140(s0)
return rtems_rfs_read_u32 (&handle->node->mtime);
40015b90: 0147c703 lbu a4,20(a5)
40015b94: 0157c583 lbu a1,21(a5)
40015b98: 0177c503 lbu a0,23(a5)
40015b9c: 0167c603 lbu a2,22(a5)
40015ba0: 01059593 slli a1,a1,0x10
40015ba4: 01871713 slli a4,a4,0x18
40015ba8: 00b76733 or a4,a4,a1
40015bac: 00a76733 or a4,a4,a0
40015bb0: 00861613 slli a2,a2,0x8
40015bb4: 00c76733 or a4,a4,a2
shared->mtime = rtems_rfs_inode_get_mtime (&shared->inode);
40015bb8: 08e42823 sw a4,144(s0)
return rtems_rfs_read_u32 (&handle->node->ctime);
40015bbc: 0197c583 lbu a1,25(a5)
40015bc0: 0187c703 lbu a4,24(a5)
40015bc4: 01b7c503 lbu a0,27(a5)
40015bc8: 01a7c603 lbu a2,26(a5)
40015bcc: 01871793 slli a5,a4,0x18
40015bd0: 01059713 slli a4,a1,0x10
40015bd4: 00e7e7b3 or a5,a5,a4
40015bd8: 00a7e7b3 or a5,a5,a0
40015bdc: 00861713 slli a4,a2,0x8
40015be0: 00e7e7b3 or a5,a5,a4
shared->ctime = rtems_rfs_inode_get_ctime (&shared->inode);
40015be4: 08f42a23 sw a5,148(s0)
shared->fs = fs;
40015be8: 09742c23 sw s7,152(s0)
the_node->next = tail;
40015bec: 01242023 sw s2,0(s0)
tail->previous = the_node;
40015bf0: 068bae23 sw s0,124(s7)
old_last->next = the_node;
40015bf4: 0086a023 sw s0,0(a3)
rtems_rfs_inode_unload (fs, &shared->inode, false);
40015bf8: 000c0593 mv a1,s8
40015bfc: 00000613 li a2,0
the_node->previous = old_last;
40015c00: 00d42223 sw a3,4(s0)
40015c04: 000b8513 mv a0,s7
40015c08: f94f20ef jal ra,4000839c <rtems_rfs_inode_unload>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
40015c0c: 00000513 li a0,0
40015c10: 00800593 li a1,8
40015c14: cf8f40ef jal ra,4000a10c <rtems_rfs_trace>
40015c18: e20504e3 beqz a0,40015a40 <rtems_rfs_file_open+0xa4> <== ALWAYS TAKEN
printf ("rtems-rfs: file-open: ino=%" PRId32 " share created\n", ino);
40015c1c: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015c20: 00048593 mv a1,s1 <== NOT EXECUTED
40015c24: 6d450513 addi a0,a0,1748 # 400236d4 <IMFS_LIMITS_AND_OPTIONS+0x8f4><== NOT EXECUTED
40015c28: dd1eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40015c2c: e15ff06f j 40015a40 <rtems_rfs_file_open+0xa4> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
40015c30: 00000513 li a0,0 <== NOT EXECUTED
40015c34: 00800593 li a1,8 <== NOT EXECUTED
40015c38: cd4f40ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40015c3c: 06051263 bnez a0,40015ca0 <rtems_rfs_file_open+0x304> <== NOT EXECUTED
free (shared);
40015c40: 00040513 mv a0,s0 <== NOT EXECUTED
40015c44: 944ec0ef jal ra,40001d88 <free> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40015c48: 000c8593 mv a1,s9 <== NOT EXECUTED
40015c4c: 000b8513 mv a0,s7 <== NOT EXECUTED
40015c50: bc5f00ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
free (handle);
40015c54: 00098513 mv a0,s3 <== NOT EXECUTED
40015c58: 930ec0ef jal ra,40001d88 <free> <== NOT EXECUTED
return rc;
40015c5c: df5ff06f j 40015a50 <rtems_rfs_file_open+0xb4> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_OPEN))
40015c60: 00000513 li a0,0 <== NOT EXECUTED
40015c64: 00800593 li a1,8 <== NOT EXECUTED
40015c68: ca4f40ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40015c6c: 00051a63 bnez a0,40015c80 <rtems_rfs_file_open+0x2e4> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &shared->inode);
40015c70: 000c0593 mv a1,s8 <== NOT EXECUTED
40015c74: 000b8513 mv a0,s7 <== NOT EXECUTED
40015c78: 835f20ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
40015c7c: fc5ff06f j 40015c40 <rtems_rfs_file_open+0x2a4> <== NOT EXECUTED
printf ("rtems-rfs: file-open: block map open failed: %d: %s\n",
40015c80: 000a8513 mv a0,s5 <== NOT EXECUTED
40015c84: 2e0090ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40015c88: 00050613 mv a2,a0 <== NOT EXECUTED
40015c8c: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015c90: 000a8593 mv a1,s5 <== NOT EXECUTED
40015c94: 69c50513 addi a0,a0,1692 # 4002369c <IMFS_LIMITS_AND_OPTIONS+0x8bc><== NOT EXECUTED
40015c98: d61eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40015c9c: fd5ff06f j 40015c70 <rtems_rfs_file_open+0x2d4> <== NOT EXECUTED
printf ("rtems-rfs: file-open: inode open failed: %d: %s\n",
40015ca0: 000a8513 mv a0,s5 <== NOT EXECUTED
40015ca4: 2c0090ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40015ca8: 00050613 mv a2,a0 <== NOT EXECUTED
40015cac: 40023537 lui a0,0x40023 <== NOT EXECUTED
40015cb0: 000a8593 mv a1,s5 <== NOT EXECUTED
40015cb4: 66850513 addi a0,a0,1640 # 40023668 <IMFS_LIMITS_AND_OPTIONS+0x888><== NOT EXECUTED
40015cb8: d41eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
free (shared);
40015cbc: f85ff06f j 40015c40 <rtems_rfs_file_open+0x2a4> <== NOT EXECUTED
return ENOMEM;
40015cc0: 00c00a93 li s5,12 <== NOT EXECUTED
40015cc4: d8dff06f j 40015a50 <rtems_rfs_file_open+0xb4> <== NOT EXECUTED
40015cc8: 000c8593 mv a1,s9 <== NOT EXECUTED
40015ccc: 000b8513 mv a0,s7 <== NOT EXECUTED
40015cd0: b45f00ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
free (handle);
40015cd4: 00098513 mv a0,s3 <== NOT EXECUTED
40015cd8: 8b0ec0ef jal ra,40001d88 <free> <== NOT EXECUTED
return ENOMEM;
40015cdc: 00c00a93 li s5,12 <== NOT EXECUTED
40015ce0: d71ff06f j 40015a50 <rtems_rfs_file_open+0xb4> <== NOT EXECUTED
400164d4 <rtems_rfs_file_seek>:
{
400164d4: fd010113 addi sp,sp,-48
400164d8: 02812423 sw s0,40(sp)
400164dc: 03212023 sw s2,32(sp)
400164e0: 00050413 mv s0,a0
400164e4: 00058913 mv s2,a1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
400164e8: 00000513 li a0,0
400164ec: 02000593 li a1,32
{
400164f0: 02912223 sw s1,36(sp)
400164f4: 01312e23 sw s3,28(sp)
400164f8: 02112623 sw ra,44(sp)
400164fc: 01412c23 sw s4,24(sp)
40016500: 00060493 mv s1,a2
40016504: 00068993 mv s3,a3
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016508: c05f30ef jal ra,4000a10c <rtems_rfs_trace>
4001650c: 0a051c63 bnez a0,400165c4 <rtems_rfs_file_seek+0xf0> <== NEVER TAKEN
if (pos <= rtems_rfs_file_shared_get_size (rtems_rfs_file_fs (handle),
40016510: 01c42583 lw a1,28(s0)
40016514: 0985a503 lw a0,152(a1)
40016518: 08458593 addi a1,a1,132
4001651c: 81cfd0ef jal ra,40013538 <rtems_rfs_block_get_size>
40016520: 0495f663 bgeu a1,s1,4001656c <rtems_rfs_file_seek+0x98>
if (rtems_rfs_buffer_handle_has_block (&handle->buffer))
40016524: 00c42783 lw a5,12(s0)
40016528: 00078c63 beqz a5,40016540 <rtems_rfs_file_seek+0x6c> <== ALWAYS TAKEN
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
4001652c: 01c42783 lw a5,28(s0) <== NOT EXECUTED
40016530: 00440593 addi a1,s0,4 <== NOT EXECUTED
40016534: 0987a503 lw a0,152(a5) <== NOT EXECUTED
40016538: adcf00ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
if (rc > 0)
4001653c: 00a04863 bgtz a0,4001654c <rtems_rfs_file_seek+0x78> <== NOT EXECUTED
*new_pos = pos;
40016540: 0129a023 sw s2,0(s3)
40016544: 0099a223 sw s1,4(s3)
return 0;
40016548: 00000513 li a0,0
}
4001654c: 02c12083 lw ra,44(sp)
40016550: 02812403 lw s0,40(sp)
40016554: 02412483 lw s1,36(sp)
40016558: 02012903 lw s2,32(sp)
4001655c: 01c12983 lw s3,28(sp)
40016560: 01812a03 lw s4,24(sp)
40016564: 03010113 addi sp,sp,48
40016568: 00008067 ret
if (pos <= rtems_rfs_file_shared_get_size (rtems_rfs_file_fs (handle),
4001656c: 00b49463 bne s1,a1,40016574 <rtems_rfs_file_seek+0xa0>
40016570: fb256ae3 bltu a0,s2,40016524 <rtems_rfs_file_seek+0x50>
rtems_rfs_file_set_bpos (handle, pos);
40016574: 01c42783 lw a5,28(s0)
40016578: 01040a13 addi s4,s0,16
4001657c: 000a0693 mv a3,s4
40016580: 0987a503 lw a0,152(a5)
40016584: 00090593 mv a1,s2
40016588: 00048613 mv a2,s1
4001658c: f1dfc0ef jal ra,400134a8 <rtems_rfs_block_get_bpos>
if (rtems_rfs_buffer_handle_has_block (&handle->buffer))
40016590: 00c42783 lw a5,12(s0)
40016594: fa0786e3 beqz a5,40016540 <rtems_rfs_file_seek+0x6c>
rc = rtems_rfs_block_map_find (rtems_rfs_file_fs (handle),
40016598: 01c42583 lw a1,28(s0)
4001659c: 00c10693 addi a3,sp,12
400165a0: 000a0613 mv a2,s4
400165a4: 0985a503 lw a0,152(a1)
400165a8: 03458593 addi a1,a1,52
400165ac: b94fd0ef jal ra,40013940 <rtems_rfs_block_map_find>
if (rc > 0)
400165b0: f8a04ee3 bgtz a0,4001654c <rtems_rfs_file_seek+0x78> <== NEVER TAKEN
if (rtems_rfs_buffer_bnum (&handle->buffer) != block)
400165b4: 00842703 lw a4,8(s0)
400165b8: 00c12783 lw a5,12(sp)
400165bc: f8f702e3 beq a4,a5,40016540 <rtems_rfs_file_seek+0x6c>
400165c0: f6dff06f j 4001652c <rtems_rfs_file_seek+0x58> <== NOT EXECUTED
printf ("rtems-rfs: file-seek: new=%" PRIu64 "\n", pos);
400165c4: 40024537 lui a0,0x40024 <== NOT EXECUTED
400165c8: 00090613 mv a2,s2 <== NOT EXECUTED
400165cc: 00048693 mv a3,s1 <== NOT EXECUTED
400165d0: 91c50513 addi a0,a0,-1764 # 4002391c <IMFS_LIMITS_AND_OPTIONS+0xb3c><== NOT EXECUTED
400165d4: c24eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400165d8: f39ff06f j 40016510 <rtems_rfs_file_seek+0x3c> <== NOT EXECUTED
400165dc <rtems_rfs_file_set_size>:
{
400165dc: fc010113 addi sp,sp,-64
400165e0: 01712e23 sw s7,28(sp)
400165e4: 01912a23 sw s9,20(sp)
400165e8: 00058b93 mv s7,a1
400165ec: 00050c93 mv s9,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
400165f0: 02000593 li a1,32
400165f4: 00000513 li a0,0
{
400165f8: 03312623 sw s3,44(sp)
400165fc: 01812c23 sw s8,24(sp)
40016600: 02112e23 sw ra,60(sp)
40016604: 02812c23 sw s0,56(sp)
40016608: 02912a23 sw s1,52(sp)
4001660c: 03212823 sw s2,48(sp)
40016610: 03412423 sw s4,40(sp)
40016614: 03512223 sw s5,36(sp)
40016618: 03612023 sw s6,32(sp)
4001661c: 01a12823 sw s10,16(sp)
rtems_rfs_block_map* map = rtems_rfs_file_map (handle);
40016620: 01cca983 lw s3,28(s9)
{
40016624: 00060c13 mv s8,a2
if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
40016628: ae5f30ef jal ra,4000a10c <rtems_rfs_trace>
4001662c: 14051c63 bnez a0,40016784 <rtems_rfs_file_set_size+0x1a8> <== NEVER TAKEN
size = rtems_rfs_file_size (handle);
40016630: 01cca583 lw a1,28(s9)
40016634: 0985a503 lw a0,152(a1)
40016638: 08458593 addi a1,a1,132
4001663c: efdfc0ef jal ra,40013538 <rtems_rfs_block_get_size>
if (size != new_size)
40016640: 12ab8063 beq s7,a0,40016760 <rtems_rfs_file_set_size+0x184>
rc = rtems_rfs_block_map_free_all (rtems_rfs_file_fs (handle), map);
40016644: 01ccaa83 lw s5,28(s9)
if (new_size == 0)
40016648: 018be7b3 or a5,s7,s8
rtems_rfs_block_map* map = rtems_rfs_file_map (handle);
4001664c: 03498b13 addi s6,s3,52
rc = rtems_rfs_block_map_free_all (rtems_rfs_file_fs (handle), map);
40016650: 098aad03 lw s10,152(s5)
if (new_size == 0)
40016654: 0e078063 beqz a5,40016734 <rtems_rfs_file_set_size+0x158>
rtems_rfs_block_map_count (map) -
40016658: 03c9a403 lw s0,60(s3)
length = rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
4001665c: 008d2a03 lw s4,8(s10)
if (size < new_size)
40016660: 1585e063 bltu a1,s8,400167a0 <rtems_rfs_file_set_size+0x1c4>
40016664: 12bc0c63 beq s8,a1,4001679c <rtems_rfs_file_set_size+0x1c0>
(((new_size - 1) /
40016668: 001bb593 seqz a1,s7
4001666c: 000a0613 mv a2,s4
40016670: 00000693 li a3,0
40016674: fffb8513 addi a0,s7,-1
40016678: 40bc05b3 sub a1,s8,a1
4001667c: 0f9060ef jal ra,4001cf74 <__udivdi3>
40016680: 00050793 mv a5,a0
blocks =
40016684: fff40493 addi s1,s0,-1
new_size % rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
40016688: 000a0613 mv a2,s4
4001668c: 00000693 li a3,0
40016690: 000b8513 mv a0,s7
40016694: 000c0593 mv a1,s8
blocks =
40016698: 40f484b3 sub s1,s1,a5
new_size % rtems_rfs_fs_block_size (rtems_rfs_file_fs (handle));
4001669c: 579060ef jal ra,4001d414 <__umoddi3>
400166a0: 00050913 mv s2,a0
if (blocks)
400166a4: 22049a63 bnez s1,400168d8 <rtems_rfs_file_set_size+0x2fc>
if (rtems_rfs_block_pos_past_end (rtems_rfs_file_bpos (handle),
400166a8: 010ca783 lw a5,16(s9)
400166ac: 00100713 li a4,1
map->size.offset = offset;
400166b0: 0529a023 sw s2,64(s3)
map->dirty = true;
400166b4: 02e98a23 sb a4,52(s3)
400166b8: 24078263 beqz a5,400168fc <rtems_rfs_file_set_size+0x320>
400166bc: 24041063 bnez s0,400168fc <rtems_rfs_file_set_size+0x320> <== ALWAYS TAKEN
rtems_rfs_block_size_get_bpos (rtems_rfs_block_map_size (map),
400166c0: 008ca823 sw s0,16(s9)
400166c4: 012caa23 sw s2,20(s9)
400166c8: 000cac23 sw zero,24(s9)
handle->shared->size.count = rtems_rfs_block_map_count (map);
400166cc: 000a8713 mv a4,s5
rtems_rfs_block_size_get_bpos (rtems_rfs_block_map_size (map),
400166d0: 00090663 beqz s2,400166dc <rtems_rfs_file_set_size+0x100> <== NEVER TAKEN
400166d4: fff40793 addi a5,s0,-1
400166d8: 00fca823 sw a5,16(s9)
handle->shared->size.offset = rtems_rfs_block_map_size_offset (map);
400166dc: 0409a783 lw a5,64(s3)
handle->shared->size.count = rtems_rfs_block_map_count (map);
400166e0: 08872223 sw s0,132(a4)
handle->shared->size.offset = rtems_rfs_block_map_size_offset (map);
400166e4: 08f72423 sw a5,136(a4)
if (rtems_rfs_file_update_mtime (handle))
400166e8: 000ca403 lw s0,0(s9)
400166ec: 00247413 andi s0,s0,2
400166f0: 08040063 beqz s0,40016770 <rtems_rfs_file_set_size+0x194> <== ALWAYS TAKEN
return 0;
400166f4: 00000413 li s0,0 <== NOT EXECUTED
}
400166f8: 03c12083 lw ra,60(sp)
400166fc: 00040513 mv a0,s0
40016700: 03812403 lw s0,56(sp)
40016704: 03412483 lw s1,52(sp)
40016708: 03012903 lw s2,48(sp)
4001670c: 02c12983 lw s3,44(sp)
40016710: 02812a03 lw s4,40(sp)
40016714: 02412a83 lw s5,36(sp)
40016718: 02012b03 lw s6,32(sp)
4001671c: 01c12b83 lw s7,28(sp)
40016720: 01812c03 lw s8,24(sp)
40016724: 01412c83 lw s9,20(sp)
40016728: 01012d03 lw s10,16(sp)
4001672c: 04010113 addi sp,sp,64
40016730: 00008067 ret
rc = rtems_rfs_block_map_free_all (rtems_rfs_file_fs (handle), map);
40016734: 000b0593 mv a1,s6
40016738: 000d0513 mv a0,s10
4001673c: b59fd0ef jal ra,40014294 <rtems_rfs_block_map_free_all>
40016740: 00050413 mv s0,a0
if (rc > 0)
40016744: faa04ae3 bgtz a0,400166f8 <rtems_rfs_file_set_size+0x11c> <== NEVER TAKEN
handle->shared->size.count = rtems_rfs_block_map_count (map);
40016748: 01cca703 lw a4,28(s9)
4001674c: 03c9a403 lw s0,60(s3)
handle->shared->size.offset = rtems_rfs_block_map_size_offset (map);
40016750: 0409a783 lw a5,64(s3)
handle->shared->size.count = rtems_rfs_block_map_count (map);
40016754: 08872223 sw s0,132(a4)
handle->shared->size.offset = rtems_rfs_block_map_size_offset (map);
40016758: 08f72423 sw a5,136(a4)
4001675c: f8dff06f j 400166e8 <rtems_rfs_file_set_size+0x10c>
if (size != new_size)
40016760: eebc12e3 bne s8,a1,40016644 <rtems_rfs_file_set_size+0x68>
if (rtems_rfs_file_update_mtime (handle))
40016764: 000ca403 lw s0,0(s9)
40016768: 00247413 andi s0,s0,2
4001676c: f80414e3 bnez s0,400166f4 <rtems_rfs_file_set_size+0x118> <== NEVER TAKEN
handle->shared->mtime = time (NULL);
40016770: 00000513 li a0,0
40016774: 411080ef jal ra,4001f384 <time>
40016778: 01cca783 lw a5,28(s9)
4001677c: 08a7a823 sw a0,144(a5)
40016780: f79ff06f j 400166f8 <rtems_rfs_file_set_size+0x11c>
printf ("rtems-rfs: file-set-size: size=%" PRIu64 "\n", new_size);
40016784: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016788: 000b8613 mv a2,s7 <== NOT EXECUTED
4001678c: 000c0693 mv a3,s8 <== NOT EXECUTED
40016790: 93c50513 addi a0,a0,-1732 # 4002393c <IMFS_LIMITS_AND_OPTIONS+0xb5c><== NOT EXECUTED
40016794: a64eb0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40016798: e99ff06f j 40016630 <rtems_rfs_file_set_size+0x54> <== NOT EXECUTED
if (size < new_size)
4001679c: ed7576e3 bgeu a0,s7,40016668 <rtems_rfs_file_set_size+0x8c>
count = new_size - size;
400167a0: 40ab84b3 sub s1,s7,a0
400167a4: 009bb933 sltu s2,s7,s1
400167a8: 40bc05b3 sub a1,s8,a1
400167ac: 41258933 sub s2,a1,s2
read_block = false;
400167b0: 00000b93 li s7,0
if (rc != ENXIO)
400167b4: 00600c13 li s8,6
rc = rtems_rfs_buffer_handle_request (rtems_rfs_file_fs (handle),
400167b8: 004c8a93 addi s5,s9,4
400167bc: 0a40006f j 40016860 <rtems_rfs_file_set_size+0x284>
if (count < (length - bpos.boff))
400167c0: 10e4f463 bgeu s1,a4,400168c8 <rtems_rfs_file_set_size+0x2ec>
length = count + bpos.boff;
400167c4: 00978a33 add s4,a5,s1
400167c8: 00100793 li a5,1
map->size.offset = offset;
400167cc: 0549a023 sw s4,64(s3)
map->dirty = true;
400167d0: 02f98a23 sb a5,52(s3)
read_block = true;
400167d4: 00100b93 li s7,1
rc = rtems_rfs_buffer_handle_request (rtems_rfs_file_fs (handle),
400167d8: 01cca783 lw a5,28(s9)
400167dc: 00012603 lw a2,0(sp)
400167e0: 000b8693 mv a3,s7
400167e4: 0987a503 lw a0,152(a5)
400167e8: 000a8593 mv a1,s5
400167ec: d91ef0ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
400167f0: 00050413 mv s0,a0
if (rc > 0)
400167f4: f0a042e3 bgtz a0,400166f8 <rtems_rfs_file_set_size+0x11c> <== NEVER TAKEN
dst = rtems_rfs_buffer_data (&handle->buffer);
400167f8: 00cca703 lw a4,12(s9)
memset (dst + bpos.boff, 0, length - bpos.boff);
400167fc: 00812783 lw a5,8(sp)
40016800: 00000593 li a1,0
40016804: 01c72503 lw a0,28(a4)
40016808: 40fa0633 sub a2,s4,a5
4001680c: 00f50533 add a0,a0,a5
40016810: 329070ef jal ra,4001e338 <memset>
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
40016814: 01cca783 lw a5,28(s9)
rtems_rfs_buffer_mark_dirty (rtems_rfs_file_buffer (handle));
40016818: 00100713 li a4,1
4001681c: 00ec8223 sb a4,4(s9)
rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
40016820: 0987a503 lw a0,152(a5)
40016824: 000a8593 mv a1,s5
40016828: fedef0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
4001682c: 00050413 mv s0,a0
if (rc > 0)
40016830: eca044e3 bgtz a0,400166f8 <rtems_rfs_file_set_size+0x11c> <== NEVER TAKEN
count -= length - bpos.boff;
40016834: 00812783 lw a5,8(sp)
handle->shared->size.count = rtems_rfs_block_map_count (map);
40016838: 01cca703 lw a4,28(s9)
4001683c: 03c9a403 lw s0,60(s3)
count -= length - bpos.boff;
40016840: 40fa07b3 sub a5,s4,a5
40016844: 40f487b3 sub a5,s1,a5
40016848: 00f4b4b3 sltu s1,s1,a5
4001684c: 40990933 sub s2,s2,s1
40016850: 00078493 mv s1,a5
while (count)
40016854: 0127e7b3 or a5,a5,s2
40016858: e80782e3 beqz a5,400166dc <rtems_rfs_file_set_size+0x100>
rc = rtems_rfs_block_map_find (rtems_rfs_file_fs (handle),
4001685c: 09872d03 lw s10,152(a4)
rtems_rfs_block_size_get_bpos (rtems_rfs_block_map_size (map), &bpos);
40016860: 0409a783 lw a5,64(s3)
40016864: 00812223 sw s0,4(sp)
40016868: 00012623 sw zero,12(sp)
4001686c: 00f12423 sw a5,8(sp)
40016870: 00078663 beqz a5,4001687c <rtems_rfs_file_set_size+0x2a0>
40016874: fff40413 addi s0,s0,-1
40016878: 00812223 sw s0,4(sp)
rc = rtems_rfs_block_map_find (rtems_rfs_file_fs (handle),
4001687c: 00010693 mv a3,sp
40016880: 00410613 addi a2,sp,4
40016884: 000b0593 mv a1,s6
40016888: 000d0513 mv a0,s10
4001688c: 8b4fd0ef jal ra,40013940 <rtems_rfs_block_map_find>
40016890: 00050413 mv s0,a0
if (rc > 0)
40016894: 02a05463 blez a0,400168bc <rtems_rfs_file_set_size+0x2e0>
if (rc != ENXIO)
40016898: e78510e3 bne a0,s8,400166f8 <rtems_rfs_file_set_size+0x11c>
rc = rtems_rfs_block_map_grow (rtems_rfs_file_fs (handle),
4001689c: 01cca783 lw a5,28(s9)
400168a0: 00010693 mv a3,sp
400168a4: 00100613 li a2,1
400168a8: 0987a503 lw a0,152(a5)
400168ac: 000b0593 mv a1,s6
400168b0: ad8fd0ef jal ra,40013b88 <rtems_rfs_block_map_grow>
400168b4: 00050413 mv s0,a0
if (rc > 0)
400168b8: e4a040e3 bgtz a0,400166f8 <rtems_rfs_file_set_size+0x11c> <== NEVER TAKEN
if (count < (length - bpos.boff))
400168bc: 00812783 lw a5,8(sp)
400168c0: 40fa0733 sub a4,s4,a5
400168c4: ee090ee3 beqz s2,400167c0 <rtems_rfs_file_set_size+0x1e4> <== ALWAYS TAKEN
400168c8: 00100793 li a5,1
map->size.offset = offset;
400168cc: 0409a023 sw zero,64(s3)
map->dirty = true;
400168d0: 02f98a23 sb a5,52(s3)
}
400168d4: f05ff06f j 400167d8 <rtems_rfs_file_set_size+0x1fc>
rc = rtems_rfs_block_map_shrink (rtems_rfs_file_fs (handle),
400168d8: 00048613 mv a2,s1
400168dc: 034a8593 addi a1,s5,52
400168e0: 000d0513 mv a0,s10
400168e4: e88fd0ef jal ra,40013f6c <rtems_rfs_block_map_shrink>
400168e8: 00050413 mv s0,a0
if (rc > 0)
400168ec: e0a046e3 bgtz a0,400166f8 <rtems_rfs_file_set_size+0x11c> <== NEVER TAKEN
if (rtems_rfs_block_pos_past_end (rtems_rfs_file_bpos (handle),
400168f0: 03c9a403 lw s0,60(s3)
400168f4: 01ccaa83 lw s5,28(s9)
400168f8: db1ff06f j 400166a8 <rtems_rfs_file_set_size+0xcc>
400168fc: dc87f2e3 bgeu a5,s0,400166c0 <rtems_rfs_file_set_size+0xe4>
40016900: fff40713 addi a4,s0,-1
40016904: 00e78663 beq a5,a4,40016910 <rtems_rfs_file_set_size+0x334>
handle->shared->size.count = rtems_rfs_block_map_count (map);
40016908: 000a8713 mv a4,s5 <== NOT EXECUTED
4001690c: dd1ff06f j 400166dc <rtems_rfs_file_set_size+0x100> <== NOT EXECUTED
if (rtems_rfs_block_pos_past_end (rtems_rfs_file_bpos (handle),
40016910: 014ca783 lw a5,20(s9)
40016914: daf966e3 bltu s2,a5,400166c0 <rtems_rfs_file_set_size+0xe4>
handle->shared->size.count = rtems_rfs_block_map_count (map);
40016918: 000a8713 mv a4,s5
4001691c: dc1ff06f j 400166dc <rtems_rfs_file_set_size+0x100>
40006d48 <rtems_rfs_format>:
{
rtems_rfs_file_system fs;
int group;
int rc;
if (config->verbose)
40006d48: 0155c783 lbu a5,21(a1)
{
40006d4c: ef010113 addi sp,sp,-272
40006d50: 0f412c23 sw s4,248(sp)
40006d54: 0f812423 sw s8,232(sp)
40006d58: 10112623 sw ra,268(sp)
40006d5c: 10812423 sw s0,264(sp)
40006d60: 10912223 sw s1,260(sp)
40006d64: 11212023 sw s2,256(sp)
40006d68: 0f312e23 sw s3,252(sp)
40006d6c: 0f512a23 sw s5,244(sp)
40006d70: 0f612823 sw s6,240(sp)
40006d74: 0f712623 sw s7,236(sp)
40006d78: 0f912223 sw s9,228(sp)
40006d7c: 0fa12023 sw s10,224(sp)
40006d80: 0db12e23 sw s11,220(sp)
40006d84: 00058a13 mv s4,a1
40006d88: 00050c13 mv s8,a0
if (config->verbose)
40006d8c: 1e079ee3 bnez a5,40007788 <rtems_rfs_format+0xa40> <== NEVER TAKEN
printf ("rtems-rfs: format: %s\n", name);
memset (&fs, 0, sizeof (rtems_rfs_file_system));
40006d90: 08000613 li a2,128
40006d94: 00000593 li a1,0
40006d98: 05010513 addi a0,sp,80
40006d9c: 59c170ef jal ra,4001e338 <memset>
head->next = tail;
40006da0: 09410793 addi a5,sp,148
40006da4: 08f12823 sw a5,144(sp)
tail->previous = head;
40006da8: 09010793 addi a5,sp,144
40006dac: 08f12c23 sw a5,152(sp)
head->next = tail;
40006db0: 0a410793 addi a5,sp,164
40006db4: 0af12023 sw a5,160(sp)
tail->previous = head;
40006db8: 0a010793 addi a5,sp,160
40006dbc: 0af12423 sw a5,168(sp)
head->next = tail;
40006dc0: 0b410793 addi a5,sp,180
40006dc4: 0af12823 sw a5,176(sp)
tail->previous = head;
40006dc8: 0b010793 addi a5,sp,176
40006dcc: 0af12c23 sw a5,184(sp)
head->next = tail;
40006dd0: 0c410793 addi a5,sp,196
40006dd4: 0cf12023 sw a5,192(sp)
tail->previous = head;
40006dd8: 0c010793 addi a5,sp,192
40006ddc: 0cf12423 sw a5,200(sp)
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;
40006de0: 00500793 li a5,5
40006de4: 08f12623 sw a5,140(sp)
fs.flags = RTEMS_RFS_FS_NO_LOCAL_CACHE;
/*
* Open the buffer interface.
*/
rc = rtems_rfs_buffer_open (name, &fs);
40006de8: 04c10593 addi a1,sp,76
fs.flags = RTEMS_RFS_FS_NO_LOCAL_CACHE;
40006dec: 00200793 li a5,2
rc = rtems_rfs_buffer_open (name, &fs);
40006df0: 000c0513 mv a0,s8
fs.flags = RTEMS_RFS_FS_NO_LOCAL_CACHE;
40006df4: 04f12623 sw a5,76(sp)
rc = rtems_rfs_buffer_open (name, &fs);
40006df8: a31ff0ef jal ra,40006828 <rtems_rfs_buffer_open>
40006dfc: 00050413 mv s0,a0
if (rc != 0)
40006e00: 480512e3 bnez a0,40007a84 <rtems_rfs_format+0xd3c> <== NEVER TAKEN
}
/*
* Check the media.
*/
if (rtems_rfs_fs_media_block_size (&fs) == 0)
40006e04: 05c12783 lw a5,92(sp)
40006e08: 0207a603 lw a2,32(a5)
40006e0c: 400602e3 beqz a2,40007a10 <rtems_rfs_format+0xcc8> <== NEVER TAKEN
fs->block_size = config->block_size;
40006e10: 000a2583 lw a1,0(s4)
40006e14: 04b12a23 sw a1,84(sp)
if (!fs->block_size)
40006e18: 180582e3 beqz a1,4000779c <rtems_rfs_format+0xa54>
if ((fs->block_size % rtems_rfs_fs_media_block_size (fs)) != 0)
40006e1c: 02c5f7b3 remu a5,a1,a2
40006e20: 1a079ce3 bnez a5,400077d8 <rtems_rfs_format+0xa90> <== NEVER TAKEN
fs->group_blocks = config->group_blocks;
40006e24: 004a2783 lw a5,4(s4)
fs->group_blocks = rtems_rfs_bitmap_numof_bits (fs->block_size);
40006e28: 00359593 slli a1,a1,0x3
fs->group_blocks = config->group_blocks;
40006e2c: 06f12a23 sw a5,116(sp)
if (!fs->group_blocks)
40006e30: 48079463 bnez a5,400072b8 <rtems_rfs_format+0x570> <== NEVER TAKEN
fs->group_blocks = rtems_rfs_bitmap_numof_bits (fs->block_size);
40006e34: 06b12a23 sw a1,116(sp)
fs->blocks = rtems_rfs_fs_media_size (fs) / fs->block_size;
40006e38: 04c10513 addi a0,sp,76
40006e3c: 3290f0ef jal ra,40016964 <rtems_rfs_fs_media_size>
40006e40: 05412403 lw s0,84(sp)
40006e44: 00000693 li a3,0
40006e48: 00040613 mv a2,s0
40006e4c: 128160ef jal ra,4001cf74 <__udivdi3>
40006e50: 04a12823 sw a0,80(sp)
return rtems_rfs_bitmap_numof_bits (rtems_rfs_fs_block_size (fs));
40006e54: 00341593 slli a1,s0,0x3
return 1;
40006e58: 00100613 li a2,1
if (dividend == 0)
40006e5c: 00050863 beqz a0,40006e6c <rtems_rfs_format+0x124> <== NEVER TAKEN
return ((dividend - 1) / divisor) + 1;
40006e60: fff50793 addi a5,a0,-1
40006e64: 02b7d7b3 divu a5,a5,a1
40006e68: 00178613 addi a2,a5,1
fs->group_inodes = config->group_inodes;
40006e6c: 008a2683 lw a3,8(s4)
return blocks * (rtems_rfs_fs_block_size (fs) / RTEMS_RFS_INODE_SIZE);
40006e70: 03800713 li a4,56
fs->group_count = rtems_rfs_rup_quotient (rtems_rfs_fs_blocks (fs),
40006e74: 06c12823 sw a2,112(sp)
return blocks * (rtems_rfs_fs_block_size (fs) / RTEMS_RFS_INODE_SIZE);
40006e78: 02e45733 divu a4,s0,a4
if (!fs->group_inodes)
40006e7c: 46069063 bnez a3,400072dc <rtems_rfs_format+0x594> <== NEVER TAKEN
if (config->inode_overhead)
40006e80: 00ca2803 lw a6,12(s4)
40006e84: 200800e3 beqz a6,40007884 <rtems_rfs_format+0xb3c> <== ALWAYS TAKEN
blocks = ((rtems_rfs_fs_blocks (fs) -
40006e88: fff50793 addi a5,a0,-1 <== NOT EXECUTED
if (dividend == 0)
40006e8c: 06300513 li a0,99 <== NOT EXECUTED
40006e90: 00070693 mv a3,a4 <== NOT EXECUTED
RTEMS_RFS_SUPERBLOCK_SIZE) * percentage) / 100;
40006e94: 030787b3 mul a5,a5,a6 <== NOT EXECUTED
if (dividend == 0)
40006e98: 00f57e63 bgeu a0,a5,40006eb4 <rtems_rfs_format+0x16c> <== NOT EXECUTED
RTEMS_RFS_SUPERBLOCK_SIZE) * percentage) / 100;
40006e9c: 06400693 li a3,100
40006ea0: 02d7d7b3 divu a5,a5,a3
return ((dividend - 1) / divisor) + 1;
40006ea4: fff78793 addi a5,a5,-1
40006ea8: 02c7d7b3 divu a5,a5,a2
40006eac: 00178793 addi a5,a5,1
return blocks * (rtems_rfs_fs_block_size (fs) / RTEMS_RFS_INODE_SIZE);
40006eb0: 02e786b3 mul a3,a5,a4
fs->inodes_per_block = rtems_rfs_fs_block_size (fs) / RTEMS_RFS_INODE_SIZE;
40006eb4: 06e12e23 sw a4,124(sp)
if (dividend == 0)
40006eb8: 42069463 bnez a3,400072e0 <rtems_rfs_format+0x598> <== ALWAYS TAKEN
if (fs->group_inodes > rtems_rfs_bitmap_numof_bits (fs->block_size))
40006ebc: 42e5ec63 bltu a1,a4,400072f4 <rtems_rfs_format+0x5ac> <== NOT EXECUTED
fs->max_name_length = config->max_name_length;
40006ec0: 010a2783 lw a5,16(s4)
fs->group_inodes =
40006ec4: 06e12c23 sw a4,120(sp)
if (!fs->max_name_length)
40006ec8: 42079c63 bnez a5,40007300 <rtems_rfs_format+0x5b8> <== NEVER TAKEN
fs->max_name_length = 512;
40006ecc: 20000793 li a5,512
40006ed0: 06f12423 sw a5,104(sp)
{
errno = EINVAL;
return -1;
}
if (config->verbose)
40006ed4: 015a4783 lbu a5,21(s4)
40006ed8: 42079a63 bnez a5,4000730c <rtems_rfs_format+0x5c4> <== NEVER TAKEN
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));
40006edc: 00040593 mv a1,s0
40006ee0: 04c10513 addi a0,sp,76
40006ee4: c55ff0ef jal ra,40006b38 <rtems_rfs_buffer_setblksize>
40006ee8: 00050413 mv s0,a0
if (rc != 0)
40006eec: 340514e3 bnez a0,40007a34 <rtems_rfs_format+0xcec> <== NEVER TAKEN
rc = rtems_rfs_buffer_handle_request (fs, &handle, 0, false);
40006ef0: 00000693 li a3,0
40006ef4: 00000613 li a2,0
40006ef8: 02410593 addi a1,sp,36
40006efc: 04c10513 addi a0,sp,76
handle->dirty = false;
40006f00: 02010223 sb zero,36(sp)
handle->bnum = 0;
40006f04: 02012423 sw zero,40(sp)
handle->buffer = NULL;
40006f08: 02012623 sw zero,44(sp)
40006f0c: e70ff0ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
40006f10: 00050493 mv s1,a0
if (rc > 0)
40006f14: 7ea04063 bgtz a0,400076f4 <rtems_rfs_format+0x9ac> <== NEVER TAKEN
sb = rtems_rfs_buffer_data (&handle);
40006f18: 02c12783 lw a5,44(sp)
memset (sb, 0xff, rtems_rfs_fs_block_size (fs));
40006f1c: 05412603 lw a2,84(sp)
40006f20: 0ff00593 li a1,255
sb = rtems_rfs_buffer_data (&handle);
40006f24: 01c7a783 lw a5,28(a5)
memset (sb, 0xff, rtems_rfs_fs_block_size (fs));
40006f28: 00078513 mv a0,a5
40006f2c: 40c170ef jal ra,4001e338 <memset>
write_sb (RTEMS_RFS_SB_OFFSET_MAGIC, RTEMS_RFS_SB_MAGIC);
40006f30: 02800713 li a4,40
40006f34: 00e50023 sb a4,0(a0)
40006f38: 00900713 li a4,9
40006f3c: 00e500a3 sb a4,1(a0)
40006f40: 00100693 li a3,1
40006f44: 02000713 li a4,32
40006f48: 00d501a3 sb a3,3(a0)
40006f4c: 00e50123 sb a4,2(a0)
write_sb (RTEMS_RFS_SB_OFFSET_VERSION, RTEMS_RFS_VERSION);
40006f50: 00050223 sb zero,4(a0)
40006f54: 000502a3 sb zero,5(a0)
40006f58: 00050323 sb zero,6(a0)
40006f5c: 000503a3 sb zero,7(a0)
write_sb (RTEMS_RFS_SB_OFFSET_BLOCKS, rtems_rfs_fs_blocks (fs));
40006f60: 05012703 lw a4,80(sp)
memset (sb, 0xff, rtems_rfs_fs_block_size (fs));
40006f64: 00050793 mv a5,a0
rc = rtems_rfs_buffer_handle_release (fs, &handle);
40006f68: 02410593 addi a1,sp,36
write_sb (RTEMS_RFS_SB_OFFSET_BLOCKS, rtems_rfs_fs_blocks (fs));
40006f6c: 01875813 srli a6,a4,0x18
40006f70: 01075513 srli a0,a4,0x10
40006f74: 00875613 srli a2,a4,0x8
40006f78: 00a786a3 sb a0,13(a5)
40006f7c: 01078623 sb a6,12(a5)
40006f80: 00c78723 sb a2,14(a5)
write_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE, rtems_rfs_fs_block_size (fs));
40006f84: 05714603 lbu a2,87(sp)
write_sb (RTEMS_RFS_SB_OFFSET_BLOCKS, rtems_rfs_fs_blocks (fs));
40006f88: 00e787a3 sb a4,15(a5)
rc = rtems_rfs_buffer_handle_release (fs, &handle);
40006f8c: 04c10513 addi a0,sp,76
write_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE, rtems_rfs_fs_block_size (fs));
40006f90: 00c78423 sb a2,8(a5)
40006f94: 05615703 lhu a4,86(sp)
write_sb (RTEMS_RFS_SB_OFFSET_INODE_SIZE, RTEMS_RFS_INODE_SIZE);
40006f98: 03800613 li a2,56
write_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE, rtems_rfs_fs_block_size (fs));
40006f9c: 00e784a3 sb a4,9(a5)
40006fa0: 05412703 lw a4,84(sp)
40006fa4: 00875713 srli a4,a4,0x8
40006fa8: 00e78523 sb a4,10(a5)
40006fac: 05412703 lw a4,84(sp)
40006fb0: 00e785a3 sb a4,11(a5)
write_sb (RTEMS_RFS_SB_OFFSET_BAD_BLOCKS, fs->bad_blocks);
40006fb4: 06714703 lbu a4,103(sp)
40006fb8: 00e78823 sb a4,16(a5)
40006fbc: 06615703 lhu a4,102(sp)
40006fc0: 00e788a3 sb a4,17(a5)
40006fc4: 06412703 lw a4,100(sp)
40006fc8: 00875713 srli a4,a4,0x8
40006fcc: 00e78923 sb a4,18(a5)
40006fd0: 06412703 lw a4,100(sp)
40006fd4: 00e789a3 sb a4,19(a5)
write_sb (RTEMS_RFS_SB_OFFSET_MAX_NAME_LENGTH, fs->max_name_length);
40006fd8: 06b14703 lbu a4,107(sp)
40006fdc: 00e78a23 sb a4,20(a5)
40006fe0: 06a15703 lhu a4,106(sp)
40006fe4: 00e78aa3 sb a4,21(a5)
40006fe8: 06812703 lw a4,104(sp)
40006fec: 00875713 srli a4,a4,0x8
40006ff0: 00e78b23 sb a4,22(a5)
40006ff4: 06812703 lw a4,104(sp)
40006ff8: 00e78ba3 sb a4,23(a5)
write_sb (RTEMS_RFS_SB_OFFSET_GROUPS, fs->group_count);
40006ffc: 07314703 lbu a4,115(sp)
40007000: 00e78c23 sb a4,24(a5)
40007004: 07215703 lhu a4,114(sp)
40007008: 00e78ca3 sb a4,25(a5)
4000700c: 07012703 lw a4,112(sp)
40007010: 00875713 srli a4,a4,0x8
40007014: 00e78d23 sb a4,26(a5)
40007018: 07012703 lw a4,112(sp)
4000701c: 00e78da3 sb a4,27(a5)
write_sb (RTEMS_RFS_SB_OFFSET_GROUP_BLOCKS, fs->group_blocks);
40007020: 07714703 lbu a4,119(sp)
40007024: 00e78e23 sb a4,28(a5)
40007028: 07615703 lhu a4,118(sp)
4000702c: 00e78ea3 sb a4,29(a5)
40007030: 07412703 lw a4,116(sp)
40007034: 00875713 srli a4,a4,0x8
40007038: 00e78f23 sb a4,30(a5)
4000703c: 07412703 lw a4,116(sp)
40007040: 00e78fa3 sb a4,31(a5)
write_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES, fs->group_inodes);
40007044: 07b14703 lbu a4,123(sp)
40007048: 02e78023 sb a4,32(a5)
4000704c: 07a15703 lhu a4,122(sp)
40007050: 02e780a3 sb a4,33(a5)
40007054: 07812703 lw a4,120(sp)
40007058: 00875713 srli a4,a4,0x8
4000705c: 02e78123 sb a4,34(a5)
40007060: 07812703 lw a4,120(sp)
write_sb (RTEMS_RFS_SB_OFFSET_INODE_SIZE, RTEMS_RFS_INODE_SIZE);
40007064: 02c783a3 sb a2,39(a5)
40007068: 02078223 sb zero,36(a5)
write_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES, fs->group_inodes);
4000706c: 02e781a3 sb a4,35(a5)
write_sb (RTEMS_RFS_SB_OFFSET_INODE_SIZE, RTEMS_RFS_INODE_SIZE);
40007070: 020782a3 sb zero,37(a5)
40007074: 02078323 sb zero,38(a5)
rtems_rfs_buffer_mark_dirty (&handle);
40007078: 02d10223 sb a3,36(sp)
rc = rtems_rfs_buffer_handle_release (fs, &handle);
4000707c: f98ff0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
40007080: 00050493 mv s1,a0
*/
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);
40007084: 02410593 addi a1,sp,36
40007088: 04c10513 addi a0,sp,76
if (rc > 0)
4000708c: 74904e63 bgtz s1,400077e8 <rtems_rfs_format+0xaa0> <== NEVER TAKEN
40007090: f84ff0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
errno = EIO;
return -1;
}
for (group = 0; group < fs.group_count; group++)
40007094: 07012783 lw a5,112(sp)
40007098: 3cf05663 blez a5,40007464 <rtems_rfs_format+0x71c> <== NEVER TAKEN
printf ("\rrtems-rfs: format: group %3d: base = %" PRId32 ", size = %zd",
4000709c: 40022db7 lui s11,0x40022
rtems_rfs_bitmap_map_set (&bitmap, RTEMS_RFS_GROUP_INODE_BITMAP_BLOCK);
400070a0: 00100c93 li s9,1
group_base = rtems_rfs_fs_block (fs, group, 0);
400070a4: 07412483 lw s1,116(sp)
if (group_base > rtems_rfs_fs_blocks (fs))
400070a8: 05012783 lw a5,80(sp)
group_base = rtems_rfs_fs_block (fs, group, 0);
400070ac: 029409b3 mul s3,s0,s1
400070b0: 00198713 addi a4,s3,1
if (group_base > rtems_rfs_fs_blocks (fs))
400070b4: 54e7e063 bltu a5,a4,400075f4 <rtems_rfs_format+0x8ac>
if ((group_base + group_size) > rtems_rfs_fs_blocks (fs))
400070b8: 00e486b3 add a3,s1,a4
400070bc: 00d7f463 bgeu a5,a3,400070c4 <rtems_rfs_format+0x37c>
group_size = rtems_rfs_fs_blocks (fs) - group_base;
400070c0: 40e784b3 sub s1,a5,a4
if (!rtems_rfs_write_group (&fs, group,
400070c4: 015a4a83 lbu s5,21(s4)
400070c8: 014a4b03 lbu s6,20(s4)
if (verbose)
400070cc: 4e0a9863 bnez s5,400075bc <rtems_rfs_format+0x874> <== NEVER TAKEN
handle->dirty = false;
400070d0: 00010c23 sb zero,24(sp)
handle->bnum = 0;
400070d4: 00012e23 sw zero,28(sp)
handle->buffer = NULL;
400070d8: 02012023 sw zero,32(sp)
rc = rtems_rfs_bitmap_open (&bitmap, fs, &handle, group_size,
400070dc: 00048693 mv a3,s1
400070e0: 01810613 addi a2,sp,24
400070e4: 04c10593 addi a1,sp,76
400070e8: 02410513 addi a0,sp,36
400070ec: ff5fe0ef jal ra,400060e0 <rtems_rfs_bitmap_open>
400070f0: 00050913 mv s2,a0
if (rc > 0)
400070f4: 46a04e63 bgtz a0,40007570 <rtems_rfs_format+0x828> <== NEVER TAKEN
memset (rtems_rfs_buffer_data (&handle), 0xff, rtems_rfs_fs_block_size (fs));
400070f8: 02012783 lw a5,32(sp)
400070fc: 05412603 lw a2,84(sp)
40007100: 0ff00593 li a1,255
40007104: 01c7a503 lw a0,28(a5)
40007108: 230170ef jal ra,4001e338 <memset>
rc = rtems_rfs_bitmap_map_clear_all (&bitmap);
4000710c: 02410513 addi a0,sp,36
40007110: cd5fe0ef jal ra,40005de4 <rtems_rfs_bitmap_map_clear_all>
40007114: 00050913 mv s2,a0
if (rc > 0)
40007118: 4ea04863 bgtz a0,40007608 <rtems_rfs_format+0x8c0> <== NEVER TAKEN
rtems_rfs_bitmap_map_set (&bitmap, RTEMS_RFS_GROUP_BLOCK_BITMAP_BLOCK);
4000711c: 00000593 li a1,0
40007120: 02410513 addi a0,sp,36
40007124: 9a9fe0ef jal ra,40005acc <rtems_rfs_bitmap_map_set>
rtems_rfs_bitmap_map_set (&bitmap, RTEMS_RFS_GROUP_INODE_BITMAP_BLOCK);
40007128: 00100593 li a1,1
4000712c: 02410513 addi a0,sp,36
40007130: 99dfe0ef jal ra,40005acc <rtems_rfs_bitmap_map_set>
blocks = rtems_rfs_rup_quotient (fs->group_inodes, fs->inodes_per_block);
40007134: 07812903 lw s2,120(sp)
if (dividend == 0)
40007138: 50090a63 beqz s2,4000764c <rtems_rfs_format+0x904> <== NEVER TAKEN
return ((dividend - 1) / divisor) + 1;
4000713c: 07c12783 lw a5,124(sp)
40007140: fff90913 addi s2,s2,-1
40007144: 02f95933 divu s2,s2,a5
40007148: 00190b93 addi s7,s2,1
for (b = 0; b < blocks; b++)
4000714c: 03705063 blez s7,4000716c <rtems_rfs_format+0x424> <== NEVER TAKEN
40007150: 00390913 addi s2,s2,3
40007154: 00200d13 li s10,2
rtems_rfs_bitmap_map_set (&bitmap, b + RTEMS_RFS_GROUP_INODE_BLOCK);
40007158: 000d0593 mv a1,s10
4000715c: 02410513 addi a0,sp,36
for (b = 0; b < blocks; b++)
40007160: 001d0d13 addi s10,s10,1
rtems_rfs_bitmap_map_set (&bitmap, b + RTEMS_RFS_GROUP_INODE_BLOCK);
40007164: 969fe0ef jal ra,40005acc <rtems_rfs_bitmap_map_set>
for (b = 0; b < blocks; b++)
40007168: ff2d18e3 bne s10,s2,40007158 <rtems_rfs_format+0x410>
rc = rtems_rfs_bitmap_close (&bitmap);
4000716c: 02410513 addi a0,sp,36
40007170: fd5fe0ef jal ra,40006144 <rtems_rfs_bitmap_close>
40007174: 00050913 mv s2,a0
if (rc > 0)
40007178: 4ea04a63 bgtz a0,4000766c <rtems_rfs_format+0x924> <== NEVER TAKEN
rtems_rfs_buffer_mark_dirty (&handle);
4000717c: 01910c23 sb s9,24(sp)
if (verbose)
40007180: 560a9263 bnez s5,400076e4 <rtems_rfs_format+0x99c> <== NEVER TAKEN
rc = rtems_rfs_bitmap_open (&bitmap, fs, &handle, group_size,
40007184: 00048693 mv a3,s1
40007188: 00298713 addi a4,s3,2
4000718c: 01810613 addi a2,sp,24
40007190: 04c10593 addi a1,sp,76
40007194: 02410513 addi a0,sp,36
40007198: f49fe0ef jal ra,400060e0 <rtems_rfs_bitmap_open>
4000719c: 00050493 mv s1,a0
if (rc > 0)
400071a0: 50a04463 bgtz a0,400076a8 <rtems_rfs_format+0x960> <== NEVER TAKEN
memset (rtems_rfs_buffer_data (&handle), 0x00, rtems_rfs_fs_block_size (fs));
400071a4: 02012783 lw a5,32(sp)
400071a8: 05412603 lw a2,84(sp)
400071ac: 00000593 li a1,0
400071b0: 01c7a503 lw a0,28(a5)
400071b4: 184170ef jal ra,4001e338 <memset>
rc = rtems_rfs_bitmap_map_clear_all (&bitmap);
400071b8: 02410513 addi a0,sp,36
400071bc: c29fe0ef jal ra,40005de4 <rtems_rfs_bitmap_map_clear_all>
400071c0: 00050493 mv s1,a0
rtems_rfs_bitmap_close (&bitmap);
400071c4: 02410513 addi a0,sp,36
if (rc > 0)
400071c8: 58904063 bgtz s1,40007748 <rtems_rfs_format+0xa00> <== NEVER TAKEN
rc = rtems_rfs_bitmap_close (&bitmap);
400071cc: f79fe0ef jal ra,40006144 <rtems_rfs_bitmap_close>
400071d0: 00050493 mv s1,a0
if (rc > 0)
400071d4: 74a04463 bgtz a0,4000791c <rtems_rfs_format+0xbd4> <== NEVER TAKEN
rtems_rfs_buffer_mark_dirty (&handle);
400071d8: 01910c23 sb s9,24(sp)
if (initialise_inodes)
400071dc: 260b0863 beqz s6,4000744c <rtems_rfs_format+0x704> <== ALWAYS TAKEN
for (b = 0; b < blocks; b++)
400071e0: 27705663 blez s7,4000744c <rtems_rfs_format+0x704> <== NOT EXECUTED
400071e4: 00398993 addi s3,s3,3 <== NOT EXECUTED
400071e8: 013b8bb3 add s7,s7,s3 <== NOT EXECUTED
400071ec: 0200006f j 4000720c <rtems_rfs_format+0x4c4> <== NOT EXECUTED
memset (rtems_rfs_buffer_data (&handle), 0xff, rtems_rfs_fs_block_size (fs));
400071f0: 02012783 lw a5,32(sp) <== NOT EXECUTED
400071f4: 05412603 lw a2,84(sp) <== NOT EXECUTED
for (b = 0; b < blocks; b++)
400071f8: 00198993 addi s3,s3,1 <== NOT EXECUTED
memset (rtems_rfs_buffer_data (&handle), 0xff, rtems_rfs_fs_block_size (fs));
400071fc: 01c7a503 lw a0,28(a5) <== NOT EXECUTED
40007200: 138170ef jal ra,4001e338 <memset> <== NOT EXECUTED
rtems_rfs_buffer_mark_dirty (&handle);
40007204: 01910c23 sb s9,24(sp) <== NOT EXECUTED
for (b = 0; b < blocks; b++)
40007208: 253b8263 beq s7,s3,4000744c <rtems_rfs_format+0x704> <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &handle,
4000720c: 01810593 addi a1,sp,24 <== NOT EXECUTED
40007210: 00098613 mv a2,s3 <== NOT EXECUTED
40007214: 00000693 li a3,0 <== NOT EXECUTED
40007218: 04c10513 addi a0,sp,76 <== NOT EXECUTED
4000721c: b60ff0ef jal ra,4000657c <rtems_rfs_buffer_handle_request> <== NOT EXECUTED
memset (rtems_rfs_buffer_data (&handle), 0xff, rtems_rfs_fs_block_size (fs));
40007220: 0ff00593 li a1,255 <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &handle,
40007224: 00050493 mv s1,a0 <== NOT EXECUTED
if (rc > 0)
40007228: fca054e3 blez a0,400071f0 <rtems_rfs_format+0x4a8> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4000722c: 01810593 addi a1,sp,24 <== NOT EXECUTED
40007230: 04c10513 addi a0,sp,76 <== NOT EXECUTED
40007234: de0ff0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: block %" PRId32 " request failed: %d: %s\n",
40007238: 00048513 mv a0,s1 <== NOT EXECUTED
handle->dirty = false;
4000723c: 00010c23 sb zero,24(sp) <== NOT EXECUTED
handle->bnum = 0;
40007240: 00012e23 sw zero,28(sp) <== NOT EXECUTED
handle->buffer = NULL;
40007244: 02012023 sw zero,32(sp) <== NOT EXECUTED
40007248: 51d170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
4000724c: 00050713 mv a4,a0 <== NOT EXECUTED
40007250: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007254: 00040593 mv a1,s0 <== NOT EXECUTED
40007258: 00048693 mv a3,s1 <== NOT EXECUTED
4000725c: 00098613 mv a2,s3 <== NOT EXECUTED
40007260: 04050513 addi a0,a0,64 # 40022040 <IMFS_node_control_sym_link+0xae0><== NOT EXECUTED
40007264: f94fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
config->initialise_inodes, config->verbose))
{
errno = EIO;
40007268: 221160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
4000726c: 00500793 li a5,5 <== NOT EXECUTED
40007270: 00f52023 sw a5,0(a0) <== NOT EXECUTED
return -1;
40007274: fff00413 li s0,-1 <== NOT EXECUTED
errno = rc;
return -1;
}
return 0;
}
40007278: 10c12083 lw ra,268(sp)
4000727c: 00040513 mv a0,s0
40007280: 10812403 lw s0,264(sp)
40007284: 10412483 lw s1,260(sp)
40007288: 10012903 lw s2,256(sp)
4000728c: 0fc12983 lw s3,252(sp)
40007290: 0f812a03 lw s4,248(sp)
40007294: 0f412a83 lw s5,244(sp)
40007298: 0f012b03 lw s6,240(sp)
4000729c: 0ec12b83 lw s7,236(sp)
400072a0: 0e812c03 lw s8,232(sp)
400072a4: 0e412c83 lw s9,228(sp)
400072a8: 0e012d03 lw s10,224(sp)
400072ac: 0dc12d83 lw s11,220(sp)
400072b0: 11010113 addi sp,sp,272
400072b4: 00008067 ret
if (fs->group_blocks > rtems_rfs_bitmap_numof_bits (fs->block_size))
400072b8: b8f5f0e3 bgeu a1,a5,40006e38 <rtems_rfs_format+0xf0> <== NOT EXECUTED
printf ("group block count is higher than bits in block\n");
400072bc: 40022537 lui a0,0x40022 <== NOT EXECUTED
400072c0: b2050513 addi a0,a0,-1248 # 40021b20 <IMFS_node_control_sym_link+0x5c0><== NOT EXECUTED
400072c4: f7cfa0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
errno = EINVAL;
400072c8: 1c1160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
400072cc: 01600793 li a5,22 <== NOT EXECUTED
400072d0: 00f52023 sw a5,0(a0) <== NOT EXECUTED
return -1;
400072d4: fff00413 li s0,-1 <== NOT EXECUTED
400072d8: fa1ff06f j 40007278 <rtems_rfs_format+0x530> <== NOT EXECUTED
fs->inodes_per_block = rtems_rfs_fs_block_size (fs) / RTEMS_RFS_INODE_SIZE;
400072dc: 06e12e23 sw a4,124(sp) <== NOT EXECUTED
return ((dividend - 1) / divisor) + 1;
400072e0: fff68793 addi a5,a3,-1
400072e4: 02e7d7b3 divu a5,a5,a4
400072e8: 00178793 addi a5,a5,1
fs->inodes_per_block) * fs->inodes_per_block;
400072ec: 02f70733 mul a4,a4,a5
if (fs->group_inodes > rtems_rfs_bitmap_numof_bits (fs->block_size))
400072f0: bce5f8e3 bgeu a1,a4,40006ec0 <rtems_rfs_format+0x178>
fs->max_name_length = config->max_name_length;
400072f4: 010a2783 lw a5,16(s4) <== NOT EXECUTED
fs->group_inodes = rtems_rfs_bitmap_numof_bits (fs->block_size);
400072f8: 06b12c23 sw a1,120(sp) <== NOT EXECUTED
if (!fs->max_name_length)
400072fc: bc0788e3 beqz a5,40006ecc <rtems_rfs_format+0x184> <== NOT EXECUTED
fs->max_name_length = config->max_name_length;
40007300: 06f12423 sw a5,104(sp) <== NOT EXECUTED
if (config->verbose)
40007304: 015a4783 lbu a5,21(s4) <== NOT EXECUTED
40007308: bc078ae3 beqz a5,40006edc <rtems_rfs_format+0x194> <== NOT EXECUTED
printf ("rtems-rfs: format: media size = %" PRIu64 "\n",
4000730c: 04c10513 addi a0,sp,76 <== NOT EXECUTED
40007310: 6540f0ef jal ra,40016964 <rtems_rfs_fs_media_size> <== NOT EXECUTED
40007314: 00050613 mv a2,a0 <== NOT EXECUTED
40007318: 40022537 lui a0,0x40022 <== NOT EXECUTED
4000731c: 00058693 mv a3,a1 <== NOT EXECUTED
40007320: b5050513 addi a0,a0,-1200 # 40021b50 <IMFS_node_control_sym_link+0x5f0><== NOT EXECUTED
40007324: ed4fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf ("rtems-rfs: format: media blocks = %" PRIu32 "\n",
40007328: 05c12783 lw a5,92(sp) <== NOT EXECUTED
4000732c: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007330: b7850513 addi a0,a0,-1160 # 40021b78 <IMFS_node_control_sym_link+0x618><== NOT EXECUTED
40007334: 01c7a583 lw a1,28(a5) <== NOT EXECUTED
40007338: ec0fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf ("rtems-rfs: format: media block size = %" PRIu32 "\n",
4000733c: 05c12783 lw a5,92(sp) <== NOT EXECUTED
40007340: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007344: ba050513 addi a0,a0,-1120 # 40021ba0 <IMFS_node_control_sym_link+0x640><== NOT EXECUTED
40007348: 0207a583 lw a1,32(a5) <== NOT EXECUTED
4000734c: eacfa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf ("rtems-rfs: format: size = %" PRIu64 "\n",
40007350: 04c10513 addi a0,sp,76 <== NOT EXECUTED
40007354: 5fc0f0ef jal ra,40016950 <rtems_rfs_fs_size> <== NOT EXECUTED
40007358: 00050613 mv a2,a0 <== NOT EXECUTED
4000735c: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007360: 00058693 mv a3,a1 <== NOT EXECUTED
40007364: bcc50513 addi a0,a0,-1076 # 40021bcc <IMFS_node_control_sym_link+0x66c><== NOT EXECUTED
40007368: e90fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf ("rtems-rfs: format: blocks = %zu\n",
4000736c: 05012583 lw a1,80(sp) <== NOT EXECUTED
40007370: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007374: bec50513 addi a0,a0,-1044 # 40021bec <IMFS_node_control_sym_link+0x68c><== NOT EXECUTED
40007378: e80fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf ("rtems-rfs: format: block size = %zu\n",
4000737c: 05412583 lw a1,84(sp) <== NOT EXECUTED
40007380: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007384: c1050513 addi a0,a0,-1008 # 40021c10 <IMFS_node_control_sym_link+0x6b0><== NOT EXECUTED
40007388: e70fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf ("rtems-rfs: format: bits per block = %u\n",
4000738c: 05412583 lw a1,84(sp) <== NOT EXECUTED
40007390: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007394: c3850513 addi a0,a0,-968 # 40021c38 <IMFS_node_control_sym_link+0x6d8><== NOT EXECUTED
40007398: 00359593 slli a1,a1,0x3 <== NOT EXECUTED
4000739c: e5cfa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf ("rtems-rfs: format: inode size = %zu\n", RTEMS_RFS_INODE_SIZE);
400073a0: 40022537 lui a0,0x40022 <== NOT EXECUTED
400073a4: 03800593 li a1,56 <== NOT EXECUTED
400073a8: c6050513 addi a0,a0,-928 # 40021c60 <IMFS_node_control_sym_link+0x700><== NOT EXECUTED
400073ac: e4cfa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
fs.group_inodes * fs.group_count,
400073b0: 07812703 lw a4,120(sp) <== NOT EXECUTED
printf ("rtems-rfs: format: inodes = %zu (%d.%d%%)\n",
400073b4: 07012583 lw a1,112(sp) <== NOT EXECUTED
blocks = rtems_rfs_rup_quotient(fs->group_inodes * RTEMS_RFS_INODE_SIZE,
400073b8: 05412683 lw a3,84(sp) <== NOT EXECUTED
400073bc: 00371793 slli a5,a4,0x3 <== NOT EXECUTED
400073c0: 40e787b3 sub a5,a5,a4 <== NOT EXECUTED
400073c4: 00379793 slli a5,a5,0x3 <== NOT EXECUTED
printf ("rtems-rfs: format: inodes = %zu (%d.%d%%)\n",
400073c8: 02b705b3 mul a1,a4,a1 <== NOT EXECUTED
if (dividend == 0)
400073cc: 7d000713 li a4,2000 <== NOT EXECUTED
400073d0: 00078c63 beqz a5,400073e8 <rtems_rfs_format+0x6a0> <== NOT EXECUTED
return ((dividend - 1) / divisor) + 1;
400073d4: fff78793 addi a5,a5,-1 <== NOT EXECUTED
return ((blocks + 1) * 100 * 10) / bits_per_block;
400073d8: 3e800713 li a4,1000 <== NOT EXECUTED
return ((dividend - 1) / divisor) + 1;
400073dc: 02d7d7b3 divu a5,a5,a3 <== NOT EXECUTED
return ((blocks + 1) * 100 * 10) / bits_per_block;
400073e0: 00278793 addi a5,a5,2 <== NOT EXECUTED
400073e4: 02e78733 mul a4,a5,a4 <== NOT EXECUTED
400073e8: 05012783 lw a5,80(sp) <== NOT EXECUTED
return rtems_rfs_bitmap_numof_bits (rtems_rfs_fs_block_size (fs));
400073ec: 00369693 slli a3,a3,0x3 <== NOT EXECUTED
return ((blocks + 1) * 100 * 10) / bits_per_block;
400073f0: fff78793 addi a5,a5,-1 <== NOT EXECUTED
400073f4: 48f6e463 bltu a3,a5,4000787c <rtems_rfs_format+0xb34> <== NOT EXECUTED
printf ("rtems-rfs: format: inodes = %zu (%d.%d%%)\n",
400073f8: 00a00613 li a2,10 <== NOT EXECUTED
400073fc: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007400: c8850513 addi a0,a0,-888 # 40021c88 <IMFS_node_control_sym_link+0x728><== NOT EXECUTED
return ((blocks + 1) * 100 * 10) / bits_per_block;
40007404: 02f747b3 div a5,a4,a5 <== NOT EXECUTED
printf ("rtems-rfs: format: inodes = %zu (%d.%d%%)\n",
40007408: 02c7e6b3 rem a3,a5,a2 <== NOT EXECUTED
4000740c: 02c7c633 div a2,a5,a2 <== NOT EXECUTED
40007410: de8fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf ("rtems-rfs: format: groups = %u\n", fs.group_count);
40007414: 07012583 lw a1,112(sp) <== NOT EXECUTED
40007418: 40022537 lui a0,0x40022 <== NOT EXECUTED
4000741c: cb450513 addi a0,a0,-844 # 40021cb4 <IMFS_node_control_sym_link+0x754><== NOT EXECUTED
40007420: dd8fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf ("rtems-rfs: format: group blocks = %zu\n", fs.group_blocks);
40007424: 07412583 lw a1,116(sp) <== NOT EXECUTED
40007428: 40022537 lui a0,0x40022 <== NOT EXECUTED
4000742c: cd450513 addi a0,a0,-812 # 40021cd4 <IMFS_node_control_sym_link+0x774><== NOT EXECUTED
40007430: dc8fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf ("rtems-rfs: format: group inodes = %zu\n", fs.group_inodes);
40007434: 07812583 lw a1,120(sp) <== NOT EXECUTED
40007438: 40022537 lui a0,0x40022 <== NOT EXECUTED
4000743c: cfc50513 addi a0,a0,-772 # 40021cfc <IMFS_node_control_sym_link+0x79c><== NOT EXECUTED
40007440: db8fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rc = rtems_rfs_buffer_setblksize (&fs, rtems_rfs_fs_block_size (&fs));
40007444: 05412403 lw s0,84(sp) <== NOT EXECUTED
40007448: a95ff06f j 40006edc <rtems_rfs_format+0x194> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4000744c: 01810593 addi a1,sp,24
40007450: 04c10513 addi a0,sp,76
40007454: bc0ff0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
for (group = 0; group < fs.group_count; group++)
40007458: 07012783 lw a5,112(sp)
4000745c: 00140413 addi s0,s0,1
40007460: c4f442e3 blt s0,a5,400070a4 <rtems_rfs_format+0x35c>
if (config->verbose)
40007464: 015a4783 lbu a5,21(s4)
40007468: 4a079463 bnez a5,40007910 <rtems_rfs_format+0xbc8> <== NEVER TAKEN
rc = rtems_rfs_buffer_close (&fs);
4000746c: 04c10513 addi a0,sp,76
40007470: ff4ff0ef jal ra,40006c64 <rtems_rfs_buffer_close>
40007474: 00050413 mv s0,a0
if (rc != 0)
40007478: 5e051263 bnez a0,40007a5c <rtems_rfs_format+0xd14> <== NEVER TAKEN
rc = rtems_rfs_fs_open (name, NULL,
4000747c: 01410713 addi a4,sp,20
40007480: 00000693 li a3,0
40007484: 00600613 li a2,6
40007488: 00000593 li a1,0
4000748c: 000c0513 mv a0,s8
40007490: 4ec0f0ef jal ra,4001697c <rtems_rfs_fs_open>
if (rc != 0)
40007494: 44051863 bnez a0,400078e4 <rtems_rfs_format+0xb9c> <== NEVER TAKEN
rc = rtems_rfs_inode_alloc (fs, RTEMS_RFS_ROOT_INO, &ino);
40007498: 01412503 lw a0,20(sp)
4000749c: 01810613 addi a2,sp,24
400074a0: 00100593 li a1,1
400074a4: 4e9000ef jal ra,4000818c <rtems_rfs_inode_alloc>
400074a8: 00050413 mv s0,a0
if (rc != 0)
400074ac: 4a051663 bnez a0,40007958 <rtems_rfs_format+0xc10> <== NEVER TAKEN
if (ino != RTEMS_RFS_ROOT_INO)
400074b0: 01812583 lw a1,24(sp)
400074b4: 00100793 li a5,1
400074b8: 3ef59463 bne a1,a5,400078a0 <rtems_rfs_format+0xb58>
rc = rtems_rfs_inode_open (fs, ino, &inode, true);
400074bc: 01412503 lw a0,20(sp)
400074c0: 00100693 li a3,1
400074c4: 02410613 addi a2,sp,36
400074c8: 00100593 li a1,1
400074cc: 5b5000ef jal ra,40008280 <rtems_rfs_inode_open>
400074d0: 00050413 mv s0,a0
if (rc != 0)
400074d4: 4a051a63 bnez a0,40007988 <rtems_rfs_format+0xc40> <== NEVER TAKEN
rc = rtems_rfs_inode_initialise (&inode, 0,
400074d8: 00004637 lui a2,0x4
400074dc: 00000713 li a4,0
400074e0: 00000693 li a3,0
400074e4: 1c960613 addi a2,a2,457 # 41c9 <bsp_section_rtemsstack_size+0x21c9>
400074e8: 00000593 li a1,0
400074ec: 02410513 addi a0,sp,36
400074f0: 28c010ef jal ra,4000877c <rtems_rfs_inode_initialise>
400074f4: 00050413 mv s0,a0
if (rc != 0)
400074f8: 4e051e63 bnez a0,400079f4 <rtems_rfs_format+0xcac> <== NEVER TAKEN
rc = rtems_rfs_dir_add_entry (fs, &inode, ".", 1, ino);
400074fc: 01812703 lw a4,24(sp)
40007500: 01412503 lw a0,20(sp)
40007504: 40021637 lui a2,0x40021
40007508: 00100693 li a3,1
4000750c: 10460613 addi a2,a2,260 # 40021104 <rtems_filesystem_table+0x74>
40007510: 02410593 addi a1,sp,36
40007514: 3600d0ef jal ra,40014874 <rtems_rfs_dir_add_entry>
40007518: 00050413 mv s0,a0
if (rc != 0)
4000751c: 4a051e63 bnez a0,400079d8 <rtems_rfs_format+0xc90> <== NEVER TAKEN
rc = rtems_rfs_inode_close (fs, &inode);
40007520: 01412503 lw a0,20(sp)
40007524: 02410593 addi a1,sp,36
40007528: 785000ef jal ra,400084ac <rtems_rfs_inode_close>
4000752c: 00050413 mv s0,a0
if (rc != 0)
40007530: 48051663 bnez a0,400079bc <rtems_rfs_format+0xc74> <== NEVER TAKEN
rc = rtems_rfs_fs_close (fs);
40007534: 01412503 lw a0,20(sp)
40007538: 4290f0ef jal ra,40017160 <rtems_rfs_fs_close>
4000753c: 00050413 mv s0,a0
if (rc != 0)
40007540: d2050ce3 beqz a0,40007278 <rtems_rfs_format+0x530> <== ALWAYS TAKEN
rc = errno;
40007544: 744160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40007548: 00052403 lw s0,0(a0) <== NOT EXECUTED
printf ("rtems-rfs: format: file system close failed: %d: %s\n",
4000754c: 00040513 mv a0,s0 <== NOT EXECUTED
40007550: 215170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40007554: 00050613 mv a2,a0 <== NOT EXECUTED
40007558: 40022537 lui a0,0x40022 <== NOT EXECUTED
4000755c: 00040593 mv a1,s0 <== NOT EXECUTED
40007560: 22050513 addi a0,a0,544 # 40022220 <IMFS_node_control_sym_link+0xcc0><== NOT EXECUTED
40007564: c94fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (rc != 0)
40007568: d00408e3 beqz s0,40007278 <rtems_rfs_format+0x530> <== NOT EXECUTED
4000756c: 34c0006f j 400078b8 <rtems_rfs_format+0xb70> <== NOT EXECUTED
40007570: 01810593 addi a1,sp,24 <== NOT EXECUTED
40007574: 04c10513 addi a0,sp,76 <== NOT EXECUTED
40007578: a9cff0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: open block bitmap failed: %d: %s\n",
4000757c: 00090513 mv a0,s2 <== NOT EXECUTED
handle->dirty = false;
40007580: 00010c23 sb zero,24(sp) <== NOT EXECUTED
handle->bnum = 0;
40007584: 00012e23 sw zero,28(sp) <== NOT EXECUTED
handle->buffer = NULL;
40007588: 02012023 sw zero,32(sp) <== NOT EXECUTED
4000758c: 1d9170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40007590: 00050693 mv a3,a0 <== NOT EXECUTED
40007594: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007598: 00090613 mv a2,s2 <== NOT EXECUTED
4000759c: 00040593 mv a1,s0 <== NOT EXECUTED
400075a0: e7c50513 addi a0,a0,-388 # 40021e7c <IMFS_node_control_sym_link+0x91c><== NOT EXECUTED
400075a4: c54fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
errno = EIO;
400075a8: 6e0160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
400075ac: 00500793 li a5,5 <== NOT EXECUTED
400075b0: 00f52023 sw a5,0(a0) <== NOT EXECUTED
return -1;
400075b4: fff00413 li s0,-1 <== NOT EXECUTED
400075b8: cc1ff06f j 40007278 <rtems_rfs_format+0x530> <== NOT EXECUTED
printf ("\rrtems-rfs: format: group %3d: base = %" PRId32 ", size = %zd",
400075bc: 00070613 mv a2,a4 <== NOT EXECUTED
400075c0: 00048693 mv a3,s1 <== NOT EXECUTED
400075c4: 00040593 mv a1,s0 <== NOT EXECUTED
400075c8: e38d8513 addi a0,s11,-456 # 40021e38 <IMFS_node_control_sym_link+0x8d8><== NOT EXECUTED
400075cc: 00e12623 sw a4,12(sp) <== NOT EXECUTED
400075d0: c28fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf (", blocks");
400075d4: 400227b7 lui a5,0x40022 <== NOT EXECUTED
400075d8: e7078513 addi a0,a5,-400 # 40021e70 <IMFS_node_control_sym_link+0x910><== NOT EXECUTED
handle->dirty = false;
400075dc: 00010c23 sb zero,24(sp) <== NOT EXECUTED
handle->bnum = 0;
400075e0: 00012e23 sw zero,28(sp) <== NOT EXECUTED
handle->buffer = NULL;
400075e4: 02012023 sw zero,32(sp) <== NOT EXECUTED
400075e8: c10fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400075ec: 00c12703 lw a4,12(sp) <== NOT EXECUTED
400075f0: aedff06f j 400070dc <rtems_rfs_format+0x394> <== NOT EXECUTED
printf ("rtems-rfs: write-group: group %d base beyond disk limit\n",
400075f4: 40022537 lui a0,0x40022 <== NOT EXECUTED
400075f8: 00040593 mv a1,s0 <== NOT EXECUTED
400075fc: dfc50513 addi a0,a0,-516 # 40021dfc <IMFS_node_control_sym_link+0x89c><== NOT EXECUTED
40007600: bf8fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return false;
40007604: fa5ff06f j 400075a8 <rtems_rfs_format+0x860> <== NOT EXECUTED
rtems_rfs_bitmap_close (&bitmap);
40007608: 02410513 addi a0,sp,36 <== NOT EXECUTED
4000760c: b39fe0ef jal ra,40006144 <rtems_rfs_bitmap_close> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40007610: 01810593 addi a1,sp,24 <== NOT EXECUTED
40007614: 04c10513 addi a0,sp,76 <== NOT EXECUTED
40007618: 9fcff0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: block bitmap clear all failed: %d: %s\n",
4000761c: 00090513 mv a0,s2 <== NOT EXECUTED
handle->dirty = false;
40007620: 00010c23 sb zero,24(sp) <== NOT EXECUTED
handle->bnum = 0;
40007624: 00012e23 sw zero,28(sp) <== NOT EXECUTED
handle->buffer = NULL;
40007628: 02012023 sw zero,32(sp) <== NOT EXECUTED
4000762c: 139170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40007630: 00050693 mv a3,a0 <== NOT EXECUTED
40007634: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007638: 00090613 mv a2,s2 <== NOT EXECUTED
4000763c: 00040593 mv a1,s0 <== NOT EXECUTED
40007640: ec450513 addi a0,a0,-316 # 40021ec4 <IMFS_node_control_sym_link+0x964><== NOT EXECUTED
40007644: bb4fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return false;
40007648: f61ff06f j 400075a8 <rtems_rfs_format+0x860> <== NOT EXECUTED
rtems_rfs_bitmap_map_set (&bitmap, b + RTEMS_RFS_GROUP_INODE_BLOCK);
4000764c: 00200593 li a1,2 <== NOT EXECUTED
40007650: 02410513 addi a0,sp,36 <== NOT EXECUTED
40007654: c78fe0ef jal ra,40005acc <rtems_rfs_bitmap_map_set> <== NOT EXECUTED
rc = rtems_rfs_bitmap_close (&bitmap);
40007658: 02410513 addi a0,sp,36 <== NOT EXECUTED
4000765c: ae9fe0ef jal ra,40006144 <rtems_rfs_bitmap_close> <== NOT EXECUTED
return 1;
40007660: 00100b93 li s7,1 <== NOT EXECUTED
rc = rtems_rfs_bitmap_close (&bitmap);
40007664: 00050913 mv s2,a0 <== NOT EXECUTED
if (rc > 0)
40007668: b0a05ae3 blez a0,4000717c <rtems_rfs_format+0x434> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4000766c: 01810593 addi a1,sp,24 <== NOT EXECUTED
40007670: 04c10513 addi a0,sp,76 <== NOT EXECUTED
40007674: 9a0ff0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: close block bitmap failed: %d: %s\n",
40007678: 00090513 mv a0,s2 <== NOT EXECUTED
handle->dirty = false;
4000767c: 00010c23 sb zero,24(sp) <== NOT EXECUTED
handle->bnum = 0;
40007680: 00012e23 sw zero,28(sp) <== NOT EXECUTED
handle->buffer = NULL;
40007684: 02012023 sw zero,32(sp) <== NOT EXECUTED
40007688: 0dd170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
4000768c: 00050693 mv a3,a0 <== NOT EXECUTED
40007690: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007694: 00090613 mv a2,s2 <== NOT EXECUTED
40007698: 00040593 mv a1,s0 <== NOT EXECUTED
4000769c: f1050513 addi a0,a0,-240 # 40021f10 <IMFS_node_control_sym_link+0x9b0><== NOT EXECUTED
400076a0: b58fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return false;
400076a4: f05ff06f j 400075a8 <rtems_rfs_format+0x860> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
400076a8: 01810593 addi a1,sp,24 <== NOT EXECUTED
400076ac: 04c10513 addi a0,sp,76 <== NOT EXECUTED
400076b0: 964ff0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: open inode bitmap failed: %d: %s\n",
400076b4: 00048513 mv a0,s1 <== NOT EXECUTED
handle->dirty = false;
400076b8: 00010c23 sb zero,24(sp) <== NOT EXECUTED
handle->bnum = 0;
400076bc: 00012e23 sw zero,28(sp) <== NOT EXECUTED
handle->buffer = NULL;
400076c0: 02012023 sw zero,32(sp) <== NOT EXECUTED
400076c4: 0a1170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400076c8: 00050693 mv a3,a0 <== NOT EXECUTED
400076cc: 40022537 lui a0,0x40022 <== NOT EXECUTED
400076d0: 00048613 mv a2,s1 <== NOT EXECUTED
400076d4: 00040593 mv a1,s0 <== NOT EXECUTED
400076d8: f6450513 addi a0,a0,-156 # 40021f64 <IMFS_node_control_sym_link+0xa04><== NOT EXECUTED
400076dc: b1cfa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return false;
400076e0: ec9ff06f j 400075a8 <rtems_rfs_format+0x860> <== NOT EXECUTED
printf (", inodes");
400076e4: 400227b7 lui a5,0x40022 <== NOT EXECUTED
400076e8: f5878513 addi a0,a5,-168 # 40021f58 <IMFS_node_control_sym_link+0x9f8><== NOT EXECUTED
400076ec: b0cfa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400076f0: a95ff06f j 40007184 <rtems_rfs_format+0x43c> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
400076f4: 02410593 addi a1,sp,36 <== NOT EXECUTED
400076f8: 04c10513 addi a0,sp,76 <== NOT EXECUTED
400076fc: 918ff0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
printf ("rtems-rfs: write-superblock: request failed: %d: %s\n",
40007700: 00048513 mv a0,s1 <== NOT EXECUTED
handle->dirty = false;
40007704: 02010223 sb zero,36(sp) <== NOT EXECUTED
handle->bnum = 0;
40007708: 02012423 sw zero,40(sp) <== NOT EXECUTED
handle->buffer = NULL;
4000770c: 02012623 sw zero,44(sp) <== NOT EXECUTED
40007710: 055170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40007714: 00050613 mv a2,a0 <== NOT EXECUTED
40007718: 40022537 lui a0,0x40022 <== NOT EXECUTED
4000771c: 00048593 mv a1,s1 <== NOT EXECUTED
40007720: d5c50513 addi a0,a0,-676 # 40021d5c <IMFS_node_control_sym_link+0x7fc><== NOT EXECUTED
40007724: ad4fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
printf ("rtems-rfs: format: superblock write failed\n");
40007728: 40022537 lui a0,0x40022 <== NOT EXECUTED
4000772c: dd050513 addi a0,a0,-560 # 40021dd0 <IMFS_node_control_sym_link+0x870><== NOT EXECUTED
40007730: b10fa0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
errno = EIO;
40007734: 554160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40007738: 00500793 li a5,5 <== NOT EXECUTED
4000773c: 00f52023 sw a5,0(a0) <== NOT EXECUTED
return -1;
40007740: fff00413 li s0,-1 <== NOT EXECUTED
40007744: b35ff06f j 40007278 <rtems_rfs_format+0x530> <== NOT EXECUTED
rtems_rfs_bitmap_close (&bitmap);
40007748: 9fdfe0ef jal ra,40006144 <rtems_rfs_bitmap_close> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4000774c: 01810593 addi a1,sp,24 <== NOT EXECUTED
40007750: 04c10513 addi a0,sp,76 <== NOT EXECUTED
40007754: 8c0ff0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: inode bitmap" \
40007758: 00048513 mv a0,s1 <== NOT EXECUTED
handle->dirty = false;
4000775c: 00010c23 sb zero,24(sp) <== NOT EXECUTED
handle->bnum = 0;
40007760: 00012e23 sw zero,28(sp) <== NOT EXECUTED
handle->buffer = NULL;
40007764: 02012023 sw zero,32(sp) <== NOT EXECUTED
40007768: 7fc170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
4000776c: 00050693 mv a3,a0 <== NOT EXECUTED
40007770: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007774: 00048613 mv a2,s1 <== NOT EXECUTED
40007778: 00040593 mv a1,s0 <== NOT EXECUTED
4000777c: fac50513 addi a0,a0,-84 # 40021fac <IMFS_node_control_sym_link+0xa4c><== NOT EXECUTED
40007780: a78fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return false;
40007784: e25ff06f j 400075a8 <rtems_rfs_format+0x860> <== NOT EXECUTED
printf ("rtems-rfs: format: %s\n", name);
40007788: 00050593 mv a1,a0 <== NOT EXECUTED
4000778c: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007790: a7050513 addi a0,a0,-1424 # 40021a70 <IMFS_node_control_sym_link+0x510><== NOT EXECUTED
40007794: a64fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40007798: df8ff06f j 40006d90 <rtems_rfs_format+0x48> <== NOT EXECUTED
uint64_t total_size = rtems_rfs_fs_media_size (fs);
4000779c: 04c10513 addi a0,sp,76
400077a0: 1c40f0ef jal ra,40016964 <rtems_rfs_fs_media_size>
if (total_size >= GIGS (1))
400077a4: 06059a63 bnez a1,40007818 <rtems_rfs_format+0xad0> <== NEVER TAKEN
400077a8: 001007b7 lui a5,0x100
400077ac: 06f57663 bgeu a0,a5,40007818 <rtems_rfs_format+0xad0>
if ((fs->block_size % rtems_rfs_fs_media_block_size (fs)) != 0)
400077b0: 05c12703 lw a4,92(sp)
if (fs->block_size < 512)
400077b4: 05412583 lw a1,84(sp)
400077b8: 1ff00793 li a5,511
if ((fs->block_size % rtems_rfs_fs_media_block_size (fs)) != 0)
400077bc: 02072603 lw a2,32(a4) # 6020 <bsp_section_bss_size+0xa70>
if (fs->block_size < 512)
400077c0: 0ab7e463 bltu a5,a1,40007868 <rtems_rfs_format+0xb20>
fs->block_size = 512;
400077c4: 20000793 li a5,512
400077c8: 20000593 li a1,512
400077cc: 04f12a23 sw a5,84(sp)
if ((fs->block_size % rtems_rfs_fs_media_block_size (fs)) != 0)
400077d0: 02c5f7b3 remu a5,a1,a2
400077d4: e4078863 beqz a5,40006e24 <rtems_rfs_format+0xdc> <== ALWAYS TAKEN
printf ("block size (%zd) is not a multiple of media block size (%" PRId32 ")\n",
400077d8: 40022537 lui a0,0x40022 <== NOT EXECUTED
400077dc: ae050513 addi a0,a0,-1312 # 40021ae0 <IMFS_node_control_sym_link+0x580><== NOT EXECUTED
400077e0: a18fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return false;
400077e4: ae5ff06f j 400072c8 <rtems_rfs_format+0x580> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
400077e8: 82cff0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
printf ("rtems-rfs: write-superblock: buffer release failed: %d: %s\n",
400077ec: 00048513 mv a0,s1 <== NOT EXECUTED
handle->dirty = false;
400077f0: 02010223 sb zero,36(sp) <== NOT EXECUTED
handle->bnum = 0;
400077f4: 02012423 sw zero,40(sp) <== NOT EXECUTED
handle->buffer = NULL;
400077f8: 02012623 sw zero,44(sp) <== NOT EXECUTED
400077fc: 768170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40007800: 00050613 mv a2,a0 <== NOT EXECUTED
40007804: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007808: 00048593 mv a1,s1 <== NOT EXECUTED
4000780c: d9450513 addi a0,a0,-620 # 40021d94 <IMFS_node_control_sym_link+0x834><== NOT EXECUTED
40007810: 9e8fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return false;
40007814: f15ff06f j 40007728 <rtems_rfs_format+0x9e0> <== NOT EXECUTED
uint32_t gigs = (total_size + GIGS (1)) / GIGS (1);
40007818: 001007b7 lui a5,0x100 <== NOT EXECUTED
4000781c: 00f507b3 add a5,a0,a5 <== NOT EXECUTED
40007820: 00a7b733 sltu a4,a5,a0 <== NOT EXECUTED
40007824: 00b70733 add a4,a4,a1 <== NOT EXECUTED
40007828: 0147d793 srli a5,a5,0x14 <== NOT EXECUTED
4000782c: 00c71713 slli a4,a4,0xc <== NOT EXECUTED
40007830: 00f76733 or a4,a4,a5 <== NOT EXECUTED
if ((gigs & (1 << b)) != 0)
40007834: 00100613 li a2,1 <== NOT EXECUTED
for (b = 31; b > 0; b--)
40007838: 01f00793 li a5,31 <== NOT EXECUTED
4000783c: 0080006f j 40007844 <rtems_rfs_format+0xafc> <== NOT EXECUTED
40007840: 12078e63 beqz a5,4000797c <rtems_rfs_format+0xc34> <== NOT EXECUTED
if ((gigs & (1 << b)) != 0)
40007844: 00f615b3 sll a1,a2,a5 <== NOT EXECUTED
40007848: 00b776b3 and a3,a4,a1 <== NOT EXECUTED
for (b = 31; b > 0; b--)
4000784c: fff78793 addi a5,a5,-1 # fffff <bsp_section_text_size+0xdfcab> <== NOT EXECUTED
if ((gigs & (1 << b)) != 0)
40007850: fe0688e3 beqz a3,40007840 <rtems_rfs_format+0xaf8> <== NOT EXECUTED
fs->block_size = 1 << b;
40007854: 04b12a23 sw a1,84(sp) <== NOT EXECUTED
if ((fs->block_size % rtems_rfs_fs_media_block_size (fs)) != 0)
40007858: 05c12703 lw a4,92(sp) <== NOT EXECUTED
if (fs->block_size < 512)
4000785c: 1ff00793 li a5,511 <== NOT EXECUTED
if ((fs->block_size % rtems_rfs_fs_media_block_size (fs)) != 0)
40007860: 02072603 lw a2,32(a4) <== NOT EXECUTED
if (fs->block_size < 512)
40007864: f6b7f0e3 bgeu a5,a1,400077c4 <rtems_rfs_format+0xa7c> <== NOT EXECUTED
if (fs->block_size > (4 * 1024))
40007868: 000017b7 lui a5,0x1 <== NOT EXECUTED
4000786c: dab7f863 bgeu a5,a1,40006e1c <rtems_rfs_format+0xd4> <== NOT EXECUTED
fs->block_size = (4 * 1024);
40007870: 04f12a23 sw a5,84(sp) <== NOT EXECUTED
40007874: 000015b7 lui a1,0x1 <== NOT EXECUTED
40007878: da4ff06f j 40006e1c <rtems_rfs_format+0xd4> <== NOT EXECUTED
return ((blocks + 1) * 100 * 10) / bits_per_block;
4000787c: 00068793 mv a5,a3 <== NOT EXECUTED
40007880: b79ff06f j 400073f8 <rtems_rfs_format+0x6b0> <== NOT EXECUTED
blocks = ((rtems_rfs_fs_blocks (fs) -
40007884: fff50793 addi a5,a0,-1
if (config->inode_overhead)
40007888: 00100813 li a6,1
RTEMS_RFS_SUPERBLOCK_SIZE) * percentage) / 100;
4000788c: 030787b3 mul a5,a5,a6
if (dividend == 0)
40007890: 06300513 li a0,99
40007894: 00070693 mv a3,a4
40007898: e0f56263 bltu a0,a5,40006e9c <rtems_rfs_format+0x154>
4000789c: e18ff06f j 40006eb4 <rtems_rfs_format+0x16c>
printf ("rtems-rfs: format: allocated inode not root ino: %" PRId32 "\n", ino);
400078a0: 40022537 lui a0,0x40022 <== NOT EXECUTED
400078a4: 12050513 addi a0,a0,288 # 40022120 <IMFS_node_control_sym_link+0xbc0><== NOT EXECUTED
400078a8: 950fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rtems_rfs_fs_close (fs);
400078ac: 01412503 lw a0,20(sp) <== NOT EXECUTED
return EINVAL;
400078b0: 01600413 li s0,22 <== NOT EXECUTED
rtems_rfs_fs_close (fs);
400078b4: 0ad0f0ef jal ra,40017160 <rtems_rfs_fs_close> <== NOT EXECUTED
printf ("rtems-rfs: format: writing root dir failed: %d: %s\n",
400078b8: 00040513 mv a0,s0 <== NOT EXECUTED
400078bc: 6a8170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400078c0: 00050613 mv a2,a0 <== NOT EXECUTED
400078c4: 40022537 lui a0,0x40022 <== NOT EXECUTED
400078c8: 00040593 mv a1,s0 <== NOT EXECUTED
400078cc: 25850513 addi a0,a0,600 # 40022258 <IMFS_node_control_sym_link+0xcf8><== NOT EXECUTED
400078d0: 928fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
errno = rc;
400078d4: 3b4160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
400078d8: 00852023 sw s0,0(a0) <== NOT EXECUTED
return -1;
400078dc: fff00413 li s0,-1 <== NOT EXECUTED
400078e0: 999ff06f j 40007278 <rtems_rfs_format+0x530> <== NOT EXECUTED
rc = errno;
400078e4: 3a4160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
400078e8: 00052403 lw s0,0(a0) <== NOT EXECUTED
printf ("rtems-rfs: format: file system open failed: %d: %s\n",
400078ec: 00040513 mv a0,s0 <== NOT EXECUTED
400078f0: 674170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400078f4: 00050613 mv a2,a0 <== NOT EXECUTED
400078f8: 40022537 lui a0,0x40022 <== NOT EXECUTED
400078fc: 00040593 mv a1,s0 <== NOT EXECUTED
40007900: 0b850513 addi a0,a0,184 # 400220b8 <IMFS_node_control_sym_link+0xb58><== NOT EXECUTED
40007904: 8f4fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (rc != 0)
40007908: 960408e3 beqz s0,40007278 <rtems_rfs_format+0x530> <== NOT EXECUTED
4000790c: fadff06f j 400078b8 <rtems_rfs_format+0xb70> <== NOT EXECUTED
printf ("\n");
40007910: 00a00513 li a0,10 <== NOT EXECUTED
40007914: 301160ef jal ra,4001e414 <putchar> <== NOT EXECUTED
40007918: b55ff06f j 4000746c <rtems_rfs_format+0x724> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4000791c: 01810593 addi a1,sp,24 <== NOT EXECUTED
40007920: 04c10513 addi a0,sp,76 <== NOT EXECUTED
40007924: ef1fe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
printf ("\nrtems-rfs: write-group: group %3d: close inode" \
40007928: 00048513 mv a0,s1 <== NOT EXECUTED
handle->dirty = false;
4000792c: 00010c23 sb zero,24(sp) <== NOT EXECUTED
handle->bnum = 0;
40007930: 00012e23 sw zero,28(sp) <== NOT EXECUTED
handle->buffer = NULL;
40007934: 02012023 sw zero,32(sp) <== NOT EXECUTED
40007938: 62c170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
4000793c: 00050693 mv a3,a0 <== NOT EXECUTED
40007940: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007944: 00048613 mv a2,s1 <== NOT EXECUTED
40007948: 00040593 mv a1,s0 <== NOT EXECUTED
4000794c: ff850513 addi a0,a0,-8 # 40021ff8 <IMFS_node_control_sym_link+0xa98><== NOT EXECUTED
40007950: 8a8fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return false;
40007954: c55ff06f j 400075a8 <rtems_rfs_format+0x860> <== NOT EXECUTED
printf ("rtems-rfs: format: inode allocation failed: %d: %s\n",
40007958: 60c170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
4000795c: 00050613 mv a2,a0 <== NOT EXECUTED
40007960: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007964: 00040593 mv a1,s0 <== NOT EXECUTED
40007968: 0ec50513 addi a0,a0,236 # 400220ec <IMFS_node_control_sym_link+0xb8c><== NOT EXECUTED
4000796c: 88cfa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rtems_rfs_fs_close (fs);
40007970: 01412503 lw a0,20(sp) <== NOT EXECUTED
40007974: 7ec0f0ef jal ra,40017160 <rtems_rfs_fs_close> <== NOT EXECUTED
return rc;
40007978: f41ff06f j 400078b8 <rtems_rfs_format+0xb70> <== NOT EXECUTED
4000797c: 00100593 li a1,1 <== NOT EXECUTED
fs->block_size = 1 << b;
40007980: 04b12a23 sw a1,84(sp) <== NOT EXECUTED
40007984: ed5ff06f j 40007858 <rtems_rfs_format+0xb10> <== NOT EXECUTED
printf ("rtems-rfs: format: inode open failed: %d: %s\n",
40007988: 5dc170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
4000798c: 00050613 mv a2,a0 <== NOT EXECUTED
40007990: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007994: 00040593 mv a1,s0 <== NOT EXECUTED
40007998: 15850513 addi a0,a0,344 # 40022158 <IMFS_node_control_sym_link+0xbf8><== NOT EXECUTED
4000799c: 85cfa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rtems_rfs_group_bitmap_free (fs, true, ino);
400079a0: 01812603 lw a2,24(sp) <== NOT EXECUTED
400079a4: 01412503 lw a0,20(sp) <== NOT EXECUTED
400079a8: 00100593 li a1,1 <== NOT EXECUTED
400079ac: 67c000ef jal ra,40008028 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED
rtems_rfs_fs_close (fs);
400079b0: 01412503 lw a0,20(sp) <== NOT EXECUTED
400079b4: 7ac0f0ef jal ra,40017160 <rtems_rfs_fs_close> <== NOT EXECUTED
return rc;
400079b8: f01ff06f j 400078b8 <rtems_rfs_format+0xb70> <== NOT EXECUTED
printf ("rtems-rfs: format: inode close failed: %d: %s\n",
400079bc: 5a8170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400079c0: 00050613 mv a2,a0 <== NOT EXECUTED
400079c4: 40022537 lui a0,0x40022 <== NOT EXECUTED
400079c8: 00040593 mv a1,s0 <== NOT EXECUTED
400079cc: 1f050513 addi a0,a0,496 # 400221f0 <IMFS_node_control_sym_link+0xc90><== NOT EXECUTED
400079d0: 828fa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400079d4: b61ff06f j 40007534 <rtems_rfs_format+0x7ec> <== NOT EXECUTED
printf ("rtems-rfs: format: directory add failed: %d: %s\n",
400079d8: 58c170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400079dc: 00050613 mv a2,a0 <== NOT EXECUTED
400079e0: 40022537 lui a0,0x40022 <== NOT EXECUTED
400079e4: 00040593 mv a1,s0 <== NOT EXECUTED
400079e8: 1bc50513 addi a0,a0,444 # 400221bc <IMFS_node_control_sym_link+0xc5c><== NOT EXECUTED
400079ec: 80cfa0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400079f0: b31ff06f j 40007520 <rtems_rfs_format+0x7d8> <== NOT EXECUTED
printf ("rtems-rfs: format: inode initialise failed: %d: %s\n",
400079f4: 570170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400079f8: 00050613 mv a2,a0 <== NOT EXECUTED
400079fc: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007a00: 00040593 mv a1,s0 <== NOT EXECUTED
40007a04: 18850513 addi a0,a0,392 # 40022188 <IMFS_node_control_sym_link+0xc28><== NOT EXECUTED
40007a08: ff1f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40007a0c: af1ff06f j 400074fc <rtems_rfs_format+0x7b4> <== NOT EXECUTED
printf ("rtems-rfs: media block is invalid: %" PRIu32 "\n",
40007a10: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007a14: 00000593 li a1,0 <== NOT EXECUTED
40007a18: ab850513 addi a0,a0,-1352 # 40021ab8 <IMFS_node_control_sym_link+0x558><== NOT EXECUTED
40007a1c: fddf90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
errno = EINVAL;
40007a20: 268160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40007a24: 01600793 li a5,22 <== NOT EXECUTED
40007a28: 00f52023 sw a5,0(a0) <== NOT EXECUTED
return -1;
40007a2c: fff00413 li s0,-1 <== NOT EXECUTED
40007a30: 849ff06f j 40007278 <rtems_rfs_format+0x530> <== NOT EXECUTED
printf ("rtems-rfs: format: setting block size failed: %d: %s\n",
40007a34: 530170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40007a38: 00050613 mv a2,a0 <== NOT EXECUTED
40007a3c: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007a40: 00040593 mv a1,s0 <== NOT EXECUTED
40007a44: d2450513 addi a0,a0,-732 # 40021d24 <IMFS_node_control_sym_link+0x7c4><== NOT EXECUTED
40007a48: fb1f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
errno = rc;
40007a4c: 23c160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40007a50: 00852023 sw s0,0(a0) <== NOT EXECUTED
return -1;
40007a54: fff00413 li s0,-1 <== NOT EXECUTED
40007a58: 821ff06f j 40007278 <rtems_rfs_format+0x530> <== NOT EXECUTED
printf ("rtems-rfs: format: buffer close failed: %d: %s\n",
40007a5c: 508170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40007a60: 00050613 mv a2,a0 <== NOT EXECUTED
40007a64: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007a68: 00040593 mv a1,s0 <== NOT EXECUTED
40007a6c: 08850513 addi a0,a0,136 # 40022088 <IMFS_node_control_sym_link+0xb28><== NOT EXECUTED
40007a70: f89f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
errno = rc;
40007a74: 214160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40007a78: 00852023 sw s0,0(a0) <== NOT EXECUTED
return -1;
40007a7c: fff00413 li s0,-1 <== NOT EXECUTED
40007a80: ff8ff06f j 40007278 <rtems_rfs_format+0x530> <== NOT EXECUTED
printf ("rtems-rfs: format: buffer open failed: %d: %s\n",
40007a84: 4e0170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40007a88: 00050613 mv a2,a0 <== NOT EXECUTED
40007a8c: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007a90: 00040593 mv a1,s0 <== NOT EXECUTED
40007a94: a8850513 addi a0,a0,-1400 # 40021a88 <IMFS_node_control_sym_link+0x528><== NOT EXECUTED
40007a98: f61f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
errno = rc;
40007a9c: 1ec160ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40007aa0: 00852023 sw s0,0(a0) <== NOT EXECUTED
return -1;
40007aa4: fff00413 li s0,-1 <== NOT EXECUTED
40007aa8: fd0ff06f j 40007278 <rtems_rfs_format+0x530> <== NOT EXECUTED
40017160 <rtems_rfs_fs_close>:
int
rtems_rfs_fs_close (rtems_rfs_file_system* fs)
{
40017160: ff010113 addi sp,sp,-16
40017164: 00812423 sw s0,8(sp)
int group;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_CLOSE))
40017168: 00000593 li a1,0
{
4001716c: 00050413 mv s0,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_CLOSE))
40017170: 00200513 li a0,2
{
40017174: 00112623 sw ra,12(sp)
40017178: 00912223 sw s1,4(sp)
4001717c: 01212023 sw s2,0(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_CLOSE))
40017180: f8df20ef jal ra,4000a10c <rtems_rfs_trace>
40017184: 06051063 bnez a0,400171e4 <rtems_rfs_fs_close+0x84> <== NEVER TAKEN
printf ("rtems-rfs: close\n");
for (group = 0; group < fs->group_count; group++)
40017188: 02442783 lw a5,36(s0)
4001718c: 02f05663 blez a5,400171b8 <rtems_rfs_fs_close+0x58> <== NEVER TAKEN
40017190: 00000913 li s2,0
40017194: 00000493 li s1,0
rtems_rfs_group_close (fs, &fs->groups[group]);
40017198: 02042583 lw a1,32(s0)
4001719c: 00040513 mv a0,s0
for (group = 0; group < fs->group_count; group++)
400171a0: 00148493 addi s1,s1,1
rtems_rfs_group_close (fs, &fs->groups[group]);
400171a4: 012585b3 add a1,a1,s2
400171a8: b41f00ef jal ra,40007ce8 <rtems_rfs_group_close>
for (group = 0; group < fs->group_count; group++)
400171ac: 02442783 lw a5,36(s0)
400171b0: 05090913 addi s2,s2,80
400171b4: fef4c2e3 blt s1,a5,40017198 <rtems_rfs_fs_close+0x38>
rtems_rfs_buffer_close (fs);
400171b8: 00040513 mv a0,s0
400171bc: aa9ef0ef jal ra,40006c64 <rtems_rfs_buffer_close>
free (fs);
400171c0: 00040513 mv a0,s0
400171c4: bc5ea0ef jal ra,40001d88 <free>
return 0;
}
400171c8: 00c12083 lw ra,12(sp)
400171cc: 00812403 lw s0,8(sp)
400171d0: 00412483 lw s1,4(sp)
400171d4: 00012903 lw s2,0(sp)
400171d8: 00000513 li a0,0
400171dc: 01010113 addi sp,sp,16
400171e0: 00008067 ret
printf ("rtems-rfs: close\n");
400171e4: 40024537 lui a0,0x40024 <== NOT EXECUTED
400171e8: c8c50513 addi a0,a0,-884 # 40023c8c <IMFS_LIMITS_AND_OPTIONS+0xeac><== NOT EXECUTED
400171ec: 855ea0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
400171f0: f99ff06f j 40017188 <rtems_rfs_fs_close+0x28> <== NOT EXECUTED
4001697c <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)
{
4001697c: fb010113 addi sp,sp,-80
40016980: 04912223 sw s1,68(sp)
40016984: 03512a23 sw s5,52(sp)
40016988: 00050493 mv s1,a0
4001698c: 00058a93 mv s5,a1
#endif
rtems_rfs_inode_handle inode;
uint16_t mode;
int rc;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40016990: 00100513 li a0,1
40016994: 00000593 li a1,0
{
40016998: 05212023 sw s2,64(sp)
4001699c: 03312e23 sw s3,60(sp)
400169a0: 03412c23 sw s4,56(sp)
400169a4: 04112623 sw ra,76(sp)
400169a8: 04812423 sw s0,72(sp)
400169ac: 00060993 mv s3,a2
400169b0: 00068a13 mv s4,a3
400169b4: 00070913 mv s2,a4
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
400169b8: f54f30ef jal ra,4000a10c <rtems_rfs_trace>
400169bc: 3a051a63 bnez a0,40016d70 <rtems_rfs_fs_open+0x3f4> <== NEVER TAKEN
printf ("rtems-rfs: open: %s\n", name);
*fs = malloc (sizeof (rtems_rfs_file_system));
400169c0: 08400513 li a0,132
400169c4: cc8eb0ef jal ra,40001e8c <malloc>
400169c8: 00a92023 sw a0,0(s2)
400169cc: 00050413 mv s0,a0
if (!*fs)
400169d0: 70050c63 beqz a0,400170e8 <rtems_rfs_fs_open+0x76c> <== NEVER TAKEN
printf ("rtems-rfs: open: no memory for file system data\n");
errno = ENOMEM;
return -1;
}
memset (*fs, 0, sizeof (rtems_rfs_file_system));
400169d4: 08000613 li a2,128
400169d8: 00000593 li a1,0
400169dc: 00450513 addi a0,a0,4
400169e0: 159070ef jal ra,4001e338 <memset>
return &the_chain->Tail.Node;
400169e4: 04440313 addi t1,s0,68
400169e8: 04840e13 addi t3,s0,72
400169ec: 05440813 addi a6,s0,84
400169f0: 05840893 addi a7,s0,88
400169f4: 06440693 addi a3,s0,100
400169f8: 06840613 addi a2,s0,104
400169fc: 07440793 addi a5,s0,116
40016a00: 07840713 addi a4,s0,120
#endif
/*
* Open the buffer interface.
*/
rc = rtems_rfs_buffer_open (name, *fs);
40016a04: 00040593 mv a1,s0
(*fs)->user = user;
40016a08: 09542023 sw s5,128(s0)
head->next = tail;
40016a0c: 05c42223 sw t3,68(s0)
tail->previous = head;
40016a10: 04642623 sw t1,76(s0)
head->next = tail;
40016a14: 05142a23 sw a7,84(s0)
tail->previous = head;
40016a18: 05042e23 sw a6,92(s0)
head->next = tail;
40016a1c: 06c42223 sw a2,100(s0)
tail->previous = head;
40016a20: 06d42623 sw a3,108(s0)
head->next = tail;
40016a24: 06e42a23 sw a4,116(s0)
tail->previous = head;
40016a28: 06f42e23 sw a5,124(s0)
(*fs)->max_held_buffers = max_held_buffers;
40016a2c: 05442023 sw s4,64(s0)
(*fs)->flags = flags;
40016a30: 01342023 sw s3,0(s0)
rc = rtems_rfs_buffer_open (name, *fs);
40016a34: 00048513 mv a0,s1
40016a38: df1ef0ef jal ra,40006828 <rtems_rfs_buffer_open>
40016a3c: 00050413 mv s0,a0
if (rc > 0)
40016a40: 58a04a63 bgtz a0,40016fd4 <rtems_rfs_fs_open+0x658> <== NEVER TAKEN
rc, strerror (rc));
errno = rc;
return -1;
}
rc = rtems_rfs_fs_read_superblock (*fs);
40016a44: 00092403 lw s0,0(s2)
rc = rtems_rfs_buffer_handle_request (fs, &handle, 0, true);
40016a48: 00100693 li a3,1
40016a4c: 00000613 li a2,0
40016a50: 00810593 addi a1,sp,8
40016a54: 00040513 mv a0,s0
handle->dirty = false;
40016a58: 00010423 sb zero,8(sp)
handle->bnum = 0;
40016a5c: 00012623 sw zero,12(sp)
handle->buffer = NULL;
40016a60: 00012823 sw zero,16(sp)
40016a64: b19ef0ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
40016a68: 00050493 mv s1,a0
if (rc > 0)
40016a6c: 30a04c63 bgtz a0,40016d84 <rtems_rfs_fs_open+0x408> <== NEVER TAKEN
sb = rtems_rfs_buffer_data (&handle);
40016a70: 01012783 lw a5,16(sp)
if (read_sb (RTEMS_RFS_SB_OFFSET_MAGIC) != RTEMS_RFS_SB_MAGIC)
40016a74: 28092737 lui a4,0x28092
40016a78: 00170713 addi a4,a4,1 # 28092001 <RamSize+0x27092001>
sb = rtems_rfs_buffer_data (&handle);
40016a7c: 01c7a483 lw s1,28(a5)
if (read_sb (RTEMS_RFS_SB_OFFSET_MAGIC) != RTEMS_RFS_SB_MAGIC)
40016a80: 0004c783 lbu a5,0(s1)
40016a84: 0014c603 lbu a2,1(s1)
40016a88: 0034c583 lbu a1,3(s1)
40016a8c: 0024c683 lbu a3,2(s1)
40016a90: 01879793 slli a5,a5,0x18
40016a94: 01061613 slli a2,a2,0x10
40016a98: 00c7e7b3 or a5,a5,a2
40016a9c: 00b7e7b3 or a5,a5,a1
40016aa0: 00869693 slli a3,a3,0x8
40016aa4: 00d7e7b3 or a5,a5,a3
40016aa8: 44e79a63 bne a5,a4,40016efc <rtems_rfs_fs_open+0x580>
fs->blocks = read_sb (RTEMS_RFS_SB_OFFSET_BLOCKS);
40016aac: 00c4c683 lbu a3,12(s1)
40016ab0: 00d4c703 lbu a4,13(s1)
40016ab4: 00f4c603 lbu a2,15(s1)
40016ab8: 00e4c783 lbu a5,14(s1)
40016abc: 01071713 slli a4,a4,0x10
40016ac0: 01869693 slli a3,a3,0x18
40016ac4: 00e6e6b3 or a3,a3,a4
40016ac8: 00c6e6b3 or a3,a3,a2
40016acc: 00879793 slli a5,a5,0x8
40016ad0: 00f6e6b3 or a3,a3,a5
40016ad4: 00d42223 sw a3,4(s0)
fs->block_size = read_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE);
40016ad8: 0084c783 lbu a5,8(s1)
40016adc: 0094c583 lbu a1,9(s1)
uint64_t media_blocks = (uint64_t) rtems_rfs_fs_media_blocks (fs);
40016ae0: 01042503 lw a0,16(s0)
fs->block_size = read_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE);
40016ae4: 00b4c803 lbu a6,11(s1)
40016ae8: 00a4c603 lbu a2,10(s1)
40016aec: 01059593 slli a1,a1,0x10
40016af0: 01879793 slli a5,a5,0x18
return media_blocks * media_block_size;
40016af4: 01c52703 lw a4,28(a0)
fs->block_size = read_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE);
40016af8: 00b7e7b3 or a5,a5,a1
return media_blocks * media_block_size;
40016afc: 02052503 lw a0,32(a0)
fs->block_size = read_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE);
40016b00: 00861613 slli a2,a2,0x8
40016b04: 0107e7b3 or a5,a5,a6
40016b08: 00c7e7b3 or a5,a5,a2
return blocks * block_size;
40016b0c: 02f6b5b3 mulhu a1,a3,a5
fs->block_size = read_sb (RTEMS_RFS_SB_OFFSET_BLOCK_SIZE);
40016b10: 00f42423 sw a5,8(s0)
return media_blocks * media_block_size;
40016b14: 02a73633 mulhu a2,a4,a0
return blocks * block_size;
40016b18: 02f686b3 mul a3,a3,a5
return media_blocks * media_block_size;
40016b1c: 02a70733 mul a4,a4,a0
if (rtems_rfs_fs_size(fs) > rtems_rfs_fs_media_size (fs))
40016b20: 30b66a63 bltu a2,a1,40016e34 <rtems_rfs_fs_open+0x4b8>
40016b24: 30c58663 beq a1,a2,40016e30 <rtems_rfs_fs_open+0x4b4>
if (read_sb (RTEMS_RFS_SB_OFFSET_INODE_SIZE) != RTEMS_RFS_INODE_SIZE)
40016b28: 0244c703 lbu a4,36(s1)
40016b2c: 0254c603 lbu a2,37(s1)
40016b30: 0274c583 lbu a1,39(s1)
40016b34: 0264c683 lbu a3,38(s1)
40016b38: 01871713 slli a4,a4,0x18
40016b3c: 01061613 slli a2,a2,0x10
40016b40: 00c76733 or a4,a4,a2
40016b44: 00869693 slli a3,a3,0x8
40016b48: 00b76733 or a4,a4,a1
40016b4c: 00d76733 or a4,a4,a3
40016b50: 03800693 li a3,56
40016b54: 2ad71c63 bne a4,a3,40016e0c <rtems_rfs_fs_open+0x490>
fs->bad_blocks = read_sb (RTEMS_RFS_SB_OFFSET_BAD_BLOCKS);
40016b58: 0104c683 lbu a3,16(s1)
40016b5c: 0114c583 lbu a1,17(s1)
40016b60: 0134c503 lbu a0,19(s1)
40016b64: 0124c603 lbu a2,18(s1)
40016b68: 01059593 slli a1,a1,0x10
40016b6c: 01869693 slli a3,a3,0x18
40016b70: 00b6e6b3 or a3,a3,a1
40016b74: 00a6e6b3 or a3,a3,a0
40016b78: 00861613 slli a2,a2,0x8
40016b7c: 00c6e6b3 or a3,a3,a2
40016b80: 00d42c23 sw a3,24(s0)
fs->max_name_length = read_sb (RTEMS_RFS_SB_OFFSET_MAX_NAME_LENGTH);
40016b84: 0144c683 lbu a3,20(s1)
40016b88: 0154c583 lbu a1,21(s1)
40016b8c: 0174c503 lbu a0,23(s1)
40016b90: 0164c603 lbu a2,22(s1)
40016b94: 01059593 slli a1,a1,0x10
40016b98: 01869693 slli a3,a3,0x18
40016b9c: 00b6e6b3 or a3,a3,a1
fs->inodes_per_block = fs->block_size / RTEMS_RFS_INODE_SIZE;
40016ba0: 02e7d733 divu a4,a5,a4
fs->max_name_length = read_sb (RTEMS_RFS_SB_OFFSET_MAX_NAME_LENGTH);
40016ba4: 00a6e6b3 or a3,a3,a0
40016ba8: 00861613 slli a2,a2,0x8
40016bac: 00c6e6b3 or a3,a3,a2
40016bb0: 00d42e23 sw a3,28(s0)
fs->group_count = read_sb (RTEMS_RFS_SB_OFFSET_GROUPS);
40016bb4: 0184c683 lbu a3,24(s1)
40016bb8: 0194c583 lbu a1,25(s1)
40016bbc: 01b4c503 lbu a0,27(s1)
40016bc0: 01a4c603 lbu a2,26(s1)
40016bc4: 01059593 slli a1,a1,0x10
40016bc8: 01869693 slli a3,a3,0x18
40016bcc: 00b6e6b3 or a3,a3,a1
40016bd0: 00a6e6b3 or a3,a3,a0
40016bd4: 00861613 slli a2,a2,0x8
40016bd8: 00c6e6b3 or a3,a3,a2
40016bdc: 02d42223 sw a3,36(s0)
fs->group_blocks = read_sb (RTEMS_RFS_SB_OFFSET_GROUP_BLOCKS);
40016be0: 01c4c603 lbu a2,28(s1)
40016be4: 01d4c503 lbu a0,29(s1)
40016be8: 01f4c803 lbu a6,31(s1)
40016bec: 01e4c583 lbu a1,30(s1)
40016bf0: 01051513 slli a0,a0,0x10
40016bf4: 01861613 slli a2,a2,0x18
40016bf8: 00a66633 or a2,a2,a0
40016bfc: 01066633 or a2,a2,a6
40016c00: 00859593 slli a1,a1,0x8
40016c04: 00b66633 or a2,a2,a1
40016c08: 02c42423 sw a2,40(s0)
fs->group_inodes = read_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES);
40016c0c: 0204c583 lbu a1,32(s1)
40016c10: 0214c883 lbu a7,33(s1)
40016c14: 0234c303 lbu t1,35(s1)
40016c18: 0224c803 lbu a6,34(s1)
40016c1c: 01089893 slli a7,a7,0x10
40016c20: 01859593 slli a1,a1,0x18
rtems_rfs_fs_block_size (fs) / sizeof (rtems_rfs_inode_block);
40016c24: 0027d513 srli a0,a5,0x2
fs->group_inodes = read_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES);
40016c28: 0115e5b3 or a1,a1,a7
40016c2c: 00881813 slli a6,a6,0x8
fs->blocks_per_block * fs->blocks_per_block * RTEMS_RFS_INODE_BLOCKS;
40016c30: 02a508b3 mul a7,a0,a0
fs->group_inodes = read_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES);
40016c34: 0065e5b3 or a1,a1,t1
40016c38: 0105e5b3 or a1,a1,a6
fs->inodes_per_block = fs->block_size / RTEMS_RFS_INODE_SIZE;
40016c3c: 02e42823 sw a4,48(s0)
fs->blocks_per_block * RTEMS_RFS_INODE_BLOCKS;
40016c40: 00251813 slli a6,a0,0x2
40016c44: 00a80833 add a6,a6,a0
fs->group_inodes = read_sb (RTEMS_RFS_SB_OFFSET_GROUP_INODES);
40016c48: 02b42623 sw a1,44(s0)
fs->blocks_per_block =
40016c4c: 02a42a23 sw a0,52(s0)
fs->block_map_singly_blocks =
40016c50: 03042c23 sw a6,56(s0)
rtems_rfs_bitmap_numof_bits (rtems_rfs_fs_block_size (fs)))
40016c54: 00379793 slli a5,a5,0x3
fs->inodes = fs->group_count * fs->group_inodes;
40016c58: 02b686b3 mul a3,a3,a1
fs->blocks_per_block * fs->blocks_per_block * RTEMS_RFS_INODE_BLOCKS;
40016c5c: 00289713 slli a4,a7,0x2
40016c60: 01170733 add a4,a4,a7
fs->block_map_doubly_blocks =
40016c64: 02e42e23 sw a4,60(s0)
rtems_rfs_buffer_handle_release (fs, handle);
40016c68: 00810593 addi a1,sp,8
40016c6c: 00040513 mv a0,s0
fs->inodes = fs->group_count * fs->group_inodes;
40016c70: 00d42a23 sw a3,20(s0)
if (fs->group_blocks >
40016c74: 2ac7e463 bltu a5,a2,40016f1c <rtems_rfs_fs_open+0x5a0>
40016c78: b9def0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
rc = rtems_rfs_buffer_setblksize (fs, rtems_rfs_fs_block_size (fs));
40016c7c: 00842583 lw a1,8(s0)
40016c80: 00040513 mv a0,s0
handle->dirty = false;
40016c84: 00010423 sb zero,8(sp)
handle->bnum = 0;
40016c88: 00012623 sw zero,12(sp)
handle->buffer = NULL;
40016c8c: 00012823 sw zero,16(sp)
40016c90: ea9ef0ef jal ra,40006b38 <rtems_rfs_buffer_setblksize>
40016c94: 00050493 mv s1,a0
if (rc > 0)
40016c98: 10a04e63 bgtz a0,40016db4 <rtems_rfs_fs_open+0x438> <== NEVER TAKEN
fs->groups = calloc (fs->group_count, sizeof (rtems_rfs_group));
40016c9c: 02442483 lw s1,36(s0)
40016ca0: 05000593 li a1,80
40016ca4: 00048513 mv a0,s1
40016ca8: 8d8fb0ef jal ra,40011d80 <calloc>
40016cac: 02a42023 sw a0,32(s0)
40016cb0: 00050713 mv a4,a0
if (!fs->groups)
40016cb4: 46050463 beqz a0,4001711c <rtems_rfs_fs_open+0x7a0> <== NEVER TAKEN
for (group = 0; group < fs->group_count; group++)
40016cb8: 00000a13 li s4,0
40016cbc: 00000993 li s3,0
40016cc0: 00904c63 bgtz s1,40016cd8 <rtems_rfs_fs_open+0x35c> <== ALWAYS TAKEN
40016cc4: 1900006f j 40016e54 <rtems_rfs_fs_open+0x4d8> <== NOT EXECUTED
40016cc8: 02442783 lw a5,36(s0)
40016ccc: 00198993 addi s3,s3,1
40016cd0: 18f9d263 bge s3,a5,40016e54 <rtems_rfs_fs_open+0x4d8>
&fs->groups[group]);
40016cd4: 02042703 lw a4,32(s0) <== NOT EXECUTED
rtems_rfs_fs_block (fs, group, 0),
40016cd8: 02842603 lw a2,40(s0)
rc = rtems_rfs_group_open (fs,
40016cdc: 02c42683 lw a3,44(s0)
40016ce0: 01470733 add a4,a4,s4
rtems_rfs_fs_block (fs, group, 0),
40016ce4: 02c985b3 mul a1,s3,a2
rc = rtems_rfs_group_open (fs,
40016ce8: 00040513 mv a0,s0
for (group = 0; group < fs->group_count; group++)
40016cec: 050a0a13 addi s4,s4,80
rc = rtems_rfs_group_open (fs,
40016cf0: 00158593 addi a1,a1,1
40016cf4: db9f00ef jal ra,40007aac <rtems_rfs_group_open>
40016cf8: 00050493 mv s1,a0
if (rc > 0)
40016cfc: fca056e3 blez a0,40016cc8 <rtems_rfs_fs_open+0x34c> <== ALWAYS TAKEN
for (g = 0; g < group; g++)
40016d00: 00000a93 li s5,0 <== NOT EXECUTED
40016d04: 00000a13 li s4,0 <== NOT EXECUTED
40016d08: 02098063 beqz s3,40016d28 <rtems_rfs_fs_open+0x3ac> <== NOT EXECUTED
rtems_rfs_group_close (fs, &fs->groups[g]);
40016d0c: 02042583 lw a1,32(s0) <== NOT EXECUTED
40016d10: 00040513 mv a0,s0 <== NOT EXECUTED
for (g = 0; g < group; g++)
40016d14: 001a0a13 addi s4,s4,1 <== NOT EXECUTED
rtems_rfs_group_close (fs, &fs->groups[g]);
40016d18: 015585b3 add a1,a1,s5 <== NOT EXECUTED
40016d1c: fcdf00ef jal ra,40007ce8 <rtems_rfs_group_close> <== NOT EXECUTED
for (g = 0; g < group; g++)
40016d20: 050a8a93 addi s5,s5,80 <== NOT EXECUTED
40016d24: ff3a14e3 bne s4,s3,40016d0c <rtems_rfs_fs_open+0x390> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40016d28: 00810593 addi a1,sp,8 <== NOT EXECUTED
40016d2c: 00040513 mv a0,s0 <== NOT EXECUTED
40016d30: ae5ef0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40016d34: 00100513 li a0,1 <== NOT EXECUTED
40016d38: 00000593 li a1,0 <== NOT EXECUTED
handle->dirty = false;
40016d3c: 00010423 sb zero,8(sp) <== NOT EXECUTED
handle->bnum = 0;
40016d40: 00012623 sw zero,12(sp) <== NOT EXECUTED
handle->buffer = NULL;
40016d44: 00012823 sw zero,16(sp) <== NOT EXECUTED
40016d48: bc4f30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40016d4c: 08050863 beqz a0,40016ddc <rtems_rfs_fs_open+0x460> <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: no memory for group table%d: %s\n",
40016d50: 00048513 mv a0,s1 <== NOT EXECUTED
40016d54: 210080ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40016d58: 00050613 mv a2,a0 <== NOT EXECUTED
40016d5c: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016d60: 00048593 mv a1,s1 <== NOT EXECUTED
40016d64: b9050513 addi a0,a0,-1136 # 40023b90 <IMFS_LIMITS_AND_OPTIONS+0xdb0><== NOT EXECUTED
40016d68: c91ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40016d6c: 0700006f j 40016ddc <rtems_rfs_fs_open+0x460> <== NOT EXECUTED
printf ("rtems-rfs: open: %s\n", name);
40016d70: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016d74: 00048593 mv a1,s1 <== NOT EXECUTED
40016d78: 96450513 addi a0,a0,-1692 # 40023964 <IMFS_LIMITS_AND_OPTIONS+0xb84><== NOT EXECUTED
40016d7c: c7dea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40016d80: c41ff06f j 400169c0 <rtems_rfs_fs_open+0x44> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40016d84: 00100513 li a0,1 <== NOT EXECUTED
40016d88: 00000593 li a1,0 <== NOT EXECUTED
40016d8c: b80f30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40016d90: 04050663 beqz a0,40016ddc <rtems_rfs_fs_open+0x460> <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: request failed%d: %s\n",
40016d94: 00048513 mv a0,s1 <== NOT EXECUTED
40016d98: 1cc080ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40016d9c: 00050613 mv a2,a0 <== NOT EXECUTED
40016da0: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016da4: 00048593 mv a1,s1 <== NOT EXECUTED
40016da8: 9dc50513 addi a0,a0,-1572 # 400239dc <IMFS_LIMITS_AND_OPTIONS+0xbfc><== NOT EXECUTED
40016dac: c4dea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40016db0: 02c0006f j 40016ddc <rtems_rfs_fs_open+0x460> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40016db4: 00810593 addi a1,sp,8 <== NOT EXECUTED
40016db8: 00040513 mv a0,s0 <== NOT EXECUTED
40016dbc: a59ef0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40016dc0: 00100513 li a0,1 <== NOT EXECUTED
40016dc4: 00000593 li a1,0 <== NOT EXECUTED
handle->dirty = false;
40016dc8: 00010423 sb zero,8(sp) <== NOT EXECUTED
handle->bnum = 0;
40016dcc: 00012623 sw zero,12(sp) <== NOT EXECUTED
handle->buffer = NULL;
40016dd0: 00012823 sw zero,16(sp) <== NOT EXECUTED
40016dd4: b38f30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40016dd8: 1a051063 bnez a0,40016f78 <rtems_rfs_fs_open+0x5fc> <== NOT EXECUTED
if (rc > 0)
{
rtems_rfs_buffer_close (*fs);
40016ddc: 00092503 lw a0,0(s2) <== NOT EXECUTED
40016de0: e85ef0ef jal ra,40006c64 <rtems_rfs_buffer_close> <== NOT EXECUTED
free (*fs);
40016de4: 00092503 lw a0,0(s2) <== NOT EXECUTED
40016de8: fa1ea0ef jal ra,40001d88 <free> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40016dec: 00100513 li a0,1 <== NOT EXECUTED
40016df0: 00000593 li a1,0 <== NOT EXECUTED
40016df4: b18f30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40016df8: 16051063 bnez a0,40016f58 <rtems_rfs_fs_open+0x5dc> <== NOT EXECUTED
printf ("rtems-rfs: open: reading superblock: %d: %s\n",
rc, strerror (rc));
errno = rc;
40016dfc: 68d060ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40016e00: 00952023 sw s1,0(a0) <== NOT EXECUTED
return -1;
40016e04: fff00513 li a0,-1 <== NOT EXECUTED
40016e08: 0d00006f j 40016ed8 <rtems_rfs_fs_open+0x55c> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40016e0c: 00100513 li a0,1 <== NOT EXECUTED
40016e10: 00000593 li a1,0 <== NOT EXECUTED
40016e14: af8f30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40016e18: 18051063 bnez a0,40016f98 <rtems_rfs_fs_open+0x61c> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40016e1c: 00810593 addi a1,sp,8 <== NOT EXECUTED
40016e20: 00040513 mv a0,s0 <== NOT EXECUTED
40016e24: 9f1ef0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
return EIO;
40016e28: 00500493 li s1,5 <== NOT EXECUTED
40016e2c: fb1ff06f j 40016ddc <rtems_rfs_fs_open+0x460> <== NOT EXECUTED
if (rtems_rfs_fs_size(fs) > rtems_rfs_fs_media_size (fs))
40016e30: ced77ce3 bgeu a4,a3,40016b28 <rtems_rfs_fs_open+0x1ac>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40016e34: 00100513 li a0,1 <== NOT EXECUTED
40016e38: 00000593 li a1,0 <== NOT EXECUTED
40016e3c: ad0f30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40016e40: fc050ee3 beqz a0,40016e1c <rtems_rfs_fs_open+0x4a0> <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: invalid superblock block/size count\n");
40016e44: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016e48: a4c50513 addi a0,a0,-1460 # 40023a4c <IMFS_LIMITS_AND_OPTIONS+0xc6c><== NOT EXECUTED
40016e4c: bf5ea0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
40016e50: fcdff06f j 40016e1c <rtems_rfs_fs_open+0x4a0> <== NOT EXECUTED
}
rc = rtems_rfs_inode_open (*fs, RTEMS_RFS_ROOT_INO, &inode, true);
40016e54: 00092503 lw a0,0(s2)
40016e58: 00100693 li a3,1
40016e5c: 00810613 addi a2,sp,8
40016e60: 00100593 li a1,1
40016e64: c1cf10ef jal ra,40008280 <rtems_rfs_inode_open>
40016e68: 00050413 mv s0,a0
if (rc > 0)
40016e6c: 1ca04663 bgtz a0,40017038 <rtems_rfs_fs_open+0x6bc> <== NEVER TAKEN
rc, strerror (rc));
errno = rc;
return -1;
}
if (((*fs)->flags & RTEMS_RFS_FS_FORCE_OPEN) == 0)
40016e70: 00092503 lw a0,0(s2)
40016e74: 00052783 lw a5,0(a0)
40016e78: 0047f793 andi a5,a5,4
40016e7c: 04079463 bnez a5,40016ec4 <rtems_rfs_fs_open+0x548>
return rtems_rfs_read_u16 (&handle->node->mode);
40016e80: 01412703 lw a4,20(sp)
{
mode = rtems_rfs_inode_get_mode (&inode);
if ((mode == 0xffff) || !RTEMS_RFS_S_ISDIR (mode))
40016e84: 000106b7 lui a3,0x10
40016e88: fff68693 addi a3,a3,-1 # ffff <bsp_section_bss_size+0xaa4f>
40016e8c: 00374783 lbu a5,3(a4)
40016e90: 00274703 lbu a4,2(a4)
40016e94: 00879793 slli a5,a5,0x8
40016e98: 00e7e7b3 or a5,a5,a4
40016e9c: 00879713 slli a4,a5,0x8
40016ea0: 0087d793 srli a5,a5,0x8
40016ea4: 00f767b3 or a5,a4,a5
40016ea8: 01079793 slli a5,a5,0x10
40016eac: 0107d793 srli a5,a5,0x10
40016eb0: 14d78663 beq a5,a3,40016ffc <rtems_rfs_fs_open+0x680>
40016eb4: fffff737 lui a4,0xfffff
40016eb8: 00e7f7b3 and a5,a5,a4
40016ebc: 00004737 lui a4,0x4
40016ec0: 12e79e63 bne a5,a4,40016ffc <rtems_rfs_fs_open+0x680>
errno = EIO;
return -1;
}
}
rc = rtems_rfs_inode_close (*fs, &inode);
40016ec4: 00810593 addi a1,sp,8
40016ec8: de4f10ef jal ra,400084ac <rtems_rfs_inode_close>
40016ecc: 00050413 mv s0,a0
printf ("rtems-rfs: open: closing root inode: %d: %s\n", rc, strerror (rc));
errno = rc;
return -1;
}
return 0;
40016ed0: 00000513 li a0,0
if (rc > 0)
40016ed4: 1a804263 bgtz s0,40017078 <rtems_rfs_fs_open+0x6fc> <== NEVER TAKEN
}
40016ed8: 04c12083 lw ra,76(sp)
40016edc: 04812403 lw s0,72(sp)
40016ee0: 04412483 lw s1,68(sp)
40016ee4: 04012903 lw s2,64(sp)
40016ee8: 03c12983 lw s3,60(sp)
40016eec: 03812a03 lw s4,56(sp)
40016ef0: 03412a83 lw s5,52(sp)
40016ef4: 05010113 addi sp,sp,80
40016ef8: 00008067 ret
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40016efc: 00100513 li a0,1 <== NOT EXECUTED
40016f00: 00000593 li a1,0 <== NOT EXECUTED
40016f04: a08f30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40016f08: f0050ae3 beqz a0,40016e1c <rtems_rfs_fs_open+0x4a0> <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: invalid superblock, bad magic\n");
40016f0c: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016f10: a1050513 addi a0,a0,-1520 # 40023a10 <IMFS_LIMITS_AND_OPTIONS+0xc30><== NOT EXECUTED
40016f14: b2dea0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
40016f18: f05ff06f j 40016e1c <rtems_rfs_fs_open+0x4a0> <== NOT EXECUTED
40016f1c: 8f9ef0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40016f20: 00100513 li a0,1 <== NOT EXECUTED
40016f24: 00000593 li a1,0 <== NOT EXECUTED
handle->dirty = false;
40016f28: 00010423 sb zero,8(sp) <== NOT EXECUTED
handle->bnum = 0;
40016f2c: 00012623 sw zero,12(sp) <== NOT EXECUTED
handle->buffer = NULL;
40016f30: 00012823 sw zero,16(sp) <== NOT EXECUTED
40016f34: 9d8f30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40016f38: 00051663 bnez a0,40016f44 <rtems_rfs_fs_open+0x5c8> <== NOT EXECUTED
return EIO;
40016f3c: 00500493 li s1,5 <== NOT EXECUTED
40016f40: e9dff06f j 40016ddc <rtems_rfs_fs_open+0x460> <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: groups blocks larger than block bits\n");
40016f44: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016f48: ad050513 addi a0,a0,-1328 # 40023ad0 <IMFS_LIMITS_AND_OPTIONS+0xcf0><== NOT EXECUTED
40016f4c: af5ea0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
return EIO;
40016f50: 00500493 li s1,5 <== NOT EXECUTED
40016f54: e89ff06f j 40016ddc <rtems_rfs_fs_open+0x460> <== NOT EXECUTED
printf ("rtems-rfs: open: reading superblock: %d: %s\n",
40016f58: 00048513 mv a0,s1 <== NOT EXECUTED
40016f5c: 008080ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40016f60: 00050613 mv a2,a0 <== NOT EXECUTED
40016f64: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016f68: 00048593 mv a1,s1 <== NOT EXECUTED
40016f6c: bd050513 addi a0,a0,-1072 # 40023bd0 <IMFS_LIMITS_AND_OPTIONS+0xdf0><== NOT EXECUTED
40016f70: a89ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40016f74: e89ff06f j 40016dfc <rtems_rfs_fs_open+0x480> <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: invalid superblock block size%d: %s\n",
40016f78: 00048513 mv a0,s1 <== NOT EXECUTED
40016f7c: 7e9070ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40016f80: 00050613 mv a2,a0 <== NOT EXECUTED
40016f84: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016f88: 00048593 mv a1,s1 <== NOT EXECUTED
40016f8c: b1450513 addi a0,a0,-1260 # 40023b14 <IMFS_LIMITS_AND_OPTIONS+0xd34><== NOT EXECUTED
40016f90: a69ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40016f94: e49ff06f j 40016ddc <rtems_rfs_fs_open+0x460> <== NOT EXECUTED
read_sb (RTEMS_RFS_SB_OFFSET_VERSION), RTEMS_RFS_VERSION_MASK);
40016f98: 0044c783 lbu a5,4(s1) <== NOT EXECUTED
40016f9c: 0054c703 lbu a4,5(s1) <== NOT EXECUTED
40016fa0: 0074c683 lbu a3,7(s1) <== NOT EXECUTED
40016fa4: 0064c583 lbu a1,6(s1) <== NOT EXECUTED
40016fa8: 01071713 slli a4,a4,0x10 <== NOT EXECUTED
40016fac: 01879793 slli a5,a5,0x18 <== NOT EXECUTED
40016fb0: 00e7e7b3 or a5,a5,a4 <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: inode size mismatch: fs:%" PRId32 " target:%" PRId32 "\n",
40016fb4: 00d7e7b3 or a5,a5,a3 <== NOT EXECUTED
read_sb (RTEMS_RFS_SB_OFFSET_VERSION), RTEMS_RFS_VERSION_MASK);
40016fb8: 00859593 slli a1,a1,0x8 <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: inode size mismatch: fs:%" PRId32 " target:%" PRId32 "\n",
40016fbc: 40024537 lui a0,0x40024 <== NOT EXECUTED
40016fc0: 00000613 li a2,0 <== NOT EXECUTED
40016fc4: 00b7e5b3 or a1,a5,a1 <== NOT EXECUTED
40016fc8: a8c50513 addi a0,a0,-1396 # 40023a8c <IMFS_LIMITS_AND_OPTIONS+0xcac><== NOT EXECUTED
40016fcc: a2dea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40016fd0: e4dff06f j 40016e1c <rtems_rfs_fs_open+0x4a0> <== NOT EXECUTED
free (*fs);
40016fd4: 00092503 lw a0,0(s2) <== NOT EXECUTED
40016fd8: db1ea0ef jal ra,40001d88 <free> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40016fdc: 00100513 li a0,1 <== NOT EXECUTED
40016fe0: 00000593 li a1,0 <== NOT EXECUTED
40016fe4: 928f30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40016fe8: 0c051863 bnez a0,400170b8 <rtems_rfs_fs_open+0x73c> <== NOT EXECUTED
errno = rc;
40016fec: 49d060ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40016ff0: 00852023 sw s0,0(a0) <== NOT EXECUTED
return -1;
40016ff4: fff00513 li a0,-1 <== NOT EXECUTED
40016ff8: ee1ff06f j 40016ed8 <rtems_rfs_fs_open+0x55c> <== NOT EXECUTED
rtems_rfs_inode_close (*fs, &inode);
40016ffc: 00810593 addi a1,sp,8 <== NOT EXECUTED
40017000: cacf10ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
rtems_rfs_buffer_close (*fs);
40017004: 00092503 lw a0,0(s2) <== NOT EXECUTED
40017008: c5def0ef jal ra,40006c64 <rtems_rfs_buffer_close> <== NOT EXECUTED
free (*fs);
4001700c: 00092503 lw a0,0(s2) <== NOT EXECUTED
40017010: d79ea0ef jal ra,40001d88 <free> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017014: 00100513 li a0,1 <== NOT EXECUTED
40017018: 00000593 li a1,0 <== NOT EXECUTED
4001701c: 8f0f30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40017020: 0a051c63 bnez a0,400170d8 <rtems_rfs_fs_open+0x75c> <== NOT EXECUTED
errno = EIO;
40017024: 465060ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40017028: 00500793 li a5,5 <== NOT EXECUTED
4001702c: 00f52023 sw a5,0(a0) <== NOT EXECUTED
return -1;
40017030: fff00513 li a0,-1 <== NOT EXECUTED
40017034: ea5ff06f j 40016ed8 <rtems_rfs_fs_open+0x55c> <== NOT EXECUTED
rtems_rfs_buffer_close (*fs);
40017038: 00092503 lw a0,0(s2) <== NOT EXECUTED
4001703c: c29ef0ef jal ra,40006c64 <rtems_rfs_buffer_close> <== NOT EXECUTED
free (*fs);
40017040: 00092503 lw a0,0(s2) <== NOT EXECUTED
40017044: d45ea0ef jal ra,40001d88 <free> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017048: 00100513 li a0,1 <== NOT EXECUTED
4001704c: 00000593 li a1,0 <== NOT EXECUTED
40017050: 8bcf30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40017054: f8050ce3 beqz a0,40016fec <rtems_rfs_fs_open+0x670> <== NOT EXECUTED
printf ("rtems-rfs: open: reading root inode: %d: %s\n",
40017058: 00040513 mv a0,s0 <== NOT EXECUTED
4001705c: 709070ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40017060: 00050613 mv a2,a0 <== NOT EXECUTED
40017064: 40024537 lui a0,0x40024 <== NOT EXECUTED
40017068: 00040593 mv a1,s0 <== NOT EXECUTED
4001706c: c0050513 addi a0,a0,-1024 # 40023c00 <IMFS_LIMITS_AND_OPTIONS+0xe20><== NOT EXECUTED
40017070: 989ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40017074: f79ff06f j 40016fec <rtems_rfs_fs_open+0x670> <== NOT EXECUTED
rtems_rfs_buffer_close (*fs);
40017078: 00092503 lw a0,0(s2) <== NOT EXECUTED
4001707c: be9ef0ef jal ra,40006c64 <rtems_rfs_buffer_close> <== NOT EXECUTED
free (*fs);
40017080: 00092503 lw a0,0(s2) <== NOT EXECUTED
40017084: d05ea0ef jal ra,40001d88 <free> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017088: 00100513 li a0,1 <== NOT EXECUTED
4001708c: 00000593 li a1,0 <== NOT EXECUTED
40017090: 87cf30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40017094: f4050ce3 beqz a0,40016fec <rtems_rfs_fs_open+0x670> <== NOT EXECUTED
printf ("rtems-rfs: open: closing root inode: %d: %s\n", rc, strerror (rc));
40017098: 00040513 mv a0,s0 <== NOT EXECUTED
4001709c: 6c9070ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400170a0: 00050613 mv a2,a0 <== NOT EXECUTED
400170a4: 40024537 lui a0,0x40024 <== NOT EXECUTED
400170a8: 00040593 mv a1,s0 <== NOT EXECUTED
400170ac: c5c50513 addi a0,a0,-932 # 40023c5c <IMFS_LIMITS_AND_OPTIONS+0xe7c><== NOT EXECUTED
400170b0: 949ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400170b4: f39ff06f j 40016fec <rtems_rfs_fs_open+0x670> <== NOT EXECUTED
printf ("rtems-rfs: open: buffer open failed: %d: %s\n",
400170b8: 00040513 mv a0,s0 <== NOT EXECUTED
400170bc: 6a9070ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400170c0: 00050613 mv a2,a0 <== NOT EXECUTED
400170c4: 40024537 lui a0,0x40024 <== NOT EXECUTED
400170c8: 00040593 mv a1,s0 <== NOT EXECUTED
400170cc: 9ac50513 addi a0,a0,-1620 # 400239ac <IMFS_LIMITS_AND_OPTIONS+0xbcc><== NOT EXECUTED
400170d0: 929ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400170d4: f19ff06f j 40016fec <rtems_rfs_fs_open+0x670> <== NOT EXECUTED
printf ("rtems-rfs: open: invalid root inode mode\n");
400170d8: 40024537 lui a0,0x40024 <== NOT EXECUTED
400170dc: c3050513 addi a0,a0,-976 # 40023c30 <IMFS_LIMITS_AND_OPTIONS+0xe50><== NOT EXECUTED
400170e0: 961ea0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
400170e4: f41ff06f j 40017024 <rtems_rfs_fs_open+0x6a8> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
400170e8: 00100513 li a0,1 <== NOT EXECUTED
400170ec: 00000593 li a1,0 <== NOT EXECUTED
400170f0: 81cf30ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400170f4: 00051c63 bnez a0,4001710c <rtems_rfs_fs_open+0x790> <== NOT EXECUTED
errno = ENOMEM;
400170f8: 391060ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
400170fc: 00c00793 li a5,12 <== NOT EXECUTED
40017100: 00f52023 sw a5,0(a0) <== NOT EXECUTED
return -1;
40017104: fff00513 li a0,-1 <== NOT EXECUTED
40017108: dd1ff06f j 40016ed8 <rtems_rfs_fs_open+0x55c> <== NOT EXECUTED
printf ("rtems-rfs: open: no memory for file system data\n");
4001710c: 40024537 lui a0,0x40024 <== NOT EXECUTED
40017110: 97c50513 addi a0,a0,-1668 # 4002397c <IMFS_LIMITS_AND_OPTIONS+0xb9c><== NOT EXECUTED
40017114: 92dea0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
40017118: fe1ff06f j 400170f8 <rtems_rfs_fs_open+0x77c> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
4001711c: 00810593 addi a1,sp,8 <== NOT EXECUTED
40017120: 00040513 mv a0,s0 <== NOT EXECUTED
40017124: ef0ef0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_OPEN))
40017128: 00100513 li a0,1 <== NOT EXECUTED
4001712c: 00000593 li a1,0 <== NOT EXECUTED
handle->dirty = false;
40017130: 00010423 sb zero,8(sp) <== NOT EXECUTED
handle->bnum = 0;
40017134: 00012623 sw zero,12(sp) <== NOT EXECUTED
handle->buffer = NULL;
40017138: 00012823 sw zero,16(sp) <== NOT EXECUTED
4001713c: fd1f20ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40017140: 00051663 bnez a0,4001714c <rtems_rfs_fs_open+0x7d0> <== NOT EXECUTED
return ENOMEM;
40017144: 00c00493 li s1,12 <== NOT EXECUTED
40017148: c95ff06f j 40016ddc <rtems_rfs_fs_open+0x460> <== NOT EXECUTED
printf ("rtems-rfs: read-superblock: no memory for group table\n");
4001714c: 40024537 lui a0,0x40024 <== NOT EXECUTED
40017150: b5850513 addi a0,a0,-1192 # 40023b58 <IMFS_LIMITS_AND_OPTIONS+0xd78><== NOT EXECUTED
40017154: 8edea0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
return ENOMEM;
40017158: 00c00493 li s1,12 <== NOT EXECUTED
4001715c: c81ff06f j 40016ddc <rtems_rfs_fs_open+0x460> <== NOT EXECUTED
40016950 <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;
40016950: 00452703 lw a4,4(a0) <== NOT EXECUTED
40016954: 00852503 lw a0,8(a0) <== NOT EXECUTED
40016958: 02a735b3 mulhu a1,a4,a0 <== NOT EXECUTED
}
4001695c: 02a70533 mul a0,a4,a0 <== NOT EXECUTED
40016960: 00008067 ret <== NOT EXECUTED
40007da4 <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)
{
40007da4: fa010113 addi sp,sp,-96
40007da8: 04912a23 sw s1,84(sp)
40007dac: 05412423 sw s4,72(sp)
40007db0: 04112e23 sw ra,92(sp)
40007db4: 04812c23 sw s0,88(sp)
40007db8: 05212823 sw s2,80(sp)
40007dbc: 05312623 sw s3,76(sp)
40007dc0: 05512223 sw s5,68(sp)
40007dc4: 05612023 sw s6,64(sp)
40007dc8: 03712e23 sw s7,60(sp)
40007dcc: 03812c23 sw s8,56(sp)
40007dd0: 03912a23 sw s9,52(sp)
40007dd4: 03a12823 sw s10,48(sp)
40007dd8: 03b12623 sw s11,44(sp)
40007ddc: 00d12623 sw a3,12(sp)
40007de0: 00060a13 mv s4,a2
40007de4: 00050493 mv s1,a0
rtems_rfs_bitmap_bit bit;
int offset;
bool updown;
int direction;
if (inode)
40007de8: 12060463 beqz a2,40007f10 <rtems_rfs_group_bitmap_alloc+0x16c>
{
size = fs->group_inodes;
40007dec: 02c52783 lw a5,44(a0)
goal -= RTEMS_RFS_ROOT_INO;
40007df0: fff58593 addi a1,a1,-1 # fff <bsp_section_data_size+0xac3>
*/
if (goal >= RTEMS_RFS_ROOT_INO)
goal -= RTEMS_RFS_ROOT_INO;
}
group_start = goal / size;
40007df4: 02f5d9b3 divu s3,a1,a5
*/
while (true)
{
rtems_rfs_bitmap_control* bitmap;
int group;
bool allocated = false;
40007df8: 00010da3 sb zero,27(sp)
direction = 1;
40007dfc: 00100c93 li s9,1
updown = true;
40007e00: 00100c13 li s8,1
bool allocated = false;
40007e04: 00000913 li s2,0
* Otherwise we are marching through the groups, so just
* increment the offset.
*/
if (updown)
{
direction = direction > 0 ? -1 : 1;
40007e08: 00100d13 li s10,1
bit = direction > 0 ? 0 : size - 1;
40007e0c: fff78b93 addi s7,a5,-1 # fff <bsp_section_data_size+0xac3>
bit = (rtems_rfs_bitmap_bit) (goal % size);
40007e10: 02f5f5b3 remu a1,a1,a5
group = group_start + (direction * offset);
40007e14: 00098413 mv s0,s3
bit = (rtems_rfs_bitmap_bit) (goal % size);
40007e18: 00b12e23 sw a1,28(sp)
group = group_start + (direction * offset);
40007e1c: 01298db3 add s11,s3,s2
if ((group < 0) || (group >= fs->group_count))
40007e20: 06044e63 bltz s0,40007e9c <rtems_rfs_group_bitmap_alloc+0xf8>
40007e24: 0244a783 lw a5,36(s1)
40007e28: 06f45a63 bge s0,a5,40007e9c <rtems_rfs_group_bitmap_alloc+0xf8>
bitmap = &fs->groups[group].inode_bitmap;
40007e2c: 0204a783 lw a5,32(s1)
40007e30: 00241b13 slli s6,s0,0x2
40007e34: 008b0b33 add s6,s6,s0
40007e38: 004b1b13 slli s6,s6,0x4
40007e3c: 016787b3 add a5,a5,s6
bitmap = &fs->groups[group].block_bitmap;
40007e40: 00878a93 addi s5,a5,8
if (inode)
40007e44: 0c0a1e63 bnez s4,40007f20 <rtems_rfs_group_bitmap_alloc+0x17c>
rc = rtems_rfs_bitmap_map_alloc (bitmap, bit, &allocated, &bit);
40007e48: 01c12583 lw a1,28(sp)
40007e4c: 01c10693 addi a3,sp,28
40007e50: 01b10613 addi a2,sp,27
40007e54: 000a8513 mv a0,s5
40007e58: 880fe0ef jal ra,40005ed8 <rtems_rfs_bitmap_map_alloc>
if (rc > 0)
40007e5c: 06a04c63 bgtz a0,40007ed4 <rtems_rfs_group_bitmap_alloc+0x130> <== NEVER TAKEN
if (rtems_rfs_fs_release_bitmaps (fs))
40007e60: 0004a783 lw a5,0(s1)
40007e64: 0017f793 andi a5,a5,1
40007e68: 10078863 beqz a5,40007f78 <rtems_rfs_group_bitmap_alloc+0x1d4> <== ALWAYS TAKEN
if (allocated)
40007e6c: 01b14783 lbu a5,27(sp)
40007e70: 12079863 bnez a5,40007fa0 <rtems_rfs_group_bitmap_alloc+0x1fc>
if (updown)
40007e74: 0a0c0a63 beqz s8,40007f28 <rtems_rfs_group_bitmap_alloc+0x184> <== NEVER TAKEN
direction = direction > 0 ? -1 : 1;
40007e78: 11ac9863 bne s9,s10,40007f88 <rtems_rfs_group_bitmap_alloc+0x1e4>
if ( direction == -1 )
offset++;
40007e7c: 00190913 addi s2,s2,1
bool allocated = false;
40007e80: 00010da3 sb zero,27(sp)
group = group_start + (direction * offset);
40007e84: 41298433 sub s0,s3,s2
direction = direction > 0 ? -1 : 1;
40007e88: fff00c93 li s9,-1
bit = direction > 0 ? 0 : size - 1;
40007e8c: 000b8793 mv a5,s7
40007e90: 00f12e23 sw a5,28(sp)
group = group_start + (direction * offset);
40007e94: 01298db3 add s11,s3,s2
40007e98: f89ff06f j 40007e20 <rtems_rfs_group_bitmap_alloc+0x7c>
if (!updown)
40007e9c: 020c0263 beqz s8,40007ec0 <rtems_rfs_group_bitmap_alloc+0x11c>
bool allocated = false;
40007ea0: 00010da3 sb zero,27(sp)
direction = direction > 0 ? -1 : 1;
40007ea4: 0bac9c63 bne s9,s10,40007f5c <rtems_rfs_group_bitmap_alloc+0x1b8>
group = group_start + (direction * offset);
40007ea8: 41298433 sub s0,s3,s2 <== NOT EXECUTED
direction = direction > 0 ? -1 : 1;
40007eac: fff00c93 li s9,-1 <== NOT EXECUTED
if (offset)
40007eb0: 00000c13 li s8,0 <== NOT EXECUTED
40007eb4: f60904e3 beqz s2,40007e1c <rtems_rfs_group_bitmap_alloc+0x78> <== NOT EXECUTED
bit = direction > 0 ? 0 : size - 1;
40007eb8: 000b8793 mv a5,s7 <== NOT EXECUTED
40007ebc: fd5ff06f j 40007e90 <rtems_rfs_group_bitmap_alloc+0xec> <== NOT EXECUTED
offset++;
}
}
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
40007ec0: 00020537 lui a0,0x20
40007ec4: 00000593 li a1,0
40007ec8: 244020ef jal ra,4000a10c <rtems_rfs_trace>
40007ecc: 06051e63 bnez a0,40007f48 <rtems_rfs_group_bitmap_alloc+0x1a4> <== NEVER TAKEN
printf ("rtems-rfs: group-bitmap-alloc: no blocks available\n");
return ENOSPC;
40007ed0: 01c00513 li a0,28
}
40007ed4: 05c12083 lw ra,92(sp)
40007ed8: 05812403 lw s0,88(sp)
40007edc: 05412483 lw s1,84(sp)
40007ee0: 05012903 lw s2,80(sp)
40007ee4: 04c12983 lw s3,76(sp)
40007ee8: 04812a03 lw s4,72(sp)
40007eec: 04412a83 lw s5,68(sp)
40007ef0: 04012b03 lw s6,64(sp)
40007ef4: 03c12b83 lw s7,60(sp)
40007ef8: 03812c03 lw s8,56(sp)
40007efc: 03412c83 lw s9,52(sp)
40007f00: 03012d03 lw s10,48(sp)
40007f04: 02c12d83 lw s11,44(sp)
40007f08: 06010113 addi sp,sp,96
40007f0c: 00008067 ret
goal -= RTEMS_RFS_ROOT_INO;
40007f10: 00b02733 sgtz a4,a1
size = fs->group_blocks;
40007f14: 02852783 lw a5,40(a0) # 20028 <bsp_section_bss_size+0x1aa78>
goal -= RTEMS_RFS_ROOT_INO;
40007f18: 40e585b3 sub a1,a1,a4
40007f1c: ed9ff06f j 40007df4 <rtems_rfs_group_bitmap_alloc+0x50>
bitmap = &fs->groups[group].inode_bitmap;
40007f20: 02c78a93 addi s5,a5,44
40007f24: f25ff06f j 40007e48 <rtems_rfs_group_bitmap_alloc+0xa4>
offset++;
40007f28: 00190913 addi s2,s2,1 <== NOT EXECUTED
group = group_start + (direction * offset);
40007f2c: 03990433 mul s0,s2,s9 <== NOT EXECUTED
bool allocated = false;
40007f30: 00010da3 sb zero,27(sp) <== NOT EXECUTED
group = group_start + (direction * offset);
40007f34: 01340433 add s0,s0,s3 <== NOT EXECUTED
bit = direction > 0 ? 0 : size - 1;
40007f38: f5ac9ae3 bne s9,s10,40007e8c <rtems_rfs_group_bitmap_alloc+0xe8> <== NOT EXECUTED
40007f3c: 00000793 li a5,0 <== NOT EXECUTED
40007f40: 00f12e23 sw a5,28(sp) <== NOT EXECUTED
40007f44: f51ff06f j 40007e94 <rtems_rfs_group_bitmap_alloc+0xf0> <== NOT EXECUTED
printf ("rtems-rfs: group-bitmap-alloc: no blocks available\n");
40007f48: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007f4c: 3e450513 addi a0,a0,996 # 400223e4 <IMFS_node_control_sym_link+0xe84><== NOT EXECUTED
40007f50: af1f90ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
return ENOSPC;
40007f54: 01c00513 li a0,28 <== NOT EXECUTED
40007f58: f7dff06f j 40007ed4 <rtems_rfs_group_bitmap_alloc+0x130> <== NOT EXECUTED
group = group_start + (direction * offset);
40007f5c: 01298433 add s0,s3,s2
if (offset)
40007f60: 00100c93 li s9,1
40007f64: 00000c13 li s8,0
bit = direction > 0 ? 0 : size - 1;
40007f68: 00000793 li a5,0
if (offset)
40007f6c: ea0908e3 beqz s2,40007e1c <rtems_rfs_group_bitmap_alloc+0x78> <== NEVER TAKEN
bit = direction > 0 ? 0 : size - 1;
40007f70: 00f12e23 sw a5,28(sp)
40007f74: f21ff06f j 40007e94 <rtems_rfs_group_bitmap_alloc+0xf0>
rtems_rfs_bitmap_release_buffer (fs, bitmap);
40007f78: 000aa583 lw a1,0(s5)
40007f7c: 00048513 mv a0,s1
40007f80: 895fe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
40007f84: ee9ff06f j 40007e6c <rtems_rfs_group_bitmap_alloc+0xc8>
bool allocated = false;
40007f88: 00010da3 sb zero,27(sp) <== NOT EXECUTED
group = group_start + (direction * offset);
40007f8c: 000d8413 mv s0,s11 <== NOT EXECUTED
if (offset)
40007f90: 00100c93 li s9,1 <== NOT EXECUTED
40007f94: e80906e3 beqz s2,40007e20 <rtems_rfs_group_bitmap_alloc+0x7c> <== NOT EXECUTED
bit = direction > 0 ? 0 : size - 1;
40007f98: 00000793 li a5,0 <== NOT EXECUTED
40007f9c: fa5ff06f j 40007f40 <rtems_rfs_group_bitmap_alloc+0x19c> <== NOT EXECUTED
*result = rtems_rfs_group_inode (fs, group, bit);
40007fa0: 01c12783 lw a5,28(sp)
if (inode)
40007fa4: 040a0863 beqz s4,40007ff4 <rtems_rfs_group_bitmap_alloc+0x250>
*result = rtems_rfs_group_inode (fs, group, bit);
40007fa8: 02c4a683 lw a3,44(s1)
40007fac: 00178713 addi a4,a5,1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
40007fb0: 00020537 lui a0,0x20
*result = rtems_rfs_group_inode (fs, group, bit);
40007fb4: 02d407b3 mul a5,s0,a3
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
40007fb8: 00000593 li a1,0
*result = rtems_rfs_group_inode (fs, group, bit);
40007fbc: 00e787b3 add a5,a5,a4
40007fc0: 00c12703 lw a4,12(sp)
40007fc4: 00f72023 sw a5,0(a4)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
40007fc8: 144020ef jal ra,4000a10c <rtems_rfs_trace>
40007fcc: 02050063 beqz a0,40007fec <rtems_rfs_group_bitmap_alloc+0x248> <== ALWAYS TAKEN
printf ("rtems-rfs: group-bitmap-alloc: %s allocated: %" PRId32 "\n",
40007fd0: 400225b7 lui a1,0x40022 <== NOT EXECUTED
40007fd4: 3a058593 addi a1,a1,928 # 400223a0 <IMFS_node_control_sym_link+0xe40><== NOT EXECUTED
40007fd8: 00c12783 lw a5,12(sp) <== NOT EXECUTED
40007fdc: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007fe0: 3b050513 addi a0,a0,944 # 400223b0 <IMFS_node_control_sym_link+0xe50><== NOT EXECUTED
40007fe4: 0007a603 lw a2,0(a5) <== NOT EXECUTED
40007fe8: a11f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
return 0;
40007fec: 00000513 li a0,0
40007ff0: ee5ff06f j 40007ed4 <rtems_rfs_group_bitmap_alloc+0x130>
*result = rtems_rfs_group_block (&fs->groups[group], bit);
40007ff4: 0204a703 lw a4,32(s1)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
40007ff8: 00020537 lui a0,0x20
40007ffc: 00000593 li a1,0
*result = rtems_rfs_group_block (&fs->groups[group], bit);
40008000: 01670b33 add s6,a4,s6
40008004: 000b2703 lw a4,0(s6)
40008008: 00f707b3 add a5,a4,a5
4000800c: 00c12703 lw a4,12(sp)
40008010: 00f72023 sw a5,0(a4)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
40008014: 0f8020ef jal ra,4000a10c <rtems_rfs_trace>
40008018: fc050ae3 beqz a0,40007fec <rtems_rfs_group_bitmap_alloc+0x248> <== ALWAYS TAKEN
printf ("rtems-rfs: group-bitmap-alloc: %s allocated: %" PRId32 "\n",
4000801c: 400225b7 lui a1,0x40022 <== NOT EXECUTED
40008020: 3a858593 addi a1,a1,936 # 400223a8 <IMFS_node_control_sym_link+0xe48><== NOT EXECUTED
40008024: fb5ff06f j 40007fd8 <rtems_rfs_group_bitmap_alloc+0x234> <== NOT EXECUTED
40008028 <rtems_rfs_group_bitmap_free>:
int
rtems_rfs_group_bitmap_free (rtems_rfs_file_system* fs,
bool inode,
rtems_rfs_bitmap_bit no)
{
40008028: ff010113 addi sp,sp,-16
4000802c: 00912223 sw s1,4(sp)
40008030: 01212023 sw s2,0(sp)
40008034: 00050493 mv s1,a0
40008038: 00058913 mv s2,a1
unsigned int group;
rtems_rfs_bitmap_bit bit;
size_t size;
int rc;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
4000803c: 00020537 lui a0,0x20
40008040: 00000593 li a1,0
{
40008044: 00812423 sw s0,8(sp)
40008048: 00112623 sw ra,12(sp)
4000804c: 00060413 mv s0,a2
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_BITMAPS))
40008050: 0bc020ef jal ra,4000a10c <rtems_rfs_trace>
40008054: 02050063 beqz a0,40008074 <rtems_rfs_group_bitmap_free+0x4c> <== ALWAYS TAKEN
printf ("rtems-rfs: group-bitmap-free: %s free: %" PRId32 "\n",
40008058: 0a091063 bnez s2,400080f8 <rtems_rfs_group_bitmap_free+0xd0> <== NOT EXECUTED
4000805c: 400225b7 lui a1,0x40022 <== NOT EXECUTED
40008060: 3a858593 addi a1,a1,936 # 400223a8 <IMFS_node_control_sym_link+0xe48><== NOT EXECUTED
40008064: 40022537 lui a0,0x40022 <== NOT EXECUTED
40008068: 00040613 mv a2,s0 <== NOT EXECUTED
4000806c: 41850513 addi a0,a0,1048 # 40022418 <IMFS_node_control_sym_link+0xeb8><== NOT EXECUTED
40008070: 989f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
group = no / size;
bit = (rtems_rfs_bitmap_bit) (no % size);
if (inode)
bitmap = &fs->groups[group].inode_bitmap;
40008074: 0204a783 lw a5,32(s1)
no -= RTEMS_RFS_ROOT_INO;
40008078: fff40613 addi a2,s0,-1
if (inode)
4000807c: 04090c63 beqz s2,400080d4 <rtems_rfs_group_bitmap_free+0xac>
size = fs->group_inodes;
40008080: 02c4a583 lw a1,44(s1)
group = no / size;
40008084: 02b65733 divu a4,a2,a1
bit = (rtems_rfs_bitmap_bit) (no % size);
40008088: 02b675b3 remu a1,a2,a1
bitmap = &fs->groups[group].inode_bitmap;
4000808c: 00271413 slli s0,a4,0x2
40008090: 00e40433 add s0,s0,a4
40008094: 00441413 slli s0,s0,0x4
40008098: 00878433 add s0,a5,s0
4000809c: 02c40413 addi s0,s0,44
else
bitmap = &fs->groups[group].block_bitmap;
rc = rtems_rfs_bitmap_map_clear (bitmap, bit);
400080a0: 00040513 mv a0,s0
400080a4: b0dfd0ef jal ra,40005bb0 <rtems_rfs_bitmap_map_clear>
rtems_rfs_bitmap_release_buffer (fs, bitmap);
400080a8: 00042583 lw a1,0(s0)
rc = rtems_rfs_bitmap_map_clear (bitmap, bit);
400080ac: 00050413 mv s0,a0
rtems_rfs_bitmap_release_buffer (fs, bitmap);
400080b0: 00048513 mv a0,s1
400080b4: f60fe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
return rc;
}
400080b8: 00c12083 lw ra,12(sp)
400080bc: 00040513 mv a0,s0
400080c0: 00812403 lw s0,8(sp)
400080c4: 00412483 lw s1,4(sp)
400080c8: 00012903 lw s2,0(sp)
400080cc: 01010113 addi sp,sp,16
400080d0: 00008067 ret
size = fs->group_blocks;
400080d4: 0284a583 lw a1,40(s1)
group = no / size;
400080d8: 02b65733 divu a4,a2,a1
bitmap = &fs->groups[group].block_bitmap;
400080dc: 00271413 slli s0,a4,0x2
400080e0: 00e40433 add s0,s0,a4
400080e4: 00441413 slli s0,s0,0x4
400080e8: 00878433 add s0,a5,s0
bit = (rtems_rfs_bitmap_bit) (no % size);
400080ec: 02b675b3 remu a1,a2,a1
bitmap = &fs->groups[group].block_bitmap;
400080f0: 00840413 addi s0,s0,8
400080f4: fadff06f j 400080a0 <rtems_rfs_group_bitmap_free+0x78>
printf ("rtems-rfs: group-bitmap-free: %s free: %" PRId32 "\n",
400080f8: 400225b7 lui a1,0x40022 <== NOT EXECUTED
400080fc: 3a058593 addi a1,a1,928 # 400223a0 <IMFS_node_control_sym_link+0xe40><== NOT EXECUTED
40008100: f65ff06f j 40008064 <rtems_rfs_group_bitmap_free+0x3c> <== NOT EXECUTED
40007ce8 <rtems_rfs_group_close>:
int
rtems_rfs_group_close (rtems_rfs_file_system* fs, rtems_rfs_group* group)
{
40007ce8: fe010113 addi sp,sp,-32
40007cec: 00812c23 sw s0,24(sp)
40007cf0: 01212823 sw s2,16(sp)
40007cf4: 00058413 mv s0,a1
40007cf8: 00050913 mv s2,a0
int result = 0;
int rc;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_CLOSE))
40007cfc: 00000593 li a1,0
40007d00: 00010537 lui a0,0x10
{
40007d04: 00112e23 sw ra,28(sp)
40007d08: 00912a23 sw s1,20(sp)
40007d0c: 01312623 sw s3,12(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_CLOSE))
40007d10: 3fc020ef jal ra,4000a10c <rtems_rfs_trace>
40007d14: 06051e63 bnez a0,40007d90 <rtems_rfs_group_close+0xa8> <== NEVER TAKEN
/*
* 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);
40007d18: 02c40513 addi a0,s0,44
40007d1c: c28fe0ef jal ra,40006144 <rtems_rfs_bitmap_close>
rtems_rfs_buffer_handle_release (fs, handle);
40007d20: 04440593 addi a1,s0,68
40007d24: 00050993 mv s3,a0
40007d28: 00090513 mv a0,s2
40007d2c: ae9fe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
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);
40007d30: 00840513 addi a0,s0,8
handle->dirty = false;
40007d34: 04040223 sb zero,68(s0)
handle->bnum = 0;
40007d38: 04042423 sw zero,72(s0)
handle->buffer = NULL;
40007d3c: 04042623 sw zero,76(s0)
40007d40: c04fe0ef jal ra,40006144 <rtems_rfs_bitmap_close>
40007d44: 00050493 mv s1,a0
if (rc > 0)
40007d48: 00a04863 bgtz a0,40007d58 <rtems_rfs_group_close+0x70> <== NEVER TAKEN
40007d4c: fff9c493 not s1,s3
40007d50: 41f4d493 srai s1,s1,0x1f
40007d54: 0099f4b3 and s1,s3,s1
rtems_rfs_buffer_handle_release (fs, handle);
40007d58: 02040593 addi a1,s0,32
40007d5c: 00090513 mv a0,s2
40007d60: ab5fe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
rc = rtems_rfs_buffer_handle_close (fs, &group->block_bitmap_buffer);
if (rc > 0)
result = rc;
return result;
}
40007d64: 01c12083 lw ra,28(sp)
handle->dirty = false;
40007d68: 02040023 sb zero,32(s0)
handle->bnum = 0;
40007d6c: 02042223 sw zero,36(s0)
handle->buffer = NULL;
40007d70: 02042423 sw zero,40(s0)
40007d74: 01812403 lw s0,24(sp)
40007d78: 01012903 lw s2,16(sp)
40007d7c: 00c12983 lw s3,12(sp)
40007d80: 00048513 mv a0,s1
40007d84: 01412483 lw s1,20(sp)
40007d88: 02010113 addi sp,sp,32
40007d8c: 00008067 ret
printf ("rtems-rfs: group-close: base=%" PRId32 "\n", group->base);
40007d90: 00042583 lw a1,0(s0) <== NOT EXECUTED
40007d94: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007d98: 37c50513 addi a0,a0,892 # 4002237c <IMFS_node_control_sym_link+0xe1c><== NOT EXECUTED
40007d9c: c5df90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40007da0: f79ff06f j 40007d18 <rtems_rfs_group_close+0x30> <== NOT EXECUTED
40007aac <rtems_rfs_group_open>:
size_t inodes,
rtems_rfs_group* group)
{
int rc;
if (base >= rtems_rfs_fs_blocks (fs))
40007aac: 00452783 lw a5,4(a0)
{
40007ab0: fe010113 addi sp,sp,-32
40007ab4: 00112e23 sw ra,28(sp)
40007ab8: 00812c23 sw s0,24(sp)
40007abc: 00912a23 sw s1,20(sp)
40007ac0: 01212823 sw s2,16(sp)
40007ac4: 01312623 sw s3,12(sp)
40007ac8: 01412423 sw s4,8(sp)
40007acc: 01512223 sw s5,4(sp)
40007ad0: 01612023 sw s6,0(sp)
if (base >= rtems_rfs_fs_blocks (fs))
40007ad4: 1ef5f063 bgeu a1,a5,40007cb4 <rtems_rfs_group_open+0x208>
40007ad8: 00070413 mv s0,a4
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))
40007adc: 00c58733 add a4,a1,a2
40007ae0: 00050993 mv s3,a0
40007ae4: 00058913 mv s2,a1
40007ae8: 00060493 mv s1,a2
40007aec: 00f76463 bltu a4,a5,40007af4 <rtems_rfs_group_open+0x48>
size = rtems_rfs_fs_blocks (fs) - base;
40007af0: 40b784b3 sub s1,a5,a1
* 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)
40007af4: 00048a93 mv s5,s1
40007af8: 0c96e063 bltu a3,s1,40007bb8 <rtems_rfs_group_open+0x10c>
inodes = size;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
40007afc: 00008537 lui a0,0x8 <== NOT EXECUTED
40007b00: 00000593 li a1,0 <== NOT EXECUTED
40007b04: 608020ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40007b08: 0c051263 bnez a0,40007bcc <rtems_rfs_group_open+0x120> <== NOT EXECUTED
base, size, inodes);
group->base = base;
group->size = size;
rc = rtems_rfs_buffer_handle_open (fs, &group->block_bitmap_buffer);
40007b0c: 02040a13 addi s4,s0,32
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,
40007b10: 00840b13 addi s6,s0,8
group->size = size;
40007b14: 00942223 sw s1,4(s0)
rc = rtems_rfs_bitmap_open (&group->block_bitmap, fs,
40007b18: 00048693 mv a3,s1
group->base = base;
40007b1c: 01242023 sw s2,0(s0)
handle->dirty = false;
40007b20: 02040023 sb zero,32(s0)
handle->bnum = 0;
40007b24: 02042223 sw zero,36(s0)
handle->buffer = NULL;
40007b28: 02042423 sw zero,40(s0)
rc = rtems_rfs_bitmap_open (&group->block_bitmap, fs,
40007b2c: 00090713 mv a4,s2
40007b30: 000a0613 mv a2,s4
40007b34: 00098593 mv a1,s3
40007b38: 000b0513 mv a0,s6
40007b3c: da4fe0ef jal ra,400060e0 <rtems_rfs_bitmap_open>
40007b40: 00050493 mv s1,a0
&group->block_bitmap_buffer, size,
group->base + RTEMS_RFS_GROUP_BLOCK_BITMAP_BLOCK);
if (rc > 0)
40007b44: 0aa04263 bgtz a0,40007be8 <rtems_rfs_group_open+0x13c> <== NEVER TAKEN
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,
40007b48: 00042703 lw a4,0(s0)
rc = rtems_rfs_buffer_handle_open (fs, &group->inode_bitmap_buffer);
40007b4c: 04440913 addi s2,s0,68
handle->dirty = false;
40007b50: 04040223 sb zero,68(s0)
handle->bnum = 0;
40007b54: 04042423 sw zero,72(s0)
handle->buffer = NULL;
40007b58: 04042623 sw zero,76(s0)
rc = rtems_rfs_bitmap_open (&group->inode_bitmap, fs,
40007b5c: 00170713 addi a4,a4,1
40007b60: 000a8693 mv a3,s5
40007b64: 00090613 mv a2,s2
40007b68: 00098593 mv a1,s3
40007b6c: 02c40513 addi a0,s0,44
40007b70: d70fe0ef jal ra,400060e0 <rtems_rfs_bitmap_open>
40007b74: 00050493 mv s1,a0
&group->inode_bitmap_buffer, inodes,
group->base + RTEMS_RFS_GROUP_INODE_BITMAP_BLOCK);
if (rc > 0)
40007b78: 0aa04c63 bgtz a0,40007c30 <rtems_rfs_group_open+0x184> <== NEVER TAKEN
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))
40007b7c: 0009a783 lw a5,0(s3)
{
rtems_rfs_bitmap_release_buffer (fs, &group->block_bitmap);
rtems_rfs_bitmap_release_buffer (fs, &group->inode_bitmap);
}
return 0;
40007b80: 00000493 li s1,0
if (rtems_rfs_fs_release_bitmaps (fs))
40007b84: 0017f793 andi a5,a5,1
40007b88: 10078863 beqz a5,40007c98 <rtems_rfs_group_open+0x1ec> <== ALWAYS TAKEN
}
40007b8c: 01c12083 lw ra,28(sp)
40007b90: 01812403 lw s0,24(sp)
40007b94: 01012903 lw s2,16(sp)
40007b98: 00c12983 lw s3,12(sp)
40007b9c: 00812a03 lw s4,8(sp)
40007ba0: 00412a83 lw s5,4(sp)
40007ba4: 00012b03 lw s6,0(sp)
40007ba8: 00048513 mv a0,s1
40007bac: 01412483 lw s1,20(sp)
40007bb0: 02010113 addi sp,sp,32
40007bb4: 00008067 ret
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
40007bb8: 00008537 lui a0,0x8
40007bbc: 00000593 li a1,0
40007bc0: 00068a93 mv s5,a3
40007bc4: 548020ef jal ra,4000a10c <rtems_rfs_trace>
40007bc8: f40502e3 beqz a0,40007b0c <rtems_rfs_group_open+0x60> <== ALWAYS TAKEN
printf ("rtems-rfs: group-open: base=%" PRId32 ", blocks=%zd inodes=%zd\n",
40007bcc: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007bd0: 000a8693 mv a3,s5 <== NOT EXECUTED
40007bd4: 00048613 mv a2,s1 <== NOT EXECUTED
40007bd8: 00090593 mv a1,s2 <== NOT EXECUTED
40007bdc: 2cc50513 addi a0,a0,716 # 400222cc <IMFS_node_control_sym_link+0xd6c><== NOT EXECUTED
40007be0: e19f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40007be4: f29ff06f j 40007b0c <rtems_rfs_group_open+0x60> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40007be8: 000a0593 mv a1,s4 <== NOT EXECUTED
40007bec: 00098513 mv a0,s3 <== NOT EXECUTED
40007bf0: c25fe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
40007bf4: 00008537 lui a0,0x8 <== NOT EXECUTED
40007bf8: 00000593 li a1,0 <== NOT EXECUTED
handle->dirty = false;
40007bfc: 02040023 sb zero,32(s0) <== NOT EXECUTED
handle->bnum = 0;
40007c00: 02042223 sw zero,36(s0) <== NOT EXECUTED
handle->buffer = NULL;
40007c04: 02042423 sw zero,40(s0) <== NOT EXECUTED
40007c08: 504020ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40007c0c: f80500e3 beqz a0,40007b8c <rtems_rfs_group_open+0xe0> <== NOT EXECUTED
printf ("rtems-rfs: group-open: could not open block bitmap: %d: %s\n",
40007c10: 00048513 mv a0,s1 <== NOT EXECUTED
40007c14: 350170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40007c18: 00050613 mv a2,a0 <== NOT EXECUTED
40007c1c: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007c20: 00048593 mv a1,s1 <== NOT EXECUTED
40007c24: 30450513 addi a0,a0,772 # 40022304 <IMFS_node_control_sym_link+0xda4><== NOT EXECUTED
40007c28: dd1f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40007c2c: f61ff06f j 40007b8c <rtems_rfs_group_open+0xe0> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40007c30: 00090593 mv a1,s2 <== NOT EXECUTED
40007c34: 00098513 mv a0,s3 <== NOT EXECUTED
40007c38: bddfe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
rtems_rfs_bitmap_close (&group->block_bitmap);
40007c3c: 000b0513 mv a0,s6 <== NOT EXECUTED
handle->dirty = false;
40007c40: 04040223 sb zero,68(s0) <== NOT EXECUTED
handle->bnum = 0;
40007c44: 04042423 sw zero,72(s0) <== NOT EXECUTED
handle->buffer = NULL;
40007c48: 04042623 sw zero,76(s0) <== NOT EXECUTED
40007c4c: cf8fe0ef jal ra,40006144 <rtems_rfs_bitmap_close> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40007c50: 000a0593 mv a1,s4 <== NOT EXECUTED
40007c54: 00098513 mv a0,s3 <== NOT EXECUTED
40007c58: bbdfe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
40007c5c: 00008537 lui a0,0x8 <== NOT EXECUTED
40007c60: 00000593 li a1,0 <== NOT EXECUTED
handle->dirty = false;
40007c64: 02040023 sb zero,32(s0) <== NOT EXECUTED
handle->bnum = 0;
40007c68: 02042223 sw zero,36(s0) <== NOT EXECUTED
handle->buffer = NULL;
40007c6c: 02042423 sw zero,40(s0) <== NOT EXECUTED
40007c70: 49c020ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40007c74: f0050ce3 beqz a0,40007b8c <rtems_rfs_group_open+0xe0> <== NOT EXECUTED
printf ("rtems-rfs: group-open: could not open inode bitmap: %d: %s\n",
40007c78: 00048513 mv a0,s1 <== NOT EXECUTED
40007c7c: 2e8170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40007c80: 00050613 mv a2,a0 <== NOT EXECUTED
40007c84: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007c88: 00048593 mv a1,s1 <== NOT EXECUTED
40007c8c: 34050513 addi a0,a0,832 # 40022340 <IMFS_node_control_sym_link+0xde0><== NOT EXECUTED
40007c90: d69f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40007c94: ef9ff06f j 40007b8c <rtems_rfs_group_open+0xe0> <== NOT EXECUTED
rtems_rfs_bitmap_release_buffer (fs, &group->block_bitmap);
40007c98: 00842583 lw a1,8(s0)
40007c9c: 00098513 mv a0,s3
40007ca0: b75fe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
rtems_rfs_bitmap_release_buffer (fs, &group->inode_bitmap);
40007ca4: 02c42583 lw a1,44(s0)
40007ca8: 00098513 mv a0,s3
40007cac: b69fe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
40007cb0: eddff06f j 40007b8c <rtems_rfs_group_open+0xe0>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
40007cb4: 00008537 lui a0,0x8 <== NOT EXECUTED
40007cb8: 00000593 li a1,0 <== NOT EXECUTED
40007cbc: 450020ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
return EIO;
40007cc0: 00500493 li s1,5 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
40007cc4: ec0504e3 beqz a0,40007b8c <rtems_rfs_group_open+0xe0> <== NOT EXECUTED
printf ("rtems-rfs: group-open: base outside file system range: %d: %s\n",
40007cc8: 00500513 li a0,5 <== NOT EXECUTED
40007ccc: 298170ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40007cd0: 00050613 mv a2,a0 <== NOT EXECUTED
40007cd4: 40022537 lui a0,0x40022 <== NOT EXECUTED
40007cd8: 00500593 li a1,5 <== NOT EXECUTED
40007cdc: 28c50513 addi a0,a0,652 # 4002228c <IMFS_node_control_sym_link+0xd2c><== NOT EXECUTED
40007ce0: d19f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40007ce4: ea9ff06f j 40007b8c <rtems_rfs_group_open+0xe0> <== NOT EXECUTED
40008104 <rtems_rfs_group_usage>:
size_t* blocks,
size_t* inodes)
{
int g;
*blocks = 0;
40008104: 0005a023 sw zero,0(a1) <== NOT EXECUTED
*inodes = 0;
40008108: 00062023 sw zero,0(a2) <== NOT EXECUTED
for (g = 0; g < fs->group_count; g++)
4000810c: 02452783 lw a5,36(a0) <== NOT EXECUTED
40008110: 06f05463 blez a5,40008178 <rtems_rfs_group_usage+0x74> <== NOT EXECUTED
40008114: 02052783 lw a5,32(a0) <== NOT EXECUTED
40008118: 00000693 li a3,0 <== NOT EXECUTED
4000811c: 01478793 addi a5,a5,20 <== NOT EXECUTED
{
rtems_rfs_group* group = &fs->groups[g];
*blocks +=
40008120: 0007a883 lw a7,0(a5) <== NOT EXECUTED
40008124: 0005a703 lw a4,0(a1) <== NOT EXECUTED
40008128: 0047a803 lw a6,4(a5) <== NOT EXECUTED
for (g = 0; g < fs->group_count; g++)
4000812c: 00168693 addi a3,a3,1 <== NOT EXECUTED
*blocks +=
40008130: 01170733 add a4,a4,a7 <== NOT EXECUTED
40008134: 41070733 sub a4,a4,a6 <== NOT EXECUTED
40008138: 00e5a023 sw a4,0(a1) <== NOT EXECUTED
rtems_rfs_bitmap_map_size(&group->block_bitmap) -
rtems_rfs_bitmap_map_free (&group->block_bitmap);
*inodes +=
4000813c: 0247a883 lw a7,36(a5) <== NOT EXECUTED
40008140: 00062703 lw a4,0(a2) <== NOT EXECUTED
40008144: 0287a803 lw a6,40(a5) <== NOT EXECUTED
for (g = 0; g < fs->group_count; g++)
40008148: 05078793 addi a5,a5,80 <== NOT EXECUTED
*inodes +=
4000814c: 01170733 add a4,a4,a7 <== NOT EXECUTED
40008150: 41070733 sub a4,a4,a6 <== NOT EXECUTED
40008154: 00e62023 sw a4,0(a2) <== NOT EXECUTED
for (g = 0; g < fs->group_count; g++)
40008158: 02452803 lw a6,36(a0) <== NOT EXECUTED
4000815c: fd06c2e3 blt a3,a6,40008120 <rtems_rfs_group_usage+0x1c> <== 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))
40008160: 00452783 lw a5,4(a0) <== NOT EXECUTED
40008164: 0005a683 lw a3,0(a1) <== NOT EXECUTED
40008168: 00d7ec63 bltu a5,a3,40008180 <rtems_rfs_group_usage+0x7c> <== NOT EXECUTED
*blocks = rtems_rfs_fs_blocks (fs);
if (*inodes > rtems_rfs_fs_inodes (fs))
4000816c: 01452783 lw a5,20(a0) <== NOT EXECUTED
40008170: 00e7f463 bgeu a5,a4,40008178 <rtems_rfs_group_usage+0x74> <== NOT EXECUTED
*inodes = rtems_rfs_fs_inodes (fs);
40008174: 00f62023 sw a5,0(a2) <== NOT EXECUTED
return 0;
}
40008178: 00000513 li a0,0 <== NOT EXECUTED
4000817c: 00008067 ret <== NOT EXECUTED
*blocks = rtems_rfs_fs_blocks (fs);
40008180: 00f5a023 sw a5,0(a1) <== NOT EXECUTED
if (*inodes > rtems_rfs_fs_inodes (fs))
40008184: 00062703 lw a4,0(a2) <== NOT EXECUTED
40008188: fe5ff06f j 4000816c <rtems_rfs_group_usage+0x68> <== NOT EXECUTED
4000818c <rtems_rfs_inode_alloc>:
int
rtems_rfs_inode_alloc (rtems_rfs_file_system* fs,
rtems_rfs_bitmap_bit goal,
rtems_rfs_ino* ino)
{
4000818c: fe010113 addi sp,sp,-32 <== NOT EXECUTED
40008190: 00812c23 sw s0,24(sp) <== NOT EXECUTED
rtems_rfs_bitmap_bit bit;
int rc;
rc = rtems_rfs_group_bitmap_alloc (fs, goal, true, &bit);
40008194: 00c10693 addi a3,sp,12 <== NOT EXECUTED
{
40008198: 00060413 mv s0,a2 <== NOT EXECUTED
rc = rtems_rfs_group_bitmap_alloc (fs, goal, true, &bit);
4000819c: 00100613 li a2,1 <== NOT EXECUTED
{
400081a0: 00112e23 sw ra,28(sp) <== NOT EXECUTED
rc = rtems_rfs_group_bitmap_alloc (fs, goal, true, &bit);
400081a4: c01ff0ef jal ra,40007da4 <rtems_rfs_group_bitmap_alloc> <== NOT EXECUTED
*ino = bit;
400081a8: 00c12783 lw a5,12(sp) <== NOT EXECUTED
return rc;
}
400081ac: 01c12083 lw ra,28(sp) <== NOT EXECUTED
*ino = bit;
400081b0: 00f42023 sw a5,0(s0) <== NOT EXECUTED
}
400081b4: 01812403 lw s0,24(sp) <== NOT EXECUTED
400081b8: 02010113 addi sp,sp,32 <== NOT EXECUTED
400081bc: 00008067 ret <== NOT EXECUTED
400084ac <rtems_rfs_inode_close>:
{
400084ac: ff010113 addi sp,sp,-16
400084b0: 00812423 sw s0,8(sp)
400084b4: 00912223 sw s1,4(sp)
400084b8: 00058413 mv s0,a1
400084bc: 00050493 mv s1,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_CLOSE))
400084c0: 00000593 li a1,0
400084c4: 00080537 lui a0,0x80
{
400084c8: 00112623 sw ra,12(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_CLOSE))
400084cc: 441010ef jal ra,4000a10c <rtems_rfs_trace>
400084d0: 06051463 bnez a0,40008538 <rtems_rfs_inode_close+0x8c> <== NEVER TAKEN
rc = rtems_rfs_inode_unload (fs, handle, true);
400084d4: 00048513 mv a0,s1
400084d8: 00100613 li a2,1
400084dc: 00040593 mv a1,s0
400084e0: ebdff0ef jal ra,4000839c <rtems_rfs_inode_unload>
400084e4: 00050493 mv s1,a0
if ((rc == 0) && (handle->loads > 0))
400084e8: 00051663 bnez a0,400084f4 <rtems_rfs_inode_close+0x48> <== NEVER TAKEN
400084ec: 02442783 lw a5,36(s0)
400084f0: 02f04063 bgtz a5,40008510 <rtems_rfs_inode_close+0x64> <== NEVER TAKEN
}
400084f4: 00c12083 lw ra,12(sp)
handle->ino = 0;
400084f8: 00042423 sw zero,8(s0)
}
400084fc: 00812403 lw s0,8(sp)
40008500: 00048513 mv a0,s1
40008504: 00412483 lw s1,4(sp)
40008508: 01010113 addi sp,sp,16
4000850c: 00008067 ret
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_CLOSE))
40008510: 00080537 lui a0,0x80 <== NOT EXECUTED
40008514: 00000593 li a1,0 <== NOT EXECUTED
40008518: 3f5010ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
rc = EIO;
4000851c: 00500493 li s1,5 <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_CLOSE))
40008520: fc050ae3 beqz a0,400084f4 <rtems_rfs_inode_close+0x48> <== NOT EXECUTED
printf ("rtems-rfs: inode-close: bad loads number: %d\n",
40008524: 02442583 lw a1,36(s0) <== NOT EXECUTED
40008528: 40022537 lui a0,0x40022 <== NOT EXECUTED
4000852c: 4f850513 addi a0,a0,1272 # 400224f8 <IMFS_node_control_sym_link+0xf98><== NOT EXECUTED
40008530: cc8f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40008534: fc1ff06f j 400084f4 <rtems_rfs_inode_close+0x48> <== NOT EXECUTED
printf ("rtems-rfs: inode-close: ino: %" PRIu32 "\n", handle->ino);
40008538: 00842583 lw a1,8(s0) <== NOT EXECUTED
4000853c: 40022537 lui a0,0x40022 <== NOT EXECUTED
40008540: 4d450513 addi a0,a0,1236 # 400224d4 <IMFS_node_control_sym_link+0xf74><== NOT EXECUTED
40008544: cb4f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40008548: f8dff06f j 400084d4 <rtems_rfs_inode_close+0x28> <== NOT EXECUTED
400088b0 <rtems_rfs_inode_create>:
{
400088b0: f7010113 addi sp,sp,-144
400088b4: 07312e23 sw s3,124(sp)
400088b8: 07412c23 sw s4,120(sp)
400088bc: 00050993 mv s3,a0
400088c0: 00058a13 mv s4,a1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_CREATE))
400088c4: 00400537 lui a0,0x400
400088c8: 00000593 li a1,0
{
400088cc: 08912223 sw s1,132(sp)
400088d0: 09212023 sw s2,128(sp)
400088d4: 07512a23 sw s5,116(sp)
400088d8: 07612823 sw s6,112(sp)
400088dc: 07712623 sw s7,108(sp)
400088e0: 07812423 sw s8,104(sp)
400088e4: 07912223 sw s9,100(sp)
400088e8: 00070913 mv s2,a4
400088ec: 08112623 sw ra,140(sp)
400088f0: 08812423 sw s0,136(sp)
400088f4: 07a12023 sw s10,96(sp)
400088f8: 05b12e23 sw s11,92(sp)
400088fc: 00060a93 mv s5,a2
40008900: 00068b13 mv s6,a3
40008904: 00078b93 mv s7,a5
40008908: 00080c13 mv s8,a6
4000890c: 00088c93 mv s9,a7
40008910: fffff4b7 lui s1,0xfffff
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_CREATE))
40008914: 7f8010ef jal ra,4000a10c <rtems_rfs_trace>
40008918: 009974b3 and s1,s2,s1
4000891c: 08050263 beqz a0,400089a0 <rtems_rfs_inode_create+0xf0> <== ALWAYS TAKEN
if (RTEMS_RFS_S_ISDIR (mode))
40008920: 000047b7 lui a5,0x4 <== NOT EXECUTED
40008924: 02f48863 beq s1,a5,40008954 <rtems_rfs_inode_create+0xa4> <== NOT EXECUTED
else if (RTEMS_RFS_S_ISCHR (mode))
40008928: 000027b7 lui a5,0x2 <== NOT EXECUTED
4000892c: 24f48e63 beq s1,a5,40008b88 <rtems_rfs_inode_create+0x2d8> <== NOT EXECUTED
else if (RTEMS_RFS_S_ISBLK (mode))
40008930: 000067b7 lui a5,0x6 <== NOT EXECUTED
40008934: 1cf48e63 beq s1,a5,40008b10 <rtems_rfs_inode_create+0x260> <== NOT EXECUTED
else if (RTEMS_RFS_S_ISREG (mode))
40008938: 000087b7 lui a5,0x8 <== NOT EXECUTED
4000893c: 24f48c63 beq s1,a5,40008b94 <rtems_rfs_inode_create+0x2e4> <== NOT EXECUTED
else if (RTEMS_RFS_S_ISLNK (mode))
40008940: 0000a7b7 lui a5,0xa <== NOT EXECUTED
40008944: 24f48e63 beq s1,a5,40008ba0 <rtems_rfs_inode_create+0x2f0> <== NOT EXECUTED
const char* type = "unknown";
40008948: 40022db7 lui s11,0x40022 <== NOT EXECUTED
4000894c: 568d8d93 addi s11,s11,1384 # 40022568 <IMFS_node_control_sym_link+0x1008><== NOT EXECUTED
40008950: 00c0006f j 4000895c <rtems_rfs_inode_create+0xac> <== NOT EXECUTED
type = "dir";
40008954: 40022db7 lui s11,0x40022 <== NOT EXECUTED
40008958: 554d8d93 addi s11,s11,1364 # 40022554 <IMFS_node_control_sym_link+0xff4><== NOT EXECUTED
printf("rtems-rfs: inode-create: parent:%" PRIu32 " name:", parent);
4000895c: 40022537 lui a0,0x40022 <== NOT EXECUTED
40008960: 000a0593 mv a1,s4 <== NOT EXECUTED
40008964: 57050513 addi a0,a0,1392 # 40022570 <IMFS_node_control_sym_link+0x1010><== NOT EXECUTED
40008968: 890f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
for (c = 0; c < length; c++)
4000896c: 000a8413 mv s0,s5 <== NOT EXECUTED
40008970: 015b0d33 add s10,s6,s5 <== NOT EXECUTED
40008974: 000b0a63 beqz s6,40008988 <rtems_rfs_inode_create+0xd8> <== NOT EXECUTED
printf ("%c", name[c]);
40008978: 00044503 lbu a0,0(s0) <== NOT EXECUTED
for (c = 0; c < length; c++)
4000897c: 00140413 addi s0,s0,1 <== NOT EXECUTED
printf ("%c", name[c]);
40008980: 295150ef jal ra,4001e414 <putchar> <== NOT EXECUTED
for (c = 0; c < length; c++)
40008984: fe8d1ae3 bne s10,s0,40008978 <rtems_rfs_inode_create+0xc8> <== NOT EXECUTED
printf (" type:%s mode:%04x (%03o)\n", type, mode, mode & ((1 << 10) - 1));
40008988: 40022537 lui a0,0x40022 <== NOT EXECUTED
4000898c: 3ff97693 andi a3,s2,1023 <== NOT EXECUTED
40008990: 00090613 mv a2,s2 <== NOT EXECUTED
40008994: 000d8593 mv a1,s11 <== NOT EXECUTED
40008998: 59c50513 addi a0,a0,1436 # 4002259c <IMFS_node_control_sym_link+0x103c><== NOT EXECUTED
4000899c: 85cf90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
switch (mode & RTEMS_RFS_S_IFMT)
400089a0: 000067b7 lui a5,0x6
400089a4: 06f48a63 beq s1,a5,40008a18 <rtems_rfs_inode_create+0x168>
400089a8: 0497fc63 bgeu a5,s1,40008a00 <rtems_rfs_inode_create+0x150>
400089ac: ffffd7b7 lui a5,0xffffd
400089b0: 00f977b3 and a5,s2,a5
400089b4: 00008737 lui a4,0x8
400089b8: 01600413 li s0,22
400089bc: 04e78e63 beq a5,a4,40008a18 <rtems_rfs_inode_create+0x168>
}
400089c0: 08c12083 lw ra,140(sp)
400089c4: 00040513 mv a0,s0
400089c8: 08812403 lw s0,136(sp)
400089cc: 08412483 lw s1,132(sp)
400089d0: 08012903 lw s2,128(sp)
400089d4: 07c12983 lw s3,124(sp)
400089d8: 07812a03 lw s4,120(sp)
400089dc: 07412a83 lw s5,116(sp)
400089e0: 07012b03 lw s6,112(sp)
400089e4: 06c12b83 lw s7,108(sp)
400089e8: 06812c03 lw s8,104(sp)
400089ec: 06412c83 lw s9,100(sp)
400089f0: 06012d03 lw s10,96(sp)
400089f4: 05c12d83 lw s11,92(sp)
400089f8: 09010113 addi sp,sp,144
400089fc: 00008067 ret
switch (mode & RTEMS_RFS_S_IFMT)
40008a00: ffffe7b7 lui a5,0xffffe
40008a04: 00f487b3 add a5,s1,a5
40008a08: 0000d737 lui a4,0xd
40008a0c: 00e7f7b3 and a5,a5,a4
40008a10: 01600413 li s0,22
40008a14: fa0796e3 bnez a5,400089c0 <rtems_rfs_inode_create+0x110> <== NEVER TAKEN
rc = rtems_rfs_group_bitmap_alloc (fs, goal, true, &bit);
40008a18: 000a0593 mv a1,s4
40008a1c: 02810693 addi a3,sp,40
40008a20: 00100613 li a2,1
40008a24: 00098513 mv a0,s3
40008a28: b7cff0ef jal ra,40007da4 <rtems_rfs_group_bitmap_alloc>
*ino = bit;
40008a2c: 02812583 lw a1,40(sp)
40008a30: 09012783 lw a5,144(sp)
rc = rtems_rfs_group_bitmap_alloc (fs, goal, true, &bit);
40008a34: 00050413 mv s0,a0
*ino = bit;
40008a38: 00b7a023 sw a1,0(a5) # ffffe000 <RamEnd+0xbeffe000>
if (rc > 0)
40008a3c: f8a042e3 bgtz a0,400089c0 <rtems_rfs_inode_create+0x110>
rc = rtems_rfs_inode_open (fs, *ino, &inode, true);
40008a40: 00100693 li a3,1
40008a44: 02810613 addi a2,sp,40
40008a48: 00098513 mv a0,s3
40008a4c: 835ff0ef jal ra,40008280 <rtems_rfs_inode_open>
40008a50: 00050413 mv s0,a0
if (rc > 0)
40008a54: 10a04e63 bgtz a0,40008b70 <rtems_rfs_inode_create+0x2c0> <== NEVER TAKEN
rc = rtems_rfs_inode_initialise (&inode, links, mode, uid, gid);
40008a58: 000c8713 mv a4,s9
40008a5c: 000c0693 mv a3,s8
40008a60: 00090613 mv a2,s2
40008a64: 000b8593 mv a1,s7
40008a68: 02810513 addi a0,sp,40
40008a6c: d11ff0ef jal ra,4000877c <rtems_rfs_inode_initialise>
40008a70: 00050413 mv s0,a0
if (rc > 0)
40008a74: 0ea04863 bgtz a0,40008b64 <rtems_rfs_inode_create+0x2b4> <== NEVER TAKEN
if (RTEMS_RFS_S_ISDIR (mode))
40008a78: 000047b7 lui a5,0x4
40008a7c: 0af48063 beq s1,a5,40008b1c <rtems_rfs_inode_create+0x26c>
rc = rtems_rfs_inode_open (fs, parent, &parent_inode, true);
40008a80: 00100693 li a3,1
40008a84: 00010613 mv a2,sp
40008a88: 000a0593 mv a1,s4
40008a8c: 00098513 mv a0,s3
40008a90: ff0ff0ef jal ra,40008280 <rtems_rfs_inode_open>
40008a94: 00050413 mv s0,a0
if (rc > 0)
40008a98: 0aa04863 bgtz a0,40008b48 <rtems_rfs_inode_create+0x298> <== NEVER TAKEN
rc = rtems_rfs_dir_add_entry (fs, &parent_inode, name, length, *ino);
40008a9c: 09012783 lw a5,144(sp)
40008aa0: 000b0693 mv a3,s6
40008aa4: 000a8613 mv a2,s5
40008aa8: 0007a703 lw a4,0(a5) # 4000 <bsp_section_rtemsstack_size+0x2000>
40008aac: 00010593 mv a1,sp
40008ab0: 00098513 mv a0,s3
40008ab4: 5c10b0ef jal ra,40014874 <rtems_rfs_dir_add_entry>
40008ab8: 00050413 mv s0,a0
if (rc > 0)
40008abc: 10a04c63 bgtz a0,40008bd4 <rtems_rfs_inode_create+0x324> <== NEVER TAKEN
if (RTEMS_RFS_S_ISDIR (mode))
40008ac0: 000047b7 lui a5,0x4
40008ac4: 12f48c63 beq s1,a5,40008bfc <rtems_rfs_inode_create+0x34c>
rc = rtems_rfs_inode_time_stamp_now (&parent_inode, true, true);
40008ac8: 00100613 li a2,1
40008acc: 00100593 li a1,1
40008ad0: 00010513 mv a0,sp
40008ad4: bc1ff0ef jal ra,40008694 <rtems_rfs_inode_time_stamp_now>
40008ad8: 00050413 mv s0,a0
if (rc > 0)
40008adc: 06a04663 bgtz a0,40008b48 <rtems_rfs_inode_create+0x298> <== NEVER TAKEN
rc = rtems_rfs_inode_close (fs, &parent_inode);
40008ae0: 00010593 mv a1,sp
40008ae4: 00098513 mv a0,s3
40008ae8: 9c5ff0ef jal ra,400084ac <rtems_rfs_inode_close>
40008aec: 00050413 mv s0,a0
rtems_rfs_inode_delete (fs, &inode);
40008af0: 02810593 addi a1,sp,40
40008af4: 00098513 mv a0,s3
if (rc > 0)
40008af8: 16804263 bgtz s0,40008c5c <rtems_rfs_inode_create+0x3ac> <== NEVER TAKEN
rc = rtems_rfs_inode_close (fs, &inode);
40008afc: 9b1ff0ef jal ra,400084ac <rtems_rfs_inode_close>
40008b00: 00050413 mv s0,a0
if (rc > 0)
40008b04: 06a04663 bgtz a0,40008b70 <rtems_rfs_inode_create+0x2c0> <== NEVER TAKEN
return 0;
40008b08: 00000413 li s0,0
40008b0c: eb5ff06f j 400089c0 <rtems_rfs_inode_create+0x110>
type = "block";
40008b10: 40022db7 lui s11,0x40022 <== NOT EXECUTED
40008b14: 3a8d8d93 addi s11,s11,936 # 400223a8 <IMFS_node_control_sym_link+0xe48><== NOT EXECUTED
40008b18: e45ff06f j 4000895c <rtems_rfs_inode_create+0xac> <== NOT EXECUTED
rc = rtems_rfs_dir_add_entry (fs, &inode, ".", 1, *ino);
40008b1c: 09012783 lw a5,144(sp)
40008b20: 40021637 lui a2,0x40021
40008b24: 00100693 li a3,1
40008b28: 0007a703 lw a4,0(a5) # 4000 <bsp_section_rtemsstack_size+0x2000>
40008b2c: 10460613 addi a2,a2,260 # 40021104 <rtems_filesystem_table+0x74>
40008b30: 02810593 addi a1,sp,40
40008b34: 00098513 mv a0,s3
40008b38: 53d0b0ef jal ra,40014874 <rtems_rfs_dir_add_entry>
40008b3c: 00050413 mv s0,a0
if (rc == 0)
40008b40: 06050663 beqz a0,40008bac <rtems_rfs_inode_create+0x2fc> <== ALWAYS TAKEN
if (rc > 0)
40008b44: f2805ee3 blez s0,40008a80 <rtems_rfs_inode_create+0x1d0> <== NOT EXECUTED
rtems_rfs_inode_delete (fs, &inode);
40008b48: 02810593 addi a1,sp,40 <== NOT EXECUTED
40008b4c: 00098513 mv a0,s3 <== NOT EXECUTED
40008b50: 9fdff0ef jal ra,4000854c <rtems_rfs_inode_delete> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40008b54: 02810593 addi a1,sp,40 <== NOT EXECUTED
40008b58: 00098513 mv a0,s3 <== NOT EXECUTED
40008b5c: 951ff0ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return rc;
40008b60: e61ff06f j 400089c0 <rtems_rfs_inode_create+0x110> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40008b64: 02810593 addi a1,sp,40 <== NOT EXECUTED
40008b68: 00098513 mv a0,s3 <== NOT EXECUTED
40008b6c: 941ff0ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return rtems_rfs_group_bitmap_free (fs, true, bit);
40008b70: 09012783 lw a5,144(sp) <== NOT EXECUTED
40008b74: 00100593 li a1,1 <== NOT EXECUTED
40008b78: 00098513 mv a0,s3 <== NOT EXECUTED
40008b7c: 0007a603 lw a2,0(a5) <== NOT EXECUTED
40008b80: ca8ff0ef jal ra,40008028 <rtems_rfs_group_bitmap_free> <== NOT EXECUTED
return rc;
40008b84: e3dff06f j 400089c0 <rtems_rfs_inode_create+0x110> <== NOT EXECUTED
type = "char";
40008b88: 40022db7 lui s11,0x40022 <== NOT EXECUTED
40008b8c: 558d8d93 addi s11,s11,1368 # 40022558 <IMFS_node_control_sym_link+0xff8><== NOT EXECUTED
40008b90: dcdff06f j 4000895c <rtems_rfs_inode_create+0xac> <== NOT EXECUTED
type = "file";
40008b94: 40021db7 lui s11,0x40021 <== NOT EXECUTED
40008b98: 7c8d8d93 addi s11,s11,1992 # 400217c8 <IMFS_node_control_sym_link+0x268><== NOT EXECUTED
40008b9c: dc1ff06f j 4000895c <rtems_rfs_inode_create+0xac> <== NOT EXECUTED
type = "link";
40008ba0: 40022db7 lui s11,0x40022 <== NOT EXECUTED
40008ba4: 560d8d93 addi s11,s11,1376 # 40022560 <IMFS_node_control_sym_link+0x1000><== NOT EXECUTED
40008ba8: db5ff06f j 4000895c <rtems_rfs_inode_create+0xac> <== NOT EXECUTED
rc = rtems_rfs_dir_add_entry (fs, &inode, "..", 2, parent);
40008bac: 40022637 lui a2,0x40022
40008bb0: 000a0713 mv a4,s4
40008bb4: 00200693 li a3,2
40008bb8: 5b860613 addi a2,a2,1464 # 400225b8 <IMFS_node_control_sym_link+0x1058>
40008bbc: 02810593 addi a1,sp,40
40008bc0: 00098513 mv a0,s3
40008bc4: 4b10b0ef jal ra,40014874 <rtems_rfs_dir_add_entry>
40008bc8: 00050413 mv s0,a0
if (rc > 0)
40008bcc: ea805ae3 blez s0,40008a80 <rtems_rfs_inode_create+0x1d0> <== ALWAYS TAKEN
40008bd0: f79ff06f j 40008b48 <rtems_rfs_inode_create+0x298> <== NOT EXECUTED
rtems_rfs_inode_delete (fs, &inode);
40008bd4: 02810593 addi a1,sp,40 <== NOT EXECUTED
40008bd8: 00098513 mv a0,s3 <== NOT EXECUTED
40008bdc: 971ff0ef jal ra,4000854c <rtems_rfs_inode_delete> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40008be0: 02810593 addi a1,sp,40 <== NOT EXECUTED
40008be4: 00098513 mv a0,s3 <== NOT EXECUTED
40008be8: 8c5ff0ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode);
40008bec: 00010593 mv a1,sp <== NOT EXECUTED
40008bf0: 00098513 mv a0,s3 <== NOT EXECUTED
40008bf4: 8b9ff0ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return rc;
40008bf8: dc9ff06f j 400089c0 <rtems_rfs_inode_create+0x110> <== NOT EXECUTED
links = rtems_rfs_read_u16 (&handle->node->links);
40008bfc: 00c12683 lw a3,12(sp)
if (links == 0xffff)
40008c00: 00010637 lui a2,0x10
40008c04: fff60613 addi a2,a2,-1 # ffff <bsp_section_bss_size+0xaa4f>
40008c08: 0016c703 lbu a4,1(a3)
40008c0c: 0006c783 lbu a5,0(a3)
40008c10: 00871713 slli a4,a4,0x8
40008c14: 00f76733 or a4,a4,a5
40008c18: 00871793 slli a5,a4,0x8
40008c1c: 00875713 srli a4,a4,0x8
40008c20: 00e7e7b3 or a5,a5,a4
40008c24: 01079793 slli a5,a5,0x10
40008c28: 0107d793 srli a5,a5,0x10
40008c2c: 04c78263 beq a5,a2,40008c70 <rtems_rfs_inode_create+0x3c0>
rtems_rfs_inode_set_links (&parent_inode,
40008c30: 00178793 addi a5,a5,1
40008c34: 01079793 slli a5,a5,0x10
40008c38: 0107d793 srli a5,a5,0x10
rtems_rfs_write_u16 (&handle->node->links, links);
40008c3c: 0087d713 srli a4,a5,0x8
40008c40: 0ff7f793 andi a5,a5,255
40008c44: 00e68023 sb a4,0(a3)
40008c48: 00c12703 lw a4,12(sp)
40008c4c: 00f700a3 sb a5,1(a4) # d001 <bsp_section_bss_size+0x7a51>
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40008c50: 00100793 li a5,1
40008c54: 00f10823 sb a5,16(sp)
}
40008c58: e71ff06f j 40008ac8 <rtems_rfs_inode_create+0x218>
rtems_rfs_inode_delete (fs, &inode);
40008c5c: 8f1ff0ef jal ra,4000854c <rtems_rfs_inode_delete> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40008c60: 02810593 addi a1,sp,40 <== NOT EXECUTED
40008c64: 00098513 mv a0,s3 <== NOT EXECUTED
40008c68: 845ff0ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return rc;
40008c6c: d55ff06f j 400089c0 <rtems_rfs_inode_create+0x110> <== NOT EXECUTED
40008c70: 00100793 li a5,1 <== NOT EXECUTED
40008c74: 00000713 li a4,0 <== NOT EXECUTED
40008c78: fcdff06f j 40008c44 <rtems_rfs_inode_create+0x394> <== NOT EXECUTED
4000854c <rtems_rfs_inode_delete>:
}
int
rtems_rfs_inode_delete (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* handle)
{
4000854c: f9010113 addi sp,sp,-112
40008550: 06812423 sw s0,104(sp)
40008554: 07212023 sw s2,96(sp)
40008558: 00058413 mv s0,a1
4000855c: 00050913 mv s2,a0
int rc = 0;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_DELETE))
40008560: 00000593 li a1,0
40008564: 00800537 lui a0,0x800
{
40008568: 06112623 sw ra,108(sp)
4000856c: 06912223 sw s1,100(sp)
40008570: 05312e23 sw s3,92(sp)
40008574: 05412c23 sw s4,88(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_DELETE))
40008578: 395010ef jal ra,4000a10c <rtems_rfs_trace>
4000857c: 02050263 beqz a0,400085a0 <rtems_rfs_inode_delete+0x54> <== ALWAYS TAKEN
printf("rtems-rfs: inode-delete: ino:%" PRIu32 " loaded:%s\n",
40008580: 00c42783 lw a5,12(s0) <== NOT EXECUTED
40008584: 00842583 lw a1,8(s0) <== NOT EXECUTED
40008588: 0c078863 beqz a5,40008658 <rtems_rfs_inode_delete+0x10c> <== NOT EXECUTED
4000858c: 40022637 lui a2,0x40022 <== NOT EXECUTED
40008590: 44460613 addi a2,a2,1092 # 40022444 <IMFS_node_control_sym_link+0xee4><== NOT EXECUTED
40008594: 40022537 lui a0,0x40022 <== NOT EXECUTED
40008598: 52850513 addi a0,a0,1320 # 40022528 <IMFS_node_control_sym_link+0xfc8><== NOT EXECUTED
4000859c: c5cf90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rtems_rfs_inode_ino (handle),
rtems_rfs_inode_is_loaded (handle) ? "yes" : "no");
if (rtems_rfs_inode_is_loaded (handle))
400085a0: 00c42783 lw a5,12(s0)
int rc = 0;
400085a4: 00000493 li s1,0
if (rtems_rfs_inode_is_loaded (handle))
400085a8: 00078e63 beqz a5,400085c4 <rtems_rfs_inode_delete+0x78> <== NEVER TAKEN
return rtems_rfs_group_bitmap_free (fs, true, bit);
400085ac: 00842603 lw a2,8(s0)
400085b0: 00100593 li a1,1
400085b4: 00090513 mv a0,s2
400085b8: a71ff0ef jal ra,40008028 <rtems_rfs_group_bitmap_free>
400085bc: 00050493 mv s1,a0
/*
* Free the ino number.
*/
rc = rtems_rfs_inode_free (fs, handle->ino);
if (rc > 0)
400085c0: 02a05463 blez a0,400085e8 <rtems_rfs_inode_delete+0x9c> <== ALWAYS TAKEN
if (rrc > 0)
rc = rrc;
}
}
return rc;
}
400085c4: 06c12083 lw ra,108(sp)
400085c8: 06812403 lw s0,104(sp)
400085cc: 06012903 lw s2,96(sp)
400085d0: 05c12983 lw s3,92(sp)
400085d4: 05812a03 lw s4,88(sp)
400085d8: 00048513 mv a0,s1
400085dc: 06412483 lw s1,100(sp)
400085e0: 07010113 addi sp,sp,112
400085e4: 00008067 ret
rc = rtems_rfs_block_map_open (fs, handle, &map);
400085e8: 00010613 mv a2,sp
400085ec: 00040593 mv a1,s0
400085f0: 00090513 mv a0,s2
400085f4: 7850a0ef jal ra,40013578 <rtems_rfs_block_map_open>
400085f8: 00050493 mv s1,a0
if (rc == 0)
400085fc: fc0514e3 bnez a0,400085c4 <rtems_rfs_inode_delete+0x78> <== NEVER TAKEN
rrc = rtems_rfs_block_map_free_all (fs, &map);
40008600: 00010593 mv a1,sp
40008604: 00090513 mv a0,s2
40008608: 48d0b0ef jal ra,40014294 <rtems_rfs_block_map_free_all>
rc = rtems_rfs_block_map_close (fs, &map);
4000860c: 00010593 mv a1,sp
rrc = rtems_rfs_block_map_free_all (fs, &map);
40008610: 00050993 mv s3,a0
rc = rtems_rfs_block_map_close (fs, &map);
40008614: 00090513 mv a0,s2
40008618: 1340b0ef jal ra,4001374c <rtems_rfs_block_map_close>
4000861c: 00050493 mv s1,a0
rc = rtems_rfs_buffer_handle_release (fs, &handle->buffer);
40008620: 01040a13 addi s4,s0,16
memset (handle->node, 0xff, RTEMS_RFS_INODE_SIZE);
40008624: 00c42503 lw a0,12(s0)
40008628: 03800613 li a2,56
4000862c: 0ff00593 li a1,255
if (rc > 0)
40008630: 02905a63 blez s1,40008664 <rtems_rfs_inode_delete+0x118> <== ALWAYS TAKEN
memset (handle->node, 0xff, RTEMS_RFS_INODE_SIZE);
40008634: 505150ef jal ra,4001e338 <memset> <== NOT EXECUTED
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40008638: 00100793 li a5,1 <== NOT EXECUTED
4000863c: 00f40823 sb a5,16(s0) <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_release (fs, &handle->buffer);
40008640: 000a0593 mv a1,s4 <== NOT EXECUTED
40008644: 00090513 mv a0,s2 <== NOT EXECUTED
40008648: 9ccfe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
handle->loads = 0;
4000864c: 02042223 sw zero,36(s0) <== NOT EXECUTED
handle->node = NULL;
40008650: 00042623 sw zero,12(s0) <== NOT EXECUTED
if (rrc > 0)
40008654: f71ff06f j 400085c4 <rtems_rfs_inode_delete+0x78> <== NOT EXECUTED
printf("rtems-rfs: inode-delete: ino:%" PRIu32 " loaded:%s\n",
40008658: 40022637 lui a2,0x40022 <== NOT EXECUTED
4000865c: 44860613 addi a2,a2,1096 # 40022448 <IMFS_node_control_sym_link+0xee8><== NOT EXECUTED
40008660: f35ff06f j 40008594 <rtems_rfs_inode_delete+0x48> <== NOT EXECUTED
memset (handle->node, 0xff, RTEMS_RFS_INODE_SIZE);
40008664: 4d5150ef jal ra,4001e338 <memset>
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40008668: 00100793 li a5,1
4000866c: 00f40823 sb a5,16(s0)
rc = rtems_rfs_buffer_handle_release (fs, &handle->buffer);
40008670: 000a0593 mv a1,s4
40008674: 00090513 mv a0,s2
40008678: 99cfe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
handle->loads = 0;
4000867c: 02042223 sw zero,36(s0)
handle->node = NULL;
40008680: 00042623 sw zero,12(s0)
rc = rtems_rfs_buffer_handle_release (fs, &handle->buffer);
40008684: 00050493 mv s1,a0
if (rrc > 0)
40008688: f3305ee3 blez s3,400085c4 <rtems_rfs_inode_delete+0x78> <== ALWAYS TAKEN
4000868c: 00098493 mv s1,s3 <== NOT EXECUTED
40008690: f35ff06f j 400085c4 <rtems_rfs_inode_delete+0x78> <== NOT EXECUTED
400081c0 <rtems_rfs_inode_load>:
}
int
rtems_rfs_inode_load (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* handle)
{
400081c0: ff010113 addi sp,sp,-16
400081c4: 00812423 sw s0,8(sp)
400081c8: 00912223 sw s1,4(sp)
400081cc: 00058413 mv s0,a1
400081d0: 00050493 mv s1,a0
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_LOAD))
400081d4: 00000593 li a1,0
400081d8: 00100537 lui a0,0x100
{
400081dc: 00112623 sw ra,12(sp)
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_LOAD))
400081e0: 72d010ef jal ra,4000a10c <rtems_rfs_trace>
400081e4: 02050463 beqz a0,4000820c <rtems_rfs_inode_load+0x4c> <== ALWAYS TAKEN
printf ("rtems-rfs: inode-load: ino=%" PRIu32 " loads=%i loaded=%s\n",
400081e8: 00c42783 lw a5,12(s0) <== NOT EXECUTED
400081ec: 00842583 lw a1,8(s0) <== NOT EXECUTED
400081f0: 02442603 lw a2,36(s0) <== NOT EXECUTED
400081f4: 04078263 beqz a5,40008238 <rtems_rfs_inode_load+0x78> <== NOT EXECUTED
400081f8: 400226b7 lui a3,0x40022 <== NOT EXECUTED
400081fc: 44468693 addi a3,a3,1092 # 40022444 <IMFS_node_control_sym_link+0xee4><== NOT EXECUTED
40008200: 40022537 lui a0,0x40022 <== NOT EXECUTED
40008204: 44c50513 addi a0,a0,1100 # 4002244c <IMFS_node_control_sym_link+0xeec><== NOT EXECUTED
40008208: ff0f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
/*
* An inode does not move so once loaded no need to do again.
*/
if (!rtems_rfs_inode_is_loaded (handle))
4000820c: 00c42783 lw a5,12(s0)
40008210: 02078a63 beqz a5,40008244 <rtems_rfs_inode_load+0x84>
handle->node = rtems_rfs_buffer_data (&handle->buffer);
handle->node += handle->offset;
}
handle->loads++;
40008214: 02442783 lw a5,36(s0)
return 0;
40008218: 00000513 li a0,0
handle->loads++;
4000821c: 00178793 addi a5,a5,1
40008220: 02f42223 sw a5,36(s0)
}
40008224: 00c12083 lw ra,12(sp)
40008228: 00812403 lw s0,8(sp)
4000822c: 00412483 lw s1,4(sp)
40008230: 01010113 addi sp,sp,16
40008234: 00008067 ret
printf ("rtems-rfs: inode-load: ino=%" PRIu32 " loads=%i loaded=%s\n",
40008238: 400226b7 lui a3,0x40022 <== NOT EXECUTED
4000823c: 44868693 addi a3,a3,1096 # 40022448 <IMFS_node_control_sym_link+0xee8><== NOT EXECUTED
40008240: fc1ff06f j 40008200 <rtems_rfs_inode_load+0x40> <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs,&handle->buffer,
40008244: 01c42603 lw a2,28(s0)
40008248: 00100693 li a3,1
4000824c: 01040593 addi a1,s0,16
40008250: 00048513 mv a0,s1
40008254: b28fe0ef jal ra,4000657c <rtems_rfs_buffer_handle_request>
if (rc > 0)
40008258: fca046e3 bgtz a0,40008224 <rtems_rfs_inode_load+0x64> <== NEVER TAKEN
handle->node += handle->offset;
4000825c: 02042683 lw a3,32(s0)
handle->node = rtems_rfs_buffer_data (&handle->buffer);
40008260: 01842703 lw a4,24(s0)
handle->node += handle->offset;
40008264: 00369793 slli a5,a3,0x3
40008268: 01c72703 lw a4,28(a4)
4000826c: 40d787b3 sub a5,a5,a3
40008270: 00379793 slli a5,a5,0x3
40008274: 00f707b3 add a5,a4,a5
40008278: 00f42623 sw a5,12(s0)
4000827c: f99ff06f j 40008214 <rtems_rfs_inode_load+0x54>
40008280 <rtems_rfs_inode_open>:
{
40008280: fe010113 addi sp,sp,-32
40008284: 00912a23 sw s1,20(sp)
40008288: 01212823 sw s2,16(sp)
4000828c: 00050493 mv s1,a0
40008290: 00058913 mv s2,a1
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_OPEN))
40008294: 00040537 lui a0,0x40
40008298: 00000593 li a1,0
{
4000829c: 00812c23 sw s0,24(sp)
400082a0: 01312623 sw s3,12(sp)
400082a4: 00112e23 sw ra,28(sp)
400082a8: 00060413 mv s0,a2
400082ac: 00068993 mv s3,a3
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_OPEN))
400082b0: 65d010ef jal ra,4000a10c <rtems_rfs_trace>
400082b4: 08051863 bnez a0,40008344 <rtems_rfs_inode_open+0xc4> <== NEVER TAKEN
if (ino == RTEMS_RFS_EMPTY_INO)
400082b8: 0a090063 beqz s2,40008358 <rtems_rfs_inode_open+0xd8> <== NEVER TAKEN
if ((ino - RTEMS_RFS_ROOT_INO) > rtems_rfs_fs_inodes (fs))
400082bc: 0144a703 lw a4,20(s1)
400082c0: fff90793 addi a5,s2,-1
400082c4: 08f76a63 bltu a4,a5,40008358 <rtems_rfs_inode_open+0xd8>
group = gino / fs->group_inodes;
400082c8: 02c4a703 lw a4,44(s1)
index = (gino / fs->inodes_per_block) + RTEMS_RFS_GROUP_INODE_BLOCK;
400082cc: 0304a803 lw a6,48(s1)
handle->block = rtems_rfs_group_block (&fs->groups[group], index);
400082d0: 0204a583 lw a1,32(s1)
gino = gino % fs->group_inodes;
400082d4: 02e7f6b3 remu a3,a5,a4
handle->ino = ino;
400082d8: 01242423 sw s2,8(s0)
handle->node = NULL;
400082dc: 00042623 sw zero,12(s0)
handle->loads = 0;
400082e0: 02042223 sw zero,36(s0)
rc = rtems_rfs_buffer_handle_open (fs, &handle->buffer);
400082e4: 00000513 li a0,0
group = gino / fs->group_inodes;
400082e8: 02e7d7b3 divu a5,a5,a4
index = (gino / fs->inodes_per_block) + RTEMS_RFS_GROUP_INODE_BLOCK;
400082ec: 0306d633 divu a2,a3,a6
handle->block = rtems_rfs_group_block (&fs->groups[group], index);
400082f0: 00279713 slli a4,a5,0x2
400082f4: 00f707b3 add a5,a4,a5
400082f8: 00479793 slli a5,a5,0x4
400082fc: 00f587b3 add a5,a1,a5
40008300: 0007a783 lw a5,0(a5)
handle->dirty = false;
40008304: 00040823 sb zero,16(s0)
handle->bnum = 0;
40008308: 00042a23 sw zero,20(s0)
handle->buffer = NULL;
4000830c: 00042c23 sw zero,24(s0)
handle->offset = gino % fs->inodes_per_block;
40008310: 0306f6b3 remu a3,a3,a6
index = (gino / fs->inodes_per_block) + RTEMS_RFS_GROUP_INODE_BLOCK;
40008314: 00260713 addi a4,a2,2
handle->block = rtems_rfs_group_block (&fs->groups[group], index);
40008318: 00e787b3 add a5,a5,a4
4000831c: 00f42e23 sw a5,28(s0)
handle->offset = gino % fs->inodes_per_block;
40008320: 02d42023 sw a3,32(s0)
if ((rc == 0) && load)
40008324: 04099a63 bnez s3,40008378 <rtems_rfs_inode_open+0xf8> <== ALWAYS TAKEN
}
40008328: 01c12083 lw ra,28(sp) <== NOT EXECUTED
4000832c: 01812403 lw s0,24(sp) <== NOT EXECUTED
40008330: 01412483 lw s1,20(sp) <== NOT EXECUTED
40008334: 01012903 lw s2,16(sp) <== NOT EXECUTED
40008338: 00c12983 lw s3,12(sp) <== NOT EXECUTED
4000833c: 02010113 addi sp,sp,32 <== NOT EXECUTED
40008340: 00008067 ret <== NOT EXECUTED
printf ("rtems-rfs: inode-open: ino: %" PRIu32 "\n", ino);
40008344: 40022537 lui a0,0x40022 <== NOT EXECUTED
40008348: 00090593 mv a1,s2 <== NOT EXECUTED
4000834c: 48050513 addi a0,a0,1152 # 40022480 <IMFS_node_control_sym_link+0xf20><== NOT EXECUTED
40008350: ea8f90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (ino == RTEMS_RFS_EMPTY_INO)
40008354: f60914e3 bnez s2,400082bc <rtems_rfs_inode_open+0x3c> <== NOT EXECUTED
}
40008358: 01c12083 lw ra,28(sp) <== NOT EXECUTED
4000835c: 01812403 lw s0,24(sp) <== NOT EXECUTED
40008360: 01412483 lw s1,20(sp) <== NOT EXECUTED
40008364: 01012903 lw s2,16(sp) <== NOT EXECUTED
40008368: 00c12983 lw s3,12(sp) <== NOT EXECUTED
return EINVAL;
4000836c: 01600513 li a0,22 <== NOT EXECUTED
}
40008370: 02010113 addi sp,sp,32 <== NOT EXECUTED
40008374: 00008067 ret <== NOT EXECUTED
rc = rtems_rfs_inode_load (fs, handle);
40008378: 00040593 mv a1,s0
}
4000837c: 01812403 lw s0,24(sp)
40008380: 01c12083 lw ra,28(sp)
40008384: 01012903 lw s2,16(sp)
40008388: 00c12983 lw s3,12(sp)
rc = rtems_rfs_inode_load (fs, handle);
4000838c: 00048513 mv a0,s1
}
40008390: 01412483 lw s1,20(sp)
40008394: 02010113 addi sp,sp,32
rc = rtems_rfs_inode_load (fs, handle);
40008398: e29ff06f j 400081c0 <rtems_rfs_inode_load>
40008694 <rtems_rfs_inode_time_stamp_now>:
rtems_rfs_inode_time_stamp_now (rtems_rfs_inode_handle* handle,
bool atime,
bool mtime)
{
time_t now;
if (!rtems_rfs_inode_is_loaded (handle))
40008694: 00c52783 lw a5,12(a0)
40008698: 0c078e63 beqz a5,40008774 <rtems_rfs_inode_time_stamp_now+0xe0> <== NEVER TAKEN
{
4000869c: ff010113 addi sp,sp,-16
400086a0: 00812423 sw s0,8(sp)
400086a4: 00050413 mv s0,a0
return ENXIO;
now = time (NULL);
400086a8: 00000513 li a0,0
{
400086ac: 00912223 sw s1,4(sp)
400086b0: 01212023 sw s2,0(sp)
400086b4: 00112623 sw ra,12(sp)
400086b8: 00058913 mv s2,a1
400086bc: 00060493 mv s1,a2
now = time (NULL);
400086c0: 4c5160ef jal ra,4001f384 <time>
400086c4: 00050793 mv a5,a0
if (atime)
400086c8: 02091263 bnez s2,400086ec <rtems_rfs_inode_time_stamp_now+0x58> <== ALWAYS TAKEN
rtems_rfs_inode_set_atime (handle, now);
if (mtime)
rtems_rfs_inode_set_mtime (handle, now);
return 0;
400086cc: 00000513 li a0,0 <== NOT EXECUTED
if (mtime)
400086d0: 04049c63 bnez s1,40008728 <rtems_rfs_inode_time_stamp_now+0x94> <== NOT EXECUTED
}
400086d4: 00c12083 lw ra,12(sp) <== NOT EXECUTED
400086d8: 00812403 lw s0,8(sp) <== NOT EXECUTED
400086dc: 00412483 lw s1,4(sp) <== NOT EXECUTED
400086e0: 00012903 lw s2,0(sp) <== NOT EXECUTED
400086e4: 01010113 addi sp,sp,16 <== NOT EXECUTED
400086e8: 00008067 ret <== NOT EXECUTED
rtems_rfs_write_u32 (&handle->node->atime, atime);
400086ec: 00c42603 lw a2,12(s0)
400086f0: 01855713 srli a4,a0,0x18
400086f4: 01055693 srli a3,a0,0x10
400086f8: 00e60823 sb a4,16(a2)
400086fc: 00c42603 lw a2,12(s0)
40008700: 00855713 srli a4,a0,0x8
40008704: 00d608a3 sb a3,17(a2)
40008708: 00c42683 lw a3,12(s0)
4000870c: 00e68923 sb a4,18(a3)
40008710: 00c42703 lw a4,12(s0)
40008714: 00a709a3 sb a0,19(a4)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40008718: 00100713 li a4,1
4000871c: 00e40823 sb a4,16(s0)
return 0;
40008720: 00000513 li a0,0
if (mtime)
40008724: fa0488e3 beqz s1,400086d4 <rtems_rfs_inode_time_stamp_now+0x40> <== NEVER TAKEN
rtems_rfs_write_u32 (&handle->node->mtime, mtime);
40008728: 00c42703 lw a4,12(s0)
4000872c: 0187d693 srli a3,a5,0x18
40008730: 0107d613 srli a2,a5,0x10
40008734: 00d70a23 sb a3,20(a4)
40008738: 00c42703 lw a4,12(s0)
4000873c: 0087d693 srli a3,a5,0x8
40008740: 00c70aa3 sb a2,21(a4)
40008744: 00c42703 lw a4,12(s0)
40008748: 00d70b23 sb a3,22(a4)
4000874c: 00c42703 lw a4,12(s0)
40008750: 00f70ba3 sb a5,23(a4)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40008754: 00100793 li a5,1
}
40008758: 00c12083 lw ra,12(sp)
4000875c: 00f40823 sb a5,16(s0)
40008760: 00812403 lw s0,8(sp)
40008764: 00412483 lw s1,4(sp)
40008768: 00012903 lw s2,0(sp)
4000876c: 01010113 addi sp,sp,16
40008770: 00008067 ret
return ENXIO;
40008774: 00600513 li a0,6 <== NOT EXECUTED
}
40008778: 00008067 ret <== NOT EXECUTED
4000839c <rtems_rfs_inode_unload>:
int
rtems_rfs_inode_unload (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* handle,
bool update_ctime)
{
4000839c: ff010113 addi sp,sp,-16
400083a0: 00812423 sw s0,8(sp)
400083a4: 00912223 sw s1,4(sp)
400083a8: 00058413 mv s0,a1
400083ac: 00050493 mv s1,a0
int rc = 0;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_UNLOAD))
400083b0: 00000593 li a1,0
400083b4: 00200537 lui a0,0x200
{
400083b8: 01212023 sw s2,0(sp)
400083bc: 00112623 sw ra,12(sp)
400083c0: 00060913 mv s2,a2
if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_UNLOAD))
400083c4: 549010ef jal ra,4000a10c <rtems_rfs_trace>
400083c8: 02050463 beqz a0,400083f0 <rtems_rfs_inode_unload+0x54> <== ALWAYS TAKEN
printf ("rtems-rfs: inode-unload: ino=%" PRIu32 " loads=%i loaded=%s\n",
400083cc: 00c42783 lw a5,12(s0) <== NOT EXECUTED
400083d0: 00842583 lw a1,8(s0) <== NOT EXECUTED
400083d4: 02442603 lw a2,36(s0) <== NOT EXECUTED
400083d8: 08078463 beqz a5,40008460 <rtems_rfs_inode_unload+0xc4> <== NOT EXECUTED
400083dc: 400226b7 lui a3,0x40022 <== NOT EXECUTED
400083e0: 44468693 addi a3,a3,1092 # 40022444 <IMFS_node_control_sym_link+0xee4><== NOT EXECUTED
400083e4: 40022537 lui a0,0x40022 <== NOT EXECUTED
400083e8: 4a050513 addi a0,a0,1184 # 400224a0 <IMFS_node_control_sym_link+0xf40><== NOT EXECUTED
400083ec: e0cf90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
handle->ino, handle->loads,
rtems_rfs_inode_is_loaded (handle) ? "yes" : "no");
if (rtems_rfs_inode_is_loaded (handle))
400083f0: 00c42783 lw a5,12(s0)
400083f4: 00078e63 beqz a5,40008410 <rtems_rfs_inode_unload+0x74>
{
if (handle->loads == 0)
400083f8: 02442783 lw a5,36(s0)
return EIO;
400083fc: 00500513 li a0,5
if (handle->loads == 0)
40008400: 00078a63 beqz a5,40008414 <rtems_rfs_inode_unload+0x78> <== NEVER TAKEN
handle->loads--;
40008404: fff78793 addi a5,a5,-1
40008408: 02f42223 sw a5,36(s0)
if (handle->loads == 0)
4000840c: 02078063 beqz a5,4000842c <rtems_rfs_inode_unload+0x90>
int rc = 0;
40008410: 00000513 li a0,0
handle->node = NULL;
}
}
return rc;
}
40008414: 00c12083 lw ra,12(sp)
40008418: 00812403 lw s0,8(sp)
4000841c: 00412483 lw s1,4(sp)
40008420: 00012903 lw s2,0(sp)
40008424: 01010113 addi sp,sp,16
40008428: 00008067 ret
if (rtems_rfs_buffer_dirty (&handle->buffer) && update_ctime)
4000842c: 01044783 lbu a5,16(s0)
40008430: 00078463 beqz a5,40008438 <rtems_rfs_inode_unload+0x9c>
40008434: 02091c63 bnez s2,4000846c <rtems_rfs_inode_unload+0xd0> <== ALWAYS TAKEN
rc = rtems_rfs_buffer_handle_release (fs, &handle->buffer);
40008438: 01040593 addi a1,s0,16
4000843c: 00048513 mv a0,s1
40008440: bd4fe0ef jal ra,40006814 <rtems_rfs_buffer_handle_release>
}
40008444: 00c12083 lw ra,12(sp)
handle->node = NULL;
40008448: 00042623 sw zero,12(s0)
}
4000844c: 00812403 lw s0,8(sp)
40008450: 00412483 lw s1,4(sp)
40008454: 00012903 lw s2,0(sp)
40008458: 01010113 addi sp,sp,16
4000845c: 00008067 ret
printf ("rtems-rfs: inode-unload: ino=%" PRIu32 " loads=%i loaded=%s\n",
40008460: 400226b7 lui a3,0x40022 <== NOT EXECUTED
40008464: 44868693 addi a3,a3,1096 # 40022448 <IMFS_node_control_sym_link+0xee8><== NOT EXECUTED
40008468: f7dff06f j 400083e4 <rtems_rfs_inode_unload+0x48> <== NOT EXECUTED
rtems_rfs_inode_set_ctime (handle, time (NULL));
4000846c: 00000513 li a0,0
40008470: 715160ef jal ra,4001f384 <time>
*/
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);
40008474: 00c42783 lw a5,12(s0)
40008478: 01855713 srli a4,a0,0x18
4000847c: 01055693 srli a3,a0,0x10
40008480: 00e78c23 sb a4,24(a5)
40008484: 00c42783 lw a5,12(s0)
40008488: 00855713 srli a4,a0,0x8
4000848c: 00d78ca3 sb a3,25(a5)
40008490: 00c42783 lw a5,12(s0)
40008494: 00e78d23 sb a4,26(a5)
40008498: 00c42783 lw a5,12(s0)
4000849c: 00a78da3 sb a0,27(a5)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400084a0: 00100793 li a5,1
400084a4: 00f40823 sb a5,16(s0)
}
400084a8: f91ff06f j 40008438 <rtems_rfs_inode_unload+0x9c>
400171f4 <rtems_rfs_link>:
const char* name,
int length,
rtems_rfs_ino parent,
rtems_rfs_ino target,
bool link_dir)
{
400171f4: f8010113 addi sp,sp,-128
400171f8: 06912a23 sw s1,116(sp)
400171fc: 07312623 sw s3,108(sp)
40017200: 00050493 mv s1,a0
40017204: 00058993 mv s3,a1
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))
40017208: 01000537 lui a0,0x1000
4001720c: 00000593 li a1,0
{
40017210: 07212823 sw s2,112(sp)
40017214: 07412423 sw s4,104(sp)
40017218: 07512223 sw s5,100(sp)
4001721c: 05712e23 sw s7,92(sp)
40017220: 06112e23 sw ra,124(sp)
40017224: 06812c23 sw s0,120(sp)
40017228: 07612023 sw s6,96(sp)
4001722c: 00060a13 mv s4,a2
40017230: 00068a93 mv s5,a3
40017234: 00070913 mv s2,a4
40017238: 00078b93 mv s7,a5
if (rtems_rfs_trace (RTEMS_RFS_TRACE_LINK))
4001723c: ed1f20ef jal ra,4000a10c <rtems_rfs_trace>
40017240: 16051263 bnez a0,400173a4 <rtems_rfs_link+0x1b0> <== NEVER TAKEN
for (c = 0; c < length; c++)
printf ("%c", name[c]);
printf ("(%" PRIu32 ")\n", target);
}
rc = rtems_rfs_inode_open (fs, target, &target_inode, true);
40017244: 00100693 li a3,1
40017248: 02810613 addi a2,sp,40
4001724c: 00090593 mv a1,s2
40017250: 00048513 mv a0,s1
40017254: 82cf10ef jal ra,40008280 <rtems_rfs_inode_open>
40017258: 00050413 mv s0,a0
if (rc)
4001725c: 10051263 bnez a0,40017360 <rtems_rfs_link+0x16c> <== NEVER TAKEN
/*
* 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)))
40017260: 020b9663 bnez s7,4001728c <rtems_rfs_link+0x98>
40017264: 03412703 lw a4,52(sp)
40017268: 000046b7 lui a3,0x4
4001726c: 00374783 lbu a5,3(a4) # 4003 <bsp_section_rtemsstack_size+0x2003>
40017270: 00274703 lbu a4,2(a4)
40017274: 00879793 slli a5,a5,0x8
40017278: 00e7e7b3 or a5,a5,a4
4001727c: 00879793 slli a5,a5,0x8
40017280: 0000f737 lui a4,0xf
40017284: 00e7f7b3 and a5,a5,a4
40017288: 18d78263 beq a5,a3,4001740c <rtems_rfs_link+0x218>
{
rtems_rfs_inode_close (fs, &target_inode);
return ENOTSUP;
}
rc = rtems_rfs_inode_open (fs, parent, &parent_inode, true);
4001728c: 00100693 li a3,1
40017290: 00010613 mv a2,sp
40017294: 000a8593 mv a1,s5
40017298: 00048513 mv a0,s1
4001729c: fe5f00ef jal ra,40008280 <rtems_rfs_inode_open>
400172a0: 00050413 mv s0,a0
if (rc)
400172a4: 0e051863 bnez a0,40017394 <rtems_rfs_link+0x1a0> <== NEVER TAKEN
{
rtems_rfs_inode_close (fs, &target_inode);
return rc;
}
rc = rtems_rfs_dir_add_entry (fs, &parent_inode, name, length, target);
400172a8: 00090713 mv a4,s2
400172ac: 000a0693 mv a3,s4
400172b0: 00098613 mv a2,s3
400172b4: 00010593 mv a1,sp
400172b8: 00048513 mv a0,s1
400172bc: db8fd0ef jal ra,40014874 <rtems_rfs_dir_add_entry>
400172c0: 00050413 mv s0,a0
if (rc > 0)
400172c4: 12a04063 bgtz a0,400173e4 <rtems_rfs_link+0x1f0> <== NEVER TAKEN
links = rtems_rfs_read_u16 (&handle->node->links);
400172c8: 03412683 lw a3,52(sp)
if (links == 0xffff)
400172cc: 00010637 lui a2,0x10
400172d0: fff60613 addi a2,a2,-1 # ffff <bsp_section_bss_size+0xaa4f>
400172d4: 0016c703 lbu a4,1(a3) # 4001 <bsp_section_rtemsstack_size+0x2001>
400172d8: 0006c783 lbu a5,0(a3)
400172dc: 00871713 slli a4,a4,0x8
400172e0: 00f76733 or a4,a4,a5
400172e4: 00871793 slli a5,a4,0x8
400172e8: 00875713 srli a4,a4,0x8
400172ec: 00e7e7b3 or a5,a5,a4
400172f0: 01079793 slli a5,a5,0x10
400172f4: 0107d793 srli a5,a5,0x10
400172f8: 10c78463 beq a5,a2,40017400 <rtems_rfs_link+0x20c>
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;
400172fc: 00178793 addi a5,a5,1
40017300: 01079793 slli a5,a5,0x10
40017304: 0107d793 srli a5,a5,0x10
rtems_rfs_write_u16 (&handle->node->links, links);
40017308: 0087d713 srli a4,a5,0x8
4001730c: 0ff7f793 andi a5,a5,255
40017310: 00e68023 sb a4,0(a3)
40017314: 03412703 lw a4,52(sp)
rtems_rfs_inode_set_links (&target_inode, links);
rc = rtems_rfs_inode_time_stamp_now (&parent_inode, true, true);
40017318: 00100593 li a1,1
4001731c: 00100613 li a2,1
40017320: 00f700a3 sb a5,1(a4) # f001 <bsp_section_bss_size+0x9a51>
40017324: 00010513 mv a0,sp
rtems_rfs_buffer_mark_dirty (&handle->buffer);
40017328: 00100793 li a5,1
4001732c: 02f10c23 sb a5,56(sp)
40017330: b64f10ef jal ra,40008694 <rtems_rfs_inode_time_stamp_now>
40017334: 00050413 mv s0,a0
if (rc > 0)
{
rtems_rfs_inode_close (fs, &parent_inode);
40017338: 00010593 mv a1,sp
4001733c: 00048513 mv a0,s1
if (rc > 0)
40017340: 04804863 bgtz s0,40017390 <rtems_rfs_link+0x19c> <== NEVER TAKEN
rtems_rfs_inode_close (fs, &target_inode);
return rc;
}
rc = rtems_rfs_inode_close (fs, &parent_inode);
40017344: 968f10ef jal ra,400084ac <rtems_rfs_inode_close>
40017348: 00050413 mv s0,a0
if (rc > 0)
{
rtems_rfs_inode_close (fs, &target_inode);
4001734c: 02810593 addi a1,sp,40
40017350: 00048513 mv a0,s1
if (rc > 0)
40017354: 04804463 bgtz s0,4001739c <rtems_rfs_link+0x1a8> <== NEVER TAKEN
return rc;
}
rc = rtems_rfs_inode_close (fs, &target_inode);
40017358: 954f10ef jal ra,400084ac <rtems_rfs_inode_close>
4001735c: 00050413 mv s0,a0
return rc;
}
40017360: 07c12083 lw ra,124(sp)
40017364: 00040513 mv a0,s0
40017368: 07812403 lw s0,120(sp)
4001736c: 07412483 lw s1,116(sp)
40017370: 07012903 lw s2,112(sp)
40017374: 06c12983 lw s3,108(sp)
40017378: 06812a03 lw s4,104(sp)
4001737c: 06412a83 lw s5,100(sp)
40017380: 06012b03 lw s6,96(sp)
40017384: 05c12b83 lw s7,92(sp)
40017388: 08010113 addi sp,sp,128
4001738c: 00008067 ret
rtems_rfs_inode_close (fs, &parent_inode);
40017390: 91cf10ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
40017394: 02810593 addi a1,sp,40 <== NOT EXECUTED
40017398: 00048513 mv a0,s1 <== NOT EXECUTED
4001739c: 910f10ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return rc;
400173a0: fc1ff06f j 40017360 <rtems_rfs_link+0x16c> <== NOT EXECUTED
printf ("rtems-rfs: link: parent(%" PRIu32 ") -> ", parent);
400173a4: 40024537 lui a0,0x40024 <== NOT EXECUTED
400173a8: 000a8593 mv a1,s5 <== NOT EXECUTED
400173ac: ca050513 addi a0,a0,-864 # 40023ca0 <IMFS_LIMITS_AND_OPTIONS+0xec0><== NOT EXECUTED
400173b0: e48ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
for (c = 0; c < length; c++)
400173b4: 00098413 mv s0,s3 <== NOT EXECUTED
400173b8: 013a0b33 add s6,s4,s3 <== NOT EXECUTED
400173bc: 01405a63 blez s4,400173d0 <rtems_rfs_link+0x1dc> <== NOT EXECUTED
printf ("%c", name[c]);
400173c0: 00044503 lbu a0,0(s0) <== NOT EXECUTED
for (c = 0; c < length; c++)
400173c4: 00140413 addi s0,s0,1 <== NOT EXECUTED
printf ("%c", name[c]);
400173c8: 04c070ef jal ra,4001e414 <putchar> <== NOT EXECUTED
for (c = 0; c < length; c++)
400173cc: fe8b1ae3 bne s6,s0,400173c0 <rtems_rfs_link+0x1cc> <== NOT EXECUTED
printf ("(%" PRIu32 ")\n", target);
400173d0: 40024537 lui a0,0x40024 <== NOT EXECUTED
400173d4: 00090593 mv a1,s2 <== NOT EXECUTED
400173d8: cc050513 addi a0,a0,-832 # 40023cc0 <IMFS_LIMITS_AND_OPTIONS+0xee0><== NOT EXECUTED
400173dc: e1cea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400173e0: e65ff06f j 40017244 <rtems_rfs_link+0x50> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode);
400173e4: 00010593 mv a1,sp <== NOT EXECUTED
400173e8: 00048513 mv a0,s1 <== NOT EXECUTED
400173ec: 8c0f10ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
400173f0: 02810593 addi a1,sp,40 <== NOT EXECUTED
400173f4: 00048513 mv a0,s1 <== NOT EXECUTED
400173f8: 8b4f10ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return rc;
400173fc: f65ff06f j 40017360 <rtems_rfs_link+0x16c> <== NOT EXECUTED
40017400: 00100793 li a5,1 <== NOT EXECUTED
40017404: 00000713 li a4,0 <== NOT EXECUTED
40017408: f09ff06f j 40017310 <rtems_rfs_link+0x11c> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
4001740c: 02810593 addi a1,sp,40 <== NOT EXECUTED
40017410: 00048513 mv a0,s1 <== NOT EXECUTED
40017414: 898f10ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return ENOTSUP;
40017418: 08600413 li s0,134 <== NOT EXECUTED
4001741c: f45ff06f j 40017360 <rtems_rfs_link+0x16c> <== NOT EXECUTED
40009b64 <rtems_rfs_rtems_fdatasync>:
rc = rtems_rfs_buffer_sync (rtems_rfs_rtems_pathloc_dev (&iop->pathinfo));
40009b64: 02452783 lw a5,36(a0) <== NOT EXECUTED
{
40009b68: ff010113 addi sp,sp,-16 <== NOT EXECUTED
40009b6c: 00812423 sw s0,8(sp) <== NOT EXECUTED
rc = rtems_rfs_buffer_sync (rtems_rfs_rtems_pathloc_dev (&iop->pathinfo));
40009b70: 0087a503 lw a0,8(a5) <== NOT EXECUTED
{
40009b74: 00112623 sw ra,12(sp) <== NOT EXECUTED
rc = rtems_rfs_buffer_sync (rtems_rfs_rtems_pathloc_dev (&iop->pathinfo));
40009b78: e79fc0ef jal ra,400069f0 <rtems_rfs_buffer_sync> <== NOT EXECUTED
40009b7c: 00050413 mv s0,a0 <== NOT EXECUTED
if (rc)
40009b80: 00051c63 bnez a0,40009b98 <rtems_rfs_rtems_fdatasync+0x34> <== NOT EXECUTED
}
40009b84: 00c12083 lw ra,12(sp) <== NOT EXECUTED
40009b88: 00040513 mv a0,s0 <== NOT EXECUTED
40009b8c: 00812403 lw s0,8(sp) <== NOT EXECUTED
40009b90: 01010113 addi sp,sp,16 <== NOT EXECUTED
40009b94: 00008067 ret <== NOT EXECUTED
return rtems_rfs_rtems_error ("fdatasync: sync", rc);
40009b98: 0f0140ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40009b9c: 00852023 sw s0,0(a0) <== NOT EXECUTED
40009ba0: fff00413 li s0,-1 <== NOT EXECUTED
40009ba4: fe1ff06f j 40009b84 <rtems_rfs_rtems_fdatasync+0x20> <== NOT EXECUTED
4000958c <rtems_rfs_rtems_fstat>:
rtems_rfs_file_system* fs = rtems_rfs_rtems_pathloc_dev (pathloc);
4000958c: 01452783 lw a5,20(a0)
{
40009590: fc010113 addi sp,sp,-64
40009594: 03212823 sw s2,48(sp)
rtems_rfs_file_system* fs = rtems_rfs_rtems_pathloc_dev (pathloc);
40009598: 0087a903 lw s2,8(a5)
{
4000959c: 02812c23 sw s0,56(sp)
400095a0: 00058413 mv s0,a1
rc = rtems_rfs_inode_open (fs, ino, &inode, true);
400095a4: 00852583 lw a1,8(a0)
400095a8: 00100693 li a3,1
400095ac: 00810613 addi a2,sp,8
400095b0: 00090513 mv a0,s2
{
400095b4: 02912a23 sw s1,52(sp)
400095b8: 02112e23 sw ra,60(sp)
rc = rtems_rfs_inode_open (fs, ino, &inode, true);
400095bc: cc5fe0ef jal ra,40008280 <rtems_rfs_inode_open>
400095c0: 00050493 mv s1,a0
if (rc)
400095c4: 30051663 bnez a0,400098d0 <rtems_rfs_rtems_fstat+0x344> <== NEVER TAKEN
return rtems_rfs_read_u16 (&handle->node->mode);
400095c8: 01412783 lw a5,20(sp)
if (RTEMS_RFS_S_ISCHR (mode) || RTEMS_RFS_S_ISBLK (mode))
400095cc: 000026b7 lui a3,0x2
400095d0: 0037c503 lbu a0,3(a5)
400095d4: 0027c703 lbu a4,2(a5)
400095d8: 00851513 slli a0,a0,0x8
400095dc: 00e56533 or a0,a0,a4
400095e0: 00851713 slli a4,a0,0x8
400095e4: 00855513 srli a0,a0,0x8
400095e8: 00a76533 or a0,a4,a0
400095ec: 01051513 slli a0,a0,0x10
400095f0: 01055513 srli a0,a0,0x10
400095f4: ffffb737 lui a4,0xffffb
400095f8: 00e57733 and a4,a0,a4
400095fc: 04d71e63 bne a4,a3,40009658 <rtems_rfs_rtems_fstat+0xcc>
return rtems_rfs_read_u32 (&handle->node->data.blocks[block]);
40009600: 01c7c683 lbu a3,28(a5) <== NOT EXECUTED
40009604: 0207c703 lbu a4,32(a5) <== NOT EXECUTED
40009608: 0217c883 lbu a7,33(a5) <== NOT EXECUTED
4000960c: 01d7c803 lbu a6,29(a5) <== NOT EXECUTED
40009610: 0237ce03 lbu t3,35(a5) <== NOT EXECUTED
40009614: 0227c583 lbu a1,34(a5) <== NOT EXECUTED
40009618: 01f7c303 lbu t1,31(a5) <== NOT EXECUTED
4000961c: 01e7c603 lbu a2,30(a5) <== NOT EXECUTED
40009620: 01089893 slli a7,a7,0x10 <== NOT EXECUTED
40009624: 01871793 slli a5,a4,0x18 <== NOT EXECUTED
40009628: 01869713 slli a4,a3,0x18 <== NOT EXECUTED
4000962c: 01081693 slli a3,a6,0x10 <== NOT EXECUTED
40009630: 00d76733 or a4,a4,a3 <== NOT EXECUTED
40009634: 0117e7b3 or a5,a5,a7 <== NOT EXECUTED
40009638: 01c7e7b3 or a5,a5,t3 <== NOT EXECUTED
4000963c: 00859593 slli a1,a1,0x8 <== NOT EXECUTED
40009640: 00676733 or a4,a4,t1 <== NOT EXECUTED
40009644: 00861693 slli a3,a2,0x8 <== NOT EXECUTED
40009648: 00b7e7b3 or a5,a5,a1 <== NOT EXECUTED
4000964c: 00d76733 or a4,a4,a3 <== NOT EXECUTED
buf->st_rdev =
40009650: 02e42023 sw a4,32(s0) <== NOT EXECUTED
40009654: 02f42223 sw a5,36(s0) <== NOT EXECUTED
buf->st_dev = (dev_t) (uintptr_t)rtems_rfs_fs_device (fs);
40009658: 01092783 lw a5,16(s2)
4000965c: 00042223 sw zero,4(s0)
buf->st_ino = rtems_rfs_inode_ino (&inode);
40009660: 00042623 sw zero,12(s0)
buf->st_dev = (dev_t) (uintptr_t)rtems_rfs_fs_device (fs);
40009664: 00f42023 sw a5,0(s0)
buf->st_ino = rtems_rfs_inode_ino (&inode);
40009668: 01012783 lw a5,16(sp)
4000966c: 00f42423 sw a5,8(s0)
buf->st_mode = rtems_rfs_rtems_mode (mode);
40009670: 299000ef jal ra,4000a108 <rtems_rfs_rtems_mode>
links = rtems_rfs_read_u16 (&handle->node->links);
40009674: 01412683 lw a3,20(sp)
40009678: 00a42823 sw a0,16(s0)
shared = rtems_rfs_file_get_shared (fs, rtems_rfs_inode_ino (&inode));
4000967c: 01012583 lw a1,16(sp)
40009680: 0016c783 lbu a5,1(a3) # 2001 <bsp_section_rtemsstack_size+0x1>
40009684: 0006c703 lbu a4,0(a3)
40009688: 00090513 mv a0,s2
4000968c: 00879793 slli a5,a5,0x8
40009690: 00e7e7b3 or a5,a5,a4
40009694: 00879713 slli a4,a5,0x8
40009698: 0087d793 srli a5,a5,0x8
4000969c: 00f76733 or a4,a4,a5
400096a0: 01071713 slli a4,a4,0x10
links = 0;
400096a4: 000107b7 lui a5,0x10
400096a8: 01075713 srli a4,a4,0x10
400096ac: fff78793 addi a5,a5,-1 # ffff <bsp_section_bss_size+0xaa4f>
400096b0: 40f707b3 sub a5,a4,a5
400096b4: 00f037b3 snez a5,a5
400096b8: 40f007b3 neg a5,a5
400096bc: 00f77733 and a4,a4,a5
buf->st_nlink = rtems_rfs_inode_get_links (&inode);
400096c0: 00e41a23 sh a4,20(s0)
buf->st_uid = rtems_rfs_inode_get_uid (&inode);
400096c4: 0076c783 lbu a5,7(a3)
400096c8: 0066c703 lbu a4,6(a3)
400096cc: 00879793 slli a5,a5,0x8
400096d0: 00e7e7b3 or a5,a5,a4
400096d4: 00879713 slli a4,a5,0x8
400096d8: 0087d793 srli a5,a5,0x8
400096dc: 00f767b3 or a5,a4,a5
400096e0: 00f41b23 sh a5,22(s0)
return (rtems_rfs_read_u32 (&handle->node->owner) >> 16) & 0xffff;
400096e4: 0046c783 lbu a5,4(a3)
400096e8: 0056c703 lbu a4,5(a3)
400096ec: 01879793 slli a5,a5,0x18
400096f0: 01071713 slli a4,a4,0x10
400096f4: 00e7e7b3 or a5,a5,a4
400096f8: 0107d793 srli a5,a5,0x10
400096fc: 00f41c23 sh a5,24(s0)
shared = rtems_rfs_file_get_shared (fs, rtems_rfs_inode_ino (&inode));
40009700: 2200d0ef jal ra,40016920 <rtems_rfs_file_get_shared>
if (shared)
40009704: 0a050063 beqz a0,400097a4 <rtems_rfs_rtems_fstat+0x218>
buf->st_blocks = rtems_rfs_file_shared_get_block_count (shared);
40009708: 08452783 lw a5,132(a0)
buf->st_atime = rtems_rfs_file_shared_get_atime (shared);
4000970c: 08c52583 lw a1,140(a0)
buf->st_mtime = rtems_rfs_file_shared_get_mtime (shared);
40009710: 09052603 lw a2,144(a0)
buf->st_ctime = rtems_rfs_file_shared_get_ctime (shared);
40009714: 09452683 lw a3,148(a0)
if (S_ISLNK (buf->st_mode))
40009718: 01042703 lw a4,16(s0)
buf->st_blocks = rtems_rfs_file_shared_get_block_count (shared);
4000971c: 06f42223 sw a5,100(s0)
if (S_ISLNK (buf->st_mode))
40009720: 0000f7b7 lui a5,0xf
40009724: 00e7f7b3 and a5,a5,a4
buf->st_atime = rtems_rfs_file_shared_get_atime (shared);
40009728: 02b42823 sw a1,48(s0)
4000972c: 02042a23 sw zero,52(s0)
buf->st_mtime = rtems_rfs_file_shared_get_mtime (shared);
40009730: 04c42023 sw a2,64(s0)
40009734: 04042223 sw zero,68(s0)
buf->st_ctime = rtems_rfs_file_shared_get_ctime (shared);
40009738: 04d42823 sw a3,80(s0)
4000973c: 04042a23 sw zero,84(s0)
if (S_ISLNK (buf->st_mode))
40009740: 0000a737 lui a4,0xa
40009744: 04e79463 bne a5,a4,4000978c <rtems_rfs_rtems_fstat+0x200>
buf->st_size = rtems_rfs_file_shared_get_block_offset (shared);
40009748: 08855783 lhu a5,136(a0) <== NOT EXECUTED
4000974c: 02042623 sw zero,44(s0) <== NOT EXECUTED
40009750: 02f42423 sw a5,40(s0) <== NOT EXECUTED
buf->st_blksize = rtems_rfs_fs_block_size (fs);
40009754: 00892783 lw a5,8(s2)
rc = rtems_rfs_inode_close (fs, &inode);
40009758: 00810593 addi a1,sp,8
4000975c: 00090513 mv a0,s2
buf->st_blksize = rtems_rfs_fs_block_size (fs);
40009760: 06f42023 sw a5,96(s0)
rc = rtems_rfs_inode_close (fs, &inode);
40009764: d49fe0ef jal ra,400084ac <rtems_rfs_inode_close>
40009768: 00050413 mv s0,a0
if (rc > 0)
4000976c: 14a04a63 bgtz a0,400098c0 <rtems_rfs_rtems_fstat+0x334> <== NEVER TAKEN
}
40009770: 03c12083 lw ra,60(sp)
40009774: 03812403 lw s0,56(sp)
40009778: 03012903 lw s2,48(sp)
4000977c: 00048513 mv a0,s1
40009780: 03412483 lw s1,52(sp)
40009784: 04010113 addi sp,sp,64
40009788: 00008067 ret
*/
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);
4000978c: 08450593 addi a1,a0,132
40009790: 00090513 mv a0,s2
40009794: 5a5090ef jal ra,40013538 <rtems_rfs_block_get_size>
buf->st_size = rtems_rfs_file_shared_get_size (fs, shared);
40009798: 02a42423 sw a0,40(s0)
4000979c: 02b42623 sw a1,44(s0)
400097a0: fb5ff06f j 40009754 <rtems_rfs_rtems_fstat+0x1c8>
buf->st_atime = rtems_rfs_inode_get_atime (&inode);
400097a4: 01412783 lw a5,20(sp)
if (S_ISLNK (buf->st_mode))
400097a8: 01042603 lw a2,16(s0)
return rtems_rfs_read_u32 (&handle->node->atime);
400097ac: 0107c703 lbu a4,16(a5) # f010 <bsp_section_bss_size+0x9a60>
400097b0: 0117c583 lbu a1,17(a5)
400097b4: 0137c503 lbu a0,19(a5)
400097b8: 0127c683 lbu a3,18(a5)
400097bc: 01059593 slli a1,a1,0x10
400097c0: 01871713 slli a4,a4,0x18
400097c4: 00b76733 or a4,a4,a1
400097c8: 00a76733 or a4,a4,a0
400097cc: 00869693 slli a3,a3,0x8
400097d0: 00d76733 or a4,a4,a3
buf->st_atime = rtems_rfs_inode_get_atime (&inode);
400097d4: 02e42823 sw a4,48(s0)
400097d8: 02042a23 sw zero,52(s0)
return rtems_rfs_read_u32 (&handle->node->mtime);
400097dc: 0147c703 lbu a4,20(a5)
400097e0: 0157c583 lbu a1,21(a5)
400097e4: 0177c503 lbu a0,23(a5)
400097e8: 0167c683 lbu a3,22(a5)
400097ec: 01059593 slli a1,a1,0x10
400097f0: 01871713 slli a4,a4,0x18
400097f4: 00b76733 or a4,a4,a1
400097f8: 00a76733 or a4,a4,a0
400097fc: 00869693 slli a3,a3,0x8
40009800: 00d76733 or a4,a4,a3
buf->st_mtime = rtems_rfs_inode_get_mtime (&inode);
40009804: 04e42023 sw a4,64(s0)
40009808: 04042223 sw zero,68(s0)
return rtems_rfs_read_u32 (&handle->node->ctime);
4000980c: 0187c703 lbu a4,24(a5)
40009810: 0197c583 lbu a1,25(a5)
40009814: 01b7c503 lbu a0,27(a5)
40009818: 01a7c683 lbu a3,26(a5)
4000981c: 01059593 slli a1,a1,0x10
40009820: 01871713 slli a4,a4,0x18
40009824: 00b76733 or a4,a4,a1
40009828: 00a76733 or a4,a4,a0
4000982c: 00869693 slli a3,a3,0x8
40009830: 00d76733 or a4,a4,a3
buf->st_ctime = rtems_rfs_inode_get_ctime (&inode);
40009834: 04e42823 sw a4,80(s0)
40009838: 04042a23 sw zero,84(s0)
return rtems_rfs_read_u32 (&handle->node->block_count);
4000983c: 00c7c703 lbu a4,12(a5)
40009840: 00d7c583 lbu a1,13(a5)
40009844: 00f7c503 lbu a0,15(a5)
40009848: 00e7c683 lbu a3,14(a5)
4000984c: 01871713 slli a4,a4,0x18
40009850: 01059593 slli a1,a1,0x10
40009854: 00b76733 or a4,a4,a1
40009858: 00869693 slli a3,a3,0x8
4000985c: 00a76733 or a4,a4,a0
40009860: 00d76733 or a4,a4,a3
buf->st_blocks = rtems_rfs_inode_get_block_count (&inode);
40009864: 06e42223 sw a4,100(s0)
if (S_ISLNK (buf->st_mode))
40009868: 0000f737 lui a4,0xf
4000986c: 00c77733 and a4,a4,a2
40009870: 0000a6b7 lui a3,0xa
40009874: 02d71a63 bne a4,a3,400098a8 <rtems_rfs_rtems_fstat+0x31c>
buf->st_size = rtems_rfs_inode_get_block_offset (&inode);
40009878: 00b7c703 lbu a4,11(a5)
4000987c: 00a7c683 lbu a3,10(a5)
40009880: 02042623 sw zero,44(s0)
40009884: 00871793 slli a5,a4,0x8
40009888: 00d7e7b3 or a5,a5,a3
4000988c: 00879713 slli a4,a5,0x8
40009890: 0087d793 srli a5,a5,0x8
40009894: 00f767b3 or a5,a4,a5
40009898: 01079793 slli a5,a5,0x10
4000989c: 0107d793 srli a5,a5,0x10
400098a0: 02f42423 sw a5,40(s0)
400098a4: eb1ff06f j 40009754 <rtems_rfs_rtems_fstat+0x1c8>
buf->st_size = rtems_rfs_inode_get_size (fs, &inode);
400098a8: 00810593 addi a1,sp,8
400098ac: 00090513 mv a0,s2
400098b0: bccff0ef jal ra,40008c7c <rtems_rfs_inode_get_size>
400098b4: 02a42423 sw a0,40(s0)
400098b8: 02b42623 sw a1,44(s0)
400098bc: e99ff06f j 40009754 <rtems_rfs_rtems_fstat+0x1c8>
return rtems_rfs_rtems_error ("stat: closing inode", rc);
400098c0: 3c8140ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
400098c4: 00852023 sw s0,0(a0) <== NOT EXECUTED
400098c8: fff00493 li s1,-1 <== NOT EXECUTED
400098cc: ea5ff06f j 40009770 <rtems_rfs_rtems_fstat+0x1e4> <== NOT EXECUTED
return rtems_rfs_rtems_error ("stat: opening inode", rc);
400098d0: 3b8140ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
400098d4: 00952023 sw s1,0(a0) <== NOT EXECUTED
400098d8: fff00493 li s1,-1 <== NOT EXECUTED
400098dc: e95ff06f j 40009770 <rtems_rfs_rtems_fstat+0x1e4> <== NOT EXECUTED
40009ba8 <rtems_rfs_rtems_initialise>:
{
40009ba8: fc010113 addi sp,sp,-64
40009bac: 01712e23 sw s7,28(sp)
40009bb0: 02112e23 sw ra,60(sp)
40009bb4: 02812c23 sw s0,56(sp)
40009bb8: 02912a23 sw s1,52(sp)
40009bbc: 03212823 sw s2,48(sp)
40009bc0: 03312623 sw s3,44(sp)
40009bc4: 03412423 sw s4,40(sp)
40009bc8: 03512223 sw s5,36(sp)
40009bcc: 03612023 sw s6,32(sp)
40009bd0: 00050b93 mv s7,a0
while (options)
40009bd4: 1a058a63 beqz a1,40009d88 <rtems_rfs_rtems_initialise+0x1e0> <== ALWAYS TAKEN
40009bd8: 00058413 mv s0,a1 <== NOT EXECUTED
uint32_t max_held_buffers = RTEMS_RFS_FS_MAX_HELD_BUFFERS;
40009bdc: 00500a93 li s5,5 <== NOT EXECUTED
uint32_t flags = 0;
40009be0: 00000493 li s1,0 <== NOT EXECUTED
40009be4: 40022a37 lui s4,0x40022 <== NOT EXECUTED
40009be8: 400229b7 lui s3,0x40022 <== NOT EXECUTED
else if (strncmp (options, "no-local-cache",
40009bec: 40022937 lui s2,0x40022 <== NOT EXECUTED
else if (strncmp (options, "max-held-bufs",
40009bf0: 40022b37 lui s6,0x40022 <== NOT EXECUTED
printf ("options=%s\n", options);
40009bf4: 00040593 mv a1,s0 <== NOT EXECUTED
40009bf8: 5bca0513 addi a0,s4,1468 # 400225bc <IMFS_node_control_sym_link+0x105c><== NOT EXECUTED
40009bfc: dfdf70ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (strncmp (options, "hold-bitmaps",
40009c00: 5c898593 addi a1,s3,1480 # 400225c8 <IMFS_node_control_sym_link+0x1068><== NOT EXECUTED
40009c04: 00c00613 li a2,12 <== NOT EXECUTED
40009c08: 00040513 mv a0,s0 <== NOT EXECUTED
40009c0c: 494150ef jal ra,4001f0a0 <strncmp> <== NOT EXECUTED
40009c10: 00050793 mv a5,a0 <== NOT EXECUTED
else if (strncmp (options, "no-local-cache",
40009c14: 5d890593 addi a1,s2,1496 # 400225d8 <IMFS_node_control_sym_link+0x1078><== NOT EXECUTED
40009c18: 00e00613 li a2,14 <== NOT EXECUTED
40009c1c: 00040513 mv a0,s0 <== NOT EXECUTED
if (strncmp (options, "hold-bitmaps",
40009c20: 0c079c63 bnez a5,40009cf8 <rtems_rfs_rtems_initialise+0x150> <== NOT EXECUTED
flags |= RTEMS_RFS_FS_BITMAPS_HOLD;
40009c24: 0014e493 ori s1,s1,1 <== NOT EXECUTED
options = strchr (options, ',');
40009c28: 00040513 mv a0,s0 <== NOT EXECUTED
40009c2c: 02c00593 li a1,44 <== NOT EXECUTED
40009c30: 3a5140ef jal ra,4001e7d4 <strchr> <== NOT EXECUTED
if (options)
40009c34: 00050863 beqz a0,40009c44 <rtems_rfs_rtems_initialise+0x9c> <== NOT EXECUTED
if (*options == '\0')
40009c38: 00154783 lbu a5,1(a0) <== NOT EXECUTED
++options;
40009c3c: 00150413 addi s0,a0,1 <== NOT EXECUTED
if (*options == '\0')
40009c40: fa079ae3 bnez a5,40009bf4 <rtems_rfs_rtems_initialise+0x4c> <== NOT EXECUTED
rtems = malloc (sizeof (rtems_rfs_rtems_private));
40009c44: 00100593 li a1,1
40009c48: 01800513 li a0,24
40009c4c: 134080ef jal ra,40011d80 <calloc>
40009c50: 00050413 mv s0,a0
if (!rtems)
40009c54: 14050a63 beqz a0,40009da8 <rtems_rfs_rtems_initialise+0x200> <== NEVER TAKEN
rc = rtems_rfs_mutex_create (&rtems->access);
40009c58: 0d80e0ef jal ra,40017d30 <rtems_rfs_mutex_create>
40009c5c: 00050913 mv s2,a0
free (rtems);
40009c60: 00040513 mv a0,s0
if (rc > 0)
40009c64: 13204863 bgtz s2,40009d94 <rtems_rfs_rtems_initialise+0x1ec> <== NEVER TAKEN
_Mutex_recursive_Acquire( mutex );
40009c68: 1b4020ef jal ra,4000be1c <_Mutex_recursive_Acquire>
rc = rtems_rfs_fs_open (mt_entry->dev, rtems, flags, max_held_buffers, &fs);
40009c6c: 038ba503 lw a0,56(s7)
40009c70: 00048613 mv a2,s1
40009c74: 00c10713 addi a4,sp,12
40009c78: 000a8693 mv a3,s5
40009c7c: 00040593 mv a1,s0
40009c80: 4fd0c0ef jal ra,4001697c <rtems_rfs_fs_open>
40009c84: 00050493 mv s1,a0
if (rc)
40009c88: 0a051a63 bnez a0,40009d3c <rtems_rfs_rtems_initialise+0x194> <== NEVER TAKEN
mt_entry->fs_info = fs;
40009c8c: 00c12503 lw a0,12(sp)
mt_entry->mt_fs_root->location.node_access = (void*) RTEMS_RFS_ROOT_INO;
40009c90: 024ba703 lw a4,36(s7)
mt_entry->ops = &rtems_rfs_ops;
40009c94: 400227b7 lui a5,0x40022
40009c98: 5f878793 addi a5,a5,1528 # 400225f8 <rtems_rfs_ops>
rtems_rfs_rtems_private* rtems = rtems_rfs_fs_user (fs);
40009c9c: 08052403 lw s0,128(a0)
40009ca0: 00fba623 sw a5,12(s7)
mt_entry->fs_info = fs;
40009ca4: 00aba423 sw a0,8(s7)
mt_entry->mt_fs_root->location.node_access = (void*) RTEMS_RFS_ROOT_INO;
40009ca8: 00100793 li a5,1
40009cac: 00f72423 sw a5,8(a4) # f008 <bsp_section_bss_size+0x9a58>
mt_entry->mt_fs_root->location.handlers = &rtems_rfs_rtems_dir_handlers;
40009cb0: 400227b7 lui a5,0x40022
40009cb4: 68478793 addi a5,a5,1668 # 40022684 <rtems_rfs_rtems_dir_handlers>
40009cb8: 00f72823 sw a5,16(a4)
rtems_rfs_buffers_release (fs);
40009cbc: de9fc0ef jal ra,40006aa4 <rtems_rfs_buffers_release>
_Mutex_recursive_Release( mutex );
40009cc0: 00040513 mv a0,s0
40009cc4: 1e0020ef jal ra,4000bea4 <_Mutex_recursive_Release>
}
40009cc8: 03c12083 lw ra,60(sp)
40009ccc: 03812403 lw s0,56(sp)
40009cd0: 03012903 lw s2,48(sp)
40009cd4: 02c12983 lw s3,44(sp)
40009cd8: 02812a03 lw s4,40(sp)
40009cdc: 02412a83 lw s5,36(sp)
40009ce0: 02012b03 lw s6,32(sp)
40009ce4: 01c12b83 lw s7,28(sp)
40009ce8: 00048513 mv a0,s1
40009cec: 03412483 lw s1,52(sp)
40009cf0: 04010113 addi sp,sp,64
40009cf4: 00008067 ret
else if (strncmp (options, "no-local-cache",
40009cf8: 3a8150ef jal ra,4001f0a0 <strncmp> <== NOT EXECUTED
40009cfc: 00050793 mv a5,a0 <== NOT EXECUTED
else if (strncmp (options, "max-held-bufs",
40009d00: 5e8b0593 addi a1,s6,1512 # 400225e8 <IMFS_node_control_sym_link+0x1088><== NOT EXECUTED
40009d04: 00d00613 li a2,13 <== NOT EXECUTED
40009d08: 00040513 mv a0,s0 <== NOT EXECUTED
else if (strncmp (options, "no-local-cache",
40009d0c: 00079663 bnez a5,40009d18 <rtems_rfs_rtems_initialise+0x170> <== NOT EXECUTED
flags |= RTEMS_RFS_FS_NO_LOCAL_CACHE;
40009d10: 0024e493 ori s1,s1,2 <== NOT EXECUTED
40009d14: f15ff06f j 40009c28 <rtems_rfs_rtems_initialise+0x80> <== NOT EXECUTED
else if (strncmp (options, "max-held-bufs",
40009d18: 388150ef jal ra,4001f0a0 <strncmp> <== NOT EXECUTED
40009d1c: 00050793 mv a5,a0 <== NOT EXECUTED
max_held_buffers = strtoul (options + sizeof ("max-held-bufs"), 0, 0);
40009d20: 00000613 li a2,0 <== NOT EXECUTED
40009d24: 00000593 li a1,0 <== NOT EXECUTED
40009d28: 00e40513 addi a0,s0,14 <== NOT EXECUTED
else if (strncmp (options, "max-held-bufs",
40009d2c: 04079463 bnez a5,40009d74 <rtems_rfs_rtems_initialise+0x1cc> <== NOT EXECUTED
max_held_buffers = strtoul (options + sizeof ("max-held-bufs"), 0, 0);
40009d30: 60c150ef jal ra,4001f33c <strtoul> <== NOT EXECUTED
40009d34: 00050a93 mv s5,a0 <== NOT EXECUTED
40009d38: ef1ff06f j 40009c28 <rtems_rfs_rtems_initialise+0x80> <== NOT EXECUTED
40009d3c: 00040513 mv a0,s0 <== NOT EXECUTED
40009d40: 164020ef jal ra,4000bea4 <_Mutex_recursive_Release> <== NOT EXECUTED
rtems_rfs_mutex_destroy (&rtems->access);
40009d44: 00040513 mv a0,s0 <== NOT EXECUTED
40009d48: 0100e0ef jal ra,40017d58 <rtems_rfs_mutex_destroy> <== NOT EXECUTED
free (rtems);
40009d4c: 00040513 mv a0,s0 <== NOT EXECUTED
40009d50: 838f80ef jal ra,40001d88 <free> <== NOT EXECUTED
return rtems_rfs_rtems_error ("initialise: open", errno);
40009d54: 735130ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40009d58: 00050413 mv s0,a0 <== NOT EXECUTED
40009d5c: 72d130ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40009d60: 00042783 lw a5,0(s0) <== NOT EXECUTED
40009d64: 00f034b3 snez s1,a5 <== NOT EXECUTED
40009d68: 00f52023 sw a5,0(a0) <== NOT EXECUTED
40009d6c: 409004b3 neg s1,s1 <== NOT EXECUTED
40009d70: f59ff06f j 40009cc8 <rtems_rfs_rtems_initialise+0x120> <== NOT EXECUTED
return rtems_rfs_rtems_error ("initialise: invalid option", EINVAL);
40009d74: 715130ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40009d78: 01600793 li a5,22 <== NOT EXECUTED
40009d7c: 00f52023 sw a5,0(a0) <== NOT EXECUTED
40009d80: fff00493 li s1,-1 <== NOT EXECUTED
40009d84: f45ff06f j 40009cc8 <rtems_rfs_rtems_initialise+0x120> <== NOT EXECUTED
uint32_t max_held_buffers = RTEMS_RFS_FS_MAX_HELD_BUFFERS;
40009d88: 00500a93 li s5,5
uint32_t flags = 0;
40009d8c: 00000493 li s1,0
40009d90: eb5ff06f j 40009c44 <rtems_rfs_rtems_initialise+0x9c>
free (rtems);
40009d94: ff5f70ef jal ra,40001d88 <free> <== NOT EXECUTED
return rtems_rfs_rtems_error ("initialise: cannot create mutex", rc);
40009d98: 6f1130ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40009d9c: 01252023 sw s2,0(a0) <== NOT EXECUTED
40009da0: fff00493 li s1,-1 <== NOT EXECUTED
40009da4: f25ff06f j 40009cc8 <rtems_rfs_rtems_initialise+0x120> <== NOT EXECUTED
return rtems_rfs_rtems_error ("initialise: local data", ENOMEM);
40009da8: 6e1130ef jal ra,4001dc88 <__errno> <== NOT EXECUTED
40009dac: 00c00793 li a5,12 <== NOT EXECUTED
40009db0: 00f52023 sw a5,0(a0) <== NOT EXECUTED
40009db4: fff00493 li s1,-1 <== NOT EXECUTED
40009db8: f11ff06f j 40009cc8 <rtems_rfs_rtems_initialise+0x120> <== NOT EXECUTED
4000a02c <rtems_rfs_rtems_set_handlers>:
return rtems_rfs_read_u16 (&handle->node->mode);
4000a02c: 00c5a783 lw a5,12(a1)
rtems_rfs_rtems_set_handlers (rtems_filesystem_location_info_t* loc,
rtems_rfs_inode_handle* inode)
{
uint16_t mode = rtems_rfs_inode_get_mode (inode);
loc->handlers = NULL;
if (RTEMS_RFS_S_ISDIR (mode))
4000a030: 00004737 lui a4,0x4
4000a034: 0037c583 lbu a1,3(a5)
4000a038: 0027c783 lbu a5,2(a5)
loc->handlers = NULL;
4000a03c: 00052823 sw zero,16(a0)
4000a040: 00859593 slli a1,a1,0x8
4000a044: 00f5e5b3 or a1,a1,a5
4000a048: 00859793 slli a5,a1,0x8
4000a04c: 0085d593 srli a1,a1,0x8
4000a050: 00b7e5b3 or a1,a5,a1
4000a054: 01059593 slli a1,a1,0x10
4000a058: 0105d593 srli a1,a1,0x10
if (RTEMS_RFS_S_ISDIR (mode))
4000a05c: fffff7b7 lui a5,0xfffff
4000a060: 00f5f7b3 and a5,a1,a5
4000a064: 04e78663 beq a5,a4,4000a0b0 <rtems_rfs_rtems_set_handlers+0x84>
loc->handlers = rtems_rfs_rtems_handlers (dir);
else if (RTEMS_RFS_S_ISCHR (mode) || RTEMS_RFS_S_ISBLK(mode))
4000a068: ffffb737 lui a4,0xffffb
4000a06c: 00e5f733 and a4,a1,a4
4000a070: 000026b7 lui a3,0x2
4000a074: 02d70463 beq a4,a3,4000a09c <rtems_rfs_rtems_set_handlers+0x70>
loc->handlers = rtems_rfs_rtems_handlers (device);
else if (RTEMS_RFS_S_ISLNK (mode))
4000a078: 0000a737 lui a4,0xa
4000a07c: 04e78463 beq a5,a4,4000a0c4 <rtems_rfs_rtems_set_handlers+0x98>
loc->handlers = rtems_rfs_rtems_handlers (link);
else if (RTEMS_RFS_S_ISREG (mode))
4000a080: 00008737 lui a4,0x8
4000a084: 04e79a63 bne a5,a4,4000a0d8 <rtems_rfs_rtems_set_handlers+0xac>
loc->handlers = rtems_rfs_rtems_handlers (file);
4000a088: 400247b7 lui a5,0x40024
4000a08c: f1078793 addi a5,a5,-240 # 40023f10 <rtems_rfs_rtems_file_handlers>
4000a090: 00f52823 sw a5,16(a0)
else
{
printf ("rtems-rfs: mode type unknown: %04x\n", mode);
return false;
}
return true;
4000a094: 00100513 li a0,1
}
4000a098: 00008067 ret
loc->handlers = rtems_rfs_rtems_handlers (device);
4000a09c: 400247b7 lui a5,0x40024 <== NOT EXECUTED
4000a0a0: ed078793 addi a5,a5,-304 # 40023ed0 <rtems_rfs_rtems_device_handlers><== NOT EXECUTED
4000a0a4: 00f52823 sw a5,16(a0) <== NOT EXECUTED
return true;
4000a0a8: 00100513 li a0,1 <== NOT EXECUTED
loc->handlers = rtems_rfs_rtems_handlers (device);
4000a0ac: 00008067 ret <== NOT EXECUTED
loc->handlers = rtems_rfs_rtems_handlers (dir);
4000a0b0: 400227b7 lui a5,0x40022
4000a0b4: 68478793 addi a5,a5,1668 # 40022684 <rtems_rfs_rtems_dir_handlers>
4000a0b8: 00f52823 sw a5,16(a0)
return true;
4000a0bc: 00100513 li a0,1
4000a0c0: 00008067 ret
loc->handlers = rtems_rfs_rtems_handlers (link);
4000a0c4: 400227b7 lui a5,0x40022
4000a0c8: 64478793 addi a5,a5,1604 # 40022644 <rtems_rfs_rtems_link_handlers>
4000a0cc: 00f52823 sw a5,16(a0)
return true;
4000a0d0: 00100513 li a0,1
4000a0d4: 00008067 ret
printf ("rtems-rfs: mode type unknown: %04x\n", mode);
4000a0d8: 40022537 lui a0,0x40022 <== NOT EXECUTED
{
4000a0dc: ff010113 addi sp,sp,-16 <== NOT EXECUTED
printf ("rtems-rfs: mode type unknown: %04x\n", mode);
4000a0e0: 6c450513 addi a0,a0,1732 # 400226c4 <rtems_rfs_rtems_dir_handlers+0x40><== NOT EXECUTED
{
4000a0e4: 00112623 sw ra,12(sp) <== NOT EXECUTED
printf ("rtems-rfs: mode type unknown: %04x\n", mode);
4000a0e8: 911f70ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
}
4000a0ec: 00c12083 lw ra,12(sp) <== NOT EXECUTED
return false;
4000a0f0: 00000513 li a0,0 <== NOT EXECUTED
}
4000a0f4: 01010113 addi sp,sp,16 <== NOT EXECUTED
4000a0f8: 00008067 ret <== NOT EXECUTED
4001787c <rtems_rfs_symlink>:
const char* link,
int link_length,
uid_t uid,
gid_t gid,
rtems_rfs_ino parent)
{
4001787c: f3010113 addi sp,sp,-208
40017880: 0d212023 sw s2,192(sp)
40017884: 0b512a23 sw s5,180(sp)
40017888: 00050913 mv s2,a0
4001788c: 00058a93 mv s5,a1
rtems_rfs_inode_handle inode;
rtems_rfs_ino ino;
int rc;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_SYMLINK))
40017890: 00000513 li a0,0
40017894: 00200593 li a1,2
{
40017898: 0c912223 sw s1,196(sp)
4001789c: 0b312e23 sw s3,188(sp)
400178a0: 0b412c23 sw s4,184(sp)
400178a4: 0b612823 sw s6,176(sp)
400178a8: 0b712623 sw s7,172(sp)
400178ac: 0b812423 sw s8,168(sp)
400178b0: 0c112623 sw ra,204(sp)
400178b4: 0c812423 sw s0,200(sp)
400178b8: 00060493 mv s1,a2
400178bc: 00068a13 mv s4,a3
400178c0: 00070993 mv s3,a4
400178c4: 00078b93 mv s7,a5
400178c8: 00080c13 mv s8,a6
400178cc: 00088b13 mv s6,a7
if (rtems_rfs_trace (RTEMS_RFS_TRACE_SYMLINK))
400178d0: 83df20ef jal ra,4000a10c <rtems_rfs_trace>
400178d4: 12051063 bnez a0,400179f4 <rtems_rfs_symlink+0x178> <== NEVER TAKEN
printf (" link:");
for (c = 0; c < link_length; c++)
printf ("%c", link[c]);
}
if (link_length >= rtems_rfs_fs_block_size (fs))
400178d8: 00892783 lw a5,8(s2)
return ENAMETOOLONG;
400178dc: 05b00413 li s0,91
if (link_length >= rtems_rfs_fs_block_size (fs))
400178e0: 04f9f263 bgeu s3,a5,40017924 <rtems_rfs_symlink+0xa8>
rc = rtems_rfs_inode_create (fs, parent, name, strlen (name),
400178e4: 000a8513 mv a0,s5
400178e8: 72c070ef jal ra,4001f014 <strlen>
400178ec: 01410793 addi a5,sp,20
400178f0: 0000a737 lui a4,0xa
400178f4: 00050693 mv a3,a0
400178f8: 00f12023 sw a5,0(sp)
400178fc: 000c0893 mv a7,s8
40017900: 000b8813 mv a6,s7
40017904: 00100793 li a5,1
40017908: 1ff70713 addi a4,a4,511 # a1ff <bsp_section_bss_size+0x4c4f>
4001790c: 000a8613 mv a2,s5
40017910: 000b0593 mv a1,s6
40017914: 00090513 mv a0,s2
40017918: f99f00ef jal ra,400088b0 <rtems_rfs_inode_create>
4001791c: 00050413 mv s0,a0
RTEMS_RFS_S_SYMLINK,
1, uid, gid, &ino);
if (rc > 0)
40017920: 02a05c63 blez a0,40017958 <rtems_rfs_symlink+0xdc> <== ALWAYS TAKEN
rtems_rfs_inode_set_block_offset (&inode, link_length);
rc = rtems_rfs_inode_close (fs, &inode);
return rc;
}
40017924: 0cc12083 lw ra,204(sp)
40017928: 00040513 mv a0,s0
4001792c: 0c812403 lw s0,200(sp)
40017930: 0c412483 lw s1,196(sp)
40017934: 0c012903 lw s2,192(sp)
40017938: 0bc12983 lw s3,188(sp)
4001793c: 0b812a03 lw s4,184(sp)
40017940: 0b412a83 lw s5,180(sp)
40017944: 0b012b03 lw s6,176(sp)
40017948: 0ac12b83 lw s7,172(sp)
4001794c: 0a812c03 lw s8,168(sp)
40017950: 0d010113 addi sp,sp,208
40017954: 00008067 ret
rc = rtems_rfs_inode_open (fs, ino, &inode, true);
40017958: 01412583 lw a1,20(sp)
4001795c: 00100693 li a3,1
40017960: 02810613 addi a2,sp,40
40017964: 00090513 mv a0,s2
40017968: 919f00ef jal ra,40008280 <rtems_rfs_inode_open>
4001796c: 00050413 mv s0,a0
if (rc > 0)
40017970: faa04ae3 bgtz a0,40017924 <rtems_rfs_symlink+0xa8> <== NEVER TAKEN
if (link_length < RTEMS_RFS_INODE_DATA_NAME_SIZE)
40017974: 01300793 li a5,19
40017978: 0d37ea63 bltu a5,s3,40017a4c <rtems_rfs_symlink+0x1d0>
memset (inode.node->data.name, 0, RTEMS_RFS_INODE_DATA_NAME_SIZE);
4001797c: 03412403 lw s0,52(sp)
40017980: 01400613 li a2,20
40017984: 00000593 li a1,0
40017988: 01c40793 addi a5,s0,28
4001798c: 00078513 mv a0,a5
40017990: 1a9060ef jal ra,4001e338 <memset>
memcpy (inode.node->data.name, link, link_length);
40017994: 00098613 mv a2,s3
40017998: 000a0593 mv a1,s4
4001799c: 754060ef jal ra,4001e0f0 <memcpy>
rtems_rfs_write_u32 (&handle->node->block_count, block_count);
400179a0: 00040623 sb zero,12(s0)
400179a4: 03412783 lw a5,52(sp)
400179a8: 000786a3 sb zero,13(a5)
400179ac: 03412783 lw a5,52(sp)
400179b0: 00078723 sb zero,14(a5)
400179b4: 03412783 lw a5,52(sp)
400179b8: 000787a3 sb zero,15(a5)
rtems_rfs_write_u16 (&handle->node->block_offset, block_offset);
400179bc: 03412703 lw a4,52(sp)
400179c0: 01099793 slli a5,s3,0x10
400179c4: 0107d793 srli a5,a5,0x10
400179c8: 0087d793 srli a5,a5,0x8
400179cc: 00f70523 sb a5,10(a4)
400179d0: 03412783 lw a5,52(sp)
rc = rtems_rfs_inode_close (fs, &inode);
400179d4: 02810593 addi a1,sp,40
400179d8: 00090513 mv a0,s2
400179dc: 013785a3 sb s3,11(a5)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400179e0: 00100793 li a5,1
400179e4: 02f10c23 sb a5,56(sp)
400179e8: ac5f00ef jal ra,400084ac <rtems_rfs_inode_close>
400179ec: 00050413 mv s0,a0
return rc;
400179f0: f35ff06f j 40017924 <rtems_rfs_symlink+0xa8>
printf ("rtems-rfs: symlink: parent:%" PRIu32 " name:", parent);
400179f4: 40024537 lui a0,0x40024 <== NOT EXECUTED
400179f8: 000b0593 mv a1,s6 <== NOT EXECUTED
400179fc: e8050513 addi a0,a0,-384 # 40023e80 <IMFS_LIMITS_AND_OPTIONS+0x10a0><== NOT EXECUTED
40017a00: ff9e90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
for (c = 0; c < length; c++)
40017a04: 00905e63 blez s1,40017a20 <rtems_rfs_symlink+0x1a4> <== NOT EXECUTED
40017a08: 000a8413 mv s0,s5 <== NOT EXECUTED
40017a0c: 015484b3 add s1,s1,s5 <== NOT EXECUTED
printf ("%c", name[c]);
40017a10: 00044503 lbu a0,0(s0) <== NOT EXECUTED
for (c = 0; c < length; c++)
40017a14: 00140413 addi s0,s0,1 <== NOT EXECUTED
printf ("%c", name[c]);
40017a18: 1fd060ef jal ra,4001e414 <putchar> <== NOT EXECUTED
for (c = 0; c < length; c++)
40017a1c: fe941ae3 bne s0,s1,40017a10 <rtems_rfs_symlink+0x194> <== NOT EXECUTED
printf (" link:");
40017a20: 40024537 lui a0,0x40024 <== NOT EXECUTED
40017a24: ea450513 addi a0,a0,-348 # 40023ea4 <IMFS_LIMITS_AND_OPTIONS+0x10c4><== NOT EXECUTED
40017a28: fd1e90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
for (c = 0; c < link_length; c++)
40017a2c: eb3056e3 blez s3,400178d8 <rtems_rfs_symlink+0x5c> <== NOT EXECUTED
40017a30: 000a0413 mv s0,s4 <== NOT EXECUTED
40017a34: 014984b3 add s1,s3,s4 <== NOT EXECUTED
printf ("%c", link[c]);
40017a38: 00044503 lbu a0,0(s0) <== NOT EXECUTED
for (c = 0; c < link_length; c++)
40017a3c: 00140413 addi s0,s0,1 <== NOT EXECUTED
printf ("%c", link[c]);
40017a40: 1d5060ef jal ra,4001e414 <putchar> <== NOT EXECUTED
for (c = 0; c < link_length; c++)
40017a44: fe849ae3 bne s1,s0,40017a38 <rtems_rfs_symlink+0x1bc> <== NOT EXECUTED
40017a48: e91ff06f j 400178d8 <rtems_rfs_symlink+0x5c> <== NOT EXECUTED
rc = rtems_rfs_block_map_open (fs, &inode, &map);
40017a4c: 05010613 addi a2,sp,80 <== NOT EXECUTED
40017a50: 02810593 addi a1,sp,40 <== NOT EXECUTED
40017a54: 00090513 mv a0,s2 <== NOT EXECUTED
40017a58: b21fb0ef jal ra,40013578 <rtems_rfs_block_map_open> <== NOT EXECUTED
40017a5c: 00050413 mv s0,a0 <== NOT EXECUTED
if (rc > 0)
40017a60: 08a04c63 bgtz a0,40017af8 <rtems_rfs_symlink+0x27c> <== NOT EXECUTED
rc = rtems_rfs_block_map_grow (fs, &map, 1, &block);
40017a64: 01810693 addi a3,sp,24 <== NOT EXECUTED
40017a68: 00100613 li a2,1 <== NOT EXECUTED
40017a6c: 05010593 addi a1,sp,80 <== NOT EXECUTED
40017a70: 00090513 mv a0,s2 <== NOT EXECUTED
40017a74: 914fc0ef jal ra,40013b88 <rtems_rfs_block_map_grow> <== NOT EXECUTED
40017a78: 00050413 mv s0,a0 <== NOT EXECUTED
if (rc > 0)
40017a7c: 08a04663 bgtz a0,40017b08 <rtems_rfs_symlink+0x28c> <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, false);
40017a80: 01812603 lw a2,24(sp) <== NOT EXECUTED
40017a84: 00000693 li a3,0 <== NOT EXECUTED
40017a88: 01c10593 addi a1,sp,28 <== NOT EXECUTED
40017a8c: 00090513 mv a0,s2 <== NOT EXECUTED
handle->dirty = false;
40017a90: 00010e23 sb zero,28(sp) <== NOT EXECUTED
handle->bnum = 0;
40017a94: 02012023 sw zero,32(sp) <== NOT EXECUTED
handle->buffer = NULL;
40017a98: 02012223 sw zero,36(sp) <== NOT EXECUTED
40017a9c: ae1ee0ef jal ra,4000657c <rtems_rfs_buffer_handle_request> <== NOT EXECUTED
40017aa0: 00050413 mv s0,a0 <== NOT EXECUTED
if (rc > 0)
40017aa4: 06a04263 bgtz a0,40017b08 <rtems_rfs_symlink+0x28c> <== NOT EXECUTED
data = rtems_rfs_buffer_data (&buffer);
40017aa8: 02412783 lw a5,36(sp) <== NOT EXECUTED
memset (data, 0xff, rtems_rfs_fs_block_size (fs));
40017aac: 00892603 lw a2,8(s2) <== NOT EXECUTED
40017ab0: 0ff00593 li a1,255 <== NOT EXECUTED
data = rtems_rfs_buffer_data (&buffer);
40017ab4: 01c7a783 lw a5,28(a5) <== NOT EXECUTED
memset (data, 0xff, rtems_rfs_fs_block_size (fs));
40017ab8: 00078513 mv a0,a5 <== NOT EXECUTED
40017abc: 07d060ef jal ra,4001e338 <memset> <== NOT EXECUTED
memcpy (data, link, link_length);
40017ac0: 00098613 mv a2,s3 <== NOT EXECUTED
40017ac4: 000a0593 mv a1,s4 <== NOT EXECUTED
40017ac8: 628060ef jal ra,4001e0f0 <memcpy> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40017acc: 01c10593 addi a1,sp,28 <== NOT EXECUTED
40017ad0: 00090513 mv a0,s2 <== NOT EXECUTED
40017ad4: d41ee0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
rc = rtems_rfs_block_map_close (fs, &map);
40017ad8: 05010593 addi a1,sp,80 <== NOT EXECUTED
40017adc: 00090513 mv a0,s2 <== NOT EXECUTED
handle->dirty = false;
40017ae0: 00010e23 sb zero,28(sp) <== NOT EXECUTED
handle->bnum = 0;
40017ae4: 02012023 sw zero,32(sp) <== NOT EXECUTED
handle->buffer = NULL;
40017ae8: 02012223 sw zero,36(sp) <== NOT EXECUTED
40017aec: c61fb0ef jal ra,4001374c <rtems_rfs_block_map_close> <== NOT EXECUTED
40017af0: 00050413 mv s0,a0 <== NOT EXECUTED
if (rc > 0)
40017af4: eca054e3 blez a0,400179bc <rtems_rfs_symlink+0x140> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40017af8: 02810593 addi a1,sp,40 <== NOT EXECUTED
40017afc: 00090513 mv a0,s2 <== NOT EXECUTED
40017b00: 9adf00ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return rc;
40017b04: e21ff06f j 40017924 <rtems_rfs_symlink+0xa8> <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40017b08: 05010593 addi a1,sp,80 <== NOT EXECUTED
40017b0c: 00090513 mv a0,s2 <== NOT EXECUTED
40017b10: c3dfb0ef jal ra,4001374c <rtems_rfs_block_map_close> <== NOT EXECUTED
40017b14: fe5ff06f j 40017af8 <rtems_rfs_symlink+0x27c> <== NOT EXECUTED
40017b18 <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)
{
40017b18: f5010113 addi sp,sp,-176
40017b1c: 0a812423 sw s0,168(sp)
40017b20: 0a912223 sw s1,164(sp)
40017b24: 00058413 mv s0,a1
40017b28: 00050493 mv s1,a0
rtems_rfs_inode_handle inode;
int rc;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_SYMLINK_READ))
40017b2c: 00400593 li a1,4
40017b30: 00000513 li a0,0
{
40017b34: 0b212023 sw s2,160(sp)
40017b38: 09312e23 sw s3,156(sp)
40017b3c: 09412c23 sw s4,152(sp)
40017b40: 0a112623 sw ra,172(sp)
40017b44: 00060993 mv s3,a2
40017b48: 00068a13 mv s4,a3
40017b4c: 00070913 mv s2,a4
if (rtems_rfs_trace (RTEMS_RFS_TRACE_SYMLINK_READ))
40017b50: dbcf20ef jal ra,4000a10c <rtems_rfs_trace>
40017b54: 18051c63 bnez a0,40017cec <rtems_rfs_symlink_read+0x1d4> <== NEVER TAKEN
printf ("rtems-rfs: symlink-read: link:%" PRIu32 "\n", link);
rc = rtems_rfs_inode_open (fs, link, &inode, true);
40017b58: 00040593 mv a1,s0
40017b5c: 00100693 li a3,1
40017b60: 01810613 addi a2,sp,24
40017b64: 00048513 mv a0,s1
40017b68: f18f00ef jal ra,40008280 <rtems_rfs_inode_open>
40017b6c: 00050413 mv s0,a0
if (rc)
40017b70: 0a051063 bnez a0,40017c10 <rtems_rfs_symlink_read+0xf8> <== NEVER TAKEN
return rtems_rfs_read_u16 (&handle->node->mode);
40017b74: 02412583 lw a1,36(sp)
return rc;
if (!RTEMS_RFS_S_ISLNK (rtems_rfs_inode_get_mode (&inode)))
40017b78: 0000a737 lui a4,0xa
40017b7c: 0035c783 lbu a5,3(a1)
40017b80: 0025c683 lbu a3,2(a1)
40017b84: 00879793 slli a5,a5,0x8
40017b88: 00d7e7b3 or a5,a5,a3
40017b8c: 00879793 slli a5,a5,0x8
40017b90: 0000f6b7 lui a3,0xf
40017b94: 00d7f7b3 and a5,a5,a3
40017b98: 18e79263 bne a5,a4,40017d1c <rtems_rfs_symlink_read+0x204>
{
rtems_rfs_inode_close (fs, &inode);
return EINVAL;
}
*length = rtems_rfs_inode_get_block_offset (&inode);
40017b9c: 00b5c603 lbu a2,11(a1)
40017ba0: 00a5c783 lbu a5,10(a1)
40017ba4: 00861613 slli a2,a2,0x8
40017ba8: 00f66633 or a2,a2,a5
40017bac: 00861793 slli a5,a2,0x8
40017bb0: 00865613 srli a2,a2,0x8
40017bb4: 00c7e633 or a2,a5,a2
40017bb8: 01061613 slli a2,a2,0x10
40017bbc: 01065613 srli a2,a2,0x10
40017bc0: 12ca6263 bltu s4,a2,40017ce4 <rtems_rfs_symlink_read+0x1cc>
40017bc4: 00c92023 sw a2,0(s2)
return rtems_rfs_read_u32 (&handle->node->block_count);
40017bc8: 00c5c783 lbu a5,12(a1)
40017bcc: 00d5c683 lbu a3,13(a1)
40017bd0: 00f5c503 lbu a0,15(a1)
40017bd4: 00e5c703 lbu a4,14(a1)
40017bd8: 01879793 slli a5,a5,0x18
40017bdc: 01069693 slli a3,a3,0x10
40017be0: 00d7e7b3 or a5,a5,a3
40017be4: 00a7e7b3 or a5,a5,a0
40017be8: 00871713 slli a4,a4,0x8
40017bec: 00e7e7b3 or a5,a5,a4
if (size < *length)
{
*length = size;
}
if (rtems_rfs_inode_get_block_count (&inode) == 0)
40017bf0: 04079263 bnez a5,40017c34 <rtems_rfs_symlink_read+0x11c> <== NEVER TAKEN
{
memcpy (path, inode.node->data.name, *length);
40017bf4: 01c58593 addi a1,a1,28
40017bf8: 00098513 mv a0,s3
40017bfc: 4f4060ef jal ra,4001e0f0 <memcpy>
rtems_rfs_inode_close (fs, &inode);
return rc;
}
}
rc = rtems_rfs_inode_close (fs, &inode);
40017c00: 01810593 addi a1,sp,24
40017c04: 00048513 mv a0,s1
40017c08: 8a5f00ef jal ra,400084ac <rtems_rfs_inode_close>
40017c0c: 00050413 mv s0,a0
return rc;
}
40017c10: 0ac12083 lw ra,172(sp)
40017c14: 00040513 mv a0,s0
40017c18: 0a812403 lw s0,168(sp)
40017c1c: 0a412483 lw s1,164(sp)
40017c20: 0a012903 lw s2,160(sp)
40017c24: 09c12983 lw s3,156(sp)
40017c28: 09812a03 lw s4,152(sp)
40017c2c: 0b010113 addi sp,sp,176
40017c30: 00008067 ret
rc = rtems_rfs_block_map_open (fs, &inode, &map);
40017c34: 04010613 addi a2,sp,64 <== NOT EXECUTED
40017c38: 01810593 addi a1,sp,24 <== NOT EXECUTED
40017c3c: 00048513 mv a0,s1 <== NOT EXECUTED
40017c40: 939fb0ef jal ra,40013578 <rtems_rfs_block_map_open> <== NOT EXECUTED
40017c44: 00050413 mv s0,a0 <== NOT EXECUTED
if (rc > 0)
40017c48: 08a04663 bgtz a0,40017cd4 <rtems_rfs_symlink_read+0x1bc> <== NOT EXECUTED
rc = rtems_rfs_block_map_seek (fs, &map, 0, &block);
40017c4c: 00810713 addi a4,sp,8 <== NOT EXECUTED
40017c50: 00000613 li a2,0 <== NOT EXECUTED
40017c54: 00000693 li a3,0 <== NOT EXECUTED
40017c58: 04010593 addi a1,sp,64 <== NOT EXECUTED
40017c5c: 00048513 mv a0,s1 <== NOT EXECUTED
40017c60: e2dfb0ef jal ra,40013a8c <rtems_rfs_block_map_seek> <== NOT EXECUTED
40017c64: 00050413 mv s0,a0 <== NOT EXECUTED
if (rc > 0)
40017c68: 08a04c63 bgtz a0,40017d00 <rtems_rfs_symlink_read+0x1e8> <== NOT EXECUTED
rc = rtems_rfs_buffer_handle_request (fs, &buffer, block, false);
40017c6c: 00812603 lw a2,8(sp) <== NOT EXECUTED
40017c70: 00000693 li a3,0 <== NOT EXECUTED
40017c74: 00c10593 addi a1,sp,12 <== NOT EXECUTED
40017c78: 00048513 mv a0,s1 <== NOT EXECUTED
handle->dirty = false;
40017c7c: 00010623 sb zero,12(sp) <== NOT EXECUTED
handle->bnum = 0;
40017c80: 00012823 sw zero,16(sp) <== NOT EXECUTED
handle->buffer = NULL;
40017c84: 00012a23 sw zero,20(sp) <== NOT EXECUTED
40017c88: 8f5ee0ef jal ra,4000657c <rtems_rfs_buffer_handle_request> <== NOT EXECUTED
40017c8c: 00050413 mv s0,a0 <== NOT EXECUTED
if (rc > 0)
40017c90: 06a04863 bgtz a0,40017d00 <rtems_rfs_symlink_read+0x1e8> <== NOT EXECUTED
memcpy (path, data, *length);
40017c94: 01412783 lw a5,20(sp) <== NOT EXECUTED
40017c98: 00092603 lw a2,0(s2) <== NOT EXECUTED
40017c9c: 00098513 mv a0,s3 <== NOT EXECUTED
40017ca0: 01c7a583 lw a1,28(a5) <== NOT EXECUTED
40017ca4: 44c060ef jal ra,4001e0f0 <memcpy> <== NOT EXECUTED
rtems_rfs_buffer_handle_release (fs, handle);
40017ca8: 00c10593 addi a1,sp,12 <== NOT EXECUTED
40017cac: 00048513 mv a0,s1 <== NOT EXECUTED
40017cb0: b65ee0ef jal ra,40006814 <rtems_rfs_buffer_handle_release> <== NOT EXECUTED
rc = rtems_rfs_block_map_close (fs, &map);
40017cb4: 04010593 addi a1,sp,64 <== NOT EXECUTED
40017cb8: 00048513 mv a0,s1 <== NOT EXECUTED
handle->dirty = false;
40017cbc: 00010623 sb zero,12(sp) <== NOT EXECUTED
handle->bnum = 0;
40017cc0: 00012823 sw zero,16(sp) <== NOT EXECUTED
handle->buffer = NULL;
40017cc4: 00012a23 sw zero,20(sp) <== NOT EXECUTED
40017cc8: a85fb0ef jal ra,4001374c <rtems_rfs_block_map_close> <== NOT EXECUTED
40017ccc: 00050413 mv s0,a0 <== NOT EXECUTED
if (rc > 0)
40017cd0: f2a058e3 blez a0,40017c00 <rtems_rfs_symlink_read+0xe8> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40017cd4: 01810593 addi a1,sp,24 <== NOT EXECUTED
40017cd8: 00048513 mv a0,s1 <== NOT EXECUTED
40017cdc: fd0f00ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return rc;
40017ce0: f31ff06f j 40017c10 <rtems_rfs_symlink_read+0xf8> <== NOT EXECUTED
40017ce4: 000a0613 mv a2,s4
40017ce8: eddff06f j 40017bc4 <rtems_rfs_symlink_read+0xac>
printf ("rtems-rfs: symlink-read: link:%" PRIu32 "\n", link);
40017cec: 40024537 lui a0,0x40024 <== NOT EXECUTED
40017cf0: 00040593 mv a1,s0 <== NOT EXECUTED
40017cf4: eac50513 addi a0,a0,-340 # 40023eac <IMFS_LIMITS_AND_OPTIONS+0x10cc><== NOT EXECUTED
40017cf8: d01e90ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40017cfc: e5dff06f j 40017b58 <rtems_rfs_symlink_read+0x40> <== NOT EXECUTED
rtems_rfs_block_map_close (fs, &map);
40017d00: 04010593 addi a1,sp,64 <== NOT EXECUTED
40017d04: 00048513 mv a0,s1 <== NOT EXECUTED
40017d08: a45fb0ef jal ra,4001374c <rtems_rfs_block_map_close> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40017d0c: 01810593 addi a1,sp,24 <== NOT EXECUTED
40017d10: 00048513 mv a0,s1 <== NOT EXECUTED
40017d14: f98f00ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return rc;
40017d18: ef9ff06f j 40017c10 <rtems_rfs_symlink_read+0xf8> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &inode);
40017d1c: 01810593 addi a1,sp,24 <== NOT EXECUTED
40017d20: 00048513 mv a0,s1 <== NOT EXECUTED
40017d24: f88f00ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return EINVAL;
40017d28: 01600413 li s0,22 <== NOT EXECUTED
40017d2c: ee5ff06f j 40017c10 <rtems_rfs_symlink_read+0xf8> <== NOT EXECUTED
40017420 <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)
{
40017420: f9010113 addi sp,sp,-112
40017424: 06912223 sw s1,100(sp)
40017428: 05412c23 sw s4,88(sp)
4001742c: 00050493 mv s1,a0
40017430: 00058a13 mv s4,a1
rtems_rfs_inode_handle target_inode;
uint16_t links;
bool dir;
int rc;
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40017434: 02000537 lui a0,0x2000
40017438: 00000593 li a1,0
{
4001743c: 07212023 sw s2,96(sp)
40017440: 05512a23 sw s5,84(sp)
40017444: 05612823 sw s6,80(sp)
40017448: 06112623 sw ra,108(sp)
4001744c: 06812423 sw s0,104(sp)
40017450: 05312e23 sw s3,92(sp)
40017454: 00060913 mv s2,a2
40017458: 00068b13 mv s6,a3
4001745c: 00070a93 mv s5,a4
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40017460: cadf20ef jal ra,4000a10c <rtems_rfs_trace>
40017464: 16051463 bnez a0,400175cc <rtems_rfs_unlink+0x1ac> <== NEVER TAKEN
printf ("rtems-rfs: unlink: parent(%" PRIu32 ") -X-> (%" PRIu32 ")\n", parent, target);
rc = rtems_rfs_inode_open (fs, target, &target_inode, true);
40017468: 00100693 li a3,1
4001746c: 02810613 addi a2,sp,40
40017470: 00090593 mv a1,s2
40017474: 00048513 mv a0,s1
40017478: e09f00ef jal ra,40008280 <rtems_rfs_inode_open>
4001747c: 00050413 mv s0,a0
if (rc)
40017480: 12051063 bnez a0,400175a0 <rtems_rfs_unlink+0x180> <== NEVER TAKEN
return rtems_rfs_read_u16 (&handle->node->mode);
40017484: 03412703 lw a4,52(sp)
40017488: 0000f9b7 lui s3,0xf
/*
* If a directory process the unlink mode.
*/
dir = RTEMS_RFS_S_ISDIR (rtems_rfs_inode_get_mode (&target_inode));
if (dir)
4001748c: 000046b7 lui a3,0x4
40017490: 00374783 lbu a5,3(a4)
40017494: 00274703 lbu a4,2(a4)
40017498: 00879793 slli a5,a5,0x8
4001749c: 00e7e7b3 or a5,a5,a4
400174a0: 00879793 slli a5,a5,0x8
400174a4: 0137f9b3 and s3,a5,s3
400174a8: 00d99863 bne s3,a3,400174b8 <rtems_rfs_unlink+0x98>
{
switch (dir_mode)
400174ac: 220a8463 beqz s5,400176d4 <rtems_rfs_unlink+0x2b4> <== NEVER TAKEN
400174b0: 00100793 li a5,1
400174b4: 14fa8863 beq s5,a5,40017604 <rtems_rfs_unlink+0x1e4>
default:
break;
}
}
rc = rtems_rfs_inode_open (fs, parent, &parent_inode, true);
400174b8: 00100693 li a3,1
400174bc: 00010613 mv a2,sp
400174c0: 000a0593 mv a1,s4
400174c4: 00048513 mv a0,s1
400174c8: db9f00ef jal ra,40008280 <rtems_rfs_inode_open>
400174cc: 00050413 mv s0,a0
if (rc)
400174d0: 10051a63 bnez a0,400175e4 <rtems_rfs_unlink+0x1c4> <== NEVER TAKEN
rc, strerror (rc));
rtems_rfs_inode_close (fs, &target_inode);
return rc;
}
rc = rtems_rfs_dir_del_entry (fs, &parent_inode, target, doff);
400174d4: 000b0693 mv a3,s6
400174d8: 00090613 mv a2,s2
400174dc: 00010593 mv a1,sp
400174e0: 00048513 mv a0,s1
400174e4: fccfd0ef jal ra,40014cb0 <rtems_rfs_dir_del_entry>
400174e8: 00050413 mv s0,a0
if (rc > 0)
400174ec: 22a04c63 bgtz a0,40017724 <rtems_rfs_unlink+0x304> <== NEVER TAKEN
links = rtems_rfs_read_u16 (&handle->node->links);
400174f0: 03412683 lw a3,52(sp)
if (links == 0xffff)
400174f4: 00010737 lui a4,0x10
400174f8: fff70713 addi a4,a4,-1 # ffff <bsp_section_bss_size+0xaa4f>
400174fc: 0016c783 lbu a5,1(a3) # 4001 <bsp_section_rtemsstack_size+0x2001>
40017500: 0006c403 lbu s0,0(a3)
return rc;
}
links = rtems_rfs_inode_get_links (&target_inode);
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40017504: 02000537 lui a0,0x2000
40017508: 00879793 slli a5,a5,0x8
4001750c: 0087e7b3 or a5,a5,s0
40017510: 00879413 slli s0,a5,0x8
40017514: 0087d793 srli a5,a5,0x8
40017518: 00f46433 or s0,s0,a5
4001751c: 01041413 slli s0,s0,0x10
40017520: 01045413 srli s0,s0,0x10
40017524: 00000593 li a1,0
40017528: 12e40063 beq s0,a4,40017648 <rtems_rfs_unlink+0x228>
4001752c: be1f20ef jal ra,4000a10c <rtems_rfs_trace>
40017530: 26051a63 bnez a0,400177a4 <rtems_rfs_unlink+0x384> <== NEVER TAKEN
printf ("rtems-rfs: unlink: target:%" PRIu32 " links:%u\n", target, links);
if (links > 1)
40017534: 00100793 li a5,1
40017538: 1087fc63 bgeu a5,s0,40017650 <rtems_rfs_unlink+0x230>
{
links--;
4001753c: fff40413 addi s0,s0,-1
rtems_rfs_write_u16 (&handle->node->links, links);
40017540: 03412703 lw a4,52(sp)
40017544: 01041413 slli s0,s0,0x10
40017548: 01045413 srli s0,s0,0x10
4001754c: 00845693 srli a3,s0,0x8
40017550: 00d70023 sb a3,0(a4)
40017554: 03412703 lw a4,52(sp)
40017558: 008700a3 sb s0,1(a4)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
4001755c: 02f10c23 sb a5,56(sp)
links--;
rtems_rfs_inode_set_links (&parent_inode, links);
}
}
rc = rtems_rfs_inode_time_stamp_now (&parent_inode, true, true);
40017560: 00100613 li a2,1
40017564: 00100593 li a1,1
40017568: 00010513 mv a0,sp
4001756c: 928f10ef jal ra,40008694 <rtems_rfs_inode_time_stamp_now>
40017570: 00050413 mv s0,a0
if (rc > 0)
40017574: 18a04263 bgtz a0,400176f8 <rtems_rfs_unlink+0x2d8> <== NEVER TAKEN
rtems_rfs_inode_close (fs, &parent_inode);
rtems_rfs_inode_close (fs, &target_inode);
return rc;
}
rc = rtems_rfs_inode_close (fs, &parent_inode);
40017578: 00010593 mv a1,sp
4001757c: 00048513 mv a0,s1
40017580: f2df00ef jal ra,400084ac <rtems_rfs_inode_close>
40017584: 00050413 mv s0,a0
if (rc > 0)
40017588: 1ea04663 bgtz a0,40017774 <rtems_rfs_unlink+0x354> <== NEVER TAKEN
rc, strerror (rc));
rtems_rfs_inode_close (fs, &target_inode);
return rc;
}
rc = rtems_rfs_inode_close (fs, &target_inode);
4001758c: 02810593 addi a1,sp,40
40017590: 00048513 mv a0,s1
40017594: f19f00ef jal ra,400084ac <rtems_rfs_inode_close>
40017598: 00050413 mv s0,a0
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
4001759c: 22a04063 bgtz a0,400177bc <rtems_rfs_unlink+0x39c> <== NEVER TAKEN
printf ("rtems-rfs: link: target inode-close failed: %d: %s\n",
rc, strerror (rc));
return rc;
}
400175a0: 06c12083 lw ra,108(sp)
400175a4: 00040513 mv a0,s0
400175a8: 06812403 lw s0,104(sp)
400175ac: 06412483 lw s1,100(sp)
400175b0: 06012903 lw s2,96(sp)
400175b4: 05c12983 lw s3,92(sp)
400175b8: 05812a03 lw s4,88(sp)
400175bc: 05412a83 lw s5,84(sp)
400175c0: 05012b03 lw s6,80(sp)
400175c4: 07010113 addi sp,sp,112
400175c8: 00008067 ret
printf ("rtems-rfs: unlink: parent(%" PRIu32 ") -X-> (%" PRIu32 ")\n", parent, target);
400175cc: 40024537 lui a0,0x40024 <== NOT EXECUTED
400175d0: 00090613 mv a2,s2 <== NOT EXECUTED
400175d4: 000a0593 mv a1,s4 <== NOT EXECUTED
400175d8: cc850513 addi a0,a0,-824 # 40023cc8 <IMFS_LIMITS_AND_OPTIONS+0xee8><== NOT EXECUTED
400175dc: c1cea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400175e0: e89ff06f j 40017468 <rtems_rfs_unlink+0x48> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
400175e4: 02000537 lui a0,0x2000 <== NOT EXECUTED
400175e8: 00000593 li a1,0 <== NOT EXECUTED
400175ec: b21f20ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400175f0: 16051263 bnez a0,40017754 <rtems_rfs_unlink+0x334> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
400175f4: 02810593 addi a1,sp,40
400175f8: 00048513 mv a0,s1
400175fc: eb1f00ef jal ra,400084ac <rtems_rfs_inode_close>
return rc;
40017600: fa1ff06f j 400175a0 <rtems_rfs_unlink+0x180>
rc = rtems_rfs_dir_empty (fs, &target_inode);
40017604: 02810593 addi a1,sp,40
40017608: 00048513 mv a0,s1
4001760c: eb1fd0ef jal ra,400154bc <rtems_rfs_dir_empty>
40017610: 00050413 mv s0,a0
if (rc > 0)
40017614: eaa052e3 blez a0,400174b8 <rtems_rfs_unlink+0x98>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40017618: 02000537 lui a0,0x2000
4001761c: 00000593 li a1,0
40017620: aedf20ef jal ra,4000a10c <rtems_rfs_trace>
40017624: fc0508e3 beqz a0,400175f4 <rtems_rfs_unlink+0x1d4> <== ALWAYS TAKEN
printf ("rtems-rfs: dir-empty: %d: %s\n", rc, strerror (rc));
40017628: 00040513 mv a0,s0 <== NOT EXECUTED
4001762c: 139070ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40017630: 00050613 mv a2,a0 <== NOT EXECUTED
40017634: 40024537 lui a0,0x40024 <== NOT EXECUTED
40017638: 00040593 mv a1,s0 <== NOT EXECUTED
4001763c: d1450513 addi a0,a0,-748 # 40023d14 <IMFS_LIMITS_AND_OPTIONS+0xf34><== NOT EXECUTED
40017640: bb8ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
40017644: fb1ff06f j 400175f4 <rtems_rfs_unlink+0x1d4> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40017648: ac5f20ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
4001764c: 20051063 bnez a0,4001784c <rtems_rfs_unlink+0x42c> <== NOT EXECUTED
rc = rtems_rfs_inode_delete (fs, &target_inode);
40017650: 02810593 addi a1,sp,40
40017654: 00048513 mv a0,s1
40017658: ef5f00ef jal ra,4000854c <rtems_rfs_inode_delete>
4001765c: 00050413 mv s0,a0
if (rc > 0)
40017660: 18a04663 bgtz a0,400177ec <rtems_rfs_unlink+0x3cc> <== NEVER TAKEN
if (dir)
40017664: 000047b7 lui a5,0x4
40017668: eef99ce3 bne s3,a5,40017560 <rtems_rfs_unlink+0x140>
links = rtems_rfs_read_u16 (&handle->node->links);
4001766c: 00c12683 lw a3,12(sp)
if (links == 0xffff)
40017670: 00010637 lui a2,0x10
40017674: fff60613 addi a2,a2,-1 # ffff <bsp_section_bss_size+0xaa4f>
40017678: 0016c703 lbu a4,1(a3)
4001767c: 0006c783 lbu a5,0(a3)
40017680: 00871713 slli a4,a4,0x8
40017684: 00f76733 or a4,a4,a5
40017688: 00871793 slli a5,a4,0x8
4001768c: 00875713 srli a4,a4,0x8
40017690: 00e7e7b3 or a5,a5,a4
40017694: 01079793 slli a5,a5,0x10
40017698: 0107d793 srli a5,a5,0x10
4001769c: 1cc78463 beq a5,a2,40017864 <rtems_rfs_unlink+0x444>
if (links > 1)
400176a0: 00100713 li a4,1
400176a4: 1cf77663 bgeu a4,a5,40017870 <rtems_rfs_unlink+0x450>
links--;
400176a8: fff78793 addi a5,a5,-1 # 3fff <bsp_section_rtemsstack_size+0x1fff>
400176ac: 01079793 slli a5,a5,0x10
400176b0: 0107d793 srli a5,a5,0x10
rtems_rfs_write_u16 (&handle->node->links, links);
400176b4: 0087d713 srli a4,a5,0x8
400176b8: 0ff7f793 andi a5,a5,255
400176bc: 00e68023 sb a4,0(a3)
400176c0: 00c12703 lw a4,12(sp)
400176c4: 00f700a3 sb a5,1(a4)
rtems_rfs_buffer_mark_dirty (&handle->buffer);
400176c8: 00100793 li a5,1
400176cc: 00f10823 sb a5,16(sp)
}
400176d0: e91ff06f j 40017560 <rtems_rfs_unlink+0x140>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
400176d4: 02000537 lui a0,0x2000 <== NOT EXECUTED
400176d8: 00000593 li a1,0 <== NOT EXECUTED
400176dc: a31f20ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400176e0: 12051e63 bnez a0,4001781c <rtems_rfs_unlink+0x3fc> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
400176e4: 02810593 addi a1,sp,40 <== NOT EXECUTED
400176e8: 00048513 mv a0,s1 <== NOT EXECUTED
400176ec: dc1f00ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return EISDIR;
400176f0: 01500413 li s0,21 <== NOT EXECUTED
400176f4: eadff06f j 400175a0 <rtems_rfs_unlink+0x180> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
400176f8: 02000537 lui a0,0x2000 <== NOT EXECUTED
400176fc: 00000593 li a1,0 <== NOT EXECUTED
40017700: a0df20ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40017704: 12051463 bnez a0,4001782c <rtems_rfs_unlink+0x40c> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode);
40017708: 00010593 mv a1,sp <== NOT EXECUTED
4001770c: 00048513 mv a0,s1 <== NOT EXECUTED
40017710: d9df00ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
40017714: 02810593 addi a1,sp,40 <== NOT EXECUTED
40017718: 00048513 mv a0,s1 <== NOT EXECUTED
4001771c: d91f00ef jal ra,400084ac <rtems_rfs_inode_close> <== NOT EXECUTED
return rc;
40017720: e81ff06f j 400175a0 <rtems_rfs_unlink+0x180> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40017724: 02000537 lui a0,0x2000 <== NOT EXECUTED
40017728: 00000593 li a1,0 <== NOT EXECUTED
4001772c: 9e1f20ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40017730: fc050ce3 beqz a0,40017708 <rtems_rfs_unlink+0x2e8> <== NOT EXECUTED
printf ("rtems-rfs: unlink: dir-del failed: %d: %s\n",
40017734: 00040513 mv a0,s0 <== NOT EXECUTED
40017738: 02d070ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
4001773c: 00050613 mv a2,a0 <== NOT EXECUTED
40017740: 40024537 lui a0,0x40024 <== NOT EXECUTED
40017744: 00040593 mv a1,s0 <== NOT EXECUTED
40017748: d6050513 addi a0,a0,-672 # 40023d60 <IMFS_LIMITS_AND_OPTIONS+0xf80><== NOT EXECUTED
4001774c: aacea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode);
40017750: fb9ff06f j 40017708 <rtems_rfs_unlink+0x2e8> <== NOT EXECUTED
printf ("rtems-rfs: link: inode-open failed: %d: %s\n",
40017754: 00040513 mv a0,s0 <== NOT EXECUTED
40017758: 00d070ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
4001775c: 00050613 mv a2,a0 <== NOT EXECUTED
40017760: 40024537 lui a0,0x40024 <== NOT EXECUTED
40017764: 00040593 mv a1,s0 <== NOT EXECUTED
40017768: d3450513 addi a0,a0,-716 # 40023d34 <IMFS_LIMITS_AND_OPTIONS+0xf54><== NOT EXECUTED
4001776c: a8cea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &target_inode);
40017770: e85ff06f j 400175f4 <rtems_rfs_unlink+0x1d4> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
40017774: 02000537 lui a0,0x2000 <== NOT EXECUTED
40017778: 00000593 li a1,0 <== NOT EXECUTED
4001777c: 991f20ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
40017780: e6050ae3 beqz a0,400175f4 <rtems_rfs_unlink+0x1d4> <== NOT EXECUTED
printf ("rtems-rfs: link: parent inode-close failed: %d: %s\n",
40017784: 00040513 mv a0,s0 <== NOT EXECUTED
40017788: 7dc070ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
4001778c: 00050613 mv a2,a0 <== NOT EXECUTED
40017790: 40024537 lui a0,0x40024 <== NOT EXECUTED
40017794: 00040593 mv a1,s0 <== NOT EXECUTED
40017798: e1850513 addi a0,a0,-488 # 40023e18 <IMFS_LIMITS_AND_OPTIONS+0x1038><== NOT EXECUTED
4001779c: a5cea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400177a0: e55ff06f j 400175f4 <rtems_rfs_unlink+0x1d4> <== NOT EXECUTED
printf ("rtems-rfs: unlink: target:%" PRIu32 " links:%u\n", target, links);
400177a4: 40024537 lui a0,0x40024 <== NOT EXECUTED
400177a8: 00040613 mv a2,s0 <== NOT EXECUTED
400177ac: 00090593 mv a1,s2 <== NOT EXECUTED
400177b0: d8c50513 addi a0,a0,-628 # 40023d8c <IMFS_LIMITS_AND_OPTIONS+0xfac><== NOT EXECUTED
400177b4: a44ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400177b8: d7dff06f j 40017534 <rtems_rfs_unlink+0x114> <== NOT EXECUTED
if ((rc > 0) && rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
400177bc: 02000537 lui a0,0x2000 <== NOT EXECUTED
400177c0: 00000593 li a1,0 <== NOT EXECUTED
400177c4: 949f20ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400177c8: dc050ce3 beqz a0,400175a0 <rtems_rfs_unlink+0x180> <== NOT EXECUTED
printf ("rtems-rfs: link: target inode-close failed: %d: %s\n",
400177cc: 00040513 mv a0,s0 <== NOT EXECUTED
400177d0: 794070ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
400177d4: 00050613 mv a2,a0 <== NOT EXECUTED
400177d8: 40024537 lui a0,0x40024 <== NOT EXECUTED
400177dc: 00040593 mv a1,s0 <== NOT EXECUTED
400177e0: e4c50513 addi a0,a0,-436 # 40023e4c <IMFS_LIMITS_AND_OPTIONS+0x106c><== NOT EXECUTED
400177e4: a14ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
400177e8: db9ff06f j 400175a0 <rtems_rfs_unlink+0x180> <== NOT EXECUTED
if (rtems_rfs_trace (RTEMS_RFS_TRACE_UNLINK))
400177ec: 02000537 lui a0,0x2000 <== NOT EXECUTED
400177f0: 00000593 li a1,0 <== NOT EXECUTED
400177f4: 919f20ef jal ra,4000a10c <rtems_rfs_trace> <== NOT EXECUTED
400177f8: f00508e3 beqz a0,40017708 <rtems_rfs_unlink+0x2e8> <== NOT EXECUTED
printf ("rtems-rfs: unlink: inode-del failed: %d: %s\n",
400177fc: 00040513 mv a0,s0 <== NOT EXECUTED
40017800: 764070ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40017804: 00050613 mv a2,a0 <== NOT EXECUTED
40017808: 40024537 lui a0,0x40024 <== NOT EXECUTED
4001780c: 00040593 mv a1,s0 <== NOT EXECUTED
40017810: db450513 addi a0,a0,-588 # 40023db4 <IMFS_LIMITS_AND_OPTIONS+0xfd4><== NOT EXECUTED
40017814: 9e4ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
rtems_rfs_inode_close (fs, &parent_inode);
40017818: ef1ff06f j 40017708 <rtems_rfs_unlink+0x2e8> <== NOT EXECUTED
printf ("rtems-rfs: link is a directory\n");
4001781c: 40024537 lui a0,0x40024 <== NOT EXECUTED
40017820: cf450513 addi a0,a0,-780 # 40023cf4 <IMFS_LIMITS_AND_OPTIONS+0xf14><== NOT EXECUTED
40017824: a1cea0ef jal ra,40001a40 <__wrap_puts> <== NOT EXECUTED
40017828: ebdff06f j 400176e4 <rtems_rfs_unlink+0x2c4> <== NOT EXECUTED
printf ("rtems-rfs: link: inode-time-stamp failed: %d: %s\n",
4001782c: 00040513 mv a0,s0 <== NOT EXECUTED
40017830: 734070ef jal ra,4001ef64 <strerror> <== NOT EXECUTED
40017834: 00050613 mv a2,a0 <== NOT EXECUTED
40017838: 40024537 lui a0,0x40024 <== NOT EXECUTED
4001783c: 00040593 mv a1,s0 <== NOT EXECUTED
40017840: de450513 addi a0,a0,-540 # 40023de4 <IMFS_LIMITS_AND_OPTIONS+0x1004><== NOT EXECUTED
40017844: 9b4ea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
40017848: ec1ff06f j 40017708 <rtems_rfs_unlink+0x2e8> <== NOT EXECUTED
printf ("rtems-rfs: unlink: target:%" PRIu32 " links:%u\n", target, links);
4001784c: 40024537 lui a0,0x40024 <== NOT EXECUTED
40017850: 00000613 li a2,0 <== NOT EXECUTED
40017854: 00090593 mv a1,s2 <== NOT EXECUTED
40017858: d8c50513 addi a0,a0,-628 # 40023d8c <IMFS_LIMITS_AND_OPTIONS+0xfac><== NOT EXECUTED
4001785c: 99cea0ef jal ra,400019f8 <__wrap_printf> <== NOT EXECUTED
if (links > 1)
40017860: df1ff06f j 40017650 <rtems_rfs_unlink+0x230> <== NOT EXECUTED
40017864: 00000793 li a5,0 <== NOT EXECUTED
40017868: 00000713 li a4,0 <== NOT EXECUTED
4001786c: e51ff06f j 400176bc <rtems_rfs_unlink+0x29c> <== NOT EXECUTED
rtems_rfs_write_u16 (&handle->node->links, links);
40017870: 0ff7f793 andi a5,a5,255
40017874: 00000713 li a4,0
40017878: e45ff06f j 400176bc <rtems_rfs_unlink+0x29c>