The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/compat/freebsd32/freebsd32_sysent.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * System call switch table.
    3  *
    4  * DO NOT EDIT-- this file is automatically generated.
    5  * $FreeBSD: releng/5.2/sys/compat/freebsd32/freebsd32_sysent.c 123523 2003-12-13 22:19:06Z peter $
    6  * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.26.2.1 2003/12/13 22:18:27 peter Exp 
    7  */
    8 
    9 #include "opt_compat.h"
   10 
   11 #include <sys/param.h>
   12 #include <sys/sysent.h>
   13 #include <sys/sysproto.h>
   14 #include <sys/mount.h>
   15 #include <compat/freebsd32/freebsd32.h>
   16 #include <compat/freebsd32/freebsd32_proto.h>
   17 
   18 #define AS(name) (sizeof(struct name) / sizeof(register_t))
   19 
   20 #ifdef COMPAT_FREEBSD4
   21 #define compat4(n, name) n, (sy_call_t *)__CONCAT(freebsd4_,name)
   22 #else
   23 #define compat4(n, name) 0, (sy_call_t *)nosys
   24 #endif
   25 
   26 /* The casts are bogus but will do for now. */
   27 struct sysent freebsd32_sysent[] = {
   28         { SYF_MPSAFE | 0, (sy_call_t *)nosys },         /* 0 = syscall */
   29         { SYF_MPSAFE | AS(sys_exit_args), (sy_call_t *)sys_exit },      /* 1 = exit */
   30         { SYF_MPSAFE | 0, (sy_call_t *)fork },          /* 2 = fork */
   31         { SYF_MPSAFE | AS(read_args), (sy_call_t *)read },      /* 3 = read */
   32         { SYF_MPSAFE | AS(write_args), (sy_call_t *)write },    /* 4 = write */
   33         { AS(freebsd32_open_args), (sy_call_t *)freebsd32_open },       /* 5 = freebsd32_open */
   34         { SYF_MPSAFE | AS(close_args), (sy_call_t *)close },    /* 6 = close */
   35         { SYF_MPSAFE | AS(freebsd32_wait4_args), (sy_call_t *)freebsd32_wait4 },        /* 7 = freebsd32_wait4 */
   36         { 0, (sy_call_t *)nosys },                      /* 8 = obsolete old creat */
   37         { AS(link_args), (sy_call_t *)link },           /* 9 = link */
   38         { AS(unlink_args), (sy_call_t *)unlink },       /* 10 = unlink */
   39         { 0, (sy_call_t *)nosys },                      /* 11 = obsolete execv */
   40         { AS(chdir_args), (sy_call_t *)chdir },         /* 12 = chdir */
   41         { AS(fchdir_args), (sy_call_t *)fchdir },       /* 13 = fchdir */
   42         { AS(mknod_args), (sy_call_t *)mknod },         /* 14 = mknod */
   43         { AS(chmod_args), (sy_call_t *)chmod },         /* 15 = chmod */
   44         { AS(chown_args), (sy_call_t *)chown },         /* 16 = chown */
   45         { SYF_MPSAFE | AS(obreak_args), (sy_call_t *)obreak },  /* 17 = break */
   46         { AS(freebsd32_getfsstat_args), (sy_call_t *)freebsd32_getfsstat },     /* 18 = freebsd32_getfsstat */
   47         { 0, (sy_call_t *)nosys },                      /* 19 = obsolete olseek */
   48         { SYF_MPSAFE | 0, (sy_call_t *)getpid },        /* 20 = getpid */
   49         { AS(mount_args), (sy_call_t *)mount },         /* 21 = mount */
   50         { AS(unmount_args), (sy_call_t *)unmount },     /* 22 = unmount */
   51         { SYF_MPSAFE | AS(setuid_args), (sy_call_t *)setuid },  /* 23 = setuid */
   52         { SYF_MPSAFE | 0, (sy_call_t *)getuid },        /* 24 = getuid */
   53         { SYF_MPSAFE | 0, (sy_call_t *)geteuid },       /* 25 = geteuid */
   54         { SYF_MPSAFE | AS(ptrace_args), (sy_call_t *)ptrace },  /* 26 = ptrace */
   55         { 0, (sy_call_t *)nosys },                      /* 27 = recvmsg */
   56         { SYF_MPSAFE | AS(sendmsg_args), (sy_call_t *)sendmsg },        /* 28 = sendmsg */
   57         { SYF_MPSAFE | AS(recvfrom_args), (sy_call_t *)recvfrom },      /* 29 = recvfrom */
   58         { SYF_MPSAFE | AS(accept_args), (sy_call_t *)accept },  /* 30 = accept */
   59         { SYF_MPSAFE | AS(getpeername_args), (sy_call_t *)getpeername },        /* 31 = getpeername */
   60         { SYF_MPSAFE | AS(getsockname_args), (sy_call_t *)getsockname },        /* 32 = getsockname */
   61         { AS(freebsd32_access_args), (sy_call_t *)freebsd32_access },   /* 33 = freebsd32_access */
   62         { AS(freebsd32_chflags_args), (sy_call_t *)freebsd32_chflags }, /* 34 = freebsd32_chflags */
   63         { AS(fchflags_args), (sy_call_t *)fchflags },   /* 35 = fchflags */
   64         { 0, (sy_call_t *)sync },                       /* 36 = sync */
   65         { SYF_MPSAFE | AS(kill_args), (sy_call_t *)kill },      /* 37 = kill */
   66         { 0, (sy_call_t *)nosys },                      /* 38 = ostat */
   67         { SYF_MPSAFE | 0, (sy_call_t *)getppid },       /* 39 = getppid */
   68         { 0, (sy_call_t *)nosys },                      /* 40 = olstat */
   69         { SYF_MPSAFE | AS(dup_args), (sy_call_t *)dup },        /* 41 = dup */
   70         { SYF_MPSAFE | 0, (sy_call_t *)pipe },          /* 42 = pipe */
   71         { SYF_MPSAFE | 0, (sy_call_t *)getegid },       /* 43 = getegid */
   72         { SYF_MPSAFE | AS(profil_args), (sy_call_t *)profil },  /* 44 = profil */
   73         { SYF_MPSAFE | AS(ktrace_args), (sy_call_t *)ktrace },  /* 45 = ktrace */
   74         { 0, (sy_call_t *)nosys },                      /* 46 = osigaction */
   75         { SYF_MPSAFE | 0, (sy_call_t *)getgid },        /* 47 = getgid */
   76         { 0, (sy_call_t *)nosys },                      /* 48 = osigprocmask */
   77         { SYF_MPSAFE | AS(getlogin_args), (sy_call_t *)getlogin },      /* 49 = getlogin */
   78         { SYF_MPSAFE | AS(setlogin_args), (sy_call_t *)setlogin },      /* 50 = setlogin */
   79         { SYF_MPSAFE | AS(acct_args), (sy_call_t *)acct },      /* 51 = acct */
   80         { 0, (sy_call_t *)nosys },                      /* 52 = obsolete osigpending */
   81         { SYF_MPSAFE | AS(freebsd32_sigaltstack_args), (sy_call_t *)freebsd32_sigaltstack },    /* 53 = freebsd32_sigaltstack */
   82         { SYF_MPSAFE | AS(ioctl_args), (sy_call_t *)ioctl },    /* 54 = ioctl */
   83         { SYF_MPSAFE | AS(reboot_args), (sy_call_t *)reboot },  /* 55 = reboot */
   84         { AS(revoke_args), (sy_call_t *)revoke },       /* 56 = revoke */
   85         { AS(symlink_args), (sy_call_t *)symlink },     /* 57 = symlink */
   86         { AS(readlink_args), (sy_call_t *)readlink },   /* 58 = readlink */
   87         { AS(freebsd32_execve_args), (sy_call_t *)freebsd32_execve },   /* 59 = freebsd32_execve */
   88         { SYF_MPSAFE | AS(umask_args), (sy_call_t *)umask },    /* 60 = umask */
   89         { AS(chroot_args), (sy_call_t *)chroot },       /* 61 = chroot */
   90         { 0, (sy_call_t *)nosys },                      /* 62 = obsolete ofstat */
   91         { 0, (sy_call_t *)nosys },                      /* 63 = obsolete ogetkerninfo */
   92         { 0, (sy_call_t *)nosys },                      /* 64 = obsolete ogetpagesize */
   93         { 0, (sy_call_t *)nosys },                      /* 65 = obsolete omsync */
   94         { SYF_MPSAFE | 0, (sy_call_t *)vfork },         /* 66 = vfork */
   95         { 0, (sy_call_t *)nosys },                      /* 67 = obsolete vread */
   96         { 0, (sy_call_t *)nosys },                      /* 68 = obsolete vwrite */
   97         { SYF_MPSAFE | AS(sbrk_args), (sy_call_t *)sbrk },      /* 69 = sbrk */
   98         { SYF_MPSAFE | AS(sstk_args), (sy_call_t *)sstk },      /* 70 = sstk */
   99         { 0, (sy_call_t *)nosys },                      /* 71 = obsolete ommap */
  100         { SYF_MPSAFE | AS(ovadvise_args), (sy_call_t *)ovadvise },      /* 72 = vadvise */
  101         { SYF_MPSAFE | AS(munmap_args), (sy_call_t *)munmap },  /* 73 = munmap */
  102         { SYF_MPSAFE | AS(mprotect_args), (sy_call_t *)mprotect },      /* 74 = mprotect */
  103         { SYF_MPSAFE | AS(madvise_args), (sy_call_t *)madvise },        /* 75 = madvise */
  104         { 0, (sy_call_t *)nosys },                      /* 76 = obsolete vhangup */
  105         { 0, (sy_call_t *)nosys },                      /* 77 = obsolete vlimit */
  106         { SYF_MPSAFE | AS(mincore_args), (sy_call_t *)mincore },        /* 78 = mincore */
  107         { SYF_MPSAFE | AS(getgroups_args), (sy_call_t *)getgroups },    /* 79 = getgroups */
  108         { SYF_MPSAFE | AS(setgroups_args), (sy_call_t *)setgroups },    /* 80 = setgroups */
  109         { SYF_MPSAFE | 0, (sy_call_t *)getpgrp },       /* 81 = getpgrp */
  110         { SYF_MPSAFE | AS(setpgid_args), (sy_call_t *)setpgid },        /* 82 = setpgid */
  111         { AS(freebsd32_setitimer_args), (sy_call_t *)freebsd32_setitimer },     /* 83 = freebsd32_setitimer */
  112         { 0, (sy_call_t *)nosys },                      /* 84 = obsolete owait */
  113         { 0, (sy_call_t *)nosys },                      /* 85 = obsolete oswapon */
  114         { 0, (sy_call_t *)nosys },                      /* 86 = obsolete ogetitimer */
  115         { 0, (sy_call_t *)nosys },                      /* 87 = obsolete ogethostname */
  116         { 0, (sy_call_t *)nosys },                      /* 88 = obsolete osethostname */
  117         { SYF_MPSAFE | 0, (sy_call_t *)getdtablesize }, /* 89 = getdtablesize */
  118         { SYF_MPSAFE | AS(dup2_args), (sy_call_t *)dup2 },      /* 90 = dup2 */
  119         { 0, (sy_call_t *)nosys },                      /* 91 = getdopt */
  120         { SYF_MPSAFE | AS(fcntl_args), (sy_call_t *)fcntl },    /* 92 = fcntl */
  121         { AS(freebsd32_select_args), (sy_call_t *)freebsd32_select },   /* 93 = freebsd32_select */
  122         { 0, (sy_call_t *)nosys },                      /* 94 = setdopt */
  123         { AS(fsync_args), (sy_call_t *)fsync },         /* 95 = fsync */
  124         { SYF_MPSAFE | AS(setpriority_args), (sy_call_t *)setpriority },        /* 96 = setpriority */
  125         { SYF_MPSAFE | AS(socket_args), (sy_call_t *)socket },  /* 97 = socket */
  126         { SYF_MPSAFE | AS(connect_args), (sy_call_t *)connect },        /* 98 = connect */
  127         { 0, (sy_call_t *)nosys },                      /* 99 = obsolete oaccept */
  128         { SYF_MPSAFE | AS(getpriority_args), (sy_call_t *)getpriority },        /* 100 = getpriority */
  129         { 0, (sy_call_t *)nosys },                      /* 101 = obsolete osend */
  130         { 0, (sy_call_t *)nosys },                      /* 102 = obsolete orecv */
  131         { 0, (sy_call_t *)nosys },                      /* 103 = obsolete osigreturn */
  132         { SYF_MPSAFE | AS(bind_args), (sy_call_t *)bind },      /* 104 = bind */
  133         { SYF_MPSAFE | AS(setsockopt_args), (sy_call_t *)setsockopt },  /* 105 = setsockopt */
  134         { SYF_MPSAFE | AS(listen_args), (sy_call_t *)listen },  /* 106 = listen */
  135         { 0, (sy_call_t *)nosys },                      /* 107 = obsolete vtimes */
  136         { 0, (sy_call_t *)nosys },                      /* 108 = obsolete osigvec */
  137         { 0, (sy_call_t *)nosys },                      /* 109 = obsolete osigblock */
  138         { 0, (sy_call_t *)nosys },                      /* 110 = obsolete osigsetmask */
  139         { 0, (sy_call_t *)nosys },                      /* 111 = obsolete osigsuspend */
  140         { 0, (sy_call_t *)nosys },                      /* 112 = obsolete osigstack */
  141         { 0, (sy_call_t *)nosys },                      /* 113 = obsolete orecvmsg */
  142         { 0, (sy_call_t *)nosys },                      /* 114 = obsolete osendmsg */
  143         { 0, (sy_call_t *)nosys },                      /* 115 = obsolete vtrace */
  144         { AS(freebsd32_gettimeofday_args), (sy_call_t *)freebsd32_gettimeofday },       /* 116 = freebsd32_gettimeofday */
  145         { AS(freebsd32_getrusage_args), (sy_call_t *)freebsd32_getrusage },     /* 117 = freebsd32_getrusage */
  146         { SYF_MPSAFE | AS(getsockopt_args), (sy_call_t *)getsockopt },  /* 118 = getsockopt */
  147         { 0, (sy_call_t *)nosys },                      /* 119 = resuba */
  148         { AS(freebsd32_readv_args), (sy_call_t *)freebsd32_readv },     /* 120 = freebsd32_readv */
  149         { AS(freebsd32_writev_args), (sy_call_t *)freebsd32_writev },   /* 121 = freebsd32_writev */
  150         { AS(freebsd32_settimeofday_args), (sy_call_t *)freebsd32_settimeofday },       /* 122 = freebsd32_settimeofday */
  151         { AS(fchown_args), (sy_call_t *)fchown },       /* 123 = fchown */
  152         { AS(fchmod_args), (sy_call_t *)fchmod },       /* 124 = fchmod */
  153         { 0, (sy_call_t *)nosys },                      /* 125 = obsolete orecvfrom */
  154         { SYF_MPSAFE | AS(setreuid_args), (sy_call_t *)setreuid },      /* 126 = setreuid */
  155         { SYF_MPSAFE | AS(setregid_args), (sy_call_t *)setregid },      /* 127 = setregid */
  156         { AS(rename_args), (sy_call_t *)rename },       /* 128 = rename */
  157         { 0, (sy_call_t *)nosys },                      /* 129 = obsolete otruncate */
  158         { 0, (sy_call_t *)nosys },                      /* 130 = obsolete ftruncate */
  159         { SYF_MPSAFE | AS(flock_args), (sy_call_t *)flock },    /* 131 = flock */
  160         { AS(mkfifo_args), (sy_call_t *)mkfifo },       /* 132 = mkfifo */
  161         { SYF_MPSAFE | AS(sendto_args), (sy_call_t *)sendto },  /* 133 = sendto */
  162         { SYF_MPSAFE | AS(shutdown_args), (sy_call_t *)shutdown },      /* 134 = shutdown */
  163         { SYF_MPSAFE | AS(socketpair_args), (sy_call_t *)socketpair },  /* 135 = socketpair */
  164         { AS(mkdir_args), (sy_call_t *)mkdir },         /* 136 = mkdir */
  165         { AS(rmdir_args), (sy_call_t *)rmdir },         /* 137 = rmdir */
  166         { AS(freebsd32_utimes_args), (sy_call_t *)freebsd32_utimes },   /* 138 = freebsd32_utimes */
  167         { 0, (sy_call_t *)nosys },                      /* 139 = obsolete 4.2 sigreturn */
  168         { AS(freebsd32_adjtime_args), (sy_call_t *)freebsd32_adjtime }, /* 140 = freebsd32_adjtime */
  169         { 0, (sy_call_t *)nosys },                      /* 141 = obsolete ogetpeername */
  170         { 0, (sy_call_t *)nosys },                      /* 142 = obsolete ogethostid */
  171         { 0, (sy_call_t *)nosys },                      /* 143 = obsolete sethostid */
  172         { 0, (sy_call_t *)nosys },                      /* 144 = obsolete getrlimit */
  173         { 0, (sy_call_t *)nosys },                      /* 145 = obsolete setrlimit */
  174         { 0, (sy_call_t *)nosys },                      /* 146 = obsolete killpg */
  175         { SYF_MPSAFE | 0, (sy_call_t *)setsid },        /* 147 = setsid */
  176         { AS(quotactl_args), (sy_call_t *)quotactl },   /* 148 = quotactl */
  177         { 0, (sy_call_t *)nosys },                      /* 149 = obsolete oquota */
  178         { 0, (sy_call_t *)nosys },                      /* 150 = obsolete ogetsockname */
  179         { 0, (sy_call_t *)nosys },                      /* 151 = sem_lock */
  180         { 0, (sy_call_t *)nosys },                      /* 152 = sem_wakeup */
  181         { 0, (sy_call_t *)nosys },                      /* 153 = asyncdaemon */
  182         { 0, (sy_call_t *)nosys },                      /* 154 = nosys */
  183         { 0, (sy_call_t *)nosys },                      /* 155 = nfssvc */
  184         { 0, (sy_call_t *)nosys },                      /* 156 = obsolete ogetdirentries */
  185         { AS(freebsd32_statfs_args), (sy_call_t *)freebsd32_statfs },   /* 157 = freebsd32_statfs */
  186         { AS(freebsd32_fstatfs_args), (sy_call_t *)freebsd32_fstatfs }, /* 158 = freebsd32_fstatfs */
  187         { 0, (sy_call_t *)nosys },                      /* 159 = nosys */
  188         { 0, (sy_call_t *)nosys },                      /* 160 = nosys */
  189         { AS(getfh_args), (sy_call_t *)getfh },         /* 161 = getfh */
  190         { SYF_MPSAFE | AS(getdomainname_args), (sy_call_t *)getdomainname },    /* 162 = getdomainname */
  191         { SYF_MPSAFE | AS(setdomainname_args), (sy_call_t *)setdomainname },    /* 163 = setdomainname */
  192         { SYF_MPSAFE | AS(uname_args), (sy_call_t *)uname },    /* 164 = uname */
  193         { SYF_MPSAFE | AS(sysarch_args), (sy_call_t *)sysarch },        /* 165 = sysarch */
  194         { SYF_MPSAFE | AS(rtprio_args), (sy_call_t *)rtprio },  /* 166 = rtprio */
  195         { 0, (sy_call_t *)nosys },                      /* 167 = nosys */
  196         { 0, (sy_call_t *)nosys },                      /* 168 = nosys */
  197         { AS(freebsd32_semsys_args), (sy_call_t *)freebsd32_semsys },   /* 169 = freebsd32_semsys */
  198         { AS(freebsd32_msgsys_args), (sy_call_t *)freebsd32_msgsys },   /* 170 = freebsd32_msgsys */
  199         { AS(freebsd32_shmsys_args), (sy_call_t *)freebsd32_shmsys },   /* 171 = freebsd32_shmsys */
  200         { 0, (sy_call_t *)nosys },                      /* 172 = nosys */
  201         { AS(freebsd32_pread_args), (sy_call_t *)freebsd32_pread },     /* 173 = freebsd32_pread */
  202         { AS(freebsd32_pwrite_args), (sy_call_t *)freebsd32_pwrite },   /* 174 = freebsd32_pwrite */
  203         { 0, (sy_call_t *)nosys },                      /* 175 = nosys */
  204         { SYF_MPSAFE | AS(ntp_adjtime_args), (sy_call_t *)ntp_adjtime },        /* 176 = ntp_adjtime */
  205         { 0, (sy_call_t *)nosys },                      /* 177 = sfork */
  206         { 0, (sy_call_t *)nosys },                      /* 178 = getdescriptor */
  207         { 0, (sy_call_t *)nosys },                      /* 179 = setdescriptor */
  208         { 0, (sy_call_t *)nosys },                      /* 180 = nosys */
  209         { SYF_MPSAFE | AS(setgid_args), (sy_call_t *)setgid },  /* 181 = setgid */
  210         { SYF_MPSAFE | AS(setegid_args), (sy_call_t *)setegid },        /* 182 = setegid */
  211         { SYF_MPSAFE | AS(seteuid_args), (sy_call_t *)seteuid },        /* 183 = seteuid */
  212         { 0, (sy_call_t *)nosys },                      /* 184 = lfs_bmapv */
  213         { 0, (sy_call_t *)nosys },                      /* 185 = lfs_markv */
  214         { 0, (sy_call_t *)nosys },                      /* 186 = lfs_segclean */
  215         { 0, (sy_call_t *)nosys },                      /* 187 = lfs_segwait */
  216         { AS(freebsd32_stat_args), (sy_call_t *)freebsd32_stat },       /* 188 = freebsd32_stat */
  217         { AS(freebsd32_fstat_args), (sy_call_t *)freebsd32_fstat },     /* 189 = freebsd32_fstat */
  218         { AS(freebsd32_lstat_args), (sy_call_t *)freebsd32_lstat },     /* 190 = freebsd32_lstat */
  219         { AS(pathconf_args), (sy_call_t *)pathconf },   /* 191 = pathconf */
  220         { SYF_MPSAFE | AS(fpathconf_args), (sy_call_t *)fpathconf },    /* 192 = fpathconf */
  221         { 0, (sy_call_t *)nosys },                      /* 193 = nosys */
  222         { SYF_MPSAFE | AS(__getrlimit_args), (sy_call_t *)getrlimit },  /* 194 = getrlimit */
  223         { SYF_MPSAFE | AS(__setrlimit_args), (sy_call_t *)setrlimit },  /* 195 = setrlimit */
  224         { AS(getdirentries_args), (sy_call_t *)getdirentries }, /* 196 = getdirentries */
  225         { AS(freebsd32_mmap_args), (sy_call_t *)freebsd32_mmap },       /* 197 = freebsd32_mmap */
  226         { 0, (sy_call_t *)nosys },                      /* 198 = __syscall */
  227         { AS(freebsd32_lseek_args), (sy_call_t *)freebsd32_lseek },     /* 199 = freebsd32_lseek */
  228         { AS(freebsd32_truncate_args), (sy_call_t *)freebsd32_truncate },       /* 200 = freebsd32_truncate */
  229         { AS(freebsd32_ftruncate_args), (sy_call_t *)freebsd32_ftruncate },     /* 201 = freebsd32_ftruncate */
  230         { SYF_MPSAFE | AS(freebsd32_sysctl_args), (sy_call_t *)freebsd32_sysctl },      /* 202 = freebsd32_sysctl */
  231         { SYF_MPSAFE | AS(mlock_args), (sy_call_t *)mlock },    /* 203 = mlock */
  232         { SYF_MPSAFE | AS(munlock_args), (sy_call_t *)munlock },        /* 204 = munlock */
  233         { AS(undelete_args), (sy_call_t *)undelete },   /* 205 = undelete */
  234         { AS(futimes_args), (sy_call_t *)futimes },     /* 206 = futimes */
  235         { SYF_MPSAFE | AS(getpgid_args), (sy_call_t *)getpgid },        /* 207 = getpgid */
  236         { 0, (sy_call_t *)nosys },                      /* 208 = newreboot */
  237         { SYF_MPSAFE | AS(poll_args), (sy_call_t *)poll },      /* 209 = poll */
  238         { 0, (sy_call_t *)nosys },                      /* 210 =  */
  239         { 0, (sy_call_t *)nosys },                      /* 211 =  */
  240         { 0, (sy_call_t *)nosys },                      /* 212 =  */
  241         { 0, (sy_call_t *)nosys },                      /* 213 =  */
  242         { 0, (sy_call_t *)nosys },                      /* 214 =  */
  243         { 0, (sy_call_t *)nosys },                      /* 215 =  */
  244         { 0, (sy_call_t *)nosys },                      /* 216 =  */
  245         { 0, (sy_call_t *)nosys },                      /* 217 =  */
  246         { 0, (sy_call_t *)nosys },                      /* 218 =  */
  247         { 0, (sy_call_t *)nosys },                      /* 219 =  */
  248         { SYF_MPSAFE | AS(__semctl_args), (sy_call_t *)__semctl },      /* 220 = __semctl */
  249         { SYF_MPSAFE | AS(semget_args), (sy_call_t *)semget },  /* 221 = semget */
  250         { SYF_MPSAFE | AS(semop_args), (sy_call_t *)semop },    /* 222 = semop */
  251         { 0, (sy_call_t *)nosys },                      /* 223 = semconfig */
  252         { SYF_MPSAFE | AS(msgctl_args), (sy_call_t *)msgctl },  /* 224 = msgctl */
  253         { SYF_MPSAFE | AS(msgget_args), (sy_call_t *)msgget },  /* 225 = msgget */
  254         { SYF_MPSAFE | AS(msgsnd_args), (sy_call_t *)msgsnd },  /* 226 = msgsnd */
  255         { SYF_MPSAFE | AS(msgrcv_args), (sy_call_t *)msgrcv },  /* 227 = msgrcv */
  256         { SYF_MPSAFE | AS(shmat_args), (sy_call_t *)shmat },    /* 228 = shmat */
  257         { SYF_MPSAFE | AS(shmctl_args), (sy_call_t *)shmctl },  /* 229 = shmctl */
  258         { SYF_MPSAFE | AS(shmdt_args), (sy_call_t *)shmdt },    /* 230 = shmdt */
  259         { SYF_MPSAFE | AS(shmget_args), (sy_call_t *)shmget },  /* 231 = shmget */
  260         { SYF_MPSAFE | AS(clock_gettime_args), (sy_call_t *)clock_gettime },    /* 232 = clock_gettime */
  261         { SYF_MPSAFE | AS(clock_settime_args), (sy_call_t *)clock_settime },    /* 233 = clock_settime */
  262         { SYF_MPSAFE | AS(clock_getres_args), (sy_call_t *)clock_getres },      /* 234 = clock_getres */
  263         { 0, (sy_call_t *)nosys },                      /* 235 = timer_create */
  264         { 0, (sy_call_t *)nosys },                      /* 236 = timer_delete */
  265         { 0, (sy_call_t *)nosys },                      /* 237 = timer_settime */
  266         { 0, (sy_call_t *)nosys },                      /* 238 = timer_gettime */
  267         { 0, (sy_call_t *)nosys },                      /* 239 = timer_getoverrun */
  268         { SYF_MPSAFE | AS(nanosleep_args), (sy_call_t *)nanosleep },    /* 240 = nanosleep */
  269         { 0, (sy_call_t *)nosys },                      /* 241 = nosys */
  270         { 0, (sy_call_t *)nosys },                      /* 242 = nosys */
  271         { 0, (sy_call_t *)nosys },                      /* 243 = nosys */
  272         { 0, (sy_call_t *)nosys },                      /* 244 = nosys */
  273         { 0, (sy_call_t *)nosys },                      /* 245 = nosys */
  274         { 0, (sy_call_t *)nosys },                      /* 246 = nosys */
  275         { 0, (sy_call_t *)nosys },                      /* 247 = nosys */
  276         { 0, (sy_call_t *)nosys },                      /* 248 = nosys */
  277         { 0, (sy_call_t *)nosys },                      /* 249 = nosys */
  278         { SYF_MPSAFE | AS(minherit_args), (sy_call_t *)minherit },      /* 250 = minherit */
  279         { SYF_MPSAFE | AS(rfork_args), (sy_call_t *)rfork },    /* 251 = rfork */
  280         { SYF_MPSAFE | AS(openbsd_poll_args), (sy_call_t *)openbsd_poll },      /* 252 = openbsd_poll */
  281         { SYF_MPSAFE | 0, (sy_call_t *)issetugid },     /* 253 = issetugid */
  282         { AS(lchown_args), (sy_call_t *)lchown },       /* 254 = lchown */
  283         { 0, (sy_call_t *)nosys },                      /* 255 = nosys */
  284         { 0, (sy_call_t *)nosys },                      /* 256 = nosys */
  285         { 0, (sy_call_t *)nosys },                      /* 257 = nosys */
  286         { 0, (sy_call_t *)nosys },                      /* 258 = nosys */
  287         { 0, (sy_call_t *)nosys },                      /* 259 = nosys */
  288         { 0, (sy_call_t *)nosys },                      /* 260 = nosys */
  289         { 0, (sy_call_t *)nosys },                      /* 261 = nosys */
  290         { 0, (sy_call_t *)nosys },                      /* 262 = nosys */
  291         { 0, (sy_call_t *)nosys },                      /* 263 = nosys */
  292         { 0, (sy_call_t *)nosys },                      /* 264 = nosys */
  293         { 0, (sy_call_t *)nosys },                      /* 265 = nosys */
  294         { 0, (sy_call_t *)nosys },                      /* 266 = nosys */
  295         { 0, (sy_call_t *)nosys },                      /* 267 = nosys */
  296         { 0, (sy_call_t *)nosys },                      /* 268 = nosys */
  297         { 0, (sy_call_t *)nosys },                      /* 269 = nosys */
  298         { 0, (sy_call_t *)nosys },                      /* 270 = nosys */
  299         { 0, (sy_call_t *)nosys },                      /* 271 = nosys */
  300         { AS(getdents_args), (sy_call_t *)getdents },   /* 272 = getdents */
  301         { 0, (sy_call_t *)nosys },                      /* 273 = nosys */
  302         { AS(lchmod_args), (sy_call_t *)lchmod },       /* 274 = lchmod */
  303         { AS(lchown_args), (sy_call_t *)lchown },       /* 275 = netbsd_lchown */
  304         { AS(lutimes_args), (sy_call_t *)lutimes },     /* 276 = lutimes */
  305         { SYF_MPSAFE | AS(msync_args), (sy_call_t *)msync },    /* 277 = netbsd_msync */
  306         { AS(nstat_args), (sy_call_t *)nstat },         /* 278 = nstat */
  307         { SYF_MPSAFE | AS(nfstat_args), (sy_call_t *)nfstat },  /* 279 = nfstat */
  308         { AS(nlstat_args), (sy_call_t *)nlstat },       /* 280 = nlstat */
  309         { 0, (sy_call_t *)nosys },                      /* 281 = nosys */
  310         { 0, (sy_call_t *)nosys },                      /* 282 = nosys */
  311         { 0, (sy_call_t *)nosys },                      /* 283 = nosys */
  312         { 0, (sy_call_t *)nosys },                      /* 284 = nosys */
  313         { 0, (sy_call_t *)nosys },                      /* 285 = nosys */
  314         { 0, (sy_call_t *)nosys },                      /* 286 = nosys */
  315         { 0, (sy_call_t *)nosys },                      /* 287 = nosys */
  316         { 0, (sy_call_t *)nosys },                      /* 288 = nosys */
  317         { 0, (sy_call_t *)nosys },                      /* 289 = nosys */
  318         { 0, (sy_call_t *)nosys },                      /* 290 = nosys */
  319         { 0, (sy_call_t *)nosys },                      /* 291 = nosys */
  320         { 0, (sy_call_t *)nosys },                      /* 292 = nosys */
  321         { 0, (sy_call_t *)nosys },                      /* 293 = nosys */
  322         { 0, (sy_call_t *)nosys },                      /* 294 = nosys */
  323         { 0, (sy_call_t *)nosys },                      /* 295 = nosys */
  324         { 0, (sy_call_t *)nosys },                      /* 296 = nosys */
  325         { AS(fhstatfs_args), (sy_call_t *)fhstatfs },   /* 297 = fhstatfs */
  326         { AS(fhopen_args), (sy_call_t *)fhopen },       /* 298 = fhopen */
  327         { AS(fhstat_args), (sy_call_t *)fhstat },       /* 299 = fhstat */
  328         { SYF_MPSAFE | AS(modnext_args), (sy_call_t *)modnext },        /* 300 = modnext */
  329         { SYF_MPSAFE | AS(modstat_args), (sy_call_t *)modstat },        /* 301 = modstat */
  330         { SYF_MPSAFE | AS(modfnext_args), (sy_call_t *)modfnext },      /* 302 = modfnext */
  331         { SYF_MPSAFE | AS(modfind_args), (sy_call_t *)modfind },        /* 303 = modfind */
  332         { SYF_MPSAFE | AS(kldload_args), (sy_call_t *)kldload },        /* 304 = kldload */
  333         { SYF_MPSAFE | AS(kldunload_args), (sy_call_t *)kldunload },    /* 305 = kldunload */
  334         { SYF_MPSAFE | AS(kldfind_args), (sy_call_t *)kldfind },        /* 306 = kldfind */
  335         { SYF_MPSAFE | AS(kldnext_args), (sy_call_t *)kldnext },        /* 307 = kldnext */
  336         { SYF_MPSAFE | AS(kldstat_args), (sy_call_t *)kldstat },        /* 308 = kldstat */
  337         { SYF_MPSAFE | AS(kldfirstmod_args), (sy_call_t *)kldfirstmod },        /* 309 = kldfirstmod */
  338         { SYF_MPSAFE | AS(getsid_args), (sy_call_t *)getsid },  /* 310 = getsid */
  339         { SYF_MPSAFE | AS(setresuid_args), (sy_call_t *)setresuid },    /* 311 = setresuid */
  340         { SYF_MPSAFE | AS(setresgid_args), (sy_call_t *)setresgid },    /* 312 = setresgid */
  341         { 0, (sy_call_t *)nosys },                      /* 313 = obsolete signanosleep */
  342         { 0, (sy_call_t *)nosys },                      /* 314 = aio_return */
  343         { 0, (sy_call_t *)nosys },                      /* 315 = aio_suspend */
  344         { 0, (sy_call_t *)nosys },                      /* 316 = aio_cancel */
  345         { 0, (sy_call_t *)nosys },                      /* 317 = aio_error */
  346         { 0, (sy_call_t *)nosys },                      /* 318 = aio_read */
  347         { 0, (sy_call_t *)nosys },                      /* 319 = aio_write */
  348         { 0, (sy_call_t *)nosys },                      /* 320 = lio_listio */
  349         { SYF_MPSAFE | 0, (sy_call_t *)yield },         /* 321 = yield */
  350         { 0, (sy_call_t *)nosys },                      /* 322 = obsolete thr_sleep */
  351         { 0, (sy_call_t *)nosys },                      /* 323 = obsolete thr_wakeup */
  352         { SYF_MPSAFE | AS(mlockall_args), (sy_call_t *)mlockall },      /* 324 = mlockall */
  353         { SYF_MPSAFE | 0, (sy_call_t *)munlockall },    /* 325 = munlockall */
  354         { AS(__getcwd_args), (sy_call_t *)__getcwd },   /* 326 = __getcwd */
  355         { SYF_MPSAFE | AS(sched_setparam_args), (sy_call_t *)sched_setparam },  /* 327 = sched_setparam */
  356         { SYF_MPSAFE | AS(sched_getparam_args), (sy_call_t *)sched_getparam },  /* 328 = sched_getparam */
  357         { SYF_MPSAFE | AS(sched_setscheduler_args), (sy_call_t *)sched_setscheduler },  /* 329 = sched_setscheduler */
  358         { SYF_MPSAFE | AS(sched_getscheduler_args), (sy_call_t *)sched_getscheduler },  /* 330 = sched_getscheduler */
  359         { SYF_MPSAFE | 0, (sy_call_t *)sched_yield },   /* 331 = sched_yield */
  360         { SYF_MPSAFE | AS(sched_get_priority_max_args), (sy_call_t *)sched_get_priority_max },  /* 332 = sched_get_priority_max */
  361         { SYF_MPSAFE | AS(sched_get_priority_min_args), (sy_call_t *)sched_get_priority_min },  /* 333 = sched_get_priority_min */
  362         { SYF_MPSAFE | AS(sched_rr_get_interval_args), (sy_call_t *)sched_rr_get_interval },    /* 334 = sched_rr_get_interval */
  363         { SYF_MPSAFE | AS(utrace_args), (sy_call_t *)utrace },  /* 335 = utrace */
  364         { compat4(SYF_MPSAFE | AS(freebsd4_freebsd32_sendfile_args),freebsd32_sendfile) },      /* 336 = old freebsd32_sendfile */
  365         { AS(kldsym_args), (sy_call_t *)kldsym },       /* 337 = kldsym */
  366         { SYF_MPSAFE | AS(jail_args), (sy_call_t *)jail },      /* 338 = jail */
  367         { 0, (sy_call_t *)nosys },                      /* 339 = pioctl */
  368         { SYF_MPSAFE | AS(sigprocmask_args), (sy_call_t *)sigprocmask },        /* 340 = sigprocmask */
  369         { SYF_MPSAFE | AS(sigsuspend_args), (sy_call_t *)sigsuspend },  /* 341 = sigsuspend */
  370         { compat4(SYF_MPSAFE | AS(freebsd4_freebsd32_sigaction_args),freebsd32_sigaction) },    /* 342 = old freebsd32_sigaction */
  371         { SYF_MPSAFE | AS(sigpending_args), (sy_call_t *)sigpending },  /* 343 = sigpending */
  372         { compat4(SYF_MPSAFE | AS(freebsd4_freebsd32_sigreturn_args),freebsd32_sigreturn) },    /* 344 = old freebsd32_sigreturn */
  373         { 0, (sy_call_t *)nosys },                      /* 345 = sigtimedwait */
  374         { 0, (sy_call_t *)nosys },                      /* 346 = sigwaitinfo */
  375         { SYF_MPSAFE | AS(__acl_get_file_args), (sy_call_t *)__acl_get_file },  /* 347 = __acl_get_file */
  376         { SYF_MPSAFE | AS(__acl_set_file_args), (sy_call_t *)__acl_set_file },  /* 348 = __acl_set_file */
  377         { SYF_MPSAFE | AS(__acl_get_fd_args), (sy_call_t *)__acl_get_fd },      /* 349 = __acl_get_fd */
  378         { SYF_MPSAFE | AS(__acl_set_fd_args), (sy_call_t *)__acl_set_fd },      /* 350 = __acl_set_fd */
  379         { SYF_MPSAFE | AS(__acl_delete_file_args), (sy_call_t *)__acl_delete_file },    /* 351 = __acl_delete_file */
  380         { SYF_MPSAFE | AS(__acl_delete_fd_args), (sy_call_t *)__acl_delete_fd },        /* 352 = __acl_delete_fd */
  381         { SYF_MPSAFE | AS(__acl_aclcheck_file_args), (sy_call_t *)__acl_aclcheck_file },        /* 353 = __acl_aclcheck_file */
  382         { SYF_MPSAFE | AS(__acl_aclcheck_fd_args), (sy_call_t *)__acl_aclcheck_fd },    /* 354 = __acl_aclcheck_fd */
  383         { AS(extattrctl_args), (sy_call_t *)extattrctl },       /* 355 = extattrctl */
  384         { AS(extattr_set_file_args), (sy_call_t *)extattr_set_file },   /* 356 = extattr_set_file */
  385         { AS(extattr_get_file_args), (sy_call_t *)extattr_get_file },   /* 357 = extattr_get_file */
  386         { AS(extattr_delete_file_args), (sy_call_t *)extattr_delete_file },     /* 358 = extattr_delete_file */
  387         { 0, (sy_call_t *)nosys },                      /* 359 = aio_waitcomplete */
  388         { SYF_MPSAFE | AS(getresuid_args), (sy_call_t *)getresuid },    /* 360 = getresuid */
  389         { SYF_MPSAFE | AS(getresgid_args), (sy_call_t *)getresgid },    /* 361 = getresgid */
  390         { SYF_MPSAFE | 0, (sy_call_t *)kqueue },        /* 362 = kqueue */
  391         { SYF_MPSAFE | AS(freebsd32_kevent_args), (sy_call_t *)freebsd32_kevent },      /* 363 = freebsd32_kevent */
  392         { 0, (sy_call_t *)nosys },                      /* 364 = __cap_get_proc */
  393         { 0, (sy_call_t *)nosys },                      /* 365 = __cap_set_proc */
  394         { 0, (sy_call_t *)nosys },                      /* 366 = __cap_get_fd */
  395         { 0, (sy_call_t *)nosys },                      /* 367 = __cap_get_file */
  396         { 0, (sy_call_t *)nosys },                      /* 368 = __cap_set_fd */
  397         { 0, (sy_call_t *)nosys },                      /* 369 = __cap_set_file */
  398         { 0, (sy_call_t *)nosys },                      /* 370 = lkmressys */
  399         { AS(extattr_set_fd_args), (sy_call_t *)extattr_set_fd },       /* 371 = extattr_set_fd */
  400         { AS(extattr_get_fd_args), (sy_call_t *)extattr_get_fd },       /* 372 = extattr_get_fd */
  401         { AS(extattr_delete_fd_args), (sy_call_t *)extattr_delete_fd }, /* 373 = extattr_delete_fd */
  402         { SYF_MPSAFE | AS(__setugid_args), (sy_call_t *)__setugid },    /* 374 = __setugid */
  403         { 0, (sy_call_t *)nosys },                      /* 375 = nfsclnt */
  404         { AS(eaccess_args), (sy_call_t *)eaccess },     /* 376 = eaccess */
  405         { 0, (sy_call_t *)nosys },                      /* 377 = afs_syscall */
  406         { AS(nmount_args), (sy_call_t *)nmount },       /* 378 = nmount */
  407         { 0, (sy_call_t *)kse_exit },                   /* 379 = kse_exit */
  408         { AS(kse_wakeup_args), (sy_call_t *)kse_wakeup },       /* 380 = kse_wakeup */
  409         { AS(kse_create_args), (sy_call_t *)kse_create },       /* 381 = kse_create */
  410         { AS(kse_thr_interrupt_args), (sy_call_t *)kse_thr_interrupt }, /* 382 = kse_thr_interrupt */
  411         { 0, (sy_call_t *)kse_release },                /* 383 = kse_release */
  412         { 0, (sy_call_t *)nosys },                      /* 384 = __mac_get_proc */
  413         { 0, (sy_call_t *)nosys },                      /* 385 = __mac_set_proc */
  414         { 0, (sy_call_t *)nosys },                      /* 386 = __mac_get_fd */
  415         { 0, (sy_call_t *)nosys },                      /* 387 = __mac_get_file */
  416         { 0, (sy_call_t *)nosys },                      /* 388 = __mac_set_fd */
  417         { 0, (sy_call_t *)nosys },                      /* 389 = __mac_set_file */
  418         { AS(kenv_args), (sy_call_t *)kenv },           /* 390 = kenv */
  419         { AS(lchflags_args), (sy_call_t *)lchflags },   /* 391 = lchflags */
  420         { AS(uuidgen_args), (sy_call_t *)uuidgen },     /* 392 = uuidgen */
  421         { SYF_MPSAFE | AS(freebsd32_sendfile_args), (sy_call_t *)freebsd32_sendfile },  /* 393 = freebsd32_sendfile */
  422         { 0, (sy_call_t *)nosys },                      /* 394 = mac_syscall */
  423         { 0, (sy_call_t *)nosys },                      /* 395 = nosys */
  424         { 0, (sy_call_t *)nosys },                      /* 396 = nosys */
  425         { 0, (sy_call_t *)nosys },                      /* 397 = nosys */
  426         { 0, (sy_call_t *)nosys },                      /* 398 = nosys */
  427         { 0, (sy_call_t *)nosys },                      /* 399 = nosys */
  428         { 0, (sy_call_t *)nosys },                      /* 400 = ksem_close */
  429         { 0, (sy_call_t *)nosys },                      /* 401 = ksem_post */
  430         { 0, (sy_call_t *)nosys },                      /* 402 = ksem_wait */
  431         { 0, (sy_call_t *)nosys },                      /* 403 = ksem_trywait */
  432         { 0, (sy_call_t *)nosys },                      /* 404 = ksem_init */
  433         { 0, (sy_call_t *)nosys },                      /* 405 = ksem_open */
  434         { 0, (sy_call_t *)nosys },                      /* 406 = ksem_unlink */
  435         { 0, (sy_call_t *)nosys },                      /* 407 = ksem_getvalue */
  436         { 0, (sy_call_t *)nosys },                      /* 408 = ksem_destroy */
  437         { 0, (sy_call_t *)nosys },                      /* 409 = __mac_get_pid */
  438         { 0, (sy_call_t *)nosys },                      /* 410 = __mac_get_link */
  439         { 0, (sy_call_t *)nosys },                      /* 411 = __mac_set_link */
  440         { 0, (sy_call_t *)nosys },                      /* 412 = extattr_set_link */
  441         { 0, (sy_call_t *)nosys },                      /* 413 = extattr_get_link */
  442         { 0, (sy_call_t *)nosys },                      /* 414 = extattr_delete_link */
  443         { 0, (sy_call_t *)nosys },                      /* 415 = __mac_execve */
  444         { AS(freebsd32_sigaction_args), (sy_call_t *)freebsd32_sigaction },     /* 416 = freebsd32_sigaction */
  445         { SYF_MPSAFE | AS(freebsd32_sigreturn_args), (sy_call_t *)freebsd32_sigreturn },        /* 417 = freebsd32_sigreturn */
  446         { 0, (sy_call_t *)nosys },                      /* 418 = __xstat */
  447         { 0, (sy_call_t *)nosys },                      /* 419 = __xfstat */
  448         { 0, (sy_call_t *)nosys },                      /* 420 = __xlstat */
  449         { 0, (sy_call_t *)nosys },                      /* 421 = getcontext */
  450         { 0, (sy_call_t *)nosys },                      /* 422 = setcontext */
  451         { 0, (sy_call_t *)nosys },                      /* 423 = swapcontext */
  452         { 0, (sy_call_t *)nosys },                      /* 424 = swapoff */
  453         { 0, (sy_call_t *)nosys },                      /* 425 = __acl_get_link */
  454         { 0, (sy_call_t *)nosys },                      /* 426 = __acl_set_link */
  455         { 0, (sy_call_t *)nosys },                      /* 427 = __acl_delete_link */
  456         { 0, (sy_call_t *)nosys },                      /* 428 = __acl_aclcheck_link */
  457         { 0, (sy_call_t *)nosys },                      /* 429 = sigwait */
  458         { SYF_MPSAFE | AS(thr_create_args), (sy_call_t *)thr_create },  /* 430 = thr_create */
  459         { SYF_MPSAFE | 0, (sy_call_t *)thr_exit },      /* 431 = thr_exit */
  460         { SYF_MPSAFE | AS(thr_self_args), (sy_call_t *)thr_self },      /* 432 = thr_self */
  461         { SYF_MPSAFE | AS(thr_kill_args), (sy_call_t *)thr_kill },      /* 433 = thr_kill */
  462         { SYF_MPSAFE | AS(_umtx_lock_args), (sy_call_t *)_umtx_lock },  /* 434 = _umtx_lock */
  463         { SYF_MPSAFE | AS(_umtx_unlock_args), (sy_call_t *)_umtx_unlock },      /* 435 = _umtx_unlock */
  464         { SYF_MPSAFE | AS(jail_attach_args), (sy_call_t *)jail_attach },        /* 436 = jail_attach */
  465         { 0, (sy_call_t *)nosys },                      /* 437 = extattr_list_fd */
  466         { 0, (sy_call_t *)nosys },                      /* 438 = extattr_list_file */
  467         { 0, (sy_call_t *)nosys },                      /* 439 = extattr_list_link */
  468         { 0, (sy_call_t *)nosys },                      /* 440 = kse_switchin */
  469 };

Cache object: 527afce24c256f008d4539e21de28805


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.