Digital UNIX source merge

Johan Danielsson joda at pdc.kth.se
Sun Jul 12 17:47:09 CEST 1998



I finally tracked the `last' bug in the Digital UNIX port, so I
decided to merge the whole thing before things starts to break again.
The current status is that it almost works - you can do things, but
not very reliably, most vfs operations have not been tested, and some
of the locking is no doubt wrong. Use at own risk.

Since the OSF/1 VFS is based on BSD, everything went into the xfs/bsd
directory - but not without problems. There is currently an abundance
of ifdefs, some of these can probably be gotten rid of after some more
thought. Some of them are more difficult.

I decided to put everything in the bsd directory, since I think it
makes things more easily maintainable (having only one copy of
everything), and it is more easy to split the code (if one ever wants
to do that), than to merge it later on.

The following differences exist:

in general:
  * OSF/1 uses struct nameidata, and BSD uses struct
    componentname (they are mostly the same, though). This is
    partially handled via horrible macros, but not always.
  * the cred structure is slightly different
  * the VOP_* `functions' are different
  * you need to compile xfs/bsd with 'cc -std0'

xfs_dev.c: 
  * different select mechanism
  * some BSD functions take a proc, where the OSF/1 ones do not
  * the device installation stuff is different (no surprise)

xfs_node.c:
  * getnewvnode is slightly different, should write a xfs_getnewvnode
    wrapper
  * vattr timestamps are different

xfs_syscalls.c: 
  * the syscall installtion code is different

xfs_vfsops.c: 
  * struct proc* or not - handled with a set of common
    functions that are called by the BSD and OSF/1 specific
    functions.

xfs_vnodeops.c:
  * basically the same problem as in xfs_vfsops.c: BSD functiona take
    a `struct vop_*_args' structure, OSF/1 functions take multiple
    arguments (like SunOS4).

xfs_wrap.c:
  * nothing in common

Some of these things can be handled with some creative use of macros
(like VOP_*); some files should perhanps be split in several files
(especially the vfsops/vnodeops wrapper functions, and the stuff in
xfs_wrap.c)

/Johan





More information about the Arla-drinkers mailing list