Real-Time Systems: Spring Source Code Organization
University of Massachusetts, Amherst

This document attempts to describe the organization of the Spring project software. Note that except for the subdirectory 'src', all files contained in the subdirectories are generated files. All directory references contained herein are relative to the root of the spring tree, aka $s (currently /usr/users9/spring). August 1995. src: root of the source file tree CShells: utilities to build the entire tree
*** contains SpringRoot.csh which has a literal copy of the spring root
inc: headers only
kernel: spring kernel
sch: spring scheduler code, see Imakefile in this directory.
sgs: software generation systems
debug: the debugger running on the 136 boards
lib/libc: source for limited libc library
lib/libc/gen,stdio,sys: subdirectories holding libc library functions
lib/libm: source for limited math library
sgs-hdr: system header files shared by the debugger and other utilities in sgs-tools (and others?)
sgs-tools: source for spr-ar, spr-ld, spr-nm, spr-objdump, spr-od
spr-as: source for spr-as.
spr-cc: source for spring-c (based on gcc)
spr-cc/CodeReview: notes on code reviews
spr-cc/config: configuration files for gcc
spr-cc/sdl: source for sdl and sdl utilities
spr-cc/test: source for testing of the spring-c compiler
spr-cc/test/time: source for testing of the spring-c compiler timing routines
*** several cshells containing the root of the spring tree.
spr-cc/time_graphs: source for the time graph extensions to gcc
spr-cc/time_graphs/time_tool: source for the cycle counting timing tool
spr-cc/time_graphs/time_tool/gentests: source for the single instruction execution timing tool and the sequence execution timing tool as well as utilities to support the same
*** several makefiles containing string constants specifying the root of the spring tree.
spr-comm source: for inter 147 and 136 communication
spr-msg: development to 147 communications protocol
spr-netservices: spring network services deamon and associated utilities running on 147 board

simulator: demo code, old DataViews dependent simulator
tools: source code tools imake.cfg: imake configuration files for spring and itomf (front end to imake)
*** contains the file spring_root which is the definitive place to set the root of the spring tree.
sccs: sources for our copy of sccs (aka atools)
util: ftail (similar to tail -f)
alpha, decstation, sparc, vax: architecture specific build trees, these mirror the src tree app: cross-compiled binaries (libraries)
bin: install directory for executables
inc: spr-inc header files
kernel: cross compiled kernel
lib: install directory for libraries
sch: cross compiled scheduler and pap
sgs: see src/sgs/README
simulator: development compiled scheduler and pap
spring: installed imake configuration files
tools: install directory for source code tools
app: root directory for all files needed by applications compiled using spr-cc. installed from subdirectories of last built object tree. include: header files etc: should be taken out???
include: header file directory for all utility programs
man: man pages
sys: spring kernels, scheduler and pap applications installed from the last built object tree.

Real-Time Systems