- processor_t(sim_t* _sim, char* _mem, size_t _memsz);
- void init(uint32_t _id);
- void step(size_t n, bool noisy);
+ processor_t(sim_t* _sim, mmu_t* _mmu, uint32_t _id);
+ ~processor_t();
+
+ void reset(bool value);
+ void step(size_t n, bool noisy); // run for n cycles
+ void deliver_ipi(); // register an interprocessor interrupt
+ bool running() { return run; }
+ void set_pcr(int which, reg_t val);
+ reg_t get_pcr(int which);
+ mmu_t* get_mmu() { return &mmu; }