Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Dec 2008 20:56:19 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/compat/freebsd32 syscalls.master src/sys/kern vfs_aio.c src/sys/modules/aio Makefile
Message-ID:  <200812102056.mBAKuvoE017849@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812102056.mBAKuvoE017849>