syscalls.master revision 123817
1171133Sgnn $FreeBSD: head/sys/kern/syscalls.master 123817 2003-12-24 19:09:45Z alfred $
2171133Sgnn;	from: @(#)syscalls.master	8.2 (Berkeley) 1/13/94
3171133Sgnn;
4171133Sgnn; System call name/number master file.
5171133Sgnn; Processed to created init_sysent.c, syscalls.c and syscall.h.
6171133Sgnn
7171133Sgnn; Columns: number [M]type nargs name alt{name,tag,rtyp}/comments
8171133Sgnn;	number	system call number, must be in order
9171133Sgnn;	type	one of [M]STD, [M]OBSOL, [M]UNIMPL, [M]COMPAT, [M]CPT_NOA,
10171133Sgnn;		[M]LIBCOMPAT, [M]NODEF,  [M]NOARGS,  [M]NOPROTO,  [M]NOIMPL,
11171133Sgnn;		[M]NOSTD, [M]COMPAT4
12171133Sgnn;	name	psuedo-prototype of syscall routine
13171133Sgnn;		If one of the following alts is different, then all appear:
14171133Sgnn;	altname	name of system call if different
15171133Sgnn;	alttag	name of args struct tag if different from [o]`name'"_args"
16171133Sgnn;	altrtyp	return type if not int (bogus - syscalls always return int)
17171133Sgnn;		for UNIMPL/OBSOL, name continues with comments
18171133Sgnn
19171133Sgnn; types:
20171133Sgnn;	[M]	e.g. like MSTD -- means the system call is MP-safe.  If no
21171133Sgnn;		M prefix is used, the syscall wrapper will obtain the Giant
22171133Sgnn;		lock for the syscall.
23171133Sgnn;	STD	always included
24171133Sgnn;	COMPAT	included on COMPAT #ifdef
25171133Sgnn;	COMPAT4	included on COMPAT4 #ifdef (FreeBSD 4 compat)
26171133Sgnn;	LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h
27171133Sgnn;	OBSOL	obsolete, not included in system, only specifies name
28171133Sgnn;	UNIMPL	not implemented, placeholder only
29171133Sgnn;	NOSTD	implemented but as a lkm that can be statically
30174510Sobrien;			compiled in sysent entry will be filled with lkmsys
31174510Sobrien;			so the SYSCALL_MODULE macro works
32174510Sobrien;
33221129Sbz; Please copy any additions and changes to the following compatability tables:
34195699Srwatson; sys/compat/freebsd32/syscalls.master
35171133Sgnn
36171133Sgnn; #ifdef's, etc. may be included, and are copied to the output files.
37171133Sgnn
38171133Sgnn#include <sys/param.h>
39171133Sgnn#include <sys/sysent.h>
40171133Sgnn#include <sys/sysproto.h>
41171133Sgnn
42171133Sgnn; Reserved/unimplemented system calls in the range 0-150 inclusive
43171133Sgnn; are reserved for use in future Berkeley releases.
44171133Sgnn; Additional system calls implemented in vendor and other
45171133Sgnn; redistributions should be placed in the reserved range at the end
46171133Sgnn; of the current calls.
47221129Sbz
48171133Sgnn0	STD	{ int nosys(void); } syscall nosys_args int
49171133Sgnn1	MSTD	{ void sys_exit(int rval); } exit sys_exit_args void
50257176Sglebius2	MSTD	{ int fork(void); }
51195699Srwatson3	MSTD	{ ssize_t read(int fd, void *buf, size_t nbyte); }
52171133Sgnn4	MSTD	{ ssize_t write(int fd, const void *buf, size_t nbyte); }
53171133Sgnn5	STD	{ int open(char *path, int flags, int mode); }
54171133Sgnn; XXX should be		{ int open(const char *path, int flags, ...); }
55171133Sgnn; but we're not ready for `const' or varargs.
56171133Sgnn; XXX man page says `mode_t mode'.
57180085Sjulian6	MSTD	{ int close(int fd); }
58171133Sgnn7	MSTD	{ int wait4(int pid, int *status, int options, \
59171133Sgnn			    struct rusage *rusage); } wait4 wait_args int
60171133Sgnn8	COMPAT	{ int creat(char *path, int mode); }
61171133Sgnn9	STD	{ int link(char *path, char *link); }
62171133Sgnn10	STD	{ int unlink(char *path); }
63171133Sgnn11	OBSOL	execv
64171167Sgnn12	STD	{ int chdir(char *path); }
65171133Sgnn13	STD	{ int fchdir(int fd); }
66171133Sgnn14	STD	{ int mknod(char *path, int mode, int dev); }
67171133Sgnn15	STD	{ int chmod(char *path, int mode); }
68171133Sgnn16	STD	{ int chown(char *path, int uid, int gid); }
69171133Sgnn17	MSTD	{ int obreak(char *nsize); } break obreak_args int
70171133Sgnn18	COMPAT4	{ int getfsstat(struct ostatfs *buf, long bufsize, int flags); }
71171133Sgnn19	COMPAT	{ long lseek(int fd, long offset, int whence); }
72171133Sgnn20	MSTD	{ pid_t getpid(void); }
73171133Sgnn21	STD	{ int mount(char *type, char *path, int flags, caddr_t data); }
74171167Sgnn; XXX `path' should have type `const char *' but we're not ready for that.
75171133Sgnn22	STD	{ int unmount(char *path, int flags); }
76171133Sgnn23	MSTD	{ int setuid(uid_t uid); }
77180090Sbz24	MSTD	{ uid_t getuid(void); }
78171133Sgnn25	MSTD	{ uid_t geteuid(void); }
79171133Sgnn26	STD	{ int ptrace(int req, pid_t pid, caddr_t addr, int data); }
80171133Sgnn27	MSTD	{ int recvmsg(int s, struct msghdr *msg, int flags); }
81195699Srwatson28	MSTD	{ int sendmsg(int s, struct msghdr *msg, int flags); }
82195699Srwatson29	MSTD	{ int recvfrom(int s, caddr_t buf, size_t len, int flags, \
83195699Srwatson		    struct sockaddr * from, \
84195699Srwatson		    __socklen_t * fromlenaddr); }
85215701Sdim30	MSTD	{ int accept(int s, struct sockaddr * name, \
86195699Srwatson		    __socklen_t *anamelen); }
87215701Sdim31	MSTD	{ int getpeername(int fdes, struct sockaddr * asa, \
88192648Sbz		    __socklen_t *alen); }
89195727Srwatson32	MSTD	{ int getsockname(int fdes, struct sockaddr * asa, \
90192648Sbz		    __socklen_t *alen); }
91195699Srwatson33	STD	{ int access(char *path, int flags); }
92274225Sglebius34	STD	{ int chflags(char *path, int flags); }
93274225Sglebius35	STD	{ int fchflags(int fd, int flags); }
94195699Srwatson36	STD	{ int sync(void); }
95195699Srwatson37	MSTD	{ int kill(int pid, int signum); }
96195699Srwatson38	COMPAT	{ int stat(char *path, struct ostat *ub); }
97195699Srwatson39	MSTD	{ pid_t getppid(void); }
98171133Sgnn40	COMPAT	{ int lstat(char *path, struct ostat *ub); }
99171133Sgnn41	MSTD	{ int dup(u_int fd); }
100222845Sbz42	MSTD	{ int pipe(void); }
101171133Sgnn43	MSTD	{ gid_t getegid(void); }
102171133Sgnn44	MSTD	{ int profil(caddr_t samples, size_t size, size_t offset, \
103171133Sgnn		    u_int scale); }
104171732Sbz45	MSTD	{ int ktrace(const char *fname, int ops, int facs, int pid); }
105171133Sgnn46	MCOMPAT	{ int sigaction(int signum, struct osigaction *nsa, \
106230442Sbz		    struct osigaction *osa); }
107192648Sbz47	MSTD	{ gid_t getgid(void); }
108171133Sgnn48	MCOMPAT	{ int sigprocmask(int how, osigset_t mask); }
109222845Sbz; XXX note nonstandard (bogus) calling convention - the libc stub passes
110171133Sgnn; us the mask, not a pointer to it, and we return the old mask as the
111192648Sbz; (int) return value.
112192648Sbz49	MSTD	{ int getlogin(char *namebuf, u_int namelen); }
113171133Sgnn50	MSTD	{ int setlogin(char *namebuf); }
114171133Sgnn51	MSTD	{ int acct(char *path); }
115171133Sgnn52	MCOMPAT	{ int sigpending(void); }
116171133Sgnn53	MSTD	{ int sigaltstack(stack_t *ss, stack_t *oss); }
117171133Sgnn54	MSTD	{ int ioctl(int fd, u_long com, caddr_t data); }
118171133Sgnn55	MSTD	{ int reboot(int opt); }
119171133Sgnn56	STD	{ int revoke(char *path); }
120171133Sgnn57	STD	{ int symlink(char *path, char *link); }
121222845Sbz58	STD	{ int readlink(char *path, char *buf, int count); }
122171133Sgnn59	MSTD	{ int execve(char *fname, char **argv, char **envv); }
123171133Sgnn60	MSTD	{ int umask(int newmask); } umask umask_args int
124171133Sgnn61	STD	{ int chroot(char *path); }
125171133Sgnn62	MCOMPAT	{ int fstat(int fd, struct ostat *sb); }
126171133Sgnn63	MCOMPAT	{ int getkerninfo(int op, char *where, size_t *size, \
127171167Sgnn		    int arg); } getkerninfo getkerninfo_args int
128171133Sgnn64	MCOMPAT	{ int getpagesize(void); } getpagesize getpagesize_args int
129241686Sandre65	MSTD	{ int msync(void *addr, size_t len, int flags); }
130171133Sgnn66	MSTD	{ int vfork(void); }
131275710Sae67	OBSOL	vread
132275704Sae68	OBSOL	vwrite
133275704Sae69	MSTD	{ int sbrk(int incr); }
134275704Sae70	MSTD	{ int sstk(int incr); }
135275704Sae71	MCOMPAT	{ int mmap(void *addr, int len, int prot, int flags, int fd, \
136275704Sae		    long pos); }
137275704Sae72	MSTD	{ int ovadvise(int anom); } vadvise ovadvise_args int
138171133Sgnn73	MSTD	{ int munmap(void *addr, size_t len); }
139275704Sae74	MSTD	{ int mprotect(const void *addr, size_t len, int prot); }
140275704Sae75	MSTD	{ int madvise(void *addr, size_t len, int behav); }
141171167Sgnn76	OBSOL	vhangup
142275704Sae77	OBSOL	vlimit
143171133Sgnn78	MSTD	{ int mincore(const void *addr, size_t len, char *vec); }
144171133Sgnn79	MSTD	{ int getgroups(u_int gidsetsize, gid_t *gidset); }
145171133Sgnn80	MSTD	{ int setgroups(u_int gidsetsize, gid_t *gidset); }
146171133Sgnn81	MSTD	{ int getpgrp(void); }
147171133Sgnn82	MSTD	{ int setpgid(int pid, int pgid); }
148171133Sgnn83	MSTD	{ int setitimer(u_int which, struct itimerval *itv, \
149222845Sbz		    struct itimerval *oitv); }
150171133Sgnn84	MCOMPAT	{ int wait(void); }
151171133Sgnn85	MSTD	{ int swapon(char *name); }
152171133Sgnn86	MSTD	{ int getitimer(u_int which, struct itimerval *itv); }
153171133Sgnn87	MCOMPAT	{ int gethostname(char *hostname, u_int len); } \
154171133Sgnn		    gethostname gethostname_args int
155171167Sgnn88	MCOMPAT	{ int sethostname(char *hostname, u_int len); } \
156171133Sgnn		    sethostname sethostname_args int
157241686Sandre89	MSTD	{ int getdtablesize(void); }
158171133Sgnn90	MSTD	{ int dup2(u_int from, u_int to); }
159171133Sgnn91	UNIMPL	getdopt
160171133Sgnn92	MSTD	{ int fcntl(int fd, int cmd, long arg); }
161171133Sgnn; XXX should be	{ int fcntl(int fd, int cmd, ...); }
162171133Sgnn; but we're not ready for varargs.
163171133Sgnn93	MSTD	{ int select(int nd, fd_set *in, fd_set *ou, \
164171133Sgnn		    fd_set *ex, struct timeval *tv); }
165275710Sae94	UNIMPL	setdopt
166171133Sgnn95	STD	{ int fsync(int fd); }
167171133Sgnn96	MSTD	{ int setpriority(int which, int who, int prio); }
168171133Sgnn97	MSTD	{ int socket(int domain, int type, int protocol); }
169171133Sgnn98	MSTD	{ int connect(int s, caddr_t name, int namelen); }
170171133Sgnn99	MCPT_NOA { int accept(int s, caddr_t name, int *anamelen); } \
171171133Sgnn		    accept accept_args int
172171133Sgnn100	MSTD	{ int getpriority(int which, int who); }
173171133Sgnn101	MCOMPAT	{ int send(int s, caddr_t buf, int len, int flags); }
174171133Sgnn102	MCOMPAT	{ int recv(int s, caddr_t buf, int len, int flags); }
175222845Sbz103	MCOMPAT	{ int sigreturn(struct osigcontext *sigcntxp); }
176171133Sgnn104	MSTD	{ int bind(int s, caddr_t name, int namelen); }
177275703Sae105	MSTD	{ int setsockopt(int s, int level, int name, caddr_t val, \
178275703Sae		    int valsize); }
179171133Sgnn106	MSTD	{ int listen(int s, int backlog); }
180171167Sgnn107	OBSOL	vtimes
181275703Sae108	MCOMPAT	{ int sigvec(int signum, struct sigvec *nsv, \
182171133Sgnn		    struct sigvec *osv); }
183171133Sgnn109	MCOMPAT	{ int sigblock(int mask); }
184171133Sgnn110	MCOMPAT	{ int sigsetmask(int mask); }
185171133Sgnn111	MCOMPAT	{ int sigsuspend(osigset_t mask); }
186171133Sgnn; XXX note nonstandard (bogus) calling convention - the libc stub passes
187171260Sdelphij; us the mask, not a pointer to it.
188171260Sdelphij112	MCOMPAT	{ int sigstack(struct sigstack *nss, struct sigstack *oss); }
189171133Sgnn113	MCOMPAT	{ int recvmsg(int s, struct omsghdr *msg, int flags); }
190171133Sgnn114	MCOMPAT	{ int sendmsg(int s, caddr_t msg, int flags); }
191275710Sae115	OBSOL	vtrace
192171133Sgnn116	MSTD	{ int gettimeofday(struct timeval *tp, struct timezone *tzp); }
193171167Sgnn117	MSTD	{ int getrusage(int who, struct rusage *rusage); }
194275702Sae118	MSTD	{ int getsockopt(int s, int level, int name, caddr_t val, \
195171133Sgnn		    int *avalsize); }
196171133Sgnn119	UNIMPL	resuba (BSD/OS 2.x)
197275702Sae120	MSTD	{ int readv(int fd, struct iovec *iovp, u_int iovcnt); }
198275702Sae121	MSTD	{ int writev(int fd, struct iovec *iovp, u_int iovcnt); }
199275702Sae122	MSTD	{ int settimeofday(struct timeval *tv, struct timezone *tzp); }
200275702Sae123	STD	{ int fchown(int fd, int uid, int gid); }
201275702Sae124	STD	{ int fchmod(int fd, int mode); }
202275702Sae125	MCPT_NOA { int recvfrom(int s, caddr_t buf, size_t len, int flags, \
203275702Sae		    caddr_t from, int *fromlenaddr); } \
204275702Sae		    recvfrom recvfrom_args int
205275702Sae126	MSTD	{ int setreuid(int ruid, int euid); }
206275702Sae127	MSTD	{ int setregid(int rgid, int egid); }
207275702Sae128	STD	{ int rename(char *from, char *to); }
208275702Sae129	COMPAT	{ int truncate(char *path, long length); }
209275710Sae130	COMPAT	{ int ftruncate(int fd, long length); }
210275702Sae131	MSTD	{ int flock(int fd, int how); }
211171133Sgnn132	STD	{ int mkfifo(char *path, int mode); }
212171260Sdelphij133	MSTD	{ int sendto(int s, caddr_t buf, size_t len, int flags, \
213171133Sgnn		    caddr_t to, int tolen); }
214171133Sgnn134	MSTD	{ int shutdown(int s, int how); }
215171133Sgnn135	MSTD	{ int socketpair(int domain, int type, int protocol, \
216171133Sgnn		    int *rsv); }
217266800Svanhu136	STD	{ int mkdir(char *path, int mode); }
218171133Sgnn137	STD	{ int rmdir(char *path); }
219171133Sgnn138	STD	{ int utimes(char *path, struct timeval *tptr); }
220171133Sgnn139	OBSOL	4.2 sigreturn
221171133Sgnn140	MSTD	{ int adjtime(struct timeval *delta, \
222238935Sbz		    struct timeval *olddelta); }
223171133Sgnn141	MCOMPAT	{ int getpeername(int fdes, caddr_t asa, int *alen); }
224171133Sgnn142	MCOMPAT	{ long gethostid(void); }
225171133Sgnn143	MCOMPAT	{ int sethostid(long hostid); }
226171133Sgnn144	MCOMPAT	{ int getrlimit(u_int which, struct orlimit *rlp); }
227238935Sbz145	MCOMPAT	{ int setrlimit(u_int which, struct orlimit *rlp); }
228266800Svanhu146	MCOMPAT	{ int killpg(int pgid, int signum); }
229266800Svanhu147	MSTD	{ int setsid(void); }
230266800Svanhu148	STD	{ int quotactl(char *path, int cmd, int uid, caddr_t arg); }
231266800Svanhu149	MCOMPAT	{ int quota(void); }
232266800Svanhu150	MCPT_NOA { int getsockname(int fdec, caddr_t asa, int *alen); }\
233266800Svanhu		    getsockname getsockname_args int
234266800Svanhu
235266800Svanhu; Syscalls 151-180 inclusive are reserved for vendor-specific
236266800Svanhu; system calls.  (This includes various calls added for compatibity
237266800Svanhu; with other Unix variants.)
238266800Svanhu; Some of these calls are now supported by BSD...
239171133Sgnn151	UNIMPL	sem_lock (BSD/OS 2.x)
240266800Svanhu152	UNIMPL	sem_wakeup (BSD/OS 2.x)
241266800Svanhu153	UNIMPL	asyncdaemon (BSD/OS 2.x)
242266800Svanhu154	UNIMPL	nosys
243266800Svanhu; 155 is initialized by the NFS code, if present.
244266800Svanhu155	MNOIMPL	{ int nfssvc(int flag, caddr_t argp); }
245266800Svanhu156	COMPAT	{ int getdirentries(int fd, char *buf, u_int count, \
246266800Svanhu		    long *basep); }
247266800Svanhu157	COMPAT4	{ int statfs(char *path, struct ostatfs *buf); }
248266800Svanhu158	COMPAT4	{ int fstatfs(int fd, struct ostatfs *buf); }
249266800Svanhu159	UNIMPL	nosys
250266800Svanhu160	UNIMPL	nosys
251266800Svanhu161	STD	{ int getfh(char *fname, struct fhandle *fhp); }
252266800Svanhu162	MSTD	{ int getdomainname(char *domainname, int len); }
253171133Sgnn163	MSTD	{ int setdomainname(char *domainname, int len); }
254171133Sgnn164	MSTD	{ int uname(struct utsname *name); }
255171133Sgnn165	MSTD	{ int sysarch(int op, char *parms); }
256171133Sgnn166	MSTD	{ int rtprio(int function, pid_t pid, struct rtprio *rtp); }
257171133Sgnn167	UNIMPL	nosys
258171133Sgnn168	UNIMPL	nosys
259171133Sgnn; 169 is initialized by the SYSVSEM code if present or loaded
260171133Sgnn169	MNOSTD	{ int semsys(int which, int a2, int a3, int a4, int a5); }
261171133Sgnn; 169 is initialized by the SYSVMSG code if present or loaded
262266800Svanhu; XXX should be	{ int semsys(int which, ...); }
263171133Sgnn170	MNOSTD	{ int msgsys(int which, int a2, int a3, int a4, int a5, \
264171133Sgnn		    int a6); }
265171133Sgnn; 169 is initialized by the SYSVSHM code if present or loaded
266171133Sgnn; XXX should be	{ int msgsys(int which, ...); }
267171133Sgnn171	MNOSTD	{ int shmsys(int which, int a2, int a3, int a4); }
268171133Sgnn; XXX should be	{ int shmsys(int which, ...); }
269171133Sgnn172	UNIMPL	nosys
270171133Sgnn173	MSTD	{ ssize_t pread(int fd, void *buf, size_t nbyte, \
271171133Sgnn		    int pad, off_t offset); }
272171133Sgnn174	MSTD	{ ssize_t pwrite(int fd, const void *buf, \
273171133Sgnn		    size_t nbyte, int pad, off_t offset); }
274171133Sgnn175	UNIMPL	nosys
275275702Sae176	MSTD	{ int ntp_adjtime(struct timex *tp); }
276171133Sgnn177	UNIMPL	sfork (BSD/OS 2.x)
277171133Sgnn178	UNIMPL	getdescriptor (BSD/OS 2.x)
278266800Svanhu179	UNIMPL	setdescriptor (BSD/OS 2.x)
279266800Svanhu180	UNIMPL	nosys
280171133Sgnn
281266800Svanhu; Syscalls 181-199 are used by/reserved for BSD
282266800Svanhu181	MSTD	{ int setgid(gid_t gid); }
283266800Svanhu182	MSTD	{ int setegid(gid_t egid); }
284171133Sgnn183	MSTD	{ int seteuid(uid_t euid); }
285171133Sgnn184	UNIMPL	lfs_bmapv
286266800Svanhu185	UNIMPL	lfs_markv
287266800Svanhu186	UNIMPL	lfs_segclean
288171133Sgnn187	UNIMPL	lfs_segwait
289171167Sgnn188	STD	{ int stat(char *path, struct stat *ub); }
290171133Sgnn189	MSTD	{ int fstat(int fd, struct stat *sb); }
291171133Sgnn190	STD	{ int lstat(char *path, struct stat *ub); }
292171133Sgnn191	STD	{ int pathconf(char *path, int name); }
293177166Sbz192	MSTD	{ int fpathconf(int fd, int name); }
294171133Sgnn193	UNIMPL	nosys
295171133Sgnn194	MSTD	{ int getrlimit(u_int which, struct rlimit *rlp); } \
296171133Sgnn		    getrlimit __getrlimit_args int
297171133Sgnn195	MSTD	{ int setrlimit(u_int which, struct rlimit *rlp); } \
298171133Sgnn		    setrlimit __setrlimit_args int
299171133Sgnn196	STD	{ int getdirentries(int fd, char *buf, u_int count, \
300171133Sgnn		    long *basep); }
301171133Sgnn197	MSTD	{ caddr_t mmap(caddr_t addr, size_t len, int prot, \
302171133Sgnn		    int flags, int fd, int pad, off_t pos); }
303171133Sgnn198	STD	{ int nosys(void); } __syscall __syscall_args int
304171133Sgnn199	STD	{ off_t lseek(int fd, int pad, off_t offset, int whence); }
305171133Sgnn200	STD	{ int truncate(char *path, int pad, off_t length); }
306171133Sgnn201	STD	{ int ftruncate(int fd, int pad, off_t length); }
307171133Sgnn202	MSTD	{ int __sysctl(int *name, u_int namelen, void *old, \
308171133Sgnn		    size_t *oldlenp, void *new, size_t newlen); } \
309177166Sbz		    __sysctl sysctl_args int
310171133Sgnn203	MSTD	{ int mlock(const void *addr, size_t len); }
311171133Sgnn204	MSTD	{ int munlock(const void *addr, size_t len); }
312171133Sgnn205	STD	{ int undelete(char *path); }
313171133Sgnn206	STD	{ int futimes(int fd, struct timeval *tptr); }
314171133Sgnn207	MSTD	{ int getpgid(pid_t pid); }
315171133Sgnn208	UNIMPL	newreboot (NetBSD)
316171133Sgnn209	MSTD	{ int poll(struct pollfd *fds, u_int nfds, int timeout); }
317171133Sgnn
318171133Sgnn;
319171133Sgnn; The following are reserved for loadable syscalls
320188306Sbz;
321171133Sgnn210	NODEF	lkmnosys lkmnosys nosys_args int
322171133Sgnn211	NODEF	lkmnosys lkmnosys nosys_args int
323171133Sgnn212	NODEF	lkmnosys lkmnosys nosys_args int
324171133Sgnn213	NODEF	lkmnosys lkmnosys nosys_args int
325171133Sgnn214	NODEF	lkmnosys lkmnosys nosys_args int
326171133Sgnn215	NODEF	lkmnosys lkmnosys nosys_args int
327171133Sgnn216	NODEF	lkmnosys lkmnosys nosys_args int
328171133Sgnn217	NODEF	lkmnosys lkmnosys nosys_args int
329214250Sbz218	NODEF	lkmnosys lkmnosys nosys_args int
330171133Sgnn219	NODEF	lkmnosys lkmnosys nosys_args int
331262763Sglebius
332171133Sgnn;
333171133Sgnn; The following were introduced with NetBSD/4.4Lite-2
334171133Sgnn; They are initialized by thier respective modules/sysinits
335171133Sgnn220	MNOSTD	{ int __semctl(int semid, int semnum, int cmd, \
336171133Sgnn		    union semun *arg); }
337177166Sbz221	MNOSTD	{ int semget(key_t key, int nsems, int semflg); }
338171167Sgnn222	MNOSTD	{ int semop(int semid, struct sembuf *sops, size_t nsops); }
339177166Sbz223	UNIMPL	semconfig
340171133Sgnn224	MNOSTD	{ int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
341171133Sgnn225	MNOSTD	{ int msgget(key_t key, int msgflg); }
342177166Sbz226	MNOSTD	{ int msgsnd(int msqid, const void *msgp, size_t msgsz, \
343		    int msgflg); }
344227	MNOSTD	{ int msgrcv(int msqid, void *msgp, size_t msgsz, \
345		    long msgtyp, int msgflg); }
346228	MNOSTD	{ int shmat(int shmid, const void *shmaddr, int shmflg); }
347229	MNOSTD	{ int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
348230	MNOSTD	{ int shmdt(const void *shmaddr); }
349231	MNOSTD	{ int shmget(key_t key, size_t size, int shmflg); }
350;
351232	MSTD	{ int clock_gettime(clockid_t clock_id, struct timespec *tp); }
352233	MSTD	{ int clock_settime(clockid_t clock_id, \
353		    const struct timespec *tp); }
354234	MSTD	{ int clock_getres(clockid_t clock_id, struct timespec *tp); }
355235	UNIMPL	timer_create
356236	UNIMPL	timer_delete
357237	UNIMPL	timer_settime
358238	UNIMPL	timer_gettime
359239	UNIMPL	timer_getoverrun
360240	MSTD	{ int nanosleep(const struct timespec *rqtp, \
361		    struct timespec *rmtp); }
362241	UNIMPL	nosys
363242	UNIMPL	nosys
364243	UNIMPL	nosys
365244	UNIMPL	nosys
366245	UNIMPL	nosys
367246	UNIMPL	nosys
368247	UNIMPL	nosys
369248	UNIMPL	nosys
370249	UNIMPL	nosys
371; syscall numbers initially used in OpenBSD
372250	MSTD	{ int minherit(void *addr, size_t len, int inherit); }
373251	MSTD	{ int rfork(int flags); }
374252	MSTD	{ int openbsd_poll(struct pollfd *fds, u_int nfds, \
375		    int timeout); }
376253	MSTD	{ int issetugid(void); }
377254	STD	{ int lchown(char *path, int uid, int gid); }
378255	UNIMPL	nosys
379256	UNIMPL	nosys
380257	UNIMPL	nosys
381258	UNIMPL	nosys
382259	UNIMPL	nosys
383260	UNIMPL	nosys
384261	UNIMPL	nosys
385262	UNIMPL	nosys
386263	UNIMPL	nosys
387264	UNIMPL	nosys
388265	UNIMPL	nosys
389266	UNIMPL	nosys
390267	UNIMPL	nosys
391268	UNIMPL	nosys
392269	UNIMPL	nosys
393270	UNIMPL	nosys
394271	UNIMPL	nosys
395272	STD	{ int getdents(int fd, char *buf, size_t count); }
396273	UNIMPL	nosys
397274	STD	{ int lchmod(char *path, mode_t mode); }
398275	NOPROTO { int lchown(char *path, uid_t uid, gid_t gid); } \
399		    netbsd_lchown lchown_args int
400276	STD	{ int lutimes(char *path, struct timeval *tptr); }
401277	MNOPROTO { int msync(void *addr, size_t len, int flags); } \
402		    netbsd_msync msync_args int
403278	STD	{ int nstat(char *path, struct nstat *ub); }
404279	MSTD	{ int nfstat(int fd, struct nstat *sb); }
405280	STD	{ int nlstat(char *path, struct nstat *ub); }
406281	UNIMPL	nosys
407282	UNIMPL	nosys
408283	UNIMPL	nosys
409284	UNIMPL	nosys
410285	UNIMPL	nosys
411286	UNIMPL	nosys
412287	UNIMPL	nosys
413288	UNIMPL	nosys
414289	UNIMPL	nosys
415290	UNIMPL	nosys
416291	UNIMPL	nosys
417292	UNIMPL	nosys
418293	UNIMPL	nosys
419294	UNIMPL	nosys
420295	UNIMPL	nosys
421296	UNIMPL	nosys
422; XXX 297 is 300 in NetBSD 
423297	COMPAT4	{ int fhstatfs(const struct fhandle *u_fhp, \
424		    struct ostatfs *buf); }
425298	STD	{ int fhopen(const struct fhandle *u_fhp, int flags); }
426299	STD	{ int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
427; syscall numbers for FreeBSD
428300	MSTD	{ int modnext(int modid); }
429301	MSTD	{ int modstat(int modid, struct module_stat* stat); }
430302	MSTD	{ int modfnext(int modid); }
431303	MSTD	{ int modfind(const char *name); }
432304	MSTD	{ int kldload(const char *file); }
433305	MSTD	{ int kldunload(int fileid); }
434306	MSTD	{ int kldfind(const char *file); }
435307	MSTD	{ int kldnext(int fileid); }
436308	MSTD	{ int kldstat(int fileid, struct kld_file_stat* stat); }
437309	MSTD	{ int kldfirstmod(int fileid); }
438310	MSTD	{ int getsid(pid_t pid); }
439311	MSTD	{ int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
440312	MSTD	{ int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
441313	OBSOL	signanosleep
442314     NOSTD	{ int aio_return(struct aiocb *aiocbp); }
443315     NOSTD	{ int aio_suspend(struct aiocb * const * aiocbp, int nent, \
444		    const struct timespec *timeout); }
445316     NOSTD	{ int aio_cancel(int fd, struct aiocb *aiocbp); }
446317     NOSTD	{ int aio_error(struct aiocb *aiocbp); }
447318     NOSTD	{ int aio_read(struct aiocb *aiocbp); }
448319     NOSTD	{ int aio_write(struct aiocb *aiocbp); }
449320     NOSTD	{ int lio_listio(int mode, struct aiocb * const *acb_list, \
450		    int nent, struct sigevent *sig); }
451321     MSTD	{ int yield(void); }
452322	OBSOL	thr_sleep
453323	OBSOL	thr_wakeup
454324     MSTD	{ int mlockall(int how); }
455325     MSTD	{ int munlockall(void); }
456326     STD	{ int __getcwd(u_char *buf, u_int buflen); }
457
458327     MSTD	{ int sched_setparam (pid_t pid, \
459		    const struct sched_param *param); }
460328     MSTD	{ int sched_getparam (pid_t pid, struct sched_param *param); }
461
462329     MSTD	{ int sched_setscheduler (pid_t pid, int policy, \
463		    const struct sched_param *param); }
464330     MSTD	{ int sched_getscheduler (pid_t pid); }
465
466331     MSTD	{ int sched_yield (void); }
467332     MSTD	{ int sched_get_priority_max (int policy); }
468333     MSTD	{ int sched_get_priority_min (int policy); }
469334     MSTD	{ int sched_rr_get_interval (pid_t pid, \
470		    struct timespec *interval); }
471335	MSTD	{ int utrace(const void *addr, size_t len); }
472336	MCOMPAT4 { int sendfile(int fd, int s, off_t offset, size_t nbytes, \
473		    struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
474337	STD	{ int kldsym(int fileid, int cmd, void *data); }
475338	MSTD	{ int jail(struct jail *jail); }
476339	UNIMPL	pioctl
477340	MSTD	{ int sigprocmask(int how, const sigset_t *set, \
478		    sigset_t *oset); }
479341	MSTD	{ int sigsuspend(const sigset_t *sigmask); }
480342	MCOMPAT4 { int sigaction(int sig, const struct sigaction *act, \
481		    struct sigaction *oact); }
482343	MSTD	{ int sigpending(sigset_t *set); }
483344	MCOMPAT4 { int sigreturn(const struct ucontext4 *sigcntxp); }
484345	MSTD	{ int sigtimedwait(const sigset_t *set, \
485		    siginfo_t *info, const struct timespec *timeout); }
486346	MSTD	{ int sigwaitinfo(const sigset_t *set, siginfo_t *info); }
487347	MSTD	{ int __acl_get_file(const char *path, \
488		    acl_type_t type, struct acl *aclp); }
489348	MSTD	{ int __acl_set_file(const char *path, \
490		    acl_type_t type, struct acl *aclp); }
491349	MSTD	{ int __acl_get_fd(int filedes, acl_type_t type, \
492		    struct acl *aclp); }
493350	MSTD	{ int __acl_set_fd(int filedes, acl_type_t type, \
494		    struct acl *aclp); }
495351	MSTD	{ int __acl_delete_file(const char *path, acl_type_t type); }
496352	MSTD	{ int __acl_delete_fd(int filedes, acl_type_t type); }
497353	MSTD	{ int __acl_aclcheck_file(const char *path, \
498		    acl_type_t type, struct acl *aclp); }
499354	MSTD	{ int __acl_aclcheck_fd(int filedes, acl_type_t type, \
500		    struct acl *aclp); }
501355	STD	{ int extattrctl(const char *path, int cmd, \
502		    const char *filename, int attrnamespace, \
503		    const char *attrname); }
504356	STD	{ int extattr_set_file(const char *path, \
505		    int attrnamespace, const char *attrname, \
506		    void *data, size_t nbytes); }
507357	STD	{ ssize_t extattr_get_file(const char *path, \
508		    int attrnamespace, const char *attrname, \
509		    void *data, size_t nbytes); }
510358	STD	{ int extattr_delete_file(const char *path, \
511		    int attrnamespace, const char *attrname); }
512359	NOSTD	{ int aio_waitcomplete(struct aiocb **aiocbp, \
513		    struct timespec *timeout); }
514360	MSTD	{ int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
515361	MSTD	{ int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
516362	MSTD	{ int kqueue(void); }
517363	MSTD	{ int kevent(int fd, \
518		    const struct kevent *changelist, int nchanges, \
519		    struct kevent *eventlist, int nevents, \
520		    const struct timespec *timeout); }
521364	UNIMPL	__cap_get_proc
522365	UNIMPL	__cap_set_proc
523366	UNIMPL	__cap_get_fd
524367	UNIMPL	__cap_get_file
525368	UNIMPL	__cap_set_fd
526369	UNIMPL	__cap_set_file
527370	NODEF	lkmressys lkmressys nosys_args int
528371	STD	{ int extattr_set_fd(int fd, int attrnamespace, \
529		    const char *attrname, void *data, \
530		    size_t nbytes); }
531372	STD	{ ssize_t extattr_get_fd(int fd, int attrnamespace, \
532		    const char *attrname, void *data, size_t nbytes); }
533373	STD	{ int extattr_delete_fd(int fd, int attrnamespace, \
534		    const char *attrname); }
535374	MSTD	{ int __setugid(int flag); }
536375	NOIMPL	{ int nfsclnt(int flag, caddr_t argp); }
537376	STD	{ int eaccess(char *path, int flags); }
538377	UNIMPL	afs_syscall
539378	STD	{ int nmount(struct iovec *iovp, unsigned int iovcnt, \
540		    int flags); }
541379	MSTD	{ int kse_exit(void); }
542380	MSTD	{ int kse_wakeup(struct kse_mailbox *mbx); }
543381	STD	{ int kse_create(struct kse_mailbox *mbx, \
544		    int newgroup); }
545382	MSTD	{ int kse_thr_interrupt(struct kse_thr_mailbox *tmbx, int cmd, \
546		    long data); }
547383	MSTD	{ int kse_release(struct timespec *timeout); }
548384	MSTD	{ int __mac_get_proc(struct mac *mac_p); }
549385	MSTD	{ int __mac_set_proc(struct mac *mac_p); }
550386	MSTD	{ int __mac_get_fd(int fd, struct mac *mac_p); }
551387	MSTD	{ int __mac_get_file(const char *path_p, \
552		    struct mac *mac_p); }
553388	MSTD	{ int __mac_set_fd(int fd, struct mac *mac_p); }
554389	MSTD	{ int __mac_set_file(const char *path_p, \
555		    struct mac *mac_p); }
556390	STD	{ int kenv(int what, const char *name, char *value, \
557		    int len); }
558391	STD	{ int lchflags(const char *path, int flags); }
559392	STD	{ int uuidgen(struct uuid *store, int count); }
560393	MSTD	{ int sendfile(int fd, int s, off_t offset, size_t nbytes, \
561		    struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
562394	MSTD	{ int mac_syscall(const char *policy, int call, \
563		    void *arg); }
564395	STD	{ int getfsstat(struct statfs *buf, long bufsize, \
565		    int flags); }
566396	STD	{ int statfs(char *path, struct statfs *buf); }
567397	STD	{ int fstatfs(int fd, struct statfs *buf); }
568398	STD	{ int fhstatfs(const struct fhandle *u_fhp, \
569		    struct statfs *buf); }
570399	UNIMPL	nosys
571400	MNOSTD	{ int ksem_close(semid_t id); }
572401	MNOSTD	{ int ksem_post(semid_t id); }
573402	MNOSTD	{ int ksem_wait(semid_t id); }
574403	MNOSTD	{ int ksem_trywait(semid_t id); }
575404	MNOSTD	{ int ksem_init(semid_t *idp, unsigned int value); }
576405	MNOSTD	{ int ksem_open(semid_t *idp, const char *name, \
577		    int oflag, mode_t mode, unsigned int value); }
578406	MNOSTD	{ int ksem_unlink(const char *name); }
579407	MNOSTD	{ int ksem_getvalue(semid_t id, int *val); }
580408	MNOSTD	{ int ksem_destroy(semid_t id); }
581409	MSTD	{ int __mac_get_pid(pid_t pid, struct mac *mac_p); }
582410	MSTD	{ int __mac_get_link(const char *path_p, \
583		    struct mac *mac_p); }
584411	MSTD	{ int __mac_set_link(const char *path_p, \
585		    struct mac *mac_p); }
586412	STD	{ int extattr_set_link(const char *path, \
587		    int attrnamespace, const char *attrname, \
588		    void *data, size_t nbytes); }
589413	STD	{ ssize_t extattr_get_link(const char *path, \
590		    int attrnamespace, const char *attrname, \
591		    void *data, size_t nbytes); }
592414	STD	{ int extattr_delete_link(const char *path, \
593		    int attrnamespace, const char *attrname); }
594415	MSTD	{ int __mac_execve(char *fname, char **argv, \
595		    char **envv, struct mac *mac_p); }
596416	MSTD	{ int sigaction(int sig, const struct sigaction *act, \
597		    struct sigaction *oact); }
598417	MSTD	{ int sigreturn(const struct __ucontext *sigcntxp); }
599418	UNIMPL	__xstat
600419	UNIMPL	__xfstat
601420	UNIMPL	__xlstat
602421	MSTD	{ int getcontext(struct __ucontext *ucp); }
603422	MSTD	{ int setcontext(const struct __ucontext *ucp); }
604423	MSTD	{ int swapcontext(struct __ucontext *oucp, \
605		    const struct __ucontext *ucp); }
606424	MSTD	{ int swapoff(const char *name); }
607425	MSTD	{ int __acl_get_link(const char *path, \
608		    acl_type_t type, struct acl *aclp); }
609426	MSTD	{ int __acl_set_link(const char *path, \
610		    acl_type_t type, struct acl *aclp); }
611427	MSTD	{ int __acl_delete_link(const char *path, \
612		    acl_type_t type); }
613428	MSTD	{ int __acl_aclcheck_link(const char *path, \
614		    acl_type_t type, struct acl *aclp); }
615429	MSTD	{ int sigwait(const sigset_t *set, int *sig); }
616430	MSTD	{ int thr_create(ucontext_t *ctx, thr_id_t *id, int flags); }
617431	MSTD	{ void thr_exit(void); }
618432	MSTD	{ int thr_self(thr_id_t *id); }
619433	MSTD	{ int thr_kill(thr_id_t id, int sig); }
620434	MSTD	{ int _umtx_lock(struct umtx *umtx); }
621435	MSTD	{ int _umtx_unlock(struct umtx *umtx); }
622436	MSTD	{ int jail_attach(int jid); }
623437	STD	{ ssize_t extattr_list_fd(int fd, int attrnamespace, \
624		    void *data, size_t nbytes); }
625438	STD	{ ssize_t extattr_list_file(const char *path, \
626		    int attrnamespace, void *data, size_t nbytes); }
627439	STD	{ ssize_t extattr_list_link(const char *path, \
628		    int attrnamespace, void *data, size_t nbytes); }
629440	MSTD	{ int kse_switchin(const struct __mcontext *mcp, \
630		    long val, long *loc); }
631; Please copy any additions and changes to the following compatability tables:
632; sys/compat/freebsd32/syscalls.master
633