kernel: wire up the missing syscalls
authorAlan Cox <alan@etchedpixels.co.uk>
Wed, 28 Oct 2015 11:32:19 +0000 (11:32 +0000)
committerAlan Cox <alan@etchedpixels.co.uk>
Wed, 28 Oct 2015 11:32:19 +0000 (11:32 +0000)
Kernel/include/kdata.h
Kernel/include/kernel.h
Kernel/include/kernel32.h
Kernel/include/syscall_name.h
Kernel/kdata.c

index cb6d946..e4fc7c4 100644 (file)
@@ -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];
 
index 87d7a6f..210141a 100644 (file)
@@ -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"
index bbac36b..dbac219 100644 (file)
@@ -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);
 
index ba575c6..b209058 100644 (file)
@@ -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
 };
index 8542ec8..98ec535 100644 (file)
@@ -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 */
 };