report_manager: store report -> program mapping

This commit is contained in:
Justin Viiret
2016-04-18 14:20:45 +10:00
committed by Matthew Barr
parent fd7f30a5b5
commit f40aa6bd40
3 changed files with 26 additions and 2 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, Intel Corporation
* Copyright (c) 2015-2016, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@@ -217,6 +217,18 @@ Report ReportManager::getBasicInternalReport(const NGWrapper &g, s32 adj) {
return makeECallback(g.reportId, adj, ekey);
}
void ReportManager::setProgramOffset(ReportID id, u32 programOffset) {
assert(id < reportIds.size());
assert(!contains(reportIdToProgramOffset, id));
reportIdToProgramOffset.emplace(id, programOffset);
}
u32 ReportManager::getProgramOffset(ReportID id) const {
assert(id < reportIds.size());
assert(contains(reportIdToProgramOffset, id));
return reportIdToProgramOffset.at(id);
}
static
void ekeysUnion(std::set<u32> *ekeys, u32 more) {
if (!ekeys->empty()) {