f3dcc2d9e0
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
11 lines
173 B
Makefile
11 lines
173 B
Makefile
# $FreeBSD$
|
|
|
|
.PATH: ${.CURDIR}/../../kern
|
|
|
|
KMOD= aio
|
|
SRCS= vfs_aio.c opt_vfs_aio.h vnode_if.h opt_compat.h
|
|
|
|
EXPORT_SYMS= aio_init_aioinfo aio_aqueue
|
|
|
|
.include <bsd.kmod.mk>
|