~aleteoryx/muditaos

52ca291b30c634cee5286a5fa2b3febd0685fec4 — Lucjan Bryndza 5 years ago da7ab8f
[EGD-5097] Fix minor issues with littlefs fuse

Fix minor issues with littlefs implementation
M module-vfs/board/linux/purefs/include/purefs/blkdev/disk_image.hpp => module-vfs/board/linux/purefs/include/purefs/blkdev/disk_image.hpp +2 -1
@@ 24,10 24,11 @@ namespace purefs::blkdev
        auto sync() -> int override;
        auto status() const -> media_status override;
        auto get_info(info_type what) const -> scount_t override;
        auto erase(sector_t lba, std::size_t count) -> int override;

      private:
        int m_filedes{-1};
        unsigned long m_sectors{0};
        std::string m_image_name;
    };
} // namespace purefs::blkdev
\ No newline at end of file
} // namespace purefs::blkdev

M module-vfs/board/linux/purefs/src/blkdev/disk_image.cpp => module-vfs/board/linux/purefs/src/blkdev/disk_image.cpp +8 -1
@@ 4,6 4,7 @@
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <cstring>
#include <sys/stat.h>

namespace purefs::blkdev


@@ 55,6 56,12 @@ namespace purefs::blkdev
        } while (to_write > 0);
        return 0;
    }
    auto disk_image::erase(sector_t lba, std::size_t count) -> int
    {
        char buf[count * sector_size];
        std::memset(buf, 0xff, count * sector_size);
        return write(buf, lba, count);
    }
    auto disk_image::read(void *buf, sector_t lba, std::size_t count) -> int
    {
        auto offs = ::lseek(m_filedes, off_t(lba) * sector_size, SEEK_SET);


@@ 100,7 107,7 @@ namespace purefs::blkdev
        case info_type::sector_count:
            return m_sectors;
        case info_type::erase_block:
            return 0;
            return 1;
        }
        return -1;
    }

M module-vfs/include/user/purefs/blkdev/defs.hpp => module-vfs/include/user/purefs/blkdev/defs.hpp +3 -3
@@ 26,9 26,9 @@ namespace purefs::blkdev
    // Information parameter
    enum class info_type
    {
        sector_count,
        sector_size,
        erase_block
        sector_count, //! Number of sectors on disk
        sector_size,  //! Single sector size
        erase_block   //! Number of sectors in erase block
    };

    //! Power control states