Files
fail/doc/fail-structure.txt
Adrian Böckenkamp 03bcf7bfc8 Removed OVP-related (source) files/code (backend discarded).
Change-Id: Ibf8065d9fe760640e5744896b764f9ebb6d2fa69
2013-04-10 15:16:46 +02:00

63 lines
3.9 KiB
Plaintext

=========================================================================================
Directory structure:
=========================================================================================
The folders are nested as follow:
**********************************************************************
fail: Fail* parent directory, containing all source & configuration files (${FAIL_DIR})
|-cmake: CMake-related configuration files (e.g. compiler-flags, dependencies, ...)
|-doc: Fail*-Framework documentation (e.g., diagrams, howtos, ...)
|-deprecated: temporal and old (source) files, which will probably be deleted
|-scripts: python/shell scripts for Fail*-compilation and experiment distribution
|-simulators: parent directory of simulators supported by Fail* (may still be WIP)
|-bochs: source files of the (modified) Bochs x86 simulator backend
|-gem5: source files of the gem5 simulator backend
|-debuggers: parent directory of debuggers supported by Fail* (may still be WIP)
|-gdb: source files related to the GNU gdb debugger
|-t32: source files related to the Lauterbach T32 debugger
|-src: C/C++/AspectC++ source files related to Fail*, experiments and plugins
|-core: core source files forming the Fail* framework
|-util: utility classes and miscellaneous helper functions
|-config: CMake configuration files, defining the Fail* components and variant
|-sal: source file forming the Simulator Abstraction Layer (backend-interface)
|-bochs: backend source files of the Bochs simulator
|-gem5: backend source files of the gem5 simulator
|-qemu: backend source files of the QEMU simulator
|-t32: backend source files of the Lauterbach T32 debugger
|-arm: ARM-specific platform source files
|-x86: x86-specific platform source files
|-perf: performance-related source files (extensions); speeds up
Fail* <-> simulator interaction (e.g., when using breakpoints)
|-cpn: campaign- (and therefore server-)related source files
|-efw: experiment-framework- (and therefore client-)related source files
|-comm: communication related source files (these files are used by cpn and efw), incl.
protobuf message definitions used for communication purposes
|-experiments: experiment code files (within a new dir) need to be located here
|-plugins: plugin code files (within a new dir) need to be located here
|-tools: Fail*-related tools, e.g., for tracing or fault-space pruning
|-[build]: recommended location of your build-tree, generated files will be placed here
Some additional useful notes:
**********************************************************************
- The source files have been documented using Doxygen comments. The Doxygen
documentation can be generated by typing "make doc" in your build-tree. The
resulting HTML and LaTeX files will be located in "${BUILD_DIR}/src/core/doc/".
- CMake supports an "in-source" build-tree. We recommend you not to use this
"feature", because it leads to a cluttered directory structure (mixing original
source files and generated code/config files). (Since it is still possible, however,
the "build" directory is optional.)
- CMake invokes the compiler with the following include directories:
* ${FAIL_DIR}/src/core
* ${BUILD_DIR}/src/core
When compiling the $SIMULATOR variant the following directory is added, too:
* ${FAIL_DIR}/simulators/$SIMULATOR
These definitions simplify and shorten the include paths.
=========================================================================================
Namespace structure:
=========================================================================================
All classes, functions, constants, etc. are encapsulated in the namespace "fail".
Experiments and plugins (see corresponding directories above) are located in the
global scope (not in the "fail"-namespace).