Important! This post has been rendered obsolete by FreeBSD 15 System Calls Table.
A system call is the “tool” used by a software in the userspace to request a “service” to the kernel, the FreeBSD Operating System provides over 400 system calls. They are defined in syscalls.master, this file is processed by makesyscalls.sh or makesyscalls.lua to create init_sysent.c, syscall.h, and so on.
The system calls list has 576 entries (15: unimplemented, 55: nosys/lkmnosys, 43: compat and 72: old/obsolete) for 13-CURRENT at the time of writing. The entry point of a system call is sys_{name}, except syscall and __syscall described below.
This table is partially auto-generated by scanning init_sysent.c and manually filled, indeed its purpose is just a personal study of the FreeBSD kernel.
| Number | Name | Short Description | Implementation | 
|---|---|---|---|
| 0 | syscall | Indirect system call | kern/subr_syscall.c | 
| 1 | exit | Terminate the calling process | kern/kern_exit.c | 
| 2 | fork | Create a new process | kern/kern_fork.c | 
| 3 | read | Read input | kern/sys_generic.c | 
| 4 | write | Write output | kern/sys_generic.c | 
| 5 | open | Open or create a file for reading, writing or executing | kern/vfs_syscalls.c | 
| 6 | close | Delete a descriptor | kern/kern_descrip.c | 
| 7 | wait4 | Wait for processes to change status | kern/kern_exit.c | 
| 8 | [old] creat | ||
| 9 | link | Make a hard file link | kern/vfs_syscalls.c | 
| 10 | unlink | Remove directory entry | kern/vfs_syscalls.c | 
| 11 | [obsolete] execv | ||
| 12 | chdir | Change current working directory | kern/vfs_syscalls.c | 
| 13 | fchdir | Change current working directory | kern/vfs_syscalls.c | 
| 14 | [freebsd11] mknod | ||
| 15 | chmod | Change mode of file | kern/vfs_syscalls.c | 
| 16 | chown | Change owner and group of a file | kern/vfs_syscalls.c | 
| 17 | break | (no manual) | vm/vm_unix.c | 
| 18 | [freebsd4] getfsstat | ||
| 19 | [old] lseek | ||
| 20 | getpid | Get parent or calling process identification | kern/kern_prot.c | 
| 21 | mount | Mount or dismount a file system | kern/vfs_mount.c | 
| 22 | unmount | Mount or dismount a file system | kern/vfs_mount.c | 
| 23 | setuid | Set user and group ID | kern/kern_prot.c | 
| 24 | getuid | Get user identification | kern/kern_prot.c | 
| 25 | geteuid | Get user identification | kern/kern_prot.c | 
| 26 | ptrace | Process tracing and debugging | kern/sys_process.c | 
| 27 | recvmsg | Receive message(s) from a socket | kern/uipc_syscalls.c | 
| 28 | sendmsg | Send message(s) from a socket | kern/uipc_syscalls.c | 
| 29 | recvfrom | Receive message(s) from a socket | kern/uipc_syscalls.c | 
| 30 | accept | Accept a connection on a socket | kern/uipc_syscalls.c | 
| 31 | getpeername | Get name of connected peer | kern/uipc_syscalls.c | 
| 32 | getsockname | Get socket name | kern/uipc_syscalls.c | 
| 33 | access | Check accessibility of a file | kern/vfs_syscalls.c | 
| 34 | chflags | Set file flags | kern/vfs_syscalls.c | 
| 35 | fchflags | Set file flags | kern/vfs_syscalls.c | 
| 36 | sync | Schedule file system updates | kern/vfs_syscalls.c | 
| 37 | kill | Send signal to a process | kern/kern_sig.c | 
| 38 | [old] stat | ||
| 39 | getppid | Get parent or calling process identification | kern/kern_prot.c | 
| 40 | [old] lstat | ||
| 41 | dup | Duplicate an existing file descriptor | kern/kern_descrip.c | 
| 42 | [freebsd10] pipe | ||
| 43 | getegid | Get group process identification | kern/kern_prot.c | 
| 44 | profil | Control process profiling | kern/subr_prof.c | 
| 45 | ktrace | Process tracing | kern/kern_ktrace.c | 
| 46 | [old] sigaction | ||
| 47 | getgid | Get group process identification | kern/kern_prot.c | 
| 48 | [old] sigprocmask | ||
| 49 | getlogin | Get login name | kern/kern_prot.c | 
| 50 | setlogin | Set login name | kern/kern_prot.c | 
| 51 | acct | Enable or disable process accounting | kern/kern_acct.c | 
| 52 | [old] sigpending | ||
| 53 | sigaltstack | Set and/or get signal stack context | kern/kern_sig.c | 
| 54 | ioctl | Control device | kern/sys_generic.c | 
| 55 | reboot | Reboot system or halt processor | kern/kern_shutdown.c | 
| 56 | revoke | Revoke file access | kern/vfs_syscalls.c | 
| 57 | symlink | Make symbolic link to a file | kern/vfs_syscalls.c | 
| 58 | readlink | Read value of a symbolic link | kern/vfs_syscalls.c | 
| 59 | execve | Execute a file | kern/kern_exec.c | 
| 60 | umask | Set file creation mode mask | kern/vfs_syscalls.c | 
| 61 | chroot | Change root directory | kern/vfs_syscalls.c | 
| 62 | [old] fstat | ||
| 63 | [old] getkerninfo | ||
| 64 | [old] getpagesize | ||
| 65 | msync | Synchronize a mapped region | vm/vm_mmap.c | 
| 66 | vfork | Create a new process without copying the address space | kern/kern_fork.c | 
| 67 | [obsolete] vread | ||
| 68 | [obsolete] vwrite | ||
| 69 | sbrk | change data segment size - EOPNOTSUPP | vm/vm_mmap.c | 
| 70 | sstk | EOPNOTSUPP | vm/vm_mmap.c | 
| 71 | [old] mmap | ||
| 72 | [freebsd11] vadvise | ||
| 73 | munmap | Remove a mapping | vm/vm_mmap.c | 
| 74 | mprotect | Control the protection of pages | vm/vm_mmap.c | 
| 75 | madvise | Give advice about use of memory | vm/vm_mmap.c | 
| 76 | [obsolete] vhangup | ||
| 77 | [obsolete] vlimit | ||
| 78 | mincore | Determine residency of memory pages | vm/vm_mmap.c | 
| 79 | getgroups | Get group access list | kern/kern_prot.c | 
| 80 | setgroups | Set group access list | kern/kern_prot.c | 
| 81 | getpgrp | Get process group | kern/kern_prot.c | 
| 82 | setpgid | Set process group | kern/kern_prot.c | 
| 83 | setitimer | Set value of interval timer | kern/kern_time.c | 
| 84 | [old] wait | ||
| 85 | swapon | Control devices for interleaved paging/swapping | vm/swap_pager.c | 
| 86 | getitimer | Get value of interval timer | kern/kern_time.c | 
| 87 | [old] gethostname | ||
| 88 | [old] sethostname | ||
| 89 | getdtablesize | Get file descriptor limit | kern/kern_descrip.c | 
| 90 | dup2 | Duplicate an existing file descriptor | kern/kern_descrip.c | 
| 91 | [unimplemented] getdopt | ||
| 92 | fcntl | File control | kern/kern_descrip.c | 
| 93 | select | Synchronous I/O multiplexing | kern/sys_generic.c | 
| 94 | [unimplemented] setdopt | ||
| 95 | fsync | Synchronise changes to a file | kern/vfs_syscalls.c | 
| 96 | setpriority | Set program scheduling priority | kern/kern_resource.c | 
| 97 | socket | Create an endpoint for communication | kern/uipc_syscalls.c | 
| 98 | connect | Initiate a connection on a socket | kern/uipc_syscalls.c | 
| 99 | [old] accept | ||
| 100 | getpriority | Get program scheduling priority | kern/kern_resource.c | 
| 101 | [old] send | ||
| 102 | [old] recv | ||
| 103 | [old] sigreturn | ||
| 104 | bind | Assign a local protocol address to a socket | kern/uipc_syscalls.c | 
| 105 | setsockopt | Get and set options on sockets | kern/uipc_syscalls.c | 
| 106 | listen | Listen for connections on a socket | kern/uipc_syscalls.c | 
| 107 | [obsolete] vtimes | ||
| 108 | [old] sigvec | ||
| 109 | [old] sigblock | ||
| 110 | [old] sigsetmask | ||
| 111 | [old] sigsuspend | ||
| 112 | [old] sigstack | ||
| 113 | [old] recvmsg | ||
| 114 | [old] sendmsg | ||
| 115 | [obsolete] vtrace | ||
| 116 | gettimeofday | Get date and time | kern/kern_time.c | 
| 117 | getrusage | Get information about resource utilization | kern/kern_resource.c | 
| 118 | getsockopt | Get and set options on sockets | kern/uipc_syscalls.c | 
| 119 | [unimplemented] resuba | ||
| 120 | readv | Read input | kern/sys_generic.c | 
| 121 | writev | Write output | kern/sys_generic.c | 
| 122 | settimeofday | Set date and time | kern/kern_time.c | 
| 123 | fchown | Change owner and group of a file | kern/vfs_syscalls.c | 
| 124 | fchmod | Change mode of file | kern/vfs_syscalls.c | 
| 125 | [old] recvfrom | ||
| 126 | setreuid | Set real and effective user ID’s | kern/kern_prot.c | 
| 127 | setregid | Set real and effective group ID | kern/kern_prot.c | 
| 128 | rename | Change the name of a file | kern/vfs_syscalls.c | 
| 129 | [old] truncate | ||
| 130 | [old] ftruncate | ||
| 131 | flock | Apply or remove an advisory lock on an open file | kern/kern_descrip.c | 
| 132 | mkfifo | Make a fifo file | kern/vfs_syscalls.c | 
| 133 | sendto | Send message(s) from a socket | kern/uipc_syscalls.c | 
| 134 | shutdown | Disable sends and/or receives on a socket | kern/uipc_syscalls.c | 
| 135 | socketpair | Create a pair of connected sockets | kern/uipc_syscalls.c | 
| 136 | mkdir | Make a directory file | kern/vfs_syscalls.c | 
| 137 | rmdir | Remove a directory file | kern/vfs_syscalls.c | 
| 138 | utimes | Set file access and modification times | kern/vfs_syscalls.c | 
| 139 | [obsolete] 4.2 sigreturn | ||
| 140 | adjtime | Correct the time to allow synchronization of the system clock | kern/kern_ntptime.c | 
| 141 | [old] getpeername | ||
| 142 | [old] gethostid | ||
| 143 | [old] sethostid | ||
| 144 | [old] getrlimit | ||
| 145 | [old] setrlimit | ||
| 146 | [old] killpg | ||
| 147 | setsid | Create session and set process group ID | kern/kern_prot.c | 
| 148 | quotactl | Manipulate file system quotas | kern/vfs_syscalls.c | 
| 149 | [old] quota | ||
| 150 | [old] getsockname | ||
| 151 | [unimplemented] sem_lock | ||
| 152 | [unimplemented] sem_wakeup | ||
| 153 | [unimplemented] asyncdaemon | ||
| 154 | nlm_syscall | (no manual) | nlm/nlm_prot_impl.c | 
| 155 | nfssvc | NFS services | nfs/nfs_nfssvc.c | 
| 156 | [old] getdirentries | ||
| 157 | [freebsd4] statfs | ||
| 158 | [freebsd4] fstatfs | ||
| 159 | [nosys] | ||
| 160 | lgetfh | Get file handle | kern/vfs_syscalls.c | 
| 161 | getfh | Get file handle | kern/vfs_syscalls.c | 
| 162 | [freebsd4] getdomainname | ||
| 163 | [freebsd4] setdomainname | ||
| 164 | [freebsd4] uname | ||
| 165 | sysarch | Architecture-dependent system call | sys/ {arch}/ {arch}/ sys_machdep.c | 
| 166 | rtprio | Examine or modify realtime or idle priority | kern/kern_resource.c | 
| 167 | [nosys] | ||
| 168 | [nosys] | ||
| 169 | semsys | (no manual) | kern/sysv_sem.c | 
| 170 | msgsys | (no manual) | kern/sysv_msg.c | 
| 171 | shmsys | (no manual) | kern/sysv_shm.c | 
| 172 | [nosys] | ||
| 173 | [freebsd6] pread | ||
| 174 | [freebsd6] pwrite | ||
| 175 | setfib | Set the default FIB (routing table) for the calling process | net/route/route_tables.c | 
| 176 | ntp_adjtime | Network Time Protocol (NTP) daemon interface | kern/kern_ntptime.c | 
| 177 | [unimplemented] sfork | ||
| 178 | [unimplemented] getdescriptor | ||
| 179 | [unimplemented] setdescriptor | ||
| 180 | [nosys] | ||
| 181 | setgid | Set user and group ID | kern/kern_prot.c | 
| 182 | setegid | Set user and group ID | kern/kern_prot.c | 
| 183 | seteuid | Set user and group ID | kern/kern_prot.c | 
| 184 | [obsolete] lfs_bmapv | ||
| 185 | [obsolete] lfs_markv | ||
| 186 | [obsolete] lfs_segclean | ||
| 187 | [obsolete] lfs_segwait | ||
| 188 | [freebsd11] stat | ||
| 189 | [freebsd11] fstat | ||
| 190 | [freebsd11] lstat | ||
| 191 | pathconf | Get configurable pathname variables | kern/vfs_syscalls.c | 
| 192 | fpathconf | Get configurable pathname variables | kern/kern_descrip.c | 
| 193 | [nosys] | ||
| 194 | getrlimit | Control maximum system resource consumption | kern/kern_resource.c | 
| 195 | setrlimit | Control maximum system resource consumption | kern/kern_resource.c | 
| 196 | [freebsd11] getdirentries | ||
| 197 | [freebsd6] mmap | ||
| 198 | __syscall | Indirect system call for 64-bit args | kern/subr_syscall.c | 
| 199 | [freebsd6] lseek | ||
| 200 | [freebsd6] truncate | ||
| 201 | [freebsd6] ftruncate | ||
| 202 | sysctl | Get or set system state | kern/kern_sysctl.c | 
| 203 | mlock | Lock physical pages in memory | vm/vm_mmap.c | 
| 204 | munlock | Unlock physical pages in memory | vm/vm_mmap.c | 
| 205 | undelete | Attempt to recover a deleted file | kern/vfs_syscalls.c | 
| 206 | futimes | Set file access and modification | kern/vfs_syscalls.c | 
| 207 | getpgid | Get process group | kern/kern_prot.c | 
| 208 | [nosys] | ||
| 209 | poll | Synchronous I/O multiplexing | kern/sys_generic.c | 
| 210 | [lkmnosys] | ||
| 211 | [lkmnosys] | ||
| 212 | [lkmnosys] | ||
| 213 | [lkmnosys] | ||
| 214 | [lkmnosys] | ||
| 215 | [lkmnosys] | ||
| 216 | [lkmnosys] | ||
| 217 | [lkmnosys] | ||
| 218 | [lkmnosys] | ||
| 219 | [lkmnosys] | ||
| 220 | [freebsd7] __semctl | ||
| 221 | semget | Obtain a semaphore id | kern/sysv_sem.c | 
| 222 | semop | Atomic array of operations on a semaphore set | kern/sysv_sem.c | 
| 223 | [obsolete] semconfig | ||
| 224 | [freebsd7] msgctl | ||
| 225 | msgget | Get message queue | kern/sysv_msg.c | 
| 226 | msgsnd | Send a message to a message queue | kern/sysv_msg.c | 
| 227 | msgrcv | Receive a message from a message queue | kern/sysv_msg.c | 
| 228 | shmat | Attach or detach shared memory | kern/sysv_shm.c | 
| 229 | [freebsd7] shmctl | ||
| 230 | shmdt | Attach or detach shared memory | kern/sysv_shm.c | 
| 231 | shmget | Obtain a shared memory identifier | kern/sysv_shm.c | 
| 232 | clock_gettime | Get date and time | kern/kern_time.c | 
| 233 | clock_settime | Set date and time | kern/kern_time.c | 
| 234 | clock_getres | Calibrate date and time | kern/kern_time.c | 
| 235 | ktimer_create | (no manual) | kern/kern_time.c | 
| 236 | ktimer_delete | (no manual) | kern/kern_time.c | 
| 237 | ktimer_settime | (no manual) | kern/kern_time.c | 
| 238 | ktimer_gettime | (no manual) | kern/kern_time.c | 
| 239 | ktimer_getoverrun | (no manual) | kern/kern_time.c | 
| 240 | nanosleep | High resolution sleep | kern/kern_time.c | 
| 241 | ffclock_getcounter | Retrieve feed-forward counter | kern/kern_ffclock.c | 
| 242 | ffclock_setestimate | Set feed-forward clock estimates | kern/kern_ffclock.c | 
| 243 | ffclock_getestimate | Get feed-forward clock estimates | kern/kern_ffclock.c | 
| 244 | clock_nanosleep | High resolution sleep | kern/kern_time.c | 
| 245 | [nosys] | ||
| 246 | [nosys] | ||
| 247 | clock_getcpuclockid2 | (no manual) | kern/kern_time.c | 
| 248 | ntp_gettime | Network Time Protocol (NTP) daemon interface system calls | kern/kern_ntptime.c | 
| 249 | [nosys] | ||
| 250 | minherit | Control the inheritance of pages | vm/vm_mmap.c | 
| 251 | rfork | Manipulate process resources | kern/kern_fork.c | 
| 252 | [obsolete] openbsd_poll | ||
| 253 | issetugid | Is current process tainted by uid or gid changes | kern/kern_prot.c | 
| 254 | lchown | Change owner and group of a file | kern/vfs_syscalls.c | 
| 255 | aio_read | Asynchronous read from a file (realtime) | kern/vfs_aio.c | 
| 256 | aio_write | Asynchronous write to a file (realtime) | kern/vfs_aio.c | 
| 257 | lio_listio | List directed I/O (realtime) | kern/vfs_aio.c | 
| 258 | [nosys] | ||
| 259 | [nosys] | ||
| 260 | [nosys] | ||
| 261 | [nosys] | ||
| 262 | [nosys] | ||
| 263 | [nosys] | ||
| 264 | [nosys] | ||
| 265 | [nosys] | ||
| 266 | [nosys] | ||
| 267 | [nosys] | ||
| 268 | [nosys] | ||
| 269 | [nosys] | ||
| 270 | [nosys] | ||
| 271 | [nosys] | ||
| 272 | [freebsd11] getdents | ||
| 273 | [nosys] | ||
| 274 | lchmod | Change mode of file | kern/vfs_syscalls.c | 
| 275 | [obsolete] netbsd_lchown | ||
| 276 | lutimes | Set file access and modification times | kern/vfs_syscalls.c | 
| 277 | [obsolete] netbsd_msync | ||
| 278 | [freebsd11] nstat | ||
| 279 | [freebsd11] nfstat | ||
| 280 | [freebsd11] nlstat | ||
| 281 | [nosys] | ||
| 282 | [nosys] | ||
| 283 | [nosys] | ||
| 284 | [nosys] | ||
| 285 | [nosys] | ||
| 286 | [nosys] | ||
| 287 | [nosys] | ||
| 288 | [nosys] | ||
| 289 | preadv | Read input | kern/sys_generic.c | 
| 290 | pwritev | Write output | kern/sys_generic.c | 
| 291 | [nosys] | ||
| 292 | [nosys] | ||
| 293 | [nosys] | ||
| 294 | [nosys] | ||
| 295 | [nosys] | ||
| 296 | [nosys] | ||
| 297 | [freebsd4] fhstatfs | ||
| 298 | fhopen | Access file via file handle | kern/vfs_syscalls.c | 
| 299 | [freebsd11] fhstat | ||
| 300 | modnext | Return the modid of the next kernel module | kern/kern_module.c | 
| 301 | modstat | Get status of kernel module | kern/kern_module.c | 
| 302 | modfnext | Return the modid of the next kernel module | kern/kern_module.c | 
| 303 | modfind | Returns the modid of a kernel module | kern/kern_module.c | 
| 304 | kldload | Load KLD files into the kernel | kern/kern_linker.c | 
| 305 | kldunload | Unload kld files | kern/kern_linker.c | 
| 306 | kldfind | Returns the fileid of a kld file | kern/kern_linker.c | 
| 307 | kldnext | Return the fileid of the next kld file | kern/kern_linker.c | 
| 308 | kldstat | Get status of kld file | kern/kern_linker.c | 
| 309 | kldfirstmod | Return first module id from the kld file specified | kern/kern_linker.c | 
| 310 | getsid | Get process session | kern/kern_prot.c | 
| 311 | setresuid | Set real, effective and saved user or group ID | kern/kern_prot.c | 
| 312 | setresgid | Set real, effective and saved user or group ID | kern/kern_prot.c | 
| 313 | [obsolete] signanosleep | ||
| 314 | aio_return | Retrieve return status of asynchronous I/O operation (realtime) | kern/vfs_aio.c | 
| 315 | aio_suspend | Suspend until asynchronous I/O operations or timeout complete (realtime) | kern/vfs_aio.c | 
| 316 | aio_cancel | Cancel an outstanding asynchronous I/O operation (realtime) | kern/vfs_aio.c | 
| 317 | aio_error | Retrieve error status of asynchronous I/O operation (realtime) | kern/vfs_aio.c | 
| 318 | [freebsd6] aio_read | ||
| 319 | [freebsd6] aio_write | ||
| 320 | [freebsd6] lio_listio | ||
| 321 | yield | (no manual) | kern/kern_synch.c | 
| 322 | [obsolete] thr_sleep | ||
| 323 | [obsolete] thr_wakeup | ||
| 324 | mlockall | Lock (unlock) the address space of a process | vm/vm_mmap.c | 
| 325 | munlockall | Lock (unlock) the address space of a process | vm/vm_mmap.c | 
| 326 | __getcwd | (getcwd(3) Get working directory pathname) | kern/vfs_cache.c | 
| 327 | sched_setparam | Set scheduling parameters | kern/p1003_1b.c | 
| 328 | sched_getparam | Get scheduling parameters | kern/p1003_1b.c | 
| 329 | sched_setscheduler | Set scheduling policy and scheduler parameters | kern/p1003_1b.c | 
| 330 | sched_getscheduler | Get scheduling policy and scheduler parameters | kern/p1003_1b.c | 
| 331 | sched_yield | yield processor | kern/p1003_1b.c | 
| 332 | sched_get_priority_max | Get scheduling parameter limits | kern/p1003_1b.c | 
| 333 | sched_get_priority_min | Get scheduling parameter limits | kern/p1003_1b.c | 
| 334 | sched_rr_get_interval | Get scheduling parameter limits | kern/p1003_1b.c | 
| 335 | utrace | Insert user record in ktrace log | kern/kern_ktrace.c | 
| 336 | [freebsd4] sendfile | ||
| 337 | kldsym | Look up address by symbol name in a KLD | kern/kern_linker.c | 
| 338 | jail | Create and manage system jails | kern/kern_jail.c | 
| 339 | nnpfs_syscall | (no manual) | |
| 340 | sigprocmask | Manipulate current signal mask | kern/kern_sig.c | 
| 341 | sigsuspend | Atomically release blocked signals and wait for interrupt | kern/kern_sig.c | 
| 342 | [freebsd4] sigaction | ||
| 343 | sigpending | Get pending signals | kern/kern_sig.c | 
| 344 | [freebsd4] sigreturn | ||
| 345 | sigtimedwait | Wait for queued signals (realtime) | kern/kern_sig.c | 
| 346 | sigwaitinfo | Wait for queued signals (realtime) | kern/kern_sig.c | 
| 347 | __acl_get_file | (acl_get_file(3)) | kern/vfs_acl.c | 
| 348 | __acl_set_file | (acl_set_file(3)) | kern/vfs_acl.c | 
| 349 | __acl_get_fd | (acl_get_fd(3)) | kern/vfs_acl.c | 
| 350 | __acl_set_fd | (acl_set_fd(3)) | kern/vfs_acl.c | 
| 351 | __acl_delete_file | (acl_delete(3)) | kern/vfs_acl.c | 
| 352 | __acl_delete_fd | (acl_delete(3)) | kern/vfs_acl.c | 
| 353 | __acl_aclcheck_file | (no manual) | kern/vfs_acl.c | 
| 354 | __acl_aclcheck_fd | (no manual) | kern/vfs_acl.c | 
| 355 | extattrctl | (no manual) | kern/vfs_extattr.c | 
| 356 | extattr_set_file | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 357 | extattr_get_file | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 358 | extattr_delete_file | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 359 | aio_waitcomplete | Wait for the next completion of an aio request | kern/vfs_aio.c | 
| 360 | getresuid | Get real, effective and saved user or group ID | kern/kern_prot.c | 
| 361 | getresgid | Get real, effective and saved user or group ID | kern/kern_prot.c | 
| 362 | kqueue | Kernel event notification mechanism | kern/kern_event.c | 
| 363 | [freebsd11] kevent | ||
| 364 | [obsolete] __cap_get_proc | ||
| 365 | [obsolete] __cap_set_proc | ||
| 366 | [obsolete] __cap_get_fd | ||
| 367 | [obsolete] __cap_get_file | ||
| 368 | [obsolete] __cap_set_fd | ||
| 369 | [obsolete] __cap_set_file | ||
| 370 | [nosys] | ||
| 371 | extattr_set_fd | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 372 | extattr_get_fd | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 373 | extattr_delete_fd | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 374 | __setugid | (no manual) | kern/kern_prot.c | 
| 375 | [obsolete] nfsclnt | ||
| 376 | eaccess | Check accessibility of a file | kern/vfs_syscalls.c | 
| 377 | afs3_syscall | (no manual) | |
| 378 | nmount | Mount or dismount a file system | kern/vfs_mount.c | 
| 379 | [obsolete] kse_exit | ||
| 380 | [obsolete] kse_wakeup | ||
| 381 | [obsolete] kse_create | ||
| 382 | [obsolete] kse_thr_interrupt | ||
| 383 | [obsolete] kse_release | ||
| 384 | __mac_get_proc | (mac_get_proc(3)) | security/mac/mac_syscalls.c | 
| 385 | __mac_set_proc | (mac_set_proc(3)) | security/mac/mac_syscalls.c | 
| 386 | __mac_get_fd | (mac_get_fd(3)) | security/mac/mac_syscalls.c | 
| 387 | __mac_get_file | (mac_get_file(3)) | security/mac/mac_syscalls.c | 
| 388 | __mac_set_fd | (mac_set_fd(3)) | security/mac/mac_syscalls.c | 
| 389 | __mac_set_file | (mac_set_file(3)) | security/mac/mac_syscalls.c | 
| 390 | kenv | kernel environment | kern/kern_environment.c | 
| 391 | lchflags | Set file flags | kern/vfs_syscalls.c | 
| 392 | uuidgen | Generate universally unique identifiers | kern/kern_uuid.c | 
| 393 | sendfile | Send a file to a socket | kern/kern_sendfile.c | 
| 394 | mac_syscall | (no manual) | security/mac/mac_syscalls.c | 
| 395 | [freebsd11] getfsstat | ||
| 396 | [freebsd11] statfs | ||
| 397 | [freebsd11] fstatfs | ||
| 398 | [freebsd11] fhstatfs | ||
| 399 | [nosys] | ||
| 400 | ksem_close | (no manual) | kern/uipc_sem.c | 
| 401 | ksem_post | (no manual) | kern/uipc_sem.c | 
| 402 | ksem_wait | (no manual) | kern/uipc_sem.c | 
| 403 | ksem_trywait | (no manual) | kern/uipc_sem.c | 
| 404 | ksem_init | (no manual) | kern/uipc_sem.c | 
| 405 | ksem_open | (no manual) | kern/uipc_sem.c | 
| 406 | ksem_unlink | (no manual) | kern/uipc_sem.c | 
| 407 | ksem_getvalue | (no manual) | kern/uipc_sem.c | 
| 408 | ksem_destroy | (no manual) | kern/uipc_sem.c | 
| 409 | __mac_get_pid | (mac_get_pid(3)) | security/mac/mac_syscalls.c | 
| 410 | __mac_get_link | (mac_get_link(3)) | security/mac/mac_syscalls.c | 
| 411 | __mac_set_link | (mac_set_link(3)) | security/mac/mac_syscalls.c | 
| 412 | extattr_set_link | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 413 | extattr_get_link | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 414 | extattr_delete_link | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 415 | __mac_execve | (no manual) | kern/kern_exec.c | 
| 416 | sigaction | Software signal facilities | kern/kern_sig.c | 
| 417 | sigreturn | Return from signal | sys/ {arch}/ {arch}/ sys_machdep.c | 
| 418 | [unimplemented] __xstat | ||
| 419 | [unimplemented] __xfstat | ||
| 420 | [unimplemented] __xlstat | ||
| 421 | getcontext | Get user thread context | kern/kern_context.c | 
| 422 | setcontext | Set user thread context | kern/kern_context.c | 
| 423 | swapcontext | Modify and exchange user thread contexts | kern/kern_context.c | 
| 424 | swapoff | Control devices for interleaved paging/swapping | vm/swap_pager.c | 
| 425 | __acl_get_link | (acl_get(3)) | kern/vfs_acl.c | 
| 426 | __acl_set_link | (acl_set(3)) | kern/vfs_acl.c | 
| 427 | __acl_delete_link | (acl_delete(3)) | kern/vfs_acl.c | 
| 428 | __acl_aclcheck_link | (no manual) | kern/vfs_acl.c | 
| 429 | sigwait | Select a set of signals | kern/kern_sig.c | 
| 430 | thr_create | (no manual) | kern/kern_thr.c | 
| 431 | thr_exit | Terminate current thread | kern/kern_thr.c | 
| 432 | thr_self | Return thread identifier for the calling thread | kern/kern_thr.c | 
| 433 | thr_kill | Send signal to thread | kern/kern_thr.c | 
| 434 | [nosys] | ||
| 435 | [nosys] | ||
| 436 | jail_attach | Create and manage system jails | kern/kern_jail.c | 
| 437 | extattr_list_fd | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 438 | extattr_list_file | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 439 | extattr_list_link | Manipulate VFS extended attributes | kern/vfs_extattr.c | 
| 440 | [obsolete] kse_switchin | ||
| 441 | ksem_timedwait | (no manual) | kern/uipc_sem.c | 
| 442 | thr_suspend | Suspend the calling thread | kern/kern_thr.c | 
| 443 | thr_wake | Wake up the suspended thread | kern/kern_thr.c | 
| 444 | kldunloadf | Unload kld files | kern/kern_linker.c | 
| 445 | audit | Commit BSM audit record to audit log | security/audit/audit_syscalls.c | 
| 446 | auditon | Configure system audit parameters | security/audit/audit_syscalls.c | 
| 447 | getauid | Retrieve audit session ID | security/audit/audit_syscalls.c | 
| 448 | setauid | Set audit session ID | security/audit/audit_syscalls.c | 
| 449 | getaudit | Retrieve audit session state | security/audit/audit_syscalls.c | 
| 450 | setaudit | Set audit session state | security/audit/audit_syscalls.c | 
| 451 | getaudit_addr | Retrieve audit session state | security/audit/audit_syscalls.c | 
| 452 | setaudit_addr | Set audit session state | security/audit/audit_syscalls.c | 
| 453 | auditctl | Configure system audit parameters | security/audit/audit_syscalls.c | 
| 454 | _umtx_op | Interface for implementation of userspace threading synchronization primitives | kern/kern_umtx.c | 
| 455 | thr_new | Create new thread of execution | kern/kern_thr.c | 
| 456 | sigqueue | Queue a signal to a process (realtime) | kern/kern_sig.c | 
| 457 | kmq_open | (no manual) | kern/uipc_mqueue.c | 
| 458 | kmq_setattr | (no manual) | kern/uipc_mqueue.c | 
| 459 | kmq_timedreceive | (no manual) | kern/uipc_mqueue.c | 
| 460 | kmq_timedsend | (no manual) | kern/uipc_mqueue.c | 
| 461 | kmq_notify | (no manual) | kern/uipc_mqueue.c | 
| 462 | kmq_unlink | (no manual) | kern/uipc_mqueue.c | 
| 463 | abort2 | Abort process with diagnostics | kern/kern_exit.c | 
| 464 | thr_set_name | Set user-visible thread name | kern/kern_thr.c | 
| 465 | aio_fsync | Asynchronous file synchronization (realtime) | kern/vfs_aio.c | 
| 466 | rtprio_thread | Examine or modify realtime or idle priority | kern/kern_resource.c | 
| 467 | [nosys] | ||
| 468 | [nosys] | ||
| 469 | [unimplemented] __getpath_fromfd | ||
| 470 | [unimplemented] __getpath_fromaddr | ||
| 471 | sctp_peeloff | Detach an association from a one-to-many socket to its own fd | netinet/sctp_syscalls.c | 
| 472 | sctp_generic_sendmsg | Send data to a peer | netinet/sctp_syscalls.c | 
| 473 | sctp_generic_sendmsg_iov | Send data to a peer | netinet/sctp_syscalls.c | 
| 474 | sctp_generic_recvmsg | Receive data from a peer | netinet/sctp_syscalls.c | 
| 475 | pread | Read input | kern/sys_generic.c | 
| 476 | pwrite | Write output | kern/sys_generic.c | 
| 477 | mmap | Allocate memory, or map files or devices into memory | vm/vm_mmap.c | 
| 478 | lseek | Reposition read/write file offset | kern/vfs_syscalls.c | 
| 479 | truncate | Truncate or extend a file to a specified length | kern/vfs_syscalls.c | 
| 480 | ftruncate | Truncate or extend a file to a specified length | kern/sys_generic.c | 
| 481 | thr_kill2 | Send signal to thread | kern/kern_thr.c | 
| 482 | [freebsd12] shm_open | ||
| 483 | shm_unlink | Shared memory object operations | kern/uipc_shm.c | 
| 484 | cpuset | Manage CPU affinity sets | kern/kern_cpuset.c | 
| 485 | cpuset_setid | Manage CPU affinity sets | kern/kern_cpuset.c | 
| 486 | cpuset_getid | Manage CPU affinity sets | kern/kern_cpuset.c | 
| 487 | cpuset_getaffinity | Manage CPU affinity | kern/kern_cpuset.c | 
| 488 | cpuset_setaffinity | Manage CPU affinity | kern/kern_cpuset.c | 
| 489 | faccessat | Check accessibility of a file | kern/vfs_syscalls.c | 
| 490 | fchmodat | Change mode of file | kern/vfs_syscalls.c | 
| 491 | fchownat | Change owner and group of a file | kern/vfs_syscalls.c | 
| 492 | fexecve | Execute a file | kern/kern_exec.c | 
| 493 | [freebsd11] fstatat | ||
| 494 | futimesat | Set file access and modification | kern/vfs_syscalls.c | 
| 495 | linkat | Make a hard file link | kern/vfs_syscalls.c | 
| 496 | mkdirat | Make a directory file | kern/vfs_syscalls.c | 
| 497 | mkfifoat | Make a fifo file | kern/vfs_syscalls.c | 
| 498 | [freebsd11] mknodat | Make a special file node | |
| 499 | openat | Open or create a file for reading, writing or executing | kern/vfs_syscalls.c | 
| 500 | readlinkat | Read value of a symbolic link | kern/vfs_syscalls.c | 
| 501 | renameat | Change the name of a file | kern/vfs_syscalls.c | 
| 502 | symlinkat | Make symbolic link to a file | kern/vfs_syscalls.c | 
| 503 | unlinkat | Remove directory entry | kern/vfs_syscalls.c | 
| 504 | posix_openpt | Open a pseudo-terminal device | kern/tty_pts.c | 
| 505 | gssd_syscall | (no manual) | kgssapi/gss_impl.c | 
| 506 | jail_get | Create and manage system jails | kern/kern_jail.c | 
| 507 | jail_set | Create and manage system jails | kern/kern_jail.c | 
| 508 | jail_remove | Create and manage system jails | kern/kern_jail.c | 
| 509 | [freebsd12] closefrom | ||
| 510 | __semctl | Control operations on a semaphore set | kern/sysv_sem.c | 
| 511 | msgctl | Message control operations | kern/sysv_msg.c | 
| 512 | shmctl | Shared memory control | kern/sysv_shm.c | 
| 513 | lpathconf | Get configurable pathname variables | kern/vfs_syscalls.c | 
| 514 | [obsolete] cap_new | ||
| 515 | __cap_rights_get | (cap_rights_get(3)) | kern/sys_capability.c | 
| 516 | cap_enter | Capability mode system calls | kern/sys_capability.c | 
| 517 | cap_getmode | Capability mode system calls | kern/sys_capability.c | 
| 518 | pdfork | System calls to manage process descriptors | kern/kern_fork.c | 
| 519 | pdkill | System calls to manage process descriptors | kern/kern_sig.c | 
| 520 | pdgetpid | System calls to manage process descriptors | kern/sys_procdesc.c | 
| 521 | [unimplemented] pdwait4 | ||
| 522 | pselect | Synchronous I/O multiplexing a la POSIX.1g | kern/sys_generic.c | 
| 523 | getloginclass | Get login class | kern/kern_loginclass.c | 
| 524 | setloginclass | Set login class | kern/kern_loginclass.c | 
| 525 | rctl_get_racct | Manipulate and query the resource limits database | kern/kern_rctl.c | 
| 526 | rctl_get_rules | Manipulate and query the resource limits database | kern/kern_rctl.c | 
| 527 | rctl_get_limits | Manipulate and query the resource limits database | kern/kern_rctl.c | 
| 528 | rctl_add_rule | Manipulate and query the resource limits database | kern/kern_rctl.c | 
| 529 | rctl_remove_rule | Manipulate and query the resource limits database | kern/kern_rctl.c | 
| 530 | posix_fallocate | Pre-allocate storage for a range in a file | kern/sys_generic.c | 
| 531 | posix_fadvise | Give advice about use of file data | kern/vfs_syscalls.c | 
| 532 | wait6 | Wait for processes to change status | kern/kern_exit.c | 
| 533 | cap_rights_limit | Limit capability rights | kern/sys_capability.c | 
| 534 | cap_ioctls_limit | Manage allowed ioctl commands | kern/sys_capability.c | 
| 535 | cap_ioctls_get | Manage allowed ioctl commands | kern/sys_capability.c | 
| 536 | cap_fcntls_limit | Manage allowed fcntl commands | kern/sys_capability.c | 
| 537 | cap_fcntls_get | Manage allowed fcntl commands | kern/sys_capability.c | 
| 538 | bindat | Assign a local protocol address to a socket | kern/uipc_syscalls.c | 
| 539 | connectat | Initiate a connection on a socket | kern/uipc_syscalls.c | 
| 540 | chflagsat | Set file flags | kern/vfs_syscalls.c | 
| 541 | accept4 | Accept a connection on a socket | kern/uipc_syscalls.c | 
| 542 | pipe2 | Create descriptor pair for interprocess communication | kern/sys_pipe.c | 
| 543 | aio_mlock | asynchronous mlock(2) operation | kern/vfs_aio.c | 
| 544 | procctl | Control processes | kern/kern_procctl.c | 
| 545 | ppoll | Synchronous I/O multiplexing | kern/sys_generic.c | 
| 546 | futimens | Set file access and modification times | kern/vfs_syscalls.c | 
| 547 | utimensat | Set file access and modification times | kern/vfs_syscalls.c | 
| 548 | [obsolete] numa_getaffinity | ||
| 549 | [obsolete] numa_setaffinity | ||
| 550 | fdatasync | Synchronise changes to a file | kern/vfs_syscalls.c | 
| 551 | fstat | Get file status | kern/kern_descrip.c | 
| 552 | fstatat | Get file status | kern/vfs_syscalls.c | 
| 553 | fhstat | Access file via file handle | kern/vfs_syscalls.c | 
| 554 | getdirentries | Get directory entries in a file system independent format | kern/vfs_syscalls.c | 
| 555 | statfs | Get file system statistics | kern/vfs_syscalls.c | 
| 556 | fstatfs | Get file system statistics | kern/vfs_syscalls.c | 
| 557 | getfsstat | Get list of all mounted file systems | kern/vfs_syscalls.c | 
| 558 | fhstatfs | Access file via file handle | kern/vfs_syscalls.c | 
| 559 | mknodat | Make a special file node | kern/vfs_syscalls.c | 
| 560 | kevent | Kernel event notification mechanism | kern/kern_event.c | 
| 561 | cpuset_getdomain | Manage memory domain policy | kern/kern_cpuset.c | 
| 562 | cpuset_setdomain | Manage memory domain policy | kern/kern_cpuset.c | 
| 563 | getrandom | Get random data | kern/sys_getrandom.c | 
| 564 | getfhat | Get file handle | kern/vfs_syscalls.c | 
| 565 | fhlink | Make a hard file link | kern/vfs_syscalls.c | 
| 566 | fhlinkat | Make a hard file link | kern/vfs_syscalls.c | 
| 567 | fhreadlink | Read value of a symbolic link | kern/vfs_syscalls.c | 
| 568 | funlinkat | Remove directory entry | kern/vfs_syscalls.c | 
| 569 | copy_file_range | Kernel copy of a byte range from one file to another or within one file | kern/vfs_syscalls.c | 
| 570 | sysctlbyname | Get or set system state | kern/kern_sysctl.c | 
| 571 | shm_open2 | (no manual) | kern/uipc_shm.c | 
| 572 | shm_rename | Shared memory object operations | kern/uipc_shm.c | 
| 573 | sigfastblock | Controls signals blocking with a simple memory write | kern/kern_sig.c | 
| 574 | __realpathat | (no manual) | kern/vfs_cache.c | 
| 575 | close_range | Delete open file descriptors | kern/kern_descrip.c | 
| 576 | rpctls_syscall | (no manual) | rpc/rpcsec_tls/rpctls_impl.c | 
syscall and __syscall have not a sys_syscall() or sys___syscall
entry points, instead the arch-dependent implementation manages SYS_syscall
and SYS___syscall, includes
kern/subr_syscall.c
and syscallenter() dispatches the handler of the indirect system call.
| Architecture | Implementation | 
|---|---|
| amd64 | amd64/amd64/trap.c | 
| arm | arm/arm/syscall.c | 
| arm64 | arm64/arm64/trap.c | 
| i386 | i386/i386/trap.c | 
| mips | mips/mips/trap.c | 
| powerpc | powerpc/powerpc/trap.c | 
| riscv | riscv/riscv/trap.c | 
To know more
- Source Code: /src/sys/
- Developers’ Handbook: 11.3. System Calls
- Wiki Page: Adding Syscalls