]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/kern/init_sysent.c
xnu-517.12.7.tar.gz
[apple/xnu.git] / bsd / kern / init_sysent.c
index b0cc649ebfe10aefe90ddb07a4be38b0ce2ad585..431063091d884429d4959421c7fd9a8323c070af 100644 (file)
@@ -1,24 +1,21 @@
 /*
 /*
- * Copyright (c) 1995-1999, 2000-2002 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 1995-2004 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
+ * The contents of this file constitute Original Code as defined in and
+ * are subject to the Apple Public Source License Version 1.1 (the
+ * "License").  You may not use this file except in compliance with the
+ * License.  Please obtain a copy of the License at
+ * http://www.apple.com/publicsource and read it before using this file.
  * 
  * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * This Original Code and all software distributed under the License are
+ * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
+ * License for the specific language governing rights and limitations
+ * under the License.
  * 
  * @APPLE_LICENSE_HEADER_END@
  */
  * 
  * @APPLE_LICENSE_HEADER_END@
  */
@@ -127,6 +124,9 @@ int setpriority();
 int    socket();
 int    connect();
 int    getpriority();
 int    socket();
 int    connect();
 int    getpriority();
+#ifdef __ppc__
+int    osigreturn();
+#endif
 int    sigreturn();
 int    bind();
 int    setsockopt();
 int    sigreturn();
 int    bind();
 int    setsockopt();
@@ -302,6 +302,9 @@ int sem_getvalue();
 int sem_init();
 int sem_destroy();
 
 int sem_init();
 int sem_destroy();
 
+int fmod_watch_enable();
+int fmod_watch();
+
 int    issetugid();
 int    utrace();
 int    pread();
 int    issetugid();
 int    utrace();
 int    pread();
@@ -314,10 +317,48 @@ int sigwait();
 int pthread_sigmask();
 int __disable_threadsignal();
 
 int pthread_sigmask();
 int __disable_threadsignal();
 
+int    nfsclnt();
+int    fhopen();
+
+int    aio_cancel();
+int    aio_error();
+int    aio_fsync();
+int    aio_read();
+int    aio_return();
+int aio_suspend();
+int    aio_write();
+int    lio_listio();
+
+int    kqueue();
+int    kqueue_portset_np();
+int    kqueue_from_portset_np();
+int    kevent();
+
+int audit();
+int auditon();
+int getauid();
+int setauid();
+int getaudit();
+int setaudit();
+int getaudit_addr();
+int setaudit_addr();
+int auditctl();
+
 /*
  * System call switch table.
  */
 
 /*
  * System call switch table.
  */
 
