Set tval to 0 on traps with no specified tval
[riscv-isa-sim.git] / riscv / devices.h
index ba344dbdb8dc821269eff074a5ab9720eb8118dd..e4df6c9858862a3f7421e0162e5538dfa009e925 100644 (file)
@@ -2,6 +2,8 @@
 #define _RISCV_DEVICES_H
 
 #include "decode.h"
+#include <cstdlib>
+#include <string>
 #include <map>
 #include <vector>
 
@@ -20,8 +22,7 @@ class bus_t : public abstract_device_t {
   bool store(reg_t addr, size_t len, const uint8_t* bytes);
   void add_device(reg_t addr, abstract_device_t* dev);
 
-  struct descriptor { reg_t base; abstract_device_t* device; };
-  descriptor find_device(reg_t addr);
+  std::pair<reg_t, abstract_device_t*> find_device(reg_t addr);
 
  private:
   std::map<reg_t, abstract_device_t*> devices;