freebsd-nq/sys/compat/freebsd32
Adrian Chadd 79750e3b36 Migrate the sendfile_sync structure into a public(ish) API in preparation
for extending and reusing it.

The sendfile_sync wrapper is mostly just a "mbuf transaction" wrapper,
used to indicate that the backing store for a group of mbufs has completed.
It's only being used by sendfile for now and it's only implementing a
sleep/wakeup rendezvous.  However, there are other potential signaling
paths (kqueue) and other potential uses (socket zero-copy write) where the
same mechanism would also be useful.

So, with that in mind:

* extract the sendfile_sync code out into sf_sync_*() methods
* teach the sf_sync_alloc method about the current config flag -
  it will eventually know about kqueue.
* move the sendfile_sync code out of do_sendfile() - the only thing
  it now knows about is the sfs pointer.  The guts of the sync
  rendezvous (setup, rendezvous/wait, free) is now done in the
  syscall wrapper.
* .. and teach the 32-bit compat sendfile call the same.

This should be a no-op.  It's primarily preparation work for teaching
the sendfile_sync about kqueue notification.

Tested:

* Peter Holm's sendfile stress / regression scripts

Sponsored by:	Netflix, Inc.
2013-12-01 03:53:21 +00:00
..
freebsd32_capability.c Disallow cap_enter() in freebsd32 compatibility mode. 2013-09-17 20:48:19 +00:00
freebsd32_ioctl.c Change the cap_rights_t type from uint64_t to a structure that we can extend 2013-09-05 00:09:56 +00:00
freebsd32_ioctl.h Provide the structures and ioctl number definition for handling 2011-04-02 15:47:23 +00:00
freebsd32_ipc.h
freebsd32_misc.c Migrate the sendfile_sync structure into a public(ish) API in preparation 2013-12-01 03:53:21 +00:00
freebsd32_misc.h Move the PAIR32TO64() macro and the RETVAL_HI/RETVAL_LO defines to a 2013-08-18 13:34:11 +00:00
freebsd32_proto.h Regen. 2013-09-19 18:56:00 +00:00
freebsd32_signal.h Move the convert_sigevent32() utility function into freebsd32_misc.c 2013-07-21 19:33:48 +00:00
freebsd32_syscall.h Regen. 2013-09-19 18:56:00 +00:00
freebsd32_syscalls.c Regen. 2013-09-19 18:56:00 +00:00
freebsd32_sysent.c Regen. 2013-09-19 18:56:00 +00:00
freebsd32_systrace_args.c Regenerate syscall argument strings after r255777. 2013-09-21 23:06:36 +00:00
freebsd32_util.h In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
freebsd32.h Add an kinfo sysctl to retrieve signal trampoline location for the 2013-11-26 19:47:09 +00:00
Makefile add DTrace systrace support for linux32 and freebsd32 on amd64 syscalls 2011-03-12 08:51:43 +00:00
syscalls.conf add DTrace systrace support for linux32 and freebsd32 on amd64 syscalls 2011-03-12 08:51:43 +00:00
syscalls.master Extend the support for exempting processes from being killed when swap is 2013-09-19 18:53:42 +00:00