summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/cache.h2
-rw-r--r--inc/dram.h5
-rw-r--r--inc/storage.h2
3 files changed, 6 insertions, 3 deletions
diff --git a/inc/cache.h b/inc/cache.h
index f1fb942..d470e6c 100644
--- a/inc/cache.h
+++ b/inc/cache.h
@@ -18,7 +18,7 @@ class Cache : public Storage
~Cache();
Response write(Accessor accessor, signed int data, int address) override;
- Response read(Accessor accessor, int address) override;
+ Response read(Accessor accessor, int address, std::array<signed int, LINE_SIZE>& data) override;
};
#endif /* CACHE_H_INCLUDED */
diff --git a/inc/dram.h b/inc/dram.h
index cfac799..1061d6b 100644
--- a/inc/dram.h
+++ b/inc/dram.h
@@ -16,7 +16,10 @@ class Dram : public Storage
~Dram();
Response write(Accessor accessor, signed int data, int address) override;
- Response read(Accessor accessor, int address) override;
+ Response read(Accessor accessor, int address, std::array<signed int, LINE_SIZE>& data) override;
+
+ private:
+ void do_read(std::array<signed int, LINE_SIZE>& data_line, int address);
};
#endif /* DRAM_H_INCLUDED */
diff --git a/inc/storage.h b/inc/storage.h
index 4bf4591..1fb41b0 100644
--- a/inc/storage.h
+++ b/inc/storage.h
@@ -32,7 +32,7 @@ class Storage
* @return a status code reflecting the state of the request, and the
* data being returned.
*/
- virtual Response read(Accessor accessor, int address) = 0;
+ virtual Response read(Accessor accessor, int address, std::array<signed int, LINE_SIZE>& data) = 0;
/**
* Sidedoor view of `lines` of memory starting at `base`.
* @param The base line to start getting memory from.