aboutsummaryrefslogtreecommitdiff
path: root/riscv/devices.h
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2023-02-05 16:02:30 -0800
committerAndrew Waterman <andrew@sifive.com>2023-02-05 16:02:30 -0800
commit456c9e19d811ddc5da99974a40ee79a6f535a597 (patch)
tree3bd813365ea097bdee34d25871f4e1bf6e76ac48 /riscv/devices.h
parente85f86695092f1377a515c94de5c706bcff1f2bd (diff)
downloadspike-plic-clint-endian.zip
spike-plic-clint-endian.tar.gz
spike-plic-clint-endian.tar.bz2
Make clint tolerant of discontiguous hart IDsplic-clint-endian
Diffstat (limited to 'riscv/devices.h')
-rw-r--r--riscv/devices.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/riscv/devices.h b/riscv/devices.h
index 6facaa3..eaa2f7a 100644
--- a/riscv/devices.h
+++ b/riscv/devices.h
@@ -57,7 +57,7 @@ class mem_t : public abstract_device_t {
class clint_t : public abstract_device_t {
public:
- clint_t(std::vector<processor_t*>&, uint64_t freq_hz, bool real_time);
+ clint_t(sim_t* sim, uint64_t freq_hz, bool real_time);
bool load(reg_t addr, size_t len, uint8_t* bytes);
bool store(reg_t addr, size_t len, const uint8_t* bytes);
size_t size() { return CLINT_SIZE; }
@@ -68,13 +68,13 @@ class clint_t : public abstract_device_t {
typedef uint64_t mtime_t;
typedef uint64_t mtimecmp_t;
typedef uint32_t msip_t;
- std::vector<processor_t*>& procs;
+ sim_t* sim;
uint64_t freq_hz;
bool real_time;
uint64_t real_time_ref_secs;
uint64_t real_time_ref_usecs;
mtime_t mtime;
- std::vector<mtimecmp_t> mtimecmp;
+ std::map<size_t, mtimecmp_t> mtimecmp;
};
#define PLIC_MAX_DEVICES 1024