ahrightos-fs 0.1.0

Portable filesystem, block-device, and IPC primitives for the AhRightOS teaching kernel.
Documentation
#![cfg_attr(not(test), no_std)]

extern crate alloc;

pub mod blkfs;
pub mod block_cache;
pub mod block_dev;
pub mod component;
pub mod disk_format;
pub mod fd_table;
pub mod file;
pub mod inode;
pub mod lru_cache;
pub mod manager;
pub mod pipe;
pub mod ramfs;
pub mod vfs;
pub mod virtualfs;

pub use blkfs::{
    BlkFS, BlkFile, BlkInode, BLKFS_MAX_FILE_SIZE, BLKFS_MAX_INODES, BLKFS_MAX_NAME_BYTES,
    BLKFS_MIN_BLOCKS,
};
pub use block_cache::{BlockCache, BlockCacheStats};
pub use block_dev::{BlockDevice, BlockDeviceHandle, DummyBlockDev, BLOCK_SIZE};
pub use component::{
    builtin_component_registry, render_builtin_component_listing, ComponentLayer,
    ComponentManifest, ComponentRegistry, ComponentRegistryError, ComponentStability,
};
pub use disk_format::{detect_disk_format, DiskFormat};
pub use fd_table::{
    FdEntry, FileDescriptor, FileDescriptorTable, FILE_DESCRIPTOR_LIMIT, STDERR, STDIN, STDOUT,
};
pub use file::{File, FileError, FileMetadata, FileType, SeekFrom};
pub use inode::{permissions, Inode, InodeHandle, MemInode};
pub use lru_cache::{Cacheable, LruCache};
pub use manager::{
    init_filesystem, BlkFsMountMode, BlkFsMountOptions, FileSystemManager, FsType, MountPoint,
    FS_MANAGER,
};
pub use pipe::{make_pipe, PipeReadEnd, PipeWriteEnd, PIPE_BUFFER_SIZE};
pub use ramfs::{RamFS, RamFile, RamInode};
pub use vfs::{create_dir, create_file, open_file, readdir_path, remove_file, stat_path};
pub use virtualfs::{
    default_devtmpfs, default_procfs, default_sysfs, StaticVirtualFileSystem, VirtualFile,
    VirtualFileSystem, VirtualNode, VirtualNodeKind,
};