Explorar o código

Kernel: Expose FileSystem's fragment size

This commit will add a fragment_size() function similar to the
block_size() function.
Justin %!s(int64=4) %!d(string=hai) anos
pai
achega
721a867c65

+ 1 - 0
Kernel/FileSystem/Ext2FileSystem.cpp

@@ -114,6 +114,7 @@ bool Ext2FS::initialize()
     }
 
     set_block_size(EXT2_BLOCK_SIZE(&super_block));
+    set_fragment_size(EXT2_FRAG_SIZE(&super_block));
 
     VERIFY(block_size() <= (int)max_block_size);
 

+ 8 - 0
Kernel/FileSystem/FileSystem.cpp

@@ -81,4 +81,12 @@ void FS::set_block_size(size_t block_size)
     m_block_size = block_size;
 }
 
+void FS::set_fragment_size(size_t fragment_size)
+{
+    VERIFY(fragment_size > 0);
+    if (fragment_size == m_fragment_size)
+        return;
+    m_fragment_size = fragment_size;
+}
+
 }

+ 3 - 0
Kernel/FileSystem/FileSystem.h

@@ -61,6 +61,7 @@ public:
     virtual void flush_writes() { }
 
     size_t block_size() const { return m_block_size; }
+    size_t fragment_size() const { return m_fragment_size; }
 
     virtual bool is_file_backed() const { return false; }
 
@@ -71,12 +72,14 @@ protected:
     FS();
 
     void set_block_size(size_t);
+    void set_fragment_size(size_t);
 
     mutable Lock m_lock { "FS" };
 
 private:
     unsigned m_fsid { 0 };
     size_t m_block_size { 0 };
+    size_t m_fragment_size { 0 };
     bool m_readonly { false };
 };