aboutsummaryrefslogtreecommitdiff
path: root/include/fuse_lowlevel.h
Commit message (Collapse)AuthorAge
* Don't handle --help and --version in fuse_session_new().Gravatar Nikolaus Rath2016-10-02
| | | | | | | | | | | | | | | | | | | Help and version messages can be generated using the new fuse_lowlevel_help(), fuse_lowlevel_version(), fuse_mount_help(), and fuse_mount_version() functions. The fuse_parse_cmdline() function has been made more powerful to do this automatically, and is now explicitly intended only for low-level API users. This is a code simplication patch. We don't have to parse for --help and --version in quite as many places, and we no longer have a low-level initialization function be responsible for the (super-high level) task of printing a program usage message. In the high-level API, we can now handle the command line parsing earlier and avoid running other initialization code if we're just going to abort later on.
* Edited comments for clarity.Gravatar Nikolaus Rath2016-10-02
|
* Turn struct fuse_chan into an implementation detailGravatar Nikolaus Rath2016-10-02
| | | | | | | | | | | | | | | | | | | | | The only struct fuse_chan that's accessible to the user application is the "master" channel that is returned by fuse_mount and stored in struct fuse_session. When using the multi-threaded main loop with the "clone_fd" option, each worker thread gets its own struct fuse_chan. However, none of these are available to the user application, nor do they hold references to struct fuse_session (the pointer is always null). Therefore, any presence of struct fuse_chan can be removed without loss of functionality by relying on struct fuse_session instead. This reduces the number of API functions and removes a potential source of confusion (since the new API no longer looks as if it might be possible to add multiple channels to one session, or to share one channel between multiple sessions). Fixes issue #17.
* Renamed fuse_lowlevel_new() to fuse_session_new().Gravatar Nikolaus Rath2016-10-02
|
* Re-order declarations to reflect typical order of useGravatar Nikolaus Rath2016-10-02
|
* Introduce separate mount/umount functions for low-level API.Gravatar Nikolaus Rath2016-10-02
|
* Improve documentation of argument parsing.Gravatar Nikolaus Rath2016-10-01
|
* Documentation improvements.Gravatar Nikolaus Rath2016-09-27
|
* fuse_lowlevel_notify_*: take struct fuse_session instead of struct fuse_chanGravatar Nikolaus Rath2016-09-27
| | | | | | | | | | | The only struct fuse_chan that's available to the user application is the one that is returned by fuse_mount. However, this is also permanently available from struct fuse_session. A later patch will therefore remove struct fuse_chan from the public API completely. This patch prepares for this by changing the fuse_lowlevel_notify_* functions to take a struct fuse_session parameter instead of a struct fuse_chan parameter.
* Merge remote-tracking branch 'origin/master'Gravatar Nikolaus Rath2016-04-27
|\
| * Remove leading _ on header guards to comply with reserved identifier ↵Gravatar Sam Stuewe2016-04-23
| | | | | | | | | | requirements (#29) Remove leading _ on header guards to comply with reserved identifier requirements
* | Whitespace cleanup.Gravatar Nikolaus Rath2016-03-29
| | | | | | | | | | | | Applied (whitespace-cleanup) to each file. Having whitespace changes in the VCS is ugly, but it ensures that in the future committers can run this function to *avoid* commiting any whitespace.
* | Inlined fuse_chan_fdGravatar Nikolaus Rath2016-03-29
|/
* Extend write_buf documentationGravatar Nikolaus Rath2016-01-14
|
* libfuse: refcount fuse_chan objectsGravatar Miklos Szeredi2015-05-18
| | | | | New functions: fuse_chan_get(), fuse_chan_put(). Removed function: fuse_chan_destroy().
* Fix docs of lowlevel readdirplus()Gravatar Miklos Szeredi2014-11-25
| | | | Reported by Michael j Theall.
* libfuse: add flags to ->rename()Gravatar Miklos Szeredi2014-07-15
| | | | See renameat2() system call in linux-3.15 and later kernels.
* libfuse: allow setting ctime in ->setattr()Gravatar Miklos Szeredi2014-07-15
|
* libfuse: document deadlock avoidance for fuse_notify_inval_entry()Gravatar Miklos Szeredi2014-07-15
| | | | | | and fuse_notify_delete() Reported by Han-Wen Nienhuys
* Change generation and nlookup from 'unsigned long' to 'uint64_t'Gravatar Miklos Szeredi2013-08-26
|
* Documentation fixesGravatar Miklos Szeredi2013-07-17
|
* Merge https://github.com/qknight/fuse-fuseGravatar Miklos Szeredi2013-07-17
|\
* | libfuse: remove fuse_chan_bufsize()Gravatar Miklos Szeredi2013-06-21
| | | | | | | | | | | | | | Remove fuse_chan_bufsize() from the lowlevel API. fuse_session_receive_buf() is now responsible for allocating memory for the buffer.
* | libfuse: remove fuse_chan_(send|receive)Gravatar Miklos Szeredi2013-06-21
| | | | | | | | | | | | | | Move the fuse_chan_ops.send and .receive implementations to fuse_lowlevel.c. The abstraction wasn't actually useful and made the the splice implementation more difficult. Remove fuse_chan_ops.send and fuse_chan_ops.receive.
* | libfuse: clean up fuse_chanGravatar Miklos Szeredi2013-06-21
| | | | | | | | | | | | | | | | | | | | | | | | Clean up fuse_chan related interfaces. Remove the following from the lowlevel library API: struct fuse_chan_ops; fuse_chan_new(); fuse_chan_session(); fuse_chan_recv(); fuse_chan_send();
* | libfuse: clean up fuse_sessionGravatar Miklos Szeredi2013-06-21
| | | | | | | | | | | | | | | | | | | | Clean up fuse_session related interfaces. Remove the following from the lowlevel library API: struct fuse_session_ops; fuse_session_new(); fuse_session_process(); fuse_session_data();
* | libfuse: replace fuse_session_next_chanGravatar Miklos Szeredi2013-06-21
| | | | | | | | | | Replace fuse_session_next_chan() with fuse_session_chan(), as multiple channels per session were never actually supported and probably never will.
| * - added a doxygen main pageGravatar Joachim Schiele2013-06-20
| | | | | | | | | | | | - modified all examples to be included in doxygen - modified the API documentation to have more details - added the 490px_FUSE_structure.svg.png (c) wikipedia
* | libfuse: remove channel user dataGravatar Miklos Szeredi2013-06-20
|/
* libfuse: fix readdirplus docGravatar Nikolaus Rath2013-05-20
| | | | | | | | | Returning entry in readdir does not result in bump of lookup count. Returning entry in readdirplus DOES result in increase of lookup count by 1. You need to provide valid nodeid and valid stat structure (with at least valid type) for each entry.
* libfuse: 64bit fuse_ino_tGravatar Miklos Szeredi2013-02-20
| | | | | Change the type of fuse_ino_t from 'unsigned long' to 'uint64_t'. This only changes the size on 32bit architectures.
* libfuse: remove deprecated fuse_lowlevel_is_lib_option()Gravatar Miklos Szeredi2013-02-08
|
* libfuse: add readdirplus support in fuse_lowlevel_opsGravatar Feng Shuo2013-02-07
| | | | | | | | | | | | | | | | | This patch implements readdirplus support in FUSE usersapce. It adds a new fuse lowlevel operations fuse_lowleve_ops::readdir_plus, corespoding mount options and helper functions to maintain buffer. [From: Eric Wong <normalperson@yhbt.net>] This makes our terminology consistent with NFS and our kernel module, as well as reducing user/developer confusion in the command-line. Note: I'm keeping "fuse_add_direntry_plus" since that is less standardized in its use than "readdirplus" for now. Signed-off-by: Feng Shuo <steve.shuo.feng@gmail.com>
* Remove compat functionsGravatar Miklos Szeredi2012-07-19
|
* Add FALLOCATE operationGravatar Anatol Pomozov2012-06-18
| | | | | | fallocate filesystem operation preallocates media space for the given file. If fallocate returns success then any subsequent write to the given range never fails with 'not enough space' error.
* Revert "Add mmap() and munmap() methods to low level API"Gravatar Miklos Szeredi2012-01-24
| | | | | | | | | | This partially reverts commit 4b2157c44e6ad7e692fcffb7450143e83151d36b. Remove mmap/munmap suppor as this missed the interface changes for Linux-3.3 (API version 7.18). Only revert the mmap/munmap bits and leave the retrieve_reply API fix in place as well as the optimization in fuse_send_data_iov_fallback().
* fuse: documentation update for forgetGravatar Nikolaus Rath2011-12-08
| | | | Update documentation for forget and related methods
* libfuse: Notifying the kernel of deletion.Gravatar John Muir2011-12-07
| | | | | | | | | libfuse part to allow a FUSE file-system to tell the kernel when a file or directory is deleted. If the specified dentry has the specified inode number, the kernel will unhash it. Signed-off-by: John Muir <john@jmuir.com> Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
* Add mmap() and munmap() methods to low level APIGravatar Miklos Szeredi2011-12-06
| | | | | Currently this is only useful for CUSE. Also update retrieve_reply() method.
* Make lock argument of fuse_reply_lock constGravatar Miklos Szeredi2011-12-05
| | | | | | | Low level API: lock argument of fuse_reply_lock should have a 'const' qualifier. Reported by Shachar Sharon
* Add ->flock() operation to low and high level interfacesGravatar Miklos Szeredi2011-07-06
| | | | | | | | | | This fixes problems with emulating flock() with POSIX locking. Reported by Sebastian Pipping. As with lock/setlk/getlk most filesystems don't need to implement this, as the kernel takes care of file locking. The only reason to implement locking operations is for network filesystems which want file locking to work between clients.
* Add ->forget_multi() operationGravatar Miklos Szeredi2011-05-19
| | | | | Add ->forget_multi() operation to the lowlevel API. The filesystem may implement this to process multiple forget requests in one call
* libfuse: add retrieve requestGravatar Miklos Szeredi2010-11-08
| | | | Retrieve data stored in the kernel buffers for a given inode.
* libfuse: add store requestGravatar Miklos Szeredi2010-11-08
| | | | Request data to be stored in the kernel buffers for a given inode.
* libfuse: support zero copy writes in lowlevel interfaceGravatar Miklos Szeredi2010-11-08
| | | | | | | | | | Add new ->write_buf() method to low level interface. This allows passig a generic buffer, either containing a memory buffer or a file descriptor. This allows implementing zero copy writes. Add fuse_session_receive_buf() and fuse_session_process_buf() which may be used in event loop implementations to replace fuse_chan_recv() and fuse_session_process() respectively.
* libfuse: add buffer interfaceGravatar Miklos Szeredi2010-07-12
| | | | | | | | Add a generic buffer interface for use with I/O. Buffer vectors are supplied and each buffer in the vector may be a memory pointer or a file descriptor. The fuse_reply_fd() interface is converted to using buffers.
* Add fuse_reply_fd() reply function to the low level interfaceGravatar Miklos Szeredi2010-06-17
|
* * Fix stack alignment for clone()Gravatar Miklos Szeredi2010-02-18
|
* * The context is extended with a 'umask' field. The umask is sentGravatar Miklos Szeredi2009-07-02
| | | | | | | | | | | | | | | for mknod, mkdir and create requests by linux kernel version 2.6.31 or later, otherwise the umask is set to zero. Also introduce a new feature flag: FUSE_CAP_DONT_MASK. If the kernel supports this feature, then this flag will be set in conn->capable in the ->init() method. If the filesystem sets this flag in in conn->want, then the create modes will not be masked. * Add low level interfaces for lookup cache and attribute invalidation. This feature is available in linux kernels 2.6.31 or later. Patch by John Muir * Kernel interface version is now 7.12
* Add fuse_getgroups (high level lib) and fuse_req_getgroups (lowGravatar Miklos Szeredi2009-06-19
| | | | | | level lib) functions to query the supplementary group IDs for the current request. Currently this is implemented on Linux by reading from the /proc filesystem.