aboutsummaryrefslogtreecommitdiff
path: root/qtmips_osemu/ossyscall.h
diff options
context:
space:
mode:
authorPavel Pisa <pisa@cmp.felk.cvut.cz>2019-02-15 21:47:21 +0100
committerPavel Pisa <pisa@cmp.felk.cvut.cz>2019-02-15 21:47:21 +0100
commit1b4ef2f6ce2104f0c54c124eab58c4b5f6af4327 (patch)
treea8b39f28e7cc457cb66cfe193d059fa889971c01 /qtmips_osemu/ossyscall.h
parent10fa419862f57ab46290e34779404845bdcefee8 (diff)
downloadqtmips-1b4ef2f6ce2104f0c54c124eab58c4b5f6af4327.tar.gz
qtmips-1b4ef2f6ce2104f0c54c124eab58c4b5f6af4327.tar.bz2
qtmips-1b4ef2f6ce2104f0c54c124eab58c4b5f6af4327.zip
System calls stubs for brk and mmap2.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Diffstat (limited to 'qtmips_osemu/ossyscall.h')
-rw-r--r--qtmips_osemu/ossyscall.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/qtmips_osemu/ossyscall.h b/qtmips_osemu/ossyscall.h
index b42fe21..00b6575 100644
--- a/qtmips_osemu/ossyscall.h
+++ b/qtmips_osemu/ossyscall.h
@@ -57,6 +57,7 @@ int name(std::uint32_t &result, machine::Core *core, \
class OsSyscallExceptionHandler : public machine::ExceptionHandler {
Q_OBJECT
public:
+ OsSyscallExceptionHandler();
bool handle_exception(machine::Core *core, machine::Registers *regs,
machine::ExceptionCause excause, std::uint32_t inst_addr,
std::uint32_t next_addr, std::uint32_t jump_branch_pc,
@@ -65,8 +66,14 @@ public:
OSSYCALL_HANDLER_DECLARE(do_sys_set_thread_area);
OSSYCALL_HANDLER_DECLARE(do_sys_writev);
OSSYCALL_HANDLER_DECLARE(do_sys_write);
+ OSSYCALL_HANDLER_DECLARE(do_sys_brk);
+ OSSYCALL_HANDLER_DECLARE(do_sys_mmap2);
signals:
void char_written(int fd, unsigned int val);
+private:
+ std::uint32_t brk_limit;
+ std::uint32_t anonymous_base;
+ std::uint32_t anonymous_last;
};
#undef OSSYCALL_HANDLER_DECLARE