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