diff --git a/sys/compat/freebsd32/Makefile b/sys/compat/freebsd32/Makefile index 8777b1992768..b4f72fcc2bca 100644 --- a/sys/compat/freebsd32/Makefile +++ b/sys/compat/freebsd32/Makefile @@ -3,6 +3,6 @@ # $FreeBSD$ GENERATED_PREFIX= freebsd32_ -CAPABILITIES_CONF= capabilities.conf +SYSENT_FILE= ${SYSDIR}/kern/syscalls.master .include "../../conf/sysent.mk" diff --git a/sys/compat/freebsd32/capabilities.conf b/sys/compat/freebsd32/capabilities.conf deleted file mode 100644 index 3ec922d54920..000000000000 --- a/sys/compat/freebsd32/capabilities.conf +++ /dev/null @@ -1,784 +0,0 @@ -## -## Copyright (c) 2008-2010 Robert N. M. Watson -## All rights reserved. -## -## This software was developed at the University of Cambridge Computer -## Laboratory with support from a grant from Google, Inc. -## -## Redistribution and use in source and binary forms, with or without -## modification, are permitted provided that the following conditions -## are met: -## 1. Redistributions of source code must retain the above copyright -## notice, this list of conditions and the following disclaimer. -## 2. Redistributions in binary form must reproduce the above copyright -## notice, this list of conditions and the following disclaimer in the -## documentation and/or other materials provided with the distribution. -## -## THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -## ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -## OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -## LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -## OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -## SUCH DAMAGE. -## -## List of system calls enabled in capability mode, one name per line. -## -## System calls listed here operate either fully or partially in the absence -## of global namespaces or ambient authority. In capability mode system calls -## that operate only on global namespaces or require ambient authority have no -## utility and thus are not permitted. -## -## Notes: -## - sys_exit(2), abort2(2) and close(2) are very important. -## - Sorted alphabetically, please keep it that way. -## -## $FreeBSD$ -## - -## -## Allow ACL and MAC label operations by file descriptor, subject to -## capability rights. Allow MAC label operations on the current process but -## we will need to scope __mac_get_pid(2). -## -__acl_aclcheck_fd -__acl_delete_fd -__acl_get_fd -__acl_set_fd -__mac_get_fd -#__mac_get_pid -__mac_get_proc -__mac_set_fd -__mac_set_proc - -## -## Allow creating special file descriptors like eventfd(2). -## -__specialfd - -## -## Allow sysctl(2) as we scope internal to the call; this is a global -## namespace, but there are several critical sysctls required for almost -## anything to run, such as hw.pagesize. For now that policy lives in the -## kernel for performance and simplicity, but perhaps it could move to a -## proxying daemon in userspace. -## -__sysctl -__sysctlbyname - -## -## Allow umtx operations as these are scoped by address space. -## -## XXRW: Need to check this very carefully. -## -_umtx_op - -## -## Allow process termination using abort2(2). -## -abort2 - -## -## Allow accept(2) since it doesn't manipulate namespaces directly, rather -## relies on existing bindings on a socket, subject to capability rights. -## -accept -accept4 - -## -## Allow AIO operations by file descriptor, subject to capability rights. -## -aio_cancel -aio_error -aio_fsync -aio_read -aio_return -aio_suspend -aio_waitcomplete -aio_write -aio_writev -aio_readv - -## -## audit(2) is a global operation, submitting to the global trail, but it is -## controlled by privilege, and it might be useful to be able to submit -## records from sandboxes. For now, disallow, but we may want to think about -## providing some sort of proxy service for this. -## -#audit - -## -## Allow bindat(2). -## -bindat - -## -## Allow capability mode and capability system calls. -## -cap_enter -cap_fcntls_get -cap_fcntls_limit -cap_getmode -cap_ioctls_get -cap_ioctls_limit -__cap_rights_get -cap_rights_limit - -## -## Allow read-only clock operations. -## -clock_getres -clock_gettime - -## -## Always allow file descriptor close(2). -## -close -close_range -closefrom - -## -## Allow connectat(2). -## -connectat - -## -## copy_file_range(2) reads from one descriptor and writes to the other. -## -copy_file_range - -## -## cpuset(2) and related calls are limited to caller's own process/thread. -## -#cpuset -cpuset_getaffinity -cpuset_getdomain -#cpuset_getid -cpuset_setaffinity -cpuset_setdomain -#cpuset_setid - -## -## Always allow dup(2) and dup2(2) manipulation of the file descriptor table. -## -dup -dup2 - -## -## Allow extended attribute operations by file descriptor, subject to -## capability rights. -## -extattr_delete_fd -extattr_get_fd -extattr_list_fd -extattr_set_fd - -## -## Allow changing file flags, mode, and owner by file descriptor, subject to -## capability rights. -## -fchflags -fchmod -fchown - -## -## For now, allow fcntl(2), subject to capability rights, but this probably -## needs additional scoping. -## -fcntl - -## -## Allow fexecve(2), subject to capability rights. We perform some scoping, -## such as disallowing privilege escalation. -## -fexecve - -## -## Allow flock(2), subject to capability rights. -## -flock - -## -## Allow fork(2), even though it returns pids -- some applications seem to -## prefer this interface. -## -fork - -## -## Allow fpathconf(2), subject to capability rights. -## -fpathconf - -## -## Allow various file descriptor-based I/O operations, subject to capability -## rights. -## -freebsd11_fstat -freebsd11_fstatat -freebsd11_getdirentries -freebsd11_fstatfs -freebsd11_mknodat -freebsd6_ftruncate -freebsd6_lseek -freebsd6_mmap -freebsd6_pread -freebsd6_pwrite - -## -## Allow I/O-related file operations, subject to capability rights. -## -fspacectl - -## -## Allow querying file and file system state with fstat(2) and fstatfs(2), -## subject to capability rights. -## -fstat -fstatfs - -## -## Allow further file descriptor-based I/O operations, subject to capability -## rights. -## -fdatasync -fsync -ftruncate - -## -## Allow futimens(2) and futimes(2), subject to capability rights. -## -futimens -futimes - -## -## Allow querying process audit state, subject to normal access control. -## -getaudit -getaudit_addr -getauid - -## -## Allow thread context management with getcontext(2). -## -getcontext - -## -## Allow directory I/O on a file descriptor, subject to capability rights. -## Originally we had separate capabilities for directory-specific read -## operations, but on BSD we allow reading the raw directory data, so we just -## rely on CAP_READ now. -## -getdents -getdirentries - -## -## Allow querying certain trivial global state. -## -getdomainname - -## -## Allow querying certain per-process resource limit state. -## -getdtablesize - -## -## Allow querying current process credential state. -## -getegid -geteuid - -## -## Allow querying certain trivial global state. -## -gethostid -gethostname - -## -## Allow querying per-process timer. -## -getitimer - -## -## Allow querying current process credential state. -## -getgid -getgroups -getlogin -getloginclass - -## -## Allow querying certain trivial global state. -## -getpagesize -getpeername - -## -## Allow querying certain per-process scheduling, resource limit, and -## credential state. -## -## XXXRW: getpgid(2) needs scoping. It's not clear if it's worth scoping -## getppid(2). getpriority(2) needs scoping. getrusage(2) needs scoping. -## getsid(2) needs scoping. -## -getpgid -getpgrp -getpid -getppid -getpriority -getresgid -getresuid -getrlimit -getrusage -getsid - -## -## Allow getrandom -## -getrandom - -## -## Allow querying socket state, subject to capability rights. -## -## XXXRW: getsockopt(2) may need more attention. -## -getsockname -getsockopt - -## -## Allow querying the global clock. -## -gettimeofday - -## -## Allow querying current process credential state. -## -getuid - -## -## Allow ioctl(2), which hopefully will be limited by applications only to -## required commands with cap_ioctls_limit(2) syscall. -## -ioctl - -## -## Allow querying current process credential state. -## -issetugid - -## -## Allow kevent(2), as we will authorize based on capability rights on the -## target descriptor. -## -kevent - -## -## Allow kill(2), as we allow the process to send signals only to himself. -## -kill - -## -## Allow message queue operations on file descriptors, subject to capability -## rights. -## NOTE: Corresponding sysents are initialized in sys/kern/uipc_mqueue.c with -## SYF_CAPENABLED. -## -kmq_notify -kmq_setattr -kmq_timedreceive -kmq_timedsend - -## -## Allow kqueue(2), we will control use. -## -kqueue - -## -## Allow managing per-process timers. -## -ktimer_create -ktimer_delete -ktimer_getoverrun -ktimer_gettime -ktimer_settime - -## -## We can't allow ktrace(2) because it relies on a global namespace, but we -## might want to introduce an fktrace(2) of some sort. -## -#ktrace - -## -## Allow AIO operations by file descriptor, subject to capability rights. -## -lio_listio - -## -## Allow listen(2), subject to capability rights. -## -## XXXRW: One might argue this manipulates a global namespace. -## -listen - -## -## Allow I/O-related file descriptors, subject to capability rights. -## -lseek - -## -## Allow simple VM operations on the current process. -## -madvise -mincore -minherit -mlock -mlockall - -## -## Allow memory mapping a file descriptor, and updating protections, subject -## to capability rights. -## -mmap -mprotect - -## -## Allow simple VM operations on the current process. -## -msync -munlock -munlockall -munmap - -## -## Allow the current process to sleep. -## -nanosleep - -## -## Allow querying the global clock. -## -ntp_gettime - -## -## Allow AIO operations by file descriptor, subject to capability rights. -## -oaio_read -oaio_write - -## -## Allow simple VM operations on the current process. -## -break - -## -## Allow AIO operations by file descriptor, subject to capability rights. -## -olio_listio - -## -## Operations relative to directory capabilities. -## -chflagsat -faccessat -fchmodat -fchownat -fstatat -futimesat -linkat -mkdirat -mkfifoat -mknodat -openat -readlinkat -renameat -symlinkat -unlinkat -funlinkat -utimensat - -## -## Process descriptor-related system calls are allowed. -## -pdfork -pdgetpid -pdkill -#pdwait4 # not yet implemented - -## -## Allow pipe(2). -## -pipe -pipe2 - -## -## Allow poll(2), which will be scoped by capability rights. -## -poll -ppoll - -## -## Allow I/O-related file descriptors, subject to capability rights. -## -posix_fallocate -pread -preadv - -## -## Allow access to profiling state on the current process. -## -profil - -## -## Disallow ptrace(2) for now, but we do need debugging facilities in -## capability mode, so we will want to revisit this, possibly by scoping its -## operation. -## -#ptrace - -## -## Allow I/O-related file descriptors, subject to capability rights. -## -pwrite -pwritev -read -readv -recv -recvfrom -recvmsg - -## -## Allow real-time scheduling primitives to be used. -## -## XXXRW: These require scoping. -## -rtprio -rtprio_thread - -## -## Allow simple VM operations on the current process. -## -sbrk - -## -## Allow querying trivial global scheduler state. -## -sched_get_priority_max -sched_get_priority_min -sched_getcpu - -## -## Allow various thread/process scheduler operations. -## -## XXXRW: Some of these require further scoping. -## -sched_getparam -sched_getscheduler -sched_rr_get_interval -sched_setparam -sched_setscheduler -sched_yield - -## -## Allow I/O-related file descriptors, subject to capability rights. -## NOTE: Corresponding sysents are initialized in sys/netinet/sctp_syscalls.c -## with SYF_CAPENABLED. -## -sctp_generic_recvmsg -sctp_generic_sendmsg -sctp_generic_sendmsg_iov -sctp_peeloff - -## -## Allow pselect(2) and select(2), which will be scoped by capability rights. -## -## XXXRW: But is it? -## -pselect -select - -## -## Allow I/O-related file descriptors, subject to capability rights. Use of -## explicit addresses here is restricted by the system calls themselves. -## -send -sendfile -sendmsg -sendto - -## -## Allow setting per-process audit state, which is controlled separately by -## privileges. -## -setaudit -setaudit_addr -setauid - -## -## Allow setting thread context. -## -setcontext - -## -## Allow setting current process credential state, which is controlled -## separately by privilege. -## -setegid -seteuid -setgid - -## -## Allow use of the process interval timer. -## -setitimer - -## -## Allow setpriority(2). -## -## XXXRW: Requires scoping. -## -setpriority - -## -## Allow setting current process credential state, which is controlled -## separately by privilege. -## -setregid -setresgid -setresuid -setreuid - -## -## Allow setting process resource limits with setrlimit(2). -## -setrlimit - -## -## Allow creating a new session with setsid(2). -## -setsid - -## -## Allow setting socket options with setsockopt(2), subject to capability -## rights. -## -## XXXRW: Might require scoping. -## -setsockopt - -## -## Allow setting current process credential state, which is controlled -## separately by privilege. -## -setuid - -## -## shm_open(2) is scoped so as to allow only access to new anonymous objects. -## -shm_open -shm_open2 - -## -## Allow I/O-related file descriptors, subject to capability rights. -## -shutdown - -## -## Allow signal control on current process. -## -sigaction -sigaltstack -sigblock -sigfastblock -sigpending -sigprocmask -sigqueue -sigreturn -sigsetmask -sigstack -sigsuspend -sigtimedwait -sigvec -sigwaitinfo -sigwait - -## -## Allow creating new socket pairs with socket(2) and socketpair(2). -## -socket -socketpair - -## -## Allow simple VM operations on the current process. -## -## XXXRW: Kernel doesn't implement this, so drop? -## -sstk - -## -## Do allow sync(2) for now, but possibly shouldn't. -## -sync - -## -## Always allow process termination with sys_exit(2). -## -sys_exit - -## -## sysarch(2) does rather diverse things, but is required on at least i386 -## in order to configure per-thread data. As such, it's scoped on each -## architecture. -## -sysarch - -## -## Allow thread operations operating only on current process. -## -thr_create -thr_exit -thr_kill - -## -## Disallow thr_kill2(2), as it may operate beyond the current process. -## -## XXXRW: Requires scoping. -## -#thr_kill2 - -## -## Allow thread operations operating only on current process. -## -thr_new -thr_self -thr_set_name -thr_suspend -thr_wake - -## -## Allow manipulation of the current process umask with umask(2). -## -umask - -## -## Allow submitting of process trace entries with utrace(2). -## -utrace - -## -## Allow generating UUIDs with uuidgen(2). -## -uuidgen - -## -## Allow I/O-related file descriptors, subject to capability rights. -## -write -writev - -## -## Allow processes to yield(2). -## -yield diff --git a/sys/compat/freebsd32/syscalls.conf b/sys/compat/freebsd32/syscalls.conf index 4ccf7f545dde..6b80018165df 100644 --- a/sys/compat/freebsd32/syscalls.conf +++ b/sys/compat/freebsd32/syscalls.conf @@ -9,6 +9,51 @@ syscallprefix="FREEBSD32_SYS_" switchname="freebsd32_sysent" namesname="freebsd32_syscallnames" systrace="freebsd32_systrace_args.c" +abi_flags="long_size|pointer_size|time_t_size|pair_64bit" abi_func_prefix="freebsd32_" -abi_flags="pair_64bit" -capabilities_conf="capabilities.conf" +abi_type_suffix="32" +abi_long="int32_t" +abi_u_long="uint32_t" +abi_semid_t="int32_t" +abi_size_t="uint32_t" +abi_ptr_array_t="uint32_t" +abi_headers="#include " + +# +# Variables below this line are exceptions to the ABI changes programatically +# detected by makesyscalls.lua. New system calls should not require an entry +# here in nearly virtually all cases. New entries are almost certainly +# representative of badly designed interfaces. +# + +# System calls that require freebsd32-specific handling: +# fcntl - need to sign extend arg unless it's a pointer +# ksem_init, ksem_open - XXX not required +# mprotect - i386 read-implies-exec +# msgsys, semsys, shmsys - some sub-syscalls require compat +# sigqueue - union sival requires special handing on big-endian +# sigreturn - struct osigcontext +# sysarch - always MD +# _umtx_lock _umtx_unlock _umtx_op - arguments require special handling +syscall_abi_change="fcntl ksem_init ksem_open mprotect msgsys semsys shmsys sigqueue sigreturn sysarch _umtx_lock _umtx_unlock _umtx_op" + +# System calls that appear to require handling, but don't: +# aio_cancel - the aiocb pointer is just a virtual address +# thr_* - the lack of sign extension of long args is OK +# sctp_generic_* - iovec differences handled internally +syscall_no_abi_change="aio_cancel thr_exit thr_kill thr_kill2 thr_self thr_set_name thr_wake sctp_generic_sendmsg_iov sctp_generic_recvmsg" + +# OBSOL syscalls +# getkerninfo - obsolete and can't be implemented (kernel virtual addresses can't fit in 32-bits) +obsol="getkerninfo" + +# Syscalls without implementations: +# *mac_* - should be implemented +# afs3_syscall - requires significant porting, probably doesn't make sense +# kldsym - can't be implemented (kernel virtual addresses can't fit in 32-bits) +# lgetfh - should be implemented +# nlm_syscall - requires significant porting, probably doesn't make sense +# nnpfs_syscall - requires significant porting, probably doesn't make sense +# ntp_gettime - should be implemented +# thr_create - was unimplemented and appears to be unnecessicary +unimpl="afs3_syscall kldsym __mac_get_proc __mac_set_proc __mac_get_fd __mac_get_file __mac_set_fd __mac_set_file __mac_get_pid __mac_get_link __mac_set_link __mac_execve mac_syscall nfssvc nlm_syscall ntp_gettime lgetfh nnpfs_syscall thr_create" diff --git a/sys/compat/freebsd32/syscalls.master b/sys/compat/freebsd32/syscalls.master deleted file mode 100644 index d4e309c8f68b..000000000000 --- a/sys/compat/freebsd32/syscalls.master +++ /dev/null @@ -1,1127 +0,0 @@ - $FreeBSD$ -; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 -; from: src/sys/kern/syscalls.master 1.107 -; -; System call name/number master file. -; Processed to created init_sysent.c, syscalls.c and syscall.h. - -; Columns: number audit type name alt{name,tag,rtyp}/comments -; number system call number, must be in order -; audit the audit event associated with the system call -; A value of AUE_NULL means no auditing, but it also means that -; there is no audit event for the call at this time. For the -; case where the event exists, but we don't want auditing, the -; event should be #defined to AUE_NULL in audit_kevents.h. -; type one of STD, OBSOL, UNIMPL, COMPAT, COMPAT4, COMPAT6, -; COMPAT7, COMPAT11, COMPAT12, NODEF, NOARGS, NOPROTO, NOSTD -; The COMPAT* options may be combined with one or more NO* -; options separated by '|' with no spaces (e.g. COMPAT|NOARGS) -; name pseudo-prototype of syscall routine -; If one of the following alts is different, then all appear: -; altname name of system call if different -; alttag name of args struct tag if different from [o]`name'"_args" -; altrtyp return type if not int (bogus - syscalls always return int) -; for UNIMPL/OBSOL, name continues with comments - -; types: -; STD always included -; COMPAT included on COMPAT #ifdef -; COMPAT4 included on COMPAT_FREEBSD4 #ifdef (FreeBSD 4 compat) -; COMPAT6 included on COMPAT_FREEBSD6 #ifdef (FreeBSD 6 compat) -; COMPAT7 included on COMPAT_FREEBSD7 #ifdef (FreeBSD 7 compat) -; COMPAT10 included on COMPAT_FREEBSD10 #ifdef (FreeBSD 10 compat) -; COMPAT11 included on COMPAT_FREEBSD11 #ifdef (FreeBSD 11 compat) -; COMPAT12 included on COMPAT_FREEBSD12 #ifdef (FreeBSD 12 compat) -; OBSOL obsolete, not included in system, only specifies name -; UNIMPL not implemented, placeholder only -; NOSTD implemented but as a lkm that can be statically -; compiled in; sysent entry will be filled with lkmressys -; so the SYSCALL_MODULE macro works -; NOARGS same as STD except do not create structure in sys/sysproto.h -; NODEF same as STD except only have the entry in the syscall table -; added. Meaning - do not create structure or function -; prototype in sys/sysproto.h -; NOPROTO same as STD except do not create structure or -; function prototype in sys/sysproto.h. Does add a -; definition to syscall.h besides adding a sysent. - -; #ifdef's, etc. may be included, and are copied to the output files. - -#include -#include -#include -#include - -; Reserved/unimplemented system calls in the range 0-150 inclusive -; are reserved for use in future Berkeley releases. -; Additional system calls implemented in vendor and other -; redistributions should be placed in the reserved range at the end -; of the current calls. - -0 AUE_NULL NOPROTO { int nosys(void); } syscall nosys_args int -1 AUE_EXIT NOPROTO { void sys_exit(int rval); } exit \ - sys_exit_args void -2 AUE_FORK NOPROTO { int fork(void); } -3 AUE_READ NOPROTO { ssize_t read(int fd, void *buf, \ - size_t nbyte); } -4 AUE_WRITE NOPROTO { ssize_t write(int fd, const void *buf, \ - size_t nbyte); } -5 AUE_OPEN_RWTC NOPROTO { int open(const char *path, int flags, \ - mode_t mode); } -6 AUE_CLOSE NOPROTO { int close(int fd); } -7 AUE_WAIT4 STD { int freebsd32_wait4(int pid, int *status, \ - int options, struct rusage32 *rusage); } -8 AUE_CREAT COMPAT|NOPROTO { int creat(const char *path, \ - int mode); } -9 AUE_LINK NOPROTO { int link(const char *path, \ - const char *link); } -10 AUE_UNLINK NOPROTO { int unlink(const char *path); } -11 AUE_NULL OBSOL execv -12 AUE_CHDIR NOPROTO { int chdir(const char *path); } -13 AUE_FCHDIR NOPROTO { int fchdir(int fd); } -14 AUE_MKNOD COMPAT11|NOPROTO { int mknod(const char *path, \ - int mode, uint32_t dev); } -15 AUE_CHMOD NOPROTO { int chmod(const char *path, mode_t mode); } -16 AUE_CHOWN NOPROTO { int chown(const char *path, int uid, int gid); } -17 AUE_NULL NOPROTO { void *break(char *nsize); } -18 AUE_GETFSSTAT COMPAT4 { int freebsd32_getfsstat( \ - struct ostatfs32 *buf, int32_t bufsize, \ - int mode); } -19 AUE_LSEEK COMPAT { int freebsd32_lseek(int fd, int32_t offset, \ - int whence); } -20 AUE_GETPID NOPROTO { pid_t getpid(void); } -21 AUE_MOUNT NOPROTO { int mount(const char *type, \ - const char *path, \ - int flags, void *data); } -22 AUE_UMOUNT NOPROTO { int unmount(const char *path, int flags); } -23 AUE_SETUID NOPROTO { int setuid(uid_t uid); } -24 AUE_GETUID NOPROTO { uid_t getuid(void); } -25 AUE_GETEUID NOPROTO { uid_t geteuid(void); } -26 AUE_PTRACE STD { int freebsd32_ptrace(int req, pid_t pid, \ - caddr_t addr, int data); } -27 AUE_RECVMSG STD { ssize_t freebsd32_recvmsg(int s, struct msghdr32 *msg, \ - int flags); } -28 AUE_SENDMSG STD { ssize_t freebsd32_sendmsg(int s, \ - const struct msghdr32 *msg, int flags); } -29 AUE_RECVFROM NOPROTO { ssize_t recvfrom(int s, void *buf, \ - size_t len, int flags, \ - struct sockaddr *from, \ - __socklen_t *fromlenaddr); } -30 AUE_ACCEPT NOPROTO { int accept(int s, struct sockaddr *name, \ - __socklen_t *anamelen); } -31 AUE_GETPEERNAME NOPROTO { int getpeername(int fdes, \ - struct sockaddr *asa, \ - __socklen_t *alen); } -32 AUE_GETSOCKNAME NOPROTO { int getsockname(int fdes, \ - struct sockaddr *asa, \ - __socklen_t *alen); } -33 AUE_ACCESS NOPROTO { int access(const char *path, int amode); } -34 AUE_CHFLAGS NOPROTO { int chflags(const char *path, u_long flags); } -35 AUE_FCHFLAGS NOPROTO { int fchflags(int fd, u_long flags); } -36 AUE_SYNC NOPROTO { int sync(void); } -37 AUE_KILL NOPROTO { int kill(int pid, int signum); } -38 AUE_STAT COMPAT { int freebsd32_stat(const char *path, \ - struct ostat32 *ub); } -39 AUE_GETPPID NOPROTO { pid_t getppid(void); } -40 AUE_LSTAT COMPAT { int freebsd32_lstat(const char *path, \ - struct ostat32 *ub); } -41 AUE_DUP NOPROTO { int dup(u_int fd); } -42 AUE_PIPE COMPAT10|NOPROTO { int pipe(void); } -43 AUE_GETEGID NOPROTO { gid_t getegid(void); } -44 AUE_PROFILE NOPROTO { int profil(char *samples, size_t size, \ - size_t offset, u_int scale); } -45 AUE_KTRACE NOPROTO { int ktrace(const char *fname, int ops, \ - int facs, int pid); } -46 AUE_SIGACTION COMPAT { int freebsd32_sigaction( int signum, \ - struct osigaction32 *nsa, \ - struct osigaction32 *osa); } -47 AUE_GETGID NOPROTO { gid_t getgid(void); } -48 AUE_SIGPROCMASK COMPAT|NOPROTO { int sigprocmask(int how, osigset_t mask); } -49 AUE_GETLOGIN NOPROTO { int getlogin(char *namebuf, \ - u_int namelen); } -50 AUE_SETLOGIN NOPROTO { int setlogin(const char *namebuf); } -51 AUE_ACCT NOPROTO { int acct(const char *path); } -52 AUE_SIGPENDING COMPAT|NOPROTO { int sigpending(void); } -53 AUE_SIGALTSTACK STD { int freebsd32_sigaltstack( \ - const struct sigaltstack32 *ss, \ - struct sigaltstack32 *oss); } -54 AUE_IOCTL STD { int freebsd32_ioctl(int fd, u_long com, \ - char *data); } -55 AUE_REBOOT NOPROTO { int reboot(int opt); } -56 AUE_REVOKE NOPROTO { int revoke(const char *path); } -57 AUE_SYMLINK NOPROTO { int symlink(const char *path, \ - const char *link); } -58 AUE_READLINK NOPROTO { ssize_t readlink(const char *path, char *buf, \ - size_t count); } -59 AUE_EXECVE STD { int freebsd32_execve(const char *fname, \ - uint32_t *argv, uint32_t *envv); } -60 AUE_UMASK NOPROTO { mode_t umask(mode_t newmask); } -61 AUE_CHROOT NOPROTO { int chroot(const char *path); } -62 AUE_FSTAT COMPAT { int freebsd32_fstat(int fd, \ - struct ostat32 *sb); } -63 AUE_NULL OBSOL ogetkerninfo -64 AUE_NULL COMPAT|NOPROTO { int getpagesize(void); } -65 AUE_MSYNC NOPROTO { int msync(void *addr, size_t len, \ - int flags); } -66 AUE_VFORK NOPROTO { int vfork(void); } -67 AUE_NULL OBSOL vread -68 AUE_NULL OBSOL vwrite -69 AUE_SBRK NOPROTO { int sbrk(int incr); } -70 AUE_SSTK NOPROTO { int sstk(int incr); } -71 AUE_MMAP COMPAT { void *freebsd32_mmap(void *addr, int len, \ - int prot, int flags, int fd, int32_t pos); } -72 AUE_O_VADVISE COMPAT11|NOPROTO { int vadvise(int anom); } -73 AUE_MUNMAP NOPROTO { int munmap(void *addr, size_t len); } -74 AUE_MPROTECT STD { int freebsd32_mprotect(const void *addr, \ - size_t len, int prot); } -75 AUE_MADVISE NOPROTO { int madvise(void *addr, size_t len, \ - int behav); } -76 AUE_NULL OBSOL vhangup -77 AUE_NULL OBSOL vlimit -78 AUE_MINCORE NOPROTO { int mincore(const void *addr, size_t len, \ - char *vec); } -79 AUE_GETGROUPS NOPROTO { int getgroups(int gidsetsize, \ - gid_t *gidset); } -80 AUE_SETGROUPS NOPROTO { int setgroups(int gidsetsize, \ - const gid_t *gidset); } -81 AUE_GETPGRP NOPROTO { int getpgrp(void); } -82 AUE_SETPGRP NOPROTO { int setpgid(int pid, int pgid); } -83 AUE_SETITIMER STD { int freebsd32_setitimer(int which, \ - const struct itimerval32 *itv, \ - struct itimerval32 *oitv); } -84 AUE_WAIT4 COMPAT|NOPROTO { int wait(void); } -; XXX implement -85 AUE_SWAPON NOPROTO { int swapon(const char *name); } -86 AUE_GETITIMER STD { int freebsd32_getitimer(int which, \ - struct itimerval32 *itv); } -87 AUE_SYSCTL COMPAT|NOPROTO { int gethostname( \ - char *hostname, u_int len); } -88 AUE_SYSCTL COMPAT|NOPROTO { int sethostname( \ - char *hostname, u_int len); } -89 AUE_GETDTABLESIZE NOPROTO { int getdtablesize(void); } -90 AUE_DUP2 NOPROTO { int dup2(u_int from, u_int to); } -91 AUE_NULL RESERVED -92 AUE_FCNTL STD { int freebsd32_fcntl(int fd, int cmd, \ - int32_t arg); } -93 AUE_SELECT STD { int freebsd32_select(int nd, fd_set *in, \ - fd_set *ou, fd_set *ex, \ - struct timeval32 *tv); } -94 AUE_NULL RESERVED -95 AUE_FSYNC NOPROTO { int fsync(int fd); } -96 AUE_SETPRIORITY NOPROTO { int setpriority(int which, int who, \ - int prio); } -97 AUE_SOCKET NOPROTO { int socket(int domain, int type, \ - int protocol); } -98 AUE_CONNECT NOPROTO { int connect(int s, \ - const struct sockaddr *name, \ - __socklen_t namelen); } -99 AUE_ACCEPT COMPAT|NOPROTO { int accept(int s, \ - struct sockaddr *name, \ - __socklen_t *anamelen); } -100 AUE_GETPRIORITY NOPROTO { int getpriority(int which, int who); } -101 AUE_SEND COMPAT|NOPROTO { int send(int s, const void *buf, \ - int len, int flags); } -102 AUE_RECV COMPAT|NOPROTO { int recv(int s, void *buf, int len, \ - int flags); } -103 AUE_SIGRETURN COMPAT { int freebsd32_sigreturn( \ - struct ia32_sigcontext3 *sigcntxp); } -104 AUE_BIND NOPROTO { int bind(int s, const struct sockaddr *name, \ - __socklen_t namelen); } -105 AUE_SETSOCKOPT NOPROTO { int setsockopt(int s, int level, \ - int name, const void *val, __socklen_t valsize); } -106 AUE_LISTEN NOPROTO { int listen(int s, int backlog); } -107 AUE_NULL OBSOL vtimes -108 AUE_NULL COMPAT { int freebsd32_sigvec(int signum, \ - struct sigvec32 *nsv, \ - struct sigvec32 *osv); } -109 AUE_NULL COMPAT|NOPROTO { int sigblock(int mask); } -110 AUE_NULL COMPAT|NOPROTO { int sigsetmask(int mask); } -111 AUE_NULL COMPAT|NOPROTO { int sigsuspend( int mask); } -112 AUE_NULL COMPAT { int freebsd32_sigstack( \ - struct sigstack32 *nss, \ - struct sigstack32 *oss); } -113 AUE_RECVMSG COMPAT { int freebsd32_recvmsg(int s, \ - struct omsghdr32 *msg, int flags); } -114 AUE_SENDMSG COMPAT { int freebsd32_sendmsg(int s, \ - const struct omsghdr32 *msg, int flags); } -115 AUE_NULL OBSOL vtrace -116 AUE_GETTIMEOFDAY STD { int freebsd32_gettimeofday( \ - struct timeval32 *tp, \ - struct timezone *tzp); } -117 AUE_GETRUSAGE STD { int freebsd32_getrusage(int who, \ - struct rusage32 *rusage); } -118 AUE_GETSOCKOPT NOPROTO { int getsockopt(int s, int level, \ - int name, void *val, __socklen_t *avalsize); } -119 AUE_NULL RESERVED -120 AUE_READV STD { int freebsd32_readv(int fd, \ - struct iovec32 *iovp, u_int iovcnt); } -121 AUE_WRITEV STD { int freebsd32_writev(int fd, \ - struct iovec32 *iovp, u_int iovcnt); } -122 AUE_SETTIMEOFDAY STD { int freebsd32_settimeofday( \ - const struct timeval32 *tv, \ - const struct timezone *tzp); } -123 AUE_FCHOWN NOPROTO { int fchown(int fd, int uid, int gid); } -124 AUE_FCHMOD NOPROTO { int fchmod(int fd, mode_t mode); } -125 AUE_RECVFROM COMPAT|NOPROTO { int recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, __socklen_t *fromlenaddr); } recvfrom recvfrom_args int -126 AUE_SETREUID NOPROTO { int setreuid(int ruid, int euid); } -127 AUE_SETREGID NOPROTO { int setregid(int rgid, int egid); } -128 AUE_RENAME NOPROTO { int rename(const char *from, \ - const char *to); } -129 AUE_TRUNCATE COMPAT { int freebsd32_truncate(const char *path, \ - int32_t length); } -130 AUE_FTRUNCATE COMPAT { int freebsd32_ftruncate(int fd, \ - int32_t length); } -131 AUE_FLOCK NOPROTO { int flock(int fd, int how); } -132 AUE_MKFIFO NOPROTO { int mkfifo(const char *path, mode_t mode); } -133 AUE_SENDTO NOPROTO { ssize_t sendto(int s, const void *buf, \ - size_t len, int flags, \ - const struct sockaddr *to, \ - __socklen_t tolen); } -134 AUE_SHUTDOWN NOPROTO { int shutdown(int s, int how); } -135 AUE_SOCKETPAIR NOPROTO { int socketpair(int domain, int type, \ - int protocol, int *rsv); } -136 AUE_MKDIR NOPROTO { int mkdir(const char *path, mode_t mode); } -137 AUE_RMDIR NOPROTO { int rmdir(const char *path); } -138 AUE_UTIMES STD { int freebsd32_utimes(const char *path, \ - const struct timeval32 *tptr); } -139 AUE_NULL OBSOL 4.2 sigreturn -140 AUE_ADJTIME STD { int freebsd32_adjtime( \ - const struct timeval32 *delta, \ - struct timeval32 *olddelta); } -141 AUE_GETPEERNAME COMPAT|NOPROTO { int getpeername(int fdes, \ - struct sockaddr *asa, \ - __socklen_t *alen); } -142 AUE_SYSCTL COMPAT|NOPROTO { long gethostid(void); } -143 AUE_SYSCTL COMPAT { int freebsd32_sethostid(int32_t hostid); } -144 AUE_GETRLIMIT COMPAT|NOPROTO { int getrlimit(u_int which, \ - struct orlimit *rlp); } -145 AUE_SETRLIMIT COMPAT|NOPROTO { int setrlimit(u_int which, \ - struct orlimit *rlp); } -146 AUE_KILLPG COMPAT|NOPROTO { int killpg(int pgid, int signum); } -147 AUE_SETSID NOPROTO { int setsid(void); } -148 AUE_QUOTACTL NOPROTO { int quotactl(const char *path, int cmd, \ - int uid, void *arg); } -149 AUE_O_QUOTA COMPAT|NOPROTO { int quota(void); } -150 AUE_GETSOCKNAME COMPAT|NOPROTO { int getsockname(int fdec, struct sockaddr *asa, __socklen_t *alen); } getsockname getsockname_args int - -151 AUE_NULL RESERVED -152 AUE_NULL RESERVED -153 AUE_NULL RESERVED -; 154 is initialised by the NLM code, if present. -154 AUE_NULL UNIMPL nlm_syscall -; 155 is initialized by the NFS code, if present. -; XXX this is a problem!!! -155 AUE_NFS_SVC UNIMPL nfssvc -156 AUE_GETDIRENTRIES COMPAT { int freebsd32_getdirentries(int fd, \ - char *buf, u_int count, int32_t *basep); } -157 AUE_STATFS COMPAT4 { int freebsd32_statfs(const char *path, \ - struct ostatfs32 *buf); } -158 AUE_FSTATFS COMPAT4 { int freebsd32_fstatfs(int fd, \ - struct ostatfs32 *buf); } -159 AUE_NULL RESERVED -160 AUE_LGETFH UNIMPL lgetfh -161 AUE_NFS_GETFH NOPROTO { int getfh(const char *fname, \ - struct fhandle *fhp); } -162 AUE_SYSCTL COMPAT4|NOPROTO { int getdomainname(char *domainname, \ - int len); } -163 AUE_SYSCTL COMPAT4|NOPROTO { int setdomainname(char *domainname, \ - int len); } -164 AUE_NULL COMPAT4|NOPROTO { int uname(struct utsname *name); } -165 AUE_SYSARCH STD { int freebsd32_sysarch(int op, char *parms); } -166 AUE_RTPRIO NOPROTO { int rtprio(int function, pid_t pid, \ - struct rtprio *rtp); } -167 AUE_NULL RESERVED -168 AUE_NULL RESERVED -169 AUE_SEMSYS NOSTD { int freebsd32_semsys(int which, int a2, \ - int a3, int a4, int a5); } -170 AUE_MSGSYS NOSTD { int freebsd32_msgsys(int which, int a2, \ - int a3, int a4, int a5, int a6); } -171 AUE_SHMSYS NOSTD { int freebsd32_shmsys(int which, int a2, \ - int a3, int a4); } -172 AUE_NULL RESERVED -173 AUE_PREAD COMPAT6 { ssize_t freebsd32_pread(int fd, void *buf, \ - size_t nbyte, int pad, \ - off_t offset); } -174 AUE_PWRITE COMPAT6 { ssize_t freebsd32_pwrite(int fd, \ - const void *buf, size_t nbyte, int pad, \ - off_t offset); } -175 AUE_SETFIB NOPROTO { int setfib(int fibnum); } -176 AUE_NTP_ADJTIME STD { int freebsd32_ntp_adjtime( \ - struct timex32 *tp); } -177 AUE_NULL RESERVED -178 AUE_NULL RESERVED -179 AUE_NULL RESERVED -180 AUE_NULL RESERVED - -; Syscalls 181-199 are used by/reserved for BSD -181 AUE_SETGID NOPROTO { int setgid(gid_t gid); } -182 AUE_SETEGID NOPROTO { int setegid(gid_t egid); } -183 AUE_SETEUID NOPROTO { int seteuid(uid_t euid); } -184 AUE_NULL OBSOL lfs_bmapv -185 AUE_NULL OBSOL lfs_markv -186 AUE_NULL OBSOL lfs_segclean -187 AUE_NULL OBSOL lfs_segwait -188 AUE_STAT COMPAT11 { int freebsd32_stat(const char *path, \ - struct freebsd11_stat32 *ub); } -189 AUE_FSTAT COMPAT11 { int freebsd32_fstat(int fd, \ - struct freebsd11_stat32 *sb); } -190 AUE_LSTAT COMPAT11 { int freebsd32_lstat(const char *path, \ - struct freebsd11_stat32 *ub); } -191 AUE_PATHCONF NOPROTO { int pathconf(const char *path, int name); } -192 AUE_FPATHCONF NOPROTO { int fpathconf(int fd, int name); } -193 AUE_NULL RESERVED -194 AUE_GETRLIMIT NOPROTO { int getrlimit(u_int which, \ - struct rlimit *rlp); } getrlimit \ - __getrlimit_args int -195 AUE_SETRLIMIT NOPROTO { int setrlimit(u_int which, \ - struct rlimit *rlp); } setrlimit \ - __setrlimit_args int -196 AUE_GETDIRENTRIES COMPAT11 { int freebsd32_getdirentries(int fd, \ - char *buf, u_int count, int32_t *basep); } -197 AUE_MMAP COMPAT6 { void *freebsd32_mmap(void *addr, \ - size_t len, int prot, int flags, int fd, \ - int pad, off_t pos); } -198 AUE_NULL NOPROTO { int nosys(void); } __syscall \ - __syscall_args int -199 AUE_LSEEK COMPAT6 { off_t freebsd32_lseek(int fd, int pad, \ - off_t offset, \ - int whence); } -200 AUE_TRUNCATE COMPAT6 { int freebsd32_truncate(const char *path, \ - int pad, uint32_t length1, \ - uint32_t length2); } -201 AUE_FTRUNCATE COMPAT6 { int freebsd32_ftruncate(int fd, int pad, \ - off_t length); } -202 AUE_SYSCTL STD { int freebsd32___sysctl(int *name, \ - u_int namelen, void *old, \ - uint32_t *oldlenp, const void *new, \ - size_t newlen); } -203 AUE_MLOCK NOPROTO { int mlock(const void *addr, \ - size_t len); } -204 AUE_MUNLOCK NOPROTO { int munlock(const void *addr, \ - size_t len); } -205 AUE_UNDELETE NOPROTO { int undelete(const char *path); } -206 AUE_FUTIMES STD { int freebsd32_futimes(int fd, \ - const struct timeval32 *tptr); } -207 AUE_GETPGID NOPROTO { int getpgid(pid_t pid); } -208 AUE_NULL RESERVED -209 AUE_POLL NOPROTO { int poll(struct pollfd *fds, u_int nfds, \ - int timeout); } - -; -; The following are reserved for loadable syscalls -; -210 AUE_NULL NODEF|NOTSTATIC lkmnosys lkmnosys nosys_args int -211 AUE_NULL NODEF|NOTSTATIC lkmnosys lkmnosys nosys_args int -212 AUE_NULL NODEF|NOTSTATIC lkmnosys lkmnosys nosys_args int -213 AUE_NULL NODEF|NOTSTATIC lkmnosys lkmnosys nosys_args int -214 AUE_NULL NODEF|NOTSTATIC lkmnosys lkmnosys nosys_args int -215 AUE_NULL NODEF|NOTSTATIC lkmnosys lkmnosys nosys_args int -216 AUE_NULL NODEF|NOTSTATIC lkmnosys lkmnosys nosys_args int -217 AUE_NULL NODEF|NOTSTATIC lkmnosys lkmnosys nosys_args int -218 AUE_NULL NODEF|NOTSTATIC lkmnosys lkmnosys nosys_args int -219 AUE_NULL NODEF|NOTSTATIC lkmnosys lkmnosys nosys_args int - -220 AUE_SEMCTL COMPAT7|NOSTD { int freebsd32___semctl( \ - int semid, int semnum, \ - int cmd, union semun_old32 *arg); } -221 AUE_SEMGET NOSTD|NOPROTO { int semget(key_t key, int nsems, \ - int semflg); } -222 AUE_SEMOP NOSTD|NOPROTO { int semop(int semid, \ - struct sembuf *sops, size_t nsops); } -223 AUE_NULL OBSOL semconfig -224 AUE_MSGCTL COMPAT7|NOSTD { int freebsd32_msgctl( \ - int msqid, int cmd, \ - struct msqid_ds_old32 *buf); } -225 AUE_MSGGET NOSTD|NOPROTO { int msgget(key_t key, int msgflg); } -226 AUE_MSGSND NOSTD { int freebsd32_msgsnd(int msqid, const void *msgp, \ - size_t msgsz, int msgflg); } -227 AUE_MSGRCV NOSTD { ssize_t freebsd32_msgrcv(int msqid, void *msgp, \ - size_t msgsz, int32_t msgtyp, int msgflg); } -228 AUE_SHMAT NOSTD|NOPROTO { void *shmat(int shmid, const void *shmaddr, \ - int shmflg); } -229 AUE_SHMCTL COMPAT7|NOSTD { int freebsd32_shmctl( \ - int shmid, int cmd, \ - struct shmid_ds_old32 *buf); } -230 AUE_SHMDT NOSTD|NOPROTO { int shmdt(const void *shmaddr); } -231 AUE_SHMGET NOSTD|NOPROTO { int shmget(key_t key, size_t size, \ - int shmflg); } -; -232 AUE_NULL STD { int freebsd32_clock_gettime(clockid_t clock_id, \ - struct timespec32 *tp); } -233 AUE_CLOCK_SETTIME STD { int freebsd32_clock_settime(clockid_t clock_id, \ - const struct timespec32 *tp); } -234 AUE_NULL STD { int freebsd32_clock_getres(clockid_t clock_id, \ - struct timespec32 *tp); } -235 AUE_NULL STD { int freebsd32_ktimer_create(\ - clockid_t clock_id, \ - struct sigevent32 *evp, int *timerid); } -236 AUE_NULL NOPROTO { int ktimer_delete(int timerid); } -237 AUE_NULL STD { int freebsd32_ktimer_settime(int timerid,\ - int flags, \ - const struct itimerspec32 *value, \ - struct itimerspec32 *ovalue); } -238 AUE_NULL STD { int freebsd32_ktimer_gettime(int timerid,\ - struct itimerspec32 *value); } -239 AUE_NULL NOPROTO { int ktimer_getoverrun(int timerid); } -240 AUE_NULL STD { int freebsd32_nanosleep( \ - const struct timespec32 *rqtp, \ - struct timespec32 *rmtp); } -241 AUE_NULL NOPROTO { int ffclock_getcounter(ffcounter *ffcount); } -242 AUE_NULL STD { int freebsd32_ffclock_setestimate( \ - struct ffclock_estimate32 *cest); } -243 AUE_NULL STD { int freebsd32_ffclock_getestimate( \ - struct ffclock_estimate32 *cest); } -244 AUE_NULL STD { int freebsd32_clock_nanosleep( \ - clockid_t clock_id, int flags, \ - const struct timespec32 *rqtp, \ - struct timespec32 *rmtp); } -245 AUE_NULL RESERVED -246 AUE_NULL RESERVED -247 AUE_NULL STD { int freebsd32_clock_getcpuclockid2(\ - id_t id,\ - int which, clockid_t *clock_id); } -248 AUE_NULL UNIMPL ntp_gettime -249 AUE_NULL RESERVED -250 AUE_MINHERIT NOPROTO { int minherit(void *addr, size_t len, \ - int inherit); } -251 AUE_RFORK NOPROTO { int rfork(int flags); } -252 AUE_POLL OBSOL openbsd_poll -253 AUE_ISSETUGID NOPROTO { int issetugid(void); } -254 AUE_LCHOWN NOPROTO { int lchown(const char *path, int uid, \ - int gid); } -255 AUE_AIO_READ STD { int freebsd32_aio_read( \ - struct aiocb32 *aiocbp); } -256 AUE_AIO_WRITE STD { int freebsd32_aio_write( \ - struct aiocb32 *aiocbp); } -257 AUE_LIO_LISTIO STD { int freebsd32_lio_listio(int mode, \ - uint32_t *acb_list, \ - int nent, struct sigevent32 *sig); } -258 AUE_NULL RESERVED -259 AUE_NULL RESERVED -260 AUE_NULL RESERVED -261 AUE_NULL RESERVED -262 AUE_NULL RESERVED -263 AUE_NULL RESERVED -264 AUE_NULL RESERVED -265 AUE_NULL RESERVED -266 AUE_NULL RESERVED -267 AUE_NULL RESERVED -268 AUE_NULL RESERVED -269 AUE_NULL RESERVED -270 AUE_NULL RESERVED -271 AUE_NULL RESERVED -272 AUE_O_GETDENTS COMPAT11|NOPROTO { int getdents(int fd, char *buf, \ - int count); } -273 AUE_NULL RESERVED -274 AUE_LCHMOD NOPROTO { int lchmod(const char *path, mode_t mode); } -275 AUE_NULL OBSOL netbsd_lchown -276 AUE_LUTIMES STD { int freebsd32_lutimes(const char *path, \ - const struct timeval32 *tptr); } -277 AUE_NULL OBSOL netbsd_msync -278 AUE_STAT COMPAT11 { int freebsd32_nstat(const char *path, \ - struct nstat32 *ub); } -279 AUE_FSTAT COMPAT11 { int freebsd32_nfstat(int fd, struct nstat32 *sb); } -280 AUE_LSTAT COMPAT11 { int freebsd32_nlstat(const char *path, \ - struct nstat32 *ub); } -281 AUE_NULL RESERVED -282 AUE_NULL RESERVED -283 AUE_NULL RESERVED -284 AUE_NULL RESERVED -285 AUE_NULL RESERVED -286 AUE_NULL RESERVED -287 AUE_NULL RESERVED -288 AUE_NULL RESERVED -289 AUE_PREADV STD { ssize_t freebsd32_preadv(int fd, \ - struct iovec32 *iovp, \ - u_int iovcnt, \ - off_t offset); } -290 AUE_PWRITEV STD { ssize_t freebsd32_pwritev(int fd, \ - struct iovec32 *iovp, \ - u_int iovcnt, \ - off_t offset); } -291 AUE_NULL RESERVED -292 AUE_NULL RESERVED -293 AUE_NULL RESERVED -294 AUE_NULL RESERVED -295 AUE_NULL RESERVED -296 AUE_NULL RESERVED -297 AUE_FHSTATFS COMPAT4 { int freebsd32_fhstatfs( \ - const struct fhandle *u_fhp, \ - struct ostatfs32 *buf); } -298 AUE_FHOPEN NOPROTO { int fhopen(const struct fhandle *u_fhp, \ - int flags); } -299 AUE_FHSTAT COMPAT11 { int freebsd32_fhstat( \ - const struct fhandle *u_fhp, \ - struct freebsd11_stat32 *sb); } -; syscall numbers for FreeBSD -300 AUE_NULL NOPROTO { int modnext(int modid); } -301 AUE_NULL STD { int freebsd32_modstat(int modid, \ - struct module_stat32 *stat); } -302 AUE_NULL NOPROTO { int modfnext(int modid); } -303 AUE_NULL NOPROTO { int modfind(const char *name); } -304 AUE_MODLOAD NOPROTO { int kldload(const char *file); } -305 AUE_MODUNLOAD NOPROTO { int kldunload(int fileid); } -306 AUE_NULL NOPROTO { int kldfind(const char *file); } -307 AUE_NULL NOPROTO { int kldnext(int fileid); } -308 AUE_NULL STD { int freebsd32_kldstat(int fileid, \ - struct kld_file_stat32 *stat); } -309 AUE_NULL NOPROTO { int kldfirstmod(int fileid); } -310 AUE_GETSID NOPROTO { int getsid(pid_t pid); } -311 AUE_SETRESUID NOPROTO { int setresuid(uid_t ruid, uid_t euid, \ - uid_t suid); } -312 AUE_SETRESGID NOPROTO { int setresgid(gid_t rgid, gid_t egid, \ - gid_t sgid); } -313 AUE_NULL OBSOL signanosleep -314 AUE_AIO_RETURN STD { ssize_t freebsd32_aio_return( \ - struct aiocb32 *aiocbp); } -315 AUE_AIO_SUSPEND STD { int freebsd32_aio_suspend( \ - uint32_t * aiocbp, int nent, \ - const struct timespec32 *timeout); } -316 AUE_AIO_CANCEL NOPROTO { int aio_cancel(int fd, \ - struct aiocb32 *aiocbp); } -317 AUE_AIO_ERROR STD { int freebsd32_aio_error( \ - struct aiocb32 *aiocbp); } -318 AUE_AIO_READ COMPAT6 { int freebsd32_aio_read( \ - struct oaiocb32 *aiocbp); } -319 AUE_AIO_WRITE COMPAT6 { int freebsd32_aio_write( \ - struct oaiocb32 *aiocbp); } -320 AUE_LIO_LISTIO COMPAT6 { int freebsd32_lio_listio(int mode, \ - uint32_t *acb_list, \ - int nent, struct osigevent32 *sig); } -321 AUE_NULL NOPROTO { int yield(void); } -322 AUE_NULL OBSOL thr_sleep -323 AUE_NULL OBSOL thr_wakeup -324 AUE_MLOCKALL NOPROTO { int mlockall(int how); } -325 AUE_MUNLOCKALL NOPROTO { int munlockall(void); } -326 AUE_GETCWD NOPROTO { int __getcwd(char *buf, size_t buflen); } - -327 AUE_NULL NOPROTO { int sched_setparam (pid_t pid, \ - const struct sched_param *param); } -328 AUE_NULL NOPROTO { int sched_getparam (pid_t pid, \ - struct sched_param *param); } - -329 AUE_NULL NOPROTO { int sched_setscheduler (pid_t pid, \ - int policy, \ - const struct sched_param *param); } -330 AUE_NULL NOPROTO { int sched_getscheduler (pid_t pid); } - -331 AUE_NULL NOPROTO { int sched_yield (void); } -332 AUE_NULL NOPROTO { int sched_get_priority_max (int policy); } -333 AUE_NULL NOPROTO { int sched_get_priority_min (int policy); } -334 AUE_NULL STD { int freebsd32_sched_rr_get_interval ( \ - pid_t pid, \ - struct timespec32 *interval); } -335 AUE_NULL NOPROTO { int utrace(const void *addr, size_t len); } -336 AUE_SENDFILE COMPAT4 { int freebsd32_sendfile(int fd, int s, \ - off_t offset, \ - size_t nbytes, struct sf_hdtr32 *hdtr, \ - off_t *sbytes, int flags); } -337 AUE_NULL UNIMPL kldsym -338 AUE_JAIL STD { int freebsd32_jail(struct jail32 *jail); } -339 AUE_NULL UNIMPL nnpfs_syscall -340 AUE_SIGPROCMASK NOPROTO { int sigprocmask(int how, \ - const sigset_t *set, sigset_t *oset); } -341 AUE_SIGSUSPEND NOPROTO { int sigsuspend(const sigset_t *sigmask); } -342 AUE_SIGACTION COMPAT4 { int freebsd32_sigaction(int sig, \ - const struct sigaction32 *act, \ - struct sigaction32 *oact); } -343 AUE_SIGPENDING NOPROTO { int sigpending(sigset_t *set); } -344 AUE_SIGRETURN COMPAT4 { int freebsd32_sigreturn( \ - const struct freebsd4_ucontext32 *sigcntxp); } -345 AUE_SIGWAIT STD { int freebsd32_sigtimedwait(const sigset_t *set, \ - struct siginfo32 *info, \ - const struct timespec32 *timeout); } -346 AUE_NULL STD { int freebsd32_sigwaitinfo(const sigset_t *set, \ - struct siginfo32 *info); } -347 AUE_ACL_GET_FILE NOPROTO { int __acl_get_file(const char *path, \ - acl_type_t type, struct acl *aclp); } -348 AUE_ACL_SET_FILE NOPROTO { int __acl_set_file(const char *path, \ - acl_type_t type, struct acl *aclp); } -349 AUE_ACL_GET_FD NOPROTO { int __acl_get_fd(int filedes, \ - acl_type_t type, struct acl *aclp); } -350 AUE_ACL_SET_FD NOPROTO { int __acl_set_fd(int filedes, \ - acl_type_t type, struct acl *aclp); } -351 AUE_ACL_DELETE_FILE NOPROTO { int __acl_delete_file(const char *path, \ - acl_type_t type); } -352 AUE_ACL_DELETE_FD NOPROTO { int __acl_delete_fd(int filedes, \ - acl_type_t type); } -353 AUE_ACL_CHECK_FILE NOPROTO { int __acl_aclcheck_file(const char *path, \ - acl_type_t type, struct acl *aclp); } -354 AUE_ACL_CHECK_FD NOPROTO { int __acl_aclcheck_fd(int filedes, \ - acl_type_t type, struct acl *aclp); } -355 AUE_EXTATTRCTL NOPROTO { int extattrctl(const char *path, int cmd, \ - const char *filename, int attrnamespace, \ - const char *attrname); } -356 AUE_EXTATTR_SET_FILE NOPROTO { ssize_t extattr_set_file( \ - const char *path, int attrnamespace, \ - const char *attrname, void *data, \ - size_t nbytes); } -357 AUE_EXTATTR_GET_FILE NOPROTO { ssize_t extattr_get_file( \ - const char *path, int attrnamespace, \ - const char *attrname, void *data, \ - size_t nbytes); } -358 AUE_EXTATTR_DELETE_FILE NOPROTO { int extattr_delete_file( \ - const char *path, int attrnamespace, \ - const char *attrname); } -359 AUE_AIO_WAITCOMPLETE STD { ssize_t freebsd32_aio_waitcomplete( \ - uint32_t *aiocbp, \ - struct timespec32 *timeout); } -360 AUE_GETRESUID NOPROTO { int getresuid(uid_t *ruid, uid_t *euid, \ - uid_t *suid); } -361 AUE_GETRESGID NOPROTO { int getresgid(gid_t *rgid, gid_t *egid, \ - gid_t *sgid); } -362 AUE_KQUEUE NOPROTO { int kqueue(void); } -363 AUE_KEVENT COMPAT11 { int freebsd32_kevent(int fd, \ - const struct freebsd11_kevent32 * \ - changelist, \ - int nchanges, \ - struct freebsd11_kevent32 *eventlist, \ - int nevents, \ - const struct timespec32 *timeout); } -364 AUE_NULL OBSOL __cap_get_proc -365 AUE_NULL OBSOL __cap_set_proc -366 AUE_NULL OBSOL __cap_get_fd -367 AUE_NULL OBSOL __cap_get_file -368 AUE_NULL OBSOL __cap_set_fd -369 AUE_NULL OBSOL __cap_set_file -370 AUE_NULL RESERVED -371 AUE_EXTATTR_SET_FD NOPROTO { ssize_t extattr_set_fd(int fd, \ - int attrnamespace, const char *attrname, \ - void *data, size_t nbytes); } -372 AUE_EXTATTR_GET_FD NOPROTO { ssize_t extattr_get_fd(int fd, \ - int attrnamespace, const char *attrname, \ - void *data, size_t nbytes); } -373 AUE_EXTATTR_DELETE_FD NOPROTO { int extattr_delete_fd(int fd, \ - int attrnamespace, \ - const char *attrname); } -374 AUE_SETUGID NOPROTO { int __setugid(int flag); } -375 AUE_NULL OBSOL nfsclnt -376 AUE_EACCESS NOPROTO { int eaccess(const char *path, int amode); } -377 AUE_NULL UNIMPL afs3_syscall -378 AUE_NMOUNT STD { int freebsd32_nmount(struct iovec32 *iovp, \ - unsigned int iovcnt, int flags); } -379 AUE_NULL OBSOL kse_exit -380 AUE_NULL OBSOL kse_wakeup -381 AUE_NULL OBSOL kse_create -382 AUE_NULL OBSOL kse_thr_interrupt -383 AUE_NULL OBSOL kse_release -384 AUE_NULL UNIMPL __mac_get_proc -385 AUE_NULL UNIMPL __mac_set_proc -386 AUE_NULL UNIMPL __mac_get_fd -387 AUE_NULL UNIMPL __mac_get_file -388 AUE_NULL UNIMPL __mac_set_fd -389 AUE_NULL UNIMPL __mac_set_file -390 AUE_NULL NOPROTO { int kenv(int what, const char *name, \ - char *value, int len); } -391 AUE_LCHFLAGS NOPROTO { int lchflags(const char *path, \ - u_long flags); } -392 AUE_NULL NOPROTO { int uuidgen(struct uuid *store, \ - int count); } -393 AUE_SENDFILE STD { int freebsd32_sendfile(int fd, int s, \ - off_t offset, \ - size_t nbytes, struct sf_hdtr32 *hdtr, \ - off_t *sbytes, int flags); } -394 AUE_NULL UNIMPL mac_syscall -395 AUE_GETFSSTAT COMPAT11 { int freebsd32_getfsstat( \ - struct freebsd11_statfs *buf, \ - int32_t bufsize, int mode); } -396 AUE_STATFS COMPAT11|NOPROTO { int statfs(const char *path, \ - struct statfs *buf); } -397 AUE_FSTATFS COMPAT11|NOPROTO { int fstatfs(int fd, \ - struct freebsd11_statfs *buf); } -398 AUE_FHSTATFS COMPAT11|NOPROTO { int fhstatfs( \ - const struct fhandle *u_fhp, \ - struct freebsd11_statfs *buf); } -399 AUE_NULL RESERVED -400 AUE_SEMCLOSE NOSTD|NOPROTO { int ksem_close(int32_t id); } -401 AUE_SEMPOST NOSTD|NOPROTO { int ksem_post(int32_t id); } -402 AUE_SEMWAIT NOSTD|NOPROTO { int ksem_wait(int32_t id); } -403 AUE_SEMTRYWAIT NOSTD|NOPROTO { int ksem_trywait(int32_t id); } -404 AUE_SEMINIT NOSTD { int freebsd32_ksem_init(int32_t *idp, \ - unsigned int value); } -405 AUE_SEMOPEN NOSTD { int freebsd32_ksem_open(int32_t *idp, \ - const char *name, int oflag, \ - mode_t mode, unsigned int value); } -406 AUE_SEMUNLINK NOSTD|NOPROTO { int ksem_unlink(const char *name); } -407 AUE_SEMGETVALUE NOSTD|NOPROTO { int ksem_getvalue(int32_t id, \ - int *val); } -408 AUE_SEMDESTROY NOSTD|NOPROTO { int ksem_destroy(int32_t id); } -409 AUE_NULL UNIMPL __mac_get_pid -410 AUE_NULL UNIMPL __mac_get_link -411 AUE_NULL UNIMPL __mac_set_link -412 AUE_EXTATTR_SET_LINK NOPROTO { ssize_t extattr_set_link( \ - const char *path, int attrnamespace, \ - const char *attrname, void *data, \ - size_t nbytes); } -413 AUE_EXTATTR_GET_LINK NOPROTO { ssize_t extattr_get_link( \ - const char *path, int attrnamespace, \ - const char *attrname, void *data, \ - size_t nbytes); } -414 AUE_EXTATTR_DELETE_LINK NOPROTO { int extattr_delete_link( \ - const char *path, int attrnamespace, \ - const char *attrname); } -415 AUE_NULL UNIMPL __mac_execve -416 AUE_SIGACTION STD { int freebsd32_sigaction(int sig, \ - const struct sigaction32 *act, \ - struct sigaction32 *oact); } -417 AUE_SIGRETURN STD { int freebsd32_sigreturn( \ - const struct __ucontext32 *sigcntxp); } -418 AUE_NULL RESERVED -419 AUE_NULL RESERVED -420 AUE_NULL RESERVED -421 AUE_NULL STD { int freebsd32_getcontext( \ - struct __ucontext32 *ucp); } -422 AUE_NULL STD { int freebsd32_setcontext( \ - const struct __ucontext32 *ucp); } -423 AUE_NULL STD { int freebsd32_swapcontext( \ - struct __ucontext32 *oucp, \ - const struct __ucontext32 *ucp); } -424 AUE_SWAPOFF NOPROTO { int swapoff(const char *name); } -425 AUE_ACL_GET_LINK NOPROTO { int __acl_get_link(const char *path, \ - acl_type_t type, struct acl *aclp); } -426 AUE_ACL_SET_LINK NOPROTO { int __acl_set_link(const char *path, \ - acl_type_t type, struct acl *aclp); } -427 AUE_ACL_DELETE_LINK NOPROTO { int __acl_delete_link(const char *path, \ - acl_type_t type); } -428 AUE_ACL_CHECK_LINK NOPROTO { int __acl_aclcheck_link(const char *path, \ - acl_type_t type, struct acl *aclp); } -429 AUE_SIGWAIT NOPROTO { int sigwait(const sigset_t *set, \ - int *sig); } -430 AUE_THR_CREATE UNIMPL thr_create -431 AUE_THR_EXIT NOPROTO { void thr_exit(int32_t *state); } -432 AUE_NULL NOPROTO { int thr_self(int32_t *id); } -433 AUE_THR_KILL NOPROTO { int thr_kill(int32_t id, int sig); } -434 AUE_NULL COMPAT10 { int freebsd32__umtx_lock( \ - struct umtx *umtx); } -435 AUE_NULL COMPAT10 { int freebsd32__umtx_unlock( \ - struct umtx *umtx); } -436 AUE_JAIL_ATTACH NOPROTO { int jail_attach(int jid); } -437 AUE_EXTATTR_LIST_FD NOPROTO { ssize_t extattr_list_fd(int fd, \ - int attrnamespace, void *data, \ - size_t nbytes); } -438 AUE_EXTATTR_LIST_FILE NOPROTO { ssize_t extattr_list_file( \ - const char *path, int attrnamespace, \ - void *data, size_t nbytes); } -439 AUE_EXTATTR_LIST_LINK NOPROTO { ssize_t extattr_list_link( \ - const char *path, int attrnamespace, \ - void *data, size_t nbytes); } -440 AUE_NULL OBSOL kse_switchin -441 AUE_SEMWAIT NOSTD { int freebsd32_ksem_timedwait(int32_t id, \ - const struct timespec32 *abstime); } -442 AUE_NULL STD { int freebsd32_thr_suspend( \ - const struct timespec32 *timeout); } -443 AUE_NULL NOPROTO { int thr_wake(int32_t id); } -444 AUE_MODUNLOAD NOPROTO { int kldunloadf(int fileid, int flags); } -445 AUE_AUDIT NOPROTO { int audit(const void *record, \ - u_int length); } -446 AUE_AUDITON NOPROTO { int auditon(int cmd, void *data, \ - u_int length); } -447 AUE_GETAUID NOPROTO { int getauid(uid_t *auid); } -448 AUE_SETAUID NOPROTO { int setauid(uid_t *auid); } -449 AUE_GETAUDIT NOPROTO { int getaudit(struct auditinfo *auditinfo); } -450 AUE_SETAUDIT NOPROTO { int setaudit(struct auditinfo *auditinfo); } -451 AUE_GETAUDIT_ADDR NOPROTO { int getaudit_addr( \ - struct auditinfo_addr *auditinfo_addr, \ - u_int length); } -452 AUE_SETAUDIT_ADDR NOPROTO { int setaudit_addr( \ - struct auditinfo_addr *auditinfo_addr, \ - u_int length); } -453 AUE_AUDITCTL NOPROTO { int auditctl(const char *path); } -454 AUE_NULL STD { int freebsd32__umtx_op(void *obj, int op,\ - u_long val, void *uaddr1, \ - void *uaddr2); } -455 AUE_THR_NEW STD { int freebsd32_thr_new( \ - struct thr_param32 *param, \ - int param_size); } -456 AUE_NULL STD { int freebsd32_sigqueue(pid_t pid, \ - int signum, void *value); } -457 AUE_MQ_OPEN NOSTD { int freebsd32_kmq_open( \ - const char *path, int flags, mode_t mode, \ - const struct mq_attr32 *attr); } -458 AUE_MQ_SETATTR NOSTD { int freebsd32_kmq_setattr(int mqd, \ - const struct mq_attr32 *attr, \ - struct mq_attr32 *oattr); } -459 AUE_MQ_TIMEDRECEIVE NOSTD { int freebsd32_kmq_timedreceive(int mqd, \ - char *msg_ptr, size_t msg_len, \ - unsigned *msg_prio, \ - const struct timespec32 *abs_timeout); } -460 AUE_MQ_TIMEDSEND NOSTD { int freebsd32_kmq_timedsend(int mqd, \ - const char *msg_ptr, size_t msg_len,\ - unsigned msg_prio, \ - const struct timespec32 *abs_timeout);} -461 AUE_MQ_NOTIFY NOSTD { int freebsd32_kmq_notify(int mqd, \ - const struct sigevent32 *sigev); } -462 AUE_MQ_UNLINK NOPROTO|NOSTD { int kmq_unlink(const char *path); } -463 AUE_NULL STD { void freebsd32_abort2(const char *why, int nargs, uint32_t *args); } -464 AUE_NULL NOPROTO { int thr_set_name(int32_t id, const char *name); } -465 AUE_AIO_FSYNC STD { int freebsd32_aio_fsync(int op, \ - struct aiocb32 *aiocbp); } -466 AUE_RTPRIO NOPROTO { int rtprio_thread(int function, \ - lwpid_t lwpid, struct rtprio *rtp); } -467 AUE_NULL RESERVED -468 AUE_NULL RESERVED -469 AUE_NULL RESERVED -470 AUE_NULL RESERVED -471 AUE_SCTP_PEELOFF NOPROTO|NOSTD { int sctp_peeloff(int sd, uint32_t name); } -472 AUE_SCTP_GENERIC_SENDMSG NOPROTO|NOSTD { int sctp_generic_sendmsg( \ - int sd, void *msg, int mlen, \ - const struct sockaddr *to, __socklen_t tolen, \ - struct sctp_sndrcvinfo *sinfo, int flags); } -473 AUE_SCTP_GENERIC_SENDMSG_IOV NOPROTO|NOSTD { int sctp_generic_sendmsg_iov(int sd, struct iovec32 *iov, int iovlen, \ - const struct sockaddr *to, __socklen_t tolen, \ - struct sctp_sndrcvinfo *sinfo, int flags); } -474 AUE_SCTP_GENERIC_RECVMSG NOPROTO|NOSTD { int sctp_generic_recvmsg(int sd, struct iovec32 *iov, int iovlen, \ - struct sockaddr * from, __socklen_t *fromlenaddr, \ - struct sctp_sndrcvinfo *sinfo, int *msg_flags); } -475 AUE_PREAD STD { ssize_t freebsd32_pread(int fd, \ - void *buf,size_t nbyte, \ - off_t offset); } -476 AUE_PWRITE STD { ssize_t freebsd32_pwrite(int fd, \ - const void *buf, size_t nbyte, \ - off_t offset); } -477 AUE_MMAP STD { void *freebsd32_mmap(void *addr, \ - size_t len, int prot, int flags, int fd, \ - off_t pos); } -478 AUE_LSEEK STD { off_t freebsd32_lseek(int fd, \ - off_t offset, \ - int whence); } -479 AUE_TRUNCATE STD { int freebsd32_truncate(const char *path, \ - off_t length); } -480 AUE_FTRUNCATE STD { int freebsd32_ftruncate(int fd, \ - off_t length); } -481 AUE_THR_KILL2 NOPROTO { int thr_kill2(pid_t pid, int32_t id, int sig); } -482 AUE_SHMOPEN COMPAT12|NOPROTO { int shm_open( \ - const char *path, int flags, mode_t mode); } -483 AUE_SHMUNLINK NOPROTO { int shm_unlink(const char *path); } -484 AUE_NULL NOPROTO { int cpuset(cpusetid_t *setid); } -485 AUE_NULL STD { int freebsd32_cpuset_setid(cpuwhich_t which, \ - id_t id, \ - cpusetid_t setid); } -486 AUE_NULL STD { int freebsd32_cpuset_getid(cpulevel_t level, \ - cpuwhich_t which, \ - id_t id, \ - cpusetid_t *setid); } -487 AUE_NULL STD { int freebsd32_cpuset_getaffinity( \ - cpulevel_t level, cpuwhich_t which, \ - id_t id, \ - size_t cpusetsize, \ - cpuset_t *mask); } -488 AUE_NULL STD { int freebsd32_cpuset_setaffinity( \ - cpulevel_t level, cpuwhich_t which, \ - id_t id, \ - size_t cpusetsize, \ - const cpuset_t *mask); } -489 AUE_FACCESSAT NOPROTO { int faccessat(int fd, const char *path, \ - int amode, int flag); } -490 AUE_FCHMODAT NOPROTO { int fchmodat(int fd, const char *path, \ - mode_t mode, int flag); } -491 AUE_FCHOWNAT NOPROTO { int fchownat(int fd, const char *path, \ - uid_t uid, gid_t gid, int flag); } -492 AUE_FEXECVE STD { int freebsd32_fexecve(int fd, \ - uint32_t *argv, uint32_t *envv); } -493 AUE_FSTATAT COMPAT11 { int freebsd32_fstatat(int fd, \ - const char *path, \ - struct freebsd11_stat32 *buf, \ - int flag); } -494 AUE_FUTIMESAT STD { int freebsd32_futimesat(int fd, \ - const char *path, \ - const struct timeval32 *times); } -495 AUE_LINKAT NOPROTO { int linkat(int fd1, const char *path1, \ - int fd2, const char *path2, int flag); } -496 AUE_MKDIRAT NOPROTO { int mkdirat(int fd, const char *path, \ - mode_t mode); } -497 AUE_MKFIFOAT NOPROTO { int mkfifoat(int fd, const char *path, \ - mode_t mode); } -498 AUE_MKNODAT COMPAT11|NOPROTO { int mknodat(int fd, \ - const char *path, mode_t mode, \ - uint32_t dev); } -499 AUE_OPENAT_RWTC NOPROTO { int openat(int fd, const char *path, \ - int flag, mode_t mode); } -500 AUE_READLINKAT NOPROTO { ssize_t readlinkat(int fd, const char *path, \ - char *buf, size_t bufsize); } -501 AUE_RENAMEAT NOPROTO { int renameat(int oldfd, const char *old, \ - int newfd, const char *new); } -502 AUE_SYMLINKAT NOPROTO { int symlinkat(const char *path1, int fd, \ - const char *path2); } -503 AUE_UNLINKAT NOPROTO { int unlinkat(int fd, const char *path, \ - int flag); } -504 AUE_POSIX_OPENPT NOPROTO { int posix_openpt(int flags); } -; 505 is initialised by the kgssapi code, if present. -505 AUE_NULL NOPROTO|NOSTD { int gssd_syscall(const char *path); } -506 AUE_JAIL_GET STD { int freebsd32_jail_get(struct iovec32 *iovp, \ - unsigned int iovcnt, int flags); } -507 AUE_JAIL_SET STD { int freebsd32_jail_set(struct iovec32 *iovp, \ - unsigned int iovcnt, int flags); } -508 AUE_JAIL_REMOVE NOPROTO { int jail_remove(int jid); } -509 AUE_CLOSEFROM COMPAT12|NOPROTO { int closefrom(int lowfd); } -510 AUE_SEMCTL NOSTD { int freebsd32___semctl(int semid, int semnum, \ - int cmd, union semun32 *arg); } -511 AUE_MSGCTL NOSTD { int freebsd32_msgctl(int msqid, int cmd, \ - struct msqid_ds32 *buf); } -512 AUE_SHMCTL NOSTD { int freebsd32_shmctl(int shmid, int cmd, \ - struct shmid_ds32 *buf); } -513 AUE_LPATHCONF NOPROTO { int lpathconf(const char *path, int name); } -514 AUE_NULL OBSOL cap_new -515 AUE_CAP_RIGHTS_GET NOPROTO { int __cap_rights_get(int version, \ - int fd, cap_rights_t *rightsp); } -516 AUE_CAP_ENTER NOPROTO { int cap_enter(void); } -517 AUE_CAP_GETMODE NOPROTO { int cap_getmode(u_int *modep); } -518 AUE_PDFORK NOPROTO { int pdfork(int *fdp, int flags); } -519 AUE_PDKILL NOPROTO { int pdkill(int fd, int signum); } -520 AUE_PDGETPID NOPROTO { int pdgetpid(int fd, pid_t *pidp); } -521 AUE_PDWAIT RESERVED -522 AUE_SELECT STD { int freebsd32_pselect(int nd, fd_set *in, \ - fd_set *ou, fd_set *ex, \ - const struct timespec32 *ts, \ - const sigset_t *sm); } -523 AUE_GETLOGINCLASS NOPROTO { int getloginclass(char *namebuf, \ - size_t namelen); } -524 AUE_SETLOGINCLASS NOPROTO { int setloginclass(const char *namebuf); } -525 AUE_NULL NOPROTO { int rctl_get_racct(const void *inbufp, \ - size_t inbuflen, void *outbufp, \ - size_t outbuflen); } -526 AUE_NULL NOPROTO { int rctl_get_rules(const void *inbufp, \ - size_t inbuflen, void *outbufp, \ - size_t outbuflen); } -527 AUE_NULL NOPROTO { int rctl_get_limits(const void *inbufp, \ - size_t inbuflen, void *outbufp, \ - size_t outbuflen); } -528 AUE_NULL NOPROTO { int rctl_add_rule(const void *inbufp, \ - size_t inbuflen, void *outbufp, \ - size_t outbuflen); } -529 AUE_NULL NOPROTO { int rctl_remove_rule(const void *inbufp, \ - size_t inbuflen, void *outbufp, \ - size_t outbuflen); } -530 AUE_POSIX_FALLOCATE STD { int freebsd32_posix_fallocate(int fd,\ - off_t offset, \ - off_t len); } -531 AUE_POSIX_FADVISE STD { int freebsd32_posix_fadvise(int fd, \ - off_t offset, \ - off_t len, \ - int advice); } -532 AUE_WAIT6 STD { int freebsd32_wait6(idtype_t idtype, \ - id_t id, \ - int *status, int options, \ - struct __wrusage32 *wrusage, \ - struct siginfo32 *info); } -533 AUE_CAP_RIGHTS_LIMIT NOPROTO { \ - int cap_rights_limit(int fd, \ - cap_rights_t *rightsp); } -534 AUE_CAP_IOCTLS_LIMIT STD { \ - int freebsd32_cap_ioctls_limit(int fd, \ - const uint32_t *cmds, size_t ncmds); } -535 AUE_CAP_IOCTLS_GET STD { \ - ssize_t freebsd32_cap_ioctls_get(int fd, \ - uint32_t *cmds, size_t maxcmds); } -536 AUE_CAP_FCNTLS_LIMIT NOPROTO { int cap_fcntls_limit(int fd, \ - uint32_t fcntlrights); } -537 AUE_CAP_FCNTLS_GET NOPROTO { int cap_fcntls_get(int fd, \ - uint32_t *fcntlrightsp); } -538 AUE_BINDAT NOPROTO { int bindat(int fd, int s, \ - const struct sockaddr *name, \ - __socklen_t namelen); } -539 AUE_CONNECTAT NOPROTO { int connectat(int fd, int s, \ - const struct sockaddr *name, \ - __socklen_t namelen); } -540 AUE_CHFLAGSAT NOPROTO { int chflagsat(int fd, const char *path, \ - u_long flags, int atflag); } -541 AUE_ACCEPT NOPROTO { int accept4(int s, \ - struct sockaddr *name, \ - __socklen_t *anamelen, \ - int flags); } -542 AUE_PIPE NOPROTO { int pipe2(int *fildes, int flags); } -543 AUE_AIO_MLOCK STD { int freebsd32_aio_mlock( \ - struct aiocb32 *aiocbp); } -544 AUE_PROCCTL STD { int freebsd32_procctl(idtype_t idtype, \ - id_t id, int com, \ - void *data); } -545 AUE_POLL STD { int freebsd32_ppoll(struct pollfd *fds, \ - u_int nfds, const struct timespec32 *ts, \ - const sigset_t *set); } -546 AUE_FUTIMES STD { int freebsd32_futimens(int fd, \ - const struct timespec32 *times); } -547 AUE_FUTIMESAT STD { int freebsd32_utimensat(int fd, \ - const char *path, \ - const struct timespec32 *times, \ - int flag); } -548 AUE_NULL OBSOL numa_getaffinity -549 AUE_NULL OBSOL numa_setaffinity -550 AUE_FSYNC NOPROTO { int fdatasync(int fd); } -551 AUE_FSTAT STD { int freebsd32_fstat(int fd, \ - struct stat32 *sb); } -552 AUE_FSTATAT STD { int freebsd32_fstatat(int fd, \ - const char *path, struct stat32 *buf, \ - int flag); } -553 AUE_FHSTAT STD { int freebsd32_fhstat( \ - const struct fhandle *u_fhp, \ - struct stat32 *sb); } -554 AUE_GETDIRENTRIES NOPROTO { ssize_t getdirentries( \ - int fd, char *buf, size_t count, \ - off_t *basep); } -555 AUE_STATFS NOPROTO { int statfs(const char *path, \ - struct statfs *buf); } -556 AUE_FSTATFS NOPROTO { int fstatfs(int fd, struct statfs *buf); } -557 AUE_GETFSSTAT STD { int freebsd32_getfsstat(struct statfs *buf, \ - int32_t bufsize, int mode); } -558 AUE_FHSTATFS NOPROTO { int fhstatfs(const struct fhandle *u_fhp, \ - struct statfs *buf); } -559 AUE_MKNODAT STD { int freebsd32_mknodat(int fd, \ - const char *path, mode_t mode, \ - dev_t dev); } -560 AUE_KEVENT STD { int freebsd32_kevent(int fd, \ - const struct kevent32 *changelist, \ - int nchanges, \ - struct kevent32 *eventlist, \ - int nevents, \ - const struct timespec32 *timeout); } -561 AUE_NULL STD { int freebsd32_cpuset_getdomain(cpulevel_t level, \ - cpuwhich_t which, id_t id, \ - size_t domainsetsize, domainset_t *mask, \ - int *policy); } -562 AUE_NULL STD { int freebsd32_cpuset_setdomain(cpulevel_t level, \ - cpuwhich_t which, id_t id, \ - size_t domainsetsize, domainset_t *mask, \ - int policy); } -563 AUE_NULL NOPROTO { int getrandom(void *buf, size_t buflen, \ - unsigned int flags); } -564 AUE_NULL NOPROTO { int getfhat( int fd, char *path, \ - struct fhandle *fhp, int flags); } -565 AUE_NULL NOPROTO { int fhlink( struct fhandle *fhp, const char *to ); } -566 AUE_NULL NOPROTO { int fhlinkat( struct fhandle *fhp, int tofd, \ - const char *to); } -567 AUE_NULL NOPROTO { int fhreadlink( struct fhandle *fhp, char *buf, \ - size_t bufsize); } -568 AUE_UNLINKAT NOPROTO { int funlinkat(int dfd, const char *path, int fd, \ - int flag); } -569 AUE_NULL NOPROTO { ssize_t copy_file_range(int infd, \ - off_t *inoffp, int outfd, off_t *outoffp, \ - size_t len, unsigned int flags); } -570 AUE_SYSCTL STD { int freebsd32___sysctlbyname(const char *name, \ - size_t namelen, void *old, uint32_t *oldlenp, \ - void *new, size_t newlen); } -571 AUE_SHMOPEN NOPROTO { int shm_open2( \ - const char *path, int flags, mode_t mode, \ - int shmflags, const char *name); } -572 AUE_SHMRENAME NOPROTO { int shm_rename(const char *path_from, \ - const char *path_to, int flags); } -573 AUE_NULL NOPROTO { int sigfastblock(int cmd, uint32_t *ptr); } -574 AUE_REALPATHAT NOPROTO { int __realpathat(int fd, const char *path, \ - char *buf, size_t size, int flags); } -575 AUE_CLOSERANGE NOPROTO { int close_range(u_int lowfd, u_int highfd, \ - int flags); } -; 576 is initialised by the krpc code, if present. -576 AUE_NULL NOSTD|NOPROTO { int rpctls_syscall(int op, \ - const char *path); } -577 AUE_SPECIALFD NOPROTO { int __specialfd(int type, const void *req, \ - size_t len); } -578 AUE_AIO_WRITEV STD { int freebsd32_aio_writev( \ - struct aiocb32 *aiocbp); } -579 AUE_AIO_READV STD { int freebsd32_aio_readv( \ - struct aiocb32 *aiocbp); } -580 AUE_FSPACECTL NOPROTO { int fspacectl(int fd, \ - int cmd, \ - const struct spacectl_range *rqsr, \ - int flags, \ - struct spacectl_range *rmsr); } -581 AUE_NULL NOPROTO { int sched_getcpu(void); } -; vim: syntax=off diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master index b606503e3ba3..315e2692bfa1 100644 --- a/sys/kern/syscalls.master +++ b/sys/kern/syscalls.master @@ -49,6 +49,24 @@ ; definition to syscall.h besides adding a sysent. ; NOTSTATIC syscall is loadable ; CAPENABLED syscall is allowed in capability mode +; +; To support programmatic generation of both the default ABI and 32-bit compat +; (freebsd32) we impose a number of restrictions on the types of system calls. +; For integer types: +; - Bare int and long are allowed (long is a sign of a bad interface). +; - Use u_int and u_long rather than "unsigned (int|long)". +; - size_t is allowed. +; - typedefs are allowed, but new signed types that vary between 32- and +; 64-bit ABIs must be added to makesyscalls.lua so it knows they require +; handling. +; - Always-64-bit types other than dev_t, id_t, and off_t must be added to +; makesyscalls.lua. +; For pointers: +; - Prefer structs to typedefs so an ABI-specific suffix (e.g., "32") can +; be prepended (e.g., ucontext_t -> struct ucontext -> struct ucontext32). +; - Pointers to objects (structs, unions, etc) containing any long, pointer, +; or time_t arguments need _Contains_ annotations. Such objects should be +; padded such that all 64-bit types are 64-bit aligned. ; annotations: ; SAL 2.0 annotations are used to specify how system calls treat @@ -87,14 +105,12 @@ ; timet_ Object contains a time_t and varies between i386 and other ; ABIs. -; Please copy any additions and changes to the following compatability tables: -; sys/compat/freebsd32/syscalls.master - ; #ifdef's, etc. may be included, and are copied to the output files. #include #include #include +%%ABI_HEADERS%% 0 AUE_NULL STD { int nosys(void);