aboutsummaryrefslogtreecommitdiff
path: root/qtmips_machine/machineconfig.h
diff options
context:
space:
mode:
Diffstat (limited to 'qtmips_machine/machineconfig.h')
-rw-r--r--qtmips_machine/machineconfig.h35
1 files changed, 32 insertions, 3 deletions
diff --git a/qtmips_machine/machineconfig.h b/qtmips_machine/machineconfig.h
index 58c2fc2..352e62b 100644
--- a/qtmips_machine/machineconfig.h
+++ b/qtmips_machine/machineconfig.h
@@ -1,11 +1,40 @@
#ifndef MACHINECONFIG_H
#define MACHINECONFIG_H
+#include <QString>
-class MachineConfig
-{
+class MachineConfig {
public:
MachineConfig();
+ MachineConfig(MachineConfig *cc);
+
+ enum CacheType {
+ CCT_NONE,
+ CCT_ASSOCIATIVE,
+ // TODO
+ };
+
+ // Configure if CPU is pipelined
+ // In default disabled.
+ void set_pipelined(bool);
+ // Configure if we want to do jump prediction
+ // In default disabled. When enabled it also automatically enables pipelining
+ void set_jump_prediction(bool);
+ // Configure cache type
+ // In default CCT_NONE is used.
+ void set_cache(enum CacheType);
+ // Set path to source elf file. This has to be set before core is initialized.
+ void set_elf(QString path);
+
+ bool pipelined() const;
+ bool jump_prediction() const;
+ enum CacheType cache() const;
+ QString elf() const;
+
+private:
+ bool pipeline, jumppred;
+ enum CacheType cache_type;
+ QString elf_path;
};
-#endif // MACHINECONFIG_H \ No newline at end of file
+#endif // MACHINECONFIG_H