Linux sagir-us1.hostever.us 5.14.0-570.51.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 8 09:41:34 EDT 2025 x86_64
LiteSpeed
Server IP : 104.247.108.91 & Your IP : 216.73.216.105
Domains : 74 Domain
User : georgeto
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
python3-llfuse /
html /
.doctrees /
Delete
Unzip
Name
Size
Permission
Date
Action
about.doctree
10.45
KB
-rw-r--r--
2021-02-01 20:07
changes.doctree
78.18
KB
-rw-r--r--
2021-02-01 20:07
data.doctree
45.45
KB
-rw-r--r--
2021-02-01 20:22
environment.pickle
1.64
MB
-rw-r--r--
2021-02-01 20:22
example.doctree
79.57
KB
-rw-r--r--
2021-02-01 20:07
fuse_api.doctree
34.19
KB
-rw-r--r--
2021-02-01 20:22
general.doctree
20.07
KB
-rw-r--r--
2021-02-01 20:07
gotchas.doctree
5.36
KB
-rw-r--r--
2021-02-01 20:07
index.doctree
4.38
KB
-rw-r--r--
2021-02-01 20:07
install.doctree
19.21
KB
-rw-r--r--
2021-02-01 20:07
lock.doctree
18.36
KB
-rw-r--r--
2021-02-01 20:22
operations.doctree
146.99
KB
-rw-r--r--
2021-02-01 20:22
util.doctree
20.38
KB
-rw-r--r--
2021-02-01 20:22
Save
Rename
���� �sphinx.addnodes��document���)��}�(� rawsource�� ��children�]��docutils.nodes��section���)��}�(hhh]�(h �title���)��}�(h�FUSE API Functions�h]�h �Text����FUSE API Functions�����}�(hh�parent�hhh�source�N�line�Nuba� attributes�}�(�ids�]��classes�]��names�]��dupnames�]��backrefs�]�u�tagname�hhhhhh�+/home/user/w/python-llfuse/rst/fuse_api.rst�hKubh �index���)��}�(hhh]�h}�(h ]�h"]�h$]�h&]�h(]��entries�]�(�single��init() (in module llfuse)��llfuse.init�hNt�auh*h,hhhhh�docstring of llfuse.init�hNubh �desc���)��}�(hhh]�(h �desc_signature���)��}�(h�.init(ops, mountpoint, options=default_options)�h]�(h �desc_addname���)��}�(h�llfuse.�h]�h�llfuse.�����}�(hhhhKhhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�� xml:space��preserve�uh*hIhhEhhh�docstring of llfuse.init�hNubh � desc_name���)��}�(h�init�h]�h�init�����}�(hhhh^hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*h\hhEhhhh[hNubh �desc_parameterlist���)��}�(h�(ops, mountpoint, options=default_options�h]�(h �desc_parameter���)��}�(h�ops�h]�h � desc_sig_name���)��}�(h�ops�h]�h�ops�����}�(hhhhzubah}�(h ]�h"]��n�ah$]�h&]�h(]�uh*hxhhtubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhhnubhs)��}�(h� mountpoint�h]�hy)��}�(h� mountpoint�h]�h� mountpoint�����}�(hhhh�ubah}�(h ]�h"]�h�ah$]�h&]�h(]�uh*hxhh�ubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhhnubhs)��}�(h�options=default_options�h]�(hy)��}�(h�options�h]�h�options�����}�(hhhh�ubah}�(h ]�h"]�h�ah$]�h&]�h(]�uh*hxhh�ubh �desc_sig_operator���)��}�(h�=�h]�h�=�����}�(hhhh�ubah}�(h ]�h"]��o�ah$]�h&]�h(]�uh*h�hh�ubh �inline���)��}�(h�default_options�h]�h�default_options�����}�(hhhh�ubah}�(h ]�h"]�� default_value�ah$]�h&]�h(]��support_smartquotes��uh*h�hh�ubeh}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhhnubeh}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hlhhEhhhh[hNubeh}�(h ]�h;ah"]�h$]�h&]�h(]��module��llfuse��class�h�fullname�h`uh*hChh[hKhh@hhubh �desc_content���)��}�(hhh]�(h � paragraph���)��}�(h�%Initialize and mount FUSE file system�h]�h�%Initialize and mount FUSE file system�����}�(hh�hh�hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*h�hh=hKhh�hhubh�)��}�(h�c*ops* has to be an instance of the `Operations` class (or another class defining the same methods).�h]�(h �emphasis���)��}�(h�*ops*�h]�h�ops�����}�(hhhj ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj ubh� has to be an instance of the �����}�(h� has to be an instance of the �hj hhhNhNubh �pending_xref���)��}�(h�`Operations`�h]�h �literal���)��}�(hj$ h]�h� Operations�����}�(hhhj( ubah}�(h ]�h"]�(�xref��py��py-obj�eh$]�h&]�h(]�uh*j& hj" ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc��fuse_api�� refdomain�j3 �reftype��obj��refexplicit���refwarn��� py:module�h�py:class�N� reftarget�� Operations�uh*j hh=hKhj ubh�4 class (or another class defining the same methods).�����}�(h�4 class (or another class defining the same methods).�hj hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hh=hKhh�hhubh�)��}�(h��*args* has to be a set of strings. `default_options` provides some reasonable defaults. It is recommended to use these options as a basis and add or remove options as necessary. For example::�h]�(j )��}�(h�*args*�h]�h�args�����}�(hhhjX ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hjT ubh� has to be a set of strings. �����}�(h� has to be a set of strings. �hjT hhhNhNubj! )��}�(h�`default_options`�h]�j' )��}�(hjm h]�h�default_options�����}�(hhhjo ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hjk ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�jy �reftype��obj��refexplicit���refwarn��jE h�jF NjG �default_options�uh*j hh=hKhjT ubh�� provides some reasonable defaults. It is recommended to use these options as a basis and add or remove options as necessary. For example:�����}�(h�� provides some reasonable defaults. It is recommended to use these options as a basis and add or remove options as necessary. For example:�hjT hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hh=hKhh�hhubh � literal_block���)��}�(h��my_opts = set(llfuse.default_options) my_opts.add('allow_other') my_opts.discard('default_permissions') llfuse.init(ops, mountpoint, my_opts)�h]�h��my_opts = set(llfuse.default_options) my_opts.add('allow_other') my_opts.discard('default_permissions') llfuse.init(ops, mountpoint, my_opts)�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*j� hh=hK hh�hhubh�)��}�(hX" Valid options are listed under ``struct fuse_opt fuse_mount_opts[]`` (`mount.c:82 <https://github.com/libfuse/libfuse/blob/master/lib/mount.c#L82>`_) and ``struct fuse_opt fuse_ll_opts[]`` (`fuse_lowlevel_c:2626 <https://github.com/libfuse/libfuse/blob/master/lib/fuse_lowlevel.c#L2626>`_).�h]�(h�Valid options are listed under �����}�(h�Valid options are listed under �hj� hhhNhNubj' )��}�(h�%``struct fuse_opt fuse_mount_opts[]``�h]�h�!struct fuse_opt fuse_mount_opts[]�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j& hj� ubh� (�����}�(h� (�hj� hhhNhNubh � reference���)��}�(h�N`mount.c:82 <https://github.com/libfuse/libfuse/blob/master/lib/mount.c#L82>`_�h]�h� mount.c:82�����}�(h� mount.c:82�hj� ubah}�(h ]�h"]�h$]�h&]�h(]��name�j� �refuri��>https://github.com/libfuse/libfuse/blob/master/lib/mount.c#L82�uh*j� hj� ubh �target���)��}�(h�A <https://github.com/libfuse/libfuse/blob/master/lib/mount.c#L82>�h]�h}�(h ]�� mount-c-82�ah"]�h$]�� mount.c:82�ah&]�h(]��refuri�j� uh*j� � referenced�Khj� ubh�) and �����}�(h�) and �hj� hhhNhNubj' )��}�(h�"``struct fuse_opt fuse_ll_opts[]``�h]�h�struct fuse_opt fuse_ll_opts[]�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j& hj� ubh� (�����}�(hj� hj� ubj� )��}�(h�b`fuse_lowlevel_c:2626 <https://github.com/libfuse/libfuse/blob/master/lib/fuse_lowlevel.c#L2626>`_�h]�h�fuse_lowlevel_c:2626�����}�(h�fuse_lowlevel_c:2626�hj� ubah}�(h ]�h"]�h$]�h&]�h(]��name�j j� �Hhttps://github.com/libfuse/libfuse/blob/master/lib/fuse_lowlevel.c#L2626�uh*j� hj� ubj� )��}�(h�K <https://github.com/libfuse/libfuse/blob/master/lib/fuse_lowlevel.c#L2626>�h]�h}�(h ]��fuse-lowlevel-c-2626�ah"]�h$]��fuse_lowlevel_c:2626�ah&]�h(]��refuri�j uh*j� j� Khj� ubh�).�����}�(h�).�hj� hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hh=hKhh�hhubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hh@hhhh[hNubeh}�(h ]�h"]��py�ah$]�h&]�h(]��domain�j/ �objtype��function��desctype�j5 �noindex��uh*h>hhhhhh=hNubh-)��}�(hhh]�h}�(h ]�h"]�h$]�h&]�h(]��entries�]�(h9�main() (in module llfuse)��llfuse.main�hNt�auh*h,hhhhh�docstring of llfuse.main�hNubh?)��}�(hhh]�(hD)��}�(h�'main(workers=None, handle_signals=True)�h]�(hJ)��}�(h�llfuse.�h]�h�llfuse.�����}�(hhhjN hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hIhjJ hhh�docstring of llfuse.main�hNubh])��}�(h�main�h]�h�main�����}�(hhhj] hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*h\hjJ hhhj\ hNubhm)��}�(h�!workers=None, handle_signals=True�h]�(hs)��}�(h�workers=None�h]�(hy)��}�(h�workers�h]�h�workers�����}�(hhhjs ubah}�(h ]�h"]�h�ah$]�h&]�h(]�uh*hxhjo ubh�)��}�(h�=�h]�h�=�����}�(hhhj� ubah}�(h ]�h"]�h�ah$]�h&]�h(]�uh*h�hjo ubh�)��}�(h�None�h]�h�None�����}�(hhhj� ubah}�(h ]�h"]�h�ah$]�h&]�h(]��support_smartquotes��uh*h�hjo ubeh}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhjk ubhs)��}�(h�handle_signals=True�h]�(hy)��}�(h�handle_signals�h]�h�handle_signals�����}�(hhhj� ubah}�(h ]�h"]�h�ah$]�h&]�h(]�uh*hxhj� ubh�)��}�(h�=�h]�h�=�����}�(hhhj� ubah}�(h ]�h"]�h�ah$]�h&]�h(]�uh*h�hj� ubh�)��}�(h�True�h]�h�True�����}�(hhhj� ubah}�(h ]�h"]�h�ah$]�h&]�h(]��support_smartquotes��uh*h�hj� ubeh}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhjk ubeh}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hlhjJ hhhj\ hNubeh}�(h ]�jD ah"]�h$]�h&]�h(]�h�llfuse�h�hh�j_ uh*hChj\ hKhjG hhubh�)��}�(hhh]�(h�)��}�(h�Run FUSE main loop�h]�h�Run FUSE main loop�����}�(hj� hj� hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*h�hjF hKhj� hhubh�)��}�(h��*workers* specifies the number of threads that will process requests concurrently. If *workers* is `None`, llfuse will pick a reasonable number bigger than one. If *workers* is ``1`` all requests will be processed by the thread calling `main`.�h]�(j )��}�(h� *workers*�h]�h�workers�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh�M specifies the number of threads that will process requests concurrently. If �����}�(h�M specifies the number of threads that will process requests concurrently. If �hj� hhhNhNubj )��}�(h� *workers*�h]�h�workers�����}�(hhhj ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� is �����}�(h� is �hj� hhhNhNubj! )��}�(h�`None`�h]�j' )��}�(hj# h]�h�None�����}�(hhhj% ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hj! ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�j/ �reftype��obj��refexplicit���refwarn��jE j� jF NjG �None�uh*j hjF hKhj� ubh�<, llfuse will pick a reasonable number bigger than one. If �����}�(h�<, llfuse will pick a reasonable number bigger than one. If �hj� hhhNhNubj )��}�(h� *workers*�h]�h�workers�����}�(hhhjF ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� is �����}�(hj hj� ubj' )��}�(h�``1``�h]�h�1�����}�(hhhjX ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j& hj� ubh�6 all requests will be processed by the thread calling �����}�(h�6 all requests will be processed by the thread calling �hj� hhhNhNubj! )��}�(h�`main`�h]�j' )��}�(hjm h]�h�main�����}�(hhhjo ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hjk ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�jy �reftype��obj��refexplicit���refwarn��jE j� jF NjG �main�uh*j hjF hKhj� ubh�.�����}�(h�.�hj� hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hjF hKhj� hhubh�)��}�(h��This function will also start additional threads for internal purposes (even if *workers* is ``1``). These (and all worker threads) are guaranteed to have terminated when `main` returns.�h]�(h�PThis function will also start additional threads for internal purposes (even if �����}�(h�PThis function will also start additional threads for internal purposes (even if �hj� hhhNhNubj )��}�(h� *workers*�h]�h�workers�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� is �����}�(h� is �hj� hhhNhNubj' )��}�(h�``1``�h]�h�1�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j& hj� ubh�I). These (and all worker threads) are guaranteed to have terminated when �����}�(h�I). These (and all worker threads) are guaranteed to have terminated when �hj� hhhNhNubj! )��}�(h�`main`�h]�j' )��}�(hj� h]�h�main�����}�(hhhj� ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hj� ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�j� �reftype��obj��refexplicit���refwarn��jE j� jF NjG �main�uh*j hjF hKhj� ubh� returns.�����}�(h� returns.�hj� hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hjF hKhj� hhubh�)��}�(hX* Unless *handle_signals* is `False`, while this function is running, special signal handlers will be installed for the *SIGTERM*, *SIGINT* (Ctrl-C), *SIGHUP*, *SIGUSR1* and *SIGPIPE* signals. *SIGPIPE* will be ignored, while the other three signals will cause request processing to stop and the function to return. *SIGINT* (Ctrl-C) will thus *not* result in a `KeyboardInterrupt` exception while this function is runnning. Note setting *handle_signals* to `False` means you must handle the signals by yourself and call `stop` to make the `main` returns.�h]�(h�Unless �����}�(h�Unless �hj� hhhNhNubj )��}�(h�*handle_signals*�h]�h�handle_signals�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� is �����}�(h� is �hj� hhhNhNubj! )��}�(h�`False`�h]�j' )��}�(hj h]�h�False�����}�(hhhj ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hj ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�j �reftype��obj��refexplicit���refwarn��jE j� jF NjG �False�uh*j hjF hKhj� ubh�T, while this function is running, special signal handlers will be installed for the �����}�(h�T, while this function is running, special signal handlers will be installed for the �hj� hhhNhNubj )��}�(h� *SIGTERM*�h]�h�SIGTERM�����}�(hhhj1 ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh�, �����}�(h�, �hj� hhhNhNubj )��}�(h�*SIGINT*�h]�h�SIGINT�����}�(hhhjD ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� (Ctrl-C), �����}�(h� (Ctrl-C), �hj� hhhNhNubj )��}�(h�*SIGHUP*�h]�h�SIGHUP�����}�(hhhjW ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh�, �����}�(hjC hj� ubj )��}�(h� *SIGUSR1*�h]�h�SIGUSR1�����}�(hhhji ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� and �����}�(h� and �hj� hhhNhNubj )��}�(h� *SIGPIPE*�h]�h�SIGPIPE�����}�(hhhj| ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� signals. �����}�(h� signals. �hj� hhhNhNubj )��}�(h� *SIGPIPE*�h]�h�SIGPIPE�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh�s will be ignored, while the other three signals will cause request processing to stop and the function to return. �����}�(h�s will be ignored, while the other three signals will cause request processing to stop and the function to return. �hj� hhhNhNubj )��}�(h�*SIGINT*�h]�h�SIGINT�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� (Ctrl-C) will thus �����}�(h� (Ctrl-C) will thus �hj� hhhNhNubj )��}�(h�*not*�h]�h�not�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� result in a �����}�(h� result in a �hj� hhhNhNubj! )��}�(h�`KeyboardInterrupt`�h]�j' )��}�(hj� h]�h�KeyboardInterrupt�����}�(hhhj� ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hj� ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�j� �reftype��obj��refexplicit���refwarn��jE j� jF NjG �KeyboardInterrupt�uh*j hjF hKhj� ubh�9 exception while this function is runnning. Note setting �����}�(h�9 exception while this function is runnning. Note setting �hj� hhhNhNubj )��}�(h�*handle_signals*�h]�h�handle_signals�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� to �����}�(h� to �hj� hhhNhNubj! )��}�(h�`False`�h]�j' )��}�(hj h]�h�False�����}�(hhhj ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hj ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�j �reftype��obj��refexplicit���refwarn��jE j� jF NjG �False�uh*j hjF hKhj� ubh�8 means you must handle the signals by yourself and call �����}�(h�8 means you must handle the signals by yourself and call �hj� hhhNhNubj! )��}�(h�`stop`�h]�j' )��}�(hj' h]�h�stop�����}�(hhhj) ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hj% ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�j3 �reftype��obj��refexplicit���refwarn��jE j� jF NjG �stop�uh*j hjF hKhj� ubh� to make the �����}�(h� to make the �hj� hhhNhNubj! )��}�(h�`main`�h]�j' )��}�(hjL h]�h�main�����}�(hhhjN ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hjJ ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�jX �reftype��obj��refexplicit���refwarn��jE j� jF NjG �main�uh*j hjF hKhj� ubh� returns.�����}�(h� returns.�hj� hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hjF hKhj� hhubh�)��}�(h��When the function returns because the file system has received an unmount request it will return `None`. If it returns because it has received a signal, it will return the signal number.�h]�(h�aWhen the function returns because the file system has received an unmount request it will return �����}�(h�aWhen the function returns because the file system has received an unmount request it will return �hju hhhNhNubj! )��}�(h�`None`�h]�j' )��}�(hj� h]�h�None�����}�(hhhj� ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hj~ ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�j� �reftype��obj��refexplicit���refwarn��jE j� jF NjG �None�uh*j hjF hKhju ubh�S. If it returns because it has received a signal, it will return the signal number.�����}�(h�S. If it returns because it has received a signal, it will return the signal number.�hju hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hjF hKhj� hhubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hjG hhhj\ hNubeh}�(h ]�h"]��py�ah$]�h&]�h(]�j3 j� j4 �function�j6 j� j7 �uh*h>hhhhhjF hNubh-)��}�(hhh]�h}�(h ]�h"]�h$]�h&]�h(]��entries�]�(h9�close() (in module llfuse)��llfuse.close�hNt�auh*h,hhhhh�docstring of llfuse.close�hNubh?)��}�(hhh]�(hD)��}�(h�close(unmount=True)�h]�(hJ)��}�(h�llfuse.�h]�h�llfuse.�����}�(hhhj� hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hIhj� hhh�docstring of llfuse.close�hNubh])��}�(h�close�h]�h�close�����}�(hhhj� hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*h\hj� hhhj� hNubhm)��}�(h�unmount=True�h]�hs)��}�(h�unmount=True�h]�(hy)��}�(h�unmount�h]�h�unmount�����}�(hhhj� ubah}�(h ]�h"]�h�ah$]�h&]�h(]�uh*hxhj� ubh�)��}�(h�=�h]�h�=�����}�(hhhj ubah}�(h ]�h"]�h�ah$]�h&]�h(]�uh*h�hj� ubh�)��}�(h�True�h]�h�True�����}�(hhhj ubah}�(h ]�h"]�h�ah$]�h&]�h(]��support_smartquotes��uh*h�hj� ubeh}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhj� ubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hlhj� hhhj� hNubeh}�(h ]�j� ah"]�h$]�h&]�h(]�h�llfuse�h�hh�j� uh*hChj� hKhj� hhubh�)��}�(hhh]�(h�)��}�(h�+Clean up and ensure filesystem is unmounted�h]�h�+Clean up and ensure filesystem is unmounted�����}�(hj5 hj3 hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hKhj0 hhubh�)��}�(h�nIf *unmount* is False, only clean up operations are peformed, but the file system is not explicitly unmounted.�h]�(h�If �����}�(h�If �hjA hhhNhNubj )��}�(h� *unmount*�h]�h�unmount�����}�(hhhjJ ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hjA ubh�b is False, only clean up operations are peformed, but the file system is not explicitly unmounted.�����}�(h�b is False, only clean up operations are peformed, but the file system is not explicitly unmounted.�hjA hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hKhj0 hhubh�)��}�(hX� Normally, the filesystem is unmounted by the user calling umount(8) or fusermount(1), which then terminates the FUSE main loop. However, the loop may also terminate as a result of an exception or a signal. In this case the filesystem remains mounted, but any attempt to access it will block (while the filesystem process is still running) or (after the filesystem process has terminated) return an error. If *unmount* is True, this function will ensure that the filesystem is properly unmounted.�h]�(hX� Normally, the filesystem is unmounted by the user calling umount(8) or fusermount(1), which then terminates the FUSE main loop. However, the loop may also terminate as a result of an exception or a signal. In this case the filesystem remains mounted, but any attempt to access it will block (while the filesystem process is still running) or (after the filesystem process has terminated) return an error. If �����}�(hX� Normally, the filesystem is unmounted by the user calling umount(8) or fusermount(1), which then terminates the FUSE main loop. However, the loop may also terminate as a result of an exception or a signal. In this case the filesystem remains mounted, but any attempt to access it will block (while the filesystem process is still running) or (after the filesystem process has terminated) return an error. If �hjc hhhNhNubj )��}�(h� *unmount*�h]�h�unmount�����}�(hhhjl ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hjc ubh�N is True, this function will ensure that the filesystem is properly unmounted.�����}�(h�N is True, this function will ensure that the filesystem is properly unmounted.�hjc hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hKhj0 hhubh�)��}�(h��Note: if the connection to the kernel is terminated via the ``/sys/fs/fuse/connections/`` interface, this function will *not* unmount the filesystem even if *unmount* is True.�h]�(h�<Note: if the connection to the kernel is terminated via the �����}�(h�<Note: if the connection to the kernel is terminated via the �hj� hhhNhNubj' )��}�(h�``/sys/fs/fuse/connections/``�h]�h�/sys/fs/fuse/connections/�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j& hj� ubh� interface, this function will �����}�(h� interface, this function will �hj� hhhNhNubj )��}�(h�*not*�h]�h�not�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� unmount the filesystem even if �����}�(h� unmount the filesystem even if �hj� hhhNhNubj )��}�(h� *unmount*�h]�h�unmount�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� is True.�����}�(h� is True.�hj� hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hKhj0 hhubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hhhj� hNubeh}�(h ]�h"]��py�ah$]�h&]�h(]�j3 j� j4 �function�j6 j� j7 �uh*h>hhhhhj� hNubh-)��}�(hhh]�h}�(h ]�h"]�h$]�h&]�h(]��entries�]�(h9�%invalidate_inode() (in module llfuse)��llfuse.invalidate_inode�hNt�auh*h,hhhhh�$docstring of llfuse.invalidate_inode�hNubh?)��}�(hhh]�(hD)��}�(h�3invalidate_inode(fuse_ino_t inode, attr_only=False)�h]�(hJ)��}�(h�llfuse.�h]�h�llfuse.�����}�(hhhj� hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hIhj� hhh�$docstring of llfuse.invalidate_inode�hNubh])��}�(h�invalidate_inode�h]�h�invalidate_inode�����}�(hhhj hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*h\hj� hhhj� hNubhm)��}�(h�#(fuse_ino_t inode, attr_only=False)�h]�(hs)��}�(h�fuse_ino_t inode�h]�h�fuse_ino_t inode�����}�(hhhj ubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhj ubhs)��}�(h�attr_only=False�h]�h�attr_only=False�����}�(hhhj ubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhj ubeh}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hlhj� hhhj� hNubeh}�(h ]�j� ah"]�h$]�h&]�h(]�h�llfuse�h�hh�j uh*hChj� hKhj� hhubh�)��}�(hhh]�(h�)��}�(h�Invalidate cache for *inode*�h]�(h�Invalidate cache for �����}�(h�Invalidate cache for �hj> hhhNhNubj )��}�(h�*inode*�h]�h�inode�����}�(hhhjG ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj> ubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hKhj; hhubh�)��}�(h��Instructs the FUSE kernel module to forgot cached attributes and data (unless *attr_only* is True) for *inode*. This operation is carried out asynchronously, i.e. the method may return before the kernel has executed the request.�h]�(h�NInstructs the FUSE kernel module to forgot cached attributes and data (unless �����}�(h�NInstructs the FUSE kernel module to forgot cached attributes and data (unless �hj[ hhhNhNubj )��}�(h�*attr_only*�h]�h� attr_only�����}�(hhhjd ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj[ ubh� is True) for �����}�(h� is True) for �hj[ hhhNhNubj )��}�(h�*inode*�h]�h�inode�����}�(hhhjw ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj[ ubh�v. This operation is carried out asynchronously, i.e. the method may return before the kernel has executed the request.�����}�(h�v. This operation is carried out asynchronously, i.e. the method may return before the kernel has executed the request.�hj[ hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hKhj; hhubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hhhj� hNubeh}�(h ]�h"]��py�ah$]�h&]�h(]�j3 j� j4 �function�j6 j� j7 �uh*h>hhhhhj� hNubh-)��}�(hhh]�h}�(h ]�h"]�h$]�h&]�h(]��entries�]�(h9�%invalidate_entry() (in module llfuse)��llfuse.invalidate_entry�hNt�auh*h,hhhhh�$docstring of llfuse.invalidate_entry�hNubh?)��}�(hhh]�(hD)��}�(h�*invalidate_entry(fuse_ino_t inode_p, name)�h]�(hJ)��}�(h�llfuse.�h]�h�llfuse.�����}�(hhhj� hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hIhj� hhh�$docstring of llfuse.invalidate_entry�hNubh])��}�(h�invalidate_entry�h]�h�invalidate_entry�����}�(hhhj� hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*h\hj� hhhj� hNubhm)��}�(h�(fuse_ino_t inode_p, name)�h]�(hs)��}�(h�fuse_ino_t inode_p�h]�h�fuse_ino_t inode_p�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhj� ubhs)��}�(h�name�h]�h�name�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhj� ubeh}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hlhj� hhhj� hNubeh}�(h ]�j� ah"]�h$]�h&]�h(]�h�llfuse�h�hh�j� uh*hChj� hKhj� hhubh�)��}�(hhh]�(h�)��}�(h�Invalidate directory entry�h]�h�Invalidate directory entry�����}�(hj hj hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hKhj� hhubh�)��}�(h��Instructs the FUSE kernel module to forget about the directory entry *name* in the directory with inode *inode_p*. This operation is carried out asynchronously, i.e. the method may return before the kernel has executed the request.�h]�(h�EInstructs the FUSE kernel module to forget about the directory entry �����}�(h�EInstructs the FUSE kernel module to forget about the directory entry �hj hhhNhNubj )��}�(h�*name*�h]�h�name�����}�(hhhj ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj ubh� in the directory with inode �����}�(h� in the directory with inode �hj hhhNhNubj )��}�(h� *inode_p*�h]�h�inode_p�����}�(hhhj+ ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj ubh�v. This operation is carried out asynchronously, i.e. the method may return before the kernel has executed the request.�����}�(h�v. This operation is carried out asynchronously, i.e. the method may return before the kernel has executed the request.�hj hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hKhj� hhubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hhhj� hNubeh}�(h ]�h"]��py�ah$]�h&]�h(]�j3 jM j4 �function�j6 jQ j7 �uh*h>hhhhhj� hNubh-)��}�(hhh]�h}�(h ]�h"]�h$]�h&]�h(]��entries�]�(h9�!notify_store() (in module llfuse)��llfuse.notify_store�hNt�auh*h,hhhhh� docstring of llfuse.notify_store�hNubh?)��}�(hhh]�(hD)��}�(h�!notify_store(inode, offset, data)�h]�(hJ)��}�(h�llfuse.�h]�h�llfuse.�����}�(hhhjh hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hIhjd hhh� docstring of llfuse.notify_store�hNubh])��}�(h�notify_store�h]�h�notify_store�����}�(hhhjw hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*h\hjd hhhjv hNubhm)��}�(h�inode, offset, data�h]�(hs)��}�(h�inode�h]�hy)��}�(h�inode�h]�h�inode�����}�(hhhj� ubah}�(h ]�h"]�h�ah$]�h&]�h(]�uh*hxhj� ubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhj� ubhs)��}�(h�offset�h]�hy)��}�(h�offset�h]�h�offset�����}�(hhhj� ubah}�(h ]�h"]�h�ah$]�h&]�h(]�uh*hxhj� ubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhj� ubhs)��}�(h�data�h]�hy)��}�(h�data�h]�h�data�����}�(hhhj� ubah}�(h ]�h"]�h�ah$]�h&]�h(]�uh*hxhj� ubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hrhj� ubeh}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hlhjd hhhjv hNubeh}�(h ]�j^ ah"]�h$]�h&]�h(]�h�llfuse�h�hh�jy uh*hChjv hKhja hhubh�)��}�(hhh]�(h�)��}�(h�Store data in kernel page cache�h]�h�Store data in kernel page cache�����}�(hj� hj� hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj` hKhj� hhubh�)��}�(h��Sends *data* for the kernel to store it in the page cache for *inode* at *offset*. If this provides data beyond the current file size, the file is automatically extended.�h]�(h�Sends �����}�(h�Sends �hj� hhhNhNubj )��}�(h�*data*�h]�h�data�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh�2 for the kernel to store it in the page cache for �����}�(h�2 for the kernel to store it in the page cache for �hj� hhhNhNubj )��}�(h�*inode*�h]�h�inode�����}�(hhhj ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh� at �����}�(h� at �hj� hhhNhNubj )��}�(h�*offset*�h]�h�offset�����}�(hhhj ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j hj� ubh�Y. If this provides data beyond the current file size, the file is automatically extended.�����}�(h�Y. If this provides data beyond the current file size, the file is automatically extended.�hj� hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj` hKhj� hhubh�)��}�(h�SIf this function raises an exception, the store may still have completed partially.�h]�h�SIf this function raises an exception, the store may still have completed partially.�����}�(hj9 hj7 hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj` hKhj� hhubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hja hhhjv hNubeh}�(h ]�h"]��py�ah$]�h&]�h(]�j3 jN j4 �function�j6 jR j7 �uh*h>hhhhhj` hNubh-)��}�(hhh]�h}�(h ]�h"]�h$]�h&]�h(]��entries�]�(h9�#get_ino_t_bits() (in module llfuse)��llfuse.get_ino_t_bits�hNt�auh*h,hhhhh�"docstring of llfuse.get_ino_t_bits�hNubh?)��}�(hhh]�(hD)��}�(h�get_ino_t_bits()�h]�(hJ)��}�(h�llfuse.�h]�h�llfuse.�����}�(hhhji hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hIhje hhh�"docstring of llfuse.get_ino_t_bits�hNubh])��}�(h�get_ino_t_bits�h]�h�get_ino_t_bits�����}�(hhhjx hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*h\hje hhhjw hNubhm)��}�(h�()�h]�h}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hlhje hhhjw hNubeh}�(h ]�j_ ah"]�h$]�h&]�h(]�h�llfuse�h�hh�jz uh*hChjw hKhjb hhubh�)��}�(hhh]�(h�)��}�(h�1Return number of bits available for inode numbers�h]�h�1Return number of bits available for inode numbers�����}�(hj� hj� hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*h�hja hKhj� hhubh�)��}�(h�QAttempts to use inode values that need more bytes will result in `OverflowError`.�h]�(h�AAttempts to use inode values that need more bytes will result in �����}�(h�AAttempts to use inode values that need more bytes will result in �hj� hhhNhNubj! )��}�(h�`OverflowError`�h]�j' )��}�(hj� h]�h� OverflowError�����}�(hhhj� ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hj� ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�j� �reftype��obj��refexplicit���refwarn��jE j� jF NjG � OverflowError�uh*j hja hKhj� ubh�.�����}�(hj� hj� hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hja hKhj� hhubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hjb hhhjw hNubeh}�(h ]�h"]��py�ah$]�h&]�h(]�j3 j� j4 �function�j6 j� j7 �uh*h>hhhhhja hNubh-)��}�(hhh]�h}�(h ]�h"]�h$]�h&]�h(]��entries�]�(h9�#get_off_t_bits() (in module llfuse)��llfuse.get_off_t_bits�hNt�auh*h,hhhhh�"docstring of llfuse.get_off_t_bits�hNubh?)��}�(hhh]�(hD)��}�(h�get_off_t_bits()�h]�(hJ)��}�(h�llfuse.�h]�h�llfuse.�����}�(hhhj� hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hIhj� hhh�"docstring of llfuse.get_off_t_bits�hNubh])��}�(h�get_off_t_bits�h]�h�get_off_t_bits�����}�(hhhj hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*h\hj� hhhj hNubhm)��}�(h�()�h]�h}�(h ]�h"]�h$]�h&]�h(]�hYhZuh*hlhj� hhhj hNubeh}�(h ]�j� ah"]�h$]�h&]�h(]�h�llfuse�h�hh�j uh*hChj hKhj� hhubh�)��}�(hhh]�(h�)��}�(h�1Return number of bytes available for file offsets�h]�h�1Return number of bytes available for file offsets�����}�(hj2 hj0 hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hKhj- hhubh�)��}�(h�\Attempts to use values whose representation needs more bytes will result in `OverflowError`.�h]�(h�LAttempts to use values whose representation needs more bytes will result in �����}�(h�LAttempts to use values whose representation needs more bytes will result in �hj> hhhNhNubj! )��}�(h�`OverflowError`�h]�j' )��}�(hjI h]�h� OverflowError�����}�(hhhjK ubah}�(h ]�h"]�(j2 �py��py-obj�eh$]�h&]�h(]�uh*j& hjG ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�j? � refdomain�jU �reftype��obj��refexplicit���refwarn��jE j, jF NjG � OverflowError�uh*j hj� hKhj> ubh�.�����}�(hj� hj> hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hKhj- hhubeh}�(h ]�h"]�h$]�h&]�h(]�uh*h�hj� hhhj hNubeh}�(h ]�h"]��py�ah$]�h&]�h(]�j3 jz j4 �function�j6 j~ j7 �uh*h>hhhhhj� hNubeh}�(h ]��fuse-api-functions�ah"]�h$]��fuse api functions�ah&]�h(]�uh*h hhhhhh+hKubah}�(h ]�h"]�h$]�h&]�h(]��source�h+uh*h�current_source�N�current_line�N�settings��docutils.frontend��Values���)��}�(hN� generator�N� datestamp�N�source_link�N� source_url�N� toc_backlinks��entry��footnote_backlinks�K� sectnum_xform�K�strip_comments�N�strip_elements_with_classes�N� strip_classes�N�report_level�K� halt_level�K�exit_status_level�K�debug�N�warning_stream�N� traceback���input_encoding��utf-8��input_encoding_error_handler��strict��output_encoding��utf-8��output_encoding_error_handler�j� �error_encoding��UTF-8��error_encoding_error_handler��backslashreplace�� language_code��en��record_dependencies�N�config�N� id_prefix�h�auto_id_prefix��id�� dump_settings�N�dump_internals�N�dump_transforms�N�dump_pseudo_xml�N�expose_internals�N�strict_visitor�N�_disable_config�N�_source�h+�_destination�N� _config_files�]��pep_references�N�pep_base_url�� https://www.python.org/dev/peps/��pep_file_url_template��pep-%04d��rfc_references�N�rfc_base_url��https://tools.ietf.org/html/�� tab_width�K�trim_footnote_reference_space���file_insertion_enabled���raw_enabled�K�syntax_highlight��long��smart_quotes���smartquotes_locales�]��character_level_inline_markup���doctitle_xform��� docinfo_xform�K�sectsubtitle_xform���embed_stylesheet���cloak_email_addresses���env�Nub�reporter�N�indirect_targets�]��substitution_defs�}��substitution_names�}��refnames�}��refids�}��nameids�}�(j� j� j� j� j j u� nametypes�}�(j� Nj� �j �uh }�(j� hh;hEj� j� j j jD jJ j� j� j� j� j� j� j^ jd j_ je j� j� u� footnote_refs�}�� citation_refs�}�� autofootnotes�]��autofootnote_refs�]��symbol_footnotes�]��symbol_footnote_refs�]�� footnotes�]�� citations�]��autofootnote_start�K�symbol_footnote_start�K � id_counter��collections��Counter���}���R��parse_messages�]��transform_messages�]��transformer�N� decoration�Nhhub.