Changeset 8958a26 in mainline for uspace/lib/ext4/libext4_inode.c
- Timestamp:
- 2011-10-11T19:06:10Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1a7756a
- Parents:
- acd869e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ext4/libext4_inode.c
racd869e r8958a26 104 104 uint32_t ext4_inode_get_extent_block(ext4_inode_t *inode, uint64_t idx) 105 105 { 106 //ext4_extent_header_t *header = ext4_inode_get_extent_header(inode); 107 // TODO search required block 106 ext4_extent_header_t *header = ext4_inode_get_extent_header(inode); 107 108 if (ext4_extent_header_get_depth(header) == 0) { 109 110 ext4_extent_t *extent = EXT4_EXTENT_FIRST(header); 111 112 // TODO more effective searching? 113 for (uint16_t i = 0; i < ext4_extent_header_get_entries_count(header); ++i) { 114 115 uint32_t first = ext4_extent_get_first_block(extent); 116 uint16_t count = ext4_extent_get_block_count(extent); 117 uint64_t block = 0; 118 119 if ((idx >= first) && (idx < first + count)) { 120 block = ext4_extent_get_start(extent) + idx; 121 block -= ext4_extent_get_first_block(extent); 122 return block; 123 } 124 // Go to the next extent 125 ++extent; 126 } 127 } 128 129 // TODO binary search for depth > 0 130 EXT4FS_DBG("NOT IMPLEMENTED !!!"); 108 131 return 0; 109 132
Note:
See TracChangeset
for help on using the changeset viewer.