From e66909f76ffc172d3e64691a492f5a548e1d7b04 Mon Sep 17 00:00:00 2001 From: hinus Date: Fri, 6 Aug 2021 11:30:20 +0800 Subject: [PATCH] Title: Some unimplemented sys calls. Issue: https://gitee.com/hinus/linux_kernel_011/issues/I446CV Description: System calls unimplemented, such as break, ptrace. --- include/linux/sys.h | 42 +++++++++++++++++++++--------------------- kernel/sys.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 21 deletions(-) diff --git a/include/linux/sys.h b/include/linux/sys.h index 291b74a..14ab8c4 100644 --- a/include/linux/sys.h +++ b/include/linux/sys.h @@ -15,7 +15,7 @@ extern int sys_time(); //extern int sys_mknod(); extern int sys_chmod(); extern int sys_chown(); -//extern int sys_break(); +extern int sys_break(); //extern int sys_stat(); //extern int sys_lseek(); extern int sys_getpid(); @@ -24,37 +24,37 @@ extern int sys_getpid(); //extern int sys_setuid(); extern int sys_getuid(); //extern int sys_stime(); -//extern int sys_ptrace(); +extern int sys_ptrace(); //extern int sys_alarm(); extern int sys_fstat(); extern int sys_pause(); //extern int sys_utime(); -//extern int sys_stty(); -//extern int sys_gtty(); +extern int sys_stty(); +extern int sys_gtty(); //extern int sys_access(); extern int sys_nice(); -//extern int sys_ftime(); +extern int sys_ftime(); extern int sys_sync(); //extern int sys_kill(); -//extern int sys_rename(); +extern int sys_rename(); extern int sys_mkdir(); extern int sys_rmdir(); extern int sys_dup(); //extern int sys_pipe(); //extern int sys_times(); -//extern int sys_prof(); +extern int sys_prof(); extern int sys_brk(); //extern int sys_setgid(); extern int sys_getgid(); extern int sys_signal(); extern int sys_geteuid(); extern int sys_getegid(); -//extern int sys_acct(); -//extern int sys_phys(); -//extern int sys_lock(); +extern int sys_acct(); +extern int sys_phys(); +extern int sys_lock(); extern int sys_ioctl(); //extern int sys_fcntl(); -//extern int sys_mpx(); +extern int sys_mpx(); //extern int sys_setpgid(); extern int sys_ulimit(); //extern int sys_uname(); @@ -106,7 +106,7 @@ fn_ptr sys_call_table[] = { sys_chmod, sys_chown, - 0, //sys_break, + sys_break, 0, //sys_stat, 0, //sys_lseek, sys_getpid, @@ -116,28 +116,28 @@ fn_ptr sys_call_table[] = { 0, //sys_setuid, sys_getuid, 0, //sys_stime, - 0, //sys_ptrace, + sys_ptrace, 0, //sys_alarm, sys_fstat, sys_pause, 0, //sys_utime, - 0, //sys_stty, - 0, //sys_gtty, + sys_stty, + sys_gtty, 0, //sys_access, sys_nice, 0, //sys_ftime, sys_sync, 0, //sys_kill, - 0, //sys_rename, + sys_rename, sys_mkdir, sys_rmdir, sys_dup, 0, // sys_pipe, 0, // sys_times, - 0, // sys_prof, + sys_prof, sys_brk, 0, // sys_setgid, @@ -145,13 +145,13 @@ fn_ptr sys_call_table[] = { sys_signal, sys_geteuid, sys_getegid, - 0, // sys_acct, - 0, // sys_phys, + sys_acct, + sys_phys, - 0, // sys_lock, + sys_lock, sys_ioctl, 0, // sys_fcntl, - 0, // sys_mpx, + sys_mpx, 0, // sys_setpgid, sys_ulimit, diff --git a/kernel/sys.c b/kernel/sys.c index c853687..43297e2 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -7,6 +7,50 @@ #include #include +int sys_ftime() { + return -ENOSYS; +} + +int sys_break() { + return -ENOSYS; +} + +int sys_ptrace() { + return -ENOSYS; +} + +int sys_stty() { + return -ENOSYS; +} + +int sys_gtty() { + return -ENOSYS; +} + +int sys_prof() { + return -ENOSYS; +} + +int sys_rename() { + return -ENOSYS; +} + +int sys_acct() { + return -ENOSYS; +} + +int sys_phys() { + return -ENOSYS; +} + +int sys_lock() { + return -ENOSYS; +} + +int sys_mpx() { + return -ENOSYS; +} + int sys_time(long * tloc) { int i; i = CURRENT_TIME; -- Gitee