FreeNOS
|
The Linnenbank Filesystem (LinnFS) provides an inode based filesystem similar to Ext2. More...
Modules | |
linncreate | |
The LinnCreate program can create a new LinnFS filesystem. | |
Data Structures | |
class | LinnDirectory |
Represents an directory on a LinnFS filesystem. More... | |
struct | LinnDirectoryEntry |
Struct of an directory entry in LinnFS. More... | |
class | LinnFile |
Represents a file on a mounted LinnFS filesystem. More... | |
class | LinnFileSystem |
Linnenbank FileSystem (LinnFS). More... | |
struct | LinnGroup |
Structure of a group descriptor. More... | |
struct | LinnInode |
Structure of an inode on the disk in the LinnFS filesystem. More... | |
struct | LinnSuperBlock |
Linnenbank Filesystem (LinnFS) super block. More... | |
Macros | |
#define | LINN_DIRENT_PER_BLOCK(sb) ((sb)->blockSize / sizeof(LinnDirectoryEntry)) |
Calculates the number of LinnDirectoryEntry's fitting in one block. More... | |
#define | LINN_DIRENT_NAME_LEN 59 |
Length of the name field in an directory entry. More... | |
#define | LINNFS_ROOTFS_FILE "./rootfs.linn" |
Default filename of the embedded root filesystem (ramfs) More... | |
Typedefs | |
typedef struct LinnDirectoryEntry | LinnDirectoryEntry |
Struct of an directory entry in LinnFS. More... | |
typedef struct LinnGroup | LinnGroup |
Structure of a group descriptor. More... | |
typedef struct LinnInode | LinnInode |
Structure of an inode on the disk in the LinnFS filesystem. More... | |
typedef struct LinnSuperBlock | LinnSuperBlock |
Linnenbank Filesystem (LinnFS) super block. More... | |
Filesystem limits. | |
#define | LINN_MIN_BLOCK_SIZE 1024 |
Minimum blocksize. More... | |
#define | LINN_MAX_BLOCK_SIZE 4096 |
Maximum blocksize. More... | |
LinnGroup Block Index numbers. | |
#define | LINN_GROUP_BLOCK_BITMAP 0 |
Block index of the block bitmap. More... | |
#define | LINN_GROUP_INODE_BITMAP 1 |
Block index of the inode bitmap. More... | |
#define | LINN_GROUP_INODE_TABLE 2 |
Block index of the inode table. More... | |
LinnGroup Macros. | |
#define | LINN_GROUP_COUNT(sb) |
Calculate the number of LinnGroups in a filesystem. More... | |
#define | LINN_GROUP_NUM_BLOCKMAP(sb) |
Calculate the number of blocks needed for the blocks bitmap. More... | |
#define | LINN_GROUP_NUM_INODEMAP(sb) |
Calculate the number of blocks needed for the inodes bitmap. More... | |
#define | LINN_GROUP_NUM_INODETAB(sb) |
Calculate the number of blocks needed for the inodes table. More... | |
#define | LINN_GROUP_PER_BLOCK(sb) ((sb)->blockSize / sizeof(LinnGroup)) |
Calculate the number of LinnGroups which fit in one block. More... | |
#define | LINN_GROUP_BLOCKS(sb) |
Number of blocks needed to store LinnGroups. More... | |
Special Inode Numbers | |
#define | LINN_INODE_ROOT 0 |
Root inode. More... | |
Inode (in)direct block counts. | |
#define | LINN_INODE_DIR_BLOCKS 4 |
Direct blocks. More... | |
#define | LINN_INODE_IND_BLOCKS (LINN_INODE_DIR_BLOCKS + 1) |
Indirect blocks. More... | |
#define | LINN_INODE_DIND_BLOCKS (LINN_INODE_IND_BLOCKS + 1) |
Double indirect blocks. More... | |
#define | LINN_INODE_TIND_BLOCKS (LINN_INODE_DIND_BLOCKS + 1) |
Triple indirect blocks. More... | |
#define | LINN_INODE_BLOCKS (LINN_INODE_TIND_BLOCKS + 1) |
Total number of block pointers in an LinnInode. More... | |
Inode macros. | |
#define | LINN_INODE_NUM_BLOCKS(super, inode) |
Calculate the number of blocks used in an LinnInode. More... | |
Magic Numbers. | |
#define | LINN_SUPER_MAGIC0 0x4c696e6e |
First magic number ('Linn'). More... | |
#define | LINN_SUPER_MAGIC1 0x512ea9b0 |
Second magic number (randomly chosen bytes). More... | |
Revision Numbers. | |
#define | LINN_SUPER_MAJOR 1 |
Current major revision number. More... | |
#define | LINN_SUPER_MINOR 0 |
Current minor revision number. More... | |
Filesystem States. | |
#define | LINN_SUPER_VALID 0 |
Filesystem is consistent. More... | |
#define | LINN_SUPER_UNCLEAN 1 |
The filesystem has not been properly unmounted. More... | |
#define | LINN_SUPER_CORRUPT 2 |
Serious corruption has been detected. More... | |
Superblock Constants. | |
#define | LINN_SUPER_OFFSET 1024 |
Fixed offset in storage of the superblock. More... | |
Superblock Macros. | |
#define | LINN_SUPER_NUM_PTRS(sb) ((sb)->blockSize / sizeof(u32)) |
Calculate the number of block address pointers fitting in one block. More... | |
The Linnenbank Filesystem (LinnFS) provides an inode based filesystem similar to Ext2.
#define LINN_DIRENT_NAME_LEN 59 |
Length of the name field in an directory entry.
Definition at line 39 of file LinnDirectoryEntry.h.
#define LINN_DIRENT_PER_BLOCK | ( | sb | ) | ((sb)->blockSize / sizeof(LinnDirectoryEntry)) |
Calculates the number of LinnDirectoryEntry's fitting in one block.
Definition at line 35 of file LinnDirectoryEntry.h.
#define LINN_GROUP_BLOCK_BITMAP 0 |
Block index of the block bitmap.
Definition at line 38 of file LinnGroup.h.
#define LINN_GROUP_BLOCKS | ( | sb | ) |
Number of blocks needed to store LinnGroups.
sb | LinnSuperBlock pointer. |
Definition at line 118 of file LinnGroup.h.
#define LINN_GROUP_COUNT | ( | sb | ) |
Calculate the number of LinnGroups in a filesystem.
Calculation is based on the blocksCount and blocksPerGroup fields.
sb | LinnSuperBlock pointer. |
Definition at line 64 of file LinnGroup.h.
#define LINN_GROUP_INODE_BITMAP 1 |
Block index of the inode bitmap.
Definition at line 41 of file LinnGroup.h.
#define LINN_GROUP_INODE_TABLE 2 |
Block index of the inode table.
Definition at line 44 of file LinnGroup.h.
#define LINN_GROUP_NUM_BLOCKMAP | ( | sb | ) |
Calculate the number of blocks needed for the blocks bitmap.
sb | LinnSuperBlock pointer. |
Definition at line 75 of file LinnGroup.h.
#define LINN_GROUP_NUM_INODEMAP | ( | sb | ) |
Calculate the number of blocks needed for the inodes bitmap.
sb | LinnSuperBlock pointer. |
Definition at line 86 of file LinnGroup.h.
#define LINN_GROUP_NUM_INODETAB | ( | sb | ) |
Calculate the number of blocks needed for the inodes table.
sb | LinnSuperBlock pointer. |
Definition at line 97 of file LinnGroup.h.
#define LINN_GROUP_PER_BLOCK | ( | sb | ) | ((sb)->blockSize / sizeof(LinnGroup)) |
Calculate the number of LinnGroups which fit in one block.
sb | LinnSuperBlock pointer. |
Definition at line 108 of file LinnGroup.h.
#define LINN_INODE_BLOCKS (LINN_INODE_TIND_BLOCKS + 1) |
Total number of block pointers in an LinnInode.
Definition at line 61 of file LinnInode.h.
#define LINN_INODE_DIND_BLOCKS (LINN_INODE_IND_BLOCKS + 1) |
Double indirect blocks.
Definition at line 55 of file LinnInode.h.
#define LINN_INODE_DIR_BLOCKS 4 |
Direct blocks.
Definition at line 49 of file LinnInode.h.
#define LINN_INODE_IND_BLOCKS (LINN_INODE_DIR_BLOCKS + 1) |
Indirect blocks.
Definition at line 52 of file LinnInode.h.
#define LINN_INODE_NUM_BLOCKS | ( | super, | |
inode | |||
) |
Calculate the number of blocks used in an LinnInode.
super | LinnSuperBlock pointer. |
inode | LinnInode pointer. |
Definition at line 80 of file LinnInode.h.
#define LINN_INODE_ROOT 0 |
Root inode.
Definition at line 37 of file LinnInode.h.
#define LINN_INODE_TIND_BLOCKS (LINN_INODE_DIND_BLOCKS + 1) |
Triple indirect blocks.
Definition at line 58 of file LinnInode.h.
#define LINN_MAX_BLOCK_SIZE 4096 |
Maximum blocksize.
Definition at line 51 of file LinnFileSystem.h.
#define LINN_MIN_BLOCK_SIZE 1024 |
Minimum blocksize.
Definition at line 48 of file LinnFileSystem.h.
#define LINN_SUPER_CORRUPT 2 |
Serious corruption has been detected.
Definition at line 73 of file LinnSuperBlock.h.
#define LINN_SUPER_MAGIC0 0x4c696e6e |
First magic number ('Linn').
Used to detect a valid superblock.
Definition at line 37 of file LinnSuperBlock.h.
#define LINN_SUPER_MAGIC1 0x512ea9b0 |
Second magic number (randomly chosen bytes).
Definition at line 40 of file LinnSuperBlock.h.
#define LINN_SUPER_MAJOR 1 |
Current major revision number.
Definition at line 52 of file LinnSuperBlock.h.
#define LINN_SUPER_MINOR 0 |
Current minor revision number.
Definition at line 55 of file LinnSuperBlock.h.
#define LINN_SUPER_NUM_PTRS | ( | sb | ) | ((sb)->blockSize / sizeof(u32)) |
Calculate the number of block address pointers fitting in one block.
sb | LinnSuperBlock pointer. |
Definition at line 103 of file LinnSuperBlock.h.
#define LINN_SUPER_OFFSET 1024 |
Fixed offset in storage of the superblock.
Definition at line 85 of file LinnSuperBlock.h.
#define LINN_SUPER_UNCLEAN 1 |
The filesystem has not been properly unmounted.
Definition at line 70 of file LinnSuperBlock.h.
#define LINN_SUPER_VALID 0 |
Filesystem is consistent.
Definition at line 67 of file LinnSuperBlock.h.
#define LINNFS_ROOTFS_FILE "./rootfs.linn" |
Default filename of the embedded root filesystem (ramfs)
Definition at line 40 of file LinnFileSystem.h.
typedef struct LinnDirectoryEntry LinnDirectoryEntry |
Struct of an directory entry in LinnFS.
typedef struct LinnSuperBlock LinnSuperBlock |
Linnenbank Filesystem (LinnFS) super block.