aboutsummaryrefslogtreecommitdiff
path: root/doc/mainpage.dox
diff options
context:
space:
mode:
authorGravatar Nikolaus Rath <Nikolaus@rath.org>2016-10-28 20:44:39 -0700
committerGravatar Nikolaus Rath <Nikolaus@rath.org>2016-10-28 20:44:39 -0700
commit7983414b33b43e76fc9766067b27060772150dbf (patch)
tree5adcac69cbe50affc7b9ff2185743dd9e62cada0 /doc/mainpage.dox
parentb27033bc35dcef9d4a65788bd613473add3e3887 (diff)
Clean-up doxygen documentation
Fixes: #81.
Diffstat (limited to 'doc/mainpage.dox')
-rw-r--r--doc/mainpage.dox107
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.
*/