freebsd-dev/sys/kern/syscalls.master
David Xu 9104847f21 1. Change prototype of trapsignal and sendsig to use ksiginfo_t *, most
changes in MD code are trivial, before this change, trapsignal and
   sendsig use discrete parameters, now they uses member fields of
   ksiginfo_t structure. For sendsig, this change allows us to pass
   POSIX realtime signal value to user code.

2. Remove cpu_thread_siginfo, it is no longer needed because we now always
   generate ksiginfo_t data and feed it to libpthread.

3. Add p_sigqueue to proc structure to hold shared signals which were
   blocked by all threads in the proc.

4. Add td_sigqueue to thread structure to hold all signals delivered to
   thread.

5. i386 and amd64 now return POSIX standard si_code, other arches will
   be fixed.

6. In this sigqueue implementation, pending signal set is kept as before,
   an extra siginfo list holds additional siginfo_t data for signals.
   kernel code uses psignal() still behavior as before, it won't be failed
   even under memory pressure, only exception is when deleting a signal,
   we should call sigqueue_delete to remove signal from sigqueue but
   not SIGDELSET. Current there is no kernel code will deliver a signal
   with additional data, so kernel should be as stable as before,
   a ksiginfo can carry more information, for example, allow signal to
   be delivered but throw away siginfo data if memory is not enough.
   SIGKILL and SIGSTOP have fast path in sigqueue_add, because they can
   not be caught or masked.
   The sigqueue() syscall allows user code to queue a signal to target
   process, if resource is unavailable, EAGAIN will be returned as
   specification said.
   Just before thread exits, signal queue memory will be freed by
   sigqueue_flush.
   Current, all signals are allowed to be queued, not only realtime signals.

Earlier patch reviewed by: jhb, deischen
Tested on: i386, amd64
2005-10-14 12:43:47 +00:00

799 lines
34 KiB
Plaintext

