diff options
author | Nikolaus Rath <Nikolaus@rath.org> | 2016-10-28 20:44:39 -0700 |
---|---|---|
committer | Nikolaus Rath <Nikolaus@rath.org> | 2016-10-28 20:44:39 -0700 |
commit | 7983414b33b43e76fc9766067b27060772150dbf (patch) | |
tree | 5adcac69cbe50affc7b9ff2185743dd9e62cada0 /doc/mainpage.dox | |
parent | b27033bc35dcef9d4a65788bd613473add3e3887 (diff) |
Clean-up doxygen documentation
Fixes: #81.
Diffstat (limited to 'doc/mainpage.dox')
-rw-r--r-- | doc/mainpage.dox | 107 |
1 files changed, 27 insertions, 80 deletions
diff --git a/doc/mainpage.dox b/doc/mainpage.dox index 9b1801f..e40f391 100644 --- a/doc/mainpage.dox +++ b/doc/mainpage.dox @@ -1,92 +1,39 @@ /*! -\mainpage FUSE API documentation +\mainpage libfuse API documentation -Filesystem in Userspace (FUSE) is a loadable kernel module for Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a "bridge" to the actual kernel interfaces. +FUSE (Filesystem in Userspace) is an interface for userspace programs +to export a filesystem to the Linux kernel. The FUSE project consists +of two components: the *fuse* kernel module (maintained in the regular +kernel repositories) and the *libfuse* userspace library. libfuse +provides the reference implementation for communicating with the FUSE +kernel module. -(c) Wikipedia +A FUSE file system is typically implemented as a standalone +application that links with libfuse. libfuse provides functions to +mount the file system, unmount it, read requests from the kernel, and +send responses back. -@tableofcontents +\section Getting started +libfuse offers two APIs: a "high-level", synchronous API, and a +"low-level" asynchronous API. In both cases, incoming requests from +the kernel are passed to the main program using callbacks. When using +the high-level API, the callbacks may work with file names and paths +instead of inodes, and processing of a request finishes when the +callback function returns. When using the low-level API, the callbacks +must work with inodes and responses must be sent explicitly using a +separate set of API functions. +The high-level API that is primarily specified in fuse.h. The +low-level API that is primarily documented in fuse_lowlevel.h. +\section Examples -\section section1 How FUSE works +FUSE comes with several examples in the <a +href="files.html">examples</a> directory. A good starting point are +hello.c (for the high-level API) and hello_ll.c (for the low-level +API). -@image html 490px-FUSE_structure.svg.png "Structural diagramm of Filesystem in Userspace from http://en.wikipedia.org/wiki/File:FUSE_structure.svg" -\include how-fuse-works - - - - -\section section2 Kernel - -\include kernel.txt - - - - - -\section section_examples examples - -have a look at the examples listed in the example directory, which can be found here: <a href="files.html">files.html</a>. - -- @ref hello.c - minimal FUSE example featuring fuse_main usage - -- @ref hello_ll.c - FUSE: Filesystem in Userspace - -- @ref null.c - FUSE: Filesystem in Userspace - -- @ref cusexmp.c - CUSE example: Character device in Userspace - -- @ref fioc.c - FUSE fioc: FUSE ioctl example - -- @ref fioclient.c - FUSE fioclient: FUSE ioctl example client - -- @ref fsel.c - FUSE fsel: FUSE select example - -- @ref fselclient.c - FUSE fselclient: FUSE select example client - -- @ref fusexmp.c - FUSE: Filesystem in Userspace - -- @ref fusexmp_fh.c - FUSE: Filesystem in Userspace - - -\section section_links links - -<a href="http://sourceforge.net/apps/mediawiki/fuse/index.php?title=Main_Page">http://sourceforge.net/apps/mediawiki/fuse/index.php?title=Main_Page</a> - the fuse wiki - -<a href="http://en.wikipedia.org/wiki/Filesystem_in_Userspace">http://en.wikipedia.org/wiki/Filesystem_in_Userspace</a> - FUSE on wikipedia - - -\section section_todo todo - -general: - - - fuse_lowlevel.h, describe: - - a channel (or communication channel) is created by fuse_mount(..) - - a fuse session is associated with a channel and a signal handler and runs until the assigned signal handler - shuts the session down, see fuse_session_loop(se) and hello_ll.c - - - http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/ - - - http://cinwell.wordpress.com/ - - - http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FuseProtocolSketch - - - http://muratbuffalo.blogspot.de/2011/05/refuse-to-crash-with-re-fuse.html - -examples: - - demonstrate the effect of single vs multithreaded -> fuse_loop fuse_loop_mt - - - add comments and source form all existing examples - - - also add examples form here: http://sourceforge.net/apps/mediawiki/fuse/index.php?title=Main_Page#How_should_threads_be_startedx3f - - - add this new example: http://fuse.996288.n3.nabble.com/Create-multiple-filesystems-in-same-process-td9292.html - - \section section_thanks thanks - - Mark Glines, <mark@glines.org> for his coments on fuse_loop() and fuse_loop_mt(). - - Wikipedia - copied the FUSE introduction from the Filesystem in userspace article. */ |