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