aboutsummaryrefslogtreecommitdiff
path: root/qtmips_gui/newdialog.h
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2018-03-06 21:57:07 +0100
committerKarel Kočí <cynerd@email.cz>2018-03-06 21:57:07 +0100
commita56b25212865c57251719a1d4a5d9d6a79b339c5 (patch)
tree5e5412c14a407b19a7e3a245cc39cb4fc80b6ec4 /qtmips_gui/newdialog.h
parentc75024c81ba92efbcc70e80520599a27b4aff0d8 (diff)
downloadqtmips-a56b25212865c57251719a1d4a5d9d6a79b339c5.tar.gz
qtmips-a56b25212865c57251719a1d4a5d9d6a79b339c5.tar.bz2
qtmips-a56b25212865c57251719a1d4a5d9d6a79b339c5.zip
Implement Cache configuration
This commit implements both cache configuration for machine and for gui.
Diffstat (limited to 'qtmips_gui/newdialog.h')
-rw-r--r--qtmips_gui/newdialog.h32
1 files changed, 29 insertions, 3 deletions
diff --git a/qtmips_gui/newdialog.h b/qtmips_gui/newdialog.h
index 5b50a41..79616a2 100644
--- a/qtmips_gui/newdialog.h
+++ b/qtmips_gui/newdialog.h
@@ -9,12 +9,16 @@
#include "ui_NewDialogCache.h"
#include "machineconfig.h"
+class NewDialogCacheHandler;
+
class NewDialog : public QDialog {
Q_OBJECT
public:
NewDialog(QWidget *parent, QSettings *settings);
~NewDialog();
+ void switch2custom();
+
protected:
void closeEvent(QCloseEvent *);
@@ -29,9 +33,6 @@ private slots:
void mem_protec_exec_change(bool);
void mem_protec_write_change(bool);
- void cache_data_change(bool);
- void cache_program_change(bool);
-
private:
Ui::NewDialog *ui;
Ui::NewDialogCache *ui_cache_p, *ui_cache_d;
@@ -40,8 +41,33 @@ private:
machine::MachineConfig *config;
void config_gui(); // Apply configuration to gui
+ unsigned preset_number();
void load_settings();
void store_settings();
+ NewDialogCacheHandler *cache_handler_p, *cache_handler_d;
+};
+
+class NewDialogCacheHandler : QObject {
+ Q_OBJECT
+public:
+ NewDialogCacheHandler(NewDialog *nd, Ui::NewDialogCache *ui);
+
+ void set_config(machine::MachineConfigCache *config);
+
+ void config_gui();
+
+private slots:
+ void enabled(bool);
+ void numsets();
+ void blocksize();
+ void degreeassociativity();
+ void replacement(int);
+ void writeback(int);
+
+private:
+ NewDialog *nd;
+ Ui::NewDialogCache *ui;
+ machine::MachineConfigCache *config;
};
#endif // NEWDIALOG_H