2 ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94
3 ; from: src/sys/kern/syscalls.master 1.107
5 ; System call name/number master file.
6 ; Processed to created init_sysent.c, syscalls.c and syscall.h.
8 ; Columns: number audit type nargs name alt{name,tag,rtyp}/comments
9 ; number system call number, must be in order
10 ; audit the audit event associated with the system call
11 ; A value of AUE_NULL means no auditing, but it also means that
12 ; there is no audit event for the call at this time. For the
13 ; case where the event exists, but we don't want auditing, the
14 ; event should be #defined to AUE_NULL in audit_kevents.h.
15 ; type one of STD, OBSOL, UNIMPL, COMPAT, CPT_NOA, LIBCOMPAT,
16 ; NODEF, NOARGS, NOPROTO, NOIMPL, NOSTD, COMPAT4
17 ; name psuedo-prototype of syscall routine
18 ; If one of the following alts is different, then all appear:
19 ; altname name of system call if different
20 ; alttag name of args struct tag if different from [o]`name'"_args"
21 ; altrtyp return type if not int (bogus - syscalls always return int)
22 ; for UNIMPL/OBSOL, name continues with comments
26 ; COMPAT included on COMPAT #ifdef
27 ; COMPAT4 included on COMPAT4 #ifdef (FreeBSD 4 compat)
28 ; LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h
29 ; OBSOL obsolete, not included in system, only specifies name
30 ; UNIMPL not implemented, placeholder only
31 ; NOSTD implemented but as a lkm that can be statically
32 ; compiled in; sysent entry will be filled with lkmsys
33 ; so the SYSCALL_MODULE macro works
34 ; NOARGS same as STD except do not create structure in sys/sysproto.h
35 ; NODEF same as STD except only have the entry in the syscall table
36 ; added. Meaning - do do not create structure or function
37 ; prototype in sys/sysproto.h
38 ; NOPROTO same as STD except do not create structure or
39 ; function prototype in sys/sysproto.h. Does add a
40 ; definition to syscall.h besides adding a sysent.
42 ; #ifdef's, etc. may be included, and are copied to the output files.
44 #include <sys/param.h>
45 #include <sys/sysent.h>
46 #include <sys/sysproto.h>
47 #include <sys/mount.h>
48 #include <sys/socket.h>
49 #include <compat/freebsd32/freebsd32.h>
50 #include <compat/freebsd32/freebsd32_proto.h>
52 ; Reserved/unimplemented system calls in the range 0-150 inclusive
53 ; are reserved for use in future Berkeley releases.
54 ; Additional system calls implemented in vendor and other
55 ; redistributions should be placed in the reserved range at the end
56 ; of the current calls.
58 0 AUE_NULL NOPROTO { int nosys(void); } syscall nosys_args int
59 1 AUE_EXIT NOPROTO { void sys_exit(int rval); } exit \
61 2 AUE_FORK NOPROTO { int fork(void); }
62 3 AUE_READ NOPROTO { ssize_t read(int fd, void *buf, \
64 4 AUE_WRITE NOPROTO { ssize_t write(int fd, const void *buf, \
66 5 AUE_OPEN_RWTC NOPROTO { int open(char *path, int flags, \
68 6 AUE_CLOSE NOPROTO { int close(int fd); }
69 7 AUE_WAIT4 STD { int freebsd32_wait4(int pid, int *status, \
70 int options, struct rusage32 *rusage); }
71 8 AUE_CREAT OBSOL old creat
72 9 AUE_LINK NOPROTO { int link(char *path, char *link); }
73 10 AUE_UNLINK NOPROTO { int unlink(char *path); }
74 11 AUE_NULL OBSOL execv
75 12 AUE_CHDIR NOPROTO { int chdir(char *path); }
76 13 AUE_FCHDIR NOPROTO { int fchdir(int fd); }
77 14 AUE_MKNOD NOPROTO { int mknod(char *path, int mode, int dev); }
78 15 AUE_CHMOD NOPROTO { int chmod(char *path, int mode); }
79 16 AUE_CHOWN NOPROTO { int chown(char *path, int uid, int gid); }
80 17 AUE_NULL NOPROTO { int obreak(char *nsize); } break \
82 18 AUE_GETFSSTAT COMPAT4 { int freebsd32_getfsstat( \
83 struct statfs32 *buf, long bufsize, \
85 19 AUE_LSEEK OBSOL olseek
86 20 AUE_GETPID NOPROTO { pid_t getpid(void); }
87 21 AUE_MOUNT NOPROTO { int mount(char *type, char *path, \
88 int flags, caddr_t data); }
89 22 AUE_UMOUNT NOPROTO { int unmount(char *path, int flags); }
90 23 AUE_SETUID NOPROTO { int setuid(uid_t uid); }
91 24 AUE_GETUID NOPROTO { uid_t getuid(void); }
92 25 AUE_GETEUID NOPROTO { uid_t geteuid(void); }
93 26 AUE_PTRACE NOPROTO { int ptrace(int req, pid_t pid, \
94 caddr_t addr, int data); }
95 27 AUE_RECVMSG STD { int freebsd32_recvmsg(int s, struct msghdr32 *msg, \
97 28 AUE_SENDMSG STD { int freebsd32_sendmsg(int s, struct msghdr32 *msg, \
99 29 AUE_RECVFROM STD { int freebsd32_recvfrom(int s, u_int32_t buf, \
100 u_int32_t len, int flags, u_int32_t from, \
101 u_int32_t fromlenaddr); }
102 30 AUE_ACCEPT NOPROTO { int accept(int s, caddr_t name, \
104 31 AUE_GETPEERNAME NOPROTO { int getpeername(int fdes, caddr_t asa, \
106 32 AUE_GETSOCKNAME NOPROTO { int getsockname(int fdes, caddr_t asa, \
108 33 AUE_ACCESS NOPROTO { int access(char *path, int flags); }
109 34 AUE_CHFLAGS NOPROTO { int chflags(char *path, int flags); }
110 35 AUE_FCHFLAGS NOPROTO { int fchflags(int fd, int flags); }
111 36 AUE_SYNC NOPROTO { int sync(void); }
112 37 AUE_KILL NOPROTO { int kill(int pid, int signum); }
113 38 AUE_STAT UNIMPL ostat
114 39 AUE_GETPPID NOPROTO { pid_t getppid(void); }
115 40 AUE_LSTAT UNIMPL olstat
116 41 AUE_DUP NOPROTO { int dup(u_int fd); }
117 42 AUE_PIPE NOPROTO { int pipe(void); }
118 43 AUE_GETEGID NOPROTO { gid_t getegid(void); }
119 44 AUE_PROFILE NOPROTO { int profil(caddr_t samples, size_t size, \
120 size_t offset, u_int scale); }
121 45 AUE_KTRACE NOPROTO { int ktrace(const char *fname, int ops, \
122 int facs, int pid); }
123 46 AUE_SIGACTION COMPAT { int freebsd32_sigaction( int signum, \
124 struct osigaction32 *nsa, \
125 struct osigaction32 *osa); }
126 47 AUE_GETGID NOPROTO { gid_t getgid(void); }
127 48 AUE_SIGPROCMASK COMPAT { int freebsd32_sigprocmask(int how, \
129 49 AUE_GETLOGIN NOPROTO { int getlogin(char *namebuf, \
131 50 AUE_SETLOGIN NOPROTO { int setlogin(char *namebuf); }
132 51 AUE_ACCT NOPROTO { int acct(char *path); }
133 52 AUE_SIGPENDING COMPAT { int freebsd32_sigpending(void); }
134 53 AUE_SIGALTSTACK STD { int freebsd32_sigaltstack( \
135 struct sigaltstack32 *ss, \
136 struct sigaltstack32 *oss); }
137 54 AUE_NULL STD { int freebsd32_ioctl(int fd, uint32_t com, \
138 struct md_ioctl32 *data); }
139 55 AUE_REBOOT NOPROTO { int reboot(int opt); }
140 56 AUE_REVOKE NOPROTO { int revoke(char *path); }
141 57 AUE_SYMLINK NOPROTO { int symlink(char *path, char *link); }
142 58 AUE_READLINK NOPROTO { int readlink(char *path, char *buf, \
144 59 AUE_EXECVE STD { int freebsd32_execve(char *fname, \
145 u_int32_t *argv, u_int32_t *envv); }
146 60 AUE_UMASK NOPROTO { int umask(int newmask); } umask \
148 61 AUE_CHROOT NOPROTO { int chroot(char *path); }
149 62 AUE_FSTAT OBSOL ofstat
150 63 AUE_NULL OBSOL ogetkerninfo
151 64 AUE_NULL OBSOL ogetpagesize
152 65 AUE_MSYNC NOPROTO { int msync(void *addr, size_t len, \
154 66 AUE_VFORK NOPROTO { int vfork(void); }
155 67 AUE_NULL OBSOL vread
156 68 AUE_NULL OBSOL vwrite
157 69 AUE_SBRK NOPROTO { int sbrk(int incr); }
158 70 AUE_SSTK NOPROTO { int sstk(int incr); }
159 71 AUE_MMAP OBSOL ommap
160 72 AUE_O_VADVISE NOPROTO { int ovadvise(int anom); } vadvise \
162 73 AUE_MUNMAP NOPROTO { int munmap(void *addr, size_t len); }
163 74 AUE_MPROTECT NOPROTO { int mprotect(const void *addr, \
164 size_t len, int prot); }
165 75 AUE_MADVISE NOPROTO { int madvise(void *addr, size_t len, \
167 76 AUE_NULL OBSOL vhangup
168 77 AUE_NULL OBSOL vlimit
169 78 AUE_MINCORE NOPROTO { int mincore(const void *addr, size_t len, \
171 79 AUE_GETGROUPS NOPROTO { int getgroups(u_int gidsetsize, \
173 80 AUE_SETGROUPS NOPROTO { int setgroups(u_int gidsetsize, \
175 81 AUE_GETPGRP NOPROTO { int getpgrp(void); }
176 82 AUE_SETPGRP NOPROTO { int setpgid(int pid, int pgid); }
177 83 AUE_SETITIMER STD { int freebsd32_setitimer(u_int which, \
178 struct itimerval32 *itv, \
179 struct itimerval32 *oitv); }
180 84 AUE_NULL OBSOL owait
182 85 AUE_SWAPON NOPROTO { int swapon(char *name); }
183 86 AUE_GETITIMER STD { int freebsd32_getitimer(u_int which, \
184 struct itimerval32 *itv); }
185 87 AUE_O_GETHOSTNAME OBSOL ogethostname
186 88 AUE_O_SETHOSTNAME OBSOL osethostname
187 89 AUE_GETDTABLESIZE NOPROTO { int getdtablesize(void); }
188 90 AUE_DUP2 NOPROTO { int dup2(u_int from, u_int to); }
189 91 AUE_NULL UNIMPL getdopt
190 92 AUE_FCNTL NOPROTO { int fcntl(int fd, int cmd, long arg); }
191 93 AUE_SELECT STD { int freebsd32_select(int nd, fd_set *in, \
192 fd_set *ou, fd_set *ex, \
193 struct timeval32 *tv); }
194 ; XXX need to override for big-endian - little-endian should work fine.
195 94 AUE_NULL UNIMPL setdopt
196 95 AUE_FSYNC NOPROTO { int fsync(int fd); }
197 96 AUE_SETPRIORITY NOPROTO { int setpriority(int which, int who, \
199 97 AUE_SOCKET NOPROTO { int socket(int domain, int type, \
201 98 AUE_CONNECT NOPROTO { int connect(int s, caddr_t name, \
203 99 AUE_NULL OBSOL oaccept
204 100 AUE_GETPRIORITY NOPROTO { int getpriority(int which, int who); }
205 101 AUE_NULL OBSOL osend
206 102 AUE_NULL OBSOL orecv
207 103 AUE_NULL OBSOL osigreturn
208 104 AUE_BIND NOPROTO { int bind(int s, caddr_t name, \
210 105 AUE_SETSOCKOPT NOPROTO { int setsockopt(int s, int level, \
211 int name, caddr_t val, int valsize); }
212 106 AUE_LISTEN NOPROTO { int listen(int s, int backlog); }
213 107 AUE_NULL OBSOL vtimes
214 108 AUE_O_SIGVEC COMPAT { int freebsd32_sigvec(int signum, \
215 struct sigvec32 *nsv, \
216 struct sigvec32 *osv); }
217 109 AUE_O_SIGBLOCK COMPAT { int freebsd32_sigblock(int mask); }
218 110 AUE_O_SIGSETMASK COMPAT { int freebsd32_sigsetmask( int mask); }
219 111 AUE_SIGSUSPEND COMPAT { int freebsd32_sigsuspend( int mask); }
220 112 AUE_O_SIGSTACK COMPAT { int freebsd32_sigstack( \
221 struct sigstack32 *nss, \
222 struct sigstack32 *oss); }
223 113 AUE_NULL OBSOL orecvmsg
224 114 AUE_NULL OBSOL osendmsg
225 115 AUE_NULL OBSOL vtrace
226 116 AUE_GETTIMEOFDAY STD { int freebsd32_gettimeofday( \
227 struct timeval32 *tp, \
228 struct timezone *tzp); }
229 117 AUE_GETRUSAGE STD { int freebsd32_getrusage(int who, \
230 struct rusage32 *rusage); }
231 118 AUE_GETSOCKOPT NOPROTO { int getsockopt(int s, int level, \
232 int name, caddr_t val, int *avalsize); }
233 119 AUE_NULL UNIMPL resuba (BSD/OS 2.x)
234 120 AUE_READV STD { int freebsd32_readv(int fd, \
235 struct iovec32 *iovp, u_int iovcnt); }
236 121 AUE_WRITEV STD { int freebsd32_writev(int fd, \
237 struct iovec32 *iovp, u_int iovcnt); }
238 122 AUE_SETTIMEOFDAY STD { int freebsd32_settimeofday( \
239 struct timeval32 *tv, \
240 struct timezone *tzp); }
241 123 AUE_FCHOWN NOPROTO { int fchown(int fd, int uid, int gid); }
242 124 AUE_FCHMOD NOPROTO { int fchmod(int fd, int mode); }
243 125 AUE_RECVFROM OBSOL orecvfrom
244 126 AUE_SETREUID NOPROTO { int setreuid(int ruid, int euid); }
245 127 AUE_SETREGID NOPROTO { int setregid(int rgid, int egid); }
246 128 AUE_RENAME NOPROTO { int rename(char *from, char *to); }
247 129 AUE_TRUNCATE OBSOL otruncate
248 130 AUE_FTRUNCATE OBSOL ftruncate
249 131 AUE_FLOCK NOPROTO { int flock(int fd, int how); }
250 132 AUE_MKFIFO NOPROTO { int mkfifo(char *path, int mode); }
251 133 AUE_SENDTO NOPROTO { int sendto(int s, caddr_t buf, \
252 size_t len, int flags, caddr_t to, \
254 134 AUE_SHUTDOWN NOPROTO { int shutdown(int s, int how); }
255 135 AUE_SOCKETPAIR NOPROTO { int socketpair(int domain, int type, \
256 int protocol, int *rsv); }
257 136 AUE_MKDIR NOPROTO { int mkdir(char *path, int mode); }
258 137 AUE_RMDIR NOPROTO { int rmdir(char *path); }
259 138 AUE_UTIMES STD { int freebsd32_utimes(char *path, \
260 struct timeval32 *tptr); }
261 139 AUE_NULL OBSOL 4.2 sigreturn
262 140 AUE_ADJTIME STD { int freebsd32_adjtime( \
263 struct timeval32 *delta, \
264 struct timeval32 *olddelta); }
265 141 AUE_GETPEERNAME OBSOL ogetpeername
266 142 AUE_SYSCTL OBSOL ogethostid
267 143 AUE_SYSCTL OBSOL sethostid
268 144 AUE_GETRLIMIT OBSOL getrlimit
269 145 AUE_SETRLIMIT OBSOL setrlimit
270 146 AUE_KILLPG OBSOL killpg
271 147 AUE_SETSID NOPROTO { int setsid(void); }
272 148 AUE_QUOTACTL NOPROTO { int quotactl(char *path, int cmd, int uid, \
274 149 AUE_O_QUOTA OBSOL oquota
275 150 AUE_GETSOCKNAME OBSOL ogetsockname
277 ; Syscalls 151-180 inclusive are reserved for vendor-specific
278 ; system calls. (This includes various calls added for compatibity
279 ; with other Unix variants.)
280 ; Some of these calls are now supported by BSD...
281 151 AUE_NULL UNIMPL sem_lock (BSD/OS 2.x)
282 152 AUE_NULL UNIMPL sem_wakeup (BSD/OS 2.x)
283 153 AUE_NULL UNIMPL asyncdaemon (BSD/OS 2.x)
284 ; 154 is initialised by the NLM code, if present.
285 154 AUE_NULL UNIMPL nlm_syscall
286 ; 155 is initialized by the NFS code, if present.
287 ; XXX this is a problem!!!
288 155 AUE_NFS_SVC UNIMPL nfssvc
289 156 AUE_GETDIRENTRIES OBSOL ogetdirentries
290 157 AUE_STATFS COMPAT4 { int freebsd32_statfs(char *path, \
291 struct statfs32 *buf); }
292 158 AUE_FSTATFS COMPAT4 { int freebsd32_fstatfs(int fd, \
293 struct statfs32 *buf); }
294 159 AUE_NULL UNIMPL nosys
295 160 AUE_LGETFH UNIMPL lgetfh
296 161 AUE_NFS_GETFH NOPROTO { int getfh(char *fname, \
297 struct fhandle *fhp); }
298 162 AUE_SYSCTL NOPROTO { int getdomainname(char *domainname, \
300 163 AUE_SYSCTL NOPROTO { int setdomainname(char *domainname, \
302 164 AUE_NULL NOPROTO { int uname(struct utsname *name); }
303 165 AUE_SYSARCH NOPROTO { int sysarch(int op, char *parms); }
304 166 AUE_RTPRIO NOPROTO { int rtprio(int function, pid_t pid, \
305 struct rtprio *rtp); }
306 167 AUE_NULL UNIMPL nosys
307 168 AUE_NULL UNIMPL nosys
308 169 AUE_SEMSYS STD { int freebsd32_semsys(int which, int a2, \
309 int a3, int a4, int a5); }
310 170 AUE_MSGSYS STD { int freebsd32_msgsys(int which, int a2, \
311 int a3, int a4, int a5, int a6); }
312 171 AUE_SHMSYS STD { int freebsd32_shmsys(uint32_t which, uint32_t a2, \
313 uint32_t a3, uint32_t a4); }
314 172 AUE_NULL UNIMPL nosys
315 173 AUE_PREAD COMPAT6 { ssize_t freebsd32_pread(int fd, void *buf, \
316 size_t nbyte, int pad, \
317 u_int32_t offsetlo, u_int32_t offsethi); }
318 ; XXX note - bigendian is different
319 174 AUE_PWRITE COMPAT6 { ssize_t freebsd32_pwrite(int fd, \
320 const void *buf, size_t nbyte, int pad, \
321 u_int32_t offsetlo, u_int32_t offsethi); }
322 ; XXX note - bigendian is different
323 175 AUE_NULL UNIMPL nosys
324 176 AUE_NTP_ADJTIME NOPROTO { int ntp_adjtime(struct timex *tp); }
325 177 AUE_NULL UNIMPL sfork (BSD/OS 2.x)
326 178 AUE_NULL UNIMPL getdescriptor (BSD/OS 2.x)
327 179 AUE_NULL UNIMPL setdescriptor (BSD/OS 2.x)
328 180 AUE_NULL UNIMPL nosys
330 ; Syscalls 181-199 are used by/reserved for BSD
331 181 AUE_SETGID NOPROTO { int setgid(gid_t gid); }
332 182 AUE_SETEGID NOPROTO { int setegid(gid_t egid); }
333 183 AUE_SETEUID NOPROTO { int seteuid(uid_t euid); }
334 184 AUE_NULL UNIMPL lfs_bmapv
335 185 AUE_NULL UNIMPL lfs_markv
336 186 AUE_NULL UNIMPL lfs_segclean
337 187 AUE_NULL UNIMPL lfs_segwait
338 188 AUE_STAT STD { int freebsd32_stat(char *path, \
339 struct stat32 *ub); }
340 189 AUE_FSTAT STD { int freebsd32_fstat(int fd, \
341 struct stat32 *ub); }
342 190 AUE_LSTAT STD { int freebsd32_lstat(char *path, \
343 struct stat32 *ub); }
344 191 AUE_PATHCONF NOPROTO { int pathconf(char *path, int name); }
345 192 AUE_FPATHCONF NOPROTO { int fpathconf(int fd, int name); }
346 193 AUE_NULL UNIMPL nosys
347 194 AUE_GETRLIMIT NOPROTO { int getrlimit(u_int which, \
348 struct rlimit *rlp); } getrlimit \
350 195 AUE_SETRLIMIT NOPROTO { int setrlimit(u_int which, \
351 struct rlimit *rlp); } setrlimit \
353 196 AUE_GETDIRENTRIES STD { int freebsd32_getdirentries(int fd, \
354 char *buf, u_int count, int32_t *basep); }
355 197 AUE_MMAP COMPAT6 { caddr_t freebsd32_mmap(caddr_t addr, \
356 size_t len, int prot, int flags, int fd, \
357 int pad, u_int32_t poslo, \
359 198 AUE_NULL NOPROTO { int nosys(void); } __syscall \
361 ; XXX note - bigendian is different
362 199 AUE_LSEEK COMPAT6 { off_t freebsd32_lseek(int fd, int pad, \
363 u_int32_t offsetlo, u_int32_t offsethi, \
365 ; XXX note - bigendian is different
366 200 AUE_TRUNCATE COMPAT6 { int freebsd32_truncate(char *path, \
367 int pad, u_int32_t lengthlo, \
368 u_int32_t lengthhi); }
369 ; XXX note - bigendian is different
370 201 AUE_FTRUNCATE COMPAT6 { int freebsd32_ftruncate(int fd, int pad, \
371 u_int32_t lengthlo, u_int32_t lengthhi); }
372 202 AUE_SYSCTL STD { int freebsd32_sysctl(int *name, \
373 u_int namelen, void *old, \
374 u_int32_t *oldlenp, void *new, \
376 203 AUE_MLOCK NOPROTO { int mlock(const void *addr, \
378 204 AUE_MUNLOCK NOPROTO { int munlock(const void *addr, \
380 205 AUE_UNDELETE NOPROTO { int undelete(char *path); }
381 206 AUE_FUTIMES STD { int freebsd32_futimes(int fd, \
382 struct timeval32 *tptr); }
383 207 AUE_GETPGID NOPROTO { int getpgid(pid_t pid); }
384 208 AUE_NULL UNIMPL newreboot (NetBSD)
385 209 AUE_POLL NOPROTO { int poll(struct pollfd *fds, u_int nfds, \
389 ; The following are reserved for loadable syscalls
403 ; The following were introduced with NetBSD/4.4Lite-2
404 ; They are initialized by thier respective modules/sysinits
406 220 AUE_SEMCTL STD { int freebsd32_semctl(int semid, int semnum, \
407 int cmd, union semun32 *arg); }
408 221 AUE_SEMGET NOPROTO { int semget(key_t key, int nsems, \
410 222 AUE_SEMOP NOPROTO { int semop(int semid, struct sembuf *sops, \
412 223 AUE_NULL UNIMPL semconfig
413 224 AUE_MSGCTL STD { int freebsd32_msgctl(int msqid, int cmd, \
414 struct msqid_ds32 *buf); }
415 225 AUE_MSGGET NOPROTO { int msgget(key_t key, int msgflg); }
416 226 AUE_MSGSND STD { int freebsd32_msgsnd(int msqid, void *msgp, \
417 size_t msgsz, int msgflg); }
418 227 AUE_MSGRCV STD { int freebsd32_msgrcv(int msqid, void *msgp, \
419 size_t msgsz, long msgtyp, int msgflg); }
420 228 AUE_SHMAT NOPROTO { int shmat(int shmid, void *shmaddr, \
422 229 AUE_SHMCTL STD { int freebsd32_shmctl(int shmid, int cmd, \
423 struct shmid_ds *buf); }
424 230 AUE_SHMDT NOPROTO { int shmdt(void *shmaddr); }
425 231 AUE_SHMGET NOPROTO { int shmget(key_t key, int size, \
428 232 AUE_NULL STD { int freebsd32_clock_gettime(clockid_t clock_id, \
429 struct timespec32 *tp); }
430 233 AUE_CLOCK_SETTIME STD { int freebsd32_clock_settime(clockid_t clock_id, \
431 const struct timespec32 *tp); }
432 234 AUE_NULL STD { int freebsd32_clock_getres(clockid_t clock_id, \
433 struct timespec32 *tp); }
434 235 AUE_NULL UNIMPL timer_create
435 236 AUE_NULL UNIMPL timer_delete
436 237 AUE_NULL UNIMPL timer_settime
437 238 AUE_NULL UNIMPL timer_gettime
438 239 AUE_NULL UNIMPL timer_getoverrun
439 240 AUE_NULL STD { int freebsd32_nanosleep( \
440 const struct timespec32 *rqtp, \
441 struct timespec32 *rmtp); }
442 241 AUE_NULL UNIMPL nosys
443 242 AUE_NULL UNIMPL nosys
444 243 AUE_NULL UNIMPL nosys
445 244 AUE_NULL UNIMPL nosys
446 245 AUE_NULL UNIMPL nosys
447 246 AUE_NULL UNIMPL nosys
448 247 AUE_NULL UNIMPL nosys
449 248 AUE_NULL UNIMPL ntp_gettime
450 249 AUE_NULL UNIMPL nosys
451 ; syscall numbers initially used in OpenBSD
452 250 AUE_MINHERIT NOPROTO { int minherit(void *addr, size_t len, \
454 251 AUE_RFORK NOPROTO { int rfork(int flags); }
455 252 AUE_POLL NOPROTO { int openbsd_poll(struct pollfd *fds, \
456 u_int nfds, int timeout); }
457 253 AUE_ISSETUGID NOPROTO { int issetugid(void); }
458 254 AUE_LCHOWN NOPROTO { int lchown(char *path, int uid, int gid); }
459 255 AUE_NULL NOSTD { int freebsd32_aio_read( \
460 struct aiocb32 *aiocbp); }
461 256 AUE_NULL NOSTD { int freebsd32_aio_write( \
462 struct aiocb32 *aiocbp); }
463 257 AUE_NULL NOSTD { int freebsd32_lio_listio(int mode, \
464 struct aiocb32 * const *acb_list, \
465 int nent, struct sigevent *sig); }
466 258 AUE_NULL UNIMPL nosys
467 259 AUE_NULL UNIMPL nosys
468 260 AUE_NULL UNIMPL nosys
469 261 AUE_NULL UNIMPL nosys
470 262 AUE_NULL UNIMPL nosys
471 263 AUE_NULL UNIMPL nosys
472 264 AUE_NULL UNIMPL nosys
473 265 AUE_NULL UNIMPL nosys
474 266 AUE_NULL UNIMPL nosys
475 267 AUE_NULL UNIMPL nosys
476 268 AUE_NULL UNIMPL nosys
477 269 AUE_NULL UNIMPL nosys
478 270 AUE_NULL UNIMPL nosys
479 271 AUE_NULL UNIMPL nosys
480 272 AUE_O_GETDENTS NOPROTO { int getdents(int fd, char *buf, \
482 273 AUE_NULL UNIMPL nosys
483 274 AUE_LCHMOD NOPROTO { int lchmod(char *path, mode_t mode); }
484 275 AUE_LCHOWN NOPROTO { int lchown(char *path, uid_t uid, \
485 gid_t gid); } netbsd_lchown \
487 276 AUE_LUTIMES STD { int freebsd32_lutimes(char *path, \
488 struct timeval32 *tptr); }
489 277 AUE_MSYNC NOPROTO { int msync(void *addr, size_t len, \
490 int flags); } netbsd_msync msync_args int
491 278 AUE_STAT NOPROTO { int nstat(char *path, struct nstat *ub); }
492 279 AUE_FSTAT NOPROTO { int nfstat(int fd, struct nstat *sb); }
493 280 AUE_LSTAT NOPROTO { int nlstat(char *path, struct nstat *ub); }
494 281 AUE_NULL UNIMPL nosys
495 282 AUE_NULL UNIMPL nosys
496 283 AUE_NULL UNIMPL nosys
497 284 AUE_NULL UNIMPL nosys
498 285 AUE_NULL UNIMPL nosys
499 286 AUE_NULL UNIMPL nosys
500 287 AUE_NULL UNIMPL nosys
501 288 AUE_NULL UNIMPL nosys
502 ; 289 and 290 from NetBSD (OpenBSD: 267 and 268)
503 289 AUE_PREADV STD { ssize_t freebsd32_preadv(int fd, \
504 struct iovec32 *iovp, \
505 u_int iovcnt, off_t offset); }
506 ; XXX note - bigendian is different
507 290 AUE_PWRITEV STD { ssize_t freebsd32_pwritev(int fd, \
508 struct iovec32 *iovp, \
509 u_int iovcnt, off_t offset); }
510 ; XXX note - bigendian is different
511 291 AUE_NULL UNIMPL nosys
512 292 AUE_NULL UNIMPL nosys
513 293 AUE_NULL UNIMPL nosys
514 294 AUE_NULL UNIMPL nosys
515 295 AUE_NULL UNIMPL nosys
516 296 AUE_NULL UNIMPL nosys
517 ; XXX 297 is 300 in NetBSD
518 297 AUE_FHSTATFS COMPAT4 { int freebsd32_fhstatfs( \
519 const struct fhandle *u_fhp, \
520 struct statfs32 *buf); }
521 298 AUE_FHOPEN NOPROTO { int fhopen(const struct fhandle *u_fhp, \
523 299 AUE_FHSTAT NOPROTO { int fhstat(const struct fhandle *u_fhp, \
525 ; syscall numbers for FreeBSD
526 300 AUE_NULL NOPROTO { int modnext(int modid); }
527 301 AUE_NULL STD { int freebsd32_modstat(int modid, \
528 struct module_stat32* stat); }
529 302 AUE_NULL NOPROTO { int modfnext(int modid); }
530 303 AUE_NULL NOPROTO { int modfind(const char *name); }
531 304 AUE_MODLOAD NOPROTO { int kldload(const char *file); }
532 305 AUE_MODUNLOAD NOPROTO { int kldunload(int fileid); }
533 306 AUE_NULL NOPROTO { int kldfind(const char *file); }
534 307 AUE_NULL NOPROTO { int kldnext(int fileid); }
535 308 AUE_NULL NOPROTO { int kldstat(int fileid, \
536 struct kld_file_stat* stat); }
537 309 AUE_NULL NOPROTO { int kldfirstmod(int fileid); }
538 310 AUE_GETSID NOPROTO { int getsid(pid_t pid); }
539 311 AUE_SETRESUID NOPROTO { int setresuid(uid_t ruid, uid_t euid, \
541 312 AUE_SETRESGID NOPROTO { int setresgid(gid_t rgid, gid_t egid, \
543 313 AUE_NULL OBSOL signanosleep
544 314 AUE_NULL NOSTD { int freebsd32_aio_return( \
545 struct aiocb32 *aiocbp); }
546 315 AUE_NULL NOSTD { int freebsd32_aio_suspend( \
547 struct aiocb32 * const * aiocbp, int nent, \
548 const struct timespec32 *timeout); }
549 316 AUE_NULL NOSTD { int freebsd32_aio_cancel(int fd, \
550 struct aiocb32 *aiocbp); }
551 317 AUE_NULL NOSTD { int freebsd32_aio_error( \
552 struct aiocb32 *aiocbp); }
553 318 AUE_NULL NOSTD { int freebsd32_oaio_read( \
554 struct oaiocb32 *aiocbp); }
555 319 AUE_NULL NOSTD { int freebsd32_oaio_write( \
556 struct oaiocb32 *aiocbp); }
557 320 AUE_NULL NOSTD { int freebsd32_olio_listio(int mode, \
558 struct oaiocb32 * const *acb_list, \
559 int nent, struct osigevent32 *sig); }
560 321 AUE_NULL NOPROTO { int yield(void); }
561 322 AUE_NULL OBSOL thr_sleep
562 323 AUE_NULL OBSOL thr_wakeup
563 324 AUE_MLOCKALL NOPROTO { int mlockall(int how); }
564 325 AUE_MUNLOCKALL NOPROTO { int munlockall(void); }
565 326 AUE_GETCWD NOPROTO { int __getcwd(u_char *buf, u_int buflen); }
567 327 AUE_NULL NOPROTO { int sched_setparam (pid_t pid, \
568 const struct sched_param *param); }
569 328 AUE_NULL NOPROTO { int sched_getparam (pid_t pid, \
570 struct sched_param *param); }
572 329 AUE_NULL NOPROTO { int sched_setscheduler (pid_t pid, \
574 const struct sched_param *param); }
575 330 AUE_NULL NOPROTO { int sched_getscheduler (pid_t pid); }
577 331 AUE_NULL NOPROTO { int sched_yield (void); }
578 332 AUE_NULL NOPROTO { int sched_get_priority_max (int policy); }
579 333 AUE_NULL NOPROTO { int sched_get_priority_min (int policy); }
580 334 AUE_NULL NOPROTO { int sched_rr_get_interval (pid_t pid, \
581 struct timespec *interval); }
582 335 AUE_NULL NOPROTO { int utrace(const void *addr, size_t len); }
583 ; XXX note - bigendian is different
584 336 AUE_SENDFILE COMPAT4 { int freebsd32_sendfile(int fd, int s, \
585 u_int32_t offsetlo, u_int32_t offsethi, \
586 size_t nbytes, struct sf_hdtr32 *hdtr, \
587 off_t *sbytes, int flags); }
588 337 AUE_NULL NOPROTO { int kldsym(int fileid, int cmd, \
590 338 AUE_JAIL STD { int freebsd32_jail(struct jail32 *jail); }
591 339 AUE_NULL UNIMPL pioctl
592 340 AUE_SIGPROCMASK NOPROTO { int sigprocmask(int how, \
593 const sigset_t *set, sigset_t *oset); }
594 341 AUE_SIGSUSPEND NOPROTO { int sigsuspend(const sigset_t *sigmask); }
595 342 AUE_SIGACTION COMPAT4 { int freebsd32_sigaction(int sig, \
596 struct sigaction32 *act, \
597 struct sigaction32 *oact); }
598 343 AUE_SIGPENDING NOPROTO { int sigpending(sigset_t *set); }
599 344 AUE_SIGRETURN COMPAT4 { int freebsd32_sigreturn( \
600 const struct freebsd4_freebsd32_ucontext *sigcntxp); }
601 345 AUE_SIGWAIT STD { int freebsd32_sigtimedwait(const sigset_t *set, \
603 const struct timespec *timeout); }
604 346 AUE_NULL STD { int freebsd32_sigwaitinfo(const sigset_t *set, \
606 347 AUE_NULL NOPROTO { int __acl_get_file(const char *path, \
607 acl_type_t type, struct acl *aclp); }
608 348 AUE_NULL NOPROTO { int __acl_set_file(const char *path, \
609 acl_type_t type, struct acl *aclp); }
610 349 AUE_NULL NOPROTO { int __acl_get_fd(int filedes, \
611 acl_type_t type, struct acl *aclp); }
612 350 AUE_NULL NOPROTO { int __acl_set_fd(int filedes, \
613 acl_type_t type, struct acl *aclp); }
614 351 AUE_NULL NOPROTO { int __acl_delete_file(const char *path, \
616 352 AUE_NULL NOPROTO { int __acl_delete_fd(int filedes, \
618 353 AUE_NULL NOPROTO { int __acl_aclcheck_file(const char *path, \
619 acl_type_t type, struct acl *aclp); }
620 354 AUE_NULL NOPROTO { int __acl_aclcheck_fd(int filedes, \
621 acl_type_t type, struct acl *aclp); }
622 355 AUE_EXTATTRCTL NOPROTO { int extattrctl(const char *path, int cmd, \
623 const char *filename, int attrnamespace, \
624 const char *attrname); }
625 356 AUE_EXTATTR_SET_FILE NOPROTO { int extattr_set_file( \
626 const char *path, int attrnamespace, \
627 const char *attrname, void *data, \
629 357 AUE_EXTATTR_GET_FILE NOPROTO { ssize_t extattr_get_file( \
630 const char *path, int attrnamespace, \
631 const char *attrname, void *data, \
633 358 AUE_EXTATTR_DELETE_FILE NOPROTO { int extattr_delete_file( \
634 const char *path, int attrnamespace, \
635 const char *attrname); }
636 359 AUE_NULL NOSTD { int freebsd32_aio_waitcomplete( \
637 struct aiocb32 **aiocbp, \
638 struct timespec32 *timeout); }
639 360 AUE_GETRESUID NOPROTO { int getresuid(uid_t *ruid, uid_t *euid, \
641 361 AUE_GETRESGID NOPROTO { int getresgid(gid_t *rgid, gid_t *egid, \
643 362 AUE_KQUEUE NOPROTO { int kqueue(void); }
644 363 AUE_NULL STD { int freebsd32_kevent(int fd, \
645 const struct kevent32 *changelist, \
647 struct kevent32 *eventlist, int nevents, \
648 const struct timespec32 *timeout); }
649 364 AUE_NULL UNIMPL __cap_get_proc
650 365 AUE_NULL UNIMPL __cap_set_proc
651 366 AUE_NULL UNIMPL __cap_get_fd
652 367 AUE_NULL UNIMPL __cap_get_file
653 368 AUE_NULL UNIMPL __cap_set_fd
654 369 AUE_NULL UNIMPL __cap_set_file
655 370 AUE_NULL UNIMPL lkmressys
656 371 AUE_EXTATTR_SET_FD NOPROTO { int extattr_set_fd(int fd, \
657 int attrnamespace, const char *attrname, \
658 void *data, size_t nbytes); }
659 372 AUE_EXTATTR_GET_FD NOPROTO { ssize_t extattr_get_fd(int fd, \
660 int attrnamespace, const char *attrname, \
661 void *data, size_t nbytes); }
662 373 AUE_EXTATTR_DELETE_FD NOPROTO { int extattr_delete_fd(int fd, \
664 const char *attrname); }
665 374 AUE_NULL NOPROTO { int __setugid(int flag); }
666 375 AUE_NULL UNIMPL nfsclnt
667 376 AUE_EACCESS NOPROTO { int eaccess(char *path, int flags); }
668 377 AUE_NULL UNIMPL afs_syscall
669 378 AUE_NMOUNT STD { int freebsd32_nmount(struct iovec32 *iovp, \
670 unsigned int iovcnt, int flags); }
671 379 AUE_NULL NOPROTO { int kse_exit(void); }
672 380 AUE_NULL NOPROTO { int kse_wakeup(struct kse_mailbox *mbx); }
673 381 AUE_NULL NOPROTO { int kse_create(struct kse_mailbox *mbx, \
675 382 AUE_NULL NOPROTO { int kse_thr_interrupt( \
676 struct kse_thr_mailbox *tmbx); }
677 383 AUE_NULL NOPROTO { int kse_release(void); }
678 384 AUE_NULL UNIMPL __mac_get_proc
679 385 AUE_NULL UNIMPL __mac_set_proc
680 386 AUE_NULL UNIMPL __mac_get_fd
681 387 AUE_NULL UNIMPL __mac_get_file
682 388 AUE_NULL UNIMPL __mac_set_fd
683 389 AUE_NULL UNIMPL __mac_set_file
684 390 AUE_NULL NOPROTO { int kenv(int what, const char *name, \
685 char *value, int len); }
686 391 AUE_LCHFLAGS NOPROTO { int lchflags(const char *path, int flags); }
687 392 AUE_NULL NOPROTO { int uuidgen(struct uuid *store, \
689 393 AUE_SENDFILE STD { int freebsd32_sendfile(int fd, int s, \
690 u_int32_t offsetlo, u_int32_t offsethi, \
691 size_t nbytes, struct sf_hdtr32 *hdtr, \
692 off_t *sbytes, int flags); }
693 394 AUE_NULL UNIMPL mac_syscall
694 395 AUE_GETFSSTAT NOPROTO { int getfsstat(struct statfs *buf, \
695 long bufsize, int flags); }
696 396 AUE_STATFS NOPROTO { int statfs(char *path, \
697 struct statfs *buf); }
698 397 AUE_FSTATFS NOPROTO { int fstatfs(int fd, struct statfs *buf); }
699 398 AUE_FHSTATFS NOPROTO { int fhstatfs(const struct fhandle *u_fhp, \
700 struct statfs *buf); }
701 399 AUE_NULL UNIMPL nosys
702 ; XXX implement these?
703 400 AUE_NULL UNIMPL ksem_close
704 401 AUE_NULL UNIMPL ksem_post
705 402 AUE_NULL UNIMPL ksem_wait
706 403 AUE_NULL UNIMPL ksem_trywait
707 404 AUE_NULL UNIMPL ksem_init
708 405 AUE_NULL UNIMPL ksem_open
709 406 AUE_NULL UNIMPL ksem_unlink
710 407 AUE_NULL UNIMPL ksem_getvalue
711 408 AUE_NULL UNIMPL ksem_destroy
712 409 AUE_NULL UNIMPL __mac_get_pid
713 410 AUE_NULL UNIMPL __mac_get_link
714 411 AUE_NULL UNIMPL __mac_set_link
715 412 AUE_EXTATTR_SET_LINK UNIMPL extattr_set_link
716 413 AUE_EXTATTR_GET_LINK UNIMPL extattr_get_link
717 414 AUE_EXTATTR_DELETE_LINK UNIMPL extattr_delete_link
718 415 AUE_NULL UNIMPL __mac_execve
719 416 AUE_SIGACTION STD { int freebsd32_sigaction(int sig, \
720 struct sigaction32 *act, \
721 struct sigaction32 *oact); }
722 417 AUE_SIGRETURN STD { int freebsd32_sigreturn( \
723 const struct freebsd32_ucontext *sigcntxp); }
724 418 AUE_NULL UNIMPL __xstat
725 419 AUE_NULL UNIMPL __xfstat
726 420 AUE_NULL UNIMPL __xlstat
727 421 AUE_NULL STD { int freebsd32_getcontext( \
728 struct freebsd32_ucontext *ucp); }
729 422 AUE_NULL STD { int freebsd32_setcontext( \
730 const struct freebsd32_ucontext *ucp); }
731 423 AUE_NULL STD { int freebsd32_swapcontext( \
732 struct freebsd32_ucontext *oucp, \
733 const struct freebsd32_ucontext *ucp); }
734 424 AUE_SWAPOFF UNIMPL swapoff
735 425 AUE_NULL UNIMPL __acl_get_link
736 426 AUE_NULL UNIMPL __acl_set_link
737 427 AUE_NULL UNIMPL __acl_delete_link
738 428 AUE_NULL UNIMPL __acl_aclcheck_link
739 429 AUE_SIGWAIT NOPROTO { int sigwait(const sigset_t *set, \
741 430 AUE_NULL UNIMPL thr_create;
742 431 AUE_NULL NOPROTO { void thr_exit(long *state); }
743 432 AUE_NULL NOPROTO { int thr_self(long *id); }
744 433 AUE_NULL NOPROTO { int thr_kill(long id, int sig); }
745 434 AUE_NULL STD { int freebsd32_umtx_lock(struct umtx *umtx); }
746 435 AUE_NULL STD { int freebsd32_umtx_unlock(struct umtx *umtx); }
747 436 AUE_NULL NOPROTO { int jail_attach(int jid); }
748 437 AUE_EXTATTR_LIST_FD UNIMPL extattr_list_fd
749 438 AUE_EXTATTR_LIST_FILE UNIMPL extattr_list_file
750 439 AUE_EXTATTR_LIST_LINK UNIMPL extattr_list_link
751 440 AUE_NULL UNIMPL kse_switchin
752 441 AUE_NULL UNIMPL ksem_timedwait
753 442 AUE_NULL STD { int freebsd32_thr_suspend( \
754 const struct timespec32 *timeout); }
755 443 AUE_NULL NOPROTO { int thr_wake(long id); }
756 444 AUE_MODUNLOAD NOPROTO { int kldunloadf(int fileid, int flags); }
757 445 AUE_AUDIT NOPROTO { int audit(const void *record, \
759 446 AUE_AUDITON NOPROTO { int auditon(int cmd, void *data, \
761 447 AUE_GETAUID NOPROTO { int getauid(uid_t *auid); }
762 448 AUE_SETAUID NOPROTO { int setauid(uid_t *auid); }
763 449 AUE_GETAUDIT NOPROTO { int getaudit(struct auditinfo *auditinfo); }
764 450 AUE_SETAUDIT NOPROTO { int setaudit(struct auditinfo *auditinfo); }
765 451 AUE_GETAUDIT_ADDR NOPROTO { int getaudit_addr( \
766 struct auditinfo_addr *auditinfo_addr, \
768 452 AUE_SETAUDIT_ADDR NOPROTO { int setaudit_addr( \
769 struct auditinfo_addr *auditinfo_addr, \
771 453 AUE_AUDITCTL NOPROTO { int auditctl(char *path); }
772 454 AUE_NULL STD { int freebsd32_umtx_op(void *obj, int op,\
773 u_long val, void *uaddr, \
775 455 AUE_NULL STD { int freebsd32_thr_new( \
776 struct thr_param32 *param, \
778 456 AUE_NULL NOPROTO { int sigqueue(pid_t pid, int signum, \
780 457 AUE_NULL UNIMPL kmq_open
781 458 AUE_NULL UNIMPL kmq_setattr
782 459 AUE_NULL UNIMPL kmq_timedreceive
783 460 AUE_NULL UNIMPL kmq_timedsend
784 461 AUE_NULL UNIMPL kmq_notify
785 462 AUE_NULL UNIMPL kmq_unlink
786 463 AUE_NULL NOPROTO { int abort2(const char *why, int nargs, void **args); }
787 464 AUE_NULL NOPROTO { int thr_set_name(long id, const char *name); }
788 465 AUE_NULL NOSTD { int freebsd32_aio_fsync(int op, \
789 struct aiocb32 *aiocbp); }
790 466 AUE_RTPRIO NOPROTO { int rtprio_thread(int function, \
791 lwpid_t lwpid, struct rtprio *rtp); }
792 467 AUE_NULL UNIMPL nosys
793 468 AUE_NULL UNIMPL nosys
794 469 AUE_NULL UNIMPL __getpath_fromfd
795 470 AUE_NULL UNIMPL __getpath_fromaddr
796 471 AUE_NULL NOPROTO { int sctp_peeloff(int sd, uint32_t name); }
797 472 AUE_NULL NOPROTO { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \
798 caddr_t to, __socklen_t tolen, \
799 struct sctp_sndrcvinfo *sinfo, int flags); }
800 473 AUE_NULL NOPROTO { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \
801 caddr_t to, __socklen_t tolen, \
802 struct sctp_sndrcvinfo *sinfo, int flags); }
803 474 AUE_NULL NOPROTO { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \
804 struct sockaddr * from, __socklen_t *fromlenaddr, \
805 struct sctp_sndrcvinfo *sinfo, int *msg_flags); }
806 475 AUE_PREAD STD { ssize_t freebsd32_pread(int fd, \
807 void *buf,size_t nbyte, \
808 u_int32_t offsetlo, u_int32_t offsethi); }
809 476 AUE_PWRITE STD { ssize_t freebsd32_pwrite(int fd, \
810 const void *buf, size_t nbyte, \
811 u_int32_t offsetlo, u_int32_t offsethi); }
812 477 AUE_MMAP STD { caddr_t freebsd32_mmap(caddr_t addr, \
813 size_t len, int prot, int flags, int fd, \
814 u_int32_t poslo, u_int32_t poshi); }
815 478 AUE_LSEEK STD { off_t freebsd32_lseek(int fd, \
816 u_int32_t offsetlo, u_int32_t offsethi, \
818 479 AUE_TRUNCATE STD { int freebsd32_truncate(char *path, \
819 u_int32_t lengthlo, u_int32_t lengthhi); }
820 480 AUE_FTRUNCATE STD { int freebsd32_ftruncate(int fd, \
821 u_int32_t lengthlo, u_int32_t lengthhi); }
822 481 AUE_KILL NOPROTO { int thr_kill2(pid_t pid, long id, int sig); }
823 482 AUE_NULL UNIMPL shm_open
824 483 AUE_NULL UNIMPL shm_unlink
825 484 AUE_NULL NOPROTO { int cpuset(cpusetid_t *setid); }
826 485 AUE_NULL STD { int freebsd32_cpuset_setid(cpuwhich_t which, \
827 uint32_t idlo, uint32_t idhi, \
829 486 AUE_NULL STD { int freebsd32_cpuset_getid(cpulevel_t level, \
831 uint32_t idlo, uint32_t idhi, \
832 cpusetid_t *setid); }
833 487 AUE_NULL STD { int freebsd32_cpuset_getaffinity( \
834 cpulevel_t level, cpuwhich_t which, \
835 uint32_t idlo, uint32_t idhi, \
838 488 AUE_NULL STD { int freebsd32_cpuset_setaffinity( \
839 cpulevel_t level, cpuwhich_t which, \
840 uint32_t idlo, uint32_t idhi, \
842 const cpuset_t *mask); }