Official MINIX sources - Automatically replicated from gerrit.minix3.org
Go to file
David van Moolenbroek 15f5a85945 Add libfsdriver: a library to drive file systems
This library provides new abstractions for the upper (VFS) side of
file system services, and should be used for all file system service
implementations from now on.  It provides the following functionality:

  - a function call table abstraction, hiding the details of the
    VFS-FS protocol with simple parameters;
  - a (currently limited) number of per-function steps required for
    all file system implementations, such as copying in and out path
    names and result buffers;
  - a default implementation for multicomponent path lookups, such
    that the file system merely has to implement resolution of single
    components at a time;
  - an abstraction for copying data from and to the file system, which
    allows transparent intraprocess copying as required for the lookup
    implementation;
  - a set of functions to simplify getdents implementations.

The message loop provided by the library is currently for use by
single-threaded file system implementations only.  Multithreaded file
system services may use the more low-level message processing
functionality.

Protocol-level optimizations such as including names in protocol
messages may be hidden entirely in this library.  In addition, in the
future, the lookup implementation may be replaced by a single-
component lookup VFS/FS protocol request as part of a VFS name cache
implementation; this, too, can be hidden entirely in this library.

Change-Id: Ib34f0d0e021dfa3426ce8826efcf3eaa94d3ef3e
2014-08-24 11:56:46 +00:00
bin Revert "bin/mv: Temporary fix" 2014-07-28 17:06:36 +02:00
common Fix -DNDEBUG support 2014-08-22 19:12:17 +02:00
distrib Add libfsdriver: a library to drive file systems 2014-08-24 11:56:46 +00:00
docs Clearing history in docs/UPDATING 2014-08-01 14:58:40 +02:00
etc Update usr/Makefile 2014-08-14 19:02:53 +02:00
external Fixes for -O3 with GCC 2014-08-24 09:24:33 +00:00
games Importing games/colorbars 2014-07-28 17:05:50 +02:00
gnu Update download urls in fetch.sh 2014-08-07 14:27:32 +02:00
include New sources layout 2014-07-31 16:00:30 +02:00
lib New sources layout 2014-07-31 16:00:30 +02:00
libexec LLVM Minix changes 2014-07-28 17:05:59 +02:00
minix Add libfsdriver: a library to drive file systems 2014-08-24 11:56:46 +00:00
releasetools releasetools/Makefile: updates 2014-08-21 10:59:26 +02:00
sbin netbsd ping & traceroute 2014-08-21 08:07:39 -04:00
share Add libfsdriver: a library to drive file systems 2014-08-24 11:56:46 +00:00
sys netbsd ping & traceroute 2014-08-21 08:07:39 -04:00
tests LLVM Minix changes 2014-07-28 17:05:59 +02:00
tools New sources layout 2014-07-31 16:00:30 +02:00
usr.bin Fixes for -O3 with GCC 2014-08-24 09:24:33 +00:00
usr.sbin netbsd ping & traceroute 2014-08-21 08:07:39 -04:00
.gitignore gitignore: ignore some more generated files 2012-12-06 13:29:20 +00:00
.gitreview build:update 'git review' config to match gerrit.minix3.org 2014-07-28 17:05:15 +02:00
build.sh Importing netbsd clang -- pristine 2014-07-28 17:05:57 +02:00
LICENSE Fix parameter parsing in cut 2010-01-21 10:16:05 +00:00
Makefile New sources layout 2014-07-31 16:00:30 +02:00
Makefile.inc Synchronize on NetBSD-CVS (2013/12/1 12:00:00 UTC) 2014-07-28 17:05:06 +02:00