Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 10006 → Rev 10007

/kernel/trunk/fs/xfs.asm
180,6 → 180,8
mov [edi+XFS.dir_leafn_magic], XFS_DIR2_LEAFN_MAGIC
mov [edi+XFS.da_node_magic], XFS_DA_NODE_MAGIC
mov [edi+XFS.bmap_magic], XFS_BMAP_MAGIC
mov [edi+XFS.dirx_leaf_ents_offset], xfs_dir2_leaf.ents
mov [edi+XFS.dirx_leaf_hdr_count_offset], xfs_dir2_leaf_hdr.count
mov [edi+XFS.dir_block_size], sizeof.xfs_dir2_data_hdr
mov [edi+XFS.bmbt_block_size], sizeof.xfs_bmbt_block
mov [edi+XFS.da_blkinfo_size], sizeof.xfs_da_blkinfo
198,6 → 200,8
mov [edi+XFS.dir_leafn_magic], XFS_DIR3_LEAFN_MAGIC
mov [edi+XFS.da_node_magic], XFS_DA3_NODE_MAGIC
mov [edi+XFS.bmap_magic], XFS_BMAP3_MAGIC
mov [edi+XFS.dirx_leaf_ents_offset], xfs_dir3_leaf.ents
mov [edi+XFS.dirx_leaf_hdr_count_offset], xfs_dir3_leaf_hdr.count
mov [edi+XFS.dir_block_size], sizeof.xfs_dir3_data_hdr
mov [edi+XFS.bmbt_block_size], sizeof.xfs_bmbt3_block
mov [edi+XFS.da_blkinfo_size], sizeof.xfs_da3_blkinfo
1012,7 → 1016,8
mov eax, ebx
mov ebx, [ebp+XFS.cur_dirblock]
stdcall xfs._.extent_unpack, eax
stdcall xfs._.read_dirblock, [ebp+XFS.extent.br_startblock.lo], [ebp+XFS.extent.br_startblock.hi], ebx
stdcall xfs._.read_dirblock, [ebp+XFS.extent.br_startblock.lo], \
[ebp+XFS.extent.br_startblock.hi], ebx
jnz .error
mov eax, [ebp+XFS.dir_block_magic]
cmp [ebx+xfs_dir2_block.hdr.magic], eax
1097,7 → 1102,8
mov eax, [ebp+XFS.dir2_leaf_offset_blocks.hi]
mov [ebp+XFS.offset_begin.hi], ecx
stdcall xfs._.extent_list.seek, ecx
stdcall xfs._.read_dirblock, [ebp+XFS.extent.br_startblock.lo], [ebp+XFS.extent.br_startblock.hi], [ebp+XFS.cur_dirblock]
stdcall xfs._.read_dirblock, [ebp+XFS.extent.br_startblock.lo], \
[ebp+XFS.extent.br_startblock.hi], [ebp+XFS.cur_dirblock]
jnz .error
mov ebx, [ebp+XFS.cur_dirblock]
movzx eax, [ebp+XFS.dir_leaf1_magic]
1228,24 → 1234,29
add ebx, [ebp+XFS.inode_core_size]
stdcall xfs._.btree_read_block, ebx, ecx, eax, edx, [ebp+XFS.cur_dirblock]
mov ebx, [ebp+XFS.cur_dirblock]
cmp [ebx+xfs_da_intnode.hdr.info.magic], XFS_DA_NODE_MAGIC
movzx eax, [ebp+XFS.da_node_magic]
cmp [ebx+xfs_da_blkinfo.magic], ax
jz .next_level
cmp [ebx+xfs_dir2_leaf.hdr.info.magic], XFS_DIR2_LEAFN_MAGIC
movzx eax, [ebp+XFS.dir_leafn_magic]
cmp [ebx+xfs_da_blkinfo.magic], ax
jz .leafn
cmp [ebx+xfs_dir2_leaf.hdr.info.magic], XFS_DIR2_LEAF1_MAGIC
movzx eax, [ebp+XFS.dir_leaf1_magic]
cmp [ebx+xfs_da_blkinfo.magic], ax
jnz .error
mov eax, [.hash]
movzx ecx, [ebx+xfs_dir2_leaf.hdr.count]
mov ecx, [ebp+XFS.dirx_leaf_hdr_count_offset]
movzx ecx, word[ebx+ecx]
xchg cl, ch
add ebx, xfs_dir2_leaf.ents
add ebx, [ebp+XFS.dirx_leaf_ents_offset]
stdcall xfs._.get_addr_by_hash, ebx, ecx
jnz .error
mov ebx, [ebp+XFS.cur_dirblock]
jmp .got_addr
.leafn:
movzx ecx, [ebx+xfs_dir2_leaf.hdr.count]
mov ecx, [ebp+XFS.dirx_leaf_hdr_count_offset]
movzx ecx, word[ebx+ecx]
xchg cl, ch
add ebx, xfs_dir2_leaf.ents
add ebx, [ebp+XFS.dirx_leaf_ents_offset]
mov eax, [.hash]
stdcall xfs._.get_addr_by_hash, ebx, ecx
jnz .error
2028,7 → 2039,8
mov eax, [_block_hi]
mov [ebp+XFS.offset_begin.hi], eax
stdcall xfs._.extent_list.seek, ecx
stdcall xfs._.read_dirblock, [ebp+XFS.extent.br_startblock.lo], [ebp+XFS.extent.br_startblock.hi], [_buf]
stdcall xfs._.read_dirblock, [ebp+XFS.extent.br_startblock.lo], \
[ebp+XFS.extent.br_startblock.hi], [_buf]
.error:
.quit:
ret
/kernel/trunk/fs/xfs.inc
517,6 → 517,8
dir_leafn_magic dw ?
da_node_magic dw ?
bmap_magic dd ?
dirx_leaf_ents_offset dd ?
dirx_leaf_hdr_count_offset dd ?
bmbt_block_size dd ?
dir_block_size dd ?
dir_data_size dd ?