cvs commit: src/sys/fs/deadfs dead_vnops.c src/sys/fs/nullfs
null_vnops.c src/sys/fs/umapfs umap_vnops.c src/sys/fs/unionfs
union_vnops.c src/sys/kern vfs_init.c src/sys/sys vnode.h
src/sys/tools vnode_if.awk
Poul-Henning Kamp
phk at FreeBSD.org
Wed Jan 12 23:53:02 PST 2005
phk 2005-01-13 07:53:01 UTC
FreeBSD src repository
Modified files:
sys/fs/deadfs dead_vnops.c
sys/fs/nullfs null_vnops.c
sys/fs/umapfs umap_vnops.c
sys/fs/unionfs union_vnops.c
sys/kern vfs_init.c
sys/sys vnode.h
sys/tools vnode_if.awk
Log:
Change the generated VOP_ macro implementations to improve type checking
and KASSERT coverage.
After this check there is only one "nasty" cast in this code but there
is a KASSERT to protect against the wrong argument structure behind
that cast.
Un-inlining the meat of VOP_FOO() saves 35kB of text segment on a typical
kernel with no change in performance.
We also now run the checking and tracing on VOP's which have been layered
by nullfs, umapfs, deadfs or unionfs.
Add new (non-inline) VOP_FOO_AP() functions which take a "struct
foo_args" argument and does everything the VOP_FOO() macros
used to do with checks and debugging code.
Add KASSERT to VOP_FOO_AP() check for argument type being
correct.
Slim down VOP_FOO() inline functions to just stuff arguments
into the struct foo_args and call VOP_FOO_AP().
Put function pointer to VOP_FOO_AP() into vop_foo_desc structure
and make VCALL() use it instead of the current offsetoff() hack.
Retire vcall() which implemented the offsetoff()
Make deadfs and unionfs use VOP_FOO_AP() calls instead of
VCALL(), we know which specific call we want already.
Remove unneeded arguments to VCALL() in nullfs and umapfs bypass
functions.
Remove unused vdesc_offset and VOFFSET().
Generally improve style/readability of the generated code.
Revision Changes Path
1.45 +2 -2 src/sys/fs/deadfs/dead_vnops.c
1.72 +1 -1 src/sys/fs/nullfs/null_vnops.c
1.44 +1 -1 src/sys/fs/umapfs/umap_vnops.c
1.119 +21 -21 src/sys/fs/unionfs/union_vnops.c
1.79 +0 -26 src/sys/kern/vfs_init.c
1.265 +13 -12 src/sys/sys/vnode.h
1.46 +65 -48 src/sys/tools/vnode_if.awk
More information about the cvs-all
mailing list