18#ifndef __FILESYSTEM_LINN_FILESYSTEM_H
19#define __FILESYSTEM_LINN_FILESYSTEM_H
40#define LINNFS_ROOTFS_FILE "./rootfs.linn"
48#define LINN_MIN_BLOCK_SIZE 1024
51#define LINN_MAX_BLOCK_SIZE 4096
157 Size & numContiguous);
Abstract filesystem class.
Efficient key -> value lookups.
Linnenbank FileSystem (LinnFS).
void notSupportedHandler(FileSystemMessage *msg)
Callback handler for unsupported operations.
LinnSuperBlock * getSuperBlock()
Retrieve the superblock pointer.
Storage * getStorage()
Get the underlying Storage object.
LinnInode * getInode(u32 inodeNum)
Read an inode from the filesystem.
LinnSuperBlock super
Describes the filesystem.
Storage * storage
Provides storage.
LinnGroup * getGroupByInode(u32 inodeNum)
Read a group descriptor from the filesystem, given an inode number.
Vector< LinnGroup * > * groups
Group descriptors.
LinnGroup * getGroup(u32 groupNum)
Read a group descriptor from the filesystem.
u64 getOffsetRange(const LinnInode *inode, const u32 blk, Size &numContiguous)
Calculates the offset inside storage for a given block.
HashTable< u32, LinnInode * > inodes
Inode cache.
Provides a storage device to build filesystems on top.
Vectors are dynamically resizeable Arrays.
unsigned int u32
Unsigned 32-bit number.
unsigned int Size
Any sane size indicator cannot go negative.
unsigned long long u64
Unsigned 64-bit number.
Structure of a group descriptor.
Structure of an inode on the disk in the LinnFS filesystem.
Linnenbank Filesystem (LinnFS) super block.