aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerry Zhao <jerryz123@berkeley.edu>2023-06-02 12:07:22 -0700
committerJerry Zhao <jerryz123@berkeley.edu>2023-06-20 12:23:47 -0700
commit426a33e77438f956d0890391af7bb7ed9b7a20fc (patch)
treedacacab42178124d417087ecdab917ea1d1a5263
parent6456b5ad25a2b7efb6c4f9ccd28e00a5408eb743 (diff)
downloadriscv-isa-sim-426a33e77438f956d0890391af7bb7ed9b7a20fc.zip
riscv-isa-sim-426a33e77438f956d0890391af7bb7ed9b7a20fc.tar.gz
riscv-isa-sim-426a33e77438f956d0890391af7bb7ed9b7a20fc.tar.bz2
sim_t: change plugin_devices to a vec of shared_ptrs
-rw-r--r--ci-tests/testlib.c2
-rw-r--r--riscv/sim.cc4
-rw-r--r--riscv/sim.h4
-rw-r--r--spike_main/spike.cc7
4 files changed, 7 insertions, 10 deletions
diff --git a/ci-tests/testlib.c b/ci-tests/testlib.c
index 3d5438b..33eaede 100644
--- a/ci-tests/testlib.c
+++ b/ci-tests/testlib.c
@@ -28,7 +28,7 @@ int main()
hartids,
false,
4);
- std::vector<std::pair<reg_t, abstract_device_t*>> plugin_devices;
+ std::vector<std::pair<reg_t, std::shared_ptr<abstract_device_t>>> plugin_devices;
std::vector<std::string> htif_args {"pk", "hello"};
debug_module_config_t dm_config = {
.progbufsize = 2,
diff --git a/riscv/sim.cc b/riscv/sim.cc
index 4fa49b2..43c91f6 100644
--- a/riscv/sim.cc
+++ b/riscv/sim.cc
@@ -34,7 +34,7 @@ const size_t sim_t::INTERLEAVE;
sim_t::sim_t(const cfg_t *cfg, bool halted,
std::vector<std::pair<reg_t, mem_t*>> mems,
- std::vector<std::pair<reg_t, abstract_device_t*>> plugin_devices,
+ std::vector<std::pair<reg_t, std::shared_ptr<abstract_device_t>>> plugin_devices,
const std::vector<std::string>& args,
const debug_module_config_t &dm_config,
const char *log_path,
@@ -67,7 +67,7 @@ sim_t::sim_t(const cfg_t *cfg, bool halted,
bus.add_device(x.first, x.second);
for (auto& x : plugin_devices)
- bus.add_device(x.first, x.second);
+ bus.add_device(x.first, x.second.get());
debug_module.add_device(&bus);
diff --git a/riscv/sim.h b/riscv/sim.h
index a851643..ba95666 100644
--- a/riscv/sim.h
+++ b/riscv/sim.h
@@ -27,7 +27,7 @@ class sim_t : public htif_t, public simif_t
public:
sim_t(const cfg_t *cfg, bool halted,
std::vector<std::pair<reg_t, mem_t*>> mems,
- std::vector<std::pair<reg_t, abstract_device_t*>> plugin_devices,
+ std::vector<std::pair<reg_t, std::shared_ptr<abstract_device_t>>> plugin_devices,
const std::vector<std::string>& args,
const debug_module_config_t &dm_config, const char *log_path,
bool dtb_enabled, const char *dtb_file,
@@ -63,7 +63,7 @@ private:
isa_parser_t isa;
const cfg_t * const cfg;
std::vector<std::pair<reg_t, mem_t*>> mems;
- std::vector<std::pair<reg_t, abstract_device_t*>> plugin_devices;
+ std::vector<std::pair<reg_t, std::shared_ptr<abstract_device_t>>> plugin_devices;
std::vector<processor_t*> procs;
std::map<size_t, processor_t*> harts;
std::pair<reg_t, reg_t> initrd_range;
diff --git a/spike_main/spike.cc b/spike_main/spike.cc
index 7290f38..f257582 100644
--- a/spike_main/spike.cc
+++ b/spike_main/spike.cc
@@ -336,7 +336,7 @@ int main(int argc, char** argv)
bool dtb_enabled = true;
const char* kernel = NULL;
reg_t kernel_offset, kernel_size;
- std::vector<std::pair<reg_t, abstract_device_t*>> plugin_devices;
+ std::vector<std::pair<reg_t, std::shared_ptr<abstract_device_t>>> plugin_devices;
std::unique_ptr<icache_sim_t> ic;
std::unique_ptr<dcache_sim_t> dc;
std::unique_ptr<cache_sim_t> l2;
@@ -416,7 +416,7 @@ int main(int argc, char** argv)
std::string args(avail, '\0');
stream.readsome(&args[0], avail);
- plugin_devices.emplace_back(base, new mmio_plugin_device_t(name, args));
+ plugin_devices.emplace_back(base, std::make_shared<mmio_plugin_device_t>(name, args));
};
option_parser_t parser;
@@ -602,8 +602,5 @@ int main(int argc, char** argv)
for (auto& mem : mems)
delete mem.second;
- for (auto& plugin_device : plugin_devices)
- delete plugin_device.second;
-
return return_code;
}