freebsd-dev/sys/kern/systrace_args.c

10871 lines
176 KiB
C
Raw Normal View History

/*
* System call argument to DTrace register array converstion.
*
* DO NOT EDIT-- this file is automatically @generated.
* $FreeBSD$
* This file is part of the DTrace syscall provider.
*/
static void
systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
{
int64_t *iarg = (int64_t *) uarg;
switch (sysnum) {
/* nosys */
case 0: {
*n_args = 0;
break;
}
/* sys_exit */
case 1: {
struct sys_exit_args *p = params;
iarg[0] = p->rval; /* int */
*n_args = 1;
break;
}
/* fork */
case 2: {
*n_args = 0;
break;
}
/* read */
case 3: {
struct read_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->buf; /* void * */
uarg[2] = p->nbyte; /* size_t */
*n_args = 3;
break;
}
/* write */
case 4: {
struct write_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->buf; /* const void * */
uarg[2] = p->nbyte; /* size_t */
*n_args = 3;
break;
}
/* open */
case 5: {
struct open_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->flags; /* int */
iarg[2] = p->mode; /* mode_t */
*n_args = 3;
break;
}
/* close */
case 6: {
struct close_args *p = params;
iarg[0] = p->fd; /* int */
*n_args = 1;
break;
}
/* wait4 */
case 7: {
2012-11-13 12:53:41 +00:00
struct wait4_args *p = params;
iarg[0] = p->pid; /* int */
uarg[1] = (intptr_t) p->status; /* int * */
iarg[2] = p->options; /* int */
uarg[3] = (intptr_t) p->rusage; /* struct rusage * */
*n_args = 4;
break;
}
/* link */
case 9: {
struct link_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
uarg[1] = (intptr_t) p->link; /* const char * */
*n_args = 2;
break;
}
/* unlink */
case 10: {
struct unlink_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
*n_args = 1;
break;
}
/* chdir */
case 12: {
struct chdir_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
*n_args = 1;
break;
}
/* fchdir */
case 13: {
struct fchdir_args *p = params;
iarg[0] = p->fd; /* int */
*n_args = 1;
break;
}
/* chmod */
case 15: {
struct chmod_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->mode; /* mode_t */
*n_args = 2;
break;
}
/* chown */
case 16: {
struct chown_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->uid; /* int */
iarg[2] = p->gid; /* int */
*n_args = 3;
break;
}
/* break */
case 17: {
struct break_args *p = params;
uarg[0] = (intptr_t) p->nsize; /* char * */
*n_args = 1;
break;
}
/* getpid */
case 20: {
*n_args = 0;
break;
}
/* mount */
case 21: {
struct mount_args *p = params;
uarg[0] = (intptr_t) p->type; /* const char * */
uarg[1] = (intptr_t) p->path; /* const char * */
iarg[2] = p->flags; /* int */
uarg[3] = (intptr_t) p->data; /* void * */
*n_args = 4;
break;
}
/* unmount */
case 22: {
struct unmount_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->flags; /* int */
*n_args = 2;
break;
}
/* setuid */
case 23: {
struct setuid_args *p = params;
uarg[0] = p->uid; /* uid_t */
*n_args = 1;
break;
}
/* getuid */
case 24: {
*n_args = 0;
break;
}
/* geteuid */
case 25: {
*n_args = 0;
break;
}
/* ptrace */
case 26: {
struct ptrace_args *p = params;
iarg[0] = p->req; /* int */
iarg[1] = p->pid; /* pid_t */
uarg[2] = (intptr_t) p->addr; /* caddr_t */
iarg[3] = p->data; /* int */
*n_args = 4;
break;
}
/* recvmsg */
case 27: {
struct recvmsg_args *p = params;
iarg[0] = p->s; /* int */
uarg[1] = (intptr_t) p->msg; /* struct msghdr * */
iarg[2] = p->flags; /* int */
*n_args = 3;
break;
}
/* sendmsg */
case 28: {
struct sendmsg_args *p = params;
iarg[0] = p->s; /* int */
uarg[1] = (intptr_t) p->msg; /* struct msghdr * */
iarg[2] = p->flags; /* int */
*n_args = 3;
break;
}
/* recvfrom */
case 29: {
struct recvfrom_args *p = params;
iarg[0] = p->s; /* int */
uarg[1] = (intptr_t) p->buf; /* void * */
uarg[2] = p->len; /* size_t */
iarg[3] = p->flags; /* int */
uarg[4] = (intptr_t) p->from; /* struct sockaddr * */
uarg[5] = (intptr_t) p->fromlenaddr; /* __socklen_t * */
*n_args = 6;
break;
}
/* accept */
case 30: {
struct accept_args *p = params;
iarg[0] = p->s; /* int */
uarg[1] = (intptr_t) p->name; /* struct sockaddr * */
uarg[2] = (intptr_t) p->anamelen; /* __socklen_t * */
*n_args = 3;
break;
}
/* getpeername */
case 31: {
struct getpeername_args *p = params;
iarg[0] = p->fdes; /* int */
uarg[1] = (intptr_t) p->asa; /* struct sockaddr * */
uarg[2] = (intptr_t) p->alen; /* __socklen_t * */
*n_args = 3;
break;
}
/* getsockname */
case 32: {
struct getsockname_args *p = params;
iarg[0] = p->fdes; /* int */
uarg[1] = (intptr_t) p->asa; /* struct sockaddr * */
uarg[2] = (intptr_t) p->alen; /* __socklen_t * */
*n_args = 3;
break;
}
/* access */
case 33: {
struct access_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
2011-11-19 06:36:11 +00:00
iarg[1] = p->amode; /* int */
*n_args = 2;
break;
}
/* chflags */
case 34: {
struct chflags_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
uarg[1] = p->flags; /* u_long */
*n_args = 2;
break;
}
/* fchflags */
case 35: {
struct fchflags_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = p->flags; /* u_long */
*n_args = 2;
break;
}
/* sync */
case 36: {
*n_args = 0;
break;
}
/* kill */
case 37: {
struct kill_args *p = params;
iarg[0] = p->pid; /* int */
iarg[1] = p->signum; /* int */
*n_args = 2;
break;
}
/* getppid */
case 39: {
*n_args = 0;
break;
}
/* dup */
case 41: {
struct dup_args *p = params;
uarg[0] = p->fd; /* u_int */
*n_args = 1;
break;
}
/* getegid */
case 43: {
*n_args = 0;
break;
}
/* profil */
case 44: {
struct profil_args *p = params;
uarg[0] = (intptr_t) p->samples; /* char * */
uarg[1] = p->size; /* size_t */
uarg[2] = p->offset; /* size_t */
uarg[3] = p->scale; /* u_int */
*n_args = 4;
break;
}
/* ktrace */
case 45: {
struct ktrace_args *p = params;
uarg[0] = (intptr_t) p->fname; /* const char * */
iarg[1] = p->ops; /* int */
iarg[2] = p->facs; /* int */
iarg[3] = p->pid; /* int */
*n_args = 4;
break;
}
/* getgid */
case 47: {
*n_args = 0;
break;
}
/* getlogin */
case 49: {
struct getlogin_args *p = params;
uarg[0] = (intptr_t) p->namebuf; /* char * */
uarg[1] = p->namelen; /* u_int */
*n_args = 2;
break;
}
/* setlogin */
case 50: {
struct setlogin_args *p = params;
uarg[0] = (intptr_t) p->namebuf; /* const char * */
*n_args = 1;
break;
}
/* acct */
case 51: {
struct acct_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
*n_args = 1;
break;
}
/* sigaltstack */
case 53: {
struct sigaltstack_args *p = params;
uarg[0] = (intptr_t) p->ss; /* stack_t * */
uarg[1] = (intptr_t) p->oss; /* stack_t * */
*n_args = 2;
break;
}
/* ioctl */
case 54: {
struct ioctl_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = p->com; /* u_long */
uarg[2] = (intptr_t) p->data; /* char * */
*n_args = 3;
break;
}
/* reboot */
case 55: {
struct reboot_args *p = params;
iarg[0] = p->opt; /* int */
*n_args = 1;
break;
}
/* revoke */
case 56: {
struct revoke_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
*n_args = 1;
break;
}
/* symlink */
case 57: {
struct symlink_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
uarg[1] = (intptr_t) p->link; /* const char * */
*n_args = 2;
break;
}
/* readlink */
case 58: {
struct readlink_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
uarg[1] = (intptr_t) p->buf; /* char * */
2008-02-12 20:11:54 +00:00
uarg[2] = p->count; /* size_t */
*n_args = 3;
break;
}
/* execve */
case 59: {
struct execve_args *p = params;
uarg[0] = (intptr_t) p->fname; /* const char * */
uarg[1] = (intptr_t) p->argv; /* char ** */
uarg[2] = (intptr_t) p->envv; /* char ** */
*n_args = 3;
break;
}
/* umask */
case 60: {
struct umask_args *p = params;
iarg[0] = p->newmask; /* mode_t */
*n_args = 1;
break;
}
/* chroot */
case 61: {
struct chroot_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
*n_args = 1;
break;
}
/* msync */
case 65: {
struct msync_args *p = params;
uarg[0] = (intptr_t) p->addr; /* void * */
uarg[1] = p->len; /* size_t */
iarg[2] = p->flags; /* int */
*n_args = 3;
break;
}
/* vfork */
case 66: {
*n_args = 0;
break;
}
/* sbrk */
case 69: {
struct sbrk_args *p = params;
iarg[0] = p->incr; /* int */
*n_args = 1;
break;
}
/* sstk */
case 70: {
struct sstk_args *p = params;
iarg[0] = p->incr; /* int */
*n_args = 1;
break;
}
/* munmap */
case 73: {
struct munmap_args *p = params;
uarg[0] = (intptr_t) p->addr; /* void * */
uarg[1] = p->len; /* size_t */
*n_args = 2;
break;
}
/* mprotect */
case 74: {
struct mprotect_args *p = params;
uarg[0] = (intptr_t) p->addr; /* void * */
uarg[1] = p->len; /* size_t */
iarg[2] = p->prot; /* int */
*n_args = 3;
break;
}
/* madvise */
case 75: {
struct madvise_args *p = params;
uarg[0] = (intptr_t) p->addr; /* void * */
uarg[1] = p->len; /* size_t */
iarg[2] = p->behav; /* int */
*n_args = 3;
break;
}
/* mincore */
case 78: {
struct mincore_args *p = params;
uarg[0] = (intptr_t) p->addr; /* const void * */
uarg[1] = p->len; /* size_t */
uarg[2] = (intptr_t) p->vec; /* char * */
*n_args = 3;
break;
}
/* getgroups */
case 79: {
struct getgroups_args *p = params;
uarg[0] = p->gidsetsize; /* u_int */
uarg[1] = (intptr_t) p->gidset; /* gid_t * */
*n_args = 2;
break;
}
/* setgroups */
case 80: {
struct setgroups_args *p = params;
uarg[0] = p->gidsetsize; /* u_int */
uarg[1] = (intptr_t) p->gidset; /* gid_t * */
*n_args = 2;
break;
}
/* getpgrp */
case 81: {
*n_args = 0;
break;
}
/* setpgid */
case 82: {
struct setpgid_args *p = params;
iarg[0] = p->pid; /* int */
iarg[1] = p->pgid; /* int */
*n_args = 2;
break;
}
/* setitimer */
case 83: {
struct setitimer_args *p = params;
uarg[0] = p->which; /* u_int */
uarg[1] = (intptr_t) p->itv; /* struct itimerval * */
uarg[2] = (intptr_t) p->oitv; /* struct itimerval * */
*n_args = 3;
break;
}
/* swapon */
case 85: {
struct swapon_args *p = params;
uarg[0] = (intptr_t) p->name; /* const char * */
*n_args = 1;
break;
}
/* getitimer */
case 86: {
struct getitimer_args *p = params;
uarg[0] = p->which; /* u_int */
uarg[1] = (intptr_t) p->itv; /* struct itimerval * */
*n_args = 2;
break;
}
/* getdtablesize */
case 89: {
*n_args = 0;
break;
}
/* dup2 */
case 90: {
struct dup2_args *p = params;
uarg[0] = p->from; /* u_int */
uarg[1] = p->to; /* u_int */
*n_args = 2;
break;
}
/* fcntl */
case 92: {
struct fcntl_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->cmd; /* int */
iarg[2] = p->arg; /* long */
*n_args = 3;
break;
}
/* select */
case 93: {
struct select_args *p = params;
iarg[0] = p->nd; /* int */
uarg[1] = (intptr_t) p->in; /* fd_set * */
uarg[2] = (intptr_t) p->ou; /* fd_set * */
uarg[3] = (intptr_t) p->ex; /* fd_set * */
uarg[4] = (intptr_t) p->tv; /* struct timeval * */
*n_args = 5;
break;
}
/* fsync */
case 95: {
struct fsync_args *p = params;
iarg[0] = p->fd; /* int */
*n_args = 1;
break;
}
/* setpriority */
case 96: {
struct setpriority_args *p = params;
iarg[0] = p->which; /* int */
iarg[1] = p->who; /* int */
iarg[2] = p->prio; /* int */
*n_args = 3;
break;
}
/* socket */
case 97: {
struct socket_args *p = params;
iarg[0] = p->domain; /* int */
iarg[1] = p->type; /* int */
iarg[2] = p->protocol; /* int */
*n_args = 3;
break;
}
/* connect */
case 98: {
struct connect_args *p = params;
iarg[0] = p->s; /* int */
uarg[1] = (intptr_t) p->name; /* const struct sockaddr * */
iarg[2] = p->namelen; /* int */
*n_args = 3;
break;
}
/* getpriority */
case 100: {
struct getpriority_args *p = params;
iarg[0] = p->which; /* int */
iarg[1] = p->who; /* int */
*n_args = 2;
break;
}
/* bind */
case 104: {
struct bind_args *p = params;
iarg[0] = p->s; /* int */
uarg[1] = (intptr_t) p->name; /* const struct sockaddr * */
iarg[2] = p->namelen; /* int */
*n_args = 3;
break;
}
/* setsockopt */
case 105: {
struct setsockopt_args *p = params;
iarg[0] = p->s; /* int */
iarg[1] = p->level; /* int */
iarg[2] = p->name; /* int */
uarg[3] = (intptr_t) p->val; /* const void * */
iarg[4] = p->valsize; /* int */
*n_args = 5;
break;
}
/* listen */
case 106: {
struct listen_args *p = params;
iarg[0] = p->s; /* int */
iarg[1] = p->backlog; /* int */
*n_args = 2;
break;
}
/* gettimeofday */
case 116: {
struct gettimeofday_args *p = params;
uarg[0] = (intptr_t) p->tp; /* struct timeval * */
uarg[1] = (intptr_t) p->tzp; /* struct timezone * */
*n_args = 2;
break;
}
/* getrusage */
case 117: {
struct getrusage_args *p = params;
iarg[0] = p->who; /* int */
uarg[1] = (intptr_t) p->rusage; /* struct rusage * */
*n_args = 2;
break;
}
/* getsockopt */
case 118: {
struct getsockopt_args *p = params;
iarg[0] = p->s; /* int */
iarg[1] = p->level; /* int */
iarg[2] = p->name; /* int */
uarg[3] = (intptr_t) p->val; /* void * */
uarg[4] = (intptr_t) p->avalsize; /* int * */
*n_args = 5;
break;
}
/* readv */
case 120: {
struct readv_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->iovp; /* struct iovec * */
uarg[2] = p->iovcnt; /* u_int */
*n_args = 3;
break;
}
/* writev */
case 121: {
struct writev_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->iovp; /* struct iovec * */
uarg[2] = p->iovcnt; /* u_int */
*n_args = 3;
break;
}
/* settimeofday */
case 122: {
struct settimeofday_args *p = params;
uarg[0] = (intptr_t) p->tv; /* struct timeval * */
uarg[1] = (intptr_t) p->tzp; /* struct timezone * */
*n_args = 2;
break;
}
/* fchown */
case 123: {
struct fchown_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->uid; /* int */
iarg[2] = p->gid; /* int */
*n_args = 3;
break;
}
/* fchmod */
case 124: {
struct fchmod_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->mode; /* mode_t */
*n_args = 2;
break;
}
/* setreuid */
case 126: {
struct setreuid_args *p = params;
iarg[0] = p->ruid; /* int */
iarg[1] = p->euid; /* int */
*n_args = 2;
break;
}
/* setregid */
case 127: {
struct setregid_args *p = params;
iarg[0] = p->rgid; /* int */
iarg[1] = p->egid; /* int */
*n_args = 2;
break;
}
/* rename */
case 128: {
struct rename_args *p = params;
uarg[0] = (intptr_t) p->from; /* const char * */
uarg[1] = (intptr_t) p->to; /* const char * */
*n_args = 2;
break;
}
/* flock */
case 131: {
struct flock_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->how; /* int */
*n_args = 2;
break;
}
/* mkfifo */
case 132: {
struct mkfifo_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->mode; /* mode_t */
*n_args = 2;
break;
}
/* sendto */
case 133: {
struct sendto_args *p = params;
iarg[0] = p->s; /* int */
uarg[1] = (intptr_t) p->buf; /* const void * */
uarg[2] = p->len; /* size_t */
iarg[3] = p->flags; /* int */
uarg[4] = (intptr_t) p->to; /* const struct sockaddr * */
iarg[5] = p->tolen; /* int */
*n_args = 6;
break;
}
/* shutdown */
case 134: {
struct shutdown_args *p = params;
iarg[0] = p->s; /* int */
iarg[1] = p->how; /* int */
*n_args = 2;
break;
}
/* socketpair */
case 135: {
struct socketpair_args *p = params;
iarg[0] = p->domain; /* int */
iarg[1] = p->type; /* int */
iarg[2] = p->protocol; /* int */
uarg[3] = (intptr_t) p->rsv; /* int * */
*n_args = 4;
break;
}
/* mkdir */
case 136: {
struct mkdir_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->mode; /* mode_t */
*n_args = 2;
break;
}
/* rmdir */
case 137: {
struct rmdir_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
*n_args = 1;
break;
}
/* utimes */
case 138: {
struct utimes_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
uarg[1] = (intptr_t) p->tptr; /* struct timeval * */
*n_args = 2;
break;
}
/* adjtime */
case 140: {
struct adjtime_args *p = params;
uarg[0] = (intptr_t) p->delta; /* struct timeval * */
uarg[1] = (intptr_t) p->olddelta; /* struct timeval * */
*n_args = 2;
break;
}
/* setsid */
case 147: {
*n_args = 0;
break;
}
/* quotactl */
case 148: {
struct quotactl_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->cmd; /* int */
iarg[2] = p->uid; /* int */
uarg[3] = (intptr_t) p->arg; /* void * */
*n_args = 4;
break;
}
2008-03-26 15:24:02 +00:00
/* nlm_syscall */
case 154: {
struct nlm_syscall_args *p = params;
iarg[0] = p->debug_level; /* int */
iarg[1] = p->grace_period; /* int */
iarg[2] = p->addr_count; /* int */
uarg[3] = (intptr_t) p->addrs; /* char ** */
*n_args = 4;
break;
}
/* nfssvc */
case 155: {
struct nfssvc_args *p = params;
iarg[0] = p->flag; /* int */
uarg[1] = (intptr_t) p->argp; /* void * */
*n_args = 2;
break;
}
/* lgetfh */
case 160: {
struct lgetfh_args *p = params;
uarg[0] = (intptr_t) p->fname; /* const char * */
uarg[1] = (intptr_t) p->fhp; /* struct fhandle * */
*n_args = 2;
break;
}
/* getfh */
case 161: {
struct getfh_args *p = params;
uarg[0] = (intptr_t) p->fname; /* const char * */
uarg[1] = (intptr_t) p->fhp; /* struct fhandle * */
*n_args = 2;
break;
}
/* sysarch */
case 165: {
struct sysarch_args *p = params;
iarg[0] = p->op; /* int */
uarg[1] = (intptr_t) p->parms; /* char * */
*n_args = 2;
break;
}
/* rtprio */
case 166: {
struct rtprio_args *p = params;
iarg[0] = p->function; /* int */
iarg[1] = p->pid; /* pid_t */
uarg[2] = (intptr_t) p->rtp; /* struct rtprio * */
*n_args = 3;
break;
}
/* semsys */
case 169: {
struct semsys_args *p = params;
iarg[0] = p->which; /* int */
iarg[1] = p->a2; /* int */
iarg[2] = p->a3; /* int */
iarg[3] = p->a4; /* int */
iarg[4] = p->a5; /* int */
*n_args = 5;
break;
}
/* msgsys */
case 170: {
struct msgsys_args *p = params;
iarg[0] = p->which; /* int */
iarg[1] = p->a2; /* int */
iarg[2] = p->a3; /* int */
iarg[3] = p->a4; /* int */
iarg[4] = p->a5; /* int */
iarg[5] = p->a6; /* int */
*n_args = 6;
break;
}
/* shmsys */
case 171: {
struct shmsys_args *p = params;
iarg[0] = p->which; /* int */
iarg[1] = p->a2; /* int */
iarg[2] = p->a3; /* int */
iarg[3] = p->a4; /* int */
*n_args = 4;
break;
}
Add code to allow the system to handle multiple routing tables. This particular implementation is designed to be fully backwards compatible and to be MFC-able to 7.x (and 6.x) Currently the only protocol that can make use of the multiple tables is IPv4 Similar functionality exists in OpenBSD and Linux. From my notes: ----- One thing where FreeBSD has been falling behind, and which by chance I have some time to work on is "policy based routing", which allows different packet streams to be routed by more than just the destination address. Constraints: ------------ I want to make some form of this available in the 6.x tree (and by extension 7.x) , but FreeBSD in general needs it so I might as well do it in -current and back port the portions I need. One of the ways that this can be done is to have the ability to instantiate multiple kernel routing tables (which I will now refer to as "Forwarding Information Bases" or "FIBs" for political correctness reasons). Which FIB a particular packet uses to make the next hop decision can be decided by a number of mechanisms. The policies these mechanisms implement are the "Policies" referred to in "Policy based routing". One of the constraints I have if I try to back port this work to 6.x is that it must be implemented as a EXTENSION to the existing ABIs in 6.x so that third party applications do not need to be recompiled in timespan of the branch. This first version will not have some of the bells and whistles that will come with later versions. It will, for example, be limited to 16 tables in the first commit. Implementation method, Compatible version. (part 1) ------------------------------- For this reason I have implemented a "sufficient subset" of a multiple routing table solution in Perforce, and back-ported it to 6.x. (also in Perforce though not always caught up with what I have done in -current/P4). The subset allows a number of FIBs to be defined at compile time (8 is sufficient for my purposes in 6.x) and implements the changes needed to allow IPV4 to use them. I have not done the changes for ipv6 simply because I do not need it, and I do not have enough knowledge of ipv6 (e.g. neighbor discovery) needed to do it. Other protocol families are left untouched and should there be users with proprietary protocol families, they should continue to work and be oblivious to the existence of the extra FIBs. To understand how this is done, one must know that the current FIB code starts everything off with a single dimensional array of pointers to FIB head structures (One per protocol family), each of which in turn points to the trie of routes available to that family. The basic change in the ABI compatible version of the change is to extent that array to be a 2 dimensional array, so that instead of protocol family X looking at rt_tables[X] for the table it needs, it looks at rt_tables[Y][X] when for all protocol families except ipv4 Y is always 0. Code that is unaware of the change always just sees the first row of the table, which of course looks just like the one dimensional array that existed before. The entry points rtrequest(), rtalloc(), rtalloc1(), rtalloc_ign() are all maintained, but refer only to the first row of the array, so that existing callers in proprietary protocols can continue to do the "right thing". Some new entry points are added, for the exclusive use of ipv4 code called in_rtrequest(), in_rtalloc(), in_rtalloc1() and in_rtalloc_ign(), which have an extra argument which refers the code to the correct row. In addition, there are some new entry points (currently called rtalloc_fib() and friends) that check the Address family being looked up and call either rtalloc() (and friends) if the protocol is not IPv4 forcing the action to row 0 or to the appropriate row if it IS IPv4 (and that info is available). These are for calling from code that is not specific to any particular protocol. The way these are implemented would change in the non ABI preserving code to be added later. One feature of the first version of the code is that for ipv4, the interface routes show up automatically on all the FIBs, so that no matter what FIB you select you always have the basic direct attached hosts available to you. (rtinit() does this automatically). You CAN delete an interface route from one FIB should you want to but by default it's there. ARP information is also available in each FIB. It's assumed that the same machine would have the same MAC address, regardless of which FIB you are using to get to it. This brings us as to how the correct FIB is selected for an outgoing IPV4 packet. Firstly, all packets have a FIB associated with them. if nothing has been done to change it, it will be FIB 0. The FIB is changed in the following ways. Packets fall into one of a number of classes. 1/ locally generated packets, coming from a socket/PCB. Such packets select a FIB from a number associated with the socket/PCB. This in turn is inherited from the process, but can be changed by a socket option. The process in turn inherits it on fork. I have written a utility call setfib that acts a bit like nice.. setfib -3 ping target.example.com # will use fib 3 for ping. It is an obvious extension to make it a property of a jail but I have not done so. It can be achieved by combining the setfib and jail commands. 2/ packets received on an interface for forwarding. By default these packets would use table 0, (or possibly a number settable in a sysctl(not yet)). but prior to routing the firewall can inspect them (see below). (possibly in the future you may be able to associate a FIB with packets received on an interface.. An ifconfig arg, but not yet.) 3/ packets inspected by a packet classifier, which can arbitrarily associate a fib with it on a packet by packet basis. A fib assigned to a packet by a packet classifier (such as ipfw) would over-ride a fib associated by a more default source. (such as cases 1 or 2). 4/ a tcp listen socket associated with a fib will generate accept sockets that are associated with that same fib. 5/ Packets generated in response to some other packet (e.g. reset or icmp packets). These should use the FIB associated with the packet being reponded to. 6/ Packets generated during encapsulation. gif, tun and other tunnel interfaces will encapsulate using the FIB that was in effect withthe proces that set up the tunnel. thus setfib 1 ifconfig gif0 [tunnel instructions] will set the fib for the tunnel to use to be fib 1. Routing messages would be associated with their process, and thus select one FIB or another. messages from the kernel would be associated with the fib they refer to and would only be received by a routing socket associated with that fib. (not yet implemented) In addition Netstat has been edited to be able to cope with the fact that the array is now 2 dimensional. (It looks in system memory using libkvm (!)). Old versions of netstat see only the first FIB. In addition two sysctls are added to give: a) the number of FIBs compiled in (active) b) the default FIB of the calling process. Early testing experience: ------------------------- Basically our (IronPort's) appliance does this functionality already using ipfw fwd but that method has some drawbacks. For example, It can't fully simulate a routing table because it can't influence the socket's choice of local address when a connect() is done. Testing during the generating of these changes has been remarkably smooth so far. Multiple tables have co-existed with no notable side effects, and packets have been routes accordingly. ipfw has grown 2 new keywords: setfib N ip from anay to any count ip from any to any fib N In pf there seems to be a requirement to be able to give symbolic names to the fibs but I do not have that capacity. I am not sure if it is required. SCTP has interestingly enough built in support for this, called VRFs in Cisco parlance. it will be interesting to see how that handles it when it suddenly actually does something. Where to next: -------------------- After committing the ABI compatible version and MFCing it, I'd like to proceed in a forward direction in -current. this will result in some roto-tilling in the routing code. Firstly: the current code's idea of having a separate tree per protocol family, all of the same format, and pointed to by the 1 dimensional array is a bit silly. Especially when one considers that there is code that makes assumptions about every protocol having the same internal structures there. Some protocols don't WANT that sort of structure. (for example the whole idea of a netmask is foreign to appletalk). This needs to be made opaque to the external code. My suggested first change is to add routing method pointers to the 'domain' structure, along with information pointing the data. instead of having an array of pointers to uniform structures, there would be an array pointing to the 'domain' structures for each protocol address domain (protocol family), and the methods this reached would be called. The methods would have an argument that gives FIB number, but the protocol would be free to ignore it. When the ABI can be changed it raises the possibilty of the addition of a fib entry into the "struct route". Currently, the structure contains the sockaddr of the desination, and the resulting fib entry. To make this work fully, one could add a fib number so that given an address and a fib, one can find the third element, the fib entry. Interaction with the ARP layer/ LL layer would need to be revisited as well. Qing Li has been working on this already. This work was sponsored by Ironport Systems/Cisco Reviewed by: several including rwatson, bz and mlair (parts each) Obtained from: Ironport systems/Cisco
2008-05-09 23:03:00 +00:00
/* setfib */
case 175: {
struct setfib_args *p = params;
iarg[0] = p->fibnum; /* int */
*n_args = 1;
break;
}
/* ntp_adjtime */
case 176: {
struct ntp_adjtime_args *p = params;
uarg[0] = (intptr_t) p->tp; /* struct timex * */
*n_args = 1;
break;
}
/* setgid */
case 181: {
struct setgid_args *p = params;
iarg[0] = p->gid; /* gid_t */
*n_args = 1;
break;
}
/* setegid */
case 182: {
struct setegid_args *p = params;
iarg[0] = p->egid; /* gid_t */
*n_args = 1;
break;
}
/* seteuid */
case 183: {
struct seteuid_args *p = params;
uarg[0] = p->euid; /* uid_t */
*n_args = 1;
break;
}
/* pathconf */
case 191: {
struct pathconf_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->name; /* int */
*n_args = 2;
break;
}
/* fpathconf */
case 192: {
struct fpathconf_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->name; /* int */
*n_args = 2;
break;
}
/* getrlimit */
case 194: {
struct __getrlimit_args *p = params;
uarg[0] = p->which; /* u_int */
uarg[1] = (intptr_t) p->rlp; /* struct rlimit * */
*n_args = 2;
break;
}
/* setrlimit */
case 195: {
struct __setrlimit_args *p = params;
uarg[0] = p->which; /* u_int */
uarg[1] = (intptr_t) p->rlp; /* struct rlimit * */
*n_args = 2;
break;
}
/* nosys */
case 198: {
*n_args = 0;
break;
}
/* __sysctl */
case 202: {
struct sysctl_args *p = params;
uarg[0] = (intptr_t) p->name; /* int * */
uarg[1] = p->namelen; /* u_int */
uarg[2] = (intptr_t) p->old; /* void * */
uarg[3] = (intptr_t) p->oldlenp; /* size_t * */
uarg[4] = (intptr_t) p->new; /* const void * */
uarg[5] = p->newlen; /* size_t */
*n_args = 6;
break;
}
/* mlock */
case 203: {
struct mlock_args *p = params;
uarg[0] = (intptr_t) p->addr; /* const void * */
uarg[1] = p->len; /* size_t */
*n_args = 2;
break;
}
/* munlock */
case 204: {
struct munlock_args *p = params;
uarg[0] = (intptr_t) p->addr; /* const void * */
uarg[1] = p->len; /* size_t */
*n_args = 2;
break;
}
/* undelete */
case 205: {
struct undelete_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
*n_args = 1;
break;
}
/* futimes */
case 206: {
struct futimes_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->tptr; /* struct timeval * */
*n_args = 2;
break;
}
/* getpgid */
case 207: {
struct getpgid_args *p = params;
iarg[0] = p->pid; /* pid_t */
*n_args = 1;
break;
}
/* poll */
case 209: {
struct poll_args *p = params;
uarg[0] = (intptr_t) p->fds; /* struct pollfd * */
uarg[1] = p->nfds; /* u_int */
iarg[2] = p->timeout; /* int */
*n_args = 3;
break;
}
/* lkmnosys */
case 210: {
*n_args = 0;
break;
}
/* lkmnosys */
case 211: {
*n_args = 0;
break;
}
/* lkmnosys */
case 212: {
*n_args = 0;
break;
}
/* lkmnosys */
case 213: {
*n_args = 0;
break;
}
/* lkmnosys */
case 214: {
*n_args = 0;
break;
}
/* lkmnosys */
case 215: {
*n_args = 0;
break;
}
/* lkmnosys */
case 216: {
*n_args = 0;
break;
}
/* lkmnosys */
case 217: {
*n_args = 0;
break;
}
/* lkmnosys */
case 218: {
*n_args = 0;
break;
}
/* lkmnosys */
case 219: {
*n_args = 0;
break;
}
/* semget */
case 221: {
struct semget_args *p = params;
iarg[0] = p->key; /* key_t */
iarg[1] = p->nsems; /* int */
iarg[2] = p->semflg; /* int */
*n_args = 3;
break;
}
/* semop */
case 222: {
struct semop_args *p = params;
iarg[0] = p->semid; /* int */
uarg[1] = (intptr_t) p->sops; /* struct sembuf * */
uarg[2] = p->nsops; /* size_t */
*n_args = 3;
break;
}
/* msgget */
case 225: {
struct msgget_args *p = params;
iarg[0] = p->key; /* key_t */
iarg[1] = p->msgflg; /* int */
*n_args = 2;
break;
}
/* msgsnd */
case 226: {
struct msgsnd_args *p = params;
iarg[0] = p->msqid; /* int */
uarg[1] = (intptr_t) p->msgp; /* const void * */
uarg[2] = p->msgsz; /* size_t */
iarg[3] = p->msgflg; /* int */
*n_args = 4;
break;
}
/* msgrcv */
case 227: {
struct msgrcv_args *p = params;
iarg[0] = p->msqid; /* int */
uarg[1] = (intptr_t) p->msgp; /* void * */
uarg[2] = p->msgsz; /* size_t */
iarg[3] = p->msgtyp; /* long */
iarg[4] = p->msgflg; /* int */
*n_args = 5;
break;
}
/* shmat */
case 228: {
struct shmat_args *p = params;
iarg[0] = p->shmid; /* int */
uarg[1] = (intptr_t) p->shmaddr; /* const void * */
iarg[2] = p->shmflg; /* int */
*n_args = 3;
break;
}
/* shmdt */
case 230: {
struct shmdt_args *p = params;
uarg[0] = (intptr_t) p->shmaddr; /* const void * */
*n_args = 1;
break;
}
/* shmget */
case 231: {
struct shmget_args *p = params;
iarg[0] = p->key; /* key_t */
uarg[1] = p->size; /* size_t */
iarg[2] = p->shmflg; /* int */
*n_args = 3;
break;
}
/* clock_gettime */
case 232: {
struct clock_gettime_args *p = params;
iarg[0] = p->clock_id; /* clockid_t */
uarg[1] = (intptr_t) p->tp; /* struct timespec * */
*n_args = 2;
break;
}
/* clock_settime */
case 233: {
struct clock_settime_args *p = params;
iarg[0] = p->clock_id; /* clockid_t */
uarg[1] = (intptr_t) p->tp; /* const struct timespec * */
*n_args = 2;
break;
}
/* clock_getres */
case 234: {
struct clock_getres_args *p = params;
iarg[0] = p->clock_id; /* clockid_t */
uarg[1] = (intptr_t) p->tp; /* struct timespec * */
*n_args = 2;
break;
}
/* ktimer_create */
case 235: {
struct ktimer_create_args *p = params;
iarg[0] = p->clock_id; /* clockid_t */
uarg[1] = (intptr_t) p->evp; /* struct sigevent * */
uarg[2] = (intptr_t) p->timerid; /* int * */
*n_args = 3;
break;
}
/* ktimer_delete */
case 236: {
struct ktimer_delete_args *p = params;
iarg[0] = p->timerid; /* int */
*n_args = 1;
break;
}
/* ktimer_settime */
case 237: {
struct ktimer_settime_args *p = params;
iarg[0] = p->timerid; /* int */
iarg[1] = p->flags; /* int */
uarg[2] = (intptr_t) p->value; /* const struct itimerspec * */
uarg[3] = (intptr_t) p->ovalue; /* struct itimerspec * */
*n_args = 4;
break;
}
/* ktimer_gettime */
case 238: {
struct ktimer_gettime_args *p = params;
iarg[0] = p->timerid; /* int */
uarg[1] = (intptr_t) p->value; /* struct itimerspec * */
*n_args = 2;
break;
}
/* ktimer_getoverrun */
case 239: {
struct ktimer_getoverrun_args *p = params;
iarg[0] = p->timerid; /* int */
*n_args = 1;
break;
}
/* nanosleep */
case 240: {
struct nanosleep_args *p = params;
uarg[0] = (intptr_t) p->rqtp; /* const struct timespec * */
uarg[1] = (intptr_t) p->rmtp; /* struct timespec * */
*n_args = 2;
break;
}
/* ffclock_getcounter */
case 241: {
struct ffclock_getcounter_args *p = params;
uarg[0] = (intptr_t) p->ffcount; /* ffcounter * */
*n_args = 1;
break;
}
/* ffclock_setestimate */
case 242: {
struct ffclock_setestimate_args *p = params;
uarg[0] = (intptr_t) p->cest; /* struct ffclock_estimate * */
*n_args = 1;
break;
}
/* ffclock_getestimate */
case 243: {
struct ffclock_getestimate_args *p = params;
uarg[0] = (intptr_t) p->cest; /* struct ffclock_estimate * */
*n_args = 1;
break;
}
/* clock_nanosleep */
case 244: {
struct clock_nanosleep_args *p = params;
iarg[0] = p->clock_id; /* clockid_t */
iarg[1] = p->flags; /* int */
uarg[2] = (intptr_t) p->rqtp; /* const struct timespec * */
uarg[3] = (intptr_t) p->rmtp; /* struct timespec * */
*n_args = 4;
break;
}
/* clock_getcpuclockid2 */
case 247: {
struct clock_getcpuclockid2_args *p = params;
iarg[0] = p->id; /* id_t */
iarg[1] = p->which; /* int */
uarg[2] = (intptr_t) p->clock_id; /* clockid_t * */
*n_args = 3;
break;
}
/* ntp_gettime */
case 248: {
struct ntp_gettime_args *p = params;
uarg[0] = (intptr_t) p->ntvp; /* struct ntptimeval * */
*n_args = 1;
break;
}
/* minherit */
case 250: {
struct minherit_args *p = params;
uarg[0] = (intptr_t) p->addr; /* void * */
uarg[1] = p->len; /* size_t */
iarg[2] = p->inherit; /* int */
*n_args = 3;
break;
}
/* rfork */
case 251: {
struct rfork_args *p = params;
iarg[0] = p->flags; /* int */
*n_args = 1;
break;
}
/* issetugid */
case 253: {
*n_args = 0;
break;
}
/* lchown */
case 254: {
struct lchown_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->uid; /* int */
iarg[2] = p->gid; /* int */
*n_args = 3;
break;
}
/* aio_read */
case 255: {
struct aio_read_args *p = params;
uarg[0] = (intptr_t) p->aiocbp; /* struct aiocb * */
*n_args = 1;
break;
}
/* aio_write */
case 256: {
struct aio_write_args *p = params;
uarg[0] = (intptr_t) p->aiocbp; /* struct aiocb * */
*n_args = 1;
break;
}
/* lio_listio */
case 257: {
struct lio_listio_args *p = params;
iarg[0] = p->mode; /* int */
uarg[1] = (intptr_t) p->acb_list; /* struct aiocb * const * */
iarg[2] = p->nent; /* int */
uarg[3] = (intptr_t) p->sig; /* struct sigevent * */
*n_args = 4;
break;
}
/* lchmod */
case 274: {
struct lchmod_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->mode; /* mode_t */
*n_args = 2;
break;
}
/* lutimes */
case 276: {
struct lutimes_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
uarg[1] = (intptr_t) p->tptr; /* struct timeval * */
*n_args = 2;
break;
}
/* preadv */
case 289: {
struct preadv_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->iovp; /* struct iovec * */
uarg[2] = p->iovcnt; /* u_int */
iarg[3] = p->offset; /* off_t */
*n_args = 4;
break;
}
/* pwritev */
case 290: {
struct pwritev_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->iovp; /* struct iovec * */
uarg[2] = p->iovcnt; /* u_int */
iarg[3] = p->offset; /* off_t */
*n_args = 4;
break;
}
/* fhopen */
case 298: {
struct fhopen_args *p = params;
uarg[0] = (intptr_t) p->u_fhp; /* const struct fhandle * */
iarg[1] = p->flags; /* int */
*n_args = 2;
break;
}
/* modnext */
case 300: {
struct modnext_args *p = params;
iarg[0] = p->modid; /* int */
*n_args = 1;
break;
}
/* modstat */
case 301: {
struct modstat_args *p = params;
iarg[0] = p->modid; /* int */
uarg[1] = (intptr_t) p->stat; /* struct module_stat * */
*n_args = 2;
break;
}
/* modfnext */
case 302: {
struct modfnext_args *p = params;
iarg[0] = p->modid; /* int */
*n_args = 1;
break;
}
/* modfind */
case 303: {
struct modfind_args *p = params;
uarg[0] = (intptr_t) p->name; /* const char * */
*n_args = 1;
break;
}
/* kldload */
case 304: {
struct kldload_args *p = params;
uarg[0] = (intptr_t) p->file; /* const char * */
*n_args = 1;
break;
}
/* kldunload */
case 305: {
struct kldunload_args *p = params;
iarg[0] = p->fileid; /* int */
*n_args = 1;
break;
}
/* kldfind */
case 306: {
struct kldfind_args *p = params;
uarg[0] = (intptr_t) p->file; /* const char * */
*n_args = 1;
break;
}
/* kldnext */
case 307: {
struct kldnext_args *p = params;
iarg[0] = p->fileid; /* int */
*n_args = 1;
break;
}
/* kldstat */
case 308: {
struct kldstat_args *p = params;
iarg[0] = p->fileid; /* int */
uarg[1] = (intptr_t) p->stat; /* struct kld_file_stat * */
*n_args = 2;
break;
}
/* kldfirstmod */
case 309: {
struct kldfirstmod_args *p = params;
iarg[0] = p->fileid; /* int */
*n_args = 1;
break;
}
/* getsid */
case 310: {
struct getsid_args *p = params;
iarg[0] = p->pid; /* pid_t */
*n_args = 1;
break;
}
/* setresuid */
case 311: {
struct setresuid_args *p = params;
uarg[0] = p->ruid; /* uid_t */
uarg[1] = p->euid; /* uid_t */
uarg[2] = p->suid; /* uid_t */
*n_args = 3;
break;
}
/* setresgid */
case 312: {
struct setresgid_args *p = params;
iarg[0] = p->rgid; /* gid_t */
iarg[1] = p->egid; /* gid_t */
iarg[2] = p->sgid; /* gid_t */
*n_args = 3;
break;
}
/* aio_return */
case 314: {
struct aio_return_args *p = params;
uarg[0] = (intptr_t) p->aiocbp; /* struct aiocb * */
*n_args = 1;
break;
}
/* aio_suspend */
case 315: {
struct aio_suspend_args *p = params;
uarg[0] = (intptr_t) p->aiocbp; /* struct aiocb * const * */
iarg[1] = p->nent; /* int */
uarg[2] = (intptr_t) p->timeout; /* const struct timespec * */
*n_args = 3;
break;
}
/* aio_cancel */
case 316: {
struct aio_cancel_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->aiocbp; /* struct aiocb * */
*n_args = 2;
break;
}
/* aio_error */
case 317: {
struct aio_error_args *p = params;
uarg[0] = (intptr_t) p->aiocbp; /* struct aiocb * */
*n_args = 1;
break;
}
/* yield */
case 321: {
*n_args = 0;
break;
}
/* mlockall */
case 324: {
struct mlockall_args *p = params;
iarg[0] = p->how; /* int */
*n_args = 1;
break;
}
/* munlockall */
case 325: {
*n_args = 0;
break;
}
/* __getcwd */
case 326: {
struct __getcwd_args *p = params;
2015-01-04 10:40:23 +00:00
uarg[0] = (intptr_t) p->buf; /* char * */
2017-04-06 23:40:51 +00:00
uarg[1] = p->buflen; /* size_t */
*n_args = 2;
break;
}
/* sched_setparam */
case 327: {
struct sched_setparam_args *p = params;
iarg[0] = p->pid; /* pid_t */
uarg[1] = (intptr_t) p->param; /* const struct sched_param * */
*n_args = 2;
break;
}
/* sched_getparam */
case 328: {
struct sched_getparam_args *p = params;
iarg[0] = p->pid; /* pid_t */
uarg[1] = (intptr_t) p->param; /* struct sched_param * */
*n_args = 2;
break;
}
/* sched_setscheduler */
case 329: {
struct sched_setscheduler_args *p = params;
iarg[0] = p->pid; /* pid_t */
iarg[1] = p->policy; /* int */
uarg[2] = (intptr_t) p->param; /* const struct sched_param * */
*n_args = 3;
break;
}
/* sched_getscheduler */
case 330: {
struct sched_getscheduler_args *p = params;
iarg[0] = p->pid; /* pid_t */
*n_args = 1;
break;
}
/* sched_yield */
case 331: {
*n_args = 0;
break;
}
/* sched_get_priority_max */
case 332: {
struct sched_get_priority_max_args *p = params;
iarg[0] = p->policy; /* int */
*n_args = 1;
break;
}
/* sched_get_priority_min */
case 333: {
struct sched_get_priority_min_args *p = params;
iarg[0] = p->policy; /* int */
*n_args = 1;
break;
}
/* sched_rr_get_interval */
case 334: {
struct sched_rr_get_interval_args *p = params;
iarg[0] = p->pid; /* pid_t */
uarg[1] = (intptr_t) p->interval; /* struct timespec * */
*n_args = 2;
break;
}
/* utrace */
case 335: {
struct utrace_args *p = params;
uarg[0] = (intptr_t) p->addr; /* const void * */
uarg[1] = p->len; /* size_t */
*n_args = 2;
break;
}
/* kldsym */
case 337: {
struct kldsym_args *p = params;
iarg[0] = p->fileid; /* int */
iarg[1] = p->cmd; /* int */
uarg[2] = (intptr_t) p->data; /* void * */
*n_args = 3;
break;
}
/* jail */
case 338: {
struct jail_args *p = params;
uarg[0] = (intptr_t) p->jail; /* struct jail * */
*n_args = 1;
break;
}
2010-08-30 14:26:02 +00:00
/* nnpfs_syscall */
case 339: {
struct nnpfs_syscall_args *p = params;
iarg[0] = p->operation; /* int */
uarg[1] = (intptr_t) p->a_pathP; /* char * */
iarg[2] = p->a_opcode; /* int */
uarg[3] = (intptr_t) p->a_paramsP; /* void * */
iarg[4] = p->a_followSymlinks; /* int */
*n_args = 5;
break;
}
/* sigprocmask */
case 340: {
struct sigprocmask_args *p = params;
iarg[0] = p->how; /* int */
uarg[1] = (intptr_t) p->set; /* const sigset_t * */
uarg[2] = (intptr_t) p->oset; /* sigset_t * */
*n_args = 3;
break;
}
/* sigsuspend */
case 341: {
struct sigsuspend_args *p = params;
uarg[0] = (intptr_t) p->sigmask; /* const sigset_t * */
*n_args = 1;
break;
}
/* sigpending */
case 343: {
struct sigpending_args *p = params;
uarg[0] = (intptr_t) p->set; /* sigset_t * */
*n_args = 1;
break;
}
/* sigtimedwait */
case 345: {
struct sigtimedwait_args *p = params;
uarg[0] = (intptr_t) p->set; /* const sigset_t * */
uarg[1] = (intptr_t) p->info; /* siginfo_t * */
uarg[2] = (intptr_t) p->timeout; /* const struct timespec * */
*n_args = 3;
break;
}
/* sigwaitinfo */
case 346: {
struct sigwaitinfo_args *p = params;
uarg[0] = (intptr_t) p->set; /* const sigset_t * */
uarg[1] = (intptr_t) p->info; /* siginfo_t * */
*n_args = 2;
break;
}
/* __acl_get_file */
case 347: {
struct __acl_get_file_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->type; /* acl_type_t */
uarg[2] = (intptr_t) p->aclp; /* struct acl * */
*n_args = 3;
break;
}
/* __acl_set_file */
case 348: {
struct __acl_set_file_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->type; /* acl_type_t */
uarg[2] = (intptr_t) p->aclp; /* struct acl * */
*n_args = 3;
break;
}
/* __acl_get_fd */
case 349: {
struct __acl_get_fd_args *p = params;
iarg[0] = p->filedes; /* int */
iarg[1] = p->type; /* acl_type_t */
uarg[2] = (intptr_t) p->aclp; /* struct acl * */
*n_args = 3;
break;
}
/* __acl_set_fd */
case 350: {
struct __acl_set_fd_args *p = params;
iarg[0] = p->filedes; /* int */
iarg[1] = p->type; /* acl_type_t */
uarg[2] = (intptr_t) p->aclp; /* struct acl * */
*n_args = 3;
break;
}
/* __acl_delete_file */
case 351: {
struct __acl_delete_file_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->type; /* acl_type_t */
*n_args = 2;
break;
}
/* __acl_delete_fd */
case 352: {
struct __acl_delete_fd_args *p = params;
iarg[0] = p->filedes; /* int */
iarg[1] = p->type; /* acl_type_t */
*n_args = 2;
break;
}
/* __acl_aclcheck_file */
case 353: {
struct __acl_aclcheck_file_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->type; /* acl_type_t */
uarg[2] = (intptr_t) p->aclp; /* struct acl * */
*n_args = 3;
break;
}
/* __acl_aclcheck_fd */
case 354: {
struct __acl_aclcheck_fd_args *p = params;
iarg[0] = p->filedes; /* int */
iarg[1] = p->type; /* acl_type_t */
uarg[2] = (intptr_t) p->aclp; /* struct acl * */
*n_args = 3;
break;
}
/* extattrctl */
case 355: {
struct extattrctl_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->cmd; /* int */
uarg[2] = (intptr_t) p->filename; /* const char * */
iarg[3] = p->attrnamespace; /* int */
uarg[4] = (intptr_t) p->attrname; /* const char * */
*n_args = 5;
break;
}
/* extattr_set_file */
case 356: {
struct extattr_set_file_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->attrname; /* const char * */
uarg[3] = (intptr_t) p->data; /* void * */
uarg[4] = p->nbytes; /* size_t */
*n_args = 5;
break;
}
/* extattr_get_file */
case 357: {
struct extattr_get_file_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->attrname; /* const char * */
uarg[3] = (intptr_t) p->data; /* void * */
uarg[4] = p->nbytes; /* size_t */
*n_args = 5;
break;
}
/* extattr_delete_file */
case 358: {
struct extattr_delete_file_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->attrname; /* const char * */
*n_args = 3;
break;
}
/* aio_waitcomplete */
case 359: {
struct aio_waitcomplete_args *p = params;
uarg[0] = (intptr_t) p->aiocbp; /* struct aiocb ** */
uarg[1] = (intptr_t) p->timeout; /* struct timespec * */
*n_args = 2;
break;
}
/* getresuid */
case 360: {
struct getresuid_args *p = params;
uarg[0] = (intptr_t) p->ruid; /* uid_t * */
uarg[1] = (intptr_t) p->euid; /* uid_t * */
uarg[2] = (intptr_t) p->suid; /* uid_t * */
*n_args = 3;
break;
}
/* getresgid */
case 361: {
struct getresgid_args *p = params;
uarg[0] = (intptr_t) p->rgid; /* gid_t * */
uarg[1] = (intptr_t) p->egid; /* gid_t * */
uarg[2] = (intptr_t) p->sgid; /* gid_t * */
*n_args = 3;
break;
}
/* kqueue */
case 362: {
*n_args = 0;
break;
}
/* extattr_set_fd */
case 371: {
struct extattr_set_fd_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->attrname; /* const char * */
uarg[3] = (intptr_t) p->data; /* void * */
uarg[4] = p->nbytes; /* size_t */
*n_args = 5;
break;
}
/* extattr_get_fd */
case 372: {
struct extattr_get_fd_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->attrname; /* const char * */
uarg[3] = (intptr_t) p->data; /* void * */
uarg[4] = p->nbytes; /* size_t */
*n_args = 5;
break;
}
/* extattr_delete_fd */
case 373: {
struct extattr_delete_fd_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->attrname; /* const char * */
*n_args = 3;
break;
}
/* __setugid */
case 374: {
struct __setugid_args *p = params;
iarg[0] = p->flag; /* int */
*n_args = 1;
break;
}
/* eaccess */
case 376: {
struct eaccess_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
2011-11-19 06:36:11 +00:00
iarg[1] = p->amode; /* int */
*n_args = 2;
break;
}
2010-08-30 14:26:02 +00:00
/* afs3_syscall */
case 377: {
struct afs3_syscall_args *p = params;
iarg[0] = p->syscall; /* long */
iarg[1] = p->parm1; /* long */
iarg[2] = p->parm2; /* long */
iarg[3] = p->parm3; /* long */
iarg[4] = p->parm4; /* long */
iarg[5] = p->parm5; /* long */
iarg[6] = p->parm6; /* long */
*n_args = 7;
break;
}
/* nmount */
case 378: {
struct nmount_args *p = params;
uarg[0] = (intptr_t) p->iovp; /* struct iovec * */
uarg[1] = p->iovcnt; /* unsigned int */
iarg[2] = p->flags; /* int */
*n_args = 3;
break;
}
/* __mac_get_proc */
case 384: {
struct __mac_get_proc_args *p = params;
uarg[0] = (intptr_t) p->mac_p; /* struct mac * */
*n_args = 1;
break;
}
/* __mac_set_proc */
case 385: {
struct __mac_set_proc_args *p = params;
uarg[0] = (intptr_t) p->mac_p; /* struct mac * */
*n_args = 1;
break;
}
/* __mac_get_fd */
case 386: {
struct __mac_get_fd_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->mac_p; /* struct mac * */
*n_args = 2;
break;
}
/* __mac_get_file */
case 387: {
struct __mac_get_file_args *p = params;
uarg[0] = (intptr_t) p->path_p; /* const char * */
uarg[1] = (intptr_t) p->mac_p; /* struct mac * */
*n_args = 2;
break;
}
/* __mac_set_fd */
case 388: {
struct __mac_set_fd_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->mac_p; /* struct mac * */
*n_args = 2;
break;
}
/* __mac_set_file */
case 389: {
struct __mac_set_file_args *p = params;
uarg[0] = (intptr_t) p->path_p; /* const char * */
uarg[1] = (intptr_t) p->mac_p; /* struct mac * */
*n_args = 2;
break;
}
/* kenv */
case 390: {
struct kenv_args *p = params;
iarg[0] = p->what; /* int */
uarg[1] = (intptr_t) p->name; /* const char * */
uarg[2] = (intptr_t) p->value; /* char * */
iarg[3] = p->len; /* int */
*n_args = 4;
break;
}
/* lchflags */
case 391: {
struct lchflags_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
uarg[1] = p->flags; /* u_long */
*n_args = 2;
break;
}
/* uuidgen */
case 392: {
struct uuidgen_args *p = params;
uarg[0] = (intptr_t) p->store; /* struct uuid * */
iarg[1] = p->count; /* int */
*n_args = 2;
break;
}
/* sendfile */
case 393: {
struct sendfile_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->s; /* int */
iarg[2] = p->offset; /* off_t */
uarg[3] = p->nbytes; /* size_t */
uarg[4] = (intptr_t) p->hdtr; /* struct sf_hdtr * */
uarg[5] = (intptr_t) p->sbytes; /* off_t * */
iarg[6] = p->flags; /* int */
*n_args = 7;
break;
}
/* mac_syscall */
case 394: {
struct mac_syscall_args *p = params;
uarg[0] = (intptr_t) p->policy; /* const char * */
iarg[1] = p->call; /* int */
uarg[2] = (intptr_t) p->arg; /* void * */
*n_args = 3;
break;
}
/* ksem_close */
case 400: {
struct ksem_close_args *p = params;
iarg[0] = p->id; /* semid_t */
*n_args = 1;
break;
}
/* ksem_post */
case 401: {
struct ksem_post_args *p = params;
iarg[0] = p->id; /* semid_t */
*n_args = 1;
break;
}
/* ksem_wait */
case 402: {
struct ksem_wait_args *p = params;
iarg[0] = p->id; /* semid_t */
*n_args = 1;
break;
}
/* ksem_trywait */
case 403: {
struct ksem_trywait_args *p = params;
iarg[0] = p->id; /* semid_t */
*n_args = 1;
break;
}
/* ksem_init */
case 404: {
struct ksem_init_args *p = params;
uarg[0] = (intptr_t) p->idp; /* semid_t * */
uarg[1] = p->value; /* unsigned int */
*n_args = 2;
break;
}
/* ksem_open */
case 405: {
struct ksem_open_args *p = params;
uarg[0] = (intptr_t) p->idp; /* semid_t * */
uarg[1] = (intptr_t) p->name; /* const char * */
iarg[2] = p->oflag; /* int */
iarg[3] = p->mode; /* mode_t */
uarg[4] = p->value; /* unsigned int */
*n_args = 5;
break;
}
/* ksem_unlink */
case 406: {
struct ksem_unlink_args *p = params;
uarg[0] = (intptr_t) p->name; /* const char * */
*n_args = 1;
break;
}
/* ksem_getvalue */
case 407: {
struct ksem_getvalue_args *p = params;
iarg[0] = p->id; /* semid_t */
uarg[1] = (intptr_t) p->val; /* int * */
*n_args = 2;
break;
}
/* ksem_destroy */
case 408: {
struct ksem_destroy_args *p = params;
iarg[0] = p->id; /* semid_t */
*n_args = 1;
break;
}
/* __mac_get_pid */
case 409: {
struct __mac_get_pid_args *p = params;
iarg[0] = p->pid; /* pid_t */
uarg[1] = (intptr_t) p->mac_p; /* struct mac * */
*n_args = 2;
break;
}
/* __mac_get_link */
case 410: {
struct __mac_get_link_args *p = params;
uarg[0] = (intptr_t) p->path_p; /* const char * */
uarg[1] = (intptr_t) p->mac_p; /* struct mac * */
*n_args = 2;
break;
}
/* __mac_set_link */
case 411: {
struct __mac_set_link_args *p = params;
uarg[0] = (intptr_t) p->path_p; /* const char * */
uarg[1] = (intptr_t) p->mac_p; /* struct mac * */
*n_args = 2;
break;
}
/* extattr_set_link */
case 412: {
struct extattr_set_link_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->attrname; /* const char * */
uarg[3] = (intptr_t) p->data; /* void * */
uarg[4] = p->nbytes; /* size_t */
*n_args = 5;
break;
}
/* extattr_get_link */
case 413: {
struct extattr_get_link_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->attrname; /* const char * */
uarg[3] = (intptr_t) p->data; /* void * */
uarg[4] = p->nbytes; /* size_t */
*n_args = 5;
break;
}
/* extattr_delete_link */
case 414: {
struct extattr_delete_link_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->attrname; /* const char * */
*n_args = 3;
break;
}
/* __mac_execve */
case 415: {
struct __mac_execve_args *p = params;
uarg[0] = (intptr_t) p->fname; /* const char * */
uarg[1] = (intptr_t) p->argv; /* char ** */
uarg[2] = (intptr_t) p->envv; /* char ** */
uarg[3] = (intptr_t) p->mac_p; /* struct mac * */
*n_args = 4;
break;
}
/* sigaction */
case 416: {
struct sigaction_args *p = params;
iarg[0] = p->sig; /* int */
uarg[1] = (intptr_t) p->act; /* const struct sigaction * */
uarg[2] = (intptr_t) p->oact; /* struct sigaction * */
*n_args = 3;
break;
}
/* sigreturn */
case 417: {
struct sigreturn_args *p = params;
uarg[0] = (intptr_t) p->sigcntxp; /* const struct __ucontext * */
*n_args = 1;
break;
}
/* getcontext */
case 421: {
struct getcontext_args *p = params;
uarg[0] = (intptr_t) p->ucp; /* struct __ucontext * */
*n_args = 1;
break;
}
/* setcontext */
case 422: {
struct setcontext_args *p = params;
uarg[0] = (intptr_t) p->ucp; /* const struct __ucontext * */
*n_args = 1;
break;
}
/* swapcontext */
case 423: {
struct swapcontext_args *p = params;
uarg[0] = (intptr_t) p->oucp; /* struct __ucontext * */
uarg[1] = (intptr_t) p->ucp; /* const struct __ucontext * */
*n_args = 2;
break;
}
/* swapoff */
case 424: {
struct swapoff_args *p = params;
uarg[0] = (intptr_t) p->name; /* const char * */
*n_args = 1;
break;
}
/* __acl_get_link */
case 425: {
struct __acl_get_link_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->type; /* acl_type_t */
uarg[2] = (intptr_t) p->aclp; /* struct acl * */
*n_args = 3;
break;
}
/* __acl_set_link */
case 426: {
struct __acl_set_link_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->type; /* acl_type_t */
uarg[2] = (intptr_t) p->aclp; /* struct acl * */
*n_args = 3;
break;
}
/* __acl_delete_link */
case 427: {
struct __acl_delete_link_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->type; /* acl_type_t */
*n_args = 2;
break;
}
/* __acl_aclcheck_link */
case 428: {
struct __acl_aclcheck_link_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->type; /* acl_type_t */
uarg[2] = (intptr_t) p->aclp; /* struct acl * */
*n_args = 3;
break;
}
/* sigwait */
case 429: {
struct sigwait_args *p = params;
uarg[0] = (intptr_t) p->set; /* const sigset_t * */
uarg[1] = (intptr_t) p->sig; /* int * */
*n_args = 2;
break;
}
/* thr_create */
case 430: {
struct thr_create_args *p = params;
uarg[0] = (intptr_t) p->ctx; /* ucontext_t * */
uarg[1] = (intptr_t) p->id; /* long * */
iarg[2] = p->flags; /* int */
*n_args = 3;
break;
}
/* thr_exit */
case 431: {
struct thr_exit_args *p = params;
uarg[0] = (intptr_t) p->state; /* long * */
*n_args = 1;
break;
}
/* thr_self */
case 432: {
struct thr_self_args *p = params;
uarg[0] = (intptr_t) p->id; /* long * */
*n_args = 1;
break;
}
/* thr_kill */
case 433: {
struct thr_kill_args *p = params;
iarg[0] = p->id; /* long */
iarg[1] = p->sig; /* int */
*n_args = 2;
break;
}
/* jail_attach */
case 436: {
struct jail_attach_args *p = params;
iarg[0] = p->jid; /* int */
*n_args = 1;
break;
}
/* extattr_list_fd */
case 437: {
struct extattr_list_fd_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->data; /* void * */
uarg[3] = p->nbytes; /* size_t */
*n_args = 4;
break;
}
/* extattr_list_file */
case 438: {
struct extattr_list_file_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->data; /* void * */
uarg[3] = p->nbytes; /* size_t */
*n_args = 4;
break;
}
/* extattr_list_link */
case 439: {
struct extattr_list_link_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->attrnamespace; /* int */
uarg[2] = (intptr_t) p->data; /* void * */
uarg[3] = p->nbytes; /* size_t */
*n_args = 4;
break;
}
/* ksem_timedwait */
case 441: {
struct ksem_timedwait_args *p = params;
iarg[0] = p->id; /* semid_t */
uarg[1] = (intptr_t) p->abstime; /* const struct timespec * */
*n_args = 2;
break;
}
/* thr_suspend */
case 442: {
struct thr_suspend_args *p = params;
uarg[0] = (intptr_t) p->timeout; /* const struct timespec * */
*n_args = 1;
break;
}
/* thr_wake */
case 443: {
struct thr_wake_args *p = params;
iarg[0] = p->id; /* long */
*n_args = 1;
break;
}
/* kldunloadf */
case 444: {
struct kldunloadf_args *p = params;
iarg[0] = p->fileid; /* int */
iarg[1] = p->flags; /* int */
*n_args = 2;
break;
}
/* audit */
case 445: {
struct audit_args *p = params;
uarg[0] = (intptr_t) p->record; /* const void * */
uarg[1] = p->length; /* u_int */
*n_args = 2;
break;
}
/* auditon */
case 446: {
struct auditon_args *p = params;
iarg[0] = p->cmd; /* int */
uarg[1] = (intptr_t) p->data; /* void * */
uarg[2] = p->length; /* u_int */
*n_args = 3;
break;
}
/* getauid */
case 447: {
struct getauid_args *p = params;
uarg[0] = (intptr_t) p->auid; /* uid_t * */
*n_args = 1;
break;
}
/* setauid */
case 448: {
struct setauid_args *p = params;
uarg[0] = (intptr_t) p->auid; /* uid_t * */
*n_args = 1;
break;
}
/* getaudit */
case 449: {
struct getaudit_args *p = params;
uarg[0] = (intptr_t) p->auditinfo; /* struct auditinfo * */
*n_args = 1;
break;
}
/* setaudit */
case 450: {
struct setaudit_args *p = params;
uarg[0] = (intptr_t) p->auditinfo; /* struct auditinfo * */
*n_args = 1;
break;
}
/* getaudit_addr */
case 451: {
struct getaudit_addr_args *p = params;
uarg[0] = (intptr_t) p->auditinfo_addr; /* struct auditinfo_addr * */
uarg[1] = p->length; /* u_int */
*n_args = 2;
break;
}
/* setaudit_addr */
case 452: {
struct setaudit_addr_args *p = params;
uarg[0] = (intptr_t) p->auditinfo_addr; /* struct auditinfo_addr * */
uarg[1] = p->length; /* u_int */
*n_args = 2;
break;
}
/* auditctl */
case 453: {
struct auditctl_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
*n_args = 1;
break;
}
/* _umtx_op */
case 454: {
struct _umtx_op_args *p = params;
2006-08-28 04:28:25 +00:00
uarg[0] = (intptr_t) p->obj; /* void * */
iarg[1] = p->op; /* int */
2006-10-17 02:28:58 +00:00
uarg[2] = p->val; /* u_long */
2006-08-28 04:28:25 +00:00
uarg[3] = (intptr_t) p->uaddr1; /* void * */
uarg[4] = (intptr_t) p->uaddr2; /* void * */
*n_args = 5;
break;
}
/* thr_new */
case 455: {
struct thr_new_args *p = params;
uarg[0] = (intptr_t) p->param; /* struct thr_param * */
iarg[1] = p->param_size; /* int */
*n_args = 2;
break;
}
/* sigqueue */
case 456: {
struct sigqueue_args *p = params;
iarg[0] = p->pid; /* pid_t */
iarg[1] = p->signum; /* int */
uarg[2] = (intptr_t) p->value; /* void * */
*n_args = 3;
break;
}
/* kmq_open */
case 457: {
struct kmq_open_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->flags; /* int */
iarg[2] = p->mode; /* mode_t */
uarg[3] = (intptr_t) p->attr; /* const struct mq_attr * */
*n_args = 4;
break;
}
/* kmq_setattr */
case 458: {
struct kmq_setattr_args *p = params;
iarg[0] = p->mqd; /* int */
uarg[1] = (intptr_t) p->attr; /* const struct mq_attr * */
uarg[2] = (intptr_t) p->oattr; /* struct mq_attr * */
*n_args = 3;
break;
}
/* kmq_timedreceive */
case 459: {
struct kmq_timedreceive_args *p = params;
iarg[0] = p->mqd; /* int */
uarg[1] = (intptr_t) p->msg_ptr; /* char * */
uarg[2] = p->msg_len; /* size_t */
uarg[3] = (intptr_t) p->msg_prio; /* unsigned * */
uarg[4] = (intptr_t) p->abs_timeout; /* const struct timespec * */
*n_args = 5;
break;
}
/* kmq_timedsend */
case 460: {
struct kmq_timedsend_args *p = params;
iarg[0] = p->mqd; /* int */
uarg[1] = (intptr_t) p->msg_ptr; /* const char * */
uarg[2] = p->msg_len; /* size_t */
uarg[3] = p->msg_prio; /* unsigned */
uarg[4] = (intptr_t) p->abs_timeout; /* const struct timespec * */
*n_args = 5;
break;
}
/* kmq_notify */
case 461: {
struct kmq_notify_args *p = params;
iarg[0] = p->mqd; /* int */
uarg[1] = (intptr_t) p->sigev; /* const struct sigevent * */
*n_args = 2;
break;
}
/* kmq_unlink */
case 462: {
struct kmq_unlink_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
*n_args = 1;
break;
}
/* abort2 */
case 463: {
struct abort2_args *p = params;
uarg[0] = (intptr_t) p->why; /* const char * */
iarg[1] = p->nargs; /* int */
uarg[2] = (intptr_t) p->args; /* void ** */
*n_args = 3;
break;
}
/* thr_set_name */
case 464: {
struct thr_set_name_args *p = params;
iarg[0] = p->id; /* long */
uarg[1] = (intptr_t) p->name; /* const char * */
*n_args = 2;
break;
}
/* aio_fsync */
case 465: {
struct aio_fsync_args *p = params;
iarg[0] = p->op; /* int */
uarg[1] = (intptr_t) p->aiocbp; /* struct aiocb * */
*n_args = 2;
break;
}
2006-09-21 04:19:48 +00:00
/* rtprio_thread */
case 466: {
2006-09-21 04:19:48 +00:00
struct rtprio_thread_args *p = params;
iarg[0] = p->function; /* int */
iarg[1] = p->lwpid; /* lwpid_t */
uarg[2] = (intptr_t) p->rtp; /* struct rtprio * */
*n_args = 3;
break;
}
/* sctp_peeloff */
case 471: {
struct sctp_peeloff_args *p = params;
iarg[0] = p->sd; /* int */
uarg[1] = p->name; /* uint32_t */
*n_args = 2;
break;
}
/* sctp_generic_sendmsg */
case 472: {
struct sctp_generic_sendmsg_args *p = params;
iarg[0] = p->sd; /* int */
uarg[1] = (intptr_t) p->msg; /* void * */
iarg[2] = p->mlen; /* int */
uarg[3] = (intptr_t) p->to; /* struct sockaddr * */
iarg[4] = p->tolen; /* __socklen_t */
uarg[5] = (intptr_t) p->sinfo; /* struct sctp_sndrcvinfo * */
iarg[6] = p->flags; /* int */
*n_args = 7;
break;
}
/* sctp_generic_sendmsg_iov */
case 473: {
struct sctp_generic_sendmsg_iov_args *p = params;
iarg[0] = p->sd; /* int */
uarg[1] = (intptr_t) p->iov; /* struct iovec * */
iarg[2] = p->iovlen; /* int */
uarg[3] = (intptr_t) p->to; /* struct sockaddr * */
iarg[4] = p->tolen; /* __socklen_t */
uarg[5] = (intptr_t) p->sinfo; /* struct sctp_sndrcvinfo * */
iarg[6] = p->flags; /* int */
*n_args = 7;
break;
}
/* sctp_generic_recvmsg */
case 474: {
struct sctp_generic_recvmsg_args *p = params;
iarg[0] = p->sd; /* int */
uarg[1] = (intptr_t) p->iov; /* struct iovec * */
iarg[2] = p->iovlen; /* int */
uarg[3] = (intptr_t) p->from; /* struct sockaddr * */
uarg[4] = (intptr_t) p->fromlenaddr; /* __socklen_t * */
uarg[5] = (intptr_t) p->sinfo; /* struct sctp_sndrcvinfo * */
uarg[6] = (intptr_t) p->msg_flags; /* int * */
*n_args = 7;
break;
}
/* pread */
case 475: {
struct pread_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->buf; /* void * */
uarg[2] = p->nbyte; /* size_t */
iarg[3] = p->offset; /* off_t */
*n_args = 4;
break;
}
/* pwrite */
case 476: {
struct pwrite_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->buf; /* const void * */
uarg[2] = p->nbyte; /* size_t */
iarg[3] = p->offset; /* off_t */
*n_args = 4;
break;
}
/* mmap */
case 477: {
struct mmap_args *p = params;
uarg[0] = (intptr_t) p->addr; /* void * */
uarg[1] = p->len; /* size_t */
iarg[2] = p->prot; /* int */
iarg[3] = p->flags; /* int */
iarg[4] = p->fd; /* int */
iarg[5] = p->pos; /* off_t */
*n_args = 6;
break;
}
/* lseek */
case 478: {
struct lseek_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->offset; /* off_t */
iarg[2] = p->whence; /* int */
*n_args = 3;
break;
}
/* truncate */
case 479: {
struct truncate_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->length; /* off_t */
*n_args = 2;
break;
}
/* ftruncate */
case 480: {
struct ftruncate_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->length; /* off_t */
*n_args = 2;
break;
}
2007-08-16 05:32:26 +00:00
/* thr_kill2 */
case 481: {
struct thr_kill2_args *p = params;
iarg[0] = p->pid; /* pid_t */
iarg[1] = p->id; /* long */
iarg[2] = p->sig; /* int */
*n_args = 3;
break;
}
/* shm_unlink */
case 483: {
struct shm_unlink_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
*n_args = 1;
break;
}
2008-03-02 07:41:10 +00:00
/* cpuset */
case 484: {
struct cpuset_args *p = params;
uarg[0] = (intptr_t) p->setid; /* cpusetid_t * */
*n_args = 1;
break;
}
/* cpuset_setid */
case 485: {
struct cpuset_setid_args *p = params;
iarg[0] = p->which; /* cpuwhich_t */
iarg[1] = p->id; /* id_t */
iarg[2] = p->setid; /* cpusetid_t */
*n_args = 3;
break;
}
/* cpuset_getid */
case 486: {
struct cpuset_getid_args *p = params;
iarg[0] = p->level; /* cpulevel_t */
iarg[1] = p->which; /* cpuwhich_t */
iarg[2] = p->id; /* id_t */
uarg[3] = (intptr_t) p->setid; /* cpusetid_t * */
*n_args = 4;
break;
}
/* cpuset_getaffinity */
case 487: {
struct cpuset_getaffinity_args *p = params;
iarg[0] = p->level; /* cpulevel_t */
iarg[1] = p->which; /* cpuwhich_t */
iarg[2] = p->id; /* id_t */
uarg[3] = p->cpusetsize; /* size_t */
uarg[4] = (intptr_t) p->mask; /* cpuset_t * */
2008-03-02 07:41:10 +00:00
*n_args = 5;
break;
}
/* cpuset_setaffinity */
case 488: {
struct cpuset_setaffinity_args *p = params;
iarg[0] = p->level; /* cpulevel_t */
iarg[1] = p->which; /* cpuwhich_t */
iarg[2] = p->id; /* id_t */
uarg[3] = p->cpusetsize; /* size_t */
uarg[4] = (intptr_t) p->mask; /* const cpuset_t * */
2008-03-02 07:41:10 +00:00
*n_args = 5;
break;
}
2008-03-31 12:12:27 +00:00
/* faccessat */
case 489: {
struct faccessat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2011-11-19 06:36:11 +00:00
iarg[2] = p->amode; /* int */
2008-03-31 12:12:27 +00:00
iarg[3] = p->flag; /* int */
*n_args = 4;
break;
}
/* fchmodat */
case 490: {
struct fchmodat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2008-03-31 12:12:27 +00:00
iarg[2] = p->mode; /* mode_t */
iarg[3] = p->flag; /* int */
*n_args = 4;
break;
}
/* fchownat */
case 491: {
struct fchownat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2008-03-31 12:12:27 +00:00
uarg[2] = p->uid; /* uid_t */
iarg[3] = p->gid; /* gid_t */
iarg[4] = p->flag; /* int */
*n_args = 5;
break;
}
/* fexecve */
case 492: {
struct fexecve_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->argv; /* char ** */
uarg[2] = (intptr_t) p->envv; /* char ** */
*n_args = 3;
break;
}
/* futimesat */
case 494: {
struct futimesat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2008-03-31 12:12:27 +00:00
uarg[2] = (intptr_t) p->times; /* struct timeval * */
*n_args = 3;
break;
}
/* linkat */
case 495: {
struct linkat_args *p = params;
iarg[0] = p->fd1; /* int */
uarg[1] = (intptr_t) p->path1; /* const char * */
2008-03-31 12:12:27 +00:00
iarg[2] = p->fd2; /* int */
uarg[3] = (intptr_t) p->path2; /* const char * */
2008-03-31 12:12:27 +00:00
iarg[4] = p->flag; /* int */
*n_args = 5;
break;
}
/* mkdirat */
case 496: {
struct mkdirat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2008-03-31 12:12:27 +00:00
iarg[2] = p->mode; /* mode_t */
*n_args = 3;
break;
}
/* mkfifoat */
case 497: {
struct mkfifoat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2008-03-31 12:12:27 +00:00
iarg[2] = p->mode; /* mode_t */
*n_args = 3;
break;
}
/* openat */
case 499: {
struct openat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2008-03-31 12:12:27 +00:00
iarg[2] = p->flag; /* int */
iarg[3] = p->mode; /* mode_t */
*n_args = 4;
break;
}
/* readlinkat */
case 500: {
struct readlinkat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2008-03-31 12:12:27 +00:00
uarg[2] = (intptr_t) p->buf; /* char * */
uarg[3] = p->bufsize; /* size_t */
*n_args = 4;
break;
}
/* renameat */
case 501: {
struct renameat_args *p = params;
iarg[0] = p->oldfd; /* int */
uarg[1] = (intptr_t) p->old; /* const char * */
2008-03-31 12:12:27 +00:00
iarg[2] = p->newfd; /* int */
uarg[3] = (intptr_t) p->new; /* const char * */
2008-03-31 12:12:27 +00:00
*n_args = 4;
break;
}
/* symlinkat */
case 502: {
struct symlinkat_args *p = params;
uarg[0] = (intptr_t) p->path1; /* const char * */
2008-03-31 12:12:27 +00:00
iarg[1] = p->fd; /* int */
uarg[2] = (intptr_t) p->path2; /* const char * */
2008-03-31 12:12:27 +00:00
*n_args = 3;
break;
}
/* unlinkat */
case 503: {
struct unlinkat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2008-03-31 12:12:27 +00:00
iarg[2] = p->flag; /* int */
*n_args = 3;
break;
}
Integrate the new MPSAFE TTY layer to the FreeBSD operating system. The last half year I've been working on a replacement TTY layer for the FreeBSD kernel. The new TTY layer was designed to improve the following: - Improved driver model: The old TTY layer has a driver model that is not abstract enough to make it friendly to use. A good example is the output path, where the device drivers directly access the output buffers. This means that an in-kernel PPP implementation must always convert network buffers into TTY buffers. If a PPP implementation would be built on top of the new TTY layer (still needs a hooks layer, though), it would allow the PPP implementation to directly hand the data to the TTY driver. - Improved hotplugging: With the old TTY layer, it isn't entirely safe to destroy TTY's from the system. This implementation has a two-step destructing design, where the driver first abandons the TTY. After all threads have left the TTY, the TTY layer calls a routine in the driver, which can be used to free resources (unit numbers, etc). The pts(4) driver also implements this feature, which means posix_openpt() will now return PTY's that are created on the fly. - Improved performance: One of the major improvements is the per-TTY mutex, which is expected to improve scalability when compared to the old Giant locking. Another change is the unbuffered copying to userspace, which is both used on TTY device nodes and PTY masters. Upgrading should be quite straightforward. Unlike previous versions, existing kernel configuration files do not need to be changed, except when they reference device drivers that are listed in UPDATING. Obtained from: //depot/projects/mpsafetty/... Approved by: philip (ex-mentor) Discussed: on the lists, at BSDCan, at the DevSummit Sponsored by: Snow B.V., the Netherlands dcons(4) fixed by: kan
2008-08-20 08:31:58 +00:00
/* posix_openpt */
case 504: {
struct posix_openpt_args *p = params;
iarg[0] = p->flags; /* int */
*n_args = 1;
break;
}
2008-11-03 10:39:35 +00:00
/* gssd_syscall */
case 505: {
struct gssd_syscall_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
2008-11-03 10:39:35 +00:00
*n_args = 1;
break;
}
/* jail_get */
case 506: {
struct jail_get_args *p = params;
uarg[0] = (intptr_t) p->iovp; /* struct iovec * */
uarg[1] = p->iovcnt; /* unsigned int */
iarg[2] = p->flags; /* int */
*n_args = 3;
break;
}
/* jail_set */
case 507: {
struct jail_set_args *p = params;
uarg[0] = (intptr_t) p->iovp; /* struct iovec * */
uarg[1] = p->iovcnt; /* unsigned int */
iarg[2] = p->flags; /* int */
*n_args = 3;
break;
}
/* jail_remove */
case 508: {
struct jail_remove_args *p = params;
iarg[0] = p->jid; /* int */
*n_args = 1;
break;
}
2009-06-15 20:40:23 +00:00
/* closefrom */
case 509: {
struct closefrom_args *p = params;
iarg[0] = p->lowfd; /* int */
*n_args = 1;
break;
}
2009-06-24 21:54:08 +00:00
/* __semctl */
case 510: {
struct __semctl_args *p = params;
iarg[0] = p->semid; /* int */
iarg[1] = p->semnum; /* int */
iarg[2] = p->cmd; /* int */
uarg[3] = (intptr_t) p->arg; /* union semun * */
*n_args = 4;
break;
}
/* msgctl */
case 511: {
struct msgctl_args *p = params;
iarg[0] = p->msqid; /* int */
iarg[1] = p->cmd; /* int */
uarg[2] = (intptr_t) p->buf; /* struct msqid_ds * */
*n_args = 3;
break;
}
/* shmctl */
case 512: {
struct shmctl_args *p = params;
iarg[0] = p->shmid; /* int */
iarg[1] = p->cmd; /* int */
uarg[2] = (intptr_t) p->buf; /* struct shmid_ds * */
*n_args = 3;
break;
}
/* lpathconf */
case 513: {
struct lpathconf_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->name; /* int */
*n_args = 2;
break;
}
/* __cap_rights_get */
case 515: {
struct __cap_rights_get_args *p = params;
iarg[0] = p->version; /* int */
iarg[1] = p->fd; /* int */
uarg[2] = (intptr_t) p->rightsp; /* cap_rights_t * */
*n_args = 3;
break;
}
/* cap_enter */
case 516: {
*n_args = 0;
break;
}
/* cap_getmode */
case 517: {
struct cap_getmode_args *p = params;
uarg[0] = (intptr_t) p->modep; /* u_int * */
*n_args = 1;
break;
}
/* pdfork */
case 518: {
struct pdfork_args *p = params;
uarg[0] = (intptr_t) p->fdp; /* int * */
iarg[1] = p->flags; /* int */
*n_args = 2;
break;
}
/* pdkill */
case 519: {
struct pdkill_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->signum; /* int */
*n_args = 2;
break;
}
/* pdgetpid */
case 520: {
struct pdgetpid_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->pidp; /* pid_t * */
*n_args = 2;
break;
}
2009-10-27 11:01:15 +00:00
/* pselect */
case 522: {
struct pselect_args *p = params;
iarg[0] = p->nd; /* int */
uarg[1] = (intptr_t) p->in; /* fd_set * */
uarg[2] = (intptr_t) p->ou; /* fd_set * */
uarg[3] = (intptr_t) p->ex; /* fd_set * */
uarg[4] = (intptr_t) p->ts; /* const struct timespec * */
uarg[5] = (intptr_t) p->sm; /* const sigset_t * */
*n_args = 6;
break;
}
2011-03-05 12:46:24 +00:00
/* getloginclass */
case 523: {
struct getloginclass_args *p = params;
uarg[0] = (intptr_t) p->namebuf; /* char * */
uarg[1] = p->namelen; /* size_t */
*n_args = 2;
break;
}
/* setloginclass */
case 524: {
struct setloginclass_args *p = params;
uarg[0] = (intptr_t) p->namebuf; /* const char * */
*n_args = 1;
break;
}
2011-03-30 17:59:54 +00:00
/* rctl_get_racct */
case 525: {
struct rctl_get_racct_args *p = params;
uarg[0] = (intptr_t) p->inbufp; /* const void * */
uarg[1] = p->inbuflen; /* size_t */
uarg[2] = (intptr_t) p->outbufp; /* void * */
uarg[3] = p->outbuflen; /* size_t */
*n_args = 4;
break;
}
/* rctl_get_rules */
case 526: {
struct rctl_get_rules_args *p = params;
uarg[0] = (intptr_t) p->inbufp; /* const void * */
uarg[1] = p->inbuflen; /* size_t */
uarg[2] = (intptr_t) p->outbufp; /* void * */
uarg[3] = p->outbuflen; /* size_t */
*n_args = 4;
break;
}
/* rctl_get_limits */
case 527: {
struct rctl_get_limits_args *p = params;
uarg[0] = (intptr_t) p->inbufp; /* const void * */
uarg[1] = p->inbuflen; /* size_t */
uarg[2] = (intptr_t) p->outbufp; /* void * */
uarg[3] = p->outbuflen; /* size_t */
*n_args = 4;
break;
}
/* rctl_add_rule */
case 528: {
struct rctl_add_rule_args *p = params;
uarg[0] = (intptr_t) p->inbufp; /* const void * */
uarg[1] = p->inbuflen; /* size_t */
uarg[2] = (intptr_t) p->outbufp; /* void * */
uarg[3] = p->outbuflen; /* size_t */
*n_args = 4;
break;
}
/* rctl_remove_rule */
case 529: {
struct rctl_remove_rule_args *p = params;
uarg[0] = (intptr_t) p->inbufp; /* const void * */
uarg[1] = p->inbuflen; /* size_t */
uarg[2] = (intptr_t) p->outbufp; /* void * */
uarg[3] = p->outbuflen; /* size_t */
*n_args = 4;
break;
}
2011-04-18 16:32:47 +00:00
/* posix_fallocate */
case 530: {
struct posix_fallocate_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->offset; /* off_t */
iarg[2] = p->len; /* off_t */
*n_args = 3;
break;
}
2011-11-04 04:06:31 +00:00
/* posix_fadvise */
case 531: {
struct posix_fadvise_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->offset; /* off_t */
iarg[2] = p->len; /* off_t */
iarg[3] = p->advice; /* int */
*n_args = 4;
break;
}
2012-11-13 12:53:41 +00:00
/* wait6 */
case 532: {
struct wait6_args *p = params;
2013-09-12 18:03:51 +00:00
iarg[0] = p->idtype; /* idtype_t */
2013-05-21 11:41:08 +00:00
iarg[1] = p->id; /* id_t */
2012-11-13 12:53:41 +00:00
uarg[2] = (intptr_t) p->status; /* int * */
iarg[3] = p->options; /* int */
uarg[4] = (intptr_t) p->wrusage; /* struct __wrusage * */
uarg[5] = (intptr_t) p->info; /* siginfo_t * */
*n_args = 6;
break;
}
2013-03-02 00:55:09 +00:00
/* cap_rights_limit */
case 533: {
struct cap_rights_limit_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->rightsp; /* cap_rights_t * */
2013-03-02 00:55:09 +00:00
*n_args = 2;
break;
}
/* cap_ioctls_limit */
case 534: {
struct cap_ioctls_limit_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->cmds; /* const u_long * */
uarg[2] = p->ncmds; /* size_t */
*n_args = 3;
break;
}
/* cap_ioctls_get */
case 535: {
struct cap_ioctls_get_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->cmds; /* u_long * */
uarg[2] = p->maxcmds; /* size_t */
*n_args = 3;
break;
}
/* cap_fcntls_limit */
case 536: {
struct cap_fcntls_limit_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = p->fcntlrights; /* uint32_t */
*n_args = 2;
break;
}
/* cap_fcntls_get */
case 537: {
struct cap_fcntls_get_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->fcntlrightsp; /* uint32_t * */
*n_args = 2;
break;
}
2013-03-02 21:12:54 +00:00
/* bindat */
case 538: {
struct bindat_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->s; /* int */
uarg[2] = (intptr_t) p->name; /* const struct sockaddr * */
2013-03-02 21:12:54 +00:00
iarg[3] = p->namelen; /* int */
*n_args = 4;
break;
}
/* connectat */
case 539: {
struct connectat_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->s; /* int */
uarg[2] = (intptr_t) p->name; /* const struct sockaddr * */
2013-03-02 21:12:54 +00:00
iarg[3] = p->namelen; /* int */
*n_args = 4;
break;
}
/* chflagsat */
case 540: {
struct chflagsat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
uarg[2] = p->flags; /* u_long */
iarg[3] = p->atflag; /* int */
*n_args = 4;
break;
}
2013-05-01 20:12:58 +00:00
/* accept4 */
case 541: {
struct accept4_args *p = params;
iarg[0] = p->s; /* int */
uarg[1] = (intptr_t) p->name; /* struct sockaddr * */
uarg[2] = (intptr_t) p->anamelen; /* __socklen_t * */
2013-05-01 20:12:58 +00:00
iarg[3] = p->flags; /* int */
*n_args = 4;
break;
}
2013-05-01 22:45:04 +00:00
/* pipe2 */
case 542: {
struct pipe2_args *p = params;
uarg[0] = (intptr_t) p->fildes; /* int * */
iarg[1] = p->flags; /* int */
*n_args = 2;
break;
}
/* aio_mlock */
case 543: {
struct aio_mlock_args *p = params;
uarg[0] = (intptr_t) p->aiocbp; /* struct aiocb * */
*n_args = 1;
break;
}
2013-09-19 18:56:00 +00:00
/* procctl */
case 544: {
struct procctl_args *p = params;
iarg[0] = p->idtype; /* idtype_t */
iarg[1] = p->id; /* id_t */
iarg[2] = p->com; /* int */
uarg[3] = (intptr_t) p->data; /* void * */
*n_args = 4;
break;
}
2014-11-13 05:28:06 +00:00
/* ppoll */
case 545: {
struct ppoll_args *p = params;
uarg[0] = (intptr_t) p->fds; /* struct pollfd * */
uarg[1] = p->nfds; /* u_int */
uarg[2] = (intptr_t) p->ts; /* const struct timespec * */
uarg[3] = (intptr_t) p->set; /* const sigset_t * */
*n_args = 4;
break;
}
2015-01-23 21:08:24 +00:00
/* futimens */
case 546: {
struct futimens_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->times; /* struct timespec * */
*n_args = 2;
break;
}
/* utimensat */
case 547: {
struct utimensat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2015-01-23 21:08:24 +00:00
uarg[2] = (intptr_t) p->times; /* struct timespec * */
iarg[3] = p->flag; /* int */
*n_args = 4;
break;
}
/* fdatasync */
case 550: {
struct fdatasync_args *p = params;
iarg[0] = p->fd; /* int */
*n_args = 1;
break;
}
2017-05-23 09:30:42 +00:00
/* fstat */
case 551: {
struct fstat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->sb; /* struct stat * */
*n_args = 2;
break;
}
/* fstatat */
case 552: {
struct fstatat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2017-05-23 09:30:42 +00:00
uarg[2] = (intptr_t) p->buf; /* struct stat * */
iarg[3] = p->flag; /* int */
*n_args = 4;
break;
}
/* fhstat */
case 553: {
struct fhstat_args *p = params;
uarg[0] = (intptr_t) p->u_fhp; /* const struct fhandle * */
uarg[1] = (intptr_t) p->sb; /* struct stat * */
*n_args = 2;
break;
}
/* getdirentries */
case 554: {
struct getdirentries_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->buf; /* char * */
uarg[2] = p->count; /* size_t */
uarg[3] = (intptr_t) p->basep; /* off_t * */
*n_args = 4;
break;
}
/* statfs */
case 555: {
struct statfs_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
2017-05-23 09:30:42 +00:00
uarg[1] = (intptr_t) p->buf; /* struct statfs * */
*n_args = 2;
break;
}
/* fstatfs */
case 556: {
struct fstatfs_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->buf; /* struct statfs * */
*n_args = 2;
break;
}
/* getfsstat */
case 557: {
struct getfsstat_args *p = params;
uarg[0] = (intptr_t) p->buf; /* struct statfs * */
iarg[1] = p->bufsize; /* long */
iarg[2] = p->mode; /* int */
*n_args = 3;
break;
}
/* fhstatfs */
case 558: {
struct fhstatfs_args *p = params;
uarg[0] = (intptr_t) p->u_fhp; /* const struct fhandle * */
uarg[1] = (intptr_t) p->buf; /* struct statfs * */
*n_args = 2;
break;
}
/* mknodat */
case 559: {
struct mknodat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
2017-05-23 09:30:42 +00:00
iarg[2] = p->mode; /* mode_t */
iarg[3] = p->dev; /* dev_t */
*n_args = 4;
break;
}
2017-06-17 00:58:19 +00:00
/* kevent */
case 560: {
struct kevent_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->changelist; /* struct kevent * */
iarg[2] = p->nchanges; /* int */
uarg[3] = (intptr_t) p->eventlist; /* struct kevent * */
iarg[4] = p->nevents; /* int */
uarg[5] = (intptr_t) p->timeout; /* const struct timespec * */
*n_args = 6;
break;
}
2018-01-12 23:06:35 +00:00
/* cpuset_getdomain */
case 561: {
struct cpuset_getdomain_args *p = params;
iarg[0] = p->level; /* cpulevel_t */
iarg[1] = p->which; /* cpuwhich_t */
iarg[2] = p->id; /* id_t */
uarg[3] = p->domainsetsize; /* size_t */
uarg[4] = (intptr_t) p->mask; /* domainset_t * */
uarg[5] = (intptr_t) p->policy; /* int * */
*n_args = 6;
break;
}
/* cpuset_setdomain */
case 562: {
struct cpuset_setdomain_args *p = params;
iarg[0] = p->level; /* cpulevel_t */
iarg[1] = p->which; /* cpuwhich_t */
iarg[2] = p->id; /* id_t */
uarg[3] = p->domainsetsize; /* size_t */
uarg[4] = (intptr_t) p->mask; /* domainset_t * */
iarg[5] = p->policy; /* int */
*n_args = 6;
break;
}
2018-03-21 01:17:01 +00:00
/* getrandom */
case 563: {
struct getrandom_args *p = params;
uarg[0] = (intptr_t) p->buf; /* void * */
uarg[1] = p->buflen; /* size_t */
uarg[2] = p->flags; /* unsigned int */
*n_args = 3;
break;
}
2018-12-07 15:19:00 +00:00
/* getfhat */
case 564: {
struct getfhat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* char * */
uarg[2] = (intptr_t) p->fhp; /* struct fhandle * */
iarg[3] = p->flags; /* int */
*n_args = 4;
break;
}
/* fhlink */
case 565: {
struct fhlink_args *p = params;
uarg[0] = (intptr_t) p->fhp; /* struct fhandle * */
uarg[1] = (intptr_t) p->to; /* const char * */
*n_args = 2;
break;
}
/* fhlinkat */
case 566: {
struct fhlinkat_args *p = params;
uarg[0] = (intptr_t) p->fhp; /* struct fhandle * */
iarg[1] = p->tofd; /* int */
uarg[2] = (intptr_t) p->to; /* const char * */
*n_args = 3;
break;
}
/* fhreadlink */
case 567: {
struct fhreadlink_args *p = params;
uarg[0] = (intptr_t) p->fhp; /* struct fhandle * */
uarg[1] = (intptr_t) p->buf; /* char * */
uarg[2] = p->bufsize; /* size_t */
*n_args = 3;
break;
}
2019-04-06 09:37:10 +00:00
/* funlinkat */
case 568: {
struct funlinkat_args *p = params;
iarg[0] = p->dfd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
iarg[2] = p->fd; /* int */
iarg[3] = p->flag; /* int */
*n_args = 4;
break;
}
/* copy_file_range */
case 569: {
struct copy_file_range_args *p = params;
iarg[0] = p->infd; /* int */
uarg[1] = (intptr_t) p->inoffp; /* off_t * */
iarg[2] = p->outfd; /* int */
uarg[3] = (intptr_t) p->outoffp; /* off_t * */
uarg[4] = p->len; /* size_t */
uarg[5] = p->flags; /* unsigned int */
*n_args = 6;
break;
}
/* __sysctlbyname */
case 570: {
struct __sysctlbyname_args *p = params;
uarg[0] = (intptr_t) p->name; /* const char * */
uarg[1] = p->namelen; /* size_t */
uarg[2] = (intptr_t) p->old; /* void * */
uarg[3] = (intptr_t) p->oldlenp; /* size_t * */
uarg[4] = (intptr_t) p->new; /* void * */
uarg[5] = p->newlen; /* size_t */
*n_args = 6;
break;
}
2019-09-25 17:59:58 +00:00
/* shm_open2 */
case 571: {
struct shm_open2_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
iarg[1] = p->flags; /* int */
iarg[2] = p->mode; /* mode_t */
iarg[3] = p->shmflags; /* int */
uarg[4] = (intptr_t) p->name; /* const char * */
*n_args = 5;
break;
}
/* shm_rename */
case 572: {
struct shm_rename_args *p = params;
uarg[0] = (intptr_t) p->path_from; /* const char * */
uarg[1] = (intptr_t) p->path_to; /* const char * */
iarg[2] = p->flags; /* int */
*n_args = 3;
break;
}
default:
*n_args = 0;
break;
};
}
2008-03-27 01:55:06 +00:00
static void
systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
2008-03-27 01:55:06 +00:00
{
const char *p = NULL;
switch (sysnum) {
/* nosys */
case 0:
break;
/* sys_exit */
case 1:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* fork */
case 2:
break;
/* read */
case 3:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
default:
break;
};
break;
/* write */
case 4:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
default:
break;
};
break;
/* open */
case 5:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "mode_t";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* close */
case 6:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* wait4 */
case 7:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland int *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "userland struct rusage *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* link */
case 9:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* unlink */
case 10:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* chdir */
case 12:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* fchdir */
case 13:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* chmod */
case 15:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "mode_t";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* chown */
case 16:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* break */
2008-03-27 01:55:06 +00:00
case 17:
switch(ndx) {
case 0:
p = "userland char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getpid */
case 20:
break;
/* mount */
case 21:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* unmount */
case 22:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* setuid */
case 23:
switch(ndx) {
case 0:
p = "uid_t";
break;
default:
break;
};
break;
/* getuid */
case 24:
break;
/* geteuid */
case 25:
break;
/* ptrace */
case 26:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "pid_t";
break;
case 2:
p = "caddr_t";
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* recvmsg */
case 27:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct msghdr *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* sendmsg */
case 28:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct msghdr *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* recvfrom */
case 29:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
case 3:
p = "int";
break;
case 4:
p = "userland struct sockaddr *";
2008-03-27 01:55:06 +00:00
break;
case 5:
p = "userland __socklen_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* accept */
case 30:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct sockaddr *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland __socklen_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getpeername */
case 31:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct sockaddr *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland __socklen_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getsockname */
case 32:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct sockaddr *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland __socklen_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* access */
case 33:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* chflags */
case 34:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "u_long";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* fchflags */
case 35:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "u_long";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sync */
case 36:
break;
/* kill */
case 37:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* getppid */
case 39:
break;
/* dup */
case 41:
switch(ndx) {
case 0:
p = "u_int";
break;
default:
break;
};
break;
/* getegid */
case 43:
break;
/* profil */
case 44:
switch(ndx) {
case 0:
p = "userland char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "size_t";
break;
case 3:
p = "u_int";
break;
default:
break;
};
break;
/* ktrace */
case 45:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* getgid */
case 47:
break;
/* getlogin */
case 49:
switch(ndx) {
case 0:
p = "userland char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "u_int";
break;
default:
break;
};
break;
/* setlogin */
case 50:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* acct */
case 51:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sigaltstack */
case 53:
switch(ndx) {
case 0:
p = "userland stack_t *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland stack_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* ioctl */
case 54:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "u_long";
break;
case 2:
p = "userland char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* reboot */
case 55:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* revoke */
case 56:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* symlink */
case 57:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* readlink */
case 58:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland char *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
default:
break;
};
break;
/* execve */
case 59:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland char **";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland char **";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* umask */
case 60:
switch(ndx) {
case 0:
p = "mode_t";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* chroot */
case 61:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* msync */
case 65:
switch(ndx) {
case 0:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* vfork */
case 66:
break;
/* sbrk */
case 69:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* sstk */
case 70:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* munmap */
case 73:
switch(ndx) {
case 0:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "size_t";
break;
default:
break;
};
break;
/* mprotect */
case 74:
switch(ndx) {
case 0:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* madvise */
case 75:
switch(ndx) {
case 0:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* mincore */
case 78:
switch(ndx) {
case 0:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "userland char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getgroups */
case 79:
switch(ndx) {
case 0:
p = "u_int";
break;
case 1:
p = "userland gid_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* setgroups */
case 80:
switch(ndx) {
case 0:
p = "u_int";
break;
case 1:
p = "userland gid_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getpgrp */
case 81:
break;
/* setpgid */
case 82:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* setitimer */
case 83:
switch(ndx) {
case 0:
p = "u_int";
break;
case 1:
p = "userland struct itimerval *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland struct itimerval *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* swapon */
case 85:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getitimer */
case 86:
switch(ndx) {
case 0:
p = "u_int";
break;
case 1:
p = "userland struct itimerval *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getdtablesize */
case 89:
break;
/* dup2 */
case 90:
switch(ndx) {
case 0:
p = "u_int";
break;
case 1:
p = "u_int";
break;
default:
break;
};
break;
/* fcntl */
case 92:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "long";
break;
default:
break;
};
break;
/* select */
case 93:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland fd_set *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland fd_set *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "userland fd_set *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "userland struct timeval *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* fsync */
case 95:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* setpriority */
case 96:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* socket */
case 97:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* connect */
case 98:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const struct sockaddr *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* getpriority */
case 100:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* bind */
case 104:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const struct sockaddr *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* setsockopt */
case 105:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
case 3:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "int";
break;
default:
break;
};
break;
/* listen */
case 106:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* gettimeofday */
case 116:
switch(ndx) {
case 0:
p = "userland struct timeval *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct timezone *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getrusage */
case 117:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct rusage *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getsockopt */
case 118:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
case 3:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "userland int *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* readv */
case 120:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct iovec *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "u_int";
break;
default:
break;
};
break;
/* writev */
case 121:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct iovec *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "u_int";
break;
default:
break;
};
break;
/* settimeofday */
case 122:
switch(ndx) {
case 0:
p = "userland struct timeval *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct timezone *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* fchown */
case 123:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* fchmod */
case 124:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "mode_t";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* setreuid */
case 126:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* setregid */
case 127:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* rename */
case 128:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* flock */
case 131:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* mkfifo */
case 132:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "mode_t";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sendto */
case 133:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
case 3:
p = "int";
break;
case 4:
p = "userland const struct sockaddr *";
2008-03-27 01:55:06 +00:00
break;
case 5:
p = "int";
break;
default:
break;
};
break;
/* shutdown */
case 134:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* socketpair */
case 135:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
case 3:
p = "userland int *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* mkdir */
case 136:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "mode_t";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* rmdir */
case 137:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* utimes */
case 138:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct timeval *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* adjtime */
case 140:
switch(ndx) {
case 0:
p = "userland struct timeval *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct timeval *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* setsid */
case 147:
break;
/* quotactl */
case 148:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
case 3:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* nlm_syscall */
case 154:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
case 3:
p = "userland char **";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* nfssvc */
case 155:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* lgetfh */
case 160:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct fhandle *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getfh */
case 161:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct fhandle *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sysarch */
case 165:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* rtprio */
case 166:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "pid_t";
break;
case 2:
p = "userland struct rtprio *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* semsys */
case 169:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
case 3:
p = "int";
break;
case 4:
p = "int";
break;
default:
break;
};
break;
/* msgsys */
case 170:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
case 3:
p = "int";
break;
case 4:
p = "int";
break;
case 5:
p = "int";
break;
default:
break;
};
break;
/* shmsys */
case 171:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
case 3:
p = "int";
break;
default:
break;
};
break;
Integrate the new MPSAFE TTY layer to the FreeBSD operating system. The last half year I've been working on a replacement TTY layer for the FreeBSD kernel. The new TTY layer was designed to improve the following: - Improved driver model: The old TTY layer has a driver model that is not abstract enough to make it friendly to use. A good example is the output path, where the device drivers directly access the output buffers. This means that an in-kernel PPP implementation must always convert network buffers into TTY buffers. If a PPP implementation would be built on top of the new TTY layer (still needs a hooks layer, though), it would allow the PPP implementation to directly hand the data to the TTY driver. - Improved hotplugging: With the old TTY layer, it isn't entirely safe to destroy TTY's from the system. This implementation has a two-step destructing design, where the driver first abandons the TTY. After all threads have left the TTY, the TTY layer calls a routine in the driver, which can be used to free resources (unit numbers, etc). The pts(4) driver also implements this feature, which means posix_openpt() will now return PTY's that are created on the fly. - Improved performance: One of the major improvements is the per-TTY mutex, which is expected to improve scalability when compared to the old Giant locking. Another change is the unbuffered copying to userspace, which is both used on TTY device nodes and PTY masters. Upgrading should be quite straightforward. Unlike previous versions, existing kernel configuration files do not need to be changed, except when they reference device drivers that are listed in UPDATING. Obtained from: //depot/projects/mpsafetty/... Approved by: philip (ex-mentor) Discussed: on the lists, at BSDCan, at the DevSummit Sponsored by: Snow B.V., the Netherlands dcons(4) fixed by: kan
2008-08-20 08:31:58 +00:00
/* setfib */
case 175:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
2008-03-27 01:55:06 +00:00
/* ntp_adjtime */
case 176:
switch(ndx) {
case 0:
p = "userland struct timex *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* setgid */
case 181:
switch(ndx) {
case 0:
p = "gid_t";
break;
default:
break;
};
break;
/* setegid */
case 182:
switch(ndx) {
case 0:
p = "gid_t";
break;
default:
break;
};
break;
/* seteuid */
case 183:
switch(ndx) {
case 0:
p = "uid_t";
break;
default:
break;
};
break;
/* pathconf */
case 191:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* fpathconf */
case 192:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* getrlimit */
case 194:
switch(ndx) {
case 0:
p = "u_int";
break;
case 1:
p = "userland struct rlimit *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* setrlimit */
case 195:
switch(ndx) {
case 0:
p = "u_int";
break;
case 1:
p = "userland struct rlimit *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* nosys */
case 198:
break;
/* __sysctl */
case 202:
switch(ndx) {
case 0:
p = "userland int *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "u_int";
break;
case 2:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "userland size_t *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 5:
p = "size_t";
break;
default:
break;
};
break;
/* mlock */
case 203:
switch(ndx) {
case 0:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "size_t";
break;
default:
break;
};
break;
/* munlock */
case 204:
switch(ndx) {
case 0:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "size_t";
break;
default:
break;
};
break;
/* undelete */
case 205:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* futimes */
case 206:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct timeval *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getpgid */
case 207:
switch(ndx) {
case 0:
p = "pid_t";
break;
default:
break;
};
break;
/* poll */
case 209:
switch(ndx) {
case 0:
p = "userland struct pollfd *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "u_int";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* lkmnosys */
case 210:
break;
/* lkmnosys */
case 211:
break;
/* lkmnosys */
case 212:
break;
/* lkmnosys */
case 213:
break;
/* lkmnosys */
case 214:
break;
/* lkmnosys */
case 215:
break;
/* lkmnosys */
case 216:
break;
/* lkmnosys */
case 217:
break;
/* lkmnosys */
case 218:
break;
/* lkmnosys */
case 219:
break;
/* semget */
case 221:
switch(ndx) {
case 0:
p = "key_t";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* semop */
case 222:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct sembuf *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
default:
break;
};
break;
/* msgget */
case 225:
switch(ndx) {
case 0:
p = "key_t";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* msgsnd */
case 226:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* msgrcv */
case 227:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
case 3:
p = "long";
break;
case 4:
p = "int";
break;
default:
break;
};
break;
/* shmat */
case 228:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* shmdt */
case 230:
switch(ndx) {
case 0:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* shmget */
case 231:
switch(ndx) {
case 0:
p = "key_t";
break;
case 1:
p = "size_t";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* clock_gettime */
case 232:
switch(ndx) {
case 0:
p = "clockid_t";
break;
case 1:
p = "userland struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* clock_settime */
case 233:
switch(ndx) {
case 0:
p = "clockid_t";
break;
case 1:
p = "userland const struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* clock_getres */
case 234:
switch(ndx) {
case 0:
p = "clockid_t";
break;
case 1:
p = "userland struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* ktimer_create */
case 235:
switch(ndx) {
case 0:
p = "clockid_t";
break;
case 1:
p = "userland struct sigevent *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland int *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* ktimer_delete */
case 236:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* ktimer_settime */
case 237:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland const struct itimerspec *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "userland struct itimerspec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* ktimer_gettime */
case 238:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct itimerspec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* ktimer_getoverrun */
case 239:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* nanosleep */
case 240:
switch(ndx) {
case 0:
p = "userland const struct timespec *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* ffclock_getcounter */
case 241:
switch(ndx) {
case 0:
p = "userland ffcounter *";
break;
default:
break;
};
break;
/* ffclock_setestimate */
case 242:
switch(ndx) {
case 0:
p = "userland struct ffclock_estimate *";
break;
default:
break;
};
break;
/* ffclock_getestimate */
case 243:
switch(ndx) {
case 0:
p = "userland struct ffclock_estimate *";
break;
default:
break;
};
break;
/* clock_nanosleep */
case 244:
switch(ndx) {
case 0:
p = "clockid_t";
break;
case 1:
p = "int";
break;
case 2:
p = "userland const struct timespec *";
break;
case 3:
p = "userland struct timespec *";
break;
default:
break;
};
break;
/* clock_getcpuclockid2 */
case 247:
switch(ndx) {
case 0:
p = "id_t";
break;
case 1:
p = "int";
break;
case 2:
p = "userland clockid_t *";
break;
default:
break;
};
break;
2008-03-27 01:55:06 +00:00
/* ntp_gettime */
case 248:
switch(ndx) {
case 0:
p = "userland struct ntptimeval *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* minherit */
case 250:
switch(ndx) {
case 0:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* rfork */
case 251:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* issetugid */
case 253:
break;
/* lchown */
case 254:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* aio_read */
case 255:
switch(ndx) {
case 0:
p = "userland struct aiocb *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* aio_write */
case 256:
switch(ndx) {
case 0:
p = "userland struct aiocb *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* lio_listio */
case 257:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct aiocb * const *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "userland struct sigevent *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* lchmod */
case 274:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "mode_t";
break;
default:
break;
};
break;
/* lutimes */
case 276:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct timeval *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
2017-05-23 09:30:42 +00:00
/* preadv */
case 289:
2008-03-27 01:55:06 +00:00
switch(ndx) {
case 0:
2017-05-23 09:30:42 +00:00
p = "int";
2008-03-27 01:55:06 +00:00
break;
case 1:
2017-05-23 09:30:42 +00:00
p = "userland struct iovec *";
2008-03-27 01:55:06 +00:00
break;
2017-05-23 09:30:42 +00:00
case 2:
p = "u_int";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "off_t";
break;
default:
break;
};
break;
/* pwritev */
case 290:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct iovec *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "u_int";
break;
case 3:
p = "off_t";
break;
default:
break;
};
break;
/* fhopen */
case 298:
switch(ndx) {
case 0:
p = "userland const struct fhandle *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* modnext */
case 300:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* modstat */
case 301:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct module_stat *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* modfnext */
case 302:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* modfind */
case 303:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kldload */
case 304:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kldunload */
case 305:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* kldfind */
case 306:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kldnext */
case 307:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* kldstat */
case 308:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct kld_file_stat *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kldfirstmod */
case 309:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* getsid */
case 310:
switch(ndx) {
case 0:
p = "pid_t";
break;
default:
break;
};
break;
/* setresuid */
case 311:
switch(ndx) {
case 0:
p = "uid_t";
break;
case 1:
p = "uid_t";
break;
case 2:
p = "uid_t";
break;
default:
break;
};
break;
/* setresgid */
case 312:
switch(ndx) {
case 0:
p = "gid_t";
break;
case 1:
p = "gid_t";
break;
case 2:
p = "gid_t";
break;
default:
break;
};
break;
/* aio_return */
case 314:
switch(ndx) {
case 0:
p = "userland struct aiocb *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* aio_suspend */
case 315:
switch(ndx) {
case 0:
p = "userland struct aiocb * const *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland const struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* aio_cancel */
case 316:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct aiocb *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* aio_error */
case 317:
switch(ndx) {
case 0:
p = "userland struct aiocb *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* yield */
case 321:
break;
/* mlockall */
case 324:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* munlockall */
case 325:
break;
/* __getcwd */
case 326:
switch(ndx) {
case 0:
p = "userland char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
2017-04-06 23:40:51 +00:00
p = "size_t";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sched_setparam */
case 327:
switch(ndx) {
case 0:
p = "pid_t";
break;
case 1:
p = "userland const struct sched_param *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sched_getparam */
case 328:
switch(ndx) {
case 0:
p = "pid_t";
break;
case 1:
p = "userland struct sched_param *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sched_setscheduler */
case 329:
switch(ndx) {
case 0:
p = "pid_t";
break;
case 1:
p = "int";
break;
case 2:
p = "userland const struct sched_param *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sched_getscheduler */
case 330:
switch(ndx) {
case 0:
p = "pid_t";
break;
default:
break;
};
break;
/* sched_yield */
case 331:
break;
/* sched_get_priority_max */
case 332:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* sched_get_priority_min */
case 333:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* sched_rr_get_interval */
case 334:
switch(ndx) {
case 0:
p = "pid_t";
break;
case 1:
p = "userland struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* utrace */
case 335:
switch(ndx) {
case 0:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "size_t";
break;
default:
break;
};
break;
/* kldsym */
case 337:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* jail */
case 338:
switch(ndx) {
case 0:
p = "userland struct jail *";
break;
default:
break;
};
break;
2010-08-30 14:26:02 +00:00
/* nnpfs_syscall */
case 339:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland char *";
2010-08-30 14:26:02 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "userland void *";
2010-08-30 14:26:02 +00:00
break;
case 4:
p = "int";
break;
default:
break;
};
break;
2008-03-27 01:55:06 +00:00
/* sigprocmask */
case 340:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const sigset_t *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland sigset_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sigsuspend */
case 341:
switch(ndx) {
case 0:
p = "userland const sigset_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sigpending */
case 343:
switch(ndx) {
case 0:
p = "userland sigset_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sigtimedwait */
case 345:
switch(ndx) {
case 0:
p = "userland const sigset_t *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland siginfo_t *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland const struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sigwaitinfo */
case 346:
switch(ndx) {
case 0:
p = "userland const sigset_t *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland siginfo_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __acl_get_file */
case 347:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "acl_type_t";
break;
case 2:
p = "userland struct acl *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __acl_set_file */
case 348:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "acl_type_t";
break;
case 2:
p = "userland struct acl *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __acl_get_fd */
case 349:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "acl_type_t";
break;
case 2:
p = "userland struct acl *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __acl_set_fd */
case 350:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "acl_type_t";
break;
case 2:
p = "userland struct acl *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __acl_delete_file */
case 351:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "acl_type_t";
break;
default:
break;
};
break;
/* __acl_delete_fd */
case 352:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "acl_type_t";
break;
default:
break;
};
break;
/* __acl_aclcheck_file */
case 353:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "acl_type_t";
break;
case 2:
p = "userland struct acl *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __acl_aclcheck_fd */
case 354:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "acl_type_t";
break;
case 2:
p = "userland struct acl *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* extattrctl */
case 355:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "int";
break;
case 4:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* extattr_set_file */
case 356:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "size_t";
break;
default:
break;
};
break;
/* extattr_get_file */
case 357:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "size_t";
break;
default:
break;
};
break;
/* extattr_delete_file */
case 358:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* aio_waitcomplete */
case 359:
switch(ndx) {
case 0:
p = "userland struct aiocb **";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getresuid */
case 360:
switch(ndx) {
case 0:
p = "userland uid_t *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland uid_t *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland uid_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getresgid */
case 361:
switch(ndx) {
case 0:
p = "userland gid_t *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland gid_t *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland gid_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kqueue */
case 362:
break;
/* extattr_set_fd */
case 371:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "size_t";
break;
default:
break;
};
break;
/* extattr_get_fd */
case 372:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "size_t";
break;
default:
break;
};
break;
/* extattr_delete_fd */
case 373:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __setugid */
case 374:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* eaccess */
case 376:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
default:
break;
};
break;
2010-08-30 14:26:02 +00:00
/* afs3_syscall */
case 377:
switch(ndx) {
case 0:
p = "long";
break;
case 1:
p = "long";
break;
case 2:
p = "long";
break;
case 3:
p = "long";
break;
case 4:
p = "long";
break;
case 5:
p = "long";
break;
case 6:
p = "long";
break;
default:
break;
};
break;
2008-03-27 01:55:06 +00:00
/* nmount */
case 378:
switch(ndx) {
case 0:
p = "userland struct iovec *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "unsigned int";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* __mac_get_proc */
case 384:
switch(ndx) {
case 0:
p = "userland struct mac *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __mac_set_proc */
case 385:
switch(ndx) {
case 0:
p = "userland struct mac *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __mac_get_fd */
case 386:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct mac *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __mac_get_file */
case 387:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct mac *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __mac_set_fd */
case 388:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct mac *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __mac_set_file */
case 389:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct mac *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kenv */
case 390:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland char *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* lchflags */
case 391:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "u_long";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* uuidgen */
case 392:
switch(ndx) {
case 0:
p = "userland struct uuid *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* sendfile */
case 393:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "off_t";
break;
case 3:
p = "size_t";
break;
case 4:
p = "userland struct sf_hdtr *";
2008-03-27 01:55:06 +00:00
break;
case 5:
p = "userland off_t *";
2008-03-27 01:55:06 +00:00
break;
case 6:
p = "int";
break;
default:
break;
};
break;
/* mac_syscall */
case 394:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* ksem_close */
case 400:
switch(ndx) {
case 0:
p = "semid_t";
break;
default:
break;
};
break;
/* ksem_post */
case 401:
switch(ndx) {
case 0:
p = "semid_t";
break;
default:
break;
};
break;
/* ksem_wait */
case 402:
switch(ndx) {
case 0:
p = "semid_t";
break;
default:
break;
};
break;
/* ksem_trywait */
case 403:
switch(ndx) {
case 0:
p = "semid_t";
break;
default:
break;
};
break;
/* ksem_init */
case 404:
switch(ndx) {
case 0:
p = "userland semid_t *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "unsigned int";
break;
default:
break;
};
break;
/* ksem_open */
case 405:
switch(ndx) {
case 0:
p = "userland semid_t *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "mode_t";
break;
case 4:
p = "unsigned int";
break;
default:
break;
};
break;
/* ksem_unlink */
case 406:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* ksem_getvalue */
case 407:
switch(ndx) {
case 0:
p = "semid_t";
break;
case 1:
p = "userland int *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* ksem_destroy */
case 408:
switch(ndx) {
case 0:
p = "semid_t";
break;
default:
break;
};
break;
/* __mac_get_pid */
case 409:
switch(ndx) {
case 0:
p = "pid_t";
break;
case 1:
p = "userland struct mac *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __mac_get_link */
case 410:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct mac *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __mac_set_link */
case 411:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland struct mac *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* extattr_set_link */
case 412:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "size_t";
break;
default:
break;
};
break;
/* extattr_get_link */
case 413:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "size_t";
break;
default:
break;
};
break;
/* extattr_delete_link */
case 414:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __mac_execve */
case 415:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland char **";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland char **";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "userland struct mac *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sigaction */
case 416:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const struct sigaction *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland struct sigaction *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sigreturn */
case 417:
switch(ndx) {
case 0:
p = "userland const struct __ucontext *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getcontext */
case 421:
switch(ndx) {
case 0:
p = "userland struct __ucontext *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* setcontext */
case 422:
switch(ndx) {
case 0:
p = "userland const struct __ucontext *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* swapcontext */
case 423:
switch(ndx) {
case 0:
p = "userland struct __ucontext *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland const struct __ucontext *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* swapoff */
case 424:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __acl_get_link */
case 425:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "acl_type_t";
break;
case 2:
p = "userland struct acl *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __acl_set_link */
case 426:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "acl_type_t";
break;
case 2:
p = "userland struct acl *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* __acl_delete_link */
case 427:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "acl_type_t";
break;
default:
break;
};
break;
/* __acl_aclcheck_link */
case 428:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "acl_type_t";
break;
case 2:
p = "userland struct acl *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sigwait */
case 429:
switch(ndx) {
case 0:
p = "userland const sigset_t *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland int *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* thr_create */
case 430:
switch(ndx) {
case 0:
p = "userland ucontext_t *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "userland long *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* thr_exit */
case 431:
switch(ndx) {
case 0:
p = "userland long *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* thr_self */
case 432:
switch(ndx) {
case 0:
p = "userland long *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* thr_kill */
case 433:
switch(ndx) {
case 0:
p = "long";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* jail_attach */
case 436:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
/* extattr_list_fd */
case 437:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "size_t";
break;
default:
break;
};
break;
/* extattr_list_file */
case 438:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "size_t";
break;
default:
break;
};
break;
/* extattr_list_link */
case 439:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 3:
p = "size_t";
break;
default:
break;
};
break;
/* ksem_timedwait */
case 441:
switch(ndx) {
case 0:
p = "semid_t";
break;
case 1:
p = "userland const struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* thr_suspend */
case 442:
switch(ndx) {
case 0:
p = "userland const struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* thr_wake */
case 443:
switch(ndx) {
case 0:
p = "long";
break;
default:
break;
};
break;
/* kldunloadf */
case 444:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* audit */
case 445:
switch(ndx) {
case 0:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "u_int";
break;
default:
break;
};
break;
/* auditon */
case 446:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "u_int";
break;
default:
break;
};
break;
/* getauid */
case 447:
switch(ndx) {
case 0:
p = "userland uid_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* setauid */
case 448:
switch(ndx) {
case 0:
p = "userland uid_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getaudit */
case 449:
switch(ndx) {
case 0:
p = "userland struct auditinfo *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* setaudit */
case 450:
switch(ndx) {
case 0:
p = "userland struct auditinfo *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* getaudit_addr */
case 451:
switch(ndx) {
case 0:
p = "userland struct auditinfo_addr *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "u_int";
break;
default:
break;
};
break;
/* setaudit_addr */
case 452:
switch(ndx) {
case 0:
p = "userland struct auditinfo_addr *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "u_int";
break;
default:
break;
};
break;
/* auditctl */
case 453:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* _umtx_op */
case 454:
switch(ndx) {
case 0:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "u_long";
break;
case 3:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* thr_new */
case 455:
switch(ndx) {
case 0:
p = "userland struct thr_param *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* sigqueue */
case 456:
switch(ndx) {
case 0:
p = "pid_t";
break;
case 1:
p = "int";
break;
case 2:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kmq_open */
case 457:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "mode_t";
break;
case 3:
p = "userland const struct mq_attr *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kmq_setattr */
case 458:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const struct mq_attr *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "userland struct mq_attr *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kmq_timedreceive */
case 459:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland char *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
case 3:
p = "userland unsigned *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "userland const struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kmq_timedsend */
case 460:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
case 3:
p = "unsigned";
break;
case 4:
p = "userland const struct timespec *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kmq_notify */
case 461:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const struct sigevent *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* kmq_unlink */
case 462:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* abort2 */
case 463:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland void **";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* thr_set_name */
case 464:
switch(ndx) {
case 0:
p = "long";
break;
case 1:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* aio_fsync */
case 465:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct aiocb *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* rtprio_thread */
case 466:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "lwpid_t";
break;
case 2:
p = "userland struct rtprio *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* sctp_peeloff */
case 471:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "uint32_t";
break;
default:
break;
};
break;
/* sctp_generic_sendmsg */
case 472:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "userland struct sockaddr *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "__socklen_t";
break;
case 5:
p = "userland struct sctp_sndrcvinfo *";
2008-03-27 01:55:06 +00:00
break;
case 6:
p = "int";
break;
default:
break;
};
break;
/* sctp_generic_sendmsg_iov */
case 473:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct iovec *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "userland struct sockaddr *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "__socklen_t";
break;
case 5:
p = "userland struct sctp_sndrcvinfo *";
2008-03-27 01:55:06 +00:00
break;
case 6:
p = "int";
break;
default:
break;
};
break;
/* sctp_generic_recvmsg */
case 474:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct iovec *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "userland struct sockaddr *";
2008-03-27 01:55:06 +00:00
break;
case 4:
p = "userland __socklen_t *";
2008-03-27 01:55:06 +00:00
break;
case 5:
p = "userland struct sctp_sndrcvinfo *";
2008-03-27 01:55:06 +00:00
break;
case 6:
p = "userland int *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* pread */
case 475:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
case 3:
p = "off_t";
break;
default:
break;
};
break;
/* pwrite */
case 476:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const void *";
2008-03-27 01:55:06 +00:00
break;
case 2:
p = "size_t";
break;
case 3:
p = "off_t";
break;
default:
break;
};
break;
/* mmap */
case 477:
switch(ndx) {
case 0:
p = "userland void *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "int";
break;
case 3:
p = "int";
break;
case 4:
p = "int";
break;
case 5:
p = "off_t";
break;
default:
break;
};
break;
/* lseek */
case 478:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "off_t";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* truncate */
case 479:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
case 1:
p = "off_t";
break;
default:
break;
};
break;
/* ftruncate */
case 480:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "off_t";
break;
default:
break;
};
break;
/* thr_kill2 */
case 481:
switch(ndx) {
case 0:
p = "pid_t";
break;
case 1:
p = "long";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* shm_unlink */
case 483:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* cpuset */
case 484:
switch(ndx) {
case 0:
p = "userland cpusetid_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* cpuset_setid */
case 485:
switch(ndx) {
case 0:
p = "cpuwhich_t";
break;
case 1:
p = "id_t";
break;
case 2:
p = "cpusetid_t";
break;
default:
break;
};
break;
/* cpuset_getid */
case 486:
switch(ndx) {
case 0:
p = "cpulevel_t";
break;
case 1:
p = "cpuwhich_t";
break;
case 2:
p = "id_t";
break;
case 3:
p = "userland cpusetid_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* cpuset_getaffinity */
case 487:
switch(ndx) {
case 0:
p = "cpulevel_t";
break;
case 1:
p = "cpuwhich_t";
break;
case 2:
p = "id_t";
break;
case 3:
p = "size_t";
break;
case 4:
p = "userland cpuset_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
/* cpuset_setaffinity */
case 488:
switch(ndx) {
case 0:
p = "cpulevel_t";
break;
case 1:
p = "cpuwhich_t";
break;
case 2:
p = "id_t";
break;
case 3:
p = "size_t";
break;
case 4:
p = "userland const cpuset_t *";
2008-03-27 01:55:06 +00:00
break;
default:
break;
};
break;
2008-03-31 12:12:27 +00:00
/* faccessat */
case 489:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* fchmodat */
case 490:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "mode_t";
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* fchownat */
case 491:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "uid_t";
break;
case 3:
p = "gid_t";
break;
case 4:
p = "int";
break;
default:
break;
};
break;
/* fexecve */
case 492:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland char **";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "userland char **";
2008-03-31 12:12:27 +00:00
break;
default:
break;
};
break;
/* futimesat */
case 494:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "userland struct timeval *";
2008-03-31 12:12:27 +00:00
break;
default:
break;
};
break;
/* linkat */
case 495:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 4:
p = "int";
break;
default:
break;
};
break;
/* mkdirat */
case 496:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "mode_t";
break;
default:
break;
};
break;
/* mkfifoat */
case 497:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "mode_t";
break;
default:
break;
};
break;
/* openat */
case 499:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "mode_t";
break;
default:
break;
};
break;
/* readlinkat */
case 500:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "userland char *";
2008-03-31 12:12:27 +00:00
break;
case 3:
p = "size_t";
break;
default:
break;
};
break;
/* renameat */
case 501:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "int";
break;
case 3:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
default:
break;
};
break;
/* symlinkat */
case 502:
switch(ndx) {
case 0:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
default:
break;
};
break;
/* unlinkat */
case 503:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2008-03-31 12:12:27 +00:00
break;
case 2:
p = "int";
break;
default:
break;
};
break;
Integrate the new MPSAFE TTY layer to the FreeBSD operating system. The last half year I've been working on a replacement TTY layer for the FreeBSD kernel. The new TTY layer was designed to improve the following: - Improved driver model: The old TTY layer has a driver model that is not abstract enough to make it friendly to use. A good example is the output path, where the device drivers directly access the output buffers. This means that an in-kernel PPP implementation must always convert network buffers into TTY buffers. If a PPP implementation would be built on top of the new TTY layer (still needs a hooks layer, though), it would allow the PPP implementation to directly hand the data to the TTY driver. - Improved hotplugging: With the old TTY layer, it isn't entirely safe to destroy TTY's from the system. This implementation has a two-step destructing design, where the driver first abandons the TTY. After all threads have left the TTY, the TTY layer calls a routine in the driver, which can be used to free resources (unit numbers, etc). The pts(4) driver also implements this feature, which means posix_openpt() will now return PTY's that are created on the fly. - Improved performance: One of the major improvements is the per-TTY mutex, which is expected to improve scalability when compared to the old Giant locking. Another change is the unbuffered copying to userspace, which is both used on TTY device nodes and PTY masters. Upgrading should be quite straightforward. Unlike previous versions, existing kernel configuration files do not need to be changed, except when they reference device drivers that are listed in UPDATING. Obtained from: //depot/projects/mpsafetty/... Approved by: philip (ex-mentor) Discussed: on the lists, at BSDCan, at the DevSummit Sponsored by: Snow B.V., the Netherlands dcons(4) fixed by: kan
2008-08-20 08:31:58 +00:00
/* posix_openpt */
case 504:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
2008-11-03 10:39:35 +00:00
/* gssd_syscall */
case 505:
switch(ndx) {
case 0:
p = "userland const char *";
2008-11-03 10:39:35 +00:00
break;
default:
break;
};
break;
/* jail_get */
case 506:
switch(ndx) {
case 0:
p = "userland struct iovec *";
break;
case 1:
p = "unsigned int";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* jail_set */
case 507:
switch(ndx) {
case 0:
p = "userland struct iovec *";
break;
case 1:
p = "unsigned int";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* jail_remove */
case 508:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
2009-06-15 20:40:23 +00:00
/* closefrom */
case 509:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
2009-06-24 21:54:08 +00:00
/* __semctl */
case 510:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "int";
break;
case 3:
p = "userland union semun *";
2009-06-24 21:54:08 +00:00
break;
default:
break;
};
break;
/* msgctl */
case 511:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland struct msqid_ds *";
2009-06-24 21:54:08 +00:00
break;
default:
break;
};
break;
/* shmctl */
case 512:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland struct shmid_ds *";
2009-06-24 21:54:08 +00:00
break;
default:
break;
};
break;
/* lpathconf */
case 513:
switch(ndx) {
case 0:
p = "userland const char *";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* __cap_rights_get */
case 515:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland cap_rights_t *";
break;
default:
break;
};
break;
/* cap_enter */
case 516:
break;
/* cap_getmode */
case 517:
switch(ndx) {
case 0:
p = "userland u_int *";
break;
default:
break;
};
break;
/* pdfork */
case 518:
switch(ndx) {
case 0:
p = "userland int *";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* pdkill */
case 519:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* pdgetpid */
case 520:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland pid_t *";
break;
default:
break;
};
break;
2009-10-27 11:01:15 +00:00
/* pselect */
case 522:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland fd_set *";
2009-10-27 11:01:15 +00:00
break;
case 2:
p = "userland fd_set *";
2009-10-27 11:01:15 +00:00
break;
case 3:
p = "userland fd_set *";
2009-10-27 11:01:15 +00:00
break;
case 4:
p = "userland const struct timespec *";
2009-10-27 11:01:15 +00:00
break;
case 5:
p = "userland const sigset_t *";
2009-10-27 11:01:15 +00:00
break;
default:
break;
};
break;
2011-03-05 12:46:24 +00:00
/* getloginclass */
case 523:
switch(ndx) {
case 0:
p = "userland char *";
2011-03-05 12:46:24 +00:00
break;
case 1:
p = "size_t";
break;
default:
break;
};
break;
/* setloginclass */
case 524:
switch(ndx) {
case 0:
p = "userland const char *";
2011-03-05 12:46:24 +00:00
break;
default:
break;
};
break;
2011-03-30 17:59:54 +00:00
/* rctl_get_racct */
case 525:
switch(ndx) {
case 0:
p = "userland const void *";
2011-03-30 17:59:54 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "userland void *";
2011-03-30 17:59:54 +00:00
break;
case 3:
p = "size_t";
break;
default:
break;
};
break;
/* rctl_get_rules */
case 526:
switch(ndx) {
case 0:
p = "userland const void *";
2011-03-30 17:59:54 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "userland void *";
2011-03-30 17:59:54 +00:00
break;
case 3:
p = "size_t";
break;
default:
break;
};
break;
/* rctl_get_limits */
case 527:
switch(ndx) {
case 0:
p = "userland const void *";
2011-03-30 17:59:54 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "userland void *";
2011-03-30 17:59:54 +00:00
break;
case 3:
p = "size_t";
break;
default:
break;
};
break;
/* rctl_add_rule */
case 528:
switch(ndx) {
case 0:
p = "userland const void *";
2011-03-30 17:59:54 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "userland void *";
2011-03-30 17:59:54 +00:00
break;
case 3:
p = "size_t";
break;
default:
break;
};
break;
/* rctl_remove_rule */
case 529:
switch(ndx) {
case 0:
p = "userland const void *";
2011-03-30 17:59:54 +00:00
break;
case 1:
p = "size_t";
break;
case 2:
p = "userland void *";
2011-03-30 17:59:54 +00:00
break;
case 3:
p = "size_t";
break;
default:
break;
};
break;
2011-04-18 16:32:47 +00:00
/* posix_fallocate */
case 530:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "off_t";
break;
case 2:
p = "off_t";
break;
default:
break;
};
break;
2011-11-04 04:06:31 +00:00
/* posix_fadvise */
case 531:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "off_t";
break;
case 2:
p = "off_t";
break;
case 3:
p = "int";
break;
default:
break;
};
break;
2012-11-13 12:53:41 +00:00
/* wait6 */
case 532:
switch(ndx) {
case 0:
2013-09-12 18:03:51 +00:00
p = "idtype_t";
2012-11-13 12:53:41 +00:00
break;
case 1:
2013-05-21 11:41:08 +00:00
p = "id_t";
2012-11-13 12:53:41 +00:00
break;
case 2:
p = "userland int *";
2012-11-13 12:53:41 +00:00
break;
case 3:
p = "int";
break;
case 4:
p = "userland struct __wrusage *";
2012-11-13 12:53:41 +00:00
break;
case 5:
p = "userland siginfo_t *";
2012-11-13 12:53:41 +00:00
break;
default:
break;
};
break;
2013-03-02 00:55:09 +00:00
/* cap_rights_limit */
case 533:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland cap_rights_t *";
2013-03-02 00:55:09 +00:00
break;
default:
break;
};
break;
/* cap_ioctls_limit */
case 534:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const u_long *";
2013-03-02 00:55:09 +00:00
break;
case 2:
p = "size_t";
break;
default:
break;
};
break;
/* cap_ioctls_get */
case 535:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland u_long *";
2013-03-02 00:55:09 +00:00
break;
case 2:
p = "size_t";
break;
default:
break;
};
break;
/* cap_fcntls_limit */
case 536:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "uint32_t";
break;
default:
break;
};
break;
/* cap_fcntls_get */
case 537:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland uint32_t *";
2013-03-02 00:55:09 +00:00
break;
default:
break;
};
break;
2013-03-02 21:12:54 +00:00
/* bindat */
case 538:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland const struct sockaddr *";
2013-03-02 21:12:54 +00:00
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* connectat */
case 539:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "int";
break;
case 2:
p = "userland const struct sockaddr *";
2013-03-02 21:12:54 +00:00
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* chflagsat */
case 540:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
break;
case 2:
p = "u_long";
break;
case 3:
p = "int";
break;
default:
break;
};
break;
2013-05-01 20:12:58 +00:00
/* accept4 */
case 541:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct sockaddr *";
2013-05-01 20:12:58 +00:00
break;
case 2:
p = "userland __socklen_t *";
2013-05-01 20:12:58 +00:00
break;
case 3:
p = "int";
break;
default:
break;
};
break;
2013-05-01 22:45:04 +00:00
/* pipe2 */
case 542:
switch(ndx) {
case 0:
p = "userland int *";
2013-05-01 22:45:04 +00:00
break;
case 1:
p = "int";
break;
default:
break;
};
break;
/* aio_mlock */
case 543:
switch(ndx) {
case 0:
p = "userland struct aiocb *";
break;
default:
break;
};
break;
2013-09-19 18:56:00 +00:00
/* procctl */
case 544:
switch(ndx) {
case 0:
p = "idtype_t";
break;
case 1:
p = "id_t";
break;
case 2:
p = "int";
break;
case 3:
p = "userland void *";
2013-09-19 18:56:00 +00:00
break;
default:
break;
};
break;
2014-11-13 05:28:06 +00:00
/* ppoll */
case 545:
switch(ndx) {
case 0:
p = "userland struct pollfd *";
2014-11-13 05:28:06 +00:00
break;
case 1:
p = "u_int";
break;
case 2:
p = "userland const struct timespec *";
2014-11-13 05:28:06 +00:00
break;
case 3:
p = "userland const sigset_t *";
2014-11-13 05:28:06 +00:00
break;
default:
break;
};
break;
2015-01-23 21:08:24 +00:00
/* futimens */
case 546:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct timespec *";
2015-01-23 21:08:24 +00:00
break;
default:
break;
};
break;
/* utimensat */
case 547:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2015-01-23 21:08:24 +00:00
break;
case 2:
p = "userland struct timespec *";
2015-01-23 21:08:24 +00:00
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* fdatasync */
case 550:
switch(ndx) {
case 0:
p = "int";
break;
default:
break;
};
break;
2017-05-23 09:30:42 +00:00
/* fstat */
case 551:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct stat *";
break;
default:
break;
};
break;
/* fstatat */
case 552:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2017-05-23 09:30:42 +00:00
break;
case 2:
p = "userland struct stat *";
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* fhstat */
case 553:
switch(ndx) {
case 0:
p = "userland const struct fhandle *";
break;
case 1:
p = "userland struct stat *";
break;
default:
break;
};
break;
/* getdirentries */
case 554:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland char *";
break;
case 2:
p = "size_t";
break;
case 3:
p = "userland off_t *";
break;
default:
break;
};
break;
/* statfs */
case 555:
switch(ndx) {
case 0:
p = "userland const char *";
2017-05-23 09:30:42 +00:00
break;
case 1:
p = "userland struct statfs *";
break;
default:
break;
};
break;
/* fstatfs */
case 556:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct statfs *";
break;
default:
break;
};
break;
/* getfsstat */
case 557:
switch(ndx) {
case 0:
p = "userland struct statfs *";
break;
case 1:
p = "long";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
/* fhstatfs */
case 558:
switch(ndx) {
case 0:
p = "userland const struct fhandle *";
break;
case 1:
p = "userland struct statfs *";
break;
default:
break;
};
break;
/* mknodat */
case 559:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
2017-05-23 09:30:42 +00:00
break;
case 2:
p = "mode_t";
break;
case 3:
p = "dev_t";
break;
default:
break;
};
break;
2017-06-17 00:58:19 +00:00
/* kevent */
case 560:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland struct kevent *";
break;
case 2:
p = "int";
break;
case 3:
p = "userland struct kevent *";
break;
case 4:
p = "int";
break;
case 5:
p = "userland const struct timespec *";
break;
default:
break;
};
break;
2018-01-12 23:06:35 +00:00
/* cpuset_getdomain */
case 561:
switch(ndx) {
case 0:
p = "cpulevel_t";
break;
case 1:
p = "cpuwhich_t";
break;
case 2:
p = "id_t";
break;
case 3:
p = "size_t";
break;
case 4:
p = "userland domainset_t *";
break;
case 5:
p = "userland int *";
break;
default:
break;
};
break;
/* cpuset_setdomain */
case 562:
switch(ndx) {
case 0:
p = "cpulevel_t";
break;
case 1:
p = "cpuwhich_t";
break;
case 2:
p = "id_t";
break;
case 3:
p = "size_t";
break;
case 4:
p = "userland domainset_t *";
break;
case 5:
p = "int";
break;
default:
break;
};
break;
2018-03-21 01:17:01 +00:00
/* getrandom */
case 563:
switch(ndx) {
case 0:
p = "userland void *";
break;
case 1:
p = "size_t";
break;
case 2:
p = "unsigned int";
break;
default:
break;
};
break;
2018-12-07 15:19:00 +00:00
/* getfhat */
case 564:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland char *";
break;
case 2:
p = "userland struct fhandle *";
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* fhlink */
case 565:
switch(ndx) {
case 0:
p = "userland struct fhandle *";
break;
case 1:
p = "userland const char *";
break;
default:
break;
};
break;
/* fhlinkat */
case 566:
switch(ndx) {
case 0:
p = "userland struct fhandle *";
break;
case 1:
p = "int";
break;
case 2:
p = "userland const char *";
break;
default:
break;
};
break;
/* fhreadlink */
case 567:
switch(ndx) {
case 0:
p = "userland struct fhandle *";
break;
case 1:
p = "userland char *";
break;
case 2:
p = "size_t";
break;
default:
break;
};
break;
2019-04-06 09:37:10 +00:00
/* funlinkat */
case 568:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
break;
case 2:
p = "int";
break;
case 3:
p = "int";
break;
default:
break;
};
break;
/* copy_file_range */
case 569:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland off_t *";
break;
case 2:
p = "int";
break;
case 3:
p = "userland off_t *";
break;
case 4:
p = "size_t";
break;
case 5:
p = "unsigned int";
break;
default:
break;
};
break;
/* __sysctlbyname */
case 570:
switch(ndx) {
case 0:
p = "userland const char *";
break;
case 1:
p = "size_t";
break;
case 2:
p = "userland void *";
break;
case 3:
p = "userland size_t *";
break;
case 4:
p = "userland void *";
break;
case 5:
p = "size_t";
break;
default:
break;
};
break;
2019-09-25 17:59:58 +00:00
/* shm_open2 */
case 571:
switch(ndx) {
case 0:
p = "userland const char *";
break;
case 1:
p = "int";
break;
case 2:
p = "mode_t";
break;
case 3:
p = "int";
break;
case 4:
p = "userland const char *";
break;
default:
break;
};
break;
/* shm_rename */
case 572:
switch(ndx) {
case 0:
p = "userland const char *";
break;
case 1:
p = "userland const char *";
break;
case 2:
p = "int";
break;
default:
break;
};
break;
2008-03-27 01:55:06 +00:00
default:
break;
};
if (p != NULL)
strlcpy(desc, p, descsz);
}
static void
systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
{
const char *p = NULL;
switch (sysnum) {
/* nosys */
case 0:
/* sys_exit */
case 1:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* fork */
case 2:
/* read */
case 3:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* write */
case 4:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* open */
case 5:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* close */
case 6:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* wait4 */
case 7:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* link */
case 9:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* unlink */
case 10:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* chdir */
case 12:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fchdir */
case 13:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* chmod */
case 15:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* chown */
case 16:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* break */
case 17:
if (ndx == 0 || ndx == 1)
p = "void *";
break;
/* getpid */
case 20:
/* mount */
case 21:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* unmount */
case 22:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setuid */
case 23:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getuid */
case 24:
/* geteuid */
case 25:
/* ptrace */
case 26:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* recvmsg */
case 27:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sendmsg */
case 28:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* recvfrom */
case 29:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* accept */
case 30:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getpeername */
case 31:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getsockname */
case 32:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* access */
case 33:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* chflags */
case 34:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fchflags */
case 35:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sync */
case 36:
/* kill */
case 37:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getppid */
case 39:
/* dup */
case 41:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getegid */
case 43:
/* profil */
case 44:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ktrace */
case 45:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getgid */
case 47:
/* getlogin */
case 49:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setlogin */
case 50:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* acct */
case 51:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sigaltstack */
case 53:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ioctl */
case 54:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* reboot */
case 55:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* revoke */
case 56:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* symlink */
case 57:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* readlink */
case 58:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* execve */
case 59:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* umask */
case 60:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* chroot */
case 61:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* msync */
case 65:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* vfork */
case 66:
/* sbrk */
case 69:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sstk */
case 70:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* munmap */
case 73:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* mprotect */
case 74:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* madvise */
case 75:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* mincore */
case 78:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getgroups */
case 79:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setgroups */
case 80:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getpgrp */
case 81:
/* setpgid */
case 82:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setitimer */
case 83:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* swapon */
case 85:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getitimer */
case 86:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getdtablesize */
case 89:
/* dup2 */
case 90:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fcntl */
case 92:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* select */
case 93:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fsync */
case 95:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setpriority */
case 96:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* socket */
case 97:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* connect */
case 98:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getpriority */
case 100:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* bind */
case 104:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setsockopt */
case 105:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* listen */
case 106:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* gettimeofday */
case 116:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getrusage */
case 117:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getsockopt */
case 118:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* readv */
case 120:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* writev */
case 121:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* settimeofday */
case 122:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fchown */
case 123:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fchmod */
case 124:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setreuid */
case 126:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setregid */
case 127:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* rename */
case 128:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* flock */
case 131:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* mkfifo */
case 132:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sendto */
case 133:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* shutdown */
case 134:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* socketpair */
case 135:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* mkdir */
case 136:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* rmdir */
case 137:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* utimes */
case 138:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* adjtime */
case 140:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setsid */
case 147:
/* quotactl */
case 148:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* nlm_syscall */
case 154:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* nfssvc */
case 155:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* lgetfh */
case 160:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getfh */
case 161:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sysarch */
case 165:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* rtprio */
case 166:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* semsys */
case 169:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* msgsys */
case 170:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* shmsys */
case 171:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setfib */
case 175:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ntp_adjtime */
case 176:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setgid */
case 181:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setegid */
case 182:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* seteuid */
case 183:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* pathconf */
case 191:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fpathconf */
case 192:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getrlimit */
case 194:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setrlimit */
case 195:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* nosys */
case 198:
/* __sysctl */
case 202:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* mlock */
case 203:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* munlock */
case 204:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* undelete */
case 205:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* futimes */
case 206:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getpgid */
case 207:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* poll */
case 209:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* lkmnosys */
case 210:
/* lkmnosys */
case 211:
/* lkmnosys */
case 212:
/* lkmnosys */
case 213:
/* lkmnosys */
case 214:
/* lkmnosys */
case 215:
/* lkmnosys */
case 216:
/* lkmnosys */
case 217:
/* lkmnosys */
case 218:
/* lkmnosys */
case 219:
/* semget */
case 221:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* semop */
case 222:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* msgget */
case 225:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* msgsnd */
case 226:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* msgrcv */
case 227:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* shmat */
case 228:
if (ndx == 0 || ndx == 1)
p = "void *";
break;
/* shmdt */
case 230:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* shmget */
case 231:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* clock_gettime */
case 232:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* clock_settime */
case 233:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* clock_getres */
case 234:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ktimer_create */
case 235:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ktimer_delete */
case 236:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ktimer_settime */
case 237:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ktimer_gettime */
case 238:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ktimer_getoverrun */
case 239:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* nanosleep */
case 240:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ffclock_getcounter */
case 241:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ffclock_setestimate */
case 242:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ffclock_getestimate */
case 243:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* clock_nanosleep */
case 244:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* clock_getcpuclockid2 */
case 247:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ntp_gettime */
case 248:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* minherit */
case 250:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* rfork */
case 251:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* issetugid */
case 253:
/* lchown */
case 254:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* aio_read */
case 255:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* aio_write */
case 256:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* lio_listio */
case 257:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* lchmod */
case 274:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* lutimes */
case 276:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* preadv */
case 289:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* pwritev */
case 290:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* fhopen */
case 298:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* modnext */
case 300:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* modstat */
case 301:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* modfnext */
case 302:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* modfind */
case 303:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kldload */
case 304:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kldunload */
case 305:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kldfind */
case 306:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kldnext */
case 307:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kldstat */
case 308:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kldfirstmod */
case 309:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getsid */
case 310:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setresuid */
case 311:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setresgid */
case 312:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* aio_return */
case 314:
if (ndx == 0 || ndx == 1)
2016-03-21 21:38:35 +00:00
p = "ssize_t";
break;
/* aio_suspend */
case 315:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* aio_cancel */
case 316:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* aio_error */
case 317:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* yield */
case 321:
/* mlockall */
case 324:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* munlockall */
case 325:
/* __getcwd */
case 326:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sched_setparam */
case 327:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sched_getparam */
case 328:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sched_setscheduler */
case 329:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sched_getscheduler */
case 330:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sched_yield */
case 331:
/* sched_get_priority_max */
case 332:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sched_get_priority_min */
case 333:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sched_rr_get_interval */
case 334:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* utrace */
case 335:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kldsym */
case 337:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* jail */
case 338:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* nnpfs_syscall */
case 339:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sigprocmask */
case 340:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sigsuspend */
case 341:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sigpending */
case 343:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sigtimedwait */
case 345:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sigwaitinfo */
case 346:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_get_file */
case 347:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_set_file */
case 348:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_get_fd */
case 349:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_set_fd */
case 350:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_delete_file */
case 351:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_delete_fd */
case 352:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_aclcheck_file */
case 353:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_aclcheck_fd */
case 354:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* extattrctl */
case 355:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* extattr_set_file */
case 356:
if (ndx == 0 || ndx == 1)
2013-04-02 05:30:52 +00:00
p = "ssize_t";
break;
/* extattr_get_file */
case 357:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* extattr_delete_file */
case 358:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* aio_waitcomplete */
case 359:
if (ndx == 0 || ndx == 1)
2016-03-21 21:38:35 +00:00
p = "ssize_t";
break;
/* getresuid */
case 360:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getresgid */
case 361:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kqueue */
case 362:
/* extattr_set_fd */
case 371:
if (ndx == 0 || ndx == 1)
2013-04-02 05:30:52 +00:00
p = "ssize_t";
break;
/* extattr_get_fd */
case 372:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* extattr_delete_fd */
case 373:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __setugid */
case 374:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* eaccess */
case 376:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* afs3_syscall */
case 377:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* nmount */
case 378:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __mac_get_proc */
case 384:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __mac_set_proc */
case 385:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __mac_get_fd */
case 386:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __mac_get_file */
case 387:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __mac_set_fd */
case 388:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __mac_set_file */
case 389:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kenv */
case 390:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* lchflags */
case 391:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* uuidgen */
case 392:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sendfile */
case 393:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* mac_syscall */
case 394:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ksem_close */
case 400:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ksem_post */
case 401:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ksem_wait */
case 402:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ksem_trywait */
case 403:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ksem_init */
case 404:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ksem_open */
case 405:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ksem_unlink */
case 406:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ksem_getvalue */
case 407:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ksem_destroy */
case 408:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __mac_get_pid */
case 409:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __mac_get_link */
case 410:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __mac_set_link */
case 411:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* extattr_set_link */
case 412:
if (ndx == 0 || ndx == 1)
2013-04-02 05:30:52 +00:00
p = "ssize_t";
break;
/* extattr_get_link */
case 413:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* extattr_delete_link */
case 414:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __mac_execve */
case 415:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sigaction */
case 416:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sigreturn */
case 417:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getcontext */
case 421:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setcontext */
case 422:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* swapcontext */
case 423:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* swapoff */
case 424:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_get_link */
case 425:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_set_link */
case 426:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_delete_link */
case 427:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __acl_aclcheck_link */
case 428:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sigwait */
case 429:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* thr_create */
case 430:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* thr_exit */
case 431:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* thr_self */
case 432:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* thr_kill */
case 433:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* jail_attach */
case 436:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* extattr_list_fd */
case 437:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* extattr_list_file */
case 438:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* extattr_list_link */
case 439:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* ksem_timedwait */
case 441:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* thr_suspend */
case 442:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* thr_wake */
case 443:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kldunloadf */
case 444:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* audit */
case 445:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* auditon */
case 446:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getauid */
case 447:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setauid */
case 448:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getaudit */
case 449:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setaudit */
case 450:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getaudit_addr */
case 451:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setaudit_addr */
case 452:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* auditctl */
case 453:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* _umtx_op */
case 454:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* thr_new */
case 455:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sigqueue */
case 456:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kmq_open */
case 457:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kmq_setattr */
case 458:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kmq_timedreceive */
case 459:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kmq_timedsend */
case 460:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kmq_notify */
case 461:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* kmq_unlink */
case 462:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* abort2 */
case 463:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* thr_set_name */
case 464:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* aio_fsync */
case 465:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* rtprio_thread */
case 466:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sctp_peeloff */
case 471:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sctp_generic_sendmsg */
case 472:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sctp_generic_sendmsg_iov */
case 473:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* sctp_generic_recvmsg */
case 474:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* pread */
case 475:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* pwrite */
case 476:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* mmap */
case 477:
if (ndx == 0 || ndx == 1)
p = "void *";
break;
/* lseek */
case 478:
if (ndx == 0 || ndx == 1)
p = "off_t";
break;
/* truncate */
case 479:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* ftruncate */
case 480:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* thr_kill2 */
case 481:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* shm_unlink */
case 483:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* cpuset */
case 484:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* cpuset_setid */
case 485:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* cpuset_getid */
case 486:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* cpuset_getaffinity */
case 487:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* cpuset_setaffinity */
case 488:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* faccessat */
case 489:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fchmodat */
case 490:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fchownat */
case 491:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fexecve */
case 492:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* futimesat */
case 494:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* linkat */
case 495:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* mkdirat */
case 496:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* mkfifoat */
case 497:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* openat */
case 499:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* readlinkat */
case 500:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* renameat */
case 501:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* symlinkat */
case 502:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* unlinkat */
case 503:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* posix_openpt */
case 504:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* gssd_syscall */
case 505:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* jail_get */
case 506:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* jail_set */
case 507:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* jail_remove */
case 508:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* closefrom */
case 509:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __semctl */
case 510:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* msgctl */
case 511:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* shmctl */
case 512:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* lpathconf */
case 513:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* __cap_rights_get */
case 515:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* cap_enter */
case 516:
/* cap_getmode */
case 517:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* pdfork */
case 518:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* pdkill */
case 519:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* pdgetpid */
case 520:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* pselect */
case 522:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getloginclass */
case 523:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* setloginclass */
case 524:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* rctl_get_racct */
case 525:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* rctl_get_rules */
case 526:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* rctl_get_limits */
case 527:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* rctl_add_rule */
case 528:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* rctl_remove_rule */
case 529:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* posix_fallocate */
case 530:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* posix_fadvise */
case 531:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2012-11-13 12:53:41 +00:00
/* wait6 */
case 532:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2013-03-02 00:55:09 +00:00
/* cap_rights_limit */
case 533:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* cap_ioctls_limit */
case 534:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* cap_ioctls_get */
case 535:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* cap_fcntls_limit */
case 536:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* cap_fcntls_get */
case 537:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2013-03-02 21:12:54 +00:00
/* bindat */
case 538:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* connectat */
case 539:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* chflagsat */
case 540:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2013-05-01 20:12:58 +00:00
/* accept4 */
case 541:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2013-05-01 22:45:04 +00:00
/* pipe2 */
case 542:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* aio_mlock */
case 543:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2013-09-19 18:56:00 +00:00
/* procctl */
case 544:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2014-11-13 05:28:06 +00:00
/* ppoll */
case 545:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2015-01-23 21:08:24 +00:00
/* futimens */
case 546:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* utimensat */
case 547:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fdatasync */
case 550:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2017-05-23 09:30:42 +00:00
/* fstat */
case 551:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fstatat */
case 552:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fhstat */
case 553:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getdirentries */
case 554:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* statfs */
case 555:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fstatfs */
case 556:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* getfsstat */
case 557:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fhstatfs */
case 558:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* mknodat */
case 559:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2017-06-17 00:58:19 +00:00
/* kevent */
case 560:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2018-01-12 23:06:35 +00:00
/* cpuset_getdomain */
case 561:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* cpuset_setdomain */
case 562:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2018-03-21 01:17:01 +00:00
/* getrandom */
case 563:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2018-12-07 15:19:00 +00:00
/* getfhat */
case 564:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fhlink */
case 565:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fhlinkat */
case 566:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* fhreadlink */
case 567:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2019-04-06 09:37:10 +00:00
/* funlinkat */
case 568:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* copy_file_range */
case 569:
if (ndx == 0 || ndx == 1)
p = "ssize_t";
break;
/* __sysctlbyname */
case 570:
if (ndx == 0 || ndx == 1)
p = "int";
break;
2019-09-25 17:59:58 +00:00
/* shm_open2 */
case 571:
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* shm_rename */
case 572:
if (ndx == 0 || ndx == 1)
p = "int";
break;
default:
break;
};
if (p != NULL)
strlcpy(desc, p, descsz);
}