]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commit
refactor: remove legacy per-node function pointers from fs_node_t
authorTulio A M Mendes <[email protected]>
Fri, 13 Feb 2026 22:27:06 +0000 (19:27 -0300)
committerTulio A M Mendes <[email protected]>
Fri, 13 Feb 2026 22:27:06 +0000 (19:27 -0300)
commit2b756030a3675cf75a47a514e8b589e8db840bab
treee8dc76af36d33b9768ff6d1e7e3aa8b7a8b155bd
parent1d8d6f2213101df9802b501c27262b690f5b7ffd
refactor: remove legacy per-node function pointers from fs_node_t

Phase B3b complete — all VFS dispatch now goes exclusively through
the f_ops pointer. Changes:

- fs.h: removed 16 legacy function pointer fields from fs_node_t
  (read, write, open, close, finddir, readdir, ioctl, mmap, poll,
  create, mkdir, unlink, rmdir, rename, truncate, link)
  fs_node_t shrinks by 64 bytes (16 pointers × 4 bytes)

- fs.c: removed all legacy fallback paths from VFS wrappers
- syscall.c: removed legacy fallbacks for poll, readdir, ioctl,
  mmap, truncate, finddir, and read/write capability checks
- overlayfs.c: removed legacy fallbacks in finddir/readdir dispatch
- kconsole.c: switched to f_ops-based readdir dispatch

- Removed all dual-assignment lines from:
  ext2.c, fat.c, diskfs.c, tmpfs.c, devfs.c, overlayfs.c,
  procfs.c, persistfs.c, pty.c, tty.c, keyboard.c, vbe.c,
  initrd.c, syscall.c (pipe + socket nodes)

- Removed ext2_set_dir_ops, fat_set_dir_ops, diskfs_set_dir_ops
  helper functions (no longer needed)

20/20 smoke tests pass.
17 files changed:
include/fs.h
src/drivers/initrd.c
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/fs.c
src/kernel/kconsole.c
src/kernel/overlayfs.c
src/kernel/persistfs.c
src/kernel/procfs.c
src/kernel/pty.c
src/kernel/syscall.c
src/kernel/tmpfs.c
src/kernel/tty.c