summaryrefslogtreecommitdiff
path: root/lib/librefuse
diff options
context:
space:
mode:
authordillo <dillo@NetBSD.org>2008-08-01 15:54:09 +0000
committerdillo <dillo@NetBSD.org>2008-08-01 15:54:09 +0000
commit2a16dc1a4e31d561aed394ae5a79dce6cac9f3f6 (patch)
tree8f7bd9eb92b8d80f5b671f7d10f839588587417a /lib/librefuse
parent8e5470fdb25596d03d3b7fe281ba2d1b41cf8ab0 (diff)
Add API version 2.6 variant of fuse_setup.
Reviewed by agc.
Diffstat (limited to 'lib/librefuse')
-rw-r--r--lib/librefuse/fuse.h6
-rw-r--r--lib/librefuse/refuse.c33
2 files changed, 32 insertions, 7 deletions
diff --git a/lib/librefuse/fuse.h b/lib/librefuse/fuse.h
index 14ca668606f..483fea3b08d 100644
--- a/lib/librefuse/fuse.h
+++ b/lib/librefuse/fuse.h
@@ -1,4 +1,4 @@
-/* $NetBSD: fuse.h,v 1.20 2008/01/14 20:46:11 pooka Exp $ */
+/* $NetBSD: fuse.h,v 1.21 2008/08/01 15:54:09 dillo Exp $ */
/*
* Copyright © 2007 Alistair Crooks. All rights reserved.
@@ -175,11 +175,15 @@ void fuse_unmount_compat22(const char *);
#if FUSE_USE_VERSION >= 26
#define fuse_main(argc, argv, op, arg) \
fuse_main_real(argc, argv, op, sizeof(*(op)), arg)
+#define fuse_setup fuse_setup26
#else
#define fuse_main(argc, argv, op) \
fuse_main_real(argc, argv, op, sizeof(*(op)), NULL)
#endif
+struct fuse *fuse_setup26(int, char **, const struct fuse_operations *,
+ size_t, char **, int *, void *);
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/librefuse/refuse.c b/lib/librefuse/refuse.c
index 0dfefe3f803..97e4e0f3b6a 100644
--- a/lib/librefuse/refuse.c
+++ b/lib/librefuse/refuse.c
@@ -1,4 +1,4 @@
-/* $NetBSD: refuse.c,v 1.88 2008/01/14 16:07:00 pooka Exp $ */
+/* $NetBSD: refuse.c,v 1.89 2008/08/01 15:54:09 dillo Exp $ */
/*
* Copyright © 2007 Alistair Crooks. All rights reserved.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#if !defined(lint)
-__RCSID("$NetBSD: refuse.c,v 1.88 2008/01/14 16:07:00 pooka Exp $");
+__RCSID("$NetBSD: refuse.c,v 1.89 2008/08/01 15:54:09 dillo Exp $");
#endif /* !lint */
#include <sys/types.h>
@@ -364,9 +364,10 @@ set_refuse_mount_name(char **argv, char *name, size_t size)
/* this function exposes struct fuse to userland */
-struct fuse *
-fuse_setup(int argc, char **argv, const struct fuse_operations *ops,
- size_t size, char **mountpoint, int *multithreaded, int *fd)
+static struct fuse *
+fuse_setup_real(int argc, char **argv, const struct fuse_operations *ops,
+ size_t size, char **mountpoint, int *multithreaded, int *fd,
+ void *user_data)
{
struct fuse_chan *fc;
struct fuse_args *args;
@@ -397,7 +398,7 @@ fuse_setup(int argc, char **argv, const struct fuse_operations *ops,
}
fc = fuse_mount(*mountpoint = argv[i], args);
- fuse = fuse_new(fc, args, ops, size, NULL);
+ fuse = fuse_new(fc, args, ops, size, user_data);
fuse_opt_free_args(args);
free(args);
@@ -415,6 +416,26 @@ fuse_setup(int argc, char **argv, const struct fuse_operations *ops,
return fuse;
}
+#ifdef fuse_setup
+#undef fuse_setup
+#endif
+
+struct fuse *
+fuse_setup(int argc, char **argv, const struct fuse_operations *ops,
+ size_t size, char **mountpoint, int *multithreaded, int *fd)
+{
+ return fuse_setup_real(argc, argv, ops, size, mountpoint,
+ multithreaded, fd, NULL);
+}
+
+struct fuse *
+fuse_setup26(int argc, char **argv, const struct fuse_operations *ops,
+ size_t size, char **mountpoint, int *multithreaded, void *user_data)
+{
+ return fuse_setup_real(argc, argv, ops, size, mountpoint,
+ multithreaded, NULL, user_data);
+}
+
#define FUSE_ERR_UNLINK(fuse, file) if (fuse->op.unlink) fuse->op.unlink(file)
#define FUSE_ERR_RMDIR(fuse, dir) if (fuse->op.rmdir) fuse->op.rmdir(dir)