summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-03-06 00:03:00 -0500
committerbd <bdunahu@operationnull.com>2025-03-06 00:03:00 -0500
commit20fe698a4074df4abe02f14a1a14481770e90abc (patch)
treee1d14c2ea93c1a4e6d87f007575e744a472147e0 /src
parente296a3a6ab782cb80b7091324b41bb78db6d3906 (diff)
Storage.view method, some initial tests
Diffstat (limited to 'src')
-rw-r--r--src/storage/cache.cc8
-rw-r--r--src/storage/dram.cc9
-rw-r--r--src/storage/storage.cc12
3 files changed, 20 insertions, 9 deletions
diff --git a/src/storage/cache.cc b/src/storage/cache.cc
index 34bdc5f..a4df820 100644
--- a/src/storage/cache.cc
+++ b/src/storage/cache.cc
@@ -1,8 +1,10 @@
-#include <cache.h>
+#include "cache.h"
+#include "response.h"
+#include <bits/stdc++.h>
Cache::Cache(int lines, Storage *lower, int delay)
{
- this->data = new std::vector<std::array<unsigned int, 4>>;
+ this->data = new std::vector<std::array<signed int, 4>>;
this->data->resize(lines);
this->lower = lower;
this->delay = delay;
@@ -17,5 +19,3 @@ Response *Cache::write(Accessor accessor, signed int data, int address)
}
Response *Cache::read(Accessor accessor, int address) { return nullptr; }
-
-int **Cache::view(int base, int lines) { return nullptr; }
diff --git a/src/storage/dram.cc b/src/storage/dram.cc
index 20858cd..89c7316 100644
--- a/src/storage/dram.cc
+++ b/src/storage/dram.cc
@@ -1,9 +1,10 @@
-#include <dram.h>
-#include <response.h>
+#include "dram.h"
+#include "response.h"
+#include <algorithm>
Dram::Dram(int lines, int delay)
{
- this->data = new std::vector<std::array<unsigned int, 4>>;
+ this->data = new std::vector<std::array<signed int, 4>>;
this->data->resize(lines);
this->delay = delay;
this->lower = nullptr;
@@ -17,5 +18,3 @@ Response *Dram::write(Accessor accessor, signed int data, int address)
}
Response *Dram::read(Accessor accessor, int address) { return nullptr; }
-
-int **Dram::view(int base, int lines) { return nullptr; }
diff --git a/src/storage/storage.cc b/src/storage/storage.cc
new file mode 100644
index 0000000..49d8e7e
--- /dev/null
+++ b/src/storage/storage.cc
@@ -0,0 +1,12 @@
+#include "storage.h"
+#include <algorithm>
+
+std::vector<std::array<signed int, 4>> Storage::view(int base, int lines)
+{
+ base = (base / 4) * 4;
+ std::vector<std::array<signed int, 4>> ret(lines + 1);
+ std::copy(
+ this->data->begin() + base, this->data->begin() + base + lines,
+ ret.begin());
+ return ret;
+}