none
authorSteven Jenkins <steven.jenkins@gmail.com>
Fri, 8 Jun 2007 17:05:01 +0000 (17:05 +0000)
committerSteven Jenkins <steven.jenkins@gmail.com>
Fri, 8 Jun 2007 17:05:01 +0000 (17:05 +0000)
AFSLore/CodeArchitecture.mdwn [new file with mode: 0644]
AFSLore/WebHome.mdwn

diff --git a/AFSLore/CodeArchitecture.mdwn b/AFSLore/CodeArchitecture.mdwn
new file mode 100644 (file)
index 0000000..41519c9
--- /dev/null
@@ -0,0 +1,41 @@
+-- [[StevenJenkins]] - 08 Jun 2007
+
+This is an entry point into the code architecture. As always, the source for your release is the authoritative reference, but this wiki is designed to help navigate the source and point out relevant documentation.
+
+-- Starting Point --
+
+- <http://www.openafs.org/cgi-bin/cvsweb.cgi/openafs/doc/pdf/> Early architectural documents. Out of date, but still important. You should especially read the Architectural Overview document (archov-doc.pdf)
+- <http://www.eyrie.org/~eagle/tmp/openafs/1/rxgen.html> for more rxgen documentation
+- To understand the source layout, consult src/SOURCE-MAP -- this is a good place to go after reading the Architectural Overview
+- Need to document the build environment issues -- README, README.DEVEL, README.CVS
+- src/BUILDNOTES (at least in the 1.4 tree) is not very helpful
+
+-- Source Browsing --
+
+- Getting the source, preferably via CVS
+
+README.CVS has the following line:
+
+Do not use the CVS tree unless you know what you're doing.
+
+This document helps you learn what you're doing.
+
+- cvs co, regen.sh (&amp; when to run regen.sh)
+
+----
+
+In the source itself ---
+
+- **find | grep** is very helpful. For example, to find all the RX packages (ie, so that you can start to identify the various namespaces of components), you can do:
+
+` find . -name \*.xg -exec grep -H "^package" {} \; | grep -v 'example' | grep -v 'bulktest' | sed -e 's|^./src/||' | sed -e 's/package/ /' | awk '{printf "%10s %s\n", $2, $1}' `
+
+which results in: ` VOTE_ ubik/ubik_int.xg: DISK_ ubik/ubik_int.xg: SAMPLE_ ubik/utst_int.xg: VL_ vlserver/vldbint.xg: UPDATE_ update/update.xg: TEST_ rxgk/test.xg: RXGK_ rxgk/rxgk_proto.xg: RXAFSCB_ fsint/afscbint.xg: RXAFS_ fsint/afsint.xg: RXSTATS_ rxstat/rxstat.xg: PR_ ptserver/ptint.xg: BOZO_ bozo/bosint.xg: BUMON_ bubasics/backmon.xg: TC_ bubasics/butc.xg: BC_ bubasics/bumon.xg: ADK_ dauth/adkint.xg: RMTSYS_ sys/rmtsys.xg: AFSVol volser/volint.xg: `
+
+In other words, if something starts with BOZO\_, you know that it is generated by rxgen, and the interface is defined in `bozo/bosint.xg`.
+
+In addition to the package name, also note that only rxstat uses an M prefix; all others use S.
+
+- cscope: what it is, how to set up, how to use, example
+- doxygen: what it is, how to set up, how to use, how to make even more useful (ie, src code changes)
+- gdb: examples of using (primarily b, bt)
index fb1dbf7..881f9a6 100644 (file)
@@ -8,6 +8,7 @@ Welcome to the home of **%WIKITOOLNAME%.%WEB%**. This is a web-based collaborati
 - AFS3 [[ProtocolInfo]]
 - [[NewProjects]]
 - [[AncientHistory]] (once upon a time...)
+- [[CodeArchitecture]]
 
 Note: This area is about AFS, whose name is properly spelled in all uppercase. Unfortunately, this creates interesting challenges in coming up with appropriate [[WikiWords|TWiki/WikiWord]] for naming topics. Please bear with us -- or come up with better names!