From 99364fff03268f3a5b9257430369003c7d91cbfb Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Fri, 8 Feb 2019 21:54:50 +0100 Subject: Initial attempt to as operating system syscall handler. Signed-off-by: Pavel Pisa --- qtmips_gui/NewDialog.ui | 30 ++++++++++++++++++++++++++++++ qtmips_gui/mainwindow.cpp | 6 ++++++ qtmips_gui/qtmips_gui.pro | 5 +++-- 3 files changed, 39 insertions(+), 2 deletions(-) (limited to 'qtmips_gui') 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 @@ Data cache + + + true + + + OS Emulation + + + + + + Enable OS Emulation + + + + + + + Qt::Vertical + + + + 21 + 40 + + + + + + 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 -- cgit v1.2.3