aboutsummaryrefslogtreecommitdiff
path: root/riscv/sim.h
diff options
context:
space:
mode:
Diffstat (limited to 'riscv/sim.h')
-rw-r--r--riscv/sim.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/riscv/sim.h b/riscv/sim.h
index eee24e5..5ee53ae 100644
--- a/riscv/sim.h
+++ b/riscv/sim.h
@@ -57,6 +57,17 @@ public:
// Callback for processors to let the simulation know they were reset.
void proc_reset(unsigned id);
+ std::map<reg_t, reservation> reservation_set;
+ reg_t reservation_set_size;
+
+ void set_reservation_set_size(reg_t set_size) {
+ if(set_size == 0) {
+ reservation_set_size = 1;
+ } else {
+ reservation_set_size = set_size;
+ }
+ }
+
private:
std::vector<std::pair<reg_t, mem_t*>> mems;
std::vector<std::pair<reg_t, abstract_device_t*>> plugin_devices;
@@ -135,6 +146,8 @@ private:
size_t chunk_align() { return 8; }
size_t chunk_max_size() { return 8; }
+ std::map<reg_t, reservation>& get_reservation_set() { return reservation_set; }
+ reg_t get_reservation_set_size() { return reservation_set_size; }
public:
// Initialize this after procs, because in debug_module_t::reset() we
// enumerate processors, which segfaults if procs hasn't been initialized