aboutsummaryrefslogtreecommitdiff
path: root/qtmips_machine/memory.h
diff options
context:
space:
mode:
Diffstat (limited to 'qtmips_machine/memory.h')
-rw-r--r--qtmips_machine/memory.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/qtmips_machine/memory.h b/qtmips_machine/memory.h
index 1b56d7c..90fda1b 100644
--- a/qtmips_machine/memory.h
+++ b/qtmips_machine/memory.h
@@ -18,11 +18,23 @@ public:
std::uint16_t read_hword(std::uint32_t offset);
std::uint32_t read_word(std::uint32_t offset);
+ enum AccessControl {
+ AC_BYTE,
+ AC_HALFWORD,
+ AC_WORD,
+ AC_BYTE_UNSIGNED,
+ AC_HALFWORD_UNSIGNED
+ };
+ void write_ctl(enum AccessControl ctl, std::uint32_t offset, std::uint32_t value);
+ std::uint32_t read_ctl(enum AccessControl ctl, std::uint32_t offset);
+
signals:
// TODO trigger
void byte_change(std::uint32_t address, std::uint32_t value);
};
+Q_DECLARE_METATYPE(MemoryAccess::AccessControl)
+
class MemorySection : public MemoryAccess {
public:
MemorySection(std::uint32_t length);