aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2005-01-13 07:53:01 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2005-01-13 07:53:01 +0000
commit63f89abf4a49d64f983e3fed54e99633f0c70d57 (patch)
treee7e985f51392cbb38e54bd0ff0579b79648afa2c /tools
parentd1426d7fc5538c2aa8b9f3abce557b27469a56c3 (diff)
downloadsrc-63f89abf4a49d64f983e3fed54e99633f0c70d57.tar.gz
src-63f89abf4a49d64f983e3fed54e99633f0c70d57.zip
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.
Notes
Notes: svn path=/head/; revision=140165
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions