From owner-cvs-src-old@FreeBSD.ORG Wed Dec 10 20:56:57 2008 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D84E106567C for ; Wed, 10 Dec 2008 20:56:57 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 698B08FC19 for ; Wed, 10 Dec 2008 20:56:57 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id mBAKuvSi017850 for ; Wed, 10 Dec 2008 20:56:57 GMT (envelope-from jhb@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id mBAKuvoE017849 for cvs-src-old@freebsd.org; Wed, 10 Dec 2008 20:56:57 GMT (envelope-from jhb@repoman.freebsd.org) Message-Id: <200812102056.mBAKuvoE017849@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to jhb@repoman.freebsd.org using -f From: John Baldwin Date: Wed, 10 Dec 2008 20:56:19 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/compat/freebsd32 syscalls.master src/sys/kern vfs_aio.c src/sys/modules/aio Makefile X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Dec 2008 20:56:57 -0000 jhb 2008-12-10 20:56:19 UTC FreeBSD src repository Modified files: sys/compat/freebsd32 syscalls.master sys/kern vfs_aio.c sys/modules/aio Makefile Log: SVN rev 185878 on 2008-12-10 20:56:19Z by jhb - 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 Revision Changes Path 1.113 +28 -12 src/sys/compat/freebsd32/syscalls.master 1.240 +755 -126 src/sys/kern/vfs_aio.c 1.3 +1 -1 src/sys/modules/aio/Makefile