+/*
+ * N.B.
+ * The argument count numbers in this table are actually
+ * the number of UInt32 words that comprise the arguments
+ * not the number of arguments
+ *
+ * This value is not currently used on PPC but Intel Darwin
+ * does use it and will not work correctly if the values
+ * are wrong
+ */
+
 struct sysent sysent[] = {
        syss(nosys,0),                  /*   0 = indir */
        syss(exit,1),                   /*   1 = exit */
 struct sysent sysent[] = {
        syss(nosys,0),                  /*   0 = indir */
        syss(exit,1),                   /*   1 = exit */
@@ -396,7 +437,7 @@ struct sysent sysent[] = {
        syss(sstk,1),                   /*  70 = sstk */
        compat(smmap,6),                /*  71 = old mmap */
        syss(ovadvise,1),               /*  72 = old vadvise */
        syss(sstk,1),                   /*  70 = sstk */
        compat(smmap,6),                /*  71 = old mmap */
        syss(ovadvise,1),               /*  72 = old vadvise */
-       syss(munmap,2),                 /*  73 = munmap */
+       sysnofnl(munmap,2),             /*  73 = munmap */
        syss(mprotect,3),               /*  74 = mprotect */
        syss(madvise,3),                /*  75 = madvise */
        syss(nosys,0),                  /*  76 was obsolete vhangup */
        syss(mprotect,3),               /*  74 = mprotect */
        syss(madvise,3),                /*  75 = madvise */
        syss(nosys,0),                  /*  76 was obsolete vhangup */
@@ -407,7 +448,7 @@ struct sysent sysent[] = {
        sysp(getpgrp,0),                /*  81 = getpgrp */
        sysp(setpgid,2),                /*  82 = setpgid */
        syss(setitimer,3),              /*  83 = setitimer */
        sysp(getpgrp,0),                /*  81 = getpgrp */
        sysp(setpgid,2),                /*  82 = setpgid */
        syss(setitimer,3),              /*  83 = setitimer */
-       compat(wait,0), /*  84 = old wait */
+       compat(wait,1), /*  84 = old wait */
        syss(swapon,1),                 /*  85 = swapon */
        syss(getitimer,2),              /*  86 = getitimer */
        compat(gethostname,2),  /*  87 = old gethostname */
        syss(swapon,1),                 /*  85 = swapon */
        syss(getitimer,2),              /*  86 = getitimer */
        compat(gethostname,2),  /*  87 = old gethostname */
@@ -426,7 +467,11 @@ struct sysent sysent[] = {
        sysp(getpriority,2),    /* 100 = getpriority */
        comaptnet(send,4),              /* 101 = old send */
        comaptnet(recv,4),              /* 102 = old recv */
        sysp(getpriority,2),    /* 100 = getpriority */
        comaptnet(send,4),              /* 101 = old send */
        comaptnet(recv,4),              /* 102 = old recv */
-       syss(sigreturn,1),              /* 103 = sigreturn */
+#ifdef __ppc__
+       syss(osigreturn,1),             /* 103 = sigreturn ; compat for jaguar*/
+#else
+       syss(sigreturn,1),              /* 103 = sigreturn  */
+#endif
        sysnets(bind,3),                /* 104 = bind */
        sysnets(setsockopt,5),  /* 105 = setsockopt */
        sysnets(listen,2),              /* 106 = listen */
        sysnets(bind,3),                /* 104 = bind */
        sysnets(setsockopt,5),  /* 105 = setsockopt */
        sysnets(listen,2),              /* 106 = listen */
@@ -439,6 +484,18 @@ struct sysent sysent[] = {
        comaptnet(recvmsg,3),   /* 113 = recvmsg */
        comaptnet(sendmsg,3),   /* 114 = sendmsg */
        syss(nosys,0),                  /* 115 = old vtrace */
        comaptnet(recvmsg,3),   /* 113 = recvmsg */
        comaptnet(sendmsg,3),   /* 114 = sendmsg */
        syss(nosys,0),                  /* 115 = old vtrace */
+
+/*
+ * N.B.
+ * The argument count numbers in this table are actually
+ * the number of UInt32 words that comprise the arguments
+ * not the number of arguments
+ *
+ * This value is not currently used on PPC but Intel Darwin
+ * does use it and will not work correctly if the values
+ * are wrong
+ */
+
 #ifdef __ppc__
        sysnofnl(ppc_gettimeofday,2),   /* 116 = gettimeofday */
 #else
 #ifdef __ppc__
        sysnofnl(ppc_gettimeofday,2),   /* 116 = gettimeofday */
 #else
@@ -481,11 +538,11 @@ struct sysent sysent[] = {
        syss(getpgid,1),                /* 151 = getpgid */
        sysp(setprivexec,1),/* 152 = setprivexec */
 #ifdef DOUBLE_ALIGN_PARAMS
        syss(getpgid,1),                /* 151 = getpgid */
        sysp(setprivexec,1),/* 152 = setprivexec */
 #ifdef DOUBLE_ALIGN_PARAMS
+       syss(pread,6),          /* 153 = pread */
+       syss(pwrite,6),         /* 154 = pwrite */
+#else
        syss(pread,5),          /* 153 = pread */
        syss(pwrite,5),         /* 154 = pwrite */
        syss(pread,5),          /* 153 = pread */
        syss(pwrite,5),         /* 154 = pwrite */
-#else
-       syss(pread,4),          /* 153 = pread */
-       syss(pwrite,4),         /* 154 = pwrite */
 #endif
        syss(nfssvc,2),                 /* 155 = nfs_svc */
        compat(getdirentries,4),        /* 156 = old getdirentries */
 #endif
        syss(nfssvc,2),                 /* 155 = nfs_svc */
        compat(getdirentries,4),        /* 156 = old getdirentries */
@@ -499,7 +556,7 @@ struct sysent sysent[] = {
        syss(nosys,0),                  /* 164 */
 #if    QUOTA
        syss(quotactl, 4),              /* 165 = quotactl */
        syss(nosys,0),                  /* 164 */
 #if    QUOTA
        syss(quotactl, 4),              /* 165 = quotactl */
-#else  QUOTA
+#else  /* QUOTA */
        syss(nosys, 0),         /* 165 = not configured */
 #endif /* QUOTA */
        syss(nosys,0),                  /* 166 was exportfs */
        syss(nosys, 0),         /* 165 = not configured */
 #endif /* QUOTA */
        syss(nosys,0),                  /* 166 was exportfs */
@@ -516,11 +573,15 @@ struct sysent sysent[] = {
        syss(nosys,0),                  /* 177 */
        syss(nosys,0),                  /* 178 */
        syss(nosys,0),                  /* 179 */
        syss(nosys,0),                  /* 177 */
        syss(nosys,0),                  /* 178 */
        syss(nosys,0),                  /* 179 */
-       syss(kdebug_trace,6),           /* 180 */
+       sysnofnl(kdebug_trace,6),       /* 180 */
        syss(setgid,1),                 /* 181 */
        syss(setegid,1),                /* 182 */
        syss(seteuid,1),                /* 183 */
        syss(setgid,1),                 /* 181 */
        syss(setegid,1),                /* 182 */
        syss(seteuid,1),                /* 183 */
+#ifdef __ppc__
+       syss(sigreturn, 2),             /* 184 = nosys */
+#else
        syss(nosys,0),                  /* 184 = nosys */
        syss(nosys,0),                  /* 184 = nosys */
+#endif
        syss(nosys,0),                  /* 185 = nosys */
        syss(nosys,0),                  /* 186 = nosys */
        syss(nosys,0),                  /* 187 = nosys */
        syss(nosys,0),                  /* 185 = nosys */
        syss(nosys,0),                  /* 186 = nosys */
        syss(nosys,0),                  /* 187 = nosys */
@@ -529,6 +590,18 @@ struct sysent sysent[] = {
        syss(lstat,2),                  /* 190 = lstat */
        syss(pathconf,2),               /* 191 = pathconf */
        syss(fpathconf,2),              /* 192 = fpathconf */
        syss(lstat,2),                  /* 190 = lstat */
        syss(pathconf,2),               /* 191 = pathconf */
        syss(fpathconf,2),              /* 192 = fpathconf */
+
+/*
+ * N.B.
+ * The argument count numbers in this table are actually
+ * the number of UInt32 words that comprise the arguments
+ * not the number of arguments
+ *
+ * This value is not currently used on PPC but Intel Darwin
+ * does use it and will not work correctly if the values
+ * are wrong
+ */
+
 #if COMPAT_GETFSSTAT
        syss(getfsstat,3),              /* 193 = getfsstat */
 #else
 #if COMPAT_GETFSSTAT
        syss(getfsstat,3),              /* 193 = getfsstat */
 #else
@@ -568,8 +641,8 @@ struct sysent sysent[] = {
        sysnets(ATPgetreq,3),           /* 211 = ATPgetreq*/
        sysnets(ATPgetrsp,2),           /* 212 = ATPgetrsp*/
        syss(nosys,0),                  /* 213 = Reserved for AppleTalk */
        sysnets(ATPgetreq,3),           /* 211 = ATPgetreq*/
        sysnets(ATPgetrsp,2),           /* 212 = ATPgetrsp*/
        syss(nosys,0),                  /* 213 = Reserved for AppleTalk */
-       syss(nosys,0),                  /* 214 = Reserved for AppleTalk */
-       syss(nosys,0),                  /* 215 = Reserved for AppleTalk */
+       syss(kqueue_from_portset_np,1), /* 214 = kqueue_from_portset_np */
+       syss(kqueue_portset_np,1),      /* 215 = kqueue_portset_np */
 #else
        syss(nosys,0),                  /* 206 = Reserved for AppleTalk */
        syss(nosys,0),                  /* 207 = Reserved for AppleTalk */
 #else
        syss(nosys,0),                  /* 206 = Reserved for AppleTalk */
        syss(nosys,0),                  /* 207 = Reserved for AppleTalk */
@@ -592,6 +665,18 @@ struct sysent sysent[] = {
  * We expect all filesystems to recognize the call and report that it is
  * not supported or to actually implement it.
  */
  * We expect all filesystems to recognize the call and report that it is
  * not supported or to actually implement it.
  */
+
+/*
+ * N.B.
+ * The argument count numbers in this table are actually
+ * the number of UInt32 words that comprise the arguments
+ * not the number of arguments
+ *
+ * This value is not currently used on PPC but Intel Darwin
+ * does use it and will not work correctly if the values
+ * are wrong
+ */
+
        syss(nosys,3),  /* 216 = HFS make complex file call (multipel forks */
        syss(nosys,2),          /* 217 = HFS statv extended stat call for HFS */
        syss(nosys,2),          /* 218 = HFS lstatv extended lstat call for HFS */      
        syss(nosys,3),  /* 216 = HFS make complex file call (multipel forks */
        syss(nosys,2),          /* 217 = HFS statv extended stat call for HFS */
        syss(nosys,2),          /* 218 = HFS lstatv extended lstat call for HFS */      
@@ -607,7 +692,7 @@ struct sysent sysent[] = {
 #endif /* __APPLE_API_OBSOLETE */
        syss(searchfs,6),       /* 225 = HFS searchfs to implement catalog searching */
        syss(delete,1),         /* 226 = private delete (Carbon semantics) */
 #endif /* __APPLE_API_OBSOLETE */
        syss(searchfs,6),       /* 225 = HFS searchfs to implement catalog searching */
        syss(delete,1),         /* 226 = private delete (Carbon semantics) */
-       syss(copyfile,4),       /* 227 = copyfile - orignally for AFP */
+       syss(copyfile,6),       /* 227 = copyfile - orignally for AFP */
        syss(nosys,0),          /* 228 */
        syss(nosys,0),          /* 229 */
        syss(nosys,0),          /* 230 */
        syss(nosys,0),          /* 228 */
        syss(nosys,0),          /* 229 */
        syss(nosys,0),          /* 230 */
@@ -627,8 +712,8 @@ struct sysent sysent[] = {
        syss(nosys,0),          /* 244 */
        syss(nosys,0),          /* 245 */
        syss(nosys,0),          /* 246 */
        syss(nosys,0),          /* 244 */
        syss(nosys,0),          /* 245 */
        syss(nosys,0),          /* 246 */
-       syss(nosys,0),          /* 247 */
-       syss(nosys,0),          /* 248 */
+       syss(nfsclnt,2),        /* 247 = nfsclnt*/
+       syss(fhopen,2),         /* 248 = fhopen */
        syss(nosys,0),          /* 249 */
        syss(minherit,3),       /* 250 = minherit */
        syss(semsys,5),         /* 251 = semsys */
        syss(nosys,0),          /* 249 */
        syss(minherit,3),       /* 250 = minherit */
        syss(semsys,5),         /* 251 = semsys */
@@ -669,8 +754,8 @@ struct sysent sysent[] = {
        syss(nosys,0),          /* 286 */
        syss(nosys,0),          /* 287 */
        syss(nosys,0),          /* 288 */
        syss(nosys,0),          /* 286 */
        syss(nosys,0),          /* 287 */
        syss(nosys,0),          /* 288 */
-       syss(nosys,0),          /* 289 */
-       syss(nosys,0),          /* 290 */
+       syss(fmod_watch_enable, 1),     /* 289 = fmod_watching */
+       syss(fmod_watch, 4),    /* 290 = fmod_watch */
        syss(nosys,0),          /* 291 */
        syss(nosys,0),          /* 292 */
        syss(nosys,0),          /* 293 */
        syss(nosys,0),          /* 291 */
        syss(nosys,0),          /* 292 */
        syss(nosys,0),          /* 293 */
@@ -693,14 +778,14 @@ struct sysent sysent[] = {
        syss(getsid,1),         /* 310 = getsid */
        syss(nosys,0),          /* 311 */
        syss(nosys,0),          /* 312 */
        syss(getsid,1),         /* 310 = getsid */
        syss(nosys,0),          /* 311 */
        syss(nosys,0),          /* 312 */
-       syss(nosys,0),          /* 313 */
-       syss(nosys,0),          /* 314 */
-       syss(nosys,0),          /* 315 */
-       syss(nosys,0),          /* 316 */
-       syss(nosys,0),          /* 317 */
-       syss(nosys,0),          /* 318 */
-       syss(nosys,0),          /* 319 */
-       syss(nosys,0),          /* 320 */
+       sysnofnl(aio_fsync,1),          /* 313 = aio_fsync */
+       sysnofnl(aio_return,1),         /* 314 = aio_return */
+       sysnofnl(aio_suspend,3),        /* 315 = aio_suspend */
+       sysnofnl(aio_cancel,2),         /* 316 = aio_cancel */
+       sysnofnl(aio_error,1),          /* 317 = aio_error */
+       sysnofnl(aio_read,1),           /* 318 = aio_read */
+       sysnofnl(aio_write,1),          /* 319 = aio_write */
+       sysnofnl(lio_listio,4),         /* 320 = lio_listio */
        syss(nosys,0),          /* 321 */
        syss(nosys,0),          /* 322 */
        syss(nosys,0),          /* 323 */
        syss(nosys,0),          /* 321 */
        syss(nosys,0),          /* 322 */
        syss(nosys,0),          /* 323 */
@@ -729,6 +814,38 @@ struct sysent sysent[] = {
        syss(nosys,0),          /* 346 */
        syss(nosys,0),          /* 347 */
        syss(nosys,0),          /* 348 */
        syss(nosys,0),          /* 346 */
        syss(nosys,0),          /* 347 */
        syss(nosys,0),          /* 348 */
-       syss(nosys,0)           /* 349 */
+       syss(nosys,0),          /* 349 */
+       syss(audit,2),          /* 350 */
+       syss(auditon,3),        /* 351 */
+       syss(nosys,0),          /* 352 */
+       syss(getauid,1),        /* 353 */
+       syss(setauid,1),        /* 354 */
+       syss(getaudit,1),       /* 355 */
+       syss(setaudit,1),       /* 356 */
+       syss(getaudit_addr,2),  /* 357 */
+       syss(setaudit_addr,2),  /* 358 */
+       syss(auditctl,1),       /* 359 */
+       syss(nosys,0),          /* 360 */
+       syss(nosys,0),          /* 361 */
+       syss(kqueue,0),         /* 362 = kqueue */
+       syss(kevent,6),         /* 363 = kevent */
+       syss(nosys,0),          /* 364 */
+       syss(nosys,0),          /* 365 */
+       syss(nosys,0),          /* 366 */
+       syss(nosys,0),          /* 367 */
+       syss(nosys,0),          /* 368 */
+       syss(nosys,0)           /* 369 */
+
+/*
+ * N.B.
+ * The argument count numbers in this table are actually
+ * the number of UInt32 words that comprise the arguments
+ * not the number of arguments
+ *
+ * This value is not currently used on PPC but Intel Darwin
+ * does use it and will not work correctly if the values
+ * are wrong
+ */
+
 };
 int    nsysent = sizeof(sysent) / sizeof(sysent[0]);
 };
 int    nsysent = sizeof(sysent) / sizeof(sysent[0]);