Add API version 2.6 variant of fuse_setup.

Reviewed by agc.
This commit is contained in:
dillo 2008-08-01 15:54:09 +00:00
parent 8e5470fdb2
commit 2a16dc1a4e
2 changed files with 32 additions and 7 deletions

View File

@ -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

View File

@ -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)