2016-10-05 09:33:37 -04:00
|
|
|
/*
|
|
|
|
|
FUSE: Filesystem in Userspace
|
|
|
|
|
Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
|
|
|
|
|
|
|
|
|
|
This program can be distributed under the terms of the GNU LGPLv2.
|
|
|
|
|
See the file COPYING.LIB
|
|
|
|
|
*/
|
|
|
|
|
|
2020-08-08 19:10:36 -04:00
|
|
|
#pragma once
|
|
|
|
|
|
2016-10-05 09:33:37 -04:00
|
|
|
#include "fuse.h"
|
2025-10-25 18:21:18 -05:00
|
|
|
#include "fuse_lowlevel.hpp"
|
2025-09-24 00:51:21 -04:00
|
|
|
#include "fuse_msgbuf_t.h"
|
2022-11-29 17:24:09 -06:00
|
|
|
|
|
|
|
|
#include "extern_c.h"
|
2016-10-05 09:33:37 -04:00
|
|
|
|
|
|
|
|
struct fuse_chan;
|
|
|
|
|
struct fuse_ll;
|
|
|
|
|
|
2020-07-31 23:50:47 -04:00
|
|
|
struct fuse_session
|
|
|
|
|
{
|
2022-11-06 00:25:25 -04:00
|
|
|
int (*receive_buf)(struct fuse_session *se,
|
2022-11-29 17:24:09 -06:00
|
|
|
fuse_msgbuf_t *msgbuf);
|
2016-10-05 09:33:37 -04:00
|
|
|
|
2022-11-29 17:24:09 -06:00
|
|
|
void (*process_buf)(struct fuse_session *se,
|
|
|
|
|
const fuse_msgbuf_t *msgbuf);
|
2016-10-05 09:33:37 -04:00
|
|
|
|
2022-11-06 00:25:25 -04:00
|
|
|
void (*destroy)(void *data);
|
2016-10-05 09:33:37 -04:00
|
|
|
|
2020-07-31 23:50:47 -04:00
|
|
|
volatile int exited;
|
|
|
|
|
struct fuse_chan *ch;
|
2016-10-05 09:33:37 -04:00
|
|
|
};
|
|
|
|
|
|
2020-07-31 23:50:47 -04:00
|
|
|
struct fuse_notify_req
|
|
|
|
|
{
|
|
|
|
|
uint64_t unique;
|
2021-09-30 23:28:54 -04:00
|
|
|
void (*reply)(struct fuse_notify_req *,
|
2025-10-13 00:21:36 -04:00
|
|
|
fuse_req_t*,
|
2021-09-30 23:28:54 -04:00
|
|
|
uint64_t,
|
2022-11-08 23:43:59 -05:00
|
|
|
const void *);
|
2020-07-31 23:50:47 -04:00
|
|
|
struct fuse_notify_req *next;
|
|
|
|
|
struct fuse_notify_req *prev;
|
2016-10-05 09:33:37 -04:00
|
|
|
};
|
|
|
|
|
|
2022-11-29 17:24:09 -06:00
|
|
|
EXTERN_C_BEGIN
|
|
|
|
|
|
2025-10-13 00:21:36 -04:00
|
|
|
struct fuse *fuse_new_common(struct fuse_chan *ch,
|
|
|
|
|
struct fuse_args *args,
|
|
|
|
|
const struct fuse_operations *op);
|
2016-10-05 09:33:37 -04:00
|
|
|
|
|
|
|
|
struct fuse_chan *fuse_kern_chan_new(int fd);
|
|
|
|
|
|
|
|
|
|
struct fuse_session *fuse_lowlevel_new_common(struct fuse_args *args,
|
2020-07-31 23:50:47 -04:00
|
|
|
const struct fuse_lowlevel_ops *op,
|
|
|
|
|
size_t op_size, void *userdata);
|
2016-10-05 09:33:37 -04:00
|
|
|
|
|
|
|
|
int fuse_chan_clearfd(struct fuse_chan *ch);
|
|
|
|
|
|
|
|
|
|
void fuse_kern_unmount(const char *mountpoint, int fd);
|
|
|
|
|
int fuse_kern_mount(const char *mountpoint, struct fuse_args *args);
|
|
|
|
|
|
|
|
|
|
int fuse_send_reply_iov_nofree(fuse_req_t req, int error, struct iovec *iov,
|
|
|
|
|
int count);
|
|
|
|
|
void fuse_free_req(fuse_req_t req);
|
|
|
|
|
|
|
|
|
|
|
2025-10-13 00:21:36 -04:00
|
|
|
struct fuse *fuse_setup_common(int argc,
|
|
|
|
|
char *argv[],
|
2016-10-05 09:33:37 -04:00
|
|
|
const struct fuse_operations *op,
|
2025-10-13 00:21:36 -04:00
|
|
|
char **mountpoint,
|
2021-08-24 21:24:51 -04:00
|
|
|
int *fd);
|
2016-10-05 09:33:37 -04:00
|
|
|
|
|
|
|
|
int fuse_start_thread(pthread_t *thread_id, void *(*func)(void *), void *arg);
|
2022-11-29 17:24:09 -06:00
|
|
|
|
|
|
|
|
EXTERN_C_END
|