diff options
author | alfred <alfred@FreeBSD.org> | 2001-12-29 07:13:47 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2001-12-29 07:13:47 +0000 |
commit | f097734c278c9d8c5412bc8bdd71ac4cf940152b (patch) | |
tree | 5fea52eb8edad79619358670508ccdce9203dfdf /sys/kern/syscalls.master | |
parent | f96a36771992bfbe155d46db18744d7c849d2518 (diff) | |
download | FreeBSD-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.master | 16 |
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); } |