diff options
author | Andrew Waterman <andrew@sifive.com> | 2021-03-16 19:39:17 -0700 |
---|---|---|
committer | Andrew Waterman <andrew@sifive.com> | 2021-03-25 22:21:06 -0700 |
commit | 0b5ef9cf755811e6a8a2901585f3ecb5604e55f1 (patch) | |
tree | bcede5ce38f43dd0075502cd3aecc8ae0478a459 | |
parent | 6c8e0fd96d8a88c77755ee49e320c741958f50ed (diff) | |
download | pk-0b5ef9cf755811e6a8a2901585f3ecb5604e55f1.zip pk-0b5ef9cf755811e6a8a2901585f3ecb5604e55f1.tar.gz pk-0b5ef9cf755811e6a8a2901585f3ecb5604e55f1.tar.bz2 |
Add some missing syscall stubs
-rw-r--r-- | pk/syscall.c | 8 | ||||
-rw-r--r-- | pk/syscall.h | 2 |
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 |