diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/storage/cache.cc | 8 | ||||
-rw-r--r-- | src/storage/dram.cc | 9 | ||||
-rw-r--r-- | src/storage/storage.cc | 12 |
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; +} |