summaryrefslogtreecommitdiffstats
path: root/sys/kern/syscalls.master
diff options
context:
space:
mode:
authoralfred <alfred@FreeBSD.org>2001-12-29 07:13:47 +0000
committeralfred <alfred@FreeBSD.org>2001-12-29 07:13:47 +0000
commitf097734c278c9d8c5412bc8bdd71ac4cf940152b (patch)
tree5fea52eb8edad79619358670508ccdce9203dfdf /sys/kern/syscalls.master
parentf96a36771992bfbe155d46db18744d7c849d2518 (diff)
downloadFreeBSD-src-f097734c278c9d8c5412bc8bdd71ac4cf940152b.zip
FreeBSD-src-f097734c278c9d8c5412bc8bdd71ac4cf940152b.tar.gz
Make AIO a loadable module.
Remove the explicit call to aio_proc_rundown() from exit1(), instead AIO will use at_exit(9). Add functions at_exec(9), rm_at_exec(9) which function nearly the same as at_exec(9) and rm_at_exec(9), these functions are called on behalf of modules at the time of execve(2) after the image activator has run. Use a modified version of tegge's suggestion via at_exec(9) to close an exploitable race in AIO. Fix SYSCALL_MODULE_HELPER such that it's archetecuterally neutral, the problem was that one had to pass it a paramater indicating the number of arguments which were actually the number of "int". Fix it by using an inline version of the AS macro against the syscall arguments. (AS should be available globally but we'll get to that later.) Add a primative system for dynamically adding kqueue ops, it's really not as sophisticated as it should be, but I'll discuss with jlemon when he's around.
Diffstat (limited to 'sys/kern/syscalls.master')
-rw-r--r--sys/kern/syscalls.master16
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master
index 050adb3..7eb38c8 100644
--- a/sys/kern/syscalls.master
+++ b/sys/kern/syscalls.master
@@ -454,13 +454,13 @@
311 MSTD BSD { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
312 MSTD BSD { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
313 OBSOL NOHIDE signanosleep
-314 STD BSD { int aio_return(struct aiocb *aiocbp); }
-315 STD BSD { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }
-316 STD BSD { int aio_cancel(int fd, struct aiocb *aiocbp); }
-317 STD BSD { int aio_error(struct aiocb *aiocbp); }
-318 STD BSD { int aio_read(struct aiocb *aiocbp); }
-319 STD BSD { int aio_write(struct aiocb *aiocbp); }
-320 STD BSD { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
+314 NOSTD BSD { int aio_return(struct aiocb *aiocbp); }
+315 NOSTD BSD { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }
+316 NOSTD BSD { int aio_cancel(int fd, struct aiocb *aiocbp); }
+317 NOSTD BSD { int aio_error(struct aiocb *aiocbp); }
+318 NOSTD BSD { int aio_read(struct aiocb *aiocbp); }
+319 NOSTD BSD { int aio_write(struct aiocb *aiocbp); }
+320 NOSTD BSD { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
321 MSTD BSD { int yield(void); }
322 OBSOL NOHIDE thr_sleep
323 OBSOL NOHIDE thr_wakeup
@@ -519,7 +519,7 @@
struct iovec *iovp, unsigned iovcnt); }
358 STD BSD { int extattr_delete_file(const char *path, \
int attrnamespace, const char *attrname); }
-359 STD BSD { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }
+359 NOSTD BSD { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }
360 MSTD BSD { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
361 MSTD BSD { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
362 MSTD BSD { int kqueue(void); }
OpenPOWER on IntegriCloud