]> 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)
commit95aa2ddc1e14cbd8ab8271b080c2811a8615dcf9
tree06981b81510dac723e09f4d61243fda63a348012
parentf1ad52f2add18232e7b659cb16dcd0b5d4276037
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