Fail* directories reorganized, Code-cleanup (-> coding-style), Typos+comments fixed.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1321 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
33
src/core/sal/bochs/SaveState.ah
Normal file
33
src/core/sal/bochs/SaveState.ah
Normal file
@ -0,0 +1,33 @@
|
||||
#ifndef _SAVE_STATE_AH__
|
||||
#define _SAVE_STATE_AH__
|
||||
|
||||
#include "config/FailConfig.hpp"
|
||||
|
||||
#ifdef CONFIG_SR_SAVE
|
||||
|
||||
#include "bochs.h"
|
||||
|
||||
#include "../SALInst.hpp"
|
||||
|
||||
aspect SaveState {
|
||||
pointcut cpuLoop() = "void defineCPULoopJoinPoint(...)";
|
||||
|
||||
// make sure the "SaveState" 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 ("SaveState", "Breakpoints");
|
||||
|
||||
advice execution (cpuLoop()) : after () {
|
||||
if (!fail::save_bochs_request)
|
||||
return;
|
||||
assert(fail::sr_path.size() > 0 && "FATAL ERROR: tried to save state without valid path");
|
||||
SIM->save_state(fail::sr_path.c_str());
|
||||
std::cout << "[FAIL] Save finished" << std::endl;
|
||||
// TODO: Log-Level?
|
||||
fail::simulator.saveDone();
|
||||
}
|
||||
};
|
||||
|
||||
#endif // CONFIG_SR_SAVE
|
||||
|
||||
#endif // _SAVE_STATE_AH__
|
||||
Reference in New Issue
Block a user