From 20fe698a4074df4abe02f14a1a14481770e90abc Mon Sep 17 00:00:00 2001 From: bd Date: Thu, 6 Mar 2025 00:03:00 -0500 Subject: Storage.view method, some initial tests --- src/storage/cache.cc | 8 ++++---- src/storage/dram.cc | 9 ++++----- src/storage/storage.cc | 12 ++++++++++++ 3 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 src/storage/storage.cc (limited to 'src') 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 +#include "cache.h" +#include "response.h" +#include Cache::Cache(int lines, Storage *lower, int delay) { - this->data = new std::vector>; + this->data = new std::vector>; 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 -#include +#include "dram.h" +#include "response.h" +#include Dram::Dram(int lines, int delay) { - this->data = new std::vector>; + this->data = new std::vector>; 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 + +std::vector> Storage::view(int base, int lines) +{ + base = (base / 4) * 4; + std::vector> ret(lines + 1); + std::copy( + this->data->begin() + base, this->data->begin() + base + lines, + ret.begin()); + return ret; +} -- cgit v1.2.3