// mksysnum_darwin /home/rsc/pub/xnu-1228/bsd/kern/syscalls.master
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT

package syscall

const (
	// SYS_NOSYS = 0;  // { int nosys(void); }   { indirect syscall }
	SYS_EXIT = 1;  // { void exit(int rval); }
	SYS_FORK = 2;  // { int fork(void); }
	SYS_READ = 3;  // { user_ssize_t read(int fd, user_addr_t cbuf, user_size_t nbyte); }
	SYS_WRITE = 4;  // { user_ssize_t write(int fd, user_addr_t cbuf, user_size_t nbyte); }
	SYS_OPEN = 5;  // { int open(user_addr_t path, int flags, int mode); }
	SYS_CLOSE = 6;  // { int close(int fd); }
	SYS_WAIT4 = 7;  // { int wait4(int pid, user_addr_t status, int options, user_addr_t rusage); }
	// SYS_NOSYS = 8;  // { int nosys(void); }   { old creat }
	SYS_LINK = 9;  // { int link(user_addr_t path, user_addr_t link); }
	SYS_UNLINK = 10;  // { int unlink(user_addr_t path); }
	// SYS_NOSYS = 11;  // { int nosys(void); }   { old execv }
	SYS_CHDIR = 12;  // { int chdir(user_addr_t path); }
	SYS_FCHDIR = 13;  // { int fchdir(int fd); }
	SYS_MKNOD = 14;  // { int mknod(user_addr_t path, int mode, int dev); }
	SYS_CHMOD = 15;  // { int chmod(user_addr_t path, int mode); }
	SYS_CHOWN = 16;  // { int chown(user_addr_t path, int uid, int gid); }
	SYS_OGETFSSTAT = 18;  // { int ogetfsstat(user_addr_t buf, int bufsize, int flags); }
	SYS_GETFSSTAT = 18;  // { int getfsstat(user_addr_t buf, int bufsize, int flags); }
	// SYS_NOSYS = 19;  // { int nosys(void); }   { old lseek }
	SYS_GETPID = 20;  // { int getpid(void); }
	// SYS_NOSYS = 21;  // { int nosys(void); }   { old mount }
	// SYS_NOSYS = 22;  // { int nosys(void); }   { old umount }
	SYS_SETUID = 23;  // { int setuid(uid_t uid); }
	SYS_GETUID = 24;  // { int getuid(void); }
	SYS_GETEUID = 25;  // { int geteuid(void); }
	SYS_PTRACE = 26;  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }
	SYS_RECVMSG = 27;  // { int recvmsg(int s, struct msghdr *msg, int flags); }
	SYS_SENDMSG = 28;  // { int sendmsg(int s, caddr_t msg, int flags); }
	SYS_RECVFROM = 29;  // { int recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, int *fromlenaddr); }
	SYS_ACCEPT = 30;  // { int accept(int s, caddr_t name, socklen_t	*anamelen); }
	SYS_GETPEERNAME = 31;  // { int getpeername(int fdes, caddr_t asa, socklen_t *alen); }
	SYS_GETSOCKNAME = 32;  // { int getsockname(int fdes, caddr_t asa, socklen_t *alen); }
	// SYS_NOSYS = 27;  // { int nosys(void); }
	// SYS_NOSYS = 28;  // { int nosys(void); }
	// SYS_NOSYS = 29;  // { int nosys(void); }
	// SYS_NOSYS = 30;  // { int nosys(void); }
	// SYS_NOSYS = 31;  // { int nosys(void); }
	// SYS_NOSYS = 32;  // { int nosys(void); }
	SYS_ACCESS = 33;  // { int access(user_addr_t path, int flags); }
	SYS_CHFLAGS = 34;  // { int chflags(char *path, int flags); }
	SYS_FCHFLAGS = 35;  // { int fchflags(int fd, int flags); }
	SYS_SYNC = 36;  // { int sync(void); }
	SYS_KILL = 37;  // { int kill(int pid, int signum, int posix); }
	// SYS_NOSYS = 38;  // { int nosys(void); }   { old stat  }
	SYS_GETPPID = 39;  // { int getppid(void); }
	// SYS_NOSYS = 40;  // { int nosys(void); }   { old lstat }
	SYS_DUP = 41;  // { int dup(u_int fd); }
	SYS_PIPE = 42;  // { int pipe(void); }
	SYS_GETEGID = 43;  // { int getegid(void); }
	SYS_PROFIL = 44;  // { int profil(short *bufbase, size_t bufsize, u_long pcoffset, u_int pcscale); }
	// SYS_NOSYS = 45;  // { int nosys(void); } { old ktrace }
	SYS_SIGACTION = 46;  // { int sigaction(int signum, struct __sigaction *nsa, struct sigaction *osa); }
	SYS_GETGID = 47;  // { int getgid(void); }
	SYS_SIGPROCMASK = 48;  // { int sigprocmask(int how, user_addr_t mask, user_addr_t omask); }
	SYS_GETLOGIN = 49;  // { int getlogin(char *namebuf, u_int namelen); }
	SYS_SETLOGIN = 50;  // { int setlogin(char *namebuf); }
	SYS_ACCT = 51;  // { int acct(char *path); }
	SYS_SIGPENDING = 52;  // { int sigpending(struct sigvec *osv); }
	SYS_SIGALTSTACK = 53;  // { int sigaltstack(struct sigaltstack *nss, struct sigaltstack *oss); }
	SYS_IOCTL = 54;  // { int ioctl(int fd, u_long com, caddr_t data); }
	SYS_REBOOT = 55;  // { int reboot(int opt, char *command); }
	SYS_REVOKE = 56;  // { int revoke(char *path); }
	SYS_SYMLINK = 57;  // { int symlink(char *path, char *link); }
	SYS_READLINK = 58;  // { int readlink(char *path, char *buf, int count); }
	SYS_EXECVE = 59;  // { int execve(char *fname, char **argp, char **envp); }
	SYS_UMASK = 60;  // { int umask(int newmask); }
	SYS_CHROOT = 61;  // { int chroot(user_addr_t path); }
	// SYS_NOSYS = 62;  // { int nosys(void); }   { old fstat }
	// SYS_NOSYS = 63;  // { int nosys(void); }   { used internally, reserved }
	// SYS_NOSYS = 64;  // { int nosys(void); }   { old getpagesize }
	SYS_MSYNC = 65;  // { int msync(caddr_t addr, size_t len, int flags); }
	SYS_VFORK = 66;  // { int vfork(void); }
	// SYS_NOSYS = 67;  // { int nosys(void); }   { old vread }
	// SYS_NOSYS = 68;  // { int nosys(void); }   { old vwrite }
	SYS_SBRK = 69;  // { int sbrk(int incr) NO_SYSCALL_STUB; }
	SYS_SSTK = 70;  // { int sstk(int incr) NO_SYSCALL_STUB; }
	// SYS_NOSYS = 71;  // { int nosys(void); }   { old mmap }
	SYS_OVADVISE = 72;  // { int ovadvise(void) NO_SYSCALL_STUB; }   { old vadvise }
	SYS_MUNMAP = 73;  // { int munmap(caddr_t addr, size_t len); }
	SYS_MPROTECT = 74;  // { int mprotect(caddr_t addr, size_t len, int prot); }
	SYS_MADVISE = 75;  // { int madvise(caddr_t addr, size_t len, int behav); }
	// SYS_NOSYS = 76;  // { int nosys(void); }   { old vhangup }
	// SYS_NOSYS = 77;  // { int nosys(void); }   { old vlimit }
	SYS_MINCORE = 78;  // { int mincore(user_addr_t addr, user_size_t len, user_addr_t vec); }
	SYS_GETGROUPS = 79;  // { int getgroups(u_int gidsetsize, gid_t *gidset); }
	SYS_SETGROUPS = 80;  // { int setgroups(u_int gidsetsize, gid_t *gidset); }
	SYS_GETPGRP = 81;  // { int getpgrp(void); }
	SYS_SETPGID = 82;  // { int setpgid(int pid, int pgid); }
	SYS_SETITIMER = 83;  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }
	// SYS_NOSYS = 84;  // { int nosys(void); }   { old wait }
	SYS_SWAPON = 85;  // { int swapon(void); }
	SYS_GETITIMER = 86;  // { int getitimer(u_int which, struct itimerval *itv); }
	// SYS_NOSYS = 87;  // { int nosys(void); }   { old gethostname }
	// SYS_NOSYS = 88;  // { int nosys(void); }   { old sethostname }
	SYS_GETDTABLESIZE = 89;  // { int getdtablesize(void); }
	SYS_DUP2 = 90;  // { int dup2(u_int from, u_int to); }
	// SYS_NOSYS = 91;  // { int nosys(void); }   { old getdopt }
	SYS_FCNTL = 92;  // { int fcntl(int fd, int cmd, long arg); }
	SYS_SELECT = 93;  // { int select(int nd, u_int32_t *in, u_int32_t *ou, u_int32_t *ex, struct timeval *tv); }
	// SYS_NOSYS = 94;  // { int nosys(void); }   { old setdopt }
	SYS_FSYNC = 95;  // { int fsync(int fd); }
	SYS_SETPRIORITY = 96;  // { int setpriority(int which, id_t who, int prio); }
	SYS_SOCKET = 97;  // { int socket(int domain, int type, int protocol); }
	SYS_CONNECT = 98;  // { int connect(int s, caddr_t name, socklen_t namelen); }
	// SYS_NOSYS = 97;  // { int nosys(void); }
	// SYS_NOSYS = 98;  // { int nosys(void); }
	// SYS_NOSYS = 99;  // { int nosys(void); }   { old accept }
	SYS_GETPRIORITY = 100;  // { int getpriority(int which, id_t who); }
	// SYS_NOSYS = 101;  // { int nosys(void); }   { old send }
	// SYS_NOSYS = 102;  // { int nosys(void); }   { old recv }
	// SYS_NOSYS = 103;  // { int nosys(void); }   { old sigreturn }
	SYS_BIND = 104;  // { int bind(int s, caddr_t name, socklen_t namelen); }
	SYS_SETSOCKOPT = 105;  // { int setsockopt(int s, int level, int name, caddr_t val, socklen_t valsize); }
	SYS_LISTEN = 106;  // { int listen(int s, int backlog); }
	// SYS_NOSYS = 104;  // { int nosys(void); }
	// SYS_NOSYS = 105;  // { int nosys(void); }
	// SYS_NOSYS = 106;  // { int nosys(void); }
	// SYS_NOSYS = 107;  // { int nosys(void); }   { old vtimes }
	// SYS_NOSYS = 108;  // { int nosys(void); }   { old sigvec }
	// SYS_NOSYS = 109;  // { int nosys(void); }   { old sigblock }
	// SYS_NOSYS = 110;  // { int nosys(void); }   { old sigsetmask }
	SYS_SIGSUSPEND = 111;  // { int sigsuspend(sigset_t mask); }
	// SYS_NOSYS = 112;  // { int nosys(void); }   { old sigstack }
	// SYS_NOSYS = 113;  // { int nosys(void); }   { old recvmsg }
	// SYS_NOSYS = 114;  // { int nosys(void); }   { old sendmsg }
	// SYS_NOSYS = 113;  // { int nosys(void); }
	// SYS_NOSYS = 114;  // { int nosys(void); }
	// SYS_NOSYS = 115;  // { int nosys(void); }   { old vtrace }
	SYS_GETTIMEOFDAY = 116;  // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
	SYS_GETRUSAGE = 117;  // { int getrusage(int who, struct rusage *rusage); }
	SYS_GETSOCKOPT = 118;  // { int getsockopt(int s, int level, int name, caddr_t val, socklen_t *avalsize); }
	// SYS_NOSYS = 118;  // { int nosys(void); }
	// SYS_NOSYS = 119;  // { int nosys(void); }   { old resuba }
	SYS_READV = 120;  // { user_ssize_t readv(int fd, struct iovec *iovp, u_int iovcnt); }
	SYS_WRITEV = 121;  // { user_ssize_t writev(int fd, struct iovec *iovp, u_int iovcnt); }
	SYS_SETTIMEOFDAY = 122;  // { int settimeofday(struct timeval *tv, struct timezone *tzp); }
	SYS_FCHOWN = 123;  // { int fchown(int fd, int uid, int gid); }
	SYS_FCHMOD = 124;  // { int fchmod(int fd, int mode); }
	// SYS_NOSYS = 125;  // { int nosys(void); }   { old recvfrom }
	SYS_SETREUID = 126;  // { int setreuid(uid_t ruid, uid_t euid); }
	SYS_SETREGID = 127;  // { int setregid(gid_t rgid, gid_t egid); }
	SYS_RENAME = 128;  // { int rename(char *from, char *to); }
	// SYS_NOSYS = 129;  // { int nosys(void); }   { old truncate }
	// SYS_NOSYS = 130;  // { int nosys(void); }   { old ftruncate }
	SYS_FLOCK = 131;  // { int flock(int fd, int how); }
	SYS_MKFIFO = 132;  // { int mkfifo(user_addr_t path, int mode); }
	SYS_SENDTO = 133;  // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, socklen_t tolen); }
	SYS_SHUTDOWN = 134;  // { int shutdown(int s, int how); }
	SYS_SOCKETPAIR = 135;  // { int socketpair(int domain, int type, int protocol, int *rsv); }
	// SYS_NOSYS = 133;  // { int nosys(void); }
	// SYS_NOSYS = 134;  // { int nosys(void); }
	// SYS_NOSYS = 135;  // { int nosys(void); }
	SYS_MKDIR = 136;  // { int mkdir(user_addr_t path, int mode); }
	SYS_RMDIR = 137;  // { int rmdir(char *path); }
	SYS_UTIMES = 138;  // { int utimes(char *path, struct timeval *tptr); }
	SYS_FUTIMES = 139;  // { int futimes(int fd, struct timeval *tptr); }
	SYS_ADJTIME = 140;  // { int adjtime(struct timeval *delta, struct timeval *olddelta); }
	// SYS_NOSYS = 141;  // { int nosys(void); }   { old getpeername }
	SYS_GETHOSTUUID = 142;  // { int gethostuuid(unsigned char *uuid_buf, const struct timespec *timeoutp); }
	// SYS_NOSYS = 143;  // { int nosys(void); }   { old sethostid 	}
	// SYS_NOSYS = 144;  // { int nosys(void); }   { old getrlimit }
	// SYS_NOSYS = 145;  // { int nosys(void); }   { old setrlimit }
	// SYS_NOSYS = 146;  // { int nosys(void); }   { old killpg }
	SYS_SETSID = 147;  // { int setsid(void); }
	// SYS_NOSYS = 148;  // { int nosys(void); }   { old setquota }
	// SYS_NOSYS = 149;  // { int nosys(void); }   { old qquota }
	// SYS_NOSYS = 150;  // { int nosys(void); }   { old getsockname }
	SYS_GETPGID = 151;  // { int getpgid(pid_t pid); }
	SYS_SETPRIVEXEC = 152;  // { int setprivexec(int flag); }
	SYS_PREAD = 153;  // { user_ssize_t pread(int fd, user_addr_t buf, user_size_t nbyte, off_t offset); }
	SYS_PWRITE = 154;  // { user_ssize_t pwrite(int fd, user_addr_t buf, user_size_t nbyte, off_t offset); }
	SYS_NFSSVC = 155;  // { int nfssvc(int flag, caddr_t argp); }
	// SYS_NOSYS = 155;  // { int nosys(void); }
	// SYS_NOSYS = 156;  // { int nosys(void); }   { old getdirentries }
	SYS_STATFS = 157;  // { int statfs(char *path, struct statfs *buf); }
	SYS_FSTATFS = 158;  // { int fstatfs(int fd, struct statfs *buf); }
	SYS_UNMOUNT = 159;  // { int unmount(user_addr_t path, int flags); }
	// SYS_NOSYS = 160;  // { int nosys(void); }   { old async_daemon }
	SYS_GETFH = 161;  // { int getfh(char *fname, fhandle_t *fhp); }
	// SYS_NOSYS = 161;  // { int nosys(void); }
	// SYS_NOSYS = 162;  // { int nosys(void); }   { old getdomainname }
	// SYS_NOSYS = 163;  // { int nosys(void); }   { old setdomainname }
	// SYS_NOSYS = 164;  // { int nosys(void); }
	SYS_QUOTACTL = 165;  // { int quotactl(const char *path, int cmd, int uid, caddr_t arg); }
	// SYS_NOSYS = 166;  // { int nosys(void); }   { old exportfs }
	SYS_MOUNT = 167;  // { int mount(char *type, char *path, int flags, caddr_t data); }
	// SYS_NOSYS = 168;  // { int nosys(void); }   { old ustat }
	SYS_CSOPS = 169;  // { int csops(pid_t pid, uint32_t ops, user_addr_t useraddr, user_size_t usersize); }
	// SYS_NOSYS = 171;  // { int nosys(void); }   { old wait3 }
	// SYS_NOSYS = 172;  // { int nosys(void); }   { old rpause	}
	SYS_WAITID = 173;  // { int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options); }
	// SYS_NOSYS = 174;  // { int nosys(void); }   { old getdents }
	// SYS_NOSYS = 175;  // { int nosys(void); }   { old gc_control }
	SYS_ADD_PROFIL = 176;  // { int add_profil(short *bufbase, size_t bufsize, u_long pcoffset, u_int pcscale); }
	// SYS_NOSYS = 177;  // { int nosys(void); }
	// SYS_NOSYS = 178;  // { int nosys(void); }
	// SYS_NOSYS = 179;  // { int nosys(void); }
	SYS_KDEBUG_TRACE = 180;  // { int kdebug_trace(int code, int arg1, int arg2, int arg3, int arg4, int arg5) NO_SYSCALL_STUB; }
	SYS_SETGID = 181;  // { int setgid(gid_t gid); }
	SYS_SETEGID = 182;  // { int setegid(gid_t egid); }
	SYS_SETEUID = 183;  // { int seteuid(uid_t euid); }
	SYS_SIGRETURN = 184;  // { int sigreturn(struct ucontext *uctx, int infostyle); }
	// SYS_NOSYS = 186;  // { int nosys(void); }
	// SYS_NOSYS = 187;  // { int nosys(void); }
	SYS_STAT = 188;  // { int stat(user_addr_t path, user_addr_t ub); }
	SYS_FSTAT = 189;  // { int fstat(int fd, user_addr_t ub); }
	SYS_LSTAT = 190;  // { int lstat(user_addr_t path, user_addr_t ub); }
	SYS_PATHCONF = 191;  // { int pathconf(char *path, int name); }
	SYS_FPATHCONF = 192;  // { int fpathconf(int fd, int name); }
	// SYS_NOSYS = 193;  // { int nosys(void); }
	SYS_GETRLIMIT = 194;  // { int getrlimit(u_int which, struct rlimit *rlp); }
	SYS_SETRLIMIT = 195;  // { int setrlimit(u_int which, struct rlimit *rlp); }
	SYS_GETDIRENTRIES = 196;  // { int getdirentries(int fd, char *buf, u_int count, long *basep); }
	SYS_MMAP = 197;  // { user_addr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }
	// SYS_NOSYS = 198;  // { int nosys(void); } 	{ __syscall }
	SYS_LSEEK = 199;  // { off_t lseek(int fd, off_t offset, int whence); }
	SYS_TRUNCATE = 200;  // { int truncate(char *path, off_t length); }
	SYS_FTRUNCATE = 201;  // { int ftruncate(int fd, off_t length); }
	SYS___SYSCTL = 202;  // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }
	SYS_MLOCK = 203;  // { int mlock(caddr_t addr, size_t len); }
	SYS_MUNLOCK = 204;  // { int munlock(caddr_t addr, size_t len); }
	SYS_UNDELETE = 205;  // { int undelete(user_addr_t path); }
	SYS_ATSOCKET = 206;  // { int ATsocket(int proto); }
	// SYS_NOSYS = 213;  // { int nosys(void); } 	{ Reserved for AppleTalk }
	// SYS_NOSYS = 206;  // { int nosys(void); }
	// SYS_NOSYS = 207;  // { int nosys(void); }
	// SYS_NOSYS = 208;  // { int nosys(void); }
	// SYS_NOSYS = 209;  // { int nosys(void); }
	// SYS_NOSYS = 210;  // { int nosys(void); }
	// SYS_NOSYS = 211;  // { int nosys(void); }
	// SYS_NOSYS = 212;  // { int nosys(void); }
	// SYS_NOSYS = 213;  // { int nosys(void); } 	{ Reserved for AppleTalk }
	SYS_KQUEUE_FROM_PORTSET_NP = 214;  // { int kqueue_from_portset_np(int portset); }
	SYS_KQUEUE_PORTSET_NP = 215;  // { int kqueue_portset_np(int fd); }
	SYS_GETATTRLIST = 220;  // { int getattrlist(const char *path, struct attrlist *alist, void *attributeBuffer, size_t bufferSize, u_long options); }
	SYS_SETATTRLIST = 221;  // { int setattrlist(const char *path, struct attrlist *alist, void *attributeBuffer, size_t bufferSize, u_long options); }
	SYS_GETDIRENTRIESATTR = 222;  // { int getdirentriesattr(int fd, struct attrlist *alist, void *buffer, size_t buffersize, u_long *count, u_long *basep, u_long *newstate, u_long options); }
	SYS_EXCHANGEDATA = 223;  // { int exchangedata(const char *path1, const char *path2, u_long options); }
	// SYS_NOSYS = 224;  // { int nosys(void); } { was checkuseraccess }
	SYS_SEARCHFS = 225;  // { int searchfs(const char *path, struct fssearchblock *searchblock, u_long *nummatches, u_long scriptcode, u_long options, struct searchstate *state); }
	SYS_DELETE = 226;  // { int delete(user_addr_t path) NO_SYSCALL_STUB; }       { private delete (Carbon semantics) }
	SYS_COPYFILE = 227;  // { int copyfile(char *from, char *to, int mode, int flags) NO_SYSCALL_STUB; }
	// SYS_NOSYS = 228;  // { int nosys(void); }
	// SYS_NOSYS = 229;  // { int nosys(void); }
	SYS_POLL = 230;  // { int poll(struct pollfd *fds, u_int nfds, int timeout); }
	SYS_WATCHEVENT = 231;  // { int watchevent(struct eventreq *u_req, int u_eventmask); }
	SYS_WAITEVENT = 232;  // { int waitevent(struct eventreq *u_req, struct timeval *tv); }
	SYS_MODWATCH = 233;  // { int modwatch(struct eventreq *u_req, int u_eventmask); }
	SYS_GETXATTR = 234;  // { user_ssize_t getxattr(user_addr_t path, user_addr_t attrname, user_addr_t value, size_t size, uint32_t position, int options); }
	SYS_FGETXATTR = 235;  // { user_ssize_t fgetxattr(int fd, user_addr_t attrname, user_addr_t value, size_t size, uint32_t position, int options); }
	SYS_SETXATTR = 236;  // { int setxattr(user_addr_t path, user_addr_t attrname, user_addr_t value, size_t size, uint32_t position, int options); }
	SYS_FSETXATTR = 237;  // { int fsetxattr(int fd, user_addr_t attrname, user_addr_t value, size_t size, uint32_t position, int options); }
	SYS_REMOVEXATTR = 238;  // { int removexattr(user_addr_t path, user_addr_t attrname, int options); }
	SYS_FREMOVEXATTR = 239;  // { int fremovexattr(int fd, user_addr_t attrname, int options); }
	SYS_LISTXATTR = 240;  // { user_ssize_t listxattr(user_addr_t path, user_addr_t namebuf, size_t bufsize, int options); }
	SYS_FLISTXATTR = 241;  // { user_ssize_t flistxattr(int fd, user_addr_t namebuf, size_t bufsize, int options); }
	SYS_FSCTL = 242;  // { int fsctl(const char *path, u_long cmd, caddr_t data, u_long options); }
	SYS_INITGROUPS = 243;  // { int initgroups(u_int gidsetsize, gid_t *gidset, int gmuid); }
	SYS_POSIX_SPAWN = 244;  // { int posix_spawn(pid_t *pid, const char *path, const struct _posix_spawn_args_desc *adesc, char **argv, char **envp); }
	// SYS_NOSYS = 245;  // { int nosys(void); }
	// SYS_NOSYS = 246;  // { int nosys(void); }
	SYS_NFSCLNT = 247;  // { int nfsclnt(int flag, caddr_t argp); }
	// SYS_NOSYS = 247;  // { int nosys(void); }
	SYS_FHOPEN = 248;  // { int fhopen(const struct fhandle *u_fhp, int flags); }
	// SYS_NOSYS = 248;  // { int nosys(void); }
	// SYS_NOSYS = 249;  // { int nosys(void); }
	SYS_MINHERIT = 250;  // { int minherit(void *addr, size_t len, int inherit); }
	SYS_SEMSYS = 251;  // { int semsys(u_int which, int a2, int a3, int a4, int a5); }
	// SYS_NOSYS = 251;  // { int nosys(void); }
	SYS_MSGSYS = 252;  // { int msgsys(u_int which, int a2, int a3, int a4, int a5); }
	// SYS_NOSYS = 252;  // { int nosys(void); }
	SYS_SHMSYS = 253;  // { int shmsys(u_int which, int a2, int a3, int a4); }
	// SYS_NOSYS = 253;  // { int nosys(void); }
	SYS_SEMCTL = 254;  // { int semctl(int semid, int semnum, int cmd, semun_t arg); }
	SYS_SEMGET = 255;  // { int semget(key_t key, int	nsems, int semflg); }
	SYS_SEMOP = 256;  // { int semop(int semid, struct sembuf *sops, int nsops); }
	// SYS_NOSYS = 257;  // { int nosys(void); }
	// SYS_NOSYS = 254;  // { int nosys(void); }
	// SYS_NOSYS = 255;  // { int nosys(void); }
	// SYS_NOSYS = 256;  // { int nosys(void); }
	// SYS_NOSYS = 257;  // { int nosys(void); }
	SYS_MSGCTL = 258;  // { int msgctl(int msqid, int cmd, struct	msqid_ds *buf); }
	SYS_MSGGET = 259;  // { int msgget(key_t key, int msgflg); }
	SYS_MSGSND = 260;  // { int msgsnd(int msqid, void *msgp, size_t msgsz, int msgflg); }
	SYS_MSGRCV = 261;  // { user_ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
	// SYS_NOSYS = 258;  // { int nosys(void); }
	// SYS_NOSYS = 259;  // { int nosys(void); }
	// SYS_NOSYS = 260;  // { int nosys(void); }
	// SYS_NOSYS = 261;  // { int nosys(void); }
	SYS_SHMAT = 262;  // { user_addr_t shmat(int shmid, void *shmaddr, int shmflg); }
	SYS_SHMCTL = 263;  // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
	SYS_SHMDT = 264;  // { int shmdt(void *shmaddr); }
	SYS_SHMGET = 265;  // { int shmget(key_t key, size_t size, int shmflg); }
	// SYS_NOSYS = 262;  // { int nosys(void); }
	// SYS_NOSYS = 263;  // { int nosys(void); }
	// SYS_NOSYS = 264;  // { int nosys(void); }
	// SYS_NOSYS = 265;  // { int nosys(void); }
	SYS_SHM_OPEN = 266;  // { int shm_open(const char *name, int oflag, int mode); }
	SYS_SHM_UNLINK = 267;  // { int shm_unlink(const char *name); }
	SYS_SEM_OPEN = 268;  // { user_addr_t sem_open(const char *name, int oflag, int mode, int value); }
	SYS_SEM_CLOSE = 269;  // { int sem_close(sem_t *sem); }
	SYS_SEM_UNLINK = 270;  // { int sem_unlink(const char *name); }
	SYS_SEM_WAIT = 271;  // { int sem_wait(sem_t *sem); }
	SYS_SEM_TRYWAIT = 272;  // { int sem_trywait(sem_t *sem); }
	SYS_SEM_POST = 273;  // { int sem_post(sem_t *sem); }
	SYS_SEM_GETVALUE = 274;  // { int sem_getvalue(sem_t *sem, int *sval); }
	SYS_SEM_INIT = 275;  // { int sem_init(sem_t *sem, int phsared, u_int value); }
	SYS_SEM_DESTROY = 276;  // { int sem_destroy(sem_t *sem); }
	SYS_OPEN_EXTENDED = 277;  // { int open_extended(user_addr_t path, int flags, uid_t uid, gid_t gid, int mode, user_addr_t xsecurity) NO_SYSCALL_STUB; }
	SYS_UMASK_EXTENDED = 278;  // { int umask_extended(int newmask, user_addr_t xsecurity) NO_SYSCALL_STUB; }
	SYS_STAT_EXTENDED = 279;  // { int stat_extended(user_addr_t path, user_addr_t ub, user_addr_t xsecurity, user_addr_t xsecurity_size) NO_SYSCALL_STUB; }
	SYS_LSTAT_EXTENDED = 280;  // { int lstat_extended(user_addr_t path, user_addr_t ub, user_addr_t xsecurity, user_addr_t xsecurity_size) NO_SYSCALL_STUB; }
	SYS_FSTAT_EXTENDED = 281;  // { int fstat_extended(int fd, user_addr_t ub, user_addr_t xsecurity, user_addr_t xsecurity_size) NO_SYSCALL_STUB; }
	SYS_CHMOD_EXTENDED = 282;  // { int chmod_extended(user_addr_t path, uid_t uid, gid_t gid, int mode, user_addr_t xsecurity) NO_SYSCALL_STUB; }
	SYS_FCHMOD_EXTENDED = 283;  // { int fchmod_extended(int fd, uid_t uid, gid_t gid, int mode, user_addr_t xsecurity) NO_SYSCALL_STUB; }
	SYS_ACCESS_EXTENDED = 284;  // { int access_extended(user_addr_t entries, size_t size, user_addr_t results, uid_t uid) NO_SYSCALL_STUB; }
	SYS_SETTID = 285;  // { int settid(uid_t uid, gid_t gid) NO_SYSCALL_STUB; }
	SYS_GETTID = 286;  // { int gettid(uid_t *uidp, gid_t *gidp) NO_SYSCALL_STUB; }
	SYS_SETSGROUPS = 287;  // { int setsgroups(int setlen, user_addr_t guidset) NO_SYSCALL_STUB; }
	SYS_GETSGROUPS = 288;  // { int getsgroups(user_addr_t setlen, user_addr_t guidset) NO_SYSCALL_STUB; }
	SYS_SETWGROUPS = 289;  // { int setwgroups(int setlen, user_addr_t guidset) NO_SYSCALL_STUB; }
	SYS_GETWGROUPS = 290;  // { int getwgroups(user_addr_t setlen, user_addr_t guidset) NO_SYSCALL_STUB; }
	SYS_MKFIFO_EXTENDED = 291;  // { int mkfifo_extended(user_addr_t path, uid_t uid, gid_t gid, int mode, user_addr_t xsecurity) NO_SYSCALL_STUB; }
	SYS_MKDIR_EXTENDED = 292;  // { int mkdir_extended(user_addr_t path, uid_t uid, gid_t gid, int mode, user_addr_t xsecurity) NO_SYSCALL_STUB; }
	SYS_IDENTITYSVC = 293;  // { int identitysvc(int opcode, user_addr_t message) NO_SYSCALL_STUB; }
	SYS_SHARED_REGION_CHECK_NP = 294;  // { int shared_region_check_np(uint64_t *start_address) NO_SYSCALL_STUB; }
	SYS_SHARED_REGION_MAP_NP = 295;  // { int shared_region_map_np(int fd, uint32_t count, const struct shared_file_mapping_np *mappings) NO_SYSCALL_STUB; }
	// SYS_NOSYS = 296;  // { int nosys(void); } { old load_shared_file }
	// SYS_NOSYS = 297;  // { int nosys(void); } { old reset_shared_file }
	// SYS_NOSYS = 298;  // { int nosys(void); } { old new_system_shared_regions }
	// SYS_ENOSYS = 299;  // { int enosys(void); } { old shared_region_map_file_np }
	// SYS_ENOSYS = 300;  // { int enosys(void); } { old shared_region_make_private_np }
	SYS___PTHREAD_MUTEX_DESTROY = 301;  // { int __pthread_mutex_destroy(int mutexid); }
	SYS___PTHREAD_MUTEX_INIT = 302;  // { int __pthread_mutex_init(user_addr_t  mutex, user_addr_t attr); }
	SYS___PTHREAD_MUTEX_LOCK = 303;  // { int __pthread_mutex_lock(int mutexid); }
	SYS___PTHREAD_MUTEX_TRYLOCK = 304;  // { int __pthread_mutex_trylock(int mutexid); }
	SYS___PTHREAD_MUTEX_UNLOCK = 305;  // { int __pthread_mutex_unlock(int mutexid); }
	SYS___PTHREAD_COND_INIT = 306;  // { int __pthread_cond_init(user_addr_t cond, user_addr_t attr); }
	SYS___PTHREAD_COND_DESTROY = 307;  // { int __pthread_cond_destroy(int condid); }
	SYS___PTHREAD_COND_BROADCAST = 308;  // { int __pthread_cond_broadcast(int condid); }
	SYS___PTHREAD_COND_SIGNAL = 309;  // { int __pthread_cond_signal(int condid); }
	SYS_GETSID = 310;  // { int getsid(pid_t pid); }
	SYS_SETTID_WITH_PID = 311;  // { int settid_with_pid(pid_t pid, int assume) NO_SYSCALL_STUB; }
	SYS___PTHREAD_COND_TIMEDWAIT = 312;  // { int __pthread_cond_timedwait(int condid, int mutexid, user_addr_t abstime); }
	SYS_AIO_FSYNC = 313;  // { int aio_fsync(int op, user_addr_t aiocbp); }
	SYS_AIO_RETURN = 314;  // { user_ssize_t aio_return(user_addr_t aiocbp); }
	SYS_AIO_SUSPEND = 315;  // { int aio_suspend(user_addr_t aiocblist, int nent, user_addr_t timeoutp); }
	SYS_AIO_CANCEL = 316;  // { int aio_cancel(int fd, user_addr_t aiocbp); }
	SYS_AIO_ERROR = 317;  // { int aio_error(user_addr_t aiocbp); }
	SYS_AIO_READ = 318;  // { int aio_read(user_addr_t aiocbp); }
	SYS_AIO_WRITE = 319;  // { int aio_write(user_addr_t aiocbp); }
	SYS_LIO_LISTIO = 320;  // { int lio_listio(int mode, user_addr_t aiocblist, int nent, user_addr_t sigp); }
	SYS___PTHREAD_COND_WAIT = 321;  // { int __pthread_cond_wait(int condid, int mutexid); }
	SYS_IOPOLICYSYS = 322;  // { int iopolicysys(int cmd, void *arg) NO_SYSCALL_STUB; }
	// SYS_NOSYS = 323;  // { int nosys(void); }
	SYS_MLOCKALL = 324;  // { int mlockall(int how); }
	SYS_MUNLOCKALL = 325;  // { int munlockall(int how); }
	// SYS_NOSYS = 326;  // { int nosys(void); }
	SYS_ISSETUGID = 327;  // { int issetugid(void); }
	SYS___PTHREAD_KILL = 328;  // { int __pthread_kill(int thread_port, int sig); }
	SYS___PTHREAD_SIGMASK = 329;  // { int __pthread_sigmask(int how, user_addr_t set, user_addr_t oset); }
	SYS___SIGWAIT = 330;  // { int __sigwait(user_addr_t set, user_addr_t sig); }
	SYS___DISABLE_THREADSIGNAL = 331;  // { int __disable_threadsignal(int value); }
	SYS___PTHREAD_MARKCANCEL = 332;  // { int __pthread_markcancel(int thread_port); }
	SYS___PTHREAD_CANCELED = 333;  // { int __pthread_canceled(int  action); }
	SYS___SEMWAIT_SIGNAL = 334;  // { int __semwait_signal(int cond_sem, int mutex_sem, int timeout, int relative, time_t tv_sec, int32_t tv_nsec); }
	// SYS_NOSYS = 335;  // { int nosys(void); }   { old utrace }
	SYS_PROC_INFO = 336;  // { int proc_info(int32_t callnum,int32_t pid,uint32_t flavor, uint64_t arg,user_addr_t buffer,int32_t buffersize) NO_SYSCALL_STUB; }
	SYS_SENDFILE = 337;  // { int sendfile(int fd, int s, off_t offset, off_t *nbytes, struct sf_hdtr *hdtr, int flags); }
	// SYS_NOSYS = 337;  // { int nosys(void); }
	SYS_STAT64 = 338;  // { int stat64(user_addr_t path, user_addr_t ub); }
	SYS_FSTAT64 = 339;  // { int fstat64(int fd, user_addr_t ub); }
	SYS_LSTAT64 = 340;  // { int lstat64(user_addr_t path, user_addr_t ub); }
	SYS_STAT64_EXTENDED = 341;  // { int stat64_extended(user_addr_t path, user_addr_t ub, user_addr_t xsecurity, user_addr_t xsecurity_size) NO_SYSCALL_STUB; }
	SYS_LSTAT64_EXTENDED = 342;  // { int lstat64_extended(user_addr_t path, user_addr_t ub, user_addr_t xsecurity, user_addr_t xsecurity_size) NO_SYSCALL_STUB; }
	SYS_FSTAT64_EXTENDED = 343;  // { int fstat64_extended(int fd, user_addr_t ub, user_addr_t xsecurity, user_addr_t xsecurity_size) NO_SYSCALL_STUB; }
	SYS_GETDIRENTRIES64 = 344;  // { user_ssize_t getdirentries64(int fd, void *buf, user_size_t bufsize, off_t *position) NO_SYSCALL_STUB; }
	SYS_STATFS64 = 345;  // { int statfs64(char *path, struct statfs64 *buf); }
	SYS_FSTATFS64 = 346;  // { int fstatfs64(int fd, struct statfs64 *buf); }
	SYS_GETFSSTAT64 = 347;  // { int getfsstat64(user_addr_t buf, int bufsize, int flags); }
	SYS___PTHREAD_CHDIR = 348;  // { int __pthread_chdir(user_addr_t path); }
	SYS___PTHREAD_FCHDIR = 349;  // { int __pthread_fchdir(int fd); }
	SYS_AUDIT = 350;  // { int audit(void *record, int length); }
	SYS_AUDITON = 351;  // { int auditon(int cmd, void *data, int length); }
	// SYS_NOSYS = 352;  // { int nosys(void); }
	SYS_GETAUID = 353;  // { int getauid(au_id_t *auid); }
	SYS_SETAUID = 354;  // { int setauid(au_id_t *auid); }
	SYS_GETAUDIT = 355;  // { int getaudit(struct auditinfo *auditinfo); }
	SYS_SETAUDIT = 356;  // { int setaudit(struct auditinfo *auditinfo); }
	SYS_GETAUDIT_ADDR = 357;  // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, int length); }
	SYS_SETAUDIT_ADDR = 358;  // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, int length); }
	SYS_AUDITCTL = 359;  // { int auditctl(char *path); }
	// SYS_NOSYS = 350;  // { int nosys(void); }
	// SYS_NOSYS = 351;  // { int nosys(void); }
	// SYS_NOSYS = 352;  // { int nosys(void); }
	// SYS_NOSYS = 353;  // { int nosys(void); }
	// SYS_NOSYS = 354;  // { int nosys(void); }
	// SYS_NOSYS = 355;  // { int nosys(void); }
	// SYS_NOSYS = 356;  // { int nosys(void); }
	// SYS_NOSYS = 357;  // { int nosys(void); }
	// SYS_NOSYS = 358;  // { int nosys(void); }
	// SYS_NOSYS = 359;  // { int nosys(void); }
	SYS_BSDTHREAD_CREATE = 360;  // { user_addr_t bsdthread_create(user_addr_t func, user_addr_t func_arg, user_addr_t stack, user_addr_t pthread, uint32_t flags) NO_SYSCALL_STUB; }
	SYS_BSDTHREAD_TERMINATE = 361;  // { int bsdthread_terminate(user_addr_t stackaddr, size_t freesize, uint32_t port, uint32_t sem) NO_SYSCALL_STUB; }
	SYS_KQUEUE = 362;  // { int kqueue(void); }
	SYS_KEVENT = 363;  // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
	SYS_LCHOWN = 364;  // { int lchown(user_addr_t path, uid_t owner, gid_t group); }
	SYS_STACK_SNAPSHOT = 365;  // { int stack_snapshot(pid_t pid, user_addr_t tracebuf, uint32_t tracebuf_size, uint32_t options) NO_SYSCALL_STUB; }
	SYS_BSDTHREAD_REGISTER = 366;  // { int bsdthread_register(user_addr_t threadstart, user_addr_t wqthread, int pthsize) NO_SYSCALL_STUB; }
	SYS_WORKQ_OPEN = 367;  // { int workq_open(void) NO_SYSCALL_STUB; }
	SYS_WORKQ_OPS = 368;  // { int workq_ops(int options, user_addr_t item, int prio) NO_SYSCALL_STUB; }
	// SYS_NOSYS = 369;  // { int nosys(void); }
	// SYS_NOSYS = 370;  // { int nosys(void); }
	// SYS_NOSYS = 371;  // { int nosys(void); }
	// SYS_NOSYS = 372;  // { int nosys(void); }
	// SYS_NOSYS = 373;  // { int nosys(void); }
	// SYS_NOSYS = 374;  // { int nosys(void); }
	// SYS_NOSYS = 375;  // { int nosys(void); }
	// SYS_NOSYS = 376;  // { int nosys(void); }
	// SYS_NOSYS = 377;  // { int nosys(void); }
	// SYS_NOSYS = 378;  // { int nosys(void); }
	// SYS_NOSYS = 379;  // { int nosys(void); }
	SYS___MAC_EXECVE = 380;  // { int __mac_execve(char *fname, char **argp, char **envp, struct mac *mac_p); }
	SYS___MAC_SYSCALL = 381;  // { int __mac_syscall(char *policy, int call, user_addr_t arg); }
	SYS___MAC_GET_FILE = 382;  // { int __mac_get_file(char *path_p, struct mac *mac_p); }
	SYS___MAC_SET_FILE = 383;  // { int __mac_set_file(char *path_p, struct mac *mac_p); }
	SYS___MAC_GET_LINK = 384;  // { int __mac_get_link(char *path_p, struct mac *mac_p); }
	SYS___MAC_SET_LINK = 385;  // { int __mac_set_link(char *path_p, struct mac *mac_p); }
	SYS___MAC_GET_PROC = 386;  // { int __mac_get_proc(struct mac *mac_p); }
	SYS___MAC_SET_PROC = 387;  // { int __mac_set_proc(struct mac *mac_p); }
	SYS___MAC_GET_FD = 388;  // { int __mac_get_fd(int fd, struct mac *mac_p); }
	SYS___MAC_SET_FD = 389;  // { int __mac_set_fd(int fd, struct mac *mac_p); }
	SYS___MAC_GET_PID = 390;  // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }
	SYS___MAC_GET_LCID = 391;  // { int __mac_get_lcid(pid_t lcid, struct mac *mac_p); }
	SYS___MAC_GET_LCTX = 392;  // { int __mac_get_lctx(struct mac *mac_p); }
	SYS___MAC_SET_LCTX = 393;  // { int __mac_set_lctx(struct mac *mac_p); }
	SYS_SETLCID = 394;  // { int setlcid(pid_t pid, pid_t lcid) NO_SYSCALL_STUB; }
	SYS_GETLCID = 395;  // { int getlcid(pid_t pid) NO_SYSCALL_STUB; }
	SYS_READ_NOCANCEL = 396;  // { user_ssize_t read_nocancel(int fd, user_addr_t cbuf, user_size_t nbyte) NO_SYSCALL_STUB; }
	SYS_WRITE_NOCANCEL = 397;  // { user_ssize_t write_nocancel(int fd, user_addr_t cbuf, user_size_t nbyte) NO_SYSCALL_STUB; }
	SYS_OPEN_NOCANCEL = 398;  // { int open_nocancel(user_addr_t path, int flags, int mode) NO_SYSCALL_STUB; }
	SYS_CLOSE_NOCANCEL = 399;  // { int close_nocancel(int fd) NO_SYSCALL_STUB; }
	SYS_WAIT4_NOCANCEL = 400;  // { int wait4_nocancel(int pid, user_addr_t status, int options, user_addr_t rusage) NO_SYSCALL_STUB; }
	SYS_RECVMSG_NOCANCEL = 401;  // { int recvmsg_nocancel(int s, struct msghdr *msg, int flags) NO_SYSCALL_STUB; }
	SYS_SENDMSG_NOCANCEL = 402;  // { int sendmsg_nocancel(int s, caddr_t msg, int flags) NO_SYSCALL_STUB; }
	SYS_RECVFROM_NOCANCEL = 403;  // { int recvfrom_nocancel(int s, void *buf, size_t len, int flags, struct sockaddr *from, int *fromlenaddr) NO_SYSCALL_STUB; }
	SYS_ACCEPT_NOCANCEL = 404;  // { int accept_nocancel(int s, caddr_t name, socklen_t	*anamelen) NO_SYSCALL_STUB; }
	// SYS_NOSYS = 401;  // { int nosys(void); }
	// SYS_NOSYS = 402;  // { int nosys(void); }
	// SYS_NOSYS = 403;  // { int nosys(void); }
	// SYS_NOSYS = 404;  // { int nosys(void); }
	SYS_MSYNC_NOCANCEL = 405;  // { int msync_nocancel(caddr_t addr, size_t len, int flags) NO_SYSCALL_STUB; }
	SYS_FCNTL_NOCANCEL = 406;  // { int fcntl_nocancel(int fd, int cmd, long arg) NO_SYSCALL_STUB; }
	SYS_SELECT_NOCANCEL = 407;  // { int select_nocancel(int nd, u_int32_t *in, u_int32_t *ou, u_int32_t *ex, struct timeval *tv) NO_SYSCALL_STUB; }
	SYS_FSYNC_NOCANCEL = 408;  // { int fsync_nocancel(int fd) NO_SYSCALL_STUB; }
	SYS_CONNECT_NOCANCEL = 409;  // { int connect_nocancel(int s, caddr_t name, socklen_t namelen) NO_SYSCALL_STUB; }
	// SYS_NOSYS = 409;  // { int nosys(void); }
	SYS_SIGSUSPEND_NOCANCEL = 410;  // { int sigsuspend_nocancel(sigset_t mask) NO_SYSCALL_STUB; }
	SYS_READV_NOCANCEL = 411;  // { user_ssize_t readv_nocancel(int fd, struct iovec *iovp, u_int iovcnt) NO_SYSCALL_STUB; }
	SYS_WRITEV_NOCANCEL = 412;  // { user_ssize_t writev_nocancel(int fd, struct iovec *iovp, u_int iovcnt) NO_SYSCALL_STUB; }
	SYS_SENDTO_NOCANCEL = 413;  // { int sendto_nocancel(int s, caddr_t buf, size_t len, int flags, caddr_t to, socklen_t tolen) NO_SYSCALL_STUB; }
	// SYS_NOSYS = 413;  // { int nosys(void); }
	SYS_PREAD_NOCANCEL = 414;  // { user_ssize_t pread_nocancel(int fd, user_addr_t buf, user_size_t nbyte, off_t offset) NO_SYSCALL_STUB; }
	SYS_PWRITE_NOCANCEL = 415;  // { user_ssize_t pwrite_nocancel(int fd, user_addr_t buf, user_size_t nbyte, off_t offset) NO_SYSCALL_STUB; }
	SYS_WAITID_NOCANCEL = 416;  // { int waitid_nocancel(idtype_t idtype, id_t id, siginfo_t *infop, int options) NO_SYSCALL_STUB; }
	SYS_POLL_NOCANCEL = 417;  // { int poll_nocancel(struct pollfd *fds, u_int nfds, int timeout) NO_SYSCALL_STUB; }
	SYS_MSGSND_NOCANCEL = 418;  // { int msgsnd_nocancel(int msqid, void *msgp, size_t msgsz, int msgflg) NO_SYSCALL_STUB; }
	SYS_MSGRCV_NOCANCEL = 419;  // { user_ssize_t msgrcv_nocancel(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg) NO_SYSCALL_STUB; }
	// SYS_NOSYS = 418;  // { int nosys(void); }
	// SYS_NOSYS = 419;  // { int nosys(void); }
	SYS_SEM_WAIT_NOCANCEL = 420;  // { int sem_wait_nocancel(sem_t *sem) NO_SYSCALL_STUB; }
	SYS_AIO_SUSPEND_NOCANCEL = 421;  // { int aio_suspend_nocancel(user_addr_t aiocblist, int nent, user_addr_t timeoutp) NO_SYSCALL_STUB; }
	SYS___SIGWAIT_NOCANCEL = 422;  // { int __sigwait_nocancel(user_addr_t set, user_addr_t sig) NO_SYSCALL_STUB; }
	SYS___SEMWAIT_SIGNAL_NOCANCEL = 423;  // { int __semwait_signal_nocancel(int cond_sem, int mutex_sem, int timeout, int relative, time_t tv_sec, int32_t tv_nsec) NO_SYSCALL_STUB; }
	SYS___MAC_MOUNT = 424;  // { int __mac_mount(char *type, char *path, int flags, caddr_t data, struct mac *mac_p); }
	SYS___MAC_GET_MOUNT = 425;  // { int __mac_get_mount(char *path, struct mac *mac_p); }
	SYS___MAC_GETFSSTAT = 426;  // { int __mac_getfsstat(user_addr_t buf, int bufsize, user_addr_t mac, int macsize, int flags); }
)
