gctf2023/pwn/flipper/dist/common/include/fs/minixfs/StorageManager.h
2023-11-24 13:11:34 -05:00

45 lines
830 B
C++

#pragma once
#include "Bitmap.h"
#include "types.h"
class StorageManager
{
public:
/**
* constructor
* @param num_inodes the max number of inodes
* @param num_zones the max number of zones
*/
StorageManager(uint16 num_inodes, uint16 num_zones);
virtual ~StorageManager();
/**
* frees the zone at the given index
* @param index the zone index
*/
virtual void freeZone(size_t index) = 0;
/**
* frees the inode at the given index
* @param index the inode index
*/
virtual void freeInode(size_t index) = 0;
/**
* checks if inode is set
* @param index the inode index
* @return true if the inode is set
*/
virtual bool isInodeSet(size_t index) = 0;
protected:
Bitmap inode_bitmap_;
Bitmap zone_bitmap_;
};