mirror of
https://github.com/drasko/codezero.git
synced 2026-07-10 01:14:12 +02:00
Redesigned sys_open call
fs0 used to receive open() requests and notify pager about them via a syscall ipc. This caused deadlocks because normally request flow is mm0 -> fs0 on all other calls. The solution was to have mm0 ask and validate file descriptors from fs0 on the first request instance that involved that file descriptor. By this method we delay the validation of the fd until its first use, and avoid deadlock. It also fits well with the lazy request handling design philosophy.
This commit is contained in:
@@ -13,6 +13,8 @@ int sys_mkdir(l4id_t sender, const char *pathname, unsigned int mode);
|
||||
int sys_chdir(l4id_t sender, const char *pathname);
|
||||
|
||||
/* Calls from pager that completes a posix call */
|
||||
|
||||
int pager_sys_open(l4id_t sender, l4id_t opener, int fd);
|
||||
int pager_sys_read(l4id_t sender, unsigned long vnum, unsigned long f_offset,
|
||||
unsigned long npages, void *pagebuf);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user