bdfacbe6056a85d250f429494775d730952a2d80
The checkpoint plugin watches for writes on the given symbol and logs the written value and the simulation time to a given output file. Additionally, a SHA1 hash is computed over all memory locations between given start and stop symbols. On x86, virtual memory is disabled while computing the checkpoint hash. This means the checkpoint plugin in checksumming over physical, not virtual, address ranges! This can result to unexpected behaviour if virtual memory is not used for identity paging. To save checkpoint information to a file, use the Checkpoint constructor with a given checkpoint symbol and add the plugin to the experiment (flow). To check checkpoints against an existing file, use the constructor without memory symbol and do not add the plugin to the experiment. Instead, define a memory listener "manually" and call the check() function. This approach was taken as the simplest form of cooperation between experiment and plugins. For SHA1 calculation, C code from RFC 3174 is used to prevent depending on another external library. However, this may not be the fastest or best code for the task. TEMPORARY HACK/WORKAROUND: Since dOSEK uses the highest bit (31) of some pointers for parity and the checksum plugin reads these (stack) pointers to determine checksum regions, the plugin currently DISCARDS BIT 31 of pointers used as dynamic region limits. This will be replaced in the future by a callback mechanism, which lets the experiment specify the regions to checksum (called at each checkpoint). Change-Id: I176eccc34b582bbf13e52b6943191dd20258acc5
This is an import of the old danceos svn repository. The Fail* development started with rev 187, but this git import only contains revisions 956 and newer due to directory structure changes. Imported from external gitsvn checkout. http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html
Description
Languages
C++
45%
C
36.8%
Python
8.2%
Shell
1.7%
Makefile
1.6%
Other
6.2%