Subject: mandatory vnops and vfsops
To: None <tech-kern@netbsd.org>
From: Emmanuel Dreyfus <manu@netbsd.org>
List: tech-kern
Date: 05/12/2002 17:48:31
Hello

When implementing a VFS, some vnode and VFS operations are mandatory
(the system will panic if they are missing), other are optionnal. I
don't find anywhere information about what is optionnal or not. Is this
documented?

For instance, if I ommit the vfs_init operation, this will cause a panic
on startup. The machine can boot with all other VFS operation defined as
NULL, but I need vfs_init.

For vnode, things are more complicated. lease and reclaim seems to be
must-have, I wonder about others. 

I explain a bit what I'm doing: To emulate an IRIX device, I need to
provide special ioctl and poll vnode operations for the device. On
device opening, I replace the default ffs vnode operation vector by my
operation vector, which defines the operations I really need. 

The question is: what vnode operations do I really need? 

Other problem: in order to define a vnode vector, it seems I need to
define a dummy VFS and register it at boot time with vfs_attach. This
dummy fs will never be mounted, therefore I wonder if I need to
implement more than just a vfs_init method (which is just void for now)?
Or is it a way to make a usable vnode operation vector without going
through vfs_attach?

-- 
Emmanuel Dreyfus
manu@netbsd.org