minix/servers/fs
Ben Gras 2384a85296 FS support for grant-based i/o.
For character device i/o, FS does a so-called 'magic' grant to let the
driver copy from or to user space. As this is done in FS address space,
the driver is told to do this in FS address space. The redirection to
the right user process then happens at copy-time in the kernel, using the
FS grant table. This also happens for DEV_READ and DEV_WRITE on block
devices.

For other block device i/o, which happens from/to FS buffers, FS does
a 'direct' grant to its own address space for the driver.

After the i/o returns, this access has to be K-I-L-L-E-D, revoked.
Sometimes this is after a SUSPEND and DEV_REVIVE, in which case the
revoking happens in pipe.c.

This conversion happens in safe_io_conversion() in device.c, called
by dev_io and dev_bio.

FS has to pre-allocate its own space for these grant tables. This happens
in main.c.
2006-06-20 10:12:09 +00:00
..
buf.h Rename some #defines such as MAX_BLOCK_SIZE to _MAX_BLOCK_SIZE and such 2005-11-14 18:41:27 +00:00
cache.c FS support for grant-based i/o. 2006-06-20 10:12:09 +00:00
cache2.c Al's double-blank-line removal request 2005-08-22 15:23:47 +00:00
const.h More filesystems. 2006-03-28 11:34:59 +00:00
device.c FS support for grant-based i/o. 2006-06-20 10:12:09 +00:00
dmap.c Disabled building rescue driver (no longer needed). Moved allocmem from 2006-05-19 12:19:37 +00:00
exec.c New interface between PM and FS. 2006-05-11 14:57:23 +00:00
file.h Started select() implementation. 2005-06-17 13:41:12 +00:00
filedes.c New interface between PM and FS. 2006-05-11 14:57:23 +00:00
fproc.h FS support for grant-based i/o. 2006-06-20 10:12:09 +00:00
fs.h Miscellaneous cleanups. 2005-08-03 11:53:36 +00:00
glo.h endpoint-aware conversion of servers. 2006-03-03 10:20:58 +00:00
inode.c Implementation of truncate(), ftruncate() and the F_FREESP fcntl(). 2006-01-11 17:14:51 +00:00
inode.h Formatting fixes for the book 2005-08-29 16:47:18 +00:00
link.c FS: 2006-03-15 15:34:12 +00:00
lock.c FS: 2006-03-15 15:34:12 +00:00
lock.h Initial revision 2005-04-21 14:53:53 +00:00
main.c FS support for grant-based i/o. 2006-06-20 10:12:09 +00:00
Makefile FS support for grant-based i/o. 2006-06-20 10:12:09 +00:00
misc.c FS support for grant-based i/o. 2006-06-20 10:12:09 +00:00
mount.c endpoint-aware conversion of servers. 2006-03-03 10:20:58 +00:00
open.c New interface between PM and FS. 2006-05-11 14:57:23 +00:00
param.h New interface between PM and FS. 2006-05-11 14:57:23 +00:00
path.c Initial root filesystem is now on a ramdisk that is part of the image. 2006-02-15 11:18:21 +00:00
pipe.c FS support for grant-based i/o. 2006-06-20 10:12:09 +00:00
protect.c Added fchmod() and fchown() 2006-04-18 11:26:04 +00:00
proto.h FS support for grant-based i/o. 2006-06-20 10:12:09 +00:00
read.c endpoint-aware conversion of servers. 2006-03-03 10:20:58 +00:00
select.c Fixed some select bugs related to pipes. Removed SELFD_* because they were 2006-06-07 14:41:47 +00:00
select.h Al's double-blank-line removal request 2005-08-22 15:23:47 +00:00
stadir.c readlink(); check bounds 2006-03-17 13:34:40 +00:00
super.c Merge of minix-vmd symlink code. 2005-12-20 14:23:44 +00:00
super.h Al's double-blank-line removal request 2005-08-22 15:23:47 +00:00
table.c Disabled building rescue driver (no longer needed). Moved allocmem from 2006-05-19 12:19:37 +00:00
time.c Al's double-blank-line removal request 2005-08-22 15:23:47 +00:00
timers.c Andy's formatting changes. 2005-09-11 16:45:46 +00:00
type.h Initial revision 2005-04-21 14:53:53 +00:00
utility.c Disabled building rescue driver (no longer needed). Moved allocmem from 2006-05-19 12:19:37 +00:00
write.c Implementation of truncate(), ftruncate() and the F_FREESP fcntl(). 2006-01-11 17:14:51 +00:00