From b7d4273f655c97974ee853082ac5dc1f69aa6324 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Wed, 19 Aug 2026 16:50:12 +0200 Subject: docs: clean up some of the documentation --- docs/kernel/filesystem.rst | 14 ++++++++++++++ docs/kernel/filesystem/constants.rst | 10 ++++++++++ docs/kernel/filesystem/dentry.rst | 12 ++++++++++++ docs/kernel/filesystem/device_inode.rst | 19 +++++++++++++++++++ docs/kernel/filesystem/inode.rst | 12 ++++++++++++ 5 files changed, 67 insertions(+) create mode 100644 docs/kernel/filesystem.rst create mode 100644 docs/kernel/filesystem/constants.rst create mode 100644 docs/kernel/filesystem/dentry.rst create mode 100644 docs/kernel/filesystem/device_inode.rst create mode 100644 docs/kernel/filesystem/inode.rst (limited to 'docs/kernel') diff --git a/docs/kernel/filesystem.rst b/docs/kernel/filesystem.rst new file mode 100644 index 00000000..35d92fdc --- /dev/null +++ b/docs/kernel/filesystem.rst @@ -0,0 +1,14 @@ +Filesystem Layer +================= + +The filesystem layer of the TeachOS kernel comprises all platform-agnostic filesystem entities and operations. +All platform-independent code related to filesystem implementations resides here. +This includes the implementations of platform-independent kAPI filesystem types and functions. + +.. toctree:: + :maxdepth: 1 + :caption: Contents: + :glob: + + filesystem/* + diff --git a/docs/kernel/filesystem/constants.rst b/docs/kernel/filesystem/constants.rst new file mode 100644 index 00000000..aa698711 --- /dev/null +++ b/docs/kernel/filesystem/constants.rst @@ -0,0 +1,10 @@ +Global Constants +================ + +The constants described here are applicable to all types and functions in the kernel filesystem layers. +They describe maxima of supported lengths and sizes where not other specification takes precedence. + +API Reference +------------- + +.. doxygennamespace:: kernel::filesystem::constants diff --git a/docs/kernel/filesystem/dentry.rst b/docs/kernel/filesystem/dentry.rst new file mode 100644 index 00000000..3d40c067 --- /dev/null +++ b/docs/kernel/filesystem/dentry.rst @@ -0,0 +1,12 @@ +Directory Entries +================= + +A directory entry associates a name with an inode. +As such, a directory entry may refer to any entity represented by an inode. +Directory entries may be nested. + +API Reference +------------- + +.. doxygenstruct:: kernel::filesystem::dentry + :members: \ No newline at end of file diff --git a/docs/kernel/filesystem/device_inode.rst b/docs/kernel/filesystem/device_inode.rst new file mode 100644 index 00000000..cf5e72fa --- /dev/null +++ b/docs/kernel/filesystem/device_inode.rst @@ -0,0 +1,19 @@ +Device Inodes +============= + +Device inodes are filesystem inodes that represent a device in the system. +They may be created from either a device, or by reconstituting a persistent device inode from a filesystem. + +An example for device inodes created to directly represent devices are the entries in the devfs (/dev) filesystem. +Entries in this filesystem are generally created and removed based on devices appearing in and being removed from the system. + +An example for device inodes reconstituted from persisted inodes can be found in the inodes supported by the ext2 filesystem. +In that filesystem, an inode may represent a device, using a device identification number. +When accessing such an inode, a device inode needs to be reconstituted from the persisted device inode in order to resolve which device, if any, it refers to. +However, any file operations (e.g. `stat`) need to be forwarded to the persisted inode. + +API Reference +------------- + +.. doxygenstruct:: kernel::filesystem::device_inode + :members: \ No newline at end of file diff --git a/docs/kernel/filesystem/inode.rst b/docs/kernel/filesystem/inode.rst new file mode 100644 index 00000000..6e36bda1 --- /dev/null +++ b/docs/kernel/filesystem/inode.rst @@ -0,0 +1,12 @@ +Inode Base Class +================= + +An inode (or filesystem index node) represents a filesystem entity, e.g. a file or directory, in the virtual filesystem (VFS). +While not all filesystems may use traditional inodes, as for example used in ext2, the VFS expects for all entities to be represented as inodes. +As such, file I/O operation always happen through inodes. + +API Reference +------------- + +.. doxygenstruct:: kernel::filesystem::inode + :members: \ No newline at end of file -- cgit v1.2.3