Add devicefs VFS driver mounted at /dev

Implement device filesystem subsystem that provides a VFS interface at
/dev for exposing block and character devices. Drivers register devices
via devicefs_register_block() or devicefs_register_char(), and the
devicefs assigns sequential numbers per device class (e.g., hdd1, hdd2).

Features:
- Block device ops: read_sectors, write_sectors, sector_size, sector_count
- Character device ops: read, write
- VFS integration: readdir lists devices, finddir looks up by name
- Byte-offset to sector translation for block device reads/writes
- Auto-numbering: devices named classN where N starts at 1 per class

Also checks off 'ls' task in README.
This commit is contained in:
AI
2026-02-23 13:53:31 +00:00
parent 3512e937ae
commit c12d49dea0
4 changed files with 357 additions and 1 deletions

View File

@@ -17,6 +17,7 @@
#include "cpio.h"
#include "vfs.h"
#include "initrd_fs.h"
#include "devicefs.h"
#include "keyboard.h"
#include "framebuffer.h"
@@ -247,6 +248,10 @@ void kernel_main(uint32_t magic, uint32_t addr) {
}
}
init_devicefs();
EARLY_PRINT("DEV ");
offset_print("Devicefs initialized\n");
init_tss();
EARLY_PRINT("TSS ");
offset_print("TSS initialized\n");