diff options
author | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-08 21:54:50 +0100 |
---|---|---|
committer | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-13 23:18:47 +0100 |
commit | 99364fff03268f3a5b9257430369003c7d91cbfb (patch) | |
tree | 368f840da45fe4f58f26aac7f3dfaa0da3ecf2a7 /qtmips_gui | |
parent | 460d00b0caf65a4483d3e029495cc9340bb3e785 (diff) | |
download | qtmips-99364fff03268f3a5b9257430369003c7d91cbfb.tar.gz qtmips-99364fff03268f3a5b9257430369003c7d91cbfb.tar.bz2 qtmips-99364fff03268f3a5b9257430369003c7d91cbfb.zip |
Initial attempt to as operating system syscall handler.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Diffstat (limited to 'qtmips_gui')
-rw-r--r-- | qtmips_gui/NewDialog.ui | 30 | ||||
-rw-r--r-- | qtmips_gui/mainwindow.cpp | 6 | ||||
-rw-r--r-- | qtmips_gui/qtmips_gui.pro | 5 |
3 files changed, 39 insertions, 2 deletions
diff --git a/qtmips_gui/NewDialog.ui b/qtmips_gui/NewDialog.ui index b31a011..4171e73 100644 --- a/qtmips_gui/NewDialog.ui +++ b/qtmips_gui/NewDialog.ui @@ -279,6 +279,36 @@ <string>Data cache</string> </attribute> </widget> + <widget class="QWidget" name="tab_os_emulation"> + <property name="enabled"> + <bool>true</bool> + </property> + <attribute name="title"> + <string>OS Emulation</string> + </attribute> + <layout class="QVBoxLayout" name="verticalLayout_7"> + <item> + <widget class="QCheckBox" name="osemu_enablecheck"> + <property name="text"> + <string>Enable OS Emulation</string> + </property> + </widget> + </item> + <item> + <spacer name="verticalSpacer_4"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>21</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> </widget> </item> <item> diff --git a/qtmips_gui/mainwindow.cpp b/qtmips_gui/mainwindow.cpp index 3e95a8f..0482b11 100644 --- a/qtmips_gui/mainwindow.cpp +++ b/qtmips_gui/mainwindow.cpp @@ -35,6 +35,7 @@ #include "mainwindow.h" #include "aboutdialog.h" +#include "ossyscall.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { machine = nullptr; @@ -146,6 +147,11 @@ void MainWindow::create_core(const machine::MachineConfig &config) { set_speed(); // Update machine speed to current settings +#if 1 + machine->register_exception_handler(machine::EXCAUSE_SYSCALL, + new osemu::OsSyscallExceptionHandler); +#endif + // Connect machine signals and slots connect(ui->actionRun, SIGNAL(triggered(bool)), machine, SLOT(play())); connect(ui->actionPause, SIGNAL(triggered(bool)), machine, SLOT(pause())); diff --git a/qtmips_gui/qtmips_gui.pro b/qtmips_gui/qtmips_gui.pro index 56e6909..02511df 100644 --- a/qtmips_gui/qtmips_gui.pro +++ b/qtmips_gui/qtmips_gui.pro @@ -5,6 +5,7 @@ CONFIG += c++11 TEMPLATE = app +LIBS += -L$$OUT_PWD/../qtmips_osemu/ -lqtmips_osemu LIBS += -L$$OUT_PWD/../qtmips_machine/ -lqtmips_machine -lelf DOLAR=$ @@ -13,8 +14,8 @@ unix: LIBS += \ -Wl,-rpath,\'$${DOLAR}$${DOLAR}ORIGIN/../lib\' \ # --enable-new-dtags \ -INCLUDEPATH += $$PWD/../qtmips_machine -DEPENDPATH += $$PWD/../qtmips_machine +INCLUDEPATH += $$PWD/../qtmips_machine $$PWD/../qtmips_osemu +DEPENDPATH += $$PWD/../qtmips_machine $$PWD/../qtmips_osemu QMAKE_CXXFLAGS += -std=c++0x QMAKE_CXXFLAGS_DEBUG += -ggdb |