FreeBSD 16 System Calls Table

Posted on April 9, 2026

A system call is the mechanism through which user-space software requests services from the kernel. In the FreeBSD operating system, more than 400 system calls are available, forming the core interface between applications and the kernel.

These system calls are defined in the syscalls.master file, which serves as the authoritative source. This file is processed by the System call creation library to automatically generate several key components, including init_sysent.c, syscall.h, and others that implement and expose the system call interface.

At the time of writing, the system call table for FreeBSD 16-CURRENT includes 603 entries: 15 unimplemented, 53 marked as nosys or lkmnosys, 48 for compatibility, and 75 considered old or obsolete. The entry point of a system call usually follows the sys_{name} naming convention, with the exceptions of syscall and __syscall, which are described below.

This table is partly auto-generated by scanning init_sysent.c and then completed manually. It’s mainly intended for my own study of the FreeBSD kernel, so it shouldn’t be considered an authoritative source.

Table

Number Name (and manual link) Short Description Implementation
0 syscall Indirect system call (below)
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 [obsolete] sbrk
70 [obsolete] sstk
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 [freebsd14] getgroups
80 [freebsd14] setgroups
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 (below)
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 [freebsd13] swapoff
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 [freebsd10] _umtx_lock
435 [freebsd10] _umtx_unlock
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
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 [obsolete] gssd_syscall
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
577 __specialfd (no manual) kern/sys_generic.c
578 aio_writev Asynchronous write to a file (REALTIME) kern/vfs_aio.c
579 aio_readv Asynchronous read from a file (REALTIME) kern/vfs_aio.c
580 fspacectl Space management in a file kern/sys_generic.c
581 sched_getcpu (no manual) kern/kern_synch.c
582 swapoff Control devices for interleaved paging/swapping vm/swap_pager.c
583 kqueuex Kernel event notification mechanism kern/kern_event.c
584 membarrier (no manual) kern/kern_membarrier.c
585 timerfd_create Timers with file descriptor semantics kern/sys_timerfd.c
586 timerfd_gettime Timers with file descriptor semantics kern/sys_timerfd.c
587 timerfd_settime Timers with file descriptor semantics kern/sys_timerfd.c
588 kcmp Compare two kernel objects kern/sys_generic.c
589 getrlimitusage Query usage of the current process’ limited resources kern/kern_resource.c
590 fchroot Change root directory kern/vfs_syscalls.c
591 setcred Set current process credentials atomically kern/kern_prot.c
592 exterrctl (no manual) kern/sys_generic.c
593 inotify_add_watch_at Monitor file system events kern/vfs_inotify.c
594 inotify_rm_watch Monitor file system events kern/vfs_inotify.c
595 getgroups Get the calling process’ supplementary groups kern/kern_prot.c
596 setgroups Set the calling process’ supplementary groups kern/kern_prot.c
597 jail_attach_jd Create and manage system jails kern/kern_jail.c
598 jail_remove_jd Create and manage system jails kern/kern_jail.c
599 kexec_load Prepare new kernel to reboot into kern/kern_kexec.c
600 pdrfork Manage process descriptors kern/kern_fork.c
601 pdwait Manage process descriptors kern/kern_exit.c
602 renameat2 Change the name of a file kern/vfs_syscalls.c

syscall and __syscall

syscall and __syscall do not have dedicated sys_syscall() or sys___syscall() entry points. Instead, the architecture-dependent implementation handles SYS_syscall and SYS___syscall. It uses kern/subr_syscall.c and the function syscallenter() is responsible for dispatching the handler for 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
powerpc powerpc/powerpc/trap.c
riscv riscv/riscv/trap.c

sigreturn

The entry point is sys_sigreturn but its implementation is machine-dependent.

Architecture Implementation
amd64 amd64/amd64/exec_machdep.c
arm arm/arm/exec_machdep.c
arm64 arm64/arm64/exec_machdep.c
i386 i386/i386/exec_machdep.c
powerpc powerpc/powerpc/exec_machdep.c
riscv riscv/riscv/exec_machdep.c