From 57743ed477d4f4995cee29302e4e66b30c443075 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Wed, 14 Jan 2015 00:38:23 +0000 Subject: [PATCH] syscalls: add getpgrp (forgot it before!) and also enable flock --- Kernel/include/kdata.h | 2 +- Kernel/include/kernel.h | 1 + Kernel/include/syscall_name.h | 2 ++ Kernel/kdata.c | 4 +++- Kernel/syscall_proc.c | 10 ++++++++++ 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Kernel/include/kdata.h b/Kernel/include/kdata.h index aea0e779..8648f5e5 100644 --- a/Kernel/include/kdata.h +++ b/Kernel/include/kdata.h @@ -74,7 +74,7 @@ struct runload { extern struct runload loadavg[]; // the system call dispatch table -#define FUZIX_SYSCALL_COUNT 61 +#define FUZIX_SYSCALL_COUNT 62 typedef int16_t (*syscall_t)(void); extern const syscall_t syscall_dispatch[FUZIX_SYSCALL_COUNT]; diff --git a/Kernel/include/kernel.h b/Kernel/include/kernel.h index 70fdc2e3..3db5ffe4 100644 --- a/Kernel/include/kernel.h +++ b/Kernel/include/kernel.h @@ -818,5 +818,6 @@ CODE2 int16_t _uadmin(void); /* FUZIX system call 57 */ CODE2 int16_t _nice(void); /* FUZIX system call 58 */ CODE2 int16_t _sigdisp(void); /* FUZIX system call 59 */ CODE2 int16_t _flock(void); /* FUZIX system call 60 */ +CODE2 int16_t _getpgrp(void); /* FUZIX system call 61 */ #endif /* __FUZIX__KERNEL_DOT_H__ */ diff --git a/Kernel/include/syscall_name.h b/Kernel/include/syscall_name.h index 035219d6..da40b1d4 100644 --- a/Kernel/include/syscall_name.h +++ b/Kernel/include/syscall_name.h @@ -62,6 +62,7 @@ char *syscall_name[NR_SYSCALL] = { "nice", "_sigdisp", "flock", + "getpgrp", }; int syscall_args[NR_SYSCALL] = { @@ -126,4 +127,5 @@ int syscall_args[NR_SYSCALL] = { 1, //nice 2, //_sigdisp 2, //flock + 0, //getpgrp }; diff --git a/Kernel/kdata.c b/Kernel/kdata.c index 264a2d6d..33535f5a 100644 --- a/Kernel/kdata.c +++ b/Kernel/kdata.c @@ -91,5 +91,7 @@ const syscall_t syscall_dispatch[FUZIX_SYSCALL_COUNT] = { _profil, /* FUZIX system call 56 */ _uadmin, /* FUZIX systen call 57 */ _nice, /* FUZIX system call 58 */ - _sigdisp /* FUZIX system call 59 */ + _sigdisp, /* FUZIX system call 59 */ + _flock, /* FUZIX system call 60 */ + _getpgrp, /* FUZIX system call 61 */ }; diff --git a/Kernel/syscall_proc.c b/Kernel/syscall_proc.c index 11894fd3..92692250 100644 --- a/Kernel/syscall_proc.c +++ b/Kernel/syscall_proc.c @@ -553,3 +553,13 @@ int16_t _setpgrp(void) udata.u_ptab->p_pgrp = udata.u_ptab->p_pid; return (0); } + +/******************************************* +getpgrp (void) Function 61 +********************************************/ + +int16_t _getpgrp(void) +{ + udata.u_ptab->p_pgrp = udata.u_ptab->p_pid; + return (0); +} -- 2.34.1