"failstar" sounds like a name for a cruise liner from the 80s. As "*" isn't a desirable part of directory names, just name the whole thing "fail/", the core parts being stored in "fail/core/". Additionally fixing two build system dependency issues: - missing jobserver -> protomessages dependency - broken bochs -> fail dependency (add_custom_target DEPENDS only allows plain file dependencies ... cmake for the win) git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@956 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
33 lines
820 B
Plaintext
33 lines
820 B
Plaintext
#ifndef __SAVE_AH__
|
|
#define __SAVE_AH__
|
|
|
|
#include "../../AspectConfig.hpp"
|
|
|
|
#if CONFIG_SR_SAVE == 1
|
|
|
|
#include "bochs.h"
|
|
#include "../SALInst.hpp"
|
|
|
|
aspect save {
|
|
pointcut cpuLoop() = "void defineCPULoopJoinPoint(...)";
|
|
|
|
// make sure the "save" aspect comes *after* the breakpoint stuff: In
|
|
// an "after" advice this means it must get a *higher* precedence,
|
|
// therefore it's first in the order list.
|
|
advice execution (cpuLoop()) : order ("save", "CPULoop");
|
|
|
|
advice execution (cpuLoop()) : after () {
|
|
if (!sal::save_bochs_request) {
|
|
return;
|
|
}
|
|
assert(sal::sr_path.size() > 0 && "[FAIL] tried to save state without valid path");
|
|
SIM->save_state(sal::sr_path.c_str());
|
|
std::cout << "[FAIL] Save finished" << std::endl;
|
|
sal::simulator.saveDone();
|
|
}
|
|
};
|
|
|
|
#endif // CONFIG_SR_SAVE
|
|
|
|
#endif // _SAVE_AH__
|