2 * FUSE: Filesystem in Userspace
3 * Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
5 * This program can be distributed under the terms of the GNU LGPLv2.
6 * See the file COPYING.LIB
12 #define FUSE_USE_VERSION 31
14 #include "fuse_lowlevel.h"
20 struct fuse_session
*se
;
27 unsigned int ioctl_64bit
:1;
33 fuse_interrupt_func_t func
;
37 struct fuse_req
*next
;
38 struct fuse_req
*prev
;
41 struct fuse_notify_req
{
43 void (*reply
)(struct fuse_notify_req
*, fuse_req_t
, fuse_ino_t
,
44 const void *, const struct fuse_buf
*);
45 struct fuse_notify_req
*next
;
46 struct fuse_notify_req
*prev
;
55 struct fuse_lowlevel_ops op
;
57 struct cuse_data
*cuse_data
;
60 struct fuse_conn_info conn
;
62 struct fuse_req interrupts
;
65 int broken_splice_nonblock
;
67 struct fuse_notify_req notify_list
;
73 struct fv_VuDev
*virtio_dev
;
80 struct fv_QueueInfo
*qi
;
86 * Filesystem modules are registered with the FUSE_REGISTER_MODULE()
92 fuse_module_factory_t factory
;
93 struct fuse_module
*next
;
94 struct fusemod_so
*so
;
98 int fuse_send_reply_iov_nofree(fuse_req_t req
, int error
, struct iovec
*iov
,
100 void fuse_free_req(fuse_req_t req
);
102 void fuse_session_process_buf_int(struct fuse_session
*se
,
103 const struct fuse_buf
*buf
,
104 struct fuse_chan
*ch
);
107 #define FUSE_MAX_MAX_PAGES 256
108 #define FUSE_DEFAULT_MAX_PAGES_PER_REQ 32
110 /* room needed in buffer to accommodate header */
111 #define FUSE_BUFFER_HEADER_SIZE 0x1000