Browse Source

Merge pull request #1990 from mslijepc/mslijepc_20250514_external-sim-ptr

changing type of external_simulator member of external_sim_device_t
pull/1995/head
Mladen Slijepcevic 1 year ago
committed by GitHub
parent
commit
f6b16b1b3c
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 8
      riscv/devices.cc
  2. 6
      riscv/devices.h

8
riscv/devices.cc

@ -156,21 +156,21 @@ void mem_t::dump(std::ostream& o) {
} }
} }
external_sim_device_t::external_sim_device_t(void* sim) external_sim_device_t::external_sim_device_t(abstract_sim_if_t* sim)
: external_simulator(sim) {} : external_simulator(sim) {}
void external_sim_device_t::set_simulator(void* sim) { void external_sim_device_t::set_simulator(abstract_sim_if_t* sim) {
external_simulator = sim; external_simulator = sim;
} }
bool external_sim_device_t::load(reg_t addr, size_t len, uint8_t* bytes) { bool external_sim_device_t::load(reg_t addr, size_t len, uint8_t* bytes) {
if (unlikely(external_simulator == nullptr)) return false; if (unlikely(external_simulator == nullptr)) return false;
return static_cast<abstract_sim_if_t*>(external_simulator)->load(addr, len, bytes); return external_simulator->load(addr, len, bytes);
} }
bool external_sim_device_t::store(reg_t addr, size_t len, const uint8_t* bytes) { bool external_sim_device_t::store(reg_t addr, size_t len, const uint8_t* bytes) {
if (unlikely(external_simulator == nullptr)) return false; if (unlikely(external_simulator == nullptr)) return false;
return static_cast<abstract_sim_if_t*>(external_simulator)->store(addr, len, bytes); return external_simulator->store(addr, len, bytes);
} }
reg_t external_sim_device_t::size() { reg_t external_sim_device_t::size() {

6
riscv/devices.h

@ -80,14 +80,14 @@ public:
class external_sim_device_t : public abstract_device_t { class external_sim_device_t : public abstract_device_t {
public: public:
external_sim_device_t(void* sim); external_sim_device_t(abstract_sim_if_t* sim);
void set_simulator(void* sim); void set_simulator(abstract_sim_if_t* sim);
bool load(reg_t addr, size_t len, uint8_t* bytes) override; bool load(reg_t addr, size_t len, uint8_t* bytes) override;
bool store(reg_t addr, size_t len, const uint8_t* bytes) override; bool store(reg_t addr, size_t len, const uint8_t* bytes) override;
reg_t size() override; reg_t size() override;
private: private:
void* external_simulator; abstract_sim_if_t* external_simulator;
}; };
class clint_t : public abstract_device_t { class clint_t : public abstract_device_t {

Loading…
Cancel
Save