Files
MentOS/doc/syscall.md
T
Florian Fischer ce99aff26b doc: update the implemented syscalls
Fix the listed source files for implemented syscalls and remove
the files for not implemented ones.
2024-02-29 15:48:27 +01:00

36 KiB

System Call

Legenda

The first column of the table represent the implementation status, specifically:

  1. Implemented
  2. Tested X. Obsolete

If the column is empty it means that it's not implemented yet.

Implementation Status

 S | EAX | Name                       | Source                      | EBX                      | ECX                          | EDX                     | ESX             | EDI              |
---+-----+----------------------------+-----------------------------+--------------------------+------------------------------+-------------------------+-----------------+------------------|
 2 | 1   | sys_exit                   | process/scheduler.c         | int                      | -                            | -                       | -               | -                |
 2 | 2   | sys_fork                   | process/process.c           | struct pt_regs           | -                            | -                       | -               | -                |
 2 | 3   | sys_read                   | fs/read_write.c             | unsigned int             | char *                       | size_t                  | -               | -                |
 2 | 4   | sys_write                  | fs/read_write.c             | unsigned int             | const char *                 | size_t                  | -               | -                |
 2 | 5   | sys_open                   | fs/open.c                   | const char *             | int                          | int                     | -               | -                |
 2 | 6   | sys_close                  | fs/open.c                   | int                      | -                            | -                       | -               | -                |
 2 | 7   | sys_waitpid                | process/scheduler.c         | pid_t                    | unsigned int *               | int                     | -               | -                |
 2 | 8   | sys_creat                  | fs/namei.c                  | const char *             | int                          | -                       | -               | -                |
   | 9   | sys_link                   |                             | const char *             | const char *                 | -                       | -               | -                |
 2 | 10  | sys_unlink                 | fs/namei.c                  | const char *             | -                            | -                       | -               | -                |
 2 | 11  | sys_execve                 | process/process.c           | struct pt_regs           | -                            | -                       | -               | -                |
 2 | 12  | sys_chdir                  | process/process.c           | const char *             | -                            | -                       | -               | -                |
 2 | 13  | sys_time                   | klib/time.c                 | int *                    | -                            | -                       | -               | -                |
   | 14  | sys_mknod                  |                             | const char *             | int                          | dev_t                   | -               | -                |
   | 15  | sys_chmod                  |                             | const char *             | mode_t                       | -                       | -               | -                |
   | 16  | sys_lchown                 |                             | const char *             | uid_t                        | gid_t                   | -               | -                |
 2 | 18  | sys_stat                   | fs/stat.c                   | char *                   | struct __old_kernel_stat *   | -                       | -               | -                |
 2 | 19  | sys_lseek                  | fs/read_write.c             | unsigned int             | off_t                        | unsigned int            | -               | -                |
 2 | 20  | sys_getpid                 | process/scheduler.c         | -                        | -                            | -                       | -               | -                |
   | 21  | sys_mount                  |                             | char *                   | char *                       | char *                  | -               | -                |
   | 22  | sys_oldumount              |                             | char *                   | -                            | -                       | -               | -                |
 2 | 23  | sys_setuid                 | process/scheduler.c         | uid_t                    | -                            | -                       | -               | -                |
 2 | 24  | sys_getuid                 | process/scheduler.c         | -                        | -                            | -                       | -               | -                |
   | 25  | sys_stime                  |                             | int *                    | -                            | -                       | -               | -                |
   | 26  | sys_ptrace                 |                             | long                     | long                         | long                    | long            | -                |
 2 | 27  | sys_alarm                  | hardware/timer.c            | unsigned int             | -                            | -                       | -               | -                |
 2 | 28  | sys_fstat                  | fs/stat.c                   | unsigned int             | struct __old_kernel_stat *   | -                       | -               | -                |
   | 29  | sys_pause                  |                             | -                        | -                            | -                       | -               | -                |
   | 30  | sys_utime                  |                             | char *                   | struct utimbuf *             | -                       | -               | -                |
   | 33  | sys_access                 |                             | const char *             | int                          | -                       | -               | -                |
 1 | 34  | sys_nice                   | process/scheduler.c         | int                      | -                            | -                       | -               | -                |
   | 36  | sys_sync                   |                             | -                        | -                            | -                       | -               | -                |
 1 | 37  | sys_kill                   | system/signal.c             | int                      | int                          | -                       | -               | -                |
   | 38  | sys_rename                 |                             | const char *             | const char *                 | -                       | -               | -                |
 2 | 39  | sys_mkdir                  | fs/namei.c                  | const char *             | int                          | -                       | -               | -                |
 2 | 40  | sys_rmdir                  | fs/namei.c                  | const char *             | -                            | -                       | -               | -                |
   | 41  | sys_dup                    |                             | unsigned int             | -                            | -                       | -               | -                |
   | 42  | sys_pipe                   |                             | unsigned long *          | -                            | -                       | -               | -                |
   | 43  | sys_times                  |                             | struct tms *             | -                            | -                       | -               | -                |
 2 | 45  | sys_brk                    | mem/kheap.c                 | unsigned long            | -                            | -                       | -               | -                |
 2 | 46  | sys_setgid                 | process/scheduler.c         | gid_t                    | -                            | -                       | -               | -                |
 2 | 47  | sys_getgid                 | process/scheduler.c         | -                        | -                            | -                       | -               | -                |
 1 | 48  | sys_signal                 | system/signal.c             | int                      | __sighandler_t               | -                       | -               | -                |
   | 49  | sys_geteuid                |                             | -                        | -                            | -                       | -               | -                |
   | 50  | sys_getegid                |                             | -                        | -                            | -                       | -               | -                |
   | 51  | sys_acct                   |                             | const char *             | -                            | -                       | -               | -                |
   | 52  | sys_umount                 |                             | char *                   | int                          | -                       | -               | -                |
 1 | 54  | sys_ioctl                  | fs/ioctl.c                  | unsigned int             | unsigned int                 | unsigned long           | -               | -                |
   | 55  | sys_fcntl                  |                             | unsigned int             | unsigned int                 | unsigned long           | -               | -                |
 2 | 57  | sys_setpgid                | process/scheduler.c         | pid_t                    | pid_t                        | -                       | -               | -                |
   | 59  | sys_olduname               |                             | struct oldold_utsname *  | -                            | -                       | -               | -                |
   | 60  | sys_umask                  |                             | int                      | -                            | -                       | -               | -                |
   | 61  | sys_chroot                 |                             | const char *             | -                            | -                       | -               | -                |
   | 62  | sys_ustat                  |                             | dev_t                    | struct ustat *               | -                       | -               | -                |
   | 63  | sys_dup2                   |                             | unsigned int             | unsigned int                 | -                       | -               | -                |
 2 | 64  | sys_getppid                | process/scheduler.c         | -                        | -                            | -                       | -               | -                |
   | 65  | sys_getpgrp                |                             | -                        | -                            | -                       | -               | -                |
 2 | 66  | sys_setsid                 | process/scheduler.c         | -                        | -                            | -                       | -               | -                |
 1 | 67  | sys_sigaction              | system/signal.c             | int                      | const struct old_sigaction * | struct old_sigaction *  | -               | -                |
 X | 68  | sys_sgetmask               |                             | -                        | -                            | -                       | -               | -                |
 X | 69  | sys_ssetmask               |                             | int                      | -                            | -                       | -               | -                |
   | 70  | sys_setreuid               |                             | uid_t                    | uid_t                        | -                       | -               | -                |
   | 71  | sys_setregid               |                             | gid_t                    | gid_t                        | -                       | -               | -                |
   | 72  | sys_sigsuspend             |                             | int                      | int                          | old_sigset_t            | -               | -                |
   | 73  | sys_sigpending             |                             | old_sigset_t *           | -                            | -                       | -               | -                |
   | 74  | sys_sethostname            |                             | char *                   | int                          | -                       | -               | -                |
   | 75  | sys_setrlimit              |                             | unsigned int             | struct rlimit *              | -                       | -               | -                |
   | 76  | sys_getrlimit              |                             | unsigned int             | struct rlimit *              | -                       | -               | -                |
   | 77  | sys_getrusage              |                             | int                      | struct rusage *              | -                       | -               | -                |
   | 78  | sys_gettimeofday           |                             | struct timeval *         | struct timezone *            | -                       | -               | -                |
   | 79  | sys_settimeofday           |                             | struct timeval *         | struct timezone *            | -                       | -               | -                |
   | 80  | sys_getgroups              |                             | int                      | gid_t *                      | -                       | -               | -                |
   | 81  | sys_setgroups              |                             | int                      | gid_t *                      | -                       | -               | -                |
   | 83  | sys_symlink                |                             | const char *             | const char *                 | -                       | -               | -                |
   | 84  | sys_lstat                  |                             | char *                   | struct __old_kernel_stat *   | -                       | -               | -                |
   | 85  | sys_readlink               |                             | const char *             | char *                       | int                     | -               | -                |
   | 86  | sys_uselib                 |                             | const char *             | -                            | -                       | -               | -                |
   | 87  | sys_swapon                 |                             | const char *             | int                          | -                       | -               | -                |
 1 | 88  | sys_reboot                 | kernel/sys.c                | int                      | int                          | int                     | void *          | -                |
   | 89  | old_readdir                |                             | unsigned int             | void *                       | unsigned int            | -               | -                |
   | 90  | old_mmap                   |                             | struct mmap_arg_struct * | -                            | -                       | -               | -                |
   | 91  | sys_munmap                 |                             | unsigned long            | size_t                       | -                       | -               | -                |
   | 92  | sys_truncate               |                             | const char *             | unsigned long                | -                       | -               | -                |
   | 93  | sys_ftruncate              |                             | unsigned int             | unsigned long                | -                       | -               | -                |
   | 94  | sys_fchmod                 |                             | unsigned int             | mode_t                       | -                       | -               | -                |
   | 95  | sys_fchown                 |                             | unsigned int             | uid_t                        | gid_t                   | -               | -                |
   | 96  | sys_getpriority            |                             | int                      | int                          | -                       | -               | -                |
   | 97  | sys_setpriority            |                             | int                      | int                          | int                     | -               | -                |
   | 99  | sys_statfs                 |                             | const char *             | struct statfs *              | -                       | -               | -                |
   | 100 | sys_fstatfs                |                             | unsigned int             | struct statfs *              | -                       | -               | -                |
   | 101 | sys_ioperm                 |                             | unsigned long            | unsigned long                | int                     | -               | -                |
   | 102 | sys_socketcall             |                             | int                      | unsigned long *              | -                       | -               | -                |
 1 | 103 | sys_syslog                 | system/printk.c             | int                      | char *                       | int                     | -               | -                |
 1 | 104 | sys_setitimer              | hardware/timer.c            | int                      | struct itimerval *           | struct itimerval *      | -               | -                |
 1 | 105 | sys_getitimer              | hardware/timer.c            | int                      | struct itimerval *           | -                       | -               | -                |
   | 106 | sys_newstat                |                             | char *                   | struct stat *                | -                       | -               | -                |
   | 107 | sys_newlstat               |                             | char *                   | struct stat *                | -                       | -               | -                |
   | 108 | sys_newfstat               |                             | unsigned int             | struct stat *                | -                       | -               | -                |
 1 | 109 | sys_uname                  | sys/utsname.c               | struct old_utsname *     | -                            | -                       | -               | -                |
   | 110 | sys_iopl                   |                             | unsigned long            | -                            | -                       | -               | -                |
   | 111 | sys_vhangup                |                             | -                        | -                            | -                       | -               | -                |
   | 112 | sys_idle                   |                             | -                        | -                            | -                       | -               | -                |
   | 113 | sys_vm86old                |                             | unsigned long            | struct vm86plus_struct *     | -                       | -               | -                |
   | 114 | sys_wait4                  |                             | pid_t                    | unsigned long *              | int options             | struct rusage * | -                |
   | 115 | sys_swapoff                |                             | const char *             | -                            | -                       | -               | -                |
   | 116 | sys_sysinfo                |                             | struct sysinfo *         | -                            | -                       | -               | -                |
 * | 117 | sys_ipc(*Note)             |                             | uint                     | int                          | int                     | int             | void *           |
   | 118 | sys_fsync                  |                             | unsigned int             | -                            | -                       | -               | -                |
 1 | 119 | sys_sigreturn              | system/signal.c             | unsigned long            | -                            | -                       | -               | -                |
   | 120 | sys_clone                  |                             | struct pt_regs           | -                            | -                       | -               | -                |
   | 121 | sys_setdomainname          |                             | char *                   | int                          | -                       | -               | -                |
   | 122 | sys_newuname               |                             | struct new_utsname *     | -                            | -                       | -               | -                |
   | 123 | sys_modify_ldt             |                             | int                      | void *                       | unsigned long           | -               | -                |
   | 124 | sys_adjtimex               |                             | struct timex *           | -                            | -                       | -               | -                |
   | 125 | sys_mprotect               |                             | unsigned long            | size_t                       | unsigned long           | -               | -                |
 1 | 126 | sys_sigprocmask            | system/signal.c             | int                      | old_sigset_t *               | old_sigset_t *          | -               | -                |
   | 127 | sys_create_module          |                             | const char *             | size_t                       | -                       | -               | -                |
   | 128 | sys_init_module            |                             | const char *             | struct module *              | -                       | -               | -                |
   | 129 | sys_delete_module          |                             | const char *             | -                            | -                       | -               | -                |
   | 130 | sys_get_kernel_syms        |                             | struct kernel_sym *      | -                            | -                       | -               | -                |
   | 131 | sys_quotactl               |                             | int                      | const char *                 | int                     | caddr_t         | -                |
   | 132 | sys_getpgid                |                             | pid_t                    | -                            | -                       | -               | -                |
 1 | 133 | sys_fchdir                 | process/process.c           | unsigned int             | -                            | -                       | -               | -                |
   | 134 | sys_bdflush                |                             | int                      | long                         | -                       | -               | -                |
   | 135 | sys_sysfs                  |                             | int                      | unsigned long                | unsigned long           | -               | -                |
   | 136 | sys_personality            |                             | unsigned long            | -                            | -                       | -               | -                |
   | 138 | sys_setfsuid               |                             | uid_t                    | -                            | -                       | -               | -                |
   | 139 | sys_setfsgid               |                             | gid_t                    | -                            | -                       | -               | -                |
   | 140 | sys_llseek                 |                             | unsigned int             | unsigned long                | unsigned long           | loff_t *        | unsigned int     |
 2 | 141 | sys_getdents               | fs/readdir.c                | unsigned int             | void *                       | unsigned int            | -               | -                |
   | 142 | sys_select                 |                             | int                      | fd_set *                     | fd_set *                | fd_set *        | struct timeval * |
   | 143 | sys_flock                  |                             | unsigned int             | unsigned int                 | -                       | -               | -                |
   | 144 | sys_msync                  |                             | unsigned long            | size_t                       | int                     | -               | -                |
   | 145 | sys_readv                  |                             | unsigned long            | const struct iovec *         | unsigned long           | -               | -                |
   | 146 | sys_writev                 |                             | unsigned long            | const struct iovec *         | unsigned long           | -               | -                |
 1 | 147 | sys_getsid                 | process/scheduler.c         | pid_t                    | -                            | -                       | -               | -                |
   | 148 | sys_fdatasync              |                             | unsigned int             | -                            | -                       | -               | -                |
   | 149 | sys_sysctl                 |                             | struct __sysctl_args *   | -                            | -                       | -               | -                |
   | 150 | sys_mlock                  |                             | unsigned long            | size_t                       | -                       | -               | -                |
   | 151 | sys_munlock                |                             | unsigned long            | size_t                       | -                       | -               | -                |
   | 152 | sys_mlockall               |                             | int                      | -                            | -                       | -               | -                |
   | 153 | sys_munlockall             |                             | -                        | -                            | -                       | -               | -                |
 1 | 154 | sys_sched_setparam         | process/scheduler.c         | pid_t                    | struct sched_param *         | -                       | -               | -                |
 1 | 155 | sys_sched_getparam         | process/scheduler.c         | pid_t                    | struct sched_param *         | -                       | -               | -                |
   | 156 | sys_sched_setscheduler     |                             | pid_t                    | int                          | struct sched_param *    | -               | -                |
   | 157 | sys_sched_getscheduler     |                             | pid_t                    | -                            | -                       | -               | -                |
   | 158 | sys_sched_yield            |                             | -                        | -                            | -                       | -               | -                |
   | 159 | sys_sched_get_priority_max |                             | int                      | -                            | -                       | -               | -                |
   | 160 | sys_sched_get_priority_min |                             | int                      | -                            | -                       | -               | -                |
   | 161 | sys_sched_rr_get_interval  |                             | pid_t                    | struct timespec *            | -                       | -               | -                |
 1 | 162 | sys_nanosleep              | hardware/timer.c            | struct timespec *        | struct timespec *            | -                       | -               | -                |
   | 163 | sys_mremap                 |                             | unsigned long            | unsigned long                | unsigned long           | unsigned long   | -                |
   | 164 | sys_setresuid              |                             | uid_t                    | uid_t                        | uid_t                   | -               | -                |
   | 165 | sys_getresuid              |                             | uid_t *                  | uid_t *                      | uid_t *                 | -               | -                |
   | 166 | sys_vm86                   |                             | struct vm86_struct *     | -                            | -                       | -               | -                |
   | 167 | sys_query_module           |                             | const char *             | int                          | char *                  | size_t          | size_t *         |
   | 168 | sys_poll                   |                             | struct pollfd *          | unsigned int                 | long                    | -               | -                |
   | 169 | sys_nfsservctl             |                             | int                      | void *                       | void *                  | -               | -                |
   | 170 | sys_setresgid              |                             | gid_t                    | gid_t                        | gid_t                   | -               | -                |
   | 171 | sys_getresgid              |                             | gid_t *                  | gid_t *                      | gid_t *                 | -               | -                |
   | 172 | sys_prctl                  |                             | int                      | unsigned long                | unsigned long           | unsigned long   | unsigned long    |
   | 173 | sys_rt_sigreturn           |                             | unsigned long            | -                            | -                       | -               | -                |
   | 174 | sys_rt_sigaction           |                             | int                      | const struct sigaction *     | struct sigaction *      | size_t          | -                |
   | 175 | sys_rt_sigprocmask         |                             | int                      | sigset_t *                   | sigset_t *              | size_t          | -                |
   | 176 | sys_rt_sigpending          |                             | sigset_t *               | size_t                       | -                       | -               | -                |
   | 177 | sys_rt_sigtimedwait        |                             | const sigset_t *         | siginfo_t *                  | const struct timespec * | size_t          | -                |
   | 178 | sys_rt_sigqueueinfo        |                             | int                      | int                          | siginfo_t *             | -               | -                |
   | 179 | sys_rt_sigsuspend          |                             | sigset_t *               | size_t                       | -                       | -               | -                |
   | 180 | sys_pread                  |                             | unsigned int             | char *                       | size_t                  | loff_t          | -                |
   | 181 | sys_pwrite                 |                             | unsigned int             | const char *                 | size_t                  | loff_t          | -                |
   | 182 | sys_chown                  |                             | const char *             | uid_t                        | gid_t                   | -               | -                |
 1 | 183 | sys_getcwd                 | process/process.c           | char *                   | unsigned long                | -                       | -               | -                |
   | 184 | sys_capget                 |                             | cap_user_header_t        | cap_user_data_t              | -                       | -               | -                |
   | 185 | sys_capset                 |                             | cap_user_header_t        | const cap_user_data_t        | -                       | -               | -                |
   | 186 | sys_sigaltstack            |                             | const stack_t *          | stack_t *                    | -                       | -               | -                |
   | 187 | sys_sendfile               |                             | int                      | int                          | off_t *                 | size_t          | -                |
 2 | 188 | sys_waitperiod             | process/scheduler.c         |                          |                              |                         |                 |                  |
   | 189 | sys_msgctl                 |                             | int                      |                              |                         |                 |                  |
   | 190 | sys_msgget                 |                             |                          |                              |                         |                 |                  |
   | 191 | sys_msgrcv                 |                             |                          |                              |                         |                 |                  |
   | 192 | sys_msgsnd                 |                             |                          |                              |                         |                 |                  |
   | 193 | sys_semctl                 |                             |                          |                              |                         |                 |                  |
   | 194 | sys_semget                 |                             |                          |                              |                         |                 |                  |
   | 195 | sys_semop                  |                             |                          |                              |                         |                 |                  |
   | 196 | sys_shmat                  |                             |                          |                              |                         |                 |                  |
   | 197 | sys_shmctl                 |                             |                          |                              |                         |                 |                  |
   | 198 | sys_shmdt                  |                             |                          |                              |                         |                 |                  |
   | 199 | sys_shmget                 |                             |                          |                              |                         |                 |                  |