File: fuse_lowlevel.pxd

package info (click to toggle)
python-llfuse 1.3.6%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 3,200 kB
  • sloc: python: 1,976; ansic: 487; makefile: 41; sh: 10
file content (176 lines) | stat: -rw-r--r-- 7,987 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
'''
fuse_lowlevel.pxd

This file contains Cython definitions for fuse_lowlevel.h

Copyright © 2010 Nikolaus Rath <Nikolaus.org>

This file is part of Python-LLFUSE. This work may be distributed under
the terms of the GNU LGPL.
'''

from fuse_common cimport *
from posix.stat cimport *
from posix.types cimport *
from libc.sys.statvfs cimport *
from libc.stdlib cimport const_char
from libc.stdint cimport uint32_t

# Based on fuse sources, revision tag fuse_2_9_4
cdef extern from "<fuse_lowlevel.h>" nogil:
    int FUSE_ROOT_ID

    ctypedef int fuse_ino_t
    ctypedef struct fuse_req:
        pass
    ctypedef fuse_req* fuse_req_t

    ctypedef int ulong_t "unsigned long"

    struct fuse_entry_param:
        fuse_ino_t ino
        unsigned long generation
        struct_stat attr
        double attr_timeout
        double entry_timeout

    struct fuse_ctx:
        uid_t uid
        gid_t gid
        pid_t pid
        mode_t umask

    struct fuse_forget_data:
        uint64_t ino
        uint64_t nlookup

    ctypedef fuse_ctx const_fuse_ctx "const struct fuse_ctx"
    int FUSE_SET_ATTR_MODE
    int FUSE_SET_ATTR_UID
    int FUSE_SET_ATTR_GID
    int FUSE_SET_ATTR_SIZE
    int FUSE_SET_ATTR_ATIME
    int FUSE_SET_ATTR_MTIME
    int FUSE_SET_ATTR_ATIME_NOW
    int FUSE_SET_ATTR_MTIME_NOW

    struct fuse_lowlevel_ops:
        void (*init) (void *userdata, fuse_conn_info *conn)
        void (*destroy) (void *userdata)
        void (*lookup) (fuse_req_t req, fuse_ino_t parent, const_char *name)
        void (*forget) (fuse_req_t req, fuse_ino_t ino, ulong_t nlookup)
        void (*getattr) (fuse_req_t req, fuse_ino_t ino,
                         fuse_file_info *fi)
        void (*setattr) (fuse_req_t req, fuse_ino_t ino, struct_stat *attr,
                         int to_set, fuse_file_info *fi)
        void (*readlink) (fuse_req_t req, fuse_ino_t ino)
        void (*mknod) (fuse_req_t req, fuse_ino_t parent, const_char *name,
                       mode_t mode, dev_t rdev)
        void (*mkdir) (fuse_req_t req, fuse_ino_t parent, const_char *name,
                       mode_t mode)
        void (*unlink) (fuse_req_t req, fuse_ino_t parent, const_char *name)
        void (*rmdir) (fuse_req_t req, fuse_ino_t parent, const_char *name)
        void (*symlink) (fuse_req_t req, const_char *link, fuse_ino_t parent,
                         const_char *name)
        void (*rename) (fuse_req_t req, fuse_ino_t parent, const_char *name,
                        fuse_ino_t newparent, const_char *newname)
        void (*link) (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent,
                      const_char *newname)
        void (*open) (fuse_req_t req, fuse_ino_t ino,
                      fuse_file_info *fi)
        void (*read) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,
                      fuse_file_info *fi)
        void (*write) (fuse_req_t req, fuse_ino_t ino, const_char *buf,
                       size_t size, off_t off, fuse_file_info *fi)
        void (*flush) (fuse_req_t req, fuse_ino_t ino,
                       fuse_file_info *fi)
        void (*release) (fuse_req_t req, fuse_ino_t ino,
                         fuse_file_info *fi)
        void (*fsync) (fuse_req_t req, fuse_ino_t ino, int datasync,
                       fuse_file_info *fi)
        void (*opendir) (fuse_req_t req, fuse_ino_t ino,
                         fuse_file_info *fi)
        void (*readdir) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,
                         fuse_file_info *fi)
        void (*releasedir) (fuse_req_t req, fuse_ino_t ino,
                            fuse_file_info *fi)
        void (*fsyncdir) (fuse_req_t req, fuse_ino_t ino, int datasync,
                          fuse_file_info *fi)
        void (*statfs) (fuse_req_t req, fuse_ino_t ino)
        void (*setxattr) (fuse_req_t req, fuse_ino_t ino, const_char *name,
                          const_char *value, size_t size, int flags)
        void (*getxattr) (fuse_req_t req, fuse_ino_t ino, const_char *name,
                          size_t size)
        void (*listxattr) (fuse_req_t req, fuse_ino_t ino, size_t size)
        void (*removexattr) (fuse_req_t req, fuse_ino_t ino, const_char *name)
        void (*access) (fuse_req_t req, fuse_ino_t ino, int mask)
        void (*create) (fuse_req_t req, fuse_ino_t parent, const_char *name,
                        mode_t mode, fuse_file_info *fi)
        void (*write_buf) (fuse_req_t req, fuse_ino_t ino, fuse_bufvec *bufv,
                           off_t off, fuse_file_info *fi)
        void (*retrieve_reply) (fuse_req_t req, void *cookie, fuse_ino_t ino,
                                off_t offset, fuse_bufvec *bufv)
        void (*forget_multi) (fuse_req_t req, size_t count,
                              fuse_forget_data *forgets)
        void (*fallocate) (fuse_req_t req, fuse_ino_t ino, int mode,
                           off_t offset, off_t length, fuse_file_info *fi)

    int fuse_reply_err(fuse_req_t req, int err)
    void fuse_reply_none(fuse_req_t req)
    int fuse_reply_entry(fuse_req_t req, fuse_entry_param *e)
    int fuse_reply_create(fuse_req_t req, fuse_entry_param *e,
                          fuse_file_info *fi)
    int fuse_reply_attr(fuse_req_t req, struct_stat *attr,
                        double attr_timeout)
    int fuse_reply_readlink(fuse_req_t req, const_char *link)
    int fuse_reply_open(fuse_req_t req, fuse_file_info *fi)
    int fuse_reply_write(fuse_req_t req, size_t count)
    int fuse_reply_buf(fuse_req_t req, const_char *buf, size_t size)
    int fuse_reply_data(fuse_req_t req, fuse_bufvec *bufv,
                        fuse_buf_copy_flags flags)
    int fuse_reply_statfs(fuse_req_t req, statvfs *stbuf)
    int fuse_reply_xattr(fuse_req_t req, size_t count)

    size_t fuse_add_direntry(fuse_req_t req, const_char *buf, size_t bufsize,
                             const_char *name, struct_stat *stbuf,
                             off_t off)

    int fuse_lowlevel_notify_inval_inode(fuse_chan *ch, fuse_ino_t ino,
                                         off_t off, off_t len)
    int fuse_lowlevel_notify_inval_entry(fuse_chan *ch, fuse_ino_t parent,
                                         const_char *name, size_t namelen)
    int fuse_lowlevel_notify_delete(fuse_chan *ch, fuse_ino_t parent,
                                    fuse_ino_t child, const_char *name,
                                    size_t namelen)
    int fuse_lowlevel_notify_store(fuse_chan *ch, fuse_ino_t ino,
                                   off_t offset, fuse_bufvec *bufv,
                                   fuse_buf_copy_flags flags)
    int fuse_lowlevel_notify_retrieve(fuse_chan *ch, fuse_ino_t ino,
                                      size_t size, off_t offset, void *cookie);

    void *fuse_req_userdata(fuse_req_t req)
    fuse_ctx *fuse_req_ctx(fuse_req_t req)
    int fuse_req_getgroups(fuse_req_t req, size_t size, gid_t list[])
    fuse_session *fuse_lowlevel_new(fuse_args *args,
                                    fuse_lowlevel_ops *op,
                                    size_t op_size, void *userdata)


    struct fuse_session_ops:
        pass

    fuse_session *fuse_session_new(fuse_session_ops *op, void *data)
    void fuse_session_add_chan(fuse_session *se, fuse_chan *ch)
    int fuse_session_receive_buf(fuse_session *se, fuse_buf *buf,
                                 fuse_chan **chp)
    void fuse_session_process_buf(fuse_session *se,
                                  fuse_buf *buf, fuse_chan *ch)
    void fuse_session_remove_chan(fuse_chan *ch)
    void fuse_session_reset(fuse_session *se)
    void fuse_session_exit(fuse_session *se)
    void fuse_session_destroy(fuse_session *se)
    int fuse_session_loop(fuse_session *se)
    int fuse_session_loop_mt(fuse_session *se)
    void fuse_chan_destroy(fuse_chan *ch)
    size_t fuse_chan_bufsize(fuse_chan *ch)
    int fuse_session_exited(fuse_session *se)