diff options
author | Rupert Swarbrick <rswarbrick@gmail.com> | 2022-04-11 10:59:20 +0100 |
---|---|---|
committer | Rupert Swarbrick <rswarbrick@lowrisc.org> | 2022-04-12 11:10:45 +0100 |
commit | 61b4f61a857de65d1a341f55597bfceeb7b7690d (patch) | |
tree | e4537514b7522fba146bf3aeb1bb27b7fd34c3c9 /riscv/cfg.h | |
parent | e4aaed1b7b08998a6b6aefa34f7c575e292dde62 (diff) | |
download | spike-61b4f61a857de65d1a341f55597bfceeb7b7690d.zip spike-61b4f61a857de65d1a341f55597bfceeb7b7690d.tar.gz spike-61b4f61a857de65d1a341f55597bfceeb7b7690d.tar.bz2 |
Move hartids into cfg_t
The only slightly difficult thing here is that hartids will always
be considered "overridden" by the time we get to sim_t::sim_t (either
overridden by a command line argument, or overridden when we set
default hartids just before the constructor). To allow downstream code
to distinguish between "I picked IDs 0, 1, 2, 3 because the user asked
for 4 processors" and "The user explicitly asked for IDs 0, 1, 2, 3",
we have an extra explicit_hartids field.
Diffstat (limited to 'riscv/cfg.h')
-rw-r--r-- | riscv/cfg.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/riscv/cfg.h b/riscv/cfg.h index 1e08f80..6410c81 100644 --- a/riscv/cfg.h +++ b/riscv/cfg.h @@ -56,13 +56,16 @@ public: cfg_t(std::pair<reg_t, reg_t> default_initrd_bounds, const char *default_bootargs, size_t default_nprocs, const char *default_isa, const char *default_priv, - const std::vector<mem_cfg_t> &default_mem_layout) + const std::vector<mem_cfg_t> &default_mem_layout, + const std::vector<int> default_hartids) : initrd_bounds(default_initrd_bounds), bootargs(default_bootargs), nprocs(default_nprocs), isa(default_isa), priv(default_priv), - mem_layout(default_mem_layout) + mem_layout(default_mem_layout), + hartids(default_hartids), + explicit_hartids(false) {} cfg_arg_t<std::pair<reg_t, reg_t>> initrd_bounds; @@ -72,6 +75,8 @@ public: cfg_arg_t<const char *> priv; cfg_arg_t<std::vector<mem_cfg_t>> mem_layout; std::optional<reg_t> start_pc; + cfg_arg_t<std::vector<int>> hartids; + bool explicit_hartids; }; #endif |