aboutsummaryrefslogtreecommitdiff
path: root/qtmips_machine/machineconfig.h
diff options
context:
space:
mode:
authorPavel Pisa <pisa@cmp.felk.cvut.cz>2019-03-06 23:40:34 +0100
committerPavel Pisa <pisa@cmp.felk.cvut.cz>2019-03-06 23:40:34 +0100
commit8d0f4806a7ad55710cb190e5a5c9388bd00c50a8 (patch)
tree16d5ac856513f44c4b1ecbccdebee151772f64e2 /qtmips_machine/machineconfig.h
parent1536045c0d28113892abc9d1023ce395a0e82e94 (diff)
downloadqtmips-8d0f4806a7ad55710cb190e5a5c9388bd00c50a8.tar.gz
qtmips-8d0f4806a7ad55710cb190e5a5c9388bd00c50a8.tar.bz2
qtmips-8d0f4806a7ad55710cb190e5a5c9388bd00c50a8.zip
Enable configuration of syscalls emulation and stop on exception.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Diffstat (limited to 'qtmips_machine/machineconfig.h')
-rw-r--r--qtmips_machine/machineconfig.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/qtmips_machine/machineconfig.h b/qtmips_machine/machineconfig.h
index 6f53d87..9fbbf18 100644
--- a/qtmips_machine/machineconfig.h
+++ b/qtmips_machine/machineconfig.h
@@ -127,6 +127,12 @@ public:
void set_memory_access_time_read(unsigned);
void set_memory_access_time_write(unsigned);
void set_memory_access_time_burst(unsigned);
+ // Operating system and exceptions setup
+ void set_osemu_enable(bool);
+ void set_osemu_known_syscall_stop(bool);
+ void set_osemu_unknown_syscall_stop(bool);
+ void set_osemu_interrupt_stop(bool);
+ void set_osemu_exception_stop(bool);
// Set path to source elf file. This has to be set before core is initialized.
void set_elf(QString path);
// Configure cache
@@ -141,6 +147,11 @@ public:
unsigned memory_access_time_read() const;
unsigned memory_access_time_write() const;
unsigned memory_access_time_burst() const;
+ bool osemu_enable() const;
+ bool osemu_known_syscall_stop() const;
+ bool osemu_unknown_syscall_stop() const;
+ bool osemu_interrupt_stop() const;
+ bool osemu_exception_stop() const;
QString elf() const;
const MachineConfigCache &cache_program() const;
const MachineConfigCache &cache_data() const;
@@ -156,6 +167,8 @@ private:
enum HazardUnit hunit;
bool exec_protect, write_protect;
unsigned mem_acc_read, mem_acc_write, mem_acc_burst;
+ bool osem_enable, osem_known_syscall_stop, osem_unknown_syscall_stop;
+ bool osem_interrupt_stop, osem_exception_stop;
QString elf_path;
MachineConfigCache cch_program, cch_data;
};