]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commit
refactor: migrate all filesystems to struct file_operations
authorTulio A M Mendes <[email protected]>
Fri, 13 Feb 2026 21:23:05 +0000 (18:23 -0300)
committerTulio A M Mendes <[email protected]>
Fri, 13 Feb 2026 21:23:05 +0000 (18:23 -0300)
commit15ecf7a6e4fb9eeb001d8b1d29410796832f1135
tree989c6d87708c76b7a053807751759540c4c48587
parent5d67181a22714626f6ec4b22e382cf688a03c98a
refactor: migrate all filesystems to struct file_operations

Every filesystem and device driver now defines static const
file_operations tables and assigns f_ops on every node:
- tmpfs: tmpfs_file_ops, tmpfs_dir_ops
- devfs: devfs_dir_ops, dev_null_ops, dev_zero_ops, dev_random_ops
- ext2: ext2_file_fops, ext2_dir_fops
- fat: fat_file_fops, fat_dir_fops
- diskfs: diskfs_file_fops, diskfs_dir_fops
- overlayfs: overlay_file_ops, overlay_dir_ops
- tty: tty_fops (console + tty)
- pipe: pipe_read_fops, pipe_write_fops
- socket: sock_fops
- vbe: fb0_fops
- keyboard: kbd_fops

VFS dispatch (fs.c + syscall.c) checks f_ops first, falls back to
legacy per-node pointers. Legacy pointers are still set (dual
assignment) for callers that access them directly (e.g. overlayfs
layer delegation). Phase B3 will remove legacy pointers after all
direct accesses are eliminated.

20/20 smoke tests pass, cppcheck clean.
src/drivers/keyboard.c
src/drivers/vbe.c
src/kernel/devfs.c
src/kernel/diskfs.c
src/kernel/ext2.c
src/kernel/fat.c
src/kernel/overlayfs.c
src/kernel/syscall.c
src/kernel/tmpfs.c
src/kernel/tty.c