diff options
| author | Miguel <m.i@gmx.at> | 2018-10-01 23:22:03 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-10-01 23:22:03 +0200 |
| commit | a455cd5af26bf8731e7c981a9421b16ab34dae6f (patch) | |
| tree | 140b184bf306cef258ba6e7965a78b3eecb598b9 /kernel/syscalls.c | |
| parent | b518f39803eaaf0b25b95baf951b12ef4d5a727e (diff) | |
fukkin scheduler
Diffstat (limited to 'kernel/syscalls.c')
| -rw-r--r-- | kernel/syscalls.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/kernel/syscalls.c b/kernel/syscalls.c index 5bdb76e..3b97917 100644 --- a/kernel/syscalls.c +++ b/kernel/syscalls.c @@ -22,6 +22,7 @@ #include "mem.h" #include "reent.h" #include "errno.h" +#include "compositor.h" #include "stdstreams.h" #define MAX_PID 200 @@ -237,6 +238,7 @@ int copy_args(char **in, char **out) int syscall_execve(const char *name, char *const argv[], char *const env[], int pid) { + fixme("not overwrite yourself?"); int arg_count=0; while(argv[arg_count]!=NULL)arg_count++; @@ -262,6 +264,8 @@ int syscall_execve(const char *name, char *const argv[], char *const env[], int *--stack=arg_count; *--stack=env1; task_reset(pid,entry_global,stack,alloc); + task_set_name(pid,name); + return 0; } @@ -398,6 +402,16 @@ uint32_t syscall_dup2(uint32_t oldfd,int newfd, int none2, uint32_t pid) fds[pid][newfd]=fd_dupl(&fds[pid][oldfd]); return newfd; } +uint32_t syscall_gui_rect(uint32_t p1, uint32_t p2, uint32_t p3, uint32_t pid) +{ + compositor_swap_buffers(); + return 1; +} +uint32_t syscall_gui_win(uint32_t p1, uint32_t p2, uint32_t p3, uint32_t pid) +{ + task_add_win(pid); + return 1; +} /** Generics */ uint32_t syscall_generic_test(uint32_t nr,uint32_t p1, uint32_t p2, uint32_t p3, uint32_t pid) @@ -469,6 +483,10 @@ uint32_t syscall_generic(uint32_t nr,uint32_t p1, uint32_t p2, uint32_t p3, uint return syscall_pipe(p1,p2,p3,pid); case SYSCALL_DUP2 : return syscall_dup2(p1,p2,p3,pid); + case SYSCALL_GUI_RECT : + return syscall_gui_rect(p1,p2,p3,pid); + case SYSCALL_GUI_WIN : + return syscall_gui_win(p1,p2,p3,pid); } kpanic("unknown syscall %d",nr); } |
