@@ -87,11 +87,11 @@ class i_machine {
87
87
return do_run (mcycle_end);
88
88
}
89
89
90
- // / \brief Collects the root hashes after every \p mcycle_period machine cycles, for \p period_count periods.
91
- // / Returns when done, or if the machine halts or yields.
92
- void collect_mcycle_root_hashes (uint64_t mcycle_phase , uint64_t mcycle_period, uint64_t period_count ,
93
- mcycle_root_hashes &result) {
94
- do_collect_mcycle_root_hashes (mcycle_phase , mcycle_period, period_count , result);
90
+ // / \brief Collects the root hashes after every \p mcycle_period machine cycles until mcycle reaches \p mcycle_end,
91
+ // / or if the machine halts or yields.
92
+ void collect_mcycle_root_hashes (uint64_t mcycle_end , uint64_t mcycle_period, uint64_t mcycle_phase ,
93
+ uint32_t log2_bundle_mcycle_count, mcycle_root_hashes &result) {
94
+ do_collect_mcycle_root_hashes (mcycle_end , mcycle_period, mcycle_phase, log2_bundle_mcycle_count , result);
95
95
}
96
96
97
97
// / \brief Serialize entire state to directory
@@ -227,10 +227,11 @@ class i_machine {
227
227
return do_run_uarch (uarch_cycle_end);
228
228
}
229
229
230
- // / \brief Collects the root hashes after every \p uarch_cycle, for \p mcycle_count machine cycles , implicitly
230
+ // / \brief Collects the root hashes after every \p uarch_cycle until \p mcycle_end machine cycle , implicitly
231
231
// / resetting the uarch between mcycles.
232
- void collect_uarch_cycle_root_hashes (uint64_t mcycle_count, uarch_cycle_root_hashes &result) {
233
- do_collect_uarch_cycle_root_hashes (mcycle_count, result);
232
+ void collect_uarch_cycle_root_hashes (uint64_t mcycle_end, uint32_t log2_bundle_uarch_cycle_count,
233
+ uarch_cycle_root_hashes &result) {
234
+ do_collect_uarch_cycle_root_hashes (mcycle_end, log2_bundle_uarch_cycle_count, result);
234
235
}
235
236
236
237
// / \brief Returns a list of descriptions for all PMA entries registered in the machine, sorted by start
@@ -295,8 +296,8 @@ class i_machine {
295
296
const std::string &dir) = 0;
296
297
virtual void do_load (const std::string &directory, const machine_runtime_config &runtime, sharing_mode sharing) = 0;
297
298
virtual interpreter_break_reason do_run (uint64_t mcycle_end) = 0;
298
- virtual void do_collect_mcycle_root_hashes (uint64_t mcycle_phase , uint64_t mcycle_period, uint64_t period_count ,
299
- mcycle_root_hashes &result) = 0;
299
+ virtual void do_collect_mcycle_root_hashes (uint64_t mcycle_end , uint64_t mcycle_period, uint64_t mcycle_phase ,
300
+ uint32_t log2_bundle_mcycle_count, mcycle_root_hashes &result) = 0;
300
301
virtual void do_store (const std::string &dir, sharing_mode sharing) const = 0;
301
302
virtual void do_clone_stored (const std::string &from_dir, const std::string &to_dir) const = 0;
302
303
virtual interpreter_break_reason do_log_step (uint64_t mcycle_count, const std::string &filename) = 0;
@@ -322,7 +323,8 @@ class i_machine {
322
323
virtual void do_reset_uarch () = 0;
323
324
virtual access_log do_log_reset_uarch (const access_log::type &log_type) = 0;
324
325
virtual uarch_interpreter_break_reason do_run_uarch (uint64_t uarch_cycle_end) = 0;
325
- virtual void do_collect_uarch_cycle_root_hashes (uint64_t mcycle_count, uarch_cycle_root_hashes &result) = 0;
326
+ virtual void do_collect_uarch_cycle_root_hashes (uint64_t mcycle_end, uint32_t log2_bundle_uarch_cycle_count,
327
+ uarch_cycle_root_hashes &result) = 0;
326
328
virtual address_range_descriptions do_get_address_ranges () const = 0;
327
329
virtual void do_send_cmio_response (uint16_t reason, const unsigned char *data, uint64_t length) = 0;
328
330
virtual access_log do_log_send_cmio_response (uint16_t reason, const unsigned char *data, uint64_t length,
0 commit comments