freebsd-skq/sys/kern
John Dyson 84af4da65a Finish up the vast majority of the AIO/LIO functionality. Proper signal
support was missing in the previous version of the AIO code.  More
tunables added, and very efficient support for VCHR files has been added.
Kernel threads are not used for VCHR files, all work for such files is
done for the requesting process directly.  Some attempt has been made to
charge the requesting process for resource utilization, but more work
is needed.  aio_fsync is still missing (but the original fsync system
call can be used for now.)  aio_cancel is essentially a noop, but that
is okay per POSIX.  More aio_cancel functionality can be added later,
if it is found to be needed.

The functions implemented include:
	aio_read, aio_write, lio_listio, aio_error, aio_return,
	aio_cancel, aio_suspend.

The code has been implemented to support the POSIX spec 1003.1b
(formerly known as POSIX 1003.4 spec) features of the above.  The
async I/O features are truly async, with the VCHR mode of operation
being essentially the same as physio (for appropriate files) for
maximum efficiency.  This code also supports the signal capability,
is highly tunable, allowing management of resource usage, and
has been written to allow a per process usage quota.

Both the O'Reilly POSIX.4 book and the actual POSIX 1003.1b document
were the reference specs used.  Any filedescriptor can be used with
these new system calls.  I know of no exceptions where these
system calls will not work.  (TTY's will also probably work.)
1997-11-30 04:36:31 +00:00
..
imgact_aout.c Removed unused #includes. 1997-09-02 20:06:59 +00:00
imgact_elf.c We were (I think) missing a vrele() on the vnode for the object loaded 1997-09-21 03:13:21 +00:00
imgact_gzip.c Removed unused #includes. 1997-09-02 20:06:59 +00:00
imgact_shell.c Removed unused #includes. 1997-08-02 14:33:27 +00:00
inflate.c Last major round (Unless Bruce thinks of somthing :-) of malloc changes. 1997-10-12 20:26:33 +00:00
init_main.c Shift a few SYSINT() calls around. 1997-11-25 07:07:48 +00:00
init_sysent.c Remade syscalls.master derived files. 1997-10-26 20:28:54 +00:00
init_sysvec.c Removed unused #includes. 1997-08-02 14:33:27 +00:00
kern_acct.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
kern_clock.c Removed all traces of P_IDLEPROC. It was tested but never set. 1997-11-24 15:15:33 +00:00
kern_conf.c Staticized. 1997-11-22 08:35:46 +00:00
kern_descrip.c Fix and complete the AIO syscalls. There are some performance enhancements 1997-11-29 01:33:10 +00:00
kern_exec.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
kern_exit.c Avoid passing a `retval' to wait1() 1997-11-20 19:09:43 +00:00
kern_fork.c Removed unused includes. 1997-11-20 16:36:17 +00:00
kern_intr.c - Hide the 'device doesn't supported shared interrupts' code behind 1997-10-06 04:27:32 +00:00
kern_ktrace.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
kern_linker.c Fixed a sloppy common-style definitions. 1997-11-20 20:07:59 +00:00
kern_lkm.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
kern_lock.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
kern_lockf.c Last major round (Unless Bruce thinks of somthing :-) of malloc changes. 1997-10-12 20:26:33 +00:00
kern_malloc.c Remove the long description from the in-kernel datastructure. 1997-10-28 19:01:02 +00:00
kern_mib.c kern.maxproc is not writable since there are tables that are statically 1997-10-19 18:45:59 +00:00
kern_module.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
kern_ntptime.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
kern_opt.c Added a copyright and restored order. 1997-02-28 10:14:24 +00:00
kern_physio.c Removed unused #includes. 1997-09-02 20:06:59 +00:00
kern_proc.c Last major round (Unless Bruce thinks of somthing :-) of malloc changes. 1997-10-12 20:26:33 +00:00
kern_prot.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
kern_random.c Removed unused #includes. 1997-10-28 15:59:26 +00:00
kern_resource.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
kern_shutdown.c Shift a few SYSINT() calls around. 1997-11-25 07:07:48 +00:00
kern_sig.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
kern_subr.c Rename "struct kmemstats" to "struct malloc_type" it makes more sense now. 1997-10-10 18:14:23 +00:00
kern_synch.c Shift a few SYSINT() calls around. 1997-11-25 07:07:48 +00:00
kern_sysctl.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
kern_tc.c Removed all traces of P_IDLEPROC. It was tested but never set. 1997-11-24 15:15:33 +00:00
kern_threads.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
kern_time.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
kern_timeout.c Removed all traces of P_IDLEPROC. It was tested but never set. 1997-11-24 15:15:33 +00:00
kern_xxx.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
link_aout.c Fixed a sloppy common-style definitions. 1997-11-20 20:07:59 +00:00
Make.tags.inc Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
Makefile Remove bogus architectures to allow make tags to work. 1996-03-31 18:53:43 +00:00
makesyscalls.sh Don't generate new prototype files with the extra int retval[] arg at 1997-11-18 03:34:39 +00:00
md5c.c Add const to a couple of casts to silence some of the warnings Bruce 1997-10-21 13:28:36 +00:00
subr_autoconf.c Removed an unused #include. Ifdefed a conditionally used #include. 1997-11-18 12:43:41 +00:00
subr_clist.c Last major round (Unless Bruce thinks of somthing :-) of malloc changes. 1997-10-12 20:26:33 +00:00
subr_disklabel.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
subr_diskmbr.c Hide the `no magic' babble behind bootverbose, since it has proven to 1997-09-27 15:34:34 +00:00
subr_diskslice.c Rename some local variables to avoid shadowing other local variables. 1997-11-07 09:21:01 +00:00
subr_dkbad.c Fix the buffer flag frobbing. Note: It is invalid to gratuitiously modify 1997-11-24 04:14:21 +00:00
subr_log.c Removed unused #includes. 1997-10-28 15:59:26 +00:00
subr_param.c Removed unused #includes. 1997-06-14 11:38:46 +00:00
subr_prf.c Last major round (Unless Bruce thinks of somthing :-) of malloc changes. 1997-10-12 20:26:33 +00:00
subr_prof.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
subr_rlist.c Fixed gratuitous ANSIisms. 1997-09-16 11:44:05 +00:00
subr_smp.c Use UPAGES when setting up private pages for SMP (which includes idle stack). 1997-11-07 19:58:34 +00:00
subr_trap.c Fixed some #include messes. 1997-11-24 13:25:37 +00:00
subr_xxx.c Zap nxselect and noselect. 1997-09-14 02:50:28 +00:00
sys_generic.c Fixed some style bugs in the poll() code. 1997-11-23 10:30:50 +00:00
sys_pipe.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
sys_process.c Set return value for the correct process in ptrace(). 1997-11-12 12:28:12 +00:00
sys_socket.c Various select -> poll changes 1997-09-14 02:52:18 +00:00
syscalls.c Remade syscalls.master derived files. 1997-10-26 20:28:54 +00:00
syscalls.master Add "NOIMPL" for syscalls we know what is, but don't implement as "STD". 1997-10-26 20:27:51 +00:00
sysv_ipc.c Removed an unused #include. Added an unsed #include of <sys/ucred.h> 1997-11-18 12:52:10 +00:00
sysv_msg.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
sysv_sem.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
sysv_shm.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
tty_compat.c Removed unused #includes. 1997-08-02 14:33:27 +00:00
tty_conf.c Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
tty_cons.c Update select -> poll in drivers. 1997-09-14 03:19:42 +00:00
tty_pty.c Fixed gratuitous ANSIisms. 1997-09-16 11:44:05 +00:00
tty_snoop.c Removed unused #includes. Ifdefed a conditionally used #include. 1997-11-18 16:12:51 +00:00
tty_subr.c Last major round (Unless Bruce thinks of somthing :-) of malloc changes. 1997-10-12 20:26:33 +00:00
tty_tb.c Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
tty_tty.c Get tty ioctl numbers by #including <sys/ttycom.h> instead of 1997-11-18 12:59:09 +00:00
tty.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
uipc_domain.c Fixed gratuitous ANSIisms. 1997-09-16 11:44:05 +00:00
uipc_mbuf.c Removed unused #includes. 1997-10-28 15:59:26 +00:00
uipc_proto.c Removed unused #includes. 1997-08-02 14:33:27 +00:00
uipc_sockbuf.c Removed trailing semicolons from the definitions of the sysctl 1997-09-07 16:53:52 +00:00
uipc_socket2.c Removed trailing semicolons from the definitions of the sysctl 1997-09-07 16:53:52 +00:00
uipc_socket.c MF22: MSG_EOR bug fix. 1997-11-09 05:07:40 +00:00
uipc_syscalls.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
uipc_usrreq.c Fixed duplicate definitions of M_FILE (one static). 1997-11-23 10:43:49 +00:00
vfs_aio.c Finish up the vast majority of the AIO/LIO functionality. Proper signal 1997-11-30 04:36:31 +00:00
vfs_bio.c Avoid manipulating the buffer map at interrupt time by deferring bfreekva 1997-11-24 06:18:27 +00:00
vfs_cache.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
vfs_cluster.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
vfs_conf.c Shift a few SYSINT() calls around. 1997-11-25 07:07:48 +00:00
vfs_default.c Removed an unused #include. 1997-11-18 13:03:48 +00:00
vfs_export.c Staticized. 1997-11-22 08:35:46 +00:00
vfs_extattr.c Staticized. 1997-11-22 06:41:21 +00:00
vfs_init.c Simplify the lease_check stuff. 1997-10-26 20:26:33 +00:00
vfs_lookup.c Change the M_NAMEI allocations to use the zone allocator. This change 1997-09-21 04:24:27 +00:00
vfs_mount.c Shift a few SYSINT() calls around. 1997-11-25 07:07:48 +00:00
vfs_subr.c Staticized. 1997-11-22 08:35:46 +00:00
vfs_syscalls.c Staticized. 1997-11-22 06:41:21 +00:00
vfs_vnops.c Fix and complete the AIO syscalls. There are some performance enhancements 1997-11-29 01:33:10 +00:00
vnode_if.pl Removed unused #includes. 1997-10-28 15:59:26 +00:00
vnode_if.sh Removed unused #includes. 1997-10-28 15:59:26 +00:00
vnode_if.src Another VFS cleanup "kilo commit" 1997-10-16 20:32:40 +00:00