aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2021-03-16 19:39:17 -0700
committerAndrew Waterman <andrew@sifive.com>2021-03-25 22:21:06 -0700
commit0b5ef9cf755811e6a8a2901585f3ecb5604e55f1 (patch)
treebcede5ce38f43dd0075502cd3aecc8ae0478a459
parent6c8e0fd96d8a88c77755ee49e320c741958f50ed (diff)
downloadriscv-pk-0b5ef9cf755811e6a8a2901585f3ecb5604e55f1.zip
riscv-pk-0b5ef9cf755811e6a8a2901585f3ecb5604e55f1.tar.gz
riscv-pk-0b5ef9cf755811e6a8a2901585f3ecb5604e55f1.tar.bz2
Add some missing syscall stubs
-rw-r--r--pk/syscall.c8
-rw-r--r--pk/syscall.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/pk/syscall.c b/pk/syscall.c
index bfc95ec..af3660d 100644
--- a/pk/syscall.c
+++ b/pk/syscall.c
@@ -564,6 +564,12 @@ int sys_chdir(const char *path)
return frontend_syscall(SYS_chdir, kva2pa(kbuf), 0, 0, 0, 0, 0, 0);
}
+void sys_tgkill(int tgid, int tid, int sig)
+{
+ // assume target is current thread
+ sys_exit(sig);
+}
+
int sys_getdents(int fd, void* dirbuf, int count)
{
return 0; //stub
@@ -605,6 +611,8 @@ long do_syscall(long a0, long a1, long a2, long a3, long a4, long a5, unsigned l
[SYS_geteuid] = sys_getuid,
[SYS_getgid] = sys_getuid,
[SYS_getegid] = sys_getuid,
+ [SYS_gettid] = sys_getuid,
+ [SYS_tgkill] = sys_tgkill,
[SYS_mmap] = sys_mmap,
[SYS_munmap] = sys_munmap,
[SYS_mremap] = sys_mremap,
diff --git a/pk/syscall.h b/pk/syscall.h
index 9fcc551..db613ac 100644
--- a/pk/syscall.h
+++ b/pk/syscall.h
@@ -7,6 +7,7 @@
#define SYS_exit_group 94
#define SYS_getpid 172
#define SYS_kill 129
+#define SYS_tgkill 131
#define SYS_read 63
#define SYS_write 64
#define SYS_openat 56
@@ -29,6 +30,7 @@
#define SYS_geteuid 175
#define SYS_getgid 176
#define SYS_getegid 177
+#define SYS_gettid 178
#define SYS_mmap 222
#define SYS_munmap 215
#define SYS_mremap 216