diff options
author | jhb <jhb@FreeBSD.org> | 2008-12-10 20:56:19 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2008-12-10 20:56:19 +0000 |
commit | f3dcc2d9e01895192f0f2cd23f138318b5165a71 (patch) | |
tree | 7f083c44ae313d40be6d905d4f71318477976d29 /sys/modules | |
parent | b771657b300c491b2b1a2b18ddbcdbb4984b90c9 (diff) | |
download | FreeBSD-src-f3dcc2d9e01895192f0f2cd23f138318b5165a71.zip FreeBSD-src-f3dcc2d9e01895192f0f2cd23f138318b5165a71.tar.gz |
- Add 32-bit compat system calls for VFS_AIO. The system calls live in the
aio code and are registered via the recently added SYSCALL32_*() helpers.
- Since the aio code likes to invoke fuword and suword a lot down in the
"bowels" of system calls, add a structure holding a set of operations for
things like storing errors, copying in the aiocb structure, storing
status, etc. The 32-bit system calls use a separate operations vector to
handle fuword32 vs fuword, etc. Also, the oldsigevent handling is now
done by having seperate operation vectors with different aiocb copyin
routines.
- Split out kern_foo() functions for the various AIO system calls so the
32-bit front ends can manage things like copying in and converting
timespec structures, etc.
- For both the native and 32-bit aio_suspend() and lio_listio() calls,
just use copyin() to read the array of aiocb pointers instead of using
a for loop that iterated over fuword/fuword32. The error handling in
the old case was incomplete (lio_listio() just ignored any aiocb's that
it got an EFAULT trying to read rather than reporting an error), and
possibly slower.
MFC after: 1 month
Diffstat (limited to 'sys/modules')
-rw-r--r-- | sys/modules/aio/Makefile | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/modules/aio/Makefile b/sys/modules/aio/Makefile index c73f651..95e6cb5 100644 --- a/sys/modules/aio/Makefile +++ b/sys/modules/aio/Makefile @@ -3,7 +3,7 @@ .PATH: ${.CURDIR}/../../kern KMOD= aio -SRCS= vfs_aio.c opt_vfs_aio.h vnode_if.h +SRCS= vfs_aio.c opt_vfs_aio.h vnode_if.h opt_compat.h EXPORT_SYMS= aio_init_aioinfo aio_aqueue |