$FreeBSD$
; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94
;
; System call name/number master file.
; Processed to created init_sysent.c, syscalls.c and syscall.h.
; Columns: number [M]type nargs 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 [M]STD, [M]OBSOL, [M]UNIMPL, [M]COMPAT, [M]CPT_NOA,
; [M]LIBCOMPAT, [M]NODEF, [M]NOARGS, [M]NOPROTO, [M]NOIMPL,
; [M]NOSTD, [M]COMPAT4
; name psuedo-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:
; [M] e.g. like MSTD -- means the system call is MP-safe. If no
; M prefix is used, the syscall wrapper will obtain the Giant
; lock for the syscall.
; STD always included
; COMPAT included on COMPAT #ifdef
; COMPAT4 included on COMPAT4 #ifdef (FreeBSD 4 compat)
; LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h
; 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 lkmsys
; so the SYSCALL_MODULE macro works
;
; 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 <sys/param.h>
#include <sys/sysent.h>
#include <sys/sysproto.h>
; 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 MSTD { int nosys(void); } syscall nosys_args int
1 AUE_NULL MSTD { void sys_exit(int rval); } exit \
sys_exit_args void
2 AUE_NULL MSTD { int fork(void); }
3 AUE_NULL MSTD { ssize_t read(int fd, void *buf, \
size_t nbyte); }
4 AUE_NULL MSTD { ssize_t write(int fd, const void *buf, \
size_t nbyte); }
5 AUE_NULL MSTD { int open(char *path, int flags, int mode); }
; XXX should be { int open(const char *path, int flags, ...); }
; but we're not ready for `const' or varargs.
; XXX man page says `mode_t mode'.
6 AUE_NULL MSTD { int close(int fd); }
7 AUE_NULL MSTD { int wait4(int pid, int *status, \
int options, struct rusage *rusage); } \
wait4 wait_args int
8 AUE_NULL MCOMPAT { int creat(char *path, int mode); }
9 AUE_NULL MSTD { int link(char *path, char *link); }
10 AUE_NULL MSTD { int unlink(char *path); }
11 AUE_NULL OBSOL execv
12 AUE_NULL MSTD { int chdir(char *path); }
13 AUE_NULL MSTD { int fchdir(int fd); }
14 AUE_NULL MSTD { int mknod(char *path, int mode, int dev); }
15 AUE_NULL MSTD { int chmod(char *path, int mode); }
16 AUE_NULL MSTD { int chown(char *path, int uid, int gid); }
17 AUE_NULL MSTD { int obreak(char *nsize); } break \
obreak_args int
18 AUE_NULL MCOMPAT4 { int getfsstat(struct ostatfs *buf, \
long bufsize, int flags); }
19 AUE_NULL MCOMPAT { long lseek(int fd, long offset, \
int whence); }
20 AUE_NULL MSTD { pid_t getpid(void); }
21 AUE_NULL STD { int mount(char *type, char *path, \
int flags, caddr_t data); }
; XXX `path' should have type `const char *' but we're not ready for that.
22 AUE_NULL STD { int unmount(char *path, int flags); }
23 AUE_NULL MSTD { int setuid(uid_t uid); }
24 AUE_NULL MSTD { uid_t getuid(void); }
25 AUE_NULL MSTD { uid_t geteuid(void); }
26 AUE_NULL MSTD { int ptrace(int req, pid_t pid, \
caddr_t addr, int data); }
27 AUE_NULL MSTD { int recvmsg(int s, struct msghdr *msg, \
int flags); }
28 AUE_NULL MSTD { int sendmsg(int s, struct msghdr *msg, \
int flags); }
29 AUE_NULL MSTD { int recvfrom(int s, caddr_t buf, \
size_t len, int flags, \
struct sockaddr * __restrict from, \
__socklen_t * __restrict fromlenaddr); }
30 AUE_NULL MSTD { int accept(int s, \
struct sockaddr * __restrict name, \
__socklen_t * __restrict anamelen); }
31 AUE_NULL MSTD { int getpeername(int fdes, \
struct sockaddr * __restrict asa, \
__socklen_t * __restrict alen); }
32 AUE_NULL MSTD { int getsockname(int fdes, \
struct sockaddr * __restrict asa, \
__socklen_t * __restrict alen); }
33 AUE_NULL MSTD { int access(char *path, int flags); }
34 AUE_NULL MSTD { int chflags(char *path, int flags); }
35 AUE_NULL MSTD { int fchflags(int fd, int flags); }
36 AUE_NULL MSTD { int sync(void); }
37 AUE_NULL MSTD { int kill(int pid, int signum); }
38 AUE_NULL MCOMPAT { int stat(char *path, struct ostat *ub); }
39 AUE_NULL MSTD { pid_t getppid(void); }
40 AUE_NULL MCOMPAT { int lstat(char *path, struct ostat *ub); }
41 AUE_NULL MSTD { int dup(u_int fd); }
42 AUE_NULL MSTD { int pipe(void); }
43 AUE_NULL MSTD { gid_t getegid(void); }
44 AUE_NULL MSTD { int profil(caddr_t samples, size_t size, \
size_t offset, u_int scale); }
45 AUE_NULL MSTD { int ktrace(const char *fname, int ops, \
int facs, int pid); }
46 AUE_NULL MCOMPAT { int sigaction(int signum, \
struct osigaction *nsa, \
struct osigaction *osa); }
47 AUE_NULL MSTD { gid_t getgid(void); }
48 AUE_NULL MCOMPAT { int sigprocmask(int how, osigset_t mask); }
; XXX note nonstandard (bogus) calling convention - the libc stub passes
; us the mask, not a pointer to it, and we return the old mask as the
; (int) return value.
49 AUE_NULL MSTD { int getlogin(char *namebuf, u_int \
namelen); }
50 AUE_NULL MSTD { int setlogin(char *namebuf); }
51 AUE_NULL MSTD { int acct(char *path); }
52 AUE_NULL MCOMPAT { int sigpending(void); }
53 AUE_NULL MSTD { int sigaltstack(stack_t *ss, \
stack_t *oss); }
54 AUE_NULL MSTD { int ioctl(int fd, u_long com, \
caddr_t data); }
55 AUE_NULL MSTD { int reboot(int opt); }
56 AUE_NULL MSTD { int revoke(char *path); }
57 AUE_NULL MSTD { int symlink(char *path, char *link); }
58 AUE_NULL MSTD { int readlink(char *path, char *buf, \
int count); }
59 AUE_NULL MSTD { int execve(char *fname, char **argv, \
char **envv); }
60 AUE_NULL MSTD { int umask(int newmask); } umask umask_args \
int
61 AUE_NULL MSTD { int chroot(char *path); }
62 AUE_NULL MCOMPAT { int fstat(int fd, struct ostat *sb); }
63 AUE_NULL MCOMPAT { int getkerninfo(int op, char *where, \
size_t *size, int arg); } getkerninfo \
getkerninfo_args int
64 AUE_NULL MCOMPAT { int getpagesize(void); } getpagesize \
getpagesize_args int
65 AUE_NULL MSTD { int msync(void *addr, size_t len, \
int flags); }
66 AUE_NULL MSTD { int vfork(void); }
67 AUE_NULL OBSOL vread
68 AUE_NULL OBSOL vwrite
69 AUE_NULL MSTD { int sbrk(int incr); }
70 AUE_NULL MSTD { int sstk(int incr); }
71 AUE_NULL MCOMPAT { int mmap(void *addr, int len, int prot, \
int flags, int fd, long pos); }
72 AUE_NULL MSTD { int ovadvise(int anom); } vadvise \
ovadvise_args int
73 AUE_NULL MSTD { int munmap(void *addr, size_t len); }
74 AUE_NULL MSTD { int mprotect(const void *addr, size_t len, \
int prot); }
75 AUE_NULL MSTD { int madvise(void *addr, size_t len, \
int behav); }
76 AUE_NULL OBSOL vhangup
77 AUE_NULL OBSOL vlimit
78 AUE_NULL MSTD { int mincore(const void *addr, size_t len, \
char *vec); }
79 AUE_NULL MSTD { int getgroups(u_int gidsetsize, \
gid_t *gidset); }
80 AUE_NULL MSTD { int setgroups(u_int gidsetsize, \
gid_t *gidset); }
81 AUE_NULL MSTD { int getpgrp(void); }
82 AUE_NULL MSTD { int setpgid(int pid, int pgid); }
83 AUE_NULL MSTD { int setitimer(u_int which, struct \
itimerval *itv, struct itimerval *oitv); }
84 AUE_NULL MCOMPAT { int wait(void); }
85 AUE_NULL MSTD { int swapon(char *name); }
86 AUE_NULL MSTD { int getitimer(u_int which, \
struct itimerval *itv); }
87 AUE_NULL MCOMPAT { int gethostname(char *hostname, \
u_int len); } gethostname \
gethostname_args int
88 AUE_NULL MCOMPAT { int sethostname(char *hostname, \
u_int len); } sethostname \
sethostname_args int
89 AUE_NULL MSTD { int getdtablesize(void); }
90 AUE_NULL MSTD { int dup2(u_int from, u_int to); }
91 AUE_NULL UNIMPL getdopt
92 AUE_NULL MSTD { int fcntl(int fd, int cmd, long arg); }
; XXX should be { int fcntl(int fd, int cmd, ...); }
; but we're not ready for varargs.
93 AUE_NULL MSTD { int select(int nd, fd_set *in, fd_set *ou, \
fd_set *ex, struct timeval *tv); }
94 AUE_NULL UNIMPL setdopt
95 AUE_NULL MSTD { int fsync(int fd); }
96 AUE_NULL MSTD { int setpriority(int which, int who, \
int prio); }
97 AUE_NULL MSTD { int socket(int domain, int type, \
int protocol); }
98 AUE_NULL MSTD { int connect(int s, caddr_t name, \
int namelen); }
99 AUE_NULL MCPT_NOA { int accept(int s, caddr_t name, \
int *anamelen); } accept accept_args int
100 AUE_NULL MSTD { int getpriority(int which, int who); }
101 AUE_NULL MCOMPAT { int send(int s, caddr_t buf, int len, \
int flags); }
102 AUE_NULL MCOMPAT { int recv(int s, caddr_t buf, int len, \
int flags); }
103 AUE_NULL MCOMPAT { int sigreturn( \
struct osigcontext *sigcntxp); }
104 AUE_NULL MSTD { int bind(int s, caddr_t name, \
int namelen); }
105 AUE_NULL MSTD { int setsockopt(int s, int level, int name, \
caddr_t val, int valsize); }
106 AUE_NULL MSTD { int listen(int s, int backlog); }
107 AUE_NULL OBSOL vtimes
108 AUE_NULL MCOMPAT { int sigvec(int signum, struct sigvec *nsv, \
struct sigvec *osv); }
109 AUE_NULL MCOMPAT { int sigblock(int mask); }
110 AUE_NULL MCOMPAT { int sigsetmask(int mask); }
111 AUE_NULL MCOMPAT { int sigsuspend(osigset_t mask); }
; XXX note nonstandard (bogus) calling convention - the libc stub passes
; us the mask, not a pointer to it.
112 AUE_NULL MCOMPAT { int sigstack(struct sigstack *nss, \
struct sigstack *oss); }
113 AUE_NULL MCOMPAT { int recvmsg(int s, struct omsghdr *msg, \
int flags); }
114 AUE_NULL MCOMPAT { int sendmsg(int s, caddr_t msg, \
int flags); }
115 AUE_NULL OBSOL vtrace
116 AUE_NULL MSTD { int gettimeofday(struct timeval *tp, \
struct timezone *tzp); }
117 AUE_NULL MSTD { int getrusage(int who, \
struct rusage *rusage); }
118 AUE_NULL MSTD { int getsockopt(int s, int level, int name, \
caddr_t val, int *avalsize); }
119 AUE_NULL UNIMPL resuba (BSD/OS 2.x)
120 AUE_NULL MSTD { int readv(int fd, struct iovec *iovp, \
u_int iovcnt); }
121 AUE_NULL MSTD { int writev(int fd, struct iovec *iovp, \
u_int iovcnt); }
122 AUE_NULL MSTD { int settimeofday(struct timeval *tv, \
struct timezone *tzp); }
123 AUE_NULL MSTD { int fchown(int fd, int uid, int gid); }
124 AUE_NULL MSTD { int fchmod(int fd, int mode); }
125 AUE_NULL MCPT_NOA { int recvfrom(int s, caddr_t buf, \
size_t len, int flags, caddr_t from, int \
*fromlenaddr); } recvfrom recvfrom_args \
int
126 AUE_NULL MSTD { int setreuid(int ruid, int euid); }
127 AUE_NULL MSTD { int setregid(int rgid, int egid); }
128 AUE_NULL MSTD { int rename(char *from, char *to); }
129 AUE_NULL MCOMPAT { int truncate(char *path, long length); }
130 AUE_NULL MCOMPAT { int ftruncate(int fd, long length); }
131 AUE_NULL MSTD { int flock(int fd, int how); }
132 AUE_NULL MSTD { int mkfifo(char *path, int mode); }
133 AUE_NULL MSTD { int sendto(int s, caddr_t buf, size_t len, \
int flags, caddr_t to, int tolen); }
134 AUE_NULL MSTD { int shutdown(int s, int how); }
135 AUE_NULL MSTD { int socketpair(int domain, int type, \
int protocol, int *rsv); }
136 AUE_NULL MSTD { int mkdir(char *path, int mode); }
137 AUE_NULL MSTD { int rmdir(char *path); }
138 AUE_NULL MSTD { int utimes(char *path, \
struct timeval *tptr); }
139 AUE_NULL OBSOL 4.2 sigreturn
140 AUE_NULL MSTD { int adjtime(struct timeval *delta, \
struct timeval *olddelta); }
141 AUE_NULL MCOMPAT { int getpeername(int fdes, caddr_t asa, \
int *alen); }
142 AUE_NULL MCOMPAT { long gethostid(void); }
143 AUE_NULL MCOMPAT { int sethostid(long hostid); }
144 AUE_NULL MCOMPAT { int getrlimit(u_int which, struct \
orlimit *rlp); }
145 AUE_NULL MCOMPAT { int setrlimit(u_int which, \
struct orlimit *rlp); }
146 AUE_NULL MCOMPAT { int killpg(int pgid, int signum); }
147 AUE_NULL MSTD { int setsid(void); }
148 AUE_NULL MSTD { int quotactl(char *path, int cmd, int uid, \
caddr_t arg); }
149 AUE_NULL MCOMPAT { int quota(void); }
150 AUE_NULL MCPT_NOA { int getsockname(int fdec, \
caddr_t asa, int *alen); } getsockname \
getsockname_args int
; Syscalls 151-180 inclusive are reserved for vendor-specific
; system calls. (This includes various calls added for compatibity
; with other Unix variants.)
; Some of these calls are now supported by BSD...
151 AUE_NULL UNIMPL sem_lock (BSD/OS 2.x)
152 AUE_NULL UNIMPL sem_wakeup (BSD/OS 2.x)
153 AUE_NULL UNIMPL asyncdaemon (BSD/OS 2.x)
154 AUE_NULL UNIMPL nosys
; 155 is initialized by the NFS code, if present.
155 AUE_NULL MNOIMPL { int nfssvc(int flag, caddr_t argp); }
156 AUE_NULL COMPAT { int getdirentries(int fd, char *buf, \
u_int count, long *basep); }
157 AUE_NULL MCOMPAT4 { int statfs(char *path, \
struct ostatfs *buf); }
158 AUE_NULL MCOMPAT4 { int fstatfs(int fd, \
struct ostatfs *buf); }
159 AUE_NULL UNIMPL nosys
160 AUE_NULL MSTD { int lgetfh(char *fname, \
struct fhandle *fhp); }
161 AUE_NULL MSTD { int getfh(char *fname, \
struct fhandle *fhp); }
162 AUE_NULL MSTD { int getdomainname(char *domainname, \
int len); }
163 AUE_NULL MSTD { int setdomainname(char *domainname, \
int len); }
164 AUE_NULL MSTD { int uname(struct utsname *name); }
165 AUE_NULL MSTD { int sysarch(int op, char *parms); }
166 AUE_NULL MSTD { int rtprio(int function, pid_t pid, \
struct rtprio *rtp); }
167 AUE_NULL UNIMPL nosys
168 AUE_NULL UNIMPL nosys
; 169 is initialized by the SYSVSEM code if present or loaded
169 AUE_NULL MNOSTD { int semsys(int which, int a2, int a3, \
int a4, int a5); }
; 169 is initialized by the SYSVMSG code if present or loaded
; XXX should be { int semsys(int which, ...); }
170 AUE_NULL MNOSTD { int msgsys(int which, int a2, int a3, \
int a4, int a5, int a6); }
; 169 is initialized by the SYSVSHM code if present or loaded
; XXX should be { int msgsys(int which, ...); }
171 AUE_NULL MNOSTD { int shmsys(int which, int a2, int a3, \
int a4); }
; XXX should be { int shmsys(int which, ...); }
172 AUE_NULL UNIMPL nosys
173 AUE_NULL MSTD { ssize_t pread(int fd, void *buf, \
size_t nbyte, int pad, off_t offset); }
174 AUE_NULL MSTD { ssize_t pwrite(int fd, const void *buf, \
size_t nbyte, int pad, off_t offset); }
175 AUE_NULL UNIMPL nosys
176 AUE_NULL MSTD { int ntp_adjtime(struct timex *tp); }
177 AUE_NULL UNIMPL sfork (BSD/OS 2.x)
178 AUE_NULL UNIMPL getdescriptor (BSD/OS 2.x)
179 AUE_NULL UNIMPL setdescriptor (BSD/OS 2.x)
180 AUE_NULL UNIMPL nosys
; Syscalls 181-199 are used by/reserved for BSD
181 AUE_NULL MSTD { int setgid(gid_t gid); }
182 AUE_NULL MSTD { int setegid(gid_t egid); }
183 AUE_NULL MSTD { int seteuid(uid_t euid); }
184 AUE_NULL UNIMPL lfs_bmapv
185 AUE_NULL UNIMPL lfs_markv
186 AUE_NULL UNIMPL lfs_segclean
187 AUE_NULL UNIMPL lfs_segwait
188 AUE_NULL MSTD { int stat(char *path, struct stat *ub); }
189 AUE_NULL MSTD { int fstat(int fd, struct stat *sb); }
190 AUE_NULL MSTD { int lstat(char *path, struct stat *ub); }
191 AUE_NULL MSTD { int pathconf(char *path, int name); }
192 AUE_NULL MSTD { int fpathconf(int fd, int name); }
193 AUE_NULL UNIMPL nosys
194 AUE_NULL MSTD { int getrlimit(u_int which, \
struct rlimit *rlp); } getrlimit \
__getrlimit_args int
195 AUE_NULL MSTD { int setrlimit(u_int which, \
struct rlimit *rlp); } setrlimit \
__setrlimit_args int
196 AUE_NULL MSTD { int getdirentries(int fd, char *buf, \
u_int count, long *basep); }
197 AUE_NULL MSTD { caddr_t mmap(caddr_t addr, size_t len, \
int prot, int flags, int fd, int pad, \
off_t pos); }
198 AUE_NULL MSTD { int nosys(void); } __syscall \
__syscall_args int
199 AUE_NULL MSTD { off_t lseek(int fd, int pad, off_t offset, \
int whence); }
200 AUE_NULL MSTD { int truncate(char *path, int pad, \
off_t length); }
201 AUE_NULL MSTD { int ftruncate(int fd, int pad, \
off_t length); }
202 AUE_NULL MSTD { int __sysctl(int *name, u_int namelen, \
void *old, size_t *oldlenp, void *new, \
size_t newlen); } __sysctl sysctl_args int
203 AUE_NULL MSTD { int mlock(const void *addr, size_t len); }
204 AUE_NULL MSTD { int munlock(const void *addr, size_t len); }
205 AUE_NULL MSTD { int undelete(char *path); }
206 AUE_NULL MSTD { int futimes(int fd, struct timeval *tptr); }
207 AUE_NULL MSTD { int getpgid(pid_t pid); }
208 AUE_NULL UNIMPL newreboot (NetBSD)
209 AUE_NULL MSTD { int poll(struct pollfd *fds, u_int nfds, \
int timeout); }
;
; The following are reserved for loadable syscalls
;
210 AUE_NULL NODEF lkmnosys lkmnosys nosys_args int
211 AUE_NULL NODEF lkmnosys lkmnosys nosys_args int
212 AUE_NULL NODEF lkmnosys lkmnosys nosys_args int
213 AUE_NULL NODEF lkmnosys lkmnosys nosys_args int
214 AUE_NULL NODEF lkmnosys lkmnosys nosys_args int
215 AUE_NULL NODEF lkmnosys lkmnosys nosys_args int
216 AUE_NULL NODEF lkmnosys lkmnosys nosys_args int
217 AUE_NULL NODEF lkmnosys lkmnosys nosys_args int
218 AUE_NULL NODEF lkmnosys lkmnosys nosys_args int
219 AUE_NULL NODEF lkmnosys lkmnosys nosys_args int
;
; The following were introduced with NetBSD/4.4Lite-2
; They are initialized by their respective modules/sysinits
220 AUE_NULL MNOSTD { int __semctl(int semid, int semnum, \
int cmd, union semun *arg); }
221 AUE_NULL MNOSTD { int semget(key_t key, int nsems, \
int semflg); }
222 AUE_NULL MNOSTD { int semop(int semid, struct sembuf *sops, \
size_t nsops); }
223 AUE_NULL UNIMPL semconfig
224 AUE_NULL MNOSTD { int msgctl(int msqid, int cmd, \
struct msqid_ds *buf); }
225 AUE_NULL MNOSTD { int msgget(key_t key, int msgflg); }
226 AUE_NULL MNOSTD { int msgsnd(int msqid, const void *msgp, \
size_t msgsz, int msgflg); }
227 AUE_NULL MNOSTD { int msgrcv(int msqid, void *msgp, \
size_t msgsz, long msgtyp, int msgflg); }
228 AUE_NULL MNOSTD { int shmat(int shmid, const void *shmaddr, \
int shmflg); }
229 AUE_NULL MNOSTD { int shmctl(int shmid, int cmd, \
struct shmid_ds *buf); }
230 AUE_NULL MNOSTD { int shmdt(const void *shmaddr); }
231 AUE_NULL MNOSTD { int shmget(key_t key, size_t size, \
int shmflg); }
;
232 AUE_NULL MSTD { int clock_gettime(clockid_t clock_id, \
struct timespec *tp); }
233 AUE_NULL MSTD { int clock_settime(clockid_t clock_id, \
const struct timespec *tp); }
234 AUE_NULL MSTD { int clock_getres(clockid_t clock_id, \
struct timespec *tp); }
235 AUE_NULL UNIMPL timer_create
236 AUE_NULL UNIMPL timer_delete
237 AUE_NULL UNIMPL timer_settime
238 AUE_NULL UNIMPL timer_gettime
239 AUE_NULL UNIMPL timer_getoverrun
240 AUE_NULL MSTD { int nanosleep(const struct timespec *rqtp, \
struct timespec *rmtp); }
241 AUE_NULL UNIMPL nosys
242 AUE_NULL UNIMPL nosys
243 AUE_NULL UNIMPL nosys
244 AUE_NULL UNIMPL nosys
245 AUE_NULL UNIMPL nosys
246 AUE_NULL UNIMPL nosys
247 AUE_NULL UNIMPL nosys
248 AUE_NULL MSTD { int ntp_gettime(struct ntptimeval *ntvp); }
249 AUE_NULL UNIMPL nosys
; syscall numbers initially used in OpenBSD
250 AUE_NULL MSTD { int minherit(void *addr, size_t len, \
int inherit); }
251 AUE_NULL MSTD { int rfork(int flags); }
252 AUE_NULL MSTD { int openbsd_poll(struct pollfd *fds, \
u_int nfds, int timeout); }
253 AUE_NULL MSTD { int issetugid(void); }
254 AUE_NULL MSTD { int lchown(char *path, int uid, int gid); }
255 AUE_NULL UNIMPL nosys
256 AUE_NULL UNIMPL nosys
257 AUE_NULL UNIMPL nosys
258 AUE_NULL UNIMPL nosys
259 AUE_NULL UNIMPL nosys
260 AUE_NULL UNIMPL nosys
261 AUE_NULL UNIMPL nosys
262 AUE_NULL UNIMPL nosys
263 AUE_NULL UNIMPL nosys
264 AUE_NULL UNIMPL nosys
265 AUE_NULL UNIMPL nosys
266 AUE_NULL UNIMPL nosys
267 AUE_NULL UNIMPL nosys
268 AUE_NULL UNIMPL nosys
269 AUE_NULL UNIMPL nosys
270 AUE_NULL UNIMPL nosys
271 AUE_NULL UNIMPL nosys
272 AUE_NULL MSTD { int getdents(int fd, char *buf, \
size_t count); }
273 AUE_NULL UNIMPL nosys
274 AUE_NULL MSTD { int lchmod(char *path, mode_t mode); }
275 AUE_NULL MNOPROTO { int lchown(char *path, uid_t uid, \
gid_t gid); } netbsd_lchown lchown_args \
int
276 AUE_NULL MSTD { int lutimes(char *path, \
struct timeval *tptr); }
277 AUE_NULL MNOPROTO { int msync(void *addr, size_t len, \
int flags); } netbsd_msync msync_args int
278 AUE_NULL MSTD { int nstat(char *path, struct nstat *ub); }
279 AUE_NULL MSTD { int nfstat(int fd, struct nstat *sb); }
280 AUE_NULL MSTD { int nlstat(char *path, struct nstat *ub); }
281 AUE_NULL UNIMPL nosys
282 AUE_NULL UNIMPL nosys
283 AUE_NULL UNIMPL nosys
284 AUE_NULL UNIMPL nosys
285 AUE_NULL UNIMPL nosys
286 AUE_NULL UNIMPL nosys
287 AUE_NULL UNIMPL nosys
288 AUE_NULL UNIMPL nosys
; 289 and 290 from NetBSD (OpenBSD: 267 and 268)
289 AUE_NULL MSTD { ssize_t preadv(int fd, struct iovec *iovp, \
u_int iovcnt, off_t offset); }
290 AUE_NULL MSTD { ssize_t pwritev(int fd, struct iovec *iovp, \
u_int iovcnt, off_t offset); }
291 AUE_NULL UNIMPL nosys
292 AUE_NULL UNIMPL nosys
293 AUE_NULL UNIMPL nosys
294 AUE_NULL UNIMPL nosys
295 AUE_NULL UNIMPL nosys
296 AUE_NULL UNIMPL nosys
; XXX 297 is 300 in NetBSD
297 AUE_NULL MCOMPAT4 { int fhstatfs( \
const struct fhandle *u_fhp, \
struct ostatfs *buf); }
298 AUE_NULL MSTD { int fhopen(const struct fhandle *u_fhp, \
int flags); }
299 AUE_NULL MSTD { int fhstat(const struct fhandle *u_fhp, \
struct stat *sb); }
; syscall numbers for FreeBSD
300 AUE_NULL MSTD { int modnext(int modid); }
301 AUE_NULL MSTD { int modstat(int modid, \
struct module_stat *stat); }
302 AUE_NULL MSTD { int modfnext(int modid); }
303 AUE_NULL MSTD { int modfind(const char *name); }
304 AUE_NULL MSTD { int kldload(const char *file); }
305 AUE_NULL MSTD { int kldunload(int fileid); }
306 AUE_NULL MSTD { int kldfind(const char *file); }
307 AUE_NULL MSTD { int kldnext(int fileid); }
308 AUE_NULL MSTD { int kldstat(int fileid, struct \
kld_file_stat* stat); }
309 AUE_NULL MSTD { int kldfirstmod(int fileid); }
310 AUE_NULL MSTD { int getsid(pid_t pid); }
311 AUE_NULL MSTD { int setresuid(uid_t ruid, uid_t euid, \
uid_t suid); }
312 AUE_NULL MSTD { int setresgid(gid_t rgid, gid_t egid, \
gid_t sgid); }
313 AUE_NULL OBSOL signanosleep
314 AUE_NULL NOSTD { int aio_return(struct aiocb *aiocbp); }
315 AUE_NULL NOSTD { int aio_suspend( \
struct aiocb * const * aiocbp, int nent, \
const struct timespec *timeout); }
316 AUE_NULL NOSTD { int aio_cancel(int fd, \
struct aiocb *aiocbp); }
317 AUE_NULL NOSTD { int aio_error(struct aiocb *aiocbp); }
318 AUE_NULL NOSTD { int aio_read(struct aiocb *aiocbp); }
319 AUE_NULL NOSTD { int aio_write(struct aiocb *aiocbp); }
320 AUE_NULL NOSTD { int lio_listio(int mode, \
struct aiocb * const *acb_list, \
int nent, struct sigevent *sig); }
321 AUE_NULL MSTD { int yield(void); }
322 AUE_NULL OBSOL thr_sleep
323 AUE_NULL OBSOL thr_wakeup
324 AUE_NULL MSTD { int mlockall(int how); }
325 AUE_NULL MSTD { int munlockall(void); }
326 AUE_NULL MSTD { int __getcwd(u_char *buf, u_int buflen); }
327 AUE_NULL MSTD { int sched_setparam (pid_t pid, \
const struct sched_param *param); }
328 AUE_NULL MSTD { int sched_getparam (pid_t pid, struct \
sched_param *param); }
329 AUE_NULL MSTD { int sched_setscheduler (pid_t pid, int \
policy, const struct sched_param \
*param); }
330 AUE_NULL MSTD { int sched_getscheduler (pid_t pid); }
331 AUE_NULL MSTD { int sched_yield (void); }
332 AUE_NULL MSTD { int sched_get_priority_max (int policy); }
333 AUE_NULL MSTD { int sched_get_priority_min (int policy); }
334 AUE_NULL MSTD { int sched_rr_get_interval (pid_t pid, \
struct timespec *interval); }
335 AUE_NULL MSTD { int utrace(const void *addr, size_t len); }
336 AUE_NULL MCOMPAT4 { int sendfile(int fd, int s, \
off_t offset, size_t nbytes, \
struct sf_hdtr *hdtr, off_t *sbytes, \
int flags); }
337 AUE_NULL MSTD { int kldsym(int fileid, int cmd, \
void *data); }
338 AUE_NULL MSTD { int jail(struct jail *jail); }
339 AUE_NULL UNIMPL pioctl
340 AUE_NULL MSTD { int sigprocmask(int how, \
const sigset_t *set, sigset_t *oset); }
341 AUE_NULL MSTD { int sigsuspend(const sigset_t *sigmask); }
342 AUE_NULL MCOMPAT4 { int sigaction(int sig, const \
struct sigaction *act, \
struct sigaction *oact); }
343 AUE_NULL MSTD { int sigpending(sigset_t *set); }
344 AUE_NULL MCOMPAT4 { int sigreturn( \
const struct ucontext4 *sigcntxp); }
345 AUE_NULL MSTD { int sigtimedwait(const sigset_t *set, \
siginfo_t *info, \
const struct timespec *timeout); }
346 AUE_NULL MSTD { int sigwaitinfo(const sigset_t *set, \
siginfo_t *info); }
347 AUE_NULL MSTD { int __acl_get_file(const char *path, \
acl_type_t type, struct acl *aclp); }
348 AUE_NULL MSTD { int __acl_set_file(const char *path, \
acl_type_t type, struct acl *aclp); }
349 AUE_NULL MSTD { int __acl_get_fd(int filedes, \
acl_type_t type, struct acl *aclp); }
350 AUE_NULL MSTD { int __acl_set_fd(int filedes, \
acl_type_t type, struct acl *aclp); }
351 AUE_NULL MSTD { int __acl_delete_file(const char *path, \
acl_type_t type); }
352 AUE_NULL MSTD { int __acl_delete_fd(int filedes, \
acl_type_t type); }
353 AUE_NULL MSTD { int __acl_aclcheck_file(const char *path, \
acl_type_t type, struct acl *aclp); }
354 AUE_NULL MSTD { int __acl_aclcheck_fd(int filedes, \
acl_type_t type, struct acl *aclp); }
355 AUE_NULL MSTD { int extattrctl(const char *path, int cmd, \
const char *filename, int attrnamespace, \
const char *attrname); }
356 AUE_NULL MSTD { int extattr_set_file(const char *path, \
int attrnamespace, const char *attrname, \
void *data, size_t nbytes); }
357 AUE_NULL MSTD { ssize_t extattr_get_file(const char *path, \
int attrnamespace, const char *attrname, \
void *data, size_t nbytes); }
358 AUE_NULL MSTD { int extattr_delete_file(const char *path, \
int attrnamespace, \
const char *attrname); }
359 AUE_NULL NOSTD { int aio_waitcomplete( \
struct aiocb **aiocbp, \
struct timespec *timeout); }
360 AUE_NULL MSTD { int getresuid(uid_t *ruid, uid_t *euid, \
uid_t *suid); }
361 AUE_NULL MSTD { int getresgid(gid_t *rgid, gid_t *egid, \
gid_t *sgid); }
362 AUE_NULL MSTD { int kqueue(void); }
363 AUE_NULL MSTD { int kevent(int fd, \
struct kevent *changelist, int nchanges, \
struct kevent *eventlist, int nevents, \
const struct timespec *timeout); }
364 AUE_NULL UNIMPL __cap_get_proc
365 AUE_NULL UNIMPL __cap_set_proc
366 AUE_NULL UNIMPL __cap_get_fd
367 AUE_NULL UNIMPL __cap_get_file
368 AUE_NULL UNIMPL __cap_set_fd
369 AUE_NULL UNIMPL __cap_set_file
370 AUE_NULL NODEF lkmressys lkmressys nosys_args int
371 AUE_NULL MSTD { int extattr_set_fd(int fd, \
int attrnamespace, const char *attrname, \
void *data, size_t nbytes); }
372 AUE_NULL MSTD { ssize_t extattr_get_fd(int fd, \
int attrnamespace, const char *attrname, \
void *data, size_t nbytes); }
373 AUE_NULL MSTD { int extattr_delete_fd(int fd, \
int attrnamespace, \
const char *attrname); }
374 AUE_NULL MSTD { int __setugid(int flag); }
375 AUE_NULL NOIMPL { int nfsclnt(int flag, caddr_t argp); }
376 AUE_NULL MSTD { int eaccess(char *path, int flags); }
377 AUE_NULL UNIMPL afs_syscall
378 AUE_NULL STD { int nmount(struct iovec *iovp, \
unsigned int iovcnt, int flags); }
379 AUE_NULL MSTD { int kse_exit(void); }
380 AUE_NULL MSTD { int kse_wakeup(struct kse_mailbox *mbx); }
381 AUE_NULL MSTD { int kse_create(struct kse_mailbox *mbx, \
int newgroup); }
382 AUE_NULL MSTD { int kse_thr_interrupt( \
struct kse_thr_mailbox *tmbx, int cmd, \
long data); }
383 AUE_NULL MSTD { int kse_release(struct timespec *timeout); }
384 AUE_NULL MSTD { int __mac_get_proc(struct mac *mac_p); }
385 AUE_NULL MSTD { int __mac_set_proc(struct mac *mac_p); }
386 AUE_NULL MSTD { int __mac_get_fd(int fd, \
struct mac *mac_p); }
387 AUE_NULL MSTD { int __mac_get_file(const char *path_p, \
struct mac *mac_p); }
388 AUE_NULL MSTD { int __mac_set_fd(int fd, \
struct mac *mac_p); }
389 AUE_NULL MSTD { int __mac_set_file(const char *path_p, \
struct mac *mac_p); }
390 AUE_NULL MSTD { int kenv(int what, const char *name, \
char *value, int len); }
391 AUE_NULL MSTD { int lchflags(const char *path, int flags); }
392 AUE_NULL MSTD { int uuidgen(struct uuid *store, \
int count); }
393 AUE_NULL MSTD { int sendfile(int fd, int s, off_t offset, \
size_t nbytes, struct sf_hdtr *hdtr, \
off_t *sbytes, int flags); }
394 AUE_NULL MSTD { int mac_syscall(const char *policy, \
int call, void *arg); }
395 AUE_NULL MSTD { int getfsstat(struct statfs *buf, \
long bufsize, int flags); }
396 AUE_NULL MSTD { int statfs(char *path, \
struct statfs *buf); }
397 AUE_NULL MSTD { int fstatfs(int fd, struct statfs *buf); }
398 AUE_NULL MSTD { int fhstatfs(const struct fhandle *u_fhp, \
struct statfs *buf); }
399 AUE_NULL UNIMPL nosys
400 AUE_NULL MNOSTD { int ksem_close(semid_t id); }
401 AUE_NULL MNOSTD { int ksem_post(semid_t id); }
402 AUE_NULL MNOSTD { int ksem_wait(semid_t id); }
403 AUE_NULL MNOSTD { int ksem_trywait(semid_t id); }
404 AUE_NULL MNOSTD { int ksem_init(semid_t *idp, \
unsigned int value); }
405 AUE_NULL MNOSTD { int ksem_open(semid_t *idp, \
const char *name, int oflag, \
mode_t mode, unsigned int value); }
406 AUE_NULL MNOSTD { int ksem_unlink(const char *name); }
407 AUE_NULL MNOSTD { int ksem_getvalue(semid_t id, int *val); }
408 AUE_NULL MNOSTD { int ksem_destroy(semid_t id); }
409 AUE_NULL MSTD { int __mac_get_pid(pid_t pid, \
struct mac *mac_p); }
410 AUE_NULL MSTD { int __mac_get_link(const char *path_p, \
struct mac *mac_p); }
411 AUE_NULL MSTD { int __mac_set_link(const char *path_p, \
struct mac *mac_p); }
412 AUE_NULL MSTD { int extattr_set_link(const char *path, \
int attrnamespace, const char *attrname, \
void *data, size_t nbytes); }
413 AUE_NULL MSTD { ssize_t extattr_get_link(const char *path, \
int attrnamespace, const char *attrname, \
void *data, size_t nbytes); }
414 AUE_NULL MSTD { int extattr_delete_link(const char *path, \
int attrnamespace, \
const char *attrname); }
415 AUE_NULL MSTD { int __mac_execve(char *fname, char **argv, \
char **envv, struct mac *mac_p); }
416 AUE_NULL MSTD { int sigaction(int sig, \
const struct sigaction *act, \
struct sigaction *oact); }
417 AUE_NULL MSTD { int sigreturn( \
const struct __ucontext *sigcntxp); }
418 AUE_NULL UNIMPL __xstat
419 AUE_NULL UNIMPL __xfstat
420 AUE_NULL UNIMPL __xlstat
421 AUE_NULL MSTD { int getcontext(struct __ucontext *ucp); }
422 AUE_NULL MSTD { int setcontext( \
const struct __ucontext *ucp); }
423 AUE_NULL MSTD { int swapcontext(struct __ucontext *oucp, \
const struct __ucontext *ucp); }
424 AUE_NULL MSTD { int swapoff(const char *name); }
425 AUE_NULL MSTD { int __acl_get_link(const char *path, \
acl_type_t type, struct acl *aclp); }
426 AUE_NULL MSTD { int __acl_set_link(const char *path, \
acl_type_t type, struct acl *aclp); }
427 AUE_NULL MSTD { int __acl_delete_link(const char *path, \
acl_type_t type); }
428 AUE_NULL MSTD { int __acl_aclcheck_link(const char *path, \
acl_type_t type, struct acl *aclp); }
429 AUE_NULL MSTD { int sigwait(const sigset_t *set, \
int *sig); }
430 AUE_NULL MSTD { int thr_create(ucontext_t *ctx, long *id, \
int flags); }
431 AUE_NULL MSTD { void thr_exit(long *state); }
432 AUE_NULL MSTD { int thr_self(long *id); }
433 AUE_NULL MSTD { int thr_kill(long id, int sig); }
434 AUE_NULL MSTD { int _umtx_lock(struct umtx *umtx); }
435 AUE_NULL MSTD { int _umtx_unlock(struct umtx *umtx); }
436 AUE_NULL MSTD { int jail_attach(int jid); }
437 AUE_NULL MSTD { ssize_t extattr_list_fd(int fd, \
int attrnamespace, void *data, \
size_t nbytes); }
438 AUE_NULL MSTD { ssize_t extattr_list_file( \
const char *path, int attrnamespace, \
void *data, size_t nbytes); }
439 AUE_NULL MSTD { ssize_t extattr_list_link( \
const char *path, int attrnamespace, \
void *data, size_t nbytes); }
440 AUE_NULL MSTD { int kse_switchin( \
struct kse_thr_mailbox *tmbx, \
int flags); }
441 AUE_NULL MNOSTD { int ksem_timedwait(semid_t id, \
struct timespec *abstime); }
442 AUE_NULL MSTD { int thr_suspend( \
const struct timespec *timeout); }
443 AUE_NULL MSTD { int thr_wake(long id); }
444 AUE_NULL MSTD { int kldunloadf(int fileid, int flags); }
445 AUE_NULL MNOSTD { int audit(const void *record, \
u_int length); }
446 AUE_NULL MNOSTD { int auditon(int cmd, void *data, \
u_int length); }
447 AUE_NULL MNOSTD { int getauid(uid_t *auid); }
448 AUE_NULL MNOSTD { int setauid(uid_t *auid); }
449 AUE_NULL MNOSTD { int getaudit(struct auditinfo *auditinfo); }
450 AUE_NULL MNOSTD { int setaudit(struct auditinfo *auditinfo); }
451 AUE_NULL MNOSTD { int getaudit_addr( \
struct auditinfo_addr *auditinfo_addr, \
u_int length); }
452 AUE_NULL MNOSTD { int setaudit_addr( \
struct auditinfo_addr *auditinfo_addr, \
u_int length); }
453 AUE_NULL MNOSTD { int auditctl(int cmd, char *path); }
454 AUE_NULL MSTD { int _umtx_op(struct umtx *umtx, int op, \
long id, void *uaddr, void *uaddr2); }
455 AUE_NULL MSTD { int thr_new(struct thr_param *param, \
int param_size); }
456 AUE_NULL MSTD { int sigqueue(pid_t pid, int signum, void *value); }
; Please copy any additions and changes to the following compatability tables:
; sys/compat/freebsd32/syscalls.master