ftmemsim-valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h
Paul Floyd b1aba91160 FreeBSD: cleanup and refactor syscalls readlink and readlinkat
There was some code to handle /proc/curproc/file (a symlink to
the exe that wee need to bodge as it refers to the tool exe).
But it was neither tested nor working.

Can't use the same technique as Linux and Solaris which have more
complete /proc filesystems where each pid has symlinks for
each open file, which we use for the guest. Instead need to
copy the path ourselves. So move sys_readlink out of generic.

Simplify the handling of the resolved guest exe name - store it in
a global like VG_(args_the_exename).
2023-01-31 21:52:36 +01:00

571 lines
20 KiB
C

/*--------------------------------------------------------------------*/
/*--- FreeBSD-specific syscalls stuff. priv_syswrap-freebsd.h ---*/
/*--------------------------------------------------------------------*/
/*
This file is part of Valgrind, a dynamic binary instrumentation
framework.
Copyright (C) 2000-2008 Nicholas Nethercote
njn@valgrind.org
Copyright (C) 2018-2021 Paul Floyd
pjfloyd@wanadoo.fr
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>.
The GNU General Public License is contained in the file COPYING.
*/
#ifndef PRIV_SYSWRAP_FREEBSD_H
#define PRIV_SYSWRAP_FREEBSD_H
/* requires #include "priv_types_n_macros.h" */
#include "priv_types_n_macros.h"
#include "config.h"
// Clone-related functions
extern Word ML_(start_thread_NORETURN) ( void* arg );
extern Addr ML_(allocstack) ( ThreadId tid );
extern void ML_(call_on_new_stack_0_1) ( Addr stack, Addr retaddr,
void (*f)(Word), Word arg1 );
extern SysRes ML_(do_fork) ( ThreadId tid );
extern SysRes ML_(do_vfork) ( ThreadId tid );
extern SysRes ML_(do_rfork) ( ThreadId tid, Int flags );
DECL_TEMPLATE(freebsd, sys_syscall)
DECL_TEMPLATE(freebsd, sys_exit) // 1
DECL_TEMPLATE(freebsd, sys_fork) // 2
// generic read 3
// generic write 4
// generic open 5
// generic close 6
// generic wait4 7
// generic link 9
// generic unlink 10
// generic chdir 12
// generic fchdir 13
// generic mknod 14
// generic chmod 15
// generic chown 16
// generic brk 17
DECL_TEMPLATE(freebsd, sys_mount) // 21
DECL_TEMPLATE(freebsd, sys_unmount) // 22
DECL_TEMPLATE(freebsd, sys_ptrace) // 26
DECL_TEMPLATE(freebsd, sys_recvmsg) // 27
DECL_TEMPLATE(freebsd, sys_sendmsg) // 28
DECL_TEMPLATE(freebsd, sys_recvfrom) // 29
DECL_TEMPLATE(freebsd, sys_accept) // 30
DECL_TEMPLATE(freebsd, sys_getpeername) // 31
DECL_TEMPLATE(freebsd, sys_getsockname) // 32
// generic access 33
DECL_TEMPLATE(freebsd, sys_chflags) // 34
DECL_TEMPLATE(freebsd, sys_fchflags) // 35
// generic sync 36
// generic kill 37
// generic getppid 39
// generic dup 41
DECL_TEMPLATE(freebsd, sys_pipe) // 42
// generic getegid 43
// generic profil redirect to ni_syscall 44
// sys_ktrace refirect to ni_syscall 45
// generic getgid 47
DECL_TEMPLATE(freebsd, sys_getlogin) // 49
DECL_TEMPLATE(freebsd, sys_setlogin) // 50
// generic acct 51
// generic sigaltstack 53
DECL_TEMPLATE(freebsd, sys_ioctl) // 54
DECL_TEMPLATE(freebsd, sys_reboot) // 55
DECL_TEMPLATE(freebsd, sys_revoke) // 56
// generic symlink 57
DECL_TEMPLATE(freebsd, sys_readlink) // 58
// generic execve 59
// generic umask 60
// generic chroot 61
// generic msync 65
DECL_TEMPLATE(freebsd, sys_vfork) // 66
DECL_TEMPLATE(freebsd, sys_sbrk) // 69
// freebsd11 vadvise 72
// generic munmap 73
// generic mprotect 74
// generic madvise 75
// generic mincore 78
// generic getgroups 79
// generic setgroups 80
// generic getpgrp 81
// generic setpgid 82
// generic setitimer 83
DECL_TEMPLATE(freebsd, sys_swapon) // 85
// generic getitimer 86
DECL_TEMPLATE(freebsd, sys_getdtablesize) // 90
DECL_TEMPLATE(freebsd, sys_fcntl) // 92
// generic select 93
// generic fsync 95
// generic setpriority 96
DECL_TEMPLATE(freebsd, sys_socket) // 97
DECL_TEMPLATE(freebsd, sys_connect) // 98
// generic getpriority 100
DECL_TEMPLATE(freebsd, sys_bind) // 104
DECL_TEMPLATE(freebsd, sys_setsockopt) // 105
DECL_TEMPLATE(freebsd, sys_listen) // 106
// generic gettimeofday 116
// generic rusage 117
DECL_TEMPLATE(freebsd, sys_getsockopt) // 118
// generic readv 120
// generic writev 121
// generic settimeofday 122
// generic fchown 123
// generic fchmod 124
// generic setreuid 126
// generic setregid 127
// generic rename 128
// generic flock 131
DECL_TEMPLATE(freebsd, sys_mkfifo) // 132
DECL_TEMPLATE(freebsd, sys_sendto) // 133
DECL_TEMPLATE(freebsd, sys_shutdown) // 134
DECL_TEMPLATE(freebsd, sys_socketpair) // 135
// generic mkdir 136
// generic rmdir 137
// generic utims 138
DECL_TEMPLATE(freebsd, sys_adjtime) // 140
// generic setsid 147
DECL_TEMPLATE(freebsd, sys_quotactl) // 148
// unimp nlm_syscall 154
//DECL_TEMPLATE(freebsd, sys_nfssvc) 155
DECL_TEMPLATE(freebsd, sys_lgetfh) // 160
DECL_TEMPLATE(freebsd, sys_getfh) // 161
#if (FREEBSD_VERS <= FREEBSD_10)
DECL_TEMPLATE(freebsd, sys_freebsd4_getdomainname) // 162
DECL_TEMPLATE(freebsd, sys_freebsd4_setdomainname) // 163
DECL_TEMPLATE(freebsd, sys_freebsd4_uname) // 164
#endif
DECL_TEMPLATE(freebsd, sys_sysarch) // 165
DECL_TEMPLATE(freebsd, sys_rtprio) // 166
//DECL_TEMPLATE(freebsd, sys_semsys) 169
//DECL_TEMPLATE(freebsd, sys_msgsys) 170
//DECL_TEMPLATE(freebsd, sys_shmsys) 171
#if (FREEBSD_VERS <= FREEBSD_10)
DECL_TEMPLATE(freebsd, sys_freebsd6_pread) // 173
DECL_TEMPLATE(freebsd, sys_freebsd6_pwrite) // 174
#endif
DECL_TEMPLATE(freebsd, sys_setfib) // 175
//DECL_TEMPLATE(freebsd, sys_ntp_adjtime) 176
// generic setgid 181
DECL_TEMPLATE(freebsd, sys_setegid) // 182
DECL_TEMPLATE(freebsd, sys_seteuid) // 183
#if (FREEBSD_VERS >= FREEBSD_12)
DECL_TEMPLATE(freebsd, sys_freebsd11_stat) // 188
DECL_TEMPLATE(freebsd, sys_freebsd11_fstat) // 189
DECL_TEMPLATE(freebsd, sys_freebsd11_lstat)// 190
#else
DECL_TEMPLATE(freebsd, sys_stat) // 188
DECL_TEMPLATE(freebsd, sys_fstat) // 189
DECL_TEMPLATE(freebsd, sys_lstat) // 190
#endif
DECL_TEMPLATE(freebsd, sys_pathconf) // 191
DECL_TEMPLATE(freebsd, sys_fpathconf) // 192
// generic getrlimit 194
// generic setrlimit 195
#if (FREEBSD_VERS >= FREEBSD_12)
DECL_TEMPLATE(freebsd, sys_freebsd11_getdirentries) // 196
#else
DECL_TEMPLATE(freebsd, sys_getdirentries) // 196
#endif
#if (FREEBSD_VERS <= FREEBSD_10)
DECL_TEMPLATE(freebsd, sys_freebsd6_mmap) // 197
#endif
#if (FREEBSD_VERS <= FREEBSD_10)
DECL_TEMPLATE(freebsd, sys_freebsd6_lseek) // 199
DECL_TEMPLATE(freebsd, sys_freebsd6_truncate) // 200
DECL_TEMPLATE(freebsd, sys_freebsd6_ftruncate) // 201
#endif
DECL_TEMPLATE(freebsd, sys___sysctl) // 202
// generic mlock 202
// generic munlock 203
DECL_TEMPLATE(freebsd, sys_undelete) // 205
DECL_TEMPLATE(freebsd, sys_futimes) // 206
// generic getpgod 207
// generic poll 209
DECL_TEMPLATE(freebsd, sys_freebsd7___semctl) // 220
DECL_TEMPLATE(freebsd, sys_semget) // 221
DECL_TEMPLATE(freebsd, sys_semop) // 222
DECL_TEMPLATE(freebsd, sys_freebsd7_msgctl) // 224
DECL_TEMPLATE(freebsd, sys_msgget) // 225
DECL_TEMPLATE(freebsd, sys_msgsnd) // 226
DECL_TEMPLATE(freebsd, sys_msgrcv) // 227
DECL_TEMPLATE(freebsd, sys_shmat) // 228
DECL_TEMPLATE(freebsd, sys_freebsd7_shmctl) // 229
DECL_TEMPLATE(freebsd, sys_shmdt) // 230
DECL_TEMPLATE(freebsd, sys_shmget) // 231
DECL_TEMPLATE(freebsd, sys_clock_gettime) // 232
DECL_TEMPLATE(freebsd, sys_clock_settime) // 233
DECL_TEMPLATE(freebsd, sys_clock_getres) // 234
DECL_TEMPLATE(freebsd, sys_timer_create) // 235
DECL_TEMPLATE(freebsd, sys_timer_delete) // 236
DECL_TEMPLATE(freebsd, sys_timer_settime) // 237
DECL_TEMPLATE(freebsd, sys_timer_gettime) // 238
DECL_TEMPLATE(freebsd, sys_timer_getoverrun) // 239
// generic sys_nanosleep 240
// unimpl ffclock_getcounter 241
// unimpl ffclock_setestimate 242
// unimpl ffclock_getestimate 243
DECL_TEMPLATE(freebsd, sys_clock_nanosleep) // 244
DECL_TEMPLATE(freebsd, sys_clock_getcpuclockid2) // 247
// unimpl ntp_gettime 248
DECL_TEMPLATE(freebsd, sys_minherit) // 250
DECL_TEMPLATE(freebsd, sys_rfork) // 251
DECL_TEMPLATE(freebsd, sys_issetugid) // 253
// generic lchown 254
DECL_TEMPLATE(freebsd, sys_aio_read) // 255
DECL_TEMPLATE(freebsd, sys_aio_write) // 256
DECL_TEMPLATE(freebsd, sys_lio_listio) // 257
// generic sys_getdents 272
DECL_TEMPLATE(freebsd, sys_lchmod) // 274
DECL_TEMPLATE(freebsd, sys_lutimes) // 276
// unimpl freebsd11_nstat 278
// unimpl freebsd11_nfstat 279
// unimpl freebsd11_nlstat 280
DECL_TEMPLATE(freebsd, sys_preadv) // 289
DECL_TEMPLATE(freebsd, sys_pwritev) // 290
DECL_TEMPLATE(freebsd, sys_fhopen) // 298
#if (FREEBSD_VERS >= FREEBSD_12)
DECL_TEMPLATE(freebsd, sys_freebsd11_fhstat) // 299
#else
DECL_TEMPLATE(freebsd, sys_fhstat) // 299
#endif
DECL_TEMPLATE(freebsd, sys_modnext) // 300
DECL_TEMPLATE(freebsd, sys_modstat) // 301
DECL_TEMPLATE(freebsd, sys_modfnext) // 302
DECL_TEMPLATE(freebsd, sys_modfind) // 303
DECL_TEMPLATE(freebsd, sys_kldload) // 304
DECL_TEMPLATE(freebsd, sys_kldunload) // 305
DECL_TEMPLATE(freebsd, sys_kldfind) // 306
DECL_TEMPLATE(freebsd, sys_kldnext) // 307
DECL_TEMPLATE(freebsd, sys_kldstat) // 308
DECL_TEMPLATE(freebsd, sys_kldfirstmod) // 309
DECL_TEMPLATE(freebsd, sys_setresuid) // 311
DECL_TEMPLATE(freebsd, sys_setresgid) // 312
DECL_TEMPLATE(freebsd, sys_aio_return) //314
DECL_TEMPLATE(freebsd, sys_aio_suspend) // 315
DECL_TEMPLATE(freebsd, sys_aio_cancel) // 316
DECL_TEMPLATE(freebsd, sys_aio_error) // 317
DECL_TEMPLATE(freebsd, sys_yield) // 321
DECL_TEMPLATE(freebsd, sys_munlockall) // 325
DECL_TEMPLATE(freebsd, sys___getcwd) // 326
DECL_TEMPLATE(freebsd, sys_sched_setparam) // 327
DECL_TEMPLATE(freebsd, sys_sched_getparam) // 328
DECL_TEMPLATE(freebsd, sys_sched_setscheduler) // 329
DECL_TEMPLATE(freebsd, sys_sched_getscheduler) // 330
DECL_TEMPLATE(freebsd, sys_sched_yield) // 331
DECL_TEMPLATE(freebsd, sys_sched_get_priority_max) // 332
DECL_TEMPLATE(freebsd, sys_sched_get_priority_min) // 333
DECL_TEMPLATE(freebsd, sys_sched_rr_get_interval) // 334
DECL_TEMPLATE(freebsd, sys_utrace) // 335
DECL_TEMPLATE(freebsd, sys_kldsym) // 337
DECL_TEMPLATE(freebsd, sys_jail) // 338
// unimpl SYS_nnpfs_syscall 339
DECL_TEMPLATE(freebsd, sys_sigprocmask) // 340
DECL_TEMPLATE(freebsd, sys_sigsuspend) // 341
DECL_TEMPLATE(freebsd, sys_sigpending) // 343
DECL_TEMPLATE(freebsd, sys_sigtimedwait) // 345
DECL_TEMPLATE(freebsd, sys_sigwaitinfo) // 346
DECL_TEMPLATE(freebsd, sys___acl_get_file) // 347
DECL_TEMPLATE(freebsd, sys___acl_set_file) // 348
DECL_TEMPLATE(freebsd, sys___acl_get_fd) // // 349
DECL_TEMPLATE(freebsd, sys___acl_set_fd) // 350
DECL_TEMPLATE(freebsd, sys___acl_delete_file) // 351
DECL_TEMPLATE(freebsd, sys___acl_delete_fd) // 352
DECL_TEMPLATE(freebsd, sys___acl_aclcheck_file) // 353
DECL_TEMPLATE(freebsd, sys___acl_aclcheck_fd) // 354
DECL_TEMPLATE(freebsd, sys_extattrctl) // 355
DECL_TEMPLATE(freebsd, sys_extattr_set_file) // 356
DECL_TEMPLATE(freebsd, sys_extattr_get_file) // 357
DECL_TEMPLATE(freebsd, sys_extattr_delete_file) // 358
DECL_TEMPLATE(freebsd, sys_aio_waitcomplete) // 350
DECL_TEMPLATE(freebsd, sys_getresuid) // 360
DECL_TEMPLATE(freebsd, sys_getresgid) // 361
DECL_TEMPLATE(freebsd, sys_kqueue) // 362
#if (FREEBSD_VERS >= FREEBSD_12)
DECL_TEMPLATE(freebsd, sys_freebsd11_kevent) // 363
#else
DECL_TEMPLATE(freebsd, sys_kevent) // 363
#endif
DECL_TEMPLATE(freebsd, sys_extattr_set_fd) // 371
DECL_TEMPLATE(freebsd, sys_extattr_get_fd) // 372
DECL_TEMPLATE(freebsd, sys_extattr_delete_fd) // 373
DECL_TEMPLATE(freebsd, sys___setugid) // 374
DECL_TEMPLATE(freebsd, sys_eaccess) // 376
// unimpl afs3_syscall 377
DECL_TEMPLATE(freebsd, sys_nmount) // 378
// unimpl __mac_get_proc 384
// unimpl __mac_set_proc 385
// unimpl __mac_get_fd 386
// unimpl __mac_get_file 387
// unimpl __mac_set_fd 388
// unimpl __mac_set_file 389
DECL_TEMPLATE(freebsd, sys_kenv) // 390
DECL_TEMPLATE(freebsd, sys_lchflags) // 391
DECL_TEMPLATE(freebsd, sys_uuidgen) // 392
DECL_TEMPLATE(freebsd, sys_sendfile) // 292
#if (FREEBSD_VERS >= FREEBSD_12)
DECL_TEMPLATE(freebsd, sys_freebsd11_getfsstat) // 395
DECL_TEMPLATE(freebsd, sys_freebsd11_statfs) // 396
DECL_TEMPLATE(freebsd, sys_freebsd11_fstatfs) // 397
DECL_TEMPLATE(freebsd, sys_freebsd11_fhstatfs) // 398
#else
DECL_TEMPLATE(freebsd, sys_getfsstat) // 395
DECL_TEMPLATE(freebsd, sys_statfs) // 396
DECL_TEMPLATE(freebsd, sys_fstatfs) // 397
DECL_TEMPLATE(freebsd, sys_fhstatfs) // 398
#endif
// unimpl ksem_close 400
// unimpl ksem_post 401
// unimpl ksem_wait 402
// unimpl ksem_trywait 403
// unimpl ksem_init 404
// unimpl ksem_open 405
// unimpl ksem_unlink 406
// unimpl ksem_getvalue 407
// unimpl ksem_destroy 408
// unimpl __mac_get_pid 409
// unimpl __mac_get_link 410
// unimpl __mac_set_link 411
DECL_TEMPLATE(freebsd, sys_extattr_set_link) // 412
DECL_TEMPLATE(freebsd, sys_extattr_get_link) // 413
DECL_TEMPLATE(freebsd, sys_extattr_delete_link) // 414
// unimpl __mac_execve 415
DECL_TEMPLATE(freebsd, sys_sigaction) // 416
DECL_TEMPLATE(freebsd, sys_sigreturn) // 417
DECL_TEMPLATE(freebsd, sys_getcontext) // 421
DECL_TEMPLATE(freebsd, sys_setcontext) // 422
DECL_TEMPLATE(freebsd, sys_swapcontext) // 423
#if (FREEBSD_VERS >= FREEBSD_13_1)
DECL_TEMPLATE(freebsd, sys_freebsd13_swapoff) // 424
#else
DECL_TEMPLATE(freebsd, sys_swapoff) // 424
#endif
DECL_TEMPLATE(freebsd, sys___acl_get_link) // 425
DECL_TEMPLATE(freebsd, sys___acl_set_link) // 426
DECL_TEMPLATE(freebsd, sys___acl_delete_link) // 427
DECL_TEMPLATE(freebsd, sys___acl_aclcheck_link) // 428
DECL_TEMPLATE(freebsd, sys_sigwait) // 429
DECL_TEMPLATE(freebsd, sys_thr_create) // 430
DECL_TEMPLATE(freebsd, sys_thr_exit) // 431
DECL_TEMPLATE(freebsd, sys_thr_self) // 432
DECL_TEMPLATE(freebsd, sys_thr_kill) // 433
DECL_TEMPLATE(freebsd, sys__umtx_lock) // 434
DECL_TEMPLATE(freebsd, sys__umtx_unlock) // 435
DECL_TEMPLATE(freebsd, sys_jail_attach) // 436
DECL_TEMPLATE(freebsd, sys_extattr_list_fd) // 437
DECL_TEMPLATE(freebsd, sys_extattr_list_file) // 438
DECL_TEMPLATE(freebsd, sys_extattr_list_link) // 439
// unimpl ksem_timedwait 441
DECL_TEMPLATE(freebsd, sys_thr_suspend) // 442
DECL_TEMPLATE(freebsd, sys_thr_wake) // 443
DECL_TEMPLATE(freebsd, sys_kldunloadf) // 444
// unimpl audit 445
// unimpl auditon 446
// unimpl getauid 447
// unimpl setauid 448
// unimpl getaudit 449
// unimpl setaudit 450
// unimpl getaudit_addr 451
// unimpl setaudit_addr 452
// unimpl auditctl 453
DECL_TEMPLATE(freebsd, sys__umtx_op) // 454
DECL_TEMPLATE(freebsd, sys_thr_new) // 455
DECL_TEMPLATE(freebsd, sys_sigqueue) // 455
DECL_TEMPLATE(freebsd, sys_kmq_open) // 457
DECL_TEMPLATE(freebsd, sys_kmq_setattr) // 458
DECL_TEMPLATE(freebsd, sys_kmq_timedreceive) // 459
DECL_TEMPLATE(freebsd, sys_kmq_timedsend) // 460
DECL_TEMPLATE(freebsd, sys_kmq_notify) // 461
DECL_TEMPLATE(freebsd, sys_kmq_unlink) // 462
DECL_TEMPLATE(freebsd, sys_abort2) // 463
DECL_TEMPLATE(freebsd, sys_thr_set_name) // 464
DECL_TEMPLATE(freebsd, sys_aio_fsync) // 465
DECL_TEMPLATE(freebsd, sys_rtprio_thread) // 466
DECL_TEMPLATE(freebsd, sys_sctp_generic_sendmsg) // 472
DECL_TEMPLATE(freebsd, sys_sctp_generic_recvmsg) // 474
DECL_TEMPLATE(freebsd, sys_pread) // 475
DECL_TEMPLATE(freebsd, sys_pwrite) // 476
DECL_TEMPLATE(freebsd, sys_mmap) // 477
DECL_TEMPLATE(freebsd, sys_lseek) // 478
DECL_TEMPLATE(freebsd, sys_truncate) // 479
DECL_TEMPLATE(freebsd, sys_ftruncate) // 480
DECL_TEMPLATE(freebsd, sys_thr_kill2) // 481
DECL_TEMPLATE(freebsd, sys_shm_open) // 482
DECL_TEMPLATE(freebsd, sys_shm_unlink) // 483
DECL_TEMPLATE(freebsd, sys_cpuset) // 484
DECL_TEMPLATE(freebsd, sys_cpuset_setid) // 485
DECL_TEMPLATE(freebsd, sys_cpuset_getid) // 486
DECL_TEMPLATE(freebsd, sys_cpuset_getaffinity) // 487
DECL_TEMPLATE(freebsd, sys_cpuset_setaffinity) // 488
DECL_TEMPLATE(freebsd, sys_faccessat) // 489
DECL_TEMPLATE(freebsd, sys_fchmodat) //490
DECL_TEMPLATE(freebsd, sys_fchownat) // 491
DECL_TEMPLATE(freebsd, sys_fexecve) // 492
#if (FREEBSD_VERS >= FREEBSD_12)
DECL_TEMPLATE(freebsd, sys_freebsd11_fstatat) // 493
#else
DECL_TEMPLATE(freebsd, sys_fstatat) // 493
#endif
DECL_TEMPLATE(freebsd, sys_futimesat) // 494
DECL_TEMPLATE(freebsd, sys_linkat) // 495
DECL_TEMPLATE(freebsd, sys_mkdirat) // 496
DECL_TEMPLATE(freebsd, sys_mkfifoat) // 497
#if (FREEBSD_VERS >= FREEBSD_12)
DECL_TEMPLATE(freebsd, sys_freebsd11_mknodat) // 498
#else
DECL_TEMPLATE(freebsd, sys_mknodat) // 498
#endif
DECL_TEMPLATE(freebsd, sys_openat) // 499
DECL_TEMPLATE(freebsd, sys_readlinkat) // 500
DECL_TEMPLATE(freebsd, sys_renameat) // 501
DECL_TEMPLATE(freebsd, sys_symlinkat) // 502
DECL_TEMPLATE(freebsd, sys_unlinkat) // 503
DECL_TEMPLATE(freebsd, sys_posix_openpt) // 504
// unimp gssd_syscall 505
DECL_TEMPLATE(freebsd, sys_jail_get) // 506
DECL_TEMPLATE(freebsd, sys_jail_set) // 507
DECL_TEMPLATE(freebsd, sys_jail_remove) // 508
DECL_TEMPLATE(freebsd, sys_closefrom) // 508
DECL_TEMPLATE(freebsd, sys___semctl) // 510
DECL_TEMPLATE(freebsd, sys_msgctl) // 511
DECL_TEMPLATE(freebsd, sys_shmctl) // 512
DECL_TEMPLATE(freebsd, sys_lpathconf) // 513
DECL_TEMPLATE(freebsd, sys_cap_rights_get) // 515
DECL_TEMPLATE(freebsd, sys_cap_enter) // 516
DECL_TEMPLATE(freebsd, sys_cap_getmode) // 517
DECL_TEMPLATE(freebsd, sys_pdfork) // 518
DECL_TEMPLATE(freebsd, sys_pdkill) // 519
DECL_TEMPLATE(freebsd, sys_pdgetpid) // 520
DECL_TEMPLATE(freebsd, sys_pselect) // 522
DECL_TEMPLATE(freebsd, sys_getloginclass) // 523
DECL_TEMPLATE(freebsd, sys_setloginclass) // 524
DECL_TEMPLATE(freebsd, sys_rctl_get_racct) // 525
DECL_TEMPLATE(freebsd, sys_rctl_get_rules) // 526
DECL_TEMPLATE(freebsd, sys_rctl_get_limits) // 527
DECL_TEMPLATE(freebsd, sys_rctl_add_rule) // 528
DECL_TEMPLATE(freebsd, sys_rctl_remove_rule) // 529
DECL_TEMPLATE(freebsd, sys_posix_fallocate) // 530
DECL_TEMPLATE(freebsd, sys_posix_fadvise) // 531
DECL_TEMPLATE(freebsd, sys_wait6) // 532
DECL_TEMPLATE(freebsd, sys_cap_rights_limit) // 533
DECL_TEMPLATE(freebsd, sys_cap_ioctls_limit) // 534
DECL_TEMPLATE(freebsd, sys_cap_ioctls_get) // 535
DECL_TEMPLATE(freebsd, sys_cap_fcntls_limit) // 536
DECL_TEMPLATE(freebsd, sys_cap_fcntls_get) // 537
DECL_TEMPLATE(freebsd, sys_bindat) // 538
DECL_TEMPLATE(freebsd, sys_connectat) // 539
DECL_TEMPLATE(freebsd, sys_chflagsat) // 540
DECL_TEMPLATE(freebsd, sys_accept4) // 541
DECL_TEMPLATE(freebsd, sys_pipe2) // 542
DECL_TEMPLATE(freebsd, sys_aio_mlock) // 543
DECL_TEMPLATE(freebsd, sys_procctl) // 544
DECL_TEMPLATE(freebsd, sys_ppoll) // 545
DECL_TEMPLATE(freebsd, sys_futimens) // 546
DECL_TEMPLATE(freebsd, sys_utimensat) // 547
DECL_TEMPLATE(freebsd, sys_fdatasync) // 550
#if (FREEBSD_VERS >= FREEBSD_12)
DECL_TEMPLATE(freebsd, sys_fstat) // 551
DECL_TEMPLATE(freebsd, sys_fstatat) // 552
DECL_TEMPLATE(freebsd, sys_fhstat) // 553
DECL_TEMPLATE(freebsd, sys_getdirentries) // 554
DECL_TEMPLATE(freebsd, sys_statfs) // 555
DECL_TEMPLATE(freebsd, sys_fstatfs) // 556
DECL_TEMPLATE(freebsd, sys_getfsstat) // 557
DECL_TEMPLATE(freebsd, sys_fhstatfs) // 558
DECL_TEMPLATE(freebsd, sys_mknodat) // 559
DECL_TEMPLATE(freebsd, sys_kevent) // 560
DECL_TEMPLATE(freebsd, sys_cpuset_getdomain) // 561
DECL_TEMPLATE(freebsd, sys_cpuset_setdomain) // 562
DECL_TEMPLATE(freebsd, sys_getrandom) // 563
DECL_TEMPLATE(freebsd, sys_getfhat) // 654
DECL_TEMPLATE(freebsd, sys_fhlink) // 565
DECL_TEMPLATE(freebsd, sys_fhlinkat) // 566
DECL_TEMPLATE(freebsd, sys_fhreadlink) // 567
#endif
#if (FREEBSD_VERS >= FREEBSD_12_2)
DECL_TEMPLATE(freebsd, sys_funlinkat) // 568
DECL_TEMPLATE(freebsd, sys_copy_file_range) // 569
DECL_TEMPLATE(freebsd, sys___sysctlbyname) // 570
#if (FREEBSD_VERS >= FREEBSD_13_0)
// looks like close_range got backported
// to 12.2 leaving these 4 marked as UNIMPL in 12.2
DECL_TEMPLATE(freebsd, sys_shm_open2) // 571
// unimpl __NR_shm_rename 572
DECL_TEMPLATE(freebsd, sys_sigfastblock) // 573
DECL_TEMPLATE(freebsd, sys___realpathat) // 574
#endif
// unimpl __NR_close_range 575
#endif
#if (FREEBSD_VERS >= FREEBSD_13_0)
// unimpl __NR_rpctls_syscall 576
DECL_TEMPLATE(freebsd, sys___specialfd) // 577
// unimpl __NR_aio_writev 578
// unimpl __NR_aio_readv 579
#endif
#if (FREEBSD_VERS >= FREEBSD_13_1)
// unimpl __NR_fspacectl 580
// unimpl __NR_sched_getcpu 581
DECL_TEMPLATE(freebsd, sys_swapoff) // 582
#endif
DECL_TEMPLATE(freebsd, sys_fake_sigreturn)
#endif // PRIV_SYSWRAP_FREEBSD_H
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/