DCiAOKernelImporter: different injection semantic.

Is now very similar to normal importer, and may be deleted in the future, but
at the moment, this should be merged, since it is the importer used in the
sobres-2013 paper.

This changes the MySQL Schema. instr1_absolute was introduced.

Change-Id: I1bc2919bd14c335beca6d586b7cc0f80767ad7d5
This commit is contained in:
Christian Dietrich
2013-04-10 17:37:23 +02:00
parent 6d8b3331d8
commit 6789a313a9
10 changed files with 85 additions and 62 deletions

View File

@ -21,6 +21,7 @@ protected:
public:
typedef unsigned instruction_count_t; //!< not big enough for some benchmarks
struct margin_info_t { instruction_count_t dyninstr; fail::guest_address_t ip; fail::simtime_t time; };
Importer() : m_sanitychecks(false) {}
bool init(const std::string &variant, const std::string &benchmark, fail::Database *db);
@ -28,8 +29,7 @@ public:
virtual bool create_database() = 0;
virtual bool copy_to_database(fail::ProtoIStream &ps);
virtual bool clear_database();
virtual bool add_trace_event(instruction_count_t begin, instruction_count_t end,
fail::simtime_t time_begin, fail::simtime_t time_end,
virtual bool add_trace_event(margin_info_t &begin, margin_info_t &end,
const Trace_Event &event, bool is_fake = false) = 0;
void set_elf_file(fail::ElfReader *elf) { m_elf = elf; }
@ -38,8 +38,8 @@ public:
void set_sanitychecks(bool enabled) { m_sanitychecks = enabled; }
protected:
private:
struct leftmargin_info_t { instruction_count_t dyninstr; fail::simtime_t time; };
typedef std::map<fail::address_t, leftmargin_info_t> AddrLastaccessMap;
typedef std::map<fail::address_t, margin_info_t> AddrLastaccessMap;
};
#endif