Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/coda Update 00READ with porting instructions



details:   https://anonhg.NetBSD.org/src/rev/8d32d452ef82
branches:  trunk
changeset: 477245:8d32d452ef82
user:      rvb <rvb%NetBSD.org@localhost>
date:      Mon Oct 18 02:08:43 1999 +0000

description:
Update 00READ with porting instructions

diffstat:

 sys/coda/00READ |  77 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 70 insertions(+), 7 deletions(-)

diffs (83 lines):

diff -r 1f3f710aa652 -r 8d32d452ef82 sys/coda/00READ
--- a/sys/coda/00READ   Mon Oct 18 01:35:17 1999 +0000
+++ b/sys/coda/00READ   Mon Oct 18 02:08:43 1999 +0000
@@ -1,9 +1,72 @@
-WARNING:A version of this code has run on 1.3 for a while now.
-       The code has been recently ported to current.  It is mostly
-       working, but hasn't been run long enough to be sure all the
-       bugs are sorted out.  Let me know if there are any problems.
-       In particular, killing venus (or rebooting) when/if venus
-       is hung, may not work correctly.
+What needs to be done to port Coda to a different Architecture.
+
+    I. Fixes for the Coda applications
+
+Coda is a package under net/coda_*; so it should be easy enough to
+build.  But there are a few specific files that need to be changed
+first.  Of course, setting it up and using it is harder.
+
+       1.  coda/lib-src/mlwp/process.s
+
+Coda coda/mlwp/ implements light weight user threads. The process.s
+file contains stack switching code.  It needs to be recoded for your
+architecture.  There is some old dead code in the file that you might
+be able to resurrect for other platforms.  At present, only the x86
+case, ns32k case and arm32 case  (and possibly linux sparc) work.
+
+       2. coda/coda-src/venus/fso_cfscalls2.cc
+
+The Coda file system expands the strings @cputype and @sys in file
+names in a platform specific way.  In fso_cfscalls2.cc, under a
+__NetBSD__ conditional, there is platform conditional that defines:
+       static char cputype []
+       static char systype []
+Add the values for these strings under a conditional for your
+architecture.
+
+    II. Fixes for the Coda kernel
+
+The coda/ directory in the kernel is machine independent.  The various
+pieces of glue code, viz. conf/files, sys/vnode.h, are in place.  You
+do have a few platform changes:
+
+       1. src/sys/arch/xxx/conf/GENERIC or others
+
+It would be best to take the few lines that define Coda and its communications
+pseudo device from the x86 GENERIC and put them into your platform GENERIC.
+They should look something like:
+       file-system     CODA            # Coda File System; also needs vcoda (below)
+       # a pseudo device needed for Coda       # also needs CODA (above)
+       pseudo-device   vcoda           4       # coda minicache <-> venus comm.
 
 
-                                               rvb%cmu.edu@localhost
+       2. src/sys/arch/xxx/xxx/conf.c
+
+Coda needs a pseudodevice, vc_nb_, to communicate between the kernel and the
+out of kernel client program, venus.  sys/conf.h defines it:
+       #define cdev_vc_nb_init \...
+You must include this device in your platform conf.c
+
+By way of example for the x86, you add:
+#include "vcoda.h"
+cdev_decl(vc_nb_);
+to the "header" area  and 
+        cdev_vc_nb_init(NVCODA,vc_nb_),  /* 60: coda file system psdev */
+to the cdev switch.
+
+       3. src/etc/xxx/MAKEDEV
+
+Something like the the code below should work;  The chr device
+that is appropriate for your platform should be used instead of 60.
+cfs0)
+       name=cfs; unit=${i#cfs};  chr=60
+       rm -f $name$unit
+       mknod $name$unit c $chr $unit
+       chown root.wheel $name$unit
+       ;;
+We only support one device currently, but historically it is cfs0.
+
+
+    III. More?
+
+There still may be a couple of other problems.  If so, let us know.



Home | Main Index | Thread Index | Old Index