diff --git a/hermit/include/hermit/syscall.h b/hermit/include/hermit/syscall.h index 17095b7cc..448fa2555 100644 --- a/hermit/include/hermit/syscall.h +++ b/hermit/include/hermit/syscall.h @@ -66,7 +66,7 @@ tid_t sys_getpid(void); int sys_fork(void); int sys_wait(int* status); int sys_execve(const char* name, char * const * argv, char * const * env); -int sys_getprio(void); +int sys_getprio(tid_t* id); int sys_setprio(tid_t* id, int prio); void NORETURN sys_exit(int arg); ssize_t sys_read(int fd, char* buf, size_t len); diff --git a/hermit/kernel/syscall.c b/hermit/kernel/syscall.c index 8f5ab3d90..7afc241be 100644 --- a/hermit/kernel/syscall.c +++ b/hermit/kernel/syscall.c @@ -54,11 +54,13 @@ tid_t sys_getpid(void) return task->id; } -int sys_getprio(void) +int sys_getprio(tid_t* id) { task_t* task = per_core(current_task); - return task->prio; + if (!id || (task->id == *id)) + return task->prio; + return -EINVAL; } int sys_setprio(tid_t* id, int prio) diff --git a/hermit/usr/newlib b/hermit/usr/newlib index a55fdd5a1..e56071244 160000 --- a/hermit/usr/newlib +++ b/hermit/usr/newlib @@ -1 +1 @@ -Subproject commit a55fdd5a1a7bb35130416c4b31244d9507cfc27e +Subproject commit e56071244e43980b3ef46f571a533b62ff5874ab diff --git a/hermit/usr/pte b/hermit/usr/pte index bbf5f3916..78e35d6de 160000 --- a/hermit/usr/pte +++ b/hermit/usr/pte @@ -1 +1 @@ -Subproject commit bbf5f3916788d751776357115908173bb03c8f02 +Subproject commit 78e35d6ded9bd509a5a9febd2d54daf57b4b06a1