#
# porting information
#
# $Id: PORTING,v 1.3 1994/12/05 03:40:21 jhpb Exp $
#
# $Log: PORTING,v $
# Revision 1.3  1994/12/05  03:40:21  jhpb
# editing changes
#
# Revision 1.2  1994/12/03  16:18:35  jhpb
# fixes to file headers
#
# Revision 1.1  1994/12/03  15:42:59  jhpb
# Initial revision
#

If you want to port this software to something besides SVR4.0.3/386,
here are some areas to take a look at.  This is not an exhaustive
list, but should get you started.

- libscsi directory

The scsi class is the low-level interface to SCSI devices.  It is
currently set up for the SVR4/386 pass-through mechanism.  This will
have to be changed to use whatever is supported on your machine.

- libscsi directory

The makedev program will need to be changed to cooperate with the scsi
class you end up with.

- libscsi directory

As I recall, the bitstring class will need porting if the byte order
of your machine is not the same as an Intel 386.

- libwangdat directory

The wangdat class is based on a virtual base class for tape drives.
If you have a different tape drive than a WangDAT 2000, copy the
libwangdat directory and make the appropriate changes for your tape
drive.  You will also have to change any code that instantiates
"wangdat" objects to your own type of object.

It might be better, now that I think of it, to have a tape drive
object figure out what kind of tape drive it is talking to, and act
appropriately, instead of cloning all that code.

- wormdat directory

You will need to port the wormdat and wormdatcntl programs to use the
RPC mechanisms supported by your OS.

Wormdat uses shared memory to get something similar to
multi-threading, for efficiency in accessing the tape drive.  You will
have some work to do in the mailbox class if your OS doesn't support
some kind of shared memory.

There are also some byte order dependencies in the NFS protocol
implementation in wormdat, as I recall.  Look at the _cookie class.

If you want to port the NFS server to other kinds of devices, take a
look at the _device class, it is the storage device interface for the
NFS server.
