#pragma once #include "lib/Mutex.h" #include #include #include class BlockDevice; class StorageCache : public LinkedListNode { public: struct CacheEntry { Buffer buffer {}; bool dirty; }; void lock() { return m_mutex.lock(); } void unlock() { return m_mutex.unlock(); } Result fetch_entry(u64 block); void clear(); static void clear_caches(); StorageCache(BlockDevice* device); ~StorageCache(); private: HashMap m_cache_entries; BlockDevice* m_device; Mutex m_mutex; };