Changeset d5a78e28 in mainline for uspace/lib/ext4


Ignore:
Timestamp:
2011-11-05T17:09:25Z (14 years ago)
Author:
Frantisek Princ <frantisek.princ@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
3569955
Parents:
a9a0982
Message:

file truncate skeleton, but non functional

Location:
uspace/lib/ext4
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ext4/libext4_filesystem.c

    ra9a0982 rd5a78e28  
    354354}
    355355
     356
     357int ext4_filesystem_release_inode_block(ext4_filesystem_t *fs, ext4_inode_t *inode, uint32_t iblock)
     358{
     359        int rc;
     360        uint32_t fblock;
     361
     362        // TODO handle with extents
     363
     364        rc = ext4_filesystem_get_inode_data_block_index(fs, inode, iblock, &fblock);
     365        if (rc != EOK) {
     366                // TODO error
     367                return rc;
     368        }
     369
     370        // Sparse file
     371        if (fblock == 0) {
     372
     373                //
     374                return EOK;
     375        }
     376
     377
     378        // TODO vyhledat policko s ukazatelem a nastavit nulu
     379
     380
     381        // TODO uvolnit blok v bitmape
     382
     383        // TODO return
     384
     385
     386        return EOK;
     387}
     388
     389
    356390/**
    357391 * @}
  • uspace/lib/ext4/libext4_filesystem.h

    ra9a0982 rd5a78e28  
    6262extern int ext4_filesystem_get_inode_data_block_index(ext4_filesystem_t *,
    6363        ext4_inode_t *, aoff64_t iblock, uint32_t *);
    64 
     64extern int ext4_filesystem_release_inode_block(ext4_filesystem_t *,
     65                ext4_inode_t *, uint32_t);
    6566#endif
    6667
  • uspace/lib/ext4/libext4_inode.c

    ra9a0982 rd5a78e28  
    9898}
    9999
     100void ext4_inode_set_direct_block(ext4_inode_t *inode, uint8_t idx, uint32_t fblock)
     101{
     102        assert(idx < EXT4_INODE_DIRECT_BLOCK_COUNT);
     103        inode->blocks[idx] = host2uint32_t_le(fblock);
     104}
     105
    100106uint32_t ext4_inode_get_indirect_block(ext4_inode_t *inode, uint8_t idx)
    101107{
  • uspace/lib/ext4/libext4_inode.h

    ra9a0982 rd5a78e28  
    166166extern uint32_t ext4_inode_get_flags(ext4_inode_t *);
    167167
    168 uint32_t ext4_inode_get_direct_block(ext4_inode_t *, uint8_t);
    169 uint32_t ext4_inode_get_indirect_block(ext4_inode_t *, uint8_t);
    170 uint32_t ext4_inode_get_extent_block(ext4_inode_t *, uint64_t, service_id_t);
     168extern uint32_t ext4_inode_get_direct_block(ext4_inode_t *, uint8_t);
     169extern void ext4_inode_set_direct_block(ext4_inode_t *, uint8_t, uint32_t);
     170extern uint32_t ext4_inode_get_indirect_block(ext4_inode_t *, uint8_t);
     171extern uint32_t ext4_inode_get_extent_block(ext4_inode_t *, uint64_t, service_id_t);
    171172/*
    172173uint32_t blocks[EXT4_INODE_BLOCKS]; // Pointers to blocks
Note: See TracChangeset for help on using the changeset viewer.