syscalls: fchdir, setitimer, getitimer

This commit is contained in:
Matheus
2024-05-29 11:10:24 -03:00
parent 5b5d300fc1
commit 5f7791cd08
11 changed files with 313 additions and 13 deletions
+24
View File
@@ -42,3 +42,27 @@ syscallret_t syscall_chdir(context_t *, const char *upath) {
return ret;
}
syscallret_t syscall_fchdir(context_t *, int fd) {
syscallret_t ret = {
.ret = -1
};
file_t *file = fd_get(fd);
if (file == NULL) {
ret.errno = EBADF;
return ret;
}
if (file->vnode->type != V_TYPE_DIR) {
ret.errno = ENOTDIR;
goto cleanup;
}
sched_setcwd(file->vnode);
ret.errno = 0;
cleanup:
fd_release(file);
return ret;
}