L4Sys Experiment: more on address space tracing

* introduce L4SYS_ADDRESS_SPACE_TRACE to indicate that we want
  to trace instructions in a different AS from the one we are starting
  the experiment in
* add CR3Run() to determine address space ID

Change-Id: I7bdaf1e858a6dd369af5175bd56e1b4e2d5f05ef
This commit is contained in:
Bjoern Doebel
2013-10-21 14:50:28 +02:00
parent 523f4a465b
commit 77b2e208d0
3 changed files with 169 additions and 57 deletions

View File

@ -8,6 +8,8 @@
#include "util/Logger.hpp"
#include "sal/Listener.hpp"
#include "l4sys.pb.h"
class L4SysExperimentData;
/**
@ -107,12 +109,13 @@ private:
/**
* Send back the experiment parameter set with a description of the error.
*/
void terminateWithError(std::string details, int reason);
void terminateWithError(std::string details, int reason, L4SysProtoMsg_Result*);
/**
* Run until L4SYS_FUNC_ENTRY and save state (experiment preparation,
* phase 1)
*/
void startAndSaveInitState(fail::BPSingleListener* bp);
void CR3run(fail::BPSingleListener *bp);
/**
* Collect list of executed instructions, considering instruction
* filtering if configured (experiment preparation, phase 2).
@ -153,7 +156,7 @@ private:
/**
* Perform memory bit flip at (address, bit).
*/
void doMemoryInjection(int address, int bit);
bool doMemoryInjection(int address, int bit);
/**
* Perform register bit flip in the specified (register, bit)