From: Alan Cox Date: Wed, 28 Oct 2015 11:32:19 +0000 (+0000) Subject: kernel: wire up the missing syscalls X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=59834a3e33f0db3f4d0ab8b8f097f6cc995ea80d;p=FUZIX.git kernel: wire up the missing syscalls --- diff --git a/Kernel/include/kdata.h b/Kernel/include/kdata.h index cb6d9464..e4fc7c4f 100644 --- a/Kernel/include/kdata.h +++ b/Kernel/include/kdata.h @@ -83,7 +83,7 @@ struct runload { extern struct runload loadavg[]; // the system call dispatch table -#define FUZIX_SYSCALL_COUNT 63 +#define FUZIX_SYSCALL_COUNT 66 typedef arg_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 87d7a6f4..210141a4 100644 --- a/Kernel/include/kernel.h +++ b/Kernel/include/kernel.h @@ -891,18 +891,21 @@ extern arg_t _fcntl(void); /* FUZIX system call 47 */ extern arg_t _fchdir(void); /* FUZIX system call 48 */ extern arg_t _fchmod(void); /* FUZIX system call 49 */ extern arg_t _fchown(void); /* FUZIX system call 50 */ -extern arg_t _mkdir(void); /* FUZIX system call 51 */ +extern arg_t _mkdir(void); /* FUZIX system call 51 */ extern arg_t _rmdir(void); /* FUZIX system call 52 */ -extern arg_t _setpgrp(void); /* FUZIX system call 53 */ -extern arg_t _uname(void); /* FUZIX system call 54 */ -extern arg_t _waitpid(void); /* FUZIX system call 55 */ -extern arg_t _profil(void); /* FUZIX system call 56 */ -extern arg_t _uadmin(void); /* FUZIX system call 57 */ +extern arg_t _setpgrp(void); /* FUZIX system call 53 */ +extern arg_t _uname(void); /* FUZIX system call 54 */ +extern arg_t _waitpid(void); /* FUZIX system call 55 */ +extern arg_t _profil(void); /* FUZIX system call 56 */ +extern arg_t _uadmin(void); /* FUZIX system call 57 */ extern arg_t _nice(void); /* FUZIX system call 58 */ -extern arg_t _sigdisp(void); /* FUZIX system call 59 */ -extern arg_t _flock(void); /* FUZIX system call 60 */ -extern arg_t _getpgrp(void); /* FUZIX system call 61 */ +extern arg_t _sigdisp(void); /* FUZIX system call 59 */ +extern arg_t _flock(void); /* FUZIX system call 60 */ +extern arg_t _getpgrp(void); /* FUZIX system call 61 */ extern arg_t _sched_yield(void); /* FUZIX system call 62 */ +extern arg_t _acct(void); /* FUZIX system call 63 */ +extern arg_t _memalloc(void); /* FUZIX system call 64 */ +extern arg_t _memfree(void); /* FUZIX system call 65 */ #if defined(CONFIG_32BIT) #include "kernel32.h" diff --git a/Kernel/include/kernel32.h b/Kernel/include/kernel32.h index bbac36be..dbac219f 100644 --- a/Kernel/include/kernel32.h +++ b/Kernel/include/kernel32.h @@ -17,8 +17,6 @@ extern unsigned long kmemused(void); extern void pagemap_switch(ptptr p); extern void *pagemap_base(void); #define PROGLOAD (uint32_t)pagemap_base() -extern arg_t _memalloc(void); -extern arg_t _memfree(void); extern uint32_t ugetl(void *uaddr, int *err); extern int uputl(uint32_t val, void *uaddr); diff --git a/Kernel/include/syscall_name.h b/Kernel/include/syscall_name.h index ba575c68..b2090587 100644 --- a/Kernel/include/syscall_name.h +++ b/Kernel/include/syscall_name.h @@ -1,4 +1,4 @@ -#define NR_SYSCALL 63 +#define NR_SYSCALL 66 #define VARARGS -1 @@ -66,6 +66,9 @@ char *syscall_name[NR_SYSCALL] = { "flock", "getpgrp", "yield", + "acct", + "memalloc", + "memfree", }; int syscall_args[NR_SYSCALL] = { @@ -132,4 +135,7 @@ int syscall_args[NR_SYSCALL] = { 2, //flock 0, //getpgrp 0, //yield + 1, //act + 1, //memalloc + 1, //memfree }; diff --git a/Kernel/kdata.c b/Kernel/kdata.c index 8542ec8e..98ec535e 100644 --- a/Kernel/kdata.c +++ b/Kernel/kdata.c @@ -97,4 +97,7 @@ const syscall_t syscall_dispatch[FUZIX_SYSCALL_COUNT] = { _flock, /* FUZIX system call 60 */ _getpgrp, /* FUZIX system call 61 */ _sched_yield, /* FUZIX system call 62 */ + _acct, /* FUZIX system call 63 */ + _memalloc, /* FUZIX system call 64 */ + _memfree, /* FUZIX system call 65 */ };